{"report_id":"3dc3267e-af1a-4ec7-93da-116727011aa4","version":0,"status":"done","tags":[],"date":"2026-07-27T04:31:18Z","url":{"schema":"https","addr":"bitifinex.live/","fqdn":"bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":0,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"final":{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"title":"Cryptoplc || Home","dom":{"size":53611,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (6573)","md5":"677faed9045b1421d5b9536701f33450","sha1":"fe0926a62903696e65b6baf6bd4269246d29fbe2","sha256":"d6cafd6ce78cb8f4d00186e65bb3c6fc0522f44afb733a6338a1896ee03a0bd1","sha512":"7855e230832bb4814c676903795794dc2d467039bb46354d4d4afeb31f028aa83a411c1aa810886abfe97cc80ac3b03b3c763e7b14301f53e3975d61af48416a","ssdeep":"768:8vUuUQkf7He1lM5MVpVPX2xVgMOM3w49mK/YycyQTsC:8pkf7QlM5MVpVPX2xDwdK/YPL","tlshash":"eb338434d4a00437019322c27a35ab5a5eb2e74fda17991436fc4bd85fc7ea5ce0ba6c","dom_hash":"domhashb98aad03cd682deaa3f289dcc8e9c1eb","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"bitifinex.live/","fqdn":"bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":0,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T04:31:18Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":0}},"detection":{"ids":null,"analyzer":null,"urlquery":null},"summary":[{"fqdn":"www.youtube.com","ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-02-15","domain_rank":286,"first_seen":"2013-04-13T07:43:20Z","last_seen":"2026-07-20T08:23:54.066263Z","alert_count":0,"request_count":8,"received_data":3659699,"sent_data":9870,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"fonts.googleapis.com","ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":313,"first_seen":"2012-05-23T12:41:44Z","last_seen":"2026-07-26T22:23:14.439231Z","alert_count":0,"request_count":1,"received_data":18924,"sent_data":549,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"widget.coinlib.io","ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-12-05","domain_rank":0,"first_seen":"2018-10-03T18:45:45Z","last_seen":"2026-07-21T04:22:09.03368Z","alert_count":0,"request_count":1,"received_data":677,"sent_data":626,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"coinlib.io","ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-12-05","domain_rank":119150,"first_seen":"2017-12-08T06:44:44Z","last_seen":"2026-07-25T05:38:23.773256Z","alert_count":0,"request_count":14,"received_data":856460,"sent_data":7743,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare Browser Insights","description":"Cloudflare Browser Insights is a tool that measures the performance of websites from the perspective of users.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Analytics","RUM"]}]},{"fqdn":"www.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":146047,"first_seen":"2012-05-29T15:36:17Z","last_seen":"2026-07-26T23:06:30.068608Z","alert_count":0,"request_count":1,"received_data":1203,"sent_data":510,"comment":"","tags":null,"fingerprints":null},{"fqdn":"jnn-pa.googleapis.com","ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":1579,"first_seen":"2021-11-16T06:12:21Z","last_seen":"2026-07-20T10:03:51.986275Z","alert_count":0,"request_count":2,"received_data":1157,"sent_data":1220,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.google.com","ip":{"addr":"142.251.155.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":1,"received_data":63330,"sent_data":497,"comment":"","tags":null,"fingerprints":null},{"fqdn":"i.ytimg.com","ip":{"addr":"142.250.178.118","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2007-12-11","domain_rank":436,"first_seen":"2012-10-03T19:11:04Z","last_seen":"2026-07-20T08:16:40.328836Z","alert_count":0,"request_count":1,"received_data":16140,"sent_data":656,"comment":"","tags":null,"fingerprints":null},{"fqdn":"bitifinex.live","ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-27T03:51:26.826034Z","last_seen":"2026-07-27T03:51:26.826035Z","alert_count":0,"request_count":1,"received_data":335,"sent_data":483,"comment":"","tags":null,"fingerprints":null},{"fqdn":"s2.coinmarketcap.com","ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2013-04-28","domain_rank":209181,"first_seen":"2018-01-12T04:47:19Z","last_seen":"2026-07-27T02:47:27.888767Z","alert_count":0,"request_count":50,"received_data":125022,"sent_data":28007,"comment":"","tags":null,"fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}]},{"fqdn":"assets.chaport.com","ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2015-07-07","domain_rank":504466,"first_seen":"2024-01-31T17:02:32Z","last_seen":"2026-07-26T02:29:06.23742Z","alert_count":0,"request_count":7,"received_data":643893,"sent_data":3846,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"www.googletagmanager.com","ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2011-11-11","domain_rank":283,"first_seen":"2012-10-04T01:07:32Z","last_seen":"2026-07-26T22:31:28.839046Z","alert_count":0,"request_count":2,"received_data":489878,"sent_data":1259,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"maps.googleapis.com","ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":3442,"first_seen":"2012-05-22T14:23:23Z","last_seen":"2026-07-20T08:05:15.246758Z","alert_count":0,"request_count":4,"received_data":760233,"sent_data":1972,"comment":"","tags":null,"fingerprints":null},{"fqdn":"app.chaport.com","ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2015-07-07","domain_rank":87646,"first_seen":"2015-08-24T06:07:03Z","last_seen":"2026-07-24T07:56:43.867062Z","alert_count":0,"request_count":7,"received_data":8857,"sent_data":4031,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":5,"received_data":197589,"sent_data":2844,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.bitifinex.live","ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-27T03:51:26.824197Z","last_seen":"2026-07-27T03:51:26.824197Z","alert_count":0,"request_count":58,"received_data":2796982,"sent_data":31173,"comment":"","tags":null,"fingerprints":[{"name":"Google Maps","description":"Google Maps is a web mapping service. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bicycle and air, or public transportation.","website":"https://maps.google.com","common_platform_enumeration":"","icon":"Google Maps.svg","categories":["Maps"]},{"name":"Swiper","description":"Swiper is a JavaScript library that creates modern touch sliders with hardware-accelerated transitions.","website":"https://swiperjs.com","common_platform_enumeration":"","icon":"Swiper.svg","categories":["JavaScript libraries"]},{"name":"cdnjs","description":"cdnjs is a free distributed JS library delivery service.","website":"https://cdnjs.com","common_platform_enumeration":"","icon":"cdnjs.svg","categories":["CDN"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"particles.js","description":"Particles.js is a JavaScript library for creating particles.","website":"https://github.com/VincentGarreau/particles.js","common_platform_enumeration":"","icon":"","categories":["JavaScript graphics"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Highlight.js","description":"","website":"https://highlightjs.org/","common_platform_enumeration":"","icon":"Highlight.js.png","categories":["JavaScript libraries"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"Slick","description":"","website":"https://kenwheeler.github.io/slick","common_platform_enumeration":"","icon":"Slick.svg","categories":["JavaScript libraries"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]},{"name":"PHP","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/2/js/modernizr.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"5aebbf8b4adfa2e20f66e509f3790457","sha1":"811d42a5ee1cb9a10fa7d852d483baa72efa4012","sha256":"17c026d87e589cd946ab8ea6266966cb685651c6eb4c2128403e83ea95b2e907","sha512":"a28a297f08989728f34df080c32d1d6ab67cd9f122328a8acda6bb15885dbc8be96d4b7a18bd60243b58a862a68faa2161b613b14dcbb05f6b0a4ce1e83f55df","ssdeep":"1536:TRCJJ/KpVsnaxvXmET56JYFE7qbe/7Y8fjWWy+4GrkfwuXxJ44ipW/VPRLq277ts:TS/FazarzCT71Pts","tlshash":"1b33a4097ce771264a13f0aa67ef7445fa26c42b2315d440f89e436c2f91f2442bdeea","size":51365,"data":"","first_seen":"2023-03-12T07:16:03Z","last_seen":"2026-07-27T04:32:40.532322Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.155.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"443622910d8e7fe75010d4a41f533e07","sha1":"9774250436c6d11ce6978a2f57e620b1b86098c1","sha256":"6fca97ac502ef4f1d5ac6a8c662da7a8a9bd4d434faebcc4878d0f025fbaa15a","sha512":"8ce4ae6fb3b48726d2ac7dd7f8bcfb87df79adfc89c666d8278594d86648345411b78b003967291c4125ebbf78a2af3c7dd7dfdb100899ecea73c8ad8bd8b7a5","ssdeep":"1536:jN7w3cPBzlUowT2cm9iXFHDYzcmNkBfXoLz:RtyokXFHDSH","tlshash":"ce532acf72d2b73559e269e6105f410a62fe940a4c85186fba10f6f42a70d4b903bf7e","size":62519,"data":"","first_seen":"2026-07-25T07:02:54.064057Z","last_seen":"2026-07-27T07:00:44.845626Z","times_seen":542,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"afb0fced528eaac5fe170b763cda5975","sha1":"8f0d85954d44c90a2fc59b8cc9297ea972774185","sha256":"9206ef16552ccd926e4421fe6ef369cbc40add64488b7e3d88350e3588a35c34","sha512":"67f6f6d5f810fc0fe5fe606415d86bc4efb11ca6df92a8d6b6d8280d1e4d731ea24b038f7525a6ac5084fac9f78f13d835e0679a1d0e3cba751465bafbcf4211","ssdeep":"","tlshash":"c71000000000000000000000c000000000000000000000000000000000300000000000","size":2,"data":"","first_seen":"2023-03-10T12:52:28Z","last_seen":"2026-07-27T07:00:44.994979Z","times_seen":597,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4aae7fd3c815b1cfa3660cb3227a214c","sha1":"4531c0c13ac8462f9dd8f0dff0e13b1c3e150bcd","sha256":"cca00c516ba05df351915a75df4db57659d685c5af3622cedbba3c6b626af2a9","sha512":"c2f67d5e011e7ad703ab55ea89f91fff91b4245f5294cb73ded819757eb158102fd038f24b175c1f6eae717100cd63d9e9529cc90d124cd90a26ab4a1f650d4e","ssdeep":"","tlshash":"4d50003c30003000c0c0003000000000303c000cc0c000c0003c03c0c00f0c00000000","size":11,"data":"","first_seen":"2026-02-18T03:26:52.257023Z","last_seen":"2026-07-27T08:08:01.368377Z","times_seen":82514,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"6247dd5d2d787d98a0d5e4966146d550","sha1":"51dcfa67e8318f689e1a4589a9def15c6f9a23bd","sha256":"cbb9ab7439a233ff75c44799819b7a7de5fdb18f4e30f0236430bc751530c211","sha512":"bcdab3f3db437167cf01baaa88913e053ea2ac769bf14381fb70e62ae10544ef8f11c327a24e01218936ae2800ed21453d065820542d1222b87117980536c637","ssdeep":"","tlshash":"92b0922e6c926024a05c1116a01c008a6b8cc9bb83c814a862054cb5ea9a0ba03847b0","size":108,"data":"","first_seen":"2023-08-01T01:42:54Z","last_seen":"2026-07-27T08:08:01.319092Z","times_seen":295519,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e18eb9d0972d240f1a5456179bb6523b","sha1":"65255f106adcff2907a98e295a8e7a38fe2884c4","sha256":"3d68db2b85d5a2915743399f09dc438963f0c50f68b02df05d47a372661603e8","sha512":"bcd5a6c26fa1f7a77f5614a7b28e238701d698cc0c96ac5d03d97628d8622125cd0cfdaf54b1db96ef25320a3fca7584abd343d67bdfb9f272ca3ef8572b360a","ssdeep":"","tlshash":"d4c04c38402080e98659101c7434fb80bd7d3b973163e047da3c621c65f5d017c94b11","size":134,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.319694Z","times_seen":259350,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"12347d552552b7eb8f1aaf47a5774b81","sha1":"4701684cb61e83493e14555659e2cd07ae9aba3b","sha256":"63b85d3cc0ccb498e52cf8dc76db5119713a85031ef4a8e99edd01e403cb08f4","sha512":"a0b95f6914bf92922a13db3f81f5612e2a360e0b3bb0f6ffabbe41623a044d662e27a216d788399cad99c8ec18c5f98f481e602d672de5b3b97d5da8ec930e4c","ssdeep":"","tlshash":"6b41427ea3a4193b45fa787e21af560620726654e0158c0c813e76846cb1a4b21dbf5f","size":2083,"data":"","first_seen":"2026-05-25T17:49:28.102585Z","last_seen":"2026-07-27T08:08:01.320446Z","times_seen":17323,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"fc43865068b186d0991ae9703c68243b","sha1":"4982c246e241c54b7848bdc25cabd749b76dcbb3","sha256":"425028becd4c56c660c28f51ee0267bf4565064a36e7332af95d8ae0a064c3f8","sha512":"5b0b0da57e1a7f0381306767dc728990e867dd6bc745958dd4f70031ad6a8838c18be1ee4616b434250d40550063fc369f2ef153bb1d4f3c87d13f2f0b2d413d","ssdeep":"768:c1ChGD4UiXHwUPDi7qYMPbJjnm2hKYMdmq97SyY/v1M6LnB8vzhMDoFzg+pwkfrL:aUQvMvjMFzYVM6bBszh5Fdr","tlshash":"047363240868a8728893e547deb5ff3e9cf816790bc9966dbcb6d75c01ec6610e9f403","size":79772,"data":"","first_seen":"2026-07-27T04:31:33.284551Z","last_seen":"2026-07-27T04:31:33.284551Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"4e226125e429d79c4c368581aa455eee","sha1":"79fa2f523a0ffb2867b44afef3e154c3dc1fb5cc","sha256":"d50c6291d73f2c5ba6b2dc494e09fe070ea0a6c0c4ce3b3c6bc4156ab944dd72","sha512":"06a7818b0a33701b90d20662e1d1a85f90f78af228c2efcf6717d56f93b7502a5cd540d471f113376717d6bd8a8b0b9f198e16a65d6412f3f946dc0e6c87ed28","ssdeep":"","tlshash":"96c08c69d3040b704270a810ab0b3b4f253700228020c845b210a60038d0b078d703e2","size":145,"data":"","first_seen":"2026-02-05T15:28:48.153036Z","last_seen":"2026-07-27T08:08:01.322694Z","times_seen":110922,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8501e99db1c76b62dea75ad32747a129","sha1":"791537ba64bbd81ed1644b015c4830d897182fb8","sha256":"25289f89e8785a11e468135cfa545b64462e90a61e62ee0bf9fe2dce0898016a","sha512":"d34b3b6f94043e080daf7804d7305efc1bade1433a80d4c6c547ab1325aceda8235ceea8bd99062a7737401ff5d767d46e4d24a972bfa88e9c6b197947041f77","ssdeep":"","tlshash":"7b1135251b715c27806a296232dfb309b8262372583c91dc8a81e365933661bbc3235e","size":1032,"data":"","first_seen":"2026-05-25T17:49:28.106733Z","last_seen":"2026-07-27T08:08:01.323265Z","times_seen":17304,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"173a08c5d6adc5c93611a599bcb2c717","sha1":"735a7301e66ae2c3584357f7bf0bf09eefb62df0","sha256":"271e6368679a21c3416e2a0325db33d6bc445d601c72a49914081b5efd0cdf3f","sha512":"cf15a9aa7e406207f3b85c7ab7d6453fd2351616b4dbb2db767ad854f866ae8256045b8cb74948f44d09fedb6c200c56fa2e2ab83d1ab997f5b0068edee7349b","ssdeep":"","tlshash":"b0800000c08a0030c3200c082008c28038802002a8f2002208200000a0032fca0020ca","size":26,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.323881Z","times_seen":257409,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d283d1818e80d7267d72b236fae9738f","sha1":"d767efc3619e7deff9a4c50b7e456bc2e6a954ed","sha256":"b74af2f4e4ad25e4cf95fbb6734cc89812d5f428e233cb333cc010872ba20788","sha512":"98c9bb90b63dc69d03fef7c9f31b78474be36d6eecda99845cb896ec6a4ad3eb19e20a2c65ce622052159ee4dab61cef7640f7e1d1b0574aca1c74db562f1db0","ssdeep":"","tlshash":"9101475c0a057d9ce90688ccc7c6a6655bac9237be003124f82f454dbae3aeb9830967","size":760,"data":"","first_seen":"2026-07-23T08:14:51.856878Z","last_seen":"2026-07-27T08:08:01.324461Z","times_seen":1597,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"385567210550a0c1e2bde47662ed4da8","sha1":"0cd76fc5cdca83a477bcfafc3beaf3bffcd6f781","sha256":"c144e84ef4992554561c2e74eea7bcb13d689fae12a19268e4d8d07266ea66b2","sha512":"c99e8074b2ac53140f93168c7d93c4ef36a085a054ff2c1105638cf2beb1fc257ec36adcb0a095d021242d5f1d7bce230a4d082707abb7c4b1791907bfe6e10e","ssdeep":"192:yzEjQfb/44TmOavb+Nvyv8kYl90sxVjoObVWpO7sTM73gcAKc3Udq6bRXnLNy9nA:+OQfbwKavBv5Y4sxVMOUE7sTMDgcA3X0","tlshash":"6822c80fa38679fcd7d15598b7a36b037cf4821b63082a1d88cba0542cddf19429b9ed","size":10400,"data":"","first_seen":"2026-07-23T08:14:51.857803Z","last_seen":"2026-07-27T08:08:01.325737Z","times_seen":1614,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"31cce1914068185ba0e0323653b9c4a1","sha1":"733ffc803ad9c202832ff9acbd464a5681602a57","sha256":"6f10bf9e2a63c22b710dbe0ee66041bb1639ab3c4ad69333999876e989854b1f","sha512":"81d6c36e55d90964989f6b1773e52a07e2326c5d47a5ccf950f71c8df0a44eae23e51b0c98df9b05cb205838b77349dc47b4340f0e25798bea2c0bef934db931","ssdeep":"","tlshash":"ceb09b0745362d1b5dc55914bc4945b12d41d56503945ebc5540951d3145027645f5e5","size":119,"data":"","first_seen":"2026-07-24T13:38:08.037141Z","last_seen":"2026-07-27T08:11:45.727719Z","times_seen":449,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d8fb965e7ead2924508e97e5326bd3b1","sha1":"fae376d0cb54d4433b7bdc9aba04690cd6cb5d27","sha256":"57bb660c2fdf4369ff8e37f99b26963dba87c120b80c443ff3d31e030ab3a0f5","sha512":"c03eb6a1004f9dfcd1f960a6ca70a77932794808f72476b276bb16f02d0a1855fb2d93d07aab7c0c040d4b3c0eb4f861a4c1a9368a27e3a6430e425ff6ed2568","ssdeep":"","tlshash":"8e60000c00000000033000fc0000ccf00300000cc003c0c0000000000f0000c3c00000","size":13,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.327689Z","times_seen":254075,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8fc68c945f0207e7c573c095b8dce5a5","sha1":"0e7d8815c2d7a9cf18b807863e0db326fd5fdec1","sha256":"b4faf1d660b4795a04abe94e07fea25df44cce84eb1443255b6773ac1a1afe82","sha512":"fa997e7edd17837fd5798c52189bc143b83f02be9fddecd246158e97648b9fa148e7b2cf27f88c6725915743c9c98a2e643d8f759a586e2015f5b13ebfc1fe93","ssdeep":"768:R6ScAYWZMPk52qnRwZaWKAAUb1vaNYuHOy3Tk7HOsAWyBoHypRroz48qeLn:2WWs52qnCZ8tUhadu8IHOsAWyIypKc8n","tlshash":"64f2e1bddeeddaeb4824be867b4eba5d430d97b0c300eae172c09550f84e421193d968","size":36628,"data":"","first_seen":"2026-07-27T04:31:33.289349Z","last_seen":"2026-07-27T04:31:33.289349Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"10906e3a743324d4038b195d7a5f953e","sha1":"16a107c72615d527ea53e24efa2fc1b1d7633484","sha256":"37bbe78f97c2dcaded6f98ba02da76c456d63808b843bff3ffe919084d25bc63","sha512":"3e8ed9fdb09d195b37dadd703fc6f6cf6e331595ca51c5067cd9b160f1ea244797e64e56cfd15eba1e3b9f9fd828340cb64debfe25643a65fb2c106496876ac6","ssdeep":"","tlshash":"aca00263d529c957003855a055a73116f11857688826a00c135b560a75e941bfe9899b","size":62,"data":"","first_seen":"2023-12-31T09:12:26Z","last_seen":"2026-07-27T08:12:37.764526Z","times_seen":5045,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9818af84da6f96579e99ed315f69e0c5","sha1":"7ecf16ebb75bea5bc8309fbecd3e3df799ab4371","sha256":"dfa3bde638cb08d781f46d978f471fe535a642cb24d408bcc486a67c819cc4e4","sha512":"1a5cf2ca1f7c50defc0af583f15e3d2b0e392e8886d39ce5b6d213ee8e01ee3c1131a901b393f05cb8c9ea412fc2598cdbf33dd895e2d284fb9c7dc6ca080aa1","ssdeep":"","tlshash":"c71000000000000000000c000000000000000000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-26T11:55:44Z","last_seen":"2026-07-27T07:00:45.004266Z","times_seen":2162,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"053fbccf1e17390f7a9adc3521ed7696","sha1":"e3d25d9c529549b5e8c066fe1e3390a03cff30a3","sha256":"5bebf4b6615a6aa6aea024a979423e3c35ed65dca89cec752afe3c5fa0262789","sha512":"8df25f0190b67780e3fe3549184050dd91e162ba06815e92e63f89fe1f07f1259f9ee294a4efde8b498c4c99dd2300947201d7859c913c85021d7b84107588cf","ssdeep":"","tlshash":"8890028430426c102202d0612a9a69b6d175448020199164f05510443921059505bd0c","size":49,"data":"","first_seen":"2026-07-25T07:02:54.198206Z","last_seen":"2026-07-27T07:00:45.002562Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/javascripts/insert.js","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"29d2e99d5fcb02404184a538c82b6254","sha1":"ef4318b50add95249beac94e8433544a180f3960","sha256":"27b579092e300cf8d2457274b442dc87db8a173d97c72e19b41ba1d90c613c31","sha512":"76aa1c05f8bd676ec62cdd147fddd7c472b5e8241806ce2a4b0e6d72590237969e3652c442ec06fa7fd84be60c1a0f41d7167f37a1bf8cefaecbf23f89feadb6","ssdeep":"","tlshash":"5211be11a565905b0db92176bb2b730eb4bff7168a4c9a44291df6003b038d3a826cf9","size":998,"data":"","first_seen":"2025-03-16T17:07:37.611527Z","last_seen":"2026-07-27T08:03:47.394598Z","times_seen":1770,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"553043d48d6dd80a787af64045a49e96","sha1":"e63956e5e0aa636885b9ed763d13ab9fdd1ecc29","sha256":"1984338e5b6994ef452ccc065e0cbad0892b40e3ae8938d3bde4f6a76e660975","sha512":"6754bfc75e8a2d15fb5e7f309524e2b22812ff1d97cd7b18508495ab00c590eb64ced78dd0bff9aae3a5902fc2fd215cd73b76864004a441d2239777a547c631","ssdeep":"","tlshash":"8ad02bfb5811c06ffc23059213335dc910d2f20cd5993f9ab5b2b1a4392000c70d54c7","size":281,"data":"","first_seen":"2026-07-25T07:02:54.176272Z","last_seen":"2026-07-27T07:00:45.001355Z","times_seen":508,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b6a20c0d9da44983aefc2889595774b7","sha1":"a6b83289561646aee8a972f7631e8e92f56cda48","sha256":"2fdd1b9481f875ab3ee4f5d37d4f77142929c0cdf6ced65060f0aa2aed4984a5","sha512":"9baedb500c9f00af4ff8fb892caba990a86a6042c868841f50f6b10c277d8c0566f5ce7049164e86e2bccaa0a786567e18bfb5f3ca7845b5ac65123f207b110c","ssdeep":"","tlshash":"66c022cc7b2b0c088352d9ba107b0566d86ac92cd94c8761d811fb16b92a25a087bba9","size":194,"data":"","first_seen":"2026-07-25T07:02:54.124398Z","last_seen":"2026-07-27T07:00:44.980996Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a5c244fde4e6f1ade71beed5c11edb59","sha1":"6bc634a7f8505a2ce340807aecfa1e50c2a578b3","sha256":"d561924e4295103128924509bbe71b3eed6625592d75ba3cc35c365189d6081d","sha512":"6ed66e7a246ab961cedd150553b6a9aa692988813dd4ee30c8b7d78d80bb8765a828112c6860d08eb382cae34e22bdd76ecda5ee1c9c7ee25a49b1d2639474f9","ssdeep":"","tlshash":"966000300c000330c0000c00000c0000003300000000003003000c0000300c0000000f","size":13,"data":"","first_seen":"2024-07-23T18:45:20Z","last_seen":"2026-07-27T08:08:01.37411Z","times_seen":174003,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/easing-min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"e7ff2ac28aa87195cf889baa352e35c3","sha1":"4393d79e01e6a9a065b48db3e46cd3676ecf75ce","sha256":"6d55c31b16426ec3aa503ee22a7008426f37f0cd500649b1ad06262ae6e4c496","sha512":"f4d066fc7e4c897766b2af9e2a1646aca2ce0e3fa153e1e10f442453ed77501e192578264f5904b3381fe94c0b7dc9c013ae8217b833b6160ae9f2118ea0da51","ssdeep":"","tlshash":"8f719a8d74f6b21d639133e011ba101bb3adace1524d5404e4b49d997c7b1bc8bbb87c","size":3791,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.475935Z","times_seen":12,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"86649f7e1c723028d2f82b2c50600d69","sha1":"d054d66e4c26951897c16eb69e57f9803279cdbf","sha256":"7c890a86937b21a7c49e2b3888877244c5442926548497319e537f237e78ef13","sha512":"82625c492170b8a8bc520d8e53c837ff8b7f02e4dd0e442c24edf74abdae64db605c53ef7171b7083f234b32d79179662aada511875ce13842c04185e8111905","ssdeep":"","tlshash":"c3d022072187ddb6a2729804030afa15b0ff100b0e262606f3c885026734b8cc262997","size":212,"data":"","first_seen":"2026-07-25T07:02:54.167434Z","last_seen":"2026-07-27T07:00:44.942215Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/javascripts/audio-player.js","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"65cbf911501a0de13afb9d1cb71933cb","sha1":"e9236ab09f15becfa6d86aeb5995fc896f1aab1b","sha256":"e92027b36a47b6e3c2e1c084ac31e8e7e6a4b904bbaa42d241ccf7f4e48d7a62","sha512":"a619c7409dd01aa33de6a1eb397188a42da076126f727c119ed69455158ccff9421daec4d8135dfee4e719b1d62aa70bc767f4430238da97714805c43655cc35","ssdeep":"384:Brt6nqLIf40nECIgPG8OrYleIoARnq0KaHvWvqTGDBnLbcfSLcg:MwXkPGdg7HnqhSTGlnLbcqwg","tlshash":"70c22c48b7e17d54435a34b3223f4a063bb51652545a3240f016c2e9bf78e8b91beeed","size":27399,"data":"","first_seen":"2025-09-01T08:05:49.861005Z","last_seen":"2026-07-27T08:03:47.45484Z","times_seen":1429,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c4ca4238a0b923820dcc509a6f75849b","sha1":"356a192b7913b04c54574d18c28d46e6395428ab","sha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a","ssdeep":"","tlshash":"c70000000c000000c00000300000000000000000000000000000000000000000000030","size":1,"data":"","first_seen":"2023-03-07T01:10:09Z","last_seen":"2026-07-27T08:08:01.411715Z","times_seen":134140,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"53f90a23c820f4d35aad5e1fc69c3631","sha1":"adfd381939291c573a7f091f1a486b30a9598190","sha256":"c43f747e9a95c0f6b4b687850f9ddb61fc6791213cfa3bf2c08f7358c1fc93c7","sha512":"757f13afbfba4457e7c08c0ed2cc31146c8174b5b9c42a6e86d3703078d5819a577f061397bdb28f87ddd8f3dfabb09be6cc1623d83644ba6e2d1df26c15e18b","ssdeep":"","tlshash":"f1a0220c288f2032b202bc2280323c08a32f2003e8a0ec0e0028c2c20b30a8e020303f","size":72,"data":"","first_seen":"2026-07-25T07:02:54.130379Z","last_seen":"2026-07-27T07:00:45.010981Z","times_seen":515,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"fe63e72e58f232e831ebaa50436cd976","sha1":"3eb05a9376004c39c93288d95443d7f967c4d383","sha256":"fe4765abdb60dbb4296984f65320d7fa3f3047b70c94c2cd7737a9edb867a57b","sha512":"b39b8a0ffad610e40cd8116a7d35d709a6f3bed7ac49e980e5e2f26218cdaca4629af6047a9e7a7bc8857ee6fcd6da93808f9aaf4c26de44ecefc2fd92a87ef5","ssdeep":"","tlshash":"36f0ebb65a0180c490b39deb6e7f3a3f61866aa7b58110814393d725939c1d2300deed","size":546,"data":"","first_seen":"2026-07-25T07:02:54.125329Z","last_seen":"2026-07-27T07:00:44.95151Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"24cc3dc813f384fde380df619f1525cb","sha1":"56399e3ce57ff98d68c7de98a563e572230dff6b","sha256":"5421715bbdaf2550e31d10fc28d444310a8fe7147bbddecf0abb490358a1553b","sha512":"fdb6e7d3b9452cc36c1e877ebe47c50c82fd413f2cef945f808e47b081da88ae6aaac7aa14386687c59479e19c856f6031d7ae666fe9c5b54a0b6fe37fa062f7","ssdeep":"","tlshash":"027000c008088802080aa02008800080220088023e0a0e0008200000832000280a28aa","size":19,"data":"","first_seen":"2023-03-07T01:02:05Z","last_seen":"2026-07-27T08:08:01.452953Z","times_seen":235092,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/480cde08b8bfd5ce.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"2197ad79def7e68e0db5210279b81a88","sha1":"4a9572c96dc4b65a933f8494889a2d78f6bc8b3b","sha256":"0c61a398dcdf9a5d5a6a744855e7d95635c22711ee32b5af4a658fc6035de812","sha512":"1ed4b2613596da63a7fbbb97a8839e5ae8cf7a62d48b3f2818a3d7b510dde3fef57905aa4ce17843dcee71e3b9205f42c8e3b412427bddd975643af58c1b5979","ssdeep":"768:9Nf3ebiEpt8v84l+ayd9ar543m7dGwVBmOJ8SLBlbGJz5RBC8zogjPwNp9WxBbV3:yGY8AJ8pIOCSOvB9GW7H5sZzIxB","tlshash":"8883f8f931d1f88207ab44aac43f0002f32c5d77189e7864a3e5ddea716455da1f2faa","size":84456,"data":"","first_seen":"2026-04-28T18:06:46.282063Z","last_seen":"2026-07-27T08:07:37.434807Z","times_seen":1617,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"42397e761d6e41735413532880049e6f","sha1":"95f740d93be57eaa0388e50ea79e4ce0bc32a47c","sha256":"76354f8202dcb3bd872442c0934f9c7e5e9f61540f27727a42a5eb594e9143ea","sha512":"37cf8e6de170216c3bb26136f48d90eb71bc4bd34d7b8e59991083fe5c79b32d4f12a4412445f5f115a748693f51a2d3528d3f2e8b169ebcb1b4a87c2124f9b3","ssdeep":"","tlshash":"8aa024451fc0173071c174f015070010450d107dd37444d54075dcd00c34fcd3441117","size":82,"data":"","first_seen":"2026-07-25T07:02:54.195903Z","last_seen":"2026-07-27T07:00:45.014366Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9f502ac14e14405587d798139e860b5f","sha1":"b267cfc679f39f2d95f9d3fa41bca0eafb931aa6","sha256":"39d2483e41bf71db160191d9a148b4bc26c0739e732727e37be0f18bdc8cabca","sha512":"f5bc3d4834c9c4ed165d49476795fb1170fdc577b58fe4b21dfc67cfb4f6eebf045a3812ef48a2f15758e790ce7e111cf9dbd9ffcc3438288c7340e6eeb7661f","ssdeep":"","tlshash":"b1c022ccbb3e600d9121f90031f84e46cb4125ac4407ede3a70128b4448180aca1f406","size":194,"data":"","first_seen":"2024-08-23T10:18:17Z","last_seen":"2026-07-27T08:08:01.465241Z","times_seen":174048,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"51792c67c588ce8139b246f015ed8a85","sha1":"d3148f014e0f4790ff65a8004585d17ed319833f","sha256":"6f70d853ba1dee4fc189490cfe4b6b1ab59f5853344cd85576bd2a4af2b506fe","sha512":"963ef7a25d5437d1a045dedfe34afbab41db4c620e4378606ca3b7b0c4219e51fda11b9b0e0b761093eda33aeac0e532a27b3f1a1ee110c13ba1433cdb28c067","ssdeep":"","tlshash":"cb60003f03000003300003ff0c0cf30030fc0c0c000c033c0c003330000300000c0000","size":15,"data":"","first_seen":"2024-07-23T18:45:20Z","last_seen":"2026-07-27T08:08:01.335653Z","times_seen":176106,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"91ee795dee2054421ce7855bcdc31cfc","sha1":"551647f3514255ae9a211bca4e815ba888b5ec78","sha256":"0771c0dc7f5b5dc1d677691648ced80f1706fc22b2ba6b5dbe83bccb542116ca","sha512":"bb3e2b367750e3a9de56c828c6a6f962f111e7fefe5679652476e5a72fae8951c59a2d02e47b533f8a6dbc7eb06ead5f4657b2ffbbdc1aa003695622a5865fa1","ssdeep":"","tlshash":"5e9022e02c223033002022208c0f03302a0308cbc8c80230a0c2cc2a2c3000008c8080","size":56,"data":"","first_seen":"2026-07-27T04:31:33.298034Z","last_seen":"2026-07-27T04:31:33.298034Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9af69e91e9a0e1650ac23ca1a06d9a03","sha1":"1a26706289f10c0bd07fcca5b37e9cd1f31742ce","sha256":"b5f92e34f5614aa40d35166769b90304819bc552ad045006a56b2672ea5e635a","sha512":"23ce7998bc81e6515eb7c1d416ff1e22fe067aaf6d5348bd66654a5c6d9d65e89276e08da1431693589b7566ebdd95651132e2d6ed6ad3cc765532482f5c5d3c","ssdeep":"","tlshash":"67d023de54545753a25515f39009d6154307504f52f8cf5bd11198b414d64074087b11","size":213,"data":"","first_seen":"2026-07-25T07:02:54.07392Z","last_seen":"2026-07-27T07:00:44.954199Z","times_seen":516,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9a2a6b16da447c1060cd4a5c09dc8a1c","sha1":"fbe9678c38ea75b2e7379a3bc99ec154f8339330","sha256":"5e778835b3f9e816a452ab0f9acd9459861522e6eb9f61f1c9e60fdc8d9e64cc","sha512":"0808cbb678605f7f165e7bd536f3c2f0c25dc06211624161d1209d80074d262e63db1c4ce941f6da3374566ed577862582f561ae623f28000c61877b25a7c317","ssdeep":"","tlshash":"c4e0c274241450de4a47304a908d7fcc791a86ca3d483b6aa09180d1a72cb9b636dc38","size":301,"data":"","first_seen":"2026-07-25T07:02:54.177153Z","last_seen":"2026-07-27T07:00:44.996332Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"85667210a9ca3aaa44be54eb3274f280","sha1":"f69565032aaeb8d28ca4ca0daea8784dc01baf70","sha256":"0ba3ef12c7fadaef9ac42ea9cd42db694e3a5d2f64c6d21c2690ec7649bdad85","sha512":"e04c814490d64e8424e9cd097247cc4ce5ef616c21619b8b6f35b81cc47ac3f4504d94e7ec0a8bc45c8d5fd0deea6427a7c1c5d34c0841b6ec1d9e0b785c0570","ssdeep":"","tlshash":"23a0120074447c0116112c75c2260544b0511a0b50902401810996c002705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.208693Z","last_seen":"2026-07-27T07:00:44.969132Z","times_seen":509,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d48a24ae9672ee573050e4d3aeeebe4d","sha1":"8f8c4d27852980a1ec5a8b1aba30769001314ec8","sha256":"53e5b7d706a350fe98d52499058624e15cddc1541f17370f94a899a386c50255","sha512":"02dd385ce15083c89617859325e29ce885ae235c8c5be416828066dcb5db78e69229802d87aaf759224e2656ab4c23bf1740ae1d357cfdb57ebf78ab77488921","ssdeep":"","tlshash":"43800020202088288888200b20308b8abaa0a228a83a2000a08c8e2cb822e80a038820","size":29,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:08:01.460156Z","times_seen":186748,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"115b3cd49c739440787a505ab2ee1fa0","sha1":"3f1da71d9f392fd05f503b9c37140524df25c91b","sha256":"b36d3c52f42742303976f7fa86f396d248d2fe7b0f3b3e18c092577e621a0e0c","sha512":"78e25ce66f42fd5b77614cbad4c7ffc671997f0f317882289e9da969621935ea0110b6910e2b693a99736a7403f1e43f54c02d76485d8fd7fe72bda1265d4a6c","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000c00000000300000000000000","size":2,"data":"","first_seen":"2023-03-10T22:24:54Z","last_seen":"2026-07-27T07:00:44.977418Z","times_seen":1876,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a931635074a5017da74948b67e16c76f","sha1":"a6799582ad16a7c1ab8221c166268130df6691d2","sha256":"1fb437ac78114eda813a7c4d5771b6d3aa34908a5ca3b743d5eb5c79088cf82c","sha512":"7c96bb515bdba9ad60854b433d24e77982a321dd7ca71599fd8f79acee580802f56829a5dbb7f64932a51ad50d18a9438251a6ad8127ad2b2e332811033d2c7b","ssdeep":"","tlshash":"a5d023cc3941f262d06274b9041704dfd173384a1e1cdf4184154875667c5d9407f4c4","size":206,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T08:08:01.456556Z","times_seen":207482,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"779ffe8039ad87e2a1aa1c111061fae4","sha1":"7765f6360937f90e51dc4974d13c20887adca712","sha256":"9e5e6d330bae7d5d640cf35fbbd6dbac19e4eec6c5bdea7b99a664523269f90f","sha512":"17cd5c8a938106fbe74d4ea623e67c3669683343c08f866700fd6284152c7397141c9ca02451bf6a32808003c4b4bf3fcce72cbbe6c53a851a1da6d254ea3619","ssdeep":"6144:OZaBJxrsw56sgMoiImct8de1F6Suapko3iM80AvhapoXgvWbq/+:FFpgMoircDkMiM80CapoXgvWbq/+","tlshash":"30944cd97762707392a2f5a5902f0103b17a68a6f40c8c7cf798ddd16eb494942bbf38","size":442344,"data":"","first_seen":"2026-07-24T13:29:06.322297Z","last_seen":"2026-07-27T08:08:01.170441Z","times_seen":1052,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ac6dfa045179132aefaf73bbae961f84","sha1":"5b4a09943ab49ca1438497710be50b54077e9374","sha256":"18437a515c82285b4cbdaf60b46bdcd426eb4514c03ebef4e2e4a3caa0f75497","sha512":"df27138801c468c597084ae71e58544c6d3b95e9d57d3bb003339aa035e1e04eb7b85932f01573eba17613500cd7bf65d9de52570fd0dcd3f409dc5286d5f155","ssdeep":"","tlshash":"a6b012185c0835193f336ce99117681ed0b0dd06c4b4b90d8004d5d402a404e5051cbf","size":94,"data":"","first_seen":"2026-07-25T07:02:54.141577Z","last_seen":"2026-07-27T07:00:45.030723Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"43cc84282ae8ae707422fe0e47a737e4","sha1":"9494dfe845f51f5f1a62975275bc212704af3f7b","sha256":"84be6de752c70c93efb10cb0b1bee2711b78342f56d6fcf411ab0f8c5c003348","sha512":"e21b2eb023b2c19c6a1bee13ac490e62d541e2f74e423ce0073b1ec70e611810dc842db685d8eedb836d0520e71553cd308175651f588f74b49a887920f060f4","ssdeep":"","tlshash":"80b092252098852637f508bcb96467d4bd3241a060096151903d899819b6f8b0990bef","size":121,"data":"","first_seen":"2026-06-05T01:28:54.596192Z","last_seen":"2026-07-27T08:07:37.501079Z","times_seen":1425,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"10d8b01b1b865a519be7d5b88e98bcac","sha1":"80cc14de2c8bb984866e74720f37ad57a80e9acf","sha256":"ce33f60576204820a75cd31723620bd7247276841db0647fb820abea4c8ab03d","sha512":"cf9a2f01ddc7113f81551041381a6e81350c9febe4b7f24f2143df7177c5bdf87a4cc5ef95a5a14ab06aeab4a710635b1e8c60e816eeeebe0766eeaa643d7208","ssdeep":"","tlshash":"f0f00e358b3c10220aec08f9c0898be83e2d7262e0245060fc69de7d0948cafd053eef","size":525,"data":"","first_seen":"2025-07-20T14:54:50.990021Z","last_seen":"2026-07-27T08:07:37.502624Z","times_seen":4249,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"630261c66fd1cfdc1d377aeacf7cae48","sha1":"2510e79e093980a6efcdd513d4134a19f2b96ee9","sha256":"2f90d6879fdf68aabce3ae9fbf0028a10659ba1870e24687a8de1bced3e5314f","sha512":"dd63351fe827dcd768ed78b36ef29fcaafb1d0583cecbf8af4dfa8d20fb478d9e14e87640b1a089cde6ce993a61d73f992e79522c7a77368405134f12cbe01ea","ssdeep":"","tlshash":"54f0c0df1711c972c6b98167337fb355383272127a9104209658aad86920cd3c219c87","size":542,"data":"","first_seen":"2026-06-16T13:06:30.04206Z","last_seen":"2026-07-27T08:07:37.503889Z","times_seen":1306,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"1a6e1178e4bbf5730bd664a49dd3bc24","sha1":"17c3ae3273f9de6afbbdedf2e413dbb3a6722792","sha256":"3814cddd18b2095e01abb745a99e5ada90178e709c09879324c3b623f2d829ea","sha512":"cfb1aab0bf589e33fd12906f448ddbbf7163420a088de513b174304c9ba3a7abcd9b41c98bc4dd51edd0206c1fe4660db9857e3c6163d1bf50c670cefddee509","ssdeep":"","tlshash":"de9002b090c39c5890264186687100160b6c040c01080141132184d810115048e40d8e","size":43,"data":"","first_seen":"2023-03-13T01:07:12Z","last_seen":"2026-07-27T08:08:37.735002Z","times_seen":203966,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"3ecaea12642976a1d336129f8c85369e","sha1":"a6999ecd201a6667f53a0ef41335fec9e160ad20","sha256":"bf3f74192fbb6caa6f83b6dbf1fabe1975fe5899d1b824f0ae074c30a9f8d371","sha512":"d7d20694badab3c88645a504b7d386dc31ae1972c286da756e91824726e79c7d7de2152680962ffdc1d53aaf6a811e4771038420f1405d325884044943246d55","ssdeep":"","tlshash":"65d02241b006dcd29ca2bb2a71348ca9009caa7c10a161c4b2cfc25100b39780b42a0f","size":206,"data":"","first_seen":"2026-06-12T17:57:14.031557Z","last_seen":"2026-07-27T08:07:37.506109Z","times_seen":1354,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"b6821bb45424547e332af4cefb5a5a75","sha1":"4767332b287c3b15f28ce99f18aca4ddb021f181","sha256":"e0c576273d1ca8ee9a2fba609a005263c2bb272cdec1d6ab5b997dc7c586bc06","sha512":"e2a0babe63e240a4bee41e4c5c1bcc19f8666a69fcd43eb6b0c3671b929958fba310283d97fa4923654ded85f5bec8f38ed0b3ca02d30aab912ac77dee4f01e9","ssdeep":"","tlshash":"5f41ff25c50fdc0889f3cda230cdb913281a913056e22657d96e5ee9cddf43b53a2b58","size":2225,"data":"","first_seen":"2026-06-12T17:57:14.032554Z","last_seen":"2026-07-27T08:07:37.506984Z","times_seen":1354,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"0fa06e655bed2d7a59c026cb90ba9802","sha1":"547bbafeb7acece1ce2f2509f8bf346043d84fc1","sha256":"c9da0420122e0b5f04aa5bdd58c285498cc2921321de0c0a4b1fdc766c821a18","sha512":"e2aa2182136fdf4aca1b1667166168ca0fd10c964e7c6719aa561160dafae66ea577fba93d15074f86ffa35182adf99c2c96ed72627b5f52febc663e406e2921","ssdeep":"","tlshash":"cb800475c0400d1741f1001314343011515c440444010150d3517145151111d7d1fd4d","size":35,"data":"","first_seen":"2026-07-07T19:15:46.886577Z","last_seen":"2026-07-27T08:07:37.507783Z","times_seen":1107,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"e3204b49a85b636cc8880cbad5ba5018","sha1":"6dfed1a64fc53aee256c26a5c52cc6491df97ab5","sha256":"a765dc27704c7f8a199ae74b8af7ddf6be7485298a56dd54bc46fdb7b69b1221","sha512":"f99c67dba4af1db7d12716d800e54f232db84e89854334f126cbdea05cfeef08509cc055ae2084173338097125b435b5229d4b00d74fdc4b995a87aaa9258038","ssdeep":"768:XyOQ03DV6Ly5NEdTtWWLiQn6spuNokpvauELcQcrQ+0XjsbgXlmJJWXzIC6tLKf3:XyOR6LMELcUPwbgXl52cfIyZ589e","tlshash":"7bc39268f224e77e7d3778ac96bce44c320571a1e9f807dee95172119fc3bb26829118","size":123458,"data":"","first_seen":"2026-07-07T19:15:46.907257Z","last_seen":"2026-07-27T08:07:37.508589Z","times_seen":1107,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"67a5c420ee38fdc0a33429a1b395663a","sha1":"d18d9874a6ac698c63568a84f1a8b515a9adbbe5","sha256":"c2759dec8fbb791e08e0b550a68d292862d8a0a9c14170d9a1ee5942e07c5d0c","sha512":"1ece6c5b4d04d6df39312c28872d53ce4029ff463bdc2950077bc1b1861d91dcbf95cd010e6a397c48717f6ba62923783d947a93d07d403c8f5fea96c845f98a","ssdeep":"","tlshash":"2501c02a5400ee5eecaa1eb4113d8dbb268d8abfc250cdfcd459de242f4627513a79c1","size":831,"data":"","first_seen":"2026-07-23T13:38:20.570216Z","last_seen":"2026-07-27T08:07:37.509329Z","times_seen":648,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"1589309228d0596a56ca9637600c0ffd","sha1":"0ee2c12424b1650ebfe7c9aacade8146e4270115","sha256":"1dd1d72183717c7c8dfe538108603807a462ddc3769bb5114cee9f8b8c3ab1c8","sha512":"243e5a148dc39dbc7129e66fc0e760f5690f408adec6a19e92eb41013fbd1f25bf12881022d4afbbe487b9269f51665585861a9d985ece6eecb5df695a9e3b02","ssdeep":"","tlshash":"7a11e01eda5eee49a829cd1f143b1f3688c4dc779034156db25ecfc81262fa20ba9d91","size":1030,"data":"","first_seen":"2026-06-13T02:21:16.275218Z","last_seen":"2026-07-27T08:07:37.510129Z","times_seen":1334,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"10967388aedd93a37687c8c1ce2fcb80","sha1":"6a3fbd3121492cb2dbc250e1078291fb40a5b933","sha256":"03728e970c199ba3374ce7b1b3f3163632fa6de63ef11aa3a05d5824e3674b52","sha512":"939dc8ddedb2b725ff92e0a41928b7227646168e4948a090c4271fcfdb7b6089f60d0945a1d5f213eef31f6000ee46460c63d2b11ca5cd9ace0b906d97445573","ssdeep":"","tlshash":"5451337d3504c96bedad785a127fbe3528d9016b07d0ceb887c8de0409418bfa756dc1","size":2768,"data":"","first_seen":"2026-06-29T23:16:30.42623Z","last_seen":"2026-07-27T08:07:37.510851Z","times_seen":1177,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"307cab8226db7752ba6aaaff5720e1ae","sha1":"13cddabd9f6bc9191241d2165fcb4b081f20c93f","sha256":"54426822571d255ae68721d9aabe5fc072c61606fe2ffe791667e198f94ae3b0","sha512":"f433b9e8b489e6999a6eb18a6ed6c8e3578fbb8539bf12c7149bbad162d2c1916abfcef37ee635cbebf013d407d9c370d8ba26286d9de08864aa44c8079df353","ssdeep":"","tlshash":"9331d729f045f68abd9f26b5903fdcbe218f546e0fa19ab4465789a9470103d2783ec0","size":1623,"data":"","first_seen":"2026-06-12T17:57:14.038934Z","last_seen":"2026-07-27T08:07:37.51158Z","times_seen":1337,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"04a519a0bd479c67c4ebacec3d09f64b","sha1":"85232a728bf982cc4a73732a1e798f279fd1b93e","sha256":"35f0bb0c452726724f562ca9d05532bb98aac7b8d11ed0de1cac17d2d096823f","sha512":"23d7695f631768e74b2982c8336546ae4c9e85b33dff0e986f29119c3644bf89dc262c7dc87e40d5c99c439436ddb989d78f2a3c40dde91b54522b2917651868","ssdeep":"","tlshash":"6c21926e6804de57ec3e3d69053eed3a10cd887b4650def8829ece041a0297a37dadc1","size":1206,"data":"","first_seen":"2026-06-13T02:21:16.284448Z","last_seen":"2026-07-27T08:07:37.51243Z","times_seen":1334,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"25365a482f6248f1da0c3425cc63a8ce","sha1":"c34437aaa7f17ead780baa8bf8043f664b4fb2c4","sha256":"61be21898e1e84434732d2734df95db4af9ecb4e5f2486f2da7641bfb09224c4","sha512":"8dce633aacfbd032476a23f6c09e157087e1598acd773f855f29b9ddc2f649c17eaf0d0b13807397663991feea665e1d9d0692e5fd6e5ffd18a16db2ac340898","ssdeep":"","tlshash":"6ad012909c82cc1dc6a60f37283a6c3622dcc66447455586adc9da695a8ae3105a5dca","size":198,"data":"","first_seen":"2026-01-16T17:39:52.610905Z","last_seen":"2026-07-27T08:07:37.514278Z","times_seen":1343,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"44652b490b6c9ea2158adc5e0daf547d","sha1":"77c456327b269bf17f3898b9250e3829e77ebc47","sha256":"92fb3cc60692c42b2fdf8a54159d9197f9d0db962357ea84f96c373efeaf761a","sha512":"6e8ad870e7e45d5b1f8d83242685835e8abac75962f49b68e99c5a3a43cb1bb6d45698153757a16ab0a91c6c7e5f610870e696c51497bac74d88ebc4c591db45","ssdeep":"","tlshash":"32c04c25c95999059825cc8e141a2f2a868ac87640280d74736dd9886161b415b59d95","size":153,"data":"","first_seen":"2026-07-07T13:53:11.726539Z","last_seen":"2026-07-27T08:07:37.516507Z","times_seen":1108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"b1691151961bb944c7869d870287a11f","sha1":"b4548e10cff0bbac231a29ceb780078813a47fbb","sha256":"d1efa1aee00140209d76ff05acbc6e90d27a3c130cb231383fd87a5ce25dc4a2","sha512":"ea9a091ece87fc089d0e9823673c4132c7f4515c8068911d43c98245b38f19657bc47ad9bc8629f396edbfefc4f14dbf897ec0cfd892705ec315e07043654c5f","ssdeep":"","tlshash":"f3418bb2ec19ec44e7c65e0c693a7ca454dd83a29186a08fb29ced784587d344df1a32","size":2250,"data":"","first_seen":"2026-07-07T13:53:11.727685Z","last_seen":"2026-07-27T08:07:37.517327Z","times_seen":1108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e3853dd21d7b37c8e001cbeb80def269","sha1":"22eab5e6d95c0a758b5105a2ca285550e4ddf4c0","sha256":"739c47988f1b9658cc13de9f615b8e5dcd2976ae3baf5442f36d6cdb7646b1a2","sha512":"186172b3a889c4e9dc3598d3d92d43b10144f04dcf14ecb3bcc6b6d6f45448caa601ab93a2b550bd7bf82f6a1905efccb9cabc88da9b70873a953a5ee0fe8660","ssdeep":"","tlshash":"4ef02d4235828222c02270af50bb60ce00b2c261af6b8e4e8a3292d15cea48a40c6f89","size":627,"data":"","first_seen":"2026-07-25T07:02:54.196783Z","last_seen":"2026-07-27T07:00:44.981605Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7bfa335530acd41b8967a37e1c3e076c","sha1":"bdd8d14050dd0955829601ee023b1d449a9dd9b6","sha256":"ef226bb136cc66226cb2c478dc58478eb1fde25b90960098b4b48eaa64465b23","sha512":"feeca3580d39cf46c2d2f6719da557fdafd0278ce21b7e2710aefe013293c853c0ddafc3045baa1fc2ccc483191b5d89d47cedb49a52e3c55012e4718affa3ed","ssdeep":"","tlshash":"97c02bc49d5110548141e0bda13e215a30cab1031c200e10d730c2eb7c357d4100f74f","size":138,"data":"","first_seen":"2026-07-25T07:02:54.178036Z","last_seen":"2026-07-27T07:00:45.027665Z","times_seen":499,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bae3f90cb000352645e35fad60da411c","sha1":"00023f94c170125b979cb1914925d06ab1abfbce","sha256":"1e3606d95ce27d593157594820335681a9380f51a96147303cd8000e60a95e12","sha512":"d83d07979674822b4c966ddcb3bd4feb84830834e1f9fb255774ae237056cc357599e3aab9c6f47242aada2148a65c9ea11c859b1e8f550004535cc363fa02db","ssdeep":"","tlshash":"03800000203008388088000f3032cb8afaa0a22ae2322800c8a88c2cb0e8f80ba28838","size":35,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:08:01.428042Z","times_seen":182783,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"96d66a4d9708fdb6dd5597f3bbc7d624","sha1":"e10a66fa8a836f6f948941262b70e1fc928a446e","sha256":"3cabac574ada654802fc1c4518d870f0791a9a3ac31371677e75fb683e47ce89","sha512":"06c25bc4dba52367cbe19252c1a013e1714a198141d139939944422266aaaed60ea3953c5d0f890a7f9ce7887c5f2a4cbb47173d06f829d50ac33f6f353c015d","ssdeep":"","tlshash":"ebd023cb729c1114574337141eef0448bc64b4d70dbc941d8649581058011ede03aecf","size":195,"data":"","first_seen":"2023-03-08T14:47:45Z","last_seen":"2026-07-27T08:08:01.370565Z","times_seen":207515,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9d0137bffa0f20d5e8e9f54f2c84cf0a","sha1":"39edf6d919f82b9692a2edfecc78427a82567c42","sha256":"269d4d56785ffc82f3ed05d8ee3b84fc18d7474663ddd06c6fd285165190bb19","sha512":"0b8b09f13f8fbeb3546c08a3501f4060ba8e5f762722ffb1a53be6d0e297abaf9719d48d50cac29940e403702c66627187396b8961aee26586ac934568af2ea9","ssdeep":"","tlshash":"db50000000300000c30000000c30f00003000030c00000000300c0cc0c000300000000","size":10,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T08:08:01.466317Z","times_seen":184329,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"64d8c858156192a16a990983d35fb3f9","sha1":"1ae03179ebb040c510ecf6f785c0002f21932433","sha256":"bdfd55577f7056ab007e88fcfe9352e9805fc05f504131193cbe81c001162fd3","sha512":"e6c8b62010e24ed3c7a59b3d92aa3165bc2270274b755e8ecee06a238fe29682b08510402a6e8b7b3f85027d7e403447ed4694ec2bc43c136d5c0f1cb1b3f23a","ssdeep":"","tlshash":"cd60000c3f003000000000030000cc30c30cc3c0c0f000f3c003000000000000003f0c","size":15,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T08:08:01.455586Z","times_seen":171740,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/lightcase.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"ab6cb655743568c595a9a25c96c252dc","sha1":"f3cfc5a9e5796fde2af6efb5e765536de643228a","sha256":"b5565dbbc68cce0b516b99954471cf20a1b1f6cbb4d2ebd96d81c1b7bc352100","sha512":"2f68e4f0edf265e81a8f5605e9959e39f831935d65bab4a55e3316bad9bdcc8e4af8e9d18447d1abf587da443338702191933a937d0636603b345d5a2b9a7d9d","ssdeep":"384:6slK3b/e6dPN3OReKXhWxAmXZeCbul9e429DXxLdKMjIb/CMmp/bkoSB3xdW9Qhb:Tlea+PdbBpZ9uyhx5Knx3hm5vwp","tlshash":"ee231efcd74db155402b6059e9bc51cbe23c843265396cbabcf0da64f580178cea2fa6","size":49384,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.491997Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"771f01104d905386a134a676167edccc","sha1":"51af17721bd7b84218774f9064fe481c033d0b1c","sha256":"46874106f9ac7f3b68a422895aa223e1ea5ed0db860f179f6362cb166c65f8ca","sha512":"0c85b6b14d917b941d01903af93ca93b97b7112355ba3f19f0ac2e243427be9905abb48f24a6dd6c6a72c140bbbc7ed7d231609425b0f132375b0f990ccef8cf","ssdeep":"","tlshash":"c7100000000000000000000000000000000000000000000000030000c00000000c0000","size":2,"data":"","first_seen":"2023-03-07T01:20:09Z","last_seen":"2026-07-27T07:00:44.994262Z","times_seen":1807,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"25607f1ffaa7d1ff142e22e0e8ae6779","sha1":"207c150da361f4c91b20acad7c60918a9818305c","sha256":"8495a59d9339a0440ffe0861eaf8f3248dc31cd6f5e5447e07d6e6d376b2002c","sha512":"5a76b2517dfa3140c30a7a50b1d6f4d49ccf641725897a7d2f2131e4638d97279de45263ebb59371c7dc55e1204c94afd08eaf294e6cffb62e94580ea47223a0","ssdeep":"","tlshash":"6ad05eeb6b0f267900d33d34090b0a546a56c401ecca14e59711b8dc4f5460b40f3d2e","size":242,"data":"","first_seen":"2026-07-25T07:02:54.140729Z","last_seen":"2026-07-27T07:00:44.998252Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"30ba2015f57e9fb9a3b395a597ce8f96","sha1":"bea3fe0a47418c0192788fd73b50c3b7f930a3c9","sha256":"f684f5f4f99665c48ebf89434434309281912ca6ae3283b246db5b9b0725e75a","sha512":"3db38cab3bcbb8c7595c8f0d00363bd335a59959c9d266a84b8679341c9c2f9fb4d1f89ae7679bf1c2cde13f1da7f2ec0043e4b1fbc8abdea754c06b095746e3","ssdeep":"","tlshash":"c71000000000000000003000000000030000000c000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-12T15:19:25Z","last_seen":"2026-07-27T07:00:44.984678Z","times_seen":1086,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b5b6fee0a4d21f85dce9a49e0e9a9036","sha1":"34f9d5791d070ae880424d2e4c6c2b578271cac0","sha256":"123cbe058700145f7b9e0d18298653a900ac9389207b3b95c4a98fbec94401ab","sha512":"16b1868151143dfcb7805ad1d5a183bb7c99d79eeb35b3bb38b1d2110c7bd387c1222be2c121764afaacd7c74b503cd59fe5813f1d5d99c7d207ea7c57095e5f","ssdeep":"","tlshash":"52a0120076447c0116112c79c2260545b0511a0b54906401c10596c102705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.173327Z","last_seen":"2026-07-27T07:00:44.97092Z","times_seen":509,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a78c5c832247d38a96a1d593f639a2f8","sha1":"5f0015f64b3fa0c1cf637e590267ba3b24120422","sha256":"70af5859b85dd4f8bae68a68aca5782a1795821b1cdd307c803d62f76ed1859f","sha512":"effa7fe575fe0f5f3c2a7d8a377f6bc00f909e1e47ec5a6e93f6f16ffd0bf227e506ee3da11dae805d30c1e01b690cacbfb4e891f973bb5cc1daf9cd7a08daab","ssdeep":"","tlshash":"ab7000083e08a0080a2238a000ab00280022000032808a00808002a00c3200e802280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.087327Z","last_seen":"2026-07-27T07:00:44.957131Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7121a3428492966c83430108c81b0128","sha1":"faa54a8131b597a6b972810794c8ac848b67b351","sha256":"6ece104aeb4ca53d9261705afb936cd0bebf554bd318f77613325b124a234c24","sha512":"8f54791b217786c95592d4411cc15e5cfdc7432d5db0617f60ce69a260cee1e7fd968b441bc4a2e40cdd6af24c25051881dc4b934bb3458a152b4503d52e13a1","ssdeep":"","tlshash":"c710000000000000000000000000000000000003000000000000000000000000300300","size":2,"data":"","first_seen":"2023-03-07T23:42:40Z","last_seen":"2026-07-27T07:00:45.015529Z","times_seen":2610,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"21af29eb4a2661cde1ec2e23d5bfacd6","sha1":"7d2873f1d5edec0591009cb7c58ac0a8583acbeb","sha256":"355b175012ceed0b8437fb62d9e30416e770998561d266f70691acd8f7022641","sha512":"421539d8e4b532816aa4e443242637ff1e64519e1131ca733adb76acb7defa95088078a829c848c79f3e0c98c5065c0179d868360023547dad53797f81cee06d","ssdeep":"","tlshash":"f1c0122f63c0433609d3a2c4128f2716420991093ed51dae985663b81c3a0476068d25","size":190,"data":"","first_seen":"2026-07-25T07:02:54.080469Z","last_seen":"2026-07-27T07:00:45.010434Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e213815f8e0b9954f8d43e3a59f8b742","sha1":"563796cb191f082f24fc52b017905533a0ceccc5","sha256":"842c53eb438fb28e95c14d32423b0fe01bf557c9e623b684b19663d497bce97e","sha512":"b5bae6d10c35f01992dcc33c3f24a7cee7ac0fb56cf4a9e79453d213297ffe3b8e6e4b3eb7de9b1d10a5ca2638e81ac3fd3e66e6d76d157a75163ac7caea4f89","ssdeep":"","tlshash":"ad60000ffc0c330000033030003f000c003300000c000000000000c00c3000f0003c0c","size":14,"data":"","first_seen":"2023-03-07T01:11:47Z","last_seen":"2026-07-27T08:08:01.437562Z","times_seen":201817,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d94eb39b7c5996a928c1d97e2d336207","sha1":"63d8851850a208fd85df769e5ccadcc4474859fe","sha256":"ea73e902e70b18a2f35dd009e26fcf9c68771ff4060e21c60533c90291328a25","sha512":"36bcc6c512fff73197bfea984000d3f197ae09de13dbc39397c2812b3f5b9e8da2d6ebead97520615c83ac480fa2c07701fba86a4a659c3114b29b9c889dbb34","ssdeep":"","tlshash":"c7100000000000000000000000000000c0000c00000000000000000300000000000000","size":2,"data":"","first_seen":"2023-03-26T06:16:09Z","last_seen":"2026-07-27T07:00:44.956099Z","times_seen":1175,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cb8abb683722cea7fb115342abc554ef","sha1":"776b83217d825a68ed51f891fb2d360c233eb726","sha256":"139ffca75e64693ada18ad987a1d7881947ff41ed7784d3dcf349f5915124464","sha512":"7fceeb9ba20bab9484738d20748f7a935aca6ab7d869417d3629d2db9884afba198b09c6fdca26a84d90d6fa5676000775da441daf4e9940fc687e476ae54a67","ssdeep":"","tlshash":"9fd097c46bbb982c4984ce2b40331131d049a21c8e080c50b230fb3bf7a075b243b0d1","size":231,"data":"","first_seen":"2026-07-25T07:02:54.205479Z","last_seen":"2026-07-27T07:00:45.00312Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"06940d1ec461f6967164c26d60cbaefc","sha1":"2dd63cac632d95db488d6221109b5f3f932c9999","sha256":"c9f3959e3d485cc26bd83a108824fe7039921005faa810892c704386b9572acd","sha512":"4abc10cb04a87ffa25293243f9bb9d4498d4a1acebe89e239cdc92058d9f491da6b5de3ea698c856e62b3153c7d006aa340ee50912e29f019752453976fce2bb","ssdeep":"","tlshash":"ebb01224281de61233322ef080131d2c603b4402424f551ec44ce5c2032c0ce80475eb","size":96,"data":"","first_seen":"2026-07-25T07:02:54.115267Z","last_seen":"2026-07-27T07:00:44.990278Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7694f4a66316e53c8cdd9d9954bd611d","sha1":"22ea1c649c82946aa6e479e1ffd321e4a318b1b0","sha256":"8e35c2cd3bf6641bdb0e2050b76932cbb2e6034a0ddacc1d9bea82a6ba57f7cf","sha512":"2e96772232487fb3a058d58f2c310023e07e4017c94d56cc5fae4b54b44605f42a75b0b1f358991f8c6cbe9b68b64e5b2a09d0ad23fcac07ee9a9198a745e1d5","ssdeep":"","tlshash":"c700000000000000c00030300000000000000000000000000000000300000000000000","size":1,"data":"","first_seen":"2023-03-07T01:20:09Z","last_seen":"2026-07-27T08:08:01.422436Z","times_seen":56391,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"ea47be0cbbb7d8d8be89f3bbe09001da","sha1":"4ee5818397d87605dcc13d35579f4a5322438abf","sha256":"2951a897103b449d5d23d048a98280cf25c3de95857c1688ef3f06fc02498a25","sha512":"b0ae142c77af5edb5e797c64d4c64a0137000390ff955ac3dac3657ea1ecee849ae20d516457db5e3177dcc3841c395f867036d84ac515c01375479da2c4a18c","ssdeep":"","tlshash":"5dd01217a496d4aa106774385a1f9201145225036916d9227a1c42543f2d21de73a6a8","size":270,"data":"","first_seen":"2026-07-27T03:47:02.611473Z","last_seen":"2026-07-27T04:47:12.584336Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"bc344c7579b572eca0a6c26e809b1768","sha1":"f228a3c6c6d848fb9f1791e0fcb56e99bf7dbf55","sha256":"3363555a9d1c07d4097c64aac99112603abdc591cf1fe0155359bd68985517ec","sha512":"5897c192cbb6219782b77a04f7f31745f0a8edce3ffe4c26058a7a887d3ee0258fa7352063536efce72f5dd1a4e9b0e3a1dada63b73997fd5bd175e4dfa0aaa1","ssdeep":"","tlshash":"a3219e21bdee20b131f3b21936df441059d6604b9805dd01708d2ecd4fd4d99f462aee","size":1373,"data":"","first_seen":"2026-07-27T03:51:33.574317Z","last_seen":"2026-07-27T04:32:40.600507Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"cd49102a4c657e7869d00b6c81c05862","sha1":"6d065b06a25ae4c302e049d11c5e3262e170defb","sha256":"43d9c6a8d3f97be50cbc306123950715047d23b2d358ecbcd1b4449541f268e2","sha512":"b5daffce881c1bf4a024bb3e41ecea356a341386d266aec611b93b4bc88a48a674b5c7552c0484bb1c1bd5e4f8d95427b82369339f4ad2cbe1e8b6143533668a","ssdeep":"","tlshash":"d9e026318b3b2447e1b33dcef7e10348192220ce76264256b62f4e442fa9515515fa36","size":337,"data":"","first_seen":"2026-07-27T03:51:33.57623Z","last_seen":"2026-07-27T04:32:40.60125Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"873d9223084c8a44cffad4c02b828297","sha1":"0d15e45e52810986233529bef646568c8bba948a","sha256":"d11dbc8687de2b951c6a971e9a0202eadc8677c8cd822799d4d53f7bbc1beda7","sha512":"7db686764715f31fc023e2a6058fbde74b38db22d000132f06f3e0d389faaffce373097318ffc6aa89cc86c4010ab5ae0f2133fb7652b054fe5d431c8b41c5ca","ssdeep":"","tlshash":"3e017b489852e6372e4f61a5633eb11034b8404acb1de819b94fc7906f64e986d079ef","size":783,"data":"","first_seen":"2026-07-27T03:51:33.577551Z","last_seen":"2026-07-27T04:32:40.603242Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"163aa05001fbd99cb112afd77053ac8d","sha1":"54f69b0f06ab2fcbc37dcde6d66c701346bb96d7","sha256":"4f3cd35e3f1b2a4dbe6fef8b1c11189d77bf90c6b14b5a3cc545198c462f8942","sha512":"4aee49b4e4cc6d39eeead06f84f35f62ec1ddee51a5e8ed30ba42a43ce2e3f2660872a5289b001d8f29cae68b876fe68474c80f3bdf0c01f345b43aaffd5cf17","ssdeep":"","tlshash":"2231bc6eea62084af0ffe202ada5411d69e6f0a7d886cd167e4c16a40f43a24f158b74","size":1593,"data":"","first_seen":"2026-07-27T03:51:33.578953Z","last_seen":"2026-07-27T04:32:40.604228Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"edc579cbb2c7f7bc4b396f4d47a85612","sha1":"cb462cc9eeb127ac646d3475e14e0b71fc1036b2","sha256":"6697634d01ec3c1090f567ce034b18a98874ca63802ade340c9bbe9a67a804e2","sha512":"66db55054b57e8b2174d3ed51c815bcad5818635cad9090e1e101ecadc0fdd37955848aec1c24e993adf4801f606c469293e5c2f3bfde6c8e5db163dc09b76db","ssdeep":"","tlshash":"bef0dc5d2c01103626423038a3abc908716be268164987058499dd443c368facc0995c","size":459,"data":"","first_seen":"2026-07-27T03:51:33.580058Z","last_seen":"2026-07-27T04:32:40.60608Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"1750e9b76f54961545a1edf5b6bd9a5f","sha1":"9bdfc833f7e055821fae1f547e0abec9ee9b9718","sha256":"358ccf6ccf547b6106792de57295c558115f2ba6f5764c19a638c992bf90aeb4","sha512":"62c097d4b1fa74b247955132f63bb4b06f2ff9fb5074d68382f0f7d3233f82bf1a62b3153497ea23bb745f3c9ecb3c50602bc9484759a6b8b74939944750dcae","ssdeep":"","tlshash":"0fe07db0258123422174df79f0f3120430e172c67e48ac8f51256b429e388d1142353b","size":316,"data":"","first_seen":"2026-07-25T07:02:54.202304Z","last_seen":"2026-07-27T07:00:45.028847Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c11d89c2ca93836ea343a05338bd670f","sha1":"62a6ad7f8271078933dcd08d5424e2393bb5da8b","sha256":"5b399a3e0eebfecdf232a414d8d0557d3eaed3041a5641a639e715c63586aaad","sha512":"f7855d7cc1bb2478457e1a465962dd6c7a86607759e9e70be7c3ae6c1eb28484222e8e51d876d28696dc1882c733ff396797d143eb074648d45c6274a8eed8c9","ssdeep":"","tlshash":"9a8004041c04d00c01511d5530df10cc045310d731100554141441c55c773451101d3c","size":34,"data":"","first_seen":"2026-07-25T07:02:54.181325Z","last_seen":"2026-07-27T07:00:44.958516Z","times_seen":490,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/gmaps.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"bb0769f3ffae6ca09a891ea88a3cc635","sha1":"dad646718f65e6d5d836aeb519c397c665b2ed2f","sha256":"4ebfeecbbfd59602e0ad58a056c70706bbb0a1bf369b395da380a74f1b8db51a","sha512":"55f28123aeff0195b5b59e6920898bf9b1f945a905e623fdd554d13e9456aa9155fe20ca5264c2b3bc813a0cd047ac50013089454dfc268bdf5f099fc7c31b15","ssdeep":"384:gBkBp/eWk+yNjoyy9c+yXFywK6uhYmiZxQnacSdzcw07UHGe6qvGe/UebvTkAiB4:6kOWaQ9kUt8CabuUmN+4c+B8XuDqB","tlshash":"ded2b6977711242ad3e2d3ec642f12896239c04ee928c9ad7258c8f1adf9d4910e7fb4","size":30547,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-27T08:36:14.119366Z","times_seen":388,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/particles.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"ee3154e19c062776bddd2e8a6061a606","sha1":"a72370604d6e5741adbc80ba4932674c1823d727","sha256":"36840b7e55a9eb1c46e845a0f31b939d58304d0320c19d69cfb10d617b12975e","sha512":"0bff11b00280a4b4e3c60ecbb1a6cb901dfa3faa13f5da46d3f38d436cedbcac9da7b81ee7eeb8bcc6bbd142b80e18b28d5dab4c94c493765385c66377680cf2","ssdeep":"384:NkfJtGvWjT6uYvqhCz8wSEHESxtVAFPQcYpeib+9riEKXWdO:NC7T6uYvn8wRxwyryViEKXWY","tlshash":"59b2934d23f73e77338ab2e05be9d122c774a4d1399b04b0f93c667da52559201ee7a0","size":23383,"data":"","first_seen":"2023-03-07T13:49:46Z","last_seen":"2026-07-27T04:32:40.485675Z","times_seen":68,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-V84XP8WGXY","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"8c143b6c0238da9e9cc4039085776e79","sha1":"cb2b05a5c84db41e193555eb85e9e40fef1074bb","sha256":"610f3d06fe298660bc050413a379ee7389d29a7dbab7ae17691f4664e88f5f8f","sha512":"cd828bb60ad7d8acebdf74f02352e9ddfefe1d891de8b3b6228ed490de61fea7a2a8bf4c4a6867edbc476e7871fb37229f7ebd773b292208ff1629782d2973f6","ssdeep":"6144:/yHuRU0jIWXbP69FMxmRknhqsScPmfxNf3EjUxVGaZoXzRYGg:/8uC1WLP69VwqxVZOvg","tlshash":"f3a4f8cdb3d674225396f478903f018ba57b29e2b44cc899f189cce42e7465a8267f7c","size":488553,"data":"","first_seen":"2026-07-27T02:47:46.067086Z","last_seen":"2026-07-27T06:55:59.803913Z","times_seen":39,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"99e071534d359e8a4d7fd84344acc0cd","sha1":"443729647884e58bf18c3933aa59f536258957c1","sha256":"b876185a5f1b62d2e45d1d8160a3d7baf70134d109cfb69dc19293c214fd2e62","sha512":"8df9cf9be56b4ec41434dbdffb36a64518430d1b6ec10631cf713f0c287cfa174ea7d25946195be24f853799990cb32e7a229710504cec05c213ecfbdd8c9654","ssdeep":"1536:j9w3cPpzlUowL2cm9ibFHDYzcmNGBfXoLL:xFyoybFHDQf","tlshash":"c9631acef2d2a73555e269f6105f410a62fe9006cc85182fba15f6f42a70d4b903bf7a","size":68350,"data":"","first_seen":"2026-07-27T04:31:33.340075Z","last_seen":"2026-07-27T04:31:33.340075Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"83a77a8fa8101ab38a74167392abf2af","sha1":"ecad96d097ab2adb9729e0b0c5f8063e6445e4c7","sha256":"7e8c17ebc1c4489f3752972cf347c83e9eaf85dea4b84c375746377e5216d9d3","sha512":"f2250fb803e1cab98bdeabfe1cf415d3c7a2f3daf7d4d2e650196e709a5aff915427825b1f5e403dcefd704b290b091b69cb1fb437f6e5f69c7a1023a23f0c5a","ssdeep":"","tlshash":"c71000000000000c00000000000000000000000000000000000000000000000c000000","size":2,"data":"","first_seen":"2023-03-26T05:54:38Z","last_seen":"2026-07-27T07:00:44.949685Z","times_seen":7712,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a7f8d6710421b13561d798da885286d4","sha1":"40bbf372af2386d0230d48c56680b364196e5238","sha256":"01233f22b0adbeec53c41f6c10babce298647c9c6c5c6ced4c143a2a88d18f4e","sha512":"86969e257ca8c46c346e574182d16d97936c58fac9d836ab3b8850d964753e8fd0b3a9f5b703cc23db2f982c8ca5b56f7b2a54ab7ce90178cd8c29a05724eb22","ssdeep":"","tlshash":"79f0e1c9b392146536ec934ebddf4d613cb16158413c512da7a066f104a06d5a8edf53","size":585,"data":"","first_seen":"2026-07-25T07:02:54.206377Z","last_seen":"2026-07-27T07:00:45.013199Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"accb66f0ecd826aac89065990e1da97f","sha1":"3c5339881a1720deed325383e8c3839b7748d254","sha256":"ca68fe3f50735b174e950c34f54dc1f4469d57f94c55f259174e8ee730ea86c4","sha512":"52408933e4d4f3fc5069da409f56adaa898366c9c2b71abc013277b38aba5e7dcac15868ffef3495cc1a64af8cbe1bdd7dcf79691ec2b15ac2eb8a3fa76f3370","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000300000000000000000000300000","size":2,"data":"","first_seen":"2023-03-10T23:00:59Z","last_seen":"2026-07-27T07:00:44.997624Z","times_seen":2844,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c498f21d596cab179eb2e5de92013857","sha1":"8a29a189198796bd164fc566e952884b07496fbe","sha256":"cd5e183ec113a6429535157117bb1ddc54f96b68728ca66921d74b20f8e4c15c","sha512":"4904d4f49e94e06750ba6c2783c51d29ee20d33aab48ea66ed7cb33796e8225b927b0de33aaa23af79e583f48e5d32db88b8ccab4053d59cf0ac4bfd93236c57","ssdeep":"","tlshash":"e770000a3c08a000a22238e008cb2088002300080000a80000c000800cb200e202280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.145555Z","last_seen":"2026-07-27T07:00:45.018968Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"41cffca8e35a84d3f88f9a25719e1bcd","sha1":"7dc2fe5ff12a7a0748d95c710eaf05536eaf88e7","sha256":"c950106fab05530dced5c2d95d8c8b0082afb6c2434895b968e7e8a208b8f3f0","sha512":"1d6080e041f9cd50074d23dfb1b15d5197813d1c0668dd6a2cea31f264f590029644e6912d6e1beef5931bb634ad4fbac05e1c5dc3d2f9eed4b217a58dd989cf","ssdeep":"","tlshash":"74e026c771603759d0585eb4e27317053c62a081ab4889e9b236f60aabe49ad35e3806","size":338,"data":"","first_seen":"2026-07-25T07:02:54.168496Z","last_seen":"2026-07-27T07:00:44.973784Z","times_seen":508,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"37051dbe85a36239dda2c2d0af9b328a","sha1":"7d1741c1823eedcb9f90cf15bcec255ce4270c98","sha256":"ad7fece7cc20e7af63da127ccd71979b14b7d02c60526deb52e1e985c4f92c76","sha512":"d6443268e97958dbba496787bfab4ae71709996624ece68f1f89b66a6ee7273997f95e2cbc5c78df367005531d51eb9cc1a9296bced3259271c76314f4e3b962","ssdeep":"","tlshash":"bfa0223c3c383002320a2c20088b82cae0202330f0880802c020cc8220fb20c830ae3b","size":71,"data":"","first_seen":"2026-07-25T07:02:54.078023Z","last_seen":"2026-07-27T07:00:44.984094Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"97893f46e7e13ef37b4c2e0ac60d85ca","sha1":"9c93b4599fe3df75fb3326420f7805a0b572eb98","sha256":"e5b564a7a4059dccb9c20cd678603a6f30c5f3db3af9b421e7f87eb37b030337","sha512":"973fb08ee51bb939b314a5dca3d67e39b8d27d209f5328a9c6fc3e4d7a716b29098e81824ac0c15f9a9a98d070fe09176399f78f1828080c5d9142c9835453f4","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000000000000000000000000c00","size":2,"data":"","first_seen":"2023-10-13T15:09:37Z","last_seen":"2026-07-27T07:00:44.950253Z","times_seen":1984,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9e6f21901550fc1605fc3b7bb6220df5","sha1":"2c9aa881509ef9f0bdc5a0e496b852467b52bd1a","sha256":"d68cf2832956cf0a7b5ce50801e57f1a4aa9c959d170ef458bc12ee7a8e26f5f","sha512":"fe48c482cef77538444ec38384fc51fd461c90e228bcc2be17c1558ea1937e26eee63a2ea7fd01969aa1132b1413d738bc023fc6ea286b151dd8f8267278ad12","ssdeep":"","tlshash":"6ca0120074447c0116112c75c2260548f0511a0b50902401810596c002705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.172421Z","last_seen":"2026-07-27T07:00:44.980375Z","times_seen":509,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"93dddbbea2419c0820cae293f64a56a7","sha1":"fec37c7f501f1834dcfed04edd754ab32b0661a9","sha256":"ca0f37dbe01b74a05d3b263e0f9b36a99e44350031baabb6c14c7d2d0f869d83","sha512":"e3f524dc1b1210369142abc7c52aca7bebb9edfdfb9237ebb03aae85d1a1403d2884e0062a7fae21d29207f237868efc1295460052c4ebc7860958d0102f88a5","ssdeep":"","tlshash":"0f9002c53c4456153662ac61402e44059165860e24a294829916e2940732b99850242b","size":57,"data":"","first_seen":"2026-07-25T07:02:54.19501Z","last_seen":"2026-07-27T07:00:45.013735Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/c0a6ae515f4d245d.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"42e2ea745a52c479ce79b9fadf7f2ed9","sha1":"0cf08999016475d70bf072b7878daea0244184e3","sha256":"2746264358bea944d3523f9c66585147897903d73b7b42e0bfd599f2492e3315","sha512":"cf4f42621c9615fcfc08b325ce391ff9e3af8b94fe80c1e4118eb1e52ca88e0b0409d0c36bc96f50a26ac3ea232630521e1a8077e10d05438f3b7fb8ebc266a9","ssdeep":"","tlshash":"af7165f0a702b23409ea41de5079c778b53d3658512e9420d1badc7f626cd8964b2ef3","size":3649,"data":"","first_seen":"2026-06-13T02:21:16.197988Z","last_seen":"2026-07-27T08:07:37.356418Z","times_seen":1340,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"ad17d7aaa5500fe1d163e297a0cb3628","sha1":"4607dffbd44e617ef494ece0d8770698d1541cad","sha256":"e8273aae46fb97f1786246772222f93463401dfcf2a0956928723ab6de5ebba0","sha512":"f787cdda2c4d3a5d970765c62929e3fb088af57fe2ef62bd9f8debe4064d563a4ac72ed8bd8c0425e9dc22766b1915a5004593d1b8652033d43e6d45245c3b96","ssdeep":"24576:JddEUuuYnFCL4xFUnYNmJYqJNI5Dt/yV2hD4k494v5/CTEF6:fdhuuYnFCL4MVJBJO5DtKV2hd49p","tlshash":"10755c9977e2b86343b2e0e5685f0142f23f584854ccd12cb97df9e52da0d0a617afb8","size":1597230,"data":"","first_seen":"2026-07-22T15:37:53.90669Z","last_seen":"2026-07-27T08:08:01.375751Z","times_seen":1512,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cadb00a60a3fda71b0a59c1eaa577422","sha1":"81bbc75ee8276e534256b7a30dff2b86c5e0c893","sha256":"834021cef72202c07f1e4b770a7cbf84adf11afa2f1527353f4b35cfe558e977","sha512":"437459289997803a93a4e734fc87ee0896b6fc58ad8971d9898488ca77f0305953f17bebe1ee4f0dd90c0987266edfd1241bff7d32c08f3bb103129b1b1bcfbf","ssdeep":"","tlshash":"08a0228c2880afcc00be3a28222fb00030a03032028c083c03328000af3008c30c03fe","size":65,"data":"","first_seen":"2026-07-25T07:02:54.119796Z","last_seen":"2026-07-27T07:00:44.974926Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2fd98c678db6a4e592fc1fce467a095","sha1":"23d71a1dee6fdcdb530042f8de4c7ab53166f476","sha256":"ce773908bfcad90b99b630fe30a23d2abf23d0530137862b34afd9426fc37f4e","sha512":"4cfdbe3278dfe3b25ee1d5b7c5e2b6136e0813ed126409b436ff14b98ff511e7849897d572bb20701f90c207a7d1a474166b8a3c01bcaa87f87836674926e582","ssdeep":"","tlshash":"14b012187d04e4376302347960230d04e151080342818c0b800ed8c047701cb00104bf","size":91,"data":"","first_seen":"2026-07-25T07:02:54.158231Z","last_seen":"2026-07-27T07:00:45.020059Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"908d5ccda6d90aab1d372185818e11c6","sha1":"917ea62d00a3e75d9b87d9a831eb81c24db4441f","sha256":"c9a8ffb3a00f63b1c983f1445fccea9aa101fe4d579aa885f7b1d8ab8e488faa","sha512":"868bb8a092222b3a369569f020417d22a4567faf3da65a85a2fa6492b812e961407d92f563bd02ec1c190d70a200301a36c9575386d779d98659d38ea7ecf40e","ssdeep":"","tlshash":"4cb092c8abc2a0625441958a413eba59f3e4bdc22706247ae052ac1aa4a470e40bf25b","size":118,"data":"","first_seen":"2026-07-25T07:02:54.17899Z","last_seen":"2026-07-27T07:00:45.003717Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cbce5f030ab9bcb5d5a13f3094ed0c14","sha1":"a8dabb19b3be950bce6159811f80596a5bd78b54","sha256":"22d532f2907a94e1755ff7183e34abaed0e92f01415b2c98b71e860af2af3020","sha512":"d8d914e21a56a18b2bf24d25cf9df74cd94c4a9fdbad963cfd1eb90080d01d6cdafd27712026ecf692d43cfc977a8abf44d969e2d299d204b4da9263b9dc7036","ssdeep":"","tlshash":"e07000283c08e800022238a000bb02280222000022808a00808080a00c3200a800282e","size":22,"data":"","first_seen":"2026-07-25T07:02:54.179802Z","last_seen":"2026-07-27T07:00:44.952697Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/wow.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"21fe90eedcbaafb4ed529d78418d30bd","sha1":"a16375b80220d315151f57bab2d4ee03c9fe1d20","sha256":"7852a22b72ead62cfc4a1b1ca32874b3e222f232a991a6d1432313572f534135","sha512":"30be63048c2b41ea7953dbc137b4c9047704196430cdf1995334092a41fe8c6336f1f109c195c5b47c857ee92838e4ff8d255d7ca8b8280793bc012d35b7fcdf","ssdeep":"192:tmEE6yAmu6qUxbU5C9nrr1GkEPIAeJ3KO4poIR:EEE/Amu6qUxVBxGkAI///IR","tlshash":"99f1baa5374a70718e9b6176c92f0202a532256e74d4c8ec747cddd4aeb4a29336bf3c","size":8155,"data":"","first_seen":"2023-03-07T01:37:53Z","last_seen":"2026-07-27T07:45:55.665731Z","times_seen":6486,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/js/ion.rangeSlider.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"c576bfc92abc8d63bec07cda9f5748bf","sha1":"d8b2ced585cd98824ecd2273e0a5b16df5db7fc2","sha256":"1b1e2a0f3ea2d5cb3d7e8865457c5410563cbf768fc4e9bdc5bee0b53db77f93","sha512":"0391c91bca72bf181d1109b977de7bbe8aadc05e73aa4615b0af9d765dadbb51308a038b4fc4669e6298fdb63646e666ebbd691f3b356ba4888236a66c239542","ssdeep":"1536:1k9H0McKxsMdGo1yVruWLU1xdmchAxdmoVG6f:1NKxs+GohyVG6f","tlshash":"1b73fc0a1bfb2251c51360a85f8f020ab635921f5a07d9ac3d7dc3d45f9973862baf78","size":80449,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T06:24:38.576957Z","times_seen":28,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/main.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"91acc71ed7521445abb2710eddecc633","sha1":"2aeb57b759ff1a59e8cb7afb3165042c0edc915d","sha256":"51b7e04eb50e39de22b12f3ffd66178abb9a84b469139ce19591f162929b2aa0","sha512":"15c4e792434c999b2c6240bd503764cb6b4b104e416a20b81de702e3e1d9744d4ea6ab18524d01c75cc878dd994368aee15079b722b7e84533c0755b9562c62e","ssdeep":"96:G98UWEECdwOMVhMOM0MwW5SXMqHCZz/mNu0mdu3aKn9KcA:GcEECdw1MOM0MwKSXFHCJAClKn9KcA","tlshash":"be2222949c7220222577f12e9f7f9220f7a6a047a74ad9503c4c5b880f8837c56fe7e8","size":9948,"data":"","first_seen":"2024-10-12T23:01:09.042284Z","last_seen":"2026-07-27T04:47:12.495684Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"da3f5f8741b5de980662d730df73f871","sha1":"896f82c86f77ec8f6696a162f44345d84f4b302e","sha256":"da48bc39846fb2dfb11eac0208ab64b9f8b2f12fc89e9832b61d63d68935138b","sha512":"4c5197263ad82b11b501108b4da2d7f9ed721fff7146f15e294451be9611cbce7e079ec7a8204d358379003f85061b186fa8f851e271c05119b44ce405066b04","ssdeep":"","tlshash":"84a022203e20ee02b3232ace023b2c08f2088002c0000c0fc03ef3c00330bc223028fa","size":78,"data":"","first_seen":"2026-07-25T07:02:54.111523Z","last_seen":"2026-07-27T07:00:45.009896Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ac74e3f51cb94709e1948a70433bdfc5","sha1":"76d121cd4e0c881523d60b8dafc1b3589ae5b2b9","sha256":"a217633e7706a1bd9a42b4bd78d98f44f81e614d34e42aa97562232e0a0ad14e","sha512":"d002a88da3d454e2fac7bdbe5704290b8c7c6d1eb2375744991a1514e9fe83cfe43438c67667d42aa12f2de01cada231171ec95288d671df022d4a7f4d1eb06d","ssdeep":"","tlshash":"2990028430426c102202e0612a9a69b6d175448020199164f0951044392545d505bd0c","size":51,"data":"","first_seen":"2026-07-25T07:02:54.16226Z","last_seen":"2026-07-27T07:00:44.974362Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.slicknav.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"abb6ece52a5d3b908359c3dfa21d08a2","sha1":"cdd58421d34de7c63034acb2726a678c55a546f5","sha256":"190402f488a1616b47304ae066078580059ca6a5958b7f217d2156d0a73931a9","sha512":"5e1cc5c6c4831a0affa634cc8b4ad8bc4299976a62e2690f91ecef8d5d5db732232688afee634767c016402288f635a4bbbb4d7bac10b6456120414d85ec8b53","ssdeep":"96:8B5ftaVYApggJKmapO684YBtzcmJycbeKkiKk4rB0KGtZYqxq3FWMrutqGcVtVho:kBt6YAUmW8PFMeRQR1Un1q3Ikuty7dW","tlshash":"6b023358b1103ab371fb7bea4237880ae233512dc50b40793963daa55d3a46d3613f7e","size":8415,"data":"","first_seen":"2023-03-07T01:11:41Z","last_seen":"2026-07-27T06:48:32.670442Z","times_seen":1952,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"db0e667538ab4e563e08c53acdc8adca","sha1":"7b00a8cb6da0a073775af7b8536d09fa244594ec","sha256":"b57608c5537f1c358fa12ec9a41449489847678d160fc29bea540ebfe93b1af5","sha512":"0388191a568e959e0ee4d19304a222bd647c874b02cbbe7a589757c47da8277ca1e7afb02a3eb9803a1fdf3220bae8875aad1d8f8fd624284f0fcd32abbcfeff","ssdeep":"","tlshash":"f9c0c000f44cc39725933c2f0d41873e801b120384320c030301d8cd0833beee245f60","size":180,"data":"","first_seen":"2026-07-25T07:02:54.18944Z","last_seen":"2026-07-27T07:00:44.982845Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b640f7845a4341a89d25c0ca0f9b26f4","sha1":"5b98b63751f6e77fe954f5b95388d615eb263003","sha256":"3fdecbfeaacc1474406d975d54141cd22c1be7ed72ccf31bf23f5304e2b50164","sha512":"ec2592241ccbd9a0e93c49ad07121af8cb3acb2a4d8fc25e4f4599a1052d1fb51c9ef8538ac383c52e1205f9b6a17525703f2c4d4bd0d69fc090c04f93943066","ssdeep":"","tlshash":"2dd02b38e11c422b26970b4197c2183b05004642dd011d7b2eae28eb7044c9a9a1481a","size":256,"data":"","first_seen":"2025-03-17T23:26:20.961709Z","last_seen":"2026-07-27T08:08:01.397453Z","times_seen":167191,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/95262386d8d4b6dd.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"8c155806c003f628ca093cb0feb083d0","sha1":"7e566386cefa86e8ede2e755f712dff7a8ef02f7","sha256":"07310b422de93eb0e61986355fd1084b06b47060d629f957c5311440650a6d2a","sha512":"980bd9a8f57049d13d7a8647fb56f621b005d208dafacc5c0534b9a919204bc9e363a122a1b4a48f4ef71cc00dcd2308e4885de83e31d2491b0a5d4a807fe7fe","ssdeep":"384:tj5z75Bq9E0mLlSmRt0cJ3XHHE79Fg/Za98qWtOPSN6wfV:N5z9BX0idiMxxgwfV","tlshash":"a4d2d9b17395f9a352db86d9d03a0005f2290d3530ae28b0b395dcef365dc8991fafa5","size":30684,"data":"","first_seen":"2026-03-29T05:29:39.700118Z","last_seen":"2026-07-27T08:07:37.448064Z","times_seen":1622,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f58a7d86186e19db84e783bc06177a55","sha1":"8002a6aa19ad59d43ccc8b32ff7c6d561f9e1259","sha256":"41cd1e4850b992f8c433a1a085a6585a8e79ff96413f11e360a6743babd8cb93","sha512":"be81de332fa854c02257328706e95326c7aac28318d95e5f910a68f7b74bda38161de6fe6040a2d41ede8941285d69e4e4b22554f2fe5f6a1bd2473a4b4dd366","ssdeep":"","tlshash":"42e0c05d611b7411b0c03cd1d5cf1498f0f42236c5ce0c1d8375d4c412a2ced569cf19","size":350,"data":"","first_seen":"2026-07-25T07:02:54.088205Z","last_seen":"2026-07-27T07:00:45.029481Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/bootstrap.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"a6b40b3ce40edb17d2a7504a14584679","sha1":"ba02f42b09dae9954e8ce169bcfd56c8363ffc40","sha256":"948d847179045bed3e8e2a13621680921366e4a6fdca222693f4a465eb5c7a7c","sha512":"ea770c8fbeeafd4c6824ff8e4cf0dd81735118838217e658101a59ab2121d74bf1f5d0624b249c796b8a859a565268023375096dabdd9c0935a0e60df6e53e3f","ssdeep":"768:o2rGy27UwlNqMl95qNmCFejhqs8snmiOCSFXfbx8Gf3Zq7Q:Jg73zhq02vbJ3ZKQ","tlshash":"fbf28606b23031a147efb1e1525b020e7239696ee906907c78b99af53db9c48717bf3d","size":37051,"data":"","first_seen":"2023-03-07T01:10:50Z","last_seen":"2026-07-27T07:48:14.784507Z","times_seen":450,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/4815a758657d4bae.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"9b4f6d29f92ea43b7c7ef4770fbed76a","sha1":"bdad2044ced7e4c0208e62e5650f99140e88aeb6","sha256":"6fb06a5d29509dddf687974e467d8274ef9ef0f6bec7c841fd8336543c9a3f74","sha512":"06ec26c380efdf73315dfc21639732033b79b7869acaed6d4a6697c4d441500bb21f57311b543ee176e2b31b775cff20bc5e611dfff3cca3a3a5c30c8338262f","ssdeep":"1536:UIYGGTQpo7UFYEpzussak11xgaAF+j/G7qWF:UIYGKO+UFZaJgaUt7/","tlshash":"f023d4c971e5b4900bb395b1803f000bf23e1d76185d98a0d3a2dde9b8b45aed233f99","size":49883,"data":"","first_seen":"2026-06-13T02:21:16.211868Z","last_seen":"2026-07-27T08:07:37.441746Z","times_seen":1340,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d3789a3f91258fcf605452196e19c21c","sha1":"f468a49ed14aa61cc199cac1759cb76160b266ff","sha256":"fa37be71bea1abe989546295b5d10f6a34598aa7ce90cfed1f870131e8e30c9e","sha512":"b93e82af199ae63f26b48b71e93f5f5c7be0c5efe33aad59dcd1109142d79d988b24ba63c4c0a5731a1d2a852fe817da47371412bc5cc8579078e4c5eebb0669","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000c000000000c0000000000000","size":2,"data":"","first_seen":"2023-03-07T21:37:56Z","last_seen":"2026-07-27T07:00:44.952125Z","times_seen":907,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9087bfb5987e012165369f31c80da771","sha1":"e4b912603b7a38d385bb3770f3d3c3574c4c7d09","sha256":"17b51df2b060b946881ffe59fc2d1cd01fc09a7c7d40c7b4dcce2526e10308df","sha512":"df59e3a180757201879e376cbb16a70c6f55dd732e6eda3f9809868bcf9fe2eb2e73a288192394cc3b9736832423672db4a13a3f1fa1aaa8ac37d3374c01b356","ssdeep":"","tlshash":"28e026c771613759d0585eb4e27317053c62a081ab4889e9b236f60aabe49ad35e3816","size":340,"data":"","first_seen":"2026-07-25T07:02:54.191647Z","last_seen":"2026-07-27T07:00:44.965368Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.counterup.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"ef36cca760bf1cd76cfcd0e4dc10cef1","sha1":"ef38469f60d58850fe55c4de2ec7e289a2415d71","sha256":"26d40f8ffdf1b9bf286a954c6888a33cda0cd031e802d821fe0c0562e379ae29","sha512":"77c175276932891a30041ffcfe9016b2a525d304843a41b92804e4555e2c95f6e5abd55143a3320d95715a5dad59dfa63e1b826e94c1e0ceee53fc7d165810f5","ssdeep":"","tlshash":"37118cb93a0a298daa80e459f1efb0989176bdbc0c80884b91c558401fa5abc3b5b730","size":1067,"data":"","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-07-27T08:09:18.556606Z","times_seen":12806,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/slick.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"d5a61c749e44e47159af8a6579dda121","sha1":"3b41b3bc956685015a347a2238e71db29dfa0dbb","sha256":"0c7178cc6ca34fb18e30f070a5e7a1c287b2d7ccfcba2cfdf06e0f46eda55740","sha512":"5ed98cb4311c373da3ede92bb47bce551e22c30683ea8fc55097baf99abe1e0702b24de48f8b9241047cc1e4364158f5a343e4e8fc182e8866db4e99ccd7ee6e","ssdeep":"768:4rkkX123A5YHi6pWzYdlNWYcx16nnYdXRRMd2KYCQCsPShb1ez7RFmYH:EPrYdlNixEePiYH","tlshash":"e513a549d205276285d721e62105c40eb3f7fb3cba22c0e475c9d3ea646ec4896d7bfa","size":42863,"data":"","first_seen":"2023-03-07T01:06:34Z","last_seen":"2026-07-27T08:00:45.970558Z","times_seen":109055,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"fa317cda84211445676c1cddaaae7c0e","sha1":"56c4706fd639682e3b4522c810eee9ea11f2d38b","sha256":"2740769e28e35690a4f400ce64b425de677a1dc517b2859219e883c874e4a664","sha512":"a6c704bc3492435fa28ff4a72847e656af3f982f8988c051b3d48959f553a38a54e5606c50fbcf73af0300faa637f2b3bbe311484f190131207b31b4a7939008","ssdeep":"","tlshash":"c1c08c4a588022263b707d80c0ba192cb354096b109e8f0f8c2ee3943320f62c00643f","size":155,"data":"","first_seen":"2026-07-25T07:02:54.082992Z","last_seen":"2026-07-27T07:00:44.976197Z","times_seen":499,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/d71b99267b066b9b.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"8ab91e90961bd7e4d7c2d7514a37ecf6","sha1":"d2e2405837d8cd1436dae22a0c5d7f4e15168995","sha256":"6e16504cbe3f76082798a523cf9cdce3bc9321fefc36485d02c9289e5a5f6b38","sha512":"da24ae4884840b4b996fdd087c41065e590b5cf33046f6aec00157142b53b9da067a83af2cc7744429b64c02bbfb1aef428787389939a1736cb4ad1f0458ee69","ssdeep":"384:AqniNMH/fZ8oNS1VFWHcE+Ff8IiUG6AUNmXVOmitisz8Xdjz8/K4QIwATf:YO58o0fG65mXVOOKKNInf","tlshash":"bec2c725b90705be2aee83e7e06cabd5d9385a02d5098b4ce3978f319704bf56187b0d","size":27443,"data":"","first_seen":"2026-04-30T18:36:20.827898Z","last_seen":"2026-07-27T08:07:37.37504Z","times_seen":1600,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ec7e53845feb375870343182efd0b929","sha1":"63e71d0c5bcadc37a725d971054eb55e017f6989","sha256":"a2253e1fad60aa1ccf31416ca8cde6ffaa5af2510733c7186adc04a503346c5b","sha512":"339f50fe30462dd6204552b2d3d3fe5cbaeea2cadcfbde096f16b40f1d985a5a68ebb227dbbb9f37c9451a36376ed392b7fb50c6e661963124146bac7e03284a","ssdeep":"","tlshash":"cf50003cc00000c0000f03000300000cc0000c00c0c00300c3cc000c3c0cc00c000000","size":11,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T08:08:01.410905Z","times_seen":172854,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/highlight.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"2d6a9ce9ff01246106939e1877c89d07","sha1":"b8dafc040f2464244f9be9cbd9d61f801d3cde08","sha256":"3cc0c9e4d1c0dc7c36e94a65e24a6563689f612af658e719b958395c22724c70","sha512":"309f3e79f3ae44a93ad23583d338f74120d4c079f41cbe936f906986f3e72b25869a52c64d42ec851d0a2d096bf642bb61252ab6b01878f874dd7b7d4fb385dd","ssdeep":"768:B4aEeP6fH5S5kIjGzjufecrXXzOSy97ujCk9KOFff:cVf5S5kIOju2vSy9+CkI+","tlshash":"84f24bde610e6637468110b4708f3066783e44a9278c5a55e796d7bc38efc7cc2bab39","size":37037,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.546305Z","times_seen":44,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"8019a2b7d49c53a548a55f046b75eb57","sha1":"4db451122874d00f6b6fc751e5545823a75b818a","sha256":"e313eabc79a57bc0506d61fce96ce2b6dd9cd635130b8c8d029fe24db01ce844","sha512":"e945ce874884b5d67375a48bf9169e85c9f19519dcd646eeced82292b23f9174af233c378fa483ed79a04fef47ea55c9fe0f8ec71a2bfb18c714efe75c3a112f","ssdeep":"","tlshash":"38c08ce873b61824c2809ab3a03b46a1a88ba69c98094440e220f9a9763030d082faa5","size":158,"data":"","first_seen":"2026-07-25T07:02:54.159204Z","last_seen":"2026-07-27T07:00:44.986576Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"6f2dc696d3e2c5e8b0536728ac5a3aea","sha1":"8da6a7915f0b3ff607db13862fc417574d8d4999","sha256":"4036991c2199a96276eabd866d75631508768ad958639f2ef3d985061bddef47","sha512":"481bcb7979552bb2b61e9faaf2cc6abdeeb36c7e5e4e0a483ba1e93c62bea4c29bd94f525ec183b9a9bb4518f02e3e9748be080d771f801fa3cc7d4e73a09116","ssdeep":"12288:Rhrh0EencTyXGld16WDVcIm4zDSG8UvCeoBJjlXc7WPz6/wWXqkZTNvl6hkTeubf:R41jofemc+tD70LCSn4AqVnYU1YtsxDT","tlshash":"a2159ff0b25271b4d147b926fab7c003b57e4903e2081879f0a7ae9c55fca942e77729","size":942843,"data":"","first_seen":"2026-07-24T13:38:07.888738Z","last_seen":"2026-07-27T08:11:45.687103Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9485c8ae181348af0537aeb02376d77f","sha1":"67b0b7f7f914e89f6e0c6651049d5e58063eaf96","sha256":"77724e449ce352c6bb493ce82b91d7ed6b93156928d311f67cc1c57481e6c2f9","sha512":"037ffde473310d2491e664f6fba33b747a956c19bf99420da07bbde6ffbe4ca768da17177bb1643630ff6ae1448ffe79ce1613d08dbea8d610d7d51161950d1b","ssdeep":"","tlshash":"c2d02b8eec5b8595f966e9ca40766d29e0589802ec789cc11527c55261d4a195832cb3","size":266,"data":"","first_seen":"2026-07-25T07:02:54.116193Z","last_seen":"2026-07-27T07:00:45.020622Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"05b8c74cbd96fbf2de4c1a352702fbf4","sha1":"320ad267d8d969f285eda5c184f5455bd29c8c95","sha256":"44ff7b02c80d38b26dd6aa31d9470aed81b32e10331a3c994fb1a9945fd847ba","sha512":"1ab6ceacde9b312b4f32d7c9f2d54448e82264c30807e4db86ec8e295791c1fb9aafb38985b2054e589c0a0a2830f1a389312fb2912dc2f9c949231967e03545","ssdeep":"","tlshash":"f6400000000000000030000003033300000000000000000000000000300000300000c0","size":6,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:08:01.361779Z","times_seen":156349,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"382df8f48d5107dd2a96921030e79c0e","sha1":"19bd60f0b2ee5dd0d3ba977e9a464d03cf135682","sha256":"5893dbf7b9a7496a0d79489a22f335b0d20530e25f0b95656b206bf44d9bc139","sha512":"31f04d2c5e1759fe8774b17908257fc5e07199b54c7ff483008d92ee115393e249d0e8ae814a57758638a7ef3169a4a485812762f2efbc92be6cf307780f7741","ssdeep":"","tlshash":"f8b092191f6d822948a4760c66ab478ab8f8045299005c15b300648816a8e84009ae2a","size":109,"data":"","first_seen":"2026-07-25T07:02:54.150949Z","last_seen":"2026-07-27T07:00:44.960296Z","times_seen":512,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0d61f8370cad1d412f80b84d143e1257","sha1":"32096c2e0eff33d844ee6d675407ace18289357d","sha256":"6b23c0d5f35d1b11f9b683f0b0a617355deb11277d91ae091d399c655b87940d","sha512":"3d637ae63d59522dd3cb1b81c1ad67e56d46185b0971e0bc7dd2d8ad3b26090acb634c252fc6a63b3766934314ea1a6e59fa0c8c2bc027a7b6a460b291cd4dfb","ssdeep":"","tlshash":"c700000000000000c000003300000000000000000000000000000000c0000000000000","size":1,"data":"","first_seen":"2023-03-07T12:12:28Z","last_seen":"2026-07-27T08:08:01.408406Z","times_seen":75631,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"79563e90630af3525dff01b6638b0886","sha1":"68d2ad23b5e1102797ff78d3d0d55d97ba75c268","sha256":"9e507a6dfbf98393bbf23d487af7f1c5b2e8ea0635e3f0cddeac3a9a090a3dbe","sha512":"c11c66b5e92dce18ce4e6c7c9d956d09afd5a734c046f8fe645653931de1db0ef639567724e65e48f05bd922a78fa1547c86996fd5de1a62573c4cc2f46d2300","ssdeep":"","tlshash":"c710000000000000000000000000000000003000300000000000000003000000000000","size":2,"data":"","first_seen":"2023-03-11T15:36:04Z","last_seen":"2026-07-27T07:00:45.007103Z","times_seen":970,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"3943450e225c6a2fdea1effade0ebd89","sha1":"56469df750b12b2c1ed5849865f5ede8381f153e","sha256":"ea43a462245af07a2916cdf93717d019f698edf00b308541c18dbc4983efc01c","sha512":"853b34dfcfbeb6d4c932a655b3487a87a75bfb08c079e7422078d4e2ec1c151513adaa5414c3ae267e19e2161852123fef5136402b378595e19b0139bfb0bf17","ssdeep":"","tlshash":"2ec08c090b0dd3a6038a6a94610a43aba15184ca7e611c28ab40e0c2e68e5054066a1e","size":149,"data":"","first_seen":"2026-07-25T07:02:54.138561Z","last_seen":"2026-07-27T07:00:45.01263Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c3787754c9ab0b54c83fc20e994fd71e","sha1":"79836961d0829dd4343389004c5f3bd806adeb6b","sha256":"725f4326baec82abc6db3f2144c45f09d47264f86f9fbc21a9825a9e73a7368a","sha512":"8d62d1275f3fe42a18d23ee3f8dfc60eca479b3eef7c05ad6181f2aa36b8c5ba1e937408474d57a33a742058c55f7c3f805a0b48f1f3162596be217a76e9d538","ssdeep":"","tlshash":"a8b01224242de61233322ef180131d2c603a4406425f590ec04de5c0033c0cb40475ef","size":97,"data":"","first_seen":"2026-07-25T07:02:54.156202Z","last_seen":"2026-07-27T07:00:44.993549Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"5d43ef05e57cdeab7895fe8a3b6ee014","sha1":"19671e4e00cc9b5f8f6a6167c1ea8800ee539aeb","sha256":"b7893a0611b91f5fe47ce3889faf375eddbda47517f4e44c8c338eef6d2c41e5","sha512":"535346ebfe272e052e64dfa1845da29662c36e84fa5a946e52dcbb2cf4d894851a102180fb1c04603f86ec920d89fdfb62c1ddc14ea81ba4cec7d4723ad5598e","ssdeep":"","tlshash":"8db092a4a20c0b5812813919ad2b06e950e42704f82994884ac0ae2548e0a41568ead8","size":116,"data":"","first_seen":"2024-07-19T01:23:55Z","last_seen":"2026-07-27T08:08:01.449409Z","times_seen":189264,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"37a6259cc0c1dae299a7866489dff0bd","sha1":"2be88ca4242c76e8253ac62474851065032d6833","sha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","sha512":"04f8ff2682604862e405bf88de102ed7710ac45c1205957625e4ee3e5f5a2241e453614acc451345b91bafc88f38804019c7492444595674e94e8cf4be53817f","ssdeep":"","tlshash":"b9300000000000000000000000000000000300000000000000000000000c0000000000","size":4,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.4042Z","times_seen":278762,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/turbopack-18a9de512a1933ad.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"ee874107586f9203ea70e460428f2bb3","sha1":"9bfba653884c0499149072efe4824e6170f10271","sha256":"44b3081e3a644e21b57f4155637e1e43563eae2c0f034c6ba9edd6bc9cba26ea","sha512":"7fd5fb8b487d8981ead132093abf93b51a77860cb1d04cd5c233c3e671b7183921080069aac71afb4f5f77a424d02ccdea22e3feba459326eea86d1c6637a09b","ssdeep":"192:D74eFn8/Esp1U91EG5T1uyO9lGdiwMhMlng4W9PZcxkUk1IsiyLxA:D74e2OvO9lG0OlgJZZQLyLxA","tlshash":"6722d8ea33a6f07743af94e6907f4044f1795468145d542c936ce8fa38398ae49e3f27","size":10707,"data":"","first_seen":"2026-07-01T05:10:22.643373Z","last_seen":"2026-07-27T08:07:37.388439Z","times_seen":1139,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"08a4415e9d594ff960030b921d42b91e","sha1":"1f444844b1ca616009c2b0e3564fecc065872b5b","sha256":"27a84712e4b22c415fc544d55cdee82327a829f96d03329457f76ebf9af4dcaa","sha512":"2c9fbb3f289c28bcec752f021d36c3a14b86140bd82942b06c0838931ce5999c1fd0b297b9bdb24aa145fc0244b7f3824c838d26ff7c222ad7663ddfb2c066b4","ssdeep":"","tlshash":"c71000000000000000000000000c0000000030000000000000c0000000000000000000","size":2,"data":"","first_seen":"2023-03-10T01:16:47Z","last_seen":"2026-07-27T07:00:44.971519Z","times_seen":2058,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9dd4e461268c8034f5c8564e155c67a6","sha1":"11f6ad8ec52a2984abaafd7c3b516503785c2072","sha256":"2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881","sha512":"a4abd4448c49562d828115d13a1fccea927f52b4d5459297f8b43e42da89238bc13626e43dcb38ddb082488927ec904fb42057443983e88585179d50551afe62","ssdeep":"","tlshash":"c700000000000000c0000030000000000000000000000000c000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:08:01.393715Z","times_seen":64828,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b2c033e81e5f5f3d63beba88712ff6ad","sha1":"98f27a412fcc1ba29098c5d60e0577a19d2d2db9","sha256":"bea6c2d06c730cbcc0383d0be45269737019dbd4e40dab4c786861a9c82baa8f","sha512":"6fd35b35256ea2ee673f840880503a5102921fdeafea46e81d91e200506905861eabf9dc5a7640bb37d0645e5a68febbd3a4d15c26db7ed405794c8865f0632c","ssdeep":"","tlshash":"84d0a7049119108386346d5bc282dfafe59184433e01d81b299c49ec16fc957e5b98a5","size":240,"data":"","first_seen":"2026-07-25T07:02:54.154377Z","last_seen":"2026-07-27T07:00:44.963638Z","times_seen":519,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bd4496eb0285aba06273987971f6063a","sha1":"8c7d085c9d54b41debd437430b6852de7f898857","sha256":"f2a353ed5469812b863c5fbeb58b4d46b864ba4e20a49f57f9c44c7cda45f46b","sha512":"ac6567c456643fbfb8ccc60e9f3695cd5b6fd80f8699277093e0d9ca898bfe4a0fb6dc848ec48f6255d0a9eb82a6e699cf2f977aa502120cf9b8caa121f6f3fb","ssdeep":"","tlshash":"5580000000c80a2eaa80822333b883a3b8a80aefb032200080a88c28800882800288a8","size":35,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:07:37.583779Z","times_seen":110115,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2284743fe8a6178f117d584e3091d6e","sha1":"93d24c83d4a695e2a463bf66ea18a3e2147e9148","sha256":"8cf878073f71bf93dd67f56aab913b4a584f5ea15c56ea7030f96b9f26f23a4b","sha512":"7aa1cd340f7dc20e2259c9ef76fc6dd184133548d47ee9cf1c300e8ded20ae3e298748b874bb735dc639bb025be759096e3edfedd1c0396a094748bfe2734cf1","ssdeep":"","tlshash":"28c02bcf30c6da74817d001203179dc48107349f114b808743d040e400174908c1dcd7","size":138,"data":"","first_seen":"2026-02-18T11:53:38.7823Z","last_seen":"2026-07-27T08:08:01.380071Z","times_seen":77714,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.circliful.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"42270f3d7e780110a88f6ea3197fd9e0","sha1":"222d247e94d908d4068bb1fc52cefd0e46c8ba67","sha256":"1587c869bd36a3ce7edc3ed89d8f7abb904b0af52cb7e06a881d6be5f3598364","sha512":"d2d7a7f61708103b5c4025ac63869fa7782ea34f35b58916813fe2af6fa0edad07b0438376f00b64b86d81935a518074a9a798f142908350a94c9f6ab01d79ae","ssdeep":"384:Gr5oXQDZDOLt+ZHAdL3uJLXJQKJD78lPOBBWYuwuF:EZDOLt+ZHAdL3ul1D+8BWYuwuF","tlshash":"39a23f257dab083c955b913d979e62786773c0830621fa343c7d802a1fd88b957eabf4","size":22375,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.478852Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"59ce6228ddf62be7f8aefab2518b85de","sha1":"900ad9ac49e0c31c073d6f6d90b1f4a96cc6fd70","sha256":"8ff18c08cbe337e7e73e5fa2906915a48539b24a7fad20153b95bce97834aaac","sha512":"dc9152b4e22f588df140c33a6635b551d942579445ef185f0fa62fd31dd807fdc9bd23ce42e0a3ff8872a4ca6e9e2942f9f76a727cbb74ea049a513e9a8a309b","ssdeep":"","tlshash":"f1c080447556b1ffd6426482c05f151562550705d9549a06d3a054e02e349899091f2d","size":166,"data":"","first_seen":"2026-07-25T07:02:54.079559Z","last_seen":"2026-07-27T07:00:45.004871Z","times_seen":514,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"618538b4ab9639d444e962729a927f15","sha1":"dacc1f76630a9708add066819b1aabf8dce01056","sha256":"27d92130c0321dad5a03760fd5ac98a3d04ed4c94d88418fe6d50da1f7fc5cbe","sha512":"bcb6754ea246939a19a917cc0b810e1753c1b0f1a8b1b7e652128ef15dee4fc79111e4d88fe12f9188449a307e82240d0261af402d783428edfe5785c860372d","ssdeep":"1536:jYE1JVoiB9JqZdXXe2pD3PgoIiulrUdTJ5Fk/zkZ4HjL5o8srOaS9TwDhb7/Jp96:y4J+03jL5TCOauTwDhFdnCVQNLa98Hrc","tlshash":"9693d7d9b6d6706287b734a851bf410bb17aa8eab40c4c60f058c8e47e74e9d507bf2d","size":97168,"data":"","first_seen":"2023-03-07T01:12:12Z","last_seen":"2026-07-27T07:58:11.863924Z","times_seen":5680,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"89124fc63620d83761110bc7e1ba5df9","sha1":"7caa348e5a262dfbebc80293ec34cc3d7e03216b","sha256":"8e1dbf14ae83c99040ff15a1b7c612b72e5847b9d3ef4948fa2a29ddace9971d","sha512":"876865b27affb00d47d87210ce6c7e84373650fbd0a0917fd1fcf949a36b4c5b61c367ebe7aa5c96389499247ff223206dd14fdd197222c9dc22a8c8b19ced44","ssdeep":"","tlshash":"c71000000000000000000000000000000000c000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-10T23:00:59Z","last_seen":"2026-07-27T07:00:44.985336Z","times_seen":582,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f9f2d672039ed5d04839b769ad71e1b0","sha1":"9a86054ee3627014bb2f372f939ff22772a90aa5","sha256":"ef099fcece6eeca3777d0d4a6ac606beb557e08dcd95cf93d0d42a0334329c10","sha512":"52923fb4476412cf751131a95f749956c1a4c83641935695522af4434c3c42047820db169481885cb549e9a6a8c5ffbbc6ac49ad08f246612debd54bd3ee68e8","ssdeep":"","tlshash":"c71000000000000000000000000000c0000c0000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-08T15:11:30Z","last_seen":"2026-07-27T07:00:45.011529Z","times_seen":2711,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a5f3c6a11b03839d46af9fb43c97c188","sha1":"a7ee38bb7be4fc44198cb2685d9601dcf2b9f569","sha256":"86be9a55762d316a3026c2836d044f5fc76e34da10e1b45feee5f18be7edb177","sha512":"dddb9ec4c4ac04a2559d9b711eaa8e35475db3c4d6a7a06dde785dc83f3ed121710cb512733c8095ff346fc8601e7a73ecb53fac752010116e692b1ce73c8e59","ssdeep":"","tlshash":"c700000000000000c00000300000000000000000000000000000000c00000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:19Z","last_seen":"2026-07-27T07:04:11.918511Z","times_seen":86180,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/particles-custom.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"720fcf1a28ca7924e9f0e84ed2ccaa95","sha1":"ecd6bf33e137e6b256f7d75588d7be7058a3d027","sha256":"6646c0f3e47bdfa8a6ec28a369faa48e8caf647fb1ecc67b56a7beae27ef6e24","sha512":"ee111a16c40be3d1eb5f1bb18e6abb693872b1e89487f7dd2f9279a3c162c08351cf41e1a13675935ed476f11b908c62bc2f762164b5792ba8714d85204e3b6b","ssdeep":"","tlshash":"d851512dedf41db3208af03508bf5247e520855b4d1a3d39ba4c819c5f0ea2d61be7e9","size":2834,"data":"","first_seen":"2025-03-17T20:39:33.233172Z","last_seen":"2026-07-27T04:32:40.414163Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"64e1e1cbe1ca8e88ef3a838a3e7b57d6","sha1":"5498d9b96ed2832e04a90c4ac2ab71f869b2bfdc","sha256":"0510eddd781102030eb8860671503a28e6a37f5346de429bdd47c0a37c77cc7d","sha512":"44ee2764491048592021ece402fc174f9f4d95cf25dd7227e1029cfdfbc6f574f811fac940495ee0db71db3714c70d7ee27c142876e4a191a0fda92a2e93073d","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000000000000000300000000c00","size":2,"data":"","first_seen":"2023-03-10T03:04:09Z","last_seen":"2026-07-27T07:00:44.970327Z","times_seen":1286,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps/api/js?key=AIzaSyAHzPSV2jshbjI8fqnC_C4L08ffnj5EN3A","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"09a677a23d8a83275f4825e2f89dc817","sha1":"82bc070c9763a1196aa1aed0729f5b60eb049e5a","sha256":"73c910ab74811847f25160cd3333185b0f83e6b12b0a99411fb310d58c186441","sha512":"fcd0665ff2dd81b0b6cea4c048c0285c2889683295c38e7b084b49f761b2da1ce819ef5eb14d0817a1bf5d59b23e1c3619c792c58d08117da130f48e64f19ca4","ssdeep":"3072:qfzHovwhh+hNI8cMS9xlgb7HBrT+kQqbdhfDnT8tSsZ95urOHLNeM6NGPbQ7RpYc:mzuHI8cMGcbBrykCh5ucLNbLPMRWc","tlshash":"56643d947362746287b2e4b4502b0007f17ea49af00c89acf69cddf2aef994945b7f74","size":311454,"data":"","first_seen":"2026-07-27T03:51:33.479598Z","last_seen":"2026-07-27T04:32:40.451551Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps-api-v3/api/js/65/10a/common.js","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"31d2d0109cbb555d4d1bb1d1aadf2133","sha1":"9c93dcffd69503e2ad240ea9fa1702abe08144a3","sha256":"a2ceda9bcc0100ef6d1130dc49439e47e8fa1233e7cd025a6018919eec222ecc","sha512":"19a4c7de0f35af185ff9b846790bee70d3fbe2570dc172a3a557b5f08032c872e42d462e4ff8554e3b07949966bc5fb43a15676fa03b6b54d5238108b7165054","ssdeep":"3072:SxAH1dW3t/h44XaocAVOUK4gemXkkI/xMrvgnU7:SY1dpoGUKxezV/xMzgnU7","tlshash":"77c3a6d5329370a3ab71b4b540a70007b2a5e485f40d8c2eb5f9ccf6aef495a11f9b39","size":128639,"data":"","first_seen":"2026-07-22T18:24:50.770414Z","last_seen":"2026-07-27T08:05:46.755599Z","times_seen":726,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"288f4801942ba7fe2e468ad22eb3b34c","sha1":"93c816901b3435f6f5cf6b2bd92e6727e442a895","sha256":"3f0ed40e2c3c5964be4eedf2e9176f9987135e03e131c9e4faa1334b3d0f179b","sha512":"118664d8321242dd85ca89acfa377dca6520b707e6efe6ffa76f2d06facc829277bda47b5889021d70cd3f1a9a382ca7fbe5e41502906853f7527222f9a33659","ssdeep":"","tlshash":"c9e0c05d611b7411b0c03cd1d5cf1498f0f42236c5ce0c1d8375d4c012a2ced569cf19","size":348,"data":"","first_seen":"2026-07-25T07:02:54.136642Z","last_seen":"2026-07-27T07:00:44.936518Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4f15bb2d5bb35eef8ed5691a49a89add","sha1":"93dc792cd6f66b017de508d1653d257572b336ef","sha256":"92e207c292ff65d3a04f6cb843c69816f6a1520ba0907168e313bfe2f983c80d","sha512":"cab6a3bfc63b8a7d457b211a2f223bb58cfc2385f4a6a33d7f48812b4747bf0a0d7abfe7979388ed3e467ea5c6d65c688f7ab189a7f3ce0abd21958f9c6f8b5d","ssdeep":"","tlshash":"e6d02ecbb1c0378ab8a66cf4f2b34a0438a322243b8080ec803a36581fe05c8d903d25","size":282,"data":"","first_seen":"2026-07-25T07:02:54.086465Z","last_seen":"2026-07-27T07:00:44.987202Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f69a3704d7f533aa4245e6bf79aaf7f0","sha1":"11e5a704728320de77d28101f21079c644136b4c","sha256":"adb064ad7f04d21017f0801899a3867082ed16d71583c6cc7756f30beb9363ff","sha512":"d12fd361ad1905660b2bc871f8d172acac2972e2cb3c4930db744248f12624d3f6410618ed13d6b45e6881d90f82078db0e2178f55b8ae4b151994ecb9ebbcfb","ssdeep":"","tlshash":"27d09730e9010300b22c1ca230a1dfe700a0c4073e00e8268a698dec08f8202c056aec","size":243,"data":"","first_seen":"2026-07-25T07:02:54.142504Z","last_seen":"2026-07-27T07:00:44.9509Z","times_seen":518,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f465da03521180d47c811a98c793a2d6","sha1":"9b76105ff4c8bb84cd630914d772f4cc73df0155","sha256":"e8183224e440eb4578fd87c4c47735f9ede4c43b1c6ebbdcd7033e98aba6a009","sha512":"b10685b1bf88080c98cfa2493e4c1734797a6ee17e9d59ddd7cbd685a9596d4c908ac2a12be9ea2aed3f6ac67ced98f3c6e76b1882f6c0731d1dd60ae5de4156","ssdeep":"","tlshash":"7450000000303000c0c300000030300003000000c00000000300c0000c0000c0000000","size":9,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.377208Z","times_seen":184977,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4e5784c2f559c1f257d3fe1adff1b994","sha1":"a8bb93b81e79497dcbaea5f08618abe3e13614d5","sha256":"9abd5bd5bc72c038c0276119bd897de57b661a0e4b0d9849758dd698f4b11d10","sha512":"a66be2c2557a5eae52f07ea28edae7acf52d9ab08345204fc42a161d1c474ac05d43323229367c9eaffc197970a47846353096695ff79bb6fc820a804c268af4","ssdeep":"","tlshash":"19c02b08746220f04a43ce395fbfc804a05c62511720128c216274c80c80a94607308d","size":137,"data":"","first_seen":"2026-07-25T07:02:54.148131Z","last_seen":"2026-07-27T07:00:45.024626Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2d0b50c5f3341004fc9eb0180fbedbf","sha1":"a61e5ec146c93a860130cb8da7142fa3d1026a4b","sha256":"9c8b8d8ede5390dffefadd3c93c2cba6763f91fa72ec56525f683cd02667344d","sha512":"862f887b9b3c5580acb5d98a1e3c047e6c07f5fdb963069083a16c1b6a8380f5af6fa58d032da5b3756a57de86cfc388c7c7f96a9dbd5f0e0214407796ce8e38","ssdeep":"","tlshash":"0ad05b40ab0ae553904e3cd7c69ed9251a9155672112c01171216074d4735e487467a1","size":260,"data":"","first_seen":"2026-07-25T07:02:54.164149Z","last_seen":"2026-07-27T07:00:44.966501Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"16c0e822a412e900773f94265229b860","sha1":"3f7b94f3942f43c81bf6104a63328a04122f46ef","sha256":"b15fdefcf464539466ed442882025a3860330cb62ac4613d91e8a94448850155","sha512":"662eed3905e417a9d5d68d7a9aef8c7eb97df1e6c03ad095fe7bc3f29a7820cd4b4611afd58f3ac95a91b71d7c45daeebcddd1ed5092d85b6d678b40b7fbe88f","ssdeep":"","tlshash":"60a024005c0c45013713315144370c0750d11107f0f44d0f430dc05017305050744333","size":75,"data":"","first_seen":"2026-07-25T07:02:54.207231Z","last_seen":"2026-07-27T07:00:45.031352Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"8d8b85adc4d2474a84fbca1381afb3c7","sha1":"3815645d5a8680fd3ed4ce5a3b82f8d432448698","sha256":"3eb8abc484d33a620c974de75babdd2caae4fff7dc8daad7d860dd41c93ee611","sha512":"910cbf3ddef06885833d1127febca48a7f76337a577db0e125a3157ee738bba15ad1d30405e79e1de60279b2605f489b16d8b258fd17bc0c04bce685d65fedfa","ssdeep":"","tlshash":"08a0124823d0a000e671241804070a80b1a069046d1f22048280018d60d0682405c509","size":83,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T08:08:01.428842Z","times_seen":207820,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps-api-v3/api/js/65/10a/util.js","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"6a66b994a8cff590771a8cf7c8d22985","sha1":"75f991bb10c469f7602ad12bbefe3f0194d84ab7","sha256":"854d0de447affcb4cc29bd570d8311a969aa5d43b88f0c64950ac84233cb037b","sha512":"1469786d2b55b52ba1614146b7a32a99d4b354de0a36b36860309c9b18fe873713eb5616db80133d80537cb775e59052264a48a4b5661bbf5c5fc0243c16c440","ssdeep":"3072:gzIavX/CiQKjOnkJG7NJG7A8kwyuZmBFZq:gzIax4npCk8kxu0BFZq","tlshash":"7d64d77c32316b4ee973c85bc626300e90257ddbfad488bdfee59186d954988f0e4a34","size":317352,"data":"","first_seen":"2026-07-22T18:24:50.743146Z","last_seen":"2026-07-27T08:05:46.704053Z","times_seen":727,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/81a298ddc7471070.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"19fc6352b3bef54383c8770d74131cfa","sha1":"c67ec295996975fd662c06e0b614bd3b9f97d7bd","sha256":"9f43d8db2c14631ecaeb7f7ea5d8823bbfe41eeee26f6893c816d0aa348e9605","sha512":"64eba4d08add14b4c9728e2e5026234cf522dd62e2da45df50d967e4d337e6b38cbeaf471dbfba3420a5d3c992bb47c628f60618fca6d84114f7250b7407c5cd","ssdeep":"96:76gC8v2YWBRNY6v28COSXTnv2IDESf3vZ8kM2Lv2kyIWwzysv2hv2zthN1Vm5w7b:cjYWG8COJIDEiikyBwuzkx/T+AP","tlshash":"e4f1536636d4f9d1168b44d5c83b5006f22e0d3a216d70a8b7e5cefa369044ef472fea","size":8114,"data":"","first_seen":"2026-02-06T09:43:19.169507Z","last_seen":"2026-07-27T08:07:37.344587Z","times_seen":1345,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f09564c9ca56850d4cd6b3319e541aee","sha1":"c3156e00d3c2588c639e0d3cf6821258b05761c7","sha256":"4ae81572f06e1b88fd5ced7a1a000945432e83e1551e6f721ee9c00b8cc33260","sha512":"2ddcd5fd66f62c38135603defc728493bc9012c9ea6abc8a9823165792136513b2c53722d2a79c0d6ea31467308bbb49eb217d151d79baf4b2085f487d0abfae","ssdeep":"","tlshash":"c700000000000300c00000300000000000000000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:15:12Z","last_seen":"2026-07-27T07:00:44.983466Z","times_seen":57693,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"39d2592bac0eccdff1e94886f4472629","sha1":"35d3462c7a93c0264610efd6ac970e5d47ca7792","sha256":"24677b8b077f1fc6144a4e59498483aa30800bd1ba610a984f65b357cb198479","sha512":"5c9b66a1781728f08b8b4f9493c68ed5af9382c90f72cc5869f2a07f1837e50ffa4719273c1445bc025454171a535cf621e8f29a6630c32f07843708331409f2","ssdeep":"","tlshash":"88b012247c08fc22ab212c7841120d197120c04354a784d7d02ce3c00339186300b593","size":98,"data":"","first_seen":"2026-07-25T07:02:54.143979Z","last_seen":"2026-07-27T07:00:45.023552Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4c62bc4fd3c4e105cb3fb62fb748d59c","sha1":"f6e2d1e74e35ec4c4740ba02e890b98bda11417f","sha256":"9f4a6a370cd350425d8ac08047e7646116468672e99765ca198e6d463ee5286d","sha512":"5cb125ce0b7fdde81c6df58f6e27943a130f0d9e2a366d94ea8ed926da635dfe2b2c5778a14ed99bb35c7b2a48dcd12090cbac18370611d1c0438e1c2621efb4","ssdeep":"","tlshash":"6cd0129b738060e3d797fea709580020c1ef0b8402d2753d42d5d51070fe9ce83461e3","size":203,"data":"","first_seen":"2023-06-16T07:31:00Z","last_seen":"2026-07-27T08:08:01.374789Z","times_seen":190755,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/assets/insert-main-2c12d9cc3ded20e8cf09a901b86f5c68.js","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"9b47be60a9205427afaa3db67511ed3a","sha1":"13aba22e343283634526ffa15ffb2ec1e770502b","sha256":"4b15578d1c420a58c1c41c4a88728a887af2540cedcd064f058f92b64299d677","sha512":"7493fe9f50f66a520da4224a3514ee9f8030fae1d79708d17be392c168604c530cf7551f4d8d56659e6d3d59844f053e5b48bfc788962e2f1babc627a54a9d77","ssdeep":"1536:a6VmkhM1hDaYGcvezlk5c6w8N6Od9T2KBjtrEjv4SpkHBKlqWfw2:ZQc4yk5HKp5ffL","tlshash":"898329897040343b0aeb21b6357f310a213fe2696e495460b53ad7d07e7ae5b621bf7c","size":83491,"data":"","first_seen":"2026-01-15T11:14:47.62677Z","last_seen":"2026-07-27T08:03:47.472513Z","times_seen":795,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f0a14387aa464f863985b6a6bef1d093","sha1":"51a4a9443e6f007f24b04c914d2721b2730ef3d4","sha256":"5d99f2d91f27190245664e4b3f6f485a27e025b4be90857bcafe11ad8e51111e","sha512":"8d05c11c4010e655a48e74dc053f3b5cac9072e3236bddb482312cc9a5c65db32ccb40274919820c6ace897bad2eeb88d4816605a149d1fa22561eb5a23edb61","ssdeep":"","tlshash":"1480000c3e082800000238a0000bc008c83200020800880000ce008c8c3b00e022282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.137523Z","last_seen":"2026-07-27T07:00:45.005979Z","times_seen":515,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"2da41093c5101c915eba4d7ce7b0703d","sha1":"be67856563d898a7b733742a56b7c24e76f6c12b","sha256":"861a8f8ff3b790a4f6c9a8fbca93e201d714e26ee74a051cc77d25e79ef5f581","sha512":"c78400c6cb9ba66626b3f922da612a3663809ccf26a7b35521a117ee56b1f69fde071301026b99a7976cd6794a76568b7bb46065da5f4d0f23946c850b6a0e24","ssdeep":"","tlshash":"a70110862cf902b6b2d176612be37a2800f8b0476d082418e205e6a096564c2000adcb","size":684,"data":"","first_seen":"2026-07-25T07:02:54.184161Z","last_seen":"2026-07-27T07:00:44.9995Z","times_seen":510,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"644dc335ba482697b43192f5bde84d9c","sha1":"fca03ed806772ffcb1cbe9621bdf964719ef1569","sha256":"76e4392222a281443de945105b1deb3a14a6b53bb350ad127d42f13f5a81ee21","sha512":"8be06ff06adc228081ce796af04e081862bdd46ee0a4388d6f8a928c423eec8e167eb52e2a40ed444812fcc4fef2774349c253e0aea07ffbc1df69ec478869a3","ssdeep":"","tlshash":"6e7000083c082000a22238e0080b200a002300080000ae0000c008800c3220aa02a82b","size":22,"data":"","first_seen":"2026-07-25T07:02:54.150082Z","last_seen":"2026-07-27T07:00:44.995713Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"13d618642764d2b6960367a857576c87","sha1":"8a7893b1545d1dfa2ebee469c2ee8ddd0a0c0b7d","sha256":"45428e1193fa8edd3f86d91bf4fb01b486cd6c1290d013f948c732adf7fb8875","sha512":"ae679fdd05e738532172c82f852d19e014f49f54e805eb49694cf0849c98278864afe9d8cbf2d19fa29c5fa73aa5143aeb3d012d841915597b5af30af9c77ba3","ssdeep":"","tlshash":"707000083c08a000822238a000ab00280022000022808a8080a000a00c3280a800288a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.077156Z","last_seen":"2026-07-27T07:00:45.000766Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"207c220e7119b0530724dc731f2361b4","sha1":"7aa18fcb217183a72060d380ee0150133518dee3","sha256":"645011bcb7ff4bb41b4ecb04213d43dbbf54fef13631581a2a59f7c167aa18fa","sha512":"9c0f5f4d4d2cba1b9b96427bc6a014a81fa6fc98815e7fc6370ef28c0b65d196a6d55fc7d9ccb9125455f8eab715e16847eec069e146de094aefb9e753f21fa3","ssdeep":"","tlshash":"80c022c87b2b0c088352d9ba107b0526d86ac928d94c8760d811fb16a92a25a087bb99","size":192,"data":"","first_seen":"2026-07-25T07:02:54.165992Z","last_seen":"2026-07-27T07:00:44.965913Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0ee7840c65fd232997d06d9430eb3cd3","sha1":"d7b08c1b33e71fb050eda8eb76673e4ad9a8e2e7","sha256":"b1934a6c0e3ad971de0f6acb755aa575707e156d75224d0d6290a0f1d9fb6329","sha512":"f49fc43de4c5e49b7b4f81a3de77f3a6642f44ed070ae82a48e541a680b4992dee7b43218235a23384d386adddaca5a463a723470e778006b84dbe309db5e215","ssdeep":"","tlshash":"61e020a4b60370c596a67c844417db33f1b8b6180864679335a9f85cbc15507929bf35","size":347,"data":"","first_seen":"2026-07-25T07:02:54.163257Z","last_seen":"2026-07-27T07:00:45.009317Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"63a7a928200fbecbaab566892f269b4c","sha1":"c71a636656586ecbfe05e9a5cfd5dd020f6fef61","sha256":"364b13b094815ae8cd606830efaae5f3f5be1e799ec75ec3bb301e1e1444aac4","sha512":"4b94f4c7820ccfc5b0ad57c2b4e2b7aec3aa7ed0e2e7b35d2e1f19b60b070eb4deec3cb87b3169bf47077f0f1c7d5d880950e8cb0f07e3428d524a0489a01ca4","ssdeep":"","tlshash":"8fc08cca89c8da99a01060ce34d3e009a368a9283a83f908d11ed1c46a40ad8e4ad47f","size":158,"data":"","first_seen":"2026-07-25T07:02:54.118953Z","last_seen":"2026-07-27T07:00:44.947463Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e4728480e2fb7f7ad5c9fda4ae9a24a7","sha1":"d271c64c26f1980b5bcba96d21ac5cadb06e7977","sha256":"8222c16f8274ee37719a8d83f2aefe2259e820728e881bfc83430f3c5336f732","sha512":"d5c34af2fb42a8ebf58500129c2cbbec60704cc1e3275f93dfc44dccd3b3487456bb20ed56bb7e4138e86530d9f61b4cfd2e791b5e0d857c87336a50ed923bea","ssdeep":"","tlshash":"e8d09706b91480223932382302628e07e4a2e8475df3a452a18acdc945f1944805d919","size":241,"data":"","first_seen":"2026-07-25T07:02:54.165069Z","last_seen":"2026-07-27T07:00:44.945204Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"11721f4fe0fa20af0333c7eda891ca0f","sha1":"372c3c93f86eb46b9afffaebbf49c82cf42fa466","sha256":"ef2a3319810f3ae9cd5948f3229bc195d7b1558846487473b21a842f9d1b503b","sha512":"0f12b9a1099d5be03aa05cb2c7fda09fcd3d47094ee1973d5beb44d6651729d7c7d719af6b57981f3a39f9024ee36e549167a21724929930e62271547ec0e3c0","ssdeep":"","tlshash":"c7100000000c00c0000000000000000000000000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-08T06:14:19Z","last_seen":"2026-07-27T07:00:44.935983Z","times_seen":2894,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b16d224a9cf9b154c238a00f6ce89562","sha1":"bf90040361427079f596e6a8daa5c6ce789e6d2d","sha256":"8d1320cfe03ab58ca10d024104587c313b2e9dbd142122d973f29c92637aed23","sha512":"4bfdbc6f94a21a7a7955caa00d6f05f6faada48c56a5e7a72f4e70bbe9c6ce01e2f76a8699e4d035e9981d03a5ab940122be0ac7bdbd6ec7405a17d7e5f37605","ssdeep":"","tlshash":"7d31a99f13b50938c5c0cffd41af066248f16115ad074c1f7e01eae54928553aeb1afb","size":1534,"data":"","first_seen":"2026-07-25T07:02:54.139431Z","last_seen":"2026-07-27T07:00:44.944604Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f3c46dd141ed0afa02a1b3049bab0729","sha1":"0f9b6e8412fa13b27e3af2816a112bb28a04a735","sha256":"4962a69b03ce9dced7bd2f588eead880ca97dc93d3fd354fc911d8b6b815d11b","sha512":"006dc0d7d1ead7ff5d5cf02082d1aaebb3dfc2a9a046c9d60bddadfcb9e0ac4702e9868970fb61a9af4bf366d76a03d09a264adf462e9414296dd0d749c136f3","ssdeep":"","tlshash":"9ac08c090b0dd3a6038a6a94610a43aba15284cabe615c28ab40e0c2e68e6054066a1e","size":151,"data":"","first_seen":"2026-07-25T07:02:54.100897Z","last_seen":"2026-07-27T07:00:44.977956Z","times_seen":499,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/800e836146d6e7eb.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7b2a7348e5acf7f61cd01b2152c769a6","sha1":"1cc03a4809684838384744113d8a0e0093a62a3a","sha256":"c5bd83f87b5a8d38fee5230c1078de1f65ac83476cd29e8f5a41d63ea9bd22c5","sha512":"56b9d74b6b4d8a6f1e9909cb88c18e6c784c6bbab10d877a936f334ec5056d8720d20c2443e241c3064f536853f3ffa4578c1c8b3ab391ce8d671256a83a0ef3","ssdeep":"192:c0/B5NGI4y5Zzlqrvd2bcQFCx4zN2M15hNeSd4e+MQCC8h/PzM+kyhtTliuR3dQ5:cOq8bcj+Jz57b4e+MQCL2+k+Nll3dwA4","tlshash":"b492b81056143788f5b78289915fc40c302f2a4caf0e85b5bbbcac666b544e73a6ffd6","size":19477,"data":"","first_seen":"2026-06-09T20:30:37.829522Z","last_seen":"2026-07-27T08:07:37.36851Z","times_seen":1354,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/waypoints.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"dfe0eedf8da578f4a4c43b05448c51d9","sha1":"812d7071b4e44b1aa5d5ea6c7ce0b79eb9d46520","sha256":"a0fded691aed767f851011cd3185b928619298a21a0fbdad4808a9e88b490833","sha512":"9084433d6201a0aa45efd1c9bf7c413d08192a3871cea3061b637af2cbef21de39c3dbe9fe14d7a11edc0c44588551212c94ee4866ff737f991e07907cb9b41e","ssdeep":"96:uLBvpnG3nnRh+1pRVKmHyjyYfAPiQc954LT4KN/WzdBUVKdBJEdfdpu531v8L7:uPG3nC19KWssPVpX4KN/eU8Ju4e/","tlshash":"3bf1f9c9b4c7b4221befa0b5d43f060bb33a9e4561098064f194e4da3db4a2da567f38","size":8044,"data":"","first_seen":"2023-03-07T01:07:26Z","last_seen":"2026-07-27T08:09:18.514134Z","times_seen":12427,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/info/widget-assets?jsonpCallback=true\u0026id=6a506dba4dab3ead5e8ea2e6","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e5b7915581535d1a338e74c10361b787","sha1":"8e427a31f1d59065c84f005b9d3ccdb6532e5033","sha256":"91b716395d48fda57a1be424c51dfb858b1adf3ce16b23e7a2b550dd87df2314","sha512":"fec029ebfc85a50d5628fd0deece109d542a37f9c88a6c7fe09295d1e46a9f6c90ab34d50d2e46ab9e29e9dfcbece7de78e80ab241f55d79a3639d6633d695f5","ssdeep":"","tlshash":"c6e06802e74a0f521fa03679be0e2bc364abd7560f40d6a9a535ee216429cc55026c7a","size":383,"data":"","first_seen":"2026-07-27T03:51:33.485058Z","last_seen":"2026-07-27T04:32:40.395508Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"130c787f212b30dec62fe9d1f64adf89","sha1":"0fe829cf5728aa8f881b127725d34bff3e703f22","sha256":"50560cc380f1458be9737fd2ee27daea8b9426db77b4b38ce5554e4a651ad09d","sha512":"650a479f750fa63552a1eb884acdc1d5a0ff7136389e396a8c311804d6490e8657b6ac81855d1d7633a27309f79c578d0a4927e35cded386db1808d1e5d8e017","ssdeep":"","tlshash":"fbf02d135782b7b2d04a560b50cf628806b2c032ec5acc8f1a33e2b40cb888a209af85","size":621,"data":"","first_seen":"2026-07-25T07:02:54.169445Z","last_seen":"2026-07-27T07:00:44.964235Z","times_seen":498,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"506062df458617a6bfdd35a3fbd41c54","sha1":"7e7395752c17ceee179c6a6ac0cdc54a44401c6b","sha256":"a7e4c6a4faba5d54fbf9e416b44f1e4c26d60946ee542ea3510b95b0c146e6a4","sha512":"e0aa46183e606b4bd2eac6695caecce85498b80a41894bc26fd6dfa2a7db92c78f9e69349df0daf41d79df5a8d1f95c5aef07047e4231252f0eaa123daf3d096","ssdeep":"","tlshash":"cff08bd487010de8b201bce92deb3464927f89133c503009ba12a21a5234f4d945b82d","size":540,"data":"","first_seen":"2026-07-25T07:02:54.146382Z","last_seen":"2026-07-27T07:00:45.019491Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.ripples-min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"ac017bdc5fcad92a2abbc0e338742d5c","sha1":"4aba8b07be06fe82d938cb58c86dc9b25e54ab57","sha256":"ec4be3cd1e88d3ff939be875fa351459aaaa0d1be3b1f45b5a805e8d13e4c5fd","sha512":"b0f33df0316f64cc8dff596fe21f8486e4e6f094a1c6c7a3be41b7e717f9e35cac63bc574aff1cc35bd16daa7949b3049a8b3b0c19ae19896b2fe0d5ec43d3cf","ssdeep":"192:BtXQeQ+kvWJ2V6puUhBTa68qF6KkFMjWVXs/pkGWEvushkoaMX2G1EZVp78ixRcU:DbQXWduSc5bVspuEvutT7nXc0H","tlshash":"c262f689117a34282a037152a4690f85026fd9e9b607c7ad357cf1eba4e1e0c733fbb5","size":14804,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.520917Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e25b5a6d5b2365cb579d486a6acba51b","sha1":"6f513d7efbf5cd1176677d41c82b897b8006217b","sha256":"81799c32d53294ca91ef92a976a6501f0a7c8c424aa44278c8f06c0f71e0eb52","sha512":"d0b8a9b323c125a111082164ec638c05109a1b0add4136f4a0b69c99b680579b4755177a7c586a92f295bd1882b7eb8e41eb6bac406ef90d4257805cfb82308f","ssdeep":"","tlshash":"e9e07db0258123422174df79f0f3120430e072c67e48ac8f51256b428e388c1142353b","size":314,"data":"","first_seen":"2026-07-25T07:02:54.113702Z","last_seen":"2026-07-27T07:00:44.946298Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"56d477e14d3afb1ffba04e085eba7834","sha1":"640b4d7232aba3b4b3f243b10228f7bd6bb27aff","sha256":"21220562832a31cb34cf0cc2cfcf17728feac102affc17e2e97d7e405c224f06","sha512":"389a61bfa0b427630b58c48dd7c72c4206a76c88e6743d446674a84c0cddfdd12b8fa66086bdf5c900937cc837841b85f9c2f47f6a03237c552af2c5766ec936","ssdeep":"","tlshash":"82d02bfb5811c06ffc27059213335dc910d2f20dd5993f9ab6b2b1a4392000c70d54c7","size":283,"data":"","first_seen":"2026-07-25T07:02:54.126205Z","last_seen":"2026-07-27T07:00:44.985926Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"df4ecf2995d9a4760b6fe2b232d66a91","sha1":"21dfc49632cd521980c8fd611315a62037b83142","sha256":"1d0ddd4ea3351d60237f5374532c094863db8fee5d00fdbb477612c30630d16e","sha512":"3f1e696cd9e7f7b05b35195d7967fa6fe8332b9e921ed3077b855283e083ddb38d878f6509353e11b40c8e9f2e2799dd820e790ec46ebe93a9da31576028c336","ssdeep":"","tlshash":"9ee07d68664571642f929e46868eba88d68a404dc071c9022629d0c00c745e4903de81","size":305,"data":"","first_seen":"2026-07-25T07:02:54.190462Z","last_seen":"2026-07-27T07:00:45.022381Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"2cc43ad532377e05783b919d86a896d9","sha1":"69e00bdb15ac21186c8d27764e6311759ba5b99b","sha256":"007cd5f5a967155b6963ac5de46c369ee23237414c3f576b4197fe46229808ce","sha512":"404182f4b51a22a4a35e58480d372a65db2465803ca23913e379199413edf84fa74dcf0f92026d8561dcc35bdff981cb98a38c8f50ae05f7224e5c7b42b30c92","ssdeep":"","tlshash":"2cd022c93c4978d20279238888ba01f7e2fbb8dc78068b40c32442002a3ca3a5464402","size":199,"data":"","first_seen":"2024-10-31T11:08:50.83142Z","last_seen":"2026-07-27T08:08:01.362526Z","times_seen":155197,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/9df3b67b6061ea9e.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"c678a91c2c6476c2f4253bbb2f68861b","sha1":"69b7933df2474b5a89bafec3ed00c63e7a38fd6c","sha256":"ee32b6de09c560980545699191b3ba6ebd9847bba1e07b95f5a5ddf359bfc353","sha512":"f3ae2a1ace9a1a1c354782702e328db28abd4864d69e33e7e6e72cc82ce93e5142093752a6b82a5d21f62e953ed27f5101956c00407e5d2d9527eb36435d1584","ssdeep":"384:EjUDGGRCRvBrTfIVZ/X+0o3NkOG4+Z47auBSwTNGFJl:4vB/8Z/X+0o3KZzZ47auJG","tlshash":"dce2c7b572d5faa2139340f0c83f2017f2784c7521ac7460a7e4cc9b765888da6bafd9","size":33297,"data":"","first_seen":"2026-02-04T14:24:19.872146Z","last_seen":"2026-07-27T08:07:37.349541Z","times_seen":1737,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0d80d99d7f209071a284c9ab6d14accf","sha1":"c91e7389c28a7b35eeb114484808a20cddb8c20e","sha256":"0cb21d1de060008bab472c15c63e6f15828de601f85deff00d701d26c0f6819a","sha512":"59df0ea3f533182f0884e52768ba3b5b1dea918c81a430aed117aa60584df1bfc3569ba05dc9c95426cd97513318e2bc4272ec2771e3528117cefce002576740","ssdeep":"","tlshash":"0aa012b01c1dd3d81271c03118250410d6cc2205f8260d086219825248a81067f02014","size":83,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T08:08:01.405042Z","times_seen":338825,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"316d406bec14ed278d88b29656ec9700","sha1":"bd547102264254e2beef20bde9dbb4a76930c603","sha256":"c20bceec8e69ac1e4c2e4e22bd2c3676487f19b8676151449558633b99b47e86","sha512":"46f1ff723d384eba48d0384e861d729824711cc28520de2cb5defc92c4db58aeff67b8349ad7d2d75368507cad41580169a73a544a2fd0364b326442be72360e","ssdeep":"","tlshash":"42c08c1814a2983a3224acc3b08f910234c528110104406483ad8031b73044aad380a9","size":145,"data":"","first_seen":"2026-07-25T07:02:54.099906Z","last_seen":"2026-07-27T07:00:44.979724Z","times_seen":499,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f0e976b756b6afe7f40bca206a2d7150","sha1":"db9bee9a7bba93a60330ec5ef1334d9c164fcd56","sha256":"029b84af88c5d6ced58173997a15fa47011e198e5449027d87e2f7b871f332c2","sha512":"486596b8b7d88539b3147ed55749794ab08962047191f33ff9915fd4e4a8a9a24bc164c0d44f24357b6e9dd72d1ccd88f981aa0cf2c7df585a83000d4baccc9f","ssdeep":"","tlshash":"3f8000883cbab30e8222283223ab200aa2ae28c232088e00a00080803a3003a8032c0c","size":29,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T08:08:01.363248Z","times_seen":245792,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"219505d4d5ae5b145370ed3cef98cfa3","sha1":"89498e7304c8074715c729700b3955fc065531b0","sha256":"d298bd11845e65f3a66d13d3a5ab32c91d5430be6dd23c2bb70ef16c03e21751","sha512":"c169611018ff9ff3e5d894a922f07106d329ca6d9668b9dab35bed80b825bbe371edd8cbb5a63171e6f300470e690bf74d7704b7109cf78b286207e396916335","ssdeep":"","tlshash":"314000000000000000c3c000000000000000c000000300000030c00000000000c00000","size":6,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T08:08:01.338528Z","times_seen":174975,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"834dec29a06aa1149f778035ffade82d","sha1":"cc71686d432a1236d2cab595573ea9498de75463","sha256":"4f36b2c33e2478b4d3ba77a2d6ee222f79ddda0c54ed27e41f3fe2cd7a62d318","sha512":"48c414ee31ecc55c83cb5b925daaaba737aca1cf332cc37dec593c919fcf0175118fefd24df9e42662593abe95e078e5c9a09ac2502aefc496e0df715b6d590a","ssdeep":"","tlshash":"26d02ecbb1c0378ab8a66cf4f2b34a0438a322243b8080e8803a36580fe05c8d903d25","size":280,"data":"","first_seen":"2026-07-25T07:02:54.194101Z","last_seen":"2026-07-27T07:00:45.017282Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"22fb59e0e0cdacc10fb7f1ad105606ed","sha1":"c6b3878cffd44663b546b12c26af899b037a4a53","sha256":"34469a749ff4f676f6d6a4d95bd641b9f9078810647dd3f14ac9e2aca1045513","sha512":"c39750c2a29c1873c338aba8a3bbd078bec533900b4ed5e1e46a17a8daf2b90c1999a8ea60da594bc411f49f60bb33f525f29d47990d0d6575b9231ba0ccf370","ssdeep":"","tlshash":"65d097c46bbb982c4984ce2b403311319049a21c8e080c50b230fb3bf7a075b243b0c1","size":229,"data":"","first_seen":"2026-07-25T07:02:54.072496Z","last_seen":"2026-07-27T07:00:44.969716Z","times_seen":507,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"92eb5ffee6ae2fec3ad71c777531578f","sha1":"e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98","sha256":"3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d","sha512":"5267768822ee624d48fce15ec5ca79cbd602cb7f4c2157a516556991f22ef8c7b5ef7b18d1ff41c59370efb0858651d44a936c11b7b144c48fe04df3c6a3e8da","ssdeep":"","tlshash":"c700000000000003c00000300000000000000000000000000003000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:11:47Z","last_seen":"2026-07-27T07:03:40.023759Z","times_seen":80737,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"61a6f2652a0b6db05139abddb9b96ab7","sha1":"05548eab56f32db3c8c42fd2487a3f3b3ccf0ee1","sha256":"cc6e0d6af3dc4f620458aa79c4f4c0631ebc1bd55a148f5e9a06ea8874885831","sha512":"f2f89b1252cfe849de0cb4e8e8b7ee29cf99c563c5113ede3c45d470d5d14c45e0a3e30e560a79d14bfd4c46943c24a8444a1e81e4a0e93addf71ebdeaccaef4","ssdeep":"","tlshash":"4780047cdd4c5c350f157415001740441177700d50150005170004c44f311c5140fddc","size":38,"data":"","first_seen":"2023-03-11T13:53:37Z","last_seen":"2026-07-27T08:08:01.396504Z","times_seen":266338,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery-ui-slider.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"43109e12e36805738ddf8deca737c53b","sha1":"cb6bc7d0b27bdf80a672b857bf6db0d41cc55995","sha256":"37fbfc8e36798a479dd09027315d1de63f53d75aa169c97b7991ae9afbd249e4","sha512":"2c906e31629ced4f66d78be9cdcc7e6c33c093530c0e87d2fea4248d427c3b34fbbe2b2607b114c116ee76716d67c56ef55790d2c3e7c3759093bd91773b2df3","ssdeep":"6144:UnA+sJQfWwFjn5nn5ZOlhgpRgqbb8wsucTHl2Ec/GdTieCu5t5Ql8Ry6tWWVIjVv:+bpsucTHv5t568R0O0rJdYq28cez","tlshash":"f6a4b7d5734f266f89ea3359583a9189ea3dc0b5d202807d789d58dc24a8c1843bbffd","size":487212,"data":"","first_seen":"2023-03-08T09:13:48Z","last_seen":"2026-07-27T04:47:12.495015Z","times_seen":270,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"5206560a306a2e085a437fd258eb57ce","sha1":"c9ee5681d3c59f7541c27a38b67edf46259e187b","sha256":"de5a6f78116eca62d7fc5ce159d23ae6b889b365a1739ad2cf36f925a140d0cc","sha512":"40422e2733a73dec2f9aac48e2ab48d3b2fdcdc1e3a88bc7ea855227e62c029246da1dd49dd057bb8a8b796b3b2a6f60d9d8a85de53df597e422b2f68c54cfb6","ssdeep":"","tlshash":"c70000000000000cc00000300000000000000000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T12:04:13Z","last_seen":"2026-07-27T07:24:20.14441Z","times_seen":68664,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"57cec4137b614c87cb4e24a3d003a3e0","sha1":"23eb4d3f4155395a74e9d534f97ff4c1908f5aac","sha256":"18f5384d58bcb1bba0bcd9e6a6781d1a6ac2cc280c330ecbab6cb7931b721552","sha512":"4921de1edb2ecc8ca3a22823705194b902cfa471675f2d1ae8bf67d0c7b060a7c192e36ffca9f1a0d90ac2dbbdaf429ee1ec97e160eb00dc80b07000935304f3","ssdeep":"","tlshash":"c700000000000000c00030300000000000000000000000000000000300000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T07:24:20.0357Z","times_seen":45496,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"58cf531c1b4e5d67b0c780ff6899d969","sha1":"9e997fb73f7026136c3201510d77658d59407ded","sha256":"16d4dd67cf8a92581836f38ae1673f2fb1d7d97e0f913eaa6e7e102be59cc123","sha512":"b1961e02be4ed40fd3ccf43025f087eb7528a808a4349b7a97525a0b07f298ff35062c61bf5c5758027ef410cfa58aacfdaed05ca47e4bc93ef17feeff4817f9","ssdeep":"","tlshash":"eba0220c3c083002320b2cb0888b82cbc0202330e0080802c032c08222f3a0c830be3b","size":72,"data":"","first_seen":"2026-07-25T07:02:54.187451Z","last_seen":"2026-07-27T07:00:44.96084Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/4911410e5153f0d7.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e09a94d1ed13e73c8c05e86ecc9b73b5","sha1":"5d3e0e86e66f40d854564417d18b9a8cfb50938f","sha256":"bdeee3ad5435b26f62f6a8ce700f78618b18b355f3d3cd21ec3949a59777eaf5","sha512":"7d4e4220b8c82da8621e7f0ae1bfdb323ed094215712b54bfd28ed06e06e0aa9aded8bc0f07eb71ea08e821f75d433c38522d2054e9756e34814622cf8957899","ssdeep":"3072:LZhLWlPznn2U1BR0Bef8xgVrkRMKTopmN6Cstv9it+QK:LZhLWxznn2U1sWK04xstv9it+QK","tlshash":"66240be83995f6626ab302a710af1803733c252b280d4d60a711fdddb57845eb17bf9e","size":224417,"data":"","first_seen":"2026-02-04T14:24:19.892015Z","last_seen":"2026-07-27T08:07:37.366889Z","times_seen":1503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/2/js/main.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"6afd9a18a592a47fcaa0ae0782f99e89","sha1":"ddf7e8c66fb357d3774f7fb18179db2785b7a747","sha256":"03cd62c4c2c6a7176f0fa08acd2ec6f1bbde9fc59b12af7e6e3b06430d6b4f1c","sha512":"de65f5170074ab8cfe1c326dd8a9773fe82cca32ab9ef9387f034f80a8525f6b7f4266c514cd1b0fe9fc011193e89d9c90fd52d55d020ebd737183cfc68d5796","ssdeep":"","tlshash":"0c116b1af97421c291fea1ff4f2ba4c433716833a4064361ad19d9a42c9955a2613f8b","size":1051,"data":"","first_seen":"2023-03-14T05:59:18Z","last_seen":"2026-07-27T04:47:12.525068Z","times_seen":34,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"909822438f3880445c5535efb48b46d9","sha1":"00685c680d8f0bfb3dda3154539bb972552fd921","sha256":"894963ac612d3c872d00cfc1a926c6f034036e99512409f06342bff53d723689","sha512":"ce5816d0da41ef048fbcd158120239337d58bf594db8b7deff493beb436c5319220f1b01ea03fd9f4b755b4fd43155f23271e1e27078167041feb5c9a784699f","ssdeep":"","tlshash":"f9c08cd873b61824c2809a73a03b46a1a88ba69c98094440e220f9a9763030d082faa5","size":156,"data":"","first_seen":"2026-07-25T07:02:54.13346Z","last_seen":"2026-07-27T07:00:45.030115Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"aac1259dfa2c6c5ead508f34e52bb990","sha1":"8ccb8a3f7ac5bd9c4f1ab74cb453f7f32903fb1b","sha256":"27a26bca625b223971909dd88fc93faeb050dc5b34d91c0871661740dcfb9d18","sha512":"2a404c9768dc86190bcc7c98645afa7b6f74488371b974d14da48d7379b2cfae6c8c5bc878ed17d0f9f4c4e62138bfe416cf9a1be31eab07e062c0f5f55ef811","ssdeep":"","tlshash":"c71000000000000c0000000000000000300000000000000000000000000c0000000000","size":2,"data":"","first_seen":"2023-03-10T08:44:37Z","last_seen":"2026-07-27T07:00:44.992827Z","times_seen":1135,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/33074d3ff5d0cd2d.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"992603cebc96287b9bf186c47928c4d2","sha1":"8a86c102cf1671f6d0cf3b6b5598fff510a4b79d","sha256":"93abe3bbe2a336a05186632225cfa198e5969ab56080e1163da35e41ae9facaf","sha512":"06cc3005d9c8ffe1f27e81eac61fddab10c3e07cdca8c183315799b19b177a9f9dd2043bd1c9c92364578b78d69640c31014db6cca25a74972244784f2de74a2","ssdeep":"","tlshash":"e4d02b702250fcd8408aa4cc8836424bf529247262fe3495d7ae8cb1a174f0c51e1955","size":282,"data":"","first_seen":"2026-02-04T14:24:19.894391Z","last_seen":"2026-07-27T08:07:37.445319Z","times_seen":2488,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"32efc8291438b62ef493347e387cca0c","sha1":"cfde2c91f018e6df9094980266806f07d5595723","sha256":"6ea6f07e03fc88bb1c49cd7c10e57e591028e47da7ba7ee2587f34d1b9f3cc54","sha512":"81c67ce5df3bff4092525e1994a46a1798ac52f794c0a30e12fc4b3571bfa81a6d69a60144d8ed3246fe8e42b72a49108992bc01ab56c0b35f5e6c41782c4b5b","ssdeep":"","tlshash":"73e0c0197b572073a1b6288650062fcd6a682c4668c9788bd222794008acdc3544dc42","size":329,"data":"","first_seen":"2026-07-25T07:02:54.071637Z","last_seen":"2026-07-27T07:00:45.025225Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bfb05b64541b797fbc56b1ceab0d0707","sha1":"ff5eea3714de9fa65254f3722ee63ff9718b4cd8","sha256":"9a3032ec6f3b482ef8f786196f5fec31ee55139f79eec40f1ef9e5d487f68c37","sha512":"ef42e661cb08389b03f24f5e884fc11c24a95d58110d3bd963a916d449cc80e06554ef4863d18aa0b14c12c0004f03f3b244442f4adcc9cd895ea236dd283ff7","ssdeep":"","tlshash":"687000083c282000a22238e0080b2008002308080080a80000c000820c3200e203280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.15521Z","last_seen":"2026-07-27T07:00:44.976836Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ded6cb7b021faf2355497e718ed7afc0","sha1":"fde446763014ad7c5b2045c021bdfe8ca139fd5d","sha256":"096a45acd89683278277589df946866fc34365c96212f1a60f42b143e5ffb28c","sha512":"160406cdfc444d63df42a6cff7c879049902401b95442e7ce2b82ccbac11aee8f6dbb1eb8382e2d8d21257925b51718eea4518fc53f8161654c3d8eef36546a9","ssdeep":"","tlshash":"25d02ba5b1061051f77079a19262d8989992d6cb2af1cdeb442c41400dbfe045875b14","size":283,"data":"","first_seen":"2026-07-25T07:02:54.081421Z","last_seen":"2026-07-27T07:00:45.022961Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/swiper.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"41609ca1a726d1d782ec172db9004d9e","sha1":"4c2688a931f79efb48b6fd0f289277dae4ea47cb","sha256":"8227c86c09f360cee0ca0b466e89da0fbdbfeeaf72d7107be1e7b4cebf06057c","sha512":"1b3deb1e6f82697145135676417b1e92efa05ec88e030f899374f4f5667e66954c2a78948601058e553ed69797b478c326966bc5688ca23c11992d6f6745436f","ssdeep":"1536:eyOkN3TklR3ZIFDJ+Y7n2L5ydUT80tSQfCBTR:LTX73uT8/","tlshash":"1593d66eb314f3e295d3214a675ac64122f21706b809dae870b54c5a68bcc5d03bffbd","size":96428,"data":"","first_seen":"2025-03-17T20:39:33.079777Z","last_seen":"2026-07-27T04:32:40.477196Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"61e9c06ea9a85a5088a499df6458d276","sha1":"e2415cb7f63df0c9de23362326ad3c37a9adfc96","sha256":"fcb5f40df9be6bae66c1d77a6c15968866a9e6cbd7314ca432b019d17392f6f4","sha512":"61037724a2fb00a12fa8a53ada233f54ff7fc6ee02048e579b83a127ce79fc03906c35b5307beb18a3cf5021fe031ae6587448d4d60a082d73252fe2e2f4ae7f","ssdeep":"","tlshash":"c700000000000000c00000300000000000c00000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T07:00:45.021763Z","times_seen":79764,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c97f06046b55e8dae6a537ed7ae34fef","sha1":"84149880d516a37ca62c27e982f46d830b79caa8","sha256":"131b8b1c3193add0da6e1bc7b54e66e599b02037f372eb68ae1086fe443811f4","sha512":"8cd93216b1b29a3b9551a054b4c950e750d68749d9f6a2c8d7ddec13ec6894949d80c67cd339cd50916de026e15fc81727f9725ae127a9d6604b5989a711fa8f","ssdeep":"","tlshash":"6ef0dc0d48fd83769ac44dc290d33c0ccb0806071cc2610f7a49fb7032632b78497e64","size":485,"data":"","first_seen":"2026-07-25T07:02:54.134293Z","last_seen":"2026-07-27T07:00:44.955206Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"6e6b4e7c1a45993ae64f9aaa4672f019","sha1":"81ed544bb4656d12c73eff1d5fe3911a080f8c51","sha256":"4da86e48d9b22ffccb648bc40fa2df935429b12e5903bdeb308b218615df64b6","sha512":"5b788fd445160f1aa102912f67fc8b92f90f2f78e16690e093896b972e1a73c2ee56f3fa14c6c7261cb3aeccedcf2433d7cc65db8d881b09554b01640d3a9faf","ssdeep":"","tlshash":"158000883e08aa0c000238a0000bc008c83202022a02880000c820800c3a00e030282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.185612Z","last_seen":"2026-07-27T07:00:45.021194Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"eb7194ac9d6f5a83b6c7cae43038d2ef","sha1":"9b1cfda44cba767b72373d6df56249b565efb634","sha256":"eb2bf66d92707acd8be84dbfcca1376c2562c4ec94a4d87babbbe67f4d125aae","sha512":"7ae1e7cb8edf692da592a8ddc798f6f564f5ea0d6fd6919ee5c86ca95d983d15e707615cb6ff6623c0951e0eca8a4852f1d8d8596f985ba3e214feb47bfcb886","ssdeep":"","tlshash":"6390025969497099203710e0425e292640d2c40065544041961494f65434b17d531c6a","size":57,"data":"","first_seen":"2026-07-25T07:02:54.098994Z","last_seen":"2026-07-27T07:00:44.998879Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"04349b75733f9a34b4021b587765005c","sha1":"6070a8a928fcfb84d659883893b6917e124ca898","sha256":"86d8798669d148db9b83305e628958589e0a0699eb4c5176a49445d3f4b45eb6","sha512":"951d0dbaee27fba356c6b0b3be78b59f088d48efe1d065da056b3c37633ccf9c7ef5932f08f294d5b5411fa7dad37f6cd9f9191bbce94af7c6e76e69eefa4cd3","ssdeep":"","tlshash":"a731a99f53b50938c5c0cffd41af066248f16115ad074c1f7e01eae54928553aeb1afb","size":1536,"data":"","first_seen":"2026-07-25T07:02:54.188598Z","last_seen":"2026-07-27T07:00:44.990878Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/raindrops.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"3f6efb4ef67b98d3d00361b060c11c38","sha1":"38c33b6980824be1e8f55d2fa2b24a6b00b71dc7","sha256":"d6530fd12aa7322c266e44657a51adbba2566512c9feae36c7a097b604cdbb18","sha512":"691201644a9e561634302a483431f244c38367bb728b2f5ce1c51dafaeee9874d3ea9a63f8e6d39bebc856453f8802975b75ed1e0c4f0134ca600e5b37941c75","ssdeep":"48:a60RdXKLdzeUqNU70qtdKIZrhBXcPJA8BlDanox9t64hvMzs1Iod4wpxxL:iKzehNcpXR9BpoxH6ovMzs1IHw/xL","tlshash":"3c91cb5d27b61304a4d721aecf4e20089271c12b2952c95dbf7ce3dccf5a83a469beb5","size":4597,"data":"","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.559039Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"6b74d263b2f181bb8c759bdb049f2cca","sha1":"f4ee289de7015e0faac2be30edb6240a6d7c6139","sha256":"e5a9bf69c1f1f7fa5574037a92b8b3dfc6ba7b0479d1d9e7347d39a0bdc41753","sha512":"10bbf90be8836779b50b0da8ce0f1773f474e604cc0d10101267cf42c41ab78d27a2609f824a3493b235650ac7bff8777cc297feb6a000dd7b6aacaaab88597c","ssdeep":"","tlshash":"527000083c08a200022238a2e0ab00280022000022808a0080c000a00c3200ab00a80a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.203661Z","last_seen":"2026-07-27T07:00:45.018417Z","times_seen":506,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7fc56270e7a70fa81a5935b72eacbe29","sha1":"6dcd4ce23d88e2ee9568ba546c007c63d9131c1b","sha256":"559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd","sha512":"21b4f4bd9e64ed355c3eb676a28ebedaf6d8f17bdc365995b319097153044080516bd083bfcce66121a3072646994c8430cc382b8dc543e84880183bf856cff5","ssdeep":"","tlshash":"c700000030000c00c0000030000000000000c000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:15:06Z","last_seen":"2026-07-27T07:00:44.98961Z","times_seen":74523,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"65cfbef4976ed897962f8aab52c2e7dd","sha1":"5002f4eb74d361e916cd01adcce97615bb98a93c","sha256":"7ffca58a18354a6fafd52f93908f56bade386cd0181cabc22dde999e040843c9","sha512":"af6eaa50caa0889f6d7d19ae675e875be4d2577826cade64399694acd9a3c494bd35791cc47de33782b2fd996ce97b638289cad79915949a891f5e885da04ddc","ssdeep":"","tlshash":"141154b6393fd032c2e924a6d846ee7a42d08449926210b50fb332c437f6e9cd11ad54","size":1012,"data":"","first_seen":"2026-07-25T07:02:54.112569Z","last_seen":"2026-07-27T07:00:44.948009Z","times_seen":502,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"796a99cad1a6610a7fa68e368d72cb4d","sha1":"b484b5b4973974c40859b0bcdc09c6c87a9a659c","sha256":"d61a50f46cd94e534153820f129c90bcab530e78f08cf2f179b008fac3c6f3dd","sha512":"76e33f7b2eac4d092754e12c149ce663195bad3173c574ddbd997bbc8a75594e868ace5263bfbb32aa2d38fe74918ef36242241498935df9df6535aecdaa7fb7","ssdeep":"","tlshash":"69d022072287ddb6a2729804030afa15b0ff100b0f262a06f3c885026734b8cc262a97","size":214,"data":"","first_seen":"2026-07-25T07:02:54.074862Z","last_seen":"2026-07-27T07:00:44.96701Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bd0bcbfeaf7651b34de78f94db256e9a","sha1":"d5d4133262a2d4536708007fd3d58db921c73a6b","sha256":"7c4c4985dc2c7739b2b78d4608b572981a8394702ca5cef9773fe555ff0eafd3","sha512":"4d4b6a8f7b6d27a5d6e269d4b9a804986a2fdddd08cc47ed5cb726e993749117dafe9300281cf36c5065dd89063cd7c09e39e2851bb7626184be44b33d3237a8","ssdeep":"","tlshash":"faa022203e00ee02a32328cc023b2c08f20a8002c0000c8fc03ef3c00330bc023028fa","size":77,"data":"","first_seen":"2026-07-25T07:02:54.183264Z","last_seen":"2026-07-27T07:00:44.972095Z","times_seen":508,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"952ddc5ca686660c54f7b74840982b4b","sha1":"fe05b5837e28143d2981f9a67a56e565a7982be7","sha256":"9baacdd193c5a18c5a01ecf248bf7a316f7927c345ee3ec94fdce802d458718e","sha512":"a652cf3cc48705bc2b0fcbb449a0a61fcf31f30ad0feab7697a10c6c0e6485353c815048a9570763d74cddcb857fe49973ced6de10bc5f8239c7671fbe1881e0","ssdeep":"","tlshash":"d5c02b08746220f04e43ce395fbfc804a05c62511720128c216274c80c80a94607308d","size":139,"data":"","first_seen":"2026-07-25T07:02:54.186501Z","last_seen":"2026-07-27T07:00:44.972651Z","times_seen":503,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"49342302f3a1bf591d537268aaa3db97","sha1":"1e27d4dce5d9e78a557d902e2f9255d8f1d567e4","sha256":"217a194b2b1e9e205f2ce02d68f3d346218cf59e0ffb48dfa0f2331ed11232c4","sha512":"4214bf7801e5a15a9af9e231ca3cdb1bd8a05eb81f603da3351e3def46477af2f9a3543cd8f1cc0e19df81303618c01c3b4bd820b4f45d8be5c11a1e0f0e067f","ssdeep":"","tlshash":"59a0120074447c0116112c75c2260584b0511a0b50902401810596c002705895113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.160135Z","last_seen":"2026-07-27T07:00:44.942852Z","times_seen":501,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/js/jquery.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":false,"md5":"c9f5aeeca3ad37bf2aa006139b935f0a","sha1":"1055018c28ab41087ef9ccefe411606893dabea2","sha256":"87083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de","sha512":"dcff2b5c2b8625d3593a7531ff4ddcd633939cc9f7acfeb79c18a9e6038fdaa99487960075502f159d44f902d965b0b5aed32b41bfa66a1dc07d85b5d5152b58","ssdeep":"1536:YNhEyjjTikEJO4edXXe9J578go6MWX2xkj8e4c4j2ll2AckaXEP6n15HZ+FhFcQ7:uxc2yjx4j2uX/kcQDU8Cu9","tlshash":"4483e6d9b2c67062977730b950bf410bb17a98dab44c8c60f158d9d47eb8a8d907bf2c","size":86659,"data":"","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-07-27T08:09:24.066847Z","times_seen":98387,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d224d956791813697309740c0fbcd15e","sha1":"2418655004b5f0f64a6e4075cb8ac4b53444421d","sha256":"48c035187614ea92c5bf66cec55cf8a9a0a30eaabd1bfd51234d0d5e44c93d65","sha512":"c1005f866f7b788b9fd04d3374ef4405bbadde272bf42c4bd0f8cf942bf1e9f6ebd13d50284f2eb5da4e5fd783c16dd4ef54f7e24e8eaf62496d2e744ffe13eb","ssdeep":"","tlshash":"ea8000083e08ae00800238a0280bc008c832003a0c20880000c800a80cbe02e020282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.182324Z","last_seen":"2026-07-27T07:00:45.02827Z","times_seen":515,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"673a875cd33f946c7fb234078db0d89f","sha1":"f1cecf9e970522a619b72e66a124dbf89737b06f","sha256":"e4d6fedd18866f7aa5469a8b90a348fec071f4b82598152a7aac6419edc3ac3b","sha512":"da7502389b64be9c9f1ce98b8976e58b6f1e897b5afd9af08fba27f6d70d01021e08f621eec1d589e2ffe0bd67e8610fd8936fb35623d28eb443631414c11e87","ssdeep":"","tlshash":"c71000c000000003000000000000000000000000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-08T06:14:19Z","last_seen":"2026-07-27T07:00:44.975594Z","times_seen":2378,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0cb2ca5238ca9b85cbde05a0c6a96a2d","sha1":"e7a5d39e6f8c5139be41d138aeb818c7b5c789ba","sha256":"65cdc6799de01f75bae65d4915b26836b836cc17ab7614020fa97a1d96992d6e","sha512":"c76c6a2b76b731648ebe5b1ed2a0f02a6b803cd96721d39dd9022ea67cfc21c068cff19624d10f4fea8058e486b4138084c49a0d85113008a8f828be99dc79f8","ssdeep":"","tlshash":"c710000000000300000000000000000000000000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-10T12:37:25Z","last_seen":"2026-07-27T07:00:45.007697Z","times_seen":6767,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e1469a0c2dc2156f9a727d0ed640ac13","sha1":"ba1dd0fe89c6bf92a6a0f1dfc9336ec0c722f494","sha256":"12854497ac91b3bf315b127a6c446692fb3c10bd1dcd87c3d60a592f63083cc2","sha512":"0cced30914a00cca9185467b9de158e890ae36123087ab40ce5ab41f2ff3ff858178f42c2810106003fad52d94dbebf96e5e47c7d3935f2cb2ebffe7ab387b94","ssdeep":"","tlshash":"6c0110862cf902b7b2d176612be37a2800f8b0476d082418e205e6a096564c2000adcb","size":686,"data":"","first_seen":"2026-07-25T07:02:54.118078Z","last_seen":"2026-07-27T07:00:44.964759Z","times_seen":500,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"Google Maps JavaScript API has been loaded directly without loading=async. This can result in suboptimal performance. For best-practice loading patterns please see https://goo.gle/js-api-loading","filename":"https://maps.googleapis.com/maps/api/js?key=AIzaSyAHzPSV2jshbjI8fqnC_C4L08ffnj5EN3A","line_number":328,"column_number":325}]},"http":[{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/lightcase.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.605Z","timestamp":1785126645605,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/lightcase.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2645\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":17637,"size_decoded":2893,"mime_type":"text/css","magic":"ASCII text, with very long lines (334)","md5":"5e43f04ae09f756ea3383e3c55bcda57","sha1":"62cdabf58101f7005cad6a0761fc35ff26029a13","sha256":"549d5884d4cc4fe712379621a134924a4d11263931720fe5dbfc72b057bcf63b","sha512":"d508b6e9e5277e715454e8f10c2e431f34178e5564dcadf2ece6293db99ae03710ca0043f5b50403dbd3d134eae7100ca8b2888455c13b65f66bee7c711dbce1","ssdeep":"384:YN1/15S2awUwsWGkVK0H420JstKmdKqhKiPKgKYmKwKHKAfKDqKPihKlmKQoKogS:K1/15S2vA3bJL47q/NXzc2mI1","tlshash":"01827335ba9003832233811767f5f9262754e23be896dc5575c5907cafc1ab239a3bf8","first_seen":"2023-11-30T19:44:02Z","last_seen":"2026-07-27T04:47:12.486512Z","times_seen":7,"resource_available":false,"data":"LyoqCiAqIExpZ2h0Y2FzZSAtIGpRdWVyeSBQbHVnaW4KICogVGhlIHNtYXJ0IGFuZCBmbGV4aWJsZSBMaWdodGJveCBQbHVnaW4uCiAqCiAqIEBhdXRob3IJCUNvcm5lbCBCb3BwYXJ0IDxjb3JuZWxAYm9wcC1hcnQuY29tPgogKiBAY29weXJpZ2h0CUF1dGhvcgogKgogKiBAdmVyc2lvbgkJMi4zLjYgKDIwLzEyLzIwMTYpCiAqLwovKioKICogTGlnaHRjYXNlIHNldHRpbmdzCiAqCiAqIE5vdGU6IE92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHlvdXIgcHJvamVjdCB3aXRob3V0IHRvdWNoaW5nIHRoaXMgc291cmNlIGNvZGUgYnkgc2ltcGx5CiAqIGRlZmluaW5nIHRob3NlIHZhcmlhYmxlcyB3aXRoaW4gYSBTQVNTIG1hcCBjYWxsZWQgJyRsaWdodGNhc2UtY3VzdG9tJy4KICoKICogLy8gRXhhbXBsZSB1c2FnZQogKiAkbGlnaHRjYXNlLWN1c3RvbTogKAogKiAgICdicmVha3BvaW50JzogNzY4cHgKICogKTsKICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnbGlnaHRjYXNlJzsKICBzcmM6IHVybCgiLi4vZm9udHMvbGlnaHRjYXNlZWVhZGVlYWRlZWFkLmVvdD81NTM1NjE3NyIpOwogIHNyYzogdXJsKCIuLi9mb250cy9saWdodGNhc2VlZWFkZWVhZGVlYWQuZW90PzU1MzU2MTc3I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLCB1cmwoIi4uL2ZvbnRzL2xpZ2h0Y2FzZWVlYWRlZWFkZWVhZC53b2ZmPzU1MzU2MTc3IikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiLi4vZm9udHMvbGlnaHRjYXNlZWVhZGVlYWRlZWFkLnR0Zj81NTM1NjE3NyIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCIuLi9mb250cy9saWdodGNhc2VlZWFkZWVhZGVlYWQuc3ZnPzU1MzU2MTc3I2xpZ2h0Y2FzZSIpIGZvcm1hdCgic3ZnIik7CiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7Cn0KLyogbGluZSAxMiwgLi4vc2Nzcy9jb21wb25lbnRzL2ZvbnRzL19mb250LWxpZ2h0Y2FzZS5zY3NzICovCltjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddOmJlZm9yZSB7CiAgZm9udC1mYW1pbHk6ICdsaWdodGNhc2UnLCBzYW5zLXNlcmlmOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogbm9ybWFsOwogIHNwZWFrOiBub25lOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7CiAgd2lkdGg6IDFlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgLyogRm9yIHNhZmV0eSAtIHJlc2V0IHBhcmVudCBzdHlsZXMsIHRoYXQgY2FuIGJyZWFrIGdseXBoIGNvZGVzKi8KICBmb250LXZhcmlhbnQ6IG5vcm1hbDsKICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqLwogIGxpbmUtaGVpZ2h0OiAxZW07CiAgLyogVW5jb21tZW50IGZvciAzRCBlZmZlY3QgKi8KICAvKiB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgxMjcsIDEyNywgMTI3LCAwLjMpOyAqLwp9CgovKiBDb2RlcyAqLwovKiBsaW5lIDM1LCAuLi9zY3NzL2NvbXBvbmVudHMvZm9udHMvX2ZvbnQtbGlnaHRjYXNlLnNjc3MgKi8KLmxpZ2h0Y2FzZS1pY29uLXBsYXk6YmVmb3JlIHsKICBjb250ZW50OiAnXGU4MDAnOwp9CgovKiBsaW5lIDM2LCAuLi9zY3NzL2NvbXBvbmVudHMvZm9udHMvX2ZvbnQtbGlnaHRjYXNlLnNjc3MgKi8KLmxpZ2h0Y2FzZS1pY29uLXBhdXNlOmJlZm9yZSB7CiAgY29udGVudDogJ1xlODAxJzsKfQoKLyogbGluZSAzNywgLi4vc2Nzcy9jb21wb25lbnRzL2ZvbnRzL19mb250LWxpZ2h0Y2FzZS5zY3NzICovCi5saWdodGNhc2UtaWNvbi1jbG9zZTpiZWZvcmUgewogIGNvbnRlbnQ6ICdcZTgwMic7Cn0KCi8qIGxpbmUgMzgsIC4uL3Njc3MvY29tcG9uZW50cy9mb250cy9fZm9udC1saWdodGNhc2Uuc2NzcyAqLwoubGlnaHRjYXNlLWljb24tcHJldjpiZWZvcmUgewogIGNvbnRlbnQ6ICdcZTgwMyc7Cn0KCi8qIGxpbmUgMzksIC4uL3Njc3MvY29tcG9uZW50cy9mb250cy9fZm9udC1saWdodGNhc2Uuc2NzcyAqLwoubGlnaHRjYXNlLWljb24tbmV4dDpiZWZvcmUgewogIGNvbnRlbnQ6ICdcZTgwNCc7Cn0KCi8qIGxpbmUgNDAsIC4uL3Njc3MvY29tcG9uZW50cy9mb250cy9fZm9udC1saWdodGNhc2Uuc2NzcyAqLwoubGlnaHRjYXNlLWljb24tc3BpbjpiZWZvcmUgewogIGNvbnRlbnQ6ICdcZTgwNSc7Cn0KCi8qKgogKiBNaXhpbiBwcm92aWRpbmcgaWNvbiBkZWZhdWx0cyB0byBiZSB1c2VkIG9uIHRvcCBvZiBmb250LWxpZ2h0Y2FzZS4KICoKICogRXhhbXBsZSB1c2FnZToKICogQGluY2x1ZGUgaWNvbigjZTllOWU5KQogKi8KLyoqCiAqIE1peGluIHByb3ZpZGluZyBpY29uIGRlZmF1bHRzIGluY2x1ZGluZyBhIGhvdmVyIHN0YXR1cyB0byBiZSB1c2VkCiAqIG9uIHRvcCBvZiBmb250LWxpZ2h0Y2FzZS4KICoKICogRXhhbXBsZSB1c2FnZToKICogQGluY2x1ZGUgaWNvbi1ob3ZlcigjZTllOWU5LCAjZmZmKQogKi8KLyoqCiAqIFByb3ZpZGVzIG5hdHVyYWwgY29udGVudCBvdmVyZmxvdyBiZWhhdmlvciBhbmQgc2Nyb2xsaW5nIHN1cHBvcnQKICogZXZlbiBzbyBmb3IgdG91Y2ggZGV2aWNlcy4KICoKICogRXhhbXBsZSB1c2FnZToKICogQGluY2x1ZGUgb3ZlcmZsb3coKQogKi8KLyoqCiAqIE5ldXRyYWxpemVzL3Jlc2V0cyBkaW1lbnNpb25zIGluY2x1ZGluZyB3aWR0aCwgaGVpZ2h0LCBwb3NpdGlvbiBhcyB3ZWxsIGFzIG1hcmdpbnMsCiAqIHBhZGRpbmdzIGFuZCBzdHlsZXMuIFVzZWQgdG8gZW5mb3JjZSBhIG5ldXRyYWwgYW5kIHVuc3R5bGVkIGxvb2sgYW5kIGJlaGF2b2lyIQogKgogKiBFeGFtcGxlIHVzYWdlOgogKiBAaW5jbHVkZSBjbGVhcih0cnVlKQogKgogKiBAcGFyYW0gYm9vbGVhbiAkaW1wb3J0YW50CiAqLwpALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRjYXNlLXNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICB9Cn0KQC1tb3ota2V5ZnJhbWVzIGxpZ2h0Y2FzZS1zcGluIHsKICAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgfQp9CkAtby1rZXlmcmFtZXMgbGlnaHRjYXNlLXNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICB9Cn0KQC1tcy1rZXlmcmFtZXMgbGlnaHRjYXNlLXNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBsaWdodGNhc2Utc3BpbiB7CiAgMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsKICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOwogIH0KfQovKiBsaW5lIDEsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jYXNlLnNjc3MgKi8KI2xpZ2h0Y2FzZS1jYXNlIHsKICBkaXNwbGF5OiBub25lOwogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiAyMDAyOwogIHRvcDogNTAlOwogIGxlZnQ6IDUwJTsKICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAxM3B4OwogIGxpbmUtaGVpZ2h0OiAxLjU7CiAgdGV4dC1hbGlnbjogbGVmdDsKICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSAxNiwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2Nhc2Uuc2NzcyAqLwogICNsaWdodGNhc2UtY2FzZTpub3QoW2RhdGEtbGMtdHlwZT1pbWFnZV0pOm5vdChbZGF0YS1sYy10eXBlPXZpZGVvXSk6bm90KFtkYXRhLWxjLXR5cGU9Zmxhc2hdKTpub3QoW2RhdGEtbGMtdHlwZT1lcnJvcl0pIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogIH0KfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHsKICAvKiBsaW5lIDQsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KICAjbGlnaHRjYXNlLWNhc2U6bm90KFtkYXRhLWxjLXR5cGU9ZXJyb3JdKSAjbGlnaHRjYXNlLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LXNoYWRvdzogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgLW8tYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7CiAgLyogbGluZSAyNCwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2NvbnRlbnQuc2NzcyAqLwogICNsaWdodGNhc2UtY2FzZVtkYXRhLWxjLXR5cGU9aW1hZ2VdICNsaWdodGNhc2UtY29udGVudCwgI2xpZ2h0Y2FzZS1jYXNlW2RhdGEtbGMtdHlwZT12aWRlb10gI2xpZ2h0Y2FzZS1jb250ZW50IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgfQp9Ci8qIGxpbmUgMzIsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KI2xpZ2h0Y2FzZS1jYXNlOm5vdChbZGF0YS1sYy10eXBlPWltYWdlXSk6bm90KFtkYXRhLWxjLXR5cGU9dmlkZW9dKTpub3QoW2RhdGEtbGMtdHlwZT1mbGFzaF0pOm5vdChbZGF0YS1sYy10eXBlPWVycm9yXSkgI2xpZ2h0Y2FzZS1jb250ZW50IHsKICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgLW1vei1ib3gtc2hhZG93OiBub25lOwogIC1vLWJveC1zaGFkb3c6IG5vbmU7CiAgYm94LXNoYWRvdzogbm9uZTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgewogIC8qIGxpbmUgMzIsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KICAjbGlnaHRjYXNlLWNhc2U6bm90KFtkYXRhLWxjLXR5cGU9aW1hZ2VdKTpub3QoW2RhdGEtbGMtdHlwZT12aWRlb10pOm5vdChbZGF0YS1sYy10eXBlPWZsYXNoXSk6bm90KFtkYXRhLWxjLXR5cGU9ZXJyb3JdKSAjbGlnaHRjYXNlLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICB0b3A6IGF1dG8gIWltcG9ydGFudDsKICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7CiAgfQp9Ci8qIGxpbmUgNDIsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KI2xpZ2h0Y2FzZS1jYXNlOm5vdChbZGF0YS1sYy10eXBlPWltYWdlXSk6bm90KFtkYXRhLWxjLXR5cGU9dmlkZW9dKTpub3QoW2RhdGEtbGMtdHlwZT1mbGFzaF0pOm5vdChbZGF0YS1sYy10eXBlPWVycm9yXSkgI2xpZ2h0Y2FzZS1jb250ZW50IC5saWdodGNhc2UtY29udGVudElubmVyIHsKICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogIC1vLWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgewogIC8qIGxpbmUgNDIsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KICAjbGlnaHRjYXNlLWNhc2U6bm90KFtkYXRhLWxjLXR5cGU9aW1hZ2VdKTpub3QoW2RhdGEtbGMtdHlwZT12aWRlb10pOm5vdChbZGF0YS1sYy10eXBlPWZsYXNoXSk6bm90KFtkYXRhLWxjLXR5cGU9ZXJyb3JdKSAjbGlnaHRjYXNlLWNvbnRlbnQgLmxpZ2h0Y2FzZS1jb250ZW50SW5uZXIgewogICAgcGFkZGluZzogMTVweDsKICB9CiAgLyogbGluZSA1MSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2NvbnRlbnQuc2NzcyAqLwogICNsaWdodGNhc2UtY2FzZTpub3QoW2RhdGEtbGMtdHlwZT1pbWFnZV0pOm5vdChbZGF0YS1sYy10eXBlPXZpZGVvXSk6bm90KFtkYXRhLWxjLXR5cGU9Zmxhc2hdKTpub3QoW2RhdGEtbGMtdHlwZT1lcnJvcl0pICNsaWdodGNhc2UtY29udGVudCAubGlnaHRjYXNlLWNvbnRlbnRJbm5lciwgI2xpZ2h0Y2FzZS1jYXNlOm5vdChbZGF0YS1sYy10eXBlPWltYWdlXSk6bm90KFtkYXRhLWxjLXR5cGU9dmlkZW9dKTpub3QoW2RhdGEtbGMtdHlwZT1mbGFzaF0pOm5vdChbZGF0YS1sYy10eXBlPWVycm9yXSkgI2xpZ2h0Y2FzZS1jb250ZW50IC5saWdodGNhc2UtY29udGVudElubmVyID4gKiB7CiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgfQogIC8qIGxpbmUgNTgsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KICAjbGlnaHRjYXNlLWNhc2U6bm90KFtkYXRhLWxjLXR5cGU9aW1hZ2VdKTpub3QoW2RhdGEtbGMtdHlwZT12aWRlb10pOm5vdChbZGF0YS1sYy10eXBlPWZsYXNoXSk6bm90KFtkYXRhLWxjLXR5cGU9ZXJyb3JdKSAjbGlnaHRjYXNlLWNvbnRlbnQgLmxpZ2h0Y2FzZS1jb250ZW50SW5uZXIgPiAqOm5vdChpZnJhbWUpIHsKICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50OwogIH0KfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgewogIC8qIGxpbmUgNjksIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19jb250ZW50LnNjc3MgKi8KICAubGlnaHRjYXNlLWlzTW9iaWxlRGV2aWNlICNsaWdodGNhc2UtY2FzZVtkYXRhLWxjLXR5cGU9aWZyYW1lXSAjbGlnaHRjYXNlLWNvbnRlbnQgLmxpZ2h0Y2FzZS1jb250ZW50SW5uZXIgaWZyYW1lIHsKICAgIG92ZXJmbG93OiBhdXRvOwogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwogIH0KfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7CiAgLyogbGluZSA3MywgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2NvbnRlbnQuc2NzcyAqLwogIFtkYXRhLWxjLXR5cGU9aW1hZ2VdICNsaWdodGNhc2UtY29udGVudCAubGlnaHRjYXNlLWNvbnRlbnRJbm5lciwgW2RhdGEtbGMtdHlwZT12aWRlb10gI2xpZ2h0Y2FzZS1jb250ZW50IC5saWdodGNhc2UtY29udGVudElubmVyIHsKICAgIGxpbmUtaGVpZ2h0OiAwLjc1OwogIH0KfQoKQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHsKICAvKiBsaW5lIDg1LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fY29udGVudC5zY3NzICovCiAgI2xpZ2h0Y2FzZS1jYXNlOm5vdChbZGF0YS1sYy10eXBlPWltYWdlXSk6bm90KFtkYXRhLWxjLXR5cGU9dmlkZW9dKTpub3QoW2RhdGEtbGMtdHlwZT1mbGFzaF0pOm5vdChbZGF0YS1sYy10eXBlPWVycm9yXSkgI2xpZ2h0Y2FzZS1jb250ZW50IC5saWdodGNhc2UtY29udGVudElubmVyIC5saWdodGNhc2UtaW5saW5lV3JhcCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsKICAgIHRvcDogYXV0byAhaW1wb3J0YW50OwogICAgbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHsKICAvKiBsaW5lIDkyLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fY29udGVudC5zY3NzICovCiAgI2xpZ2h0Y2FzZS1jYXNlOm5vdChbZGF0YS1sYy10eXBlPWVycm9yXSkgI2xpZ2h0Y2FzZS1jb250ZW50IC5saWdodGNhc2UtY29udGVudElubmVyIC5saWdodGNhc2UtaW5saW5lV3JhcCB7CiAgICBwYWRkaW5nOiAzMHB4OwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAtby1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHsKICAvKiBsaW5lIDEwOSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2NvbnRlbnQuc2NzcyAqLwogICNsaWdodGNhc2UtY29udGVudCBoMSwgI2xpZ2h0Y2FzZS1jb250ZW50IGgyLCAjbGlnaHRjYXNlLWNvbnRlbnQgaDMsICNsaWdodGNhc2UtY29udGVudCBoNCwgI2xpZ2h0Y2FzZS1jb250ZW50IGg1LCAjbGlnaHRjYXNlLWNvbnRlbnQgaDYsICNsaWdodGNhc2UtY29udGVudCBwIHsKICAgIGNvbG9yOiAjYWFhOwogIH0KfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkgewogIC8qIGxpbmUgMTA5LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fY29udGVudC5zY3NzICovCiAgI2xpZ2h0Y2FzZS1jb250ZW50IGgxLCAjbGlnaHRjYXNlLWNvbnRlbnQgaDIsICNsaWdodGNhc2UtY29udGVudCBoMywgI2xpZ2h0Y2FzZS1jb250ZW50IGg0LCAjbGlnaHRjYXNlLWNvbnRlbnQgaDUsICNsaWdodGNhc2UtY29udGVudCBoNiwgI2xpZ2h0Y2FzZS1jb250ZW50IHAgewogICAgY29sb3I6ICMzMzM7CiAgfQp9CgovKiBsaW5lIDMsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19lcnJvci5zY3NzICovCiNsaWdodGNhc2UtY2FzZSBwLmxpZ2h0Y2FzZS1lcnJvciB7CiAgbWFyZ2luOiAwOwogIGZvbnQtc2l6ZTogMTdweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIGNvbG9yOiAjYWFhOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSAzLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fZXJyb3Iuc2NzcyAqLwogICNsaWdodGNhc2UtY2FzZSBwLmxpZ2h0Y2FzZS1lcnJvciB7CiAgICBwYWRkaW5nOiAzMHB4IDA7CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7CiAgLyogbGluZSAzLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fZXJyb3Iuc2NzcyAqLwogICNsaWdodGNhc2UtY2FzZSBwLmxpZ2h0Y2FzZS1lcnJvciB7CiAgICBwYWRkaW5nOiAwOwogIH0KfQoKLyogbGluZSA2LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fZ2xvYmFsLnNjc3MgKi8KLmxpZ2h0Y2FzZS1pc01vYmlsZURldmljZSAubGlnaHRjYXNlLW9wZW4gYm9keSB7CiAgbWF4LXdpZHRoOiAxMDAlOwogIG1heC1oZWlnaHQ6IDEwMCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkgewogIC8qIGxpbmUgNCwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2dsb2JhbC5zY3NzICovCiAgLmxpZ2h0Y2FzZS1vcGVuIGJvZHkgewogICAgcGFkZGluZzogNTVweCAwIDcwcHggMDsKICB9CiAgLyogbGluZSAxNSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2dsb2JhbC5zY3NzICovCiAgLmxpZ2h0Y2FzZS1vcGVuIGJvZHkgPiAqOm5vdChbaWQqPSdsaWdodGNhc2UtJ10pIHsKICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OwogICAgdG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB3aWR0aDogMCAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgfQp9CgovKiBsaW5lIDEsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19pbmZvLnNjc3MgKi8KI2xpZ2h0Y2FzZS1pbmZvIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcGFkZGluZy10b3A6IDE1cHg7Cn0KLyogbGluZSA5LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9faW5mby5zY3NzICovCiNsaWdodGNhc2UtaW5mbyAjbGlnaHRjYXNlLXRpdGxlLAojbGlnaHRjYXNlLWluZm8gI2xpZ2h0Y2FzZS1jYXB0aW9uIHsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBsaW5lLWhlaWdodDogMS41OwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLyogbGluZSAxOSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2luZm8uc2NzcyAqLwojbGlnaHRjYXNlLWluZm8gI2xpZ2h0Y2FzZS10aXRsZSB7CiAgZm9udC1zaXplOiAxN3B4OwogIGNvbG9yOiAjYWFhOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSAxOSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2luZm8uc2NzcyAqLwogICNsaWdodGNhc2UtaW5mbyAjbGlnaHRjYXNlLXRpdGxlIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMTBweDsKICAgIGxlZnQ6IDA7CiAgICBtYXgtd2lkdGg6IDg3LjUlOwogICAgcGFkZGluZzogNXB4IDE1cHg7CiAgICBiYWNrZ3JvdW5kOiAjMzMzOwogIH0KfQovKiBsaW5lIDMzLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9faW5mby5zY3NzICovCiNsaWdodGNhc2UtaW5mbyAjbGlnaHRjYXNlLWNhcHRpb24gewogIGNsZWFyOiBib3RoOwogIGZvbnQtc2l6ZTogMTNweDsKICBjb2xvcjogI2FhYTsKfQovKiBsaW5lIDM5LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9faW5mby5zY3NzICovCiNsaWdodGNhc2UtaW5mbyAjbGlnaHRjYXNlLXNlcXVlbmNlSW5mbyB7CiAgZm9udC1zaXplOiAxMXB4OwogIGNvbG9yOiAjYWFhOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSA0NSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2luZm8uc2NzcyAqLwogIC5saWdodGNhc2UtZnVsbFNjcmVlbk1vZGUgI2xpZ2h0Y2FzZS1pbmZvIHsKICAgIHBhZGRpbmctbGVmdDogMTVweDsKICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgfQogIC8qIGxpbmUgNTEsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19pbmZvLnNjc3MgKi8KICAjbGlnaHRjYXNlLWNhc2U6bm90KFtkYXRhLWxjLXR5cGU9aW1hZ2VdKTpub3QoW2RhdGEtbGMtdHlwZT12aWRlb10pOm5vdChbZGF0YS1sYy10eXBlPWZsYXNoXSk6bm90KFtkYXRhLWxjLXR5cGU9ZXJyb3JdKSAjbGlnaHRjYXNlLWluZm8gewogICAgcG9zaXRpb246IHN0YXRpYzsKICB9Cn0KCi8qIGxpbmUgMSwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX2xvYWRpbmcuc2NzcyAqLwojbGlnaHRjYXNlLWxvYWRpbmcgewogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiA5OTk5OwogIHdpZHRoOiAxLjEyM2VtOwogIGhlaWdodDogYXV0bzsKICBmb250LXNpemU6IDM4cHg7CiAgbGluZS1oZWlnaHQ6IDE7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtc2hhZG93OiBub25lOwogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiAyMDAxOwogIHRvcDogNTAlOwogIGxlZnQ6IDUwJTsKICBtYXJnaW4tdG9wOiAtMC41ZW07CiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTsKICBvcGFjaXR5OiAxOwogIGZvbnQtc2l6ZTogMzJweDsKICB0ZXh0LXNoYWRvdzogMCAwIDE1cHggI2ZmZjsKICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MyU7CiAgLXdlYmtpdC1hbmltYXRpb246IGxpZ2h0Y2FzZS1zcGluIDAuNXMgaW5maW5pdGUgbGluZWFyOwogIC1tb3otYW5pbWF0aW9uOiBsaWdodGNhc2Utc3BpbiAwLjVzIGluZmluaXRlIGxpbmVhcjsKICAtby1hbmltYXRpb246IGxpZ2h0Y2FzZS1zcGluIDAuNXMgaW5maW5pdGUgbGluZWFyOwogIGFuaW1hdGlvbjogbGlnaHRjYXNlLXNwaW4gMC41cyBpbmZpbml0ZSBsaW5lYXI7Cn0KLyogbGluZSAyMCwgLi4vc2Nzcy9jb21wb25lbnRzL21peGlucy9fcHJlc2V0cy5zY3NzICovCiNsaWdodGNhc2UtbG9hZGluZywgI2xpZ2h0Y2FzZS1sb2FkaW5nOmZvY3VzIHsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yLCBvcGFjaXR5LCBlYXNlLWluLW91dCAwLjI1czsKICAtbW96LXRyYW5zaXRpb246IGNvbG9yLCBvcGFjaXR5LCBlYXNlLWluLW91dCAwLjI1czsKICAtby10cmFuc2l0aW9uOiBjb2xvciwgb3BhY2l0eSwgZWFzZS1pbi1vdXQgMC4yNXM7CiAgdHJhbnNpdGlvbjogY29sb3IsIG9wYWNpdHksIGVhc2UtaW4tb3V0IDAuMjVzOwp9Ci8qIGxpbmUgMzIsIC4uL3Njc3MvY29tcG9uZW50cy9taXhpbnMvX3ByZXNldHMuc2NzcyAqLwojbGlnaHRjYXNlLWxvYWRpbmcgPiBzcGFuIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7Cn0KCi8qIGxpbmUgNCwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX25hdmlnYXRpb24uc2NzcyAqLwojbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10gewogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiA5OTk5OwogIHdpZHRoOiAxLjEyM2VtOwogIGhlaWdodDogYXV0bzsKICBmb250LXNpemU6IDM4cHg7CiAgbGluZS1oZWlnaHQ6IDE7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtc2hhZG93OiBub25lOwogIG91dGxpbmU6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwp9Ci8qIGxpbmUgMjAsIC4uL3Njc3MvY29tcG9uZW50cy9taXhpbnMvX3ByZXNldHMuc2NzcyAqLwojbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10sICNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXTpmb2N1cyB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7CiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsKICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yLCBvcGFjaXR5LCBlYXNlLWluLW91dCAwLjI1czsKICAtbW96LXRyYW5zaXRpb246IGNvbG9yLCBvcGFjaXR5LCBlYXNlLWluLW91dCAwLjI1czsKICAtby10cmFuc2l0aW9uOiBjb2xvciwgb3BhY2l0eSwgZWFzZS1pbi1vdXQgMC4yNXM7CiAgdHJhbnNpdGlvbjogY29sb3IsIG9wYWNpdHksIGVhc2UtaW4tb3V0IDAuMjVzOwp9Ci8qIGxpbmUgMzIsIC4uL3Njc3MvY29tcG9uZW50cy9taXhpbnMvX3ByZXNldHMuc2NzcyAqLwojbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10gPiBzcGFuIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7Cn0KLyogbGluZSA0OSwgLi4vc2Nzcy9jb21wb25lbnRzL21peGlucy9fcHJlc2V0cy5zY3NzICovCiNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXTpob3ZlciB7CiAgY29sb3I6IHdoaXRlOwogIHRleHQtc2hhZG93OiAwIDAgMTVweCB3aGl0ZTsKfQovKiBsaW5lIDEyLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi5zY3NzICovCi5saWdodGNhc2UtaXNNb2JpbGVEZXZpY2UgI2xpZ2h0Y2FzZS1uYXYgYVtjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddOmhvdmVyIHsKICBjb2xvcjogI2FhYTsKICB0ZXh0LXNoYWRvdzogbm9uZTsKfQovKiBsaW5lIDE5LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi5zY3NzICovCiNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXS5saWdodGNhc2UtaWNvbi1wcmV2IHsKICBsZWZ0OiAxNXB4Owp9Ci8qIGxpbmUgMjQsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19uYXZpZ2F0aW9uLnNjc3MgKi8KI2xpZ2h0Y2FzZS1uYXYgYVtjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddLmxpZ2h0Y2FzZS1pY29uLW5leHQgewogIHJpZ2h0OiAxNXB4Owp9Ci8qIGxpbmUgMjksIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19uYXZpZ2F0aW9uLnNjc3MgKi8KI2xpZ2h0Y2FzZS1uYXYgYVtjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddLmxpZ2h0Y2FzZS1pY29uLXBhdXNlLCAjbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10ubGlnaHRjYXNlLWljb24tcGxheSB7CiAgbGVmdDogNTAlOwogIG1hcmdpbi1sZWZ0OiAtMC41ZW07Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHsKICAvKiBsaW5lIDI5LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi5zY3NzICovCiAgI2xpZ2h0Y2FzZS1uYXYgYVtjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddLmxpZ2h0Y2FzZS1pY29uLXBhdXNlLCAjbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10ubGlnaHRjYXNlLWljb24tcGxheSB7CiAgICBvcGFjaXR5OiAwOwogIH0KfQovKiBsaW5lIDQwLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi5zY3NzICovCiNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXS5saWdodGNhc2UtaWNvbi1jbG9zZSB7CiAgdG9wOiAxNXB4OwogIHJpZ2h0OiAxNXB4OwogIGJvdHRvbTogYXV0bzsKICBtYXJnaW46IDA7CiAgb3BhY2l0eTogMDsKICBvdXRsaW5lOiBub25lOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSA0MCwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX25hdmlnYXRpb24uc2NzcyAqLwogICNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXS5saWdodGNhc2UtaWNvbi1jbG9zZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7CiAgLyogbGluZSA0MCwgLi4vc2Nzcy9jb21wb25lbnRzL21vZHVsZXMvX25hdmlnYXRpb24uc2NzcyAqLwogICNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXS5saWdodGNhc2UtaWNvbi1jbG9zZSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSA0LCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fbmF2aWdhdGlvbi5zY3NzICovCiAgI2xpZ2h0Y2FzZS1uYXYgYVtjbGFzcyo9J2xpZ2h0Y2FzZS1pY29uLSddIHsKICAgIGJvdHRvbTogMTVweDsKICAgIGZvbnQtc2l6ZTogMjRweDsKICB9Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHsKICAvKiBsaW5lIDQsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19uYXZpZ2F0aW9uLnNjc3MgKi8KICAjbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ10gewogICAgYm90dG9tOiA1MCU7CiAgICBtYXJnaW4tYm90dG9tOiAtMC41ZW07CiAgfQogIC8qIGxpbmUgNjYsIC4uL3Njc3MvY29tcG9uZW50cy9tb2R1bGVzL19uYXZpZ2F0aW9uLnNjc3MgKi8KICAjbGlnaHRjYXNlLW5hdiBhW2NsYXNzKj0nbGlnaHRjYXNlLWljb24tJ106aG92ZXIsICNsaWdodGNhc2UtY2FzZTpob3ZlciB+ICNsaWdodGNhc2UtbmF2IGFbY2xhc3MqPSdsaWdodGNhc2UtaWNvbi0nXSB7CiAgICBvcGFjaXR5OiAxOwogIH0KfQoKLyogbGluZSAxLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fb3ZlcmxheS5zY3NzICovCiNsaWdodGNhc2Utb3ZlcmxheSB7CiAgZGlzcGxheTogbm9uZTsKICB3aWR0aDogMTAwJTsKICBtaW4taGVpZ2h0OiAxMDAlOwogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiAyNTI7CiAgdG9wOiAtOTk5OXB4OwogIGJvdHRvbTogLTk5OTlweDsKICBsZWZ0OiAwOwogIGJhY2tncm91bmQ6IHJnYmEoNTEsNTEsNTEsLjkpOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7CiAgLyogbGluZSAxLCAuLi9zY3NzL2NvbXBvbmVudHMvbW9kdWxlcy9fb3ZlcmxheS5zY3NzICovCiAgI2xpZ2h0Y2FzZS1vdmVybGF5IHsKICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICB9Cn0K"}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":35,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/coinmama.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.884Z","timestamp":1785126645884,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/coinmama.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 4223\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":4223,"size_decoded":4467,"mime_type":"image/png","magic":"PNG image data, 225 x 225, 8-bit colormap, non-interlaced","md5":"278fbcd6c753b481db813e7b348baaaa","sha1":"2ce6113952ed2c668964daaa7b35acae5feb40fb","sha256":"564848278d39ac02be8e798cd39fe549a427a2ba40b3434458381a0cf83c95ab","sha512":"14c29cbbe200a0fffa52303bd13930ac10e3a44fcafbdd80d5aad004d747531b38ddc1ac06a5b2583ec95ca09195f14b8e8756f87b728c07175c69c19478237b","ssdeep":"96:8ju4B5D/3PtoQAI1ocm9C1YObfGyNYFK2fjXOE0cfB0kkWbianz:Ov73VXAI13m0KObfGySbSE0cfB0kkw","tlshash":"58916d573167dd418cf18059daefd136af0219d18a23b32a3c2d8f6e2a94a0f0cad794","first_seen":"2025-03-17T20:39:33.070619Z","last_seen":"2026-07-27T04:32:40.526584Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":1061,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1052,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/150882822860h8.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.886Z","timestamp":1785126645886,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/150882822860h8.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 24594\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":24594,"size_decoded":24839,"mime_type":"image/png","magic":"PNG image data, 495 x 495, 8-bit/color RGBA, non-interlaced","md5":"d6aeafcc385d18531a1d82901497a4b4","sha1":"b4e1a504a3cef09445af1cd72edd2b88d7a0adcd","sha256":"ab57c2a43f89e141db645b262b940698d38c6aa0e78795dee04233297166ed3e","sha512":"8a6b5ae43ad39da58ee41511e54d56d957b8e2449f111edf22d2b9cec50b378d509ad0fd12d54373aa3c3f329c5fc35f80c65b17eb74092e7629bdae7a1ad2cc","ssdeep":"768:znmbeu2ZA7tccW5w3bhSVXDZA8j3A8mvqLFt:znmbecZBhSTfDVmvqz","tlshash":"5ab29e16db259c3680efad4a67d223c36c2ad30e2c78057b51792ae383c5896f79ca15","first_seen":"2025-03-17T20:39:33.086144Z","last_seen":"2026-07-27T04:47:12.526038Z","times_seen":7,"resource_available":false,"data":"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"}},"time_used":1059,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1055,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/turbopack-18a9de512a1933ad.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.422Z","timestamp":1785126646422,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/turbopack-18a9de512a1933ad.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 2242033\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"turbopack-18a9de512a1933ad.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"ee874107586f9203ea70e460428f2bb3\"\r\nlast-modified: Tue, 30 Jun 2026 21:36:51 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/turbopack-18a9de512a1933ad.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::224xg-1782884613047-36a6958ca2eb\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5RiE%2FTCmJMsXWH1vcfp3Nd07Vtm%2FExIiylQIpnFCQkzBEBwpYIx0kpiSp7QHLLyl%2Fo2EfihZM9BM8mFISRDa48JMnSPOAHe3B6xixwGQQYcFZ6rz3Z1H3%2FAm%2FSUK\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9242ffb2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":10707,"size_decoded":6494,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6438)","md5":"ee874107586f9203ea70e460428f2bb3","sha1":"9bfba653884c0499149072efe4824e6170f10271","sha256":"44b3081e3a644e21b57f4155637e1e43563eae2c0f034c6ba9edd6bc9cba26ea","sha512":"7fd5fb8b487d8981ead132093abf93b51a77860cb1d04cd5c233c3e671b7183921080069aac71afb4f5f77a424d02ccdea22e3feba459326eea86d1c6637a09b","ssdeep":"192:D74eFn8/Esp1U91EG5T1uyO9lGdiwMhMlng4W9PZcxkUk1IsiyLxA:D74e2OvO9lG0OlgJZZQLyLxA","tlshash":"6722d8ea33a6f07743af94e6907f4044f1795468145d542c936ce8fa38398ae49e3f27","first_seen":"2026-07-01T05:10:22.643373Z","last_seen":"2026-07-27T08:07:37.388439Z","times_seen":1139,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLHtvdGhlckNodW5rczpbInN0YXRpYy9jaHVua3MvODFhMjk4ZGRjNzQ3MTA3MC5qcyIsInN0YXRpYy9jaHVua3MvOWRmM2I2N2I2MDYxZWE5ZS5qcyIsInN0YXRpYy9jaHVua3MvNDgwY2RlMDhiOGJmZDVjZS5qcyIsInN0YXRpYy9jaHVua3MvNDkxMTQxMGU1MTUzZjBkNy5qcyIsInN0YXRpYy9jaHVua3MvNDgxNWE3NTg2NTdkNGJhZS5qcyJdLHJ1bnRpbWVNb2R1bGVJZHM6Wzk2MzM1XX1dKSwoKCk9PntsZXQgZTtpZighQXJyYXkuaXNBcnJheShnbG9iYWxUaGlzLlRVUkJPUEFDSykpcmV0dXJuO2xldCB0PSIvX25leHQvIixyPShzZWxmLlRVUkJPUEFDS19DSFVOS19TVUZGSVg/P2RvY3VtZW50Py5jdXJyZW50U2NyaXB0Py5nZXRBdHRyaWJ1dGU/Ligic3JjIik/LnJlcGxhY2UoL14oLiooPz1cPyl8Xi4qJCkvLCIiKSl8fCIiLG49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbyhlLHQpe3RoaXMubT1lLHRoaXMuZT10fWxldCBsPW8ucHJvdG90eXBlLGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxzPSJ1Ij50eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWc7ZnVuY3Rpb24gdShlLHQscil7aS5jYWxsKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscil9ZnVuY3Rpb24gYShlLHQpe2xldCByPWVbdF07cmV0dXJuIHJ8fChyPWModCksZVt0XT1yKSxyfWZ1bmN0aW9uIGMoZSl7cmV0dXJue2V4cG9ydHM6e30sZXJyb3I6dm9pZCAwLGlkOmUsbmFtZXNwYWNlT2JqZWN0OnZvaWQgMH19ZnVuY3Rpb24gZihlLHQpe3UoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscyYmdShlLHMse3ZhbHVlOiJNb2R1bGUifSk7bGV0IHI9MDtmb3IoO3I8dC5sZW5ndGg7KXtsZXQgbj10W3IrK10sbz10W3IrK107aWYoIm51bWJlciI9PXR5cGVvZiBvKWlmKDA9PT1vKXUoZSxuLHt2YWx1ZTp0W3IrK10sZW51bWVyYWJsZTohMCx3cml0YWJsZTohMX0pO2Vsc2UgdGhyb3cgRXJyb3IoYHVuZXhwZWN0ZWQgdGFnOiAke299YCk7ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiB0W3JdP3UoZSxuLHtnZXQ6byxzZXQ6dFtyKytdLGVudW1lcmFibGU6ITB9KTp1KGUsbix7Z2V0Om8sZW51bWVyYWJsZTohMH0pfU9iamVjdC5zZWFsKGUpfWwucz1mdW5jdGlvbihlLHQpe2xldCByLG47bnVsbCE9dD9uPShyPWEodGhpcy5jLHQpKS5leHBvcnRzOihyPXRoaXMubSxuPXRoaXMuZSksci5uYW1lc3BhY2VPYmplY3Q9bixmKG4sZSl9LGwuaj1mdW5jdGlvbihlLHQpe3ZhciByLG87bGV0IGwscyx1O251bGwhPXQ/cz0obD1hKHRoaXMuYyx0KSkuZXhwb3J0czoobD10aGlzLm0scz10aGlzLmUpO2xldCBjPShyPWwsbz1zLCh1PW4uZ2V0KHIpKXx8KG4uc2V0KHIsdT1bXSksci5leHBvcnRzPXIubmFtZXNwYWNlT2JqZWN0PW5ldyBQcm94eShvLHtnZXQoZSx0KXtpZihpLmNhbGwoZSx0KXx8ImRlZmF1bHQiPT09dHx8Il9fZXNNb2R1bGUiPT09dClyZXR1cm4gUmVmbGVjdC5nZXQoZSx0KTtmb3IobGV0IGUgb2YgdSl7bGV0IHI9UmVmbGVjdC5nZXQoZSx0KTtpZih2b2lkIDAhPT1yKXJldHVybiByfX0sb3duS2V5cyhlKXtsZXQgdD1SZWZsZWN0Lm93bktleXMoZSk7Zm9yKGxldCBlIG9mIHUpZm9yKGxldCByIG9mIFJlZmxlY3Qub3duS2V5cyhlKSkiZGVmYXVsdCI9PT1yfHx0LmluY2x1ZGVzKHIpfHx0LnB1c2gocik7cmV0dXJuIHR9fSkpLHUpOyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmMucHVzaChlKX0sbC52PWZ1bmN0aW9uKGUsdCl7KG51bGwhPXQ/YSh0aGlzLmMsdCk6dGhpcy5tKS5leHBvcnRzPWV9LGwubj1mdW5jdGlvbihlLHQpe2xldCByOyhyPW51bGwhPXQ/YSh0aGlzLmMsdCk6dGhpcy5tKS5leHBvcnRzPXIubmFtZXNwYWNlT2JqZWN0PWV9O2xldCBwPU9iamVjdC5nZXRQcm90b3R5cGVPZj9lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk6ZT0+ZS5fX3Byb3RvX18saD1bbnVsbCxwKHt9KSxwKFtdKSxwKHApXTtmdW5jdGlvbiBkKGUsdCxyKXtsZXQgbj1bXSxvPS0xO2ZvcihsZXQgdD1lOygib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KSYmIWguaW5jbHVkZXModCk7dD1wKHQpKWZvcihsZXQgciBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KSluLnB1c2gocixmdW5jdGlvbihlLHQpe3JldHVybigpPT5lW3RdfShlLHIpKSwtMT09PW8mJiJkZWZhdWx0Ij09PXImJihvPW4ubGVuZ3RoLTEpO3JldHVybiByJiZvPj0wfHwobz49MD9uLnNwbGljZShvLDEsMCxlKTpuLnB1c2goImRlZmF1bHQiLDAsZSkpLGYodCxuKSx0fWZ1bmN0aW9uIG0oZSl7bGV0IHQ9QihlLHRoaXMubSk7aWYodC5uYW1lc3BhY2VPYmplY3QpcmV0dXJuIHQubmFtZXNwYWNlT2JqZWN0O2xldCByPXQuZXhwb3J0cztyZXR1cm4gdC5uYW1lc3BhY2VPYmplY3Q9ZChyLCJmdW5jdGlvbiI9PXR5cGVvZiByP2Z1bmN0aW9uKC4uLmUpe3JldHVybiByLmFwcGx5KHRoaXMsZSl9Ok9iamVjdC5jcmVhdGUobnVsbCksciYmci5fX2VzTW9kdWxlKX1mdW5jdGlvbiBiKGUpe2xldCB0PWUuaW5kZXhPZigiIyIpOy0xIT09dCYmKGU9ZS5zdWJzdHJpbmcoMCx0KSk7bGV0IHI9ZS5pbmRleE9mKCI/Iik7cmV0dXJuIC0xIT09ciYmKGU9ZS5zdWJzdHJpbmcoMCxyKSksZX1mdW5jdGlvbiB5KCl7bGV0IGUsdDtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgocixuKT0+e3Q9bixlPXJ9KSxyZXNvbHZlOmUscmVqZWN0OnR9fWwuaT1tLGwuQT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yKGUpKG0uYmluZCh0aGlzKSl9LGwudD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZT9yZXF1aXJlOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIlVuZXhwZWN0ZWQgdXNlIG9mIHJ1bnRpbWUgcmVxdWlyZSIpfSxsLnI9ZnVuY3Rpb24oZSl7cmV0dXJuIEIoZSx0aGlzLm0pLmV4cG9ydHN9LGwuZj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe2lmKHQ9Yih0KSxpLmNhbGwoZSx0KSlyZXR1cm4gZVt0XS5tb2R1bGUoKTtsZXQgcj1FcnJvcihgQ2Fubm90IGZpbmQgbW9kdWxlICcke3R9J2ApO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn1yZXR1cm4gdC5rZXlzPSgpPT5PYmplY3Qua2V5cyhlKSx0LnJlc29sdmU9dD0+e2lmKHQ9Yih0KSxpLmNhbGwoZSx0KSlyZXR1cm4gZVt0XS5pZCgpO2xldCByPUVycm9yKGBDYW5ub3QgZmluZCBtb2R1bGUgJyR7dH0nYCk7dGhyb3cgci5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixyfSx0LmltcG9ydD1hc3luYyBlPT5hd2FpdCB0KGUpLHR9O2xldCBPPVN5bWJvbCgidHVyYm9wYWNrIHF1ZXVlcyIpLGc9U3ltYm9sKCJ0dXJib3BhY2sgZXhwb3J0cyIpLHc9U3ltYm9sKCJ0dXJib3BhY2sgZXJyb3IiKTtmdW5jdGlvbiBDKGUpe2UmJjEhPT1lLnN0YXR1cyYmKGUuc3RhdHVzPTEsZS5mb3JFYWNoKGU9PmUucXVldWVDb3VudC0tKSxlLmZvckVhY2goZT0+ZS5xdWV1ZUNvdW50LS0/ZS5xdWV1ZUNvdW50Kys6ZSgpKSl9bC5hPWZ1bmN0aW9uKGUsdCl7bGV0IHI9dGhpcy5tLG49dD9PYmplY3QuYXNzaWduKFtdLHtzdGF0dXM6LTF9KTp2b2lkIDAsbz1uZXcgU2V0LHtyZXNvbHZlOmwscmVqZWN0OmkscHJvbWlzZTpzfT15KCksdT1PYmplY3QuYXNzaWduKHMse1tnXTpyLmV4cG9ydHMsW09dOmU9PntuJiZlKG4pLG8uZm9yRWFjaChlKSx1LmNhdGNoKCgpPT57fSl9fSksYT17Z2V0OigpPT51LHNldChlKXtlIT09dSYmKHVbZ109ZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZXhwb3J0cyIsYSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIm5hbWVzcGFjZU9iamVjdCIsYSksZShmdW5jdGlvbihlKXtsZXQgdD1lLm1hcChlPT57aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSl7aWYoTyBpbiBlKXJldHVybiBlO2lmKG51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmInRoZW4iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbil7bGV0IHQ9T2JqZWN0LmFzc2lnbihbXSx7c3RhdHVzOjB9KSxyPXtbZ106e30sW09dOmU9PmUodCl9O3JldHVybiBlLnRoZW4oZT0+e3JbZ109ZSxDKHQpfSxlPT57clt3XT1lLEModCl9KSxyfX1yZXR1cm57W2ddOmUsW09dOigpPT57fX19KSxyPSgpPT50Lm1hcChlPT57aWYoZVt3XSl0aHJvdyBlW3ddO3JldHVybiBlW2ddfSkse3Byb21pc2U6bCxyZXNvbHZlOml9PXkoKSxzPU9iamVjdC5hc3NpZ24oKCk9Pmkocikse3F1ZXVlQ291bnQ6MH0pO2Z1bmN0aW9uIHUoZSl7ZSE9PW4mJiFvLmhhcyhlKSYmKG8uYWRkKGUpLGUmJjA9PT1lLnN0YXR1cyYmKHMucXVldWVDb3VudCsrLGUucHVzaChzKSkpfXJldHVybiB0Lm1hcChlPT5lW09dKHUpKSxzLnF1ZXVlQ291bnQ/bDpyKCl9LGZ1bmN0aW9uKGUpe2U/aSh1W3ddPWUpOmwodVtnXSksQyhuKX0pLG4mJi0xPT09bi5zdGF0dXMmJihuLnN0YXR1cz0wKX07bGV0IFU9ZnVuY3Rpb24oZSl7bGV0IHQ9bmV3IFVSTChlLCJ4Oi8iKSxyPXt9O2ZvcihsZXQgZSBpbiB0KXJbZV09dFtlXTtmb3IobGV0IHQgaW4gci5ocmVmPWUsci5wYXRobmFtZT1lLnJlcGxhY2UoL1s/I10uKi8sIiIpLHIub3JpZ2luPXIucHJvdG9jb2w9IiIsci50b1N0cmluZz1yLnRvSlNPTj0oLi4udCk9PmUscilPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyW3RdfSl9O2Z1bmN0aW9uIGooZSx0KXt0aHJvdyBFcnJvcihgSW52YXJpYW50OiAke3QoZSl9YCl9VS5wcm90b3R5cGU9VVJMLnByb3RvdHlwZSxsLlU9VSxsLno9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoImR5bmFtaWMgdXNhZ2Ugb2YgcmVxdWlyZSBpcyBub3Qgc3VwcG9ydGVkIil9LGwuZz1nbG9iYWxUaGlzO2xldCBSPW8ucHJvdG90eXBlO3ZhciBrLF89KChrPV98fHt9KVtrLlJ1bnRpbWU9MF09IlJ1bnRpbWUiLGtbay5QYXJlbnQ9MV09IlBhcmVudCIsa1trLlVwZGF0ZT0yXT0iVXBkYXRlIixrKTtsZXQgdj1uZXcgTWFwO2wuTT12O2xldCAkPW5ldyBNYXAsUD1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIFMoZSx0LHIpe2xldCBuO2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gRShlLHQsSyhyKSk7bGV0IG89ci5pbmNsdWRlZHx8W10sbD1vLm1hcChlPT4hIXYuaGFzKGUpfHwkLmdldChlKSk7aWYobC5sZW5ndGg+MCYmbC5ldmVyeShlPT5lKSlyZXR1cm4gdm9pZCBhd2FpdCBQcm9taXNlLmFsbChsKTtsZXQgaT1yLm1vZHVsZUNodW5rc3x8W10scz1pLm1hcChlPT5QLmdldChlKSkuZmlsdGVyKGU9PmUpO2lmKHMubGVuZ3RoPjApe2lmKHMubGVuZ3RoPT09aS5sZW5ndGgpcmV0dXJuIHZvaWQgYXdhaXQgUHJvbWlzZS5hbGwocyk7bGV0IHI9bmV3IFNldDtmb3IobGV0IGUgb2YgaSlQLmhhcyhlKXx8ci5hZGQoZSk7Zm9yKGxldCBuIG9mIHIpe2xldCByPUUoZSx0LEsobikpO1Auc2V0KG4scikscy5wdXNoKHIpfW49UHJvbWlzZS5hbGwocyl9ZWxzZXtmb3IobGV0IG8gb2Yobj1FKGUsdCxLKHIucGF0aCkpLGkpKVAuaGFzKG8pfHxQLnNldChvLG4pfWZvcihsZXQgZSBvZiBvKSQuaGFzKGUpfHwkLnNldChlLG4pO2F3YWl0IG59Ui5sPWZ1bmN0aW9uKGUpe3JldHVybiBTKDEsdGhpcy5tLmlkLGUpfTtsZXQgVD1Qcm9taXNlLnJlc29sdmUodm9pZCAwKSxBPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEUodCxyLG4pe2xldCBvPWUubG9hZENodW5rQ2FjaGVkKHQsbiksbD1BLmdldChvKTtpZih2b2lkIDA9PT1sKXtsZXQgZT1BLnNldC5iaW5kKEEsbyxUKTtsPW8udGhlbihlKS5jYXRjaChlPT57bGV0IG87c3dpdGNoKHQpe2Nhc2UgMDpvPWBhcyBhIHJ1bnRpbWUgZGVwZW5kZW5jeSBvZiBjaHVuayAke3J9YDticmVhaztjYXNlIDE6bz1gZnJvbSBtb2R1bGUgJHtyfWA7YnJlYWs7Y2FzZSAyOm89ImZyb20gYW4gSE1SIHVwZGF0ZSI7YnJlYWs7ZGVmYXVsdDpqKHQsZT0+YFVua25vd24gc291cmNlIHR5cGU6ICR7ZX1gKX1sZXQgbD1FcnJvcihgRmFpbGVkIHRvIGxvYWQgY2h1bmsgJHtufSAke299JHtlP2A6ICR7ZX1gOiIifWAsZT97Y2F1c2U6ZX06dm9pZCAwKTt0aHJvdyBsLm5hbWU9IkNodW5rTG9hZEVycm9yIixsfSksQS5zZXQobyxsKX1yZXR1cm4gbH1mdW5jdGlvbiBLKGUpe3JldHVybmAke3R9JHtlLnNwbGl0KCIvIikubWFwKGU9PmVuY29kZVVSSUNvbXBvbmVudChlKSkuam9pbigiLyIpfSR7cn1gfVIuTD1mdW5jdGlvbihlKXtyZXR1cm4gRSgxLHRoaXMubS5pZCxlKX0sUi5SPWZ1bmN0aW9uKGUpe2xldCB0PXRoaXMucihlKTtyZXR1cm4gdD8uZGVmYXVsdD8/dH0sUi5QPWZ1bmN0aW9uKGUpe3JldHVybmAvUk9PVC8ke2U/PyIifWB9LFIuYj1mdW5jdGlvbihlKXtsZXQgdD1uZXcgQmxvYihbYHNlbGYuVFVSQk9QQUNLX1dPUktFUl9MT0NBVElPTiA9ICR7SlNPTi5zdHJpbmdpZnkobG9jYXRpb24ub3JpZ2luKX07CnNlbGYuVFVSQk9QQUNLX0NIVU5LX1NVRkZJWCA9ICR7SlNPTi5zdHJpbmdpZnkocil9OwpzZWxmLlRVUkJPUEFDS19ORVhUX0NIVU5LX1VSTFMgPSAke0pTT04uc3RyaW5naWZ5KGUucmV2ZXJzZSgpLm1hcChLKSxudWxsLDIpfTsKaW1wb3J0U2NyaXB0cyguLi5zZWxmLlRVUkJPUEFDS19ORVhUX0NIVU5LX1VSTFMubWFwKGMgPT4gc2VsZi5UVVJCT1BBQ0tfV09SS0VSX0xPQ0FUSU9OICsgYykucmV2ZXJzZSgpKTtgXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pO3JldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKHQpfTtsZXQgeD0vXC5qcyg/Olw/W14jXSopPyg/OiMuKik/JC8sTj0vXC5jc3MoPzpcP1teI10qKT8oPzojLiopPyQvO2Z1bmN0aW9uIE0oZSl7cmV0dXJuIE4udGVzdChlKX1sLnc9ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLmxvYWRXZWJBc3NlbWJseSgxLHRoaXMubS5pZCx0LHIsbil9LGwudT1mdW5jdGlvbih0LHIpe3JldHVybiBlLmxvYWRXZWJBc3NlbWJseU1vZHVsZSgxLHRoaXMubS5pZCx0LHIpfTtsZXQgTD17fTtsLmM9TDtsZXQgQj0oZSx0KT0+e2xldCByPUxbZV07aWYocil7aWYoci5lcnJvcil0aHJvdyByLmVycm9yO3JldHVybiByfXJldHVybiBxKGUsXy5QYXJlbnQsdC5pZCl9O2Z1bmN0aW9uIHEoZSx0LHIpe2xldCBuPXYuZ2V0KGUpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IEVycm9yKGZ1bmN0aW9uKGUsdCxyKXtsZXQgbjtzd2l0Y2godCl7Y2FzZSAwOm49YGFzIGEgcnVudGltZSBlbnRyeSBvZiBjaHVuayAke3J9YDticmVhaztjYXNlIDE6bj1gYmVjYXVzZSBpdCB3YXMgcmVxdWlyZWQgZnJvbSBtb2R1bGUgJHtyfWA7YnJlYWs7Y2FzZSAyOm49ImJlY2F1c2Ugb2YgYW4gSE1SIHVwZGF0ZSI7YnJlYWs7ZGVmYXVsdDpqKHQsZT0+YFVua25vd24gc291cmNlIHR5cGU6ICR7ZX1gKX1yZXR1cm5gTW9kdWxlICR7ZX0gd2FzIGluc3RhbnRpYXRlZCAke259LCBidXQgdGhlIG1vZHVsZSBmYWN0b3J5IGlzIG5vdCBhdmFpbGFibGUuYH0oZSx0LHIpKTtsZXQgbD1jKGUpLGk9bC5leHBvcnRzO0xbZV09bDtsZXQgcz1uZXcgbyhsLGkpO3RyeXtuKHMsbCxpKX1jYXRjaChlKXt0aHJvdyBsLmVycm9yPWUsZX1yZXR1cm4gbC5uYW1lc3BhY2VPYmplY3QmJmwuZXhwb3J0cyE9PWwubmFtZXNwYWNlT2JqZWN0JiZkKGwuZXhwb3J0cyxsLm5hbWVzcGFjZU9iamVjdCksbH1mdW5jdGlvbiBJKHIpe2xldCBuLG89ZnVuY3Rpb24oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlO2xldCByPWRlY29kZVVSSUNvbXBvbmVudCgoInUiPnR5cGVvZiBUVVJCT1BBQ0tfTkVYVF9DSFVOS19VUkxTP1RVUkJPUEFDS19ORVhUX0NIVU5LX1VSTFMucG9wKCk6ZS5nZXRBdHRyaWJ1dGUoInNyYyIpKS5yZXBsYWNlKC9bPyNdLiokLywiIikpO3JldHVybiByLnN0YXJ0c1dpdGgodCk/ci5zbGljZSh0Lmxlbmd0aCk6cn0oclswXSk7cmV0dXJuIDI9PT1yLmxlbmd0aD9uPXJbMV06KG49dm9pZCAwLCFmdW5jdGlvbihlLHQscixuKXtsZXQgbz0xO2Zvcig7bzxlLmxlbmd0aDspe2xldCB0PWVbb10sbj1vKzE7Zm9yKDtuPGUubGVuZ3RoJiYiZnVuY3Rpb24iIT10eXBlb2YgZVtuXTspbisrO2lmKG49PT1lLmxlbmd0aCl0aHJvdyBFcnJvcigibWFsZm9ybWVkIGNodW5rIGZvcm1hdCwgZXhwZWN0ZWQgYSBmYWN0b3J5IGZ1bmN0aW9uIik7aWYoIXIuaGFzKHQpKXtsZXQgbD1lW25dO2ZvcihPYmplY3QuZGVmaW5lUHJvcGVydHkobCwibmFtZSIse3ZhbHVlOiJtb2R1bGUgZXZhbHVhdGlvbiJ9KTtvPG47bysrKXQ9ZVtvXSxyLnNldCh0LGwpfW89bisxfX0ociwwLHYpKSxlLnJlZ2lzdGVyQ2h1bmsobyxuKX1sZXQgVz1uZXcgTWFwO2Z1bmN0aW9uIEgoZSl7bGV0IHQ9Vy5nZXQoZSk7aWYoIXQpe2xldCByLG47dD17cmVzb2x2ZWQ6ITEsbG9hZGluZ1N0YXJ0ZWQ6ITEscHJvbWlzZTpuZXcgUHJvbWlzZSgoZSx0KT0+e3I9ZSxuPXR9KSxyZXNvbHZlOigpPT57dC5yZXNvbHZlZD0hMCxyKCl9LHJlamVjdDpufSxXLnNldChlLHQpfXJldHVybiB0fWU9e2FzeW5jIHJlZ2lzdGVyQ2h1bmsoZSx0KXtpZihIKEsoZSkpLnJlc29sdmUoKSxudWxsIT10KXtmb3IobGV0IGUgb2YgdC5vdGhlckNodW5rcylIKEsoInN0cmluZyI9PXR5cGVvZiBlP2U6ZS5wYXRoKSk7aWYoYXdhaXQgUHJvbWlzZS5hbGwodC5vdGhlckNodW5rcy5tYXAodD0+UygwLGUsdCkpKSx0LnJ1bnRpbWVNb2R1bGVJZHMubGVuZ3RoPjApZm9yKGxldCByIG9mIHQucnVudGltZU1vZHVsZUlkcykhZnVuY3Rpb24oZSx0KXtsZXQgcj1MW3RdO2lmKHIpe2lmKHIuZXJyb3IpdGhyb3cgci5lcnJvcjtyZXR1cm59cSh0LF8uUnVudGltZSxlKX0oZSxyKX19LGxvYWRDaHVua0NhY2hlZDooZSx0KT0+KGZ1bmN0aW9uKGUsdCl7bGV0IHI9SCh0KTtpZihyLmxvYWRpbmdTdGFydGVkKXJldHVybiByLnByb21pc2U7aWYoZT09PV8uUnVudGltZSlyZXR1cm4gci5sb2FkaW5nU3RhcnRlZD0hMCxNKHQpJiZyLnJlc29sdmUoKSxyLnByb21pc2U7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGltcG9ydFNjcmlwdHMpaWYoTSh0KSk7ZWxzZSBpZih4LnRlc3QodCkpc2VsZi5UVVJCT1BBQ0tfTkVYVF9DSFVOS19VUkxTLnB1c2godCksaW1wb3J0U2NyaXB0cyhUVVJCT1BBQ0tfV09SS0VSX0xPQ0FUSU9OK3QpO2Vsc2UgdGhyb3cgRXJyb3IoYGNhbid0IGluZmVyIHR5cGUgb2YgY2h1bmsgZnJvbSBVUkwgJHt0fSBpbiB3b3JrZXJgKTtlbHNle2xldCBlPWRlY29kZVVSSSh0KTtpZihNKHQpKWlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYGxpbmtbcmVsPXN0eWxlc2hlZXRdW2hyZWY9IiR7dH0iXSxsaW5rW3JlbD1zdHlsZXNoZWV0XVtocmVmXj0iJHt0fT8iXSxsaW5rW3JlbD1zdHlsZXNoZWV0XVtocmVmPSIke2V9Il0sbGlua1tyZWw9c3R5bGVzaGVldF1baHJlZl49IiR7ZX0/Il1gKS5sZW5ndGg+MClyLnJlc29sdmUoKTtlbHNle2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtlLnJlbD0ic3R5bGVzaGVldCIsZS5ocmVmPXQsZS5vbmVycm9yPSgpPT57ci5yZWplY3QoKX0sZS5vbmxvYWQ9KCk9PntyLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKX1lbHNlIGlmKHgudGVzdCh0KSl7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgc2NyaXB0W3NyYz0iJHt0fSJdLHNjcmlwdFtzcmNePSIke3R9PyJdLHNjcmlwdFtzcmM9IiR7ZX0iXSxzY3JpcHRbc3JjXj0iJHtlfT8iXWApO2lmKG4ubGVuZ3RoPjApZm9yKGxldCBlIG9mIEFycmF5LmZyb20obikpZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntyLnJlamVjdCgpfSk7ZWxzZXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtlLnNyYz10LGUub25lcnJvcj0oKT0+e3IucmVqZWN0KCl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9fWVsc2UgdGhyb3cgRXJyb3IoYGNhbid0IGluZmVyIHR5cGUgb2YgY2h1bmsgZnJvbSBVUkwgJHt0fWApfXJldHVybiByLmxvYWRpbmdTdGFydGVkPSEwLHIucHJvbWlzZX0pKGUsdCksYXN5bmMgbG9hZFdlYkFzc2VtYmx5KGUsdCxyLG4sbyl7bGV0IGw9ZmV0Y2goSyhyKSkse2luc3RhbmNlOml9PWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGwsbyk7cmV0dXJuIGkuZXhwb3J0c30sYXN5bmMgbG9hZFdlYkFzc2VtYmx5TW9kdWxlKGUsdCxyLG4pe2xldCBvPWZldGNoKEsocikpO3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5jb21waWxlU3RyZWFtaW5nKG8pfX07bGV0IEY9Z2xvYmFsVGhpcy5UVVJCT1BBQ0s7Z2xvYmFsVGhpcy5UVVJCT1BBQ0s9e3B1c2g6SX0sRi5mb3JFYWNoKEkpfSkoKTsKOyhmdW5jdGlvbigpe2lmKHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQifHwhLyg/Ol58O1xzKV9fdmVyY2VsX3Rvb2xiYXI9MSg/Ojt8JCkvLnRlc3QoZG9jdW1lbnQuY29va2llKSlyZXR1cm47dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5zcmM9J2h0dHBzOi8vdmVyY2VsLmxpdmUvX25leHQtbGl2ZS9mZWVkYmFjay9mZWVkYmFjay5qcyc7cy5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwbGljaXQtb3B0LWluIiwidHJ1ZSIpO3Muc2V0QXR0cmlidXRlKCJkYXRhLWNvb2tpZS1vcHQtaW4iLCJ0cnVlIik7cy5zZXRBdHRyaWJ1dGUoImRhdGEtZGVwbG95bWVudC1pZCIsImRwbF9DUUNuSlhHMXJLWk0xazNReERpQjlpMVRtZjY2Iik7KChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKHMpKX0pKCk7"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/www-player.css","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.433Z","timestamp":1785126646433,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/player/7a7969c2/www-player.css HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 57346\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 23:45:20 GMT\r\nexpires: Thu, 22 Jul 2027 23:45:20 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 04:34:15 GMT\r\ncontent-type: text/css\r\nvary: Accept-Encoding, Origin\r\nage: 362726\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":525369,"size_decoded":58026,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65534), with no line terminators","md5":"839a152020ccf30ae48724d0b0c7b838","sha1":"dc9e04d667f3ebd589549aaa4cfc8a8e887505e1","sha256":"921b6856085a224b1ca2e5db139b1788c01d4dd1e70daca7006b6a7b381bdae1","sha512":"efc3700ca9d21022fb13b33c526a2f9f6c73c6c063957504b3b8ed58ef9512fa815c7f915f522af2f3fa73dd7cbfd6634566ad1dc6c86f11f4ed0a4b74f824ce","ssdeep":"6144:s8d5Fe/qoMOg7USBfUIoImM5Kia68Oi4u7:3YxMOg7USiIoIr5Kia6Tg","tlshash":"8eb4d972f0a1233cb2278d59a7d9d54d7339d983e2e12aeff11166dacbc77811326206","first_seen":"2026-07-14T08:36:18.809394Z","last_seen":"2026-07-27T08:08:01.2543Z","times_seen":4750,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsuaHRtbDUtdmlkZW8tcGxheWVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MDtvdXRsaW5lOjA7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtjb2xvcjojZWVlO3RleHQtYWxpZ246bGVmdDtkaXJlY3Rpb246bHRyO2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEuMzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lmh0bWw1LXZpZGVvLXBsYXllciwueXRwLWNvbnRleHRtZW51ey1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDpub25lO2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlLC5odG1sNS12aWRlby1wbGF5ZXIudW5zdGFydGVkLW1vZGUsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10cmFuc3BhcmVudCl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dGQtdmlkZW8tbWFzdGhlYWQtYWQtcHJpbWFyeS12aWRlby1yZW5kZXJlciAuaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmcsLnl0ZC12aWRlby1tYXN0aGVhZC1hZC1wcmltYXJ5LXZpZGVvLXJlbmRlcmVyIC5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSwueXRkLXZpZGVvLW1hc3RoZWFkLWFkLXByaW1hcnktdmlkZW8tcmVuZGVyZXIgLmh0bWw1LXZpZGVvLXBsYXllci51bnN0YXJ0ZWQtbW9kZSwueXRkLXZpZGVvLW1hc3RoZWFkLWFkLXByaW1hcnktdmlkZW8tcmVuZGVyZXIgLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10cmFuc3BhcmVudCl7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWJpZy1tb2Rle2ZvbnQtc2l6ZToxN3B4fS55dHAtYXV0b2hpZGV7Y3Vyc29yOm5vbmV9Lmh0bWw1LXZpZGVvLXBsYXllciBhe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Y29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7b3V0bGluZTowfS5odG1sNS12aWRlby1wbGF5ZXIgYTpob3Zlcntjb2xvcjojZmZmOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgYTpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0uaHRtbDUtdmlkZW8tcGxheWVyIGgxLC5odG1sNS12aWRlby1wbGF5ZXIgaDJ7bWFyZ2luOjB9Lmh0bWw1LXZpZGVvLXBsYXllciBzdmd7cG9pbnRlci1ldmVudHM6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC10b3VjaC1tb2RlKSA6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE1cHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10b3VjaC1tb2RlKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojOGU4ZThlO2JvcmRlcjoxcHggc29saWQgIzQyNDI0Mjtib3JkZXItcmFkaXVzOjVweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHh9Lmh0bWw1LXZpZGVvLWNvbnRhaW5lcnt6LWluZGV4OjEwO3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtZW1iZWQtZXJyb3IgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lmh0bWw1LW1haW4tdmlkZW97cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3V0bGluZTowfS55dHAtZml0LWNvdmVyLXZpZGVvIC5odG1sNS1tYWluLXZpZGVvey1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcn0uaHRtbDUtbWFpbi12aWRlb1tkYXRhLW5vLWZ1bGxzY3JlZW49dHJ1ZV06Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b257ZGlzcGxheTpub25lfS5odG1sNS1tYWluLXZpZGVvOm5vdChbY29udHJvbHNdKTo6LXdlYmtpdC1tZWRpYS1jb250cm9scywuaHRtbDUtbWFpbi12aWRlbzpub3QoW2NvbnRyb2xzXSk6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhcnQtcGxheWJhY2stYnV0dG9ue2Rpc3BsYXk6bm9uZX0uaHRtbDUtbWFpbi12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZXtkaXNwbGF5OmlubGluZX0udW5zdGFydGVkLW1vZGUgLmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhcnQtcGxheWJhY2stYnV0dG9ue2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjMyNXB4KXsuaHRtbDUtbWFpbi12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1waWNrZXItYnV0dG9ue2Rpc3BsYXk6bm9uZX19Lmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksLmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheXtkaXNwbGF5Oi13ZWJraXQtZmxleH0ueXRwLXBsYXllci1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO3RvcDo0OHB4O2JvdHRvbTo2MXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKTpub3QoLmFkLXNob3dpbmcpIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KX0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKS55dHAtaGFzLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgOTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpOm5vdCguYWQtc2hvd2luZykueXRwLWhhcy1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA5NHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKTpub3QoLmFkLXNob3dpbmcpLnl0cC1iaWctbW9kZS55dHAtaGFzLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgOTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpOm5vdCguYWQtc2hvd2luZykueXRwLWJpZy1tb2RlLnl0cC1oYXMtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgOTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjQ5cHh9Lnl0cC1lbWJlZCAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTo1M3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXBsYXllci1jb250ZW50Om5vdCgueXRwLXVwbmV4dCl7dG9wOjYwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXBsYXllci1jb250ZW50e3RvcDo2OXB4O2JvdHRvbTo3MHB4fS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1wbGF5ZXItY29udGVudDpub3QoLnl0cC11cG5leHQpe3RvcDo4OXB4fS55dHAtcGxheWVyLWNvbnRlbnQueXRwLWl2LXBsYXllci1jb250ZW50LC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnR7bGVmdDoxMnB4O3JpZ2h0OjEycHh9Lnl0cC1icmFuZGluZy1zaG93biAueXRwLXBsYXllci1jb250ZW50Lnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e3JpZ2h0OmNhbGMoMjJweCArIHZhcigtLWJyYW5kaW5nLWltYWdlLXdpZHRoKSl9Lnl0cC1iaWctbW9kZSAueXRwLXBsYXllci1jb250ZW50Lnl0cC1pdi1wbGF5ZXItY29udGVudCwueXRwLWJpZy1tb2RlIC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnR7bGVmdDoyNHB4O3JpZ2h0OjI0cHh9Lnl0cC1icmFuZGluZy1zaG93bi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5ZXItY29udGVudC55dHAtdGltZWx5LWFjdGlvbnMtY29udGVudHtyaWdodDpjYWxjKDIycHggKyB2YXIoLS1icmFuZGluZy1pbWFnZS13aWR0aCkpfS55dHAtYXV0b2hpZGUgLnl0cC1wbGF5ZXItY29udGVudDpub3QoLmh0bWw1LWVuZHNjcmVlbiksLnl0cC1hdXRvaGlkZSAueXRwLXBsYXllci1jb250ZW50Om5vdCgueXRwLXVwbmV4dCksLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtcGxheWVyLWNvbnRlbnR7dG9wOjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx0b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUgLnl0cC15cGMtcGxheWVyLWNvbnRlbnQsLnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjB9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtaXYtcGxheWVyLWNvbnRlbnQsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtdGltZWx5LWFjdGlvbnMtY29udGVudCwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1pdi1wbGF5ZXItY29udGVudCwueXRwLWhpZGUtY29udHJvbHMgLnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e2JvdHRvbToxMnB4fS55dHAtdGltZWx5LWFjdGlvbnMtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowO3otaW5kZXg6MzU7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpOy13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMzNzO3RyYW5zaXRpb24tZGVsYXk6LjMzc30ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktYm90dG9tLXJpZ2h0IC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnQsLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1vdmVybGF5LWJvdHRvbS1yaWdodCAueXRwLXRpbWVseS1hY3Rpb25zLW92ZXJsYXl7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MH0ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAueXRwLXRpbWVseS1hY3Rpb25zLW92ZXJsYXl7ZGlzcGxheTpub25lfS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjE1MXB4fS55dHAtc21hbGwtbW9kZS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjEzOXB4fS55dHAtZW1iZWQueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbToxNDNweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtaXYtcGxheWVyLWNvbnRlbnQsLnl0cC1iaWctbW9kZS55dHAtYXV0b2hpZGU6bm90KC55dHAtYWQtb3ZlcmxheS1vcGVuKSAueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnQsLnl0cC1iaWctbW9kZS55dHAtaGlkZS1jb250cm9scyAueXRwLWl2LXBsYXllci1jb250ZW50LC55dHAtYmlnLW1vZGUueXRwLWhpZGUtY29udHJvbHMgLnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e2JvdHRvbToyNHB4fS55dHAtYmlnLW1vZGUueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbToxNjBweH0ueXRwLWJ1dHRvbntib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmc6MDtjb2xvcjppbmhlcml0O3RleHQtYWxpZ246aW5oZXJpdDtmb250LXNpemU6MTAwJTtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpkZWZhdWx0O2xpbmUtaGVpZ2h0OmluaGVyaXR9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDEycHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3A7cGFkZGluZzpjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkgLSAyNHB4KS8yKX0ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtbXV0ZS1idXR0b24ueXRwLXN0YW5kYWxvbmUtbXV0ZS1idXR0b24gc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7cGFkZGluZzo5cHh9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b246bm90KC55dHAtZXhwYW5kLXJpZ2h0LWJvdHRvbS1zZWN0aW9uLWJ1dHRvbikgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7cGFkZGluZzo3cHh9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9uLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6MH0ueXRwLWJ1dHRvbiwueXRwLWJ1dHRvbjpmb2N1c3tvdXRsaW5lOjB9Lnl0cC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7cGFkZGluZzowO2JvcmRlcjowfS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1idXR0b25bYXJpYS1kaXNhYmxlZD10cnVlXSwuaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYnV0dG9uW2Rpc2FibGVkXXtvcGFjaXR5Oi41fS55dHAtYnV0dG9uOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1idXR0b246Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCl9Lnl0cC1jaHJvbWUtYm90dG9tLC55dHAtY2hyb21lLXRvcHtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpfS55dHAtZG5pIC55dHAtY2hyb21lLWJvdHRvbXt0ZXh0LXNoYWRvdzpub25lfS55dHAtY2hyb21lLXRvcHtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bGVmdDoxMnB4O3JpZ2h0OjEycHg7dG9wOjA7ei1pbmRleDo1OH0ueXRwLXNob3J0cy1tb2RlIC55dHAtY2hyb21lLXRvcHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cmlnaHQ6MH0ueXRwLWd2biAueXRwLWNocm9tZS10b3AsLnl0cC1ndm4ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcHt0b3A6MjBweH0ueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOjA7aGVpZ2h0OjQ4cHg7d2lkdGg6MTAwJTt6LWluZGV4OjU5O3BhZGRpbmctdG9wOjNweDt0ZXh0LWFsaWduOmxlZnQ7ZGlyZWN0aW9uOmx0cn0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1ib3R0b217aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsNzJweCl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtYm90dG9tLnl0cC12b2x1bWUtcG9wb3Zlci1zaG93aW5ne3otaW5kZXg6MTAwMH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDozNnB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDo0MHB4fS55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZSAueXRwLWNocm9tZS1ib3R0b20sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNocm9tZS1jb250cm9scywueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9tLC55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OjQ4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1ib3R0b217aGVpZ2h0OjU0cHg7cGFkZGluZy10b3A6NHB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDk2cHgpO3BhZGRpbmctdG9wOjB9Lnl0cC1jaHJvbWUtdG9wIC55dHAtYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbiwueXRwLXNtYWxsLW1vZGUgLnl0cC1yZXBsYXktYnV0dG9ue29wYWNpdHk6Ljk7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzZweDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLC55dHAtcmVwbGF5LWJ1dHRvbntvcGFjaXR5Oi45O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQ4cHg7cGFkZGluZzowIDJweDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1tdXRlLWJ1dHRvbntwYWRkaW5nOjZweH0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbmV4dC1idXR0b257cGFkZGluZzowfS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1taW5pcGxheWVyLWJ1dHRvbiwueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcmVtb3RlLWJ1dHRvbntwYWRkaW5nOjAgNHB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24sLnl0cC1lbWJlZCAueXRwLXJlcGxheS1idXR0b257d2lkdGg6NDBweDtwYWRkaW5nOjB9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbWluaXBsYXllci1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbXV0ZS1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbmV4dC1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcmVtb3RlLWJ1dHRvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1yaWdodC1jb250cm9sc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsNDhweCk7Ym9yZGVyLXJhZGl1czoyOHB4O3BhZGRpbmc6MCAxNnB4Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdCwueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtcmlnaHR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246ZW5kOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1lbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b257b3BhY2l0eTp1bnNldDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWRdOmFmdGVye2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW11dGUtYnV0dG9ue292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbiAueXRwLXZvbHVtZS1pY29ue292ZXJmbG93OnZpc2libGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJlcGxheS1idXR0b257b3BhY2l0eTp1bnNldH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWxlZnQtY29udHJvbHN7bWluLXdpZHRoOjA7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze3BhZGRpbmc6MCA0cHg7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9ue3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtib3JkZXItcmFkaXVzOjQwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjQ4cHg7aGVpZ2h0OmNhbGModmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsIDQ4cHgpIC0gOHB4KX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDtwYWRkaW5nOjAgNHB4IDAgMDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTttYXJnaW4tbGVmdDo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+KikueXRwLXBsYXlsaXN0LXVpe21hcmdpbi1sZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4O2luc2V0OjRweCA0cHggNHB4IDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4xKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6YWN0aXZlOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyLHJnYmEoMjU1LDI1NSwyNTUsLjIpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b257aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1yaWdodC1jb250cm9scyAueXRwLWJ1dHRvbjpiZWZvcmV7aGVpZ2h0OmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsIDU2cHgpIC0gOHB4KTt3aWR0aDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3twYWRkaW5nOmNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LCA1NnB4KSAtIDI0cHgpLzIpfS55dHAtZGVsaGktbW9kZXJuLXdpdGgtbHVtaW5vc2l0eS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmx1bWlub3NpdHk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWRpZmZlcmVuY2UueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpleGNsdXNpb247LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KX0ueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9ue3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHh9Lnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b246bm90KC55dHAteW91dHViZS1idXR0b24pIHN2ZywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbjpub3QoLnl0cC15b3V0dWJlLWJ1dHRvbikgc3Zne3dpZHRoOjQwcHg7cGFkZGluZy1sZWZ0OjRweH0ueXRwLWNocm9tZS10b3AgLnl0cC1idXR0b257cGFkZGluZy10b3A6NnB4O2hlaWdodDo0MnB4O3ZlcnRpY2FsLWFsaWduOnRvcH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLWJ1dHRvbntwYWRkaW5nLXRvcDo5cHg7aGVpZ2h0OjYzcHh9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b257aGVpZ2h0OjEwMCV9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbiwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLWJ1dHRvbnt3aWR0aDo1NHB4fS55dHAtcGxheS1idXR0b246bm90KC55dHAtcGxheS1idXR0b24tcGxheWxpc3QpOmJlZm9yZSwueXRwLXByZXYtYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O2JvdHRvbTowO2xlZnQ6LTEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4O2JvcmRlci1yYWRpdXM6MjdweH0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjphZnRlcntib3JkZXItcmFkaXVzOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkvMil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXktYnV0dG9uOmFjdGl2ZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5LWJ1dHRvbjphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUtY29uc2lzdGVudC1waWxsLWhlaWdodC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO21hcmdpbi1ib3R0b206Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTttYXJnaW4tbGVmdDo4cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjI4cHg7aW5zZXQ6NHB4IDAgNHB4IDRweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXByZXYtYnV0dG9uOm5vdCh5dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wcmV2LWJ1dHRvbjpub3QoeXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKSBzdmd7cGFkZGluZzpjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkgLSAyNHB4KS8yKX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWx1bWlub3NpdHkueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZGlmZmVyZW5jZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtZGVsaGktbW9kZXJuLXdpdGgtZXhjbHVzaW9uLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZXhjbHVzaW9uOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O2JvdHRvbTowO2xlZnQ6MTAwJX0ueXRwLWJpZy1tb2RlIC55dHAtcGxheS1idXR0b246bm90KC55dHAtcGxheS1idXR0b24tcGxheWxpc3QpOmJlZm9yZSwueXRwLWJpZy1tb2RlIC55dHAtcHJldi1idXR0b246YmVmb3Jle3dpZHRoOjI0cHg7bGVmdDotMjRweH0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOm5vdChbZGlzYWJsZWRdKTpob3ZlciwueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdLC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXSwueXRwLWNocm9tZS10b3AgLnl0cC1idXR0b246aG92ZXIsLnl0cC1yZXBsYXktYnV0dG9uOmhvdmVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zdmctZmlsbHtmaWxsOiNmZmZ9Lnl0cC1zdmctc2hhZG93e3N0cm9rZTojMDAwO3N0cm9rZS1vcGFjaXR5Oi4xNTtzdHJva2Utd2lkdGg6MnB4O2ZpbGw6bm9uZX0ueXRwLWRuaSAueXRwLXN2Zy1zaGFkb3d7ZGlzcGxheTpub25lfS55dHAtc3ZnLXNoYWRvdy1maWxse2ZpbGw6IzAwMDtmaWxsLW9wYWNpdHk6LjE1O3N0cm9rZTpub25lfS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF17cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6M3B4O2xlZnQ6MjRweDtib3R0b206OXB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpOy13ZWJraXQtdHJhbnNpdGlvbjpsZWZ0IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHdpZHRoIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246bGVmdCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF06YWZ0ZXJ7aGVpZ2h0OjJweDtib3JkZXItcmFkaXVzOjJweDtsZWZ0OjIwcHg7Ym90dG9tOjhweH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF06YWZ0ZXJ7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjNweDtsZWZ0OjI3cHg7Ym90dG9tOjEwcHh9Lnl0cC1kbmkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjI0cHg7bGVmdDoxMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjpsZWZ0IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSx3aWR0aCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpsZWZ0IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSx3aWR0aCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlciwueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlcnt3aWR0aDoxOHB4O2xlZnQ6OXB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjIwcHg7bGVmdDoxMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjI3cHg7bGVmdDoxNHB4fS55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlciwueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWQ9dHJ1ZV06YWZ0ZXJ7bGVmdDoxNXB4fS55dHAtY29sb3Itd2hpdGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZGR9Lnl0cC1jb2xvci1wYXJ0eSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWRdOmFmdGVyey13ZWJraXQtYW5pbWF0aW9uOnl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIgaW5maW5pdGV9Lnl0cC1jaHJvbWUtdG9wLWJ1dHRvbnN7d2hpdGUtc3BhY2U6bm93cmFwfS55dHAtY2hyb21lLXRvcC1idXR0b25zIC55dHAtYnV0dG9ue3RleHQtc2hhZG93OmluaGVyaXR9W2Rpcj1ydGxdIC55dHAtc2hvcnRzLW1vZGUgLnl0cC1jaHJvbWUtdG9wLWJ1dHRvbnN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0OHB4fS55dHAtY29weWxpbmstYnV0dG9uOm5vdCgueXRwLWNvcHlsaW5rLWJ1dHRvbi12aXNpYmxlKSwueXRwLW92ZXJmbG93LWJ1dHRvbjpub3QoLnl0cC1vdmVyZmxvdy1idXR0b24tdmlzaWJsZSksLnl0cC1zaGFyZS1idXR0b246bm90KC55dHAtc2hhcmUtYnV0dG9uLXZpc2libGUpe2Rpc3BsYXk6bm9uZX0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtY2hyb21lLWNvbnRyb2xze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjEwOSU7dGV4dC1hbGlnbjpsZWZ0O2RpcmVjdGlvbjpsdHJ9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsNzJweCk7bGluZS1oZWlnaHQ6dmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCw3MnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDk2cHgpO2xpbmUtaGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsOTZweCl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHh9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9sc3toZWlnaHQ6NDBweDtsaW5lLWhlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OjU0cHg7bGluZS1oZWlnaHQ6NTRweH06bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtbGVmdC1jb250cm9sc3tmbG9hdDpsZWZ0fS55dHAtbGVmdC1jb250cm9sc3toZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMueXRwLWxlZnQtY29udHJvbHMtd2l0aC12b2x1bWV7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtbGVmdC1jb250cm9sc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc306bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtcmlnaHQtY29udHJvbHN7ZmxvYXQ6cmlnaHR9Lnl0cC1yaWdodC1jb250cm9sc3toZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbnstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MDttaW4td2lkdGg6MDttYXJnaW46dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDAgdmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDEycHg7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uIC55dHAtYnV0dG9ue3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue3BhZGRpbmc6MCA0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uIHN2Z3twYWRkaW5nOjEwcHggNnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtbXV0ZS1idXR0b24gLnl0cC12b2x1bWUtaWNvbntwYWRkaW5nOjRweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTttYXJnaW46Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpIDAgY2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpIDEycHg7cGFkZGluZzowfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1yaWdodC1jb250cm9sc3toZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCk7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdHtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtcmlnaHR7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1yaWdodC1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzLWxlZnQ6YWZ0ZXJ7aGVpZ2h0OjI4cHg7bWFyZ2luOjEwcHggMTRweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDp2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LXhzbWFsbC13aWR0aC1tb2RlLDY0cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b257aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYnV0dG9uLnl0cC1saXZlLWJhZGdle3dpZHRoOmF1dG99Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWJ1dHRvbjpub3QoLnl0cC1saXZlLWJhZGdlKTpiZWZvcmV7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQteHNtYWxsLXdpZHRoLW1vZGUsNjRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW5leHQtYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1wcmV2LWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue2hlaWdodDo0MHB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLXJpZ2h0LWNvbnRyb2xze2hlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjQwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b257ZGlzcGxheTpub25lO21hcmdpbjo0cHggMnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdDphZnRlcntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXNldHRpbmdzLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1yaWdodC1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtZXhwYW5kLXJpZ2h0LWJvdHRvbS1zZWN0aW9uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20ueXRwLXhzbWFsbC13aWR0aC1yaWdodC1jb250cm9scy1leHBhbmRlZCAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20ueXRwLXhzbWFsbC13aWR0aC1yaWdodC1jb250cm9scy1leHBhbmRlZCAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWJvdHRvbS55dHAteHNtYWxsLXdpZHRoLXJpZ2h0LWNvbnRyb2xzLWV4cGFuZGVkIC55dHAtbGVmdC1jb250cm9scyAueXRwLXRpbWUtZGlzcGxheXt2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtdm9sdW1lLWFyZWF7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWF7bWFyZ2luOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAwIHZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAxMnB4O2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYXtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC12b2x1bWUtaWNvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC12b2x1bWUtaWNvbiBzdmd7cGFkZGluZzp2YXIoLS15dC1kZWxoaS1waWxsLXRvcC1oZWlnaHQsMTJweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWE6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6MjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC1jaHJvbWUtYm90dG9tLnl0cC12b2x1bWUtc2xpZGVyLWFjdGl2ZSAueXRwLXZvbHVtZS1hcmVhe3BhZGRpbmctcmlnaHQ6MTZweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXZvbHVtZS1hcmVhe21hcmdpbjp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCkgMCAwIDEycHg7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYXttYXJnaW46dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDAgdmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDhweDtoZWlnaHQ6NDBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC1idXR0b257aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDtwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1hcmVhIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4O3BhZGRpbmc6MTFweH0ueXRwLWF1dG9oaWRlLWZhZGUtdHJhbnNpdGlvbiwueXRwLWNocm9tZS1ib3R0b206bm90KC55dHAtZnJvc3RlZC1nbGFzcy1vcGFjaXR5LWFuaW1hdGlvbiksLnl0cC1jaHJvbWUtdG9wey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYXV0b2hpZGUtZmFkZS10cmFuc2l0aW9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtYm90dG9tOm5vdCgueXRwLWZyb3N0ZWQtZ2xhc3Mtb3BhY2l0eS1hbmltYXRpb24pLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1idXR0b24sLnl0cC1hdXRvaGlkZSAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbCwueXRwLWF1dG9oaWRlIC55dHAtdGl0bGUsLnl0cC1hdXRvaGlkZSAueXRwLXRpdGxlLWNoYW5uZWwsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1jYXJkcy10ZWFzZXItc2hvd24pIC55dHAtY2FyZHMtYnV0dG9uLC55dHAtY2hyb21lLWJvdHRvbVthcmlhLWhpZGRlbj10cnVlXSwueXRwLWNocm9tZS10b3BbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci1idXR0b24sLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpIC55dHAtb3ZlcmZsb3ctYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXRpdGxlLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXRpdGxlLWNoYW5uZWwsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpOm5vdCgueXRwLWNhcmRzLXRlYXNlci1zaG93bikgLnl0cC1jYXJkcy1idXR0b257ZGlzcGxheTpub25lfS55dHAtc2hvcnRzLW1vZGUgLnl0cC10aXRsZS1jaGFubmVse3BhZGRpbmctcmlnaHQ6OHB4fS55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZ3JhZGllbnQtdG9we3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQURHQ0FZQUFBQVQrT3FGQUFBQWRrbEVRVlFvejQyUVFRN0FJQWdFRi9UL0Qra2JxL1JXQWxuUXl5YXpBNGFvQUI0RnNCU0EvYkZqdUYxRU9MN1ZicklyQnV1c21ydDRaWk9SZmI2ZWhiV2RuUkhFSWlJVGFFVUthNUVKcVVha1JTYUVZQkpTQ1kyZEVzdFFZN0F1eGFod1hGcnZabVdsMnJoNEpaMDd6OWRMdGVzZk5qNXEwRlUzQTVPYmJ3QUFBQUJKUlU1RXJrSmdnZz09KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nKTpub3QoLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlKSAueXRwLWdyYWRpZW50LWJvdHRvbXtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWdyYWRpZW50LWJvdHRvbSwueXRwLWJpZy1tb2RlIC55dHAtZ3JhZGllbnQtdG9we2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFFbUNBWUFBQUNqeS9xekFBQUFoa2xFUVZRNHk1MlJVUTZBTUF4Q0tkNy9KSjdSNmFlSkFkcjUwN1RqUVpxT0FFNENXQVJ3eDdKRTk0NHJjaC9rNnFPV1M3YnE1Ymg3MnpHRjgrTFRhNmdvSmVSUGdYRFlOeFdGZmtTMFFYQ0luTElOMUd4VFhBMGR0UzBvdFdKbnVYSlIxWTlXWVA5R0YxVUNZUlFZSFJTbFhNQVJiVk80dGgzc2Q3WTNPUDVkWTNCbitTa1BzR0oxK0hHR1Z0Y0FBQUFBU1VWT1JLNUNZSUk9KX0ueXRwLWF1dG9oaWRlIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtYXV0b2hpZGU6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUpIC55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZ3JhZGllbnQtYm90dG9tW2FyaWEtaGlkZGVuPXRydWVdLC55dHAtZ3JhZGllbnQtdG9wW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZyk6bm90KC55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSkgLnl0cC1ncmFkaWVudC1ib3R0b217ZGlzcGxheTpub25lfS55dHAtZ3JhZGllbnQtdG9we2hlaWdodDo0OHB4O3BhZGRpbmctYm90dG9tOjUwcHg7dG9wOjA7ei1pbmRleDoyNTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcH0ueXRwLWVtYmVkLXBmbC55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NzBweDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLC43NSksdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLHJnYmEoMCwwLDAsLjc1KSksdG8odHJhbnNwYXJlbnQpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwuNzUpIDAsdHJhbnNwYXJlbnQpO3BhZGRpbmctYm90dG9tOjB9Lnl0cC1zaG9ydHMtbW9kZS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1ncmFkaWVudC10b3AsLnl0cC1zaG9ydHMtbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmF1dG8gMjAwJTtiYWNrZ3JvdW5kLXNpemU6YXV0byAyMDAlfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NDlweH0ueXRwLWJpZy1tb2RlIC55dHAtZ3JhZGllbnQtdG9we2hlaWdodDo2OXB4O3BhZGRpbmctYm90dG9tOjc3cHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6ODlweDtwYWRkaW5nLWJvdHRvbTo1N3B4fS55dHAtZ3JhZGllbnQtYm90dG9te2hlaWdodDo2MXB4O3BhZGRpbmctdG9wOjM3cHg7Ym90dG9tOjA7ei1pbmRleDoyNDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1ncmFkaWVudC1ib3R0b217aGVpZ2h0OjQ5cHg7cGFkZGluZy10b3A6NDlweH0ueXRwLWVtYmVkIC55dHAtZ3JhZGllbnQtYm90dG9te2hlaWdodDo1M3B4O3BhZGRpbmctdG9wOjQ1cHh9Lnl0cC1iaWctbW9kZSAueXRwLWdyYWRpZW50LWJvdHRvbXtoZWlnaHQ6NzBweDtwYWRkaW5nLXRvcDo3NnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWRpc2FibGUtYm90dG9tLWdyYWRpZW50KSAueXRwLWdyYWRpZW50LWJvdHRvbXstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1kaXNhYmxlLWJvdHRvbS1ncmFkaWVudC55dHAtZ3JpZC1zY3JvbGxpbmcgLnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nOm5vdCgueXRwLWRpc2FibGUtYm90dG9tLWdyYWRpZW50KSAueXRwLWdyYWRpZW50LWJvdHRvbXtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgwLDAsMCwwKSksY29sb3Itc3RvcChyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44NSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDAscmdiYSgwLDAsMCwwKSBjYWxjKDcwJSAtIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSAtIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKSxyZ2JhKDAsMCwwLC44NSkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsMCkgMCxyZ2JhKDAsMCwwLDApIGNhbGMoNzAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpLHJnYmEoMCwwLDAsLjg1KSAxMDAlKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWdyYWRpZW50LWJvdHRvbXtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgwLDAsMCwwKSksY29sb3Itc3RvcChyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44NSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDAscmdiYSgwLDAsMCwwKSBjYWxjKDIwJSArIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKSxyZ2JhKDAsMCwwLC44NSkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsMCkgMCxyZ2JhKDAsMCwwLDApIGNhbGMoMjAlICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpLHJnYmEoMCwwLDAsLjg1KSAxMDAlKX0ueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9we2hlaWdodDowfS55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC1vdmVyZmxvdy1idXR0b24sLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtY2hyb21lLXRvcCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC1zaGFyZS1idXR0b24sLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZSwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9wIC55dHAtdGl0bGUtY2hhbm5lbCwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9uLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWdyYWRpZW50LXRvcCwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLW92ZXJmbG93LWJ1dHRvbiwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLXNoYXJlLWJ1dHRvbiwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLXdhdGNoLWxhdGVyLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUueXRwLWZ1bGwtYmxlZWQtcGxheWVyOm5vdCgueXRwLWdyaWQtc2Nyb2xsYWJsZSkgLnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1kaXNhYmxlLWJvdHRvbS1ncmFkaWVudC55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIgLnl0cC1ncmFkaWVudC1ib3R0b217ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsLWJsZWVkLXBsYXllci55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZTpub3QoLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlKSAueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOmNhbGMoNzAlIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpO29wYWNpdHk6dmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIueXRwLWRlbGhpLW1vZGVybi55dHAtYXV0b2hpZGUueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtY2hyb21lLWJvdHRvbSwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1mdWxsLWJsZWVkLXBsYXllci55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWF1dG9oaWRlKSAueXRwLWNocm9tZS1ib3R0b217b3BhY2l0eTpjYWxjKDEgLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMyl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOmNhbGModmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWZ1bGwtYmxlZWQtcGxheWVyLnl0cC1ncmlkLXNjcm9sbGluZyAueXRwLWNocm9tZS1ib3R0b217cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZTpub3QoLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlKTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1jaHJvbWUtYm90dG9te2Rpc3BsYXk6bm9uZX0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1jaHJvbWUtYm90dG9tLC55dHAtaGlkZS1jb250cm9scyAueXRwLWdyYWRpZW50LWJvdHRvbXtkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSl7Lnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1ncmFkaWVudC10b3B7YmFja2dyb3VuZDojMDAwO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy10b3A6MH19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yezAle2JhY2tncm91bmQtY29sb3I6I2YwMH0yMCV7YmFja2dyb3VuZC1jb2xvcjojMGYwfTQwJXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGZ9NjAle2JhY2tncm91bmQtY29sb3I6I2YwZn04MCV7YmFja2dyb3VuZC1jb2xvcjojZmYwfXRve2JhY2tncm91bmQtY29sb3I6IzBmZn19QGtleWZyYW1lcyB5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvcnswJXtiYWNrZ3JvdW5kLWNvbG9yOiNmMDB9MjAle2JhY2tncm91bmQtY29sb3I6IzBmMH00MCV7YmFja2dyb3VuZC1jb2xvcjojMDBmfTYwJXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGZ9ODAle2JhY2tncm91bmQtY29sb3I6I2ZmMH10b3tiYWNrZ3JvdW5kLWNvbG9yOiMwZmZ9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtcGFydHktY29sb3J7MCV7Y29sb3I6I2YwMH0yMCV7Y29sb3I6IzBmMH00MCV7Y29sb3I6IzAwZn02MCV7Y29sb3I6I2YwZn04MCV7Y29sb3I6I2ZmMH10b3tjb2xvcjojMGZmfX1Aa2V5ZnJhbWVzIHl0cC1wYXJ0eS1jb2xvcnswJXtjb2xvcjojZjAwfTIwJXtjb2xvcjojMGYwfTQwJXtjb2xvcjojMDBmfTYwJXtjb2xvcjojZjBmfTgwJXtjb2xvcjojZmYwfXRve2NvbG9yOiMwZmZ9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtcGFydHktZmlsbHswJXtmaWxsOiNmMDB9MjAle2ZpbGw6IzBmMH00MCV7ZmlsbDojMDBmfTYwJXtmaWxsOiNmMGZ9ODAle2ZpbGw6I2ZmMH10b3tmaWxsOiMwZmZ9fUBrZXlmcmFtZXMgeXRwLXBhcnR5LWZpbGx7MCV7ZmlsbDojZjAwfTIwJXtmaWxsOiMwZjB9NDAle2ZpbGw6IzAwZn02MCV7ZmlsbDojZjBmfTgwJXtmaWxsOiNmZjB9dG97ZmlsbDojMGZmfX0ueXRwLW1lbnUtc2hvd24gLnZpZGVvLWFkc3tkaXNwbGF5Om5vbmV9Lnl0cC1hZC1kaXNwbGF5LW92ZXJyaWRlIC52aWRlby1hZHN7ZGlzcGxheTppbmhlcml0fS55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLXN0YXRpYy1icmFuZC1yZWQsI2YwMyl9Lnl0cC1kbmkgLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6I2RkZH0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5e2JhY2tncm91bmQtY29sb3I6I2FhYX0ueXRwLWNvbG9yLXBhcnR5IC55dHAtcGxheS1wcm9ncmVzcy55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3IsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9yLC55dHAtY29sb3ItcGFydHkgLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvci1zZWNvbmRhcnl7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTtiYWNrZ3JvdW5kOm5vbmV9Lnl0cC1zd2F0Y2gtY29sb3J7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdGF0aWMtYnJhbmQtcmVkLCNmMDMpfS55dHAtc3dhdGNoLWNvbG9yLXdoaXRle2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSl9Lnl0cC1wcmVtaXVtLWxhYmVse2ZvbnQtc2l6ZTo4My4zMzMzJTtjb2xvcjojY2NjfS55dHAtZG5pIC55dHAtc3dhdGNoLWNvbG9ye2NvbG9yOiNmZmZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXN3YXRjaC1jb2xvcntjb2xvcjojZGRkfS55dHAtY29sb3ItcGFydHkgLnl0cC1zd2F0Y2gtY29sb3J7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWNvbG9yIC4xNXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp5dHAtcGFydHktY29sb3IgLjE1cyBsaW5lYXIgaW5maW5pdGV9QG1lZGlhIHByaW50ey5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtbXdlYi1wbGF5ZXIpICp7dmlzaWJpbGl0eTpoaWRkZW59Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1td2ViLXBsYXllcil7Ym9yZGVyOjFweCBzb2xpZCAjMDAwOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtY2hyb21lLXRvcCw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheSw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtbGFyZ2UtcGxheS1idXR0b257b3BhY2l0eToxIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbiAqLDpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC10aXRsZSw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtdGl0bGUgKntjb2xvcjojMDAwIWltcG9ydGFudDt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fX0ueXRwLXBsYXllci1pbi1iYXItZGlzYWJsZS11aT46bm90KC5odG1sNS12aWRlby1jb250YWluZXIpe2Rpc3BsYXk6bm9uZTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtY29tcG9zaXRlLXZpZGVvLW92ZXJsYXktcmVuZGVyZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7ei1pbmRleDoxMH0ueXRwLWFkLW1vZHVsZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWluaXBsYXllci1hbHRlcm5hdGUtdWkgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXR7aGVpZ2h0OmNhbGMoMTAwJSAtIDEycHgpO3RvcDowfS52aWRlby1hZC1zdGF0dXMtYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3otaW5kZXg6ODUwO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojMDAwO29wYWNpdHk6Ljc7ZGlzcGxheTpub25lfS55dHAtZW1iZWQgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjUzcHh9Lnl0cC1iaWctbW9kZSAudmlkZW8tYWQtc3RhdHVzLWJhcntib3R0b206NzBweH0ueXRwLWhpZGUtY29udHJvbHMgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjB9LmFkLXNob3dpbmcgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7ZGlzcGxheTpibG9ja30uYWQtc2hvd2luZy55dHAtYXV0b2hpZGUgLnZpZGVvLWFkLXN0YXR1cy1iYXIsLmFkLXNob3dpbmcueXRwLWhpZGUtY29udHJvbHMgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjB9LnZpZGVvLWFkLWxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo1cHh9LmFkLXNob3dpbmcgLmFkLXZpZGVve3Bvc2l0aW9uOmFic29sdXRlfS5hZC1zaG93aW5nIC5hZC12aWRlb3t0b3A6MH0uaHRtbDUtdmlkZW8tcGxheWVyIC52aWRlby1jbGljay10cmFja2luZywuaHRtbDUtdmlkZW8tcGxheWVyIC52aWRlby1zdHJlYW17ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlfS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLWNvbnRhaW5lci1zaW5nbGUtbWVkaWEtZWxlbWVudC1hbm5vdGF0aW9uc3twb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojg1MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1jb250YWluZXItc2luZ2xlLW1lZGlhLWVsZW1lbnQtYW5ub3RhdGlvbnMtd29ya2Fyb3VuZHt6LWluZGV4Ojg1MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3dpZHRoOjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQuaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1vdmVybGF5e2JvdHRvbTo1M3B4fS55dHAtYWQtb3ZlcmxheS1jbG9zZWQgLmFkLW92ZXJsYXksLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hZC1vdmVybGF5LWNsb3NlZCAuYWQtb3ZlcmxheXtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAuYWQtb3ZlcmxheXtib3R0b206NzBweH0ueXRwLWF1dG9oaWRlLnl0cC1hZC1vdmVybGF5LWNsb3NlZCAuYWQtb3ZlcmxheXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lmh0bWw1LXZpZGVvLXBsYXllciAuYWQtb3ZlcmxheSAudmlkZW8tY2xpY2stdHJhY2tpbmd7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLW92ZXJsYXk+Om5vdCguaW1hLWNvbnRhaW5lcil7ei1pbmRleDo4NzB9Lmh0bWw1LXZpZGVvLXBsYXllciAuYWQtb3ZlcmxheT4uaW1hLWNvbnRhaW5lcnt6LWluZGV4OmF1dG8haW1wb3J0YW50fS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLW92ZXJsYXk+LmltYS1jb250YWluZXI+Knt6LWluZGV4Ojg3MCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpIC5hZC1jb250YWluZXIsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCgueXRwLWFkLW92ZXJsYXktb3BlbikgLnZpZGVvLWFkc3tkaXNwbGF5Om5vbmV9Lml2LWVuZGNhcC1iYWNrZ3JvdW5ke3otaW5kZXg6ODIxfS5odG1sNS12aWRlby1wbGF5ZXIgLmF0dHJpYnV0aW9uLWJ1dHRvbnt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgMCA4cHgscmdiYSgwLDAsMCwuOSkgMCAwIDRweH0ueXRwLWFkLWJ1dHRvbi1pY29uLC55dHAtYWQtYnV0dG9uLXRleHQsLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLC55dHAtYWQtc2tpcC1idXR0b24tdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLXNraXAtYnV0dG9uLXRleHQtY2VudGVyZWR7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdXBkYXRlZC1mb2N1cy1zdHlsZS55dHAtYWQtcGxheWVyLW92ZXJsYXkgLnl0cC1hZC1idXR0b24sLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS11cGRhdGVkLWZvY3VzLXN0eWxlLnl0cC1hZC1wbGF5ZXItb3ZlcmxheSBidXR0b257b3V0bGluZTowfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS11cGRhdGVkLWZvY3VzLXN0eWxlLnl0cC1hZC1wbGF5ZXItb3ZlcmxheSAueXRwLWFkLWJ1dHRvbjpmb2N1cywueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtYWQtcGxheWVyLW92ZXJsYXktdXBkYXRlZC1mb2N1cy1zdHlsZS55dHAtYWQtcGxheWVyLW92ZXJsYXkgYnV0dG9uOmZvY3Vzey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtYWQtYnV0dG9uLWljb257aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtYWQtYnV0dG9uLWxpbmt7cGFkZGluZzowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ueXRwLWFkLWJ1dHRvbi1saW5rOmFjdGl2ZSwueXRwLWFkLWJ1dHRvbi1saW5rOmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWJpZy1tb2RlIC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm97bGVmdDoyNHB4O2JvdHRvbTo3MHB4fS55dHAtYXV0b2hpZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1hdXRvaGlkZSAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWF1dG9oaWRlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkLnl0cC1hdXRvaGlkZSAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1lbWJlZC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1lbWJlZC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZve2JvdHRvbTo2cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1hZC1zdXJ2ZXktcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mb3tib3R0b206NjFweDtjdXJzb3I6ZGVmYXVsdDtsZWZ0OjE4cHg7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KTt6LWluZGV4Ojg1MDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1lbWJlZCAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWVtYmVkIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkIC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm97Ym90dG9tOjUzcHh9Lnl0cC1hZC1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1hZC1kaXNjbG9zdXJlLWJhbm5lcntib3JkZXItcmFkaXVzOjA7Ym90dG9tOmF1dG87Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OmF1dG87bGVmdDoxMnB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dG9wOjI0cHg7ei1pbmRleDo4NTB9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWFkLWRpc2Nsb3N1cmUtYmFubmVye2xlZnQ6MjRweH0ueXRwLWFkLXBsYXllci1vdmVybGF5LWZseW91dC1jdGF7Ym90dG9tOjg2cHg7bGVmdDoxMnB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo4NTB9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3RhLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo4cHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtZW1iZWQgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3Rhe2JvdHRvbTo3OHB4fS55dHAtZmx5b3V0LWN0YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246bGVmdDtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1mbHlvdXQtY3RhLWxhcmdle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7cGFkZGluZzo4cHg7bWluLXdpZHRoOjIwMHB4fS55dHAtZmx5b3V0LWN0YTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS55dHAtZmx5b3V0LWN0YS1sYXJnZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JvcmRlci1yYWRpdXM6MnB4O21heC13aWR0aDo0MDBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3dpZHRoOjEwMCU7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuNXMsbWF4LXdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keS1sYXJnZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9Lnl0cC1mbHlvdXQtY3RhOmhvdmVyIC55dHAtZmx5b3V0LWN0YS1ib2R5e2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWZseW91dC1jdGE6aG92ZXIgLnl0cC1mbHlvdXQtY3RhLWJvZHktbGFyZ2V7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLXRleHQtY29udGFpbmVye21heC13aWR0aDoyNTBweDtwYWRkaW5nLWxlZnQ6NThweDtwYWRkaW5nLXJpZ2h0OjIwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtdGV4dC1jb250YWluZXItbGFyZ2V7cGFkZGluZy1yaWdodDoxMHB4fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaGVhZGxpbmUtY29udGFpbmVye2NvbG9yOiMzMzM7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi10b3A6MTBweH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5lLWNvbnRhaW5lci1kYXJrLWJhY2tncm91bmR7Y29sb3I6I2RkZH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9uLWNvbnRhaW5lcntjb2xvcjojNzY3Njc2O2ZvbnQtc2l6ZToxM3B4O21hcmdpbi10b3A6M3B4O21hcmdpbi1ib3R0b206MTBweH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9uLWNvbnRhaW5lci1kYXJrLWJhY2tncm91bmR7Y29sb3I6I2RkZH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9ue292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mn0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24tY29udGFpbmVye2RpcmVjdGlvbjpsdHI7bGluZS1oZWlnaHQ6NTZweDttYXgtd2lkdGg6MTUwcHg7cG9zaXRpb246c3RhdGljOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci1sYXJnZXtsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjo4cHg7bWluLXdpZHRoOjEwMCV9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9ue2JhY2tncm91bmQ6IzE2N2FjNjtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjojMTY3YWM2O2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMDUpO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDoyOHB4O21hcmdpbjowIDhweCAwIDA7bWF4LXdpZHRoOjE0MHB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgMTBweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6aW5oZXJpdH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24tbGFyZ2V7bWluLXdpZHRoOjEwMCU7Y29sb3I6IzBmMGYwZn0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b246aG92ZXJ7YmFja2dyb3VuZDojMTI2ZGIzfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZDojMDk1Yjk5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDAsMCwwLC41KX0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24ueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi1yb3VuZGVke2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjAgMTJweDtib3JkZXI6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7YmFja2dyb3VuZDojMDY1ZmQ0fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9uLXJvdW5kZWQtbGFyZ2V7YmFja2dyb3VuZC1jb2xvcjojM2VhNmZmfS55dHAtZmx5b3V0LWN0YSwueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWJvZHksLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1ib2R5PmRpdntkaXJlY3Rpb246bHRyO2hlaWdodDphdXRvfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXJ7aGVpZ2h0OjEwMCU7bGVmdDo0cHg7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDo0OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXItbGFyZ2V7bGVmdDo4cHg7dG9wOi0yNnB4fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi55dHAtZmx5b3V0LWN0YS1pY29uLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1pY29ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9Lnl0cC1mbHlvdXQtY3RhLnl0cC1mbHlvdXQtY3RhLWluYWN0aXZley13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKX0ueXRwLWZseW91dC1jdGEueXRwLWZseW91dC1jdGEtaW5hY3RpdmUgLnl0cC1mbHlvdXQtY3RhLWljb24tY29udGFpbmVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpfS55dHAtZmx5b3V0LWN0YS55dHAtZmx5b3V0LWN0YS1pbmFjdGl2ZSAueXRwLWZseW91dC1jdGEtYm9keXttYXgtd2lkdGg6MDt3aWR0aDowfS55dHAtYmlnLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3Rhe2JvdHRvbTo5NXB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEsLnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keSwueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1ib2R5PmRpdntoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjQwcHg7bWF4LXdpZHRoOjE5MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWljb24tY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjQwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbntoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLXRleHQtY29udGFpbmVye21hcmdpbi1sZWZ0OjZweDtwYWRkaW5nOjRweCAyMHB4IDRweCA0MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5lLWNvbnRhaW5lcntmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjJweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1kZXNjcmlwdGlvbi1jb250YWluZXJ7Zm9udC1zaXplOjExcHg7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1pY29uLWNvbnRhaW5lcntsZWZ0OjA7dG9wOjB9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXItbGFyZ2V7bGVmdDo0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbiwueXRwLWFkLWluZm8taWNvbi1idXR0b24sLnl0cC1hZC1zaW1wbGUtYWQtYmFkZ2UsLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbntjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMnB4O2xlZnQ6MDtsaW5lLWhlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYWQtc2ltcGxlLWFkLWJhZGdle21hcmdpbi1sZWZ0OjVweDtvcGFjaXR5Oi43NX0ueXRwLWFkLXNpbXBsZS1hZC1iYWRnZS0tY2xlYW4tcGxheWVye21hcmdpbi1sZWZ0OjA7b3BhY2l0eToxO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO2xlZnQ6MDtsaW5lLWhlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYWQtc2ltcGxlLWFkLWJhZGdlLS1zdXJ2ZXl7Zm9udC13ZWlnaHQ6NTAwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLXNpbXBsZS1hZC1iYWRnZXttYXJnaW4tbGVmdDowfS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5ne21hcmdpbi1sZWZ0OjNweDtvcGFjaXR5Oi43NX0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tY2xlYW4tcGxheWVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O21hcmdpbi1sZWZ0OjA7b3BhY2l0eToxO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMTZweCByZ2JhKDAsMCwwLC41KTtsZWZ0OjA7bGluZS1oZWlnaHQ6MjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tY2xlYW4tcGxheWVyOmJlZm9yZXtjb250ZW50OiLigKIiO3BhZGRpbmctaW5saW5lOjRweH0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tbXdlYntmb250LXdlaWdodDo2MDA7bWFyZ2luLWxlZnQ6M3B4fS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLS1td2ViLWlvc3tsZXR0ZXItc3BhY2luZzotLjJweH0ueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI4cHg7bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46MCA1cHg7bWFyZ2luLXJpZ2h0OjA7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b24gLnl0cC1hZC1ob3Zlci10ZXh0LWNvbnRhaW5lcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTozMHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzMzO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MTJweDtsZWZ0Oi0xOXB4O2xpbmUtaGVpZ2h0Om5vcm1hbDtvcGFjaXR5Oi45O3BhZGRpbmc6N3B4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dGV4dC1zaGFkb3c6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LXNob3J0e3doaXRlLXNwYWNlOm5vd3JhcH0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyIGF7Y29sb3I6IzE2N2FjNn0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyIGE6aG92ZXJ7Y29sb3I6IzE2N2FjNjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbjpob3ZlciAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyLC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXI6aG92ZXIgLnl0cC1hZC1ob3Zlci10ZXh0LWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLWhvdmVyLXRleHQtY2FsbG91dHtib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjVweCBzb2xpZCAjZmZmOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MDtsZWZ0OjIwcHg7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6MTAwJTt3aWR0aDowfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbiwueXRwLWFkLWluZm8taWNvbi1idXR0b257LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDJweCAjMDAwKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDJweCAjMDAwKTtoZWlnaHQ6aW5oZXJpdDtvcGFjaXR5Oi43NTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt3aWR0aDoxM3B4fS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtYnV0dG9uLS1jbGVhbi1wbGF5ZXJ7b3BhY2l0eToxOy13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCA3cHggcmdiYSgwLDAsMCwuOSkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgN3B4IHJnYmEoMCwwLDAsLjkpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b24gLnl0cC1hZC1idXR0b257LXdlYmtpdC1maWx0ZXI6dW5zZXQ7ZmlsdGVyOnVuc2V0fS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbjpob3ZlciwueXRwLWFkLWluZm8taWNvbi1idXR0b246aG92ZXJ7b3BhY2l0eToxfS55dHAtYWQtY29uZmlybS1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1iYWNrZ3JvdW5kLC55dHAtYWQtaW5mby1kaWFsb2ctYmFja2dyb3VuZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO2Rpc3BsYXk6dGFibGU7aGVpZ2h0OjEwMCU7bGVmdDowO21hcmdpbjphdXRvO3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjIyMDF9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtY29uZmlybS1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1pbmZvLWRpYWxvZy1iYWNrZ3JvdW5ke2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jbG9zZS1vdmVybGF5LWJ1dHRvbiwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jbG9zZS1idXR0b24sLnl0cC1hZC1pbmZvLWRpYWxvZy1jbG9zZS1idXR0b257aGVpZ2h0OjI0cHg7b3BhY2l0eTouNzU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDt0b3A6MTRweDt3aWR0aDoyNHB4fS55dHAtYWQtY29uZmlybS1kaWFsb2ctY2xvc2Utb3ZlcmxheS1idXR0b246aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2xvc2UtYnV0dG9uOmhvdmVyLC55dHAtYWQtaW5mby1kaWFsb2ctY2xvc2UtYnV0dG9uOmhvdmVye29wYWNpdHk6MX0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLWNvbnRhaW5lciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb250YWluZXIsLnl0cC1hZC1pbmZvLWRpYWxvZy1jb250YWluZXJ7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLC55dHAtYWQtZmVlZGJhY2stZGlhbG9nLWZvcm0sLnl0cC1hZC1pbmZvLWRpYWxvZy1mb3Jte2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCBibGFjaztjb2xvcjojNzY3Njc2O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtc2hhZG93Om5vbmU7Zm9udC1zaXplOjE0cHg7bWluLXdpZHRoOjE4MHB4O21heC13aWR0aDo1MCU7cGFkZGluZzoxNHB4O3RleHQtYWxpZ246bGVmdH0ueXRwLWFkLWluZm8tZGlhbG9nLXJlbGF0aXZlLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjcyfS55dHAtYWQtaW5mby1kaWFsb2ctcmVsYXRpdmUtY29udGFpbmVyIC55dHAtYWQtaW5mby1kaWFsb2ctZm9ybXstd2Via2l0LWJveC1zaGFkb3c6MCAwIDE1cHggcmdiYSgwLDAsMCwuMTgpO2JveC1zaGFkb3c6MCAwIDE1cHggcmdiYSgwLDAsMCwuMTgpO2JvcmRlci1jb2xvcjojZTJlMmUyO21heC13aWR0aDpub25lfS55dHAtYWQtZmVlZGJhY2stZGlhbG9nLWZvcm0gYSwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1mb3JtIGE6aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdW5kby1tdXRlLWJ1dHRvbiwueXRwLWFkLWluZm8tZGlhbG9nLWZvcm0gYSwueXRwLWFkLWluZm8tZGlhbG9nLWZvcm0gYTpob3ZlciwueXRwLWFkLWluZm8tZGlhbG9nLW11dGUtYnV0dG9ue2NvbG9yOiMxNjdhYzY7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdGl0bGUsLnl0cC1hZC1pbmZvLWRpYWxvZy10aXRsZXtjb2xvcjojMzMzO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLWJvdHRvbTo4cHh9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdGl0bGUgYSwueXRwLWFkLWluZm8tZGlhbG9nLXRpdGxlIGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX11bC55dHAtYWQtaW5mby1kaWFsb2ctYWQtcmVhc29uc3twYWRkaW5nOjA7bWFyZ2luOjA7bWFyZ2luLWJvdHRvbTo4cHh9Lnl0cC1hZC1pbmZvLWRpYWxvZy1hZC1yZWFzb25zIGxpe2xpc3Qtc3R5bGU6ZGlzYztsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGU7bWFyZ2luLWxlZnQ6MjBweH0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLW1lc3NhZ2VzLC55dHAtYWQtaW5mby1kaWFsb2ctZmVlZGJhY2stb3B0aW9uc3ttYXJnaW4tbGVmdDo4cHh9bGFiZWwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1yZWFzb24tbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW46OHB4IDB9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jb25maXJtLWNvbnRhaW5lciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWNvbnRhaW5lciwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tY29udGFpbmVye21hcmdpbi10b3A6OHB4O3RleHQtYWxpZ246cmlnaHR9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jYW5jZWwtYnV0dG9uLC55dHAtYWQtY29uZmlybS1kaWFsb2ctY29uZmlybS1idXR0b24sLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2FuY2VsLWJ1dHRvbiwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWJ1dHRvbiwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tYnV0dG9ue2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7bWFyZ2luOjRweCAwIDAgMTJweDtwYWRkaW5nOjEwcHg7Y29sb3I6IzE2N2FjNjtjdXJzb3I6cG9pbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jYW5jZWwtYnV0dG9uOmhvdmVyLC55dHAtYWQtY29uZmlybS1kaWFsb2ctY29uZmlybS1idXR0b246aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2FuY2VsLWJ1dHRvbjpob3ZlciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWJ1dHRvbjpob3ZlciwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tYnV0dG9uOmhvdmVye2NvbG9yOiMxNjdhYzY7Y3Vyc29yOnBvaW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtYWQtaW5mby1kaWFsb2ctbXV0ZS1jb250YWluZXJ7bWFyZ2luLXRvcDo4cHh9Lnl0cC1hZC1pbmZvLWRpYWxvZy1tdXRlLWJ1dHRvbntmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZn0ueXRwLWFkLWluZm8tZGlhbG9nLW11dGUtYnV0dG9uIC55dHAtYWQtYnV0dG9uLWljb257aGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjVweDt3aWR0aDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy11bmRvLW11dGUtYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tbGVmdDo1cHh9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdW5kby1tdXRlLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi10ZXh0e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbntsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO21hcmdpbi1sZWZ0OjVweDt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLWFkLXZpc2l0LWFkdmVydGlzZXItYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTJweDtyaWdodDotMnB4O3RvcDotN3B4O2JvdHRvbTotOHB4fS55dHAtYWQtdmlzaXQtYWR2ZXJ0aXNlci1idXR0b24gLnl0cC1hZC1idXR0b24tdGV4dHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEycHg7bWFyZ2luOi00cHggM3B4IC0ycHggMDtwYWRkaW5nOjVweCAwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS55dHAtYWQtdmlzaXQtYWR2ZXJ0aXNlci1idXR0b246aG92ZXIgLnl0cC1hZC1idXR0b24tdGV4dHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi1pY29ue2N1cnNvcjpwb2ludGVyOy13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggIzAwMCk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggIzAwMCk7aGVpZ2h0OjEwcHg7b3BhY2l0eTouNzU7d2lkdGg6MTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0ueXRwLWFkLXZpc2l0LWFkdmVydGlzZXItYnV0dG9uOmhvdmVyIC55dHAtYWQtYnV0dG9uLWljb257b3BhY2l0eToxfS55dHAtYmlnLW1vZGUgLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLWJpZy1tb2RlIC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVye2JvdHRvbTo5NXB4fS55dHAtYmlnLW1vZGUgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjE1NnB4fS55dHAtZW1iZWQueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLWVtYmVkLnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXByZXZpZXctY29udGFpbmVyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntib3R0b206MjVweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjg2cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0tdXNlci1zZW50aW1lbnQgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjcwcHh9Lnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciwueXRwLXNldHRpbmdzLXNob3duIC55dHAtYWQtcHJldmlldy1jb250YWluZXIsLnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDo4NTB9Lnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciAueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWFkLW1lc3NhZ2Utb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvdHRvbTowO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6ODUwfS55dHAtYWQtbWVzc2FnZS1zbG90LC55dHAtYWQtcHJldmlldy1zbG90LC55dHAtYWQtc2tpcC1hZC1zbG90e3RleHQtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNzUpO3BvaW50ZXItZXZlbnRzOmF1dG87ei1pbmRleDo4NTB9Lnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lciwueXRwLWFkLXByZXZpZXctY29udGFpbmVyLC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVye2JvdHRvbTo4NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDoxMDAwfS55dHAtZW1iZWQgLnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lciwueXRwLWVtYmVkIC55dHAtYWQtcHJldmlldy1jb250YWluZXIsLnl0cC1lbWJlZCAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntib3R0b206NzhweH0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVye2JvdHRvbTo4NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eToxO3JpZ2h0OjA7ei1pbmRleDoxMDAwfS55dHAtZW1iZWQgLnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lcntib3R0b206NzhweH0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVyLC55dHAtYWQtcHJldmlldy1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCk7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lci1kZXRhY2hlZHttYXJnaW4tcmlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtoZWlnaHQ6MzZweH0ueXRwLWFkLXByZXZpZXctY29udGFpbmVyLWRldGFjaGVkOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouNztwb2ludGVyLWV2ZW50czphdXRvfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyLWRldGFjaGVke21hcmdpbi1yaWdodDoxMnB4O29wYWNpdHk6MX0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVyW2FyaWEtaGlkZGVuPXRydWVdLC55dHAtYWQtcHJldmlldy1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV0sLnl0cC1hZC1za2lwLWJ1dHRvbi1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWFkLXByZXZpZXctdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTJweDtoZWlnaHQ6MzBweDtsZXR0ZXItc3BhY2luZzouMXB4O21pbi13aWR0aDo4MnB4O3BhZGRpbmc6MTFweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6YXV0b30ueXRwLWFkLXByZXZpZXctdGV4dC1tb2Rlcm57ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6LjFweDtwYWRkaW5nOjAgOHB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6YXV0b30ueXRwLWFkLW1lc3NhZ2UtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTZweDtoZWlnaHQ6NTJweDtsaW5lLWhlaWdodDo1MnB4O2xldHRlci1zcGFjaW5nOi4xcHg7bWluLXdpZHRoOjgwcHg7cGFkZGluZzowIDIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOnByZTt3aWR0aDphdXRvfS55dHAtYWQtcHJldmlldy1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1hZC1wcmV2aWV3LWltYWdlPi55dHAtYWQtaW1hZ2V7ZGlzcGxheTpibG9jazt3aWR0aDo5MnB4O2hlaWdodDo1MnB4fS55dHAtYWQtcHJldmlldy1pbWFnZS1tb2Rlcm57ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtcHJldmlldy1pbWFnZS1tb2Rlcm4+Lnl0cC1hZC1pbWFnZXtkaXNwbGF5OmJsb2NrO2hlaWdodDozNnB4O3dpZHRoOjY1cHh9LmNvdW50ZG93bi1uZXh0LXRvLXRodW1ibmFpbCAueXRwLWFkLXByZXZpZXctdGV4dHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjA7cGFkZGluZzowIDhweH0uY291bnRkb3duLW5leHQtdG8tdGh1bWJuYWlsIC55dHAtYWQtaW1hZ2V7aGVpZ2h0OjQxcHg7d2lkdGg6NzNweH0ubW9kZXJuLWNvdW50ZG93bi1uZXh0LXRvLXRodW1ibmFpbCAueXRwLWFkLXByZXZpZXctdGV4dC1tb2Rlcm57Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2hlaWdodDphdXRvO21pbi13aWR0aDowO3BhZGRpbmc6MCA4cHh9Lm1vZGVybi1jb3VudGRvd24tbmV4dC10by10aHVtYm5haWwgLnl0cC1hZC1wcmV2aWV3LXRleHQtbW9kZXJuLXBvc3Ryb2xse3BhZGRpbmc6MCAxNHB4fS5tb2Rlcm4tY291bnRkb3duLW5leHQtdG8tdGh1bWJuYWlsIC55dHAtYWQtaW1hZ2V7aGVpZ2h0OjM2cHg7d2lkdGg6NjVweH0ueXRwLWFkLXNraXAtYnV0dG9ue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNyk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC41KTtib3JkZXItcmlnaHQ6MDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtjb2xvcjojZmZmO2RpcmVjdGlvbjpsdHI7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6bm9ybWFsO21pbi13aWR0aDowO3BhZGRpbmc6MTBweCA2cHggOHB4IDEwcHg7d2lkdGg6YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLXNraXAtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOSk7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yaWdodDowfS55dHAtYWQtc2tpcC1idXR0b24taWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46LTE0cHggLTZweCAtMTJweCAtNHB4fS55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNik7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7Y29sb3I6I2ZmZjtkaXJlY3Rpb246bHRyO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDpub3JtYWw7bWluLXdpZHRoOjA7cGFkZGluZzowIDZweCAwIDE2cHg7d2lkdGg6YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjE4cHg7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1za2lwLWJ1dHRvbi1tb2Rlcm46aG92ZXJ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHJnYmEoMjU1LDI1NSwyNTUsLjIpKSx0byhyZ2JhKDI1NSwyNTUsMjU1LC4yKSkpLC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiKDE1LDE1LDE1KSksdG8ocmdiKDE1LDE1LDE1KSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuMikscmdiYSgyNTUsMjU1LDI1NSwuMikpLC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYigxNSwxNSwxNSkscmdiKDE1LDE1LDE1KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuMikscmdiYSgyNTUsMjU1LDI1NSwuMikpLGxpbmVhci1ncmFkaWVudChyZ2IoMTUsMTUsMTUpLHJnYigxNSwxNSwxNSkpfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyIC55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJuOmZvY3Vze2JhY2tncm91bmQ6cmdiKDE1LDE1LDE1KTtvdXRsaW5lOm5vbmU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyIC55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJuOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggIzBmMGYwZjtib3gtc2hhZG93OjAgMCAwIDJweCAjMGYwZjBmO2NvbG9yOiMwZjBmMGZ9Lnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW1vZGVybntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLXNraXAtYnV0dG9uLWljb24tZGVsaGkgLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW1vZGVybiBzdmd7cGFkZGluZzo2cHh9Lnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW13ZWItZGVsaGkgLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLWRlbGhpIC55dHAtYWQtc2tpcC1idXR0b24taWNvbi1tb2Rlcm4gc3Zne2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7cGFkZGluZzo0cHh9Lnl0cC1hZC1za2lwLWJ1dHRvbi1tb2Rlcm46Zm9jdXMtdmlzaWJsZSAueXRwLWFkLXNraXAtYnV0dG9uLWljb24tbW9kZXJuIHN2ZyBwYXRoe2ZpbGw6IzBmMGYwZn0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtb3ZlcmxheS1zbG90e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3dpZHRoOjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6ODUwfS55dHAtZW1iZWQuaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtb3ZlcmxheS1zbG90e2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLnl0cC1hZC1vdmVybGF5LXNsb3R7Ym90dG9tOjcwcHh9Lnl0cC1hdXRvaGlkZS55dHAtYWQtb3ZlcmxheS1jbG9zZWQgLnl0cC1hZC1vdmVybGF5LXNsb3R7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtb3ZlcmxheS1jb250YWluZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0cC1hZC1vdmVybGF5LWNvbnRhaW5lciAueXRwLWFkLWVuaGFuY2VkLW92ZXJsYXksLnl0cC1hZC1vdmVybGF5LWNvbnRhaW5lciAueXRwLWFkLW92ZXJsYXktaW1hZ2UgaW1nLC55dHAtYWQtb3ZlcmxheS1jb250YWluZXIgLnl0cC1hZC10ZXh0LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1hZC10ZXh0LW92ZXJsYXl7aGVpZ2h0OjYzcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjYpO21pbi13aWR0aDozMjBweDttYXJnaW46YXV0bzttYXgtd2lkdGg6NDQwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fS55dHAtYWQtdGV4dC1vdmVybGF5OmhvdmVye2JvcmRlcjoxcHggc29saWQgcmdiKDU4LDU4LDU4KX0ueXRwLWFkLW92ZXJsYXktdGl0bGV7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6I2ZmZjtkaXNwbGF5OmJsb2NrO2ZvbnQ6NzAwIDE0cHggYXJpYWwsc2Fucy1zZXJpZjttYXJnaW46N3B4IDIycHggMCAwO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWJvdHRvbTo0cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgLTFweCAwO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLXRleHQtb3ZlcmxheTpob3ZlciAueXRwLWFkLW92ZXJsYXktdGl0bGV7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWFkLW92ZXJsYXktZGVzY3tjb2xvcjojZmZmO2ZvbnQ6MTJweCBhcmlhbCxzYW5zLXNlcmlmO21hcmdpbi1ib3R0b206MnB4O21hcmdpbi10b3A6LTNweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1hZC1pbWFnZS1vdmVybGF5e21pbi13aWR0aDozMjBweDttYXJnaW46YXV0bztwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLW92ZXJsYXktaW1hZ2V7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9ja30ueXRwLWFkLWltYWdlLW92ZXJsYXk6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWFkLW92ZXJsYXktbGlua3tjdXJzb3I6cG9pbnRlcjtib3R0b206OXB4O2NvbG9yOiNlYWRlOTA7Zm9udDoxMXB4IGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246c3RhdGljO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93OnJnYigwLDAsMCkgMCAtMXB4IDB9Lnl0cC1hZC1vdmVybGF5LWxpbmsueXRwLWFkLW92ZXJsYXktbGluay1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1hZC1vdmVybGF5LWFkLWluZm8tYnV0dG9uLWNvbnRhaW5lcntjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2hlaWdodDoxNXB4O3BhZGRpbmc6NnB4IDFweCAxMHB4IDIwcHg7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMXB4O3RvcDowO3dpZHRoOjE1cHh9Lnl0cC1hZC1vdmVybGF5LWFkLWluZm8tYnV0dG9uLWNvbnRhaW5lciAueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b257aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDttYXJnaW46MDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ueXRwLWFkLW92ZXJsYXktYWQtaW5mby1idXR0b24tY29udGFpbmVyIC55dHAtYWQtaG92ZXItdGV4dC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjYpO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6MX0ueXRwLWFkLW92ZXJsYXktYWQtaW5mby1idXR0b24tY29udGFpbmVyIC55dHAtYWQtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2ZpbGwtb3BhY2l0eTouODtoZWlnaHQ6aW5oZXJpdDtvcGFjaXR5Oi45O3dpZHRoOmluaGVyaXQ7LXdlYmtpdC1maWx0ZXI6bm9uZTtmaWx0ZXI6bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7dmVydGljYWwtYWxpZ246dG9wfS55dHAtYWQtb3ZlcmxheS1jbG9zZS1jb250YWluZXJ7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjE1cHg7bWFyZ2luOjA7cGFkZGluZzo2cHggNnB4IDEwcHggMXB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MTVweH0ueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9ue2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDtmaWxsLW9wYWNpdHk6Ljg7ZmxvYXQ6cmlnaHQ7aGVpZ2h0OmluaGVyaXQ7b3BhY2l0eTouOTt3aWR0aDppbmhlcml0fS55dHAtYWQtdGV4dC1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXIgLnl0cC1hZC1idXR0b24gc3ZnLC55dHAtYWQtdGV4dC1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1jbG9zZS1idXR0b24gc3Zne2JhY2tncm91bmQ6IzAwMDtmaWxsOiNmZmZ9Lnl0cC1hZC1pbWFnZS1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXIgLnl0cC1hZC1idXR0b24gc3ZnLC55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9uIHN2Z3tiYWNrZ3JvdW5kOiNmZmY7ZmlsbDojNzU3NTc1fS55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9uIHBhdGh7ZmlsbDppbmhlcml0fS55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXI6aG92ZXIgLnl0cC1hZC1idXR0b24sLnl0cC1hZC1vdmVybGF5LWNsb3NlLWNvbnRhaW5lcjpob3ZlciAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9ue2ZpbGwtb3BhY2l0eToxfS55dHAtYWQtb3ZlcmxheS1hdHRyaWJ1dGlvbntib3R0b206OHB4O2NvbG9yOiM4ODg7Y3Vyc29yOnBvaW50ZXI7Zm9udDoxMXB4IGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MXB4O3BhZGRpbmc6NHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtb3ZlcmxheS1hdHRyaWJ1dGlvbjpob3Zlcntjb2xvcjojZmZmOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktYXR0cmlidXRpb257Y29sb3I6aW5oZXJpdDt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgMCA4cHgscmdiYSgwLDAsMCwuOSkgMCAwIDRweH0ueXRwLWFkLW92ZXJsYXktdGV4dC1pbWFnZXtmbG9hdDpsZWZ0fS55dHAtYWQtb3ZlcmxheS10ZXh0LWltYWdlIGltZ3std2Via2l0LWJveC1zaGFkb3c6MCAzcHggNXB4IHJnYmEoMCwwLDAsLjQ5ODAzOSk7Ym94LXNoYWRvdzowIDNweCA1cHggcmdiYSgwLDAsMCwuNDk4MDM5KTtoZWlnaHQ6NTdweDttYXJnaW46MnB4IDEwcHggMCAwO3dpZHRoOmF1dG87bWluLXdpZHRoOjU3cHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFse2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kOndoaXRlO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6NjR9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWJhY2tncm91bmQtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo2NTtib3JkZXI6bm9uZX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7LW1vei1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmJsb2NrfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1zbG90e3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt6LWluZGV4OjY1fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2Rpc3BsYXk6YmxvY2s7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTE0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3RvcDo1MCU7d2lkdGg6MjgwcHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJke21hcmdpbi1sZWZ0Oi05MHB4O3dpZHRoOjE4MHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWNhcmQtdW5pZmllZHttYXJnaW4tbGVmdDotMjE1cHg7d2lkdGg6NDMwcHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtY2FyZC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkLXVuaWZpZWR7bWFyZ2luLWxlZnQ6MDtsZWZ0OjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjI0NXB4O3BhZGRpbmc6MCAwIDAgMTZweDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtY29udGFpbmVye2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWhlYWRsaW5lLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1oZWFkbGluZS1jb250YWluZXItdW5pZmllZHt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjI4cHggMCAxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWhlYWRsaW5lLWNvbnRhaW5lci11bmlmaWVke3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDttYXJnaW46MCBhdXRvIDAgMDtwYWRkaW5nOjEwcHggMH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmV7Y29sb3I6IzMzMztkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MjBweDttYXgtaGVpZ2h0OjIuMmVtO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLXRvcDoxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmV7Zm9udC1zaXplOjE2cHg7bWF4LWhlaWdodDoyLjJlbTtwYWRkaW5nLXRvcDo4cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1oZWFkbGluZXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo0cHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWNvbnRhaW5lcntjdXJzb3I6cG9pbnRlcjtwb2ludGVyLWV2ZW50czphdXRvO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtZGVzY3JpcHRpb24tY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWNvbnRhaW5lci11bmlmaWVke3doaXRlLXNwYWNlOm5vcm1hbDt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjZweCAwIDIycHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1kZXNjcmlwdGlvbi1jb250YWluZXIueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtZGVzY3JpcHRpb24tY29udGFpbmVyLXVuaWZpZWR7ZGlzcGxheTpub25lfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1kZXNjcmlwdGlvbntjb2xvcjojNzY3Njc2O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjUwMDttYXgtaGVpZ2h0OjEuMWVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206MTBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctYm90dG9tOjhweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9ue3BhZGRpbmctYm90dG9tOjB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci11bmlmaWVke3BhZGRpbmc6NnB4IDB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiMxNjdhYzY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIzcHg7aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweDttaW4td2lkdGg6MTY0cHg7cGFkZGluZzowIDIwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9ue2ZvbnQtc2l6ZToxNXB4O2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7bWluLXdpZHRoOjEyMHB4fS55dHAtYWRzLXRpbnktbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbntoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O21pbi13aWR0aDowfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tcm91bmRlZHtib3JkZXItcmFkaXVzOjI4cHg7aGVpZ2h0OjU2cHg7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjI4cHg7cGFkZGluZzowIDI0cHg7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXJvdW5kZWR7Zm9udC1zaXplOjE1cHg7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtib3JkZXItcmFkaXVzOjE4cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tcm91bmRlZHtoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVye2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjpub25lO2hlaWdodDoxMjhweDt3aWR0aDoxMjhweH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2V7cG9pbnRlci1ldmVudHM6YXV0bzttYXgtd2lkdGg6MTAwJX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLXVuaWZpZWR7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXJ7aGVpZ2h0OjYwcHg7d2lkdGg6NjBweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lcntoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXIueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVyLXVuaWZpZWR7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lci11bmlmaWVke21hcmdpbi1sZWZ0Oi02cHg7cGFkZGluZzo2cHg7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXItdW5pZmllZHtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1iYWNrZ3JvdW5kLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1iYWNrZ3JvdW5kLWNvbnRhaW5lci11bmlmaWVkey13ZWJraXQtZmlsdGVyOmJsdXIoNzBweCk7ZmlsdGVyOmJsdXIoNzBweCl9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLXNsb3QueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtc2xvdC1kYXJrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDUwLDUwLDUwLC44KX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtc2xvdC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1zbG90LXVuaWZpZWR7aW5zZXQ6MDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDUwJSxyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44KSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtbGlnaHR7Y29sb3I6I2ZmZn0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDozNHB4O21heC1oZWlnaHQ6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy10b3A6MDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6bm9uZTtwYWRkaW5nLXRvcDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoxfS55dHAtYWRzLXRpbnktbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtmb250LXNpemU6MTZweDtwYWRkaW5nLXRvcDoxMnB4O3BhZGRpbmctYm90dG9tOjB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWxpZ2h0e2NvbG9yOiNmZmZ9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLXVuaWZpZWR7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWRhcmt7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjIsMTY2LDI1NSk7Y29sb3I6cmdiKDE1LDE1LDE1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjIwcHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi1tb25vLWRhcmt7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2NvbG9yOnJnYigxNSwxNSwxNSk7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToyMHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tbW9iaWxlLWNvbXBhbmlvbi1zaXple21pbi13aWR0aDowO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6MCAxNnB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tdW5pZmllZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYig2MiwxNjYsMjU1KTtib3JkZXItcmFkaXVzOjE4cHg7Y29sb3I6cmdiKDE1LDE1LDE1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MThweDttaW4td2lkdGg6MDttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi02cHggMDtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXVuaWZpZWQgLnl0cC1hZC1idXR0b24tdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVke2JhY2tncm91bmQtY29sb3I6cmdiKDYyLDE2NiwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoxNTBweDtwYWRkaW5nOjAgMTZweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVke2hlaWdodDoyMnB4O2xpbmUtaGVpZ2h0OjEycHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoyMDBweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXVuaWZpZWQtbW9ubzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDotNnB4IDA7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm8gLnl0cC1hZC1idXR0b24tdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoxNTBweDtwYWRkaW5nOjAgMTZweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97aGVpZ2h0OjIycHg7bGluZS1oZWlnaHQ6MTJweH0ueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVye2JvdHRvbTo0cHg7ZGlzcGxheTpibG9jaztsZWZ0OjZweDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjY1fS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1jb250YWluZXIueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVyLXVwcGVyLXJpZ2h0e2JvdHRvbTphdXRvO2xlZnQ6YXV0bzt0b3A6NHB4O3JpZ2h0OjZweH1zdmcueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd257YmFja2dyb3VuZDpub25lO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoyMHB4O29wYWNpdHk6LjQ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7d2lkdGg6MjBweH1jaXJjbGUueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tYmFja2dyb3VuZHtmaWxsOm5vbmU7c3Ryb2tlOm5vbmV9Y2lyY2xlLnl0cC1hZC10aW1lZC1waWUtY291bnRkb3duLWlubmVye2ZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MTBweH1jaXJjbGUueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tb3V0ZXJ7ZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDoxfWNpcmNsZS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1pbm5lci55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1pbm5lci1saWdodHtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfWNpcmNsZS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1vdXRlci55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1vdXRlci1saWdodHtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfS55dHAtYWQtc3VydmV5e3dpZHRoOmF1dG87aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtwYWRkaW5nOjAgMzJweDttYXJnaW46MDtsaW5lLWhlaWdodDpub3JtYWw7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS55dHAtYWQtc3VydmV5LnJlbGF0aXZlLXBvc2l0aW9uaW5nLXN1cnZleXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojg1MH0ueXRwLWFkLXN1cnZleS1xdWVzdGlvbnN7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1mbGV4LWdyb3c6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MCBhdXRvO2hlaWdodDoxMDAlfS55dHAtYWQtc3VydmV5LXF1ZXN0aW9ue2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO3BhZGRpbmctdG9wOjA7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWZ9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcG9zaXRpb246NTAlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjF9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tZm9yZWdyb3VuZHt6LWluZGV4OjJ9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tdGV4dHtjb2xvcjojMTMxMzEzO2ZvbnQtc2l6ZToyMHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDozMDJweDttYXJnaW4tcmlnaHQ6NDhweDtsaW5lLWhlaWdodDoyOHB4fS55dHAtYWQtc3VydmV5LWFuc3dlcnN7cmlnaHQ6MDt0b3A6MzVweDt3aWR0aDozMDhweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zley13ZWJraXQtZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCV9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmV7Zm9udC1zaXplOjEzLjdweDtoZWlnaHQ6MzVweDtwYWRkaW5nLXRvcDo0JX0ueXRwLWFkLXN1cnZleS1hbnN3ZXJzIC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zle3BhZGRpbmctdG9wOjA7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257d2lkdGg6MjBweDtoZWlnaHQ6MjBweDstd2Via2l0LWZsZXg6MCAwIDIwcHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDIwcHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0cC1hZC10b2dnbGUtYnV0dG9uLWlucHV0e2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoyOHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLWJ1dHRvbjpob3ZlciwueXRwLWFkLXN1cnZleS1hbnN3ZXItdG9nZ2xlLWJ1dHRvbjpob3Zlcntmb250LXdlaWdodDo1MDB9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLWJ1dHRvbnttYXJnaW4tbGVmdDoyNHB4fS55dHAtYWQtc3VydmV5LWFuc3dlciAueXRwLWFkLXRvZ2dsZS1idXR0b24tdG9nZ2xlZHtmb250LXdlaWdodDo1MDB9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLXVudG9nZ2xlZC1pY29uIHN2ZyBwYXRoOmZpcnN0LW9mLXR5cGV7ZmlsbDojNjA2MDYwfS55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9uIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b2dnbGVkLWljb24gc3ZnIHBhdGg6bGFzdC1vZi10eXBle2ZpbGw6IzA0NWVkZH0ueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyfS55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LXN1Ym1pdHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTJweDtyaWdodDowO2hlaWdodDo1MnB4O3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntiYWNrZ3JvdW5kOiMxYjdmY2M7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEzLjdweDtoZWlnaHQ6MzVweDttYXJnaW4tcmlnaHQ6NnB4O3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6NTZweH0ueXRwLWFkLXN1cnZleS1zdWJtaXQtYnV0dG9uLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbi1yb3VuZGVke2JhY2tncm91bmQ6IzA2NWZkNDtib3JkZXItcmFkaXVzOjE4cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDozNnB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH0ueXRwLWFkLXBsYXllci1vdmVybGF5LC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LC55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLXBsYXllci1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym90dG9tOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1za2lwLW9yLXByZXZpZXcsLnl0cC1hZC1zdXJ2ZXktcGxheWVyLW92ZXJsYXktc2tpcC1vci1wcmV2aWV3e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cmlnaHQ6MH0ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWx7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtvcGFjaXR5OjE7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTt6LWluZGV4OjUwMDA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC41cyBlYXNlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1jb250ZW50c3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbCAueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtY29udGVudHN7aGVpZ2h0OmF1dG99Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLXRleHR7bWFyZ2luLWxlZnQ6MzJweDttYXJnaW4tdG9wOjI1cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToyNHB4O2NvbG9yOiMxMzEzMTM7d2lkdGg6MjcycHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ297YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTstbW96LWJhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2hlaWdodDoyNXB4O21hcmdpbi1sZWZ0OjMycHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTA1cHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ28taW1hZ2V7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjA7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0O2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE0cHg7bWluLXdpZHRoOjE2MXB4O3BhZGRpbmc6MTBweDttYXJnaW4tbGVmdDozMnB4O21hcmdpbi10b3A6MjVweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ym9yZGVyOjB9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi1yb3VuZGVke2JhY2tncm91bmQtY29sb3I6IzA2NWZkNDtib3JkZXItcmFkaXVzOjE4cHg7aGVpZ2h0OjM2cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO21pbi13aWR0aDowO3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweDt0ZXh0LXRyYW5zZm9ybTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjU2cHgpey55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1sb2dve21hcmdpbi1sZWZ0OjQ4cHg7bWFyZ2luLXRvcDoxNXB4fS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC10ZXh0e2ZvbnQtc2l6ZToyMHB4O21hcmdpbi1sZWZ0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257Zm9udC1zaXplOjE4cHg7bWFyZ2luLWxlZnQ6NDhweH0ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXJvdW5kZWR7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWxlZnQ6NDhweH0ueXRwLWFkLXN1cnZleXtwYWRkaW5nOjAgMzJweDt3aWR0aDphdXRvfS55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLXRleHR7Zm9udC1zaXplOjIwcHg7bWFyZ2luLXJpZ2h0OjMycHg7bGluZS1oZWlnaHQ6MjhweDt3aWR0aDphdXRvfS55dHAtYWQtc3VydmV5LWFuc3dlcnN7dG9wOjI0cHg7d2lkdGg6YXV0b30ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmUsLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntoZWlnaHQ6MjJweDtmb250LXNpemU6MTBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjI4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDstd2Via2l0LWZsZXg6MCAwIDIwcHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDIwcHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VycyAueXRwLWFkLXN1cnZleS1ub25lLW9mLXRoZS1hYm92ZXtoZWlnaHQ6NDhweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1zdWJtaXR7Ym90dG9tOjB9Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbnttYXJnaW4tcmlnaHQ6NHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6NDBweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS11c2VyLXNlbnRpbWVudHtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXByZXZpZXctY29udGFpbmVye2JvdHRvbTo0MHB4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEyOTRweCkgYW5kIChtaW4taGVpZ2h0OjYzMHB4KXsueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbiwueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtbG9nbywueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtdGV4dHttYXJnaW4tbGVmdDo2NHB4fS55dHAtYWQtc3VydmV5e3dpZHRoOmF1dG87cGFkZGluZzowIDYwcHh9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tdGV4dHtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbi1yaWdodDo0OHB4O3dpZHRoOjM1NHB4fS55dHAtYWQtc3VydmV5LWFuc3dlcnN7dG9wOjM4cHg7d2lkdGg6MzkwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2Vye2hlaWdodDo2MHB4fS55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3ZlLC55dHAtYWQtc3VydmV5LXN1Ym1pdC1idXR0b257aGVpZ2h0OjQ0cHg7Zm9udC1zaXplOjE4LjJweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjMycHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257aGVpZ2h0OjMycHg7d2lkdGg6MzJweDstd2Via2l0LWZsZXg6MCAwIDMycHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDMycHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VycyAueXRwLWFkLXN1cnZleS1ub25lLW9mLXRoZS1hYm92ZXtoZWlnaHQ6NjBweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1zdWJtaXR7Ym90dG9tOjI1cHh9Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbnttYXJnaW4tcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6NzBweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxNzIwcHgpIGFuZCAobWluLWhlaWdodDo5ODBweCl7Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24sLnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ28sLnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLXRleHR7bWFyZ2luLWxlZnQ6OTZweH0ueXRwLWFkLXN1cnZleXt3aWR0aDoxMDAlO3BhZGRpbmc6MH0ueXRwLWFkLXN1cnZleS1xdWVzdGlvbi10ZXh0e2ZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjQzcHg7bWFyZ2luLXJpZ2h0OjgwcHg7d2lkdGg6NDUwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2Vyc3t0b3A6NTdweDt3aWR0aDo1MDBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0Ojc2cHh9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmUsLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntoZWlnaHQ6NjdweDtmb250LXNpemU6MjcuNHB4fS55dHAtYWQtc3VydmV5LWFuc3dlci1idXR0b24sLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b257Zm9udC1zaXplOjMycHg7bGluZS1oZWlnaHQ6NDNweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItdG9nZ2xlLWJ1dHRvbiAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntoZWlnaHQ6MzJweDt3aWR0aDozMnB4Oy13ZWJraXQtZmxleDowIDAgMzJweDstd2Via2l0LWJveC1mbGV4OjA7ZmxleDowIDAgMzJweDttYXJnaW4tcmlnaHQ6MjBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJzIC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zle2hlaWdodDo3NnB4fS55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LXN1Ym1pdHtib3R0b206NDVweH0ueXRwLWFkLXN1cnZleS1zdWJtaXQtYnV0dG9ue21hcmdpbi1yaWdodDoxMnB4O3BhZGRpbmctbGVmdDoyMHB4O3BhZGRpbmctcmlnaHQ6MTEwcHh9fS55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXRvZ2dsZS1idXR0b246aG92ZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uLXRvb2x0aXB7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowfS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjcpO2JvdHRvbToxNDdweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDo4NTB9Lnl0cC1lbWJlZCAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lcntib3R0b206MTM5cHh9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LXNlbGVjdGVkey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtiYWNrZ3JvdW5kOiM0NzgwZWV9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1kaXNsaWtlLWJ1dHRvbiwueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWxpa2UtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjJweDtvcGFjaXR5Oi44O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyMnB4fS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi1sYWJlbHtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWxpa2UtYnV0dG9uIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi1sYWJlbHtwYWRkaW5nOjEycHggMTBweCAxMnB4IDIwcHh9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1kaXNsaWtlLWJ1dHRvbiAueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7cGFkZGluZzoxMnB4IDIwcHggMTJweCAxMHB4fS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbjpob3ZlciAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntvcGFjaXR5OjF9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uLnl0cC1hZC10b2dnbGUtYnV0dG9uLXRvZ2dsZWQgLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257b3BhY2l0eToxfS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2JhY2tncm91bmQ6cmdiYSgzMSwzMSwzMSwuNSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46OXB4IDA7cGFkZGluZzo4cHggMTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uOmhvdmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2JvdHRvbTo0NnB4O3JpZ2h0OjIwcHh9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS10b3AtYmFyLWdyYWRpZW50c3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLC43NSkgNDAlLHJnYmEoMCwwLDAsMCkgOTklKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoNDAlLHJnYmEoMCwwLDAsLjc1KSksY29sb3Itc3RvcCg5OSUscmdiYSgwLDAsMCwwKSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC43NSkgNDAlLHJnYmEoMCwwLDAsMCkgOTklKTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItYm90dG9tOm5vbmU7aGVpZ2h0OjQwcHg7d2lkdGg6MTAwJTtvcGFjaXR5Oi44O3RvcDowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbjpiZWZvcmV7Y29udGVudDpub25lfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbnttYXJnaW46YXV0byAxMXB4IGF1dG8gYXV0bztwb2ludGVyLWV2ZW50czphdXRvO3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi10ZXh0e2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luOmF1dG8gMDtwYWRkaW5nOjAgNHB4IDVweDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO3RleHQtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsLjc1KTtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXBsYXllci1vdmVybGF5LXRvcC1iYXItZ3JhZGllbnRzIC55dHAtdmlkZW8tYWQtdG9wLWJhci10aXRsZXstd2Via2l0LWZsZXg6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleDoxO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsLjc1KTt0ZXh0LWRlY29yYXRpb246bm9uZTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDttYXgtd2lkdGg6NTAlO2hlaWdodDoxNnB4O2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MTBweCA1cHggNXB4IDEwcHg7ei1pbmRleDo4NTA7b3BhY2l0eTouOX0ueXRwLWFkLWNsaWNrYWJsZS1lbGVtZW50OmhvdmVye2N1cnNvcjpwb2ludGVyfS55dHAtYWQtdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEzMXB4O2xlZnQ6MDtoZWlnaHQ6Y2FsYygxMDAlIC0gMjYycHgpO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS55dHAtYmlnLW1vZGUgLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMjgwcHgpO3RvcDoxNDBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMjIycHgpO3RvcDoxMTFweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMTUwcHgpO3RvcDo3NXB4fS55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXVuZGVybGF5e2hlaWdodDpjYWxjKDEwMCUgLSAxMjJweCk7dG9wOjYxcHh9Lnl0cC1hZC11bmRlcmxheS1jb21wYW5pb257aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ueXRwLWFkLXVuZGVybGF5LXNpZGUtY29udGFpbmVye2hlaWdodDoxMDAlO21heC1oZWlnaHQ6MTAwJTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjEyNXB4O3BhZGRpbmctYm90dG9tOjEyNXB4fS55dHAtYWQtdW5kZXJsYXktbGVmdC1jb250YWluZXJ7bWFyZ2luLWxlZnQ6MiU7cGFkZGluZy1yaWdodDoyJX0ueXRwLWFkLXVuZGVybGF5LXJpZ2h0LWNvbnRhaW5lcnttYXJnaW4tbGVmdDo1Mi41JX0ueXRwLWFkLXVuZGVybGF5LWltYWdlLWNvbnRhaW5lcntib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEpO2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDo3MnB4O21pbi13aWR0aDo3MnB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1ib3R0b206MTZweDttYXgtd2lkdGg6MTQ0cHg7bWF4LWhlaWdodDoxNDRweDstd2Via2l0LWZsZXgtc2hyaW5rOjI7ZmxleC1zaHJpbms6MjtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLXVuZGVybGF5LWltYWdle3BvaW50ZXItZXZlbnRzOmF1dG87bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NTAlfS55dHAtYWQtdW5kZXJsYXktaGVhZGxpbmUtY29udGFpbmVye3dpZHRoOjEwMCU7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWJvdHRvbTo0OHB4fS55dHAtYWQtdW5kZXJsYXktaGVhZGxpbmV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtc2l6ZToyLjV2dztmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTYwMHB4KXsueXRwLWFkLXVuZGVybGF5LWhlYWRsaW5le2ZvbnQtc2l6ZTo0MHB4fX0ueXRwLWFkLXVuZGVybGF5LWRlc2NyaXB0aW9ue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNzUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BhZGRpbmctYm90dG9tOjQwcHh9Lnl0cC1hZC11bmRlcmxheS1kZXNjcmlwdGlvbi1jb250YWluZXJ7LXdlYmtpdC1mbGV4LXNocmluazoxO2ZsZXgtc2hyaW5rOjF9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLXVuZGVybGF5LWNsaWNrYWJsZXt6LWluZGV4Ojg1MH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwMzAzMDM7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxOHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6MTJweDtoZWlnaHQ6MzZweH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tbWVkaXVte2JvcmRlci1yYWRpdXM6MjRweDtmb250LXNpemU6MThweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHg7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLWxhcmdle2JvcmRlci1yYWRpdXM6MzJweDtmb250LXNpemU6MjJweDtwYWRkaW5nLWxlZnQ6MjRweDtwYWRkaW5nLXJpZ2h0OjI0cHg7aGVpZ2h0OjY0cHh9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U5ZTllOX0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7Y29sb3I6IzAzMDMwMztib3JkZXItcmFkaXVzOjJweH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2NmI4ZmZ9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b246Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoycHggc29saWQgI2ZmZjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZ9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjM2VhNmZmO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzNlYTZmZn0uaHRtbDUtdmlkZW8tY29udGFpbmVyLXRyYW5zaXRpb25pbmd7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIDEuNXMsaGVpZ2h0IDEuNXMsbGVmdCAxLjVzLHRvcCAxLjVzO3RyYW5zaXRpb246d2lkdGggMS41cyxoZWlnaHQgMS41cyxsZWZ0IDEuNXMsdG9wIDEuNXN9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLXRyYW5zaXRpb257ei1pbmRleDotMX0uY29sb3ItY29udHJhc3QtZml4Lnl0cC1hZC1zdXJ2ZXl7YmFja2dyb3VuZC1jb2xvcjpibGFja30uY29sb3ItY29udHJhc3QtZml4IC55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLWJhY2tncm91bmR7b3BhY2l0eTo2MCV9LmNvbG9yLWNvbnRyYXN0LWZpeCAueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC5jb2xvci1jb250cmFzdC1maXggLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24sLmNvbG9yLWNvbnRyYXN0LWZpeCAueXRwLWFkLXN1cnZleS1xdWVzdGlvbi10ZXh0e2NvbG9yOndoaXRlfS5jb2xvci1jb250cmFzdC1maXggLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLXVudG9nZ2xlZC1pY29uIHN2ZyBwYXRoOmZpcnN0LW9mLXR5cGV7ZmlsbDp3aGl0ZX0ueXRwLWFkLWJhZGdle2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWJhZGdlOmFmdGVye2NvbnRlbnQ6IsK3IjtwYWRkaW5nLWlubGluZTo0cHh9Lnl0cC1hZC1iYWRnZV9fcG9kLWluZGV4OmJlZm9yZXtjb250ZW50OiLCtyI7cGFkZGluZy1pbmxpbmU6NHB4IDNweH0ueXRwLWFkLWJhZGdlLS1zdGFya3tjb2xvcjojZmZmO29wYWNpdHk6Ljc1O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI4cHh9Lnl0cC1hZC1iYWRnZS0tc3RhcmsgLnl0cC1hZC1iYWRnZV9fdGV4dHtmb250LXdlaWdodDo3MDB9Lnl0cC1hZC1iYWRnZS0tY2xlYW4tcGxheWVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWJhZGdlLS1zdGFyay1jbGVhbi1wbGF5ZXJ7Y29sb3I6I2ZmZjtvcGFjaXR5OjE7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MjhweDt0ZXh0LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjUpO2xldHRlci1zcGFjaW5nOi4zNXB4fS55dHAtYWQtYmFkZ2UtLXN0YXJrLWNsZWFuLXBsYXllciAueXRwLWFkLWJhZGdlX190ZXh0LS1jbGVhbi1wbGF5ZXJ7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMTZweCByZ2JhKDAsMCwwLC41KX0ueXRwLWFkLWJhZGdlLS1zdGFyay1jbGVhbi1wbGF5ZXItaW9ze2xldHRlci1zcGFjaW5nOi4xcHh9Lnl0cC1hZC1ncmlkLWNhcmQtY29sbGVjdGlvbntkaXNwbGF5OmdyaWQ7Z2FwOjhweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dHttYXgtd2lkdGg6NTAwcHg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjE7LXdlYmtpdC1hbGlnbi1zZWxmOnN0cmV0Y2g7YWxpZ24tc2VsZjpzdHJldGNoOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fYnV0dG9ue21hcmdpbjoxMnB4IDE2cHggMTJweCAxMnB4fS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MTttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi10b3A6MTJweDttYXJnaW4tYm90dG9tOjEycHg7bWluLXdpZHRoOjB9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2hlYWRsaW5le2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDoxLjhyZW07LXdlYmtpdC1saW5lLWNsYW1wOjE7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2Rlc2NyaXB0aW9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhX19kZXNjcmlwdGlvbiA6Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjFweDt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnR9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2Rlc2NyaXB0aW9uIDpub3QoOmZpcnN0LWNoaWxkKXstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxfS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhX19kZXNjcmlwdGlvbl9fbGluZXtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0ueXRwLWFkLXBvZC1pbmRleHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTppbmxpbmUtZmxleDtsZWZ0OjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1hZC1wb2QtaW5kZXg6YmVmb3Jle2NvbnRlbnQ6IuKAoiI7cGFkZGluZy1pbmxpbmU6NHB4IDNweH0ueXRwLWFkLXBvZC1pbmRleC0tc3Rhcmt7Y29sb3I6I2ZmZjtvcGFjaXR5OjE7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjI4cHg7dGV4dC1zaGFkb3c6MCAwIDE2cHggcmdiYSgwLDAsMCwuNSk7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWFkLXBvZC1pbmRleC0tbXdlYntmb250LXdlaWdodDo2MDB9Lnl0cC1hZC1wb2QtaW5kZXgtLW13ZWItaW9ze2xldHRlci1zcGFjaW5nOi0uMnB4fS55dHAtYXV0b2hpZGUgLnl0cC1hZC1wb2QtaW5kZXgtLWF1dG9oaWRle2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9Lnl0cC1hZC1idXR0b24tdm17ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7Zm9udC13ZWlnaHQ6NTAwO2JvcmRlcjpub25lOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtYWQtYnV0dG9uLXZtX190ZXh0e3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWFkLWJ1dHRvbi12bV9faWNvbnstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0e2hlaWdodDozMnB4O2xpbmUtaGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MCAxMnB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWNvbXBhY3QgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0IC55dHAtYWQtYnV0dG9uLXZtX19pY29uLS10cmFpbGluZ3std2Via2l0LW1hcmdpbi1zdGFydDo0cHg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7LXdlYmtpdC1tYXJnaW4tZW5kOi00cHg7bWFyZ2luLWlubGluZS1lbmQ6LTRweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0IC55dHAtYWQtYnV0dG9uLXZtX19pY29uLS1sZWFkaW5ney13ZWJraXQtbWFyZ2luLXN0YXJ0Oi00cHg7bWFyZ2luLWlubGluZS1zdGFydDotNHB4Oy13ZWJraXQtbWFyZ2luLWVuZDo0cHg7bWFyZ2luLWlubGluZS1lbmQ6NHB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHR7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjE4cHg7Zm9udC1zaXplOjE0cHg7cGFkZGluZzowIDE2cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtZGVmYXVsdCAueXRwLWFkLWJ1dHRvbi12bV9faWNvbntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHQgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLXRyYWlsaW5ney13ZWJraXQtbWFyZ2luLXN0YXJ0OjZweDttYXJnaW4taW5saW5lLXN0YXJ0OjZweDstd2Via2l0LW1hcmdpbi1lbmQ6LTZweDttYXJnaW4taW5saW5lLWVuZDotNnB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHQgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLWxlYWRpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6LTZweDttYXJnaW4taW5saW5lLXN0YXJ0Oi02cHg7LXdlYmtpdC1tYXJnaW4tZW5kOjZweDttYXJnaW4taW5saW5lLWVuZDo2cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2V7aGVpZ2h0OjQ4cHg7bGluZS1oZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjI0cHg7Zm9udC1zaXplOjE4cHg7cGFkZGluZzowIDI0cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2UgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1sYXJnZSAueXRwLWFkLWJ1dHRvbi12bV9faWNvbi0tdHJhaWxpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6OHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4Oy13ZWJraXQtbWFyZ2luLWVuZDotOHB4O21hcmdpbi1pbmxpbmUtZW5kOi04cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2UgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLWxlYWRpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6LThweDttYXJnaW4taW5saW5lLXN0YXJ0Oi04cHg7LXdlYmtpdC1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLXRyYW5zcGFyZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtdHJhbnNwYXJlbnQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yKX0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtZmlsbGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDU1NmJmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQtd2hpdGV7Y29sb3I6IzBmMGYwZjtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjF9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLWZpbGxlZC13aGl0ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOWQ5ZDl9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLWZpbGxlZC13aGl0ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDlkOWQ5fS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7Y29sb3I6cmdiKDE1LDE1LDE1KX0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtZmlsbGVkLWRhcms6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNjViOGZmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1tb25vLWZpbGxlZHtjb2xvcjojZjFmMWYxO2JhY2tncm91bmQtY29sb3I6IzBmMGYwZn0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtbW9uby1maWxsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojM2YzZjNmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1tb25vLWZpbGxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2YzZjNmfS55dHAtYWQtYnV0dG9uLXZtLS1pY29uLW9ubHl7cGFkZGluZzowfS55dHAtYWQtYnV0dG9uLXZtLS1pY29uLW9ubHkgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtwYWRkaW5nOjAgNnB4fS55dHAtYWQtZGlzY2xvc3VyZS1iYW5uZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjZmJjMDJkO2JvcmRlci1yYWRpdXM6NHB4O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO21heC13aWR0aDozMTJweDtwYWRkaW5nOjhweH0ueXRwLWFkLWRpc2Nsb3N1cmUtYmFubmVyX190ZXh0e2JhY2tncm91bmQ6bm9uZTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxZW07cGFkZGluZzo4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtZGlzY2xvc3VyZS1iYW5uZXJfX2NoZXZyb257LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWFkLW5vdGlmaWNhdGlvbi1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC40KTtib3R0b206ODZweDtjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNnB4O2hlaWdodDo1MnB4O2xpbmUtaGVpZ2h0OjUycHg7bWluLXdpZHRoOjgwcHg7b3BhY2l0eToxO3BhZGRpbmc6MCAyMHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3otaW5kZXg6NDV9Lnl0cC1lbWJlZCAueXRwLWFkLW5vdGlmaWNhdGlvbi1jb250YWluZXJ7Ym90dG9tOjc4cHh9Lnl0cC1hZC1ub3RpZmljYXRpb24tY29udGFpbmVyW2FyaWEtaGlkZGVuPXRydWVdey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO29wYWNpdHk6MH0ueXRwLWJpZy1tb2RlIC55dHAtYWQtbm90aWZpY2F0aW9uLWNvbnRhaW5lcntib3R0b206OTVweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1ub3RpZmljYXRpb24tY29udGFpbmVye2JvdHRvbToyNXB4fS55dHAtcHJldmlldy1hZHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIycHg7Ym90dG9tOjk1cHg7ei1pbmRleDoxMDAwOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtcHJldmlldy1hZFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcHJldmlldy1hZF9fdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzouMXB4O3BhZGRpbmc6MCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOnByZTt3aWR0aDphdXRvfS55dHAtcHJldmlldy1hZF9fdGV4dC0tZm9udC0tc21hbGx7Zm9udC1zaXplOjEycHg7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjB9Lnl0cC1wcmV2aWV3LWFkX190ZXh0LS1wYWRkaW5nLS13aWRle3BhZGRpbmc6MCAxNHB4fS55dHAtcHJldmlldy1hZF9faW1hZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjY1cHg7aGVpZ2h0OjM2cHg7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS55dHAtYmlnLW1vZGUgLnl0cC1wcmV2aWV3LWFke3JpZ2h0OjQwcHg7Ym90dG9tOjEwNHB4fS55dHAtc21hbGwtbW9kZSAueXRwLXByZXZpZXctYWR7cmlnaHQ6MTJweDtib3R0b206NzVweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1wcmV2aWV3LWFke3JpZ2h0OjE2cHg7Ym90dG9tOjM5cHh9Lnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtcHJldmlldy1hZHtib3R0b206MjVweH0ueXRwLWF1dG9oaWRlIC55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLWF1dG9oaWRle2Rpc3BsYXk6bm9uZX0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRze2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJ7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otanVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy1sZWZ0OjY0cHg7cGFkZGluZy1yaWdodDo2NHB4O21hcmdpbi1sZWZ0OmNhbGMoNjAlICsgMTZweCl9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2hlYWRlcntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otanVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4O21hcmdpbi1ib3R0b206MjRweH0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRzX19jb250ZW50X2NvbnRhaW5lcl9faGVhZGVyX19hZF9hdmF0YXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tcmlnaHQ6MTZweH0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRzX19jb250ZW50X2NvbnRhaW5lcl9faGVhZGVyX19oZWFkbGluZXtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MjRweDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1saW5lLWNsYW1wOjE7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2FkX2J1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjI0cHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTAwcHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2FkX2dyaWRfY2FyZF9jb2xsZWN0aW9ue3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4O292ZXJmbG93OmhpZGRlbiBhdXRvfS55dHAtZGlzcGxheS11bmRlcmxheS10ZXh0LWdyaWQtY2FyZHNfX2NvbnRlbnRfY29udGFpbmVyX19hZF9idXR0b24+YnV0dG9ue3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtZGlzcGxheS11bmRlcmxheS10ZXh0LWdyaWQtY2FyZHMgLnl0cC1hZC1hdmF0YXItLXNpemUtcmVzcG9uc2l2ZXt3aWR0aDo0OHB4O2hlaWdodDo0OHB4fS55dHAtaW1hZ2UtYmFja2dyb3VuZC0tZ3JhZGllbnQtdmVydGljYWx7aW5zZXQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDUwJSxyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44KSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztwYWRkaW5nOjEycHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjk1KTtjdXJzb3I6cG9pbnRlcjttYXgtd2lkdGg6NDAwcHg7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuNXMsbWF4LXdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZC0tbGFyZ2V7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7bWluLXdpZHRoOjIwMHB4fS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1sYXJnZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1pbmFjdGl2ZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7d2lkdGg6MDttYXgtd2lkdGg6MH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fYXZhdGFyX2FuZF90ZXh0X2NvbnRhaW5lci0tbGFyZ2V7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1hbGlnbi1zZWxmOnN0YXJ0O2FsaWduLXNlbGY6c3RhcnR9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2FkX2F2YXRhci0tbGFyZ2V7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fdGV4dF9jb250YWluZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MCAyMHB4IDAgOHB4O21heC13aWR0aDoxOTJweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2hlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7Y29sb3I6IzBmMGYwZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWw7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19oZWFkbGluZS0tbGFyZ2V7Y29sb3I6I2RkZH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb257Y29sb3I6IzYwNjA2MDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24tLWxhcmdle2NvbG9yOiNkZGR9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQgLnl0cC1hZC1idXR0b24tdm17bWF4LXdpZHRoOjE0MHB4fS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19idXR0b24tLWxhcmdle21hcmdpbi10b3A6OHB4O21pbi13aWR0aDoxMDAlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiMwZjBmMGY7YmFja2dyb3VuZC1jb2xvcjojM2VhNmZmfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19idXR0b24tLWxhcmdlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzY1YjhmZn0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJke29wYWNpdHk6Ljg2O3BhZGRpbmc6OHB4O21pbi1oZWlnaHQ6NDBweDttYXgtd2lkdGg6MTkwcHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1sYXJnZSwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQtLWxhcmdle21pbi13aWR0aDphdXRvfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZC0taW5hY3RpdmUsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1pbmFjdGl2ZXt3aWR0aDowO21heC13aWR0aDowfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZCAueXRwLWFkLWJ1dHRvbi12bSwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQgLnl0cC1hZC1idXR0b24tdm17ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9faGVhZGxpbmUsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19oZWFkbGluZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24sLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19kZXNjcmlwdGlvbntmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxNHB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24tLWhpZGRlbi0taW4tLXNtYWxsLS1wbGF5ZXIsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19kZXNjcmlwdGlvbi0taGlkZGVuLS1pbi0tc21hbGwtLXBsYXllcntkaXNwbGF5Om5vbmV9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX190ZXh0X2NvbnRhaW5lciwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX3RleHRfY29udGFpbmVye3BhZGRpbmc6MCA0cHggMCA2cHg7bWF4LXdpZHRoOjE0NnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSk7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2hlYWRsaW5le2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXByaW1hcnksI2ZmZil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2Rlc2NyaXB0aW9ue2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC43KSl9Lnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0zcHg7d2lkdGg6MTAwJTtoZWlnaHQ6M3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMik7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3otaW5kZXg6Mzh9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1wcm9ncmVzcy1iYXIgLnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXIsLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBlcnNpc3RlbnQtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntvcGFjaXR5OjE7Ym90dG9tOjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYWQtcGxheWVyLW92ZXJsYXktcHJvZ3Jlc3MtYmFyIC55dHAtYWQtcGVyc2lzdGVudC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzIyMjtoZWlnaHQ6NHB4fS55dHAtYWQtcGxheWVyLW92ZXJsYXktcHJvZ3Jlc3MtYmFyIC55dHAtYWQtcGVyc2lzdGVudC1wcm9ncmVzcy1iYXItY29udGFpbmVyLS1jbGVhbi1wbGF5ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjIyO2hlaWdodDozcHh9Lnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmMwfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWluaXBsYXllci1hbHRlcm5hdGUtdWkgLnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7bGVmdDoxMnB4O2JvdHRvbToxMnB4fS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym90dG9tOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTo2NXB4O2N1cnNvcjpkZWZhdWx0O2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNzUpO3otaW5kZXg6ODUwOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC1hZC1kdXJhdGlvbi1yZW1haW5pbmd7bWFyZ2luLWxlZnQ6MH0ueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTo5NXB4O2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODUwO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX3NraXAtb3ItcHJldmlldy1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtyaWdodDowO3Bvc2l0aW9uOmFic29sdXRlfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czowO2JvdHRvbTphdXRvO2N1cnNvcjpkZWZhdWx0O2hlaWdodDphdXRvO2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MnB4O3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0IC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7ei1pbmRleDoyN30ueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lcntib3R0b206NzRweDtsZWZ0OjQwcHh9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2xlZnQ6NDBweDtib3R0b206MTA0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtZGlzY2xvc3VyZS1iYW5uZXItY29udGFpbmVye2xlZnQ6NDBweDt0b3A6NjRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2xlZnQ6MTJweDtib3R0b206NDVweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX3BsYXllci1jYXJkLWNvbnRhaW5lcntsZWZ0OjEycHg7Ym90dG9tOjc1cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7bGVmdDoxMnB4O3RvcDoxMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lcntib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAuYWQtc2ltcGxlLWF0dHJpYnV0ZWQtc3RyaW5nLC55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLXBvZC1pbmRleCwueXRwLWRlbGhpLW1vZGVybiAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmtfX3RleHR7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLWJ1dHRvbnstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA1MHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyA1MHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAuYWQtc2ltcGxlLWF0dHJpYnV0ZWQtc3RyaW5nLC55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC1hZC1wb2QtaW5kZXgsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLXZpc2l0LWFkdmVydGlzZXItbGlua19fdGV4dHt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLWJ1dHRvbnstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNTBweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyA1MHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2xlZnQ6MTZweDtib3R0b206OXB4fS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWVudS1zaG93biAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2xlZnQ6MTZweDtib3R0b206MzlweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWRpc2Nsb3N1cmUtYmFubmVyLWNvbnRhaW5lcntsZWZ0OjE2cHg7dG9wOjE2cHh9Lnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVyLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbToxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTo0NXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOjNweHZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpMjRweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc21hbGwtbW9kZS55dHAtYXV0b2hpZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVyLC55dHAtc21hbGwtbW9kZS55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIsLnl0cC1zbWFsbC1tb2RlLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXJ7Ym90dG9tOjdweH0ueXRwLXNtYWxsLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOjM3cHh9Lnl0cC1hZC1hdmF0YXItLXNpemUteHhze3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9Lnl0cC1hZC1hdmF0YXItLXNpemUteHN7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLWFkLWF2YXRhci0tc2l6ZS1ze3dpZHRoOjMycHg7aGVpZ2h0OjMycHh9Lnl0cC1hZC1hdmF0YXItLXNpemUtbXt3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtYWQtYXZhdGFyLS1zaXplLWx7d2lkdGg6NTZweDtoZWlnaHQ6NTZweH0ueXRwLWFkLWF2YXRhci0tc2l6ZS14bHt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtYWQtYXZhdGFyLS1jaXJjdWxhcntib3JkZXItcmFkaXVzOjUwJX0ueXRwLWFkLWF2YXRhci0tcm91bmRlZC1jb3JuZXJ7Ym9yZGVyLXJhZGl1czoyMCV9Lnl0cC1hZC1kZXRhaWxzLWxpbmV7ZGlzcGxheTpibG9ja30ueXRwLWFkLWRldGFpbHMtbGluZV9fdGV4dC0tc3R5bGUtc3RhbmRhcmR7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXR7ei1pbmRleDo2NDtiYWNrZ3JvdW5kOndoaXRlO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3Zlcn0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2JhY2tncm91bmQtaW1hZ2UtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo2NTtib3JkZXI6bm9uZX0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXQgLnl0cC1pbWFnZS1iYWNrZ3JvdW5kLWltYWdle2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2t9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50e3otaW5kZXg6NjU7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjB9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTpibG9jaztsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6NTAlO21hcmdpbi1sZWZ0Oi0yMTVweDt3aWR0aDo0MzBweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2FkLWF2YXRhci1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmUtY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG99Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2hlYWRsaW5le3BhZGRpbmc6MjhweCAwIDEwcHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjhweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MzRweDttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjJ9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2RldGFpbHMtbGluZS1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWw7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG99Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2FkLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo2cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2luc3RyZWFtLWluZm8tY29udGFpbmVye2JvdHRvbTo2cHg7Y3Vyc29yOmRlZmF1bHQ7bGVmdDoxOHB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSk7ei1pbmRleDo4NTA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dCAueXRwLWFkLWJhZGdlOmFmdGVye3BhZGRpbmctcmlnaHQ6dW5zZXR9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYmFkZ2V7bWFyZ2luLWxlZnQ6NXB4fS55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dCAueXRwLWFkLWRldGFpbHMtbGluZXtwYWRkaW5nOjZweCAwIDIycHh9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYnV0dG9uLXZtOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi02cHggMDtjdXJzb3I6cG9pbnRlcn0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX3RpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVye2JvdHRvbTphdXRvO2xlZnQ6YXV0bzt0b3A6NHB4O3JpZ2h0OjZweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NjV9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYXZhdGFyLS1zaXplLXJlc3BvbnNpdmV7d2lkdGg6NjRweDtoZWlnaHQ6NjRweH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXQgLnl0cC1hZC1kZXRhaWxzLWxpbmVfX3RleHQtLXN0eWxlLXJlc3BvbnNpdmV7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLXNtYWxsLW1vZGUgLnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTpibG9jazt0b3A6NTAlO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bGVmdDowO3RleHQtYWxpZ246bGVmdDt3aWR0aDoyNDVweDtwYWRkaW5nOjAgMCAwIDE2cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lnl0cC1zbWFsbC1tb2RlIC55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dF9fY29udGVudF9fbG9ja3VwX19hZC1hdmF0YXItY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjAgYXV0byAwIC02cHg7cGFkZGluZzo2cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6LXdlYmtpdC1tYXgtY29udGVudDt3aWR0aDotbW96LW1heC1jb250ZW50O3dpZHRoOm1heC1jb250ZW50fS55dHAtc21hbGwtbW9kZSAueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmUtY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG8gMCAwfS55dHAtc21hbGwtbW9kZSAueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmV7cGFkZGluZzoxMHB4IDA7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MjRweDttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjF9Lnl0cC1zbWFsbC1tb2RlIC55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dF9fY29udGVudF9fbG9ja3VwX19kZXRhaWxzLWxpbmUtY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLXNtYWxsLW1vZGUgLnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYXZhdGFyLS1zaXplLXJlc3BvbnNpdmV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLXNraXAtYWR7ei1pbmRleDo4NTB9Lnl0cC1za2lwLWFkLWJ1dHRvbntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztib3JkZXI6bm9uZTstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MThweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2NvbG9yOiNmZmY7ZGlyZWN0aW9uOmx0cjttaW4td2lkdGg6MDtwYWRkaW5nOjAgNnB4IDAgMTZweDt3aWR0aDphdXRvO3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIycHg7Ym90dG9tOjk1cHg7ei1pbmRleDoxMDAwOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLXNraXAtYWQtYnV0dG9uW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1za2lwLWFkLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgyNTUsMjU1LDI1NSwuMikpLHRvKHJnYmEoMjU1LDI1NSwyNTUsLjIpKSksLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2IoMTUsMTUsMTUpKSx0byhyZ2IoMTUsMTUsMTUpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LC4yKSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiKDE1LDE1LDE1KSxyZ2IoMTUsMTUsMTUpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LC4yKSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSksbGluZWFyLWdyYWRpZW50KHJnYigxNSwxNSwxNSkscmdiKDE1LDE1LDE1KSl9Lnl0cC1za2lwLWFkLWJ1dHRvbjpmb2N1c3tiYWNrZ3JvdW5kOnJnYigxNSwxNSwxNSk7b3V0bGluZTpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ueXRwLXNraXAtYWQtYnV0dG9uOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggIzBmMGYwZjtib3gtc2hhZG93OjAgMCAwIDJweCAjMGYwZjBmO2NvbG9yOiMwZjBmMGZ9Lnl0cC1za2lwLWFkLWJ1dHRvbjpmb2N1cy12aXNpYmxlIC55dHAtc2tpcC1hZC1idXR0b25fX2ljb24gc3ZnIHBhdGh7ZmlsbDojMGYwZjBmfS55dHAtc2tpcC1hZC1idXR0b25fX3RleHR7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0Om5vcm1hbDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1za2lwLWFkLWJ1dHRvbl9faWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9ue2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9uOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2tpcC1hZC1idXR0b246YWN0aXZlOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyLHJnYmEoMjU1LDI1NSwyNTUsLjIpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1za2lwLWFkLWJ1dHRvbntib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHggKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1za2lwLWFkLWJ1dHRvbiBzdmd7cGFkZGluZzo2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNraXAtYWQtYnV0dG9ue3JpZ2h0OjQwcHg7Ym90dG9tOjEwNHB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9ue2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtc2tpcC1hZC1idXR0b257Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KXZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtc2tpcC1hZC1idXR0b257Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1za2lwLWFkLWJ1dHRvbntyaWdodDoxMnB4O2JvdHRvbTo3NXB4fS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWVudS1zaG93biAueXRwLXNraXAtYWQtYnV0dG9ue3JpZ2h0OjE2cHg7Ym90dG9tOjM5cHh9c3ZnLnl0cC10aW1lZC1waWUtY291bnRkb3due2JhY2tncm91bmQ6bm9uZTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6MjBweDtvcGFjaXR5Oi40Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3dpZHRoOjIwcHh9Y2lyY2xlLnl0cC10aW1lZC1waWUtY291bnRkb3duX19iYWNrZ3JvdW5ke3N0cm9rZTpub25lO2ZpbGw6bm9uZX1jaXJjbGUueXRwLXRpbWVkLXBpZS1jb3VudGRvd25fX2lubmVye2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MTBweDtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfWNpcmNsZS55dHAtdGltZWQtcGllLWNvdW50ZG93bl9fb3V0ZXJ7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZTpyZ2JhKDI1NSwyNTUsMjU1LC43NSl9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmt7Y29sb3I6I2ZmZjtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tbGVmdDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LWFsaWduOmJhc2VsaW5lOy13ZWJraXQtYWxpZ24taXRlbXM6YmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmV9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbms6YmVmb3Jle2NvbnRlbnQ6IiI7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LThweH0ueXRwLXZpc2l0LWFkdmVydGlzZXItbGluazpob3ZlciAueXRwLXZpc2l0LWFkdmVydGlzZXItbGlua19fdGV4dHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmtfX3RleHR7Y29sb3I6I2ZmZjtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE0cHg7b3BhY2l0eToxO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93OjAgMCAxNnB4IHJnYmEoMCwwLDAsLjUpO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS55dHAtaXYtdmlkZW8tY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLWl2LXZpZGVvLWNvbnRlbnQgLnZpZGVvLWFubm90YXRpb25ze2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyMDt3aWR0aDoxMDAlfS5hbm5vdGF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiMwMDA7cGFkZGluZzo1cHg7dGV4dC1hbGlnbjpsZWZ0O3dvcmQtd3JhcDpicmVhay13b3JkO3otaW5kZXg6MDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnZpZGVvLWxlZ2FjeS1hbm5vdGF0aW9ucyAuYW5ub3RhdGlvbntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0uYW5ub3RhdGlvbi1jbG9zZS1idXR0b257LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDtsZWZ0OjA7b3BhY2l0eTouODU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTZweH0uYW5ub3RhdGlvbi1jbG9zZS1idXR0b246aG92ZXJ7b3BhY2l0eToxfS5hbm5vdGF0aW9uLWxpbmstaWNvbnstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtc2l6ZTpjb250YWluO3Bvc2l0aW9uOmFic29sdXRlfS5hbm5vdGF0aW9uLXR5cGUtY3VzdG9te3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uYW5ub3RhdGlvbi10eXBlLWN1c3RvbT5kaXZ7ZmxvYXQ6bGVmdDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufS5pdi1jbGljay10YXJnZXR7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1vdmVybGF5LW9wZW4gLml2LWJyYW5kaW5nLC55dHAtYWQtb3ZlcmxheS1vcGVuIC5pdi1wcm9tb3tkaXNwbGF5Om5vbmV9Lml2LWJyYW5kaW5ne2JvdHRvbTowO3JpZ2h0OjA7ei1pbmRleDozMDtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4zM3M7dHJhbnNpdGlvbi1kZWxheTouMzNzfS55dHAtaXYtZHJhd2VyLW9wZW4gLml2LWJyYW5kaW5ne29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1jb250ZXh0LWNvbnRhaW5lci1vdXRlcntib3R0b206MDtmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtYnJhbmRpbmcgLmJyYW5kaW5nLWNvbnRleHQtY29udGFpbmVyLWlubmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7Ym90dG9tOjA7Y29sb3I6I2VlZTttYXgtd2lkdGg6MjQ2cHg7b3BhY2l0eTowO3JpZ2h0OjA7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci1yYWRpdXM6OHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0uaXYtYnJhbmRpbmctYWN0aXZlIC5icmFuZGluZy1jb250ZXh0LWNvbnRhaW5lci1pbm5lcntvcGFjaXR5OjE7Ym9yZGVyLXJhZGl1czo4cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1pbWctY29udGFpbmVyIGltZ3tkaXNwbGF5OmJsb2NrO29wYWNpdHk6Ljc7cG9zaXRpb246cmVsYXRpdmV9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1pbWctY29udGFpbmVye2Zsb2F0OnJpZ2h0fS5pdi1icmFuZGluZyBpbWcuaXYtY2xpY2stdGFyZ2V0OmhvdmVye29wYWNpdHk6MX0uaXYtYnJhbmRpbmcgLml2LWJyYW5kaW5nLWNvbnRleHQtbmFtZXttYXgtd2lkdGg6MjE1cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47cGFkZGluZzoxMHB4IDEwcHggNXB4fS5pdi1icmFuZGluZyAuaXYtYnJhbmRpbmctY29udGV4dC1zdWJzY3JpYmV7cGFkZGluZzowIDEwcHggMTBweDtmb250LXNpemU6MTFweDtjb2xvcjojYWFhfS5pdi1icmFuZGluZyAuaXYtYnJhbmRpbmctY29udGV4dC1zdWJzY3JpYmUtY2FyZXR7ZGlzcGxheTpub25lfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tcmlnaHQgLml2LWJyYW5kaW5ne3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lml2LXByb21vLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucywuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzLC5pdi1wcm9tbyAuaXYtcHJvbW8tY29udGVudHM+YSwuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzPmRpdiwuaXYtcHJvbW8gLml2LXByb21vLWltZywuaXYtcHJvbW8gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQwcHh9Lml2LXByb21ve2JvdHRvbTo2MXB4O2xlZnQ6MDt6LWluZGV4OjMxO21heC13aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2NjYztmb250LXNpemU6MTFweDt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZW1iZWQgLml2LXByb21ve2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLml2LXByb21ve2JvdHRvbTo3MHB4fS5odG1sNS12aWRlby1wbGF5ZXIuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjg2cHh9Lnl0cC1lbWJlZC5odG1sNS12aWRlby1wbGF5ZXIuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjc4cHh9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtYmlnLW1vZGUuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjk1cHh9Lml2LXByb21vOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cz5hLC5pdi1wcm9tbyAuaXYtcHJvbW8tY29udGVudHM+ZGl2LC5pdi1wcm9tbz5kaXZ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6bm9uZSFpbXBvcnRhbnQ7dmVydGljYWwtYWxpZ246bWlkZGxlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzPmF7Y29sb3I6I2NjY30uaXYtcHJvbW8uaXYtcHJvbW8taW5hY3RpdmV7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1ne2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtcHJvbW8gLml2LXByb21vLWltZywuaXYtcHJvbW8gLml2LXByb21vLWltZyBpbWd7ei1pbmRleDoxO3dpZHRoOjQwcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHAsLml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHN0cm9uZywuaXYtcHJvbW8gLml2LXByb21vLWltZyAuaXYtcHJvbW8tcGxheWxpc3QtbGVuZ3RoLC5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby12aWRlby1kdXJhdGlvbntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby1iYWRnZS1saXZle21hcmdpbjo0cHggOHB4IDA7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2JhY2tncm91bmQtY29sb3I6I2U2MjExNztjb2xvcjojZmZmfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby1wbGF5bGlzdC1sZW5ndGgsLml2LXByb21vIC5pdi1wcm9tby1pbWcgLml2LXByb21vLXZpZGVvLWR1cmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby1wbGF5bGlzdC1sZW5ndGh7dG9wOjA7cmlnaHQ6MDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO3dpZHRoOjMwcHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDo0MHB4fS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby12aWRlby1kdXJhdGlvbntib3R0b206MnB4O3JpZ2h0OjJweDtwYWRkaW5nOjNweCAycHg7bWF4LXdpZHRoOjMycHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEwcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50c3twYWRkaW5nLXJpZ2h0OjMxcHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6MzExcHg7LXdlYmtpdC10cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQscGFkZGluZy1yaWdodCAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjptYXgtd2lkdGggLjJzIGVhc2Utb3V0LHBhZGRpbmctcmlnaHQgLjJzIGVhc2Utb3V0fS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nKy5pdi1wcm9tby1jb250ZW50c3twYWRkaW5nLWxlZnQ6NDBweDttYXgtd2lkdGg6MzUxcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tYnV0dG9uLWNvbnRhaW5lciwuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7ZGlyZWN0aW9uOmx0cjttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgcHttYXJnaW46M3B4IDhweCAtNHB4O2xpbmUtaGVpZ2h0OjE4cHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHN0cm9uZ3tjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMnB4fS5pdi1wcm9tby10eHQgcCBzcGFuLC5pdi1wcm9tby10eHQgcCBzdHJvbmd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjI2NHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5pdi1wcm9tby13aXRoLWJ1dHRvbiAuaXYtcHJvbW8tdHh0IHAgc3BhbiwuaXYtcHJvbW8td2l0aC1idXR0b24gLml2LXByb21vLXR4dCBwIHN0cm9uZ3ttYXgtd2lkdGg6MTg0cHh9Lml2LXByb21vLXR4dCBwOmZpcnN0LWNoaWxkIHNwYW4sLml2LXByb21vLXR4dCBwOmZpcnN0LWNoaWxkIHN0cm9uZ3ttYXJnaW4tYm90dG9tOi02cHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6MjBweDttYXgtd2lkdGg6MjQ0cHg7Y29sb3I6I2ZmZDEwMH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbms6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDowO29wYWNpdHk6LjU7Y29udGVudDoiIn0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQ6aG92ZXIgLml2LXByb21vLWxpbms6YWZ0ZXJ7b3BhY2l0eToxfS5pdi1wcm9tby1idXR0b24tY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjMxcHh9Lml2LWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjhweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O3BhZGRpbmc6MCAxMHB4O291dGxpbmU6MDtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxMXB4O3RleHQtZGVjb3JhdGlvbjpub25lO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0Om5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7Km92ZXJmbG93OnZpc2libGU7Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMDUpO2JveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4wNSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5pdi1idXR0b246aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lml2LWJ1dHRvbjpmb2N1cywuaXYtYnV0dG9uOmZvY3VzOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC40KTtib3gtc2hhZG93OjAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjQpfS5uby1mb2N1cy1vdXRsaW5lIC55dC11aXgtYnV0dG9uOmZvY3VzLC5uby1mb2N1cy1vdXRsaW5lIC55dC11aXgtYnV0dG9uOmZvY3VzOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uaXYtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowO3BhZGRpbmc6MH0uaXYtYnV0dG9uW2Rpc2FibGVkXSwuaXYtYnV0dG9uW2Rpc2FibGVkXTphY3RpdmUsLml2LWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsLml2LWJ1dHRvbltkaXNhYmxlZF06aG92ZXJ7b3BhY2l0eTouNTtjdXJzb3I6YXV0bzstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9Lml2LWJ1dHRvbiwuaXYtYnV0dG9uW2Rpc2FibGVkXSwuaXYtYnV0dG9uW2Rpc2FibGVkXTphY3RpdmUsLml2LWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsLml2LWJ1dHRvbltkaXNhYmxlZF06aG92ZXJ7Ym9yZGVyLWNvbG9yOiMxNjdhYzY7YmFja2dyb3VuZDojMTY3YWM2O2NvbG9yOiNmZmZ9Lml2LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOiMxMjZkYjN9Lml2LWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZDojMDk1Yjk5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDAsMCwwLC41KX0uaXYtYnV0dG9uIC5pdi1idXR0b24tY29udGVudHtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc31hLml2LWJ1dHRvbjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6MTAwJX0uaXYtcHJvbW8tYnV0dG9ue3dpZHRoOjY0cHg7bWFyZ2luOjZweCA4cHh9Lml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2UsLml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zIC5pdi1wcm9tby1leHBhbmR7dG9wOjA7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnN7d2lkdGg6MzFweH0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWNsb3NlLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tZXhwYW5ke2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2Utb3V0fS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2U6YWZ0ZXIsLml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zIC5pdi1wcm9tby1leHBhbmQ6YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIifS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2V7b3BhY2l0eToxfS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2U6YWZ0ZXJ7bWFyZ2luOjE2cHggMTBweCAxNXB4IDEycHg7b3BhY2l0eTouNX0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWV4cGFuZDphZnRlcnttYXJnaW46MTZweCAxMnB4IDE1cHh9Lml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcsLml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcgaW1ne3dpZHRoOjcxcHh9Lml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcrLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctbGVmdDo3MXB4O21heC13aWR0aDozODJweH0uaXYtcHJvbW8uaXYtcHJvbW8td2l0aC1idXR0b24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7cGFkZGluZy1yaWdodDo4MHB4fS5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWNsb3NlLC5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWV4cGFuZCwuaXYtcHJvbW8uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1jb250ZW50c3std2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjVzO3RyYW5zaXRpb24tZGVsYXk6LjVzfS5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctcmlnaHQ6MjhweDttYXgtd2lkdGg6MCFpbXBvcnRhbnR9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aXtsZWZ0OjE2cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHtwYWRkaW5nLWxlZnQ6NjBweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1idXR0b24tY29udGFpbmVye2xpbmUtaGVpZ2h0OjY0cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSwueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cywueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cz5hLC55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWNvbnRlbnRzPmRpdntoZWlnaHQ6NjRweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1idXR0b257bWluLXdpZHRoOjExMHB4O2hlaWdodDozNnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWltZ3t0b3A6NnB4O2xlZnQ6NnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWltZywueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1pbWcgaW1ne2hlaWdodDo1MnB4O3dpZHRoOjUycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBzdHJvbmd7Zm9udC1zaXplOjE2cHg7cGFkZGluZy10b3A6NHB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWJ1dHRvbntmb250LXNpemU6MTVweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjEycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHttaW4td2lkdGg6MjIwcHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257dG9wOjM4cHg7bGVmdDo0MnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWJ1dHRvbnttYXJnaW46MCAxMnB4IDAgMH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbnt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtsZWZ0OjEycHh9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8taW1nKy5pdi1wcm9tby1jb250ZW50c3ttYXgtd2lkdGg6NDAwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7d2lkdGg6MTAwJTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjVzLG1heC13aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1pbWcrLml2LXByb21vLWNvbnRlbnRzey13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouNXM7dHJhbnNpdGlvbi1kZWxheTouNXN9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ246aG92ZXIgLml2LXByb21vLWNvbnRlbnRze2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KX0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctcmlnaHQ6MH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHttYXgtd2lkdGg6MjUwcHg7cGFkZGluZy10b3A6MTBweDtwYWRkaW5nLWxlZnQ6NTJweH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBwe2xpbmUtaGVpZ2h0OjE2cHg7bWFyZ2luLXRvcDowfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1idXR0b24tY29udGFpbmVye2RpcmVjdGlvbjpsdHI7bWF4LXdpZHRoOjE1MHB4O2xpbmUtaGVpZ2h0OjU2cHg7cG9zaXRpb246c3RhdGljfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1idXR0b257bWF4LXdpZHRoOjE0MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dpZHRoOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjowIDhweCAwIDB9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWFjdGlvbnMsLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbms6YWZ0ZXJ7ZGlzcGxheTpub25lfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduLC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1jb250ZW50cywuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+YSwuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+ZGl2e2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjU2cHh9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZ3toZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3RvcDo0cHg7bGVmdDo0cHg7b3ZlcmZsb3c6dmlzaWJsZTstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQ4cHg7d2lkdGg6NDhweH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLXJvdW5kLWV4cGFuZC1pY29ue29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMTVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjlzO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjlzfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1yb3VuZC1leHBhbmQtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nLWxlZnQ6MDt6LWluZGV4Ojg1MDtoZWlnaHQ6MThweDt3aWR0aDoxOHB4O2JvcmRlci1yYWRpdXM6NTAlO3RvcDozNHB4O2xlZnQ6MzhweDtiYWNrZ3JvdW5kLWNvbG9yOiM0Njg4ZjE7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAycHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMjQpO2JveC1zaGFkb3c6MCAwIDJweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNCk7b3BhY2l0eTowfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1yb3VuZC1leHBhbmQtaWNvbjphZnRlcntkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiJ9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgc3Ryb25ne2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjJweDtjb2xvcjojMzMzfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re3BhZGRpbmc6OHB4IDIwcHggMCAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiM3Njc2NzZ9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUgLml2LXByb21vLWNvbnRlbnRze3dpZHRoOjB9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUsLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUgLml2LXByb21vLWltZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKX0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1pbmFjdGl2ZSAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257ZGlzcGxheTpub25lfS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiwueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzLC55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+YSwueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzPmRpdntoZWlnaHQ6NDBweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZywueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7cGFkZGluZzo0cHggNHB4IDRweCA0MHB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBzdHJvbmd7cGFkZGluZy10b3A6MDtmb250LXNpemU6MTJweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbmt7cGFkZGluZy10b3A6NHB4O2ZvbnQtc2l6ZToxMXB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257dG9wOjI2cHg7bGVmdDozMHB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8taW1ne3RvcDowO2xlZnQ6MH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b2hpZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1pbWd7b3BhY2l0eTouODstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSkgLjhzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSkgLjhzfS5pdi1kcmF3ZXIsLml2LWRyYXdlci1jb250ZW50LC5pdi1kcmF3ZXItaGVhZGVye3Bvc2l0aW9uOmFic29sdXRlfS5pdi1kcmF3ZXJ7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDt6LWluZGV4OjMzO3dpZHRoOjE3N3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMik7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0uaXYtZHJhd2VyLXNtYWxsLml2LWRyYXdlcnt3aWR0aDoxMzNweH0uaXYtZHJhd2VyLWJpZy5pdi1kcmF3ZXJ7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjRweDt3aWR0aDoyOTVweH1bZGlyPWx0cl0gLml2LWRyYXdlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE3N3B4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTc3cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDE3N3B4KX1bZGlyPXJ0bF0gLml2LWRyYXdlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xNzdweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xNzdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTE3N3B4KX0ueXRwLWF1dG9oaWRlLnl0cC1lbWJlZC1vdmVybGF5cy1hdXRvaGlkZSAuaXYtZHJhd2Vye29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpLnl0cC1lbWJlZC1vdmVybGF5cy1hdXRvaGlkZSAuaXYtZHJhd2Vye2Rpc3BsYXk6bm9uZX0uaXYtZHJhd2VyLWNvbnRlbnQgKnt0ZXh0LWFsaWduOmxlZnR9Lnl0cC1pdi1kcmF3ZXItb3BlbiAuaXYtZHJhd2Vyey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0uaXYtZHJhd2VyLWhlYWRlcnt0b3A6MDtwYWRkaW5nOjE2cHggMzJweCAwIDE2cHg7d2lkdGg6MTc3cHg7aGVpZ2h0OjQxcHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtZHJhd2VyLWhlYWRlcntwYWRkaW5nOjlweCAyNHB4IDAgMTJweDtoZWlnaHQ6MjhweDt3aWR0aDoxMzNweH0uaXYtZHJhd2VyLWJpZyAuaXYtZHJhd2VyLWhlYWRlcntwYWRkaW5nOjIwcHggNDhweCAwIDMycHg7aGVpZ2h0OjY0cHg7d2lkdGg6Mjk1cHh9Lml2LWRyYXdlci1oZWFkZXItdGV4dHtmb250LXdlaWdodDo1MDA7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHRtbDUtdmlkZW8tcGxheWVyIC5pdi1kcmF3ZXItaGVhZGVyey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXYtZHJhd2VyLWNvbnRlbnR7dG9wOjQxcHg7Ym90dG9tOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzowIDE2cHg7d2lkdGg6MTQ1cHg7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0fS5pdi1kcmF3ZXItc21hbGwgLml2LWRyYXdlci1jb250ZW50e3BhZGRpbmc6MCAxMnB4O3RvcDoyOHB4O3dpZHRoOjEwOXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1kcmF3ZXItY29udGVudHtwYWRkaW5nOjAgMzJweDt0b3A6NjRweDt3aWR0aDoyMzFweH0uaXYtZHJhd2VyLXNjcm9sbGVkIC5pdi1kcmF3ZXItY29udGVudHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNCl9Lml2LWRyYXdlci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjE2cHh9Lml2LWRyYXdlci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXI6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAyLDEwMiwxMDIsLjUpfS5pdi1kcmF3ZXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWF1dG9oaWRlIC5pdi1kcmF3ZXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uaXYtZHJhd2VyLWNvbnRlbnQ6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzY2NiFpbXBvcnRhbnR9Lml2LWRyYXdlci1jbG9zZS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtwYWRkaW5nOjE2cHg7b3BhY2l0eTouNzU7Y3Vyc29yOnBvaW50ZXJ9Lml2LWRyYXdlci1zbWFsbCAuaXYtZHJhd2VyLWNsb3NlLWJ1dHRvbntwYWRkaW5nOjhweH0uaXYtZHJhd2VyLWJpZyAuaXYtZHJhd2VyLWNsb3NlLWJ1dHRvbntwYWRkaW5nOjI0cHh9Lml2LWRyYXdlci1jbG9zZS1idXR0b246YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIifS5pdi1kcmF3ZXItY2xvc2UtYnV0dG9uOmhvdmVye29wYWNpdHk6MX0uaXYtY2FyZCwuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldCwuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldDpmb2N1cywuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldDpob3ZlcntkaXNwbGF5OmJsb2NrO2NvbG9yOiM3Njc2NzY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lml2LWNhcmR7bWFyZ2luLWJvdHRvbToxNnB4O3dpZHRoOjE0NXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4yKTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czo4cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZHt3aWR0aDoxMDlweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZHt3aWR0aDoyMzFweH0uaXYtY2FyZDpob3ZlciAuaXYtY2FyZC1wcmltYXJ5LWxpbmt7Y29sb3I6IzE2N2FjNiFpbXBvcnRhbnR9Lml2LWNhcmQgaDIsLml2LWNhcmQtYWN0aW9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53ZWJraXQgLml2LWNhcmQgaDI6YWZ0ZXIsLndlYmtpdCAuaXYtY2FyZC1hY3Rpb246YWZ0ZXJ7Y29udGVudDoi4oCMIjtwb3NpdGlvbjpzdGF0aWM7dmlzaWJpbGl0eTpoaWRkZW59Lml2LWNhcmQgaDJ7bWFyZ2luOjAgMCA4cHg7LXdlYmtpdC1saW5lLWNsYW1wOjY7bWF4LWhlaWdodDo5MHB4O2NvbG9yOiMzMzM7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE1cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZCBoMntmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O21heC1oZWlnaHQ6NzJweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZCBoMntmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6MTQ0cHh9Lml2LWNhcmQgLml2LWNhcmQtYWN0aW9uLC5pdi1jYXJkIC5pdi1jYXJkLW1ldGEtaW5mbywuaXYtY2FyZCBwe21hcmdpbjotNnB4IDAgMnB4fS5pdi1jYXJkLW1ldGEtaW5mb3tsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowfS5pdi1jYXJkLWltYWdle3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMmUyZTI7d2lkdGg6MTQ1cHg7aGVpZ2h0OjE0NXB4O2JhY2tncm91bmQ6I2YxZjFmMSBuby1yZXBlYXQgNTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtjb2xvcjojZmZmfS5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtaW1hZ2V7d2lkdGg6MTA5cHg7aGVpZ2h0OjEwOXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLWltYWdle3dpZHRoOjIzMXB4O2hlaWdodDoyMzFweH0uaXYtY2FyZC1pbWFnZS10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3BhZGRpbmc6MjBweCAxMHB4IDhweDt3aWR0aDoxMDAlO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHRyYW5zcGFyZW50LHJnYmEoMCwwLDAsLjYpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCx0cmFuc3BhcmVudCksdG8ocmdiYSgwLDAsMCwuNikpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQgMCxyZ2JhKDAsMCwwLC42KSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtaW1hZ2UtdGV4dHtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O3BhZGRpbmc6NnB4IDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1pbWFnZS10ZXh0e2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzoxMnB4IDE2cHh9Lml2LWNhcmQtaW1hZ2UtdGV4dCAueXQtYmFkZ2V7bWFyZ2luLXJpZ2h0OjVweH0uaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6OHB4IDEwcHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6NnB4IDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6MTJweCAxNnB4fS5pdi1jYXJkLWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uaXYtY2FyZC1jb250ZW50PjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uaXYtY2FyZC1hY3Rpb24sLml2LWNhcmQtbWVzc2FnZXtmb250LXdlaWdodDo1MDB9Lml2LWNhcmQtbWVzc2FnZXttYXJnaW4tYm90dG9tOjhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTJlMmUyO3BhZGRpbmctYm90dG9tOjhweH0uaXYtY2FyZC1hY3Rpb257LXdlYmtpdC1saW5lLWNsYW1wOjQ7bWF4LWhlaWdodDo1MnB4O3doaXRlLXNwYWNlOm5vd3JhcH0uaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLWFjdGlvbntmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O21heC1oZWlnaHQ6NDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1hY3Rpb257Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0OjgwcHh9Lml2LWNhcmQtYWN0aW9uIHNwYW57d2hpdGUtc3BhY2U6bm9ybWFsfS5pdi1jYXJkLWFjdGlvbi1pY29ue3BhZGRpbmc6MCAwIDAgMzBweDttaW4taGVpZ2h0OjE0cHg7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToyNHB4IGF1dG87YmFja2dyb3VuZC1zaXplOjI0cHggYXV0b30uaXYtY2FyZC1saW5rLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2t9Lml2LWNhcmQtZXBpc29kZSBoMiwuaXYtY2FyZC1tb3ZpZSBoMiwuaXYtY2FyZC1wbGF5bGlzdCBoMiwuaXYtY2FyZC12aWRlbyBoMnstd2Via2l0LWxpbmUtY2xhbXA6MzttYXgtaGVpZ2h0OjQ1cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1lcGlzb2RlIGgyLC5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtbW92aWUgaDIsLml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wbGF5bGlzdCBoMiwuaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLXZpZGVvIGgye21heC1oZWlnaHQ6MzZweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1lcGlzb2RlIGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLW1vdmllIGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBsYXlsaXN0IGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXZpZGVvIGgye21heC1oZWlnaHQ6NzJweH0uaXYtY2FyZC1jaGFubmVsIGgyey13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6MzBweH0uaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLWNoYW5uZWwgaDJ7bWF4LWhlaWdodDoyNHB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLWNoYW5uZWwgaDJ7bWF4LWhlaWdodDo0OHB4fS5pdi1jYXJkLWVwaXNvZGUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtbW92aWUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtdmlkZW8gLml2LWNhcmQtaW1hZ2V7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5pdi1jYXJkLWVwaXNvZGUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtdmlkZW8gLml2LWNhcmQtaW1hZ2V7aGVpZ2h0OjgycHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1lcGlzb2RlIC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC12aWRlbyAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6NjFweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1lcGlzb2RlIC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBsYXlsaXN0IC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXZpZGVvIC5pdi1jYXJkLWltYWdle2hlaWdodDoxMjlweH0uaXYtY2FyZC1tb3ZpZSAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6MjA5cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1tb3ZpZSAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6MTU3cHh9Lml2LWRyYXdlci1iaWcgLml2LWNhcmQtbW92aWUgLml2LWNhcmQtaW1hZ2V7aGVpZ2h0OjMzNXB4fS5pdi1jYXJkLXZpZGVvLWR1cmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo1cHg7cmlnaHQ6NXB4O3BhZGRpbmc6MnB4IDRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2Utb3ZlcmxheXtkaXNwbGF5OnRhYmxlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NjNweDtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNjZmNmY2Y7Zm9udC1zaXplOjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xpbmUtaGVpZ2h0OjIxcHh9Lml2LWNhcmQtcGxheWxpc3QtdmlkZW8tY291bnR7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaXYtY2FyZC1wbGF5bGlzdC12aWRlby1jb3VudDphZnRlcntkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvO29wYWNpdHk6LjU7Y29udGVudDoiIn0uaXYtY2FyZC1wb2xse3Bvc2l0aW9uOnJlbGF0aXZlfS5pdi1jYXJkLXBvbGwgdWx7bWF4LXdpZHRoOjEyNXB4O2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wb2xsIHVse21heC13aWR0aDo4OXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBvbGwgdWx7bWF4LXdpZHRoOjIxMXB4fS5pdi1jYXJkLXBvbGwgZmllbGRzZXR7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowfS5pdi1jYXJkLXBvbGwgbGFiZWx7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwYWRkaW5nLWJvdHRvbTo1cHg7bWluLWhlaWdodDoxNHB4O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAwIHRvcCA1cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE55SWdhR1ZwWjJoMFBTSXhOeUkrUEdOcGNtTnNaU0JqZUQwaU9DNDFJaUJqZVQwaU9DNDFJaUJ5UFNJM0xqWWlJR1pwYkd3OUltNXZibVVpSUhOMGNtOXJaVDBpSXpBd01DSWdjM1J5YjJ0bExXOXdZV05wZEhrOUlpNDFOQ0lnYzNSeWIydGxMWGRwWkhSb1BTSXhMamdpTHo0OEwzTjJaejQ9KTtjb2xvcjpyZ2JhKDAsMCwwLC44Nyk7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Y29sb3IgLjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAuaXYtY2FyZC1wb2xsIGxhYmVsLml2LWNhcmQtcG9sbC1jaG9pY2UtZm9jdXNlZHstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuNCk7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC40KX0uaXYtY2FyZC1wb2xsLml2LWNhcmQtcG9sbC12b3RlZCBsYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lml2LWNhcmQtcG9sbC5pdi1jYXJkLXBvbGwtdm90ZWQgbGFiZWwuaXYtY2FyZC1wb2xsLWNob2ljZS1jaGVja2Vke2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE55SWdhR1ZwWjJoMFBTSXhOeUkrUEdOcGNtTnNaU0JqZUQwaU9DNDFJaUJqZVQwaU9DNDFJaUJ5UFNJM0xqWWlJR1pwYkd3OUltNXZibVVpSUhOMGNtOXJaVDBpSXpFMk4yRmpOaUlnYzNSeWIydGxMWGRwWkhSb1BTSXhMamdpTHo0OFkybHlZMnhsSUdONFBTSTRMalVpSUdONVBTSTRMalVpSUhJOUlqUXVNak1pSUdacGJHdzlJaU14TmpkaFl6WWlMejQ4TDNOMlp6ND0pO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0uaXYtY2FyZC1wb2xsIGlucHV0W3R5cGU9Y2hlY2tib3hde29wYWNpdHk6MDt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O21hcmdpbjo1cHggMCAwO2Zsb2F0OmxlZnR9Lml2LWNhcmQtcG9sbCAuaXYtY2FyZC1wb2xsLWNob2ljZS10ZXh0e2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6MjVweDtwYWRkaW5nLXRvcDo4cHh9Lml2LWRyYXdlci1iaWcgLml2LWNhcmQtcG9sbCAuaXYtY2FyZC1wb2xsLWNob2ljZS10ZXh0e3BhZGRpbmctdG9wOjJweH0uaXYtY2FyZC1wb2xsIGxpK2xpe21hcmdpbi10b3A6OHB4fS5pdi1jYXJkLXBvbGwgLml2LWNhcmQtcG9sbC1yZXN1bHR7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6I2RmZGZkZjt2aXNpYmlsaXR5OmhpZGRlbn0uaXYtY2FyZC1wb2xsIC5pdi1jYXJkLXBvbGwtcmVzdWx0IC5pdi1jYXJkLXBvbGwtcmVzdWx0LWJhcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzE2N2FjNjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7LW1zLXRyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7dHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS5pdi1jYXJkLXBvbGwuaXYtY2FyZC1wb2xsLWV4cGFuZGVkIC5pdi1jYXJkLXBvbGwtcmVzdWx0e3Zpc2liaWxpdHk6dmlzaWJsZX0uaXYtY2FyZC1wb2xsIC5pdi1jYXJkLXBvbGwtY2hvaWNlLXBlcmNlbnR7ZGlzcGxheTpub25lO2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjVweH0uaXYtY2FyZC1wb2xsLml2LWNhcmQtcG9sbC1leHBhbmRlZCAuaXYtY2FyZC1wb2xsLWNob2ljZS1wZXJjZW50e2Rpc3BsYXk6YmxvY2t9Lml2LWNhcmQtc2lnbi1pbnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cGFkZGluZzo4cHggMTBweH0uaXYtY2FyZC1zaWduLWluIHB7bWFyZ2luOjAgMCA4cHh9Lml2LWNhcmQtc2lnbi1pbiBhe2NvbG9yOiNmZmZ9Lml2LWNhcmQtdW5hdmFpbGFibGU6aG92ZXIgLml2LWNhcmQtY29udGVudCwuaXYtY2FyZC11bmF2YWlsYWJsZTpob3ZlciAuaXYtY2xpY2stdGFyZ2V0e3Zpc2liaWxpdHk6aGlkZGVufS5pdi1jYXJkLXVuYXZhaWxhYmxlOmhvdmVyIC5pdi1jYXJkLXNpZ24taW57dmlzaWJpbGl0eTp2aXNpYmxlfS5pdi1hZC1pbmZvLWljb24tY29udGFpbmVyLC5pdi1jYXJkLXNwb25zb3JlZHtwb3NpdGlvbjpyZWxhdGl2ZX0uaXYtY2FyZC1zcG9uc29yZWR7bWFyZ2luOjAgMCA4cHg7Y29sb3I6Izk5OX0uaXYtYWQtaW5mby1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NnB4fS5pdi1hZC1pbmZvLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0uaXYtYWQtaW5mb3tib3R0b206MjFweDtsZWZ0OjA7cmlnaHQ6MDtib3JkZXI6MXB4IHNvbGlkICMwMDA7cGFkZGluZzo3cHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMwMDA7Zm9udC1zaXplOjEycHh9Lml2LWFkLWluZm8tY29udGFpbmVyIC5pdi1hZC1pbmZvIGEsLml2LWFkLWluZm8tY29udGFpbmVyIC5pdi1hZC1pbmZvIGE6aG92ZXJ7Y29sb3I6IzE2N2FjNn0uaXYtYWQtaW5mby1jb250YWluZXIgLml2LWFkLWluZm8gYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5pdi1hZC1pbmZvLWNhbGxvdXQsLml2LWFkLWluZm8taWNvbi1jb250YWluZXI6YWZ0ZXJ7bGVmdDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO3dpZHRoOjA7aGVpZ2h0OjB9Lml2LWFkLWluZm8tY2FsbG91dHtib3R0b206MTZweDtib3JkZXItdG9wLWNvbG9yOiMwMDB9Lml2LWFkLWluZm8taWNvbi1jb250YWluZXI6YWZ0ZXJ7Y29udGVudDoiIjtib3R0b206MTdweDtib3JkZXItdG9wLWNvbG9yOiNmZmZ9Lml2LWFkLWluZm8sLml2LWFkLWluZm8tY2FsbG91dCwuaXYtYWQtaW5mby1pY29uLWNvbnRhaW5lcjphZnRlcnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyAuMXM7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIC4xc30uaXYtYWQtaW5mby1jb250YWluZXI6aG92ZXIgLml2LWFkLWluZm8sLml2LWFkLWluZm8tY29udGFpbmVyOmhvdmVyIC5pdi1hZC1pbmZvLWNhbGxvdXQsLml2LWFkLWluZm8tY29udGFpbmVyOmhvdmVyIC5pdi1hZC1pbmZvLWljb24tY29udGFpbmVyOmFmdGVye3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30uaXYtY2FyZC1wcm9kdWN0LWxpc3RpbmcgaDJ7LXdlYmtpdC1saW5lLWNsYW1wOjM7bWF4LWhlaWdodDo0NXB4O2NvbG9yOiM2NjZ9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wcm9kdWN0LWxpc3RpbmcgaDJ7bWF4LWhlaWdodDozNnB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXByb2R1Y3QtbGlzdGluZyBoMnttYXgtaGVpZ2h0OjcycHh9Lml2LWNhcmQtb2ZmZXItcHJpY2V7bWFyZ2luLWJvdHRvbToycHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE1cHg7Y29sb3I6IzMzM30uaXYtY2FyZC1vZmZlci1tZXJjaGFudHtjb2xvcjojMDk3YTQxfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDozNjBweDtoZWlnaHQ6Y2FsYygxMDAlIC0gMzlweCk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgYXV0bzt6LWluZGV4OjM3fS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlKSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5e3dpZHRoOjEwMCV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheXstLXcydy1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yOiMwMDA7LS13MnctZW5kLWJhY2tncm91bmQtY29sb3I6IzAwMDtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJ7d2lkdGg6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWxpbmstY29udGFpbmVye21hcmdpbi10b3A6MTBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjF9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjI0cHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVyLWNvdW50ZG93bi1udW1iZXJ7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXItb25seSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LW5vLWFsdGVybmF0aXZlLWhlYWRlciAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlci1vbmx5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoyNHB4O21hcmdpbi10b3A6MH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWwsLnl0cC1hdXRvbmF2LXRodW1ibmFpbC1zbWFsbHtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgIzRjNGM0Yzstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlse3dpZHRoOjM2MHB4O2hlaWdodDoyMDJweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlsOmhvdmVyLC55dHAtYXV0b25hdi10aHVtYm5haWwtc21hbGw6aG92ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjgpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRwLWF1dG9uYXYtbGl2ZS1zdGFtcCwueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi11cGNvbWluZy1zdGFtcHtib3R0b206NHB4O3JpZ2h0OjRweDtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6MnB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtjb2xvcjojZmZmO3Bvc2l0aW9uOmFic29sdXRlO2xldHRlci1zcGFjaW5nOi41cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWF1dG9uYXYtbGlzdC1vdmVybGF5e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbG9hdDpyaWdodDt3aWR0aDo0MCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KX0ueXRwLWF1dG9uYXYtbWl4LXRleHR7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MThweDtmb250LXdlaWdodDo1MDA7bWFyZ2luLXRvcDozMCV9Lnl0cC1hdXRvbmF2LW1peC1pY29ue3dpZHRoOjQyJTtoZWlnaHQ6MzAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCMmFXVjNRbTk0UFNJd0lEQWdNellnTXpZaVBqeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzbDBjQzF6ZG1jdGJXbDRJaUJ6ZEhKdmEyVTlJaU13TURBaUlITjBjbTlyWlMxdmNHRmphWFI1UFNJdU1UVWlJSE4wY205clpTMTNhV1IwYUQwaU1pSXZQanh3WVhSb0lHbGtQU0o1ZEhBdGMzWm5MVzFwZUNJZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRJMUxqWTFJREU0WXkwdU1ESWdNaTR6TVMwdU9EY2dOQzQwTVMweUxqSTFJRFl1TURac0xqa3VPVFJqTVM0Mk9TMHhMamdnTWk0M0xUUXVNamNnTWk0M0xUZHpMVEV1TURFdE5TNHlNUzB5TGpjdE4yd3RMamt1T1ROQk9TNDFOQ0E1TGpVMElEQWdNQ0F4SURJMUxqWTFJREU0YlMweE5TNHpJREJqTGpBeExUSXVNekl1T0RZdE5DNDBNaUF5TGpJMUxUWXVNRGRzTFM0NUxTNDVNME14TUNBeE1pNDNPU0E1SURFMUxqSTNJRGtnTVRoek1TQTFMaklnTWk0M0lEZHNMamt0TGprMFl5MHhMak01TFRFdU5qVXRNaTR5TkMwekxqYzFMVEl1TWpVdE5pNHdObTB5TGpjZ01HTXRMakEwTFRFdU56TXVORGt0TXk0d09TQXhMak0xTFRRdU1td3RMamt0TGprMFl5MHhMakV6SURFdU1qWXRNUzQ0SURJdU9Ua3RNUzQ0SURVdU1UUWdNQ0F4TGpZM0xqWTNJRE11TkNBeExqZ2dOQzQyTm13dU9TMHVPVE5qTFM0NE5pMHhMakV5TFRFdU16a3RNaTQwTnkweExqTTFMVE11TnpOdE9TMDFMakUwTFM0NUxqazBZeTQ0TlNBeExqRXhJREV1TXpnZ01pNDBOeUF4TGpNMUlEUXVNaTR3TXlBeExqSTJMUzQxSURJdU5qRXRNUzR6TlNBekxqY3piQzQ1TGprell6RXVNVEl0TVM0eU5pQXhMamd0TWk0NU9TQXhMamd0TkM0Mk5pQXdMVEl1TVRVdExqWTRMVE11T0RndE1TNDRMVFV1TVRSdExUVXVOVFVnTWk0NElETXVOaUF4TGpnM0xUTXVOaUF5TGpNemVpSXZQand2YzNablBnPT0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjttYXJnaW46MCBhdXRvfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdmlkZW8taW5mb3ttYXJnaW4tdG9wOjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1wcmVtaXVtLWJhZGdle21hcmdpbi1ib3R0b206NnB4O21hcmdpbi1sZWZ0Oi0ycHg7d2lkdGg6NzRweDtoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSTNNQ0lnYUdWcFoyaDBQU0l4TmlJZ1ptbHNiRDBpYm05dVpTSStQSEpsWTNRZ2QybGtkR2c5SWpjd0lpQm9aV2xuYUhROUlqRTJJaUJtYVd4c1BTSWpabVptSWlCdmNHRmphWFI1UFNJdU1TSWdjbmc5SWpJaUx6NDhjR0YwYUNCbWFXeHNQU0lqWVdGaElpQmtQU0pOTWpBdU16VWdPQzQ0TTFZeE1tZ3RNUzQwT0ZZekxqUTNhRE11TWpaakxqazFJREFnTVM0M01TNHlOU0F5TGpJM0xqYzBMalUyTGpVdU9EUWdNUzR4Tmk0NE5DQXhMamszSURBZ0xqZzBMUzR5TnlBeExqUTVMUzQ0TWlBeExqazFMUzQxTlM0ME55MHhMak15TGpjdE1pNHpMamQ2YlRBdE1TNHhPV2d4TGpjNFl5NDFNeUF3SUM0NU15MHVNVElnTVM0eUxTNHpOeTR5T1MwdU1qVXVOREl0TGpZdU5ESXRNUzR3T0NBd0xTNDBOaTB1TVRRdExqZ3lMUzQwTWkweExqRmhNUzQyTWlBeExqWXlJREFnTUNBd0xURXVNVFl0TGpRemFDMHhMamd5ZW0wNUxqTTNMUzQyT0dFekxqVWdNeTQxSURBZ01DQXdMUzQxT0MwdU1EVmpMUzQyTlNBd0xURXVNRGt1TWpVdE1TNHpNUzQzTlZZeE1rZ3lOaTQwVmpVdU5qWm9NUzR6Tm13dU1EUXVOMkV4TGpZZ01TNDJJREFnTUNBeElERXVORE10TGpneVl5NHlJREFnTGpNM0xqQXpMalV1TURoMk1TNHpOSHB0TXk0MU9DQTFMakUyWXkwdU9TQXdMVEV1TmpRdExqSTVMVEl1TWkwdU9EVmhNeTR4SURNdU1TQXdJREFnTVMwdU9EUXRNaTR5T0hZdExqRTNZekF0TGpZekxqRXlMVEV1TWk0ek55MHhMamRoTWk0M01pQXlMamN5SURBZ01DQXhJREl1TlMweExqVTRZeTQ0TnlBd0lERXVOVE11TWpnZ01pQXVPRE11TkRndU5UVXVOekVnTVM0ek15NDNNU0F5TGpNMGRpNDFOMGd6TVM0M1l5NHdOQzQxTWk0eU1pNDVOQzQxTWlBeExqSTBjeTQzTGpRMklERXVNVFl1TkRaakxqWTFJREFnTVM0eE9DMHVNallnTVM0MkxTNDNPV3d1TnpZdU56TmpMUzR5TlM0ek9DMHVOaTQyT0MweExqQXlMamc1TFM0ME1pNHlMUzQ1TGpNdE1TNDBNaTR6ZW0wdExqRTNMVFV1TkROakxTNDBJREF0TGpjdU1UTXRMamsxTGpRdExqSTBMakk0TFM0MExqWTJMUzQwTmlBeExqRTFhREl1TnpKMkxTNHhZVEV1TnpJZ01TNDNNaUF3SURBZ01DMHVNemt0TVM0d09TQXhMaklnTVM0eUlEQWdNQ0F3TFM0NU1pMHVNelp0TlM0eE5pMHhMakF6TGpBMExqWTJZVEl1TWpnZ01pNHlPQ0F3SURBZ01TQXhMamd6TFM0M09HTXVPRFVnTUNBeExqUXpMak16SURFdU56UXVPVGd1TkRZdExqWTFJREV1TVRFdExqazRJREV1T1RVdExqazRMamNnTUNBeExqSXhMaklnTVM0MU5TNDFPQzR6TlM0ek9TNDFNaTQ1Tmk0MU15QXhMamN4VmpFeWFDMHhMalF5VmpjdU9EZGpNQzB1TkMwdU1Ea3RMamN0TGpJM0xTNDRPQzB1TVRjdExqRTVMUzQwTmkwdU1qZ3RMamczTFM0eU9DMHVNeklnTUMwdU5Ua3VNRGt0TGpndU1qWXRMakl1TVRjdExqTTBMalF0TGpReUxqWTRWakV5YUMweExqUXlWamN1T0ROakxTNHdNaTB1TnpVdExqUXRNUzR4TWkweExqRTBMVEV1TVRJdExqVTNJREF0TGprNExqSXpMVEV1TWpJdU4xWXhNbWd0TVM0ME1sWTFMalkyZWswME9DNDVNU0F4TW1ndE1TNDBNMVkxTGpZMmFERXVORE42VFRRM0xqUWdOQzR3TVdNd0xTNHlNaTR3TmkwdU5DNHlMUzQxTkM0eE5DMHVNVFV1TXpRdExqSXlMall0TGpJeWN5NDBOaTR3Tnk0MkxqSXlZeTR4TkM0eE5DNHlMak15TGpJdU5UUnpMUzR3Tmk0MExTNHlMalUwTFM0ek5DNHlNUzB1Tmk0eU1TMHVORFl0TGpBM0xTNDJMUzR5WVM0M05TNDNOU0F3SURBZ01TMHVNaTB1TlRWdE5pNDVJRGN1TXpkaE1pNHlJREl1TWlBd0lEQWdNUzB4TGpjNExqYzBjUzB4TGpBeUlEQXRNUzQxTmkwdU5tTXRMak0xTFM0MExTNDFNeTB4TFM0MU15MHhMamMxVmpVdU5qWm9NUzQwTTNZMExqQTVZekFnTGpndU16TWdNUzR5SURFZ01TNHlMalk1SURBZ01TNHhOaTB1TWpRZ01TNDBMUzQzTkZZMUxqWTJhREV1TkRKV01USm9MVEV1TXpSNmJUUXVNVGN0TlM0M01pNHdOQzQyTm1FeUxqSTRJREl1TWpnZ01DQXdJREVnTVM0NE15MHVOemhqTGpnMUlEQWdNUzQwTXk0ek15QXhMamMwTGprNExqUTJMUzQyTlNBeExqRXhMUzQ1T0NBeExqazFMUzQ1T0M0M0lEQWdNUzR5TVM0eUlERXVOVFV1TlRndU16VXVNemt1TlRJdU9UWXVOVE1nTVM0M01WWXhNa2cyTkM0M1ZqY3VPRGRqTUMwdU5DMHVNRGt0TGpjdExqSTNMUzQ0T0MwdU1UY3RMakU1TFM0ME5pMHVNamd0TGpnM0xTNHlPQzB1TXpJZ01DMHVOVGt1TURrdExqZ3VNall0TGpJdU1UY3RMak0wTGpRdExqUXlMalk0VmpFeWFDMHhMalF5VmpjdU9ETmpMUzR3TWkwdU56VXRMalF0TVM0eE1pMHhMakUwTFRFdU1USXRMalUzSURBdExqazRMakl6TFRFdU1qSXVOMVl4TW1ndE1TNDBNbFkxTGpZMmFERXVNelI2SWk4K1BIQmhkR2dnWm1sc2JEMGljbVZrSWlCa1BTSk5NU0F5WVRFZ01TQXdJREFnTVNBeExURm9NVE4yTVRSSU1tRXhJREVnTUNBd0lERXRNUzB4ZWlJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHUTlJazAyTGpVeUlEbDJNMGcwTGpjMlZqTXVORGRJT0M0eFl5NDJOQ0F3SURFdU1pNHhNaUF4TGpZNUxqTTFjeTQ0Tmk0MU55QXhMakV5SURFZ0xqUXVPVEl1TkNBeExqUTNZekFnTGpnMExTNHpJREV1TlMwdU9EY2dNUzQ1T0hFdExqZzFOUzQzTWkweUxqTTNMamN5U0RZdU5USjZiVEF0TVM0ME0yZ3hMalUzWXk0ME5pQXdJQzQ0TWkwdU1TQXhMakEyTFM0ek15NHlOUzB1TWpJdU16Y3RMalV6TGpNM0xTNDVOSE10TGpFeUxTNDNOUzB1TXpjdE1XTXRMakkxTFM0eU55MHVOVGt0TGpRdE1TNHdNaTB1TkVnMkxqVXllaUl2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9LmF1dG9uYXYtZW5kc2NyZWVue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC5hdXRvbmF2LWVuZHNjcmVlbnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtc3VnZ2VzdGlvbnMtY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXRpdGxle2NvbG9yOiNmZmY7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MThweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjRweDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfS55dHAtYXV0b25hdi1hdXRob3ItYW5kLXZpZXcsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYXV0aG9yLC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6NHB4O2NvbG9yOiNhYWE7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVye3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWJ1dHRvbnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7d2lkdGg6MTc2cHg7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzRweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjB9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9uLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9uLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czoxOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNhbmNlbC1idXR0b257YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtmbG9hdDpsZWZ0fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXBsYXktYnV0dG9ue2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7ZmxvYXQ6cmlnaHR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyOm5vdCgueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWlzLXByZW1pdW0pIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tcHJlbWl1bS1iYWRnZXtkaXNwbGF5Om5vbmV9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjB9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtbWluaXBsYXllci1yZXBsYXktYnV0dG9uLC5jb3VudGRvd24tcnVubmluZyAueXRwLXByZXZpZXd7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLXN1Z2dlc3Rpb24tcGFuZWx7bWFyZ2luOjQwcHggYXV0byBhdXRvIDIwcHg7d2lkdGg6MzYwcHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLW92ZXJsYXl7bWFyZ2luOjQwcHggMjBweCBhdXRvIGF1dG99Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10aHVtYm5haWwtc21hbGx7d2lkdGg6MzYwcHg7aGVpZ2h0OjIwMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdGl0bGUtY2FyZHttYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJkLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7bWFyZ2luLXRvcDowfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJke3dpZHRoOjM2MHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWx7d2lkdGg6MzYwcHg7aGVpZ2h0OjIwMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtbWl4LXRleHR7Zm9udC1zaXplOjIyLjVweDtsaW5lLWhlaWdodDoyN3B4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDozNzRweH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEzcHg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWwsLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlse3dpZHRoOjE4M3B4O2hlaWdodDoxMDRweDtib3JkZXItcmFkaXVzOjhweH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwuY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXRpdGxlLC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aXRsZXtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4O2ZvbnQtd2VpZ2h0OjUwMH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdmlkZW8taW5mbywueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXZpZGVvLWluZm97bWFyZ2luLXRvcDowO3dpZHRoOjE4M3B4fS5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVyLC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEzcHh9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1idXR0b24sLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9ue3dpZHRoOjE4M3B4O2hlaWdodDozNHB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye2hlaWdodDpjYWxjKDEwMCUgLSA1OC41cHgpfS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjE1cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXJ7Zm9udC1zaXplOjIyLjVweDtsaW5lLWhlaWdodDozNnB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYWx0ZXJuYXRpdmUtaGVhZGVye2ZvbnQtc2l6ZToxOS41cHg7bGluZS1oZWlnaHQ6MjdweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlci1vbmx5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntmb250LXNpemU6MjIuNXB4O2xpbmUtaGVpZ2h0OjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWx7d2lkdGg6NTQwcHg7aGVpZ2h0OjMwM3B4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1wcmVtaXVtLWJhZGdle21hcmdpbi1ib3R0b206OXB4O21hcmdpbi1sZWZ0Oi0zcHg7d2lkdGg6MTExcHg7aGVpZ2h0OjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXZpZGVvLWluZm97bWFyZ2luLXRvcDoxOHB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGl0bGV7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWF1dGhvciwueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjMxLjVweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6MH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjE4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1idXR0b257Zm9udC1zaXplOjIxcHg7d2lkdGg6MjY0cHg7aGVpZ2h0OjU0cHg7bGluZS1oZWlnaHQ6NTJweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWJ1dHRvbi5tb2Rlcm4tYnV0dG9uc3tib3JkZXItcmFkaXVzOjI3cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtbGl2ZS1zdGFtcCwueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10aW1lc3RhbXAsLnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDo1NDBweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5e21hcmdpbjphdXRvO21hcmdpbi1yaWdodDozMHB4O2hlaWdodDo0NDRweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVse21hcmdpbjphdXRvO21hcmdpbi1sZWZ0OjMwcHg7d2lkdGg6NDMycHg7aGVpZ2h0OjQ0NHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtc3VnZ2VzdGlvbi1jYXJkLXdpdGgtbWFyZ2lue21hcmdpbi1sZWZ0OjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LXRodW1ibmFpbC1zbWFsbHttYXJnaW4tdG9wOjA7d2lkdGg6MjEwcHg7aGVpZ2h0OjExOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmR7bWFyZ2luLXRvcDoxMHB4O3dpZHRoOjIxMHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bnRoLWxhc3QtY2hpbGQoLW4rMil7bWFyZ2luLXRvcDoyMHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi10aXRsZS1jYXJke21hcmdpbi10b3A6MTBweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxNnB4O2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtYXV0aG9yLWNhcmR7bWFyZ2luLXRvcDo0cHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJkLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZSwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6MH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1tb3JlLXZpZGVvc3t2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1zdWdnZXN0aW9ucy1jb250YWluZXIgLnl0cC1zdWdnZXN0aW9uLXNldDpub3QoOmZpcnN0LWNoaWxkKXtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVsLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtdGlueS1tb2RlIC55dHAtc3VnZ2VzdGlvbi1wYW5lbHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheSwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXRpbnktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5ey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDpjYWxjKDEwMCUgLSAzOXB4KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lciwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXRpbnktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5LC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtdGlueS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLW92ZXJsYXl7bWFyZ2luLXJpZ2h0OmF1dG99Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheXttYXJnaW4tdG9wOjB9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjMwcHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtc3VnZ2VzdGlvbi1wYW5lbCwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLXN1Z2dlc3Rpb24tcGFuZWx7ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZC5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOjM3NHB4O2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ueXRwLXBsYXllci1taW5pbWl6ZWQuY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtY29udGFpbmVyLC55dHAtcGxheWVyLW1pbmltaXplZC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNvbnRhaW5lcnttYXJnaW4tdG9wOjE2cHh9Lnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlcntkaXNwbGF5Oi13ZWJraXQtYm94fS55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXIsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXJ7bWFyZ2luLXRvcDo1cHh9Lnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWxpbmstY29udGFpbmVye21hcmdpbi10b3A6OHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle2Rpc3BsYXk6LXdlYmtpdC1ib3h9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye21hcmdpbjphdXRvO21hcmdpbi1yaWdodDo0NXB4O3dpZHRoOjU0MHB4O2hlaWdodDo2NjZweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVye2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVse21hcmdpbjphdXRvO21hcmdpbi1sZWZ0OjQ1cHg7d2lkdGg6NjQ4cHg7aGVpZ2h0OjY2NnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLXN1Z2dlc3Rpb24tY2FyZC13aXRoLW1hcmdpbnttYXJnaW4tbGVmdDoxOHB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdGh1bWJuYWlsLXNtYWxse3dpZHRoOjMxNXB4O2hlaWdodDoxNzdweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZHttYXJnaW4tdG9wOjE1cHg7d2lkdGg6MzE1cHh9Lnl0cC1iaWctbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bnRoLWxhc3QtY2hpbGQoLW4rMil7bWFyZ2luLXRvcDozMHB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdGl0bGUtY2FyZHttYXJnaW4tdG9wOjE1cHg7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJke21hcmdpbi10b3A6NnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtYXV0aG9yLWNhcmQsLnl0cC1iaWctbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7Zm9udC1zaXplOjE5LjVweDtsaW5lLWhlaWdodDoyN3B4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6MH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LW1peC10ZXh0e2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MjdweH0ueXRwLWF1dG9uYXYtYXV0aG9yLWFuZC12aWV3e2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZS55dHAtcGxheWVyLWNvbnRlbnQsLnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206MH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LW92ZXJsYXl7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZXtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZFtkYXRhLWlzLWxpc3Q9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtbGl2ZT10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmRbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1hdXRvbmF2LWxpdmUtc3RhbXB7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojYzAwfS55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bm90KFtkYXRhLWlzLWxpdmU9dHJ1ZV0pIC55dHAtYXV0b25hdi1saXZlLXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0gLnl0cC1hdXRvbmF2LXVwY29taW5nLXN0YW1we3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCl9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZDpub3QoW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0pIC55dHAtYXV0b25hdi11cGNvbWluZy1zdGFtcHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtY29udGFpbmVyW2RhdGEtaXMtbGlzdD10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNvbnRhaW5lcltkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy11cGNvbWluZz10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy1saXZlPXRydWVdIC55dHAtYXV0b25hdi1saXZlLXN0YW1we3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6I2MwMH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXI6bm90KFtkYXRhLWlzLWxpdmU9dHJ1ZV0pIC55dHAtYXV0b25hdi1saXZlLXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy11cGNvbWluZz10cnVlXSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXI6bm90KFtkYXRhLWlzLXVwY29taW5nPXRydWVdKSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bm90KFtkYXRhLWlzLW1peD10cnVlXSkgLnl0cC1hdXRvbmF2LWxpc3Qtb3ZlcmxheXtkaXNwbGF5Om5vbmV9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlLmVuZGVkLW1vZGV7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dHAtYWQtb3ZlcmxheS1vcGVuLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYWQtb3ZlcmxheS1jb250YWluZXJ7b3BhY2l0eTouM30ueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye2hlaWdodDpjYWxjKDEwMCUgLSAxNDNweCl9Lnl0cC1iaWctbW9kZS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcntoZWlnaHQ6Y2FsYygxMDAlIC0gMTYwcHgpfS55dHAtYXV0b25hdi1vdmVybGF5LWNhbmNlbGxlZC1zdGF0ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXItY2xvc2UtYnV0dG9ue2Rpc3BsYXk6bm9uZTt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRFNUlEWXVOREVnTVRjdU5Ua2dOU0F4TWlBeE1DNDFPU0EyTGpReElEVWdOU0EyTGpReElERXdMalU1SURFeUlEVWdNVGN1TlRrZ05pNDBNU0F4T1NBeE1pQXhNeTQwTVNBeE55NDFPU0F4T1NBeE9TQXhOeTQxT1NBeE15NDBNU0F4TW5vaUx6NDhMM04yWno0PSk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JhY2tncm91bmQtc2l6ZToyNHB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC11cGRhdGVkIC55dHAtcGxheWVyLWNvbnRlbnR7cG9zaXRpb246dW5zZXR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1jb250YWluZXJ7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC11cGRhdGVkIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdG9wYmFyLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVyLWNsb3NlLWJ1dHRvbntkaXNwbGF5OmJsb2NrfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXJ7bWFyZ2luLXRvcDowOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi12aWRlby1pbmZve21hcmdpbi10b3A6MTJweDt3aWR0aDoxMDAlfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlsey13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWxpdmUtc3RhbXAsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LXVwY29taW5nLXN0YW1we2JvdHRvbTo4cHg7cmlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6MTBweDtsaW5lLWhlaWdodDoxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzp1bnNldDtwYWRkaW5nOjAgOHB4fS55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uLWNvbnRhaW5lcnt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b24sLnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxNC40cHg7d2lkdGg6MzZweDtib3JkZXItcmFkaXVzOjE0LjRweDt0b3A6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJek1DSWdhR1ZwWjJoMFBTSXhNaUlnWm1sc2JEMGlibTl1WlNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTWpJdU55QXhNV015TGprMUlEQWdOUzR6TFRJdU1qRWdOUzR6TFRWekxUSXVNelV0TlMwMUxqTXROVWczTGpORE5DNHpOU0F4SURJZ015NHlNU0F5SURaek1pNHpOU0ExSURVdU15QTFlaUlnWTJ4cGNDMXlkV3hsUFNKbGRtVnViMlJrSWlCdmNHRmphWFI1UFNJdU5TSXZQanh3WVhSb0lHWnBiR3c5SWlNd01EQWlJR1pwYkd3dGIzQmhZMmwwZVQwaUxqTWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRUY3VNeUF4UXpRdU16VWdNU0F5SURNdU1qRWdNaUEyY3pJdU16VWdOU0ExTGpNZ05XZ3hOUzQwUVRVdU1UWWdOUzR4TmlBd0lEQWdNQ0F5T0NBMmJDMHVNRE10TGpVMFFUVXVNVFlnTlM0eE5pQXdJREFnTUNBeU1pNDNJREY2YlRFMUxqUWdNVEZqTXk0ME5TQXdJRFl1TXkweUxqWWdOaTR6TFRaekxUSXVPRFV0TmkwMkxqTXROa2czTGpORE15NDROU0F3SURFZ01pNDJJREVnTm5NeUxqZzFJRFlnTmk0eklEWjZJaUJqYkdsd0xYSjFiR1U5SW1WMlpXNXZaR1FpSUc5d1lXTnBkSGs5SWk0MUlpOCtQQzl6ZG1jKyk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxOHB4O3dpZHRoOjMwcHg7YmFja2dyb3VuZC1pbWFnZTp1bnNldDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpO2JvcmRlci1yYWRpdXM6OXB4O21hcmdpbjowIDlweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC5kZWxoaS1mYXN0LWZvbGxvdy1hdXRvbmF2LXRvZ2dsZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdGV4dC1wcmltYXJ5LCNmZmYpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLmRlbGhpLWZhc3QtZm9sbG93LWF1dG9uYXYtdG9nZ2xlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4xKSl9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257bWFyZ2luOjAgY2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsIDU2cHgpIC0gMzBweCkvMil9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257aGVpZ2h0OjEzLjVweDt3aWR0aDoyMi41cHg7Ym9yZGVyLXJhZGl1czo2Ljc1cHg7bWFyZ2luOjAgNXB4fS55dHAtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbiwueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxMC44cHg7d2lkdGg6MjdweDtib3JkZXItcmFkaXVzOjEwLjhweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxOHB4O3dpZHRoOjQ1cHg7Ym9yZGVyLXJhZGl1czoxOHB4fS55dHAtZW1iZWQgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257aGVpZ2h0OjEycHg7d2lkdGg6MzBweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b25bYXJpYS1jaGVja2VkPXRydWVde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJek1DSWdhR1ZwWjJoMFBTSXhNaUlnWm1sc2JEMGlibTl1WlNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTWpJdU55QXhNV015TGprMUlEQWdOUzR6TFRJdU1qRWdOUzR6TFRWekxUSXVNelV0TlMwMUxqTXROVWczTGpORE5DNHpOU0F4SURJZ015NHlNU0F5SURaek1pNHpOU0ExSURVdU15QTFlbTB0TWk0M0xTNDNOWFl0T0M0MWJEWXVOeUEwTGpJMmVpSWdZMnhwY0MxeWRXeGxQU0psZG1WdWIyUmtJaUJ2Y0dGamFYUjVQU0l1TlNJdlBqeHdZWFJvSUdacGJHdzlJaU13TURBaUlHWnBiR3d0YjNCaFkybDBlVDBpTGpNaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRjdU15QXhRelF1TXpVZ01TQXlJRE11TWpFZ01pQTJjekl1TXpVZ05TQTFMak1nTldneE5TNDBRVFV1TVRZZ05TNHhOaUF3SURBZ01DQXlPQ0EyYkMwdU1ETXRMalUwUVRVdU1UWWdOUzR4TmlBd0lEQWdNQ0F5TWk0M0lERjZiVEUxTGpRZ01URmpNeTQwTlNBd0lEWXVNeTB5TGpZZ05pNHpMVFp6TFRJdU9EVXROaTAyTGpNdE5rZzNMak5ETXk0NE5TQXdJREVnTWk0MklERWdObk15TGpnMUlEWWdOaTR6SURaNklpQmpiR2x3TFhKMWJHVTlJbVYyWlc1dlpHUWlJRzl3WVdOcGRIazlJaTQxSWk4K1BDOXpkbWMrKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjIwLjRweDt3aWR0aDoyMC40cHg7Ym9yZGVyLXJhZGl1czoyMC40cHg7bWFyZ2luLXRvcDotM3B4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SW01dmJtVWlJSFpwWlhkQ2IzZzlJakFnTUNBeE55QXhOeUkrUEhCaGRHZ2dabWxzYkQwaUl6Y3hOekUzTVNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOT0M0MUlERTJZVGN1TlNBM0xqVWdNQ0F4SURBZ01DMHhOU0EzTGpVZ055NDFJREFnTUNBd0lEQWdNVFVpSUdOc2FYQXRjblZzWlQwaVpYWmxibTlrWkNJdlBqeHdZWFJvSUdacGJHdzlJaU13TURBaUlHWnBiR3d0YjNCaFkybDBlVDBpTGpFMUlpQm1hV3hzTFhKMWJHVTlJbVYyWlc1dlpHUWlJR1E5SWsweE55QTRMalZoT0M0MUlEZ3VOU0F3SURFZ01TMHhOeUF3SURndU5TQTRMalVnTUNBd0lERWdNVGNnTUcwdE1TQXdZVGN1TlNBM0xqVWdNQ0F4SURFdE1UVWdNQ0EzTGpVZ055NDFJREFnTUNBeElERTFJREFpSUdOc2FYQXRjblZzWlQwaVpYWmxibTlrWkNJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHUTlJazAxTGpVZ01USm9NbFkxYUMweWVtMDBMVGQyTjJneVZqVjZJaTgrUEM5emRtYyspOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1pY29ucyAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntoZWlnaHQ6MTRweDt3aWR0aDoxNHB4O2JvcmRlci1yYWRpdXM6N3B4O21hcmdpbjoycHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l6TmlJZ2FHVnBaMmgwUFNJek5pSWdabWxzYkQwaWJtOXVaU0lnZG1sbGQwSnZlRDBpTUNBd0lETTJJRE0ySWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5NVEl1TnpVZ05DNDFhQzB6WXkwdU5pQXdMVEV1TVRjdU1qTXRNUzQyTGpZMUxTNDBNaTQwTXkwdU5qVWdNUzB1TmpVZ01TNDJkakl5TGpWak1DQXVOVGt1TWpNZ01TNHhOaTQyTlNBeExqVTVMalF6TGpReUlERWdMalkySURFdU5pNDJObWd6WXk0MU9TQXdJREV1TVRZdExqSTBJREV1TlRrdExqWTJMalF5TFM0ME15NDJOaTB4SUM0Mk5pMHhMalU1VmpZdU56VmpNQzB1TmkwdU1qUXRNUzR4TnkwdU5qWXRNUzQyTFM0ME15MHVOREl0TVMwdU5qVXRNUzQxT1MwdU5qVnRNVE11TlNBd2FDMHpZeTB1TmlBd0xURXVNVGN1TWpNdE1TNDJMalkxTFM0ME1pNDBNeTB1TmpVZ01TMHVOalVnTVM0MmRqSXlMalZqTUNBdU5Ua3VNak1nTVM0eE5pNDJOU0F4TGpVNUxqUXpMalF5SURFZ0xqWTJJREV1Tmk0Mk5tZ3pZeTQxT1NBd0lERXVNVFl0TGpJMElERXVOVGt0TGpZMkxqUXlMUzQwTXk0Mk5pMHhJQzQyTmkweExqVTVWall1TnpWak1DMHVOaTB1TWpRdE1TNHhOeTB1TmpZdE1TNDJMUzQwTXkwdU5ESXRNUzB1TmpVdE1TNDFPUzB1TmpVaUx6NDhMM04yWno0PSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5cHggOXB4O2JhY2tncm91bmQtc2l6ZTo5cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YWxsIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC5kZWxoaS1mYXN0LWZvbGxvdy1hdXRvbmF2LXRvZ2dsZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJak1EQXdJaUJrUFNKTk1USXVOelVnTkM0MWFDMHpZeTB1TmlBd0xURXVNVGN1TWpNdE1TNDJMalkxTFM0ME1pNDBNeTB1TmpVZ01TMHVOalVnTVM0MmRqSXlMalZqTUNBdU5Ua3VNak1nTVM0eE5pNDJOU0F4TGpVNUxqUXpMalF5SURFZ0xqWTJJREV1Tmk0Mk5tZ3pZeTQxT1NBd0lERXVNVFl0TGpJMElERXVOVGt0TGpZMkxqUXlMUzQwTXk0Mk5pMHhJQzQyTmkweExqVTVWall1TnpWak1DMHVOaTB1TWpRdE1TNHhOeTB1TmpZdE1TNDJMUzQwTXkwdU5ESXRNUzB1TmpVdE1TNDFPUzB1TmpWdE1UTXVOU0F3YUMwell5MHVOaUF3TFRFdU1UY3VNak10TVM0MkxqWTFMUzQwTWk0ME15MHVOalVnTVMwdU5qVWdNUzQyZGpJeUxqVmpNQ0F1TlRrdU1qTWdNUzR4Tmk0Mk5TQXhMalU1TGpRekxqUXlJREVnTGpZMklERXVOaTQyTm1nell5NDFPU0F3SURFdU1UWXRMakkwSURFdU5Ua3RMalkyTGpReUxTNDBNeTQyTmkweElDNDJOaTB4TGpVNVZqWXVOelZqTUMwdU5pMHVNalF0TVM0eE55MHVOall0TVM0MkxTNDBNeTB1TkRJdE1TMHVOalV0TVM0MU9TMHVOalVpTHo0OEwzTjJaejQ9KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXByaW1hcnksI2ZmZil9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7aGVpZ2h0OjEwLjVweDt3aWR0aDoxMC41cHg7Ym9yZGVyLXJhZGl1czo1LjI1cHg7bWFyZ2luOjFweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7bGVmdDotMnB4O2hlaWdodDoxNS4zcHg7d2lkdGg6MTUuM3B4O2JvcmRlci1yYWRpdXM6MTUuM3B4O21hcmdpbi10b3A6LTIuMjVweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uOmFmdGVye2xlZnQ6MDtoZWlnaHQ6MjUuNXB4O3dpZHRoOjI1LjVweDtib3JkZXItcmFkaXVzOjI1LjVweDttYXJnaW4tdG9wOi0zLjc1cHh9Lnl0cC1lbWJlZCAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntsZWZ0OjA7aGVpZ2h0OjE3cHg7d2lkdGg6MTdweDtib3JkZXItcmFkaXVzOjE3cHg7bWFyZ2luLXRvcDotMi41cHh9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b25bYXJpYS1jaGVja2VkPXRydWVdOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SW01dmJtVWlJSFpwWlhkQ2IzZzlJakFnTUNBeE55QXhOeUkrUEhCaGRHZ2dabWxzYkQwaUl6QXdNQ0lnWm1sc2JDMXZjR0ZqYVhSNVBTSXVNVFVpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVEUzSURndU5XRTRMalVnT0M0MUlEQWdNU0F4TFRFM0lEQWdPQzQxSURndU5TQXdJREFnTVNBeE55QXdiUzAxSURCTU5pNDFJRFYyTjNwdExURXVPRFlnTUV3M0xqVWdOaTQ0TW5ZekxqTTJlazA0TGpVZ01UWmhOeTQxSURjdU5TQXdJREVnTUNBd0xURTFJRGN1TlNBM0xqVWdNQ0F3SURBZ01DQXhOU0lnWTJ4cGNDMXlkV3hsUFNKbGRtVnViMlJrSWk4K1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTVRZZ09DNDFZVGN1TlNBM0xqVWdNQ0F4SURFdE1UVWdNQ0EzTGpVZ055NDFJREFnTUNBeElERTFJREJ0TFRRZ01FdzJMalVnTVRKV05Yb2lJR05zYVhBdGNuVnNaVDBpWlhabGJtOWtaQ0l2UGp3dmMzWm5QZz09KTtsZWZ0OjFweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE1LjZweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE1LjZweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTUuNnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJak1EQXdJaUJrUFNKdE1UY2dPQzQyTFRZdU1URXRNeTQyTVdNdE1TNDFMUzQ0T0MwekxqTTVMakl0TXk0ek9TQXhMamswZGpJeUxqRXpZekFnTVM0M05DQXhMamc1SURJdU9ESWdNeTR6T1NBeExqazBUREUzSURJM0xqUjZiVEFnTUhZeE9DNDRURE16SURFNGVpSXZQand2YzNablBnPT0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5cHggOXB4O2JhY2tncm91bmQtc2l6ZTo5cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLmRlbGhpLWZhc3QtZm9sbG93LWF1dG9uYXYtdG9nZ2xlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJrUFNKdE1UY2dPQzQyTFRZdU1URXRNeTQyTVdNdE1TNDFMUzQ0T0MwekxqTTVMakl0TXk0ek9TQXhMamswZGpJeUxqRXpZekFnTVM0M05DQXhMamc1SURJdU9ESWdNeTR6T1NBeExqazBUREUzSURJM0xqUjZiVEFnTUhZeE9DNDRURE16SURFNGVpSXZQand2YzNablBnPT0pO2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtc29saWQsIzBmMGYwZil9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDExLjdweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDExLjdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTEuN3B4KX0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE5LjVweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE5LjVweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTkuNXB4KX0ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWRlbGhpLW1vZGVybiAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV06YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg4cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCg4cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDhweCl9Lnl0cC1lbWJlZCAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV06YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxM3B4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTNweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTNweCl9Lnl0cC1iZXplbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3dpZHRoOjUycHg7aGVpZ2h0OjUycHg7ei1pbmRleDoxOTttYXJnaW4tbGVmdDotMjZweDttYXJnaW4tdG9wOi0yNnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7Ym9yZGVyLXJhZGl1czoyNnB4Oy13ZWJraXQtYW5pbWF0aW9uOnl0cC1iZXplbC1mYWRlb3V0IC41cyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC1iZXplbC1mYWRlb3V0IC41cyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVse2xlZnQ6NTAlO3RvcDo1MCU7d2lkdGg6NzhweDtoZWlnaHQ6NzhweDttYXJnaW4tbGVmdDotMzlweDttYXJnaW4tdG9wOi0zOXB4O2JvcmRlci1yYWRpdXM6MzlweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpOy13ZWJraXQtYW5pbWF0aW9uOnl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtZmFkZW91dCAxcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAxIG5vcm1hbCBmb3J3YXJkczthbmltYXRpb246eXRwLWRlbGhpLW1vZGVybi1iZXplbC1mYWRlb3V0IDFzIGN1YmljLWJlemllciguMDUsMCwwLDEpIDEgbm9ybWFsIGZvcndhcmRzfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYmV6ZWwtaWNvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWJpZy1tb2RlIC55dHAtYmV6ZWx7d2lkdGg6NzhweDtoZWlnaHQ6NzhweDttYXJnaW4tbGVmdDotMzlweDttYXJnaW4tdG9wOi0zOXB4O2JvcmRlci1yYWRpdXM6MzlweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1iZXplbHt3aWR0aDo2NHB4O2hlaWdodDo2NHB4O21hcmdpbi1sZWZ0Oi0zMnB4O21hcmdpbi10b3A6LTMycHg7Ym9yZGVyLXJhZGl1czozMnB4fS55dHAtYmV6ZWwtaWNvbnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21hcmdpbjo2cHh9Lnl0cC1wbGF5ZXItY29udGVudCAueXRwLWJlemVsLWljb257d2lkdGg6NDhweDtoZWlnaHQ6NDhweDttYXJnaW46MnB4fS55dHAtYmlnLW1vZGUgLnl0cC1iZXplbC1pY29uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtYmV6ZWwtaWNvbnt3aWR0aDo1NHB4O2hlaWdodDo1NHB4O21hcmdpbjoxMnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWJlemVsLWljb257d2lkdGg6NDhweDtoZWlnaHQ6NDhweDttYXJnaW46OHB4fS55dHAtYmV6ZWwtdGV4dC13cmFwcGVye3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO3RvcDoxMCU7ei1pbmRleDoxOX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVsLXRleHQtd3JhcHBlcnstd2Via2l0LWFuaW1hdGlvbjp5dHAtZGVsaGktbW9kZXJuLWJlemVsLXRleHQtZmFkZW91dCAxcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAxIG5vcm1hbCBmb3J3YXJkczthbmltYXRpb246eXRwLWRlbGhpLW1vZGVybi1iZXplbC10ZXh0LWZhZGVvdXQgMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHN9Lnl0cC1iZXplbC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MTBweCAyMHB4O2ZvbnQtc2l6ZToxNzUlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjNweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVsLXRleHR7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKX0ueXRwLWJlemVsLXRleHQtaGlkZSAueXRwLWJlemVsLXRleHR7ZGlzcGxheTpub25lfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX19QGtleWZyYW1lcyB5dHAtYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjB9MjUlLDc1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zMyk7dHJhbnNmb3JtOnNjYWxlKDEuMzMpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgeXRwLWRlbGhpLW1vZGVybi1iZXplbC1mYWRlb3V0ezAle29wYWNpdHk6MH0yNSUsNzUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMzKTt0cmFuc2Zvcm06c2NhbGUoMS4zMyl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtdGV4dC1mYWRlb3V0ezAle29wYWNpdHk6MH0yNSUsNzUle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgeXRwLWRlbGhpLW1vZGVybi1iZXplbC10ZXh0LWZhZGVvdXR7MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3BvaW50ZXItZXZlbnRzOmFsbDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjYyfS55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvblthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLWNhcmRzLWJ1dHRvbi1pY29ue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKTtib3JkZXItcmFkaXVzOjE4cHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9ue21heC13aWR0aDo4MHB4O3dpZHRoOjM2cHh9Lnl0cC1zaG93LWNhcmRzLXRpdGxlIC55dHAtY2FyZHMtYnV0dG9ue21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKS55dHAtc21hbGwtbW9kZSAueXRwLWNhcmRzLWJ1dHRvbntwYWRkaW5nLXRvcDoxNnB4fS55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtkaXNwbGF5OmJsb2NrfS55dHAtY2FyZHMtYnV0dG9uLWljb24tc2hvcHBpbmcsLnl0cC1zbWFsbC1tb2RlIC55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtkaXNwbGF5Om5vbmV9Lnl0cC1jYXJkcy1zaG9wcGluZy1hY3RpdmUgLnl0cC1jYXJkcy1idXR0b24taWNvbi1zaG9wcGluZ3tkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWNhcmRzLXNob3BwaW5nLWFjdGl2ZSAueXRwLWNhcmRzLWJ1dHRvbi1pY29uLWRlZmF1bHR7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uLC55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvbnt3aWR0aDphdXRvO2hlaWdodDphdXRvfS55dHAtY2FyZHMtYnV0dG9uLWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtYnV0dG9uLWljb257d2lkdGg6NTRweDtoZWlnaHQ6NTRweH0ueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1jYXJkcy1idXR0b24tdGl0bGV7Zm9udC1zaXplOjIwcHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uLXRpdGxle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2FyZHMtYnV0dG9uIC55dHAtc3ZnLXNoYWRvd3std2Via2l0LXRyYW5zaXRpb246c3Ryb2tlLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpzdHJva2Utb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3d7c3Ryb2tlLW9wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246c3Ryb2tlLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjI1czt0cmFuc2l0aW9uOnN0cm9rZS1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC4yNXN9Lnl0cC1jYXJkcy1idXR0b24gLnl0cC1zdmctc2hhZG93LWZpbGx7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3ctZmlsbHtmaWxsLW9wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246ZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC4yNXM7dHJhbnNpdGlvbjpmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjI1c30ueXRwLWNhcmRzLXNob3BwaW5nLWFjdGl2ZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtYnV0dG9uIC55dHAtc3ZnLWZpbGx7ZmlsbDojMjc5M2U2fS55dHAtY2FyZHMtc2hvcHBpbmctYWN0aXZlLnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy1idXR0b24gLnl0cC1zdmctc2hhZG93e3N0cm9rZTojZmZmO3N0cm9rZS1vcGFjaXR5OjF9Lnl0cC1jYXJkcy1zaG9wcGluZy1hY3RpdmUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3ctZmlsbHtmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjF9Lnl0cC1jYXJkcy10ZWFzZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjguNXB4O3JpZ2h0OjA7bWF4LXdpZHRoOjkwJTtvcGFjaXR5Oi43NTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjYxOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2Vye3RvcDoxM3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKS55dHAtc21hbGwtbW9kZSAueXRwLWNhcmRzLXRlYXNlcnt0b3A6MTZweH0uaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmc6bm90KC52aWRlb0FkVWlSZWRlc2lnbikgLnl0cC1jYXJkcy10ZWFzZXJ7dG9wOjQwcHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXIsLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlcntvcGFjaXR5OjF9Lnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXJ7b3BhY2l0eTouOX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlcjpob3ZlcntvcGFjaXR5OjF9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1jYXJkcy10ZWFzZXItc2hvd24pIC55dHAtY2FyZHMtdGVhc2VyLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1jYXJkcy10ZWFzZXJ7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIC4zM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIC4zM3N9Lnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWNhcmRzLXRlYXNlcnstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30ueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3gsLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHtoZWlnaHQ6MzFweH0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveCwueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7aGVpZ2h0OjQ2cHh9Lnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItYm94e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czoycHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllciguNCwwLDEsMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMCkgdHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgMDt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IDB9Lnl0cC1iaWctbW9kZSAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7cmlnaHQ6MjdweH0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKDE4cHgpOy1tcy10cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMThweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKDE4cHgpfS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMjdweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgyN3B4KTt0cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMjdweCl9W2Rpcj1ydGxdIC55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMThweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMThweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKC0xOHB4KX1bZGlyPXJ0bF0gLnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMjdweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMjdweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKC0yN3B4KX0ueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAzNnB4IDAgMTBweDttYXgtd2lkdGg6MDtvcGFjaXR5OjA7Y29sb3I6IzAwMDtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEwOS4wOTA5MDklO2xpbmUtaGVpZ2h0OjMxcHg7dGV4dC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjE2NXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXgtd2lkdGggMHMgZWFzZSAuMTY1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjE2NXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXgtd2lkdGggMHMgZWFzZSAuMTY1c30ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7cGFkZGluZzowIDY2cHggMCAxMnB4O2xpbmUtaGVpZ2h0OjQ2cHh9Lnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHttYXgtd2lkdGg6NDE1cHg7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xNjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjQxNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjQxNXN9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7bWF4LXdpZHRoOjYzNXB4fS55dHAtY2FyZHMtdGVhc2VyLWNoYW5uZWwtYXZhdGFye2Rpc3BsYXk6bm9uZX0ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3dpZHRoOjMwcHg7bGVmdDpjYWxjKDEwMCUgLSAzMHB4KTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOndpZHRoIC4zM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7b3BhY2l0eToxOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSk7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6MThweH0ueXRwLWJpZy1tb2RlLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHtib3JkZXItcmFkaXVzOjIycHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2hhbm5lbC1hdmF0YXJ7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDttYXJnaW46NHB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnR9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWNoYW5uZWwtYXZhdGFye21hcmdpbjoxMnB4fS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlLnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHt3aWR0aDoxMDAlO2xlZnQ6MDstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMnMsbGVmdCAuMzNzIGN1YmljLWJlemllciguMDUsMCwwLDEpIC4yczt0cmFuc2l0aW9uOndpZHRoIC4zM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgLjJzLGxlZnQgLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMnN9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItaW5mby1pY29ue2hlaWdodDozMHB4O3dpZHRoOjMwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdH0ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci1jbG9zZS1idXR0b257aGVpZ2h0OjMwcHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3BhZGRpbmc6MDttYXJnaW46MCA1cHg7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHR9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2xvc2UtYnV0dG9uIHBhdGh7ZmlsbDojNzE3MTcxfS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2NvbG9yOiNmZmY7bGluZS1oZWlnaHQ6MzBweDttYXgtd2lkdGg6MzUwcHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItYm94e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTpub25lfS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci1pbmZvLWljb257aGVpZ2h0OjQ1cHg7d2lkdGg6NDVweH0ueXRwLWJpZy1tb2RlLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2xvc2UtYnV0dG9ue2hlaWdodDo0NXB4O3dpZHRoOjMwcHg7bWFyZ2luOjAgNy41cHh9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWxhYmVse2xpbmUtaGVpZ2h0OjQ1cHg7bWF4LXdpZHRoOjUyNXB4fS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3BhZGRpbmc6MH0ueXRwLWVtYmVkLnl0cC1jYXJkcy10ZWFzZXItc2hvd24ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNocm9tZS10b3AtYnV0dG9ucz46bm90KC55dHAtY2FyZHMtdGVhc2VyKXt2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC10aXRsZXttaW4taGVpZ2h0OjUycHh9Lnl0cC1iaWctbW9kZS55dHAtdGl0bGUtZW5hYmxlLWNoYW5uZWwtbG9nbyAueXRwLXRpdGxle21pbi1oZWlnaHQ6NzVweH0ueXRwLXNob3J0cy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC55dHAtdGl0bGV7bWluLWhlaWdodDo0MnB4fTpub3QoLnl0cC1zaG9ydHMtbW9kZSkueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC10aXRsZS10ZXh0e3BhZGRpbmctbGVmdDo1MHB4fTpub3QoLnl0cC1zaG9ydHMtbW9kZSkueXRwLWJpZy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLWxlZnQ6NzVweH0ueXRwLXRpdGxlLWxpbmt7ZGlzcGxheTpibG9jazt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRwLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo0MHB4O2hlaWdodDo0MHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowO21hcmdpbjo1cHg7LXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjpjb250ZW50LWJveDtiYWNrZ3JvdW5kLW9yaWdpbjpjb250ZW50LWJveDtmbG9hdDpsZWZ0O2JvcmRlci1yYWRpdXM6NTAlfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1jaGFubmVsLWxvZ297d2lkdGg6NjBweDtoZWlnaHQ6NjBweH0ueXRwLWVtYmVkLW1vYmlsZSAueXRwLXRpdGxlLWNoYW5uZWwtbG9nbywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo0OHB4O2hlaWdodDo0OHB4O21hcmdpbjowfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluezAle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7bWF4LXdpZHRoOjEwJX0yNSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KX03NSV7bWF4LXdpZHRoOjEwMCV9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1pbnswJXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21heC13aWR0aDoxMCV9MjUle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSl9NzUle21heC13aWR0aDoxMDAlfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1vdXR7MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MDBweH03NSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MHB4fX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1jaGFubmVsLWZhZGUtb3V0ezAle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSk7d2lkdGg6NTAwcHh9NzUle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSk7d2lkdGg6NTBweH19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC10aXRsZS1jaGFubmVsLWZhZGUtaW4tYmlnLW1vZGV7MCV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDttYXgtd2lkdGg6MTUlfTI1JXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpfTc1JXttYXgtd2lkdGg6MTAwJX19QGtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluLWJpZy1tb2RlezAle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7bWF4LXdpZHRoOjE1JX0yNSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KX03NSV7bWF4LXdpZHRoOjEwMCV9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLW91dC1iaWctbW9kZXswJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO3dpZHRoOjUwMHB4fTc1JXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO3dpZHRoOjcwcHh9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1vdXQtYmlnLW1vZGV7MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MDBweH03NSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo3MHB4fX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1leHBhbmRlZC1mYWRlLWluezAle29wYWNpdHk6MH0yNSV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC10aXRsZS1leHBhbmRlZC1mYWRlLW91dHswJXtvcGFjaXR5OjF9MjUle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtb3V0ezAle29wYWNpdHk6MX0yNSV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lnl0cC10aXRsZS1jaGFubmVse2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoyNXB4O2Rpc3BsYXk6bm9uZTtoZWlnaHQ6NTBweDttYXJnaW4tbGVmdDotNXB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6N3B4O2xlZnQ6MDt3aWR0aDo1MHB4fS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1jaGFubmVse3dpZHRoOjcwcHg7aGVpZ2h0OjcwcHg7bWFyZ2luLXRvcDoxMHB4fS55dHAtdGl0bGUtZW5hYmxlLWNoYW5uZWwtbG9nbyAueXRwLXRpdGxlLWNoYW5uZWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXh9Lnl0cC10aXRsZS1jaGFubmVsLnl0cC10aXRsZS1zaG93LWV4cGFuZGVkey13ZWJraXQtYW5pbWF0aW9uOnl0cC10aXRsZS1jaGFubmVsLWZhZGUtaW4gLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtY2hhbm5lbC55dHAtdGl0bGUtc2hvdy1leHBhbmRlZHstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluLWJpZy1tb2RlIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTthbmltYXRpb246eXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1pbi1iaWctbW9kZSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC10aXRsZS1jaGFubmVsLnl0cC10aXRsZS1leHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO2JvcmRlci1yYWRpdXM6MjVweDttYXgtd2lkdGg6MTAwJTt6LWluZGV4OjE7d2lkdGg6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtY2hhbm5lbC55dHAtdGl0bGUtZXhwYW5kZWR7Ym9yZGVyLXJhZGl1czozNXB4fS55dHAtdGl0bGUtZXhwYW5kZWQtb3ZlcmxheXtkaXNwbGF5OmNvbnRlbnRzO21heC13aWR0aDoxMDAlO29wYWNpdHk6MDtwYWRkaW5nLXJpZ2h0OjhweDt3aWR0aDphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e21heC13aWR0aDoxMDAlfS55dHAtdGl0bGUtZXhwYW5kZWQgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e29wYWNpdHk6MX0ueXRwLXRpdGxlLXNob3ctZXhwYW5kZWQgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e29wYWNpdHk6MTstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtZXhwYW5kZWQtZmFkZS1pbiAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC10aXRsZS1leHBhbmRlZC1mYWRlLWluIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtc2hvdy1leHBhbmRlZCAueXRwLXRpdGxlLWV4cGFuZGVkLW92ZXJsYXl7LXdlYmtpdC1hbmltYXRpb246eXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtaW4tYmlnLW1vZGUgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtdGl0bGUtZXhwYW5kZWQtZmFkZS1pbi1iaWctbW9kZSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC10aXRsZS1leHBhbmRlZC1oZWFkaW5ne21hcmdpbjo1cHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC10aXRsZS1leHBhbmRlZC10aXRsZXtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bWFyZ2luOjB9Lnl0cC1iaWctbW9kZSAueXRwLXRpdGxlLWV4cGFuZGVkLXRpdGxle2ZvbnQtc2l6ZToyMnB4fS55dHAtdGl0bGUtZXhwYW5kZWQtdGl0bGUgYXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtdGl0bGUtZXhwYW5kZWQtc3VidGl0bGV7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1leHBhbmRlZC1zdWJ0aXRsZXtmb250LXNpemU6MTZweH0ueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZS1jaGFubmVsIC55dHAtc2J7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjttYXJnaW46NXB4O2hlaWdodDphdXRvO3dpZHRoOmF1dG87cGFkZGluZzowO3BhZGRpbmctbGVmdDoxNnB4O3RleHQtc2hhZG93Om5vbmU7bWFyZ2luLXJpZ2h0OjdweH0ueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJlLGEueXRwLXNiLXN1YnNjcmliZXttYXJnaW4tbGVmdDo2NXB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtdGl0bGUtY2hhbm5lbCAueXRwLXNiLXN1YnNjcmliZSwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLXRpdGxlLWNoYW5uZWwgLnl0cC1zYi11bnN1YnNjcmliZXtmb250LXNpemU6MTZweDtwYWRkaW5nOjE0cHggMjBweDttYXJnaW4tcmlnaHQ6N3B4fS55dHAtdGl0bGUtZXhwYW5kZWQgLnl0cC10aXRsZS1iZWFjb24sLnl0cC10aXRsZS1leHBhbmRlZCAueXRwLXRpdGxlLXN1YnRleHQsLnl0cC10aXRsZS1leHBhbmRlZCAueXRwLXRpdGxlLXRleHR7ZGlzcGxheTpub25lfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtYmVhY29uLXB1bHNlezAle2JhY2tncm91bmQ6YmxhY2s7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtsZWZ0OjVweDt0b3A6NXB4fTUwJXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7bGVmdDowO3RvcDowfX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1iZWFjb24tcHVsc2V7MCV7YmFja2dyb3VuZDpibGFjazt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2xlZnQ6NXB4O3RvcDo1cHh9NTAle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtsZWZ0OjA7dG9wOjB9fS55dHAtdGl0bGUtYmVhY29ue2JvcmRlci1yYWRpdXM6MjVweDtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtYmVhY29uLXB1bHNlIDJzIDU7YW5pbWF0aW9uOnl0cC10aXRsZS1iZWFjb24tcHVsc2UgMnMgNX0udW5zdGFydGVkLW1vZGUgLnl0cC10aXRsZS1iZWFjb257ZGlzcGxheTpibG9ja30ueXRwLWJpZy1tb2RlIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLnl0cC1jaGFwdGVyLWNvbnRhaW5lci1kaXNhYmxlZCwueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbi55dHAtY2hhcHRlci1jb250YWluZXItZGlzYWJsZWR7b3BhY2l0eTouOX0ueXRwLWJpZy1tb2RlIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDttYXgtd2lkdGg6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbnstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9ue2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbntoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1jaGFwdGVyLWNvbnRhaW5lci1kaXNhYmxlZCAueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbiwueXRwLWVtYmVkIC55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9uLC55dHAtcHJvZmlsZS1wYWdlIC55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9ue2Rpc3BsYXk6bm9uZX0ueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbnstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjAgMCAyMHB4O2ZsZXg6MCAwIDIwcHg7d2lkdGg6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3R0b206MXB4fS55dHAtY2hhcHRlci10aXRsZS1jb250ZW50ey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6MCAxIGF1dG87ZmxleDowIDEgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaGFwdGVyLXRpdGxlLWNvbnRlbnR7bGluZS1oZWlnaHQ6MjRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1iaWctbW9kZSAueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbnt3aWR0aDoyOHB4fS55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1jaGFwdGVyLXRpdGxlLXByZWZpeHtwYWRkaW5nLXJpZ2h0OjVweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUtcHJlZml4LC55dHAtbGl2ZSAueXRwLWNoYXB0ZXItdGl0bGV7ZGlzcGxheTpub25lfS55dHAtZW1iZWQgLnl0cC1jaGFwdGVyLWNvbnRhaW5lciAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hhcHRlci1jb250YWluZXIgLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257Y3Vyc29yOnRleHQ7d2lkdGg6MTAwJX0ueXRwLWNoYXB0ZXItY29udGFpbmVyIC55dHAtcHJvZmlsZS1wYWdlLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257Y3Vyc29yOnRleHR9Lnl0cC1leHAtYm90dG9tLWNvbnRyb2wtZmxleGJveCAueXRwLWNoYXB0ZXItY29udGFpbmVyey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6MCAxIDEwMCU7ZmxleDowIDEgMTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc306bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtY2hhcHRlci1jb250YWluZXJ7ZmxvYXQ6bGVmdH0ueXRwLWNoYXB0ZXItY29udGFpbmVye2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxMDklO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MCA1cHggMCAwO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDo0N3B4fS55dHAtZW1iZWQgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntsaW5lLWhlaWdodDozOXB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntsaW5lLWhlaWdodDo1M3B4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy10b3A6dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDowIDEwMCBhdXRvO2ZsZXg6MCAxMDAgYXV0b30ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntwYWRkaW5nLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNoYXB0ZXItY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLWNvbnRleHRtZW51e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjIzMDA7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO3RleHQtYWxpZ246bGVmdDtkaXJlY3Rpb246bHRyO2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEuMzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO3dpbGwtY2hhbmdlOndpZHRoLGhlaWdodDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1wb3B1cC55dHAtZGVsaGktbW9kZXJuLWNvbnRleHRtZW51e2JvcmRlci1yYWRpdXM6MTJweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtY29udGV4dG1lbnUgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MjBweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIwcHg7dG9wOjEycHg7d2lkdGg6MjBweH0ueXRwLWNvbnRleHRtZW51IC55dHAtY29sbGFwc2U6aG92ZXJ7b3BhY2l0eToxfS55dHAtZG5pLnl0cC1jb250ZXh0bWVudXt0ZXh0LXNoYWRvdzpub25lfS55dHAtYmlnLW1vZGUueXRwLWNvbnRleHRtZW51e2ZvbnQtc2l6ZToxN3B4fS55dHAtYXV0b2hpZGUueXRwLWVtYmVkLW92ZXJsYXlzLWF1dG9oaWRlLnl0cC1jb250ZXh0bWVudXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUueXRwLWNvbnRleHRtZW51e2Rpc3BsYXk6bm9uZX0ueXRwLWNvbnRleHRtZW51IGEsLnl0cC1jb250ZXh0bWVudSBhOmZvY3VzLC55dHAtY29udGV4dG1lbnUgYTpob3Zlcntjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lfS55dHAtY29weXRleHR7bWFyZ2luOjAgMTBweDttYXgtd2lkdGg6MjAwcHg7b3V0bGluZTpub25lO3RleHQtc2hhZG93Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LW1vei11c2VyLXNlbGVjdDp0ZXh0Oy1tcy11c2VyLXNlbGVjdDp0ZXh0Oy13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dH0ueXRwLWNvcHl0ZXh0OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2NvbG9yOmJsYWNrfS55dHAtaHRtbDUtY2xpcGJvYXJke3RvcDowO2xlZnQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTstbW96LXVzZXItc2VsZWN0OnRleHQ7LW1zLXVzZXItc2VsZWN0OnRleHQ7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0fS55dHAtc2hvdy1jb3B5bGluay10aXRsZS55dHAtY29weWxpbmstYnV0dG9ue21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLXNob3ctY29weWxpbmstdGl0bGUueXRwLWNvcHlsaW5rLWJ1dHRvbnttYXJnaW4tbGVmdDoyMHB4O21hcmdpbi1yaWdodDoyMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstYnV0dG9uLC55dHAtY2hyb21lLXRvcCAueXRwLWNvcHlsaW5rLWJ1dHRvbnt3aWR0aDphdXRvO2hlaWdodDphdXRvfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYmlnLW1vZGUpIC55dHAtY2hyb21lLXRvcCAueXRwLWNvcHlsaW5rLWJ1dHRvbnttaW4td2lkdGg6NDhweDttYXgtd2lkdGg6ODBweH0ueXRwLWNvcHlsaW5rLWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtY29weWxpbmstaWNvbnt3aWR0aDo1NHB4O2hlaWdodDo1NHB4fS55dHAtb3ZlcmZsb3ctcGFuZWwgLnl0cC1jb3B5bGluay1pY29ue3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS55dHAtY29weWxpbmstdGl0bGV7Zm9udC13ZWlnaHQ6NTAwO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY29weWxpbmstdGl0bGUsLnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLWNvcHlsaW5rLXRpdGxle2ZvbnQtc2l6ZToyMHB4fS55dHAtc2hvdy1jb3B5bGluay10aXRsZSAueXRwLWNvcHlsaW5rLXRpdGxle2Rpc3BsYXk6YmxvY2t9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstdGl0bGV7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW59Lnl0cC1jb3VudGRvd24tdGltZXJ7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3otaW5kZXg6Mzk7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNik7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOjE4cHh9Lnl0cC1icmFuZGluZy1zaG93biAueXRwLWNvdW50ZG93bi10aW1lcntib3R0b206NTJweH0ueXRwLWNvdW50ZG93bi10aW1lci10aW1le2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiNGRkY7bGluZS1oZWlnaHQ6MzZweDt3aWR0aDozNnB4O2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2IoMCwwLDApfS55dHAtZnJlZS1wcmV2aWV3LWNvdW50ZG93bi10aW1lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4O2xlZnQ6MjBweDtoZWlnaHQ6MjRweDtib3R0b206MjBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO3dpZHRoOmF1dG87ei1pbmRleDo4Mjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1mcmVlLXByZXZpZXctY291bnRkb3duLXRpbWVyLXNlcGFyYXRvcntwYWRkaW5nOjAgM3B4fS55dC11aS1lbGxpcHNpc3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmR9Lnl0LXVpLWVsbGlwc2lzLW5vd3JhcC1zaW5nbGUtbGluZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7bWF4LWhlaWdodDoxLjNlbX0ueXQtdWktZWxsaXBzaXM6YWZ0ZXIsLnl0LXVpLWVsbGlwc2lzOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGV9Lnl0LXVpLWVsbGlwc2lzOmJlZm9yZXtjb250ZW50OiLigKYiO3JpZ2h0OjB9Lnl0LXVpLWVsbGlwc2lzOmFmdGVye2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ueXQtdWktZWxsaXBzaXMtMjpiZWZvcmV7dG9wOjEuM2VtfS55dC11aS1lbGxpcHNpcy0zOmJlZm9yZXt0b3A6Mi42ZW19Lnl0LXVpLWVsbGlwc2lzLTQ6YmVmb3Jle3RvcDozLjllbX0ueXQtdWktZWxsaXBzaXMtNjpiZWZvcmV7dG9wOjYuNWVtfS55dC11aS1lbGxpcHNpcy0xMDpiZWZvcmV7dG9wOjExLjdlbX0ueXQtdWktZWxsaXBzaXMtMnttYXgtaGVpZ2h0OjIuNmVtfS55dC11aS1lbGxpcHNpcy0ze21heC1oZWlnaHQ6My45ZW19Lnl0LXVpLWVsbGlwc2lzLTR7bWF4LWhlaWdodDo1LjJlbX0ueXQtdWktZWxsaXBzaXMtNnttYXgtaGVpZ2h0OjcuOGVtfS55dC11aS1lbGxpcHNpcy0xMHttYXgtaGVpZ2h0OjEzZW19LndlYmtpdCAueXQtdWktZWxsaXBzaXN7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWx9LndlYmtpdCAueXQtdWktZWxsaXBzaXMtMnstd2Via2l0LWxpbmUtY2xhbXA6Mn0ud2Via2l0IC55dC11aS1lbGxpcHNpcy0zey13ZWJraXQtbGluZS1jbGFtcDozfS53ZWJraXQgLnl0LXVpLWVsbGlwc2lzLTR7LXdlYmtpdC1saW5lLWNsYW1wOjR9LndlYmtpdCAueXQtdWktZWxsaXBzaXMtNnstd2Via2l0LWxpbmUtY2xhbXA6Nn0ud2Via2l0IC55dC11aS1lbGxpcHNpcy0xMHstd2Via2l0LWxpbmUtY2xhbXA6MTB9LndlYmtpdCAueXQtdWktZWxsaXBzaXM6YmVmb3Jle2NvbnRlbnQ6bm9ybWFsfS53ZWJraXQgLnl0LXVpLWVsbGlwc2lzOmFmdGVye2NvbnRlbnQ6IuKAjCI7cG9zaXRpb246c3RhdGljO3Zpc2liaWxpdHk6aGlkZGVufS55dC11aS1lbGxpcHNpc1tkaXI9cnRsXTpiZWZvcmV7bGVmdDowO3JpZ2h0OmF1dG99YS55dHAtY2UtbGlua3tkaXNwbGF5OmJsb2NrfWEueXRwLWNlLWxpbmssYS55dHAtY2UtbGluazpob3ZlcixhLnl0cC1jZS1saW5rOnZpc2l0ZWR7Y29sb3I6IzE2N2FjNn1hLnl0cC1jZS1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1jZS1zaGFkb3d7b3BhY2l0eTowO291dGxpbmU6c29saWQgIzAwMDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDoxMn0ueXRwLWNlLXNoYWRvdzpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtvcGFjaXR5Oi4yNTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jZS1lbGVtZW50e2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNCk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNSk7Ym94LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjUpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07bWFyZ2luOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1mb250LXNtb290aGluZzphdXRvO3otaW5kZXg6MTI7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dmlzaWJpbGl0eTpoaWRkZW59Lnl0cC1jZS1oaWRlLWJ1dHRvbi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEycHg7cmlnaHQ6MTJweDt6LWluZGV4OjEzO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3Zpc2liaWxpdHk6aGlkZGVufS55dHAtY2UtaGlkZS1idXR0b24tY29udGFpbmVyLnl0cC1jZS1oaWRlLWJ1dHRvbi1sb3dlcnttYXJnaW4tdG9wOjQ4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNlLWhpZGUtYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjcycHh9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtY2UtZWxlbWVudCwuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1jZS1oaWRlLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtY2UtZWxlbWVudC55dHAtY2UtcGxhY2Vob2xkZXIgYS55dHAtY2UtY292ZXJpbmctb3ZlcmxheXtjdXJzb3I6ZGVmYXVsdH0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWVsZW1lbnQtc2hvdywueXRwLWNlLWhpZGUtYnV0dG9uLWNvbnRhaW5lci55dHAtY2UtZWxlbWVudC1zaG93e29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGJvcmRlci1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZm9yY2UtZXhwYW5ke2JvcmRlcjoxcHggc29saWQgI2ZmZjtvdXRsaW5lOm5vbmU7ei1pbmRleDoxMztvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIDBzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dmlzaWJpbGl0eTp2aXNpYmxlfS55dHAtY2UtZWxlbWVudC55dHAtY2UtZWxlbWVudC1zaG93OmZvY3VzLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZWxlbWVudC1zaG93OmhvdmVye291dGxpbmU6bm9uZX0ueXRwLWNlLWVsZW1lbnQtc2hhZG93e2JhY2tncm91bmQtY29sb3I6IzAwMDtib3R0b206LTFweDtsZWZ0Oi0xcHg7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xcHg7dG9wOi0xcHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6MTJ9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWVsZW1lbnQtc2hhZG93LXNob3cgLnl0cC1jZS1lbGVtZW50LXNoYWRvd3tvcGFjaXR5Oi4yNTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jZS1jb3ZlcmluZy1pbWFnZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JvdHRvbTotMnB4O2xlZnQ6LTFweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMXB4O3RvcDotMXB4fS55dHAtY2UtY292ZXJpbmctc2hhZG93LXRvcHtoZWlnaHQ6MzMlO29wYWNpdHk6Ljg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMDAwLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCwjMDAwKSx0byh0cmFuc3BhcmVudCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwIDAsdHJhbnNwYXJlbnQpfS55dHAtY2UtY292ZXJpbmctb3ZlcmxheXtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3otaW5kZXg6MTJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtY2Utc2hhZG93e2Rpc3BsYXk6bm9uZX0ueXRwLWNlLXBsYXlsaXN0LC55dHAtY2UtdmlkZW97b3ZlcmZsb3c6aGlkZGVufS55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS12aWRlby10aXRsZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luOjZweCA4cHg7bWF4LWhlaWdodDoyOHB4O3RleHQtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuNCl9Lnl0cC1jZS1wbGF5bGlzdC10aXRsZS55dHAtd2Via2l0LWVsbGlwc2lzLC55dHAtY2UtdmlkZW8tdGl0bGUueXRwLXdlYmtpdC1lbGxpcHNpc3tkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjI7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWNlLXZpZGVvLWR1cmF0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjA7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7bWFyZ2luOjAgNHB4IDRweCAwO3BhZGRpbmc6NHB4IDZweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfS55dHAtY2UtbGl2ZS12aWRlby1kdXJhdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMCwwKTtib3JkZXItcmFkaXVzOjJweDtib3R0b206MDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44KTttYXJnaW46MCA0cHggNHB4IDA7cGFkZGluZzo0cHggNnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9Lnl0cC1jZS1wbGF5bGlzdC1jb3VudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjc1KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0ueXRwLWNlLXBsYXlsaXN0LWljb257bGVmdDo4cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweH0ueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7aGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6MjRweDttYXJnaW4tbGVmdDozMnB4fS55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dmlzaWJpbGl0eTpoaWRkZW59Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1jb250ZW50e2Rpc3BsYXk6dGFibGV9Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5e2Rpc3BsYXk6dGFibGUtY2VsbDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXksLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1mb3JjZS1leHBhbmQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheXt6LWluZGV4OjEzO29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGJvcmRlci1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyIC55dHAtY2UtZXhwYW5kaW5nLWltYWdlLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZm9yY2UtZXhwYW5kIC55dHAtY2UtZXhwYW5kaW5nLWltYWdle3otaW5kZXg6MTN9Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjJweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDRweCAjMDAwO2JveC1zaGFkb3c6MCAwIDRweCAjMDAwO2hlaWdodDoxMDAlO2xlZnQ6MDttYXJnaW46LThweDtwYWRkaW5nOjhweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS55dHAtY2UtZXhwYW5kaW5nLWltYWdle2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS55dHAtY2UtZXhwYW5kaW5nLWljb257YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToyMHB4IDIwcHg7YmFja2dyb3VuZC1zaXplOjIwcHggMjBweDtib3JkZXItcmFkaXVzOjJweDtib3R0b206MnB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjJweDt3aWR0aDoyNHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWVsZW1lbnQtaG92ZXIgLnl0cC1jZS1leHBhbmRpbmctaWNvbiwueXRwLWNlLWVsZW1lbnQueXRwLWNlLWZvcmNlLWV4cGFuZCAueXRwLWNlLWV4cGFuZGluZy1pY29ue29wYWNpdHk6MH0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheXtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwMCU7dG9wOjB9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5e3BhZGRpbmctcmlnaHQ6MTAwJTtyaWdodDowO3RvcDowfS55dHAtY2UtZWxlbWVudC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5e2JvdHRvbTowO2xlZnQ6MDtwYWRkaW5nLWxlZnQ6MTAwJX0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXl7Ym90dG9tOjA7cGFkZGluZy1yaWdodDoxMDAlO3JpZ2h0OjB9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3csLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWVsZW1lbnQtaG92ZXIsLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWZvcmNlLWV4cGFuZCwueXRwLWNlLWVsZW1lbnQueXRwLWNlLW1lcmNoYW5kaXNlLnl0cC1jZS1lbGVtZW50LXNob3csLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1tZXJjaGFuZGlzZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2UtbWVyY2hhbmRpc2UueXRwLWNlLWVsZW1lbnQtc2hvdy55dHAtY2UtZm9yY2UtZXhwYW5kLC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93LC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1mb3JjZS1leHBhbmR7Ym9yZGVyOjA7bWFyZ2luOjB9Lnl0cC1jZS1jaGFubmVsLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWNlLWNoYW5uZWwtc3Vic2NyaWJle2NvbG9yOiM3Njc2NzY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDo0cHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0Oy1tcy10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnR9Lnl0cC1jZS1jaGFubmVsLXN1YnNjcmliZXJzLXRleHR7Y29sb3I6Izc2NzY3NjtkaXNwbGF5Om5vbmU7bWFyZ2luLWJvdHRvbToyNHB4O21hcmdpbi10b3A6NnB4fS55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtjb2xvcjojNzY3Njc2fS55dHAtY2UtY2hhbm5lbC10aGlzIC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6bm9uZX0ueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweDttYXJnaW4tdG9wOjRweDttYXgtaGVpZ2h0OjQycHh9Lnl0cC1jZS1jaGFubmVsLC55dHAtY2UtY2hhbm5lbCAueXRwLWNlLWVsZW1lbnQtc2hhZG93LC55dHAtY2UtY2hhbm5lbCAueXRwLWNlLWV4cGFuZGluZy1pbWFnZXtib3JkZXItcmFkaXVzOjUwJX0ueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utd2Vic2l0ZS10aXRsZXtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjJweH0ueXRwLWNlLW1lcmNoYW5kaXNlLW1ldGFkYXRhLC55dHAtY2UtbWVyY2hhbmRpc2UtcHJpY2UtY29udGFpbmVyLC55dHAtY2Utd2Vic2l0ZS1tZXRhZGF0YXtjb2xvcjojNzY3Njc2O21hcmdpbi10b3A6NHB4fS55dHAtY2UtbWVyY2hhbmRpc2UgLnl0cC1jZS1leHBhbmRpbmctaW1hZ2V7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW59Lnl0cC1jZS13ZWJzaXRlLWdvdG97ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi10b3A6NHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfS55dHAtY2UtbWVyY2hhbmRpc2UgLnl0cC1jZS1leHBhbmRpbmctaW1hZ2UsLnl0cC1jZS13ZWJzaXRlIC55dHAtY2UtZXhwYW5kaW5nLWltYWdle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRwLWNlLW1lcmNoYW5kaXNlLXByaWNle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM2NDY0NjQ7Zm9udC13ZWlnaHQ6ODAwO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tcmlnaHQ6NnB4fS55dHAtY2UtbWVyY2hhbmRpc2UtYWRkaXRpb25hbC1mZWVze2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM3Njc2NzY7bWFyZ2luLXRvcDoycHg7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRlcjoxcHggIzAwMDtvcGFjaXR5Oi44O3BhZGRpbmc6MTBweCAwO3dpZHRoOjEwMCU7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YXtjb2xvcjojZmZmO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWNlLXNpemUtMzQ2IC55dHAtY2UtbWVyY2hhbmRpc2UtaW52aWRlby1jdGEtY29udGFpbmVyLC55dHAtY2Utc2l6ZS00MjYgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXIsLnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWludmlkZW8tY3RhLWNvbnRhaW5lcntwYWRkaW5nOjJweCAwfS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXIsLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWludmlkZW8tY3RhLWNvbnRhaW5lciwueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtbWVyY2hhbmRpc2UtaW52aWRlby1jdGEtY29udGFpbmVyLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXJ7cGFkZGluZzo1cHggMH0ueXRwLWNlLWxhcmdlLXJvdW5kIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYmFja2dyb3VuZCwueXRwLWNlLXBsYXlsaXN0Lnl0cC1jZS1sYXJnZS1yb3VuZCwueXRwLWNlLXZpZGVvLnl0cC1jZS1sYXJnZS1yb3VuZHtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1jZS1tZWRpdW0tcm91bmQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5kLC55dHAtY2UtcGxheWxpc3QueXRwLWNlLW1lZGl1bS1yb3VuZCwueXRwLWNlLXZpZGVvLnl0cC1jZS1tZWRpdW0tcm91bmR7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1jZS1wbGF5bGlzdC55dHAtY2Utc21hbGwtcm91bmQsLnl0cC1jZS1zbWFsbC1yb3VuZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJhY2tncm91bmQsLnl0cC1jZS12aWRlby55dHAtY2Utc21hbGwtcm91bmR7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0cC1jZS1tZXJjaGFuZGlzZS1nb3Rve2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tdG9wOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX0ueXRwLWNlLXNpemUtMzQ2e2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1jb3ZlcmluZy1pY29ue2JvdHRvbTo0cHg7cmlnaHQ6NHB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjExNXB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjExNXB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTM0Ni55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAwIDAgOHB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDhweCAwIDB9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJhY2tncm91bmR7bWFyZ2luOi04cHg7cGFkZGluZzo4cHh9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLWV4cGFuZGluZy1pY29ue2JvdHRvbToycHg7cmlnaHQ6MnB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7bWFyZ2luLXRvcDowfS55dHAtY2Utc2l6ZS00MjZ7Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWNvdmVyaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MTE1cHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZz46bm90KC55dHAtY2Utc3Vic2NyaWJlLWNvbnRhaW5lcil7d2lkdGg6MTE1cHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNDI2Lnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDRweCAwIDEycHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTQyNi55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgMTJweCAwIDRweH0ueXRwLWNlLXNpemUtNDI2IC55dHAtY2UtZXhwYW5kaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtY2hhbm5lbC10aGF0IC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXttYXJnaW4tdG9wOjB9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLXBsYXlsaXN0LXRpdGxlLC55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS12aWRlby10aXRsZSwueXRwLWNlLXNpemUtNDI2IC55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLXZpZGVvLXRpdGxlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWF4LXdpZHRoOjg1JX0ueXRwLWNlLXNpemUtNDcwe2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtNDcwIC55dHAtY2Utd2Vic2l0ZS10aXRsZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNHB4fS55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS13ZWJzaXRlLWdvdG97Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MTM2cHh9Lnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZz46bm90KC55dHAtY2Utc3Vic2NyaWJlLWNvbnRhaW5lcil7d2lkdGg6MTM2cHh9Lnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNDcwLnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDRweCAwIDEycHh9Lnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgMTJweCAwIDRweH0ueXRwLWNlLXNpemUtNDcwIC55dHAtY2UtZXhwYW5kaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTUwNntmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtY2hhbm5lbC10aXRsZSwueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtbWVyY2hhbmRpc2UtdGl0bGUsLnl0cC1jZS1zaXplLTUwNiAueXRwLWNlLXdlYnNpdGUtdGl0bGV7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweH0ueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtbWVyY2hhbmRpc2UtZ290bywueXRwLWNlLXNpemUtNTA2IC55dHAtY2Utd2Vic2l0ZS1nb3Rve2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjEzNnB4fS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjEzNnB4fS55dHAtY2Utc2l6ZS01MDYueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTUwNi55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCA0cHggMCAxMnB4fS55dHAtY2Utc2l6ZS01MDYueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS01MDYueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDEycHggMCA0cHh9Lnl0cC1jZS1zaXplLTUwNiAueXRwLWNlLWV4cGFuZGluZy1pY29ue2JvdHRvbTo0cHg7cmlnaHQ6NHB4fS55dHAtY2Utc2l6ZS01NzB7Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utc2l6ZS01NzAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE0cHh9Lnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLXdlYnNpdGUtZ290b3tmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNTcwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21pbi13aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNTcwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNTcwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS01NzAueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgNHB4IDAgMTJweH0ueXRwLWNlLXNpemUtNTcwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNTcwLnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxMnB4IDAgNHB4fS55dHAtY2Utc2l6ZS01NzAgLnl0cC1jZS1leHBhbmRpbmctaWNvbntib3R0b206NHB4O3JpZ2h0OjRweH0ueXRwLWNlLXNpemUtNjQwe2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtdmlkZW8tdGl0bGV7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MTVweDttYXgtaGVpZ2h0OjMwcHh9Lnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE1cHh9Lnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLXdlYnNpdGUtZ290b3tmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21pbi13aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNjQwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS02NDAueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgOHB4IDAgMTZweH0ueXRwLWNlLXNpemUtNjQwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNjQwLnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxNnB4IDAgOHB4fS55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS1leHBhbmRpbmctaWNvbntib3R0b206OHB4O3JpZ2h0OjhweH0ueXRwLWNlLXNpemUtODUze2ZvbnQtc2l6ZToxNHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtODUzIC55dHAtY2UtdmlkZW8tdGl0bGV7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MThweDttYXJnaW46MTBweCAxMnB4O21heC1oZWlnaHQ6MzZweH0ueXRwLWNlLXNpemUtODUzIC55dHAtY2UtdmlkZW8tZHVyYXRpb257bWFyZ2luOjAgNnB4IDZweCAwfS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtODUzIC55dHAtY2Utd2Vic2l0ZS10aXRsZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxOHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS13ZWJzaXRlLWdvdG97Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTg1My55dHAtY2UtY2hhbm5lbC10aGlzIC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbi10b3A6OHB4O3BhZGRpbmctdG9wOjhweDttYXgtaGVpZ2h0OjQycHg7ZGlzcGxheTpibG9ja30ueXRwLWNlLXNpemUtODUzLnl0cC1jZS1jaGFubmVsLXRoYXQgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjE4cHg7bWFyZ2luLXRvcDo0cHg7bWF4LWhlaWdodDo1NHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjE3NnB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjE3NnB4fS55dHAtY2Utc2l6ZS04NTMueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTg1My55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCA4cHggMCAxNnB4fS55dHAtY2Utc2l6ZS04NTMueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS04NTMueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDE2cHggMCA4cHh9Lnl0cC1jZS1zaXplLTg1MyAueXRwLWNlLWV4cGFuZGluZy1pY29uey13ZWJraXQtYmFja2dyb3VuZC1zaXplOjI0cHggMjRweDtiYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JvdHRvbTo4cHg7aGVpZ2h0OjMycHg7cmlnaHQ6OHB4O3dpZHRoOjMycHh9Lnl0cC1jZS1zaXplLTg1MyAueXRwLWNlLXBsYXlsaXN0LWljb257bGVmdDo4cHg7dG9wOjRweH0ueXRwLWNlLXNpemUtODUzIC55dHAtY2UtcGxheWxpc3QtY291bnQtdGV4dHtoZWlnaHQ6MzJweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbi1sZWZ0OjQwcHh9Lnl0cC1jZS1zaXplLTEyODB7Zm9udC1zaXplOjE4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXZpZGVvLXRpdGxle2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luOjE4cHggMjBweDttYXgtaGVpZ2h0OjQ4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS12aWRlby1kdXJhdGlvbnttYXJnaW46MCAxMnB4IDEycHggMH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtdGl0bGV7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1tZXJjaGFuZGlzZS1tZXRhZGF0YSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLW1lcmNoYW5kaXNlLXByaWNlLWNvbnRhaW5lciwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtZ290bywueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtbWV0YWRhdGF7Zm9udC1zaXplOjE4cHg7bWFyZ2luLXRvcDo4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIxcHg7bWF4LWhlaWdodDo2M3B4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmV7aGVpZ2h0OjMycHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7dHJhbnNmb3JtOnNjYWxlKDEuMyl9Lnl0cC1jZS1zaXplLTEyODAueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtc3Vic2NyaWJlcnMtdGV4dHtkaXNwbGF5OmJsb2NrfS55dHAtY2Utc2l6ZS0xMjgwLnl0cC1jZS1jaGFubmVsLXRoaXMgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe21hcmdpbi10b3A6MTJweDtwYWRkaW5nLXRvcDoxMnB4O2Rpc3BsYXk6YmxvY2t9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjI2NHB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoyNjRweH0ueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxNnB4IDAgMzJweH0ueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTEyODAueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDMycHggMCAxNnB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYmFja2dyb3VuZHttYXJnaW46LTE2cHg7cGFkZGluZzoxNnB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLWljb257LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzJweCAzMnB4O2JhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7Ym90dG9tOjEwcHg7aGVpZ2h0OjQwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtcGxheWxpc3QtaWNvbntsZWZ0OjEwcHg7dG9wOjhweH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweDttYXJnaW4tbGVmdDo0NnB4fS55dHAtY2Utc2l6ZS0xOTIwe2ZvbnQtc2l6ZToyOHB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS12aWRlby10aXRsZXtmb250LXNpemU6MzJweDtsaW5lLWhlaWdodDozOHB4O21hcmdpbjoxOHB4IDIwcHg7bWF4LWhlaWdodDo3NnB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtdmlkZW8tZHVyYXRpb257bWFyZ2luOjAgMjBweCAyMHB4IDB9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtbWVyY2hhbmRpc2UtdGl0bGUsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjM4cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtbWVyY2hhbmRpc2UtbWV0YWRhdGEsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1tZXJjaGFuZGlzZS1wcmljZS1jb250YWluZXIsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLWdvdG8sLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLW1ldGFkYXRhe2ZvbnQtc2l6ZToyOHB4O21hcmdpbi10b3A6MTJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzRweDttYXgtaGVpZ2h0OjEwMnB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmV7aGVpZ2h0OjgwcHg7bWFyZ2luLXRvcDotMTZweDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgyLjUpOy1tcy10cmFuc2Zvcm06c2NhbGUoMi41KTt0cmFuc2Zvcm06c2NhbGUoMi41KX0ueXRwLWNlLXNpemUtMTkyMC55dHAtY2UtY2hhbm5lbC10aGF0IC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmVycy10ZXh0e2Rpc3BsYXk6YmxvY2t9Lnl0cC1jZS1zaXplLTE5MjAueXRwLWNlLWNoYW5uZWwtdGhpcyAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjE4cHg7cGFkZGluZy10b3A6MThweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MzkycHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjM5MnB4fS55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDI0cHggMCA0OHB4fS55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtMTkyMC55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgNDhweCAwIDI0cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5ke21hcmdpbjotMjRweDtwYWRkaW5nOjI0cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctaWNvbnstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo1NnB4IDU2cHg7YmFja2dyb3VuZC1zaXplOjU2cHggNTZweDtib3R0b206MjBweDtoZWlnaHQ6NjJweDtyaWdodDoyMHB4O3dpZHRoOjYycHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1wbGF5bGlzdC1pY29ue2xlZnQ6MTJweDt0b3A6MTJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLXBsYXlsaXN0LWljb257aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7aGVpZ2h0OjU2cHg7bGluZS1oZWlnaHQ6NTZweDttYXJnaW4tbGVmdDo1NnB4fS55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmUueXRwLWNlLXN1YnNjcmliZS1idXR0b257aGVpZ2h0OmF1dG87bWFyZ2luLXRvcDowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTM0NiAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS00MjYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTQyNiAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTQ3MCAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS01MDYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTUwNiAueXRwLXNiLXVuc3Vic2NyaWJle2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6OHB4fS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS55dHAtZXhwLWNvbnRhaW4tdGh1bWJuYWlse2JhY2tncm91bmQtc2l6ZTpjb250YWluOy1tb3otYmFja2dyb3VuZC1zaXplOmNvbnRhaW47LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXlbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7LW1vei1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGV9Lnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Lnl0cC1leHAtZnJhbWUwIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXt6LWluZGV4OjEwfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS55dHAtZXhwLWNvbnRhaW4tdGh1bWJuYWlsIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjstbW96LWJhY2tncm91bmQtc2l6ZTpjb250YWluOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW59LmVuZGVkLW1vZGUgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Om5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pLC51bnN0YXJ0ZWQtbW9kZTpub3QoLnBsYXlpbmctbW9kZSkgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Om5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtY2hhcHRlci1zZWVrLXRleHR7ZGlzcGxheTpub25lO3dpZHRoOjgwJTttYXJnaW4tbGVmdDoxMCU7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWNoYXB0ZXItc2VlayAueXRwLWNoYXB0ZXItc2Vlay10ZXh0e3dpZHRoOjEwMCU7ZGlzcGxheTpibG9ja31ALXdlYmtpdC1rZXlmcmFtZXMgYXJyb3ctZmFkZS1vdXQtMXswJXtvcGFjaXR5OjB9MTcle29wYWNpdHk6Ljl9MzMle29wYWNpdHk6LjZ9NTAle29wYWNpdHk6LjN9Njcle29wYWNpdHk6LjN9ODMle29wYWNpdHk6LjN9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGFycm93LWZhZGUtb3V0LTF7MCV7b3BhY2l0eTowfTE3JXtvcGFjaXR5Oi45fTMzJXtvcGFjaXR5Oi42fTUwJXtvcGFjaXR5Oi4zfTY3JXtvcGFjaXR5Oi4zfTgzJXtvcGFjaXR5Oi4zfXRve29wYWNpdHk6MH19QC13ZWJraXQta2V5ZnJhbWVzIGFycm93LWZhZGUtb3V0LTJ7MCV7b3BhY2l0eTowfTE3JXtvcGFjaXR5Oi4zfTMzJXtvcGFjaXR5Oi45fTUwJXtvcGFjaXR5Oi42fTY3JXtvcGFjaXR5Oi4zfTgzJXtvcGFjaXR5Oi4zfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBhcnJvdy1mYWRlLW91dC0yezAle29wYWNpdHk6MH0xNyV7b3BhY2l0eTouM30zMyV7b3BhY2l0eTouOX01MCV7b3BhY2l0eTouNn02NyV7b3BhY2l0eTouM304MyV7b3BhY2l0eTouM310b3tvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyBhcnJvdy1mYWRlLW91dC0zezAle29wYWNpdHk6MH0xNyV7b3BhY2l0eTouM30zMyV7b3BhY2l0eTouM301MCV7b3BhY2l0eTouOX02NyV7b3BhY2l0eTouNn04MyV7b3BhY2l0eTouM310b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgYXJyb3ctZmFkZS1vdXQtM3swJXtvcGFjaXR5OjB9MTcle29wYWNpdHk6LjN9MzMle29wYWNpdHk6LjN9NTAle29wYWNpdHk6Ljl9Njcle29wYWNpdHk6LjZ9ODMle29wYWNpdHk6LjN9dG97b3BhY2l0eTowfX0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3l7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiNkZGQ7ei1pbmRleDoxOX0ueXRwLWRvdWJsZXRhcC1mYXN0LWZvcndhcmQtdmUsLnl0cC1kb3VibGV0YXAtcmV3aW5kLXZle29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZG91YmxldGFwLW92ZXJsYXktYTExeXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi4yO3otaW5kZXg6LTF9Lnl0cC1kb3VibGV0YXAtc3RhdGljLWNpcmNsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtZG91YmxldGFwLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLDIyMSwyMjEsLjE1KTstd2Via2l0LWFuaW1hdGlvbjpncm93LWNpcmNsZSAuOXMgMTthbmltYXRpb246Z3Jvdy1jaXJjbGUgLjlzIDE7dmVydGljYWwtYWxpZ246bWlkZGxlfUAtd2Via2l0LWtleWZyYW1lcyBncm93LWNpcmNsZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKX19QGtleWZyYW1lcyBncm93LWNpcmNsZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKX19Lnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NTAlfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeS55dHAtdGltZS1zZWVraW5nIC55dHAtZG91YmxldGFwLW92ZXJsYXktYTExeXtkaXNwbGF5Om5vbmV9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5Lnl0cC1jaGFwdGVyLXNlZWsgLnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcnt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWJhY2tdOm5vdCgueXRwLWNoYXB0ZXItc2VlaykgLnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcntsZWZ0OjEwJTt0ZXh0LWFsaWduOmxlZnR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1mb3J3YXJkXTpub3QoLnl0cC1jaGFwdGVyLXNlZWspIC55dHAtZG91YmxldGFwLXNlZWstaW5mby1jb250YWluZXJ7bGVmdDo4MCU7dGV4dC1hbGlnbjpsZWZ0fS55dHAtZG91YmxldGFwLXRvb2x0aXB7cGFkZGluZy10b3A6OHB4O2NvbG9yOiNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC10b29sdGlwe21hcmdpbi1sZWZ0OjhweH0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLXRvb2x0aXB7bWFyZ2luLWxlZnQ6LTVweH0ueXRwLWRvdWJsZXRhcC10b29sdGlwLWxhYmVse3RleHQtYWxpZ246bGVmdDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lnl0cC1zZWVrLWljb24tdGV4dC1jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWxlZnQ6MTAlO3dpZHRoOjgwJX0ueXRwLXNlZWstaWNvbnttYXJnaW4tcmlnaHQ6NXB4fS55dHAtY2hhcHRlci1zZWVrLXRleHQtbGVnYWN5e2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MThweDtmb250LXdlaWdodDo3MDA7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtY2hhcHRlci1zZWVrIC55dHAtY2hhcHRlci1zZWVrLXRleHQtbGVnYWN5e2Rpc3BsYXk6YmxvY2t9Lnl0cC1kb3VibGV0YXAtYXJyb3dzLWNvbnRhaW5lcnt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlcjoxMHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206N3B4IHNvbGlkIHRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxLjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoxLjJzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeVtkYXRhLXNpZGU9Zm9yd2FyZF0gLnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvd3tib3JkZXItbGVmdDoxMXB4IHNvbGlkICNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93e2JvcmRlci1yaWdodDoxMXB4IHNvbGlkICNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93Om50aC1jaGlsZCgzKSwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6Zmlyc3QtY2hpbGR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0xO2FuaW1hdGlvbi1uYW1lOmFycm93LWZhZGUtb3V0LTF9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93Om50aC1jaGlsZCgyKSwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6bnRoLWNoaWxkKDIpey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXJyb3ctZmFkZS1vdXQtMjthbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0yfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeVtkYXRhLXNpZGU9YmFja10gLnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvdzpmaXJzdC1jaGlsZCwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6bnRoLWNoaWxkKDMpey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXJyb3ctZmFkZS1vdXQtMzthbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0zfS55dHAtc2Vlay1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MTA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lO2RpcmVjdGlvbjpsdHJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtc2Vlay1vdmVybGF5e2Rpc3BsYXk6bm9uZX0ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO29wYWNpdHk6MH0ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb24ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb24tYmFja3tsZWZ0OjQ4cHh9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWZvcndhcmR7cmlnaHQ6NDhweH0ueXRwLXNlZWstb3ZlcmxheS1kdXJhdGlvbntjb2xvcjp3aGl0ZTtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDoyNHB4O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LXNoYWRvdzowIDAgMXB4IHJnYmEoMCwwLDAsLjgpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LW1zLXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS55dHAtc2Vlay1vdmVybGF5LWFuaW1hdGlvbi1iYWNrIC55dHAtc2Vlay1vdmVybGF5LWFycm93e21hcmdpbi1yaWdodDoyMHB4fS55dHAtc2Vlay1vdmVybGF5LWFuaW1hdGlvbi1mb3J3YXJkIC55dHAtc2Vlay1vdmVybGF5LWFycm93e21hcmdpbi1sZWZ0OjIwcHh9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3cgc3Zne2Rpc3BsYXk6YmxvY2t9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3cgc3ZnIHBhdGh7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIC41cHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgLjVweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctcGVyc2lzdGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zbGF0ZTowIC01MCV9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWJhY2sgLnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtsZWZ0OjB9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWZvcndhcmQgLnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtyaWdodDowfS55dHAtc2Vlay1vdmVybGF5LW1lc3NhZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDE4MHB4KX0ueXRwLXNlZWstb3ZlcmxheS1tZXNzYWdlLWljb246bm90KDplbXB0eSl7bWFyZ2luLXJpZ2h0OjVweH0ueXRwLXNlZWstb3ZlcmxheS1tZXNzYWdlLXRleHR7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtc2hhZG93OjAgMCAxcHggcmdiYSgwLDAsMCwuOCk7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtbW9yZS12aWRlb3Mtdmlld3tvdmVyZmxvdzpoaWRkZW59Lnl0cC1tb3JlLXZpZGVvcy12aWV3IGEueXRwLXN1Z2dlc3Rpb24tbGluazpmb2N1czphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3LWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDt3aWR0aDppbmhlcml0O2hlaWdodDppbmhlcml0Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1tb3JlLXZpZGVvcy12aWV3Lnl0cC1zY3JvbGwtbWF4IC55dHAtbmV4dCwueXRwLW1vcmUtdmlkZW9zLXZpZXcueXRwLXNjcm9sbC1taW4gLnl0cC1wcmV2aW91cywueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQsLnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91cywueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtbmV4dCwueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtcHJldmlvdXN7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3e2JvdHRvbTo3MHB4O21hcmdpbjoyNHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1ib3R0b206MTJweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MjBweH0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWJvdHRvbToyNHB4O2ZvbnQtc2l6ZToyOHB4O2xpbmUtaGVpZ2h0OjMycHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3W2FyaWEtaGlkZGVuPXRydWVdIGEueXRwLXN1Z2dlc3Rpb24tbGlua3tvcGFjaXR5OjB9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7b3ZlcmZsb3cteDphdXRvfS55dHAtdG91Y2gtbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uczo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7aGVpZ2h0OjE4MHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24taW1hZ2V7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3JkZXItcmFkaXVzOjhweDtoZWlnaHQ6MTA4cHg7d2lkdGg6MTkycHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtbmV4dCwueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91c3tiYWNrZ3JvdW5kOiMzMzM7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDVweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgMXB4IDVweCByZ2JhKDAsMCwwLC4yKTtoZWlnaHQ6MzJweDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNTAlKTt3aWR0aDozMnB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQ6aG92ZXIsLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtcHJldmlvdXM6aG92ZXJ7LXdlYmtpdC1ib3gtc2hhZG93OjAgNHB4IDVweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgNHB4IDVweCByZ2JhKDAsMCwwLC4yKX0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQsLnl0cC1iaWctbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91c3toZWlnaHQ6NjRweDt3aWR0aDo2NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHR7cmlnaHQ6NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXByZXZpb3Vze2xlZnQ6NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyBhLnl0cC1zdWdnZXN0aW9uLWxpbmt7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDo0cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjphbGwgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtib3R0b206MDtmb250LXNpemU6MTJweDtsZWZ0OjA7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXNob3J0cy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLHJnYmEoMTIsMTIsMTIsLjgpLHRyYW5zcGFyZW50IDEwMHB4KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMTIsMTIsMTIsLjgpIDAsdHJhbnNwYXJlbnQgMTAwcHgpfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtc2hvcnRzLW1vZGUpIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtvcGFjaXR5OjA7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgxMiwxMiwxMiwuOCksdHJhbnNwYXJlbnQgMTAwcHgpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDEyLDEyLDEyLC44KSAwLHRyYW5zcGFyZW50IDEwMHB4KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtmb250LXNpemU6MjBweH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgYS55dHAtc3VnZ2VzdGlvbi1saW5rOmZvY3VzIC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5LC5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtc2hvcnRzLW1vZGUpIC55dHAtbW9yZS12aWRlb3MtdmlldyBhLnl0cC1zdWdnZXN0aW9uLWxpbms6aG92ZXIgLnl0cC1zdWdnZXN0aW9uLW92ZXJsYXl7b3BhY2l0eToxfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb257YmFja2dyb3VuZDojMDAwO2JvcmRlci1yYWRpdXM6MnB4O2JvdHRvbTo0cHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7b3BhY2l0eTouNzU7cGFkZGluZzoycHggNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweH0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb257Zm9udC1zaXplOjE3cHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi1saW5rIC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbltkYXRhLWlzLWxpdmU9dHJ1ZV17YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1icmFuZCxyZ2JhKDIyNSwwLDQ1LC45KSk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb246ZW1wdHksLnl0cC1zaG9ydHMtbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLWxpbmsgLnl0cC1zdWdnZXN0aW9uLWR1cmF0aW9ue2Rpc3BsYXk6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxlLC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tYXV0aG9ye292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi10aXRsZXtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi1hdXRob3J7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTZweH0ueXRwLXNob3J0cy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tdGl0bGV7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MThweH0ueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxle21heC1oZWlnaHQ6MzBweH0ueXRwLWltcHJlc3Npb24tbGlua3tiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjgpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoycHg7Ym90dG9tOjVweDtoZWlnaHQ6NDdweDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLWltcHJlc3Npb24tbGluay10ZXh0e2NvbG9yOndoaXRlO2Zsb2F0OmxlZnQ7Zm9udDo1MDAgMTZweC8xNnB4IFlvdVR1YmUgTm90byxSb2JvdG8sQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tdG9wOjE2cHh9Lnl0cC1pbXByZXNzaW9uLWxpbmstbG9nb3tmbG9hdDpyaWdodDtoZWlnaHQ6MTZweDttYXJnaW4tbGVmdDo5cHg7bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLXRvcDoxNnB4O3dpZHRoOjcycHh9Lnl0cC1tdXNpYy1pbXByZXNzaW9uLWxpbmsgLnl0cC1pbXByZXNzaW9uLWxpbmstbG9nb3ttYXJnaW4tdG9wOjE0cHg7bWFyZ2luLWxlZnQ6MDtoZWlnaHQ6MTlweH0ueXRwLW1vYmlsZS1hMTF5LWhpZGRlbi1zZWVrLWJ1dHRvbi1mb3J3YXJkLC55dHAtbW9iaWxlLWExMXktaGlkZGVuLXNlZWstYnV0dG9uLXJld2luZHt3aWR0aDoxcHg7aGVpZ2h0OjFweH0ueXRwLW11dGVkLWF1dG9wbGF5LWVuZHNjcmVlbi1vdmVybGF5LC55dHAtbXV0ZWQtYXV0b3BsYXktb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwMDE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtbXV0ZWQtYXV0b3BsYXktZW5kc2NyZWVuLW92ZXJsYXlbYXJpYS1oaWRkZW49dHJ1ZV0sLnl0cC1tdXRlZC1hdXRvcGxheS1vdmVybGF5W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25ze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjExcHg7Ym90dG9tOjB9Lnl0cC1tdXRlZC1hdXRvcGxheS1ib3R0b20tYnV0dG9ucyAueXRwLWJ1dHRvbiwueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25zIC55dHAtd2F0ZXJtYXJre2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OnVuc2V0O21hcmdpbjowIDRweH0ueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25zIC55dHAtd2F0ZXJtYXJre3JpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC13YXRlcm1hcmsueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFya3tvcGFjaXR5OjF9Lnl0cC13YXRlcm1hcmsueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFya1thcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXV0ZWQtYXV0b3BsYXktZXF1YWxpemVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym90dG9tOjhweH0ueXRwLWVtYmVkLW1vYmlsZSAueXRwLW11dGVkLWF1dG9wbGF5LWVxdWFsaXplcntib3R0b206MTBweH0ueXRwLW11dGVkLWF1dG9wbGF5LWVxdWFsaXplci1pY29ue21hcmdpbjphdXRvO3RvcDozcHg7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1tdXRlZC1hdXRvcGxheS1lcXVhbGl6ZXItaWNvbnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS55dHAtbXV0ZWQtYXV0b3BsYXktZW5kLXBhbmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3JpZ2h0OjA7bWFyZ2luOjAgMTAlO2Rpc3BsYXk6bm9uZX0ueXRwLW11dGVkLWF1dG9wbGF5LXNob3ctZW5kLXBhbmVsLnl0cC1tdXRlZC1hdXRvcGxheS1lbmRzY3JlZW4tb3ZlcmxheXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjQpfS55dHAtbXV0ZWQtYXV0b3BsYXktc2hvdy1lbmQtcGFuZWwgLnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtcGFuZWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXA7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7bWFyZ2luLXRvcDo0MHB4fS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtdGV4dHttYXJnaW4tdG9wOjkwcHh9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfX1Aa2V5ZnJhbWVzIHl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfX0ueXRwLWVxdWFsaXplci1iYXItbGVmdCwueXRwLWVxdWFsaXplci1iYXItbWlkZGxlLC55dHAtZXF1YWxpemVyLWJhci1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDstbXMtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDt0cmFuc2Zvcm0tb3JpZ2luOjhweCAxNnB4Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uO2FuaW1hdGlvbi1uYW1lOnl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dHAtZXF1YWxpemVyLWJhci1sZWZ0ey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tZHVyYXRpb246LjVzfS55dHAtZXF1YWxpemVyLWJhci1taWRkbGV7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MS4zczthbmltYXRpb24tZHVyYXRpb246MS4zc30ueXRwLWVxdWFsaXplci1iYXItcmlnaHR7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjdzO2FuaW1hdGlvbi1kdXJhdGlvbjouN3N9Lnl0cC1wYXVzZS1vdmVybGF5e2JvcmRlci1yYWRpdXM6OHB4O2JvdHRvbTo0OXB4O2RpcmVjdGlvbjpsdHI7bGVmdDowO21hcmdpbjoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NDI7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wYXVzZS1vdmVybGF5W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1wYXVzZS1vdmVybGF5LWNvbnRyb2xzLWhpZGRlbiAueXRwLXBhdXNlLW92ZXJsYXl7Ym90dG9tOjB9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSAuYWQtb3ZlcmxheSwueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5IC5jYXB0aW9uLXdpbmRvd3tkaXNwbGF5Om5vbmV9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5IC55dHAtcGF1c2Utb3ZlcmxheXtiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjkpO3BhZGRpbmc6MTJweCAxNnB4IDE2cHg7cmlnaHQ6MH0ueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXl7Ym90dG9tOmF1dG99Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheS55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtcGF1c2Utb3ZlcmxheXtvcGFjaXR5Oi4yfS55dHAtY2Utc2hvd24gLnl0cC1wYXVzZS1vdmVybGF5LC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1wYXVzZS1vdmVybGF5LC55dHAtbWVudS1zaG93biAueXRwLXBhdXNlLW92ZXJsYXksLnl0cC1zZXR0aW5ncy1zaG93biAueXRwLXBhdXNlLW92ZXJsYXl7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZXhwYW5kLXBhdXNlLW92ZXJsYXkpIC55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWNvbGxhcHNlLC5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZXhwYW5kLXBhdXNlLW92ZXJsYXkpIC55dHAtcGF1c2Utb3ZlcmxheSAueXRwLW5leHQsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSkgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtcHJldmlvdXMsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSkgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZSwuaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5KSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3tkaXNwbGF5Om5vbmV9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheS55dHAtYmlnLW1vZGUgLnl0cC1wYXVzZS1vdmVybGF5e3BhZGRpbmc6MjRweCAzMnB4IDMycHh9Lnl0cC1wYXVzZS1vdmVybGF5IC55dHAtY29sbGFwc2V7aGVpZ2h0OjIwcHg7b3BhY2l0eTouOTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxMnB4O3dpZHRoOjIwcHh9Lnl0cC1tb2JpbGUueXRwLWVtYmVkLW1vYmlsZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6NDhweDtyaWdodDowO3RvcDowO3dpZHRoOjQ4cHh9Lnl0cC1tb2JpbGUueXRwLWVtYmVkLW1vYmlsZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZS1pY29ue21hcmdpbjphdXRvO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MzJweDtyaWdodDozNnB4O3RvcDoyNHB4O3dpZHRoOjMycHh9Lnl0cC1wYXVzZS1vdmVybGF5IC55dHAtY29sbGFwc2U6aG92ZXJ7b3BhY2l0eToxfS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjMycHg7cGFkZGluZzowIDEwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9iaWxlLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtZXhwYW5ke2hlaWdodDo0OHB4fS55dHAtYmlnLW1vZGUgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtZXhwYW5ke2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToyNHB4O3BhZGRpbmc6MTBweCAxNXB4fS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpfS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZCBzdmd7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7bWFyZ2luLWJvdHRvbToycHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1leHBhbmQgc3Zne3dpZHRoOjMycHg7aGVpZ2h0OjMycHh9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZHtkaXNwbGF5Om5vbmV9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktYmFja2Ryb3B7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjI0Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktYmFja2Ryb3BbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheXtib3JkZXItcmFkaXVzOjJweDtib3R0b206OHB4O2xlZnQ6OHB4O3JpZ2h0OjhweDttYXJnaW46MDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwYWRkaW5nOjE2cHggMjRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXl7cGFkZGluZzoxMnB4IDI0cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5e2JvdHRvbTozMnB4O2xlZnQ6MjhweDtyaWdodDoyOHB4fS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1wcmV2aW91cywueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheS55dHAtc2Nyb2xsLW1heCAueXRwLW5leHQsLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkueXRwLXNjcm9sbC1taW4gLnl0cC1wcmV2aW91cywueXRwLXRvdWNoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtdG91Y2gtbW9kZSAueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2Rpc3BsYXk6bm9uZX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1ib3R0b206MDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1yZWxhdGVkLXRpdGxle21hcmdpbi1sZWZ0OjhweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZXttYXJnaW4tYm90dG9tOjI0cHg7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzJweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb25ze2RpcmVjdGlvbjpsdHI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tdG9wOjhweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3ttYXJnaW4tdG9wOjZweH0ueXRwLXRvdWNoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3tvdmVyZmxvdy14OmF1dG99Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWltYWdle2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwOHB4O3dpZHRoOjE5MnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dCwueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2JhY2tncm91bmQ6IzMzMztib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggNXB4IHJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6MCAxcHggNXB4IHJnYmEoMCwwLDAsLjIpO2hlaWdodDozMnB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7Ym90dG9tOjUwJX0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dCwueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcHJldmlvdXN7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLW5leHR7cmlnaHQ6MjhweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0e3JpZ2h0OjMycHh9W2Rpcj1ydGxdIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2xlZnQ6MjhweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1wcmV2aW91c3tsZWZ0OmFkZCgyNHB4LDhweCl9W2Rpcj1ydGxdIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcHJldmlvdXN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCg1MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSl9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246YWxsIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5re21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6OHB4fS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5e2JvdHRvbTowO2ZvbnQtc2l6ZToxMnB4O2xlZnQ6MDtvcGFjaXR5OjA7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDEyLDEyLDEyLC44KSx0cmFuc3BhcmVudCAxMDBweCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMTIsMTIsMTIsLjgpIDAsdHJhbnNwYXJlbnQgMTAwcHgpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLW92ZXJsYXl7Zm9udC1zaXplOjIwcHh9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5rOmZvY3VzIC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5LC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IGEueXRwLXN1Z2dlc3Rpb24tbGluazpob3ZlciAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtvcGFjaXR5OjF9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWxpbmsgLnl0cC1zdWdnZXN0aW9uLWR1cmF0aW9ue2JhY2tncm91bmQ6IzAwMDtib3JkZXItcmFkaXVzOjJweDtib3R0b206NHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO29wYWNpdHk6Ljk7cGFkZGluZzoycHggNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1saW5rIC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbntmb250LXNpemU6MTdweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb25bZGF0YS1pcy1saXZlPXRydWVde2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1lcnJvci1pbmRpY2F0b3IsI2UxMDAyZCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWF1dGhvciwueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tdG9wOjhweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxOHB4O21heC1oZWlnaHQ6MzBweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tYXV0aG9ye29wYWNpdHk6Ljc7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTZweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtc21hbGwtbW9kZSAueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZXttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLXRpdGxle21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1hdXRob3J7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MTJweH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJre3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjExMHB4O2hlaWdodDoyNnB4O2JvdHRvbTozOHB4O3otaW5kZXg6Mjg7b3BhY2l0eTouOTtwYWRkaW5nLXRvcDoxMXB4O3BhZGRpbmctYm90dG9tOjExcHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXdhdGVybWFyazpub3QoLnl0cC1tdXRlZC1hdXRvcGxheS13YXRlcm1hcmspe3JpZ2h0OjE2cHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXdhdGVybWFyay55dHAtd2F0ZXJtYXJrLXNtYWxse3dpZHRoOjg1cHg7aGVpZ2h0OjIwcHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJre2JvdHRvbTo1OXB4fS55dHAtaGlkZS1jb250cm9sczpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7Ym90dG9tOjVweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW5hdGl2ZS1jb250cm9sczpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7Ym90dG9tOjUwcHg7bGVmdDoxNnB4fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcms6bm90KC55dHAtbm8taG92ZXIpOm5vdCgueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFyayk6aG92ZXJ7b3BhY2l0eToxfTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1tdXRlZC1hdXRvcGxheS1vdmVybGF5IC55dHAtd2F0ZXJtYXJre3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTowfS55dHAtYXV0b2hpZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJrOm5vdCgueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFyayl7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXV0ZWQtYXV0b3BsYXkgLnl0cC13YXRlcm1hcms6bm90KC55dHAtbXV0ZWQtYXV0b3BsYXktd2F0ZXJtYXJrKXtkaXNwbGF5Om5vbmV9Om5vdCgueXRwLW13ZWItcGxheWVyKSAuaHRtbDUtZW5kc2NyZWVue2N1cnNvcjpkZWZhdWx0O292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjM2fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1lbmRzY3JlZW4tdGFrZW92ZXIuaHRtbDUtZW5kc2NyZWVue2Rpc3BsYXk6bm9uZX0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ286bm90KC55dHAtbXdlYi1wbGF5ZXIpIC5odG1sNS1lbmRzY3JlZW46bm90KC55dHAtc2hvcnRzLWJyYW5kZWQtdWkpe21hcmdpbi10b3A6MTZweH0ueXRwLWJpZy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvOm5vdCgueXRwLW13ZWItcGxheWVyKSAuaHRtbDUtZW5kc2NyZWVuOm5vdCgueXRwLXNob3J0cy1icmFuZGVkLXVpKXttYXJnaW4tdG9wOjMycHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCV9Lnl0cC1lbmRzY3JlZW4tdGFrZW92ZXI6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLWNvbnRlbnR7ZGlzcGxheTpub25lfTpub3QoLnl0cC1td2ViLXBsYXllcikgLmh0bWw1LWVuZHNjcmVlbi55dHAtZW5kc2NyZWVuLXBhZ2luYXRle2xlZnQ6MzJweDtvdmVyZmxvdzp2aXNpYmxlO3JpZ2h0OjMycHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1td2ViLXBsYXllcikgLmh0bWw1LWVuZHNjcmVlbi55dHAtZW5kc2NyZWVuLXBhZ2luYXRle2xlZnQ6NDhweDtyaWdodDo0OHB4fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1lbmRzY3JlZW4tbmV4dHtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7b3BhY2l0eTouOTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMzJweDt3aWR0aDozMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1uZXh0e3JpZ2h0Oi00OHB4O3dpZHRoOjQ4cHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wYWdpbmF0ZSAueXRwLWVuZHNjcmVlbi1uZXh0e2Rpc3BsYXk6YmxvY2t9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1uZXh0OmhvdmVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wcmV2aW91c3tkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7bGVmdDotMzJweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLXByZXZpb3Vze2xlZnQ6LTQ4cHg7d2lkdGg6NDhweH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLXBhZ2luYXRlIC55dHAtZW5kc2NyZWVuLXByZXZpb3Vze2Rpc3BsYXk6YmxvY2t9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wcmV2aW91czpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXdlYi1wbGF5ZXIuaHRtbDUtZW5kc2NyZWVue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Y3Vyc29yOmRlZmF1bHQ7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MzZ9Lmh0bWw1LWVuZHNjcmVlbi5tb2Rlcm4tdmlkZW93YWxsLWVuZHNjcmVlbntjdXJzb3I6ZGVmYXVsdDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDozNjstd2Via2l0LWFsaWduLWNvbnRlbnQ6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e2ZvbnQtc2l6ZToxMXB4fS55dHAtbW9kZXJuLWVuZHNjcmVlbi1zaW5nbGUtaXRlbSAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudCAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGx7bWFyZ2luLWJvdHRvbTowOy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O3BhZGRpbmctYm90dG9tOnVuc2V0O2hlaWdodDoxMDAlfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1zaW5nbGUtaXRlbSAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudCAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWltYWdle21hcmdpbi1yaWdodDoxMnB4fS55dHAtZW5kc2NyZWVuLXRha2VvdmVyIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50LC55dHAtZW5kc2NyZWVuLXRha2VvdmVyLmh0bWw1LWVuZHNjcmVlbntkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC5odG1sNS1lbmRzY3JlZW46bm90KC55dHAtc2hvcnRzLWJyYW5kZWQtdWkpe21hcmdpbi10b3A6MTZweH0ueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDMxMHB4LDFmcikpO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heChjbGFtcCgyNTBweCwyNyUsNDUwcHgpLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMSwxZnIpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dyaWQtYXV0by1yb3dzOjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtY29sdW1uLWdhcDoxNnB4Oy1tb3otY29sdW1uLWdhcDoxNnB4O2NvbHVtbi1nYXA6MTZweDt3aWR0aDoxMDAlOy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1hbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7cGFkZGluZzozMnB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXgtaGVpZ2h0OjEwMCV9Lnl0cC1tb2Rlcm4tZW5kc2NyZWVuLXJvdy0wIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206MTZweH0ueXRwLW1vZGVybi1lbmRzY3JlZW4tbGltaXQtcm93cy0xIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMSwxZnIpfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1saW1pdC1yb3dzLTIgLnl0cC1tb2Rlcm4tZW5kc2NyZWVuLWNvbnRlbnR7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdCgyLDFmcil9Lnl0cC1tb2Rlcm4tZW5kc2NyZWVuLWxpbWl0LXJvd3MtMyAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudHtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KDMsMWZyKX0ueXRwLWVuZHNjcmVlbi1wcmV2aW91czpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtvcGFjaXR5OjE7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtbWFpbi1jb250ZW50e29wYWNpdHk6MTtzY3JvbGxiYXItd2lkdGg6bm9uZTtvdmVyZmxvdzpzY3JvbGx9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3RvcDowfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS55dHAtZ3JpZC1zY3JvbGxhYmxlIC55dHAtZnVsbHNjcmVlbi1ncmlke3RvcDpjYWxjKDMwJSArIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKTtib3R0b206MH0uaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtZXhwYW5kLWJ1dHRvbiwuaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nKTpub3QoLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1idXR0b25zLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0b3A6MDttYXJnaW4tdG9wOmNhbGModmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpLzIqLTEgKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0KS8yKi0xKTstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3otaW5kZXg6NzI7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlkLWJ1dHRvbnMtY29udGFpbmVye21hcmdpbi10b3A6Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCkvMiotMSArIHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQpLzIqLTEpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b257b3BhY2l0eToxOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpO2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OnZpc2libGU7c2Nyb2xsYmFyLXdpZHRoOm5vbmU7ei1pbmRleDo3Mjtwb2ludGVyLWV2ZW50czphbGw7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b24gc3Zne3BhZGRpbmc6Y2FsYygodmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpIC0gdmFyKC0teXQtZGVsaGktaWNvbi1zaXplLCAyNHB4KSkvMik7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWljb24tc2l6ZSwyNHB4KTt3aWR0aDp2YXIoLS15dC1kZWxoaS1pY29uLXNpemUsMjRweCl9Lnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uIHN2Z3twYWRkaW5nOmNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0KSAtIHZhcigtLXl0LWRlbGhpLWljb24tc2l6ZSwgMjRweCkpLzIpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOmNhbGMoMTAwJSAtIDhweCk7aGVpZ2h0OmNhbGMoMTAwJSAtIDhweCk7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aW9uLWJ1dHRvbntkaXNwbGF5Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aW9uLWJ1dHRvbntkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOmFsbH06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246aG92ZXI6YmVmb3JlLDpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTpob3ZlciAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uOmJlZm9yZSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6aG92ZXIgLnl0cC1tb3JlLXZpZGVvcy1idXR0b246YWZ0ZXIsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKX06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YWN0aXZlOmJlZm9yZSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6YWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YmVmb3JlLDpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTphY3RpdmUgLnl0cC1tb3JlLXZpZGVvcy1idXR0b246YWZ0ZXIsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtvcGFjaXR5OjE7b3ZlcmZsb3c6aGlkZGVuO3RvcDpjYWxjKDEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkgLSB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSAtIDZweCAtIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHt0b3A6Y2FsYygxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSA2cHggLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMTAwJSl9Lnl0cC1ncmlkLXNjcm9sbGFibGUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaGVhZGVye2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1ncmlkLXNjcm9sbGFibGUgLnl0cC1mdWxsc2NyZWVuLWdyaWR7ZGlzcGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlO3RvcDpjYWxjKDEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkgLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMTAwJSl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZ3JpZC1zY3JvbGxhYmxlLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHt0b3A6Y2FsYygxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWdyaWQtc2Nyb2xsYWJsZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnR7b3BhY2l0eTouNX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1ncmlkLXNjcm9sbGFibGUueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtvcGFjaXR5OjF9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5e2Rpc3BsYXk6YmxvY2s7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDoxMnB4O2JvcmRlci1yYWRpdXM6MTZweDt6LWluZGV4OjcyO3BvaW50ZXItZXZlbnRzOmFsbDtjdXJzb3I6cG9pbnRlcn0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmU6bm90KC5lbmRlZC1tb2RlKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnR7bWFyZ2luLXRvcDoxMnB4fS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5LC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXl7ZGlzcGxheTpub25lfTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5OmhhcygueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uOmhvdmVyKSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5KX06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTphY3RpdmUsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6aGFzKC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3Zlcil9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlOm5vdCguZW5kZWQtbW9kZSkgLnl0cC1mdWxsc2NyZWVuLWdyaWQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsLjc1KSAxMDBweCxyZ2JhKDAsMCwwLC44NSkpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsLjc1KSAxMDBweCxyZ2JhKDAsMCwwLC44NSkpfS55dHAtZ3JpZC1yZXBsYXktYnV0dG9ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czoxOHB4O21hcmdpbi1yaWdodDoxNnB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtkaXNwbGF5Om5vbmV9Lnl0cC1mdWxsLWJsZWVkLXBsYXllciAueXRwLWdyaWQtcmVwbGF5LWJ1dHRvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2JvcmRlci1yYWRpdXM6MzBweH0ueXRwLWdyaWQtcmVwbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2Rpc3BsYXk6Z3JpZDtwYWRkaW5nOjAgMjRweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxNnB4Oy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1hbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2h9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLXN0aWxscy1jb250YWluZXIsLnl0cC1ncmlkLXNjcm9sbGluZy55dHAtZ3JpZC1zY3JvbGxhYmxlIC55dHAtZnVsbHNjcmVlbi1ncmlkLXN0aWxscy1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0b30ueXRwLWZ1bGxzY3JlZW4tZ3JpZHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6NzI7cG9pbnRlci1ldmVudHM6bm9uZTttYXgtaGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcpOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUpIC55dHAtZnVsbHNjcmVlbi1ncmlke2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWR7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7b3BhY2l0eTowfS55dHAtbW9yZS12aWRlb3MtYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzt6LWluZGV4OjcyO3BvaW50ZXItZXZlbnRzOmFsbDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAxMnB4Oy13ZWJraXQtY29sdW1uLWdhcDo4cHg7LW1vei1jb2x1bW4tZ2FwOjhweDtjb2x1bW4tZ2FwOjhweDtib3JkZXItcmFkaXVzOjI4cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7bGVmdDo0cHg7d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtoZWlnaHQ6Y2FsYygxMDAlIC0gOHB4KTtib3JkZXItcmFkaXVzOjI4cHh9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gLnl0cC1tb3JlLXZpZGVvcy1idXR0b24tdGh1bWJuYWlse3dpZHRoOjQwcHg7YXNwZWN0LXJhdGlvOjE2Lzk7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gLnl0cC1tb3JlLXZpZGVvcy1idXR0b24tdGl0bGV7Y29sb3I6dmFyKC0tT3ZlcmxheS1PdmVybGF5LVRleHQtUHJpbWFyeSwjZmZmKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDA7Zm9udC1mYW1pbHk6dmFyKC0tVHlwb2dyYXBoeS1Gb250LUZhbWlseSxSb2JvdG8pO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoyMHB4O2xldHRlci1zcGFjaW5nOi4xNnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhIChtaW4td2lkdGg6MjIwMHB4KXsueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpfX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLmh0bWw1LWVuZHNjcmVlbntkaXNwbGF5Om5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlke3RvcDowO2JvdHRvbTp2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDcycHgpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye3dpZHRoOjEwMCU7cGFkZGluZzowIDI0cHh9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZTpub3QoLnl0cC1lbmFibGUtaG9yaXpvbnRhbC1lbmRzY3JlZW4tc2hlbGYpIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDpudGgtY2hpbGQobis0KXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6MjIwMHB4KXsueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGU6bm90KC55dHAtZW5hYmxlLWhvcml6b250YWwtZW5kc2NyZWVuLXNoZWxmKSAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGw6bnRoLWNoaWxkKDQpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUueXRwLWVuYWJsZS1ob3Jpem9udGFsLWVuZHNjcmVlbi1zaGVsZiAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O292ZXJmbG93LXg6YXV0bzstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlLnl0cC1lbmFibGUtaG9yaXpvbnRhbC1lbmRzY3JlZW4tc2hlbGYgLnl0cC1mdWxsc2NyZWVuLWdyaWQtbWFpbi1jb250ZW50ey13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUueXRwLWVuYWJsZS1ob3Jpem9udGFsLWVuZHNjcmVlbi1zaGVsZiAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGx7bWluLXdpZHRoOjMxJX0uaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy1idXR0b24ueXRwLWJ1dHRvbiwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLmh0bWw1LWVuZHNjcmVlbiwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVyLC55dHAtZ3JpZC1zY3JvbGxpbmcgLmh0bWw1LWVuZHNjcmVlbiwueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0LC55dHAtZ3JpZC1zY3JvbGxpbmcgLnl0cC1jYXB0aW9uLXdpbmRvdy1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmc6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmc6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtbW9yZS12aWRlb3MtYnV0dG9uLnl0cC1idXR0b24sLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtZnVsbHNjcmVlbi1ncmlkLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbi55dHAtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWVycm9ye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjQ0O2xpbmUtaGVpZ2h0OjIyMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNDAsNDAsNDApfS55dHAtZW1iZWQtZXJyb3IgLnl0cC1lcnJvcntkaXNwbGF5OmJsb2NrfS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGV7bGluZS1oZWlnaHQ6MTYwJX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvci5yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXktdmlzaWJsZXtsaW5lLWhlaWdodDoyMjAlfS55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6ODUlOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXh9Lnl0cC1lbWJlZC1lcnJvciAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHttYXJnaW46MCBhdXRvfS55dHAtZXJyb3IgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lcntoZWlnaHQ6NjRweDt3aWR0aDo2NHB4O21pbi13aWR0aDo2NHB4O21pbi1oZWlnaHQ6NjRweDtmbG9hdDpsZWZ0fS55dHAtZXJyb3IgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lciBzdmd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS55dHAtZXJyb3IgLnl0cC1zbWFsbC1yZWRpcmVjdHtkaXNwbGF5OmlubGluZTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4cHg7cmlnaHQ6OHB4O29wYWNpdHk6Ljd9Lnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0Lm5vLWxpbmt7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1lcnJvci1jb250ZW50LXdyYXAtc3VicmVhc29uOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWVycm9yLnJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheS12aXNpYmxlIC55dHAtc21hbGwtcmVkaXJlY3QsLnl0cC1mdWxsc2NyZWVuIC55dHAtZXJyb3IgLnl0cC1zbWFsbC1yZWRpcmVjdHtkaXNwbGF5Om5vbmV9Lnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0IGF7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJX0ueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWNvbnRlbnQtd3JhcHttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvO21hcmdpbi1sZWZ0OjE2cHg7aGVpZ2h0OjEwMCV9Lnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lcntoZWlnaHQ6OTZweDt3aWR0aDo5NnB4O21pbi13aWR0aDo5NnB4O21pbi1oZWlnaHQ6OTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0e2hlaWdodDo2MHB4O3dpZHRoOjYwcHh9Lnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToyMnB4fS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGUgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXJlYXNvbntmb250LXNpemU6MTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvci5yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXktdmlzaWJsZSAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToyMnB4fS55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoxMHB4fS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGUgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDoycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHtsaW5lLWhlaWdodDoxNTAlfS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWljb24tY29udGFpbmVye2hlaWdodDozMnB4O3dpZHRoOjMycHg7bWluLXdpZHRoOjMycHg7bWluLWhlaWdodDozMnB4fS55dHAtdGlueS1tb2RlIC55dHAtZXJyb3ItaWNvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWNvbnRlbnQtd3JhcC1yZWFzb257Zm9udC1zaXplOjE0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9Lnl0cC10aW55LW1vZGUgLnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToxMnB4fS55dHAtdGlueS1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0e2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWZ1bGxlcnNjcmVlbi1lZHUtYnV0dG9uLnl0cC1idXR0b257d2lkdGg6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtZnVsbGVyc2NyZWVuLWVkdS1idXR0b24ueXRwLWJ1dHRvblthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZnVsbGVyc2NyZWVuLWVkdS1jaGV2cm9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjI0cHh9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbjpub3QoLnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbi1zdWJ0bGUpIC55dHAtZnVsbGVyc2NyZWVuLWVkdS1jaGV2cm9ue2hlaWdodDo1MCV9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LXRleHR7aGVpZ2h0OjUwJTttYXJnaW4tdG9wOi04cHh9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbi1zdWJ0bGUgLnl0cC1mdWxsZXJzY3JlZW4tZWR1LXRleHR7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjphZnRlcnt3aWR0aDoyNHB4fS55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTAsLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMSwueXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0yLC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTN7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMC1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LC0xcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTFweCwtMXB4KX19QGtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTAtYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTFweCwtMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsLTFweCl9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTEtYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LC0xcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LC0xcHgpfX1Aa2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMS1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsLTFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsLTFweCl9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsMXB4KX19QGtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsMXB4KX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMy1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LDFweCl9fUBrZXlmcmFtZXMgeXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0zLWFuaW1hdGlvbns1MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsMXB4KX19Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTB7LXdlYmtpdC1hbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0wLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMC1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZnVsbHNjcmVlbi1idXR0b246bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciAueXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0xey13ZWJraXQtYW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMS1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTEtYW5pbWF0aW9uIC40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWZ1bGxzY3JlZW4tYnV0dG9uOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXIgLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMnstd2Via2l0LWFuaW1hdGlvbjp5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uIC40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTthbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0yLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTN7LXdlYmtpdC1hbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0zLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMy1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4NnB4O3JpZ2h0OjI0cHg7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDMwcHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDMwcHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDMwcHggKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7cG9zaXRpb246YWJzb2x1dGU7bWF4LXdpZHRoOjMzJTt0b3A6MjRweDtsZWZ0OjI0cHg7ei1pbmRleDo1OX0ueXRwLW92ZXJsYXktdG9wLWxlZnQgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe21heC13aWR0aDo2MCV9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbSAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7dG9wOnVuc2V0O2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMzBweCl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtZmVhdHVyZWQtcHJvZHVjdC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoMTQycHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtc2hvcHBpbmctcGlsbC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoODZweCArIHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZmVhdHVyZWQtcHJvZHVjdC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoMTQycHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLXNob3BwaW5nLXBpbGwtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDg2cHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMzBweCl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUueXRwLWZlYXR1cmVkLXByb2R1Y3Qtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDE0MnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1zaG9wcGluZy1waWxsLXNob3duIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YXtib3R0b206Y2FsYyg4NnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1iaWctbW9kZS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWZlYXR1cmVkLXByb2R1Y3Qtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDE0MnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtc2hvcHBpbmctcGlsbC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoODZweCArIHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLWNocm9tZS10b3AtYnV0dG9uc3t3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEsLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MDt6LWluZGV4OjU5Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtY2hyb21lLXRvcC1idXR0b25ze3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjA7ei1pbmRleDo1OH0qIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YSwqIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLW92ZXJsYXlzLWNvbnRhaW5lcntvcGFjaXR5Om1heCgxIC0gMyAqIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSwwKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9oaWRlIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YSwueXRwLWF1dG9oaWRlIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze29wYWNpdHk6MH0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3toZWlnaHQ6MDttYXJnaW46MH0uYWQtc2hvd2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEsLmFkLXNob3dpbmcgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLmVuZGVkLW1vZGUgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLnNlZWtpbmctbW9kZSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucywueXRwLW1lbnUtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtbWVudS1zaG93biAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucywueXRwLXNldHRpbmdzLXNob3duIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLC55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7ZGlzcGxheTpub25lfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5e3otaW5kZXg6ODI7b3ZlcmZsb3c6aGlkZGVufS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJhY2tncm91bmR7YmFja2dyb3VuZDpuby1yZXBlYXQgNTAlL2NvdmVyO2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjgyfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJhY2tncm91bmQtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjMpO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3otaW5kZXg6ODJ9Lnl0cC1nYXRlZC1hY3Rpb25zLW92ZXJsYXktbWluaXBsYXllci1jbG9zZS1idXR0b257ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjhweDt6LWluZGV4OjgyfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1taW5pcGxheWVyLWNsb3NlLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1iYXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgNnB4O2xlZnQ6MjBweDtoZWlnaHQ6NTZweDtib3R0b206MjBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6I2ZmZjt3aWR0aDozODBweDt6LWluZGV4OjgyfS55dHAtYmlnLW1vZGUgLnl0cC1nYXRlZC1hY3Rpb25zLW92ZXJsYXktYmFye3BhZGRpbmc6MCA5cHg7aGVpZ2h0Ojg0cHg7Ym90dG9tOjMwcHg7bGVmdDozMHB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnN7bWFyZ2luOjEycHggNnB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnttaW4td2lkdGg6ODBweDtoZWlnaHQ6MzJweDtwYWRkaW5nOjAgOHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym9yZGVyLXJhZGl1czoyNHB4O2JvcmRlci13aWR0aDowO2N1cnNvcjpwb2ludGVyfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbi10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjAgOHB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjExMCU7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmZ9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1idXR0b25ze21hcmdpbjoxOHB4IDlweH0ueXRwLWJpZy1tb2RlIC55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnttaW4td2lkdGg6MTIwcHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDEycHg7Ym9yZGVyLXJhZGl1czozcHh9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1idXR0b24tdGl0bGV7bWFyZ2luOjAgMTJweDtsaW5lLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxMzAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS10ZXh0LWNvbnRhaW5lcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21pbi13aWR0aDoxODBweDttYXJnaW46MCA2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS10ZXh0LWNvbnRhaW5lcnttaW4td2lkdGg6MjcwcHg7bWFyZ2luOjAgOXB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXN1YnRpdGxlLC55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXRpdGxle3RleHQtdHJhbnNmb3JtOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXRpdGxle2ZvbnQtc2l6ZToxNTAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1zdWJ0aXRsZXtmb250LXNpemU6MTEwJTtmb250LXdlaWdodDo0MDA7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lnl0cC1oZWF0LW1hcC55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXIsLnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXJ7ZGlzcGxheTpibG9jaztvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2hlaWdodDo0MHB4O2JvdHRvbTo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWhlYXQtbWFwLWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MH0ueXRwLWRlbGhpLW1vZGVybi55dHAtaGVhdC1tYXAueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZTpub3QoLmFkLXNob3dpbmcpIC55dHAtaGVhdC1tYXAtY29udGFpbmVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpIC4xcyxtYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMXMsbWFyZ2luLWJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgLjFzO21hcmdpbi1ib3R0b206OHB4fS55dHAtaGVhdC1tYXAueXRwLXByb2dyZXNzLWJhci1ob3Zlcjpub3QoLmFkLXNob3dpbmcpIC55dHAtdGltZWQtbWFya2Vycy1lbmFibGVkIC55dHAtaGVhdC1tYXAtY29udGFpbmVye2JvdHRvbTo3cHh9Lnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtaGVhdC1tYXAtY2hhcHRlciBzdmd7aGVpZ2h0OjQwcHh9Lnl0cC1iaWctbW9kZS55dHAtaGVhdC1tYXAueXRwLXByb2dyZXNzLWJhci1ob3ZlciAueXRwLWhlYXQtbWFwLWNoYXB0ZXIgc3Zne2hlaWdodDo2MHB4fS55dHAtaGVhdC1tYXAtY29udGFpbmVye29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDowO2JvdHRvbTo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWhlYXQtbWFwLnl0cC1iaWctbW9kZS55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtaGVhdC1tYXAtY29udGFpbmVye2hlaWdodDo2MHB4O2JvdHRvbTo4cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWhlYXQtbWFwLWNoYXB0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWhlYXQtbWFwLWNoYXB0ZXIueXRwLWhlYXRtYXAtaG92ZXJ7Ym90dG9tOjJweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtaGVhdC1tYXAtY2hhcHRlci55dHAtaGVhdG1hcC1ob3Zlcnstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1iaWctbW9kZSAueXRwLWhlYXQtbWFwLWNoYXB0ZXIueXRwLWhlYXRtYXAtaG92ZXJ7Ym90dG9tOjNweH0ueXRwLWhlYXQtbWFwLXBsYXllZF9iYXIgLnl0cC1oZWF0LW1hcC1ob3ZlcntoZWlnaHQ6MTAwJTtmaWxsOnJnYmEoMjU1LDI1NSwyNTUsLjUpfS55dHAtaGVhdC1tYXAtaG92ZXIsLnl0cC1oZWF0LW1hcC1wbGF5e2hlaWdodDowfS55dHAtaGVhdC1tYXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWNvbnRhaW5lcnt3aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDowfS55dHAtZmluZS1zY3J1YmJpbmctdGh1bWJuYWlse2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSAwIGF1dG87ZmxleDoxIDAgYXV0b30ueXRwLWZpbmUtc2NydWJiaW5nLWRyYWdnYWJsZSwueXRwLWZpbmUtc2NydWJiaW5nLXRodW1ibmFpbHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO21pbi13aWR0aDoxNjBweDtoZWlnaHQ6MTAwJX0ueXRwLWZpbmUtc2NydWJiaW5nLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtoZWlnaHQ6MTAwJTt3aWR0aDozcHg7YmFja2dyb3VuZDojZWVlfS55dHAtZmluZS1zY3J1YmJpbmctc2Vlay10aW1le3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAueXRwLWZpbmUtc2NydWJiaW5nLWRpc21pc3MsLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1maW5lLXNjcnViYmluZy1wbGF5LC55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlIC55dHAtZmluZS1zY3J1YmJpbmctc2Vlay10aW1le2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlIC55dHAtY2hyb21lLWNvbnRyb2xze2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLXBsYXl7ZGlzcGxheTpub25lO2hlaWdodDozNXB4O3dpZHRoOjM1cHg7Ym90dG9tOjExMCU7cG9zaXRpb246YWJzb2x1dGV9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1maW5lLXNjcnViYmluZy1wbGF5e2JvdHRvbToxMjAlfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtZmluZS1zY3J1YmJpbmctcGxheSBzdmd7cGFkZGluZzo4cHh9Lnl0cC1maW5lLXNjcnViYmluZy1kaXNtaXNze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMTUlO3JpZ2h0OjEwcHg7aGVpZ2h0OjI1cHg7d2lkdGg6MjVweDtkaXNwbGF5Om5vbmV9Lnl0cC1maW5lLXNjcnViYmluZy1jaGFwdGVyLXRpdGxle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOjE2MHB4O2hlaWdodDo5MHB4O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dvcmQtd3JhcDpicmVhay13b3JkOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1maW5lLXNjcnViYmluZy1jaGFwdGVyLXRpdGxlLWNvbnRlbnR7cGFkZGluZzoxNXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtZmluZS1zY3J1YmJpbmctY2hhcHRlci10aXRsZXt3aWR0aDoyNDBweDtoZWlnaHQ6MTM1cHh9Lnl0cC1maW5lLXNjcnViYmluZy1lZHV7ZGlzcGxheTpub25lfS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWFkLW92ZXJsYXktc2xvdHtib3R0b206MTA3cHh9Lnl0cC1iaWctbW9kZS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWFkLW92ZXJsYXktc2xvdHtib3R0b206MTUxcHh9Lnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVte2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjE2cHggMCAwIDE2cHg7d2lkdGg6YXV0bztkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0cC1iaWctbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW17bWFyZ2luOjI0cHggMCAwIDI0cHg7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW17bWFyZ2luOjhweCAxMnB4IDAgMCAwIDhweCAxMnB4IDA7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1kaXNjbGFpbWVye2N1cnNvcjpub25lO2ZvbnQtc2l6ZToxNHB4O292ZXJmbG93OmF1dG87bWFyZ2luLWJvdHRvbToxNnB4fS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1idXR0b257d2lkdGg6MTAwJTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1pY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1pY29ue3dpZHRoOjcycHg7aGVpZ2h0OjU0cHh9Lnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVtLWxhYmVse21hcmdpbi1sZWZ0OjEycHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtvdmVyZmxvdzphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVtLWxhYmVsLC55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW0tbGFiZWx7bWFyZ2luLWxlZnQ6MTJweDtmb250LXNpemU6MTRweDtvdmVyZmxvdzphdXRvfS55dHAtaW5mby1wYW5lbC1kZXRhaWwtc2tyaW17cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zKTt6LWluZGV4OjcxfS55dHAtaW5mby1wYW5lbC1kZXRhaWx7cG9zaXRpb246YWJzb2x1dGU7bGVmdDphdXRvO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6NjAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7b3ZlcmZsb3c6YXV0bztkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbCwueXRwLXNtYWxsLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbHt3aWR0aDo2MCV9W2Rpcj1sdHJdIC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9bHRyXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9W2Rpcj1ydGxdIC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9cnRsXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC1oZWFkZXJ7bWFyZ2luOjE2cHg7bGluZS1oZWlnaHQ6MjRweDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbC1oZWFkZXJ7bWFyZ2luOjI0cHh9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC10aXRsZXttYXJnaW4tcmlnaHQ6MTRweDstd2Via2l0LWZsZXgtZ3JvdzoyOy13ZWJraXQtYm94LWZsZXg6MjtmbGV4LWdyb3c6Mn0ueXRwLWluZm8tcGFuZWwtZGV0YWlsLWNsb3Nle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1kZXRhaWwtY2xvc2V7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWluZm8tcGFuZWwtZGV0YWlsLWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtaW5mby1wYW5lbC1kZXRhaWwtY2xvc2U6aG92ZXIgcGF0aHtmaWxsOiNmZmZ9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC1ib2R5e2xpbmUtaGVpZ2h0OjI0cHg7bWluLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO21hcmdpbjowIDE2cHg7b3ZlcmZsb3c6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1kZXRhaWwtYm9keXttYXJnaW46MCAyNHB4fS55dHAtaW5mby1wYW5lbC1kZXRhaWwtaXRlbXN7bGVmdDowO3JpZ2h0OjA7cGFkZGluZzowIDE2cHggMTZweCAwfS55dHAtbXV0ZWQtYXV0b3BsYXkgLnl0cC1pbmZvLXBhbmVsLWRldGFpbC1za3JpbXt6LWluZGV4OjEwMDJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e2Rpc3BsYXk6bm9uZX0ueXRwLWluZm8tcGFuZWwtcHJldmlld3toZWlnaHQ6YXV0bztib3R0b206YXV0bztsZWZ0OjEycHg7cmlnaHQ6YXV0bztvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MjY7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2JvcmRlcjppbmhlcml0O2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjM2VhNmZmO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MDtmb250OmluaGVyaXQ7bWF4LXdpZHRoOm1pbig1MCUgLSA2NHB4LDI3MnB4KTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWluZm8tcGFuZWwtcHJldmlld1thcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZW1iZWQgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXd7dG9wOjYwcHh9Lnl0cC1lbWJlZC55dHAtc2hvcnRzLW1vZGUgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXd7dG9wOjEyMnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3LC55dHAtYmlnLW1vZGUueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXcsLnl0cC1lbWJlZC55dHAtYXV0b2hpZGUgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXcsLnl0cC1lbWJlZC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWluZm8tcGFuZWwtcHJldmlld3t0b3A6MTJweH0ueXRwLW11dGVkLWF1dG9wbGF5IC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e3otaW5kZXg6MTAwMjt0b3A6MTJweH0ueXRwLWxhcmdlci10YXAtYnV0dG9ucyAueXRwLWluZm8tcGFuZWwtcHJldmlld3t0b3A6ODFweH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e3RvcDo4MXB4O2JvdHRvbTphdXRvO2xlZnQ6MjRweDtoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDphdXRvfS55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtcHJldmlld3ttaW4td2lkdGg6MTMwcHg7bWF4LXdpZHRoOm1pbig1MCUgLSA2NHB4LDIwOHB4KX0ueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e2Rpc3BsYXk6bm9uZTstd2Via2l0LXRyYW5zaXRpb246ZGlzcGxheSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmRpc3BsYXkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctY2hldnJvbnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjBweDtwb2ludGVyLWV2ZW50czpub25lO2NvbG9yOnJnYigyNTUsMjU1LDI1NSk7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctY2hldnJvbjplbXB0eSwueXRwLWluZm8tcGFuZWwtcHJldmlldy1pY29uOmVtcHR5e2hlaWdodDowO3dpZHRoOjB9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctdGV4dHtiYWNrZ3JvdW5kOm5vbmU7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE2cHg7cG9pbnRlci1ldmVudHM6bm9uZTttYXJnaW46OHB4O2NvbG9yOnJnYigyNTUsMjU1LDI1NSk7b3BhY2l0eToxO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3doaXRlLXNwYWNlOm5vcm1hbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWluZm8tcGFuZWwtcHJldmlldy10ZXh0W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9I2lubGluZS1wcmV2aWV3LXBsYXllciAuY2FwdGlvbi13aW5kb3csI2lubGluZS1wcmV2aWV3LXBsYXllciAueXRwLWNhcHRpb24td2luZG93LWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lfS55dHAtbW9kZXJuLWNhcHRpb24jaW5saW5lLXByZXZpZXctcGxheWVyIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVyLC55dHAtbW9kZXJuLWNhcHRpb24ueXRwLW13ZWItcGxheWVyIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVye3dpZHRoOmNhbGMoMTAwJSAtIDQ4cHgpfS55dHAtbW9kZXJuLWNhcHRpb24jaW5saW5lLXByZXZpZXctcGxheWVyIC5jYXB0aW9uLXdpbmRvdywueXRwLW1vZGVybi1jYXB0aW9uLnl0cC1td2ViLXBsYXllciAuY2FwdGlvbi13aW5kb3d7Ym9yZGVyOjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1tb2Rlcm4tY2FwdGlvbiNpbmxpbmUtcHJldmlldy1wbGF5ZXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1tb2Rlcm4tY2FwdGlvbi55dHAtbXdlYi1wbGF5ZXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNnB4fS55dHAtaW5wdXQtc2xpZGVyLXNlY3Rpb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1pbnB1dC1zbGlkZXJ7LS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudDowOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtd3JpdGluZy1tb2RlOmhvcml6b250YWwtdGI7LW1zLXdyaXRpbmctbW9kZTpsci10Yjt3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjtkaXJlY3Rpb246bHRyfS55dHAtaW5wdXQtc2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKCNmZmYpLGNvbG9yLXN0b3AoI2ZmZiksY29sb3Itc3RvcCgjNjY2KSx0bygjNjY2KSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtaW5wdXQtc2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCkscmdiYSgyNTUsMjU1LDI1NSwuMikgMTAwJSk7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tdG9wOi02cHh9Lnl0cC1pbnB1dC1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6I2ZmZjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtaW5wdXQtc2xpZGVyOjotbXMtdGh1bWJ7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6I2ZmZjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtdmFyaXNwZWVkLWlucHV0LXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbSgjZmZmKSxjb2xvci1zdG9wKCNmZmYpLGNvbG9yLXN0b3AoIzkwOTA5MCksdG8oIzkwOTA5MCkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjZmZmIDAsI2ZmZiB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKX1Ac3VwcG9ydHMgKCgtd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkgb3IgKHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkpey55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVyey13ZWJraXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOy1tcy13cml0aW5nLW1vZGU6YnQtcmw7d3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsO2RpcmVjdGlvbjpydGw7aGVpZ2h0OmluaGVyaXQ7d2lkdGg6MjRweH0ueXRwLXZlcnRpY2FsLXNsaWRlciAueXRwLWlucHV0LXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKCNmZmYpLGNvbG9yLXN0b3AoI2ZmZiksY29sb3Itc3RvcCgjNjY2KSx0bygjNjY2KSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sI2ZmZiAwLCNmZmYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM2NjYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM2NjYgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO3dpZHRoOjRweH0ueXRwLXZlcnRpY2FsLXNsaWRlciAueXRwLWlucHV0LXNsaWRlcjo6LW1vei1yYW5nZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AsI2ZmZiAwLCNmZmYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLHJnYmEoMjU1LDI1NSwyNTUsLjIpIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSAxMDAlKTt3aWR0aDo0cHg7aGVpZ2h0OjEwMCV9Lnl0cC12ZXJ0aWNhbC1zbGlkZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1ie21hcmdpbi1yaWdodDotNnB4fS55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVyOjotbW96LXJhbmdlLXRodW1ie21hcmdpbi1yaWdodDowfX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9ue3dpZHRoOjQ2cHg7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvO3BhZGRpbmc6OXB4O2Rpc3BsYXk6bm9uZX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9uLnl0cC1qdW1wLWJ1dHRvbi1lbmFibGVke2Rpc3BsYXk6YmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9ue3BhZGRpbmctdG9wOjEycHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtanVtcC1idXR0b257cGFkZGluZy10b3A6N3B4fS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9uLnl0cC1qdW1wLWJ1dHRvbi1lbmFibGVkLC55dHAtdGlueS1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtanVtcC1idXR0b24ueXRwLWp1bXAtYnV0dG9uLWVuYWJsZWR7ZGlzcGxheTpub25lfS55dHAtanVtcC1idXR0b24tdGV4dHtmaWxsOiNmZmY7Zm9udC1zaXplOjlweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Zm9udC13ZWlnaHQ6OTAwfS55dHAtanVtcC1zcGluIC55dHAtY2lyY2xlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3BpbjthbmltYXRpb24tbmFtZTp5dHAtanVtcC1zcGluOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi4yNXM7YW5pbWF0aW9uLWR1cmF0aW9uOi4yNXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjstbXMtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9Lnl0cC1qdW1wLXNwaW4uYmFja3dhcmRzIC55dHAtY2lyY2xlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3Bpbi1iYWNrd2FyZHM7YW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3Bpbi1iYWNrd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1qdW1wLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyB5dHAtanVtcC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtanVtcC1zcGluLWJhY2t3YXJkc3swJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1qdW1wLXNwaW4tYmFja3dhcmRzezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fS55dHAtbGFyZ2UtcGxheS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTt3aWR0aDo2OHB4O2hlaWdodDo0OHB4O21hcmdpbi1sZWZ0Oi0zNHB4O21hcmdpbi10b3A6LTI0cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDo2M30ueXRwLWxhcmdlLXBsYXktYnV0dG9uLnl0cC1zaG9ydHMtbW9kZXt3aWR0aDo2OHB4O2hlaWdodDo5MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi55dHAtc2hvcnRzLW1vZGV7d2lkdGg6MTAycHg7aGVpZ2h0OjEzNXB4fS55dHAtZG5pIC55dHAtbGFyZ2UtcGxheS1idXR0b24sLnl0cC1kbmkueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b24sLnl0cC1kbmkueXRwLXNtYWxsLW1vZGUgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbnt3aWR0aDo3NXB4O2hlaWdodDo3NXB4O21hcmdpbi1sZWZ0Oi0zNy41cHg7bWFyZ2luLXRvcDotMzcuNXB4fS5ob3VzZS1icmFuZCAueXRwLWxhcmdlLXBsYXktYnV0dG9ue3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXRvcDotMzBweH0ueXRwLWxhcmdlLXBsYXktYnV0dG9uIHN2Z3toZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0ueXRwLWRuaSAueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXkgLnl0cC1kbmktbGFyZ2UtcGxheS1idXR0b24tYmd7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7ZmlsbC1vcGFjaXR5Oi44fS55dHAtZG5pIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheTpob3ZlciAueXRwLWRuaS1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtmaWxsLW9wYWNpdHk6MX0ueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b257d2lkdGg6MTAycHg7aGVpZ2h0OjcycHg7bWFyZ2luLWxlZnQ6LTUxcHg7bWFyZ2luLXRvcDotMzZweH0uaG91c2UtYnJhbmQueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b257d2lkdGg6OTBweDtoZWlnaHQ6OTBweDttYXJnaW4tbGVmdDotNDVweDttYXJnaW4tdG9wOi00NXB4fS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheVthcmlhLWhpZGRlbj10cnVlXSAueXRwLWxhcmdlLXBsYXktYnV0dG9uLC55dHAtbWVudS1zaG93biAueXRwLWxhcmdlLXBsYXktYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW11dGVkLWF1dG9wbGF5LWVuZC1wYW5lbCAueXRwLWxhcmdlLXBsYXktYnV0dG9ue2Rpc3BsYXk6YmxvY2t9Lnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtmaWxsOiMyMTIxMjE7ZmlsbC1vcGFjaXR5Oi44fS55dHAtbGFyZ2UtcGxheS1idXR0b24tcmVkLWJnIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmd7ZmlsbDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLXN0YXRpYy1icmFuZC1yZWQsI2YwMyk7ZmlsbC1vcGFjaXR5OjF9Lnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi55dHAtdG91Y2gtZGV2aWNlIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1tdXRlZC1hdXRvcGxheS1lbmRzY3JlZW4tb3ZlcmxheTpob3ZlciAueXRwLWxhcmdlLXBsYXktYnV0dG9uLWJney13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmZpbGwgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2ZpbGw6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdGF0aWMtYnJhbmQtcmVkLCNmMDMpO2ZpbGwtb3BhY2l0eToxfS55dHAtY29sb3ItcGFydHkgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1jb2xvci1wYXJ0eSAueXRwLWxhcmdlLXBsYXktYnV0dG9uLnl0cC10b3VjaC1kZXZpY2UgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZywueXRwLWNvbG9yLXBhcnR5IC55dHAtbXV0ZWQtYXV0b3BsYXktZW5kc2NyZWVuLW92ZXJsYXk6aG92ZXIgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktZmlsbCAuMTVzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWZpbGwgLjE1cyBsaW5lYXIgaW5maW5pdGV9LmhvdXNlLWJyYW5kIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheTpob3ZlciAueXRwLWxhcmdlLXBsYXktYnV0dG9uLWJnLC5ob3VzZS1icmFuZCAueXRwLW11dGVkLWF1dG9wbGF5LWVuZHNjcmVlbi1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmd7ZmlsbDojMDAwfS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NzI7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7Y29sb3I6cmdiYSgxNywxNywxNywuOCk7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtkaXNwbGF5OmJsb2NrO3dpZHRoOjQwMHB4O292ZXJmbG93LXk6YXV0b31odG1sW2RhcmtdIC55dHAtbGlua2VkLWFjY291bnQtcG9wdXB7YmFja2dyb3VuZDpyZ2JhKDMzLDMzLDMzLC45NSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwLWJ1dHRvbnN7cGFkZGluZzo4cHggOHB4IDhweCAyNHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYigyMzgsMjM4LDIzOCk7LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtYnV0dG9ue2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDA3cHg7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzA2NWZkNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MTBweCAxNnB4fWh0bWxbZGFya10gLnl0cC1saW5rZWQtYWNjb3VudC1wb3B1cC1idXR0b257Y29sb3I6IzNlYTZmZn0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwLXRpdGxle2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHg7bWFyZ2luOjE2cHggMjRweDtjb2xvcjpyZ2IoMywzLDMpfWh0bWxbZGFya10gLnl0cC1saW5rZWQtYWNjb3VudC1wb3B1cC10aXRsZXtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpfS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtZGVzY3JpcHRpb257cGFkZGluZzowIDI0cHg7bWFyZ2luOjRweCAwIDI0cHh9Lnl0cC1tZHgtcHJpdmFjeS1wb3B1cC1jb25maXJte2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDttYXJnaW46MTJweCAwO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzY2Njt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1tZHgtcHJpdmFjeS1wb3B1cC1jYW5jZWx7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O21hcmdpbjoxMnB4IDA7cGFkZGluZzoxMHB4IDIwcHg7Ym9yZGVyLXJhZGl1czoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbWR4LXBvcHVwLWRpYWxvZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojc1O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1tZHgtcG9wdXAtZGlhbG9nLWlubmVyLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTttYXJnaW4tdG9wOi03MHB4O2xlZnQ6MDtyaWdodDowO3BhZGRpbmc6MCAyMCV9Lnl0cC1tZHgtcG9wdXAtdGl0bGV7Zm9udC1zaXplOjIwcHg7cGFkZGluZy1ib3R0b206MTZweH0ueXRwLW1keC1wb3B1cC1kZXNjcmlwdGlvbntmb250LXNpemU6MTRweH0ueXRwLW1keC1wcml2YWN5LXBvcHVwLWJ1dHRvbnN7bWFyZ2luLXRvcDoyMHB4O2hlaWdodDo0NHB4fS55dHAtYmlnLW1vZGUgLm1keC1wcml2YWN5LXBvcHVwLWJ1dHRvbnN7bWFyZ2luLXRvcDozMHB4O2hlaWdodDo2N3B4fS5odG1sNS12aWRlby1wbGF5ZXIueXRwLXBsYXllci1taW5pbWl6ZWQ6bm90KC5lbmRlZC1tb2RlKTpub3QoLmN1ZWQtbW9kZSk6bm90KC51bnN0YXJ0ZWQtbW9kZSl7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC15cGMtcGxheWVyLWNvbnRlbnR7ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci11aXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3otaW5kZXg6Njd9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXt6LWluZGV4OjY4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0zMHB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTMwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zMHB4KX0ueXRwLW1pbmlwbGF5ZXItc2NyaW17d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpOy13ZWJraXQtdHJhbnNpdGlvbjouMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgLjFzO3RyYW5zaXRpb246LjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpIC4xcztvcGFjaXR5OjA7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1taW5pcGxheWVyLXNjcmltOmZvY3VzLXdpdGhpbntvcGFjaXR5OjF9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtcGxheWVyLW1pbmltaXplZC51bnN0YXJ0ZWQtbW9kZSAueXRwLW1pbmlwbGF5ZXItc2NyaW17b3BhY2l0eToxfS55dHAtbWluaXBsYXllci1zY3JpbTpob3ZlcntvcGFjaXR5OjF9Lnl0cC1taW5pcGxheWVyLWJ1dHRvbnN7ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZC5lbmRlZC1tb2RlIC55dHAtbWluaXBsYXllci1idXR0b25ze2Rpc3BsYXk6YmxvY2t9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmFkLXNob3dpbmcgLnl0cC1taW5pcGxheWVyLWJ1dHRvbnN7ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci1jbG9zZS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4O3otaW5kZXg6Njd9Lnl0cC1taW5pcGxheWVyLWV4cGFuZC13YXRjaC1wYWdlLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4O3otaW5kZXg6Njd9Lnl0cC1taW5pcGxheWVyLWV4cGFuZC13YXRjaC1wYWdlLWJ1dHRvbi55dHAtbWluaXBsYXllci1idXR0b24tYm90dG9tLXJpZ2h0e2JvdHRvbTo0cHg7cmlnaHQ6MH0ueXRwLW1pbmlwbGF5ZXItZXhwYW5kLXdhdGNoLXBhZ2UtYnV0dG9uLnl0cC1taW5pcGxheWVyLWJ1dHRvbi10b3AtbGVmdHt0b3A6MDtsZWZ0OjB9Lnl0cC1taW5pcGxheWVyLXJlcGxheS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo4cHg7Ym90dG9tOjhweDt3aWR0aDozMnB4O2hlaWdodDozMnB4O3otaW5kZXg6Njd9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmFkLXNob3dpbmcgLnl0cC1taW5pcGxheWVyLXJlcGxheS1idXR0b257ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci1jb250cm9sc3tkaXJlY3Rpb246bHRyO2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjI2NHB4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcnttaW4td2lkdGg6NjRweH0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtbWluaXBsYXllci11aSAueXRwLW5leHQtYnV0dG9uLC55dHAtbWluaXBsYXllci11aSAueXRwLXByZXYtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjY0cHg7aGVpZ2h0OjY0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtbmV4dC1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtcHJldi1idXR0b257d2lkdGg6MzJweDtoZWlnaHQ6MzJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXJ7bWluLXdpZHRoOjMycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtcGxheS1idXR0b257d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1taW5pcGxheWVyLWNvbnRyb2xzIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS55dHAtbWluaXBsYXllci11aSAueXRwLXRpbWUtZGlzcGxheXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjdweDtib3R0b206MH0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC10aW1lLWRpc3BsYXkgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6bm9uZTt3aWR0aDphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC10aW1lLWRpc3BsYXkueXRwLWxpdmUgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aXtkaXNwbGF5OmJsb2NrfS55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLW5leHQtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLXByZXYtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLXRpbWUtZGlzcGxheXtkaXNwbGF5Om5vbmV9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRpdGxle3dpZHRoOjIwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cmlnaHQ6NDhweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1kcmFnIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC1leHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6aG92ZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLWV4cC1jaGFwdGVyLWhvdmVyLWVmZmVjdHtib3R0b206MXB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjQpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuNCk7dHJhbnNmb3JtOnNjYWxlWSgxLjQpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyLC55dHAtc21hbGwtbW9kZS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0xcHg7ei1pbmRleDo2OH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC10aW1lLWRpc3BsYXl7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXBsYXllci1taW5pbWl6ZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXJ7Ym90dG9tOjB9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC52aWRlby1hZHMsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC52aWRlby1hZHN7ZGlzcGxheTpibG9ja30ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheXtvdmVyZmxvdzpoaWRkZW59Lnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC55dHAtYWQtcGxheWVyLW92ZXJsYXktZmx5b3V0LWN0YSwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1za2lwLWJ1dHRvbi1jb250YWluZXJ7Ym90dG9tOjMycHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mb3tib3R0b206M3B4O2xlZnQ6NnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsIC55dHAtdG9vbHRpcC10aXRsZXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO2ZvbnQtc2l6ZToxMnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3e21heC13aWR0aDpjYWxjKDEwMCUgLSAyNHB4KTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS55dHAtcGxheWVyLW1pbmltaXplZCAuaHRtbDUtbWFpbi12aWRlbywueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1taW5pcGxheWVyLXNjcmlte2JvcmRlci1yYWRpdXM6MTJweCAxMnB4IDAgMH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLmh0bWw1LW1haW4tdmlkZW97Ym9yZGVyLXJhZGl1czowfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtcGxheWVyLWRvY3VtZW50LXBpY3R1cmUtaW4tcGljdHVyZSAueXRwLW1pbmlwbGF5ZXItY2xvc2UtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC55dHAtcGxheWVyLWRvY3VtZW50LXBpY3R1cmUtaW4tcGljdHVyZSAueXRwLW1pbmlwbGF5ZXItZXhwYW5kLXdhdGNoLXBhZ2UtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLXBsYXllci1kb2N1bWVudC1waWN0dXJlLWluLXBpY3R1cmUgLmh0bWw1LW1haW4tdmlkZW8sLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1wbGF5ZXItZG9jdW1lbnQtcGljdHVyZS1pbi1waWN0dXJlIC55dHAtbWluaXBsYXllci1zY3JpbSwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLXBsYXllci1kb2N1bWVudC1waWN0dXJlLWluLXBpY3R1cmUuaHRtbDUtdmlkZW8tcGxheWVye2JvcmRlci1yYWRpdXM6MH0ueXRwLXRpdGxlLW5vdGlmaWNhdGlvbnN7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjttYXJnaW4tcmlnaHQ6NXB4O3RleHQtYWxpZ246Y2VudGVyfWJ1dHRvbi55dHAtYnV0dG9uLnl0cC10aXRsZS1ub3RpZmljYXRpb25ze21hcmdpbi1sZWZ0OjhweDt3aWR0aDo0OHB4fS55dHAtdGl0bGUtbm90aWZpY2F0aW9uczpub3QoLnl0cC1ub3RpZmljYXRpb25zLWVuYWJsZWQpIC55dHAtdGl0bGUtbm90aWZpY2F0aW9ucy1vbntkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1ub3RpZmljYXRpb25zLnl0cC1ub3RpZmljYXRpb25zLWVuYWJsZWQgLnl0cC10aXRsZS1ub3RpZmljYXRpb25zLW9mZntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRle3otaW5kZXg6MjE7b3ZlcmZsb3c6aGlkZGVufS55dHAtb2ZmbGluZS1zbGF0ZS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bm8tcmVwZWF0IDUwJS9jb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjIyfS55dHAtb2ZmbGluZS1zbGF0ZS55dHAtb2ZmbGluZS1zbGF0ZS1oaWRlLWJhY2tncm91bmQgLnl0cC1vZmZsaW5lLXNsYXRlLWJhY2tncm91bmR7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUueXRwLW9mZmxpbmUtc2xhdGUtaGlkZS1iYWNrZ3JvdW5kIC55dHAtb2ZmbGluZS1zbGF0ZS1iYWNrZ3JvdW5ke2Rpc3BsYXk6YmxvY2t9Lnl0cC1vZmZsaW5lLXNsYXRlOm5vdCgueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlcikgLnl0cC1vZmZsaW5lLXNsYXRlLWJhci1mYWRlLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MCA2cHg7bGVmdDoxMnB4O2hlaWdodDo1NnB4O2JvdHRvbTo2MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2ZmZjstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDo0Njtib3JkZXItcmFkaXVzOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg0MCw0MCw0MCwuNik7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtb2ZmbGluZS1zbGF0ZS1iYXIueXRwLW9mZmxpbmUtc2xhdGUtYmFyLWhpZGRlbntkaXNwbGF5Om5vbmV9Lnl0cC1lbWJlZCAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JvdHRvbTo1MnB4fS55dHAtYmlnLW1vZGUgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwYWRkaW5nOjAgOXB4O2hlaWdodDo4NHB4O2JvdHRvbTo5MHB4O2xlZnQ6MThweH0ueXRwLWVtYmVkLnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JvdHRvbTo5MHB4fS55dHAtYXV0b2hpZGUgLnl0cC1vZmZsaW5lLXNsYXRlLWJhciwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntib3R0b206MTJweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUgLnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYmFyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1iYXJ7Ym90dG9tOjE4cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWljb257bWFyZ2luOjAgMTRweDt3aWR0aDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1pY29ue3dpZHRoOjM2cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbnN7bWFyZ2luOjEycHggNnB4fS55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b257bWluLXdpZHRoOjgwcHg7aGVpZ2h0OjMycHg7cGFkZGluZzowIDhweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtib3JkZXItcmFkaXVzOjJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjE4cHg7Y29sb3I6IzI4MjgyOH0ueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9uLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24taWNvbntoZWlnaHQ6MThweDt3aWR0aDoxOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24taWNvbiBzdmd7ZmlsbDojMjgyODI4O2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MCA4cHg7bGluZS1oZWlnaHQ6MzJweDtmb250LXNpemU6MTEwJTtmb250LXdlaWdodDo1MDB9Lnl0cC1yZW1pbmRlci1tZW51e2JhY2tncm91bmQ6cmdiYSgyOCwyOCwyOCwuOSk7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjU1cHg7b3V0bGluZTpub25lO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0ueXRwLXJlbWluZGVyLW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXJlbWluZGVyLW1lbnUtY29udGVudHN7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNlZWU7ZGlzcGxheTp0YWJsZTtwYWRkaW5nOjhweCAwO3dpZHRoOjEwMCV9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW17Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTp0YWJsZS1yb3c7aGVpZ2h0OjQwcHg7b3V0bGluZTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1pbmRlci1tZW51LWl0ZW17aGVpZ2h0OjQ5cHh9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW06bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtjdXJzb3I6cG9pbnRlcn0ueXRwLXJlbWluZGVyLW1lbnUtaXRlbTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW0taWNvbiwueXRwLXJlbWluZGVyLW1lbnUtaXRlbS1sYWJlbHtkaXNwbGF5OnRhYmxlLWNlbGw7cGFkZGluZzowIDE1cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWxhYmVse2ZvbnQtc2l6ZToxMTglO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LXRyYW5zZm9ybTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1pbmRlci1tZW51LWl0ZW0tbGFiZWx7cGFkZGluZzowIDE1cHggMCAwfS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb257cGFkZGluZzowIDEwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlbWluZGVyLW1lbnUtaXRlbS1pY29ue3BhZGRpbmc6MCAxNXB4fS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb24gc3Zne2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9uc3ttYXJnaW46MThweCA5cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9ue21pbi13aWR0aDoxMjBweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTJweDtib3JkZXItcmFkaXVzOjNweH0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24tdGV4dHttYXJnaW46MCAxMnB4O2xpbmUtaGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjEzMCU7Zm9udC13ZWlnaHQ6NTAwfS55dHAtb2ZmbGluZS1zbGF0ZS1tZXNzYWdlc3std2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21pbi13aWR0aDoxODBweDttYXJnaW46MCA2cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtbWVzc2FnZXN7bWluLXdpZHRoOjI3MHB4O21hcmdpbjowIDlweH0ueXRwLW9mZmxpbmUtc2xhdGUtbWFpbi10ZXh0LC55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e3RleHQtdHJhbnNmb3JtOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtb2ZmbGluZS1zbGF0ZS1tYWluLXRleHR7Zm9udC1zaXplOjE0MCU7Zm9udC13ZWlnaHQ6NDAwfS55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e2ZvbnQtc2l6ZToxMTAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9uLC55dHAtb2ZmbGluZS1zbGF0ZS1vcGVuLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7dG9wOjA7Ym90dG9tOjA7bGVmdDphdXRvO3JpZ2h0OjA7cGFkZGluZzoyNXB4O3BhZGRpbmctdG9wOjQ4cHg7bWluLXdpZHRoOmF1dG87d2lkdGg6MzAwcHg7aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtdHJhbnNpdGlvbjpyaWdodCAuMjVzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246cmlnaHQgLjI1cyBlYXNlLWluLW91dDt6LWluZGV4OjIzfS55dHAtYmlnLW1vZGUgLnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwYWRkaW5nLXRvcDo2OXB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtYmFyLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLW9wZW4tYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntyaWdodDotMTAwJX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtaWNvbntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWNsb3NlLWJ1dHRvbiwueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtb3Blbi1idXR0b257cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDt0b3A6NTAlO3JpZ2h0OjA7bWFyZ2luLXRvcDotMjVweDt6LWluZGV4OjIzfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1jbG9zZS1idXR0b257ZGlzcGxheTpibG9ja30ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtb3Blbi1idXR0b246YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyOHB4O2xlZnQ6MTVweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDt3aWR0aDoyMHB4fS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1vcGVuLWJ1dHRvbiBzdmd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyLnl0cC1vZmZsaW5lLXNsYXRlLWNvbGxhcHNlZCAueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLW9wZW4tYnV0dG9ue2Rpc3BsYXk6YmxvY2t9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLW1lc3NhZ2Vzey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6bm9uZTtmbGV4Om5vbmU7bWFyZ2luOjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLW1haW4tdGV4dHtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OmF1dG99Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtbWFpbi10ZXh0e21hcmdpbi10b3A6MH0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtc3VidGl0bGUtdGV4dHtjb2xvcjojYWFhO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuM2VtO21hcmdpbjo1cHggMCAyMHB4O3doaXRlLXNwYWNlOm5vcm1hbH0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e21hcmdpbi1sZWZ0OjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWRlc2NyaXB0aW9ue2Rpc3BsYXk6YmxvY2s7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXNpemU6MTNweDttYXJnaW46MjBweCAwO21heC1oZWlnaHQ6MzAwcHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b25ze21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbnMgLnl0cC1yZW1pbmRlci1tZW51e2JvdHRvbTphdXRvfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b257YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4zKTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDphdXRvO3BhZGRpbmc6NHB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbiBzdmd7ZmlsbDojZmZmfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24tdGV4dHtmb250LXNpemU6MTEwJTtsaW5lLWhlaWdodDozMnB4O21hcmdpbjowIDhweH0ueXRwLWNocm9tZS10b3AgLnl0cC1vdmVyZmxvdy1idXR0b257d2lkdGg6YXV0bztoZWlnaHQ6YXV0bzttaW4td2lkdGg6NDhweH0ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykueXRwLXNtYWxsLW1vZGUgLnl0cC1vdmVyZmxvdy1idXR0b257cGFkZGluZy10b3A6MTZweH0ueXRwLW92ZXJmbG93LWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1vdmVyZmxvdy1wYW5lbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojc0O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1vdmVyZmxvdy1wYW5lbFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1wYW5lbHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1wYW5lbHtkaXNwbGF5Om5vbmV9Lnl0cC1vdmVyZmxvdy1wYW5lbC1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3JpZ2h0OjA7bWFyZ2luLXRvcDotNDhweH0ueXRwLW92ZXJmbG93LXBhbmVsLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2cHg7cmlnaHQ6MTJweDtwYWRkaW5nOjA7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLW1vYmlsZS55dHAtZW1iZWQtbW9iaWxlIC55dHAtb3ZlcmZsb3ctcGFuZWwtY2xvc2V7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXRwLW92ZXJmbG93LXBhbmVsLWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtb3ZlcmZsb3ctcGFuZWwtY2xvc2U6aG92ZXIgcGF0aHtmaWxsOiNmZmZ9Lnl0cC1vdmVyZmxvdy1wYW5lbC1hY3Rpb24tYnV0dG9uc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo4cHggMTJweCA3MnB4O3otaW5kZXg6NTk7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLWxlZnR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLWxlZnQ+Kntwb2ludGVyLWV2ZW50czphdXRvO21hcmdpbi1ib3R0b206MTJweH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7cmlnaHQ6MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0Pip7cG9pbnRlci1ldmVudHM6YXV0bzttYXJnaW4tYm90dG9tOjEycHg7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6YXV0b30ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0IC55dHAtY2hyb21lLXRvcC1idXR0b25ze21hcmdpbi1ib3R0b206MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0IC55dHAtY2hyb21lLXRvcC1idXR0b25zPip7bWFyZ2luLWJvdHRvbToxMnB4fS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2JvdHRvbTowfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdD4qe3BvaW50ZXItZXZlbnRzOmF1dG87bWFyZ2luLXRvcDoxMnB4fS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tcmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktYm90dG9tLXJpZ2h0Pip7cG9pbnRlci1ldmVudHM6YXV0bzttYXJnaW4tdG9wOjEycHg7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktaW5saW5lLWNvbnRhaW5lcnt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7Z2FwOjEycHh9Lnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXI+Kntwb2ludGVyLWV2ZW50czphdXRvfS55dHAtb3ZlcmxheXMtY29udGFpbmVyey13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzO3RyYW5zaXRpb246Ym90dG9tIC4xczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWZ1bGwtYmxlZWQtcGxheWVyLnl0cC1ncmlkLXNjcm9sbGluZyAueXRwLW92ZXJsYXlzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIDBzO3RyYW5zaXRpb246Ym90dG9tIDBzfS55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7aW5zZXQ6OHB4IDI0cHggNzhweH0ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7dG9wOjYwcHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1kZWxoaS1tb2Rlcm4pIC55dHAtb3ZlcmxheXMtY29udGFpbmVye3RvcDo2OXB4O2JvdHRvbTo3OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMjRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMjRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSArIDEwMCUqdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAyNHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMjRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSArIDEwMCUqdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKX0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1vdmVybGF5cy1jb250YWluZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7Ym90dG9tOjI0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1vdmVybGF5cy1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTozNnB4fS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZGVsaGktbW9kZXJuLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257ZGlzcGxheTpub25lfS55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjUzcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwOS4wOTA5MDkwOTA5JTtoZWlnaHQ6MzBweDtsZWZ0OjI1cHg7bGluZS1oZWlnaHQ6MzBweDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3otaW5kZXg6Mjd9Lnl0cC1iaWctbW9kZSAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MH0ueXRwLWV4cC1wcHAtdXBkYXRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czowO2JvdHRvbTphdXRvO2ZvbnQtd2VpZ2h0OjQwMDtoZWlnaHQ6YXV0bztwb2ludGVyLWV2ZW50czphdXRvO3RvcDoxNnB4O2xlZnQ6MTZweDtyaWdodDphdXRvfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1saW5rey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXItbGVmdDo0cHggc29saWQgIzNlYTZmZjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MzEycHg7cGFkZGluZzo4cHggMCA4cHggOHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1saW5rW2hyZWY9IiMiXXtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1pY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHR7YmFja2dyb3VuZDpub25lOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MWVtO3BhZGRpbmc6OHB4fS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1jaGV2cm9ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWNoZXZyb246ZW1wdHksLnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWljb246ZW1wdHl7aGVpZ2h0OjA7d2lkdGg6MH0ueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e2JvdHRvbTphdXRvO2hlaWdodDphdXRvO2xlZnQ6MTZweDtsaW5lLWhlaWdodDppbmhlcml0fS55dHAtZXhwLXBwcC11cGRhdGUueXRwLWJpZy1tb2RlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1leHAtcHBwLXVwZGF0ZS55dHAtZW1iZWQgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXt0b3A6NjRweH0ueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZS55dHAtYXV0b2hpZGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheSwueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZS55dHAtaGlkZS1pbmZvLWJhciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWVtYmVkLnl0cC1hdXRvaGlkZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWVtYmVkLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7dG9wOjE2cHh9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWluZGljYXRvcntkaXNwbGF5Om5vbmV9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWJpZy1tb2RlIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1leHAtcHBwLXVwZGF0ZS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWV4cC1wcHAtdXBkYXRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXktbGlua3std2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpO3BhZGRpbmc6NXB4O2JvcmRlci1sZWZ0OnVuc2V0fS55dHAtZGVsaGktbW9kZXJuLnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWluZGljYXRvcntkaXNwbGF5OmJsb2NrO3dpZHRoOjRweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7bWFyZ2luOjAgOHB4fS55dHAtZW1iZWQgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXtib3R0b206NDVweH0ueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MzJweDtvcGFjaXR5OjE7cGFkZGluZzowIDE0cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e2JvdHRvbTo2MnB4O2hlaWdodDo0MnB4O2xlZnQ6NDRweDtsaW5lLWhlaWdodDo0MnB4fS55dHAtYXV0b2hpZGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheSwueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym90dG9tOjZweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYmlnLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1iaWctbW9kZS55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXtib3R0b206MTJweH0ueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHRbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW1lbnVpdGVte2Rpc3BsYXk6dGFibGUtcm93O2N1cnNvcjpkZWZhdWx0O291dGxpbmU6bm9uZX0ueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVyKXtoZWlnaHQ6NDBweH0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW06bm90KC55dHAtbWVudWl0ZW0td2l0aC1mb290ZXIpe2hlaWdodDo0OXB4fS55dHAtbWVudWl0ZW06bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtjdXJzb3I6cG9pbnRlcn0ueXRwLW1lbnVpdGVtOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ueXRwLW1lbnVpdGVtLWNvbnRlbnQsLnl0cC1tZW51aXRlbS1pY29uLC55dHAtbWVudWl0ZW0tbGFiZWwsLnl0cC1tZW51aXRlbS1zZWNvbmRhcnktaWNvbntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6MCAxNXB4fS55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZy1sZWZ0OjB9Lnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmc6MCAxMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmc6MCAxNXB4fS55dHAtbWVudWl0ZW0taWNvbiBzdmd7ZGlzcGxheTpibG9jazt3aWR0aDoyNHB4O2hlaWdodDoyNHB4fS55dHAtbWVudWl0ZW0tc2Vjb25kYXJ5LWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLWRlbGhpLW1vZGVybikgLnl0cC1tZW51aXRlbS1pY29uIHN2Z3t3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtbWVudWl0ZW0tbGFiZWx7Zm9udC1zaXplOjExOCU7Zm9udC13ZWlnaHQ6NTAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbWVudWl0ZW0tbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6dW5zZXR9Lnl0cC1tZW51aXRlbS1sYWJlbC13cmFwcGVye2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1tZW51aXRlbS1rZXlib2FyZC1zaG9ydGN1dHtmb250LXNpemU6MTE1JTtwYWRkaW5nLWxlZnQ6M3B4O2NvbG9yOiNjY2N9Lnl0cC1xdWFsaXR5LW1lbnUgLnl0cC1tZW51aXRlbXt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1xdWFsaXR5LW1lbnUgLnl0cC1wYW5lbC1tZW51e21hcmdpbi1yaWdodDoxMHB4fS55dHAtcXVhbGl0eS1tZW51IC55dHAtbWVudWl0ZW0tbGFiZWwgc3Vwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjB9Lnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtLWNvbnRlbnQsLnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtLWxhYmVse3BhZGRpbmc6MCAxNXB4IDAgMH0ueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb10gLnl0cC1tZW51aXRlbS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb10gLnl0cC1tZW51aXRlbS1sYWJlbHtwYWRkaW5nLWxlZnQ6MzVweDtwYWRkaW5nLXJpZ2h0OjIwcHg7Ym9yZGVyLWJvdHRvbTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbVtyb2xlPW1lbnVpdGVtcmFkaW9dIC55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZy1sZWZ0OjUycHg7cGFkZGluZy1yaWdodDozNXB4fS55dHAtbWVudWl0ZW1bcm9sZT1tZW51aXRlbXJhZGlvXVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC1tZW51aXRlbS1sYWJlbHtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0krUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaVRUa2dNVFl1TWlBMExqZ2dNVEpzTFRFdU5DQXhMalJNT1NBeE9TQXlNU0EzYkMweExqUXRNUzQwZWlJdlBqd3ZjM1puUGc9PSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAxMHB4IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjE4cHggMThweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToxOHB4IDE4cHh9Lnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb11bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tbGFiZWx7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IDE1cHggY2VudGVyO2JhY2tncm91bmQtc2l6ZToyN3B4IDI3cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6MjdweCAyN3B4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjI3cHggMjdweH0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1pY29uey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAycHggMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAwIC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1sYWJlbHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgLTJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1sYWJlbDpmaXJzdC1jaGlsZHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDJweCAycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgLTJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCl9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLW1lbnVpdGVtOmZvY3VzIC55dHAtbWVudWl0ZW0tY29udGVudHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgLTJweCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAwIDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAtMnB4IC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW1bcm9sZT1tZW51aXRlbXJhZGlvXTpmb2N1cyAueXRwLW1lbnVpdGVtLWxhYmVsey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAycHggMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAtMnB4IC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgLTJweCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLW1lbnVpdGVtLWNvbnRlbnR7Zm9udC1zaXplOjEwOSU7dGV4dC1hbGlnbjpyaWdodH0ueXRwLW1lbnVpdGVtLXN1YmxhYmVse2Zsb2F0OmxlZnR9Lnl0cC1tZW51LWxhYmVsLXNlY29uZGFyeSwueXRwLW1lbnVpdGVtLXN1YmxhYmVse2ZvbnQtc2l6ZTo5MSU7Y29sb3I6I2NjY30ueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDlweCBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjMycHggMzJweDstbW96LWJhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzJweCAzMnB4O3BhZGRpbmctcmlnaHQ6MzhweH0ueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeUxqVTVJREl3TGpNMElEUXVOVGd0TkM0MU9TMDBMalU0TFRRdU5UbE1NVFFnT1M0M05XdzJJRFl0TmlBMmVpSXZQand2YzNablBnPT0pfVtkaXI9cnRsXSAueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFNUxqUXhJREl3TGpBNUxUUXVOVGd0TkM0MU9TQTBMalU0TFRRdU5UbE1NVGdnT1M0MWJDMDJJRFlnTmlBMmVpSXZQand2YzNablBnPT0pfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbVthcmlhLWhhc3BvcHVwPXRydWVdIC55dHAtbWVudWl0ZW0tY29udGVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDEzcHggY2VudGVyO2JhY2tncm91bmQtc2l6ZTo0OHB4IDQ4cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6NDhweCA0OHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjQ4cHggNDhweDtwYWRkaW5nLXJpZ2h0OjU3cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbS1jb250ZW50e2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC43KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbVthcmlhLWhhc3BvcHVwPXRydWVdIC55dHAtbWVudWl0ZW0tY29udGVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDEycHggY2VudGVyO2JhY2tncm91bmQtc2l6ZToxOHB4IDE4cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjE4cHggMThweDtwYWRkaW5nLXJpZ2h0OjMycHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TkNJZ2FHVnBaMmgwUFNJeU5DSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJtYVd4c0xXOXdZV05wZEhrOUlpNDNJaUJrUFNKdE9TNDBJREU0TGpRdExqY3RMamNnTlM0MkxUVXVOaTAxTGpjdE5TNDNMamN0TGpjZ05pNDBJRFl1TkhvaUx6NDhMM04yWno0PSl9Lnl0cC1kZWxoaS1tb2Rlcm4gW2Rpcj1ydGxdIC55dHAtbWVudWl0ZW1bYXJpYS1oYXNwb3B1cD10cnVlXSAueXRwLW1lbnVpdGVtLWNvbnRlbnR7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TkNJZ2FHVnBaMmgwUFNJeU5DSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJtYVd4c0xXOXdZV05wZEhrOUlpNDNJaUJrUFNKTk1UUXVPVFlnTVRndU9UWWdPQ0F4TW13MkxqazJMVFl1T1RZdU56RXVOekZNT1M0ME1TQXhNbXcyTGpJMUlEWXVNalY2SWk4K1BDOXpkbWMrKX0ueXRwLW1lbnVpdGVtIHN1cHtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLW1lbnVpdGVtLWxhYmVsLWNvdW50e2NvbG9yOiNjY2N9Lnl0cC1tZW51aXRlbXRpdGxle3BhZGRpbmc6MCAxNXB4O21heC13aWR0aDoyMDBweDt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW10aXRsZXtwYWRkaW5nOjAgMjJweDttYXgtd2lkdGg6MzAwcHh9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNle21hcmdpbi1sZWZ0Oi44ZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNlOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNlIHN2Z3toZWlnaHQ6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1ib3R0b206LTRweH0ueXRwLW1lbnVpdGVtLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdWdnZXN0ZWQtYWN0aW9uKX0ueXRwLW1lbnVpdGVtLWhpZ2hsaWdodC10cmFuc2l0aW9uLWVuYWJsZWQueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLWhpZ2hsaWdodGVkKXstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAzcyBsaW5lYXIgMXM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDNzIGxpbmVhciAxc30ueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLXRvcDoxNXB4fS55dHAtbWVudWl0ZW0tZm9vdGVye3BhZGRpbmctdG9wOjVweH0ueXRwLW1lbnVpdGVtLXNlY3Rpb24taGVhZGVyIC55dHAtbWVudWl0ZW0tbGFiZWx7Y29sb3I6I2VlZTtwYWRkaW5nOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtLXNlY3Rpb24taGVhZGVyIC55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZzowfS55dHAtcGFuZWx7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lnl0cC1wYW5lbHttaW4td2lkdGg6MjUwcHh9Lnl0cC1wYW5lbC1oZWFkZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yKTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtc2l6ZToxMDklO2NvbG9yOiNlZWU7cGFkZGluZzo4cHggMDtoZWlnaHQ6NDBweDt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1wYW5lbC1mb290ZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMik7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXNpemU6MTE4JTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2VlZTtwYWRkaW5nOjE2cHggMDttaW4taGVpZ2h0OjQwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI1MHB4fS55dHAtcGFuZWwtZm9vdGVyLWNvbnRlbnR7bWFyZ2luOjAgMTBweH0ueXRwLXBhbmVsLWZvb3Rlci55dHAtcGFuZWwtaGlkZS1mb290ZXJ7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1wYW5lbC1mb290ZXItY29udGVudC1saW5re2NvbG9yOiMxNjdhYzZ9Lnl0cC10b3VjaC1tb2RlIC55dHAtcGFuZWwtaGVhZGVye2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1wYW5lbC1oZWFkZXJ7aGVpZ2h0OjQ5cHh9Lnl0cC1wYW5lbC1iYWNrLWJ1dHRvbi1jb250YWluZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo0OHB4fS55dHAtcGFuZWwtYmFjay1idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXpNaUF6TWlJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGliVEU1TGpReElESXdMakE1TFRRdU5UZ3ROQzQxT1NBMExqVTRMVFF1TlRsTU1UZ2dPUzQxYkMwMklEWWdOaUEyZWlJdlBqd3ZjM1puUGc9PSk7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLXBhbmVsLXRpdGxlOmhvdmVye2N1cnNvcjpwb2ludGVyfS55dHAtcGFuZWwtb3B0aW9uc3ttYXJnaW4tbGVmdDphdXRvfS55dHAtcGFuZWwtdGl0bGV7Zm9udC13ZWlnaHQ6NTAwfVtkaXI9cnRsXSAueXRwLXBhbmVsLXRpdGxle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeUxqVTVJREl3TGpNMElEUXVOVGd0TkM0MU9TMDBMalU0TFRRdU5UbE1NVFFnT1M0M05XdzJJRFl0TmlBMmVpSXZQand2YzNablBnPT0pfS55dHAtYmlnLW1vZGUgLnl0cC1wYW5lbC10aXRsZXtiYWNrZ3JvdW5kLXNpemU6NDhweCA0OHB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjQ4cHggNDhweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo0OHB4IDQ4cHg7cGFkZGluZzowIDE1cHggMCA1MnB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLXBhbmVsLXRpdGxle3BhZGRpbmc6MCAxNXB4IDAgMH0ueXRwLXBhbmVsLW9wdGlvbnN7aGVpZ2h0OjEwMCU7cGFkZGluZzowIDEwcHg7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWJpZy1tb2RlIC55dHAtcGFuZWwtb3B0aW9uc3twYWRkaW5nOjAgMTVweH0ueXRwLXBhbmVsLW1lbnV7cGFkZGluZzo4cHggMDtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCU7Y29sb3I6I2VlZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiwueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257d2lkdGg6NDZweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9ue3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDo4cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257cGFkZGluZzowfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zne3BhZGRpbmc6MTBweH0ueXRwLWRlbGhpLW1vZGVybi1pY29ucy55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7cGFkZGluZzoxOHB4fS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1iaWctbW9kZS55dHAtYmlnLW1vZGUtY29uc2lzdGVudC1waWxsLWhlaWdodCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uIHN2Z3twYWRkaW5nOjEwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257d2lkdGg6NTJweDtoZWlnaHQ6NTJweDttYXJnaW4tdG9wOjZweH0ueXRwLWRlbGhpLW1vZGVybi1pY29ucy55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjE0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWJpZy1tb2RlLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uIHN2Z3twYWRkaW5nOjEycHggMTBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWNvbXBhY3QtY29udHJvbHMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsNDhweCk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1waWxsLXRvcC1oZWlnaHQsMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWNvbXBhY3QtY29udHJvbHMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zne3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7cGFkZGluZzo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9ue2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDo2OXB4fS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24tcGxheWxpc3R7d2lkdGg6NDBweH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24tcGxheWxpc3R7d2lkdGg6NjBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uLXBsYXlsaXN0e21hcmdpbi10b3A6MTJweDt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcHJldi1idXR0b24sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1uZXh0LWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXByZXYtYnV0dG9uLC55dHAtZW1iZWQueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLW5leHQtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW5leHQtYnV0dG9uLC55dHAtcGxheS1idXR0b24sLnl0cC1wcmV2LWJ1dHRvbnstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG99Lnl0cC1wbGF5bGlzdC1tZW51e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDo0MDBweDttYXgtd2lkdGg6MTAwJTt6LWluZGV4OjczO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51e2xlZnQ6YXV0bztyaWdodDowfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51e3dpZHRoOjYwMHB4fVtkaXI9bHRyXSAueXRwLXBsYXlsaXN0LW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9bHRyXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtcGxheWxpc3QtbWVudVthcmlhLWhpZGRlbj10cnVlXXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX1bZGlyPXJ0bF0gLnl0cC1wbGF5bGlzdC1tZW51W2FyaWEtaGlkZGVuPXRydWVdey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX1bZGlyPXJ0bF0gLnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9Lnl0cC1wbGF5bGlzdC1tZW51LWhlYWRlcntwYWRkaW5nOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ0NH0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1oZWFkZXJ7cGFkZGluZzoyM3B4fS55dHAtcGxheWxpc3QtbWVudS10aXRsZXtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4O3BhZGRpbmctcmlnaHQ6MTVweDtmb250LXNpemU6MTM2JTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS10aXRsZXtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4O3BhZGRpbmctcmlnaHQ6MjNweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXBsYXlsaXN0LW1lbnUtc3VidGl0bGV7Y29sb3I6I2I4YjhiODtsaW5lLWhlaWdodDoxN3B4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LXN1YnRpdGxle2xpbmUtaGVpZ2h0OjI2cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjE1cHg7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1jbG9zZXt0b3A6MjNweDtyaWdodDoyM3B4O3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtcGxheWxpc3QtbWVudS1jbG9zZTpob3ZlciBwYXRoe2ZpbGw6I2ZmZn0ueXRwLXBsYXlsaXN0LW1lbnUtaXRlbXN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjY4cHg7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7b3ZlcmZsb3c6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1pdGVtc3t0b3A6MTAzcHh9Lnl0cC1jaHJvbWUtdG9wIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24sLnl0cC1lbWJlZC1wbGF5bGlzdC55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257d2lkdGg6YXV0bztoZWlnaHQ6YXV0b30ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykueXRwLXNtYWxsLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbntwYWRkaW5nLXRvcDoxNnB4fS55dHAtcGxheWxpc3QtbWVudS1idXR0b24taWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi1pY29ue21hcmdpbjphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e3BhZGRpbmctcmlnaHQ6NnB4O2xpbmUtaGVpZ2h0OjM2cHg7b3BhY2l0eToxfS55dHAtZW1iZWQtcGxheWxpc3Q6bm90KC55dHAtc21hbGwtbW9kZSkgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4fS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e3BhZGRpbmc6MDtsaW5lLWhlaWdodDppbmhlcml0O29wYWNpdHk6MTtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHh9Lnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLWljb24sLnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRleHR7ZGlzcGxheTpibG9ja30ueXRwLWVtYmVkLXBsYXlsaXN0Lnl0cC1zbWFsbC1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dCwueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRpbnkgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e2Rpc3BsYXk6Tm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dHtsaW5lLWhlaWdodDo1NHB4fS55dHAtZW1iZWQtcGxheWxpc3QueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dHtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtc2l6ZToyMHB4fS55dHAtcGxheWxpc3QtbWVudS1idXR0b24taWNvbiwueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRleHR7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtcGxheWxpc3QtbWVudS1idXR0b257bWluLXdpZHRoOjQ4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257bWFyZ2luLXRvcDo5cHg7aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzttaW4td2lkdGg6MzZweDttaW4taGVpZ2h0OjM2cHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tdG9wOjlweDtib3JkZXItcmFkaXVzOjI3cHg7bWF4LXdpZHRoOjQwMHB4Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLWljb257LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDpub25lO2ZsZXg6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dCwueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGl0bGV7ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDp1bnNldDt6LWluZGV4OjU4fS55dHAtaGlkZS1pbmZvLWJhciAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLXNjcnViYmVyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDtsZWZ0Oi02LjVweDt6LWluZGV4OjQzfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItY29udGFpbmVye3RvcDotM3B4O2xlZnQ6LTZweH0ueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi05LjVweDtsZWZ0Oi0xMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lcnt0b3A6LTlweDtsZWZ0Oi0xMnB4fS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi02cHg7bGVmdDotMTBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi04cHg7bGVmdDotMTBweH0ueXRwLXNjcnViYmVyLWJ1dHRvbntoZWlnaHQ6MTNweDt3aWR0aDoxM3B4O2JvcmRlci1yYWRpdXM6Ni41cHg7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItYnV0dG9ue2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo2cHh9Lnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0qIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1oaWRlLXNjcnViYmVyLWJ1dHRvbiwueXRwLWRlbGhpLW1vZGVybiAueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLWhpZGUtc2NydWJiZXItYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1oaWRlLXNjcnViYmVyLWJ1dHRvbnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTstbXMtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKX0ueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3ZlciwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbi55dHAtc2NydWJiZXItYnV0dG9uLWhvdmVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNTQpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS41NCk7dHJhbnNmb3JtOnNjYWxlKDEuNTQpfS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1idXR0b257aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtib3JkZXItcmFkaXVzOjEwcHg7Ym90dG9tOjIwcHg7bGVmdDoxMHB4fS55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbntkaXNwbGF5Om5vbmU7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9ue2Rpc3BsYXk6YmxvY2t9LnlwYy1sb2FkZWQgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6IzI3OTNlNn0uYWQtaW50ZXJydXB0aW5nIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNmYzB9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLXByb2dyZXNzLWJhcjpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7LW1zLXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS42Nyk7dHJhbnNmb3JtOnNjYWxlKDEuNjcpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRyYWcgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9uLC55dHAtZHJhZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3ZlciwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1zY3J1YmJlci1idXR0b24taG92ZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlKDEuMTY2NjY2NjY2Nyk7dHJhbnNmb3JtOnNjYWxlKDEuMTY2NjY2NjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZHJhZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1kcmFnIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbi55dHAtc2NydWJiZXItYnV0dG9uLWhvdmVyLC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbiwueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3Zlcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjE2NjY2NjY2NjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTt0cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQyO2JvdHRvbToxNi45cHg7bGVmdDo2LjVweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ueXRwLXNjcnViYmVyLXB1bGwtaW5kaWNhdG9yOmFmdGVyLC55dHAtc2NydWJiZXItcHVsbC1pbmRpY2F0b3I6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowO3dpZHRoOjYuNXB4O2hlaWdodDo2LjVweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweCAwIDAgMnB4O2JvcmRlci1jb2xvcjojZWFlYWVhfS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2NydWJiZXItcHVsbC1pbmRpY2F0b3I6YmVmb3Jle3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHh9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjphZnRlcnstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xczt0cmFuc2l0aW9uOmFsbCAuMXN9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjpiZWZvcmV7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbjphbGwgLjJzfS55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXIsLnl0cC1jaGFwdGVycy1jb250YWluZXJ7ei1pbmRleDozMjtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7aGVpZ2h0OjEwMCV9Lnl0cC1jaGFwdGVycy1jb250YWluZXJ7d2lkdGg6MTAwJX0ueXRwLWNoYXB0ZXItaG92ZXItY29udGFpbmVye2Zsb2F0OmxlZnR9Lnl0cC1wcm9ncmVzcy1saXN0e3otaW5kZXg6Mzk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yKTtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjYpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC42KTt0cmFuc2Zvcm06c2NhbGVZKC42KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1saXN0e292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsLjYpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7LW1zLXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSguNjY3KX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWx1bWlub3NpdHkueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWxpc3R7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6bHVtaW5vc2l0eX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWRpZmZlcmVuY2UueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWxpc3R7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZGlmZmVyZW5jZX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWV4Y2x1c2lvbi55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtbGlzdHtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpleGNsdXNpb259Lnl0cC1iaWctbW9kZSAueXRwLXByb2dyZXNzLWxpc3R7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjVweCkgc2NhbGVZKC42MjUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjVweCkgc2NhbGVZKC42MjUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uNXB4KSBzY2FsZVkoLjYyNSl9Lnl0cC1kcmFnIC55dHAtcHJvZ3Jlc3MtbGlzdCwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWxpc3QsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtcHJvZ3Jlc3MtbGlzdHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1wcm9ncmVzcy1saXN0LC55dHAtZGVsaGktbW9kZXJuIC55dHAtdG91Y2gtbW9kZSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWxpc3QsLnl0cC1kcmFnIC55dHAtcHJvZ3Jlc3MtbGlzdHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kcmFnIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZXhwLWNoYXB0ZXItaG92ZXItY29udGFpbmVyOmhvdmVyLC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLnl0cC10aW1lZC1tYXJrZXJzLWVuYWJsZWQgLnl0cC1wcm9ncmVzcy1saXN0ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjgpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuOCk7dHJhbnNmb3JtOnNjYWxlWSgxLjgpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtZHJhZyAueXRwLWV4cC1jaGFwdGVyLWhvdmVyLWVmZmVjdCwueXRwLWRlbGhpLW1vZGVybi55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZGVsaGktbW9kZXJuLnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkueXRwLXRpbWVkLW1hcmtlcnMtZW5hYmxlZCAueXRwLXByb2dyZXNzLWxpc3R7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKDEuNjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItY29udGFpbmVyOmhvdmVyLC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLnl0cC10aW1lZC1tYXJrZXJzLWVuYWJsZWQgLnl0cC1wcm9ncmVzcy1saXN0ey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSB1bnNldDt0cmFuc2l0aW9uOnRyYW5zZm9ybSB1bnNldCwtd2Via2l0LXRyYW5zZm9ybSB1bnNldH0ueXRwLXJlcGVhdGluZy1jaGFwdGVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjgpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuOCk7dHJhbnNmb3JtOnNjYWxlWSgxLjgpfS55dHAtYm91bmQtdGltZS1sZWZ0LC55dHAtYm91bmQtdGltZS1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Om5vbmU7dG9wOi0yOXB4O3otaW5kZXg6Mjk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KTt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZTNlM2UzO3BhZGRpbmc6NXB4IDlweDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGVhc2UtaW47dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBlYXNlLWlufS55dHAtYmlnLW1vZGUgLnl0cC1ib3VuZC10aW1lLWxlZnQsLnl0cC1iaWctbW9kZSAueXRwLWJvdW5kLXRpbWUtcmlnaHR7dG9wOi0zNnB4fS55dHAtYm91bmQtdGltZS1sZWZ0e2xlZnQ6MH0ueXRwLWJvdW5kLXRpbWUtcmlnaHR7cmlnaHQ6MH0ueXRwLWJvdW5kLXRpbWUtbGVmdDphZnRlciwueXRwLWJvdW5kLXRpbWUtcmlnaHQ6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtib3R0b206LTVweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZH0ueXRwLWJvdW5kLXRpbWUtbGVmdDphZnRlcntsZWZ0OjA7Ym9yZGVyLXdpZHRoOjVweCA1cHggMCAwO2JvcmRlci1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0ueXRwLWJvdW5kLXRpbWUtcmlnaHQ6YWZ0ZXJ7cmlnaHQ6MDtib3JkZXItd2lkdGg6MCA1cHggNXB4IDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMjgsMjgsMjgsLjkpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS55dHAtMTVtLXByb2dyZXNzLC55dHAtMW0tcHJvZ3Jlc3MsLnl0cC0zMG0tcHJvZ3Jlc3MsLnl0cC02MG0tcHJvZ3Jlc3MsLnl0cC1hZC1wcm9ncmVzcywueXRwLWNsaXAtZW5kLWV4Y2x1ZGUsLnl0cC1jbGlwLXN0YXJ0LWV4Y2x1ZGUsLnl0cC1ob3Zlci1wcm9ncmVzcywueXRwLWxvYWQtcHJvZ3Jlc3MsLnl0cC1wbGF5LXByb2dyZXNzLC55dHAtcHJvZ3Jlc3MtbGluZWFyLWxpdmUtYnVmZmVyLC55dHAtdGltZWQtbWFya2Vycy1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDstbXMtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDB9Lnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjYpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC42KTt0cmFuc2Zvcm06c2NhbGVZKC42KTt0b3A6MXB4O3otaW5kZXg6NDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7LW1zLXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSguNjY3KX0ueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoMS44KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjgpO3RyYW5zZm9ybTpzY2FsZVkoMS44KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dG9wOi0ycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyIC55dHAtdGltZWQtbWFya2Vycy1jb250YWluZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKDEuNjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLXRpbWVkLW1hcmtlci55dHAtdGltZWQtbWFya2VyLWhvdmVyLC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtdGltZWQtbWFya2VyLnl0cC10aW1lZC1tYXJrZXItaG92ZXJ7d2lkdGg6OXB4O2hlaWdodDozcHg7Ym90dG9tOjFweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC10aW1lZC1tYXJrZXIueXRwLXRpbWVkLW1hcmtlci1ob3ZlciwueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1ob3ZlciAueXRwLXRpbWVkLW1hcmtlci55dHAtdGltZWQtbWFya2VyLWhvdmVye3dpZHRoOjEycHg7aGVpZ2h0OjQuOHB4O2JvdHRvbTouNnB4fS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLXRpbWVkLW1hcmtlcnt3aWR0aDo1cHg7aGVpZ2h0OjEuNjdweDtib3R0b206MS41cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyIC55dHAtdGltZWQtbWFya2Vye3dpZHRoOjZweDtoZWlnaHQ6Mi40cHg7Ym90dG9tOjJweH0ueXRwLXByb2dyZXNzLWJhci1zdGFydHtib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4fS55dHAtcHJvZ3Jlc3MtYmFyLWVuZHtib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwfS55dHAtcHJvZ3Jlc3MtYmFyLXN0YXJ0Lnl0cC1wcm9ncmVzcy1iYXItZW5ke2JvcmRlci1yYWRpdXM6M3B4fS55dHAtdGltZWQtbWFya2Vye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JvdHRvbToxcHg7Ym9yZGVyLXJhZGl1czo1MCU7b3BhY2l0eToxfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZWQtbWFya2Vye2JvdHRvbToycHh9Lnl0cC1jbGlwLWVuZC1leGNsdWRlLC55dHAtY2xpcC1zdGFydC1leGNsdWRle2Rpc3BsYXk6bm9uZTt6LWluZGV4OjM3O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jbGlwLWVuZC1lbmFibGVkIC55dHAtY2xpcC1lbmQtZXhjbHVkZSwueXRwLWNsaXAtc3RhcnQtZW5hYmxlZCAueXRwLWNsaXAtc3RhcnQtZXhjbHVkZXtkaXNwbGF5OmJsb2NrfS55dHAtbG9vcC1yYW5nZS1lbmFibGVkIC55dHAtY2xpcC1lbmQsLnl0cC1sb29wLXJhbmdlLWVuYWJsZWQgLnl0cC1jbGlwLXN0YXJ0e3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1jbGlwLWhvdmVyIC55dHAtY2xpcC1lbmQtZXhjbHVkZSwueXRwLWNsaXAtaG92ZXIgLnl0cC1jbGlwLXN0YXJ0LWV4Y2x1ZGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9ncmVzcy1saW5lYXItbGl2ZS1idWZmZXJ7ei1pbmRleDo0NTtiYWNrZ3JvdW5kOiNjMDA7b3BhY2l0eTowfS55dHAtZW5hYmxlLWxpdmUtYnVmZmVyIC55dHAtcHJvZ3Jlc3MtbGluZWFyLWxpdmUtYnVmZmVye29wYWNpdHk6LjZ9Lnl0cC1hZC1wcm9ncmVzc3t6LWluZGV4OjM2O2JhY2tncm91bmQ6I2ZjMH0ueXRwLWxvYWQtcHJvZ3Jlc3N7ei1pbmRleDozMztiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS55dHAtbG9hZC1wcm9ncmVzcy55dHAtZmFzdC1sb2Fke2JhY2tncm91bmQ6IzAwODM4Zn0ueXRwLXBsYXktcHJvZ3Jlc3N7ei1pbmRleDozNDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxjb2xvci1zdG9wKDgwJSwjZjAzKSx0bygjZmYyNzkxKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNmMDMgODAlLCNmZjI3OTEpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55cGMtbG9hZGVkIC55dHAtcGxheS1wcm9ncmVzcy55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3J7YmFja2dyb3VuZDojMjc5M2U2fS5hZC1pbnRlcnJ1cHRpbmcgLnl0cC1wbGF5LXByb2dyZXNzLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kOiNmYzB9Lnl0cC1ob3Zlci1wcm9ncmVzc3t6LWluZGV4OjM1O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTI1KTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1ob3Zlci1wcm9ncmVzc3tvcGFjaXR5OjF9Lnl0cC1kZWxoaS1tb2Rlcm4uYWQtaW50ZXJydXB0aW5nIC55dHAtbG9hZC1wcm9ncmVzcywueXRwLWVuYWJsZS1saXZlLWJ1ZmZlciAueXRwLWhvdmVyLXByb2dyZXNzLC55dHAtZW5hYmxlLWxpdmUtYnVmZmVyIC55dHAtbG9hZC1wcm9ncmVzc3tvcGFjaXR5OjB9Lnl0cC1ob3Zlci1wcm9ncmVzcy1saWdodHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjUpfS55dHAtMTVtLXByb2dyZXNzLC55dHAtMW0tcHJvZ3Jlc3MsLnl0cC0zMG0tcHJvZ3Jlc3MsLnl0cC02MG0tcHJvZ3Jlc3N7d2lkdGg6MXB4O2JhY2tncm91bmQ6IzAwMDt6LWluZGV4OjM2fS55dHAtMW0tcHJvZ3Jlc3N7aGVpZ2h0OjMwJX0ueXRwLTE1bS1wcm9ncmVzc3toZWlnaHQ6NTAlfS55dHAtMzBtLXByb2dyZXNze2hlaWdodDo1NSV9Lnl0cC02MG0tcHJvZ3Jlc3N7aGVpZ2h0OjYwJX0ueXRwLWNsaXAtZW5kLC55dHAtY2xpcC1zdGFydHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3R0b206LTQuNXB4O21hcmdpbi1sZWZ0Oi03cHg7ei1pbmRleDo0NDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjIxNDI4NTcxNDMpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC4yMTQyODU3MTQzKTt0cmFuc2Zvcm06c2NhbGVZKC4yMTQyODU3MTQzKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1iaWctbW9kZSAueXRwLWNsaXAtZW5kLC55dHAtYmlnLW1vZGUgLnl0cC1jbGlwLXN0YXJ0e3dpZHRoOjIxcHg7aGVpZ2h0OjIxcHg7Ym90dG9tOi02LjVweDttYXJnaW4tbGVmdDotMTAuNXB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSguMjM4MDk1MjM4KTstbXMtdHJhbnNmb3JtOnNjYWxlWSguMjM4MDk1MjM4KTt0cmFuc2Zvcm06c2NhbGVZKC4yMzgwOTUyMzgpfS55dHAtZHJhZyAueXRwLWNsaXAtZW5kLC55dHAtZHJhZyAueXRwLWNsaXAtc3RhcnQsLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1jbGlwLWVuZCwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWNsaXAtc3RhcnQsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtY2xpcC1lbmQsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtY2xpcC1zdGFydHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1jbGlwLWVuZCBzdmcsLnl0cC1jbGlwLXN0YXJ0IHN2Z3tkaXNwbGF5OmJsb2NrfS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7Ym90dG9tOjQ3cHg7aGVpZ2h0OjVweH0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC1wbGF5ZXItbWluaW1pemVkKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7ei1pbmRleDo2MDtib3R0b206dmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCw3MnB4KTtoZWlnaHQ6NnB4fS55dHAteHNtYWxsLXdpZHRoLW1vZGUueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC1wbGF5ZXItbWluaW1pemVkKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7Ym90dG9tOnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQteHNtYWxsLXdpZHRoLW1vZGUsNjRweCl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntib3R0b206MzZweDtoZWlnaHQ6NXB4fS55dHAtZW1iZWQgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JvdHRvbTozOXB4fS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtYmlnLW1vZGUgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JvdHRvbTo1Mi41cHg7aGVpZ2h0OjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntib3R0b206dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCw5NnB4KX0ueXRwLXByb2dyZXNzLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjMxO291dGxpbmU6bm9uZX0ueXRwLWhlYXQtbWFwLXBsYXllZF9iYXIueXRwLWhlYXQtbWFwLnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1wcm9ncmVzcy1iYXJ7b3BhY2l0eTowfS55dHAtbW9iaWxlIC55dHAtcHJvZ3Jlc3MtYmFye3BhZGRpbmctYm90dG9tOjEwcHh9Lnl0cC1wcm9ncmVzcy1iYXItcGFkZGluZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxNnB4O2JvdHRvbTowO3otaW5kZXg6Mjh9Lnl0cC1iaWctbW9kZSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDoyNHB4fS55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDoyMnB4O2JvdHRvbTotNnB4fS55dHAtYmlnLW1vZGU6bm90KC55dHAtdG91Y2gtbW9kZSkgLnl0cC1jaGFwdGVyLWhvdmVyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtcHJvZ3Jlc3MtYmFyLXBhZGRpbmd7aGVpZ2h0OjMzcHg7Ym90dG9tOi05cHh9Lnl0cC10b3VjaC1tb2RlIC55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDo0MHB4O2JvdHRvbTotMTFweH1AcHJvcGVydHkgLS1zZWVrLXNjcnViYmVyLXdpZHRoe3N5bnRheDoiPGxlbmd0aD4iO2luaXRpYWwtdmFsdWU6MDtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS1zY3J1YmJlci1jb250YWluZXIteHtzeW50YXg6IjxsZW5ndGg+Ijtpbml0aWFsLXZhbHVlOjA7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tcHJvZ3Jlc3Mtd2lkdGh7c3ludGF4OiI8bGVuZ3RoPiI7aW5pdGlhbC12YWx1ZTowO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXByb2dyZXNzLWxlZnQtYnVmZmVye3N5bnRheDoiPGxlbmd0aD4iO2luaXRpYWwtdmFsdWU6MDtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS1wcm9ncmVzcy1yaWdodC1idWZmZXJ7c3ludGF4OiI8bGVuZ3RoPiI7aW5pdGlhbC12YWx1ZTowO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXVuaWZpZWQtc2Vlay1vZmZzZXQteHtzeW50YXg6IjxsZW5ndGg+Ijtpbml0aWFsLXZhbHVlOjA7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxle3N5bnRheDoiPG51bWJlcj4iO2luaXRpYWwtdmFsdWU6MTtpbmhlcml0czpmYWxzZX0ueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVyey0tcHJvZ3Jlc3Mtd2lkdGg6MHB4Oy0tcHJvZ3Jlc3MtbGVmdC1idWZmZXI6MHB4Oy0tcHJvZ3Jlc3MtcmlnaHQtYnVmZmVyOjBweDstLXNlZWstc2NydWJiZXItd2lkdGg6MHB4Oy0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlOjE7LS1zY3J1YmJlci1jb250YWluZXIteDowcHg7LS1oYWxmLXdpZHRoOmNhbGModmFyKC0tc2Vlay1zY3J1YmJlci13aWR0aCwgMHB4KSowLjUpOy0taGFsZi1oZWlnaHQ6bWluKHZhcigtLWhhbGYtd2lkdGgpLDIwcHgpOy0tdW5pZmllZC1zZWVrLW9mZnNldC14OmNhbGMobWF4KDBweCwKICAgICAgICAodmFyKC0taGFsZi13aWR0aCkgKiB2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKSAtIHZhcigKICAgICAgICAgICAgLS1zY3J1YmJlci1jb250YWluZXIteAogICAgICAgICAgKSAtIHZhcigtLXByb2dyZXNzLWxlZnQtYnVmZmVyKSkgKyBtaW4oMHB4LAogICAgICAgIHZhcigtLXByb2dyZXNzLXdpZHRoKSArIHZhcigtLXByb2dyZXNzLXJpZ2h0LWJ1ZmZlcikgLSB2YXIoLS1zY3J1YmJlci1jb250YWluZXIteCkgLSAodmFyKC0taGFsZi13aWR0aCkgKiB2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKSkpfS55dHAtdW5pZmllZC1zZWVrLWFjdGl2ZSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9uLC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXJ7b3BhY2l0eTowfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbiwueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX19Lnl0cC11bmlmaWVkLXNlZWstY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MCAxNnB4O2hlaWdodDoxMDAlfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlcnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9fS55dHAtdW5pZmllZC1zZWVrLWFjdGl2ZSAueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVye29wYWNpdHk6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ2O21hcmdpbjowO3dpZHRoOi13ZWJraXQtbWF4LWNvbnRlbnQ7d2lkdGg6LW1vei1tYXgtY29udGVudDt3aWR0aDptYXgtY29udGVudDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoY2FsYyg1MCUgLSBtaW4odmFyKC0taGFsZi13aWR0aCksIHZhcigtLWhhbGYtaGVpZ2h0KSkpIGNhbGMoNTAlIC0gdmFyKC0taGFsZi13aWR0aCkpIHJvdW5kIG1pbih2YXIoLS1oYWxmLXdpZHRoKSx2YXIoLS1oYWxmLWhlaWdodCkpKTtjbGlwLXBhdGg6aW5zZXQoY2FsYyg1MCUgLSBtaW4odmFyKC0taGFsZi13aWR0aCksIHZhcigtLWhhbGYtaGVpZ2h0KSkpIGNhbGMoNTAlIC0gdmFyKC0taGFsZi13aWR0aCkpIHJvdW5kIG1pbih2YXIoLS1oYWxmLXdpZHRoKSx2YXIoLS1oYWxmLWhlaWdodCkpKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtNTAlICsgdmFyKC0tdW5pZmllZC1zZWVrLW9mZnNldC14KSksLTUwJSkgc2NhbGUodmFyKC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlKSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtNTAlICsgdmFyKC0tdW5pZmllZC1zZWVrLW9mZnNldC14KSksLTUwJSkgc2NhbGUodmFyKC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC01MCUgKyB2YXIoLS11bmlmaWVkLXNlZWstb2Zmc2V0LXgpKSwtNTAlKSBzY2FsZSh2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKTtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjI2cHg7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsY29sb3Itc3RvcCg4MCUsI2YwMyksdG8oI2ZmMjc5MSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjZjAzIDgwJSwjZmYyNzkxKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLWxlZnQtd3JhcHBlcjpub3QoOmVtcHR5KT4ueXRwLXVuaWZpZWQtc2Vlay1pY29ue21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWxlZnQ6LTZweH0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLXJpZ2h0LXdyYXBwZXI6bm90KDplbXB0eSk+Lnl0cC11bmlmaWVkLXNlZWstaWNvbnttYXJnaW4tbGVmdDo2cHg7bWFyZ2luLXJpZ2h0Oi02cHh9Lnl0cC11bmlmaWVkLXNlZWstYWN0aXZlIC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXIgLnl0cC11bmlmaWVkLXNlZWstaWNvbi1yaWdodC13cmFwcGVyOm5vdCg6ZW1wdHkpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7d2lkdGg6MjRweH0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLWxlZnQtd3JhcHBlcjplbXB0eSwueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLXJpZ2h0LXdyYXBwZXI6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtdW5pZmllZC1zZWVrLXNocmlua2luZyAueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVye29wYWNpdHk6MH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSl7Lnl0cC11bmlmaWVkLXNlZWstc2hyaW5raW5nIC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfX0ueXRwLXVuaWZpZWQtc2Vlay1zaHJpbmtpbmcgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbntvcGFjaXR5OjF9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2Upey55dHAtdW5pZmllZC1zZWVrLXNocmlua2luZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX19Lnl0cC1wcm9tb3Rvb2x0aXAtd3JhcHBlcnttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt3aWR0aDozMDBweDtoZWlnaHQ6MTQwcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAzfS55dHAtZnVsbHNjcmVlbiAueXRwLXByb21vdG9vbHRpcC13cmFwcGVye3dpZHRoOjQ1MHB4O2hlaWdodDoyMTBweH0ueXRwLXByb21vdG9vbHRpcC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0O2NvbG9yOiNmZmY7Zm9udC1zaXplOjExMCU7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7dGV4dC10cmFuc2Zvcm06bm9uZTtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1wcm9tb3Rvb2x0aXAtY29udGVudHtwYWRkaW5nOjE2cHggMTZweCA0cHh9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWNvbnRlbnR7cGFkZGluZzoyNHB4IDI0cHggNnB4fS55dHAtcHJvbW90b29sdGlwLXRpdGxle21hcmdpbi1ib3R0b206OHB4O2ZvbnQtc2l6ZToxMjAlO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxNnB4fS55dHAtZnVsbHNjcmVlbiAueXRwLXByb21vdG9vbHRpcC10aXRsZXttYXJnaW4tYm90dG9tOjEycHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLXByb21vdG9vbHRpcC1idXR0b25ze3BhZGRpbmc6OHB4IDRweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWJ1dHRvbnN7cGFkZGluZzoxMnB4IDZweH0ueXRwLXByb21vdG9vbHRpcC1hY2NlcHQtYnV0dG9uLC55dHAtcHJvbW90b29sdGlwLWRpc21pc3MtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZToxMjAlO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjEwcHggMTZweDtjdXJzb3I6cG9pbnRlcn0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtYWNjZXB0LWJ1dHRvbiwueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtZGlzbWlzcy1idXR0b257cGFkZGluZzoxNXB4IDI0cHh9Lnl0cC1wcm9tb3Rvb2x0aXAtcG9pbnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1zdHlsZTpzb2xpZDt0b3A6MTAwJTtib3JkZXItd2lkdGg6MTJweDtib3JkZXItY29sb3I6IzA2NWZkNCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtcG9pbnRlcntib3JkZXItd2lkdGg6MThweH0ueXRwLXByb21vdG9vbHRpcC1kZXRhaWxzLWljb257d2lkdGg6MThweH0ueXRwLXByb21vdG9vbHRpcC1kZXRhaWxzLWljb24gc3Zne2hlaWdodDoyMnB4O3dpZHRoOjIycHg7bWFyZ2luOi03cHggLTVweH0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtZGV0YWlscy1pY29ue3dpZHRoOjIycHh9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWRldGFpbHMtaWNvbiBzdmd7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDttYXJnaW46LTlweCAtN3B4fS55dHAtcmVtb3Rle2xlZnQ6MDtib3R0b206NjFweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWVtYmVkIC55dHAtcmVtb3Rle2JvdHRvbTo1M3B4fS55dHAtcmVtb3RlW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXJlbW90ZXtib3R0b206NzBweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1yZW1vdGV7Ym90dG9tOjEycHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVze3otaW5kZXg6MTU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMnB4O2JvdHRvbTo2MXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7cGFkZGluZy1yaWdodDo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7b3BhY2l0eTouODV9Lnl0cC1lbWJlZCAueXRwLXJlbW90ZS1kaXNwbGF5LXN0YXR1c3tib3R0b206NTNweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVze2JvdHRvbTo3MHB4fS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVzLWljb257ZmxvYXQ6bGVmdDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1yZW1vdGUtZGlzcGxheS1zdGF0dXMtaWNvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4fS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVzLXRleHR7dGV4dC1zaGFkb3c6MCAwIDJweCByZ2JhKDAsMCwwLC41KTtwYWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctbGVmdDo1cHg7Zm9udC1zaXplOjEzMCU7Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1vdGUtZGlzcGxheS1zdGF0dXMtdGV4dHtwYWRkaW5nLXRvcDoxNXB4O2xlZnQ6MTA1cHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlbW90ZS1kaXNwbGF5LXN0YXR1cy10ZXh0e3RvcDozMHB4fS55dHAtcmVwbGF5LWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtib3R0b206MDttYXJnaW4tbGVmdDotMjRweDt6LWluZGV4OjU5fS55dHAtZW1iZWQgLnl0cC1yZXBsYXktYnV0dG9ue2JvdHRvbTo0cHg7bWFyZ2luLWxlZnQ6LTIwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjcuNXB4O21hcmdpbi1sZWZ0Oi0yN3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjEwcHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjI0LjVweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXBsYXktYnV0dG9ue21hcmdpbi1sZWZ0OjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWJ1dHRvbi55dHAtYXV0b25hdi10b2dnbGV7cGFkZGluZy1sZWZ0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC12b2x1bWUtYXJlYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtdm9sdW1lLWFyZWE6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXRpbWUtd3JhcHBlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MCA0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b246aG92ZXI6YmVmb3Jle2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b217cGFkZGluZzowOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIDAgcmdiYSgyMjcsMjI3LDIyNywuNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIDAgcmdiYSgyMjcsMjI3LDIyNywuNSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDE5LDE5LDE5KSxyZ2IoNTIsNTIsNTIpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoNTAlLHJnYmEoMCwwLDAsMCkpLHRvKHJnYigxOSwxOSwxOSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2IoMTksMTksMTkpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSA1MCUscmdiKDE5LDE5LDE5KSl9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1wcm9ncmVzcy1saXN0e2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2IoNjgsNjgsNjgpKSx0byhyZ2IoOTUsOTUsOTUpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiKDY4LDY4LDY4KSxyZ2IoOTUsOTUsOTUpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiKDY4LDY4LDY4KSxyZ2IoOTUsOTUsOTUpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXBsYXktcHJvZ3Jlc3N7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOTQsMCwwKSksdG8ocmdiKDIzMCw2LDYpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiKDE5NCwwLDApLHJnYigyMzAsNiw2KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTk0LDAsMCkscmdiKDIzMCw2LDYpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXNjcnViYmVyLWJ1dHRvbntoZWlnaHQ6OHB4O3dpZHRoOjhweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6NHB4IHNvbGlkIHJnYigyNTUsMjU1LDI1NSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxMzcsMTM3LDEzNykpLHRvKHJnYigxODYsMTg2LDE4NikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTM3LDEzNywxMzcpLHJnYigxODYsMTg2LDE4NikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDEzNywxMzcsMTM3KSxyZ2IoMTg2LDE4NiwxODYpKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYnV0dG9uOm5vdCgueXRwLWNoYXB0ZXItdGl0bGUpe2JvcmRlci1yaWdodDoxcHggc29saWQgYmxhY2s7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpO2JveC1zaGFkb3c6MXB4IDAgcmdiYSgyMjcsMjI3LDIyNywuMik7b3BhY2l0eTouOX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b24ueXRwLWF1dG9uYXYtdG9nZ2xle2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjaztwYWRkaW5nLWxlZnQ6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCByZ2JhKDIyNywyMjcsMjI3LC4yKSxpbnNldCAxcHggMCByZ2JhKDIyNywyMjcsMjI3LC4yKTtib3gtc2hhZG93OjFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpLGluc2V0IDFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpfS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXRpbWUtZGlzcGxheXtwYWRkaW5nLWxlZnQ6MTBweH0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b246YWN0aXZlOmZvY3VzLC55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtc3VidGl0bGVzLWJ1dHRvblthcmlhLXByZXNzZWQ9dHJ1ZV17YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpfS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtdm9sdW1lLXBhbmVsLnl0cC12b2x1bWUtY29udHJvbC1ob3ZlcnttYXJnaW4tbGVmdDo4cHh9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOTQsMCwwKSksdG8ocmdiKDIzMCw2LDYpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiKDE5NCwwLDApLHJnYigyMzAsNiw2KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTk0LDAsMCkscmdiKDIzMCw2LDYpKTttYXJnaW4tbGVmdDotNnB4fS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtYmV6ZWx7Ym9yZGVyLXJhZGl1czp1bnNldDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgYm90dG9tLGxlZnQgdG9wLGZyb20ocmdiKDE5LDE5LDE5KSksdG8ocmdiKDUyLDUyLDUyKSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLHJnYigxOSwxOSwxOSkscmdiKDUyLDUyLDUyKSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpOy13ZWJraXQtYW5pbWF0aW9uOmJlemVsLWZhZGUtaW4gMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHM7YW5pbWF0aW9uOmJlemVsLWZhZGUtaW4gMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIGJlemVsLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIGJlemVsLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXRvb2x0aXAtYmcsLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtib3JkZXItcmFkaXVzOjB9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMXB4IDFweCByZ2JhKDIyNywyMjcsMjI3LC4yKTtib3gtc2hhZG93Omluc2V0IDFweCAxcHggcmdiYSgyMjcsMjI3LDIyNywuMik7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDE5LDE5LDE5KSxyZ2IoNTIsNTIsNTIpKX0ueXRwLXNldHRpbmdzLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLXNldHRpbmdzLWJ1dHRvbiBzdmd7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc2V0dGluZ3MtYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gc3Zney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHg7aGVpZ2h0OjlweDt3aWR0aDoxM3B4O2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpO2JvcmRlci1yYWRpdXM6MXB4O2xpbmUtaGVpZ2h0Om5vcm1hbH0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM2NjZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2RkZH0ueXRwLWNvbG9yLXBhcnR5IC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTRrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXBhcnR5IC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZX0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE15QTVJajQ4Y0dGMGFDQm1hV3hzTFc5d1lXTnBkSGs5SWk0Mk5EY2lJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRUVWdOMmd4ZGpGSU5YcHROUzAwZGpGSU9GWXplazB6SURaV05XZ3lkakY2VFRJZ04yZ3hkakZJTW5wdE5TQXdhRE4yTVVnM2VtMHpMVEZvTVhZeGFDMHhlaUl2UGp4d1lYUm9JR1pwYkd3OUlpTm1abVlpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVFVnTjFZMVNETjJNa2d5VmpKb01YWXlhREpXTW1neGRqVjZiVFl0TVdndE1YWXhTRGRXTW1nemRqRm9NWHB0TFRFdE1sWXpTRGgyTTJneWVpSXZQand2YzNablBnPT0pfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZHItcXVhbGl0eS1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE5DQTJJajQ4Y0dGMGFDQm1hV3hzTFc5d1lXTnBkSGs5SWk0Mk5EY2lJR1E5SWsweklEVm9NWFl4U0RONmJUVXROSFl4U0RaV01YcE5NU0EwVmpOb01uWXhlazB3SURWb01YWXhTREI2YlRVZ01HZ3pkakZJTlhwdE15MHhhREYyTVVnNGVpSXZQanh3WVhSb0lHWnBiR3c5SWlObVptWWlJR1E5SWsweklEVldNMGd4ZGpKSU1GWXdhREYyTW1neVZqQm9NWFkxZW0wMkxURklPSFl4U0RWV01HZ3pkakZvTVhwTk9DQXlWakZJTm5ZemFESjZJaTgrUEhCaGRHZ2dabWxzYkMxdmNHRmphWFI1UFNJdU5qUTNJaUJrUFNKTk1UTWdNbWd4ZGpGb0xURjZiVEFnTTJneGRqRm9MVEY2YlMweUxUSm9Nbll4YUMweWVtMHRNU0F5YURGMk1XZ3RNWHB0TVMwMGFESjJNV2d0TW5vaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTVRRZ00zWXlhQzB4VmpONmJTMHpMVE5vTW5ZeGFDMHlkakZvTW5ZeGFDMHlkakpvTFRGV01IcHRNaUF3YURGMk1tZ3RNWG9pTHo0OEwzTjJaejQ9KTtoZWlnaHQ6NnB4O3dpZHRoOjE0cHg7cmlnaHQ6M3B4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2UxMDAyZDtib3JkZXItd2lkdGg6MXB4fS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMVzl3WVdOcGRIazlJaTQyTkRjaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFd0lEUm9NWFl4YUMweGVtMHdJRE5vTVhZeGFDMHhlazA0SURWb01uWXhTRGg2VFRjZ04yZ3hkakZJTjNwTk5TQTJhREYyTVVnMWVrMDBJRGRvTVhZeFNEUjZUVElnTm1neWRqRklNbnB0TVMweWFERjJNVWd6ZWlJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFeElEVjJNbWd0TVZZMWVtMHRNU0F3U0RoMk1rZzNWakpvTVhZeWFESjZUVFFnTkVnemRqRm9NWHB0TUNBelZqWklNbFkwYURGV00yZ3hWakpvTVhZemFERjJNVWcxZGpGNmJUWXROV2d4ZGpKb0xURjZJaTgrUEM5emRtYyspfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC01ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMVzl3WVdOcGRIazlJaTQyTkRjaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFd0lEUm9NWFl4YUMweGVtMHdJRE5vTVhZeGFDMHhlazA0SURWb01uWXhTRGg2VFRjZ04yZ3hkakZJTjNwTk5TQTJhREYyTVVnMWVrMHlJRGRvTTNZeFNESjZiVEF0TW1nemRqRklNbm9pTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVtMHdMVE5vTVhZeWFDMHhlazB5SURab00zWXhTREp0TXkweWFERjJNVWcxYlRBdE1rZ3pWak5vTTFZeVNESjJNMmd6ZWlJdlBqd3ZjM1puUGc9PSl9Lnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLThrLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c0xXOXdZV05wZEhrOUlpNDJORGNpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVEV3SURSb01YWXhhQzB4ZW0wd0lETm9NWFl4YUMweGVrMDRJRFZvTW5ZeFNEaDZUVGNnTjJneGRqRklOM3BOTlNBMmFERjJNVWcxZWsweklEVm9Nbll4U0RONmJUQXRNbWd5ZGpGSU0zcHRNaUF4YURGMk1VZzFlazB5SURSb01YWXhTREo2YlRBZ01tZ3hkakZJTW5wdE1TQXhhREoyTVVnemVpSXZQanh3WVhSb0lHWnBiR3c5SWlObVptWWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRURXhJRFYyTW1ndE1WWTFlbTB0TVNBd1NEaDJNa2czVmpKb01YWXlhREo2YlRBdE0yZ3hkakpvTFRGNlRUTWdObWd5ZGpGSU0yMHdMVFZvTW5ZeFNETjZiVElnTTJneGRqRklOWHBOTXlBMGFESjJNVWd6ZW0weUxURm9NWFl4U0RWNlRUSWdOV2d4ZGpGSU1ucHRNQzB5YURGMk1VZ3llaUl2UGp3dmMzWm5QZz09KX0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5NaUF5YURSMk5VZ3lWalpvTTFZMVNESldOR2d6VmpOSU1ucHROU0F3YUROMk1VZzRkak5vTW5ZeFNEZDZiVE1nTVdneGRqTm9MVEY2SWk4K1BIQmhkR2dnWm1sc2JDMXZjR0ZqYVhSNVBTSXVOalEzSWlCa1BTSk5NaUF6YUROMk1VZ3llbTAySURCb01uWXhTRGg2VFRJZ05XZ3pkakZJTW5wdE9DQXhhREYyTVdndE1YcE5NaUEzYURSMk1VZ3llbTAxSURCb00zWXhTRGQ2SWk4K1BDOXpkbWMrKX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazAxSURkV05VZ3pkakpJTWxZeWFERjJNbWd5VmpKb01YWTFlbTAyTFRGb0xURjJNVWczVmpKb00zWXhhREY2YlMweExUSldNMGc0ZGpOb01ub2lMejQ4TDNOMlp6ND0pfS55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TkNBMUlqNDhjR0YwYUNCa1BTSk5NeUExVmpOSU1YWXlTREJXTUdneGRqSm9NbFl3YURGMk5YcHROaTB4U0RoMk1VZzFWakJvTTNZeGFERjZUVGdnTWxZeFNEWjJNMmd5ZWsweE5DQXpkakpvTFRGV00zcHRMVEVnTUdndE1uWXlhQzB4VmpCb01YWXlhREo2YlRBdE1tZ3RNMVl3YURSMk1tZ3RNWG9pTHo0OEwzTjJaejQ9KX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVrMDBJRFJJTTNZeGFERjZiVEFnTTFZMlNESldOR2d4VmpOb01WWXlhREYyTTJneGRqRklOWFl4ZW0wMkxUVm9NWFl5YUMweGVpSXZQand2YzNablBnPT0pfS55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpSUdROUlrMHhNU0ExZGpKb0xURldOWHB0TFRFZ01FZzRkakpJTjFZeWFERjJNbWd5ZW0wd0xUTm9NWFl5YUMweGVrMHlJRFpvTTNZeFNESnRNeTB5YURGMk1VZzFiVEF0TWtnelZqTm9NMVl5U0RKMk0yZ3plaUl2UGp3dmMzWm5QZz09KX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVtMHdMVE5vTVhZeWFDMHhlazB6SURab01uWXhTRE50TUMwMWFESjJNVWd6ZW0weUlETm9NWFl4U0RWNlRUTWdOR2d5ZGpGSU0zcHRNaTB4YURGMk1VZzFlazB5SURWb01YWXhTREo2YlRBdE1tZ3hkakZJTW5vaUx6NDhMM04yWno0PSl9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE15QTVJajQ4Y0dGMGFDQmtQU0pOTWlBeWFEUjJOVWd5Vmpab00xWTFTREpXTkdnelZqTklNbnB0TlNBd2FETjJNVWc0ZGpOb01uWXhTRGQ2YlRNZ01XZ3hkak5vTFRGNklpOCtQQzl6ZG1jKyl9Lnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye3RvcDoxNXB4O3JpZ2h0OjZweDtwYWRkaW5nOjJweDtmb250LWZhbWlseTpWZXJkYW5hLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAycHggMCByZ2JhKDAsMCwwLC42KTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLXJhZGl1czoxLjVweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye3RvcDo0cHg7cmlnaHQ6NHB4fS55dHAtY29sb3Itd2hpdGUueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtY29sb3Itd2hpdGUueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29sb3I6IzAwMDt0ZXh0LXNoYWRvdzpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29udGVudDoiSEQifS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IkhEUiI7Zm9udC1zaXplOjhweH0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjRLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC01ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjVLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjhLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVye2NvbnRlbnQ6IjNEIn0ueXRwLWdlbmVyaWMtcG9wdXB7dG9wOjA7bGVmdDowO3BhZGRpbmc6NXB4IDlweDttYXgtd2lkdGg6MTQ0cHg7ei1pbmRleDo3Mn0ueXRwLWJpZy1tb2RlIC55dHAtZ2VuZXJpYy1wb3B1cHttYXgtd2lkdGg6MjE2cHh9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWdlbmVyaWMtcG9wdXAgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS55dHAtcG9wdXB7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6cmdiYSgyOCwyOCwyOCwuOSk7dGV4dC1zaGFkb3c6MCAwIDJweCByZ2JhKDAsMCwwLC41KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBvcHVwey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kbmkgLnl0cC1wb3B1cHt0ZXh0LXNoYWRvdzpub25lfS55dHAtcG9wdXBbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXBvcHVwLWFuaW1hdGluZ3std2Via2l0LXRyYW5zaXRpb246YWxsIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjphbGwgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtcG9wdXAtYW5pbWF0aW5nIC55dHAtcGFuZWx7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246YWxsIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC1wYW5lbC1hbmltYXRlLWJhY2ssLnl0cC1wYW5lbC1hbmltYXRlLWZvcndhcmR7b3BhY2l0eTowfVtkaXI9bHRyXSAueXRwLXBhbmVsLWFuaW1hdGUtYmFja3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX1bZGlyPWx0cl0gLnl0cC1wYW5lbC1hbmltYXRlLWZvcndhcmR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9W2Rpcj1ydGxdIC55dHAtcGFuZWwtYW5pbWF0ZS1iYWNrey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfVtkaXI9cnRsXSAueXRwLXBhbmVsLWFuaW1hdGUtZm9yd2FyZHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0ueXRwLXNldHRpbmdzLW1lbnV7cmlnaHQ6MTJweDtib3R0b206NjFweDt6LWluZGV4OjcwO3dpbGwtY2hhbmdlOndpZHRoLGhlaWdodDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpO29wYWNpdHk6Y2FsYygxIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjMpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1tZW51e29wYWNpdHk6Y2FsYygxIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjMpO2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgNnB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZW1iZWQgLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1tZW51e3JpZ2h0OjI0cHg7Ym90dG9tOjcwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtbWVudXtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCl9Lnl0cC1zZXR0aW5ncy1tZW51IC55dHAtbWVudWl0ZW0tY29udGVudHttYXgtd2lkdGg6MjUwcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51e3otaW5kZXg6MjMwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1wYW5lbC1tZW51e3BhZGRpbmc6OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2V0dGluZ3MtbWVudSAueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVyKXtoZWlnaHQ6NDhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1tZW51aXRlbT46Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51IC55dHAtbWVudWl0ZW0+Omxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2V0dGluZ3MtbWVudSAueXRwLW1lbnVpdGVtLWNvbnRlbnR7cGFkZGluZy1yaWdodDo4cHh9Lnl0cC1zcGVlZHNsaWRlci1jb21wb25lbnR7aGVpZ2h0Ojk1cHg7b3V0bGluZTpub25lfS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50IC55dHAtc2xpZGVye2hlaWdodDo0MHB4fS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50e3RleHQtYWxpZ246Y2VudGVyfS55dHAtc3BlZWRzbGlkZXItaW5kaWNhdG9yLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50IC55dHAtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLXNwZWVkc2xpZGVyLWNvbXBvbmVudCAueXRwLXNsaWRlci1oYW5kbGU6YmVmb3Jle2hlaWdodDo1cHh9Lnl0cC1zcGVlZHNsaWRlci10ZXh0e2ZvbnQtc2l6ZToxNTAlO3RleHQtYWxpZ246Y2VudGVyfS55dHAtc3BlZWRzbGlkZXItcHJlbWl1bS1iYWRnZXt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSXlOQ0lnZG1sbGQwSnZlRDBpTFRJZ0xUSWdNalFnTWpRaVBqeHdZWFJvSUdacGJHdzlJaU5qTURBaUlHUTlJazB3SURFdU5ETkRNQ0F1TmpRdU5qUWdNQ0F4TGpReklEQm9NVGN1TVRORE1Ua3VNelVnTUNBeU1DQXVOalFnTWpBZ01TNDBNM1l4Tnk0eE0yTXdJQzQzT1MwdU5qVWdNUzQwTkMweExqUTBJREV1TkRSSU1TNDBNME11TmpRZ01qQWdNQ0F4T1M0ek5TQXdJREU0TGpVMldtMHdJREFpTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5OeTQ0T0NBeE1TNDBNblkwTGpJNVNEVXVNemRXTXk0MU1tZzBMamMxWXk0NU1pQXdJREV1TnpJdU1UY2dNaTQwTWk0MUxqWTVMak0wSURFdU1qSXVPREVnTVM0MklERXVORE11TXpjdU5qSXVOVFlnTVM0ek1pNDFOaUF5TGpFeElEQWdNUzR4T1MwdU5ERWdNaTR4TXkweExqSXlJREl1T0RJdExqZ3lMalk1TFRFdU9UVWdNUzR3TkMwekxqUWdNUzR3TkZwdE1DMHlMakEwYURJdU1qUmpMalkzSURBZ01TNHhPQzB1TVRVZ01TNDFNaTB1TkRjdU16VXRMak14TGpVekxTNDNOUzQxTXkweExqTTBjeTB1TVRndE1TNHdOeTB1TlRNdE1TNDBOV010TGpNMUxTNHpOaTB1T0RRdExqVTFMVEV1TkRZdExqVTJhQzB5TGpOYWJUQWdNQ0l2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXJpZ2h0OjhweDtyaWdodDoxMDAlfS55dHAtbWVudWl0ZW0tcHJlbWl1bS1iYWRnZXt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSXlOQ0lnZG1sbGQwSnZlRDBpTFRJZ0xUSWdNalFnTWpRaVBqeHdZWFJvSUdacGJHdzlJaU5qTURBaUlHUTlJazB3SURFdU5ETkRNQ0F1TmpRdU5qUWdNQ0F4TGpReklEQm9NVGN1TVRORE1Ua3VNelVnTUNBeU1DQXVOalFnTWpBZ01TNDBNM1l4Tnk0eE0yTXdJQzQzT1MwdU5qVWdNUzQwTkMweExqUTBJREV1TkRSSU1TNDBNME11TmpRZ01qQWdNQ0F4T1M0ek5TQXdJREU0TGpVMldtMHdJREFpTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5OeTQ0T0NBeE1TNDBNblkwTGpJNVNEVXVNemRXTXk0MU1tZzBMamMxWXk0NU1pQXdJREV1TnpJdU1UY2dNaTQwTWk0MUxqWTVMak0wSURFdU1qSXVPREVnTVM0MklERXVORE11TXpjdU5qSXVOVFlnTVM0ek1pNDFOaUF5TGpFeElEQWdNUzR4T1MwdU5ERWdNaTR4TXkweExqSXlJREl1T0RJdExqZ3lMalk1TFRFdU9UVWdNUzR3TkMwekxqUWdNUzR3TkZwdE1DMHlMakEwYURJdU1qUmpMalkzSURBZ01TNHhPQzB1TVRVZ01TNDFNaTB1TkRjdU16VXRMak14TGpVekxTNDNOUzQxTXkweExqTTBjeTB1TVRndE1TNHdOeTB1TlRNdE1TNDBOV010TGpNMUxTNHpOaTB1T0RRdExqVTFMVEV1TkRZdExqVTJhQzB5TGpOYWJUQWdNQ0l2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7bWFyZ2luLWxlZnQ6OHB4fS55dHAtbWVudWl0ZW0tY29udGFpbmVyLXdpdGgtYmFkZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLXNwZWVkLXNsaWRlci1tZW51LWZvb3RlcntwYWRkaW5nOjE2cHh9Lnl0cC1zaG93LXNoYXJlLXRpdGxlLnl0cC1zaGFyZS1idXR0b257bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hvdy1zaGFyZS10aXRsZS55dHAtc2hhcmUtYnV0dG9ue21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1zaG9ydHMtbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLDpub3QoLnl0cC1zaG9ydHMtbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9ue3dpZHRoOmF1dG87aGVpZ2h0OmF1dG99Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXNoYXJlLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3BhZGRpbmctdG9wOjRweH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWJpZy1tb2RlKSAueXRwLWNocm9tZS10b3AgLnl0cC1zaGFyZS1idXR0b257bWluLXdpZHRoOjQ4cHg7bWF4LXdpZHRoOjgwcHh9Lnl0cC1zaGFyZS1pY29ue21hcmdpbjphdXRvO3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLWljb257d2lkdGg6NTRweDtoZWlnaHQ6NTRweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hhcmUtaWNvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O21hcmdpbi1ib3R0b206MTBweH0ueXRwLXNoYXJlLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXRpdGxlLC55dHAtb3ZlcmZsb3ctcGFuZWwgLnl0cC1zaGFyZS10aXRsZXtmb250LXNpemU6MjBweH0ueXRwLXNob3ctc2hhcmUtdGl0bGUgLnl0cC1zaGFyZS10aXRsZXtkaXNwbGF5OmJsb2NrfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYmlnLW1vZGUpIC55dHAtY2hyb21lLXRvcCAueXRwLXNoYXJlLXRpdGxle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVufS55dHAtc2hhcmUtcGFuZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo3NTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtc2hhcmUtcGFuZWxbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc2hhcmUtcGFuZWwtaW5uZXItY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTY1cHg7bGVmdDowO3JpZ2h0OjA7cGFkZGluZzowIDEwJX0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtaW5uZXItY29udGVudHttYXJnaW4tdG9wOi05OHB4fS55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye2Rpc3BsYXk6bm9uZTttYXJnaW46MjBweCBhdXRvIDA7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye21hcmdpbi10b3A6MzBweH0ueXRwLXNoYXJlLXBhbmVsLnl0cC1zaGFyZS1wYW5lbC1sb2FkaW5nIC55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye2Rpc3BsYXk6YmxvY2t9Lnl0cC1zaGFyZS1wYW5lbC1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NnB4O3JpZ2h0OjEycHg7cGFkZGluZzo2cHg7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtY2xvc2V7dG9wOjlweDtyaWdodDoyNHB4O3BhZGRpbmc6OXB4O3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1zaGFyZS1wYW5lbC1jbG9zZSBwYXRoe2ZpbGw6I2FhYX0ueXRwLXNoYXJlLXBhbmVsLWNsb3NlOmhvdmVyIHBhdGh7ZmlsbDojZmZmfS55dHAtc2hhcmUtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjE1NSU7bGluZS1oZWlnaHQ6MjBweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtdGl0bGV7bGluZS1oZWlnaHQ6MzBweH0ueXRwLXNoYXJlLXBhbmVsLWxpbmt7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjhweDttYXJnaW4tdG9wOjE4cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXNpemU6MjE4JTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47b3V0bGluZTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zaGFyZS1wYW5lbC1saW5re2hlaWdodDo0MnB4O21hcmdpbi10b3A6MjdweH0ueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3R7ZGlzcGxheTpub25lO2xpbmUtaGVpZ2h0OjE1cHg7bWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMTglO2NvbG9yOiM5OTl9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3R7bGluZS1oZWlnaHQ6MjIuNXB4O21hcmdpbi10b3A6MThweH0ueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3QgaW5wdXRbdHlwZT1jaGVja2JveF17bWFyZ2luOjAgOHB4IDAgMH0ueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9uc3ttYXJnaW4tdG9wOjIwcHg7aGVpZ2h0OjQ0cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9uc3ttYXJnaW4tdG9wOjMwcHg7aGVpZ2h0OjY3cHh9Lnl0cC1zaGFyZS1wYW5lbC55dHAtc2hhcmUtcGFuZWwtZmFpbCAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ucywueXRwLXNoYXJlLXBhbmVsLnl0cC1zaGFyZS1wYW5lbC1sb2FkaW5nIC55dHAtc2hhcmUtcGFuZWwtc2VydmljZS1idXR0b25ze2Rpc3BsYXk6bm9uZX0ueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ue3BhZGRpbmc6M3B4O3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ue3BhZGRpbmc6NXB4O3dpZHRoOjU3cHg7aGVpZ2h0OjU3cHh9Lnl0cC1zaGFyZS1wYW5lbC1lcnJvcntkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDoyMHB4O2ZvbnQtc2l6ZToxMDklfS55dHAtYmlnLW1vZGUgLnl0cC1zaGFyZS1wYW5lbC1lcnJvcnttYXJnaW4tdG9wOjMwcHh9Lnl0cC1zaGFyZS1wYW5lbC1mYWlsIC55dHAtc2hhcmUtcGFuZWwtZXJyb3J7ZGlzcGxheTpibG9ja30ueXRwLXNob3BwaW5nLXByb2R1Y3QtbWVudXt6LWluZGV4OjcyO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjt0ZXh0LWFsaWduOmxlZnQ7ZGlyZWN0aW9uOmx0cjtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjM7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDt3aWxsLWNoYW5nZTp3aWR0aCxoZWlnaHQ7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtc2hvcHBpbmctcHJvZHVjdC1tZW51IC55dHAtbWVudWl0ZW0tY29udGVudHttYXgtd2lkdGg6MjUwcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbC1sb2dve3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luOjVweDstd2Via2l0LWJhY2tncm91bmQtb3JpZ2luOmNvbnRlbnQtYm94O2JhY2tncm91bmQtb3JpZ2luOmNvbnRlbnQtYm94O2Zsb2F0OmxlZnQ7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJX0ueXRwLWJpZy1tb2RlIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo1MHB4O2hlaWdodDo1MHB4fS55dHAtZW1iZWQtbW9iaWxlIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwtbG9nbywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLWxvZ297d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW46MH0ueXRwLXNob3J0cy10aXRsZS1leHBhbmRlZC1oZWFkaW5ne21hcmdpbjozcHg7LXdlYmtpdC1ib3gtZmxleDppbml0aWFsOy13ZWJraXQtZmxleDppbml0aWFsO2ZsZXg6aW5pdGlhbDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGV7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowfS55dHAtYmlnLW1vZGUgLnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGV7Zm9udC1zaXplOjIycHh9Lnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGUgYXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLXRpdGxlLWV4cGFuZGVkLXRpdGxle3dvcmQtYnJlYWs6YnJlYWstd29yZDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hvcnRzLXRpdGxlLWV4cGFuZGVkLXRpdGxle2ZvbnQtc2l6ZToxOHB4fS55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWx7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7ZGlzcGxheTpub25lO2hlaWdodDphdXRvO21hcmdpbi1sZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnN0YXRpYzt0b3A6N3B4O2xlZnQ6OHB4O3dpZHRoOmF1dG99Lnl0cC1iaWctbW9kZSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVse21hcmdpbi10b3A6MTBweH0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLWNocm9tZS10b3AgLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbCAueXRwLXNiey13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO3BhZGRpbmc6MDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LXNoYWRvdzpub25lOy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowfS55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJle21hcmdpbi1sZWZ0OjB9Lnl0cC1zaG9ydHMtbW9kZSBhLnl0cC1zYi1zdWJzY3JpYmV7bWFyZ2luLWxlZnQ6MH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJlLC55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwgLnl0cC1zYi11bnN1YnNjcmliZXtmb250LXNpemU6MTZweDtwYWRkaW5nOjE0cHggMjBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWx7bWFyZ2luLXRvcDo3cHh9Lnl0cC1za2lwLWludHJvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjkwMTk2MDc4NDMpO2JvdHRvbTo1OHB4O2hlaWdodDo0OHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweDtyaWdodDoxMHB4O3otaW5kZXg6MTB9Lnl0cC1lbWJlZCAueXRwLXNraXAtaW50cm8tYnV0dG9ue2JvdHRvbTo1MHB4O2hlaWdodDo0MHB4fS55dHAtc2tpcC1pbnRyby1idXR0b246aG92ZXJ7YmFja2dyb3VuZDojMDAwfS55dHAtYmlnLW1vZGUgLnl0cC1za2lwLWludHJvLWJ1dHRvbntib3R0b206NzlweDtyaWdodDo0MHB4fS55dHAtc2tpcC1pbnRyby1idXR0b24tdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bWF4LXdpZHRoOjIwMHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwfS55dHAtc2xpZGVyLXNlY3Rpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTUwcHg7aGVpZ2h0OjEwMCU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfS55dHAtc2xpZGVye2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjB9Lnl0cC1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjEwcHg7bWFyZ2luLXRvcDotMTBweDtiYWNrZ3JvdW5kOiNmZmY7b3V0bGluZTowfS55dHAtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLXNsaWRlci1oYW5kbGU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt0b3A6NTAlO2xlZnQ6MDtoZWlnaHQ6M3B4O21hcmdpbi10b3A6LTJweDt3aWR0aDoxNzBweDtvdXRsaW5lOjB9Lnl0cC1zbGlkZXItaGFuZGxlOmJlZm9yZXtsZWZ0Oi0xNjBweDtiYWNrZ3JvdW5kOiNmZmZ9Lnl0cC1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6MTBweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1zbGlkZXItc2VjdGlvbjpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLW92ZXJsYXl7ei1pbmRleDoxMDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MH0ueXRwLXNwZWVkbWFzdGVyLW92ZXJsYXl7dGV4dC1hbGlnbjpjZW50ZXI7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXNwZWVkbWFzdGVyLXVzZXItZWR1ey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjE4cHg7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjMycHg7bWFyZ2luLXRvcDoyMHB4O3BhZGRpbmc6NnB4IDE2cHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zcGVlZG1hc3Rlci11c2VyLWVkdXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtc3BlZWRtYXN0ZXItdXNlci1lZHUueXRwLXNwZWVkbWFzdGVyLWhhcy1pY29uey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1zcGVlZG1hc3Rlci1pY29uLC55dHAtc3BlZWRtYXN0ZXItbGFiZWx7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6aW5saW5lLWZsZXh9Lnl0cC1zcGVlZG1hc3Rlci1pY29ue21hcmdpbi1sZWZ0OjRweH0ueXRwLXNwZWVkbWFzdGVyLWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9se3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0OHB4O2xlZnQ6MTJweDtvcGFjaXR5Oi42O2N1cnNvcjpwb2ludGVyO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6NDM7b3V0bGluZTpub25lfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9se3RvcDo2MHB4fS55dHAtYmlnLW1vZGUgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHt0b3A6NjlweDt3aWR0aDo3NXB4O2hlaWdodDo3NXB4fS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHt0b3A6NjBweH0ueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9sLnl0cC1kcmFnZ2luZywueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9sOmhvdmVye29wYWNpdHk6MX0ueXRwLWF1dG9oaWRlIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2wsLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2x7dG9wOjEycHg7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC13ZWJnbC1zcGhlcmljYWw6bm90KC55dHAtbWVudS1zaG93bikgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcntjdXJzb3I6bW92ZTtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS55dHAtd2ViZ2wtc3BoZXJpY2FsLnl0cC1kcmFnZ2luZzpub3QoLnl0cC1tZW51LXNob3duKSAuaHRtbDUtdmlkZW8tY29udGFpbmVye2N1cnNvcjptb3ZlO2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ30ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2w6Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCl9LmVuZGVkLW1vZGUgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbCwueXRwLW1lbnUtc2hvd24gLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHtwb3NpdGlvbjpyZWxhdGl2ZTtpbnNldDowfS55dHAtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3dpZHRoOjY0cHg7bWFyZ2luLWxlZnQ6LTMycHg7ei1pbmRleDoxODtwb2ludGVyLWV2ZW50czpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zcGlubmVye3dpZHRoOjEyOHB4O21hcmdpbi1sZWZ0Oi02NHB4fS55dHAtc3Bpbm5lci1tZXNzYWdle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO21hcmdpbi10b3A6NTAlO3dpZHRoOjMwMHB4O2ZvbnQtc2l6ZToxMjclO2xpbmUtaGVpZ2h0OjE4MiU7bWFyZ2luLWxlZnQ6LTE1MHB4O2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO29wYWNpdHk6LjV9Lnl0cC1zcGlubmVyLWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206MTAwJTt0b3A6NTAlO2xlZnQ6NTAlO21hcmdpbi10b3A6LTUwJTttYXJnaW4tbGVmdDotNTAlO2FuaW1hdGlvbjp5dHAtc3Bpbm5lci1saW5zcGluIDEuNTY4MjM1Mjk0MTE3NnMgbGluZWFyIGluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uOnl0cC1zcGlubmVyLWxpbnNwaW4gMS41NjgyMzUyOTQxMTc2cyBsaW5lYXIgaW5maW5pdGV9Lnl0cC1zcGlubmVyLXJvdGF0b3J7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LWFuaW1hdGlvbjp5dHAtc3Bpbm5lci1lYXNlc3BpbiA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXNwaW5uZXItZWFzZXNwaW4gNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGh9Lnl0cC1zcGlubmVyLWxlZnQsLnl0cC1zcGlubmVyLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO292ZXJmbG93OmhpZGRlbn0ueXRwLXNwaW5uZXItbGVmdHtyaWdodDo0OSV9Lnl0cC1zcGlubmVyLXJpZ2h0e2xlZnQ6NDklfS55dHAtc3Bpbm5lci1jaXJjbGV7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZGRkICNkZGQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXdpZHRoOjZweH0ueXRwLWJpZy1tb2RlIC55dHAtc3Bpbm5lci1jaXJjbGV7Ym9yZGVyLXdpZHRoOjEycHh9Lnl0cC1zcGlubmVyLWxlZnQgLnl0cC1zcGlubmVyLWNpcmNsZXtsZWZ0OjA7cmlnaHQ6LTEwMCU7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYW5pbWF0aW9uOnl0cC1zcGlubmVyLWxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXNwaW5uZXItbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RofS55dHAtc3Bpbm5lci1yaWdodCAueXRwLXNwaW5uZXItY2lyY2xle2xlZnQ6LTEwMCU7cmlnaHQ6MDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWFuaW1hdGlvbjp5dHAtcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGh9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1zcGlubmVyLWxpbnNwaW57dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyB5dHAtc3Bpbm5lci1saW5zcGlue3Rvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtc3Bpbm5lci1lYXNlc3BpbnsxMi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQwNWRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpfTc1JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoODEwZGVnKX04Ny41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM3R1cm4pfX1Aa2V5ZnJhbWVzIHl0cC1zcGlubmVyLWVhc2VzcGluezEyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDU0MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfTg3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM3R1cm4pO3RyYW5zZm9ybTpyb3RhdGUoM3R1cm4pfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXNwaW5uZXItbGVmdC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1zcGlubmVyLWxlZnQtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXJpZ2h0LXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1yaWdodC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX19Lnl0cC1zZm57YmFja2dyb3VuZDpyZ2JhKDI4LDI4LDI4LC44KTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2xlZnQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDt6LWluZGV4OjY0O21pbi13aWR0aDoyNmVtfS55dHAtc2ZuLWNsb3Nle2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6NXB4O3BhZGRpbmc6NXB4fS55dHAtc2ZuLWNvbnRlbnR7cGFkZGluZzo1cHh9Lnl0cC1zZm4tY29udGVudD5kaXY+ZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjAgLjVlbTt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjEwZW19Lnl0cC1zZm4tY3Bue2ZvbnQtZmFtaWx5OkNvbnNvbGFzLE1vbmFjbyxtb25vc3BhY2U7Zm9udC1zaXplOjEycHh9Lnl0cC1ob3Jpem9uY2hhcnR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lnl0cC1ob3Jpem9uY2hhcnQ+c3BhbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjE2O2JhY2tncm91bmQ6IzAwMDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlld3tjdXJzb3I6cG9pbnRlcn0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy1pbWd7b3BhY2l0eTouNH0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3LXRpbWVzdGFtcHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Y29sb3I6I2RkZDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMpO2JvcmRlci1yYWRpdXM6MThweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3R0b206MzZweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7cGFkZGluZzo0cHggMTBweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy1pbWd7b3BhY2l0eToxfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3LXRpbWVzdGFtcHtkaXNwbGF5OmluaXRpYWx9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtc3Rvcnlib2FyZC1mcmFtZXByZXZpZXctaW1ne29wYWNpdHk6MX0ueXRwLWlubGluZS1wcmV2aWV3LW1vZGUgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy10aW1lc3RhbXB7ZGlzcGxheTppbml0aWFsfS55dHAtc2J7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6bm9uZX0ueXRwLXNiIC55dHAtc2ItdW5zdWJzY3JpYmUsLnl0cC1zYi55dHAtc2Itc3Vic2NyaWJlZCAueXRwLXNiLXN1YnNjcmliZXtkaXNwbGF5Om5vbmV9Lnl0cC1zYi55dHAtc2Itc3Vic2NyaWJlZCAueXRwLXNiLXVuc3Vic2NyaWJle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtc2Itc3Vic2NyaWJlLC55dHAtc2ItdW5zdWJzY3JpYmV7Ym9yZGVyLXJhZGl1czoxOHB4O2JvcmRlcjpub25lO2RpcmVjdGlvbjpsdHI7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xldHRlci1zcGFjaW5nOi4wMDdweDtsaW5lLWhlaWdodDoxNnB4O3BhZGRpbmc6MTBweCAxNnB4O3doaXRlLXNwYWNlOm5vd3JhcDstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zaG9ydHMtbW9kZSAueXRwLXNiLXVuc3Vic2NyaWJle2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6M3B4IDZweDtmb250LXdlaWdodDo1MDB9Lnl0cC1zYi1zdWJzY3JpYmUsYS55dHAtc2Itc3Vic2NyaWJle2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMDMwMzAzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zaG9ydHMtbW9kZSBhLnl0cC1zYi1zdWJzY3JpYmV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItY291bnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCl9Lnl0cC1zYi11bnN1YnNjcmliZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpO2NvbG9yOiNmZmZ9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXNiLXVuc3Vic2NyaWJle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6I2NjYzt0ZXh0LXRyYW5zZm9ybTpub25lfS55dHAtc2Itc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZCwueXRwLXNiLXVuc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDMsMTQ0LDEzOSk7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1zYi1zdWJzY3JpYmU6Zm9jdXMsLnl0cC1zYi11bnN1YnNjcmliZTpmb2N1c3tvdXRsaW5lOm5vbmV9Lnl0cC1zYi55dHAtc2ItY2xhc3NpY3tiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjo0cHggMH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUueXRwLXNiLWRpc2FibGVkLC55dHAtc2ItY2xhc3NpYyAueXRwLXNiLXVuc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpkZWZhdWx0fS55dHAtc2ItdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLXNiLWNvdW50e21hcmdpbi1sZWZ0OjRweH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItdW5zdWJzY3JpYmV7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOjEycHghaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjAhaW1wb3J0YW50O3RleHQtdHJhbnNmb3JtOm5vbmV9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJle2JvcmRlcjoxcHggc29saWQgI2U2MjExN30ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZXtib3JkZXI6MXB4IHNvbGlkICNjY2N9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItY291bnQsLnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItdGV4dHtwYWRkaW5nOjNweCA2cHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItY291bnR7bWFyZ2luOi0xcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjJweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoycHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItY291bnR7Ym9yZGVyLWxlZnQ6MH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUgLnl0cC1zYi1jb3VudCwueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTAsMjUwLDI1MCl9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItdGV4dHtjb2xvcjojZmVmZWZlO2JhY2tncm91bmQtY29sb3I6I2U2MjExN30ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1jb3VudCwueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZSAueXRwLXNiLXRleHR7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2NvbG9yOiM3MzczNzN9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItaWNvbntoZWlnaHQ6MTJweDttYXJnaW4tcmlnaHQ6NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHg7d2lkdGg6MTZweH0ueXRwLWJpZy1tb2RlIC55dHAtc2Itc3Vic2NyaWJlLC55dHAtYmlnLW1vZGUgLnl0cC1zYi11bnN1YnNjcmliZXtib3JkZXItcmFkaXVzOjIycHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItaWNvbntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQU1DQVlBQUFCcjV6MkJBQUFBblVsRVFWUTRUMlA4Ly8rL0p3TUR3MXdHQmdaSkJ0TEFjd1lHaG1URy8vLy9QeU5ETTh5cTV5QUQvcE5tTWFwcW5BWThrNUpnRUZteGxJSE56aG12K1RnTmVNckp5Y0Fvd01rZ05ITTZBNGRmT0U1RGNCcnduSk9UNGYvdkh3eU1iQXdNWEduSkRQd1Q1bUExaEVnRGtoajRKNEFpQ2hNUTlzS01hUXdjL2hHa2U0SGlRQ1EyYWlsTlNDOUFCbmhCazdJRXNiWkMxVDFsWUdCSUF3QlMxVXhCRTkvMmlBQUFBQUJKUlU1RXJrSmdnZz09KX0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZSAueXRwLXNiLWljb257YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFNQ0FZQUFBQnI1ejJCQUFBQS9VbEVRVlE0VDZXU01Vb0VRUkJGNjA4aWFMcVo0QW5FMERPSVlHWXVHTmpkTTRqUmlMa1lqU0lzTEYwdGdwa2dFM2dBY2NEVUc1aDZBQ01OcDc1TW9NeXV5bzVzcDlYMWZ0WC9CVm53WWNGKytSY2dwYlJHY2lJaVkrLzlReWMrR0JCajNNeXk3RnBFUm1ZMkNTR2NEUWFvNmk2QTgwNlE1TEgzL3U1cjlha0pxcXBhS2N2eW8rY0xWUFVFd0tHSXZKblpmZ2podWUvYk4wQlZqMFRrd016eVBNK2ZVa3JMSk1jQXRrbStBTmh6enIzT210NEg3QUM0RkpFbEVia2d1UVZnZytSajI3YWhLSXIzM3hLYldpSEd1QTdnQnNCcTk5bk1ycHFtT2EzcnV2MHI3aDhwcEpSR0pDT0FlK2ZjN2J3N0dSemo0QW5tS2M3V1B3RldSRjBOYzlSUXh3QUFBQUJKUlU1RXJrSmdnZz09KX0uY2FwdGlvbi13aW5kb3d7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6bm9ybWFsO3otaW5kZXg6NDE7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6bW92ZTtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9Lnl0cC1jYXB0aW9uLXdpbmRvdy1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtwb2ludGVyLWV2ZW50czpub25lfS55dHAtbmF0aXZlLWNvbnRyb2xzIC5jYXB0aW9uLXdpbmRvd3t6LWluZGV4OjIxNDc0ODM2NDd9LmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy10b3B7bWFyZ2luLXRvcDo0OHB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxtYXJnaW4tdG9wIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG1hcmdpbi10b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjYwcHh9Lnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjY5cHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjg5cHh9Lnl0cC1hdXRvaGlkZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcCwueXRwLWhpZGUtaW5mby1iYXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy10b3B7bWFyZ2luLXRvcDowOy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG1hcmdpbi10b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG1hcmdpbi10b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlLWFjdGl2ZSAuY2FwdGlvbi13aW5kb3d7cG9pbnRlci1ldmVudHM6bm9uZX15dGQtcmVlbC12aWRlby1yZW5kZXJlciAuc2hvcnQtdmlkZW8tY29udGFpbmVyIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctdG9we21hcmdpbi10b3A6NjlweH0uY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOjYxcHg7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG1hcmdpbi10b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksbWFyZ2luLXRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOjExMHB4fS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToyMDBweH0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNTVweH0ueXRwLWVtYmVkIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NTNweH0ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NzBweH0ueXRwLWF1dG9oaWRlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtaGlkZS1jb250cm9scyAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLW11dGVkLWF1dG9wbGF5IC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206MDstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXJnaW4tdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXJnaW4tdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWF1dG9oaWRlLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtYXV0b2hpZGUueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1hdXRvaGlkZS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1oaWRlLWNvbnRyb2xzLnl0cC1kZWxoaS1tb2Rlcm4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1oaWRlLWNvbnRyb2xzLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtaGlkZS1jb250cm9scy55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWhpZGUtY29udHJvbHMueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtbXV0ZWQtYXV0b3BsYXkueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLW11dGVkLWF1dG9wbGF5Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtbXV0ZWQtYXV0b3BsYXkueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1tdXRlZC1hdXRvcGxheS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTowfS55dHAtbmF0aXZlLWNvbnRyb2xzIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NDVweDstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9Lnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNTFweH0ueXRwLWVtYmVkLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNDNweH0ueXRwLWJpZy1tb2RlLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNjBweH0ueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE1NHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDE1NHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE1NHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217ZGlzcGxheTpub25lO29wYWNpdHk6MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci55dHAtYWQtb3ZlcmxheS1vcGVuIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci55dHAtZGVsaGktbW9kZXJuIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmd7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmU7Y3Vyc29yOm1vdmU7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfS55dHAtY2FwdGlvbi13aW5kb3ctcm9sbHVwLnl0cC1yb2xsdXAtbW9kZXtvdmVyZmxvdzpoaWRkZW59LmNhcHRpb24td2luZG93IC55dHAtaWNvbiwuY2FwdGlvbi13aW5kb3cgc3Zne3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7dmVydGljYWwtYWxpZ246Ym90dG9tO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxZW07bWF4LWhlaWdodDoxZW19Lnl0cC1lbWJlZCAuY2FwdGlvbi13aW5kb3cgLnl0cC1pY29uLC55dHAtZW1iZWQgLmNhcHRpb24td2luZG93IHN2Z3t3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93IHN2Z3t3aWR0aDo1NHB4O2hlaWdodDo1NHB4fS55dHAtY2FwdGlvbi13aW5kb3ctcm9sbHVwLnl0cC1yb2xsdXAtbW9kZSAuY2FwdGlvbnMtdGV4dHstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjQzM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNDMzcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC40MzNzIGN1YmljLWJlemllcigwLDAsLjIsMSl9LmNhcHRpb24tZWRpdHtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSg4LDgsOCwuNzUpO2JvcmRlcjpub25lO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcn0uY2FwdGlvbi1lZGl0IHN2Z3ttYXgtaGVpZ2h0OjYwJTttYXgtd2lkdGg6NjAlfS5jYXB0aW9uLWVkaXQ6Zm9jdXMsLmNhcHRpb24td2luZG93OmZvY3VzIC5jYXB0aW9uLWVkaXQsLnl0cC1jYXB0aW9uLXdpbmRvdy1yb2xsdXAgLmNhcHRpb24tZWRpdDpob3ZlciwueXRwLWNhcHRpb24td2luZG93LXJvbGx1cDpob3ZlciAuY2FwdGlvbi1lZGl0e29wYWNpdHk6MX0uaHRtbDUtdmlkZW8tcGxheWVyIC5jYXB0aW9uLXZpc3VhbC1saW5lIC55dHAtY2FwdGlvbi1zZWdtZW50OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouMjVlbTtwYWRkaW5nLXRvcDowfS5odG1sNS12aWRlby1wbGF5ZXIgLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0Oi4yNWVtO3BhZGRpbmctYm90dG9tOjB9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLXZlcnRpY2FsLWNhcHRpb24gLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy10b3A6LjI1ZW07cGFkZGluZy1sZWZ0OjB9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLXZlcnRpY2FsLWNhcHRpb24gLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6bGFzdC1jaGlsZHtwYWRkaW5nLWJvdHRvbTouMjVlbTtwYWRkaW5nLXJpZ2h0OjB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9ue2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otanVzdGlmeS1jb250ZW50OmxlZnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bGVmdDstd2Via2l0LWJveC1wYWNrOmxlZnQ7anVzdGlmeS1jb250ZW50OmxlZnR9Lnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdle2JvdHRvbTo2MHB4O2xlZnQ6NjBweH0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdle2JvdHRvbTo5MHB4O2xlZnQ6OTBweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7ei1pbmRleDo2MDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTZweDtsZWZ0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpO2JvcmRlci1yYWRpdXM6MzRweDtoZWlnaHQ6MzRweDt3aWR0aDozNHB4O3BhZGRpbmc6N3B4O2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXRpbWVseS1zaGVsZi1wcmVzZW50e2Rpc3BsYXk6bm9uZX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTp1bnNldH0uYWQtc2hvd2luZyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTpub25lfXl0ZC13YXRjaC1mbGV4eVt0aGVhdGVyXSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXRpbWVseS1zaGVsZi1wcmVzZW50e2Rpc3BsYXk6dW5zZXR9eXRkLXdhdGNoLWZsZXh5W3RoZWF0ZXJdIC5hZC1zaG93aW5nIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTpub25lfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7cG9zaXRpb246cmVsYXRpdmU7Ym90dG9tOjA7bGVmdDowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpO2JvcmRlcjpub25lO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7Ym9yZGVyLXJhZGl1czo0MHB4O3BhZGRpbmc6MTJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2U6bm90KC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCl7cGFkZGluZzowIDhweH0uYWQtc2hvd2luZyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7ZGlzcGxheTpub25lfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZVthcmlhLWhpZGRlbj10cnVlXXstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtvcGFjaXR5OjB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlOmhvdmVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2JhY2tncm91bmQtY29sb3I6cmdiYSgzMywzMywzMywuOTUpfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTU5cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTlweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTU5cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA2cHgpKi0xKSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KSotMSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KSotMSkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgNnB4KSotMSkpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCkqLTEpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCkqLTEpKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTgwcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtODBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTgwcHgpfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2U6aXMoLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWV4cGFuZGVkLC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1jb250ZW50LWZvcndhcmQpe3dpZHRoOmF1dG99Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb24tY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29ue2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l6TmlJZ2FHVnBaMmgwUFNJek5pSWdabWxzYkQwaUkyWm1aaUlnZG1sbGQwSnZlRDBpTUNBd0lESTBJREkwSWo0OGNHRjBhQ0JtYVd4c1BTSnViMjVsSWlCa1BTSk5NQ0F3YURJMGRqSTBTREI2SWk4K1BIQmhkR2dnWkQwaVRURTRJRFpvTFRKak1DMHlMakl4TFRFdU56a3ROQzAwTFRSVE9DQXpMamM1SURnZ05rZzJZeTB4TGpFZ01DMHlJQzQ1TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFERXlZekV1TVNBd0lESXRMamtnTWkweVZqaGpNQzB4TGpFdExqa3RNaTB5TFRKdExUWXRNbU14TGpFZ01DQXlJQzQ1SURJZ01tZ3ROR013TFRFdU1TNDVMVElnTWkweWJUWWdNVFpJTmxZNGFESjJNbU13SUM0MU5TNDBOU0F4SURFZ01YTXhMUzQwTlNBeExURldPR2cwZGpKak1DQXVOVFV1TkRVZ01TQXhJREZ6TVMwdU5EVWdNUzB4Vmpob01ub2lMejQ4TDNOMlp6ND0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb24ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtaWNvbi1jdXN0b20taWNvbiwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtaWNvbi55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29uLWN1c3RvbS1pY29ue2JhY2tncm91bmQtaW1hZ2U6bm9uZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxle2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojZmZmO21hcmdpbi1sZWZ0OjZweDttYXJnaW4tcmlnaHQ6NnB4O2N1cnNvcjpwb2ludGVyfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS10aXRsZXtmb250LXdlaWdodDo1MDB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxlOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtib3JkZXItcmFkaXVzOjhweDt3aWR0aDoyOThweDtoZWlnaHQ6NjRweDtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWJveC1hbGlnbjpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjI5MHB4O3BhZGRpbmc6NHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1kZXRhaWxze2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7Zm9udC1zaXplOjEycHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTtwYWRkaW5nOjAgOHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tZGV0YWlscyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjE0cHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWRldGFpbHMgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLXN1YnRpdGxle292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO29wYWNpdHk6Ljc7Zm9udC13ZWlnaHQ6NDAwfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1kZXRhaWxzIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1tZXRhZGF0YS10ZXh0e29wYWNpdHk6Ljc7Zm9udC13ZWlnaHQ6NTAwfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pbWd7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDojZmZmO2hlaWdodDo1NnB4O3dpZHRoOjU2cHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pbWc+aW1ne3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn06aXMoOmlzKC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWNvbGxhcHNlZCwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCksLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWNvbnRlbnQtZm9yd2FyZC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCkgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb257ZGlzcGxheTpub25lfTppcygueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1jb2xsYXBzZWQsLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXByZXZpZXctZXhwYW5kZWQpIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZC1jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWNvbnRlbnQtZm9yd2FyZC1jb250YWluZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjA7b3BhY2l0eTowO3dpZHRoOjA7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LW1hcmdpbi1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LW1hcmdpbi1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjptYXJnaW4taW5saW5lLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246d2lkdGggLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDoxOHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWlubGluZS1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246bWFyZ2luLWlubGluZS1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC1tYXJnaW4tc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbHtoZWlnaHQ6MjRweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4O29wYWNpdHk6MTt3aWR0aDoxOHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWV4cGFuZGVkIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LW1hcmdpbi1zdGFydDowO21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7d2lkdGg6MjRweH06aXMoLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXByZXZpZXctY29sbGFwc2VkLC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1jb250ZW50LWZvcndhcmQueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQpIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LW1hcmdpbi1zdGFydDoycHg7bWFyZ2luLWlubGluZS1zdGFydDoycHg7b3BhY2l0eToxO3dpZHRoOjE4cHg7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4gOmlzKC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWNvbGxhcHNlZCwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtY29udGVudC1mb3J3YXJkLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWV4cGFuZGVkKSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWw6Zmlyc3QtY2hpbGR7d2lkdGg6MjRweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tbW9yZS1wcm9kdWN0cy1pY29ue2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MTJweDt3aWR0aDoycHg7Ym9yZGVyLXJhZGl1czowIDEycHggMTJweCAwO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4zMjstd2Via2l0LW1hcmdpbi1zdGFydDoycHg7bWFyZ2luLWlubGluZS1zdGFydDoycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLW1vcmUtcHJvZHVjdHMtaWNvbntoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWNvbnRlbnQtZm9yd2FyZC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tbW9yZS1wcm9kdWN0cy1pY29ue2Rpc3BsYXk6dW5zZXR9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ1ptbHNiRDBpSTJabVppSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQmtQU0pOTVRZdU1qUWdPUzR4TnlBeE15NDBNU0F4TW13eUxqZ3pJREl1T0RNdE1TNDBNU0F4TGpReFRERXlJREV6TGpReGJDMHlMamd6SURJdU9ETXRNUzQwTVMweExqUXhUREV3TGpVNUlERXlJRGN1TnpZZ09TNHhOMnd4TGpReExURXVOREZNTVRJZ01UQXVOVGxzTWk0NE15MHlMamd6ZWswMExqa3pJRFF1T1ROakxUTXVPVEVnTXk0NU1TMHpMamt4SURFd0xqSTBJREFnTVRRdU1UUWdNeTQ1TVNBekxqa3hJREV3TGpJMElETXVPVEVnTVRRdU1UUWdNQ0F6TGpreExUTXVPVEVnTXk0NU1TMHhNQzR5TkNBd0xURTBMakUwTFRNdU9TMHpMamt4TFRFd0xqSTBMVE11T1RFdE1UUXVNVFFnTUcweE15NDBNeTQzTVdNekxqVXhJRE11TlRFZ015NDFNU0E1TGpJeUlEQWdNVEl1TnpOekxUa3VNaklnTXk0MU1TMHhNaTQzTXlBd0xUTXVOVEV0T1M0eU1pQXdMVEV5TGpjell6TXVOVEl0TXk0MU1TQTVMakl5TFRNdU5URWdNVEl1TnpNZ01DSXZQand2YzNablBnPT0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47b3BhY2l0eTouNjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0krUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaVRURTVJRFl1TkRFZ01UY3VOVGtnTlNBeE1pQXhNQzQxT1NBMkxqUXhJRFVnTlNBMkxqUXhJREV3TGpVNUlERXlJRFVnTVRjdU5Ua2dOaTQwTVNBeE9TQXhNaUF4TXk0ME1TQXhOeTQxT1NBeE9TQXhPU0F4Tnk0MU9TQXhNeTQwTVNBeE1ub2lMejQ4TDNOMlp6ND0pO29wYWNpdHk6MX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZGlzbWlzcy1idXR0b24taWNvbjpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZC1jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO29wYWNpdHk6MX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQtY29udGVudC1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO29wYWNpdHk6MH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1vZmZsaW5lLXNsYXRle2JvdHRvbTozMnB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JvcmRlci1yYWRpdXM6OHB4O3dpZHRoOjI4MHB4O2hlaWdodDo2NHB4O3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZmVhdHVyZWQtcHJvZHVjdC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtZmVhdHVyZWQtcHJvZHVjdD4ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQtY29udGVudC1jb250YWluZXI+Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxle2Rpc3BsYXk6bm9uZX0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWJveC1hbGlnbjpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjI3MnB4O3BhZGRpbmc6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1jb250YWluZXI+Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGlUVEU1SURZdU5ERWdNVGN1TlRrZ05TQXhNaUF4TUM0MU9TQTJMalF4SURVZ05TQTJMalF4SURFd0xqVTVJREV5SURVZ01UY3VOVGtnTmk0ME1TQXhPU0F4TWlBeE15NDBNU0F4Tnk0MU9TQXhPU0F4T1NBeE55NDFPU0F4TXk0ME1TQXhNbm9pTHo0OEwzTjJaejQ9KTtvcGFjaXR5Oi44O2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7YXNwZWN0LXJhdGlvOjF9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRodW1ibmFpbHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNmZmY7aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtvdmVyZmxvdzpoaWRkZW59Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRodW1ibmFpbD5pbWd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS55dHAtZmVhdHVyZWQtcHJvZHVjdC1vcGVuLWluLW5ld3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NHB4O3JpZ2h0OjRweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjgpO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SWlObVptWWlJSFpwWlhkQ2IzZzlJakFnTUNBME9DQTBPQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2cwT0hZME9FZ3dlaUl2UGp4d1lYUm9JR1E5SWswek9DQXpPRWd4TUZZeE1HZ3hORlkyU0RFd1l5MHlMakl4SURBdE5DQXhMamM1TFRRZ05IWXlPR013SURJdU1qRWdNUzQzT1NBMElEUWdOR2d5T0dNeUxqSXhJREFnTkMweExqYzVJRFF0TkZZeU5HZ3ROSHBOTWpnZ05uWTBhRGN1TVRkTU1UVXVOVEVnTWprdU5qWnNNaTQ0TXlBeUxqZ3pURE00SURFeUxqZ3pWakl3YURSV05ub2lMejQ4TDNOMlp6ND0pO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxze2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7Zm9udC1zaXplOjEycHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTtwYWRkaW5nOjAgOHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjE0cHh9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWRldGFpbHMgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LWNvdW50ZG93bntmb250LWZhbWlseTpZb3VUdWJlIFNhbnMsUm9ib3RvLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtYWZmaWxpYXRlLWRpc2NsYWltZXJ7Zm9udC13ZWlnaHQ6NTAwfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1hZmZpbGlhdGUtZGlzY2xhaW1lci13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWR7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi1yaWdodDo0cHg7b3BhY2l0eTouN30ueXRwLWZlYXR1cmVkLXByb2R1Y3QtaW5mby1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SWlObVptWWlJSFpwWlhkQ2IzZzlJakFnTUNBME9DQTBPQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2cwT0hZME9FZ3dlaUl2UGp4d1lYUm9JR1E5SWsweU1pQXpOR2cwVmpJeWFDMDBlbTB5TFRNd1F6RXlMamsxSURRZ05DQXhNaTQ1TlNBMElESTBjemd1T1RVZ01qQWdNakFnTWpBZ01qQXRPQzQ1TlNBeU1DMHlNRk16TlM0d05TQTBJREkwSURSdE1DQXpObU10T0M0NE1pQXdMVEUyTFRjdU1UZ3RNVFl0TVRaVE1UVXVNVGdnT0NBeU5DQTRjekUySURjdU1UZ2dNVFlnTVRZdE55NHhPQ0F4TmkweE5pQXhObTB0TWkweU1tZzBkaTAwYUMwMGVpSXZQand2YzNablBnPT0pO2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7bWFyZ2luLXJpZ2h0OjhweDtvcGFjaXR5Oi44O2FzcGVjdC1yYXRpbzoxfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1vdmVyZmxvdy1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlpMDFJQzAxSURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJrUFNKTk1USWdPR014TGpFZ01DQXlMUzQ1SURJdE1uTXRMamt0TWkweUxUSXRNaUF1T1MweUlESWdMamtnTWlBeUlESnRNQ0F5WXkweExqRWdNQzB5SUM0NUxUSWdNbk11T1NBeUlESWdNaUF5TFM0NUlESXRNaTB1T1MweUxUSXRNbTB3SURaakxURXVNU0F3TFRJZ0xqa3RNaUF5Y3k0NUlESWdNaUF5SURJdExqa2dNaTB5TFM0NUxUSXRNaTB5SWk4K1BDOXpkbWMrKTtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O29wYWNpdHk6Ljg7YXNwZWN0LXJhdGlvOjF9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWRldGFpbHMgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXZlbmRvcntvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtdmVuZG9yLXdoZW4tcHJvbW90aW9uLXRleHQtZW5hYmxlZHtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvcGFjaXR5Oi43O2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3Qtd2hlbi1wcm9tb3Rpb24tdGV4dC1lbmFibGVke2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWQgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRyZW5kaW5ne292ZXJmbG93OmhpZGRlbn0ueXRwLWZlYXR1cmVkLXByb2R1Y3Qtd2hlbi1wcm9tb3Rpb24tdGV4dC1lbmFibGVkIC55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZy10ZXh0e29wYWNpdHk6Ljc7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRyZW5kaW5nPi55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZy1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdMVGsyTUNBNU5qQWdPVFl3SWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSnRNVEl6TFRJME1DMDBNeTAwTXlBeU9USXRNamt4SURFMk55QXhOamNnTWpReExUSTBNVWcyTlROMkxUWXdhREl5TjNZeU1qZG9MVFU1ZGkweE1qTk1OVE00TFRNeU1TQXpOekV0TkRnNGVpSXZQand2YzNablBnPT0pO2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWFyZ2luLXRvcDoycHg7bWFyZ2luLXJpZ2h0OjRweDtvcGFjaXR5Oi44O2FzcGVjdC1yYXRpbzoxfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZ3tkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtY29udGFpbmVye292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1wcmljZS1jb250YWluZXIgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXByaWNlLXdoZW4tcHJvbW90aW9uLXRleHQtZW5hYmxlZHtvcGFjaXR5Oi43O2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtY29udGFpbmVyIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1wcm9tb3Rpb24tdGV4dHtmb250LXdlaWdodDo1MDA7bWFyZ2luLWxlZnQ6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1zYWxlcy1vcmlnaW5hbC1wcmljZXt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO21hcmdpbi1sZWZ0OjRweH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtZHJvcC1yZWZlcmVuY2UtcHJpY2V7bWFyZ2luLWxlZnQ6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1zYWxlcy1vcmlnaW5hbC1wcmljZTplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXByb21vdGlvbi10ZXh0OmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtZHJvcC1yZWZlcmVuY2UtcHJpY2U6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1hZmZpbGlhdGUtZGlzY2xhaW1lci13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWQ6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtYmFkZ2UtY29udGFpbmVyLC55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWV4Y2x1c2l2ZS1iYWRnZXtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZyb20oIzdmMGU3ZiksY29sb3Itc3RvcCgjZGIxZGRiKSx0bygjZWQ1NThmKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCM3ZjBlN2YsI2RiMWRkYiwjZWQ1NThmKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmLCNkYjFkZGIsI2VkNTU4Zik7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzoycHggNHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtYmFkZ2UtdGV4dHtsaW5lLWhlaWdodDoxMDAlO2ZvbnQtd2VpZ2h0OjcwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtZXhjbHVzaXZlLWNvdW50ZG93bnttYXJnaW4tbGVmdDo0cHg7bGluZS1oZWlnaHQ6MTAwJX0ueXRwLXRpbWUtZGlzcGxheXtmb250LXNpemU6MTA5JTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7cGFkZGluZzowIDVweDt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6NDdweH0ueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC10aW1lLWRpc3BsYXksLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtdGltZS1kaXNwbGF5e2xpbmUtaGVpZ2h0OjUxcHh9Lnl0cC1lbWJlZCAueXRwLXRpbWUtZGlzcGxheSwueXRwLXNtYWxsLW1vZGUgLnl0cC10aW1lLWRpc3BsYXl7bGluZS1oZWlnaHQ6MzlweH0ueXRwLWJpZy1tb2RlIC55dHAtdGltZS1kaXNwbGF5e2xpbmUtaGVpZ2h0OjUzcHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLWRpc3BsYXk6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtmb250LXNpemU6MTRweDttaW4td2lkdGg6MDtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSA4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXRpbWUtZGlzcGxheXtsaW5lLWhlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTtmb250LXNpemU6MTZweDtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtdG9wLWhlaWdodCwyMHB4KSAxMnB4fS55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC10aW1lLWRpc3BsYXktYWxsb3ctYXV0b2hpZGV7ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKil7bWluLXdpZHRoOjA7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKil7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjI4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXRpbWUtd3JhcHBlcntoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICope2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtdGltZS1jdXJyZW50LC55dHAtdGltZS1kdXJhdGlvbiwueXRwLXRpbWUtc2VwYXJhdG9ye2NvbG9yOiNkZGR9Lnl0cC10aW1lLXdyYXBwZXItZGVsaGl7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLWN1cnJlbnR7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtcHJpbWFyeSwjZmZmKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtZHVyYXRpb24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXNlcGFyYXRvcntjb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdGV4dC1wcmltYXJ5LCNmZmYpO2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWxpdmUgLnl0cC10aW1lLWNvbnRlbnRze2Rpc3BsYXk6bm9uZX0qIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6bm9uZTt3aWR0aDphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlLWJhZGdlLC55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLXNtYWxsLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWxpdmUtYmFkZ2V7dGV4dC10cmFuc2Zvcm06bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZSAueXRwLWxpdmUtYmFkZ2UsLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlIC55dHAtbGl2ZS1iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWxpdmUtYmFkZ2U6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O3ZlcnRpY2FsLWFsaWduOjQlO21hcmdpbi1yaWdodDo1cHg7YmFja2dyb3VuZDojNzU3NTc1O2NvbnRlbnQ6IiI7Ym9yZGVyLXJhZGl1czo2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWxpdmUtYmFkZ2U6YmVmb3Jle3dpZHRoOjlweDtoZWlnaHQ6OXB4O2JvcmRlci1yYWRpdXM6OXB4fS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1saXZlLWJhZGdlW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWxpdmUtYmFkZ2VbZGlzYWJsZWRde29wYWNpdHk6MX0ueXRwLWxpdmViYWRnZS1jb2xvciAueXRwLWxpdmUtYmFkZ2UueXRwLWxpdmUtYmFkZ2UtaXMtbGl2ZWhlYWQ6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtYnJhbmQscmdiYSgyMjUsMCw0NSwuOSkpfS55dHAtdGltZS1kaXNwbGF5Lnl0cC1jbGlwe292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24sLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLXNlcGFyYXRvciwueXRwLXRpbWUtY2xpcC1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLC55dHAtY2xpcCAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9yLC55dHAtY2xpcCAueXRwLXRpbWUtY2xpcC1pY29ue2Rpc3BsYXk6aW5saW5lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2xpcCAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctdG9wOjEycHg7bWFyZ2luLWxlZnQ6OHB4O2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtdGltZS1jbGlwLWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6NXB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZS1jbGlwLWljb257bWFyZ2luLWxlZnQ6MH0ueXRwLXRpbWUtY2xpcC1pY29uIHN2Z3t3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21hcmdpbi1ib3R0b206LTNweDtmaWxsOiNkZGR9Lnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLXNlcGFyYXRvcnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjhweDtmb250LXdlaWdodDo3MDB9Lnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZSAueXRwLWxpdmUtYmFkZ2V7d2lkdGg6YXV0b30ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtY29udGVudHN7b3ZlcmZsb3c6aGlkZGVufS55dHAtbm8tbGluayxzcGFuLnl0cC10aXRsZS1jaGFubmVsLW5hbWV7Y3Vyc29yOmRlZmF1bHQ7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXRpdGxle292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC10aXRsZSAueXRwLXRpdGxlLXRleHQsLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLXRvcCAueXRwLXRpdGxlIC55dHAtdGl0bGUtdGV4dCwueXRwLWhpZGUtZnVsbHNjcmVlbi10aXRsZSAueXRwLXRpdGxlIC55dHAtdGl0bGUtdGV4dHtkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS10ZXh0e3ZlcnRpY2FsLWFsaWduOnRvcDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxMnB4O2ZvbnQtc2l6ZToxOHB4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7cGFkZGluZy1sZWZ0OjRweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoxOHB4O2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmctbGVmdDo2cHh9Lnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoyMXB4fS55dHAtc2hvcnRzLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC10aXRsZS10ZXh0e2ZvbnQtc2l6ZToxNnB4O3doaXRlLXNwYWNlOm5vcm1hbDtwYWRkaW5nLXRvcDoxNHB4O3BhZGRpbmctcmlnaHQ6NTNweH0ueXRwLWJpZy1tb2RlLnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDozNnB4fS55dHAtYmlnLW1vZGUueXRwLXNob3J0cy1tb2RlLnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoxN3B4O2ZvbnQtc2l6ZToyM3B4O3BhZGRpbmctcmlnaHQ6NjRweH0ueXRwLXRpdGxlLXRleHQtbGFyZ2VyLWxpbmUtaGVpZ2h0IC55dHAtdGl0bGUtdGV4dHtsaW5lLWhlaWdodDoxLjM1fS55dHAtc2hvcnRzLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC10aXRsZS1saW5re292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC10aXRsZS1zdWJ0ZXh0e2ZvbnQtc2l6ZToxNHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtdGl0bGUtY2hhbm5lbC1uYW1le21hcmdpbi10b3A6LjI1cmVtO2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5KX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtc3VidGV4dHtmb250LXNpemU6MjBweH0ueXRwLXRpdGxlLXN1YnRleHQgYTplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1mdWxsZXJzY3JlZW4tbGlua3tjdXJzb3I6ZGVmYXVsdH0ueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtoZWlnaHQ6MTRweDt3aWR0aDozNnB4O2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDoyMXB4O3dpZHRoOjU0cHg7Ym9yZGVyLXJhZGl1czoyMXB4fS55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtvcGFjaXR5Oi4zfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjojOTA5MDkwfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSBwYXRoe2ZpbGw6IzkwOTA5MH0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JvcmRlci1yYWRpdXM6MDtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtY29udGV4dG1lbnUueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1jb250ZXh0bWVudSAueXRwLW1lbnVpdGVtIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6bm9uZX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRrZ01UWXVNaUEwTGpnZ01USnNMVEV1TkNBeExqUk1PU0F4T1NBeU1TQTNiQzB4TGpRdE1TNDBlaUl2UGp3dmMzWm5QZz09KX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2NvbnRlbnQ6bm9uZX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY29udGV4dG1lbnUgLnl0cC1tZW51aXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOm5vbmU7LW1zLXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfS55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czoyMHB4O21hcmdpbi10b3A6LTNweDtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmQ7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjYpO2JveC1zaGFkb3c6MCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuNik7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXJ7bGVmdDowO2hlaWdodDozMHB4O3dpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czozMHB4O21hcmdpbi10b3A6ZGl2aWRlKHN1YigyMXB4LDMwcHgpLDIpfS55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE2cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KX0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjRweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDI0cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI0cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94LC55dHAtZGVsaGktbW9kZXJuLmJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDoyNHB4O3dpZHRoOjQwcHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveCwueXRwLWRlbGhpLW1vZGVybi5iaWctbW9kZSAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tcHJpbWFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4zKSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbVthcmlhLWRpc2FibGVkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94LC55dHAtZGVsaGktbW9kZXJuLmJpZy1tb2RlIC55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4uYmlnLW1vZGUgLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXJ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXRvcDoycHg7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjcpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveDphZnRlciwueXRwLWRlbGhpLW1vZGVybi5iaWctbW9kZSAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveDphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE2cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KX0ueXRwLXRvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAzO2ZvbnQtc2l6ZToxMTglO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtdG9vbHRpcDpub3QoLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbil7b3BhY2l0eTowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcDpub3QoLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbil7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUgLnl0cC10b29sdGlwe2xpbmUtaGVpZ2h0OjIycHh9Lnl0cC10b29sdGlwOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3e3BhZGRpbmc6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7Ym9yZGVyLXJhZGl1czoycHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlld3tib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlld3std2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldy55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb257b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3Lnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbjpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtvcGFjaXR5OjF9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtdGl0bGV7cGFkZGluZzowIDlweDt0ZXh0LWFsaWduOnN0YXJ0O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10aXRsZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6NXB4IDlweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1iZ3ttYXJnaW46NHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLXRpdGxlIC55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dHttYXJnaW4tbGVmdDo4cHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtdGV4dHtwYWRkaW5nOjAgOXB4O3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6bm9uZX0ueXRwLXRvb2x0aXA6bm90KC55dHAtcHJldmlldykgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JvcmRlci1yYWRpdXM6NHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcDpub3QoLnl0cC1wcmV2aWV3KSAueXRwLXRvb2x0aXAtYm90dG9tLXRleHR7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC10b29sdGlwLWJnLC55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtwYWRkaW5nOjFweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCwueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlIC55dHAtdG9vbHRpcC10aXRsZXtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXByZXZpZXcpIC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItcGlsbHtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjE4cHg7dG9wOjQ1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGUgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLXRpdGxle21hcmdpbi1sZWZ0OjhweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLXRpdGxlOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlOm5vdCgueXRwLXByZXZpZXcpIC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItcGlsbHt0b3A6LTE2cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6MTBweDt0b3A6dW5zZXQ7bWF4LXdpZHRoOnVuc2V0O2hlaWdodDotd2Via2l0LWZpdC1jb250ZW50O2hlaWdodDotbW96LWZpdC1jb250ZW50O2hlaWdodDpmaXQtY29udGVudDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGU6bm90KC55dHAtcHJldmlldykgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntib3R0b206OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGU6bm90KFthcmlhLWhpZGRlbj10cnVlXSkgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntvcGFjaXR5OjF9Lnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxse2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGx7dG9wOjY3cHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtYmd7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMnB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MTJweH0ueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVye2JvcmRlci1yYWRpdXM6M3B4fS55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NXB4O2xlZnQ6MDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO3otaW5kZXg6MX0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXJ7bWFyZ2luOjRweCAwO292ZXJmbG93OmhpZGRlbjttYXgtaGVpZ2h0OjQ2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXJ7bWFyZ2luOjZweCAwO21heC1oZWlnaHQ6NjlweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXIueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue29wYWNpdHk6MDtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXIueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9uIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVyLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbnstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXRleHQtZGV0YWlsKTpub3QoW2FyaWEtaGlkZGVuPXRydWVdKSAueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVyLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntvcGFjaXR5OjF9Lnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjVweCA5cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb24pIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb24pIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtdG9vbHRpcC1vcGFxdWUgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JhY2tncm91bmQtY29sb3I6cmdiKDI4LDI4LDI4KX0ueXRwLXRvb2x0aXAueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6aW5saW5lO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS55dHAtdG9vbHRpcC1pbWFnZS1lbmFibGVkIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtwYWRkaW5nLWxlZnQ6MzRweH0ueXRwLWJpZy1tb2RlIC55dHAtdG9vbHRpcC1pbWFnZS1lbmFibGVkIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtwYWRkaW5nLWxlZnQ6NDVweH0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmc6MH0ueXRwLXRvb2x0aXAtYmd7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmV9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKS55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb246aXMoW2FyaWEtaGlkZGVuPXRydWVdKXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS55dHAtcHJvZ3Jlc3MtYmFyLXNuYXAgLnl0cC10b29sdGlwLWJne291dGxpbmU6MXB4IHNvbGlkICNmZmY7b3V0bGluZS1vZmZzZXQ6LTFweH0ueXRwLXRvb2x0aXAueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJne2Rpc3BsYXk6YmxvY2t9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtYmd7ZmxvYXQ6bGVmdH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAtYmcueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pIC55dHAtdG9vbHRpcC1iZy55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb257b3BhY2l0eToxfS55dHAtdG9vbHRpcC1kdXJhdGlvbntkaXNwbGF5Om5vbmV9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldy55dHAtaGFzLWR1cmF0aW9uIC55dHAtdG9vbHRpcC1kdXJhdGlvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDtib3R0b206M3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7cGFkZGluZzoycHggNHB4O2JvcmRlci1yYWRpdXM6MnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcueXRwLWhhcy1kdXJhdGlvbiAueXRwLXRvb2x0aXAtZHVyYXRpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOiNmZmZ9Lnl0cC10b29sdGlwLXRpdGxle2Rpc3BsYXk6bm9uZX0ueXRwLXRvb2x0aXAtdGl0bGUgc3Zne2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1leHAgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2ZvbnQtc2l6ZToxOHB4fS55dHAtYmlnLW1vZGUueXRwLWZpbmUtc2NydWJiaW5nLWV4cCAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1lZHUgc3Zne2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0cC1maW5lLXNjcnViYmluZy1leHAgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAzJTtoZWlnaHQ6YXV0bztmb250LXNpemU6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWV4cCAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1lZHUgc3ZnLC55dHAtcHJvZ3Jlc3MtYmFyLWRlY29yYXRpb24gLnl0cC10b29sdGlwLXRpdGxlIHN2Z3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O21hcmdpbi1yaWdodDozcHg7ZmlsbDp3aGl0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10aXRsZXt3aWR0aDoyMDAlO3RleHQtYWxpZ246Y2VudGVyO3JpZ2h0OjgwcHg7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7aGVpZ2h0OjE2cHg7Ym9yZGVyOjA7dG9wOjQ1cHg7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSl9Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10aXRsZXt3aWR0aDoyMDAlO3RleHQtYWxpZ246Y2VudGVyO3JpZ2h0OjEyMHB4O3RvcDo2MXB4O2hlaWdodDoyNHB4fS55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JhY2tncm91bmQ6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NDVweDt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLWJpZy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e3RvcDo2NXB4fS55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dHtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLWtleWJvYXJkLXNob3J0Y3V0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zMDE5NjA3ODQzKTttaW4td2lkdGg6MTFweDtib3JkZXItcmFkaXVzOjRweDttYXJnaW4tbGVmdDo0cHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjAgMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dDplbXB0eXtkaXNwbGF5Om5vbmU7d2lkdGg6MH0ueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LW5vLXRpdGxle3RvcDozM3B4fS55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGUueXRwLW1vZGVybi10b29sdGlwLXRleHR7dG9wOjI1cHh9Lnl0cC1iaWctbW9kZSAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LW5vLXRpdGxle3RvcDo0MXB4fS55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwgLnl0cC10b29sdGlwLXRpdGxle2Rpc3BsYXk6YmxvY2s7Y29sb3I6I2FhYTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC10b29sdGlwLWltYWdle3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTt0b3A6MnB4O2xlZnQ6N3B4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW59Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAtaW1hZ2V7d2lkdGg6MjVweDtoZWlnaHQ6MjVweDtib3JkZXItcmFkaXVzOjEyLjVweDt0b3A6M3B4O2xlZnQ6MTBweH0ueXRwLXRvb2x0aXAtaW1hZ2UtZW5hYmxlZCAueXRwLXRvb2x0aXAtaW1hZ2V7ZGlzcGxheTppbmhlcml0fS55dHAtaW5saW5lLXByZXZpZXctbW9kZSAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtYm90dG9tLXRleHR7dG9wOi00cHh9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGUsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGV7dG9wOi00cHh9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWVkdSwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLXVubXV0ZS55dHAtcG9wdXB7cG9zaXRpb246YWJzb2x1dGU7dG9wOnN1Yig0OHB4LDEycHgpO2xlZnQ6MDt6LWluZGV4OjEwMDE7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOiMwMDA7Zm9udC1zaXplOjEyNyU7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjEycHh9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS55dHAtcG9wdXB7dG9wOnN1Yig0OHB4LDE4cHgpO3BhZGRpbmc6MThweH0ueXRwLWF1dG9oaWRlIC55dHAtdW5tdXRlLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLXVubXV0ZXt0b3A6MH0ueXRwLXVubXV0ZS1pbm5lcntwYWRkaW5nLWxlZnQ6M3B4O3BhZGRpbmctcmlnaHQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMTt0ZXh0LXNoYWRvdzpub25lO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS1pbm5lcntwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6MThweH0ueXRwLXVubXV0ZS1pY29ue3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRwLWVtYmVkIC55dHAtdW5tdXRlLWljb257d2lkdGg6NDBweDtoZWlnaHQ6NDBweH0ueXRwLXVubXV0ZS1pY29uIC55dHAtc3ZnLWZpbGx7ZmlsbDojMDAwfS55dHAtdW5tdXRlLXRleHR7bWF4LXdpZHRoOjIwMHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC11bm11dGUueXRwLXBvcHVwLnl0cC11bm11dGUtYW5pbWF0ZWQgLnl0cC11bm11dGUtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOm5vbmU7cGFkZGluZzowfS55dHAtdW5tdXRlLWFuaW1hdGVkIC55dHAtdW5tdXRlLWljb257cGFkZGluZy1sZWZ0OjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTtib3JkZXItcmFkaXVzOjJweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjFmMWYxfS55dHAtdW5tdXRlLWFuaW1hdGVkIC55dHAtdW5tdXRlLWJveHtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMX0ueXRwLXVubXV0ZS1hbmltYXRlZCAueXRwLXVubXV0ZS10ZXh0e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTA7cGFkZGluZy10b3A6MXB4O3BhZGRpbmctcmlnaHQ6MTBweH0ueXRwLXVubXV0ZS1leHBhbmQgLnl0cC11bm11dGUtYm94e3dpZHRoOjA7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIDMuNXMgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtd2lkdGgtYW5pbSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAzLjVzIGZvcndhcmRzfS55dHAtdW5tdXRlLWV4cGFuZCAueXRwLXVubXV0ZS10ZXh0e29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjp5dHAtdW5tdXRlLWFscGhhLWFuaW0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIDMuOHMgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtYWxwaGEtYW5pbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgMy44cyBmb3J3YXJkc30ueXRwLXVubXV0ZS1zaHJpbmsgLnl0cC11bm11dGUtYm94e3dpZHRoOjEwMCU7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIDUuNXMgcmV2ZXJzZSBmb3J3YXJkczthbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIDUuNXMgcmV2ZXJzZSBmb3J3YXJkc30ueXRwLXVubXV0ZS1zaHJpbmsgLnl0cC11bm11dGUtdGV4dHtvcGFjaXR5OjE7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS1hbHBoYS1hbmltIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSA1LjRzIHJldmVyc2UgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtYWxwaGEtYW5pbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSkgNS40cyByZXZlcnNlIGZvcndhcmRzfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdW5tdXRlLXdpZHRoLWFuaW17MCV7d2lkdGg6MH10b3t3aWR0aDoxMDAlfX1Aa2V5ZnJhbWVzIHl0cC11bm11dGUtd2lkdGgtYW5pbXswJXt3aWR0aDowfXRve3dpZHRoOjEwMCV9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdW5tdXRlLWFscGhhLWFuaW17MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyB5dHAtdW5tdXRlLWFscGhhLWFuaW17MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19Lnl0cC11cG5leHR7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3BhY2l0eToxO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjphbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7ei1pbmRleDozOX0ueXRwLXVwbmV4dC10b3B7d2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO2JvdHRvbTo1MCU7bWFyZ2luLWJvdHRvbTo0OHB4fS55dHAtc21hbGwtbW9kZSAueXRwLXVwbmV4dC10b3B7bWFyZ2luLWJvdHRvbToyNnB4fS55dHAtc21hbGwtbW9kZS55dHAtZW1iZWQgLnl0cC11cG5leHQtbW9iaWxlIC55dHAtdXBuZXh0LXRvcHttYXJnaW4tYm90dG9tOjB9Lnl0cC11cG5leHQtYm90dG9te3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt0b3A6NTAlO21hcmdpbi10b3A6NDhweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtYm90dG9te21hcmdpbi10b3A6MjZweH0ueXRwLXNtYWxsLW1vZGUueXRwLWVtYmVkIC55dHAtdXBuZXh0LW1vYmlsZSAueXRwLXVwbmV4dC1ib3R0b217bWFyZ2luLXRvcDo0OHB4fS55dHAtdXBuZXh0LXRpdGxle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDEwcHggMnB4O21hcmdpbi1sZWZ0OjMycHg7bWFyZ2luLXJpZ2h0OjMycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjIwMCU7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc21hbGwtbW9kZSAueXRwLXVwbmV4dC10aXRsZXtmb250LXNpemU6MTUwJX0ueXRwLXVwbmV4dC1hdXRob3J7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDEwcHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMzAlfS55dHAtdXBuZXh0LWhlYWRlcntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNDAlO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctYm90dG9tOjhweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtaGVhZGVye3BhZGRpbmctYm90dG9tOjB9Lnl0cC11cG5leHQtY2FuY2Vse2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLXVwbmV4dC1jYW5jZWwtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0Om5vbmU7cGFkZGluZzoxMHB4IDIwcHg7Zm9udC1zaXplOjE0MCU7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLXVwbmV4dC1jYW5jZWwtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO2JvcmRlci1yYWRpdXM6MnB4fS55dHAtdXBuZXh0LWF1dG9wbGF5LWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt3aWR0aDo2NHB4O2hlaWdodDo2NHB4O21hcmdpbjotMzJweCAwIDAgLTMycHg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtYXV0b3BsYXktaWNvbnt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O21hcmdpbjotMjVweCAwIDAgLTI1cHh9Lnl0cC1zbWFsbC1tb2RlLnl0cC1lbWJlZCAueXRwLXVwbmV4dC1tb2JpbGUgLnl0cC11cG5leHQtYXV0b3BsYXktaWNvbnttYXJnaW4tdG9wOjB9Lnl0cC1lbWJlZCAueXRwLWVuZHNjcmVlbi10YWtlb3Zlcn4ueXRwLXJlcGxheS1idXR0b257ZGlzcGxheTpub25lfS55dHAtdXBuZXh0LXBhdXNlZHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMjAlO2ZvbnQtc3R5bGU6aXRhbGljO29wYWNpdHk6MH0ueXRwLXVwbmV4dC1hdXRvcGxheS1wYXVzZWQgLnl0cC11cG5leHQtcGF1c2Vke29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtdXBuZXh0IC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtvcGFjaXR5Oi40fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXktaW1hZ2V7b3BhY2l0eTouNjR9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdXBuZXh0IC55dHAtdXBuZXh0LXRvcHt0b3A6MDttYXJnaW46MTJweCAwIDAgMTJweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtYXV0aG9yLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1oZWFkZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdXBuZXh0IC55dHAtdXBuZXh0LXRpdGxle3RleHQtYWxpZ246bGVmdDttYXJnaW4tYm90dG9tOjRweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtYXV0aG9yLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1oZWFkZXJ7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO3BhZGRpbmc6MH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtdGl0bGV7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmY7cGFkZGluZzowIDc1cHggMCAwfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1hdXRvcGxheS1pY29ue3dpZHRoOjYycHg7aGVpZ2h0OjYycHg7bWFyZ2luOi0zMXB4IDAgMCAtMzFweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtY2FuY2VsLWJ1dHRvbiwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtcGF1c2Vke2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtY2FuY2VsLWJ1dHRvbntwYWRkaW5nOjhweDttYXJnaW4tdG9wOjhweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXVwbmV4dC1hdXRvcGxheS1pY29ue3dpZHRoOjE0NnB4O2hlaWdodDoxNDZweDttYXJnaW46LTczcHggMCAwIC03M3B4fS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtdXBuZXh0LWJvdHRvbXttYXJnaW4tdG9wOjc2cHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC11cG5leHQtdG9we21hcmdpbi1ib3R0b206NzZweH0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LXRvcHttYXJnaW4tYm90dG9tOjA7Ym90dG9tOjUwJX0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LWF1dG9wbGF5LWljb257dG9wOjYwJX0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LWJvdHRvbXttYXJnaW4tdG9wOjA7dG9wOjcwJX0ueXRwLXVzZXItaW5mby1wYW5lbHtiYWNrZ3JvdW5kOnJnYmEoMjgsMjgsMjgsLjgpO2NvbG9yOiNmZmY7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyOTJweDtoZWlnaHQ6NzRweDtib3R0b206MDt6LWluZGV4OjgwO21pbi13aWR0aDoyNmVtO2Rpc3BsYXk6dGFibGV9Lnl0cC11c2VyLWluZm8tcGFuZWwgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MjBweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIwcHg7dG9wOjEycHg7d2lkdGg6MjBweH0ueXRwLXVzZXItaW5mby1wYW5lbCAueXRwLWNvbGxhcHNlOmhvdmVye29wYWNpdHk6MX0ueXRwLXVzZXItaW5mby1wYW5lbC1jb250ZW50e2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzoxNHB4IDA7Zm9udC1zaXplOjE2cHh9Lnl0cC11c2VyLWluZm8tcGFuZWwtY29udGVudD5kaXY+ZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjAgLjVlbTt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjEwZW19Lnl0cC11c2VyLWluZm8tcGFuZWwtaWNvbntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI0cHg7cGFkZGluZzowIDE0cHh9Lnl0cC11c2VyLWluZm8tcGFuZWwtbG9naW57Y29sb3I6IzNlYTZmZjtjdXJzb3I6cG9pbnRlcn0ueXRwLXVzZXItaW5mby1wYW5lbC1pbmZve21heC13aWR0aDoyMDBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC12aWRlby1tZW51LWl0ZW17ZGlzcGxheTpibG9jaztoZWlnaHQ6NDRweDtwYWRkaW5nOjEwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXZpZGVvLW1lbnUtaXRlbXtoZWlnaHQ6NjZweDtwYWRkaW5nOjE1cHh9Lnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC12aWRlby1tZW51LWl0ZW06aG92ZXIsLnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpfS55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4LC55dHAtdmlkZW8tbWVudS1pdGVtLW5vdy1wbGF5aW5ne3BhZGRpbmctcmlnaHQ6OXB4O21pbi13aWR0aDoxMHB4O2hlaWdodDo0NHB4O2xpbmUtaGVpZ2h0OjQ0cHg7ZmxvYXQ6bGVmdH0ueXRwLWJpZy1tb2RlIC55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4LC55dHAtYmlnLW1vZGUgLnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7cGFkZGluZy1yaWdodDoxM3B4O2hlaWdodDo2NnB4O2xpbmUtaGVpZ2h0OjY2cHh9Lnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7ZGlzcGxheTpub25lO2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tc3RhdGljLWJyYW5kLXJlZCwjZjAzKX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtdmlkZW8tbWVudS1pdGVtLW5vdy1wbGF5aW5ne2NvbG9yOiNkZGR9Lnl0cC1jb2xvci1wYXJ0eSAueXRwLXZpZGVvLW1lbnUtaXRlbS1ub3ctcGxheWluZ3std2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktY29sb3IgLjE1cyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnl0cC1wYXJ0eS1jb2xvciAuMTVzIGxpbmVhciBpbmZpbml0ZX0ueXRwLXZpZGVvLW1lbnUtaXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7ZGlzcGxheTppbmxpbmV9Lnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4e2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvLW1lbnUtaXRlbS10aXRsZXtwYWRkaW5nLWxlZnQ6OXB4O2ZvbnQtc2l6ZToxMjAlO21heC1oZWlnaHQ6Mi42ZW07b3ZlcmZsb3c6aGlkZGVufS55dHAtdmlkZW8tbWVudS1pdGVtLWF1dGhvcntwYWRkaW5nLWxlZnQ6OXB4O2NvbG9yOiNiOGI4Yjg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse2Zsb2F0OmxlZnQ7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDttYXJnaW46NHB4O2JvcmRlcjowIHNvbGlkIHZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tc3RhdGljLWJyYW5kLXJlZCwjZjAzKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTZweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo2NHB4IDQ4cHg7YmFja2dyb3VuZC1zaXplOjY0cHggNDhweH0ueXRwLWNvbG9yLXdoaXRlIC55dHAtdmlkZW8tbWVudS1pdGVtLXRodW1ibmFpbHtib3JkZXItY29sb3I6I2RkZH0ueXRwLWNvbG9yLXBhcnR5IC55dHAtdmlkZW8tbWVudS1pdGVtLXRodW1ibmFpbHstd2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvciAuMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvciAuMXMgbGluZWFyIGluZmluaXRlfS55dHAtYmlnLW1vZGUgLnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse3dpZHRoOjk2cHg7aGVpZ2h0OjU0cHg7bWFyZ2luOjZweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTlweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5NnB4IDcycHg7YmFja2dyb3VuZC1zaXplOjk2cHggNzJweH0ueXRwLXZpZGVvLW1lbnUtaXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse21hcmdpbjoycHg7Ym9yZGVyLXdpZHRoOjJweH0ueXRwLWJpZy1tb2RlIC55dHAtdmlkZW8tbWVudS1pdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLXZpZGVvLW1lbnUtaXRlbS10aHVtYm5haWx7bWFyZ2luOjRweH0ueXRwLXZpZGVvd2FsbC1zdGlsbHtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOnRvcDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC4xKTstbXMtdHJhbnNmb3JtOnNjYWxlKC4xKTt0cmFuc2Zvcm06c2NhbGUoLjEpfS55dHAtc2hvdy10aWxlcyAueXRwLXZpZGVvd2FsbC1zdGlsbHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1hdXRob3IsLnl0cC12aWRlb3dhbGwtc3RpbGwtbWluaSAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWR1cmF0aW9uLC55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1saXZle2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvd2FsbC1zdGlsbFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntkaXNwbGF5Om5vbmV9Lnl0cC12aWRlb3dhbGwtc3RpbGxbZGF0YS1pcy1saXZlPXRydWVdIC55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtkaXNwbGF5OmJsb2NrfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgsLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7ZGlzcGxheTpub25lO2hlaWdodDoyLjE1ZW07cGFkZGluZy1yaWdodDoxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLW1peCwueXRwLXZpZGVvd2FsbC1zdGlsbC1taW5pIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1yZWd1bGFye2ZvbnQtc2l6ZToxMDAlfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjJhV1YzUW05NFBTSXdJREFnTXpZZ016WWlQangxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM2wwY0MxemRtY3RjR3hoZVd4cGMzUWlJSE4wY205clpUMGlJekF3TUNJZ2MzUnliMnRsTFc5d1lXTnBkSGs5SWk0eE5TSWdjM1J5YjJ0bExYZHBaSFJvUFNJeUlpOCtQSEJoZEdnZ2FXUTlJbmwwY0MxemRtY3RjR3hoZVd4cGMzUWlJR1pwYkd3OUlpTm1abVlpSUdROUlrMHlNaTQxTXlBeU1TNDBNblkyTGpnMWJEVXVOall0TXk0ME1pMDFMalkyTFRNdU5ESjZiUzB4TVM0ek15QXdhRGt1TURaMk1pNHlPRWd4TVM0eWVtMHdMVGt1TVRSb01UTXVObll5TGpJNFNERXhMako2YlRBZ05DNDFOMmd4TXk0MmRqSXVNamhJTVRFdU1ub2lMejQ4TDNOMlp6ND0pO3dpZHRoOjIuMTVlbTtoZWlnaHQ6Mi4xNWVtfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyYVdWM1FtOTRQU0l3SURBZ016WWdNellpUGp4MWMyVWdlR3hwYm1zNmFISmxaajBpSTNsMGNDMXpkbWN0YldsNElpQnpkSEp2YTJVOUlpTXdNREFpSUhOMGNtOXJaUzF2Y0dGamFYUjVQU0l1TVRVaUlITjBjbTlyWlMxM2FXUjBhRDBpTWlJdlBqeHdZWFJvSUdsa1BTSjVkSEF0YzNabkxXMXBlQ0lnWm1sc2JEMGlJMlptWmlJZ1pEMGlUVEkxTGpZMUlERTRZeTB1TURJZ01pNHpNUzB1T0RjZ05DNDBNUzB5TGpJMUlEWXVNRFpzTGprdU9UUmpNUzQyT1MweExqZ2dNaTQzTFRRdU1qY2dNaTQzTFRkekxURXVNREV0TlM0eU1TMHlMamN0TjJ3dExqa3VPVE5CT1M0MU5DQTVMalUwSURBZ01DQXhJREkxTGpZMUlERTRiUzB4TlM0eklEQmpMakF4TFRJdU16SXVPRFl0TkM0ME1pQXlMakkxTFRZdU1EZHNMUzQ1TFM0NU0wTXhNQ0F4TWk0M09TQTVJREUxTGpJM0lEa2dNVGh6TVNBMUxqSWdNaTQzSURkc0xqa3RMamswWXkweExqTTVMVEV1TmpVdE1pNHlOQzB6TGpjMUxUSXVNalV0Tmk0d05tMHlMamNnTUdNdExqQTBMVEV1TnpNdU5Ea3RNeTR3T1NBeExqTTFMVFF1TW13dExqa3RMamswWXkweExqRXpJREV1TWpZdE1TNDRJREl1T1RrdE1TNDRJRFV1TVRRZ01DQXhMalkzTGpZM0lETXVOQ0F4TGpnZ05DNDJObXd1T1MwdU9UTmpMUzQ0TmkweExqRXlMVEV1TXprdE1pNDBOeTB4TGpNMUxUTXVOek50T1MwMUxqRTBMUzQ1TGprMFl5NDROU0F4TGpFeElERXVNemdnTWk0ME55QXhMak0xSURRdU1pNHdNeUF4TGpJMkxTNDFJREl1TmpFdE1TNHpOU0F6TGpjemJDNDVMamt6WXpFdU1USXRNUzR5TmlBeExqZ3RNaTQ1T1NBeExqZ3ROQzQyTmlBd0xUSXVNVFV0TGpZNExUTXVPRGd0TVM0NExUVXVNVFJ0TFRVdU5UVWdNaTQ0SURNdU5pQXhMamczTFRNdU5pQXlMak16ZWlJdlBqd3ZjM1puUGc9PSk7d2lkdGg6Mi4xNWVtO2hlaWdodDoyLjE1ZW19Lnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLWxlbmd0aHtmb250LXdlaWdodDo0MDB9Lnl0cC12aWRlb3dhbGwtc3RpbGwtbWluaSAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbGVuZ3Roe2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvd2FsbC1zdGlsbDpmb2N1cyAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbWl4LC55dHAtdmlkZW93YWxsLXN0aWxsOmZvY3VzIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1yZWd1bGFyLC55dHAtdmlkZW93YWxsLXN0aWxsOmhvdmVyIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgsLnl0cC12aWRlb3dhbGwtc3RpbGw6aG92ZXIgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS55dHAtdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbGlzdD10cnVlXTpub3QoW2RhdGEtaXMtbWl4PXRydWVdKSAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtcmVndWxhcntkaXNwbGF5OmJsb2NrfS55dHAtdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbWl4PXRydWVdIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXh7ZGlzcGxheTpibG9ja30ueXRwLXZpZGVvd2FsbC1zdGlsbC1pbWFnZXstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbC1yb3VuZC1sYXJnZSAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbWFnZXtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtcm91bmQtbWVkaXVtIC55dHAtdmlkZW93YWxsLXN0aWxsLWltYWdle2JvcmRlci1yYWRpdXM6OHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLXJvdW5kLWxhcmdlIC55dHAtdmlkZW93YWxsLXN0aWxsLWltYWdle2JvcmRlci1yYWRpdXM6NHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tYXV0aG9ye2Zsb2F0OmxlZnQ7bWFyZ2luLXRvcDoycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMTIsMTIsMTIsLjgpLHRyYW5zcGFyZW50IDEwMHB4KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgxMiwxMiwxMiwuOCkgMCx0cmFuc3BhcmVudCAxMDBweCk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO2JvdHRvbTowO2NvbG9yOiNmZmY7bGVmdDowO29wYWNpdHk6MDtwYWRkaW5nOjEwcHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbC55dHAtdmlkZW93YWxsLXNob3ctdGV4dCAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWNvbnRlbnQsLnl0cC12aWRlb3dhbGwtc3RpbGw6Zm9jdXMgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1jb250ZW50LC55dHAtdmlkZW93YWxsLXN0aWxsOmhvdmVyIC55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tY29udGVudHtvcGFjaXR5OjF9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjJweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi43NTtwYWRkaW5nOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1saXZle2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtYnJhbmQscmdiYSgyMjUsMCw0NSwuOSkpO2JvcmRlci1yYWRpdXM6MnB4O2JvdHRvbToycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7b3BhY2l0eTouOTtwYWRkaW5nOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoycHg7ZGlzcGxheTpub25lO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLXRpdGxle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjExOCU7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjttYXgtaGVpZ2h0OjMwcHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtYmlnLW1vZGUgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby10aXRsZXtmb250LXdlaWdodDo0MDA7bWF4LWhlaWdodDo0OHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjg2KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbDpmb2N1cyAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwsLnl0cC12aWRlb3dhbGwtc3RpbGw6aG92ZXIgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVse2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuODYpfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1ib3R0b206MTZweDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtmb250LXNpemU6MTFweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mb3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1zaG93LXRpbGVzIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb257ZGlzcGxheTpub25lfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbWl4LC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtcmVndWxhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjIuMTVlbTtwYWRkaW5nLXJpZ2h0OjEwcHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyYVdWM1FtOTRQU0l3SURBZ016WWdNellpUGp4MWMyVWdlR3hwYm1zNmFISmxaajBpSTNsMGNDMXpkbWN0Y0d4aGVXeHBjM1FpSUhOMGNtOXJaVDBpSXpBd01DSWdjM1J5YjJ0bExXOXdZV05wZEhrOUlpNHhOU0lnYzNSeWIydGxMWGRwWkhSb1BTSXlJaTgrUEhCaGRHZ2dhV1E5SW5sMGNDMXpkbWN0Y0d4aGVXeHBjM1FpSUdacGJHdzlJaU5tWm1ZaUlHUTlJazB5TWk0MU15QXlNUzQwTW5ZMkxqZzFiRFV1TmpZdE15NDBNaTAxTGpZMkxUTXVOREo2YlMweE1TNHpNeUF3YURrdU1EWjJNaTR5T0VneE1TNHllbTB3TFRrdU1UUm9NVE11Tm5ZeUxqSTRTREV4TGpKNmJUQWdOQzQxTjJneE15NDJkakl1TWpoSU1URXVNbm9pTHo0OEwzTjJaejQ9KTt3aWR0aDoyLjE1ZW07aGVpZ2h0OjIuMTVlbX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLW1peC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjJhV1YzUW05NFBTSXdJREFnTXpZZ016WWlQangxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM2wwY0MxemRtY3RiV2w0SWlCemRISnZhMlU5SWlNd01EQWlJSE4wY205clpTMXZjR0ZqYVhSNVBTSXVNVFVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNaUl2UGp4d1lYUm9JR2xrUFNKNWRIQXRjM1puTFcxcGVDSWdabWxzYkQwaUkyWm1aaUlnWkQwaVRUSTFMalkxSURFNFl5MHVNRElnTWk0ek1TMHVPRGNnTkM0ME1TMHlMakkxSURZdU1EWnNMamt1T1RSak1TNDJPUzB4TGpnZ01pNDNMVFF1TWpjZ01pNDNMVGR6TFRFdU1ERXROUzR5TVMweUxqY3ROMnd0TGprdU9UTkJPUzQxTkNBNUxqVTBJREFnTUNBeElESTFMalkxSURFNGJTMHhOUzR6SURCakxqQXhMVEl1TXpJdU9EWXROQzQwTWlBeUxqSTFMVFl1TURkc0xTNDVMUzQ1TTBNeE1DQXhNaTQzT1NBNUlERTFMakkzSURrZ01UaHpNU0ExTGpJZ01pNDNJRGRzTGprdExqazBZeTB4TGpNNUxURXVOalV0TWk0eU5DMHpMamMxTFRJdU1qVXROaTR3Tm0weUxqY2dNR010TGpBMExURXVOek11TkRrdE15NHdPU0F4TGpNMUxUUXVNbXd0TGprdExqazBZeTB4TGpFeklERXVNall0TVM0NElESXVPVGt0TVM0NElEVXVNVFFnTUNBeExqWTNMalkzSURNdU5DQXhMamdnTkM0Mk5td3VPUzB1T1ROakxTNDROaTB4TGpFeUxURXVNemt0TWk0ME55MHhMak0xTFRNdU56TnRPUzAxTGpFMExTNDVMamswWXk0NE5TQXhMakV4SURFdU16Z2dNaTQwTnlBeExqTTFJRFF1TWk0d015QXhMakkyTFM0MUlESXVOakV0TVM0ek5TQXpMamN6YkM0NUxqa3pZekV1TVRJdE1TNHlOaUF4TGpndE1pNDVPU0F4TGpndE5DNDJOaUF3TFRJdU1UVXRMalk0TFRNdU9EZ3RNUzQ0TFRVdU1UUnRMVFV1TlRVZ01pNDRJRE11TmlBeExqZzNMVE11TmlBeUxqTXplaUl2UGp3dmMzWm5QZz09KTt3aWR0aDoyLjE1ZW07aGVpZ2h0OjIuMTVlbX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLWxlbmd0aHtmb250LXdlaWdodDo0MDB9Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbGlzdD10cnVlXTpub3QoW2RhdGEtaXMtbWl4PXRydWVdKSAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7ZGlzcGxheTpibG9ja30ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGxbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXh7ZGlzcGxheTpibG9ja30ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW1hZ2V7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjhweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDhweCB2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSk7Ym94LXNoYWRvdzowIDAgMCA4cHggdmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6OHB4fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIpOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCA4cHggdmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyKTtib3gtc2hhZG93OjAgMCAwIDhweCB2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIpO2JvcmRlci1yYWRpdXM6OHB4fUBzdXBwb3J0cyAoYXNwZWN0LXJhdGlvOjEvMSl7Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWltYWdle2FzcGVjdC1yYXRpbzoxNi85fX1Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86MS8xKXsueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW1hZ2V7aGVpZ2h0OjA7cGFkZGluZy1ib3R0b206NTYuMjUlfX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mb3ttYXJnaW4tdG9wOjhweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby1hdXRob3I6bm90KDplbXB0eSl7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOjEzMCU7bWF4LWhlaWdodDoyMHB4O292ZXJmbG93OmhpZGRlbjtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtdmlldy1jb3VudC1hbmQtZGF0ZS1pbmZvOm5vdCg6ZW1wdHkpe2ZvbnQtc2l6ZToxMzAlO21heC1oZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWF1dGhvciwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWF1dGhvcnttYXgtaGVpZ2h0OnVuc2V0fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWNvbnRlbnR7Y29sb3I6I2ZmZjt3aWR0aDoxMDAlO29wYWNpdHk6MTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb24sLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206OHB4O3JpZ2h0OjhweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi43NTtwYWRkaW5nOjJweDtmb250LXNpemU6MTIwJX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntiYWNrZ3JvdW5kOiMwMDA7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6Ljc1fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWxpdmV7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1icmFuZCxyZ2JhKDIyNSwwLDQ1LC45KSk7b3BhY2l0eTouOTtkaXNwbGF5Om5vbmU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDpub3QoW2RhdGEtaXMtbGl2ZT10cnVlXSkgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtkaXNwbGF5Om5vbmV9Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb246ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLXRpdGxlOm5vdCg6ZW1wdHkpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2ZvbnQtc2l6ZToxNTAlO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjI7bWF4LWhlaWdodDo0MHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tdGl0bGUsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby10aXRsZXttYXgtaGVpZ2h0OnVuc2V0fS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyNHB4IDE2cHggMTZweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1jb250ZW50IC55dHAtaW5wdXQtc2xpZGVyLXNlY3Rpb257LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjF9Lnl0cC1zcGVlZC1kaXNwbGF5LWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjI0cHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1kaXNwbGF5e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6OTAwO2xpbmUtaGVpZ2h0OjIycHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1zbGlkZXItY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2dhcDoxNnB4O21hcmdpbi1ib3R0b206MjRweH0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLXNsaWRlci1jb250YWluZXIgLnl0cC1pbnB1dC1zbGlkZXJ7d2lkdGg6MTAwJX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLWNoaXBze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2dhcDo4cHg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1idXR0b257Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtjb2xvcjojZmZmO2hlaWdodDozMnB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6MTZweDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtY2hpcHMgLnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1idXR0b257Zm9udC1zaXplOjEycHg7d2lkdGg6NTNweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1zbGlkZXItY29udGFpbmVyIC55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O3dpZHRoOjMycHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1jb250ZW50IC55dHAtc3BlZWRzbGlkZXItaW5kaWNhdG9yLWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1wcmVzZXQtYnV0dG9uLXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1wcmVzZXQtYnV0dG9uLWxhYmVsLXRleHR7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MTRweDttYXJnaW4tdG9wOjRweDtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjcpKX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLXByZW1pdW0tdXBzZWxsLWljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ2RtbGxkMEp2ZUQwaUxUSWdMVElnTWpRZ01qUWlQanh3WVhSb0lHWnBiR3c5SWlOak1EQWlJR1E5SWswd0lERXVORE5ETUNBdU5qUXVOalFnTUNBeExqUXpJREJvTVRjdU1UTkRNVGt1TXpVZ01DQXlNQ0F1TmpRZ01qQWdNUzQwTTNZeE55NHhNMk13SUM0M09TMHVOalVnTVM0ME5DMHhMalEwSURFdU5EUklNUzQwTTBNdU5qUWdNakFnTUNBeE9TNHpOU0F3SURFNExqVTJXbTB3SURBaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTnk0NE9DQXhNUzQwTW5ZMExqSTVTRFV1TXpkV015NDFNbWcwTGpjMVl5NDVNaUF3SURFdU56SXVNVGNnTWk0ME1pNDFMalk1TGpNMElERXVNakl1T0RFZ01TNDJJREV1TkRNdU16Y3VOakl1TlRZZ01TNHpNaTQxTmlBeUxqRXhJREFnTVM0eE9TMHVOREVnTWk0eE15MHhMakl5SURJdU9ESXRMamd5TGpZNUxURXVPVFVnTVM0d05DMHpMalFnTVM0d05GcHRNQzB5TGpBMGFESXVNalJqTGpZM0lEQWdNUzR4T0MwdU1UVWdNUzQxTWkwdU5EY3VNelV0TGpNeExqVXpMUzQzTlM0MU15MHhMak0wY3kwdU1UZ3RNUzR3TnkwdU5UTXRNUzQwTldNdExqTTFMUzR6TmkwdU9EUXRMalUxTFRFdU5EWXRMalUyYUMweUxqTmFiVEFnTUNJdlBqd3ZjM1puUGc9PSk7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtcHJlbWl1bS1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMDAlO21hcmdpbi1yaWdodDo4cHg7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjRweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ2RtbGxkMEp2ZUQwaUxUSWdMVElnTWpRZ01qUWlQanh3WVhSb0lHWnBiR3c5SWlOak1EQWlJR1E5SWswd0lERXVORE5ETUNBdU5qUXVOalFnTUNBeExqUXpJREJvTVRjdU1UTkRNVGt1TXpVZ01DQXlNQ0F1TmpRZ01qQWdNUzQwTTNZeE55NHhNMk13SUM0M09TMHVOalVnTVM0ME5DMHhMalEwSURFdU5EUklNUzQwTTBNdU5qUWdNakFnTUNBeE9TNHpOU0F3SURFNExqVTJXbTB3SURBaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTnk0NE9DQXhNUzQwTW5ZMExqSTVTRFV1TXpkV015NDFNbWcwTGpjMVl5NDVNaUF3SURFdU56SXVNVGNnTWk0ME1pNDFMalk1TGpNMElERXVNakl1T0RFZ01TNDJJREV1TkRNdU16Y3VOakl1TlRZZ01TNHpNaTQxTmlBeUxqRXhJREFnTVM0eE9TMHVOREVnTWk0eE15MHhMakl5SURJdU9ESXRMamd5TGpZNUxURXVPVFVnTVM0d05DMHpMalFnTVM0d05GcHRNQzB5TGpBMGFESXVNalJqTGpZM0lEQWdNUzR4T0MwdU1UVWdNUzQxTWkwdU5EY3VNelV0TGpNeExqVXpMUzQzTlM0MU15MHhMak0wY3kwdU1UZ3RNUzR3TnkwdU5UTXRNUzQwTldNdExqTTFMUzR6TmkwdU9EUXRMalUxTFRFdU5EWXRMalUyYUMweUxqTmFiVEFnTUNJdlBqd3ZjM1puUGc9PSk7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGxpbmVhcix2aXNpYmlsaXR5IDBzIGxpbmVhciAuMXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBsaW5lYXIsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjFzfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtcHJlbWl1bS1iYWRnZS12aXNpYmxle29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzO3RyYW5zaXRpb24tZGVsYXk6MHN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC12b2x1bWUtcG9wb3Zlcnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjIycHg7cGFkZGluZzoxMnB4IDEwcHg7bWFyZ2luLWJvdHRvbTowOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXZvbHVtZS1wb3BvdmVyey13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO2JvdHRvbTp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KX1Ac3VwcG9ydHMgKCgtd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkgb3IgKHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkpey55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXItc2VjdGlvbi55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVye2hlaWdodDo5NnB4fX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXZvbHVtZS1wb3BvdmVyIC55dHAtaW5wdXQtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuOCk7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuOCk7bWFyZ2luLXJpZ2h0Oi01cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC12b2x1bWUtcG9wb3ZlciAueXRwLWlucHV0LXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi1tcy10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNre3dpZHRoOjJweDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi1tb3otcmFuZ2UtdHJhY2t7d2lkdGg6MnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC5zZWVraW5nLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIueXRwLXZvbHVtZS1wb3BvdmVyLWhvdmVyaW5ne3Zpc2liaWxpdHk6dmlzaWJsZTttYXJnaW4tYm90dG9tOjhweDstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC12b2x1bWUtcG9wb3ZlcntsZWZ0Oi00cHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuOm5vdCguc2Vla2luZy1tb2RlKSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXN0YW5kYWxvbmUtbXV0ZS1idXR0b24gLnl0cC12b2x1bWUtcG9wb3ZlcntsZWZ0OjRweH0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm46bm90KC5zZWVraW5nLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXJ7Ym90dG9tOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtdm9sdW1lLXBhbmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9Lnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scy55dHAtdm9sdW1lLXBhbmVsey13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC12b2x1bWUtcGFuZWx7d2lkdGg6NTJweDttYXJnaW4tcmlnaHQ6M3B4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scy55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC12b2x1bWUtcGFuZWx7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246bWFyZ2luIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItYWN0aXZlIC55dHAtdm9sdW1lLXBhbmVse3dpZHRoOjc4cHg7bWFyZ2luLXJpZ2h0OjVweH0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtdm9sdW1lLXBhbmVsOmZvY3Vzey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtYmlnLW1vZGUgLnl0cC12b2x1bWUtc2xpZGVye21pbi1oZWlnaHQ6NTRweH0ueXRwLXZvbHVtZS1zbGlkZXJ7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDozNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0ueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tdG9wOi02cHg7YmFja2dyb3VuZDojZmZmfS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZXstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxle3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo5cHg7bWFyZ2luLXRvcDotOXB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGV7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDttYXJnaW4tdG9wOi02cHg7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDo1MCU7bGVmdDowO2hlaWdodDozcHg7bWFyZ2luLXRvcDotMnB4O3dpZHRoOjY0cHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZSwueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZXtoZWlnaHQ6MnB4O21hcmdpbi10b3A6LTFweH0ueXRwLWJpZy1tb2RlIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZXtoZWlnaHQ6NHB4O21hcmdpbi10b3A6LTJweDt3aWR0aDo5NnB4fS55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YmVmb3Jle2xlZnQ6LTU4cHg7YmFja2dyb3VuZDojZmZmfS55dHAtYmlnLW1vZGUgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7bGVmdDotODdweH0ueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6NnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6OXB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9Lnl0cC13YXRjaC1vbi15b3V0dWJlLWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MWVtfS55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b257Ym9yZGVyLXJhZGl1czoyOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyk7Zm9udDo1MDAgMTZweC8xNnB4IFlvdVR1YmUgTm90byxSb2JvdG8sQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC40cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjRzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtY29udGludWUtd2F0Y2hpbmctYnV0dG9uLnl0cC13YXRjaC1vbi15b3V0dWJlLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBmMGYwZn0ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1jb250aW51ZS13YXRjaGluZy1idXR0b24ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U1ZTVlNTtjb2xvcjojMGYwZjBmfS55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b246Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZX0ueXRwLWNvbnRpbnVlLXdhdGNoaW5nLWJ1dHRvbi55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b246Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBmMGYwZn0ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOTQpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjk0KTt0cmFuc2Zvcm06c2NhbGUoLjk0KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9LndhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS53YXRjaC1hZ2Fpbi1vbi15b3V0dWJlLWVuZHNjcmVlbnstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRwLXdhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVuLW1vcmUtdmlkZW9zLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1hZ2Fpbi1vbi15b3V0dWJlLWVuZHNjcmVlbi1tb3JlLXZpZGVvcy1jb250YWluZXIgLnl0cC1tb3JlLXZpZGVvcy12aWV3e2JvdHRvbTp1bnNldH0ueXRwLXdhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVuLW1vcmUtdmlkZW9zLWNvbnRhaW5lciAueXRwLW1vcmUtdmlkZW9zLXZpZXd7Ym9yZGVyLXJhZGl1czoycHg7ZGlyZWN0aW9uOmx0cjttYXJnaW46MTJweDtiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjkpO3BhZGRpbmc6MTJweCAxNnB4IDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1zaG93LXdhdGNoLWxhdGVyLXRpdGxlLnl0cC13YXRjaC1sYXRlci1idXR0b257bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hvdy13YXRjaC1sYXRlci10aXRsZS55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci1idXR0b24sLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue3dpZHRoOmF1dG87aGVpZ2h0OmF1dG99Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue21pbi13aWR0aDo0OHB4O21heC13aWR0aDo4MHB4fS55dHAtd2F0Y2gtbGF0ZXItaWNvbnttYXJnaW46YXV0bzt3aWR0aDozNnB4O2hlaWdodDozNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLXdhdGNoLWxhdGVyLWljb257d2lkdGg6NjBweDtoZWlnaHQ6NjBweDttYXJnaW4tYm90dG9tOjEwcHh9Lnl0cC13YXRjaC1sYXRlci10aXRsZXtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci10aXRsZSwueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtd2F0Y2gtbGF0ZXItdGl0bGV7Zm9udC1zaXplOjIwcHh9Lnl0cC1zaG93LXdhdGNoLWxhdGVyLXRpdGxlIC55dHAtd2F0Y2gtbGF0ZXItdGl0bGV7ZGlzcGxheTpibG9ja30uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWJpZy1tb2RlKSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci10aXRsZXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRwLXdhdGNoLWxhdGVyLWljb24gLnl0cC1zcGlubmVyLWNvbnRhaW5lcnt3aWR0aDoyMHB4O3BhZGRpbmctYm90dG9tOjIwcHg7bWFyZ2luLXRvcDotMTBweDttYXJnaW4tbGVmdDotMTBweH0ueXRwLWJpZy1tb2RlIC55dHAtd2F0Y2gtbGF0ZXItaWNvbiAueXRwLXNwaW5uZXItY29udGFpbmVye3dpZHRoOjM1cHg7cGFkZGluZy1ib3R0b206MzVweDttYXJnaW4tdG9wOi0xNy41cHg7bWFyZ2luLWxlZnQ6LTE3LjVweH0ueXRwLXdhdGNoLWxhdGVyLWljb24gLnl0cC1zcGlubmVyLWNpcmNsZXtib3JkZXItd2lkdGg6M3B4fS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci1pY29uIC55dHAtc3Bpbm5lci1jaXJjbGV7Ym9yZGVyLXdpZHRoOjVweH0ud2ViZ2x7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjExO3dpZHRoOjEwMCV9LmVuZGVkLW1vZGUgLndlYmdse2Rpc3BsYXk6bm9uZX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24sLnl0cC1kbmkueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9ue3dpZHRoOjY3cHh9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24ueXRwLXlvdXR1YmUtbXVzaWMtYnV0dG9ue3dpZHRoOjEyMHB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9uLnl0cC15b3V0dWJlLW11c2ljLWJ1dHRvbiBzdmd7bWFyZ2luLWxlZnQ6LTI1cHg7aGVpZ2h0OjI0cHh9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9uLm5vLWxpbmssLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbi5uby1saW5re2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24sLnl0cC1kbmkueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbnt3aWR0aDoxMDBweH0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAteW91dHViZS1idXR0b24ueXRwLXlvdXR1YmUtbXVzaWMtYnV0dG9ue2hlaWdodDoyNXB4O21hcmdpbi1ib3R0b206N3B4fS55dHAtZHJhd2Vye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MzUwcHg7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6NDc7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOndpZHRoIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2Vye3dpZHRoOjQyNXB4fS55dHAtZHJhd2VyLWNsb3NlZHt3aWR0aDoyNXB4fS55dHAtYmlnLW1vZGUgLnl0cC1kcmF3ZXItY2xvc2Vke3dpZHRoOjM4cHh9Lnl0cC1kcmF3ZXItY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MzUwcHg7aGVpZ2h0OjEwMCU7cGFkZGluZzo0OHB4IDI1cHggMjVweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2VyLWNvbnRlbnR7d2lkdGg6NDI1cHg7cGFkZGluZzo3MHB4IDE1cHggMTVweH0ueXRwLWRyYXdlci1jbG9zZWQgLnl0cC1kcmF3ZXItY29udGVudHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kcmF3ZXItY2xvc2UtYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjVweDtmaWxsOndoaXRlfS55dHAtYmlnLW1vZGUgLnl0cC1kcmF3ZXItY2xvc2UtYnV0dG9ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7cGFkZGluZzo3cHh9Lnl0cC1kcmF3ZXItY2xvc2VkIC55dHAtZHJhd2VyLWNsb3NlLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kcmF3ZXItb3Blbi1idXR0b257ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOjE1cHg7aGVpZ2h0OjMycHg7bWFyZ2luLXRvcDotMTZweDtwYWRkaW5nOjEwcHggNXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNyl9Lnl0cC1iaWctbW9kZSAueXRwLWRyYXdlci1vcGVuLWJ1dHRvbnt3aWR0aDoyM3B4O2hlaWdodDo0OHB4O21hcmdpbi10b3A6LTI0cHg7cGFkZGluZzoxNXB4IDhweH0ueXRwLWRyYXdlci1jbG9zZWQgLnl0cC1kcmF3ZXItb3Blbi1idXR0b257ZGlzcGxheTpibG9ja30ueXRwLWRyYXdlci1vcGVuLWJ1dHRvbjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjojYWFhO2JvcmRlci1sZWZ0Om5vbmU7Y29udGVudDoiIn0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2VyLW9wZW4tYnV0dG9uOmFmdGVye2JvcmRlci1ib3R0b20td2lkdGg6OHB4O2JvcmRlci1yaWdodC13aWR0aDo4cHg7Ym9yZGVyLXRvcC13aWR0aDo4cHh9Lmh0bWw1LXlwYy1tb2R1bGV7bGluZS1oZWlnaHQ6MS4yO3RleHQtYWxpZ246bGVmdH0uaHRtbDUteXBjLWFjdGlvbi1oZWFkaW5ne21hcmdpbi1ib3R0b206NXB4O2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiM5OTl9Lnl0cC1zbWFsbC1tb2RlIC5odG1sNS15cGMtYWN0aW9uLWhlYWRpbmd7ZGlzcGxheTpub25lfS5odG1sNS15cGMtdGl0bGV7Zm9udC1zaXplOjIwcHh9Lmh0bWw1LXlwYy10aHVtYm5haWx7ZmxvYXQ6bGVmdH0uaHRtbDUteXBjLXRodW1ibmFpbCBpbWd7d2lkdGg6MTAwcHg7bWFyZ2luOjAgMTBweCAxMHB4IDB9Lmh0bWw1LXlwYy10aHVtYm5haWwgaW1nLmF2YXRhcntib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW59Lmh0bWw1LXlwYy10aHVtYm5haWwgaW1nLmxhbmRzY2FwZXt3aWR0aDoxNjBweH0ueXRwLXNtYWxsLW1vZGUgLmh0bWw1LXlwYy10aHVtYm5haWwgaW1ne3dpZHRoOjUwcHh9Lnl0cC1zbWFsbC1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZy5sYW5kc2NhcGV7d2lkdGg6ODBweH0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZ3t3aWR0aDoxNTBweDttYXJnaW46MCAxNXB4IDE4cHggMH0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZy5sYW5kc2NhcGV7d2lkdGg6MjQwcHh9Lmh0bWw1LXlwYy1kZXNjcmlwdGlvbntmb250LXNpemU6MTRweH0ueXRwLXNtYWxsLW1vZGUgLmh0bWw1LXlwYy1kZXNjcmlwdGlvbnttYXJnaW4tdG9wOjEwcHh9Lnl0cC1iaWctbW9kZSAuaHRtbDUteXBjLWRlc2NyaXB0aW9ue21hcmdpbi10b3A6MzhweH0uaHRtbDUteXBjLXB1cmNoYXNle2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDttYXJnaW46MTJweCAwO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzI3OTNlNn0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtcHVyY2hhc2V7bWFyZ2luOjE4cHggMDtwYWRkaW5nOjE1cHggMjBweDtib3JkZXItcmFkaXVzOjNweH0uaHRtbDUteXBjLXB1cmNoYXNlOmhvdmVye2JhY2tncm91bmQ6IzEyNmRiM30uaHRtbDUteXBjLXB1cmNoYXNlLmh0bWw1LXlwYy1yb3VuZGVke2JvcmRlci1yYWRpdXM6MThweH0uaHRtbDUteXBjLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cGFkZGluZzo1cHg7bWFyZ2luLWxlZnQ6MTJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDo2Njtwb2ludGVyLWV2ZW50czpub25lO3RleHQtc2hhZG93OjAgMCAycHggcmdiYSgwLDAsMCwuNSl9Lnl0cC1iaWctbW9kZSAuaHRtbDUteXBjLW92ZXJsYXl7cGFkZGluZzo4cHg7bWFyZ2luLWxlZnQ6MjRweH0uaHRtbDUteXBjLWVuZHNjcmVlbntkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7cGFkZGluZzo1MXB4IDIxcHggMjFweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjc1KTt6LWluZGV4OjM2fS55dHAtc21hbGwtbW9kZSAuaHRtbDUteXBjLWVuZHNjcmVlbntwYWRkaW5nLXRvcDoyMXB4fS55dHAteXBjLWNsaWNrd3JhcC1vdmVybGF5e3BhZGRpbmc6MjVweCAyMHB4IDA7ei1pbmRleDo2OX0ueXRwLXlwYy1jbGlja3dyYXAtaGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM4ODg7cGFkZGluZzowIDAgMTVweCA1cHg7Zm9udC1zaXplOjE4MiU7Zm9udC13ZWlnaHQ6NDAwfS55dHAteXBjLWNsaWNrd3JhcC1kZXNjcmlwdGlvbnttYXJnaW46MTVweCAwIDAgNXB4O2ZvbnQtc2l6ZToxMjclfS55dHAteXBjLWNsaWNrd3JhcC1jb25maXJte21hcmdpbjoyMHB4IDAgMCA1cHg7cGFkZGluZzo3cHggMTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzN2Q7Ym9yZGVyLXJhZGl1czoycHh9Lnl0cC15cGMtY2xpY2t3cmFwLWNvbmZpcm06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjZjfS55dHAteXRvLXByZXJvbGwtbWVzc2FnZXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cGFkZGluZzo1cHg7bWFyZ2luLWxlZnQ6MTJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDo2NTtwb2ludGVyLWV2ZW50czpub25lO3RleHQtc2hhZG93OjAgMCAycHggcmdiYSgwLDAsMCwuNSl9Lnl0cC15dG8tcHJlcm9sbCAueXRwLXl0by1wcmVyb2xsLW1lc3NhZ2V7ZGlzcGxheTpibG9ja31zZW50aW5lbHt9"}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":16,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/td?id=G-V84XP8WGXY\u0026v=3\u0026t=t\u0026pid=494527338\u0026gtm=45je67m0h1v9250093602za200zd9250093602\u0026seq=1\u0026exp=115938466~115938469~118897920~118897930~119896802\u0026dl=coinlib.io%2Fwidget\u0026tdp=G-V84XP8WGXY;250093602;0;0;0\u0026frm=2\u0026rtg=250093602\u0026slo=11\u0026hlo=12\u0026lst=3\u0026bt=0\u0026ct=3\u0026z=0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:47.345Z","timestamp":1785126647345,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /td?id=G-V84XP8WGXY\u0026v=3\u0026t=t\u0026pid=494527338\u0026gtm=45je67m0h1v9250093602za200zd9250093602\u0026seq=1\u0026exp=115938466~115938469~118897920~118897930~119896802\u0026dl=coinlib.io%2Fwidget\u0026tdp=G-V84XP8WGXY;250093602;0;0;0\u0026frm=2\u0026rtg=250093602\u0026slo=11\u0026hlo=12\u0026lst=3\u0026bt=0\u0026ct=3\u0026z=0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 204 \r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: text/plain\r\ncross-origin-resource-policy: cross-origin\r\ncontent-security-policy-report-only: script-src 'none'; form-action 'none'; frame-src 'none'; report-uri https://csp.withgoogle.com/csp/scaffolding/ascnsrsgtc:46:0\r\ncross-origin-opener-policy-report-only: same-origin; report-to=ascnsrsgtc:46:0\r\nreport-to: {\"group\":\"ascnsrsgtc:46:0\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/scaffolding/ascnsrsgtc:46:0\"}],}\r\nserver: Golfe2\r\ncontent-length: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":721,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":98,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":98,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps-api-v3/api/js/65/10a/common.js","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:51.272Z","timestamp":1785126651272,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /maps-api-v3/api/js/65/10a/common.js HTTP/1.1\r\nHost: maps.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/maps-api-js\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"maps-api-js\"\r\nreport-to: {\"group\":\"maps-api-js\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/maps-api-js\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 38091\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 18:01:05 GMT\r\nexpires: Thu, 22 Jul 2027 18:01:05 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 08:01:32 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding, Origin\r\nage: 383386\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":128639,"size_decoded":38930,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (726)","md5":"31d2d0109cbb555d4d1bb1d1aadf2133","sha1":"9c93dcffd69503e2ad240ea9fa1702abe08144a3","sha256":"a2ceda9bcc0100ef6d1130dc49439e47e8fa1233e7cd025a6018919eec222ecc","sha512":"19a4c7de0f35af185ff9b846790bee70d3fbe2570dc172a3a557b5f08032c872e42d462e4ff8554e3b07949966bc5fb43a15676fa03b6b54d5238108b7165054","ssdeep":"3072:SxAH1dW3t/h44XaocAVOUK4gemXkkI/xMrvgnU7:SY1dpoGUKxezV/xMzgnU7","tlshash":"77c3a6d5329370a3ab71b4b540a70007b2a5e485f40d8c2eb5f9ccf6aef495a11f9b39","first_seen":"2026-07-22T18:24:50.770414Z","last_seen":"2026-07-27T08:05:46.755599Z","times_seen":726,"resource_available":true,"data":"Z29vZ2xlLm1hcHMuX19nanNsb2FkX18oJ2NvbW1vbicsIGZ1bmN0aW9uKF8pe3ZhciBOa2EsT2thLFBrYSxRa2EsdHUsVWthLFZrYSxXa2EsdnUsRXUsSnUsS3UsTHUsTXUsWWthLCRrYSxhbGEsYmxhLGNsYSxVdSxZdSxmbGEsZ2xhLGhsYSxpbGEsamxhLGxsYSxjdixtbGEsbmxhLGV2LG9sYSxwbGEsanYscWxhLHVsYSxCdix2bGEsd2xhLHhsYSx5bGEsemxhLEFsYSxFdixEdixEbGEsQ2xhLEJsYSxMdixNdixOdixFbGEsRmxhLEdsYSxIbGEsSmxhLEtsYSxMbGEsTWxhLE5sYSxPbGEsUGxhLFJsYSxTbGEsWGxhLFlsYSxabGEsJGxhLFR2LGFtYSxVdixibWEsVnYsWXYsJHYsZG1hLGVtYSxmbWEsaG1hLGptYSx6dyxwbWEsRHcscm1hLHZtYSx3bWEsWHcsem1hLEFtYSxCbWEsQ21hLGF4LGd4LEZtYSxoeCxreCxHbWEsbHgsSG1hLG94LFNtYSxZbWEsYm5hLGNuYSxkbmEsZW5hLGZuYSxkeSxqbmEsZXksa25hLGxuYSxubmEscW5hLHBuYSxvbmEsc25hLHJuYSxtbmEsdG5hLHduYSx4bmEsQW5hLENuYSxIbmEscnksdnksSm5hLHd5LHh5LEtuYSxNbmEsTG5hLE5uYSwKT25hLFBuYSxZbmEsV25hLCRuYSxhb2EsTXksTnksY29hLGRvYSxlb2EsZm9hLHJ1LEtrYSxEdSxGdSxPdSxkbGEsa2xhLGJ2LGdvYSxob2EsZ3YsankseW5hLHpuYSxodixzbGEscmxhLGt5LGlvYSxqb2EsbG9hLG1vYSxub2EscG9hLHFvYSxpeixyb2Esc29hLHRvYSx1b2Esdm9hLFVsYSxXbGEsenosRW9hLEZvYSxHb2Esc21hLHRtYTtfLnB1PWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uZGYoXy5PZihhLGIpKSE9bnVsbH07Xy5xdT1mdW5jdGlvbihhKXtyZXR1cm4hIWEuaGFuZGxlZH07Xy5Ma2E9ZnVuY3Rpb24oKXtydXx8KHJ1PW5ldyBLa2EpO3JldHVybiBydX07Cl8uc3U9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5Ma2EoKTtiLnFoLmhhcyhhKTtyZXR1cm4gbmV3IF8uTWthKCgpPT57cGVyZm9ybWFuY2Uubm93KCk+PWIuc2gmJmIucmVzZXQoKTt2YXIgYz1iLnJoLmhhcyhhKSxkPWIudGguaGFzKGEpO2N8fGQ/YyYmIWQmJmIucmguc2V0KGEsIm92ZXJfdHRsIik6KGIucmguc2V0KGEsXy5LbigpKSxiLnRoLmFkZChhKSk7cmV0dXJuIGIucmguZ2V0KGEpfSl9O05rYT1mdW5jdGlvbigpe3ZhciBhPTc4O2ElMz9hPU1hdGguZmxvb3IoYSk6YS09Mjt2YXIgYj1uZXcgVWludDhBcnJheShhKSxjPTA7Xy5WYygiQUdGemJRRUFBQUFCQkFGZ0FBQURBZ0VBQlFNQkFBRUhCd0VEYldWdEFnQU1BUUVLRHdFTkFFRUF3RUVBUVFIOENBQUFDd3NFQVFFQmVBQVFCRzVoYldVQ0F3RUFBQWtFQVFBQlpBPT0iLGZ1bmN0aW9uKGQpe2JbYysrXT1kfSk7cmV0dXJuIGMhPT1hP2Iuc3ViYXJyYXkoMCxjKTpifTsKT2thPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGg7aWYoYyE9PWIubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZD0wO2Q8YztkKyspaWYoYVtkXSE9PWJbZF0pcmV0dXJuITE7cmV0dXJuITB9O1BrYT1mdW5jdGlvbihhLGIpe2lmKCFhLnFofHwhYi5xaHx8YS5xaD09PWIucWgpcmV0dXJuIGEucWg9PT1iLnFoO2lmKHR5cGVvZiBhLnFoPT09InN0cmluZyImJnR5cGVvZiBiLnFoPT09InN0cmluZyIpe3ZhciBjPWEucWg7bGV0IGQ9Yi5xaDtiLnFoLmxlbmd0aD5hLnFoLmxlbmd0aCYmKGQ9YS5xaCxjPWIucWgpO2lmKGMubGFzdEluZGV4T2YoZCwwKSE9PTApcmV0dXJuITE7Zm9yKGI9ZC5sZW5ndGg7YjxjLmxlbmd0aDtiKyspaWYoY1tiXSE9PSI9IilyZXR1cm4hMTtyZXR1cm4hMH1jPV8ucWQoYSk7Yj1fLnFkKGIpO3JldHVybiBPa2EoYyxiKX07ClFrYT1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpYj1iP25ldyBfLmZkKGIsXy5oZCk6Xy5sZCgpO2Vsc2UgaWYoYiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYj1uZXcgXy5mZChiLF8uaGQpO2Vsc2UgaWYoIShiIGluc3RhbmNlb2YgXy5mZCkpcmV0dXJuITE7cmV0dXJuIFBrYShhLGIpfTtfLlJrYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT1jP25ldyBVaW50OEFycmF5KDApOmEuc2xpY2UoYixjKX07Xy5Ta2E9ZnVuY3Rpb24oYSl7dmFyIGI9YTwwO2E9TWF0aC5hYnMoYSkqMjtfLmhlKGEpO2E9Xy5lZTt2YXIgYz1fLmdlO2ImJihhPT0wP2M9PTA/Yz1hPTQyOTQ5NjcyOTU6KGMtLSxhPTQyOTQ5NjcyOTUpOmEtLSk7Xy5lZT1hO18uZ2U9Y307Xy5Ua2E9ZnVuY3Rpb24oYSl7YT1hPDxCaWdJbnQoMSleYT4+QmlnSW50KDYzKTtfLmVlPU51bWJlcihCaWdJbnQuYXNVaW50TigzMixhKSk7Xy5nZT1OdW1iZXIoQmlnSW50LmFzVWludE4oMzIsYT4+QmlnSW50KDMyKSkpfTsKdHU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5sZXx8KF8ubGU9bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkpO2Iuc2V0RmxvYXQzMigwLCthLCEwKTtfLmdlPTA7Xy5lZT1iLmdldFVpbnQzMigwLCEwKX07VWthPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uZGUoQmlnSW50LmFzVWludE4oNjQsKEJpZ0ludChiPj4+MCk8PEJpZ0ludCgzMikpK0JpZ0ludChhPj4+MCkpKX07Xy51dT1mdW5jdGlvbihhKXtyZXR1cm4oYTw8MV5hPj4zMSk+Pj4wfTtWa2E9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5lZSxjPV8uZ2UsZD1jPj4zMTtjPShjPDwxfGI+Pj4zMSleZDthKGI8PDFeZCxjKX07V2thPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhPT0ic3RyaW5nInx8YSBpbnN0YW5jZW9mIF8uZmQpcmV0dXJuIGF9O3Z1PWZ1bmN0aW9uKGEsYixjKXtpZihjKXt2YXIgZDsoKGQ9YVtfLmtmXT8/KGFbXy5rZl09bmV3IF8ubmYpKVtiXT8/KGRbYl09W10pKS5wdXNoKGMpfX07Cl8ud3U9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5MaTthPV8uWGYoYSxlLGVbXy5DZF18MCxjLGIsMyk7Xy5ZZChhLGQpO3JldHVybiBhW2RdfTtfLnh1PWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtyZXR1cm4gXy5IZyhhLGIsYyxlLGQsZix2b2lkIDAsMSl9O18ueXU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5MaTtyZXR1cm4gXy5SZihlLGVbXy5DZF18MCxiLF8udGcoYSxkLGMpKSE9PXZvaWQgMH07Xy56dT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gXy5HKGEsYixfLnRnKGEsZCxjKSl9O18uQXU9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLlFmKGEsYixjPT1udWxsP2M6Xy51ZShjKSl9O18uQnU9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIF8uSGcoYSxiLF8uRGUsYyxkLF8uRWUpfTtfLkN1PWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uQWUoXy5PZihhLGIpKSE9bnVsbH07CkV1PWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gbmV3IER1KF8uYWQoYSksYik7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gbmV3IER1KG5ldyBVaW50OEFycmF5KGEpLGIpO2lmKGEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiBuZXcgRHUoYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybiBhPW5ldyBVaW50OEFycmF5KGEpLG5ldyBEdShhLCExKTtpZihhLmNvbnN0cnVjdG9yPT09Xy5mZClyZXR1cm4gYj1fLnFkKGEpfHxuZXcgVWludDhBcnJheSgwKSxuZXcgRHUoYiwhMCxhKTtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gYT1hLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9hOm5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpLG5ldyBEdShhLCExKTt0aHJvdyBFcnJvcigpO307Cl8uR3U9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoRnUubGVuZ3RoKXtsZXQgZT1GdS5wb3AoKTtlLmluaXQoYSxiLGMsZCk7cmV0dXJuIGV9cmV0dXJuIG5ldyBfLlhrYShhLGIsYyxkKX07Xy5IdT1mdW5jdGlvbihhKXtyZXR1cm4gXy5waChhLChiLGMpPT57dmFyIGQ9LShiJjEpO2I9KGI+Pj4xfGM8PDMxKV5kO3JldHVybiBfLnFlKGIsYz4+PjFeZCl9KX07Xy5JdT1mdW5jdGlvbihhKXthPV8uc2goYSk7cmV0dXJuIGE+Pj4xXi0oYSYxKX07SnU9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ucGgoYSxVa2EpfTtLdT1mdW5jdGlvbihhKXt2YXIgYj1hLnJoLGM9YS5xaCxkPWJbYyswXSxlPWJbYysxXSxmPWJbYysyXTtiPWJbYyszXTtfLnVoKGEsNCk7cmV0dXJuKGQ8PDB8ZTw8OHxmPDwxNnxiPDwyNCk+Pj4wfTtMdT1mdW5jdGlvbihhKXt2YXIgYj1LdShhKTthPUt1KGEpO3JldHVybiBVa2EoYixhKX07Ck11PWZ1bmN0aW9uKGEpe3ZhciBiPUt1KGEpO2E9KGI+PjMxKSoyKzE7dmFyIGM9Yj4+PjIzJjI1NTtiJj04Mzg4NjA3O3JldHVybiBjPT0yNTU/Yj9OYU46YSpJbmZpbml0eTpjPT0wP2EqMS40MDEyOTg0NjQzMjQ4MTdFLTQ1KmI6YSpNYXRoLnBvdygyLGMtMTUwKSooYis4Mzg4NjA4KX07Xy5OdT1mdW5jdGlvbihhKXtyZXR1cm4gYS5xaD09YS5zaH07WWthPWZ1bmN0aW9uKGEsYil7aWYoYj09MClyZXR1cm4gXy5sZCgpO3ZhciBjPV8ud2goYSxiKTthPWEuRXYmJmEud2g/YS5yaC5zdWJhcnJheShjLGMrYik6Xy5Sa2EoYS5yaCxjLGMrYik7cmV0dXJuIF8uSWQoYSl9O18uUHU9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoT3UubGVuZ3RoKXtsZXQgZT1PdS5wb3AoKTtlLnNldE9wdGlvbnMoZCk7ZS5yaC5pbml0KGEsYixjLGQpO3JldHVybiBlfXJldHVybiBuZXcgXy5aa2EoYSxiLGMsZCl9OwpfLlF1PWZ1bmN0aW9uKGEpe2lmKF8uTnUoYS5yaCkpcmV0dXJuITE7YS53aD1hLnJoLmdldEN1cnNvcigpO3ZhciBiPV8uc2goYS5yaCksYz1iPj4+MyxkPWImNztpZighKGQ+PTAmJmQ8PTUpKXRocm93IEVycm9yKCk7aWYoYzwxKXRocm93IEVycm9yKCk7YS50aD1iO2Euc2g9YzthLnFoPWQ7cmV0dXJuITB9O18uU3U9ZnVuY3Rpb24oKXtpZihfLlJ1Pj0xMDApdGhyb3cgbmV3IFN5bnRheEVycm9yO18uUnUrK307Cl8uVHU9ZnVuY3Rpb24oYSl7dHJ5e3N3aXRjaChhLnFoKXtjYXNlIDA6YS5xaCE9MD9fLlR1KGEpOl8ucWgoYS5yaCk7YnJlYWs7Y2FzZSAxOl8udWgoYS5yaCw4KTticmVhaztjYXNlIDI6JGthKGEpO2JyZWFrO2Nhc2UgNTpfLnVoKGEucmgsNCk7YnJlYWs7Y2FzZSAzOl8uU3UoKTtsZXQgYj1hLnNoO3RyeXtkb3tpZighXy5RdShhKSl0aHJvdyBFcnJvcigpO2lmKGEucWg9PTQpe2lmKGEuc2ghPWIpdGhyb3cgRXJyb3IoKTticmVha31fLlR1KGEpfXdoaWxlKDEpfWNhdGNoKGMpe2lmKGMgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBjO31maW5hbGx5e18uUnU+MCYmXy5SdS0tfWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTt9fWNhdGNoKGIpe2lmKGIgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBiO319Owoka2E9ZnVuY3Rpb24oYSl7aWYoYS5xaCE9MilfLlR1KGEpO2Vsc2V7dmFyIGI9Xy5zaChhLnJoKTtfLnVoKGEucmgsYil9fTthbGE9ZnVuY3Rpb24oYSxiKXtpZighYS5qSCl7bGV0IGM9YS5yaC5nZXRDdXJzb3IoKS1iO2Eucmguc2V0Q3Vyc29yKGIpO2I9WWthKGEucmgsYyk7YS5yaC5nZXRDdXJzb3IoKTtyZXR1cm4gYn19O2JsYT1mdW5jdGlvbihhKXt2YXIgYj1hLndoO18uVHUoYSk7cmV0dXJuIGFsYShhLGIpfTtjbGE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkPTA7Xy5RdShhKSYmYS5xaCE9NDspYS50aCE9PTE2fHxjP2EudGghPT0yNnx8ZD9fLlR1KGEpOmM/KGQ9LTEsXy5BaChhLGMsYikpOihkPWEud2gsJGthKGEpKTooYz1fLnNoKGEucmgpLGQmJihhLnJoLnNldEN1cnNvcihkKSxkPTApKTtpZihhLnRoIT09MTJ8fCFkfHwhYyl0aHJvdyBFcnJvcigpO307VXU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zaChhLnJoKTtyZXR1cm4gWWthKGEucmgsYil9OwpfLld1PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5WdShhJjQyOTQ5NjcyOTUsTWF0aC5mbG9vcihhLzQyOTQ5NjcyOTYpKX07Xy5YdT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gZGxhfHwoZGxhPW5ldyBfLlZ1KDAsMCkpO2lmKCEvXlxkKyQvLnRlc3QoYSkpcmV0dXJuIG51bGw7Xy5zZShhKTtyZXR1cm4gbmV3IF8uVnUoXy5lZSxfLmdlKX07WXU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubG89PT0wP25ldyBfLlZ1KDAsMSt+YS5oaSk6bmV3IF8uVnUofmEubG8rMSx+YS5oaSl9O18uWnU9ZnVuY3Rpb24oYSxiLGMpe18uUmgoYSxiKTtfLlJoKGEsYyl9O18uZWxhPWZ1bmN0aW9uKGEsYil7Xy5zZShiKTtWa2EoKGMsZCk9PntfLlFoKGEsYz4+PjAsZD4+PjApfSl9O18uJHU9ZnVuY3Rpb24oYSxiKXtfLmhlKGIpO18uUmgoYSxfLmVlKTtfLlJoKGEsXy5nZSl9OwpmbGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpc3dpdGNoKF8uWWgoYSxiLDApLHR5cGVvZiBjKXtjYXNlICJudW1iZXIiOmE9YS5xaDtfLmtlKGMpO18uUWgoYSxfLmVlLF8uZ2UpO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1fLlBoKGMsXy5WdSxfLld1KTtfLlFoKGEucWgsYy5sbyxjLmhpKTticmVhaztkZWZhdWx0OmM9Xy5YdShjKSxfLlFoKGEucWgsYy5sbyxjLmhpKX19O2dsYT1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgInN0cmluZyI6Xy5YdShhKX19O2hsYT1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbClzd2l0Y2goZ2xhKGMpLF8uWWgoYSxiLDEpLHR5cGVvZiBjKXtjYXNlICJudW1iZXIiOl8uJHUoYS5xaCxjKTticmVhaztjYXNlICJiaWdpbnQiOmI9Xy5QaChjLF8uVnUsXy5XdSk7Xy5adShhLnFoLGIubG8sYi5oaSk7YnJlYWs7ZGVmYXVsdDpiPV8uWHUoYyksXy5adShhLnFoLGIubG8sYi5oaSl9fTsKaWxhPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjphLmxlbmd0aCYmYVswXT09PSItIj9fLlh1KGEuc3Vic3RyaW5nKDEpKTpfLlh1KGEpfX07Xy5hdj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5MaSxlPV8ucGIoXy5rZik7ZSYmZSBpbiBkJiYoZD1kW2VdKSYmZGVsZXRlIGRbYi5xaF07Yi5Xbj9iLndoKGEsYi5XbixiLnFoLGMsYi5yaCk6Yi53aChhLGIucWgsYyxiLnJoKX07amxhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWMudUM7YVtiXT1kPyhmLGcsaCk9PmUoZixnLGgsZCk6ZX07CmxsYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzW2tsYV0sZj10aGlzW2J2XSxnPV8uRGYodm9pZCAwLGUuZnEpLGg9Xy5sZihhKTtpZihoKXt2YXIgaz0hMSxtPWUub2w7aWYobSl7ZT0ocCxxLHUpPT57aWYodS5sZW5ndGghPT0wKWlmKG1bcV0pZm9yKGxldCB4IG9mIHUpe3A9Xy5QdSh4KTt0cnl7az0hMCxmKGcscCl9ZmluYWxseXtwLlFpKCl9fWVsc2UgZD8uKGEscSx1KX07aWYoYj09bnVsbClfLm1mKGgsZSk7ZWxzZSBpZihoIT1udWxsKXtsZXQgcD1oW2JdO3AmJmUoaCxiLHApfWlmKGspe2xldCBwPWFbXy5DZF18MDtpZihwJjImJnAmMjA0OCYmIWM/LnJQKXRocm93IEVycm9yKCk7bGV0IHE9Xy5iZShwKSx1PSh4LHopPT57aWYoXy5OZihhLHgscSkhPW51bGwpc3dpdGNoKGM/LkZUKXtjYXNlIDE6cmV0dXJuO2RlZmF1bHQ6dGhyb3cgRXJyb3IoKTt9eiE9bnVsbCYmKHA9Xy5QZihhLHAseCx6LHEpKTtkZWxldGUgaFt4XX07Yj09bnVsbD9fLiRkKGcsZ1tfLkNkXXwwLAooeCx6KT0+e3UoeCx6KX0pOnUoYixfLk5mKGcsYixxKSl9fX19O2N2PWZ1bmN0aW9uKGEpe3JldHVybiBfLnJpKGtsYSx2b2lkIDAsamxhLG1sYSxhKX07bWxhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Yy51QyxnLGg7YVtiXT0oayxtLHApPT5mKGssbSxwLGh8fChoPWN2KGQpLmZxKSxnfHwoZz1fLmR2KGQpKSxlKX07Cl8uZHY9ZnVuY3Rpb24oYSl7dmFyIGI9YVtidl07aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1jdihhKTtiPWMuckk/KGQsZSk9PigwLF8ub2kpKGQsZSxjKTooZCxlKT0+e2E6e18uU3UoKTt0cnl7Zm9yKDtfLlF1KGUpJiZlLnFoIT00Oyl7bGV0IGg9ZS5zaCxrPWNbaF07aWYoaz09bnVsbCl7bGV0IG09Yy5vbDtpZihtKXtsZXQgcD1tW2hdO2lmKHApe2xldCBxPW5sYShwKTtxIT1udWxsJiYoaz1jW2hdPXEpfX19ayE9bnVsbCYmayhlLGQsaCl8fHZ1KGQsaCxibGEoZSkpfWxldCBnPV8ubGYoZCk7ZyYmKGcuT0I9Yy5pQVtfLnRyXSk7dmFyIGY9ITA7YnJlYWsgYX1jYXRjaChnKXtpZihnIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgZzt9ZmluYWxseXtfLlJ1PjAmJl8uUnUtLX1mPXZvaWQgMH1yZXR1cm4gZn07YVtidl09YjthW18udHJdPWxsYS5iaW5kKGEpO3JldHVybiBifTsKbmxhPWZ1bmN0aW9uKGEpe2E9Xy5zaShhKTt2YXIgYj1hWzBdLnVDO2lmKGE9YVsxXSl7bGV0IGM9Xy5kdihhKSxkPWN2KGEpLmZxO3JldHVybihlLGYsZyk9PmIoZSxmLGcsZCxjKX1yZXR1cm4gYn07ZXY9ZnVuY3Rpb24oYSxiLGMpe2I9V2thKGIpO2IhPW51bGwmJl8uZGkoYSxjLEV1KGIsITApLmJ1ZmZlcil9O18uZnY9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uSChhLDEpfTtvbGE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy50ZyhhLGd2LDEpO3JldHVybiBfLklnKGEsYikhPW51bGx9O3BsYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5aZyhhLF8udGcoYSxndiwyKSkhPW51bGx9O18uaXY9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uRyhhLGh2LDEpfTtqdj1mdW5jdGlvbihhKXtyZXR1cm4gXy5QZyhhLDQpfTtxbGE9ZnVuY3Rpb24oKXt2YXIgYT1fLkpsLnJoKCk7cmV0dXJuIF8uSChhLDcpfTtfLmt2PWZ1bmN0aW9uKCl7cmV0dXJuIF8uRyhfLkpsLHJsYSwyMil9OwpfLmx2PWZ1bmN0aW9uKGEpe3JldHVybiBfLkcoYSxzbGEsMTIpfTtfLm12PWZ1bmN0aW9uKGEpe3JldHVybiBfLlNmKGEsc2xhLDEyKX07Xy5udj1mdW5jdGlvbihhLGIpe3JldHVybiBfLmtoKGEsMSxiKX07Xy5vdj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uVG0oYS5sYXQubG8sYS5sbmcuaGksITApfTtfLnB2PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5UbShhLmxhdC5oaSxhLmxuZy5sbywhMCl9O18ucXY9ZnVuY3Rpb24oYSxiKXthLmFpLmFkZExpc3RlbmVyKGIsdm9pZCAwKTtiLmNhbGwodm9pZCAwLGEuZ2V0KCkpfTtfLnJ2PWZ1bmN0aW9uKGEsYil7YT1fLmdlYShhLGIpO2EucHVzaChiKTtyZXR1cm4gbmV3IF8uanQoYSl9O18uc3Y9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLm1ham9yPmJ8fGEubWFqb3I9PT1iJiZhLm1pbm9yPj0oY3x8MCl9O18udGxhPWZ1bmN0aW9uKCl7dmFyIGE9Xy5OcDtyZXR1cm4gYS5CaCYmYS56aH07Cl8udHY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IF8uV3AoYS5xaCtiLnFoLGEucmgrYi5yaCl9O18udXY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IF8uV3AoYS5xaC1iLnFoLGEucmgtYi5yaCl9O3VsYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGItTWF0aC5yb3VuZCgoYi1jKS9hLmxlbmd0aCkqYS5sZW5ndGh9O18ud3Y9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgXy5XcChhLnd2P3VsYShhLnd2LGIucWgsYy5xaCk6Yi5xaCxhLll3P3VsYShhLll3LGIucmgsYy5yaCk6Yi5yaCl9O18ueHY9ZnVuY3Rpb24oYSl7cmV0dXJue1hoOk1hdGgucm91bmQoYS5YaCksWWg6TWF0aC5yb3VuZChhLlloKX19O18ueXY9ZnVuY3Rpb24oYSxiKXtyZXR1cm57WGg6YS5tMTEqYi5xaCthLm0xMipiLnJoLFloOmEubTIxKmIucWgrYS5tMjIqYi5yaH19O18uenY9ZnVuY3Rpb24oYSl7cmV0dXJuIE1hdGgubG9nKGEucmgpL01hdGguTE4yfTsKXy5Bdj1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXQoImtleWJvYXJkU2hvcnRjdXRzIik9PT12b2lkIDB8fGEuZ2V0KCJrZXlib2FyZFNob3J0Y3V0cyIpfTtCdj1mdW5jdGlvbihhKXtfLkRkKGEsODE5Mik7cmV0dXJuIGF9O3ZsYT1mdW5jdGlvbihhLGIpe3JldHVybiEhYSYmKEFycmF5LmlzQXJyYXkoYSk/YS5pbmNsdWRlcyhiKTphLmhhcyhiKSl9O3dsYT1mdW5jdGlvbihhLGIsYyl7aWYoIUFycmF5LmlzQXJyYXkoYSl8fGEubGVuZ3RoKXJldHVybiExO3ZhciBkPWFbXy5DZF18MDtpZihkJjEpcmV0dXJuITA7aWYoIXZsYShiLGMpKXJldHVybiExO2FbXy5DZF09ZHwxO3JldHVybiEwfTtfLkN2PWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7dmFyIGI9dHlwZW9mIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoKDAsXy5aZSkoNjQsYSkpO2lmKF8uQ2UoYSkpe2lmKGI9PT0ic3RyaW5nIilyZXR1cm4gXy5XZShhKTtpZihiPT09Im51bWJlciIpcmV0dXJuIF8uVmUoYSl9fTsKeGxhPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGI9PT0ic3RyaW5nIil0cnl7Yj1fLmFkKGIpfWNhdGNoKGMpe3JldHVybiExfXJldHVybiBfLmJkKGIpJiZPa2EoYSxiKX07eWxhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJiaWdpbnQiOmNhc2UgInN0cmluZyI6Y2FzZSAibnVtYmVyIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX07emxhPWZ1bmN0aW9uKGEsYil7aWYoIUFycmF5LmlzQXJyYXkoYSl8fCFBcnJheS5pc0FycmF5KGIpKXJldHVybiAwO2E9IiIrYVswXTtiPSIiK2JbMF07cmV0dXJuIGE9PT1iPzA6YTxiPy0xOjF9O0FsYT1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKF8uUWQoYSkpYT1hLkxpLF8uc3ImJihjPz8oYz1hW18uc3JdKSk7ZWxzZSBpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4hMTtpZihfLlFkKGIpKWI9Yi5MaSxfLnNyJiYoYz8/KGM9YltfLnNyXSkpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoYikpcmV0dXJuITE7cmV0dXJuIER2KGEsYixjLDIpfTsKRXY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gRHYoYSxiLHZvaWQgMCwwKX07CkR2PWZ1bmN0aW9uKGEsYixjLGQpe2lmKGE9PT1ifHxhPT1udWxsJiZiPT1udWxsKXJldHVybiEwO2lmKGEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIGEuUE4oYixjKTtpZihiIGluc3RhbmNlb2YgTWFwKXJldHVybiBiLlBOKGEsYyk7aWYoYT09bnVsbHx8Yj09bnVsbClyZXR1cm4hMTtpZihhIGluc3RhbmNlb2YgXy5mZClyZXR1cm4gUWthKGEsYik7aWYoYiBpbnN0YW5jZW9mIF8uZmQpcmV0dXJuIFFrYShiLGEpO2lmKF8uYmQoYSkpcmV0dXJuIHhsYShhLGIpO2lmKF8uYmQoYikpcmV0dXJuIHhsYShiLGEpO3ZhciBlPXR5cGVvZiBhLGY9dHlwZW9mIGI7aWYoZSE9PSJvYmplY3QifHxmIT09Im9iamVjdCIpcmV0dXJuIE51bWJlci5pc05hTihhKXx8TnVtYmVyLmlzTmFOKGIpP1N0cmluZyhhKT09PVN0cmluZyhiKTp5bGEoZSkmJnlsYShmKT8iIithPT09IiIrYjplPT09ImJvb2xlYW4iJiZmPT09Im51bWJlciJ8fGU9PT0ibnVtYmVyIiYmZj09PSJib29sZWFuIj8hYT09PSFiOiExOwppZihfLlFkKGEpfHxfLlFkKGIpKXJldHVybiBBbGEoYSxiKTtpZihhLmNvbnN0cnVjdG9yIT1iLmNvbnN0cnVjdG9yKXJldHVybiExO2lmKGEuY29uc3RydWN0b3I9PT1BcnJheSl7dmFyIGc9YVtfLkNkXXwwLGg9YltfLkNkXXwwLGs9YS5sZW5ndGgsbT1iLmxlbmd0aDtlPU1hdGgubWF4KGssbSk7Zj0oZ3xofDY0KSYxMjg/MDotMTt2YXIgcD1kPT09MXx8ISEoKGd8aCkmMSk7aWYocClkPTE7ZWxzZSBpZigoZ3xoKSY4MTkyKXJldHVybiBCbGEoYSxiKTtsZXQgcSx1OyFwJiZfLnNyJiYoYz8/KGM9YVtfLnNyXT8/YltfLnNyXSksYyE9bnVsbCYmKHE9Yy5YSCgpLHU9Yy5SSCgpKSk7Zz1rJiZhW2stMV07aD1tJiZiW20tMV07ZyE9bnVsbCYmdHlwZW9mIGc9PT0ib2JqZWN0IiYmZy5jb25zdHJ1Y3Rvcj09PU9iamVjdHx8KGc9bnVsbCk7aCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdHx8KGg9bnVsbCk7az1rLWYtKyEhZzttPW0tZi0rISFoOwpmb3IocD0wO3A8ZTtwKyspaWYoIUNsYShwLWYsYSxnLGssYixoLG0sZixxLHUsYyxkKSlyZXR1cm4hMTtpZihnKWZvcihsZXQgeCBpbiBnKWlmKCFEbGEoZyx4LGEsZyxrLGIsaCxtLGYscSx1LGMpKXJldHVybiExO2lmKGgpZm9yKGxldCB4IGluIGgpaWYoIShnJiZ4IGluIGd8fERsYShoLHgsYSxnLGssYixoLG0sZixxLHUsYykpKXJldHVybiExO3JldHVybiEwfWlmKGEuY29uc3RydWN0b3I9PT1PYmplY3QpcmV0dXJuIEV2KFthXSxbYl0pO3Rocm93IEVycm9yKCk7fTtEbGE9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGssbSxwLHEpe2lmKCFfLldkKGEsYikpcmV0dXJuITA7YT0rYjtyZXR1cm4hTnVtYmVyLmlzRmluaXRlKGEpfHxhPGV8fGE8aD8hMDpDbGEoYSxjLGQsZSxmLGcsaCxrLG0scCxxLDIpfTsKQ2xhPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrLG0scCxxKXtiPShhPGQ/YlthK2hdOnZvaWQgMCk/P2M/LlthXTtlPShhPGc/ZVthK2hdOnZvaWQgMCk/P2Y/LlthXTtxPXE9PT0xO2lmKGU9PW51bGwmJndsYShiLGssYSl8fGI9PW51bGwmJndsYShlLGssYSkpcmV0dXJuITA7cD1xP3A6cD8uYk4oYSk7aWYobT1tPy5oYXMoYSkpe2lmKGI9PW51bGwmJkFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUubGVuZ3RoPT09MDtpZihlPT1udWxsJiZBcnJheS5pc0FycmF5KGIpKXJldHVybiBiLmxlbmd0aD09PTA7aWYoQXJyYXkuaXNBcnJheShiKSYmQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gQmxhKGIsZSl9cmV0dXJuIER2KGIsZSxwLG18fHZsYShrLGEpPzE6MCl9OwpCbGE9ZnVuY3Rpb24oYSxiKXtpZighQXJyYXkuaXNBcnJheShhKXx8IUFycmF5LmlzQXJyYXkoYikpcmV0dXJuITE7YT1bLi4uYV07Yj1bLi4uYl07QXJyYXkucHJvdG90eXBlLnNvcnQuY2FsbChhLHpsYSk7QXJyYXkucHJvdG90eXBlLnNvcnQuY2FsbChiLHpsYSk7dmFyIGM9YS5sZW5ndGgsZD1iLmxlbmd0aDtpZihjPT09MCYmZD09PTApcmV0dXJuITA7Zm9yKHZhciBlPTAsZj0wO2U8YyYmZjxkOyl7bGV0IGcsaD1hW2VdO2lmKCFBcnJheS5pc0FycmF5KGgpKXJldHVybiExO2xldCBrPWhbMF07Zm9yKDtlPGMtMSYmRXYoKGc9YVtlKzFdKVswXSxrKTspZSsrLGg9ZztsZXQgbSxwPWJbZl07aWYoIUFycmF5LmlzQXJyYXkocCkpcmV0dXJuITE7bGV0IHE9cFswXTtmb3IoO2Y8ZC0xJiZFdigobT1iW2YrMV0pWzBdLHEpOylmKysscD1tO2lmKCFFdihrLHEpfHwhRXYoaFsxXSxwWzFdKSlyZXR1cm4hMTtlKys7ZisrfXJldHVybiBlPj1jJiZmPj1kfTsKXy5Gdj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hW18uQ2RdfDAsZj1fLmJlKGUpO2U9Xy5yZyhhLGUsYyxiLGYpO18uUGYoYSxlLGIsZCxmKX07Xy5Hdj1mdW5jdGlvbihhLGIsYyxkKXtfLkxmKGEpO3ZhciBlPWEuTGk7YT1fLlhmKGEsZSxlW18uQ2RdfDAsYyxiLDIsdm9pZCAwLCEwKTtfLllkKGEsZCk7Yz1hW2RdO2I9Xy5JZihjKTtjIT09YiYmKGFbZF09YixkPWE9PT1fLmVnPzc6YVtfLkNkXXwwLDQwOTYmZHx8KGFbXy5DZF09ZHw0MDk2LF8uTWYoZSkpKTtyZXR1cm4gYn07Xy5Idj1mdW5jdGlvbihhLGIsYyxkLGUpe18uWmYoYSxiLGMsdm9pZCAwLGQsZSk7cmV0dXJuIGF9O18uSXY9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5aZihhLGIsYyx2b2lkIDAsdm9pZCAwLGQsMSwhMCk7cmV0dXJuIGF9O18uSnY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWJ8fGE9PW51bGwmJmI9PW51bGx8fCEoIWF8fCFiKSYmYSBpbnN0YW5jZW9mIGIuY29uc3RydWN0b3ImJkFsYShhLGIpfTsKXy5Ldj1mdW5jdGlvbihhLGIpe3tpZihfLlNkKGEpKXRocm93IEVycm9yKCk7aWYoYi5jb25zdHJ1Y3RvciE9PWEuY29uc3RydWN0b3IpdGhyb3cgRXJyb3IoIkNvcHkgc291cmNlIGFuZCB0YXJnZXQgbWVzc2FnZSBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZS4iKTtsZXQgYz1iLkxpLGQ9Y1tfLkNkXXwwO18uR2YoYixjLGQpPyhhLkxpPWMsXy5WZChhLCEwKSxhLnhCPV8uUmQpOihiPWM9Xy5GZihjLGQpLF8uRGQoYiwyMDQ4KSxhLkxpPWIsXy5WZChhLCExKSxhLnhCPXZvaWQgMCl9fTtMdj1mdW5jdGlvbihhLGIsYyl7Yj1fLnZlKGIpO2IhPW51bGwmJihfLlloKGEsYyw1KSxhPWEucWgsdHUoYiksXy5SaChhLF8uZWUpKX07TXY9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5DdihiKTtiIT1udWxsJiYoZ2xhKGIpLGZsYShhLGMsYikpfTtOdj1mdW5jdGlvbihhLGIsYyl7aGxhKGEsYyxfLkN2KGIpKX07CkVsYT1mdW5jdGlvbihhLGIsYyl7Yj1fLnlpKF8uQ3YsYiwhMSk7aWYoYiE9bnVsbClmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKylobGEoYSxjLGJbZF0pfTtGbGE9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5KZShiKTtiIT1udWxsJiYoXy5ZaChhLGMsNSksXy5SaChhLnFoLGIpKX07R2xhPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1fLm1pKGIsZCk7YiE9bnVsbCYmKF8uWWgoYSxjLDMpLGUoYixhKSxfLlloKGEsYyw0KSl9O0hsYT1mdW5jdGlvbihhLGIsYyl7Yj1fLkdlKGIpO2IhPW51bGwmJmIhPW51bGwmJihfLlloKGEsYywwKSxfLlNoKGEucWgsXy51dShiKSkpfTsKXy5JbGE9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5hZihiKTtpZihiIT1udWxsJiYoXy5maShiKSxiIT1udWxsKSlzd2l0Y2goXy5ZaChhLGMsMCksdHlwZW9mIGIpe2Nhc2UgIm51bWJlciI6YT1hLnFoO18uU2thKGIpO18uUWgoYSxfLmVlLF8uZ2UpO2JyZWFrO2Nhc2UgImJpZ2ludCI6YT1hLnFoO18uVGthKGIpO18uUWgoYSxfLmVlLF8uZ2UpO2JyZWFrO2RlZmF1bHQ6Xy5lbGEoYS5xaCxiKX19O0psYT1mdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTUmJmEucWghPT0yKXJldHVybiExO2I9Xy5XZihiLGMpO2EucWg9PTI/Xy5EaChhLE11LGIpOmIucHVzaChNdShhLnJoKSk7cmV0dXJuITB9O0tsYT1mdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTApcmV0dXJuITE7Xy5FaShiLGMsSnUoYS5yaCkpO3JldHVybiEwfTsKTGxhPWZ1bmN0aW9uKGEsYixjKXthLnFoIT09MCYmYS5xaCE9PTI/YT0hMTooYj1fLldmKGIsYyksYS5xaD09Mj9fLkRoKGEsSnUsYik6Yi5wdXNoKEp1KGEucmgpKSxhPSEwKTtyZXR1cm4gYX07TWxhPWZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MSlyZXR1cm4hMTtfLkVpKGIsYyxMdShhLnJoKSk7cmV0dXJuITB9O05sYT1mdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTEmJmEucWghPT0yKXJldHVybiExO2I9Xy5XZihiLGMpO2EucWg9PTI/Xy5EaChhLEx1LGIpOmIucHVzaChMdShhLnJoKSk7cmV0dXJuITB9O09sYT1mdW5jdGlvbihhLGIsYyxkKXtpZihhLnFoIT09MSlyZXR1cm4hMTtfLkZ2KGIsYyxkLEx1KGEucmgpKTtyZXR1cm4hMH07UGxhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWxhKGEsYixjKX07Xy5RbGE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBObGEoYSxiLGMpfTsKUmxhPWZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09NSYmYS5xaCE9PTIpcmV0dXJuITE7Yj1fLldmKGIsYyk7YS5xaD09Mj9fLkRoKGEsS3UsYik6Yi5wdXNoKEt1KGEucmgpKTtyZXR1cm4hMH07U2xhPWZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MCYmYS5xaCE9PTIpcmV0dXJuITE7Yj1fLldmKGIsYyk7YS5xaD09Mj9fLkRoKGEsXy5zaCxiKTpiLnB1c2goXy5zaChhLnJoKSk7cmV0dXJuITB9O18uVGxhPWZ1bmN0aW9uKGEpe3JldHVybiBfLmNlKGI9PmIgaW5zdGFuY2VvZiBhJiYhXy5TZChiKSl9O18uT3Y9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8uc2opcmV0dXJuIGEucWg7dGhyb3cgRXJyb3IoIiIpO307Xy5Qdj1mdW5jdGlvbihhLGIpe2IgaW5zdGFuY2VvZiBfLnNqP2I9Xy5PdihiKTpiPVVsYS50ZXN0KGIpP2I6dm9pZCAwO2IhPT12b2lkIDAmJihhLmhyZWY9Yil9OwpYbGE9ZnVuY3Rpb24oYSl7dmFyIGI9VmxhO2lmKGIubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiIik7aWYoYi5tYXAoYz0+e2lmKGMgaW5zdGFuY2VvZiBXbGEpYz1jLnFoO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO3JldHVybiBjfSkuZXZlcnkoYz0+ImFyaWEtcm9sZWRlc2NyaXB0aW9uIi5pbmRleE9mKGMpIT09MCkpdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiYXJpYS1yb2xlZGVzY3JpcHRpb24iIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYWxsb3dlZCBwcmVmaXhlcy4nKTthLnNldEF0dHJpYnV0ZSgiYXJpYS1yb2xlZGVzY3JpcHRpb24iLCJtYXAiKX07CllsYT1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKXtsZXQgZD1hW2NdLmluZGV4T2YoIj0iKSxlLGY9bnVsbDtkPj0wPyhlPWFbY10uc3Vic3RyaW5nKDAsZCksZj1hW2NdLnN1YnN0cmluZyhkKzEpKTplPWFbY107YihlLGY/ZGVjb2RlVVJJQ29tcG9uZW50KGYucmVwbGFjZSgvXCsvZywiICIpKToiIil9fX07Xy5Rdj1mdW5jdGlvbihhLGIpe3JldHVybiBfLmJiYShhLDAsYil9O1psYT1mdW5jdGlvbihhLGIsYyl7aWYoYS5mb3JFYWNoJiZ0eXBlb2YgYS5mb3JFYWNoPT0iZnVuY3Rpb24iKWEuZm9yRWFjaChiLGMpO2Vsc2UgaWYoXy5ZYShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIilBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYixjKTtlbHNle2xldCBkPV8uRmsoYSksZT1fLkVrKGEpLGY9ZS5sZW5ndGg7Zm9yKGxldCBnPTA7ZzxmO2crKyliLmNhbGwoYyxlW2ddLGQmJmRbZ10sYSl9fTsKXy5Sdj1mdW5jdGlvbihhLGIpe3RoaXMucmg9dGhpcy5xaD1udWxsO3RoaXMuc2g9YXx8bnVsbDt0aGlzLnRoPSEhYn07Xy5Tdj1mdW5jdGlvbihhKXthLnFofHwoYS5xaD1uZXcgTWFwLGEucmg9MCxhLnNoJiZZbGEoYS5zaCxmdW5jdGlvbihiLGMpe2EuYWRkKGRlY29kZVVSSUNvbXBvbmVudChiLnJlcGxhY2UoL1wrL2csIiAiKSksYyl9KSl9OyRsYT1mdW5jdGlvbihhLGIpe18uU3YoYSk7Yj1UdihhLGIpO3JldHVybiBhLnFoLmhhcyhiKX07VHY9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLnRoJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBifTthbWE9ZnVuY3Rpb24oYSxiKXtiJiYhYS50aCYmKF8uU3YoYSksYS5zaD1udWxsLGEucWguZm9yRWFjaChmdW5jdGlvbihjLGQpe3ZhciBlPWQudG9Mb3dlckNhc2UoKTtkIT1lJiYodGhpcy5yZW1vdmUoZCksdGhpcy5zZXRWYWx1ZXMoZSxjKSl9LGEpKTthLnRoPWJ9OwpVdj1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn07Ym1hPWZ1bmN0aW9uKGEpe2E9YS5jaGFyQ29kZUF0KDApO3JldHVybiIlIisoYT4+NCYxNSkudG9TdHJpbmcoMTYpKyhhJjE1KS50b1N0cmluZygxNil9O1Z2PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj8oYT1lbmNvZGVVUkkoYSkucmVwbGFjZShiLGJtYSksYyYmKGE9YS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxhKTpudWxsfTsKXy5Xdj1mdW5jdGlvbihhKXt0aGlzLnFoPXRoaXMueWg9dGhpcy5zaD0iIjt0aGlzLnRoPW51bGw7dGhpcy54aD10aGlzLnpoPSIiO3RoaXMud2g9ITE7dmFyIGI7YSBpbnN0YW5jZW9mIF8uV3Y/KHRoaXMud2g9YS53aCxfLlh2KHRoaXMsYS5zaCksWXYodGhpcyxhLnloKSx0aGlzLnFoPWEucWgsXy5adih0aGlzLGEudGgpLHRoaXMuc2V0UGF0aChhLmdldFBhdGgoKSksJHYodGhpcyxhLnJoLmNsb25lKCkpLF8uYXcodGhpcyxhLnhoKSk6YSYmKGI9U3RyaW5nKGEpLm1hdGNoKF8uRGopKT8odGhpcy53aD0hMSxfLlh2KHRoaXMsYlsxXXx8IiIsITApLFl2KHRoaXMsYlsyXXx8IiIsITApLHRoaXMucWg9VXYoYlszXXx8IiIsITApLF8uWnYodGhpcyxiWzRdKSx0aGlzLnNldFBhdGgoYls1XXx8IiIsITApLCR2KHRoaXMsYls2XXx8IiIsITApLF8uYXcodGhpcyxiWzddfHwiIiwhMCkpOih0aGlzLndoPSExLHRoaXMucmg9bmV3IF8uUnYobnVsbCx0aGlzLndoKSl9OwpfLlh2PWZ1bmN0aW9uKGEsYixjKXthLnNoPWM/VXYoYiwhMCk6YjthLnNoJiYoYS5zaD1hLnNoLnJlcGxhY2UoLzokLywiIikpfTtZdj1mdW5jdGlvbihhLGIsYyl7YS55aD1jP1V2KGIpOmI7cmV0dXJuIGF9O18uWnY9ZnVuY3Rpb24oYSxiKXtpZihiKXtiPU51bWJlcihiKTtpZihpc05hTihiKXx8YjwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIitiKTthLnRoPWJ9ZWxzZSBhLnRoPW51bGx9OyR2PWZ1bmN0aW9uKGEsYixjKXtiIGluc3RhbmNlb2YgXy5Sdj8oYS5yaD1iLGFtYShhLnJoLGEud2gpKTooY3x8KGI9VnYoYixjbWEpKSxhLnJoPW5ldyBfLlJ2KGIsYS53aCkpO3JldHVybiBhfTtfLmF3PWZ1bmN0aW9uKGEsYixjKXthLnhoPWM/VXYoYik6YjtyZXR1cm4gYX07ZG1hPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgXy5Xdj9hLmNsb25lKCk6bmV3IF8uV3YoYSl9O18uYnc9ZnVuY3Rpb24oYSxiKXthJT1iO3JldHVybiBhKmI8MD9hK2I6YX07Cl8uY3c9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhK2MqKGItYSl9O18uZHc9ZnVuY3Rpb24oYSxiKXt0aGlzLng9YSE9PXZvaWQgMD9hOjA7dGhpcy55PWIhPT12b2lkIDA/YjowfTtlbWE9YXN5bmMgZnVuY3Rpb24oKXtpZihfLk1sPzA6Xy5MbCgpKXRyeXsoYXdhaXQgXy5IbCgibG9nIikpLkh3LnhoKCl9Y2F0Y2goYSl7fX07Xy5ldz1mdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5sb2coYSkvTWF0aC5MTjJ9O2ZtYT1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSExLGQ7cmV0dXJuIGU9PntlPWV8fCgoKT0+e30pO2M/ZShkKTooYi5wdXNoKGUpLGIubGVuZ3RoPT09MSYmYShmPT57ZD1mO2ZvcihjPSEwO2IubGVuZ3RoOyl7bGV0IGc9Yi5zaGlmdCgpO2cmJmcoZil9fSkpfX07Xy5nbWE9ZnVuY3Rpb24oYSl7YT1hLnNwbGl0KC8oXlteQS1aXSt8W0EtWl1bXkEtWl0rKS8pO3ZhciBiPVtdO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7KytjKWFbY10mJmIucHVzaChhW2NdKTtyZXR1cm4gYi5qb2luKCItIikudG9Mb3dlckNhc2UoKX07Cl8uZnc9ZnVuY3Rpb24oYSl7YS5fX2dtX2ludGVybmFsX19ub0NsaWNrPSEwfTtfLmd3PWZ1bmN0aW9uKGEpe3JldHVybiEhYS5fX2dtX2ludGVybmFsX19ub0NsaWNrfTtobWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGIuY2FsbChhLGMsdGhpcyl9fTtfLmh3PWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIF8ucW4oYSxiLGhtYShjLGQpLGUpfTtfLmt3PWZ1bmN0aW9uKCl7Xy5pdyYmXy5qdyYmKF8uWm49bnVsbCl9O18uaW1hPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5sdy5MajtyZXR1cm4gYyhhKSE9PWMoYil9O18ubXc9ZnVuY3Rpb24oYSxiLGMsZD0hMSl7Yz1NYXRoLnBvdygyLGMpO3ZhciBlPW5ldyBfLmJvKDAsMCk7ZS54PWIueC9jO2UueT1iLnkvYztyZXR1cm4gYS5mcm9tUG9pbnRUb0xhdExuZyhlLGQpfTsKam1hPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5nZXRTb3V0aFdlc3QoKTtiPWIuZ2V0Tm9ydGhFYXN0KCk7dmFyIGQ9Yy5sbmcoKSxlPWIubG5nKCk7ZD5lJiYoYj1uZXcgXy5UbShiLmxhdCgpLGUrMzYwLCEwKSk7Yz1hLmZyb21MYXRMbmdUb1BvaW50KGMpO2E9YS5mcm9tTGF0TG5nVG9Qb2ludChiKTtyZXR1cm4gbmV3IF8ueW8oW2MsYV0pfTtfLm53PWZ1bmN0aW9uKGEsYixjKXthPWptYShhLGIpO2M9TWF0aC5wb3coMixjKTtiPW5ldyBfLnlvO2IubWluWD1hLm1pblgqYztiLm1pblk9YS5taW5ZKmM7Yi5tYXhYPWEubWF4WCpjO2IubWF4WT1hLm1heFkqYztyZXR1cm4gYn07Xy5rbWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkJvKGEsbmV3IF8uVG0oMCwxNzkuOTk5OTk5KSxiKTthPV8uQm8oYSxuZXcgXy5UbSgwLC0xNzkuOTk5OTk5KSxiKTtyZXR1cm4gbmV3IF8uYm8oYy54LWEueCxjLnktYS55KX07Cl8ub3c9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmXy5qbShiKT8oYT1fLmttYShhLGIpLE1hdGguc3FydChhLngqYS54K2EueSphLnkpKTowfTsKXy5sbWE9ZnVuY3Rpb24oYSxiLGM9ITEpe2J8fChiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYi5zdHlsZS53aWR0aD0iMTAwJSIsYi5zdHlsZS5oZWlnaHQ9IjEwMCUiLGIuc3R5bGUuYm94U2l6aW5nPSJib3JkZXItYm94IixiLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYi5zdHlsZS56SW5kZXg9IjEwMDAwMDIiLGIuc3R5bGUub3BhY2l0eT0iMCIsYi5zdHlsZS5ib3JkZXI9IjJweCBzb2xpZCAjMWE3M2U4Iik7bmV3IF8uRnAoYSwiZm9jdXMiLCgpPT57dmFyIGQ9IjAiO18uR3AmJiFjP18uRXAoYSwiOmZvY3VzLXZpc2libGUiKSYmKGQ9IjEiKTpfLkhwJiZfLkhwIT09IktFWUJPQVJEInx8KGQ9IjEiKTtiLnN0eWxlLm9wYWNpdHk9ZH0pO25ldyBfLkZwKGEsImJsdXIiLCgpPT57Yi5zdHlsZS5vcGFjaXR5PSIwIn0pO3JldHVybiBifTsKXy5wdz1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuY2xhc3NOYW1lPT0ic3RyaW5nIj9hLmNsYXNzTmFtZTphLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifTtfLm1tYT1mdW5jdGlvbihhLGIpe3R5cGVvZiBhLmNsYXNzTmFtZT09InN0cmluZyI/YS5jbGFzc05hbWU9YjphLnNldEF0dHJpYnV0ZSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIixiKX07Xy5ubWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QuY29udGFpbnMoYik6Xy52YyhhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpfLnB3KGEpLm1hdGNoKC9cUysvZyl8fFtdLGIpfTtfLnF3PWZ1bmN0aW9uKGEsYil7aWYoYS5jbGFzc0xpc3QpYS5jbGFzc0xpc3QuYWRkKGIpO2Vsc2UgaWYoIV8ubm1hKGEsYikpe2xldCBjPV8ucHcoYSk7Xy5tbWEoYSxjKyhjLmxlbmd0aD4wPyIgIitiOmIpKX19OwpfLnJ3PWZ1bmN0aW9uKGEpe3JldHVybiBhP2Eubm9kZVR5cGU9PT05P2E6YS5vd25lckRvY3VtZW50fHxkb2N1bWVudDpkb2N1bWVudH07Xy5zdz1mdW5jdGlvbihhLGIsYyl7YT1fLnJ3KGIpLmNyZWF0ZVRleHROb2RlKGEpO2ImJiFjJiZiLmFwcGVuZENoaWxkKGEpO3JldHVybiBhfTtfLnR3PWZ1bmN0aW9uKGEpe2E9YS5zdHlsZTthLnBvc2l0aW9uIT09ImFic29sdXRlIiYmKGEucG9zaXRpb249ImFic29sdXRlIil9O18udXc9ZnVuY3Rpb24oYSxiLGMsZCl7YSYmKGR8fF8udHcoYSksYT1hLnN0eWxlLGM9Yz8icmlnaHQiOiJsZWZ0IixkPV8ucG0oYi54KSxhW2NdIT09ZCYmKGFbY109ZCksYj1fLnBtKGIueSksYS50b3AhPT1iJiYoYS50b3A9YikpfTtfLnZ3PWZ1bmN0aW9uKGEsYixjLGQsZSl7YT1fLnJ3KGIpLmNyZWF0ZUVsZW1lbnQoYSk7YyYmXy51dyhhLGMpO2QmJl8uUXAoYSxkKTtiJiYhZSYmYi5hcHBlbmRDaGlsZChhKTtyZXR1cm4gYX07Cl8ud3c9ZnVuY3Rpb24oYSxiKXthLnN0eWxlLnpJbmRleD1gJHtNYXRoLnJvdW5kKGIpfWB9O18ueHc9ZnVuY3Rpb24oKXt2YXIgYT1fLmF3KFl2KGRtYShfLlVhLmRvY3VtZW50Py5sb2NhdGlvbiYmXy5VYS5kb2N1bWVudD8ubG9jYXRpb24uaHJlZnx8Xy5VYS5sb2NhdGlvbj8uaHJlZiksIiIpLCIiKS5zZXRRdWVyeSgiIikudG9TdHJpbmcoKSxiO2lmKGI9Xy5KbCliPV8uSChfLkpsLDQ1KT09PSJvcmlnaW4iO3JldHVybiBiP3dpbmRvdy5sb2NhdGlvbi5vcmlnaW46YX07Xy5vbWE9ZnVuY3Rpb24oYSl7YT1fLnJ3KGEpPy5kZWZhdWx0Vmlld3x8d2luZG93O3RyeXtyZXR1cm4gYS5zZWxmIT09d2luZG93LnRvcH1jYXRjaChiKXtyZXR1cm4hMH19OwpfLnl3PWZ1bmN0aW9uKCl7dmFyIGE7KGE9Xy50bGEoKSl8fChhPV8uTnAsYT1hLnR5cGU9PT00JiZhLkNoJiZfLnN2KF8uTnAudmVyc2lvbiw1MzQpKTthfHwoYT1fLk5wLGE9YS54aCYmYS5DaCk7cmV0dXJuIGF8fHdpbmRvdy5uYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MHx8d2luZG93Lm5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzPjB8fCJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYib250b3VjaG1vdmUiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYib250b3VjaGVuZCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9Owp6dz1mdW5jdGlvbihhLGI9d2luZG93KXtpZighYSlyZXR1cm4hMTtpZihhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe2xldCB7Y29udGVudFZpc2liaWxpdHk6YyxkaXNwbGF5OmQsdmlzaWJpbGl0eTplfT1iLmdldENvbXB1dGVkU3R5bGUoYSk7aWYoZD09PSJub25lInx8Yz09PSJoaWRkZW4ifHxlPT09ImhpZGRlbiIpcmV0dXJuITB9cmV0dXJuIGEgaW5zdGFuY2VvZiBTaGFkb3dSb290P3p3KGEuaG9zdCxiKTp6dyhhLnBhcmVudE5vZGUsYil9OwpwbWE9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXsibWF0Y2hlcyJpbiBkJiZkLm1hdGNoZXMoJ2J1dHRvbjpub3QoW3RhYmluZGV4PSItMSJdKSwgW2hyZWZdOm5vdChbdGFiaW5kZXg9Ii0xIl0pOm5vdChbaHJlZj0iIl0pLGlucHV0Om5vdChbdGFiaW5kZXg9Ii0xIl0pLCBzZWxlY3Q6bm90KFt0YWJpbmRleD0iLTEiXSksdGV4dGFyZWE6bm90KFt0YWJpbmRleD0iLTEiXSksIFtpZnJhbWVdOm5vdChbdGFiaW5kZXg9Ii0xIl0pLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknKSYmYy5wdXNoKGQpOyJzaGFkb3dSb290ImluIGQmJmQuc2hhZG93Um9vdCYmQXJyYXkuZnJvbShkLnNoYWRvd1Jvb3QuY2hpbGRyZW4pLmZvckVhY2goYik7QXJyYXkuZnJvbShkLmNoaWxkcmVuKS5mb3JFYWNoKGIpfXZhciBjPVtdO2IoYSk7cmV0dXJuIGN9OwpfLkF3PWZ1bmN0aW9uKGEsYj0hMSl7YT1wbWEoYSk7cmV0dXJuIGI/YS5maWx0ZXIoYz0+IXp3KGMpJiYhXy5FcChjLCJbYXJpYS1oaWRkZW49dHJ1ZV0sIFthcmlhLWhpZGRlbj10cnVlXSAqIikpOmF9O18uQnc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5YaD09PWIuWGgmJmEuWWg9PT1iLllofTtfLkN3PWZ1bmN0aW9uKGEpe2EucGFyZW50Tm9kZSYmKGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSxfLmRxKGEpKX07RHc9ZnVuY3Rpb24oe2tpOmEsbGk6Yix1aTpjfSl7cmV0dXJuYCgke2F9LCR7Yn0pQCR7Y31gfTtfLkV3PWZ1bmN0aW9uKGEsYil7YT1fLk1xKGIpLmZyb21MYXRMbmdUb1BvaW50KGEpO3JldHVybiBuZXcgXy5XcChhLngsYS55KX07Cl8ucW1hPWZ1bmN0aW9uKGEsYixjPSExKXtiPV8uTXEoYik7cmV0dXJuIG5ldyBfLlJuKGIuZnJvbVBvaW50VG9MYXRMbmcobmV3IF8uYm8oYS5taW4ucWgsYS5tYXgucmgpLGMpLGIuZnJvbVBvaW50VG9MYXRMbmcobmV3IF8uYm8oYS5tYXgucWgsYS5taW4ucmgpLGMpKX07cm1hPWZ1bmN0aW9uKGEpe2EuVmkubGVuZ3RoJiYhYS5xaCYmKGEucWg9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57YS5leGVjdXRlKCl9KSl9O18uRnc9ZnVuY3Rpb24oYSxiLGMsZCl7ZCYmYS5rZXlzLmhhcyhkKXx8KGQmJmEua2V5cy5hZGQoZCksYS5WaS5wdXNoKGIsYyxkKSxybWEoYSkpfTtfLkd3PWZ1bmN0aW9uKCl7cmV0dXJuIHNtYXx8KHNtYT1uZXcgdG1hKX07Xy5Idz1mdW5jdGlvbihhLGIpe3JldHVybiBfLmtoKGEsMSxiKX07Xy5Jdz1mdW5jdGlvbihhLGIpe3JldHVybiBfLmloKGEsMixiKX07Xy5Kdz1mdW5jdGlvbihhLGIpe3JldHVybiBfLmJoKGEsMyxiKX07Cl8uS3c9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uT2coYSwxKX07Xy5Mdz1mdW5jdGlvbihhLGIpe3JldHVybiBfLkF1KGEsMSxiKX07Xy5Ndz1mdW5jdGlvbihhKXtyZXR1cm4gXy5PZyhhLDIpfTtfLk53PWZ1bmN0aW9uKGEsYil7Xy5BdShhLDIsYil9O18uT3c9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5paChhLDEsYil9O18uUHc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5raChhLDEsYil9O18uUnc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWmYoYSwyLF8uUXcpfTtfLlN3PWZ1bmN0aW9uKGEpe3JldHVybiBfLktnKGEsMil9O18uVHc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5iaChhLDIsYil9O18uVXc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uS2coYSwzKX07Xy5Wdz1mdW5jdGlvbihhLGIpe3JldHVybiBfLmJoKGEsMyxiKX07dm1hPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IHVtYTthPV8uamgoYSwyLF8uV3cpO3JldHVybiBfLmxoKGEsNiwxKX07CndtYT1mdW5jdGlvbihhLGIsYyl7Yz1jfHx7fTtjLmZvcm1hdD0ianNwYiI7dGhpcy5xaD1uZXcgXy5ScihjKTt0aGlzLnJoPWE9PXZvaWQgMD9hOmEucmVwbGFjZSgvXC8rJC8sIiIpfTtfLnltYT1mdW5jdGlvbihhLGIpe3JldHVybiBhLnFoLnFoKGEucmgrIi8kcnBjL2dvb2dsZS5pbnRlcm5hbC5tYXBzLm1hcHNqcy52MS5NYXBzSnNJbnRlcm5hbFNlcnZpY2UvSW5pdE1hcHNKd3QiLGIse30seG1hKX07WHc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/Xy5jZShiPT57dHJ5e2lmKGIgaW5zdGFuY2VvZiBhKXJldHVybiEwO2xldCBjPWI/Lm93bmVyRG9jdW1lbnQ/LmRlZmF1bHRWaWV3Py5bYS5uYW1lXTtyZXR1cm4oMCxfLkZnYSkoYykmJmIgaW5zdGFuY2VvZiBjfWNhdGNoe3JldHVybiExfX0pOl8uY2UoKCk9PiExKX07Xy5Zdz1mdW5jdGlvbigpe3JldHVybiBfLlVhLmRldmljZVBpeGVsUmF0aW98fHNjcmVlbi5kZXZpY2VYRFBJJiZzY3JlZW4uZGV2aWNlWERQSS85Nnx8MX07CnptYT1mdW5jdGlvbihhLGIpe3ZhciBjPWRvY3VtZW50LGQ9Yy5oZWFkO2M9Yy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtjLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yy5jaGFyc2V0PSJVVEYtOCI7Yy5zcmM9Xy5yaihhKTtfLkthYShjKTtiJiYoYy5vbmVycm9yPWIpO2QuYXBwZW5kQ2hpbGQoYyk7cmV0dXJuIGN9O18uWnc9ZnVuY3Rpb24oYSxiLGMpe3JldHVybihfLkpsP3FsYSgpOiIiKSthKyhiJiZfLll3KCk+MT8iX2hkcGkiOiIiKSsoYz8iLmdpZiI6Ii5wbmciKX07QW1hPWZ1bmN0aW9uKGEpe3ZhciBiPWEuUmguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGEuUmguRG4oe2NsaWVudFg6Yi5sZWZ0LGNsaWVudFk6Yi50b3B9KX07CkJtYT1mdW5jdGlvbihhLGIsYyl7aWYoIShjJiZiJiZhLmNlbnRlciYmYS5zY2FsZSYmYS5zaXplKSlyZXR1cm4gbnVsbDtiPV8uWG0oYik7dmFyIGQ9Xy5FdyhiLGEubWFwLmdldCgicHJvamVjdGlvbiIpKTtkPV8ud3YoYS5SaC5RayxkLGEuY2VudGVyKTsoYj1hLnNjYWxlLnFoKT8oZD1iLkJvKGQsYS5jZW50ZXIsXy56dihhLnNjYWxlKSxhLnNjYWxlLnRpbHQsYS5zY2FsZS5oZWFkaW5nLGEuc2l6ZSksYT1iLkJvKGMsYS5jZW50ZXIsXy56dihhLnNjYWxlKSxhLnNjYWxlLnRpbHQsYS5zY2FsZS5oZWFkaW5nLGEuc2l6ZSksYT17WGg6ZFswXS1hWzBdLFloOmRbMV0tYVsxXX0pOmE9Xy55dihhLnNjYWxlLF8udXYoZCxjKSk7cmV0dXJuIG5ldyBfLmJvKGEuWGgsYS5ZaCl9OwpDbWE9ZnVuY3Rpb24oYSxiLGMsZD0hMSl7aWYoIShjJiZhLnNjYWxlJiZhLmNlbnRlciYmYS5zaXplJiZiKSlyZXR1cm4gbnVsbDt2YXIgZT1hLnNjYWxlLnFoO2U/KGM9ZS5CbyhjLGEuY2VudGVyLF8uenYoYS5zY2FsZSksYS5zY2FsZS50aWx0LGEuc2NhbGUuaGVhZGluZyxhLnNpemUpLGI9YS5zY2FsZS5xaC5FdyhjWzBdK2IueCxjWzFdK2IueSxhLmNlbnRlcixfLnp2KGEuc2NhbGUpLGEuc2NhbGUudGlsdCxhLnNjYWxlLmhlYWRpbmcsYS5zaXplKSk6Yj1fLnR2KGMsXy5YcChhLnNjYWxlLHtYaDpiLngsWWg6Yi55fSkpO3JldHVybiBfLk5xKGIsYS5tYXAuZ2V0KCJwcm9qZWN0aW9uIiksZCl9OwpfLiR3PWZ1bmN0aW9uKGEsYixjKXtpZihEbWEpcmV0dXJuIG5ldyBNb3VzZUV2ZW50KGEse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx2aWV3OmMudmlldyxkZXRhaWw6MSxzY3JlZW5YOmIuY2xpZW50WCxzY3JlZW5ZOmIuY2xpZW50WSxjbGllbnRYOmIuY2xpZW50WCxjbGllbnRZOmIuY2xpZW50WSxjdHJsS2V5OmMuY3RybEtleSxzaGlmdEtleTpjLnNoaWZ0S2V5LGFsdEtleTpjLmFsdEtleSxtZXRhS2V5OmMubWV0YUtleSxidXR0b246Yy5idXR0b24sYnV0dG9uczpjLmJ1dHRvbnMscmVsYXRlZFRhcmdldDpjLnJlbGF0ZWRUYXJnZXR9KTt2YXIgZD1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtkLmluaXRNb3VzZUV2ZW50KGEsITAsITAsYy52aWV3LDEsYi5jbGllbnRYLGIuY2xpZW50WSxiLmNsaWVudFgsYi5jbGllbnRZLGMuY3RybEtleSxjLmFsdEtleSxjLnNoaWZ0S2V5LGMubWV0YUtleSxjLmJ1dHRvbixjLnJlbGF0ZWRUYXJnZXQpO3JldHVybiBkfTsKYXg9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ucXUoYS5xaCl9O18uYng9ZnVuY3Rpb24oYSl7YS5xaC5fX2dtX2ludGVybmFsX19ub0Rvd249ITB9O18uY3g9ZnVuY3Rpb24oYSl7YS5xaC5fX2dtX2ludGVybmFsX19ub01vdmU9ITB9O18uZHg9ZnVuY3Rpb24oYSl7YS5xaC5fX2dtX2ludGVybmFsX19ub1VwPSEwfTtfLmV4PWZ1bmN0aW9uKGEpe2EucWguX19nbV9pbnRlcm5hbF9fbm9Db250ZXh0TWVudT0hMH07Xy5meD1mdW5jdGlvbihhLGIpe3JldHVybiBfLlVhLnNldFRpbWVvdXQoKCk9Pnt0cnl7YSgpfWNhdGNoKGMpe3Rocm93IGM7fX0sYil9O2d4PWZ1bmN0aW9uKGEsYil7YS5zaCYmKF8uVWEuY2xlYXJUaW1lb3V0KGEuc2gpLGEuc2g9MCk7YiYmKGEucmg9YixiLlF3JiZiLmpxJiYoYS5zaD1fLmZ4KCgpPT57Z3goYSxiLmpxKCkpfSxiLlF3KSkpfTsKRm1hPWZ1bmN0aW9uKGEsYil7dmFyIGM9aHgoYS5xaC5GbigpKSxkPWIucWguc2hpZnRLZXk7ZD1hLnNoJiZjLlBvPT09MSYmYS5xaC5Dai50TXx8ZCYmYS5xaC5Dai5KSnx8YS5xaC5Dai5HcztpZighZHx8YXgoYil8fGIucWguX19nbV9pbnRlcm5hbF9fbm9EcmFnKXJldHVybiBuZXcgaXgoYS5xaCk7ZC5rbihjLGIpO3JldHVybiBuZXcgRW1hKGEucWgsZCxjLkVqKX07Cmh4PWZ1bmN0aW9uKGEpe3ZhciBiPWEubGVuZ3RoLGM9MCxkPTAsZT0wO2Zvcih2YXIgZj0wO2Y8YjsrK2Ype3ZhciBnPWFbZl07Yys9Zy5jbGllbnRYO2QrPWcuY2xpZW50WTtlKz1nLmNsaWVudFgqZy5jbGllbnRYK2cuY2xpZW50WSpnLmNsaWVudFl9Zz1mPTA7YS5sZW5ndGg9PT0yJiYoZj1hWzBdLGc9YVsxXSxhPWYuY2xpZW50WC1nLmNsaWVudFgsZz1mLmNsaWVudFktZy5jbGllbnRZLGY9TWF0aC5hdGFuMihhLGcpKjE4MC9NYXRoLlBJKzE4MCxnPU1hdGguaHlwb3QoYSxnKSk7dmFyIHtCcTpoLHZ1Omt9PXtCcTpmLHZ1Omd9O3JldHVybntFajp7Y2xpZW50WDpjL2IsY2xpZW50WTpkL2J9LHJhZGl1czpNYXRoLnNxcnQoZS0oYypjK2QqZCkvYikrMUUtMTAsUG86YixCcTpoLHZ1Omt9fTtreD1mdW5jdGlvbihhKXthLnJoIT0tMSYmYS50aCYmKF8uVWEuY2xlYXJUaW1lb3V0KGEucmgpLGEueGgudW0obmV3IF8uangoYS50aCxhLnRoLDEpKSxhLnJoPS0xKX07CkdtYT1mdW5jdGlvbihhLGIpe2lmKGx4KGIpKXtteD1EYXRlLm5vdygpO3ZhciBjPSExOyFhLnRoLnpofHxfLmlqKGEucWgucWgpLmxlbmd0aCE9MXx8Yi50eXBlIT0icG9pbnRlcmNhbmNlbCImJmIudHlwZSE9Ik1TUG9pbnRlckNhbmNlbCJ8fChhLnJoLm1uKG5ldyBfLmp4KGIsYiwxKSksYz0hMCk7dmFyIGQ9LTE7YyYmKGQ9Xy5meCgoKT0+a3goYS50aCksMTUwMCkpO2EucWguZGVsZXRlKGIpO18uaWooYS5xaC5xaCkubGVuZ3RoPT0wJiZhLnRoLnJlc2V0KGIsZCk7Y3x8YS5yaC51bShuZXcgXy5qeChiLGIsMSkpfX07bHg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5wb2ludGVyVHlwZTtyZXR1cm4gYj09InRvdWNoInx8Yj09YS5NU1BPSU5URVJfVFlQRV9UT1VDSH07CkhtYT1mdW5jdGlvbihhLGIpe254PURhdGUubm93KCk7IV8ucXUoYikmJmEuc2gmJl8uZm4oYik7YS5xaD1BcnJheS5mcm9tKGIudG91Y2hlcyk7YS5xaC5sZW5ndGg9PT0wJiZhLnhoLnJlc2V0KGIuY2hhbmdlZFRvdWNoZXNbMF0pO2EudGgudW0obmV3IF8uangoYixiLmNoYW5nZWRUb3VjaGVzWzBdLDEsKCk9PnthLnNoJiZiLnRhcmdldC5kaXNwYXRjaEV2ZW50KF8uJHcoImNsaWNrIixiLmNoYW5nZWRUb3VjaGVzWzBdLGIpKX0pKX07b3g9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuYnV0dG9ucz09Mnx8YS53aGljaD09M3x8YS5idXR0b249PTI/MzoyfTtfLnF4PWZ1bmN0aW9uKGEsYixjKXtiPW5ldyBJbWEoYik7Yz1fLnB4PT09Mj9uZXcgSm1hKGEsYik6bmV3IEttYShhLGIsYyk7Yi5hZGRMaXN0ZW5lcihjKTtiLmFkZExpc3RlbmVyKG5ldyBMbWEoYSxiLGMpKTtyZXR1cm4gYn07Cl8uc3g9ZnVuY3Rpb24oYSxiKXtiPWJ8fG5ldyBfLnJ4O18uUHcoYiwyNik7dmFyIGM9Xy5SdyhiKTtfLk93KGMsInN0eWxlcyIpO2Muc2V0VmFsdWUoYSk7cmV0dXJuIGJ9OwpfLlJtYT1mdW5jdGlvbihhLGIsYyl7aWYoIWEubGF5ZXJJZClyZXR1cm4gbnVsbDtjPWN8fG5ldyBfLnR4O18uSHcoYywyKTtfLkl3KGMsYS5sYXllcklkKTtiJiZfLnh1KGMsNSxfLkZlLDAsMSxfLkdlKTtmb3IodmFyIGQgb2YgT2JqZWN0LmtleXMoYS5wYXJhbWV0ZXJzKSliPV8uWmYoYyw0LF8udXgpLF8uaWgoYiwxLGQpLGIuc2V0VmFsdWUoYS5wYXJhbWV0ZXJzW2RdKTthLnNwb3RsaWdodERlc2NyaXB0aW9uJiYoZD1fLndnKGMsXy52eCw4KSxfLkt2KGQsYS5zcG90bGlnaHREZXNjcmlwdGlvbikpO2EubWFwc0FwaUxheWVyJiYoZD1fLndnKGMsXy53eCw5KSxfLkt2KGQsYS5tYXBzQXBpTGF5ZXIpKTthLm92ZXJsYXlMYXllciYmXy5LdihfLndnKGMsXy54eCw2KSxhLm92ZXJsYXlMYXllcik7YS5jYXNlRXhwZXJpbWVudElkcyYmKGQ9bmV3IE1tYSxfLm5nKGQsMSxhLmNhc2VFeHBlcmltZW50SWRzLF8uRmUpLF8uYXYoYyxObWEsZCkpO2EuYm9vc3RNYXBFeHBlcmltZW50SWRzJiYKKGQ9bmV3IE9tYSxfLm5nKGQsMSxhLmJvb3N0TWFwRXhwZXJpbWVudElkcyxfLkZlKSxfLmF2KGMsUG1hLGQpKTthLmRhcmtMYXVuY2gmJihhPW5ldyBRbWEsXy5raChhLDEsMSksXy5FZyhjLFFtYSwxMSxhKSk7cmV0dXJuIGN9O18ueXg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5paChhLDIsYil9O18ueng9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5paChhLDMsYil9O18uQXg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5raChhLDUsYil9O1NtYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLkd2KGEsMTIsXy5yeCxiKX07Xy5CeD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnd1KGEsMTIsXy5yeCxiKX07Xy5DeD1mdW5jdGlvbihhKXtyZXR1cm4gXy5aZihhLDEyLF8ucngpfTtfLkR4PWZ1bmN0aW9uKGEpe3JldHVybiBfLllmKGEsXy5yeCwxMil9O18uRng9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ud2coYSxfLkV4LDEpfTtfLkd4PWZ1bmN0aW9uKGEpe3JldHVybiBfLlpmKGEsMixfLnR4KX07Cl8uSHg9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWWYoYSxfLnR4LDIpfTtfLkp4PWZ1bmN0aW9uKGEpe3JldHVybiBfLndnKGEsXy5JeCwzKX07Xy5UbWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC8lMjAvZywiKyIpfTtfLkt4PWZ1bmN0aW9uKGEsYil7Yi5mb3JFYWNoKGM9Pnt2YXIgZD0hMTtmb3IobGV0IGU9MCxmPV8uVGcoYS5yZXF1ZXN0LDIzKTtlPGY7ZSsrKWlmKF8uU2coYS5yZXF1ZXN0LDIzLGUpPT09Yyl7ZD0hMDticmVha31kfHxfLm1oKGEucmVxdWVzdCwyMyxjKX0pfTtfLkx4PWZ1bmN0aW9uKGEsYixjLGQ9ITApe2I9Xy56eChfLnl4KF8uSngoYS5yZXF1ZXN0KSxiKSxjKTtfLkxwWzQzXT9fLkF4KGIsNzgpOl8uTHBbMzVdP18uQXgoYiwyODkpOl8uQXgoYiwxOCk7ZCYmXy5IbCgidXRpbCIpLnRoZW4oZT0+e2UuZXIucWgoKCk9Pnt2YXIgZj1fLkh3KF8uR3goYS5yZXF1ZXN0KSwyKTtfLndnKGYsXy54eCw2KS5hZGRFbGVtZW50KDUpfSl9KX07Cl8uVW1hPWZ1bmN0aW9uKGEsYil7Xy5raChhLnJlcXVlc3QsNCxiKTtiPT09Mz8oYj1fLndnKGEucmVxdWVzdCxNeCwxMiksXy4kZyhiLDUsITApLGE9Xy53ZyhhLnJlcXVlc3QsTXgsMTIpLF8uJGcoYSw2LCEwKSk6Xy5RZihhLnJlcXVlc3QsMTIpfTtfLlZtYT1mdW5jdGlvbihhLGIsYz0wKXthPV8uVncoXy5UdyhfLkZ4KF8uWmYoYS5yZXF1ZXN0LDEsXy5OeCkpLGIua2kpLGIubGkpLnNldFpvb20oYi51aSk7YyYmXy5iaChhLDQsYyl9O18uV21hPWZ1bmN0aW9uKGEsYixjLGQpe2I9PT0idGVycmFpbiI/KF8uSncoXy5JdyhfLkh3KF8uR3goYS5yZXF1ZXN0KSw0KSwidCIpLGQpLF8uSncoXy5JdyhfLkh3KF8uR3goYS5yZXF1ZXN0KSwwKSwiciIpLGMpKTpfLkp3KF8uSXcoXy5IdyhfLkd4KGEucmVxdWVzdCksMCksIm0iKSxjKX07ClltYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBTZXQoT2JqZWN0LnZhbHVlcyhYbWEpKSxkPV8ud2coYS5yZXF1ZXN0LF8uT3gsMjYpO2IuZm9yRWFjaChlPT57dmFyIGY9ITE7Zm9yKGxldCBnPTAsaD1fLmpnKGQsMSxfLkVlLDMsITApLmxlbmd0aDtnPGg7ZysrKWlmKF8uWGcoZCwxLGcpPT09ZSl7Zj0hMDticmVha30hZiYmYy5oYXMoZSkmJl8uQnUoZCwxLGUpfSl9O18uUHg9ZnVuY3Rpb24oYSxiKXtiLmdldFR5cGUoKT09PTY4PyhhPV8uQ3goXy5KeChhLnJlcXVlc3QpKSxfLkt2KGEsYiksXy5ZZihiLF8uUXcsMik+MCYmXy53dShiLDIsXy5RdywwKS5nZXRLZXkoKT09PSJzZXQiJiZfLnd1KGIsMixfLlF3LDApLmdldFZhbHVlKCk9PT0iUm9hZG1hcCImJl8ua2goYSw0LDIpKTpfLkt2KF8uQ3goXy5KeChhLnJlcXVlc3QpKSxiKX07Cl8uWm1hPWZ1bmN0aW9uKGEsYil7Yi5wYWludEV4cGVyaW1lbnRJZHMmJl8uS3goYSxiLnBhaW50RXhwZXJpbWVudElkcyk7Yi5EQSYmXy5LdihfLndnKGEucmVxdWVzdCxfLk94LDI2KSxiLkRBKTt2YXIgYz1iLlRKO2lmKGMmJiFfLmpqKGMpKXtsZXQgZDtmb3IobGV0IGU9MCxmPV8uRHgoXy5HKGEucmVxdWVzdCxfLkl4LDMpKTtlPGY7ZSsrKWlmKF8uQngoXy5HKGEucmVxdWVzdCxfLkl4LDMpLGUpLmdldFR5cGUoKT09PTI2KXtkPVNtYShfLkp4KGEucmVxdWVzdCksZSk7YnJlYWt9ZHx8KGQ9Xy5DeChfLkp4KGEucmVxdWVzdCkpLF8uUHcoZCwyNikpO2ZvcihsZXQgW2UsZl1vZiBPYmplY3QuZW50cmllcyhjKSl7Yz1lO2xldCBnPWY7Xy5PdyhfLlJ3KGQpLGMpLnNldFZhbHVlKGcpfX0oYj1iLnN0eWxlcnMpJiZiLmxlbmd0aCYmYi5mb3JFYWNoKGQ9Pnt2YXIgZT1kLmdldFR5cGUoKTtmb3IobGV0IGY9MCxnPV8uRHgoXy5HKGEucmVxdWVzdCxfLkl4LDMpKTtmPGc7ZisrKWlmKF8uQngoXy5HKGEucmVxdWVzdCwKXy5JeCwzKSxmKS5nZXRUeXBlKCk9PT1lKXtlPV8uSngoYS5yZXF1ZXN0KTtfLkl2KGUsMTIsXy5yeCxmKTticmVha31fLlB4KGEsZCl9KX07Cl8uUXg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zi5pbm5lclRleHQ9IkZvciBkZXZlbG9wbWVudCBwdXJwb3NlcyBvbmx5IjtmLnN0eWxlLndvcmRCcmVhaz0iYnJlYWstYWxsIjtlLmFwcGVuZENoaWxkKGYpO2Y9ZS5zdHlsZTtmLmNvbG9yPSJ3aGl0ZSI7Zi5mb250RmFtaWx5PSJSb2JvdG8sIHNhbnMtc2VyaWYiO2YuZm9udFNpemU9IjE0cHgiO2YudGV4dEFsaWduPSJjZW50ZXIiO2YucG9zaXRpb249ImFic29sdXRlIjtmLmxlZnQ9IjAiO2YudG9wPSI1MCUiO2YudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKC01MCUpIjtmLm1heEhlaWdodD0iMTAwJSI7Zi53aWR0aD0iMTAwJSI7Zi5vdmVyZmxvdz0iaGlkZGVuIjtkLmFwcGVuZENoaWxkKGUpO2U9ZC5zdHlsZTtlLmJhY2tncm91bmRDb2xvcj0icmdiYSgwLCAwLCAwLCAwLjUpIjsKZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Uub3ZlcmZsb3c9ImhpZGRlbiI7ZS50b3A9IjAiO2UubGVmdD0iMCI7ZS53aWR0aD1gJHtifXB4YDtlLmhlaWdodD1gJHtjfXB4YDtlLnpJbmRleD0iMTAwIjthLmFwcGVuZENoaWxkKGQpfTtfLlN4PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLiRtYShfLkcoXy5KbCxfLlJ4LDIpLF8ua3YoKSxfLkpsLnJoKCkpfTtfLlR4PWZ1bmN0aW9uKGEsYj0hMSl7YT1hLnRoO3ZhciBjPWI/Xy5XZyhhLDIpOl8uV2coYSwxKSxkPVtdO2ZvcihsZXQgZT0wO2U8YztlKyspZC5wdXNoKGI/Xy5WZyhhLDIsZSk6Xy5WZyhhLDEsZSkpO3JldHVybiBkLm1hcChlPT5lKyI/Iil9O18uYW5hPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbKGIua2krMipiLmxpKSVhLmxlbmd0aF19O2JuYT1mdW5jdGlvbihhKXthLnNoJiYoYS5zaC5yZW1vdmUoKSxhLnNoPW51bGwpO2EucmgmJihfLkN3KGEucmgpLGEucmg9bnVsbCl9OwpjbmE9ZnVuY3Rpb24oYSl7YS5zaHx8KGEuc2g9Xy5xbihfLlVhLCJvbmxpbmUiLCgpPT57YS53aCYmYS5zZXRVcmwoYS51cmwpfSkpO2lmKCFhLnJoJiZhLmVycm9yTWVzc2FnZSl7YS5yaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmRpdi5hcHBlbmRDaGlsZChhLnJoKTt2YXIgYj1hLnJoLnN0eWxlO2IuZm9udEZhbWlseT0iUm9ib3RvLEFyaWFsLHNhbnMtc2VyaWYiO2IuZm9udFNpemU9Ingtc21hbGwiO2IudGV4dEFsaWduPSJjZW50ZXIiO2IucGFkZGluZ1RvcD0iNmVtIjtfLlRwKGEucmgpO18uc3coYS5lcnJvck1lc3NhZ2UsYS5yaCk7YS5YeSYmYS5YeSgpfX07ZG5hPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpfTtfLlV4PWZ1bmN0aW9uKGEpe3ZhciB7a2k6YixsaTpjLHVpOmR9PWEsZT0xPDxkO3JldHVybiBjPDB8fGM+PWU/bnVsbDpiPj0wJiZiPGU/YTp7a2k6KGIlZStlKSVlLGxpOmMsdWk6ZH19OwplbmE9ZnVuY3Rpb24oYSxiKXt2YXIge2tpOmMsbGk6ZCx1aTplfT1hLGY9MTw8ZSxnPU1hdGguY2VpbChmKmIubWF4WSk7aWYoZDxNYXRoLmZsb29yKGYqYi5taW5ZKXx8ZD49ZylyZXR1cm4gbnVsbDtnPU1hdGguZmxvb3IoZipiLm1pblgpO2I9TWF0aC5jZWlsKGYqYi5tYXhYKTtpZihjPj1nJiZjPGIpcmV0dXJuIGE7YT1iLWc7Yz1NYXRoLnJvdW5kKCgoYy1nKSVhK2EpJWErZyk7cmV0dXJue2tpOmMsbGk6ZCx1aTplfX07Xy5WeD1mdW5jdGlvbihhLGIpe3ZhciBjPU1hdGgucG93KDIsYi51aSk7cmV0dXJuIGEucm90YXRlKC0xLG5ldyBfLldwKGEuc2l6ZS5YaCpiLmtpL2MsYS5zaXplLlloKiguNSsoYi5saS9jLS41KS9hLnFoKSkpfTsKXy5XeD1mdW5jdGlvbihhLGIsYyxkPU1hdGguZmxvb3Ipe3ZhciBlPU1hdGgucG93KDIsYyk7Yj1hLnJvdGF0ZSgxLGIpO3JldHVybntraTpkKGIucWgqZS9hLnNpemUuWGgpLGxpOmQoZSooLjUrKGIucmgvYS5zaXplLlloLS41KSphLnFoKSksdWk6Y319O18uWHg9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm4gXy5VeDt2YXIgYj0oMS0xL01hdGguc3FydCgyKSkvMixjPTEtYjtpZihhJTE4MD09PTApe2xldCBlPV8uem8oMCxiLDEsYyk7cmV0dXJuIGY9PmVuYShmLGUpfXZhciBkPV8uem8oYiwwLGMsMSk7cmV0dXJuIGU9Pnt2YXIgZj1lbmEoe2tpOmUubGksbGk6ZS5raSx1aTplLnVpfSxkKTtyZXR1cm57a2k6Zi5saSxsaTpmLmtpLHVpOmUudWl9fX07Zm5hPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuc2gucG9wKCk7KWIuUmgueG0oYil9OwpfLll4PWZ1bmN0aW9uKGEsYil7aWYoYiE9PWEucmgpe2EucWgmJihhLnFoLmZyZWV6ZSgpLGEuc2gucHVzaChhLnFoKSk7YS5yaD1iO3ZhciBjPWEucWg9YiYmYS50aChiLGQ9PnthLnFoPT09YyYmKGR8fGZuYShhKSxhLndoKGQpKX0pfX07Xy4keD1mdW5jdGlvbihhKXtfLlp4P18uVWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGEpOl8uZngoKCk9PmEoRGF0ZS5ub3coKSksMCl9O18uYXk9ZnVuY3Rpb24oKXtyZXR1cm4gZ25hLmZpbmQoYT0+YSBpbiBkb2N1bWVudC5ib2R5LnN0eWxlKX07Xy5ieT1mdW5jdGlvbihhKXt2YXIgYj1hLkNpO3JldHVybntDaTpiLEluOmEuSW4sZU86KHtyajpjLGNvbnRhaW5lcjpkLHprOmUsRlE6Zn0pPT5uZXcgaG5hKHtjb250YWluZXI6ZCxyajpjLHN2OmEua20oZix7ems6ZX0pLENpOmJ9KX19OwpkeT1mdW5jdGlvbihhKXtjeS5oYXMoYS5jb250YWluZXIpfHxjeS5zZXQoYS5jb250YWluZXIsbmV3IE1hcCk7dmFyIGI9Y3kuZ2V0KGEuY29udGFpbmVyKSxjPWEucmoudWk7Yi5oYXMoYyl8fGIuc2V0KGMsbmV3IGluYShhLmNvbnRhaW5lcixjKSk7cmV0dXJuIGIuZ2V0KGMpfTtqbmE9ZnVuY3Rpb24oYSxiKXthLmRpdi5hcHBlbmRDaGlsZChiKTthLmRpdi5wYXJlbnROb2RlfHxhLmNvbnRhaW5lci5hcHBlbmRDaGlsZChhLmRpdil9OwpleT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGI9TWF0aC5jZWlsKChhLnNoK2EucWgpLzIpLGM9TWF0aC5jZWlsKChhLnRoK2EucmgpLzIpO3lpZWxke2tpOmIsbGk6Yyx1aTphLnVpfTtmb3IodmFyIGQ9Wy0xLDAsMSwwXSxlPVswLC0xLDAsMV0sZj0wLGc9MTs7KXtmb3IobGV0IGg9MDtoPGc7KytoKXtiKz1kW2ZdO2MrPWVbZl07aWYoKGM8YS50aHx8Yz5hLnJoKSYmKGI8YS5zaHx8Yj5hLnFoKSlyZXR1cm47YS50aDw9YyYmYzw9YS5yaCYmYS5zaDw9YiYmYjw9YS5xaCYmKHlpZWxke2tpOmIsbGk6Yyx1aTphLnVpfSl9Zj0oZisxKSU0O2VbZl09PT0wJiZnKyt9fSgpfTsKa25hPWZ1bmN0aW9uKGEsYixjLGQpe2EuemgmJihfLlVhLmNsZWFyVGltZW91dChhLnpoKSxhLnpoPTApO2lmKGEuaXNBY3RpdmUmJmIudWk9PT1hLnNoKWlmKCFjJiYhZCYmRGF0ZS5ub3coKTxhLkFoKzI1MClhLnpoPV8uZngoKCk9PnZvaWQga25hKGEsYixjLGQpLGEuQWgrMjUwLURhdGUubm93KCkpO2Vsc2V7YS53aD1iO2xuYShhKTtmb3IodmFyIGUgb2YgYS5xaC52YWx1ZXMoKSllLnNldFpJbmRleChTdHJpbmcobW5hKGUucmoudWksYi51aSkpKTtpZihhLmlzQWN0aXZlJiYoZHx8YS50aC5JbiE9PTMpKWZvcihsZXQgaCBvZiBleShiKSl7ZT1EdyhoKTtpZihhLnFoLmhhcyhlKSljb250aW51ZTthLnlofHwoYS55aD0hMCxhLkJoKCEwKSk7bGV0IGs9aC51aTt2YXIgZj1hLnRoLkNpLGc9Xy5WeChmLHtraTpoLmtpKy41LGxpOmgubGkrLjUsdWk6a30pO2c9YS5SaC5Ray53cmFwKGcpO2Y9Xy5XeChmLGcsayk7bGV0IG09YS50aC5lTyh7Y29udGFpbmVyOmEucmgscmo6aCxGUTpmfSk7CmEucWguc2V0KGUsbSk7bS5zZXRaSW5kZXgoU3RyaW5nKG1uYShrLGIudWkpKSk7YS5vcmlnaW4mJmEuc2NhbGUmJmEuaGludCYmYS5zaXplJiZtLnRpKGEub3JpZ2luLGEuc2NhbGUsYS5oaW50LlZyLGEuc2l6ZSk7YS54aD9tLmxvYWRlZC50aGVuKCgpPT52b2lkIG5uYShhLG0pKTptLmxvYWRlZC50aGVuKCgpPT5tLnNob3coYS5DQSkpLnRoZW4oKCk9PnZvaWQgbm5hKGEsbSkpfX19O2xuYT1mdW5jdGlvbihhKXtpZihhLnloJiZbLi4uZXkoYS53aCldLmV2ZXJ5KGM9Pm9uYShhLGMpKSl7aWYoYS54aCl7dmFyIGI9Wy4uLmEucWgua2V5cygpXTtmb3IobGV0IGMgb2YgYilwbmEoYSxjKTtiPWV5KGEud2gpO2ZvcihsZXQgYyBvZiBiKShiPWEucWguZ2V0KER3KGMpKSkmJnFuYShhLGMpLmxlbmd0aD09PTAmJmIuc2hvdyghMSl9YS55aD0hMTthLkJoKCExKX19OwpubmE9ZnVuY3Rpb24oYSxiKXtpZighYS54aCYmYS53aD8uaGFzKGIucmopKXtiPXFuYShhLGIucmopO2ZvcihsZXQgYyBvZiBiKXBuYShhLGMpfWxuYShhKX07cW5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107Zm9yKGxldCBkIG9mIGEucWgudmFsdWVzKCkpYT1kLnJqLGEudWkhPT1iLnVpJiZybmEoYSxiKSYmYy5wdXNoKER3KGEpKTtyZXR1cm4gY307cG5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5xaC5nZXQoYiksZDtpZihkPWMmJmMucmoudWkhPT1hLnNoKWE6e2Q9Yy5yajtmb3IobGV0IGUgb2YgZXkoYS53aCkpaWYocm5hKGUsZCkmJiFvbmEoYSxlKSl7ZD0hMTticmVhayBhfWQ9ITB9ZCYmKGMucmVsZWFzZSgpLGEucWguZGVsZXRlKGIpKX07b25hPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGI9YS5xaC5nZXQoRHcoYikpKT9hLnhoP2IuTW8oKTpiLmhCOiExfTtzbmE9ZnVuY3Rpb24oe2tpOmEsbGk6Yix1aTpjfSxkKXtkPWMtZDtyZXR1cm57a2k6YT4+ZCxsaTpiPj5kLHVpOmMtZH19OwpybmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1NYXRoLm1pbihhLnVpLGIudWkpO2E9c25hKGEsYyk7Yj1zbmEoYixjKTtyZXR1cm4gYS5raT09PWIua2kmJmEubGk9PT1iLmxpfTttbmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYTxiP2E6MUUzLWF9OwpfLnVuYT1mdW5jdGlvbihhLGIsYyxkPTApe3ZhciBlPWEuZ2V0Q2VudGVyKCksZj1hLmdldFpvb20oKSxnPWEuZ2V0UHJvamVjdGlvbigpO2lmKGUmJmYhPW51bGwmJmcpe3ZhciBoPTAsaz0wLG09YS5fX2dtLmdldCgiYmFzZU1hcFR5cGUiKTttJiZtLm93JiYoaD1hLmdldFRpbHQoKXx8MCxrPWEuZ2V0SGVhZGluZygpfHwwKTthPV8uRXcoZSxnKTtkPWIubkQoe2NlbnRlcjphLHpvb206Zix0aWx0OmgsaGVhZGluZzprfSx0eXBlb2YgZD09PSJudW1iZXIiP3t0b3A6ZCxib3R0b206ZCxsZWZ0OmQscmlnaHQ6ZH06e3RvcDpkLnRvcHx8MCxib3R0b206ZC5ib3R0b218fDAsbGVmdDpkLmxlZnR8fDAscmlnaHQ6ZC5yaWdodHx8MH0pO2M9am1hKF8uTXEoZyksYyk7Zz1uZXcgXy5XcCgoYy5tYXhYLWMubWluWCkvMiwoYy5tYXhZLWMubWluWSkvMik7ZT1fLnd2KGIuUWssbmV3IF8uV3AoKGMubWluWCtjLm1heFgpLzIsKGMubWluWStjLm1heFkpLzIpLGEpO2M9Xy51dihlLGcpO2U9Xy50dihlLApnKTtnPXRuYShjLnFoLGUucWgsZC5taW4ucWgsZC5tYXgucWgpO2Q9dG5hKGMucmgsZS5yaCxkLm1pbi5yaCxkLm1heC5yaCk7Zz09PTAmJmQ9PT0wfHxiLllsKHtjZW50ZXI6Xy50dihhLG5ldyBfLldwKGcsZCkpLHpvb206ZixoZWFkaW5nOmssdGlsdDpofSwhMCl9fTt0bmE9ZnVuY3Rpb24oYSxiLGMsZCl7YS09YztiLT1kO3JldHVybiBhPDAmJmI8MD9NYXRoLm1heChhLGIpOmE+MCYmYj4wP01hdGgubWluKGEsYik6MH07Cl8udm5hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBNYXA7aWYoIWEucWh8fCFhLmVvKCkpcmV0dXJuIGI7aWYoXy5TZihhLnFoLF8uZnksMTMpKXthPV8uRyhhLnFoLF8uZnksMTMpO2Zvcih2YXIgYyBvZiBfLkNnKGEsXy5neSw1KSl7YT1fLlBnKGMsMSk7dmFyIGQ9Xy5IKGMsNSk7bGV0IGU9MDtzd2l0Y2goYSl7Y2FzZSAxOmU9ODtiLnNldCg3LGQpO2JyZWFrO2Nhc2UgMjplPTI3O2JyZWFrO2Nhc2UgMTI6ZT0xODticmVhaztjYXNlIDEzOmU9MzA7YnJlYWs7Y2FzZSA1OmU9MTI7YnJlYWs7Y2FzZSA2OmU9Mjk7YnJlYWs7Y2FzZSA3OmU9MTF9ZSYmZCYmYi5zZXQoZSxkKX19ZWxzZSBpZihfLm12KGEucWgpKWZvcihjPV8ubHYoYS5xaCksYT0wO2E8Xy5ZZihjLF8uaHksMyk7YSsrKWQ9Xy53dShjLDMsXy5oeSxhKSxiLnNldChfLlBnKGQsMSksZC5nZXRVcmwoKSk7cmV0dXJuIGJ9Owp3bmE9ZnVuY3Rpb24oYSl7aWYoYS5xaCYmXy5tdihhLnFoKSYmYS5lbygpKXt2YXIgYj1fLmx2KGEucWgpO2lmKGI9Xy5IKGIsNikpcmV0dXJuIGEucmghPT0xP2Ake2J9c2RrX21hcF92YXJpYW50PSR7YS5yaH0mYDpifXJldHVybiIifTt4bmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPVtdO2lmKCFhLnFoKXJldHVybiBjO3ZhciBlPV8uS2coYS5xaCw1KTtpZihlKXt2YXIgZj1uZXcgXy5peTtmLmxheWVySWQ9Im1hcHNfYXBpIjtmLm1hcHNBcGlMYXllcj1uZXcgXy53eChbZV0pO2MucHVzaChmKTtkLnB1c2goMTYxNTMyKX1pZihfLkxwWzE1XSYmXy5XZyhhLnFoLDExKSlmb3IoZT0wO2U8Xy5XZyhhLnFoLDExKTtlKyspZj1uZXcgXy5peSxmLmxheWVySWQ9Xy5WZyhhLnFoLDExLGUpLGMucHVzaChmKTtiJiZkLmZvckVhY2goZz0+e2IoZyl9KTtyZXR1cm4gY307CkFuYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9W107aWYoIWEucWh8fCFfLm12KGEucWgpKXJldHVybiBjO2E9Xy5sdihhLnFoKTtpZighXy5TZihhLGh2LDEpKXJldHVybiBjO2E9Xy5pdihhKTtmb3IodmFyIGU9MDtlPF8uWWYoYSx5bmEsMSk7ZSsrKXtsZXQgZj1fLnd1KGEsMSx5bmEsZSksZz1uZXcgXy5peTtnLmxheWVySWQ9Zi5nZXRJZCgpO18ueXUoZixfLnd4LDIsem5hKSYmKGcubWFwc0FwaUxheWVyPW5ldyBfLnd4LF8uS3YoZy5tYXBzQXBpTGF5ZXIsXy56dShmLF8ud3gsMix6bmEpKSk7Yy5wdXNoKGcpfWZvcihlPTA7ZTxfLllmKGEsanksNik7ZSsrKWlmKG9sYShfLnd1KGEsNixqeSxlKSkpe2QucHVzaCgxNjI3MDEpO2JyZWFrfWZvcihlPTA7ZTxfLllmKGEsanksNik7ZSsrKWlmKHBsYShfLnd1KGEsNixqeSxlKSkpe2QucHVzaCgxNzcxMjkpO2JyZWFrfWImJmQuZm9yRWFjaChmPT57YihmKX0pO3JldHVybiBjfTsKXy5CbmE9ZnVuY3Rpb24oYSxiKXtpZighYS5xaClyZXR1cm5bXTt2YXIgYz14bmEoYSxiKSxkPUFuYShhLGIpO3JldHVyblsuLi5jLmZpbHRlcihlPT4hZC5zb21lKGY9PmUubGF5ZXJJZD09PWYubGF5ZXJJZCkpLC4uLmRdfTtDbmE9ZnVuY3Rpb24oYSl7aWYoIWEucWgpcmV0dXJuIG51bGw7dmFyIGI9W107Zm9yKGxldCBkPTA7ZDxfLlRnKGEucWgsNyk7ZCsrKWIucHVzaChfLlNnKGEucWgsNyxkKSk7dmFyIGM9bnVsbDtiLmxlbmd0aCYmKGM9bmV3IF8uT3gsYi5mb3JFYWNoKGQ9PntfLkJ1KGMsMSxkKX0pKTtfLm12KGEucWgpJiYoYT1fLml2KF8ubHYoYS5xaCkpKSYmXy5TZihhLF8uT3gsNCkmJihjPW5ldyBfLk94LF8uS3YoYyxfLkcoYSxfLk94LDQpKSk7cmV0dXJuIGN9OwpfLkRuYT1mdW5jdGlvbihhKXtpZihhLmlzRW1wdHkoKSlyZXR1cm4gbnVsbDtpZihhLnFoKXt2YXIgYj1bXTtmb3IodmFyIGM9MDtjPF8uVGcoYS5xaCw2KTtjKyspYi5wdXNoKF8uU2coYS5xaCw2LGMpKTtpZihfLm12KGEucWgpJiYoYz1fLml2KF8ubHYoYS5xaCkpKSYmXy5UZyhjLDUpKXtiPVtdO2Zvcih2YXIgZD0wO2Q8Xy5UZyhjLDUpO2QrKyliLnB1c2goXy5TZyhjLDUsZCkpfX1lbHNlIGI9bnVsbDtiPWJ8fFtdO2M9Q25hKGEpO2lmKGEucWgmJl8uWWYoYS5xaCxreSw4KSl7ZD17fTtmb3IodmFyIGU9MDtlPF8uWWYoYS5xaCxreSw4KTtlKyspe3ZhciBmPV8ud3UoYS5xaCw4LGt5LGUpO18ucHUoZiwxKSYmKGRbZi5nZXRLZXkoKV09Zi5nZXRWYWx1ZSgpKX19ZWxzZSBkPW51bGw7aWYoYS5xaCYmXy5tdihhLnFoKSYmYS5lbygpKWlmKChhPV8uaXYoXy5sdihhLnFoKSkpJiZfLlNmKGEsXy5seSwzKSl7YT1fLkcoYSxfLmx5LDMpO2U9W107Zm9yKGY9MDtmPF8uWWYoYSxfLm15LAoxKTtmKyspe2xldCBnPV8ud3UoYSwxLF8ubXksZiksaD1fLlB3KG5ldyBfLnJ4LGcuZ2V0VHlwZSgpKTtmb3IobGV0IGs9MDtrPF8uWWYoZyxfLm55LDIpO2srKyl7bGV0IG09Xy53dShnLDIsXy5ueSxrKTtfLk93KF8uUncoaCksbS5nZXRLZXkoKSkuc2V0VmFsdWUobS5nZXRWYWx1ZSgpKX1lLnB1c2goaCl9YT1lLmxlbmd0aD9lOm51bGx9ZWxzZSBhPW51bGw7ZWxzZSBhPW51bGw7YT1hfHxbXTtyZXR1cm4gYi5sZW5ndGh8fGN8fCFfLmpqKGQpfHxhLmxlbmd0aD97cGFpbnRFeHBlcmltZW50SWRzOmIsREE6YyxUSjpkLHN0eWxlcnM6YX06bnVsbH07Cl8uRW5hPWZ1bmN0aW9uKGEsYixjKXtiKz0iIjt2YXIgZD1uZXcgXy55bixlPSJnZXQiK18uQm4oYik7ZFtlXT0oKT0+Yy5nZXQoKTtlPSJzZXQiK18uQm4oYik7ZFtlXT0oKT0+e3Rocm93IEVycm9yKCJBdHRlbXB0ZWQgdG8gc2V0IHJlYWQtb25seSBwcm9wZXJ0eTogIitiKTt9O2MuYWRkTGlzdGVuZXIoKCk9PntkLm5vdGlmeShiKX0pO2EuYmluZFRvKGIsZCxiLHZvaWQgMCl9O18ub3k9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/e0F1dGhvcml6YXRpb246YEJlYXJlciAke2F9YH06e319O18ucHk9ZnVuY3Rpb24oKXtyZXR1cm4iR29vZ2xlIE1hcHMgSmF2YVNjcmlwdCBBUEkgZXJyb3I6IFVybEF1dGhlbnRpY2F0aW9uQ29tbW9uRXJyb3IgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvZXJyb3ItbWVzc2FnZXMjIitfLmdtYSgiVXJsQXV0aGVudGljYXRpb25Db21tb25FcnJvciIpfTsKXy5xeT1mdW5jdGlvbigpe2VtYSgpO18uWm4mJihfLnJjKF8uWm4sYT0+e18uRm5hKGEpfSksXy5rdygpLF8uR25hKCkpfTtfLkduYT1mdW5jdGlvbigpe0huYShfLlVhLmdvb2dsZS5tYXBzKX07SG5hPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09Im9iamVjdCIpZm9yKGxldCBiIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEpKXtsZXQgYz1hW2JdO2lmKGIhPT0iU2l6ZSImJmMpe2lmKGMucHJvdG90eXBlKWZvcihsZXQgZCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjLnByb3RvdHlwZSkpdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYy5wcm90b3R5cGUsZCk/LnZhbHVlPT09ImZ1bmN0aW9uIiYmKGMucHJvdG90eXBlW2RdPV8uUmwpO0huYShjKX19fTsKXy5GbmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5adygiYXBpLTMvaW1hZ2VzL2ljb25fZXJyb3IiKTtfLlN0KEluYSxhKTtpZihhLnR5cGUpYS5kaXNhYmxlZD0hMCxhLnBsYWNlaG9sZGVyPSJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZy4iLGEuY2xhc3NOYW1lKz0iIGdtLWVyci1hdXRvY29tcGxldGUiLGEuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJ1cmwoJyIrYisiJykiO2Vsc2V7YS5pbm5lclRleHQ9IiI7dmFyIGM9Xy53bCgiZGl2Iik7Yy5jbGFzc05hbWU9ImdtLWVyci1jb250YWluZXIiO2EuYXBwZW5kQ2hpbGQoYyk7YT1fLndsKCJkaXYiKTthLmNsYXNzTmFtZT0iZ20tZXJyLWNvbnRlbnQiO2MuYXBwZW5kQ2hpbGQoYSk7Yz1fLndsKCJkaXYiKTtjLmNsYXNzTmFtZT0iZ20tZXJyLWljb24iO2EuYXBwZW5kQ2hpbGQoYyk7bGV0IGQ9Xy53bCgiSU1HIik7Yy5hcHBlbmRDaGlsZChkKTtkLnNyYz1iO2QuYWx0PSIiO18uVHAoZCk7Yj1fLndsKCJkaXYiKTtiLmNsYXNzTmFtZT0iZ20tZXJyLXRpdGxlIjsKYS5hcHBlbmRDaGlsZChiKTtiLmlubmVyVGV4dD0iT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcuIjtiPV8ud2woImRpdiIpO2IuY2xhc3NOYW1lPSJnbS1lcnItbWVzc2FnZSI7YS5hcHBlbmRDaGlsZChiKTtiLmlubmVyVGV4dD0iVGhpcyBwYWdlIGRpZG4ndCBsb2FkIEdvb2dsZSBNYXBzIGNvcnJlY3RseS4gU2VlIHRoZSBKYXZhU2NyaXB0IGNvbnNvbGUgZm9yIHRlY2huaWNhbCBkZXRhaWxzLiJ9fTtyeT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOl8uTSh3aW5kb3csMTYwNjY3KTticmVhaztjYXNlIDI6Xy5NKHdpbmRvdywxNjA2NjYpO2JyZWFrO2Nhc2UgMzpfLk0od2luZG93LDE2MDY2OCk7YnJlYWs7ZGVmYXVsdDpfLk0od2luZG93LDE2MDY2NSl9fTsKdnk9ZnVuY3Rpb24oYT0iREVGQVVMVCIpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtiLnNldEF0dHJpYnV0ZSgieG1sbnMiLCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIpO2Iuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZGVmcyIpLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImZpbHRlciIpO2Quc2V0QXR0cmlidXRlKCJpZCIsXy5LbigpKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZmVGbG9vZCIpO2Uuc2V0QXR0cmlidXRlKCJyZXN1bHQiLCJmbG9vZEZpbGwiKTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKImZlQ29tcG9zaXRlIik7Zi5zZXRBdHRyaWJ1dGUoImluIiwiZmxvb2RGaWxsIik7Zi5zZXRBdHRyaWJ1dGUoImluMiIsIlNvdXJjZUFscGhhIik7Zi5zZXRBdHRyaWJ1dGUoIm9wZXJhdG9yIiwiaW4iKTtmLnNldEF0dHJpYnV0ZSgicmVzdWx0Iiwic291cmNlQWxwaGFGaWxsIik7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImZlQ29tcG9zaXRlIik7Zy5zZXRBdHRyaWJ1dGUoImluIiwic291cmNlQWxwaGFGaWxsIik7Zy5zZXRBdHRyaWJ1dGUoImluMiIsIlNvdXJjZUdyYXBoaWMiKTtnLnNldEF0dHJpYnV0ZSgib3BlcmF0b3IiLCJpbiIpO2QuYXBwZW5kQ2hpbGQoZSk7ZC5hcHBlbmRDaGlsZChmKTtkLmFwcGVuZENoaWxkKGcpO2MuYXBwZW5kQ2hpbGQoZCk7Yi5hcHBlbmRDaGlsZChjKTtjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIik7Yy5zZXRBdHRyaWJ1dGUoImZpbGwiLAoibm9uZSIpO2Muc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCJldmVub2RkIik7Yi5hcHBlbmRDaGlsZChjKTtnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7Zy5jbGFzc0xpc3QuYWRkKHN5KTtkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7ZC5jbGFzc0xpc3QuYWRkKHR5KTtkLnNldEF0dHJpYnV0ZSgiZmlsbCIsIiNFQTQzMzUiKTtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJpbWFnZSIpO2Uuc2V0QXR0cmlidXRlKCJ4IiwiNTAlIik7ZS5zZXRBdHRyaWJ1dGUoInkiLCI1MCUiKTtlLnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaWRZTWlkIG1lZXQiKTtmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ0ZXh0Iik7Zi5zZXRBdHRyaWJ1dGUoIngiLAoiNTAlIik7Zi5zZXRBdHRyaWJ1dGUoInkiLCI1MCUiKTtmLnNldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiLCJtaWRkbGUiKTtmLnN0eWxlLmZvbnQ9ImluaGVyaXQiO2Yuc3R5bGUuZm9udFNpemU9IjE2cHgiO3N3aXRjaChhKXtjYXNlICJQSU4iOmIuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjI3Iik7Yi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjQzIik7Yi5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCIwIDAgMjcgNDMiKTtjLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKDEgMSkiKTtkLnNldEF0dHJpYnV0ZSgiZCIsIk0xMi41IDBDNS41OTYgMCAwIDUuNTk2IDAgMTIuNWMwIDEuODg2LjU0MyAzLjc0NiAxLjQ0MSA1LjQ2MiAzLjQyNSA2LjYxNSAxMC4yMTYgMTMuNTY2IDEwLjIxNiAyMi4xOTVhLjg0My44NDMgMCAxMDEuNjg2IDBjMC04LjYzIDYuNzktMTUuNTggMTAuMjE2LTIyLjE5NS44OTktMS43MTYgMS40NDItMy41NzYgMS40NDItNS40NjJDMjUgNS41OTYgMTkuNDA1IDAgMTIuNSAweiIpOwpnLnNldEF0dHJpYnV0ZSgiZCIsIk0xMi41LS41YzcuMTggMCAxMyA1LjgyIDEzIDEzIDAgMS45LS41MjQgMy44MzMtMS40OTcgNS42OTItLjkxNiAxLjc2OC0xLjAxOCAxLjkzLTQuMTcgNi43NzktNC4yNTcgNi41NS01Ljk5IDEwLjQ0Ny01Ljk5IDE1LjE4N2ExLjM0MyAxLjM0MyAwIDExLTIuNjg2IDBjMC00Ljc0LTEuNzMzLTguNjM2LTUuOTktMTUuMTg4LTMuMTUyLTQuODQ4LTMuMjU0LTUuMDEtNC4xNjktNi43NzZDLjAyNCAxNi4zMzMtLjUgMTQuNC0uNSAxMi41YzAtNy4xOCA1LjgyLTEzIDEzLTEzeiIpO2cuc2V0QXR0cmlidXRlKCJzdHJva2UiLCIjZmZmIik7Yy5hcHBlbmQoZCxnKTtmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKC0xcHgsIC0zcHgpIjticmVhaztjYXNlICJQSU5MRVQiOmIuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjE5Iik7Yi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjI2Iik7Yi5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLCIwIDAgMTkgMjYiKTtkLnNldEF0dHJpYnV0ZSgiZCIsCiJNMTguOTk4IDkuNWMwIDEuNDE1LS4yNCAyLjgxOS0uOTg4IDQuMy0yLjYxOSA1LjE4Ni03LjQ4MiA2LjMtNy44NyAxMS41NjctLjAyNS4zNDgtLjI4Ni42MzMtLjY0Mi42MzMtLjM1NCAwLS42MTYtLjI4NS0uNjQxLS42MzNDOC40NjkgMjAuMSAzLjYwNyAxOC45ODYuOTg3IDEzLjguMjQgMTIuMzE5IDAgMTAuOTE1IDAgOS41IDAgNC4yNCA0LjI1IDAgOS41IDBhOS40OSA5LjQ5IDAgMDE5LjQ5OCA5LjV6Iik7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO2Euc2V0QXR0cmlidXRlKCJkIiwiTS0xLTFoMjF2MzBILTF6Iik7Yy5hcHBlbmQoZCxhKTtmLnN0eWxlLmZvbnRTaXplPSIxNHB4IjtmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgxcHgpIjticmVhaztkZWZhdWx0OmIuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjI2IiksYi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjM3IiksYi5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLAoiMCAwIDI2IDM3IiksZy5zZXRBdHRyaWJ1dGUoImQiLCJNMTMgMEM1LjgxNzUgMCAwIDUuNzczMjggMCAxMi45MTgxQzAgMjAuNTczMyA1LjU5IDIzLjQ0NCA5LjU1NDk5IDMwLjA3ODRDMTIuMDkgMzQuMzIwNyAxMS4zNDI1IDM3IDEzIDM3QzE0LjcyMjUgMzcgMTMuOTc1IDM0LjI1NjkgMTYuNDQ1IDMwLjE0MjJDMjAuMDg1IDIzLjg1ODYgMjYgMjAuNjA1MiAyNiAxMi45MTgxQzI2IDUuNzczMjggMjAuMTgyNSAwIDEzIDBaIiksZy5zZXRBdHRyaWJ1dGUoImZpbGwiLCIjQzUyMjFGIiksZC5zZXRBdHRyaWJ1dGUoImQiLCJNMTMuMDE2NyAzNUMxMi43ODM2IDM1IDEyLjcxNzEgMzQuOTM0NiAxMi4zMTc2IDMzLjcyNUMxMS45ODQ4IDMyLjY3ODkgMTEuNDg1NCAzMS4wNzY5IDEwLjE4NzMgMjkuMTE1NEM4LjkyMjMzIDI3LjE4NjYgNy41OTA4NSAyNS42MTczIDYuMzI1OTQgMjQuMTEzNUMzLjM2MzM5IDIwLjUxNzQgMSAxNy43MDU3IDEgMTIuNjM4NUMxLjAzMzI5IDYuMTk4MDggNi4zOTI1MSAxIDEzLjAxNjcgMUMxOS42NDA4IDEgMjUgNi4yMzA3OCAyNSAxMi42Mzg1QzI1IDE3LjcwNTcgMjIuNjY5OSAyMC41NSAxOS42NzQxIDI0LjE0NjJDMTguNDQyNSAyNS42NSAxNy4xNDQzIDI3LjIxOTMgMTUuODc5MyAyOS4xMTU0QzE0LjYxNDQgMzEuMDQ0MiAxNC4wODE4IDMyLjYxMzUgMTMuNzQ5IDMzLjY1OTZDMTMuMzQ5NSAzNC45MzQ2IDEzLjI0OTcgMzUgMTMuMDE2NyAzNVoiKSwKYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpLGEuY2xhc3NMaXN0LmFkZCh1eSksYS5zZXRBdHRyaWJ1dGUoImQiLCJNMTMgMThDMTUuNzYxNCAxOCAxOCAxNS43NjE0IDE4IDEzQzE4IDEwLjIzODYgMTUuNzYxNCA4IDEzIDhDMTAuMjM4NiA4IDggMTAuMjM4NiA4IDEzQzggMTUuNzYxNCAxMC4yMzg2IDE4IDEzIDE4WiIpLGEuc2V0QXR0cmlidXRlKCJmaWxsIiwiI0IzMTQxMiIpLGMuYXBwZW5kKGcsZCxhKX1jLmFwcGVuZChlLGYpO3JldHVybiBifTtKbmE9ZnVuY3Rpb24oYSxiKXthLkNwLnRoZW4oKCk9PntiKCl9KX07Cnd5PWZ1bmN0aW9uKGEpe2EuRGgmJmEuQ2gmJl8uZG4oXy5ocChhLCJCb3RoIGBnbHlwaFRleHRgIGFuZCBgZ2x5cGhTcmNgIGFyZSBzZXQsIGBnbHlwaFNyY2Agd2lsbCBiZSBpZ25vcmVkIGFuZCBgZ2x5cGhUZXh0YCB3aWxsIHRha2UgcHJlY2VkZW5jZS4iKSk7cmV0dXJuIGEuRGg/P2EuQ2g/P2EuR2h9Owp4eT1mdW5jdGlvbihhKXt2YXIgYj1hLnFoLnF1ZXJ5U2VsZWN0b3IoYC4ke3V5fWApLGM9d3koYSk7YiYmKGIuc3R5bGUuZGlzcGxheT1jPT1udWxsPyIiOiJub25lIik7Yz09bnVsbCYmcnkoMCk7YS5kaT8ucmVtb3ZlKCk7YS5kaT1udWxsO2ZvcihsZXQgZCBvZiBhLlBoLmFzc2lnbmVkRWxlbWVudHMoKSlkLnJlbW92ZSgpO2EuU2gudGV4dENvbnRlbnQ9IiI7YS50aC5ocmVmLmJhc2VWYWw9IiI7YyBpbnN0YW5jZW9mIEVsZW1lbnQ/KGEuZGk9YyxhLmFwcGVuZENoaWxkKGMpLGEuQ3AudGhlbigoKT0+e2EuUGguYXNzaWduKGMpfSkscnkoMSkpOnR5cGVvZiBjPT09InN0cmluZyI/KGEuU2gudGV4dENvbnRlbnQ9YyxyeSgyKSk6YyBpbnN0YW5jZW9mIFVSTCYmcnkoMyk7S25hKGEpfTsKS25hPWZ1bmN0aW9uKGEpe2EuRmgmJmEuRmguc2V0QXR0cmlidXRlKCJmaWxsIixhLnhofHxhLkxoKTthLnJoLnN0eWxlLmNvbG9yPWEuZ2x5cGhDb2xvcnx8IiI7YS5NaS5yZW1vdmVBdHRyaWJ1dGUoImZsb29kLWNvbG9yIik7YS50aC5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpO3ZhciBiPXd5KGEpO2IgaW5zdGFuY2VvZiBVUkwmJihhLmdseXBoQ29sb3ImJihhLk1pLnNldEF0dHJpYnV0ZSgiZmxvb2QtY29sb3IiLGEuZ2x5cGhDb2xvciksYS50aC5zZXRBdHRyaWJ1dGUoImZpbHRlciIsYHVybCgjJHthLmFqfSlgKSksYS50aC5ocmVmLmJhc2VWYWw9Yi50b1N0cmluZygpKTthLlNoLnNldEF0dHJpYnV0ZSgiZmlsbCIsYS5nbHlwaENvbG9yfHxhLkxoKX07Cl8ueXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5pc0Nvbm5lY3RlZHx8Yi5pc0Nvbm5lY3RlZD9hLmlzQ29ubmVjdGVkP2IuaXNDb25uZWN0ZWQ/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRD9MbmEoYSxiKTpNbmEoYSxiKTotMToxOjB9O01uYT1mdW5jdGlvbihhLGIpe2E9YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKTtyZXR1cm4gYSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8tMTphJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HPzE6MH07TG5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9Tm5hKGEpLGQ9Tm5hKGIpLGU9bmV3IFNldChkKSxmPWMuZmluZChoPT5lLmhhcyhoKSksZz1jLmluZGV4T2YoZik7Zj1kLmluZGV4T2YoZik7cmV0dXJuIE1uYShnPjA/T25hKGNbZy0xXSk6YSxmPjA/T25hKGRbZi0xXSk6Yil9OwpObmE9ZnVuY3Rpb24oYSl7dmFyIGI9W107Zm9yKGE9YS5nZXRSb290Tm9kZSgpO2EhPT1kb2N1bWVudDspYi5wdXNoKGEpLGE9YS5ob3N0LmdldFJvb3ROb2RlKCk7Yi5wdXNoKGEpO3JldHVybiBifTtPbmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1kb2N1bWVudD9hOmEuaG9zdH07Xy56eT1mdW5jdGlvbihhKXtyZXR1cm4gYS5rZXk9PT0iRW50ZXIifHxhLmtleT09PSIgIn07Xy5BeT1mdW5jdGlvbihhKXtyZXR1cm4gYS5rZXk9PT0iQXJyb3dMZWZ0Inx8YS5rZXk9PT0iTGVmdCJ9O18uQnk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEua2V5PT09IkFycm93VXAifHxhLmtleT09PSJVcCJ9O18uRHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEua2V5PT09IkFycm93UmlnaHQifHxhLmtleT09PSJSaWdodCJ9O18uRXk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEua2V5PT09IkFycm93RG93biJ8fGEua2V5PT09IkRvd24ifTsKXy5SbmE9ZnVuY3Rpb24oKXtpZihfLkZ5fHxfLld3KXJldHVybiBfLkd5O18uRnk9ITA7cmV0dXJuIF8uR3k9bmV3IFByb21pc2UoYXN5bmMgYT0+e3ZhciBiPWF3YWl0IFBuYSgpO18uV3c9Yj9fLmpxKG5ldyBfLmtxKDEzMTA3MSksd2luZG93LmxvY2F0aW9uLm9yaWdpbixiKS50b1N0cmluZygpOiIiO2I9YXdhaXQgXy5RbmEoKTthKGIpO18uRnk9ITF9KX07UG5hPWZ1bmN0aW9uKCl7dmFyIGE9dm9pZCAwLGI9KG5ldyBfLkh5KS5zZXRVcmwod2luZG93LmxvY2F0aW9uLm9yaWdpbik7YXx8KGE9bmV3IFNuYSk7dmFyIGM9YS5xaDtyZXR1cm4gbmV3IFByb21pc2UoZD0+e18ueW1hKGMsYikudGhlbihlPT57ZChfLkxnKGUsMSkpfSkuY2F0Y2goKCk9PntkKG51bGwpfSl9KX07Cl8uUW5hPWZ1bmN0aW9uKCl7dmFyIGE7aWYoIV8uV3cpcmV0dXJuIG5ldyBQcm9taXNlKGQ9PntkKG51bGwpfSk7dmFyIGI9dm1hKCkuc2V0VXJsKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO2F8fChhPW5ldyBTbmEpO3ZhciBjPWEucWg7cmV0dXJuIG5ldyBQcm9taXNlKGQ9PntjLnFoLnFoKGMucmgrIi8kcnBjL2dvb2dsZS5pbnRlcm5hbC5tYXBzLm1hcHNqcy52MS5NYXBzSnNJbnRlcm5hbFNlcnZpY2UvR2V0TWFwc0p3dCIsYix7fSxUbmEpLnRoZW4oZT0+e2QobmV3IFVuYShlKSl9LCgpPT57ZChudWxsKX0pfSl9O18uSnk9ZnVuY3Rpb24oYSxiKXthLlprPWI7Yj1hLnNoLmdldCgpfHxfLkl5O2EuWmt8fChiPShiPWEucmguZ2V0KCkpP2I6KGEuTnE/YS5OcS5nZXQoKSE9PSJub25lIjoxKT9fLlZuYToiZGVmYXVsdCIpO2EudGghPT1iJiYoYS5lbGVtZW50LnN0eWxlLmN1cnNvcj1iLGEudGg9Yil9OwpZbmE9ZnVuY3Rpb24oYSxiKXt3aW5kb3cuX3hkY189d2luZG93Ll94ZGNffHx7fTt2YXIgYz13aW5kb3cuX3hkY187cmV0dXJuIGZ1bmN0aW9uKGQsZSxmKXtmdW5jdGlvbiBnKCl7bS5icCgpfXZhciBoPSJfIithKGQpLnRvU3RyaW5nKDM2KTtkKz0iJmNhbGxiYWNrPV94ZGNfLiIraDtiJiYoZD1iKGQpKTt2YXIgaz1fLkVsKGQpO1duYShjLGgpO3ZhciBtPWNbaF07ZD1zZXRUaW1lb3V0KCgpPT57bS5icCghMCl9LDI1RTMpO20uQ0QucHVzaChuZXcgWG5hKGUsZCxmKSk7KGZ1bmN0aW9uKCl7dmFyIHA9em1hKGssZyk7c2V0VGltZW91dCgoKT0+e18uQ3cocCl9LDI1RTMpfSkoKX19OwpXbmE9ZnVuY3Rpb24oYSxiKXtpZihhW2JdKWFbYl0uSUUrKztlbHNle2xldCBjPWQ9Pnt2YXIgZT1jLkNELnNoaWZ0KCk7ZSYmKGUucWgoZCksZS5abygpKTthW2JdLklFLS07YVtiXS5JRT09PTAmJmRlbGV0ZSBhW2JdfTtjLkNEPVtdO2MuSUU9MTtjLmJwPShkPSExKT0+e3ZhciBlPWMuQ0Quc2hpZnQoKTtlJiYoZS5NcyYmZS5Ncyh7c0k6ZH0pLGUuWm8oKSl9O2FbYl09Y319O18uS3k9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZz0hMSl7YT1ZbmEoYSxjKTtiPV8uWm5hKGIsZCxudWxsLGcpO2EoYixlLGYpfTtfLlpuYT1mdW5jdGlvbihhLGIsYyxkPSExKXt2YXIgZT1hLmNoYXJBdChhLmxlbmd0aC0xKTtlIT09Ij8iJiZlIT09IiYiJiYoYSs9Ij8iKTtiJiZiLmNoYXJBdChiLmxlbmd0aC0xKT09PSImIiYmKGI9Yi5zdWJzdHIoMCxiLmxlbmd0aC0xKSk7YSs9YjtkJiYoZD1fLnh3KCkpJiYoYSs9YCZyX3VybD0ke2VuY29kZVVSSUNvbXBvbmVudChkKX1gKTtjJiYoYT1jKGEpKTtyZXR1cm4gYX07CiRuYT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5pbm5lcldpZHRoLyhkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKzEpO3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQvKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KzEpPC45NXx8YTwuOTV9O2FvYT1mdW5jdGlvbihhLGIsYyxkLGU9JG5hKXtyZXR1cm4gYj09PSExPyJub25lIjpjPT09Im5vbmUifHxjPT09ImdyZWVkeSJ8fGM9PT0iem9vbWFyb3VuZGNlbnRlciI/YzpkPyJncmVlZHkiOmM9PT0iY29vcGVyYXRpdmUifHxfLm9tYShhKXx8ZSgpPyJjb29wZXJhdGl2ZSI6ImdyZWVkeSJ9O18uYm9hPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZHJhZ2dhYmxlLGM9YS5oSCxkPWEuSGs7YT1hb2EuYmluZChudWxsLGEuSHIpO3JldHVybiBuZXcgXy5MeShbYixjLGRdLGEpfTsKTXk9ZnVuY3Rpb24oYSxiKXtiPTEwMCtiO3ZhciBjPV8ud2woIkRJViIpO2Muc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtjLnN0eWxlLnRvcD1jLnN0eWxlLmxlZnQ9IjAiO2Muc3R5bGUuekluZGV4PWI7Yy5zdHlsZS53aWR0aD0iMTAwJSI7YS5hcHBlbmRDaGlsZChjKTtyZXR1cm4gY307Tnk9ZnVuY3Rpb24oYSl7YT1hLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLndpZHRoPWEuaGVpZ2h0PSIxMDAlIjthLnRvcD1hLmxlZnQ9YS5tYXJnaW49YS5ib3JkZXJXaWR0aD1hLnBhZGRpbmc9IjAifTtjb2E9ZnVuY3Rpb24oYSl7YT1hLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLnRvcD1hLmxlZnQ9IjUwJSI7YS53aWR0aD0iMTAwJSJ9O2RvYT1mdW5jdGlvbigpe3JldHVybiIuZ20tc3R5bGUgaW1ne21heC13aWR0aDogbm9uZTt9LmdtLXN0eWxlIHtmb250OiA0MDAgMTFweCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7fSJ9Owplb2E9ZnVuY3Rpb24oYSxiLGMsZCl7YTp7dmFyIGU9YS5nZXQoInByb2plY3Rpb24iKSxmPWEuZ2V0KCJ6b29tIik7YT1hLmdldCgiY2VudGVyIik7Yz1NYXRoLnJvdW5kKGMpO2Q9TWF0aC5yb3VuZChkKTtpZihlJiZiJiZfLmptKGYpJiYoYj1fLkJvKGUsYixmKSkpe2EmJihmPV8ub3coZSxmKSkmJmYhPT1JbmZpbml0eSYmZiE9PTAmJihlJiZlLmdldFBvdiYmZS5nZXRQb3YoKS5oZWFkaW5nKCklMTgwIT09MD8oZT1iLnktYS55LGU9Xy5kbShlLC1mLzIsZi8yKSxiLnk9YS55K2UpOihlPWIueC1hLngsZT1fLmRtKGUsLShmLzIpLGYvMiksYi54PWEueCtlKSk7YT1uZXcgXy5ibyhiLngtYyxiLnktZCk7YnJlYWsgYX1hPW51bGx9cmV0dXJuIGF9Owpmb2E9ZnVuY3Rpb24oYSxiLGMsZCxlLGY9ITEpe3ZhciBnPWEuZ2V0KCJwcm9qZWN0aW9uIiksaD1hLmdldCgiem9vbSIpO2lmKGImJmcmJl8uam0oaCkpe2lmKCFfLmptKGIueCl8fCFfLmptKGIueSkpdGhyb3cgRXJyb3IoImZyb20iK2UrIlBpeGVsVG9MYXRMbmc6IFBvaW50LnggYW5kIFBvaW50LnkgbXVzdCBiZSBvZiB0eXBlIG51bWJlciIpO2E9YS5xaDthLng9Yi54K01hdGgucm91bmQoYyk7YS55PWIueStNYXRoLnJvdW5kKGQpO3JldHVybiBfLm13KGcsYSxoLGYpfXJldHVybiBudWxsfTtfLk95PWZ1bmN0aW9uKGEpe2EucWg9Xy56cCgoKT0+e2EucWg9bnVsbDthLnJoJiYhYS5zaCYmKGEucmg9ITEsXy5PeShhKSl9LGEueGgpO3ZhciBiPWEudGg7YS50aD1udWxsO2EueWguYXBwbHkobnVsbCxiKX07Xy5Na2E9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMucWgoKX19OwpLa2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnFoPW5ldyBXZWFrTWFwO3RoaXMucmg9bmV3IFdlYWtNYXA7dGhpcy50aD1uZXcgV2Vha1NldDt0aGlzLnNoPXBlcmZvcm1hbmNlLm5vdygpKzg2NEU1fXJlc2V0KCl7dGhpcy5zaD1wZXJmb3JtYW5jZS5ub3coKSs4NjRFNTt0aGlzLnFoPW5ldyBXZWFrTWFwO3RoaXMudGg9bmV3IFdlYWtTZXR9fTtfLiRwLnByb3RvdHlwZS5rcD1fLmthKDI5LGZ1bmN0aW9uKCl7cmV0dXJuIF8uUGcodGhpcywxKX0pOwpfLm50LnByb3RvdHlwZS50QT1fLmthKDI4LGZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnlsLGU9Yi5kb21FdmVudCYmXy5xdShiLmRvbUV2ZW50KTtpZih0aGlzLnFoKXt2YXIgZj10aGlzLnFoO3ZhciBnPXRoaXMucmh9ZWxzZSBpZihhPT09Im1vdXNlb3V0Inx8ZSlnPWY9bnVsbDtlbHNle2Zvcih2YXIgaD0wO2Y9ZFtoKytdOyl7dmFyIGs9Yi5RajtsZXQgbT1iLmxhdExuZzsoZz1mLnF2KGIsITEpKSYmIWYua3YoYSxnKSYmKGc9bnVsbCxiLlFqPWssYi5sYXRMbmc9bSk7aWYoZylicmVha31pZighZyYmYylmb3IoYz0wOyhmPWRbYysrXSkmJihoPWIuUWosaz1iLmxhdExuZywoZz1mLnF2KGIsITApKSYmIWYua3YoYSxnKSYmKGc9bnVsbCxiLlFqPWgsYi5sYXRMbmc9ayksIWcpOyk7fWlmKGYhPT10aGlzLnNofHxnIT09dGhpcy50YXJnZXQpdGhpcy5zaCYmdGhpcy5zaC5oYW5kbGVFdmVudCgibW91c2VvdXQiLGIsdGhpcy50YXJnZXQpLHRoaXMuc2g9Zix0aGlzLnRhcmdldD0KZyxmJiZmLmhhbmRsZUV2ZW50KCJtb3VzZW92ZXIiLGIsZyk7aWYoIWYpcmV0dXJuISFlO2lmKGE9PT0ibW91c2VvdmVyInx8YT09PSJtb3VzZW91dCIpcmV0dXJuITE7Zi5oYW5kbGVFdmVudChhLGIsZyk7cmV0dXJuITB9KTtfLm10LnByb3RvdHlwZS5IdD1fLmthKDI3LGZ1bmN0aW9uKCl7aWYoIXRoaXMuUHAuaGFzQXR0cmlidXRlKCJkaXIiKSlyZXR1cm4hMTt2YXIgYT10aGlzLlBwLmRpcjtyZXR1cm4gYT09PSJydGwiPyEwOmE9PT0ibHRyIj8hMTp3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLlBwKS5kaXJlY3Rpb249PT0icnRsIn0pOwpfLnJxLnByb3RvdHlwZS5IdD1fLmthKDI2LGZ1bmN0aW9uKCl7aWYoIXRoaXMuZ2V0RGl2KCkuaGFzQXR0cmlidXRlKCJkaXIiKSlyZXR1cm4hMTt2YXIgYT10aGlzLmdldERpdigpLmRpcjtyZXR1cm4gYT09PSJydGwiPyEwOmE9PT0ibHRyIj8hMTp3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmdldERpdigpKS5kaXJlY3Rpb249PT0icnRsIn0pO18uQ3AucHJvdG90eXBlLnl2PV8ua2EoMjQsZnVuY3Rpb24oYSl7dGhpcy53aD1hcmd1bWVudHM7dGhpcy5yaD0hMTt0aGlzLnFoP3RoaXMudGg9Xy5tYigpK3RoaXMueWg6dGhpcy5xaD1fLnpwKHRoaXMueGgsdGhpcy55aCl9KTtfLmh0LnByb3RvdHlwZS5WRD1fLmthKDIzLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2ghPT1udWxsfSk7Xy5ucS5wcm90b3R5cGUucmg9Xy5rYSgxNCxmdW5jdGlvbigpe3JldHVybiBfLkgodGhpcywzKX0pOwpfLlNyLnByb3RvdHlwZS5raj1fLmthKDgsZnVuY3Rpb24oYSl7cmV0dXJuIF8uaWgodGhpcywxLGEpfSk7RHU9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuYnVmZmVyPWE7aWYoYyYmIWIpdGhyb3cgRXJyb3IoKTt0aGlzLnFoPWJ9fTtGdT1bXTsKXy5Ya2E9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5yaD1udWxsO3RoaXMud2g9ITE7dGhpcy54aD1udWxsO3RoaXMucWg9dGhpcy5zaD10aGlzLnRoPTA7dGhpcy5pbml0KGEsYixjLGQpfWluaXQoYSxiLGMse0V2OmQ9ITEsR0Y6ZT0hMX09e30pe3RoaXMuRXY9ZDt0aGlzLkdGPWU7YSYmKGE9RXUoYSx0aGlzLkdGKSx0aGlzLnJoPWEuYnVmZmVyLHRoaXMud2g9YS5xaCx0aGlzLnhoPW51bGwsdGhpcy50aD1ifHwwLHRoaXMuc2g9YyE9PXZvaWQgMD90aGlzLnRoK2M6dGhpcy5yaC5sZW5ndGgsdGhpcy5xaD10aGlzLnRoKX1RaSgpe3RoaXMuY2xlYXIoKTtGdS5sZW5ndGg8MTAwJiZGdS5wdXNoKHRoaXMpfWNsZWFyKCl7dGhpcy5yaD1udWxsO3RoaXMud2g9ITE7dGhpcy54aD1udWxsO3RoaXMucWg9dGhpcy5zaD10aGlzLnRoPTA7dGhpcy5Fdj0hMX1nZXRCdWZmZXIoKXtpZih0aGlzLndoKXRocm93IEVycm9yKCk7cmV0dXJuIHRoaXMucmh9cmVzZXQoKXt0aGlzLnFoPQp0aGlzLnRofWdldEN1cnNvcigpe3JldHVybiB0aGlzLnFofXNldEN1cnNvcihhKXt0aGlzLnFoPWF9fTtfLlJ1PTA7T3U9W107Xy5aa2E9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5yaD1fLkd1KGEsYixjLGQpO3RoaXMud2g9dGhpcy5yaC5nZXRDdXJzb3IoKTt0aGlzLnFoPXRoaXMudGg9dGhpcy5zaD0tMTt0aGlzLnNldE9wdGlvbnMoZCl9c2V0T3B0aW9ucyh7akg6YT0hMX09e30pe3RoaXMuakg9YX1RaSgpe3RoaXMucmguY2xlYXIoKTt0aGlzLnFoPXRoaXMuc2g9dGhpcy50aD0tMTtPdS5sZW5ndGg8MTAwJiZPdS5wdXNoKHRoaXMpfWdldEN1cnNvcigpe3JldHVybiB0aGlzLnJoLmdldEN1cnNvcigpfWdldEJ1ZmZlcigpe3JldHVybiB0aGlzLnJoLmdldEJ1ZmZlcigpfXJlc2V0KCl7dGhpcy5yaC5yZXNldCgpO3RoaXMud2g9dGhpcy5yaC5nZXRDdXJzb3IoKTt0aGlzLnFoPXRoaXMuc2g9dGhpcy50aD0tMX19OwpfLlZ1PWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5sbz1hPj4+MDt0aGlzLmhpPWI+Pj4wfX07a2xhPVN5bWJvbCgpO2J2PVN5bWJvbCgpO18uUHk9Xy5BaShmdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTIpcmV0dXJuITE7YT1fLkNoKGEpO18uRWkoYixjLGE9PT0iIj92b2lkIDA6YSk7cmV0dXJuITB9LF8uS2ksXy5Xaik7Z29hPVswLF8uUHksXy5BaShmdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTIpcmV0dXJuITE7YT1VdShhKTtfLkVpKGIsYyxhPT09Xy5sZCgpP3ZvaWQgMDphKTtyZXR1cm4hMH0sZnVuY3Rpb24oYSxiLGMpe2lmKGIhPW51bGwpe2lmKGIgaW5zdGFuY2VvZiBfLkkpe2xldCBkPWIuS1Q7ZD8oYj1kKGIpLGIhPW51bGwmJl8uZGkoYSxjLEV1KGIsITApLmJ1ZmZlcikpOl8ueGQoXy54aSwzKTtyZXR1cm59aWYoQXJyYXkuaXNBcnJheShiKSl7Xy54ZChfLnhpLDMpO3JldHVybn19ZXYoYSxiLGMpfSxfLmFrKV07Xy53eD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19OwpfLlF5PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXFtKCl7cmV0dXJuIF8uSCh0aGlzLDEpfX07Xy5ReS5wcm90b3R5cGUuV0E9Xy5oYSgzNik7aG9hPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Z3Y9WzEsMl07ank9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt5bmE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0SWQoKXtyZXR1cm4gXy5IKHRoaXMsMSl9fTt6bmE9WzIsNF07Xy5ueT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRLZXkoKXtyZXR1cm4gXy5IKHRoaXMsMSl9Z2V0VmFsdWUoKXtyZXR1cm4gXy5IKHRoaXMsMil9c2V0VmFsdWUoYSl7cmV0dXJuIF8uamgodGhpcywyLGEpfX07Cl8ubXk9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VHlwZSgpe3JldHVybiBfLktnKHRoaXMsMSl9fTtfLmx5PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5PeD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O2h2PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5neT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uZnk9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLmh5PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFVybCgpe3JldHVybiBfLkgodGhpcywyKX1zZXRVcmwoYSl7cmV0dXJuIF8uaWgodGhpcywyLGEpfX07Xy5oeS5wcm90b3R5cGUuS209Xy5oYSg0MCk7c2xhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Cl8uUnk9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VXJsKGEpe3JldHVybiBfLlZnKHRoaXMsMSxhKX1zZXRVcmwoYSxiKXtyZXR1cm4gXy54dSh0aGlzLDEsXy5iZixhLGIsXy5kZil9fTtfLlJ5LnByb3RvdHlwZS5yaD1fLmhhKDQxKTtfLlJ4PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFN0cmVldFZpZXcoKXtyZXR1cm4gXy5BZyh0aGlzLF8uUnksNyl9c2V0U3RyZWV0VmlldyhhKXtyZXR1cm4gXy5FZyh0aGlzLF8uUnksNyxhKX19O3JsYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O2t5PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldEtleSgpe3JldHVybiBfLkgodGhpcywxKX1nZXRWYWx1ZSgpe3JldHVybiBfLkgodGhpcywyKX1zZXRWYWx1ZShhKXtyZXR1cm4gXy5paCh0aGlzLDIsYSl9fTsKXy5TeT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1Zdigpe3JldHVybiBfLkFnKHRoaXMsXy5meSwxMyl9fTtfLlN5LnByb3RvdHlwZS5xaz1fLmhhKDMxKTsKXy5UeT1fLmxpKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5xaCE9PTIpcmV0dXJuITE7YT1fLkFoKGEsXy5EZihbdm9pZCAwLHZvaWQgMF0sZCksZSk7YT1bLi4uYV07ZD1iW18uQ2RdfDA7ZT1fLmJlKGQpO2lmKGQmMil0aHJvdyBFcnJvcigpO3ZhciBmPV8uTmYoYixjLGUpO2lmKEFycmF5LmlzQXJyYXkoZikpe3ZhciBnPWZbXy5DZF18MDtpZighKGcmODE5Mikpe3ZhciBoPWd8PTgxOTI7ZltfLkNkXT1ofWlmKGcmMil7Zj1bLi4uZl07Zm9yKGc9MDtnPGYubGVuZ3RoO2crKyloPWZbZ109Wy4uLmZbZ11dLEFycmF5LmlzQXJyYXkoaFsxXSkmJihoWzFdPV8uR2QoaFsxXSkpO2Y9QnYoZik7Xy5QZihiLGQsYyxmLGUpfWYucHVzaChhKX1lbHNlIF8uUGYoYixkLGMsQnYoW2FdKSxlKTtyZXR1cm4hMH0sZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKyl7bGV0IGc9YltmXTtBcnJheS5pc0FycmF5KGcpJiZfLmVpKGEsCmMsXy5EZihnLGQpLGUpfUJ2KGIpfX0pOwpfLlV5PV8uQ2koZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0xJiZhLnFoIT09MilyZXR1cm4hMTtiPV8uV2YoYixjKTtpZihhLnFoPT0yKXtjPWEucmg7dmFyIGQ9Xy5zaChhLnJoKS84O2E9Yy5xaDtkKj04O2lmKGErZD5jLnNoKXRocm93IEVycm9yKCk7bGV0IGU9Yy5yaDthKz1lLmJ5dGVPZmZzZXQ7Yy5xaCs9ZDtjPW5ldyBEYXRhVmlldyhlLmJ1ZmZlcixhLGQpO2ZvcihhPTA7Oyl7ZD1hKzg7aWYoZD5jLmJ5dGVMZW5ndGgpYnJlYWs7Yi5wdXNoKGMuZ2V0RmxvYXQ2NChhLCEwKSk7YT1kfX1lbHNlIGIucHVzaChfLnZoKGEucmgpKTtyZXR1cm4hMH0sZnVuY3Rpb24oYSxiLGMpe2I9Xy55aShfLnZlLGIsITApO2lmKGIhPW51bGwmJmIubGVuZ3RoKXtfLlloKGEsYywyKTtfLlNoKGEucWgsYi5sZW5ndGgqOCk7Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspYz1hLnFoLF8ubWUoYltkXSksXy5SaChjLF8uZWUpLF8uUmgoYyxfLmdlKX19LF8uWGopOwpfLlZ5PV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0xKXJldHVybiExO2E9Xy52aChhLnJoKTtfLkVpKGIsYyxhPT09MD92b2lkIDA6YSk7cmV0dXJuITB9LF8uR2ksXy5Yaik7Xy5XeT1fLkFpKGZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09NSlyZXR1cm4hMTtfLkVpKGIsYyxNdShhLnJoKSk7cmV0dXJuITB9LEx2LF8uWWopO2lvYT1fLkNpKEpsYSxmdW5jdGlvbihhLGIsYyl7Yj1fLnlpKF8udmUsYiwhMCk7aWYoYiE9bnVsbClmb3IobGV0IGc9MDtnPGIubGVuZ3RoO2crKyl7dmFyIGQ9YSxlPWMsZj1iW2ddO2YhPW51bGwmJihfLlloKGQsZSw1KSxkPWQucWgsdHUoZiksXy5SaChkLF8uZWUpKX19LF8uWWopOwpfLlh5PV8uQ2koSmxhLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy52ZSxiLCEwKTtpZihiIT1udWxsJiZiLmxlbmd0aCl7Xy5ZaChhLGMsMik7Xy5TaChhLnFoLGIubGVuZ3RoKjQpO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWM9YS5xaCx0dShiW2RdKSxfLlJoKGMsXy5lZSl9fSxfLllqKTtfLll5PV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT01KXJldHVybiExO2E9TXUoYS5yaCk7Xy5FaShiLGMsYT09PTA/dm9pZCAwOmEpO3JldHVybiEwfSxMdixfLllqKTtqb2E9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXtpZihhLnFoIT09NSlyZXR1cm4hMTtfLkZ2KGIsYyxkLE11KGEucmgpKTtyZXR1cm4hMH0sTHYsXy5Zaik7Xy5aeT1fLkFpKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5PaShhLGIsYyl9LF8uSGksXy5oayk7Cl8ua29hPV8uQWkoZnVuY3Rpb24oYSxiLGMsZCl7YS5xaCE9PTA/YT0hMTooXy5GdihiLGMsZCxfLnRoKGEucmgpKSxhPSEwKTtyZXR1cm4gYX0sXy5IaSxfLmhrKTtfLiR5PV8uQWkoZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLbGEoYSxiLGMpfSxNdixfLmprKTtfLmF6PV8uQWkoZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLbGEoYSxiLGMpfSxNdixfLmprKTtsb2E9Xy5DaShMbGEsZnVuY3Rpb24oYSxiLGMpe2I9Xy55aShfLkN2LGIsITEpO2lmKGIhPW51bGwpZm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspZmxhKGEsYyxiW2RdKX0sXy5qayk7Cl8uYno9Xy5DaShMbGEsZnVuY3Rpb24oYSxiLGMpe2I9Xy55aShfLkN2LGIsITEpO2lmKGIhPW51bGwmJmIubGVuZ3RoKXtjPV8uWmgoYSxjKTtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGQ9YltmXTtzd2l0Y2godHlwZW9mIGQpe2Nhc2UgIm51bWJlciI6dmFyIGU9YS5xaDtfLmtlKGQpO18uUWgoZSxfLmVlLF8uZ2UpO2JyZWFrO2Nhc2UgImJpZ2ludCI6ZT1OdW1iZXIoZCk7TnVtYmVyLmlzU2FmZUludGVnZXIoZSk/KGQ9YS5xaCxfLmtlKGUpLF8uUWgoZCxfLmVlLF8uZ2UpKTooZD1fLlBoKGQsXy5WdSxfLld1KSxfLlFoKGEucWgsZC5sbyxkLmhpKSk7YnJlYWs7ZGVmYXVsdDpkPV8uWHUoZCksXy5RaChhLnFoLGQubG8sZC5oaSl9fV8uJGgoYSxjKX19LF8uamspO18uY3o9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXthLnFoIT09MD9hPSExOihfLkZ2KGIsYyxkLEp1KGEucmgpKSxhPSEwKTtyZXR1cm4gYX0sTXYsXy5qayk7Cl8uZHo9Xy5DaShfLlFpLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5HZSxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgZz0wO2c8Yi5sZW5ndGg7ZysrKXt2YXIgZD1hLGU9YyxmPWJbZ107ZiE9bnVsbCYmKF8uWWgoZCxlLDApLF8uVGgoZC5xaCxmKSl9fSxfLmRrKTtfLmV6PV8uQWkoZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5xaCE9PTApcmV0dXJuITE7Xy5GdihiLGMsZCxfLnJoKGEucmgpKTtyZXR1cm4hMH0sXy5JaSxfLmRrKTsKbW9hPV8uQWkoUGxhLGZ1bmN0aW9uKGEsYixjKXtiPV8uQ3YoYik7aWYoYiE9bnVsbClzd2l0Y2goaWxhKGIpLF8uWWgoYSxjLDEpLGE9YS5xaCxpbGEoYiksdHlwZW9mIGIpe2Nhc2UgIm51bWJlciI6YjwwPyhjPVl1KF8uV3UoLWIpKSxfLlp1KGEsYy5sbyxjLmhpKSk6Xy4kdShhLGIpO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1iPEJpZ0ludCgwKT9ZdShfLlBoKC1iLF8uVnUsXy5XdSkpOl8uUGgoYixfLlZ1LF8uV3UpO18uWnUoYSxjLmxvLGMuaGkpO2JyZWFrO2RlZmF1bHQ6Yz1iLmxlbmd0aCYmYlswXT09PSItIj9ZdShfLlh1KGIuc3Vic3RyaW5nKDEpKSk6Xy5YdShiKSxfLlp1KGEsYy5sbyxjLmhpKX19LF8ua2spO18uZno9Xy5BaShQbGEsTnYsXy5rayk7bm9hPV8uQ2koZnVuY3Rpb24oYSxiLGMpe3JldHVybiBObGEoYSxiLGMpfSxFbGEsXy5rayk7Xy5vb2E9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gT2xhKGEsYixjLGQpfSxOdixfLmtrKTsKXy5nej1fLkFpKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWxhKGEsYixjKX0sTnYsXy5rayk7cG9hPV8uQ2koXy5RbGEsRWxhLF8ua2spO3FvYT1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBPbGEoYSxiLGMsZCl9LE52LF8ua2spO18uaHo9Xy5BaShmdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTUpcmV0dXJuITE7Xy5FaShiLGMsS3UoYS5yaCkpO3JldHVybiEwfSxGbGEsXy5jayk7aXo9Xy5DaShSbGEsZnVuY3Rpb24oYSxiLGMpe2I9Xy55aShfLkplLGIsITApO2lmKGIhPW51bGwpZm9yKGxldCBnPTA7ZzxiLmxlbmd0aDtnKyspe3ZhciBkPWEsZT1jLGY9YltnXTtmIT1udWxsJiYoXy5ZaChkLGUsNSksXy5SaChkLnFoLGYpKX19LF8uY2spOwpfLmp6PV8uQ2koUmxhLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5KZSxiLCEwKTtpZihiIT1udWxsJiZiLmxlbmd0aClmb3IoXy5ZaChhLGMsMiksXy5TaChhLnFoLGIubGVuZ3RoKjQpLGM9MDtjPGIubGVuZ3RoO2MrKylfLlJoKGEucWgsYltjXSl9LF8uY2spO3JvYT1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe2lmKGEucWghPT01KXJldHVybiExO18uRnYoYixjLGQsS3UoYS5yaCkpO3JldHVybiEwfSxGbGEsXy5jayk7Xy5rej1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe2lmKGEucWghPT0wKXJldHVybiExO18uRnYoYixjLGQsXy5xaChhLnJoKSk7cmV0dXJuITB9LF8uSmksXy5aaik7Xy5sej1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe2lmKGEucWghPT0yKXJldHVybiExO18uRnYoYixjLGQsXy5DaChhKSk7cmV0dXJuITB9LF8uS2ksXy5Xaik7CnNvYT1fLkRpKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5xaCE9PTMpcmV0dXJuITE7Yj1fLkZpKGIsZCxjKTtlKGIsYSk7aWYoYS5xaCE9PTQpdGhyb3cgRXJyb3IoKTtpZihhLnNoIT09Yyl0aHJvdyBFcnJvcigpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyxkLGUpe18uemkoYSxiLGMsZCxlLEdsYSl9LF8uVWopO18ubXo9Xy5saShmdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoYS5xaCE9PTIpcmV0dXJuITE7dmFyIGc9YltfLkNkXXwwO18ucmcoYixnLGYsYyxfLmJlKGcpKTtiPV8uemcoYixkLGMpO18uQWgoYSxiLGUpO3JldHVybiEwfSxfLkxpKTtfLm56PV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0yKXJldHVybiExO18uRWkoYixjLFV1KGEpKTtyZXR1cm4hMH0sZXYsXy5hayk7Cl8ub3o9Xy5DaShmdW5jdGlvbihhLGIsYyl7aWYoYS5xaCE9PTIpcmV0dXJuITE7YT1VdShhKTtfLlZmKGIsYltfLkNkXXwwLGMpLnB1c2goYSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoV2thLGIsITEpO2lmKGIhPW51bGwpZm9yKGxldCBnPTA7ZzxiLmxlbmd0aDtnKyspe3ZhciBkPWEsZT1jLGY9YltnXTtmIT1udWxsJiZfLmRpKGQsZSxFdShmLCEwKS5idWZmZXIpfX0sXy5hayk7Xy5wej1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe2lmKGEucWghPT0yKXJldHVybiExO18uRnYoYixjLGQsVXUoYSkpO3JldHVybiEwfSxldixfLmFrKTtfLnF6PV8uQ2koU2xhLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5KZSxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgZz0wO2c8Yi5sZW5ndGg7ZysrKXt2YXIgZD1hLGU9YyxmPWJbZ107ZiE9bnVsbCYmKF8uWWgoZCxlLDApLF8uU2goZC5xaCxmKSl9fSxfLmJrKTsKXy5yej1fLkNpKFNsYSxmdW5jdGlvbihhLGIsYyl7Yj1fLnlpKF8uSmUsYiwhMCk7aWYoYiE9bnVsbCYmYi5sZW5ndGgpe2M9Xy5aaChhLGMpO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKV8uU2goYS5xaCxiW2RdKTtfLiRoKGEsYyl9fSxfLmJrKTt0b2E9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXtpZihhLnFoIT09MClyZXR1cm4hMTtfLkZ2KGIsYyxkLF8uc2goYS5yaCkpO3JldHVybiEwfSxfLk1pLF8uYmspO18uc3o9Xy5DaShfLlJpLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5HZSxiLCEwKTtpZihiIT1udWxsJiZiLmxlbmd0aCl7Yz1fLlpoKGEsYyk7Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspXy5UaChhLnFoLGJbZF0pO18uJGgoYSxjKX19LF8uZ2spO18udHo9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXtpZihhLnFoIT09MClyZXR1cm4hMTtfLkZ2KGIsYyxkLF8ucmgoYS5yaCkpO3JldHVybiEwfSxfLk5pLF8uZ2spOwpfLnV6PV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO18uRWkoYixjLF8uSXUoYS5yaCkpO3JldHVybiEwfSxIbGEsXy5mayk7Xy52ej1fLkNpKGZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MCYmYS5xaCE9PTIpcmV0dXJuITE7Yj1fLldmKGIsYyk7YS5xaD09Mj9fLkRoKGEsXy5JdSxiKTpiLnB1c2goXy5JdShhLnJoKSk7cmV0dXJuITB9LGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5HZSxiLCEwKTtpZihiIT1udWxsJiZiLmxlbmd0aCl7Yz1fLlpoKGEsYyk7Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspXy5TaChhLnFoLF8udXUoYltkXSkpO18uJGgoYSxjKX19LF8uZmspO3VvYT1fLkFpKGZ1bmN0aW9uKGEsYixjLGQpe2lmKGEucWghPT0wKXJldHVybiExO18uRnYoYixjLGQsXy5JdShhLnJoKSk7cmV0dXJuITB9LEhsYSxfLmZrKTsKdm9hPV8uQWkoZnVuY3Rpb24oYSxiLGMsZCl7YS5xaCE9PTA/YT0hMTooXy5GdihiLGMsZCxfLkh1KGEucmgpKSxhPSEwKTtyZXR1cm4gYX0sXy5JbGEsXy5payk7Xy53ej1bITAsXy5VLF8uVV07Xy54ej1bMCxfLlZ5LC0xXTtfLndvYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1Ucigpe3JldHVybiBfLlBnKHRoaXMsMSl9Z2V0VXJsKCl7cmV0dXJuIF8uSCh0aGlzLDMpfXNldFVybChhKXtyZXR1cm4gXy5qaCh0aGlzLDMsYSl9fTtfLnl6PVswLF8uWXksLTIsWzAsXy5ZeV1dO1VsYT0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pO1dsYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnFoPWF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5xaH19O18uYWE9Xy5Sdi5wcm90b3R5cGU7Xy5hYS5saz1fLmhhKDE1KTsKXy5hYS5hZGQ9ZnVuY3Rpb24oYSxiKXtfLlN2KHRoaXMpO3RoaXMuc2g9bnVsbDthPVR2KHRoaXMsYSk7dmFyIGM9dGhpcy5xaC5nZXQoYSk7Y3x8dGhpcy5xaC5zZXQoYSxjPVtdKTtjLnB1c2goYik7dGhpcy5yaD10aGlzLnJoKzE7cmV0dXJuIHRoaXN9O18uYWEucmVtb3ZlPWZ1bmN0aW9uKGEpe18uU3YodGhpcyk7YT1Udih0aGlzLGEpO3JldHVybiB0aGlzLnFoLmhhcyhhKT8odGhpcy5zaD1udWxsLHRoaXMucmg9dGhpcy5yaC10aGlzLnFoLmdldChhKS5sZW5ndGgsdGhpcy5xaC5kZWxldGUoYSkpOiExfTtfLmFhLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5xaD10aGlzLnNoPW51bGw7dGhpcy5yaD0wfTtfLmFhLmlzRW1wdHk9ZnVuY3Rpb24oKXtfLlN2KHRoaXMpO3JldHVybiB0aGlzLnJoPT0wfTsKXy5hYS5mb3JFYWNoPWZ1bmN0aW9uKGEsYil7Xy5Tdih0aGlzKTt0aGlzLnFoLmZvckVhY2goZnVuY3Rpb24oYyxkKXtjLmZvckVhY2goZnVuY3Rpb24oZSl7YS5jYWxsKGIsZSxkLHRoaXMpfSx0aGlzKX0sdGhpcyl9O18uYWEuUnM9ZnVuY3Rpb24oKXtfLlN2KHRoaXMpO3ZhciBhPUFycmF5LmZyb20odGhpcy5xaC52YWx1ZXMoKSksYj1BcnJheS5mcm9tKHRoaXMucWgua2V5cygpKSxjPVtdO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtsZXQgZT1hW2RdO2ZvcihsZXQgZj0wO2Y8ZS5sZW5ndGg7ZisrKWMucHVzaChiW2RdKX1yZXR1cm4gY307Xy5hYS5KbT1mdW5jdGlvbihhKXtfLlN2KHRoaXMpO3ZhciBiPVtdO2lmKHR5cGVvZiBhPT09InN0cmluZyIpJGxhKHRoaXMsYSkmJihiPWIuY29uY2F0KHRoaXMucWguZ2V0KFR2KHRoaXMsYSkpKSk7ZWxzZXthPUFycmF5LmZyb20odGhpcy5xaC52YWx1ZXMoKSk7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspYj1iLmNvbmNhdChhW2NdKX1yZXR1cm4gYn07Cl8uYWEuc2V0PWZ1bmN0aW9uKGEsYil7Xy5Tdih0aGlzKTt0aGlzLnNoPW51bGw7YT1Udih0aGlzLGEpOyRsYSh0aGlzLGEpJiYodGhpcy5yaD10aGlzLnJoLXRoaXMucWguZ2V0KGEpLmxlbmd0aCk7dGhpcy5xaC5zZXQoYSxbYl0pO3RoaXMucmg9dGhpcy5yaCsxO3JldHVybiB0aGlzfTtfLmFhLmdldD1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiBiO2E9dGhpcy5KbShhKTtyZXR1cm4gYS5sZW5ndGg+MD9TdHJpbmcoYVswXSk6Yn07Xy5hYS5zZXRWYWx1ZXM9ZnVuY3Rpb24oYSxiKXt0aGlzLnJlbW92ZShhKTtiLmxlbmd0aD4wJiYodGhpcy5zaD1udWxsLHRoaXMucWguc2V0KFR2KHRoaXMsYSksXy5CYyhiKSksdGhpcy5yaD10aGlzLnJoK2IubGVuZ3RoKX07Cl8uYWEudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLnNoKXJldHVybiB0aGlzLnNoO2lmKCF0aGlzLnFoKXJldHVybiIiO3ZhciBhPVtdLGI9QXJyYXkuZnJvbSh0aGlzLnFoLmtleXMoKSk7Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBjPWJbZF07bGV0IGU9Xy5DaihjKTtjPXRoaXMuSm0oYyk7Zm9yKGxldCBmPTA7ZjxjLmxlbmd0aDtmKyspe2xldCBnPWU7Y1tmXSE9PSIiJiYoZys9Ij0iK18uQ2ooY1tmXSkpO2EucHVzaChnKX19cmV0dXJuIHRoaXMuc2g9YS5qb2luKCImIil9O18uYWEuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgXy5SdjthLnNoPXRoaXMuc2g7dGhpcy5xaCYmKGEucWg9bmV3IE1hcCh0aGlzLnFoKSxhLnJoPXRoaXMucmgpO3JldHVybiBhfTtfLmFhLmV4dGVuZD1mdW5jdGlvbihhKXtmb3IobGV0IGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKVpsYShhcmd1bWVudHNbYl0sZnVuY3Rpb24oYyxkKXt0aGlzLmFkZChkLGMpfSx0aGlzKX07CnZhciB4b2E9L1sjXC9cP0BdL2cseW9hPS9bI1w/XS9nLHpvYT0vWyNcPzpdL2csQW9hPS8jL2csY21hPS9bI1w/QF0vZztfLmFhPV8uV3YucHJvdG90eXBlOwpfLmFhLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLnNoO2ImJmEucHVzaChWdihiLHhvYSwhMCksIjoiKTt2YXIgYz10aGlzLnFoO2lmKGN8fGI9PSJmaWxlIilhLnB1c2goIi8vIiksKGI9dGhpcy55aCkmJmEucHVzaChWdihiLHhvYSwhMCksIkAiKSxhLnB1c2goXy5DaihjKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxjPXRoaXMudGgsYyE9bnVsbCYmYS5wdXNoKCI6IixTdHJpbmcoYykpO2lmKGM9dGhpcy5nZXRQYXRoKCkpdGhpcy5xaCYmYy5jaGFyQXQoMCkhPSIvIiYmYS5wdXNoKCIvIiksYS5wdXNoKFZ2KGMsYy5jaGFyQXQoMCk9PSIvIj95b2E6em9hLCEwKSk7KGM9dGhpcy5yaC50b1N0cmluZygpKSYmYS5wdXNoKCI/IixjKTsoYz10aGlzLnhoKSYmYS5wdXNoKCIjIixWdihjLEFvYSkpO3JldHVybiBhLmpvaW4oIiIpfTsKXy5hYS5yZXNvbHZlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2xvbmUoKSxjPSEhYS5zaDtjP18uWHYoYixhLnNoKTpjPSEhYS55aDtjP1l2KGIsYS55aCk6Yz0hIWEucWg7Yz9iLnFoPWEucWg6Yz1hLnRoIT1udWxsO3ZhciBkPWEuZ2V0UGF0aCgpO2lmKGMpXy5adihiLGEudGgpO2Vsc2UgaWYoYz0hIWEuemgpe2lmKGQuY2hhckF0KDApIT0iLyIpaWYodGhpcy5xaCYmIXRoaXMuemgpZD0iLyIrZDtlbHNle3ZhciBlPWIuZ2V0UGF0aCgpLmxhc3RJbmRleE9mKCIvIik7ZSE9LTEmJihkPWIuZ2V0UGF0aCgpLnNsaWNlKDAsZSsxKStkKX1lPWQ7aWYoZT09Ii4uInx8ZT09Ii4iKWQ9IiI7ZWxzZSBpZihlLmluZGV4T2YoIi4vIikhPS0xfHxlLmluZGV4T2YoIi8uIikhPS0xKXtkPV8uRWIoZSwiLyIpO2U9ZS5zcGxpdCgiLyIpO2xldCBmPVtdO2ZvcihsZXQgZz0wO2c8ZS5sZW5ndGg7KXtsZXQgaD1lW2crK107aD09Ii4iP2QmJmc9PWUubGVuZ3RoJiZmLnB1c2goIiIpOmg9PSIuLiI/CigoZi5sZW5ndGg+MXx8Zi5sZW5ndGg9PTEmJmZbMF0hPSIiKSYmZi5wb3AoKSxkJiZnPT1lLmxlbmd0aCYmZi5wdXNoKCIiKSk6KGYucHVzaChoKSxkPSEwKX1kPWYuam9pbigiLyIpfWVsc2UgZD1lfWM/Yi5zZXRQYXRoKGQpOmM9YS5yaC50b1N0cmluZygpIT09IiI7Yz8kdihiLGEucmguY2xvbmUoKSk6Yz0hIWEueGg7YyYmXy5hdyhiLGEueGgpO3JldHVybiBifTtfLmFhLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLld2KHRoaXMpfTtfLmFhLmdldFBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56aH07Xy5hYS5zZXRQYXRoPWZ1bmN0aW9uKGEsYil7dGhpcy56aD1iP1V2KGEsITApOmE7cmV0dXJuIHRoaXN9O18uYWEuc2V0UXVlcnk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gJHYodGhpcyxhLGIpfTtfLmFhLmdldFF1ZXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmgudG9TdHJpbmcoKX07Xy5hYS5odj1mdW5jdGlvbihhLGIpe3RoaXMucmguc2V0KGEsYik7cmV0dXJuIHRoaXN9Owp2YXIgQm9hPVswLF8uWSxbMCxfLlAsXy52cixfLlJdXSxDb2E9WzAsXy5aLF8uUl0sRG9hPVswLF8uQ3JdO18uYWE9Xy5kdy5wcm90b3R5cGU7Xy5hYS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5kdyh0aGlzLngsdGhpcy55KX07Xy5hYS5lcXVhbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLmR3JiYodGhpcz09YT8hMDp0aGlzJiZhP3RoaXMueD09YS54JiZ0aGlzLnk9PWEueTohMSl9O18uYWEuY2VpbD1mdW5jdGlvbigpe3RoaXMueD1NYXRoLmNlaWwodGhpcy54KTt0aGlzLnk9TWF0aC5jZWlsKHRoaXMueSk7cmV0dXJuIHRoaXN9O18uYWEuZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5mbG9vcih0aGlzLngpO3RoaXMueT1NYXRoLmZsb29yKHRoaXMueSk7cmV0dXJuIHRoaXN9O18uYWEucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9OwpfLmFhLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBfLmR3Pyh0aGlzLngrPWEueCx0aGlzLnkrPWEueSk6KHRoaXMueCs9TnVtYmVyKGEpLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnkrPWIpKTtyZXR1cm4gdGhpc307Xy5hYS5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMueCo9YTt0aGlzLnkqPXR5cGVvZiBiPT09Im51bWJlciI/YjphO3JldHVybiB0aGlzfTtfLml3PSExO18uanc9ITE7Xy5sdz17TGo6YT0+YSBpbnN0YW5jZW9mIFVSTD9hLnRvU3RyaW5nKCk6YX07eno9WzAsXy5heiwtMV07RW9hPVswLF8uVSwxLFswLF8uWSxbMCxfLlUsLTEsXy5QLF8uVV0sXy5heiw0LF8uQXIsMSxfLm96LF8ud3IsXy5heixfLlJdLDEsXy5DcixfLlUsXy5aLDEsenosXy5ZLHp6LDIsWzAsXy5VLC0xLF8uYXpdLC0xLDEsenosXy5ZLHp6LF8uWixfLlVdO18uQXo9e3JvYWRtYXA6Im0iLHNhdGVsbGl0ZToiayIsaHlicmlkOiJoIix0ZXJyYWluOiJyIn07CkZvYT1bLTUwMCxfLlosXy5XeSxfLmh6LF8uUCw5OTUsXy5VXTtHb2E9WzAsXy5aLC0xLF8uVSwyLF8uWiwxLF8uWixfLlksWzAsXy5aLF8uWSxbMCxfLlUsLTFdLFswLF8uV3ldLFswLF8uV3ldLFswLF8uWHldLFswLF8uWl0sWzAsXy5QXSxbMCxfLlksRm9hLFswLF8uWSxGb2EsLTJdXV0sXy5zel07Xy5Cej0oYSxiKT0+e2I9Yi5nZXRSb290Tm9kZT9iLmdldFJvb3ROb2RlKCk6ZG9jdW1lbnQ7Yj1iLmhlYWR8fGI7dmFyIGM9Xy56amEoYik7Yy5oYXMoYSl8fChjLmFkZChhKSxfLlF0KGEoKSx7cm9vdDpiLEp6OiExfSkpfTsKdG1hPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5WaT1bXTt0aGlzLmtleXM9bmV3IFNldDt0aGlzLnFoPW51bGx9ZXhlY3V0ZSgpe3RoaXMucWg9bnVsbDtmb3IodmFyIGE9cGVyZm9ybWFuY2Uubm93KCksYj10aGlzLlZpLmxlbmd0aCxjPTA7YzxiJiZwZXJmb3JtYW5jZS5ub3coKS1hPDE2O2MrPTMpe2xldCBkPXRoaXMuVmlbY10sZT10aGlzLlZpW2MrMV07dGhpcy5rZXlzLmRlbGV0ZSh0aGlzLlZpW2MrMl0pO2QuY2FsbChlKX10aGlzLlZpLnNwbGljZSgwLGMpO3JtYSh0aGlzKX19O18uQ3o9WzAsXy56ciwtMl07Xy5JbCgiY29tbW9uIix7fSk7dmFyIEhvYT1bMCxfLm56LF8ub3osXy5SLF8uVV07dmFyIElvYT17fTt2YXIgSm9hPVswLF8uWiwtMV07Xy5Eej1bMCxfLnZyLF8uaHosLTFdO18uRXo9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgS29hPVswLF8uWSxbMCxKb2EsXy5ZLFstNyxJb2EsSm9hLF8uVSxfLkR6LC0xLFswLF8uWixfLnZyLC0xXSxnb2FdXV07Xy5Gej1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhLDEpfX07Xy5Hej17fTt2YXIgTG9hO0xvYT1fLiRpKF8uRXosS29hKTtfLk1vYT1fLlhpKDM2MTgxNDIwNixfLkZ6LF8uRXopO18uR3pbMzYxODE0MjA2XT1Lb2E7Xy5Iej1bMCxfLnVyLC0xXTt2YXIgSXo9WzAsXy5VLC0xLF8ubnosXy5VLC00XTtJb2FbMjkzMTc4NTYwXT1bMCxbMCxJeixfLkh6LF8uVSxbMCwyLF8uUCwtM10sXy5VLF8uUixfLlAsXy5ZLEl6LF8uUF0sXy5aXTtfLk5vYT1bMCxfLnpyLC0zXTtfLkp6PVswLF8uWixfLlVdO18uS3o9WzAsXy5VLDIsXy5VLDEsXy5VLF8uWixbMCxfLlUsLTFdLF8uUCwxLF8uVSxfLnN6XTtfLk9vYT1bMCxfLmh6LC0xXTtfLkx6PVswLF8uVSxfLlksWzAsXy5QLC0xLFswLFswLF8uWl0sXy5Pb2EsXy5SLFswLF8uV3ldLF8uUl0sXy5Lel1dO3ZhciBQb2E9WzAsXy5XeSxfLlVdO3ZhciBRb2E9WzAsXy5KeixfLlVdO18uTXo9WzAsXy5QLC0yLF8uWixfLlUsLTJdO3ZhciBOej1bMCxfLld5LFswLF8uWSxbMCxfLlAsLTFdXV07dmFyIE96PVswLDEsXy5QXTtfLlB6PVstMSxfLlRyLGZ1bmN0aW9uKGEsYixjKXtfLlN1KCk7dHJ5e2xldCBkPWMub2w7Zm9yKDtfLlF1KGIpJiZiLnFoIT00OylpZihiLnRoPT09MTEpe2xldCBmPWIud2gsZz0hMSxoO2NsYShiLChrLG0pPT57aD1rO2s9Y1toXTtpZihrPT1udWxsKXtsZXQgcD1kPy5baF07aWYocCl7bGV0IHE9Xy5kdihwKSx1PWN2KHApLmZxO2s9Y1toXT0oeCx6LEIpPT5xKF8uemcoeix1LEIpLHgpfX1rIT1udWxsP2sobSxhLGgpOihnPSEwLG0ucmguc2V0Q3Vyc29yKG0ucmguc2gpKX0pO2cmJnZ1KGEsaCxhbGEoYixmKSl9ZWxzZSB2dShhLGIuc2gsYmxhKGIpKTtsZXQgZT1fLmxmKGEpO2UmJihlLk9CPWMuaUFbXy50cl0pO3JldHVybiEwfWNhdGNoKGQpe2lmKGQgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBkO31maW5hbGx5e18uUnU+MCYmXy5SdS0tfX0sZnVuY3Rpb24oYSxiKXtyZXR1cm4oYyxkLGUpPT57ZD1fLm1pKGQsYSk7ZCE9bnVsbCYmCihfLlloKGMsMSwzKSxfLlloKGMsMiwwKSxfLlRoKGMucWgsZSksZT1fLlpoKGMsMyksYihkLGMpLF8uJGgoYyxlKSxfLlloKGMsMSw0KSl9fV07Xy5Rej1bMCxfLmZ6LC0xLF8uUHpdO3ZhciBSej1bMCwxNCxbMCxbMCxfLlosXy5VXSxfLlJdXTtfLlN6PVstNTAwLF8uaHosLTEsMTIsXy5Qeiw0ODQsUnpdO18uVHo9WzAsXy5TeiwtMV07Xy5Vej1bMCwyLF8udXIsLTFdO3ZhciBWej1bMCxfLk16LF8uVXosXy5VLC0xLDIsXy5SLF8uUCxfLlIsXy5VLF8uWiwtMSxfLlUsLTFdO3ZhciBXej1bMCxfLlF6LF8uVSxWeixfLlN6LF8uVSxbMCxfLlksWzAsXy5MeixfLlBdXSxbMCxfLkx6XSxfLlIsLTEsXy51cixRb2EsXy5UeixbMCxbMSwyXSxfLm16LFswLFsxLDJdLF8ubXosUG9hLGpvYSxQb2FdLF8ubXosWzAsXy5QXSxfLlIsXy5VXSxbMCxfLlVdLF8uVSxfLlksKCk9PlJvYSxbMCxfLkp6LF8uVV0sWzAsXy5SXSxbMCxbMCxfLlAsXy5Eel0sLTRdLFswLF8uTXosXy5SLC0xLF8uVSxfLlosXy5VLC0xXSxbMCxfLlVdLF8uUixbMCxfLlIsLTFdLF8uWSxPeiwxLF8uVSxbMCxbMiwzXSxfLlosXy5reiwtMSxfLlpdLFFvYSxfLlUsTnosWzAsXy5aLF8uVSwtMV1dLFJvYT1bMCwoKT0+V3osXy5aXTtfLlh6PVswLF8udXIsLTJdO3ZhciBTb2E9WzAsXy5QLC0xXTtfLll6PVswLF8uWHosWzAsXy5XeSwtMl0sU29hLF8uV3ksWzBdLFswLF8uV3ksLTFdLDkzLF8uUF07Xy5aej1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRRdWVyeSgpe3JldHVybiBfLkgodGhpcywyKX1zZXRRdWVyeShhKXtyZXR1cm4gXy5paCh0aGlzLDIsYSl9fTt2YXIgVG9hPVswLF8uUixfLlAsLTEsXy5aLF8uUiwxLF8uWixbMCxfLlksWzAsXy5QLC0xXV0sLTEsXy5aLF8uUixfLlosWzAsXy5ZLFswLF8uUCwtM11dLF8uWixfLlIsXy5QXTt2YXIgVW9hPVswLFswLFswLFsxLDJdLF8udHosXy5teixbMCxfLlIsLTNdXSxbMCxbMSwyXSxfLnR6LC0xXSxbMCxbMSwyXSxfLnR6LF8ubXosWzAsWzEsMl0sWzMsNF0sXy5teixfLkN6LF8udHosLTEsXy5teixfLk5vYV1dLFswLF8uVV0sWzAsXy5aXSxbMF0sWzAsWzAsWzEsMl0sXy5teixbMCxfLkJyLC0xLF8uWl0sXy50el0sWzAsWzEsMl0sdG9hLF8udHpdLF8uWSxbMCxfLlpdLF8uWSxbMCxfLlpdLF8uUiwtMyxbMCxfLkN6LC0xLF8uUF0sWzAsXy5QXSxbMCxfLnN6LF8uUCwtMV0sXy5VLFswLF8uWiwtMV1dLFswLF8uQXJdXSxfLlUsXy5aLFRvYSxfLlksV3osXy5aLFswLFd6LDEsXy5SLFswLF8uUCwtM10sXy5SLC0xLDEsXy52cixfLlUsLTEsXy5SLC0xXSxfLlosWzAsXy5aLF8uVV0sWzAsXy5SLC01XSxfLnN6LF8uVSxbMCxbMCxfLlksWzAsWzEsMl0sXy5seixfLmN6LF8uV3ldLC0xXSxfLld5LC0xXSxbMCxXeixfLlIsLTIsXy5aLF8uUixfLll6LF8uUl0sWzAsV3pdLFswLApbMCxfLlIsLTFdLF8uUl0sXy5SLFswLF8uUl0sWzAsXy5BcixfLlJdXTt2YXIgVm9hO1ZvYT1fLiRpKF8uWnosVW9hKTtfLldvYT1fLlhpKDI5OTE3NDA5MyxfLkZ6LF8uWnopO18uR3pbMjk5MTc0MDkzXT1Vb2E7dmFyIE1tYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18udXg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0S2V5KCl7cmV0dXJuIF8uSCh0aGlzLDEpfWdldFZhbHVlKCl7cmV0dXJuIF8uSCh0aGlzLDIpfXNldFZhbHVlKGEpe3JldHVybiBfLmloKHRoaXMsMixhKX19O3ZhciBRbWE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLnh4PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWFkZEVsZW1lbnQoYSxiKXtyZXR1cm4gXy5CdSh0aGlzLDMsYSxiKX1MbihhKXtfLkhnKHRoaXMsMyxfLkRlLHZvaWQgMCxhLF8uRWUsdm9pZCAwLDEsITEsITApfW5rKGEpe3JldHVybiBfLlhnKHRoaXMsMyxhKX19O18uJHo9e307Xy52eD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1VaSgpe3JldHVybiBfLkgodGhpcywxMCl9Z2V0Q29udGV4dCgpe3JldHVybiBfLkFnKHRoaXMsXy52eCwxKX19O18udngucHJvdG90eXBlLlp2PV8uaGEoNDQpO18udHg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSwxNCl9Z2V0VHlwZSgpe3JldHVybiBfLlBnKHRoaXMsMSl9Z2V0SWQoKXtyZXR1cm4gXy5IKHRoaXMsMil9Sm8oKXtyZXR1cm4gXy5LZyh0aGlzLDMpfX07Xy50eC5wcm90b3R5cGUuVUg9Xy5oYSg0NSk7Xy5hQT17fTt2YXIgTm1hPV8uWGkoMzMxNzY1NzgzLF8udHgsTW1hKTtfLmFBWzMzMTc2NTc4M109WzAsXy5kel07dmFyIE9tYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBQbWE9Xy5YaSgzMjAwMzMzMTAsXy50eCxPbWEpO18uYUFbMzIwMDMzMzEwXT1bMCxfLmR6LDMsXy5keiwxLF8uUCwzLFswLF8uWSxbMCxbMiwzLDRdLF8uVSxfLmx6LC0yXV0sMixfLlIsXy5QLDEsWzAsXy5SLC0xLF8uYnosXy5ZLFswLF8uVSxfLlIsLTFdXSxfLlVdO3ZhciBYb2E9WzAsXy5ZLE96LF8uWSxbMCxfLlVdLF8uWiwtMixOeixbMCxfLlUsLTEsXy5QXSxfLlosXy5ZLE96LE56LF8uWixbMCxfLlksWzAsXy5XeSwtMV1dXTt2YXIgYkE9Wy01MDAsXy5ZLF8uU3osMTMsXy5Qeiw0ODQsUnpdO18uY0E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgWW9hPVswLF8uWSxbMCxfLmd6LF8ueHpdLF8uWSxbMCxfLlN6LF8uWiwtMV0sYkEsWzAsXy5ZLFswLFsyXSxfLlosXy5teixbMCxfLlksWzAsXy5QLC0xXSxfLlksWzAsXy5ReixfLlN6XV1dXSxbMCxfLnZ6LC0xXSxfLnVyLF8uQnIsXy5ZLFswLF8uVSxfLlIsXy5QXSxfLlksWzAsXy5nel1dO3ZhciBab2E9WzAsXy5SLF8uSHosWzAsXy5ZLFswLF8uZ3osXy5Iel0sYkFdLDEsWzAsWzAsWzIsMyw0XSxfLlosXy5teixbMCxfLlAsLTEsXy5aLF8uVSwtMV0sXy5teixbMCxZb2EsXy5aLF8ubnosWzAsXy5aLC0xLF8udnJdLF8ubnpdLF8ubXosWzAsXy5aLFlvYSxfLm56LF8uUixfLm56LF8uWl1dXSwxLFswLF8uWixYb2EsXy5aXSxbMCxfLlUsXy5hel0sXy5ZLFswLF8uUXpdLFswLF8uWl1dO3ZhciAkb2E9Xy4kaShfLmNBLFpvYSksYXBhPV8uWGkoNDM2MzM4NTU5LF8uRnosXy5jQSk7Xy5Hels0MzYzMzg1NTldPVpvYTtfLmRBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5lQT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uZkE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9T2woYSl7cmV0dXJuIF8ua2godGhpcywzLGEpfX07Xy5mQS5wcm90b3R5cGUucmg9Xy5oYSg0KTtfLmJwYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uZ0E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9UXEoKXtyZXR1cm4gXy5QZyh0aGlzLDIsMSl9fTtfLmhBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldENvbnRleHQoKXtyZXR1cm4gXy5BZyh0aGlzLF8uZ0EsMSl9c2V0UXVlcnkoYSxiKXtyZXR1cm4gXy4kZih0aGlzLDMsXy5icGEsYSxiKX19O18uaEEucHJvdG90eXBlLnJoPV8uaGEoNDkpO18uaEEucHJvdG90eXBlLnRoPV8uaGEoNDcpO18uY3BhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5pQT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRTdGF0dXMoKXtyZXR1cm4gXy5BZyh0aGlzLF8uY3BhLDEpfWdldEF0dHJpYnV0aW9uKCl7cmV0dXJuIF8uQWcodGhpcyxfLmRBLDUpfXNldEF0dHJpYnV0aW9uKGEpe3JldHVybiBfLkVnKHRoaXMsXy5kQSw1LGEpfWhhc0F0dHJpYnV0ZXMoKXtyZXR1cm4gXy5TZih0aGlzLF8uZkEsNyl9fTtfLmlBLnByb3RvdHlwZS5FdT1fLmhhKDUwKTtfLmpBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldE1lc3NhZ2UoKXtyZXR1cm4gXy5IKHRoaXMsMyl9fTtfLmRwYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRTdGF0dXMoKXtyZXR1cm4gXy5BZyh0aGlzLF8uakEsMSl9fTtfLmVwYT1fLmJqKF8uZHBhKTtfLmtBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldENlbnRlcigpe3JldHVybiBfLkFnKHRoaXMsXy5lQSwxKX1zZXRDZW50ZXIoYSl7cmV0dXJuIF8uRWcodGhpcyxfLmVBLDEsYSl9Z2V0UmFkaXVzKCl7cmV0dXJuIF8uT2codGhpcywyKX1zZXRSYWRpdXMoYSl7cmV0dXJuIF8uQXUodGhpcywyLGEpfX07Xy5sQT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRDb250ZXh0KCl7cmV0dXJuIF8uQWcodGhpcyxfLmdBLDEpfWdldExvY2F0aW9uKCl7cmV0dXJuIF8uQWcodGhpcyxfLmtBLDIpfX07Xy5sQS5wcm90b3R5cGUueEQ9Xy5oYSg1MSk7Xy5sQS5wcm90b3R5cGUucmg9Xy5oYSg0OCk7Xy5sQS5wcm90b3R5cGUudGg9Xy5oYSg0Nik7dmFyIGZwYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uZ3BhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFN0YXR1cygpe3JldHVybiBfLkFnKHRoaXMsXy5qQSwxKX1nZXRNZXRhZGF0YSgpe3JldHVybiBfLkFnKHRoaXMsXy5pQSwyKX1nZXRUaWxlKCl7cmV0dXJuIF8uQWcodGhpcyxmcGEsNCl9fTtfLmhwYT1fLmJqKF8uZ3BhKTtfLm1BPVswLF8uUCxfLlksWzAsXy5QXSwxLF8uWl07dmFyIGlwYT1bMCxfLlIsLTFdO3ZhciBqcGE9WzAsXy5QLC00XTt2YXIgbkE9WzAsXy5QLF8uV3ldO3ZhciBrcGE9WzAsXy51eixuQV07dmFyIGxwYT1bMCxfLlAsXy5ZLFswLF8uUCwtMV1dO18ubXBhPVswLF8uWixfLlVdO18ubnBhPVstNTAwLDEsXy5XeSxfLlN6LC0xLF8uUiwtMSwxLF8uWixfLlN6LF8uUXosXy5QLF8uQ3IsXy5Reiw0ODYsUnpdO3ZhciBvcGE9Wy01MDAsWzAsc29hLFswLDEsXy5QLC0xXSwyLF8uUF0sNDk4LFJ6XTtfLnBwYT1bMCxfLlosXy5SLF8uWiwyLFswLF8uUCwtMyxfLlosXy5QLF8uWiwtMSxfLlBdLC0xXTtfLm9BPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIHBBPVswLF8uRHosXy52cl07Xy5xQT1bMCxfLlAsLTEsMixfLlAsLTQsXy5SLF8uUCxfLmZ6LHBBLF8uUCxbMCxfLmR6LF8uUF0sXy5QXTtfLlF3PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldEtleSgpe3JldHVybiBfLkgodGhpcywxKX1nZXRWYWx1ZSgpe3JldHVybiBfLkgodGhpcywyKX1zZXRWYWx1ZShhKXtyZXR1cm4gXy5paCh0aGlzLDIsYSl9fTtfLnJ4PWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsNil9Z2V0VHlwZSgpe3JldHVybiBfLlBnKHRoaXMsMSwzNyl9fTtfLnJBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5zQT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uRXg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0Wm9vbSgpe3JldHVybiBfLktnKHRoaXMsMSl9c2V0Wm9vbShhKXtyZXR1cm4gXy5iaCh0aGlzLDEsYSl9fTtfLnRBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfVFxKCl7cmV0dXJuIF8uUGcodGhpcywxNyl9fTtfLnVBPVswLF8uUCwtMV07Xy52QT1bMCxfLlV5LC0yXTtfLnFwYT1bLTUwMCxfLlksWzAsXy5ZLF8udUEsXy5aXSxfLlosOTk3LF8uWl07Xy5ycGE9WzAsXy5VLF8udnIsXy5QXTtfLndBPVswLDIsXy51ciwtMV07Xy54QT1bMCxJeixfLm56XTtfLnlBPVswLF8uVSwtMSxfLll6LF8ud0EsXy5aLF8uUiwtMSwxLF8uWixfLlAsXy5VLF8ubnosXy5VLF8ubnosXy54QV07dmFyIHNwYT1bMCxtb2EsLTFdO3ZhciB0cGE9Wy0zNCx7fSxfLlIsLTQsXy5QLFswLFNvYSxfLlksWzAsXy5aLF8uUixfLlosLTFdLF8uUiwtMV0sXy5SLC0xLF8uUCxfLlIsMSxfLlIsLTksWzAsXy5SXSxbMCxfLlJdLF8uUiwtMSxbMCxfLkNyLF8uUiwtMSxfLlBdLFswLF8uUl0sXy5SLFswLF8uUiwtMV0sXy5SLC0yXTtfLnVwYT1bMCxfLlUsXy5QLF8uWiwtMSwxLF8uVSwxLF8uV3ksWzAsXy5QLC01XSwxLF8uWixbMCxfLlIsLTZdLHRwYSwxLF8ubUEsXy5SLFswLFszLDQsNV0sWzAsXy5QLC0yXSwtMSxfLmV6LC0xLF8ua3osXy5QXSxbMCxfLlIsLTksWzAsWzAsXy5QLF8uQ3IsXy5SLF8uQ3JdXSxfLlIsLTMsWzAsdHBhXSxfLlIsLTUsXy5aLF8uUiwtMixbMCxfLlJdLF8uUiwtNCxbMCxfLlJdLF8uUiwtMSxfLlosXy5SLC0xXSxfLlIsXy5aLFswLF8uUCwtM10sXy5ueixbMCxfLlIsXy5ueixfLlJdXTt2YXIgdnBhPVswLF8uWl07dmFyIHpBPVswLF8uWSxbMCxfLlosdnBhLF8uV3ksLTEsXy5aXSxfLlIsMyxfLlJdO3ZhciB4cGE9WzAsKCk9PndwYV0seXBhPVswLF8uVSwtMSxfLndBLF8uVSxfLlosLTEsWzAsXy5VLF8uV3ksXy5VLC0xXSxfLlUsMixfLlIsXy5VLC0yLDEsKCk9PnhwYSwxLF8uUixfLlUsMSxfLlIsXy5QLFswLF8uUiwtNF0sWzAsXy5XeV0sXy5aLDEsXy5QLFswLF8uWixfLlksWzAsXy5VXSxfLlBdLFswLF8uUl0sXy5VLC0yXSx3cGE9WzAsKCk9PnlwYSxfLlJdO3ZhciB6cGE9WzAsXy5aLF8uUiwtMSxfLmR6LC0xLF8uUiwtNywxLF8uUiwtOCwxLF8uUl07dmFyIEFwYT1bMCxfLkJyLC0yLF8uVSxfLkJyLC0yXTt2YXIgQUE9WzAsXy5QLF8uQnIsXy5xeixfLlAsXy5aLF8uUCwtMSxfLlksWzAsXy5aLF8uVSxbMCxfLnZyLF8uVSxfLnZyLF8uUixfLlUsLTEsMSxfLnZyLF8uVSwtMV0sXy5VLC0xLF8uQnJdLF8uWixbMCxfLnVyLF8uQnIsLTNdLFswLF8uWiwtMSxfLlUsXy5SLC0xLF8uUCwtMV0sXy5CcixfLlUsXy5QLFswLF8uVSwtMl0sXy5VLC0xLF8uQnIsLTEsWzAsXy5VXSxfLlUsNSxfLkJyLF8uWixbMCxfLlAsLTRdLFswLF8uUixfLlAsLTQsXy5Hcl1dO3ZhciBCcGE9WzAsXy5CciwtMixfLlosXy5CcixfLnJ6LF8uQnIsXy5VLF8uQnIsLTEsXy5VLF8uWiwtMSxfLlksQUFdO3ZhciBDcGE9WzAsXy5CcixCcGEsXy5CcixfLlosXy5CciwtMixbMCxfLlUsLTFdLF8uWSxbMCxfLkJyLC0xLF8uVV0sXy5ZLEFBXTt2YXIgRHBhPVswLF8uWixfLlUsWzAsXy5VLF8uUixfLlBdLF8uVSxBQSxfLlksQUEsXy5SLF8uQnIsLTEyLF8uVSxfLkJyLF8uWixfLkJyLC0xLF8uVSxbMCxfLlIsXy5CciwtNF0sWzAsXy5SLC0yXSxfLlosLTEsXy5DcixfLkJyLF8uVSxfLkJyLC0zLF8uUixfLlosXy5ZLEFBLF8uVSwtMSxfLlIsXy5CciwtMTAsWzAsXy5QLEFwYSxfLlIsXy5QLF8uWSxbMCxfLlIsLTIsXy5CciwtMV0sXy5QLC0xMyxfLlosWzAsXy5QLC02LF8udnJdLC0xLGxvYSxfLlIsXy5QXSxfLkJyLF8uWSxbMCxfLnF6LF8uQnIsXy5QLF8uQnIsXy5aLF8uUF0sXy5CcixbMCxfLkJyLC0xXSxfLlksWzAsXy5aLF8uVSxfLlAsLTFdLDEsXy5CciwtMixbMCxfLlAsLTEsXy52ciwtMixfLlAsLTFdLF8uQnIsLTEsWzAsXy5CciwtNF0sXy5ZLFswLF8uVSxfLlksQUFdLF8uQnIsLTEsXy5VLFswLF8uQnIsMSxfLkJyLC0xXSxfLmF6LFswLF8uUCwtNV0sWzAsXy5SLC0yXSxfLkJyLC0xLF8uWSxbMCxfLkJyLF8ucXosCl8uVV0sWzAsXy5SLC0yLF8uUCxfLlIsXy5QXSxbMCxbMCxfLlBdLC0xXSxfLmd6LF8uWSxbMCxfLlAsLTJdLF8uQnIsWzAsXy5QXSxbMCxfLlIsLTEsXy5QLF8uUl0sXy5ZLFswLF8uUixfLnZyLF8uUF0sXy5SLF8udnIsXy5ZLFswLFsxXSxfLm16LFswLF8uVSxfLlIsXy5QLC0zLF8uVSwtMl0sXy5VXSxfLlksWzAsXy5VLF8uUCxfLnZyLF8uVSwtMSxfLnZyLF8uUl0sXy5SLFswLF8uWSxbMCxfLkJyLF8ucXosXy52cl0sXy5QXSxub2EsWzAsXy5SLC0xXSxfLlosLTEsXy5CcixfLnN6LF8uVSxBcGEsLTEsXy5ZLFswLF8uQnIsLTJdLF8uWSxCcGEsXy5ZLENwYSxfLlUsXy5SLC0xLF8uWSxbMCxfLkJyLC00XSxfLlksQ3BhLF8uQnIsXy5SLFswLF8uVSwtM10sXy5VLF8uWixfLkJyLC0xLF8uVSxfLkJyLF8uVSxfLkJyLF8uWixfLlksWzAsXy5xeixfLlAsXy5Ccl0sXy5aLFswLF8uUixfLlAsLTMsXy5zeixfLnlyLC0xXSxfLkJyLC0xLF8uUl07dmFyIEVwYT1bMCxfLlUsLTEsXy5aLC0xLF8uUixfLlUsXy5SLF8uUCxfLlosWzAsWzAsXy5VLF8uWl1dLF8uVSxbMCxfLlUsXy5SLC0xXV07dmFyIEZwYT1bMCxfLlosLTFdO18uQkE9Wy01Myx7fSxbMTMsMzEsMzNdLF8uWSx5cGEsMSxfLll6LF8uUCwxLFswLFs3MF0sWzAsXy5aLC0xLF8udnIsMSxfLlosXy5SLF8uQ3IsXy5aLF8uUixfLlksdnBhLFswLF8uWiwxLFswLF8uUCwtMV1dLF8uWixfLlAsLTEsXy5ZLFswLF8uWl0sXy5SLC0zLFswLF8uUF0sWzAsWzAsXy5SLC00XSwtMSwxLF8ubnosLTEsXy5SXSwzLF8uQ3IsWzAsXy5VXSxfLlIsLTMsWzAsXy5SXSxfLlIsLTEsXy5aXSxbMCxfLlIsLTMsWzAsXy5ueiwzLF8uUixfLlosLTEsMSxfLlIsXy5aLF8uUiwtMl0sXy5SLDEsXy5SLDExLF8uWixfLlAsXy5SLF8uWSxbMCxfLlpdLF8uUiwtMSxfLlosWzAsXy5ZLFswLF8uWl0sXy5SLF8uWiwtMixfLlIsLTFdLFswLF8uWiwtMV0sXy5SLF8uWixpcGEsXy5SLDEsWzAsXy5aLF8udnJdLF8uUiwtMSxbMCxfLlIsMSxfLlIsLTRdLFswLF8uUCwtMyxqcGEsXy5QLF8uWSxqcGEsXy5ZLFswLF8uWl1dLF8uUiwtMywyLF8uWSxbMCxfLlpdXSwzLFswLF8uUiwyLApfLlIsMjAsXy5SLDYsXy5QLC0xLDgsXy5SLDUsXy5SLC0xLDUsXy5SLDQsXy5SLDIsWzAsXy51cixfLlAsLTFdLDIsXy5SLDIsXy5aLDIsXy5aLDgsXy5QLDMsXy5SLDMsXy5SLDIsXy5SLDUsXy5SLF8uVSxfLlIsMSxfLmR6LF8uUiw3LF8uUiwxLF8uUiwtMSw4LF8uUiwtMSw1LF8uUiwxLF8uUiwtMSw3LF8uVSwzLF8uUiwtMSwyLF8uUiw0LF8uWixfLlIsNSxfLlIsLTEsMTQsXy5SLC0xLDUsXy5SLC0zLDIsXy5QLF8uUiwtMixfLlAsLTEsMSxfLkFyLDEsXy5SLC0xLDIsXy5SLDIsXy5SLC0xMCwxLF8uUiwtMSwxLF8uQXIsXy5SLC00LDEsXy5SLDMsXy5SLC00LF8uWixfLlIsLTEsMSxfLlIsMSxfLlIsLTcsXy5VLDEsXy5SLC00LDIsXy5SLC0zLDEsXy5SLC02LDEsXy5SLC00LDIsXy5SLC0xLDMsXy5SLC00LDEsWzAsXy5SLC04XSxfLlIsLTUsMSxfLlIsLTIsXy5QLC0xXSxfLlIsLTEsXy5aLF8uUiwxLF8uUiwtMixfLmR6LF8uUixbMCxfLkNyLF8uUixfLkNyLF8uWl0sMSxbMCwKXy5aLC0xLF8udnJdLFswLF8uWiwtMSxfLlIsLTEsXy5aLF8uUiwtMiwxLF8uUiwtMSxbMCxfLlosekEsXy5SLF8uVHksWyEwLF8uVSx6QV0sXy5QXSxbMCxfLlksWzAsWzEsMl0sXy5teixbMCxfLlosXy5ZLFswLF8uWiwtMl1dLF8ubXosWzAsXy5ZLFswLF8uWl1dXSxfLlIsXy5QLHpBLF8uVHksWyEwLF8uVSx6QV1dLF8uUl0sMyxfLlIsLTMsWzAsXy5ueixfLlBdLF8uUixbMCxfLm56XSxfLlIsMSxfLlIsLTIsNyxfLlAsXy5VLDEsWzAsXy5SLGlwYV0sXy5SLC0yLDEsWzAsWzIsNF0sWzAsXy5SLC0xXSxfLmx6LF8uVSxfLm16LFswLF8uVSwtMV1dLF8uUiwyLFswLF8uWSxbMCxfLlpdLF8uUl0sMSxfLlIsLTEsMixbMCxbMCxfLlIsLTJdLF8uUixfLlUsXy5SXSxbMCxbMCxbMCxfLnZyLDEsbkEsLTEsXy5aLF8uV3ksLTEsbkEsXy5QLC0xLF8uUixfLld5LF8uWSxbMCxfLlosXy5QXSxfLlAsWzAsXy5QLF8uWl1dLFswLFswLF8uV3ksLTFdLC0yXSwxLFswLF8uWSxbMCxfLlAsLTFdLApfLlksWzAsXy5QLC0xXV0sMSxfLlksWzAsMixuQSxfLlBdLF8uWSxbMCxfLld5LG5BLC0yXSxbMCwzLF8uWSxscGEsXy5ZLFswLF8uV3ksXy5ZLGxwYV1dLFswLF8uUCxuQV0sWzAsNixfLlksWzAsXy5XeSxfLlksa3BhXSxfLlBdLFswLDMsXy5ZLGtwYV0sWzAsXy5VLF8uUixfLlpdLFswLF8uWSxbMCxfLlAsXy5XeV0sXy5QLF8uWSxbMCxfLld5LF8uUF0sXy5QLF8uWSxbMCxfLlAsXy5XeV1dXSxfLlIsLTEsWG9hLF8uUiwxLFswLF8uUCxfLlIsXy5QLDEsXy5QLF8uUiwxLF8uUixfLlAsXy5SXSxfLlksWzAsXy5VXSxfLlIsLTEsXy5XeSxfLlIsLTNdLFswLF8uWSxbMCwxLHNwYV0sWzAsXy5SXV0sXy5SLDIsXy5SLC0xLFswLFswLF8uVSwtMV0sWzAsXy5aLF8uVSwtNF0sWzAsMSxfLlksWzAsXy5aXV1dLF8ubXosWzAsXy5uel0sXy5XeSxbMCxfLlIsXy5QXSxfLlIsLTEsWzAsXy5SLF8uWl0sMixfLlIsMSxfLlIsLTIsMSxbMCxfLlJdLF8uWSxbMCxfLlosLTFdLF8uUiwxLFswLF8uWiwKLTIsWzAsXy5SLF8uWSxbMCxfLlVdLF8uUiwtMV0sWzAsXy5SLC0xLDEsXy5SLC0xM10sWzAsXy5SXSxbMCxfLlJdLFswLF8uUl0sXy5aXSxfLlIsLTIsWzAsXy5SXSxbMCxfLlIsLTFdLDEsWzAsXy5SLC0yXSxfLlIsWzAsXy5ZLFswLFsyXSxfLm56LF8ua3pdLF8uUl0sXy5SLC02LFswLF8uUiwtMV0sXy5aXSxfLlosenBhLF8uWSxbMCxfLlAsXy53QSxfLlUsXy5XeSxfLlJdLDIsXy5SLF8ubHosMSxbMCxfLlUsLTEsXy5SLF8ucUEsXy5VLC0xLF8uWixfLlksWy0yMzMsXy4keixfLlAsMSxfLlAsXy5keixfLlUsXy5aLF8uUCwzLFswLFsxLDJdLFszLDZdLF8ubXosXy5EeixfLm16LHBBLF8uZXosMixfLm16LFswLF8uZHosXy5QXV0sNSxfLlUsMTEyLF8uUiwxOCxfLlAsODIsWzAsWzAsWzEsMyw0XSxbMiw1XSxfLm16LF8uRHosXy5teixfLnFBLF8ubXoscEEsXy5seiwtMV1dXSxfLlUsLTEsRHBhLF8uWiwtMSxbMCxfLlIsXy5VLC0xXSxfLlAsMSxfLlUsXy5DcixbMCxfLlpdLF8uUiwKLTMsWzAsXy5VLF8uWl0sMSxfLlIsQm9hLF8uWixbMCxfLkNyXV0sXy5SLDIsWzAsXy5aXSxbMCxfLlksWzAsWzAsXy5QLC0xXSwtMV0sXy5SLC0xXSwyLF8uUCwxLF8uUixbMCxfLlpdLF8uUixbMCxfLlUsLTcsMSxfLlUsLTMsXy5ueixfLlUsLTEsXy5ZLFswLF8ubnpdXSwxLF8uWixfLnB6LF8ubnosXy50eixfLlksWzAsXy5QLERwYSxfLlJdLDIsXy5SLF8uVSxbMCxfLlosXy5VLF8uQ3IsXy5VLF8uWixfLlV6LF8uWiwtMSxfLlUsXy5ZLF8ueEEsXy5VXSxfLlAsWzAsXy5QLC0xLF8uVSxfLlIsLTEsXy5aLF8uVSxfLlJdLDEsRnBhLDEsWzAsXy5SLF8uWixfLlIsXy5ZLFswLF8uWixfLlAsLTFdLF8uWixfLm56LF8uUixfLlUsWzAsXy5ZLFswLF8uWnldLF8uWnldLF8ubnosWzAsWzAsXy5ZLF8uVXpdLF8uV3ksLTEsXy5SXV0sMSxbMCxfLlIsMSxfLlIsLTIsWzAsXy5SLC0xXSxbMCxfLlosXy5SXSxfLlIsLTEsXy5aLF8uUl0sXy5VLFswLFswLF8uVV0sWzAsXy5VXSxbMCwyMCxfLlR5LApfLnd6LC0xXSwxLFswLF8uVV0sWzAsXy55cixfLnZyLF8ueXIsXy5ZLEVwYSxbMCxfLlUsXy5ZLEVwYSxfLlksWzAsXy5VLF8uZHpdLF8uUCxfLlUsMixfLlksWzAsXy5VLF8uWSxbMCxfLlUsXy5aLF8uUF1dLF8uVSxbMCxfLlksWzAsXy5VLF8uZHpdXV0sMSxfLlUsMSxbMCxfLlAsLTIsXy5Bcl0sXy5BciwyLF8ubnosMSxIb2FdXSxfLlUsXy5ueiwtMV07dmFyIENBPVswLCgpPT5DQSxfLnlBLDIsWzAsMSxbMCwzLF8uWSxWel0sWzAsXy5BcixfLlBdLF8uWSxbMCxfLlUsXy53QSxfLlpdXSxWeiwxLF8uQkEsMSxfLlUsXy5aLFswLF8uVSxbMCxfLlUsLTIsXy5XeSwtMV0sXy5ZLFswLF8uUXosMSxfLlUsMSxfLlV6LFswLF8uV3ksXy5VXSxbMCxfLlosXy5VXV0sWzAsXy5DcixbMCxfLlosXy5hel0sMSxfLkNyLDIsXy5VLF8uWixfLnVwYSwyLF8uQXIsXy5QLC0yLF8uUiwxLF8uUiwtMSxfLkNyLF8uWixfLlIsWzAsXy5DcixfLlAsLTFdLF8uVSxfLlJdLF8uVSxfLlR6LDEsWzAsMixfLndBLC0xXSwxLF8uUiwtMSxfLlUsXy55QSw0LF8uVSxbMCxfLlIsXy5VLF8uQXJdLF8uWixbMCxfLlosXy5VLC0xXSxfLlosVG9hLF8uUiwtMV0sWzAsMSxfLlUsMTEsXy5SLDMsWzAsNCxfLlIsLTEsMixfLlIsNCxfLlosNSxfLlIsLTFdLDIsWzAsXy5SLC0xXSxbMCw1LF8uWiwtMl1dLF8uUiwxLF8uWSxbMCxfLlF6LF8uVSxfLlN6XSxfLlUsXy5ZLFswLApfLlosXy5VXSxfLnF6LFswLF8uWixbMCxfLkFyLF8uYXpdXSxfLkNyLFswLF8uWSxbMCwxLF8uVSxfLkFyLF8uUixfLlpdLF8uVSwtMSxfLnZyLF8uWSxfLndBLF8uUCxfLlIsXy5ZLFswLF8uWixfLlksXy53QSwyLFswLF8uWSxbMCxfLlUsLTFdXSwtMV1dLF8ud0EsWzAsXy5VLF8uUCxfLlJdLFswLDQsXy5SXV07dmFyIEdwYT1bLTE0LF8uYUEsXy5aLF8uVSxfLlAsXy5ZLFswLF8uVSwtMV0sXy5keixbMCxfLlksWzAsXy5TeixfLlosXy5CcixfLlUsXy5CcixfLlF6LF8uUixfLlB6LF8uUCwtMSxfLlosWy0xNSx7fSxfLkFyLF8uV3ksMSxfLlUsLTEsXy5QLF8uaHosXy5QLC0xLGl6LC0xLF8uWiwtMSxfLlVdLF8uWiwtMSxfLlUsXy5aXSxfLlksWzAsYkEsXy5CcixfLld5LF8uUixfLm56LF8uWl0sXy5DcixfLlksWzAsXy5TeixfLld5LF8uQnIsXy5XeSxfLkJyXV0sXy5SLENBLENvYSwxLFswLF8uWl0sXy5SLFswLF8ueXJdXTt2YXIgSHBhPVstNix7fSxfLlosXy5ZLFswLF8uVSwtMV0sWzAsXy5ZLEdvYV0sXy5aLF8uUl07Xy5EQT1bMCxfLlosLTEsXy5QLC0yLF8uWSxbMCxfLlAsLTFdLF8uWiwtMixfLlBdO18uRUE9WzAsXy5aLC0xXTtfLklwYT1bMCxfLlVdO18uRkE9WzAsXy5VLF8uWiwtMSxfLlIsLTEsWzAsXy5aXSxbMCxfLlpdLF8uWixfLlIsLTEsWzAsXy5aXV07Xy5KcGE9WzAsWzAsWzAsXy5meiwtMV0sXy5SLF8uaHosLTEsXy5aXSxbMCxfLkNyLC0xLFswLF8uUCwtMixfLlpdLF8uWiwtMixbMCxfLlUsLTEsXy5SXSxfLmR6LF8uQ3IsXy5QLF8uREEsXy5QLF8ucnBhLF8uUCxfLlksWzAsXy5aLC0xXSxfLlAsXy5JcGEsXy5GQSwxLF8uRUEsNCxfLm1wYV0sMyxfLkZBLDYxLF8uUCwzLF8uRUFdO18uS3BhPVswLDIsWzAsXy5QLC0xLF8uSnBhXSwtMV07dmFyIExwYT1bMCxbMywxNV0sMixfLm16LF8uQkEsMSxfLlosNCxbMCxfLlosMSx6cGEsXy5QXSwzLF8ubnosXy5teixbMCxfLlksWzAsWzEsMl0sXy5teixzcGEsXy5teixfLlV6XSxfLlosRnBhXSxfLlksWzAsXy5ueixfLlUsXy5QLF8uUixfLmh6LDEsXy5LcGEsXy5VLC0xLF8ubnpdXTt2YXIgTXBhPVswLF8uWSxbMCxfLlUsLTEsXy55el0sXy5SLC0xLFswLF8uWSxbMCxbLTUwMCxfLlksYkEsXy5XeSwtMSxfLiR5LF8ubnosXy5SLDgsXy5Qeiw0ODQsUnpdLF8uWl1dLF8uUiwtMSxbMCxbMCxfLlVdLF8uUCwtMV0sWzAsXy5VLC0xXSxfLlosXy5SXTtfLkdBPVswLF8uUCwtNF07dmFyIE5wYT1bMCxbMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzXSxfLlosXy5reixfLnB6LHJvYSxxb2Esam9hLF8uZXosXy5rb2EsdW9hLHZvYSxfLmx6LHRvYSxfLmN6XTt2YXIgSEE9WzAsXy5ZLFswLF8uVSwtMV0sMSxfLlB6LF8uWl07dmFyIElBPVswLF8uV3ksLTEsXy5QXTt2YXIgT3BhPVswLF8uUCwtMSxfLmp6XTt2YXIgUHBhPVswLF8uWSxfLlF6LF8uUXosLTJdO18uUXBhPVswLF8uR3IsNyxbMCxfLlVdLF8uYXosWzAsXy5VLC0yXSwxLFswLF8uVSwtNV1dO3ZhciBKQT1bMCxfLlosXy5VLF8uUCxfLm56LF8uanpdO3ZhciBLQT1bMCxfLlosMSxfLlpdO3ZhciBScGE9WzAsXy5XeSxfLnVyLDEsS0FdO3ZhciBTcGE9WzAsWzIwLDIxXSxfLlosXy5XeSwtMSxfLm56LDEsXy5ueiwzLF8uWSxScGEsXy51ciwtMyxfLlh5LC0yLF8ubnosXy5ZLFJwYSxfLm16LFswLF8uWiwtMl0sXy5teixbMCwzLF8uWl0sXy51cixfLnZBXTt2YXIgVHBhPVswLF8uWixfLld5LC0yXTt2YXIgTEE9WzAsXy5VLC0yXTt2YXIgVXBhPVswLF8uaHosTEEsWzAsXy5VLF8uWixfLld5LF8uWixfLlAsXy5aXV07dmFyIE1BPVswLF8uc3pdO3ZhciBOQT1bMCxfLmh6LF8uV3ksXy5SLGlvYSxfLlosLTEsTEEsXy5aLDEsXy5XeSwtMyxbMCxfLlVdLC0xLE1BXTt2YXIgT0E9Wy0yNix7fSxfLlksTkEsXy5ZLFVwYSxfLlksWzAsXy5VLF8uV3ksLTEsXy5oeixfLlUsXy5XeSxfLlosMixfLld5LF8uWixfLlIsLTFdLDEsXy5ZLFswLF8uVSxfLlksWzAsXy5VLF8uUCwtM10sXy5SLF8uV3ksXy5oeiwtMSxfLlIsXy5aLFswLF8uUCwtM10sXy5aXSxbMCxfLld5LC0yLDQsXy5XeSxfLlAsLTMsXy5DcixfLlAsLTEsXy5aLF8uUCxfLmh6LF8uUixNQSxfLlosXy5QXSwyLF8uWixfLlksSkEsWzAsXy5XeSxfLmh6LF8uV3ksLTEsXy5oeiwtMSxNQV0sNSxbMCwxLF8uWiwtMV0sXy5QLFswLGl6LExBXSxbMCxfLld5XSwxLF8uUixfLlksXy51QSxbMCxNQV0sWzAsXy5oeixfLld5LF8uaHosXy5XeV1dO3ZhciBWcGE9WzAsWzAsXy5XeSwtNF0sWzAsXy5ueixfLld5LC0xLF8uUl0sWzAsXy5aLC0xLF8uV3ksLTFdXTt2YXIgWHBhPVstNDIse30sXy5aLDIsT0EsXy5ueiwtMSxbMCxWcGEsWzAsXy5QLF8uVSwtMSwyLF8uUCwtMV1dLDEsXy5QeiwxLCgpPT5XcGEsMSxfLlAsXy5QeixfLlAsNCxbMCxbMCxfLm56LC0xXSxfLld5LC0zXSxbMCxTcGEsXy5ZLFswLF8uV3ksXy5QLC0xLFswLF8uWSxbLTE0LHt9LFsxMCwxMV0sXy5QLF8uVSxPQSwyLF8uUixJQSxfLlUsXy5aLF8udHosLTEsWzAsXy5SLC0xXSxIQV0sLTEsWzAsMSxfLlAsLTIsXy5SLDEsXy5aLF8uUCxfLlksS0EsMSxfLlIsLTEsSUEsXy5aLF8uV3ksXy5SLF8uV3ksXy5SLF8uUCxbMCxfLlosXy5QXSxfLlosXy5QLF8uV3ldLFswLDEsXy5ZLEtBLF8uUixJQV0sMSxPQSwtMV0sXy5ZLFswLF8uUCxfLkJyXSwxLF8uWSxbMCxfLld5LF8uQnJdLF8uWSxbMCxfLkJyLF8uUF0sXy5QLF8uUiwtMSxfLlosMSxfLlksVHBhLF8uWSxbMCxfLkJyLF8uWSxUcGFdLF8uZnpdLF8uUixfLlksWzAsXy5CcixTcGEsXy5SXSxfLlJdLFswLF8uVSwtMixfLlFwYV0sCl8uUCxfLld5LFswLF8ubnosXy51cixfLlAsLTNdLFswLGlvYSwtMSxfLm56XSxfLlIsXy5QLC0xLDEsWzAsXy5ZLE5wYV0sWzAsXy5ueixfLlksWzAsXy5QLF8uWSxKQSxfLlBdLF8udkEsXy5SLF8uUF0sWzAsXy52QV0sWzAsXy51ciwtMV0sWzAsXy5ueixfLnlyLF8udkFdLF8uUixbMCxfLlksWzAsXy5ueixfLlksSkEsXy5QXSxfLnZBLF8uUixfLlh5LC0xXSxfLlksWzAsXy5zeiwtMV0sXy5SLC0xLF8uc3pdLFdwYT1bMCxfLlksKCk9PlhwYSxWcGFdO3ZhciBZcGE9WzAsXy5aLFswLF8uQXJdLDEsWzAsXy5ZLFswLF8uUXosXy5aLF8uV3ksXy5UeixfLlksSEEsXy5DcixfLlUsXy5aLF8uWSxbLTUwMCxfLlosXy5ReixfLlAsXy5VLF8uV3ksXy5ZLFstNTAwLF8uVSwtMSxfLkNyLDEsXy5VLC0xLDgsXy5Qeiw0ODQsUnpdLF8uUixfLlUsNyxfLlB6LDQ4MyxSel0sNixbLTUwMCxfLlosXy5QLF8uV3ksLTEsMSxfLlksXy5ReixfLlF6LDQ5MixSeiwtMV0sWzAsXy5XeSxfLlksXy5ReixfLlBdLF8uVSxfLlN6LF8uZ3osXy5BciwxLFswLG9wYSxfLlksWy01MDAsXy5wcGEsb3BhLDQ5NyxSel1dLFBwYSxbLTUwMCxfLlUsNDk4LFJ6XSxwb2EsWzAsXy5ZLFswLF8uUCxfLld5XV0sMSxfLmd6LDEsXy5ZLFBwYSxfLlksT3BhLF8uVSxfLlksT3BhLF8uWSxfLm5wYSwxLF8uUl0sXy5ZLFhwYSxbMCxfLlosXy5SLDEsXy5Rel1dLFswLF8uUHpdLDEsWzAsSkFdLDMsWzBdLDUsWzAsXy5VLF8ubnpdLDEsWzAsXy5ZLEpBXSxbMCwyLF8uWixfLld5XV07dmFyIFpwYT1bMCxfLlAsLTJdO3ZhciAkcGE9WzAsXy5SLDMsXy5SLDIsWnBhLC0xLDEsXy5SLC0xXTt2YXIgYXFhPVswLF8uWixbMCxfLlIsXy5QLF8uV3ldXTt2YXIgUEE9WzAsWzEsMl0sXy5seixfLm9vYV07dmFyIGJxYT1bMCxbMSw2XSxfLm16LFBBLF8uUCxfLlIsLTIsXy5teixbMCxfLkFyXSwxLF8udXIsLTFdO3ZhciBjcWE9WzAsXy5SLC00XTt2YXIgZHFhPVswLFsxLDVdLF8udHosXy5SLC0yLF8udHosXy5SLC0yLF8uaHosLTIsXy5SLC0xLF8uWiwtM107dmFyIGVxYT1bMCxfLlksWzAsXy5VLF8uUF0sZHFhLF8uWl07dmFyIGZxYT1bMCxfLlAsLTFdO3ZhciBncWE9WzAsUEEsMSxfLlIsLTMsMixkcWEsXy5SLF8uUCxfLlUsLTEsXy51cixfLlAsXy5SLC0xLF8uWiwxLF8uWSxVcGEsXy5VLF8uUCxfLlIsXy5VLF8uWixfLlN6LF8uWiwtMSxfLlksTkEsXy5SLF8uWSxOQSxfLlAsXy5SLF8uWiwtMSwxLF8uaHosLTUsXy5SLC0xXTt2YXIgaHFhPVswLFpwYSxfLlIsLTFdO3ZhciBpcWE9WzAsMSxfLlBdO3ZhciBqcWE9WzAsXy5SLF8uUF07dmFyIGtxYT1bMCxbNiw3XSxfLlosLTEsXy5zeixfLlosLTEsXy5teixbMCwxNSxfLnN6XSwtMSxfLkNyLF8uUixfLnN6XTt2YXIgbHFhPVswLF8uUF07dmFyIG1xYT1bMCwzLF8uUixfLlAsXy5SLC0xLF8uWSxbMCxfLlosXy5QLFswLF8udXIsLTJdXV07dmFyIG5xYT1bMCxfLlpdO3ZhciBvcWE9WzAsMTYsXy5aLDYsWzAsXy5aLC0yLCRwYSxfLlksZ3FhLFswLF8uUCwtMSxfLlksWzAsXy5aLC0xLF8uVSxfLlBdLF8udXIsMSxfLlAsJHBhLF8uWSxncWEsXy5SLC0xLGJxYSwyLFswLF8uUCwtNF0sbHFhLDEsXy5CcixfLlIsbXFhLF8uUixmcWEsXy5zeiwxLGNxYSxocWEsaXFhLGVxYSxqcWEsYXFhLG5xYSxrcWFdLF8uUixicWEsXy5SLDEsbHFhLF8uQnIsXy5SLG1xYSxfLnN6LGZxYSwyLGNxYSxocWEsaXFhLGVxYSxqcWEsYXFhLG5xYSxrcWFdLFswLFswLFBBLF8uU3pdLDEsWzAsXy5aLF8uUF0sXy5SXSxbMCxbMSwyXSxfLm16LFswLFsxXSxfLmx6LF8uWl0sXy5teixbMCxfLlosXy51ciwtMSxfLlksWzAsXy5nel0sXy5ZLFswLFswLFswLF8uUixfLld5LF8uVHosXy5SLF8uWixfLlIsXy5DcixfLlAsXy5aLC0xXSxfLm56LC0xLF8uWSxbMCxfLlAsXy5aLFswLF8uUXosXy5XeV0sXy5SLF8uWixfLlF6LF8uUCwtMV0sXy5aXV1dXSxfLlosWzAsXy5SLF8uV3ksXy55cl0sCjEsWzAsMixfLlksWzAsWzAsXy5aLF8uUXosXy5VLC0xLF8uWiwxLF8uUixfLlosXy5ZLEpBLF8uVSxfLld5LF8uUixfLlksXy5ReixfLlF6LF8uWSxKQSxfLlF6LF8uWixfLlJdLF8uWSxZcGEsMSxfLlosXy5SLDEsXy5ZLFlwYV0sXy5SLFswLF8uWSxbMCwxLFstNyx7fSxfLlosXy5VLFstNCx7fSxfLlksWzAsXy5aLEhBLF8uVSxfLlosLTEsXy5SLFstMyx7fSxfLlosXy5QXSwxLElBXSxfLkRBLElBXSxbMCxfLkNyLF8uREFdLFswLF8uWixfLkRBXSxfLlksTnBhXSxbMCxfLnlyLC0yLF8uWSxbMCxfLlAsLTFdXSxfLmZ6LFswLF8uWiwxLF8uQXIsXy5VXSxbMCxfLmZ6LF8ucXBhXSxfLlAsLTEsXy5SLF8uUCwtMixfLlB6XV1dXTtfLlFBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5RQS5wcm90b3R5cGUuUXI9Xy5oYSgxOSk7Xy5wcWE9bmV3IF8uUXIoIi9nb29nbGUuaW50ZXJuYWwubWFwcy5tYXBzanMudjEuTWFwc0pzSW50ZXJuYWxTZXJ2aWNlL0dldE1hcDNEQ29uZmlnIixfLlFBLGE9PmEuamooKSxfLmJqKGNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXJoKCl7cmV0dXJuIF8uQWcodGhpcyxfLm5xLDEpfX0pKTt2YXIgdW1hPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFVybCgpe3JldHVybiBfLkgodGhpcywzKX1zZXRVcmwoYSl7cmV0dXJuIF8uamgodGhpcywzLGEpfX07dmFyIFRuYT1uZXcgXy5RcigiL2dvb2dsZS5pbnRlcm5hbC5tYXBzLm1hcHNqcy52MS5NYXBzSnNJbnRlcm5hbFNlcnZpY2UvR2V0TWFwc0p3dCIsdW1hLGE9PmEuamooKSxfLmJqKGNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfUhvKCl7cmV0dXJuIF8uSCh0aGlzLDEpfX0pKTt2YXIgcXFhPW5ldyBfLlFyKCIvZ29vZ2xlLmludGVybmFsLm1hcHMubWFwc2pzLnYxLk1hcHNKc0ludGVybmFsU2VydmljZS9HZXRNZXRhZGF0YSIsXy5oQSxhPT5hLmpqKCksXy5lcGEpO18ucnFhPW5ldyBfLlFyKCIvZ29vZ2xlLmludGVybmFsLm1hcHMubWFwc2pzLnYxLk1hcHNKc0ludGVybmFsU2VydmljZS9HZXRQbGFjZVdpZGdldE1ldGFkYXRhIixfLndvYSxhPT5hLmpqKCksXy5iaihjbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1Ibygpe3JldHVybiBfLkgodGhpcywxKX19KSk7dmFyIHNxYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uUkE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLlNBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFpvb20oKXtyZXR1cm4gXy5MZyh0aGlzLDIpfXNldFpvb20oYSl7cmV0dXJuIF8uZGgodGhpcywyLGEpfWtqKGEpe3JldHVybiBfLmloKHRoaXMsNCxhKX1RcSgpe3JldHVybiBfLlBnKHRoaXMsMTEpfWdldFVybCgpe3JldHVybiBfLkgodGhpcywxMyl9c2V0VXJsKGEpe3JldHVybiBfLmloKHRoaXMsMTMsYSl9fTtfLmFhPV8uU0EucHJvdG90eXBlO18uYWEuVXM9Xy5oYSg1Myk7Xy5hYS5LbT1fLmhhKDM5KTtfLmFhLnFrPV8uaGEoMzApO18uYWEuUXI9Xy5oYSgxOCk7Xy5hYS5wbD1fLmhhKDEyKTt2YXIgdHFhPV8uVGxhKF8uU0EpO3ZhciB1cWE9WzAsXy5aLF8uVSwtMSxfLkNyLF8uWiwtMSxfLlIsXy5aLC0xXTt2YXIgdnFhPVswLHVxYSwtMSwxMDEsXy5SLDEsWzAsXy5VLC00LF8uYXosWzAsXy52ciwtMV0sXy5SLF8uWixfLlUsXy5aLF8uUixfLlosXy5oeixfLlosXy5EeixfLmF6LF8uVSxfLlIsLTEsWzAsXy5VLF8udnIsXy5aLF8uVSxfLnZyLF8uWixfLlIsLTEsXy5VXSxfLlUsLTEsXy5SLF8uZHosXy5aLC0xLF8uUixbMCxfLlUsXy5aLF8uUCwtMSxfLnZyLF8uVSxfLlAsXy5VXSxfLlIsXy5heixfLlUsXy52cixbMCxbMCxfLlosXy5heiwtM10sMSxfLlosLTNdLF8uYXosLTMsXy5VLF8udXIsXy5aLC0yLF8uYXosXy5aXSxfLkJyLDEsXy5SLDEsXy5VLF8udnJdO18ud3FhPV8uYmooY2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0U3RhdHVzKCl7cmV0dXJuIF8uUGcodGhpcyw1LC0xKX1nZXRBdHRyaWJ1dGlvbigpe3JldHVybiBfLkgodGhpcywxKX1zZXRBdHRyaWJ1dGlvbihhKXtyZXR1cm4gXy5paCh0aGlzLDEsYSl9fSk7Xy54cWE9bmV3IF8uUXIoIi9nb29nbGUuaW50ZXJuYWwubWFwcy5tYXBzanMudjEuTWFwc0pzSW50ZXJuYWxTZXJ2aWNlL0dldFZpZXdwb3J0SW5mbyIsXy5TQSxhPT5hLmpqKCksXy53cWEpO18uSHk9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VXJsKCl7cmV0dXJuIF8uSCh0aGlzLDEpfXNldFVybChhKXtyZXR1cm4gXy5qaCh0aGlzLDEsYSl9fTt2YXIgeG1hPW5ldyBfLlFyKCIvZ29vZ2xlLmludGVybmFsLm1hcHMubWFwc2pzLnYxLk1hcHNKc0ludGVybmFsU2VydmljZS9Jbml0TWFwc0p3dCIsXy5IeSxhPT5hLmpqKCksXy5iaihjbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19KSk7Xy55cWE9bmV3IF8uUXIoIi9nb29nbGUuaW50ZXJuYWwubWFwcy5tYXBzanMudjEuTWFwc0pzSW50ZXJuYWxTZXJ2aWNlL1NpbmdsZUltYWdlU2VhcmNoIixfLmxBLGE9PmEuamooKSxfLmhwYSk7d21hLnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMucWgucWgodGhpcy5yaCsiLyRycGMvZ29vZ2xlLmludGVybmFsLm1hcHMubWFwc2pzLnYxLk1hcHNKc0ludGVybmFsU2VydmljZS9HZXRNZXRhZGF0YSIsYSxifHx7fSxxcWEsYyl9O1h3KE5vZGUpO1h3KGdsb2JhbFRoaXMuRWxlbWVudCk7Xy56cWE9WHcoZ2xvYmFsVGhpcy5IVE1MRWxlbWVudCk7WHcoZ2xvYmFsVGhpcy5TVkdFbGVtZW50KTtfLlRBPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFVybCgpe3JldHVybiBfLkgodGhpcywxKX1zZXRVcmwoYSl7cmV0dXJuIF8uaWgodGhpcywxLGEpfX07Xy5UQS5wcm90b3R5cGUuS209Xy5oYSgzOCk7Xy5BcWE9WzAsXy5aLF8uQ3IsXy5aLF8uQ3IsXy5veixbMCwxLF8udnIsXy5VLC0xXSxfLlUsOTIsRW9hLFswLF8uZ3osXy5ZLFswLF8uVSxfLkFyXV0sMSxbMCxfLlVdXTt2YXIgQnFhPV8uJGkoXy5UQSxbMCxfLlUsLTIsMyxfLlUsMSxfLlUsXy5aLF8uUiw4OCxfLlUsMSxfLlUsXy5HcixfLlUsXy5BcWFdKTt2YXIgQ3FhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFN0YXR1cygpe3JldHVybiBfLlBnKHRoaXMsMSwtMSl9fTt2YXIgRHFhO18uVUE9Xy5KbD9xbGEoKToiIjtfLlZBPV8uSmw/Xy5tbChfLkpsLnJoKCkpOiIiO18uV0E9Xy52bSgiZ0Z1bm5lbHdlYkFwaUJhc2VVcmwiKXx8Xy5WQTtfLlhBPV8udm0oImdTdHJlZXRWaWV3QmFzZVVybCIpfHxfLlZBO0RxYT1fLnZtKCJnQmlsbGluZ0Jhc2VVcmwiKXx8Xy5WQTtfLkVxYT1gZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Hb29nbGUrU2FucytUZXh0OjQwMCZ0ZXh0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KCJcdTIxOTBcdTIxOTJcdTIxOTFcdTIxOTMiKX1gO18uRnFhPWBmb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1NYXRlcmlhbCtTeW1ib2xzK091dGxpbmVkJnRleHQ9JHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nLmZyb21DaGFyQ29kZSg1ODgyNyw1ODgyOCkpfWA7Xy5ZQT1fLlp3KCJ0cmFuc3BhcmVudCIpO18uWkE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm1pbj1hO3RoaXMubWF4PWJ9fTtfLiRBPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQ9KCk9Pnt9KXt0aGlzLm1hcD1hO3RoaXMuUmg9Yjt0aGlzLnFoPWM7dGhpcy5yaD1kO3RoaXMuc2l6ZT10aGlzLnNjYWxlPXRoaXMuY2VudGVyPXRoaXMub3JpZ2luPXRoaXMuYm91bmRzPW51bGw7Xy51bihhLCJwcm9qZWN0aW9uX2NoYW5nZWQiLCgpPT57dmFyIGU9Xy5NcShhLmdldFByb2plY3Rpb24oKSk7ZSBpbnN0YW5jZW9mIF8ucHR8fChlPWUuZnJvbUxhdExuZ1RvUG9pbnQobmV3IF8uVG0oMCwxODApKS54LWUuZnJvbUxhdExuZ1RvUG9pbnQobmV3IF8uVG0oMCwtMTgwKSkueCx0aGlzLlJoLlFrPW5ldyBfLlZpYSh7d3Y6bmV3IF8uVWlhKGUpLFl3OnZvaWQgMH0pKX0pfWZyb21MYXRMbmdUb0NvbnRhaW5lclBpeGVsKGEpe3ZhciBiPUFtYSh0aGlzKTtyZXR1cm4gQm1hKHRoaXMsYSxiKX1mcm9tTGF0TG5nVG9EaXZQaXhlbChhKXtyZXR1cm4gQm1hKHRoaXMsYSx0aGlzLm9yaWdpbil9ZnJvbURpdlBpeGVsVG9MYXRMbmcoYSwKYj0hMSl7cmV0dXJuIENtYSh0aGlzLGEsdGhpcy5vcmlnaW4sYil9ZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoYSxiPSExKXt2YXIgYz1BbWEodGhpcyk7cmV0dXJuIENtYSh0aGlzLGEsYyxiKX1nZXRXb3JsZFdpZHRoKCl7cmV0dXJuIHRoaXMuc2NhbGU/dGhpcy5zY2FsZS5xaD8yNTYqTWF0aC5wb3coMixfLnp2KHRoaXMuc2NhbGUpKTpfLnl2KHRoaXMuc2NhbGUsbmV3IF8uV3AoMjU2LDI1NikpLlhoOjI1NipNYXRoLnBvdygyLHRoaXMubWFwLmdldFpvb20oKXx8MCl9Z2V0VmlzaWJsZVJlZ2lvbigpe2lmKCF0aGlzLnNpemV8fCF0aGlzLmJvdW5kcylyZXR1cm4gbnVsbDt2YXIgYT10aGlzLmZyb21Db250YWluZXJQaXhlbFRvTGF0TG5nKG5ldyBfLmJvKDAsMCkpLGI9dGhpcy5mcm9tQ29udGFpbmVyUGl4ZWxUb0xhdExuZyhuZXcgXy5ibygwLHRoaXMuc2l6ZS5ZaCkpLGM9dGhpcy5mcm9tQ29udGFpbmVyUGl4ZWxUb0xhdExuZyhuZXcgXy5ibyh0aGlzLnNpemUuWGgsMCkpLApkPXRoaXMuZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcobmV3IF8uYm8odGhpcy5zaXplLlhoLHRoaXMuc2l6ZS5ZaCkpLGU9Xy5xbWEodGhpcy5ib3VuZHMsdGhpcy5tYXAuZ2V0KCJwcm9qZWN0aW9uIikpO3JldHVybiBhJiZjJiZkJiZiJiZlP3tmYXJMZWZ0OmEsZmFyUmlnaHQ6YyxuZWFyTGVmdDpiLG5lYXJSaWdodDpkLGxhdExuZ0JvdW5kczplfTpudWxsfXRpKGEsYixjLGQsZSxmLGcpe3RoaXMuYm91bmRzPWE7dGhpcy5vcmlnaW49Yjt0aGlzLnNjYWxlPWM7dGhpcy5zaXplPWc7dGhpcy5jZW50ZXI9Zjt0aGlzLnFoKCl9ZGlzcG9zZSgpe3RoaXMucmgoKX19O18uYUI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuc2g9YTt0aGlzLnJoPWM7dGhpcy5xaD0hMTt0aGlzLmFpPVtdO3RoaXMuYWkucHVzaChuZXcgXy5GcChiLCJtb3VzZW91dCIsZD0+e3RoaXMuWHUoZCl9KSk7dGhpcy5haS5wdXNoKG5ldyBfLkZwKGIsIm1vdXNlb3ZlciIsZD0+e3RoaXMuWXUoZCl9KSl9WHUoYSl7Xy5xdShhKXx8KHRoaXMucWg9Xy56bCh0aGlzLnNoLGEucmVsYXRlZFRhcmdldHx8YS50b0VsZW1lbnQpKXx8dGhpcy5yaC5YdShhKX1ZdShhKXtfLnF1KGEpfHx0aGlzLnFofHwodGhpcy5xaD0hMCx0aGlzLnJoLll1KGEpKX1yZW1vdmUoKXtmb3IobGV0IGEgb2YgdGhpcy5haSlhLnJlbW92ZSgpO3RoaXMuYWkubGVuZ3RoPTB9fTtfLmJCPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMubGF0TG5nPWE7dGhpcy5kb21FdmVudD1iO3RoaXMucGl4ZWw9Yzt0aGlzLlFqPWR9c3RvcCgpe3RoaXMuZG9tRXZlbnQmJl8uaG4odGhpcy5kb21FdmVudCl9ZXF1YWxzKGEpe3JldHVybiB0aGlzLmxhdExuZz09PWEubGF0TG5nJiZ0aGlzLnBpeGVsPT09YS5waXhlbCYmdGhpcy5Raj09PWEuUWomJnRoaXMuZG9tRXZlbnQ9PT1hLmRvbUV2ZW50fX07dmFyIERtYT0hMDt0cnl7bmV3IE1vdXNlRXZlbnQoImNsaWNrIil9Y2F0Y2goYSl7RG1hPSExfTtfLmp4PWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMuY29vcmRzPWI7dGhpcy5idXR0b249Yzt0aGlzLnFoPWE7dGhpcy5yaD1kfXN0b3AoKXtfLmhuKHRoaXMucWgpfX07dmFyIEltYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLkNqPWE7dGhpcy5xaD1bXTt0aGlzLnRoPSExO3RoaXMuc2g9MDt0aGlzLnJoPW5ldyBjQih0aGlzKX1yZXNldChhKXt0aGlzLnJoLktuKGEpO3RoaXMucmg9bmV3IGNCKHRoaXMpfXJlbW92ZSgpe2ZvcihsZXQgYSBvZiB0aGlzLnFoKWEucmVtb3ZlKCk7dGhpcy5xaC5sZW5ndGg9MH1HdChhKXtmb3IobGV0IGIgb2YgdGhpcy5xaCliLkd0KGEpO3RoaXMudGg9YX1XbChhKXshdGhpcy5Dai5XbHx8YXgoYSl8fGEucWguX19nbV9pbnRlcm5hbF9fbm9Eb3dufHx0aGlzLkNqLldsKGEpO2d4KHRoaXMsdGhpcy5yaC5XbChhKSl9cnQoYSl7IXRoaXMuQ2oucnR8fGF4KGEpfHxhLnFoLl9fZ21faW50ZXJuYWxfX25vTW92ZXx8dGhpcy5Dai5ydChhKX1tbihhKXshdGhpcy5Dai5tbnx8YXgoYSl8fGEucWguX19nbV9pbnRlcm5hbF9fbm9Nb3ZlfHx0aGlzLkNqLm1uKGEpO2d4KHRoaXMsdGhpcy5yaC5tbihhKSl9dW0oYSl7IXRoaXMuQ2oudW18fApheChhKXx8YS5xaC5fX2dtX2ludGVybmFsX19ub1VwfHx0aGlzLkNqLnVtKGEpO2d4KHRoaXMsdGhpcy5yaC51bShhKSl9TGwoYSl7dmFyIGI9YXgoYSl8fF8uZ3coYS5xaCk7dGhpcy5Dai5MbCYmIWImJnRoaXMuQ2ouTGwoe2V2ZW50OmEsY29vcmRzOmEuY29vcmRzLFdyOiExfSl9cHcoYSl7IXRoaXMuQ2oucHd8fGF4KGEpfHxhLnFoLl9fZ21faW50ZXJuYWxfX25vQ29udGV4dE1lbnV8fHRoaXMuQ2oucHcoYSl9YWRkTGlzdGVuZXIoYSl7dGhpcy5xaC5wdXNoKGEpfUZuKCl7dmFyIGE9dGhpcy5xaC5tYXAoYj0+Yi5GbigpKTtyZXR1cm5bXS5jb25jYXQoLi4uYSl9fSxkQj0oYSxiLGMpPT57dmFyIGQ9TWF0aC5hYnMoYS5jbGllbnRYLWIuY2xpZW50WCk7YT1NYXRoLmFicyhhLmNsaWVudFktYi5jbGllbnRZKTtyZXR1cm4gZCpkK2EqYT49YypjfSxjQj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnFoPWE7dGhpcy5qcT10aGlzLlF3PXZvaWQgMDtmb3IobGV0IGIgb2YgYS5xaCliLnJlc2V0KCl9V2woYSl7cmV0dXJuIGF4KGEpPwpuZXcgaXgodGhpcy5xaCk6bmV3IEdxYSh0aGlzLnFoLCExLGEuYnV0dG9uKX1tbigpe311bSgpe31Lbigpe319LEdxYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5xaD1hO3RoaXMuc2g9Yjt0aGlzLnRoPWM7dGhpcy5yaD1hLkZuKClbMF07dGhpcy5Rdz01MDB9V2woYSl7cmV0dXJuIEZtYSh0aGlzLGEpfW1uKGEpe3JldHVybiBGbWEodGhpcyxhKX11bShhKXtpZihhLmJ1dHRvbj09PTIpcmV0dXJuIG5ldyBjQih0aGlzLnFoKTt2YXIgYj1heChhKXx8Xy5ndyhhLnFoKTt0aGlzLnFoLkNqLkxsJiYhYiYmdGhpcy5xaC5Dai5MbCh7ZXZlbnQ6YSxjb29yZHM6dGhpcy5yaCxXcjp0aGlzLnNofSk7dGhpcy5xaC5Dai56RiYmYS5yaCYmYS5yaCgpO3JldHVybiB0aGlzLnNofHxiP25ldyBjQih0aGlzLnFoKTpuZXcgSHFhKHRoaXMucWgsdGhpcy5yaCx0aGlzLnRoKX1Lbigpe31qcSgpe2lmKHRoaXMucWguQ2ouTk8mJnRoaXMudGghPT0zJiZ0aGlzLnFoLkNqLk5PKHRoaXMucmgpKXJldHVybiBuZXcgaXgodGhpcy5xaCl9fSwKaXg9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hO3RoaXMuanE9dGhpcy5Rdz12b2lkIDB9V2woKXt9bW4oKXt9dW0oKXtpZih0aGlzLnFoLkZuKCkubGVuZ3RoPDEpcmV0dXJuIG5ldyBjQih0aGlzLnFoKX1Lbigpe319LEhxYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5xaD1hO3RoaXMuc2g9Yjt0aGlzLnJoPWM7dGhpcy5Rdz0zMDA7Zm9yKGxldCBkIG9mIGEucWgpZC5yZXNldCgpfVdsKGEpe3ZhciBiPXRoaXMucWguRm4oKTtiPSFheChhKSYmdGhpcy5yaD09PWEuYnV0dG9uJiYhZEIodGhpcy5zaCxiWzBdLDUwKTshYiYmdGhpcy5xaC5Dai5BRSYmdGhpcy5xaC5Dai5BRSh0aGlzLnNoLHRoaXMucmgpO3JldHVybiBheChhKT9uZXcgaXgodGhpcy5xaCk6bmV3IEdxYSh0aGlzLnFoLGIsYS5idXR0b24pfW1uKCl7fXVtKCl7fWpxKCl7dGhpcy5xaC5Dai5BRSYmdGhpcy5xaC5Dai5BRSh0aGlzLnNoLHRoaXMucmgpO3JldHVybiBuZXcgY0IodGhpcy5xaCl9S24oKXt9fSwKRW1hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLnJoPWE7dGhpcy5xaD1iO3RoaXMuc2g9Yzt0aGlzLmpxPXRoaXMuUXc9dm9pZCAwfVdsKGEpe2Euc3RvcCgpO3ZhciBiPWh4KHRoaXMucmguRm4oKSk7dGhpcy5xaC5rbihiLGEpO3RoaXMuc2g9Yi5Fan1tbihhKXthLnN0b3AoKTt2YXIgYj1oeCh0aGlzLnJoLkZuKCkpO3RoaXMucWguam4oYixhKTt0aGlzLnNoPWIuRWp9dW0oYSl7dmFyIGI9aHgodGhpcy5yaC5GbigpKTtpZihiLlBvPDEpcmV0dXJuIHRoaXMucWguSm4oYS5jb29yZHMsYSksbmV3IGNCKHRoaXMucmgpO3RoaXMucWgua24oYixhKTt0aGlzLnNoPWIuRWp9S24oYSl7dGhpcy5xaC5Kbih0aGlzLnNoLGEpfX07dmFyIElxYTtfLnB4PSJvbnRvdWNoc3RhcnQiaW4gXy5VYT8yOl8uVWEuUG9pbnRlckV2ZW50PzA6Xy5VYS5NU1BvaW50ZXJFdmVudD8xOjI7SXFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD17fX1hZGQoYSl7dGhpcy5xaFthLnBvaW50ZXJJZF09YX1kZWxldGUoYSl7ZGVsZXRlIHRoaXMucWhbYS5wb2ludGVySWRdfWNsZWFyKCl7dmFyIGE9dGhpcy5xaDtmb3IobGV0IGIgaW4gYSlkZWxldGUgYVtiXX19O3ZhciBKcWE9e3VBOiJwb2ludGVyZG93biIsbW92ZToicG9pbnRlcm1vdmUiLGtLOlsicG9pbnRlcnVwIiwicG9pbnRlcmNhbmNlbCJdfSxLcWE9e3VBOiJNU1BvaW50ZXJEb3duIixtb3ZlOiJNU1BvaW50ZXJNb3ZlIixrSzpbIk1TUG9pbnRlclVwIiwiTVNQb2ludGVyQ2FuY2VsIl19LG14PS0xRTQsS21hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjPWEpe3RoaXMueGg9Yjt0aGlzLnNoPWM7dGhpcy5zaC5zdHlsZS5tc1RvdWNoQWN0aW9uPXRoaXMuc2guc3R5bGUudG91Y2hBY3Rpb249Im5vbmUiO3RoaXMucWg9bnVsbDt0aGlzLnloPW5ldyBfLkZwKGEsXy5weD09MT9LcWEudUE6SnFhLnVBLGQ9PntseChkKSYmKG14PURhdGUubm93KCksdGhpcy5xaHx8Xy5xdShkKXx8KGt4KHRoaXMpLHRoaXMucWg9bmV3IExxYSh0aGlzLHRoaXMueGgsZCxkLnRhcmdldD8ub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpLHRoaXMueGguV2wobmV3IF8uangoZCxkLDEpKSkpfSx7QW46ITF9KTt0aGlzLnRoPQpudWxsO3RoaXMuemg9ITE7dGhpcy5yaD0tMX1yZXNldChhLGI9LTEpe3RoaXMucWgmJih0aGlzLnFoLnJlbW92ZSgpLHRoaXMucWg9bnVsbCk7dGhpcy5yaCE9LTEmJihfLlVhLmNsZWFyVGltZW91dCh0aGlzLnJoKSx0aGlzLnJoPS0xKTtiIT0tMSYmKHRoaXMucmg9Yix0aGlzLnRoPWF8fHRoaXMudGgpfXJlbW92ZSgpe3RoaXMucmVzZXQoKTt0aGlzLnloLnJlbW92ZSgpO3RoaXMuc2guc3R5bGUubXNUb3VjaEFjdGlvbj10aGlzLnNoLnN0eWxlLnRvdWNoQWN0aW9uPSIifUd0KGEpe3RoaXMuc2guc3R5bGUubXNUb3VjaEFjdGlvbj1hP3RoaXMuc2guc3R5bGUudG91Y2hBY3Rpb249InBhbi14IHBhbi15Ijp0aGlzLnNoLnN0eWxlLnRvdWNoQWN0aW9uPSJub25lIjt0aGlzLnpoPWF9Rm4oKXtyZXR1cm4gdGhpcy5xaD90aGlzLnFoLkZuKCk6W119d2goKXtyZXR1cm4gbXh9fSxMcWE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy50aD1hO3RoaXMucmg9YjthPV8ucHg9PTE/CktxYTpKcWE7dGhpcy53aD1bbmV3IF8uRnAoZCxhLnVBLGU9PntseChlKSYmKG14PURhdGUubm93KCksdGhpcy5xaC5hZGQoZSksdGhpcy5zaD1udWxsLHRoaXMucmguV2wobmV3IF8uangoZSxlLDEpKSl9LHtBbjohMH0pLG5ldyBfLkZwKGQsYS5tb3ZlLGU9PnthOntpZihseChlKSl7bXg9RGF0ZS5ub3coKTt0aGlzLnFoLmFkZChlKTtpZih0aGlzLnNoKXtpZihfLmlqKHRoaXMucWgucWgpLmxlbmd0aD09MSYmIWRCKGUsdGhpcy5zaCwxNSkpe2U9dm9pZCAwO2JyZWFrIGF9dGhpcy5zaD1udWxsfXRoaXMucmgubW4obmV3IF8uangoZSxlLDEpKX1lPXZvaWQgMH1yZXR1cm4gZX0se0FuOiEwfSksLi4uYS5rSy5tYXAoZT0+bmV3IF8uRnAoZCxlLGY9PkdtYSh0aGlzLGYpLHtBbjohMH0pKV07dGhpcy5xaD1uZXcgSXFhO3RoaXMucWguYWRkKGMpO3RoaXMuc2g9Y31Gbigpe3JldHVybiBfLmlqKHRoaXMucWgucWgpfXJlbW92ZSgpe2ZvcihsZXQgYSBvZiB0aGlzLndoKWEucmVtb3ZlKCl9fTt2YXIgbng9LTFFNCxKbWE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnJoPWI7dGhpcy5xaD1udWxsO3RoaXMuc2g9bmV3IF8uRnAoYSwidG91Y2hzdGFydCIsYz0+e254PURhdGUubm93KCk7aWYoIXRoaXMucWgmJiFfLnF1KGMpKXt2YXIgZD0hdGhpcy5yaC50aHx8Yy50b3VjaGVzLmxlbmd0aD4xO2QmJl8uZm4oYyk7dmFyIGU9Yy50YXJnZXQ/Lm93bmVyRG9jdW1lbnR8fGRvY3VtZW50O3RoaXMucWg9bmV3IE1xYSh0aGlzLHRoaXMucmgsQXJyYXkuZnJvbShjLnRvdWNoZXMpLGQsZSk7dGhpcy5yaC5XbChuZXcgXy5qeChjLGMuY2hhbmdlZFRvdWNoZXNbMF0sMSkpfX0se0FuOiExLHBhc3NpdmU6ITF9KX1yZXNldCgpe3RoaXMucWgmJih0aGlzLnFoLnJlbW92ZSgpLHRoaXMucWg9bnVsbCl9cmVtb3ZlKCl7dGhpcy5yZXNldCgpO3RoaXMuc2gucmVtb3ZlKCl9Rm4oKXtyZXR1cm4gdGhpcy5xaD90aGlzLnFoLkZuKCk6W119R3QoKXt9d2goKXtyZXR1cm4gbnh9fSxNcWE9Y2xhc3N7Y29uc3RydWN0b3IoYSwKYixjLGQsZSl7dGhpcy54aD1hO3RoaXMudGg9Yjt0aGlzLndoPVtuZXcgXy5GcChlLCJ0b3VjaHN0YXJ0IixmPT57bng9RGF0ZS5ub3coKTt0aGlzLnNoPSEwO18ucXUoZil8fF8uZm4oZik7dGhpcy5xaD1BcnJheS5mcm9tKGYudG91Y2hlcyk7dGhpcy5yaD1udWxsO3RoaXMudGguV2wobmV3IF8uangoZixmLmNoYW5nZWRUb3VjaGVzWzBdLDEpKX0se0FuOiEwLHBhc3NpdmU6ITF9KSxuZXcgXy5GcChlLCJ0b3VjaG1vdmUiLGY9PnthOntueD1EYXRlLm5vdygpO3RoaXMucWg9QXJyYXkuZnJvbShmLnRvdWNoZXMpOyFfLnF1KGYpJiZ0aGlzLnNoJiZfLmZuKGYpO2lmKHRoaXMucmgpe2lmKHRoaXMucWgubGVuZ3RoPT09MSYmIWRCKHRoaXMucWhbMF0sdGhpcy5yaCwxNSkpe2Y9dm9pZCAwO2JyZWFrIGF9dGhpcy5yaD1udWxsfXRoaXMudGgubW4obmV3IF8uangoZixmLmNoYW5nZWRUb3VjaGVzWzBdLDEpKTtmPXZvaWQgMH1yZXR1cm4gZn0se0FuOiEwLHBhc3NpdmU6ITF9KSxuZXcgXy5GcChlLAoidG91Y2hlbmQiLGY9PkhtYSh0aGlzLGYpLHtBbjohMCxwYXNzaXZlOiExfSldO3RoaXMucWg9Yzt0aGlzLnJoPWNbMF18fG51bGw7dGhpcy5zaD1kfUZuKCl7cmV0dXJuIHRoaXMucWh9cmVtb3ZlKCl7Zm9yKGxldCBhIG9mIHRoaXMud2gpYS5yZW1vdmUoKX19O3ZhciBMbWE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMucmg9Yjt0aGlzLnNoPWM7dGhpcy5xaD1udWxsO3RoaXMuemg9YTt0aGlzLkNoPW5ldyBfLkZwKGEsIm1vdXNlZG93biIsZD0+e3RoaXMudGg9ITE7Xy5xdShkKXx8dGhpcy5xaHx8RGF0ZS5ub3coKTx0aGlzLnNoLndoKCkrMjAwfHwodGhpcy5zaCBpbnN0YW5jZW9mIEttYSYma3godGhpcy5zaCksdGhpcy5xaD1uZXcgTnFhKHRoaXMsdGhpcy5yaCxkKSx0aGlzLnJoLldsKG5ldyBfLmp4KGQsZCxveChkKSkpKX0se0FuOiExfSk7dGhpcy54aD1uZXcgXy5GcChhLCJtb3VzZW1vdmUiLGQ9PntfLnF1KGQpfHx0aGlzLnFofHx0aGlzLnJoLnJ0KG5ldyBfLmp4KGQsZCxveChkKSkpfSx7QW46ITF9KTt0aGlzLndoPTA7dGhpcy50aD0hMTt0aGlzLnloPW5ldyBfLkZwKGEsImNsaWNrIixkPT57aWYoIV8ucXUoZCkmJiF0aGlzLnRoKXt2YXIgZT1EYXRlLm5vdygpO2U8dGhpcy5zaC53aCgpKzIwMHx8KGUtdGhpcy53aDw9MzAwPwp0aGlzLndoPTA6KHRoaXMud2g9ZSx0aGlzLnJoLkxsKG5ldyBfLmp4KGQsZCxveChkKSkpKSl9fSx7QW46ITF9KTt0aGlzLkJoPW5ldyBfLkZwKGEsImRibGNsaWNrIixkPT57aWYoIShfLnF1KGQpfHx0aGlzLnRofHxEYXRlLm5vdygpPHRoaXMuc2gud2goKSsyMDApKXt2YXIgZT10aGlzLnJoO2Q9bmV3IF8uangoZCxkLG94KGQpKTtsZXQgZj1heChkKXx8Xy5ndyhkLnFoKTtlLkNqLkxsJiYhZiYmZS5Dai5MbCh7ZXZlbnQ6ZCxjb29yZHM6ZC5jb29yZHMsV3I6ITB9KX19LHtBbjohMX0pO3RoaXMuQWg9bmV3IF8uRnAoYSwiY29udGV4dG1lbnUiLGQ9PntkLnByZXZlbnREZWZhdWx0KCk7Xy5xdShkKXx8dGhpcy5yaC5wdyhuZXcgXy5qeChkLGQsb3goZCkpKX0se0FuOiExfSl9cmVzZXQoKXt0aGlzLnFoJiYodGhpcy5xaC5yZW1vdmUoKSx0aGlzLnFoPW51bGwpfXJlbW92ZSgpe3RoaXMucmVzZXQoKTt0aGlzLkNoLnJlbW92ZSgpO3RoaXMueGgucmVtb3ZlKCk7dGhpcy55aC5yZW1vdmUoKTsKdGhpcy5CaC5yZW1vdmUoKTt0aGlzLkFoLnJlbW92ZSgpfUZuKCl7cmV0dXJuIHRoaXMucWg/W3RoaXMucWgucmhdOltdfUd0KCl7fWdldFRhcmdldCgpe3JldHVybiB0aGlzLnpofX0sTnFhPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLnRoPWE7dGhpcy5zaD1iO2E9YS5nZXRUYXJnZXQoKS5vd25lckRvY3VtZW50fHxkb2N1bWVudDt0aGlzLndoPW5ldyBfLkZwKGEsIm1vdXNlbW92ZSIsZD0+e2E6e3RoaXMucmg9ZDtpZih0aGlzLnFoKXtpZighZEIoZCx0aGlzLnFoLDIpKXtkPXZvaWQgMDticmVhayBhfXRoaXMucWg9bnVsbH10aGlzLnNoLm1uKG5ldyBfLmp4KGQsZCxveChkKSkpO3RoaXMudGgudGg9ITA7ZD12b2lkIDB9cmV0dXJuIGR9LHtBbjohMH0pO3RoaXMueWg9bmV3IF8uRnAoYSwibW91c2V1cCIsZD0+e3RoaXMudGgucmVzZXQoKTt0aGlzLnNoLnVtKG5ldyBfLmp4KGQsZCxveChkKSkpfSx7QW46ITB9KTt0aGlzLnhoPW5ldyBfLkZwKGEsImRyYWdzdGFydCIsCl8uZm4pO3RoaXMuemg9bmV3IF8uRnAoYSwic2VsZWN0c3RhcnQiLF8uZm4pO3RoaXMucWg9dGhpcy5yaD1jfXJlbW92ZSgpe3RoaXMud2gucmVtb3ZlKCk7dGhpcy55aC5yZW1vdmUoKTt0aGlzLnhoLnJlbW92ZSgpO3RoaXMuemgucmVtb3ZlKCl9fTt2YXIgT3FhPV8uJGkoXy5yQSxMcGEpLFBxYT1fLlhpKDQ5NjUwMzA4MCxfLkZ6LF8uckEpO18uR3pbNDk2NTAzMDgwXT1McGE7dmFyIFFxYT1fLiRpKF8uc0EsTXBhKSxScWE9Xy5YaSg0MjE3MDc1MjAsXy5GeixfLnNBKTtfLkd6WzQyMTcwNzUyMF09TXBhO3ZhciBYbWE9e2NSOjAsYVI6MSxYUToyLFlROjMsV1E6NSxaUTo4fTt2YXIgTXg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VHlwZSgpe3JldHVybiBfLlBnKHRoaXMsMSl9fTtfLmVCPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIGZCPVswLF8uWixbMCxfLlIsXy5QXSxbMCxfLlAsLTMsXy5SLF8uWl0sXy5SLF8uV3ksXy5SLFswLF8uUixfLlAsLTFdLFswLF8uQ3JdLDEsXy5SLFswLF8uUCwtMV1dO18uSXg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSw1MDApfVFxKCl7cmV0dXJuIF8uUGcodGhpcyw1KX19O18uTng9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSw1MDApfWdldFRpbGUoKXtyZXR1cm4gXy5BZyh0aGlzLF8uRXgsMSl9Y2xlYXJSZWN0KCl7cmV0dXJuIF8uUWYodGhpcywzKX19O18uZ0I9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSwzMyl9TmooYSxiKXtfLkh2KHRoaXMsMixfLnR4LGEsYil9eG0oYSl7Xy5Jdih0aGlzLDIsXy50eCxhKX19O18uZ0IucHJvdG90eXBlLlVzPV8uaGEoNTIpO18uU3FhPXt9O18uVHFhPVstMSxfLkd6XTt2YXIgVXFhPVswLF8uQnIsLTFdO18uaEI9Wy0zMyxfLlNxYSxfLlksWy01MDAsXy5HQSwxLFswLFVxYSwtMSxfLlBdLFswLFVxYSxfLkJyLF8uU3osXy5ZLF8uU3osXy5TeiwtMSxfLkJyLC0xXSwxLFswLF8uUCwtMV0sMSxbMCxfLkdBLF8uUCxpel0sWzAsXy4keV0sMTUsXy5VLF8uUiw5NzQsWzAsXy51ciwtNV1dLF8uWSxHcGEsWy01MDAsMSxfLlUsLTEsXy5SLF8uWiw2LF8uWSxIcGEsMixfLlUsXy5SLC0xLDEsXy5SLC0yLDk3OCxfLlBdLF8uWixmQixbLTUwMCxfLlosXy5QLDEsXy5SLC0zLF8uWixfLlIsLTEsXy5aLF8uUiwtMyxfLlosXy5SLC0xLFswLF8uWiwtMSwxLGZCXSxbMCxfLlosLTEsZkJdLF8uUixfLmR6LDEsXy5SLC0xLFswLF8uUiwtNyxfLlAsXy5SLC0xXSwxLF8uWixfLlIsWzAsXy5XeV0sMSxfLlIsXy5aLF8uUiwxLF8uUiwxLF8uWixfLlIsLTEsXy5DcixfLmR6LF8uUixfLlosXy5SLC0zLDEsXy5aLC0xLF8uUCwxLF8uWixfLlIsLTMsWzAsXy5SXSxfLlIsLTEsXy5keiwtMSxfLlIsLTEsMSxbMCwKXy5aLF8uUiwtMV0sXy5SLFswLF8uUl0sMSxfLlIsWzAsXy5SXSxfLlIsLTIsMSxfLlIsLTIsXy5aLF8uUiwtMTMsOTA1LF8uUiwxLF8uUiwxLF8uUCwxLF8uUixfLmR6LF8uUiw0LF8uUiwtMSwxLF8uUiwtNCwxLF8uUiwtN10sXy5VLDEsWzAsXy5aLF8udXIsLTEsXy5QLF8uVSwtMl0sMSxbMCxfLlosXy5SXSxbMCxfLlosXy5SLF8uV3ksXy5SLC0yXSxfLlAsXy5SLC0yLF8ubnosWzAsXy5SXSxfLlIsWy01MDAsMSxfLlosXy5SLDIsXy5SLF8uWixfLlIsLTEsXy5QLC0yLF8uVSwxLF8uUixfLnVyLF8uWixbMCxfLlAsXy5SXSxfLlIsLTMsOTc3LF8uUl0sMSxbMCxfLlIsXy5aLF8uUCwtMV0sXy55cixbMCxfLlIsLTVdLF8uUCxEb2EsXy5UcWEsXy5QLF8uUixbMCxfLlJdLDEsXy5SXTtfLmlCPV8uJGkoXy5nQixfLmhCKTt2YXIgVnFhO1ZxYT1fLiRpKF8udEEsb3FhKTtfLldxYT1fLlhpKDM5OTk5NjIzNyxfLkZ6LF8udEEpO18uR3pbMzk5OTk2MjM3XT1vcWE7Xy5qQj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnJlcXVlc3Q9bmV3IF8uZ0I7YSYmXy5Ldih0aGlzLnJlcXVlc3QsYSk7KGE9Xy5xZWEoKSkmJl8uS3godGhpcyxhKTtfLkxwWzM1XXx8Xy5LeCh0aGlzLFs0Njk5MTIxMiw0NzA1NDc1MF0pfU5qKGEsYixjPSEwKXthLnBhaW50RXhwZXJpbWVudElkcyYmXy5LeCh0aGlzLGEucGFpbnRFeHBlcmltZW50SWRzKTthLm1hcEZlYXR1cmVzJiZZbWEodGhpcyxhLm1hcEZlYXR1cmVzKTtpZihhLmNsaWNrYWJsZUNpdGllcyYmXy5QZyh0aGlzLnJlcXVlc3QsNCk9PT0zKXt2YXIgZD1fLndnKHRoaXMucmVxdWVzdCxNeCwxMik7Xy4kZyhkLDIsITApfWEudHJhdmVsTWFwUmVxdWVzdCYmXy5hdihfLndnKHRoaXMucmVxdWVzdCxfLkZ6LDI3KSxfLldxYSxhLnRyYXZlbE1hcFJlcXVlc3QpO2Euc2VhcmNoUGlwZU1ldGFkYXRhJiZfLmF2KF8ud2codGhpcy5yZXF1ZXN0LF8uRnosMjcpLF8uV29hLGEuc2VhcmNoUGlwZU1ldGFkYXRhKTthLmdtbUNvbnRleHRQaXBlTWV0YWRhdGEmJgpfLmF2KF8ud2codGhpcy5yZXF1ZXN0LF8uRnosMjcpLGFwYSxhLmdtbUNvbnRleHRQaXBlTWV0YWRhdGEpO2EuYWlyUXVhbGl0eVBpcGVNZXRhZGF0YSYmXy5hdihfLndnKHRoaXMucmVxdWVzdCxfLkZ6LDI3KSxScWEsYS5haXJRdWFsaXR5UGlwZU1ldGFkYXRhKTthLmRpcmVjdGlvbnNQaXBlUGFyYW1ldGVycyYmXy5hdihfLndnKHRoaXMucmVxdWVzdCxfLkZ6LDI3KSxQcWEsYS5kaXJlY3Rpb25zUGlwZVBhcmFtZXRlcnMpO2EuY2xpZW50U2lnbmFsUGlwZU1ldGFkYXRhJiZfLmF2KF8ud2codGhpcy5yZXF1ZXN0LF8uRnosMjcpLF8uTW9hLGEuY2xpZW50U2lnbmFsUGlwZU1ldGFkYXRhKTthLmxheWVySWQmJihfLlJtYShhLCEwLF8uR3godGhpcy5yZXF1ZXN0KSksYyYmKGE9KGI9PT0icm9hZG1hcCImJmEucm9hZG1hcFN0eWxlcj9hLnJvYWRtYXBTdHlsZXI6YS5zdHlsZXIpfHxudWxsKSYmXy5QeCh0aGlzLGEpKX19O18uJG1hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLnNoPWE7dGhpcy50aD1iO3RoaXMucWg9Yzt0aGlzLnJoPXt9O2ZvcihhPTA7YTxfLllmKF8uSmwsXy5TeSw0Mik7KythKWI9Xy53dShfLkpsLDQyLF8uU3ksYSksdGhpcy5yaFtfLkgoYiwxKV09Yn19O3ZhciBYcWE7Cl8ua0I9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZD17fSl7dGhpcy54aD1kbmE7dGhpcy5yaj1hO3RoaXMuc2l6ZT1iO3RoaXMuZGl2PWM7dGhpcy53aD0hMTt0aGlzLnJoPW51bGw7dGhpcy51cmw9IiI7dGhpcy5vcGFjaXR5PTE7dGhpcy5zaD10aGlzLnRoPXRoaXMucWg9bnVsbDtfLnV3KGMsXy5wbyk7dGhpcy5lcnJvck1lc3NhZ2U9ZC5lcnJvck1lc3NhZ2V8fG51bGw7dGhpcy56az1kLnprO3RoaXMuWHk9ZC5YeX1uaygpe3JldHVybiB0aGlzLmRpdn1Nbygpe3JldHVybiF0aGlzLnFofXJlbGVhc2UoKXt0aGlzLnFoJiYodGhpcy5xaC5kaXNwb3NlKCksdGhpcy5xaD1udWxsKTt0aGlzLnNoJiYodGhpcy5zaC5yZW1vdmUoKSx0aGlzLnNoPW51bGwpO2JuYSh0aGlzKTt0aGlzLnRoJiZ0aGlzLnRoLmRpc3Bvc2UoKTt0aGlzLnprJiZ0aGlzLnprKCl9c2V0T3BhY2l0eShhKXt0aGlzLm9wYWNpdHk9YTt0aGlzLnRoJiZ0aGlzLnRoLnNldE9wYWNpdHkoYSk7dGhpcy5xaCYmdGhpcy5xaC5zZXRPcGFjaXR5KGEpfWFzeW5jIHNldFVybChhKXtpZihhIT09CnRoaXMudXJsfHx0aGlzLndoKXRoaXMudXJsPWEsdGhpcy5xaCYmdGhpcy5xaC5kaXNwb3NlKCksYT8odGhpcy5xaD1uZXcgWHFhKHRoaXMuZGl2LHRoaXMueGgoKSx0aGlzLnNpemUsYSksdGhpcy5xaC5zZXRPcGFjaXR5KHRoaXMub3BhY2l0eSksYT1hd2FpdCB0aGlzLnFoLnNoLHRoaXMucWgmJmEhPT12b2lkIDAmJih0aGlzLnRoJiZ0aGlzLnRoLmRpc3Bvc2UoKSx0aGlzLnRoPXRoaXMucWgsdGhpcy5xaD1udWxsLCh0aGlzLndoPWEpP2NuYSh0aGlzKTpibmEodGhpcykpKToodGhpcy5xaD1udWxsLHRoaXMud2g9ITEpfX07ClhxYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyxkKXt0aGlzLmRpdj1hO3RoaXMucWg9Yjt0aGlzLnJoPSEwO18uUXAodGhpcy5xaCxjKTt2YXIgZT10aGlzLnFoO18uVHAoZSk7ZS5zdHlsZS5ib3JkZXI9IjAiO2Uuc3R5bGUucGFkZGluZz0iMCI7ZS5zdHlsZS5tYXJnaW49IjAiO2Uuc3R5bGUubWF4V2lkdGg9Im5vbmUiO2UuYWx0PSIiO2Uuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7dGhpcy5zaD0obmV3IFByb21pc2UoZj0+e2Uub25sb2FkPSgpPT57ZighMSl9O2Uub25lcnJvcj0oKT0+e2YoITApfTtlLnNyYz1kfSkpLnRoZW4oZj0+Znx8IWUuZGVjb2RlP2Y6ZS5kZWNvZGUoKS50aGVuKCgpPT4hMSwoKT0+ITEpKS50aGVuKGY9PntpZih0aGlzLnJoKXJldHVybiB0aGlzLnJoPSExLGUub25sb2FkPWUub25lcnJvcj1udWxsLGZ8fHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMucWgpLGZ9KTsoYT1fLlVhLl9fZ21fY2FwdHVyZVRpbGUpJiZhKGQpfXNldE9wYWNpdHkoYSl7dGhpcy5xaC5zdHlsZS5vcGFjaXR5PQphPT09MT8iIjpgJHthfWB9ZGlzcG9zZSgpe3RoaXMucmg/KHRoaXMucmg9ITEsdGhpcy5xaC5vbmxvYWQ9dGhpcy5xaC5vbmVycm9yPW51bGwsdGhpcy5xaC5zcmM9Xy5ZQSk6dGhpcy5xaC5wYXJlbnROb2RlJiZ0aGlzLmRpdi5yZW1vdmVDaGlsZCh0aGlzLnFoKX19O18ubEI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuc2l6ZT1hO3RoaXMudGlsdD1iO3RoaXMuaGVhZGluZz1jO3RoaXMucWg9TWF0aC5jb3ModGhpcy50aWx0LzE4MCpNYXRoLlBJKX1yb3RhdGUoYSxiKXt2YXIge3FoOmMscmg6ZH09Yjtzd2l0Y2goKDM2MCt0aGlzLmhlYWRpbmcqYSklMzYwKXtjYXNlIDkwOmM9Yi5yaDtkPXRoaXMuc2l6ZS5ZaC1iLnFoO2JyZWFrO2Nhc2UgMTgwOmM9dGhpcy5zaXplLlhoLWIucWg7ZD10aGlzLnNpemUuWWgtYi5yaDticmVhaztjYXNlIDI3MDpjPXRoaXMuc2l6ZS5YaC1iLnJoLGQ9Yi5xaH1yZXR1cm4gbmV3IF8uV3AoYyxkKX1lcXVhbHMoYSl7cmV0dXJuIHRoaXM9PT1hfHxhIGluc3RhbmNlb2YgXy5sQiYmdGhpcy5zaXplLlhoPT09YS5zaXplLlhoJiZ0aGlzLnNpemUuWWg9PT1hLnNpemUuWWgmJnRoaXMuaGVhZGluZz09PWEuaGVhZGluZyYmdGhpcy50aWx0PT09YS50aWx0fX07Cl8ubUI9bmV3IF8ubEIoe1hoOjI1NixZaDoyNTZ9LDAsMCk7dmFyIFlxYTsKWXFhPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQsZSxmLGcsaCxrLG09ITEpe3ZhciBwPV8uZHI7dGhpcy5xaD1hO3RoaXMuQmg9cDt0aGlzLkFoPWM7dGhpcy55aD1kO3RoaXMucmg9ZTt0aGlzLlFsPWY7dGhpcy5zaD1oO3RoaXMueGg9bnVsbDt0aGlzLndoPSExO3RoaXMuemg9Ynx8W107dGhpcy5sb2FkZWQ9bmV3IFByb21pc2UocT0+e3RoaXMubG49cX0pO3RoaXMubG9hZGVkLnRoZW4oKCk9Pnt0aGlzLndoPSEwfSk7dGhpcy5oZWFkaW5nPXR5cGVvZiBnPT09Im51bWJlciI/ZzpudWxsO3RoaXMucmgmJnRoaXMucmguU2ooKS5hZGRMaXN0ZW5lcih0aGlzLnRoLHRoaXMpO20mJmsmJihhPXRoaXMubmsoKSxfLlF4KGEsay5zaXplLlhoLGsuc2l6ZS5ZaCkpO3RoaXMudGgoKX1uaygpe3JldHVybiB0aGlzLnFoLm5rKCl9TW8oKXtyZXR1cm4gdGhpcy53aH1yZWxlYXNlKCl7dGhpcy5yaCYmdGhpcy5yaC5TaigpLnJlbW92ZUxpc3RlbmVyKHRoaXMudGgsdGhpcyk7dGhpcy5xaC5yZWxlYXNlKCl9dGgoKXt2YXIgYT10aGlzLlFsOwppZihhJiZhLlNvKXt2YXIgYj10aGlzLnloKHtraTp0aGlzLnFoLnJqLmtpLGxpOnRoaXMucWgucmoubGksdWk6dGhpcy5xaC5yai51aX0pO2lmKGIpe2lmKHRoaXMucmgpe3ZhciBjPXRoaXMucmguaEUoYik7aWYoIWN8fHRoaXMueGg9PT1jJiYhdGhpcy5xaC53aClyZXR1cm47dGhpcy54aD1jfXZhciBkPWEuc2NhbGU9PT0yfHxhLnNjYWxlPT09ND9hLnNjYWxlOjE7ZD1NYXRoLm1pbigxPDxiLnVpLGQpO3ZhciBlPXRoaXMuQWgmJmQhPT00O2Zvcih2YXIgZj1kO2Y+MTtmLz0yKWIudWktLTtmPTI1Njt2YXIgZztkIT09MSYmKGYvPWQpO2UmJihkKj0yKTtkIT09MSYmKGc9ZCk7ZD1uZXcgXy5qQihhLlNvKTtfLlVtYShkLDApO2U9Xy53ZyhkLnJlcXVlc3QsXy5lQiw1KTtfLmtoKGUsMSwzKTtfLlZtYShkLGIsZik7ZyYmKGY9Xy53ZyhkLnJlcXVlc3QsXy5lQiw1KSxfLkF1KGYsNSxnKSk7aWYoYylmb3IobGV0IGg9MCxrPV8uSHgoZC5yZXF1ZXN0KTtoPGs7aCsrKWc9Xy5HdihkLnJlcXVlc3QsCjIsXy50eCxoKSxnLmdldFR5cGUoKT09PTAmJl8uSncoZyxjKTt0eXBlb2YgdGhpcy5oZWFkaW5nPT09Im51bWJlciImJihfLmJoKGQucmVxdWVzdCwxMyx0aGlzLmhlYWRpbmcpLF8uJGcoZC5yZXF1ZXN0LDE0LCEwKSk7Yz1udWxsO3RoaXMuc2gmJnRoaXMuc2guVkQoKSYmKGM9dGhpcy5zaC5ZdigpLnhoKCkpO2I9Yz9jLmluY2x1ZGVzKCJ2ZXJzaW9uPXNkay0iKT9jOmMucmVwbGFjZSgidmVyc2lvbj0iLCJ2ZXJzaW9uPXNkay0iKTpfLmFuYSh0aGlzLnpoLGIpO2IrPWBwYj0ke18uVG1hKF8uUXYoZC5yZXF1ZXN0LCgwLF8uaUIpKCkpKX1gO2N8fChhLkNxIT1udWxsJiYoYis9YCZhdXRodXNlcj0ke2EuQ3F9YCksYj10aGlzLkJoKGIpKTt0aGlzLnFoLnNldFVybChiKS50aGVuKHRoaXMubG4pfWVsc2UgdGhpcy5xaC5zZXRVcmwoIiIpLnRoZW4odGhpcy5sbil9fX07Cl8ubkI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlLGYsZyxoLGssbT0hMSl7dGhpcy5lcnJvck1lc3NhZ2U9Yjt0aGlzLnhoPWM7dGhpcy5yaD1kO3RoaXMuc2g9ZTt0aGlzLlFsPWY7dGhpcy53aD1oO3RoaXMudGg9azt0aGlzLk94PW07dGhpcy5zaXplPW5ldyBfLmdvKDI1NiwyNTYpO3RoaXMuSW49MTt0aGlzLnFoPWF8fFtdO3RoaXMuaGVhZGluZz1nIT09dm9pZCAwP2c6bnVsbDt0aGlzLkNpPW5ldyBfLmxCKHtYaDoyNTYsWWg6MjU2fSxfLmptKGcpPzQ1OjAsZ3x8MCl9a20oYSxiKXt2YXIgYz1fLndsKCJESVYiKTthPW5ldyBfLmtCKGEsdGhpcy5zaXplLGMse2Vycm9yTWVzc2FnZTp0aGlzLmVycm9yTWVzc2FnZXx8dm9pZCAwLHprOmImJmIuemssWHk6dGhpcy53aH0pO3JldHVybiBuZXcgWXFhKGEsdGhpcy5xaCx0aGlzLnhoLHRoaXMucmgsdGhpcy5zaCx0aGlzLlFsLHRoaXMuaGVhZGluZz09PW51bGw/dm9pZCAwOnRoaXMuaGVhZGluZyx0aGlzLnRoLHRoaXMuQ2ksdGhpcy5PeCl9fTtfLm9CPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5xaD10aGlzLnJoPW51bGw7dGhpcy5zaD1bXTt0aGlzLnRoPWE7dGhpcy53aD1ifXNldFpJbmRleChhKXt0aGlzLnFoJiZ0aGlzLnFoLnNldFpJbmRleChhKX1jbGVhcigpe18uWXgodGhpcyxudWxsKTtmbmEodGhpcyl9fTtfLlpxYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnRpbGVzPWE7dGhpcy50aWxlU2l6ZT1uZXcgXy5nbygyNTYsMjU2KTt0aGlzLm1heFpvb209MjV9Z2V0VGlsZShhLGIsYyl7Yz1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpO18uUXAoYyx0aGlzLnRpbGVTaXplKTtjLnltPXtkaXY6YyxyajpuZXcgXy5ibyhhLngsYS55KSx6b29tOmIsZGF0YTpuZXcgXy54cX07Xy5EcCh0aGlzLnRpbGVzLGMueW0pO3JldHVybiBjfXJlbGVhc2VUaWxlKGEpe3RoaXMudGlsZXMucmVtb3ZlKGEueW0pO2EueW09bnVsbH19O3ZhciAkcWEsYXJhOyRxYT1uZXcgXy5nbygyNTYsMjU2KTthcmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGM9e30pe3RoaXMucmg9YTt0aGlzLnNoPSExO3RoaXMucWg9YS5nZXRUaWxlKG5ldyBfLmJvKGIua2ksYi5saSksYi51aSxkb2N1bWVudCk7dGhpcy50aD1fLndsKCJESVYiKTt0aGlzLnFoJiZ0aGlzLnRoLmFwcGVuZENoaWxkKHRoaXMucWgpO3RoaXMuems9Yy56a3x8bnVsbDt0aGlzLmxvYWRlZD1uZXcgUHJvbWlzZShkPT57YS50cmlnZ2Vyc1RpbGVMb2FkRXZlbnQmJnRoaXMucWg/Xy50bih0aGlzLnFoLCJsb2FkIixkKTpkKCl9KTt0aGlzLmxvYWRlZC50aGVuKCgpPT57dGhpcy5zaD0hMH0pfW5rKCl7cmV0dXJuIHRoaXMudGh9TW8oKXtyZXR1cm4gdGhpcy5zaH1yZWxlYXNlKCl7dGhpcy5yaC5yZWxlYXNlVGlsZSYmdGhpcy5xaCYmdGhpcy5yaC5yZWxlYXNlVGlsZSh0aGlzLnFoKTt0aGlzLnprJiZ0aGlzLnprKCl9fTsKXy5wQj1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMucmg9YTt2YXIgYz1hLnRpbGVTaXplLndpZHRoLGQ9YS50aWxlU2l6ZS5oZWlnaHQ7dGhpcy5Jbj1hIGluc3RhbmNlb2YgXy5acWE/MzoxO3RoaXMuQ2k9Ynx8KCRxYS5lcXVhbHMoYS50aWxlU2l6ZSk/Xy5tQjpuZXcgXy5sQih7WGg6YyxZaDpkfSwwLDApKX1rbShhLGIpe3JldHVybiBuZXcgYXJhKHRoaXMucmgsYSxiKX19O18uWng9ISEoXy5VYS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJl8uVWEucGVyZm9ybWFuY2UmJl8uVWEucGVyZm9ybWFuY2Uubm93KTt2YXIgZ25hPVsidHJhbnNmb3JtIiwid2Via2l0VHJhbnNmb3JtIiwiTW96VHJhbnNmb3JtIiwibXNUcmFuc2Zvcm0iXTt2YXIgY3k9bmV3IFdlYWtNYXAsaG5hPWNsYXNze2NvbnN0cnVjdG9yKHtyajphLGNvbnRhaW5lcjpiLHN2OmMsQ2k6ZH0pe3RoaXMucWg9bnVsbDt0aGlzLmhCPSExO3RoaXMuaXNBY3RpdmU9ITA7dGhpcy5yaj1hO3RoaXMuY29udGFpbmVyPWI7dGhpcy5zdj1jO3RoaXMuQ2k9ZDt0aGlzLmxvYWRlZD1jLmxvYWRlZH1Nbygpe3JldHVybiB0aGlzLnN2Lk1vKCl9c2V0WkluZGV4KGEpe3ZhciBiPWR5KHRoaXMpLmRpdi5zdHlsZTtiLnpJbmRleCE9PWEmJihiLnpJbmRleD1hKX10aShhLGIsYyxkKXt2YXIgZT10aGlzLnN2Lm5rKCk7aWYoZSl7dmFyIGY9dGhpcy5DaSxnPWYuc2l6ZSxoPXRoaXMucmoudWksaz1keSh0aGlzKTtpZighay5xaHx8YyYmIWEuZXF1YWxzKGsub3JpZ2luKSlrLnFoPV8uV3goZixhLGgpO3ZhciBtPSEhYi5xaCYmKCFrLnNpemV8fCFfLkJ3KGQsay5zaXplKSk7Yi5lcXVhbHMoay5zY2FsZSkmJmEuZXF1YWxzKGsub3JpZ2luKSYmIW18fChrLm9yaWdpbj1hLGsuc2NhbGU9CmIsay5zaXplPWQsYi5xaD8oZj1fLnV2KF8uVngoZixrLnFoKSxhKSxoPU1hdGgucG93KDIsXy56dihiKS1rLnVpKSxiPWIucWguSkgoXy56dihiKSxiLnRpbHQsYi5oZWFkaW5nLGQsZixoLGgpKTooZD1fLnh2KF8ueXYoYixfLnV2KF8uVngoZixrLnFoKSxhKSkpLGE9Xy55dihiLF8uVngoZix7a2k6MCxsaTowLHVpOmh9KSksbT1fLnl2KGIsXy5WeChmLHtraTowLGxpOjEsdWk6aH0pKSxiPV8ueXYoYixfLlZ4KGYse2tpOjEsbGk6MCx1aTpofSkpLGI9YG1hdHJpeCgkeyhiLlhoLWEuWGgpL2cuWGh9LCR7KGIuWWgtYS5ZaCkvZy5YaH0sJHsobS5YaC1hLlhoKS9nLllofSwkeyhtLlloLWEuWWgpL2cuWWh9LCR7ZC5YaH0sJHtkLllofSlgKSxrLmRpdi5zdHlsZVtfLmF5KCldPWIpO2suZGl2LnN0eWxlLndpbGxDaGFuZ2U9Yz8iIjoidHJhbnNmb3JtIjtjPWUuc3R5bGU7az1rLnFoO2MucG9zaXRpb249ImFic29sdXRlIjtjLmxlZnQ9U3RyaW5nKGcuWGgqKHRoaXMucmoua2ktay5raSkpKwoicHgiO2MudG9wPVN0cmluZyhnLlloKih0aGlzLnJqLmxpLWsubGkpKSsicHgiO2Mud2lkdGg9YCR7Zy5YaH1weGA7Yy5oZWlnaHQ9YCR7Zy5ZaH1weGB9fXNob3coYT0hMCl7cmV0dXJuIHRoaXMucWh8fCh0aGlzLnFoPW5ldyBQcm9taXNlKGI9Pnt2YXIgYyxkO18uJHgoKCk9PntpZih0aGlzLmlzQWN0aXZlKWlmKGM9dGhpcy5zdi5uaygpKWlmKGMucGFyZW50RWxlbWVudHx8am5hKGR5KHRoaXMpLGMpLGQ9Yy5zdHlsZSxkLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYSl7ZC50cmFuc2l0aW9uPSJvcGFjaXR5IDIwMG1zIGxpbmVhciI7ZC5vcGFjaXR5PSIwIjtfLiR4KCgpPT57ZC5vcGFjaXR5PSIifSk7dmFyIGU9KCk9Pnt0aGlzLmhCPSEwO2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsZSk7Xy5VYS5jbGVhclRpbWVvdXQoZik7YigpfTtjLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLGUpO3ZhciBmPV8uZngoZSw0MDApfWVsc2UgdGhpcy5oQj0hMCwKYigpO2Vsc2UgdGhpcy5oQj0hMCxiKCk7ZWxzZSBiKCl9KX0pKX1yZWxlYXNlKCl7dmFyIGE9dGhpcy5zdi5uaygpO2EmJmR5KHRoaXMpLkxuKGEpO3RoaXMuc3YucmVsZWFzZSgpO3RoaXMuaXNBY3RpdmU9ITF9fSxpbmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLmNvbnRhaW5lcj1hO3RoaXMudWk9Yjt0aGlzLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLnNpemU9dGhpcy5xaD10aGlzLm9yaWdpbj10aGlzLnNjYWxlPW51bGw7dGhpcy5kaXYuc3R5bGUucG9zaXRpb249ImFic29sdXRlIn1MbihhKXthLnBhcmVudE5vZGU9PT10aGlzLmRpdiYmKHRoaXMuZGl2LnJlbW92ZUNoaWxkKGEpLHRoaXMuZGl2Lmhhc0NoaWxkTm9kZXMoKXx8KHRoaXMucWg9bnVsbCxfLnlsKHRoaXMuZGl2KSkpfX07dmFyIHFCPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLnVpPWM7dmFyIGQ9Xy5XeChhLGIubWluLGMpO2E9Xy5XeChhLGIubWF4LGMpO3RoaXMuc2g9TWF0aC5taW4oZC5raSxhLmtpKTt0aGlzLnRoPU1hdGgubWluKGQubGksYS5saSk7dGhpcy5xaD1NYXRoLm1heChkLmtpLGEua2kpO3RoaXMucmg9TWF0aC5tYXgoZC5saSxhLmxpKX1oYXMoe2tpOmEsbGk6Yix1aTpjfSx7Y0s6ZD0wfT17fSl7cmV0dXJuIGMhPT10aGlzLnVpPyExOnRoaXMuc2gtZDw9YSYmYTw9dGhpcy5xaCtkJiZ0aGlzLnRoLWQ8PWImJmI8PXRoaXMucmgrZH19O18uckI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlLHtDQTpmPSExfT17fSl7dGhpcy5SaD1jO3RoaXMudGg9ZDt0aGlzLkJoPWU7dGhpcy5yaD1fLndsKCJESVYiKTt0aGlzLmlzQWN0aXZlPSEwO3RoaXMuc2l6ZT10aGlzLmhpbnQ9dGhpcy5zY2FsZT10aGlzLm9yaWdpbj1udWxsO3RoaXMuemg9dGhpcy5BaD10aGlzLnNoPTA7dGhpcy55aD0hMTt0aGlzLnFoPW5ldyBNYXA7dGhpcy53aD1udWxsO2EuYXBwZW5kQ2hpbGQodGhpcy5yaCk7dGhpcy5yaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMucmguc3R5bGUudG9wPXRoaXMucmguc3R5bGUubGVmdD0iMCI7dGhpcy5yaC5zdHlsZS56SW5kZXg9U3RyaW5nKGIpO3RoaXMuQ0E9ZiYmInRyYW5zaXRpb24iaW4gdGhpcy5yaC5zdHlsZTt0aGlzLnhoPWQuSW4hPT0xfWZyZWV6ZSgpe3RoaXMuaXNBY3RpdmU9ITF9c2V0WkluZGV4KGEpe3RoaXMucmguc3R5bGUuekluZGV4PVN0cmluZyhhKX10aShhLGIsYyxkLGUsZixnLApoKXtkPWguVnJ8fHRoaXMub3JpZ2luJiYhYi5lcXVhbHModGhpcy5vcmlnaW4pfHx0aGlzLnNjYWxlJiYhYy5lcXVhbHModGhpcy5zY2FsZSl8fCEhYy5xaCYmdGhpcy5zaXplJiYhXy5CdyhnLHRoaXMuc2l6ZSk7dGhpcy5vcmlnaW49Yjt0aGlzLnNjYWxlPWM7dGhpcy5oaW50PWg7dGhpcy5zaXplPWc7ZT1oLkVsJiZoLkVsLmhqO2Y9TWF0aC5yb3VuZChfLnp2KGMpKTt2YXIgaz1lP01hdGgucm91bmQoZS56b29tKTpmO3N3aXRjaCh0aGlzLnRoLkluKXtjYXNlIDI6dmFyIG09ZjtmPSEwO2JyZWFrO2Nhc2UgMTpjYXNlIDM6bT1rO2Y9ITE7YnJlYWs7ZGVmYXVsdDpmPSExfW0hPT12b2lkIDAmJm0hPT10aGlzLnNoJiYodGhpcy5zaD1tLHRoaXMuQWg9RGF0ZS5ub3coKSk7bT10aGlzLnRoLkluPT09MSYmZSYmdGhpcy5SaC5uRChlKXx8YTtrPXRoaXMudGguQ2k7Zm9yKGxldCB4IG9mIHRoaXMucWgua2V5cygpKXtsZXQgej10aGlzLnFoLmdldCh4KTt2YXIgcD16LnJqLHE9cC51aTsKbGV0IEI9bmV3IHFCKGssbSxxKTt2YXIgdT1uZXcgcUIoayxhLHEpO2xldCBLPSF0aGlzLmlzQWN0aXZlJiYhei5NbygpLE89cSE9PXRoaXMuc2gmJiF6Lk1vKCk7cT1xIT09dGhpcy5zaCYmIUIuaGFzKHApJiYhdS5oYXMocCk7dT1mJiYhdS5oYXMocCx7Y0s6Mn0pO3A9aC5WciYmIUIuaGFzKHAse2NLOjJ9KTtLfHxPfHxxfHx1fHxwPyh6LnJlbGVhc2UoKSx0aGlzLnFoLmRlbGV0ZSh4KSk6ZCYmei50aShiLGMsaC5WcixnKX1rbmEodGhpcyxuZXcgcUIoayxtLHRoaXMuc2gpLGUsaC5Wcil9ZGlzcG9zZSgpe2ZvcihsZXQgYSBvZiB0aGlzLnFoLnZhbHVlcygpKWEucmVsZWFzZSgpO3RoaXMucWguY2xlYXIoKTt0aGlzLnJoLnBhcmVudE5vZGUmJnRoaXMucmgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnJoKX19O18uYnJhPV8uJGkoXy52eCxDQSk7Xy5UclszNjE3NDI2N109Q0E7Xy5peT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubGF5ZXJJZD0iIjt0aGlzLnBhcmFtZXRlcnM9e307dGhpcy5kYXRhPW5ldyBfLnhxfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5XcCgpfTske3RoaXMuc3BvdGxpZ2h0RGVzY3JpcHRpb24mJl8uUmoodGhpcy5zcG90bGlnaHREZXNjcmlwdGlvbiwoMCxfLmJyYSkoKSl9OyR7dGhpcy5yaCYmdGhpcy5yaC5qb2luKCl9OyR7dGhpcy5zZWFyY2hQaXBlTWV0YWRhdGEmJl8uUmoodGhpcy5zZWFyY2hQaXBlTWV0YWRhdGEsVm9hKCkpfTske3RoaXMuZ21tQ29udGV4dFBpcGVNZXRhZGF0YSYmXy5Saih0aGlzLmdtbUNvbnRleHRQaXBlTWV0YWRhdGEsJG9hKCkpfTske3RoaXMudHJhdmVsTWFwUmVxdWVzdCYmXy5Saih0aGlzLnRyYXZlbE1hcFJlcXVlc3QsVnFhKCkpfTske3RoaXMuYWlyUXVhbGl0eVBpcGVNZXRhZGF0YSYmXy5Saih0aGlzLmFpclF1YWxpdHlQaXBlTWV0YWRhdGEsUXFhKCkpfTske3RoaXMuZGlyZWN0aW9uc1BpcGVQYXJhbWV0ZXJzJiYKXy5Saih0aGlzLmRpcmVjdGlvbnNQaXBlUGFyYW1ldGVycyxPcWEoKSl9OyR7dGhpcy5jYXNlRXhwZXJpbWVudElkcyYmdGhpcy5jYXNlRXhwZXJpbWVudElkcy5tYXAoYT0+U3RyaW5nKGEpKS5qb2luKCIsIil9OyR7dGhpcy5ib29zdE1hcEV4cGVyaW1lbnRJZHMmJnRoaXMuYm9vc3RNYXBFeHBlcmltZW50SWRzLmpvaW4oIiwiKX07JHt0aGlzLmNsaWVudFNpZ25hbFBpcGVNZXRhZGF0YSYmXy5Saih0aGlzLmNsaWVudFNpZ25hbFBpcGVNZXRhZGF0YSxMb2EoKSl9YH1XcCgpe3ZhciBhPVtdO2ZvcihsZXQgYiBpbiB0aGlzLnBhcmFtZXRlcnMpYS5wdXNoKGAke2J9OiR7dGhpcy5wYXJhbWV0ZXJzW2JdfWApO2E9YS5zb3J0KCk7YS5zcGxpY2UoMCwwLHRoaXMubGF5ZXJJZCk7cmV0dXJuIGEuam9pbigifCIpfX07Xy5jcmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnFoPWE7dGhpcy5zbD1iO3RoaXMucmg9MTt0aGlzLndoPSIifWlzRW1wdHkoKXtyZXR1cm4hdGhpcy5xaH1lbygpe2lmKHRoaXMuaXNFbXB0eSgpfHwhXy5IKHRoaXMucWgsMSl8fCFfLm12KHRoaXMucWgpKXJldHVybiExO2lmKGp2KF8ubHYodGhpcy5xaCkpPT09MCl7dmFyIGE9YFRoZSBtYXAgSUQgIiR7Xy5IKHRoaXMucWgsMSl9IiBpcyBub3QgY29uZmlndXJlZC4gTWFwIGNhcGFiaWxpdGllcyByZW1haW4gYXZhaWxhYmxlLmA7Xy5kbihhKTtyZXR1cm4hMH1qdihfLmx2KHRoaXMucWgpKT09PTEmJihhPWBUaGUgbWFwIElEICIke18uSCh0aGlzLnFoLDEpfSIgaXMgbm90IGNvbmZpZ3VyZWQuIE1hcCBjYXBhYmlsaXRpZXMgd2lsbCBub3QgYmUgYXZhaWxhYmxlLmAsXy5kbihhKSk7cmV0dXJuIGp2KF8ubHYodGhpcy5xaCkpPT09Mn14aCgpe2lmKHRoaXMucWgmJl8uU2YodGhpcy5xaCxfLmZ5LDEzKSYmdGhpcy5lbygpKXt2YXIgYT0KXy5HKHRoaXMucWgsXy5meSwxMyk7Zm9yKGxldCBiIG9mIF8uQ2coYSxfLmd5LDUpKWlmKHRoaXMucmg9PT1fLlBnKGIsMSkpe2lmKGE9Xy5IKGIsNikpcmV0dXJuIHRoaXMucmgmJnRoaXMucmghPT0xJiYhYS5pbmNsdWRlcygic2RrX21hcF92YXJpYW50Iik/YCR7YX1zZGtfbWFwX3ZhcmlhbnQ9JHt0aGlzLnJofSZgOmE7aWYoXy5tdih0aGlzLnFoKSlyZXR1cm4gd25hKHRoaXMpfX1lbHNlIGlmKHRoaXMucWgmJl8ubXYodGhpcy5xaCkmJnRoaXMuZW8oKSlyZXR1cm4gd25hKHRoaXMpO3JldHVybiIifXFtKCl7aWYoIXRoaXMucWgpcmV0dXJuIiI7aWYoXy5TZih0aGlzLnFoLF8uZnksMTMpKXt2YXIgYT1fLkcodGhpcy5xaCxfLmZ5LDEzKTtmb3IobGV0IGIgb2YgXy5DZyhhLF8uZ3ksNSkpaWYodGhpcy5yaD09PV8uUGcoYiwxKSl7aWYoYT1fLkcoYixfLlF5LDgpPy5xbSgpKXJldHVybiBhO2JyZWFrfX1yZXR1cm4gdGhpcy53aH1zaCgpe2lmKCF0aGlzLnFofHwhXy5tdih0aGlzLnFoKSlyZXR1cm5bXTsKdmFyIGE9Xy5sdih0aGlzLnFoKTtpZighXy5TZihhLGh2LDEpKXJldHVybltdO2E9Xy5pdihhKTtpZighXy5ZZihhLGp5LDYpKXJldHVybltdO3ZhciBiPW5ldyBNYXAoW1sxLCJQT1NUQUxfQ09ERSJdLFsyLCJBRE1JTklTVFJBVElWRV9BUkVBX0xFVkVMXzEiXSxbMywiQURNSU5JU1RSQVRJVkVfQVJFQV9MRVZFTF8yIl0sWzQsIkNPVU5UUlkiXSxbNSwiTE9DQUxJVFkiXSxbMTcsIlNDSE9PTF9ESVNUUklDVCJdXSksYz1bXTtmb3IobGV0IGU9MDtlPF8uWWYoYSxqeSw2KTtlKyspe3ZhciBkPV8ud3UoYSw2LGp5LGUpOyhkPWIuZ2V0KF8uUGcoZCxfLnRnKGQsZ3YsMSkpKSkmJiFjLmluY2x1ZGVzKGQpJiZjLnB1c2goZCl9cmV0dXJuIGN9dGgoKXtpZighdGhpcy5xaHx8IV8ubXYodGhpcy5xaCkpcmV0dXJuW107dmFyIGE9W10sYj1fLmx2KHRoaXMucWgpO2ZvcihsZXQgYz0wO2M8Xy5ZZihiLGhvYSw3KTtjKyspYS5wdXNoKF8ud3UoYiw3LGhvYSxjKSk7cmV0dXJuIGF9fTtfLkx5PWNsYXNzIGV4dGVuZHMgXy5NaGF7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuYXJncz1hO3RoaXMuc2g9Yjt0aGlzLnFoPSExfXJoKCl7dGhpcy5ub3RpZnkoe3N5bmM6ITB9KX1zdCgpe2lmKCF0aGlzLnFoKXt0aGlzLnFoPSEwO2ZvcihsZXQgYSBvZiB0aGlzLmFyZ3MpYS5hZGRMaXN0ZW5lcih0aGlzLnJoLHRoaXMpfX1kcygpe3RoaXMucWg9ITE7Zm9yKGxldCBhIG9mIHRoaXMuYXJncylhLnJlbW92ZUxpc3RlbmVyKHRoaXMucmgsdGhpcyl9Z2V0KCl7cmV0dXJuIHRoaXMuc2guYXBwbHkobnVsbCx0aGlzLmFyZ3MubWFwKGE9PmEuZ2V0KCkpKX19O18uc0I9Y2xhc3MgZXh0ZW5kcyBfLk5oYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5vYmplY3Q9YTt0aGlzLmtleT1iO3RoaXMucWg9ITA7dGhpcy5saXN0ZW5lcj1udWxsfXN0KCl7dGhpcy5saXN0ZW5lcnx8KHRoaXMubGlzdGVuZXI9dGhpcy5vYmplY3QuYWRkTGlzdGVuZXIoKHRoaXMua2V5KyIiKS50b0xvd2VyQ2FzZSgpKyJfY2hhbmdlZCIsKCk9Pnt0aGlzLnFoJiZ0aGlzLm5vdGlmeSgpfSkpfWRzKCl7dGhpcy5saXN0ZW5lciYmKHRoaXMubGlzdGVuZXIucmVtb3ZlKCksdGhpcy5saXN0ZW5lcj1udWxsKX1nZXQoKXtyZXR1cm4gdGhpcy5vYmplY3QuZ2V0KHRoaXMua2V5KX1zZXQoYSl7dGhpcy5vYmplY3Quc2V0KHRoaXMua2V5LGEpfXJoKGEpe3ZhciBiPXRoaXMucWg7dGhpcy5xaD0hMTt0cnl7dGhpcy5vYmplY3Quc2V0KHRoaXMua2V5LGEpfWZpbmFsbHl7dGhpcy5xaD1ifX19O18uZHJhPWNsYXNzIGV4dGVuZHMgXy4kdHtjb25zdHJ1Y3Rvcigpe3ZhciBhPV8uZWdhO3N1cGVyKHtbIlgtR29vZy1NYXBzLUNsaWVudC1JZCJdOl8uSmw/LnhoKCl8fCIifSk7dGhpcy5xaD1hfWFzeW5jIGludGVyY2VwdChhLGIpe3ZhciBjPXRoaXMucWgoKTthLm1ldGFkYXRhWyJYLUdvb2ctTWFwcy1BUEktU2FsdCJdPWNbMF07YS5tZXRhZGF0YVsiWC1Hb29nLU1hcHMtQVBJLVNpZ25hdHVyZSJdPWNbMV07cmV0dXJuIHN1cGVyLmludGVyY2VwdChhLGQ9Pnt2YXIgZT1kLlhFO3RxYShlKSYmKGU9Xy5QZyhlLDEyKSxkLmdldE1ldGFkYXRhKCkuQXV0aG9yaXphdGlvbiYmKGU9PT0yJiYoZC5tZXRhZGF0YS5BdXRob3JpemF0aW9uPSIiLGQubWV0YWRhdGFbIlgtRmlyZWJhc2UtQXBwQ2hlY2siXT0iIiksZC5tZXRhZGF0YVsiWC1Hb29nLU1hcHMtQ2xpZW50LUlkIl09IiIpKTtyZXR1cm4gYihkKX0pfX07Xy50Qj1jbGFzcyBleHRlbmRzIF8uYXV7dGgoKXtyZXR1cm4gd21hfXNoKCl7cmV0dXJuIF8uVkF9fTt2YXIgSW5hPSgwLF8uR2opYC5nbS1lcnItY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ZGlzcGxheTp0YWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGVhZWQ7cG9zaXRpb246cmVsYXRpdmU7bGVmdDowO3RvcDowfS5nbS1lcnItY29udGVudHtib3JkZXItcmFkaXVzOjFweDtwYWRkaW5nLXRvcDowO3BhZGRpbmctbGVmdDoxMCU7cGFkZGluZy1yaWdodDoxMCU7cG9zaXRpb246c3RhdGljO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtkaXNwbGF5OnRhYmxlLWNlbGx9LmdtLWVyci1jb250ZW50IGF7Y29sb3I6IzNjNDA0M30uZ20tZXJyLWljb257dGV4dC1hbGlnbjpjZW50ZXJ9LmdtLWVyci10aXRsZXttYXJnaW46NXB4O21hcmdpbi1ib3R0b206MjBweDtjb2xvcjojM2M0MDQzO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToyNHB4fS5nbS1lcnItbWVzc2FnZXttYXJnaW46NXB4O2NvbG9yOiMzYzQwNDM7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEycHh9LmdtLWVyci1hdXRvY29tcGxldGV7cGFkZGluZy1sZWZ0OjIwcHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjE1cHggMTVweDtiYWNrZ3JvdW5kLXNpemU6MTVweCAxNXB4fXNlbnRpbmVse31cbmA7dmFyIGVyYT17REVGQVVMVDoiREVGQVVMVCIsR1I6IlBJTiIsSFI6IlBJTkxFVCJ9O3ZhciB0eSxzeSx1eSxmcmE7dHk9Xy5TcSgibWFwcy1waW4tdmlldy1iYWNrZ3JvdW5kIik7c3k9Xy5TcSgibWFwcy1waW4tdmlldy1ib3JkZXIiKTt1eT1fLlNxKCJtYXBzLXBpbi12aWV3LWRlZmF1bHQtZ2x5cGgiKTtmcmE9e1BJTjpuZXcgXy5ibygxLDkpLFBJTkxFVDpuZXcgXy5ibygwLDMpLERFRkFVTFQ6bmV3IF8uYm8oMCw1KX07Xy51Qj1uZXcgTWFwO18ueUI9Y2xhc3MgZXh0ZW5kcyBfLmV0e3N0YXRpYyBnZXQgUG0oKXtyZXR1cm57Li4uXy5ldC5QbSxzbG90QXNzaWdubWVudDoibWFudWFsIn19Y29uc3RydWN0b3IoYT17fSl7c3VwZXIoKTt0aGlzLlBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTt0aGlzLmRpPXRoaXMuRGg9dGhpcy5DaD10aGlzLnhoPXRoaXMuR2g9dGhpcy53aD10aGlzLkJoPXZvaWQgMDt0aGlzLnNoPW51bGw7ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5zaGFwZT1fLmtwKHRoaXMsInNoYXBlIixfLk1tKF8uRm0oZXJhKSksYS5zaGFwZSl8fCJERUZBVUxUIjtfLmdwKHRoaXMsInNoYXBlIik7dmFyIGI9MTUsYz01LjU7c3dpdGNoKHRoaXMuc2hhcGUpe2Nhc2UgIlBJTiI6dkJ8fCh2Qj12eSgiUElOIikpO3ZhciBkPXZCO2I9MTM7Yz03O2JyZWFrO2Nhc2UgIlBJTkxFVCI6d0J8fCh3Qj12eSgiUElOTEVUIikpO2Q9d0I7Yj05O2M9NTticmVhaztkZWZhdWx0OnhCfHwoeEI9dnkoIkRFRkFVTFQiKSksCmQ9eEIsYj0xNSxjPTUuNX10aGlzLnFoPWQuY2xvbmVOb2RlKCEwKTt0aGlzLnFoLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjt0aGlzLnFoLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIjt0aGlzLnFoLnN0eWxlLmdyaWRBcmVhPSIxIjt0aGlzLlppPU51bWJlcih0aGlzLnFoLmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7dGhpcy5XaT1OdW1iZXIodGhpcy5xaC5nZXRBdHRyaWJ1dGUoImhlaWdodCIpKTt0aGlzLnFoLnF1ZXJ5U2VsZWN0b3IoImciKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJhdXRvIjt0aGlzLm5pPXRoaXMucWgucXVlcnlTZWxlY3RvcihgLiR7dHl9YCkuZ2V0QXR0cmlidXRlKCJmaWxsIil8fCIiO2Q9dm9pZCAwO3ZhciBlPXRoaXMucWgucXVlcnlTZWxlY3RvcihgLiR7c3l9YCk7ZSYmKHRoaXMuc2hhcGU9PT0iREVGQVVMVCI/ZD1lLmdldEF0dHJpYnV0ZSgiZmlsbCIpOnRoaXMuc2hhcGU9PT0iUElOIiYmKGQ9ZS5nZXRBdHRyaWJ1dGUoInN0cm9rZSIpKSk7dGhpcy56aT1kfHwKIiI7ZD10aGlzLnFoLnF1ZXJ5U2VsZWN0b3IoImZpbHRlciIpO3RoaXMuYWo9ZC5pZDt0aGlzLk1pPWQucXVlcnlTZWxlY3RvcigiZmVGbG9vZCIpO3RoaXMudGg9dGhpcy5xaC5xdWVyeVNlbGVjdG9yKCJnID4gaW1hZ2UiKTt0aGlzLlNoPXRoaXMucWgucXVlcnlTZWxlY3RvcigiZyA+IHRleHQiKTtkPXZvaWQgMDsodGhpcy5GaD10aGlzLnFoLnF1ZXJ5U2VsZWN0b3IoYC4ke3V5fWApKSYmKGQ9dGhpcy5GaC5nZXRBdHRyaWJ1dGUoImZpbGwiKSk7dGhpcy5MaD1kfHwiIjt0aGlzLnJoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RoaXMueWg9Yjt0aGlzLkVpPWM7dGhpcy5yaC5zdHlsZS5zZXRQcm9wZXJ0eSgiZ3JpZC1hcmVhIiwiMiIpO3RoaXMucmguc3R5bGUuZGlzcGxheT0iZmxleCI7dGhpcy5yaC5zdHlsZS5hbGlnbkl0ZW1zPSJjZW50ZXIiO3RoaXMucmguc3R5bGUuanVzdGlmeUNvbnRlbnQ9ImNlbnRlciI7dGhpcy5yaC5hcHBlbmRDaGlsZCh0aGlzLlBoKTtKbmEodGhpcywKKCk9PntfLlRxKHRoaXMsIm1hcHMtcGluLXZpZXciKTt0aGlzLnN0eWxlLmRpc3BsYXk9ImdyaWQiO3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsImF1dG8iKTt0aGlzLnN0eWxlLnNldFByb3BlcnR5KCJncmlkLXRlbXBsYXRlLXJvd3MiLGAke3RoaXMuRWl9cHggYXV0b2ApO3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoImdhcCIsIjBweCIpO3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoImp1c3RpZnktaXRlbXMiLCJjZW50ZXIiKTt0aGlzLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiO3RoaXMuc3R5bGUudXNlclNlbGVjdD0ibm9uZSJ9KTt0aGlzLmJhY2tncm91bmQ9YS5iYWNrZ3JvdW5kO3RoaXMuYm9yZGVyQ29sb3I9YS5ib3JkZXJDb2xvcjt0aGlzLmdseXBoPWEuZ2x5cGg7dGhpcy5nbHlwaENvbG9yPWEuZ2x5cGhDb2xvcjt0aGlzLmdseXBoU3JjPWEuZ2x5cGhTcmM7dGhpcy5nbHlwaFRleHQ9YS5nbHlwaFRleHQ7dGhpcy5zY2FsZT1hLnNjYWxlOwpfLk0od2luZG93LDE0OTU5Nyk7dGhpcy54aShhLF8ueUIsIlBpbkVsZW1lbnQiKX1nZXQgZWxlbWVudCgpe18uZG4oXy5ocCh0aGlzLCJUaGUgYGVsZW1lbnRgIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdGhlIFBpbkVsZW1lbnQgZGlyZWN0bHkuIikpO3JldHVybiB0aGlzfWdldCBiYWNrZ3JvdW5kKCl7cmV0dXJuIHRoaXMuQmh9c2V0IGJhY2tncm91bmQoYSl7YT1fLmtwKHRoaXMsImJhY2tncm91bmQiLF8uYnMsYSl8fHRoaXMubmk7dGhpcy5CaCE9PWEmJih0aGlzLkJoPWEsdGhpcy5xaC5xdWVyeVNlbGVjdG9yKGAuJHt0eX1gKS5zZXRBdHRyaWJ1dGUoImZpbGwiLHRoaXMuQmgpLHRoaXMuQmg9PT10aGlzLm5pP18uTSh3aW5kb3csMTYwNjYwKTpfLk0od2luZG93LDE2MDY2MikpfWdldCBib3JkZXJDb2xvcigpe3JldHVybiB0aGlzLndofXNldCBib3JkZXJDb2xvcihhKXthPV8ua3AodGhpcywiYm9yZGVyQ29sb3IiLF8uYnMsYSl8fHRoaXMuemk7dGhpcy53aCE9PQphJiYodGhpcy53aD1hLChhPXRoaXMucWgucXVlcnlTZWxlY3RvcihgLiR7c3l9YCkpJiYodGhpcy5zaGFwZT09PSJERUZBVUxUIj9hLnNldEF0dHJpYnV0ZSgiZmlsbCIsdGhpcy53aCk6YS5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsdGhpcy53aCkpLHRoaXMud2g9PT10aGlzLnppP18uTSh3aW5kb3csMTYwNjYzKTpfLk0od2luZG93LDE2MDY2NCkpfWdldCBnbHlwaCgpe3JldHVybiB3eSh0aGlzKX1zZXQgZ2x5cGgoYSl7YT1fLmtwKHRoaXMsImdseXBoIixfLk1tKF8uS20oW18uY3IsXy5FbShFbGVtZW50LCJFbGVtZW50IiksXy5FbShVUkwsIlVSTCIpXSkpLGEpPz9udWxsO3RoaXMuR2ghPT1hJiYoKHRoaXMuR2g9YSkmJmNvbnNvbGUud2FybihfLmhwKHRoaXMsIlRoZSBgZ2x5cGhgIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYGdseXBoU3JjYCBvciBgZ2x5cGhUZXh0YCBpbnN0ZWFkLiIpKSx4eSh0aGlzKSl9Z2V0IGdseXBoQ29sb3IoKXtyZXR1cm4gdGhpcy54aH1zZXQgZ2x5cGhDb2xvcihhKXthPQpfLmtwKHRoaXMsImdseXBoQ29sb3IiLF8uYnMsYSl8fG51bGw7dGhpcy54aCE9PWEmJih0aGlzLnhoPWEsS25hKHRoaXMpLHRoaXMueGg9PW51bGx8fHRoaXMueGg9PT10aGlzLkxoP18uTSh3aW5kb3csMTYwNjY5KTpfLk0od2luZG93LDE2MDY3MCkpfWdldCBnbHlwaFNyYygpe3JldHVybiB0aGlzLkNofXNldCBnbHlwaFNyYyhhKXthPV8ua3AodGhpcywiZ2x5cGhTcmMiLF8uTW0oXy5LbShbXy5kcyxfLkVtKFVSTCwiVVJMIildKSksYSk/P251bGw7dHlwZW9mIGE9PT0ic3RyaW5nIiYmKGE9bmV3IFVSTChhLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSk7dGhpcy5DaCE9PWEmJih0aGlzLkNoPWEseHkodGhpcykpfWdldCBnbHlwaFRleHQoKXtyZXR1cm4gdGhpcy5EaH1zZXQgZ2x5cGhUZXh0KGEpe2E9Xy5rcCh0aGlzLCJnbHlwaFRleHQiLF8uYnMsYSk/P251bGw7dGhpcy5EaCE9PWEmJih0aGlzLkRoPWEseHkodGhpcykpfWdldCBzY2FsZSgpe3JldHVybiB0aGlzLnNofXNldCBzY2FsZShhKXthPQpfLmtwKHRoaXMsInNjYWxlIixfLk1tKF8uWnIpLGEpO2E9PW51bGwmJihhPTEpO2lmKHRoaXMuc2ghPT1hKXt0aGlzLnNoPWE7dmFyIGI9dGhpcy5nZXRTaXplKCk7dGhpcy5xaC5zZXRBdHRyaWJ1dGUoIndpZHRoIixgJHtiLndpZHRofXB4YCk7dGhpcy5xaC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsYCR7Yi5oZWlnaHR9cHhgKTthPU1hdGgucm91bmQodGhpcy55aCp0aGlzLnNoKTt0aGlzLnJoLnN0eWxlLndpZHRoPWAke2F9cHhgO3RoaXMucmguc3R5bGUuaGVpZ2h0PWAke2F9cHhgO3RoaXMudGguc2V0QXR0cmlidXRlKCJ3aWR0aCIsYCR7dGhpcy55aH1weGApO3RoaXMudGguc2V0QXR0cmlidXRlKCJoZWlnaHQiLGAke3RoaXMueWh9cHhgKTthPWZyYVt0aGlzLnNoYXBlXTt0aGlzLnRoLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7LSh0aGlzLnloLzIrYS54KX1weCwgJHstKHRoaXMueWgvMithLnkpfXB4KWA7Sm5hKHRoaXMsKCk9Pnt0aGlzLnN0eWxlLndpZHRoPWAke2Iud2lkdGh9cHhgOwp0aGlzLnN0eWxlLmhlaWdodD1gJHtiLmhlaWdodH1weGA7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiZ3JpZC10ZW1wbGF0ZS1yb3dzIixgJHt0aGlzLkVpKnRoaXMuc2h9cHggYXV0b2ApfSk7dGhpcy5zaD09PTE/Xy5NKHdpbmRvdywxNjA2NzEpOl8uTSh3aW5kb3csMTYwNjcyKX19Z2V0QW5jaG9yKCl7cmV0dXJuIG5ldyBfLmJvKHRoaXMuZ2V0U2l6ZSgpLndpZHRoLzIsdGhpcy5nZXRTaXplKCkuaGVpZ2h0LTEqdGhpcy5zaCl9Z2V0U2l6ZSgpe3JldHVybiBuZXcgXy5nbyhNYXRoLnJvdW5kKHRoaXMuWmkqdGhpcy5zaC8yKSoyLE1hdGgucm91bmQodGhpcy5XaSp0aGlzLnNoLzIpKjIpfXVwZGF0ZShhKXtzdXBlci51cGRhdGUoYSk7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZ21wLWludGVybmFsLXBpbmNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO3RoaXMuUGsuYXBwZW5kKHRoaXMucWgsCnRoaXMucmgpfX07Xy55Qi5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy55Qi5wcm90b3R5cGUuY29uc3RydWN0b3I7Xy55Qi5JaT17S2k6MTgyNDgxLEppOjE4MjQ4Mn07dmFyIHhCPW51bGwsd0I9bnVsbCx2Qj1udWxsO18uRChbXy50cSh7S2g6ImJhY2tncm91bmQiLHR5cGU6U3RyaW5nLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLF8ueUIucHJvdG90eXBlLCJiYWNrZ3JvdW5kIixudWxsKTtfLkQoW18udHEoe0toOiJib3JkZXItY29sb3IiLHR5cGU6U3RyaW5nLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLF8ueUIucHJvdG90eXBlLCJib3JkZXJDb2xvciIsbnVsbCk7Cl8uRChbXy50cSgpLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCksXy5GKCJkZXNpZ246cGFyYW10eXBlcyIsW09iamVjdF0pXSxfLnlCLnByb3RvdHlwZSwiZ2x5cGgiLG51bGwpO18uRChbXy50cSh7S2g6ImdseXBoLWNvbG9yIix0eXBlOlN0cmluZyxOaDohMH0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCksXy5GKCJkZXNpZ246cGFyYW10eXBlcyIsW09iamVjdF0pXSxfLnlCLnByb3RvdHlwZSwiZ2x5cGhDb2xvciIsbnVsbCk7Xy5EKFtfLnRxKHtLaDoiZ2x5cGgtc3JjIixOaDohMCx0eXBlOlN0cmluZyxmaTpfLmx3LG5qOl8uaW1hfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLF8ueUIucHJvdG90eXBlLCJnbHlwaFNyYyIsbnVsbCk7Cl8uRChbXy50cSh7S2g6ImdseXBoLXRleHQiLHR5cGU6U3RyaW5nLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLF8ueUIucHJvdG90eXBlLCJnbHlwaFRleHQiLG51bGwpO18uRChbXy50cSh7S2g6InNjYWxlIix0eXBlOk51bWJlcixOaDohMH0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCksXy5GKCJkZXNpZ246cGFyYW10eXBlcyIsW09iamVjdF0pXSxfLnlCLnByb3RvdHlwZSwic2NhbGUiLG51bGwpO18ueG8oImdtcC1waW4iLF8ueUIpO18uZ3JhPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTtfLmhyYT1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnFoPWF9Z2V0KGEpe3ZhciBiPXN1cGVyLmdldChhKTtyZXR1cm4gYiE9bnVsbD9iOnRoaXMucWhbYV19fTt2YXIgU25hPWNsYXNzIGV4dGVuZHMgXy50QntyaCgpe3JldHVyblsuLi5pcmEsLi4uc3VwZXIucmgoKV19fSxpcmE9W107dmFyIFVuYTtfLkZ5PSExO1VuYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLlNrPWEuSG8oKTt0aGlzLnFoPURhdGUubm93KCkrMjdFNX19O18uekI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5lbGVtZW50PWE7dGhpcy50aD0iIjt0aGlzLlprPSExO3RoaXMucWg9KCk9PnZvaWQgXy5KeSh0aGlzLHRoaXMuWmspOyh0aGlzLk5xPWR8fG51bGwpJiZ0aGlzLk5xLmFkZExpc3RlbmVyKHRoaXMucWgpO3RoaXMuc2g9Yjt0aGlzLnNoLmFkZExpc3RlbmVyKHRoaXMucWgpO3RoaXMucmg9Yzt0aGlzLnJoLmFkZExpc3RlbmVyKHRoaXMucWgpO18uSnkodGhpcyx0aGlzLlprKX19O18uVm5hPWB1cmwoJHtfLlVBfW9wZW5oYW5kXzhfOC5jdXIpLCBkZWZhdWx0YDtfLkl5PWB1cmwoJHtfLlVBfWNsb3NlZGhhbmRfOF84LmN1ciksIG1vdmVgO18uanJhPWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMucmg9Xy52dygiZGl2IixhLmJvZHksbmV3IF8uYm8oMCwtMikpO3RoaXMucmguc3R5bGUuaGVpZ2h0PSIxcHgiO3RoaXMucmguc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7dGhpcy5yaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMucmguc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjt0aGlzLnJoLnN0eWxlLndpZHRoPSIxcHgiO3RoaXMucWg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3RoaXMucmguYXBwZW5kQ2hpbGQodGhpcy5xaCk7dGhpcy5xaC50ZXh0Q29udGVudD0iQkVTYnN3eSI7dGhpcy5xaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMucWguc3R5bGUuZm9udFNpemU9IjMwMHB4Ijt0aGlzLnFoLnN0eWxlLndpZHRoPSJhdXRvIjt0aGlzLnFoLnN0eWxlLmhlaWdodD0iYXV0byI7dGhpcy5xaC5zdHlsZS5tYXJnaW49IjAiO3RoaXMucWguc3R5bGUucGFkZGluZz0KIjAiO3RoaXMucWguc3R5bGUuZm9udEZhbWlseT0iQXJpYWwsc2Fucy1zZXJpZiI7dGhpcy50aD10aGlzLnFoLm9mZnNldFdpZHRoO3RoaXMucWguc3R5bGUuZm9udEZhbWlseT0iUm9ib3RvLEFyaWFsLHNhbnMtc2VyaWYiO3RoaXMuc2goKTt0aGlzLmdldCgiZm9udExvYWRlZCIpfHx0aGlzLnNldCgiZm9udExvYWRlZCIsITEpfXNoKCl7dGhpcy5xaC5vZmZzZXRXaWR0aCE9PXRoaXMudGg/KHRoaXMuc2V0KCJmb250TG9hZGVkIiwhMCksXy55bCh0aGlzLnJoKSk6d2luZG93LnNldFRpbWVvdXQodGhpcy5zaC5iaW5kKHRoaXMpLDI1MCl9fTt2YXIgWG5hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLnFoPWE7dGhpcy5xbj1iO3RoaXMuTXM9Y3x8bnVsbH1abygpe2NsZWFyVGltZW91dCh0aGlzLnFuKX19O18uQUI9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VXJsKCl7cmV0dXJuIF8uSCh0aGlzLDEpfXNldFVybChhKXtyZXR1cm4gXy5paCh0aGlzLDEsYSl9fTtfLkFCLnByb3RvdHlwZS5LbT1fLmhhKDM3KTt2YXIga3JhPV8uJGkoXy5BQixbMCxfLlUsLTQsdnFhLHVxYSxfLlIsOTEsXy5VLC0xLF8uR3IsXy5VLF8uUl0pO3ZhciBscmE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0U3RhdHVzKCl7cmV0dXJuIF8uUGcodGhpcywzLC0xKX19O3ZhciBtcmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dmFyIGI9Xy54dygpLGM9Xy5KbD8ueGgoKT8/bnVsbCxkPV8uSmw/LnloKCk/P251bGwsZT1fLkpsPy50aCgpPz9udWxsO3RoaXMucmg9bnVsbDt0aGlzLnRoPSExO3RoaXMuc2g9Zm1hKGY9Pnt2YXIgZz0obmV3IF8uQUIpLnNldFVybChiLnN1YnN0cmluZygwLDEwMjQpKTtkJiZfLmloKGcsMyxkKTtjJiZfLmloKGcsMixjKTtlJiZfLmloKGcsNCxlKTt0aGlzLnJoJiZfLkt2KF8ud2coZyxzcWEsNyksdGhpcy5yaCk7Xy4kZyhnLDgsdGhpcy50aCk7aWYoIWMmJiFlKXtsZXQgaD1fLlVhLnNlbGY9PT1fLlVhLnRvcCYmYnx8bG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zJiZsb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnNbMF18fGRvY3VtZW50LnJlZmVycmVyfHwidW5kZWZpbmVkIjtoPWguc2xpY2UoMCwxMDI0KTtfLmloKGcsNSxoKX1hKGcsaD0+e18uaXc9ITA7dmFyIGs9Xy5HKF8uSmwsXy5ucSw0MCkuZ2V0U3RhdHVzKCk7az1fLkpnKGgsCjEpfHxoLmdldFN0YXR1cygpIT09MHx8az09PTI7aWYoIWspe18ucXkoKTt2YXIgbT1fLkcoaCxfLm5xLDYpO209Xy5wdShtLDMpP18uRyhoLF8ubnEsNikucmgoKTpfLnB5KCk7aD1fLlBnKGgsMiwtMSk7aWYoaD09PTB8fGg9PT0xMyl7bGV0IHA9ZG1hKF8ueHcoKSkudG9TdHJpbmcoKTtwLmluZGV4T2YoImZpbGU6LyIpPT09MCYmaD09PTEzJiYocD1wLnJlcGxhY2UoImZpbGU6LyIsIl9fZmlsZV91cmxfXyIpKTttKz0iXG5Zb3VyIHNpdGUgVVJMIHRvIGJlIGF1dGhvcml6ZWQ6ICIrcH1fLnJtKG0pO18uVWEuZ21fYXV0aEZhaWx1cmUmJl8uVWEuZ21fYXV0aEZhaWx1cmUoKX1fLmt3KCk7ZiYmZihrKX0pfSl9cWgoYT1udWxsKXt0aGlzLnJoPWE7dGhpcy50aD0hMTt0aGlzLnNoKCgpPT57fSl9fTt2YXIgbnJhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3ZhciBiPV8uQkIsYz1fLnh3KCksZD1fLkpsPy54aCgpPz9udWxsLGU9Xy5KbD8udGgoKT8/bnVsbCxmPV8uSmw/LnloKCk/P251bGw7dGhpcy56aD1hO3RoaXMueGg9Yjt0aGlzLndoPSExO3RoaXMucmg9bmV3IF8uVEE7dGhpcy5yaC5zZXRVcmwoYy5zdWJzdHJpbmcoMCwxMDI0KSk7dmFyIGc7Xy5KbCYmXy5TZihfLkpsLF8ubnEsNDApP2c9Xy5HKF8uSmwsXy5ucSw0MCk6Zz1fLm52KG5ldyBfLm5xLDEpO3RoaXMuc2g9Xy5tbyhnLCExKTtfLnF2KHRoaXMuc2gsaD0+e18ucHUoaCwzKSYmXy5ybShoLnJoKCkpfSk7ZiYmXy5paCh0aGlzLnJoLDksZik7ZD9fLmloKHRoaXMucmgsMixkKTplJiZfLmloKHRoaXMucmgsMyxlKX10aChhKXt2YXIgYj10aGlzLnNoLmdldCgpLGM9Yi5nZXRTdGF0dXMoKT09PTI7dGhpcy5zaC5zZXQoYz9iOmEpfXFoKGEpe3ZhciBiPWM9PntjLmdldFN0YXR1cygpPT09MiYmYShjKTsoYy5nZXRTdGF0dXMoKT09PQoyfHxfLmp3KSYmdGhpcy5zaC5yZW1vdmVMaXN0ZW5lcihiKX07Xy5xdih0aGlzLnNoLGIpfX07dmFyIENCLEVCO2lmKF8uSmwpe3ZhciBvcmE9Xy5KbC5yaCgpO0NCPV8uSmcob3JhLDQpfWVsc2UgQ0I9ITE7Xy5EQj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfUlqKCl7cmV0dXJuIHRoaXMucWh9c2V0UG9zaXRpb24oYSxiKXtfLnV3KGEsYix0aGlzLklqKCkpfX0oQ0IpO2lmKF8uSmwpe3ZhciBwcmE9Xy5KbC5yaCgpO0VCPV8uSChwcmEsOSl9ZWxzZSBFQj0iIjtfLkZCPUVCO18ucXJhPSJodHRwczovL3d3dy5nb29nbGUuY29tIisoXy5KbD9bIi9pbnRsLyIsXy5KbC5yaCgpLnJoKCksIl8iLF8uSmwucmgoKS50aCgpXS5qb2luKCIiKToiIikrIi9oZWxwL3Rlcm1zX21hcHMuaHRtbCI7Cl8uQkI9bmV3IG1yYSgoYSxiKT0+e18uS3koXy5lcixfLlZBKyIvbWFwcy9hcGkvanMvQXV0aGVudGljYXRpb25TZXJ2aWNlLkF1dGhlbnRpY2F0ZSIsXy5kcixfLlJqKGEsa3JhKCkpLGM9PntjPW5ldyBscmEoYyk7YihjKX0sKCk9Pnt2YXIgYz1uZXcgbHJhO2M9Xy5raChjLDMsMSk7YihjKX0pfSk7Xy5ycmE9bmV3IG5yYSgoYSxiKT0+e18uS3koXy5lcixEcWErIi9tYXBzL2FwaS9qcy9RdW90YVNlcnZpY2UuUmVjb3JkRXZlbnQiLF8uZHIsXy5SaihhLEJxYSgpKSxjPT57Yz1uZXcgQ3FhKGMpO2IoYyl9LCgpPT57dmFyIGM9bmV3IENxYTtjPV8ua2goYywxLDEpO2IoYyl9KX0pO18uc3JhPV8uVGwoKCk9Pnt2YXIgYT1bImFjdHVhbEJvdW5kaW5nQm94QXNjZW50IiwiYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50IiwiYWN0dWFsQm91bmRpbmdCb3hMZWZ0IiwiYWN0dWFsQm91bmRpbmdCb3hSaWdodCJdO3JldHVybiB0eXBlb2YgXy5VYS5UZXh0TWV0cmljcz09PSJmdW5jdGlvbiImJmEuZXZlcnkoYj0+Xy5VYS5UZXh0TWV0cmljcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoYikpfSk7Xy50cmE9Xy5UbCgoKT0+e3RyeXtpZih0eXBlb2YgV2ViQXNzZW1ibHk9PT0ib2JqZWN0IiYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlPT09ImZ1bmN0aW9uIil7bGV0IGE9TmthKCksYj1uZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGEpO3JldHVybiBiIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuTW9kdWxlJiZuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoYilpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNlfX1jYXRjaChhKXt9cmV0dXJuITF9KTsKXy51cmE9Xy5UbCgoKT0+IldvcmtlciJpbiBfLlVhKTt2YXIgdnJhLHdyYSx4cmE7Xy5HQj1bXTtfLkdCWzMwNDJdPTA7Xy5HQlsyODg0XT0xO18uR0JbMjkyOV09MjtfLkdCWzMwMjRdPTM7Xy5HQlszMjgyM109NDtfLkdCWzMyOTI2XT01O18uR0JbMzI5MjhdPTY7Xy5HQlszMDg5XT03O18uR0JbMjk2MF09ODtfLkhCPTE1Mjt2cmE9Xy5IQiszMjt3cmE9dnJhKzQ7Xy5JQj12cmEvMjtfLkpCPVtdO18uSkJbMzMxN109MDtfLkpCWzMzMzNdPTE7Xy5KQlszNzQ0MF09MjtfLkpCWzM3NDQxXT0zO18uSkJbMzc0NDNdPTQ7eHJhPXdyYSsxMjtfLktCPXdyYS8yO18ueXJhPXhyYSs0O18uTEI9eHJhLzI7Xy56cmE9Y2xhc3MgZXh0ZW5kcyBFcnJvcnt9O3ZhciBNQjt2YXIgQXJhLFZsYTtBcmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXtiPWJ8fGE7dGhpcy5tYXBQYW5lPU15KGEsMCk7dGhpcy5vdmVybGF5TGF5ZXI9TXkoYSwxKTt0aGlzLm92ZXJsYXlTaGFkb3c9TXkoYSwyKTt0aGlzLm1hcmtlckxheWVyPU15KGEsMyk7dGhpcy5vdmVybGF5SW1hZ2U9TXkoYiw0KTt0aGlzLmZsb2F0U2hhZG93PU15KGIsNSk7dGhpcy5vdmVybGF5TW91c2VUYXJnZXQ9TXkoYiw2KTthPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNsb3QiKTt0aGlzLm92ZXJsYXlNb3VzZVRhcmdldC5hcHBlbmRDaGlsZChhKTt0aGlzLmZsb2F0UGFuZT1NeShiLDcpfX07Cl8uQnJhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3ZhciBiPWEuY29udGFpbmVyLGM9YS5nSCxkO2lmKGQ9Yyl7YTp7ZD1fLkFsKGMpO2lmKGQuZGVmYXVsdFZpZXcmJmQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSYmKGQ9ZC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGMsbnVsbCkpKXtkPWQucG9zaXRpb258fGQuZ2V0UHJvcGVydHlWYWx1ZSgicG9zaXRpb24iKXx8IiI7YnJlYWsgYX1kPSIifWQ9ZCE9ImFic29sdXRlIn1kJiYoYy5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTtiIT1jJiYoYi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGIuc3R5bGUubGVmdD1iLnN0eWxlLnRvcD0iMCIpO2lmKChkPWEuYmFja2dyb3VuZENvbG9yKXx8IWIuc3R5bGUuYmFja2dyb3VuZENvbG9yKWIuc3R5bGUuYmFja2dyb3VuZENvbG9yPWR8fChhLmV3PyIjMjAyMTI0IjoiI2U1ZTNkZiIpO2Muc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7Yz1fLndsKCJESVYiKTtkPV8ud2woIkRJViIpOwp2YXIgZT1hLnBLP18ud2woIkRJViIpOmQ7Yy5zdHlsZS5wb3NpdGlvbj1kLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Yy5zdHlsZS50b3A9ZC5zdHlsZS50b3A9Yy5zdHlsZS5sZWZ0PWQuc3R5bGUubGVmdD1jLnN0eWxlLnpJbmRleD1kLnN0eWxlLnpJbmRleD0iMCI7ZS50YWJJbmRleD1hLlVOPzA6LTE7dmFyIGY9Ik1hcCI7QXJyYXkuaXNBcnJheShmKSYmKGY9Zi5qb2luKCIgIikpO2Y9PT0iInx8Zj09dm9pZCAwPyhNQnx8KE1CPXthdG9taWM6ITEsYXV0b2NvbXBsZXRlOiJub25lIixkcm9wZWZmZWN0OiJub25lIixoYXNwb3B1cDohMSxsaXZlOiJvZmYiLG11bHRpbGluZTohMSxtdWx0aXNlbGVjdGFibGU6ITEsb3JpZW50YXRpb246InZlcnRpY2FsIixyZWFkb25seTohMSxyZWxldmFudDoiYWRkaXRpb25zIHRleHQiLHJlcXVpcmVkOiExLHNvcnQ6Im5vbmUiLGJ1c3k6ITEsZGlzYWJsZWQ6ITEsaGlkZGVuOiExLGludmFsaWQ6ImZhbHNlIn0pLGY9TUIsImxhYmVsImluIGY/CmUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixmLmxhYmVsKTplLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpKTplLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZik7WGxhKGUpO2Uuc2V0QXR0cmlidXRlKCJyb2xlIiwicmVnaW9uIik7TnkoYyk7TnkoZCk7YS5wSyYmKE55KGUpLGIuYXBwZW5kQ2hpbGQoZSkpO2IuYXBwZW5kQ2hpbGQoYyk7Yy5hcHBlbmRDaGlsZChkKTtfLkJ6KGRvYSxiKTtfLnF3KGMsImdtLXN0eWxlIik7dGhpcy5lcT1fLndsKCJESVYiKTt0aGlzLmVxLnN0eWxlLnpJbmRleD0xO2QuYXBwZW5kQ2hpbGQodGhpcy5lcSk7YS5rRj9jb2EodGhpcy5lcSk6KHRoaXMuZXEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmVxLnN0eWxlLmxlZnQ9dGhpcy5lcS5zdHlsZS50b3A9IjAiLHRoaXMuZXEuc3R5bGUud2lkdGg9IjEwMCUiKTt0aGlzLnJoPW51bGw7YS5WRyYmKHRoaXMubnQ9Xy53bCgiRElWIiksdGhpcy5udC5zdHlsZS56SW5kZXg9MyxkLmFwcGVuZENoaWxkKHRoaXMubnQpLApOeSh0aGlzLm50KSx0aGlzLnJoPV8ud2woIkRJViIpLHRoaXMucmguc3R5bGUuekluZGV4PTQsZC5hcHBlbmRDaGlsZCh0aGlzLnJoKSxOeSh0aGlzLnJoKSx0aGlzLk1xPV8ud2woIkRJViIpLHRoaXMuTXEuc3R5bGUuekluZGV4PTQsYS5rRj8odGhpcy5udC5hcHBlbmRDaGlsZCh0aGlzLk1xKSxjb2EodGhpcy5NcSkpOihkLmFwcGVuZENoaWxkKHRoaXMuTXEpLHRoaXMuTXEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLk1xLnN0eWxlLmxlZnQ9dGhpcy5NcS5zdHlsZS50b3A9IjAiLHRoaXMuTXEuc3R5bGUud2lkdGg9IjEwMCUiKSk7dGhpcy5acD1kO3RoaXMucWg9Yzt0aGlzLkhqPWU7dGhpcy5ubj1uZXcgQXJhKHRoaXMuZXEsdGhpcy5NcSl9fTtWbGE9W2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgV2xhKGFbMF0udG9Mb3dlckNhc2UoKSl9YGFyaWEtcm9sZWRlc2NyaXB0aW9uYF07Xy5DcmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5Raz1kO3RoaXMucWg9Xy53bCgiRElWIik7dGhpcy50aD1fLmF5KCk7YS5hcHBlbmRDaGlsZCh0aGlzLnFoKTt0aGlzLnFoLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7dGhpcy5xaC5zdHlsZS50b3A9dGhpcy5xaC5zdHlsZS5sZWZ0PSIwIjt0aGlzLnFoLnN0eWxlLnpJbmRleD1TdHJpbmcoYik7dGhpcy5zaD1jLmJvdW5kczt0aGlzLnJoPWMuc2l6ZTthPV8ud2woIkRJViIpO3RoaXMucWguYXBwZW5kQ2hpbGQoYSk7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3R5bGUudG9wPWEuc3R5bGUubGVmdD0iMCI7YS5hcHBlbmRDaGlsZChjLmltYWdlKX10aShhLGIsYyxkLGUsZixnLGgpe2E9Xy53dih0aGlzLlFrLHRoaXMuc2gubWluLGYpO2Y9Xy50dihhLF8udXYodGhpcy5zaC5tYXgsdGhpcy5zaC5taW4pKTtiPV8udXYoYSxiKTtpZihjLnFoKXtsZXQgaz1NYXRoLnBvdygyLF8uenYoYykpO2M9Yy5xaC5KSChfLnp2KGMpLAplLGQsZyxiLGsqKGYucWgtYS5xaCkvdGhpcy5yaC53aWR0aCxrKihmLnJoLWEucmgpL3RoaXMucmguaGVpZ2h0KX1lbHNlIGQ9Xy54dihfLnl2KGMsYikpLGU9Xy55dihjLGEpLGc9Xy55dihjLG5ldyBfLldwKGYucWgsYS5yaCkpLGM9Xy55dihjLG5ldyBfLldwKGEucWgsZi5yaCkpLGM9Im1hdHJpeCgiK1N0cmluZygoZy5YaC1lLlhoKS90aGlzLnJoLndpZHRoKSsiLCIrU3RyaW5nKChnLlloLWUuWWgpL3RoaXMucmgud2lkdGgpKyIsIitTdHJpbmcoKGMuWGgtZS5YaCkvdGhpcy5yaC5oZWlnaHQpKyIsIitTdHJpbmcoKGMuWWgtZS5ZaCkvdGhpcy5yaC5oZWlnaHQpKyIsIitTdHJpbmcoZC5YaCkrIiwiK1N0cmluZyhkLlloKSsiKSI7dGhpcy5xaC5zdHlsZVt0aGlzLnRoXT1jO3RoaXMucWguc3R5bGUud2lsbENoYW5nZT1oLlZyPyIiOiJ0cmFuc2Zvcm0ifWRpc3Bvc2UoKXtfLnlsKHRoaXMucWgpfX07Xy5EcmE9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLnFoPW5ldyBfLmJvKDAsMCl9ZnJvbUxhdExuZ1RvQ29udGFpbmVyUGl4ZWwoYSl7dmFyIGI9dGhpcy5nZXQoInByb2plY3Rpb25Ub3BMZWZ0Iik7cmV0dXJuIGI/ZW9hKHRoaXMsYSxiLngsYi55KTpudWxsfWZyb21MYXRMbmdUb0RpdlBpeGVsKGEpe3ZhciBiPXRoaXMuZ2V0KCJvZmZzZXQiKTtyZXR1cm4gYj9lb2EodGhpcyxhLGIud2lkdGgsYi5oZWlnaHQpOm51bGx9ZnJvbURpdlBpeGVsVG9MYXRMbmcoYSxiPSExKXt2YXIgYz10aGlzLmdldCgib2Zmc2V0Iik7cmV0dXJuIGM/Zm9hKHRoaXMsYSxjLndpZHRoLGMuaGVpZ2h0LCJEaXYiLGIpOm51bGx9ZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoYSxiPSExKXt2YXIgYz10aGlzLmdldCgicHJvamVjdGlvblRvcExlZnQiKTtyZXR1cm4gYz9mb2EodGhpcyxhLGMueCxjLnksIkNvbnRhaW5lciIsYik6bnVsbH1nZXRXb3JsZFdpZHRoKCl7cmV0dXJuIF8ub3codGhpcy5nZXQoInByb2plY3Rpb24iKSwKdGhpcy5nZXQoInpvb20iKSl9Z2V0VmlzaWJsZVJlZ2lvbigpe3JldHVybiBudWxsfX07Xy5OQj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmZlYXR1cmU9YX1rcCgpe3JldHVybiB0aGlzLmZlYXR1cmUua3AoKX1PQSgpe3JldHVybiB0aGlzLmZlYXR1cmUuT0EoKX19O18uTkIucHJvdG90eXBlLmdldExlZ2VuZGFyeVRhZ3M9Xy5OQi5wcm90b3R5cGUuT0E7Xy5OQi5wcm90b3R5cGUuZ2V0RmVhdHVyZVR5cGU9Xy5OQi5wcm90b3R5cGUua3A7Xy5PQj1jbGFzcyBleHRlbmRzIF8ubWt7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKCk7dGhpcy55aD1jIT1udWxsP2EuYmluZChjKTphO3RoaXMueGg9Yjt0aGlzLnRoPW51bGw7dGhpcy5yaD0hMTt0aGlzLnNoPTA7dGhpcy5xaD1udWxsfXN0b3AoKXt0aGlzLnFoJiYoXy5VYS5jbGVhclRpbWVvdXQodGhpcy5xaCksdGhpcy5xaD1udWxsLHRoaXMucmg9ITEsdGhpcy50aD1udWxsKX1wYXVzZSgpe3RoaXMuc2grK31yZXN1bWUoKXt0aGlzLnNoLS07dGhpcy5zaHx8IXRoaXMucmh8fHRoaXMucWh8fCh0aGlzLnJoPSExLF8uT3kodGhpcykpfUJrKCl7c3VwZXIuQmsoKTt0aGlzLnN0b3AoKX19O18uT0IucHJvdG90eXBlLndoPV8uaGEoNTQpO30pOwo="}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/css/ion.rangeSlider.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.620Z","timestamp":1785126645620,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/css/ion.rangeSlider.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 752\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":3346,"size_decoded":999,"mime_type":"text/css","magic":"Unicode text, UTF-8 text","md5":"619c67f849402debc92a4405fef51dee","sha1":"d3f077af3422c1eb23d5de7f67efd25e80f9873a","sha256":"f23b34a2e2da418a0094dd989b0579cd6f23e8e5bb08ddfba013d0169521e658","sha512":"8707b9cb7c43488681c2e2b77b742b0ffa77bc6923284c0e18f3f89813eaef98d2c8efb653269ec258652102240dd351e21ca9626d0e76644f45d801a62fe5c1","ssdeep":"","tlshash":"00619a195da31640780af6f06f967b9e6630b00bdb07dda87e4d6200cf4b389a692f91","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T06:24:38.618415Z","times_seen":27,"resource_available":false,"data":"LyogSW9uLlJhbmdlU2xpZGVyCi8vIGNzcyB2ZXJzaW9uIDIuMC4zCi8vIMKpIDIwMTMtMjAxNCBEZW5pcyBJbmVzaGluIHwgSW9uRGVuLmNvbQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBSYW5nZVNsaWRlciAqLwoKLmlycyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGJsb2NrOwogICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KICAgIC5pcnMtbGluZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBibG9jazsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICAgICAgICAuaXJzLWxpbmUtbGVmdCwgLmlycy1saW5lLW1pZCwgLmlycy1saW5lLXJpZ2h0IHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgIH0KICAgICAgICAuaXJzLWxpbmUtbGVmdCB7CiAgICAgICAgICAgIGxlZnQ6IDA7IHdpZHRoOiAxMSU7CiAgICAgICAgfQogICAgICAgIC5pcnMtbGluZS1taWQgewogICAgICAgICAgICBsZWZ0OiA5JTsgd2lkdGg6IDgyJTsKICAgICAgICB9CiAgICAgICAgLmlycy1saW5lLXJpZ2h0IHsKICAgICAgICAgICAgcmlnaHQ6IDA7IHdpZHRoOiAxMSU7CiAgICAgICAgfQoKICAgIC5pcnMtYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGxlZnQ6IDA7IHdpZHRoOiAwOwogICAgfQogICAgLmlycy1iYXItZWRnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsgbGVmdDogMDsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQoKICAgIC5pcnMtc2hhZG93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IG5vbmU7CiAgICAgICAgbGVmdDogMDsgd2lkdGg6IDA7CiAgICB9CgogICAgLmlycy1zbGlkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHotaW5kZXg6IDE7CiAgICB9CiAgICAgICAgLmlycy1zbGlkZXIuc2luZ2xlIHsKCiAgICAgICAgfQogICAgICAgIC5pcnMtc2xpZGVyLmZyb20gewoKICAgICAgICB9CiAgICAgICAgLmlycy1zbGlkZXIudG8gewoKICAgICAgICB9CiAgICAgICAgLmlycy1zbGlkZXIudHlwZV9sYXN0IHsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CgogICAgLmlycy1taW4gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CiAgICAuaXJzLW1heCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsKICAgICAgICByaWdodDogMDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICB9CgogICAgLmlycy1mcm9tLCAuaXJzLXRvLCAuaXJzLXNpbmdsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsKICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgouaXJzLWdyaWQgewogICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBub25lOwogICAgYm90dG9tOiAwOyBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMjBweDsKfQouaXJzLXdpdGgtZ3JpZCAuaXJzLWdyaWQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KICAgIC5pcnMtZ3JpZC1wb2wgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDFweDsgaGVpZ2h0OiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogIzAwMDsKICAgIH0KICAgIC5pcnMtZ3JpZC1wb2wuc21hbGwgewogICAgICAgIGhlaWdodDogNHB4OwogICAgfQogICAgLmlycy1ncmlkLXRleHQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7IGxlZnQ6IDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiA5cHg7IGxpbmUtaGVpZ2h0OiA5cHg7CiAgICAgICAgcGFkZGluZzogMCAzcHg7CiAgICAgICAgY29sb3I6ICMwMDA7CiAgICB9CgouaXJzLWRpc2FibGUtbWFzayB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOwogICAgdG9wOiAwOyBsZWZ0OiAtMSU7CiAgICB3aWR0aDogMTAyJTsgaGVpZ2h0OiAxMDAlOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjApOwogICAgei1pbmRleDogMjsKfQouaXJzLWRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNDsKfQoubHQtaWU5IC5pcnMtZGlzYWJsZWQgewogICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTQwKTsKfQoKCi5pcnMtaGlkZGVuLWlucHV0IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgIHRvcDogMCAhaW1wb3J0YW50OwogICAgbGVmdDogMCAhaW1wb3J0YW50OwogICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiAwICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50OwogICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICB6LWluZGV4OiAtOTk5OSAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50OwogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Owp9Cg=="}},"time_used":63,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":63,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/highlight.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.844Z","timestamp":1785126645844,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/highlight.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 14451\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":37037,"size_decoded":14707,"mime_type":"text/javascript","magic":"data","md5":"2d6a9ce9ff01246106939e1877c89d07","sha1":"b8dafc040f2464244f9be9cbd9d61f801d3cde08","sha256":"3cc0c9e4d1c0dc7c36e94a65e24a6563689f612af658e719b958395c22724c70","sha512":"309f3e79f3ae44a93ad23583d338f74120d4c079f41cbe936f906986f3e72b25869a52c64d42ec851d0a2d096bf642bb61252ab6b01878f874dd7b7d4fb385dd","ssdeep":"768:B4aEeP6fH5S5kIjGzjufecrXXzOSy97ujCk9KOFff:cVf5S5kIOju2vSy9+CkI+","tlshash":"84f24bde610e6637468110b4708f3066783e44a9278c5a55e796d7bc38efc7cc2bab39","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.546305Z","times_seen":44,"resource_available":true,"data":"IWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgZXhwb3J0cz9lKGV4cG9ydHMpOih3aW5kb3cuaGxqcz1lKHt9KSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmhsanN9KSl9KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvJi9nbSwiJmFtcDsiKS5yZXBsYWNlKC88L2dtLCImbHQ7IikucmVwbGFjZSgvPi9nbSwiJmd0OyIpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBuKGUsdCl7dmFyIHI9ZSYmZS5leGVjKHQpO3JldHVybiByJiYwPT1yLmluZGV4fWZ1bmN0aW9uIGEoZSl7dmFyIHQ9KGUuY2xhc3NOYW1lKyIgIisoZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5jbGFzc05hbWU6IiIpKS5zcGxpdCgvXHMrLyk7cmV0dXJuIHQ9dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXmxhbmcodWFnZSk/LS8sIiIpfSksdC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE4oZSl8fC9ubygtPyloaWdobGlnaHQvLnRlc3QoZSl9KVswXX1mdW5jdGlvbiBpKGUsdCl7dmFyIHI9e307Zm9yKHZhciBuIGluIGUpcltuXT1lW25dO2lmKHQpZm9yKHZhciBuIGluIHQpcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIHMoZSl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uIG4oZSxhKXtmb3IodmFyIGk9ZS5maXJzdENoaWxkO2k7aT1pLm5leHRTaWJsaW5nKTM9PWkubm9kZVR5cGU/YSs9aS5ub2RlVmFsdWUubGVuZ3RoOjE9PWkubm9kZVR5cGUmJih0LnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OmEsbm9kZTppfSksYT1uKGksYSkscihpKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fHQucHVzaCh7ZXZlbnQ6InN0b3AiLG9mZnNldDphLG5vZGU6aX0pKTtyZXR1cm4gYX0oZSwwKSx0fWZ1bmN0aW9uIGMoZSxuLGEpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gZS5sZW5ndGgmJm4ubGVuZ3RoP2VbMF0ub2Zmc2V0IT1uWzBdLm9mZnNldD9lWzBdLm9mZnNldDxuWzBdLm9mZnNldD9lOm46InN0YXJ0Ij09blswXS5ldmVudD9lOm46ZS5sZW5ndGg/ZTpufWZ1bmN0aW9uIHMoZSl7ZnVuY3Rpb24gbihlKXtyZXR1cm4iICIrZS5ub2RlTmFtZSsnPSInK3QoZS52YWx1ZSkrJyInfXUrPSI8IityKGUpK0FycmF5LnByb3RvdHlwZS5tYXAuY2FsbChlLmF0dHJpYnV0ZXMsbikuam9pbigiIikrIj4ifWZ1bmN0aW9uIGMoZSl7dSs9IjwvIityKGUpKyI+In1mdW5jdGlvbiBvKGUpeygic3RhcnQiPT1lLmV2ZW50P3M6YykoZS5ub2RlKX1mb3IodmFyIGw9MCx1PSIiLGQ9W107ZS5sZW5ndGh8fG4ubGVuZ3RoOyl7dmFyIGI9aSgpO2lmKHUrPXQoYS5zdWJzdHIobCxiWzBdLm9mZnNldC1sKSksbD1iWzBdLm9mZnNldCxiPT1lKXtkLnJldmVyc2UoKS5mb3JFYWNoKGMpO2RvIG8oYi5zcGxpY2UoMCwxKVswXSksYj1pKCk7d2hpbGUoYj09ZSYmYi5sZW5ndGgmJmJbMF0ub2Zmc2V0PT1sKTtkLnJldmVyc2UoKS5mb3JFYWNoKHMpfWVsc2Uic3RhcnQiPT1iWzBdLmV2ZW50P2QucHVzaChiWzBdLm5vZGUpOmQucG9wKCksbyhiLnNwbGljZSgwLDEpWzBdKX1yZXR1cm4gdSt0KGEuc3Vic3RyKGwpKX1mdW5jdGlvbiBvKGUpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGUmJmUuc291cmNlfHxlfWZ1bmN0aW9uIHIocixuKXtyZXR1cm4gUmVnRXhwKHQociksIm0iKyhlLmNJPyJpIjoiIikrKG4/ImciOiIiKSl9ZnVuY3Rpb24gbihhLHMpe2lmKCFhLmNvbXBpbGVkKXtpZihhLmNvbXBpbGVkPSEwLGEuaz1hLmt8fGEuYkssYS5rKXt2YXIgYz17fSxvPWZ1bmN0aW9uKHQscil7ZS5jSSYmKHI9ci50b0xvd2VyQ2FzZSgpKSxyLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcj1lLnNwbGl0KCJ8Iik7Y1tyWzBdXT1bdCxyWzFdP051bWJlcihyWzFdKToxXX0pfTsic3RyaW5nIj09dHlwZW9mIGEuaz9vKCJrZXl3b3JkIixhLmspOk9iamVjdC5rZXlzKGEuaykuZm9yRWFjaChmdW5jdGlvbihlKXtvKGUsYS5rW2VdKX0pLGEuaz1jfWEubFI9cihhLmx8fC9cYltBLVphLXowLTlfXStcYi8sITApLHMmJihhLmJLJiYoYS5iPSJcXGIoIithLmJLLnNwbGl0KCIgIikuam9pbigifCIpKyIpXFxiIiksYS5ifHwoYS5iPS9cQnxcYi8pLGEuYlI9cihhLmIpLGEuZXx8YS5lV3x8KGEuZT0vXEJ8XGIvKSxhLmUmJihhLmVSPXIoYS5lKSksYS50RT10KGEuZSl8fCIiLGEuZVcmJnMudEUmJihhLnRFKz0oYS5lPyJ8IjoiIikrcy50RSkpLGEuaSYmKGEuaVI9cihhLmkpKSx2b2lkIDA9PT1hLnImJihhLnI9MSksYS5jfHwoYS5jPVtdKTt2YXIgbD1bXTthLmMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnY/ZS52LmZvckVhY2goZnVuY3Rpb24odCl7bC5wdXNoKGkoZSx0KSl9KTpsLnB1c2goInNlbGYiPT1lP2E6ZSl9KSxhLmM9bCxhLmMuZm9yRWFjaChmdW5jdGlvbihlKXtuKGUsYSl9KSxhLnN0YXJ0cyYmbihhLnN0YXJ0cyxzKTt2YXIgdT1hLmMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmJLPyJcXC4/KCIrZS5iKyIpXFwuPyI6ZS5ifSkuY29uY2F0KFthLnRFLGEuaV0pLm1hcCh0KS5maWx0ZXIoQm9vbGVhbik7YS50PXUubGVuZ3RoP3IodS5qb2luKCJ8IiksITApOntleGVjOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fX19bihlKX1mdW5jdGlvbiBsKGUscixhLGkpe2Z1bmN0aW9uIHMoZSx0KXtmb3IodmFyIHI9MDtyPHQuYy5sZW5ndGg7cisrKWlmKG4odC5jW3JdLmJSLGUpKXJldHVybiB0LmNbcl19ZnVuY3Rpb24gYyhlLHQpe3JldHVybiBuKGUuZVIsdCk/ZTplLmVXP2MoZS5wYXJlbnQsdCk6dm9pZCAwfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4hYSYmbih0LmlSLGUpfWZ1bmN0aW9uIGIoZSx0KXt2YXIgcj15LmNJP3RbMF0udG9Mb3dlckNhc2UoKTp0WzBdO3JldHVybiBlLmsuaGFzT3duUHJvcGVydHkocikmJmUua1tyXX1mdW5jdGlvbiBwKGUsdCxyLG4pe3ZhciBhPW4/IiI6di5jbGFzc1ByZWZpeCxpPSc8c3BhbiBjbGFzcz0iJythLHM9cj8iIjoiPC9zcGFuPiI7cmV0dXJuIGkrPWUrJyI+JyxpK3Qrc31mdW5jdGlvbiBmKCl7aWYoIWsuaylyZXR1cm4gdChTKTt2YXIgZT0iIixyPTA7ay5sUi5sYXN0SW5kZXg9MDtmb3IodmFyIG49ay5sUi5leGVjKFMpO247KXtlKz10KFMuc3Vic3RyKHIsbi5pbmRleC1yKSk7dmFyIGE9YihrLG4pO2E/KEUrPWFbMV0sZSs9cChhWzBdLHQoblswXSkpKTplKz10KG5bMF0pLHI9ay5sUi5sYXN0SW5kZXgsbj1rLmxSLmV4ZWMoUyl9cmV0dXJuIGUrdChTLnN1YnN0cihyKSl9ZnVuY3Rpb24gbSgpe2lmKGsuc0wmJiF3W2suc0xdKXJldHVybiB0KFMpO3ZhciBlPWsuc0w/bChrLnNMLFMsITAseFtrLnNMXSk6dShTKTtyZXR1cm4gay5yPjAmJihFKz1lLnIpLCJjb250aW51b3VzIj09ay5zdWJMYW5ndWFnZU1vZGUmJih4W2suc0xdPWUudG9wKSxwKGUubGFuZ3VhZ2UsZS52YWx1ZSwhMSwhMCl9ZnVuY3Rpb24gZygpe3JldHVybiB2b2lkIDAhPT1rLnNMP20oKTpmKCl9ZnVuY3Rpb24gXyhlLHIpe3ZhciBuPWUuY04/cChlLmNOLCIiLCEwKToiIjtlLnJCPyhNKz1uLFM9IiIpOmUuZUI/KE0rPXQocikrbixTPSIiKTooTSs9bixTPXIpLGs9T2JqZWN0LmNyZWF0ZShlLHtwYXJlbnQ6e3ZhbHVlOmt9fSl9ZnVuY3Rpb24gaChlLHIpe2lmKFMrPWUsdm9pZCAwPT09cilyZXR1cm4gTSs9ZygpLDA7dmFyIG49cyhyLGspO2lmKG4pcmV0dXJuIE0rPWcoKSxfKG4sciksbi5yQj8wOnIubGVuZ3RoO3ZhciBhPWMoayxyKTtpZihhKXt2YXIgaT1rO2kuckV8fGkuZUV8fChTKz1yKSxNKz1nKCk7ZG8gay5jTiYmKE0rPSI8L3NwYW4+IiksRSs9ay5yLGs9ay5wYXJlbnQ7d2hpbGUoayE9YS5wYXJlbnQpO3JldHVybiBpLmVFJiYoTSs9dChyKSksUz0iIixhLnN0YXJ0cyYmXyhhLnN0YXJ0cywiIiksaS5yRT8wOnIubGVuZ3RofWlmKGQocixrKSl0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgbGV4ZW1lICInK3IrJyIgZm9yIG1vZGUgIicrKGsuY058fCI8dW5uYW1lZD4iKSsnIicpO3JldHVybiBTKz1yLHIubGVuZ3RofHwxfXZhciB5PU4oZSk7aWYoIXkpdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxhbmd1YWdlOiAiJytlKyciJyk7byh5KTtmb3IodmFyIGs9aXx8eSx4PXt9LE09IiIsQz1rO0MhPXk7Qz1DLnBhcmVudClDLmNOJiYoTT1wKEMuY04sIiIsITApK00pO3ZhciBTPSIiLEU9MDt0cnl7Zm9yKHZhciBCLEksTD0wOzspe2lmKGsudC5sYXN0SW5kZXg9TCxCPWsudC5leGVjKHIpLCFCKWJyZWFrO0k9aChyLnN1YnN0cihMLEIuaW5kZXgtTCksQlswXSksTD1CLmluZGV4K0l9aChyLnN1YnN0cihMKSk7Zm9yKHZhciBDPWs7Qy5wYXJlbnQ7Qz1DLnBhcmVudClDLmNOJiYoTSs9Ijwvc3Bhbj4iKTtyZXR1cm57cjpFLHZhbHVlOk0sbGFuZ3VhZ2U6ZSx0b3A6a319Y2F0Y2goUil7aWYoLTEhPVIubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIikpcmV0dXJue3I6MCx2YWx1ZTp0KHIpfTt0aHJvdyBSfX1mdW5jdGlvbiB1KGUscil7cj1yfHx2Lmxhbmd1YWdlc3x8T2JqZWN0LmtleXModyk7dmFyIG49e3I6MCx2YWx1ZTp0KGUpfSxhPW47cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbih0KXtpZihOKHQpKXt2YXIgcj1sKHQsZSwhMSk7ci5sYW5ndWFnZT10LHIucj5hLnImJihhPXIpLHIucj5uLnImJihhPW4sbj1yKX19KSxhLmxhbmd1YWdlJiYobi5zZWNvbmRfYmVzdD1hKSxufWZ1bmN0aW9uIGQoZSl7cmV0dXJuIHYudGFiUmVwbGFjZSYmKGU9ZS5yZXBsYWNlKC9eKCg8W14+XSs+fFx0KSspL2dtLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQucmVwbGFjZSgvXHQvZyx2LnRhYlJlcGxhY2UpfSkpLHYudXNlQlImJihlPWUucmVwbGFjZSgvXG4vZywiPGJyPiIpKSxlfWZ1bmN0aW9uIGIoZSx0LHIpe3ZhciBuPXQ/eVt0XTpyLGE9W2UudHJpbSgpXTtyZXR1cm4gZS5tYXRjaCgvKFxzfF4paGxqcyhcc3wkKS8pfHxhLnB1c2goImhsanMiKSxuJiZhLnB1c2gobiksYS5qb2luKCIgIikudHJpbSgpfWZ1bmN0aW9uIHAoZSl7dmFyIHQ9YShlKTtpZighL25vKC0/KWhpZ2hsaWdodC8udGVzdCh0KSl7dmFyIHI7di51c2VCUj8ocj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJkaXYiKSxyLmlubmVySFRNTD1lLmlubmVySFRNTC5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC88YnJbIFwvXSo+L2csIlxuIikpOnI9ZTt2YXIgbj1yLnRleHRDb250ZW50LGk9dD9sKHQsbiwhMCk6dShuKSxvPXMocik7aWYoby5sZW5ndGgpe3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRpdiIpO3AuaW5uZXJIVE1MPWkudmFsdWUsaS52YWx1ZT1jKG8scyhwKSxuKX1pLnZhbHVlPWQoaS52YWx1ZSksZS5pbm5lckhUTUw9aS52YWx1ZSxlLmNsYXNzTmFtZT1iKGUuY2xhc3NOYW1lLHQsaS5sYW5ndWFnZSksZS5yZXN1bHQ9e2xhbmd1YWdlOmkubGFuZ3VhZ2UscmU6aS5yfSxpLnNlY29uZF9iZXN0JiYoZS5zZWNvbmRfYmVzdD17bGFuZ3VhZ2U6aS5zZWNvbmRfYmVzdC5sYW5ndWFnZSxyZTppLnNlY29uZF9iZXN0LnJ9KX19ZnVuY3Rpb24gZihlKXt2PWkodixlKX1mdW5jdGlvbiBtKCl7aWYoIW0uY2FsbGVkKXttLmNhbGxlZD0hMDt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUgY29kZSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSxwKX19ZnVuY3Rpb24gZygpe2FkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG0sITEpLGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG0sITEpfWZ1bmN0aW9uIF8odCxyKXt2YXIgbj13W3RdPXIoZSk7bi5hbGlhc2VzJiZuLmFsaWFzZXMuZm9yRWFjaChmdW5jdGlvbihlKXt5W2VdPXR9KX1mdW5jdGlvbiBoKCl7cmV0dXJuIE9iamVjdC5rZXlzKHcpfWZ1bmN0aW9uIE4oZSl7cmV0dXJuIHdbZV18fHdbeVtlXV19dmFyIHY9e2NsYXNzUHJlZml4OiJobGpzLSIsdGFiUmVwbGFjZTpudWxsLHVzZUJSOiExLGxhbmd1YWdlczp2b2lkIDB9LHc9e30seT17fTtyZXR1cm4gZS5oaWdobGlnaHQ9bCxlLmhpZ2hsaWdodEF1dG89dSxlLmZpeE1hcmt1cD1kLGUuaGlnaGxpZ2h0QmxvY2s9cCxlLmNvbmZpZ3VyZT1mLGUuaW5pdEhpZ2hsaWdodGluZz1tLGUuaW5pdEhpZ2hsaWdodGluZ09uTG9hZD1nLGUucmVnaXN0ZXJMYW5ndWFnZT1fLGUubGlzdExhbmd1YWdlcz1oLGUuZ2V0TGFuZ3VhZ2U9TixlLmluaGVyaXQ9aSxlLklSPSJbYS16QS1aXVthLXpBLVowLTlfXSoiLGUuVUlSPSJbYS16QS1aX11bYS16QS1aMC05X10qIixlLk5SPSJcXGJcXGQrKFxcLlxcZCspPyIsZS5DTlI9IihcXGIwW3hYXVthLWZBLUYwLTldK3woXFxiXFxkKyhcXC5cXGQqKT98XFwuXFxkKykoW2VFXVstK10/XFxkKyk/KSIsZS5CTlI9IlxcYigwYlswMV0rKSIsZS5SU1I9IiF8IT18IT09fCV8JT18JnwmJnwmPXxcXCp8XFwqPXxcXCt8XFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+IixlLkJFPXtiOiJcXFxcW1xcc1xcU10iLHI6MH0sZS5BU009e2NOOiJzdHJpbmciLGI6IiciLGU6IiciLGk6IlxcbiIsYzpbZS5CRV19LGUuUVNNPXtjTjoic3RyaW5nIixiOiciJyxlOiciJyxpOiJcXG4iLGM6W2UuQkVdfSxlLlBXTT17YjovXGIoYXxhbnx0aGV8YXJlfEl8SSdtfGlzbid0fGRvbid0fGRvZXNuJ3R8d29uJ3R8YnV0fGp1c3R8c2hvdWxkfHByZXR0eXxzaW1wbHl8ZW5vdWdofGdvbm5hfGdvaW5nfHd0Znxzb3xzdWNoKVxiL30sZS5DTENNPXtjTjoiY29tbWVudCIsYjoiLy8iLGU6IiQiLGM6W2UuUFdNXX0sZS5DQkNNPXtjTjoiY29tbWVudCIsYjoiL1xcKiIsZToiXFwqLyIsYzpbZS5QV01dfSxlLkhDTT17Y046ImNvbW1lbnQiLGI6IiMiLGU6IiQiLGM6W2UuUFdNXX0sZS5OTT17Y046Im51bWJlciIsYjplLk5SLHI6MH0sZS5DTk09e2NOOiJudW1iZXIiLGI6ZS5DTlIscjowfSxlLkJOTT17Y046Im51bWJlciIsYjplLkJOUixyOjB9LGUuQ1NTTk09e2NOOiJudW1iZXIiLGI6ZS5OUisiKCV8ZW18ZXh8Y2h8cmVtfHZ3fHZofHZtaW58dm1heHxjbXxtbXxpbnxwdHxwY3xweHxkZWd8Z3JhZHxyYWR8dHVybnxzfG1zfEh6fGtIenxkcGl8ZHBjbXxkcHB4KT8iLHI6MH0sZS5STT17Y046InJlZ2V4cCIsYjovXC8vLGU6L1wvW2dpbXV5XSovLGk6L1xuLyxjOltlLkJFLHtiOi9cWy8sZTovXF0vLHI6MCxjOltlLkJFXX1dfSxlLlRNPXtjTjoidGl0bGUiLGI6ZS5JUixyOjB9LGUuVVRNPXtjTjoidGl0bGUiLGI6ZS5VSVIscjowfSxlfSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJhcGFjaGUiLGZ1bmN0aW9uKGUpe3ZhciB0PXtjTjoibnVtYmVyIixiOiJbXFwkJV1cXGQrIn07cmV0dXJue2FsaWFzZXM6WyJhcGFjaGVjb25mIl0sY0k6ITAsYzpbZS5IQ00se2NOOiJ0YWciLGI6IjwvPyIsZToiPiJ9LHtjTjoia2V5d29yZCIsYjovXHcrLyxyOjAsazp7Y29tbW9uOiJvcmRlciBkZW55IGFsbG93IHNldGVudiByZXdyaXRlcnVsZSByZXdyaXRlZW5naW5lIHJld3JpdGVjb25kIGRvY3VtZW50cm9vdCBzZXRoYW5kbGVyIGVycm9yZG9jdW1lbnQgbG9hZG1vZHVsZSBvcHRpb25zIGhlYWRlciBsaXN0ZW4gc2VydmVycm9vdCBzZXJ2ZXJuYW1lIn0sc3RhcnRzOntlOi8kLyxyOjAsazp7bGl0ZXJhbDoib24gb2ZmIGFsbCJ9LGM6W3tjTjoic3FicmFja2V0IixiOiJcXHNcXFsiLGU6IlxcXSQifSx7Y046ImNicmFja2V0IixiOiJbXFwkJV1cXHsiLGU6IlxcfSIsYzpbInNlbGYiLHRdfSx0LGUuUVNNXX19XSxpOi9cUy99fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJiYXNoIixmdW5jdGlvbihlKXt2YXIgdD17Y046InZhcmlhYmxlIix2Olt7YjovXCRbXHdcZCNAXVtcd1xkX10qL30se2I6L1wkXHsoLio/KVx9L31dfSxyPXtjTjoic3RyaW5nIixiOi8iLyxlOi8iLyxjOltlLkJFLHQse2NOOiJ2YXJpYWJsZSIsYjovXCRcKC8sZTovXCkvLGM6W2UuQkVdfV19LG49e2NOOiJzdHJpbmciLGI6LycvLGU6LycvfTtyZXR1cm57YWxpYXNlczpbInNoIiwienNoIl0sbDovLT9bYS16XC5dKy8sazp7a2V5d29yZDoiaWYgdGhlbiBlbHNlIGVsaWYgZmkgZm9yIHdoaWxlIGluIGRvIGRvbmUgY2FzZSBlc2FjIGZ1bmN0aW9uIixsaXRlcmFsOiJ0cnVlIGZhbHNlIixidWlsdF9pbjoiYnJlYWsgY2QgY29udGludWUgZXZhbCBleGVjIGV4aXQgZXhwb3J0IGdldG9wdHMgaGFzaCBwd2QgcmVhZG9ubHkgcmV0dXJuIHNoaWZ0IHRlc3QgdGltZXMgdHJhcCB1bWFzayB1bnNldCBhbGlhcyBiaW5kIGJ1aWx0aW4gY2FsbGVyIGNvbW1hbmQgZGVjbGFyZSBlY2hvIGVuYWJsZSBoZWxwIGxldCBsb2NhbCBsb2dvdXQgbWFwZmlsZSBwcmludGYgcmVhZCByZWFkYXJyYXkgc291cmNlIHR5cGUgdHlwZXNldCB1bGltaXQgdW5hbGlhcyBzZXQgc2hvcHQgYXV0b2xvYWQgYmcgYmluZGtleSBieWUgY2FwIGNoZGlyIGNsb25lIGNvbXBhcmd1bWVudHMgY29tcGNhbGwgY29tcGN0bCBjb21wZGVzY3JpYmUgY29tcGZpbGVzIGNvbXBncm91cHMgY29tcHF1b3RlIGNvbXB0YWdzIGNvbXB0cnkgY29tcHZhbHVlcyBkaXJzIGRpc2FibGUgZGlzb3duIGVjaG90YyBlY2hvdGkgZW11bGF0ZSBmYyBmZyBmbG9hdCBmdW5jdGlvbnMgZ2V0Y2FwIGdldGxuIGhpc3RvcnkgaW50ZWdlciBqb2JzIGtpbGwgbGltaXQgbG9nIG5vZ2xvYiBwb3BkIHByaW50IHB1c2hkIHB1c2hsbiByZWhhc2ggc2NoZWQgc2V0Y2FwIHNldG9wdCBzdGF0IHN1c3BlbmQgdHR5Y3RsIHVuZnVuY3Rpb24gdW5oYXNoIHVubGltaXQgdW5zZXRvcHQgdmFyZWQgd2FpdCB3aGVuY2Ugd2hlcmUgd2hpY2ggemNvbXBpbGUgemZvcm1hdCB6ZnRwIHpsZSB6bW9kbG9hZCB6cGFyc2VvcHRzIHpwcm9mIHpwdHkgenJlZ2V4cGFyc2UgenNvY2tldCB6c3R5bGUgenRjcCIsb3BlcmF0b3I6Ii1uZSAtZXEgLWx0IC1ndCAtZiAtZCAtZSAtcyAtbCAtYSJ9LGM6W3tjTjoic2hlYmFuZyIsYjovXiMhW15cbl0rc2hccyokLyxyOjEwfSx7Y046ImZ1bmN0aW9uIixiOi9cd1tcd1xkX10qXHMqXChccypcKVxzKlx7LyxyQjohMCxjOltlLmluaGVyaXQoZS5UTSx7YjovXHdbXHdcZF9dKi99KV0scjowfSxlLkhDTSxlLk5NLHIsbix0XX19KSxobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImNvZmZlZXNjcmlwdCIsZnVuY3Rpb24oZSl7dmFyIHQ9e2tleXdvcmQ6ImluIGlmIGZvciB3aGlsZSBmaW5hbGx5IG5ldyBkbyByZXR1cm4gZWxzZSBicmVhayBjYXRjaCBpbnN0YW5jZW9mIHRocm93IHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlIGRlYnVnZ2VyIHN1cGVyIHRoZW4gdW5sZXNzIHVudGlsIGxvb3Agb2YgYnkgd2hlbiBhbmQgb3IgaXMgaXNudCBub3QiLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQgeWVzIG5vIG9uIG9mZiIscmVzZXJ2ZWQ6ImNhc2UgZGVmYXVsdCBmdW5jdGlvbiB2YXIgdm9pZCB3aXRoIGNvbnN0IGxldCBlbnVtIGV4cG9ydCBpbXBvcnQgbmF0aXZlIF9faGFzUHJvcCBfX2V4dGVuZHMgX19zbGljZSBfX2JpbmQgX19pbmRleE9mIixidWlsdF9pbjoibnBtIHJlcXVpcmUgY29uc29sZSBwcmludCBtb2R1bGUgZ2xvYmFsIHdpbmRvdyBkb2N1bWVudCJ9LHI9IltBLVphLXokX11bMC05QS1aYS16JF9dKiIsbj17Y046InN1YnN0IixiOi8jXHsvLGU6L30vLGs6dH0sYT1bZS5CTk0sZS5pbmhlcml0KGUuQ05NLHtzdGFydHM6e2U6IihcXHMqLyk/IixyOjB9fSkse2NOOiJzdHJpbmciLHY6W3tiOi8nJycvLGU6LycnJy8sYzpbZS5CRV19LHtiOi8nLyxlOi8nLyxjOltlLkJFXX0se2I6LyIiIi8sZTovIiIiLyxjOltlLkJFLG5dfSx7YjovIi8sZTovIi8sYzpbZS5CRSxuXX1dfSx7Y046InJlZ2V4cCIsdjpbe2I6Ii8vLyIsZToiLy8vIixjOltuLGUuSENNXX0se2I6Ii8vW2dpbV0qIixyOjB9LHtiOi9cLyg/IVsgKl0pKFxcXC98LikqP1wvW2dpbV0qKD89XFd8JCkvfV19LHtjTjoicHJvcGVydHkiLGI6IkAiK3J9LHtiOiJgIixlOiJgIixlQjohMCxlRTohMCxzTDoiamF2YXNjcmlwdCJ9XTtuLmM9YTt2YXIgaT1lLmluaGVyaXQoZS5UTSx7YjpyfSkscz0iKFxcKC4qXFwpKT9cXHMqXFxCWy09XT4iLGM9e2NOOiJwYXJhbXMiLGI6IlxcKFteXFwoXSIsckI6ITAsYzpbe2I6L1woLyxlOi9cKS8sazp0LGM6WyJzZWxmIl0uY29uY2F0KGEpfV19O3JldHVybnthbGlhc2VzOlsiY29mZmVlIiwiY3NvbiIsImljZWQiXSxrOnQsaTovXC9cKi8sYzphLmNvbmNhdChbe2NOOiJjb21tZW50IixiOiIjIyMiLGU6IiMjIyIsYzpbZS5QV01dfSxlLkhDTSx7Y046ImZ1bmN0aW9uIixiOiJeXFxzKiIrcisiXFxzKj1cXHMqIitzLGU6IlstPV0+IixyQjohMCxjOltpLGNdfSx7YjovWzpcKCw9XVxzKi8scjowLGM6W3tjTjoiZnVuY3Rpb24iLGI6cyxlOiJbLT1dPiIsckI6ITAsYzpbY119XX0se2NOOiJjbGFzcyIsYks6ImNsYXNzIixlOiIkIixpOi9bOj0iXFtcXV0vLGM6W3tiSzoiZXh0ZW5kcyIsZVc6ITAsaTovWzo9IlxbXF1dLyxjOltpXX0saV19LHtjTjoiYXR0cmlidXRlIixiOnIrIjoiLGU6IjoiLHJCOiEwLHJFOiEwLHI6MH1dKX19KSxobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImNwcCIsZnVuY3Rpb24oZSl7dmFyIHQ9e2tleXdvcmQ6ImZhbHNlIGludCBmbG9hdCB3aGlsZSBwcml2YXRlIGNoYXIgY2F0Y2ggZXhwb3J0IHZpcnR1YWwgb3BlcmF0b3Igc2l6ZW9mIGR5bmFtaWNfY2FzdHwxMCB0eXBlZGVmIGNvbnN0X2Nhc3R8MTAgY29uc3Qgc3RydWN0IGZvciBzdGF0aWNfY2FzdHwxMCB1bmlvbiBuYW1lc3BhY2UgdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgcHJvdGVjdGVkIGJvb2wgdGVtcGxhdGUgbXV0YWJsZSBpZiBwdWJsaWMgZnJpZW5kIGRvIGdvdG8gYXV0byB2b2lkIGVudW0gZWxzZSBicmVhayBleHRlcm4gdXNpbmcgdHJ1ZSBjbGFzcyBhc20gY2FzZSB0eXBlaWQgc2hvcnQgcmVpbnRlcnByZXRfY2FzdHwxMCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCBzaWduZWQgdHlwZW5hbWUgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHdjaGFyX3QgaW5saW5lIGRlbGV0ZSBhbGlnbm9mIGNoYXIxNl90IGNoYXIzMl90IGNvbnN0ZXhwciBkZWNsdHlwZSBub2V4Y2VwdCBudWxscHRyIHN0YXRpY19hc3NlcnQgdGhyZWFkX2xvY2FsIHJlc3RyaWN0IF9Cb29sIGNvbXBsZXggX0NvbXBsZXggX0ltYWdpbmFyeWludG1heF90IHVpbnRtYXhfdCBpbnQ4X3QgdWludDhfdCBpbnQxNl90IHVpbnQxNl90IGludDMyX3QgdWludDMyX3QgIGludDY0X3QgdWludDY0X3RpbnRfbGVhc3Q4X3QgdWludF9sZWFzdDhfdCBpbnRfbGVhc3QxNl90IHVpbnRfbGVhc3QxNl90IGludF9sZWFzdDMyX3QgdWludF9sZWFzdDMyX3RpbnRfbGVhc3Q2NF90IHVpbnRfbGVhc3Q2NF90IGludF9mYXN0OF90IHVpbnRfZmFzdDhfdCBpbnRfZmFzdDE2X3QgdWludF9mYXN0MTZfdCBpbnRfZmFzdDMyX3R1aW50X2Zhc3QzMl90IGludF9mYXN0NjRfdCB1aW50X2Zhc3Q2NF90IGludHB0cl90IHVpbnRwdHJfdCBhdG9taWNfYm9vbCBhdG9taWNfY2hhciBhdG9taWNfc2NoYXJhdG9taWNfdWNoYXIgYXRvbWljX3Nob3J0IGF0b21pY191c2hvcnQgYXRvbWljX2ludCBhdG9taWNfdWludCBhdG9taWNfbG9uZyBhdG9taWNfdWxvbmcgYXRvbWljX2xsb25nYXRvbWljX3VsbG9uZyBhdG9taWNfd2NoYXJfdCBhdG9taWNfY2hhcjE2X3QgYXRvbWljX2NoYXIzMl90IGF0b21pY19pbnRtYXhfdCBhdG9taWNfdWludG1heF90YXRvbWljX2ludHB0cl90IGF0b21pY191aW50cHRyX3QgYXRvbWljX3NpemVfdCBhdG9taWNfcHRyZGlmZl90IGF0b21pY19pbnRfbGVhc3Q4X3QgYXRvbWljX2ludF9sZWFzdDE2X3RhdG9taWNfaW50X2xlYXN0MzJfdCBhdG9taWNfaW50X2xlYXN0NjRfdCBhdG9taWNfdWludF9sZWFzdDhfdCBhdG9taWNfdWludF9sZWFzdDE2X3QgYXRvbWljX3VpbnRfbGVhc3QzMl90YXRvbWljX3VpbnRfbGVhc3Q2NF90IGF0b21pY19pbnRfZmFzdDhfdCBhdG9taWNfaW50X2Zhc3QxNl90IGF0b21pY19pbnRfZmFzdDMyX3QgYXRvbWljX2ludF9mYXN0NjRfdGF0b21pY191aW50X2Zhc3Q4X3QgYXRvbWljX3VpbnRfZmFzdDE2X3QgYXRvbWljX3VpbnRfZmFzdDMyX3QgYXRvbWljX3VpbnRfZmFzdDY0X3QiLGJ1aWx0X2luOiJzdGQgc3RyaW5nIGNpbiBjb3V0IGNlcnIgY2xvZyBzdHJpbmdzdHJlYW0gaXN0cmluZ3N0cmVhbSBvc3RyaW5nc3RyZWFtIGF1dG9fcHRyIGRlcXVlIGxpc3QgcXVldWUgc3RhY2sgdmVjdG9yIG1hcCBzZXQgYml0c2V0IG11bHRpc2V0IG11bHRpbWFwIHVub3JkZXJlZF9zZXQgdW5vcmRlcmVkX21hcCB1bm9yZGVyZWRfbXVsdGlzZXQgdW5vcmRlcmVkX211bHRpbWFwIGFycmF5IHNoYXJlZF9wdHIgYWJvcnQgYWJzIGFjb3MgYXNpbiBhdGFuMiBhdGFuIGNhbGxvYyBjZWlsIGNvc2ggY29zIGV4aXQgZXhwIGZhYnMgZmxvb3IgZm1vZCBmcHJpbnRmIGZwdXRzIGZyZWUgZnJleHAgZnNjYW5mIGlzYWxudW0gaXNhbHBoYSBpc2NudHJsIGlzZGlnaXQgaXNncmFwaCBpc2xvd2VyIGlzcHJpbnQgaXNwdW5jdCBpc3NwYWNlIGlzdXBwZXIgaXN4ZGlnaXQgdG9sb3dlciB0b3VwcGVyIGxhYnMgbGRleHAgbG9nMTAgbG9nIG1hbGxvYyBtZW1jaHIgbWVtY21wIG1lbWNweSBtZW1zZXQgbW9kZiBwb3cgcHJpbnRmIHB1dGNoYXIgcHV0cyBzY2FuZiBzaW5oIHNpbiBzbnByaW50ZiBzcHJpbnRmIHNxcnQgc3NjYW5mIHN0cmNhdCBzdHJjaHIgc3RyY21wIHN0cmNweSBzdHJjc3BuIHN0cmxlbiBzdHJuY2F0IHN0cm5jbXAgc3RybmNweSBzdHJwYnJrIHN0cnJjaHIgc3Ryc3BuIHN0cnN0ciB0YW5oIHRhbiB2ZnByaW50ZiB2cHJpbnRmIHZzcHJpbnRmIn07cmV0dXJue2FsaWFzZXM6WyJjIiwiaCIsImMrKyIsImgrKyJdLGs6dCxpOiI8LyIsYzpbZS5DTENNLGUuQ0JDTSxlLlFTTSx7Y046InN0cmluZyIsYjoiJ1xcXFw/LiIsZToiJyIsaToiLiJ9LHtjTjoibnVtYmVyIixiOiJcXGIoXFxkKyhcXC5cXGQqKT98XFwuXFxkKykodXxVfGx8THx1bHxVTHxmfEYpIn0sZS5DTk0se2NOOiJwcmVwcm9jZXNzb3IiLGI6IiMiLGU6IiQiLGs6ImlmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lIHByYWdtYSIsYzpbe2I6J2luY2x1ZGVcXHMqWzwiXScsZTonWz4iXScsazoiaW5jbHVkZSIsaToiXFxuIn0sZS5DTENNXX0se2NOOiJzdGxfY29udGFpbmVyIixiOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGU6Ij4iLGs6dCxjOlsic2VsZiJdfSx7YjplLklSKyI6OiJ9LHtiSzoibmV3IHRocm93IHJldHVybiIscjowfSx7Y046ImZ1bmN0aW9uIixiOiIoIitlLklSKyJcXHMrKSsiK2UuSVIrIlxccypcXCgiLHJCOiEwLGU6L1t7Oz1dLyxlRTohMCxrOnQsYzpbe2I6ZS5JUisiXFxzKlxcKCIsckI6ITAsYzpbZS5UTV0scjowfSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxrOnQscjowLGM6W2UuQ0JDTV19LGUuQ0xDTSxlLkNCQ01dfV19fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJjcyIsZnVuY3Rpb24oZSl7dmFyIHQ9ImFic3RyYWN0IGFzIGJhc2UgYm9vbCBicmVhayBieXRlIGNhc2UgY2F0Y2ggY2hhciBjaGVja2VkIGNvbnN0IGNvbnRpbnVlIGRlY2ltYWwgZGVmYXVsdCBkZWxlZ2F0ZSBkbyBkb3VibGUgZWxzZSBlbnVtIGV2ZW50IGV4cGxpY2l0IGV4dGVybiBmYWxzZSBmaW5hbGx5IGZpeGVkIGZsb2F0IGZvciBmb3JlYWNoIGdvdG8gaWYgaW1wbGljaXQgaW4gaW50IGludGVyZmFjZSBpbnRlcm5hbCBpcyBsb2NrIGxvbmcgbnVsbCBvYmplY3Qgb3BlcmF0b3Igb3V0IG92ZXJyaWRlIHBhcmFtcyBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgcmVhZG9ubHkgcmVmIHNieXRlIHNlYWxlZCBzaG9ydCBzaXplb2Ygc3RhY2thbGxvYyBzdGF0aWMgc3RyaW5nIHN0cnVjdCBzd2l0Y2ggdGhpcyB0cnVlIHRyeSB0eXBlb2YgdWludCB1bG9uZyB1bmNoZWNrZWQgdW5zYWZlIHVzaG9ydCB1c2luZyB2aXJ0dWFsIHZvbGF0aWxlIHZvaWQgd2hpbGUgYXN5bmMgcHJvdGVjdGVkIHB1YmxpYyBwcml2YXRlIGludGVybmFsIGFzY2VuZGluZyBkZXNjZW5kaW5nIGZyb20gZ2V0IGdyb3VwIGludG8gam9pbiBsZXQgb3JkZXJieSBwYXJ0aWFsIHNlbGVjdCBzZXQgdmFsdWUgdmFyIHdoZXJlIHlpZWxkIixyPWUuSVIrIig8IitlLklSKyI+KT8iO3JldHVybnthbGlhc2VzOlsiY3NoYXJwIl0sazp0LGk6Lzo6LyxjOlt7Y046ImNvbW1lbnQiLGI6Ii8vLyIsZToiJCIsckI6ITAsYzpbe2NOOiJ4bWxEb2NUYWciLHY6W3tiOiIvLy8iLHI6MH0se2I6IjwhLS18LS0+In0se2I6IjwvPyIsZToiPiJ9XX1dfSxlLkNMQ00sZS5DQkNNLHtjTjoicHJlcHJvY2Vzc29yIixiOiIjIixlOiIkIixrOiJpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSByZWdpb24gZW5kcmVnaW9uIHByYWdtYSBjaGVja3N1bSJ9LHtjTjoic3RyaW5nIixiOidAIicsZTonIicsYzpbe2I6JyIiJ31dfSxlLkFTTSxlLlFTTSxlLkNOTSx7Yks6ImNsYXNzIG5hbWVzcGFjZSBpbnRlcmZhY2UiLGU6L1t7Oz1dLyxpOi9bXlxzOl0vLGM6W2UuVE0sZS5DTENNLGUuQ0JDTV19LHtiSzoibmV3IHJldHVybiB0aHJvdyBhd2FpdCIscjowfSx7Y046ImZ1bmN0aW9uIixiOiIoIityKyJcXHMrKSsiK2UuSVIrIlxccypcXCgiLHJCOiEwLGU6L1t7Oz1dLyxlRTohMCxrOnQsYzpbe2I6ZS5JUisiXFxzKlxcKCIsckI6ITAsYzpbZS5UTV0scjowfSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxrOnQscjowLGM6W2UuQVNNLGUuUVNNLGUuQ05NLGUuQ0JDTV19LGUuQ0xDTSxlLkNCQ01dfV19fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJjc3MiLGZ1bmN0aW9uKGUpe3ZhciB0PSJbYS16QS1aLV1bYS16QS1aMC05Xy1dKiIscj17Y046ImZ1bmN0aW9uIixiOnQrIlxcKCIsckI6ITAsZUU6ITAsZToiXFwoIn07cmV0dXJue2NJOiEwLGk6Ils9L3wnXSIsYzpbZS5DQkNNLHtjTjoiaWQiLGI6IlxcI1tBLVphLXowLTlfLV0rIn0se2NOOiJjbGFzcyIsYjoiXFwuW0EtWmEtejAtOV8tXSsiLHI6MH0se2NOOiJhdHRyX3NlbGVjdG9yIixiOiJcXFsiLGU6IlxcXSIsaToiJCJ9LHtjTjoicHNldWRvIixiOiI6KDopP1thLXpBLVowLTlcXF9cXC1cXCtcXChcXClcXFwiXFwnXSsifSx7Y046ImF0X3J1bGUiLGI6IkAoZm9udC1mYWNlfHBhZ2UpIixsOiJbYS16LV0rIixrOiJmb250LWZhY2UgcGFnZSJ9LHtjTjoiYXRfcnVsZSIsYjoiQCIsZToiW3s7XSIsYzpbe2NOOiJrZXl3b3JkIixiOi9cUysvfSx7YjovXHMvLGVXOiEwLGVFOiEwLHI6MCxjOltyLGUuQVNNLGUuUVNNLGUuQ1NTTk1dfV19LHtjTjoidGFnIixiOnQscjowfSx7Y046InJ1bGVzIixiOiJ7IixlOiJ9IixpOiJbXlxcc10iLHI6MCxjOltlLkNCQ00se2NOOiJydWxlIixiOiJbXlxcc10iLHJCOiEwLGU6IjsiLGVXOiEwLGM6W3tjTjoiYXR0cmlidXRlIixiOiJbQS1aXFxfXFwuXFwtXSsiLGU6IjoiLGVFOiEwLGk6IlteXFxzXSIsc3RhcnRzOntjTjoidmFsdWUiLGVXOiEwLGVFOiEwLGM6W3IsZS5DU1NOTSxlLlFTTSxlLkFTTSxlLkNCQ00se2NOOiJoZXhjb2xvciIsYjoiI1swLTlBLUZhLWZdKyJ9LHtjTjoiaW1wb3J0YW50IixiOiIhaW1wb3J0YW50In1dfX1dfV19XX19KSxobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImRpZmYiLGZ1bmN0aW9uKCl7cmV0dXJue2FsaWFzZXM6WyJwYXRjaCJdLGM6W3tjTjoiY2h1bmsiLHI6MTAsdjpbe2I6L15cQFxAICtcLVxkKyxcZCsgK1wrXGQrLFxkKyArXEBcQCQvfSx7YjovXlwqXCpcKiArXGQrLFxkKyArXCpcKlwqXCokL30se2I6L15cLVwtXC0gK1xkKyxcZCsgK1wtXC1cLVwtJC99XX0se2NOOiJoZWFkZXIiLHY6W3tiOi9JbmRleDogLyxlOi8kL30se2I6Lz09PT09LyxlOi89PT09PSQvfSx7YjovXlwtXC1cLS8sZTovJC99LHtiOi9eXCp7M30gLyxlOi8kL30se2I6L15cK1wrXCsvLGU6LyQvfSx7YjovXCp7NX0vLGU6L1wqezV9JC99XX0se2NOOiJhZGRpdGlvbiIsYjoiXlxcKyIsZToiJCJ9LHtjTjoiZGVsZXRpb24iLGI6Il5cXC0iLGU6IiQifSx7Y046ImNoYW5nZSIsYjoiXlxcISIsZToiJCJ9XX19KSxobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImh0dHAiLGZ1bmN0aW9uKCl7cmV0dXJue2k6IlxcUyIsYzpbe2NOOiJzdGF0dXMiLGI6Il5IVFRQL1swLTlcXC5dKyIsZToiJCIsYzpbe2NOOiJudW1iZXIiLGI6IlxcYlxcZHszfVxcYiJ9XX0se2NOOiJyZXF1ZXN0IixiOiJeW0EtWl0rICguKj8pIEhUVFAvWzAtOVxcLl0rJCIsckI6ITAsZToiJCIsYzpbe2NOOiJzdHJpbmciLGI6IiAiLGU6IiAiLGVCOiEwLGVFOiEwfV19LHtjTjoiYXR0cmlidXRlIixiOiJeXFx3IixlOiI6ICIsZUU6ITAsaToiXFxufFxcc3w9IixzdGFydHM6e2NOOiJzdHJpbmciLGU6IiQifX0se2I6IlxcblxcbiIsc3RhcnRzOntzTDoiIixlVzohMH19XX19KSxobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImluaSIsZnVuY3Rpb24oZSl7cmV0dXJue2NJOiEwLGk6L1xTLyxjOlt7Y046ImNvbW1lbnQiLGI6IjsiLGU6IiQifSx7Y046InRpdGxlIixiOiJeXFxbIixlOiJcXF0ifSx7Y046InNldHRpbmciLGI6Il5bYS16MC05XFxbXFxdXy1dK1sgXFx0XSo9WyBcXHRdKiIsZToiJCIsYzpbe2NOOiJ2YWx1ZSIsZVc6ITAsazoib24gb2ZmIHRydWUgZmFsc2UgeWVzIG5vIixjOltlLlFTTSxlLk5NXSxyOjB9XX1dfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgiamF2YSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5VSVIrIig8IitlLlVJUisiPik/IixyPSJmYWxzZSBzeW5jaHJvbml6ZWQgaW50IGFic3RyYWN0IGZsb2F0IHByaXZhdGUgY2hhciBib29sZWFuIHN0YXRpYyBudWxsIGlmIGNvbnN0IGZvciB0cnVlIHdoaWxlIGxvbmcgc3RyaWN0ZnAgZmluYWxseSBwcm90ZWN0ZWQgaW1wb3J0IG5hdGl2ZSBmaW5hbCB2b2lkIGVudW0gZWxzZSBicmVhayB0cmFuc2llbnQgY2F0Y2ggaW5zdGFuY2VvZiBieXRlIHN1cGVyIHZvbGF0aWxlIGNhc2UgYXNzZXJ0IHNob3J0IHBhY2thZ2UgZGVmYXVsdCBkb3VibGUgcHVibGljIHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0aHJvd3MgcHJvdGVjdGVkIHB1YmxpYyBwcml2YXRlIixuPSIoXFxiKDBiWzAxX10rKXxcXGIwW3hYXVthLWZBLUYwLTlfXSt8KFxcYltcXGRfXSsoXFwuW1xcZF9dKik/fFxcLltcXGRfXSspKFtlRV1bLStdP1xcZCspPylbbExmRl0/IixhPXtjTjoibnVtYmVyIixiOm4scjowfTtyZXR1cm57YWxpYXNlczpbImpzcCJdLGs6cixpOi88XC8vLGM6W3tjTjoiamF2YWRvYyIsYjoiL1xcKlxcKiIsZToiXFwqLyIscjowLGM6W3tjTjoiamF2YWRvY3RhZyIsYjoiKF58XFxzKUBbQS1aYS16XSsifV19LGUuQ0xDTSxlLkNCQ00sZS5BU00sZS5RU00se2NOOiJjbGFzcyIsYks6ImNsYXNzIGludGVyZmFjZSIsZTovW3s7PV0vLGVFOiEwLGs6ImNsYXNzIGludGVyZmFjZSIsaTovWzoiXFtcXV0vLGM6W3tiSzoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sZS5VVE1dfSx7Yks6Im5ldyB0aHJvdyByZXR1cm4iLHI6MH0se2NOOiJmdW5jdGlvbiIsYjoiKCIrdCsiXFxzKykrIitlLlVJUisiXFxzKlxcKCIsckI6ITAsZTovW3s7PV0vLGVFOiEwLGs6cixjOlt7YjplLlVJUisiXFxzKlxcKCIsckI6ITAscjowLGM6W2UuVVRNXX0se2NOOiJwYXJhbXMiLGI6L1woLyxlOi9cKS8sazpyLHI6MCxjOltlLkFTTSxlLlFTTSxlLkNOTSxlLkNCQ01dfSxlLkNMQ00sZS5DQkNNXX0sYSx7Y046ImFubm90YXRpb24iLGI6IkBbQS1aYS16XSsifV19fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJqYXZhc2NyaXB0IixmdW5jdGlvbihlKXtyZXR1cm57YWxpYXNlczpbImpzIl0sazp7a2V5d29yZDoiaW4gaWYgZm9yIHdoaWxlIGZpbmFsbHkgdmFyIG5ldyBmdW5jdGlvbiBkbyByZXR1cm4gdm9pZCBlbHNlIGJyZWFrIGNhdGNoIGluc3RhbmNlb2Ygd2l0aCB0aHJvdyBjYXNlIGRlZmF1bHQgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHR5cGVvZiBkZWxldGUgbGV0IHlpZWxkIGNvbnN0IGNsYXNzIixsaXRlcmFsOiJ0cnVlIGZhbHNlIG51bGwgdW5kZWZpbmVkIE5hTiBJbmZpbml0eSIsYnVpbHRfaW46ImV2YWwgaXNGaW5pdGUgaXNOYU4gcGFyc2VGbG9hdCBwYXJzZUludCBkZWNvZGVVUkkgZGVjb2RlVVJJQ29tcG9uZW50IGVuY29kZVVSSSBlbmNvZGVVUklDb21wb25lbnQgZXNjYXBlIHVuZXNjYXBlIE9iamVjdCBGdW5jdGlvbiBCb29sZWFuIEVycm9yIEV2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciBUeXBlRXJyb3IgVVJJRXJyb3IgTnVtYmVyIE1hdGggRGF0ZSBTdHJpbmcgUmVnRXhwIEFycmF5IEZsb2F0MzJBcnJheSBGbG9hdDY0QXJyYXkgSW50MTZBcnJheSBJbnQzMkFycmF5IEludDhBcnJheSBVaW50MTZBcnJheSBVaW50MzJBcnJheSBVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSBtb2R1bGUgY29uc29sZSB3aW5kb3cgZG9jdW1lbnQifSxjOlt7Y046InBpIixyOjEwLHY6W3tiOi9eXHMqKCd8Iil1c2Ugc3RyaWN0KCd8IikvfSx7YjovXlxzKignfCIpdXNlIGFzbSgnfCIpL31dfSxlLkFTTSxlLlFTTSxlLkNMQ00sZS5DQkNNLGUuQ05NLHtiOiIoIitlLlJTUisifFxcYihjYXNlfHJldHVybnx0aHJvdylcXGIpXFxzKiIsazoicmV0dXJuIHRocm93IGNhc2UiLGM6W2UuQ0xDTSxlLkNCQ00sZS5STSx7YjovPC8sZTovPjsvLHI6MCxzTDoieG1sIn1dLHI6MH0se2NOOiJmdW5jdGlvbiIsYks6ImZ1bmN0aW9uIixlOi9cey8sZUU6ITAsYzpbZS5pbmhlcml0KGUuVE0se2I6L1tBLVphLXokX11bMC05QS1aYS16JF9dKi99KSx7Y046InBhcmFtcyIsYjovXCgvLGU6L1wpLyxjOltlLkNMQ00sZS5DQkNNXSxpOi9bIidcKF0vfV0saTovXFt8JS99LHtiOi9cJFsoLl0vfSx7YjoiXFwuIitlLklSLHI6MH1dfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgianNvbiIsZnVuY3Rpb24oZSl7dmFyIHQ9e2xpdGVyYWw6InRydWUgZmFsc2UgbnVsbCJ9LHI9W2UuUVNNLGUuQ05NXSxuPXtjTjoidmFsdWUiLGU6IiwiLGVXOiEwLGVFOiEwLGM6cixrOnR9LGE9e2I6InsiLGU6In0iLGM6W3tjTjoiYXR0cmlidXRlIixiOidcXHMqIicsZTonIlxccyo6XFxzKicsZUI6ITAsZUU6ITAsYzpbZS5CRV0saToiXFxuIixzdGFydHM6bn1dLGk6IlxcUyJ9LGk9e2I6IlxcWyIsZToiXFxdIixjOltlLmluaGVyaXQobix7Y046bnVsbH0pXSxpOiJcXFMifTtyZXR1cm4gci5zcGxpY2Uoci5sZW5ndGgsMCxhLGkpLHtjOnIsazp0LGk6IlxcUyJ9fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJtYWtlZmlsZSIsZnVuY3Rpb24oZSl7dmFyIHQ9e2NOOiJ2YXJpYWJsZSIsYjovXCRcKC8sZTovXCkvLGM6W2UuQkVdfTtyZXR1cm57YWxpYXNlczpbIm1rIiwibWFrIl0sYzpbZS5IQ00se2I6L15cdytccypcVyo9LyxyQjohMCxyOjAsc3RhcnRzOntjTjoiY29uc3RhbnQiLGU6L1xzKlxXKj0vLGVFOiEwLHN0YXJ0czp7ZTovJC8scjowLGM6W3RdfX19LHtjTjoidGl0bGUiLGI6L15bXHddKzpccyokL30se2NOOiJwaG9ueSIsYjovXlwuUEhPTlk6LyxlOi8kLyxrOiIuUEhPTlkiLGw6L1tcLlx3XSsvfSx7YjovXlx0Ky8sZTovJC8scjowLGM6W2UuUVNNLHRdfV19fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJ4bWwiLGZ1bmN0aW9uKCl7dmFyIGU9IltBLVphLXowLTlcXC5fOi1dKyIsdD17YjovPFw/KHBocCk/KD8hXHcpLyxlOi9cPz4vLHNMOiJwaHAiLHN1Ykxhbmd1YWdlTW9kZToiY29udGludW91cyJ9LHI9e2VXOiEwLGk6LzwvLHI6MCxjOlt0LHtjTjoiYXR0cmlidXRlIixiOmUscjowfSx7YjoiPSIscjowLGM6W3tjTjoidmFsdWUiLGM6W3RdLHY6W3tiOi8iLyxlOi8iL30se2I6LycvLGU6LycvfSx7YjovW15cc1wvPl0rL31dfV19XX07cmV0dXJue2FsaWFzZXM6WyJodG1sIiwieGh0bWwiLCJyc3MiLCJhdG9tIiwieHNsIiwicGxpc3QiXSxjSTohMCxjOlt7Y046ImRvY3R5cGUiLGI6IjwhRE9DVFlQRSIsZToiPiIscjoxMCxjOlt7YjoiXFxbIixlOiJcXF0ifV19LHtjTjoiY29tbWVudCIsYjoiPCEtLSIsZToiLS0+IixyOjEwfSx7Y046ImNkYXRhIixiOiI8XFwhXFxbQ0RBVEFcXFsiLGU6IlxcXVxcXT4iLHI6MTB9LHtjTjoidGFnIixiOiI8c3R5bGUoPz1cXHN8PnwkKSIsZToiPiIsazp7dGl0bGU6InN0eWxlIn0sYzpbcl0sc3RhcnRzOntlOiI8L3N0eWxlPiIsckU6ITAsc0w6ImNzcyJ9fSx7Y046InRhZyIsYjoiPHNjcmlwdCg/PVxcc3w+fCQpIixlOiI+IixrOnt0aXRsZToic2NyaXB0In0sYzpbcl0sc3RhcnRzOntlOiI8L3NjcmlwdD4iLHJFOiEwLHNMOiJqYXZhc2NyaXB0In19LHQse2NOOiJwaSIsYjovPFw/XHcrLyxlOi9cPz4vLHI6MTB9LHtjTjoidGFnIixiOiI8Lz8iLGU6Ii8/PiIsYzpbe2NOOiJ0aXRsZSIsYjovW14gXC8+PFxuXHRdKy8scjowfSxyXX1dfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgibWFya2Rvd24iLGZ1bmN0aW9uKCl7cmV0dXJue2FsaWFzZXM6WyJtZCIsIm1rZG93biIsIm1rZCJdLGM6W3tjTjoiaGVhZGVyIix2Olt7YjoiXiN7MSw2fSIsZToiJCJ9LHtiOiJeLis/XFxuWz0tXXsyLH0kIn1dfSx7YjoiPCIsZToiPiIsc0w6InhtbCIscjowfSx7Y046ImJ1bGxldCIsYjoiXihbKistXXwoXFxkK1xcLikpXFxzKyJ9LHtjTjoic3Ryb25nIixiOiJbKl9dezJ9Lis/WypfXXsyfSJ9LHtjTjoiZW1waGFzaXMiLHY6W3tiOiJcXCouKz9cXCoifSx7YjoiXy4rP18iLHI6MH1dfSx7Y046ImJsb2NrcXVvdGUiLGI6Il4+XFxzKyIsZToiJCJ9LHtjTjoiY29kZSIsdjpbe2I6ImAuKz9gIn0se2I6Il4oIHs0fXwJKSIsZToiJCIscjowfV19LHtjTjoiaG9yaXpvbnRhbF9ydWxlIixiOiJeWy1cXCpdezMsfSIsZToiJCJ9LHtiOiJcXFsuKz9cXF1bXFwoXFxbXS4qP1tcXClcXF1dIixyQjohMCxjOlt7Y046ImxpbmtfbGFiZWwiLGI6IlxcWyIsZToiXFxdIixlQjohMCxyRTohMCxyOjB9LHtjTjoibGlua191cmwiLGI6IlxcXVxcKCIsZToiXFwpIixlQjohMCxlRTohMH0se2NOOiJsaW5rX3JlZmVyZW5jZSIsYjoiXFxdXFxbIixlOiJcXF0iLGVCOiEwLGVFOiEwfV0scjoxMH0se2I6Il5cXFsuK1xcXToiLHJCOiEwLGM6W3tjTjoibGlua19yZWZlcmVuY2UiLGI6IlxcWyIsZToiXFxdOiIsZUI6ITAsZUU6ITAsc3RhcnRzOntjTjoibGlua191cmwiLGU6IiQifX1dfV19fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJuZ2lueCIsZnVuY3Rpb24oZSl7dmFyIHQ9e2NOOiJ2YXJpYWJsZSIsdjpbe2I6L1wkXGQrL30se2I6L1wkXHsvLGU6L30vfSx7YjoiW1xcJFxcQF0iK2UuVUlSfV19LHI9e2VXOiEwLGw6IlthLXovX10rIixrOntidWlsdF9pbjoib24gb2ZmIHllcyBubyB0cnVlIGZhbHNlIG5vbmUgYmxvY2tlZCBkZWJ1ZyBpbmZvIG5vdGljZSB3YXJuIGVycm9yIGNyaXQgc2VsZWN0IGJyZWFrIGxhc3QgcGVybWFuZW50IHJlZGlyZWN0IGtxdWV1ZSBydHNpZyBlcG9sbCBwb2xsIC9kZXYvcG9sbCJ9LHI6MCxpOiI9PiIsYzpbZS5IQ00se2NOOiJzdHJpbmciLGM6W2UuQkUsdF0sdjpbe2I6LyIvLGU6LyIvfSx7YjovJy8sZTovJy99XX0se2NOOiJ1cmwiLGI6IihbYS16XSspOi8iLGU6IlxccyIsZVc6ITAsZUU6ITAsYzpbdF19LHtjTjoicmVnZXhwIixjOltlLkJFLHRdLHY6W3tiOiJcXHNcXF4iLGU6Ilxcc3x7fDsiLHJFOiEwfSx7YjoiflxcKj9cXHMrIixlOiJcXHN8e3w7IixyRTohMH0se2I6IlxcKihcXC5bYS16XFwtXSspKyJ9LHtiOiIoW2EtelxcLV0rXFwuKStcXCoifV19LHtjTjoibnVtYmVyIixiOiJcXGJcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSg6XFxkezEsNX0pP1xcYiJ9LHtjTjoibnVtYmVyIixiOiJcXGJcXGQrW2tLbU1nR2RzaGR3eV0qXFxiIixyOjB9LHRdfTtyZXR1cm57YWxpYXNlczpbIm5naW54Y29uZiJdLGM6W2UuSENNLHtiOmUuVUlSKyJcXHMiLGU6Ijt8eyIsckI6ITAsYzpbe2NOOiJ0aXRsZSIsYjplLlVJUixzdGFydHM6cn1dLHI6MH1dLGk6IlteXFxzXFx9XSJ9fSksaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCJvYmplY3RpdmVjIixmdW5jdGlvbihlKXt2YXIgdD17a2V5d29yZDoiaW50IGZsb2F0IHdoaWxlIGNoYXIgZXhwb3J0IHNpemVvZiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBmb3IgdW5pb24gdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgYm9vbCBtdXRhYmxlIGlmIGRvIHJldHVybiBnb3RvIHZvaWQgZW51bSBlbHNlIGJyZWFrIGV4dGVybiBhc20gY2FzZSBzaG9ydCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCBzaWduZWQgdHlwZW5hbWUgdGhpcyBzd2l0Y2ggY29udGludWUgd2NoYXJfdCBpbmxpbmUgcmVhZG9ubHkgYXNzaWduIHJlYWR3cml0ZSBzZWxmIEBzeW5jaHJvbml6ZWQgaWQgdHlwZW9mIG5vbmF0b21pYyBzdXBlciB1bmljaGFyIElCT3V0bGV0IElCQWN0aW9uIHN0cm9uZyB3ZWFrIGNvcHkgaW4gb3V0IGlub3V0IGJ5Y29weSBieXJlZiBvbmV3YXkgX19zdHJvbmcgX193ZWFrIF9fYmxvY2sgX19hdXRvcmVsZWFzaW5nIEBwcml2YXRlIEBwcm90ZWN0ZWQgQHB1YmxpYyBAdHJ5IEBwcm9wZXJ0eSBAZW5kIEB0aHJvdyBAY2F0Y2ggQGZpbmFsbHkgQGF1dG9yZWxlYXNlcG9vbCBAc3ludGhlc2l6ZSBAZHluYW1pYyBAc2VsZWN0b3IgQG9wdGlvbmFsIEByZXF1aXJlZCIsbGl0ZXJhbDoiZmFsc2UgdHJ1ZSBGQUxTRSBUUlVFIG5pbCBZRVMgTk8gTlVMTCIsYnVpbHRfaW46Ik5TU3RyaW5nIE5TRGF0YSBOU0RpY3Rpb25hcnkgQ0dSZWN0IENHUG9pbnQgVUlCdXR0b24gVUlMYWJlbCBVSVRleHRWaWV3IFVJV2ViVmlldyBNS01hcFZpZXcgTlNWaWV3IE5TVmlld0NvbnRyb2xsZXIgTlNXaW5kb3cgTlNXaW5kb3dDb250cm9sbGVyIE5TU2V0IE5TVVVJRCBOU0luZGV4U2V0IFVJU2VnbWVudGVkQ29udHJvbCBOU09iamVjdCBVSVRhYmxlVmlld0RlbGVnYXRlIFVJVGFibGVWaWV3RGF0YVNvdXJjZSBOU1RocmVhZCBVSUFjdGl2aXR5SW5kaWNhdG9yIFVJVGFiYmFyIFVJVG9vbEJhciBVSUJhckJ1dHRvbkl0ZW0gVUlJbWFnZVZpZXcgTlNBdXRvcmVsZWFzZVBvb2wgVUlUYWJsZVZpZXcgQk9PTCBOU0ludGVnZXIgQ0dGbG9hdCBOU0V4Y2VwdGlvbiBOU0xvZyBOU011dGFibGVTdHJpbmcgTlNNdXRhYmxlQXJyYXkgTlNNdXRhYmxlRGljdGlvbmFyeSBOU1VSTCBOU0luZGV4UGF0aCBDR1NpemUgVUlUYWJsZVZpZXdDZWxsIFVJVmlldyBVSVZpZXdDb250cm9sbGVyIFVJTmF2aWdhdGlvbkJhciBVSU5hdmlnYXRpb25Db250cm9sbGVyIFVJVGFiQmFyQ29udHJvbGxlciBVSVBvcG92ZXJDb250cm9sbGVyIFVJUG9wb3ZlckNvbnRyb2xsZXJEZWxlZ2F0ZSBVSUltYWdlIE5TTnVtYmVyIFVJU2VhcmNoQmFyIE5TRmV0Y2hlZFJlc3VsdHNDb250cm9sbGVyIE5TRmV0Y2hlZFJlc3VsdHNDaGFuZ2VUeXBlIFVJU2Nyb2xsVmlldyBVSVNjcm9sbFZpZXdEZWxlZ2F0ZSBVSUVkZ2VJbnNldHMgVUlDb2xvciBVSUZvbnQgVUlBcHBsaWNhdGlvbiBOU05vdEZvdW5kIE5TTm90aWZpY2F0aW9uQ2VudGVyIE5TTm90aWZpY2F0aW9uIFVJTG9jYWxOb3RpZmljYXRpb24gTlNCdW5kbGUgTlNGaWxlTWFuYWdlciBOU1RpbWVJbnRlcnZhbCBOU0RhdGUgTlNDYWxlbmRhciBOU1VzZXJEZWZhdWx0cyBVSVdpbmRvdyBOU1JhbmdlIE5TQXJyYXkgTlNFcnJvciBOU1VSTFJlcXVlc3QgTlNVUkxDb25uZWN0aW9uIE5TVVJMU2Vzc2lvbiBOU1VSTFNlc3Npb25EYXRhVGFzayBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sgTlNVUkxTZXNzaW9uVXBsb2FkVGFzayBOU1VSTFJlc3BvbnNlVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBNUE1vdmllUGxheWVyQ29udHJvbGxlciBkaXNwYXRjaF9vbmNlX3QgZGlzcGF0Y2hfcXVldWVfdCBkaXNwYXRjaF9zeW5jIGRpc3BhdGNoX2FzeW5jIGRpc3BhdGNoX29uY2UifSxyPS9bYS16QS1aQF1bYS16QS1aMC05X10qLyxuPSJAaW50ZXJmYWNlIEBjbGFzcyBAcHJvdG9jb2wgQGltcGxlbWVudGF0aW9uIjtyZXR1cm57YWxpYXNlczpbIm0iLCJtbSIsIm9iamMiLCJvYmotYyJdLGs6dCxsOnIsaToiPC8iLGM6W2UuQ0xDTSxlLkNCQ00sZS5DTk0sZS5RU00se2NOOiJzdHJpbmciLHY6W3tiOidAIicsZTonIicsaToiXFxuIixjOltlLkJFXX0se2I6IiciLGU6IlteXFxcXF0nIixpOiJbXlxcXFxdW14nXSJ9XX0se2NOOiJwcmVwcm9jZXNzb3IiLGI6IiMiLGU6IiQiLGM6W3tjTjoidGl0bGUiLHY6W3tiOiciJyxlOiciJ30se2I6IjwiLGU6Ij4ifV19XX0se2NOOiJjbGFzcyIsYjoiKCIrbi5zcGxpdCgiICIpLmpvaW4oInwiKSsiKVxcYiIsZToiKHt8JCkiLGVFOiEwLGs6bixsOnIsYzpbZS5VVE1dfSx7Y046InZhcmlhYmxlIixiOiJcXC4iK2UuVUlSLHI6MH1dfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgicGVybCIsZnVuY3Rpb24oZSl7dmFyIHQ9ImdldHB3ZW50IGdldHNlcnZlbnQgcXVvdGVtZXRhIG1zZ3JjdiBzY2FsYXIga2lsbCBkYm1jbG9zZSB1bmRlZiBsYyBtYSBzeXN3cml0ZSB0ciBzZW5kIHVtYXNrIHN5c29wZW4gc2htd3JpdGUgdmVjIHF4IHV0aW1lIGxvY2FsIG9jdCBzZW1jdGwgbG9jYWx0aW1lIHJlYWRwaXBlIGRvIHJldHVybiBmb3JtYXQgcmVhZCBzcHJpbnRmIGRibW9wZW4gcG9wIGdldHBncnAgbm90IGdldHB3bmFtIHJld2luZGRpciBxcWZpbGVubyBxdyBlbmRwcm90b2VudCB3YWl0IHNldGhvc3RlbnQgYmxlc3Mgc3wwIG9wZW5kaXIgY29udGludWUgZWFjaCBzbGVlcCBlbmRncmVudCBzaHV0ZG93biBkdW1wIGNob21wIGNvbm5lY3QgZ2V0c29ja25hbWUgZGllIHNvY2tldHBhaXIgY2xvc2UgZmxvY2sgZXhpc3RzIGluZGV4IHNobWdldHN1YiBmb3IgZW5kcHdlbnQgcmVkbyBsc3RhdCBtc2djdGwgc2V0cGdycCBhYnMgZXhpdCBzZWxlY3QgcHJpbnQgcmVmIGdldGhvc3RieWFkZHIgdW5zaGlmdCBmY250bCBzeXNjYWxsIGdvdG8gZ2V0bmV0YnlhZGRyIGpvaW4gZ210aW1lIHN5bWxpbmsgc2VtZ2V0IHNwbGljZSB4fDAgZ2V0cGVlcm5hbWUgcmVjdiBsb2cgc2V0c29ja29wdCBjb3MgbGFzdCByZXZlcnNlIGdldGhvc3RieW5hbWUgZ2V0Z3JuYW0gc3R1ZHkgZm9ybWxpbmUgZW5kaG9zdGVudCB0aW1lcyBjaG9wIGxlbmd0aCBnZXRob3N0ZW50IGdldG5ldGVudCBwYWNrIGdldHByb3RvZW50IGdldHNlcnZieW5hbWUgcmFuZCBta2RpciBwb3MgY2htb2QgeXwwIHN1YnN0ciBlbmRuZXRlbnQgcHJpbnRmIG5leHQgb3BlbiBtc2dzbmQgcmVhZGRpciB1c2UgdW5saW5rIGdldHNvY2tvcHQgZ2V0cHJpb3JpdHkgcmluZGV4IHdhbnRhcnJheSBoZXggc3lzdGVtIGdldHNlcnZieXBvcnQgZW5kc2VydmVudCBpbnQgY2hyIHVudGllIHJtZGlyIHByb3RvdHlwZSB0ZWxsIGxpc3RlbiBmb3JrIHNobXJlYWQgdWNmaXJzdCBzZXRwcm90b2VudCBlbHNlIHN5c3NlZWsgbGluayBnZXRncmdpZCBzaG1jdGwgd2FpdHBpZCB1bnBhY2sgZ2V0bmV0YnluYW1lIHJlc2V0IGNoZGlyIGdyZXAgc3BsaXQgcmVxdWlyZSBjYWxsZXIgbGNmaXJzdCB1bnRpbCB3YXJuIHdoaWxlIHZhbHVlcyBzaGlmdCB0ZWxsZGlyIGdldHB3dWlkIG15IGdldHByb3RvYnludW1iZXIgZGVsZXRlIGFuZCBzb3J0IHVjIGRlZmluZWQgc3JhbmQgYWNjZXB0IHBhY2thZ2Ugc2Vla2RpciBnZXRwcm90b2J5bmFtZSBzZW1vcCBvdXIgcmVuYW1lIHNlZWsgaWYgcXwwIGNocm9vdCBzeXNyZWFkIHNldHB3ZW50IG5vIGNyeXB0IGdldGMgY2hvd24gc3FydCB3cml0ZSBzZXRuZXRlbnQgc2V0cHJpb3JpdHkgZm9yZWFjaCB0aWUgc2luIG1zZ2dldCBtYXAgc3RhdCBnZXRsb2dpbiB1bmxlc3MgZWxzaWYgdHJ1bmNhdGUgZXhlYyBrZXlzIGdsb2IgdGllZCBjbG9zZWRpcmlvY3RsIHNvY2tldCByZWFkbGluayBldmFsIHhvciByZWFkbGluZSBiaW5tb2RlIHNldHNlcnZlbnQgZW9mIG9yZCBiaW5kIGFsYXJtIHBpcGUgYXRhbjIgZ2V0Z3JlbnQgZXhwIHRpbWUgcHVzaCBzZXRncmVudCBndCBsdCBvciBuZSBtfDAgYnJlYWsgZ2l2ZW4gc2F5IHN0YXRlIHdoZW4iLHI9e2NOOiJzdWJzdCIsYjoiWyRAXVxceyIsZToiXFx9IixrOnR9LG49e2I6Ii0+eyIsZToifSJ9LGE9e2NOOiJ2YXJpYWJsZSIsdjpbe2I6L1wkXGQvfSx7YjovW1wkXCVcQF0oXF5cd1xifCNcdysoXDpcOlx3KykqfHtcdyt9fFx3KyhcOlw6XHcqKSopL30se2I6L1tcJFwlXEBdW15cc1x3e10vLHI6MH1dfSxpPXtjTjoiY29tbWVudCIsYjoiXihfX0VORF9ffF9fREFUQV9fKSIsZToiXFxuJCIscjo1fSxzPVtlLkJFLHIsYV0sYz1bYSxlLkhDTSxpLHtjTjoiY29tbWVudCIsYjoiXlxcPVxcdyIsZToiXFw9Y3V0IixlVzohMH0sbix7Y046InN0cmluZyIsYzpzLHY6W3tiOiJxW3F3eHJdP1xccypcXCgiLGU6IlxcKSIscjo1fSx7YjoicVtxd3hyXT9cXHMqXFxbIixlOiJcXF0iLHI6NX0se2I6InFbcXd4cl0/XFxzKlxceyIsZToiXFx9IixyOjV9LHtiOiJxW3F3eHJdP1xccypcXHwiLGU6IlxcfCIscjo1fSx7YjoicVtxd3hyXT9cXHMqXFw8IixlOiJcXD4iLHI6NX0se2I6InF3XFxzK3EiLGU6InEiLHI6NX0se2I6IiciLGU6IiciLGM6W2UuQkVdfSx7YjonIicsZTonIid9LHtiOiJgIixlOiJgIixjOltlLkJFXX0se2I6IntcXHcrfSIsYzpbXSxyOjB9LHtiOiItP1xcdytcXHMqXFw9XFw+IixjOltdLHI6MH1dfSx7Y046Im51bWJlciIsYjoiKFxcYjBbMC03X10rKXwoXFxiMHhbMC05YS1mQS1GX10rKXwoXFxiWzEtOV1bMC05X10qKFxcLlswLTlfXSspPyl8WzBfXVxcYiIscjowfSx7YjoiKFxcL1xcL3wiK2UuUlNSKyJ8XFxiKHNwbGl0fHJldHVybnxwcmludHxyZXZlcnNlfGdyZXApXFxiKVxccyoiLGs6InNwbGl0IHJldHVybiBwcmludCByZXZlcnNlIGdyZXAiLHI6MCxjOltlLkhDTSxpLHtjTjoicmVnZXhwIixiOiIoc3x0cnx5KS8oXFxcXC58W14vXSkqLyhcXFxcLnxbXi9dKSovW2Etel0qIixyOjEwfSx7Y046InJlZ2V4cCIsYjoiKG18cXIpPy8iLGU6Ii9bYS16XSoiLGM6W2UuQkVdLHI6MH1dfSx7Y046InN1YiIsYks6InN1YiIsZToiKFxccypcXCguKj9cXCkpP1s7e10iLHI6NX0se2NOOiJvcGVyYXRvciIsYjoiLVxcd1xcYiIscjowfV07cmV0dXJuIHIuYz1jLG4uYz1jLHthbGlhc2VzOlsicGwiXSxrOnQsYzpjfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgicGhwIixmdW5jdGlvbihlKXt2YXIgdD17Y046InZhcmlhYmxlIixiOiJcXCQrW2EtekEtWl9/LcO/XVthLXpBLVowLTlffy3Dv10qIn0scj17Y046InByZXByb2Nlc3NvciIsYjovPFw/KHBocCk/fFw/Pi99LG49e2NOOiJzdHJpbmciLGM6W2UuQkUscl0sdjpbe2I6J2IiJyxlOiciJ30se2I6ImInIixlOiInIn0sZS5pbmhlcml0KGUuQVNNLHtpOm51bGx9KSxlLmluaGVyaXQoZS5RU00se2k6bnVsbH0pXX0sYT17djpbZS5CTk0sZS5DTk1dfTtyZXR1cm57YWxpYXNlczpbInBocDMiLCJwaHA0IiwicGhwNSIsInBocDYiXSxjSTohMCxrOiJhbmQgaW5jbHVkZV9vbmNlIGxpc3QgYWJzdHJhY3QgZ2xvYmFsIHByaXZhdGUgZWNobyBpbnRlcmZhY2UgYXMgc3RhdGljIGVuZHN3aXRjaCBhcnJheSBudWxsIGlmIGVuZHdoaWxlIG9yIGNvbnN0IGZvciBlbmRmb3JlYWNoIHNlbGYgdmFyIHdoaWxlIGlzc2V0IHB1YmxpYyBwcm90ZWN0ZWQgZXhpdCBmb3JlYWNoIHRocm93IGVsc2VpZiBpbmNsdWRlIF9fRklMRV9fIGVtcHR5IHJlcXVpcmVfb25jZSBkbyB4b3IgcmV0dXJuIHBhcmVudCBjbG9uZSB1c2UgX19DTEFTU19fIF9fTElORV9fIGVsc2UgYnJlYWsgcHJpbnQgZXZhbCBuZXcgY2F0Y2ggX19NRVRIT0RfXyBjYXNlIGV4Y2VwdGlvbiBkZWZhdWx0IGRpZSByZXF1aXJlIF9fRlVOQ1RJT05fXyBlbmRkZWNsYXJlIGZpbmFsIHRyeSBzd2l0Y2ggY29udGludWUgZW5kZm9yIGVuZGlmIGRlY2xhcmUgdW5zZXQgdHJ1ZSBmYWxzZSB0cmFpdCBnb3RvIGluc3RhbmNlb2YgaW5zdGVhZG9mIF9fRElSX18gX19OQU1FU1BBQ0VfXyB5aWVsZCBmaW5hbGx5IixjOltlLkNMQ00sZS5IQ00se2NOOiJjb21tZW50IixiOiIvXFwqIixlOiJcXCovIixjOlt7Y046InBocGRvYyIsYjoiXFxzQFtBLVphLXpdKyJ9LHJdfSx7Y046ImNvbW1lbnQiLGI6Il9faGFsdF9jb21waWxlci4rPzsiLGVXOiEwLGs6Il9faGFsdF9jb21waWxlciIsbDplLlVJUn0se2NOOiJzdHJpbmciLGI6Ijw8PFsnXCJdP1xcdytbJ1wiXT8kIixlOiJeXFx3KzsiLGM6W2UuQkVdfSxyLHQse2I6Ly0+K1thLXpBLVpfXHg3Zi1ceGZmXVthLXpBLVowLTlfXHg3Zi1ceGZmXSovfSx7Y046ImZ1bmN0aW9uIixiSzoiZnVuY3Rpb24iLGU6L1s7e10vLGVFOiEwLGk6IlxcJHxcXFt8JSIsYzpbZS5VVE0se2NOOiJwYXJhbXMiLGI6IlxcKCIsZToiXFwpIixjOlsic2VsZiIsdCxlLkNCQ00sbixhXX1dfSx7Y046ImNsYXNzIixiSzoiY2xhc3MgaW50ZXJmYWNlIixlOiJ7IixlRTohMCxpOi9bOlwoXCQiXS8sYzpbe2JLOiJleHRlbmRzIGltcGxlbWVudHMifSxlLlVUTV19LHtiSzoibmFtZXNwYWNlIixlOiI7IixpOi9bXC4nXS8sYzpbZS5VVE1dfSx7Yks6InVzZSIsZToiOyIsYzpbZS5VVE1dfSx7YjoiPT4ifSxuLGFdfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgicHl0aG9uIixmdW5jdGlvbihlKXt2YXIgdD17Y046InByb21wdCIsYjovXig+Pj58XC5cLlwuKSAvfSxyPXtjTjoic3RyaW5nIixjOltlLkJFXSx2Olt7YjovKHV8Yik/cj8nJycvLGU6LycnJy8sYzpbdF0scjoxMH0se2I6Lyh1fGIpP3I/IiIiLyxlOi8iIiIvLGM6W3RdLHI6MTB9LHtiOi8odXxyfHVyKScvLGU6LycvLHI6MTB9LHtiOi8odXxyfHVyKSIvLGU6LyIvLHI6MTB9LHtiOi8oYnxiciknLyxlOi8nL30se2I6LyhifGJyKSIvLGU6LyIvfSxlLkFTTSxlLlFTTV19LG49e2NOOiJudW1iZXIiLHI6MCx2Olt7YjplLkJOUisiW2xMakpdPyJ9LHtiOiJcXGIoMG9bMC03XSspW2xMakpdPyJ9LHtiOmUuQ05SKyJbbExqSl0/In1dfSxhPXtjTjoicGFyYW1zIixiOi9cKC8sZTovXCkvLGM6WyJzZWxmIix0LG4scl19O3JldHVybnthbGlhc2VzOlsicHkiLCJneXAiXSxrOntrZXl3b3JkOiJhbmQgZWxpZiBpcyBnbG9iYWwgYXMgaW4gaWYgZnJvbSByYWlzZSBmb3IgZXhjZXB0IGZpbmFsbHkgcHJpbnQgaW1wb3J0IHBhc3MgcmV0dXJuIGV4ZWMgZWxzZSBicmVhayBub3Qgd2l0aCBjbGFzcyBhc3NlcnQgeWllbGQgdHJ5IHdoaWxlIGNvbnRpbnVlIGRlbCBvciBkZWYgbGFtYmRhIG5vbmxvY2FsfDEwIE5vbmUgVHJ1ZSBGYWxzZSIsYnVpbHRfaW46IkVsbGlwc2lzIE5vdEltcGxlbWVudGVkIn0saTovKDxcL3wtPnxcPykvLGM6W3QsbixyLGUuSENNLHt2Olt7Y046ImZ1bmN0aW9uIixiSzoiZGVmIixyOjEwfSx7Y046ImNsYXNzIixiSzoiY2xhc3MifV0sZTovOi8saTovWyR7PTtcbl0vLGM6W2UuVVRNLGFdfSx7Y046ImRlY29yYXRvciIsYjovQC8sZTovJC99LHtiOi9cYihwcmludHxleGVjKVwoL31dfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgicnVieSIsZnVuY3Rpb24oZSl7dmFyIHQ9IlthLXpBLVpfXVxcdypbIT89XT98Wy0rfl1cXEB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcKlxcKnxbLS8rJV4mKn5gfF18XFxbXFxdPT8iLHI9ImFuZCBmYWxzZSB0aGVuIGRlZmluZWQgbW9kdWxlIGluIHJldHVybiByZWRvIGlmIEJFR0lOIHJldHJ5IGVuZCBmb3IgdHJ1ZSBzZWxmIHdoZW4gbmV4dCB1bnRpbCBkbyBiZWdpbiB1bmxlc3MgRU5EIHJlc2N1ZSBuaWwgZWxzZSBicmVhayB1bmRlZiBub3Qgc3VwZXIgY2xhc3MgY2FzZSByZXF1aXJlIHlpZWxkIGFsaWFzIHdoaWxlIGVuc3VyZSBlbHNpZiBvciBpbmNsdWRlIGF0dHJfcmVhZGVyIGF0dHJfd3JpdGVyIGF0dHJfYWNjZXNzb3IiLG49e2NOOiJ5YXJkb2N0YWciLGI6IkBbQS1aYS16XSsifSxhPXtjTjoidmFsdWUiLGI6IiM8IixlOiI+In0saT17Y046ImNvbW1lbnQiLHY6W3tiOiIjIixlOiIkIixjOltuXX0se2I6Il5cXD1iZWdpbiIsZToiXlxcPWVuZCIsYzpbbl0scjoxMH0se2I6Il5fX0VORF9fIixlOiJcXG4kIn1dfSxzPXtjTjoic3Vic3QiLGI6IiNcXHsiLGU6In0iLGs6cn0sYz17Y046InN0cmluZyIsYzpbZS5CRSxzXSx2Olt7YjovJy8sZTovJy99LHtiOi8iLyxlOi8iL30se2I6L2AvLGU6L2AvfSx7YjoiJVtxUXdXeF0/XFwoIixlOiJcXCkifSx7YjoiJVtxUXdXeF0/XFxbIixlOiJcXF0ifSx7YjoiJVtxUXdXeF0/eyIsZToifSJ9LHtiOiIlW3FRd1d4XT88IixlOiI+In0se2I6IiVbcVF3V3hdPy8iLGU6Ii8ifSx7YjoiJVtxUXdXeF0/JSIsZToiJSJ9LHtiOiIlW3FRd1d4XT8tIixlOiItIn0se2I6IiVbcVF3V3hdP1xcfCIsZToiXFx8In0se2I6L1xCXD8oXFxcZHsxLDN9fFxceFtBLUZhLWYwLTldezEsMn18XFx1W0EtRmEtZjAtOV17NH18XFw/XFMpXGIvfV19LG89e2NOOiJwYXJhbXMiLGI6IlxcKCIsZToiXFwpIixrOnJ9LGw9W2MsYSxpLHtjTjoiY2xhc3MiLGJLOiJjbGFzcyBtb2R1bGUiLGU6IiR8OyIsaTovPS8sYzpbZS5pbmhlcml0KGUuVE0se2I6IltBLVphLXpfXVxcdyooOjpcXHcrKSooXFw/fFxcISk/In0pLHtjTjoiaW5oZXJpdGFuY2UiLGI6IjxcXHMqIixjOlt7Y046InBhcmVudCIsYjoiKCIrZS5JUisiOjopPyIrZS5JUn1dfSxpXX0se2NOOiJmdW5jdGlvbiIsYks6ImRlZiIsZToiIHwkfDsiLHI6MCxjOltlLmluaGVyaXQoZS5UTSx7Yjp0fSksbyxpXX0se2NOOiJjb25zdGFudCIsYjoiKDo6KT8oXFxiW0EtWl1cXHcqKDo6KT8pKyIscjowfSx7Y046InN5bWJvbCIsYjplLlVJUisiKFxcIXxcXD8pPzoiLHI6MH0se2NOOiJzeW1ib2wiLGI6IjoiLGM6W2Mse2I6dH1dLHI6MH0se2NOOiJudW1iZXIiLGI6IihcXGIwWzAtN19dKyl8KFxcYjB4WzAtOWEtZkEtRl9dKyl8KFxcYlsxLTldWzAtOV9dKihcXC5bMC05X10rKT8pfFswX11cXGIiLHI6MH0se2NOOiJ2YXJpYWJsZSIsYjoiKFxcJFxcVyl8KChcXCR8XFxAXFxAPykoXFx3KykpIn0se2I6IigiK2UuUlNSKyIpXFxzKiIsYzpbYSxpLHtjTjoicmVnZXhwIixjOltlLkJFLHNdLGk6L1xuLyx2Olt7YjoiLyIsZToiL1thLXpdKiJ9LHtiOiIlcnsiLGU6In1bYS16XSoifSx7YjoiJXJcXCgiLGU6IlxcKVthLXpdKiJ9LHtiOiIlciEiLGU6IiFbYS16XSoifSx7YjoiJXJcXFsiLGU6IlxcXVthLXpdKiJ9XX1dLHI6MH1dO3MuYz1sLG8uYz1sO3ZhciB1PSJbPj9dPiIsZD0iW1xcdyNdK1xcKFxcdytcXCk6XFxkKzpcXGQrPiIsYj0iKFxcdystKT9cXGQrXFwuXFxkK1xcLlxcZChwXFxkKyk/W14+XSs+IixwPVt7YjovXlxzKj0+LyxjTjoic3RhdHVzIixzdGFydHM6e2U6IiQiLGM6bH19LHtjTjoicHJvbXB0IixiOiJeKCIrdSsifCIrZCsifCIrYisiKSIsc3RhcnRzOntlOiIkIixjOmx9fV07cmV0dXJue2FsaWFzZXM6WyJyYiIsImdlbXNwZWMiLCJwb2RzcGVjIiwidGhvciIsImlyYiJdLGs6cixjOltpXS5jb25jYXQocCkuY29uY2F0KGwpfX0pLGhsanMucmVnaXN0ZXJMYW5ndWFnZSgic3FsIixmdW5jdGlvbihlKXt2YXIgdD17Y046ImNvbW1lbnQiLGI6Ii0tIixlOiIkIn07cmV0dXJue2NJOiEwLGk6L1s8Pl0vLGM6W3tjTjoib3BlcmF0b3IiLGJLOiJiZWdpbiBlbmQgc3RhcnQgY29tbWl0IHJvbGxiYWNrIHNhdmVwb2ludCBsb2NrIGFsdGVyIGNyZWF0ZSBkcm9wIHJlbmFtZSBjYWxsIGRlbGV0ZSBkbyBoYW5kbGVyIGluc2VydCBsb2FkIHJlcGxhY2Ugc2VsZWN0IHRydW5jYXRlIHVwZGF0ZSBzZXQgc2hvdyBwcmFnbWEgZ3JhbnQgbWVyZ2UgZGVzY3JpYmUgdXNlIGV4cGxhaW4gaGVscCBkZWNsYXJlIHByZXBhcmUgZXhlY3V0ZSBkZWFsbG9jYXRlIHNhdmVwb2ludCByZWxlYXNlIHVubG9jayBwdXJnZSByZXNldCBjaGFuZ2Ugc3RvcCBhbmFseXplIGNhY2hlIGZsdXNoIG9wdGltaXplIHJlcGFpciBraWxsIGluc3RhbGwgdW5pbnN0YWxsIGNoZWNrc3VtIHJlc3RvcmUgY2hlY2sgYmFja3VwIixlOi87LyxlVzohMCxrOntrZXl3b3JkOiJhYnMgYWJzb2x1dGUgYWNvcyBhY3Rpb24gYWRkIGFkZGRhdGUgYWRkdGltZSBhZXNfZGVjcnlwdCBhZXNfZW5jcnlwdCBhZnRlciBhZ2dyZWdhdGUgYWxsIGFsbG9jYXRlIGFsdGVyIGFuYWx5emUgYW5kIGFueSBhcmUgYXMgYXNjIGFzY2lpIGFzaW4gYXNzZXJ0aW9uIGF0IGF0YW4gYXRhbjIgYXRuMiBhdXRob3JpemF0aW9uIGF1dGhvcnMgYXZnIGJhY2t1cCBiZWZvcmUgYmVnaW4gYmVuY2htYXJrIGJldHdlZW4gYmluIGJpbmxvZyBiaXRfYW5kIGJpdF9jb3VudCBiaXRfbGVuZ3RoIGJpdF9vciBiaXRfeG9yIGJvdGggYnkgY2FjaGUgY2FsbCBjYXNjYWRlIGNhc2NhZGVkIGNhc2UgY2FzdCBjYXRhbG9nIGNlaWwgY2VpbGluZyBjaGFpbiBjaGFuZ2UgY2hhbmdlZCBjaGFyX2xlbmd0aCBjaGFyYWN0ZXJfbGVuZ3RoIGNoYXJpbmRleCBjaGFyc2V0IGNoZWNrIGNoZWNrc3VtIGNoZWNrc3VtX2FnZyBjaG9vc2UgY2xvc2UgY29hbGVzY2UgY29lcmNpYmlsaXR5IGNvbGxhdGUgY29sbGF0aW9uIGNvbGxhdGlvbnByb3BlcnR5IGNvbHVtbiBjb2x1bW5zIGNvbHVtbnNfdXBkYXRlZCBjb21taXQgY29tcHJlc3MgY29uY2F0IGNvbmNhdF93cyBjb25jdXJyZW50IGNvbm5lY3QgY29ubmVjdGlvbiBjb25uZWN0aW9uX2lkIGNvbnNpc3RlbnQgY29uc3RyYWludCBjb25zdHJhaW50cyBjb250aW51ZSBjb250cmlidXRvcnMgY29udiBjb252ZXJ0IGNvbnZlcnRfdHogY29ycmVzcG9uZGluZyBjb3MgY290IGNvdW50IGNvdW50X2JpZyBjcmMzMiBjcmVhdGUgY3Jvc3MgY3VtZV9kaXN0IGN1cmRhdGUgY3VycmVudCBjdXJyZW50X2RhdGUgY3VycmVudF90aW1lIGN1cnJlbnRfdGltZXN0YW1wIGN1cnJlbnRfdXNlciBjdXJzb3IgY3VydGltZSBkYXRhIGRhdGFiYXNlIGRhdGFiYXNlcyBkYXRhbGVuZ3RoIGRhdGVfYWRkIGRhdGVfZm9ybWF0IGRhdGVfc3ViIGRhdGVhZGQgZGF0ZWRpZmYgZGF0ZWZyb21wYXJ0cyBkYXRlbmFtZSBkYXRlcGFydCBkYXRldGltZTJmcm9tcGFydHMgZGF0ZXRpbWVvZmZzZXRmcm9tcGFydHMgZGF5IGRheW5hbWUgZGF5b2Ztb250aCBkYXlvZndlZWsgZGF5b2Z5ZWFyIGRlYWxsb2NhdGUgZGVjbGFyZSBkZWNvZGUgZGVmYXVsdCBkZWZlcnJhYmxlIGRlZmVycmVkIGRlZ3JlZXMgZGVsYXllZCBkZWxldGUgZGVzX2RlY3J5cHQgZGVzX2VuY3J5cHQgZGVzX2tleV9maWxlIGRlc2MgZGVzY3JpYmUgZGVzY3JpcHRvciBkaWFnbm9zdGljcyBkaWZmZXJlbmNlIGRpc2Nvbm5lY3QgZGlzdGluY3QgZGlzdGluY3Ryb3cgZGl2IGRvIGRvbWFpbiBkb3VibGUgZHJvcCBkdW1wZmlsZSBlYWNoIGVsc2UgZWx0IGVuY2xvc2VkIGVuY29kZSBlbmNyeXB0IGVuZCBlbmQtZXhlYyBlbmdpbmUgZW5naW5lcyBlb21vbnRoIGVycm9ycyBlc2NhcGUgZXNjYXBlZCBldmVudCBldmVudGRhdGEgZXZlbnRzIGV4Y2VwdCBleGNlcHRpb24gZXhlYyBleGVjdXRlIGV4aXN0cyBleHAgZXhwbGFpbiBleHBvcnRfc2V0IGV4dGVuZGVkIGV4dGVybmFsIGV4dHJhY3QgZmFzdCBmZXRjaCBmaWVsZCBmaWVsZHMgZmluZF9pbl9zZXQgZmlyc3QgZmlyc3RfdmFsdWUgZmxvb3IgZmx1c2ggZm9yIGZvcmNlIGZvcmVpZ24gZm9ybWF0IGZvdW5kIGZvdW5kX3Jvd3MgZnJvbSBmcm9tX2Jhc2U2NCBmcm9tX2RheXMgZnJvbV91bml4dGltZSBmdWxsIGZ1bmN0aW9uIGdldCBnZXRfZm9ybWF0IGdldF9sb2NrIGdldGRhdGUgZ2V0dXRjZGF0ZSBnbG9iYWwgZ28gZ290byBncmFudCBncmFudHMgZ3JlYXRlc3QgZ3JvdXAgZ3JvdXBfY29uY2F0IGdyb3VwaW5nIGdyb3VwaW5nX2lkIGd0aWRfc3Vic2V0IGd0aWRfc3VidHJhY3QgaGFuZGxlciBoYXZpbmcgaGVscCBoZXggaGlnaF9wcmlvcml0eSBob3N0cyBob3VyIGlkZW50X2N1cnJlbnQgaWRlbnRfaW5jciBpZGVudF9zZWVkIGlkZW50aWZpZWQgaWRlbnRpdHkgaWYgaWZudWxsIGlnbm9yZSBpaWYgaWxpa2UgaW1tZWRpYXRlIGluIGluZGV4IGluZGljYXRvciBpbmV0Nl9hdG9uIGluZXQ2X250b2EgaW5ldF9hdG9uIGluZXRfbnRvYSBpbmZpbGUgaW5pdGlhbGx5IGlubmVyIGlubm9kYiBpbnB1dCBpbnNlcnQgaW5zdGFsbCBpbnN0ciBpbnRlcnNlY3QgaW50byBpcyBpc19mcmVlX2xvY2sgaXNfaXB2NCBpc19pcHY0X2NvbXBhdCBpc19pcHY0X21hcHBlZCBpc19ub3QgaXNfbm90X251bGwgaXNfdXNlZF9sb2NrIGlzZGF0ZSBpc251bGwgaXNvbGF0aW9uIGpvaW4ga2V5IGtpbGwgbGFuZ3VhZ2UgbGFzdCBsYXN0X2RheSBsYXN0X2luc2VydF9pZCBsYXN0X3ZhbHVlIGxjYXNlIGxlYWQgbGVhZGluZyBsZWFzdCBsZWF2ZXMgbGVmdCBsZW4gbGVuZ2h0IGxldmVsIGxpa2UgbGltaXQgbGluZXMgbG4gbG9hZCBsb2FkX2ZpbGUgbG9jYWwgbG9jYWx0aW1lIGxvY2FsdGltZXN0YW1wIGxvY2F0ZSBsb2NrIGxvZyBsb2cxMCBsb2cyIGxvZ2ZpbGUgbG9ncyBsb3dfcHJpb3JpdHkgbG93ZXIgbHBhZCBsdHJpbSBtYWtlX3NldCBtYWtlZGF0ZSBtYWtldGltZSBtYXN0ZXIgbWFzdGVyX3Bvc193YWl0IG1hdGNoIG1hdGNoZWQgbWF4IG1kNSBtZWRpdW0gbWVyZ2UgbWljcm9zZWNvbmQgbWlkIG1pbiBtaW51dGUgbW9kIG1vZGUgbW9kdWxlIG1vbnRoIG1vbnRobmFtZSBtdXRleCBuYW1lX2NvbnN0IG5hbWVzIG5hdGlvbmFsIG5hdHVyYWwgbmNoYXIgbmV4dCBubyBub193cml0ZV90b19iaW5sb2cgbm90IG5vdyBudWxsaWYgbnZhcmNoYXIgb2N0IG9jdGV0X2xlbmd0aCBvZiBvbGRfcGFzc3dvcmQgb24gb25seSBvcGVuIG9wdGltaXplIG9wdGlvbiBvcHRpb25hbGx5IG9yIG9yZCBvcmRlciBvdXRlciBvdXRmaWxlIG91dHB1dCBwYWQgcGFyc2UgcGFydGlhbCBwYXJ0aXRpb24gcGFzc3dvcmQgcGF0aW5kZXggcGVyY2VudF9yYW5rIHBlcmNlbnRpbGVfY29udCBwZXJjZW50aWxlX2Rpc2MgcGVyaW9kX2FkZCBwZXJpb2RfZGlmZiBwaSBwbHVnaW4gcG9zaXRpb24gcG93IHBvd2VyIHByYWdtYSBwcmVjaXNpb24gcHJlcGFyZSBwcmVzZXJ2ZSBwcmltYXJ5IHByaW9yIHByaXZpbGVnZXMgcHJvY2VkdXJlIHByb2NlZHVyZV9hbmFseXplIHByb2Nlc3NsaXN0IHByb2ZpbGUgcHJvZmlsZXMgcHVibGljIHB1Ymxpc2hpbmdzZXJ2ZXJuYW1lIHB1cmdlIHF1YXJ0ZXIgcXVlcnkgcXVpY2sgcXVvdGUgcXVvdGVuYW1lIHJhZGlhbnMgcmFuZCByZWFkIHJlZmVyZW5jZXMgcmVnZXhwIHJlbGF0aXZlIHJlbGF5bG9nIHJlbGVhc2UgcmVsZWFzZV9sb2NrIHJlbmFtZSByZXBhaXIgcmVwZWF0IHJlcGxhY2UgcmVwbGljYXRlIHJlc2V0IHJlc3RvcmUgcmVzdHJpY3QgcmV0dXJuIHJldHVybnMgcmV2ZXJzZSByZXZva2UgcmlnaHQgcmxpa2Ugcm9sbGJhY2sgcm9sbHVwIHJvdW5kIHJvdyByb3dfY291bnQgcm93cyBycGFkIHJ0cmltIHNhdmVwb2ludCBzY2hlbWEgc2Nyb2xsIHNlY190b190aW1lIHNlY29uZCBzZWN0aW9uIHNlbGVjdCBzZXJpYWxpemFibGUgc2VydmVyIHNlc3Npb24gc2Vzc2lvbl91c2VyIHNldCBzaGEgc2hhMSBzaGEyIHNoYXJlIHNob3cgc2lnbiBzaW4gc2l6ZSBzbGF2ZSBzbGVlcCBzbWFsbGRhdGV0aW1lZnJvbXBhcnRzIHNuYXBzaG90IHNvbWUgc29uYW1lIHNvdW5kZXggc291bmRzX2xpa2Ugc3BhY2Ugc3FsIHNxbF9iaWdfcmVzdWx0IHNxbF9idWZmZXJfcmVzdWx0IHNxbF9jYWNoZSBzcWxfY2FsY19mb3VuZF9yb3dzIHNxbF9ub19jYWNoZSBzcWxfc21hbGxfcmVzdWx0IHNxbF92YXJpYW50X3Byb3BlcnR5IHNxbHN0YXRlIHNxcnQgc3F1YXJlIHN0YXJ0IHN0YXJ0aW5nIHN0YXR1cyBzdGQgc3RkZGV2IHN0ZGRldl9wb3Agc3RkZGV2X3NhbXAgc3RkZXYgc3RkZXZwIHN0b3Agc3RyIHN0cl90b19kYXRlIHN0cmFpZ2h0X2pvaW4gc3RyY21wIHN0cmluZyBzdHVmZiBzdWJkYXRlIHN1YnN0ciBzdWJzdHJpbmcgc3VidGltZSBzdWJ0cmluZ19pbmRleCBzdW0gc3dpdGNob2Zmc2V0IHN5c2RhdGUgc3lzZGF0ZXRpbWUgc3lzZGF0ZXRpbWVvZmZzZXQgc3lzdGVtX3VzZXIgc3lzdXRjZGF0ZXRpbWUgdGFibGUgdGFibGVzIHRhYmxlc3BhY2UgdGFuIHRlbXBvcmFyeSB0ZXJtaW5hdGVkIHRlcnRpYXJ5X3dlaWdodHMgdGhlbiB0aW1lIHRpbWVfZm9ybWF0IHRpbWVfdG9fc2VjIHRpbWVkaWZmIHRpbWVmcm9tcGFydHMgdGltZXN0YW1wIHRpbWVzdGFtcGFkZCB0aW1lc3RhbXBkaWZmIHRpbWV6b25lX2hvdXIgdGltZXpvbmVfbWludXRlIHRvIHRvX2Jhc2U2NCB0b19kYXlzIHRvX3NlY29uZHMgdG9kYXRldGltZW9mZnNldCB0cmFpbGluZyB0cmFuc2FjdGlvbiB0cmFuc2xhdGlvbiB0cmlnZ2VyIHRyaWdnZXJfbmVzdGxldmVsIHRyaWdnZXJzIHRyaW0gdHJ1bmNhdGUgdHJ5X2Nhc3QgdHJ5X2NvbnZlcnQgdHJ5X3BhcnNlIHVjYXNlIHVuY29tcHJlc3MgdW5jb21wcmVzc2VkX2xlbmd0aCB1bmhleCB1bmljb2RlIHVuaW5zdGFsbCB1bmlvbiB1bmlxdWUgdW5peF90aW1lc3RhbXAgdW5rbm93biB1bmxvY2sgdXBkYXRlIHVwZ3JhZGUgdXBwZWQgdXBwZXIgdXNhZ2UgdXNlIHVzZXIgdXNlcl9yZXNvdXJjZXMgdXNpbmcgdXRjX2RhdGUgdXRjX3RpbWUgdXRjX3RpbWVzdGFtcCB1dWlkIHV1aWRfc2hvcnQgdmFsaWRhdGVfcGFzc3dvcmRfc3RyZW5ndGggdmFsdWUgdmFsdWVzIHZhciB2YXJfcG9wIHZhcl9zYW1wIHZhcmlhYmxlcyB2YXJpYW5jZSB2YXJwIHZlcnNpb24gdmlldyB3YXJuaW5ncyB3ZWVrIHdlZWtkYXkgd2Vla29meWVhciB3ZWlnaHRfc3RyaW5nIHdoZW4gd2hlbmV2ZXIgd2hlcmUgd2l0aCB3b3JrIHdyaXRlIHhtbCB4b3IgeWVhciB5ZWFyd2VlayB6b24iLGxpdGVyYWw6InRydWUgZmFsc2UgbnVsbCIsYnVpbHRfaW46ImFycmF5IGJpZ2ludCBiaW5hcnkgYml0IGJsb2IgYm9vbGVhbiBjaGFyIGNoYXJhY3RlciBkYXRlIGRlYyBkZWNpbWFsIGZsb2F0IGludCBpbnRlZ2VyIGludGVydmFsIG51bWJlciBudW1lcmljIHJlYWwgc2VyaWFsIHNtYWxsaW50IHZhcmNoYXIgdmFyeWluZyBpbnQ4IHNlcmlhbDggdGV4dCJ9LGM6W3tjTjoic3RyaW5nIixiOiInIixlOiInIixjOltlLkJFLHtiOiInJyJ9XX0se2NOOiJzdHJpbmciLGI6JyInLGU6JyInLGM6W2UuQkUse2I6JyIiJ31dfSx7Y046InN0cmluZyIsYjoiYCIsZToiYCIsYzpbZS5CRV19LGUuQ05NLGUuQ0JDTSx0XX0sZS5DQkNNLHRdfQp9KTs="}},"time_used":45,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":39,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/1508826560h4.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.882Z","timestamp":1785126645882,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/1508826560h4.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 96699\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":96699,"size_decoded":96944,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"2a940ce509d3930c9dba565231313b11","sha1":"8450c4d7f0afc0731ea9d06402c827ed45a10dc6","sha256":"4108adfd1539a02ab8d4ef512fb47a28cf686aca7be6b93efeae52d5c5efabd5","sha512":"8addbd6d34813e3594a52155a98afda763ee7be55c83ca567f3653ddfc2b9c81b6d88fc614281e776e4ba6dc500e5acdcf6caa40bba15b5579b783af2ec7cba4","ssdeep":"1536:uDZA+slstnlJBrVCAT88xpoiUPbEWD48XJ8a0gn7iX9rKajxOyL5RVdZV6KJTM/i:KuutlJ75fxpoPPAW88XJT02NqjVdnWq","tlshash":"a393125a33f200c14f1c1f29d70b55663c260f556a351c3e09a6fb8b8eaec6f626d978","first_seen":"2025-03-17T20:39:33.084194Z","last_seen":"2026-07-27T04:47:12.550708Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":963,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":960,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/1508826576h5.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.883Z","timestamp":1785126645883,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/1508826576h5.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 205545\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":205545,"size_decoded":205791,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"2d6ca3d84e997e19bd2fcf008b558c52","sha1":"f3723c01b11051778021e247f27c7ccfc75c595f","sha256":"3491b04e93c863a97bc1963c3ca81905a40f44ea65d057f248928ae2d8401a41","sha512":"3962557905090b08304212e52b4837047f851ffe18d6f370cd5a9a2f6753b2fda94b53ee0bc910b43359f39660c1d43f3c4f854ff2b3ecaa07cd93d7e4a6ff06","ssdeep":"3072:+LJYpiRZAeXWCBL+aovsvzhe3tRhaaqkHkgVgXTw5er0f9r7BsY7rYAYSRsQNgJY:2J7XWWL+xsbhe3A2PVors9nBsdQNOsjV","tlshash":"f714134a6d79b0e0d4555b3c0fa2b652fd859b92367e0c51cb08ea334c6e1fb8676f02","first_seen":"2025-03-17T20:39:33.113817Z","last_seen":"2026-07-27T04:47:12.492823Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":1061,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1048,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/api/v1/widget?top=50\u0026sparkline=0\u0026pref_coin_id=1505","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.533Z","timestamp":1785126646533,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /api/v1/widget?top=50\u0026sparkline=0\u0026pref_coin_id=1505 HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\nage: 240\r\ncache-control: public, max-age=120, s-maxage=300, stale-while-revalidate=600\r\ncdn-cache-control: public, s-maxage=60, stale-while-revalidate=300\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"sukwo7HuQXEqIFMUFu8mGN4xpDo=\"\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nvary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, accept-encoding\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /api/v1/widget\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::iad1::lfrdt-1785126646542-d21079f08e27\r\nx-xss-protection: 1; mode=block\r\ncf-cache-status: DYNAMIC\r\npriority: u=4,i=?0\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=xPFfUODi8Yrq4dgQiRsR0rFVjoNwcXONhAYVjL%2BcP8CW3DBiPg%2FdyNO5vTAOlODzfYVPhTf9nw7%2BiFneIwmg7Qc1ZhuFZ4gIfsswwT1vqc41zNiBvyMy2fp1u%2F1H\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-ray: a218e924d8232efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":22258,"size_decoded":7607,"mime_type":"application/json","magic":"JSON text data","md5":"83d5068f385326e4124c97a2d014605c","sha1":"b2e930a3b1ee41712a20531416ef2618de31a43a","sha256":"59a330656bccd8f5e3292fbdd5e77ddc6d238c0317bec4e6b1ff7c3ddf6c0415","sha512":"952d97d6836f04b04b14ff38b7342f47b2ffb8e6a06270351eec3c2f067f369655fa683572d8104548d51c1a52881e71cc3e319d852cc5f63941b4bbdaf24021","ssdeep":"192:nd7i8WgAR1j3c0GMdKS88/i9m+vwgYXk+M0hAVjtAm4XiEw7K:ndXWgARNT7dvBRmKAIn","tlshash":"04a2fd8709305cefc67042b879a73b6c582e76ca88ee9d4681dd8dad04686f7131bf4d","first_seen":"2026-07-27T04:28:10.850287Z","last_seen":"2026-07-27T04:32:40.472168Z","times_seen":14,"resource_available":false,"data":"eyJkYXRhIjpbeyJpZCI6MSwic2x1ZyI6ImJpdGNvaW4iLCJzeW1ib2wiOiJCVEMiLCJuYW1lIjoiQml0Y29pbiIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzEucG5nIiwicHJpY2VfdXNkIjo2NTQwOS44MTA3ODMwOTAxODYsIm1hcmtldF9jYXAiOjEzMTIyMzg3MzgxOTcuNjMxLCJ2b2x1bWVfMjRoIjoxNjAzMDk3MjI1NC4zMDczODMsInJhbmsiOjEsInBlcmNlbnRfY2hhbmdlXzFoIjowLjIwMzk3NTc1LCJwZXJjZW50X2NoYW5nZV8yNGgiOjEuNDYyNDY2MDUsInBlcmNlbnRfY2hhbmdlXzdkIjoxLjE0ODAzNDAxLCJjaXJjdWxhdGluZ19zdXBwbHkiOjIwMDYxODAzLCJ0b3RhbF9zdXBwbHkiOjIwMDYxODAzLCJtYXhfc3VwcGx5IjoyMTAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoxMDI3LCJzbHVnIjoiZXRoZXJldW0iLCJzeW1ib2wiOiJFVEgiLCJuYW1lIjoiRXRoZXJldW0iLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8xMDI3LnBuZyIsInByaWNlX3VzZCI6MTk1OC4xMDYyNDc4MTEyNjAzLCJtYXJrZXRfY2FwIjoyMzYzMDk0MjMyNjYuMjkzNTgsInZvbHVtZV8yNGgiOjc5MzY1MjYwMDEuNzE2MDM1LCJyYW5rIjoyLCJwZXJjZW50X2NoYW5nZV8xaCI6MC43NTI4ODE5NywicGVyY2VudF9jaGFuZ2VfMjRoIjo0LjE4NjU3Mzk1LCJwZXJjZW50X2NoYW5nZV83ZCI6NC43Mzc0NzU4NywiY2lyY3VsYXRpbmdfc3VwcGx5IjoxMjA2ODI2MzUuODUzMTAzNzEsInRvdGFsX3N1cHBseSI6MTIwNjgyNjM1Ljg1MzEwMzcxLCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjgyNSwic2x1ZyI6InRldGhlciIsInN5bWJvbCI6IlVTRFQiLCJuYW1lIjoiVGV0aGVyIFVTRHQiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC84MjUucG5nIiwicHJpY2VfdXNkIjowLjk5OTAyODQ2NDcyNjgxNSwibWFya2V0X2NhcCI6MTgzOTQ3ODM2MzYxLjIyNTIyLCJ2b2x1bWVfMjRoIjozOTg0OTk2OTQxNy4yODQ3MSwicmFuayI6MywicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjAwMTM4NTIsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4wMDEzMDI1MSwicGVyY2VudF9jaGFuZ2VfN2QiOi0wLjAxMTg2MDEzLCJjaXJjdWxhdGluZ19zdXBwbHkiOjE4NDEyNjcyMTk2Ni4zNTE0NywidG90YWxfc3VwcGx5IjoxODkxMDY3MjQwMTguNjM5NiwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoxODM5LCJzbHVnIjoiYm5iIiwic3ltYm9sIjoiQk5CIiwibmFtZSI6IkJOQiIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzE4MzkucG5nIiwicHJpY2VfdXNkIjo1NzMuNzI3MjY4OTc5MTI4OSwibWFya2V0X2NhcCI6NzY0MDA3NjM4NDcuMjE0MTcsInZvbHVtZV8yNGgiOjgxOTMyMDUxOS4yNjUyMTEyLCJyYW5rIjo0LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4yMDY1OTE4OSwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjc0NDIwMTEzLCJwZXJjZW50X2NoYW5nZV83ZCI6MS4wMDEzMDUzOCwiY2lyY3VsYXRpbmdfc3VwcGx5IjoxMzMxNjU2NDguNTIsInRvdGFsX3N1cHBseSI6MTMzMTY1NjQ4LjUyLCJtYXhfc3VwcGx5IjoxMzMxNjU2NDkuMjgsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MzQwOCwic2x1ZyI6InVzZC1jb2luIiwic3ltYm9sIjoiVVNEQyIsIm5hbWUiOiJVU0RDIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMzQwOC5wbmciLCJwcmljZV91c2QiOjAuOTk5OTQwNjg1MzQ5NTgwNSwibWFya2V0X2NhcCI6NzI1NjA0NDI1MDkuNzU1NzUsInZvbHVtZV8yNGgiOjY3NTQxNzUyOTEuODMwMzk5LCJyYW5rIjo1LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMDA0Mjc0MywicGVyY2VudF9jaGFuZ2VfMjRoIjotMC4wMDQ1NjkyMywicGVyY2VudF9jaGFuZ2VfN2QiOjAuMDAwMDA3ODIsImNpcmN1bGF0aW5nX3N1cHBseSI6NzI1NjQ3NDY2NjIuMzM2OCwidG90YWxfc3VwcGx5Ijo3MjU2NDc0NjY2Mi4zMzY4LCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjUyLCJzbHVnIjoieHJwIiwic3ltYm9sIjoiWFJQIiwibmFtZSI6IlhSUCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzUyLnBuZyIsInByaWNlX3VzZCI6MS4xMDcxOTMxNzAxOTc2NTk4LCJtYXJrZXRfY2FwIjo2OTIzNjQxMTYxOC42ODg4Niwidm9sdW1lXzI0aCI6NjgyNzAzODU2LjE0OTg3MjcsInJhbmsiOjYsInBlcmNlbnRfY2hhbmdlXzFoIjowLjI0MzUyNTQ0LCJwZXJjZW50X2NoYW5nZV8yNGgiOjAuNzI0NzA2NTMsInBlcmNlbnRfY2hhbmdlXzdkIjoxLjAzMTEzMDMsImNpcmN1bGF0aW5nX3N1cHBseSI6NjI1MzMyNzE5NTUsInRvdGFsX3N1cHBseSI6OTk5ODU2MzU3MDcsIm1heF9zdXBwbHkiOjEwMDAwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo1NDI2LCJzbHVnIjoic29sYW5hIiwic3ltYm9sIjoiU09MIiwibmFtZSI6IlNvbGFuYSIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzU0MjYucG5nIiwicHJpY2VfdXNkIjo3Ni40Mzc4MzgxMDUyNTIyMywibWFya2V0X2NhcCI6NDQ1NzA1MzI3NDIuOTQ4ODgsInZvbHVtZV8yNGgiOjExNzgxMTQxNzAuNDEzMTAyMSwicmFuayI6NywicGVyY2VudF9jaGFuZ2VfMWgiOjAuMDgyMzgxNTYsInBlcmNlbnRfY2hhbmdlXzI0aCI6Mi4wNDE1OTEyMiwicGVyY2VudF9jaGFuZ2VfN2QiOjAuMTIyNzk4NzksImNpcmN1bGF0aW5nX3N1cHBseSI6NTgzMDk1MTUwLjg4MDMzNzgsInRvdGFsX3N1cHBseSI6NjMxMTIzMTIyLjg2MTUyNTksIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MTk1OCwic2x1ZyI6InRyb24iLCJzeW1ib2wiOiJUUlgiLCJuYW1lIjoiVFJPTiIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzE5NTgucG5nIiwicHJpY2VfdXNkIjowLjMzMTI3Mzk4ODM5MzY5NjksIm1hcmtldF9jYXAiOjMxNDMyNjA5NzY2LjczOTU3NCwidm9sdW1lXzI0aCI6MzA2NjgyMTc0LjgxODU0MzczLCJyYW5rIjo4LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wNDg5MzIyNSwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjA3MDQ4NDk3LCJwZXJjZW50X2NoYW5nZV83ZCI6MS41NDAzODQ1NywiY2lyY3VsYXRpbmdfc3VwcGx5Ijo5NDg4NDAyNjExNy4zMjk4OCwidG90YWxfc3VwcGx5Ijo5NDg4NDAxNTg5MS44OTEzOSwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjozMjE5Niwic2x1ZyI6Imh5cGVybGlxdWlkIiwic3ltYm9sIjoiSFlQRSIsIm5hbWUiOiJIeXBlcmxpcXVpZCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzMyMTk2LnBuZyIsInByaWNlX3VzZCI6NjAuMzAwOTQ0MjAzOTYzNCwibWFya2V0X2NhcCI6MTUyMzcxNzkzNDAuNTY5MTkzLCJ2b2x1bWVfMjRoIjoyMDEyOTg4MDMuOTAzNzg3OSwicmFuayI6OSwicGVyY2VudF9jaGFuZ2VfMWgiOjEuMTMxNzE5NjcsInBlcmNlbnRfY2hhbmdlXzI0aCI6My4xMjM3MDcyOSwicGVyY2VudF9jaGFuZ2VfN2QiOjAuNTc3MjM1NzUsImNpcmN1bGF0aW5nX3N1cHBseSI6MjUyNjg1NTg0LjY0MDc3NDE2LCJ0b3RhbF9zdXBwbHkiOjk1MzA0NjYxMS41NTQ0NjIyLCJtYXhfc3VwcGx5Ijo5NTMwNDcxMzIuNjIwMzMxNCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo3NCwic2x1ZyI6ImRvZ2Vjb2luIiwic3ltYm9sIjoiRE9HRSIsIm5hbWUiOiJEb2dlY29pbiIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0Lzc0LnBuZyIsInByaWNlX3VzZCI6MC4wNzI5MjIzNDgyMjM1MjM5NiwibWFya2V0X2NhcCI6MTEzMjAzNTkzMzcuMTA2MjI2LCJ2b2x1bWVfMjRoIjo1ODMyNjk1MzcuMDkwNzE4OSwicmFuayI6MTAsInBlcmNlbnRfY2hhbmdlXzFoIjowLjQ2MzI5OTQyLCJwZXJjZW50X2NoYW5nZV8yNGgiOjAuNDMyMzk1MTcsInBlcmNlbnRfY2hhbmdlXzdkIjowLjczOTkyNTMxLCJjaXJjdWxhdGluZ19zdXBwbHkiOjE1NTIzODU0NjM4My43MDUyLCJ0b3RhbF9zdXBwbHkiOjE1NTIzODU0NjM4My43MDUyLCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjM5NTcsInNsdWciOiJ1bnVzLXNlZC1sZW8iLCJzeW1ib2wiOiJMRU8iLCJuYW1lIjoiVU5VUyBTRUQgTEVPIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMzk1Ny5wbmciLCJwcmljZV91c2QiOjkuNzIwMDg4MTY4OTE1MjEsIm1hcmtldF9jYXAiOjg5NDM1MzA3OTYuNDcxNDM0LCJ2b2x1bWVfMjRoIjoxOTg0NTYuODk1MTMzMTcsInJhbmsiOjExLCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wMDA4MTQ5NCwicGVyY2VudF9jaGFuZ2VfMjRoIjotMC4zMTc4NDAxNSwicGVyY2VudF9jaGFuZ2VfN2QiOjAuMDQzMTE2MDcsImNpcmN1bGF0aW5nX3N1cHBseSI6OTIwMTA3OTkwLjksInRvdGFsX3N1cHBseSI6OTg1MjM5NTA0LCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjE0MzcsInNsdWciOiJ6Y2FzaCIsInN5bWJvbCI6IlpFQyIsIm5hbWUiOiJaY2FzaCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzE0MzcucG5nIiwicHJpY2VfdXNkIjo1MDQuNDI0NjM5MDE1MTcyNjYsIm1hcmtldF9jYXAiOjg0Njk4MjA5OTQuNzY3NTg4LCJ2b2x1bWVfMjRoIjozMzU2NzI0NjEuMDg2OTY0LCJyYW5rIjoxMiwicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjA5ODg4MTgsInBlcmNlbnRfY2hhbmdlXzI0aCI6My40NTA0OTY4NCwicGVyY2VudF9jaGFuZ2VfN2QiOi01LjUxNTMwNzE3LCJjaXJjdWxhdGluZ19zdXBwbHkiOjE2NzkxMDUzLjI5MDU0NDgsInRvdGFsX3N1cHBseSI6MTY3OTEwNTMuMjkwNTQ0OCwibWF4X3N1cHBseSI6MjEwMDAwMDAsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MzI4LCJzbHVnIjoibW9uZXJvIiwic3ltYm9sIjoiWE1SIiwibmFtZSI6Ik1vbmVybyIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzMyOC5wbmciLCJwcmljZV91c2QiOjM1Mi4zMTA2MjE1MzEzMDc1LCJtYXJrZXRfY2FwIjo2NjE3NTQ3OTY0Ljk5OTcyNCwidm9sdW1lXzI0aCI6NzIzMTI3ODYuNzgyMzgwODUsInJhbmsiOjEzLCJwZXJjZW50X2NoYW5nZV8xaCI6MC4zNjE1NTc0NCwicGVyY2VudF9jaGFuZ2VfMjRoIjotMy4xMjI2MDg3LCJwZXJjZW50X2NoYW5nZV83ZCI6NS4yOTYzMzM4NCwiY2lyY3VsYXRpbmdfc3VwcGx5IjoxODc4MzI3Ni45MTY5MzQxMywidG90YWxfc3VwcGx5IjoxODc4MzI3Ni45MTY5MzQxMywibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoxOTc1LCJzbHVnIjoiY2hhaW5saW5rIiwic3ltYm9sIjoiTElOSyIsIm5hbWUiOiJDaGFpbmxpbmsiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8xOTc1LnBuZyIsInByaWNlX3VzZCI6OC43ODYxMDIzODkyNzE1NTUsIm1hcmtldF9jYXAiOjY1NzI4ODI5MzcuNTY0MDUzLCJ2b2x1bWVfMjRoIjoyMzQxMDIwNjkuMTg2MTIzMzcsInJhbmsiOjE0LCJwZXJjZW50X2NoYW5nZV8xaCI6MC41NzQxODE5OSwicGVyY2VudF9jaGFuZ2VfMjRoIjo0LjQzMjA0NTUsInBlcmNlbnRfY2hhbmdlXzdkIjo0LjM0NjYwNzQyLCJjaXJjdWxhdGluZ19zdXBwbHkiOjc0ODA5OTk3MC40MjQ4ODQsInRvdGFsX3N1cHBseSI6MTAwMDAwMDAwMCwibWF4X3N1cHBseSI6MTAwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo1MTIsInNsdWciOiJzdGVsbGFyIiwic3ltYm9sIjoiWExNIiwibmFtZSI6IlN0ZWxsYXIiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC81MTIucG5nIiwicHJpY2VfdXNkIjowLjE4MTg3NDAyNjU4NDM3ODUsIm1hcmtldF9jYXAiOjYyMTkzMDUxMTcuMTE3MzM0LCJ2b2x1bWVfMjRoIjo4Nzg2MjQxNS4zMzQwMDA3MiwicmFuayI6MTUsInBlcmNlbnRfY2hhbmdlXzFoIjowLjMxNDk0Njg2LCJwZXJjZW50X2NoYW5nZV8yNGgiOjIuNDk3Mzk3MjEsInBlcmNlbnRfY2hhbmdlXzdkIjotMi40NTA0MTAyNiwiY2lyY3VsYXRpbmdfc3VwcGx5IjozNDE5NTY3NTA3Mi4wMDkwMDMsInRvdGFsX3N1cHBseSI6NTAwMDE3ODY4MzkuOTEyNDc2LCJtYXhfc3VwcGx5Ijo1MDAwMTgwNjgxMiwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoyMDEwLCJzbHVnIjoiY2FyZGFubyIsInN5bWJvbCI6IkFEQSIsIm5hbWUiOiJDYXJkYW5vIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMjAxMC5wbmciLCJwcmljZV91c2QiOjAuMTY1OTM4OTExOTIzODA2MjIsIm1hcmtldF9jYXAiOjYwNTUwOTQyMDQuNjMxNzUzLCJ2b2x1bWVfMjRoIjoxMzk5OTM1ODQuMDg5MzEsInJhbmsiOjE2LCJwZXJjZW50X2NoYW5nZV8xaCI6MC42NzI5MTIyNCwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjQ2NzA4MzEyLCJwZXJjZW50X2NoYW5nZV83ZCI6MC45MTQ5NjExOCwiY2lyY3VsYXRpbmdfc3VwcGx5IjozNjQ4OTg5OTQxMS45NzE4OSwidG90YWxfc3VwcGx5Ijo0NDk5MzIwMjY1Mi4zODY1NjYsIm1heF9zdXBwbHkiOjQ1MDAwMDAwMDAwLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjM3MjYzLCJzbHVnIjoiY2FudG9uLW5ldHdvcmsiLCJzeW1ib2wiOiJDQyIsIm5hbWUiOiJDYW50b24iLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8zNzI2My5wbmciLCJwcmljZV91c2QiOjAuMTIzOTQ0NDA0NDU4MDAxOCwibWFya2V0X2NhcCI6NDg1NDEyNTg5OC44ODQ2MzQsInZvbHVtZV8yNGgiOjEwNjQ2Mzg4LjExODAwMzg5LCJyYW5rIjoxNywicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjIxMjI1NTI4LCJwZXJjZW50X2NoYW5nZV8yNGgiOjIuOTczNzk1MzQsInBlcmNlbnRfY2hhbmdlXzdkIjotMi4zMTUxODc2OSwiY2lyY3VsYXRpbmdfc3VwcGx5IjozOTE2MzczNTcwOS42NjE5OSwidG90YWxfc3VwcGx5IjozOTE2MzczNTcwOS42NjE5OSwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo0OTQzLCJzbHVnIjoibXVsdGktY29sbGF0ZXJhbC1kYWkiLCJzeW1ib2wiOiJEQUkiLCJuYW1lIjoiRGFpIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvNDk0My5wbmciLCJwcmljZV91c2QiOjAuOTk5ODA4NDU2ODUyNDI4OCwibWFya2V0X2NhcCI6NDY0ODgyOTYzNi40NTYxMTksInZvbHVtZV8yNGgiOjI0MDMxNDA0LjM2ODA1MTM0LCJyYW5rIjoxOCwicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjAwMDE5NzYsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4wMTQ5MzA2MywicGVyY2VudF9jaGFuZ2VfN2QiOjAuMDA4NjgwMjgsImNpcmN1bGF0aW5nX3N1cHBseSI6NDY0OTcyMDI1OC41MDk3NTksInRvdGFsX3N1cHBseSI6NDY0OTcyMDI1OC41MDk3NTksIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MTgzMSwic2x1ZyI6ImJpdGNvaW4tY2FzaCIsInN5bWJvbCI6IkJDSCIsIm5hbWUiOiJCaXRjb2luIENhc2giLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8xODMxLnBuZyIsInByaWNlX3VzZCI6MjE2LjQ1NzUwMTg0MTYyMTA1LCJtYXJrZXRfY2FwIjo0MzQzNjEyNzgwLjEwMzkwOCwidm9sdW1lXzI0aCI6ODM5MTY5NDAuODUyODM2MjIsInJhbmsiOjE5LCJwZXJjZW50X2NoYW5nZV8xaCI6MC41OTc1OTU0NSwicGVyY2VudF9jaGFuZ2VfMjRoIjoyLjc2NjA0NDc5LCJwZXJjZW50X2NoYW5nZV83ZCI6MS44MDQyOTk5NSwiY2lyY3VsYXRpbmdfc3VwcGx5IjoyMDA2NjgxNS42MjUsInRvdGFsX3N1cHBseSI6MjAwNjY4MTUuNjI1LCJtYXhfc3VwcGx5IjoyMTAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoxMTQxOSwic2x1ZyI6ImdyYW0iLCJzeW1ib2wiOiJHUkFNIiwibmFtZSI6IkdyYW0gKHByZXYuIFRvbmNvaW4pIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMTE0MTkucG5nIiwicHJpY2VfdXNkIjoxLjUxNDQ2ODM0NzQ2Nzg1MzUsIm1hcmtldF9jYXAiOjQxNDE3ODA1MDAuMjIyOTQxLCJ2b2x1bWVfMjRoIjozNjMzNTc5NS40NDM3MzU0NywicmFuayI6MjAsInBlcmNlbnRfY2hhbmdlXzFoIjowLjIzNjc5NjcsInBlcmNlbnRfY2hhbmdlXzI0aCI6LTAuMjAxMzkwMTMsInBlcmNlbnRfY2hhbmdlXzdkIjo0LjgyMDUxODIxLCJjaXJjdWxhdGluZ19zdXBwbHkiOjI3MzQ4MDgyMjkuNjY1NDYzNCwidG90YWxfc3VwcGx5Ijo1MjIxMTY2NjAxLjkxNTI3NiwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjozNjE0OCwic2x1ZyI6InVzZDEiLCJzeW1ib2wiOiJVU0QxIiwibmFtZSI6IldvcmxkIExpYmVydHkgRmluYW5jaWFsIFVTRCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzM2MTQ4LnBuZyIsInByaWNlX3VzZCI6MC45OTg4MDcxNDI2NTc4NjMsIm1hcmtldF9jYXAiOjQxMDQzNDgzMzMuNDA0MjYyLCJ2b2x1bWVfMjRoIjo1MzM4MjI2NzcuNzA0NzQ1NzcsInJhbmsiOjIxLCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wMTAxNTczNCwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjAwNzM3ODc2LCJwZXJjZW50X2NoYW5nZV83ZCI6LTAuMDMxODksImNpcmN1bGF0aW5nX3N1cHBseSI6NDEwOTI1MDA4Mi41MzU4OTI1LCJ0b3RhbF9zdXBwbHkiOjQxMDkyNTAwODIuNTM1ODkyNSwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoyOTQ3MCwic2x1ZyI6ImV0aGVuYS11c2RlIiwic3ltYm9sIjoiVVNERSIsIm5hbWUiOiJFdGhlbmEgVVNEZSIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzI5NDcwLnBuZyIsInByaWNlX3VzZCI6MC45OTk5MjQ3NzQ5MDA0ODk0LCJtYXJrZXRfY2FwIjozOTY3NjMyMzQzLjg4MDMwMDUsInZvbHVtZV8yNGgiOjMwNDc5Mzc2LjIxNTc5NTAxLCJyYW5rIjoyMiwicGVyY2VudF9jaGFuZ2VfMWgiOjAuMDA5NTYzODQsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4wMDM1NDQzNCwicGVyY2VudF9jaGFuZ2VfN2QiOjAuMDA4OTYxMTksImNpcmN1bGF0aW5nX3N1cHBseSI6Mzk2NzkzMDgzMS44NzE5NzksInRvdGFsX3N1cHBseSI6Mzk2NzkzMDgzMS44NzE5NzksIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6Miwic2x1ZyI6ImxpdGVjb2luIiwic3ltYm9sIjoiTFRDIiwibmFtZSI6IkxpdGVjb2luIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMi5wbmciLCJwcmljZV91c2QiOjQ3LjM4OTc1NzY3MDYzMDU0NCwibWFya2V0X2NhcCI6MzY2OTM1NDE3NC43NjY4NzMsInZvbHVtZV8yNGgiOjIzMzEzNjIyMy41MDI0OTY3MiwicmFuayI6MjMsInBlcmNlbnRfY2hhbmdlXzFoIjowLjIxOTY0MDI0LCJwZXJjZW50X2NoYW5nZV8yNGgiOjEuNTA2MjE0NjksInBlcmNlbnRfY2hhbmdlXzdkIjowLjc3OTIxODc0LCJjaXJjdWxhdGluZ19zdXBwbHkiOjc3NDI5MjY2LjQ3MjkzMDksInRvdGFsX3N1cHBseSI6ODQwMDAwMDAsIm1heF9zdXBwbHkiOjg0MDAwMDAwLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjMzNzkzLCJzbHVnIjoiZ2xvYmFsLWRvbGxhci11c2RnIiwic3ltYm9sIjoiVVNERyIsIm5hbWUiOiJHbG9iYWwgRG9sbGFyIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMzM3OTMucG5nIiwicHJpY2VfdXNkIjoxLjAwMDE0OTYwNDI0NjcyMDIsIm1hcmtldF9jYXAiOjMyNzk1MjcwMTIuNTQ0ODcwNCwidm9sdW1lXzI0aCI6MTI3Mjg2NDk4LjkxNDExMjQ1LCJyYW5rIjoyNCwicGVyY2VudF9jaGFuZ2VfMWgiOjAuMDAyMzgwMzUsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4wMTk5MzYzLCJwZXJjZW50X2NoYW5nZV83ZCI6MC4wMTA5NTQ3NywiY2lyY3VsYXRpbmdfc3VwcGx5IjozMjc5MDM2NDU0Ljc2NjA4NywidG90YWxfc3VwcGx5IjozMjc5MDM2NDU0Ljc2NjA4NywibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo0NjQyLCJzbHVnIjoiaGVkZXJhIiwic3ltYm9sIjoiSEJBUiIsIm5hbWUiOiJIZWRlcmEiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC80NjQyLnBuZyIsInByaWNlX3VzZCI6MC4wNjk4NjQyMTQ2OTEzODY5NiwibWFya2V0X2NhcCI6MzA1OTQzMDU1MC4wNjQ2NzksInZvbHVtZV8yNGgiOjMyMTI3MDY4LjMwNDY5MzIyLCJyYW5rIjoyNSwicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjAzNDM2OCwicGVyY2VudF9jaGFuZ2VfMjRoIjotMC4zNDc3NDIyOSwicGVyY2VudF9jaGFuZ2VfN2QiOjUuOTE2MzM3ODcsImNpcmN1bGF0aW5nX3N1cHBseSI6NDM3OTEwOTYyNTEuMTk1MDE1LCJ0b3RhbF9zdXBwbHkiOjUwMDAwMDAwMDAwLCJtYXhfc3VwcGx5Ijo1MDAwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo1OTk0LCJzbHVnIjoic2hpYmEtaW51Iiwic3ltYm9sIjoiU0hJQiIsIm5hbWUiOiJTaGliYSBJbnUiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC81OTk0LnBuZyIsInByaWNlX3VzZCI6MC4wMDAwMDUxMDQ2MjEyODIxNzI5NzEsIm1hcmtldF9jYXAiOjMwMDc4NTAxNjIuMTk4NTYwNywidm9sdW1lXzI0aCI6NDk2MTU5MzE5LjA2MzIxMzIsInJhbmsiOjI2LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMjc2ODIyNDEsInBlcmNlbnRfY2hhbmdlXzI0aCI6LTUuMDE5Njg1OTEsInBlcmNlbnRfY2hhbmdlXzdkIjoyMi41MzY4MDM3MSwiY2lyY3VsYXRpbmdfc3VwcGx5Ijo1ODkyNDA2MTA3OTc3MDQsInRvdGFsX3N1cHBseSI6NTg5NDk3MzE2MDUzNzQ2LjIsIm1heF9zdXBwbHkiOjU4OTU1MjY5NTMzMzY4Mywic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoyMDk0Nywic2x1ZyI6InN1aSIsInN5bWJvbCI6IlNVSSIsIm5hbWUiOiJTdWkiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8yMDk0Ny5wbmciLCJwcmljZV91c2QiOjAuNzE5NTg2ODU4NzUyMzc0MiwibWFya2V0X2NhcCI6MjkxNjAwNjM1NS4wODY0OTY0LCJ2b2x1bWVfMjRoIjoxMzY1ODg3MjEuMzY1OTkxNjUsInJhbmsiOjI3LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wMzU0NzI0OSwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjQ2NjAzNzk5LCJwZXJjZW50X2NoYW5nZV83ZCI6LTMuNjQ5OTMyODEsImNpcmN1bGF0aW5nX3N1cHBseSI6NDA1MjMzNDA4NS4zNDIwOTksInRvdGFsX3N1cHBseSI6MTAwMDAwMDAwMDAsIm1heF9zdXBwbHkiOjEwMDAwMDAwMDAwLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjU4MDUsInNsdWciOiJhdmFsYW5jaGUiLCJzeW1ib2wiOiJBVkFYIiwibmFtZSI6IkF2YWxhbmNoZSIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzU4MDUucG5nIiwicHJpY2VfdXNkIjo2LjY5ODM0OTU3Nzk3MTMyNSwibWFya2V0X2NhcCI6Mjg5MjE1OTUzMy45MzEyMjg2LCJ2b2x1bWVfMjRoIjoyMTQ2ODA5MjMuMDY0MjIwNiwicmFuayI6MjgsInBlcmNlbnRfY2hhbmdlXzFoIjowLjEwNzEyODA4LCJwZXJjZW50X2NoYW5nZV8yNGgiOi0wLjczNzgzMDM0LCJwZXJjZW50X2NoYW5nZV83ZCI6Mi4zNTEyOTgzOCwiY2lyY3VsYXRpbmdfc3VwcGx5Ijo0MzE3NzE5NjEuMTc3MjExOSwidG90YWxfc3VwcGx5Ijo0NjM0NDEwNjEuMTc3MjExOSwibWF4X3N1cHBseSI6NzE1NzQ4NzE5LCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjM2MzUsInNsdWciOiJjcm9ub3MiLCJzeW1ib2wiOiJDUk8iLCJuYW1lIjoiQ3Jvbm9zIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMzYzNS5wbmciLCJwcmljZV91c2QiOjAuMDU3MzE5NzI5OTI2ODgyMzIsIm1hcmtldF9jYXAiOjI3MTAxMTc1ODEuOTIyOTkzNywidm9sdW1lXzI0aCI6NjA5MjUwNS43MDY5ODQyNiwicmFuayI6MjksInBlcmNlbnRfY2hhbmdlXzFoIjotMC4yODk0NTc0OSwicGVyY2VudF9jaGFuZ2VfMjRoIjoxLjY1OTYwNzgxLCJwZXJjZW50X2NoYW5nZV83ZCI6LTEuMzg1NDQ1OTgsImNpcmN1bGF0aW5nX3N1cHBseSI6NDcyODA3MTA5NDEuNTkxMTMsInRvdGFsX3N1cHBseSI6OTg4MTQwNDkyNjIuNjkxMjgsIm1heF9zdXBwbHkiOjEwMDAwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoyNzc3Miwic2x1ZyI6InBheXBhbC11c2QiLCJzeW1ib2wiOiJQWVVTRCIsIm5hbWUiOiJQYXlQYWwgVVNEIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMjc3NzIucG5nIiwicHJpY2VfdXNkIjowLjk5OTY3NDA0NTM2MTIwNTcsIm1hcmtldF9jYXAiOjI2ODU0MTkxODYuMDQzNzc3LCJ2b2x1bWVfMjRoIjoxODgzNjY1My4xOTQ5OTcyNSwicmFuayI6MzAsInBlcmNlbnRfY2hhbmdlXzFoIjowLjAwMjkxODQ4LCJwZXJjZW50X2NoYW5nZV8yNGgiOjAuMDAxMDA2MTgsInBlcmNlbnRfY2hhbmdlXzdkIjotMC4wMDk2OTY0LCJjaXJjdWxhdGluZ19zdXBwbHkiOjI2ODYyOTQ3OTYuMjkzNzk4LCJ0b3RhbF9zdXBwbHkiOjI2ODYyOTQ3OTYuMjkzNzk4LCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjUxNzYsInNsdWciOiJ0ZXRoZXItZ29sZCIsInN5bWJvbCI6IlhBVVQiLCJuYW1lIjoiVGV0aGVyIEdvbGQiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC81MTc2LnBuZyIsInByaWNlX3VzZCI6NDA3NS41MDQyMTY2ODM2MTIsIm1hcmtldF9jYXAiOjI0OTc1NjU0MDguNTA2MTQ4Mywidm9sdW1lXzI0aCI6MTkyODA1Mzk1LjYyMjg3MTcsInJhbmsiOjMxLCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMDg5OTQ2MzYsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC41OTgzMzA1OSwicGVyY2VudF9jaGFuZ2VfN2QiOjEuMzgwOTI2NSwiY2lyY3VsYXRpbmdfc3VwcGx5Ijo2MTI4MjMuNjU5NTMyLCJ0b3RhbF9zdXBwbHkiOjcwNzc0Ny4wODksIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6NzA4Mywic2x1ZyI6InVuaXN3YXAiLCJzeW1ib2wiOiJVTkkiLCJuYW1lIjoiVW5pc3dhcCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzcwODMucG5nIiwicHJpY2VfdXNkIjozLjkxMTUyMzM1ODAwNzU4NDgsIm1hcmtldF9jYXAiOjI0NDUyNDc5OTcuMDMyNjEyLCJ2b2x1bWVfMjRoIjoxOTU1MjMyOTguMDE5OTIxMTgsInJhbmsiOjMyLCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wMDM4ODA3OSwicGVyY2VudF9jaGFuZ2VfMjRoIjo2LjczMzQ3MzQ0LCJwZXJjZW50X2NoYW5nZV83ZCI6MTIuNjQ4MjAwODIsImNpcmN1bGF0aW5nX3N1cHBseSI6NjI1MTM5NTYxLjU1Mzg3NzUsInRvdGFsX3N1cHBseSI6ODkyMjc0NDIwLjAzMjk0NzksIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6NjUzNSwic2x1ZyI6Im5lYXItcHJvdG9jb2wiLCJzeW1ib2wiOiJORUFSIiwibmFtZSI6Ik5FQVIgUHJvdG9jb2wiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC82NTM1LnBuZyIsInByaWNlX3VzZCI6MS44NDc1ODI2NTEyODQ4NzM5LCJtYXJrZXRfY2FwIjoyNDA1NDIwODYyLjcwMTYyNTMsInZvbHVtZV8yNGgiOjEwMzczMjYyMC44NjU3OTU1NCwicmFuayI6MzMsInBlcmNlbnRfY2hhbmdlXzFoIjotMC4wMDI5NDg1LCJwZXJjZW50X2NoYW5nZV8yNGgiOjMuMDMwMDQwNDksInBlcmNlbnRfY2hhbmdlXzdkIjotMy40NjI5NTAwMSwiY2lyY3VsYXRpbmdfc3VwcGx5IjoxMzAxOTI4NjkxLCJ0b3RhbF9zdXBwbHkiOjEzMDE5Mjg2OTEsIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MjI5NzQsInNsdWciOiJiaXR0ZW5zb3IiLCJzeW1ib2wiOiJUQU8iLCJuYW1lIjoiQml0dGVuc29yIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMjI5NzQucG5nIiwicHJpY2VfdXNkIjoxOTkuMTExMDE0MTIwODM4OSwibWFya2V0X2NhcCI6MjIyMzQ2NzY4OS4yMDM1MTMsInZvbHVtZV8yNGgiOjEwNzYzNzM2MS4zOTc1OTc5NCwicmFuayI6MzQsInBlcmNlbnRfY2hhbmdlXzFoIjotMC40MjQ2NTI1NCwicGVyY2VudF9jaGFuZ2VfMjRoIjoxLjk0NTUxNjQ2LCJwZXJjZW50X2NoYW5nZV83ZCI6MS44MzczMTg5NywiY2lyY3VsYXRpbmdfc3VwcGx5IjoxMTE2Njk3NC44NjA4Mzg3MywidG90YWxfc3VwcGx5IjoyMTAwMDAwMCwibWF4X3N1cHBseSI6MjEwMDAwMDAsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MjExNTksInNsdWciOiJvbmRvLWZpbmFuY2UiLCJzeW1ib2wiOiJPTkRPIiwibmFtZSI6Ik9uZG8iLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8yMTE1OS5wbmciLCJwcmljZV91c2QiOjAuNDA1NjMwMjY4ODg3Njg4NywibWFya2V0X2NhcCI6MTk3NTE0Nzg5OS42NDU2NzMzLCJ2b2x1bWVfMjRoIjoxMjQ3MDEwMzcuMTI4ODY4NDksInJhbmsiOjM1LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuNTE0NDYyNzgsInBlcmNlbnRfY2hhbmdlXzI0aCI6NS41MDU2ODQ5NSwicGVyY2VudF9jaGFuZ2VfN2QiOjE3LjkwNjU1OTYzLCJjaXJjdWxhdGluZ19zdXBwbHkiOjQ4NjkzMzA2NDcsInRvdGFsX3N1cHBseSI6MTAwMDAwMDAwMDAsIm1heF9zdXBwbHkiOjEwMDAwMDAwMDAwLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjQ3MDUsInNsdWciOiJwYXgtZ29sZCIsInN5bWJvbCI6IlBBWEciLCJuYW1lIjoiUEFYIEdvbGQiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC80NzA1LnBuZyIsInByaWNlX3VzZCI6NDA3OS4zMTY5ODA5NTA3NzA0LCJtYXJrZXRfY2FwIjoxODE0NzQ1OTg4LjYwNDE2NzUsInZvbHVtZV8yNGgiOjc5NTY5MTYxLjI5NzcwOTMsInJhbmsiOjM2LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMDY1OTg4NjUsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC42ODgzODAzMiwicGVyY2VudF9jaGFuZ2VfN2QiOjEuNTQwMDU1NDgsImNpcmN1bGF0aW5nX3N1cHBseSI6NDQ0ODY1LjE1Njg1OCwidG90YWxfc3VwcGx5Ijo0NDQ4NjUuMTU2ODU4LCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjM4OTcsInNsdWciOiJva2IiLCJzeW1ib2wiOiJPS0IiLCJuYW1lIjoiT0tCIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMzg5Ny5wbmciLCJwcmljZV91c2QiOjg2LjMyNzU0ODU2MDkyODIxLCJtYXJrZXRfY2FwIjoxODEyODc4NTE5Ljc3OTQ5MjQsInZvbHVtZV8yNGgiOjIzOTc1NTc2LjgwMjc3OTMxLCJyYW5rIjozNywicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjMxMzQyODEyLCJwZXJjZW50X2NoYW5nZV8yNGgiOjMuNTMyNDM0MDMsInBlcmNlbnRfY2hhbmdlXzdkIjo3LjU3NjE4MjYsImNpcmN1bGF0aW5nX3N1cHBseSI6MjEwMDAwMDAsInRvdGFsX3N1cHBseSI6MjEwMDAwMDAsIm1heF9zdXBwbHkiOjIxMDAwMDAwLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjMzMjUxLCJzbHVnIjoid29ybGQtbGliZXJ0eS1maW5hbmNpYWwtd2xmaSIsInN5bWJvbCI6IldMRkkiLCJuYW1lIjoiV29ybGQgTGliZXJ0eSBGaW5hbmNpYWwiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8zMzI1MS5wbmciLCJwcmljZV91c2QiOjAuMDU0OTgwNDYzNDg4NTY2NTQsIm1hcmtldF9jYXAiOjE3NDY5OTE0NjUuOTQzNzgyMywidm9sdW1lXzI0aCI6MjkwOTA5MjAuMDYyNDUyMTgsInJhbmsiOjM4LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMjgzNjc3MDYsInBlcmNlbnRfY2hhbmdlXzI0aCI6LTEuNDg1NTQzODQsInBlcmNlbnRfY2hhbmdlXzdkIjotMy40MTU1NjY1MywiY2lyY3VsYXRpbmdfc3VwcGx5IjozMTc3NDc2Nzg5MiwidG90YWxfc3VwcGx5IjoxMDAwMDAwMDAwMDAsIm1heF9zdXBwbHkiOjEwMDAwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjozNjM0MSwic2x1ZyI6ImFzdGVyIiwic3ltYm9sIjoiQVNURVIiLCJuYW1lIjoiQXN0ZXIiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8zNjM0MS5wbmciLCJwcmljZV91c2QiOjAuNjI4MDU5NzgyNDUzMjUwNCwibWFya2V0X2NhcCI6MTY5NTc3OTY4Ni4wMTQ2NTYzLCJ2b2x1bWVfMjRoIjozODQ1OTU3Ny45MzIwOTkxMiwicmFuayI6MzksInBlcmNlbnRfY2hhbmdlXzFoIjotMC4wNjA2MzE4NiwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjI0MDc3NDAzLCJwZXJjZW50X2NoYW5nZV83ZCI6MS40NDI3MjUxMywiY2lyY3VsYXRpbmdfc3VwcGx5IjoyNzAwMDI5MDk0Ljk4NjQ4MTcsInRvdGFsX3N1cHBseSI6NzgxNjE5Nzg3NC41MTY3MjgsIm1heF9zdXBwbHkiOjgwMDAwMDAwMDAsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MzU0OTEsInNsdWciOiJtZW1lY29yZSIsInN5bWJvbCI6Ik0iLCJuYW1lIjoiTWVtZUNvcmUiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8zNTQ5MS5wbmciLCJwcmljZV91c2QiOjEuMjA4MDQzNzMzODA5OTE2NCwibWFya2V0X2NhcCI6MTYwNDg2NDM4Ny43NjIxMzEyLCJ2b2x1bWVfMjRoIjoxNTE3MjEwMy42MjI2MDAzNywicmFuayI6NDAsInBlcmNlbnRfY2hhbmdlXzFoIjotMC4wOTkzMzI5NSwicGVyY2VudF9jaGFuZ2VfMjRoIjotMi40NjY1MTQyNywicGVyY2VudF9jaGFuZ2VfN2QiOi0xLjExMzYxMjczLCJjaXJjdWxhdGluZ19zdXBwbHkiOjEzMjg0ODIwMjYuNjQwNDgwOCwidG90YWxfc3VwcGx5Ijo1Mzk1Nzk4Nzk5LjE0NzcwNiwibWF4X3N1cHBseSI6MTAwMDAwMDAwMDAsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6MzQzODcsInNsdWciOiJyaXBwbGUtdXNkIiwic3ltYm9sIjoiUkxVU0QiLCJuYW1lIjoiUmlwcGxlIFVTRCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzM0Mzg3LnBuZyIsInByaWNlX3VzZCI6MS4wMDAyNjA4MTYyNjg1MDY1LCJtYXJrZXRfY2FwIjoxNTg5NzYyNTM0Ljk4NzA1NjMsInZvbHVtZV8yNGgiOjk4MDcxMzYwLjE5NjE1NzI4LCJyYW5rIjo0MSwicGVyY2VudF9jaGFuZ2VfMWgiOjAuMDQyMDc1MDcsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4wMTU1NDQ1OSwicGVyY2VudF9jaGFuZ2VfN2QiOjAuMDMyMjI3MiwiY2lyY3VsYXRpbmdfc3VwcGx5IjoxNTg5MzQ4MDA3LjE3MDQ2NzksInRvdGFsX3N1cHBseSI6MTU4OTM0ODAwNy4xNzA0Njc5LCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjE5ODkxLCJzbHVnIjoidXNkZCIsInN5bWJvbCI6IlVTREQiLCJuYW1lIjoiVVNERCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzE5ODkxLnBuZyIsInByaWNlX3VzZCI6MC45OTg5NzQzOTA2NTIwMzA2LCJtYXJrZXRfY2FwIjoxNTU1MzQwNDk1LjU0NTc4OTcsInZvbHVtZV8yNGgiOjEwMDAyNjc3Ni40MTQ0NzA5LCJyYW5rIjo0MiwicGVyY2VudF9jaGFuZ2VfMWgiOi0wLjAxMTU3ODUsInBlcmNlbnRfY2hhbmdlXzI0aCI6LTAuMDA5MzkxNzUsInBlcmNlbnRfY2hhbmdlXzdkIjotMC4wMTIxMzgzNCwiY2lyY3VsYXRpbmdfc3VwcGx5IjoxNTU2OTM3MzA1LCJ0b3RhbF9zdXBwbHkiOjE1NTY5MzczMDUsIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6NzI3OCwic2x1ZyI6ImFhdmUiLCJzeW1ib2wiOiJBQVZFIiwibmFtZSI6IkFhdmUiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC83Mjc4LnBuZyIsInByaWNlX3VzZCI6MTAwLjAwODM0NzA3NTQzMDY4LCJtYXJrZXRfY2FwIjoxNTQxODk3OTEwLjg4MzY3NCwidm9sdW1lXzI0aCI6MzA4MjYxMTg1LjQwMjczNDgsInJhbmsiOjQzLCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMDczMTc3MjcsInBlcmNlbnRfY2hhbmdlXzI0aCI6OC40MTk2OTc5OSwicGVyY2VudF9jaGFuZ2VfN2QiOjExLjg0MTg3MDM2LCJjaXJjdWxhdGluZ19zdXBwbHkiOjE1NDE3NjkyLjE4MjQ0MDYsInRvdGFsX3N1cHBseSI6MTYwMDAwMDAsIm1heF9zdXBwbHkiOm51bGwsInNwYXJrbGluZV83ZCI6bnVsbH0seyJpZCI6NjYzNiwic2x1ZyI6InBvbGthZG90LW5ldyIsInN5bWJvbCI6IkRPVCIsIm5hbWUiOiJQb2xrYWRvdCIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzY2MzYucG5nIiwicHJpY2VfdXNkIjowLjgxODA2NTIxNTE2MzgyMjUsIm1hcmtldF9jYXAiOjEzODY3NTkzNzYuOTA0Nzc0NCwidm9sdW1lXzI0aCI6NDc2ODAzODcuNDM1MjgwNzgsInJhbmsiOjQ0LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wNjI1MjU0OCwicGVyY2VudF9jaGFuZ2VfMjRoIjotMC4xMDM0NTc2NCwicGVyY2VudF9jaGFuZ2VfN2QiOjEuMDA0NDQ5NTUsImNpcmN1bGF0aW5nX3N1cHBseSI6MTY5NTE2OTcxNC4xMDA0NDMxLCJ0b3RhbF9zdXBwbHkiOjE2OTUxNjk3MTQuMTAwNDQzMSwibWF4X3N1cHBseSI6MjEwMDAwMDAwMCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoyNzA3NSwic2x1ZyI6Im1hbnRsZSIsInN5bWJvbCI6Ik1OVCIsIm5hbWUiOiJNYW50bGUiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8yNzA3NS5wbmciLCJwcmljZV91c2QiOjAuNDE1NDIyNDQzNTUyMTc2NDUsIm1hcmtldF9jYXAiOjEzNzE4NDcyMDEuNzIyMDc5OCwidm9sdW1lXzI0aCI6MTczMTMxOTYuNzYwMTU0MzYsInJhbmsiOjQ1LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4wNTE5MzQ1OSwicGVyY2VudF9jaGFuZ2VfMjRoIjowLjYwMjA2MTUzLCJwZXJjZW50X2NoYW5nZV83ZCI6LTIuMzgxMDI4OTQsImNpcmN1bGF0aW5nX3N1cHBseSI6MzMwMjI5NDM4Mi41MzY4NCwidG90YWxfc3VwcGx5Ijo2MjE5MzE2Nzk0Ljg4OTk5OSwibWF4X3N1cHBseSI6NjIxOTMxNjc5NSwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjozMzAzOCwic2x1ZyI6InNreSIsInN5bWJvbCI6IlNLWSIsIm5hbWUiOiJTa3kiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8zMzAzOC5wbmciLCJwcmljZV91c2QiOjAuMDU3MDg1OTMxMDA5Mjc1OTc1LCJtYXJrZXRfY2FwIjoxMzMzMjQ1MjUxLjA4Mzk5Mywidm9sdW1lXzI0aCI6MTU1MzMzMjUuMzQ4MjM1NjUsInJhbmsiOjQ2LCJwZXJjZW50X2NoYW5nZV8xaCI6MC4zNzkxMDY4MywicGVyY2VudF9jaGFuZ2VfMjRoIjotMi42MDE4OTAxMywicGVyY2VudF9jaGFuZ2VfN2QiOi02LjcxMTI1MzcxLCJjaXJjdWxhdGluZ19zdXBwbHkiOjIzMzU1MDU4Mzc0LjQ5NDI2NywidG90YWxfc3VwcGx5IjoyMzQ2MjY2NTE0Ny4zNjU5NjcsIm1heF9zdXBwbHkiOjIzNDYyNjY1MTQ3LCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjEzNTAyLCJzbHVnIjoid29ybGRjb2luLW9yZyIsInN5bWJvbCI6IldMRCIsIm5hbWUiOiJXb3JsZGNvaW4iLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC8xMzUwMi5wbmciLCJwcmljZV91c2QiOjAuMzUzMjcxMDkxMjQ4ODM4NSwibWFya2V0X2NhcCI6MTMyNjUyNDM0OC43Njk0NTIzLCJ2b2x1bWVfMjRoIjoxOTI1MjE2NTYuNTUxMzcyOTIsInJhbmsiOjQ3LCJwZXJjZW50X2NoYW5nZV8xaCI6LTAuMzM5MzY5NzQsInBlcmNlbnRfY2hhbmdlXzI0aCI6NS42Mzk4OTI2OCwicGVyY2VudF9jaGFuZ2VfN2QiOi0zLjAwNTgxMzYzLCJjaXJjdWxhdGluZ19zdXBwbHkiOjM3NTQ5NzU2NTkuMjg3ODY5LCJ0b3RhbF9zdXBwbHkiOjEwMDAwMDAwMDAwLCJtYXhfc3VwcGx5IjpudWxsLCJzcGFya2xpbmVfN2QiOm51bGx9LHsiaWQiOjI0NDc4LCJzbHVnIjoicGVwZSIsInN5bWJvbCI6IlBFUEUiLCJuYW1lIjoiUGVwZSIsImltYWdlIjoiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbS9zdGF0aWMvaW1nL2NvaW5zLzY0eDY0LzI0NDc4LnBuZyIsInByaWNlX3VzZCI6MC4wMDAwMDI5NDk4NjMzMjU1NDU4NzY1LCJtYXJrZXRfY2FwIjoxMjIwNTcyMjQyLjA3ODcyNTgsInZvbHVtZV8yNGgiOjMzNzgxMTM0OS4wMDY2OTk4NiwicmFuayI6NDgsInBlcmNlbnRfY2hhbmdlXzFoIjowLjM2MzM1ODc4LCJwZXJjZW50X2NoYW5nZV8yNGgiOjEuMTczMjAzNjksInBlcmNlbnRfY2hhbmdlXzdkIjozLjE0NzUyODIzLCJjaXJjdWxhdGluZ19zdXBwbHkiOjQxMzc3MjQ3MjYxMjA1MS4zLCJ0b3RhbF9zdXBwbHkiOjQxMzc3MjQ3MjYxMjA1MS4zLCJtYXhfc3VwcGx5Ijo0MTM3NzI0NzMwODgyNzEuMSwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjo4OTE2LCJzbHVnIjoiaW50ZXJuZXQtY29tcHV0ZXIiLCJzeW1ib2wiOiJJQ1AiLCJuYW1lIjoiSW50ZXJuZXQgQ29tcHV0ZXIiLCJpbWFnZSI6Imh0dHBzOi8vczIuY29pbm1hcmtldGNhcC5jb20vc3RhdGljL2ltZy9jb2lucy82NHg2NC84OTE2LnBuZyIsInByaWNlX3VzZCI6Mi4xOTYyMTgwMTI2NzIzODc2LCJtYXJrZXRfY2FwIjoxMjE5MzYwMzkyLjg0MjY4MzgsInZvbHVtZV8yNGgiOjI5NTQ5NjUzLjI5MjMzNTYzLCJyYW5rIjo0OSwicGVyY2VudF9jaGFuZ2VfMWgiOjAuMTM3MzkwMDUsInBlcmNlbnRfY2hhbmdlXzI0aCI6MC4yMDcyMzQ2OSwicGVyY2VudF9jaGFuZ2VfN2QiOjIuODQ5ODI5NSwiY2lyY3VsYXRpbmdfc3VwcGx5Ijo1NTUyMDkxNzUuODY4MTc3OSwidG90YWxfc3VwcGx5Ijo1NTUyMDkxNzUuODY4MTc3OSwibWF4X3N1cHBseSI6bnVsbCwic3BhcmtsaW5lXzdkIjpudWxsfSx7ImlkIjoxMTA5Miwic2x1ZyI6ImJpdGdldC10b2tlbi1uZXciLCJzeW1ib2wiOiJCR0IiLCJuYW1lIjoiQml0Z2V0IFRva2VuIiwiaW1hZ2UiOiJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tL3N0YXRpYy9pbWcvY29pbnMvNjR4NjQvMTEwOTIucG5nIiwicHJpY2VfdXNkIjoxLjY3OTA2OTU0MjEwNjUyMjUsIm1hcmtldF9jYXAiOjExNzI5MzIwNTAuNTQ3MDE3LCJ2b2x1bWVfMjRoIjo1NjUxMDYwLjM0Nzg4MDg2LCJyYW5rIjo1MCwicGVyY2VudF9jaGFuZ2VfMWgiOjAuMzcxMDQxNDksInBlcmNlbnRfY2hhbmdlXzI0aCI6MC44MTE2NjkwNiwicGVyY2VudF9jaGFuZ2VfN2QiOjIuOTI5MjU3NDYsImNpcmN1bGF0aW5nX3N1cHBseSI6Njk4NTYwNzMzLjI3MTA0OTEsInRvdGFsX3N1cHBseSI6OTEwOTIwODc0LjY0ODEwMzgsIm1heF9zdXBwbHkiOjkxOTk5MjAzNS45OCwic3BhcmtsaW5lXzdkIjpudWxsfV0sImN1cnJlbmN5Ijp7ImNvZGUiOiJVU0QiLCJzeW1ib2wiOiIkIiwicmF0ZSI6MX0sImVycm9yIjpudWxsfQ=="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/22974.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.819Z","timestamp":1785126646819,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/22974.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 446\r\nage: 1509\r\nlast-modified: Wed, 14 Dec 2022 06:25:07 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 04:06:29 GMT\r\netag: \"a062e2c769af25c180143b158a03c7c9\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: R-yBlPn4XQ7Rw0RMAgU7EyxhRy1of3MNjEzSizcCs96Q6k3H6ymn8w==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":446,"size_decoded":978,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"a062e2c769af25c180143b158a03c7c9","sha1":"a68c0d9392a682c3aa6104b07e02dfb915527ac1","sha256":"3ec5fbbd218e9cef5b494c2df9a4426542b226f062c967a6fdffaff7f98e3244","sha512":"833130dc07ece584b5c50f65be06eda012db68a1c8b8778ee1991b6ae5e61aa5d46af9032d8c38edbb98e6fa3fbfaaf8dfe77e8cb8011cc4a3c4833ada588cd8","ssdeep":"","tlshash":"d7f0dcd2e282a1869b85e6e2a80070af89348ca1f3415509c890f22a2f378aa43437a1","first_seen":"2025-01-10T18:56:09.115311Z","last_seen":"2026-07-27T08:07:37.415422Z","times_seen":1119,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABhUlEQVR4Xu2Zi06DQBBFF8rTGiVq/P8/JGogiMDYpSLmEq22bLdm7kmmtLeb0J4OJQxGlGMw0AYFYKANCsBAGxSAgTYoAANtUAAG2qAADLRBARhogwIw0AYFYKCNswhomgajPzHsqusH6e2TlXEuIEkSiaJI0jQ9upI0F2PCUcTaOBNgjBk/+FplBfyLDui6TsIwXHyBUyrPc2nbFne1Ck4EHPr1o3jX2tmV3BZ3i/emipNsXBOEEe5iVZwIsH96tlt/qu31zSL7Wk/PL/PrwT66YXUBB/k4kG0XhJt43PrEq4Cp3YuikLIsYeF5uAgBmyiR1/YNFp6HixBgy8Up7jdQAAbOoQAKGDcUQAEUQAEUQAEUoFCA7K/vp1mfrfuHx/G63wdeBFisADvnm7sgk77vcZlzvAio61qqqgIBuTgc/HyLFwETdnwWBMGngCzf4hLneBUwTwD3nHoD5Rg8C/APBWCgDQrAQBsUgIE2KAADbVAABtqgAAy0QQEYaIMCMNCGegHveof2oBXRtqkAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/11092.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.868Z","timestamp":1785126646868,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/11092.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 752\r\nage: 79569\r\nlast-modified: Tue, 25 Jul 2023 06:29:11 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 06:25:35 GMT\r\netag: \"0d6d3a10d16505b8652993f33a76c1ae\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: cqMD5sQyncdxTlCuBkccUGtE1-ZA6I0dpk2CKIXPst5RP3GJNRESJQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":752,"size_decoded":1285,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"0d6d3a10d16505b8652993f33a76c1ae","sha1":"6ec80ad1c8dfbec8eb00b8a42d9a8d27d346eb76","sha256":"2c9ee8102d6ed4ff59eb9cc7dcaf65db7812808c6be385bb1d49a616b52f4036","sha512":"7eccd785adcb71bf41248eb177f7c9369f127b1ec2f791e21b215e3ebaf7780e833b517a85e1e761f409605b9d4b0bb04c8997e597e13d9fce3afa2359e48b41","ssdeep":"","tlshash":"b00165541b9224d8c25d87b4aa601eb0cd3ce224ef358d95a11cee38c4a62a0305cfa7","first_seen":"2024-08-19T19:26:05.484626Z","last_seen":"2026-07-27T08:07:37.370186Z","times_seen":959,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACt0lEQVR4XtWazW3cMBCFt4O4AsMNBHAJqcOXuIQcfUuq8DXuxAcXECANGKmA2wEDJl7B/mY15PB39gHfheIj50naH0o8HGbpGKOJi9cxBhGqnmcO71MhfjtTfF9CvOG06xXivSh0NC6Ubk0WNpsQb1nWHLGQ1UwVJ/fCcB3jq5jUG+mLeIg4kW8Cy2+TnOAy6CIOWsPv11RMOfTX03gnpD8dclAb68L/p0kczMr1jQyoQX8vqsRBrKy+8sQkmq14C3+iSK2fe6/hE0WiycLnWxlQg/4ZqGpZ1f0JMqAG/bNQxc6lXEr4E7tixxIuLXzirNiphLt7GVCD/pUIsUMJDKhB72o+qGaZy4Aa9HogxKu39Af71WdADXo9sYkH9nj4IQNq0O+NTTywBwNq0OuRt/DlLzAYUuPxSfrf8/BdevZIq0r6e/DvHQMbc7A4DXqJh5MgGkpgcRq5O8E6Hr2tiIZSWJjGyy/pJ/Ro0NuCaLDAwjToJXdfpWePT1fSX4tosMLiNOgllpNQMl4JoqEGFqaRHpjQT+jRoNeKaKiFhWnkTsLMFaZoaIGFadBLZj1dEg2tsDANesmMkyAaesDCNHIfh9EPWQ+Wv8IWWJhG7iSMesGyba7ggV48/iyHXsKQGvTusYkHvDHqDtjEA54YFT6xadT3QCsjw4vtduywmpHhE0LssJLRP32Js2KnFYy+8oldseNs0jKXATXoL2VXIX4RnWexPPxJNMwgPTFiQA36LWTVukHCCsPloN9CsWgcBcPloN+KSTT3huFy0G+lShykF7NfsVUrLRc5WCsMl4N+K83igC0wXA767TRulT1JDmyH4XLQX0NXcXDfdLryVM1OktmkrX7DxUm9MFWcfDVLFOKTKGQ2aQG3XC1bbGv5sMvLi2acCJfBz6nvg9ZnDn95kqF0JukvS23+2M6KYMsAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/raindrops.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.854Z","timestamp":1785126645854,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/raindrops.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 1179\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":4597,"size_decoded":1434,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"3f6efb4ef67b98d3d00361b060c11c38","sha1":"38c33b6980824be1e8f55d2fa2b24a6b00b71dc7","sha256":"d6530fd12aa7322c266e44657a51adbba2566512c9feae36c7a097b604cdbb18","sha512":"691201644a9e561634302a483431f244c38367bb728b2f5ce1c51dafaeee9874d3ea9a63f8e6d39bebc856453f8802975b75ed1e0c4f0134ca600e5b37941c75","ssdeep":"48:a60RdXKLdzeUqNU70qtdKIZrhBXcPJA8BlDanox9t64hvMzs1Iod4wpxxL:iKzehNcpXR9BpoxH6ovMzs1IHw/xL","tlshash":"3c91cb5d27b61304a4d721aecf4e20089271c12b2952c95dbf7ce3dccf5a83a469beb5","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.559039Z","times_seen":16,"resource_available":true,"data":"LyoKICogIFF1ZXJ5IFVJIHBsdWdpbiBmb3IgcmFpbmRyb3BzIGVmZmVjdC4KICogIGh0dHBzOi8vZ2l0aHViLmNvbS9kLWhhcmVsL3JhaW5kcm9wcy5naXQKICovCiQud2lkZ2V0KCJ3YXRlci5yYWluZHJvcHMiLCB7CiAgICBvcHRpb25zOiB7CiAgICAgICAgd2F2ZUxlbmd0aDogMzQwLCAgICAvLyBXYXZlIExlbmd0aC4gQSBudW1lcmljIHZhbHVlLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBzbWFsbGVyIHRoZSB3YXZlIGxlbmd0aC4KICAgICAgICBjYW52YXNXaWR0aDogMCwgICAgIC8vIFdpZHRoIG9mIHRoZSAgd2F0ZXIuIERlZmF1bHQgaXMgMTAwJSBvZiB0aGUgcGFyZW50J3Mgd2lkdGgKICAgICAgICBjYW52YXNIZWlnaHQ6IDAsICAgIC8vIEhlaWdodCBvZiB0aGUgd2F0ZXIuIERlZmF1bHQgaXMgNTAlIG9mIHRoZSBwYXJlbnQncyBoZWlnaHQgCiAgICAgICAgY29sb3I6ICcjMDBhZWVmJywgICAvLyBXYXRlciBDb2xvcgogICAgICAgIGZyZXF1ZW5jeTogMywgICAgICAgLy8gUmFpbmRyb3BzIGZyZXF1ZW5jeS4gSGlnaGVyIG51bWJlciBtZWFucyBtb3JlIGZyZXF1ZW50IHJhaW5kcm9wcy4KICAgICAgICB3YXZlSGVpZ2h0OiAxMDAgLCAgIC8vIFdhdmUgaGVpZ2h0LiBIaWdoZXIgbnVtYmVyIG1lYW5zIGhpZ2hlciB3YXZlcyBjcmVhdGVkIGJ5IHJhaW5kcm9wcy4KICAgICAgICBkZW5zaXR5OiAwLjAyLCAgICAgIC8vIFdhdGVyIGRlbnNpdHkuIEhpZ2hlciBudW1iZXIgbWVhbnMgc2hvcnRlciByaXBwbGVzLgogICAgICAgIHJpcHBsZVNwZWVkOiAgMC4xLCAgLy8gU3BlZWQgb2YgdGhlIHJpcHBsZSBlZmZlY3QuIEhpZ2hlciBudW1iZXIgbWVhbnMgZmFzdGVyIHJpcHBsZXMuCiAgICAgICAgcmlnaHRQYWRkaW5nOiAyMCwgICAgLy8gVG8gY292ZXIgdW53YW50ZWQgZ2FwcyBjcmVhdGVkIGJ5IHRoZSBhbmltYXRpb24uCiAgICAgICAgcG9zaXRpb246J2Fic29sdXRlJywKICAgICAgICBwb3NpdGlvbkJvdHRvbTowLAogICAgICAgIHBvc2l0aW9uTGVmdDowCiAgICB9LAogICAgX2NyZWF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBjYW52YXMgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuY2FudmFzSGVpZ2h0KSB7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5jYW52YXNIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0KCkgLyAyOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5jYW52YXNXaWR0aCkgewogICAgICAgICAgICB0aGlzLm9wdGlvbnMuY2FudmFzV2lkdGggPSB0aGlzLmVsZW1lbnQud2lkdGgoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5vcHRpb25zLnJlYWxXaWR0aCA9IHRoaXMub3B0aW9ucy5jYW52YXNXaWR0aCArIHRoaXMub3B0aW9ucy5yaWdodFBhZGRpbmc7CiAgICAgICAgY2FudmFzLmhlaWdodCA9IHRoaXMub3B0aW9ucy5jYW52YXNIZWlnaHQ7CiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5vcHRpb25zLnJlYWxXaWR0aDsKCiAgICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKICAgICAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSB0aGlzLm9wdGlvbnMuY29sb3I7CiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChjYW52YXMpOwogICAgICAgIGNhbnZhcy5wYXJlbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7CiAgICAgICAgY2FudmFzLnBhcmVudEVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnOwogICAgICAgIGNhbnZhcy5zdHlsZS5wb3NpdGlvbiA9IHRoaXMub3B0aW9ucy5wb3NpdGlvbjsKICAgICAgICBjYW52YXMuc3R5bGUuYm90dG9tID0gdGhpcy5vcHRpb25zLnBvc2l0aW9uQm90dG9tOwogICAgICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gdGhpcy5vcHRpb25zLnBvc2l0aW9uTGVmdDsKICAgICAgICAKICAgICAgICB0aGlzLnNwcmluZ3MgPSBbXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3B0aW9ucy53YXZlTGVuZ3RoOyBpKyspCiAgICAgICAgewogICAgICAgICAgICB0aGlzLnNwcmluZ3NbaV0gPSBuZXcgdGhpcy5TcHJpbmcoKTsKICAgICAgICB9CgogICAgICAgIHJhaW5kcm9wc0FuaW1hdGlvblRpY2sodGhpcyk7CiAgICB9LAogICAgU3ByaW5nOiBmdW5jdGlvbiAoKQogICAgewogICAgICAgIHRoaXMucCA9IDA7CiAgICAgICAgdGhpcy52ID0gMDsKICAgICAgICAvL3RoaXMudXBkYXRlID0gZnVuY3Rpb24gKGRhbXAsIHRlbnMpCiAgICAgICAgdGhpcy51cGRhdGUgPSBmdW5jdGlvbiAoZGVuc2l0eSwgcmlwcGxlU3BlZWQpCiAgICAgICAgewogICAgICAgICAgICAvL3RoaXMudiArPSAoLXRlbnMgKiB0aGlzLnAgLSBkYW1wICogdGhpcy52KTsKICAgICAgICAgICAgdGhpcy52ICs9ICgtcmlwcGxlU3BlZWQgKiB0aGlzLnAgLSBkZW5zaXR5ICogdGhpcy52KTsKICAgICAgICAgICAgdGhpcy5wICs9IHRoaXMudjsKICAgICAgICB9OwogICAgfSwKICAgIHVwZGF0ZVNwcmluZ3M6IGZ1bmN0aW9uIChzcHJlYWQpIHsKICAgICAgICB2YXIgaTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5vcHRpb25zLndhdmVMZW5ndGg7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIC8vdGhpcy5zcHJpbmdzW2ldLnVwZGF0ZSgwLjAyLCAwLjEpOwogICAgICAgICAgICB0aGlzLnNwcmluZ3NbaV0udXBkYXRlKHRoaXMub3B0aW9ucy5kZW5zaXR5LCB0aGlzLm9wdGlvbnMucmlwcGxlU3BlZWQpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGxlZnREZWx0YXMgPSBbXSwKICAgICAgICAgICAgICAgIHJpZ2h0RGVsdGFzID0gW107CgogICAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgODsgdCsrKSB7CgogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5vcHRpb25zLndhdmVMZW5ndGg7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGxlZnREZWx0YXNbaV0gPSBzcHJlYWQgKiAodGhpcy5zcHJpbmdzW2ldLnAgLSB0aGlzLnNwcmluZ3NbaSAtIDFdLnApOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc3ByaW5nc1tpIC0gMV0udiArPSBsZWZ0RGVsdGFzW2ldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLm9wdGlvbnMud2F2ZUxlbmd0aCAtIDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmlnaHREZWx0YXNbaV0gPSBzcHJlYWQgKiAodGhpcy5zcHJpbmdzW2ldLnAgLSB0aGlzLnNwcmluZ3NbaSArIDFdLnApOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc3ByaW5nc1tpICsgMV0udiArPSByaWdodERlbHRhc1tpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMub3B0aW9ucy53YXZlTGVuZ3RoOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgICAgICAgICB0aGlzLnNwcmluZ3NbaSAtIDFdLnAgKz0gbGVmdERlbHRhc1tpXTsKICAgICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5vcHRpb25zLndhdmVMZW5ndGggLSAxKQogICAgICAgICAgICAgICAgICAgIHRoaXMuc3ByaW5nc1tpICsgMV0ucCArPSByaWdodERlbHRhc1tpXTsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgfSwKICAgIHJlbmRlcldhdmVzOiBmdW5jdGlvbiAoKQogICAgewogICAgICAgIHZhciBpOwogICAgICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpOwogICAgICAgIHRoaXMuY3R4Lm1vdmVUbygwLCB0aGlzLm9wdGlvbnMuY2FudmFzSGVpZ2h0KTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5vcHRpb25zLndhdmVMZW5ndGg7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMuY3R4LmxpbmVUbyhpICogKHRoaXMub3B0aW9ucy5yZWFsV2lkdGggLyB0aGlzLm9wdGlvbnMud2F2ZUxlbmd0aCksICh0aGlzLm9wdGlvbnMuY2FudmFzSGVpZ2h0IC8gMikgKyB0aGlzLnNwcmluZ3NbaV0ucCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuY3R4LmxpbmVUbyh0aGlzLm9wdGlvbnMucmVhbFdpZHRoLCB0aGlzLm9wdGlvbnMuY2FudmFzSGVpZ2h0KTsKICAgICAgICB0aGlzLmN0eC5maWxsKCk7CiAgICB9IAogICAgCn0pOwoKZnVuY3Rpb24gcmFpbmRyb3BzQW5pbWF0aW9uVGljayhkcm9wKSB7CiAgICBpZiAoKE1hdGgucmFuZG9tKCkgKiAxMDApIDwgZHJvcC5vcHRpb25zLmZyZXF1ZW5jeSkKICAgICAgICBkcm9wLnNwcmluZ3NbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZHJvcC5vcHRpb25zLndhdmVMZW5ndGgpXS5wID0gZHJvcC5vcHRpb25zLndhdmVIZWlnaHQ7CgogICAgZHJvcC5jdHguY2xlYXJSZWN0KDAsIDAsIGRyb3Aub3B0aW9ucy5yZWFsV2lkdGgsIGRyb3Aub3B0aW9ucy5jYW52YXNIZWlnaHQpOwogICAgZHJvcC51cGRhdGVTcHJpbmdzKDAuMSk7CiAgICBkcm9wLnJlbmRlcldhdmVzKCk7CgogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHsKICAgICAgICByYWluZHJvcHNBbmltYXRpb25UaWNrKGRyb3ApOwogICAgfSk7Cn0KOw=="}},"time_used":990,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":990,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/wow.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.859Z","timestamp":1785126645859,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/wow.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2634\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":8155,"size_decoded":2889,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (8099)","md5":"21fe90eedcbaafb4ed529d78418d30bd","sha1":"a16375b80220d315151f57bab2d4ee03c9fe1d20","sha256":"7852a22b72ead62cfc4a1b1ca32874b3e222f232a991a6d1432313572f534135","sha512":"30be63048c2b41ea7953dbc137b4c9047704196430cdf1995334092a41fe8c6336f1f109c195c5b47c857ee92838e4ff8d255d7ca8b8280793bc012d35b7fcdf","ssdeep":"192:tmEE6yAmu6qUxbU5C9nrr1GkEPIAeJ3KO4poIR:EEE/Amu6qUxVBxGkAI///IR","tlshash":"99f1baa5374a70718e9b6176c92f0202a532256e74d4c8ec747cddd4aeb4a29336bf3c","first_seen":"2023-03-07T01:37:53Z","last_seen":"2026-07-27T07:45:55.665731Z","times_seen":6486,"resource_available":true,"data":"LyohIFdPVyB3b3cuanMgLSB2MS4zLjAgLSAyMDE2LTEwLTA0CiogaHR0cHM6Ly93b3dqcy51awoqIENvcHlyaWdodCAoYykgMjAxNiBUaG9tYXMgR3JhaW5nZXI7IExpY2Vuc2VkIE1JVCAqLyFmdW5jdGlvbihhLGIpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFsibW9kdWxlIiwiZXhwb3J0cyJdLGIpO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBleHBvcnRzKWIobW9kdWxlLGV4cG9ydHMpO2Vsc2V7dmFyIGM9e2V4cG9ydHM6e319O2IoYyxjLmV4cG9ydHMpLGEuV09XPWMuZXhwb3J0c319KHRoaXMsZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGQoYSxiKXtyZXR1cm4gYi5pbmRleE9mKGEpPj0wfWZ1bmN0aW9uIGUoYSxiKXtmb3IodmFyIGMgaW4gYilpZihudWxsPT1hW2NdKXt2YXIgZD1iW2NdO2FbY109ZH1yZXR1cm4gYX1mdW5jdGlvbiBmKGEpe3JldHVybi9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChhKX1mdW5jdGlvbiBnKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGg8PTF8fHZvaWQgMD09PWFyZ3VtZW50c1sxXT8hMTphcmd1bWVudHNbMV0sYz1hcmd1bWVudHMubGVuZ3RoPD0yfHx2b2lkIDA9PT1hcmd1bWVudHNbMl0/ITE6YXJndW1lbnRzWzJdLGQ9YXJndW1lbnRzLmxlbmd0aDw9M3x8dm9pZCAwPT09YXJndW1lbnRzWzNdP251bGw6YXJndW1lbnRzWzNdLGU9dm9pZCAwO3JldHVybiBudWxsIT1kb2N1bWVudC5jcmVhdGVFdmVudD8oZT1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxlLmluaXRDdXN0b21FdmVudChhLGIsYyxkKSk6bnVsbCE9ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3Q/KGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKSxlLmV2ZW50VHlwZT1hKTplLmV2ZW50TmFtZT1hLGV9ZnVuY3Rpb24gaChhLGIpe251bGwhPWEuZGlzcGF0Y2hFdmVudD9hLmRpc3BhdGNoRXZlbnQoYik6YiBpbihudWxsIT1hKT9hW2JdKCk6Im9uIitiIGluKG51bGwhPWEpJiZhWyJvbiIrYl0oKX1mdW5jdGlvbiBpKGEsYixjKXtudWxsIT1hLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSk6bnVsbCE9YS5hdHRhY2hFdmVudD9hLmF0dGFjaEV2ZW50KCJvbiIrYixjKTphW2JdPWN9ZnVuY3Rpb24gaihhLGIsYyl7bnVsbCE9YS5yZW1vdmVFdmVudExpc3RlbmVyP2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpOm51bGwhPWEuZGV0YWNoRXZlbnQ/YS5kZXRhY2hFdmVudCgib24iK2IsYyk6ZGVsZXRlIGFbYl19ZnVuY3Rpb24gaygpe3JldHVybiJpbm5lckhlaWdodCJpbiB3aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR9T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBsLG0sbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxvPXdpbmRvdy5XZWFrTWFwfHx3aW5kb3cuTW96V2Vha01hcHx8ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7Yyh0aGlzLGEpLHRoaXMua2V5cz1bXSx0aGlzLnZhbHVlcz1bXX1yZXR1cm4gbihhLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8dGhpcy5rZXlzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMua2V5c1tiXTtpZihjPT09YSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19fX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8dGhpcy5rZXlzLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMua2V5c1tjXTtpZihkPT09YSlyZXR1cm4gdGhpcy52YWx1ZXNbY109Yix0aGlzfXJldHVybiB0aGlzLmtleXMucHVzaChhKSx0aGlzLnZhbHVlcy5wdXNoKGIpLHRoaXN9fV0pLGF9KCkscD13aW5kb3cuTXV0YXRpb25PYnNlcnZlcnx8d2luZG93LldlYmtpdE11dGF0aW9uT2JzZXJ2ZXJ8fHdpbmRvdy5Nb3pNdXRhdGlvbk9ic2VydmVyfHwobT1sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2ModGhpcyxhKSwidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJm51bGwhPT1jb25zb2xlJiYoY29uc29sZS53YXJuKCJNdXRhdGlvbk9ic2VydmVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyLiIpLGNvbnNvbGUud2FybigiV09XLmpzIGNhbm5vdCBkZXRlY3QgZG9tIG11dGF0aW9ucywgcGxlYXNlIGNhbGwgLnN5bmMoKSBhZnRlciBsb2FkaW5nIG5ldyBjb250ZW50LiIpKX1yZXR1cm4gbihhLFt7a2V5OiJvYnNlcnZlIix2YWx1ZTpmdW5jdGlvbigpe319XSksYX0oKSxsLm5vdFN1cHBvcnRlZD0hMCxtKSxxPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlfHxmdW5jdGlvbihhKXt2YXIgYj0vKFwtKFthLXpdKXsxfSkvZztyZXR1cm57Z2V0UHJvcGVydHlWYWx1ZTpmdW5jdGlvbihjKXsiZmxvYXQiPT09YyYmKGM9InN0eWxlRmxvYXQiKSxiLnRlc3QoYykmJmMucmVwbGFjZShiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0pO3ZhciBkPWEuY3VycmVudFN0eWxlO3JldHVybihudWxsIT1kP2RbY106dm9pZCAwKXx8bnVsbH19fSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGg8PTB8fHZvaWQgMD09PWFyZ3VtZW50c1swXT97fTphcmd1bWVudHNbMF07Yyh0aGlzLGEpLHRoaXMuZGVmYXVsdHM9e2JveENsYXNzOiJ3b3ciLGFuaW1hdGVDbGFzczoiYW5pbWF0ZWQiLG9mZnNldDowLG1vYmlsZTohMCxsaXZlOiEwLGNhbGxiYWNrOm51bGwsc2Nyb2xsQ29udGFpbmVyOm51bGwscmVzZXRBbmltYXRpb246ITB9LHRoaXMuYW5pbWF0ZT1mdW5jdGlvbigpe3JldHVybiJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiaW4gd2luZG93P2Z1bmN0aW9uKGEpe3JldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYSgpfX0oKSx0aGlzLnZlbmRvcnM9WyJtb3oiLCJ3ZWJraXQiXSx0aGlzLnN0YXJ0PXRoaXMuc3RhcnQuYmluZCh0aGlzKSx0aGlzLnJlc2V0QW5pbWF0aW9uPXRoaXMucmVzZXRBbmltYXRpb24uYmluZCh0aGlzKSx0aGlzLnNjcm9sbEhhbmRsZXI9dGhpcy5zY3JvbGxIYW5kbGVyLmJpbmQodGhpcyksdGhpcy5zY3JvbGxDYWxsYmFjaz10aGlzLnNjcm9sbENhbGxiYWNrLmJpbmQodGhpcyksdGhpcy5zY3JvbGxlZD0hMCx0aGlzLmNvbmZpZz1lKGIsdGhpcy5kZWZhdWx0cyksbnVsbCE9Yi5zY3JvbGxDb250YWluZXImJih0aGlzLmNvbmZpZy5zY3JvbGxDb250YWluZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihiLnNjcm9sbENvbnRhaW5lcikpLHRoaXMuYW5pbWF0aW9uTmFtZUNhY2hlPW5ldyBvLHRoaXMud293RXZlbnQ9Zyh0aGlzLmNvbmZpZy5ib3hDbGFzcyl9cmV0dXJuIG4oYSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQ9d2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxkKGRvY3VtZW50LnJlYWR5U3RhdGUsWyJpbnRlcmFjdGl2ZSIsImNvbXBsZXRlIl0pP3RoaXMuc3RhcnQoKTppKGRvY3VtZW50LCJET01Db250ZW50TG9hZGVkIix0aGlzLnN0YXJ0KSx0aGlzLmZpbmlzaGVkPVtdfX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztpZih0aGlzLnN0b3BwZWQ9ITEsdGhpcy5ib3hlcz1bXS5zbGljZS5jYWxsKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLmNvbmZpZy5ib3hDbGFzcykpLHRoaXMuYWxsPXRoaXMuYm94ZXMuc2xpY2UoMCksdGhpcy5ib3hlcy5sZW5ndGgpaWYodGhpcy5kaXNhYmxlZCgpKXRoaXMucmVzZXRTdHlsZSgpO2Vsc2UgZm9yKHZhciBiPTA7Yjx0aGlzLmJveGVzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuYm94ZXNbYl07dGhpcy5hcHBseVN0eWxlKGMsITApfWlmKHRoaXMuZGlzYWJsZWQoKXx8KGkodGhpcy5jb25maWcuc2Nyb2xsQ29udGFpbmVyfHx3aW5kb3csInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyKSxpKHdpbmRvdywicmVzaXplIix0aGlzLnNjcm9sbEhhbmRsZXIpLHRoaXMuaW50ZXJ2YWw9c2V0SW50ZXJ2YWwodGhpcy5zY3JvbGxDYWxsYmFjayw1MCkpLHRoaXMuY29uZmlnLmxpdmUpe3ZhciBkPW5ldyBwKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKWZvcih2YXIgZD1iW2NdLGU9MDtlPGQuYWRkZWROb2Rlcy5sZW5ndGg7ZSsrKXt2YXIgZj1kLmFkZGVkTm9kZXNbZV07YS5kb1N5bmMoZil9fSk7ZC5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9fX0se2tleToic3RvcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnN0b3BwZWQ9ITAsaih0aGlzLmNvbmZpZy5zY3JvbGxDb250YWluZXJ8fHdpbmRvdywic2Nyb2xsIix0aGlzLnNjcm9sbEhhbmRsZXIpLGood2luZG93LCJyZXNpemUiLHRoaXMuc2Nyb2xsSGFuZGxlciksbnVsbCE9dGhpcy5pbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKX19LHtrZXk6InN5bmMiLHZhbHVlOmZ1bmN0aW9uKCl7cC5ub3RTdXBwb3J0ZWQmJnRoaXMuZG9TeW5jKHRoaXMuZWxlbWVudCl9fSx7a2V5OiJkb1N5bmMiLHZhbHVlOmZ1bmN0aW9uKGEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9PWF8fChhPXRoaXMuZWxlbWVudCksMT09PWEubm9kZVR5cGUpe2E9YS5wYXJlbnROb2RlfHxhO2Zvcih2YXIgYj1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuY29uZmlnLmJveENsYXNzKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBlPWJbY107ZChlLHRoaXMuYWxsKXx8KHRoaXMuYm94ZXMucHVzaChlKSx0aGlzLmFsbC5wdXNoKGUpLHRoaXMuc3RvcHBlZHx8dGhpcy5kaXNhYmxlZCgpP3RoaXMucmVzZXRTdHlsZSgpOnRoaXMuYXBwbHlTdHlsZShlLCEwKSx0aGlzLnNjcm9sbGVkPSEwKX19fX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYXBwbHlTdHlsZShhKSxhLmNsYXNzTmFtZT1hLmNsYXNzTmFtZSsiICIrdGhpcy5jb25maWcuYW5pbWF0ZUNsYXNzLG51bGwhPXRoaXMuY29uZmlnLmNhbGxiYWNrJiZ0aGlzLmNvbmZpZy5jYWxsYmFjayhhKSxoKGEsdGhpcy53b3dFdmVudCksdGhpcy5jb25maWcucmVzZXRBbmltYXRpb24mJihpKGEsImFuaW1hdGlvbmVuZCIsdGhpcy5yZXNldEFuaW1hdGlvbiksaShhLCJvYW5pbWF0aW9uZW5kIix0aGlzLnJlc2V0QW5pbWF0aW9uKSxpKGEsIndlYmtpdEFuaW1hdGlvbkVuZCIsdGhpcy5yZXNldEFuaW1hdGlvbiksaShhLCJNU0FuaW1hdGlvbkVuZCIsdGhpcy5yZXNldEFuaW1hdGlvbikpLGF9fSx7a2V5OiJhcHBseVN0eWxlIix2YWx1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1hLmdldEF0dHJpYnV0ZSgiZGF0YS13b3ctZHVyYXRpb24iKSxlPWEuZ2V0QXR0cmlidXRlKCJkYXRhLXdvdy1kZWxheSIpLGY9YS5nZXRBdHRyaWJ1dGUoImRhdGEtd293LWl0ZXJhdGlvbiIpO3JldHVybiB0aGlzLmFuaW1hdGUoZnVuY3Rpb24oKXtyZXR1cm4gYy5jdXN0b21TdHlsZShhLGIsZCxlLGYpfSl9fSx7a2V5OiJyZXNldFN0eWxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8dGhpcy5ib3hlcy5sZW5ndGg7YSsrKXt2YXIgYj10aGlzLmJveGVzW2FdO2Iuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9fX0se2tleToicmVzZXRBbmltYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGEpe2lmKGEudHlwZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImFuaW1hdGlvbmVuZCIpPj0wKXt2YXIgYj1hLnRhcmdldHx8YS5zcmNFbGVtZW50O2IuY2xhc3NOYW1lPWIuY2xhc3NOYW1lLnJlcGxhY2UodGhpcy5jb25maWcuYW5pbWF0ZUNsYXNzLCIiKS50cmltKCl9fX0se2tleToiY3VzdG9tU3R5bGUiLHZhbHVlOmZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGImJnRoaXMuY2FjaGVBbmltYXRpb25OYW1lKGEpLGEuc3R5bGUudmlzaWJpbGl0eT1iPyJoaWRkZW4iOiJ2aXNpYmxlIixjJiZ0aGlzLnZlbmRvclNldChhLnN0eWxlLHthbmltYXRpb25EdXJhdGlvbjpjfSksZCYmdGhpcy52ZW5kb3JTZXQoYS5zdHlsZSx7YW5pbWF0aW9uRGVsYXk6ZH0pLGUmJnRoaXMudmVuZG9yU2V0KGEuc3R5bGUse2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OmV9KSx0aGlzLnZlbmRvclNldChhLnN0eWxlLHthbmltYXRpb25OYW1lOmI/Im5vbmUiOnRoaXMuY2FjaGVkQW5pbWF0aW9uTmFtZShhKX0pLGF9fSx7a2V5OiJ2ZW5kb3JTZXQiLHZhbHVlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9YltjXTthWyIiK2NdPWQ7Zm9yKHZhciBlPTA7ZTx0aGlzLnZlbmRvcnMubGVuZ3RoO2UrKyl7dmFyIGY9dGhpcy52ZW5kb3JzW2VdO2FbIiIrZitjLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Muc3Vic3RyKDEpXT1kfX19fSx7a2V5OiJ2ZW5kb3JDU1MiLHZhbHVlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXEoYSksZD1jLmdldFByb3BlcnR5Q1NTVmFsdWUoYiksZT0wO2U8dGhpcy52ZW5kb3JzLmxlbmd0aDtlKyspe3ZhciBmPXRoaXMudmVuZG9yc1tlXTtkPWR8fGMuZ2V0UHJvcGVydHlDU1NWYWx1ZSgiLSIrZisiLSIrYil9cmV0dXJuIGR9fSx7a2V5OiJhbmltYXRpb25OYW1lIix2YWx1ZTpmdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7dHJ5e2I9dGhpcy52ZW5kb3JDU1MoYSwiYW5pbWF0aW9uLW5hbWUiKS5jc3NUZXh0fWNhdGNoKGMpe2I9cShhKS5nZXRQcm9wZXJ0eVZhbHVlKCJhbmltYXRpb24tbmFtZSIpfXJldHVybiJub25lIj09PWI/IiI6Yn19LHtrZXk6ImNhY2hlQW5pbWF0aW9uTmFtZSIsdmFsdWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYW5pbWF0aW9uTmFtZUNhY2hlLnNldChhLHRoaXMuYW5pbWF0aW9uTmFtZShhKSl9fSx7a2V5OiJjYWNoZWRBbmltYXRpb25OYW1lIix2YWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hbmltYXRpb25OYW1lQ2FjaGUuZ2V0KGEpfX0se2tleToic2Nyb2xsSGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbGVkPSEwfX0se2tleToic2Nyb2xsQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5zY3JvbGxlZCl7dGhpcy5zY3JvbGxlZD0hMTtmb3IodmFyIGE9W10sYj0wO2I8dGhpcy5ib3hlcy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmJveGVzW2JdO2lmKGMpe2lmKHRoaXMuaXNWaXNpYmxlKGMpKXt0aGlzLnNob3coYyk7Y29udGludWV9YS5wdXNoKGMpfX10aGlzLmJveGVzPWEsdGhpcy5ib3hlcy5sZW5ndGh8fHRoaXMuY29uZmlnLmxpdmV8fHRoaXMuc3RvcCgpfX19LHtrZXk6Im9mZnNldFRvcCIsdmFsdWU6ZnVuY3Rpb24oYSl7Zm9yKDt2b2lkIDA9PT1hLm9mZnNldFRvcDspYT1hLnBhcmVudE5vZGU7Zm9yKHZhciBiPWEub2Zmc2V0VG9wO2Eub2Zmc2V0UGFyZW50OylhPWEub2Zmc2V0UGFyZW50LGIrPWEub2Zmc2V0VG9wO3JldHVybiBifX0se2tleToiaXNWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgiZGF0YS13b3ctb2Zmc2V0Iil8fHRoaXMuY29uZmlnLm9mZnNldCxjPXRoaXMuY29uZmlnLnNjcm9sbENvbnRhaW5lciYmdGhpcy5jb25maWcuc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcHx8d2luZG93LnBhZ2VZT2Zmc2V0LGQ9YytNYXRoLm1pbih0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0LGsoKSktYixlPXRoaXMub2Zmc2V0VG9wKGEpLGY9ZSthLmNsaWVudEhlaWdodDtyZXR1cm4gZD49ZSYmZj49Y319LHtrZXk6ImRpc2FibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmNvbmZpZy5tb2JpbGUmJmYobmF2aWdhdG9yLnVzZXJBZ2VudCl9fV0pLGF9KCk7YlsiZGVmYXVsdCJdPXIsYS5leHBvcnRzPWJbImRlZmF1bHQiXX0pOw=="}},"time_used":986,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":976,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/33074d3ff5d0cd2d.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.425Z","timestamp":1785126646425,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/33074d3ff5d0cd2d.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\npriority: u=3,i=?0\r\naccess-control-allow-origin: *\r\nage: 5011835\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"33074d3ff5d0cd2d.js\"\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com https://vitals.vercel-insights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nlast-modified: Fri, 29 May 2026 10:19:15 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/33074d3ff5d0cd2d.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::4kx7s-1780114811396-bbddbacd8b5d\r\nx-xss-protection: 1; mode=block\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iBPDaF%2FWNo3RHOCgeM8V57CBJcbwUkEHQO6dXtH%2FMm0vRYPQm%2Ftfn9AzCMoEaxJ%2BuvSJYLNYhvQH31MW33BAWyLxd3lgATQP4bAYBZroJApgEW4GS1StMoK8qLsh\"}]}\r\ncf-cache-status: HIT\r\ncontent-encoding: zstd\r\netag: W/\"992603cebc96287b9bf186c47928c4d2\"\r\ncf-ray: a218e9242ffe2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":282,"size_decoded":2359,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with no line terminators","md5":"992603cebc96287b9bf186c47928c4d2","sha1":"8a86c102cf1671f6d0cf3b6b5598fff510a4b79d","sha256":"93abe3bbe2a336a05186632225cfa198e5969ab56080e1163da35e41ae9facaf","sha512":"06cc3005d9c8ffe1f27e81eac61fddab10c3e07cdca8c183315799b19b177a9f9dd2043bd1c9c92364578b78d69640c31014db6cca25a74972244784f2de74a2","ssdeep":"","tlshash":"e4d02b702250fcd8408aa4cc8836424bf529247262fe3495d7ae8cb1a174f0c51e1955","first_seen":"2026-02-04T14:24:19.894391Z","last_seen":"2026-07-27T08:07:37.445319Z","times_seen":2488,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDkxOTQ3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJ3YXJuT25jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49ZT0+e319XSk7"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/youtubei/v1/log_event?alt=json","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:49.863Z","timestamp":1785126649863,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /youtubei/v1/log_event?alt=json HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nX-Goog-Request-Time: 1785126649844\r\nContent-Type: application/json\r\nX-Goog-Visitor-Id: Cgs1YU5pcnRuWE9uTSj2vZvTBjIoCgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgF2LfAgrcAjIwLllUPWFyNG51TUpKYWtYWWZhYXVtV2tEZUtXekFnWEJ3ajJpbXJRV1BudkVBY2kzOV80WDhXMkdCYndpa0NUU3BRaWlZLTBVS2dRYkJlanQyRTR1UUQ5UHQtcTh5QktiVk5hY2JoMHRCVFpSYzJjM1U2SjZDTUV4NEZKdzJrSklGM193S1NvcEZVc1RyckJYTTBnOGo3ei11WC1yNXdsQm1hQWt3NTBjSGc1dWRTQngtWnN0MzhYYWtQZWFXNFdBTXZ5RGM2RDh4Vzg5dnVFdl9MVzFNcktZUVNiN1NUU1h6ZlJaNzJ4NUQyWjBJeEE5Y3BNc29BdUpfTVZOYzZqUFZRY2lkYlRJVkk5YjE1TmVPUEhXWC1vcVJHS29lbVFrbzdRQkhkSnBvRWlQcW1zNUc2Ukh2UDlBRkN6MmhYbXpwbTQ5a3k2TGlsTFpHa1hmMElUYUdPUDlUUQ%3D%3D\r\nX-Goog-Event-Time: 1785126649844\r\nX-YouTube-Client-Name: 56\r\nX-YouTube-Client-Version: 2.20260724.01.00\r\nX-YouTube-Device: cbr=Firefox\u0026cbrver=134.0\u0026ceng=Gecko\u0026cengver=134.0\u0026cos=Windows\u0026cosver=10.0\u0026cplatform=DESKTOP\r\nX-YouTube-Page-CL: 953206010\r\nX-YouTube-Page-Label: youtube.embeds.web_20260724_01_RC00\r\nX-YouTube-Utc-Offset: 0\r\nX-YouTube-Time-Zone: UTC\r\nX-YouTube-Ad-Signals: dt=1785126646562\u0026flash=0\u0026frm=2\u0026u_tz\u0026u_his=2\u0026u_h=1024\u0026u_w=1280\u0026u_ah=1024\u0026u_aw=1280\u0026u_cd=24\u0026bc=31\u0026bih=-12245933\u0026biw=-12245933\u0026brdim=0%2C0%2C0%2C0%2C1280%2C0%2C1280%2C1024%2C315%2C315\u0026vis=1\u0026wgl=true\u0026ca_type=image\r\nContent-Length: 12983\r\nSec-Fetch-Storage-Access: none\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":12983,"data":"{\"context\":{\"client\":{\"hl\":\"en\",\"gl\":\"NO\",\"clientName\":56,\"clientVersion\":\"2.20260724.01.00\",\"configInfo\":{\"appInstallData\":\"CPa9m9MGEParsAUQuOTOHBCHrM4cEK-GzxwQvYqwBRCDh7giEMGP0BwQieTRHBDevM4cEL2ZsAUQyvuAExCG4YATEJ3QsAUQi_fPHBCW79EcEPjEgBMQpKnRHBCu1s8cEODq0RwQx_yAExD58tEcEL6E0RwQibDOHBDp-NEcEIqHuCIQ_LLOHBCfz4ATEI6Q0RwQufDRHBDJ9oATEJmNsQUQ4LfRHBDa984cEL22rgUQvKTQHBCdhrgiEO_e0RwQ8bTQHBCBzc4cEOOHuCIQ9vfRHBC2-IATEIiQ0RwQzN-uBRD06dEcEJnz0RwqaENBTVNTUlZDLVpxLURNZVVFcFVDbkE3NUZYS2tCdUFXcU5VUHlBTU0zdzNjQnVRRzBMbnBDektnckFRRGtLNEQteWEyNUFia2hSZlF6QWJFa2dYTFBjVW4yZFVGM0N6bVJ1NHVIUWM9MAA%3D\"},\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\",\"browserName\":\"Firefox\",\"browserVersion\":\"134.0\",\"osName\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"windowWidthPoints\":315,\"windowHeightPoints\":315},\"thirdParty\":{\"embedUrl\":\"https://www.bitifinex.live/\"}},\"events\":[{\"eventTimeMs\":1785126646570,\"latencyActionTicked\":{\"tickName\":\"mm_is\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646572,\"latencyActionTicked\":{\"tickName\":\"mm_ie\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646576,\"latencyActionTicked\":{\"tickName\":\"ep_init_cus\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646577,\"latencyActionTicked\":{\"tickName\":\"ep_init_eps\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646577,\"latencyActionTicked\":{\"tickName\":\"ep_init_epe\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646577,\"latencyActionTicked\":{\"tickName\":\"ep_init_cue\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646805,\"latencyActionTicked\":{\"tickName\":\"pe\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646806,\"latencyActionTicked\":{\"tickName\":\"ep_init_wes\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646292,\"latencyActionTicked\":{\"tickName\":\"srt\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646192,\"latencyActionBaselined\":{\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646235,\"latencyActionTicked\":{\"tickName\":\"nreqs\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646292,\"latencyActionTicked\":{\"tickName\":\"nress\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646304,\"latencyActionTicked\":{\"tickName\":\"nrese\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646197,\"latencyActionTicked\":{\"tickName\":\"ndnss\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646199,\"latencyActionTicked\":{\"tickName\":\"ndnse\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646201,\"latencyActionTicked\":{\"tickName\":\"ntcps\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646235,\"latencyActionTicked\":{\"tickName\":\"ntcpe\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646210,\"latencyActionTicked\":{\"tickName\":\"nstcps\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646235,\"latencyActionTicked\":{\"tickName\":\"ntcpe\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646415,\"latencyActionTicked\":{\"tickName\":\"wffs\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646490,\"latencyActionTicked\":{\"tickName\":\"wffe\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646404,\"latencyActionTicked\":{\"tickName\":\"rsf_pj\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646483,\"latencyActionTicked\":{\"tickName\":\"rse_pj\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646403,\"latencyActionTicked\":{\"tickName\":\"rsf_pc\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646461,\"latencyActionTicked\":{\"tickName\":\"rse_pc\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646404,\"latencyActionTicked\":{\"tickName\":\"rsf_ecj\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646473,\"latencyActionTicked\":{\"tickName\":\"rse_ecj\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646404,\"latencyActionTicked\":{\"tickName\":\"rsf_ecc\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646454,\"latencyActionTicked\":{\"tickName\":\"rse_ecc\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646811,\"latencyActionInfo\":{\"isNavigation\":true,\"actionType\":\"LATENCY_ACTION_VIDEO_PREVIEW\",\"httpProtocol\":\"h2\",\"transportProtocol\":\"tcp\",\"isVisible\":true,\"loadType\":\"cold\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646560,\"latencyActionTicked\":{\"tickName\":\"rses_dpj\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646816,\"latencyActionTicked\":{\"tickName\":\"ep_init_wee\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646818,\"latencyActionInfo\":{\"serverTimeMs\":39,\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785126646852,\"screenCreated\":{\"csn\":\"cBHoEJ9RW9eGAXPy\",\"pageVe\":{\"veType\":16623,\"youtubeData\":{\"servletData\":{\"serializedServletEventId\":\"9t5maoT7DoDZq7YPgcO1wQY\"}}}},\"context\":{\"lastActivityMs\":\"18\"}},{\"eventTimeMs\":1785126646853,\"latencyActionInfo\":{\"clientScreenNonce\":\"cBHoEJ9RW9eGAXPy\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785126646853,\"screenCreated\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"pageVe\":{\"veType\":32594},\"implicitGesture\":{\"parentCsn\":\"cBHoEJ9RW9eGAXPy\",\"gesturedVe\":{\"veType\":16623},\"gestureType\":\"INTERACTION_LOGGING_GESTURE_TYPE_AUTOMATED\"}},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785126646853,\"visualElementHidden\":{\"csn\":\"cBHoEJ9RW9eGAXPy\",\"ve\":{\"veType\":16623},\"eventType\":16},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785126646853,\"latencyActionInfo\":{\"clientScreenNonce\":\"m6WeA4C2nkUSe8Z9\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785126646854,\"visualElementAttached\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"trackingParams\":\"CAAQru4BIhMIibuE_YLylQMVb5b0Bx0xhDUZygEE2ut0fg==\"}]},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785126646856,\"latencyActionTicked\":{\"tickName\":\"qoes\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"22\"}},{\"eventTimeMs\":1785126646856,\"latencyActionTicked\":{\"tickName\":\"fs\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"22\"}},{\"eventTimeMs\":1785126646884,\"latencyActionInfo\":{\"clientPlaybackNonce\":\"iGUptmHqVAPTEAWg\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"51\"}},{\"eventTimeMs\":1785126646886,\"latencyActionTicked\":{\"tickName\":\"ep_init_pr\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"52\"}},{\"eventTimeMs\":1785126647318,\"latencyActionTicked\":{\"tickName\":\"pot_ist\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"485\"}},{\"eventTimeMs\":1785126647443,\"latencyActionTicked\":{\"tickName\":\"ep_init_ijs\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"610\"}},{\"eventTimeMs\":1785126647445,\"latencyActionTicked\":{\"tickName\":\"ep_init_ije\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"612\"}},{\"eventTimeMs\":1785126647447,\"latencyActionTicked\":{\"tickName\":\"ep_init_rs\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"613\"}},{\"eventTimeMs\":1785126647451,\"latencyActionTicked\":{\"tickName\":\"ep_init_re\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"618\"}},{\"eventTimeMs\":1785126647484,\"visualElementAttached\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":28572,\"veCounter\":2,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"651\"}},{\"eventTimeMs\":1785126647484,\"visualElementShown\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"ve\":{\"veType\":28572,\"veCounter\":2,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"651\"}},{\"eventTimeMs\":1785126647514,\"latencyActionTicked\":{\"tickName\":\"ftr\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"680\"}},{\"eventTimeMs\":1785126647561,\"foregroundHeartbeatScreenAssociated\":{\"clientDocumentNonce\":\"8wQceCNmeTYlYe0k\",\"clientScreenNonce\":\"cBHoEJ9RW9eGAXPy\"},\"context\":{\"lastActivityMs\":\"727\"}},{\"eventTimeMs\":1785126647561,\"foregroundHeartbeatScreenAssociated\":{\"clientDocumentNonce\":\"8wQceCNmeTYlYe0k\",\"clientScreenNonce\":\"m6WeA4C2nkUSe8Z9\"},\"context\":{\"lastActivityMs\":\"727\"}},{\"eventTimeMs\":1785126647771,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWMSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIRCgMKAW8KBgoEYUdJZhICCAEiEQoDCgF0CgYKBGFHSWYSAggBIhEKAwoBaAoGCgRhR0lmEgIIEA==\"},\"context\":{\"lastActivityMs\":\"937\"}},{\"eventTimeMs\":1785126647773,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWwSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAADdAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAJkAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAmQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAJkAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAQQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAAABAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAO0AiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAkQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAEEAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAoQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAP0AiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAmQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAABRAIhgKAwoBdAoGCgRhR0lmEgkRAAAAAADAbUA=\"},\"context\":{\"lastActivityMs\":\"938\"}},{\"eventTimeMs\":1785126647843,\"latencyActionTicked\":{\"tickName\":\"pot_if\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"1009\"}},{\"eventTimeMs\":1785126647843,\"latencyActionTicked\":{\"tickName\":\"pot_cms\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"1009\"}},{\"eventTimeMs\":1785126647844,\"latencyActionTicked\":{\"tickName\":\"pot_cmf\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"1010\"}},{\"eventTimeMs\":1785126648774,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChYvY2xpZW50X3N0cmVhbXovYmcvZnJzEhAKDgoIYm90Z3VhcmQSAjUzGgJtayITCgYKBGFHSWYSCREAAAAAABCcQA==\"},\"context\":{\"lastActivityMs\":\"1940\"}},{\"eventTimeMs\":1785126648775,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWMSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIRCgMKAW4KBgoEYUdJZhICCAEiEQoDCgFtCgYKBGFHSWYSAggB\"},\"context\":{\"lastActivityMs\":\"1942\"}},{\"eventTimeMs\":1785126648775,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWwSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIYCgMKAW4KBgoEYUdJZhIJEQAAAAAAAC5AIhgKAwoBaQoGCgRhR0lmEgkRAAAAAAAA8D8iGAoDCgFvCgYKBGFHSWYSCREAAAAAAFiAQCIYCgMKAWMKBgoEYUdJZhIJEQAAAAAAAAAAIhgKAwoBQwoGCgRhR0lmEgkRAAAAAAAA8D8iGAoDCgF4CgYKBGFHSWYSCREAAAAAAAAAACIYCgMKAW0KBgoEYUdJZhIJEQAAAAAAAPA/\"},\"context\":{\"lastActivityMs\":\"1942\"}},{\"eventTimeMs\":1785126649454,\"visualElementAttached\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":23851,\"veCounter\":3,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"2\"}},{\"eventTimeMs\":1785126649454,\"visualElementShown\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"ve\":{\"veType\":23851,\"veCounter\":3,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"2\"}},{\"eventTimeMs\":1785126649454,\"visualElementAttached\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":36925,\"veCounter\":4,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"3\"}},{\"eventTimeMs\":1785126649454,\"visualElementShown\":{\"csn\":\"m6WeA4C2nkUSe8Z9\",\"ve\":{\"veType\":36925,\"veCounter\":4,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"3\"}},{\"eventTimeMs\":1785126649454,\"latencyActionTicked\":{\"tickName\":\"ftl\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"3\"}},{\"eventTimeMs\":1785126649454,\"latencyActionTicked\":{\"tickName\":\"ol\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"3\"}},{\"eventTimeMs\":1785126649455,\"latencyActionTicked\":{\"tickName\":\"ol\",\"clientActionNonce\":\"kigLqyCsfT-FL_Pu\"},\"context\":{\"lastActivityMs\":\"3\"}}],\"serializedClientEventId\":{\"serializedEventId\":\"9t5maoT7DoDZq7YPgcO1wQY\",\"clientCounter\":\"25177\"}}"}},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: br\r\ndate: Mon, 27 Jul 2026 04:30:49 GMT\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 31\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":28,"size_decoded":381,"mime_type":"application/json; charset=UTF-8","magic":"JSON text data","md5":"5e1fa6fd9abd549a576f3f24b1d3c8d4","sha1":"d5335d7f7d33be6a0b663f03b2df4df2521c4a87","sha256":"d7d5e54ad1e33d7ab49c664323ced79cb9723ff15e9764cd0edc3e15208e8336","sha512":"96e6938256b8e5924210f8e8e54a85d783fa2c01d5fbe5d2a8df7655fed9ef8be73c7cd8bf042c3c84302134b7418711397eece32f081eb7e824a519cc06b4e3","ssdeep":"","tlshash":"1c800038a8200b22232000ea202888322ac8c8203200ca28830200280cc0a0000a2282","first_seen":"2023-04-05T04:40:08Z","last_seen":"2026-07-27T08:08:00.999396Z","times_seen":282028,"resource_available":false,"data":"ewogICJyZXNwb25zZUNvbnRleHQiOiB7fQp9Cg=="}},"time_used":32,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":32,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.html","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.627Z","timestamp":1785126645627,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.html HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 03:44:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 189\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, must-revalidate\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":315,"size_decoded":446,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a34ac19f4afae63adc5d2f7bc970c07f","sha1":"a82190fc530c265aa40a045c21770d967f4767b8","sha256":"d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3","sha512":"42e53d96e5961e95b7a984d9c9778a1d3bd8ee0c87b8b3b515fa31f67c2d073c8565afc2f4b962c43668c4efa1e478da9bb0ecffa79479c7e880731bc4c55765","ssdeep":"","tlshash":"b0e0e75f41473347402252907dc110d1d505236b797161fd3d85b4ab501dc3dc99f7dc","first_seen":"2023-03-07T01:02:33Z","last_seen":"2026-07-27T07:40:01.471307Z","times_seen":146478,"resource_available":true,"data":"PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VOIj4KPGh0bWw+PGhlYWQ+Cjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT4KPC9oZWFkPjxib2R5Pgo8aDE+Tm90IEZvdW5kPC9oMT4KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+CjxwPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kCmVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LjwvcD4KPC9ib2R5PjwvaHRtbD4K"}},"time_used":83,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":83,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/GmOzih6I1zs","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.197Z","timestamp":1785126646197,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /embed/GmOzih6I1zs HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/html; charset=utf-8\r\nx-content-type-options: nosniff\r\ncontent-security-policy: script-src 'unsafe-eval' 'self' 'unsafe-inline' https://www.google.com https://apis.google.com https://ssl.gstatic.com https://www.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com https://*.youtube.com https://*.google.com https://*.gstatic.com https://youtube.com https://www.youtube.com https://google.com https://*.doubleclick.net https://*.googleapis.com https://www.googleadservices.com https://tpc.googlesyndication.com https://www.youtubekids.com https://www.youtube-nocookie.com https://www.youtubeeducation.com https://www-onepick-opensocial.googleusercontent.com;report-uri https://csp.withgoogle.com/csp/youtube_main/allowlist, require-trusted-types-for 'script', base-uri 'self';object-src 'none';script-src 'nonce-lXRt4aNpc25omls21oBFOQ' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';report-uri https://csp.withgoogle.com/csp/youtube_main/strict\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\np3p: CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"\r\nstrict-transport-security: max-age=31536000\r\npermissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*\r\norigin-trial: AmhMBR6zCLzDDxpW+HfpP67BqwIknWnyMOXOQGfzYswFmJe+fgaI6XZgAzcxOrzNtP7hEDsOo1jdjFnVr2IdxQ4AAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTc1ODA2NzE5OSwiaXNTdWJkb21haW4iOnRydWV9, AiDEBptUfVeO93q48VdVMe/ubupazdAl8AaHP+NBzdnW8quUcHdzJUyGSfrmtpKJu7EOvwRp9ug2rEo3XU+WMAMAAAB2eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJEZXZpY2VCb3VuZFNlc3Npb25DcmVkZW50aWFsczIiLCJleHBpcnkiOjE3NzQzMTA0MDAsImlzU3ViZG9tYWluIjp0cnVlfQ==\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube_main\"\r\ncross-origin-resource-policy: cross-origin\r\nreport-to: {\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]},{\"group\":\"youtube_main-connectionallowlist\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/youtube_main/connectionallowlist\"}]}\r\ncross-origin-embedder-policy-report-only: require-corp; report-to=\"youtube_main\"\r\ncontent-encoding: br\r\nserver: ESF\r\nx-xss-protection: 0\r\nset-cookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; expires=Sat, 23-Jan-2027 04:30:46 GMT; path=/; domain=.youtube.com; Secure; HttpOnly; SameSite=none\nYSC=GIGPEnpYUrE; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none\n__Secure-YEC=; Domain=.youtube.com; Expires=Tue, 31-Oct-2023 04:30:46 GMT; Path=/; Secure; HttpOnly; SameSite=lax\nVISITOR_INFO1_LIVE=5aNirtnXOnM; Domain=.youtube.com; Expires=Sat, 23-Jan-2027 04:30:46 GMT; Path=/; Secure; HttpOnly; SameSite=none\nVISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; Domain=.youtube.com; Expires=Sat, 23-Jan-2027 04:30:46 GMT; Path=/; Secure; HttpOnly; SameSite=none\n__Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D; Domain=youtube.com; Expires=Sat, 23-Jan-2027 04:30:46 GMT; Path=/; Secure; HttpOnly; SameSite=none; Partitioned\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":143473,"size_decoded":60077,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (52128)","md5":"459475ebdda8fc9527fb21f591c986c8","sha1":"ce1ee8ca24e7f59bf795a54da2f04c7326169740","sha256":"97aab12b7b245af2341e8f7896a1c8adf9865274be8b6331d37f6e79a8e2278c","sha512":"7f5c03a88f9a70a8a2dcc247ec6f7b508f10800f2b2e9c7d849ac21eb47de9baf74bb80d0da68596ffaa748175049dc00bedc8689f075db5f45802a7e6f7f25d","ssdeep":"1536:qUQvMvjMFzYVM6bBszh5Fdro43UEwgAWWs52qnCZ8tUhadu8IHOsAWyIypKc8qG:8Sj2Ygtr0EwgHWs52yS88OEyUc8r","tlshash":"80e31a240868a876c993d447eeb9ff3e9cf8023947c9956dbcbad75c01dc6620e6f412","first_seen":"2026-07-27T04:31:33.175052Z","last_seen":"2026-07-27T04:31:33.175052Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iIGRpcj0ibHRyIiBkYXRhLWNhc3QtYXBpLWVuYWJsZWQ9InRydWUiPjxoZWFkPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+PHNjcmlwdCBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+aWYgKCd1bmRlZmluZWQnID09IHR5cGVvZiBTeW1ib2wgfHwgJ3VuZGVmaW5lZCcgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvcikge2RlbGV0ZSBBcnJheS5wcm90b3R5cGUuZW50cmllczt9PC9zY3JpcHQ+PHN0eWxlIG5hbWU9Ind3dy1yb2JvdG8iIG5vbmNlPSJYd2dxVHl6dEVxM3BaamZFQk5YOHRBIj5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNHVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswNDYwLTA1MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNpVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzQ1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMUYwMC0xRkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTMtVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzcwLTAzNzcsVSswMzdBLTAzN0YsVSswMzg0LTAzOEEsVSswMzhDLFUrMDM4RS0wM0ExLFUrMDNBMy0wM0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXdDVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAyLTAzMDMsVSswMzA1LFUrMDMwNy0wMzA4LFUrMDMxMCxVKzAzMTIsVSswMzE1LFUrMDMxQSxVKzAzMjYtMDMyNyxVKzAzMkMsVSswMzJGLTAzMzAsVSswMzMyLTAzMzMsVSswMzM4LFUrMDMzQSxVKzAzNDYsVSswMzRELFUrMDM5MS0wM0ExLFUrMDNBMy0wM0E5LFUrMDNCMS0wM0M5LFUrMDNEMSxVKzAzRDUtMDNENixVKzAzRjAtMDNGMSxVKzAzRjQtMDNGNSxVKzIwMTYtMjAxNyxVKzIwMzQtMjAzOCxVKzIwM0MsVSsyMDQwLFUrMjA0MyxVKzIwNDcsVSsyMDUwLFUrMjA1NyxVKzIwNUYsVSsyMDcwLTIwNzEsVSsyMDc0LTIwOEUsVSsyMDkwLTIwOUMsVSsyMEQwLTIwREMsVSsyMEUxLFUrMjBFNS0yMEVGLFUrMjEwMC0yMTEyLFUrMjExNC0yMTE1LFUrMjExNy0yMTIxLFUrMjEyMy0yMTRGLFUrMjE5MCxVKzIxOTIsVSsyMTk0LTIxQUUsVSsyMUIwLTIxRTUsVSsyMUYxLTIxRjIsVSsyMUY0LTIyMTEsVSsyMjEzLTIyMTQsVSsyMjE2LTIyRkYsVSsyMzA4LTIzMEIsVSsyMzEwLFUrMjMxOSxVKzIzMUMtMjMyMSxVKzIzMzYtMjM3QSxVKzIzN0MsVSsyMzk1LFUrMjM5Qi0yM0I3LFUrMjNEMCxVKzIzREMtMjNFMSxVKzI0NzQtMjQ3NSxVKzI1QUYsVSsyNUIzLFUrMjVCNyxVKzI1QkQsVSsyNUMxLFUrMjVDQSxVKzI1Q0MsVSsyNUZCLFUrMjY2RC0yNjZGLFUrMjdDMC0yN0ZGLFUrMjkwMC0yQUZGLFUrMkIwRS0yQjExLFUrMkIzMC0yQjRDLFUrMkJGRSxVKzMwMzAsVStGRjVCLFUrRkY1RCxVKzFENDAwLTFEN0ZGLFUrMUVFMDAtMUVFRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1heEtVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDEtMDAwQyxVKzAwMEUtMDAxRixVKzAwN0YtMDA5RixVKzIwREQtMjBFMCxVKzIwRTItMjBFNCxVKzIxNTAtMjE4RixVKzIxOTAsVSsyMTkyLFUrMjE5NC0yMTk5LFUrMjFBRixVKzIxRTYtMjFGMCxVKzIxRjMsVSsyMjE4LTIyMTksVSsyMjk5LFUrMjJDNC0yMkM2LFUrMjMwMC0yNDNGLFUrMjQ0MC0yNDRBLFUrMjQ2MC0yNEZGLFUrMjVBMC0yN0JGLFUrMjgwMC0yOEZGLFUrMjkyMS0yOTIyLFUrMjk4MSxVKzI5QkYsVSsyOUVCLFUrMkIwMC0yQkZGLFUrNERDMC00REZGLFUrRkZGOS1GRkZCLFUrMTAxNDAtMTAxOEUsVSsxMDE5MC0xMDE5QyxVKzEwMUEwLFUrMTAxRDAtMTAxRkQsVSsxMDJFMC0xMDJGQixVKzEwRTYwLTEwRTdFLFUrMUQyQzAtMUQyRDMsVSsxRDJFMC0xRDM3RixVKzFGMDAwLTFGMEZGLFUrMUYxMDAtMUYxQUQsVSsxRjFFNi0xRjFGRixVKzFGMzBELTFGMzBGLFUrMUYzMTUsVSsxRjMxQyxVKzFGMzFFLFUrMUYzMjAtMUYzMkMsVSsxRjMzNixVKzFGMzc4LFUrMUYzN0QsVSsxRjM4MixVKzFGMzkzLTFGMzlGLFUrMUYzQTctMUYzQTgsVSsxRjNBQy0xRjNBRixVKzFGM0MyLFUrMUYzQzQtMUYzQzYsVSsxRjNDQS0xRjNDRSxVKzFGM0Q0LTFGM0UwLFUrMUYzRUQsVSsxRjNGMS0xRjNGMyxVKzFGM0Y1LTFGM0Y3LFUrMUY0MDgsVSsxRjQxNSxVKzFGNDFGLFUrMUY0MjYsVSsxRjQzRixVKzFGNDQxLTFGNDQyLFUrMUY0NDQsVSsxRjQ0Ni0xRjQ0OSxVKzFGNDRDLTFGNDRFLFUrMUY0NTMsVSsxRjQ2QSxVKzFGNDdELFUrMUY0QTMsVSsxRjRCMCxVKzFGNEIzLFUrMUY0QjksVSsxRjRCQixVKzFGNEJGLFUrMUY0QzgtMUY0Q0IsVSsxRjRENixVKzFGNERBLFUrMUY0REYsVSsxRjRFMy0xRjRFNixVKzFGNEVBLTFGNEVELFUrMUY0RjcsVSsxRjRGOS0xRjRGQixVKzFGNEZELTFGNEZFLFUrMUY1MDMsVSsxRjUwNy0xRjUwQixVKzFGNTBELFUrMUY1MTItMUY1MTMsVSsxRjUzRS0xRjU0QSxVKzFGNTRGLTFGNUZBLFUrMUY2MTAsVSsxRjY1MC0xRjY3RixVKzFGNjg3LFUrMUY2OEQsVSsxRjY5MSxVKzFGNjk0LFUrMUY2OTgsVSsxRjZBRCxVKzFGNkIyLFUrMUY2QjktMUY2QkEsVSsxRjZCQyxVKzFGNkM2LTFGNkNGLFUrMUY2RDMtMUY2RDcsVSsxRjZFMC0xRjZFQSxVKzFGNkYwLTFGNkYzLFUrMUY2RjctMUY2RkMsVSsxRjcwMC0xRjdGRixVKzFGODAwLTFGODBCLFUrMUY4MTAtMUY4NDcsVSsxRjg1MC0xRjg1OSxVKzFGODYwLTFGODg3LFUrMUY4OTAtMUY4QUQsVSsxRjhCMC0xRjhCQixVKzFGOEMwLTFGOEMxLFUrMUY5MDAtMUY5MEIsVSsxRjkzQixVKzFGOTQ2LFUrMUY5ODQsVSsxRjk5NixVKzFGOUU5LFUrMUZBMDAtMUZBNkYsVSsxRkE3MC0xRkE3QyxVKzFGQTgwLTFGQTg5LFUrMUZBOEYtMUZBQzYsVSsxRkFDRS0xRkFEQyxVKzFGQURGLTFGQUU5LFUrMUZBRjAtMUZBRjgsVSsxRkIwMC0xRkJGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzT1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNLVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMTAwLTAyQkEsVSswMkJELTAyQzUsVSswMkM3LTAyQ0MsVSswMkNFLTAyRDcsVSswMkRELTAyRkYsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsxRDAwLTFEQkYsVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzeVVCQS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDAtMDBGRixVKzAxMzEsVSswMTUyLTAxNTMsVSswMkJCLTAyQkMsVSswMkM2LFUrMDJEQSxVKzAyREMsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsyMDAwLTIwNkYsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzR1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDQ2MC0wNTJGLFUrMUM4MC0xQzhBLFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzaVVCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwMSxVKzA0MDAtMDQ1RixVKzA0OTAtMDQ5MSxVKzA0QjAtMDRCMSxVKzIxMTY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0NVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzFGMDAtMUZGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzLVVCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWF3Q1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwMi0wMzAzLFUrMDMwNSxVKzAzMDctMDMwOCxVKzAzMTAsVSswMzEyLFUrMDMxNSxVKzAzMUEsVSswMzI2LTAzMjcsVSswMzJDLFUrMDMyRi0wMzMwLFUrMDMzMi0wMzMzLFUrMDMzOCxVKzAzM0EsVSswMzQ2LFUrMDM0RCxVKzAzOTEtMDNBMSxVKzAzQTMtMDNBOSxVKzAzQjEtMDNDOSxVKzAzRDEsVSswM0Q1LTAzRDYsVSswM0YwLTAzRjEsVSswM0Y0LTAzRjUsVSsyMDE2LTIwMTcsVSsyMDM0LTIwMzgsVSsyMDNDLFUrMjA0MCxVKzIwNDMsVSsyMDQ3LFUrMjA1MCxVKzIwNTcsVSsyMDVGLFUrMjA3MC0yMDcxLFUrMjA3NC0yMDhFLFUrMjA5MC0yMDlDLFUrMjBEMC0yMERDLFUrMjBFMSxVKzIwRTUtMjBFRixVKzIxMDAtMjExMixVKzIxMTQtMjExNSxVKzIxMTctMjEyMSxVKzIxMjMtMjE0RixVKzIxOTAsVSsyMTkyLFUrMjE5NC0yMUFFLFUrMjFCMC0yMUU1LFUrMjFGMS0yMUYyLFUrMjFGNC0yMjExLFUrMjIxMy0yMjE0LFUrMjIxNi0yMkZGLFUrMjMwOC0yMzBCLFUrMjMxMCxVKzIzMTksVSsyMzFDLTIzMjEsVSsyMzM2LTIzN0EsVSsyMzdDLFUrMjM5NSxVKzIzOUItMjNCNyxVKzIzRDAsVSsyM0RDLTIzRTEsVSsyNDc0LTI0NzUsVSsyNUFGLFUrMjVCMyxVKzI1QjcsVSsyNUJELFUrMjVDMSxVKzI1Q0EsVSsyNUNDLFUrMjVGQixVKzI2NkQtMjY2RixVKzI3QzAtMjdGRixVKzI5MDAtMkFGRixVKzJCMEUtMkIxMSxVKzJCMzAtMkI0QyxVKzJCRkUsVSszMDMwLFUrRkY1QixVK0ZGNUQsVSsxRDQwMC0xRDdGRixVKzFFRTAwLTFFRUZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXhLVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAxLTAwMEMsVSswMDBFLTAwMUYsVSswMDdGLTAwOUYsVSsyMERELTIwRTAsVSsyMEUyLTIwRTQsVSsyMTUwLTIxOEYsVSsyMTkwLFUrMjE5MixVKzIxOTQtMjE5OSxVKzIxQUYsVSsyMUU2LTIxRjAsVSsyMUYzLFUrMjIxOC0yMjE5LFUrMjI5OSxVKzIyQzQtMjJDNixVKzIzMDAtMjQzRixVKzI0NDAtMjQ0QSxVKzI0NjAtMjRGRixVKzI1QTAtMjdCRixVKzI4MDAtMjhGRixVKzI5MjEtMjkyMixVKzI5ODEsVSsyOUJGLFUrMjlFQixVKzJCMDAtMkJGRixVKzREQzAtNERGRixVK0ZGRjktRkZGQixVKzEwMTQwLTEwMThFLFUrMTAxOTAtMTAxOUMsVSsxMDFBMCxVKzEwMUQwLTEwMUZELFUrMTAyRTAtMTAyRkIsVSsxMEU2MC0xMEU3RSxVKzFEMkMwLTFEMkQzLFUrMUQyRTAtMUQzN0YsVSsxRjAwMC0xRjBGRixVKzFGMTAwLTFGMUFELFUrMUYxRTYtMUYxRkYsVSsxRjMwRC0xRjMwRixVKzFGMzE1LFUrMUYzMUMsVSsxRjMxRSxVKzFGMzIwLTFGMzJDLFUrMUYzMzYsVSsxRjM3OCxVKzFGMzdELFUrMUYzODIsVSsxRjM5My0xRjM5RixVKzFGM0E3LTFGM0E4LFUrMUYzQUMtMUYzQUYsVSsxRjNDMixVKzFGM0M0LTFGM0M2LFUrMUYzQ0EtMUYzQ0UsVSsxRjNENC0xRjNFMCxVKzFGM0VELFUrMUYzRjEtMUYzRjMsVSsxRjNGNS0xRjNGNyxVKzFGNDA4LFUrMUY0MTUsVSsxRjQxRixVKzFGNDI2LFUrMUY0M0YsVSsxRjQ0MS0xRjQ0MixVKzFGNDQ0LFUrMUY0NDYtMUY0NDksVSsxRjQ0Qy0xRjQ0RSxVKzFGNDUzLFUrMUY0NkEsVSsxRjQ3RCxVKzFGNEEzLFUrMUY0QjAsVSsxRjRCMyxVKzFGNEI5LFUrMUY0QkIsVSsxRjRCRixVKzFGNEM4LTFGNENCLFUrMUY0RDYsVSsxRjREQSxVKzFGNERGLFUrMUY0RTMtMUY0RTYsVSsxRjRFQS0xRjRFRCxVKzFGNEY3LFUrMUY0RjktMUY0RkIsVSsxRjRGRC0xRjRGRSxVKzFGNTAzLFUrMUY1MDctMUY1MEIsVSsxRjUwRCxVKzFGNTEyLTFGNTEzLFUrMUY1M0UtMUY1NEEsVSsxRjU0Ri0xRjVGQSxVKzFGNjEwLFUrMUY2NTAtMUY2N0YsVSsxRjY4NyxVKzFGNjhELFUrMUY2OTEsVSsxRjY5NCxVKzFGNjk4LFUrMUY2QUQsVSsxRjZCMixVKzFGNkI5LTFGNkJBLFUrMUY2QkMsVSsxRjZDNi0xRjZDRixVKzFGNkQzLTFGNkQ3LFUrMUY2RTAtMUY2RUEsVSsxRjZGMC0xRjZGMyxVKzFGNkY3LTFGNkZDLFUrMUY3MDAtMUY3RkYsVSsxRjgwMC0xRjgwQixVKzFGODEwLTFGODQ3LFUrMUY4NTAtMUY4NTksVSsxRjg2MC0xRjg4NyxVKzFGODkwLTFGOEFELFUrMUY4QjAtMUY4QkIsVSsxRjhDMC0xRjhDMSxVKzFGOTAwLTFGOTBCLFUrMUY5M0IsVSsxRjk0NixVKzFGOTg0LFUrMUY5OTYsVSsxRjlFOSxVKzFGQTAwLTFGQTZGLFUrMUZBNzAtMUZBN0MsVSsxRkE4MC0xRkE4OSxVKzFGQThGLTFGQUM2LFUrMUZBQ0UtMUZBREMsVSsxRkFERi0xRkFFOSxVKzFGQUYwLTFGQUY4LFUrMUZCMDAtMUZCRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM09VQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzS1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMC0wMkJBLFUrMDJCRC0wMkM1LFUrMDJDNy0wMkNDLFUrMDJDRS0wMkQ3LFUrMDJERC0wMkZGLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMUQwMC0xREJGLFUrMUUwMC0xRTlGLFUrMUVGMi0xRUZGLFUrMjAyMCxVKzIwQTAtMjBBQixVKzIwQUQtMjBDMCxVKzIxMTMsVSsyQzYwLTJDN0YsVStBNzIwLUE3RkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM3lVQkEud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAwLTAwRkYsVSswMTMxLFUrMDE1Mi0wMTUzLFUrMDJCQi0wMkJDLFUrMDJDNixVKzAyREEsVSswMkRDLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMjAwMC0yMDZGLFUrMjBBQyxVKzIxMjIsVSsyMTkxLFUrMjE5MyxVKzIyMTIsVSsyMjE1LFUrRkVGRixVK0ZGRkQ7fTwvc3R5bGU+PHNjcmlwdCBuYW1lPSJ3d3ctcm9ib3RvIiBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+aWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLmxvYWQpIHtkb2N1bWVudC5mb250cy5sb2FkKCI0MDAgMTBwdCBSb2JvdG8iLCAiRSIpOyBkb2N1bWVudC5mb250cy5sb2FkKCI1MDAgMTBwdCBSb2JvdG8iLCAiRSIpO308L3NjcmlwdD48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9zL3BsYXllci83YTc5NjljMi93d3ctcGxheWVyLmNzcyIgbmFtZT0id3d3LXBsYXllciIgbm9uY2U9Ilh3Z3FUeXp0RXEzcFpqZkVCTlg4dEEiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3MvXy95dGVtYmVkcy9fL3NzL2s9eXRlbWJlZHMuYmFzZS5OeG5pdXVaRVRady5MLkY0Lk8vYW09QUFBQWdBL2Q9MS9icj0xL3JzPUFHS015d0d4NHR4aEZKaGNydXRLWXNmUG1TNG1GYzZvSlEvbT1yb290LGJhc2UiIG5hbWU9ImVtYmVkLXVpIiBub25jZT0iWHdncVR5enRFcTNwWmpmRUJOWDh0QSI+PHN0eWxlIG5vbmNlPSJYd2dxVHl6dEVxM3BaamZFQk5YOHRBIj5odG1sIHtvdmVyZmxvdzogaGlkZGVuO31ib2R5IHtmb250OiAxMnB4IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGNvbG9yOiAjZmZmOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbjogMDsgcGFkZGluZzogMDt9I3BsYXllciB7d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTt9aDEge3RleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICNmZmY7fWgzIHttYXJnaW4tdG9wOiA2cHg7IG1hcmdpbi1ib3R0b206IDNweDt9LnBsYXllci11bmF2YWlsYWJsZSB7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IHBhZGRpbmc6IDI1cHg7IGZvbnQtc2l6ZTogMTNweDsgYmFja2dyb3VuZDogdXJsKC9pbWcvbWVoNy5wbmcpIDUwJSA2NSUgbm8tcmVwZWF0O30ucGxheWVyLXVuYXZhaWxhYmxlIC5tZXNzYWdlIHt0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW46IDAgLTVweCAxNXB4OyBwYWRkaW5nOiAwIDVweCAxNHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg4ODsgZm9udC1zaXplOiAxOXB4OyBmb250LXdlaWdodDogbm9ybWFsO30ucGxheWVyLXVuYXZhaWxhYmxlIGEge2NvbG9yOiAjMTY3YWM2OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7fTwvc3R5bGU+PHNjcmlwdCBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+dmFyIHl0Y3NpPXtndDpmdW5jdGlvbihuKXtuPShufHwiIikrImRhdGFfIjtyZXR1cm4geXRjc2lbbl18fCh5dGNzaVtuXT17dGljazp7fSxpbmZvOnt9LGdlbDp7cHJlTG9nZ2VkR2VsSW5mb3M6W119fSl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3cmJndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0P2Z1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0K3dpbmRvdy5wZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX0sdGljazpmdW5jdGlvbihsLHQsbil7dmFyIHRpY2tzPXl0Y3NpLmd0KG4pLnRpY2s7dmFyIHY9dHx8eXRjc2kubm93KCk7aWYodGlja3NbbF0pe3RpY2tzWyJfIitsXT10aWNrc1siXyIrbF18fFt0aWNrc1tsXV07dGlja3NbIl8iK2xdLnB1c2godil9dGlja3NbbF09CnZ9LGluZm86ZnVuY3Rpb24oayx2LG4pe3l0Y3NpLmd0KG4pLmluZm9ba109dn0saW5mb0dlbDpmdW5jdGlvbihwLG4pe3l0Y3NpLmd0KG4pLmdlbC5wcmVMb2dnZWRHZWxJbmZvcy5wdXNoKHApfSxzZXRTdGFydDpmdW5jdGlvbih0LG4pe3l0Y3NpLnRpY2soIl9zdGFydCIsdCxuKX19OwooZnVuY3Rpb24odyxkKXtmdW5jdGlvbiBpc0dlY2tvKCl7aWYoIXcubmF2aWdhdG9yKXJldHVybiBmYWxzZTt0cnl7aWYody5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmdy5uYXZpZ2F0b3IudXNlckFnZW50RGF0YS5icmFuZHMmJncubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuYnJhbmRzLmxlbmd0aCl7dmFyIGJyYW5kcz13Lm5hdmlnYXRvci51c2VyQWdlbnREYXRhLmJyYW5kczt2YXIgaT0wO2Zvcig7aTxicmFuZHMubGVuZ3RoO2krKylpZihicmFuZHNbaV0mJmJyYW5kc1tpXS5icmFuZD09PSJGaXJlZm94IilyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9fWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlO30pfWlmKCF3Lm5hdmlnYXRvci51c2VyQWdlbnQpcmV0dXJuIGZhbHNlO3ZhciB1YT13Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIHVhLmluZGV4T2YoIkdlY2tvIik+MCYmdWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKTwwJiZ1YS5pbmRleE9mKCJFZGdlIik8CjAmJnVhLmluZGV4T2YoIlRyaWRlbnQiKTwwJiZ1YS5pbmRleE9mKCJNU0lFIik8MH15dGNzaS5zZXRTdGFydCh3LnBlcmZvcm1hbmNlP3cucGVyZm9ybWFuY2UudGltaW5nLnJlc3BvbnNlU3RhcnQ6bnVsbCk7dmFyIGlzUHJlcmVuZGVyPShkLnZpc2liaWxpdHlTdGF0ZXx8ZC53ZWJraXRWaXNpYmlsaXR5U3RhdGUpPT0icHJlcmVuZGVyIjt2YXIgdk5hbWU9IWQudmlzaWJpbGl0eVN0YXRlJiZkLndlYmtpdFZpc2liaWxpdHlTdGF0ZT8id2Via2l0dmlzaWJpbGl0eWNoYW5nZSI6InZpc2liaWxpdHljaGFuZ2UiO2lmKGlzUHJlcmVuZGVyKXt2YXIgc3RhcnRUaWNrPWZ1bmN0aW9uKCl7eXRjc2kuc2V0U3RhcnQoKTtkLnJlbW92ZUV2ZW50TGlzdGVuZXIodk5hbWUsc3RhcnRUaWNrKX07ZC5hZGRFdmVudExpc3RlbmVyKHZOYW1lLHN0YXJ0VGljayxmYWxzZSl9aWYoZC5hZGRFdmVudExpc3RlbmVyKWQuYWRkRXZlbnRMaXN0ZW5lcih2TmFtZSxmdW5jdGlvbigpe3l0Y3NpLnRpY2soInZjIil9LApmYWxzZSk7aWYoaXNHZWNrbygpKXt2YXIgaXNIaWRkZW49KGQudmlzaWJpbGl0eVN0YXRlfHxkLndlYmtpdFZpc2liaWxpdHlTdGF0ZSk9PSJoaWRkZW4iO2lmKGlzSGlkZGVuKXl0Y3NpLnRpY2soInZjIil9dmFyIHNsdD1mdW5jdGlvbihlbCx0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG49eXRjc2kubm93KCk7ZWwubG9hZFRpbWU9bjtpZihlbC5zbHQpZWwuc2x0KCl9LHQpfTt3Ll9feXRSSUw9ZnVuY3Rpb24oZWwpe2lmKCFlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdGh1bWIiKSlpZih3LnJlcXVlc3RBbmltYXRpb25GcmFtZSl3LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3NsdChlbCwwKX0pO2Vsc2Ugc2x0KGVsLDE2KX19KSh3aW5kb3csZG9jdW1lbnQpOwo8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIj52YXIgeXRjZmc9e2Q6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lnl0JiZ5dC5jb25maWdffHx5dGNmZy5kYXRhX3x8KHl0Y2ZnLmRhdGFfPXt9KX0sZ2V0OmZ1bmN0aW9uKGssbyl7cmV0dXJuIGsgaW4geXRjZmcuZCgpP3l0Y2ZnLmQoKVtrXTpvfSxzZXQ6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7aWYoYS5sZW5ndGg+MSl5dGNmZy5kKClbYVswXV09YVsxXTtlbHNle3ZhciBrO2ZvcihrIGluIGFbMF0peXRjZmcuZCgpW2tdPWFbMF1ba119fX07Cnl0Y2ZnLnNldCh7IkNMSUVOVF9DQU5BUllfU1RBVEUiOiJub25lIiwiREVWSUNFIjoiY2JyXHUwMDNkRmlyZWZveFx1MDAyNmNicnZlclx1MDAzZDEzNC4wXHUwMDI2Y2VuZ1x1MDAzZEdlY2tvXHUwMDI2Y2VuZ3Zlclx1MDAzZDEzNC4wXHUwMDI2Y29zXHUwMDNkV2luZG93c1x1MDAyNmNvc3Zlclx1MDAzZDEwLjBcdTAwMjZjcGxhdGZvcm1cdTAwM2RERVNLVE9QIiwiRVZFTlRfSUQiOiI5dDVtYW9UN0RvRFpxN1lQZ2NPMXdRWSIsIkVYUEVSSU1FTlRfRkxBR1MiOnsiYWJfZGV0X2FwbSI6dHJ1ZSwiYWJfZGV0X2VsX2giOnRydWUsImFjdGlvbl9jb21wYW5pb25fY2VudGVyX2FsaWduX2Rlc2NyaXB0aW9uIjp0cnVlLCJhbGxvd19za2lwX25ldHdvcmtsZXNzIjp0cnVlLCJhbHdheXNfc2VuZF9hbmRfd3JpdGUiOnRydWUsImF0dF93ZWJfcmVjb3JkX21ldHJpY3MiOnRydWUsImF0dG11c2kiOnRydWUsImMzX2VuYWJsZV9idXR0b25faW1wcmVzc2lvbl9sb2dnaW5nIjp0cnVlLCJjM193YXRjaF9wYWdlX2NvbXBvbmVudCI6dHJ1ZSwiY2FuY2VsX3BlbmRpbmdfbmF2cyI6dHJ1ZSwiY2xpZW50X3VpX2VuYWJsZV9tdWx0aV90cmFja19hdWRpb19vbl93ZWJfZW1iZWRkZWRfcGxheWVyIjp0cnVlLCJjb25maWdfYWdlX3JlcG9ydF9raWxsc3dpdGNoIjp0cnVlLCJjb3dfb3B0aW1pemVfaWRvbV9jb21wYXQiOnRydWUsImNzaV9vbl9nZWwiOnRydWUsImRlZHVwcGluZ19zZXJ2ZXJfdmUiOnRydWUsImRlbGhpX213ZWJfY29sb3JmdWxfc2QiOnRydWUsImRlbGhpX213ZWJfY29sb3JmdWxfc2RfdjIiOnRydWUsImRlcHJlY2F0ZV9wYWlyX3NlcnZsZXRfZW5hYmxlZCI6dHJ1ZSwiZGVza3RvcF9zcGFya2xlc19saWdodF9jdGFfYnV0dG9uIjp0cnVlLCJkaXNhYmxlX2NoaWxkX25vZGVfYXV0b19mb3JtYXR0ZWRfc3RyaW5ncyI6dHJ1ZSwiZGlzYWJsZV9sb2dfdG9fdmlzaXRvcl9sYXllciI6dHJ1ZSwiZGlzYWJsZV9taW5pX2FwcF9jb250YWluZXJfd2ViX3ZpZXdfaW5zZXRzIjp0cnVlLCJkaXNhYmxlX3BhY2ZfbG9nZ2luZ19mb3JfbWVtb3J5X2xpbWl0ZWRfdHYiOnRydWUsImVtYmVkc19kZXNrdG9mZl9ub25tb2JpbGVfZWxpZ2libGUiOnRydWUsImVtYmVkc19kZXNrdG9mZl9ub25tb2JpbGVfZW5hYmxlZCI6dHJ1ZSwiZW1iZWRzX2Rlc2t0b2ZmX3NhdmVfdXNlcl92b2x1bWUiOnRydWUsImVtYmVkc19kZXNrdG9wX2VuYWJsZV92b2x1bWVfc2xpZGVyIjp0cnVlLCJlbWJlZHNfZW5hYmxlX2NoYW5uZWxfc3Vic2NyaWJlX2RlcHJlY2F0aW9uIjp0cnVlLCJlbWJlZHNfZW5hYmxlX2RlbGF5X2NvbnRyb2xzX2hpZGUiOnRydWUsImVtYmVkc19lbmFibGVfZWlkX2VuZm9yY2VtZW50X2Zvcl95b3V0dWJlIjp0cnVlLCJlbWJlZHNfZW5hYmxlX2VtYzNkc19wZnAiOnRydWUsImVtYmVkc19tdXRlZF9hdXRvcGxheV9zb3VuZF9maXgiOnRydWUsImVtYmVkc19zZXJ2ZV9lczZfY2xpZW50Ijp0cnVlLCJlbWJlZHNfd2ViX3VwZGF0ZWRfc2hvcnRzX2RlZmluaXRpb25fZml4Ijp0cnVlLCJlbmFibGVfYTExeV9mb2N1c19maXhfZm9yX21hY19wYW5lbF9vbl9kZXNrdG9wIjp0cnVlLCJlbmFibGVfYWNjZXNzX2NvZGVfc2VydmljZV9ycGMiOnRydWUsImVuYWJsZV9hY3RpdmVfdmlld19kaXNwbGF5X2FkX3JlbmRlcmVyX3dlYl9ob21lIjp0cnVlLCJlbmFibGVfYWlfc2VhcmNoX2lubmVydHViZV9tMF9maXhlcyI6dHJ1ZSwiZW5hYmxlX2FuZHJvaWRfd2ViX3ZpZXdfdG9wX2luc2V0c19idWdmaXgiOnRydWUsImVuYWJsZV9hdHRlbnRpb25fbG9nZ2luZ19tZWFzdXJlX29uX3Nob3duIjp0cnVlLCJlbmFibGVfYXVfdTE2X3ZlcmlmeV9hZ2VfcGFnZSI6dHJ1ZSwiZW5hYmxlX2F1dG9tb3RpdmVfZm9ybV9mYWN0b3JfY2hlY2siOnRydWUsImVuYWJsZV9jbGllbnRfc2xpX2xvZ2dpbmciOnRydWUsImVuYWJsZV9jbGllbnRfc3RyZWFtel93ZWIiOnRydWUsImVuYWJsZV9jbGllbnRfdmVfc3BlYyI6dHJ1ZSwiZW5hYmxlX2Nsb3VkX3NhdmVfZXJyb3JfcG9wdXBfYWZ0ZXJfcmV0cnkiOnRydWUsImVuYWJsZV9jdXN0b21fc2NydWJiZXJfdjIiOnRydWUsImVuYWJsZV9kYWlfc2RmX2g1X3ByZXJvbGwiOnRydWUsImVuYWJsZV9kYXRhc3luY19pZF9oZWFkZXJfaW5fd2ViX3Zzc19waW5ncyI6dHJ1ZSwiZW5hYmxlX2RlZmF1bHRfbW9ub19jdGFfbWlncmF0aW9uX3dlYl9jbGllbnQiOnRydWUsImVuYWJsZV9kb2NrZWRfY2hhdF9tZXNzYWdlcyI6dHJ1ZSwiZW5hYmxlX2Ryb3Bfc2hhZG93X2V4cGVyaW1lbnQiOnRydWUsImVuYWJsZV9lbWJlZHNfbmV3X2NhcHRpb25fbGFuZ3VhZ2VfcGlja2VyIjp0cnVlLCJlbmFibGVfZW5kZW1pY19oaWdoX2Njdl9zbWVhcmluZ19oNSI6dHJ1ZSwiZW5hYmxlX2VudGl0eV9zdG9yZV9mcm9tX2RlcGVuZGVuY3lfaW5qZWN0aW9uIjp0cnVlLCJlbmFibGVfaW5saW5lX211dGVkX3BsYXliYWNrX29uX3dlYl9zZWFyY2giOnRydWUsImVuYWJsZV9pbmxpbmVfbXV0ZWRfcGxheWJhY2tfb25fd2ViX3NlYXJjaF9mb3JfdmRjIjp0cnVlLCJlbmFibGVfaW5saW5lX211dGVkX3BsYXliYWNrX29uX3dlYl9zZWFyY2hfZm9yX3ZkY2IiOnRydWUsImVuYWJsZV9sb2dnaW5nX2ZpcnN0X3VzZXJfYWN0aW9uX2FmdGVyX2dhbWVfcmVhZHkiOnRydWUsImVuYWJsZV9sdGNfcGFyYW1fZmV0Y2hfZnJvbV9pbm5lcnR1YmUiOnRydWUsImVuYWJsZV9tMF9sb2dnaW5nX2ZpeGVzIjp0cnVlLCJlbmFibGVfbWVudV9yZW5kZXJlcl9idXR0b25faW5fbXdlYl9oY2xyIjp0cnVlLCJlbmFibGVfbWluaV9hcHBfY29tbWFuZF9oYW5kbGVyX213ZWJfZml4Ijp0cnVlLCJlbmFibGVfbWluaV9ndWlkZV9kb3dubG9hZHNfaXRlbSI6dHJ1ZSwiZW5hYmxlX21peGVkX2RpcmVjdGlvbl9mb3JtYXR0ZWRfc3RyaW5ncyI6dHJ1ZSwiZW5hYmxlX213ZWJfYXVkaW9fdHJhY2tfcGlja2VyIjp0cnVlLCJlbmFibGVfbXdlYl9rZXlib2FyZF9zaG9ydGN1dHMiOnRydWUsImVuYWJsZV9uYW1lc19oYW5kbGVzX2FjY291bnRfc3dpdGNoZXIiOnRydWUsImVuYWJsZV9uYXRpdmVfYnJpZGdlX3ZpZXdfc2F2ZWRfcGxheWFibGVzIjp0cnVlLCJlbmFibGVfbmV0d29ya19yZXF1ZXN0X2xvZ2dpbmdfb25fZ2FtZV9ldmVudHMiOnRydWUsImVuYWJsZV9uZXdfcGFpZF9wcm9kdWN0X3BsYWNlbWVudCI6dHJ1ZSwiZW5hYmxlX29wZW5faW5fbmV3X3RhYl9pY29uX2Zvcl9zaG9ydF9kcl9mb3JfZGVza3RvcF9zZWFyY2giOnRydWUsImVuYWJsZV9vcGVuX3l0X2NvbnRlbnQiOnRydWUsImVuYWJsZV9vcmlnaW5fcXVlcnlfcGFyYW1ldGVyX2J1Z2ZpeCI6dHJ1ZSwiZW5hYmxlX3BhdXNlX2Fkc19vbl95dHZfaHRtbDUiOnRydWUsImVuYWJsZV9wYXltZW50c19wdXJjaGFzZV9tYW5hZ2VyIjp0cnVlLCJlbmFibGVfcGRwX2ljb25fcHJlZmV0Y2giOnRydWUsImVuYWJsZV9wbGFjZV9waXZvdF91cmwiOnRydWUsImVuYWJsZV9wbGF5YWJsZV9jb250YWluZXJfc2F2ZV9idXR0b24iOnRydWUsImVuYWJsZV9wbGF5YWJsZV9lbnRpdHlfc2F2ZV9tZW51X2l0ZW0iOnRydWUsImVuYWJsZV9wdGNfaG9tZV9sb2NhdGlvbl9vbl93ZWIiOnRydWUsImVuYWJsZV9wdl9zY3JlZW5fbW9kZXJuX3RleHQiOnRydWUsImVuYWJsZV9ydGFfbWFuYWdlciI6dHJ1ZSwiZW5hYmxlX3NjcmVlbl9tYW5hZ2VyX2xheWVyX3NlcGFyYXRpb24iOnRydWUsImVuYWJsZV9zZGZfY29tcGFuaW9uX2g1Ijp0cnVlLCJlbmFibGVfc2RmX2RhaV9oNV9taWRyb2xsIjp0cnVlLCJlbmFibGVfc2RmX2g1X2VuZGVtaWNfbWlkX3Bvc3Rfcm9sbCI6dHJ1ZSwiZW5hYmxlX3NkZl9vbl9oNV91bnBsdWdnZWRfdm9kX21pZHJvbGwiOnRydWUsImVuYWJsZV9zZGZfc2hvcnRzX3BsYXllcl9ieXRlc19oNSI6dHJ1ZSwiZW5hYmxlX3NlbmRpbmdfdW53cmFwcGVkX2dhbWVfYXVkaW9fYXNfc2VyaWFsaXplZF9tZXRhZGF0YSI6dHJ1ZSwiZW5hYmxlX3NldF92aWRlb19pZF9pbl9zaG9ydHNfbG9ja3VwX3ZpZXdfbW9kZWwiOnRydWUsImVuYWJsZV9zZnZfZWZmZWN0X3Bpdm90X3VybCI6dHJ1ZSwiZW5hYmxlX3Nob3J0c19uZXdfY2Fyb3VzZWwiOnRydWUsImVuYWJsZV9za2lwX2FkX2d1aWRhbmNlX3Byb21wdCI6dHJ1ZSwiZW5hYmxlX3NraXBwYWJsZV9hZHNfZm9yX3VucGx1Z2dlZF9hZF9wb2QiOnRydWUsImVuYWJsZV9zbWVhcmluZ19leHBhbnNpb25fZGFpIjp0cnVlLCJlbmFibGVfc3VwZXhfbXdlYl9kZW1vX3dlYmZlIjp0cnVlLCJlbmFibGVfdGltZV9vdXRfbWVzc2FnZXMiOnRydWUsImVuYWJsZV90aW1lbGluZV92aWV3X21vZGVybl90cmFuc2NyaXB0X2ZlIjp0cnVlLCJlbmFibGVfdmlkZW9fZGlzcGxheV9jb21wYWN0X2J1dHRvbl9ncm91cF9mb3JfZGVza3RvcF9zZWFyY2giOnRydWUsImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiOnRydWUsImVuYWJsZV93ZWJfaG9tZV90b3BfbGFuZHNjYXBlX2ltYWdlX2xheW91dF9sZXZlbF9jbGljayI6dHJ1ZSwiZW5hYmxlX3dlYl9zaG9ydHNfYXVkaW9fdHJhY2siOnRydWUsImVuYWJsZV93ZWJfdGllcmVkX2dlbCI6dHJ1ZSwiZW5hYmxlX3dpbmRvd19jb25zdHJhaW5lZF9idXlfZmxvd19kaWFsb2ciOnRydWUsImVuYWJsZV93aXpfcXVldWVfZWZmZWN0X2FuZF9vbl9pbml0X2luaXRpYWxfcnVucyI6dHJ1ZSwiZW5hYmxlX3lwY19zcGlubmVycyI6dHJ1ZSwiZW5hYmxlX3l0X2F0YV9pZnJhbWVfYXV0aHVzZXIiOnRydWUsImV4cG9ydF9uZXR3b3JrbGVzc19vcHRpb25zIjp0cnVlLCJleHBvcnRfcGxheWVyX3ZlcnNpb25fdG9feXRjb25maWciOnRydWUsImZpbGxfc2luZ2xlX3ZpZGVvX3dpdGhfbm90aWZ5X3RvX2xhc3IiOnRydWUsImZpeF9hZHNfdHJhY2tpbmdfZm9yX3N3Zl9jb25maWdfZGVwcmVjYXRpb25fbXdlYiI6dHJ1ZSwiaDVfY29tcGFuaW9uX2VuYWJsZV9hZGNwbl9tYWNyb19zdWJzdGl0dXRpb25fZm9yX2NsaWNrX3BpbmdzIjp0cnVlLCJoNV9pbnBsYXllcl9lbmFibGVfYWRjcG5fbWFjcm9fc3Vic3RpdHV0aW9uX2Zvcl9jbGlja19waW5ncyI6dHJ1ZSwiaDVfcmVzZXRfY2FjaGVfYW5kX2ZpbHRlcl9iZWZvcmVfdXBkYXRlX21hc3RoZWFkIjp0cnVlLCJoaWRlX2NoYW5uZWxfY3JlYXRpb25fdGl0bGVfZm9yX213ZWIiOnRydWUsImhpZ2hfY2N2X2NsaWVudF9zaWRlX2NhY2hpbmdfaDUiOnRydWUsImh0bWw1X2xvZ190cmlnZ2VyX2V2ZW50c193aXRoX2RlYnVnX2RhdGEiOnRydWUsImh0bWw1X3NzZGFpX2VuYWJsZV9tZWRpYV9lbmRfY3VlX3JhbmdlIjp0cnVlLCJpZGJfaW1tZWRpYXRlX2NvbW1pdCI6dHJ1ZSwiaWxfYXR0YWNoX2NhY2hlX2xpbWl0Ijp0cnVlLCJpbF91c2Vfdmlld19tb2RlbF9sb2dnaW5nX2NvbnRleHQiOnRydWUsImlzX2Jyb3dzZXJfc3VwcG9ydF9mb3Jfd2ViY2FtX3N0cmVhbWluZyI6dHJ1ZSwianNvbl9jb25kZW5zZWRfcmVzcG9uc2UiOnRydWUsImtldmxhcl9maWx0ZXJfdW5rbm93bl9zb3VyY2UiOnRydWUsImtldmxhcl9nZWxfZXJyb3Jfcm91dGluZyI6dHJ1ZSwia2V2bGFyX3RyaW1fcGxheWVyX2JlaGF2aW9yIjp0cnVlLCJrZXZsYXJfd2F0Y2hfY2luZW1hdGljcyI6dHJ1ZSwibGltaXRfeXRjc2lfZGVidWdfYXJyYXlfc2l6ZSI6dHJ1ZSwibGl2ZV9jaGF0X2VuYWJsZV9ydGFfbWFuYWdlciI6dHJ1ZSwibG9nX2NsaWNrX3dpdGhfbGF5ZXJfZnJvbV9lbGVtZW50X2luX2NvbW1hbmRfaGFuZGxlciI6dHJ1ZSwibWF3X2VuYWJsZV9uZXR3b3JrX21hY2hpbmUiOnRydWUsIm1keF9lbmFibGVfcHJpdmFjeV9kaXNjbG9zdXJlX3VpIjp0cnVlLCJtZHhfbG9hZF9jYXN0X2FwaV9ib290c3RyYXBfc2NyaXB0Ijp0cnVlLCJtZWRpdW1fcHJvZ3Jlc3NfYmFyX21vZGlmaWNhdGlvbiI6dHJ1ZSwibW9iaWxlX2FjY291bnRfbWVudV9yZWZyZXNoIjp0cnVlLCJtd2ViX2FjY291bnRfbGlua2luZ19ub2FwcCI6dHJ1ZSwibXdlYl9hbGxvd19tb2Rlcm5fc2VhcmNoX3N1Z2dlc3RfYmVoYXZpb3IiOnRydWUsIm13ZWJfYW5pbWF0ZWRfYWN0aW9ucyI6dHJ1ZSwibXdlYl9hcHBfdXBzZWxsX2J1dHRvbl9kaXJlY3RfdG9fYXBwIjp0cnVlLCJtd2ViX2JhZGdlX3NoYXBlX2RlZnJhZyI6dHJ1ZSwibXdlYl9jM19hcHBfcHJvbW9fZW5hYmxlX3JlZmVycmluZ19hcHAiOnRydWUsIm13ZWJfYzNfZW5hYmxlX2FkYXB0aXZlX3NpZ25hbHMiOnRydWUsIm13ZWJfYzNfbGlicmFyeV9wYWdlX2VuYWJsZV9yZWNlbnRfc2hlbGYiOnRydWUsIm13ZWJfYzNfbWVudV9zaWduYWxzX3JlbmRlciI6dHJ1ZSwibXdlYl9jM19yZW1vdmVfd2ViX25hdmlnYXRpb25fZW5kcG9pbnRfZGF0YSI6dHJ1ZSwibXdlYl9jM190b2FzdF91c2Vfd2l6X3JlYWN0aXZlX3JlbmRlciI6dHJ1ZSwibXdlYl9jM191c2VfY2Fub25pY2FsX2Zyb21fcGxheWVyX3Jlc3BvbnNlIjp0cnVlLCJtd2ViX2NhcnZlX291dF9pb3NfYXBwX3N0b3JlX3JlZGlyZWN0Ijp0cnVlLCJtd2ViX2NhcnZlX291dF90ZXJtc19wYWdlcyI6dHJ1ZSwibXdlYl9jaW5lbWF0aWNfd2F0Y2giOnRydWUsIm13ZWJfY29tbWFuZF9oYW5kbGVyIjp0cnVlLCJtd2ViX2RlYnVnX3N0aWNreV9zZXR0aW5ncyI6dHJ1ZSwibXdlYl9kZWxheV93YXRjaF9pbml0aWFsX2RhdGEiOnRydWUsIm13ZWJfZGlzYWJsZV9zZWFyY2hiYXJfc2Nyb2xsIjp0cnVlLCJtd2ViX2VuYWJsZV9jbGlja190b19wbGF5X3BhdXNlIjp0cnVlLCJtd2ViX2VuYWJsZV9jb2xvcmZ1bF9haV9zdW1tYXJ5Ijp0cnVlLCJtd2ViX2VuYWJsZV9keW5hbWljX2RvdWJsZV90YXBfdG9fbGlrZSI6dHJ1ZSwibXdlYl9lbmFibGVfZmluZV9zY3J1YmJpbmdfZm9yX3JlY3MiOnRydWUsIm13ZWJfZW5hYmxlX2tldG9fYmF0Y2hfcGxheWVyX2Z1bGxzY3JlZW4iOnRydWUsIm13ZWJfZW5hYmxlX2tldG9fYmF0Y2hfcGxheWVyX3Byb2dyZXNzX2JhciI6dHJ1ZSwibXdlYl9lbmFibGVfa2V0b19iYXRjaF9wbGF5ZXJfdG9vbHRpcHMiOnRydWUsIm13ZWJfZW5hYmxlX2tldG9fY29udGVudCI6dHJ1ZSwibXdlYl9lbmFibGVfbG9ja3VwX3ZpZXdfbW9kZWxfZm9yX3VjcCI6dHJ1ZSwibXdlYl9lbmFibGVfbWl4X3BhbmVsX3RpdGxlX21ldGFkYXRhIjp0cnVlLCJtd2ViX2VuYWJsZV9tb3JlX2NodW5rcyI6dHJ1ZSwibXdlYl9lbmFibGVfbW9yZV9kcmF3ZXIiOnRydWUsIm13ZWJfZW5hYmxlX29wdGlvbmFsX2Z1bGxzY3JlZW5fbGFuZHNjYXBlX2xvY2tpbmciOnRydWUsIm13ZWJfZW5hYmxlX292ZXJsYXlfdG91Y2hfbWFuYWdlciI6dHJ1ZSwibXdlYl9lbmFibGVfcG9ydHJhaXRfZnVsbHNjcmVlbl9hY3Rpb25zIjp0cnVlLCJtd2ViX2VuYWJsZV9wcmVtaXVtX2NhcnZlX291dF9maXgiOnRydWUsIm13ZWJfZW5hYmxlX3JlZnJlc2hfZGV0ZWN0aW9uIjp0cnVlLCJtd2ViX2VuYWJsZV9zZWFyY2hfaW1wIjp0cnVlLCJtd2ViX2VuYWJsZV9zaG9ydHNfdmlkZW9fcHJlbG9hZCI6dHJ1ZSwibXdlYl9lbmFibGVfdHdvX2xpbmVfdGl0bGVfb25fc2hvcnRzIjp0cnVlLCJtd2ViX2VuYWJsZV92YXJpc3BlZWRfY29udHJvbGxlciI6dHJ1ZSwibXdlYl9lbmFibGVfdmlkZW9fbG9vcF90b2dnbGUiOnRydWUsIm13ZWJfZW5hYmxlX3dhdGNoX2ZlZWRfaW5maW5pdGVfc2Nyb2xsIjp0cnVlLCJtd2ViX2ZpeF9jb2xkX2xvYWRfcmVzcG9uc2VfYWN0aW9ucyI6dHJ1ZSwibXdlYl9maXhfbW9uaXRvcl92aXNpYmlsaXR5X2FmdGVyX3JlbmRlciI6dHJ1ZSwibXdlYl9mb3JjZV9pb3NfZmFsbGJhY2tfdG9fbmF0aXZlX2NvbnRyb2wiOnRydWUsIm13ZWJfZnBfYXV0b19mdWxsc2NyZWVuIjp0cnVlLCJtd2ViX2ZwX2VuYWJsZV9zaG9ydHNfc3dpcGVfbG9nZ2luZyI6dHJ1ZSwibXdlYl9mdWxsc2NyZWVuX2NvbnRyb2xzIjp0cnVlLCJtd2ViX2Z1bGxzY3JlZW5fY29udHJvbHNfYWN0aW9uX2J1dHRvbnMiOnRydWUsIm13ZWJfZnVsbHNjcmVlbl93YXRjaF9zeXN0ZW0iOnRydWUsIm13ZWJfZnVsbHlfcmVhY3RpdmVfY2IiOnRydWUsIm13ZWJfaG9tZV9yZWFjdGl2ZV9zaG9ydHMiOnRydWUsIm13ZWJfaW5uZXJ0dWJlX3NlYXJjaF9jb21tYW5kIjp0cnVlLCJtd2ViX2thaW9zX2VuYWJsZV9hdXRvcGxheV9zd2l0Y2hfdmlld19tb2RlbCI6dHJ1ZSwibXdlYl9sYW5nX2luX2h0bWwiOnRydWUsIm13ZWJfbGlrZV9idXR0b25fc3luY2VkX3dpdGhfZW50aXRpZXMiOnRydWUsIm13ZWJfbG9nb191c2VfaG9tZV9wYWdlX3ZlIjp0cnVlLCJtd2ViX2xvbmdfcHJlc3Nfc3BlZWR1cF92aWJyYXRpb24iOnRydWUsIm13ZWJfbmF0aXZlX2NvbnRyb2xfaW5fZmF1eF9mdWxsc2NyZWVuX3NoYXJlZCI6dHJ1ZSwibXdlYl9wbGF5ZXJfY29udHJvbF9vbl9ob3ZlciI6dHJ1ZSwibXdlYl9wbGF5ZXJfZGVsaGlfZHR0cyI6dHJ1ZSwibXdlYl9wbGF5ZXJfc2hvd19wcmV2aW91c19uZXh0X2J1dHRvbnNfaW5fcGxheWxpc3QiOnRydWUsIm13ZWJfcGxheWVyX3NraXBfbm9fb3Bfc3RhdGVfY2hhbmdlcyI6dHJ1ZSwibXdlYl9wbGF5ZXJfdXNlcl9zZWxlY3Rfbm9uZSI6dHJ1ZSwibXdlYl9wbGF5bGlzdF9lbmdhZ2VtZW50X3BhbmVsIjp0cnVlLCJtd2ViX3Byb2dyZXNzX2Jhcl9zZWVrX29uX21vdXNlX2NsaWNrIjp0cnVlLCJtd2ViX3Byb3BhZ2F0ZV9wbGF5ZXJfbGlua19jbGlja3MiOnRydWUsIm13ZWJfcHVsbF8yX2Z1bGwiOnRydWUsIm13ZWJfcHVsbF8yX2Z1bGxfZW5hYmxlX3RvdWNoX2hhbmRsZXJzIjp0cnVlLCJtd2ViX3NjaGVkdWxlX3dhcm1fd2F0Y2hfcmVzcG9uc2UiOnRydWUsIm13ZWJfc2VhcmNoX21heF93aWR0aF9saW1pdCI6dHJ1ZSwibXdlYl9zZWFyY2hib3hfbGVnYWN5X25hdmlnYXRpb24iOnRydWUsIm13ZWJfc2VlX2Zld2VyX3Nob3J0cyI6dHJ1ZSwibXdlYl9zaG9ydHNfY29tbWVudHNfcGFuZWxfaWRfY2hhbmdlIjp0cnVlLCJtd2ViX3Nob3J0c19lYXJseV9jb250aW51YXRpb24iOnRydWUsIm13ZWJfc2hvcnRzX2VuYWJsZV9sb25nX3ByZXNzX3NwZWVkdXAiOnRydWUsIm13ZWJfc2hvcnRzX292ZXJsYXlfZGVwcmVjYXRlX2thaW9zX2xheW91dCI6dHJ1ZSwibXdlYl9zaG93X3NpZ25faW5fYnV0dG9uX2Zyb21faGVhZGVyIjp0cnVlLCJtd2ViX3VzZV9taWNyb2Zvcm1hdF90aXRsZV9mb3JfcG9zdHMiOnRydWUsIm13ZWJfdXNlX3NlcnZlcl91cmxfb25fc3RhcnR1cCI6dHJ1ZSwibXdlYl93YXRjaF9jYXB0aW9uc19lbmFibGVfYXV0b190cmFuc2xhdGUiOnRydWUsIm13ZWJfd2F0Y2hfY2FwdGlvbnNfc2V0X2RlZmF1bHRfc2l6ZSI6dHJ1ZSwibXdlYl93YXRjaF9kZWxoaV9wbGF5ZXIiOnRydWUsIm13ZWJfd2F0Y2hfc3RvcF9zY2hlZHVsZXJfb25fcGxheWVyX3Jlc3BvbnNlIjp0cnVlLCJtd2ViX3dhdGNoZmVlZF9iaWdfdGh1bWJuYWlscyI6dHJ1ZSwibXdlYl95dF9zZWFyY2hib3giOnRydWUsIm5ldHdvcmtsZXNzX2xvZ2dpbmciOnRydWUsIm5vX2NsaWVudF92ZV9hdHRhY2hfdW5sZXNzX3Nob3duIjp0cnVlLCJwYWdlaWRfYXNfaGVhZGVyX3dlYiI6dHJ1ZSwicGxheWVyX2NvbnRyb2xzX2F1dG9uYXZfZml4Ijp0cnVlLCJwbGF5ZXJfY29udHJvbHNfc2tpcF9kb3VibGVfc2lnbmFsX3VwZGF0ZSI6dHJ1ZSwicGxheWVyX2NvbnRyb2xzX3VzZV9wbGF5ZXJfYXBpX2NvbnRleHQiOnRydWUsInBsYXllcl9jb250cm9sc192b2x1bWVfY29udHJvbHNfdXNlX3BsYXllcl9wcm9wcyI6dHJ1ZSwicG9seW1lcl9iYWRfYnVpbGRfbGFiZWxzIjp0cnVlLCJwb2x5bWVyX3ZlcmlmaXlfYXBwX3N0YXRlIjp0cnVlLCJxb2Vfc2VuZF9hbmRfd3JpdGUiOnRydWUsInJlbW92ZV9jaGV2cm9uX2Zyb21fYWRfZGlzY2xvc3VyZV9iYW5uZXJfaDUiOnRydWUsInJlbW92ZV9tYXN0aGVhZF9jaGFubmVsX2Jhbm5lcl9vbl9yZWZyZXNoIjp0cnVlLCJyZW1vdmVfc2xvdF9pZF9leGl0ZWRfdHJpZ2dlcl9mb3JfZGFpX2luX3BsYXllcl9zbG90X2V4cGlyZSI6dHJ1ZSwicm9zY2FzIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9lbmFibGVkIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2VuYWJsZWQiOnRydWUsInNlcnZpY2Vfd29ya2VyX3B1c2hfaG9tZV9wYWdlX3Byb21wdCI6dHJ1ZSwic2VydmljZV93b3JrZXJfcHVzaF93YXRjaF9wYWdlX3Byb21wdCI6dHJ1ZSwic2hlbGxfbG9hZF9nY2YiOnRydWUsInNob3J0ZW5faW5pdGlhbF9nZWxfYmF0Y2hfdGltZW91dCI6dHJ1ZSwic2hvcnRzX2VuYWJsZV9yZWVsX2Nhcm91c2VsIjp0cnVlLCJzaG91bGRfdXNlX3l0X3ZvaWNlX2VuZHBvaW50X2luX2thaW9zIjp0cnVlLCJzbWFydGVyX3ZlX2RlZHVwcGluZyI6dHJ1ZSwic3RvcF9oYW5kbGluZ19jbGlja19mb3Jfbm9uX3JlbmRlcmluZ19vdmVybGF5X2xheW91dCI6dHJ1ZSwic3VwcHJlc3NfZXJyb3JfMjA0X2xvZ2dpbmciOnRydWUsInN5bmNlZF9wYW5lbF9zY3JvbGxpbmdfY29udHJvbGxlciI6dHJ1ZSwidG9vbHRpcF9yZWZhY3Rvcl9mb3JfaG90a2V5Ijp0cnVlLCJ1c2VfZXZlbnRfdGltZV9tc19oZWFkZXIiOnRydWUsInVzZV9maWZvX2Zvcl9uZXR3b3JrbGVzcyI6dHJ1ZSwidXNlX3JlcXVlc3RfdGltZV9tc19oZWFkZXIiOnRydWUsInVzZV9zZXNzaW9uX2Jhc2VkX3NhbXBsaW5nIjp0cnVlLCJ1c2VfdGh1bWJuYWlsX292ZXJsYXlfdGltZV9zdGF0dXNfcmVuZGVyZXJfZm9yX2xpdmVfYmFkZ2UiOnRydWUsInZzc19maW5hbF9waW5nX3NlbmRfYW5kX3dyaXRlIjp0cnVlLCJ2c3NfcGxheWJhY2tfdXNlX3NlbmRfYW5kX3dyaXRlIjp0cnVlLCJ3YXRjaF9wdWJzdWJfcmVmYWN0b3IiOnRydWUsIndlYl9hZGFwdGl2ZV9yZXBlYXRfYXNlIjp0cnVlLCJ3ZWJfYWx3YXlzX2xvYWRfY2hhdF9zdXBwb3J0Ijp0cnVlLCJ3ZWJfYXBpX3VybCI6dHJ1ZSwid2ViX2F0dGVudGlvbl9sb2dnaW5nX2VuYWJsZWQiOnRydWUsIndlYl9hdHRlbnRpb25fbG9nZ2luZ19leHBvcnRfdG9fZ2VsIjp0cnVlLCJ3ZWJfYXR0cmlidXRlZF9zdHJpbmdfZGVlcF9lcXVhbF9idWdmaXgiOnRydWUsIndlYl9hdXRvbmF2X2FsbG93X29mZl9ieV9kZWZhdWx0Ijp0cnVlLCJ3ZWJfYnV0dG9uX29yX2FuY2hvcl9saXN0X2l0ZW0iOnRydWUsIndlYl9idXR0b25fdmlld19tb2RlbF9ub25fbnVsbGlzaF9kYXRhIjp0cnVlLCJ3ZWJfYnV0dG9uX3ZtX3JlZmFjdG9yX2Rpc2FibGVkIjp0cnVlLCJ3ZWJfYzNfbG9nX2FwcF9pbml0X2ZpbmlzaCI6dHJ1ZSwid2ViX2NvbW1lbnRfcGFuZWxfZWFzeV9leHBhbmQiOnRydWUsIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiOnRydWUsIndlYl9kZWR1cGVfdmVfZ3JhZnRpbmciOnRydWUsIndlYl9kaXNhYmxlX2JhY2tkcm9wX2ZpbHRlciI6dHJ1ZSwid2ViX2Rpc2FibGVfY2hpcF92aWV3X21vZGVsX211dGF0aW9uIjp0cnVlLCJ3ZWJfZW5hYmxlX2FiX3JzcF9jbCI6dHJ1ZSwid2ViX2VuYWJsZV9hZF9idXR0b25fc3R5bGVfb3ZlcnJpZGUiOnRydWUsIndlYl9lbmFibGVfYXNrX2Rpc2NsYWltZXJfdXBkYXRlIjp0cnVlLCJ3ZWJfZW5hYmxlX2Nhbm9uaWNhbF91cmxfbWFuYWdlciI6dHJ1ZSwid2ViX2VuYWJsZV9jb3Vyc2VfaWNvbl91cGRhdGUiOnRydWUsIndlYl9lbmFibGVfZW50aXR5X3Vwc2VydF9vbl91cGRhdGUiOnRydWUsIndlYl9lbmFibGVfZXJyb3JfMjA0Ijp0cnVlLCJ3ZWJfZW5hYmxlX2xhenlfY3NzIjp0cnVlLCJ3ZWJfZW5hYmxlX3RodW1ibmFpbF9vdmVybGF5X2FsaWdubWVudCI6dHJ1ZSwid2ViX2djZl9oYXNoZXNfaW5uZXJ0dWJlIjp0cnVlLCJ3ZWJfZ2VsX3RpbWVvdXRfY2FwIjp0cnVlLCJ3ZWJfaGlkZV95b3VyX2RhdGFfb25fYXV0b21vdGl2ZSI6dHJ1ZSwid2ViX2ltcF9lbmFibGVfY3NpX3N0YXJ0X3RpY2siOnRydWUsIndlYl9pbmNsdWRlX2Nvd190cmFjaW5nIjp0cnVlLCJ3ZWJfbW9ub21lcl93ZWJfY29tcG9uZW50X3dyYXBwZXJfaGFuZGxlX2Vycm9ycyI6dHJ1ZSwid2ViX25vbl9uYXZpZ2F0aW5nX2F0YWciOnRydWUsIndlYl9wYXJlbnRfdGFyZ2V0X2Zvcl9zaGVldHMiOnRydWUsIndlYl9wZXJzaXN0X3NlcnZlcl9hdXRvbmF2X3N0YXRlX29uX2NsaWVudCI6dHJ1ZSwid2ViX3BsYXliYWNrX2Fzc29jaWF0ZWRfdmUiOnRydWUsIndlYl9wbGF5ZXJfdXBkYXRlZF9lbnRyeXBvaW50Ijp0cnVlLCJ3ZWJfcHJlZmV0Y2hfcHJlbG9hZF92aWRlbyI6dHJ1ZSwid2ViX3Byb2dyZXNzX2Jhcl9kcmFnZ2FibGUiOnRydWUsIndlYl9wcm9wYWdhdGVfdmlzaWJpbGl0eV90b19hcHBsaWNhdGlvbl9zdGF0ZSI6dHJ1ZSwid2ViX3JlbW92ZV9zbmFja2Jhcl9hY3Rpb25zIjp0cnVlLCJ3ZWJfc2VjdGlvbl9saXN0X3JlbmRlcmVyX3dyYXBwZWRfY29udGVudHMiOnRydWUsIndlYl9zaG9ydHNfYXVkaW9fdHJhY2tfcGlja2VyIjp0cnVlLCJ3ZWJfc2hvcnRzX2VuYWJsZV9yZW1vdmVfc2VhcmNoX3Bpdm90X2JhY2tfYnV0dG9uIjp0cnVlLCJ3ZWJfc2hvcnRzX3duX3NoZWxmX2hlYWRlcl90dW5pbmciOnRydWUsIndlYl91bmlmaWVkX2ZldGNoIjp0cnVlLCJ3ZWJfdXBkYXRlX3BhbmVsX3Zpc2liaWxpdHlfbG9nZ2luZ19maXgiOnRydWUsIndlYl93YXRjaF9jb250cm9sc19zdGF0ZV9zaWduYWxzIjp0cnVlLCJ3ZWJmZV9td2ViX3dhdGNoX21pY3JvZGF0YSI6dHJ1ZSwid2ViZmVfd2F0Y2hfc2hvcnRzX2Nhbm9uaWNhbF91cmxfZml4Ijp0cnVlLCJ3ZWJwb19leGl0X29uX25ldF9lcnIiOnRydWUsIndpel9kaWZmX292ZXJ3cml0YWJsZSI6dHJ1ZSwid2l6X3dyYXBwZXJfY2FsbGJhY2tfcHJvcHNfZml4Ijp0cnVlLCJ3dWdfbmV0d29ya2luZ19nemlwX3JlcXVlc3QiOnRydWUsIkg1X2FzeW5jX2xvZ2dpbmdfZGVsYXlfbXMiOjMwMDAwLjAsImF1dG9wbGF5X3BhdXNlX2J5X2xhY3Rfc2FtcGxpbmdfZnJhY3Rpb24iOjAuMCwiY2luZW1hdGljX3dhdGNoX2VmZmVjdF9vcGFjaXR5IjowLjQsImxvZ193aW5kb3dfb25lcnJvcl9mcmFjdGlvbiI6MC4xLCJzcGVlZG1hc3Rlcl9wbGF5YmFja19yYXRlIjoyLjAsIndlYl9hdHRlbnRpb25fbG9nZ2luZ19zY3JvbGxfdGhyb3R0bGUiOjUwMC4wLCJ3ZWJfZGVhZF9jb2RlX2RldGVjdG9yX3NhbXBsaW5nX3JhdGUiOjAuMCwid2ViX2xvYWRfcHJlZGljdGlvbl90aHJlc2hvbGQiOjAuMywid2ViX25hdmlnYXRpb25fcHJlZGljdGlvbl90aHJlc2hvbGQiOjAuMSwid2ViX3Bial9sb2dfd2FybmluZ19yYXRlIjowLjAsIndlYl9zeXN0ZW1faGVhbHRoX2ZyYWN0aW9uIjowLjAxLCJ5dGlkYl90cmFuc2FjdGlvbl9lbmRlZF9ldmVudF9yYXRlX2xpbWl0IjowLjAyLCJhdHRfaW5pdF9kZWxheSI6NTAwLCJhdXRvcGxheV9wYXVzZV9ieV9sYWN0X3NlYyI6MCwiYm90Z3VhcmRfYXN5bmNfc25hcHNob3RfdGltZW91dF9tcyI6MzAwMCwiY2hlY2tfbmF2aWdhdG9yX2FjY3VyYWN5X3RpbWVvdXRfbXMiOjAsImNpbmVtYXRpY193YXRjaF9jc3NfZmlsdGVyX2JsdXJfc3RyZW5ndGgiOjQwLCJjaW5lbWF0aWNfd2F0Y2hfZmFkZV9vdXRfZHVyYXRpb24iOjUwMCwiY2xvc2Vfd2Vidmlld19kZWxheV9tcyI6MTAwLCJjbG91ZF9zYXZlX2dhbWVfZGF0YV9yYXRlX2xpbWl0X21zIjozMDAwLCJjb21wcmVzc2lvbl9kaXNhYmxlX3BvaW50IjoxMCwiY3VzdG9tX2FjdGl2ZV92aWV3X3Rvc190aW1lb3V0X21zIjozNjAwMDAwLCJlbWJlZHNfd2lkZ2V0X3BvbGxfaW50ZXJ2YWxfbXMiOjAsImVuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfbWF4X3dpbmRvd19zZWNvbmRzIjo2MCwiZ2VsX21pbl9iYXRjaF9zaXplIjozLCJnZWxfcXVldWVfdGltZW91dF9tYXhfbXMiOjYwMDAwLCJnZXRfYXN5bmNfdGltZW91dF9tcyI6NjAwMDAsImh0bWw1X2J5dGVyYXRlX3NvZnRfY2FwIjowLCJpbml0aWFsX2dlbF9iYXRjaF90aW1lb3V0IjoyMDAwLCJtYXhfYm9keV9zaXplX3RvX2NvbXByZXNzIjo1MDAwMDAsIm1heF9wcmVmZXRjaF93aW5kb3dfc2VjX2Zvcl9saXZlc3RyZWFtX29wdGltaXphdGlvbiI6MTAsIm1pbl9wcmVmZXRjaF9vZmZzZXRfc2VjX2Zvcl9saXZlc3RyZWFtX29wdGltaXphdGlvbiI6MjAsIm1pbmlfYXBwX2NvbnRhaW5lcl9pZnJhbWVfc3JjX3VwZGF0ZV9kZWxheV9tcyI6MCwibXVsdGlwbGVfcHJldmlld19uZXdzX2R1cmF0aW9uX3RpbWUiOjExMDAwLCJtd2ViX2MzX3RvYXN0X2R1cmF0aW9uX21zIjo1MDAwLCJtd2ViX2RlZXBfbGlua19mYWxsYmFja190aW1lb3V0X21zIjoxMDAwMCwibXdlYl9kZWxheV9yZXNwb25zZV9yZWNlaXZlZF9hY3Rpb25zIjoxMDAsIm13ZWJfZHdlbGxfZGVsYXlfbXMiOjUwMCwibXdlYl9mcF9kcGFkX3JhdGVfbGltaXRfbXMiOjAsIm13ZWJfZnBfZHBhZF93YXRjaF90aXRsZV9jbGFtcF9saW5lcyI6MCwibXdlYl9oaXN0b3J5X21hbmFnZXJfY2FjaGVfc2l6ZSI6MTAwLCJtd2ViX2lvc19mdWxsc2NyZWVuX3BsYXliYWNrX3RyYW5zaXRpb25fZGVsYXlfbXMiOjUwMCwibXdlYl9pb3NfZnVsbHNjcmVlbl9zeXN0ZW1fcGF1c2VfZXBpbHNvbl9tcyI6MCwibXdlYl9vdmVycmlkZV9yZXNwb25zZV9zdG9yZV9leHBpcmF0aW9uX21zIjowLCJtd2ViX3Nob3J0c19lYXJseV9jb250aW51YXRpb25fdHJpZ2dlcl90aHJlc2hvbGQiOjQsIm13ZWJfc2hvcnRzX251bWJlcl9vZl90aHVtYm5haWxzX3Nob3duIjoyLCJtd2ViX3cyd19tYXhfYWdlX3NlY29uZHMiOjAsIm13ZWJfd2F0Y2hfY2FwdGlvbnNfZGVmYXVsdF9zaXplIjoyLCJuZW9uX2RhcmtfbGF1bmNoX2dyYWRpZW50X2NvdW50IjowLCJuZXR3b3JrX3BvbGxpbmdfaW50ZXJ2YWwiOjMwMDAwLCJwbGF5X3BpbmdfaW50ZXJ2YWxfbXMiOjEwMDAwLCJzZW5kX2NvbmZpZ19oYXNoX3RpbWVyIjowLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2xvZ2dlZF9vdXRfcHJvbXB0X3dhdGNoZXMiOi0xLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX3Byb21wdF9jYXAiOi0xLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX3Byb21wdF9kZWxheV9taWNyb3NlY29uZHMiOjM4ODgwMDAwMDAwMDAsInNob3dfbWluaV9hcHBfYWRfd2ViX3JlZ3VsYXJfZnJlcXVlbmN5X2NhcF9tcyI6MjQwMDAwLCJzaG93X21pbmlfYXBwX2FkX3dlYl9yZXdhcmRlZF9mcmVxdWVuY3lfY2FwX21zIjowLCJzbG93X2NvbXByZXNzaW9uc19iZWZvcmVfYWJhbmRvbl9jb3VudCI6NCwic3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwIjoxMCwic3BlZWRtYXN0ZXJfdG91Y2hfYWN0aXZhdGlvbl9tcyI6NTAwLCJ3ZWJfYWlfc2VhcmNoX3JvbGxvdXRfdmVyc2lvbiI6MSwid2ViX2ZvcmVncm91bmRfaGVhcnRiZWF0X2ludGVydmFsX21zIjoyODAwMCwid2ViX2dlbF9kZWJvdW5jZV9tcyI6MTAwMDAsIndlYl9sb2dnaW5nX21heF9iYXRjaCI6MTAwLCJ3ZWJfbWF4X3RyYWNpbmdfZXZlbnRzIjo1MCwid2ViX3Nlc3Npb25fcmVwbGF5X21vdXNlbW92ZV9pbnRlcnZhbCI6MCwid2ViX3Nlc3Npb25fcmVwbGF5X3Njcm9sbF9pbnRlcnZhbCI6MCwid2ViX3Nlc3Npb25fcmVwbGF5X3NlbmRfYWZ0ZXJfdGltZW91dCI6MCwid2ViX3RyYWNpbmdfc2Vzc2lvbl9yZXBsYXkiOjAsIndpbF9pY29uX21heF9jb25jdXJyZW50X2ZldGNoZXMiOjk5OTksInl0Y3NpX2RlYnVnX21heF9zaXplIjoxMDAsInl0aWRiX3JlbWFrZV9kYl9yZXRyaWVzIjoxLCJ5dGlkYl9yZW9wZW5fZGJfcmV0cmllcyI6MCwiV2ViQ2xpZW50UmVsZWFzZVByb2Nlc3NDcml0aWNhbF9feW91dHViZV9lbWJlZHNfY2xpZW50X3ZlcnNpb25fb3ZlcnJpZGUiOiIiLCJXZWJDbGllbnRSZWxlYXNlUHJvY2Vzc0NyaXRpY2FsX195b3V0dWJlX2VtYmVkc193ZWJfY2xpZW50X3ZlcnNpb25fb3ZlcnJpZGUiOiIiLCJkZWJ1Z19mb3JjZWRfaW50ZXJuYWxjb3VudHJ5Y29kZSI6IiIsImVuYWJsZV93ZWJfbWVkaWFfc2VydmljZSI6IkRJU0FCTEVEIiwiaWxfcGF5bG9hZF9zY3JhcGluZyI6IiIsImxpdmVfY2hhdF91bmljb2RlX2Vtb2ppX2pzb25fdXJsIjoiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20veW91dHViZS9pbWcvZW1vamlzL2Vtb2ppcy1zdmctOS5qc29uIiwibXdlYl9kZWVwX2xpbmtfZmVhdHVyZV90YWdfc3VmZml4IjoiNTE4MzE2MTUiLCJtd2ViX2VuYWJsZV9zaG9ydHNfaW5uZXJ0dWJlX3BsYXllcl9wcmVmZXRjaF90cmlnZ2VyIjoiTk9ORSIsIm13ZWJfZnBfZHBhZCI6ImhvbWUsc2VhcmNoLGJyb3dzZSxjaGFubmVsLGNyZWF0ZV9jaGFubmVsLGV4cGVyaW1lbnRzLHNldHRpbmdzLHRyZW5kaW5nLG9vcHMsNDA0LHBhaWRfbWVtYmVyc2hpcHMsc3BvbnNvcnNoaXAscHJlbWl1bSxzaG9ydHMiLCJtd2ViX2ZwX2RwYWRfbGluZWFyX25hdmlnYXRpb24iOiIiLCJtd2ViX2ZwX2RwYWRfbGluZWFyX25hdmlnYXRpb25fdmlzaXRvciI6IiIsIm13ZWJfZnBfZHBhZF92aXNpdG9yIjoiIiwibXdlYl9wcmVsb2FkX3ZpZGVvX2J5X3BsYXllcl92YXJzIjoiIiwicGxhY2VfcGl2b3RfdHJpZ2dlcmluZ19jb250YWluZXJfYWx0ZXJuYXRlIjoiIiwicGxhY2VfcGl2b3RfdHJpZ2dlcmluZ19jb3VudGVyZmFjdHVhbF9jb250YWluZXJfYWx0ZXJuYXRlIjoiIiwic2VydmljZV93b3JrZXJfcHVzaF9mb3JjZV9ub3RpZmljYXRpb25fcHJvbXB0X3RhZyI6IjEiLCJzZXJ2aWNlX3dvcmtlcl9zY29wZSI6Ii8iLCJzdWdnZXN0X2V4cF9zdHIiOiIiLCJ3ZWJfY2xpZW50X3ZlcnNpb25fb3ZlcnJpZGUiOiIiLCJlbmRlbWljX2hpZ2hfY2N2X3NtZWFyaW5nX2FsbG93ZWRfdmlkZW9faWRzIjpbIk9KbHdJZG9GejlBIiwiQXJLYkF4MUstMlUiLCJtX2RoTVN2VUNJYyIsIkMxRGhwSjA3WnVFIiwiTnEyd1lsV0Z1Y2ciLCJKQzdmM0VVRGFxdyIsInZyM1h5VkNSNFQwIiwiZ0NOZURXQ0kwdm8iLCJrQlR1ZG00Z2VNcyIsIkZ4c2ZWWDZCMU1rIiwieWxZSlNCVWdhTUEiLCJWV2hRNnhzcG5TYyIsIlJIVWF1TWNZbFgwIiwiY2IxMkttTU1ESkEiLCJXSnhFal9ocnBTZyIsImV1aFktdG1nOXg4IiwiVGxJVkkyRVc3UjAiLCJNSU5mdk9YNEJ6SSIsInlIbVBXemtoY1o4IiwicDN3MXZPOVh2MjQiLCJWbGFDbnAxZnhJOCIsIi1PZkEwNEJENEdBIiwiMW9kWTNJWXNObm8iLCJ3aVRUclZxUlZEdyIsIkRmbTJyQi1uUTlZIiwiUW0xRnR6OGxWbkkiLCI5aXRBeHFfU0dETSIsInlGSTN3cFh5NHpBIiwiUHk1SllaWEp2em8iLCJiNHRFNWFLaHRsZyIsIjVKRHhqc0FWYUdrIiwiZVVtZkdQYXp1RU0iLCJXOG5UaHE2MlZiNCIsIlZManZTM3VmbFhjIiwiQmZkTEt2SkJNX2MiLCJ3ZUxYZHdWalN4cyIsIjJKYS11UE9rejdJIiwiQTlRQlZGRVl4T1EiLCJrLVpGUWtrSFVmYyIsInd1dTBEMjBBWnFJIiwiX0h2aVN5Qzd6U1UiLCJfX3hPel9RM3FSNCIsIncyc0I4N2pMRTFJIiwiOHJUVEVNZE1oOFEiLCItazZtcGdteGVyVSIsIjk3Y2tuckp5TFdnIiwiMkZJdFZ5eExOTmMiLCJvdG54ZmNzR0UtWSIsInM5eEwxRHBCc2ZRIiwid2ZBR0JWZ1Vycm8iLCJuWEg2VHhRLXNpOCIsIldpSTFYZ19uRXU4IiwiM2ZsYXNHVlVyQ0EiLCJlRFlfSGU5MmxjVSIsImE0N2NrWEtaanhJIiwiSTZXUlhlS1pLNjQiLCJUOUo1RHFQMkRLdyIsIkt0a19JMHBVcEc4IiwiZVEyY3pHcU9DUGciLCJoTG1VNDlobVo0YyIsIjdmN01nYU1FN1NjIiwiUUI1Qk5kQkZ1akUiLCJBR2h0TVVfZmk3MCIsInAyUmFRVVJSQXdBIiwibXpfX0VNWXBXUHciLCI2amhMdVNRVkl4VSIsInJDODN2X3V1SXFvIiwiNkRhR2RKUl9lTGciLCJjbTQzdVhqZnZaWSIsIlkxSnNQcG0yYm1RIiwiejA5N2pQeUtlZW8iLCJUWVZaV1VUamt4MCIsIlZIYUF2ZW5mVERrIiwidHY5T1VfNVEwcFEiLCI2b0tDdnptNkhtZyIsIkJFRlVFUmhUMG4wIiwidVROLWV1MC1PWEUiLCJoYmFwcmhSN3pUbyIsIjJDVjBWLW9NTkZNIiwidThkU09Lb05KcDAiLCJIOE1xcXdtRnN4WSIsIklza2ttTlBKZFVrIiwiWDlIX0V6cERHWFEiXSwia2V2bGFyX2NvbW1hbmRfaGFuZGxlcl9jb21tYW5kX2Jhbmxpc3QiOltdLCJtaW5pX2FwcF9pZHNfd2l0aG91dF9nYW1lX3JlYWR5IjpbIlVna3hISHRzYWsxU0M4bVJHSE1aZXdjNEh6ZUFZM3loUFBtSiIsIlVna3g3T2d6RnFFNnpfNU10ZjRZc290R2ZRTklJMURGX1JCbSJdLCJ3ZWJfb3Bfc2lnbmFsX3R5cGVfYmFubGlzdCI6W10sIndlYl90cmFjaW5nX2VuYWJsZWRfc3BhbnMiOlsiZXZlbnQiLCJjb21tYW5kIl19LCJHQVBJX0hJTlRfUEFSQU1TIjoibTsvXy9zY3MvYWJjLXN0YXRpYy9fL2pzL2tcdTAwM2RnYXBpLmdhcGkuZW4uNTRfSER2ZU90a1EuTy9kXHUwMDNkMS9yc1x1MDAzZEFIcE9vbzlRdWZPZFBZVFJrYlRKYWRUVzZzbXN4bFdMTXcvbVx1MDAzZF9fZmVhdHVyZXNfXyIsIkdBUElfSE9TVCI6Imh0dHBzOi8vYXBpcy5nb29nbGUuY29tIiwiR0FQSV9MT0NBTEUiOiJlbl9VUyIsIkdMIjoiTk8iLCJITCI6ImVuIiwiSFRNTF9ESVIiOiJsdHIiLCJIVE1MX0xBTkciOiJlbiIsIklOTkVSVFVCRV9BUElfS0VZIjoiQUl6YVN5QU9fRkoyU2xxVThRNFNURUhMR0NpbHdfWTlfMTFxY1c4IiwiSU5ORVJUVUJFX0FQSV9WRVJTSU9OIjoidjEiLCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiOiJXRUJfRU1CRURERURfUExBWUVSIiwiSU5ORVJUVUJFX0NMSUVOVF9WRVJTSU9OIjoiMi4yMDI2MDcyNC4wMS4wMCIsIklOTkVSVFVCRV9DT05URVhUIjp7ImNsaWVudCI6eyJobCI6ImVuIiwiZ2wiOiJOTyIsInJlbW90ZUhvc3QiOiIxOTUuNjQuMTE4LjE1MiIsImRldmljZU1ha2UiOiIiLCJkZXZpY2VNb2RlbCI6IiIsInZpc2l0b3JEYXRhIjoiQ2dzMVlVNXBjblJ1V0U5dVRTajJ2WnZUQmpJb0NnSk9UeElpRWg0U0hBc01EZzhRRVJJVEZCVVdGeGdaR2hzY0hSNGZJQ0VpSXlRbEppY2dGMkxmQWdyY0FqSXdMbGxVUFdGeU5HNTFUVXBLWVd0WVdXWmhZWFZ0VjJ0RVpVdFhla0ZuV0VKM2FqSnBiWEpSVjFCdWRrVkJZMmt6T1Y4MFdEaFhNa2RDWW5kcGEwTlVVM0JSYVdsWkxUQlZTMmRSWWtKbGFuUXlSVFIxVVVRNVVIUXRjVGg1UWt0aVZrNWhZMkpvTUhSQ1ZGcFNZekpqTTFVMlNqWkRUVVY0TkVaS2R6SnJTa2xHTTE5M1MxTnZjRVpWYzFSeWNrSllUVEJuT0dvM2VpMTFXQzF5Tlhkc1FtMWhRV3QzTlRCalNHYzFkV1JUUW5ndFduTjBNemhZWVd0UVpXRlhORmRCVFhaNVJHTTJSRGg0VnpnNWRuVkZkbDlNVnpGTmNrdFpVVk5pTjFOVVUxaDZabEphTnpKNE5VUXlXakJKZUVFNVkzQk5jMjlCZFVwZlRWWk9ZelpxVUZaUlkybGtZbFJKVmtrNVlqRTFUbVZQVUVoWFdDMXZjVkpIUzI5bGJWRnJiemRSUWtoa1NuQnZSV2xRY1cxek5VYzJVa2gyVURsQlJrTjZNbWhZYlhwd2JUUTVhM2syVEdsc1RGcEhhMWhtTUVsVVlVZFBVRGxVVVElM0QlM0QiLCJ1c2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0OyBydjoxMzQuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMzQuMCxnemlwKGdmZSkiLCJjbGllbnROYW1lIjoiV0VCX0VNQkVEREVEX1BMQVlFUiIsImNsaWVudFZlcnNpb24iOiIyLjIwMjYwNzI0LjAxLjAwIiwib3NOYW1lIjoiV2luZG93cyIsIm9zVmVyc2lvbiI6IjEwLjAiLCJvcmlnaW5hbFVybCI6Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0dtT3ppaDZJMXpzIiwicGxhdGZvcm0iOiJERVNLVE9QIiwiY2xpZW50Rm9ybUZhY3RvciI6IlVOS05PV05fRk9STV9GQUNUT1IiLCJjb25maWdJbmZvIjp7ImFwcEluc3RhbGxEYXRhIjoiQ1BhOW05TUdFUGFyc0FVUXVPVE9IQkNIck00Y0VLLUd6eHdRdllxd0JSQ0RoN2dpRU1HUDBCd1FpZVRSSEJEZXZNNGNFTDJac0FVUXl2dUFFeENHNFlBVEVKM1FzQVVRaV9mUEhCQ1c3OUVjRVBqRWdCTVFwS25SSEJDdTFzOGNFT0RxMFJ3UXhfeUFFeEQ1OHRFY0VMNkUwUndRaWJET0hCRHAtTkVjRUlxSHVDSVFfTExPSEJDZno0QVRFSTZRMFJ3UXVmRFJIQkRKOW9BVEVKbU5zUVVRNExmUkhCRGE5ODRjRUwyMnJnVVF2S1RRSEJDZGhyZ2lFT19lMFJ3UThiVFFIQkNCemM0Y0VPT0h1Q0lROXZmUkhCQzItSUFURUlpUTBSd1F6Ti11QlJEMDZkRWNFSm56MFJ3cWFFTkJUVk5UVWxaRExWcHhMVVJOWlZWRmNGVkRia0UzTlVaWVMydENkVUZYY1U1VlVIbEJUVTB6ZHpOalFuVlJSekJNYm5CRGVrdG5ja0ZSUkd0TE5FUXRlV0V5TlVGaWEyaFNabEY2UVdKRmEyZFlURkJqVlc0eVpGVkdNME42YlZKMU5IVklVV005TUFBJTNEIn0sImJyb3dzZXJOYW1lIjoiRmlyZWZveCIsImJyb3dzZXJWZXJzaW9uIjoiMTM0LjAiLCJhY2NlcHRIZWFkZXIiOiJ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxXHUwMDNkMC45LCovKjtxXHUwMDNkMC44IiwiZGV2aWNlRXhwZXJpbWVudElkIjoiQ2h4T2Vsa3lUbnBCTWsxRVZUSk9WRTE2VFdwSk5FMUVaM2xOWnowOUVQYTltOU1HR1BhOW05TUciLCJyb2xsb3V0VG9rZW4iOiJDTS00eUliQWlPMjRfZ0VRdnRtRF9ZTHlsUU1ZdnRtRF9ZTHlsUU0lM0QifSwidXNlciI6eyJsb2NrZWRTYWZldHlNb2RlIjpmYWxzZX0sInJlcXVlc3QiOnsidXNlU3NsIjp0cnVlfSwiY2xpY2tUcmFja2luZyI6eyJjbGlja1RyYWNraW5nUGFyYW1zIjoiSWhNSWhNNkQvWUx5bFFNVmdPektBQjJCWVMxbyJ9LCJ0aGlyZFBhcnR5Ijp7ImVtYmVkZGVkUGxheWVyQ29udGV4dCI6eyJlbWJlZGRlZFBsYXllckVuY3J5cHRlZENvbnRleHQiOiJBQ21ibEJVc3RGalJaQlgtcFFFNjQtUFpuX3QxSm9xLURfY05SaHVjeTZSb3pBRUdrUzhRSFYtQlEta1lNY0pKWXI3V0c1UVVpUG5ua0ROSm9Wb0c1U2dRN291RWFwZFdZcDNTUGJQWGlOMHZ5RTdSUksyaTVGT1prdDJrVnlURGtpdVpiN28iLCJhbmNlc3Rvck9yaWdpbnNTdXBwb3J0ZWQiOmZhbHNlfX19LCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSI6NTYsIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIjoiMi4yMDI2MDcyNC4wMS4wMCIsIklOTkVSVFVCRV9DT05URVhUX0dMIjoiTk8iLCJJTk5FUlRVQkVfQ09OVEVYVF9ITCI6ImVuIiwiTEFURVNUX0VDQVRDSEVSX1NFUlZJQ0VfVFJBQ0tJTkdfUEFSQU1TIjp7ImNsaWVudC5uYW1lIjoiV0VCX0VNQkVEREVEX1BMQVlFUiIsImNsaWVudC5qc2ZlYXQiOiIyMDIxIn0sIkxPR0dFRF9JTiI6ZmFsc2UsIlBBR0VfQlVJTERfTEFCRUwiOiJ5b3V0dWJlLmVtYmVkcy53ZWJfMjAyNjA3MjRfMDFfUkMwMCIsIlBBR0VfQ0wiOjk1MzIwNjAxMCwiU0VSVkVSX05BTUUiOiJXZWJGRSIsIlZJU0lUT1JfREFUQSI6IkNnczFZVTVwY25SdVdFOXVUU2oydlp2VEJqSW9DZ0pPVHhJaUVoNFNIQXNNRGc4UUVSSVRGQlVXRnhnWkdoc2NIUjRmSUNFaUl5UWxKaWNnRjJMZkFncmNBakl3TGxsVVBXRnlORzUxVFVwS1lXdFlXV1poWVhWdFYydEVaVXRYZWtGbldFSjNhakpwYlhKUlYxQnVka1ZCWTJrek9WODBXRGhYTWtkQ1luZHBhME5VVTNCUmFXbFpMVEJWUzJkUllrSmxhblF5UlRSMVVVUTVVSFF0Y1RoNVFrdGlWazVoWTJKb01IUkNWRnBTWXpKak0xVTJTalpEVFVWNE5FWktkekpyU2tsR00xOTNTMU52Y0VaVmMxUnlja0pZVFRCbk9HbzNlaTExV0MxeU5YZHNRbTFoUVd0M05UQmpTR2MxZFdSVFFuZ3RXbk4wTXpoWVlXdFFaV0ZYTkZkQlRYWjVSR00yUkRoNFZ6ZzVkblZGZGw5TVZ6Rk5ja3RaVVZOaU4xTlVVMWg2WmxKYU56SjROVVF5V2pCSmVFRTVZM0JOYzI5QmRVcGZUVlpPWXpacVVGWlJZMmxrWWxSSlZrazVZakUxVG1WUFVFaFhXQzF2Y1ZKSFMyOWxiVkZyYnpkUlFraGtTbkJ2UldsUWNXMXpOVWMyVWtoMlVEbEJSa042TW1oWWJYcHdiVFE1YTNrMlRHbHNURnBIYTFobU1FbFVZVWRQVURsVVVRJTNEJTNEIiwiV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR1MiOnsiV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR19JRF9FTUJFRERFRF9QTEFZRVIiOnsicm9vdEVsZW1lbnRJZCI6Im1vdmllX3BsYXllciIsImpzVXJsIjoiL3MvcGxheWVyLzdhNzk2OWMyL3BsYXllcl9lbWJlZF9lczYudmZsc2V0L2VuX1VTL2Jhc2UuanMiLCJjc3NVcmwiOiIvcy9wbGF5ZXIvN2E3OTY5YzIvd3d3LXBsYXllci5jc3MiLCJjb250ZXh0SWQiOiJXRUJfUExBWUVSX0NPTlRFWFRfQ09ORklHX0lEX0VNQkVEREVEX1BMQVlFUiIsImV2ZW50TGFiZWwiOiJlbWJlZGRlZCIsImNvbnRlbnRSZWdpb24iOiJOTyIsImhsIjoiZW5fVVMiLCJob3N0TGFuZ3VhZ2UiOiJlbiIsImlubmVydHViZUFwaUtleSI6IkFJemFTeUFPX0ZKMlNscVU4UTRTVEVITEdDaWx3X1k5XzExcWNXOCIsImlubmVydHViZUFwaVZlcnNpb24iOiJ2MSIsImlubmVydHViZUNvbnRleHRDbGllbnRWZXJzaW9uIjoiMi4yMDI2MDcyNC4wMS4wMCIsImRldmljZSI6eyJicmFuZCI6IiIsIm1vZGVsIjoiIiwiYnJvd3NlciI6IkZpcmVmb3giLCJicm93c2VyVmVyc2lvbiI6IjEzNC4wIiwib3MiOiJXaW5kb3dzIiwib3NWZXJzaW9uIjoiMTAuMCIsInBsYXRmb3JtIjoiREVTS1RPUCIsImludGVyZmFjZU5hbWUiOiJXRUJfRU1CRURERURfUExBWUVSIiwiaW50ZXJmYWNlVmVyc2lvbiI6IjIuMjAyNjA3MjQuMDEuMDAifSwic2VyaWFsaXplZEV4cGVyaW1lbnRJZHMiOiIyNDAwNDY0NCw1MTA2MzY0Myw1MTA5ODI5OSw1MTIyMjk3Myw1MTM0MDY2Miw1MTM0OTkxNCw1MTM1MzM5Myw1MTM2NjQyMyw1MTM4OTYyOSw1MTQ1OTQyNCw1MTQ5MDMzMSw1MTQ5MzIwOSw1MTUwNTQzNiw1MTUzMDQ5NSw1MTUzNDY2OSw1MTU2NTExNiw1MTU4MzgyMSw1MTYwNTI1OCw1MTYwOTgyOSw1MTYyMjg0NCw1MTYzODkzMiw1MTY0NTU1Miw1MTY0ODMzNiw1MTY3MjE2Miw1MTY4MTY2Miw1MTY4MzUwMiw1MTcyOTIxOCw1MTc0MjM3Nyw1MTc0MjgyOCw1MTc1MjUxOCw1MTc3ODM0MCw1MTc5ODkyOCw1MTgwMzEyOCw1MTgwMzU4Niw1MTgzMzI0MSw1MTg0MjQyMiw1MTg1NzgzOCw1MTg1NzkyMCw1MTg4Nzg4MCw1MTg5NTQwNCw1MTg5NTc3MSw1MTkwMTQzNyw1MTkwMjYwNSw1MTkwMjk3Nyw1MTkxMDczNiw1MTkyNzE4OCw1MTkyNzM2MCw1MTkzNjIyOCw1MTkzOTcwMyw1MTk0NTA1Niw1MTk1NDkyMyw1MTk1NjUxOCw1MTk1NzQ0Niw1MTk1OTY5NCw1MTk1OTgwOSw1MTk1OTg4MCw1MTk1OTk2Nyw1MTk2ODA4NCw1MTk3MTc3Niw1MTk3MzgxOCw1MTk4MzM2Miw1MTk4NDgyNyw1MTk4NTU4MCw1MTk5NzE4Niw1MjAwMjgwNSw1MjAxMjUyMiw1MjAxMzkzOCw1MjAxNjEzNiw1MjAyMDAzMSw1MjAyMjQ4Nyw1MjAyMzMzMiw1MjAyNDIxNyw1MjAyNjE5NCw1MjAyNjgxNCw1MjAyNzA5OCw1MjAyNzc1MSw1MjAyNzc1Myw1MjAzNTY0NCw1MjAzNjkzOSw1MjAzNzQyNCw1MjA0MzIyNyw1MjA0NjUxOSw1MjA0NzE0OCw1MjA0NzY4NCw1MjA0NzY4Nyw1MjA0NzY5MSw1MjA0ODQzNCw1MjA1NjUwMyw1MjA2NDEzNSw1MjA2NTU5MCw1MjA3Mzk2Myw1MjA3Mzk2Nyw1MjA3NTkyMiw1MjA3NjcwNSIsInNlcmlhbGl6ZWRFeHBlcmltZW50RmxhZ3MiOiJINV9hc3luY19sb2dnaW5nX2RlbGF5X21zXHUwMDNkMzAwMDAuMFx1MDAyNmExMXlfaDVfYXNzb2NpYXRlX3N1cnZleV9xdWVzdGlvblx1MDAzZHRydWVcdTAwMjZhYl9kZXRfYXBtXHUwMDNkdHJ1ZVx1MDAyNmFiX2RldF9lbF9oXHUwMDNkdHJ1ZVx1MDAyNmFjdGlvbl9jb21wYW5pb25fY2VudGVyX2FsaWduX2Rlc2NyaXB0aW9uXHUwMDNkdHJ1ZVx1MDAyNmFkX3BvZF9kaXNhYmxlX2NvbXBhbmlvbl9wZXJzaXN0X2Fkc19xdWFsaXR5XHUwMDNkdHJ1ZVx1MDAyNmFsbG93X2F1dG9oaWRlX29uX3BhdXNlZF92aWRlb3NcdTAwM2R0cnVlXHUwMDI2YWxsb3dfZHJtX292ZXJyaWRlXHUwMDNkdHJ1ZVx1MDAyNmFsbG93X2xpdmVfYXV0b3BsYXlcdTAwM2R0cnVlXHUwMDI2YWxsb3dfcG9sdGVyZ3VzdF9hdXRvcGxheVx1MDAzZHRydWVcdTAwMjZhbGxvd19za2lwX25ldHdvcmtsZXNzXHUwMDNkdHJ1ZVx1MDAyNmFsbG93X3ZwOV8xMDgwcF9tcV9lbmNcdTAwM2R0cnVlXHUwMDI2YWx3YXlzX2NhY2hlX3JlZGlyZWN0X2VuZHBvaW50XHUwMDNkdHJ1ZVx1MDAyNmFsd2F5c19zZW5kX2FuZF93cml0ZVx1MDAzZHRydWVcdTAwMjZhbm5vdGF0aW9uX21vZHVsZV92YXN0X2NhcmRzX2xvYWRfbG9nZ2luZ19mcmFjdGlvblx1MDAzZDAuMFx1MDAyNmFzc2lnbl9kcm1fZmFtaWx5X2J5X2Zvcm1hdFx1MDAzZHRydWVcdTAwMjZhdHRfd2ViX3JlY29yZF9tZXRyaWNzXHUwMDNkdHJ1ZVx1MDAyNmF0dGFjaF9leHBlcmltZW50X3Byb3BhZ2F0aW9uX2NvbnRleHRfdG9fY29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmF0dG11c2lcdTAwM2R0cnVlXHUwMDI2YXV0b3BsYXlfdGltZVx1MDAzZDEwMDAwXHUwMDI2YXV0b3BsYXlfdGltZV9mb3JfZnVsbHNjcmVlblx1MDAzZC0xXHUwMDI2YXV0b3BsYXlfdGltZV9mb3JfbXVzaWNfY29udGVudFx1MDAzZC0xXHUwMDI2Ymdfdm1fcmVpbml0X3RocmVzaG9sZFx1MDAzZDcyMDAwMDBcdTAwMjZibG9ja190dmh0bWw1X3NpbXBseV9lbWJlZGRlZFx1MDAzZHRydWVcdTAwMjZibG9ja2VkX3BhY2thZ2VzX2Zvcl9zcHNcdTAwM2RbXVx1MDAyNmJvdGd1YXJkX2FzeW5jX3NuYXBzaG90X3RpbWVvdXRfbXNcdTAwM2QzMDAwXHUwMDI2YnlwYXNzX2xpY2Vuc2VfY2hlY2tfZm9yX2lubGluZV9tdXRlZFx1MDAzZHRydWVcdTAwMjZjYXB0aW9uc191cmxfYWRkX2VpXHUwMDNkdHJ1ZVx1MDAyNmNoZWNrX25hdmlnYXRvcl9hY2N1cmFjeV90aW1lb3V0X21zXHUwMDNkMFx1MDAyNmNoZWNrX3BsYXlhYmlsaXR5X3N0YXR1c19pbl9maWxsZXJzXHUwMDNkdHJ1ZVx1MDAyNmNsaWVudF91aV9lbmFibGVfbXVsdGlfdHJhY2tfYXVkaW9fb25fd2ViX2VtYmVkZGVkX3BsYXllclx1MDAzZHRydWVcdTAwMjZjb21wcmVzc2lvbl9kaXNhYmxlX3BvaW50XHUwMDNkMTBcdTAwMjZjb3dfb3B0aW1pemVfaWRvbV9jb21wYXRcdTAwM2R0cnVlXHUwMDI2Y3NpX29uX2dlbFx1MDAzZHRydWVcdTAwMjZjdXN0b21fYWN0aXZlX3ZpZXdfdG9zX3RpbWVvdXRfbXNcdTAwM2QzNjAwMDAwXHUwMDI2ZGFzaF9tYW5pZmVzdF92ZXJzaW9uXHUwMDNkNVx1MDAyNmRlYnVnX2JhbmRhaWRfaG9zdG5hbWVcdTAwM2RcdTAwMjZkZWJ1Z19iYW5kYWlkX3BvcnRcdTAwM2QwXHUwMDI2ZGVidWdfc2hlcmxvZ191c2VybmFtZVx1MDAzZFx1MDAyNmRlZHVwcGluZ19zZXJ2ZXJfdmVcdTAwM2R0cnVlXHUwMDI2ZGVsaGlfZmFzdF9mb2xsb3dfYXV0b25hdl90b2dnbGVcdTAwM2R0cnVlXHUwMDI2ZGVsaGlfbW9kZXJuX3BsYXllcl9kZWZhdWx0X3RodW1ibmFpbF9wZXJjZW50YWdlXHUwMDNkMC4wXHUwMDI2ZGVsaGlfbW9kZXJuX3BsYXllcl9mYXN0ZXJfYXV0b2hpZGVfZGVsYXlfbXNcdTAwM2QyMDAwXHUwMDI2ZGVsaGlfbW9kZXJuX3BsYXllcl9wYXVzZV90aHVtYm5haWxfcGVyY2VudGFnZVx1MDAzZDAuNlx1MDAyNmRlbGhpX21vZGVybl93ZWJfcGxheWVyX2JsZW5kaW5nX21vZGVcdTAwM2RcdTAwMjZkZWxoaV9tb2Rlcm5fd2ViX3BsYXllcl9kaXNhYmxlX2Zyb3N0ZWRfZ2xhc3NcdTAwM2R0cnVlXHUwMDI2ZGVsaGlfbW9kZXJuX3dlYl9wbGF5ZXJfaG9yaXpvbnRhbF92b2x1bWVfY29udHJvbHNcdTAwM2R0cnVlXHUwMDI2ZGVsaGlfbW9kZXJuX3dlYl9wbGF5ZXJfbGhzX3ZvbHVtZV9jb250cm9sc1x1MDAzZHRydWVcdTAwMjZkZWxoaV9tb2Rlcm5fd2ViX3BsYXllcl9yZXNwb25zaXZlX2NvbXBhY3RfY29udHJvbHNfdGhyZXNob2xkXHUwMDNkMFx1MDAyNmRlcHJlY2F0ZV9jYXB0aW9uc190cmFja19jb3VudF9kaXNwbGF5XHUwMDNkdHJ1ZVx1MDAyNmRlcHJlY2F0ZV9kZWxheV9waW5nXHUwMDNkdHJ1ZVx1MDAyNmRlcHJlY2F0ZV9wYWlyX3NlcnZsZXRfZW5hYmxlZFx1MDAzZHRydWVcdTAwMjZkZXNrdG9wX3NwYXJrbGVzX2xpZ2h0X2N0YV9idXR0b25cdTAwM2R0cnVlXHUwMDI2ZGlzYWJsZV9hdjFfc2V0dGluZ1x1MDAzZHRydWVcdTAwMjZkaXNhYmxlX2NoaWxkX25vZGVfYXV0b19mb3JtYXR0ZWRfc3RyaW5nc1x1MDAzZHRydWVcdTAwMjZkaXNhYmxlX2xpZmFfaW5fMmtfNGtcdTAwM2R0cnVlXHUwMDI2ZGlzYWJsZV9sb2dfdG9fdmlzaXRvcl9sYXllclx1MDAzZHRydWVcdTAwMjZkaXNhYmxlX3BhY2ZfbG9nZ2luZ19mb3JfbWVtb3J5X2xpbWl0ZWRfdHZcdTAwM2R0cnVlXHUwMDI2ZGlzYWJsZV9yZWR1Y2VkX2Z1bGxzY3JlZW5fYXV0b3BsYXlfY291bnRkb3duX2Zvcl9taW5vcnNcdTAwM2R0cnVlXHUwMDI2ZGlzYWJsZV9yZWVsX2l0ZW1fd2F0Y2hfZm9ybWF0X2ZpbHRlcmluZ1x1MDAzZHRydWVcdTAwMjZkaXNhYmxlX3RvdWNoX2V2ZW50c19vbl9za2lwX2J1dHRvblx1MDAzZHRydWVcdTAwMjZkdXJhdGlvbl9iZWZvcmVfcGF1c2VfYWRfYnJlYWtfbXNfZm9yX3N5c3RlbV9wYXVzZVx1MDAzZDUwMDBcdTAwMjZlZGdlX2VuY3J5cHRpb25fZmlsbF9wcmltYXJ5X2tleV92ZXJzaW9uXHUwMDNkdHJ1ZVx1MDAyNmVtYmVkc19kZXNrdG9mZl9lbmFibGVfYWRzX3RvcF9iYXJcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2Rlc2t0b3BfZW5hYmxlX3ZvbHVtZV9zbGlkZXJcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2VuYWJsZV9jaGFubmVsX3N1YnNjcmliZV9kZXByZWNhdGlvblx1MDAzZHRydWVcdTAwMjZlbWJlZHNfZW5hYmxlX2VtYmVkX2NvbmZpZ19mb3JfbXV0ZWRfYXV0b3BsYXlcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2VuYWJsZV9pbm5lcnR1YmVfc3RvcmVcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2VuYWJsZV9tb3ZlX3NldF9jZW50ZXJfY3JvcF90b19wdWJsaWNcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2VuYWJsZV9wZXJfdmlkZW9fZW1iZWRfY29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmVtYmVkc193ZWJfbGl0ZV9tb2RlXHUwMDNkMVx1MDAyNmVuYWJsZV9hMTF5X2ZvY3VzX2ZpeF9mb3JfbWFjX3BhbmVsX29uX2Rlc2t0b3BcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FiYW5kb25fcGluZ19mb3Jfc3NkYWlcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FjY2Vzc19jb2RlX3NlcnZpY2VfcnBjXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9hY2lfb25fbHJfZmVlZHNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FjdGl2ZV92aWV3X2Rpc3BsYXlfYWRfcmVuZGVyZXJfd2ViX2hvbWVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FjdGl2ZV92aWV3X2xyX3Nob3J0c192aWRlb1x1MDAzZHRydWVcdTAwMjZlbmFibGVfYWN0aXZlX3ZpZXdfd2ViX3Nob3J0c192aWRlb1x1MDAzZHRydWVcdTAwMjZlbmFibGVfYWRfY3BuX21hY3JvX3N1YnN0aXR1dGlvbl9mb3JfY2xpY2tfcGluZ3NcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FkX2Rpc2Nsb3N1cmVfYmFubmVyX2ExMXlfZml4XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9hbnRpc2NyYXBpbmdfd2ViX3BsYXllcl9leHBpcmVkXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9hcHBfcHJvbW9fZW5kY2FwX2VtbF9vbl90YWJsZXRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2F0dGVudGlvbl9sb2dnaW5nX21lYXN1cmVfb25fc2hvd25cdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2F1X3UxNl92ZXJpZnlfYWdlX3BhZ2VcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2F1dG9tb3RpdmVfZm9ybV9mYWN0b3JfY2hlY2tcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2JhdGNoZWRfY3Jvc3NfZGV2aWNlX3BpbmdzX2luX2dlbF9mYW5vdXRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NhcGFiaWxpdHlfZm9ybWF0X2ZpbHRlcl9pbl93YXRjaF9zZXJ2ZXJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2Nhc3RfZm9yX3dlYl91bnBsdWdnZWRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NlbnRlcmVkX2NhcHRpb25fZm9yX3R2ZmlsbV92aWRlb1x1MDAzZHRydWVcdTAwMjZlbmFibGVfY2lwaGVyX2Zvcl9tYW5pZmVzdF91cmxzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jbGVhbnVwX21hc3RoZWFkX2F1dG9wbGF5X2hhY2tfZml4XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jbGllbnRfcGFnZV9pZF9oZWFkZXJfZm9yX2ZpcnN0X3BhcnR5X3BpbmdzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jbGllbnRfc2xpX2xvZ2dpbmdcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NsaWVudF92ZV9zcGVjXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jdGFfYmFubmVyX29uX3VucGx1Z2dlZF9sclx1MDAzZHRydWVcdTAwMjZlbmFibGVfY3VzdG9tX3BsYXloZWFkX3BhcnNpbmdcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2N1c3RvbV9zY3J1YmJlcl92Mlx1MDAzZHRydWVcdTAwMjZlbmFibGVfZGFpX3NkZl9oNV9wcmVyb2xsXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9kYXRhc3luY19pZF9oZWFkZXJfaW5fd2ViX3Zzc19waW5nc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfZGVmYXVsdF9tb25vX2N0YV9taWdyYXRpb25fd2ViX2NsaWVudFx1MDAzZHRydWVcdTAwMjZlbmFibGVfZHNhX2FkX2JhZGdlX2Zvcl9hY3Rpb25fZW5kY2FwX29uX2FuZHJvaWRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2RzYV9hZF9iYWRnZV9mb3JfYWN0aW9uX2VuZGNhcF9vbl9pb3NcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2VuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfaDVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2VudGl0eV9zdG9yZV9mcm9tX2RlcGVuZGVuY3lfaW5qZWN0aW9uXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9lcnJvcl9jb3JyZWN0aW9uc19pbmZvY2FyZF93ZWJfY2xpZW50XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9lcnJvcl9jb3JyZWN0aW9uc19pbmZvY2FyZHNfaWNvbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2dldF9yZW1pbmRlcl9idXR0b25fb25fd2ViXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9pbmxpbmVfbXV0ZWRfcGxheWJhY2tfb25fd2ViX3NlYXJjaFx1MDAzZHRydWVcdTAwMjZlbmFibGVfaW5saW5lX211dGVkX3BsYXliYWNrX29uX3dlYl9zZWFyY2hfZm9yX3ZkY1x1MDAzZHRydWVcdTAwMjZlbmFibGVfaW5saW5lX211dGVkX3BsYXliYWNrX29uX3dlYl9zZWFyY2hfZm9yX3ZkY2JcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2x0Y19wYXJhbV9mZXRjaF9mcm9tX2lubmVydHViZVx1MDAzZHRydWVcdTAwMjZlbmFibGVfbWl4ZWRfZGlyZWN0aW9uX2Zvcm1hdHRlZF9zdHJpbmdzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9tb2Rlcm5fc2tpcF9idXR0b25fb25fd2ViXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9td2ViX2F1ZGlvX3RyYWNrX3BpY2tlclx1MDAzZHRydWVcdTAwMjZlbmFibGVfbXdlYl9rZXlib2FyZF9zaG9ydGN1dHNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX25ld19wYWlkX3Byb2R1Y3RfcGxhY2VtZW50XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9vcGVuX2luX25ld190YWJfaWNvbl9mb3Jfc2hvcnRfZHJfZm9yX2Rlc2t0b3Bfc2VhcmNoXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9vdXRfb2Zfc3RvY2tfdGV4dF9hbGxfc3VyZmFjZXNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3BhaWRfY29udGVudF9vdmVybGF5X2J1Z2ZpeFx1MDAzZHRydWVcdTAwMjZlbmFibGVfcGF1c2VfYWRzX29uX3l0dl9odG1sNVx1MDAzZHRydWVcdTAwMjZlbmFibGVfcGxheWVyX2NhcHRpb25zX3BlcnNpc3RlbmNlX3N0YXRlX21hY2hpbmVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3BvX2RlY29yYXRpb25fb2ZfZm9yY2VkX3RyYWNrc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfcG9saWN5X2Jhc2VkX2hxYV9maWx0ZXJfaW5fd2F0Y2hfc2VydmVyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wcm9ncmVzX2NvbW1hbmRzX2xyX2ZlZWRzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wcm9ncmVzc19jb21tYW5kc19lbF9kYWlcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3Byb2dyZXNzX2NvbW1hbmRzX2xyX3Nob3J0c1x1MDAzZHRydWVcdTAwMjZlbmFibGVfcHVibGlzaGluZ19yZWdpb25fcGFyYW1faW5fc3VzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wdl9zY3JlZW5fbW9kZXJuX3RleHRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3Jwcl90b2tlbl9vbl9sdGxfbG9va3VwXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zY3JlZW5fbWFuYWdlcl9sYXllcl9zZXBhcmF0aW9uXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZGZfY29tcGFuaW9uX2g1XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZGZfZGFpX2g1X21pZHJvbGxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NkZl9oNV9lbmRlbWljX21pZF9wb3N0X3JvbGxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NkZl9vbl9oNV91bnBsdWdnZWRfdm9kX21pZHJvbGxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NkZl9zaG9ydHNfcGxheWVyX2J5dGVzX2g1XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZXJ2ZXJfZHJpdmVuX2Ficlx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2VydmVyX2RyaXZlbl9hYnJfZm9yX2JhY2tncm91bmRhYmxlXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZXJ2ZXJfZHJpdmVuX2Ficl91cmxfZ2VuZXJhdGlvblx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2VydmVyX2RyaXZlbl9yZWFkYWhlYWRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NraXBfYWRfZ3VpZGFuY2VfcHJvbXB0XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9za2lwX3RvX25leHRfbWVzc2FnaW5nXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9za2lwcGFibGVfYWRzX2Zvcl91bnBsdWdnZWRfYWRfcG9kXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zbWFydF9za2lwX3BsYXllcl9jb250cm9sc19zaG93bl9vbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NtYXJ0X3NraXBfcGxheWVyX2NvbnRyb2xzX3Nob3duX29uX3dlYl9pbmNyZWFzZWRfdHJpZ2dlcmluZ19zZW5zaXRpdml0eVx1MDAzZHRydWVcdTAwMjZlbmFibGVfc21hcnRfc2tpcF9zcGVlZG1hc3Rlcl9vbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NtZWFyaW5nX2V4cGFuc2lvbl9kYWlcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NwbGl0X3NjcmVlbl9hZF9iYXNlbGluZV9leHBlcmllbmNlX2VuZGVtaWNfbGl2ZV9oNVx1MDAzZHRydWVcdTAwMjZlbmFibGVfc3ViZnJhZ21lbnRlZF9jYXB0aW9uX2ZpbHRlcmluZ1x1MDAzZHRydWVcdTAwMjZlbmFibGVfc3VwZXhfbXdlYl9kZW1vX3dlYmZlXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV90b19jYWxsX3BsYXlyZWFkeV9iYWNrZW5kX2RpcmVjdGx5XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV91bmlmaWVkX2FjdGlvbl9lbmRjYXBfb25fd2ViXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV92ZW5vbV9ub3RpZmljYXRpb25fY2FjaGVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3ZpZGVvX2Rpc3BsYXlfY29tcGFjdF9idXR0b25fZ3JvdXBfZm9yX2Rlc2t0b3Bfc2VhcmNoXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV92b2ljZV9ib29zdF9mZWF0dXJlXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV92cDlfYXBwbGV0djVfb25fc2VydmVyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV93ZWJfZGVsaGlfaWNvbnNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl9ob21lX3RvcF9sYW5kc2NhcGVfaW1hZ2VfbGF5b3V0X2xldmVsX2NsaWNrXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV93ZWJfbWVkaWFfc2Vzc2lvbl9tZXRhZGF0YV9maXhcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl9wcmVtaXVtX3ZhcmlzcGVlZF91cHNlbGxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl9zaG9ydHNfYXVkaW9fdHJhY2tcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl90aWVyZWRfZ2VsXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV93aXpfcXVldWVfZWZmZWN0X2FuZF9vbl9pbml0X2luaXRpYWxfcnVuc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfeXRfYXRhX2lmcmFtZV9hdXRodXNlclx1MDAzZHRydWVcdTAwMjZlbmFibGVfeXR2X2NzZGFpX3ZwOVx1MDAzZHRydWVcdTAwMjZlbmRlbWljX2hpZ2hfY2N2X3NtZWFyaW5nX2FsbG93ZWRfdmlkZW9faWRzXHUwMDNkW09KbHdJZG9GejlBLCBBcktiQXgxSy0yVSwgbV9kaE1TdlVDSWMsIEMxRGhwSjA3WnVFLCBOcTJ3WWxXRnVjZywgSkM3ZjNFVURhcXcsIHZyM1h5VkNSNFQwLCBnQ05lRFdDSTB2bywga0JUdWRtNGdlTXMsIEZ4c2ZWWDZCMU1rLCB5bFlKU0JVZ2FNQSwgVldoUTZ4c3BuU2MsIFJIVWF1TWNZbFgwLCBjYjEyS21NTURKQSwgV0p4RWpfaHJwU2csIGV1aFktdG1nOXg4LCBUbElWSTJFVzdSMCwgTUlOZnZPWDRCekksIHlIbVBXemtoY1o4LCBwM3cxdk85WHYyNCwgVmxhQ25wMWZ4STgsIC1PZkEwNEJENEdBLCAxb2RZM0lZc05ubywgd2lUVHJWcVJWRHcsIERmbTJyQi1uUTlZLCBRbTFGdHo4bFZuSSwgOWl0QXhxX1NHRE0sIHlGSTN3cFh5NHpBLCBQeTVKWVpYSnZ6bywgYjR0RTVhS2h0bGcsIDVKRHhqc0FWYUdrLCBlVW1mR1BhenVFTSwgVzhuVGhxNjJWYjQsIFZManZTM3VmbFhjLCBCZmRMS3ZKQk1fYywgd2VMWGR3VmpTeHMsIDJKYS11UE9rejdJLCBBOVFCVkZFWXhPUSwgay1aRlFra0hVZmMsIHd1dTBEMjBBWnFJLCBfSHZpU3lDN3pTVSwgX194T3pfUTNxUjQsIHcyc0I4N2pMRTFJLCA4clRURU1kTWg4USwgLWs2bXBnbXhlclUsIDk3Y2tuckp5TFdnLCAyRkl0Vnl4TE5OYywgb3RueGZjc0dFLVksIHM5eEwxRHBCc2ZRLCB3ZkFHQlZnVXJybywgblhINlR4US1zaTgsIFdpSTFYZ19uRXU4LCAzZmxhc0dWVXJDQSwgZURZX0hlOTJsY1UsIGE0N2NrWEtaanhJLCBJNldSWGVLWks2NCwgVDlKNURxUDJES3csIEt0a19JMHBVcEc4LCBlUTJjekdxT0NQZywgaExtVTQ5aG1aNGMsIDdmN01nYU1FN1NjLCBRQjVCTmRCRnVqRSwgQUdodE1VX2ZpNzAsIHAyUmFRVVJSQXdBLCBtel9fRU1ZcFdQdywgNmpoTHVTUVZJeFUsIHJDODN2X3V1SXFvLCA2RGFHZEpSX2VMZywgY200M3VYamZ2WlksIFkxSnNQcG0yYm1RLCB6MDk3alB5S2VlbywgVFlWWldVVGpreDAsIFZIYUF2ZW5mVERrLCB0djlPVV81UTBwUSwgNm9LQ3Z6bTZIbWcsIEJFRlVFUmhUMG4wLCB1VE4tZXUwLU9YRSwgaGJhcHJoUjd6VG8sIDJDVjBWLW9NTkZNLCB1OGRTT0tvTkpwMCwgSDhNcXF3bUZzeFksIElza2ttTlBKZFVrLCBYOUhfRXpwREdYUV1cdTAwMjZlbmRlbWljX2hpZ2hfY2N2X3NtZWFyaW5nX21heF93aW5kb3dfc2Vjb25kc1x1MDAzZDYwXHUwMDI2ZXhwYW5kX21lZGlhdGVrX2RlbnlsaXN0X3RvX2FsbF9saXZlX3ZwOV9pbl9iYWNrZW5kX2V4cGVyaW1lbnRcdTAwM2RbXVx1MDAyNmV4cG9ydF9uZXR3b3JrbGVzc19vcHRpb25zXHUwMDNkdHJ1ZVx1MDAyNmV4cG9ydF9wbGF5ZXJfdmVyc2lvbl90b195dGNvbmZpZ1x1MDAzZHRydWVcdTAwMjZmaWxsX2Fkc191c3RyZWFtZXJfY29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmZpbGxfbGl2ZV9yZXF1ZXN0X2NvbmZpZ19pbl91c3RyZWFtZXJfY29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmZpbGxfc2luZ2xlX3ZpZGVvX3dpdGhfbm90aWZ5X3RvX2xhc3JcdTAwM2R0cnVlXHUwMDI2ZmlsdGVyX3ZiX3dpdGhvdXRfbm9uX3ZiX2VxdWl2YWxlbnRzXHUwMDNkdHJ1ZVx1MDAyNmZpbHRlcl92cDlfZm9yX2xpdmVfZGFpXHUwMDNkdHJ1ZVx1MDAyNmZpeF9hZF9taW5pcGxheWVyX2NvbnRyb2xzX3JlbmRlcmluZ1x1MDAzZHRydWVcdTAwMjZmaXhfYWRzX3RyYWNraW5nX2Zvcl9zd2ZfY29uZmlnX2RlcHJlY2F0aW9uX213ZWJcdTAwM2R0cnVlXHUwMDI2Zml4X2g1X3RvZ2dsZV9idXR0b25fYTExeVx1MDAzZHRydWVcdTAwMjZmaXhfc3VydmV5X2NvbG9yX2NvbnRyYXN0X29uX2Rlc3RvcFx1MDAzZHRydWVcdTAwMjZmcmVzY2FfcG9sbGluZ19kZWxheV9vdmVycmlkZVx1MDAzZDBcdTAwMjZnYWJfcmV0dXJuX3NhYnJfc3NkYWlfY29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmdlbF9taW5fYmF0Y2hfc2l6ZVx1MDAzZDNcdTAwMjZnZWxfcXVldWVfdGltZW91dF9tYXhfbXNcdTAwM2Q2MDAwMFx1MDAyNmd2aV9jaGFubmVsX2NsaWVudF9zY3JlZW5cdTAwM2R0cnVlXHUwMDI2aDVfY29tcGFuaW9uX2VuYWJsZV9hZGNwbl9tYWNyb19zdWJzdGl0dXRpb25fZm9yX2NsaWNrX3BpbmdzXHUwMDNkdHJ1ZVx1MDAyNmg1X2VuYWJsZV9hZF9tYnNcdTAwM2R0cnVlXHUwMDI2aDVfaW5wbGF5ZXJfZW5hYmxlX2FkY3BuX21hY3JvX3N1YnN0aXR1dGlvbl9mb3JfY2xpY2tfcGluZ3NcdTAwM2R0cnVlXHUwMDI2aDVfcmVzZXRfY2FjaGVfYW5kX2ZpbHRlcl9iZWZvcmVfdXBkYXRlX21hc3RoZWFkXHUwMDNkdHJ1ZVx1MDAyNmg1X3plcm9fZHVyYXRpb25fY3VlX3JhbmdlX2Zvcl9kaWJzXHUwMDNkdHJ1ZVx1MDAyNmhmcl9kcm9wcGVkX2ZyYW1lcmF0ZV9mYWxsYmFja190aHJlc2hvbGRcdTAwM2QwXHUwMDI2aGlnaF9jY3ZfY2xpZW50X3NpZGVfY2FjaGluZ19oNVx1MDAzZHRydWVcdTAwMjZobHNfdXNlX25ld19jb2RlY3Nfc3RyaW5nX2FwaVx1MDAzZHRydWVcdTAwMjZodG1sNV9hZF90aW1lb3V0X21zXHUwMDNkMFx1MDAyNmh0bWw1X2FkYXB0YXRpb25fc3RlcF9jb3VudFx1MDAzZDBcdTAwMjZodG1sNV9hZHNfcHJlcm9sbF9sb2NrX3RpbWVvdXRfZGVsYXlfbXNcdTAwM2QxNTAwMFx1MDAyNmh0bWw1X2FsbG93X211bHRpdmlld190aWxlX3ByZWxvYWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYWxsb3dfcHJlbG9hZGluZ193aXRoX2lkbGVfb25seV9uZXR3b3JrX2Zvcl9zYWJyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2FsbG93X3ZpZGVvX2tleWZyYW1lX3dpdGhvdXRfYXVkaW9cdTAwM2R0cnVlXHUwMDI2aHRtbDVfYXBwbHlfY29uc3RyYWludHNfaW5fY2xpZW50X2Zvcl9zYWJyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2FwcGx5X21pbl9mYWlsdXJlc1x1MDAzZHRydWVcdTAwMjZodG1sNV9hcHBseV9zdGFydF90aW1lX3dpdGhpbl9hZHNfZm9yX3NzZGFpX3RyYW5zaXRpb25zXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2F0cl9kaXNhYmxlX2ZvcmNlX2ZhbGxiYWNrXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2F0dF9wbGF5YmFja190aW1lb3V0X21zXHUwMDNkMzAwMDBcdTAwMjZodG1sNV9hdHRhY2hfbnVtX3JhbmRvbV9ieXRlc190b19iYW5kYWlkXHUwMDNkMFx1MDAyNmh0bWw1X2F0dGFjaF9wb190b2tlbl90b19iYW5kYWlkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2F1dG9uYXZfY2FwX2lkbGVfc2Vjc1x1MDAzZDBcdTAwMjZodG1sNV9hdXRvbmF2X3F1YWxpdHlfY2FwXHUwMDNkNzIwXHUwMDI2aHRtbDVfYXV0b3BsYXlfZGVmYXVsdF9xdWFsaXR5X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9hdXhpbGlhcnlfZXN0aW1hdGVfd2VpZ2h0XHUwMDNkMC4wXHUwMDI2aHRtbDVfYXYxX29yZGluYWxfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2JhbmRhaWRfYXR0YWNoX2NvbnRlbnRfcG9fdG9rZW5cdTAwM2R0cnVlXHUwMDI2aHRtbDVfYmxvY2tfcGlwX3NhZmFyaV9kZWxheVx1MDAzZDBcdTAwMjZodG1sNV9ieXBhc3NfY29udGVudGlvbl9zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfYnl0ZXJhdGVfc29mdF9jYXBcdTAwM2QwXHUwMDI2aHRtbDVfY2hlY2tfZm9yX2lkbGVfbmV0d29ya19pbnRlcnZhbF9tc1x1MDAzZDEwMDBcdTAwMjZodG1sNV9jaGlwc2V0X3NvZnRfY2FwXHUwMDNkODE5Mlx1MDAyNmh0bWw1X2NsYW1wX2ludmFsaWRfc2Vla190b19taW5fc2Vla2FibGVfdGltZVx1MDAzZHRydWVcdTAwMjZodG1sNV9jb25zdW1lX2FsbF9idWZmZXJlZF9ieXRlc19vbmVfcG9sbFx1MDAzZHRydWVcdTAwMjZodG1sNV9jb250aW51b3VzX2dvb2RwdXRfcHJvYmVfaW50ZXJ2YWxfbXNcdTAwM2QwXHUwMDI2aHRtbDVfZDZkZTRfY2xvdWRfcHJvamVjdF9udW1iZXJcdTAwM2Q4Njg2MTg2NzY5NTJcdTAwMjZodG1sNV9kZWJ1Z19kYXRhX2xvZ19wcm9iYWJpbGl0eVx1MDAzZDAuMFx1MDAyNmh0bWw1X2RlY29kZV90b190ZXh0dXJlX2NhcFx1MDAzZHRydWVcdTAwMjZodG1sNV9kZWZhdWx0X2FkX2dhaW5cdTAwM2QwLjVcdTAwMjZodG1sNV9kZWZhdWx0X2F2MV90aHJlc2hvbGRcdTAwM2QwXHUwMDI2aHRtbDVfZGVmYXVsdF9xdWFsaXR5X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9kZWZlcl9mZXRjaF9hdHRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfZGVsYXllZF9yZXRyeV9jb3VudFx1MDAzZDFcdTAwMjZodG1sNV9kZWxheWVkX3JldHJ5X2RlbGF5X21zXHUwMDNkNTAwMFx1MDAyNmh0bWw1X2RlcHJlY2F0ZV9hZHNlcnZpY2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGVwcmVjYXRlX21hbmlmZXN0ZnVsX2ZhbGxiYWNrXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2RlcHJlY2F0ZV92aWRlb190YWdfcG9vbFx1MDAzZHRydWVcdTAwMjZodG1sNV9kZXNrdG9wX3ZyMTgwX2FsbG93X3Bhbm5pbmdcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGZfZG93bmdyYWRlX3RocmVzaFx1MDAzZDAuNlx1MDAyNmh0bWw1X2Rpc2FibGVfYmFuZHdpZHRoX2NvZmFjdG9yc19mb3Jfc2Ficl9saXZlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2Rpc2FibGVfY2xpZW50X2F1dG9uYXZfY2FwX2Zvcl9vbmVzaWVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9sb29wX3JhbmdlX2Zvcl9zaG9ydHNfYWRzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2Rpc2FibGVfbm9uX2NvbnRpZ3VvdXNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9wZWFrX3NoYXZlX2Zvcl9vbmVzaWVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV91c3RyZWFtZXJfY29uc3RyYWludF9mb3Jfc2Ficlx1MDAzZHRydWVcdTAwMjZodG1sNV9kaXNhYmxlX3dlYl9zYWZhcmlfZGFpXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2Rpc3BsYXllZF9mcmFtZV9yYXRlX2Rvd25ncmFkZV90aHJlc2hvbGRcdTAwM2Q0NVx1MDAyNmh0bWw1X2RybV9ieXRlcmF0ZV9zb2Z0X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9kcm1fY2hlY2tfYWxsX2tleV9lcnJvcl9zdGF0ZXNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZHJtX2NwaV9saWNlbnNlX2tleVx1MDAzZHRydWVcdTAwMjZodG1sNV9kcm1fbGl2ZV9ieXRlcmF0ZV9zb2Z0X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9lYXJseV9tZWRpYV9mb3Jfc2hhcnBlcl9zaG9ydHNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2FjM1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfYXVkaW9fdHJhY2tfc3RpY2tpbmVzc1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfYXVkaW9fdHJhY2tfc3RpY2tpbmVzc19waGFzZV90d29cdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2NhcHRpb25fY2hhbmdlc19mb3JfbW9zYWljXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9jb21wb3NpdGVfZW1iYXJnb1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfZDZkZTRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2Q2ZGU0X2NvbGRfc3RhcnRfYW5kX2Vycm9yXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9kNmRlNF9pZGxlX3ByaW9yaXR5X2pvYlx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfZHJjXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9kcmNfdG9nZ2xlX2FwaVx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfZWFjM1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfZW1iZWRkZWRfcGxheWVyX3Zpc2liaWxpdHlfc2lnbmFsc1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfb2R1Y1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfc2Ficl9mb3JtYXRfc2VsZWN0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zYWJyX2Zyb21fd2F0Y2hfc2VydmVyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zYWJyX2hvc3RfZmFsbGJhY2tcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3NhYnJfb25feXRfZW1iZWRzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zYWJyX3ZvZF9zdHJlYW1pbmdfeGhyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zZXJ2ZXJfZHJpdmVuX3JlcXVlc3RfY2FuY2VsbGF0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zcHNfcmV0cnlfYmFja29mZl9tZXRhZGF0YV9yZXF1ZXN0c1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfc3NkYWlfdHJhbnNpdGlvbl93aXRoX29ubHlfZW50ZXJfY3VlcmFuZ2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3RyaWdnZXJpbmdfY3VlcG9pbnRfZm9yX3Nsb3RcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3R2b3NfZGFzaFx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfdHZvc19lbmNyeXB0ZWRfdnA5XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuY291cmFnZV9hcnJheV9jb2FsZXNjaW5nXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2ZpbGxfZGVmYXVsdF9tb3NhaWNfYXVkaW9fdHJhY2tfaWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZml4ZWRfbWVkaWFfZHVyYXRpb25fZm9yX3JlcXVlc3RcdTAwM2QwXHUwMDI2aHRtbDVfZmx1c2hfaW5kZXhfb25fdXBkYXRlZF90aW1lc3RhbXBfb2Zmc2V0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2ZvcmNlX3NhYnJfZnJvbV93YXRjaF9zZXJ2ZXJfZm9yX2Rmc3NcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZm9yd2FyZF9jbGlja190cmFja2luZ19wYXJhbXNfb25fcmVsb2FkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dhcGxlc3NfYWRfYXV0b3BsYXlfb25fdmlkZW9fdG9fYWRfb25seVx1MDAzZHRydWVcdTAwMjZodG1sNV9nYXBsZXNzX2VuZGVkX3RyYW5zaXRpb25fYnVmZmVyX21zXHUwMDNkMjAwXHUwMDI2aHRtbDVfZ2FwbGVzc19oYW5kb2ZmX2Nsb3NlX2VuZF9sb25nX3JlYnVmZmVyX2NmbFx1MDAzZHRydWVcdTAwMjZodG1sNV9nYXBsZXNzX2hhbmRvZmZfY2xvc2VfZW5kX2xvbmdfcmVidWZmZXJfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfZ2FwbGVzc19sb29wX3NlZWtfb2Zmc2V0X2luX21pbGxpXHUwMDNkMFx1MDAyNmh0bWw1X2dhcGxlc3Nfc2xvd19zZWVrX2NmbFx1MDAzZHRydWVcdTAwMjZodG1sNV9nYXBsZXNzX3Nsb3dfc2Vla19kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9nYXBsZXNzX3Nsb3dfc3RhcnRfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfZ2VuZXJhdGVfY29udGVudF9wb190b2tlblx1MDAzZHRydWVcdTAwMjZodG1sNV9nZW5lcmF0ZV9zZXNzaW9uX3BvX3Rva2VuXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dsX2Zwc190aHJlc2hvbGRcdTAwM2QwXHUwMDI2aHRtbDVfaGFyZF9jYXBfbWF4X3ZlcnRpY2FsX3Jlc29sdXRpb25fZm9yX3Nob3J0c1x1MDAzZDBcdTAwMjZodG1sNV9oZGNwX3Byb2Jpbmdfc3RyZWFtX3VybFx1MDAzZFx1MDAyNmh0bWw1X2hlYWRfbWlzc19zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfaGZyX3F1YWxpdHlfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2hpZ2hfcmVzX2xvZ2dpbmdfcGVyY2VudFx1MDAzZDAuMDFcdTAwMjZodG1sNV9oaWdoX3Jlc19zZWVrX2xvZ2dpbmdcdTAwM2R0cnVlXHUwMDI2aHRtbDVfaG9wZWxlc3Nfc2Vjc1x1MDAzZDBcdTAwMjZodG1sNV9odWxpX3NzZGFpX3VzZV9wbGF5YmFja19zdGF0ZVx1MDAzZHRydWVcdTAwMjZodG1sNV9pZGxlX3JhdGVfbGltaXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfaWdub3JlX3BhcnRpYWxfc2VnbWVudF9mcm9tX2xpdmVfcmVhZGFoZWFkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2lnbm9yZV9zYWJyc2Vla19kdXJpbmdfYWRza2lwXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2lubmVydHViZV9oZWFydGJlYXRzX2Zvcl9mYWlycGxheVx1MDAzZHRydWVcdTAwMjZodG1sNV9pbm5lcnR1YmVfaGVhcnRiZWF0c19mb3Jfd2lkZXZpbmVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfanVtYm9fbW9iaWxlX3N1YnNlZ21lbnRfcmVhZGFoZWFkX3RhcmdldFx1MDAzZDMuMFx1MDAyNmh0bWw1X2p1bWJvX3VsbF9ub25zdHJlYW1pbmdfbWZmYV9tc1x1MDAzZDQwMDBcdTAwMjZodG1sNV9qdW1ib191bGxfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0XHUwMDNkMS4zXHUwMDI2aHRtbDVfa2FidWtpX2RybV9saXZlXzUxX2RlZmF1bHRfb2ZmXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2xpY2Vuc2VfY29uc3RyYWludF9kZWxheVx1MDAzZDUwMDBcdTAwMjZodG1sNV9saXZlX2Ficl9oZWFkX21pc3NfZnJhY3Rpb25cdTAwM2QwLjBcdTAwMjZodG1sNV9saXZlX2Ficl9yZXByZWRpY3RfZnJhY3Rpb25cdTAwM2QwLjBcdTAwMjZodG1sNV9saXZlX2NodW5rX3JlYWRhaGVhZF9wcm94aW1hX292ZXJyaWRlXHUwMDNkMFx1MDAyNmh0bWw1X2xpdmVfbG93X2xhdGVuY3lfYmFuZHdpZHRoX3dpbmRvd1x1MDAzZDAuMFx1MDAyNmh0bWw1X2xpdmVfbm9ybWFsX2xhdGVuY3lfYmFuZHdpZHRoX3dpbmRvd1x1MDAzZDAuMFx1MDAyNmh0bWw1X2xpdmVfcXVhbGl0eV9jYXBcdTAwM2QwXHUwMDI2aHRtbDVfbGl2ZV91bHRyYV9sb3dfbGF0ZW5jeV9iYW5kd2lkdGhfd2luZG93XHUwMDNkMC4wXHUwMDI2aHRtbDVfbGl2ZW5lc3NfZHJpZnRfY2h1bmtfb3ZlcnJpZGVcdTAwM2QwXHUwMDI2aHRtbDVfbGl2ZW5lc3NfZHJpZnRfcHJveGltYV9vdmVycmlkZVx1MDAzZDBcdTAwMjZodG1sNV9sb2dfYXVkaW9fYWJyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2xvZ19leHBlcmltZW50X2lkX2Zyb21fcGxheWVyX3Jlc3BvbnNlX3RvX2N0bXBcdTAwM2RcdTAwMjZodG1sNV9sb2dfZmlyc3Rfc3NkYWlfcmVxdWVzdHNfa2lsbHN3aXRjaFx1MDAzZHRydWVcdTAwMjZodG1sNV9sb2dfcmVidWZmZXJfZXZlbnRzXHUwMDNkNVx1MDAyNmh0bWw1X2xvZ19zYWJyX21hbGZvcm1lZF9jb25maWdfcHJvdG9fc2hhcmVkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2xvZ190cmlnZ2VyX2V2ZW50c193aXRoX2RlYnVnX2RhdGFcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbG9nX3Zzc19leHRyYV9scl9jcGFyYW1zX2ZyZXFcdTAwM2RcdTAwMjZodG1sNV9sb25nX3JlYnVmZmVyX2ppZ2dsZV9jbXRfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfbG9uZ19yZWJ1ZmZlcl90aHJlc2hvbGRfbXNcdTAwM2QzMDAwMFx1MDAyNmh0bWw1X21hbmlmZXN0bGVzc192cDlfb3RmXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X21heF9idWZmZXJfaGVhbHRoX2Zvcl9kb3duZ3JhZGVfcHJvcFx1MDAzZDAuMFx1MDAyNmh0bWw1X21heF9idWZmZXJfaGVhbHRoX2Zvcl9kb3duZ3JhZGVfc2Vjc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21heF9ieXRlcmF0ZVx1MDAzZDBcdTAwMjZodG1sNV9tYXhfZGlzY29udGludWl0eV9yZXdyaXRlX2NvdW50XHUwMDNkMFx1MDAyNmh0bWw1X21heF9kcmlmdF9wZXJfdHJhY2tfc2Vjc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21heF9oZWFkbV9mb3Jfc3RyZWFtaW5nX3hoclx1MDAzZDBcdTAwMjZodG1sNV9tYXhfbGl2ZV9kdnJfd2luZG93X3BsdXNfbWFyZ2luX3NlY3NcdTAwM2Q0NjgwMC4wXHUwMDI2aHRtbDVfbWF4X3F1YWxpdHlfc2VsX3VwZ3JhZGVcdTAwM2QwXHUwMDI2aHRtbDVfbWF4X3JlZGlyZWN0X3Jlc3BvbnNlX2xlbmd0aFx1MDAzZDgxOTJcdTAwMjZodG1sNV9tYXhfc2VsZWN0YWJsZV9xdWFsaXR5X29yZGluYWxcdTAwM2QwXHUwMDI2aHRtbDVfbWF4X3ZlcnRpY2FsX3Jlc29sdXRpb25cdTAwM2QwXHUwMDI2aHRtbDVfbWF4aW11bV9yZWFkYWhlYWRfc2Vjb25kc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21lZGlhX2Z1bGxzY3JlZW5cdTAwM2R0cnVlXHUwMDI2aHRtbDVfbWVkaWFfdGltZV93ZWlnaHRfcHJvcFx1MDAzZDAuMFx1MDAyNmh0bWw1X21mY19tYXhfcXVldWVfbGVuZ3RoXHUwMDNkMVx1MDAyNmh0bWw1X21mY19taW5fYnVmZmVyX2hlYWx0aFx1MDAzZDBcdTAwMjZodG1sNV9tZmNfc2Vjc19sZWZ0X3RvX3N0YXJ0X3ByZWxvYWRcdTAwM2QwXHUwMDI2aHRtbDVfbWluX2ZhaWx1cmVzX3RvX2RlbGF5X3JldHJ5XHUwMDNkM1x1MDAyNmh0bWw1X21pbl9tZWRpYV9kdXJhdGlvbl9mb3JfYXBwZW5kX3Byb3BcdTAwM2QwLjBcdTAwMjZodG1sNV9taW5fbWVkaWFfZHVyYXRpb25fZm9yX2NhYnJfc2xpY2VcdTAwM2QwLjAxXHUwMDI2aHRtbDVfbWluX3BsYXliYWNrX2FkdmFuY2VfZm9yX3N0ZWFkeV9zdGF0ZV9zZWNzXHUwMDNkMFx1MDAyNmh0bWw1X21pbl9xdWFsaXR5X29yZGluYWxcdTAwM2QwXHUwMDI2aHRtbDVfbWluX3JlYWRiZWhpbmRfY2FwX3NlY3NcdTAwM2Q2MFx1MDAyNmh0bWw1X21pbl9yZWFkYmVoaW5kX3NlY3NcdTAwM2QwXHUwMDI2aHRtbDVfbWluX3NlY29uZHNfYmV0d2Vlbl9mb3JtYXRfc2VsZWN0aW9uc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21pbl9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbFx1MDAzZDBcdTAwMjZodG1sNV9taW5fc3RhcnR1cF9idWZmZXJlZF9tZWRpYV9kdXJhdGlvbl9mb3JfbGl2ZV9zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWluX3N0YXJ0dXBfYnVmZmVyZWRfbWVkaWFfZHVyYXRpb25fc2Vjc1x1MDAzZDEuMlx1MDAyNmh0bWw1X21pbl9zdGFydHVwX2R1cmF0aW9uX2xpdmVfc2Vjc1x1MDAzZDAuMjVcdTAwMjZodG1sNV9taW5fdW5kZXJydW5fYnVmZmVyZWRfcHJlX3N0ZWFkeV9zdGF0ZV9tc1x1MDAzZDBcdTAwMjZodG1sNV9taW5fdXBncmFkZV9oZWFsdGhfc2Vjc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21pbmltdW1fcmVhZGFoZWFkX3NlY29uZHNcdTAwM2QwLjBcdTAwMjZodG1sNV9tb2NrX2NvbnRlbnRfYmluZGluZ19mb3Jfc2Vzc2lvbl90b2tlblx1MDAzZFx1MDAyNmh0bWw1X21vdmVfZGlzYWJsZV9haXJwbGF5XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X25vX3BsYWNlaG9sZGVyX3JvbGxiYWNrc1x1MDAzZHRydWVcdTAwMjZodG1sNV9ub25fb25lc2llX2F0dGFjaF9wb190b2tlblx1MDAzZHRydWVcdTAwMjZodG1sNV9vZmZsaW5lX2Rvd25sb2FkX3RpbWVvdXRfcmV0cnlfbGltaXRcdTAwM2Q0XHUwMDI2aHRtbDVfb2ZmbGluZV9mYWlsdXJlX3JldHJ5X2xpbWl0XHUwMDNkMlx1MDAyNmh0bWw1X29mZmxpbmVfcGxheWJhY2tfcG9zaXRpb25fc3luY1x1MDAzZHRydWVcdTAwMjZodG1sNV9vZmZsaW5lX3ByZXZlbnRfcmVkb3dubG9hZF9kb3dubG9hZGVkX3ZpZGVvXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X29uZXNpZV9hdWRpb19vbmx5X3BsYXliYWNrXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X29uZXNpZV9jaGVja190aW1lb3V0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X29uZXNpZV9kZWZlcl9jb250ZW50X2xvYWRlcl9tc1x1MDAzZDBcdTAwMjZodG1sNV9vbmVzaWVfbGl2ZV90dGxfc2Vjc1x1MDAzZDhcdTAwMjZodG1sNV9vbmVzaWVfcHJld2FybV9pbnRlcnZhbF9tc1x1MDAzZDBcdTAwMjZodG1sNV9vbmVzaWVfcHJld2FybV9tYXhfbGFjdF9tc1x1MDAzZDBcdTAwMjZodG1sNV9vbmVzaWVfcmVkaXJlY3Rvcl90aW1lb3V0X21zXHUwMDNkMFx1MDAyNmh0bWw1X29uZXNpZV9zZW5kX3N0cmVhbWVyX2NvbnRleHRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfb3ZlcnJpZGVfbWljcm9fZGlzY29udGludWl0aWVzX3RocmVzaG9sZF9tc1x1MDAzZC0xXHUwMDI2aHRtbDVfcGFjZWRfcG9sbF9taW5faGVhbHRoX21zXHUwMDNkMFx1MDAyNmh0bWw1X3BhY2VkX3BvbGxfbXNcdTAwM2QwXHUwMDI2aHRtbDVfcGF1c2Vfb25fbm9uZm9yZWdyb3VuZF9wbGF0Zm9ybV9lcnJvcnNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcGVha19zaGF2ZVx1MDAzZHRydWVcdTAwMjZodG1sNV9wZXJmX2NhcF9vdmVycmlkZV9zdGlja3lcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcGVyZm9ybWFuY2VfY2FwX2Zsb29yXHUwMDNkMzYwXHUwMDI2aHRtbDVfcGVyc2VydmVfYXYxX3BlcmZfY2FwXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3BpY3R1cmVfaW5fcGljdHVyZV9sb2dnaW5nX29ucmVzaXplX3JhdGlvXHUwMDNkMC4wXHUwMDI2aHRtbDVfcGxhdGZvcm1fbWF4X2J1ZmZlcl9oZWFsdGhfb3ZlcnNlbmRfZHVyYXRpb25fc2Vjc1x1MDAzZDAuMFx1MDAyNmh0bWw1X3BsYXRmb3JtX21pbmltdW1fcmVhZGFoZWFkX3NlY29uZHNcdTAwM2QwLjBcdTAwMjZodG1sNV9wbGF0Zm9ybV93aGl0ZWxpc3RlZF9mb3JfZnJhbWVfYWNjdXJhdGVfc2Vla3NcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcGxheWVyX2F0dF9pbml0aWFsX2RlbGF5X21zXHUwMDNkMzAwMFx1MDAyNmh0bWw1X3BsYXllcl9hdHRfcmV0cnlfZGVsYXlfbXNcdTAwM2QxNTAwXHUwMDI2aHRtbDVfcGxheWVyX2F1dG9uYXZfbG9nZ2luZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9wbGF5ZXJfZXM2XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3BsYXllcl9taW5fYnVpbGRfY2xcdTAwM2QtMVx1MDAyNmh0bWw1X3BsYXllcl9wcmVsb2FkX2FkX2ZpeFx1MDAzZHRydWVcdTAwMjZodG1sNV9wb3N0X2ludGVycnVwdF9yZWFkYWhlYWRcdTAwM2QyMFx1MDAyNmh0bWw1X3ByZWZlcl9sYW5ndWFnZV9vdmVyX2NvZGVjXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3ByZWZlcl9zZXJ2ZXJfYndlM1x1MDAzZHRydWVcdTAwMjZodG1sNV9wcmVsb2FkX2JlZm9yZV9pbml0aWFsX3NlZWtfd2l0aF9zYWJyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3ByZWxvYWRfd2FpdF90aW1lX3NlY3NcdTAwM2QwLjBcdTAwMjZodG1sNV9wcmV2ZW50X21vYmlsZV9iYWNrZ3JvdW5kX3BsYXlfb25fZXZlbnRfc2hhcmVkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3Byb2JlX3ByaW1hcnlfZGVsYXlfYmFzZV9tc1x1MDAzZDBcdTAwMjZodG1sNV9wcm9jZXNzX2FsbF9lbmNyeXB0ZWRfZXZlbnRzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3FvZV9wcm90b19tb2NrX2xlbmd0aFx1MDAzZDBcdTAwMjZodG1sNV9xdWVyeV9zd19zZWN1cmVfY3J5cHRvX2Zvcl9hbmRyb2lkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JhbmRvbV9wbGF5YmFja19jYXBcdTAwM2QwXHUwMDI2aHRtbDVfcmVjb3JkX2lzX29mZmxpbmVfb25fcGxheWJhY2tfYXR0ZW1wdF9zdGFydFx1MDAzZHRydWVcdTAwMjZodG1sNV9yZWNvcmRfdW1wX3RpbWluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9yZWxvYWRfYnlfa2FidWtpX2FwcFx1MDAzZHRydWVcdTAwMjZodG1sNV9yZW1vdmVfY29tbWFuZF90cmlnZ2VyZWRfY29tcGFuaW9uc1x1MDAzZHRydWVcdTAwMjZodG1sNV9yZW1vdmVfbm90X3NlcnZhYmxlX2NoZWNrX2tpbGxzd2l0Y2hcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmVwb3J0X2ZhdGFsX2RybV9yZXN0cmljdGVkX2Vycm9yX2tpbGxzd2l0Y2hcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmVwb3J0X3Nsb3dfYWRzX2FzX2Vycm9yXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlcHJlZGljdF9pbnRlcnZhbF9tc1x1MDAzZDBcdTAwMjZodG1sNV9yZXF1ZXN0X29ubHlfaGRyX29yX3Nkcl9rZXlzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlcXVlc3Rfc2l6ZV9tYXhfa2JcdTAwM2QwXHUwMDI2aHRtbDVfcmVxdWVzdF9zaXplX21pbl9rYlx1MDAzZDBcdTAwMjZodG1sNV9yZXNlZWtfYWZ0ZXJfdGltZV9qdW1wX2NmbFx1MDAzZHRydWVcdTAwMjZodG1sNV9yZXNlZWtfYWZ0ZXJfdGltZV9qdW1wX2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X3Jlc2V0X2JhY2tvZmZfb25fdXNlcl9zZWVrXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3Jlc291cmNlX2JhZF9zdGF0dXNfZGVsYXlfc2NhbGluZ1x1MDAzZDEuNVx1MDAyNmh0bWw1X3Jlc3RyaWN0X3N0cmVhbWluZ194aHJfb25fc3FsZXNzX3JlcXVlc3RzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JldHJ5X2Rvd25sb2Fkc19mb3JfZXhwaXJhdGlvblx1MDAzZHRydWVcdTAwMjZodG1sNV9yZXRyeV9vbl9kcm1fa2V5X2Vycm9yXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JldHJ5X29uX2RybV91bmF2YWlsYWJsZVx1MDAzZHRydWVcdTAwMjZodG1sNV9yZXRyeV9xdW90YV9leGNlZWRlZF92aWFfc2Vla1x1MDAzZHRydWVcdTAwMjZodG1sNV9yZXR1cm5fcGxheWJhY2tfaWZfYWxyZWFkeV9wcmVsb2FkZWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9lbmFibGVfc2VydmVyX3h0YWdfc2VsZWN0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfZmV0Y2hfb25faWRsZV9uZXR3b3JrX3ByZWxvYWRlZF9wbGF5ZXJzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfZm9yY2VfbWF4X25ldHdvcmtfaW50ZXJydXB0aW9uX2R1cmF0aW9uX21zXHUwMDNkMFx1MDAyNmh0bWw1X3NhYnJfbGl2ZV9sb3dfbGF0ZW5jeV9zdHJlYW1pbmdfeGhyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfbGl2ZV9ub3JtYWxfbGF0ZW5jeV9zdHJlYW1pbmdfeGhyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfbGl2ZV90aW1pbmdcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9saXZlX3VsdHJhX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9sb2dfc2VydmVyX3h0YWdfc2VsZWN0aW9uX29uZXNpZV9taXNtYXRjaFx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX21pbl9tZWRpYV9ieXRlc19mYWN0b3JfdG9fYXBwZW5kX2Zvcl9zdHJlYW1cdTAwM2QwLjBcdTAwMjZodG1sNV9zYWJyX25vbl9zdHJlYW1pbmdfeGhyX3JlcXVlc3RfY2FuY2VsbGF0aW9uX3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl90aW1lb3V0X3JldHJ5X2xpbWl0XHUwMDNkMFx1MDAyNmh0bWw1X3NhYnJfcmVwb3J0X3BhcnRpYWxfc2VnbWVudF9lc3RpbWF0ZWRfZHVyYXRpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9yZXBvcnRfcmVxdWVzdF9jYW5jZWxsYXRpb25faW5mb1x1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX3JlcXVlc3RfbGltaXRfcGVyX3BlcmlvZFx1MDAzZDIwXHUwMDI2aHRtbDVfc2Ficl9yZXF1ZXN0X29uX2NvbnN0cmFpbnRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9zZWVrX25vX3NoaWZ0X3RvbGVyYW5jZVx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX3NraXBfY2xpZW50X2F1ZGlvX2luaXRfc2VsZWN0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfc3VjY2Vzc2Z1bF9wcm9iZV90aW1lb3V0X21zXHUwMDNkMFx1MDAyNmh0bWw1X3NhYnJfdWdjX3ZvZF93ZWJfZW1iZWRkZWRfY2xpZW50X2RlZmF1bHRfYmFuZHdpZHRoX29uX2lwaG9uZVx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX3VudXNlZF9ibG9hdF9zaXplX2J5dGVzXHUwMDNkMFx1MDAyNmh0bWw1X3NhbXN1bmdfa2FudF9saW1pdF9tYXhfYml0cmF0ZVx1MDAzZDBcdTAwMjZodG1sNV9zZWVrX2ppZ2dsZV9jbXRfZGVsYXlfbXNcdTAwM2Q4MDAwXHUwMDI2aHRtbDVfc2Vla19uZXdfZWxlbV9kZWxheV9tc1x1MDAzZDEyMDAwXHUwMDI2aHRtbDVfc2Vla19uZXdfZWxlbV9zaG9ydHNfZGVsYXlfbXNcdTAwM2QyMDAwXHUwMDI2aHRtbDVfc2Vla19uZXdfbWVkaWFfZWxlbWVudF9zaG9ydHNfcmV1c2VfY2ZsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NlZWtfbmV3X21lZGlhX2VsZW1lbnRfc2hvcnRzX3JldXNlX2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X3NlZWtfbmV3X21lZGlhX3NvdXJjZV9zaG9ydHNfcmV1c2VfY2ZsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NlZWtfbmV3X21lZGlhX3NvdXJjZV9zaG9ydHNfcmV1c2VfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Vla19zZXRfY210X2RlbGF5X21zXHUwMDNkMjAwMFx1MDAyNmh0bWw1X3NlZWtfdGltZW91dF9kZWxheV9tc1x1MDAzZDIwMDAwXHUwMDI2aHRtbDVfc2VuZF9jdWVwb2ludF9pZF9pbl9hZF9icmVha19yZXF1ZXN0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NlbmRfc2VyaWFsaXplZF9vbmVfdGltZV9xb2VfY29udGV4dF9kYXRhXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NlcnZlX3N0YXJ0X3NlY29uZHNfc2Vla19mb3JfcG9zdF9saXZlX3NhYnJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2VydmVyX3N0aXRjaGVkX2RhaV9kZWNvcmF0ZWRfdXJsX3JldHJ5X2xpbWl0XHUwMDNkNVx1MDAyNmh0bWw1X3Nlc3Npb25fcG9fdG9rZW5faW50ZXJ2YWxfdGltZV9tc1x1MDAzZDkwMDAwMFx1MDAyNmh0bWw1X3NldF92aWRlb19pZF9hc19leHBlY3RlZF9jb250ZW50X2JpbmRpbmdcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2hvcnRzX2dhcGxlc3NfYWRfc2xvd19zdGFydF9jZmxcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2hvcnRzX2dhcGxlc3NfYWRfc2xvd19zdGFydF9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9zaG9ydHNfZ2FwbGVzc19uZXh0X2J1ZmZlcl9pbl9zZWNvbmRzXHUwMDNkMFx1MDAyNmh0bWw1X3Nob3J0c19nYXBsZXNzX25vX2dsbGF0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3Nob3J0c19nYXBsZXNzX3Nsb3dfc3RhcnRfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2hvd19kcmNfdG9nZ2xlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NpbXBsaWZpZWRfYmFja3VwX3RpbWVvdXRfc2Ficl9saXZlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NraXBfZW1wdHlfcG9fdG9rZW5cdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2tpcF9zbG93X2FkX2RlbGF5X21zXHUwMDNkMTUwMDBcdTAwMjZodG1sNV9zbG93X3N0YXJ0X25vX21lZGlhX3NvdXJjZV9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9zbG93X3N0YXJ0X3RpbWVvdXRfZGVsYXlfbXNcdTAwM2QyMDAwMFx1MDAyNmh0bWw1X3NzZGFpX2VuYWJsZV9tZWRpYV9lbmRfY3VlX3JhbmdlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NzZGFpX2ZhaWx1cmVfcmV0cnlfbGltaXRcdTAwM2QwXHUwMDI2aHRtbDVfc3NkYWlfbG9nX21pc3NpbmdfYWRfY29uZmlnX3JlYXNvblx1MDAzZHRydWVcdTAwMjZodG1sNV9zdGFsbF9mYWN0b3JcdTAwM2QwLjBcdTAwMjZodG1sNV9zdGF0ZWZ1bF9hdWRpb19ub3JtYWxpemF0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3N0aWNreV9kdXJhdGlvbl9tb3NcdTAwM2QwXHUwMDI2aHRtbDVfc3RvcmVfeGhyX2hlYWRlcnNfcmVhZGFibGVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc3RyZWFtaW5nX3Jlc2lsaWVuY2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc3RyZWFtaW5nX3hocl90aW1lX2Jhc2VkX2NvbnNvbGlkYXRpb25fbXNcdTAwM2QtMVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX2xvYWRfc3BlZWRfY2hlY2tfaW50ZXJ2YWxcdTAwM2QwLjVcdTAwMjZodG1sNV9zdWJzZWdtZW50X3JlYWRhaGVhZF9taW5fYnVmZmVyX2hlYWx0aF9zZWNzXHUwMDNkMC4yNVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX21pbl9idWZmZXJfaGVhbHRoX3NlY3Nfb25fdGltZW91dFx1MDAzZDAuMVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX21pbl9sb2FkX3NwZWVkXHUwMDNkMS41XHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfc2Vla19sYXRlbmN5X2Z1ZGdlXHUwMDNkMC41XHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0X2J1ZmZlcl9oZWFsdGhfc2Vjc1x1MDAzZDAuNVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX3RpbWVvdXRfc2Vjc1x1MDAzZDIuMFx1MDAyNmh0bWw1X3RyYWNrX292ZXJzaG9vdFx1MDAzZHRydWVcdTAwMjZodG1sNV90cmFuc2Zlcl9wcm9jZXNzaW5nX2xvZ3NfaW50ZXJ2YWxcdTAwM2QxMDAwXHUwMDI2aHRtbDVfdHJpZ2dlcl9sb2FkZXJfd2hlbl9pZGxlX25ldHdvcmtcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdWdjX2xpdmVfYXVkaW9fNTFcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdWdjX3ZvZF9hdWRpb181MVx1MDAzZHRydWVcdTAwMjZodG1sNV91bnJlcG9ydGVkX3NlZWtfcmVzZWVrX2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X3VwZGF0ZV90aW1lX29uX3NlZWtlZFx1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfZGF0ZV9ub3dfZm9yX2xvY2FsX3N0b3JhZ2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX2luaXRfc2VsZWN0ZWRfYXVkaW9cdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX25vbl9hY3RpdmVfYnJvYWRjYXN0X2Zvcl9wb3N0X2xpdmVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX3Bvc3RfZm9yX21lZGlhXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV9zaGFyZWRfb3dsX2luc3RhbmNlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV91bXBcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX3VtcF9yZXF1ZXN0X3NsaWNlclx1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfdW1wX3RpbWluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfdmlkZW9fcXVhbGl0eV9jYXBfZm9yX3VzdHJlYW1lcl9jb25zdHJhaW50XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV92aWRlb190cmFuc2l0aW9uX2VuZHBvaW50X2hlYXJ0YmVhdFx1MDAzZHRydWVcdTAwMjZodG1sNV92aWRlb190YmRfbWluX2tiXHUwMDNkMFx1MDAyNmh0bWw1X3ZpZXdwb3J0X3VuZGVyc2VuZF9tYXhpbXVtXHUwMDNkMC4wXHUwMDI2aHRtbDVfdm9sdW1lX3NsaWRlcl90b29sdGlwXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3dlYl9wb19leHBlcmltZW50X2lkc1x1MDAzZFtdXHUwMDI2aHRtbDVfd2ViX3BvX3JlcXVlc3Rfa2V5XHUwMDNkXHUwMDI2aHRtbDVfd2ViX3BvX3Rva2VuX2Rpc2FibGVfY2FjaGluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV93ZWJwb19pZGxlX3ByaW9yaXR5X2pvYlx1MDAzZHRydWVcdTAwMjZodG1sNV93ZWJwb19rYWlvc19kZWZlcl90aW1lb3V0X21zXHUwMDNkMFx1MDAyNmh0bWw1X3dvZmZsZV9yZXN1bWVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfd29ya2Fyb3VuZF9kZWxheV90cmlnZ2VyXHUwMDNkdHJ1ZVx1MDAyNmlkYl9pbW1lZGlhdGVfY29tbWl0XHUwMDNkdHJ1ZVx1MDAyNmlnbm9yZV9vdmVybGFwcGluZ19jdWVfcG9pbnRzX29uX2VuZGVtaWNfbGl2ZV9odG1sNVx1MDAzZHRydWVcdTAwMjZpbF9hdHRhY2hfY2FjaGVfbGltaXRcdTAwM2R0cnVlXHUwMDI2aWxfcGF5bG9hZF9zY3JhcGluZ1x1MDAzZFx1MDAyNmlsX3VzZV92aWV3X21vZGVsX2xvZ2dpbmdfY29udGV4dFx1MDAzZHRydWVcdTAwMjZpbml0aWFsX2dlbF9iYXRjaF90aW1lb3V0XHUwMDNkMjAwMFx1MDAyNmluamVjdGVkX2xpY2Vuc2VfaGFuZGxlcl9lcnJvcl9jb2RlXHUwMDNkMFx1MDAyNmluamVjdGVkX2xpY2Vuc2VfaGFuZGxlcl9saWNlbnNlX3N0YXR1c1x1MDAzZDBcdTAwMjZpb3NfYW5kX2FuZHJvaWRfZnJlc2NhX3BvbGxpbmdfZGVsYXlfb3ZlcnJpZGVcdTAwM2QwXHUwMDI2aXRkcm1fYWx3YXlzX3VzZV93aWRldmluZV9zZGtcdTAwM2R0cnVlXHUwMDI2aXRkcm1fZGlzYWJsZV9leHRlcm5hbF9rZXlfcm90YXRpb25fc3lzdGVtX2lkc1x1MDAzZFtdXHUwMDI2aXRkcm1fZW5hYmxlX3Jldm9jYXRpb25fcmVwb3J0aW5nXHUwMDNkdHJ1ZVx1MDAyNml0ZHJtX2luamVjdGVkX2xpY2Vuc2Vfc2VydmljZV9lcnJvcl9jb2RlXHUwMDNkMFx1MDAyNml0ZHJtX3NldF9zYWJyX2xpY2Vuc2VfY29uc3RyYWludFx1MDAzZHRydWVcdTAwMjZpdGRybV91c2VfZmFpcnBsYXlfc2RrXHUwMDNkdHJ1ZVx1MDAyNml0ZHJtX3VzZV93aWRldmluZV9zZGtfZm9yX3ByZW1pdW1fY29udGVudFx1MDAzZHRydWVcdTAwMjZpdGRybV93aWRldmluZV9oYXJkZW5lZF92bXBfbW9kZVx1MDAzZGxvZ1x1MDAyNmpzb25fY29uZGVuc2VkX3Jlc3BvbnNlXHUwMDNkdHJ1ZVx1MDAyNmtldmxhcl9jb21tYW5kX2hhbmRsZXJfY29tbWFuZF9iYW5saXN0XHUwMDNkW11cdTAwMjZrZXZsYXJfZGVsaGlfbW9kZXJuX3dlYl9lbmRzY3JlZW5faWRlYWxfdGlsZV93aWR0aF9wZXJjZW50YWdlXHUwMDNkMC4yN1x1MDAyNmtldmxhcl9kZWxoaV9tb2Rlcm5fd2ViX2VuZHNjcmVlbl9tYXhfcm93c1x1MDAzZDJcdTAwMjZrZXZsYXJfZGVsaGlfbW9kZXJuX3dlYl9lbmRzY3JlZW5fbWF4X3dpZHRoXHUwMDNkNTAwXHUwMDI2a2V2bGFyX2RlbGhpX21vZGVybl93ZWJfZW5kc2NyZWVuX21pbl93aWR0aFx1MDAzZDIwMFx1MDAyNmtldmxhcl9nZWxfZXJyb3Jfcm91dGluZ1x1MDAzZHRydWVcdTAwMjZrZXZsYXJfbWluaXBsYXllcl9leHBhbmRfdG9wXHUwMDNkdHJ1ZVx1MDAyNmtldmxhcl9taW5pcGxheWVyX3BsYXlfcGF1c2Vfb25fc2NyaW1cdTAwM2R0cnVlXHUwMDI2a2V2bGFyX3BsYXliYWNrX2Fzc29jaWF0ZWRfcXVldWVcdTAwM2R0cnVlXHUwMDI2bGF1bmNoX2xpY2Vuc2Vfc2VydmljZV9hbGxfb3R0X3ZpZGVvc19hdXRvbWF0aWNfZmFpbF9vcGVuXHUwMDNkdHJ1ZVx1MDAyNmxpbWl0X3l0Y3NpX2RlYnVnX2FycmF5X3NpemVcdTAwM2R0cnVlXHUwMDI2bGl2ZV9jaGF0X2VuYWJsZV9ydGFfbWFuYWdlclx1MDAzZHRydWVcdTAwMjZsaXZlX2NodW5rX3JlYWRhaGVhZFx1MDAzZDNcdTAwMjZsb2dfY2xpY2tfd2l0aF9sYXllcl9mcm9tX2VsZW1lbnRfaW5fY29tbWFuZF9oYW5kbGVyXHUwMDNkdHJ1ZVx1MDAyNmxvZ193aW5kb3dfb25lcnJvcl9mcmFjdGlvblx1MDAzZDAuMVx1MDAyNm1hbmlmZXN0bGVzc19wb3N0X2xpdmVcdTAwM2R0cnVlXHUwMDI2bWFuaWZlc3RsZXNzX3Bvc3RfbGl2ZV91ZnBoXHUwMDNkdHJ1ZVx1MDAyNm1heF9ib2R5X3NpemVfdG9fY29tcHJlc3NcdTAwM2Q1MDAwMDBcdTAwMjZtYXhfY2RmZV9xdWFsaXR5X29yZGluYWxcdTAwM2QwXHUwMDI2bWF4X3ByZWZldGNoX3dpbmRvd19zZWNfZm9yX2xpdmVzdHJlYW1fb3B0aW1pemF0aW9uXHUwMDNkMTBcdTAwMjZtYXhfcmVzb2x1dGlvbl9mb3Jfd2hpdGVfbm9pc2VcdTAwM2QzNjBcdTAwMjZtZHhfZW5hYmxlX3ByaXZhY3lfZGlzY2xvc3VyZV91aVx1MDAzZHRydWVcdTAwMjZtZHhfbG9hZF9jYXN0X2FwaV9ib290c3RyYXBfc2NyaXB0XHUwMDNkdHJ1ZVx1MDAyNm1pbl9wcmVmZXRjaF9vZmZzZXRfc2VjX2Zvcl9saXZlc3RyZWFtX29wdGltaXphdGlvblx1MDAzZDIwXHUwMDI2bXRhX2RyY19tdXR1YWxfZXhjbHVzaW9uX3JlbW92YWxcdTAwM2R0cnVlXHUwMDI2bXVzaWNfZW5hYmxlX3NoYXJlZF9hdWRpb190aWVyX2xvZ2ljXHUwMDNkdHJ1ZVx1MDAyNm13ZWJfYWNjb3VudF9saW5raW5nX25vYXBwXHUwMDNkdHJ1ZVx1MDAyNm13ZWJfZGVidWdfc3RpY2t5X3NldHRpbmdzXHUwMDNkdHJ1ZVx1MDAyNm13ZWJfZW5hYmxlX2NsaWNrX3RvX3BsYXlfcGF1c2VcdTAwM2R0cnVlXHUwMDI2bXdlYl9lbmFibGVfZmluZV9zY3J1YmJpbmdfZm9yX3JlY3NcdTAwM2R0cnVlXHUwMDI2bXdlYl9lbmFibGVfbW9yZV9jaHVua3NcdTAwM2R0cnVlXHUwMDI2bXdlYl9uYXRpdmVfY29udHJvbF9pbl9mYXV4X2Z1bGxzY3JlZW5fc2hhcmVkXHUwMDNkdHJ1ZVx1MDAyNm13ZWJfcGxheWVyX2NvbnRyb2xfb25faG92ZXJcdTAwM2R0cnVlXHUwMDI2bXdlYl9wcm9ncmVzc19iYXJfc2Vla19vbl9tb3VzZV9jbGlja1x1MDAzZHRydWVcdTAwMjZtd2ViX3Nob3J0c19jb21tZW50c19wYW5lbF9pZF9jaGFuZ2VcdTAwM2R0cnVlXHUwMDI2bXdlYl91c2VfbWljcm9mb3JtYXRfdGl0bGVfZm9yX3Bvc3RzXHUwMDNkdHJ1ZVx1MDAyNm5ldHdvcmtfcG9sbGluZ19pbnRlcnZhbFx1MDAzZDMwMDAwXHUwMDI2bmV0d29ya2xlc3NfbG9nZ2luZ1x1MDAzZHRydWVcdTAwMjZuZXdfY29kZWNzX3N0cmluZ19hcGlfdXNlc19sZWdhY3lfc3R5bGVcdTAwM2R0cnVlXHUwMDI2bm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd25cdTAwM2R0cnVlXHUwMDI2bm9fZmlsbGVyX3ZpZGVvX2Zvcl9zc2FfcGxheWJhY2tzXHUwMDNkdHJ1ZVx1MDAyNm92ZXJyaWRlX2RybV9yZXF1aXJlZF9wbGF5YmFja19wb2xpY3lfY2hhbm5lbHNcdTAwM2RbXVx1MDAyNnBhZ2VpZF9hc19oZWFkZXJfd2ViXHUwMDNkdHJ1ZVx1MDAyNnBsYXllcl9hZHNfc2V0X2FkZm9ybWF0X29uX2NsaWVudFx1MDAzZHRydWVcdTAwMjZwbGF5ZXJfYm9vdHN0cmFwX21ldGhvZFx1MDAzZHRydWVcdTAwMjZwbGF5ZXJfY29udHJvbHNfdXNlX3BsYXllcl9hcGlfY29udGV4dFx1MDAzZHRydWVcdTAwMjZwbGF5ZXJfY29udHJvbHNfdm9sdW1lX2NvbnRyb2xzX3VzZV9wbGF5ZXJfcHJvcHNcdTAwM2R0cnVlXHUwMDI2cGxheWVyX2Rlc3Ryb3lfb2xkX3ZlcnNpb25cdTAwM2R0cnVlXHUwMDI2cGxheWVyX2VuYWJsZV9wbGF5YmFja19wbGF5bGlzdF9jaGFuZ2VcdTAwM2R0cnVlXHUwMDI2cGxheWVyX25ld19pbmZvX2NhcmRfZm9ybWF0XHUwMDNkdHJ1ZVx1MDAyNnBsYXllcl91bmRlcmxheV9taW5fcGxheWVyX3dpZHRoXHUwMDNkNzY4LjBcdTAwMjZwbGF5ZXJfdW5kZXJsYXlfdmlkZW9fd2lkdGhfZnJhY3Rpb25cdTAwM2QwLjZcdTAwMjZwbGF5ZXJfd2ViX2NhbmFyeV9zdGFnZVx1MDAzZDBcdTAwMjZwbGF5cmVhZHlfZmlyc3RfcGxheV9leHBpcmF0aW9uXHUwMDNkLTFcdTAwMjZwb2RjYXN0c192aWRlb3N0YXRzX2RlZmF1bHRfZmx1c2hfaW50ZXJ2YWxfc2Vjb25kc1x1MDAzZDBcdTAwMjZwb2x5bWVyX2JhZF9idWlsZF9sYWJlbHNcdTAwM2R0cnVlXHUwMDI2cG9seW1lcl92ZXJpZml5X2FwcF9zdGF0ZVx1MDAzZHRydWVcdTAwMjZwb3B1bGF0ZV9mb3JtYXRfc2V0X2luZm9faW5fY2RmZV9mb3JtYXRzXHUwMDNkdHJ1ZVx1MDAyNnByZXNraXBfYnV0dG9uX3N0eWxlX2Fkc19iYWNrZW5kXHUwMDNkXHUwMDI2cHJveGltYV9hdXRvX3RocmVzaG9sZF9tYXhfbmV0d29ya19pbnRlcnJ1cHRpb25fZHVyYXRpb25fbXNcdTAwM2QwXHUwMDI2cHJveGltYV9hdXRvX3RocmVzaG9sZF9taW5fYmFuZHdpZHRoX2VzdGltYXRlX2J5dGVzX3Blcl9zZWNcdTAwM2QwXHUwMDI2cW9lX3NlbmRfYW5kX3dyaXRlXHUwMDNkdHJ1ZVx1MDAyNnF1YWxpdHlfY2FwX2Zvcl9pbmxpbmVfbm9uX2FwcF9hZHNcdTAwM2QwXHUwMDI2cXVhbGl0eV9jYXBfZm9yX2lubGluZV9wbGF5YmFja1x1MDAzZDBcdTAwMjZxdWFsaXR5X2NhcF9mb3JfaW5saW5lX3BsYXliYWNrX2Fkc1x1MDAzZDBcdTAwMjZyZWFkX2FoZWFkX21vZGVsX25hbWVcdTAwM2RcdTAwMjZyZWplY3RfaGlkZGVuX2xpdmVfZm9ybWF0c1x1MDAzZHRydWVcdTAwMjZyZWplY3RfbGl2ZV92cDlfbXFfY2xlYXJfd2l0aF9ub19hYnJfbGFkZGVyXHUwMDNkdHJ1ZVx1MDAyNnJlbGF4X2JnX25vdGlmaWNhdGlvbl90aHJvdHRsaW5nXHUwMDNkdHJ1ZVx1MDAyNnJlbW92ZV9jaGV2cm9uX2Zyb21fYWRfZGlzY2xvc3VyZV9iYW5uZXJfaDVcdTAwM2R0cnVlXHUwMDI2cmVtb3ZlX21hc3RoZWFkX2NoYW5uZWxfYmFubmVyX29uX3JlZnJlc2hcdTAwM2R0cnVlXHUwMDI2cmVtb3ZlX3Nsb3RfaWRfZXhpdGVkX3RyaWdnZXJfZm9yX2RhaV9pbl9wbGF5ZXJfc2xvdF9leHBpcmVcdTAwM2R0cnVlXHUwMDI2cmVwbGFjZV9wbGF5YWJpbGl0eV9yZXRyaWV2ZXJfaW5fd2F0Y2hcdTAwM2R0cnVlXHUwMDI2cm9zY2FzXHUwMDNkdHJ1ZVx1MDAyNnNhYnJfZW5hYmxlX2hvc3RfZmFsbGJhY2tcdTAwM2R0cnVlXHUwMDI2c2VsZl9wb2RkaW5nX2hlYWRlcl9zdHJpbmdfdGVtcGxhdGVcdTAwM2RzZWxmX3BvZGRpbmdfaW50ZXJzdGl0aWFsX21lc3NhZ2VcdTAwMjZzZWxmX3BvZGRpbmdfbWlkcm9sbF9jaG9pY2Vfc3RyaW5nX3RlbXBsYXRlXHUwMDNkc2VsZl9wb2RkaW5nX21pZHJvbGxfY2hvaWNlXHUwMDI2c2VuZF9jb25maWdfaGFzaF90aW1lclx1MDAzZDBcdTAwMjZzZXJ2ZV9hZGFwdGl2ZV9mbXRzX2Zvcl9saXZlX3N0cmVhbXNcdTAwM2R0cnVlXHUwMDI2c2V0X21vY2tfaWRfYXNfZXhwZWN0ZWRfY29udGVudF9iaW5kaW5nXHUwMDNkXHUwMDI2c2hlbGxfbG9hZF9nY2ZcdTAwM2R0cnVlXHUwMDI2c2hvcnRlbl9pbml0aWFsX2dlbF9iYXRjaF90aW1lb3V0XHUwMDNkdHJ1ZVx1MDAyNnNob3J0c19tb2RlX3RvX3BsYXllcl9hcGlcdTAwM2R0cnVlXHUwMDI2c2hvdWxkX2F0dHJpYnV0ZV90b193YXRjaF93aXRoX3NvdXJjZVx1MDAzZFtdXHUwMDI2c2hvdWxkX2F0dHJpYnV0ZV92aWV3c190b193YXRjaF93aXRoX3NvdXJjZVx1MDAzZHRydWVcdTAwMjZzaW1wbHlfZW1iZWRkZWRfZW5hYmxlX2JvdGd1YXJkXHUwMDNkdHJ1ZVx1MDAyNnNsb3dfY29tcHJlc3Npb25zX2JlZm9yZV9hYmFuZG9uX2NvdW50XHUwMDNkNFx1MDAyNnNtYWxsX2F2YXRhcnNfZm9yX2NvbW1lbnRzXHUwMDNkdHJ1ZVx1MDAyNnNtYXJ0X3NraXBfd2ViX3BsYXllcl9iYXJfbWluX2hvdmVyX2xlbmd0aF9taWxsaXNlY29uZHNcdTAwM2QxMDAwXHUwMDI2c21hcnRlcl92ZV9kZWR1cHBpbmdcdTAwM2R0cnVlXHUwMDI2c3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwXHUwMDNkMTBcdTAwMjZzcGVlZG1hc3Rlcl9wbGF5YmFja19yYXRlXHUwMDNkMi4wXHUwMDI2c3BlZWRtYXN0ZXJfdG91Y2hfYWN0aXZhdGlvbl9tc1x1MDAzZDUwMFx1MDAyNnN0b3BfaGFuZGxpbmdfY2xpY2tfZm9yX25vbl9yZW5kZXJpbmdfb3ZlcmxheV9sYXlvdXRcdTAwM2R0cnVlXHUwMDI2c3RyZWFtaW5nX2RhdGFfZW1lcmdlbmN5X2l0YWdfYmxhY2tsaXN0XHUwMDNkW11cdTAwMjZzdWJzdGl0dXRlX2FkX2Nwbl9tYWNyb19pbl9zc2RhaVx1MDAzZHRydWVcdTAwMjZzdXBwcmVzc19lcnJvcl8yMDRfbG9nZ2luZ1x1MDAzZHRydWVcdTAwMjZ0cmltX2FkYXB0aXZlX2Zvcm1hdHNfc2lnbmF0dXJlX2NpcGhlcl9mb3Jfc2Ficl9jb250ZW50XHUwMDNkdHJ1ZVx1MDAyNnR2aHRtbDVfdW5wbHVnZ2VkX3ByZWxvYWRfY2FjaGVfc2l6ZVx1MDAzZDVcdTAwMjZ1c2VfY3VlX3JhbmdlX21hcmtlcl9wb3NpdGlvblx1MDAzZHRydWVcdTAwMjZ1c2VfZXZlbnRfdGltZV9tc19oZWFkZXJcdTAwM2R0cnVlXHUwMDI2dXNlX2V4dHJhX3JlYWRhaGVhZF9ub3JtYWxfbGF0ZW5jeV9mcmFtZV9sZXZlbF9zdHJlYW1pbmdfaW5fYmFja2VuZF9leHBlcmltZW50XHUwMDNkW11cdTAwMjZ1c2VfZmlmb19mb3JfbmV0d29ya2xlc3NcdTAwM2R0cnVlXHUwMDI2dXNlX2dlbmVyYXRlZF9tZWRpYV9rZXlzX2luX2ZhaXJwbGF5X3JlcXVlc3RzXHUwMDNkdHJ1ZVx1MDAyNnVzZV9pbmxpbmVkX3BsYXllcl9ycGNcdTAwM2R0cnVlXHUwMDI2dXNlX25ld19jb2RlY3Nfc3RyaW5nX2FwaVx1MDAzZHRydWVcdTAwMjZ1c2VfcGxheWFiaWxpdHlfcmVzdWx0X2Zvcl9jYW5fcGxheV9zdGF0dXNcdTAwM2R0cnVlXHUwMDI2dXNlX3JlcXVlc3RfdGltZV9tc19oZWFkZXJcdTAwM2R0cnVlXHUwMDI2dXNlX3J0YV9mb3JfcGxheWVyXHUwMDNkdHJ1ZVx1MDAyNnVzZV9zZXNzaW9uX2Jhc2VkX3NhbXBsaW5nXHUwMDNkdHJ1ZVx1MDAyNnVzZV90aHVtYm5haWxfb3ZlcmxheV90aW1lX3N0YXR1c19yZW5kZXJlcl9mb3JfbGl2ZV9iYWRnZVx1MDAzZHRydWVcdTAwMjZ2YXJpYWJsZV9idWZmZXJfdGltZW91dF9tc1x1MDAzZDBcdTAwMjZ2cDlfZHJtX2xpdmVcdTAwM2R0cnVlXHUwMDI2dnNzX2ZpbmFsX3Bpbmdfc2VuZF9hbmRfd3JpdGVcdTAwM2R0cnVlXHUwMDI2dnNzX3BsYXliYWNrX3VzZV9zZW5kX2FuZF93cml0ZVx1MDAzZHRydWVcdTAwMjZ2c3NfdXNlX3Bvc3RfcmVxdWVzdFx1MDAzZHRydWVcdTAwMjZ3ZWJfYXBpX3VybFx1MDAzZHRydWVcdTAwMjZ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZFx1MDAzZHRydWVcdTAwMjZ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZXhwb3J0X3RvX2dlbFx1MDAzZHRydWVcdTAwMjZ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfc2Nyb2xsX3Rocm90dGxlXHUwMDNkNTAwLjBcdTAwMjZ3ZWJfYnV0dG9uX3ZpZXdfbW9kZWxfbm9uX251bGxpc2hfZGF0YVx1MDAzZHRydWVcdTAwMjZ3ZWJfYnV0dG9uX3ZtX3JlZmFjdG9yX2Rpc2FibGVkXHUwMDNkdHJ1ZVx1MDAyNndlYl9jbGllbnRfdmVyc2lvbl9vdmVycmlkZVx1MDAzZFx1MDAyNndlYl9jb2xsZWN0X29mZmxpbmVfc3RhdGVcdTAwM2R0cnVlXHUwMDI2d2ViX2NzaV9hY3Rpb25fc2FtcGxpbmdfZW5hYmxlZFx1MDAzZHRydWVcdTAwMjZ3ZWJfZGVkdXBlX3ZlX2dyYWZ0aW5nXHUwMDNkdHJ1ZVx1MDAyNndlYl9kaXNhYmxlX2NhcHRpb25fb3BhY2l0eV9rZXlib2FyZF9zaG9ydGN1dHNcdTAwM2R0cnVlXHUwMDI2d2ViX2Rpc2FibGVfY2hpcF92aWV3X21vZGVsX211dGF0aW9uXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfYWJfcnNwX2NsXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfY2FwdGlvbl9sYW5ndWFnZV9wcmVmZXJlbmNlX3N0aWNraW5lc3NcdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV9jb3Vyc2VfaWNvbl91cGRhdGVcdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV9lbnRpdHlfdXBzZXJ0X29uX3VwZGF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX2Vycm9yXzIwNFx1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX2tleWJvYXJkX3Nob3J0Y3V0X2Zvcl90aW1lbHlfYWN0aW9uc1x1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX2xhenlfY3NzXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfc2hvcHBpbmdfdGltZWx5X3NoZWxmX2NsaWVudFx1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX3NtYWxsX3NwZWVkbWFzdGVyXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfdGltZWx5X2FjdGlvbnNcdTAwM2R0cnVlXHUwMDI2d2ViX2ZpeF9maW5lX3NjcnViYmluZ19mYWxzZV9wbGF5XHUwMDNkdHJ1ZVx1MDAyNndlYl9mb3JlZ3JvdW5kX2hlYXJ0YmVhdF9pbnRlcnZhbF9tc1x1MDAzZDI4MDAwXHUwMDI2d2ViX2Z1bGxzY3JlZW5fc2hvcnRzXHUwMDNkdHJ1ZVx1MDAyNndlYl9mdWxsc2NyZWVuX3Nob3J0c19tZW51X2l0ZW1cdTAwM2R0cnVlXHUwMDI2d2ViX2djZl9oYXNoZXNfaW5uZXJ0dWJlXHUwMDNkdHJ1ZVx1MDAyNndlYl9nZWxfZGVib3VuY2VfbXNcdTAwM2QxMDAwMFx1MDAyNndlYl9nZWxfdGltZW91dF9jYXBcdTAwM2R0cnVlXHUwMDI2d2ViX2hpZGVfbmV4dF9idXR0b25cdTAwM2R0cnVlXHUwMDI2d2ViX2hpZGVfd2F0Y2hfaW5mb19lbXB0eVx1MDAzZHRydWVcdTAwMjZ3ZWJfaGlkZV95b3VyX2RhdGFfb25fYXV0b21vdGl2ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfaW5jbHVkZV9jb3dfdHJhY2luZ1x1MDAzZHRydWVcdTAwMjZ3ZWJfbG9hZF9wcmVkaWN0aW9uX3RocmVzaG9sZFx1MDAzZDAuM1x1MDAyNndlYl9sb2dnaW5nX21heF9iYXRjaFx1MDAzZDEwMFx1MDAyNndlYl9tYXhfdHJhY2luZ19ldmVudHNcdTAwM2Q1MFx1MDAyNndlYl9tb25vbWVyX3dlYl9jb21wb25lbnRfd3JhcHBlcl9oYW5kbGVfZXJyb3JzXHUwMDNkdHJ1ZVx1MDAyNndlYl9uYXZpZ2F0aW9uX3ByZWRpY3Rpb25fdGhyZXNob2xkXHUwMDNkMC4xXHUwMDI2d2ViX25vbl9uYXZpZ2F0aW5nX2F0YWdcdTAwM2R0cnVlXHUwMDI2d2ViX29wX3NpZ25hbF90eXBlX2Jhbmxpc3RcdTAwM2RbXVx1MDAyNndlYl9wbGF5YmFja19hc3NvY2lhdGVkX3ZlXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfYXBpX2xvZ2dpbmdfZnJhY3Rpb25cdTAwM2QwLjAxXHUwMDI2d2ViX3BsYXllcl9iaWdfbW9kZV9zY3JlZW5fd2lkdGhfY3V0b2ZmXHUwMDNkNDAwMVx1MDAyNndlYl9wbGF5ZXJfZGVmYXVsdF9wZWVraW5nX3B4XHUwMDNkMzZcdTAwMjZ3ZWJfcGxheWVyX2Rpc2FibGVfZ3JpZF9vbl9vZmZsaW5lX3NsYXRlXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfZW5hYmxlX2ZlYXR1cmVkX3Byb2R1Y3RfYmFubmVyX2V4Y2x1c2l2ZXNfb25fZGVza3RvcFx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX2VuYWJsZV9mZWF0dXJlZF9wcm9kdWN0X2Jhbm5lcl9wcm9tb3Rpb25fdGV4dF9vbl9kZXNrdG9wXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfZnJvc3RlZF9nbGFzc19ibHVyX3JhZGl1c1x1MDAzZDE2XHUwMDI2d2ViX3BsYXllcl9mcm9zdGVkX2dsYXNzX2JsdXJfcmFkaXVzX2Zsb2F0XHUwMDNkMTYuMFx1MDAyNndlYl9wbGF5ZXJfaW5uZXJ0dWJlX3BsYXlsaXN0X3VwZGF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX2ludmlzaWJsZV9mdWxsc2NyZWVuX2J1dHRvblx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX2lwcF9jYW5hcnlfdHlwZV9mb3JfbG9nZ2luZ1x1MDAzZFx1MDAyNndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfbWluaXBsYXllcl9pbl9jb250ZXh0X21lbnVcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9tb3VzZV9pZGxlX3dhaXRfdGltZV9tc1x1MDAzZDMwMDBcdTAwMjZ3ZWJfcGxheWVyX211c2ljX3Zpc3VhbGl6ZXJfdHJlYXRtZW50XHUwMDNkZmFrZVx1MDAyNndlYl9wbGF5ZXJfb2ZmbGluZV9wbGF5bGlzdF9hdXRvX3JlZnJlc2hcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9wbGF5YWJsZV9zZXF1ZW5jZXNfcmVmYWN0b3JcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9xdWlja19oaWRlX3RpbWVvdXRfbXNcdTAwM2QyNTBcdTAwMjZ3ZWJfcGxheWVyX3NlZWtfY2hhcHRlcnNfYnlfc2hvcnRjdXRcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9zZWVrX292ZXJsYXlfYWRkaXRpb25hbF9hcnJvd190aHJlc2hvbGRcdTAwM2QyMDBcdTAwMjZ3ZWJfcGxheWVyX3NlZWtfb3ZlcmxheV9kdXJhdGlvbl9idW1wX3NjYWxlXHUwMDNkMC45XHUwMDI2d2ViX3BsYXllcl9zZWVrX292ZXJsYXlfbGluZ2VyX2R1cmF0aW9uXHUwMDNkMTAwMFx1MDAyNndlYl9wbGF5ZXJfc2VudGluZWxfaXNfdW5pcGxheWVyXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfc2hvd19tdXNpY19pbl90aGlzX3ZpZGVvX2dyYXBoaWNcdTAwM2R2aWRlb190aHVtYm5haWxcdTAwMjZ3ZWJfcGxheWVyX3NzX2RhaV9hZF9mZXRjaGluZ190aW1lb3V0X21zXHUwMDNkMTUwMDBcdTAwMjZ3ZWJfcGxheWVyX3RvdWNoX2lkbGVfd2FpdF90aW1lX21zXHUwMDNkNDAwMFx1MDAyNndlYl9wbGF5ZXJfdHJhbnNmZXJfdGltZW91dF90aHJlc2hvbGRfbXNcdTAwM2QxMDgwMDAwMFx1MDAyNndlYl9wbGF5ZXJfdXBkYXRlZF9lbnRyeXBvaW50XHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfdXNlX2NpbmVtYXRpY19sYWJlbF8yXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfdXNlX25ld19hcGlfZm9yX3F1YWxpdHlfcHVsbGJhY2tcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl91c2Vfc2NyZWVuX3dpZHRoX2Zvcl9iaWdfbW9kZVx1MDAzZHRydWVcdTAwMjZ3ZWJfcHJlZmV0Y2hfcHJlbG9hZF92aWRlb1x1MDAzZHRydWVcdTAwMjZ3ZWJfcHJvZ3Jlc3NfYmFyX2RyYWdnYWJsZVx1MDAzZHRydWVcdTAwMjZ3ZWJfcHJvcGFnYXRlX3Zpc2liaWxpdHlfdG9fYXBwbGljYXRpb25fc3RhdGVcdTAwM2R0cnVlXHUwMDI2d2ViX3JlbWl4X2FsbG93X3VwX3RvXzN4X3BsYXliYWNrX3JhdGVcdTAwM2R0cnVlXHUwMDI2d2ViX3JlbW92ZV9icm9rZW5fc3Vic2NyaWJlX2VuZHNjcmVlblx1MDAzZHRydWVcdTAwMjZ3ZWJfc2Vzc2lvbl9yZXBsYXlfbW91c2Vtb3ZlX2ludGVydmFsXHUwMDNkMFx1MDAyNndlYl9zZXNzaW9uX3JlcGxheV9zY3JvbGxfaW50ZXJ2YWxcdTAwM2QwXHUwMDI2d2ViX3Nlc3Npb25fcmVwbGF5X3NlbmRfYWZ0ZXJfdGltZW91dFx1MDAzZDBcdTAwMjZ3ZWJfc2V0dGluZ3NfbWVudV9zdXJmYWNlX2N1c3RvbV9wbGF5YmFja1x1MDAzZHRydWVcdTAwMjZ3ZWJfc2V0dGluZ3NfdXNlX2lucHV0X3NsaWRlclx1MDAzZHRydWVcdTAwMjZ3ZWJfc2hvcnRzX2F1ZGlvX3RyYWNrX3BpY2tlclx1MDAzZHRydWVcdTAwMjZ3ZWJfdHJhY2luZ19lbmFibGVkX3NwYW5zXHUwMDNkW2V2ZW50LCBjb21tYW5kXVx1MDAyNndlYl90cmFjaW5nX3Nlc3Npb25fcmVwbGF5XHUwMDNkMFx1MDAyNndlYl91bmlmaWVkX2ZldGNoXHUwMDNkdHJ1ZVx1MDAyNndlYl93YXRjaF9kaXNhYmxlX2FjY291bnRfbGV2ZWxfY2FwdGlvbnNfc2V0dGluZ3NcdTAwM2R0cnVlXHUwMDI2d2VicG9fZXhpdF9vbl9uZXRfZXJyXHUwMDNkdHJ1ZVx1MDAyNndpbF9pY29uX21heF9jb25jdXJyZW50X2ZldGNoZXNcdTAwM2Q5OTk5XHUwMDI2d2l6X2RpZmZfb3ZlcndyaXRhYmxlXHUwMDNkdHJ1ZVx1MDAyNndpel93cmFwcGVyX2NhbGxiYWNrX3Byb3BzX2ZpeFx1MDAzZHRydWVcdTAwMjZ3b2ZmbGVfZW5hYmxlX2Rvd25sb2FkX3N0YXR1c1x1MDAzZHRydWVcdTAwMjZ3cml0ZV9yZWxvYWRfcGxheWVyX3Jlc3BvbnNlX3Rva2VuX3RvX3VzdHJlYW1lcl9jb25maWdfZm9yX3ZvZFx1MDAzZHRydWVcdTAwMjZ3c19hdjFfbWF4X2hlaWdodF9mbG9vclx1MDAzZDBcdTAwMjZ3c19hdjFfbWF4X3dpZHRoX2Zsb29yXHUwMDNkMFx1MDAyNndzX3VzZV9jZW50cmFsaXplZF9ocWFfZmlsdGVyXHUwMDNkdHJ1ZVx1MDAyNnd1Z19uZXR3b3JraW5nX2d6aXBfcmVxdWVzdFx1MDAzZHRydWVcdTAwMjZ5dGNzaV9kZWJ1Z19tYXhfc2l6ZVx1MDAzZDEwMFx1MDAyNnl0aWRiX3JlbWFrZV9kYl9yZXRyaWVzXHUwMDNkMVx1MDAyNnl0aWRiX3Jlb3Blbl9kYl9yZXRyaWVzXHUwMDNkMFx1MDAyNnl0aWRiX3RyYW5zYWN0aW9uX2VuZGVkX2V2ZW50X3JhdGVfbGltaXRcdTAwM2QwLjAyIiwic3RhcnRNdXRlZCI6ZmFsc2UsIm1vYmlsZUlwaG9uZVN1cHBvcnRzSW5saW5lUGxheWJhY2siOnRydWUsImlzTW9iaWxlRGV2aWNlIjpmYWxzZSwiY3NwTm9uY2UiOiJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIiwiY2FuYXJ5U3RhdGUiOiJub25lIiwiZW5hYmxlQ3NpTG9nZ2luZyI6dHJ1ZSwibG9hZGVyVXJsIjoiaHR0cHM6Ly93d3cuYml0aWZpbmV4LmxpdmUvIiwiZGlzYWJsZUF1dG9uYXYiOmZhbHNlLCJpc0VtYmVkIjp0cnVlLCJkaXNhYmxlQ2FzdEFwaSI6ZmFsc2UsInNlcmlhbGl6ZWRFbWJlZENvbmZpZyI6Int9IiwiZGlzYWJsZU1keENhc3QiOmZhbHNlLCJkYXRhc3luY0lkIjoiVmExMzY4YTQ0fHwiLCJzdG9yZVVzZXJWb2x1bWUiOnRydWUsImRpc2FibGVQYWlkQ29udGVudE92ZXJsYXkiOnRydWUsImVuY3J5cHRlZEhvc3RGbGFncyI6IkFDbWJsQlZwOHppdWJxRjVUUm93UHBydnBOMS01SnlGeTJoMS1JTTRSYkMzNC1SREZNanh0c1Jpb3BMUTFzZ0hrNWRhY2R1bXl6bXpnZnNtUEhjbGRhX056S2lzWkdJaW5MSC1nUjc5M3EyQlBkOXlMdW40QlFWZ3N1MFotVVlwekEiLCJjYW5hcnlTdGFnZSI6IiIsInRydXN0ZWRKc1VybCI6eyJwcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWUiOiIvcy9wbGF5ZXIvN2E3OTY5YzIvcGxheWVyX2VtYmVkX2VzNi52ZmxzZXQvZW5fVVMvYmFzZS5qcyJ9LCJ0cnVzdGVkQ3NzVXJsIjp7InByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZSI6Ii9zL3BsYXllci83YTc5NjljMi93d3ctcGxheWVyLmNzcyJ9LCJob3VzZUJyYW5kVXNlclN0YXR1cyI6Im5vdF9wcmVzZW50IiwiZW1iZWRzRW5hYmxlRW1jM2RzIjp0cnVlLCJkaXNhYmxlT3JnYW5pY1VpIjp0cnVlLCJlbmFibGVTYWJyT25FbWJlZCI6ZmFsc2UsInNlcmlhbGl6ZWRDbGllbnRFeHBlcmltZW50RmxhZ3MiOiI0NTcxODE3NVx1MDAzZDAuMFx1MDAyNjQ1NzE4MTc2XHUwMDNkMC4wMVx1MDAyNjQ1NzI1NTM4XHUwMDNkMC4wXHUwMDI2NDU3MjU1MzlcdTAwM2QwLjBcdTAwMjY0NTcyNTU0MFx1MDAzZDAuMFx1MDAyNjQ1NzI1NTQxXHUwMDNkMC4wXHUwMDI2NDU3MjU1NDJcdTAwM2QwLjBcdTAwMjY0NTcyNTU0M1x1MDAzZDAuMFx1MDAyNjQ1NzI4NTUzXHUwMDNkdHJ1ZVx1MDAyNjQ1NzI4NTcyXHUwMDNkdHJ1ZVx1MDAyNjQ1NzI5MjE1XHUwMDNkdHJ1ZVx1MDAyNjQ1NzMyNzA0XHUwMDNkdHJ1ZVx1MDAyNjQ1NzMyNzkxXHUwMDNkdHJ1ZVx1MDAyNjQ1NzM1NDI4XHUwMDNkNDAwMC4wXHUwMDI2NDU3Mzc0ODhcdTAwM2QwLjBcdTAwMjY0NTczNzQ4OVx1MDAzZDAuMFx1MDAyNjQ1NzM5MDIzXHUwMDNkMC4wXHUwMDI2NDU3NDEzMzlcdTAwM2QwLjBcdTAwMjY0NTc0MTc3M1x1MDAzZDAuMFx1MDAyNjQ1NzQzMjI4XHUwMDNkMC4wXHUwMDI2NDU3NDU2MTBcdTAwM2R0cnVlXHUwMDI2NDU3NDY5NjZcdTAwM2QwLjBcdTAwMjY0NTc0Njk2N1x1MDAzZDAuMFx1MDAyNjQ1NzQ3MDUzXHUwMDNkMC4wXHUwMDI2NDU3NTA5NDdcdTAwM2QxMDI0MFx1MDAyNjQ1NzU2MjAxXHUwMDNkdHJ1ZVx1MDAyNjQ1NzU2ODcyXHUwMDNkMC4wXHUwMDI2NDU3NTc0MjZcdTAwM2QwLjBcdTAwMjY0NTc1NzQyN1x1MDAzZDAuMFx1MDAyNjQ1NzU3NzUwXHUwMDNkMC4wXHUwMDI2NDU3NTc5NTdcdTAwM2QwLjBcdTAwMjY0NTc1ODQ2N1x1MDAzZDAuMFx1MDAyNjQ1NzYwMDE4XHUwMDNkdHJ1ZVx1MDAyNjQ1NzYxNzYwXHUwMDNkMjAwXHUwMDI2NDU3NjI4MzhcdTAwM2QwXHUwMDI2NDU3NjQyMTdcdTAwM2QwLjBcdTAwMjY0NTc2NDI1Mlx1MDAzZDAuMFx1MDAyNjQ1NzY0NTIzXHUwMDNkMC4wXHUwMDI2NDU3NjQ1MjRcdTAwM2QwLjBcdTAwMjY0NTc2NDU5M1x1MDAzZDAuMFx1MDAyNjQ1NzY1MDc3XHUwMDNkdHJ1ZVx1MDAyNjQ1NzY1NTY4XHUwMDNkMC4wXHUwMDI2NDU3NjU2MDJcdTAwM2QwLjBcdTAwMjY0NTc2NTY4MFx1MDAzZHRydWVcdTAwMjY0NTc2NjUxMVx1MDAzZHRydWVcdTAwMjY0NTc2Nzc2M1x1MDAzZDAuMFx1MDAyNjQ1NzY3OTQzXHUwMDNkMC4wXHUwMDI2NDU3NjgzNDBcdTAwM2QwLjBcdTAwMjY0NTc2ODQzMFx1MDAzZDAuMFx1MDAyNjQ1NzY5MTE5XHUwMDNkdHJ1ZVx1MDAyNjQ1NzY5MjE0XHUwMDNkMC4wXHUwMDI2NDU3NzAwMDFcdTAwM2QwLjBcdTAwMjY0NTc3MDAwMlx1MDAzZDAuMFx1MDAyNjQ1NzcwMTM1XHUwMDNkdHJ1ZVx1MDAyNjQ1NzcxMjg4XHUwMDNkdHJ1ZVx1MDAyNjQ1NzcxODkwXHUwMDNkMC4wXHUwMDI2NDU3NzM2MDNcdTAwM2QwLjBcdTAwMjY0NTc3MzYwNFx1MDAzZDAuMFx1MDAyNjQ1Nzc1NzU3XHUwMDNkdHJ1ZVx1MDAyNjQ1Nzc1NzkxXHUwMDNkMC4wXHUwMDI2NDU3NzU3OTJcdTAwM2QwLjBcdTAwMjY0NTc3NjE5MFx1MDAzZDAuMFx1MDAyNjQ1Nzc4NjYzXHUwMDNkMC4wXHUwMDI2NDU3Nzg2NzFcdTAwM2QwLjBcdTAwMjY0NTc4Mzg3NVx1MDAzZHRydWVcdTAwMjY0NTc4NDQzOVx1MDAzZDBcdTAwMjY0NTc4NjQ0M1x1MDAzZDAuMFx1MDAyNjQ1Nzg3OTQ4XHUwMDNkdHJ1ZVx1MDAyNjQ1Nzg5NDc0XHUwMDNkdHJ1ZVx1MDAyNjQ1NzkxMTE3XHUwMDNkMC4wXHUwMDI2NDU3OTExMThcdTAwM2QwLjBcdTAwMjY0NTc5MTExOVx1MDAzZDAuMFx1MDAyNjQ1NzkzNzEwXHUwMDNkMC4wXHUwMDI2NDU3OTQ0NDFcdTAwM2QwLjBcdTAwMjY0NTc5NDg2N1x1MDAzZHRydWVcdTAwMjY0NTc5NDg2OFx1MDAzZHRydWVcdTAwMjY0NTc5NzcyMVx1MDAzZHRydWVcdTAwMjY0NTc5Nzk2M1x1MDAzZDAuMFx1MDAyNjQ1ODAyMTIzXHUwMDNkMC4wXHUwMDI2NDU4MDM3NTRcdTAwM2QwLjBcdTAwMjY0NTgwNDc3MVx1MDAzZDAuMFx1MDAyNjQ1ODA1Njk1XHUwMDNkMC4wXHUwMDI2NDU4MDY1NTVcdTAwM2QyXHUwMDI2NDU4MDc0MzJcdTAwM2QwLjBcdTAwMjY0NTgwNzQ4NFx1MDAzZFx1MDAyNjQ1ODA3NzcxXHUwMDNkMC4wXHUwMDI2NDU4MDc3NzJcdTAwM2QwLjBcdTAwMjY0NTgwNzc3M1x1MDAzZDAuMFx1MDAyNjQ1ODA4NzYyXHUwMDNkMFx1MDAyNjQ1ODE0NDgwXHUwMDNkdHJ1ZVx1MDAyNjQ1ODE1MDExXHUwMDNkMC4wXHUwMDI2NDU4MTU2MzBcdTAwM2QwXHUwMDI2NDU4MTY4ODhcdTAwM2QwLjBcdTAwMjY0NTgxODEyOFx1MDAzZDAuMCJ9fSwiWFNSRl9GSUVMRF9OQU1FIjoic2Vzc2lvbl90b2tlbiIsIlhTUkZfVE9LRU4iOiJRVU00Wm05clUxaGFiMXB0WVhnNFNWOWFPRTgyWW5OdGFVcHZPWHhCUjNKaVMyRnVTVXBWTWpsaFRtcHhTSEJLZGtSNVdtTkZjVWg1VUdOSGRVeHFlRlpNVW1Fd1JtTmZSR3R6UzNSWmRua3pWSEIzVDFCaVkyeE5RVk5EZEU5MFVDMVpRMUZZTVZjM1VGYzJkRzh0YWtKMlYxQlRjVmR1T1daM1NsbzVXVWtcdTAwM2QiLCJTRVJWRVJfVkVSU0lPTiI6InByb2QiLCJEQVRBU1lOQ19JRCI6IlZhMTM2OGE0NHx8IiwiU0VSSUFMSVpFRF9DTElFTlRfQ09ORklHX0RBVEEiOiJDUGE5bTlNR0VQYXJzQVVRdU9UT0hCQ0hyTTRjRUstR3p4d1F2WXF3QlJDRGg3Z2lFTUdQMEJ3UWllVFJIQkRldk00Y0VMMlpzQVVReXZ1QUV4Q0c0WUFURUozUXNBVVFpX2ZQSEJDVzc5RWNFUGpFZ0JNUXBLblJIQkN1MXM4Y0VPRHEwUndReF95QUV4RDU4dEVjRUw2RTBSd1FpYkRPSEJEcC1ORWNFSXFIdUNJUV9MTE9IQkNmejRBVEVJNlEwUndRdWZEUkhCREo5b0FURUptTnNRVVE0TGZSSEJEYTk4NGNFTDIycmdVUXZLVFFIQkNkaHJnaUVPX2UwUndROGJUUUhCQ0J6YzRjRU9PSHVDSVE5dmZSSEJDMi1JQVRFSWlRMFJ3UXpOLXVCUkQwNmRFY0VKbnowUndxYUVOQlRWTlRVbFpETFZweExVUk5aVlZGY0ZWRGJrRTNOVVpZUzJ0Q2RVRlhjVTVWVUhsQlRVMHpkek5qUW5WUlJ6Qk1ibkJEZWt0bmNrRlJSR3RMTkVRdGVXRXlOVUZpYTJoU1psRjZRV0pGYTJkWVRGQmpWVzR5WkZWR00wTjZiVkoxTkhWSVVXTTlNQUElM0QiLCJST09UX1ZFX1RZUEUiOjE2NjIzLCJDTElFTlRfUFJPVE9DT0wiOiJoMiIsIkNMSUVOVF9UUkFOU1BPUlQiOiJ0Y3AiLCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iOiIxLjIwMjYwNzIxLjA4LjAwIiwiVElNRV9DUkVBVEVEX01TIjoxNzg1MTI2NjQ2MjU4LCJWQUxJRF9TRVNTSU9OX1RFTVBEQVRBX0RPTUFJTlMiOlsieW91dHUuYmUiLCJ5b3V0dWJlLmNvbSIsInd3dy55b3V0dWJlLmNvbSIsIndlYi1ncmVlbi1xYS55b3V0dWJlLmNvbSIsIndlYi1yZWxlYXNlLXFhLnlvdXR1YmUuY29tIiwid2ViLWludGVncmF0aW9uLXFhLnlvdXR1YmUuY29tIiwibS55b3V0dWJlLmNvbSIsIm13ZWItZ3JlZW4tcWEueW91dHViZS5jb20iLCJtd2ViLXJlbGVhc2UtcWEueW91dHViZS5jb20iLCJtd2ViLWludGVncmF0aW9uLXFhLnlvdXR1YmUuY29tIiwic3R1ZGlvLnlvdXR1YmUuY29tIiwic3R1ZGlvLWdyZWVuLXFhLnlvdXR1YmUuY29tIiwic3R1ZGlvLWludGVncmF0aW9uLXFhLnlvdXR1YmUuY29tIl0sIkxPVFRJRV9VUkwiOnsicHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlVHJ1c3RlZFJlc291cmNlVXJsV3JhcHBlZFZhbHVlIjoiL3MvZW1iZWRzLzMyZDJhYzgzL2xvdHRpZS1saWdodC52ZmxzZXQvbG90dGllLWxpZ2h0LmpzIn0sIklERU5USVRZX01FTUVOVE8iOnsidmlzaXRvcl9kYXRhIjoiQ2dzMVlVNXBjblJ1V0U5dVRTajJ2WnZUQmpJb0NnSk9UeElpRWg0U0hBc01EZzhRRVJJVEZCVVdGeGdaR2hzY0hSNGZJQ0VpSXlRbEppY2dGMkxmQWdyY0FqSXdMbGxVUFdGeU5HNTFUVXBLWVd0WVdXWmhZWFZ0VjJ0RVpVdFhla0ZuV0VKM2FqSnBiWEpSVjFCdWRrVkJZMmt6T1Y4MFdEaFhNa2RDWW5kcGEwTlVVM0JSYVdsWkxUQlZTMmRSWWtKbGFuUXlSVFIxVVVRNVVIUXRjVGg1UWt0aVZrNWhZMkpvTUhSQ1ZGcFNZekpqTTFVMlNqWkRUVVY0TkVaS2R6SnJTa2xHTTE5M1MxTnZjRVpWYzFSeWNrSllUVEJuT0dvM2VpMTFXQzF5Tlhkc1FtMWhRV3QzTlRCalNHYzFkV1JUUW5ndFduTjBNemhZWVd0UVpXRlhORmRCVFhaNVJHTTJSRGg0VnpnNWRuVkZkbDlNVnpGTmNrdFpVVk5pTjFOVVUxaDZabEphTnpKNE5VUXlXakJKZUVFNVkzQk5jMjlCZFVwZlRWWk9ZelpxVUZaUlkybGtZbFJKVmtrNVlqRTFUbVZQVUVoWFdDMXZjVkpIUzI5bGJWRnJiemRSUWtoa1NuQnZSV2xRY1cxek5VYzJVa2gyVURsQlJrTjZNbWhZYlhwd2JUUTVhM2syVEdsc1RGcEhhMWhtTUVsVVlVZFBVRGxVVVElM0QlM0QifSwiTVdFQl9TVVBQT1JUU19ET1VCTEVfVEFQX1RPX1NFRUsiOnRydWUsIlBMQVlFUl9WQVJTIjp7ImVtYmVkZGVkX3BsYXllcl9yZXNwb25zZSI6IntcInJlc3BvbnNlQ29udGV4dFwiOntcInNlcnZpY2VUcmFja2luZ1BhcmFtc1wiOlt7XCJzZXJ2aWNlXCI6XCJDU0lcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImNcIixcInZhbHVlXCI6XCJXRUJfRU1CRURERURfUExBWUVSXCJ9LHtcImtleVwiOlwiY3ZlclwiLFwidmFsdWVcIjpcIjIuMjAyNjA3MjQuMDEuMDBcIn0se1wia2V5XCI6XCJ5dF9saVwiLFwidmFsdWVcIjpcIjBcIn0se1wia2V5XCI6XCJHZXRFbWJlZGRlZFBsYXllcl9yaWRcIixcInZhbHVlXCI6XCIweDg2NjcwMmQ5ZmZlOWZhYTBcIn1dfSx7XCJzZXJ2aWNlXCI6XCJHRkVFREJBQ0tcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImxvZ2dlZF9pblwiLFwidmFsdWVcIjpcIjBcIn1dfSx7XCJzZXJ2aWNlXCI6XCJHVUlERURfSEVMUFwiLFwicGFyYW1zXCI6W3tcImtleVwiOlwibG9nZ2VkX2luXCIsXCJ2YWx1ZVwiOlwiMFwifV19LHtcInNlcnZpY2VcIjpcIkVDQVRDSEVSXCIsXCJwYXJhbXNcIjpbe1wia2V5XCI6XCJjbGllbnQudmVyc2lvblwiLFwidmFsdWVcIjpcIjIuMjAyNjA3MjRcIn0se1wia2V5XCI6XCJjbGllbnQubmFtZVwiLFwidmFsdWVcIjpcIldFQl9FTUJFRERFRF9QTEFZRVJcIn1dfV0sXCJyZXNwb25zZUlkXCI6XCJJaE1JaWJ1RV9ZTHlsUU1WYjViMEJ4MHhoRFVaXCIsXCJ3ZWJSZXNwb25zZUNvbnRleHRFeHRlbnNpb25EYXRhXCI6e1wiaGFzRGVjb3JhdGVkXCI6dHJ1ZX19LFwiZW1iZWRQcmV2aWV3XCI6e1widGh1bWJuYWlsUHJldmlld1JlbmRlcmVyXCI6e1widGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIldoYXQgaXMgQml0Y29pbiBNaW5pbmc/XCJ9XX0sXCJkZWZhdWx0VGh1bWJuYWlsXCI6e1widGh1bWJuYWlsc1wiOlt7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RWtDSGdRV3ZLcmlxa0RHdkFCQWZnQl9nbUFBdEFGaWdJTUNBQVFBUmhsSUdVb1pUQVBcXHUwMDI2cnNcdTAwM2RBT240Q0xCRmtyZHBRTkZ6M1JuRXIwcHE5cTh3cWVpSmh3XCIsXCJ3aWR0aFwiOjEyMCxcImhlaWdodFwiOjkwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMUNLZ0JFRjVJVmZLcmlxa0RLQWdCRlFBQWlFSVlBWEFCd0FFRzhBRUItQUgtQ1lBQzBBV0tBZ3dJQUJBQkdHVWdaU2hsTUE4XHUwMDNkXFx1MDAyNnJzXHUwMDNkQU9uNENMRElFWk9ka2Z3NkJic19OT2VGZUgxVjF6QnR4d1wiLFwid2lkdGhcIjoxNjgsXCJoZWlnaHRcIjo5NH0se1widXJsXCI6XCJodHRwczovL2kueXRpbWcuY29tL3ZpL0dtT3ppaDZJMXpzL2hxZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RTFDTVFCRUc1SVZmS3JpcWtES0FnQkZRQUFpRUlZQVhBQndBRUc4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnWlNobE1BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEJ1YTRUNzdtd0JOdFRjS1VESU1DclNBQzVGeWdcIixcIndpZHRoXCI6MTk2LFwiaGVpZ2h0XCI6MTEwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMkNQWUJFSW9CU0ZYeXE0cXBBeWdJQVJVQUFJaENHQUZ3QWNBQkJ2QUJBZmdCX2dtQUF0QUZpZ0lNQ0FBUUFSaGxJR1VvWlRBUFxcdTAwMjZyc1x1MDAzZEFPbjRDTEFVLVZLdG5GeXVUSjZfUHBqOUtoUUl2QnNEWkFcIixcIndpZHRoXCI6MjQ2LFwiaGVpZ2h0XCI6MTM4fSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvbXFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNNQUNFTFFCOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnWlNobE1BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEFfa2NKWGtPM2pmZWQ1Sy16c0g4aFBPVmZZQ1FcIixcIndpZHRoXCI6MzIwLFwiaGVpZ2h0XCI6MTgwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMkNOQUNFTHdCU0ZYeXE0cXBBeWdJQVJVQUFJaENHQUZ3QWNBQkJ2QUJBZmdCX2dtQUF0QUZpZ0lNQ0FBUUFSaGxJR1VvWlRBUFxcdTAwMjZyc1x1MDAzZEFPbjRDTEMtanMtTng3RDFxdGtkNGRUQjI3OFg5MTNkc0FcIixcIndpZHRoXCI6MzM2LFwiaGVpZ2h0XCI6MTg4fSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNPQURFT2dDOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnWlNobE1BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEQwWmNJaGtEMzhXMnhCT2tvYVlCSFlaRkVnVEFcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6MzYwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvc2RkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNJQUZFT0FEOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnWlNobE1BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEJWOWdPOER0Z2lkbDB6VFQxenA0WW9CTHVwYndcIixcIndpZHRoXCI6NjQwLFwiaGVpZ2h0XCI6NDgwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvR21PemloNkkxenMvbWF4cmVzZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RW1DSUFLRU5BRjhxdUtxUU1hOEFFQi1BSC1DWUFDMEFXS0Fnd0lBQkFCR0dVZ1pTaGxNQThcdTAwM2RcXHUwMDI2cnNcdTAwM2RBT240Q0xDMzhOQ1lUT1c0NzFjX1RudThrMFNlZzRSQW9nXCIsXCJ3aWR0aFwiOjE5MjAsXCJoZWlnaHRcIjoxMDgwfV19LFwicGxheUJ1dHRvblwiOntcImJ1dHRvblJlbmRlcmVyXCI6e1wic3R5bGVcIjpcIlNUWUxFX0RFRkFVTFRcIixcInNpemVcIjpcIlNJWkVfREVGQVVMVFwiLFwiaXNEaXNhYmxlZFwiOmZhbHNlLFwibmF2aWdhdGlvbkVuZHBvaW50XCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FjUThGc2lFd2lKdTRUOWd2S1ZBeFZ2bHZRSEhUR0VOUm5LQVFUYTYzUi1cIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiL3dhdGNoP3ZcdTAwM2RHbU96aWg2STF6c1xcdTAwMjZwcFx1MDAzZDBnY0pDWG9BUlBoZF9mWGtcIixcIndlYlBhZ2VUeXBlXCI6XCJXRUJfUEFHRV9UWVBFX1dBVENIXCIsXCJyb290VmVcIjozODMyfX0sXCJ3YXRjaEVuZHBvaW50XCI6e1widmlkZW9JZFwiOlwiR21PemloNkkxenNcIixcInBsYXllclBhcmFtc1wiOlwiMGdjSkNYb0FSUGhkX2ZYa1wifX0sXCJhY2Nlc3NpYmlsaXR5XCI6e1wibGFiZWxcIjpcIlBsYXkgV2hhdCBpcyBCaXRjb2luIE1pbmluZz9cIn0sXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FjUThGc2lFd2lKdTRUOWd2S1ZBeFZ2bHZRSEhUR0VOUmtcdTAwM2RcIn19LFwidmlkZW9EZXRhaWxzXCI6e1wiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXJcIjp7XCJjaGFubmVsVGh1bWJuYWlsXCI6e1widGh1bWJuYWlsc1wiOlt7XCJ1cmxcIjpcImh0dHBzOi8veXQzLmdncGh0LmNvbS95dGMvQUlkcm9fbUE1Y0Jpd0VVZTlsTjV4Um0weHFSLW1oYmtRbk52OG9icWlDblZFcGI0aXdcdTAwM2RzNjgtYy1rLWMweDAwZmZmZmZmLW5vLXJqXCIsXCJ3aWR0aFwiOjY4LFwiaGVpZ2h0XCI6Njh9XX0sXCJjb2xsYXBzZWRSZW5kZXJlclwiOntcImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc0NvbGxhcHNlZFJlbmRlcmVyXCI6e1widGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIldoYXQgaXMgQml0Y29pbiBNaW5pbmc/XCIsXCJuYXZpZ2F0aW9uRW5kcG9pbnRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQVlRNDZJQ0loTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVp5Z0VFMnV0MGZnXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3ZcdTAwM2RHbU96aWg2STF6c1wiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfVU5LTk9XTlwiLFwicm9vdFZlXCI6ODM3Njl9fSxcInVybEVuZHBvaW50XCI6e1widXJsXCI6XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92XHUwMDNkR21PemloNkkxenNcIixcInRhcmdldFwiOlwiVEFSR0VUX05FV19XSU5ET1dcIn19fV19LFwic3VidGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIjguMk0gdmlld3Mg4oCiIDkuNUsgY29tbWVudHNcIn1dfSxcInRyYWNraW5nUGFyYW1zXCI6XCJDQVlRNDZJQ0loTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVpcIn19LFwiZXhwYW5kZWRSZW5kZXJlclwiOntcImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc0V4cGFuZGVkUmVuZGVyZXJcIjp7XCJ0aXRsZVwiOntcInJ1bnNcIjpbe1widGV4dFwiOlwiQml0Y29pbk1pbmluZ0NvbVwifV19LFwic3VidGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIjE0LjVLIHN1YnNjcmliZXJzXCJ9XX0sXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FVUTVLSUNJaE1JaWJ1RV9ZTHlsUU1WYjViMEJ4MHhoRFVaXCJ9fSxcImNoYW5uZWxUaHVtYm5haWxFbmRwb2ludFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBQVFydTRCSWhNSWlidUVfWUx5bFFNVmI1YjBCeDB4aERVWnlnRUUydXQwZmdcdTAwM2RcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiL2NoYW5uZWwvVUN4RDJfRzgzaG5ncWRCbmtFOENtV2x3XCIsXCJ3ZWJQYWdlVHlwZVwiOlwiV0VCX1BBR0VfVFlQRV9VTktOT1dOXCIsXCJyb290VmVcIjo4Mzc2OX19LFwidXJsRW5kcG9pbnRcIjp7XCJ1cmxcIjpcIi9jaGFubmVsL1VDeEQyX0c4M2huZ3FkQm5rRThDbVdsd1wiLFwidGFyZ2V0XCI6XCJUQVJHRVRfTkVXX1dJTkRPV1wifX19fSxcInZpZGVvRHVyYXRpb25TZWNvbmRzXCI6XCIxMTZcIixcIndlYlBsYXllckFjdGlvbnNQb3J0aW5nXCI6e1wiZ2V0U2hhcmVQYW5lbENvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUFRcnU0QkloTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVp5Z0VFMnV0MGZnXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJhcGlVcmxcIjpcIi95b3V0dWJlaS92MS9zaGFyZS9nZXRfd2ViX3BsYXllcl9zaGFyZV9wYW5lbFwifX0sXCJ3ZWJQbGF5ZXJTaGFyZUVudGl0eVNlcnZpY2VFbmRwb2ludFwiOntcInNlcmlhbGl6ZWRTaGFyZUVudGl0eVwiOlwiQ2d0SGJVOTZhV2cyU1RGNmN3JTNEJTNEXCJ9fSxcInN1YnNjcmliZUNvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUFRcnU0QkloTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVp5Z0VFMnV0MGZnXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJzZW5kUG9zdFwiOnRydWUsXCJhcGlVcmxcIjpcIi95b3V0dWJlaS92MS9zdWJzY3JpcHRpb24vc3Vic2NyaWJlXCJ9fSxcInN1YnNjcmliZUVuZHBvaW50XCI6e1wiY2hhbm5lbElkc1wiOltcIlVDeEQyX0c4M2huZ3FkQm5rRThDbVdsd1wiXSxcInBhcmFtc1wiOlwiRWdJSUJ4Z0FcIn19LFwidW5zdWJzY3JpYmVDb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JaWJ1RV9ZTHlsUU1WYjViMEJ4MHhoRFVaeWdFRTJ1dDBmZ1x1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wic2VuZFBvc3RcIjp0cnVlLFwiYXBpVXJsXCI6XCIveW91dHViZWkvdjEvc3Vic2NyaXB0aW9uL3Vuc3Vic2NyaWJlXCJ9fSxcInVuc3Vic2NyaWJlRW5kcG9pbnRcIjp7XCJjaGFubmVsSWRzXCI6W1wiVUN4RDJfRzgzaG5ncWRCbmtFOENtV2x3XCJdLFwicGFyYW1zXCI6XCJDZ0lJQnhnQVwifX0sXCJhZGRUb1dhdGNoTGF0ZXJDb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JaWJ1RV9ZTHlsUU1WYjViMEJ4MHhoRFVaeWdFRTJ1dDBmZ1x1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wiYXBpVXJsXCI6XCIveW91dHViZWkvdjEvYnJvd3NlL2VkaXRfcGxheWxpc3RcIn19LFwicGxheWxpc3RFZGl0RW5kcG9pbnRcIjp7XCJwbGF5bGlzdElkXCI6XCJXTFwiLFwiYWN0aW9uc1wiOlt7XCJhZGRlZFZpZGVvSWRcIjpcIkdtT3ppaDZJMXpzXCIsXCJhY3Rpb25cIjpcIkFDVElPTl9BRERfVklERU9cIn1dfX0sXCJyZW1vdmVGcm9tV2F0Y2hMYXRlckNvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUFRcnU0QkloTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVp5Z0VFMnV0MGZnXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJhcGlVcmxcIjpcIi95b3V0dWJlaS92MS9icm93c2UvZWRpdF9wbGF5bGlzdFwifX0sXCJwbGF5bGlzdEVkaXRFbmRwb2ludFwiOntcInBsYXlsaXN0SWRcIjpcIldMXCIsXCJhY3Rpb25zXCI6W3tcImFjdGlvblwiOlwiQUNUSU9OX1JFTU9WRV9WSURFT19CWV9WSURFT19JRFwiLFwicmVtb3ZlZFZpZGVvSWRcIjpcIkdtT3ppaDZJMXpzXCJ9XX19fSxcImFjdGlvbkJhckJ1dHRvbnNcIjpbe1wiYnV0dG9uUmVuZGVyZXJcIjp7XCJzdHlsZVwiOlwiU1RZTEVfT1BBQ0lUWVwiLFwic2l6ZVwiOlwiU0laRV9ERUZBVUxUXCIsXCJpc0Rpc2FibGVkXCI6ZmFsc2UsXCJpY29uXCI6e1wiaWNvblR5cGVcIjpcIlNIQVJFX0FSUk9XXCJ9LFwibmF2aWdhdGlvbkVuZHBvaW50XCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FRUS1OOEJHQUFpRXdpSnU0VDlndktWQXhWdmx2UUhIVEdFTlJuS0FRVGE2M1ItXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJpZ25vcmVOYXZpZ2F0aW9uXCI6dHJ1ZX19LFwic2hhcmVFbnRpdHlFbmRwb2ludFwiOntcInNlcmlhbGl6ZWRTaGFyZUVudGl0eVwiOlwiQ2d0SGJVOTZhV2cyU1RGNmN3JTNEJTNEXCIsXCJzaGFyZVBhbmVsVHlwZVwiOlwiU0hBUkVfUEFORUxfVFlQRV9VTklGSUVEX1NIQVJFX1BBTkVMXCJ9fSxcInRyYWNraW5nUGFyYW1zXCI6XCJDQVFRLU44QkdBQWlFd2lKdTRUOWd2S1ZBeFZ2bHZRSEhUR0VOUmtcdTAwM2RcIixcImFjY2Vzc2liaWxpdHlEYXRhXCI6e1wiYWNjZXNzaWJpbGl0eURhdGFcIjp7XCJsYWJlbFwiOlwiU2hhcmVcIn19fX0se1wiYnV0dG9uUmVuZGVyZXJcIjp7XCJzdHlsZVwiOlwiU1RZTEVfT1BBQ0lUWVwiLFwic2l6ZVwiOlwiU0laRV9ERUZBVUxUXCIsXCJpc0Rpc2FibGVkXCI6ZmFsc2UsXCJzZXJ2aWNlRW5kcG9pbnRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQU1RLWQ4QkdBRWlFd2lKdTRUOWd2S1ZBeFZ2bHZRSEhUR0VOUm5LQVFUYTYzUi1cIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcImFwaVVybFwiOlwiL3lvdXR1YmVpL3YxL2Jyb3dzZS9lZGl0X3BsYXlsaXN0XCJ9fSxcInBsYXlsaXN0RWRpdEVuZHBvaW50XCI6e1wicGxheWxpc3RJZFwiOlwiV0xcIixcImFjdGlvbnNcIjpbe1wiYWRkZWRWaWRlb0lkXCI6XCJHbU96aWg2STF6c1wiLFwiYWN0aW9uXCI6XCJBQ1RJT05fQUREX1ZJREVPXCJ9XX19LFwiaWNvblwiOntcImljb25UeXBlXCI6XCJBRERfVE9fV0FUQ0hfTEFURVJcIn0sXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FNUS1kOEJHQUVpRXdpSnU0VDlndktWQXhWdmx2UUhIVEdFTlJrXHUwMDNkXCIsXCJhY2Nlc3NpYmlsaXR5RGF0YVwiOntcImFjY2Vzc2liaWxpdHlEYXRhXCI6e1wibGFiZWxcIjpcIldhdGNoIGxhdGVyXCJ9fSxcImNvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQU1RLWQ4QkdBRWlFd2lKdTRUOWd2S1ZBeFZ2bHZRSEhUR0VOUm5LQVFUYTYzUi1cIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1NlcnZpY2VMb2dpbj9zZXJ2aWNlXHUwMDNkeW91dHViZVxcdTAwMjZ1aWxlbFx1MDAzZDNcXHUwMDI2cGFzc2l2ZVx1MDAzZHRydWVcXHUwMDI2Y29udGludWVcdTAwM2RodHRwcyUzQSUyRiUyRnd3dy55b3V0dWJlLmNvbSUyRnNpZ25pbiUzRmFjdGlvbl9oYW5kbGVfc2lnbmluJTNEdHJ1ZSUyNmhsJTNEZW4lMjZuZXh0JTNEJTI1MkZwb3N0X2xvZ2luXFx1MDAyNmhsXHUwMDNkZW5cIixcIndlYlBhZ2VUeXBlXCI6XCJXRUJfUEFHRV9UWVBFX1VOS05PV05cIixcInJvb3RWZVwiOjgzNzY5fX0sXCJzaWduSW5FbmRwb2ludFwiOntcIm5leHRFbmRwb2ludFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBTVEtZDhCR0FFaUV3aUp1NFQ5Z3ZLVkF4VnZsdlFISFRHRU5SbktBUVRhNjNSLVwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1widXJsXCI6XCIvcG9zdF9sb2dpblwiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfVU5LTk9XTlwiLFwicm9vdFZlXCI6ODM3Njl9fSxcInVybEVuZHBvaW50XCI6e1widXJsXCI6XCIvcG9zdF9sb2dpblwifX19fX19XSxcInF1aWNrQWN0aW9uc0JhclwiOntcInF1aWNrQWN0aW9uc1ZpZXdNb2RlbFwiOntcIndhdGNoT25Zb3V0dWJlQnV0dG9uXCI6e1wid2F0Y2hPbllvdXR1YmVCdXR0b25WaWV3TW9kZWxcIjp7XCJ3YXRjaE9uWXRMYWJlbEJ1dHRvblwiOntcImJ1dHRvblZpZXdNb2RlbFwiOntcIm9uVGFwXCI6e1wiaW5uZXJ0dWJlQ29tbWFuZFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBSVF5dk1GSWhNSWlidUVfWUx5bFFNVmI1YjBCeDB4aERVWnlnRUUydXQwZmdcdTAwM2RcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dlx1MDAzZEdtT3ppaDZJMXpzXCIsXCJ3ZWJQYWdlVHlwZVwiOlwiV0VCX1BBR0VfVFlQRV9VTktOT1dOXCIsXCJyb290VmVcIjo4Mzc2OX19LFwidXJsRW5kcG9pbnRcIjp7XCJ1cmxcIjpcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3ZcdTAwM2RHbU96aWg2STF6c1wiLFwidGFyZ2V0XCI6XCJUQVJHRVRfTkVXX1dJTkRPV1wifX19LFwiYWNjZXNzaWJpbGl0eVRleHRcIjpcIldhdGNoIG9uIFlvdVR1YmVcIixcInN0eWxlXCI6XCJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9PVkVSTEFZX0RBUktcIixcInRyYWNraW5nUGFyYW1zXCI6XCJDQUlReXZNRkloTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVpcIixcInR5cGVcIjpcIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfVEVYVFwiLFwiYnV0dG9uU2l6ZVwiOlwiQlVUVE9OX1ZJRVdfTU9ERUxfU0laRV9MQVJHRVwiLFwidGl0bGVGb3JtYXR0ZWRcIjp7XCJjb250ZW50XCI6XCJXYXRjaCBvblwiLFwic3R5bGVSdW5zXCI6W3tcIndlaWdodExhYmVsXCI6XCJGT05UX1dFSUdIVF9USElOXCJ9XSxcImF0dGFjaG1lbnRSdW5zXCI6W3tcInN0YXJ0SW5kZXhcIjo4LFwibGVuZ3RoXCI6MCxcImVsZW1lbnRcIjp7XCJ0eXBlXCI6e1wiaW1hZ2VUeXBlXCI6e1wiaW1hZ2VcIjp7XCJzb3VyY2VzXCI6W3tcImNsaWVudFJlc291cmNlXCI6e1wiaW1hZ2VOYW1lXCI6XCJ3YXRlcm1hcmtcIn19XX19fSxcInByb3BlcnRpZXNcIjp7XCJsYXlvdXRQcm9wZXJ0aWVzXCI6e1wiaGVpZ2h0XCI6e1widmFsdWVcIjoyMCxcInVuaXRcIjpcIkRJTUVOU0lPTl9VTklUX1BPSU5UXCJ9LFwid2lkdGhcIjp7XCJ2YWx1ZVwiOjkwLFwidW5pdFwiOlwiRElNRU5TSU9OX1VOSVRfUE9JTlRcIn0sXCJtYXJnaW5cIjp7XCJsZWZ0XCI6e1widmFsdWVcIjo1fX19fX0sXCJhbGlnbm1lbnRcIjpcIkFMSUdOTUVOVF9WRVJUSUNBTF9DRU5URVJcIn1dfX19LFwieXRMb2dvT25seUJ1dHRvblwiOntcImJ1dHRvblZpZXdNb2RlbFwiOntcIm9uVGFwXCI6e1wiaW5uZXJ0dWJlQ29tbWFuZFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBRVExdGNFSWhNSWlidUVfWUx5bFFNVmI1YjBCeDB4aERVWnlnRUUydXQwZmdcdTAwM2RcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dlx1MDAzZEdtT3ppaDZJMXpzXCIsXCJ3ZWJQYWdlVHlwZVwiOlwiV0VCX1BBR0VfVFlQRV9VTktOT1dOXCIsXCJyb290VmVcIjo4Mzc2OX19LFwidXJsRW5kcG9pbnRcIjp7XCJ1cmxcIjpcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3ZcdTAwM2RHbU96aWg2STF6c1wiLFwidGFyZ2V0XCI6XCJUQVJHRVRfTkVXX1dJTkRPV1wifX19LFwiYWNjZXNzaWJpbGl0eVRleHRcIjpcIldhdGNoIG9uIFlvdVR1YmVcIixcInN0eWxlXCI6XCJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9NT05PXCIsXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FFUTF0Y0VJaE1JaWJ1RV9ZTHlsUU1WYjViMEJ4MHhoRFVaXCIsXCJ0eXBlXCI6XCJCVVRUT05fVklFV19NT0RFTF9UWVBFX1RFWFRcIixcImJ1dHRvblNpemVcIjpcIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfQ09NUEFDVFwiLFwidGl0bGVGb3JtYXR0ZWRcIjp7XCJjb250ZW50XCI6XCIgXCIsXCJhdHRhY2htZW50UnVuc1wiOlt7XCJzdGFydEluZGV4XCI6MCxcImxlbmd0aFwiOjAsXCJlbGVtZW50XCI6e1widHlwZVwiOntcImltYWdlVHlwZVwiOntcImltYWdlXCI6e1wic291cmNlc1wiOlt7XCJjbGllbnRSZXNvdXJjZVwiOntcImltYWdlTmFtZVwiOlwid2F0ZXJtYXJrXCJ9fV19fX0sXCJwcm9wZXJ0aWVzXCI6e1wibGF5b3V0UHJvcGVydGllc1wiOntcImhlaWdodFwiOntcInZhbHVlXCI6MjAsXCJ1bml0XCI6XCJESU1FTlNJT05fVU5JVF9QT0lOVFwifSxcIndpZHRoXCI6e1widmFsdWVcIjo5MCxcInVuaXRcIjpcIkRJTUVOU0lPTl9VTklUX1BPSU5UXCJ9LFwibWFyZ2luXCI6e1wibGVmdFwiOntcInZhbHVlXCI6NX19fX19LFwiYWxpZ25tZW50XCI6XCJBTElHTk1FTlRfVkVSVElDQUxfQ0VOVEVSXCJ9XX19fX19fX19fSxcInRyYWNraW5nUGFyYW1zXCI6XCJDQUFRcnU0QkloTUlpYnVFX1lMeWxRTVZiNWIwQngweGhEVVp5Z0VFMnV0MGZnXHUwMDNkXHUwMDNkXCIsXCJwZXJtaXNzaW9uc1wiOntcImFsbG93SW1hTW9uZXRpemF0aW9uXCI6ZmFsc2UsXCJhbGxvd1BmcFVuYnJhbmRlZFwiOmZhbHNlfSxcInZpZGVvRmxhZ3NcIjp7XCJwbGF5YWJsZUluRW1iZWRcIjp0cnVlLFwiaXNDcmF3bGFibGVcIjp0cnVlfSxcInByZXZpZXdQbGF5YWJpbGl0eVN0YXR1c1wiOntcInN0YXR1c1wiOlwiT0tcIixcInBsYXlhYmxlSW5FbWJlZFwiOnRydWUsXCJjb250ZXh0UGFyYW1zXCI6XCJRMEZGVTBGblowRVx1MDAzZFwifSxcImVtYmVkZGVkUGxheWVyTW9kZVwiOlwiRU1CRURERURfUExBWUVSX01PREVfREVGQVVMVFwiLFwiZW1iZWRkZWRQbGF5ZXJDb25maWdcIjp7XCJlbWJlZGRlZFBsYXllck1vZGVcIjpcIkVNQkVEREVEX1BMQVlFUl9NT0RFX0RFRkFVTFRcIixcImVtYmVkZGVkUGxheWVyRmxhZ3NcIjp7fX0sXCJlbWJlZGRlZFBsYXllckNvbnRleHRcIjp7XCJlbWJlZGRlZFBsYXllckVuY3J5cHRlZENvbnRleHRcIjpcIkFDbWJsQlVzdEZqUlpCWC1wUUU2NC1QWm5fdDFKb3EtRF9jTlJodWN5NlJvekFFR2tTOFFIVi1CUS1rWU1jSkpZcjdXRzVRVWlQbm5rRE5Kb1ZvRzVTZ1E3b3VFYXBkV1lwM1NQYlBYaU4wdnlFN1JSSzJpNUZPWmt0MmtWeVREa2l1WmI3b1wiLFwiYW5jZXN0b3JPcmlnaW5zU3VwcG9ydGVkXCI6ZmFsc2V9fSIsInZpZGVvX2lkIjoiR21PemloNkkxenMiLCJyZXNvbHZlX3VybF9yZXNwb25zZSI6IntcInJlc3BvbnNlQ29udGV4dFwiOntcInNlcnZpY2VUcmFja2luZ1BhcmFtc1wiOlt7XCJzZXJ2aWNlXCI6XCJDU0lcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImNcIixcInZhbHVlXCI6XCJXRUJfRU1CRURERURfUExBWUVSXCJ9LHtcImtleVwiOlwiY3ZlclwiLFwidmFsdWVcIjpcIjIuMjAyNjA3MjQuMDEuMDBcIn0se1wia2V5XCI6XCJ5dF9saVwiLFwidmFsdWVcIjpcIjBcIn0se1wia2V5XCI6XCJSZXNvbHZlVXJsX3JpZFwiLFwidmFsdWVcIjpcIjB4ODY2NzAyZDlmZmU5ZmFhMFwifV19LHtcInNlcnZpY2VcIjpcIkdGRUVEQkFDS1wiLFwicGFyYW1zXCI6W3tcImtleVwiOlwibG9nZ2VkX2luXCIsXCJ2YWx1ZVwiOlwiMFwifV19LHtcInNlcnZpY2VcIjpcIkdVSURFRF9IRUxQXCIsXCJwYXJhbXNcIjpbe1wia2V5XCI6XCJsb2dnZWRfaW5cIixcInZhbHVlXCI6XCIwXCJ9XX0se1wic2VydmljZVwiOlwiRUNBVENIRVJcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImNsaWVudC52ZXJzaW9uXCIsXCJ2YWx1ZVwiOlwiMi4yMDI2MDcyNFwifSx7XCJrZXlcIjpcImNsaWVudC5uYW1lXCIsXCJ2YWx1ZVwiOlwiV0VCX0VNQkVEREVEX1BMQVlFUlwifV19XSxcInJlc3BvbnNlSWRcIjpcIkloTUlwNWVFX1lMeWxRTVZwSmIwQngyUl93V01cIixcIndlYlJlc3BvbnNlQ29udGV4dEV4dGVuc2lvbkRhdGFcIjp7XCJoYXNEZWNvcmF0ZWRcIjp0cnVlfX0sXCJlbmRwb2ludFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkloTUlwNWVFX1lMeWxRTVZwSmIwQngyUl93V01NZ2hsZUhSbGNtNWhiTW9CQk5ycmRINFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e319fSJ9LCJQT1NUX01FU1NBR0VfT1JJR0lOIjoiKiIsIlZJREVPX0lEIjoiR21PemloNkkxenMiLCJET01BSU5fQURNSU5fU1RBVEUiOiIifSk7d2luZG93Lnl0Y2ZnLm9iZnVzY2F0ZWREYXRhXyA9IFtdOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9ImxYUnQ0YU5wYzI1b21sczIxb0JGT1EiPndpbmRvdy55dEF0UCA9IG5ldyBQcm9taXNlKHJlcyA9PiB3aW5kb3cueXRBdE4gPSByZXMpOyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHt3aW5kb3cueXRBdE4oKTsgZGVsZXRlIHdpbmRvdy55dEF0Tjt9KTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIj53aW5kb3cueXRlcnI9d2luZG93Lnl0ZXJyfHx0cnVlO3dpbmRvdy51bmhhbmRsZWRFcnJvck1lc3NhZ2VzPXt9Owp3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csdXJsLGxpbmUsb3B0X2NvbHVtbk51bWJlcixvcHRfZXJyb3Ipe3ZhciBlcnI7aWYob3B0X2Vycm9yKWVycj1vcHRfZXJyb3I7ZWxzZXtlcnI9bmV3IEVycm9yO2Vyci5tZXNzYWdlPW1zZztlcnIuZmlsZU5hbWU9dXJsO2Vyci5saW5lTnVtYmVyPWxpbmU7aWYoIWlzTmFOKG9wdF9jb2x1bW5OdW1iZXIpKWVyclsiY29sdW1uTnVtYmVyIl09b3B0X2NvbHVtbk51bWJlcn12YXIgbWVzc2FnZT1TdHJpbmcoZXJyLm1lc3NhZ2UpO2lmKCFlcnIubWVzc2FnZXx8bWVzc2FnZSBpbiB3aW5kb3cudW5oYW5kbGVkRXJyb3JNZXNzYWdlcylyZXR1cm47d2luZG93LnVuaGFuZGxlZEVycm9yTWVzc2FnZXNbbWVzc2FnZV09dHJ1ZTt2YXIgaW1nPW5ldyBJbWFnZTt3aW5kb3cuZW1lcmdlbmN5VGltZW91dEltZz1pbWc7aW1nLm9ubG9hZD1pbWcub25lcnJvcj1mdW5jdGlvbigpe2RlbGV0ZSB3aW5kb3cuZW1lcmdlbmN5VGltZW91dEltZ307dmFyIHZhbHVlcz0KeyJjbGllbnQubmFtZSI6eXRjZmcuZ2V0KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIpLCJjbGllbnQudmVyc2lvbiI6eXRjZmcuZ2V0KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpLCJtc2ciOm1lc3NhZ2UsInR5cGUiOiJVbmhhbmRsZWRXaW5kb3ciK2Vyci5uYW1lLCJmaWxlIjplcnIuZmlsZU5hbWUsImxpbmUiOmVyci5saW5lTnVtYmVyLCJzdGFjayI6KGVyci5zdGFja3x8IiIpLnN1YnN0cigwLDUwMCl9O3ZhciBwYXJ0cz1beXRjZmcuZ2V0KCJFTUVSR0VOQ1lfQkFTRV9VUkwiLCIvZXJyb3JfMjA0P3Q9anNlcnJvciZsZXZlbD1FUlJPUiIpXTt2YXIga2V5O2ZvcihrZXkgaW4gdmFsdWVzKXt2YXIgdmFsdWU9dmFsdWVzW2tleV07aWYodmFsdWUpcGFydHMucHVzaChrZXkrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpfWltZy5zcmM9cGFydHMuam9pbigiJiIpfTsKPC9zY3JpcHQ+PHNjcmlwdCBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+dmFyIHl0ZXJyID0geXRlcnIgfHwgdHJ1ZTs8L3NjcmlwdD48c2NyaXB0IGRhdGEtaWQ9Il9nZCIgbm9uY2U9ImxYUnQ0YU5wYzI1b21sczIxb0JGT1EiPndpbmRvdy5XSVpfZ2xvYmFsX2RhdGEgPSB7IkFmWThIZiI6ZmFsc2UsIkZMMWFuIjpmYWxzZSwiSGlQc2JiIjowLCJNVUU2TmUiOiJ5b3V0dWJlX3dlYiIsIk11SldqZCI6ZmFsc2UsIlVVRmFXYyI6IiUuQC5udWxsLDEwMDAsMl0iLCJjZmIyaCI6InlvdXR1YmUud2ViLWZyb250LWVuZC1jcml0aWNhbF8yMDI2MDcyMi4wMV9wMCIsImZQRHh3ZCI6W10sImhzRkxUIjoiJS5ALm51bGwsMTAsM10iLCJpQ3poRmMiOmZhbHNlLCJuUXlBRSI6e30sIm94TjNuYiI6eyIxIjpmYWxzZSwiMCI6ZmFsc2UsIjYxMDQwMTMwMSI6ZmFsc2UsIjg5OTU4ODQzNyI6ZmFsc2UsIjc3MjY1Nzc2OCI6dHJ1ZSwiNTEzNjU5NTIzIjpmYWxzZSwiNTY4MzMzOTQ1Ijp0cnVlLCIxMzMxNzYxNDAzIjp0cnVlLCI2NTExNzU4MjgiOmZhbHNlLCI3MjI3NjQ1NDIiOmZhbHNlLCI3NDg0MDIxNDUiOmZhbHNlLCI3NDg0MDIxNDYiOmZhbHNlLCI3NDg0MDIxNDciOnRydWUsIjE2MDI2MTMxODUiOmZhbHNlLCI4NjEzNzc3MjMiOmZhbHNlLCI4NjEzNzc3MjQiOmZhbHNlLCI4NjkzMzY5MDMiOmZhbHNlLCI4ODI2NzQ1MDciOmZhbHNlLCI4NjkzMzY5MDQiOmZhbHNlLCI4NjkzMzY5MDUiOmZhbHNlLCIyODM5NTMxNTUiOmZhbHNlLCI5MTk0NDQ4MjQiOmZhbHNlLCI5MzE0NjgwNDciOmZhbHNlLCI5Mjg4NzUzOTgiOmZhbHNlLCI2ODM3NDkyMDEiOmZhbHNlfSwidTRnN3IiOiIlLkAubnVsbCwxLDNdIiwieG5JOVAiOmZhbHNlLCJ4d0FmRSI6dHJ1ZSwieUZueHJmIjoyNDg2fTs8L3NjcmlwdD48dGl0bGU+WW91VHViZTwvdGl0bGU+PGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9R21PemloNkkxenMiPjwvaGVhZD48Ym9keSBjbGFzcz0iZGF0ZS0yMDI2MDcyNiBlbl9VUyBsdHIgIHNpdGUtY2VudGVyLWFsaWduZWQgc2l0ZS1hcy1naWFudC1jYXJkIGdlY2tvIGdlY2tvLTEzNCIgZGlyPSJsdHIiPjxkaXYgaWQ9InBsYXllciI+PC9kaXY+PHNjcmlwdCBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+dmFyIHNldE1lc3NhZ2U9ZnVuY3Rpb24obXNnKXtpZih3aW5kb3cueXQmJnl0LnNldE1zZyl5dC5zZXRNc2cobXNnKTtlbHNle3dpbmRvdy55dGNmZz13aW5kb3cueXRjZmd8fHt9O3l0Y2ZnLm1zZ3M9bXNnfX07CnNldE1lc3NhZ2UoeyJBQ0NPVU5UX0xBQkVMIjoiQWNjb3VudCIsIkFDVF9PTl9USElTX0NPTU1FTlQiOiJBY3Qgb24gdGhpcyBjb21tZW50IiwiQUREX1RPX0RST1BET1dOX0xBQkVMIjoiQWRkIHRvIHBsYXlsaXN0IiwiQURfQkFER0VfSElOVCI6IkFkdmVydGlzZW1lbnQiLCJBRF9CQURHRV9URVhUIjoiQUQiLCJBTExfQ0hBTk5FTFNfTEFCRUwiOiJBbGwgY2hhbm5lbHMiLCJBTUJJRU5UX01PREUiOiJBbWJpZW50IG1vZGUiLCJBTUJJRU5UX01PREVfT0ZGIjoiQW1iaWVudCBtb2RlIG9mZiIsIkFNQklFTlRfTU9ERV9PTiI6IkFtYmllbnQgbW9kZSBvbiIsIkFORFJPSURfREVQUkVDQVRJT05fTUVTU0FHRV9CT0RZIjoiUGxlYXNlIHVwZGF0ZSB5b3VyIGRldmljZSB0byBBbmRyb2lkIDQuMCBiZWZvcmUgT2N0IDIyLCAyMDIwIHRvIGtlZXAgdXNpbmcgWW91VHViZSB3aXRob3V0IGludGVycnVwdGlvbnMuIiwiQU5EUk9JRF9ERVBSRUNBVElPTl9NRVNTQUdFX0hFQURFUiI6IllvdVR1YmUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIG9uIHlvdXIgZGV2aWNlIGFmdGVyIDIwMjAtMTAtMjIiLCJBUFBfVVBTRUxMX1NVQlRJVExFIjoiVXBsb2FkLCBzYXZlLCBhbmQgY29tbWVudCBvbiB2aWRlb3Mgd2l0aCB0aGUgWW91VHViZSBhcHAiLCJBUFBfVVBTRUxMX1RJVExFIjoiU3dpdGNoIHRvIHRoZSBhcHAgZm9yIGEgYmV0dGVyIHZpZXdpbmcgZXhwZXJpZW5jZSIsIkFVRElPX1RSQUNLIjoiQXVkaW8gVHJhY2siLCJBVVRPTkFWX1RPR0dMRSI6IkF1dG9wbGF5IiwiQVVUT1BMQVlfSU5fVEVOX1NFQ09ORFMiOiJOZXh0IHZpZGVvIHdpbGwgYmUgcGxheWVkIGluIHRlbiBzZWNvbmRzIiwiQVVUT1BMQVlfUEFVU0VEIjoiQXV0b3BsYXkgaXMgcGF1c2VkIiwiQVVUT1BMQVlfUExBWV9OT1ciOiJQbGF5IG5vdyIsIkFVVE9QTEFZX1VQX05FWFRfSU4iOiJVcCBuZXh0IGluIHNlY29uZHNfcGxhY2Vob2xkZXIiLCJBVVRPX1RSQU5TTEFURSI6IkF1dG8tdHJhbnNsYXRlIiwiQVVUT19aT09NIjoiQXV0byB6b29tIiwiQkFDSyI6IkJhY2siLCJCUkFOREVEX1NJR05fSU5fRElBTE9HX0RFU0NSSVBUSU9OIjoiQWNjZXNzIGFsbCBmZWF0dXJlcyBhbmQgZ2V0IGEgc2VhbWxlc3MgZXhwZXJpZW5jZSIsIkNBTkNFTCI6IkNhbmNlbCIsIkNIQU5ORUxfU1dJVENIRVJfTEFCRUwiOiJTd2l0Y2ggYWNjb3VudCIsIkNIQVJBQ1RFUl9MSU1JVCI6IlVzZSBmZXdlciB0aGFuICRudW1iZXIgY2hhcmFjdGVycyIsIkNMT1NFIjoiQ2xvc2UiLCJDTE9TRURfQ0FQVElPTlNfRElTQUJMRUQiOiJObyBjYXB0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciB0aGlzIHZpZGVvIiwiQ0xPU0VEX0NBUFRJT05TX09GRiI6IlN1YnRpdGxlcy9DQyB0dXJuZWQgb2ZmIiwiQ0xPU0VEX0NBUFRJT05TX09OIjoiU3VidGl0bGVzL0NDIHR1cm5lZCBvbiIsIkNMT1NFRF9DQVBUSU9OU19PTl9MQU5HVUFHRSI6IlN1YnRpdGxlcy9DQyB0dXJuZWQgb24gKGxhbmd1YWdlX3BsYWNlaG9sZGVyKSIsIkNMT1NFX1NFQVJDSF9MQUJFTCI6IkNsb3NlIHNlYXJjaCIsIkNMT1NFX1NFVFRJTkdTX0xBQkVMIjoiQ2xvc2UgU2V0dGluZ3MiLCJDT01NRU5UQk9YX1BPU1QiOiJQb3N0IiwiQ09NTUVOVF9NT0RBTF9DT05URU5UIjoiUGxlYXNlIHNpZ24gaW4gdG8gYWN0IG9uIHRoaXMgY29tbWVudC4iLCJDT05GSVJNX09LIjoiT0siLCJDT05ORUNUX1RPX1RIRV9JTlRFUk5FVCI6IkNvbm5lY3QgdG8gdGhlIGludGVybmV0IiwiQ09QSUVEX1RPX0NMSVBCT0FSRCI6IkNvcGllZCB0byBjbGlwYm9hcmQiLCJDT1BZIjoiQ29weSIsIkNPUFlfREVCVUdfSU5GTyI6IkNvcHkgRGVidWcgSW5mbyIsIkNPUFlfRU1CRURfQ09ERSI6IkNvcHkgZW1iZWQgY29kZSIsIkNPUFlfTElOS19MQUJFTCI6IkNvcHkgbGluayIsIkNPUFlfVklERU9fVVJMIjoiQ29weSB2aWRlbyBVUkwiLCJDT1BZX1ZJREVPX1VSTF9BVF9DVVJSRU5UX1RJTUUiOiJDb3B5IHZpZGVvIFVSTCBhdCBjdXJyZW50IHRpbWUiLCJDUkVBVEVfQ0hBTk5FTF9USVRMRSI6IkNyZWF0ZSBjaGFubmVsIiwiREVMRVRFX0ZST01fRE9XTkxPQURTIjoiRGVsZXRlIGZyb20gZG93bmxvYWRzIiwiRElBTE9HIjoiRGlhbG9nIiwiRE1BX0NPTlNFTlRfQ09ORklSTUFUSU9OIjoiWW91ciBjaG9pY2Ugd2lsbCB0YWtlIGVmZmVjdCBvbiBNYXJjaCA2LCAyMDI0LiBZb3UgY2FuIGNoYW5nZSB5b3VyIGNob2ljZXMgYW55dGltZSBpbiB5b3VyIEdvb2dsZSBBY2NvdW50LiIsIkRNQV9DT05TRU5UX0NPTkZJUk1BVElPTjIiOiJZb3VyIGNob2ljZXMgaGF2ZSBiZWVuIHNhdmVkLiBZb3UgY2FuIGNoYW5nZSB5b3VyIGNob2ljZXMgYW55dGltZSBpbiB5b3VyIEdvb2dsZSBBY2NvdW50LiIsIkRNQV9DT05TRU5UX0dFTkVSQUxfRVJST1IiOiJTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBsb2FkaW5nIiwiRE1BX0NPTlNFTlRfUkVDT1JEX0VSUk9SIjoiU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHlvdXIgY2hvaWNlcyB3ZXJlIG5vdCBzYXZlZCIsIkRPTkUiOiJEb25lIiwiRE9XTkxPQUQiOiJEb3dubG9hZCIsIkZBSUxFRF9DT1BZX0VSUk9SX01FU1NBR0UiOiJDb3B5IGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGRldmljZSwgZmFpbGVkIHRvIGNvcHkuIiwiRkxBR19DT05GSVJNIjoiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGZsYWcgdGhpcyB2aWRlbz8iLCJGTEFHX0NPTlRFTlQiOiJTaWduIGluIHRvIGZsYWcgaXQuIiwiRkxBR19MQUJFTCI6IkZsYWcgYXMgaW5hcHByb3ByaWF0ZSIsIkZMQUdfVElUTEUiOiJJbmFwcHJvcHJpYXRlIHZpZGVvPyIsIkZVTExTQ1JFRU5fR0VORVJJQ19FUlJPUiI6IkZ1bGwgc2NyZWVuIGlzIHVuYXZhaWxhYmxlLiIsIkdPT0dMRV9DT01QQU5ZIjoiWW91VHViZSwgYSBHb29nbGUgY29tcGFueSIsIkhJREVfQUxFUlQiOiJIaWRlIHRoaXMgYWxlcnQiLCJISURFX1BMQVlFUl9DT05UUk9MUyI6IkhpZGUgcGxheWVyIGNvbnRyb2xzIiwiSElERV9QTEFZTElTVF9WSURFT1MiOiJIaWRlIHBsYXlsaXN0IHZpZGVvcyIsIkhJREVfU0VBUkNIX0ZJTFRFUlNfTEFCRUwiOiJIaWRlIHNlYXJjaCBmaWx0ZXJzIiwiSE9NRSI6IkhvbWUiLCJJTlZBTElEX1JFU1BPTlNFX1JFQ0VJVkVEIjoiSW52YWxpZCByZXNwb25zZSByZWNlaXZlZC4iLCJMRUFWRV9BX0NPTU1FTlRfVElUTEUiOiJMZWF2ZSBhIGNvbW1lbnQ/IiwiTElCUkFSWSI6IkxpYnJhcnkiLCJMSUtFX0NPVU5UX1RFWFQiOnsiY2FzZTAiOiJObyBsaWtlcyIsImNhc2UxIjoiMSBsaWtlIiwib3RoZXIiOiIjIGxpa2VzIn0sIkxJS0VfQ09VTlRfVEVYVF9MQUJFTCI6IntcImNhc2UwXCI6IFwiTm8gcGVvcGxlIGhhdmUgbGlrZWQgdGhpcyB2aWRlby5cIiwgXCJjYXNlMVwiOiBcIjEgcGVyc29uIGhhcyBsaWtlZCB0aGlzIHZpZGVvLlwiLCBcIm90aGVyXCI6IFwiIyBwZW9wbGUgaGF2ZSBsaWtlZCB0aGlzIHZpZGVvLlwifSIsIkxJU1RFTklORyI6Ikxpc3RlbmluZy4uLiIsIkxPQURJTkciOiJMb2FkaW5nLi4uIiwiTE9OR19QUkVTU19NSUNfVE9fU1BFQUsiOiJMb25nIHByZXNzIG1pY19pY29uX3BsYWNlaG9sZGVyIHRvIHNwZWFrIiwiTE9PUCI6Ikxvb3AiLCJNRU5VX0RFU0tUT1AiOiJEZXNrdG9wIiwiTUVOVV9FWElUIjoiRXhpdCIsIk1FTlVfRkVFREJBQ0siOiJGZWVkYmFjayIsIk1FTlVfSEVMUCI6IkhlbHAiLCJNRU5VX0lNUFJFU1NVTSI6IkltcHJpbnQiLCJNRU5VX1BMQVlFUl9TRVRUSU5HUyI6IlBsYXliYWNrIFNldHRpbmdzIiwiTUVOVV9SRVBPUlRfQV9QUk9CTEVNIjoiUmVwb3J0IGEgcHJvYmxlbSB3aXRoIFlvdVR1YmUiLCJNRU5VX1NFTkRfRkVFREJBQ0siOiJTZW5kIGZlZWRiYWNrIiwiTUVOVV9TRVRUSU5HUyI6IlNldHRpbmdzIiwiTUVOVV9TSUdOX0lOIjoiU2lnbiBJbiIsIk1FTlVfVEVSTVMiOiJQcml2YWN5IFx1MDAyNiBUZXJtcyIsIk1FTlVfVElUTEUiOiJNZW51IiwiTUVOVV9ZT1VSX0RBVEEiOiJZb3VyIGRhdGEgaW4gWW91VHViZSIsIk1FVEFEQVRBX1NVQlRJVExFX0NIQU5ORUxfTkFNRV9MQUJFTCI6IlVwbG9hZGVkIGJ5ICR7Y2hhbm5lbF9uYW1lX3BsYWNlaG9sZGVyfS4iLCJNTUdfQ09ORklSTUFUSU9OIjoiWW91ciBjaG9pY2UgaGFzIGJlZW4gc2F2ZWQuIFlvdSBjYW4gY2hhbmdlIHRoaXMgc2V0dGluZyBhbnl0aW1lIGluIE15IEFkIENlbnRlci4iLCJNTUdfQ09OU0VOVF9SRUNPUkRfRVJST1IiOiJTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgeW91ciBjaG9pY2Ugd2FzIG5vdCBzYXZlZCIsIk1PUkUiOiJNb3JlIiwiTU9SRV9JTkZPIjoiTW9yZSBpbmZvIiwiTU9SRV9MT1dFUkNBU0UiOiJtb3JlIiwiTU9SRV9PUFRJT05TIjoiTW9yZSBvcHRpb25zIiwiTU9SRV9WSURFT1MiOiJNb3JlIHZpZGVvcyIsIk1PUkVfVklERU9TX0NMT1NFX0JVVFRPTl9BUklBX0xBQkVMIjoiSGlkZSBtb3JlIHZpZGVvcyIsIk1PUkVfVklERU9TX0ZST01fQ0hBTk5FTCI6Ik1vcmUgdmlkZW9zIGZyb20gJGNoYW5uZWxfbmFtZV9wbGFjZWhvbGRlciIsIk1PUkVfVklERU9TX05FWFRfQlVUVE9OX0FSSUFfTEFCRUwiOiJOZXh0IHZpZGVvcyIsIk1PUkVfVklERU9TX1BSRVZJT1VTX0JVVFRPTl9BUklBX0xBQkVMIjoiUHJldmlvdXMgdmlkZW9zIiwiTVVURV9WT0xVTUUiOiJNdXRlIiwiTkVXX1BMQVlMSVNUIjoiTmV3IHBsYXlsaXN0IiwiTkVYVF9WSURFTyI6Ik5leHQgdmlkZW8iLCJOT1RJRklDQVRJT05fRVJST1JfTUVTU0FHRSI6IlNvbWV0aGluZyB3ZW50IHdyb25nLCBwbGVhc2UgdHJ5IGFnYWluLiIsIk5PVF9GT1VORF9DVEEiOiJCcm93c2UgVmlkZW9zIiwiTk9UX0ZPVU5EX01FU1NBR0UiOiJQbGVhc2Ugc2VhcmNoIGZvciBzb21ldGhpbmcgZWxzZSwgb3IgYnJvd3NlIHlvdXIgSG9tZSBmZWVkLiIsIk5PVF9GT1VORF9USVRMRSI6IlRoaXMgcGFnZSBpc25cdTAwMjd0IGF2YWlsYWJsZSIsIk5PX0RPV05MT0FEUyI6Ik5vIGRvd25sb2FkcyIsIk5PX01JQ19JTlBVVCI6IkRpZG5cdTAwMjd0IGhlYXIgdGhhdC4gVHJ5IHNwZWFraW5nIGFnYWluLiIsIk9GRkxJTkVfQ0hFQ0tfQ09OTkVDVElPTiI6IllvdVx1MDAyN3JlIG9mZmxpbmUuIENoZWNrIHlvdXIgY29ubmVjdGlvbi4iLCJPT1BTX01FU1NBR0UiOiJPb3BzISBTb21ldGhpbmcgd2VudCB3cm9uZy4iLCJPUEVOX0FQUCI6Ik9wZW4gQXBwIiwiT1BFTl9ZT1VUVUJFIjoiT3BlbiB0aGUgYXBwIiwiT1BFTl9ZT1VUVUJFX0FQUCI6Ik9wZW4gWW91VHViZSBhcHAiLCJQQVVTRSI6IlBhdXNlIiwiUExBWSI6IlBsYXkiLCJQTEFZQkFDS19TUEVFRF9YIjoiJHtzcGVlZF9yYXRlX3BsYWNlaG9sZGVyfXgiLCJQTEFZRVJfQ0FQVElPTiI6IkNhcHRpb25zIiwiUExBWUVSX0NBUFRJT05fT0ZGIjoiT2ZmIiwiUExBWUVSX0NBUFRJT05fT04iOiJPbiIsIlBMQVlFUl9ET1VCTEVfU1BFRURfVVNFUl9FRFUiOiIyeCIsIlBMQVlFUl9ET1VCTEVfVEFQX1RPX1NFRUsiOiJEb3VibGUgdGFwIGxlZnQgb3IgcmlnaHQgdG8gc2tpcCAxMCBzZWNvbmRzIiwiUExBWUVSX0RPVUJMRV9UQVBfVE9fU0hPV19PUl9ISURFX1BMQVlFUl9DT05UUk9MUyI6IkRvdWJsZSB0YXAgdG8gc2hvdyBvciBoaWRlIHBsYXllciBjb250cm9scyIsIlBMQVlFUl9FWElUX0ZVTExTQ1JFRU4iOiJFeGl0IGZ1bGwgc2NyZWVuIiwiUExBWUVSX0ZBU1RGT1JXQVJEX1NFQ09ORFMiOiJGYXN0IGZvcndhcmQgJHNlY29uZHNfcGxhY2Vob2xkZXIgc2Vjb25kcyIsIlBMQVlFUl9GVUxMU0NSRUVOIjoiRW50ZXIgZnVsbCBzY3JlZW4iLCJQTEFZRVJfTElWRV9MQUJFTCI6IkxpdmUiLCJQTEFZRVJfTElWRV9OT1ciOiJMaXZlIG5vdyIsIlBMQVlFUl9NSU5JTUlaRSI6Ik1pbmltaXplIiwiUExBWUVSX05FWFQiOiJOZXh0IHZpZGVvIiwiUExBWUVSX1BBVVNFIjoiUGF1c2UgdmlkZW8iLCJQTEFZRVJfUExBWSI6IlBsYXkgdmlkZW8iLCJQTEFZRVJfUFJFTUlFUkVfTEFCRUwiOiJQcmVtaWVyZSIsIlBMQVlFUl9QUkVWSU9VUyI6IlByZXZpb3VzIHZpZGVvIiwiUExBWUVSX1BST0dSRVNTX0JBUiI6IlNlZWsgc2xpZGVyIiwiUExBWUVSX1FVQUxJVFkiOiJRdWFsaXR5IiwiUExBWUVSX1FVQUxJVFlfQVVUTyI6IkF1dG8iLCJQTEFZRVJfUkVQTEFZIjoiUmVwbGF5IFZpZGVvIiwiUExBWUVSX1JFV0lORF9TRUNPTkRTIjoiUmV3aW5kICRzZWNvbmRzX3BsYWNlaG9sZGVyIHNlY29uZHMiLCJQTEFZRVJfU0VDT05EUyI6IiRzZWNvbmRzX3BsYWNlaG9sZGVyIHNlY29uZHMiLCJQTEFZRVJfU1BFRUQiOiJTcGVlZCIsIlBMQVlFUl9TUEVFRFVQX1VTRVJfRURVIjoiUGxheWluZyBhdCBzcGVlZF9yYXRlX3BsYWNlaG9sZGVyeCBzcGVlZCIsIlBMQVlFUl9TUEVFRF9ERUNSRUFTRSI6IkRlY3JlYXNlIHBsYXliYWNrIHNwZWVkIiwiUExBWUVSX1NQRUVEX0lOQ1JFQVNFIjoiSW5jcmVhc2UgcGxheWJhY2sgc3BlZWQiLCJQTEFZRVJfU1BFRURfTk9STUFMIjoiTm9ybWFsIiwiUExBWUVSX1NQRUVEX1JFQ0VOVCI6IlJlY2VudCIsIlBMQVlFUl9USU1FX0RVUkFUSU9OIjoiVGltZSBkdXJhdGlvbiIsIlBMQVlFUl9USU1FX0VMQVBTRUQiOiJUaW1lIGVsYXBzZWQiLCJQTEFZRVJfVElNRV9GT1JNQVRURUQiOnsiY2FzZTAiOiIke21pbnV0ZXN9IG1pbnV0ZXMgYW5kICR7c2Vjb25kc30gc2Vjb25kcyIsImNhc2UxIjoiMSBob3VyLCAke21pbnV0ZXN9IG1pbnV0ZXMgYW5kICR7c2Vjb25kc30gc2Vjb25kcyIsIm90aGVyIjoiIyBob3VycywgJHttaW51dGVzfSBtaW51dGVzIGFuZCAke3NlY29uZHN9IHNlY29uZHMifSwiUExBWUxJU1RfQ1VSUkVOVF9WSURFT19JTkRFWCI6IiR7Y3VycmVudF92aWRlb19pbmRleH0gb2YgJHtsYXN0X2luZGV4fS4iLCJQTEFZTElTVF9ERVNDUklQVElPTl9JTlZBTElEX0NIQVJBQ1RFUlMiOiJQbGF5bGlzdCBkZXNjcmlwdGlvbiBjYW5cdTAwMjd0IHVzZSBcdTAwM2Mgb3IgXHUwMDNlIiwiUExBWUxJU1RfTUlYX0RFVEFJTEVEX0xPTkdfQllMSU5FIjoiTWl4ZXMgYXJlIHBsYXlsaXN0cyBZb3VUdWJlIG1ha2VzIGZvciB5b3UiLCJQTEFZTElTVF9OQU1FX0lOVkFMSURfQ0hBUkFDVEVSUyI6IlBsYXlsaXN0IHRpdGxlIGNhblx1MDAyN3QgdXNlIFx1MDAzYyBvciBcdTAwM2UiLCJQTEFZTElTVF9OQU1FX01JU1NJTkciOiJQbGF5bGlzdCB0aXRsZSByZXF1aXJlZC4iLCJQTEFZTElTVF9OQU1FX1RPT19MT05HIjoiUGxheWxpc3QgdGl0bGUgaXMgdG9vIGxvbmcuIiwiUExBWUxJU1RfUEFORUxfRU5EX09GX1BMQVlMSVNUIjoiRW5kIG9mIFBsYXlsaXN0IiwiUExBWUxJU1RfUEFORUxfTkVYVCI6Ik5leHQ6IiwiUExBWUxJU1RfUEFORUxfVU5MSVNURURfUExBWUxJU1QiOiJVbmxpc3RlZCBQbGF5bGlzdCIsIlBMQVlMSVNUX1RFWFRfSU5QVVRfQ0hBUl9DT1VOVCI6ImN1cnJlbnRfY291bnRfcGxhY2Vob2xkZXIgb2YgbWF4X2NvdW50X3BsYWNlaG9sZGVyIGNoYXJhY3RlcnMgdXNlZCIsIlBMQVlfQUxMIjoiUGxheSBhbGwiLCJQTEVBU0VfRklYX0VSUk9SUyI6IlBsZWFzZSBmaXggZXJyb3JzIGFuZCB0cnkgYWdhaW4uIiwiUFJFTUlVTV9CQURHRV9MQUJFTCI6IlByZW1pdW0iLCJQUkVWSU9VU19WSURFTyI6IlByZXZpb3VzIHZpZGVvIiwiUFJJVkFDWV9QT0xJQ1kiOiJQcml2YWN5IFBvbGljeSIsIlJFTE9BRCI6IlJlbG9hZCIsIlJFUExJRVNfU0hPV19NT1JFIjoiU2hvdyBtb3JlIHJlcGxpZXMiLCJSRVFVSVJFRF9MQUJFTCI6IlJlcXVpcmVkIiwiU0FWRV9QTEFZTElTVCI6IlNhdmUiLCJTQ1JVQl9TTElERV9VU0VSX0VEVSI6IlNsaWRlIGxlZnQgb3IgcmlnaHQgdG8gc2VlayIsIlNFQVJDSCI6IlNlYXJjaCIsIlNFQVJDSF9BUFBFTkRfTEFCRUwiOiJBcHBlbmQgc3VnZ2VzdGlvbiB0byBzZWFyY2ggZmllbGQiLCJTRUFSQ0hfQ0hBTk5FTCI6IlNlYXJjaCBjaGFubmVsIiwiU0VBUkNIX0NMRUFSX0xBQkVMIjoiQ2xlYXIgY3VycmVudCBzZWFyY2ggdGV4dCIsIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9BTEJVTSI6IkFsYnVtIGJ5ICR7YXJ0aXN0fSIsIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9BTEJVTV9OT19BUlRJU1QiOiJBbGJ1bSIsIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9NT1ZJRSI6Ik1vdmllIiwiU0VBUkNIX0VOVElUWV9TVUdHRVNUSU9OX1NPTkciOiJTb25nIGJ5ICR7YXJ0aXN0fSIsIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9TT05HX05PX0FSVElTVCI6IlNvbmciLCJTRUFSQ0hfRU5USVRZX1NVR0dFU1RJT05fVFZfU0hPVyI6IlRWIHNob3ciLCJTRUFSQ0hfRklMVEVSU19MQUJFTCI6IlNlYXJjaCBmaWx0ZXJzIiwiU0VBUkNIX0xBQkVMIjoiU2VhcmNoIFlvdVR1YmUiLCJTRUFSQ0hfUFBQX1BMQUNFSE9MREVSX1RFWFQiOiJTZWFyY2ggcGFpZCBwcm9kdWN0IHBsYWNlbWVudCB2aWRlb3MiLCJTRUVLX1NMSURFUiI6IlNlZWsgc2xpZGVyIiwiU0VUVElOR1NfTEFCRUwiOiJTZXR0aW5ncyIsIlNFVFRJTkdTX01JQ19QRVJNSVNTSU9OIjoiUGxlYXNlIGFsbG93IG1pY3JvcGhvbmUgcGVybWlzc2lvbiBpbiBkZXZpY2Ugc2V0dGluZ3MuIiwiU0VUX1BMQVlCQUNLX1NQRUVEX1giOiIke3NwZWVkX3JhdGVfcGxhY2Vob2xkZXJ9eCBzcGVlZCIsIlNIT1JUU19UQUJfTEFCRUwiOiJTaG9ydHMiLCJTSE9XX0xFU1MiOiJTaG93IGxlc3MiLCJTSE9XX01PUkUiOiJTaG93IG1vcmUiLCJTSE9XX1BMQVlFUl9DT05UUk9MUyI6IlNob3cgcGxheWVyIGNvbnRyb2xzIiwiU0hPV19QTEFZTElTVF9WSURFT1MiOiJTaG93IHBsYXlsaXN0IHZpZGVvcyIsIlNIT1dfU0VBUkNIX0ZJTFRFUlNfTEFCRUwiOiJTaG93IHNlYXJjaCBmaWx0ZXJzIiwiU0lHTl9JTl9MQUJFTCI6IlNpZ24gaW4iLCJTSUdOX0lOX09OX1dFQiI6IlNpZ24gaW4gb24gd2ViIiwiU1RBQkxFX1ZPTFVNRSI6IlN0YWJsZSB2b2x1bWUiLCJTVEFCTEVfVk9MVU1FX09GRiI6IlN0YWJsZSB2b2x1bWUgb2ZmIiwiU1RBQkxFX1ZPTFVNRV9PTiI6IlN0YWJsZSB2b2x1bWUgb24iLCJTVEFUU19GT1JfTkVSRFMiOiJTdGF0cyBGb3IgTmVyZHMiLCJTVUdHRVNUSU9OX0RJU01JU1NFRF9MQUJFTCI6IlN1Z2dlc3Rpb24gUmVtb3ZlZCIsIlNVR0dFU1RJT05fRElTTUlTU19JTl9TRVRUSU5HU19MQUJFTCI6IlJlbW92ZSBpbiBzZXR0aW5ncyIsIlNVR0dFU1RJT05fRElTTUlTU19MQUJFTCI6IlJlbW92ZSIsIlNVR0dFU1RJT05fTkVXX1ZJREVPU19URVhUIjoiTmV3IHZpZGVvcyIsIlNVR0dFU1RJT05fVEhVTUJOQUlMX0FUVFJJQlVUSU9OX0RJQUxPR19CVVRUT05fTEFCRUwiOiJWaXNpdCBzb3VyY2UiLCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9ESUFMT0dfREVTQ1JJUFRJT04iOiJWaXNpdCBpbWFnZSBzb3VyY2Ugd2Vic2l0ZT8iLCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9ESUFMT0dfVElUTEUiOiJJbWFnZSBzb3VyY2UiLCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9MQUJFTCI6IlZpZXcgaW1hZ2Ugc291cmNlIiwiU1VHR0VTVElPTl9USFVNQk5BSUxfTEFCRUwiOiJJbWFnZSBmb3Igc3VnZ2VzdGlvbiIsIlRFUk1TX09GX1NFUlZJQ0UiOiJUZXJtcyBvZiBTZXJ2aWNlIiwiVElNRVNUQU1QX01JTlVURVMiOiJ0aW1lc3RhbXAgbWludXRlcyByZXF1aXJlZCIsIlRJTUVTVEFNUF9TRUNPTkRTIjoidGltZXN0YW1wIHNlY29uZHMgcmVxdWlyZWQiLCJUT0dHTEVfT0ZGIjoiT2ZmIiwiVE9HR0xFX09OIjoiT24iLCJUUkVORElORyI6IlRyZW5kaW5nIiwiVFJPVUJMRVNIT09UX1BMQVlCQUNLX0lTU1VFIjoiVHJvdWJsZXNob290IHBsYXliYWNrIGlzc3VlIiwiVFJZX0FHQUlOX0xBVEVSIjoiU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuIiwiVFJZX0FHQUlOX01JQ19QRVJNSVNTSU9OIjoiUGxlYXNlIHRyeSBhZ2FpbiBhbmQgYWxsb3cgbWljcm9waG9uZSBwZXJtaXNzaW9uLiIsIlRVUk5fT0ZGX0FVVE9QTEFZX0NPTkZJUk1fQlVUVE9OX1RJVExFIjoiVHVybiBvZmYiLCJUVVJOX09GRl9BVVRPUExBWV9ESUFMT0dfREVTQ1JJUFRJT04iOiJXaGVuIGF1dG9wbGF5IGlzIG9mZiwgYSBzdWdnZXN0ZWQgdmlkZW8gd2lsbCBub3QgYXV0b21hdGljYWxseSBwbGF5IG5leHQiLCJUVVJOX09GRl9BVVRPUExBWV9ESUFMT0dfVElUTEUiOiJUdXJuIG9mZiBhdXRvcGxheT8iLCJVTk1VVEVfVk9MVU1FIjoiVW5tdXRlIiwiVklERU9TIjoie3ZpZGVvcyxwbHVyYWwsIFx1MDAzZDB7MCB2aWRlb3N9XHUwMDNkMXsxIHZpZGVvfW90aGVyeyMgdmlkZW9zfX0iLCJWSURFT19MSU5LX0xBQkVMIjoiVmlkZW8gbGluayIsIldBVENIRUQiOiJXYXRjaGVkIiwiX19sYW5nX18iOiJlbiJ9KTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIj52YXIgX0ZfY3NzUm93S2V5ID0gJ3l0ZW1iZWRzLmJhc2UuTnhuaXV1WkVUWncuTC5GNC5PJzsgdmFyIF9GX2NvbWJpbmVkU2lnbmF0dXJlID0gJ0FHS015d0hVNnFITml0bnM1WHFZRUstMnl5VUVhR09Wa1EnOzwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvcy9fL3l0ZW1iZWRzL18vanMvaz15dGVtYmVkcy5iYXNlLmVuX1VTLl84OFR3eXlIS0hzLjIwMjEuTy9hbT1BQUFBZ0EvZD0xL2V4Y209YmFzZSxyb290L2JyPTEvcnM9QUdLTXl3RXUyVFFVemRTRjBBY3NGQk1VckZxeXVyS2x1dy9tPXJvb3QsYmFzZSIgbmFtZT0iZW1iZWRfY2xpZW50IiBpZD0iYmFzZS1qcyIgbm9uY2U9ImxYUnQ0YU5wYzI1b21sczIxb0JGT1EiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvcy9wbGF5ZXIvN2E3OTY5YzIvcGxheWVyX2VtYmVkX2VzNi52ZmxzZXQvZW5fVVMvYmFzZS5qcyIgbmFtZT0icGxheWVyL2Jhc2UiIG5vbmNlPSJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIj48L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJsWFJ0NGFOcGMyNW9tbHMyMW9CRk9RIj53cml0ZUVtYmVkKCk7PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0ibFhSdDRhTnBjMjVvbWxzMjFvQkZPUSI+KGZ1bmN0aW9uKCkge2lmICh3aW5kb3cueXRBdE4pIHt3aW5kb3cueXRBdE4oeydSJzogJ1x4N2JceDIycmVzcG9uc2VDb250ZXh0XHgyMjpceDdiXHgyMnNlcnZpY2VUcmFja2luZ1BhcmFtc1x4MjI6XHg1Ylx4N2JceDIyc2VydmljZVx4MjI6XHgyMkNTSVx4MjIsXHgyMnBhcmFtc1x4MjI6XHg1Ylx4N2JceDIya2V5XHgyMjpceDIyY1x4MjIsXHgyMnZhbHVlXHgyMjpceDIyV0VCX0VNQkVEREVEX1BMQVlFUlx4MjJceDdkLFx4N2JceDIya2V5XHgyMjpceDIyY3Zlclx4MjIsXHgyMnZhbHVlXHgyMjpceDIyMi4yMDI2MDcyNC4wMS4wMFx4MjJceDdkLFx4N2JceDIya2V5XHgyMjpceDIyeXRfbGlceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMjBceDIyXHg3ZCxceDdiXHgyMmtleVx4MjI6XHgyMkdldEF0dGVzdGF0aW9uQ2hhbGxlbmdlX3JpZFx4MjIsXHgyMnZhbHVlXHgyMjpceDIyMHg4NjY3MDJkOWZmZTlmYWEwXHgyMlx4N2RceDVkXHg3ZCxceDdiXHgyMnNlcnZpY2VceDIyOlx4MjJHRkVFREJBQ0tceDIyLFx4MjJwYXJhbXNceDIyOlx4NWJceDdiXHgyMmtleVx4MjI6XHgyMmxvZ2dlZF9pblx4MjIsXHgyMnZhbHVlXHgyMjpceDIyMFx4MjJceDdkXHg1ZFx4N2QsXHg3Ylx4MjJzZXJ2aWNlXHgyMjpceDIyR1VJREVEX0hFTFBceDIyLFx4MjJwYXJhbXNceDIyOlx4NWJceDdiXHgyMmtleVx4MjI6XHgyMmxvZ2dlZF9pblx4MjIsXHgyMnZhbHVlXHgyMjpceDIyMFx4MjJceDdkXHg1ZFx4N2QsXHg3Ylx4MjJzZXJ2aWNlXHgyMjpceDIyRUNBVENIRVJceDIyLFx4MjJwYXJhbXNceDIyOlx4NWJceDdiXHgyMmtleVx4MjI6XHgyMmNsaWVudC52ZXJzaW9uXHgyMixceDIydmFsdWVceDIyOlx4MjIyLjIwMjYwNzI0XHgyMlx4N2QsXHg3Ylx4MjJrZXlceDIyOlx4MjJjbGllbnQubmFtZVx4MjIsXHgyMnZhbHVlXHgyMjpceDIyV0VCX0VNQkVEREVEX1BMQVlFUlx4MjJceDdkXHg1ZFx4N2RceDVkLFx4MjJyZXNwb25zZUlkXHgyMjpceDIySWhNSWg5bUVfWUx5bFFNVmlzRjdBQjFJWGlqYlx4MjIsXHgyMndlYlJlc3BvbnNlQ29udGV4dEV4dGVuc2lvbkRhdGFceDIyOlx4N2JceDIyaGFzRGVjb3JhdGVkXHgyMjp0cnVlXHg3ZFx4N2QsXHgyMmNoYWxsZW5nZVx4MjI6XHgyMmFceDNkNlxcdTAwMjZhMlx4M2QxMFxcdTAwMjZjXHgzZDE3ODUxMjY2NDZcXHUwMDI2ZFx4M2Q1NlxcdTAwMjZ0XHgzZDIxNjAwXFx1MDAyNmMxYVx4M2QxXFx1MDAyNmM2YVx4M2QxXFx1MDAyNmM2Ylx4M2QxXFx1MDAyNmhoXHgzZFY1eXlCcnF2RTNnZFlRNTJUdklnVF9pZkV0aW1YOE4tdWlFR2VDbTVnMDRceDIyLFx4MjJiZ0NoYWxsZW5nZVx4MjI6XHg3Ylx4MjJpbnRlcnByZXRlclVybFx4MjI6XHg3Ylx4MjJwcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWVceDIyOlx4MjJcL1wvd3d3Lmdvb2dsZS5jb21cL2pzXC90aFwvYjhxWHJGQXU5UEhWckdxTVppMm5xS205VFVOUHJyekVoNDBQQWwtNm9Wby5qc1x4MjJceDdkLFx4MjJpbnRlcnByZXRlckhhc2hceDIyOlx4MjJiOHFYckZBdTlQSFZyR3FNWmkybnFLbTlUVU5QcnJ6RWg0MFBBbC02b1ZvXHgyMixceDIycHJvZ3JhbVx4MjI6XHgyMlJydnNDaHlrekJzZGlrXC9Oc2VKKzc4WFFkMGtpU05rZDBEelJNYklYcnllVmxDc04yWlR6RFFHVFE2d3dsSEZ4UWY3RThpT3dGN1M3RGZNRDBTOVwvN0hnVFFcL2lia01KNGlrN1wvYXBJQ214NUdvbmZXc1N6OUd3cWV5cmlzZjRZNktHZjhhUEluc2JSZ3poWm9PM05aMVRyUCt2djNLNGRMODA0U3ZST0daV2ZCQ1I1a2N0ZG9tUjlpZUFRSjRST2k3czR0ZnJkbmJId0xRN0NaZ1lnQktNYVRVMzhtT29cL2JONGF6VitoYzVcLzJ0Q2hmQTlPbWt2aVJtK0w3eDJObUs5a2N5XC9MeVo2RHI0QjdNR0VpQ0IycVhkaTRsdVV4cmFaZHVQXC90TnBvVlFuSlY1b2NwK2w2UW5zOW4rbzVTaTRBTDBNUDA4NU5WN3lpaVBMQTVoSDJ0XC9JbkFKaWxpKzYySXl1UVwvbFNGVDlNMUtlbDlrWWl6NEJ0bENldXRGczNLNE9zWmZ6aFJkYnJFc2Q0aWVZRFFnOGhUZ3hPcHJRb05LRmo5eUxmRmVZU0tzTkl2U3dYSmhrK3YyWjdXMTlJZDFvRTRZQ0p4XC9sNmpTWXlsWUxMdW5UNjMrMDQ5dkJoZ0dFYXp3Z29yRkZXVENBdVwvanpiT3k4RFFzV0FUMnFUOWdwcUFlS1VZZUlMU2pJb3NBNUFlVk90WThCbGduRkVaTnIwR29VMVlXVjZBZWdtcFYxRWY5Q1Vzb0hQem9qZTgwTUtVak15MHB4dEdVS0szU3Y0RzlKclhINWFubGNOSWNvOElCXC9HdHVqM1pIc1RBdWowYm5ZNVBVN2Z3ZFRDMStoXC9JVVkxUDRvNlA1a1Z5N1ZEMVZWdXJVZSt3am4rYXNWaTlkazJQZ2JablRSdXJjc1lZR2x3ZWxSZm5iSnRodEt5RjV1RDBDZkxLM09hXC9xbE02cnFTVmFBSXFXQVRJeE1cL2x6S0N6UTdVcElcL1VyMnRXZVV5Rnd5VU1uSStqcmhxOXVkVnpLR0NTMjFYSFZqd0llcVNYUzBCaHl5RjdGR0dyTHZEb3VEXC82MHh4M2xFeHRQTHVDNVRabmk4VXEweVFFaStzTjAxQWpRdWlINFd6c1ZnejFnbU0wZkwzSCt0YW95aHNWWXRNcHI1Kzk0ejhNd3ZkV2FBRzZxbHF3THIrTldnZ09ObzJkSm9tVlY0NGRnZFpHT0dpOHluZEg2REtEbHRHeUtybHowRXM1WHdlbml0WHNFV1wvbVY4V2NoMm50dTk3bWluUmhEVWZzZVY5SEdRRVdCZmUzT1d4ZDhzKzArakYzeDhIMFBnQ1NaMk9HXC9DeXJnd3VuN1RsNVI0MWt5b2xlalFGam5ITHFLYWZrYXVab1BYc2Z0MzFnYXhEcEMyWXFUUkFZWlRZVStkdVJQQzRJVzZMWHlBMTNyczNwcjRwMFNWd3ZZcm1WYVVwZ2dYTXJwbVwvSTFMcmhcL0Nma3lMaGFtd092bVFYeERldGwxY2JhRDNCNGNhYnlJVnFVQm5JK3ZnTTVwcFRFR09yREdFdVE1ZHB2WFQyeUsxVk41Qk9TVUdkVFZGeWViNGVVS2NRYUdtUWs4RllsSUJ2XC9FaXFrd2hDNDJhbDBuUVphVjNWdXhBQlFiZUJBY3ZYZ21VakF3NDJFM3QrcDNIMGtlQk50SGJTWVRZWGxiREEySmJXaDdNVnpHcXlrZ2dCU0h0dWhNK0pvandMNlhZSExPaUxsaWZyMm1NNkZxY0VPcGplMkxUaVpZMThZTmpQelJlUmhkVFlTQmVUOFl6Z0ZyWDRobDV4ekNrSmNRRm55K1R6dVM5Z2ozRFVabDhLbDc4SitIWmRcL3p6UXVWKzNlMThVR3hsSTBLdWQ5WVdwcTRUdDNuMHBlV2NYMTR5cktGUVJMSmRkTVp3ekdTYTlmNWMxVzZEM2Z3cE11WVA2N3JyWDhiQ0d6SUxyM1VFcWRlb0FDVzhTVG1taEhoRG5TZFdVT2hDcUdZeFdtM0p5NHFHRE9rZ2t2VG5OU0xobzl2OCtWbmFsNU1DSEVGSmFoKzhVcmtKSHJvb1ViQ1JkZ1laMTVmdlJmTVdkRTBYQkpLSTRJNGw2aVE4Q2puMXZDdFRXY2ZBZG1zNGNuR1JhYk5cL3FUOFpYUlVVNXdQU1hQYjVGd2l5WVZSaWJzUXNVMHhHRWgrdGp5WHJyclBzaDlFalFMOHdNTnpvU1ZxMk01c0lGR0J3VmxXSUZnNElXRk5ObVlMbW15K2gyb0QydDB5YVQ4dGVRYU95cE81WUNBTEg4WGY0VEN2TkFOSmdqczlwc0s4YWJMeHFSNzNMaDVJRWNSTkxYR0kwSlVWTlwvcVR6OHJyNnlWQTdENGNSZ1I4RFNIWEJ2d3YzOVcwVTZnQ1ZKVFdnY3JCMnRxVUlxeEZpNjJ0SDZCTHBzVWE3aWJpQ1F2T2FuelN1bTgyanJYSXZ3ZXJWajdrYXM3ZmdVd0ZMSm5ZWXRkTHQ2Um1vT3RkWjBjdmg5UXFYaXNIcDd5STBPNXRvU3NIeDFXWEcwV1RFbHhEelpQOW43eDRxdWF5QThpYUFYXC9yYzZ0ekhqQkNIa1I3anFcL2Vva3M2M3NMRHlhMTdZMExWY3lubmRKeitXQ3FKMFExZWJNVHRKZTYxd2FkOEcwdkZPNno4OEE5T2FRYjVDaXUwWngxT3E0QUp6ejVtenhIN0l3TTB1dVV1bEVXbWx6dnZHZUxxbWx4REZmS0d0Q25WNEZocHVMeGF6aTErVlVua0FYUSt4dHRiUGQ3QU00VHR3ZXZcL0x6VW5OZzA0ZnB3YXNRTWRzdkNQblBBandiK09hRXZPVTBkeHN4eGdTNnNpWm1cL05NVlRXbDZHMVVVcmdscTV0MkRxaEJObDMyTGV6aXBSWHJZaUxka1BBVUVEK2Z0WXNtcXdTQXpqZGNwdHVENHhGZkZUTm90T2MyYnp3dG5ZcE16R2R3K0ZtcytCbW1uVGQrTE5sd0ZSSnIxT1RrckJwc1V5aHRaQ0pLWHBXVmtVXC9FT25NMzQ4eHdRMlQrVjZcL3lcL05aSFFpMkd6dklPd2ttN1djMzM5OWFINXFsblAzQm80RHYxekJYeXpFQUVyUEtiR2RoYTFoRHhsZ0drMDVPRHQxNXp1TE51Y1NZRkhDK0VhVHg3dm5QSExocElvb3FFaXpJYUg1S2hVWjJUYnJZenJOSkZnZHRJNEZUaVdWVHZHM0NtbTE5aG1jR1MxdXozREkxemMwTW81S3ViT2lHOFArTElDclwvQ2ZobkROMjA1VVJqbUFmUk04RExcLzBkbWlVSCtaYjJQVkRiQUI5M1pcLzRrQUxGK0FuVFA1T1R4M3dHejZzbXFtQWpXOWJWcFYyaFBHWTNVRElZQzBheWR2bnVBRVZIUHpIeE1LQmt1bTB3elVNYnJsQXBvZ29Yb2hOT0NiT1RhTHp4V0kyM3ZPTEtNZkFmSlRcL3RFOEt5RlNKdmd1clRkb1hIV1wvaHo2YzFpMjcxeGhVTk91YklPWitxRm9wUU83ZzFcL0tybnc5bXhkME9XRzk4cWFRZ3dEMkJraFBnMmRNNTdBVkdtVFVKRExQZHc3V0d6aFNVRkVXUkpqRk5jQU5IZWRxYzBrcUp6ZCtTdzQwU3NOY2dFeXI0VnZGcW1cLzFqeHVOWk0wd2g3R1ZXS01lUFNRK1JSXC9reFN1ZGpHXC91QWhBUFY5OG9QUnNraUNKWTZhNk9Fb2VJMlA2SnU4SWtpMjFRbnVZZFFMa3hzdkd5R3duNG01NWJNQm5IZVYxbVJGckM4WmE0OWVhVTZlTlFyb3FmYlYzVzlrcmlzSmptRkM0VWZSamdVK3dXa2t4RUx4RlpESHVpVnZiVGpuM1dIK3Bqa1ozVHR2aWtLMTV5MmpaTTBrXC9Vd2VBUWdBaFZxTnlrZWVXMVwvODhkUWk1aDhsaGtmVVZsK2d2T3ZnclV5RHg4S3lOT095dUlqejhYTlowWDIyTERrNTByOGJWTEFHbitvb2FjUHhIZDVSZVVKV3N6SU9Da3V2UStrZlJmZ0o4K0MxQkptNWtudnJJdiswZ0tDeXYxV091MzY3TzI4R0Y3NFIrTVBsVWF1Wmx3ODFYVzRqMGxCN3pHcTVLMmdmdG5adFwvb2lYRExUQVRxa1hZdzM1YytZV1FJQmRCWjhTS0xiQmJnK2V5cGx5ZWU0MjZ0Mm9uaFwvbG9HZURPS3ZXd2dNZGlUTVwvcXBsVnB0alZTcnpkamVIblN5XC82Q2t6XC9nbVR3N0dTQUlIQUc1QVwvUm0zMEJzd3ZkRStcL2ZcLzlJeU5FeGF0MFFzYlRVdHN5XC9BTXY4MUhQYkJUbmhtQ1pKUWJjdUtRdWdlZkhVcTlUUUFpcldxejNoT3pSWXF5N1Nrd2NUYnpsOVhhbWNIUjJGOVRaMGdHZWpBTGlBK0ZTWU5hMVAwQXQwWWg1K3VtT1NBckEwdjdYSkFJR0FNXC96dVVRZkRPUFdEa0xRN01xdUYxWmIrb1JDcUYyZUhRT2lwc04zT1VSRkhIOTNSVVNIREs5ZGMzK3dSNXJIbWlRcVF6bXV0Z1wvc2ZGMVZLVW4xSWxBQzFCd01OUkNHVERxOUJ0WGt6WU1xcHZDY2ZLeFwvRGcwY2wxbUd3cDIyN3ZrcDJYQVZVclh6dnYxcTVCc0xqXC9Oblp4ZFpuUGFCRHpjeTFINWpZMDNQb2NybURHTHI2XC9weGNHS1BCUkp5Tjd6d3BxdlwvdmkzZWFDZ2FpNDhTdjQyZDNcL0hqK2sxdG8zZFdcLzIwbXliVk9IWkU5YldXVEZtWXNUOXZNbGJDVHRNVkVXSWF3QlE3TWdmOVpSMjNtSVhreWdIeHFNZEZnR3RhQndNR3lodEFOMUJQdlFwb2FqQ0NrTmpxSVFJcFd1SWFDYUVPWkRjVTQxVW00TFRMbE5cL1oxbVVYczROeElJRkNDS2tLM2lINm8rSEJDMVF6VmttcUZLTXhVbmx4NjZvVkZhNG1lXC9HM1hPK1JDUlZyT215YVNGVFR1K2RGVk53cm5DMWI3ekxXVHpFZGZ2OEpHY2NiTFBmK1NnNEFkcms3OEZDbEYrUEhWSGZqYlwvTXg0NThKSHVhd3lmaGI3VmFXb25uU0dEcHg4XC9aT3J4WkpPZEIzaUVBcWJUOUdIOUQ4Um1JdFBXVk5FVEJYYjNPZjhqYTlWajBhSTZKQVlqSjFcL3JqVU81MlwvdW5GZGJsanRoV1hqNEJVMW9SaThUb0VoTFkwRnlpTjM0dXltdFUrXC9ybmZGOXRyZFBzRXZRYzBaYktEeVhwTFBQQ1wvTlJTNlpwZlRJd2NpUm52UEJTV3RhUXFxSkVKUWZXMVA0a0c0blkyYThrVE9abThUWXM5bzVyMTliUUUzS3Y0ZEMwN1pqUXZzRDE2WEhtSU5rdWhOQ1Uyd0h6ZjNLS0l1eGJwK08yWEJOSFQ2MXk3Vnkybm9jSTZcLzBqYmFhN3RQeU9GM2tIMjVqV0NKZHpwdUlWMmxyQVAxZE1MN0U5MFlwMklQSXNoMGxsRGxOR1VMUjd1aHBSTis2NDBNODJyeXFvQmxkdXNBdXhHSE0rMFFsUUJRaU9nREFLMXpqWmRFU3FGZFZtcGFDc1RDaDZONTBmR0lNcm8wVnlkVDRHYzFkRlVUMkM0bmo4MDFybG1HZnE5eXAwU1laTnlhT3VRN01yWjkwcFlhdUNrTmRnQ3hlUTVpNHUwS09yUDJZZ0dzRkRkNE9randHd0tLbk1UNUVteWVXbDhtSGU4M2dlcWIxdW4yUkJOSm5KNUJsb3BVR29RZUx3RnRJVTV0amVaZ1lWTnFrelY5SEpnQ3lYS2t4RW40VmJhN3dXNmhJYmlwS1RKTUFkbVVEUFwvNkZaWlo0Qnk2d3NrWDFMUU9kNlpwRVA0eGhoTDQ2UFZTcG9BeTgyaXRcL3Zadnp3TVdwdTd1cDErSWk4OVlaOHR5MU9zMWZ5cTJpRzJOMGYzcEZLRklzR2pJNGNnT1Rrb044SkFhZ2orSnZkdGI3Q3lOZ1g0YkZ5RGNvcUpOeDgweVcrVlRPUGwrOCs0OXhMb0dJWm5JdGxtcVwvZlhrU21JdTBpY3ZQSlwvcHBRNE9MSGNvZzAwZlByQ0xWOHIrR1BtK3JWeFNFdzNUWlpPTzJIaHZyV1dYaStSY2R3VlwvRkZZbUNwRjVHK0YyZDZvTUwzT0VBZ3lXSHRSRkNucnZUblZoa0dXbXJDUFJlXC9pMHJacmlWelg0eUd5R29ibnJod1BjR3g4MktWUDV4QzFYcGYyRGpMd3M4akE2R1RzcG95SDliMGJrQzRMY0xVYW1UdTA1YUpIVEV6ek9xVVRxZ1wvVDdUWnRqOWJjU21PeG9BZ2E0dzl3ZGFlS3R1aVMrVTVwT1dQRGFmQ1A1YjhIRU53ZDgwT1NOQmNnbDl5MGF2b2JoT2lKb3FXb3o5QkRKSWhENzhOOFlBUFREd3c2cVZIVEljMnRYdnQrOGp3aDBXK3BnT1FBem5LcTh2aUtGYnJvUXNyaHU2Y2JvYkhtSEN5K05HV20ybmdXUVRVZ3ZEeGJmazVtWDY5OStoY2ZHRTBXQUpoMTdBOHZsZGxLMFVNbUJhSERJR1pwM2NPcWdZK054dkw3V0lkQnh3QmsxcTdWUU5NUlNMTk91Vm5NQk15eDdcLyt1RmJrd2tocXJHdUZGUTJ2Q1EwaXRJY2IyWnJnV3B1ZU43U3NuRVpScmJyUFhhdmRvaDhWRzhPK1htZ1dhTXVVd3Nmd0JHZHF5c3dseVdoNlordE5wUThcL3dLcVBoMHA1ZGdtU2VaVVlvUDZHQXV0RWIwMjhUSUxDeGQzNE5uaU44ZkJHSUFqTjFOZDRETFdGMzVTMm1zaGRpaEplbmhsZXd2a2t4SkVBQVFnRlZzRU1VSmR6Q1JKTVBaVmowbkw5d3NBUTdIQ2xGbUdGb1Mzb3pDR01aK2Zwc2wyd0h3UkUyd01zNmszZDhNSFp5Wms0c1p6QnV6TkxCRHdyaGtEXC80SkpLMFJZMWpxU1c1UHdzQThJdHgrczNOUUQwUW4wSnU2clgzaEFFTXMwbXVjeHM1UkFRT2FZdWVcL2g1TUV2VUtXcXZCOFwvYzQ0eVd5bFZhNVF1cFwvS3hFbUlcL1BvdWdva3NSYnFGY0NXMHI4MkVRVW9VajVTOHRlV2hvOHpoc05kWmxUZDZsVzUza0VndFErcFwvelVPRVRaNDF1MWNQWEVzVk9tUE93aEhpNmlHT2dMak14bzJVSkJjWjJEa3AyVFJqV1VmSnhXWjFNMUtNdGE5WE9lQ2xsMnV6RUNNSkpVenRYS1N2UkdFT3U0OGdVUGU2U0ZXeTlCRHora3ZjcWRiUmQxVER6aFZDa1wvaEp4bHRHVVV1bjFNTkg5OTVVSGM1TFN3N1pBSVN2MXEzb3BsSDVLMG5taTkrVU44YzdvQVVHYUg2R1lXeWs1empucGswYzZ0ZTRGOVlCaHZOVEFBcktJdzdESG5TS2JWcnpvYUNMSHdPcmkxZ0UrNFdCMmxRVDJuT29iQzN1Q3JmOEpLNnVlSURCQ1krdGxoU0J6OXhYd2ZZdWR3bkNROWloVDloVlhxRXBTSGZ2d1NcL3NkUktNeDdzc2lcL1AxM0Q4S1RDNjJWcnA5NVJUVTJLZmZjUWxNYkpObTdCYnZQZWZISmt1N3NaNHVSTXhpQTU3TnF0b0Y5ZW1kaytlakx0N0NhbVZcL3BtRktJblFcLzZsQlNxSm9DK2RXM29DQktcL21rV3hVTUdScElpNzUweWhVNXhabEFiU1Q4elhCQXJQeFNkK2wzZlpHSDNwbFRVS00zcXVkWkU5V0Jrb3VqYmNJQ0RYUG1QZTYwRGUyd1Q5QmNUbXVCcUpnZHJoMUpqMlp4bkxtWFg2WWIzVTc5S2hSa2RXMkZpOVlyMmgyXC80Nk5oZWtyVTZESkFubXZLRllzTDY2YzZ4Q3RPSWtmQTdHelVtWis4VmhicGlkWExOZ2lcL2t6RjFEdFcyVzhWaXZETWZCUElrZ3EyZXdWVWhKNlwvSTFycVc1dlVRODVQeUtiNkdKSDhZVGc3QXN2WTF6Vmxic2QxaDRYYjFaTTJQVEhkeG1tOE5mdGQ1SDlvamRNeEdBU2R0TzloSUtCcFNlTnFQdDFsUHN4KzVxYVd5bzAydzhzdjFWSFJlN09hNUUwVzQwOEtXWHdcL1BcL3NkbndlTm1xWWFyQWdWTklNVmU5WU5BV2d4Q2tMVjZaK3VcL0UzMVdVOFdRQTM0SXFQOW4wQStCcGJGVjdPNXZHZmxOQ1ZpbE9oRWRiUEczK0FOc0pHdWFnMFpOZmdIcXlxSFRRSGd6amkySmZxakNMejBxaUJYdDhNYVhZTjNYS1R6TnBGODVDc1NRZGlWRGlUR2FcL0VNSTRaMllvbmFITXFKRDN0WlNhUHd4Y1pJY0pVM3BVaFc3WnlYQTRIOXVzRVVVQ01rODU0YjJBVkJHZFdJTzhpNEs4dGRmUHNDQTBRQkoxRE0rYVZTc2dhTlwvWDN5NGV3RGVVaWNNdmhnK000Mm9oZ0FyS3dMVkVBaE00TFVGS1l6Mm9KQ2pOakY3NGVtVlFRSXNYWUxCVUlGQTFvejhPQnVma2RNdlwvdmN1NTRMeUVMRVJOQ0JlUDRDYlhiT0sxdG5GZE0zdkdwVEltcXp1YWJBeGZlVnBZSjV3TVRIbm42NzRXdk5OczBYc2d3OUtlTUx6NDhIcHREUTI3dllHSk5rOUFxVUorRUFlV0pKbkhaeFZJRGJnSzk5UXZPWXF5anRQXC8zWTdXR3ZSYUR1VVQrSjN2Q2pyUmhlTERnTnk2WGtLOFUwUzhFSThnXC94VDQyQXhCRGROMTl0K0paYzhkd2VaQWZ4OTZERjRUZjV5R2FDMHBOZTVvTllcL2h5eFF3YitHNmtkaDhGZVVrXC9ROU5jTk5QWkZlUWtPWEhKcURoUjd4MGJQaGVjZEZvZHpOTkNZMmhjMXhqR1dBMlpINUNiZGVoTmNBYUVmYXJkeThGVElDODE3a3hJUURxRGFFSEJuWmd2TTVjT2NBZ0NHNFM3ZFwvT3dRUDdScDVJb1wvUnczWjJxYVp5VWhTUjh5cnJ2VGlEdDRwSjNxc25ZMTBJZ2tFNkJaVzJqS1U2UGlqbW1DYXZLUFhSZDlpN05DaXlaN3FIOTQ0STBySmVRMzJkVWFLSmZRUGRkaG5pQmdTOUlDN1RRQ0FJcmF1UFErUGhXSjVYZWJ5WjZiblBhNDlDdWNJN29WNFdTRkd3RFF6MEhRbmVkNmtlMEVJVEZsODFIekt6MnZSYjVSeXhDaU9FRUxtV09SYmpwaGx0bXV6d012VVN5a1F1bFwvSmlqc0lRRnJLREFRdXBqd3R2N3BSdFUwbm9PbTcxdEJBWUFveGFGUm5DSjBNcFRuaGd5enF2MllpbDZac3FibEJ1SlJDZHpvMFVrVytJeDRhZUFFckxSYXFVbFVRMmVCOEVzV2xjSDRJN1Y5VlwvQ0RaclhjSk9rSUlaQ1V3K1FWMHo3VDNwM0lDd1VkUCtvMTZ5cnJadXk3bUV5RmYzMVVhWkFpcWVFWEZibVJmT3JBbVpBNzRWNER2alNyOWJhd01EbFhtTUlpbVwvQlwvQWFTa3lORTAySEZxbnMzaDZEMFpWQ014dEZpYU5NaGVrWUI1cVZUM2ZsU0prK0NPK2RRdm9pbUJjU2FNS1UraTFrQWdmN2tlTTk5dmZaUEdFM00zOHJXU3FNQkFKbk01bFlNeVoxV0IwdVhZekRIRE1sZFpyaG12UmljOW9LMGVJTjRHTXhXUVBJQmNhVmZ0c3p3d3QxcHZMTUdFc0JiZjg3ZGJZam9NQ2FWSExcL0x3SU9RbUZqZFdFY3B6NzdqdERocXBlVXBFVFhxa3BwYTljNVZSRGRKU2t4aTE1U3Y1QXhhTFZtTkFqblZCOHplOE9Zc0xOakNcL3JMd29KWnJGeGFVZnd5VktuRzJPYzc4WFdtR1N3ZUIrNUZ1cllCXC9xK3I3bHVZbFBIdllIOTM2MXA1eThxSnFETEdnbSt1M2c5RklKSVAxTjl2clkwTjA0M3JNK1RYXC9jaFwvT2YxMGNtM2I5VDdHTEo1c09qQUlVdFZQMHYxKzNSVldhXC95WHMwK1lxSUVtcnJZRkJmUnNHVDZ1TnJGdDZoeVZzZTFtZUk1OXhuVzM1QTJmQ2pIaWdleTBKcDhFNDRuSHpEb1B2OGJ1UlpmQTZGYU5MbmlEMjhsU2dhNUhScnMxaFdIMlZUR2xoalBWaTliZFE0RFFXZnJTT2lIOFJYT0cyMDNzRm1wb2pSZ3A0S3MzVEtyM1hlVHgyWTJLejNkOE1NV3cwT3IzUzhZSlBNbE9PWUR2U2crTndHb2EwanZUTlBESHBsRFRWcHRsYm5lSUd3U2lUVFhBTTF3SWZEMzRaampDdkpGYUZMb0N4TVd6WDZcL3BPZDJNVkI2WHVnSXVKcDBpUUpzd0xsRkNseW1HaUtUTXgzaW9ZTmNEc3plYmRZZW5MUHRwOW5JUWNPT2ZZT3pzUE9oZGlieiszMUFxdDNPMENmSitUWlN3STEzSlhkVXNzSFAwVkNCK3haS1wvUTVuMzMweENvXC9DUk9ld2tjQkU3RU1WMUtVcjVtNEtMbHI3WDBMOW5aM3VOSmE3bm9ncGo3TTZZVkRaZmJKZ1JZVG9rNFFFekM4bk54eTlIQm85bzlwbnlmOUM2Z2VIdVJxanBHWkpnaFBBYzBkSmczMkdrR3M2YTdVdE9ZTUNmaXI2enBoMG93OG9IcWpWeEk0VjdDTFdjeDNkZmlqMmlIRHJENUd4M2VlaWlCVWxxRStBMTA0RUhnRWFKV29jZnhjbXhzRTArbm45dnJaeWE1UWlYbStkWnN6WlJEeklROUVSelJtY0hONXJcL1pld2hYRTZRR3RYelJYK2pacTcxbW0rM01YOEQxZjFaZXQwSldqNnIwWjZMa1NRT2tOekRpNThJMUlOcko4VXdGclFvbUVoRFN1RHZwaHhHMlQ4MWU2cE9OZGZHcFJLeFdYQVRxK2s4czNpUnpcL1lYUWVaSUVrVTE3K1N3dEZLTnJkMG1LUkx3d3licjlNRk15bnBxNFcxVmtNMHc4MlNpRnBub2hlMERJZnlWRmt1Z3BrbVBZYkozMlNZZDMxYkJGWHVIbzhEUkpRSWZmVnVIUE9RWVJYTG1pRVZUS1JqOTRsUTc5RGpkUkhYS1dPR3IyTUVRRTVtbGMzM3JvT2xMc2UrNjJMN1RmeElSZmE0M3pjT0J4dUd2blwvZjNHN2lxNXdueEZjK2ZSSjVXTGFrR0JlcUhPSjFGcFRPM2pEMUZVdTRFS2wyYmtTWUJHNEdzYmxPTGQ0OGtQWUJPcHdUbmppOXRESTlNSkJma2xyYU9FRlJIVk9JRzlwckFtelBGU2NTOFE3Qk5kN0FBTzJlVitFNzNPdkZUMUtERm44MjJYc1JpMGtwTWQ3T1ZZeDRjVjdwUThiakJNcFZZZXZVWlRlblltZFZIbmpXKzZGTENFWDIrZGtlRlZVUHRTdkhnNHZVRWVwbUhiNzFZTjNQNm9zV2JwcDZ0aktiUEQ1VFJcL0RYY1BtUFhiVFBsNDBZdlNiTG04SGJRZzBSdkVyMDNRWFZGS0NiRWZDeThOajFBYlVIQ3JvSnhrVG5vQVRYNTB0Wk1EOFwvc2ZrZ3N2MEttQjQxWmJcL3FnNENJcU8zRDdyRGJYbkJHYmdKM0c2cWtocTJHM2djV05FeklKNjRVUDlHN0ZhTVp4TjJXeis1aVhTcUNyeVwvQ3RLRVwvTHJFRHhUTzBcL21iV3FIRW9DZWI5UExXb2V5WVY3SGZwYmdIc0RpODBvT2VqVVljb0NHRnNlQmR3VThQbUV2TlR4eWJFXC90bU1DWjczZ3drS0tQb3FSYTN6cjJZaVBaZEZNXC9OT0wybStCWUxqS3dzZ3NzQ2d2enRQTmFYelwvZDJmMU84THFHSFdJY3ZpQ0dFZ2JveFI5aU1vaTNSbUtlSlh5SDZMdHhlTVwvVUo1STBNMTFyNHRuTXJES3cxN0lxTWZIXC9LeHBIckc5Wk9KVFdpblpRU3JqY29jMzFwZkZvVkFCOFFSTnlkcEx3b1JJQ1ZUTkdYekpaU2dvQTRTaGQ0U1pReEkza2Z6UWliZ2Z1MHRPWVBLVnpTZ1JsY29ZK1dqYnlWR2xFWTZaXC9TN1N0ZFQ4OVwvM1FtXC9IdjEzUERJWjRoaW9DcXJwajZNZUtabGVraUt0RkZGNkZnRWdCZlhmcEZWZmJ2NURieUJBSmJNV0JVMWdHUVdLU3hHMVlJVVFPVHJCdHlGMFd4ajZzcE90OXdQTkw2OWR2V0pLSm5aYm01YjJOKzlSWEJIOXZ2eXFsXC9DYkdxSEUxc0hKWXB0RE9rUEd3YWF0S244TDBqTGhUcmtKeFlud0h1NklIeU16RHd3ODhzTkpTSlFrMHY2YlNLSjlXa1wvcHljV3loVThPRm4xRlwvRmV2U1Q3MjN3QXdSTDNZd2I4bjhUK2xoczNUT0pEZEd4cG41Q3VLUXZrS3NBaUkxOG9lMzFkNm94a0xCSW5aT0xBU2RKaDVXc21mdVwvNlJPOXY3ZEIyNHB5NkNDT0hvQzNWUjBSMnhWKzFpOGdJQTBybnVnZTA1RUtQMG43VWtZT252R1FSRlwvRU8wdU1rZkRYUkpzMWFSeWphZ0lsUkZKS0JONE1lN05yTnlkcFVOU0cwVVBMNWRqWlZEd0tUejhzc0lEV0VUYW4yTm83YW4wWGpuQVRvXC9hRmthbTNcL2FERTg0RzZVMU9oWm82VVYzSDlPUmlvVGpMZitXMWU4a2RZelJEUFhGNm50b3M4RThmZFRHc0xibHdLenE0YmlYdFpnMXc2Y0JPa1pSRGQzajg1bTkzTVk1SzlXXC9zU1d6UGRxY1laaDhtQ1llanZDbU1Eb21zYWZDaTFkeThmRndyeDZoWFFtKzJWZkJNdGJNcDdKMVYwbWtHSWdsbFkrck01bFM2eHJjNE1QRXhxS0ZsdDN2cVZGbjZLTEZXdGZud245SVk1ZGtYVnJTTzhrYVl0ZlBScDNJY0lWRXJNQ2FiNUw4NkMzXC9qVHVPeUxHTlhoUlhqWjZcL3BYdGcyZGJ2VjZHZENyYytNM3RMV3BlVjlUZkRQamtHZ2tWa3JEZ1FUaDZGMlwvbHlGdng5dktxaVRIWHJ2clMrXC9UTWFnODhESG8yVW9SdjQrMGpUUCtoYVVvSU1jOFM4XC94ZENBQmd0U2k0MXJqYkhMMmwwQVNjT2pnaUQ4dVdReTNYZmNqUHVINGhuYzJmdXdRbGFIbEg2bnNubmpJc2pjVkR1NURcL1c0N1BRek5kd2tIdW9TdG5ZYmRqaktBcWtUcWxjV0xxUldqMkVlYUt4Y2FGeDk4YXlHUnFyS09ORmQzdG9Od0RwclRIblVKY1I5ekJNdVNRSk9GV0tZRFN6T05PbEZDQUxWbzVqUlwvY3NXMFdBRHYzaVpcL2h6VUVDcStjbFFmeHRubEJSN0VNc2J5Z1RhXC9jZ0dwbVhSSXFQV0F4bk4wSWo4VE5HVkw3WDVQMlBCYVwvQkZmNDJsXC9HSTdmSVFOcGJRNG0reHl2SzQ1bldCSlNcLzlPdVUyMmQzclpYS1l3NUQ3U0FDbHJtcVwvS0lGY200TGR3ZEZPUm55ZGF5cjJ4K1JxaVdOaWFSd3VlT3ZNZlBsMHp6Rml4TjFta2dYYlwvRlpzRlAzU2pWR1ZydXhIckNJKzlTTzBFSFJwXC9kWmJOalVKRm9kYzhtUXF1NVVFcmEyT3FKR3lScUE3TFZyOEt2RWRcLzY0aFZFMDNIQWV5alYrSjY2Vm9JbysxblA4VG04UDdiYlc3eGZqWW1hUkYwZlFBNFlzckhGOFRsN0I1MFJXN0RCcU9CT0xIaEMxSXF2R0xEaXVqMWhGelViWkxQbGlqUjFtTyt0RjJVclRadnd3b2FHQ3lCVzVzZW93emwrdzQ0VGlPQVZ5dXNMSGM1blVVanZTTDFmZXEyQ05wanVrZUphbWREQkxBUStpQjM2ZGdyT0VZV2V1S084NExRd0JWTEVicm9laTVjYllmXC83NENra0RzR1Y5NkZCZEFuUWtRamwrcDVoc3lYUXJxRDlNNkJqbkUzOUFmMXV1aHdnMFBQOTdLejh5eDA1SWxyek1NSkEraHF4Mzg5ZW5aYnJOVm5GK2pGdmZWYkkrXC81YTl5TFVOYSt4ZFhmZUlYN2Y5bU1QTTRIeEgzMUZZeUpmSkxvTzRjdU1hYzhhc05IUU9DMmVDMWdibHV4ZG4wZnJmc3ZUMlppQU1seTh6Q2IyZEVcLzNBeE92SDA0c1NmTDBvYW5NYitGNUd5Y2wyamNmdzVvTkpHVlwvQVdzV2JFSnFJb2VnU05McnZRM2VidmRZTUtzSlM0S045Qll3dmU0WUliWkhNcjdSMmlTTFlvaUNtaFhZNkgrSEFzZmZDNXRiM0EzRUJ6UzlTOURLNWdhY1VJd0R4YVBQemwzM3ZvNUQ0Uk5PZTV0UVZlOFdmcUpld3RnQU9xMHBBcFprZzNWU0dLTHR4N1VlNzd5bFwvcHVoVmkwS2JGNXRWVnJ4OWVtOElmbDJwaHZaTXc3TVV5eDg0bU5Jc1BUb05VNzM4ZXFaZFFWckYxVWRmK2xneHZuMkE1Y042U2dxbVR6ckpkZjFMUTdmTFRnYUJvb3Z3WkRhNTBmQ2dESmNqNHplbVE4MlZwdDlVb3JzWVNpQW1zUVh5bUdBN3RPVUpRMElCcmFlZUJha0pNVThXQ2ZEc2JDTGRzYitMT1dXQmVaa0F4MDNvdlJzekpSUmtrXC90TnRnendETG4wVUk1S3VTOTdXM0xvUzk3aXlcL1VjQ0V1ZzBxNTZnemk5bkxUQXdsOTVKS1FLN1poTlwvMXdFbUdFQWZTWFhtbWJyS3NVMzFHY0FueHhsOFFLSmNqWjE5czZCRUJCMzVqeEs5b2xYTDhLS3VadStGcXdJVVFDdkxtZ1F3S1JLanVSMHNHYUZJWnNlMVpuOXRrWVA5enpwb0hGWWIwQU1pbnd2bWdrOFJEZFU2RmIwcUVZaTB1cERcLzE0dGZoSU9XRTJGQ1VWY0NuMnJyUldlWnFVSnczSGc4NXJqYnIzbDNkQzFKZnBmMVVrWFwvWlEwTW53dXJTSVhrREM0SzNlTGM1K1Jpc0JDM0RIODdzajFrYlVJcnJFOGtMK2FsaVwvVmZLM1FHd1pkVW9uRG5GYU1MclFIXC8wUE5ZWFwvRlM2WDFsTjF2Mm5jQWVlNWtabWxzbitUWnpPUW40YWtPcEFPV3g4YWp5cllDbXQrU0ZZdGJpU0ZabDNvM3QxY21GWHFHZUkrOVA1RTlpWlV3Q3RYVlV6TDh5SThoNFBmU3JKR2o2Z3FicEJ2aHAySFwvYWVFV2V4eVZNR1EzTEhSNVJcL2ZlUVR4Z3JSMWtTcEh3RDBtVFhoaEVsa2lsYVRCQWc2VWJleXNlZmpRZnNEQzVFVUJQb1lDb3Fkb3Y3SHAzakxiZzVPK2U0QUorWjBoSGVCelAxZng3bmIrOWlnMHpHY0VrU0dkc0ZjV2UxS2NBU0NFSDVUQU5hRFF1ZXFETlNIeFFkZCtBRTFcL2xUZ2JPSTYzUkdmeE9yeU1HdTlkR21NRlRqb2xtZnltRUhMdFg4dEh0RnJRZ280QzN5d29lWmgzOHJ2YmRsRFdNQjlpekdMbXQxeTl3aUFzMmF0VTUxTlFKNEYySHFkcWtoZ1wvQWRYV2huNklMQTFpSm5RU2hQUldMQnNHOXNQZjJZellHSGtsR1NuMnhLakVrMHBVTFJKNEVjU2NDSW9BSmlLQmhFNHRzU1R3NVwvcllMeEl1a3V4Um5SMlpGSVZaeXNTY3RLY2psZmNCTjFQTXdidnVOS2J2XC9ZRVwvTmdWTDV6bjByU1BvOG50Wm53TWtcL0hBbjM4MnVWVFwvdytQaU9wbVNIUzdRY0QwR2UxcGx5Znk5WSt4VVJxSlBHU213dFZWVzFKOEhhakN5YkZMd290UUtVa0I0VHg5blBsalRZblVNUlp2TFRWN1Z1OG5GRWVpRWR1b0ZqejBHSW1RYU5HdnlWWnFGTGR2QTUxMDVocVNRQ2VjZm5PN3hKMFJkMEdQdVhTNE5CbE0zeFVOczJGN1c2ZEpRVVBUQ3p4OEkyR3J6SHZsREZ4aG0weXJkVlJ3SWFzK3pVQWlHUk04UWVicjV0MHVwTVJQTkxRcVluTTJMaGJYZ0ZIQStCNGp2RytLVTVRS2xzc29keXFsNVhXT3NHZkgyV3VwZnNyWDZxNCtCQStZcVR4NjVaRDZvcFhKTGFmS0k0S3RiczBraW1vWlFVU2p1MW4zTDlYZjhYaHN5dVlYQmNMMnpJMzlYWTZTU3VtVTJhZDVuNVJraVdTVFp1QWd3R202ZUtVMTk0ZUpsRGZFaTFUeE5kZ3BpRXc1dXIyZVkzVzlkUnZvR2lIalowNk12S1J5a2RTM3NLeEJtaTBSOVBMRzF6VTJudGNVZm00Mkl5QlVrbGZZYXVuU0xCVEdib0xUS2U4elhCS0V4MTl2K1VWUXYySUNCXC9xdWFXdTY4YTZram1HTm5yTWdpV0lkSFwvWnlIbHVLT2FWS1FsUWFMbHdDaE1ScW1TOFdPN0JGOWtVQTRxTWFwTUF4TWN3Mk5ocVhzQVpwMjBLZFwvTXJvWWZaeThkRWdhUGt1OUl2WDE2MnJDUHE1VHpMMGU0bVdzMm50V0kweUVGRHgzQ3RRWjQxOTdBakcySFhscG5ObHh6cU1WNjlRclRyT2dCaDdGbUNxaTNoQlFQNGdOMklnZXBcL282bjdsbmhxbWJabnpjcXQzUWZ1TXJOSzY1ZHFcL3RCdGdPQlVOZEhieXluWDhcL2VhQW92N3Jwb0hWeDdVUjdNc0tNV1hVanlNY2Y0Z1ZSdVM1dytVNWlvcmdrZFlMZDBZWms4aFRlNEE0S2JsK1RnK21NMmNhQ2FuNU12NzVOajdxS2tLWFcwYzFBbFIzd3A1b2lWanpjREN2U1BsMENWK0Z3MGxWcnRuMGtWajh1KzVkeks4c2lVeU1pM1B5dGRxWFwvZDVrZFpyU1wvbEZndVRDbnY2RzVGTWN2eEhJbnpxWlVXV1djOTFVejJxMUFQcEpNbzFqR2dWM1BiUXFYT2ZTVjY4QkxVU05kMVc5T3lsK3ZHR09xbWh1Y1l5QnNhaUhPTDdCV0ZqVmRrMDVJZUN6MGRzQ1JZc1lBcjR4UXVzSFdzRXVMUkFQVjExYWFzWGxGakF3M2xKTmlZbCtqM0wwRGlVamU2RVQ0Skk0Mk9ibVlTUVBjekViNVJYN2lxNytWSkV4UUp2TTJSUDZ5dkt0OWt0cTRLbXROZFk3bDVXdGJKMzhCcXhvUHVSeXZRM1FKTFBJSnBxbnBvNjhSRlwvOG1TODhLVEhTNEhHU3lkelpUSnFUSjVZZHg3dXBrN2NYYzFSSklpSlRvYmhmMU5oTlpEMkFcL21NRnlzUmVvZWNoaGQ0NzFwWnpjaWZLZjZHSE82YjJPdVlwTDB4ZE8xTGY3ZjI0YmNMVlRVS2ZmU3dGUUk1QTFrWDRKR0pQaENaTStTeFhKaUdoR1Y5MUN3aHFuSlgzeG5QbUFXdU8zTHR6UDBRcjRcL3FYSmRmalFVQWN6d0RaWVFkZGl0VkplclhNU0Fxc0tEZHhCUDRTREl0RWs1ZzdQYmtPbFhLMEpmS0xQb3ljTWh1YXB0QWs0QUpHcUx4MStzVFwva2k1S01vT1JCM25JR2dHaUFPTG9qUVF2MklPZksrbmh0c0RIUHJldnVYQURUQVVvNHJZV0l3VXdsbG1xd056UGlTTHltbHBPWllcL1RWempZRlQ2OVwveG5cL3ZLS1Z3ZXlXZ3Fidm1sSzMrTTVjZm1mOVFPTWRKeStidVRpSXJiYUFHcktLYjJ4ZHlPVkx1TEdvM1pzSU1jbHlQK3RlUldmSjdMRkJlb2ZINXFYRHllMW0zNjBKT0hzRWtKMVhDNElkN05LTUlVa2doZkJQOUllN2VFTzBNbXNFREExY2U3aWVJbnBkSzhCeFQ3RjdoUmphUGJoQ3U2Z25wTXptM2hKOGYzZU1vT25tYk5PQ2lrdzV0T0pBTGFNRE5PaXByZ0dlQ09pbjcwNU5YcERySlhJUlVhOXRKRzdwNHZOYWRPV1FNRTRqYktpMEtrVllvMWpWR0tWNFwvaDRqazkxUThhXC8zbEphejFOMEtyVTB6MDA1QlBkdU43YTE4REhWUG14a1RIaWR2Wm43UXNYZTA3WW1zVyt2OEdVUHlCRTBnbml5ZjJxVDhlaW9oQjU2MlwvWWtPZDlKd25oOVVGRjBkbFZKZnhiUk5JVTdmWWFQclVqRHllMVV3V0d1NzdGcWpPN1RtSHVZWFJkbnhyM1h5WVwvV2ZzbE9vb3FROERJeThGRWtyQ0hRdktmWUpTcEtVc0VpWTlHdHFFNUg4S2hnTDlIYWEwM2szcHNOaDVRZDVKVXlpSm9pK3ZCN0lzdElWVytzZHd3OVZ5UGVcL0lmS2hadHA0TDBYVWQ3ZGpyN01XNDljU1NOSlpvdUdBQU5hdHFYZDh0VUd5R1FmRFwvOUsraXNUd2E4ZTJJZkxVcWdZd1crQStVNmVRVmRBRnJCcjhtXC92TWZ3YXMwUE9KY1NqRndFSjZ3dWN0R25GaWhJVHlob1g1aVgrQzJVZ3pvM0xsWGR0MmYydEZ5RXBoNFFKc1JsUHJmY2UzNXJIWStIUDlORklaNWYrUktIdnQ5RFByK3MrUm40YlwvT1pIZ0xjeThwM3R6SVZcL3dSaXl4V3I3b1l5VDJJaU9Iem1xSTQ4SXMzRGV1ckRpTWZuSWd6cE1qMjVjMnpwcDBLT0FuR0xjXC9Ea0VcL2tlOE9SUk9RTksxaFpPc3kzWmtkN2JmODZHZE12YmNuSk1VbU13YUd1NEJUMWsxbmYrN0sxaWtmQTlUVzlGQkZ4TmdQUVJMNDFmNGo5d1BCVmhNcXJtUmI3VDBBTDFsREdHUEZwayszRllmb2VGcUMyYjVmb1R2VDFKWWtjRUlKbGdsOEhIMWNDVEl6OUdPRWttQkMwblpkK0thZTU1dWNrMXV4eVlQT29wR0M3U1RXZlRwVTJUVWdvWllncW5WN0o0cUhKb0dwT3hBb1wvRmxIV0M1TVBialBIVGZsbThib0RPUXM4Zklub091ekNld2pFcUE1NFJPcHBJemxXYUxKOTFaam9ZcjhYSWVaNklQT1ZsVE5JUitoZEt1WklFaEV5OWlua3FJeVp0ZEJLTHhRWHVDNGNYU3RDRVB3akFHZDR5eEl1VWdTSG95d3JodTFLeEZrR1hvNmw1dVI2bE9teFVzM1dnN29EV1h1TVFjTXE1Q2ZWK2w0Zko2cjVXVjQ1UUtYK2dOeWl1QzVHcjl5RFI4M2NRdVV0aUdjbXhUK0t0cmd4ZEkyZ2pMd0NKNmFHS0t5Z2w0eWhsREM4c1hNa1RJb21wYys1TnJTYjBhTWViMUlDTlYyazNnOFR5cm01NmoxSE5xdHMyTkxzTXh5RW9JeTBFUTdCT2lJOG5iSm9hcU05MWhua29QMjBNc05nY3hSRnZRbW5ORnV3SEhjRXlhMHBsYitRQ1UxY0hnU2JGbnhVXC94elJLM3pBVFwvR1RiUVNzYVwvaWV0cEwxdk9lT0FTOVMwUmlpZ3IwcUNzU2s2aWFlaDVKZXpLWHZWOUVkVldlcWR2QXVnemd2MU9majdpUDYrMUZIM1d4a3BrZERJc3oyT28xRFZpdWx5VTF2XC9MbHAwUjBlenZDczRkeFwvQ3R1eUFRS1wvOFZkcmRBVGV3dFZ1MENNTU5DYzNwbzRZWDBKS3pLenlTMnBtS1Z2ZlZ3TU1aaFJXSFZDd3lrYzZNKzVBNXJKdGZiWm5KNDRBNm4zUHdEa1d2eGY0Q2JicWFESnBpcWxnMEZTTVwvK0k5VmZrenlySUpubFNLK0RDNlFWcXZkaU1TUlI5U2ZKSTRjanJXcVJhNVlPUnhMY1wvZnE0UGJNVDBFRWZYalVhV2h3eFI0RmdlR29tQ29LTFE0MjB0MjUxaStXemRsRDRsWlZlSVwvUk0weFh5VkJRcHNFR0FaS0MrTmFWWFNiTDRJSXFmNGpIYWpKVStJOXpsMjl0c2pRelZwWmRzYjZTeFJ0R3Fab3hwSDJWZjNWTUV0eG55NDNKb0NcLzl1UXRjNkF5ZHhocURqNWFURkkxNWp1aDlNZmloTE5SUGtaRTRcL2x6UjBSM0JJTVdQamppM1NZdHUySUUydTFuYU1XSlQ3SXNXcUZoa05mTmtMYTJJVzlBQWRzZjVOc05lZW1CVHFRb0s0QkZrTlJWUEkwekExTUNNNHVVXC9cL3pqY2l4V1psU0xlWmhYM2ZmMUZJNkk2cFdnK0lUZHVFR0pBXC8wVmwxdjV3VlRINTYzK2dSb2hqTlA4STBHNGduU3RtNituXC9SN09zY29lRlVcL1wvXC84NGUwQWdrSG5OSzlldGVLc09MNVVEMGxXSWxwTDBpanVIdkxZMW16cDVJTlwvVlM5S0JpRXJcL3BQTG04cngyMDBmcm00K1wvMFwvTnU5Wko4blFvbncrUkpKYWdERktJbFh5NldBM3dVYmRtTThKVGxIWXZvS1lGYUp5Y3QzQndIU3cyclI1Y1wvalBkQ29UMzBsd3d1S3FLeXVONnJqbno2cWtmaUloYURCUVpcL3lIUENZSnZucjRWMllnUVhTMFZyb0RPRWtxSllcL3FaT0MxazNQck1uZXEyRWxNeG0yK2l4TTRSSGp3dHprMHN0S3pWK0Jxb1d1MEIwUVlMclRKcHdRTHVNcG1BZjFPTkRvZXZRa0VFZXNWU0dkXC8rWDk0Q1BYWVNNNVR0Q1gwdHVER1Z0c1Zxc3RsRVBGdG9oSGhLdjEyOHJXZHlsRFRCcFdWUnltZ25QVGZicmxrT1V6dUVUYjVxd21xemh6bGNyQkZDT1p0VkJQaGNnT2lLNzhrQUxnc1N5elFGNDN3U1NhQUhXSEpCQnp0M2JCOWRObFVIeWt6WmNSOUFMSWVUVHR5UE9lMlE3MTBrSVNBRHc1V2RRS0tKbFBxaE1paDYyQ3B6QnlycHdmdHNxZHNyYXZhcE43ZGpBZGJha000Rnh5WVJWUm84akFTeXMzXC8rV3ppNTJHejhuVklvMUs0XC9RdklNOGR1RVhscjNYRkNPNENtVUFPWFZZYkxGdFdLd05CMVpcL2ZveE83OFh5cEViRE81cW5yQjVVZnZJS2VUenkrVDBsejhFcWc3ZUVYK0JtNGhrNGhrYUlKRVAzYk1kZTB4cWdSR1ZBeTZPajA5MzVzekkyN3pLUmpvSVpUdWhIRmFNMzBmc2hwR3A0cUI5NVdhZ3FnOEdsc2pkT3lxc3duWXBNRUtxdDBFU0RTTSt4U2xaMGRWRmlNTzkrZVRQaGprd2xzZ09DdFlPNHJtbGlsWE4yc0M3OWxDOURwMXFDR1N5MGN4TlwveTBNZFdwenRCSHh5azM5MnBNVUZVYTR2S1Y5M3VEczZoNnlPU2owdG5yMEJIOVExZ2djdXF1Tk1wUkJ4dmc5akdUV1FDa2FndG5Ba211NEJSVTZ4REZxV2dCampDU21BZXlOeitUMDYyYXVkZjd1ODlcLzA1ZHBkVVFQaFpmaFdiaVhJMjlwTTVuaTQ3WnFYYXNBaVVjdlQ3WkRLR000a3FNVDRVUnNxS09nKzVwb2tIWUVoU0o3YVc4RWw0eWxqNVNVcHVBTHk3WlJJcHdhdmd5UjljeFdUMmNabzhxTXU4UmR5MTExa3RHaGxEdExLaVI2ajRSdllaY2R4OFFqb0IrWlRhMXZcL1wvTE95K3F5V2ptOTZOdDhaZnBWVk54QzVpZENrK0VnTkkzYlZNbWN0QUNNSW1rd0JiT3BKUG5mdU9aWFBmQlZjaSttV2kyckNFRmFaNlBNN1JobVlNY0tRMCtCYVREVmpobVRHS3dLUFwvcldvMWdPdjZtdytua2c1S0R0TTR1Z0tGTHR2aDc0UGFcL1dXYTFcL2R1SzVRbW1YYjNOSkNcL0xXSzhkYnVWZWJUSThCUkw5SkNsNEJSR2ZXcW12RGRhdUtqTGRmNXFBMFhmbE1JSFwvY3lsRzBoMGY0ZFNhSGY1NVZraUVRODcxTWZFM3FUT2RJckJaNE1YNlgxUUZvSUtyRkNBMklBNVV0K2VhSTFrcnZhbkJGRFwveG9GOGNUM21RQ041VWU0aFJXK3AzTnNcL2xxRGRvUTZ4NGlucGVxZGtXcVhMbUtrR1BcL1A0cDBkbmVBMFBcL1h0Y3Jic1l1ekNqVlhIa0tVWnYxK3dVWUFja2FZZVZRVVwvaGg5dWdnemlYMFNkQWVDZ1p2VkxEUXNvRENKZlwvRExjTG9ldEh1SE42M1F5Y2dvR1J0S0NnWEx0WXZnRDZhOG5oRktDVzBXTmp6bVhVWXlPb2dLQmJYOGIzbFVCZm10VXN5U1hwdGlidVJ4YzFDSVYrdGpyUWNFZ3RvN2phbTZzYVBrZ1g3OE9FQ0RQZTdLOE8yRFUxcDdQNmlKaFFiTHlVUzJJRTFOQVVzM1hLQWZCaFNYVDJabEl2YjBMTHBJNmlPc1htNTFCNXhDVEJCTVl1UnFGT0Y0eWZ4MnRRVmdVNkQ0eDduejViSldJejFZNmNudHB3bzNkcGFrandjU0pWaHFtVjAxYVFQRUcrRlI1Z00yMURPNWJiaFZoWVBjdkpKTWFwVFVHcUd5M2hUc2dHXC83dzRVR3U5R1FDeHVvRkJ0dmtGQlNqZWxNWk5hUGxBUkxrMGdvVWxCTFR5Vm9pZXVXaUdKS3NyODRKbzdDdm1KWXFDeWlXUERsU2MwM2hWME9YajkrSXEyQnBNM1FSN0Y0QllGQ3VXaGNjTjJcL0g0NkplNjIwZFlvMktwNUNteldlQmVCUkdDR0h2ekdQSmR4N00zWk5ZYmJJUTNUMUZGK3orSHNOTzBxcTQ0OW1GYU9aK2p3NElHalZMaGRNaEhpMjFlcW1KY3lFT3NienJLZ0Z6NmxoeldXQldoZFZlbmNhdndpTzFnVCtORE1uYmpNdWpEcllhb21WWjZ5SU5sXC8rb2srdWg4cTdZdG1xMWduSUp2UVAwOGc2ckludGNJNTA0YUh5MitBSGZPUkE5VFVaR1BnNndlMU16aFwvaUprck5zaWx3UEVmM2xxaklZQmNLUkRVbFFJXC9YckRNeDVaaWtcLzlnOHNwcVwvaWdYU1FkdUJJQlpPd0h3NXVLWkViNVJLM0FLSVpVdlwvMTJySWFNTGV1U2JHV0JLZ0FrcTJpeEMxMzFPRWFFUGRncUNlUTJ3YTBtRTc4SHVnNVg0Y0VOUzhVRDNtNWxWV3JTejZMY04xQkFjbUYyVlE5YUdjMGxxUmJiaEszR2xycmVBa2tHVnU4cXFOYW5aZnRoWDBTUzc1blwvXC9qYXJGdkVZOWVrdmJBWDc2YmhPbG5MaU1VQUZRUkRcL1RIUWNrZDd5Mk5xOExqbzZYN3ZPbDJWZzR2Y08zc1NVZmxTbUJaU2VBUUd4YnB6SWp3YnJOSjBQQWZcL3ZtajdQdlJ2SlRZNkRrM2hxMnQ2N1JEckNuZHdtbkx4dlFKUElvQm9ZRHV5QWExN0gwSFBFUWdvTjR5Y083K0Z0OFBzdEgrdUozUDFoM3FHUEd5RkJxbU0rTURIaWZ3emt2OURhNXNCK2hSYXc4dm9vdktYNjMzWVRlRkNIYmlZRUdNanlRaTg1ZkhhMXFScVZwWlp3VEdIWEFrVHBVaTM3VTQ2aEw5OUFsT0E1OEh0NTU1RXZ3cTBLQXdMNVIxY1wvWXgzWkxiMVg3R29yN1BudHI5RkR1Tlp6eldhM2JnSDdHYmx4RGdKMFQ3b0tpdkFQcFVFRG1hNGZaTHROUFg3ZXI1Vk1vTmJnSGlEWXZLTFBSbDU5SWpNaHFYK2ZOMjV4UVJuKytSdHRMb2c5QldnVzJhbGFFNmc4VmtRYmlISlF3bDJSMncweFJKVWlPRDZhaTI1OFNNa0VXaHVmNFNtWFVtd1FOVzRaMFhNXC9rbzBXMW13NEdWVXdWS2Z5bVhJZ1lGR1cxY1FEdmVhaDR5YXBlS2VWSGZSeCtOT0U3Z1l3elVcLzdya0RSdXhkTzNOR2hcL200UGpUNUVmWGVPTFM2b2RmdXpaNTdGaWl6RWp6dFVybnM1dUUwOG9TT0pqVDVISlU0R0JHYkV6Ym5yeVo1bGxqN2YwckRxcjlQdjM0SXJNM3ZHbDlaRUM0WXFMb0E3RTRRcTZ4bVRvWmJhc3ZQSHBXeVMxS0tRM2hCRkpJRHBDaDBLRWREMDIrdGRcL0JsdGc3TE5uaGJ5ZUxia21nMDFNeVFRbG9NdHJ1MEczY0t6VHFzS2FrS3U0N1ZENzdpbHBJbGxRTVZpbDl1RUJUdFZGNXZVeG5BSHZ5OEM5NlExVjVVblJzQmg2MTdUUldRcWpEZEJENnoyOFliUVNMMGhwXC91Sm9yajBLNG9lTmd6SkU4SE8zOGFnUzVqRGlkSStlaTk5VGJEdlFldUxYNFVzOVZWeVF4TnRqTFBNSHNQRnlBblo3V2VOM1JiM0RYRWIyWmNEdUNjcHRjNFdCbWZyZ0ErYVdrSkYxZDg5MHMzc1g2ampuNTdOclVjblUwbjhvMzV0TjYyeVBjeUpJam03ZG5KeUkxem0xaDFmckNweDduUXNwRUt4OUs0UkFWNDdYbm5XY3VKRVExTlNvN3dIRWtsMFZua1JQK0FNc2ZvNmFpWTZrUndkSHdTdldNcXF4T0M3STJyMzBndTJ6YUVYNnJvRDhnbWk2VEJXQm4rdTlUNUFSaWdORk1vTDJRUDB4M1lsN1RxY2RuOTl0WkdHSVdRS1FEVnc0VTlTSjk3NCt0enRUSGVZdXZlTzdBMEpDaTdyMTJcL1FMRmh5RUN2THZLb2FCNm9FYXQ5TGVsb2xXWnorTXN3aU5pVm43UWhkak1OXC9Femp2U1hDZnhZOFErRkwzdFZTUnltWVZZbXNiUlJIN3ZiajRpVkE3SXpYanBRWWVvVXdJT3ZqdmpNR3c3ZnRZXC9Cd3Q5STR3MEkzU3h5Sm54aWEwM1ZTM2h4UE8rWVlxY0krbG12UWRpYUdcL1AyazBKNE4yTHdVQ0xrenU4c00yT0c1MEd2UWhid1wvMUNSZVwvbVd4aytGKys4NTcrWW1jamo3cmc2d2Y3NlRDcjk3Y2wyc29qbmZuOWkwVHBNdEd4Mko5S3BaKzJxdlF2TElSWHpKRHRTQUlDcStqYTFDNUJaOW9pSXBuOTdTMXpBMU94bnJEcURRbUFZNDErRXE0NmtXak5YOUcyaFREaFVTNjErbm9cL3IrNnZ0YkxTMkxvRVdESG5XZVJaY1hDZ1IwZWhkanpLQmQ2K1Y1dGttWm9KYVRHK0hYTFZjXC9Ob1Q2cHZac09KT2t6ZTE2Qld3OGM1VmdhazBmdFV0c2RZdWVXTWhpWld6bGJTQTBld0xBdEw1cjVRQm4wNW9TTDFkUmJ4dGVvS1Z3dVJkdVMyZk9cL1FqSGc4dzgrOUZQU09cLzQyNUxqWEMremZXOElkMzVUNEJ4SkMySG5NYWpSVmtYeVJ2MlVLZ1hHcWhPQ3MyQStkM1UwejF3SGxLWVwvQUxOQ3ppWDJsSVFHZ1RmalRPeGZiNkZ2cndZaDBsNVRxbGVWNkp1TEZcL0ZwY05RQWZTbmZiemFKakdiK3JvMVBUMFwvbDY2XC9JWm8wbm44Slh3NmRkMWhKanpkU0ZFaElhWVRRR3hqRTdGakxyRkVhcm4wYllNWGZ6MWFVbkZlMkViSXNNUkJ0Y0hFa2RkSHYyd0VxS0p1cjk5dE52Q1d6WUR5YjV1NlwvaFZlM0dBdDNuSzFweGFOYjdobU5SRDRLMTltY05NVytkekZYVTlPZ09KUUNxR2FlM1ZrZ3cySDhwWEpSU3ViY25YM21DeU5aaUQ3M3VSUHlyd3Z1RUx6Z2o4RVBkRUI2RUg5YnlcL0dqM1JqVjcyc2FROUtGc25TTDhDcWpxU2xGU21SdmEwNUdGRGJXUkp4TmRxcVl6TVpLSUN2TFB4bThrVjB6Q3NNdWZhOUVkZnJlNk5yK1wvcnRBK2k1SUpRUFlSQXJ5czBRMW1yeFVxYktyVDFRS1JjTlZcL05EejJIaFRSRzZHT1pscFU1OGlrZitXOXBWc0xKZElCZytcLzUwZHN5dHRuM1wvdXJvRzRzN0dwNEFuQTRHR2dYOGxheFp3SFpWNjYyWDBsS1NGY1grOGErcFBnSXYxTEJBRHJ1N2d0SEJKZE9ZTVUyRWxsUEFMZ3ZISXJSdlwvUlByUmN0anYrd3J6YVhCUjF3cnNtUTJEeDdPU3ZId053QzlFQUZcL1FCNXFxMXNcL2lHU3luaUNWVHFTWFo0WUNCZll5VjE1a0VXckNsTnpJU0Ztd2VmS2VTZ2ZMb2FJRFwvOWZuNGZsbXZCb00wTGRYYjY2RUc2OXI3MGNTXC93UHlVaHdua1p5RDRvOVo5ZmxBa2lZNWtyV2FuTGhXU3l0K0hPR2lEeTB4eVZzZnFObERZcHFtMmN4M0xvMEYzK2M1SHdnTkRobXRcL3g2YnhVMnh1VTcycnZvWFZtaEhIN3FIMVV6clJlajdtME1zM0JMQlpwM3hzejFMNXo2YXkzRjhsQkVcL3pPUmtaVTRnOHlWQXRHSXdKMVRrXC9TV2wrZVBiR1orSEUzYU90ZHBvdGZZWHRkU0plVXhRYWpzZFJjcVNDVE9ZWUIxdWZQcWRybGowM2ZJb2lzNVFkYksxNnRXRlk3WE9YM2ZMb2c4RGhcLytJZ2VvXC9jcTJkalwvUDJPb0owaG1RWjhjSnYyWHNScFQ4Q01ic2tzVmNnQ0JSOXNtRUp6Z0p0YUg4V1dSbzhaUXU5ditBZitPN2luXC81dHJxMTN4bzJLZjQ3WENZRER6eVNNUU1ZZmZEQkllUTFpY3VpeDRZdnNxb3pjVUtZVGpiaDNjcGZ5ZUZxWnhUeHBTQlpCdEpMbnVvbXJwWFBleXVta0oxMUZrU09lak5wRE9yYkphejR0UlppeW1OOExyajZyVmViVjlIU3Y1cFpjbEVNcFpwaCtPRVU5WjlYR3ROQSttNERVaDdHZ0Fic0RIM0o1R3paKzFlQW9adTY0VUFXUytJK256MDRkSUlYVm1OOEhkRnJxb3JoWEpSMDZad2RGT2N0Qk5YV2xVcitHQ1pEZGhsQU83dm9oQlhzb1U4WDNPcm5CRThoVU5OTFpCM2dEUEpmeXBuMmNOSGo4ek8wTUN5NWNTWjk2dEs4d2J2UDRzRVBsXC80aUlITEhWbG9EUldOTjlrYnlTbXJvOXdtRnB2KzVES1VMOTl6T3dHWVhubmNjVWNGRGYwaG1RalBXQ3MrMTZkQ3o5XC9GM09LWVFMaDlMSFUwbkUwM1oxa1RCR2ZkaXBBM3kyanFpYlJKaGZ4RzdBQUFEQ1NVQ2Q2OUhBNWEzY3UzQzBhNWxEMmNJbGFIOG9Yakp3R281ZWFwc1pmenNHRWdxVTRRbE9WRHc3WmZoSThiNk5OemNrWkRpZkIzc0dvZ0lQd0ZOblpxZlRDQ0JHSm9MWFVkQ0VTTnFZMG1KZnQ3YVJ5ZzdpU3RFdXZYK2todDliQmVTYW5TWWFjNU5Wc2xOWHMxZzN3aTZEZVVMOFdGMlhVQUtPdURZRllqTE1nRldoamdoSjBzT04zR1E4MjlpN0tVSDRXaEQxR1doSFI0Mmp4cHNndG1vSExmSGZ1NXZIYzVBamNERWNtZjQ3UG1WYTBnRzhpaEtDNXJZUmlkSEpNUDdKY3NqamRJMkUzNGVpWCtBdk12MXhnY1wvbGNEQlpoajhsZHVxXC9Ocm5aanRVZ0pBSVBcL0ExT3JTY2hyV2JtZVRIVDd1Uk4wSkZYVjVNUm41ZHZkUFFLZ0VXVndUWlBRdm51ODFnZDh3TDlQUE5xdG5lS3NDTFVoUjlYS25BU1Z1S21RXC9pUXRETFp1b1M3WWIybTVHWEF1cWQ0M1d3NTRBK3VxMEhRenZRQ2dDemxuaTdsZGpZc1I2XC9waWNcL1hcL25lYkRWdkttRzkzc3dLY0Z5SkZSd1wvdEtYRFJwQnpRZ0hiWVVWQU16aDlQNFpRcUwxS211MFU0ZyszdFwvVnlGcUhDSWdMbVFNWEt6NjNQSkxIbTNXTVRaXC9uNVRORkp6VVdiUTdkOEl1eit3aE9zYzNNN3ZtM2Jpdlwvelc5a093Zm5BOSs4NGVxRUhXeldcLyt3T3BMN0g5V0RsUGZzWkdPSDgzY01oXC9WeFRRVGlCRnJsakx3eFpcLzJpMUZ2c2hjV3MrWkJoaUJCRXZ1Wkw3NlJCdHdHMWljZXlCTit3RlRqQVQ5TzhubDlveGpGWFwvNTc3Rm9iNHVCK1loUWdLN0dFSVMxeFcwNWtaclFIbFloTDErXC9MU0hBOWhPOFBoZDdSRXhSc0xqTHVUNk82dXB5TmdhQ1A0TUhZZEZ0RFhcLzhCa2x5c1wvb0h6cFY2czdMZTVPY3R1dFFWb1wvTjYwXC9mMU1VdytLWlJmVU93S3l1TWlXcTNhSlhlZ1ZveG5zcThyOFlhWjQ3Q3o3azYrbFNBU0dtc2hZVXUyNGp4VHNlZ0E4N1l1bnFINXhuTE03NnZnaEd5SWR6SlB5RTRycGZzSG1JdDU4WlZLRUpmUWZzT2dQVGxNcGNmSlBzbzFxN0MrOHRJajlPQ0RJNkpYbzNNU0kxUlFkWjNzQnlEbVMxTjRcLzFwbGdyTEZlTFByTExcL1wvZTlYQzMrdkV5bFNyZGpqS29IVXRBTGlxemFcL2l2bnJOSUg3WVJmeGJrVG1QNmxjUmgxdGt6SmRRaGQ5M1laVVBkTnE0Z3JpdkdaWkpDZ1NFQWZuSHdFSHpudjNXYlY2MVQ2YUdHb01sNEJjZERTZVFJT1lod0h2V0lSZlREelJRSzB0dkdnR3dPXC9obVNzejZ3aCtBdXJQcjJPanQrMEdLXC9jckhUb3lxYUw2K0o4R0ZjRTFMZFkrSXgzaVdxdHVlbnhRUlFRczYxQWNZdGRxeUpmSFpVemVnYmUyaVY4WkQ4ZnpSM1pQdVZ2TU1NaWdvYmVhWlFHd1BXelJuTUIwVmRGN1JUdG9xTUZsTXJSQTZidERRZWd6NDJabWdGbkFIUEJSXC80UUZ3ejc5NHloOFhxSjhsUE9kN0hLTkJLbDlXdDloclRYUVpFWUM4R2UydWJHU2plM0tvUVhpV1wvcnYyTmt6K1wvb1ozeHpMd3p3TUxcLzI0R3ZxTWw2TVRsZXhzWXYyenBkVnJXcjdrTEY0R1ZwdndNaDFlRGVzUGNOaHdEMVZpbEhuZTNPVzc5d2Z3bFwveWlyWllxWGl4QnFIclJFY2FydUYxXC9iUkdqakc1SzdcL2hFWmJ5dE9FRGJyQTlBaVwvUlFuXC9lNVZNNklkcGZRaGdWdWMwWDNhSlwvaDVMUnZGYWo0eVJBc3M4ZjczZkJXRUNraTRiWTV2amZVRVBpRXBwblJaRFdXdkpTeDJqQXpQRFBFNENRZFJ1NVRqd2dkUUFCUWxaaytFZWtlVndyUEVhQkp3WjZqalJwK1l5SFR0cUdLQTdcL1BQbTV1YzNQNDY0aFlWM2FSa29PQVwvSzh1YzZpUjA2UmhxdU1USHY4YTdPUUx6bkdoc2dvQm9QU3FyVE53dWV2YU0wSVlxUlpBcm5kbmVDTHVPNGxOYXRyWEpiK2JhSHJhNTM4THBISVdtZVVHMHROUFEycytRZGVVYUs4ZCtjUGhmRHFNSmFUS3VudWx1aEJhR0ZCVUwwVXc5dW1DdktmeHEyM2FDelZ6cDZybll2YVRNRmw0QStGemtcL01ndzVKdUlENXpGQ0tIbFloVDNvdHVMREJvb0QrV0xZaUgzNWFBQkZJeWhrYUtkZHNsQVVsSlE1bDM0aWhrZUh4WTFFQjVrNjVrc01sK0x5Z1VYUDRmdVdCWENwQUJFUkFDKzlxMzNJMThrT1RNVThWbCtVM2l4VXorcjBvbHVyWDA5aDFOY0toUStDZE4remIyb1ZYSnBDa2xVanlPcFlLejZHUXVkTmhjbGVzXC92Kyt5NWltSnVlN2xFcXl4ZXRFOFdoSWhNTlhoY2pCTGwzamFmZmxGS2pIQjJGcmRvT2grc0ZFUVRoWXBwRU1OMG52OG1yVjlOTGlkSXBIMHJQbFNSMGlwNW9jSlZtVDAzMXdFdlhKVWhoRzVBYzY0VWxISWlqSFV5bHVBT21XVXVoNnNWak03ZEpic2d1RlV4TWVsdGFcL2tSazJtakc3bHpXeG5mM2Y3cDhQU0wwOXBZc0p0K3A4RFFjTTNkOWNad3ZpVUlYK0RUOVBYSmV0eHFDaXNwNmJzTmpKSlwvWG9MMSt2VXNHU21Jd21MWUR1V3lpa1dIemw5bUlvZUp2UzFValJ3RlwvVVF0ZUpQNzVzTkhrMVd6aWdMN2JMVHF4RHYxSEdicVJtd25mXC9Zcis3QXVPOFBYdFczWUtGbFFnMEdBdGU3VTc5bG5CUGR1SGIyMnloaHhZekk4UXBZWCtwamE5WjR2bWFQcXBoTXp5ZXdnNWtMUkZNdTY4OHJTbnZNRG5pVmNEVUV3UkVUSzNNamlveWs0d2xUZXNzTGJjcmhINWpkdkRhSmJMc3NBanhGNThGc0x2NkJOOVpTZUdWS0NBUE1iZ3FGKzF2SUtYYVhIeDVGY1hJdDBqc0VTcW03VldnREt6SFZUQ0lsOEdxc1hYdlRuZVJWZ1hDbWtPdm9ZWGtSNjlDUWdjVHdGWUs4N2xpTlBVYitZYlBFNDdkamJabG5rc01BeUM3eFE5QmF4UjBrYUxvdno5eXZ2dnBLeThkcVlqb3QwXC9VejNnQmVmT2xRS1ZnZnJjVGRwMU5tWmJZV1puZ2xnbnRDeWpWSmlLZE9ZVm5aaUpqQmY4dllxT29EZ1V5N29ySGdPVjJ1d1wvQkNuUnB2OHZ4UGJDSm0wUVNDOW96c0FLMXkzdFZhUU1qa3RuYjZMdmViZ2NZM0N5RVplNnFpOXRwQUx4V0N4TzdMUm16dTg0Z05QeFRcL0RoYU5VZW83UVdoQlluVlZoaHZPRVphY0tlUG15Y3FSWkF4ZmpGSDBIK1Q1MWZcL1ZxTk5SQTNWeGdJWVp1VitTa2pXdnNnNVQwR2hJMDlGeUVIRmpcL2VIVm1yXC9meXNXWm40K0pLeHQ2cjVWSUR0QWFKU3p2cmJrVjBGVVlNdm03eElLWEppXC9jMWhsUHpudzlwUjc5MGJnUkJFNU9OcHZoQkhsOXpTbnc4eitRVVdyZDVyZjJvVmJOMEMyVXBPaDhSQ3RXWUw0TStwNVN6YlVielFlSWd2VWFkRmxBNWhYSkFmRjc1bFpXamVXclIwSEZZd3dWWmtSY1BFa29Oc1J3QmxaZEs4cnVcLzMyN1wvWnBLeHJNKzdSWlRweDRSMVpDc3QzSk1EY2YycUs3OU51ME1VcmEyNUZRNVJlbkU2ajdBdmNaQmJCVW96VU4wUFVyejBUdk0xRHlzR3FHQUpNMkNPQzIyU2hmQzRuVnhSOTZINUR1OXRKNmQyeVNLWjJKb2hxc2RnOXpkcEFwOURiOXRJSWJRXC9XNzZpZUhlbGtkbnQwMW91bHJsblR4RjY2UDVtMjBLWHR0VFlqTWtaaVR1enNJMjR1c1NhMGZCWitcLzd6OHV4Sk5MbUtkNkxlZ0c5ZG5jcnpvODZYVUZcL1VCcXFpNHBVa1dNVEg4MWVwcjd3RkViVDBzRXdrMjVFUGpldWhCVzl1RkdyUWE3RnJIdXlUWUFhWXRpS3N0RzdyTHI3ODRkVld6QjcrM0NxM21FXC9jamNKQVZvRTk4VXlzeFwvMHhud3Z1WVY4eFk0eW91UXRuVzI3aWd6RW53Qjd1UW9iOUs1RXhMeWtxNHZcL0tyTHlucGpnWDJycUpPUSs2UUV0Q0lcL0FmcjZuUWZXZjBLckNsUk1zdXRXenVtY0hEeXdTQzJmUUlHUGNVeWNrbENDbStqQzVhMHZidHdMa1NnbGY4TUdGbGltNzBMSVNnckFPS1NPdnJnd0Z0RHFZNlVxOVJOTzZKT3hkQ0tsYzQ3K091U2Z2Q1lRTm5IY0pnOG1wSXpRODFMeGNpbVwvc0RMOERGZ2dHdUFreUc1QlE2cjlUSEF3U083VGJzd2Z0NWFwajJiRmFHSjM1bHMzWkZxZUZabTFVSFdyZzVrejgxV05KK1BSN2lPMGFGUmtXUDBaK1FBZVpqKzlSWFFoQVo4RWxmdmxYVlFqanRkeFZ5UHdUM1UwSWZpTHUyVXp2aHdCbVZ2RU1LRmNBeUdDU1dIQ2VpQ0ttOUFuNk8yZjl5Y3BzUFhsWm5ZTGg4cGlNM1huUEE1ZEVrTXZCekNUend4aitEVU9adXBLd0NiQTZEMXRtXC8zR092RWE1bW5jT2ZWaTF0elNyUktqYlV1R2s1b2hyeCsxY2tKcnhRdUcrWXUxenFXTDNGYWRabnZZYWViamxCZm42bGREYUFZZVNWZytOWVpObWdpeGllNzkzMVlMZkpSUkFCaWxZWnpkd2cxWk9jcGNjUE9qNG5iTFRhMmVNNytNUWxWOUtUMkNUSmV0SHdVZGJ6VFEzeUZ6Ymd1d0ZCQ0Z2TFQxQzBUdU1YVllVb2NmeUFheGJhV0NmR1Fzazk4MVZ3SGN1ME5EMXh3NWtnTGR2VUplOWZNOGR4d2Q0aUtZTkNURGJ1STA2cFdwbEtuYTBqUUVxcFd6U0ZPZzlDdFwvV0luQ0Vpd2JISzhRVjArek1DTFdDaVVkUlVteTkyZVA3ZWFkK0I2YkZPZlwvTFZmSTdyTTA2ZkhaaTBFWDNzWkVkb3NtcVBHVU5oWmlJeW8rSCt2TTVna21qQVwvYzE4ck5YVis1WkZYc3RuNmJGeWlFaHBnWWdWaTZ0Z0pzekhtOHFkb2ZlcFhydVd6dG1qa3l6TU83eXVmWUR6c1wvVElTeGU3MlZ6bmc5WGFqRUhZR3ZDQlgyek40UVQrNmorWEJONVA2TWFNUTVUQXFpd0ZcL3ZuRUEzRzBrZGZ6dGMzYzVtNnEwN2c2OUdPMW5NXC9wMXVZNXplSWVYbXJtbHUxcGgycUkrSTBaZVNySGZTNTZMRXU1bytyOFZNVHc0Q0FISjFmSTFCN29GcWM3aE9NcXU1VTN4YWdrNE5tdjZ6dWJNUmtmUmZkaUZReVRVUzczSHVNSlhJTWN0aHlXUEozeHlYOU9sNmVXa0xFTnBjNjdpTkdCNlwvaGNzVUhwZUZoSUtLTWEweGdXWElmSkUzdzhMaWdTM2VRZExWUHpOWUd4OGJoamc0eVRDWEEwcTFZMU42QnptQ2hsNm9Gd1ZnK1pXN2pmaVpuRGlWNUlOTGV6TDFDbEQ1YU1ua3RTVHBZQU9qVjRsck5VK1RTcFZrRmJnaGpjaDM3Q05LaU45dklXK2ZQZkFkSkhzXC9WOWF2aHN1WXMwWjd4V2EwSExcL0tkTU5XNmdldUdrZWhtaVpQMnN3bVZLZGhEY0k4cDF4aWpYUjhFUXVkSmFRM0dTcnFCYVA1MUZSXC9nNmJHQUxuSXJSY3NWbG9FMlM4NTdhOEVabEtKVUdGRENrRFFqa0NDOElwc1p3bHdSTFhSNk1YalhZRVRoT1RoMUJvOE94N2JXbVMxbnFmWUQxTXZ6NnJUbytuS0t0T01yZ2szMU1CZTNaMEN1T2dyT0g4ckNuT1hscllGeEg0eko2ZTREeGJlSzB6TDc2U2hoS1BxaEE0WVJZTEtYaVlIR1VFdkFTV1g0b1M1eHY2NCtJbFFSUjlPVERPRHI1T3dmMlNuamE2T3dPYjZtcEkwUncwYUpaNWVIVG8yc050RHlWV2RNZld5ZENUdHRKRjhPZ0ZTNnRmUTZLdElPTzdKbkpKNjBOcUdNWlBreHdQSzNwTkFMT3FtUkxjSm15end5Rnh6N3d1Y0EwNG9xZFwvMWdickI2TnJzQ1ZcL0Q4bUNYSncrWjNwUTdcL2VKUW9CMWcxWTBXcklBUEJTXC8xcE96OUIyV016SkRSbGIwOTlEb0ZpZGRmTmRoWlBMaXNhc2I1M29zUXVQa3JsZERtYmNzc1d6RWxMbmdrNGhnVGl4b3RmQ3dNRGFXK1hia1RIdG9yVE9kd0lPWlY3cE9QbmZDWlF1bEQ4ZHptN0s3RENjdHl3T2xaVGlxWmdWSGVpRDdkbGcydzF1VHlFZ2x2OHN6WEJ3RkdQVlJlWVJ1cDV6V0ozSEh5YklPTkE2RzQ2U2hsUGd4UlRjdDYxeSt0SUJcL1I3Q2h1TUtrSzhLdlhtT0FcL2ZmQ050Z2FrWGdLelF3bTZWcFlBSVE2VlNFRTB6TzNDaTA0bVNIQTBJNEdYdExyNFVQNnhpdGk2dWNLT0toaVRWbXNSOE5iNFRBUWs3K3Z1OW83YzBuNUNqOWxJeWVJSnpSMkNHNnpBZXlVUDdzd0pVc3VHc3JyMHNIdnVcL1dERU9JZFZ4NFpcLzZsemdHYmVoTHpXQUx3ZTVURXk1UGVRTnp6U2Y0VFA2NlQyelFQeEROaCtwZHNTWUw0T2dlVUJwTENGM1wvZCsxMjQxMDlpT2cxdTArWEVhanN5KzdSSHRxdXFCTzRVNHZzamdIaTBcL3J0b051YVlENzFZRU9IMHU1aDFDTkFBelh1d2pMTFJHSEN0U1wvbFMzaXd5THBCOTE4K2xoYW1KOTd0YUZQaEx1NzJuVTN0R3FHVEY4VzNPUmdGaDY5ZVNCcHFRa3BPMmRuVTNOY2xzY0dueTd6TjNkc1N0SU92WXRNbGJURDZkOG5EREJHQmVGNmU1MG9NUGtJS2VWeXFJalFFcklkZWlUME9TZTJaeExHR1JobHk1WnpNN0RESVpEM1VESUtkSzI3YW94eU9nZjNYeTBuemoxRW5SM3BocVBrd053TVdjaEx5OXYzKzVsNFlTTGtXb0VOZWhwRGx4QjgzcTNPcVE2T1BNaDc5ZzZweHdsUGdrdmZ6bVVta3lUSTZjaTlNQkN6NnhOdWJUK2ZaMnFTXC9mR3lDOHpZYzNWeHp1cVhOVkQ1RHh6Rm01Y2NWc0FGOWRZME4yTFwvNEtXK2lFZ29Ja3ZYRjdiQWdRVmJidVhudDRzZCtlcmxLNXlIeThlczV4aEFpbWhEWjUyOGhjSE80a3pROWVJb3A1ZXhkYVpYRTJuS004UDk2MnVDTTVkWlpWNkFjRFhGSDJlXC9qSTZZYVpUd0xxUlBxWkRcL0RwTXd4a3NyOXVDWVpldloxejc3ZTZlMkF5d090ZjNjNVhaWjh6QkZtcGhtVGZaalwvQ2ZiV0FGRlpyMGNrXC9PXC9qcHYxRDBXZTA0c2JnVEFFZ2JkSmQ0XC9nNWJwdXdcLzJGbXFBZ21wRlYxSUdGTEFYTTlQRFZFQ2RIbktERUh4cVJsWE9pTHVCRjdsempMMXlHbkE5OThmSm5cLzY1dlhlU2VpZGRVODE0bCtSUFJDZENDMnpEdXVjcklQSXZCeU05aktIUzRmYjRlQTl0RStqMm4zOXJUZDlmUndDWTBwZVQ5aDEybitYWXJTYnM4K2M0dFcxdlV4WnJjakErM0FRU3QzWHIzelI1MDZDTTdJVVEzd1BETWxIUEdVaHQwUHRYbXNWcXRlbDAwTmVScHR4SDNYTHlwQ3ZER3lxWUIyK01kWEJTb3NaclRIemNkMVduYVhETyt5YUZ3QnpUNFJPaGk5WHJKemttZnpjdE9DSFVNdTZYaWlsT1VRaU1Pa3JFaTR6RGJ6Rjh1NkpzcE95SmF5eXYycnQ2ZFh6M09JSmRkdEpUZmxBMG81dzRBTzVlMHlPM0NIeER6TWxCSFVcL0hPVlBwd1BYTmozKzFHV2VNV0dPWFJvUWtjRE9pUmY1TmRwXC9FQWJFZkN0bmhtZ1wvbDQyYjR0U0FEQld3OUsrbm9Sc0IzQXVtRjlMRTNyUmRnXC9XeDNvNmw0RzJGSTZ1OElVYVg5b3lnSDlzY3owd2VzWXVNR3Q3Z0ZrT3FVcDRVMFF5cUQ2MXgzbThPVFV0RnVmK2pLaEY1WWdCSzRldFArMHlIUDVlUk51Ymh0TzlpUFwvNlFhZU1uVldZRHozS1wvWTZcLzlqV0ZhN1dDdlNKeE4yc2Fxb1Y0WXROTHdqeFF1Yno0SXZvSTVOcXhYUXNTN1doM0hGeTJEZXVTWW8rUm1aU1h1WlNScmczb0RxTDFUT3lSdkhWS2ZnWmR5WWRcL2E4MnZIY2VQdDRoSUxSSjd2WGx4aWRvcHBWcHA4d3dVWGZNR2FMSVcyRTlreWdBbDhKbzdLVU5qYzlGWlRkZzY0VXdqWWZDNGRwK1lia0t0VTBNSkhhYlE2RzB2c2liYVlNUVdXRHFZVEdVRUNJaUd3WTdEV3U4alJ3Skh2NmRNdmJma21RemQ1UGhhdW1OZXllTlRaM1ppbVlBWHJsdlZMc2tcLzZXTFBnZFE1elVNWXhVbXl3T1VHc2dHd1BEMGFcL0RwclEweXp6RmZadjJxUHNzY2poN09YS2hKa2dlQUxXREQzbmdIeHNkTDhYcWtjWE1EQ2tDVFRmMVpNNFwvU1RsbVg3S0VKaml1YkNtS1o3Tjc5RHNJek9qeDFOcGd0NXRQeTQ0RWZoeU9VRXN4eEtFenNtMzZGVzU3UWpORjJyUlFNcE8xM2F5bnh5TFBvK0tHTnZsSDdsd1wveUZ4TmJvNEFHSXNHWHFaZGtHczNsSllINkI2TWQydU5pbWYydUJjd1wvTVwvSGh5THhMQlwvUXJKSjJxOU1EaWNEZDE4b3RyWDU0a1JWR21NVnNLWDVYS3JKem5MU29MTkFKRmYxK0VaaWFnQ2hvT1p0Nm1JMTZXTlVybGQzUERVVjRtU2Q4RlwvWDdTZTlDXC9ndXc3MElPejFqbnJZMjdRQUsyMnl6aGxvaGZzd3o3VmV2NndZQUM0RHczbVwvVmZ3bUh3bm9NUzJaeDNRRWQ2bWppRDdwTXhTWEJJdm52b1VDK1FHXC80SDB4TVFheDJ1SmM5Rk1zMHhwc3BleGRTamtBQjNVVFppMGkyR1JjdHBwSDhPdENON3ROVHljTkdxaVhjazdQdXphXC8ralg4T1JkOFZmOTFcL1A3QUtuc28xTEFxbUR0VlBtNWxRNmpxc0Q1KzNoQWpUSXoxV2QzbER4aUZ2emJSV1drZnUwd3lyZDllYjByVnlrXC9mbE92ZkRJMFhcL1E0UTI4TUJVSTBxT281UXA2T2pkbTJvQUpQbStJalozMitrV0VOQzJNTGhmMU1HTW12Q2ZVSkljcG1SWTh5VlFPQmcySmdhKzB6dFwvQVhrYUZab2RjMjNlbWdzQVZjck1iXC9DRXc3d01CMUtha2Vaa1hGcFlrZmh0Wld0Q3RuYWlzQVJIRVp4bWxiVnFcL0RtRkoxeXlaWkkyQkRKZ0FBREthdU9iNDNsSkdBdklLaEgzTHpaWnEzd25KZ3NkNzMxb3R0UEpXWFpjRUxUOFRHQkt4N0VuSjIyUzZRczBvQWJ2QjhcL3FcL3NKdVRSRmxNZDNDQ1hWMkdmMGhoNVBzWDdsRTJnNnkrVHBhbU8wZ09TNE9FUVA1Y2NJQ1N5YVJXbngyUnE2MEEyektMWHZaVm9jc09OQTNmUmVCU0JyRVI0Znk5YkJQRUdoXC9qNmI5UXJFZG5SanVxMGZhc0ttREZ2T1FpamV4UGlMNkpTSFwvSDhQT1hqRnRjUncyOVQ4WjJEQ0YwWEh5ZEpTa0U5TnE4b2IrK2RNOWlNYWQ3azUrUzcrNnNqSGxUWkJ0ZDVsZTgySVZQdWZDWEZMRHpXUXEzS1ZjcllFQlVqTXhRV2prVlFmN0w5VHRkQWRtMnBTTmhuVjlxUnNkYzVITUZKbjJWQTZ6RjMzOWlLb3FSQUE1QXh4dUoyVmF4b1JpT0NMMlB5dnZ0XC8rQ2ZyZXJcL05ybk1NYVdYWW5FZG1PdGlpeURFVmZlTlpnK0V5dTdWZkxuN1Vrem05RUY2MFlERGRsZERuTzVobEJSd2hveHlpckkwVHJJMlRTUlpzUWpjcG16WjRZZmtLUnZVNlwvYlBoSTlmUkVFUDJtVkFlSVJSS3RaSHBQRUx6cEV6ZWhobXlMWmpPWjBRZlRWcUJvWjI5bUsxQkxLdk5PRjZSNExyeFhBSUxUWHBRSGhKUUI3aGZXZnRaS0NybExkM0Rhdm9pc2JxWDE2M1NJZkZoQVZCMitZV1ltQWlHVnhqellCeTZXaUtKVTJyNFZYM1V1U1JiNCtiTzlYcGQydVJnTXFhNHVwRHVua210eGpMOUpxelJzd21ySG9WMVJjTU5XNGg3Y2JkdFlIcEdUVTcxMXdPaHl6VFIyNVpFVGY4aWx0Q09sOWxhdW9CRkxZYXliM0ZVbUhrQlJoeWplQkVhalhlMjlGY2VyWmNJR1FmbjFHRHdLVWNnYTVqRzVsdjFoRndvK01CY3lHcURCRHdHeUEzT0tHXC80WFZyREN1cXJ3SnVQMFFmZWQ1cUtEVHRRTlcrUXUwaDBTeEdVT1F1bDB5R29XRXIyYjVqY3h5OTJcL29IR2ZBMmRzOUQyM2tlVVE5ZG12c3FVdTBPOEhyMHhSV2VYMkY1M09RaVlyOUo2aFlzUDVCK3RLcUNSck16UUh3QVFHSHhQM1dBV1Awa2MydjZyaTZFOWs1VUlacFB5M2lFNGRoSk9taXJnUUxRaDJuUVdjMThZOTUreEJaVUZLMERVejVVQlp3eEpvVXQ2dG1rb2NtSGlLazNMYytlWE5WdFNhMmFJVm9qTXhaZytKN2N3K3hid2p5eHJyMFJ1ZjJqZWVJeENrUWFDV1ZcL3Zmb2Y5Y0YrNUxGbkxydmdJNFVyaDNqcUticjFrRHNwNTRIZlhETkhRUEZscHlCQ21LNnNNS3R3bVhlSk1icTRHWHhGQXlGaFRTVjdCNjRVaDNXRjg3MHdsOXlJaEVLeUkwVk55VjNsRHVKbzRwVGRnNmFWc2xQNkQxWTMyK2dEWU5HUkRnc1lvNVRQajhXTmxCR0krUUJWNVdDNkhIMVVLWFgyanJZTlV0cDVhUDRnU2gxdEhSMXBydVRJZWNQNU9CZG9qeGF0RGREcXVkbTFcLzFxa1VDbkR0eGlOYzVRMGRLY1Z1RUZXXC82UlNScWVteTJKMVozazNEYnVjQ3VyZDBQQzlFYVwvTmJiXC94VjlFUnVQb3lMTENZTGVNeTRydWRudVprd0lBcGdIcHVwOVdBUTJaWGNyUEpTTEVqUlc2dllDeGpwcms5NlwvSVdnYVMrYWozdzZTTGdSWTAwdFlDNk9NM21BdVdWOFFmK3pGSmVDYjUrWnpzUitsZ3hQbG9FbHJqcTZuZkExQUpTY3hrMDd4T2VibGFCUXU3RDZINVRQSUk1TFlGN3JTRlBTdHNBRVFuRENlSDhTblwvTUJzS3htYjJMdjE0N01ISVpqV3NxYWJjU3E3YzJ5UUNpbzN3dUdcL1NpZzFoQ2Q1WTQ2MnU0azRHVU9OYUVMZVwvWUVFdWNxU0d3aitDekF4ZDhqUVNXOWFreitcLzRkQXN3ZjZ3bzQ5ZzFQV3ExV2xZUEQ0YWZrNHFYOXhQdkRjRVpBMWJGWk9CZlFlaVBDWHVRRDR0aGVZVFZ1REExVU5YWE56RHFHTG9jREs5Z2k1ODlVQmVHaXZHWWk4ak1xeFZBaWVRYWxcL3BiekRYcU1aOHZSQ1RzY1ZcL0trTlVOS2NSMWFOcjU2YUIwTWNqbnlkTDNUSVByNndDaHM0cnpZRk9WTTV4NlZpbUd5ZkVQVWpvb0FqZ1hKNUhwcDZ5aHFKdHZUZ2IrNnFYMyt3MldHQTNsbWdlTVI5Q3lyd2xsZmFIWFhaaVpNQzF4U29sWFU4ZkRSTFpsOW53K2RTWDRLTDZycDUwY3Z4N2wrcTR5NzRMKzNhdWRFaGo5XC9TMndpcVIrNDREazJvOHpJY1NydUZGbFwvYlh0Z2hSWXpzdWFHS1dQa1FIaTNjM3lUWGxjVTBJblwveVVodXVKQ2NGXC85YUJMV1JyQkIrZU83bzVrTEY1dk82SGtIa3UwbVc4XC9ieDM2TUtmeHNjTTlYa1g5WmoxZ3VhVjJVbWl0TjN4TVEzbjZYT2l1VTlpTjIzTGtoSnhubFcyRnhTWUpMSGhBNGVoSENqKytuXC9LSENmaE1pYTFIdmNWTkFIN2tNRkIrZ1lWNUJxUWpLYnFTMFpFK1VqazIzWjJWbjJnV2JHWW5kSzBJWml0Q2FoTlhZZExjWnF2ZWZsY1hlOE05NE1ZUUdwZUUweWRNRldSK1h4K0J6czNaNjJDeDVzRmMxUmN4R0pWZnAwSUZkV205WFo1VlV1elVuMWhIUEhobCt0ZEhzQ2JlMWZDMEllTWZTZnZ3RDJIV21IdWR3MWt6UlUwY0cwdW9LZ3pQQkpWa1Q4TGtvZ2xCWkNhSFV0UDFcL3RaUDFMRXRWcncwTkFpY0tQWjV0b2wyRXFrUk1cL0RQcHU4bUhpeU9qdGxhQldOR0xVOXBZcURQcEpBYVA3bFFHNGg2dUczN2RFWkJScTB5TWNESFFmM0JvQWJlUnk5Q09VZ0F3YjlLc0RwUHkxSGVsRjNxT0JjWEQyMzY5bnAzZ2ZtbExXUmg0ZE1rXC85RGloR04yT20xK3pEb01uNDB0VFIxY2NyZ0VMXC92bTlnVWF4WkFrbVZwN1l5VUduZkxMQ0dFcndNMU1JZVp3XC9cL2swbVwvejdjTE5VSnNyTFc2VU5CUStDXC9zY2NVWTNFVE50b2RRS3VoTEhpSGgyOWI2ZDEzVlB3UnJqaVdsS2poVHRiU3BKd0VNeU1SREx0aFJJM2hmenFmZW9uNVBSd0NhMVllcVdGRnVIU1lkUXRORjlxUDBDRGNHWGRuYVRGdXVGME5JbEhpZkhjNHBPbVVKU0dRNm9GZkMwXC9iRmorNHVPTzFzdk5ZMGJSR0dkZ0JZbUdwcmdzYk9UTWRpcUU5cTRaRXU3NHZuaE1CejdudjZORVwvRUdCUHFLZjcxQXlUa2hzS1dIOHB5VTEyaHB2a1FXR0dGY2JrVjZsdTNMdkhvNXNrTHk5T1ozWHpoTU0zbUdBZW9jYnZ1UHE2T2d2aGpBR0FUVHNFMitORWp0S3pSOFlFa2Y0em1VVnJ2NFc4d1pzSnNvV3NnRGticGE3bFlReXNUZ29qZDN6cDNseHpjb1NuWVNCZnFFU2cxK1wvMG9ka2RVQ1FuMEFPSDI3TGRrYnRHN1pCNVZtRk9cL1d4d0o4cVwvTmZQWHNkT0xHWVBYNlplWVwvbTgrNUdJMmdxa2VaSTA2SE9BRlFBVmFSNGpVZllhM2JmWUhKaXRRenNpbDBSbHF3aFJNNTFlSmY0NHl4MVoza0lHZW5HTDR2QnpNZk4zcFVQSVpRbXV6alVHUWZnSFNETUx5cG9vbHpKd1k4TDVVYTRkS3hwNTk3c3ZxWGw3RTg1YzA1KzdHWUJycmE2Z2dXemlHZkFqZVwvaGVBQzhLWkRiS2wxSDBUOFFpVEZiRlNPNlVDUHZxYW1HakhrWkI3aktXZzRiekZtTk02cXM5SDZWd2oxNkVJbmluSG9wTW9pRDlnaE16ZHNhanlUNGRcL2djeEhQMTVKTFMyKzBYVGZhMVpTTGF5NTMxVFpIb01RMmlhdUNQWXpHYnBVRTZzVmcwMENKXC9Bbm5venUzdEFuMk9GV3RnVXZSMktHbkt3RFU5QmM2WTZBRjZKVXcxalZTampTWjVPamFNbDltakVzcXBOclFtMFBiWWg2TjNya1FFb0tqQVoyN0hVZTAyMjVPOE45Y0h5ODdMOUFaQUpnYmJYQ2NhSUlPYlUxUm53TkNYSXJQNTlHTkNRQ3hnWGllV1hnU204VU16WTZlXC8zVkFNanBKdnZIU2FqK1BoV3JQUjZoYWtWK0VWXC9ReWdiY3hVc1JXWHRldXFpcG1kSVF0NEd1aVBpeTlKNVk3OFVMT2djRDI1VXhZcDE0bWhGU1drXC9pMzJkeVVuRlRmTDlabEV5a1JTczcyUmtUK01XK1pYaWFacXVDelU4Y2xhTEZuYWRPU1crZ2FPcHRZazFuQ1FoVDBaeHVHXC9pdUloTXhkNjVubkNudXp5RTRncm1TK2JTaGIyR0J3Q1d2OUlHOUdYVThrR3BGaDBpdTNjTGpmRGtycmViSDFKazQxamtUdHVKZXhtaTJSZElMYzVTR1kwZUhsbUlYVGZSUjhxY0ozWFZheHJUUU9ZY0VoOGNVMzJWZkF4c0YwKzA4QlVCaytEWUJRU1F1OFZ5azMxekNFOTIrakIzWXM3bk0ydjFMMWNDY3hoVExyRW56Y21vYWk3REJVRkZmXC96NXZYb1wvcXRYMk40eDJFazluYUdGMk9FeEpWNU0yZm9oU050MjFnZFNGdFRYQTJ3UE5YR3pudEhTZDh0VWNweFV0KzZXU3JadTdWdUxCNittRDd1d1RINGlDWDRmXC9VNndnV21YNSt2Q21ITXEzeXIra2NMTEtkRFozVXcrSkE1ZE5lSHptTnlQcFJNUDczQ29PT3luTFRlalRQUUhma0lrdmNIdkhhMHJBRjFSZ3BPSUs4clljTkdqczBNaUJ4UGNZWFMrQXdGVXQ5bzRMYzJQNjhSOXJOcEF4QzN4T003QTRFNmRSZVJiQjQrVDRcL0h6SnFEWUdrR2t0ZnBWRFdwNWFDTWszTWlzc1E4bEtQVVJkQnBCN1EwQTJUNURLTzdQd0hVTTFhdDRPdGlianQyN3ZEb29FUUR5QkQzRm1ZcDdRSnBnSjVhcDhESjZESkdHcXEzckxJRW05b0JcL01NOXhcL3g4UzhOTmlNdVc0Z0E3SVhIY0IxNHlhRnN4QjcyZHc0eFZRaXpIQTVjMW8ydWlaSkN1MUR5aGxSblN4UGVFdHAwbHdaVkFIOWNHNDBnVUZYeWZlSTJLN1wvVDZReE9zN3p2Y0J3Z2JcL0dsQlFEZ3VcL0pLTjRSUGZtdEVocVI2bGJRNUZrYSsrb05pZW1EbCtINVRmZFhhbHZLOFRSakVxTXBycGpcL20yRDQ0eThoWDZlVmV4WExYWXRHWXk1eldIa3dGbytsV294bjJyWUl6Wk83UzRJT3ZzT0tGWlFLV1NhT1ZVa2lSQWJpRTB1S3R6ZVJORWUxa2FIM1pGNzg2Q1hubDRnYVdLaTVrSFZlWlRIbHl2YlRDNnlEbXBQVzk4cU1NUExLU205cjducnNkeFVrbStOODR1Y1F5aWRJQld0XC9zbWZackRSdTNaRjcxdW51eDRSSkYrMDc3clBtYjVSb0Y1YVlhR09ZZytPd2xDU1liTlNPNkEybW9WeCtnbnl5clhqcjFQaXBHWXVES3FGU0p0R0ZoUUEyUThLRUtVa09aNXNlWGFCXC9NeVp0dnJyNEdOUWNcL1R2aXB0dk1aS3lmbTM4MjBcLzQyWHhyN0tjcVVqY004ZU9OM0JjWTYxZEtEUk42REh2Y1NVcjhqTDdaZDRjTVBGYmxadUNUdUxJcXRYbnUzNzA3WUdvRnc1alA5c0FIbnp6K2pzUTNZSGVSQ3JHdU1OUnJkQ25NU2tcL3NHZzdSbmJWblM2QkVvXC8ydkV5cDcrSTVSRTJQYlRaenBCOTZwWkhHaitzQUFkMVoxUnJZMWxGaXZJOXZoSUdzRjk2eTJLXC9hSlRPZUI3WmtiMDhBUVwvTEExYTFoNTM4WXp3YXRlS3E3WmJYT0NHb29BWFFsVHVyMTVCczJnMHVIemJLRUg0clFVM2J1QmNveUdWeEEwWllsV0RpbW5LYkZXWGxsZG5HWkhsbjhWNUk2NW5kcDRKb3FydTZRYklaRWRGWEhub2xrYmtwR1dLVkNyXC9wN2l4dEFQT0lQT29FUXB2ZEhcL1wvVEMrdzJiTDd5Z0ljMkw2UWloRzRPeHlEYVVMQWt6aldUTnVUeHZhMmZBa0FQOUlOdnVNUnlCaDRQTjJyS0xUQjNvWmRacTFzYXhiWG5zV3N5dStkUzdUWXFVZ1BGUWRQaTEzQ0EySXNZYUc4WXJjNHpMQVwvQjZcL1wvS2x6VTZIQncrV0p6QWxOakVjNDE4dUkrSDhWU3E0WktWNHVrUjMzdmxUczM2cG52ZzFFWCs1V1BjcEZ3cHZZUTRLQTJLd0xITStsenQrV0YyY3hHZ2RDOUtXZTdSUFUwUXVWWGFIUmlmSldrNzhubUtkNFNLdU9xWURoWGh2Yk41QUZhQWFGUDZNVVhCNU05Uk1GY1piYUtROCtoVVJcL09VSHIyUHFPdlZyYTQ1TzQ4aXArTnN1aldaaHNsNkJzaCtiUzNTeGFaOUg0YjdnSnd3akdjOVVhOUJTaUp6MlpVQ3Q5SUxPXC9NWlJxXC9BMVErdVRkdUpPckoxdmhtZ09tSnJXZTVGc2lrRVQ1RUhkQkFsQ2FkVmx4SndBaGtyYTFVclc1YkZRTHhvK3lnZVBnRFFFWUZJampQa0p6ZTdoYVcxdUZqdE9oejdYMWFHK05QU2NMdDVYeFh1NmNDZkpTbHZtMlBZS3BmNHRYdHd1c0NLM0h1c1VLRVI4NFwvYllicE9MRSs1ZFpVNlhuQjV4SkJqZXVUcFdwUUVON0M5RWZLalFKUzUrODlpYjRucWVHeHJpOEtuMFI1b1pUZVRvdFpCZVpncEpReSs5ZDlWZmVMSFVMQ1Z0Rm5ZcTQyRUF0RW5DZVkwWHdEdWEyK2FvOW9nRVN6XC9IQTJlR1hRQVRXeVFrY1g5OWR2WlNDYTBNaitoRXl0R3czT1RLakUwd2wraVA4RWdaNVZEVGhPWnVEbmh1ckxpR0RxeVEzUXVwb1QzOHBzSXZQeFRTTUpUNUtESWYxdmlQYUwzN0w2T1BmdldkdWdzT0RBM2Z2RlNEUm14MnZrYU1KUFBpTEEyV0VrMlZkbEhGNEx6OHFzTFFoTXhheWNpM1hzblgreE9lRm9kNCs2N3Rxb0Irdmg3ZmtxbUFxZnkxSlpHSnpzWnFrbE5VNHJqYmk0Nm5lUkxUaThrc3RaYlRDNU5pRlRBM3gyeDRyZWZ0Z2FrZ2FvbHlIbVNIemNsRUh2QncybVFTcFdZVlwvMjN1RHRmWDZcL0lNWkE4VVFVYzN5djExUkJRZVwvWkFwQTVrdjVGVDFWNXFWTkFJeENTZkhCMkQ0cmFOMFwvOGN2SkNIWHhLeDFiQXNzdVY2V2NCNDk5ajdTTjZmQ0UyZFwvd2lrV0dpU0hqNTZVcUNEUW54NDZUS1I0dldocmw2S2pPN3ZVcjU5bTVUak9NR1wveFc3NkQrd1Jxd0I2RGpUeGQ3dGFwOFoyMWRieXM2OHZheW40M1JNYlRXQWhPMTBMWWJpSUM5YVwvWEJxRUdIT1wvaVJaVXJqNldNZWZSNzRKT2wycG4zMnZzNDZxRWRXd2VXbjlNbFdZNG0wSUVpTzlGSmt3S0c1QkNWaHpxS0NybVFBOHl4ZDZvNTlhOVd1dm9TQnFJemJxTkhVdUxvMVU3VkFaZHhUdFJ0UENKcW9lSDlNNFNQdnBFRjZFR05zQVwvemJZVEp0QkdOT2dDMXJPR3IxRGdqUWt6cjNaemZvcUNDeVJOZkNpQTA5bFpRaHFSdkRhWVhTRVdzdFBFM0VkbVlcL3R2MFJoWDhcL1lyTHNKSW4xSUQ4VG1ORHlSSWJSa1hjRUhzbEhuRUVPRzhDVTJQWEVPZmFqMUY2SXI3amVTM1pDMkNtTjZiV2IzanNrOWRCTzRoVDM2R3BTR05HdFBHK1l1eVJoSjB1bGZUdEVMVDlkZFlHTTQ1SmpPVGhsMmJPS0NEdDZCZDVzYVhRNmplZ2dFdjhINFhyQkY2UXo3OE1qQThVMzJFbUNsVElceDIyLFx4MjJnbG9iYWxOYW1lXHgyMjpceDIydHJheXJpZGVceDIyLFx4MjJjbGllbnRFeHBlcmltZW50c1N0YXRlQmxvYlx4MjI6XHgyMlx4NWJudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFx4NWJceDVkLFx4NWJceDVkXHg1ZFx4MjJceDdkXHg3ZCcsJ1QnOiAnQVNBRkFVSVNtRTJPN3VNcEV3aHE2Zzk3TnNQT2llbk1BV2w5cDR5cWhNbEhiTm16RG9idFhfb1czbmdRdG1ZMTM0cVNXdC1JN1BxZW5qdFZSYUR2V2dCeGVMRVx4M2QnLH0pO319KSgpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9ImxYUnQ0YU5wYzI1b21sczIxb0JGT1EiPmlmICh3aW5kb3cueXRjc2kpIHt5dGNzaS5pbmZvR2VsKHtzZXJ2ZXJUaW1lTXM6ICAzOS4wIH0sICcnKTt9PC9zY3JpcHQ+PG5vc2NyaXB0PjxkaXYgY2xhc3M9InBsYXllci11bmF2YWlsYWJsZSI+PGgxIGNsYXNzPSJtZXNzYWdlIj5BbiBlcnJvciBvY2N1cnJlZC48L2gxPjxkaXYgY2xhc3M9InN1Ym1lc3NhZ2UiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9R21PemloNkkxenMiIHRhcmdldD0iX2JsYW5rIj5Ucnkgd2F0Y2hpbmcgdGhpcyB2aWRlbyBvbiB3d3cueW91dHViZS5jb208L2E+LCBvciBlbmFibGUgSmF2YVNjcmlwdCBpZiBpdCBpcyBkaXNhYmxlZCBpbiB5b3VyIGJyb3dzZXIuPC9kaXY+PC9kaXY+PC9ub3NjcmlwdD48L2JvZHk+PC9odG1sPg=="}},"time_used":93,"timings":{"blocked":0,"dns":2,"connect":8,"send":0,"wait":57,"receive":0,"ssl":25},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/slider/logo4.jpg","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.201Z","timestamp":1785126646201,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/slider/logo4.jpg HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 358127\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":358127,"size_decoded":358374,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 2065x1452, components 3","md5":"d387174e0262e2046be83e8bd955d9f9","sha1":"9c56960eb17a06c116776fda5f4b99b79805d4d0","sha256":"e8bf584831662d97c9411b045ddf3726a5f58cd9c22d177fe1edd403ca2cb7ad","sha512":"5f53979cee57279516308191984a779e98353986ecd42e33d2c71546b435b4a79e18bd606b53d2d7bd36777ee0bdb67df770c0e0664e281f840134d3abe88e94","ssdeep":"6144:VG8O2uQMWb+ymhaFdAAqtpWrFuAzrxhaJdW3vhRL8j7JtbBN7rN6:U8OG5PtSAq/WxjvxwJdqHkdVBN8","tlshash":"d374236853b27a6087df26f517b067eed216696c6ed1fecb04efe50071208f1ac83529","first_seen":"2026-02-24T03:12:44.905796Z","last_seen":"2026-07-27T04:32:40.402448Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":73,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":35,"receive":38,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.614Z","timestamp":1785126646614,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2691\r\nage: 4892\r\nlast-modified: Tue, 19 Oct 2021 05:32:33 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:09:32 GMT\r\ncache-control: max-age=86400\r\netag: \"2edf1ef8b333c40979976d1a49bc234c\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: rr5FNvENyyXo6aiGtiZIo27GXNGxxyeRpyRLiRe1vlTetk5MrB6Akg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2691,"size_decoded":3216,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"2edf1ef8b333c40979976d1a49bc234c","sha1":"d75ac12795b4a9575c874e1b190712cd62a87afc","sha256":"50a1901684f223bf26594dd3415b1e50f184820a16daa810cc5452911e9117a9","sha512":"f697a1fa0786316fc01003f72621920932e2657e4acf5a471e35d02717c42c9db5a12df311895a776a563dcae9b8fc0b6721833529a054b9dbfff4c52fc564d3","ssdeep":"","tlshash":"2b515ee60252267980d32438616db1e178beabb2c3021ded6c1444954acc4b62555cfa","first_seen":"2023-05-01T18:49:36Z","last_seen":"2026-07-27T08:07:37.390192Z","times_seen":23110,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAADAFBMVEVHcEz/fwD2kxr/AAD2khr0dQD3kxr//wD/qgD2kxr2khr2khr1khr2khr6lhr1khr2khn6lRn4kxr1khb2khn3kxr3kBi/fwD3kxr4khn3kxn3kRjzkBf4khr/VQD6lRn6lhr7lxv6lRr9mBv4lRn2khn6lhrMmQD5lRn4kxr3kxr3kxn3kxn2khn3kxn5lBn4lBn3kxn3lBr4lBkAZwD6lhr1khj5lRr4lBn5kRj3lBn3kxr2khr3kxn4lBn3khn1kRqqVQD8lhr3kxr3kxr2kBr0jxr7lhr3khn7lhr4lBn5lRr3kxr1kRv7lRr2kxn5lBn3khrykRj2kRj3lBn4khr2khn6lxr4lBj5lBrykhn2khn3kxr//////v33lBz///73lR33lB33kxv/nRz3lR7/mRv//fv//fz/nhz//vz2jAr3jQz//v73khj3lBv/mxv3jhD3kRX3kxn3kBT4lBr7lRr3jAz3jQ7//Pn3kRb/nxz/mBv+lxv5lBr3jxH//fr3jg/2iwr2jQz4njH80p/3khf+mRv/nBz3kBP/+/f816v//Pj5lRv7lhv/+vX5s137zpb4liH3jAr5qEf806H6t2b/+/b81ab6t2f82K34nS/7zJH4oTj4nC33iwn7wn3/mxz6w3/937r2jAz96M75tWH7zpj97Nf958z2iQX82rH7yo33lR/4myv+8N/4mCT6lRr6u2/+6tP3jg7969T4ojn5sFf+7tr++PD6v3j4ozz+9u36uWr2igb+69T82rD6uWz+8+b2iwj+7tz6vXL5pD72jQ75slr4pUD+797/+PD5sFj3liD96dD94sL4nzT+79z95sv//Pr3jxD5tmP+8+X948P93LX3myr7yo/5rlL94sP4qUj94L34pUH5tF/7wn/+7dj7xYX81KP/+fL5qkr6uGn81qj2hQD97Nj///37x4n6xYT95cf3mSf96tL7zZb2hwD+8eH5q03/mhv5rlT6wHn3lyP95cj8z5r7yYz+9Oj4oTf3hwD83LSsdU1lAAAAXHRSTlMABP4B/gL7AQP9/Pv++vX89476GJDqFgT9KI4pLWIDbfz9/v532NMFQY/W1fhe912nqa3sAeeHhu0V97m6zo2oawO/xGthYMLH6++F/Bzq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"}},"time_used":47,"timings":{"blocked":-1,"dns":18,"connect":17,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/328.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.670Z","timestamp":1785126646670,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/328.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2396\r\nage: 3439\r\nlast-modified: Tue, 19 Oct 2021 05:34:20 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:33:27 GMT\r\ncache-control: max-age=86400\r\netag: \"940a2a3c47a31e6b927db48b93f606d8\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: JfxVcX8Mg07ZY6fpR8ndSuQ382qHiWNqQkWA2FaDiEHHe2XUr333_g==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2396,"size_decoded":2921,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"940a2a3c47a31e6b927db48b93f606d8","sha1":"ae6baf0aa2414befc57305ef288e49604695b1c4","sha256":"aeb35390525c9a2ff55b35bceabd869925940837d658ac837fd1603db2c1455f","sha512":"d3323594bb4300b34c24a498000eccceee9fd9b827ea35f5de5be4751342710ca6c60278239fd94c1729be27832e93b16fba61a8325edca7b218a76b3f094aad","ssdeep":"","tlshash":"99411ae2a4072c7ed205972d014c4bb99f60d922a111674d1e7026984e383f2adf84bf","first_seen":"2023-05-25T22:55:54Z","last_seen":"2026-07-27T08:07:37.44224Z","times_seen":1283,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/youtube/img/icons/mweb/youtube_fill/logo/v2/67px.svg","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:49.457Z","timestamp":1785126649457,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /youtube/img/icons/mweb/youtube_fill/logo/v2/67px.svg HTTP/1.1\r\nHost: www.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.youtube.com/\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\naccess-control-allow-origin: https://www.youtube.com\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 272\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Mon, 20 Jul 2026 10:01:47 GMT\r\nexpires: Tue, 20 Jul 2027 10:01:47 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 06 Sep 2023 03:18:00 GMT\r\ncontent-type: image/svg+xml\r\nvary: Accept-Encoding, Origin\r\nage: 584942\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":478,"size_decoded":997,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"1e78ea4caa31c35bac97a41e5930ffe8","sha1":"dbf99131b9b5087e664b9fdc7097c97655474517","sha256":"6fa88a20839537ae66da730e5bd183035265176d972bc8df075b89da0c6186ea","sha512":"cf798ef67c90f90f23635beb202095a2c76052d491c224aa14535bb9b16f28fa9a850b8db887f158afd01d634aecb9e2b05a27efdfd225d3583e6297bdd78b43","ssdeep":"","tlshash":"2ef09e6d577829d8930f87c0be5974127d9f23e85194b3b541d4f9326138ee2d141cd9","first_seen":"2025-05-26T15:52:21.952281Z","last_seen":"2026-07-27T08:08:01.059059Z","times_seen":47025,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NyA2MCIgZmlsbD0iIj48cGF0aCBkPSJNNjMgMTQuODdhNy44ODUgNy44ODUgMCAwMC01LjU2LTUuNTZDNTIuNTQgOCAzMi44OCA4IDMyLjg4IDhTMTMuMjMgOCA4LjMyIDkuMzFjLTIuNy43Mi00LjgzIDIuODUtNS41NiA1LjU2QzEuNDUgMTkuNzcgMS40NSAzMCAxLjQ1IDMwczAgMTAuMjMgMS4zMSAxNS4xM2MuNzIgMi43IDIuODUgNC44MyA1LjU2IDUuNTZDMTMuMjMgNTIgMzIuODggNTIgMzIuODggNTJzMTkuNjYgMCAyNC41Ni0xLjMxYzIuNy0uNzIgNC44My0yLjg1IDUuNTYtNS41NkM2NC4zMSA0MC4yMyA2NC4zMSAzMCA2NC4zMSAzMHMwLTEwLjIzLTEuMzEtMTUuMTN6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZGRiIgY2xhc3M9ImxvZ28tYXJyb3ciIGQ9Ik0yNi42IDM5LjQzTDQyLjkzIDMwIDI2LjYgMjAuNTd6Ij48L3BhdGg+PC9zdmc+Cg=="}},"time_used":20,"timings":{"blocked":0,"dns":2,"connect":16,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/59f809c931cb0.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.881Z","timestamp":1785126645881,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/59f809c931cb0.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 11019\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":11019,"size_decoded":11264,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"08d437a3a93fa2a75ce1a8e5e559c67b","sha1":"b1332418a20b969047833fa8cd3ecfaf50f1a169","sha256":"e147496fc50137dfd5fc0bb451a15a9dc3945ac622feed5a71fd83bec7fb6b1e","sha512":"2a98818bd185a6c5a3571e234fe80c21585b94140751d1c699a402bb0a4a646a3ac55b17ae3b2af321446524be6d53b5207760dad9aec976bcaf5502ad9ef017","ssdeep":"192:2OiuR06N8gcGR/gjIGD7yOjv9R4ssSj16Ysjxa7Yu2qSk1vlCot3k+qm/Np+ctYl:20d8wEIGKOjVSssZYsg74hqVy+X/El","tlshash":"bc329eba1f5f8365641312722d290b69fab1077705fe97b078c81d7e0344a147af8ca9","first_seen":"2025-03-17T20:39:33.075918Z","last_seen":"2026-07-27T04:47:12.476618Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":965,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":962,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/swiper.min.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.614Z","timestamp":1785126645614,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/swiper.min.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2637\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":17759,"size_decoded":2885,"mime_type":"text/css","magic":"ASCII text, with very long lines (17459)","md5":"6af34d0737ad0ca608111771cf74cc79","sha1":"15d0417baa08a741c6aee19fdfbf4813635f98f8","sha256":"47b0e7129add982c0e394f0dfa8d9621e6c9e4126859b26e1ad25c18def0d812","sha512":"74b738d66a9da306308153c683bfe1fc784bdf34166492eb4e76ea015c32bdf1f01c5f97a6c7eee5459c13b04e8dc63f7ffd20579e6808fed467e0896abe4baa","ssdeep":"192:bgG0GpaNCO8jrfg5WHmXgyXyzSHF68DJB0SwD:bgG52CXfgWHfyXyzSl68Pe","tlshash":"2982832c17002067f6324f1947c9e77c9715c893ae0368ef6650de48cbbb5a9227f796","first_seen":"2023-04-05T14:33:33Z","last_seen":"2026-07-27T07:20:22.973119Z","times_seen":5519,"resource_available":false,"data":"LyoqCiAqIFN3aXBlciAzLjQuMgogKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9ucwogKiAKICogaHR0cDovL3d3dy5pZGFuZ2Vyby51cy9zd2lwZXIvCiAqIAogKiBDb3B5cmlnaHQgMjAxNywgVmxhZGltaXIgS2hhcmxhbXBpZGkKICogVGhlIGlEYW5nZXJvLnVzCiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvCiAqIAogKiBMaWNlbnNlZCB1bmRlciBNSVQKICogCiAqIFJlbGVhc2VkIG9uOiBNYXJjaCAxMCwgMjAxNwogKi8KLnN3aXBlci1jb250YWluZXJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxfS5zd2lwZXItY29udGFpbmVyLW5vLWZsZXhib3ggLnN3aXBlci1zbGlkZXtmbG9hdDpsZWZ0fS5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zd2lwZXItd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Oi13ZWJraXQtdHJhbnNmb3JtOy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTotbW96LXRyYW5zZm9ybTstby10cmFuc2l0aW9uLXByb3BlcnR5Oi1vLXRyYW5zZm9ybTstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTotbXMtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsLnN3aXBlci13cmFwcGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LnN3aXBlci1jb250YWluZXItbXVsdGlyb3c+LnN3aXBlci13cmFwcGVyey13ZWJraXQtYm94LWxpbmVzOm11bHRpcGxlOy1tb3otYm94LWxpbmVzOm11bHRpcGxlOy1tcy1mbGV4LXdyYXA6d3JhcDstd2Via2l0LWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwfS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDstbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0Oy1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDstby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDttYXJnaW46MCBhdXRvfS5zd2lwZXItc2xpZGV7LXdlYmtpdC1mbGV4LXNocmluazowOy1tcy1mbGV4OjAgMCBhdXRvO2ZsZXgtc2hyaW5rOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0LC5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZXtoZWlnaHQ6YXV0b30uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0IC5zd2lwZXItd3JhcHBlcnstd2Via2l0LWJveC1hbGlnbjpzdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6LXdlYmtpdC10cmFuc2Zvcm0saGVpZ2h0Oy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTotbW96LXRyYW5zZm9ybTstby10cmFuc2l0aW9uLXByb3BlcnR5Oi1vLXRyYW5zZm9ybTstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTotbXMtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLGhlaWdodH0uc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLW5vdGlmaWNhdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7ei1pbmRleDotMTAwMH0uc3dpcGVyLXdwOC1ob3Jpem9udGFsey1tcy10b3VjaC1hY3Rpb246cGFuLXk7dG91Y2gtYWN0aW9uOnBhbi15fS5zd2lwZXItd3A4LXZlcnRpY2Fsey1tcy10b3VjaC1hY3Rpb246cGFuLXg7dG91Y2gtYWN0aW9uOnBhbi14fS5zd2lwZXItYnV0dG9uLW5leHQsLnN3aXBlci1idXR0b24tcHJldntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOjI3cHg7aGVpZ2h0OjQ0cHg7bWFyZ2luLXRvcDotMjJweDt6LWluZGV4OjEwO2N1cnNvcjpwb2ludGVyOy1tb3otYmFja2dyb3VuZC1zaXplOjI3cHggNDRweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToyN3B4IDQ0cHg7YmFja2dyb3VuZC1zaXplOjI3cHggNDRweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkLC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZHtvcGFjaXR5Oi4zNTtjdXJzb3I6YXV0bztwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItYnV0dG9uLXByZXYsLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHR7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFIik7bGVmdDoxMHB4O3JpZ2h0OmF1dG99LnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWJsYWNrLC5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2t7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDAwMDAnJTJGJTNFJTNDJTJGc3ZnJTNFIil9LnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlLC5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGV7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjNmZmZmZmYnJTJGJTNFJTNDJTJGc3ZnJTNFIil9LnN3aXBlci1idXR0b24tbmV4dCwuc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyMzAwN2FmZiclMkYlM0UlM0MlMkZzdmclM0UiKTtyaWdodDoxMHB4O2xlZnQ6YXV0b30uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2ssLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFja3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyMzAwMDAwMCclMkYlM0UlM0MlMkZzdmclM0UiKX0uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUsLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyM2ZmZmZmZiclMkYlM0UlM0MlMkZzdmclM0UiKX0uc3dpcGVyLXBhZ2luYXRpb257cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOi4zczstbW96LXRyYW5zaXRpb246LjNzOy1vLXRyYW5zaXRpb246LjNzO3RyYW5zaXRpb246LjNzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7ei1pbmRleDoxMH0uc3dpcGVyLXBhZ2luYXRpb24uc3dpcGVyLXBhZ2luYXRpb24taGlkZGVue29wYWNpdHk6MH0uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLC5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20sLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9ue2JvdHRvbToxMHB4O2xlZnQ6MDt3aWR0aDoxMDAlfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7d2lkdGg6OHB4O2hlaWdodDo4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoxMDAlO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5Oi4yfWJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JveC1zaGFkb3c6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uc3dpcGVyLXBhZ2luYXRpb24tY2xpY2thYmxlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Y3Vyc29yOnBvaW50ZXJ9LnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7YmFja2dyb3VuZDojZmZmfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle29wYWNpdHk6MTtiYWNrZ3JvdW5kOiMwMDdhZmZ9LnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle2JhY2tncm91bmQ6I2ZmZn0uc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmV7YmFja2dyb3VuZDojMDAwfS5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRze3JpZ2h0OjEwcHg7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01MCUsMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTUwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApfS5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7bWFyZ2luOjVweCAwO2Rpc3BsYXk6YmxvY2t9LnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e21hcmdpbjowIDVweH0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3N7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNSk7cG9zaXRpb246YWJzb2x1dGV9LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhcntiYWNrZ3JvdW5kOiMwMDdhZmY7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7LW1zLXRyYW5zZm9ybTpzY2FsZSgwKTstby10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpsZWZ0IHRvcDstbW96LXRyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3A7LW1zLXRyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3A7LW8tdHJhbnNmb3JtLW9yaWdpbjpsZWZ0IHRvcDt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgdG9wfS5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3MgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3A7LW1vei10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IHRvcDstbXMtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3A7LW8tdHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3A7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCB0b3B9LnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3N7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2xlZnQ6MDt0b3A6MH0uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3N7d2lkdGg6NHB4O2hlaWdodDoxMDAlO2xlZnQ6MDt0b3A6MH0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24td2hpdGV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC41KX0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFye2JhY2tncm91bmQ6I2ZmZn0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFye2JhY2tncm91bmQ6IzAwMH0uc3dpcGVyLWNvbnRhaW5lci0zZHstd2Via2l0LXBlcnNwZWN0aXZlOjEyMDBweDstbW96LXBlcnNwZWN0aXZlOjEyMDBweDstby1wZXJzcGVjdGl2ZToxMjAwcHg7cGVyc3BlY3RpdmU6MTIwMHB4fS5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3csLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZSwuc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci13cmFwcGVyey13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkOy1tb3otdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkOy1tcy10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkfS5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwuc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LC5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MTB9LnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdHtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKHJnYmEoMCwwLDAsLjUpKSx0byhyZ2JhKDAsMCwwLDApKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KHJpZ2h0LHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHR7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixyaWdodCB0b3AsbGVmdCB0b3AsZnJvbShyZ2JhKDAsMCwwLC41KSksdG8ocmdiYSgwLDAsMCwwKSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHJnYmEoMCwwLDAsLjUpKSx0byhyZ2JhKDAsMCwwLDApKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQoYm90dG9tLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b217YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYmEoMCwwLDAsLjUpKSx0byhyZ2JhKDAsMCwwLDApKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLWNvbnRhaW5lci1jb3ZlcmZsb3cgLnN3aXBlci13cmFwcGVyLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci13cmFwcGVyey1tcy1wZXJzcGVjdGl2ZToxMjAwcHh9LnN3aXBlci1jb250YWluZXItY3ViZSwuc3dpcGVyLWNvbnRhaW5lci1mbGlwe292ZXJmbG93OnZpc2libGV9LnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZXtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjstbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDoxfS5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZXtwb2ludGVyLWV2ZW50czphdXRvfS5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LC5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LC5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9we3otaW5kZXg6MDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuOy1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZXt2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwOy1tb3otdHJhbnNmb3JtLW9yaWdpbjowIDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnN3aXBlci1jb250YWluZXItY3ViZS5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXNsaWRley13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7LW1vei10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDstbXMtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9LnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCwuc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCsuc3dpcGVyLXNsaWRlLC5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1wcmV2e3BvaW50ZXItZXZlbnRzOmF1dG87dmlzaWJpbGl0eTp2aXNpYmxlfS5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1jdWJlLXNoYWRvd3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMwMDA7b3BhY2l0eTouNjstd2Via2l0LWZpbHRlcjpibHVyKDUwcHgpO2ZpbHRlcjpibHVyKDUwcHgpO3otaW5kZXg6MH0uc3dpcGVyLWNvbnRhaW5lci1mYWRlLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlIC5zd2lwZXItc2xpZGV7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDstbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0Oy1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDstby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH0uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTstbW96LXRyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTstby10cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZle3BvaW50ZXItZXZlbnRzOmF1dG99LnN3aXBlci16b29tLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3aXBlci16b29tLWNvbnRhaW5lcj5jYW52YXMsLnN3aXBlci16b29tLWNvbnRhaW5lcj5pbWcsLnN3aXBlci16b29tLWNvbnRhaW5lcj5zdmd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbn0uc3dpcGVyLXNjcm9sbGJhcntib3JkZXItcmFkaXVzOjEwcHg7cG9zaXRpb246cmVsYXRpdmU7LW1zLXRvdWNoLWFjdGlvbjpub25lO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMSl9LnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbD4uc3dpcGVyLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjElO2JvdHRvbTozcHg7ei1pbmRleDo1MDtoZWlnaHQ6NXB4O3dpZHRoOjk4JX0uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbD4uc3dpcGVyLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDozcHg7dG9wOjElO3otaW5kZXg6NTA7d2lkdGg6NXB4O2hlaWdodDo5OCV9LnN3aXBlci1zY3JvbGxiYXItZHJhZ3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7Ym9yZGVyLXJhZGl1czoxMHB4O2xlZnQ6MDt0b3A6MH0uc3dpcGVyLXNjcm9sbGJhci1jdXJzb3ItZHJhZ3tjdXJzb3I6bW92ZX0uc3dpcGVyLWxhenktcHJlbG9hZGVye3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTttYXJnaW4tbGVmdDotMjFweDttYXJnaW4tdG9wOi0yMXB4O3otaW5kZXg6MTA7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJTstbW96LXRyYW5zZm9ybS1vcmlnaW46NTAlO3RyYW5zZm9ybS1vcmlnaW46NTAlOy13ZWJraXQtYW5pbWF0aW9uOnN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMixlbmQpIGluZmluaXRlOy1tb3otYW5pbWF0aW9uOnN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMixlbmQpIGluZmluaXRlO2FuaW1hdGlvbjpzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsZW5kKSBpbmZpbml0ZX0uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVye2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UiKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTstd2Via2l0LWJhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjNmZmYnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UiKX1ALXdlYmtpdC1rZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluezEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluezEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0="}},"time_used":34,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/4911410e5153f0d7.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.419Z","timestamp":1785126646419,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/4911410e5153f0d7.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 3814162\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"4911410e5153f0d7.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"e09a94d1ed13e73c8c05e86ecc9b73b5\"\r\nlast-modified: Sat, 13 Jun 2026 00:50:11 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/4911410e5153f0d7.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::5pnv4-1781312483646-99b0a50f7685\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=e6oGejukfs68mWSJT65%2F2E1ztamSOHnZMP%2FGLjUFbxzhR9rP9Q78TzZ1z%2B%2F5eQALEJVI4051aEu2Uth0bWqrFxncTpsnCbyei8dFoQ8Wncptfd%2FzdtO6WLw4O1r6\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9242ff82efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":224417,"size_decoded":73405,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"e09a94d1ed13e73c8c05e86ecc9b73b5","sha1":"5d3e0e86e66f40d854564417d18b9a8cfb50938f","sha256":"bdeee3ad5435b26f62f6a8ce700f78618b18b355f3d3cd21ec3949a59777eaf5","sha512":"7d4e4220b8c82da8621e7f0ae1bfdb323ed094215712b54bfd28ed06e06e0aa9aded8bc0f07eb71ea08e821f75d433c38522d2054e9756e34814622cf8957899","ssdeep":"3072:LZhLWlPznn2U1BR0Bef8xgVrkRMKTopmN6Cstv9it+QK:LZhLWxznn2U1sWK04xstv9it+QK","tlshash":"66240be83995f6626ab302a710af1803733c252b280d4d60a711fdddb57845eb17bf9e","first_seen":"2026-02-04T14:24:19.892015Z","last_seen":"2026-07-27T08:07:37.366889Z","times_seen":1503,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDc4NzUsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImdldEFzc2V0UHJlZml4Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgcj1lLnIoNDEwNjIpO2Z1bmN0aW9uIGwoKXtsZXQgZT1kb2N1bWVudC5jdXJyZW50U2NyaXB0O2lmKCEoZSBpbnN0YW5jZW9mIEhUTUxTY3JpcHRFbGVtZW50KSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHIuSW52YXJpYW50RXJyb3IoYEV4cGVjdGVkIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgdG8gYmUgYSA8c2NyaXB0PiBlbGVtZW50LiBSZWNlaXZlZCAke2V9IGluc3RlYWQuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3ODMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0e3BhdGhuYW1lOnR9PW5ldyBVUkwoZS5zcmMpLG49dC5pbmRleE9mKCIvX25leHQvIik7aWYoLTE9PT1uKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgci5JbnZhcmlhbnRFcnJvcihgRXhwZWN0ZWQgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBzcmMgdG8gY29udGFpbiAnL19uZXh0LycuIFJlY2VpdmVkICR7ZS5zcmN9IGluc3RlYWQuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3ODQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIHQuc2xpY2UoMCxuKX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwxNTUzNiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwic2V0QXR0cmlidXRlc0Zyb21Qcm9wcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7bGV0IHI9e2FjY2VwdENoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc05hbWU6ImNsYXNzIixodG1sRm9yOiJmb3IiLGh0dHBFcXVpdjoiaHR0cC1lcXVpdiIsbm9Nb2R1bGU6Im5vTW9kdWxlIn0sbD1bIm9uTG9hZCIsIm9uUmVhZHkiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwib25FcnJvciIsInN0cmF0ZWd5Iiwic3R5bGVzaGVldHMiXTtmdW5jdGlvbiBhKGUpe3JldHVyblsiYXN5bmMiLCJkZWZlciIsIm5vTW9kdWxlIl0uaW5jbHVkZXMoZSl9ZnVuY3Rpb24gbyhlLHQpe2ZvcihsZXRbbixvXW9mIE9iamVjdC5lbnRyaWVzKHQpKXtpZighdC5oYXNPd25Qcm9wZXJ0eShuKXx8bC5pbmNsdWRlcyhuKXx8dm9pZCAwPT09byljb250aW51ZTtsZXQgaT1yW25dfHxuLnRvTG93ZXJDYXNlKCk7IlNDUklQVCI9PT1lLnRhZ05hbWUmJmEoaSk/ZVtpXT0hIW86ZS5zZXRBdHRyaWJ1dGUoaSxTdHJpbmcobykpLCghMT09PW98fCJTQ1JJUFQiPT09ZS50YWdOYW1lJiZhKGkpJiYoIW98fCJmYWxzZSI9PT1vKSkmJihlLnNldEF0dHJpYnV0ZShpLCIiKSxlLnJlbW92ZUF0dHJpYnV0ZShpKSl9fSgiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDQ4NzA2LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJhcHBCb290c3RyYXAiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCByPWUucig3ODc1KSxsPWUucigxNTUzNik7ZnVuY3Rpb24gYShlKXt2YXIgdCxuO2xldCBhPSgwLHIuZ2V0QXNzZXRQcmVmaXgpKCk7dD1zZWxmLl9fbmV4dF9zLG49KCk9PntlKGEpfSx0JiZ0Lmxlbmd0aD90LnJlZHVjZSgoZSxbdCxuXSk9PmUudGhlbigoKT0+bmV3IFByb21pc2UoKGUscik9PntsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtuJiYoMCxsLnNldEF0dHJpYnV0ZXNGcm9tUHJvcHMpKGEsbiksdD8oYS5zcmM9dCxhLm9ubG9hZD0oKT0+ZSgpLGEub25lcnJvcj1yKTpuJiYoYS5pbm5lckhUTUw9bi5jaGlsZHJlbixzZXRUaW1lb3V0KGUpKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfSkpLFByb21pc2UucmVzb2x2ZSgpKS5jYXRjaChlPT57Y29uc29sZS5lcnJvcihlKX0pLnRoZW4oKCk9PntuKCl9KTpuKCl9d2luZG93Lm5leHQ9e3ZlcnNpb246IjE2LjEuNiIsYXBwRGlyOiEwfSwoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw4NTQ3OSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj17Z2V0T2JqZWN0Q2xhc3NMYWJlbDpmdW5jdGlvbigpe3JldHVybiBhfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fTtmb3IodmFyIGwgaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtlbnVtZXJhYmxlOiEwLGdldDpyW2xdfSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfWZ1bmN0aW9uIG8oZSl7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1hKGUpKXJldHVybiExO2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbnVsbD09PXR8fHQuaGFzT3duUHJvcGVydHkoImlzUHJvdG90eXBlT2YiKX19LDgwOTQwLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIG99LGdldFByb3BlckVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fTtmb3IodmFyIGwgaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtlbnVtZXJhYmxlOiEwLGdldDpyW2xdfSk7bGV0IGE9ZS5yKDg1NDc5KTtmdW5jdGlvbiBvKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJuYW1lImluIGUmJiJtZXNzYWdlImluIGV9ZnVuY3Rpb24gaShlKXtsZXQgdDtyZXR1cm4gbyhlKT9lOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigoMCxhLmlzUGxhaW5PYmplY3QpKGUpPyh0PW5ldyBXZWFrU2V0LEpTT04uc3RyaW5naWZ5KGUsKGUsbik9PntpZigib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uKXtpZih0LmhhcyhuKSlyZXR1cm4iW0NpcmN1bGFyXSI7dC5hZGQobil9cmV0dXJuIG59KSk6ZSsiIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUzOTQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9fSwxNzc0OCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicmVwb3J0R2xvYmFsRXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByfX0pO2xldCByPSJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjplPT57Z2xvYmFsVGhpcy5jb25zb2xlLmVycm9yKGUpfTsoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwzMjc5MywoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj17aXNSZWNvdmVyYWJsZUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LG9uUmVjb3ZlcmFibGVFcnJvcjpmdW5jdGlvbigpe3JldHVybiBmfX07Zm9yKHZhciBsIGluIHIpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sbCx7ZW51bWVyYWJsZTohMCxnZXQ6cltsXX0pO2xldCBhPWUucig4MTI1OCksbz1lLnIoODQwODIpLGk9YS5fKGUucig4MDk0MCkpLHU9ZS5yKDE3NzQ4KSxzPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIGMoZSl7cmV0dXJuIHMuaGFzKGUpfWxldCBmPWU9PntsZXQgdD0oMCxpLmRlZmF1bHQpKGUpJiYiY2F1c2UiaW4gZT9lLmNhdXNlOmU7KDAsby5pc0JhaWxvdXRUb0NTUkVycm9yKSh0KXx8KDAsdS5yZXBvcnRHbG9iYWxFcnJvcikodCl9OygiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDkyMzg2LChlLHQsbik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPXt9fSw2MDg3NywoZSx0LG4pPT57InRyaW1TdGFydCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQ9U3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCksInRyaW1FbmQiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksImRlc2NyaXB0aW9uImluIFN5bWJvbC5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTeW1ib2wucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT0vXCgoLiopXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gZT9lWzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksZT4xJiZ0LnNvbWUoQXJyYXkuaXNBcnJheSk/dC5mbGF0KGUtMSk6dH0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tYXAoZSx0KS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm4gdGhpcy50aGVuKGUsZSk7dmFyIHQ9dGhpcy5jb25zdHJ1Y3Rvcnx8UHJvbWlzZTtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiB0LnJlc29sdmUoZSgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG59KX0sZnVuY3Rpb24obil7cmV0dXJuIHQucmVzb2x2ZShlKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBufSl9KX0pLE9iamVjdC5mcm9tRW50cmllc3x8KE9iamVjdC5mcm9tRW50cmllcz1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShlKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVt0WzBdXT10WzFdLGV9LHt9KX0pLEFycmF5LnByb3RvdHlwZS5hdHx8KEFycmF5LnByb3RvdHlwZS5hdD1mdW5jdGlvbihlKXt2YXIgdD1NYXRoLnRydW5jKGUpfHwwO2lmKHQ8MCYmKHQrPXRoaXMubGVuZ3RoKSwhKHQ8MHx8dD49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW3RdfSksT2JqZWN0Lmhhc093bnx8KE9iamVjdC5oYXNPd249ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoZSksdCl9KSwiY2FuUGFyc2UiaW4gVVJMfHwoVVJMLmNhblBhcnNlPWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBuZXcgVVJMKGUsdCksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSl9LDc5MTIzLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucig2MDg3NyksKCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sNDAxNDAsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7dmFyIG49ZS5sZW5ndGg7Zm9yKGUucHVzaCh0KTswPG47KXt2YXIgcj1uLTE+Pj4xLGw9ZVtyXTtpZigwPG8obCx0KSllW3JdPXQsZVtuXT1sLG49cjtlbHNlIGJyZWFrfX1mdW5jdGlvbiBsKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIGEoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PWVbMF0sbj1lLnBvcCgpO2lmKG4hPT10KXtlWzBdPW47Zm9yKHZhciByPTAsbD1lLmxlbmd0aCxhPWw+Pj4xO3I8YTspe3ZhciBpPTIqKHIrMSktMSx1PWVbaV0scz1pKzEsYz1lW3NdO2lmKDA+byh1LG4pKXM8bCYmMD5vKGMsdSk/KGVbcl09YyxlW3NdPW4scj1zKTooZVtyXT11LGVbaV09bixyPWkpO2Vsc2UgaWYoczxsJiYwPm8oYyxuKSllW3JdPWMsZVtzXT1uLHI9cztlbHNlIGJyZWFrfX1yZXR1cm4gdH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49ZS5zb3J0SW5kZXgtdC5zb3J0SW5kZXg7cmV0dXJuIDAhPT1uP246ZS5pZC10LmlkfWlmKG4udW5zdGFibGVfbm93PXZvaWQgMCwib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSx1PXBlcmZvcm1hbmNlO24udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHUubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgZj1bXSxkPVtdLHA9MSxtPW51bGwsaD0zLGc9ITEsdj0hMSx5PSExLGI9ITEsdz0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsaz0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLFM9InUiPnR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gRShlKXtmb3IodmFyIHQ9bChkKTtudWxsIT09dDspe2lmKG51bGw9PT10LmNhbGxiYWNrKWEoZCk7ZWxzZSBpZih0LnN0YXJ0VGltZTw9ZSlhKGQpLHQuc29ydEluZGV4PXQuZXhwaXJhdGlvblRpbWUscihmLHQpO2Vsc2UgYnJlYWs7dD1sKGQpfX1mdW5jdGlvbiB4KGUpe2lmKHk9ITEsRShlKSwhdilpZihudWxsIT09bChmKSl2PSEwLF98fChfPSEwLGkoKSk7ZWxzZXt2YXIgdD1sKGQpO251bGwhPT10JiZSKHgsdC5zdGFydFRpbWUtZSl9fXZhciBfPSExLFA9LTEsTj01LEM9LTE7ZnVuY3Rpb24gVCgpe3JldHVybiEhYnx8IShuLnVuc3RhYmxlX25vdygpLUM8Til9ZnVuY3Rpb24gTygpe2lmKGI9ITEsXyl7dmFyIGU9bi51bnN0YWJsZV9ub3coKTtDPWU7dmFyIHQ9ITA7dHJ5e2U6e3Y9ITEseSYmKHk9ITEsayhQKSxQPS0xKSxnPSEwO3ZhciByPWg7dHJ5e3Q6e2ZvcihFKGUpLG09bChmKTtudWxsIT09bSYmIShtLmV4cGlyYXRpb25UaW1lPmUmJlQoKSk7KXt2YXIgbz1tLmNhbGxiYWNrO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvKXttLmNhbGxiYWNrPW51bGwsaD1tLnByaW9yaXR5TGV2ZWw7dmFyIHU9byhtLmV4cGlyYXRpb25UaW1lPD1lKTtpZihlPW4udW5zdGFibGVfbm93KCksImZ1bmN0aW9uIj09dHlwZW9mIHUpe20uY2FsbGJhY2s9dSxFKGUpLHQ9ITA7YnJlYWsgdH1tPT09bChmKSYmYShmKSxFKGUpfWVsc2UgYShmKTttPWwoZil9aWYobnVsbCE9PW0pdD0hMDtlbHNle3ZhciBzPWwoZCk7bnVsbCE9PXMmJlIoeCxzLnN0YXJ0VGltZS1lKSx0PSExfX1icmVhayBlfWZpbmFsbHl7bT1udWxsLGg9cixnPSExfX19ZmluYWxseXt0P2koKTpfPSExfX19aWYoImZ1bmN0aW9uIj09dHlwZW9mIFMpaT1mdW5jdGlvbigpe1MoTyl9O2Vsc2UgaWYoInUiPnR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIHo9bmV3IE1lc3NhZ2VDaGFubmVsLEw9ei5wb3J0Mjt6LnBvcnQxLm9ubWVzc2FnZT1PLGk9ZnVuY3Rpb24oKXtMLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIGk9ZnVuY3Rpb24oKXt3KE8sMCl9O2Z1bmN0aW9uIFIoZSx0KXtQPXcoZnVuY3Rpb24oKXtlKG4udW5zdGFibGVfbm93KCkpfSx0KX1uLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG4udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxuLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsbi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG4udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsbi51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLG4udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7ZS5jYWxsYmFjaz1udWxsfSxuLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpezA+ZXx8MTI1PGU/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6Tj0wPGU/TWF0aC5mbG9vcigxZTMvZSk6NX0sbi51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBofSxuLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGgpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciB0PTM7YnJlYWs7ZGVmYXVsdDp0PWh9dmFyIG49aDtoPXQ7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtoPW59fSxuLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe2I9ITB9LG4udW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDplPTN9dmFyIG49aDtoPWU7dHJ5e3JldHVybiB0KCl9ZmluYWxseXtoPW59fSxuLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0LGEpe3ZhciBvPW4udW5zdGFibGVfbm93KCk7c3dpdGNoKGE9Im9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSYmIm51bWJlciI9PXR5cGVvZihhPWEuZGVsYXkpJiYwPGE/bythOm8sZSl7Y2FzZSAxOnZhciB1PS0xO2JyZWFrO2Nhc2UgMjp1PTI1MDticmVhaztjYXNlIDU6dT0weDNmZmZmZmZmO2JyZWFrO2Nhc2UgNDp1PTFlNDticmVhaztkZWZhdWx0OnU9NWUzfXJldHVybiB1PWErdSxlPXtpZDpwKyssY2FsbGJhY2s6dCxwcmlvcml0eUxldmVsOmUsc3RhcnRUaW1lOmEsZXhwaXJhdGlvblRpbWU6dSxzb3J0SW5kZXg6LTF9LGE+bz8oZS5zb3J0SW5kZXg9YSxyKGQsZSksbnVsbD09PWwoZikmJmU9PT1sKGQpJiYoeT8oayhQKSxQPS0xKTp5PSEwLFIoeCxhLW8pKSk6KGUuc29ydEluZGV4PXUscihmLGUpLHZ8fGd8fCh2PSEwLF98fChfPSEwLGkoKSkpKSxlfSxuLnVuc3RhYmxlX3Nob3VsZFlpZWxkPVQsbi51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9aDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1oO2g9dDt0cnl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7aD1ufX19fSwyNjQ0MywoZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1lLnIoNDAxNDApfSw4MjQyNCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLGw9ZS5pKDgyNjM3KSxhPWUucigyNjQ0Myksbz1lLnIoNzUyMDEpLGk9ZS5yKDI5MDgwKTtmdW5jdGlvbiB1KGUpe3ZhciB0PSJodHRwczovL3JlYWN0LmRldi9lcnJvcnMvIitlO2lmKDE8YXJndW1lbnRzLmxlbmd0aCl7dCs9Ij9hcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzWzFdKTtmb3IodmFyIG49MjtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXQrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSl9cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2UrIjsgdmlzaXQgIit0KyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9ZnVuY3Rpb24gcyhlKXtyZXR1cm4hKCFlfHwxIT09ZS5ub2RlVHlwZSYmOSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvIDAhPSg0MDk4Jih0PWUpLmZsYWdzKSYmKG49dC5yZXR1cm4pLGU9dC5yZXR1cm47d2hpbGUoZSl9cmV0dXJuIDM9PT10LnRhZz9uOm51bGx9ZnVuY3Rpb24gZihlKXtpZigxMz09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PXQmJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PXQpcmV0dXJuIHQuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGUpe2lmKDMxPT09ZS50YWcpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09dCYmbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKHQ9ZS5tZW1vaXplZFN0YXRlKSxudWxsIT09dClyZXR1cm4gdC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSl7aWYoYyhlKSE9PWUpdGhyb3cgRXJyb3IodSgxODgpKX1mdW5jdGlvbiBtKGUsdCxuLHIsbCxhKXtmb3IoO251bGwhPT1lOyl7aWYoNT09PWUudGFnJiZuKGUscixsLGEpfHwoMjIhPT1lLnRhZ3x8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSkmJih0fHw1IT09ZS50YWcpJiZtKGUuY2hpbGQsdCxuLHIsbCxhKSlyZXR1cm4hMDtlPWUuc2libGluZ31yZXR1cm4hMX1mdW5jdGlvbiBoKGUpe2ZvcihlPWUucmV0dXJuO251bGwhPT1lOyl7aWYoMz09PWUudGFnfHw1PT09ZS50YWcpcmV0dXJuIGU7ZT1lLnJldHVybn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBnKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSA1OnJldHVybiBlLnN0YXRlTm9kZTtjYXNlIDM6cmV0dXJuIGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87ZGVmYXVsdDp0aHJvdyBFcnJvcih1KDU1OSkpfX12YXIgdj1udWxsLHk9bnVsbDtmdW5jdGlvbiBiKGUpe3JldHVybiB2PWUsITB9ZnVuY3Rpb24gdyhlLHQsbil7cmV0dXJuIGU9PT1ufHxlPT09dCYmKHY9ZSwhMCl9ZnVuY3Rpb24gayhlLHQsbil7cmV0dXJuIGU9PT1uPyh5PWUsITEpOmU9PT10JiYobnVsbCE9PXkmJih2PWUpLCEwKX1mdW5jdGlvbiBTKGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2RvIGU9bnVsbD09PWU/bnVsbDplLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcmJjMhPT1lLnRhZylyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBFKGUsdCxuKXtmb3IodmFyIHI9MCxsPWU7bDtsPW4obCkpcisrO2w9MDtmb3IodmFyIGE9dDthO2E9bihhKSlsKys7Zm9yKDswPHItbDspZT1uKGUpLHItLTtmb3IoOzA8bC1yOyl0PW4odCksbC0tO2Zvcig7ci0tOyl7aWYoZT09PXR8fG51bGwhPT10JiZlPT09dC5hbHRlcm5hdGUpcmV0dXJuIGU7ZT1uKGUpLHQ9bih0KX1yZXR1cm4gbnVsbH12YXIgeD1PYmplY3QuYXNzaWduLF89U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLFA9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxOPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLEM9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxUPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksTz1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHo9U3ltYm9sLmZvcigicmVhY3QuY29uc3VtZXIiKSxMPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxSPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksTT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLEk9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLEQ9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLEY9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpO1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIik7dmFyIEE9U3ltYm9sLmZvcigicmVhY3QuYWN0aXZpdHkiKSxqPVN5bWJvbC5mb3IoInJlYWN0LmxlZ2FjeV9oaWRkZW4iKTtTeW1ib2wuZm9yKCJyZWFjdC50cmFjaW5nX21hcmtlciIpO3ZhciBVPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWwiKSxCPVN5bWJvbC5mb3IoInJlYWN0LnZpZXdfdHJhbnNpdGlvbiIpLFY9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEgoZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGU/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZT1WJiZlW1ZdfHxlWyJAQGl0ZXJhdG9yIl0pP2U6bnVsbH12YXIgJD1TeW1ib2wuZm9yKCJyZWFjdC5jbGllbnQucmVmZXJlbmNlIiksUT1BcnJheS5pc0FycmF5LFc9by5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUscT1pLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxLPXtwZW5kaW5nOiExLGRhdGE6bnVsbCxtZXRob2Q6bnVsbCxhY3Rpb246bnVsbH0sWD1bXSxHPS0xO2Z1bmN0aW9uIFkoZSl7cmV0dXJue2N1cnJlbnQ6ZX19ZnVuY3Rpb24gSihlKXswPkd8fChlLmN1cnJlbnQ9WFtHXSxYW0ddPW51bGwsRy0tKX1mdW5jdGlvbiBaKGUsdCl7WFsrK0ddPWUuY3VycmVudCxlLmN1cnJlbnQ9dH12YXIgZWU9WShudWxsKSxldD1ZKG51bGwpLGVuPVkobnVsbCksZXI9WShudWxsKTtmdW5jdGlvbiBlbChlLHQpe3N3aXRjaChaKGVuLHQpLFooZXQsZSksWihlZSxudWxsKSx0Lm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTplPShlPXQuZG9jdW1lbnRFbGVtZW50KSYmKGU9ZS5uYW1lc3BhY2VVUkkpP2NzKGUpOjA7YnJlYWs7ZGVmYXVsdDppZihlPXQudGFnTmFtZSx0PXQubmFtZXNwYWNlVVJJKWU9Y2ModD1jcyh0KSxlKTtlbHNlIHN3aXRjaChlKXtjYXNlInN2ZyI6ZT0xO2JyZWFrO2Nhc2UibWF0aCI6ZT0yO2JyZWFrO2RlZmF1bHQ6ZT0wfX1KKGVlKSxaKGVlLGUpfWZ1bmN0aW9uIGVhKCl7SihlZSksSihldCksSihlbil9ZnVuY3Rpb24gZW8oZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO251bGwhPT10JiYoZnYuX2N1cnJlbnRWYWx1ZT10Lm1lbW9pemVkU3RhdGUsWihlcixlKSk7dmFyIG49Y2ModD1lZS5jdXJyZW50LGUudHlwZSk7dCE9PW4mJihaKGV0LGUpLFooZWUsbikpfWZ1bmN0aW9uIGVpKGUpe2V0LmN1cnJlbnQ9PT1lJiYoSihlZSksSihldCkpLGVyLmN1cnJlbnQ9PT1lJiYoSihlciksZnYuX2N1cnJlbnRWYWx1ZT1LKX1mdW5jdGlvbiBldShlKXtpZih2b2lkIDA9PT10WCl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChlKXt2YXIgdD1lLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7dFg9dCYmdFsxXXx8IiIsdEc9LTE8ZS5zdGFjay5pbmRleE9mKCJcbiAgICBhdCIpPyIgKDxhbm9ueW1vdXM+KSI6LTE8ZS5zdGFjay5pbmRleE9mKCJAIik/IkB1bmtub3duOjA6MCI6IiJ9cmV0dXJuIlxuIit0WCtlK3RHfXZhciBlcz0hMTtmdW5jdGlvbiBlYyhlLHQpe2lmKCFlfHxlcylyZXR1cm4iIjtlcz0hMDt2YXIgbj1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e3ZhciByPXtEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6ZnVuY3Rpb24oKXt0cnl7aWYodCl7dmFyIG49ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfTtpZihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsInByb3BzIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX19KSwib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QobixbXSl9Y2F0Y2goZSl7dmFyIHI9ZX1SZWZsZWN0LmNvbnN0cnVjdChlLFtdLG4pfWVsc2V7dHJ5e24uY2FsbCgpfWNhdGNoKGUpe3I9ZX1lLmNhbGwobi5wcm90b3R5cGUpfX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3I9ZX0obj1lKCkpJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5jYXRjaCYmbi5jYXRjaChmdW5jdGlvbigpe30pfX1jYXRjaChlKXtpZihlJiZyJiYic3RyaW5nIj09dHlwZW9mIGUuc3RhY2spcmV0dXJuW2Uuc3RhY2ssci5zdGFja119cmV0dXJuW251bGwsbnVsbF19fTtyLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZT0iRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Ijt2YXIgbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIik7bCYmbC5jb25maWd1cmFibGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwibmFtZSIse3ZhbHVlOiJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QifSk7dmFyIGE9ci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxvPWFbMF0saT1hWzFdO2lmKG8mJmkpe3ZhciB1PW8uc3BsaXQoIlxuIikscz1pLnNwbGl0KCJcbiIpO2ZvcihsPXI9MDtyPHUubGVuZ3RoJiYhdVtyXS5pbmNsdWRlcygiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Iik7KXIrKztmb3IoO2w8cy5sZW5ndGgmJiFzW2xdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspbCsrO2lmKHI9PT11Lmxlbmd0aHx8bD09PXMubGVuZ3RoKWZvcihyPXUubGVuZ3RoLTEsbD1zLmxlbmd0aC0xOzE8PXImJjA8PWwmJnVbcl0hPT1zW2xdOylsLS07Zm9yKDsxPD1yJiYwPD1sO3ItLSxsLS0paWYodVtyXSE9PXNbbF0pe2lmKDEhPT1yfHwxIT09bClkbyBpZihyLS0sbC0tLDA+bHx8dVtyXSE9PXNbbF0pe3ZhciBjPSJcbiIrdVtyXS5yZXBsYWNlKCIgYXQgbmV3ICIsIiBhdCAiKTtyZXR1cm4gZS5kaXNwbGF5TmFtZSYmYy5pbmNsdWRlcygiPGFub255bW91cz4iKSYmKGM9Yy5yZXBsYWNlKCI8YW5vbnltb3VzPiIsZS5kaXNwbGF5TmFtZSkpLGN9d2hpbGUoMTw9ciYmMDw9bClicmVha319fWZpbmFsbHl7ZXM9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9bn1yZXR1cm4obj1lP2UuZGlzcGxheU5hbWV8fGUubmFtZToiIik/ZXUobik6IiJ9ZnVuY3Rpb24gZWYoZSl7dHJ5e3ZhciB0PSIiLG49bnVsbDtkbyB0Kz1mdW5jdGlvbihlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gZXUoZS50eXBlKTtjYXNlIDE2OnJldHVybiBldSgiTGF6eSIpO2Nhc2UgMTM6cmV0dXJuIGUuY2hpbGQhPT10JiZudWxsIT09dD9ldSgiU3VzcGVuc2UgRmFsbGJhY2siKTpldSgiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBldSgiU3VzcGVuc2VMaXN0Iik7Y2FzZSAwOmNhc2UgMTU6cmV0dXJuIGVjKGUudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gZWMoZS50eXBlLnJlbmRlciwhMSk7Y2FzZSAxOnJldHVybiBlYyhlLnR5cGUsITApO2Nhc2UgMzE6cmV0dXJuIGV1KCJBY3Rpdml0eSIpO2Nhc2UgMzA6cmV0dXJuIGV1KCJWaWV3VHJhbnNpdGlvbiIpO2RlZmF1bHQ6cmV0dXJuIiJ9fShlLG4pLG49ZSxlPWUucmV0dXJuO3doaWxlKGUpcmV0dXJuIHR9Y2F0Y2goZSl7cmV0dXJuIlxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogIitlLm1lc3NhZ2UrIlxuIitlLnN0YWNrfX12YXIgZWQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxlcD1hLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssZW09YS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxlaD1hLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGVnPWEudW5zdGFibGVfcmVxdWVzdFBhaW50LGV2PWEudW5zdGFibGVfbm93LGV5PWEudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsZWI9YS51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxldz1hLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGVrPWEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZVM9YS51bnN0YWJsZV9Mb3dQcmlvcml0eSxlRT1hLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxleD0oYS5sb2csYS51bnN0YWJsZV9zZXREaXNhYmxlWWllbGRWYWx1ZSxudWxsKSxlXz1udWxsLGVQPU1hdGguY2x6MzI/TWF0aC5jbHozMjpmdW5jdGlvbihlKXtyZXR1cm4gMD09KGU+Pj49MCk/MzI6MzEtKGVOKGUpL2VDfDApfDB9LGVOPU1hdGgubG9nLGVDPU1hdGguTE4yLGVUPTI1NixlTz0yNjIxNDQsZXo9NDE5NDMwNDtmdW5jdGlvbiBlTChlKXt2YXIgdD00MiZlO2lmKDAhPT10KXJldHVybiB0O3N3aXRjaChlJi1lKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpyZXR1cm4gNjQ7Y2FzZSAxMjg6cmV0dXJuIDEyODtjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6cmV0dXJuIDI2MTg4OCZlO2Nhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIDM5MzIxNjAmZTtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMHgxMDAwMDAwOmNhc2UgMHgyMDAwMDAwOnJldHVybiAweDNjMDAwMDAmZTtjYXNlIDB4NDAwMDAwMDpyZXR1cm4gMHg0MDAwMDAwO2Nhc2UgMHg4MDAwMDAwOnJldHVybiAweDgwMDAwMDA7Y2FzZSAweDEwMDAwMDAwOnJldHVybiAweDEwMDAwMDAwO2Nhc2UgMHgyMDAwMDAwMDpyZXR1cm4gMHgyMDAwMDAwMDtjYXNlIDB4NDAwMDAwMDA6cmV0dXJuIDA7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gZVIoZSx0LG4pe3ZhciByPWUucGVuZGluZ0xhbmVzO2lmKDA9PT1yKXJldHVybiAwO3ZhciBsPTAsYT1lLnN1c3BlbmRlZExhbmVzLG89ZS5waW5nZWRMYW5lcztlPWUud2FybUxhbmVzO3ZhciBpPTB4N2ZmZmZmZiZyO3JldHVybiAwIT09aT8wIT0ocj1pJn5hKT9sPWVMKHIpOjAhPShvJj1pKT9sPWVMKG8pOm58fDAhPShuPWkmfmUpJiYobD1lTChuKSk6MCE9KGk9ciZ+YSk/bD1lTChpKTowIT09bz9sPWVMKG8pOm58fDAhPShuPXImfmUpJiYobD1lTChuKSksMD09PWw/MDowIT09dCYmdCE9PWwmJjA9PSh0JmEpJiYoKGE9bCYtbCk+PShuPXQmLXQpfHwzMj09PWEmJjAhPSg0MTk0MDQ4Jm4pKT90Omx9ZnVuY3Rpb24gZU0oZSx0KXtyZXR1cm4gMD09KGUucGVuZGluZ0xhbmVzJn4oZS5zdXNwZW5kZWRMYW5lcyZ+ZS5waW5nZWRMYW5lcykmdCl9ZnVuY3Rpb24gZUkoKXt2YXIgZT1lejtyZXR1cm4gMD09KDB4M2MwMDAwMCYoZXo8PD0xKSkmJihlej00MTk0MzA0KSxlfWZ1bmN0aW9uIGVEKGUpe2Zvcih2YXIgdD1bXSxuPTA7MzE+bjtuKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIGVGKGUsdCl7ZS5wZW5kaW5nTGFuZXN8PXQsMHgxMDAwMDAwMCE9PXQmJihlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTApfWZ1bmN0aW9uIGVBKGUsdCxuKXtlLnBlbmRpbmdMYW5lc3w9dCxlLnN1c3BlbmRlZExhbmVzJj1+dDt2YXIgcj0zMS1lUCh0KTtlLmVudGFuZ2xlZExhbmVzfD10LGUuZW50YW5nbGVtZW50c1tyXT0weDQwMDAwMDAwfGUuZW50YW5nbGVtZW50c1tyXXwyNjE5MzAmbn1mdW5jdGlvbiBlaihlLHQpe3ZhciBuPWUuZW50YW5nbGVkTGFuZXN8PXQ7Zm9yKGU9ZS5lbnRhbmdsZW1lbnRzO247KXt2YXIgcj0zMS1lUChuKSxsPTE8PHI7bCZ0fGVbcl0mdCYmKGVbcl18PXQpLG4mPX5sfX1mdW5jdGlvbiBlVShlLHQpe3ZhciBuPXQmLXQ7cmV0dXJuIDAhPSgobj0wIT0oNDImbik/MTplQihuKSkmKGUuc3VzcGVuZGVkTGFuZXN8dCkpPzA6bn1mdW5jdGlvbiBlQihlKXtzd2l0Y2goZSl7Y2FzZSAyOmU9MTticmVhaztjYXNlIDg6ZT00O2JyZWFrO2Nhc2UgMzI6ZT0xNjticmVhaztjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMHgxMDAwMDAwOmNhc2UgMHgyMDAwMDAwOmU9MTI4O2JyZWFrO2Nhc2UgMHgxMDAwMDAwMDplPTB4ODAwMDAwMDticmVhaztkZWZhdWx0OmU9MH1yZXR1cm4gZX1mdW5jdGlvbiBlVihlKXtyZXR1cm4gMjwoZSY9LWUpPzg8ZT8wIT0oMHg3ZmZmZmZmJmUpPzMyOjB4MTAwMDAwMDA6ODoyfWZ1bmN0aW9uIGVIKCl7dmFyIGU9cS5wO3JldHVybiAwIT09ZT9lOnZvaWQgMD09PShlPXdpbmRvdy5ldmVudCk/MzI6ZkwoZS50eXBlKX1mdW5jdGlvbiBlJChlLHQpe3ZhciBuPXEucDt0cnl7cmV0dXJuIHEucD1lLHQoKX1maW5hbGx5e3EucD1ufX12YXIgZVE9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksZVc9Il9fcmVhY3RGaWJlciQiK2VRLGVxPSJfX3JlYWN0UHJvcHMkIitlUSxlSz0iX19yZWFjdENvbnRhaW5lciQiK2VRLGVYPSJfX3JlYWN0RXZlbnRzJCIrZVEsZUc9Il9fcmVhY3RMaXN0ZW5lcnMkIitlUSxlWT0iX19yZWFjdEhhbmRsZXMkIitlUSxlSj0iX19yZWFjdFJlc291cmNlcyQiK2VRLGVaPSJfX3JlYWN0TWFya2VyJCIrZVE7ZnVuY3Rpb24gZTAoZSl7ZGVsZXRlIGVbZVddLGRlbGV0ZSBlW2VxXSxkZWxldGUgZVtlWF0sZGVsZXRlIGVbZUddLGRlbGV0ZSBlW2VZXX1mdW5jdGlvbiBlMShlKXt2YXIgdDtpZih0PWVbZVddKXJldHVybiB0O2Zvcih2YXIgbj1lLnBhcmVudE5vZGU7bjspe2lmKHQ9bltlS118fG5bZVddKXtpZihuPXQuYWx0ZXJuYXRlLG51bGwhPT10LmNoaWxkfHxudWxsIT09biYmbnVsbCE9PW4uY2hpbGQpZm9yKGU9Y0soZSk7bnVsbCE9PWU7KXtpZihuPWVbZVddKXJldHVybiBuO2U9Y0soZSl9cmV0dXJuIHR9bj0oZT1uKS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIGUyKGUpe2lmKGU9ZVtlV118fGVbZUtdKXt2YXIgdD1lLnRhZztpZig1PT09dHx8Nj09PXR8fDEzPT09dHx8MzE9PT10fHwyNj09PXR8fDI3PT09dHx8Mz09PXQpcmV0dXJuIGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZTMoZSl7dmFyIHQ9ZS50YWc7aWYoNT09PXR8fDI2PT09dHx8Mjc9PT10fHw2PT09dClyZXR1cm4gZS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IodSgzMykpfWZ1bmN0aW9uIGU0KGUpe3ZhciB0PWVbZUpdO3JldHVybiB0fHwodD1lW2VKXT17aG9pc3RhYmxlU3R5bGVzOm5ldyBNYXAsaG9pc3RhYmxlU2NyaXB0czpuZXcgTWFwfSksdH1mdW5jdGlvbiBlOChlKXtlW2VaXT0hMH12YXIgZTU9bmV3IFNldCxlNj17fTtmdW5jdGlvbiBlOShlLHQpe2U3KGUsdCksZTcoZSsiQ2FwdHVyZSIsdCl9ZnVuY3Rpb24gZTcoZSx0KXtmb3IoZTZbZV09dCxlPTA7ZTx0Lmxlbmd0aDtlKyspZTUuYWRkKHRbZV0pfXZhciB0ZT1SZWdFeHAoIl5bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQiKSx0dD17fSx0bj17fSx0cj0hMTtmdW5jdGlvbiB0bCgpe3ZhciBlPXRyO3JldHVybiB0cj0hMSxlfWZ1bmN0aW9uIHRhKGUsdCxuKXtpZihlZC5jYWxsKHRuLHQpfHwhZWQuY2FsbCh0dCx0KSYmKHRlLnRlc3QodCk/dG5bdF09ITA6KHR0W3RdPSEwLCExKSkpaWYobnVsbD09PW4pZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UidW5kZWZpbmVkIjpjYXNlImZ1bmN0aW9uIjpjYXNlInN5bWJvbCI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJuO2Nhc2UiYm9vbGVhbiI6dmFyIHI9dC50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7aWYoImRhdGEtIiE9PXImJiJhcmlhLSIhPT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKHQpfWUuc2V0QXR0cmlidXRlKHQsIiIrbil9fWZ1bmN0aW9uIHRvKGUsdCxuKXtpZihudWxsPT09billLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle3N3aXRjaCh0eXBlb2Ygbil7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpjYXNlImJvb2xlYW4iOmUucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn1lLnNldEF0dHJpYnV0ZSh0LCIiK24pfX1mdW5jdGlvbiB0aShlLHQsbixyKXtpZihudWxsPT09cillLnJlbW92ZUF0dHJpYnV0ZShuKTtlbHNle3N3aXRjaCh0eXBlb2Ygcil7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpjYXNlImJvb2xlYW4iOmUucmVtb3ZlQXR0cmlidXRlKG4pO3JldHVybn1lLnNldEF0dHJpYnV0ZU5TKHQsbiwiIityKX19ZnVuY3Rpb24gdHUoZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlImJpZ2ludCI6Y2FzZSJib29sZWFuIjpjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOmNhc2UidW5kZWZpbmVkIjpjYXNlIm9iamVjdCI6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gdHMoZSl7dmFyIHQ9ZS50eXBlO3JldHVybihlPWUubm9kZU5hbWUpJiYiaW5wdXQiPT09ZS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PXR8fCJyYWRpbyI9PT10KX1mdW5jdGlvbiB0YyhlKXtpZighZS5fdmFsdWVUcmFja2VyKXt2YXIgdD10cyhlKT8iY2hlY2tlZCI6InZhbHVlIjtlLl92YWx1ZVRyYWNrZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsdCk7aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJnZvaWQgMCE9PXImJiJmdW5jdGlvbiI9PXR5cGVvZiByLmdldCYmImZ1bmN0aW9uIj09dHlwZW9mIHIuc2V0KXt2YXIgbD1yLmdldCxhPXIuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe249IiIrZSxhLmNhbGwodGhpcyxlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOnIuZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBufSxzZXRWYWx1ZTpmdW5jdGlvbihlKXtuPSIiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW3RdfX19fShlLHQsIiIrZVt0XSl9fWZ1bmN0aW9uIHRmKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUuX3ZhbHVlVHJhY2tlcjtpZighdClyZXR1cm4hMDt2YXIgbj10LmdldFZhbHVlKCkscj0iIjtyZXR1cm4gZSYmKHI9dHMoZSk/ZS5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiOmUudmFsdWUpLChlPXIpIT09biYmKHQuc2V0VmFsdWUoZSksITApfWZ1bmN0aW9uIHRkKGUpe2lmKHZvaWQgMD09PShlPWV8fCgidSI+dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCkpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gZS5hY3RpdmVFbGVtZW50fHxlLmJvZHl9Y2F0Y2godCl7cmV0dXJuIGUuYm9keX19dmFyIHRwPS9bXG4iXFxdL2c7ZnVuY3Rpb24gdG0oZSl7cmV0dXJuIGUucmVwbGFjZSh0cCxmdW5jdGlvbihlKXtyZXR1cm4iXFwiK2UuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIiAifSl9ZnVuY3Rpb24gdGgoZSx0LG4scixsLGEsbyxpKXtlLm5hbWU9IiIsbnVsbCE9byYmImZ1bmN0aW9uIiE9dHlwZW9mIG8mJiJzeW1ib2wiIT10eXBlb2YgbyYmImJvb2xlYW4iIT10eXBlb2Ygbz9lLnR5cGU9bzplLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLG51bGwhPXQ/Im51bWJlciI9PT1vPygwPT09dCYmIiI9PT1lLnZhbHVlfHxlLnZhbHVlIT10KSYmKGUudmFsdWU9IiIrdHUodCkpOmUudmFsdWUhPT0iIit0dSh0KSYmKGUudmFsdWU9IiIrdHUodCkpOiJzdWJtaXQiIT09byYmInJlc2V0IiE9PW98fGUucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpLG51bGwhPXQ/dHYoZSxvLHR1KHQpKTpudWxsIT1uP3R2KGUsbyx0dShuKSk6bnVsbCE9ciYmZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksbnVsbD09bCYmbnVsbCE9YSYmKGUuZGVmYXVsdENoZWNrZWQ9ISFhKSxudWxsIT1sJiYoZS5jaGVja2VkPWwmJiJmdW5jdGlvbiIhPXR5cGVvZiBsJiYic3ltYm9sIiE9dHlwZW9mIGwpLG51bGwhPWkmJiJmdW5jdGlvbiIhPXR5cGVvZiBpJiYic3ltYm9sIiE9dHlwZW9mIGkmJiJib29sZWFuIiE9dHlwZW9mIGk/ZS5uYW1lPSIiK3R1KGkpOmUucmVtb3ZlQXR0cmlidXRlKCJuYW1lIil9ZnVuY3Rpb24gdGcoZSx0LG4scixsLGEsbyxpKXtpZihudWxsIT1hJiYiZnVuY3Rpb24iIT10eXBlb2YgYSYmInN5bWJvbCIhPXR5cGVvZiBhJiYiYm9vbGVhbiIhPXR5cGVvZiBhJiYoZS50eXBlPWEpLG51bGwhPXR8fG51bGwhPW4pe2lmKCgic3VibWl0Ij09PWF8fCJyZXNldCI9PT1hKSYmbnVsbD09dClyZXR1cm4gdm9pZCB0YyhlKTtuPW51bGwhPW4/IiIrdHUobik6IiIsdD1udWxsIT10PyIiK3R1KHQpOm4saXx8dD09PWUudmFsdWV8fChlLnZhbHVlPXQpLGUuZGVmYXVsdFZhbHVlPXR9cj0iZnVuY3Rpb24iIT10eXBlb2Yocj1udWxsIT1yP3I6bCkmJiJzeW1ib2wiIT10eXBlb2YgciYmISFyLGUuY2hlY2tlZD1pP2UuY2hlY2tlZDohIXIsZS5kZWZhdWx0Q2hlY2tlZD0hIXIsbnVsbCE9byYmImZ1bmN0aW9uIiE9dHlwZW9mIG8mJiJzeW1ib2wiIT10eXBlb2YgbyYmImJvb2xlYW4iIT10eXBlb2YgbyYmKGUubmFtZT1vKSx0YyhlKX1mdW5jdGlvbiB0dihlLHQsbil7Im51bWJlciI9PT10JiZ0ZChlLm93bmVyRG9jdW1lbnQpPT09ZXx8ZS5kZWZhdWx0VmFsdWU9PT0iIitufHwoZS5kZWZhdWx0VmFsdWU9IiIrbil9ZnVuY3Rpb24gdHkoZSx0LG4scil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIGw9MDtsPG4ubGVuZ3RoO2wrKyl0WyIkIituW2xdXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWw9dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtuXS52YWx1ZSksZVtuXS5zZWxlY3RlZCE9PWwmJihlW25dLnNlbGVjdGVkPWwpLGwmJnImJihlW25dLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3IobD0wLG49IiIrdHUobiksdD1udWxsO2w8ZS5sZW5ndGg7bCsrKXtpZihlW2xdLnZhbHVlPT09bil7ZVtsXS5zZWxlY3RlZD0hMCxyJiYoZVtsXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09dHx8ZVtsXS5kaXNhYmxlZHx8KHQ9ZVtsXSl9bnVsbCE9PXQmJih0LnNlbGVjdGVkPSEwKX19ZnVuY3Rpb24gdGIoZSx0LG4pe2lmKG51bGwhPXQmJigodD0iIit0dSh0KSkhPT1lLnZhbHVlJiYoZS52YWx1ZT10KSxudWxsPT1uKSl7ZS5kZWZhdWx0VmFsdWUhPT10JiYoZS5kZWZhdWx0VmFsdWU9dCk7cmV0dXJufWUuZGVmYXVsdFZhbHVlPW51bGwhPW4/IiIrdHUobik6IiJ9ZnVuY3Rpb24gdHcoZSx0LG4scil7aWYobnVsbD09dCl7aWYobnVsbCE9cil7aWYobnVsbCE9bil0aHJvdyBFcnJvcih1KDkyKSk7aWYoUShyKSl7aWYoMTxyLmxlbmd0aCl0aHJvdyBFcnJvcih1KDkzKSk7cj1yWzBdfW49cn1udWxsPT1uJiYobj0iIiksdD1ufWUuZGVmYXVsdFZhbHVlPW49dHUodCksKHI9ZS50ZXh0Q29udGVudCk9PT1uJiYiIiE9PXImJm51bGwhPT1yJiYoZS52YWx1ZT1yKSx0YyhlKX1mdW5jdGlvbiB0ayhlLHQpe2lmKHQpe3ZhciBuPWUuZmlyc3RDaGlsZDtpZihuJiZuPT09ZS5sYXN0Q2hpbGQmJjM9PT1uLm5vZGVUeXBlKXtuLm5vZGVWYWx1ZT10O3JldHVybn19ZS50ZXh0Q29udGVudD10fXZhciB0Uz1uZXcgU2V0KCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXAiLnNwbGl0KCIgIikpO2Z1bmN0aW9uIHRFKGUsdCxuKXt2YXIgcj0wPT09dC5pbmRleE9mKCItLSIpO251bGw9PW58fCJib29sZWFuIj09dHlwZW9mIG58fCIiPT09bj9yP2Uuc2V0UHJvcGVydHkodCwiIik6ImZsb2F0Ij09PXQ/ZS5jc3NGbG9hdD0iIjplW3RdPSIiOnI/ZS5zZXRQcm9wZXJ0eSh0LG4pOiJudW1iZXIiIT10eXBlb2Ygbnx8MD09PW58fHRTLmhhcyh0KT8iZmxvYXQiPT09dD9lLmNzc0Zsb2F0PW46ZVt0XT0oIiIrbikudHJpbSgpOmVbdF09bisicHgifWZ1bmN0aW9uIHR4KGUsdCxuKXtpZihudWxsIT10JiYib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IodSg2MikpO2lmKGU9ZS5zdHlsZSxudWxsIT1uKXtmb3IodmFyIHIgaW4gbikhbi5oYXNPd25Qcm9wZXJ0eShyKXx8bnVsbCE9dCYmdC5oYXNPd25Qcm9wZXJ0eShyKXx8KDA9PT1yLmluZGV4T2YoIi0tIik/ZS5zZXRQcm9wZXJ0eShyLCIiKToiZmxvYXQiPT09cj9lLmNzc0Zsb2F0PSIiOmVbcl09IiIsdHI9ITApO2Zvcih2YXIgbCBpbiB0KXI9dFtsXSx0Lmhhc093blByb3BlcnR5KGwpJiZuW2xdIT09ciYmKHRFKGUsbCxyKSx0cj0hMCl9ZWxzZSBmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiZ0RShlLGEsdFthXSl9ZnVuY3Rpb24gdF8oZSl7aWYoLTE9PT1lLmluZGV4T2YoIi0iKSlyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZSJhbm5vdGF0aW9uLXhtbCI6Y2FzZSJjb2xvci1wcm9maWxlIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJmb250LWZhY2Utc3JjIjpjYXNlImZvbnQtZmFjZS11cmkiOmNhc2UiZm9udC1mYWNlLWZvcm1hdCI6Y2FzZSJmb250LWZhY2UtbmFtZSI6Y2FzZSJtaXNzaW5nLWdseXBoIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgdFA9bmV3IE1hcChbWyJhY2NlcHRDaGFyc2V0IiwiYWNjZXB0LWNoYXJzZXQiXSxbImh0bWxGb3IiLCJmb3IiXSxbImh0dHBFcXVpdiIsImh0dHAtZXF1aXYiXSxbImNyb3NzT3JpZ2luIiwiY3Jvc3NvcmlnaW4iXSxbImFjY2VudEhlaWdodCIsImFjY2VudC1oZWlnaHQiXSxbImFsaWdubWVudEJhc2VsaW5lIiwiYWxpZ25tZW50LWJhc2VsaW5lIl0sWyJhcmFiaWNGb3JtIiwiYXJhYmljLWZvcm0iXSxbImJhc2VsaW5lU2hpZnQiLCJiYXNlbGluZS1zaGlmdCJdLFsiY2FwSGVpZ2h0IiwiY2FwLWhlaWdodCJdLFsiY2xpcFBhdGgiLCJjbGlwLXBhdGgiXSxbImNsaXBSdWxlIiwiY2xpcC1ydWxlIl0sWyJjb2xvckludGVycG9sYXRpb24iLCJjb2xvci1pbnRlcnBvbGF0aW9uIl0sWyJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIl0sWyJjb2xvclByb2ZpbGUiLCJjb2xvci1wcm9maWxlIl0sWyJjb2xvclJlbmRlcmluZyIsImNvbG9yLXJlbmRlcmluZyJdLFsiZG9taW5hbnRCYXNlbGluZSIsImRvbWluYW50LWJhc2VsaW5lIl0sWyJlbmFibGVCYWNrZ3JvdW5kIiwiZW5hYmxlLWJhY2tncm91bmQiXSxbImZpbGxPcGFjaXR5IiwiZmlsbC1vcGFjaXR5Il0sWyJmaWxsUnVsZSIsImZpbGwtcnVsZSJdLFsiZmxvb2RDb2xvciIsImZsb29kLWNvbG9yIl0sWyJmbG9vZE9wYWNpdHkiLCJmbG9vZC1vcGFjaXR5Il0sWyJmb250RmFtaWx5IiwiZm9udC1mYW1pbHkiXSxbImZvbnRTaXplIiwiZm9udC1zaXplIl0sWyJmb250U2l6ZUFkanVzdCIsImZvbnQtc2l6ZS1hZGp1c3QiXSxbImZvbnRTdHJldGNoIiwiZm9udC1zdHJldGNoIl0sWyJmb250U3R5bGUiLCJmb250LXN0eWxlIl0sWyJmb250VmFyaWFudCIsImZvbnQtdmFyaWFudCJdLFsiZm9udFdlaWdodCIsImZvbnQtd2VpZ2h0Il0sWyJnbHlwaE5hbWUiLCJnbHlwaC1uYW1lIl0sWyJnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCIsImdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwiXSxbImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbCIsImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIl0sWyJob3JpekFkdlgiLCJob3Jpei1hZHYteCJdLFsiaG9yaXpPcmlnaW5YIiwiaG9yaXotb3JpZ2luLXgiXSxbImltYWdlUmVuZGVyaW5nIiwiaW1hZ2UtcmVuZGVyaW5nIl0sWyJsZXR0ZXJTcGFjaW5nIiwibGV0dGVyLXNwYWNpbmciXSxbImxpZ2h0aW5nQ29sb3IiLCJsaWdodGluZy1jb2xvciJdLFsibWFya2VyRW5kIiwibWFya2VyLWVuZCJdLFsibWFya2VyTWlkIiwibWFya2VyLW1pZCJdLFsibWFya2VyU3RhcnQiLCJtYXJrZXItc3RhcnQiXSxbIm92ZXJsaW5lUG9zaXRpb24iLCJvdmVybGluZS1wb3NpdGlvbiJdLFsib3ZlcmxpbmVUaGlja25lc3MiLCJvdmVybGluZS10aGlja25lc3MiXSxbInBhaW50T3JkZXIiLCJwYWludC1vcmRlciJdLFsicGFub3NlLTEiLCJwYW5vc2UtMSJdLFsicG9pbnRlckV2ZW50cyIsInBvaW50ZXItZXZlbnRzIl0sWyJyZW5kZXJpbmdJbnRlbnQiLCJyZW5kZXJpbmctaW50ZW50Il0sWyJzaGFwZVJlbmRlcmluZyIsInNoYXBlLXJlbmRlcmluZyJdLFsic3RvcENvbG9yIiwic3RvcC1jb2xvciJdLFsic3RvcE9wYWNpdHkiLCJzdG9wLW9wYWNpdHkiXSxbInN0cmlrZXRocm91Z2hQb3NpdGlvbiIsInN0cmlrZXRocm91Z2gtcG9zaXRpb24iXSxbInN0cmlrZXRocm91Z2hUaGlja25lc3MiLCJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyJdLFsic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hhcnJheSJdLFsic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZS1kYXNob2Zmc2V0Il0sWyJzdHJva2VMaW5lY2FwIiwic3Ryb2tlLWxpbmVjYXAiXSxbInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlLWxpbmVqb2luIl0sWyJzdHJva2VNaXRlcmxpbWl0Iiwic3Ryb2tlLW1pdGVybGltaXQiXSxbInN0cm9rZU9wYWNpdHkiLCJzdHJva2Utb3BhY2l0eSJdLFsic3Ryb2tlV2lkdGgiLCJzdHJva2Utd2lkdGgiXSxbInRleHRBbmNob3IiLCJ0ZXh0LWFuY2hvciJdLFsidGV4dERlY29yYXRpb24iLCJ0ZXh0LWRlY29yYXRpb24iXSxbInRleHRSZW5kZXJpbmciLCJ0ZXh0LXJlbmRlcmluZyJdLFsidHJhbnNmb3JtT3JpZ2luIiwidHJhbnNmb3JtLW9yaWdpbiJdLFsidW5kZXJsaW5lUG9zaXRpb24iLCJ1bmRlcmxpbmUtcG9zaXRpb24iXSxbInVuZGVybGluZVRoaWNrbmVzcyIsInVuZGVybGluZS10aGlja25lc3MiXSxbInVuaWNvZGVCaWRpIiwidW5pY29kZS1iaWRpIl0sWyJ1bmljb2RlUmFuZ2UiLCJ1bmljb2RlLXJhbmdlIl0sWyJ1bml0c1BlckVtIiwidW5pdHMtcGVyLWVtIl0sWyJ2QWxwaGFiZXRpYyIsInYtYWxwaGFiZXRpYyJdLFsidkhhbmdpbmciLCJ2LWhhbmdpbmciXSxbInZJZGVvZ3JhcGhpYyIsInYtaWRlb2dyYXBoaWMiXSxbInZNYXRoZW1hdGljYWwiLCJ2LW1hdGhlbWF0aWNhbCJdLFsidmVjdG9yRWZmZWN0IiwidmVjdG9yLWVmZmVjdCJdLFsidmVydEFkdlkiLCJ2ZXJ0LWFkdi15Il0sWyJ2ZXJ0T3JpZ2luWCIsInZlcnQtb3JpZ2luLXgiXSxbInZlcnRPcmlnaW5ZIiwidmVydC1vcmlnaW4teSJdLFsid29yZFNwYWNpbmciLCJ3b3JkLXNwYWNpbmciXSxbIndyaXRpbmdNb2RlIiwid3JpdGluZy1tb2RlIl0sWyJ4bWxuc1hsaW5rIiwieG1sbnM6eGxpbmsiXSxbInhIZWlnaHQiLCJ4LWhlaWdodCJdXSksdE49L15bXHUwMDAwLVx1MDAxRiBdKmpbXHJcblx0XSphW1xyXG5cdF0qdltcclxuXHRdKmFbXHJcblx0XSpzW1xyXG5cdF0qY1tcclxuXHRdKnJbXHJcblx0XSppW1xyXG5cdF0qcFtcclxuXHRdKnRbXHJcblx0XSo6L2k7ZnVuY3Rpb24gdEMoZSl7cmV0dXJuIHROLnRlc3QoIiIrZSk/ImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdSZWFjdCBoYXMgYmxvY2tlZCBhIGphdmFzY3JpcHQ6IFVSTCBhcyBhIHNlY3VyaXR5IHByZWNhdXRpb24uJykiOmV9ZnVuY3Rpb24gdFQoKXt9dmFyIHRPPW51bGw7ZnVuY3Rpb24gdHooZSl7cmV0dXJuKGU9ZS50YXJnZXR8fGUuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmV9dmFyIHRMPW51bGwsdFI9bnVsbDtmdW5jdGlvbiB0TShlKXt2YXIgdD1lMihlKTtpZih0JiYoZT10LnN0YXRlTm9kZSkpe3ZhciBuPWVbZXFdfHxudWxsO3N3aXRjaChlPXQuc3RhdGVOb2RlLHQudHlwZSl7Y2FzZSJpbnB1dCI6aWYodGgoZSxuLnZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uY2hlY2tlZCxuLmRlZmF1bHRDaGVja2VkLG4udHlwZSxuLm5hbWUpLHQ9bi5uYW1lLCJyYWRpbyI9PT1uLnR5cGUmJm51bGwhPXQpe2ZvcihuPWU7bi5wYXJlbnROb2RlOyluPW4ucGFyZW50Tm9kZTtmb3Iobj1uLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrdG0oIiIrdCkrJyJdW3R5cGU9InJhZGlvIl0nKSx0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIGw9cltlcV18fG51bGw7aWYoIWwpdGhyb3cgRXJyb3IodSg5MCkpO3RoKHIsbC52YWx1ZSxsLmRlZmF1bHRWYWx1ZSxsLmRlZmF1bHRWYWx1ZSxsLmNoZWNrZWQsbC5kZWZhdWx0Q2hlY2tlZCxsLnR5cGUsbC5uYW1lKX19Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrKykocj1uW3RdKS5mb3JtPT09ZS5mb3JtJiZ0ZihyKX1icmVhaztjYXNlInRleHRhcmVhIjp0YihlLG4udmFsdWUsbi5kZWZhdWx0VmFsdWUpO2JyZWFrO2Nhc2Uic2VsZWN0IjpudWxsIT0odD1uLnZhbHVlKSYmdHkoZSwhIW4ubXVsdGlwbGUsdCwhMSl9fX12YXIgdEk9ITE7ZnVuY3Rpb24gdEQoZSx0LG4pe2lmKHRJKXJldHVybiBlKHQsbik7dEk9ITA7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7aWYodEk9ITEsKG51bGwhPT10THx8bnVsbCE9PXRSKSYmKHN0KCksdEwmJih0PXRMLGU9dFIsdFI9dEw9bnVsbCx0TSh0KSxlKSkpZm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyl0TShlW3RdKX19ZnVuY3Rpb24gdEYoZSx0KXt2YXIgbj1lLnN0YXRlTm9kZTtpZihudWxsPT09bilyZXR1cm4gbnVsbDt2YXIgcj1uW2VxXXx8bnVsbDtpZihudWxsPT09cilyZXR1cm4gbnVsbDtzd2l0Y2gobj1yW3RdLHQpe2Nhc2Uib25DbGljayI6Y2FzZSJvbkNsaWNrQ2FwdHVyZSI6Y2FzZSJvbkRvdWJsZUNsaWNrIjpjYXNlIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjpjYXNlIm9uTW91c2VEb3duIjpjYXNlIm9uTW91c2VEb3duQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlTW92ZSI6Y2FzZSJvbk1vdXNlTW92ZUNhcHR1cmUiOmNhc2Uib25Nb3VzZVVwIjpjYXNlIm9uTW91c2VVcENhcHR1cmUiOmNhc2Uib25Nb3VzZUVudGVyIjoocj0hci5kaXNhYmxlZCl8fChyPSJidXR0b24iIT09KGU9ZS50eXBlKSYmImlucHV0IiE9PWUmJiJzZWxlY3QiIT09ZSYmInRleHRhcmVhIiE9PWUpLGU9IXI7YnJlYWs7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYobiYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgRXJyb3IodSgyMzEsdCx0eXBlb2YgbikpO3JldHVybiBufXZhciB0QT0idSI+dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCx0aj0hMTtpZih0QSl0cnl7dmFyIHRVPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0VSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3RqPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0Iix0VSx0VSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLHRVLHRVKX1jYXRjaChlKXt0aj0hMX12YXIgdEI9bnVsbCx0Vj1udWxsLHRIPW51bGw7ZnVuY3Rpb24gdCQoKXtpZih0SClyZXR1cm4gdEg7dmFyIGUsdCxuPXRWLHI9bi5sZW5ndGgsbD0idmFsdWUiaW4gdEI/dEIudmFsdWU6dEIudGV4dENvbnRlbnQsYT1sLmxlbmd0aDtmb3IoZT0wO2U8ciYmbltlXT09PWxbZV07ZSsrKTt2YXIgbz1yLWU7Zm9yKHQ9MTt0PD1vJiZuW3ItdF09PT1sW2EtdF07dCsrKTtyZXR1cm4gdEg9bC5zbGljZShlLDE8dD8xLXQ6dm9pZCAwKX1mdW5jdGlvbiB0UShlKXt2YXIgdD1lLmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PXQmJihlPTEzKTplPXQsMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gdFcoKXtyZXR1cm4hMH1mdW5jdGlvbiB0cSgpe3JldHVybiExfWZ1bmN0aW9uIHRLKGUpe2Z1bmN0aW9uIHQodCxuLHIsbCxhKXtmb3IodmFyIG8gaW4gdGhpcy5fcmVhY3ROYW1lPXQsdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT1uLHRoaXMubmF0aXZlRXZlbnQ9bCx0aGlzLnRhcmdldD1hLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eShvKSYmKHQ9ZVtvXSx0aGlzW29dPXQ/dChsKTpsW29dKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPWwuZGVmYXVsdFByZXZlbnRlZD9sLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1sLnJldHVyblZhbHVlKT90Vzp0cSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXRxLHRoaXN9cmV0dXJuIHgodC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOiJ1bmtub3duIiE9dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD10Vyl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6InVua25vd24iIT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJihlLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD10Vyl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDp0V30pLHR9dmFyIHRYLHRHLHRZLHRKLHRaLHQwPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LHQxPXRLKHQwKSx0Mj14KHt9LHQwLHt2aWV3OjAsZGV0YWlsOjB9KSx0Mz10Syh0MiksdDQ9eCh7fSx0Mix7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpuYSxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZS5yZWxhdGVkVGFyZ2V0P2UuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudDplLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRYImluIGU/ZS5tb3ZlbWVudFg6KGUhPT10WiYmKHRaJiYibW91c2Vtb3ZlIj09PWUudHlwZT8odFk9ZS5zY3JlZW5YLXRaLnNjcmVlblgsdEo9ZS5zY3JlZW5ZLXRaLnNjcmVlblkpOnRKPXRZPTAsdFo9ZSksdFkpfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuIm1vdmVtZW50WSJpbiBlP2UubW92ZW1lbnRZOnRKfX0pLHQ4PXRLKHQ0KSx0NT10Syh4KHt9LHQ0LHtkYXRhVHJhbnNmZXI6MH0pKSx0Nj10Syh4KHt9LHQyLHtyZWxhdGVkVGFyZ2V0OjB9KSksdDk9dEsoeCh7fSx0MCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLHQ3PXRLKHgoe30sdDAse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSkpLG5lPXRLKHgoe30sdDAse2RhdGE6MH0pKSxudD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sbm49ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxucj17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIG5sKGUpe3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIHQuZ2V0TW9kaWZpZXJTdGF0ZT90LmdldE1vZGlmaWVyU3RhdGUoZSk6ISEoZT1ucltlXSkmJiEhdFtlXX1mdW5jdGlvbiBuYSgpe3JldHVybiBubH12YXIgbm89dEsoeCh7fSx0Mix7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgdD1udFtlLmtleV18fGUua2V5O2lmKCJVbmlkZW50aWZpZWQiIT09dClyZXR1cm4gdH1yZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlPzEzPT09KGU9dFEoZSkpPyJFbnRlciI6U3RyaW5nLmZyb21DaGFyQ29kZShlKToia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/bm5bZS5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOm5hLGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/dFEoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/dFEoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pKSxuaT10Syh4KHt9LHQ0LHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pKSxudT10Syh4KHt9LHQyLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6bmF9KSksbnM9dEsoeCh7fSx0MCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksbmM9dEsoeCh7fSx0NCx7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVgiaW4gZT9lLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWSJpbiBlP2UuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBlPy1lLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pKSxuZj10Syh4KHt9LHQwLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSksbmQ9WzksMTMsMjcsMzJdLG5wPXRBJiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3csbm09bnVsbDt0QSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKG5tPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIG5oPXRBJiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIW5tLG5nPXRBJiYoIW5wfHxubSYmODxubSYmMTE+PW5tKSxudj0hMTtmdW5jdGlvbiBueShlLHQpe3N3aXRjaChlKXtjYXNlImtleXVwIjpyZXR1cm4gLTEhPT1uZC5pbmRleE9mKHQua2V5Q29kZSk7Y2FzZSJrZXlkb3duIjpyZXR1cm4gMjI5IT09dC5rZXlDb2RlO2Nhc2Uia2V5cHJlc3MiOmNhc2UibW91c2Vkb3duIjpjYXNlImZvY3Vzb3V0IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBuYihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mKGU9ZS5kZXRhaWwpJiYiZGF0YSJpbiBlP2UuZGF0YTpudWxsfXZhciBudz0hMSxuaz17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCwiZGF0ZXRpbWUtbG9jYWwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gblMoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT10PyEhbmtbZS50eXBlXToidGV4dGFyZWEiPT09dH1mdW5jdGlvbiBuRShlLHQsbixyKXt0TD90Uj90Ui5wdXNoKHIpOnRSPVtyXTp0TD1yLDA8KHQ9czgodCwib25DaGFuZ2UiKSkubGVuZ3RoJiYobj1uZXcgdDEoIm9uQ2hhbmdlIiwiY2hhbmdlIixudWxsLG4sciksZS5wdXNoKHtldmVudDpuLGxpc3RlbmVyczp0fSkpfXZhciBueD1udWxsLG5fPW51bGw7ZnVuY3Rpb24gblAoZSl7c1koZSwwKX1mdW5jdGlvbiBuTihlKXtpZih0ZihlMyhlKSkpcmV0dXJuIGV9ZnVuY3Rpb24gbkMoZSx0KXtpZigiY2hhbmdlIj09PWUpcmV0dXJuIHR9dmFyIG5UPSExO2lmKHRBKXtpZih0QSl7dmFyIG5PPSJvbmlucHV0ImluIGRvY3VtZW50O2lmKCFuTyl7dmFyIG56PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO256LnNldEF0dHJpYnV0ZSgib25pbnB1dCIsInJldHVybjsiKSxuTz0iZnVuY3Rpb24iPT10eXBlb2Ygbnoub25pbnB1dH1yPW5PfWVsc2Ugcj0hMTtuVD1yJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpfWZ1bmN0aW9uIG5MKCl7bngmJihueC5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsblIpLG5fPW54PW51bGwpfWZ1bmN0aW9uIG5SKGUpe2lmKCJ2YWx1ZSI9PT1lLnByb3BlcnR5TmFtZSYmbk4obl8pKXt2YXIgdD1bXTtuRSh0LG5fLGUsdHooZSkpLHREKG5QLHQpfX1mdW5jdGlvbiBuTShlLHQsbil7ImZvY3VzaW4iPT09ZT8obkwoKSxueD10LG5fPW4sbnguYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLG5SKSk6ImZvY3Vzb3V0Ij09PWUmJm5MKCl9ZnVuY3Rpb24gbkkoZSl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1lfHwia2V5dXAiPT09ZXx8ImtleWRvd24iPT09ZSlyZXR1cm4gbk4obl8pfWZ1bmN0aW9uIG5EKGUsdCl7aWYoImNsaWNrIj09PWUpcmV0dXJuIG5OKHQpfWZ1bmN0aW9uIG5GKGUsdCl7aWYoImlucHV0Ij09PWV8fCJjaGFuZ2UiPT09ZSlyZXR1cm4gbk4odCl9dmFyIG5BPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYoMCE9PWV8fDEvZT09MS90KXx8ZSE9ZSYmdCE9dH07ZnVuY3Rpb24gbmooZSx0KXtpZihuQShlLHQpKXJldHVybiEwO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIG49T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBsPW5bcl07aWYoIWVkLmNhbGwodCxsKXx8IW5BKGVbbF0sdFtsXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gblUoZSl7Zm9yKDtlJiZlLmZpcnN0Q2hpbGQ7KWU9ZS5maXJzdENoaWxkO3JldHVybiBlfWZ1bmN0aW9uIG5CKGUsdCl7dmFyIG4scj1uVShlKTtmb3IoZT0wO3I7KXtpZigzPT09ci5ub2RlVHlwZSl7aWYobj1lK3IudGV4dENvbnRlbnQubGVuZ3RoLGU8PXQmJm4+PXQpcmV0dXJue25vZGU6cixvZmZzZXQ6dC1lfTtlPW59ZTp7Zm9yKDtyOyl7aWYoci5uZXh0U2libGluZyl7cj1yLm5leHRTaWJsaW5nO2JyZWFrIGV9cj1yLnBhcmVudE5vZGV9cj12b2lkIDB9cj1uVShyKX19ZnVuY3Rpb24gblYoZSl7ZT1udWxsIT1lJiZudWxsIT1lLm93bmVyRG9jdW1lbnQmJm51bGwhPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldz9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6d2luZG93O2Zvcih2YXIgdD10ZChlLmRvY3VtZW50KTt0IGluc3RhbmNlb2YgZS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe249ITF9aWYobillPXQuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO3Q9dGQoZS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gbkgoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoImlucHV0Ij09PXQmJigidGV4dCI9PT1lLnR5cGV8fCJzZWFyY2giPT09ZS50eXBlfHwidGVsIj09PWUudHlwZXx8InVybCI9PT1lLnR5cGV8fCJwYXNzd29yZCI9PT1lLnR5cGUpfHwidGV4dGFyZWEiPT09dHx8InRydWUiPT09ZS5jb250ZW50RWRpdGFibGUpfXZhciBuJD10QSYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxuUT1udWxsLG5XPW51bGwsbnE9bnVsbCxuSz0hMTtmdW5jdGlvbiBuWChlLHQsbil7dmFyIHI9bi53aW5kb3c9PT1uP24uZG9jdW1lbnQ6OT09PW4ubm9kZVR5cGU/bjpuLm93bmVyRG9jdW1lbnQ7bkt8fG51bGw9PW5RfHxuUSE9PXRkKHIpfHwocj0ic2VsZWN0aW9uU3RhcnQiaW4ocj1uUSkmJm5IKHIpP3tzdGFydDpyLnNlbGVjdGlvblN0YXJ0LGVuZDpyLnNlbGVjdGlvbkVuZH06e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0sbnEmJm5qKG5xLHIpfHwobnE9ciwwPChyPXM4KG5XLCJvblNlbGVjdCIpKS5sZW5ndGgmJih0PW5ldyB0MSgib25TZWxlY3QiLCJzZWxlY3QiLG51bGwsdCxuKSxlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOnJ9KSx0LnRhcmdldD1uUSkpKX1mdW5jdGlvbiBuRyhlLHQpe3ZhciBuPXt9O3JldHVybiBuW2UudG9Mb3dlckNhc2UoKV09dC50b0xvd2VyQ2FzZSgpLG5bIldlYmtpdCIrZV09IndlYmtpdCIrdCxuWyJNb3oiK2VdPSJtb3oiK3Qsbn12YXIgblk9e2FuaW1hdGlvbmVuZDpuRygiQW5pbWF0aW9uIiwiQW5pbWF0aW9uRW5kIiksYW5pbWF0aW9uaXRlcmF0aW9uOm5HKCJBbmltYXRpb24iLCJBbmltYXRpb25JdGVyYXRpb24iKSxhbmltYXRpb25zdGFydDpuRygiQW5pbWF0aW9uIiwiQW5pbWF0aW9uU3RhcnQiKSx0cmFuc2l0aW9ucnVuOm5HKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblJ1biIpLHRyYW5zaXRpb25zdGFydDpuRygiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25TdGFydCIpLHRyYW5zaXRpb25jYW5jZWw6bkcoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uQ2FuY2VsIiksdHJhbnNpdGlvbmVuZDpuRygiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25FbmQiKX0sbko9e30sblo9e307ZnVuY3Rpb24gbjAoZSl7aWYobkpbZV0pcmV0dXJuIG5KW2VdO2lmKCFuWVtlXSlyZXR1cm4gZTt2YXIgdCxuPW5ZW2VdO2Zvcih0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSYmdCBpbiBuWilyZXR1cm4gbkpbZV09blt0XTtyZXR1cm4gZX10QSYmKG5aPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgblkuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgblkuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgblkuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIG5ZLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIG4xPW4wKCJhbmltYXRpb25lbmQiKSxuMj1uMCgiYW5pbWF0aW9uaXRlcmF0aW9uIiksbjM9bjAoImFuaW1hdGlvbnN0YXJ0IiksbjQ9bjAoInRyYW5zaXRpb25ydW4iKSxuOD1uMCgidHJhbnNpdGlvbnN0YXJ0IiksbjU9bjAoInRyYW5zaXRpb25jYW5jZWwiKSxuNj1uMCgidHJhbnNpdGlvbmVuZCIpLG45PW5ldyBNYXAsbjc9ImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbCIuc3BsaXQoIiAiKTtmdW5jdGlvbiByZShlLHQpe245LnNldChlLHQpLGU5KHQsW2VdKX1uNy5wdXNoKCJzY3JvbGxFbmQiKTt2YXIgcnQ9MDtmdW5jdGlvbiBybihlLHQpe3JldHVybiBudWxsIT1lLm5hbWUmJiJhdXRvIiE9PWUubmFtZT9lLm5hbWU6bnVsbCE9PXQuYXV0b05hbWU/dC5hdXRvTmFtZTp0LmF1dG9OYW1lPWU9Il8iKyhlPXVxLmlkZW50aWZpZXJQcmVmaXgpKyJ0XyIrKHJ0KyspLnRvU3RyaW5nKDMyKSsiXyJ9ZnVuY3Rpb24gcnIoZSl7aWYobnVsbD09ZXx8InN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlO3ZhciB0PW51bGwsbj11MTtpZihudWxsIT09bilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9ZVtuW3JdXTtpZihudWxsIT1sKXtpZigibm9uZSI9PT1sKXJldHVybiJub25lIjt0PW51bGw9PXQ/bDp0KyIgIitsfX1yZXR1cm4gbnVsbD09dD9lLmRlZmF1bHQ6dH1mdW5jdGlvbiBybChlLHQpe3JldHVybiBlPXJyKGUpLG51bGw9PSh0PXJyKHQpKT8iYXV0byI9PT1lP251bGw6ZToiYXV0byI9PT10P251bGw6dH12YXIgcmE9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LkVycm9yRXZlbnQpe3ZhciB0PW5ldyB3aW5kb3cuRXJyb3JFdmVudCgiZXJyb3IiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsbWVzc2FnZToib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYic3RyaW5nIj09dHlwZW9mIGUubWVzc2FnZT9TdHJpbmcoZS5tZXNzYWdlKTpTdHJpbmcoZSksZXJyb3I6ZX0pO2lmKCF3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSlyZXR1cm59ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGwuZGVmYXVsdCYmImZ1bmN0aW9uIj09dHlwZW9mIGwuZGVmYXVsdC5lbWl0KXJldHVybiB2b2lkIGwuZGVmYXVsdC5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsZSk7Y29uc29sZS5lcnJvcihlKX0scm89W10scmk9MCxydT0wO2Z1bmN0aW9uIHJzKCl7Zm9yKHZhciBlPXJpLHQ9cnU9cmk9MDt0PGU7KXt2YXIgbj1yb1t0XTtyb1t0KytdPW51bGw7dmFyIHI9cm9bdF07cm9bdCsrXT1udWxsO3ZhciBsPXJvW3RdO3JvW3QrK109bnVsbDt2YXIgYT1yb1t0XTtpZihyb1t0KytdPW51bGwsbnVsbCE9PXImJm51bGwhPT1sKXt2YXIgbz1yLnBlbmRpbmc7bnVsbD09PW8/bC5uZXh0PWw6KGwubmV4dD1vLm5leHQsby5uZXh0PWwpLHIucGVuZGluZz1sfTAhPT1hJiZycChuLGwsYSl9fWZ1bmN0aW9uIHJjKGUsdCxuLHIpe3JvW3JpKytdPWUscm9bcmkrK109dCxyb1tyaSsrXT1uLHJvW3JpKytdPXIscnV8PXIsZS5sYW5lc3w9cixudWxsIT09KGU9ZS5hbHRlcm5hdGUpJiYoZS5sYW5lc3w9cil9ZnVuY3Rpb24gcmYoZSx0LG4scil7cmV0dXJuIHJjKGUsdCxuLHIpLHJtKGUpfWZ1bmN0aW9uIHJkKGUsdCl7cmV0dXJuIHJjKGUsbnVsbCxudWxsLHQpLHJtKGUpfWZ1bmN0aW9uIHJwKGUsdCxuKXtlLmxhbmVzfD1uO3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9bik7Zm9yKHZhciBsPSExLGE9ZS5yZXR1cm47bnVsbCE9PWE7KWEuY2hpbGRMYW5lc3w9bixudWxsIT09KHI9YS5hbHRlcm5hdGUpJiYoci5jaGlsZExhbmVzfD1uKSwyMj09PWEudGFnJiYobnVsbD09PShlPWEuc3RhdGVOb2RlKXx8MSZlLl92aXNpYmlsaXR5fHwobD0hMCkpLGU9YSxhPWEucmV0dXJuO3JldHVybiAzPT09ZS50YWc/KGE9ZS5zdGF0ZU5vZGUsbCYmbnVsbCE9PXQmJihsPTMxLWVQKG4pLG51bGw9PT0ocj0oZT1hLmhpZGRlblVwZGF0ZXMpW2xdKT9lW2xdPVt0XTpyLnB1c2godCksdC5sYW5lPTB4MjAwMDAwMDB8biksYSk6bnVsbH1mdW5jdGlvbiBybShlKXtpZig1MDx1Mil0aHJvdyB1Mj0wLHUzPW51bGwsRXJyb3IodSgxODUpKTtmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXQ9KGU9dCkucmV0dXJuO3JldHVybiAzPT09ZS50YWc/ZS5zdGF0ZU5vZGU6bnVsbH12YXIgcmg9e307ZnVuY3Rpb24gcmcoZSx0LG4scil7dGhpcy50YWc9ZSx0aGlzLmtleT1uLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmQ2xlYW51cD10aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPXIsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIHJ2KGUsdCxuLHIpe3JldHVybiBuZXcgcmcoZSx0LG4scil9ZnVuY3Rpb24gcnkoZSl7cmV0dXJuISghKGU9ZS5wcm90b3R5cGUpfHwhZS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiByYihlLHQpe3ZhciBuPWUuYWx0ZXJuYXRlO3JldHVybiBudWxsPT09bj8oKG49cnYoZS50YWcsdCxlLmtleSxlLm1vZGUpKS5lbGVtZW50VHlwZT1lLmVsZW1lbnRUeXBlLG4udHlwZT1lLnR5cGUsbi5zdGF0ZU5vZGU9ZS5zdGF0ZU5vZGUsbi5hbHRlcm5hdGU9ZSxlLmFsdGVybmF0ZT1uKToobi5wZW5kaW5nUHJvcHM9dCxuLnR5cGU9ZS50eXBlLG4uZmxhZ3M9MCxuLnN1YnRyZWVGbGFncz0wLG4uZGVsZXRpb25zPW51bGwpLG4uZmxhZ3M9MHg3ZTAwMDAwJmUuZmxhZ3Msbi5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyxuLmxhbmVzPWUubGFuZXMsbi5jaGlsZD1lLmNoaWxkLG4ubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsbi5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdD1lLmRlcGVuZGVuY2llcyxuLmRlcGVuZGVuY2llcz1udWxsPT09dD9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0sbi5zaWJsaW5nPWUuc2libGluZyxuLmluZGV4PWUuaW5kZXgsbi5yZWY9ZS5yZWYsbi5yZWZDbGVhbnVwPWUucmVmQ2xlYW51cCxufWZ1bmN0aW9uIHJ3KGUsdCl7ZS5mbGFncyY9MHg3ZTAwMDAyO3ZhciBuPWUuYWx0ZXJuYXRlO3JldHVybiBudWxsPT09bj8oZS5jaGlsZExhbmVzPTAsZS5sYW5lcz10LGUuY2hpbGQ9bnVsbCxlLnN1YnRyZWVGbGFncz0wLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUudXBkYXRlUXVldWU9bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsLGUuc3RhdGVOb2RlPW51bGwpOihlLmNoaWxkTGFuZXM9bi5jaGlsZExhbmVzLGUubGFuZXM9bi5sYW5lcyxlLmNoaWxkPW4uY2hpbGQsZS5zdWJ0cmVlRmxhZ3M9MCxlLmRlbGV0aW9ucz1udWxsLGUubWVtb2l6ZWRQcm9wcz1uLm1lbW9pemVkUHJvcHMsZS5tZW1vaXplZFN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxlLnVwZGF0ZVF1ZXVlPW4udXBkYXRlUXVldWUsZS50eXBlPW4udHlwZSxlLmRlcGVuZGVuY2llcz1udWxsPT09KHQ9bi5kZXBlbmRlbmNpZXMpP251bGw6e2xhbmVzOnQubGFuZXMsZmlyc3RDb250ZXh0OnQuZmlyc3RDb250ZXh0fSksZX1mdW5jdGlvbiByayhlLHQsbixyLGwsYSl7dmFyIG89MDtpZihyPWUsImZ1bmN0aW9uIj09dHlwZW9mIGUpcnkoZSkmJihvPTEpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKW89IWZ1bmN0aW9uKGUsdCxuKXtpZigxPT09bnx8bnVsbCE9dC5pdGVtUHJvcClyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZSJtZXRhIjpjYXNlInRpdGxlIjpyZXR1cm4hMDtjYXNlInN0eWxlIjppZigic3RyaW5nIiE9dHlwZW9mIHQucHJlY2VkZW5jZXx8InN0cmluZyIhPXR5cGVvZiB0LmhyZWZ8fCIiPT09dC5ocmVmKWJyZWFrO3JldHVybiEwO2Nhc2UibGluayI6aWYoInN0cmluZyIhPXR5cGVvZiB0LnJlbHx8InN0cmluZyIhPXR5cGVvZiB0LmhyZWZ8fCIiPT09dC5ocmVmfHx0Lm9uTG9hZHx8dC5vbkVycm9yKWJyZWFrO2lmKCJzdHlsZXNoZWV0Ij09PXQucmVsKXJldHVybiBlPXQuZGlzYWJsZWQsInN0cmluZyI9PXR5cGVvZiB0LnByZWNlZGVuY2UmJm51bGw9PWU7cmV0dXJuITA7Y2FzZSJzY3JpcHQiOmlmKHQuYXN5bmMmJiJmdW5jdGlvbiIhPXR5cGVvZiB0LmFzeW5jJiYic3ltYm9sIiE9dHlwZW9mIHQuYXN5bmMmJiF0Lm9uTG9hZCYmIXQub25FcnJvciYmdC5zcmMmJiJzdHJpbmciPT10eXBlb2YgdC5zcmMpcmV0dXJuITB9cmV0dXJuITF9KGUsbixlZS5jdXJyZW50KT8iaHRtbCI9PT1lfHwiaGVhZCI9PT1lfHwiYm9keSI9PT1lPzI3OjU6MjY7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIEE6cmV0dXJuKGU9cnYoMzEsbix0LGwpKS5lbGVtZW50VHlwZT1BLGUubGFuZXM9YSxlO2Nhc2UgQzpyZXR1cm4gclMobi5jaGlsZHJlbixsLGEsdCk7Y2FzZSBUOm89OCxsfD0yNDticmVhaztjYXNlIE86cmV0dXJuKGU9cnYoMTIsbix0LDJ8bCkpLmVsZW1lbnRUeXBlPU8sZS5sYW5lcz1hLGU7Y2FzZSBNOnJldHVybihlPXJ2KDEzLG4sdCxsKSkuZWxlbWVudFR5cGU9TSxlLmxhbmVzPWEsZTtjYXNlIEk6cmV0dXJuKGU9cnYoMTksbix0LGwpKS5lbGVtZW50VHlwZT1JLGUubGFuZXM9YSxlO2Nhc2UgajpjYXNlIEI6cmV0dXJuKGU9cnYoMzAsbix0LGU9MzJ8bCkpLmVsZW1lbnRUeXBlPUIsZS5sYW5lcz1hLGUuc3RhdGVOb2RlPXthdXRvTmFtZTpudWxsLHBhaXJlZDpudWxsLGNsb25lczpudWxsLHJlZjpudWxsfSxlO2RlZmF1bHQ6aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSlzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSBMOm89MTA7YnJlYWsgZTtjYXNlIHo6bz05O2JyZWFrIGU7Y2FzZSBSOm89MTE7YnJlYWsgZTtjYXNlIEQ6bz0xNDticmVhayBlO2Nhc2UgRjpvPTE2LHI9bnVsbDticmVhayBlfW89Mjksbj1FcnJvcih1KDEzMCxudWxsPT09ZT8ibnVsbCI6dHlwZW9mIGUsIiIpKSxyPW51bGx9cmV0dXJuKHQ9cnYobyxuLHQsbCkpLmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5sYW5lcz1hLHR9ZnVuY3Rpb24gclMoZSx0LG4scil7cmV0dXJuKGU9cnYoNyxlLHIsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiByRShlLHQsbil7cmV0dXJuKGU9cnYoNixlLG51bGwsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiByeChlKXt2YXIgdD1ydigxOCxudWxsLG51bGwsMCk7cmV0dXJuIHQuc3RhdGVOb2RlPWUsdH1mdW5jdGlvbiByXyhlLHQsbil7cmV0dXJuKHQ9cnYoNCxudWxsIT09ZS5jaGlsZHJlbj9lLmNoaWxkcmVuOltdLGUua2V5LHQpKS5sYW5lcz1uLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fXZhciByUD1uZXcgV2Vha01hcDtmdW5jdGlvbiByTihlLHQpe2lmKCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUpe3ZhciBuPXJQLmdldChlKTtyZXR1cm4gdm9pZCAwIT09bj9uOih0PXt2YWx1ZTplLHNvdXJjZTp0LHN0YWNrOmVmKHQpfSxyUC5zZXQoZSx0KSx0KX1yZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazplZih0KX19dmFyIHJDPVtdLHJUPTAsck89bnVsbCxyej0wLHJMPVtdLHJSPTAsck09bnVsbCxyST0xLHJEPSIiO2Z1bmN0aW9uIHJGKGUsdCl7ckNbclQrK109cnosckNbclQrK109ck8sck89ZSxyej10fWZ1bmN0aW9uIHJBKGUsdCxuKXtyTFtyUisrXT1ySSxyTFtyUisrXT1yRCxyTFtyUisrXT1yTSxyTT1lO3ZhciByPXJJO2U9ckQ7dmFyIGw9MzItZVAociktMTtyJj1+KDE8PGwpLG4rPTE7dmFyIGE9MzItZVAodCkrbDtpZigzMDxhKXt2YXIgbz1sLWwlNTthPShyJigxPDxvKS0xKS50b1N0cmluZygzMikscj4+PW8sbC09byxyST0xPDwzMi1lUCh0KStsfG48PGx8cixyRD1hK2V9ZWxzZSByST0xPDxhfG48PGx8cixyRD1lfWZ1bmN0aW9uIHJqKGUpe251bGwhPT1lLnJldHVybiYmKHJGKGUsMSksckEoZSwxLDApKX1mdW5jdGlvbiByVShlKXtmb3IoO2U9PT1yTzspck89ckNbLS1yVF0sckNbclRdPW51bGwscno9ckNbLS1yVF0sckNbclRdPW51bGw7Zm9yKDtlPT09ck07KXJNPXJMWy0tclJdLHJMW3JSXT1udWxsLHJEPXJMWy0tclJdLHJMW3JSXT1udWxsLHJJPXJMWy0tclJdLHJMW3JSXT1udWxsfWZ1bmN0aW9uIHJCKGUsdCl7ckxbclIrK109ckksckxbclIrK109ckQsckxbclIrK109ck0sckk9dC5pZCxyRD10Lm92ZXJmbG93LHJNPWV9dmFyIHJWPW51bGwsckg9bnVsbCxyJD0hMSxyUT1udWxsLHJXPSExLHJxPUVycm9yKHUoNTE5KSk7ZnVuY3Rpb24gcksoZSl7dmFyIHQ9RXJyb3IodSg0MTgsMTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXT8idGV4dCI6IkhUTUwiLCIiKSk7dGhyb3cgcjAock4odCxlKSkscnF9ZnVuY3Rpb24gclgoZSl7dmFyIHQ9ZS5zdGF0ZU5vZGUsbj1lLnR5cGUscj1lLm1lbW9pemVkUHJvcHM7c3dpdGNoKHRbZVddPWUsdFtlcV09cixuKXtjYXNlImRpYWxvZyI6c0ooImNhbmNlbCIsdCksc0ooImNsb3NlIix0KTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOmNhc2UiZW1iZWQiOnNKKCJsb2FkIix0KTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3Iobj0wO248c1gubGVuZ3RoO24rKylzSihzWFtuXSx0KTticmVhaztjYXNlInNvdXJjZSI6c0ooImVycm9yIix0KTticmVhaztjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJsaW5rIjpzSigiZXJyb3IiLHQpLHNKKCJsb2FkIix0KTticmVhaztjYXNlImRldGFpbHMiOnNKKCJ0b2dnbGUiLHQpO2JyZWFrO2Nhc2UiaW5wdXQiOnNKKCJpbnZhbGlkIix0KSx0Zyh0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGVja2VkLHIuZGVmYXVsdENoZWNrZWQsci50eXBlLHIubmFtZSwhMCk7YnJlYWs7Y2FzZSJzZWxlY3QiOnNKKCJpbnZhbGlkIix0KTticmVhaztjYXNlInRleHRhcmVhIjpzSigiaW52YWxpZCIsdCksdHcodCxyLnZhbHVlLHIuZGVmYXVsdFZhbHVlLHIuY2hpbGRyZW4pfSJzdHJpbmciIT10eXBlb2Yobj1yLmNoaWxkcmVuKSYmIm51bWJlciIhPXR5cGVvZiBuJiYiYmlnaW50IiE9dHlwZW9mIG58fHQudGV4dENvbnRlbnQ9PT0iIitufHwhMD09PXIuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nfHxjdCh0LnRleHRDb250ZW50LG4pPyhudWxsIT1yLnBvcG92ZXImJihzSigiYmVmb3JldG9nZ2xlIix0KSxzSigidG9nZ2xlIix0KSksbnVsbCE9ci5vblNjcm9sbCYmc0ooInNjcm9sbCIsdCksbnVsbCE9ci5vblNjcm9sbEVuZCYmc0ooInNjcm9sbGVuZCIsdCksbnVsbCE9ci5vbkNsaWNrJiYodC5vbmNsaWNrPXRUKSx0PSEwKTp0PSExLHR8fHJLKGUsITApfWZ1bmN0aW9uIHJHKGUpe2ZvcihyVj1lLnJldHVybjtyVjspc3dpdGNoKHJWLnRhZyl7Y2FzZSA1OmNhc2UgMzE6Y2FzZSAxMzpyVz0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6clc9ITA7cmV0dXJuO2RlZmF1bHQ6clY9clYucmV0dXJufX1mdW5jdGlvbiByWShlKXtpZihlIT09clYpcmV0dXJuITE7aWYoIXIkKXJldHVybiByRyhlKSxyJD0hMCwhMTt2YXIgdCxuPWUudGFnO2lmKCh0PTMhPT1uJiYyNyE9PW4pJiYoKHQ9NT09PW4pJiYodD0iZm9ybSI9PT0odD1lLnR5cGUpfHwiYnV0dG9uIj09PXR8fGNmKGUudHlwZSxlLm1lbW9pemVkUHJvcHMpKSx0PSF0KSx0JiZySCYmcksoZSksckcoZSksMTM9PT1uKXtpZighKGU9bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSk/ZS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKHUoMzE3KSk7ckg9Y3EoZSl9ZWxzZSBpZigzMT09PW4pe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IodSgzMTcpKTtySD1jcShlKX1lbHNlIDI3PT09bj8obj1ySCxjeShlLnR5cGUpPyhlPWNXLGNXPW51bGwsckg9ZSk6ckg9bik6ckg9clY/Y1EoZS5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24gckooKXtySD1yVj1udWxsLHIkPSExfWZ1bmN0aW9uIHJaKCl7dmFyIGU9clE7cmV0dXJuIG51bGwhPT1lJiYobnVsbD09PXVqP3VqPWU6dWoucHVzaC5hcHBseSh1aixlKSxyUT1udWxsKSxlfWZ1bmN0aW9uIHIwKGUpe251bGw9PT1yUT9yUT1bZV06clEucHVzaChlKX12YXIgcjE9WShudWxsKSxyMj1udWxsLHIzPW51bGw7ZnVuY3Rpb24gcjQoZSx0LG4pe1oocjEsdC5fY3VycmVudFZhbHVlKSx0Ll9jdXJyZW50VmFsdWU9bn1mdW5jdGlvbiByOChlKXtlLl9jdXJyZW50VmFsdWU9cjEuY3VycmVudCxKKHIxKX1mdW5jdGlvbiByNShlLHQsbil7Zm9yKDtudWxsIT09ZTspe3ZhciByPWUuYWx0ZXJuYXRlO2lmKChlLmNoaWxkTGFuZXMmdCkhPT10PyhlLmNoaWxkTGFuZXN8PXQsbnVsbCE9PXImJihyLmNoaWxkTGFuZXN8PXQpKTpudWxsIT09ciYmKHIuY2hpbGRMYW5lcyZ0KSE9PXQmJihyLmNoaWxkTGFuZXN8PXQpLGU9PT1uKWJyZWFrO2U9ZS5yZXR1cm59fWZ1bmN0aW9uIHI2KGUsdCxuLHIpe3ZhciBsPWUuY2hpbGQ7Zm9yKG51bGwhPT1sJiYobC5yZXR1cm49ZSk7bnVsbCE9PWw7KXt2YXIgYT1sLmRlcGVuZGVuY2llcztpZihudWxsIT09YSl7dmFyIG89bC5jaGlsZDthPWEuZmlyc3RDb250ZXh0O2U6Zm9yKDtudWxsIT09YTspe3ZhciBpPWE7YT1sO2Zvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKWlmKGkuY29udGV4dD09PXRbc10pe2EubGFuZXN8PW4sbnVsbCE9PShpPWEuYWx0ZXJuYXRlKSYmKGkubGFuZXN8PW4pLHI1KGEucmV0dXJuLG4sZSkscnx8KG89bnVsbCk7YnJlYWsgZX1hPWkubmV4dH19ZWxzZSBpZigxOD09PWwudGFnKXtpZihudWxsPT09KG89bC5yZXR1cm4pKXRocm93IEVycm9yKHUoMzQxKSk7by5sYW5lc3w9bixudWxsIT09KGE9by5hbHRlcm5hdGUpJiYoYS5sYW5lc3w9bikscjUobyxuLGUpLG89bnVsbH1lbHNlIG89bC5jaGlsZDtpZihudWxsIT09bylvLnJldHVybj1sO2Vsc2UgZm9yKG89bDtudWxsIT09bzspe2lmKG89PT1lKXtvPW51bGw7YnJlYWt9aWYobnVsbCE9PShsPW8uc2libGluZykpe2wucmV0dXJuPW8ucmV0dXJuLG89bDticmVha31vPW8ucmV0dXJufWw9b319ZnVuY3Rpb24gcjkoZSx0LG4scil7ZT1udWxsO2Zvcih2YXIgbD10LGE9ITE7bnVsbCE9PWw7KXtpZighYSl7aWYoMCE9KDUyNDI4OCZsLmZsYWdzKSlhPSEwO2Vsc2UgaWYoMCE9KDI2MjE0NCZsLmZsYWdzKSlicmVha31pZigxMD09PWwudGFnKXt2YXIgbz1sLmFsdGVybmF0ZTtpZihudWxsPT09byl0aHJvdyBFcnJvcih1KDM4NykpO2lmKG51bGwhPT0obz1vLm1lbW9pemVkUHJvcHMpKXt2YXIgaT1sLnR5cGU7bkEobC5wZW5kaW5nUHJvcHMudmFsdWUsby52YWx1ZSl8fChudWxsIT09ZT9lLnB1c2goaSk6ZT1baV0pfX1lbHNlIGlmKGw9PT1lci5jdXJyZW50KXtpZihudWxsPT09KG89bC5hbHRlcm5hdGUpKXRocm93IEVycm9yKHUoMzg3KSk7by5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUhPT1sLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT1lP2UucHVzaChmdik6ZT1bZnZdKX1sPWwucmV0dXJufW51bGwhPT1lJiZyNih0LGUsbixyKSx0LmZsYWdzfD0yNjIxNDR9ZnVuY3Rpb24gcjcoZSl7Zm9yKGU9ZS5maXJzdENvbnRleHQ7bnVsbCE9PWU7KXtpZighbkEoZS5jb250ZXh0Ll9jdXJyZW50VmFsdWUsZS5tZW1vaXplZFZhbHVlKSlyZXR1cm4hMDtlPWUubmV4dH1yZXR1cm4hMX1mdW5jdGlvbiBsZShlKXtyMj1lLHIzPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmKGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIGx0KGUpe3JldHVybiBscihyMixlKX1mdW5jdGlvbiBsbihlLHQpe3JldHVybiBudWxsPT09cjImJmxlKGUpLGxyKGUsdCl9ZnVuY3Rpb24gbHIoZSx0KXt2YXIgbj10Ll9jdXJyZW50VmFsdWU7aWYodD17Y29udGV4dDp0LG1lbW9pemVkVmFsdWU6bixuZXh0Om51bGx9LG51bGw9PT1yMyl7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IodSgzMDgpKTtyMz10LGUuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDp0fSxlLmZsYWdzfD01MjQyODh9ZWxzZSByMz1yMy5uZXh0PXQ7cmV0dXJuIG59dmFyIGxsPSJ1Ij50eXBlb2YgQWJvcnRDb250cm9sbGVyP0Fib3J0Q29udHJvbGxlcjpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LG4pe2UucHVzaChuKX19O3RoaXMuYWJvcnQ9ZnVuY3Rpb24oKXt0LmFib3J0ZWQ9ITAsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX19LGxhPWEudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxsbz1hLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGxpPXskJHR5cGVvZjpMLENvbnN1bWVyOm51bGwsUHJvdmlkZXI6bnVsbCxfY3VycmVudFZhbHVlOm51bGwsX2N1cnJlbnRWYWx1ZTI6bnVsbCxfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gbHUoKXtyZXR1cm57Y29udHJvbGxlcjpuZXcgbGwsZGF0YTpuZXcgTWFwLHJlZkNvdW50OjB9fWZ1bmN0aW9uIGxzKGUpe2UucmVmQ291bnQtLSwwPT09ZS5yZWZDb3VudCYmbGEobG8sZnVuY3Rpb24oKXtlLmNvbnRyb2xsZXIuYWJvcnQoKX0pfWZ1bmN0aW9uIGxjKGUsdCl7aWYoMCE9KDQxOTQwNDgmZS5wZW5kaW5nTGFuZXMpKXt2YXIgbj1lLnRyYW5zaXRpb25UeXBlcztmb3IobnVsbD09PW4mJihuPWUudHJhbnNpdGlvblR5cGVzPVtdKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV07LTE9PT1uLmluZGV4T2YocikmJm4ucHVzaChyKX19fXZhciBsZj1udWxsLGxkPW51bGwsbHA9MCxsbT0wLGxoPW51bGw7ZnVuY3Rpb24gbGcoKXtpZigwPT0tLWxwJiYobGY9bnVsbCxudWxsIT09bGQpKXtudWxsIT09bGgmJihsaC5zdGF0dXM9ImZ1bGZpbGxlZCIpO3ZhciBlPWxkO2xkPW51bGwsbG09MCxsaD1udWxsO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKSgwLGVbdF0pKCl9fXZhciBsdj1XLlM7Vy5TPWZ1bmN0aW9uKGUsdCl7aWYodVY9ZXYoKSwib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuJiZmdW5jdGlvbihlLHQpe2lmKG51bGw9PT1sZCl7dmFyIG49bGQ9W107bHA9MCxsbT1zJCgpLGxoPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKGUpe24ucHVzaChlKX19fWxwKyssdC50aGVuKGxnLGxnKX0oMCx0KSxudWxsIT09bGYpZm9yKHZhciBuPXN6O251bGwhPT1uOylsYyhuLGxmKSxuPW4ubmV4dDtpZihudWxsIT09KG49ZS50eXBlcykpe2Zvcih2YXIgcj1zejtudWxsIT09cjspbGMocixuKSxyPXIubmV4dDtpZigwIT09bG0pe251bGw9PT0ocj1sZikmJihyPWxmPVtdKTtmb3IodmFyIGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGE9bltsXTstMT09PXIuaW5kZXhPZihhKSYmci5wdXNoKGEpfX19bnVsbCE9PWx2JiZsdihlLHQpfTt2YXIgbHk9WShudWxsKTtmdW5jdGlvbiBsYigpe3ZhciBlPWx5LmN1cnJlbnQ7cmV0dXJuIG51bGwhPT1lP2U6dUUucG9vbGVkQ2FjaGV9ZnVuY3Rpb24gbHcoZSx0KXtudWxsPT09dD9aKGx5LGx5LmN1cnJlbnQpOloobHksdC5wb29sKX1mdW5jdGlvbiBsaygpe3ZhciBlPWxiKCk7cmV0dXJuIG51bGw9PT1lP251bGw6e3BhcmVudDpsaS5fY3VycmVudFZhbHVlLHBvb2w6ZX19dmFyIGxTPUVycm9yKHUoNDYwKSksbEU9RXJyb3IodSg0NzQpKSxseD1FcnJvcih1KDU0MikpLGxfPXt0aGVuOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gbFAoZSl7cmV0dXJuImZ1bGZpbGxlZCI9PT0oZT1lLnN0YXR1cyl8fCJyZWplY3RlZCI9PT1lfWZ1bmN0aW9uIGxOKGUsdCxuKXtzd2l0Y2godm9pZCAwPT09KG49ZVtuXSk/ZS5wdXNoKHQpOm4hPT10JiYodC50aGVuKHRULHRUKSx0PW4pLHQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgbHooZT10LnJlYXNvbiksZTtkZWZhdWx0OmlmKCJzdHJpbmciPT10eXBlb2YgdC5zdGF0dXMpdC50aGVuKHRULHRUKTtlbHNle2lmKG51bGwhPT0oZT11RSkmJjEwMDxlLnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3IodSg0ODIpKTsoZT10KS5zdGF0dXM9InBlbmRpbmciLGUudGhlbihmdW5jdGlvbihlKXtpZigicGVuZGluZyI9PT10LnN0YXR1cyl7dmFyIG49dDtuLnN0YXR1cz0iZnVsZmlsbGVkIixuLnZhbHVlPWV9fSxmdW5jdGlvbihlKXtpZigicGVuZGluZyI9PT10LnN0YXR1cyl7dmFyIG49dDtuLnN0YXR1cz0icmVqZWN0ZWQiLG4ucmVhc29uPWV9fSl9c3dpdGNoKHQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgbHooZT10LnJlYXNvbiksZX10aHJvdyBsVD10LGxTfX1mdW5jdGlvbiBsQyhlKXt0cnl7cmV0dXJuKDAsZS5faW5pdCkoZS5fcGF5bG9hZCl9Y2F0Y2goZSl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbil0aHJvdyBsVD1lLGxTO3Rocm93IGV9fXZhciBsVD1udWxsO2Z1bmN0aW9uIGxPKCl7aWYobnVsbD09PWxUKXRocm93IEVycm9yKHUoNDU5KSk7dmFyIGU9bFQ7cmV0dXJuIGxUPW51bGwsZX1mdW5jdGlvbiBseihlKXtpZihlPT09bFN8fGU9PT1seCl0aHJvdyBFcnJvcih1KDQ4MykpfXZhciBsTD1udWxsLGxSPTA7ZnVuY3Rpb24gbE0oZSl7dmFyIHQ9bFI7cmV0dXJuIGxSKz0xLG51bGw9PT1sTCYmKGxMPVtdKSxsTihsTCxlLHQpfWZ1bmN0aW9uIGxJKGUsdCl7ZS5yZWY9dm9pZCAwIT09KHQ9dC5wcm9wcy5yZWYpP3Q6bnVsbH1mdW5jdGlvbiBsRChlLHQpe2lmKHQuJCR0eXBlb2Y9PT1fKXRocm93IEVycm9yKHUoNTI1KSk7dGhyb3cgRXJyb3IodSgzMSwiW29iamVjdCBPYmplY3RdIj09PShlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSk/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXModCkuam9pbigiLCAiKSsifSI6ZSkpfWZ1bmN0aW9uIGxGKGUpe2Z1bmN0aW9uIHQodCxuKXtpZihlKXt2YXIgcj10LmRlbGV0aW9ucztudWxsPT09cj8odC5kZWxldGlvbnM9W25dLHQuZmxhZ3N8PTE2KTpyLnB1c2gobil9fWZ1bmN0aW9uIG4obixyKXtpZighZSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1yOyl0KG4scikscj1yLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQ9bmV3IE1hcDtudWxsIT09ZTspbnVsbD09PWUua2V5P3Quc2V0KGUuaW5kZXgsZSk6dC5zZXQoZS5rZXksZSksZT1lLnNpYmxpbmc7cmV0dXJuIHR9ZnVuY3Rpb24gbChlLHQpe3JldHVybihlPXJiKGUsdCkpLmluZGV4PTAsZS5zaWJsaW5nPW51bGwsZX1mdW5jdGlvbiBhKHQsbixyKXtyZXR1cm4odC5pbmRleD1yLGUpP251bGwhPT0ocj10LmFsdGVybmF0ZSk/KHI9ci5pbmRleCk8bj8odC5mbGFnc3w9MHg4MDAwMDAyLG4pOnI6KHQuZmxhZ3N8PTB4ODAwMDAwMixuKToodC5mbGFnc3w9MTA0ODU3NixuKX1mdW5jdGlvbiBvKHQpe3JldHVybiBlJiZudWxsPT09dC5hbHRlcm5hdGUmJih0LmZsYWdzfD0weDgwMDAwMDIpLHR9ZnVuY3Rpb24gaShlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDYhPT10LnRhZz8odD1yRShuLGUubW9kZSxyKSkucmV0dXJuPWU6KHQ9bCh0LG4pKS5yZXR1cm49ZSx0fWZ1bmN0aW9uIHMoZSx0LG4scil7dmFyIGE9bi50eXBlO3JldHVybiBhPT09Qz8obEkoZT1mKGUsdCxuLnByb3BzLmNoaWxkcmVuLHIsbi5rZXkpLG4pLGUpOihudWxsIT09dCYmKHQuZWxlbWVudFR5cGU9PT1hfHwib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09RiYmbEMoYSk9PT10LnR5cGUpP2xJKHQ9bCh0LG4ucHJvcHMpLG4pOmxJKHQ9cmsobi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsciksbiksdC5yZXR1cm49ZSx0KX1mdW5jdGlvbiBjKGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NCE9PXQudGFnfHx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09bi5jb250YWluZXJJbmZvfHx0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PW4uaW1wbGVtZW50YXRpb24/KHQ9cl8obixlLm1vZGUscikpLnJldHVybj1lOih0PWwodCxuLmNoaWxkcmVufHxbXSkpLnJldHVybj1lLHR9ZnVuY3Rpb24gZihlLHQsbixyLGEpe3JldHVybiBudWxsPT09dHx8NyE9PXQudGFnPyh0PXJTKG4sZS5tb2RlLHIsYSkpLnJldHVybj1lOih0PWwodCxuKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBkKGUsdCxuKXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiIiIT09dHx8Im51bWJlciI9PXR5cGVvZiB0fHwiYmlnaW50Ij09dHlwZW9mIHQpcmV0dXJuKHQ9ckUoIiIrdCxlLm1vZGUsbikpLnJldHVybj1lLHQ7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgUDpyZXR1cm4gbEkobj1yayh0LnR5cGUsdC5rZXksdC5wcm9wcyxudWxsLGUubW9kZSxuKSx0KSxuLnJldHVybj1lLG47Y2FzZSBOOnJldHVybih0PXJfKHQsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2Nhc2UgRjpyZXR1cm4gZChlLHQ9bEModCksbil9aWYoUSh0KXx8SCh0KSlyZXR1cm4odD1yUyh0LGUubW9kZSxuLG51bGwpKS5yZXR1cm49ZSx0O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRoZW4pcmV0dXJuIGQoZSxsTSh0KSxuKTtpZih0LiQkdHlwZW9mPT09TClyZXR1cm4gZChlLGxuKGUsdCksbik7bEQoZSx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGUsdCxuLHIpe3ZhciBsPW51bGwhPT10P3Qua2V5Om51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYiIiE9PW58fCJudW1iZXIiPT10eXBlb2Ygbnx8ImJpZ2ludCI9PXR5cGVvZiBuKXJldHVybiBudWxsIT09bD9udWxsOmkoZSx0LCIiK24scik7aWYoIm9iamVjdCI9PXR5cGVvZiBuJiZudWxsIT09bil7c3dpdGNoKG4uJCR0eXBlb2Ype2Nhc2UgUDpyZXR1cm4gbi5rZXk9PT1sP3MoZSx0LG4scik6bnVsbDtjYXNlIE46cmV0dXJuIG4ua2V5PT09bD9jKGUsdCxuLHIpOm51bGw7Y2FzZSBGOnJldHVybiBwKGUsdCxuPWxDKG4pLHIpfWlmKFEobil8fEgobikpcmV0dXJuIG51bGwhPT1sP251bGw6ZihlLHQsbixyLG51bGwpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuLnRoZW4pcmV0dXJuIHAoZSx0LGxNKG4pLHIpO2lmKG4uJCR0eXBlb2Y9PT1MKXJldHVybiBwKGUsdCxsbihlLG4pLHIpO2xEKGUsbil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbShlLHQsbixyLGwpe2lmKCJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yfHwibnVtYmVyIj09dHlwZW9mIHJ8fCJiaWdpbnQiPT10eXBlb2YgcilyZXR1cm4gaSh0LGU9ZS5nZXQobil8fG51bGwsIiIrcixsKTtpZigib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPT1yKXtzd2l0Y2goci4kJHR5cGVvZil7Y2FzZSBQOnJldHVybiBzKHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixsKTtjYXNlIE46cmV0dXJuIGModCxlPWUuZ2V0KG51bGw9PT1yLmtleT9uOnIua2V5KXx8bnVsbCxyLGwpO2Nhc2UgRjpyZXR1cm4gbShlLHQsbixyPWxDKHIpLGwpfWlmKFEocil8fEgocikpcmV0dXJuIGYodCxlPWUuZ2V0KG4pfHxudWxsLHIsbCxudWxsKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygci50aGVuKXJldHVybiBtKGUsdCxuLGxNKHIpLGwpO2lmKHIuJCR0eXBlb2Y9PT1MKXJldHVybiBtKGUsdCxuLGxuKHQsciksbCk7bEQodCxyKX1yZXR1cm4gbnVsbH1yZXR1cm4gZnVuY3Rpb24oaSxzLGMsZil7dHJ5e2xSPTA7dmFyIGg9ZnVuY3Rpb24gaShzLGMsZixoKXtpZigib2JqZWN0Ij09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT1DJiZudWxsPT09Zi5rZXkmJnZvaWQgMD09PWYucHJvcHMucmVmJiYoZj1mLnByb3BzLmNoaWxkcmVuKSwib2JqZWN0Ij09dHlwZW9mIGYmJm51bGwhPT1mKXtzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSBQOmU6e2Zvcih2YXIgZz1mLmtleTtudWxsIT09Yzspe2lmKGMua2V5PT09Zyl7aWYoKGc9Zi50eXBlKT09PUMpe2lmKDc9PT1jLnRhZyl7bihzLGMuc2libGluZyksbEkoaD1sKGMsZi5wcm9wcy5jaGlsZHJlbiksZiksaC5yZXR1cm49cyxzPWg7YnJlYWsgZX19ZWxzZSBpZihjLmVsZW1lbnRUeXBlPT09Z3x8Im9iamVjdCI9PXR5cGVvZiBnJiZudWxsIT09ZyYmZy4kJHR5cGVvZj09PUYmJmxDKGcpPT09Yy50eXBlKXtuKHMsYy5zaWJsaW5nKSxsSShoPWwoYyxmLnByb3BzKSxmKSxoLnJldHVybj1zLHM9aDticmVhayBlfW4ocyxjKTticmVha310KHMsYyksYz1jLnNpYmxpbmd9Zi50eXBlPT09Qz9sSShoPXJTKGYucHJvcHMuY2hpbGRyZW4scy5tb2RlLGgsZi5rZXkpLGYpOmxJKGg9cmsoZi50eXBlLGYua2V5LGYucHJvcHMsbnVsbCxzLm1vZGUsaCksZiksaC5yZXR1cm49cyxzPWh9cmV0dXJuIG8ocyk7Y2FzZSBOOmU6e2ZvcihnPWYua2V5O251bGwhPT1jOyl7aWYoYy5rZXk9PT1nKWlmKDQ9PT1jLnRhZyYmYy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmYy5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtuKHMsYy5zaWJsaW5nKSwoaD1sKGMsZi5jaGlsZHJlbnx8W10pKS5yZXR1cm49cyxzPWg7YnJlYWsgZX1lbHNle24ocyxjKTticmVha310KHMsYyksYz1jLnNpYmxpbmd9KGg9cl8oZixzLm1vZGUsaCkpLnJldHVybj1zLHM9aH1yZXR1cm4gbyhzKTtjYXNlIEY6cmV0dXJuIGkocyxjLGY9bEMoZiksaCl9aWYoUShmKSlyZXR1cm4gZnVuY3Rpb24obCxvLGksdSl7Zm9yKHZhciBzPW51bGwsYz1udWxsLGY9byxoPW89MCxnPW51bGw7bnVsbCE9PWYmJmg8aS5sZW5ndGg7aCsrKXtmLmluZGV4Pmg/KGc9ZixmPW51bGwpOmc9Zi5zaWJsaW5nO3ZhciB2PXAobCxmLGlbaF0sdSk7aWYobnVsbD09PXYpe251bGw9PT1mJiYoZj1nKTticmVha31lJiZmJiZudWxsPT09di5hbHRlcm5hdGUmJnQobCxmKSxvPWEodixvLGgpLG51bGw9PT1jP3M9djpjLnNpYmxpbmc9dixjPXYsZj1nfWlmKGg9PT1pLmxlbmd0aClyZXR1cm4gbihsLGYpLHIkJiZyRihsLGgpLHM7aWYobnVsbD09PWYpe2Zvcig7aDxpLmxlbmd0aDtoKyspbnVsbCE9PShmPWQobCxpW2hdLHUpKSYmKG89YShmLG8saCksbnVsbD09PWM/cz1mOmMuc2libGluZz1mLGM9Zik7cmV0dXJuIHIkJiZyRihsLGgpLHN9Zm9yKGY9cihmKTtoPGkubGVuZ3RoO2grKyludWxsIT09KGc9bShmLGwsaCxpW2hdLHUpKSYmKGUmJm51bGwhPT0odj1nLmFsdGVybmF0ZSkmJmYuZGVsZXRlKG51bGw9PT12LmtleT9oOnYua2V5KSxvPWEoZyxvLGgpLG51bGw9PT1jP3M9ZzpjLnNpYmxpbmc9ZyxjPWcpO3JldHVybiBlJiZmLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQobCxlKX0pLHIkJiZyRihsLGgpLHN9KHMsYyxmLGgpO2lmKEgoZikpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZihnPUgoZikpKXRocm93IEVycm9yKHUoMTUwKSk7cmV0dXJuIGZ1bmN0aW9uKGwsbyxpLHMpe2lmKG51bGw9PWkpdGhyb3cgRXJyb3IodSgxNTEpKTtmb3IodmFyIGM9bnVsbCxmPW51bGwsaD1vLGc9bz0wLHY9bnVsbCx5PWkubmV4dCgpO251bGwhPT1oJiYheS5kb25lO2crKyx5PWkubmV4dCgpKXtoLmluZGV4Pmc/KHY9aCxoPW51bGwpOnY9aC5zaWJsaW5nO3ZhciBiPXAobCxoLHkudmFsdWUscyk7aWYobnVsbD09PWIpe251bGw9PT1oJiYoaD12KTticmVha31lJiZoJiZudWxsPT09Yi5hbHRlcm5hdGUmJnQobCxoKSxvPWEoYixvLGcpLG51bGw9PT1mP2M9YjpmLnNpYmxpbmc9YixmPWIsaD12fWlmKHkuZG9uZSlyZXR1cm4gbihsLGgpLHIkJiZyRihsLGcpLGM7aWYobnVsbD09PWgpe2Zvcig7IXkuZG9uZTtnKysseT1pLm5leHQoKSludWxsIT09KHk9ZChsLHkudmFsdWUscykpJiYobz1hKHksbyxnKSxudWxsPT09Zj9jPXk6Zi5zaWJsaW5nPXksZj15KTtyZXR1cm4gciQmJnJGKGwsZyksY31mb3IoaD1yKGgpOyF5LmRvbmU7ZysrLHk9aS5uZXh0KCkpbnVsbCE9PSh5PW0oaCxsLGcseS52YWx1ZSxzKSkmJihlJiZudWxsIT09KHY9eS5hbHRlcm5hdGUpJiZoLmRlbGV0ZShudWxsPT09di5rZXk/Zzp2LmtleSksbz1hKHksbyxnKSxudWxsPT09Zj9jPXk6Zi5zaWJsaW5nPXksZj15KTtyZXR1cm4gZSYmaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGwsZSl9KSxyJCYmckYobCxnKSxjfShzLGMsZj1nLmNhbGwoZiksaCl9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGYudGhlbilyZXR1cm4gaShzLGMsbE0oZiksaCk7aWYoZi4kJHR5cGVvZj09PUwpcmV0dXJuIGkocyxjLGxuKHMsZiksaCk7bEQocyxmKX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGYmJiIiIT09Znx8Im51bWJlciI9PXR5cGVvZiBmfHwiYmlnaW50Ij09dHlwZW9mIGY/KGY9IiIrZixudWxsIT09YyYmNj09PWMudGFnPyhuKHMsYy5zaWJsaW5nKSwoaD1sKGMsZikpLnJldHVybj1zKToobihzLGMpLChoPXJFKGYscy5tb2RlLGgpKS5yZXR1cm49cyksbyhzPWgpKTpuKHMsYyl9KGkscyxjLGYpO3JldHVybiBsTD1udWxsLGh9Y2F0Y2goZSl7aWYoZT09PWxTfHxlPT09bHgpdGhyb3cgZTt2YXIgZz1ydigyOSxlLG51bGwsaS5tb2RlKTtyZXR1cm4gZy5sYW5lcz1mLGcucmV0dXJuPWksZ31maW5hbGx5e319fXZhciBsQT1sRighMCksbGo9bEYoITEpLGxVPSExO2Z1bmN0aW9uIGxCKGUpe2UudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxsYW5lczowLGhpZGRlbkNhbGxiYWNrczpudWxsfSxjYWxsYmFja3M6bnVsbH19ZnVuY3Rpb24gbFYoZSx0KXtlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT09PWUmJih0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGNhbGxiYWNrczpudWxsfSl9ZnVuY3Rpb24gbEgoZSl7cmV0dXJue2xhbmU6ZSx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIGwkKGUsdCxuKXt2YXIgcj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKHI9ci5zaGFyZWQsMCE9KDImdVMpKXt2YXIgbD1yLnBlbmRpbmc7cmV0dXJuIG51bGw9PT1sP3QubmV4dD10Oih0Lm5leHQ9bC5uZXh0LGwubmV4dD10KSxyLnBlbmRpbmc9dCx0PXJtKGUpLHJwKGUsbnVsbCxuKSx0fXJldHVybiByYyhlLHIsdCxuKSxybShlKX1mdW5jdGlvbiBsUShlLHQsbil7aWYobnVsbCE9PSh0PXQudXBkYXRlUXVldWUpJiYodD10LnNoYXJlZCwwIT0oNDE5NDA0OCZuKSkpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsbnw9cix0LmxhbmVzPW4sZWooZSxuKX19ZnVuY3Rpb24gbFcoZSx0KXt2YXIgbj1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJm49PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIGw9bnVsbCxhPW51bGw7aWYobnVsbCE9PShuPW4uZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIG89e2xhbmU6bi5sYW5lLHRhZzpuLnRhZyxwYXlsb2FkOm4ucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH07bnVsbD09PWE/bD1hPW86YT1hLm5leHQ9byxuPW4ubmV4dH13aGlsZShudWxsIT09biludWxsPT09YT9sPWE9dDphPWEubmV4dD10fWVsc2UgbD1hPXQ7bj17YmFzZVN0YXRlOnIuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpsLGxhc3RCYXNlVXBkYXRlOmEsc2hhcmVkOnIuc2hhcmVkLGNhbGxiYWNrczpyLmNhbGxiYWNrc30sZS51cGRhdGVRdWV1ZT1uO3JldHVybn1udWxsPT09KGU9bi5sYXN0QmFzZVVwZGF0ZSk/bi5maXJzdEJhc2VVcGRhdGU9dDplLm5leHQ9dCxuLmxhc3RCYXNlVXBkYXRlPXR9dmFyIGxxPSExO2Z1bmN0aW9uIGxLKCl7aWYobHEpe3ZhciBlPWxoO2lmKG51bGwhPT1lKXRocm93IGV9fWZ1bmN0aW9uIGxYKGUsdCxuLHIpe2xxPSExO3ZhciBsPWUudXBkYXRlUXVldWU7bFU9ITE7dmFyIGE9bC5maXJzdEJhc2VVcGRhdGUsbz1sLmxhc3RCYXNlVXBkYXRlLGk9bC5zaGFyZWQucGVuZGluZztpZihudWxsIT09aSl7bC5zaGFyZWQucGVuZGluZz1udWxsO3ZhciB1PWkscz11Lm5leHQ7dS5uZXh0PW51bGwsbnVsbD09PW8/YT1zOm8ubmV4dD1zLG89dTt2YXIgYz1lLmFsdGVybmF0ZTtudWxsIT09YyYmKGk9KGM9Yy51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpIT09byYmKG51bGw9PT1pP2MuZmlyc3RCYXNlVXBkYXRlPXM6aS5uZXh0PXMsYy5sYXN0QmFzZVVwZGF0ZT11KX1pZihudWxsIT09YSl7dmFyIGY9bC5iYXNlU3RhdGU7Zm9yKG89MCxjPXM9dT1udWxsLGk9YTs7KXt2YXIgZD0tMHgyMDAwMDAwMSZpLmxhbmUscD1kIT09aS5sYW5lO2lmKHA/KHVfJmQpPT09ZDoociZkKT09PWQpezAhPT1kJiZkPT09bG0mJihscT0hMCksbnVsbCE9PWMmJihjPWMubmV4dD17bGFuZTowLHRhZzppLnRhZyxwYXlsb2FkOmkucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH0pO2U6e3ZhciBtPWUsaD1pO3N3aXRjaChkPXQsaC50YWcpe2Nhc2UgMTppZigiZnVuY3Rpb24iPT10eXBlb2YobT1oLnBheWxvYWQpKXtmPW0uY2FsbChuLGYsZCk7YnJlYWsgZX1mPW07YnJlYWsgZTtjYXNlIDM6bS5mbGFncz0tNjU1MzcmbS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PShkPSJmdW5jdGlvbiI9PXR5cGVvZihtPWgucGF5bG9hZCk/bS5jYWxsKG4sZixkKTptKSlicmVhayBlO2Y9eCh7fSxmLGQpO2JyZWFrIGU7Y2FzZSAyOmxVPSEwfX1udWxsIT09KGQ9aS5jYWxsYmFjaykmJihlLmZsYWdzfD02NCxwJiYoZS5mbGFnc3w9ODE5MiksbnVsbD09PShwPWwuY2FsbGJhY2tzKT9sLmNhbGxiYWNrcz1bZF06cC5wdXNoKGQpKX1lbHNlIHA9e2xhbmU6ZCx0YWc6aS50YWcscGF5bG9hZDppLnBheWxvYWQsY2FsbGJhY2s6aS5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9cCx1PWYpOmM9Yy5uZXh0PXAsb3w9ZDtpZihudWxsPT09KGk9aS5uZXh0KSlpZihudWxsPT09KGk9bC5zaGFyZWQucGVuZGluZykpYnJlYWs7ZWxzZSBpPShwPWkpLm5leHQscC5uZXh0PW51bGwsbC5sYXN0QmFzZVVwZGF0ZT1wLGwuc2hhcmVkLnBlbmRpbmc9bnVsbH1udWxsPT09YyYmKHU9ZiksbC5iYXNlU3RhdGU9dSxsLmZpcnN0QmFzZVVwZGF0ZT1zLGwubGFzdEJhc2VVcGRhdGU9YyxudWxsPT09YSYmKGwuc2hhcmVkLmxhbmVzPTApLHVSfD1vLGUubGFuZXM9byxlLm1lbW9pemVkU3RhdGU9Zn19ZnVuY3Rpb24gbEcoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBFcnJvcih1KDE5MSxlKSk7ZS5jYWxsKHQpfWZ1bmN0aW9uIGxZKGUsdCl7dmFyIG49ZS5jYWxsYmFja3M7aWYobnVsbCE9PW4pZm9yKGUuY2FsbGJhY2tzPW51bGwsZT0wO2U8bi5sZW5ndGg7ZSsrKWxHKG5bZV0sdCl9dmFyIGxKPVkobnVsbCksbFo9WSgwKTtmdW5jdGlvbiBsMChlLHQpe1oobFosZT11eiksWihsSix0KSx1ej1lfHQuYmFzZUxhbmVzfWZ1bmN0aW9uIGwxKCl7WihsWix1eiksWihsSixsSi5jdXJyZW50KX1mdW5jdGlvbiBsMigpe3V6PWxaLmN1cnJlbnQsSihsSiksSihsWil9dmFyIGwzPVkobnVsbCksbDQ9bnVsbDtmdW5jdGlvbiBsOChlKXt2YXIgdD1lLmFsdGVybmF0ZTtaKGFlLDEmYWUuY3VycmVudCksWihsMyxlKSxudWxsPT09bDQmJihudWxsPT09dHx8bnVsbCE9PWxKLmN1cnJlbnQ/bDQ9ZTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiYobDQ9ZSkpfWZ1bmN0aW9uIGw1KGUpe1ooYWUsYWUuY3VycmVudCksWihsMyxlKSxudWxsPT09bDQmJihsND1lKX1mdW5jdGlvbiBsNihlKXsyMj09PWUudGFnPyhaKGFlLGFlLmN1cnJlbnQpLFoobDMsZSksbnVsbD09PWw0JiYobDQ9ZSkpOmw5KCl9ZnVuY3Rpb24gbDkoKXtaKGFlLGFlLmN1cnJlbnQpLFoobDMsbDMuY3VycmVudCl9ZnVuY3Rpb24gbDcoZSl7SihsMyksbDQ9PT1lJiYobDQ9bnVsbCksSihhZSl9dmFyIGFlPVkoMCk7ZnVuY3Rpb24gYXQoZSx0KXtaKGwzLGwzLmN1cnJlbnQpLFooYWUsdCl9ZnVuY3Rpb24gYW4oZSl7SihhZSksSihsMyksbDQ9PT1lJiYobDQ9bnVsbCl9ZnVuY3Rpb24gYXIoZSl7Zm9yKHZhciB0PWU7bnVsbCE9PXQ7KXtpZigxMz09PXQudGFnKXt2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW4mJihudWxsPT09KG49bi5kZWh5ZHJhdGVkKXx8Y0gobil8fGMkKG4pKSlyZXR1cm4gdH1lbHNlIGlmKDE5PT09dC50YWcmJiJpbmRlcGVuZGVudCIhPT10Lm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPSgxMjgmdC5mbGFncykpcmV0dXJuIHR9ZWxzZSBpZihudWxsIT09dC5jaGlsZCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuIG51bGw7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfXJldHVybiBudWxsfXZhciBhbD0wLGFhPW51bGwsYW89bnVsbCxhaT1udWxsLGF1PSExLGFzPSExLGFjPSExLGFmPTAsYWQ9MCxhcD1udWxsLGFtPTA7ZnVuY3Rpb24gYWgoKXt0aHJvdyBFcnJvcih1KDMyMSkpfWZ1bmN0aW9uIGFnKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmbjxlLmxlbmd0aDtuKyspaWYoIW5BKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gYXYoZSx0LG4scixsLGEpe3JldHVybiBhbD1hLGFhPXQsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQubGFuZXM9MCxXLkg9bnVsbD09PWV8fG51bGw9PT1lLm1lbW9pemVkU3RhdGU/b0U6b3gsYWM9ITEsYT1uKHIsbCksYWM9ITEsYXMmJihhPWFiKHQsbixyLGwpKSxheShlKSxhfWZ1bmN0aW9uIGF5KGUpe1cuSD1vUzt2YXIgdD1udWxsIT09YW8mJm51bGwhPT1hby5uZXh0O2lmKGFsPTAsYWk9YW89YWE9bnVsbCxhdT0hMSxhZD0wLGFwPW51bGwsdCl0aHJvdyBFcnJvcih1KDMwMCkpO251bGw9PT1lfHxvVXx8bnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmcjcoZSkmJihvVT0hMCl9ZnVuY3Rpb24gYWIoZSx0LG4scil7YWE9ZTt2YXIgbD0wO2Rve2lmKGFzJiYoYXA9bnVsbCksYWQ9MCxhcz0hMSwyNTw9bCl0aHJvdyBFcnJvcih1KDMwMSkpO2lmKGwrPTEsYWk9YW89bnVsbCxudWxsIT1lLnVwZGF0ZVF1ZXVlKXt2YXIgYT1lLnVwZGF0ZVF1ZXVlO2EubGFzdEVmZmVjdD1udWxsLGEuZXZlbnRzPW51bGwsYS5zdG9yZXM9bnVsbCxudWxsIT1hLm1lbW9DYWNoZSYmKGEubWVtb0NhY2hlLmluZGV4PTApfVcuSD1vXyxhPXQobixyKX13aGlsZShhcylyZXR1cm4gYX1mdW5jdGlvbiBhdygpe3ZhciBlPVcuSCx0PWUudXNlU3RhdGUoKVswXTtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuP2FOKHQpOnQsZT1lLnVzZVN0YXRlKClbMF0sKG51bGwhPT1hbz9hby5tZW1vaXplZFN0YXRlOm51bGwpIT09ZSYmKGFhLmZsYWdzfD0xMDI0KSx0fWZ1bmN0aW9uIGFrKCl7dmFyIGU9MCE9PWFmO3JldHVybiBhZj0wLGV9ZnVuY3Rpb24gYVMoZSx0LG4pe3QudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+bn1mdW5jdGlvbiBhRShlKXtpZihhdSl7Zm9yKGU9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1lOyl7dmFyIHQ9ZS5xdWV1ZTtudWxsIT09dCYmKHQucGVuZGluZz1udWxsKSxlPWUubmV4dH1hdT0hMX1hbD0wLGFpPWFvPWFhPW51bGwsYXM9ITEsYWQ9YWY9MCxhcD1udWxsfWZ1bmN0aW9uIGF4KCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1haT9hYS5tZW1vaXplZFN0YXRlPWFpPWU6YWk9YWkubmV4dD1lLGFpfWZ1bmN0aW9uIGFfKCl7aWYobnVsbD09PWFvKXt2YXIgZT1hYS5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9YW8ubmV4dDt2YXIgdD1udWxsPT09YWk/YWEubWVtb2l6ZWRTdGF0ZTphaS5uZXh0O2lmKG51bGwhPT10KWFpPXQsYW89ZTtlbHNle2lmKG51bGw9PT1lKXtpZihudWxsPT09YWEuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoNDY3KSk7dGhyb3cgRXJyb3IodSgzMTApKX1lPXttZW1vaXplZFN0YXRlOihhbz1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTphby5iYXNlU3RhdGUsYmFzZVF1ZXVlOmFvLmJhc2VRdWV1ZSxxdWV1ZTphby5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1haT9hYS5tZW1vaXplZFN0YXRlPWFpPWU6YWk9YWkubmV4dD1lfXJldHVybiBhaX1mdW5jdGlvbiBhUCgpe3JldHVybntsYXN0RWZmZWN0Om51bGwsZXZlbnRzOm51bGwsc3RvcmVzOm51bGwsbWVtb0NhY2hlOm51bGx9fWZ1bmN0aW9uIGFOKGUpe3ZhciB0PWFkO3JldHVybiBhZCs9MSxudWxsPT09YXAmJihhcD1bXSksZT1sTihhcCxlLHQpLHQ9YWEsbnVsbD09PShudWxsPT09YWk/dC5tZW1vaXplZFN0YXRlOmFpLm5leHQpJiYoVy5IPW51bGw9PT0odD10LmFsdGVybmF0ZSl8fG51bGw9PT10Lm1lbW9pemVkU3RhdGU/b0U6b3gpLGV9ZnVuY3Rpb24gYUMoZSl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbilyZXR1cm4gYU4oZSk7aWYoZS4kJHR5cGVvZj09PUwpcmV0dXJuIGx0KGUpfXRocm93IEVycm9yKHUoNDM4LFN0cmluZyhlKSkpfWZ1bmN0aW9uIGFUKGUpe3ZhciB0PW51bGwsbj1hYS51cGRhdGVRdWV1ZTtpZihudWxsIT09biYmKHQ9bi5tZW1vQ2FjaGUpLG51bGw9PXQpe3ZhciByPWFhLmFsdGVybmF0ZTtudWxsIT09ciYmbnVsbCE9PShyPXIudXBkYXRlUXVldWUpJiZudWxsIT0ocj1yLm1lbW9DYWNoZSkmJih0PXtkYXRhOnIuZGF0YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2xpY2UoKX0pLGluZGV4OjB9KX1pZihudWxsPT10JiYodD17ZGF0YTpbXSxpbmRleDowfSksbnVsbD09PW4mJihuPWFQKCksYWEudXBkYXRlUXVldWU9biksbi5tZW1vQ2FjaGU9dCx2b2lkIDA9PT0obj10LmRhdGFbdC5pbmRleF0pKWZvcihuPXQuZGF0YVt0LmluZGV4XT1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPVU7cmV0dXJuIHQuaW5kZXgrKyxufWZ1bmN0aW9uIGFPKGUsdCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChlKTp0fWZ1bmN0aW9uIGF6KGUpe3JldHVybiBhTChhXygpLGFvLGUpfWZ1bmN0aW9uIGFMKGUsdCxuKXt2YXIgcj1lLnF1ZXVlO2lmKG51bGw9PT1yKXRocm93IEVycm9yKHUoMzExKSk7ci5sYXN0UmVuZGVyZWRSZWR1Y2VyPW47dmFyIGw9ZS5iYXNlUXVldWUsYT1yLnBlbmRpbmc7aWYobnVsbCE9PWEpe2lmKG51bGwhPT1sKXt2YXIgbz1sLm5leHQ7bC5uZXh0PWEubmV4dCxhLm5leHQ9b310LmJhc2VRdWV1ZT1sPWEsci5wZW5kaW5nPW51bGx9aWYoYT1lLmJhc2VTdGF0ZSxudWxsPT09bCllLm1lbW9pemVkU3RhdGU9YTtlbHNle3Q9bC5uZXh0O3ZhciBpPW89bnVsbCxzPW51bGwsYz10LGY9ITE7ZG97dmFyIGQ9LTB4MjAwMDAwMDEmYy5sYW5lO2lmKGQhPT1jLmxhbmU/KHVfJmQpPT09ZDooYWwmZCk9PT1kKXt2YXIgcD1jLnJldmVydExhbmU7aWYoMD09PXApbnVsbCE9PXMmJihzPXMubmV4dD17bGFuZTowLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOmMuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6Yy5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9PT1sbSYmKGY9ITApO2Vsc2UgaWYoKGFsJnApPT09cCl7Yz1jLm5leHQscD09PWxtJiYoZj0hMCk7Y29udGludWV9ZWxzZSBkPXtsYW5lOjAscmV2ZXJ0TGFuZTpjLnJldmVydExhbmUsZ2VzdHVyZTpudWxsLGFjdGlvbjpjLmFjdGlvbixoYXNFYWdlclN0YXRlOmMuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1zPyhpPXM9ZCxvPWEpOnM9cy5uZXh0PWQsYWEubGFuZXN8PXAsdVJ8PXA7ZD1jLmFjdGlvbixhYyYmbihhLGQpLGE9Yy5oYXNFYWdlclN0YXRlP2MuZWFnZXJTdGF0ZTpuKGEsZCl9ZWxzZSBwPXtsYW5lOmQscmV2ZXJ0TGFuZTpjLnJldmVydExhbmUsZ2VzdHVyZTpjLmdlc3R1cmUsYWN0aW9uOmMuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6Yy5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0sbnVsbD09PXM/KGk9cz1wLG89YSk6cz1zLm5leHQ9cCxhYS5sYW5lc3w9ZCx1Unw9ZDtjPWMubmV4dH13aGlsZShudWxsIT09YyYmYyE9PXQpaWYobnVsbD09PXM/bz1hOnMubmV4dD1pLCFuQShhLGUubWVtb2l6ZWRTdGF0ZSkmJihvVT0hMCxmJiZudWxsIT09KG49bGgpKSl0aHJvdyBuO2UubWVtb2l6ZWRTdGF0ZT1hLGUuYmFzZVN0YXRlPW8sZS5iYXNlUXVldWU9cyxyLmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuIG51bGw9PT1sJiYoci5sYW5lcz0wKSxbZS5tZW1vaXplZFN0YXRlLHIuZGlzcGF0Y2hdfWZ1bmN0aW9uIGFSKGUpe3ZhciB0PWFfKCksbj10LnF1ZXVlO2lmKG51bGw9PT1uKXRocm93IEVycm9yKHUoMzExKSk7bi5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIHI9bi5kaXNwYXRjaCxsPW4ucGVuZGluZyxhPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09bCl7bi5wZW5kaW5nPW51bGw7dmFyIG89bD1sLm5leHQ7ZG8gYT1lKGEsby5hY3Rpb24pLG89by5uZXh0O3doaWxlKG8hPT1sKW5BKGEsdC5tZW1vaXplZFN0YXRlKXx8KG9VPSEwKSx0Lm1lbW9pemVkU3RhdGU9YSxudWxsPT09dC5iYXNlUXVldWUmJih0LmJhc2VTdGF0ZT1hKSxuLmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuW2Escl19ZnVuY3Rpb24gYU0oZSx0LG4pe3ZhciByPWFhLGw9YV8oKSxhPXIkO2lmKGEpe2lmKHZvaWQgMD09PW4pdGhyb3cgRXJyb3IodSg0MDcpKTtuPW4oKX1lbHNlIG49dCgpO3ZhciBvPSFuQSgoYW98fGwpLm1lbW9pemVkU3RhdGUsbik7aWYobyYmKGwubWVtb2l6ZWRTdGF0ZT1uLG9VPSEwKSxsPWwucXVldWUsYTgoYUYuYmluZChudWxsLHIsbCxlKSxbZV0pLGwuZ2V0U25hcHNob3QhPT10fHxvfHxudWxsIT09YWkmJjEmYWkubWVtb2l6ZWRTdGF0ZS50YWcpe2lmKHIuZmxhZ3N8PTIwNDgsYTAoOSx7ZGVzdHJveTp2b2lkIDB9LGFELmJpbmQobnVsbCxyLGwsbix0KSxudWxsKSxudWxsPT09dUUpdGhyb3cgRXJyb3IodSgzNDkpKTthfHwwIT0oMTI3JmFsKXx8YUkocix0LG4pfXJldHVybiBufWZ1bmN0aW9uIGFJKGUsdCxuKXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDp0LHZhbHVlOm59LG51bGw9PT0odD1hYS51cGRhdGVRdWV1ZSk/KHQ9YVAoKSxhYS51cGRhdGVRdWV1ZT10LHQuc3RvcmVzPVtlXSk6bnVsbD09PShuPXQuc3RvcmVzKT90LnN0b3Jlcz1bZV06bi5wdXNoKGUpfWZ1bmN0aW9uIGFEKGUsdCxuLHIpe3QudmFsdWU9bix0LmdldFNuYXBzaG90PXIsYUEodCkmJmFqKGUpfWZ1bmN0aW9uIGFGKGUsdCxuKXtyZXR1cm4gbihmdW5jdGlvbigpe2FBKHQpJiZhaihlKX0pfWZ1bmN0aW9uIGFBKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIW5BKGUsbil9Y2F0Y2goZSl7cmV0dXJuITB9fWZ1bmN0aW9uIGFqKGUpe3ZhciB0PXJkKGUsMik7bnVsbCE9PXQmJnU2KHQsZSwyKX1mdW5jdGlvbiBhVShlKXt2YXIgdD1heCgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKCkpLHQubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lLHQucXVldWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphTyxsYXN0UmVuZGVyZWRTdGF0ZTplfSx0fWZ1bmN0aW9uIGFCKGUsdCxuLHIpe3JldHVybiBlLmJhc2VTdGF0ZT1uLGFMKGUsYW8sImZ1bmN0aW9uIj09dHlwZW9mIHI/cjphTyl9ZnVuY3Rpb24gYVYoZSx0LG4scixsKXtpZihvYihlKSl0aHJvdyBFcnJvcih1KDQ4NSkpO2lmKG51bGwhPT0oZT10LmFjdGlvbikpe3ZhciBhPXtwYXlsb2FkOmwsYWN0aW9uOmUsbmV4dDpudWxsLGlzVHJhbnNpdGlvbjohMCxzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24oZSl7YS5saXN0ZW5lcnMucHVzaChlKX19O251bGwhPT1XLlQ/bighMCk6YS5pc1RyYW5zaXRpb249ITEscihhKSxudWxsPT09KG49dC5wZW5kaW5nKT8oYS5uZXh0PXQucGVuZGluZz1hLGFIKHQsYSkpOihhLm5leHQ9bi5uZXh0LHQucGVuZGluZz1uLm5leHQ9YSl9fWZ1bmN0aW9uIGFIKGUsdCl7dmFyIG49dC5hY3Rpb24scj10LnBheWxvYWQsbD1lLnN0YXRlO2lmKHQuaXNUcmFuc2l0aW9uKXt2YXIgYT1XLlQsbz17fTtvLnR5cGVzPW51bGwhPT1hP2EudHlwZXM6bnVsbCxXLlQ9bzt0cnl7dmFyIGk9bihsLHIpLHU9Vy5TO251bGwhPT11JiZ1KG8saSksYSQoZSx0LGkpfWNhdGNoKG4pe2FXKGUsdCxuKX1maW5hbGx5e251bGwhPT1hJiZudWxsIT09by50eXBlcyYmKGEudHlwZXM9by50eXBlcyksVy5UPWF9fWVsc2UgdHJ5e2E9bihsLHIpLGEkKGUsdCxhKX1jYXRjaChuKXthVyhlLHQsbil9fWZ1bmN0aW9uIGEkKGUsdCxuKXtudWxsIT09biYmIm9iamVjdCI9PXR5cGVvZiBuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi50aGVuP24udGhlbihmdW5jdGlvbihuKXthUShlLHQsbil9LGZ1bmN0aW9uKG4pe3JldHVybiBhVyhlLHQsbil9KTphUShlLHQsbil9ZnVuY3Rpb24gYVEoZSx0LG4pe3Quc3RhdHVzPSJmdWxmaWxsZWQiLHQudmFsdWU9bixhcSh0KSxlLnN0YXRlPW4sbnVsbCE9PSh0PWUucGVuZGluZykmJigobj10Lm5leHQpPT09dD9lLnBlbmRpbmc9bnVsbDoobj1uLm5leHQsdC5uZXh0PW4sYUgoZSxuKSkpfWZ1bmN0aW9uIGFXKGUsdCxuKXt2YXIgcj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbnVsbCE9PXIpe3I9ci5uZXh0O2RvIHQuc3RhdHVzPSJyZWplY3RlZCIsdC5yZWFzb249bixhcSh0KSx0PXQubmV4dDt3aGlsZSh0IT09cil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBhcShlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKSgwLGVbdF0pKCl9ZnVuY3Rpb24gYUsoZSx0KXtyZXR1cm4gdH1mdW5jdGlvbiBhWChlLHQpe2lmKHIkKXt2YXIgbj11RS5mb3JtU3RhdGU7aWYobnVsbCE9PW4pe2U6e3ZhciByPWFhO2lmKHIkKXtpZihySCl7dDp7Zm9yKHZhciBsPXJILGE9clc7OCE9PWwubm9kZVR5cGU7KWlmKCFhfHxudWxsPT09KGw9Y1EobC5uZXh0U2libGluZykpKXtsPW51bGw7YnJlYWsgdH1sPSJGISI9PT0oYT1sLmRhdGEpfHwiRiI9PT1hP2w6bnVsbH1pZihsKXtySD1jUShsLm5leHRTaWJsaW5nKSxyPSJGISI9PT1sLmRhdGE7YnJlYWsgZX19cksocil9cj0hMX1yJiYodD1uWzBdKX19cmV0dXJuKG49YXgoKSkubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT10LHI9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphSyxsYXN0UmVuZGVyZWRTdGF0ZTp0fSxuLnF1ZXVlPXIsbj1vZy5iaW5kKG51bGwsYWEsciksci5kaXNwYXRjaD1uLHI9YVUoITEpLGE9b3kuYmluZChudWxsLGFhLCExLHIucXVldWUpLHI9YXgoKSxsPXtzdGF0ZTp0LGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxyLnF1ZXVlPWwsbj1hVi5iaW5kKG51bGwsYWEsbCxhLG4pLGwuZGlzcGF0Y2g9bixyLm1lbW9pemVkU3RhdGU9ZSxbdCxuLCExXX1mdW5jdGlvbiBhRyhlKXtyZXR1cm4gYVkoYV8oKSxhbyxlKX1mdW5jdGlvbiBhWShlLHQsbil7aWYodD1hTChlLHQsYUspWzBdLGU9YXooYU8pWzBdLCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnRoZW4pdHJ5e3ZhciByPWFOKHQpfWNhdGNoKGUpe2lmKGU9PT1sUyl0aHJvdyBseDt0aHJvdyBlfWVsc2Ugcj10O3ZhciBsPSh0PWFfKCkpLnF1ZXVlLGE9bC5kaXNwYXRjaDtyZXR1cm4gbiE9PXQubWVtb2l6ZWRTdGF0ZSYmKGFhLmZsYWdzfD0yMDQ4LGEwKDkse2Rlc3Ryb3k6dm9pZCAwfSxhSi5iaW5kKG51bGwsbCxuKSxudWxsKSksW3IsYSxlXX1mdW5jdGlvbiBhSihlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gYVooZSl7dmFyIHQ9YV8oKSxuPWFvO2lmKG51bGwhPT1uKXJldHVybiBhWSh0LG4sZSk7YV8oKSx0PXQubWVtb2l6ZWRTdGF0ZTt2YXIgcj0obj1hXygpKS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPWUsW3QsciwhMV19ZnVuY3Rpb24gYTAoZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTpuLGRlcHM6cixpbnN0OnQsbmV4dDpudWxsfSxudWxsPT09KHQ9YWEudXBkYXRlUXVldWUpJiYodD1hUCgpLGFhLnVwZGF0ZVF1ZXVlPXQpLG51bGw9PT0obj10Lmxhc3RFZmZlY3QpP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpLGV9ZnVuY3Rpb24gYTEoKXtyZXR1cm4gYV8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGEyKGUsdCxuLHIpe3ZhciBsPWF4KCk7YWEuZmxhZ3N8PWUsbC5tZW1vaXplZFN0YXRlPWEwKDF8dCx7ZGVzdHJveTp2b2lkIDB9LG4sdm9pZCAwPT09cj9udWxsOnIpfWZ1bmN0aW9uIGEzKGUsdCxuLHIpe3ZhciBsPWFfKCk7cj12b2lkIDA9PT1yP251bGw6cjt2YXIgYT1sLm1lbW9pemVkU3RhdGUuaW5zdDtudWxsIT09YW8mJm51bGwhPT1yJiZhZyhyLGFvLm1lbW9pemVkU3RhdGUuZGVwcyk/bC5tZW1vaXplZFN0YXRlPWEwKHQsYSxuLHIpOihhYS5mbGFnc3w9ZSxsLm1lbW9pemVkU3RhdGU9YTAoMXx0LGEsbixyKSl9ZnVuY3Rpb24gYTQoZSx0KXthMig4MzkwNjU2LDgsZSx0KX1mdW5jdGlvbiBhOChlLHQpe2EzKDIwNDgsOCxlLHQpfWZ1bmN0aW9uIGE1KGUpe3ZhciB0PWFfKCkubWVtb2l6ZWRTdGF0ZSxuPXtyZWY6dCxuZXh0SW1wbDplfTthYS5mbGFnc3w9NDt2YXIgcj1hYS51cGRhdGVRdWV1ZTtpZihudWxsPT09cilyPWFQKCksYWEudXBkYXRlUXVldWU9cixyLmV2ZW50cz1bbl07ZWxzZXt2YXIgbD1yLmV2ZW50cztudWxsPT09bD9yLmV2ZW50cz1bbl06bC5wdXNoKG4pfXJldHVybiBmdW5jdGlvbigpe2lmKDAhPSgyJnVTKSl0aHJvdyBFcnJvcih1KDQ0MCkpO3JldHVybiB0LmltcGwuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGE2KGUsdCl7cmV0dXJuIGEzKDQsMixlLHQpfWZ1bmN0aW9uIGE5KGUsdCl7cmV0dXJuIGEzKDQsNCxlLHQpfWZ1bmN0aW9uIGE3KGUsdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpe3ZhciBuPXQoZT1lKCkpO3JldHVybiBmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiBuP24oKTp0KG51bGwpfX1pZihudWxsIT10KXJldHVybiB0LmN1cnJlbnQ9ZT1lKCksZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gb2UoZSx0LG4pe249bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsYTMoNCw0LGE3LmJpbmQobnVsbCx0LGUpLG4pfWZ1bmN0aW9uIG90KCl7fWZ1bmN0aW9uIG9uKGUsdCl7dmFyIG49YV8oKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXQmJmFnKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIG9yKGUsdCl7dmFyIG49YV8oKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXQmJmFnKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtyPWUoKSx0XSxyKX1mdW5jdGlvbiBvbChlLHQsbil7cmV0dXJuIHZvaWQgMD09PW58fDAhPSgweDQwMDAwMDAwJmFsKSYmMD09KDI2MTkzMCZ1Xyk/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1uLGU9dTgoKSxhYS5sYW5lc3w9ZSx1Unw9ZSxuKX1mdW5jdGlvbiBvYShlLHQsbixyKXtyZXR1cm4gbkEobix0KT9uOm51bGwhPT1sSi5jdXJyZW50PyhuQShlPW9sKGUsbixyKSx0KXx8KG9VPSEwKSxlKTowPT0oNDImYWwpfHwwIT0oMHg0MDAwMDAwMCZhbCkmJjA9PSgyNjE5MzAmdV8pPyhvVT0hMCxlLm1lbW9pemVkU3RhdGU9bik6KGU9dTgoKSxhYS5sYW5lc3w9ZSx1Unw9ZSx0KX1mdW5jdGlvbiBvbyhlLHQsbixyLGwpe3ZhciBhPXEucDtxLnA9MCE9PWEmJjg+YT9hOjg7dmFyIG89Vy5ULGk9e307aS50eXBlcz1udWxsIT09bz9vLnR5cGVzOm51bGwsVy5UPWksb3koZSwhMSx0LG4pO3RyeXt2YXIgdT1sKCkscz1XLlM7aWYobnVsbCE9PXMmJnMoaSx1KSxudWxsIT09dSYmIm9iamVjdCI9PXR5cGVvZiB1JiYiZnVuY3Rpb24iPT10eXBlb2YgdS50aGVuKXt2YXIgYyxmLGQ9KGM9W10sZj17c3RhdHVzOiJwZW5kaW5nIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLHRoZW46ZnVuY3Rpb24oZSl7Yy5wdXNoKGUpfX0sdS50aGVuKGZ1bmN0aW9uKCl7Zi5zdGF0dXM9ImZ1bGZpbGxlZCIsZi52YWx1ZT1yO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKSgwLGNbZV0pKHIpfSxmdW5jdGlvbihlKXtmb3IoZi5zdGF0dXM9InJlamVjdGVkIixmLnJlYXNvbj1lLGU9MDtlPGMubGVuZ3RoO2UrKykoMCxjW2VdKSh2b2lkIDApfSksZik7b3YoZSx0LGQsdTQoZSkpfWVsc2Ugb3YoZSx0LHIsdTQoZSkpfWNhdGNoKG4pe292KGUsdCx7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOiJyZWplY3RlZCIscmVhc29uOm59LHU0KCkpfWZpbmFsbHl7cS5wPWEsbnVsbCE9PW8mJm51bGwhPT1pLnR5cGVzJiYoby50eXBlcz1pLnR5cGVzKSxXLlQ9b319ZnVuY3Rpb24gb2koKXt9ZnVuY3Rpb24gb3UoZSx0LG4scil7aWYoNSE9PWUudGFnKXRocm93IEVycm9yKHUoNDc2KSk7dmFyIGw9b3MoZSkucXVldWU7b28oZSxsLHQsSyxudWxsPT09bj9vaTpmdW5jdGlvbigpe3JldHVybiBvYyhlKSxuKHIpfSl9ZnVuY3Rpb24gb3MoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT10KXJldHVybiB0O3ZhciBuPXt9O3JldHVybih0PXttZW1vaXplZFN0YXRlOkssYmFzZVN0YXRlOkssYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphTyxsYXN0UmVuZGVyZWRTdGF0ZTpLfSxuZXh0Om51bGx9KS5uZXh0PXttZW1vaXplZFN0YXRlOm4sYmFzZVN0YXRlOm4sYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphTyxsYXN0UmVuZGVyZWRTdGF0ZTpufSxuZXh0Om51bGx9LGUubWVtb2l6ZWRTdGF0ZT10LG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLm1lbW9pemVkU3RhdGU9dCksdH1mdW5jdGlvbiBvYyhlKXt2YXIgdD1vcyhlKTtudWxsPT09dC5uZXh0JiYodD1lLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSxvdihlLHQubmV4dC5xdWV1ZSx7fSx1NCgpKX1mdW5jdGlvbiBvZigpe3JldHVybiBsdChmdil9ZnVuY3Rpb24gb2QoKXtyZXR1cm4gYV8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIG9wKCl7cmV0dXJuIGFfKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBvbShlKXtmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXtzd2l0Y2godC50YWcpe2Nhc2UgMjQ6Y2FzZSAzOnZhciBuPXU0KCkscj1sJCh0LGU9bEgobiksbik7bnVsbCE9PXImJih1NihyLHQsbiksbFEocix0LG4pKSx0PXtjYWNoZTpsdSgpfSxlLnBheWxvYWQ9dDtyZXR1cm59dD10LnJldHVybn19ZnVuY3Rpb24gb2goZSx0LG4pe3ZhciByPXU0KCk7bj17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxvYihlKT9vdyh0LG4pOm51bGwhPT0obj1yZihlLHQsbixyKSkmJih1NihuLGUsciksb2sobix0LHIpKX1mdW5jdGlvbiBvZyhlLHQsbil7b3YoZSx0LG4sdTQoKSl9ZnVuY3Rpb24gb3YoZSx0LG4scil7dmFyIGw9e2xhbmU6cixyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjpuLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYob2IoZSkpb3codCxsKTtlbHNle3ZhciBhPWUuYWx0ZXJuYXRlO2lmKDA9PT1lLmxhbmVzJiYobnVsbD09PWF8fDA9PT1hLmxhbmVzKSYmbnVsbCE9PShhPXQubGFzdFJlbmRlcmVkUmVkdWNlcikpdHJ5e3ZhciBvPXQubGFzdFJlbmRlcmVkU3RhdGUsaT1hKG8sbik7aWYobC5oYXNFYWdlclN0YXRlPSEwLGwuZWFnZXJTdGF0ZT1pLG5BKGksbykpcmV0dXJuIHJjKGUsdCxsLDApLG51bGw9PT11RSYmcnMoKSwhMX1jYXRjaChlKXt9ZmluYWxseXt9aWYobnVsbCE9PShuPXJmKGUsdCxsLHIpKSlyZXR1cm4gdTYobixlLHIpLG9rKG4sdCxyKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBveShlLHQsbixyKXtpZihyPXtsYW5lOjIscmV2ZXJ0TGFuZTpzJCgpLGdlc3R1cmU6bnVsbCxhY3Rpb246cixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LG9iKGUpKXtpZih0KXRocm93IEVycm9yKHUoNDc5KSl9ZWxzZSBudWxsIT09KHQ9cmYoZSxuLHIsMikpJiZ1Nih0LGUsMil9ZnVuY3Rpb24gb2IoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIGU9PT1hYXx8bnVsbCE9PXQmJnQ9PT1hYX1mdW5jdGlvbiBvdyhlLHQpe2FzPWF1PSEwO3ZhciBuPWUucGVuZGluZztudWxsPT09bj90Lm5leHQ9dDoodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCksZS5wZW5kaW5nPXR9ZnVuY3Rpb24gb2soZSx0LG4pe2lmKDAhPSg0MTk0MDQ4Jm4pKXt2YXIgcj10LmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLHQubGFuZXM9bnw9cixlaihlLG4pfX12YXIgb1M9e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazphaCx1c2VDb250ZXh0OmFoLHVzZUVmZmVjdDphaCx1c2VJbXBlcmF0aXZlSGFuZGxlOmFoLHVzZUxheW91dEVmZmVjdDphaCx1c2VJbnNlcnRpb25FZmZlY3Q6YWgsdXNlTWVtbzphaCx1c2VSZWR1Y2VyOmFoLHVzZVJlZjphaCx1c2VTdGF0ZTphaCx1c2VEZWJ1Z1ZhbHVlOmFoLHVzZURlZmVycmVkVmFsdWU6YWgsdXNlVHJhbnNpdGlvbjphaCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTphaCx1c2VJZDphaCx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czphaCx1c2VGb3JtU3RhdGU6YWgsdXNlQWN0aW9uU3RhdGU6YWgsdXNlT3B0aW1pc3RpYzphaCx1c2VNZW1vQ2FjaGU6YWgsdXNlQ2FjaGVSZWZyZXNoOmFofTtvUy51c2VFZmZlY3RFdmVudD1haDt2YXIgb0U9e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazpmdW5jdGlvbihlLHQpe3JldHVybiBheCgpLm1lbW9pemVkU3RhdGU9W2Usdm9pZCAwPT09dD9udWxsOnRdLGV9LHVzZUNvbnRleHQ6bHQsdXNlRWZmZWN0OmE0LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oZSx0LG4pe249bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsYTIoNDE5NDMwOCw0LGE3LmJpbmQobnVsbCx0LGUpLG4pfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYTIoNDE5NDMwOCw0LGUsdCl9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihlLHQpe2EyKDQsMixlLHQpfSx1c2VNZW1vOmZ1bmN0aW9uKGUsdCl7dmFyIG49YXgoKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPWUoKTtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWF4KCk7aWYodm9pZCAwIT09bil2YXIgbD1uKHQpO2Vsc2UgbD10O3JldHVybiByLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9bCxyLnF1ZXVlPWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOmx9LGU9ZS5kaXNwYXRjaD1vaC5iaW5kKG51bGwsYWEsZSksW3IubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3JldHVybiBheCgpLm1lbW9pemVkU3RhdGU9e2N1cnJlbnQ6ZX19LHVzZVN0YXRlOmZ1bmN0aW9uKGUpe3ZhciB0PShlPWFVKGUpKS5xdWV1ZSxuPW9nLmJpbmQobnVsbCxhYSx0KTtyZXR1cm4gdC5kaXNwYXRjaD1uLFtlLm1lbW9pemVkU3RhdGUsbl19LHVzZURlYnVnVmFsdWU6b3QsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBvbChheCgpLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hVSghMSk7cmV0dXJuIGU9b28uYmluZChudWxsLGFhLGUucXVldWUsITAsITEpLGF4KCkubWVtb2l6ZWRTdGF0ZT1lLFshMSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWFhLGw9YXgoKTtpZihyJCl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcih1KDQwNykpO249bigpfWVsc2V7aWYobj10KCksbnVsbD09PXVFKXRocm93IEVycm9yKHUoMzQ5KSk7MCE9KDEyNyZ1Xyl8fGFJKHIsdCxuKX1sLm1lbW9pemVkU3RhdGU9bjt2YXIgYT17dmFsdWU6bixnZXRTbmFwc2hvdDp0fTtyZXR1cm4gbC5xdWV1ZT1hLGE0KGFGLmJpbmQobnVsbCxyLGEsZSksW2VdKSxyLmZsYWdzfD0yMDQ4LGEwKDkse2Rlc3Ryb3k6dm9pZCAwfSxhRC5iaW5kKG51bGwscixhLG4sdCksbnVsbCksbn0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgZT1heCgpLHQ9dUUuaWRlbnRpZmllclByZWZpeDtpZihyJCl7dmFyIG49ckQscj1ySTt0PSJfIit0KyJSXyIrKG49KHImfigxPDwzMi1lUChyKS0xKSkudG9TdHJpbmcoMzIpK24pLDA8KG49YWYrKykmJih0Kz0iSCIrbi50b1N0cmluZygzMikpLHQrPSJfIn1lbHNlIHQ9Il8iK3QrInJfIisobj1hbSsrKS50b1N0cmluZygzMikrIl8iO3JldHVybiBlLm1lbW9pemVkU3RhdGU9dH0sdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFYLHVzZUFjdGlvblN0YXRlOmFYLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSl7dmFyIHQ9YXgoKTt0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZTt2YXIgbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm51bGwsbGFzdFJlbmRlcmVkU3RhdGU6bnVsbH07cmV0dXJuIHQucXVldWU9bix0PW95LmJpbmQobnVsbCxhYSwhMCxuKSxuLmRpc3BhdGNoPXQsW2UsdF19LHVzZU1lbW9DYWNoZTphVCx1c2VDYWNoZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gYXgoKS5tZW1vaXplZFN0YXRlPW9tLmJpbmQobnVsbCxhYSl9LHVzZUVmZmVjdEV2ZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWF4KCksbj17aW1wbDplfTtyZXR1cm4gdC5tZW1vaXplZFN0YXRlPW4sZnVuY3Rpb24oKXtpZigwIT0oMiZ1UykpdGhyb3cgRXJyb3IodSg0NDApKTtyZXR1cm4gbi5pbXBsLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LG94PXtyZWFkQ29udGV4dDpsdCx1c2U6YUMsdXNlQ2FsbGJhY2s6b24sdXNlQ29udGV4dDpsdCx1c2VFZmZlY3Q6YTgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpvZSx1c2VJbnNlcnRpb25FZmZlY3Q6YTYsdXNlTGF5b3V0RWZmZWN0OmE5LHVzZU1lbW86b3IsdXNlUmVkdWNlcjpheix1c2VSZWY6YTEsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gYXooYU8pfSx1c2VEZWJ1Z1ZhbHVlOm90LHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb2EoYV8oKSxhby5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1heihhTylbMF0sdD1hXygpLm1lbW9pemVkU3RhdGU7cmV0dXJuWyJib29sZWFuIj09dHlwZW9mIGU/ZTphTihlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YU0sdXNlSWQ6b2QsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFHLHVzZUFjdGlvblN0YXRlOmFHLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYUIoYV8oKSxhbyxlLHQpfSx1c2VNZW1vQ2FjaGU6YVQsdXNlQ2FjaGVSZWZyZXNoOm9wfTtveC51c2VFZmZlY3RFdmVudD1hNTt2YXIgb189e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazpvbix1c2VDb250ZXh0Omx0LHVzZUVmZmVjdDphOCx1c2VJbXBlcmF0aXZlSGFuZGxlOm9lLHVzZUluc2VydGlvbkVmZmVjdDphNix1c2VMYXlvdXRFZmZlY3Q6YTksdXNlTWVtbzpvcix1c2VSZWR1Y2VyOmFSLHVzZVJlZjphMSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhUihhTyl9LHVzZURlYnVnVmFsdWU6b3QsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPWFfKCk7cmV0dXJuIG51bGw9PT1hbz9vbChuLGUsdCk6b2Eobixhby5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hUihhTylbMF0sdD1hXygpLm1lbW9pemVkU3RhdGU7cmV0dXJuWyJib29sZWFuIj09dHlwZW9mIGU/ZTphTihlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YU0sdXNlSWQ6b2QsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFaLHVzZUFjdGlvblN0YXRlOmFaLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1hXygpO3JldHVybiBudWxsIT09YW8/YUIobixhbyxlLHQpOihuLmJhc2VTdGF0ZT1lLFtlLG4ucXVldWUuZGlzcGF0Y2hdKX0sdXNlTWVtb0NhY2hlOmFULHVzZUNhY2hlUmVmcmVzaDpvcH07ZnVuY3Rpb24gb1AoZSx0LG4scil7bj1udWxsPT0obj1uKHIsdD1lLm1lbW9pemVkU3RhdGUpKT90Ongoe30sdCxuKSxlLm1lbW9pemVkU3RhdGU9biwwPT09ZS5sYW5lcyYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pfW9fLnVzZUVmZmVjdEV2ZW50PWE1O3ZhciBvTj17ZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciByPXU0KCksbD1sSChyKTtsLnBheWxvYWQ9dCxudWxsIT1uJiYobC5jYWxsYmFjaz1uKSxudWxsIT09KHQ9bCQoZSxsLHIpKSYmKHU2KHQsZSxyKSxsUSh0LGUscikpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciByPXU0KCksbD1sSChyKTtsLnRhZz0xLGwucGF5bG9hZD10LG51bGwhPW4mJihsLmNhbGxiYWNrPW4pLG51bGwhPT0odD1sJChlLGwscikpJiYodTYodCxlLHIpLGxRKHQsZSxyKSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihlLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49dTQoKSxyPWxIKG4pO3IudGFnPTIsbnVsbCE9dCYmKHIuY2FsbGJhY2s9dCksbnVsbCE9PSh0PWwkKGUscixuKSkmJih1Nih0LGUsbiksbFEodCxlLG4pKX19O2Z1bmN0aW9uIG9DKGUsdCxuLHIsbCxhLG8pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixhLG8pOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwhbmoobixyKXx8IW5qKGwsYSl9ZnVuY3Rpb24gb1QoZSx0LG4scil7ZT10LnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZ0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksdC5zdGF0ZSE9PWUmJm9OLmVucXVldWVSZXBsYWNlU3RhdGUodCx0LnN0YXRlLG51bGwpfWZ1bmN0aW9uIG9PKGUsdCl7dmFyIG49dDtpZigicmVmImluIHQpZm9yKHZhciByIGluIG49e30sdCkicmVmIiE9PXImJihuW3JdPXRbcl0pO2lmKGU9ZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBsIGluIG49PT10JiYobj14KHt9LG4pKSxlKXZvaWQgMD09PW5bbF0mJihuW2xdPWVbbF0pO3JldHVybiBufWZ1bmN0aW9uIG96KGUpe3JhKGUpfWZ1bmN0aW9uIG9MKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gb1IoZSl7cmEoZSl9ZnVuY3Rpb24gb00oZSx0KXt0cnl7KDAsZS5vblVuY2F1Z2h0RXJyb3IpKHQudmFsdWUse2NvbXBvbmVudFN0YWNrOnQuc3RhY2t9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBvSShlLHQsbil7dHJ5eygwLGUub25DYXVnaHRFcnJvcikobi52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bi5zdGFjayxlcnJvckJvdW5kYXJ5OjE9PT10LnRhZz90LnN0YXRlTm9kZTpudWxsfSl9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGV9KX19ZnVuY3Rpb24gb0QoZSx0LG4pe3JldHVybihuPWxIKG4pKS50YWc9MyxuLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sbi5jYWxsYmFjaz1mdW5jdGlvbigpe29NKGUsdCl9LG59ZnVuY3Rpb24gb0YoZSl7cmV0dXJuKGU9bEgoZSkpLnRhZz0zLGV9ZnVuY3Rpb24gb0EoZSx0LG4scil7dmFyIGw9bi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZigiZnVuY3Rpb24iPT10eXBlb2YgbCl7dmFyIGE9ci52YWx1ZTtlLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbChhKX0sZS5jYWxsYmFjaz1mdW5jdGlvbigpe29JKHQsbixyKX19dmFyIG89bi5zdGF0ZU5vZGU7bnVsbCE9PW8mJiJmdW5jdGlvbiI9PXR5cGVvZiBvLmNvbXBvbmVudERpZENhdGNoJiYoZS5jYWxsYmFjaz1mdW5jdGlvbigpe29JKHQsbixyKSwiZnVuY3Rpb24iIT10eXBlb2YgbCYmKG51bGw9PT11UT91UT1uZXcgU2V0KFt0aGlzXSk6dVEuYWRkKHRoaXMpKTt2YXIgZT1yLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goci52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWU/ZToiIn0pfSl9dmFyIG9qPUVycm9yKHUoNDYxKSksb1U9ITE7ZnVuY3Rpb24gb0IoZSx0LG4scil7dC5jaGlsZD1udWxsPT09ZT9saih0LG51bGwsbixyKTpsQSh0LGUuY2hpbGQsbixyKX1mdW5jdGlvbiBvVihlLHQsbixyLGwpe249bi5yZW5kZXI7dmFyIGE9dC5yZWY7aWYoInJlZiJpbiByKXt2YXIgbz17fTtmb3IodmFyIGkgaW4gcikicmVmIiE9PWkmJihvW2ldPXJbaV0pfWVsc2Ugbz1yO3JldHVybihsZSh0KSxyPWF2KGUsdCxuLG8sYSxsKSxpPWFrKCksbnVsbD09PWV8fG9VKT8ociQmJmkmJnJqKHQpLHQuZmxhZ3N8PTEsb0IoZSx0LHIsbCksdC5jaGlsZCk6KGFTKGUsdCxsKSxpbChlLHQsbCkpfWZ1bmN0aW9uIG9IKGUsdCxuLHIsbCl7aWYobnVsbD09PWUpe3ZhciBhPW4udHlwZTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgYXx8cnkoYSl8fHZvaWQgMCE9PWEuZGVmYXVsdFByb3BzfHxudWxsIT09bi5jb21wYXJlPygoZT1yayhuLnR5cGUsbnVsbCxyLHQsdC5tb2RlLGwpKS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWUpOih0LnRhZz0xNSx0LnR5cGU9YSxvJChlLHQsYSxyLGwpKX1pZihhPWUuY2hpbGQsIWlhKGUsbCkpe3ZhciBvPWEubWVtb2l6ZWRQcm9wcztpZigobj1udWxsIT09KG49bi5jb21wYXJlKT9uOm5qKShvLHIpJiZlLnJlZj09PXQucmVmKXJldHVybiBpbChlLHQsbCl9cmV0dXJuIHQuZmxhZ3N8PTEsKGU9cmIoYSxyKSkucmVmPXQucmVmLGUucmV0dXJuPXQsdC5jaGlsZD1lfWZ1bmN0aW9uIG8kKGUsdCxuLHIsbCl7aWYobnVsbCE9PWUpe3ZhciBhPWUubWVtb2l6ZWRQcm9wcztpZihuaihhLHIpJiZlLnJlZj09PXQucmVmKWlmKG9VPSExLHQucGVuZGluZ1Byb3BzPXI9YSwhaWEoZSxsKSlyZXR1cm4gdC5sYW5lcz1lLmxhbmVzLGlsKGUsdCxsKTtlbHNlIDAhPSgxMzEwNzImZS5mbGFncykmJihvVT0hMCl9cmV0dXJuIG9ZKGUsdCxuLHIsbCl9ZnVuY3Rpb24gb1EoZSx0LG4scil7dmFyIGw9ci5jaGlsZHJlbixhPW51bGwhPT1lP2UubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKG51bGw9PT1lJiZudWxsPT09dC5zdGF0ZU5vZGUmJih0LnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSksImhpZGRlbiI9PT1yLm1vZGUpe2lmKDAhPSgxMjgmdC5mbGFncykpe2lmKGE9bnVsbCE9PWE/YS5iYXNlTGFuZXN8bjpuLG51bGwhPT1lKXtmb3IobD0wLHI9dC5jaGlsZD1lLmNoaWxkO251bGwhPT1yOylsPWx8ci5sYW5lc3xyLmNoaWxkTGFuZXMscj1yLnNpYmxpbmc7cj1sJn5hfWVsc2Ugcj0wLHQuY2hpbGQ9bnVsbDtyZXR1cm4gb3EoZSx0LGEsbixyKX1pZigwPT0oMHgyMDAwMDAwMCZuKSlyZXR1cm4gcj10LmxhbmVzPTB4MjAwMDAwMDAsb3EoZSx0LG51bGwhPT1hP2EuYmFzZUxhbmVzfG46bixuLHIpO3QubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGx9LG51bGwhPT1lJiZsdyh0LG51bGwhPT1hP2EuY2FjaGVQb29sOm51bGwpLG51bGwhPT1hP2wwKHQsYSk6bDEoKSxsNih0KX1lbHNlIG51bGwhPT1hPyhsdyh0LGEuY2FjaGVQb29sKSxsMCh0LGEpLGw5KCksdC5tZW1vaXplZFN0YXRlPW51bGwpOihudWxsIT09ZSYmbHcodCxudWxsKSxsMSgpLGw5KCkpO3JldHVybiBvQihlLHQsbCxuKSx0LmNoaWxkfWZ1bmN0aW9uIG9XKGUsdCl7cmV0dXJuIG51bGwhPT1lJiYyMj09PWUudGFnfHxudWxsIT09dC5zdGF0ZU5vZGV8fCh0LnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSksdC5zaWJsaW5nfWZ1bmN0aW9uIG9xKGUsdCxuLHIsbCl7dmFyIGE9bGIoKTtyZXR1cm4gdC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6bixjYWNoZVBvb2w6YT1udWxsPT09YT9udWxsOntwYXJlbnQ6bGkuX2N1cnJlbnRWYWx1ZSxwb29sOmF9fSxudWxsIT09ZSYmbHcodCxudWxsKSxsMSgpLGw2KHQpLG51bGwhPT1lJiZyOShlLHQsciwhMCksdC5jaGlsZExhbmVzPWwsbnVsbH1mdW5jdGlvbiBvSyhlLHQpe3JldHVybih0PW81KHttb2RlOnQubW9kZSxjaGlsZHJlbjp0LmNoaWxkcmVufSxlLm1vZGUpKS5yZWY9ZS5yZWYsZS5jaGlsZD10LHQucmV0dXJuPWUsdH1mdW5jdGlvbiBvWChlLHQsbil7cmV0dXJuIGxBKHQsZS5jaGlsZCxudWxsLG4pLGU9b0sodCx0LnBlbmRpbmdQcm9wcyksZS5mbGFnc3w9MixsNyh0KSx0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIG9HKGUsdCl7dmFyIG49dC5yZWY7aWYobnVsbD09PW4pbnVsbCE9PWUmJm51bGwhPT1lLnJlZiYmKHQuZmxhZ3N8PTQxOTQ4MTYpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4mJiJvYmplY3QiIT10eXBlb2Ygbil0aHJvdyBFcnJvcih1KDI4NCkpOyhudWxsPT09ZXx8ZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTQxOTQ4MTYpfX1mdW5jdGlvbiBvWShlLHQsbixyLGwpe3JldHVybihsZSh0KSxuPWF2KGUsdCxuLHIsdm9pZCAwLGwpLHI9YWsoKSxudWxsPT09ZXx8b1UpPyhyJCYmciYmcmoodCksdC5mbGFnc3w9MSxvQihlLHQsbixsKSx0LmNoaWxkKTooYVMoZSx0LGwpLGlsKGUsdCxsKSl9ZnVuY3Rpb24gb0ooZSx0LG4scixsLGEpe3JldHVybihsZSh0KSx0LnVwZGF0ZVF1ZXVlPW51bGwsbj1hYih0LHIsbixsKSxheShlKSxyPWFrKCksbnVsbD09PWV8fG9VKT8ociQmJnImJnJqKHQpLHQuZmxhZ3N8PTEsb0IoZSx0LG4sYSksdC5jaGlsZCk6KGFTKGUsdCxhKSxpbChlLHQsYSkpfWZ1bmN0aW9uIG9aKGUsdCxuLHIsbCl7aWYobGUodCksbnVsbD09PXQuc3RhdGVOb2RlKXt2YXIgYT1yaCxvPW4uY29udGV4dFR5cGU7Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmKGE9bHQobykpLHQubWVtb2l6ZWRTdGF0ZT1udWxsIT09KGE9bmV3IG4ocixhKSkuc3RhdGUmJnZvaWQgMCE9PWEuc3RhdGU/YS5zdGF0ZTpudWxsLGEudXBkYXRlcj1vTix0LnN0YXRlTm9kZT1hLGEuX3JlYWN0SW50ZXJuYWxzPXQsKGE9dC5zdGF0ZU5vZGUpLnByb3BzPXIsYS5zdGF0ZT10Lm1lbW9pemVkU3RhdGUsYS5yZWZzPXt9LGxCKHQpLG89bi5jb250ZXh0VHlwZSxhLmNvbnRleHQ9Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09bz9sdChvKTpyaCxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2Yobz1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihvUCh0LG4sbyxyKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwobz1hLnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxvIT09YS5zdGF0ZSYmb04uZW5xdWV1ZVJlcGxhY2VTdGF0ZShhLGEuc3RhdGUsbnVsbCksbFgodCxyLGEsbCksbEsoKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSxyPSEwfWVsc2UgaWYobnVsbD09PWUpe2E9dC5zdGF0ZU5vZGU7dmFyIGk9dC5tZW1vaXplZFByb3BzLHU9b08obixpKTthLnByb3BzPXU7dmFyIHM9YS5jb250ZXh0LGM9bi5jb250ZXh0VHlwZTtvPXJoLCJvYmplY3QiPT10eXBlb2YgYyYmbnVsbCE9PWMmJihvPWx0KGMpKTt2YXIgZj1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztjPSJmdW5jdGlvbiI9PXR5cGVvZiBmfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSxpPXQucGVuZGluZ1Byb3BzIT09aSxjfHwiZnVuY3Rpb24iIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGl8fHMhPT1vKSYmb1QodCxhLHIsbyksbFU9ITE7dmFyIGQ9dC5tZW1vaXplZFN0YXRlO2Euc3RhdGU9ZCxsWCh0LHIsYSxsKSxsSygpLHM9dC5tZW1vaXplZFN0YXRlLGl8fGQhPT1zfHxsVT8oImZ1bmN0aW9uIj09dHlwZW9mIGYmJihvUCh0LG4sZixyKSxzPXQubWVtb2l6ZWRTdGF0ZSksKHU9bFV8fG9DKHQsbix1LHIsZCxzLG8pKT8oY3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50JiZhLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpKTooImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9cyksYS5wcm9wcz1yLGEuc3RhdGU9cyxhLmNvbnRleHQ9byxyPXUpOigiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHI9ITEpfWVsc2V7YT10LnN0YXRlTm9kZSxsVihlLHQpLGM9b08obixvPXQubWVtb2l6ZWRQcm9wcyksYS5wcm9wcz1jLGY9dC5wZW5kaW5nUHJvcHMsZD1hLmNvbnRleHQscz1uLmNvbnRleHRUeXBlLHU9cmgsIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyYmKHU9bHQocykpLChzPSJmdW5jdGlvbiI9PXR5cGVvZihpPW4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHwiZnVuY3Rpb24iIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KG8hPT1mfHxkIT09dSkmJm9UKHQsYSxyLHUpLGxVPSExLGQ9dC5tZW1vaXplZFN0YXRlLGEuc3RhdGU9ZCxsWCh0LHIsYSxsKSxsSygpO3ZhciBwPXQubWVtb2l6ZWRTdGF0ZTtvIT09Znx8ZCE9PXB8fGxVfHxudWxsIT09ZSYmbnVsbCE9PWUuZGVwZW5kZW5jaWVzJiZyNyhlLmRlcGVuZGVuY2llcyk/KCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYob1AodCxuLGkscikscD10Lm1lbW9pemVkU3RhdGUpLChjPWxVfHxvQyh0LG4sYyxyLGQscCx1KXx8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmcjcoZS5kZXBlbmRlbmNpZXMpKT8oc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxVcGRhdGV8fCgiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlJiZhLmNvbXBvbmVudFdpbGxVcGRhdGUocixwLHUpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIscCx1KSksImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlJiYodC5mbGFnc3w9NCksImZ1bmN0aW9uIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJih0LmZsYWdzfD0xMDI0KSk6KCJmdW5jdGlvbiIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8bz09PWUubWVtb2l6ZWRQcm9wcyYmZD09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxvPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksdC5tZW1vaXplZFByb3BzPXIsdC5tZW1vaXplZFN0YXRlPXApLGEucHJvcHM9cixhLnN0YXRlPXAsYS5jb250ZXh0PXUscj1jKTooImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxvPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksImZ1bmN0aW9uIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fG89PT1lLm1lbW9pemVkUHJvcHMmJmQ9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxyPSExKX1yZXR1cm4gYT1yLG9HKGUsdCkscj0wIT0oMTI4JnQuZmxhZ3MpLGF8fHI/KGE9dC5zdGF0ZU5vZGUsbj1yJiYiZnVuY3Rpb24iIT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDphLnJlbmRlcigpLHQuZmxhZ3N8PTEsbnVsbCE9PWUmJnI/KHQuY2hpbGQ9bEEodCxlLmNoaWxkLG51bGwsbCksdC5jaGlsZD1sQSh0LG51bGwsbixsKSk6b0IoZSx0LG4sbCksdC5tZW1vaXplZFN0YXRlPWEuc3RhdGUsZT10LmNoaWxkKTplPWlsKGUsdCxsKSxlfWZ1bmN0aW9uIG8wKGUsdCxuLHIpe3JldHVybiBySigpLHQuZmxhZ3N8PTI1NixvQihlLHQsbixyKSx0LmNoaWxkfXZhciBvMT17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjAsaHlkcmF0aW9uRXJyb3JzOm51bGx9O2Z1bmN0aW9uIG8yKGUpe3JldHVybntiYXNlTGFuZXM6ZSxjYWNoZVBvb2w6bGsoKX19ZnVuY3Rpb24gbzMoZSx0LG4pe3JldHVybiBlPW51bGwhPT1lP2UuY2hpbGRMYW5lcyZ+bjowLHQmJihlfD11RCksZX1mdW5jdGlvbiBvNChlLHQsbil7dmFyIHIsbD10LnBlbmRpbmdQcm9wcyxhPSExLG89MCE9KDEyOCZ0LmZsYWdzKTtpZigocj1vKXx8KHI9KG51bGw9PT1lfHxudWxsIT09ZS5tZW1vaXplZFN0YXRlKSYmMCE9KDImYWUuY3VycmVudCkpLHImJihhPSEwLHQuZmxhZ3MmPS0xMjkpLHI9MCE9KDMyJnQuZmxhZ3MpLHQuZmxhZ3MmPS0zMyxudWxsPT09ZSl7aWYociQpe2lmKGE/bDgodCk6bDkoKSwoZT1ySCk/bnVsbCE9PShlPW51bGwhPT0oZT1jVihlLHJXKSkmJiImIiE9PWUuZGF0YT9lOm51bGwpJiYodC5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmUsdHJlZUNvbnRleHQ6bnVsbCE9PXJNP3tpZDpySSxvdmVyZmxvdzpyRH06bnVsbCxyZXRyeUxhbmU6MHgyMDAwMDAwMCxoeWRyYXRpb25FcnJvcnM6bnVsbH0sKG49cngoZSkpLnJldHVybj10LHQuY2hpbGQ9bixyVj10LHJIPW51bGwpOmU9bnVsbCxudWxsPT09ZSl0aHJvdyBySyh0KTtyZXR1cm4gYyQoZSk/dC5sYW5lcz0zMjp0LmxhbmVzPTB4MjAwMDAwMDAsbnVsbH12YXIgaT1sLmNoaWxkcmVuO3JldHVybihsPWwuZmFsbGJhY2ssYSk/KGw5KCksaT1vNSh7bW9kZToiaGlkZGVuIixjaGlsZHJlbjppfSxhPXQubW9kZSksbD1yUyhsLGEsbixudWxsKSxpLnJldHVybj10LGwucmV0dXJuPXQsaS5zaWJsaW5nPWwsdC5jaGlsZD1pLChsPXQuY2hpbGQpLm1lbW9pemVkU3RhdGU9bzIobiksbC5jaGlsZExhbmVzPW8zKGUscixuKSx0Lm1lbW9pemVkU3RhdGU9bzEsb1cobnVsbCxsKSk6KGw4KHQpLG84KHQsaSkpfXZhciBzPWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cyYmbnVsbCE9PShpPXMuZGVoeWRyYXRlZCkpe2lmKG8pMjU2JnQuZmxhZ3M/KGw4KHQpLHQuZmxhZ3MmPS0yNTcsdD1vNihlLHQsbikpOm51bGwhPT10Lm1lbW9pemVkU3RhdGU/KGw5KCksdC5jaGlsZD1lLmNoaWxkLHQuZmxhZ3N8PTEyOCx0PW51bGwpOihsOSgpLGk9bC5mYWxsYmFjayxhPXQubW9kZSxsPW81KHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpsLmNoaWxkcmVufSxhKSxpPXJTKGksYSxuLG51bGwpLGkuZmxhZ3N8PTIsbC5yZXR1cm49dCxpLnJldHVybj10LGwuc2libGluZz1pLHQuY2hpbGQ9bCxsQSh0LGUuY2hpbGQsbnVsbCxuKSwobD10LmNoaWxkKS5tZW1vaXplZFN0YXRlPW8yKG4pLGwuY2hpbGRMYW5lcz1vMyhlLHIsbiksdC5tZW1vaXplZFN0YXRlPW8xLHQ9b1cobnVsbCxsKSk7ZWxzZSBpZihsOCh0KSxjJChpKSl7aWYocj1pLm5leHRTaWJsaW5nJiZpLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIGM9ci5kZ3N0O3I9YywobD1FcnJvcih1KDQxOSkpKS5zdGFjaz0iIixsLmRpZ2VzdD1yLHIwKHt2YWx1ZTpsLHNvdXJjZTpudWxsLHN0YWNrOm51bGx9KSx0PW82KGUsdCxuKX1lbHNlIGlmKG9VfHxyOShlLHQsbiwhMSkscj0wIT0obiZlLmNoaWxkTGFuZXMpLG9VfHxyKXtpZihudWxsIT09KHI9dUUpJiYwIT09KGw9ZVUocixuKSkmJmwhPT1zLnJldHJ5TGFuZSl0aHJvdyBzLnJldHJ5TGFuZT1sLHJkKGUsbCksdTYocixlLGwpLG9qO2NIKGkpfHxzdSgpLHQ9bzYoZSx0LG4pfWVsc2UgY0goaSk/KHQuZmxhZ3N8PTE5Mix0LmNoaWxkPWUuY2hpbGQsdD1udWxsKTooZT1zLnRyZWVDb250ZXh0LHJIPWNRKGkubmV4dFNpYmxpbmcpLHJWPXQsciQ9ITAsclE9bnVsbCxyVz0hMSxudWxsIT09ZSYmckIodCxlKSx0PW84KHQsbC5jaGlsZHJlbiksdC5mbGFnc3w9NDA5Nik7cmV0dXJuIHR9cmV0dXJuIGE/KGw5KCksaT1sLmZhbGxiYWNrLGE9dC5tb2RlLGM9KHM9ZS5jaGlsZCkuc2libGluZywobD1yYihzLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmwuY2hpbGRyZW59KSkuc3VidHJlZUZsYWdzPTB4N2UwMDAwMCZzLnN1YnRyZWVGbGFncyxudWxsIT09Yz9pPXJiKGMsaSk6KGk9clMoaSxhLG4sbnVsbCksaS5mbGFnc3w9MiksaS5yZXR1cm49dCxsLnJldHVybj10LGwuc2libGluZz1pLHQuY2hpbGQ9bCxvVyhudWxsLGwpLGw9dC5jaGlsZCxudWxsPT09KGk9ZS5jaGlsZC5tZW1vaXplZFN0YXRlKT9pPW8yKG4pOihudWxsIT09KGE9aS5jYWNoZVBvb2wpPyhzPWxpLl9jdXJyZW50VmFsdWUsYT1hLnBhcmVudCE9PXM/e3BhcmVudDpzLHBvb2w6c306YSk6YT1saygpLGk9e2Jhc2VMYW5lczppLmJhc2VMYW5lc3xuLGNhY2hlUG9vbDphfSksbC5tZW1vaXplZFN0YXRlPWksbC5jaGlsZExhbmVzPW8zKGUscixuKSx0Lm1lbW9pemVkU3RhdGU9bzEsb1coZS5jaGlsZCxsKSk6KGw4KHQpLGU9KG49ZS5jaGlsZCkuc2libGluZywobj1yYihuLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpsLmNoaWxkcmVufSkpLnJldHVybj10LG4uc2libGluZz1udWxsLG51bGwhPT1lJiYobnVsbD09PShyPXQuZGVsZXRpb25zKT8odC5kZWxldGlvbnM9W2VdLHQuZmxhZ3N8PTE2KTpyLnB1c2goZSkpLHQuY2hpbGQ9bix0Lm1lbW9pemVkU3RhdGU9bnVsbCxuKX1mdW5jdGlvbiBvOChlLHQpe3JldHVybih0PW81KHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjp0fSxlLm1vZGUpKS5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gbzUoZSx0KXtyZXR1cm4oZT1ydigyMixlLG51bGwsdCkpLmxhbmVzPTAsZX1mdW5jdGlvbiBvNihlLHQsbil7cmV0dXJuIGxBKHQsZS5jaGlsZCxudWxsLG4pLGU9bzgodCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksZS5mbGFnc3w9Mix0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIG85KGUsdCxuKXtlLmxhbmVzfD10O3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9dCkscjUoZS5yZXR1cm4sdCxuKX1mdW5jdGlvbiBvNyhlKXtmb3IodmFyIHQ9bnVsbDtudWxsIT09ZTspe3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiZudWxsPT09YXIobikmJih0PWUpLGU9ZS5zaWJsaW5nfXJldHVybiB0fWZ1bmN0aW9uIGllKGUsdCxuLHIsbCxhKXt2YXIgbz1lLm1lbW9pemVkU3RhdGU7bnVsbD09PW8/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbE1vZGU6bCx0cmVlRm9ya0NvdW50OmF9OihvLmlzQmFja3dhcmRzPXQsby5yZW5kZXJpbmc9bnVsbCxvLnJlbmRlcmluZ1N0YXJ0VGltZT0wLG8ubGFzdD1yLG8udGFpbD1uLG8udGFpbE1vZGU9bCxvLnRyZWVGb3JrQ291bnQ9YSl9ZnVuY3Rpb24gaXQoZSl7dmFyIHQ9ZS5jaGlsZDtmb3IoZS5jaGlsZD1udWxsO251bGwhPT10Oyl7dmFyIG49dC5zaWJsaW5nO3Quc2libGluZz1lLmNoaWxkLGUuY2hpbGQ9dCx0PW59fWZ1bmN0aW9uIGlyKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxsPXIucmV2ZWFsT3JkZXIsYT1yLnRhaWw7cj1yLmNoaWxkcmVuO3ZhciBvPWFlLmN1cnJlbnQ7aWYoMTI4JnQuZmxhZ3MpcmV0dXJuIGF0KHQsbyksbnVsbDt2YXIgaT0wIT0oMiZvKTtpZihpPyhvPTEmb3wyLHQuZmxhZ3N8PTEyOCk6byY9MSxhdCh0LG8pLCJiYWNrd2FyZHMiPT09bCYmbnVsbCE9PWU/KGl0KGUpLG9CKGUsdCxyLG4pLGl0KGUpKTpvQihlLHQscixuKSxyPXIkP3J6OjAsIWkmJm51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWU6Zm9yKGU9dC5jaGlsZDtudWxsIT09ZTspe2lmKDEzPT09ZS50YWcpbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbzkoZSxuLHQpO2Vsc2UgaWYoMTk9PT1lLnRhZylvOShlLG4sdCk7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PXQpYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PXQpYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9c3dpdGNoKGwpe2Nhc2UiYmFja3dhcmRzIjpudWxsPT09KG49bzcodC5jaGlsZCkpPyhsPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobD1uLnNpYmxpbmcsbi5zaWJsaW5nPW51bGwsaXQodCkpLGllKHQsITAsbCxudWxsLGEscik7YnJlYWs7Y2FzZSJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIjpmb3Iobj1udWxsLGw9dC5jaGlsZCx0LmNoaWxkPW51bGw7bnVsbCE9PWw7KXtpZihudWxsIT09KGU9bC5hbHRlcm5hdGUpJiZudWxsPT09YXIoZSkpe3QuY2hpbGQ9bDticmVha31lPWwuc2libGluZyxsLnNpYmxpbmc9bixuPWwsbD1lfWllKHQsITAsbixudWxsLGEscik7YnJlYWs7Y2FzZSJ0b2dldGhlciI6aWUodCwhMSxudWxsLG51bGwsdm9pZCAwLHIpO2JyZWFrO2Nhc2UiaW5kZXBlbmRlbnQiOnQubWVtb2l6ZWRTdGF0ZT1udWxsO2JyZWFrO2RlZmF1bHQ6bnVsbD09PShuPW83KHQuY2hpbGQpKT8obD10LmNoaWxkLHQuY2hpbGQ9bnVsbCk6KGw9bi5zaWJsaW5nLG4uc2libGluZz1udWxsKSxpZSh0LCExLGwsbixhLHIpfXJldHVybiB0LmNoaWxkfWZ1bmN0aW9uIGlsKGUsdCxuKXtpZihudWxsIT09ZSYmKHQuZGVwZW5kZW5jaWVzPWUuZGVwZW5kZW5jaWVzKSx1Unw9dC5sYW5lcywwPT0obiZ0LmNoaWxkTGFuZXMpKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtlbHNlIGlmKHI5KGUsdCxuLCExKSwwPT0obiZ0LmNoaWxkTGFuZXMpKXJldHVybiBudWxsfWlmKG51bGwhPT1lJiZ0LmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcih1KDE1MykpO2lmKG51bGwhPT10LmNoaWxkKXtmb3Iobj1yYihlPXQuY2hpbGQsZS5wZW5kaW5nUHJvcHMpLHQuY2hpbGQ9bixuLnJldHVybj10O251bGwhPT1lLnNpYmxpbmc7KWU9ZS5zaWJsaW5nLChuPW4uc2libGluZz1yYihlLGUucGVuZGluZ1Byb3BzKSkucmV0dXJuPXQ7bi5zaWJsaW5nPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gaWEoZSx0KXtyZXR1cm4gMCE9KGUubGFuZXMmdCl8fCEhKG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnI3KGUpKX1mdW5jdGlvbiBpbyhlLHQsbil7aWYobnVsbCE9PWUpaWYoZS5tZW1vaXplZFByb3BzIT09dC5wZW5kaW5nUHJvcHMpb1U9ITA7ZWxzZXtpZighaWEoZSxuKSYmMD09KDEyOCZ0LmZsYWdzKSlyZXR1cm4gb1U9ITEsZnVuY3Rpb24oZSx0LG4pe3N3aXRjaCh0LnRhZyl7Y2FzZSAzOmVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscjQodCxsaSxlLm1lbW9pemVkU3RhdGUuY2FjaGUpLHJKKCk7YnJlYWs7Y2FzZSAyNzpjYXNlIDU6ZW8odCk7YnJlYWs7Y2FzZSA0OmVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyNCh0LHQudHlwZSx0Lm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMzE6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gdC5mbGFnc3w9MTI4LGw1KHQpLG51bGw7YnJlYWs7Y2FzZSAxMzp2YXIgcj10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXIpe2lmKG51bGwhPT1yLmRlaHlkcmF0ZWQpcmV0dXJuIGw4KHQpLHQuZmxhZ3N8PTEyOCxudWxsO2lmKDAhPShuJnQuY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIG80KGUsdCxuKTtyZXR1cm4gbDgodCksbnVsbCE9PShlPWlsKGUsdCxuKSk/ZS5zaWJsaW5nOm51bGx9bDgodCk7YnJlYWs7Y2FzZSAxOTppZigxMjgmdC5mbGFncylyZXR1cm4gaXIoZSx0LG4pO3ZhciBsPTAhPSgxMjgmZS5mbGFncyk7aWYoKHI9MCE9KG4mdC5jaGlsZExhbmVzKSl8fChyOShlLHQsbiwhMSkscj0wIT0obiZ0LmNoaWxkTGFuZXMpKSxsKXtpZihyKXJldHVybiBpcihlLHQsbik7dC5mbGFnc3w9MTI4fWlmKG51bGwhPT0obD10Lm1lbW9pemVkU3RhdGUpJiYobC5yZW5kZXJpbmc9bnVsbCxsLnRhaWw9bnVsbCxsLmxhc3RFZmZlY3Q9bnVsbCksYXQodCxhZS5jdXJyZW50KSwhcilyZXR1cm4gbnVsbDticmVhaztjYXNlIDIyOnJldHVybiB0LmxhbmVzPTAsb1EoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6cjQodCxsaSxlLm1lbW9pemVkU3RhdGUuY2FjaGUpfXJldHVybiBpbChlLHQsbil9KGUsdCxuKTtvVT0wIT0oMTMxMDcyJmUuZmxhZ3MpfWVsc2Ugb1U9ITEsciQmJjAhPSgxMDQ4NTc2JnQuZmxhZ3MpJiZyQSh0LHJ6LHQuaW5kZXgpO3N3aXRjaCh0LmxhbmVzPTAsdC50YWcpe2Nhc2UgMTY6ZTp7dmFyIHI9dC5wZW5kaW5nUHJvcHM7aWYoZT1sQyh0LmVsZW1lbnRUeXBlKSx0LnR5cGU9ZSwiZnVuY3Rpb24iPT10eXBlb2YgZSlyeShlKT8ocj1vTyhlLHIpLHQudGFnPTEsdD1vWihudWxsLHQsZSxyLG4pKToodC50YWc9MCx0PW9ZKG51bGwsdCxlLHIsbikpO2Vsc2V7aWYobnVsbCE9ZSl7dmFyIGw9ZS4kJHR5cGVvZjtpZihsPT09Uil7dC50YWc9MTEsdD1vVihudWxsLHQsZSxyLG4pO2JyZWFrIGV9aWYobD09PUQpe3QudGFnPTE0LHQ9b0gobnVsbCx0LGUscixuKTticmVhayBlfX10aHJvdyBFcnJvcih1KDMwNix0PWZ1bmN0aW9uIGUodCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gdC4kJHR5cGVvZj09PSQ/bnVsbDp0LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fG51bGw7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIEM6cmV0dXJuIkZyYWdtZW50IjtjYXNlIE86cmV0dXJuIlByb2ZpbGVyIjtjYXNlIFQ6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgTTpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgSTpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIEE6cmV0dXJuIkFjdGl2aXR5IjtjYXNlIEI6cmV0dXJuIlZpZXdUcmFuc2l0aW9uIn1pZigib2JqZWN0Ij09dHlwZW9mIHQpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgTjpyZXR1cm4iUG9ydGFsIjtjYXNlIEw6cmV0dXJuIHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IjtjYXNlIHo6cmV0dXJuKHQuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSBSOnZhciBuPXQucmVuZGVyO3JldHVybih0PXQuZGlzcGxheU5hbWUpfHwodD0iIiE9PSh0PW4uZGlzcGxheU5hbWV8fG4ubmFtZXx8IiIpPyJGb3J3YXJkUmVmKCIrdCsiKSI6IkZvcndhcmRSZWYiKSx0O2Nhc2UgRDpyZXR1cm4gbnVsbCE9PShuPXQuZGlzcGxheU5hbWV8fG51bGwpP246ZSh0LnR5cGUpfHwiTWVtbyI7Y2FzZSBGOm49dC5fcGF5bG9hZCx0PXQuX2luaXQ7dHJ5e3JldHVybiBlKHQobikpfWNhdGNoKGUpe319cmV0dXJuIG51bGx9KGUpfHxlLCIiKSl9fXJldHVybiB0O2Nhc2UgMDpyZXR1cm4gb1koZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE6cmV0dXJuIGw9b08ocj10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLG9aKGUsdCxyLGwsbik7Y2FzZSAzOmU6e2lmKGVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksbnVsbD09PWUpdGhyb3cgRXJyb3IodSgzODcpKTtyPXQucGVuZGluZ1Byb3BzO3ZhciBhPXQubWVtb2l6ZWRTdGF0ZTtsPWEuZWxlbWVudCxsVihlLHQpLGxYKHQscixudWxsLG4pO3ZhciBvPXQubWVtb2l6ZWRTdGF0ZTtpZihyNCh0LGxpLHI9by5jYWNoZSksciE9PWEuY2FjaGUmJnI2KHQsW2xpXSxuLCEwKSxsSygpLHI9by5lbGVtZW50LGEuaXNEZWh5ZHJhdGVkKWlmKGE9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6by5jYWNoZX0sdC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9YSx0Lm1lbW9pemVkU3RhdGU9YSwyNTYmdC5mbGFncyl7dD1vMChlLHQscixuKTticmVhayBlfWVsc2UgaWYociE9PWwpe3IwKGw9ck4oRXJyb3IodSg0MjQpKSx0KSksdD1vMChlLHQscixuKTticmVhayBlfWVsc2UgZm9yKHJIPWNRKChlPTk9PT0oZT10LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZT9lLmJvZHk6IkhUTUwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplKS5maXJzdENoaWxkKSxyVj10LHIkPSEwLHJRPW51bGwsclc9ITAsbj1saih0LG51bGwscixuKSx0LmNoaWxkPW47bjspbi5mbGFncz0tMyZuLmZsYWdzfDQwOTYsbj1uLnNpYmxpbmc7ZWxzZXtpZihySigpLHI9PT1sKXt0PWlsKGUsdCxuKTticmVhayBlfW9CKGUsdCxyLG4pfXQ9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDI2OnJldHVybiBvRyhlLHQpLG51bGw9PT1lPyhuPWMzKHQudHlwZSxudWxsLHQucGVuZGluZ1Byb3BzLG51bGwpKT90Lm1lbW9pemVkU3RhdGU9bjpyJHx8KG49dC50eXBlLGU9dC5wZW5kaW5nUHJvcHMsKHI9Y3UoZW4uY3VycmVudCkuY3JlYXRlRWxlbWVudChuKSlbZVddPXQscltlcV09ZSxjbChyLG4sZSksZTgociksdC5zdGF0ZU5vZGU9cik6dC5tZW1vaXplZFN0YXRlPWMzKHQudHlwZSxlLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuIGVvKHQpLG51bGw9PT1lJiZyJCYmKHI9dC5zdGF0ZU5vZGU9Y1godC50eXBlLHQucGVuZGluZ1Byb3BzLGVuLmN1cnJlbnQpLHJWPXQsclc9ITAsbD1ySCxjeSh0LnR5cGUpPyhjVz1sLHJIPWNRKHIuZmlyc3RDaGlsZCkpOnJIPWwpLG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSxvRyhlLHQpLG51bGw9PT1lJiYodC5mbGFnc3w9NDE5NDMwNCksdC5jaGlsZDtjYXNlIDU6cmV0dXJuIG51bGw9PT1lJiZyJCYmKChsPXI9ckgpJiYobnVsbCE9PShyPWZ1bmN0aW9uKGUsdCxuLHIpe2Zvcig7MT09PWUubm9kZVR5cGU7KXtpZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT10LnRvTG93ZXJDYXNlKCkpe2lmKCFyJiYoIklOUFVUIiE9PWUubm9kZU5hbWV8fCJoaWRkZW4iIT09ZS50eXBlKSlicmVha31lbHNlIGlmKHIpe2lmKCFlW2VaXSlzd2l0Y2godCl7Y2FzZSJtZXRhIjppZighZS5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpYnJlYWs7cmV0dXJuIGU7Y2FzZSJsaW5rIjppZigic3R5bGVzaGVldCI9PT0obD1lLmdldEF0dHJpYnV0ZSgicmVsIikpJiZlLmhhc0F0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIil8fGwhPT1uLnJlbHx8ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PShudWxsPT1uLmhyZWZ8fCIiPT09bi5ocmVmP251bGw6bi5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pfHxlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSE9PShudWxsPT1uLnRpdGxlP251bGw6bi50aXRsZSkpYnJlYWs7cmV0dXJuIGU7Y2FzZSJzdHlsZSI6aWYoZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO3JldHVybiBlO2Nhc2Uic2NyaXB0IjppZigoKGw9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpKSE9PShudWxsPT1uLnNyYz9udWxsOm4uc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PShudWxsPT1uLnR5cGU/bnVsbDpuLnR5cGUpfHxlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PShudWxsPT1uLmNyb3NzT3JpZ2luP251bGw6bi5jcm9zc09yaWdpbikpJiZsJiZlLmhhc0F0dHJpYnV0ZSgiYXN5bmMiKSYmIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2RlZmF1bHQ6cmV0dXJuIGV9fWVsc2V7aWYoImlucHV0IiE9PXR8fCJoaWRkZW4iIT09ZS50eXBlKXJldHVybiBlO3ZhciBsPW51bGw9PW4ubmFtZT9udWxsOiIiK24ubmFtZTtpZigiaGlkZGVuIj09PW4udHlwZSYmZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PWwpcmV0dXJuIGV9aWYobnVsbD09PShlPWNRKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsclcpKT8odC5zdGF0ZU5vZGU9cixyVj10LHJIPWNRKHIuZmlyc3RDaGlsZCksclc9ITEsbD0hMCk6bD0hMSksbHx8cksodCkpLGVvKHQpLGw9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsbz1udWxsIT09ZT9lLm1lbW9pemVkUHJvcHM6bnVsbCxyPWEuY2hpbGRyZW4sY2YobCxhKT9yPW51bGw6bnVsbCE9PW8mJmNmKGwsbykmJih0LmZsYWdzfD0zMiksbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmKGZ2Ll9jdXJyZW50VmFsdWU9bD1hdihlLHQsYXcsbnVsbCxudWxsLG4pKSxvRyhlLHQpLG9CKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09ZSYmciQmJigoZT1uPXJIKSYmKG51bGwhPT0obj1mdW5jdGlvbihlLHQsbil7aWYoIiI9PT10KXJldHVybiBudWxsO2Zvcig7MyE9PWUubm9kZVR5cGU7KWlmKCgxIT09ZS5ub2RlVHlwZXx8IklOUFVUIiE9PWUubm9kZU5hbWV8fCJoaWRkZW4iIT09ZS50eXBlKSYmIW58fG51bGw9PT0oZT1jUShlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9KG4sdC5wZW5kaW5nUHJvcHMsclcpKT8odC5zdGF0ZU5vZGU9bixyVj10LHJIPW51bGwsZT0hMCk6ZT0hMSksZXx8cksodCkpLG51bGw7Y2FzZSAxMzpyZXR1cm4gbzQoZSx0LG4pO2Nhc2UgNDpyZXR1cm4gZWwodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxyPXQucGVuZGluZ1Byb3BzLG51bGw9PT1lP3QuY2hpbGQ9bEEodCxudWxsLHIsbik6b0IoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDExOnJldHVybiBvVihlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgNzpyZXR1cm4gcj10LnBlbmRpbmdQcm9wcyxvRyhlLHQpLG9CKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSA4OmNhc2UgMTI6cmV0dXJuIG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMTA6cmV0dXJuIHI9dC5wZW5kaW5nUHJvcHMscjQodCx0LnR5cGUsci52YWx1ZSksb0IoZSx0LHIuY2hpbGRyZW4sbiksdC5jaGlsZDtjYXNlIDk6cmV0dXJuIGw9dC50eXBlLl9jb250ZXh0LHI9dC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbGUodCkscj1yKGw9bHQobCkpLHQuZmxhZ3N8PTEsb0IoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDE0OnJldHVybiBvSChlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgMTU6cmV0dXJuIG8kKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsbik7Y2FzZSAxOTpyZXR1cm4gaXIoZSx0LG4pO2Nhc2UgMzE6dmFyIGk9ZSxzPXQsYz1uLGY9cy5wZW5kaW5nUHJvcHMsZD0wIT0oMTI4JnMuZmxhZ3MpO2lmKHMuZmxhZ3MmPS0xMjksbnVsbD09PWkpe2lmKHIkKXtpZigiaGlkZGVuIj09PWYubW9kZSlyZXR1cm4gaT1vSyhzLGYpLHMubGFuZXM9MHgyMDAwMDAwMCxvVyhudWxsLGkpO2lmKGw1KHMpLChpPXJIKT9udWxsIT09KGk9bnVsbCE9PShpPWNWKGksclcpKSYmIiYiPT09aS5kYXRhP2k6bnVsbCkmJihzLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6aSx0cmVlQ29udGV4dDpudWxsIT09ck0/e2lkOnJJLG92ZXJmbG93OnJEfTpudWxsLHJldHJ5TGFuZToweDIwMDAwMDAwLGh5ZHJhdGlvbkVycm9yczpudWxsfSwoYz1yeChpKSkucmV0dXJuPXMscy5jaGlsZD1jLHJWPXMsckg9bnVsbCk6aT1udWxsLG51bGw9PT1pKXRocm93IHJLKHMpO3JldHVybiBzLmxhbmVzPTB4MjAwMDAwMDAsbnVsbH1yZXR1cm4gb0socyxmKX12YXIgcD1pLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXApe3ZhciBtPXAuZGVoeWRyYXRlZDtpZihsNShzKSxkKWlmKDI1NiZzLmZsYWdzKXMuZmxhZ3MmPS0yNTcscz1vWChpLHMsYyk7ZWxzZSBpZihudWxsIT09cy5tZW1vaXplZFN0YXRlKXMuY2hpbGQ9aS5jaGlsZCxzLmZsYWdzfD0xMjgscz1udWxsO2Vsc2UgdGhyb3cgRXJyb3IodSg1NTgpKTtlbHNlIGlmKG9VfHxyOShpLHMsYywhMSksZD0wIT0oYyZpLmNoaWxkTGFuZXMpLG9VfHxkKXtpZihudWxsIT09KGY9dUUpJiYwIT09KG09ZVUoZixjKSkmJm0hPT1wLnJldHJ5TGFuZSl0aHJvdyBwLnJldHJ5TGFuZT1tLHJkKGksbSksdTYoZixpLG0pLG9qO3N1KCkscz1vWChpLHMsYyl9ZWxzZSBpPXAudHJlZUNvbnRleHQsckg9Y1EobS5uZXh0U2libGluZyksclY9cyxyJD0hMCxyUT1udWxsLHJXPSExLG51bGwhPT1pJiZyQihzLGkpLHM9b0socyxmKSxzLmZsYWdzfD00MDk2O3JldHVybiBzfXJldHVybihpPXJiKGkuY2hpbGQse21vZGU6Zi5tb2RlLGNoaWxkcmVuOmYuY2hpbGRyZW59KSkucmVmPXMucmVmLHMuY2hpbGQ9aSxpLnJldHVybj1zLGk7Y2FzZSAyMjpyZXR1cm4gb1EoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6cmV0dXJuIGxlKHQpLHI9bHQobGkpLG51bGw9PT1lPyhudWxsPT09KGw9bGIoKSkmJihsPXVFLGE9bHUoKSxsLnBvb2xlZENhY2hlPWEsYS5yZWZDb3VudCsrLG51bGwhPT1hJiYobC5wb29sZWRDYWNoZUxhbmVzfD1uKSxsPWEpLHQubWVtb2l6ZWRTdGF0ZT17cGFyZW50OnIsY2FjaGU6bH0sbEIodCkscjQodCxsaSxsKSk6KDAhPShlLmxhbmVzJm4pJiYobFYoZSx0KSxsWCh0LG51bGwsbnVsbCxuKSxsSygpKSxsPWUubWVtb2l6ZWRTdGF0ZSxhPXQubWVtb2l6ZWRTdGF0ZSxsLnBhcmVudCE9PXI/KGw9e3BhcmVudDpyLGNhY2hlOnJ9LHQubWVtb2l6ZWRTdGF0ZT1sLDA9PT10LmxhbmVzJiYodC5tZW1vaXplZFN0YXRlPXQudXBkYXRlUXVldWUuYmFzZVN0YXRlPWwpLHI0KHQsbGkscikpOihyNCh0LGxpLHI9YS5jYWNoZSksciE9PWwuY2FjaGUmJnI2KHQsW2xpXSxuLCEwKSkpLG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMzA6cmV0dXJuIG51bGwhPShyPXQucGVuZGluZ1Byb3BzKS5uYW1lJiYiYXV0byIhPT1yLm5hbWU/dC5mbGFnc3w9bnVsbD09PWU/MHgxMjAyMDAwOjB4MTIwMDAwMDpyJCYmcmoodCksbnVsbCE9PWUmJmUubWVtb2l6ZWRQcm9wcy5uYW1lIT09ci5uYW1lP3QuZmxhZ3N8PTQxOTQ4MTY6b0coZSx0KSxvQihlLHQsci5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMjk6dGhyb3cgdC5wZW5kaW5nUHJvcHN9dGhyb3cgRXJyb3IodSgxNTYsdC50YWcpKX1mdW5jdGlvbiBpaShlKXtlLmZsYWdzfD00fWZ1bmN0aW9uIGl1KGUsdCxuLHIsbCl7dmFyIGE7aWYoKGE9MCE9KDMyJmUubW9kZSkpJiYoYT1udWxsPT09bj9mbyh0LHIpOmZvKHQscikmJihyLnNyYyE9PW4uc3JjfHxyLnNyY1NldCE9PW4uc3JjU2V0KSksYSl7aWYoZS5mbGFnc3w9MHgxMDAwMDAwLCgweDEzZmZmZjQwJmwpPT09bClpZihlLnN0YXRlTm9kZS5jb21wbGV0ZSllLmZsYWdzfD04MTkyO2Vsc2UgaWYoc2EoKSllLmZsYWdzfD04MTkyO2Vsc2UgdGhyb3cgbFQ9bF8sbEV9ZWxzZSBlLmZsYWdzJj0tMHgxMDAwMDAxfWZ1bmN0aW9uIGlzKGUsdCl7aWYoInN0eWxlc2hlZXQiIT09dC50eXBlfHwwIT0oNCZ0LnN0YXRlLmxvYWRpbmcpKWUuZmxhZ3MmPS0weDEwMDAwMDE7ZWxzZSBpZihlLmZsYWdzfD0weDEwMDAwMDAsIWZpKHQpKWlmKHNhKCkpZS5mbGFnc3w9ODE5MjtlbHNlIHRocm93IGxUPWxfLGxFfWZ1bmN0aW9uIGljKGUsdCl7bnVsbCE9PXQmJihlLmZsYWdzfD00KSwxNjM4NCZlLmZsYWdzJiYodD0yMiE9PWUudGFnP2VJKCk6MHgyMDAwMDAwMCxlLmxhbmVzfD10LHVGfD10KX1mdW5jdGlvbiBpZChlLHQpe2lmKCFyJClzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJ2aXNpYmxlIjpicmVhaztjYXNlImNvbGxhcHNlZCI6Zm9yKHZhciBuPWUudGFpbCxyPW51bGw7bnVsbCE9PW47KW51bGwhPT1uLmFsdGVybmF0ZSYmKHI9biksbj1uLnNpYmxpbmc7bnVsbD09PXI/dHx8bnVsbD09PWUudGFpbD9lLnRhaWw9bnVsbDplLnRhaWwuc2libGluZz1udWxsOnIuc2libGluZz1udWxsO2JyZWFrO2RlZmF1bHQ6Zm9yKG49bnVsbCx0PWUudGFpbDtudWxsIT09dDspbnVsbCE9PXQuYWx0ZXJuYXRlJiYobj10KSx0PXQuc2libGluZztudWxsPT09bj9lLnRhaWw9bnVsbDpuLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaXAoZSl7dmFyIHQ9bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsbj0wLHI9MDtpZih0KWZvcih2YXIgbD1lLmNoaWxkO251bGwhPT1sOylufD1sLmxhbmVzfGwuY2hpbGRMYW5lcyxyfD0weDdlMDAwMDAmbC5zdWJ0cmVlRmxhZ3Mscnw9MHg3ZTAwMDAwJmwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztlbHNlIGZvcihsPWUuY2hpbGQ7bnVsbCE9PWw7KW58PWwubGFuZXN8bC5jaGlsZExhbmVzLHJ8PWwuc3VidHJlZUZsYWdzLHJ8PWwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPW4sdH1mdW5jdGlvbiBpbShlLHQpe3N3aXRjaChyVSh0KSx0LnRhZyl7Y2FzZSAzOnI4KGxpKSxlYSgpO2JyZWFrO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6ZWkodCk7YnJlYWs7Y2FzZSA0OmVhKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiZsNyh0KTticmVhaztjYXNlIDEzOmw3KHQpO2JyZWFrO2Nhc2UgMTk6YW4odCk7YnJlYWs7Y2FzZSAxMDpyOCh0LnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpsNyh0KSxsMigpLG51bGwhPT1lJiZKKGx5KTticmVhaztjYXNlIDI0OnI4KGxpKX19ZnVuY3Rpb24gaWgoZSx0KXt0cnl7dmFyIG49dC51cGRhdGVRdWV1ZSxyPW51bGwhPT1uP24ubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbD1yLm5leHQ7bj1sO2Rve2lmKChuLnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPW4uY3JlYXRlO24uaW5zdC5kZXN0cm95PXI9YSgpfW49bi5uZXh0fXdoaWxlKG4hPT1sKX19Y2F0Y2goZSl7c18odCx0LnJldHVybixlKX19ZnVuY3Rpb24gaWcoZSx0LG4pe3RyeXt2YXIgcj10LnVwZGF0ZVF1ZXVlLGw9bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWwpe3ZhciBhPWwubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIG89ci5pbnN0LGk9by5kZXN0cm95O2lmKHZvaWQgMCE9PWkpe28uZGVzdHJveT12b2lkIDAsbD10O3RyeXtpKCl9Y2F0Y2goZSl7c18obCxuLGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBpdihlKXt2YXIgdD1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10KXt2YXIgbj1lLnN0YXRlTm9kZTt0cnl7bFkodCxuKX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX19ZnVuY3Rpb24gaXkoZSx0LG4pe24ucHJvcHM9b08oZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksbi5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e24uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtzXyhlLHQsbil9fWZ1bmN0aW9uIGliKGUsdCl7dHJ5e3ZhciBuPWUucmVmO2lmKG51bGwhPT1uKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAzMDp2YXIgbD1lLnN0YXRlTm9kZSxhPXJuKGUubWVtb2l6ZWRQcm9wcyxsKTsobnVsbD09PWwucmVmfHxsLnJlZi5uYW1lIT09YSkmJihsLnJlZj1jQyhhKSkscj1sLnJlZjticmVhaztjYXNlIDc6bnVsbD09PWUuc3RhdGVOb2RlJiYoZS5zdGF0ZU5vZGU9bmV3IGNUKGUpKSxyPWUuc3RhdGVOb2RlO2JyZWFrO2RlZmF1bHQ6cj1lLnN0YXRlTm9kZX0iZnVuY3Rpb24iPT10eXBlb2Ygbj9lLnJlZkNsZWFudXA9bihyKTpuLmN1cnJlbnQ9cn19Y2F0Y2gobil7c18oZSx0LG4pfX1mdW5jdGlvbiBpdyhlLHQpe3ZhciBuPWUucmVmLHI9ZS5yZWZDbGVhbnVwO2lmKG51bGwhPT1uKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2gobil7c18oZSx0LG4pfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pdHJ5e24obnVsbCl9Y2F0Y2gobil7c18oZSx0LG4pfWVsc2Ugbi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gaWsoZSl7dmFyIHQ9ZS50eXBlLG49ZS5tZW1vaXplZFByb3BzLHI9ZS5zdGF0ZU5vZGU7dHJ5e3N3aXRjaCh0KXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOm4uYXV0b0ZvY3VzJiZyLmZvY3VzKCk7YnJlYWs7Y2FzZSJpbWciOm4uc3JjP3Iuc3JjPW4uc3JjOm4uc3JjU2V0JiYoci5zcmNzZXQ9bi5zcmNTZXQpfX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpUyhlLHQsbil7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLHQsbixyKXtzd2l0Y2godCl7Y2FzZSJkaXYiOmNhc2Uic3BhbiI6Y2FzZSJzdmciOmNhc2UicGF0aCI6Y2FzZSJhIjpjYXNlImciOmNhc2UicCI6Y2FzZSJsaSI6YnJlYWs7Y2FzZSJpbnB1dCI6dmFyIGw9bnVsbCxhPW51bGwsbz1udWxsLGk9bnVsbCxzPW51bGwsYz1udWxsLGY9bnVsbDtmb3IobSBpbiBuKXt2YXIgZD1uW21dO2lmKG4uaGFzT3duUHJvcGVydHkobSkmJm51bGwhPWQpc3dpdGNoKG0pe2Nhc2UiY2hlY2tlZCI6Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOnM9ZDtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkobSl8fGNuKGUsdCxtLG51bGwscixkKX19Zm9yKHZhciBwIGluIHIpe3ZhciBtPXJbcF07aWYoZD1uW3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1tfHxudWxsIT1kKSlzd2l0Y2gocCl7Y2FzZSJ0eXBlIjptIT09ZCYmKHRyPSEwKSxhPW07YnJlYWs7Y2FzZSJuYW1lIjptIT09ZCYmKHRyPSEwKSxsPW07YnJlYWs7Y2FzZSJjaGVja2VkIjptIT09ZCYmKHRyPSEwKSxjPW07YnJlYWs7Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6bSE9PWQmJih0cj0hMCksZj1tO2JyZWFrO2Nhc2UidmFsdWUiOm0hPT1kJiYodHI9ITApLG89bTticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6bSE9PWQmJih0cj0hMCksaT1tO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPW0pdGhyb3cgRXJyb3IodSgxMzcsdCkpO2JyZWFrO2RlZmF1bHQ6bSE9PWQmJmNuKGUsdCxwLG0scixkKX19dGgoZSxvLGkscyxjLGYsYSxsKTtyZXR1cm47Y2FzZSJzZWxlY3QiOmZvcihhIGluIG09bz1pPXA9bnVsbCxuKWlmKHM9blthXSxuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT1zKXN3aXRjaChhKXtjYXNlInZhbHVlIjpicmVhaztjYXNlIm11bHRpcGxlIjptPXM7ZGVmYXVsdDpyLmhhc093blByb3BlcnR5KGEpfHxjbihlLHQsYSxudWxsLHIscyl9Zm9yKGwgaW4gcilpZihhPXJbbF0scz1uW2xdLHIuaGFzT3duUHJvcGVydHkobCkmJihudWxsIT1hfHxudWxsIT1zKSlzd2l0Y2gobCl7Y2FzZSJ2YWx1ZSI6YSE9PXMmJih0cj0hMCkscD1hO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjphIT09cyYmKHRyPSEwKSxpPWE7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6YSE9PXMmJih0cj0hMCksbz1hO2RlZmF1bHQ6YSE9PXMmJmNuKGUsdCxsLGEscixzKX10PWksbj1vLHI9bSxudWxsIT1wP3R5KGUsISFuLHAsITEpOiEhciE9ISFuJiYobnVsbCE9dD90eShlLCEhbix0LCEwKTp0eShlLCEhbixuP1tdOiIiLCExKSk7cmV0dXJuO2Nhc2UidGV4dGFyZWEiOmZvcihpIGluIG09cD1udWxsLG4paWYobD1uW2ldLG4uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPWwmJiFyLmhhc093blByb3BlcnR5KGkpKXN3aXRjaChpKXtjYXNlInZhbHVlIjpjYXNlImNoaWxkcmVuIjpicmVhaztkZWZhdWx0OmNuKGUsdCxpLG51bGwscixsKX1mb3IobyBpbiByKWlmKGw9cltvXSxhPW5bb10sci5oYXNPd25Qcm9wZXJ0eShvKSYmKG51bGwhPWx8fG51bGwhPWEpKXN3aXRjaChvKXtjYXNlInZhbHVlIjpsIT09YSYmKHRyPSEwKSxwPWw7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmwhPT1hJiYodHI9ITApLG09bDticmVhaztjYXNlImNoaWxkcmVuIjpicmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihudWxsIT1sKXRocm93IEVycm9yKHUoOTEpKTticmVhaztkZWZhdWx0OmwhPT1hJiZjbihlLHQsbyxsLHIsYSl9dGIoZSxwLG0pO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKHZhciBoIGluIG4pcD1uW2hdLG4uaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPXAmJiFyLmhhc093blByb3BlcnR5KGgpJiYoInNlbGVjdGVkIj09PWg/ZS5zZWxlY3RlZD0hMTpjbihlLHQsaCxudWxsLHIscCkpO2ZvcihzIGluIHIpcD1yW3NdLG09bltzXSxyLmhhc093blByb3BlcnR5KHMpJiZwIT09bSYmKG51bGwhPXB8fG51bGwhPW0pJiYoInNlbGVjdGVkIj09PXM/KHAhPT1tJiYodHI9ITApLGUuc2VsZWN0ZWQ9cCYmImZ1bmN0aW9uIiE9dHlwZW9mIHAmJiJzeW1ib2wiIT10eXBlb2YgcCk6Y24oZSx0LHMscCxyLG0pKTtyZXR1cm47Y2FzZSJpbWciOmNhc2UibGluayI6Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImVtYmVkIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInNvdXJjZSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcih2YXIgZyBpbiBuKXA9bltnXSxuLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShnKSYmY24oZSx0LGcsbnVsbCxyLHApO2ZvcihjIGluIHIpaWYocD1yW2NdLG09bltjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09bSYmKG51bGwhPXB8fG51bGwhPW0pKXN3aXRjaChjKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihudWxsIT1wKXRocm93IEVycm9yKHUoMTM3LHQpKTticmVhaztkZWZhdWx0OmNuKGUsdCxjLHAscixtKX1yZXR1cm47ZGVmYXVsdDppZih0Xyh0KSl7Zm9yKHZhciB2IGluIG4pcD1uW3ZdLG4uaGFzT3duUHJvcGVydHkodikmJnZvaWQgMCE9PXAmJiFyLmhhc093blByb3BlcnR5KHYpJiZjcihlLHQsdix2b2lkIDAscixwKTtmb3IoZiBpbiByKXA9cltmXSxtPW5bZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PW0mJih2b2lkIDAhPT1wfHx2b2lkIDAhPT1tKSYmY3IoZSx0LGYscCxyLG0pO3JldHVybn19Zm9yKHZhciB5IGluIG4pcD1uW3ldLG4uaGFzT3duUHJvcGVydHkoeSkmJm51bGwhPXAmJiFyLmhhc093blByb3BlcnR5KHkpJiZjbihlLHQseSxudWxsLHIscCk7Zm9yKGQgaW4gcilwPXJbZF0sbT1uW2RdLHIuaGFzT3duUHJvcGVydHkoZCkmJnAhPT1tJiYobnVsbCE9cHx8bnVsbCE9bSkmJmNuKGUsdCxkLHAscixtKX0pKHIsZS50eXBlLG4sdCkscltlcV09dH1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpRShlLHQpe2lmKDU9PT1lLnRhZyYmbnVsbD09PWUuYWx0ZXJuYXRlJiZudWxsIT09dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyljVShlLnN0YXRlTm9kZSx0W25dKX1mdW5jdGlvbiBpeChlKXtmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXtpZihpUCh0KSl7dmFyIG49ZS5zdGF0ZU5vZGUscj10LnN0YXRlTm9kZS5fZXZlbnRMaXN0ZW5lcnM7aWYobnVsbCE9PXIpZm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspe3ZhciBhPXJbbF07bi5yZW1vdmVFdmVudExpc3RlbmVyKGEudHlwZSxhLmxpc3RlbmVyLGEub3B0aW9uc09yVXNlQ2FwdHVyZSl9fWlmKGlfKHQpKWJyZWFrO3Q9dC5yZXR1cm59fWZ1bmN0aW9uIGlfKGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY3koZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGlQKGUpe3JldHVybiBlJiY3PT09ZS50YWcmJm51bGwhPT1lLnN0YXRlTm9kZX1mdW5jdGlvbiBpTihlKXtlOmZvcig7Oyl7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxpXyhlLnJldHVybikpcmV0dXJuIG51bGw7ZT1lLnJldHVybn1mb3IoZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZzs1IT09ZS50YWcmJjYhPT1lLnRhZyYmMTghPT1lLnRhZzspe2lmKDI3PT09ZS50YWcmJmN5KGUudHlwZSl8fDImZS5mbGFnc3x8bnVsbD09PWUuY2hpbGR8fDQ9PT1lLnRhZyljb250aW51ZSBlO2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkfWlmKCEoMiZlLmZsYWdzKSlyZXR1cm4gZS5zdGF0ZU5vZGV9fWZ1bmN0aW9uIGlDKGUsdCxuLHIpe3ZhciBsPWUudGFnO2lmKDU9PT1sfHw2PT09bClsPWUuc3RhdGVOb2RlLHQ/bi5pbnNlcnRCZWZvcmUobCx0KTpuLmFwcGVuZENoaWxkKGwpLGlFKGUsciksdHI9ITA7ZWxzZSBpZig0IT09bCYmKDI3PT09bCYmY3koZS50eXBlKSYmKG49ZS5zdGF0ZU5vZGUpLG51bGwhPT0oZT1lLmNoaWxkKSkpZm9yKGlDKGUsdCxuLHIpLGU9ZS5zaWJsaW5nO251bGwhPT1lOylpQyhlLHQsbixyKSxlPWUuc2libGluZ31mdW5jdGlvbiBpVChlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxsPXQuYXR0cmlidXRlcztsLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKGxbMF0pO2NsKHQscixuKSx0W2VXXT1lLHRbZXFdPW59Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX19dmFyIGlPPSExLGl6PW51bGw7ZnVuY3Rpb24gaUwoZSl7KDMwPT09ZS50YWd8fDAhPSgweDIwMDAwMDAmZS5zdWJ0cmVlRmxhZ3MpKSYmKGlPPSEwKX12YXIgaVI9bnVsbDtmdW5jdGlvbiBpTSgpe3ZhciBlPWlSO3JldHVybiBpUj1udWxsLGV9dmFyIGlJPTA7ZnVuY3Rpb24gaUQoZSx0LG4scixsKXtyZXR1cm4gaUk9MCxmdW5jdGlvbiBlKHQsbixyLGwsYSl7Zm9yKHZhciBvPSExO251bGwhPT10Oyl7aWYoNT09PXQudGFnKXt2YXIgaT10LnN0YXRlTm9kZTtpZihudWxsIT09bCl7dmFyIHU9Y3goaSk7bC5wdXNoKHUpLHUudmlldyYmKG89ITApfWVsc2Ugb3x8Y3goaSkudmlldyYmKG89ITApO2lPPSEwLGNrKGksMD09PWlJP246bisiXyIraUksciksaUkrK31lbHNlKDIyIT09dC50YWd8fG51bGw9PT10Lm1lbW9pemVkU3RhdGUpJiYoMzA9PT10LnRhZyYmYXx8ZSh0LmNoaWxkLG4scixsLGEpJiYobz0hMCkpO3Q9dC5zaWJsaW5nfXJldHVybiBvfShlLmNoaWxkLHQsbixyLGwpfWZ1bmN0aW9uIGlGKGUsdCl7Zm9yKDtudWxsIT09ZTspNT09PWUudGFnP2NTKGUuc3RhdGVOb2RlLGUubWVtb2l6ZWRQcm9wcyk6KDIyIT09ZS50YWd8fG51bGw9PT1lLm1lbW9pemVkU3RhdGUpJiYoMzA9PT1lLnRhZyYmdHx8aUYoZS5jaGlsZCx0KSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gaUEoZSl7aWYoMCE9KDB4MTIwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspe2lmKCgyMiE9PWUudGFnfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlKSYmKGlBKGUpLDMwPT09ZS50YWcmJjAhPSgweDEyMDAwMDAmZS5mbGFncykmJmUuc3RhdGVOb2RlLnBhaXJlZCkpe3ZhciB0PWUubWVtb2l6ZWRQcm9wcztpZihudWxsPT10Lm5hbWV8fCJhdXRvIj09PXQubmFtZSl0aHJvdyBFcnJvcih1KDU0NCkpO3ZhciBuPXQubmFtZTsibm9uZSIhPT0odD1ybCh0LmRlZmF1bHQsdC5zaGFyZSkpJiYoaUQoZSxuLHQsbnVsbCwhMSl8fGlGKGUuY2hpbGQsITEpKX1lPWUuc2libGluZ319ZnVuY3Rpb24gaWooZSx0KXtpZigzMD09PWUudGFnKXt2YXIgbj1lLnN0YXRlTm9kZSxyPWUubWVtb2l6ZWRQcm9wcyxsPXJuKHIsbiksYT1ybChyLmRlZmF1bHQsbi5wYWlyZWQ/ci5zaGFyZTpyLmVudGVyKTsibm9uZSIhPT1hP2lEKGUsbCxhLG51bGwsITEpPyhpQShlKSxuLnBhaXJlZHx8dHx8dTUoZSxyLm9uRW50ZXIpKTppRihlLmNoaWxkLCExKTppQShlKX1lbHNlIGlmKDAhPSgweDIwMDAwMDAmZS5zdWJ0cmVlRmxhZ3MpKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWlqKGUsdCksZT1lLnNpYmxpbmc7ZWxzZSBpQShlKX1mdW5jdGlvbiBpVShlKXtpZihudWxsIT09aXomJjAhPT1pei5zaXplKXt2YXIgdD1pejtpZigwIT0oMHgxMjAwMDAwJmUuc3VidHJlZUZsYWdzKSlmb3IoZT1lLmNoaWxkO251bGwhPT1lOyl7aWYoMjIhPT1lLnRhZ3x8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSl7aWYoMzA9PT1lLnRhZyYmMCE9KDB4MTIwMDAwMCZlLmZsYWdzKSl7dmFyIG49ZS5tZW1vaXplZFByb3BzLHI9bi5uYW1lO2lmKG51bGwhPXImJiJhdXRvIiE9PXIpe3ZhciBsPXQuZ2V0KHIpO2lmKHZvaWQgMCE9PWwpe3ZhciBhPXJsKG4uZGVmYXVsdCxuLnNoYXJlKTtpZigibm9uZSIhPT1hJiYoaUQoZSxyLGEsbnVsbCwhMSk/KGwucGFpcmVkPWE9ZS5zdGF0ZU5vZGUsYS5wYWlyZWQ9bCx1NShlLG4ub25TaGFyZSkpOmlGKGUuY2hpbGQsITEpKSx0LmRlbGV0ZShyKSwwPT09dC5zaXplKWJyZWFrfX19aVUoZSl9ZT1lLnNpYmxpbmd9fX1mdW5jdGlvbiBpQihlKXtpZigzMD09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkUHJvcHMsbj1ybih0LGUuc3RhdGVOb2RlKSxyPW51bGwhPT1pej9pei5nZXQobik6dm9pZCAwLGw9cmwodC5kZWZhdWx0LHZvaWQgMCE9PXI/dC5zaGFyZTp0LmV4aXQpOyJub25lIiE9PWwmJihpRChlLG4sbCxudWxsLCExKT92b2lkIDAhPT1yPyhyLnBhaXJlZD1sPWUuc3RhdGVOb2RlLGwucGFpcmVkPXIsaXouZGVsZXRlKG4pLHU1KGUsdC5vblNoYXJlKSk6dTUoZSx0Lm9uRXhpdCk6aUYoZS5jaGlsZCwhMSkpLG51bGwhPT1peiYmaVUoZSl9ZWxzZSBpZigwIT0oMHgyMDAwMDAwJmUuc3VidHJlZUZsYWdzKSlmb3IoZT1lLmNoaWxkO251bGwhPT1lOylpQihlKSxlPWUuc2libGluZztlbHNlIG51bGwhPT1peiYmaVUoZSl9ZnVuY3Rpb24gaVYoZSl7aWYoMCE9KDB4MTIwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspe2lmKDIyIT09ZS50YWd8fG51bGw9PT1lLm1lbW9pemVkU3RhdGUpe2lmKDMwPT09ZS50YWcmJjAhPSgweDEyMDAwMDAmZS5mbGFncykpe3ZhciB0PWUuc3RhdGVOb2RlO251bGwhPT10LnBhaXJlZCYmKHQucGFpcmVkPW51bGwsaUYoZS5jaGlsZCwhMSkpfWlWKGUpfWU9ZS5zaWJsaW5nfX1mdW5jdGlvbiBpSChlKXtpZigzMD09PWUudGFnKWUuc3RhdGVOb2RlLnBhaXJlZD1udWxsLGlGKGUuY2hpbGQsITEpLGlWKGUpO2Vsc2UgaWYoMCE9KDB4MjAwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspaUgoZSksZT1lLnNpYmxpbmc7ZWxzZSBpVihlKX1mdW5jdGlvbiBpJChlLHQsbixyLGwsYSxvKXtmb3IodmFyIGk9ITE7bnVsbCE9PXQ7KXtpZig1PT09dC50YWcpe3ZhciB1PXQuc3RhdGVOb2RlO2lmKG51bGwhPT1hJiZpSTxhLmxlbmd0aCl7dmFyIHMsYz1hW2lJXSxmPWN4KHUpO2lmKChjLnZpZXd8fGYudmlldykmJihpPSEwKSxzPTA9PSg0JmUuZmxhZ3MpKWlmKGYuY2xpcClzPSEwO2Vsc2V7cz1jLnJlY3Q7dmFyIGQ9Zi5yZWN0O3M9cy55IT09ZC55fHxzLnghPT1kLnh8fHMuaGVpZ2h0IT09ZC5oZWlnaHR8fHMud2lkdGghPT1kLndpZHRofXMmJihlLmZsYWdzfD00KSxmLmFicz9mPSFjLmFiczooYz1jLnJlY3QsZj1mLnJlY3QsZj1jLmhlaWdodCE9PWYuaGVpZ2h0fHxjLndpZHRoIT09Zi53aWR0aCksZiYmKGUuZmxhZ3N8PTMyKX1lbHNlIGUuZmxhZ3N8PTMyOzAhPSg0JmUuZmxhZ3MpJiZjayh1LDA9PT1pST9uOm4rIl8iK2lJLGwpLGkmJjAhPSg0JmUuZmxhZ3MpfHwobnVsbD09PWlSJiYoaVI9W10pLGlSLnB1c2godSxyLHQubWVtb2l6ZWRQcm9wcykpLGlJKyt9ZWxzZSgyMiE9PXQudGFnfHxudWxsPT09dC5tZW1vaXplZFN0YXRlKSYmKDMwPT09dC50YWcmJm8/ZS5mbGFnc3w9MzImdC5mbGFnczppJChlLHQuY2hpbGQsbixyLGwsYSxvKSYmKGk9ITApKTt0PXQuc2libGluZ31yZXR1cm4gaX12YXIgaVE9ITEsaVc9ITEsaXE9ITEsaUs9ITEsaVg9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsaUc9bnVsbCxpWT0hMSxpSj0hMSxpWj0hMSxpMD0hMTtmdW5jdGlvbiBpMShlKXtmb3IoO251bGwhPT1pRzspe3ZhciB0PWlHLG49ZSxyPXQuYWx0ZXJuYXRlLGw9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWYoMCE9KDQmbCkmJm51bGwhPT0ocj1udWxsIT09KHI9dC51cGRhdGVRdWV1ZSk/ci5ldmVudHM6bnVsbCkpZm9yKG49MDtuPHIubGVuZ3RoO24rKykobD1yW25dKS5yZWYuaW1wbD1sLm5leHRJbXBsO2JyZWFrO2Nhc2UgMTppZigwIT0oMTAyNCZsKSYmbnVsbCE9PXIpe249dm9pZCAwLGw9ci5tZW1vaXplZFByb3BzLHI9ci5tZW1vaXplZFN0YXRlO3ZhciBhPXQuc3RhdGVOb2RlO3RyeXt2YXIgbz1vTyh0LnR5cGUsbCk7bj1hLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKG8sciksYS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1ufWNhdGNoKGUpe3NfKHQsdC5yZXR1cm4sZSl9fWJyZWFrO2Nhc2UgMzppZigwIT0oMTAyNCZsKSl7aWYoOT09PShuPShyPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlKSljQihyKTtlbHNlIGlmKDE9PT1uKXN3aXRjaChyLm5vZGVOYW1lKXtjYXNlIkhFQUQiOmNhc2UiSFRNTCI6Y2FzZSJCT0RZIjpjQihyKTticmVhaztkZWZhdWx0OnIudGV4dENvbnRlbnQ9IiJ9fWJyZWFrO2Nhc2UgNTpjYXNlIDI2OmNhc2UgMjc6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2Nhc2UgMzA6biYmbnVsbCE9PXImJihuPXJuKHIubWVtb2l6ZWRQcm9wcyxyLnN0YXRlTm9kZSksIm5vbmUiIT09KGw9cmwoKGw9dC5tZW1vaXplZFByb3BzKS5kZWZhdWx0LGwudXBkYXRlKSkmJmlEKHIsbixsLHIubWVtb2l6ZWRTdGF0ZT1bXSwhMCkpO2JyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmbCkpdGhyb3cgRXJyb3IodSgxNjMpKX1pZihudWxsIT09KHI9dC5zaWJsaW5nKSl7ci5yZXR1cm49dC5yZXR1cm4saUc9cjticmVha31pRz10LnJldHVybn19ZnVuY3Rpb24gaTIoZSx0LG4pe3ZhciByPW4uZmxhZ3M7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnVpKGUsbiksNCZyJiZpaCg1LG4pO2JyZWFrO2Nhc2UgMTppZih1aShlLG4pLDQmcilpZihlPW4uc3RhdGVOb2RlLG51bGw9PT10KXRyeXtlLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX1lbHNle3ZhciBsPW9PKG4udHlwZSx0Lm1lbW9pemVkUHJvcHMpO3Q9dC5tZW1vaXplZFN0YXRlO3RyeXtlLmNvbXBvbmVudERpZFVwZGF0ZShsLHQsZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX19NjQmciYmaXYobiksNTEyJnImJmliKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgMzppZih1aShlLG4pLDY0JnImJm51bGwhPT0oZT1uLnVwZGF0ZVF1ZXVlKSl7aWYodD1udWxsLG51bGwhPT1uLmNoaWxkKXN3aXRjaChuLmNoaWxkLnRhZyl7Y2FzZSAyNzpjYXNlIDU6Y2FzZSAxOnQ9bi5jaGlsZC5zdGF0ZU5vZGV9dHJ5e2xZKGUsdCl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX19YnJlYWs7Y2FzZSAyNzpudWxsPT09dCYmNCZyJiZpVChuKTtjYXNlIDI2OmNhc2UgNTp1aShlLG4pLG51bGw9PT10JiY0JnImJmlrKG4pLDUxMiZyJiZpYihuLG4ucmV0dXJuKTticmVhaztjYXNlIDEyOnVpKGUsbik7YnJlYWs7Y2FzZSAzMTp1aShlLG4pLDQmciYmaTkoZSxuKTticmVhaztjYXNlIDEzOnVpKGUsbiksNCZyJiZpNyhlLG4pLDY0JnImJm51bGwhPT0oZT1uLm1lbW9pemVkU3RhdGUpJiZudWxsIT09KGU9ZS5kZWh5ZHJhdGVkKSYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lLm93bmVyRG9jdW1lbnQ7aWYoIiR+Ij09PWUuZGF0YSllLl9yZWFjdFJldHJ5PXQ7ZWxzZSBpZigiJD8iIT09ZS5kYXRhfHwibG9hZGluZyIhPT1uLnJlYWR5U3RhdGUpdCgpO2Vsc2V7dmFyIHI9ZnVuY3Rpb24oKXt0KCksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixyKX07bi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixyKSxlLl9yZWFjdFJldHJ5PXJ9fShlLG49c1QuYmluZChudWxsLG4pKTticmVhaztjYXNlIDIyOmlmKCEocj1udWxsIT09bi5tZW1vaXplZFN0YXRlfHxpUSkpe3Q9bnVsbCE9PXQmJm51bGwhPT10Lm1lbW9pemVkU3RhdGV8fGlXLGw9aVE7dmFyIGE9aVc7aVE9ciwoaVc9dCkmJiFhP2Z1bmN0aW9uIGUodCxuLHIpe2ZvcihyPXImJjAhPSg4NzcyJm4uc3VidHJlZUZsYWdzKSxuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgbD1uLmFsdGVybmF0ZSxhPXQsbz1uLGk9by5mbGFncztzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6ZShhLG8sciksaWgoNCxvKTticmVhaztjYXNlIDE6aWYoZShhLG8sciksImZ1bmN0aW9uIj09dHlwZW9mKGE9KGw9bykuc3RhdGVOb2RlKS5jb21wb25lbnREaWRNb3VudCl0cnl7YS5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKGUpe3NfKGwsbC5yZXR1cm4sZSl9aWYobnVsbCE9PShhPShsPW8pLnVwZGF0ZVF1ZXVlKSl7dmFyIHU9bC5zdGF0ZU5vZGU7dHJ5e3ZhciBzPWEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcztpZihudWxsIT09cylmb3IoYS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPW51bGwsYT0wO2E8cy5sZW5ndGg7YSsrKWxHKHNbYV0sdSl9Y2F0Y2goZSl7c18obCxsLnJldHVybixlKX19ciYmNjQmaSYmaXYobyksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSAyNzppVChvKTtjYXNlIDI2OmNhc2UgNTppZig1PT09by50YWcpe3U9bztmb3IodmFyIGM9dS5yZXR1cm47bnVsbCE9PWMmJihpUChjKSYmY1UodS5zdGF0ZU5vZGUsYy5zdGF0ZU5vZGUpLCFpXyhjKSk7KWM9Yy5yZXR1cm59ZShhLG8sciksciYmbnVsbD09PWwmJjQmaSYmaWsobyksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSAxMjplKGEsbyxyKTticmVhaztjYXNlIDMxOmUoYSxvLHIpLHImJjQmaSYmaTkoYSxvKTticmVhaztjYXNlIDEzOmUoYSxvLHIpLHImJjQmaSYmaTcoYSxvKTticmVhaztjYXNlIDIyOm51bGw9PT1vLm1lbW9pemVkU3RhdGUmJmUoYSxvLHIpLGliKG8sby5yZXR1cm4pO2JyZWFrO2Nhc2UgMzA6ZShhLG8sciksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSA3OmliKG8sby5yZXR1cm4pO2RlZmF1bHQ6ZShhLG8scil9bj1uLnNpYmxpbmd9fShlLG4sMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpKTp1aShlLG4pLGlRPWwsaVc9YX1icmVhaztjYXNlIDMwOnVpKGUsbiksNTEyJnImJmliKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgNzo1MTImciYmaWIobixuLnJldHVybik7ZGVmYXVsdDp1aShlLG4pfX1mdW5jdGlvbiBpMyhlLHQpe2ZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KShmdW5jdGlvbiBlKHQsbil7c3dpdGNoKHQudGFnKXtjYXNlIDU6Y2FzZSAyNjp0cnl7dmFyIHI9dC5zdGF0ZU5vZGU7aWYobil7dmFyIGw9ci5zdHlsZTsiZnVuY3Rpb24iPT10eXBlb2YgbC5zZXRQcm9wZXJ0eT9sLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOmwuZGlzcGxheT0ibm9uZSJ9ZWxzZXt2YXIgYT10LnN0YXRlTm9kZSxvPXQubWVtb2l6ZWRQcm9wcy5zdHlsZSxpPW51bGwhPW8mJm8uaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9vLmRpc3BsYXk6bnVsbDthLnN0eWxlLmRpc3BsYXk9bnVsbD09aXx8ImJvb2xlYW4iPT10eXBlb2YgaT8iIjooIiIraSkudHJpbSgpfX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfSFmdW5jdGlvbiB0KG4scil7aWYoMHg0MDAwMDAwJm4uc3VidHJlZUZsYWdzKWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtlOnt2YXIgbD1uO3N3aXRjaChsLnRhZyl7Y2FzZSA0OmUobCxyKTticmVhayBlO2Nhc2UgMjI6bnVsbD09PWwubWVtb2l6ZWRTdGF0ZSYmdChsLHIpO2JyZWFrIGU7ZGVmYXVsdDp0KGwscil9fW49bi5zaWJsaW5nfX0odCxuKTticmVhaztjYXNlIDY6dHJ5e3Quc3RhdGVOb2RlLm5vZGVWYWx1ZT1uPyIiOnQubWVtb2l6ZWRQcm9wcyx0cj0hMH1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfWJyZWFrO2Nhc2UgMTg6dHJ5e3ZhciB1PXQuc3RhdGVOb2RlO24/Y3codSwhMCk6Y3codC5zdGF0ZU5vZGUsITEpfWNhdGNoKGUpe3NfKHQsdC5yZXR1cm4sZSl9YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOm51bGw9PT10Lm1lbW9pemVkU3RhdGUmJmkzKHQsbik7YnJlYWs7ZGVmYXVsdDppMyh0LG4pfX0pKGUsdCksZT1lLnNpYmxpbmd9dmFyIGk0PW51bGwsaTg9ITE7ZnVuY3Rpb24gaTUoZSx0LG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KWk2KGUsdCxuKSxuPW4uc2libGluZ31mdW5jdGlvbiBpNihlLHQsbil7aWYoZV8mJiJmdW5jdGlvbiI9PXR5cGVvZiBlXy5vbkNvbW1pdEZpYmVyVW5tb3VudCl0cnl7ZV8ub25Db21taXRGaWJlclVubW91bnQoZXgsbil9Y2F0Y2goZSl7fXN3aXRjaChuLnRhZyl7Y2FzZSAyNjppV3x8aXcobix0KSxpNShlLHQsbiksbi5tZW1vaXplZFN0YXRlP24ubWVtb2l6ZWRTdGF0ZS5jb3VudC0tOm4uc3RhdGVOb2RlJiYobj1uLnN0YXRlTm9kZSkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKTticmVhaztjYXNlIDI3OmlXfHxpdyhuLHQpO3ZhciByPWk0LGw9aTg7Y3kobi50eXBlKSYmKGk0PW4uc3RhdGVOb2RlLGk4PSExKSxpNShlLHQsbiksY0cobi5zdGF0ZU5vZGUpLGk0PXIsaTg9bDticmVhaztjYXNlIDU6aVd8fGl3KG4sdCksNT09PW4udGFnJiZpeChuKTtjYXNlIDY6aWYocj1pNCxsPWk4LGk0PW51bGwsaTUoZSx0LG4pLGk0PXIsaTg9bCxudWxsIT09aTQpaWYoaTgpdHJ5eyg5PT09aTQubm9kZVR5cGU/aTQuYm9keToiSFRNTCI9PT1pNC5ub2RlTmFtZT9pNC5vd25lckRvY3VtZW50LmJvZHk6aTQpLnJlbW92ZUNoaWxkKG4uc3RhdGVOb2RlKSx0cj0hMH1jYXRjaChlKXtzXyhuLHQsZSl9ZWxzZSB0cnl7aTQucmVtb3ZlQ2hpbGQobi5zdGF0ZU5vZGUpLHRyPSEwfWNhdGNoKGUpe3NfKG4sdCxlKX1icmVhaztjYXNlIDE4Om51bGwhPT1pNCYmKGk4PyhjYig5PT09KGU9aTQpLm5vZGVUeXBlP2UuYm9keToiSFRNTCI9PT1lLm5vZGVOYW1lP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsbi5zdGF0ZU5vZGUpLGZHKGUpKTpjYihpNCxuLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpyPWk0LGw9aTgsaTQ9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxpOD0hMCxpNShlLHQsbiksaTQ9cixpOD1sO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZygyLG4sdCksaVd8fGlnKDQsbix0KSxpNShlLHQsbik7YnJlYWs7Y2FzZSAxOmlXfHwoaXcobix0KSwiZnVuY3Rpb24iPT10eXBlb2Yocj1uLnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQmJml5KG4sdCxyKSksaTUoZSx0LG4pO2JyZWFrO2Nhc2UgMjE6ZGVmYXVsdDppNShlLHQsbik7YnJlYWs7Y2FzZSAyMjppVz0ocj1pVyl8fG51bGwhPT1uLm1lbW9pemVkU3RhdGUsaTUoZSx0LG4pLGlXPXI7YnJlYWs7Y2FzZSAzMDppdyhuLHQpLGk1KGUsdCxuKTticmVhaztjYXNlIDc6aVd8fGl3KG4sdCksaTUoZSx0LG4pfX1mdW5jdGlvbiBpOShlLHQpe2lmKG51bGw9PT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7ZkcoZSl9Y2F0Y2goZSl7c18odCx0LnJldHVybixlKX19fWZ1bmN0aW9uIGk3KGUsdCl7aWYobnVsbD09PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPXQuYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXtmRyhlKX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiB1ZShlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIHQ9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT10JiYodD1lLnN0YXRlTm9kZT1uZXcgaVgpLHQ7Y2FzZSAyMjpyZXR1cm4gbnVsbD09PSh0PShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJih0PWUuX3JldHJ5Q2FjaGU9bmV3IGlYKSx0O2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0MzUsZS50YWcpKX19KGUpO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciByPXNPLmJpbmQobnVsbCxlLHQpO3QudGhlbihyLHIpfX0pfWZ1bmN0aW9uIHV0KGUsdCxuKXt2YXIgcj10LmRlbGV0aW9ucztpZihudWxsIT09cilmb3IodmFyIGw9MDtsPHIubGVuZ3RoO2wrKyl7dmFyIGE9cltsXSxvPWUsaT10LHM9aTtlOmZvcig7bnVsbCE9PXM7KXtzd2l0Y2gocy50YWcpe2Nhc2UgMjc6aWYoY3kocy50eXBlKSl7aTQ9cy5zdGF0ZU5vZGUsaTg9ITE7YnJlYWsgZX1icmVhaztjYXNlIDU6aTQ9cy5zdGF0ZU5vZGUsaTg9ITE7YnJlYWsgZTtjYXNlIDM6Y2FzZSA0Omk0PXMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8saTg9ITA7YnJlYWsgZX1zPXMucmV0dXJufWlmKG51bGw9PT1pNCl0aHJvdyBFcnJvcih1KDE2MCkpO2k2KG8saSxhKSxpND1udWxsLGk4PSExLG51bGwhPT0obz1hLmFsdGVybmF0ZSkmJihvLnJldHVybj1udWxsKSxhLnJldHVybj1udWxsfWlmKDEzODg2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXVyKHQsZSxuKSx0PXQuc2libGluZ312YXIgdW49bnVsbDtmdW5jdGlvbiB1cihlLHQsbil7dmFyIHI9ZS5hbHRlcm5hdGUsbD1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OnV0KHQsZSxuKSx1bChlKSw0JmwmJihpZygzLGUsZS5yZXR1cm4pLGloKDMsZSksaWcoNSxlLGUucmV0dXJuKSk7YnJlYWs7Y2FzZSAxOnV0KHQsZSxuKSx1bChlKSw1MTImbCYmKGlXfHxudWxsPT09cnx8aXcocixyLnJldHVybikpLDY0JmwmJmlRJiZudWxsIT09KGU9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0ocj1lLmNhbGxiYWNrcykmJih0PWUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcyxlLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M9bnVsbD09PXQ/cjp0LmNvbmNhdChyKSk7YnJlYWs7Y2FzZSAyNjp2YXIgYT11bjtpZih1dCh0LGUsbiksdWwoZSksNTEyJmwmJihpV3x8bnVsbD09PXJ8fGl3KHIsci5yZXR1cm4pKSw0JmwpaWYobj1udWxsIT09cj9yLm1lbW9pemVkU3RhdGU6bnVsbCx0PWUubWVtb2l6ZWRTdGF0ZSxudWxsPT09cilpZihudWxsPT09dClpZihudWxsPT09ZS5zdGF0ZU5vZGUpe2U6e3I9ZS50eXBlLHQ9ZS5tZW1vaXplZFByb3BzLG49YS5vd25lckRvY3VtZW50fHxhO3Q6c3dpdGNoKHIpe2Nhc2UidGl0bGUiOighKGw9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXSl8fGxbZVpdfHxsW2VXXXx8Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj09PWwubmFtZXNwYWNlVVJJfHxsLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkmJihsPW4uY3JlYXRlRWxlbWVudChyKSxuLmhlYWQuaW5zZXJ0QmVmb3JlKGwsbi5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKSkpLGNsKGwscix0KSxsW2VXXT1lLGU4KGwpLHI9bDticmVhayBlO2Nhc2UibGluayI6aWYoYT1mbCgibGluayIsImhyZWYiLG4pLmdldChyKyh0LmhyZWZ8fCIiKSkpe2Zvcih2YXIgbz0wO288YS5sZW5ndGg7bysrKWlmKChsPWFbb10pLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09KG51bGw9PXQuaHJlZnx8IiI9PT10LmhyZWY/bnVsbDp0LmhyZWYpJiZsLmdldEF0dHJpYnV0ZSgicmVsIik9PT0obnVsbD09dC5yZWw/bnVsbDp0LnJlbCkmJmwuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpPT09KG51bGw9PXQudGl0bGU/bnVsbDp0LnRpdGxlKSYmbC5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik9PT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKXthLnNwbGljZShvLDEpO2JyZWFrIHR9fWNsKGw9bi5jcmVhdGVFbGVtZW50KHIpLHIsdCksbi5oZWFkLmFwcGVuZENoaWxkKGwpO2JyZWFrO2Nhc2UibWV0YSI6aWYoYT1mbCgibWV0YSIsImNvbnRlbnQiLG4pLmdldChyKyh0LmNvbnRlbnR8fCIiKSkpe2ZvcihvPTA7bzxhLmxlbmd0aDtvKyspaWYoKGw9YVtvXSkuZ2V0QXR0cmlidXRlKCJjb250ZW50Iik9PT0obnVsbD09dC5jb250ZW50P251bGw6IiIrdC5jb250ZW50KSYmbC5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PShudWxsPT10Lm5hbWU/bnVsbDp0Lm5hbWUpJiZsLmdldEF0dHJpYnV0ZSgicHJvcGVydHkiKT09PShudWxsPT10LnByb3BlcnR5P251bGw6dC5wcm9wZXJ0eSkmJmwuZ2V0QXR0cmlidXRlKCJodHRwLWVxdWl2Iik9PT0obnVsbD09dC5odHRwRXF1aXY/bnVsbDp0Lmh0dHBFcXVpdikmJmwuZ2V0QXR0cmlidXRlKCJjaGFyc2V0Iik9PT0obnVsbD09dC5jaGFyU2V0P251bGw6dC5jaGFyU2V0KSl7YS5zcGxpY2UobywxKTticmVhayB0fX1jbChsPW4uY3JlYXRlRWxlbWVudChyKSxyLHQpLG4uaGVhZC5hcHBlbmRDaGlsZChsKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoNDY4LHIpKX1sW2VXXT1lLGU4KGwpLHI9bH1lLnN0YXRlTm9kZT1yfWVsc2UgZmEoYSxlLnR5cGUsZS5zdGF0ZU5vZGUpO2Vsc2UgZS5zdGF0ZU5vZGU9YzcoYSx0LGUubWVtb2l6ZWRQcm9wcyk7ZWxzZSBuIT09dD8obnVsbD09PW4/bnVsbCE9PXIuc3RhdGVOb2RlJiYocj1yLnN0YXRlTm9kZSkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTpuLmNvdW50LS0sbnVsbD09PXQ/ZmEoYSxlLnR5cGUsZS5zdGF0ZU5vZGUpOmM3KGEsdCxlLm1lbW9pemVkUHJvcHMpKTpudWxsPT09dCYmbnVsbCE9PWUuc3RhdGVOb2RlJiZpUyhlLGUubWVtb2l6ZWRQcm9wcyxyLm1lbW9pemVkUHJvcHMpO2JyZWFrO2Nhc2UgMjc6dXQodCxlLG4pLHVsKGUpLDUxMiZsJiYoaVd8fG51bGw9PT1yfHxpdyhyLHIucmV0dXJuKSksbnVsbCE9PXImJjQmbCYmaVMoZSxlLm1lbW9pemVkUHJvcHMsci5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYoYT1pcSxpcT0hMSx1dCh0LGUsbiksaXE9YSx1bChlKSw1MTImbCYmKGlXfHxudWxsPT09cnx8aXcocixyLnJldHVybikpLDMyJmUuZmxhZ3Mpe3Q9ZS5zdGF0ZU5vZGU7dHJ5e3RrKHQsIiIpLHRyPSEwfWNhdGNoKHQpe3NfKGUsZS5yZXR1cm4sdCl9fTQmbCYmbnVsbCE9ZS5zdGF0ZU5vZGUmJih0PWUubWVtb2l6ZWRQcm9wcyxpUyhlLHQsbnVsbCE9PXI/ci5tZW1vaXplZFByb3BzOnQpKSwxMDI0JmwmJihpSz0hMCk7YnJlYWs7Y2FzZSA2OmlmKHV0KHQsZSxuKSx1bChlKSw0Jmwpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLHQ9ZS5zdGF0ZU5vZGU7dHJ5e3Qubm9kZVZhbHVlPXIsdHI9ITB9Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX19YnJlYWs7Y2FzZSAzOmlmKHRyPSExLGZyPW51bGwsYT11bix1bj1jWih0LmNvbnRhaW5lckluZm8pLHV0KHQsZSxuKSx1bj1hLHVsKGUpLDQmbCYmbnVsbCE9PXImJnIubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2ZHKHQuY29udGFpbmVySW5mbyl9Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX1pSyYmKGlLPSExLGZ1bmN0aW9uIGUodCl7aWYoMTAyNCZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10Oyl7dmFyIG49dDtlKG4pLDU9PT1uLnRhZyYmMTAyNCZuLmZsYWdzJiZuLnN0YXRlTm9kZS5yZXNldCgpLHQ9dC5zaWJsaW5nfX0oZSkpLHRyPSExO2JyZWFrO2Nhc2UgNDpyPWlxLGlxPWlRLGw9dGwoKSxhPXVuLHVuPWNaKGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHV0KHQsZSxuKSx1bChlKSx1bj1hLHRyJiZpSiYmKGlaPSEwKSx0cj1sLGlxPXI7YnJlYWs7Y2FzZSAxMjp1dCh0LGUsbiksdWwoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OnV0KHQsZSxuKSx1bChlKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmKGUudXBkYXRlUXVldWU9bnVsbCx1ZShlLHIpKTticmVhaztjYXNlIDEzOnV0KHQsZSxuKSx1bChlKSw4MTkyJmUuY2hpbGQuZmxhZ3MmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUhPShudWxsIT09ciYmbnVsbCE9PXIubWVtb2l6ZWRTdGF0ZSkmJih1Qj1ldigpKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmKGUudXBkYXRlUXVldWU9bnVsbCx1ZShlLHIpKTticmVhaztjYXNlIDIyOmE9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxvPW51bGwhPT1yJiZudWxsIT09ci5tZW1vaXplZFN0YXRlO3ZhciBpPWlRLHM9aVcsYz1pcTtpUT1pfHxhLGlxPWN8fGEsaVc9c3x8byx1dCh0LGUsbiksaVc9cyxpcT1jLGlRPWksdWwoZSksODE5MiZsJiYoKHQ9ZS5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5PWE/LTImdC5fdmlzaWJpbGl0eToxfHQuX3Zpc2liaWxpdHksYSYmKG51bGw9PT1yfHxvfHxpUXx8aVd8fGZ1bmN0aW9uIGUodCl7Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBuPXQ7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWcoNCxuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgMTppdyhuLG4ucmV0dXJuKTt2YXIgcj1uLnN0YXRlTm9kZTsiZnVuY3Rpb24iPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaXkobixuLnJldHVybixyKSxlKG4pO2JyZWFrO2Nhc2UgMjc6Y0cobi5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1Oml3KG4sbi5yZXR1cm4pLDU9PT1uLnRhZyYmaXgobiksZShuKTticmVhaztjYXNlIDIyOm51bGw9PT1uLm1lbW9pemVkU3RhdGUmJmUobik7YnJlYWs7Y2FzZSAzMDppdyhuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgNzppdyhuLG4ucmV0dXJuKTtkZWZhdWx0OmUobil9dD10LnNpYmxpbmd9fShlKSksIWEmJmlxfHxpMyhlLGEpKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PSh0PXIucmV0cnlRdWV1ZSkmJihyLnJldHJ5UXVldWU9bnVsbCx1ZShlLHQpKTticmVhaztjYXNlIDMwOjUxMiZsJiYoaVd8fG51bGw9PT1yfHxpdyhyLHIucmV0dXJuKSksbD10bCgpLGE9aUosbz0oMHgxM2ZmZmYwMCZuKT09PW4saT1lLm1lbW9pemVkUHJvcHMsaUo9byYmIm5vbmUiIT09cmwoaS5kZWZhdWx0LGkudXBkYXRlKSx1dCh0LGUsbiksdWwoZSksbyYmbnVsbCE9PXImJnRyJiYoZS5mbGFnc3w9NCksaUo9YSx0cj1sO2JyZWFrO2Nhc2UgMjE6YnJlYWs7Y2FzZSA3OnImJm51bGwhPT1yLnN0YXRlTm9kZSYmKHIuc3RhdGVOb2RlLl9mcmFnbWVudEZpYmVyPWUpO2RlZmF1bHQ6dXQodCxlLG4pLHVsKGUpfX1mdW5jdGlvbiB1bChlKXt2YXIgdD1lLmZsYWdzO2lmKDImdCl7dHJ5e2Zvcih2YXIgbixyPW51bGwsbD1lLnJldHVybjtudWxsIT09bDspe2lmKGlQKGwpKXt2YXIgYT1sLnN0YXRlTm9kZTtudWxsPT09cj9yPVthXTpyLnB1c2goYSl9aWYoaV8obCkpe249bDticmVha31sPWwucmV0dXJufWlmKG51bGw9PW4pdGhyb3cgRXJyb3IodSgxNjApKTtzd2l0Y2gobi50YWcpe2Nhc2UgMjc6dmFyIG89bi5zdGF0ZU5vZGUsaT1pTihlKTtpQyhlLGksbyxyKTticmVhaztjYXNlIDU6dmFyIHM9bi5zdGF0ZU5vZGU7MzImbi5mbGFncyYmKHRrKHMsIiIpLG4uZmxhZ3MmPS0zMyk7dmFyIGM9aU4oZSk7aUMoZSxjLHMscik7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZj1uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGQ9aU4oZSk7IWZ1bmN0aW9uIGUodCxuLHIsbCl7dmFyIGE9dC50YWc7aWYoNT09PWF8fDY9PT1hKWE9dC5zdGF0ZU5vZGUsbj8oOT09PXIubm9kZVR5cGU/ci5ib2R5OiJIVE1MIj09PXIubm9kZU5hbWU/ci5vd25lckRvY3VtZW50LmJvZHk6cikuaW5zZXJ0QmVmb3JlKGEsbik6KChuPTk9PT1yLm5vZGVUeXBlP3IuYm9keToiSFRNTCI9PT1yLm5vZGVOYW1lP3Iub3duZXJEb2N1bWVudC5ib2R5OnIpLmFwcGVuZENoaWxkKGEpLG51bGwhPShyPXIuX3JlYWN0Um9vdENvbnRhaW5lcil8fG51bGwhPT1uLm9uY2xpY2t8fChuLm9uY2xpY2s9dFQpKSxpRSh0LGwpLHRyPSEwO2Vsc2UgaWYoNCE9PWEmJigyNz09PWEmJmN5KHQudHlwZSkmJihyPXQuc3RhdGVOb2RlLG49bnVsbCksbnVsbCE9PSh0PXQuY2hpbGQpKSlmb3IoZSh0LG4scixsKSx0PXQuc2libGluZztudWxsIT09dDspZSh0LG4scixsKSx0PXQuc2libGluZ30oZSxkLGYscik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih1KDE2MSkpfX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfWUuZmxhZ3MmPS0zfTQwOTYmdCYmKGUuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiB1YShlLHQpe2lmKDkyNzAmdC5zdWJ0cmVlRmxhZ3MpZm9yKHQ9dC5jaGlsZDtudWxsIT09dDspdW8odCxlKSx0PXQuc2libGluZztlbHNlIWZ1bmN0aW9uIGUodCxuKXtmb3IodD10LmNoaWxkO251bGwhPT10Oyl7aWYoMzA9PT10LnRhZyl7dmFyIHI9dC5tZW1vaXplZFByb3BzLGw9dC5zdGF0ZU5vZGUsYT1ybihyLGwpLG89cmwoci5kZWZhdWx0LHIudXBkYXRlKTtpZihuKXZhciBpPW51bGw9PT0obD1sLmNsb25lcyk/bnVsbDpsLm1hcChjXyk7ZWxzZSBpPXQubWVtb2l6ZWRTdGF0ZSx0Lm1lbW9pemVkU3RhdGU9bnVsbDtsPXQ7dmFyIHU9dC5jaGlsZDtpST0wLGE9aSQobCx1LGEsYSxvLGksITEpLDAhPSg0JnQuZmxhZ3MpJiZhJiYobnx8dTUodCxyLm9uVXBkYXRlKSl9ZWxzZSAwIT0oMHgyMDAwMDAwJnQuc3VidHJlZUZsYWdzKSYmZSh0LG4pO3Q9dC5zaWJsaW5nfX0odCwhMSl9ZnVuY3Rpb24gdW8oZSx0KXt2YXIgbj1lLmFsdGVybmF0ZTtpZihudWxsPT09bilpaihlLCExKTtlbHNlIHN3aXRjaChlLnRhZyl7Y2FzZSAzOmlmKGkwPWlZPSExLGlNKCksdWEodCxlKSwhaVkmJiFpWil7aWYobnVsbCE9PShlPWlSKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTMpe249ZVtyXTt2YXIgbD1lW3IrMV07Y1MobixlW3IrMl0pLG51bGwhPT0obj1uLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmbi5hbmltYXRlKHtvcGFjaXR5OlswLDBdLHBvaW50ZXJFdmVudHM6WyJub25lIiwibm9uZSJdfSx7ZHVyYXRpb246MCxmaWxsOiJmb3J3YXJkcyIscHNldWRvRWxlbWVudDoiOjp2aWV3LXRyYW5zaXRpb24tZ3JvdXAoIitsKyIpIn0pfW51bGwhPT0oZT05PT09KGU9dC5jb250YWluZXJJbmZvKS5ub2RlVHlwZT9lLmRvY3VtZW50RWxlbWVudDplLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmIiI9PT1lLnN0eWxlLnZpZXdUcmFuc2l0aW9uTmFtZSYmKGUuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lPSJub25lIixlLmFuaW1hdGUoe29wYWNpdHk6WzAsMF0scG9pbnRlckV2ZW50czpbIm5vbmUiLCJub25lIl19LHtkdXJhdGlvbjowLGZpbGw6ImZvcndhcmRzIixwc2V1ZG9FbGVtZW50OiI6OnZpZXctdHJhbnNpdGlvbi1ncm91cChyb290KSJ9KSxlLmFuaW1hdGUoe3dpZHRoOlswLDBdLGhlaWdodDpbMCwwXX0se2R1cmF0aW9uOjAsZmlsbDoiZm9yd2FyZHMiLHBzZXVkb0VsZW1lbnQ6Ijo6dmlldy10cmFuc2l0aW9uIn0pKSxpMD0hMH1pUj1udWxsO2JyZWFrO2Nhc2UgNTpkZWZhdWx0OnVhKHQsZSk7YnJlYWs7Y2FzZSA0OnI9aVksaVk9ITEsdWEodCxlKSxpWSYmKGlaPSEwKSxpWT1yO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT1uLm1lbW9pemVkU3RhdGU/aWooZSwhMSk6dWEodCxlKSk7YnJlYWs7Y2FzZSAzMDpyPWlZLGw9aU0oKSxpWT0hMSx1YSh0LGUpLGlZJiYoZS5mbGFnc3w9NCk7dmFyIGE9ZS5tZW1vaXplZFByb3BzLG89ZS5zdGF0ZU5vZGU7dD1ybihhLG8pLG89cm4obi5tZW1vaXplZFByb3BzLG8pO3ZhciBpPXJsKGEuZGVmYXVsdCxhLnVwZGF0ZSk7Im5vbmUiPT09aT90PSExOihhPW4ubWVtb2l6ZWRTdGF0ZSxuLm1lbW9pemVkU3RhdGU9bnVsbCxuPWUuY2hpbGQsaUk9MCx0PWkkKGUsbix0LG8saSxhLCEwKSxpSSE9PShudWxsPT09YT8wOmEubGVuZ3RoKSYmKGUuZmxhZ3N8PTMyKSksMCE9KDQmZS5mbGFncykmJnQ/KHU1KGUsZS5tZW1vaXplZFByb3BzLm9uVXBkYXRlKSxpUj1sKTpudWxsIT09bCYmKGwucHVzaC5hcHBseShsLGlSKSxpUj1sKSxpWT0wIT0oMzImZS5mbGFncyl8fHJ9fWZ1bmN0aW9uIHVpKGUsdCl7aWYoODc3MiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylpMihlLHQuYWx0ZXJuYXRlLHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIHV1KGUsdCl7dmFyIG49bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihuPWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT1uJiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPW4mJmxzKG4pKX1mdW5jdGlvbiB1cyhlLHQpe2U9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihlPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYodC5yZWZDb3VudCsrLG51bGwhPWUmJmxzKGUpKX1mdW5jdGlvbiB1YyhlLHQsbixyKXt2YXIgbD0oMHgxM2ZmZmYwMCZuKT09PW47aWYodC5zdWJ0cmVlRmxhZ3MmKGw/MTAyNjI6MTAyNTYpKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXVmKGUsdCxuLHIpLHQ9dC5zaWJsaW5nO2Vsc2UgbCYmZnVuY3Rpb24gZSh0KXtmb3IodD10LmNoaWxkO251bGwhPT10OykzMD09PXQudGFnP2lGKHQuY2hpbGQsITEpOjAhPSgweDIwMDAwMDAmdC5zdWJ0cmVlRmxhZ3MpJiZlKHQpLHQ9dC5zaWJsaW5nfSh0KX1mdW5jdGlvbiB1ZihlLHQsbixyKXt2YXIgbD0oMHgxM2ZmZmYwMCZuKT09PW47bCYmbnVsbD09PXQuYWx0ZXJuYXRlJiZudWxsIT09dC5yZXR1cm4mJm51bGwhPT10LnJldHVybi5hbHRlcm5hdGUmJmlIKHQpO3ZhciBhPXQuZmxhZ3M7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnVjKGUsdCxuLHIpLDIwNDgmYSYmaWgoOSx0KTticmVhaztjYXNlIDE6Y2FzZSAzMTpjYXNlIDEzOmRlZmF1bHQ6dWMoZSx0LG4scik7YnJlYWs7Y2FzZSAzOnVjKGUsdCxuLHIpLGwmJmkwJiYoInJvb3QiPT09KGU9OT09PShlPWUuY29udGFpbmVySW5mbykubm9kZVR5cGU/ZS5ib2R5OiJIVE1MIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lJiYoZS5zdHlsZS52aWV3VHJhbnNpdGlvbk5hbWU9IiIpLG51bGwhPT0oZT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmIm5vbmUiPT09ZS5zdHlsZS52aWV3VHJhbnNpdGlvbk5hbWUmJihlLnN0eWxlLnZpZXdUcmFuc2l0aW9uTmFtZT0iIikpLDIwNDgmYSYmKGE9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihhPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1hJiYodC5yZWZDb3VudCsrLG51bGwhPWEmJmxzKGEpKSk7YnJlYWs7Y2FzZSAxMjppZigyMDQ4JmEpe3VjKGUsdCxuLHIpLGE9dC5zdGF0ZU5vZGU7dHJ5e3ZhciBvPXQubWVtb2l6ZWRQcm9wcyxpPW8uaWQsdT1vLm9uUG9zdENvbW1pdDsiZnVuY3Rpb24iPT10eXBlb2YgdSYmdShpLG51bGw9PT10LmFsdGVybmF0ZT8ibW91bnQiOiJ1cGRhdGUiLGEucGFzc2l2ZUVmZmVjdER1cmF0aW9uLC0wKX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1lbHNlIHVjKGUsdCxuLHIpO2JyZWFrO2Nhc2UgMjM6YnJlYWs7Y2FzZSAyMjpvPXQuc3RhdGVOb2RlLGk9dC5hbHRlcm5hdGUsbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT8obCYmbnVsbCE9PWkmJm51bGw9PT1pLm1lbW9pemVkU3RhdGUmJmlIKGkpLDImby5fdmlzaWJpbGl0eT91YyhlLHQsbixyKTp1ZChlLHQpKToobCYmbnVsbCE9PWkmJm51bGwhPT1pLm1lbW9pemVkU3RhdGUmJmlIKHQpLDImby5fdmlzaWJpbGl0eT91YyhlLHQsbixyKTooby5fdmlzaWJpbGl0eXw9MixmdW5jdGlvbiBlKHQsbixyLGwsYSl7Zm9yKGE9YSYmMCE9KDEwMjU2Jm4uc3VidHJlZUZsYWdzKSxuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgbz1uLGk9by5mbGFncztzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6ZSh0LG8scixsLGEpLGloKDgsbyk7YnJlYWs7Y2FzZSAyMzpicmVhaztjYXNlIDIyOnZhciB1PW8uc3RhdGVOb2RlO251bGwhPT1vLm1lbW9pemVkU3RhdGU/MiZ1Ll92aXNpYmlsaXR5P2UodCxvLHIsbCxhKTp1ZCh0LG8pOih1Ll92aXNpYmlsaXR5fD0yLGUodCxvLHIsbCxhKSksYSYmMjA0OCZpJiZ1dShvLmFsdGVybmF0ZSxvKTticmVhaztjYXNlIDI0OmUodCxvLHIsbCxhKSxhJiYyMDQ4JmkmJnVzKG8uYWx0ZXJuYXRlLG8pO2JyZWFrO2RlZmF1bHQ6ZSh0LG8scixsLGEpfW49bi5zaWJsaW5nfX0oZSx0LG4sciwwIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpKSkpLDIwNDgmYSYmdXUoaSx0KTticmVhaztjYXNlIDI0OnVjKGUsdCxuLHIpLDIwNDgmYSYmdXModC5hbHRlcm5hdGUsdCk7YnJlYWs7Y2FzZSAzMDpsJiZudWxsIT09KGE9dC5hbHRlcm5hdGUpJiYoaUYoYS5jaGlsZCwhMCksaUYodC5jaGlsZCwhMCkpLHVjKGUsdCxuLHIpfX1mdW5jdGlvbiB1ZChlLHQpe2lmKDEwMjU2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10LHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMjI6dWQoZSxuKSwyMDQ4JnImJnV1KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2Nhc2UgMjQ6dWQoZSxuKSwyMDQ4JnImJnVzKG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2RlZmF1bHQ6dWQoZSxuKX10PXQuc2libGluZ319dmFyIHVwPTgxOTI7ZnVuY3Rpb24gdW0oZSx0LG4pe2lmKGUuc3VidHJlZUZsYWdzJnVwKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KXVoKGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiB1aChlLHQsbil7c3dpdGNoKGUudGFnKXtjYXNlIDI2OnVtKGUsdCxuKSxlLmZsYWdzJnVwJiYobnVsbCE9PWUubWVtb2l6ZWRTdGF0ZT9mdW5jdGlvbihlLHQsbixyKXtpZigic3R5bGVzaGVldCI9PT1uLnR5cGUmJigic3RyaW5nIiE9dHlwZW9mIHIubWVkaWF8fCExIT09bWF0Y2hNZWRpYShyLm1lZGlhKS5tYXRjaGVzKSYmMD09KDQmbi5zdGF0ZS5sb2FkaW5nKSl7aWYobnVsbD09PW4uaW5zdGFuY2Upe3ZhciBsPWM0KHIuaHJlZiksYT10LnF1ZXJ5U2VsZWN0b3IoYzgobCkpO2lmKGEpe251bGwhPT0odD1hLl9wKSYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuJiYoZS5jb3VudCsrLGU9ZmQuYmluZChlKSx0LnRoZW4oZSxlKSksbi5zdGF0ZS5sb2FkaW5nfD00LG4uaW5zdGFuY2U9YSxlOChhKTtyZXR1cm59YT10Lm93bmVyRG9jdW1lbnR8fHQscj1jNShyKSwobD1jWS5nZXQobCkpJiZmdChyLGwpLGU4KGE9YS5jcmVhdGVFbGVtZW50KCJsaW5rIikpO3ZhciBvPWE7by5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihlLHQpe28ub25sb2FkPWUsby5vbmVycm9yPXR9KSxjbChhLCJsaW5rIixyKSxuLmluc3RhbmNlPWF9bnVsbD09PWUuc3R5bGVzaGVldHMmJihlLnN0eWxlc2hlZXRzPW5ldyBNYXApLGUuc3R5bGVzaGVldHMuc2V0KG4sdCksKHQ9bi5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmbi5zdGF0ZS5sb2FkaW5nKSYmKGUuY291bnQrKyxuPWZkLmJpbmQoZSksdC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKSl9fShuLHVuLGUubWVtb2l6ZWRTdGF0ZSxlLm1lbW9pemVkUHJvcHMpOihlPWUuc3RhdGVOb2RlLCgweDEzZmZmZjQwJnQpPT09dCYmZnMobixlKSkpO2JyZWFrO2Nhc2UgNTp1bShlLHQsbiksZS5mbGFncyZ1cCYmKGU9ZS5zdGF0ZU5vZGUsKDB4MTNmZmZmNDAmdCk9PT10JiZmcyhuLGUpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciByPXVuO3VuPWNaKGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHVtKGUsdCxuKSx1bj1yO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0ocj1lLmFsdGVybmF0ZSkmJm51bGwhPT1yLm1lbW9pemVkU3RhdGU/KHI9dXAsdXA9MHgxMDAwMDAwLHVtKGUsdCxuKSx1cD1yKTp1bShlLHQsbikpO2JyZWFrO2Nhc2UgMzA6aWYoMCE9KGUuZmxhZ3MmdXApJiZudWxsIT0ocj1lLm1lbW9pemVkUHJvcHMubmFtZSkmJiJhdXRvIiE9PXIpe3ZhciBsPWUuc3RhdGVOb2RlO2wucGFpcmVkPW51bGwsbnVsbD09PWl6JiYoaXo9bmV3IE1hcCksaXouc2V0KHIsbCl9dW0oZSx0LG4pO2JyZWFrO2RlZmF1bHQ6dW0oZSx0LG4pfX1mdW5jdGlvbiB1ZyhlKXt2YXIgdD1lLmFsdGVybmF0ZTtpZihudWxsIT09dCYmbnVsbCE9PShlPXQuY2hpbGQpKXt0LmNoaWxkPW51bGw7ZG8gdD1lLnNpYmxpbmcsZS5zaWJsaW5nPW51bGwsZT10O3doaWxlKG51bGwhPT1lKX19ZnVuY3Rpb24gdXYoZSl7dmFyIHQ9ZS5kZWxldGlvbnM7aWYoMCE9KDE2JmUuZmxhZ3MpKXtpZihudWxsIT09dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtpRz1yLHViKHIsZSl9dWcoZSl9aWYoMTAyNTYmZS5zdWJ0cmVlRmxhZ3MpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspdXkoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gdXkoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnV2KGUpLDIwNDgmZS5mbGFncyYmaWcoOSxlLGUucmV0dXJuKTticmVhaztjYXNlIDM6Y2FzZSAxMjpkZWZhdWx0OnV2KGUpO2JyZWFrO2Nhc2UgMjI6dmFyIHQ9ZS5zdGF0ZU5vZGU7bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmMiZ0Ll92aXNpYmlsaXR5JiYobnVsbD09PWUucmV0dXJufHwxMyE9PWUucmV0dXJuLnRhZyk/KHQuX3Zpc2liaWxpdHkmPS0zLGZ1bmN0aW9uIGUodCl7dmFyIG49dC5kZWxldGlvbnM7aWYoMCE9KDE2JnQuZmxhZ3MpKXtpZihudWxsIT09bilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtpRz1sLHViKGwsdCl9dWcodCl9Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3N3aXRjaCgobj10KS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWcoOCxuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgMjI6MiYocj1uLnN0YXRlTm9kZSkuX3Zpc2liaWxpdHkmJihyLl92aXNpYmlsaXR5Jj0tMyxlKG4pKTticmVhaztkZWZhdWx0OmUobil9dD10LnNpYmxpbmd9fShlKSk6dXYoZSl9fWZ1bmN0aW9uIHViKGUsdCl7Zm9yKDtudWxsIT09aUc7KXt2YXIgbj1pRztzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWcoOCxuLHQpO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyMjppZihudWxsIT09bi5tZW1vaXplZFN0YXRlJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCl7dmFyIHI9bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sO251bGwhPXImJnIucmVmQ291bnQrK31icmVhaztjYXNlIDI0OmxzKG4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSl9aWYobnVsbCE9PShyPW4uY2hpbGQpKXIucmV0dXJuPW4saUc9cjtlbHNlIGZvcihuPWU7bnVsbCE9PWlHOyl7dmFyIGw9KHI9aUcpLnNpYmxpbmcsYT1yLnJldHVybjtpZighZnVuY3Rpb24gZSh0KXt2YXIgbj10LmFsdGVybmF0ZTtudWxsIT09biYmKHQuYWx0ZXJuYXRlPW51bGwsZShuKSksdC5jaGlsZD1udWxsLHQuZGVsZXRpb25zPW51bGwsdC5zaWJsaW5nPW51bGwsNT09PXQudGFnJiZudWxsIT09KG49dC5zdGF0ZU5vZGUpJiZlMChuKSx0LnN0YXRlTm9kZT1udWxsLHQucmV0dXJuPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnBlbmRpbmdQcm9wcz1udWxsLHQuc3RhdGVOb2RlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsfShyKSxyPT09bil7aUc9bnVsbDticmVha31pZihudWxsIT09bCl7bC5yZXR1cm49YSxpRz1sO2JyZWFrfWlHPWF9fX12YXIgdXc9e2dldENhY2hlRm9yVHlwZTpmdW5jdGlvbihlKXt2YXIgdD1sdChsaSksbj10LmRhdGEuZ2V0KGUpO3JldHVybiB2b2lkIDA9PT1uJiYobj1lKCksdC5kYXRhLnNldChlLG4pKSxufSxjYWNoZVNpZ25hbDpmdW5jdGlvbigpe3JldHVybiBsdChsaSkuY29udHJvbGxlci5zaWduYWx9fSx1az0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCx1Uz0wLHVFPW51bGwsdXg9bnVsbCx1Xz0wLHVQPTAsdU49bnVsbCx1Qz0hMSx1VD0hMSx1Tz0hMSx1ej0wLHVMPTAsdVI9MCx1TT0wLHVJPTAsdUQ9MCx1Rj0wLHVBPW51bGwsdWo9bnVsbCx1VT0hMSx1Qj0wLHVWPTAsdUg9MS8wLHUkPW51bGwsdVE9bnVsbCx1Vz0wLHVxPW51bGwsdUs9bnVsbCx1WD0wLHVHPTAsdVk9bnVsbCx1Sj1udWxsLHVaPW51bGwsdTA9bnVsbCx1MT1udWxsLHUyPTAsdTM9bnVsbDtmdW5jdGlvbiB1NCgpe3JldHVybiAwIT0oMiZ1UykmJjAhPT11Xz91XyYtdV86bnVsbCE9PVcuVD9zJCgpOmVIKCl9ZnVuY3Rpb24gdTgoKXtpZigwPT09dUQpaWYoMD09KDB4MjAwMDAwMDAmdV8pfHxyJCl7dmFyIGU9ZU87MD09KDM5MzIxNjAmKGVPPDw9MSkpJiYoZU89MjYyMTQ0KSx1RD1lfWVsc2UgdUQ9MHgyMDAwMDAwMDtyZXR1cm4gbnVsbCE9PShlPWwzLmN1cnJlbnQpJiYoZS5mbGFnc3w9MzIpLHVEfWZ1bmN0aW9uIHU1KGUsdCl7aWYobnVsbCE9dCl7dmFyIG49ZS5zdGF0ZU5vZGUscj1uLnJlZjtudWxsPT09ciYmKHI9bi5yZWY9Y0Mocm4oZS5tZW1vaXplZFByb3BzLG4pKSksbnVsbD09PXUwJiYodTA9W10pLHUwLnB1c2godC5iaW5kKG51bGwscikpfX1mdW5jdGlvbiB1NihlLHQsbil7KGU9PT11RSYmKDI9PT11UHx8OT09PXVQKXx8bnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdCkmJihzcihlLDApLHNlKGUsdV8sdUQsITEpKSxlRihlLG4pLCgwPT0oMiZ1Uyl8fGUhPT11RSkmJihlPT09dUUmJigwPT0oMiZ1UykmJih1TXw9biksND09PXVMJiZzZShlLHVfLHVELCExKSksc0YoZSkpfWZ1bmN0aW9uIHU5KGUsdCxuKXtpZigwIT0oNiZ1UykpdGhyb3cgRXJyb3IodSgzMjcpKTtmb3IodmFyIHI9IW4mJjA9PSgxMjcmdCkmJjA9PSh0JmUuZXhwaXJlZExhbmVzKXx8ZU0oZSx0KSxsPXI/ZnVuY3Rpb24oZSx0KXt2YXIgbj11Uzt1U3w9Mjt2YXIgcj1zbygpLGw9c2koKTt1RSE9PWV8fHVfIT09dD8odSQ9bnVsbCx1SD1ldigpKzUwMCxzcihlLHQpKTp1VD1lTShlLHQpO2U6Zm9yKDs7KXRyeXtpZigwIT09dVAmJm51bGwhPT11eCl7dD11eDt2YXIgYT11Tjt0OnN3aXRjaCh1UCl7Y2FzZSAxOnVQPTAsdU49bnVsbCxzZChlLHQsYSwxKTticmVhaztjYXNlIDI6Y2FzZSA5OmlmKGxQKGEpKXt1UD0wLHVOPW51bGwsc2YodCk7YnJlYWt9dD1mdW5jdGlvbigpezIhPT11UCYmOSE9PXVQfHx1RSE9PWV8fCh1UD03KSxzRihlKX0sYS50aGVuKHQsdCk7YnJlYWsgZTtjYXNlIDM6dVA9NzticmVhayBlO2Nhc2UgNDp1UD01O2JyZWFrIGU7Y2FzZSA3OmxQKGEpPyh1UD0wLHVOPW51bGwsc2YodCkpOih1UD0wLHVOPW51bGwsc2QoZSx0LGEsNykpO2JyZWFrO2Nhc2UgNTp2YXIgbz1udWxsO3N3aXRjaCh1eC50YWcpe2Nhc2UgMjY6bz11eC5tZW1vaXplZFN0YXRlO2Nhc2UgNTpjYXNlIDI3OnZhciBpPXV4O2lmKG8/Zmkobyk6aS5zdGF0ZU5vZGUuY29tcGxldGUpe3VQPTAsdU49bnVsbDt2YXIgcz1pLnNpYmxpbmc7aWYobnVsbCE9PXMpdXg9cztlbHNle3ZhciBjPWkucmV0dXJuO251bGwhPT1jPyh1eD1jLHNwKGMpKTp1eD1udWxsfWJyZWFrIHR9fXVQPTAsdU49bnVsbCxzZChlLHQsYSw1KTticmVhaztjYXNlIDY6dVA9MCx1Tj1udWxsLHNkKGUsdCxhLDYpO2JyZWFrO2Nhc2UgODpzbigpLHVMPTY7YnJlYWsgZTtkZWZhdWx0OnRocm93IEVycm9yKHUoNDYyKSl9fWZvcig7bnVsbCE9PXV4JiYhZWgoKTspc2ModXgpO2JyZWFrfWNhdGNoKHQpe3NsKGUsdCl9cmV0dXJuKHIzPXIyPW51bGwsVy5IPXIsVy5BPWwsdVM9bixudWxsIT09dXgpPzA6KHVFPW51bGwsdV89MCxycygpLHVMKX0oZSx0KTpzcyhlLHQsITApLGE9cjs7KXtpZigwPT09bCl1VCYmIXImJnNlKGUsdCwwLCExKTtlbHNle2lmKG49ZS5jdXJyZW50LmFsdGVybmF0ZSxhJiYhZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWU7Oyl7dmFyIG49dC50YWc7aWYoKDA9PT1ufHwxMT09PW58fDE1PT09bikmJjE2Mzg0JnQuZmxhZ3MmJm51bGwhPT0obj10LnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShuPW4uc3RvcmVzKSlmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXSxhPWwuZ2V0U25hcHNob3Q7bD1sLnZhbHVlO3RyeXtpZighbkEoYSgpLGwpKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfX1pZihuPXQuY2hpbGQsMTYzODQmdC5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1uKW4ucmV0dXJuPXQsdD1uO2Vsc2V7aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuITA7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfX1yZXR1cm4hMH0obikpe2w9c3MoZSx0LCExKSxhPSExO2NvbnRpbnVlfWlmKDI9PT1sKXtpZihhPXQsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyZhKXZhciBvPTA7ZWxzZSBvPTAhPShvPS0weDIwMDAwMDAxJmUucGVuZGluZ0xhbmVzKT9vOjB4MjAwMDAwMDAmbz8weDIwMDAwMDAwOjA7aWYoMCE9PW8pe3Q9bztlOntsPXVBO3ZhciBpPWUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZDtpZihpJiYoc3IoZSxvKS5mbGFnc3w9MjU2KSwyIT09KG89c3MoZSxvLCExKSkpe2lmKHVPJiYhaSl7ZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lc3w9YSx1TXw9YSxsPTQ7YnJlYWsgZX1hPXVqLHVqPWwsbnVsbCE9PWEmJihudWxsPT09dWo/dWo9YTp1ai5wdXNoLmFwcGx5KHVqLGEpKX1sPW99aWYoYT0hMSwyIT09bCljb250aW51ZX19aWYoMT09PWwpe3NyKGUsMCksc2UoZSx0LDAsITApO2JyZWFrfWU6e3N3aXRjaChyPWUsYT1sKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKHUoMzQ1KSk7Y2FzZSA0OmlmKCg0MTk0MDQ4JnQpIT09dCYmKDB4M2MwMDAwMCZ0KSE9PXQpYnJlYWs7Y2FzZSA2OnNlKHIsdCx1RCwhdUMpO2JyZWFrIGU7Y2FzZSAyOnVqPW51bGw7YnJlYWs7Y2FzZSAzOmNhc2UgNTpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoMzI5KSl9aWYoKDB4M2MwMDAwMCZ0KT09PXQmJjEwPChsPXVCKzMwMC1ldigpKSl7aWYoc2Uocix0LHVELCF1QyksMCE9PWVSKHIsMCwhMCkpYnJlYWsgZTt1WD10LHIudGltZW91dEhhbmRsZT1jcCh1Ny5iaW5kKG51bGwscixuLHVqLHUkLHVVLHQsdUQsdU0sdUYsdUMsYSwiVGhyb3R0bGVkIiwtMCwwKSxsKTticmVhayBlfXU3KHIsbix1aix1JCx1VSx0LHVELHVNLHVGLHVDLGEsbnVsbCwtMCwwKX19YnJlYWt9c0YoZSl9ZnVuY3Rpb24gdTcoZSx0LG4scixsLGEsbyxpLHUscyxjLGYsZCxwKXtlLnRpbWVvdXRIYW5kbGU9LTE7dmFyIG0saCxnPXQuc3VidHJlZUZsYWdzLHY9KDB4MTNmZmZmMDAmYSk9PT1hO2lmKGY9bnVsbCwodnx8ODE5MiZnfHwweDEwMDIwMDA9PSgweDEwMDIwMDAmZykpJiYoaXo9bnVsbCx1aCh0LGEsZj17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLGltZ0NvdW50OjAsaW1nQnl0ZXM6MCxzdXNwZW5zZXlJbWFnZXM6W10sd2FpdGluZ0ZvckltYWdlczohMCx3YWl0aW5nRm9yVmlld1RyYW5zaXRpb246ITEsdW5zdXNwZW5kOnRUfSksdiYmKGc9ZixudWxsIT0odj0oOT09PSh2PWUuY29udGFpbmVySW5mbykubm9kZVR5cGU/djp2Lm93bmVyRG9jdW1lbnQpLl9fcmVhY3RWaWV3VHJhbnNpdGlvbikmJihnLmNvdW50KyssZy53YWl0aW5nRm9yVmlld1RyYW5zaXRpb249ITAsZz1mZC5iaW5kKGcpLHYuZmluaXNoZWQudGhlbihnLGcpKSksbnVsbCE9PShtPWYsaD1nPSgweDNjMDAwMDAmYSk9PT1hP3VCLWV2KCk6KDQxOTQwNDgmYSk9PT1hP3VWLWV2KCk6MCxtLnN0eWxlc2hlZXRzJiYwPT09bS5jb3VudCYmZmgobSxtLnN0eWxlc2hlZXRzKSxnPTA8bS5jb3VudHx8MDxtLmltZ0NvdW50P2Z1bmN0aW9uKGUpe3ZhciB0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihtLnN0eWxlc2hlZXRzJiZmaChtLG0uc3R5bGVzaGVldHMpLG0udW5zdXNwZW5kKXt2YXIgZT1tLnVuc3VzcGVuZDttLnVuc3VzcGVuZD1udWxsLGUoKX19LDZlNCtoKTswPG0uaW1nQnl0ZXMmJjA9PT1mYyYmKGZjPTYyNTAwKmZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpe2Zvcih2YXIgZT0wLHQ9MCxuPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbD1uW3JdLGE9bC50cmFuc2ZlclNpemUsbz1sLmluaXRpYXRvclR5cGUsaT1sLmR1cmF0aW9uO2lmKGEmJmkmJmNhKG8pKXtmb3Iobz0wLGk9bC5yZXNwb25zZUVuZCxyKz0xO3I8bi5sZW5ndGg7cisrKXt2YXIgdT1uW3JdLHM9dS5zdGFydFRpbWU7aWYocz5pKWJyZWFrO3ZhciBjPXUudHJhbnNmZXJTaXplLGY9dS5pbml0aWF0b3JUeXBlO2MmJmNhKGYpJiYobys9YyooKHU9dS5yZXNwb25zZUVuZCk8aT8xOihpLXMpLyh1LXMpKSl9aWYoLS1yLHQrPTgqKGErbykvKGwuZHVyYXRpb24vMWUzKSwxMDwrK2UpYnJlYWt9fWlmKDA8ZSlyZXR1cm4gdC9lLzFlNn1yZXR1cm4gbmF2aWdhdG9yLmNvbm5lY3Rpb24mJiJudW1iZXIiPT10eXBlb2YoZT1uYXZpZ2F0b3IuY29ubmVjdGlvbi5kb3dubGluayk/ZTo1fSgpKTt2YXIgbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYobS53YWl0aW5nRm9ySW1hZ2VzPSExLDA9PT1tLmNvdW50JiYobS5zdHlsZXNoZWV0cyYmZmgobSxtLnN0eWxlc2hlZXRzKSxtLnVuc3VzcGVuZCkpe3ZhciBlPW0udW5zdXNwZW5kO20udW5zdXNwZW5kPW51bGwsZSgpfX0sKG0uaW1nQnl0ZXM+ZmM/NTA6ODAwKStoKTtyZXR1cm4gbS51bnN1c3BlbmQ9ZSxmdW5jdGlvbigpe20udW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KHQpLGNsZWFyVGltZW91dChuKX19Om51bGwpKSl7dVg9YSxlLmNhbmNlbFBlbmRpbmdDb21taXQ9ZyhzaC5iaW5kKG51bGwsZSx0LGEsbixyLGwsbyxpLHUsYyxmLG51bGwsZCxwKSksc2UoZSxhLG8sIXMpO3JldHVybn1zaChlLHQsYSxuLHIsbCxvLGksdSxjLGYpfWZ1bmN0aW9uIHNlKGUsdCxuLHIpe3QmPX51SSx0Jj1+dU0sZS5zdXNwZW5kZWRMYW5lc3w9dCxlLnBpbmdlZExhbmVzJj1+dCxyJiYoZS53YXJtTGFuZXN8PXQpLHI9ZS5leHBpcmF0aW9uVGltZXM7Zm9yKHZhciBsPXQ7MDxsOyl7dmFyIGE9MzEtZVAobCksbz0xPDxhO3JbYV09LTEsbCY9fm99MCE9PW4mJmVBKGUsbix0KX1mdW5jdGlvbiBzdCgpe3JldHVybiAwIT0oNiZ1Uyl8fChzQSgwLCExKSwhMSl9ZnVuY3Rpb24gc24oKXtpZihudWxsIT09dXgpe2lmKDA9PT11UCl2YXIgZT11eC5yZXR1cm47ZWxzZSBlPXV4LHIzPXIyPW51bGwsYUUoZSksbEw9bnVsbCxsUj0wLGU9dXg7Zm9yKDtudWxsIT09ZTspaW0oZS5hbHRlcm5hdGUsZSksZT1lLnJldHVybjt1eD1udWxsfX1mdW5jdGlvbiBzcihlLHQpe3ZhciBuPWUudGltZW91dEhhbmRsZTstMSE9PW4mJihlLnRpbWVvdXRIYW5kbGU9LTEsY20obikpLG51bGwhPT0obj1lLmNhbmNlbFBlbmRpbmdDb21taXQpJiYoZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsbigpKSx1WD0wLHNuKCksdUU9ZSx1eD1uPXJiKGUuY3VycmVudCxudWxsKSx1Xz10LHVQPTAsdU49bnVsbCx1Qz0hMSx1VD1lTShlLHQpLHVPPSExLHVGPXVEPXVJPXVNPXVSPXVMPTAsdWo9dUE9bnVsbCx1VT0hMSwwIT0oOCZ0KSYmKHR8PTMyJnQpO3ZhciByPWUuZW50YW5nbGVkTGFuZXM7aWYoMCE9PXIpZm9yKGU9ZS5lbnRhbmdsZW1lbnRzLHImPXQ7MDxyOyl7dmFyIGw9MzEtZVAociksYT0xPDxsO3R8PWVbbF0sciY9fmF9cmV0dXJuIHV6PXQscnMoKSxufWZ1bmN0aW9uIHNsKGUsdCl7YWE9bnVsbCxXLkg9b1MsdD09PWxTfHx0PT09bHg/KHQ9bE8oKSx1UD0zKTp0PT09bEU/KHQ9bE8oKSx1UD00KTp1UD10PT09b2o/ODpudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuPzY6MSx1Tj10LG51bGw9PT11eCYmKHVMPTEsb00oZSxyTih0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBzYSgpe3ZhciBlPWwzLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmdV8pPT09dV8/bnVsbD09PWw0OigoMHgzYzAwMDAwJnVfKT09PXVffHwwIT0oMHgyMDAwMDAwMCZ1XykpJiZlPT09bDQpfWZ1bmN0aW9uIHNvKCl7dmFyIGU9Vy5IO3JldHVybiBXLkg9b1MsbnVsbD09PWU/b1M6ZX1mdW5jdGlvbiBzaSgpe3ZhciBlPVcuQTtyZXR1cm4gVy5BPXV3LGV9ZnVuY3Rpb24gc3UoKXt1TD00LHVDfHwoNDE5NDA0OCZ1XykhPT11XyYmbnVsbCE9PWwzLmN1cnJlbnR8fCh1VD0hMCksMD09KDB4N2ZmZmZmZiZ1UikmJjA9PSgweDdmZmZmZmYmdU0pfHxudWxsPT09dUV8fHNlKHVFLHVfLHVELCExKX1mdW5jdGlvbiBzcyhlLHQsbil7dmFyIHI9dVM7dVN8PTI7dmFyIGw9c28oKSxhPXNpKCk7KHVFIT09ZXx8dV8hPT10KSYmKHUkPW51bGwsc3IoZSx0KSksdD0hMTt2YXIgbz11TDtlOmZvcig7Oyl0cnl7aWYoMCE9PXVQJiZudWxsIT09dXgpe3ZhciBpPXV4LHU9dU47c3dpdGNoKHVQKXtjYXNlIDg6c24oKSxvPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PWwzLmN1cnJlbnQmJih0PSEwKTt2YXIgcz11UDtpZih1UD0wLHVOPW51bGwsc2QoZSxpLHUscyksbiYmdVQpe289MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6cz11UCx1UD0wLHVOPW51bGwsc2QoZSxpLHUscyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PXV4OylzYyh1eCl9KSgpLG89dUw7YnJlYWt9Y2F0Y2godCl7c2woZSx0KX1yZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKysscjM9cjI9bnVsbCx1Uz1yLFcuSD1sLFcuQT1hLG51bGw9PT11eCYmKHVFPW51bGwsdV89MCxycygpKSxvfWZ1bmN0aW9uIHNjKGUpe3ZhciB0PWlvKGUuYWx0ZXJuYXRlLGUsdXopO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09dD9zcChlKTp1eD10fWZ1bmN0aW9uIHNmKGUpe3ZhciB0PWUsbj10LmFsdGVybmF0ZTtzd2l0Y2godC50YWcpe2Nhc2UgMTU6Y2FzZSAwOnQ9b0oobix0LHQucGVuZGluZ1Byb3BzLHQudHlwZSx2b2lkIDAsdV8pO2JyZWFrO2Nhc2UgMTE6dD1vSihuLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLnJlbmRlcix0LnJlZix1Xyk7YnJlYWs7Y2FzZSA1OmFFKHQpO2RlZmF1bHQ6aW0obix0KSx0PWlvKG4sdD11eD1ydyh0LHV6KSx1eil9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10P3NwKGUpOnV4PXR9ZnVuY3Rpb24gc2QoZSx0LG4scil7cjM9cjI9bnVsbCxhRSh0KSxsTD1udWxsLGxSPTA7dmFyIGw9dC5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsdCxuLHIsbCl7aWYobi5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJiJvYmplY3QiPT10eXBlb2YgciYmImZ1bmN0aW9uIj09dHlwZW9mIHIudGhlbil7aWYobnVsbCE9PSh0PW4uYWx0ZXJuYXRlKSYmcjkodCxuLGwsITApLG51bGwhPT0obj1sMy5jdXJyZW50KSl7c3dpdGNoKG4udGFnKXtjYXNlIDMxOmNhc2UgMTM6Y2FzZSAxOTpyZXR1cm4gbnVsbD09PWw0P3N1KCk6bnVsbD09PW4uYWx0ZXJuYXRlJiYwPT09dUwmJih1TD0zKSxuLmZsYWdzJj0tMjU3LG4uZmxhZ3N8PTY1NTM2LG4ubGFuZXM9bCxyPT09bF8/bi5mbGFnc3w9MTYzODQ6KG51bGw9PT0odD1uLnVwZGF0ZVF1ZXVlKT9uLnVwZGF0ZVF1ZXVlPW5ldyBTZXQoW3JdKTp0LmFkZChyKSxzUChlLHIsbCkpLCExO2Nhc2UgMjI6cmV0dXJuIG4uZmxhZ3N8PTY1NTM2LHI9PT1sXz9uLmZsYWdzfD0xNjM4NDoobnVsbD09PSh0PW4udXBkYXRlUXVldWUpPyh0PXt0cmFuc2l0aW9uczpudWxsLG1hcmtlckluc3RhbmNlczpudWxsLHJldHJ5UXVldWU6bmV3IFNldChbcl0pfSxuLnVwZGF0ZVF1ZXVlPXQpOm51bGw9PT0obj10LnJldHJ5UXVldWUpP3QucmV0cnlRdWV1ZT1uZXcgU2V0KFtyXSk6bi5hZGQociksc1AoZSxyLGwpKSwhMX10aHJvdyBFcnJvcih1KDQzNSxuLnRhZykpfXJldHVybiBzUChlLHIsbCksc3UoKSwhMX1pZihyJClyZXR1cm4gbnVsbCE9PSh0PWwzLmN1cnJlbnQpPygwPT0oNjU1MzYmdC5mbGFncykmJih0LmZsYWdzfD0yNTYpLHQuZmxhZ3N8PTY1NTM2LHQubGFuZXM9bCxyIT09cnEmJnIwKHJOKGU9RXJyb3IodSg0MjIpLHtjYXVzZTpyfSksbikpKToociE9PXJxJiZyMChyTih0PUVycm9yKHUoNDIzKSx7Y2F1c2U6cn0pLG4pKSxlPWUuY3VycmVudC5hbHRlcm5hdGUsZS5mbGFnc3w9NjU1MzYsbCY9LWwsZS5sYW5lc3w9bCxyPXJOKHIsbiksbD1vRChlLnN0YXRlTm9kZSxyLGwpLGxXKGUsbCksNCE9PXVMJiYodUw9MikpLCExO3ZhciBhPUVycm9yKHUoNTIwKSx7Y2F1c2U6cn0pO2lmKGE9ck4oYSxuKSxudWxsPT09dUE/dUE9W2FdOnVBLnB1c2goYSksNCE9PXVMJiYodUw9MiksbnVsbD09PXQpcmV0dXJuITA7cj1yTihyLG4pLG49dDtkb3tzd2l0Y2gobi50YWcpe2Nhc2UgMzpyZXR1cm4gbi5mbGFnc3w9NjU1MzYsZT1sJi1sLG4ubGFuZXN8PWUsZT1vRChuLnN0YXRlTm9kZSxyLGUpLGxXKG4sZSksITE7Y2FzZSAxOmlmKHQ9bi50eXBlLGE9bi5zdGF0ZU5vZGUsMD09KDEyOCZuLmZsYWdzKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PWEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXVRfHwhdVEuaGFzKGEpKSkpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LGwmPS1sLG4ubGFuZXN8PWwsb0EobD1vRihsKSxlLG4sciksbFcobixsKSwhMTticmVhaztjYXNlIDIyOmlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LCExfW49bi5yZXR1cm59d2hpbGUobnVsbCE9PW4pcmV0dXJuITF9KGUsbCx0LG4sdV8pKXt1TD0xLG9NKGUsck4obixlLmN1cnJlbnQpKSx1eD1udWxsO3JldHVybn19Y2F0Y2godCl7aWYobnVsbCE9PWwpdGhyb3cgdXg9bCx0O3VMPTEsb00oZSxyTihuLGUuY3VycmVudCkpLHV4PW51bGw7cmV0dXJufTMyNzY4JnQuZmxhZ3M/KHIkfHwxPT09cj9lPSEwOnVUfHwwIT0oMHgyMDAwMDAwMCZ1Xyk/ZT0hMToodUM9ZT0hMCwoMj09PXJ8fDk9PT1yfHwzPT09cnx8Nj09PXIpJiZudWxsIT09KHI9bDMuY3VycmVudCkmJjEzPT09ci50YWcmJihyLmZsYWdzfD0xNjM4NCkpLHNtKHQsZSkpOnNwKHQpfWZ1bmN0aW9uIHNwKGUpe3ZhciB0PWU7ZG97aWYoMCE9KDMyNzY4JnQuZmxhZ3MpKXJldHVybiB2b2lkIHNtKHQsdUMpO2U9dC5yZXR1cm47dmFyIG49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzO3N3aXRjaChyVSh0KSx0LnRhZyl7Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpjYXNlIDE6cmV0dXJuIGlwKHQpLG51bGw7Y2FzZSAzOnJldHVybiBuPXQuc3RhdGVOb2RlLHI9bnVsbCxudWxsIT09ZSYmKHI9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1yJiYodC5mbGFnc3w9MjA0OCkscjgobGkpLGVhKCksbi5wZW5kaW5nQ29udGV4dCYmKG4uY29udGV4dD1uLnBlbmRpbmdDb250ZXh0LG4ucGVuZGluZ0NvbnRleHQ9bnVsbCksKG51bGw9PT1lfHxudWxsPT09ZS5jaGlsZCkmJihyWSh0KT9paSh0KTpudWxsPT09ZXx8ZS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmMD09KDI1NiZ0LmZsYWdzKXx8KHQuZmxhZ3N8PTEwMjQsclooKSkpLGlwKHQpLG51bGw7Y2FzZSAyNjp2YXIgbD10LnR5cGUsYT10Lm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGw9PT1lPyhpaSh0KSxudWxsIT09YT8oaXAodCksaXModCxhKSk6KGlwKHQpLGl1KHQsbCxudWxsLHIsbikpKTphP2EhPT1lLm1lbW9pemVkU3RhdGU/KGlpKHQpLGlwKHQpLGlzKHQsYSkpOihpcCh0KSx0LmZsYWdzJj0tMHgxMDAwMDAxKTooKGU9ZS5tZW1vaXplZFByb3BzKSE9PXImJmlpKHQpLGlwKHQpLGl1KHQsbCxlLHIsbikpLG51bGw7Y2FzZSAyNzppZihlaSh0KSxuPWVuLmN1cnJlbnQsbD10LnR5cGUsbnVsbCE9PWUmJm51bGwhPXQuc3RhdGVOb2RlKWUubWVtb2l6ZWRQcm9wcyE9PXImJmlpKHQpO2Vsc2V7aWYoIXIpe2lmKG51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2NikpO3JldHVybiBpcCh0KSx0LnN1YnRyZWVGbGFncyY9LTB4MjAwMDAwMSxudWxsfWU9ZWUuY3VycmVudCxyWSh0KT9yWCh0LGUpOih0LnN0YXRlTm9kZT1lPWNYKGwscixuKSxpaSh0KSl9cmV0dXJuIGlwKHQpLHQuc3VidHJlZUZsYWdzJj0tMHgyMDAwMDAxLG51bGw7Y2FzZSA1OmlmKGVpKHQpLGw9dC50eXBlLG51bGwhPT1lJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpaSh0KTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IodSgxNjYpKTtyZXR1cm4gaXAodCksdC5zdWJ0cmVlRmxhZ3MmPS0weDIwMDAwMDEsbnVsbH1pZihhPWVlLmN1cnJlbnQsclkodCkpclgodCxhKTtlbHNle3ZhciBvPWN1KGVuLmN1cnJlbnQpO3N3aXRjaChhKXtjYXNlIDE6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UgMjphPW8uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixsKTticmVhaztkZWZhdWx0OnN3aXRjaChsKXtjYXNlInN2ZyI6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UibWF0aCI6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsbCk7YnJlYWs7Y2FzZSJzY3JpcHQiOihhPW8uY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHNjcmlwdD48L3NjcmlwdD4iLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjphPSJzdHJpbmciPT10eXBlb2Ygci5pcz9vLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lzOnIuaXN9KTpvLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLHIubXVsdGlwbGU/YS5tdWx0aXBsZT0hMDpyLnNpemUmJihhLnNpemU9ci5zaXplKTticmVhaztkZWZhdWx0OmE9InN0cmluZyI9PXR5cGVvZiByLmlzP28uY3JlYXRlRWxlbWVudChsLHtpczpyLmlzfSk6by5jcmVhdGVFbGVtZW50KGwpfX1hW2VXXT10LGFbZXFdPXI7ZTpmb3Iobz10LmNoaWxkO251bGwhPT1vOyl7aWYoNT09PW8udGFnfHw2PT09by50YWcpYS5hcHBlbmRDaGlsZChvLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09by50YWcmJjI3IT09by50YWcmJm51bGwhPT1vLmNoaWxkKXtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX1pZihvPT09dClicmVhaztmb3IoO251bGw9PT1vLnNpYmxpbmc7KXtpZihudWxsPT09by5yZXR1cm58fG8ucmV0dXJuPT09dClicmVhayBlO289by5yZXR1cm59by5zaWJsaW5nLnJldHVybj1vLnJldHVybixvPW8uc2libGluZ31zd2l0Y2godC5zdGF0ZU5vZGU9YSxjbChhLGwsciksbCl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZSJpbWciOnI9ITA7YnJlYWs7ZGVmYXVsdDpyPSExfXImJmlpKHQpfX1yZXR1cm4gaXAodCksdC5zdWJ0cmVlRmxhZ3MmPS0weDIwMDAwMDEsaXUodCx0LnR5cGUsbnVsbD09PWU/bnVsbDplLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsbiksbnVsbDtjYXNlIDY6aWYoZSYmbnVsbCE9dC5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaWkodCk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIHImJm51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2NikpO2lmKGU9ZW4uY3VycmVudCxyWSh0KSl7aWYoZT10LnN0YXRlTm9kZSxuPXQubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShsPXJWKSlzd2l0Y2gobC50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9bC5tZW1vaXplZFByb3BzfWVbZVddPXQsKGU9ISEoZS5ub2RlVmFsdWU9PT1ufHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y3QoZS5ub2RlVmFsdWUsbikpKXx8cksodCwhMCl9ZWxzZShlPWN1KGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlV109dCx0LnN0YXRlTm9kZT1lfXJldHVybiBpcCh0KSxudWxsO2Nhc2UgMzE6aWYobj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9clkodCksbnVsbCE9PW4pe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcih1KDMxOCkpO2lmKCEoZT1udWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IodSg1NTcpKTtlW2VXXT10fWVsc2UgckooKSwwPT0oMTI4JnQuZmxhZ3MpJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7aXAodCksZT0hMX1lbHNlIG49clooKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9biksZT0hMDtpZighZSl7aWYoMjU2JnQuZmxhZ3MpcmV0dXJuIGw3KHQpLHQ7cmV0dXJuIGw3KHQpLG51bGx9aWYoMCE9KDEyOCZ0LmZsYWdzKSl0aHJvdyBFcnJvcih1KDU1OCkpfXJldHVybiBpcCh0KSxudWxsO2Nhc2UgMTM6aWYocj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobD1yWSh0KSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFsKXRocm93IEVycm9yKHUoMzE4KSk7aWYoIShsPW51bGwhPT0obD10Lm1lbW9pemVkU3RhdGUpP2wuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcih1KDMxNykpO2xbZVddPXR9ZWxzZSBySigpLDA9PSgxMjgmdC5mbGFncykmJih0Lm1lbW9pemVkU3RhdGU9bnVsbCksdC5mbGFnc3w9NDtpcCh0KSxsPSExfWVsc2UgbD1yWigpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1sKSxsPSEwO2lmKCFsKXtpZigyNTYmdC5mbGFncylyZXR1cm4gbDcodCksdDtyZXR1cm4gbDcodCksbnVsbH19aWYobDcodCksMCE9KDEyOCZ0LmZsYWdzKSlyZXR1cm4gdC5sYW5lcz1uLHQ7cmV0dXJuIG49bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxuJiYocj10LmNoaWxkLGw9bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihsPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09bCYmKHIuZmxhZ3N8PTIwNDgpKSxuIT09ZSYmbiYmKHQuY2hpbGQuZmxhZ3N8PTgxOTIpLGljKHQsdC51cGRhdGVRdWV1ZSksaXAodCksbnVsbDtjYXNlIDQ6cmV0dXJuIGVhKCksbnVsbD09PWUmJnMxKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHQuZmxhZ3N8PTB4NDAwMDAwMCxpcCh0KSxudWxsO2Nhc2UgMTA6cmV0dXJuIHI4KHQudHlwZSksaXAodCksbnVsbDtjYXNlIDE5OmlmKGFuKHQpLG51bGw9PT0ocj10Lm1lbW9pemVkU3RhdGUpKXJldHVybiBpcCh0KSxudWxsO2lmKGw9MCE9KDEyOCZ0LmZsYWdzKSxudWxsPT09KGE9ci5yZW5kZXJpbmcpKWlmKGwpaWQociwhMSk7ZWxzZXtpZigwIT09dUx8fG51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWZvcihlPXQuY2hpbGQ7bnVsbCE9PWU7KXtpZihudWxsIT09KGE9YXIoZSkpKXtmb3IodC5mbGFnc3w9MTI4LGlkKHIsITEpLHQudXBkYXRlUXVldWU9ZT1hLnVwZGF0ZVF1ZXVlLGljKHQsZSksdC5zdWJ0cmVlRmxhZ3M9MCxlPW4sbj10LmNoaWxkO251bGwhPT1uOylydyhuLGUpLG49bi5zaWJsaW5nO3JldHVybiBhdCh0LDEmYWUuY3VycmVudHwyKSxyJCYmckYodCxyLnRyZWVGb3JrQ291bnQpLHQuY2hpbGR9ZT1lLnNpYmxpbmd9bnVsbCE9PXIudGFpbCYmZXYoKT51SCYmKHQuZmxhZ3N8PTEyOCxsPSEwLGlkKHIsITEpLHQubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighbClpZihudWxsIT09KGU9YXIoYSkpKXtpZih0LmZsYWdzfD0xMjgsbD0hMCx0LnVwZGF0ZVF1ZXVlPWU9ZS51cGRhdGVRdWV1ZSxpYyh0LGUpLGlkKHIsITApLG51bGw9PT1yLnRhaWwmJiJjb2xsYXBzZWQiIT09ci50YWlsTW9kZSYmInZpc2libGUiIT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhciQpcmV0dXJuIGlwKHQpLG51bGx9ZWxzZSAyKmV2KCktci5yZW5kZXJpbmdTdGFydFRpbWU+dUgmJjB4MjAwMDAwMDAhPT1uJiYodC5mbGFnc3w9MTI4LGw9ITAsaWQociwhMSksdC5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9dC5jaGlsZCx0LmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTp0LmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpe2U9ci50YWlsO2U6e2ZvcihuPWU7bnVsbCE9PW47KXtpZihudWxsIT09bi5hbHRlcm5hdGUpe249ITE7YnJlYWsgZX1uPW4uc2libGluZ31uPSEwfXJldHVybiByLnJlbmRlcmluZz1lLHIudGFpbD1lLnNpYmxpbmcsci5yZW5kZXJpbmdTdGFydFRpbWU9ZXYoKSxlLnNpYmxpbmc9bnVsbCxhPWFlLmN1cnJlbnQsYT1sPzEmYXwyOjEmYSwidmlzaWJsZSI9PT1yLnRhaWxNb2RlfHwiY29sbGFwc2VkIj09PXIudGFpbE1vZGV8fCFufHxyJD9hdCh0LGEpOihuPWEsWihsMyx0KSxaKGFlLG4pLG51bGw9PT1sNCYmKGw0PXQpKSxyJCYmckYodCxyLnRyZWVGb3JrQ291bnQpLGV9cmV0dXJuIGlwKHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBsNyh0KSxsMigpLHI9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKHQuZmxhZ3N8PTgxOTIpOnImJih0LmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJm4pJiYwPT0oMTI4JnQuZmxhZ3MpJiYoaXAodCksNiZ0LnN1YnRyZWVGbGFncyYmKHQuZmxhZ3N8PTgxOTIpKTppcCh0KSxudWxsIT09KG49dC51cGRhdGVRdWV1ZSkmJmljKHQsbi5yZXRyeVF1ZXVlKSxuPW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYobj1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09dC5tZW1vaXplZFN0YXRlJiZudWxsIT09dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09biYmKHQuZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZKKGx5KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG49bnVsbCxudWxsIT09ZSYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCkscjgobGkpLGlwKHQpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtjYXNlIDMwOnJldHVybiB0LmZsYWdzfD0weDIwMDAwMDAsaXAodCksbnVsbH10aHJvdyBFcnJvcih1KDE1Nix0LnRhZykpfSh0LmFsdGVybmF0ZSx0LHV6KTtpZihudWxsIT09bil7dXg9bjtyZXR1cm59aWYobnVsbCE9PSh0PXQuc2libGluZykpe3V4PXQ7cmV0dXJufXV4PXQ9ZX13aGlsZShudWxsIT09dCkwPT09dUwmJih1TD01KX1mdW5jdGlvbiBzbShlLHQpe2Rve3ZhciBuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHJVKHQpLHQudGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMzpyZXR1cm4gcjgobGkpLGVhKCksMCE9KDY1NTM2JihlPXQuZmxhZ3MpKSYmMD09KDEyOCZlKT8odC5mbGFncz0tNjU1MzcmZXwxMjgsdCk6bnVsbDtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBlaSh0KSxudWxsO2Nhc2UgMzE6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSl7aWYobDcodCksbnVsbD09PXQuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoMzQwKSk7ckooKX1yZXR1cm4gNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LHQpOm51bGw7Y2FzZSAxMzppZihsNyh0KSxudWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCl7aWYobnVsbD09PXQuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoMzQwKSk7ckooKX1yZXR1cm4gNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LHQpOm51bGw7Y2FzZSAxOTpyZXR1cm4gYW4odCksNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LG51bGwhPT0oZT10Lm1lbW9pemVkU3RhdGUpJiYoZS5yZW5kZXJpbmc9bnVsbCxlLnRhaWw9bnVsbCksdC5mbGFnc3w9NCx0KTpudWxsO2Nhc2UgNDpyZXR1cm4gZWEoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIHI4KHQudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGw3KHQpLGwyKCksbnVsbCE9PWUmJkoobHkpLDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMjQ6cmV0dXJuIHI4KGxpKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShlLmFsdGVybmF0ZSxlKTtpZihudWxsIT09bil7bi5mbGFncyY9MzI3NjcsdXg9bjtyZXR1cm59aWYobnVsbCE9PShuPWUucmV0dXJuKSYmKG4uZmxhZ3N8PTMyNzY4LG4uc3VidHJlZUZsYWdzPTAsbi5kZWxldGlvbnM9bnVsbCksIXQmJm51bGwhPT0oZT1lLnNpYmxpbmcpKXt1eD1lO3JldHVybn11eD1lPW59d2hpbGUobnVsbCE9PWUpdUw9Nix1eD1udWxsfWZ1bmN0aW9uIHNoKGUsdCxuLHIsbCxhLG8saSxzLGMsZil7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGw7ZG8gc1MoKTt3aGlsZSgwIT09dVcpaWYoMCE9KDYmdVMpKXRocm93IEVycm9yKHUoMzI3KSk7aWYobnVsbCE9PXQpe3ZhciBkO2lmKHQ9PT1lLmN1cnJlbnQpdGhyb3cgRXJyb3IodSgxNzcpKTtpZighZnVuY3Rpb24oZSx0LG4scixsLGEpe3ZhciBvPWUucGVuZGluZ0xhbmVzO2UucGVuZGluZ0xhbmVzPW4sZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wLGUuZXhwaXJlZExhbmVzJj1uLGUuZW50YW5nbGVkTGFuZXMmPW4sZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyY9bixlLnNoZWxsU3VzcGVuZENvdW50ZXI9MDt2YXIgaT1lLmVudGFuZ2xlbWVudHMsdT1lLmV4cGlyYXRpb25UaW1lcyxzPWUuaGlkZGVuVXBkYXRlcztmb3Iobj1vJn5uOzA8bjspe3ZhciBjPTMxLWVQKG4pLGY9MTw8YztpW2NdPTAsdVtjXT0tMTt2YXIgZD1zW2NdO2lmKG51bGwhPT1kKWZvcihzW2NdPW51bGwsYz0wO2M8ZC5sZW5ndGg7YysrKXt2YXIgcD1kW2NdO251bGwhPT1wJiYocC5sYW5lJj0tMHgyMDAwMDAwMSl9biY9fmZ9MCE9PXImJmVBKGUsciwwKSwwIT09YSYmMD09PWwmJjAhPT1lLnRhZyYmKGUuc3VzcGVuZGVkTGFuZXN8PWEmfihvJn50KSl9KGUsbixhPXQubGFuZXN8dC5jaGlsZExhbmVzfHJ1LG8saSxzKSxlPT09dUUmJih1eD11RT1udWxsLHVfPTApLHVLPXQsdXE9ZSx1WD1uLHVHPWEsdVk9bCx1Sj1yLHUwPW51bGwsKDB4MTNmZmZmMDAmbik9PT1uPyhkPWUudHJhbnNpdGlvblR5cGVzLGUudHJhbnNpdGlvblR5cGVzPW51bGwsdTE9ZCxyPTEwMjYyKToodTE9bnVsbCxyPTEwMjU2KSwwIT0odC5zdWJ0cmVlRmxhZ3Mmcil8fDAhPSh0LmZsYWdzJnIpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLGVwKGVrLGZ1bmN0aW9uKCl7cmV0dXJuIHNFKCksbnVsbH0pKTooZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCksaU89ITEscj0wIT0oMTM4NzgmdC5mbGFncyksMCE9KDEzODc4JnQuc3VidHJlZUZsYWdzKXx8cil7cj1XLlQsVy5UPW51bGwsbD1xLnAscS5wPTIsbz11Uyx1U3w9NDt0cnl7IWZ1bmN0aW9uKGUsdCxuKXtpZihlPWUuY29udGFpbmVySW5mbyxjbz1mXyxuSChlPW5WKGUpKSl7aWYoInNlbGVjdGlvblN0YXJ0ImluIGUpdmFyIHI9e3N0YXJ0OmUuc2VsZWN0aW9uU3RhcnQsZW5kOmUuc2VsZWN0aW9uRW5kfTtlbHNlIGU6e3ZhciBsPShyPShyPWUub3duZXJEb2N1bWVudCkmJnIuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uJiZyLmdldFNlbGVjdGlvbigpO2lmKGwmJjAhPT1sLnJhbmdlQ291bnQpe3I9bC5hbmNob3JOb2RlO3ZhciBhLG89bC5hbmNob3JPZmZzZXQsaT1sLmZvY3VzTm9kZTtsPWwuZm9jdXNPZmZzZXQ7dHJ5e3Iubm9kZVR5cGUsaS5ub2RlVHlwZX1jYXRjaChlKXtyPW51bGw7YnJlYWsgZX12YXIgdT0wLHM9LTEsYz0tMSxmPTAsZD0wLHA9ZSxtPW51bGw7dDpmb3IoOzspe2Zvcig7cCE9PXJ8fDAhPT1vJiYzIT09cC5ub2RlVHlwZXx8KHM9dStvKSxwIT09aXx8MCE9PWwmJjMhPT1wLm5vZGVUeXBlfHwoYz11K2wpLDM9PT1wLm5vZGVUeXBlJiYodSs9cC5ub2RlVmFsdWUubGVuZ3RoKSxudWxsIT09KGE9cC5maXJzdENoaWxkKTspbT1wLHA9YTtmb3IoOzspe2lmKHA9PT1lKWJyZWFrIHQ7aWYobT09PXImJisrZj09PW8mJihzPXUpLG09PT1pJiYrK2Q9PT1sJiYoYz11KSxudWxsIT09KGE9cC5uZXh0U2libGluZykpYnJlYWs7bT0ocD1tKS5wYXJlbnROb2RlfXA9YX1yPS0xPT09c3x8LTE9PT1jP251bGw6e3N0YXJ0OnMsZW5kOmN9fWVsc2Ugcj1udWxsfXI9cnx8e3N0YXJ0OjAsZW5kOjB9fWVsc2Ugcj1udWxsO2ZvcihjaT17Zm9jdXNlZEVsZW06ZSxzZWxlY3Rpb25SYW5nZTpyfSxmXz0hMSxuPSgweDEzZmZmZjAwJm4pPT09bixpRz10LHQ9bj85MjcwOjEwMjg7bnVsbCE9PWlHOyl7aWYoZT1pRyxuJiZudWxsIT09KHI9ZS5kZWxldGlvbnMpKWZvcihvPTA7bzxyLmxlbmd0aDtvKyspbiYmaUIocltvXSk7aWYobnVsbD09PWUuYWx0ZXJuYXRlJiYwIT0oMiZlLmZsYWdzKSluJiZpTChlKSxpMShuKTtlbHNle2lmKDIyPT09ZS50YWcpe2lmKHI9ZS5hbHRlcm5hdGUsbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSl7bnVsbCE9PXImJm51bGw9PT1yLm1lbW9pemVkU3RhdGUmJm4mJmlCKHIpLGkxKG4pO2NvbnRpbnVlfWVsc2UgaWYobnVsbCE9PXImJm51bGwhPT1yLm1lbW9pemVkU3RhdGUpe24mJmlMKGUpLGkxKG4pO2NvbnRpbnVlfX1yPWUuY2hpbGQsMCE9KGUuc3VidHJlZUZsYWdzJnQpJiZudWxsIT09cj8oci5yZXR1cm49ZSxpRz1yKToobiYmZnVuY3Rpb24gZSh0KXtmb3IodD10LmNoaWxkO251bGwhPT10Oyl7aWYoMzA9PT10LnRhZyl7dmFyIG49dC5tZW1vaXplZFByb3BzLHI9cm4obix0LnN0YXRlTm9kZSk7bj1ybChuLmRlZmF1bHQsbi51cGRhdGUpLHQuZmxhZ3MmPS01LCJub25lIiE9PW4mJmlEKHQscixuLHQubWVtb2l6ZWRTdGF0ZT1bXSwhMSl9ZWxzZSAwIT0oMHgyMDAwMDAwJnQuc3VidHJlZUZsYWdzKSYmZSh0KTt0PXQuc2libGluZ319KGUpLGkxKG4pKX19aXo9bnVsbH0oZSx0LG4pfWZpbmFsbHl7dVM9byxxLnA9bCxXLlQ9cn19dVc9MSwodD1pTyk/dVo9ZnVuY3Rpb24oZSx0LG4scixsLGEsbyxpLHUpe3ZhciBzPTk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50O3RyeXt2YXIgYz1zLnN0YXJ0Vmlld1RyYW5zaXRpb24oe3VwZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXMuZGVmYXVsdFZpZXcsbj10Lm5hdmlnYXRpb24mJnQubmF2aWdhdGlvbi50cmFuc2l0aW9uLG89cy5mb250cy5zdGF0dXM7cigpO3ZhciBpPVtdO2lmKCJsb2FkZWQiPT09byYmKHMuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCwibG9hZGluZyI9PT1zLmZvbnRzLnN0YXR1cyYmaS5wdXNoKHMuZm9udHMucmVhZHkpKSxvPWkubGVuZ3RoLG51bGwhPT1lKWZvcih2YXIgdT1lLnN1c3BlbnNleUltYWdlcyxjPTAsZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgZD11W2ZdO2lmKCFkLmNvbXBsZXRlKXt2YXIgcD1kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKDA8cC5ib3R0b20mJjA8cC5yaWdodCYmcC50b3A8dC5pbm5lckhlaWdodCYmcC5sZWZ0PHQuaW5uZXJXaWR0aCl7aWYoKGMrPWZ1KGQpKT5mYyl7aS5sZW5ndGg9bzticmVha31kPW5ldyBQcm9taXNlKGNQLmJpbmQoZCkpLGkucHVzaChkKX19fXJldHVybiAwPGkubGVuZ3RoPyh0PVByb21pc2UucmFjZShbUHJvbWlzZS5hbGwoaSksbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7cmV0dXJuIHNldFRpbWVvdXQoZSw1MDApfSldKS50aGVuKGwsbCksKG4/UHJvbWlzZS5hbGxTZXR0bGVkKFtuLmZpbmlzaGVkLHRdKTp0KS50aGVuKGEsYSkpOihsKCksbik/bi5maW5pc2hlZC50aGVuKGEsYSk6dm9pZCBhKCl9LHR5cGVzOm59KTtzLl9fcmVhY3RWaWV3VHJhbnNpdGlvbj1jO3ZhciBmPVtdO3JldHVybiBjLnJlYWR5LnRoZW4oZnVuY3Rpb24oKXtmb3IodmFyIGU9cy5kb2N1bWVudEVsZW1lbnQuZ2V0QW5pbWF0aW9ucyh7c3VidHJlZTohMH0pLHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG49ZVt0XSxyPW4uZWZmZWN0LGw9ci5wc2V1ZG9FbGVtZW50O2lmKG51bGwhPWwmJmwuc3RhcnRzV2l0aCgiOjp2aWV3LXRyYW5zaXRpb24iKSl7Zi5wdXNoKG4pLG49ci5nZXRLZXlmcmFtZXMoKTtmb3IodmFyIGE9bD12b2lkIDAsaT0hMCx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBjPW5bdV0sZD1jLndpZHRoO2lmKHZvaWQgMD09PWwpbD1kO2Vsc2UgaWYobCE9PWQpe2k9ITE7YnJlYWt9aWYoZD1jLmhlaWdodCx2b2lkIDA9PT1hKWE9ZDtlbHNlIGlmKGEhPT1kKXtpPSExO2JyZWFrfWRlbGV0ZSBjLndpZHRoLGRlbGV0ZSBjLmhlaWdodCwibm9uZSI9PT1jLnRyYW5zZm9ybSYmZGVsZXRlIGMudHJhbnNmb3JtfWkmJnZvaWQgMCE9PWwmJnZvaWQgMCE9PWEmJihyLnNldEtleWZyYW1lcyhuKSwoaT1nZXRDb21wdXRlZFN0eWxlKHIudGFyZ2V0LHIucHNldWRvRWxlbWVudCkpLndpZHRoIT09bHx8aS5oZWlnaHQhPT1hKSYmKChpPW5bMF0pLndpZHRoPWwsaS5oZWlnaHQ9YSwoaT1uW24ubGVuZ3RoLTFdKS53aWR0aD1sLGkuaGVpZ2h0PWEsci5zZXRLZXlmcmFtZXMobikpfX1vKCl9LGZ1bmN0aW9uKGUpe3MuX19yZWFjdFZpZXdUcmFuc2l0aW9uPT09YyYmKHMuX19yZWFjdFZpZXdUcmFuc2l0aW9uPW51bGwpO3RyeXsib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYiSW52YWxpZFN0YXRlRXJyb3IiPT09ZS5uYW1lJiYoIlZpZXcgdHJhbnNpdGlvbiB3YXMgc2tpcHBlZCBiZWNhdXNlIGRvY3VtZW50IHZpc2liaWxpdHkgc3RhdGUgaXMgaGlkZGVuLiI9PT1lLm1lc3NhZ2V8fCJTa2lwcGluZyB2aWV3IHRyYW5zaXRpb24gYmVjYXVzZSBkb2N1bWVudCB2aXNpYmlsaXR5IHN0YXRlIGhhcyBiZWNvbWUgaGlkZGVuLiI9PT1lLm1lc3NhZ2V8fCJTa2lwcGluZyB2aWV3IHRyYW5zaXRpb24gYmVjYXVzZSB2aWV3cG9ydCBzaXplIGNoYW5nZWQuIj09PWUubWVzc2FnZXx8IlRyYW5zaXRpb24gd2FzIGFib3J0ZWQgYmVjYXVzZSBvZiBpbnZhbGlkIHN0YXRlIj09PWUubWVzc2FnZSkmJihlPW51bGwpLG51bGwhPT1lJiZ1KGUpfWZpbmFsbHl7cigpLGwoKSxvKCl9fSksYy5maW5pc2hlZC5maW5hbGx5KGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxmLmxlbmd0aDtlKyspZltlXS5jYW5jZWwoKTtzLl9fcmVhY3RWaWV3VHJhbnNpdGlvbj09PWMmJihzLl9fcmVhY3RWaWV3VHJhbnNpdGlvbj1udWxsKSxpKCl9KSxjfWNhdGNoKGUpe3JldHVybiByKCksbCgpLG8oKSxudWxsfX0oZixlLmNvbnRhaW5lckluZm8sdTEsc3ksc2Isc3Ysc3csc0Usc2csbnVsbCxudWxsKTooc3koKSxzYigpLHN3KCkpfX1mdW5jdGlvbiBzZyhlKXswIT09dVcmJigwLHVxLm9uUmVjb3ZlcmFibGVFcnJvcikoZSx7Y29tcG9uZW50U3RhY2s6bnVsbH0pfWZ1bmN0aW9uIHN2KCl7Mz09PXVXJiYodVc9MCx1byh1Syx1cSksdVc9NCl9ZnVuY3Rpb24gc3koKXtpZigxPT09dVcpe3VXPTA7dmFyIGU9dXEsdD11SyxuPXVYLHI9MCE9KDEzODc4JnQuZmxhZ3MpO2lmKDAhPSgxMzg3OCZ0LnN1YnRyZWVGbGFncyl8fHIpe3I9Vy5ULFcuVD1udWxsO3ZhciBsPXEucDtxLnA9Mjt2YXIgYT11Uzt1U3w9NDt0cnl7aUo9aVo9ITEsdXIodCxlLG4pLG49Y2k7dmFyIG89blYoZS5jb250YWluZXJJbmZvKSxpPW4uZm9jdXNlZEVsZW0sdT1uLnNlbGVjdGlvblJhbmdlO2lmKG8hPT1pJiZpJiZpLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hIXQmJiEhbiYmKHQ9PT1ufHwoIXR8fDMhPT10Lm5vZGVUeXBlKSYmKG4mJjM9PT1uLm5vZGVUeXBlP2UodCxuLnBhcmVudE5vZGUpOiJjb250YWlucyJpbiB0P3QuY29udGFpbnMobik6ISF0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4pKSkpfShpLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGkpKXtpZihudWxsIT09dSYmbkgoaSkpe3ZhciBzPXUuc3RhcnQsYz11LmVuZDtpZih2b2lkIDA9PT1jJiYoYz1zKSwic2VsZWN0aW9uU3RhcnQiaW4gaSlpLnNlbGVjdGlvblN0YXJ0PXMsaS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oYyxpLnZhbHVlLmxlbmd0aCk7ZWxzZXt2YXIgZj1pLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LGQ9ZiYmZi5kZWZhdWx0Vmlld3x8d2luZG93O2lmKGQuZ2V0U2VsZWN0aW9uKXt2YXIgcD1kLmdldFNlbGVjdGlvbigpLG09aS50ZXh0Q29udGVudC5sZW5ndGgsaD1NYXRoLm1pbih1LnN0YXJ0LG0pLGc9dm9pZCAwPT09dS5lbmQ/aDpNYXRoLm1pbih1LmVuZCxtKTshcC5leHRlbmQmJmg+ZyYmKG89ZyxnPWgsaD1vKTt2YXIgdj1uQihpLGgpLHk9bkIoaSxnKTtpZih2JiZ5JiYoMSE9PXAucmFuZ2VDb3VudHx8cC5hbmNob3JOb2RlIT09di5ub2RlfHxwLmFuY2hvck9mZnNldCE9PXYub2Zmc2V0fHxwLmZvY3VzTm9kZSE9PXkubm9kZXx8cC5mb2N1c09mZnNldCE9PXkub2Zmc2V0KSl7dmFyIGI9Zi5jcmVhdGVSYW5nZSgpO2Iuc2V0U3RhcnQodi5ub2RlLHYub2Zmc2V0KSxwLnJlbW92ZUFsbFJhbmdlcygpLGg+Zz8ocC5hZGRSYW5nZShiKSxwLmV4dGVuZCh5Lm5vZGUseS5vZmZzZXQpKTooYi5zZXRFbmQoeS5ub2RlLHkub2Zmc2V0KSxwLmFkZFJhbmdlKGIpKX19fX1mb3IoZj1bXSxwPWk7cD1wLnBhcmVudE5vZGU7KTE9PT1wLm5vZGVUeXBlJiZmLnB1c2goe2VsZW1lbnQ6cCxsZWZ0OnAuc2Nyb2xsTGVmdCx0b3A6cC5zY3JvbGxUb3B9KTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGkuZm9jdXMmJmkuZm9jdXMoKSxpPTA7aTxmLmxlbmd0aDtpKyspe3ZhciB3PWZbaV07dy5lbGVtZW50LnNjcm9sbExlZnQ9dy5sZWZ0LHcuZWxlbWVudC5zY3JvbGxUb3A9dy50b3B9fWZfPSEhY28sY2k9Y289bnVsbH1maW5hbGx5e3VTPWEscS5wPWwsVy5UPXJ9fWUuY3VycmVudD10LHVXPTJ9fWZ1bmN0aW9uIHNiKCl7aWYoMj09PXVXKXt1Vz0wO3ZhciBlPXVxLHQ9dUssbj0wIT0oODc3MiZ0LmZsYWdzKTtpZigwIT0oODc3MiZ0LnN1YnRyZWVGbGFncyl8fG4pe249Vy5ULFcuVD1udWxsO3ZhciByPXEucDtxLnA9Mjt2YXIgbD11Uzt1U3w9NDt0cnl7aTIoZSx0LmFsdGVybmF0ZSx0KX1maW5hbGx5e3VTPWwscS5wPXIsVy5UPW59fXVXPTN9fWZ1bmN0aW9uIHN3KCl7aWYoND09PXVXfHwzPT09dVcpe3VXPTAsdVo9bnVsbCxlZygpO3ZhciBlPXVxLHQ9dUssbj11WCxyPXVKLGw9KDB4MTNmZmZmMDAmbik9PT1uPzEwMjYyOjEwMjU2O2lmKDAhPSh0LnN1YnRyZWVGbGFncyZsKXx8MCE9KHQuZmxhZ3MmbCk/dVc9NToodVc9MCx1Sz11cT1udWxsLHNrKGUsZS5wZW5kaW5nTGFuZXMpKSwwPT09KGw9ZS5wZW5kaW5nTGFuZXMpJiYodVE9bnVsbCksZVYobiksdD10LnN0YXRlTm9kZSxlXyYmImZ1bmN0aW9uIj09dHlwZW9mIGVfLm9uQ29tbWl0RmliZXJSb290KXRyeXtlXy5vbkNvbW1pdEZpYmVyUm9vdChleCx0LHZvaWQgMCwxMjg9PSgxMjgmdC5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXt0PVcuVCxsPXEucCxxLnA9MixXLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGk9cltvXTthKGkudmFsdWUse2NvbXBvbmVudFN0YWNrOmkuc3RhY2t9KX19ZmluYWxseXtXLlQ9dCxxLnA9bH19aWYocj11MCxhPXUxLHUxPW51bGwsbnVsbCE9PXIpZm9yKHUwPW51bGwsbnVsbD09PWEmJihhPVtdKSxpPTA7aTxyLmxlbmd0aDtpKyspKDAscltpXSkoYSk7MCE9KDMmdVgpJiZzUygpLHNGKGUpLGw9ZS5wZW5kaW5nTGFuZXMsMCE9KDI2MTkzMCZuKSYmMCE9KDQyJmwpP2U9PT11Mz91MisrOih1Mj0wLHUzPWUpOnUyPTAsc0EoMCwhMSl9fWZ1bmN0aW9uIHNrKGUsdCl7MD09KGUucG9vbGVkQ2FjaGVMYW5lcyY9dCkmJm51bGwhPSh0PWUucG9vbGVkQ2FjaGUpJiYoZS5wb29sZWRDYWNoZT1udWxsLGxzKHQpKX1mdW5jdGlvbiBzUygpe3JldHVybiBudWxsIT09dVomJih1Wi5za2lwVHJhbnNpdGlvbigpLHVaPW51bGwpLHN5KCksc2IoKSxzdygpLHNFKCl9ZnVuY3Rpb24gc0UoKXtpZig1IT09dVcpcmV0dXJuITE7dmFyIGU9dXEsdD11Rzt1Rz0wO3ZhciBuPWVWKHVYKSxyPVcuVCxsPXEucDt0cnl7cS5wPTMyPm4/MzI6bixXLlQ9bnVsbCxuPXVZLHVZPW51bGw7dmFyIGE9dXEsbz11WDtpZih1Vz0wLHVLPXVxPW51bGwsdVg9MCwwIT0oNiZ1UykpdGhyb3cgRXJyb3IodSgzMzEpKTt2YXIgaT11UztpZih1U3w9NCx1eShhLmN1cnJlbnQpLHVmKGEsYS5jdXJyZW50LG8sbiksdVM9aSxzQSgwLCExKSxlXyYmImZ1bmN0aW9uIj09dHlwZW9mIGVfLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZV8ub25Qb3N0Q29tbWl0RmliZXJSb290KGV4LGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e3EucD1sLFcuVD1yLHNrKGUsdCl9fWZ1bmN0aW9uIHN4KGUsdCxuKXt0PXJOKG4sdCksdD1vRChlLnN0YXRlTm9kZSx0LDIpLG51bGwhPT0oZT1sJChlLHQsMikpJiYoZUYoZSwyKSxzRihlKSl9ZnVuY3Rpb24gc18oZSx0LG4pe2lmKDM9PT1lLnRhZylzeChlLGUsbik7ZWxzZSBmb3IoO251bGwhPT10Oyl7aWYoMz09PXQudGFnKXtzeCh0LGUsbik7YnJlYWt9aWYoMT09PXQudGFnKXt2YXIgcj10LnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dVF8fCF1US5oYXMocikpKXtlPXJOKG4sZSksbnVsbCE9PShyPWwkKHQsbj1vRigyKSwyKSkmJihvQShuLHIsdCxlKSxlRihyLDIpLHNGKHIpKTticmVha319dD10LnJldHVybn19ZnVuY3Rpb24gc1AoZSx0LG4pe3ZhciByPWUucGluZ0NhY2hlO2lmKG51bGw9PT1yKXtyPWUucGluZ0NhY2hlPW5ldyB1azt2YXIgbD1uZXcgU2V0O3Iuc2V0KHQsbCl9ZWxzZSB2b2lkIDA9PT0obD1yLmdldCh0KSkmJihsPW5ldyBTZXQsci5zZXQodCxsKSk7bC5oYXMobil8fCh1Tz0hMCxsLmFkZChuKSxlPXNOLmJpbmQobnVsbCxlLHQsbiksdC50aGVuKGUsZSkpfWZ1bmN0aW9uIHNOKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUodCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZuLGUud2FybUxhbmVzJj1+bix1RT09PWUmJih1XyZuKT09PW4mJig0PT09dUx8fDM9PT11TCYmKDB4M2MwMDAwMCZ1Xyk9PT11XyYmMzAwPmV2KCktdUI/MD09KDImdVMpJiZzcihlLDApOnVJfD1uLHVGPT09dV8mJih1Rj0wKSksc0YoZSl9ZnVuY3Rpb24gc0MoZSx0KXswPT09dCYmKHQ9ZUkoKSksbnVsbCE9PShlPXJkKGUsdCkpJiYoZUYoZSx0KSxzRihlKSl9ZnVuY3Rpb24gc1QoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlLG49MDtudWxsIT09dCYmKG49dC5yZXRyeUxhbmUpLHNDKGUsbil9ZnVuY3Rpb24gc08oZSx0KXt2YXIgbj0wO3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnZhciByPWUuc3RhdGVOb2RlLGw9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1sJiYobj1sLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpyPWUuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMjI6cj1lLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoMzE0KSl9bnVsbCE9PXImJnIuZGVsZXRlKHQpLHNDKGUsbil9dmFyIHN6PW51bGwsc0w9bnVsbCxzUj0hMSxzTT0hMSxzST0hMSxzRD0wO2Z1bmN0aW9uIHNGKGUpe2UhPT1zTCYmbnVsbD09PWUubmV4dCYmKG51bGw9PT1zTD9zej1zTD1lOnNMPXNMLm5leHQ9ZSksc009ITAsc1J8fChzUj0hMCxjZyhmdW5jdGlvbigpezAhPSg2JnVTKT9lcChlYixzaik6c1UoKX0pKX1mdW5jdGlvbiBzQShlLHQpe2lmKCFzSSYmc00pe3NJPSEwO2RvIGZvcih2YXIgbj0hMSxyPXN6O251bGwhPT1yOyl7aWYoIXQpaWYoMCE9PWUpe3ZhciBsPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1sKXZhciBhPTA7ZWxzZXt2YXIgbz1yLnN1c3BlbmRlZExhbmVzLGk9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZVAoNDJ8ZSkrMSktMSYobCZ+KG8mfmkpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYobj0hMCxzSChyLGEpKX1lbHNlIGE9dV8sMD09KDMmKGE9ZVIocixyPT09dUU/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxlTShyLGEpfHwobj0hMCxzSChyLGEpKTtyPXIubmV4dH13aGlsZShuKXNJPSExfX1mdW5jdGlvbiBzaigpe3NVKCl9ZnVuY3Rpb24gc1UoKXtzTT1zUj0hMTt2YXIgZSx0PTA7MD09PXNEfHwoKGU9d2luZG93LmV2ZW50KSYmInBvcHN0YXRlIj09PWUudHlwZT9lPT09Y2R8fChjZD1lLDApOihjZD1udWxsLDEpKXx8KHQ9c0QpO2Zvcih2YXIgbj1ldigpLHI9bnVsbCxsPXN6O251bGwhPT1sOyl7dmFyIGE9bC5uZXh0LG89c0IobCxuKTswPT09bz8obC5uZXh0PW51bGwsbnVsbD09PXI/c3o9YTpyLm5leHQ9YSxudWxsPT09YSYmKHNMPXIpKToocj1sLCgwIT09dHx8MCE9KDMmbykpJiYoc009ITApKSxsPWF9MCE9PXVXJiY1IT09dVd8fHNBKHQsITEpLDAhPT1zRCYmKHNEPTApfWZ1bmN0aW9uIHNCKGUsdCl7Zm9yKHZhciBuPWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLGw9ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBvPTMxLWVQKGEpLGk9MTw8byx1PWxbb107LTE9PT11PygwPT0oaSZuKXx8MCE9KGkmcikpJiYobFtvXT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztkZWZhdWx0OnJldHVybiAtMX19KGksdCkpOnU8PXQmJihlLmV4cGlyZWRMYW5lc3w9aSksYSY9fml9aWYodD11RSxuPXVfLG49ZVIoZSxlPT09dD9uOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PW58fGU9PT10JiYoMj09PXVQfHw5PT09dVApfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVtKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmbil8fGVNKGUsbikpe2lmKCh0PW4mLW4pPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChudWxsIT09ciYmZW0ociksZVYobikpe2Nhc2UgMjpjYXNlIDg6bj1ldzticmVhaztjYXNlIDMyOmRlZmF1bHQ6bj1lazticmVhaztjYXNlIDB4MTAwMDAwMDA6bj1lRX1yZXR1cm4gbj1lcChuLHI9c1YuYmluZChudWxsLGUpKSxlLmNhbGxiYWNrUHJpb3JpdHk9dCxlLmNhbGxiYWNrTm9kZT1uLHR9cmV0dXJuIG51bGwhPT1yJiZudWxsIT09ciYmZW0ociksZS5jYWxsYmFja1ByaW9yaXR5PTIsZS5jYWxsYmFja05vZGU9bnVsbCwyfWZ1bmN0aW9uIHNWKGUsdCl7aWYoMCE9PXVXJiY1IT09dVcpcmV0dXJuIGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTAsbnVsbDt2YXIgbj1lLmNhbGxiYWNrTm9kZTtpZihzUygpJiZlLmNhbGxiYWNrTm9kZSE9PW4pcmV0dXJuIG51bGw7dmFyIHI9dV87cmV0dXJuIDA9PT0ocj1lUihlLGU9PT11RT9yOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpKT9udWxsOih1OShlLHIsdCksc0IoZSxldigpKSxudWxsIT1lLmNhbGxiYWNrTm9kZSYmZS5jYWxsYmFja05vZGU9PT1uP3NWLmJpbmQobnVsbCxlKTpudWxsKX1mdW5jdGlvbiBzSChlLHQpe2lmKHNTKCkpcmV0dXJuIG51bGw7dTkoZSx0LCEwKX1mdW5jdGlvbiBzJCgpe2lmKDA9PT1zRCl7dmFyIGU9bG07MD09PWUmJihlPWVULDA9PSgyNjE4ODgmKGVUPDw9MSkpJiYoZVQ9MjU2KSksc0Q9ZX1yZXR1cm4gc0R9ZnVuY3Rpb24gc1EoZSl7cmV0dXJuIG51bGw9PWV8fCJzeW1ib2wiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6dEMoIiIrZSl9ZnVuY3Rpb24gc1coZSx0KXt2YXIgbj10Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gbi5uYW1lPXQubmFtZSxuLnZhbHVlPXQudmFsdWUsZS5pZCYmbi5zZXRBdHRyaWJ1dGUoImZvcm0iLGUuaWQpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobix0KSxlPW5ldyBGb3JtRGF0YShlKSxuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZX1mb3IodmFyIHNxPTA7c3E8bjcubGVuZ3RoO3NxKyspe3ZhciBzSz1uN1tzcV07cmUoc0sudG9Mb3dlckNhc2UoKSwib24iKyhzS1swXS50b1VwcGVyQ2FzZSgpK3NLLnNsaWNlKDEpKSl9cmUobjEsIm9uQW5pbWF0aW9uRW5kIikscmUobjIsIm9uQW5pbWF0aW9uSXRlcmF0aW9uIikscmUobjMsIm9uQW5pbWF0aW9uU3RhcnQiKSxyZSgiZGJsY2xpY2siLCJvbkRvdWJsZUNsaWNrIikscmUoImZvY3VzaW4iLCJvbkZvY3VzIikscmUoImZvY3Vzb3V0Iiwib25CbHVyIikscmUobjQsIm9uVHJhbnNpdGlvblJ1biIpLHJlKG44LCJvblRyYW5zaXRpb25TdGFydCIpLHJlKG41LCJvblRyYW5zaXRpb25DYW5jZWwiKSxyZShuNiwib25UcmFuc2l0aW9uRW5kIiksZTcoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxlNygib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGU3KCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksZTcoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxlOSgib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksZTkoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxlOSgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSksZTkoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksZTkoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLGU5KCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBzWD0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksc0c9bmV3IFNldCgiYmVmb3JldG9nZ2xlIGNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHNjcm9sbGVuZCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KHNYKSk7ZnVuY3Rpb24gc1koZSx0KXt0PTAhPSg0JnQpO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dLGw9ci5ldmVudDtyPXIubGlzdGVuZXJzO2U6e3ZhciBhPXZvaWQgMDtpZih0KWZvcih2YXIgbz1yLmxlbmd0aC0xOzA8PW87by0tKXt2YXIgaT1yW29dLHU9aS5pbnN0YW5jZSxzPWkuY3VycmVudFRhcmdldDtpZihpPWkubGlzdGVuZXIsdSE9PWEmJmwuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9aSxsLmN1cnJlbnRUYXJnZXQ9czt0cnl7YShsKX1jYXRjaChlKXtyYShlKX1sLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXV9ZWxzZSBmb3Iobz0wO288ci5sZW5ndGg7bysrKXtpZih1PShpPXJbb10pLmluc3RhbmNlLHM9aS5jdXJyZW50VGFyZ2V0LGk9aS5saXN0ZW5lcix1IT09YSYmbC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7YT1pLGwuY3VycmVudFRhcmdldD1zO3RyeXthKGwpfWNhdGNoKGUpe3JhKGUpfWwuY3VycmVudFRhcmdldD1udWxsLGE9dX19fX1mdW5jdGlvbiBzSihlLHQpe3ZhciBuPXRbZVhdO3ZvaWQgMD09PW4mJihuPXRbZVhdPW5ldyBTZXQpO3ZhciByPWUrIl9fYnViYmxlIjtuLmhhcyhyKXx8KHMyKHQsZSwyLCExKSxuLmFkZChyKSl9ZnVuY3Rpb24gc1ooZSx0LG4pe3ZhciByPTA7dCYmKHJ8PTQpLHMyKG4sZSxyLHQpfXZhciBzMD0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzMShlKXtpZighZVtzMF0pe2VbczBdPSEwLGU1LmZvckVhY2goZnVuY3Rpb24odCl7InNlbGVjdGlvbmNoYW5nZSIhPT10JiYoc0cuaGFzKHQpfHxzWih0LCExLGUpLHNaKHQsITAsZSkpfSk7dmFyIHQ9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7bnVsbD09PXR8fHRbczBdfHwodFtzMF09ITAsc1ooInNlbGVjdGlvbmNoYW5nZSIsITEsdCkpfX1mdW5jdGlvbiBzMihlLHQsbixyKXtzd2l0Y2goZkwodCkpe2Nhc2UgMjp2YXIgbD1mUDticmVhaztjYXNlIDg6bD1mTjticmVhaztkZWZhdWx0Omw9ZkN9bj1sLmJpbmQobnVsbCx0LG4sZSksbD12b2lkIDAsdGomJigidG91Y2hzdGFydCI9PT10fHwidG91Y2htb3ZlIj09PXR8fCJ3aGVlbCI9PT10KSYmKGw9ITApLHI/dm9pZCAwIT09bD9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITApOnZvaWQgMCE9PWw/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMSl9ZnVuY3Rpb24gczMoZSx0LG4scixsKXt2YXIgYT1yO2lmKDA9PSgxJnQpJiYwPT0oMiZ0KSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgbz1yLnRhZztpZigzPT09b3x8ND09PW8pe3ZhciBpPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaT09PWwpYnJlYWs7aWYoND09PW8pZm9yKG89ci5yZXR1cm47bnVsbCE9PW87KXt2YXIgdT1vLnRhZztpZigoMz09PXV8fDQ9PT11KSYmby5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWwpcmV0dXJuO289by5yZXR1cm59Zm9yKDtudWxsIT09aTspe2lmKG51bGw9PT0obz1lMShpKSkpcmV0dXJuO2lmKDU9PT0odT1vLnRhZyl8fDY9PT11fHwyNj09PXV8fDI3PT09dSl7cj1hPW87Y29udGludWUgZX1pPWkucGFyZW50Tm9kZX19cj1yLnJldHVybn10RChmdW5jdGlvbigpe3ZhciByPWEsbD10eihuKSxvPVtdO2U6e3ZhciBpPW45LmdldChlKTtpZih2b2lkIDAhPT1pKXt2YXIgdT10MSxzPWU7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT10UShuKSlicmVhayBlO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6dT1ubzticmVhaztjYXNlImZvY3VzaW4iOnM9ImZvY3VzIix1PXQ2O2JyZWFrO2Nhc2UiZm9jdXNvdXQiOnM9ImJsdXIiLHU9dDY7YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6dT10NjticmVhaztjYXNlImNsaWNrIjppZigyPT09bi5idXR0b24pYnJlYWsgZTtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOnU9dDg7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6dT10NTticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0Ijp1PW51O2JyZWFrO2Nhc2UgbjE6Y2FzZSBuMjpjYXNlIG4zOnU9dDk7YnJlYWs7Y2FzZSBuNjp1PW5zO2JyZWFrO2Nhc2Uic2Nyb2xsIjpjYXNlInNjcm9sbGVuZCI6dT10MzticmVhaztjYXNlIndoZWVsIjp1PW5jO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOnU9dDc7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6dT1uaTticmVhaztjYXNlInRvZ2dsZSI6Y2FzZSJiZWZvcmV0b2dnbGUiOnU9bmZ9dmFyIGY9MCE9KDQmdCksZD0hZiYmKCJzY3JvbGwiPT09ZXx8InNjcm9sbGVuZCI9PT1lKSxwPWY/bnVsbCE9PWk/aSsiQ2FwdHVyZSI6bnVsbDppO2Y9W107Zm9yKHZhciBtLGg9cjtudWxsIT09aDspe3ZhciBnPWg7aWYobT1nLnN0YXRlTm9kZSw1IT09KGc9Zy50YWcpJiYyNiE9PWcmJjI3IT09Z3x8bnVsbD09PW18fG51bGw9PT1wfHxudWxsIT0oZz10RihoLHApKSYmZi5wdXNoKHM0KGgsZyxtKSksZClicmVhaztoPWgucmV0dXJufTA8Zi5sZW5ndGgmJihpPW5ldyB1KGkscyxudWxsLG4sbCksby5wdXNoKHtldmVudDppLGxpc3RlbmVyczpmfSkpfX1pZigwPT0oNyZ0KSl7dT0ibW91c2VvdmVyIj09PWV8fCJwb2ludGVyb3ZlciI9PT1lLGk9Im1vdXNlb3V0Ij09PWV8fCJwb2ludGVyb3V0Ij09PWUsISh1JiZuIT09dE8mJihzPW4ucmVsYXRlZFRhcmdldHx8bi5mcm9tRWxlbWVudCkmJihlMShzKXx8c1tlS10pKSYmKGl8fHUpJiYocz1sLndpbmRvdz09PWw/bDoodT1sLm93bmVyRG9jdW1lbnQpP3UuZGVmYXVsdFZpZXd8fHUucGFyZW50V2luZG93OndpbmRvdyxpPyh1PW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQsaT1yLG51bGwhPT0odT11P2UxKHUpOm51bGwpJiYoZD1jKHUpLGY9dS50YWcsdSE9PWR8fDUhPT1mJiYyNyE9PWYmJjYhPT1mKSYmKHU9bnVsbCkpOihpPW51bGwsdT1yKSxpIT09dSYmKGY9dDgsZz0ib25Nb3VzZUxlYXZlIixwPSJvbk1vdXNlRW50ZXIiLGg9Im1vdXNlIiwoInBvaW50ZXJvdXQiPT09ZXx8InBvaW50ZXJvdmVyIj09PWUpJiYoZj1uaSxnPSJvblBvaW50ZXJMZWF2ZSIscD0ib25Qb2ludGVyRW50ZXIiLGg9InBvaW50ZXIiKSxkPW51bGw9PWk/czplMyhpKSxtPW51bGw9PXU/czplMyh1KSwocz1uZXcgZihnLGgrImxlYXZlIixpLG4sbCkpLnRhcmdldD1kLHMucmVsYXRlZFRhcmdldD1tLGc9bnVsbCxlMShsKT09PXImJigoZj1uZXcgZihwLGgrImVudGVyIix1LG4sbCkpLnRhcmdldD1tLGYucmVsYXRlZFRhcmdldD1kLGc9ZiksZD1nLGY9aSYmdT9FKGksdSxzNSk6bnVsbCxudWxsIT09aSYmczYobyxzLGksZiwhMSksbnVsbCE9PXUmJm51bGwhPT1kJiZzNihvLGQsdSxmLCEwKSkpO2U6e2lmKCJzZWxlY3QiPT09KHU9KGk9cj9lMyhyKTp3aW5kb3cpLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHwiaW5wdXQiPT09dSYmImZpbGUiPT09aS50eXBlKXZhciB2LHk9bkM7ZWxzZSBpZihuUyhpKSlpZihuVCl5PW5GO2Vsc2V7eT1uSTt2YXIgYj1uTX1lbHNlKHU9aS5ub2RlTmFtZSkmJiJpbnB1dCI9PT11LnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09aS50eXBlfHwicmFkaW8iPT09aS50eXBlKT95PW5EOnImJnRfKHIuZWxlbWVudFR5cGUpJiYoeT1uQyk7aWYoeSYmKHk9eShlLHIpKSl7bkUobyx5LG4sbCk7YnJlYWsgZX1iJiZiKGUsaSxyKSwiZm9jdXNvdXQiPT09ZSYmciYmIm51bWJlciI9PT1pLnR5cGUmJm51bGwhPXIubWVtb2l6ZWRQcm9wcy52YWx1ZSYmdHYoaSwibnVtYmVyIixpLnZhbHVlKX1zd2l0Y2goYj1yP2UzKHIpOndpbmRvdyxlKXtjYXNlImZvY3VzaW4iOihuUyhiKXx8InRydWUiPT09Yi5jb250ZW50RWRpdGFibGUpJiYoblE9YixuVz1yLG5xPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOm5xPW5XPW5RPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOm5LPSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjpuSz0hMSxuWChvLG4sbCk7YnJlYWs7Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmlmKG4kKWJyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6blgobyxuLGwpfWlmKG5wKXQ6e3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnZhciB3PSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIHQ7Y2FzZSJjb21wb3NpdGlvbmVuZCI6dz0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgdDtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjp3PSJvbkNvbXBvc2l0aW9uVXBkYXRlIjticmVhayB0fXc9dm9pZCAwfWVsc2Ugbnc/bnkoZSxuKSYmKHc9Im9uQ29tcG9zaXRpb25FbmQiKToia2V5ZG93biI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJih3PSJvbkNvbXBvc2l0aW9uU3RhcnQiKTt3JiYobmcmJiJrbyIhPT1uLmxvY2FsZSYmKG53fHwib25Db21wb3NpdGlvblN0YXJ0IiE9PXc/Im9uQ29tcG9zaXRpb25FbmQiPT09dyYmbncmJih2PXQkKCkpOih0Vj0idmFsdWUiaW4odEI9bCk/dEIudmFsdWU6dEIudGV4dENvbnRlbnQsbnc9ITApKSwwPChiPXM4KHIsdykpLmxlbmd0aCYmKHc9bmV3IG5lKHcsZSxudWxsLG4sbCksby5wdXNoKHtldmVudDp3LGxpc3RlbmVyczpifSksdj93LmRhdGE9djpudWxsIT09KHY9bmIobikpJiYody5kYXRhPXYpKSksKHY9bmg/ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIG5iKHQpO2Nhc2Uia2V5cHJlc3MiOmlmKDMyIT09dC53aGljaClyZXR1cm4gbnVsbDtyZXR1cm4gbnY9ITAsIiAiO2Nhc2UidGV4dElucHV0IjpyZXR1cm4iICI9PT0oZT10LmRhdGEpJiZudj9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsbik6ZnVuY3Rpb24oZSx0KXtpZihudylyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09ZXx8IW5wJiZueShlLHQpPyhlPXQkKCksdEg9dFY9dEI9bnVsbCxudz0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEodC5jdHJsS2V5fHx0LmFsdEtleXx8dC5tZXRhS2V5KXx8dC5jdHJsS2V5JiZ0LmFsdEtleSl7aWYodC5jaGFyJiYxPHQuY2hhci5sZW5ndGgpcmV0dXJuIHQuY2hhcjtpZih0LndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHQud2hpY2gpfXJldHVybiBudWxsO2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBuZyYmImtvIiE9PXQubG9jYWxlP251bGw6dC5kYXRhfX0oZSxuKSkmJjA8KHc9czgociwib25CZWZvcmVJbnB1dCIpKS5sZW5ndGgmJihiPW5ldyBuZSgib25CZWZvcmVJbnB1dCIsImJlZm9yZWlucHV0IixudWxsLG4sbCksby5wdXNoKHtldmVudDpiLGxpc3RlbmVyczp3fSksYi5kYXRhPXYpO3ZhciBrPWU7aWYoInN1Ym1pdCI9PT1rJiZyJiZyLnN0YXRlTm9kZT09PWwpe3ZhciBTPXNRKChsW2VxXXx8bnVsbCkuYWN0aW9uKSx4PW4uc3VibWl0dGVyO3gmJm51bGwhPT0oaz0oaz14W2VxXXx8bnVsbCk/c1Eoay5mb3JtQWN0aW9uKTp4LmdldEF0dHJpYnV0ZSgiZm9ybUFjdGlvbiIpKSYmKFM9ayx4PW51bGwpO3ZhciBfPW5ldyB0MSgiYWN0aW9uIiwiYWN0aW9uIixudWxsLG4sbCk7by5wdXNoKHtldmVudDpfLGxpc3RlbmVyczpbe2luc3RhbmNlOm51bGwsbGlzdGVuZXI6ZnVuY3Rpb24oKXtpZihuLmRlZmF1bHRQcmV2ZW50ZWQpe2lmKDAhPT1zRCl7dmFyIGU9eD9zVyhsLHgpOm5ldyBGb3JtRGF0YShsKTtvdShyLHtwZW5kaW5nOiEwLGRhdGE6ZSxtZXRob2Q6bC5tZXRob2QsYWN0aW9uOlN9LG51bGwsZSl9fWVsc2UiZnVuY3Rpb24iPT10eXBlb2YgUyYmKF8ucHJldmVudERlZmF1bHQoKSxvdShyLHtwZW5kaW5nOiEwLGRhdGE6ZT14P3NXKGwseCk6bmV3IEZvcm1EYXRhKGwpLG1ldGhvZDpsLm1ldGhvZCxhY3Rpb246U30sUyxlKSl9LGN1cnJlbnRUYXJnZXQ6bH1dfSl9fXNZKG8sdCl9KX1mdW5jdGlvbiBzNChlLHQsbil7cmV0dXJue2luc3RhbmNlOmUsbGlzdGVuZXI6dCxjdXJyZW50VGFyZ2V0Om59fWZ1bmN0aW9uIHM4KGUsdCl7Zm9yKHZhciBuPXQrIkNhcHR1cmUiLHI9W107bnVsbCE9PWU7KXt2YXIgbD1lLGE9bC5zdGF0ZU5vZGU7aWYoNSE9PShsPWwudGFnKSYmMjYhPT1sJiYyNyE9PWx8fG51bGw9PT1hfHwobnVsbCE9KGw9dEYoZSxuKSkmJnIudW5zaGlmdChzNChlLGwsYSkpLG51bGwhPShsPXRGKGUsdCkpJiZyLnB1c2goczQoZSxsLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gczUoZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpcmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gczYoZSx0LG4scixsKXtmb3IodmFyIGE9dC5fcmVhY3ROYW1lLG89W107bnVsbCE9PW4mJm4hPT1yOyl7dmFyIGk9bix1PWkuYWx0ZXJuYXRlLHM9aS5zdGF0ZU5vZGU7aWYoaT1pLnRhZyxudWxsIT09dSYmdT09PXIpYnJlYWs7NSE9PWkmJjI2IT09aSYmMjchPT1pfHxudWxsPT09c3x8KHU9cyxsP251bGwhPShzPXRGKG4sYSkpJiZvLnVuc2hpZnQoczQobixzLHUpKTpsfHxudWxsIT0ocz10RihuLGEpKSYmby5wdXNoKHM0KG4scyx1KSkpLG49bi5yZXR1cm59MCE9PW8ubGVuZ3RoJiZlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOm99KX12YXIgczk9L1xyXG4/L2csczc9L1x1MDAwMHxcdUZGRkQvZztmdW5jdGlvbiBjZShlKXtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBlP2U6IiIrZSkucmVwbGFjZShzOSwiXG4iKS5yZXBsYWNlKHM3LCIiKX1mdW5jdGlvbiBjdChlLHQpe3JldHVybiB0PWNlKHQpLGNlKGUpPT09dH1mdW5jdGlvbiBjbihlLHQsbixyLGwsYSl7c3dpdGNoKG4pe2Nhc2UiY2hpbGRyZW4iOmlmKCJzdHJpbmciPT10eXBlb2YgcikiYm9keSI9PT10fHwidGV4dGFyZWEiPT09dCYmIiI9PT1yfHx0ayhlLHIpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiByJiYiYmlnaW50IiE9dHlwZW9mIHIpcmV0dXJuOyJib2R5IiE9PXQmJnRrKGUsIiIrcil9YnJlYWs7Y2FzZSJjbGFzc05hbWUiOnRvKGUsImNsYXNzIixyKTticmVhaztjYXNlInRhYkluZGV4Ijp0byhlLCJ0YWJpbmRleCIscik7YnJlYWs7Y2FzZSJkaXIiOmNhc2Uicm9sZSI6Y2FzZSJ2aWV3Qm94IjpjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6dG8oZSxuLHIpO2JyZWFrO2Nhc2Uic3R5bGUiOnR4KGUscixhKTtyZXR1cm47Y2FzZSJkYXRhIjppZigib2JqZWN0IiE9PXQpe3RvKGUsImRhdGEiLHIpO2JyZWFrfWNhc2Uic3JjIjpjYXNlImhyZWYiOmlmKCIiPT09ciYmKCJhIiE9PXR8fCJocmVmIiE9PW4pfHxudWxsPT1yfHwiZnVuY3Rpb24iPT10eXBlb2Ygcnx8InN5bWJvbCI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShuKTticmVha31yPXRDKCIiK3IpLGUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZSJhY3Rpb24iOmNhc2UiZm9ybUFjdGlvbiI6aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKG4sImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdBIFJlYWN0IGZvcm0gd2FzIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuIElmIHlvdSBjYWxsZWQgZm9ybS5zdWJtaXQoKSBtYW51YWxseSwgY29uc2lkZXIgdXNpbmcgZm9ybS5yZXF1ZXN0U3VibWl0KCkgaW5zdGVhZC4gSWYgeW91XFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKSIpO2JyZWFrfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoImZvcm1BY3Rpb24iPT09bj8oImlucHV0IiE9PXQmJmNuKGUsdCwibmFtZSIsbC5uYW1lLGwsbnVsbCksY24oZSx0LCJmb3JtRW5jVHlwZSIsbC5mb3JtRW5jVHlwZSxsLG51bGwpLGNuKGUsdCwiZm9ybU1ldGhvZCIsbC5mb3JtTWV0aG9kLGwsbnVsbCksY24oZSx0LCJmb3JtVGFyZ2V0IixsLmZvcm1UYXJnZXQsbCxudWxsKSk6KGNuKGUsdCwiZW5jVHlwZSIsbC5lbmNUeXBlLGwsbnVsbCksY24oZSx0LCJtZXRob2QiLGwubWV0aG9kLGwsbnVsbCksY24oZSx0LCJ0YXJnZXQiLGwudGFyZ2V0LGwsbnVsbCkpKSxudWxsPT1yfHwic3ltYm9sIj09dHlwZW9mIHJ8fCJib29sZWFuIj09dHlwZW9mIHIpe2UucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrfXI9dEMoIiIrciksZS5zZXRBdHRyaWJ1dGUobixyKTticmVhaztjYXNlIm9uQ2xpY2siOm51bGwhPXImJihlLm9uY2xpY2s9dFQpO3JldHVybjtjYXNlIm9uU2Nyb2xsIjpudWxsIT1yJiZzSigic2Nyb2xsIixlKTtyZXR1cm47Y2FzZSJvblNjcm9sbEVuZCI6bnVsbCE9ciYmc0ooInNjcm9sbGVuZCIsZSk7cmV0dXJuO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPXIpe2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8ISgiX19odG1sImluIHIpKXRocm93IEVycm9yKHUoNjEpKTtpZihudWxsIT0obj1yLl9faHRtbCkpe2lmKG51bGwhPWwuY2hpbGRyZW4pdGhyb3cgRXJyb3IodSg2MCkpO2UuaW5uZXJIVE1MPW59fWJyZWFrO2Nhc2UibXVsdGlwbGUiOmUubXVsdGlwbGU9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2YgcjticmVhaztjYXNlIm11dGVkIjplLm11dGVkPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByJiYic3ltYm9sIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOmNhc2Uic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjpjYXNlImRlZmF1bHRWYWx1ZSI6Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6Y2FzZSJpbm5lckhUTUwiOmNhc2UicmVmIjpjYXNlImF1dG9Gb2N1cyI6YnJlYWs7Y2FzZSJ4bGlua0hyZWYiOmlmKG51bGw9PXJ8fCJmdW5jdGlvbiI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByfHwic3ltYm9sIj09dHlwZW9mIHIpe2UucmVtb3ZlQXR0cmlidXRlKCJ4bGluazpocmVmIik7YnJlYWt9bj10QygiIityKSxlLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6aHJlZiIsbik7YnJlYWs7Y2FzZSJjb250ZW50RWRpdGFibGUiOmNhc2Uic3BlbGxDaGVjayI6Y2FzZSJkcmFnZ2FibGUiOmNhc2UidmFsdWUiOmNhc2UiYXV0b1JldmVyc2UiOmNhc2UiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCI6Y2FzZSJmb2N1c2FibGUiOmNhc2UicHJlc2VydmVBbHBoYSI6bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLCIiK3IpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiaW5lcnQiOmNhc2UiYWxsb3dGdWxsU2NyZWVuIjpjYXNlImFzeW5jIjpjYXNlImF1dG9QbGF5IjpjYXNlImNvbnRyb2xzIjpjYXNlImRlZmF1bHQiOmNhc2UiZGVmZXIiOmNhc2UiZGlzYWJsZWQiOmNhc2UiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiOmNhc2UiZGlzYWJsZVJlbW90ZVBsYXliYWNrIjpjYXNlImZvcm1Ob1ZhbGlkYXRlIjpjYXNlImhpZGRlbiI6Y2FzZSJsb29wIjpjYXNlIm5vTW9kdWxlIjpjYXNlIm5vVmFsaWRhdGUiOmNhc2Uib3BlbiI6Y2FzZSJwbGF5c0lubGluZSI6Y2FzZSJyZWFkT25seSI6Y2FzZSJyZXF1aXJlZCI6Y2FzZSJyZXZlcnNlZCI6Y2FzZSJzY29wZWQiOmNhc2Uic2VhbWxlc3MiOmNhc2UiaXRlbVNjb3BlIjpyJiYiZnVuY3Rpb24iIT10eXBlb2YgciYmInN5bWJvbCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sIiIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiY2FwdHVyZSI6Y2FzZSJkb3dubG9hZCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sIiIpOiExIT09ciYmbnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLHIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiY29scyI6Y2FzZSJyb3dzIjpjYXNlInNpemUiOmNhc2Uic3BhbiI6bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKG4scik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZSJyb3dTcGFuIjpjYXNlInN0YXJ0IjpudWxsPT1yfHwiZnVuY3Rpb24iPT10eXBlb2Ygcnx8InN5bWJvbCI9PXR5cGVvZiByfHxpc05hTihyKT9lLnJlbW92ZUF0dHJpYnV0ZShuKTplLnNldEF0dHJpYnV0ZShuLHIpO2JyZWFrO2Nhc2UicG9wb3ZlciI6c0ooImJlZm9yZXRvZ2dsZSIsZSksc0ooInRvZ2dsZSIsZSksdGEoZSwicG9wb3ZlciIscik7YnJlYWs7Y2FzZSJ4bGlua0FjdHVhdGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazphY3R1YXRlIixyKTticmVhaztjYXNlInhsaW5rQXJjcm9sZSI6dGkoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmFyY3JvbGUiLHIpO2JyZWFrO2Nhc2UieGxpbmtSb2xlIjp0aShlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6cm9sZSIscik7YnJlYWs7Y2FzZSJ4bGlua1Nob3ciOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazpzaG93IixyKTticmVhaztjYXNlInhsaW5rVGl0bGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0aXRsZSIscik7YnJlYWs7Y2FzZSJ4bGlua1R5cGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0eXBlIixyKTticmVhaztjYXNlInhtbEJhc2UiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpiYXNlIixyKTticmVhaztjYXNlInhtbExhbmciOnRpKGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIixyKTticmVhaztjYXNlInhtbFNwYWNlIjp0aShlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6c3BhY2UiLHIpO2JyZWFrO2Nhc2UiaXMiOnRhKGUsImlzIixyKTticmVhaztjYXNlImlubmVyVGV4dCI6Y2FzZSJ0ZXh0Q29udGVudCI6cmV0dXJuO2RlZmF1bHQ6aWYoMjxuLmxlbmd0aCYmKCJvIj09PW5bMF18fCJPIj09PW5bMF0pJiYoIm4iPT09blsxXXx8Ik4iPT09blsxXSkpcmV0dXJuO3RhKGUsbj10UC5nZXQobil8fG4scil9dHI9ITB9ZnVuY3Rpb24gY3IoZSx0LG4scixsLGEpe3N3aXRjaChuKXtjYXNlInN0eWxlIjp0eChlLHIsYSk7cmV0dXJuO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPXIpe2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8ISgiX19odG1sImluIHIpKXRocm93IEVycm9yKHUoNjEpKTtpZihudWxsIT0obj1yLl9faHRtbCkpe2lmKG51bGwhPWwuY2hpbGRyZW4pdGhyb3cgRXJyb3IodSg2MCkpO2UuaW5uZXJIVE1MPW59fWJyZWFrO2Nhc2UiY2hpbGRyZW4iOmlmKCJzdHJpbmciPT10eXBlb2Ygcil0ayhlLHIpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiByJiYiYmlnaW50IiE9dHlwZW9mIHIpcmV0dXJuO3RrKGUsIiIrcil9YnJlYWs7Y2FzZSJvblNjcm9sbCI6bnVsbCE9ciYmc0ooInNjcm9sbCIsZSk7cmV0dXJuO2Nhc2Uib25TY3JvbGxFbmQiOm51bGwhPXImJnNKKCJzY3JvbGxlbmQiLGUpO3JldHVybjtjYXNlIm9uQ2xpY2siOm51bGwhPXImJihlLm9uY2xpY2s9dFQpO3JldHVybjtjYXNlInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyI6Y2FzZSJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6Y2FzZSJpbm5lclRleHQiOmNhc2UidGV4dENvbnRlbnQiOnJldHVybjtkZWZhdWx0OmlmKCFlNi5oYXNPd25Qcm9wZXJ0eShuKSllOntpZigibyI9PT1uWzBdJiYibiI9PT1uWzFdJiYobD1uLmVuZHNXaXRoKCJDYXB0dXJlIiksdD1uLnNsaWNlKDIsbD9uLmxlbmd0aC03OnZvaWQgMCksImZ1bmN0aW9uIj09dHlwZW9mKGE9bnVsbCE9KGE9ZVtlcV18fG51bGwpP2Fbbl06bnVsbCkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGEsbCksImZ1bmN0aW9uIj09dHlwZW9mIHIpKXsiZnVuY3Rpb24iIT10eXBlb2YgYSYmbnVsbCE9PWEmJihuIGluIGU/ZVtuXT1udWxsOmUuaGFzQXR0cmlidXRlKG4pJiZlLnJlbW92ZUF0dHJpYnV0ZShuKSksZS5hZGRFdmVudExpc3RlbmVyKHQscixsKTticmVhayBlfXRyPSEwLG4gaW4gZT9lW25dPXI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sIiIpOnRhKGUsbixyKX1yZXR1cm59dHI9ITB9ZnVuY3Rpb24gY2woZSx0LG4pe3N3aXRjaCh0KXtjYXNlImRpdiI6Y2FzZSJzcGFuIjpjYXNlInN2ZyI6Y2FzZSJwYXRoIjpjYXNlImEiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlImxpIjpicmVhaztjYXNlImltZyI6c0ooImVycm9yIixlKSxzSigibG9hZCIsZSk7dmFyIHIsbD0hMSxhPSExO2ZvcihyIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIG89bltyXTtpZihudWxsIT1vKXN3aXRjaChyKXtjYXNlInNyYyI6bD0hMDticmVhaztjYXNlInNyY1NldCI6YT0hMDticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcih1KDEzNyx0KSk7ZGVmYXVsdDpjbihlLHQscixvLG4sbnVsbCl9fWEmJmNuKGUsdCwic3JjU2V0IixuLnNyY1NldCxuLG51bGwpLGwmJmNuKGUsdCwic3JjIixuLnNyYyxuLG51bGwpO3JldHVybjtjYXNlImlucHV0IjpzSigiaW52YWxpZCIsZSk7dmFyIGk9cj1vPWE9bnVsbCxzPW51bGwsYz1udWxsO2ZvcihsIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShsKSl7dmFyIGY9bltsXTtpZihudWxsIT1mKXN3aXRjaChsKXtjYXNlIm5hbWUiOmE9ZjticmVhaztjYXNlInR5cGUiOm89ZjticmVhaztjYXNlImNoZWNrZWQiOnM9ZjticmVhaztjYXNlImRlZmF1bHRDaGVja2VkIjpjPWY7YnJlYWs7Y2FzZSJ2YWx1ZSI6cj1mO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjppPWY7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYobnVsbCE9Zil0aHJvdyBFcnJvcih1KDEzNyx0KSk7YnJlYWs7ZGVmYXVsdDpjbihlLHQsbCxmLG4sbnVsbCl9fXRnKGUscixpLHMsYyxvLGEsITEpO3JldHVybjtjYXNlInNlbGVjdCI6Zm9yKGEgaW4gc0ooImludmFsaWQiLGUpLGw9bz1yPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT0oaT1uW2FdKSlzd2l0Y2goYSl7Y2FzZSJ2YWx1ZSI6cj1pO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpvPWk7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bD1pO2RlZmF1bHQ6Y24oZSx0LGEsaSxuLG51bGwpfXQ9cixuPW8sZS5tdWx0aXBsZT0hIWwsbnVsbCE9dD90eShlLCEhbCx0LCExKTpudWxsIT1uJiZ0eShlLCEhbCxuLCEwKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6Zm9yKG8gaW4gc0ooImludmFsaWQiLGUpLHI9YT1sPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KG8pJiZudWxsIT0oaT1uW29dKSlzd2l0Y2gobyl7Y2FzZSJ2YWx1ZSI6bD1pO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjphPWk7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6cj1pO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPWkpdGhyb3cgRXJyb3IodSg5MSkpO2JyZWFrO2RlZmF1bHQ6Y24oZSx0LG8saSxuLG51bGwpfXR3KGUsbCxhLHIpO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKHMgaW4gbiluLmhhc093blByb3BlcnR5KHMpJiZudWxsIT0obD1uW3NdKSYmKCJzZWxlY3RlZCI9PT1zP2Uuc2VsZWN0ZWQ9bCYmImZ1bmN0aW9uIiE9dHlwZW9mIGwmJiJzeW1ib2wiIT10eXBlb2YgbDpjbihlLHQscyxsLG4sbnVsbCkpO3JldHVybjtjYXNlImRpYWxvZyI6c0ooImJlZm9yZXRvZ2dsZSIsZSksc0ooInRvZ2dsZSIsZSksc0ooImNhbmNlbCIsZSksc0ooImNsb3NlIixlKTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOnNKKCJsb2FkIixlKTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3IobD0wO2w8c1gubGVuZ3RoO2wrKylzSihzWFtsXSxlKTticmVhaztjYXNlImltYWdlIjpzSigiZXJyb3IiLGUpLHNKKCJsb2FkIixlKTticmVhaztjYXNlImRldGFpbHMiOnNKKCJ0b2dnbGUiLGUpO2JyZWFrO2Nhc2UiZW1iZWQiOmNhc2Uic291cmNlIjpjYXNlImxpbmsiOnNKKCJlcnJvciIsZSksc0ooImxvYWQiLGUpO2Nhc2UiYXJlYSI6Y2FzZSJiYXNlIjpjYXNlImJyIjpjYXNlImNvbCI6Y2FzZSJociI6Y2FzZSJrZXlnZW4iOmNhc2UibWV0YSI6Y2FzZSJwYXJhbSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcihjIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShjKSYmbnVsbCE9KGw9bltjXSkpc3dpdGNoKGMpe2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKHUoMTM3LHQpKTtkZWZhdWx0OmNuKGUsdCxjLGwsbixudWxsKX1yZXR1cm47ZGVmYXVsdDppZih0Xyh0KSl7Zm9yKGYgaW4gbiluLmhhc093blByb3BlcnR5KGYpJiZ2b2lkIDAhPT0obD1uW2ZdKSYmY3IoZSx0LGYsbCxuLHZvaWQgMCk7cmV0dXJufX1mb3IoaSBpbiBuKW4uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPShsPW5baV0pJiZjbihlLHQsaSxsLG4sbnVsbCl9ZnVuY3Rpb24gY2EoZSl7c3dpdGNoKGUpe2Nhc2UiY3NzIjpjYXNlInNjcmlwdCI6Y2FzZSJmb250IjpjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJpbnB1dCI6Y2FzZSJsaW5rIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX12YXIgY289bnVsbCxjaT1udWxsO2Z1bmN0aW9uIGN1KGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjcyhlKXtzd2l0Y2goZSl7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6cmV0dXJuIDE7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBjYyhlLHQpe2lmKDA9PT1lKXN3aXRjaCh0KXtjYXNlInN2ZyI6cmV0dXJuIDE7Y2FzZSJtYXRoIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfXJldHVybiAxPT09ZSYmImZvcmVpZ25PYmplY3QiPT09dD8wOmV9ZnVuY3Rpb24gY2YoZSx0KXtyZXR1cm4idGV4dGFyZWEiPT09ZXx8Im5vc2NyaXB0Ij09PWV8fCJzdHJpbmciPT10eXBlb2YgdC5jaGlsZHJlbnx8Im51bWJlciI9PXR5cGVvZiB0LmNoaWxkcmVufHwiYmlnaW50Ij09dHlwZW9mIHQuY2hpbGRyZW58fCJvYmplY3QiPT10eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBjZD1udWxsLGNwPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNtPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxjaD0iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOnZvaWQgMCxjZz0iZnVuY3Rpb24iPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y2g/ZnVuY3Rpb24oZSl7cmV0dXJuIGNoLnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdil9OmNwO2Z1bmN0aW9uIGN2KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY3koZSl7cmV0dXJuImhlYWQiPT09ZX1mdW5jdGlvbiBjYihlLHQpe3ZhciBuPXQscj0wO2Rve3ZhciBsPW4ubmV4dFNpYmxpbmc7aWYoZS5yZW1vdmVDaGlsZChuKSxsJiY4PT09bC5ub2RlVHlwZSlpZigiLyQiPT09KG49bC5kYXRhKXx8Ii8mIj09PW4pe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKGwpLGZHKHQpO3JldHVybn1yLS19ZWxzZSBpZigiJCI9PT1ufHwiJD8iPT09bnx8IiR+Ij09PW58fCIkISI9PT1ufHwiJiI9PT1uKXIrKztlbHNlIGlmKCJodG1sIj09PW4pY0coZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZigiaGVhZCI9PT1uKXtjRyhuPWUub3duZXJEb2N1bWVudC5oZWFkKTtmb3IodmFyIGE9bi5maXJzdENoaWxkO2E7KXt2YXIgbz1hLm5leHRTaWJsaW5nLGk9YS5ub2RlTmFtZTthW2VaXXx8IlNDUklQVCI9PT1pfHwiU1RZTEUiPT09aXx8IkxJTksiPT09aSYmInN0eWxlc2hlZXQiPT09YS5yZWwudG9Mb3dlckNhc2UoKXx8bi5yZW1vdmVDaGlsZChhKSxhPW99fWVsc2UiYm9keSI9PT1uJiZjRyhlLm93bmVyRG9jdW1lbnQuYm9keSk7bj1sfXdoaWxlKG4pZkcodCl9ZnVuY3Rpb24gY3coZSx0KXt2YXIgbj1lO2U9MDtkb3t2YXIgcj1uLm5leHRTaWJsaW5nO2lmKDE9PT1uLm5vZGVUeXBlP3Q/KG4uX3N0YXNoZWREaXNwbGF5PW4uc3R5bGUuZGlzcGxheSxuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKToobi5zdHlsZS5kaXNwbGF5PW4uX3N0YXNoZWREaXNwbGF5fHwiIiwiIj09PW4uZ2V0QXR0cmlidXRlKCJzdHlsZSIpJiZuLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSk6Mz09PW4ubm9kZVR5cGUmJih0PyhuLl9zdGFzaGVkVGV4dD1uLm5vZGVWYWx1ZSxuLm5vZGVWYWx1ZT0iIik6bi5ub2RlVmFsdWU9bi5fc3Rhc2hlZFRleHR8fCIiKSxyJiY4PT09ci5ub2RlVHlwZSlpZigiLyQiPT09KG49ci5kYXRhKSlpZigwPT09ZSlicmVhaztlbHNlIGUtLTtlbHNlIiQiIT09biYmIiQ/IiE9PW4mJiIkfiIhPT1uJiYiJCEiIT09bnx8ZSsrO249cn13aGlsZShuKX1mdW5jdGlvbiBjayhlLHQsbil7aWYodD1DU1MuZXNjYXBlKHQpIT09dD8ici0iK2J0b2EodCkucmVwbGFjZSgvPS9nLCIiKTp0LGUuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lPXQsbnVsbCE9biYmKGUuc3R5bGUudmlld1RyYW5zaXRpb25DbGFzcz1uKSwiaW5saW5lIj09PShuPWdldENvbXB1dGVkU3R5bGUoZSkpLmRpc3BsYXkpe2lmKDE9PT0odD1lLmdldENsaWVudFJlY3RzKCkpLmxlbmd0aCl2YXIgcj0xO2Vsc2UgZm9yKHZhciBsPXI9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIGE9dFtsXTswPGEud2lkdGgmJjA8YS5oZWlnaHQmJnIrK30xPT09ciYmKChlPWUuc3R5bGUpLmRpc3BsYXk9MT09PXQubGVuZ3RoPyJpbmxpbmUtYmxvY2siOiJibG9jayIsZS5tYXJnaW5Ub3A9Ii0iK24ucGFkZGluZ1RvcCxlLm1hcmdpbkJvdHRvbT0iLSIrbi5wYWRkaW5nQm90dG9tKX19ZnVuY3Rpb24gY1MoZSx0KXtlPWUuc3R5bGU7dmFyIG49bnVsbCE9KHQ9dC5zdHlsZSk/dC5oYXNPd25Qcm9wZXJ0eSgidmlld1RyYW5zaXRpb25OYW1lIik/dC52aWV3VHJhbnNpdGlvbk5hbWU6dC5oYXNPd25Qcm9wZXJ0eSgidmlldy10cmFuc2l0aW9uLW5hbWUiKT90WyJ2aWV3LXRyYW5zaXRpb24tbmFtZSJdOm51bGw6bnVsbDtlLnZpZXdUcmFuc2l0aW9uTmFtZT1udWxsPT1ufHwiYm9vbGVhbiI9PXR5cGVvZiBuPyIiOigiIituKS50cmltKCksbj1udWxsIT10P3QuaGFzT3duUHJvcGVydHkoInZpZXdUcmFuc2l0aW9uQ2xhc3MiKT90LnZpZXdUcmFuc2l0aW9uQ2xhc3M6dC5oYXNPd25Qcm9wZXJ0eSgidmlldy10cmFuc2l0aW9uLWNsYXNzIik/dFsidmlldy10cmFuc2l0aW9uLWNsYXNzIl06bnVsbDpudWxsLGUudmlld1RyYW5zaXRpb25DbGFzcz1udWxsPT1ufHwiYm9vbGVhbiI9PXR5cGVvZiBuPyIiOigiIituKS50cmltKCksImlubGluZS1ibG9jayI9PT1lLmRpc3BsYXkmJihudWxsPT10P2UuZGlzcGxheT1lLm1hcmdpbj0iIjoobj10LmRpc3BsYXksZS5kaXNwbGF5PW51bGw9PW58fCJib29sZWFuIj09dHlwZW9mIG4/IiI6bixudWxsIT0obj10Lm1hcmdpbik/ZS5tYXJnaW49bjoobj10Lmhhc093blByb3BlcnR5KCJtYXJnaW5Ub3AiKT90Lm1hcmdpblRvcDp0WyJtYXJnaW4tdG9wIl0sZS5tYXJnaW5Ub3A9bnVsbD09bnx8ImJvb2xlYW4iPT10eXBlb2Ygbj8iIjpuLHQ9dC5oYXNPd25Qcm9wZXJ0eSgibWFyZ2luQm90dG9tIik/dC5tYXJnaW5Cb3R0b206dFsibWFyZ2luLWJvdHRvbSJdLGUubWFyZ2luQm90dG9tPW51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHQ/IiI6dCkpKX1mdW5jdGlvbiBjRShlLHQsbil7cmV0dXJuIG49bi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHtyZWN0OmUsYWJzOiJhYnNvbHV0ZSI9PT10LnBvc2l0aW9ufHwiZml4ZWQiPT09dC5wb3NpdGlvbixjbGlwOiJub25lIiE9PXQuY2xpcFBhdGh8fCJ2aXNpYmxlIiE9PXQub3ZlcmZsb3d8fCJub25lIiE9PXQuZmlsdGVyfHwibm9uZSIhPT10Lm1hc2t8fCJub25lIiE9PXQubWFza3x8IjBweCIhPT10LmJvcmRlclJhZGl1cyx2aWV3OjA8PWUuYm90dG9tJiYwPD1lLnJpZ2h0JiZlLnRvcDw9bi5pbm5lckhlaWdodCYmZS5sZWZ0PD1uLmlubmVyV2lkdGh9fWZ1bmN0aW9uIGN4KGUpe3JldHVybiBjRShlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGdldENvbXB1dGVkU3R5bGUoZSksZSl9ZnVuY3Rpb24gY18oZSl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gY0UodD1uZXcgRE9NUmVjdCh0LngrMmU0LHQueSsyZTQsdC53aWR0aCx0LmhlaWdodCksZ2V0Q29tcHV0ZWRTdHlsZShlKSxlKX1mdW5jdGlvbiBjUChlKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUpfWZ1bmN0aW9uIGNOKGUsdCl7dGhpcy5fc2NvcGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuX3NlbGVjdG9yPSI6OnZpZXctdHJhbnNpdGlvbi0iK2UrIigiK3QrIikifWZ1bmN0aW9uIGNDKGUpe3JldHVybntuYW1lOmUsZ3JvdXA6bmV3IGNOKCJncm91cCIsZSksaW1hZ2VQYWlyOm5ldyBjTigiaW1hZ2UtcGFpciIsZSksb2xkOm5ldyBjTigib2xkIixlKSxuZXc6bmV3IGNOKCJuZXciLGUpfX1mdW5jdGlvbiBjVChlKXt0aGlzLl9mcmFnbWVudEZpYmVyPWUsdGhpcy5fb2JzZXJ2ZXJzPXRoaXMuX2V2ZW50TGlzdGVuZXJzPW51bGx9ZnVuY3Rpb24gY08oZSx0LG4scil7cmV0dXJuIGcoZSkuYWRkRXZlbnRMaXN0ZW5lcih0LG4sciksITF9ZnVuY3Rpb24gY3ooZSx0LG4scil7cmV0dXJuIGcoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sciksITF9ZnVuY3Rpb24gY0woZSl7cmV0dXJuIG51bGw9PWU/IjAiOiJib29sZWFuIj09dHlwZW9mIGU/ImM9IisoZT8iMSI6IjAiKToiYz0iKyhlLmNhcHR1cmU/IjEiOiIwIikrIiZvPSIrKGUub25jZT8iMSI6IjAiKSsiJnA9IisoZS5wYXNzaXZlPyIxIjoiMCIpfWZ1bmN0aW9uIGNSKGUsdCxuLHIpe2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYT1lW2xdO2lmKGEudHlwZT09PXQmJmEubGlzdGVuZXI9PT1uJiZjTChhLm9wdGlvbnNPclVzZUNhcHR1cmUpPT09Y0wocikpcmV0dXJuIGx9cmV0dXJuIC0xfWZ1bmN0aW9uIGNNKGUsdCl7dmFyIG49ZT1nKGUpLHI9dDtmdW5jdGlvbiBsKCl7YT0hMH12YXIgYT0hMTt0cnl7bi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbCksKG4uZm9jdXN8fEhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cykuY2FsbChuLHIpfWZpbmFsbHl7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsbCl9cmV0dXJuIGF9ZnVuY3Rpb24gY0koZSx0KXtyZXR1cm4gdC5wdXNoKGUpLCExfWZ1bmN0aW9uIGNEKGUpe3JldHVybihlPWcoZSkpPT09ZS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihlLmJsdXIoKSwhMCl9ZnVuY3Rpb24gY0YoZSx0KXtyZXR1cm4gZT1nKGUpLHQub2JzZXJ2ZShlKSwhMX1mdW5jdGlvbiBjQShlLHQpe3JldHVybiBlPWcoZSksdC51bm9ic2VydmUoZSksITF9ZnVuY3Rpb24gY2ooZSx0KXtyZXR1cm4gZT1nKGUpLHQucHVzaC5hcHBseSh0LGUuZ2V0Q2xpZW50UmVjdHMoKSksITF9ZnVuY3Rpb24gY1UoZSx0KXt2YXIgbj10Ll9ldmVudExpc3RlbmVycztpZihudWxsIT09bilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtlLmFkZEV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXIsbC5vcHRpb25zT3JVc2VDYXB0dXJlKX1udWxsIT09dC5fb2JzZXJ2ZXJzJiZ0Ll9vYnNlcnZlcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0Lm9ic2VydmUoZSl9KX1mdW5jdGlvbiBjQihlKXt2YXIgdD1lLmZpcnN0Q2hpbGQ7Zm9yKHQmJjEwPT09dC5ub2RlVHlwZSYmKHQ9dC5uZXh0U2libGluZyk7dDspe3ZhciBuPXQ7c3dpdGNoKHQ9dC5uZXh0U2libGluZyxuLm5vZGVOYW1lKXtjYXNlIkhUTUwiOmNhc2UiSEVBRCI6Y2FzZSJCT0RZIjpjQihuKSxlMChuKTtjb250aW51ZTtjYXNlIlNDUklQVCI6Y2FzZSJTVFlMRSI6Y29udGludWU7Y2FzZSJMSU5LIjppZigic3R5bGVzaGVldCI9PT1uLnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIGNWKGUsdCl7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoKDEhPT1lLm5vZGVUeXBlfHwiSU5QVVQiIT09ZS5ub2RlTmFtZXx8ImhpZGRlbiIhPT1lLnR5cGUpJiYhdHx8bnVsbD09PShlPWNRKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX1mdW5jdGlvbiBjSChlKXtyZXR1cm4iJD8iPT09ZS5kYXRhfHwiJH4iPT09ZS5kYXRhfWZ1bmN0aW9uIGMkKGUpe3JldHVybiIkISI9PT1lLmRhdGF8fCIkPyI9PT1lLmRhdGEmJiJsb2FkaW5nIiE9PWUub3duZXJEb2N1bWVudC5yZWFkeVN0YXRlfWZ1bmN0aW9uIGNRKGUpe2Zvcig7bnVsbCE9ZTtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYoMT09PXR8fDM9PT10KWJyZWFrO2lmKDg9PT10KXtpZigiJCI9PT0odD1lLmRhdGEpfHwiJCEiPT09dHx8IiQ/Ij09PXR8fCIkfiI9PT10fHwiJiI9PT10fHwiRiEiPT09dHx8IkYiPT09dClicmVhaztpZigiLyQiPT09dHx8Ii8mIj09PXQpcmV0dXJuIG51bGx9fXJldHVybiBlfWNOLnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQ9Im51bWJlciI9PXR5cGVvZiB0P3tkdXJhdGlvbjp0fTp4KHt9LHQpKS5wc2V1ZG9FbGVtZW50PXRoaXMuX3NlbGVjdG9yLHRoaXMuX3Njb3BlLmFuaW1hdGUoZSx0KX0sY04ucHJvdG90eXBlLmdldEFuaW1hdGlvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5fc2NvcGUsdD10aGlzLl9zZWxlY3RvcixuPWUuZ2V0QW5pbWF0aW9ucyh7c3VidHJlZTohMH0pLHI9W10sbD0wO2w8bi5sZW5ndGg7bCsrKXt2YXIgYT1uW2xdLmVmZmVjdDtudWxsIT09YSYmYS50YXJnZXQ9PT1lJiZhLnBzZXVkb0VsZW1lbnQ9PT10JiZyLnB1c2gobltsXSl9cmV0dXJuIHJ9LGNOLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5fc2NvcGUsdGhpcy5fc2VsZWN0b3IpfSxjVC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQsbil7bnVsbD09PXRoaXMuX2V2ZW50TGlzdGVuZXJzJiYodGhpcy5fZXZlbnRMaXN0ZW5lcnM9W10pO3ZhciByPXRoaXMuX2V2ZW50TGlzdGVuZXJzOy0xPT09Y1IocixlLHQsbikmJihyLnB1c2goe3R5cGU6ZSxsaXN0ZW5lcjp0LG9wdGlvbnNPclVzZUNhcHR1cmU6bn0pLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjTyxlLHQsbikpLHRoaXMuX2V2ZW50TGlzdGVuZXJzPXJ9LGNULnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLl9ldmVudExpc3RlbmVycztudWxsIT1yJiYwPHIubGVuZ3RoJiYobSh0aGlzLl9mcmFnbWVudEZpYmVyLmNoaWxkLCExLGN6LGUsdCxuKSxlPWNSKHIsZSx0LG4pLG51bGwhPT10aGlzLl9ldmVudExpc3RlbmVycyYmdGhpcy5fZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGUsMSkpfSxjVC5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO2lmKG51bGw9PT10KXJldHVybiEwO3Q9Zyh0KTt2YXIgbj10aGlzLl9ldmVudExpc3RlbmVycztpZihudWxsIT09biYmMDxuLmxlbmd0aHx8IWUuYnViYmxlcyl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO2lmKG4pZm9yKHZhciBsPTA7bDxuLmxlbmd0aDtsKyspe3ZhciBhPW5bbF07ci5hZGRFdmVudExpc3RlbmVyKGEudHlwZSxhLmxpc3RlbmVyLGEub3B0aW9uc09yVXNlQ2FwdHVyZSl9aWYodC5hcHBlbmRDaGlsZChyKSxlPXIuZGlzcGF0Y2hFdmVudChlKSxuKWZvcihsPTA7bDxuLmxlbmd0aDtsKyspYT1uW2xdLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLnR5cGUsYS5saXN0ZW5lcixhLm9wdGlvbnNPclVzZUNhcHR1cmUpO3JldHVybiB0LnJlbW92ZUNoaWxkKHIpLGV9cmV0dXJuIHQuZGlzcGF0Y2hFdmVudChlKX0sY1QucHJvdG90eXBlLmZvY3VzPWZ1bmN0aW9uKGUpe20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMCxjTSxlLHZvaWQgMCx2b2lkIDApfSxjVC5wcm90b3R5cGUuZm9jdXNMYXN0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdO20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMCxjSSx0LHZvaWQgMCx2b2lkIDApO2Zvcih2YXIgbj10Lmxlbmd0aC0xOzA8PW4mJiFjTSh0W25dLGUpO24tLSk7fSxjVC5wcm90b3R5cGUuYmx1cj1mdW5jdGlvbigpe20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjRCx2b2lkIDAsdm9pZCAwLHZvaWQgMCl9LGNULnByb3RvdHlwZS5vYnNlcnZlVXNpbmc9ZnVuY3Rpb24oZSl7bnVsbD09PXRoaXMuX29ic2VydmVycyYmKHRoaXMuX29ic2VydmVycz1uZXcgU2V0KSx0aGlzLl9vYnNlcnZlcnMuYWRkKGUpLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjRixlLHZvaWQgMCx2b2lkIDApfSxjVC5wcm90b3R5cGUudW5vYnNlcnZlVXNpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fb2JzZXJ2ZXJzO251bGwhPT10JiZ0LmhhcyhlKSYmKHQuZGVsZXRlKGUpLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjQSxlLHZvaWQgMCx2b2lkIDApKX0sY1QucHJvdG90eXBlLmdldENsaWVudFJlY3RzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjaixlLHZvaWQgMCx2b2lkIDApLGV9LGNULnByb3RvdHlwZS5nZXRSb290Tm9kZT1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO3JldHVybiBudWxsPT09dD90aGlzOmcodCkuZ2V0Um9vdE5vZGUoZSl9LGNULnByb3RvdHlwZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO2lmKG51bGw9PT10KXJldHVybiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRDt2YXIgbj1bXTttKHRoaXMuX2ZyYWdtZW50RmliZXIuY2hpbGQsITEsY0ksbix2b2lkIDAsdm9pZCAwKTt2YXIgcj1nKHQpO2lmKDA9PT1uLmxlbmd0aCl7bj10aGlzLl9mcmFnbWVudEZpYmVyO3ZhciBsPXIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk7cmV0dXJuIHQ9bCxyPT09ZT90PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM6bCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSYmKG0obi5zaWJsaW5nLCExLGIpLG49dix2PW51bGwsdD1udWxsPT09bj9Ob2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzowPT09KGU9ZyhuKS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKSl8fGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc6Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcpLHR8Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQ310PWcoblswXSksbD1nKG5bbi5sZW5ndGgtMV0pO2Zvcih2YXIgYT1nKG5bMF0pLG89ITEsaT10aGlzLl9mcmFnbWVudEZpYmVyLnJldHVybjtudWxsIT09aSYmKDQ9PT1pLnRhZyYmKG89ITApLDMhPT1pLnRhZyYmNSE9PWkudGFnKTspaT1pLnJldHVybjtpZihudWxsPT0oYT1vP2EucGFyZW50RWxlbWVudDpyKSlyZXR1cm4gTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQ7cj1hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZLGE9YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihsKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSxvPXQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk7dmFyIHU9bC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKTtyZXR1cm4gaT1vJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZfHx1Jk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZLHU9ciYmYSYmbyZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyYmdSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORywodD1yJiZ0PT09ZXx8YSYmbD09PWV8fGl8fHU/Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk6KHJ8fHQhPT1lKSYmKGF8fGwhPT1lKT9vOk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEfHx0Jk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUN8fGZ1bmN0aW9uKGUsdCxuLHIsbCl7dmFyIGE9ZTEobCk7aWYoZSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSl7aWYobj0hIWEpZTp7Zm9yKDtudWxsIT09YTspe2lmKDc9PT1hLnRhZyYmKGE9PT10fHxhLmFsdGVybmF0ZT09PXQpKXtuPSEwO2JyZWFrIGV9YT1hLnJldHVybn1uPSExfXJldHVybiBufWlmKGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUyl7aWYobnVsbD09PWEpcmV0dXJuIGE9bC5vd25lckRvY3VtZW50LGw9PT1hfHxsPT09YS5ib2R5O2U6e2ZvcihhPXQsdD1oKHQpO251bGwhPT1hOyl7aWYoKDU9PT1hLnRhZ3x8Mz09PWEudGFnKSYmKGE9PT10fHxhLmFsdGVybmF0ZT09PXQpKXthPSEwO2JyZWFrIGV9YT1hLnJldHVybn1hPSExfXJldHVybiBhfXJldHVybiBlJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HPygodD0hIWEpJiYhKHQ9YT09PW4pJiYobnVsbD09PSh0PUUobixhLFMpKT90PSExOihtKHQsITAsdyxhLG4pLGE9dix2PW51bGwsdD1udWxsIT09YSkpLHQpOiEhKGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcpJiYoKHQ9ISFhKSYmISh0PWE9PT1yKSYmKG51bGw9PT0odD1FKHIsYSxTKSk/dD0hMToobSh0LCEwLGssYSxyKSxhPXYseT12PW51bGwsdD1udWxsIT09YSkpLHQpfSh0LHRoaXMuX2ZyYWdtZW50RmliZXIsblswXSxuW24ubGVuZ3RoLTFdLGUpP3Q6Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQ30sY1QucHJvdG90eXBlLnNjcm9sbEludG9WaWV3PWZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZSl0aHJvdyBFcnJvcih1KDU2NikpO3ZhciB0PVtdO20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjSSx0LHZvaWQgMCx2b2lkIDApO3ZhciBuPSExIT09ZTtpZigwPT09dC5sZW5ndGgpe3Q9dGhpcy5fZnJhZ21lbnRGaWJlcjt2YXIgcj1bbnVsbCxudWxsXSxsPWgodCk7bnVsbCE9PWwmJmZ1bmN0aW9uIGUodCxuLHIpe2Zvcih2YXIgbD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO251bGwhPT1yOyl7aWYocj09PW4paWYobD0hMCwhci5zaWJsaW5nKXJldHVybiEwO2Vsc2Ugcj1yLnNpYmxpbmc7aWYoNT09PXIudGFnKXtpZihsKXJldHVybiB0WzFdPXIsITA7dFswXT1yfWVsc2UgaWYoKDIyIT09ci50YWd8fG51bGw9PT1yLm1lbW9pemVkU3RhdGUpJiZlKHQsbixyLmNoaWxkLGwpKXJldHVybiEwO3I9ci5zaWJsaW5nfXJldHVybiExfShyLHQsbC5jaGlsZCksbnVsbCE9PShuPW4/clsxXXx8clswXXx8aCh0aGlzLl9mcmFnbWVudEZpYmVyKTpyWzBdfHxyWzFdKSYmZyhuKS5zY3JvbGxJbnRvVmlldyhlKX1lbHNlIGZvcihyPW4/dC5sZW5ndGgtMTowO3IhPT0obj8tMTp0Lmxlbmd0aCk7KWcodFtyXSkuc2Nyb2xsSW50b1ZpZXcoZSkscis9bj8tMToxfTt2YXIgY1c9bnVsbDtmdW5jdGlvbiBjcShlKXtlPWUubmV4dFNpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIi8kIj09PW58fCIvJiI9PT1uKXtpZigwPT09dClyZXR1cm4gY1EoZS5uZXh0U2libGluZyk7dC0tfWVsc2UiJCIhPT1uJiYiJCEiIT09biYmIiQ/IiE9PW4mJiIkfiIhPT1uJiYiJiIhPT1ufHx0Kyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNLKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIiQiPT09bnx8IiQhIj09PW58fCIkPyI9PT1ufHwiJH4iPT09bnx8IiYiPT09bil7aWYoMD09PXQpcmV0dXJuIGU7dC0tfWVsc2UiLyQiIT09biYmIi8mIiE9PW58fHQrK31lPWUucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNYKGUsdCxuKXtzd2l0Y2godD1jdShuKSxlKXtjYXNlImh0bWwiOmlmKCEoZT10LmRvY3VtZW50RWxlbWVudCkpdGhyb3cgRXJyb3IodSg0NTIpKTtyZXR1cm4gZTtjYXNlImhlYWQiOmlmKCEoZT10LmhlYWQpKXRocm93IEVycm9yKHUoNDUzKSk7cmV0dXJuIGU7Y2FzZSJib2R5IjppZighKGU9dC5ib2R5KSl0aHJvdyBFcnJvcih1KDQ1NCkpO3JldHVybiBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0NTEpKX19ZnVuY3Rpb24gY0coZSl7Zm9yKHZhciB0PWUuYXR0cmlidXRlczt0Lmxlbmd0aDspZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKHRbMF0pO2UwKGUpfXZhciBjWT1uZXcgTWFwLGNKPW5ldyBTZXQ7ZnVuY3Rpb24gY1ooZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0Um9vdE5vZGU/ZS5nZXRSb290Tm9kZSgpOjk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50fXZhciBjMD1xLmQ7cS5kPXtmOmZ1bmN0aW9uKCl7dmFyIGU9YzAuZigpLHQ9c3QoKTtyZXR1cm4gZXx8dH0scjpmdW5jdGlvbihlKXt2YXIgdD1lMihlKTtudWxsIT09dCYmNT09PXQudGFnJiYiZm9ybSI9PT10LnR5cGU/b2ModCk6YzAucihlKX0sRDpmdW5jdGlvbihlKXtjMC5EKGUpLGMyKCJkbnMtcHJlZmV0Y2giLGUsbnVsbCl9LEM6ZnVuY3Rpb24oZSx0KXtjMC5DKGUsdCksYzIoInByZWNvbm5lY3QiLGUsdCl9LEw6ZnVuY3Rpb24oZSx0LG4pe2lmKGMwLkwoZSx0LG4pLGMxJiZlJiZ0KXt2YXIgcj0nbGlua1tyZWw9InByZWxvYWQiXVthcz0iJyt0bSh0KSsnIl0nOyJpbWFnZSI9PT10JiZuJiZuLmltYWdlU3JjU2V0PyhyKz0nW2ltYWdlc3Jjc2V0PSInK3RtKG4uaW1hZ2VTcmNTZXQpKyciXScsInN0cmluZyI9PXR5cGVvZiBuLmltYWdlU2l6ZXMmJihyKz0nW2ltYWdlc2l6ZXM9IicrdG0obi5pbWFnZVNpemVzKSsnIl0nKSk6cis9J1tocmVmPSInK3RtKGUpKyciXSc7dmFyIGw9cjtzd2l0Y2godCl7Y2FzZSJzdHlsZSI6bD1jNChlKTticmVhaztjYXNlInNjcmlwdCI6bD1jNihlKX1jWS5oYXMobCl8fChlPXgoe3JlbDoicHJlbG9hZCIsaHJlZjoiaW1hZ2UiPT09dCYmbiYmbi5pbWFnZVNyY1NldD92b2lkIDA6ZSxhczp0fSxuKSxjWS5zZXQobCxlKSxudWxsIT09YzEucXVlcnlTZWxlY3RvcihyKXx8InN0eWxlIj09PXQmJmMxLnF1ZXJ5U2VsZWN0b3IoYzgobCkpfHwic2NyaXB0Ij09PXQmJmMxLnF1ZXJ5U2VsZWN0b3IoYzkobCkpfHwoY2wodD1jMS5jcmVhdGVFbGVtZW50KCJsaW5rIiksImxpbmsiLGUpLGU4KHQpLGMxLmhlYWQuYXBwZW5kQ2hpbGQodCkpKX19LG06ZnVuY3Rpb24oZSx0KXtpZihjMC5tKGUsdCksYzEmJmUpe3ZhciBuPXQmJiJzdHJpbmciPT10eXBlb2YgdC5hcz90LmFzOiJzY3JpcHQiLHI9J2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl1bYXM9IicrdG0obikrJyJdW2hyZWY9IicrdG0oZSkrJyJdJyxsPXI7c3dpdGNoKG4pe2Nhc2UiYXVkaW93b3JrbGV0IjpjYXNlInBhaW50d29ya2xldCI6Y2FzZSJzZXJ2aWNld29ya2VyIjpjYXNlInNoYXJlZHdvcmtlciI6Y2FzZSJ3b3JrZXIiOmNhc2Uic2NyaXB0IjpsPWM2KGUpfWlmKCFjWS5oYXMobCkmJihlPXgoe3JlbDoibW9kdWxlcHJlbG9hZCIsaHJlZjplfSx0KSxjWS5zZXQobCxlKSxudWxsPT09YzEucXVlcnlTZWxlY3RvcihyKSkpe3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYoYzEucXVlcnlTZWxlY3RvcihjOShsKSkpcmV0dXJufWNsKG49YzEuY3JlYXRlRWxlbWVudCgibGluayIpLCJsaW5rIixlKSxlOChuKSxjMS5oZWFkLmFwcGVuZENoaWxkKG4pfX19LFg6ZnVuY3Rpb24oZSx0KXtpZihjMC5YKGUsdCksYzEmJmUpe3ZhciBuPWU0KGMxKS5ob2lzdGFibGVTY3JpcHRzLHI9YzYoZSksbD1uLmdldChyKTtsfHwoKGw9YzEucXVlcnlTZWxlY3RvcihjOShyKSkpfHwoZT14KHtzcmM6ZSxhc3luYzohMH0sdCksKHQ9Y1kuZ2V0KHIpKSYmZm4oZSx0KSxlOChsPWMxLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKSxjbChsLCJsaW5rIixlKSxjMS5oZWFkLmFwcGVuZENoaWxkKGwpKSxsPXt0eXBlOiJzY3JpcHQiLGluc3RhbmNlOmwsY291bnQ6MSxzdGF0ZTpudWxsfSxuLnNldChyLGwpKX19LFM6ZnVuY3Rpb24oZSx0LG4pe2lmKGMwLlMoZSx0LG4pLGMxJiZlKXt2YXIgcj1lNChjMSkuaG9pc3RhYmxlU3R5bGVzLGw9YzQoZSk7dD10fHwiZGVmYXVsdCI7dmFyIGE9ci5nZXQobCk7aWYoIWEpe3ZhciBvPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZihhPWMxLnF1ZXJ5U2VsZWN0b3IoYzgobCkpKW8ubG9hZGluZz01O2Vsc2V7ZT14KHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6ZSwiZGF0YS1wcmVjZWRlbmNlIjp0fSxuKSwobj1jWS5nZXQobCkpJiZmdChlLG4pO3ZhciBpPWE9YzEuY3JlYXRlRWxlbWVudCgibGluayIpO2U4KGkpLGNsKGksImxpbmsiLGUpLGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe28ubG9hZGluZ3w9MX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7by5sb2FkaW5nfD0yfSksby5sb2FkaW5nfD00LGZlKGEsdCxjMSl9YT17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOm99LHIuc2V0KGwsYSl9fX0sTTpmdW5jdGlvbihlLHQpe2lmKGMwLk0oZSx0KSxjMSYmZSl7dmFyIG49ZTQoYzEpLmhvaXN0YWJsZVNjcmlwdHMscj1jNihlKSxsPW4uZ2V0KHIpO2x8fCgobD1jMS5xdWVyeVNlbGVjdG9yKGM5KHIpKSl8fChlPXgoe3NyYzplLGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LHQpLCh0PWNZLmdldChyKSkmJmZuKGUsdCksZTgobD1jMS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSksY2wobCwibGluayIsZSksYzEuaGVhZC5hcHBlbmRDaGlsZChsKSksbD17dHlwZToic2NyaXB0IixpbnN0YW5jZTpsLGNvdW50OjEsc3RhdGU6bnVsbH0sbi5zZXQocixsKSl9fX07dmFyIGMxPSJ1Ijx0eXBlb2YgZG9jdW1lbnQ/bnVsbDpkb2N1bWVudDtmdW5jdGlvbiBjMihlLHQsbil7aWYoYzEmJiJzdHJpbmciPT10eXBlb2YgdCYmdCl7dmFyIHI9dG0odCk7cj0nbGlua1tyZWw9IicrZSsnIl1baHJlZj0iJytyKyciXScsInN0cmluZyI9PXR5cGVvZiBuJiYocis9J1tjcm9zc29yaWdpbj0iJytuKyciXScpLGNKLmhhcyhyKXx8KGNKLmFkZChyKSxlPXtyZWw6ZSxjcm9zc09yaWdpbjpuLGhyZWY6dH0sbnVsbD09PWMxLnF1ZXJ5U2VsZWN0b3IocikmJihjbCh0PWMxLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwibGluayIsZSksZTgodCksYzEuaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBjMyhlLHQsbixyKXt2YXIgbD0obD1lbi5jdXJyZW50KT9jWihsKTpudWxsO2lmKCFsKXRocm93IEVycm9yKHUoNDQ2KSk7c3dpdGNoKGUpe2Nhc2UibWV0YSI6Y2FzZSJ0aXRsZSI6cmV0dXJuIG51bGw7Y2FzZSJzdHlsZSI6cmV0dXJuInN0cmluZyI9PXR5cGVvZiBuLnByZWNlZGVuY2UmJiJzdHJpbmciPT10eXBlb2Ygbi5ocmVmPyh0PWM0KG4uaHJlZiksKHI9KG49ZTQobCkuaG9pc3RhYmxlU3R5bGVzKS5nZXQodCkpfHwocj17dHlwZToic3R5bGUiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxuLnNldCh0LHIpKSxyKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2Nhc2UibGluayI6aWYoInN0eWxlc2hlZXQiPT09bi5yZWwmJiJzdHJpbmciPT10eXBlb2Ygbi5ocmVmJiYic3RyaW5nIj09dHlwZW9mIG4ucHJlY2VkZW5jZSl7ZT1jNChuLmhyZWYpO3ZhciBhLG8saSxzLGM9ZTQobCkuaG9pc3RhYmxlU3R5bGVzLGY9Yy5nZXQoZSk7aWYoZnx8KGw9bC5vd25lckRvY3VtZW50fHxsLGY9e3R5cGU6InN0eWxlc2hlZXQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTp7bG9hZGluZzowLHByZWxvYWQ6bnVsbH19LGMuc2V0KGUsZiksKGM9bC5xdWVyeVNlbGVjdG9yKGM4KGUpKSkmJiFjLl9wJiYoZi5pbnN0YW5jZT1jLGYuc3RhdGUubG9hZGluZz01KSxjWS5oYXMoZSl8fChuPXtyZWw6InByZWxvYWQiLGFzOiJzdHlsZSIsaHJlZjpuLmhyZWYsY3Jvc3NPcmlnaW46bi5jcm9zc09yaWdpbixpbnRlZ3JpdHk6bi5pbnRlZ3JpdHksbWVkaWE6bi5tZWRpYSxocmVmTGFuZzpuLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5Om4ucmVmZXJyZXJQb2xpY3l9LGNZLnNldChlLG4pLGN8fChhPWwsbz1lLGk9bixzPWYuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSJzdHlsZSJdWycrbysiXSIpP3MubG9hZGluZz0xOihzLnByZWxvYWQ9bz1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9MX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9Mn0pLGNsKG8sImxpbmsiLGkpLGU4KG8pLGEuaGVhZC5hcHBlbmRDaGlsZChvKSkpKSksdCYmbnVsbD09PXIpdGhyb3cgRXJyb3IodSg1MjgsIiIpKTtyZXR1cm4gZn1pZih0JiZudWxsIT09cil0aHJvdyBFcnJvcih1KDUyOSwiIikpO3JldHVybiBudWxsO2Nhc2Uic2NyaXB0IjpyZXR1cm4gdD1uLmFzeW5jLCJzdHJpbmciPT10eXBlb2Yobj1uLnNyYykmJnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYic3ltYm9sIiE9dHlwZW9mIHQ/KHQ9YzYobiksKHI9KG49ZTQobCkuaG9pc3RhYmxlU2NyaXB0cykuZ2V0KHQpKXx8KHI9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LG4uc2V0KHQscikpLHIpOnt0eXBlOiJ2b2lkIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcih1KDQ0NCxlKSl9fWZ1bmN0aW9uIGM0KGUpe3JldHVybidocmVmPSInK3RtKGUpKyciJ31mdW5jdGlvbiBjOChlKXtyZXR1cm4nbGlua1tyZWw9InN0eWxlc2hlZXQiXVsnK2UrIl0ifWZ1bmN0aW9uIGM1KGUpe3JldHVybiB4KHt9LGUseyJkYXRhLXByZWNlZGVuY2UiOmUucHJlY2VkZW5jZSxwcmVjZWRlbmNlOm51bGx9KX1mdW5jdGlvbiBjNihlKXtyZXR1cm4nW3NyYz0iJyt0bShlKSsnIl0nfWZ1bmN0aW9uIGM5KGUpe3JldHVybiJzY3JpcHRbYXN5bmNdIitlfWZ1bmN0aW9uIGM3KGUsdCxuKXtpZih0LmNvdW50KyssbnVsbD09PXQuaW5zdGFuY2Upc3dpdGNoKHQudHlwZSl7Y2FzZSJzdHlsZSI6dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWhyZWZ+PSInK3RtKG4uaHJlZikrJyJdJyk7aWYocilyZXR1cm4gdC5pbnN0YW5jZT1yLGU4KHIpLHI7dmFyIGw9eCh7fSxuLHsiZGF0YS1ocmVmIjpuLmhyZWYsImRhdGEtcHJlY2VkZW5jZSI6bi5wcmVjZWRlbmNlLGhyZWY6bnVsbCxwcmVjZWRlbmNlOm51bGx9KTtyZXR1cm4gZTgocj0oZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKSxjbChyLCJzdHlsZSIsbCksZmUocixuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1yO2Nhc2Uic3R5bGVzaGVldCI6bD1jNChuLmhyZWYpO3ZhciBhPWUucXVlcnlTZWxlY3RvcihjOChsKSk7aWYoYSlyZXR1cm4gdC5zdGF0ZS5sb2FkaW5nfD00LHQuaW5zdGFuY2U9YSxlOChhKSxhO3I9YzUobiksKGw9Y1kuZ2V0KGwpKSYmZnQocixsKSxlOChhPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSk7dmFyIG89YTtyZXR1cm4gby5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihlLHQpe28ub25sb2FkPWUsby5vbmVycm9yPXR9KSxjbChhLCJsaW5rIixyKSx0LnN0YXRlLmxvYWRpbmd8PTQsZmUoYSxuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1hO2Nhc2Uic2NyaXB0IjppZihhPWM2KG4uc3JjKSxsPWUucXVlcnlTZWxlY3RvcihjOShhKSkpcmV0dXJuIHQuaW5zdGFuY2U9bCxlOChsKSxsO3JldHVybiByPW4sKGw9Y1kuZ2V0KGEpKSYmZm4ocj14KHt9LG4pLGwpLGU4KGw9KGU9ZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSksY2wobCwibGluayIsciksZS5oZWFkLmFwcGVuZENoaWxkKGwpLHQuaW5zdGFuY2U9bDtjYXNlInZvaWQiOnJldHVybiBudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0NDMsdC50eXBlKSl9cmV0dXJuInN0eWxlc2hlZXQiPT09dC50eXBlJiYwPT0oNCZ0LnN0YXRlLmxvYWRpbmcpJiYocj10Lmluc3RhbmNlLHQuc3RhdGUubG9hZGluZ3w9NCxmZShyLG4ucHJlY2VkZW5jZSxlKSksdC5pbnN0YW5jZX1mdW5jdGlvbiBmZShlLHQsbil7Zm9yKHZhciByPW4ucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxsPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPWwsbz0wO288ci5sZW5ndGg7bysrKXt2YXIgaT1yW29dO2lmKGkuZGF0YXNldC5wcmVjZWRlbmNlPT09dClhPWk7ZWxzZSBpZihhIT09bClicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToodD05PT09bi5ub2RlVHlwZT9uLmhlYWQ6bikuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX1mdW5jdGlvbiBmdChlLHQpe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIGZuKGUsdCl7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIGZyPW51bGw7ZnVuY3Rpb24gZmwoZSx0LG4pe2lmKG51bGw9PT1mcil7dmFyIHI9bmV3IE1hcCxsPWZyPW5ldyBNYXA7bC5zZXQobixyKX1lbHNlKHI9KGw9ZnIpLmdldChuKSl8fChyPW5ldyBNYXAsbC5zZXQobixyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGE9bltsXTtpZighKGFbZVpdfHxhW2VXXXx8ImxpbmsiPT09ZSYmInN0eWxlc2hlZXQiPT09YS5nZXRBdHRyaWJ1dGUoInJlbCIpKSYmImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiE9PWEubmFtZXNwYWNlVVJJKXt2YXIgbz1hLmdldEF0dHJpYnV0ZSh0KXx8IiI7bz1lK287dmFyIGk9ci5nZXQobyk7aT9pLnB1c2goYSk6ci5zZXQobyxbYV0pfX1yZXR1cm4gcn1mdW5jdGlvbiBmYShlLHQsbil7KGU9ZS5vd25lckRvY3VtZW50fHxlKS5oZWFkLmluc2VydEJlZm9yZShuLCJ0aXRsZSI9PT10P2UucXVlcnlTZWxlY3RvcigiaGVhZCA+IHRpdGxlIik6bnVsbCl9ZnVuY3Rpb24gZm8oZSx0KXtyZXR1cm4iaW1nIj09PWUmJm51bGwhPXQuc3JjJiYiIiE9PXQuc3JjJiZudWxsPT10Lm9uTG9hZCYmImxhenkiIT09dC5sb2FkaW5nfWZ1bmN0aW9uIGZpKGUpe3JldHVybiJzdHlsZXNoZWV0IiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX1mdW5jdGlvbiBmdShlKXtyZXR1cm4oZS53aWR0aHx8MTAwKSooZS5oZWlnaHR8fDEwMCkqKCJudW1iZXIiPT10eXBlb2YgZGV2aWNlUGl4ZWxSYXRpbz9kZXZpY2VQaXhlbFJhdGlvOjEpKi4yNX1mdW5jdGlvbiBmcyhlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlY29kZSYmKGUuaW1nQ291bnQrKyx0LmNvbXBsZXRlfHwoZS5pbWdCeXRlcys9ZnUodCksZS5zdXNwZW5zZXlJbWFnZXMucHVzaCh0KSksZT1mcC5iaW5kKGUpLHQuZGVjb2RlKCkudGhlbihlLGUpKX12YXIgZmM9MDtmdW5jdGlvbiBmZihlKXtpZigwPT09ZS5jb3VudCYmKDA9PT1lLmltZ0NvdW50fHwhZS53YWl0aW5nRm9ySW1hZ2VzKSl7aWYoZS5zdHlsZXNoZWV0cylmaChlLGUuc3R5bGVzaGVldHMpO2Vsc2UgaWYoZS51bnN1c3BlbmQpe3ZhciB0PWUudW5zdXNwZW5kO2UudW5zdXNwZW5kPW51bGwsdCgpfX19ZnVuY3Rpb24gZmQoKXt0aGlzLmNvdW50LS0sZmYodGhpcyl9ZnVuY3Rpb24gZnAoKXt0aGlzLmltZ0NvdW50LS0sZmYodGhpcyl9dmFyIGZtPW51bGw7ZnVuY3Rpb24gZmgoZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGZtPW5ldyBNYXAsdC5mb3JFYWNoKGZnLGUpLGZtPW51bGwsZmQuY2FsbChlKSl9ZnVuY3Rpb24gZmcoZSx0KXtpZighKDQmdC5zdGF0ZS5sb2FkaW5nKSl7dmFyIG49Zm0uZ2V0KGUpO2lmKG4pdmFyIHI9bi5nZXQobnVsbCk7ZWxzZXtuPW5ldyBNYXAsZm0uc2V0KGUsbik7Zm9yKHZhciBsPWUucXVlcnlTZWxlY3RvckFsbCgibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iKSxhPTA7YTxsLmxlbmd0aDthKyspe3ZhciBvPWxbYV07KCJMSU5LIj09PW8ubm9kZU5hbWV8fCJub3QgYWxsIiE9PW8uZ2V0QXR0cmlidXRlKCJtZWRpYSIpKSYmKG4uc2V0KG8uZGF0YXNldC5wcmVjZWRlbmNlLG8pLHI9byl9ciYmbi5zZXQobnVsbCxyKX1vPShsPXQuaW5zdGFuY2UpLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIiksKGE9bi5nZXQobyl8fHIpPT09ciYmbi5zZXQobnVsbCxsKSxuLnNldChvLGwpLHRoaXMuY291bnQrKyxyPWZkLmJpbmQodGhpcyksbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixyKSxsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixyKSxhP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxhLm5leHRTaWJsaW5nKTooZT05PT09ZS5ub2RlVHlwZT9lLmhlYWQ6ZSkuaW5zZXJ0QmVmb3JlKGwsZS5maXJzdENoaWxkKSx0LnN0YXRlLmxvYWRpbmd8PTR9fXZhciBmdj17JCR0eXBlb2Y6TCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2N1cnJlbnRWYWx1ZTpLLF9jdXJyZW50VmFsdWUyOkssX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIGZ5KGUsdCxuLHIsbCxhLG8saSx1KXt0aGlzLnRhZz0xLHRoaXMuY29udGFpbmVySW5mbz1lLHRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLm5leHQ9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9dGhpcy5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5leHBpcmF0aW9uVGltZXM9ZUQoLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyPXRoaXMuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy53YXJtTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPWVEKDApLHRoaXMuaGlkZGVuVXBkYXRlcz1lRChudWxsKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9cix0aGlzLm9uVW5jYXVnaHRFcnJvcj1sLHRoaXMub25DYXVnaHRFcnJvcj1hLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPW8sdGhpcy5wb29sZWRDYWNoZT1udWxsLHRoaXMucG9vbGVkQ2FjaGVMYW5lcz0wLHRoaXMuZm9ybVN0YXRlPXUsdGhpcy50cmFuc2l0aW9uVHlwZXM9bnVsbCx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGZiKGUsdCxuLHIsbCxhLG8saSx1LHMsYyxmKXtyZXR1cm4gZT1uZXcgZnkoZSx0LG4sbyx1LHMsYyxmLGkpLHQ9MSwhMD09PWEmJih0fD0yNCksYT1ydigzLG51bGwsbnVsbCx0KSxlLmN1cnJlbnQ9YSxhLnN0YXRlTm9kZT1lLHQ9bHUoKSx0LnJlZkNvdW50KyssZS5wb29sZWRDYWNoZT10LHQucmVmQ291bnQrKyxhLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6bixjYWNoZTp0fSxsQihhKSxlfWZ1bmN0aW9uIGZ3KGUsdCxuLHIsbCxhKXtsPWw/cmg6cmgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bDpyLnBlbmRpbmdDb250ZXh0PWwsKHI9bEgodCkpLnBheWxvYWQ9e2VsZW1lbnQ6bn0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PShuPWwkKGUscix0KSkmJih1NihuLGUsdCksbFEobixlLHQpKX1mdW5jdGlvbiBmayhlLHQpe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgbj1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09biYmbjx0P246dH19ZnVuY3Rpb24gZlMoZSx0KXtmayhlLHQpLChlPWUuYWx0ZXJuYXRlKSYmZmsoZSx0KX1mdW5jdGlvbiBmRShlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgdD1yZChlLDB4NDAwMDAwMCk7bnVsbCE9PXQmJnU2KHQsZSwweDQwMDAwMDApLGZTKGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gZngoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIHQ9dTQoKSxuPXJkKGUsdD1lQih0KSk7bnVsbCE9PW4mJnU2KG4sZSx0KSxmUyhlLHQpfX12YXIgZl89ITA7ZnVuY3Rpb24gZlAoZSx0LG4scil7dmFyIGw9Vy5UO1cuVD1udWxsO3ZhciBhPXEucDt0cnl7cS5wPTIsZkMoZSx0LG4scil9ZmluYWxseXtxLnA9YSxXLlQ9bH19ZnVuY3Rpb24gZk4oZSx0LG4scil7dmFyIGw9Vy5UO1cuVD1udWxsO3ZhciBhPXEucDt0cnl7cS5wPTgsZkMoZSx0LG4scil9ZmluYWxseXtxLnA9YSxXLlQ9bH19ZnVuY3Rpb24gZkMoZSx0LG4scil7aWYoZl8pe3ZhciBsPWZUKHIpO2lmKG51bGw9PT1sKXMzKGUsdCxyLGZPLG4pLGZCKGUscik7ZWxzZSBpZihmdW5jdGlvbihlLHQsbixyLGwpe3N3aXRjaCh0KXtjYXNlImZvY3VzaW4iOnJldHVybiBmTT1mVihmTSxlLHQsbixyLGwpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gZkk9ZlYoZkksZSx0LG4scixsKSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIGZEPWZWKGZELGUsdCxuLHIsbCksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGE9bC5wb2ludGVySWQ7cmV0dXJuIGZGLnNldChhLGZWKGZGLmdldChhKXx8bnVsbCxlLHQsbixyLGwpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gYT1sLnBvaW50ZXJJZCxmQS5zZXQoYSxmVihmQS5nZXQoYSl8fG51bGwsZSx0LG4scixsKSksITB9cmV0dXJuITF9KGwsZSx0LG4scikpci5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKGZCKGUsciksNCZ0JiYtMTxmVS5pbmRleE9mKGUpKXtmb3IoO251bGwhPT1sOyl7dmFyIGE9ZTIobCk7aWYobnVsbCE9PWEpc3dpdGNoKGEudGFnKXtjYXNlIDM6aWYoKGE9YS5zdGF0ZU5vZGUpLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBvPWVMKGEucGVuZGluZ0xhbmVzKTtpZigwIT09byl7dmFyIGk9YTtmb3IoaS5wZW5kaW5nTGFuZXN8PTIsaS5lbnRhbmdsZWRMYW5lc3w9MjtvOyl7dmFyIHU9MTw8MzEtZVAobyk7aS5lbnRhbmdsZW1lbnRzWzFdfD11LG8mPX51fXNGKGEpLDA9PSg2JnVTKSYmKHVIPWV2KCkrNTAwLHNBKDAsITEpKX19YnJlYWs7Y2FzZSAzMTpjYXNlIDEzOm51bGwhPT0oaT1yZChhLDIpKSYmdTYoaSxhLDIpLHN0KCksZlMoYSwyKX1pZihudWxsPT09KGE9ZlQocikpJiZzMyhlLHQscixmTyxuKSxhPT09bClicmVhaztsPWF9bnVsbCE9PWwmJnIuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBzMyhlLHQscixudWxsLG4pfX1mdW5jdGlvbiBmVChlKXtyZXR1cm4gZnooZT10eihlKSl9dmFyIGZPPW51bGw7ZnVuY3Rpb24gZnooZSl7aWYoZk89bnVsbCxudWxsIT09KGU9ZTEoZSkpKXt2YXIgdD1jKGUpO2lmKG51bGw9PT10KWU9bnVsbDtlbHNle3ZhciBuPXQudGFnO2lmKDEzPT09bil7aWYobnVsbCE9PShlPWYodCkpKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDMxPT09bil7aWYobnVsbCE9PShlPWQodCkpKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDM9PT1uKXtpZih0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09dC50YWc/dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIHQhPT1lJiYoZT1udWxsKX19cmV0dXJuIGZPPWUsbnVsbH1mdW5jdGlvbiBmTChlKXtzd2l0Y2goZSl7Y2FzZSJiZWZvcmV0b2dnbGUiOmNhc2UiY2FuY2VsIjpjYXNlImNsaWNrIjpjYXNlImNsb3NlIjpjYXNlImNvbnRleHRtZW51IjpjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmNhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6Y2FzZSJpbnB1dCI6Y2FzZSJpbnZhbGlkIjpjYXNlImtleWRvd24iOmNhc2Uia2V5cHJlc3MiOmNhc2Uia2V5dXAiOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNldXAiOmNhc2UicGFzdGUiOmNhc2UicGF1c2UiOmNhc2UicGxheSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJyYXRlY2hhbmdlIjpjYXNlInJlc2V0IjpjYXNlInNlZWtlZCI6Y2FzZSJzdWJtaXQiOmNhc2UidG9nZ2xlIjpjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNoc3RhcnQiOmNhc2Uidm9sdW1lY2hhbmdlIjpjYXNlImNoYW5nZSI6Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmNhc2UidGV4dElucHV0IjpjYXNlImNvbXBvc2l0aW9uc3RhcnQiOmNhc2UiY29tcG9zaXRpb25lbmQiOmNhc2UiY29tcG9zaXRpb251cGRhdGUiOmNhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOmNhc2UiYmVmb3JlaW5wdXQiOmNhc2UiYmx1ciI6Y2FzZSJmdWxsc2NyZWVuY2hhbmdlIjpjYXNlImZvY3VzIjpjYXNlImhhc2hjaGFuZ2UiOmNhc2UicG9wc3RhdGUiOmNhc2Uic2VsZWN0IjpjYXNlInNlbGVjdHN0YXJ0IjpyZXR1cm4gMjtjYXNlImRyYWciOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicmVzaXplIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2Uid2hlZWwiOmNhc2UibW91c2VlbnRlciI6Y2FzZSJtb3VzZWxlYXZlIjpjYXNlInBvaW50ZXJlbnRlciI6Y2FzZSJwb2ludGVybGVhdmUiOnJldHVybiA4O2Nhc2UibWVzc2FnZSI6c3dpdGNoKGV5KCkpe2Nhc2UgZWI6cmV0dXJuIDI7Y2FzZSBldzpyZXR1cm4gODtjYXNlIGVrOmNhc2UgZVM6cmV0dXJuIDMyO2Nhc2UgZUU6cmV0dXJuIDB4MTAwMDAwMDA7ZGVmYXVsdDpyZXR1cm4gMzJ9ZGVmYXVsdDpyZXR1cm4gMzJ9fXZhciBmUj0hMSxmTT1udWxsLGZJPW51bGwsZkQ9bnVsbCxmRj1uZXcgTWFwLGZBPW5ldyBNYXAsZmo9W10sZlU9Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBmQihlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmZNPW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpmST1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0IjpmRD1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6ZkYuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6ZkEuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gZlYoZSx0LG4scixsLGEpe3JldHVybiBudWxsPT09ZXx8ZS5uYXRpdmVFdmVudCE9PWE/KGU9e2Jsb2NrZWRPbjp0LGRvbUV2ZW50TmFtZTpuLGV2ZW50U3lzdGVtRmxhZ3M6cixuYXRpdmVFdmVudDphLHRhcmdldENvbnRhaW5lcnM6W2xdfSxudWxsIT09dCYmbnVsbCE9PSh0PWUyKHQpKSYmZkUodCkpOihlLmV2ZW50U3lzdGVtRmxhZ3N8PXIsdD1lLnRhcmdldENvbnRhaW5lcnMsbnVsbCE9PWwmJi0xPT09dC5pbmRleE9mKGwpJiZ0LnB1c2gobCkpLGV9ZnVuY3Rpb24gZkgoZSl7dmFyIHQ9ZTEoZS50YXJnZXQpO2lmKG51bGwhPT10KXt2YXIgbj1jKHQpO2lmKG51bGwhPT1uKXtpZigxMz09PSh0PW4udGFnKSl7aWYobnVsbCE9PSh0PWYobikpKXtlLmJsb2NrZWRPbj10LGUkKGUucHJpb3JpdHksZnVuY3Rpb24oKXtmeChuKX0pO3JldHVybn19ZWxzZSBpZigzMT09PXQpe2lmKG51bGwhPT0odD1kKG4pKSl7ZS5ibG9ja2VkT249dCxlJChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7Zngobil9KTtyZXR1cm59fWVsc2UgaWYoMz09PXQmJm4uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2UuYmxvY2tlZE9uPTM9PT1uLnRhZz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBmJChlKXtpZihudWxsIT09ZS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIG49ZlQoZS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PW4pcmV0dXJuIG51bGwhPT0odD1lMihuKSkmJmZFKHQpLGUuYmxvY2tlZE9uPW4sITE7dmFyIHI9bmV3KG49ZS5uYXRpdmVFdmVudCkuY29uc3RydWN0b3Iobi50eXBlLG4pO3RPPXIsbi50YXJnZXQuZGlzcGF0Y2hFdmVudChyKSx0Tz1udWxsLHQuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBmUShlLHQsbil7ZiQoZSkmJm4uZGVsZXRlKHQpfWZ1bmN0aW9uIGZXKCl7ZlI9ITEsbnVsbCE9PWZNJiZmJChmTSkmJihmTT1udWxsKSxudWxsIT09ZkkmJmYkKGZJKSYmKGZJPW51bGwpLG51bGwhPT1mRCYmZiQoZkQpJiYoZkQ9bnVsbCksZkYuZm9yRWFjaChmUSksZkEuZm9yRWFjaChmUSl9ZnVuY3Rpb24gZnEoZSx0KXtlLmJsb2NrZWRPbj09PXQmJihlLmJsb2NrZWRPbj1udWxsLGZSfHwoZlI9ITAsYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZlcpKSl9dmFyIGZLPW51bGw7ZnVuY3Rpb24gZlgoZSl7ZkshPT1lJiYoZks9ZSxhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxmdW5jdGlvbigpe2ZLPT09ZSYmKGZLPW51bGwpO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9Myl7dmFyIG49ZVt0XSxyPWVbdCsxXSxsPWVbdCsyXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgcilpZihudWxsPT09Znoocnx8bikpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lMihuKTtudWxsIT09YSYmKGUuc3BsaWNlKHQsMyksdC09MyxvdShhLHtwZW5kaW5nOiEwLGRhdGE6bCxtZXRob2Q6bi5tZXRob2QsYWN0aW9uOnJ9LHIsbCkpfX0pKX1mdW5jdGlvbiBmRyhlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBmcSh0LGUpfW51bGwhPT1mTSYmZnEoZk0sZSksbnVsbCE9PWZJJiZmcShmSSxlKSxudWxsIT09ZkQmJmZxKGZELGUpLGZGLmZvckVhY2godCksZkEuZm9yRWFjaCh0KTtmb3IodmFyIG49MDtuPGZqLmxlbmd0aDtuKyspe3ZhciByPWZqW25dO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDxmai5sZW5ndGgmJm51bGw9PT0obj1malswXSkuYmxvY2tlZE9uOylmSChuKSxudWxsPT09bi5ibG9ja2VkT24mJmZqLnNoaWZ0KCk7aWYobnVsbCE9KG49KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjxuLmxlbmd0aDtyKz0zKXt2YXIgbD1uW3JdLGE9bltyKzFdLG89bFtlcV18fG51bGw7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpb3x8Zlgobik7ZWxzZSBpZihvKXt2YXIgaT1udWxsO2lmKGEmJmEuaGFzQXR0cmlidXRlKCJmb3JtQWN0aW9uIikpe2lmKGw9YSxvPWFbZXFdfHxudWxsKWk9by5mb3JtQWN0aW9uO2Vsc2UgaWYobnVsbCE9PWZ6KGwpKWNvbnRpbnVlfWVsc2UgaT1vLmFjdGlvbjsiZnVuY3Rpb24iPT10eXBlb2YgaT9uW3IrMV09aToobi5zcGxpY2UociwzKSxyLT0zKSxmWChuKX19fWZ1bmN0aW9uIGZZKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmInJlYWN0LXRyYW5zaXRpb24iPT09ZS5pbmZvJiZlLmludGVyY2VwdCh7aGFuZGxlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gbD1lfSl9LGZvY3VzUmVzZXQ6Im1hbnVhbCIsc2Nyb2xsOiJtYW51YWwifSl9ZnVuY3Rpb24gdCgpe251bGwhPT1sJiYobCgpLGw9bnVsbCkscnx8c2V0VGltZW91dChuLDIwKX1mdW5jdGlvbiBuKCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzoicmVhY3QtdHJhbnNpdGlvbiIsaGlzdG9yeToicmVwbGFjZSJ9KX19aWYoIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxsPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGUiLGUpLG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVzdWNjZXNzIix0KSxuYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlZXJyb3IiLHQpLHNldFRpbWVvdXQobiwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlIixlKSxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlc3VjY2VzcyIsdCksbmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZWVycm9yIix0KSxudWxsIT09bCYmKGwoKSxsPW51bGwpfX19ZnVuY3Rpb24gZkooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gZlooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZloucHJvdG90eXBlLnJlbmRlcj1mSi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09dCl0aHJvdyBFcnJvcih1KDQwOSkpO2Z3KHQuY3VycmVudCx1NCgpLGUsdCxudWxsLG51bGwpfSxmWi5wcm90b3R5cGUudW5tb3VudD1mSi5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO2Z3KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHN0KCksdFtlS109bnVsbH19LGZaLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lSCgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgbj0wO248ZmoubGVuZ3RoJiYwIT09dCYmdDxmaltuXS5wcmlvcml0eTtuKyspO2ZqLnNwbGljZShuLDAsZSksMD09PW4mJmZIKGUpfX07dmFyIGYwPW8udmVyc2lvbjtpZigiMTkuMy4wLWNhbmFyeS1mOTNiOWZkNC0yMDI1MTIxNyIhPT1mMCl0aHJvdyBFcnJvcih1KDUyNyxmMCwiMTkuMy4wLWNhbmFyeS1mOTNiOWZkNC0yMDI1MTIxNyIpKTtpZihxLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PXQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcih1KDE4OCkpO3Rocm93IEVycm9yKHUoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbigiLCIpKSl9cmV0dXJuIG51bGw9PT0oZT1udWxsIT09KGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpe2lmKG51bGw9PT0odD1jKGUpKSl0aHJvdyBFcnJvcih1KDE4OCkpO3JldHVybiB0IT09ZT9udWxsOmV9Zm9yKHZhciBuPWUscj10Ozspe3ZhciBsPW4ucmV0dXJuO2lmKG51bGw9PT1sKWJyZWFrO3ZhciBhPWwuYWx0ZXJuYXRlO2lmKG51bGw9PT1hKXtpZihudWxsIT09KHI9bC5yZXR1cm4pKXtuPXI7Y29udGludWV9YnJlYWt9aWYobC5jaGlsZD09PWEuY2hpbGQpe2ZvcihhPWwuY2hpbGQ7YTspe2lmKGE9PT1uKXJldHVybiBwKGwpLGU7aWYoYT09PXIpcmV0dXJuIHAobCksdDthPWEuc2libGluZ310aHJvdyBFcnJvcih1KDE4OCkpfWlmKG4ucmV0dXJuIT09ci5yZXR1cm4pbj1sLHI9YTtlbHNle2Zvcih2YXIgbz0hMSxpPWwuY2hpbGQ7aTspe2lmKGk9PT1uKXtvPSEwLG49bCxyPWE7YnJlYWt9aWYoaT09PXIpe289ITAscj1sLG49YTticmVha31pPWkuc2libGluZ31pZighbyl7Zm9yKGk9YS5jaGlsZDtpOyl7aWYoaT09PW4pe289ITAsbj1hLHI9bDticmVha31pZihpPT09cil7bz0hMCxyPWEsbj1sO2JyZWFrfWk9aS5zaWJsaW5nfWlmKCFvKXRocm93IEVycm9yKHUoMTg5KSl9fWlmKG4uYWx0ZXJuYXRlIT09cil0aHJvdyBFcnJvcih1KDE5MCkpfWlmKDMhPT1uLnRhZyl0aHJvdyBFcnJvcih1KDE4OCkpO3JldHVybiBuLnN0YXRlTm9kZS5jdXJyZW50PT09bj9lOnR9KHQpKT9mdW5jdGlvbiBlKHQpe3ZhciBuPXQudGFnO2lmKDU9PT1ufHwyNj09PW58fDI3PT09bnx8Nj09PW4pcmV0dXJuIHQ7Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe2lmKG51bGwhPT0obj1lKHQpKSlyZXR1cm4gbjt0PXQuc2libGluZ31yZXR1cm4gbnVsbH0oZSk6bnVsbCk/bnVsbDplLnN0YXRlTm9kZX0sInUiPnR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciBmMT1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIWYxLmlzRGlzYWJsZWQmJmYxLnN1cHBvcnRzRmliZXIpdHJ5e2V4PWYxLmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjMuMC1jYW5hcnktZjkzYjlmZDQtMjAyNTEyMTciLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSIsY3VycmVudERpc3BhdGNoZXJSZWY6VyxyZWNvbmNpbGVyVmVyc2lvbjoiMTkuMy4wLWNhbmFyeS1mOTNiOWZkNC0yMDI1MTIxNyJ9KSxlXz1mMX1jYXRjaChlKXt9fW4uY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe2lmKCFzKGUpKXRocm93IEVycm9yKHUoMjk5KSk7dmFyIG49ITEscj0iIixsPW96LGE9b0wsbz1vUjtyZXR1cm4gbnVsbCE9dCYmKCEwPT09dC51bnN0YWJsZV9zdHJpY3RNb2RlJiYobj0hMCksdm9pZCAwIT09dC5pZGVudGlmaWVyUHJlZml4JiYocj10LmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PXQub25VbmNhdWdodEVycm9yJiYobD10Lm9uVW5jYXVnaHRFcnJvciksdm9pZCAwIT09dC5vbkNhdWdodEVycm9yJiYoYT10Lm9uQ2F1Z2h0RXJyb3IpLHZvaWQgMCE9PXQub25SZWNvdmVyYWJsZUVycm9yJiYobz10Lm9uUmVjb3ZlcmFibGVFcnJvcikpLHQ9ZmIoZSwxLCExLG51bGwsbnVsbCxuLHIsbnVsbCxsLGEsbyxmWSksZVtlS109dC5jdXJyZW50LHMxKGUpLG5ldyBmSih0KX0sbi5oeWRyYXRlUm9vdD1mdW5jdGlvbihlLHQsbil7aWYoIXMoZSkpdGhyb3cgRXJyb3IodSgyOTkpKTt2YXIgcixsPSExLGE9IiIsbz1veixpPW9MLGM9b1IsZj1udWxsO3JldHVybiBudWxsIT1uJiYoITA9PT1uLnVuc3RhYmxlX3N0cmljdE1vZGUmJihsPSEwKSx2b2lkIDAhPT1uLmlkZW50aWZpZXJQcmVmaXgmJihhPW4uaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09bi5vblVuY2F1Z2h0RXJyb3ImJihvPW4ub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT1uLm9uQ2F1Z2h0RXJyb3ImJihpPW4ub25DYXVnaHRFcnJvciksdm9pZCAwIT09bi5vblJlY292ZXJhYmxlRXJyb3ImJihjPW4ub25SZWNvdmVyYWJsZUVycm9yKSx2b2lkIDAhPT1uLmZvcm1TdGF0ZSYmKGY9bi5mb3JtU3RhdGUpKSwodD1mYihlLDEsITAsdCxudWxsIT1uP246bnVsbCxsLGEsZixvLGksYyxmWSkpLmNvbnRleHQ9KHI9bnVsbCxyaCksbj10LmN1cnJlbnQsKGE9bEgobD1lQihsPXU0KCkpKSkuY2FsbGJhY2s9bnVsbCxsJChuLGEsbCksbj1sLHQuY3VycmVudC5sYW5lcz1uLGVGKHQsbiksc0YodCksZVtlS109dC5jdXJyZW50LHMxKGUpLG5ldyBmWih0KX0sbi52ZXJzaW9uPSIxOS4zLjAtY2FuYXJ5LWY5M2I5ZmQ0LTIwMjUxMjE3In0sODI5NDAsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gZSgpe2lmKCJ1Ij50eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksdC5leHBvcnRzPWUucig4MjQyNCl9LDgyOTM5LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtvbkNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LG9uVW5jYXVnaHRFcnJvcjpmdW5jdGlvbigpe3JldHVybiBwfX07Zm9yKHZhciBsIGluIHIpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sbCx7ZW51bWVyYWJsZTohMCxnZXQ6cltsXX0pO2xldCBhPWUucig4MTI1OCksbz1lLnIoNDk4NDMpLGk9ZS5yKDg0MDgyKSx1PWUucigxNzc0OCkscz1lLnIoNzQ4NDcpLGM9YS5fKGUucigxNjE1MykpLGY9e2RlY29yYXRlRGV2RXJyb3I6ZT0+ZSxoYW5kbGVDbGllbnRFcnJvcjooKT0+e30sb3JpZ2luQ29uc29sZUVycm9yOmNvbnNvbGUuZXJyb3IuYmluZChjb25zb2xlKX07ZnVuY3Rpb24gZChlLHQpe2xldCBuLHI9dC5lcnJvckJvdW5kYXJ5Py5jb25zdHJ1Y3RvcjtpZihuPW58fHI9PT1zLkVycm9yQm91bmRhcnlIYW5kbGVyJiZ0LmVycm9yQm91bmRhcnkucHJvcHMuZXJyb3JDb21wb25lbnQ9PT1jLmRlZmF1bHQpcmV0dXJuIHAoZSk7KDAsaS5pc0JhaWxvdXRUb0NTUkVycm9yKShlKXx8KDAsby5pc05leHRSb3V0ZXJFcnJvcikoZSl8fGYub3JpZ2luQ29uc29sZUVycm9yKGUpfWZ1bmN0aW9uIHAoZSl7KDAsaS5pc0JhaWxvdXRUb0NTUkVycm9yKShlKXx8KDAsby5pc05leHRSb3V0ZXJFcnJvcikoZSl8fCgwLHUucmVwb3J0R2xvYmFsRXJyb3IpKGUpfSgiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDY0NTQ3LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJBcHBSb3V0ZXJBbm5vdW5jZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCByPWUucig3NTIwMSksbD1lLnIoMjkwODApLGE9Im5leHQtcm91dGUtYW5ub3VuY2VyIjtmdW5jdGlvbiBvKHt0cmVlOmV9KXtsZXRbdCxuXT0oMCxyLnVzZVN0YXRlKShudWxsKTsoMCxyLnVzZUVmZmVjdCkoKCk9PihuKGZ1bmN0aW9uKCl7bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoYSlbMF07aWYoZT8uc2hhZG93Um9vdD8uY2hpbGROb2Rlc1swXSlyZXR1cm4gZS5zaGFkb3dSb290LmNoaWxkTm9kZXNbMF07e2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk7ZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZSI7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuYXJpYUxpdmU9ImFzc2VydGl2ZSIsdC5pZD0iX19uZXh0LXJvdXRlLWFubm91bmNlcl9fIix0LnJvbGU9ImFsZXJ0Iix0LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7cGFkZGluZzowO3dpZHRoOjFweDtjbGlwOnJlY3QoMCAwIDAgMCk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsIixlLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KS5hcHBlbmRDaGlsZCh0KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHR9fSgpKSwoKT0+e2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpWzBdO2U/LmlzQ29ubmVjdGVkJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGUpfSksW10pO2xldFtvLGldPSgwLHIudXNlU3RhdGUpKCIiKSx1PSgwLHIudXNlUmVmKSh2b2lkIDApO3JldHVybigwLHIudXNlRWZmZWN0KSgoKT0+e2xldCBlPSIiO2lmKGRvY3VtZW50LnRpdGxlKWU9ZG9jdW1lbnQudGl0bGU7ZWxzZXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoMSIpO3QmJihlPXQuaW5uZXJUZXh0fHx0LnRleHRDb250ZW50fHwiIil9dm9pZCAwIT09dS5jdXJyZW50JiZ1LmN1cnJlbnQhPT1lJiZpKGUpLHUuY3VycmVudD1lfSxbZV0pLHQ/KDAsbC5jcmVhdGVQb3J0YWwpKG8sdCk6bnVsbH0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw3OTIxMywoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiZmluZEhlYWRJbkNhY2hlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgcj1lLnIoMjc0NTQpLGw9ZS5yKDU3Nzc4KTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIGUodCxuLGEsbyl7aWYoMD09PU9iamVjdC5rZXlzKG4pLmxlbmd0aClyZXR1cm5bdCxhLG9dO2xldCBpPU9iamVjdC5rZXlzKG4pLmZpbHRlcihlPT4iY2hpbGRyZW4iIT09ZSk7Zm9yKGxldCBvIG9mKCJjaGlsZHJlbiJpbiBuJiZpLnVuc2hpZnQoImNoaWxkcmVuIiksaSkpe2xldFtpLHVdPW5bb107aWYoaT09PXIuREVGQVVMVF9TRUdNRU5UX0tFWSljb250aW51ZTtsZXQgcz10LnBhcmFsbGVsUm91dGVzLmdldChvKTtpZighcyljb250aW51ZTtsZXQgYz0oMCxsLmNyZWF0ZVJvdXRlckNhY2hlS2V5KShpKSxmPSgwLGwuY3JlYXRlUm91dGVyQ2FjaGVLZXkpKGksITApLGQ9cy5nZXQoYyk7aWYoIWQpY29udGludWU7bGV0IHA9ZShkLHUsYSsiLyIrYyxhKyIvIitmKTtpZihwKXJldHVybiBwfXJldHVybiBudWxsfShlLHQsIiIsIiIpfSgiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDI2NzA2LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtHcmFjZWZ1bERlZ3JhZGVCb3VuZGFyeTpmdW5jdGlvbigpe3JldHVybiBpfSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIGwgaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtlbnVtZXJhYmxlOiEwLGdldDpyW2xdfSk7bGV0IGE9ZS5yKDk4MTM0KSxvPWUucig3NTIwMSk7Y2xhc3MgaSBleHRlbmRzIG8uQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e2hhc0Vycm9yOiExfSx0aGlzLnJvb3RIdG1sPSIiLHRoaXMuaHRtbEF0dHJpYnV0ZXM9e30sdGhpcy5odG1sUmVmPSgwLG8uY3JlYXRlUmVmKSgpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7cmV0dXJue2hhc0Vycm9yOiEwfX1jb21wb25lbnREaWRNb3VudCgpe2xldCBlPXRoaXMuaHRtbFJlZi5jdXJyZW50O3RoaXMuc3RhdGUuaGFzRXJyb3ImJmUmJk9iamVjdC5lbnRyaWVzKHRoaXMuaHRtbEF0dHJpYnV0ZXMpLmZvckVhY2goKFt0LG5dKT0+e2Uuc2V0QXR0cmlidXRlKHQsbil9KX1yZW5kZXIoKXtsZXR7aGFzRXJyb3I6ZX09dGhpcy5zdGF0ZTtyZXR1cm4oInUiPnR5cGVvZiB3aW5kb3cmJiF0aGlzLnJvb3RIdG1sJiYodGhpcy5yb290SHRtbD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLHRoaXMuaHRtbEF0dHJpYnV0ZXM9ZnVuY3Rpb24oZSl7bGV0IHQ9e307Zm9yKGxldCBuPTA7bjxlLmF0dHJpYnV0ZXMubGVuZ3RoO24rKyl7bGV0IHI9ZS5hdHRyaWJ1dGVzW25dO3Rbci5uYW1lXT1yLnZhbHVlfXJldHVybiB0fShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSxlKT8oMCxhLmpzeCkoImh0bWwiLHtyZWY6dGhpcy5odG1sUmVmLHN1cHByZXNzSHlkcmF0aW9uV2FybmluZzohMCxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOnRoaXMucm9vdEh0bWx9fSk6dGhpcy5wcm9wcy5jaGlsZHJlbn19bGV0IHU9aTsoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwzMzcwMiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7bGV0IHI9ZS5yKDgxMjU4KSxsPWUucig5ODEzNCk7ZS5yKDc1MjAxKTtsZXQgYT1yLl8oZS5yKDI2NzA2KSksbz1lLnIoNzQ4NDcpLGk9ZS5yKDM0NjUpLHU9InUiPnR5cGVvZiB3aW5kb3cmJigwLGkuaXNCb3QpKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtmdW5jdGlvbiBzKHtjaGlsZHJlbjplLGVycm9yQ29tcG9uZW50OnQsZXJyb3JTdHlsZXM6bixlcnJvclNjcmlwdHM6cn0pe3JldHVybiB1PygwLGwuanN4KShhLmRlZmF1bHQse2NoaWxkcmVuOmV9KTooMCxsLmpzeCkoby5FcnJvckJvdW5kYXJ5LHtlcnJvckNvbXBvbmVudDp0LGVycm9yU3R5bGVzOm4sZXJyb3JTY3JpcHRzOnIsY2hpbGRyZW46ZX0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDYxMTU2LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUn19KTtsZXQgcj1lLnIoODEyNTgpLGw9ZS5yKDQ0MDY2KSxhPWUucig5ODEzNCksbz1sLl8oZS5yKDc1MjAxKSksaT1lLnIoMTY4NzIpLHU9ZS5yKDU5NDMwKSxzPWUucig4NTU5NCksYz1lLnIoMzE4OTkpLGY9ZS5yKDk0ODc5KSxkPWUucig2NDU0NykscD1lLnIoNTcyNDcpLG09ZS5yKDc5MjEzKSxoPWUucig1MDA5NiksZz1lLnIoMjQwNDIpLHY9ZS5yKDM4OTMzKSx5PWUucigxODE2NyksYj1lLnIoODMzOTgpLHc9ZS5yKDg0Mzk1KSxrPWUucig0MTcyMSksUz1lLnIoOTA4NjIpLEU9ZS5yKDk4MjgzKSx4PXIuXyhlLnIoMzM3MDIpKSxfPXIuXyhlLnIoMTYxNTMpKSxQPWUucigzNjM0NSksTj1lLnIoODg3NzQpLEM9e307ZnVuY3Rpb24gVCh7YXBwUm91dGVyU3RhdGU6ZX0pe3JldHVybigwLG8udXNlSW5zZXJ0aW9uRWZmZWN0KSgoKT0+e2xldHt0cmVlOnQscHVzaFJlZjpuLGNhbm9uaWNhbFVybDpyLHJlbmRlcmVkU2VhcmNoOmx9PWUsYT17Li4ubi5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT93aW5kb3cuaGlzdG9yeS5zdGF0ZTp7fSxfX05BOiEwLF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU6e3RyZWU6dCxyZW5kZXJlZFNlYXJjaDpsfX07bi5wZW5kaW5nUHVzaCYmKDAscy5jcmVhdGVIcmVmRnJvbVVybCkobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpIT09cj8obi5wZW5kaW5nUHVzaD0hMSx3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoYSwiIixyKSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGEsIiIscil9LFtlXSksKDAsby51c2VFZmZlY3QpKCgpPT57KDAsRS5waW5nVmlzaWJsZUxpbmtzKShlLm5leHRVcmwsZS50cmVlKX0sW2UubmV4dFVybCxlLnRyZWVdKSxudWxsfWZ1bmN0aW9uIE8oZSl7bnVsbD09ZSYmKGU9e30pO2xldCB0PXdpbmRvdy5oaXN0b3J5LnN0YXRlLG49dD8uX19OQTtuJiYoZS5fX05BPW4pO2xldCByPXQ/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU7cmV0dXJuIHImJihlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU9ciksZX1mdW5jdGlvbiB6KHtoZWFkQ2FjaGVOb2RlOmV9KXtsZXQgdD1udWxsIT09ZT9lLmhlYWQ6bnVsbCxuPW51bGwhPT1lP2UucHJlZmV0Y2hIZWFkOm51bGwscj1udWxsIT09bj9uOnQ7cmV0dXJuKDAsby51c2VEZWZlcnJlZFZhbHVlKSh0LHIpfWZ1bmN0aW9uIEwoe2FjdGlvblF1ZXVlOmUsZ2xvYmFsRXJyb3I6dCx3ZWJTb2NrZXQ6bixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpyfSl7bGV0IGwscz0oMCxmLnVzZUFjdGlvblF1ZXVlKShlKSx7Y2Fub25pY2FsVXJsOmJ9PXMse3NlYXJjaFBhcmFtczpFLHBhdGhuYW1lOl99PSgwLG8udXNlTWVtbykoKCk9PntsZXQgZT1uZXcgVVJMKGIsInUiPHR5cGVvZiB3aW5kb3c/Imh0dHA6Ly9uIjp3aW5kb3cubG9jYXRpb24uaHJlZik7cmV0dXJue3NlYXJjaFBhcmFtczplLnNlYXJjaFBhcmFtcyxwYXRobmFtZTooMCx2Lmhhc0Jhc2VQYXRoKShlLnBhdGhuYW1lKT8oMCxnLnJlbW92ZUJhc2VQYXRoKShlLnBhdGhuYW1lKTplLnBhdGhuYW1lfX0sW2JdKTsoMCxvLnVzZUVmZmVjdCkoKCk9PntmdW5jdGlvbiBlKGUpe2UucGVyc2lzdGVkJiZ3aW5kb3cuaGlzdG9yeS5zdGF0ZT8uX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSYmKEMucGVuZGluZ01wYVBhdGg9dm9pZCAwLCgwLGYuZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24pKHt0eXBlOnUuQUNUSU9OX1JFU1RPUkUsdXJsOm5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLGhpc3RvcnlTdGF0ZTp3aW5kb3cuaGlzdG9yeS5zdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFfSkpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLGUpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixlKX19LFtdKSwoMCxvLnVzZUVmZmVjdCkoKCk9PntmdW5jdGlvbiBlKGUpe2xldCB0PSJyZWFzb24iaW4gZT9lLnJlYXNvbjplLmVycm9yO2lmKCgwLFMuaXNSZWRpcmVjdEVycm9yKSh0KSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPSgwLGsuZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IpKHQpOygwLGsuZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yKSh0KT09PVMuUmVkaXJlY3RUeXBlLnB1c2g/dy5wdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZS5wdXNoKG4se30pOncucHVibGljQXBwUm91dGVySW5zdGFuY2UucmVwbGFjZShuLHt9KX19cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVuaGFuZGxlZHJlamVjdGlvbiIsZSksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLGUpfX0sW10pO2xldHtwdXNoUmVmOk59PXM7aWYoTi5tcGFOYXZpZ2F0aW9uKXtpZihDLnBlbmRpbmdNcGFQYXRoIT09Yil7bGV0IGU9d2luZG93LmxvY2F0aW9uO04ucGVuZGluZ1B1c2g/ZS5hc3NpZ24oYik6ZS5yZXBsYWNlKGIpLEMucGVuZGluZ01wYVBhdGg9Yn10aHJvdyBoLnVucmVzb2x2ZWRUaGVuYWJsZX0oMCxvLnVzZUVmZmVjdCkoKCk9PntsZXQgZT13aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSksdD13aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSksbj1lPT57bGV0IHQ9d2luZG93LmxvY2F0aW9uLmhyZWYsbj13aW5kb3cuaGlzdG9yeS5zdGF0ZT8uX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRTsoMCxvLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCxmLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTp1LkFDVElPTl9SRVNUT1JFLHVybDpuZXcgVVJMKGU/P3QsdCksaGlzdG9yeVN0YXRlOm59KX0pfTt3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGU9ZnVuY3Rpb24odCxyLGwpe3JldHVybiB0Py5fX05BfHx0Py5fTnx8KHQ9Tyh0KSxsJiZuKGwpKSxlKHQscixsKX0sd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlPWZ1bmN0aW9uKGUscixsKXtyZXR1cm4gZT8uX19OQXx8ZT8uX058fChlPU8oZSksbCYmbihsKSksdChlLHIsbCl9O2xldCByPWU9PntpZihlLnN0YXRlKXtpZighZS5zdGF0ZS5fX05BKXJldHVybiB2b2lkIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsoMCxvLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCx3LmRpc3BhdGNoVHJhdmVyc2VBY3Rpb24pKHdpbmRvdy5sb2NhdGlvbi5ocmVmLGUuc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSl9KX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHIpLCgpPT57d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlPWUsd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlPXQsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixyKX19LFtdKTtsZXR7Y2FjaGU6TCx0cmVlOlIsbmV4dFVybDpNLGZvY3VzQW5kU2Nyb2xsUmVmOkkscHJldmlvdXNOZXh0VXJsOkZ9PXMsQT0oMCxvLnVzZU1lbW8pKCgpPT4oMCxtLmZpbmRIZWFkSW5DYWNoZSkoTCxSWzFdKSxbTCxSXSksaj0oMCxvLnVzZU1lbW8pKCgpPT4oMCx5LmdldFNlbGVjdGVkUGFyYW1zKShSKSxbUl0pLFU9KDAsby51c2VNZW1vKSgoKT0+KHtwYXJlbnRUcmVlOlIscGFyZW50Q2FjaGVOb2RlOkwscGFyZW50U2VnbWVudFBhdGg6bnVsbCxwYXJlbnRQYXJhbXM6e30sZGVidWdOYW1lQ29udGV4dDoiLyIsdXJsOmIsaXNBY3RpdmU6ITB9KSxbUixMLGJdKSxCPSgwLG8udXNlTWVtbykoKCk9Pih7dHJlZTpSLGZvY3VzQW5kU2Nyb2xsUmVmOkksbmV4dFVybDpNLHByZXZpb3VzTmV4dFVybDpGfSksW1IsSSxNLEZdKTtpZihudWxsIT09QSl7bGV0W2UsdCxuXT1BO2w9KDAsYS5qc3gpKHose2hlYWRDYWNoZU5vZGU6ZX0sInUiPHR5cGVvZiB3aW5kb3c/bjp0KX1lbHNlIGw9bnVsbDtsZXQgVj0oMCxhLmpzeHMpKHAuUmVkaXJlY3RCb3VuZGFyeSx7Y2hpbGRyZW46W2wsKDAsYS5qc3gpKFAuUm9vdExheW91dEJvdW5kYXJ5LHtjaGlsZHJlbjpMLnJzY30pLCgwLGEuanN4KShkLkFwcFJvdXRlckFubm91bmNlcix7dHJlZTpSfSldfSk7cmV0dXJuIFY9KDAsYS5qc3gpKHguZGVmYXVsdCx7ZXJyb3JDb21wb25lbnQ6dFswXSxlcnJvclN0eWxlczp0WzFdLGNoaWxkcmVuOlZ9KSwoMCxhLmpzeHMpKGEuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxhLmpzeCkoVCx7YXBwUm91dGVyU3RhdGU6c30pLCgwLGEuanN4KShELHt9KSwoMCxhLmpzeCkoYy5OYXZpZ2F0aW9uUHJvbWlzZXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpudWxsLGNoaWxkcmVuOigwLGEuanN4KShjLlBhdGhQYXJhbXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpqLGNoaWxkcmVuOigwLGEuanN4KShjLlBhdGhuYW1lQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6XyxjaGlsZHJlbjooMCxhLmpzeCkoYy5TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpFLGNoaWxkcmVuOigwLGEuanN4KShpLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOkIsY2hpbGRyZW46KDAsYS5qc3gpKGkuQXBwUm91dGVyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6dy5wdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSxjaGlsZHJlbjooMCxhLmpzeCkoaS5MYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpVLGNoaWxkcmVuOlZ9KX0pfSl9KX0pfSl9KV19KX1mdW5jdGlvbiBSKHthY3Rpb25RdWV1ZTplLGdsb2JhbEVycm9yU3RhdGU6dCx3ZWJTb2NrZXQ6bixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpyfSl7KDAsYi51c2VOYXZGYWlsdXJlSGFuZGxlcikoKTtsZXQgbD0oMCxhLmpzeCkoTCx7YWN0aW9uUXVldWU6ZSxnbG9iYWxFcnJvcjp0LHdlYlNvY2tldDpuLHN0YXRpY0luZGljYXRvclN0YXRlOnJ9KTtyZXR1cm4oMCxhLmpzeCkoeC5kZWZhdWx0LHtlcnJvckNvbXBvbmVudDpfLmRlZmF1bHQsY2hpbGRyZW46bH0pfWxldCBNPW5ldyBTZXQsST1uZXcgU2V0O2Z1bmN0aW9uIEQoKXtsZXRbLGVdPW8uZGVmYXVsdC51c2VTdGF0ZSgwKSx0PU0uc2l6ZTsoMCxvLnVzZUVmZmVjdCkoKCk9PntsZXQgbj0oKT0+ZShlPT5lKzEpO3JldHVybiBJLmFkZChuKSx0IT09TS5zaXplJiZuKCksKCk9PntJLmRlbGV0ZShuKX19LFt0LGVdKTtsZXQgbj0oMCxOLmdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZykoKTtyZXR1cm5bLi4uTV0ubWFwKChlLHQpPT4oMCxhLmpzeCkoImxpbmsiLHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6YCR7ZX0ke259YCxwcmVjZWRlbmNlOiJuZXh0In0sdCkpfWdsb2JhbFRoaXMuX05fRV9TVFlMRV9MT0FEPWZ1bmN0aW9uKGUpe2xldCB0PU0uc2l6ZTtyZXR1cm4gTS5hZGQoZSksTS5zaXplIT09dCYmSS5mb3JFYWNoKGU9PmUoKSksUHJvbWlzZS5yZXNvbHZlKCl9LCgiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDM4NzkyLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJjcmVhdGVJbml0aWFsUm91dGVyU3RhdGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX0pO2xldCByPWUucig4NTU5NCksbD1lLnIoMTgxNjcpLGE9ZS5yKDY3NjI4KSxvPWUucigxODkzOSk7ZnVuY3Rpb24gaSh7bmF2aWdhdGVkQXQ6ZSxpbml0aWFsRmxpZ2h0RGF0YTp0LGluaXRpYWxDYW5vbmljYWxVcmxQYXJ0czpuLGluaXRpYWxSZW5kZXJlZFNlYXJjaDppLGxvY2F0aW9uOnV9KXtsZXQgcz1uLmpvaW4oIi8iKSx7dHJlZTpjLHNlZWREYXRhOmYsaGVhZDpkfT0oMCxhLmdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoKSh0WzBdKSxwPXU/KDAsci5jcmVhdGVIcmVmRnJvbVVybCkodSk6cztyZXR1cm57dHJlZTpjLGNhY2hlOigwLG8uY3JlYXRlSW5pdGlhbENhY2hlTm9kZUZvckh5ZHJhdGlvbikoZSxjLGYsZCkscHVzaFJlZjp7cGVuZGluZ1B1c2g6ITEsbXBhTmF2aWdhdGlvbjohMSxwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZTohMH0sZm9jdXNBbmRTY3JvbGxSZWY6e2FwcGx5OiExLG9ubHlIYXNoQ2hhbmdlOiExLGhhc2hGcmFnbWVudDpudWxsLHNlZ21lbnRQYXRoczpbXX0sY2Fub25pY2FsVXJsOnAscmVuZGVyZWRTZWFyY2g6aSxuZXh0VXJsOigoMCxsLmV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKShjKXx8dT8ucGF0aG5hbWUpPz9udWxsLHByZXZpb3VzTmV4dFVybDpudWxsLGRlYnVnSW5mbzpudWxsfX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw5MzM1MSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO2xldCByLGwsYSxvO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiaHlkcmF0ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEF9fSk7bGV0IGk9ZS5yKDgxMjU4KSx1PWUucig5ODEzNCk7ZS5yKDc5MTIzKTtsZXQgcz1pLl8oZS5yKDgyOTQwKSksYz1pLl8oZS5yKDc1MjAxKSksZj1lLnIoNzUwNDUpLGQ9ZS5yKDQ0OTM0KSxwPWUucigzMjc5MyksbT1lLnIoODI5MzkpLGg9ZS5yKDMwOTMxKSxnPWUucig4OTU5NCksdj1lLnIoODQzOTUpLHk9aS5fKGUucig2MTE1NikpLGI9ZS5yKDM4NzkyKTtlLnIoMTY4NzIpO2xldCB3PWUucig2MTcwNiksaz1lLnIoNjc2MjgpLFM9Zi5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0sRT1mLmNyZWF0ZUZyb21GZXRjaCx4PWRvY3VtZW50LF89bmV3IFRleHRFbmNvZGVyLFA9ITEsTj0hMSxDPW51bGw7ZnVuY3Rpb24gVChlKXtpZigwPT09ZVswXSlhPVtdO2Vsc2UgaWYoMT09PWVbMF0pe2lmKCFhKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiVW5leHBlY3RlZCBzZXJ2ZXIgZGF0YTogbWlzc2luZyBib290c3RyYXAgc2NyaXB0LiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMTgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bz9vLmVucXVldWUoXy5lbmNvZGUoZVsxXSkpOmEucHVzaChlWzFdKX1lbHNlIGlmKDI9PT1lWzBdKUM9ZVsxXTtlbHNlIGlmKDM9PT1lWzBdKXtpZighYSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIlVuZXhwZWN0ZWQgc2VydmVyIGRhdGE6IG1pc3NpbmcgYm9vdHN0cmFwIHNjcmlwdC4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTE4IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2xldCBuPWF0b2IoZVsxXSkscj1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKHZhciB0PTA7dDxuLmxlbmd0aDt0Kyspclt0XT1uLmNoYXJDb2RlQXQodCk7bz9vLmVucXVldWUocik6YS5wdXNoKHIpfX1sZXQgTz1mdW5jdGlvbigpe28mJiFOJiYoby5jbG9zZSgpLE49ITAsYT12b2lkIDApLFA9ITB9OyJsb2FkaW5nIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsTywhMSk6c2V0VGltZW91dChPKTtsZXQgej1zZWxmLl9fbmV4dF9mPXNlbGYuX19uZXh0X2Z8fFtdO3ouZm9yRWFjaChUKSx6Lmxlbmd0aD0wLHoucHVzaD1UO2xldCBMPW5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoZSl7YSYmKGEuZm9yRWFjaCh0PT57ZS5lbnF1ZXVlKCJzdHJpbmciPT10eXBlb2YgdD9fLmVuY29kZSh0KTp0KX0pLFAmJiFOKSYmKG51bGw9PT1lLmRlc2lyZWRTaXplfHxlLmRlc2lyZWRTaXplPDA/ZS5lcnJvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIlRoZSBjb25uZWN0aW9uIHRvIHRoZSBwYWdlIHdhcyB1bmV4cGVjdGVkbHkgY2xvc2VkLCBwb3NzaWJseSBkdWUgdG8gdGhlIHN0b3AgYnV0dG9uIGJlaW5nIGNsaWNrZWQsIGxvc3Mgb2YgV2ktRmksIG9yIGFuIHVuc3RhYmxlIGludGVybmV0IGNvbm5lY3Rpb24uIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUxMTciLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkpOmUuY2xvc2UoKSxOPSEwLGE9dm9pZCAwKSxvPWV9fSksUj13aW5kb3cuX19ORVhUX0NMSUVOVF9SRVNVTUU7ZnVuY3Rpb24gTSh7aW5pdGlhbFJTQ1BheWxvYWQ6ZSxhY3Rpb25RdWV1ZTp0LHdlYlNvY2tldDpuLHN0YXRpY0luZGljYXRvclN0YXRlOnJ9KXtyZXR1cm4oMCx1LmpzeCkoeS5kZWZhdWx0LHthY3Rpb25RdWV1ZTp0LGdsb2JhbEVycm9yU3RhdGU6ZS5HLHdlYlNvY2tldDpuLHN0YXRpY0luZGljYXRvclN0YXRlOnJ9KX1sPVI/UHJvbWlzZS5yZXNvbHZlKEUoUix7Y2FsbFNlcnZlcjpoLmNhbGxTZXJ2ZXIsZmluZFNvdXJjZU1hcFVSTDpnLmZpbmRTb3VyY2VNYXBVUkwsZGVidWdDaGFubmVsOnJ9KSkudGhlbihhc3luYyBlPT4oMCxrLmNyZWF0ZUluaXRpYWxSU0NQYXlsb2FkRnJvbUZhbGxiYWNrUHJlcmVuZGVyKShhd2FpdCBSLGUpKTpTKEwse2NhbGxTZXJ2ZXI6aC5jYWxsU2VydmVyLGZpbmRTb3VyY2VNYXBVUkw6Zy5maW5kU291cmNlTWFwVVJMLGRlYnVnQ2hhbm5lbDpyLHN0YXJ0VGltZTowfSk7bGV0IEk9Yy5kZWZhdWx0LlN0cmljdE1vZGU7ZnVuY3Rpb24gRCh7Y2hpbGRyZW46ZX0pe3JldHVybiBlfWxldCBGPXtvbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yOmZ1bmN0aW9uKCl7cmV0dXJuKCk9Pnt9fSxvblJlY292ZXJhYmxlRXJyb3I6cC5vblJlY292ZXJhYmxlRXJyb3Isb25DYXVnaHRFcnJvcjptLm9uQ2F1Z2h0RXJyb3Isb25VbmNhdWdodEVycm9yOm0ub25VbmNhdWdodEVycm9yfTthc3luYyBmdW5jdGlvbiBBKGUsdCl7bGV0IG4scixhPWF3YWl0IGw7KDAsdy5zZXRBcHBCdWlsZElkKShhLmIpO2xldCBvPURhdGUubm93KCksaT0oMCx2LmNyZWF0ZU11dGFibGVBY3Rpb25RdWV1ZSkoKDAsYi5jcmVhdGVJbml0aWFsUm91dGVyU3RhdGUpKHtuYXZpZ2F0ZWRBdDpvLGluaXRpYWxGbGlnaHREYXRhOmEuZixpbml0aWFsQ2Fub25pY2FsVXJsUGFydHM6YS5jLGluaXRpYWxSZW5kZXJlZFNlYXJjaDphLnEsbG9jYXRpb246d2luZG93LmxvY2F0aW9ufSksZSksZj0oMCx1LmpzeCkoSSx7Y2hpbGRyZW46KDAsdS5qc3gpKGQuSGVhZE1hbmFnZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7YXBwRGlyOiEwfSxjaGlsZHJlbjooMCx1LmpzeCkoRCx7Y2hpbGRyZW46KDAsdS5qc3gpKE0se2luaXRpYWxSU0NQYXlsb2FkOmEsYWN0aW9uUXVldWU6aSx3ZWJTb2NrZXQ6cixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpufSl9KX0pfSk7Il9fbmV4dF9lcnJvcl9fIj09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pZD9zLmRlZmF1bHQuY3JlYXRlUm9vdCh4LEYpLnJlbmRlcihmKTpjLmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uKCgpPT57cy5kZWZhdWx0Lmh5ZHJhdGVSb290KHgsZix7Li4uRixmb3JtU3RhdGU6Q30pfSl9KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sOTYzMzUsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7bGV0IHI9ZS5yKDQ4NzA2KTtlLnIoMzI3OTMpLHdpbmRvdy5uZXh0LnR1cmJvcGFjaz0hMCxzZWxmLl9fd2VicGFja19oYXNoX189IiI7bGV0IGw9ZS5yKDkyMzg2KTsoMCxyLmFwcEJvb3RzdHJhcCkodD0+e2xldHtoeWRyYXRlOm59PWUucig5MzM1MSk7bihsLHQpfSksKCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX1dKTs="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/6636.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.862Z","timestamp":1785126646862,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/6636.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1745\r\nage: 76610\r\nlast-modified: Tue, 23 Dec 2025 07:43:14 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:14:10 GMT\r\ncache-control: public, max-age=86400\r\netag: \"9354a310aca2467883088a4c17693018\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: -K_Qc1ZHT82EiwwOImnFgLxvpqwPBakJR51XD078kdhTeqn0_iUOEA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1745,"size_decoded":2317,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"9354a310aca2467883088a4c17693018","sha1":"8b68d24379142124633ae339e148c3db3baa73e8","sha256":"66498e82dee76d44bd12f5517f74785af51b6c23c7895fe18684ac914abf33c1","sha512":"597efe5d74e6c66063f06724931aec73e4edb064bc939ed48618af592bd8b602694ad04a1534c816ce8c334d6711affc474f99f45f0338919a7a5413eea29966","ssdeep":"","tlshash":"6f31c5d01452a47bb1030b9196bfc6b14e7024f800ced7bc946a48d273399ba78960a4","first_seen":"2025-12-23T14:18:57.776197Z","last_seen":"2026-07-27T08:07:37.457076Z","times_seen":1192,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/particles-custom.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.853Z","timestamp":1785126645853,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/particles-custom.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 809\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2834,"size_decoded":1063,"mime_type":"text/javascript","magic":"ASCII text","md5":"720fcf1a28ca7924e9f0e84ed2ccaa95","sha1":"ecd6bf33e137e6b256f7d75588d7be7058a3d027","sha256":"6646c0f3e47bdfa8a6ec28a369faa48e8caf647fb1ecc67b56a7beae27ef6e24","sha512":"ee111a16c40be3d1eb5f1bb18e6abb693872b1e89487f7dd2f9279a3c162c08351cf41e1a13675935ed476f11b908c62bc2f762164b5792ba8714d85204e3b6b","ssdeep":"","tlshash":"d851512dedf41db3208af03508bf5247e520855b4d1a3d39ba4c819c5f0ea2d61be7e9","first_seen":"2025-03-17T20:39:33.233172Z","last_seen":"2026-07-27T04:32:40.414163Z","times_seen":5,"resource_available":true,"data":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyogSG93IHRvIHVzZT8gOiBDaGVjayB0aGUgR2l0SHViIFJFQURNRQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogVG8gbG9hZCBhIGNvbmZpZyBmaWxlIChwYXJ0aWNsZXMuanNvbikgeW91IG5lZWQgdG8gaG9zdCB0aGlzIGRlbW8gKE1BTVAvV0FNUC9sb2NhbCkuLi4gKi8KLyoKcGFydGljbGVzSlMubG9hZCgncGFydGljbGVzLWpzJywgJ3BhcnRpY2xlcy5qc29uJywgZnVuY3Rpb24oKSB7CiAgY29uc29sZS5sb2coJ3BhcnRpY2xlcy5qcyBsb2FkZWQgLSBjYWxsYmFjaycpOwp9KTsKKi8KCi8qIE90aGVyd2lzZSBqdXN0IHB1dCB0aGUgY29uZmlnIGNvbnRlbnQgKGpzb24pOiAqLwoKcGFydGljbGVzSlMoJ3BhcnRpY2xlcy1qcycsCiAgCiAgewogICAgInBhcnRpY2xlcyI6IHsKICAgICAgIm51bWJlciI6IHsKICAgICAgICAidmFsdWUiOiAxNTAsCiAgICAgICAgImRlbnNpdHkiOiB7CiAgICAgICAgICAiZW5hYmxlIjogdHJ1ZSwKICAgICAgICAgICJ2YWx1ZV9hcmVhIjogODAwCiAgICAgICAgfQogICAgICB9LAogICAgICAiY29sb3IiOiB7CiAgICAgICAgInZhbHVlIjogIiM3N2IwNDciCiAgICAgIH0sCiAgICAgICJzaGFwZSI6IHsKICAgICAgICAidHlwZSI6ICJpbWFnZSIsCiAgICAgICAgInN0cm9rZSI6IHsKICAgICAgICAgICJ3aWR0aCI6IDAsCiAgICAgICAgICAiY29sb3IiOiAiIzc3YjA0NyIKICAgICAgICB9LAogICAgICAgICJwb2x5Z29uIjogewogICAgICAgICAgIm5iX3NpZGVzIjogNQogICAgICAgIH0sCiAgICAgICAgImltYWdlIjogewogICAgICAgICAgInNyYyI6ICJhc3NldHMvaW1hZ2VzL2xvZ28vaWNvbi5wbmciLAogICAgICAgICAgIndpZHRoIjogMzAwLAogICAgICAgICAgImhlaWdodCI6IDMwMAogICAgICAgIH0KICAgICAgfSwKICAgICAgIm9wYWNpdHkiOiB7CiAgICAgICAgInZhbHVlIjogMC45LAogICAgICAgICJyYW5kb20iOiBmYWxzZSwKICAgICAgICAiYW5pbSI6IHsKICAgICAgICAgICJlbmFibGUiOiBmYWxzZSwKICAgICAgICAgICJzcGVlZCI6IDEsCiAgICAgICAgICAib3BhY2l0eV9taW4iOiAwLjEsCiAgICAgICAgICAic3luYyI6IGZhbHNlCiAgICAgICAgfQogICAgICB9LAogICAgICAic2l6ZSI6IHsKICAgICAgICAidmFsdWUiOiA1LAogICAgICAgICJyYW5kb20iOiB0cnVlLAogICAgICAgICJhbmltIjogewogICAgICAgICAgImVuYWJsZSI6IGZhbHNlLAogICAgICAgICAgInNwZWVkIjogNDAsCiAgICAgICAgICAic2l6ZV9taW4iOiAwLjEsCiAgICAgICAgICAic3luYyI6IGZhbHNlCiAgICAgICAgfQogICAgICB9LAogICAgICAibGluZV9saW5rZWQiOiB7CiAgICAgICAgImVuYWJsZSI6IHRydWUsCiAgICAgICAgImRpc3RhbmNlIjogMTUwLAogICAgICAgICJjb2xvciI6ICIjZmZmZmZmIiwKICAgICAgICAib3BhY2l0eSI6IDAuNCwKICAgICAgICAid2lkdGgiOiAxCiAgICAgIH0sCiAgICAgICJtb3ZlIjogewogICAgICAgICJlbmFibGUiOiB0cnVlLAogICAgICAgICJzcGVlZCI6IDYsCiAgICAgICAgImRpcmVjdGlvbiI6ICJub25lIiwKICAgICAgICAicmFuZG9tIjogZmFsc2UsCiAgICAgICAgInN0cmFpZ2h0IjogZmFsc2UsCiAgICAgICAgIm91dF9tb2RlIjogIm91dCIsCiAgICAgICAgImF0dHJhY3QiOiB7CiAgICAgICAgICAiZW5hYmxlIjogZmFsc2UsCiAgICAgICAgICAicm90YXRlWCI6IDYwMCwKICAgICAgICAgICJyb3RhdGVZIjogMTIwMAogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgICJpbnRlcmFjdGl2aXR5IjogewogICAgICAiZGV0ZWN0X29uIjogImNhbnZhcyIsCiAgICAgICJldmVudHMiOiB7CiAgICAgICAgIm9uaG92ZXIiOiB7CiAgICAgICAgICAiZW5hYmxlIjogdHJ1ZSwKICAgICAgICAgICJtb2RlIjogInJlcHVsc2UiCiAgICAgICAgfSwKICAgICAgICAib25jbGljayI6IHsKICAgICAgICAgICJlbmFibGUiOiB0cnVlLAogICAgICAgICAgIm1vZGUiOiAicHVzaCIKICAgICAgICB9LAogICAgICAgICJyZXNpemUiOiB0cnVlCiAgICAgIH0sCiAgICAgICJtb2RlcyI6IHsKICAgICAgICAiZ3JhYiI6IHsKICAgICAgICAgICJkaXN0YW5jZSI6IDQwMCwKICAgICAgICAgICJsaW5lX2xpbmtlZCI6IHsKICAgICAgICAgICAgIm9wYWNpdHkiOiAxCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYnViYmxlIjogewogICAgICAgICAgImRpc3RhbmNlIjogNDAwLAogICAgICAgICAgInNpemUiOiA4MCwKICAgICAgICAgICJkdXJhdGlvbiI6IDIsCiAgICAgICAgICAib3BhY2l0eSI6IDgsCiAgICAgICAgICAic3BlZWQiOiAzCiAgICAgICAgfSwKICAgICAgICAicmVwdWxzZSI6IHsKICAgICAgICAgICJkaXN0YW5jZSI6IDIwMAogICAgICAgIH0sCiAgICAgICAgInB1c2giOiB7CiAgICAgICAgICAicGFydGljbGVzX25iIjogNAogICAgICAgIH0sCiAgICAgICAgInJlbW92ZSI6IHsKICAgICAgICAgICJwYXJ0aWNsZXNfbmIiOiAyCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgInJldGluYV9kZXRlY3QiOiB0cnVlLAogICAgImNvbmZpZ19kZW1vIjogewogICAgICAiaGlkZV9jYXJkIjogZmFsc2UsCiAgICAgICJiYWNrZ3JvdW5kX2NvbG9yIjogIiNiNjE5MjQiLAogICAgICAiYmFja2dyb3VuZF9pbWFnZSI6ICIiLAogICAgICAiYmFja2dyb3VuZF9wb3NpdGlvbiI6ICI1MCUgNTAlIiwKICAgICAgImJhY2tncm91bmRfcmVwZWF0IjogIm5vLXJlcGVhdCIsCiAgICAgICJiYWNrZ3JvdW5kX3NpemUiOiAiY292ZXIiCiAgICB9CiAgfQoKKTs="}},"time_used":991,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":991,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.html","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.150Z","timestamp":1785126646150,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.html HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 03:44:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 189\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, must-revalidate\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":315,"size_decoded":446,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a34ac19f4afae63adc5d2f7bc970c07f","sha1":"a82190fc530c265aa40a045c21770d967f4767b8","sha256":"d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3","sha512":"42e53d96e5961e95b7a984d9c9778a1d3bd8ee0c87b8b3b515fa31f67c2d073c8565afc2f4b962c43668c4efa1e478da9bb0ecffa79479c7e880731bc4c55765","ssdeep":"","tlshash":"b0e0e75f41473347402252907dc110d1d505236b797161fd3d85b4ab501dc3dc99f7dc","first_seen":"2023-03-07T01:02:33Z","last_seen":"2026-07-27T07:40:01.471307Z","times_seen":146478,"resource_available":true,"data":"PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VOIj4KPGh0bWw+PGhlYWQ+Cjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT4KPC9oZWFkPjxib2R5Pgo8aDE+Tm90IEZvdW5kPC9oMT4KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+CjxwPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kCmVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LjwvcD4KPC9ib2R5PjwvaHRtbD4K"}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":33,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1958.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.640Z","timestamp":1785126646640,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1958.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2699\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Mon, 27 Jul 2026 03:33:52 GMT\r\nlast-modified: Tue, 19 Oct 2021 05:33:52 GMT\r\netag: \"739797800c1ad83ba9a3cdddb9824693\"\r\ncache-control: max-age=86400\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nage: 3415\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nvary: Origin\r\nx-amz-cf-id: GdyqdZh0qMBhAxJyId_HVAH5gDkJb32oWatfzLvobfSZzPdiqPuGoA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2699,"size_decoded":3207,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"739797800c1ad83ba9a3cdddb9824693","sha1":"8fa44745cb0a87a781317153ffebcca127e4c498","sha256":"6de001279f8561ebcd5da21d426f25f0f554b5f665638e84b33876a079c56c52","sha512":"25ec9a6e68a3024e7054c566336ca457a8116c6d29c5b2a901c98ef4d1f14c0adeb8ef16f56bd8d2e07466ee81c0146adc992289efce6a9fa8c2796edd4c0fe8","ssdeep":"","tlshash":"a7511a5335d2fada77c981c3f942215cc720d62d4306a2e7b535078feb06861dba520b","first_seen":"2023-05-17T08:55:45Z","last_seen":"2026-07-27T08:07:37.345519Z","times_seen":2944,"resource_available":false,"data":"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"}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/7083.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.816Z","timestamp":1785126646816,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/7083.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 4286\r\nage: 9323\r\nlast-modified: Tue, 19 Oct 2021 05:36:00 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 01:55:51 GMT\r\ncache-control: max-age=86400\r\netag: \"24c244a9b134b0b20dc773ff3205ceff\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: Jhh8mqI_DD2yhav8O1JLOWaQhw7ckCWxq1n_fJL2U5rT4jNGGAIu8Q==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":4286,"size_decoded":4811,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"24c244a9b134b0b20dc773ff3205ceff","sha1":"4cc2e56268b05b16e8f83994d123b718dbd9aed2","sha256":"965d190fded64a36997b47c11a127aa66fdfa182642f24ba11d1271674142a74","sha512":"66e2c72c9479ae0c4a36f6d8a1a5074f2ffc484fd39bb7a19bd84def584071affe5dd95f960462a713b873042a18302ea921c319d9e177aec1cfbc8d99e87607","ssdeep":"96:qnaFq4eHDfniUwYKYmtTTbnTJXZiTvTYZb51oQpuz:qnaFq4eDfnIYmlTJZuet1puz","tlshash":"74917da5179858b86680474fdfe543cf4f932db31000552f2f90f59a6b38f7a5248cb8","first_seen":"2023-05-08T12:03:54Z","last_seen":"2026-07-27T08:07:37.455781Z","times_seen":1229,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcaNpafnd6vfh7PnL4Pfv8ffG3vz7//nt8vjY5/nu9PrQ4/j19u7u7vfm7vjO4f3x9/ns8vfs8fru9PXc6PLR4evM4vTp7vry9vfs8u3Z4/fp8Pnz9+3n6/r1+Pjz9vry9vLZ5PnD2/fO4ffU5Pb28vjn7/jf7Prp8frz9/r19vnx9ffg6/DS4Pjd6vTc6f////jn7/v1+PfW5PPT4+XX3fr29/LS3/bA2fPR4vu74vfr7//2+u631/nz+fbp7f/0+f7z+f/x+P/4/P/0+/70+//m8/7w9/3p8v7v9v/t9v3l8v/r9f/s9P30+v3n8/3r9P7q9f/m9f3v9vz3+//y+fzk8f/s9/3y+P7o9P/k8v/1/P/v9vvs9P////vo8vru9P3p9Pzx9//3/Pzw+Pnr8//6/fvw9v34/P/o9fzr8v3n9PoCev/8//fx8/7k8f8Dfvrj8Prm8vj1+//k8/wDfv4Befny+Pni7fvl7vUAb/zy+vz+//72+/3u9vz3///u+v33+/AAcPjq8P/p9/rY6f3x//7i8OoGc/vc7P3t9P/U7OoAa//w/Pry/f/4///1//ju9/kGgPUAdPvo7/bM6//z/PGs1/v5+vzS5ed9ufX6/elorvju7/nt+v3j7t5uq/7e7u2/3fzG5Pzy9f/T5/j4+OiGv+MKc/v8//QHfPj//+cjgudcpvjT5//n8P/e8P3O4/Xt9fCVyuAUd+yby/bB5+aky/fT7//N6fHH5eItiPnZ9u8AZ/3v8/XN5+AefP/Z7NMXcfG33/re8PkAcegSe+Ct0PABdf3g9uyIw+UBb/TZ7uxSot0+jutxs/7p+vbg8uBlp+MAZPD19eE2jOys0/S+4u7h8P3q/tsSdffi+uBTnOK+1+NKl9lgoPTn9e+Ox9krfuk6kuJbofvk9uxFm+6i0N0GbPvW7OePvuouif/l/eeWx+3V5few3OF5sNiSts5flvHv8M83g9qDsMtFjNZ3q+DY4NSextROktwAYdu0y9Nsotuhwckqevm4aWsAAACadFJOUwAB/P3+K/4BAv39/f0H/ukZ6bf2hrj+XtDQXW2+F+p1hHn99tAUquv1XY+Mj9HNOwSPOviPKqpt+6r+gj34Lh////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HGF5lAAAMtklEQVRYw4xWe1BTdxa+QlkgIFW0itWqu7Wt1u4u6+72j52dndyYcHMJ3ETz8CJNiDExmRCyPEwuBnIhyUghGwkBFCS8igiER7UIyPASURER8Q2KLxzro1rfbafttt09N3S7u3ba3TOTe2cyv/Od7zu/87gI8iMLjoZHdNCq5ZFRc+fJHSvnLopcvjDI/2cw8r+NcY/+89tR89huN1er0TgcNGfXrtiVi1avif5/IODQnGVRXEVRnEPjYLGUYA5H6bZMPpbCWbRsjv/Az1hIMPLa8qUKq4Yll6sJq41HECghxUitx5OelhafOHf5a0hwyM+Fn7VsqYJgsbQkLzGRx0N5PC6bRHkoAUC0PCKQ7567eNZPkgD1f1mikLKMlMTK5lnZKJfN5rJR8EelKBjJkUdkxuyKDPqJTAQHI6vCUxxyQmKzQXAuj82DF+OIoioSniTJwfSBgZyVC5mzP/ZHkLcVJIuy6iQS3WaUx0XZAIH6jWRMRWpVHA6eHliT+zv/8RfSh8x+V6E1EjqdFTIHzNlgPDYTnuHgd1epMA4JJLbnvTkbmfVC/JDZSxQsrUS3xcZjHGfsewEcDkfKwTCMI8XgQqTyzIAdkbNnBb+Qv3cVLMomsUkkPEY8yjDgQWQeSkoxQIDQEB8Ta1X4e6LMgNw3/zuT0aCfRUl0VLiO4ELu2OgP6lVAQKVk4sNPrNRqcRyL/yBgxzv/eZvRyCoFS2mVEJIvAxUqNkFAGjCOiiLJLIoiITy40hhHDfFVNI4PDCQEhsYtREL+ncCg8AyjRGcjvNTTBS3qjCy0oaGe9PmocAoQMEwK4tWYVo3V1+NAQEw7SwMKAoJ+QAgJWZLCkuh0tvIG3dlnR1qqKCq8wfvltR5vtrGeQ2UBAxVHzFJ7tJxYMYY7aSceKwvdGBkS8i8BixW0ygZWXk+1fPJZp8KTQTaM1T16+m2d78JArlqMiYG6ODfQo47FMJrWOJ1xcTWhGxbPpCE4+I2lEpxrBQBJBkFlH/pHYwqhzO4cqrxc90WFz6hW4nIn7kRt6deyKBpzAgDt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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/style.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.615Z","timestamp":1785126645615,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/style.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 20199\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":140705,"size_decoded":20448,"mime_type":"text/css","magic":"ASCII text","md5":"4d1c2b838ba6401ff7d0785d5aca221e","sha1":"85b686806651982e5c495fe245fe3272acf79fe6","sha256":"cdffee147101259371fa58ea92179fe7360e8dd25e4faefba94e391c4c65dd51","sha512":"a55eafb16569b93c6b63e43f3658700a7a5738de6740a60870c49d54ce3c69b39b7cf6b168cd7d59a5789044c46cdc61ef4be7e2a99ebc43c819e9788e7a387b","ssdeep":"3072:VUrhwUFWu304K8Qd/gges1Ud3d0/1pdldXOd+dJdZdkdyd3dxkvU4itEwUjwU3lw:VUrhwUFWu39K8Qd/gges1Ud3d0/1pdlt","tlshash":"79d33596d6671500b427c5689beab784232c9013a51ee9fcbbcd3a1c8fc57ec50a3b4d","first_seen":"2025-03-17T20:39:33.074994Z","last_seen":"2026-07-27T04:32:40.540863Z","times_seen":5,"resource_available":false,"data":"CgpAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU1vbnRzZXJyYXQ6NDAwLDQwMGksNTAwLDUwMGksNjAwLDYwMGksNzAwLDcwMGksODAwLDgwMGknKTsKCi5hbGlnbmxlZnQgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7Cn0KLmFsaWducmlnaHQgewogICAgZmxvYXQ6IHJpZ2h0OwogICAgbWFyZ2luLWxlZnQ6IDE1cHg7Cn0KLmFsaWduY2VudGVyIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luOiAwIGF1dG8gMTVweDsKfQphOmZvY3VzIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KaW1nIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGhlaWdodDogYXV0bzsKfQpoMSwKaDIsCmgzLApoNCwKaDUsCmg2IHsKICAgIG1hcmdpbjogMCAwIDE1cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IzM3MzczNzsKICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7Cgp9Cgpib2R5IHsKICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgbGluZS1oZWlnaHQ6IDEuNTsKfQphOmhvdmVyIHsgCiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgCn0KCi5zZWN0aW9uLWhlYWRlcnsKICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQouc2VjdGlvbi1oZWFkZXIgaDR7CiAgICBmb250LXNpemU6IDIwcHg7Cn0KLnNlY3Rpb24taGVhZGVyIGgzewogICAgZm9udC1zaXplOiAzNXB4OwogICAgY29sb3I6IzM0OThkYjsKCn0KLnNlY3Rpb24taGVhZGVyIGgzIHNwYW57CiAgICBjb2xvcjogIzJjM2U1MDsKfQouc2VjdGlvbi1oZWFkZXIgcHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouc2VjdGlvbi1oZWFkZXIgcDpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOjUwJTsKICAgIHJpZ2h0OjM4JTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICB3aWR0aDoxMjBweDsKICAgIGhlaWdodDogM3B4OwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoycHg7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIC1tb3otdHJhbnNmb3JtOiAgICB0cmFuc2xhdGVZKC01MCUpOwogICAgICAtbXMtdHJhbnNmb3JtOiAgICB0cmFuc2xhdGVZKC01MCUpOwogICAgICAtby10cmFuc2Zvcm06ICAgICB0cmFuc2xhdGVZKC01MCUpOwogICAgICB0cmFuc2Zvcm06ICAgICAgICB0cmFuc2xhdGVZKC01MCUpOwogICAgCn0KLnNlY3Rpb24taGVhZGVyIHA6YWZ0ZXJ7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOjUwJTsKICAgIGxlZnQ6MzglOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIHdpZHRoOjEyMHB4OwogICAgaGVpZ2h0OiAzcHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAtbW96LXRyYW5zZm9ybTogICAgdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgLW1zLXRyYW5zZm9ybTogICAgdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgLW8tdHJhbnNmb3JtOiAgICAgdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgdHJhbnNmb3JtOiAgICAgICAgdHJhbnNsYXRlWSgtNTAlKTsKCn0KLnNlY3Rpb24taGVhZGVyMSBwOmJlZm9yZXsKICAgIHJpZ2h0OjM5JTsKfQouc2VjdGlvbi1oZWFkZXIxIHA6YWZ0ZXJ7CiAgICBsZWZ0OjM5JTsKfQouc2VjdGlvbi1oZWFkZXIgcCBpbWd7CiAgICAKfQouc2VjdGlvbi1wYWRkaW5newogICAgcGFkZGluZzogODVweCAwcHg7Cn0KLyo9PT09PT09PT0gUHJlLUxvYWRlciA9PT09PT09PT0qLwoKLnByZWxvYWRlciB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvdHRvbTogMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICB6LWluZGV4OiA5OTk5OTk5OQp9CgpbZGF0YS1sb2FkZXI9Y2lyY2xlLXNpZGVdIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiA1MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICBtYXJnaW4tbGVmdDogLTI1cHg7CiAgICBtYXJnaW4tdG9wOiAtMjVweDsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjaXJjbGUgaW5maW5pdGUgLjk1cyBsaW5lYXI7CiAgICAtbW96LWFuaW1hdGlvbjogY2lyY2xlIGluZmluaXRlIC45NXMgbGluZWFyOwogICAgLW8tYW5pbWF0aW9uOiBjaXJjbGUgaW5maW5pdGUgLjk1cyBsaW5lYXI7CiAgICBhbmltYXRpb246IGNpcmNsZSBpbmZpbml0ZSAuOTVzIGxpbmVhcjsKICAgIGJvcmRlcjogMnB4IHNvbGlkICMzNDk4ZGI7CiAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yKTsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yKTsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIC1tcy1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgYm9yZGVyLXJhZGl1czogMTAwJQp9CgoubWFpbl90aXRsZSwKLm1haW5fdGl0bGVfMiB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwb3NpdGlvbjogcmVsYXRpdmUKfQoKQC13ZWJraXQta2V5ZnJhbWVzIGNpcmNsZSB7CiAgICAwJSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKQogICAgfQogICAgMTAwJSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykKICAgIH0KfQoKQC1tb3ota2V5ZnJhbWVzIGNpcmNsZSB7CiAgICAwJSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKQogICAgfQogICAgMTAwJSB7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykKICAgIH0KfQoKQC1vLWtleWZyYW1lcyBjaXJjbGUgewogICAgMCUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7CiAgICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMCk7CiAgICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMCk7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkKICAgIH0KICAgIDEwMCUgewogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpCiAgICB9Cn0KCkBrZXlmcmFtZXMgY2lyY2xlIHsKICAgIDAlIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMCk7CiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDApOwogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApCiAgICB9CiAgICAxMDAlIHsKICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKQogICAgfQp9Ci8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAqKiAgMDEuIDAxLiBIZWFkZXIgU3VwcG9ydCBCYXIgKioKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwouc3VwcG9ydC1iYXItdG9wIHsKICAgIGJhY2tncm91bmQ6ICMxRTAwM0Q7CiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgIzM0OThkYjsKfQoKLnN1cHBvcnQtYmFyLXRvcCBhIHsKICAgIGNvbG9yOiAjZmZmOwogICAgcGFkZGluZzogMTBweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHRyYW5zaXRpb246IC41czsKfQouc3VwcG9ydC1iYXItdG9wIGE6bGFzdC1jaGlsZHsKICAgIHBhZGRpbmctcmlnaHQ6MHB4Owp9Cgouc3VwcG9ydC1iYXItc29jaWFsLWxpbmtzIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKLnN1cHBvcnQtYmFyLXRvcCBhOmhvdmVyIHsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Ci5zdXBwb3J0LWJhci10b3AgYSBzcGFuIHsKICAgIHBhZGRpbmctbGVmdDogMThweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKLnN1cHBvcnQtYmFyLXRvcCBhIHNwYW46aG92ZXIsCi5zdXBwb3J0LWJhci10b3AgYTpob3ZlciBzcGFuIHsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Ci5zdXBwb3J0LWJhci10b3AgYSBwewogICAgZGlzcGxheTppbmxpbmU7Cn0KLnN1cHBvcnQtYmFyLXRvcCBhOmZpcnN0LWNoaWxkewogICAgcGFkZGluZy1sZWZ0OiAwcHg7Cn0KYS5zaG9wLWNhcnQgc3BhbiB7CiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7Cn0KYS5zaG9wLWNhcnQgc3Bhbi5oa19jYXJ0X2l0ZW0gewogICAgcGFkZGluZzogMHB4Owp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgKiogMDEuIDAyLiBNYWluIE1lbnUgICoqCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCi5tYWluLW1lbnV7CiAgICB3aWR0aDogMTAwJTsKICAgIHotaW5kZXg6IDk5OwogICAgYm94LXNoYWRvdzogMHB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpOwp9Ci5tYWluLW1lbnUgdWwgewogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogMDsKfQoKLm1haW4tbWVudSB1bCBsaSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaXN0LXN0eWxlOiBub25lOwp9Ci5tYWluLW1lbnUgdWwgbGk6bGFzdC1jaGlsZCBhewogICAgcGFkZGluZy1yaWdodDowcHg7Cn0KCi5tYWluLW1lbnUgdWwgbGkgYSB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICMzMzM7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgdHJhbnNpdGlvbjogLjVzOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBwYWRkaW5nOiAzN3B4IDE1cHg7Cn0KCi5tYWluLW1lbnUgdWwgIGxpIGE6OmJlZm9yZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb250ZW50OiAiIjsKICAgIGJhY2tncm91bmQ6ICMzNDk4ZGI7CiAgICBib3R0b206IDMwcHg7CiAgICBoZWlnaHQ6IDVweDsKICAgIHdpZHRoOiA1cHg7CiAgICBvcGFjaXR5OiAwOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNTAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MCU7ICAKICAgIGxlZnQ6IDUwJTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZSAuMHMsIGJvdHRvbSAuMHMgZWFzZSAuNXMsIGhlaWdodCAuMHMgZWFzZSAuNXMsIHdpZHRoIC4wcyBlYXNlIC41cywgYm9yZGVyLXJhZGl1cyAuMHMgZWFzZSAuNXMsIGxlZnQgLjBzIGVhc2UgLjVzOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZSAuMHMsIGJvdHRvbSAuMHMgZWFzZSAuNXMsIGhlaWdodCAuMHMgZWFzZSAuNXMsIHdpZHRoIC4wcyBlYXNlIC41cywgYm9yZGVyLXJhZGl1cyAuMHMgZWFzZSAuNXMsIGxlZnQgLjBzIGVhc2UgLjVzOwp9CgoubWFpbi1tZW51IHVsICBsaSBhOmhvdmVyOjpiZWZvcmUgewogICAgaGVpZ2h0OiA1cHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOwogICAgYm90dG9tOiAtMXB4OwogICAgb3BhY2l0eTogMTsKICAgIGxlZnQ6IDA7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjBzIGVhc2UgLjBzLCBib3R0b20gLjNzIGVhc2UgLjBzLCBoZWlnaHQgLjNzIGVhc2UgLjNzLCB3aWR0aCAuM3MgZWFzZSAuM3MsIGJvcmRlci1yYWRpdXMgLjNzIGVhc2UgLjNzLCBsZWZ0IC4zcyBlYXNlIC4zczsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjBzIGVhc2UgLjBzLCBib3R0b20gLjNzIGVhc2UgLjBzLCBoZWlnaHQgLjNzIGVhc2UgLjNzLCB3aWR0aCAuM3MgZWFzZSAuM3MsIGJvcmRlci1yYWRpdXMgLjNzIGVhc2UgLjNzLCBsZWZ0IC4zcyBlYXNlIC4zczsKfQoKI2hlYWRlci1tZW51Pi5hY3RpdmU+YSwgLm1haW4tbWVudS1hY3RpdmU+LmFjdGl2ZT5hOmZvY3VzLCAubWFpbi1tZW51LWFjdGl2ZT4uYWN0aXZlPmE6aG92ZXJ7CiAgICBjb2xvcjogIzM0OThkYjsKfQoKI2hlYWRlci1tZW51Pi5tZW51LWFjdGl2ZT5hOjpiZWZvcmV7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogNXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDA7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7CiAgICBib3R0b206IC0xcHg7CiAgICBvcGFjaXR5OiAxOwogICAgbGVmdDogMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuMHMgZWFzZSAuMHMsIGJvdHRvbSAuM3MgZWFzZSAuMHMsIGhlaWdodCAuM3MgZWFzZSAuM3MsIHdpZHRoIC4zcyBlYXNlIC4zcywgYm9yZGVyLXJhZGl1cyAuM3MgZWFzZSAuM3MsIGxlZnQgLjNzIGVhc2UgLjNzOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMHMgZWFzZSAuMHMsIGJvdHRvbSAuM3MgZWFzZSAuMHMsIGhlaWdodCAuM3MgZWFzZSAuM3MsIHdpZHRoIC4zcyBlYXNlIC4zcywgYm9yZGVyLXJhZGl1cyAuM3MgZWFzZSAuM3MsIGxlZnQgLjNzIGVhc2UgLjNzOwp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudSAubWVnYS1saXN0PmEubWVudS1hY3RpdmUsIC5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudSAubWVnYS1saXN0MT5hLm1lbnUtYWN0aXZlOmZvY3VzLCAubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdDE+YS5tZW51LWFjdGl2ZTpob3ZlcnsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudSAubWVnYS1saXN0PmEubWVudS1hY3RpdmU6OmJlZm9yZXsKICAgIGNvbnRlbnQ6ICIiOwogICAgaGVpZ2h0OiA1cHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDsKICAgIGJvdHRvbTogLTFweDsKICAgIG9wYWNpdHk6IDE7CiAgICBsZWZ0OiAwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4wcyBlYXNlIC4wcywgYm90dG9tIC4zcyBlYXNlIC4wcywgaGVpZ2h0IC4zcyBlYXNlIC4zcywgd2lkdGggLjNzIGVhc2UgLjNzLCBib3JkZXItcmFkaXVzIC4zcyBlYXNlIC4zcywgbGVmdCAuM3MgZWFzZSAuM3M7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4wcyBlYXNlIC4wcywgYm90dG9tIC4zcyBlYXNlIC4wcywgaGVpZ2h0IC4zcyBlYXNlIC4zcywgd2lkdGggLjNzIGVhc2UgLjNzLCBib3JkZXItcmFkaXVzIC4zcyBlYXNlIC4zcywgbGVmdCAuM3MgZWFzZSAuM3M7Cn0KIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IGg1IGEubWVudS1hY3RpdmUsIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IGg1IGEubWVudS1hY3RpdmU6aG92ZXJ7CiAgICBjb2xvcjogIzM0OThkYjsKfQoubWVnYS1tZW51IC5tZWdhLWxpc3QgLm1lZ2EtbWVudS1pdGVtIC5tZWdhLW1lbnUtY29udGVudCBoNSBhLm1lbnUtYWN0aXZlOjpiZWZvcmV7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogNXB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDA7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7CiAgICBib3R0b206IC0xcHg7CiAgICBvcGFjaXR5OiAxOwogICAgbGVmdDogMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuMHMgZWFzZSAuMHMsIGJvdHRvbSAuM3MgZWFzZSAuMHMsIGhlaWdodCAuM3MgZWFzZSAuM3MsIHdpZHRoIC4zcyBlYXNlIC4zcywgYm9yZGVyLXJhZGl1cyAuM3MgZWFzZSAuM3MsIGxlZnQgLjNzIGVhc2UgLjNzOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMHMgZWFzZSAuMHMsIGJvdHRvbSAuM3MgZWFzZSAuMHMsIGhlaWdodCAuM3MgZWFzZSAuM3MsIHdpZHRoIC4zcyBlYXNlIC4zcywgYm9yZGVyLXJhZGl1cyAuM3MgZWFzZSAuM3MsIGxlZnQgLjNzIGVhc2UgLjNzOwp9Ci5sb2dvIHsKICAgIHBhZGRpbmc6IDE1cHggMDsKICAgIHBhZGRpbmctdG9wOiAyM3B4Owp9Ci5tYWluLW1lbnUgdWwgbGkgYTpob3ZlcnsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudXsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDoxMDAlOwogICAgbGVmdDogMDsKICAgIHBhZGRpbmc6IDBweDsKICAgIHJpZ2h0OjMwcHg7CiAgICBmbG9hdDogbGVmdDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOnRvcDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDsKICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICBib3JkZXI6bm9uZTsKICAgIGxpc3Qtc3R5bGU6bm9uZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLDAsMCwwLjE3NSk7CiAgICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwwLDAsMC4xNzUpOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLDApOwogICAgICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEsMCk7CiAgICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwwKTsKICAgICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLDApOwogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsMCk7Cn0KCi5tYWluLW1lbnUgdWwgbGk6aG92ZXIgICAubWVnYS1tZW51ewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsMSk7CiAgICAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSwxKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLDEpOwogICAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEsMSk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwxKTsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWxpc3R7CiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjc0cHgpOwogICAgcGFkZGluZzogMzBweCAwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7Cn0KLm1haW4tbWVudSB1bCBsaSAgIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW17CiAgICBmbG9hdDogbGVmdDsKICAgIHdpZHRoOjUwJTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2RlNmYwOwogICAgcGFkZGluZy10b3A6IDI1cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KLm1haW4tbWVudSB1bCBsaSAgIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW06bnRoLWNoaWxkKDEpewogICAgYm9yZGVyLXRvcDpub25lOwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgI2NkZTZmMDsKfQoubWFpbi1tZW51IHVsIGxpICAgLm1lZ2EtbWVudSAubWVnYS1saXN0IC5tZWdhLW1lbnUtaXRlbTpudGgtY2hpbGQoMil7CiAgICBib3JkZXItdG9wOm5vbmU7CiAgICBwYWRkaW5nLXRvcDogMHB4Owp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWxpc3QgLm1lZ2EtbWVudS1pdGVtOm50aC1jaGlsZCgzKXsKICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgI2NkZTZmMDsKfQoubWFpbi1tZW51IHVsIGxpICAgLm1lZ2EtbWVudSAubWVnYS1saXN0IC5tZWdhLW1lbnUtaXRlbSAubWVnYS1tZW51LXRodW1iewogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CiAgICB3aWR0aDo1MHB4OwogICAgaGVpZ2h0OiA1MHB4Owp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWxpc3QgLm1lZ2EtbWVudS1pdGVtIC5tZWdhLW1lbnUtY29udGVudHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwoKfQoubWFpbi1tZW51IHVsIGxpICAgLm1lZ2EtbWVudSAubWVnYS1iYW5uZXIgewogICAgZmxvYXQ6IHJpZ2h0OwogICAgd2lkdGg6Mjc0cHg7CiAgICBwYWRkaW5nOiAyN3B4IDIxcHggMzdweCAyM3B4Owp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWJhbm5lciAubWVnYS1tZW51LWJhbm5lcnsKICAgYmFja2dyb3VuZDogIzM0OThkYjsKICAgIHBhZGRpbmc6IDIzcHggMzJweCAyOHB4IDMycHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWJhbm5lciAubWVnYS1tZW51LWJhbm5lciBoM3sKICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWJhbm5lciAubWVnYS1tZW51LWJhbm5lciBoMy5vcGFjaXR5ewogICAgbWFyZ2luOiAwOwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwp9Ci5tYWluLW1lbnUgdWwgbGkgICAubWVnYS1tZW51IC5tZWdhLWJhbm5lciAubWVnYS1tZW51LWJhbm5lciBhewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtc2hhZG93OiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgcGFkZGluZzogMDsKICAgIGxpbmUtaGVpZ2h0OiAzN3B4OwogICAgYm94LXNoYWRvdzogbm9uZTsKfQoKLm1haW4tbWVudSB1bCBsaSAubWVnYS1tZW51MSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUwMDNkOwp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudSAubWVnYS1saXN0MSB7CiAgICBwYWRkaW5nOiAwcHggMHB4OwogICAgd2lkdGg6IDMzLjMzJTsKICAgIGZsb2F0OiBsZWZ0OwogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2RlNmYwOwp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudTEgLm1lZ2EtbGlzdDE6Zmlyc3QtY2hpbGR7CiAgICBib3JkZXItbGVmdDogbm9uZTsKfQoubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdDEgYSB7CiAgICBwYWRkaW5nOiAxNXB4IDlweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNvbG9yOiAjZmZmOwp9Ci5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IGg1IGEgewogICAgcGFkZGluZzogMHB4IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMHB4Owp9Ci5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IGg1IHsKICAgIG1hcmdpbjowcHg7Cn0KLm1lZ2EtbWVudSAubWVnYS1saXN0IC5tZWdhLW1lbnUtaXRlbSAubWVnYS1tZW51LWNvbnRlbnQgcHsKICAgIG1hcmdpbjowcHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgbGluZS1oZWlnaHQ6IDI2cHg7Cn0KLm1haW4tbWVudSB1bCBsaSAubWVnYS1tZW51MnsKICAgIHdpZHRoOjEwMHB4OwogICAgcmlnaHQ6MzBweDsKICAgIGxlZnQ6aW5oZXJpdDsKfQoubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUzewogICAgbGVmdDo1MHB4OwogICAgd2lkdGg6IDEwMHB4Owp9CgoubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUyIC5tZWdhLWxpc3QxewogICAgd2lkdGg6MTAwJTsKfQoubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUzIC5tZWdhLWxpc3QxewogICAgd2lkdGg6IDEwMCU7Cn0KLm1haW4tbWVudS5tZW51LWZpeGVkIHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAwOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogYXV0bzsKICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfQoKCi5hbmltYXRlZCB7CiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7CiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOwogIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH0KCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfQpALW1vei1rZXlmcmFtZXMgZmFkZUluRG93biB7CiAgZnJvbSB7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOyB9CiAgdG8gewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgdHJhbnNmb3JtOiBub25lOyB9IH0KQC1vLWtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfQpAa2V5ZnJhbWVzIGZhZGVJbkRvd24gewogIGZyb20gewogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfQogIHRvIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsKICAgIHRyYW5zZm9ybTogbm9uZTsgfSB9CkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfQpALW1vei1rZXlmcmFtZXMgZmFkZUluRG93biB7CiAgZnJvbSB7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOyB9CiAgdG8gewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogICAgdHJhbnNmb3JtOiBub25lOyB9IH0KQC1vLWtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7CiAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfQpAa2V5ZnJhbWVzIGZhZGVJbkRvd24gewogIGZyb20gewogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfQogIHRvIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsKICAgIHRyYW5zZm9ybTogbm9uZTsgfSB9Ci5mYWRlSW5Eb3duIHsKICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOwogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOyB9CgoKCgouc2xpY2tuYXZfbWVudXsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgICoqIDAyLiAgYmFubmVyIFNlY3Rpb24gICoqCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLmNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sMSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICBmb250LXNpemU6IDI1cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGhlaWdodDogNDJweDsKICAgIHdpZHRoOiA0MnB4OwogICAgbGluZS1oZWlnaHQ6IDQycHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tdG9wOiAtMjFweDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwp9Ci5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbDEubGVmdCB7CiAgICBsZWZ0OiAwOwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7Cn0KLmNhcm91c2VsIC5jYXJvdXNlbC1jb250cm9sMS5yaWdodCB7CiAgICByaWdodDogMDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsKfQouY2Fyb3VzZWwtaW5kaWNhdG9ycyB7CiAgICAgYm90dG9tOiAtMzVweDsgCn0KLmNhcm91c2VsLWluZGljYXRvcnMgbGkgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBtYXJnaW46IDBweDsKICAgIHRleHQtaW5kZW50OiAtOTk5cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOwogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDsKfQoKLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7CiAgICB3aWR0aDogMTJweDsKICAgIGhlaWdodDogMTJweDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7Cn0KLmhlYWRlci1vdmVybGF5ewogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5oZWFkZXItb3ZlcmxheTpiZWZvcmUgewogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgb3BhY2l0eTogLjc7CiAgICAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9OTcpIjsKICAgIHotaW5kZXg6IC0xOwp9Ci5oZWFkZXItYmd7CiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkOwogICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7Cn0KLmhlYWRlci1hcmVhewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZzogMTEwcHggMDsKICAgIHotaW5kZXg6IDI3Owp9Ci5oZWFkZXItYXJlYTphZnRlcnsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICB0b3A6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGJhY2tncm91bmQ6ICAjMDAwOwogICAgb3BhY2l0eTogLjc7CiAgICBjb250ZW50OiAiIjsKICAgIHotaW5kZXg6IC0xOwp9CgouaGVhZGVyLXNlY3Rpb24tdG9wLXBhcnQgaDEsCi5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMiB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMzhweDsKICAgIGZvbnQtd2VpZ2h0OjQwMDsKfQoKLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IGgyIHsKICAgIGZvbnQtc2l6ZTogNDBweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsKICAgIGNvbG9yOiMzNDk4ZGI7Cgp9CgouaGVhZGVyLXNlY3Rpb24td3JhcHBlciB7CiAgICBjb2xvcjogI2ZmZjsKICAgIHBvc2l0aW9uOiAgcmVsYXRpdmU7CiAgICB6LWluZGV4OiAgOTk5OTsKfQouaGVhZGVyLXNlY3Rpb24td3JhcHBlcjF7CiBjb2xvcjogIzc1NzU3NTsKfQoKLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IHAgewogICAgcGFkZGluZy1ib3R0b206IDQ1cHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQovKkRvbWFpbiBTZWFyY2ggRm9ybSovCgouZG9tYWluLXNlYXJjaC1mcm9tIGlucHV0W3R5cGU9dGV4dF0gewogICAgcGFkZGluZzogOHB4IDIwcHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMzQ5OGRiOwogICAgY29sb3I6ICMwMDA7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7CiAgICB3aWR0aDogNjAlOwp9CgouZG9tYWluLXNlYXJjaC1mcm9tIHNlbGVjdCB7CiAgICBjb2xvcjogIzAwMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIHdpZHRoOiAxOCU7Cn0KCi5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICAgIGJhY2tncm91bmQ6ICMzNDk4ZGI7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDlweCAyMHB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHdpZHRoOiAxOCU7CiAgICB0cmFuc2l0aW9uOiAuNXM7Cn0KLmRvbWFpbi1zZWFyY2gtZnJvbSBpbnB1dFt0eXBlPXN1Ym1pdF06aG92ZXJ7CiAgICBiYWNrZ3JvdW5kOiAjMmMzZTUwOwogICAgY29sb3I6ICNmZmY7Cn0KLypjaXJjbGUgZG9tYWluIHByaWNlKi8KLmNpcmNsZS1zZWN0aW9uIHsKICAgIHBhZGRpbmctYm90dG9tOiA4MHB4Owp9Ci5zaW5nbGUtZG9tYWluLXJhdGUtY2lyY2xlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA5JTsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBjb2xvcjogIzMzMzsKICAgIHBhZGRpbmc6IDZweDsKICAgIGhlaWdodDogNjVweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA1MCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmctdG9wOiAxMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luOiAxJTsKICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KCi5kb21haW4tcmF0ZS13cmFwcGVyIHsKICAgIHBhZGRpbmctdG9wOiAxMHB4Owp9Cgouc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZXsKICAgIGJvcmRlcjoxcHggc29saWQgIzJjM2U1MDsKfQoKLnNpbmdsZS1kb21haW4tcmF0ZS1jaXJjbGU6aG92ZXIgewogICAgYmFja2dyb3VuZDogIzM0OThkYjsKICAgIGNvbG9yOiAjZmZmOwp9CgovKj09PT09PT09PT09PT09PT09PT09PQogICAwMy4gQWRtaW4gYXJlYQo9PT09PT09PT09PT09PT09PT09PT0qLwouYWRtaW4tc2VjdGlvbnsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgcGFkZGluZzogNTBweCAwcHg7CiAgICBib3JkZXItdG9wOjhweCBzb2xpZCAjMzQ5OGRiOwp9Ci5hZG1pbi1jb250ZW50ewogICAKfQouYWRtaW4tY29udGVudCAuYWRtaW4tdGV4dHsKICAgIGZsb2F0OmxlZnQ7Cn0KLmFkbWluLWNvbnRlbnQgLmFkbWluLXRleHQgcHsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHBhZGRpbmctdG9wOjEwcHg7Cn0KLmFkbWluLWNvbnRlbnQgLmFkbWluLXVzZXIgewogICAgZmxvYXQ6cmlnaHQ7Cn0KLmFkbWluLWNvbnRlbnQgLmFkbWluLXVzZXIgYnV0dG9uewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGJvcmRlcjoycHggc29saWQgIzM0OThkYjsKICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMjVweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjVweDsKICAgIGNvbG9yOiNmZmY7CiAgICBwYWRkaW5nOjEwcHggMjBweDsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgbWFyZ2luLXJpZ2h0OjIwcHg7CiAgICBvdXRsaW5lOm5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5hZG1pbi1jb250ZW50IC5hZG1pbi11c2VyIGJ1dHRvbjpob3ZlcnsKICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT0KICAwNC4gIHNlcnZpY2UgQXJlYQo9PT09PT09PT09PT09PT09PT09PT0qLwouc2VydmljZXMtc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKfQoKIC5zZXJ2aWNlLWNvbnRlbnR7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG92ZXJmbG93OiBoaWRkZW47CiB9CiAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHsKICAgCn0gCgogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjMmMzZTUwOwp9IAogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsewogICAgbWFyZ2luOjBweDsKICAgIHBhZGRpbmc6MHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogfQogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbGlzdC1zdHlsZTpub25lOwogICAgZmxvYXQ6bGVmdDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIG1hcmdpbi1yaWdodDo3MnB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogfQogIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaTpsYXN0LWNoaWxkewogICAgbWFyZ2luLXJpZ2h0OiAwcHg7CiB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmxhc3QtY2hpbGR7CiAgICBtYXJnaW4tcmlnaHQ6IDBweDsKIH0KICAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZTpsYXN0LWNoaWxkOmFmdGVyewogICAgbGVmdDogLTI4JTsKIH0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZTpiZWZvcmUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgY29udGVudDogIiI7CiAgICBib3R0b206IC0xM3B4OwogICAgbGVmdDogNDAlOwogICAgd2lkdGg6IDEwcHg7CiAgICBoZWlnaHQ6IDEwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgei1pbmRleDogMTsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmFmdGVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGNvbnRlbnQ6ICIiOwogICAgYm90dG9tOiAtOXB4OwogICAgbGVmdDogLTEwJTsKICAgIHdpZHRoOiAxNTBweDsKICAgIGhlaWdodDogM3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGk6bnRoLWNoaWxkKDMpLmFjdGl2ZTphZnRlciB7CiAgICBsZWZ0OiAtMjUlOwp9Ci5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaTpudGgtY2hpbGQoNCkuYWN0aXZlOmFmdGVyIHsKICAgIGxlZnQ6IC0yMCU7Cn0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpOm50aC1jaGlsZCg1KS5hY3RpdmU6YWZ0ZXIgewogICAgbGVmdDogLTEwJTsKfQogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpIC5zZXJ2aWNlLXRodW1iewogICAgYm9yZGVyOjFweCBkb3R0ZWQgIzJjM2U1MDsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHBhZGRpbmc6IDVweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CgogfQogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZSAuc2VydmljZS10aHVtYnsKICAgIGJvcmRlcjoxcHggc29saWQgIzM0OThkYjsKICAgICAKICAgIGNvbG9yOiAjZmZmOwoKIH0KIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBhICBpewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogOTBweDsKICAgIGhlaWdodDogOTBweDsKICAgIGxpbmUtaGVpZ2h0OiA5MHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICMyYzNlNTA7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmMzZTUwOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogNTBweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0ZXh0LXRyYW5zZm9ybTogIGNhcGl0YWxpemU7Cn0KIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSAgaXsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7Cn0KCgogIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSBzcGFuIGl7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKIH0KIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBhIHB7CiAgICBjb2xvcjogIzJjM2U1MDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBwYWRkaW5nLXRvcDoyMHB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIGZvbnQtc2l6ZToxNnB4OwogfQogIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSBwewogICAgY29sb3I6IzM0OThkYjsKCiB9CgogLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpIHAgewogICAgdGV4dC10cmFuc2Zvcm06ICBjYXBpdGFsaXplOwogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgcCB7CiAgICBjb2xvcjogIzM0OThkYjsKfQoKCi5zZXJ2aWNlLWl0ZW0gLnNlcnZpY2VzLWNvbnRlbnQtbGlzdCAuc2VydmljZS1jb250ZW50LWl0ZW0gLnNlcnZpY2UtdGV4dCB7CiAgICBwYWRkaW5nOiAxMDBweCAwcHg7Cn0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1pdGVtIC5zZXJ2aWNlLXRleHQgaDN7CiAgICBmb250LXNpemU6IDI1cHg7CiAgICBjb2xvcjojMjcyNzI3OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWl0ZW0gLnNlcnZpY2UtdGV4dCBwewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICMyNzI3Mjc7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQouc2VydmljZS10ZXh0LXBhcmEgewogICAgbWFyZ2luLWJvdHRvbTogMzBweDsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWl0ZW0gLnNlcnZpY2UtdGV4dCBhewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjojZmZmOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWl0ZW0gLnNlcnZpY2UtdGV4dCBhOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiNmZmY7Cn0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1pdGVtIC5zZXJ2aWNlLXRodW1iewogICAgcGFkZGluZy10b3A6IDkwcHg7Cn0KLnNlcnZpY2UtaXRlbSAuc2VydmljZXMtY29udGVudC1saXN0IC5zZXJ2aWNlLWNvbnRlbnQtaXRlbSAuc2VydmljZS10ZXh0ewogICAgcGFkZGluZzogMTAwcHggMHB4OwogICAgcGFkZGluZy1ib3R0b206IDBweDsKICAgIHBhZGRpbmctdG9wOjg1cHg7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMDUuIFByaWNpbmcgQXJlYQo9PT09PT09PT09PT09PT09PT09PT0qLwoKCi5wcmljaW5nLXNlY3Rpb257CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL2ltZy9wcmljZS1iZy5odG1sIik7CiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyIDsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4Owp9Ci5wcmljaW5nMS1zZWN0aW9uIHsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4Owp9Ci5wcmljaW5nMi1zZWN0aW9uIHsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4Owp9CgoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW17CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNTBweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1MHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW0gLnByaWNpbmctaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1MHB4OwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiAyMHB4IDBweDsKICAgIHBhZGRpbmctdG9wOiA0MHB4OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDkwcHg7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW06aG92ZXIgLnByaWNpbmctaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7Cn0KCi5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1oZWFkZXIgaDV7CiAgICBmb250LXNpemU6IDI1cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICNmZmY7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtIC5wcmljaW5nLWhlYWRlciBzcGFuewogICAgZm9udC1zaXplOiAzMHB4Owp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1oZWFkZXIgc3Bhbi5wcmljZXsKICAgIGZvbnQtc2l6ZTogNjVweDsKICAgIG1hcmdpbjowcHg7CiAgICBsaW5lLWhlaWdodDogMzBweDsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW0gLnByaWNpbmctaGVhZGVyIHB7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1pbmZvIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtOmhvdmVyIC5wcmljaW5nLWluZm97CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1pbmZvIHVsIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4OwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOTBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbTpob3ZlciAucHJpY2luZy1pbmZvIHVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtIC5wcmljaW5nLWluZm8gdWwgbGl7CiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjsKICAgIHBhZGRpbmc6IDEwcHggMHB4OwogICAgbGlzdC1zdHlsZTogbm9uZTsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW0gLnByaWNpbmctaW5mbyB1bCBsaTpmaXJzdC1jaGlsZHsKICAgIHBhZGRpbmctdG9wOjUwcHg7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtIC5wcmljaW5nLWluZm8gdWwgbGk6bGFzdC1jaGlsZHsKICAgIGJvcmRlci1ib3R0b206IDBweDsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW0gLnByaWNpbmctaW5mbyB1bCBsaSBwewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4Owp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1saW5rewogICAgcGFkZGluZzogNDBweCAwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW0gLnByaWNpbmctbGluayBhewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGNvbG9yOiAjMmMzZTUwOwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjBweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMHB4OwogICAgcGFkZGluZzogMTBweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwp9CgoKCgoKLyo9PT09PT09PT09PT09PT09PT09PT0KICAgMDYuIE90aGVyIHNlcnZpY2UgQXJlYQo9PT09PT09PT09PT09PT09PT09PT0qLwoub3RoZXItc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogODlweDsKfQoub3RoZXItc2VydmljZSB7CiAgbWFyZ2luLXRvcDogNzBweDsgfQogIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgewogICAgYm9yZGVyLXRvcDogM3B4ICBkb3R0ZWQgIzM0OThkYjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAtODBweDsKICAgICAgbGVmdDogMjAlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBkaXNwbGF5OiBibG9jazsgCiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpIHsKICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgfQogICAgIAogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNTBweDsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogODJweDsgCiAgICB9CiAgICAgICAKICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkgLm90aGVyLXNlbGVjdC1ib3JkZXIgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAycHggZG90dGVkICMzNDk4ZGI7CiAgICAgICAgcGFkZGluZzogNXB4OyAKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkgLm90aGVyLXNlbGVjdC1ib3JkZXIgYSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7IAogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgICBoZWlnaHQ6IDE1MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNTBweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzI3YWU2MDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICAgICAgZm9udC1zaXplOiA5OXB4OyAKICAgIH0KICAgICAgICAgICAgICAKICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlIGEgaSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgICAgICBjb2xvcjogI2ZmZjsgCiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmJlZm9yZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGNvbnRlbnQ6ICIiOwogICAgICAgIHdpZHRoOiAyNXB4OwogICAgICAgIGhlaWdodDogMjVweDsKICAgICAgICBib3R0b206IC0xNHB4OwogICAgICAgIGxlZnQ6IDQyJTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiMyYzNlNTA7CiAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICAvKiBJRSA5ICovCiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgICAgICAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi8KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7IAogICAgfQogICAgICAgICAgCiAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMyYzNlNTA7CiAgICBwYWRkaW5nOiAzMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luLXRvcDogMTM2cHg7IH0KCiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZSAub3RoZXItc2VsZWN0LWJvcmRlcnsKICAgICAgICBib3JkZXI6MnB4IGRvdHRlZCAjMmMzZTUwOwogICAgfQogICAKICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQgLm90aGVyLXNlcnZpY2UtY29udGVudDEgewogICAgICBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1jb250ZW50IC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQxIC5vdGhlci1zZXJ2aWNlLXRleHQgewogICAgICAgIHBhZGRpbmctbGVmdDogMjVweDsgCiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1jb250ZW50IC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQxIC5vdGhlci1zZXJ2aWNlLXRleHQgaDQgewogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBjb2xvcjojZmZmOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQgLm90aGVyLXNlcnZpY2UtY29udGVudDEgLm90aGVyLXNlcnZpY2UtdGV4dCBoNiB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIGNvbG9yOiNmZmY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICBjYXBpdGFsaXplOwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IHAgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIG1hcmdpbi10b3A6IDIycHg7IAogICAgICAgIGZvbnQtc2l6ZToxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IHVsIHsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1jb250ZW50IC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQxIC5vdGhlci1zZXJ2aWNlLXRleHQgdWwgbGkgewogICAgICAgIG1hcmdpbi1yaWdodDogMzBweDsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBsaXN0LXN0eWxlOiBub25lOyAKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQgLm90aGVyLXNlcnZpY2UtY29udGVudDEgLm90aGVyLXNlcnZpY2UtdGV4dCB1bCBsaSBwIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IAogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IHVsIGxpIHAgaSB7CiAgICAgICAgY29sb3I6ICMzNDk4ZGI7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IAogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IGEgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBwYWRkaW5nOiA1cHggNTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZsb2F0OiBsZWZ0OyAKICAgIH0KCgovKj09PT09PT09PT09PT09PT09PT09PQogIDA3LiAgTmV3c2xldHRlciBBcmVhCj09PT09PT09PT09PT09PT09PT09PSovCi5uZXdzbGV0dGVyLXNlY3Rpb257CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgcGFkZGluZzogNDBweCAwcHg7Cn0KLm5ld3NsZXR0ZXItdGV4dHsKICAgIHBhZGRpbmctdG9wOiAxMHB4Owp9CgoubmV3c2xldHRlci10ZXh0IGgzewogICAgZm9udC1zaXplOiAzNnB4OwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBtYXJnaW46MHB4OwogICAgcGFkZGluZzogOHB4IDBweDsKfQoubmV3c2xldHRlci1mb3JtIHsKICAgIHBhZGRpbmc6IDE1cHggMHB4Owp9Ci5uZXdzbGV0dGVyLWZvcm0gZm9ybXsKCn0KLm5ld3NsZXR0ZXItZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il17CiAgICB3aWR0aDo3MCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlcjoycHggc29saWQgI2EwYzg3ZjsKICAgIHBhZGRpbmc6IDdweCAxMHB4OwogICAgb3V0bGluZTogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsKICAgIG1hcmdpbjogMHB4Owp9CgoubmV3c2xldHRlci1mb3JtIGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsKY29sb3I6ICNmN2Y3ZjcgIWltcG9ydGFudDsKfQogCi5uZXdzbGV0dGVyLWZvcm0gaW5wdXQ6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovCmNvbG9yOiAjZjdmN2Y3ICFpbXBvcnRhbnQ7ICAKfQogCi5uZXdzbGV0dGVyLWZvcm0gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi8KY29sb3I6ICNmN2Y3ZjcgIWltcG9ydGFudDsgIAp9CiAKLm5ld3NsZXR0ZXItZm9ybSBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAgCmNvbG9yOiAjZjdmN2Y3ICFpbXBvcnRhbnQ7ICAKfQoKLm5ld3NsZXR0ZXItZm9ybSBidXR0b24gewogICAgd2lkdGg6IDI1JTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiAxMHB4IDhweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjb2xvcjogI2EwYzg3ZjsKICAgIGJvcmRlcjogbm9uZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLm5ld3NsZXR0ZXItZm9ybSBidXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogICAwOC4gIE9ubGluZSBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5vbmxpbmUtc2VjdGlvbnsKICAgIHBhZGRpbmctYm90dG9tOiA4MnB4Owp9Ci5vbmxpbmUtY29udGVudCB1bHsKICAgIG1hcmdpbjowcHg7CiAgICBwYWRkaW5nOjBweDsKfQoub25saW5lLWNvbnRlbnQgdWwgbGl7CiAgICBmbG9hdDpsZWZ0OwogICAgbGlzdC1zdHlsZTogbm9uZTsKCn0KLm9ubGluZS1jb250ZW50IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBtYXJnaW4tbGVmdDogMTMlOwp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW17Cgp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10aHVtYnsKICAgIGJvcmRlcjoxcHggZG90dGVkICMyYzNlNTA7CiAgICBwYWRkaW5nOiAyOHB4IDIwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgd2lkdGg6MTAwcHg7CiAgICBoZWlnaHQ6IDEwMHB4Owp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10aHVtYjF7CiAgICBib3JkZXI6bm9uZTsKICAgIHBhZGRpbmc6IDUwcHggMjBweDsKfQoub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtIC5vbmxpbmUtdGh1bWIgaW1newogIAoKfQoub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtIC5vbmxpbmUtdGV4dHsKICAgY29sb3I6ICMyYzNlNTA7CiAgIGZvbnQtc2l6ZTogMjBweDsKICAgcGFkZGluZy10b3A6IDIwcHg7Cgp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10ZXh0IHB7CiAgICBtYXJnaW46IDBweDsKICAgIHRleHQtdHJhbnNmb3JtOiAgY2FwaXRhbGl6ZTsKfQoub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtIC5vbmxpbmUtdGV4dCBzcGFuewogICBjb2xvcjogIzJjM2U1MDsKICAgZm9udC1zaXplOiAzMHB4OwogICBwYWRkaW5nLXRvcDogMHB4OwoKfQoKCi5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCB7CiAgICBwYWRkaW5nLXRvcDogMHB4Owp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCBzcGFuewogICAgZGlzcGxheTogYmxvY2s7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7Cn0KLm9ubGluZS1jb250ZW50IHVsIGxpIC5vbmxpbmUtaXRlbTIgLm9ubGluZS10ZXh0IGJ1dHRvbnsKICAgIGJvcmRlcjpub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIGNvbG9yOiNmZmZmZmY7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAxMHB4IDM1cHg7CiAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMjBweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjBweDsKICAgIG91dGxpbmU6IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdGV4dC10cmFuc2Zvcm06ICBjYXBpdGFsaXplOwp9Ci5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCBidXR0b246aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwoKfQoub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMyAub25saW5lLXRodW1iMXsKICAgbWFyZ2luOiAwcHggLTJweDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogIDA5LiBTYWxlICBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5zYWxlLXNlY3Rpb257CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgcGFkZGluZy10b3A6OTBweDsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OwoKfQouc2FsZS1oZWFkZXJ7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzQ5OGRiOwp9Ci5zYWxlLWhlYWRlciBoMnsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDQwcHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzM0OThkYjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjojZmZmOwogICAgbWFyZ2luLWJvdHRvbTogM3B4OwogICAgcGFkZGluZy1ib3R0b206IDQwcHg7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQouc2FsZS1oZWFkZXIgaDIgc3BhbnsKICAgIGNvbG9yOiMzNDk4ZGI7Cn0KLnNhbGUtY29udGVudHsKICAgIC8qdGV4dC1hbGlnbjogY2VudGVyOyovCiAgICBwYWRkaW5nLXRvcDogMzVweDsKfQouc2FsZS1jb250ZW50IGgyewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjojZmZmOwp9Ci5zYWxlLWNvbnRlbnQgcHsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAvKnRleHQtYWxpZ246IGNlbnRlcjsqLwogICAgY29sb3I6ICNmZWZmZmU7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuOGVtOwp9Ci5zYWxlLWNvbnRlbnQgcCBzcGFuewogICAgY29sb3I6IzM0OThkYjsKfQouc2FsZS1jb250ZW50IGJ1dHRvbiB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDVweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnNhbGUtY29udGVudCBidXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9CgovKj09PT09PT09PT09PT09PT09PT09PQogIDEwLiAgVGVhbSBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi50ZWFtLXNlY3Rpb24gewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsKICAgIHBhZGRpbmctYm90dG9tOjkwcHg7Cn0KLnRlYW0taXRlbXsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbi1ib3R0b206IC03MHB4Owp9Ci50ZWFtLWl0ZW0xewogICAgbWFyZ2luLWJvdHRvbTogMHB4Owp9Ci50ZWFtLWl0ZW0gLnRlYW0tdGh1bWIgewogICAgYm9yZGVyOiAxcHggc29saWQgIzJjM2U1MDsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZThlYjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHdpZHRoOiAyMjVweDsKICAgIGhlaWdodDogMjI1cHg7CiAgICBwYWRkaW5nOiAzMHB4OwogICAgbWFyZ2luOjAgYXV0bzsKfQoudGVhbS1pdGVtICAudGVhbS1vdmVybGF5IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMTkwcHg7CiAgICByaWdodDogNDVweDsKICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci50ZWFtLWl0ZW06aG92ZXIgIC50ZWFtLW92ZXJsYXkgewogICAgdG9wOiAxMzBweDsKfQoudGVhbS1pdGVtICAudGVhbS1vdmVybGF5IHVsICB7CiAgIG1hcmdpbjowcHg7CiAgIHBhZGRpbmc6MHB4Owp9Ci50ZWFtLWl0ZW0gLnRlYW0tb3ZlcmxheSB1bCBsaSB7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiAzMXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMzFweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMzFweDsKfQoKCi50ZWFtLWl0ZW0gLnRlYW0tb3ZlcmxheSB1bCBsaSBhIGkgewogICAgZm9udC1zaXplOiAxNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZThlYjsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgd2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBsaW5lLWhlaWdodDogMzBweDsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyOjFweCBzb2xpZCAjMmMzZTUwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoudGVhbS1pdGVtIC50ZWFtLW92ZXJsYXkgdWwgbGkgYSBpOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICAjMmMzZTUwOwp9Ci50ZWFtLWl0ZW0gLnRlYW0tY29udGVudHsKICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMmMzZTUwOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwcHgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsKICAgIHBhZGRpbmc6MTRweCAwcHg7Cn0KLnRlYW0taXRlbSAudGVhbS1jb250ZW50IGg1ewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiAjMjcyNzI3OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc2l6ZTogMTZweDsKfQoudGVhbS1pdGVtIC50ZWFtLWNvbnRlbnQgaDUgYXsKICAgIGNvbG9yOiAjMjcyNzI3Owp9Ci50ZWFtLWl0ZW0gLnRlYW0tY29udGVudCBwewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiAjMjcyNzI3OwogICAgZm9udC1zaXplOiAxM3B4OwogICAgbWFyZ2luOjBweDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogIDExLiAgU3VwcG9ydCBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCgouc3VwcG9ydC1zZWN0aW9uewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIHBhZGRpbmc6IDVweCAwcHg7CiAgICBwYWRkaW5nLXRvcDo2cHg7Cn0KLnN1cHBvcnQtY29udGVudHsKICAgIHBhZGRpbmctdG9wOiA4N3B4Owp9Ci5zdXBwb3J0LWNvbnRlbnQgaDJ7CiAgICBjb2xvcjojZmZmOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KLnN1cHBvcnQtY29udGVudCBwewogICAgY29sb3I6I2ZmZjsKICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICBmb250LXNpemU6IDE0cHg7Cn0KLnN1cHBvcnQtY29udGVudCBhewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIHBhZGRpbmc6IDEwcHggMzBweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbWFyZ2luLXJpZ2h0OjEwcHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7CiAgICAvKiAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsgKi8KICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5zdXBwb3J0LWNvbnRlbnQgYTpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBjb2xvcjogIzNjNGU2MjsKICAgIAp9CgovKj09PT09PT09PT09PT09PT09PT09PQogIDEyLiAgQ291bnRlcnVwIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09Ki8KLmNvdW50ZXItc2VjdGlvbnsKICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKCIuLi9pbWcvY291bnRlci1iZy5odG1sIik7CiAgICBwYWRkaW5nLWJvdHRvbTogODVweDsKICAgIHBhZGRpbmctdG9wOjkwcHg7Cn0KLmNvdW50ZXItbGlzdHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQouY291bnRlci1saXN0IC5jb3VudGVyLXRodW1iewogICAgYm9yZGVyOiA1cHggc29saWQgIzJjM2U1MDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTUwcHg7CiAgICBoZWlnaHQ6IDE1MHB4OwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MTAwJTsKICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgbWFyZ2luOiAwIGF1dG87CiAgICBwYWRkaW5nOiAzMHB4IDBweDsKfQoKCi5jb3VudGVyLWxpc3QgLmNvdW50ZXItdGh1bWIgaXsKICAgIGNvbG9yOiNmZmY7CiAgICBmb250LXNpemU6IDUwcHg7Cn0KLmNvdW50ZXItbGlzdCAuY291bnRlci10aHVtYiBwewogICAgY29sb3I6I2ZmZjsKICAgIGZvbnQtc2l6ZTozMHB4OyAKfQouY291bnRlci1saXN0IC5jb3VudGVyLWNvbnRlbnR7CiAgICBjb2xvcjogIzI3MjcyNzsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbWFyZ2luLXRvcDozMHB4Owp9Ci5jb3VudGVyLWxpc3QgLmNvdW50ZXItY29udGVudCBwewogICAgbWFyZ2luOjBweDsKfQouY291bnRlci1saXN0MSAuY291bnRlci10aHVtYnsKICAgIHBhZGRpbmc6NTVweCAwcHg7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMTMuICBCbG9nIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09Ki8KCi5ibG9nLXNlY3Rpb257CiAgICBwYWRkaW5nLWJvdHRvbTogNTlweDsKfQouYmxvZy1zZWN0aW9uMXsKICAgIHBhZGRpbmctYm90dG9tOiA4MnB4Owp9Ci5ibG9nLXNlY3Rpb24yewogICAgcGFkZGluZy10b3A6NjVweDsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4Owp9Ci5ibG9nLWxpc3R7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5ibG9nLWxpc3QgLmJsb2ctdGh1bWJ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IAogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouYmxvZy1saXN0IC5ibG9nLXRodW1iIGltZ3sKICAgIHdpZHRoOjEwMCU7Cn0KLmJsb2ctbGlzdCAuYmxvZy1vdmVybGF5ewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOjUwJTsKICAgIGxlZnQ6NTAlOwogICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAtbW96LXRyYW5zZm9ybTogICAgdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOwogICAgICAtbXMtdHJhbnNmb3JtOiAgICB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgIC1vLXRyYW5zZm9ybTogICAgIHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgdHJhbnNmb3JtOiAgICAgICAgdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOwogIH0KCi5ibG9nLWxpc3QgLmJsb2ctb3ZlcmxheSBzcGFuewogICAgd2lkdGg6MTAwcHg7CiAgICBoZWlnaHQ6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7Cn0KLmJsb2ctbGlzdCAuYmxvZy10aHVtYiAuYmxvZy1vdmVybGF5IHNwYW4uYmxvZy1yb3RhdGV7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7OwogICAgLW1vei10cmFuc2Zvcm06ICAgIHJvdGF0ZSgtNDVkZWcpOzsKICAgIC1tcy10cmFuc2Zvcm06ICAgcm90YXRlKC00NWRlZyk7OwogICAgLW8tdHJhbnNmb3JtOiAgICByb3RhdGUoLTQ1ZGVnKTs7CiAgICB0cmFuc2Zvcm06ICAgICAgIHJvdGF0ZSgtNDVkZWcpOzsKfQoKLmJsb2ctbGlzdCAuYmxvZy10aHVtYiAuYmxvZy10ZXh0IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogLTEwcHg7CiAgICByaWdodDogMjNweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAycHg7Cn0KLmJsb2ctbGlzdCAuYmxvZy10aHVtYiAuYmxvZy10ZXh0MSB7CiAgICBwYWRkaW5nOiAycHg7CiAgICBib3JkZXI6IDJweCBkb3R0ZWQgIzJjM2U1MDsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwp9Ci5ibG9nLWxpc3QgLmJsb2ctdGh1bWIgLmJsb2ctdGV4dDIgewogICAgcGFkZGluZzogNXB4IDIwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7Cn0KCi5ibG9nLWxpc3QgLmJsb2ctdGh1bWIgLmJsb2ctdGV4dCBwIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4OwogICAgY29sb3I6ICNmZmY7Cn0KLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50ewogICAgcGFkZGluZzoyMHB4IDEwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsKICAgIGJvcmRlcjoxcHggc29saWQgI2QyZDJkMjsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IC5ibG9nLWhlYWRlciBoNHsKICAgIGNvbG9yOiMyZDJkMmQ7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKCn0KLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IC5ibG9nLWhlYWRlciBoNCBhewogICAgY29sb3I6ICMyZDJkMmQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGZvbnQtc2l6ZTogMTdweDsKICAgIHBhZGRpbmc6IDBweDsKfQouYmxvZy1saXN0IC5ibG9nLWNvbnRlbnQgdWx7CiAgICBtYXJnaW46MHB4OwogICAgcGFkZGluZzowcHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzIyMjIyMjsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IHVsIGxpewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIGZsb2F0OiBsZWZ0OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgbWFyZ2luLXJpZ2h0OjEwcHg7Cn0KCi5ibG9nLWxpc3QgLmJsb2ctY29udGVudCB1bCBsaTphZnRlcnsKICAgIGNvbnRlbnQ6IiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6N3B4OwogICAgcmlnaHQ6IC0xMHB4OwogICAgd2lkdGg6IDJweDsKICAgIGhlaWdodDogMTBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7CiAgICBtYXJnaW46MHB4IDVweDsKfQouYmxvZy1saXN0IC5ibG9nLWNvbnRlbnQgdWwgbGk6bGFzdC1jaGlsZDo6YWZ0ZXJ7CiAgICBkaXNwbGF5OiBub25lOwp9Ci5ibG9nLWxpc3QgLmJsb2ctY29udGVudCB1bCBsaSBpewogICAgZm9udC1zaXplOiAxNXB4OwogICAgY29sb3I6ICMyYzNlNTA7CiAgICBtYXJnaW4tcmlnaHQ6NXB4Owp9Ci5ibG9nLWxpc3QgLmJsb2ctY29udGVudCB1bCBsaSBzcGFuewogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6ICMyMjIyMjI7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKfQouYmxvZy1saXN0IC5ibG9nLWNvbnRlbnQgdWwgbGkgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjMjIyMjIyOwogICAgbWFyZ2luOjIwcHggMHB4Owp9Ci5ibG9nLWxpc3QgLmJsb2ctY29udGVudCAgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHBhZGRpbmc6MjBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQoKLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50ICBhewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIHBhZGRpbmc6MTBweCAyMHB4OwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50OmhvdmVyICBhewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKfQouYmxvZy1saXN0IC5ibG9nLWNvbnRlbnQgIGEgaXsKICAgIGNvbG9yOiAjZmZmOwp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCBoNHsKICAgIG1hcmdpbjowcHg7Cn0KLyo9PT09PT09PT09PT09PT09PT09PT0KICAgMTQuICBUZXN0aW1vbmlhbCAgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT0qLwoudGVzdGltb25pYWwtc2VjdGlvbnsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiLi4vaW1nL3Rlc3RpbW9uaWFsLWJnLmpwZyIpOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKfQoudGVzdGltb25pYWwtb3ZlcmxheXsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE5LDE3Niw3MSwuOSk7CiAgICB3aWR0aDoxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoudGVzdGltb25pYWwtY29udGVudHsKICAgIG1heC13aWR0aDogNjAwcHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHBhZGRpbmctdG9wOjIwcHg7CiAgICBtYXJnaW4tbGVmdDogNTBweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoudGVzdGltb25pYWwtaXRlbSAudGVzdGltb25pYWwtdGh1bWIgaW1nIHsKICAgIHdpZHRoOiA5MHB4OwogICAgaGVpZ2h0OiA5MHB4OwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKfQoudGVzdGltb25pYWwtY29udGVudDpiZWZvcmV7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBjb250ZW50OiAiIjsKICAgIHdpZHRoOiAyNXB4OwogICAgaGVpZ2h0OiAyNXB4OwogICAgdG9wOiA1MCU7CiAgICByaWdodDogLTEzcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpOwogICAgei1pbmRleDogMTA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluLW91dDsKfQoudGVzdGltb25pYWwtY29udGVudDF7CiAgICBwYWRkaW5nLXRvcDoxMjVweDsKfQoudGVzdGltb25pYWwtY29udGVudDE6YmVmb3JlewogICAgdG9wOjcwJTsKfQoudGVzdGltb25pYWwtY29udGVudDJ7CiAgICBwYWRkaW5nLXRvcDoyMDBweDsKfQoudGVzdGltb25pYWwtY29udGVudDI6YmVmb3JlewogICAgdG9wOjgwJTsKfQoudGVzdGltb25pYWwtY29udGVudCBwewogICAgcGFkZGluZzoxMHB4OwogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgcGFkZGluZzoyMHB4IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQoudGVzdGltb25pYWwtbGlzdCB7CmJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBmbG9hdDogcmlnaHQ7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBtaW4td2lkdGg6IDUwMHB4OwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNDAlOwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNDAlOwogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7Cn0KLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW17CiAgICBtYXJnaW46MjBweCAwcHg7Cn0KLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0xewogICAgbWFyZ2luLWxlZnQ6IC01MHB4Owp9Ci50ZXN0aW1vbmlhbC1saXN0IC50ZXN0aW1vbmlhbC1pdGVtIC50ZXN0aW1vbmlhbC10aHVtYnsKICAgIGZsb2F0OiBsZWZ0OwogICAgbWFyZ2luLXJpZ2h0OiAxMHB4Owp9Ci50ZXN0aW1vbmlhbC1saXN0IC50ZXN0aW1vbmlhbC1pdGVtIC50ZXN0aW1vbmlhbC10ZXh0ewogICAgY29sb3I6ICNmZmY7CiAgICBkaXNwbGF5OiB0YWJsZTsKICAgIHBhZGRpbmc6MjBweCAwcHg7Cn0KLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0gLnRlc3RpbW9uaWFsLXRleHQgaDZ7CiAgICBjb2xvcjogI2ZmZjsKICAgIG1hcmdpbi1ib3R0b206IDBweDsKfQoudGVzdGltb25pYWwtbGlzdCAudGVzdGltb25pYWwtaXRlbSAudGVzdGltb25pYWwtdGV4dCBoNiBhewogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0gLnRlc3RpbW9uaWFsLXRleHQgcHsKICAgbWFyZ2luLWJvdHRvbTogMHB4Owp9Ci5jbGllbnQtc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogIDE1LiAgRm9vdGVyIFN1cHBvcnQgTGlzdAo9PT09PT09PT09PT09PT09PT09PT0qLwouZm9vdGVyLXN1cHBvcnQtbGlzdHsKIHRleHQtYWxpZ246IGNlbnRlcjsKIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAjMzQ5OGRiOwogYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKIHBhZGRpbmc6MTBweCAwcHg7Cn0KLmZvb3Rlci1zdXBwb3J0LWxpc3QgdWx7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBtYXJnaW46MHB4OwogICAgcGFkZGluZy1ib3R0b206IDEycHg7Cn0KLmZvb3Rlci1zdXBwb3J0LWxpc3QgdWwgbGl7CiAgICBmbG9hdDogbGVmdDsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICBtYXJnaW4tcmlnaHQ6NDBweDsKfQouZm9vdGVyLXN1cHBvcnQtbGlzdCB1bCBsaSAuZm9vdGVyLXRodW1iewogICAgCn0KLmZvb3Rlci1zdXBwb3J0LWxpc3QgdWwgbGkgLmZvb3Rlci10aHVtYiBpewogICAgZm9udC1zaXplOiA2MHB4OwogICAgY29sb3I6I2ZmZjsKICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOyAKICAgIG1hcmdpbi10b3A6MzBweDsKfQouZm9vdGVyLXN1cHBvcnQtbGlzdCB1bCBsaTpob3ZlciAuZm9vdGVyLXRodW1iIGl7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICBwYWRkaW5nOjIwcHg7CiAgICBtYXJnaW4tdG9wOi0zMHB4Owp9Ci5mb290ZXItc3VwcG9ydC1saXN0IHVsIGxpIC5mb290ZXItY29udGVudHsKICAgIG1hcmdpbi10b3A6MjBweDsKfQouZm9vdGVyLXN1cHBvcnQtbGlzdCB1bCBsaSAuZm9vdGVyLWNvbnRlbnQgcHsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIHRleHQtdHJhbnNmb3JtOiAgY2FwaXRhbGl6ZTsKfQouZm9vdGVyLXN1cHBvcnQtbGlzdCB1bCBsaSAuZm9vdGVyLWNvbnRlbnQgcCBhewogICAgY29sb3I6ICNmZmY7Cn0KLyo9PT09PT09PT09PT09PT09PT09PT0KICAgMTYuICBGb290ZXIgQXJlYQo9PT09PT09PT09PT09PT09PT09PT0qLwoKLmZvb3Rlci13aWRnZXQtMSwuZm9vdGVyLXdpZGdldC0yLC5mb290ZXItd2lkZ2V0LTMgewogICAgbWFyZ2luOiA4MnB4IDBweDsKfQoKLmZvb3Rlci1hcmVhewogICAgYmFja2dyb3VuZDogIzJjM2U1MDsKICAgIC8qYmFja2dyb3VuZDogIzFlMDAzZDsqLwogICAgLypwYWRkaW5nOiAxcHg7Ki8KfQoKLndpZGdldC10aXRsZSB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tdG9wOjg1cHg7Cn0KCmZvb3Rlci5mb290ZXItYXJlYSB7CiAgICBjb2xvcjogI2ZmZjsKICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KCi53aWRnZXQtdGl0bGUgaDR7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cgp9Ci53aWRnZXQtdGl0bGUgcHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoud2lkZ2V0LXRpdGxlIHA6YWZ0ZXJ7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMTBweDsKICAgIHJpZ2h0OiAxMHB4OwogICAgd2lkdGg6IDEwMHB4OwogICAgaGVpZ2h0OiAzcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9Ci53aWRnZXQtdGl0bGUgcDpiZWZvcmV7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMTBweDsKICAgIGxlZnQ6IDEwcHg7CiAgICB3aWR0aDogMTAwcHg7CiAgICBoZWlnaHQ6IDNweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7Cn0KLndpZGdldC10d28tYm9keSB7CiAgICBwYWRkaW5nLXRvcDogMTVweDsKfQouZm9vdGVyLWxvZ28gewogICAgcGFkZGluZy10b3A6MTBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxNXB4Owp9Cgoud2lkZ2V0LW9uZS1ib2R5IHAgewogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4Owp9Ci53aWRnZXQtcmVhZC1tb3JlOmhvdmVyIHsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci53aWRnZXQtcmVhZC1tb3JlIHsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KCi53aWRnZXQtb25lLWJvZHkgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9Cgoud2lkZ2V0LW9uZS1mb290ZXIgcCB7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICBmb250LXNpemU6IDE0cHg7Cn0KCi53aWRnZXQtb25lLWZvb3RlciBhIHsKICAgIGNvbG9yOiAjZmZmOwp9Cgoud2lkZ2V0LW9uZS1mb290ZXIgaSB7CiAgICBjb2xvcjogIzM0OThkYjsKICAgIHBhZGRpbmctcmlnaHQ6IDVweDsKfQoud2lkZ2V0LXR3by1ib2R5IHVsIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KCi53aWRnZXQtdHdvLWJvZHkgdWwgbGkgewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIHBhZGRpbmc6N3B4IDVweDsKfQoKLndpZGdldC10d28tYm9keSB1bCBsaSBhIHsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgdHJhbnNpdGlvbjogLjVzOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi53aWRnZXQtdHdvLWJvZHkgdWwgbGkgYTpob3ZlciB7CiAgICBjb2xvcjogIzM0OThkYjsKICAgIHBhZGRpbmctbGVmdDogMTVweDsKfQoKCi53aWRnZXQtdHdvLWJvZHkgdWwgbGkgaSB7CiAgICBmb250LXNpemU6IDEycHg7Cn0KCi53aWRnZXQtZm91ci1ib2R5IHsKICAgIHBhZGRpbmctdG9wOiAyNXB4Owp9Cgoud2lkZ2V0LWZvdXItYm9keSBwIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKfQoudXNlcm5hbWUtZm9vdGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLnVzZXJuYW1lLWZvb3RlciBpIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNnB4OwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGVmdDogNnB4OwogICAgY29sb3I6ICM3NTc1NzU7Cn0KCgouZm9vdGVyLWNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPXRleHRdLAouZm9vdGVyLWNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIHBhZGRpbmc6IDVweDsKICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7CiAgICBjb2xvcjogIzZBN0U5NDsKICAgIHBhZGRpbmctbGVmdDogNDBweDsKfQoKLmZvb3Rlci1jb250YWN0LWZvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1czpwbGFjZWhvbGRlciwKLmZvb3Rlci1jb250YWN0LWZvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXM6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICNmZmY7Cn0KCi5mb290ZXItY29udGFjdC1mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsCi5mb290ZXItY29udGFjdC1mb3JtIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICBvdXRsaW5lOiBub25lOwogICAgY29sb3I6ICNmZmY7CiAgICB0cmFuc2l0aW9uOiAuNXM7Cn0KCi5mb290ZXItY29udGFjdC1mb3JtIGlucHV0W3R5cGU9c3VibWl0XSB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiA1cHggMzVweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGJhY2tncm91bmQ6ICMzNDk4ZGI7Cn0KCi5mb290ZXItY29udGFjdC1mb3JtIGlucHV0W3R5cGU9c3VibWl0XTpob3ZlciB7CiAgICBib3gtc2hhZG93OiAwIDAgMTRweCAjMzMzOwogICAgdHJhbnNmb3JtOiBza2V3KC01ZGVnKTsKfQoKLndpZGdldC10aXRsZS5wYXltZW50IHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgbWFyZ2luLXRvcDoyOHB4Owp9Ci5wYXltZW50LW1ldGhvZCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5wYXltZW50LW1ldGhvZCBpbWcgewogICAgbWFyZ2luLXJpZ2h0OiA2cHg7Cn0KCi5wYXltZW50LW1ldGhvZCBpbWc6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCi5mb290ZXItYm90dG9tIHsKICAgIHBhZGRpbmc6IDEycHggMDsKfQoKLmNvcHlyaWdodC10ZXh0IHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjowcHg7CiAgICBwYWRkaW5nOjhweCAwcHg7CiAgICBwYWRkaW5nLXRvcDogOXB4Owp9Ci5mb290ZXItbWVudSB7CiAgICBwYWRkaW5nOiA4cHggMHB4Owp9Ci5mb290ZXItbWVudSB1bCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwp9CgouZm9vdGVyLW1lbnUgdWwgbGkgewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDAgMTBweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKfQoKLmZvb3Rlci1tZW51IHVsIGxpIGEgewogICAgY29sb3I6ICNmZmY7CiAgICB0cmFuc2l0aW9uOiAuNXM7Cn0KCi5mb290ZXItbWVudSB1bCBsaSBhOmhvdmVyIHsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgbWFyZ2luOiAxMHB4Owp9CgoubGl2ZS1jaGF0LWJ0biB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBiYWNrZ3JvdW5kOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4OwogICAgbWFyZ2luLXRvcDo1cHg7Cn0KCi5saXZlLWNoYXQtYnRuIGkgewogICAgd2lkdGg6IDM4cHg7CiAgICBiYWNrZ3JvdW5kOiAjMzQ5OGRiOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMTBweDsKICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgIHRleHQtYWxpZ246IC13ZWJraXQtbWF0Y2gtcGFyZW50OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoubGl2ZS1jaGF0LWJ0bjpob3ZlciBpIHsKICAgIGJhY2tncm91bmQ6ICMyYzNlNTA7Cn0KLmxpdmUtY2hhdC1idG4gewogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoubGl2ZS1jaGF0LWJ0bjpob3ZlciB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KLndpZGdldC10aXRsZS5wYXltZW50IHAgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5mb290ZXItc29jaWFsLWxpbmtzIHsKICAgIG1hcmdpbjogMjVweCAwcHg7Cn0KLmZvb3Rlci1zb2NpYWwtbGlua3MgYSBpIHsKICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICB3aWR0aDogNDBweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBsaW5lLWhlaWdodDogNDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouZm9vdGVyLXNvY2lhbC1saW5rcyBhOmhvdmVyIGkgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyOiAxcHggc29saWQgIzJjM2U1MDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogIDE3LiAgIEJyZWFkY3J1bWIgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT0qLwouYnJlYWRjcnVtYi1zZWN0aW9uewogICAgcGFkZGluZzogODRweCAwcHg7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsKICAgIHotaW5kZXg6IDE7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmJyZWFkY3J1bWItc2VjdGlvbjphZnRlciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgdG9wOiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBiYWNrZ3JvdW5kOiAjMDAwOwogICAgY29udGVudDogIiI7CiAgICBvcGFjaXR5OiAuODsKICAgIHotaW5kZXg6IC0xOwp9Ci5icmVhZGNydW1iLWNvbnRlbnR7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmJyZWFkY3J1bWItY29udGVudCBwewogICAgbWFyZ2luOjBweDsKfQouYnJlYWRjcnVtYi1jb250ZW50IGg1ewogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zaXplOiAzNXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouYnJlYWRjcnVtYi1jb250ZW50IHAgYXsKICAgIG1hcmdpbi1yaWdodDoxMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgY29sb3I6I2ZmZjsKfQoKLmJyZWFkY3J1bWItY29udGVudCBwIGE6YWZ0ZXJ7CiAgIGNvbnRlbnQ6IiI7CiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgdG9wOjNweDsKICAgcmlnaHQ6LTEycHg7CiAgIHdpZHRoOjJweDsKICAgIGhlaWdodDoxNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIG1hcmdpbjowcHggNXB4OwogICAgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7Cn0KLmJyZWFkY3J1bWItY29udGVudCBwIGE6bGFzdC1jaGlsZDphZnRlcnsKICAgZGlzcGxheTogbm9uZTsKfQoKCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMTguICBQcmljaW5nIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09Ki8KLnByaWNpbmctbGlzdDEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwYWRkaW5nOiAwcHggMzBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmctYm90dG9tOiA1MHB4OwogICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkICMwMjA5MGU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLnByaWNpbmctbGlzdDE6aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM0MDY1OwogICAgYm9yZGVyOiAxcHggc29saWQgIzM0OThkYjsKfQoKLnByaWNpbmctbGlzdDEgLnByaWNpbmctaGVhZGVyMSB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA1MHB4IDBweDsKfQoucHJpY2luZy1saXN0MSAucHJpY2luZy1oZWFkZXIxOmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwcHg7CiAgICBsZWZ0OiAxOCU7CiAgICB3aWR0aDogMTMwcHg7CiAgICBoZWlnaHQ6IDhweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjA5MGU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5wcmljaW5nLWxpc3QxOmhvdmVyIC5wcmljaW5nLWhlYWRlcjE6YWZ0ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjojMmMzZTUwOwp9CgoucHJpY2luZy1saXN0MSAucHJpY2luZy1oZWFkZXIxIGg1IHsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDI1cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIG1hcmdpbjogMHB4Owp9Ci5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWhlYWRlcjEgcCB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cgp9Ci5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWFtb3VudDEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzBmM2E1NjsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4OwogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDIwcHggMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KCi5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWFtb3VudDEgcCB7CiAgICBmb250LXNpemU6IDQwcHg7CiAgICBtYXJnaW46MHB4OwogICAgY29sb3I6ICMwMDA7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9CgoKLnByaWNpbmctbGlzdDEgLnByaWNpbmctYW1vdW50MSBzcGFuIHsKICAgIGZvbnQtc2l6ZTogMjVweDsKICAgIGNvbG9yOiAjZmZmOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoKLnByaWNpbmctbGlzdDEgLnByaWNpbmctaW5mbzEgewogICAgcGFkZGluZy1ib3R0b206IDMwcHg7Cn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctaW5mbzEgdWwgewogICAgbWFyZ2luOiAwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMzBweCAwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KCi5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWluZm8xIHVsIGxpIHsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICBwYWRkaW5nOiAxMHB4IDBweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjMDAwOwogICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoKCgoucHJpY2luZy1saXN0MSAucHJpY2luZy1pbmZvMSB1bCBsaTpsYXN0LWNoaWxkewogICAgcGFkZGluZy1ib3R0b206IDBweDsKfQoKLnByaWNpbmctbGlzdDEgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgcGFkZGluZzogMTBweCAyNXB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMjVweCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5wcmljaW5nLWxpc3QxOmhvdmVyIGEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKCn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMTkuICAgUHJpY2luZzIgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT0qLwoucHJpY2Utb3V0IHsKICBtYXJnaW4tdG9wOiAyMHB4OyB9CgojcHJpY2luZy0yIHsKICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9wcmljaW5nLWJnLmpwZyIpIG5vLXJlcGVhdCBjZW50ZXIgZml4ZWQ7CiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICBjb2xvcjogI0ZGRkZGRjsgfQoKCiNwcmljaW5nLTIgLnByaWNpbmctaW5uZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB6LWluZGV4OiAxOyB9CgojcHJpY2luZy0yIC5zbGlkZXItYmcgewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTsKICBwYWRkaW5nOiA2MHB4IDIwcHggMzBweDsKICBtYXJnaW46IDMwcHggMDsgfQoKI3ByaWNpbmctMiAuc2xpZGVyLWluZCB7CiAgcGFkZGluZy1ib3R0b206IDM1cHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvc2xpZGVyLXNjYWxlLnBuZyIpIG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXNpemU6IDk5JSA0MCU7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjsgfQoKI3ByaWNpbmctMiAjcHJpY2luZy1zbGlkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMxRTIyM0Y7CiAgaGVpZ2h0OiAyMHB4OwogIHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKI3ByaWNpbmctMiAjcHJpY2luZy1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgbGVmdDogMDsKICB0b3A6IDA7CiAgaGVpZ2h0OiAxMDAlOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBkaXNwbGF5OiBibG9jazsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOyB9CgojcHJpY2luZy0yICNwcmljaW5nLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IDI7CiAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICBoZWlnaHQ6IDMwcHg7CiAgd2lkdGg6IDMwcHg7CiAgdG9wOiAtNXB4OwogIG1hcmdpbi1sZWZ0OiAtMTJweDsgCiAgb3V0bGluZTogbm9uZTt9CgojcHJpY2luZy0yIC5pbmZvLWl0ZW0gewogIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgcGFkZGluZzogMTBweDsKICBwYWRkaW5nLWJvdHRvbTogMTVweDsgfQoKI3ByaWNpbmctMiAuaW5mby1pdGVtIHNwYW4gewogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQtd2VpZ2h0OiA3MDA7IH0KCiNwcmljaW5nLTIgLmluZm8taXRlbSBzcGFuLnZhbHVlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOwogIGJvcmRlci1yYWRpdXM6IDVweDsKICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICBwYWRkaW5nOiA1cHggMDsKICBjb2xvcjogIzAwMDAwMDsKICBtYXJnaW4tdG9wOiA1cHg7IH0KCiNwcmljaW5nLTIgLm9yZGVyLWJ1dHRvbiBhIHsKICBjb2xvcjogI0ZGRkZGRjsKICBkaXNwbGF5OiB0YWJsZTsKICBtYXJnaW46IDAgYXV0bzsKICB3aWR0aDogMzAwcHg7CiAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgLW1vei1ib3JkZXItcmFkaXVzOiAyMHB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAyMHB4OwogIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgbWFyZ2luLXRvcDogNTBweDsgfQoKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIGE6aG92ZXIgLnJpZ2h0IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7IH0KCiNwcmljaW5nLTIgLm9yZGVyLWJ1dHRvbiAubGVmdCwKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIC5yaWdodCB7CiAgZGlzcGxheTogdGFibGUtY2VsbDsKICB3aWR0aDogNTAlOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgcGFkZGluZzogMTBweDsgfQoKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIC5sZWZ0IC5wcmljZSB7CiAgZm9udC1zaXplOiAyN3B4OwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgbGluZS1oZWlnaHQ6IDE7CiAgZGlzcGxheTogYmxvY2s7IH0KCiNwcmljaW5nLTIgLm9yZGVyLWJ1dHRvbiAucmlnaHQgewogIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7CiAgY29sb3I6ICMzNDk4ZGI7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBmb250LXdlaWdodDogNzAwOwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHB4OwogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMHB4OwogIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zczsKICAtbW96LXRyYW5zaXRpb246IDAuM3M7CiAgLW1zLXRyYW5zaXRpb246IDAuM3M7CiAgLW8tdHJhbnNpdGlvbjogMC4zczsgfQoKLm92ZXJsYXkgewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDUsIDQ1LCA0NSwgMC43KTsgfQoKCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMjAuICAgSG9zdGluZyBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5ob3N0aW5nLXNlY3Rpb24gewogICAgCn0KLmhvc3Rpbmctc2VjdGlvbjF7CiAgICBwYWRkaW5nLWJvdHRvbTo5MHB4Owp9Ci5ob3N0aW5nLXNlY3Rpb24gLm92ZXJsYXl7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKfQouaG9zdGluZy1jb250ZW50IHsKICBtYXJnaW4tbGVmdDogLTE1cHg7CiAgbWFyZ2luLXJpZ2h0OiAtMTVweDsKICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgcGFkZGluZy1yaWdodDogMTVweDsgfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHsKICAgIHdpZHRoOiAxMDAlOwogICB9Ci5ob3N0aW5nLWNvbnRlbnQgdGFibGUgdGhlYWQgdGggewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIHBhZGRpbmc6IDI1cHggMTJweDsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxNXB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC13ZWlnaHQ6IDQwMDsgfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGVkZWQ7IH0KLmhvc3RpbmctY29udGVudCB0YWJsZSB0Ym9keSB0ciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VkZWRlZDsgfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkIHsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDE1cHggMTBweDsgfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkOm50aC1jaGlsZChvZGQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlYWY0ZmI7IH0KLmhvc3RpbmctY29udGVudCB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoMSkgewogICAgcGFkZGluZzogMTVweCAxMHB4OyB9Ci5ob3N0aW5nLWNvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDIpIHsKICAgIHBhZGRpbmc6IDE1cHggMjVweDsgfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkOm50aC1jaGlsZCgzKSB7CiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7IAp9Ci5ob3N0aW5nLWNvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDQpIHsKICAgIHBhZGRpbmc6IDE1cHggMzVweDsgCn0KLmhvc3RpbmctY29udGVudCB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoNSkgeyAgICAKICAgIHBhZGRpbmc6IDE1cHggMjVweDsgCn0KLmhvc3RpbmctY29udGVudCB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoNikgewogICAgcGFkZGluZzogMTVweCAyM3B4OyAKfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkOm50aC1jaGlsZCg3KSB7CiAgICAgcGFkZGluZzogMTVweCA1MHB4Owp9Ci5ob3N0aW5nLWNvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGQgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgY29sb3I6ICNmZmY7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluLW91dDsgCn0KLmhvc3RpbmctY29udGVudCB0YWJsZSB0Ym9keSB0ciB0ZCBhOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7IAp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDIxLiAgIEZlYXR1cmUgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT0qLwouZmVhdHVyZS1zZWN0aW9uewogICAgcGFkZGluZy1ib3R0b206IDQwcHg7Cn0KLmZlYXR1cmUtc2VjdGlvbjF7CiAgICBwYWRkaW5nLWJvdHRvbTogNDFweDsKfQouZmVhdHVyZS1zZWN0aW9uMnsKICAgIHBhZGRpbmctYm90dG9tOiA1NXB4Owp9Ci5mZWF0dXJlLWxpc3R7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5mZWF0dXJlLWxpc3QgLmZlYXR1cmUtdGh1bWJ7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi1yaWdodDogMjBweDsKfQouZmVhdHVyZS1saXN0IC5mZWF0dXJlLXRodW1iIGl7CiAgICBmb250LXNpemU6IDMwcHg7CiAgICBjb2xvcjogIzM0OThkYjsgCiAgICB3aWR0aDo4MHB4OwogICAgaGVpZ2h0OiA4MHB4OwogICAgbGluZS1oZWlnaHQ6IDgwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlcjoxcHggc29saWQgIzM0OThkYjsgCiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouZmVhdHVyZS1saXN0OmhvdmVyIC5mZWF0dXJlLXRodW1iIGl7CiAgICBjb2xvcjogIzJjM2U1MDsgCiAgICBib3JkZXI6MXB4IHNvbGlkICMyYzNlNTA7Cgp9Ci5mZWF0dXJlLWxpc3QgLmZlYXR1cmUtY29udGVudHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cn0KLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS1jb250ZW50IGg2ewogICAgZm9udC1zaXplOiAyMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBjb2xvcjogIzM0OThkYjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLmZlYXR1cmUtbGlzdDpob3ZlciAuZmVhdHVyZS1jb250ZW50IGg2ewogICAgY29sb3I6ICMyYzNlNTA7IAp9Ci5mZWF0dXJlLWxpc3QgLmZlYXR1cmUtY29udGVudCBwewogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDI2cHg7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMjIuICAgRmVhdHVyZTEgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT0qLwoKLmZlYXR1cmUtbGlzdDEgLmZlYXR1cmUtdGh1bWJ7CiAgICBmbG9hdDogbm9uZTsKICAgIG1hcmdpbi1yaWdodDogMHB4OwogICAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5mZWF0dXJlLWxpc3QxIC5mZWF0dXJlLXRodW1iIGl7CiAgICBmb250LXNpemU6IDMwcHg7CiAgICBjb2xvcjojMmMzZTUwOyAgCiAgICB3aWR0aDo4MHB4OwogICAgaGVpZ2h0OiA4MHB4OwogICAgbGluZS1oZWlnaHQ6IDgwcHg7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlcjoxcHggc29saWQgICMyYzNlNTA7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouZmVhdHVyZS1saXN0MTpob3ZlciAuZmVhdHVyZS10aHVtYiBpewogICAgY29sb3I6ICAjMzQ5OGRiOwogICAgYm9yZGVyOjFweCBzb2xpZCAjMzQ5OGRiOwoKfQouZmVhdHVyZS1saXN0MSAuZmVhdHVyZS1jb250ZW50ewogICAgZGlzcGxheTogYmxvY2s7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmZlYXR1cmUtbGlzdDEgLmZlYXR1cmUtY29udGVudCBoNnsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgY29sb3I6ICMyYzNlNTA7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5mZWF0dXJlLWxpc3QxOmhvdmVyIC5mZWF0dXJlLWNvbnRlbnQgaDZ7CiAgICBjb2xvcjogIzM0OThkYjsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT0KICAyMy4gIEhvc3RwcmVzcyBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5ob3N0cHJlc3MtY29udGVudHsKICAgIC8qIHBhZGRpbmc6MjBweCAwcHg7ICovCn0KLmhvc3RwcmVzcy1jb250ZW50IGg2ewogICAgZm9udC1zaXplOiAyMHB4OwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBtYXJnaW4tYm90dG06IDEwcHg7Cn0KLmhvc3RwcmVzcy1jb250ZW50IGg1ewogICAgZm9udC1zaXplOiAyNXB4OwogICAgY29sb3I6ICMyYzNlNTA7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouaG9zdHByZXNzLWNvbnRlbnQgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4Owp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KICAyNC4gIEhvc3RpbmdzcGVlZCBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5ob3N0aW5nc3BlZWQtc2VjdGlvbnsKICAgIHBhZGRpbmctYm90dG9tOiA3NXB4Owp9Ci5ob3N0aW5nc3BlZWQtY29udGVudHsKIHBhZGRpbmc6MjBweDsKIG1hcmdpbi1ib3R0b206IDBweDsKfQouaG9zdGluZ3NwZWVkLWNvbnRlbnQ6Zmlyc3QtY2hpbGR7CiAgICBwYWRkaW5nLXRvcDogMHB4Owp9Ci5ob3N0aW5nc3BlZWQtY29udGVudDpsYXN0LWNoaWxkewogICAgcGFkZGluZy1ib3R0b206IDBweDsKICAgIG1hcmdpbi1ib3R0b206IDBweDsKfQouaG9zdGluZ3NwZWVkLWNvbnRlbnQgLmhvc3RpbmdzcGVlZC10aHVtYnsKICAgIGZsb2F0OmxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6MjBweDsKICAgIG1hcmdpbi10b3A6NXB4Owp9Ci5ob3N0aW5nc3BlZWQtY29udGVudCAuaG9zdGluZ3NwZWVkLXRodW1iIGl7CiAgICBmb250LXNpemU6IDMwcHg7CiAgICBjb2xvcjogICMyYzNlNTA7CiAgICB3aWR0aDo4MHB4OwogICAgaGVpZ2h0OiA4MHB4OwogICAgbGluZS1oZWlnaHQ6IDgwcHg7CiAgICBib3JkZXI6MXB4IHNvbGlkICAjMmMzZTUwOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmhvc3RpbmdzcGVlZC1jb250ZW50IC5ob3N0aW5nc3BlZWQtdGV4dHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cn0KLmhvc3RpbmdzcGVlZC1jb250ZW50IC5ob3N0aW5nc3BlZWQtdGV4dCBoNnsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGNvbG9yOiMzNDk4ZGI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9CgouaG9zdGluZ3NwZWVkLWNvbnRlbnQgLmhvc3RpbmdzcGVlZC10ZXh0IHB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQoKCi8qPT09PT09PT09PT09PT09PT09PT09CiAgMjUuICBzZXJ2aWNlIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09Ki8KLnNlcnZpY2Utc2VjdGlvbnsKICAgIHBhZGRpbmctYm90dG9tOiA0MnB4Owp9Ci5zZXJ2aWNlLXNlY3Rpb24xewogICAgcGFkZGluZy1ib3R0b206IDMwcHg7Cn0KLnNlcnZpY2UtbGlzdDEgewogIHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC5zZXJ2aWNlLWxpc3QxIGkgewogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICB3aWR0aDogMTIwcHg7CiAgICBoZWlnaHQ6IDEyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEyMHB4OwogICAgZm9udC1zaXplOiA2MHB4OyB9CiAgLnNlcnZpY2UtbGlzdDEgLnNlcnZpY2UtdGV4dCB7CiAgICBtYXJnaW46IDU1cHggMHB4OwogICAgbWFyZ2luLWJvdHRvbTogNjVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfQogICAgLnNlcnZpY2UtbGlzdDEgLnNlcnZpY2UtdGV4dCBoMyB7CiAgICAgIGNvbG9yOiAjM2M0ZTYyOwogICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KICAgIC5zZXJ2aWNlLWxpc3QxIC5zZXJ2aWNlLXRleHQgcCB7CiAgICAgIGNvbG9yOiAjM2M0ZTYyOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6ICAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMjZweDsKICAgICAgfQogICAgLnNlcnZpY2UtbGlzdDEgLnNlcnZpY2UtdGV4dCBhIHsKICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7CiAgICAgIHBhZGRpbmc6IDhweCAyNXB4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMjBweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluLW91dDsKICAgICAgZm9udC1zaXplOiAgMTRweDsKICAgICAgfQogICAgICAuc2VydmljZS1saXN0MSAuc2VydmljZS10ZXh0IGE6aG92ZXIgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICMzNDk4ZGI7IH0KCgoKLyo9PT09PT09PT09PT09PT09PT09PT0KICAyNi4gIFZwcy1GZWF0dXJlICBTZWN0aW9uIFN0YXJ0Cj09PT09PT09PT09PT09PT09PT09PSovCi52cHMtc2VjdGlvbiB7CiAgICBwYWRkaW5nLXRvcDogOTBweDsKfQoKLnZwcy1mZWF0dXJlIC5mZWF0dXJlLWhlYWRlciB7CiAgbWFyZ2luLWxlZnQ6IDUwcHg7IH0KICAudnBzLWZlYXR1cmUgLmZlYXR1cmUtaGVhZGVyIGgxIHsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBjb2xvcjogIzM0OThkYjsKICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgfQoudnBzLWZlYXR1cmUgLmZlYXR1cmUtbGlzdCB7CiAgbWFyZ2luOiAwcHg7CiAgbWFyZ2luOiAyMnB4IDBweDsKICBwYWRkaW5nOiAwcHg7CiAgbWFyZ2luLWxlZnQ6IDUwcHg7CiAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgfQoudnBzLWZlYXR1cmUgLmZlYXR1cmUtbGlzdCBsaSB7CiAgICBwYWRkaW5nOiA1cHggMHB4OwogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4OyAKfQoudnBzLWZlYXR1cmUgLmZlYXR1cmUtbGlzdCBsaSBpIHsKICAgICAgY29sb3I6ICMzNDk4ZGI7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfQoudnBzLWZlYXR1cmUgYSB7CiAgbWFyZ2luLWxlZnQ6IDUwcHg7CiAgcGFkZGluZzogMTBweCAzNnB4OwogIGJvcmRlci1yYWRpdXM6IDNweDsKICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsKICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOwogIGNvbG9yOiAjZmZmOwogIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7IH0KICAudnBzLWZlYXR1cmUgYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOyB9CgovKj09PT09PT09PT09PT09PT09PT09PQogMjcuIFBhcmFsbGF4ICBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwoKLnBhcmFsbGF4LXNlY3Rpb24gewogIHdpZHRoOiAxMDAlOwogIGZsb2F0OiBsZWZ0OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwcHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL3BhcmFsbGF4LWJnMS5odG1sIik7CiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDsKICBiYWNrZ3JvdW5kLW9yaWdpbjogaW5pdGlhbDsKICBiYWNrZ3JvdW5kLWNsaXA6IGluaXRpYWw7CiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgei1pbmRleDogMTsgfQoucGFyYWxsYXgtc2VjdGlvbiAub3ZlcmxheXsKICAgIHBhZGRpbmctYm90dG9tOiA5NXB4Owp9Ci5wYXJhbGxheC1jb250ZW50IHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KICAucGFyYWxsYXgtY29udGVudCBoMiB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICNmZmY7CiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH0KICAucGFyYWxsYXgtY29udGVudCBwIHsKICAgIHBhZGRpbmc6IDMwcHggMHB4OwogICAgcGFkZGluZy1ib3R0b206IDQ1cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgIH0KCiAgLnBhcmFsbGF4LWNvbnRlbnQgYSB7CiAgICBwYWRkaW5nOiAxMHB4IDM2cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLWluLW91dDsgfQogICAgLnBhcmFsbGF4LWNvbnRlbnQgYTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAgIGNvbG9yOiAjMzQ5OGRiOyB9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDI4LiAgQmxvZyBTaWRlYmFyIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi53aWRnZXQtbGlzdHsKICAgIHBhZGRpbmc6MjBweCAxMHB4OwogICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2VhZWFlYTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci53aWRnZXQtbGlzdDpudGgtY2hpbGQoNil7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9Ci53aWRnZXQtbGlzdCBoNHsKICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKCn0KLndpZGdldC1zZWFyY2ggZm9ybXsKCn0KLndpZGdldC1zZWFyY2ggaW5wdXRbdHlwZT0idGV4dCJdewogICAgd2lkdGg6NzAlOwogICAgb3V0bGluZTpub25lOwogICAgcGFkZGluZzo3cHggMTBweDsKfQoud2lkZ2V0LXNlYXJjaCBidXR0b257CiAgICB3aWR0aDoyNSU7CiAgICBvdXRsaW5lOm5vbmU7CiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICBjb2xvcjogIzJjM2U1MDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7Cn0KLndpZGdldC1zZWFyY2ggYnV0dG9uIHsKICAgIHdpZHRoOiAyNSU7CiAgICBvdXRsaW5lOiBub25lOwogICAgbWFyZ2luLWxlZnQ6IC01cHg7CiAgICBwYWRkaW5nOiA5cHggMTVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGNvbG9yOiAjZmZmOwp9Ci53aWRnZXQtc2VhcmNoIGJ1dHRvbjpob3ZlcnsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKfQoud2lkZ2V0LWxpc3QgdWx7CiAgICBtYXJnaW46MHB4OwogICAgcGFkZGluZzowcHg7CiAgICBwYWRkaW5nLXRvcDozcHg7Cn0KLndpZGdldC1saXN0IHVsIGxpewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjZWJlYmViOwogICAgcGFkZGluZzo0cHggMHB4Owp9Ci53aWRnZXQtbGlzdCB1bCBsaXsKICAgIHBhZGRpbmctdG9wOjBweDsKfQoud2lkZ2V0LWxpc3QgdWwgbGk6bGFzdC1jaGlsZHsKICAgIGJvcmRlci1ib3R0b206MHB4Owp9Ci53aWRnZXQtbGlzdCB1bCBsaSBhewogICAgY29sb3I6ICM0NDNhNDQ7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogNDBweDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoud2lkZ2V0LWxpc3QgdWwgbGk6aG92ZXIgYXsKICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgbWFyZ2luLWxlZnQ6IDEwcHg7Cn0KLndpZGdldC1saXN0IHVsIGxpIHNwYW57CgogICAgZmxvYXQ6cmlnaHQ7CiAgICBjb2xvcjogIzQ0M2E0NDsKICAgIGJvcmRlcjoxcHggc29saWQgIzQ0M2E0NDsKICAgIHdpZHRoOjMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGxpbmUtaGVpZ2h0OjMwcHg7CiAgICBtYXJnaW4tdG9wOjVweDsKICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci53aWRnZXQtbGlzdCB1bCBsaTpob3ZlciBzcGFuewogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBib3JkZXI6MXB4IHNvbGlkICMzNDk4ZGI7Cn0KCi53aWRnZXQtdGFncyB1bCBsaSB7CiAgIGZsb2F0OiBsZWZ0OwogICBtYXJnaW4tcmlnaHQ6MTBweDsKICAgYm9yZGVyOiAxcHggc29saWQgICM0NDNhNDQ7CiAgIGxpc3Qtc3R5bGU6bm9uZTsKICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgbWFyZ2luLWJvdHRvbToxMHB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHBhZGRpbmc6MHB4OwoKfQoud2lkZ2V0LXRhZ3MgdWwgbGk6bGFzdC1jaGlsZCB7CiAgICBib3JkZXI6MXB4IHNvbGlkICM0NDNhNDQ7Cn0KLndpZGdldC10YWdzIHVsIGxpOmhvdmVyIHsKICAgYm9yZGVyOiAxcHggc29saWQgICMzNDk4ZGI7Cn0KLndpZGdldC10YWdzIHVsIGxpIGF7CiAgICBkaXNwbGF5OiBibG9jazsKICAgZm9udC1zaXplOiAxNHB4OwogICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgIGNvbG9yOiAjMzQ5OGRiOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIHBhZGRpbmc6NXB4IDEwcHg7Cn0KLndpZGdldC10YWdzIHVsIGxpOmhvdmVyIGF7CiAgIGNvbG9yOiNmZmY7CiAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgIG1hcmdpbi1sZWZ0OiAwcHg7IAp9CgovKj09PT09PT09PT09PT09PT09PT09PQogMjkuICBCbG9nIHNpbmdsZSBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwoKLmJsb2ctbGF0ZXN0IC5zaWRlYmFyLXBvc3RzIHsKICBvdmVyZmxvdzogaGlkZGVuOwogIG1hcmdpbi1ib3R0b206IDIwcHg7IH0KICAuYmxvZy1sYXRlc3QgLnNpZGViYXItcG9zdHMgLmltYWdlLWxlZnQgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBwYWRkaW5nOiAwIDIwcHggMCAwOwogICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7IH0KICAuYmxvZy1sYXRlc3QgLnNpZGViYXItcG9zdHMgLnRleHQtYm94LXJpZ2h0IHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAgICAuYmxvZy1sYXRlc3QgLnNpZGViYXItcG9zdHMgLnRleHQtYm94LXJpZ2h0IGg2IHsKICAgICAgbWFyZ2luOjBweDsKICB9CiAgICAuYmxvZy1sYXRlc3QgLnNpZGViYXItcG9zdHMgLnRleHQtYm94LXJpZ2h0IGg2IGEgewogICAgICBmb250LXdlaWdodDogNDAwOwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfQogICAgLmJsb2ctbGF0ZXN0IC5zaWRlYmFyLXBvc3RzIC50ZXh0LWJveC1yaWdodCBwIHsKICAgICAgY29sb3I6ICM3MjcyNzI7IAogICAgICBmb250LXNpemU6IDE0cHg7CiAgfQogICAgLmJsb2ctbGF0ZXN0IC5zaWRlYmFyLXBvc3RzIC50ZXh0LWJveC1yaWdodCAucG9zdC1pbmZvIHsKICAgICAgY29sb3I6ICNjZWNlY2U7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsgfQoKLmJsb2ctZmVhdHVyZWQgewogIG92ZXJmbG93OiBoaWRkZW47CiAgZGlzcGxheTogYmxvY2s7IH0KICAuYmxvZy1mZWF0dXJlZCAuc2lkZWJhci13b3JrcyB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOyB9CiAgICAuYmxvZy1mZWF0dXJlZCAuc2lkZWJhci13b3JrcyBsaSB7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgICBtYXJnaW46IDRweCA0cHggMCAwOyAKICAgICAgbWFyZ2luLXRvcDowcHg7CiAgICAgIHBhZGRpbmctdG9wOjBweDsKICB9CiAgICAuYmxvZy1mZWF0dXJlZCAuc2lkZWJhci13b3JrcyBsaTpob3ZlciBhewogICAgICBtYXJnaW4tbGVmdDogMHB4OyAKICB9CgoKLmJsb2ctc2luZ2xlLWNvbnRlbnQgewogICAgbWFyZ2luLXRvcDogMjVweDsKfQoKLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctdGh1bWIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLXRodW1iIHAgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogNSU7CiAgICB0b3A6IDUlOwogICAgd2lkdGg6IDgwcHg7CiAgICBoZWlnaHQ6IDgwcHg7CiAgICBmb250LXNpemU6IDE5cHg7CiAgICBwYWRkaW5nOiAxNXB4IDAgMDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBtYXJnaW46IDBweDsKICAgIHotaW5kZXg6IDI7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7IH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLXRodW1iIHAgc3BhbiB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBmb250LXNpemU6IDE0cHg7IH0KCgouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50ICB7CiAgbWFyZ2luLXRvcDozMHB4Owp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDQgewogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1zaXplOiAxOHB4OwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IAogIGNvbG9yOiMzNDk4ZGI7CiAgbWFyZ2luLXRvcDoyMHB4Owp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgdWwgewogIG1hcmdpbjogMHB4OwogIHBhZGRpbmc6IDBweDsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogaGlkZGVuOyB9CiAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCB1bCBsaSB7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbi1yaWdodDogMTVweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjNzI3MjcyOwogICAgbGlzdC1zdHlsZTogbm9uZTsgCiAgICB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IHVsIGxpIHNwYW4gaSB7CiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCB7CiAgbWFyZ2luOiAyMHB4IDBweDsgfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCBwIHsKICAgIGNvbG9yOiAjNzI3MjcyOwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsgCiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCBoNCBhIHsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7IAogICAgY29sb3I6IzM0OThkYjsKICAgICBmb250LXNpemU6IDIwcHg7CiAgICB9CiAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAuYmxvZy10ZXh0IC5pY29ubGlzdCB7CiAgICBtYXJnaW46IDBweDsKICAgIHBhZGRpbmc6IDBweDsgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAuYmxvZy10ZXh0IC5pY29ubGlzdCBsaSB7CiAgICAgIHBhZGRpbmc6IDEwcHggMHB4OwogICAgICBsaXN0LXN0eWxlOm5vbmU7IAogICAgICBsaW5lLWhlaWdodDogMjZweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLXRleHQgLmljb25saXN0IGxpIGkgewogICAgICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCAuc29jaWFsLWljb25zLTIgewogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nOiAwcHg7CiAgICBtYXJnaW4tdG9wOiAyNXB4OyB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLXRleHQgLnNvY2lhbC1pY29ucy0yIGxpIHsKICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgIGxpc3Qtc3R5bGU6bm9uZTsgfQogICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLXRleHQgLnNvY2lhbC1pY29ucy0yIGxpOmhvdmVyIGEgaSB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsgfQogICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLXRleHQgLnNvY2lhbC1pY29ucy0yIGxpIGEgaSB7CiAgICAgICAgd2lkdGg6IDMwcHg7CiAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgIG1hcmdpbjogMHB4IDVweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0OyB9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIHsKICBwYWRkaW5nOiAzMHB4OwogIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7CiAgb3ZlcmZsb3c6IGhpZGRlbjsgfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIC5ibG9nLWxpc3QgLmJsb2ctdGh1bWIgewogICAgZmxvYXQ6IGxlZnQ7CiAgICB3aWR0aDogMTAwcHg7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLWF1dGhvciAuYmxvZy1saXN0IC5ibG9nLXRodW1iIGltZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7IH0KICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLWF1dGhvciAuYmxvZy1saXN0IC5ibG9nLXRleHQgewogICAgbWFyZ2luOiAwcHg7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyAKICAgIAogICAgfQoKICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCBhIHsKICAgICAgcGFkZGluZzogNHB4IDE4cHg7CiAgICAgIGNvbG9yOiAjMzQ5OGRiOwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOyAKICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgfQogICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLWF1dGhvciAuYmxvZy1saXN0IC5ibG9nLXRleHQgYTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOyB9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLm90aGVyLWJsb2cgewogIG92ZXJmbG93OiBoaWRkZW47CiAgZGlzcGxheTogYmxvY2s7IAogIG1hcmdpbi10b3A6MzBweDsKfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLm90aGVyLWJsb2cgLm90aGVyLWJsb2ctbGlzdCB7CiAgICBtYXJnaW46MjBweCAwcHg7Cn0KCiAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAub3RoZXItYmxvZyBoNCBhIHsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBjb2xvcjogIzM0OThkYjsKICAgICB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5vdGhlci1ibG9nIGg1ICB7CiAgICAgICAgbWFyZ2luOjEwcHggMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAub3RoZXItYmxvZyBoNSBhIHsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICB9CiAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAub3RoZXItYmxvZyB1bCB7CiAgICBtYXJnaW46IDBweDsKICAgIHBhZGRpbmc6IDBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAub3RoZXItYmxvZyB1bCBsaSB7CiAgICAgIGZsb2F0OiBsZWZ0OwogICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogI2I5YjliOTsKICAgICAgbGlzdC1zdHlsZTpub25lOyAKICAgIH0KICAgIC5ibG9nLWxpc3QxIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5vdGhlci1ibG9nIHVsIGxpIHNwYW4gaSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7IAogICAgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9CiAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgaDQgewogICAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgICBjb2xvcjogIzM0OThkYjsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbWFyZ2luLXRvcDozMHB4OwogICAgICAgIH0KICAgICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7IH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgewogICAgICBwYWRkaW5nOiAzMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0OwogICAgICBsaXN0LXN0eWxlOm5vbmU7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH0KICAgICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCBsaSAuYmxvZy1saXN0IC5ibG9nLXRodW1iIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH0KICAgICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IHVsIGxpIC5ibG9nLWxpc3QgLmJsb2ctdGh1bWIgaW1nIHsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOyB9CiAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IHsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9CiAgICAgICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCBsaSAuYmxvZy1saXN0IC5ibG9nLXRleHQgdWwgewogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0KICAgICAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IHVsIGxpIHsKICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAgY2FwaXRhbGl6ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IHVsIGxpIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCB1bCBsaSBzcGFuIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxMnB4OwogICAgICAgICAgICB9CiAgICAgICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCBsaSAuYmxvZy1saXN0IC5ibG9nLXRleHQgcCB7CiAgICAgICAgICAvKiBtYXJnaW46IDI1cHggMHB4OyAqLwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4OwogICAgICAgICAgfQogICAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IGEgewogICAgICAgICAgcGFkZGluZzogNHB4IDE4cHg7CiAgICAgICAgICBjb2xvcjogIzM0OThkYjsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAgICAgICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgICAgICAgICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgICAgICAgIH0KICAgICAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IGE6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0OThkYjsgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCBsaS5ibG9nLWxpc3QtcmlnaHQgewogICAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgICAgfQogIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgYS5sb2FkbW9yZS1idXQgewogICAgd2lkdGg6IDEwMCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG1hcmdpbjogNDBweCAwcHg7CiAgICBwYWRkaW5nOiAyMHB4IDE1cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDsgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCBhLmxvYWRtb3JlLWJ1dDpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7IH0KCiAgICAgICAuYmxvZy1saXN0MSAuYmxvZy10ZXh0IGg0ewogICAgICAgIG1hcmdpbi10b3A6MHB4OwogICAgICB9CgoKLmFkZC1yZXZpZXctbGlzdCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgcGFkZGluZzogMzBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgbWFyZ2luLXRvcDozMHB4Owp9CgouYWRkLXJldmlldy1saXN0IGlucHV0IHsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogMTJweCAwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwoKfQoKLmFkZC1yZXZpZXctbGlzdCB0ZXh0YXJlYSB7CiAgICBtYXJnaW46IDIwcHggMHB4OwogICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICBtYXJnaW4tdG9wOiAwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMjAwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFRkYxOwp9CgouYWRkLXJhdGluZyB7CiAgICBwYWRkaW5nOiAyNXB4IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViOwogICAgbWFyZ2luOiAzMHB4IDBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBjb2xvcjogIzcwNzA3MDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogICAgYm9yZGVyLXJhZGl1czogNXB4Owp9Ci5hZGQtcmF0aW5nIHAgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci5hZGQtcmF0aW5nIHVsIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgICBmbG9hdDogcmlnaHQ7Cn0KLmFkZC1yYXRpbmcgdWwgbGkgewogICBsaXN0LXN0eWxlOiBub25lOwp9Ci5hZGQtcmF0aW5nIHVsIGxpIGF7CiAgICBjb2xvcjogIzRjYjA1MDsKfQouYWRkLXJldmlldy1saXN0IGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgcGFkZGluZzogMTRweCAzMnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5hZGQtcmV2aWV3LWxpc3QgYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KLmFkZC1yZXZpZXctbGlzdCBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzcwNzA3MCAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICBsaW5lLWhlaWdodDogMjJweCAhaW1wb3J0YW50OwogICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1sZWZ0OiAyM3B4ICFpbXBvcnRhbnQ7Cn0KCi5hZGQtcmV2aWV3LWxpc3QgaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi8KICAgIGNvbG9yOiAjNzA3MDcwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIG1hcmdpbi1sZWZ0OiAyM3B4ICFpbXBvcnRhbnQ7Cn0KCi5hZGQtcmV2aWV3LWxpc3QgaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjNzA3MDcwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIHBhZGRpbmctbGVmdDogMjNweCAhaW1wb3J0YW50Owp9Ci5hZGQtcmV2aWV3LWxpc3QgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM3MDcwNzAgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgbGluZS1oZWlnaHQ6IDIycHggIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIHBhZGRpbmctbGVmdDogMjNweCAhaW1wb3J0YW50Owp9Ci5hZGQtcmV2aWV3LWxpc3QgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIgeyAgLyogRmlyZWZveCAxOSsgKi8KICAgIGNvbG9yOiAjNzA3MDcwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIG1hcmdpbi1sZWZ0OiAyM3B4ICFpbXBvcnRhbnQ7Cn0KCi5hZGQtcmV2aWV3LWxpc3QgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjNzA3MDcwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICAgIHBhZGRpbmctbGVmdDogMjNweCAhaW1wb3J0YW50Owp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDMwLiBEb21haW4gU2VsZWN0ZWQgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KCi5zZWxlY3RlZC1kb21haW57CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KLnNlbGVjdGVkLWRvbWFpbi1zZWN0aW9uewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsKICAgIHBhZGRpbmc6IDQwcHggMHB4OwogICAgcGFkZGluZy1ib3R0b206IDQycHg7Cn0KLnNlbGVjdGVkLWRvbWFpbi10aHVtYnsKICAgIGZsb2F0OiBsZWZ0OwogICAgbWFyZ2luLXJpZ2h0OiAyMHB4Owp9Ci5zZWxlY3RlZC1kb21haW4tdGh1bWIgaXsKICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Ci5zZWxlY3RlZC1kb21haW4tdGV4dCB7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwp9Ci5zZWxlY3RlZC1kb21haW4tdGV4dCBoNiB7CiAgICBmb250LXNpemU6IDIwcHg7Cn0KLnNlbGVjdGVkLWRvbWFpbi10ZXh0IHAgewogICAgZm9udC1zaXplOiAxNHB4OwogICAgbWFyZ2luOjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4Owp9Ci5zZWxlY3RlZC1kb21haW4tdGV4dCBwIGF7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBjb2xvcjogIzM0OThkYjsKfQouc2VsZWN0ZWQtZG9tYWluIHsKICAgIHBhZGRpbmctdG9wOiAxMHB4Owp9Ci5zZWxlY3RlZC1kb21haW4tc3VibWl0ewogICAgZmxvYXQ6IHJpZ2h0OwogICAgZm9udC1zaXplOiAxNXB4OwogICAgcGFkZGluZy10b3A6IDE1cHg7Cn0KLnNlbGVjdGVkLWRvbWFpbi1zdWJtaXQgZGVsewogICAgY29sb3I6Izk5OTsKICAgIG1hcmdpbi1yaWdodDogMjBweDsKfQouc2VsZWN0ZWQtZG9tYWluLXN1Ym1pdCBzcGFuewogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBmb250LXdlaWdodDogNjAwOwp9Ci5zZWxlY3RlZC1kb21haW4tc3VibWl0IGJ1dHRvbnsKICAgIHBhZGRpbmc6IDA7CiAgICB3aWR0aDogMTcwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlcjpub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgZm9udC1zaXplOiAxNXB4OwogICAgY29sb3I6I2ZmZjsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDVweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwogICAgbWFyZ2luLWxlZnQ6IDIwcHg7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAzMS4gRG9tYWluIENob29zZSBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwoKLnNlbGVjdGVkLWxpc3R7CiAgICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjI2LDIyNCwyMjUsLjkpOwogICAgcGFkZGluZzoyMHB4IDE1cHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zZWxlY3RlZC1saXN0IC5zZWxlY3RlZC1saXN0LW5hbWV7CiAgICBmbG9hdDpsZWZ0OwogICAgcGFkZGluZzogNXB4IDBweDsKfQouc2VsZWN0ZWQtbGlzdCAuc2VsZWN0ZWQtbGlzdC1uYW1lIGg2ewogICAgZm9udC1zaXplOiAyMHB4OwogICAgcGFkZGluZzoxMHB4IDBweDsKICAgIG1hcmdpbi1ib3R0b206IDBweDsKfQouc2VsZWN0ZWQtbGlzdCAuc2VsZWN0ZWQtbGlzdC1jYXJ0ewogICAgZmxvYXQ6cmlnaHQ7Cn0KLnNlbGVjdGVkLWxpc3QgLnNlbGVjdGVkLWxpc3QtY2FydCBwewogICAgZm9udC1zaXplOiAyMHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci5zZWxlY3RlZC1saXN0IC5zZWxlY3RlZC1saXN0LWNhcnQgYnV0dG9uewogICAgcGFkZGluZzogMDsKICAgIHdpZHRoOiAxNzBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGxpbmUtaGVpZ2h0OiA1MHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6I2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBvdXRsaW5lOiBub25lOwogICAgYm9yZGVyOm5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIG1hcmdpbi1sZWZ0OiAyMHB4OwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnNlbGVjdGVkLWxpc3QgLnNlbGVjdGVkLWxpc3QtY2FydCBidXR0b246aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDMyLiBDb250YWN0IFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCgouY29udGFjdC1zZWN0aW9uewogICAgcG9zaXRpb246cmVsYXRpdmU7Cn0KLmNvbnRhY3Qtc2VjdGlvbjF7CiAgICAKfQoKLmNvbnRhY3QtaW5mbyAuY29udGFjdC1jb250ZW50IC5jb250YWN0LWhlYWRlciBoNHsKIGZvbnQtc2l6ZTogMjBweDsKIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogcG9zaXRpb246IHJlbGF0aXZlOwogZm9udC1zaXplOiAzMHB4OwogY29sb3I6ICMyMjIyMjI7CiBmb250LXdlaWdodDogNzAwOwogcGFkZGluZy1ib3R0b206IDEycHg7CiBtYXJnaW4tYm90dG9tOiA0OHB4Owp9Ci5jb250YWN0LWluZm8gLmNvbnRhY3QtY29udGVudCAuY29udGFjdC1saXN0ewogICAgbWFyZ2luLXRvcDogNTBweDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bHsKICAgbWFyZ2luOjBweDsKICAgcGFkZGluZzowcHg7Cn0KLmNvbnRhY3QtaW5mbyAuY29udGFjdC1jb250ZW50IC5jb250YWN0LWxpc3QgdWwgbGl7CiAgbGlzdC1zdHlsZTpub25lOwogIHBhZGRpbmc6MTBweCAwcHg7CiAgYm9yZGVyLWJvdHRvbToycHggc29saWQgI2Y0ZjRmNDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaTpmaXJzdC1jaGlsZHsKICAgIHBhZGRpbmctdG9wOjBweDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaTpsYXN0LWNoaWxkewogIGJvcmRlci1ib3R0b206bm9uZTsgCn0KLmNvbnRhY3QtaW5mbyAuY29udGFjdC1jb250ZW50IC5jb250YWN0LWxpc3QgdWwgbGkgLmNvbnRhY3QtdGh1bWJ7CiAgZmxvYXQ6bGVmdDsKICBtYXJnaW4tcmlnaHQ6MTBweDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaSAuY29udGFjdC10aHVtYiBpewogIGZvbnQtc2l6ZTogMjVweDsKICBjb2xvcjojMzQ5OGRiOwp9Ci5jb250YWN0LWluZm8gLmNvbnRhY3QtY29udGVudCAuY29udGFjdC1saXN0IHVsIGxpIC5jb250YWN0LXRleHR7CiAgZGlzcGxheTogdGFibGUtY2VsbDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaSAuY29udGFjdC10ZXh0IHB7CiAgZm9udC1zaXplOiAxN3B4OwogIGNvbG9yOiMyMjIyMjI7Cn0KLmNvbnRhY3QtaW5mbyAuY29udGFjdC1jb250ZW50IC5jb250YWN0LWxpc3QgdWwgbGkgLmNvbnRhY3QtdGV4dCBwIHNwYW57CiAgZm9udC1zaXplOiAxNXB4OwogIGNvbG9yOiMyMjIyMjI7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBtYXJnaW4tbGVmdDogMTBweDsKICBsaW5lLWhlaWdodDogMjZweDsKfQovKkluZm8gTGlzdCovCgouaW5mby1saXN0ewogICAgcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5pbmZvLWxpc3QgbGl7CiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgIHBhZGRpbmctbGVmdDo0MHB4OwogICAgZm9udC1zaXplOjE2cHg7CiAgICBjb2xvcjojODQ4NDg0OwogICAgZm9udC13ZWlnaHQ6MzAwOwogICAgcGFkZGluZy1ib3R0b206MThweDsKICAgIG1hcmdpbi1ib3R0b206MjBweDsKICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmNGY0ZjQ7Cn0KCi5pbmZvLWxpc3QgbGkgLmljb257CiAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgIGxlZnQ6MHB4OwogICAgdG9wOjRweDsKICAgIGNvbG9yOiMwMDk4REE7CiAgICBmb250LXNpemU6MjJweDsKfQoKLmluZm8tbGlzdCBsaTpsYXN0LWNoaWxkewogICAgYm9yZGVyOjBweDsKICAgIG1hcmdpbjowcHg7CiAgICBwYWRkaW5nLWJvdHRvbTowcHg7Cn0KCi5pbmZvLWxpc3QgbGkgc3Ryb25newogICAgZm9udC13ZWlnaHQ6NDAwOwogICAgY29sb3I6IzIyMjIyMjsKfQoKLypDb250YWN0IEZvcm0qLwoKLmNvbnRhY3QtZm9ybSBoMnsKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgZm9udC1zaXplOjMwcHg7CiAgICBjb2xvcjojMjIyMjIyOwogICAgZm9udC13ZWlnaHQ6NzAwOwogICAgcGFkZGluZy1ib3R0b206MTJweDsKICAgIG1hcmdpbi1ib3R0b206NDhweDsKfQoKLmNvbnRhY3QtZm9ybSBoMjphZnRlcnsKICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgY29udGVudDonJzsKICAgIGxlZnQ6MHB4OwogICAgYm90dG9tOjBweDsKICAgIHdpZHRoOjgwcHg7CiAgICBoZWlnaHQ6NHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjojMzQ5OGRiOwp9CgouY29udGFjdC1mb3JtIC5mb3JtLWdyb3VwewogICAgbWFyZ2luLWJvdHRvbTogMzBweDsKfQoKLmNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5jb250YWN0LWZvcm0gaW5wdXRbdHlwZT0iZW1haWwiXSwKLmNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAouY29udGFjdC1mb3JtIHNlbGVjdCwuY29udGFjdC1mb3JtIHNlbGVjdCBvcHRpb24sCi5jb250YWN0LWZvcm0gdGV4dGFyZWF7CiAgICBkaXNwbGF5OmJsb2NrOwogICAgd2lkdGg6MTAwJTsKICAgIGhlaWdodDo1NXB4OwogICAgZm9udC1zaXplOjE2cHg7CiAgICBjb2xvcjojODQ4NDg0OwogICAgbGluZS1oZWlnaHQ6MzBweDsKICAgIHBhZGRpbmc6MTJweCAyNXB4OwogICAgZm9udC13ZWlnaHQ6MzAwOwogICAgb3V0bGluZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7CiAgICBib3JkZXI6MXB4IHNvbGlkICNlZmVmZWY7CiAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICB0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwogICAgLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOyAgIAp9CgouY29udGFjdC1mb3JtIGlucHV0OmZvY3VzLAouY29udGFjdC1mb3JtIHNlbGVjdDpmb2N1cywKLmNvbnRhY3QtZm9ybSB0ZXh0YXJlYTpmb2N1c3sKICAgIGJvcmRlci1jb2xvcjojMzQ5OGRiOwp9CgouY29udGFjdC1mb3JtIHRleHRhcmVhewogICAgaGVpZ2h0OjEyMHB4OwogICAgcmVzaXplOm5vbmU7CiAgICBwYWRkaW5nOjEycHggMjVweDsgIAogICAgYmFja2dyb3VuZDogI0VDRUZGMTsKfQoKLmNvbnRhY3QtZm9ybSBidXR0b257CiAgICBmb250LXNpemU6MTRweDsKICAgIHdpZHRoOjEwMCU7CiAgICBwYWRkaW5nOjEwcHggNDFweCAxMHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZzogMTRweCAzNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBjb2xvcjogI2ZmZmZmZjsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBiYWNrZ3JvdW5kOiAjMzQ5OGRiOwogICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMzQ5OGRiOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouY29udGFjdC1mb3JtIGJ1dHRvbjpob3ZlcnsKICAgIGJhY2tncm91bmQ6ICMyYzNlNTA7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMmMzZTUwOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7Cn0KCi5jb250YWN0LWZvcm0gaW5wdXQuZXJyb3IsCi5jb250YWN0LWZvcm0gc2VsZWN0LmVycm9yLAouY29udGFjdC1mb3JtIHRleHRhcmVhLmVycm9yewogICAgYm9yZGVyLWNvbG9yOiNmZjAwMDAgIWltcG9ydGFudDsgICAgCn0KCi5jb250YWN0LWZvcm0gbGFiZWwuZXJyb3J7CiAgICBkaXNwbGF5OmJsb2NrOwogICAgbGluZS1oZWlnaHQ6MjRweDsKICAgIHBhZGRpbmc6NXB4IDBweCAwcHg7CiAgICBtYXJnaW46MHB4OwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgZm9udC1zaXplOjExcHg7CiAgICBjb2xvcjojZmYwMDAwOwogICAgZm9udC13ZWlnaHQ6NTAwOyAgICAKfQoKLm1hcC1zZWN0aW9uIC5nb29nbGUtbWFwIHsKICAgIGhlaWdodDogNTUwcHg7Cn0KLmNvbnRhY3QtcGFnZS1mb3JtLTEgdGV4dGFyZWF7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoKCgovKj09PT09PT09PT09PT09PT09PT09PQogMzMuIFBvcnRmb2xpbyBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwouZ2FsbGVyeXsKICAgIHBhZGRpbmctYm90dG9tOiA3NXB4Owp9CiNpc290b3BlbWVudSB7CiAgICBtYXJnaW4tYm90dG9tOiA1NXB4Owp9CiNpc290b3BlbWVudSB1bHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6MDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQojaXNvdG9wZW1lbnUgdWwgbGl7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbWFyZ2luOiAwcHggMTNweDsKfQojaXNvdG9wZW1lbnUgdWwgbGkgcHsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6ICM3MDcwNzA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KI2lzb3RvcGVtZW51IHVsIGxpIHA6YWZ0ZXJ7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAtMTZweDsKICAgIGJvdHRvbTogMTBweDsKICAgIHdpZHRoOiA0cHg7CiAgICBoZWlnaHQ6IDJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7Cn0KI2lzb3RvcGVtZW51IHVsIGxpOmxhc3QtY2hpbGQgcDphZnRlciB7CiAgICBkaXNwbGF5OiBub25lOwogICAgfQojaXNvdG9wZW1lbnUgdWwgbGkgc3BhbnsKICAgIG1hcmdpbjogMHB4IDE1cHg7Cn0KI2lzb3RvcGVtZW51IHVsIGxpLmFjdGl2ZSBwewogICAgY29sb3I6ICMzNDk4ZGI7Cn0KI2dhbGxlcnlpdGVtcyB7CiAgICBtYXJnaW46IDAgLTEwcHg7Cn0KLnNpbmdsZS1pdGVtIHsKICAgIHdpZHRoOiAzMy4zMzMzJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwYWRkaW5nOiAwIDcuNXB4OwogICAgCn0KLnNpbmdsZS1pc290b3BlewogICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KLnNpbmdsZS1pc290b3BlIGltZyB7CiAgICB3aWR0aDogMTAwJQp9Ci5sYXllcnsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6IHJnYmEoNzgsOTAsMTAxLC43KTsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgb3BhY2l0eTogMDsKICAgIHotaW5kZXg6IDE7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgdHJhbnNpdGlvbjogLjVzIGFsbCBlYXNlIDBzOwp9Ci5zaW5nbGUtaXNvdG9wZTpob3ZlciAubGF5ZXJ7Cm9wYWNpdHk6IDE7Cn0KLmlzb3RvcGUtc29jaWFsIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpdHJhbnNsYXRlWCgtNTAlKTsKICAgIG9wYWNpdHk6IDA7CiAgICB6LWluZGV4OiAyOwogICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZSAwczsKfQouc2luZ2xlLWlzb3RvcGU6aG92ZXIgLmlzb3RvcGUtc29jaWFsewogICAgb3BhY2l0eTogMTsKCn0KLmlzb3RvcGUtc29jaWFsIGEgaSB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwMCU7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICB3aWR0aDogNDJweDsKICAgIGhlaWdodDogNDJweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgcGFkZGluZy1sZWZ0OiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDQycHg7CiAgICBjb2xvcjogIzM0OThkYjsKICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZSAwczsKfQouaXNvdG9wZS1zb2NpYWwgYSBpOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiAjZmZmOwp9Ci5hbGwtaW1hZ2V7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tdG9wOiAzOXB4Owp9Ci5hbGwtaW1hZ2UgYSB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgcGFkZGluZzogMTZweCAyMnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogODBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5hbGwtaW1hZ2UgYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwp9Ci5jaG9vc2Utc3R1ZHl7CiAgICBwYWRkaW5nOiAxMDBweCAwcHg7Cn0KLmNob29zZS1zdHVkeS1pbmZvIHsKICAgIG1hcmdpbi10b3A6IDEwcHg7Cn0KLmNob29zZS1zdHVkeS1pdGVtewogICAgbWFyZ2luLWxlZnQ6IC0xNXB4OwogICAgbWFyZ2luLXJpZ2h0OiAtMTVweDsKfQouY2hvb3NlLXN0dWR5LXRleHQgewogICAgd2lkdGg6IDI1MHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICBtYXJnaW4tdG9wOiAyNXB4Owp9Ci5jaG9vc2Utc3R1ZHktdGV4dCBoMyB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIGNvbG9yOiAjMjIzMTNmOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlIDBzOwp9Ci5jaG9vc2Utc3R1ZHktbGlzdDpob3ZlciAuY2hvb3NlLXN0dWR5LXRleHQgaDN7CmNvbG9yOiAjNGNiMDUwOwp9Ci5jaG9vc2Utc3R1ZHktdGV4dCBwIHsKICAgIGNvbG9yOiAjNzA3MDcwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7Cn0KLmNob29zZS1zdHVkeS1pbWcgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgYm9yZGVyOiAxcHggc29saWQgI2VkZWRlZDsKICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMDAlOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIHdpZHRoOiA4MHB4OwogICAgaGVpZ2h0OiA4MHB4OwogICAgcGFkZGluZzogM3B4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAzMHB4OwogICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUyJSk7Cn0KLmNob29zZS1zdHVkeS1pY29uIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgbGluZS1oZWlnaHQ6IDcwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIGNvbG9yOiAjNGNiMDUwOwogICAgdHJhbnNpdGlvbjogMC4zcyBhbGwgZWFzZSAwczsKfQouY2hvb3NlLXN0dWR5LWxpc3Q6aG92ZXIgLmNob29zZS1zdHVkeS1pY29uewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRjYjA1MDsKfQouY2hvb3NlLXN0dWR5LWltZyBpIHsKICAgIGNvbG9yOiAjNGNiMDUwOwp9Ci5jaG9vc2Utc3R1ZHktbGlzdDpob3ZlciAuY2hvb3NlLXN0dWR5LWltZyBpewogICAgY29sb3I6ICNmZmY7Cn0KLmNob29zZS1zdHVkeS1saXN0LnJpZ2h0IHsKICAgIGZsb2F0OiByaWdodDsKfQouY2hvb3NlLXN0dWR5LXRleHQucmlnaHQgewogICAgdGV4dC1hbGlnbjogbGVmdDsKfQouY2hvb3NlLXN0dWR5LWltZy5yaWdodCB7CiAgICBmbG9hdDogbGVmdDsKICAgIG1hcmdpbjogMDsKICAgIG1hcmdpbi10b3A6IDQ4cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CiAgICB0cmFuc2Zvcm06IG5vbmU7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiAzNC4gUmVnaXN0ZXIgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLnJlZ2lzdGVyLXNlY3Rpb257CiAgICBwYWRkaW5nOjg3cHggMHB4Owp9CgoubG9naW4tYWRtaW4gLmxvZ2luLWhlYWRlcnsKICAgIC8qdGV4dC1hbGlnbjogbGVmdDsqLwp9Ci5sb2dpbi1hZG1pbiAubG9naW4taGVhZGVyIGg2ewogICAgY29sb3I6IzE0MWIxZTsKICAgIGZvbnQtc2l6ZTogMjFweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmxvZ2luLWFkbWluIC5sb2dpbi1oZWFkZXIgcHsKICAgIGNvbG9yOiMxNDFiMWU7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogIGNhcGl0YWxpemU7Cn0KLmxvZ2luLWFkbWluIC5sb2dpbi1mb3JtIHsKICAgIG1hcmdpbi10b3A6IDMwcHg7Cgp9Ci5sb2dpbi1hZG1pbiAgaW5wdXRbdHlwZT0iZW1haWwiXSwgLmxvZ2luLWFkbWluIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sIC5sb2dpbi1hZG1pbiBpbnB1dFt0eXBlPSJ0ZXh0Il17CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBjb2xvcjogIzI2MzIzODsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0VGRjE7CiAgICBwYWRkaW5nOiAxOHB4IDMzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZTogMDsKICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICBtYXJnaW4tYm90dG9tOiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiAwLjVzOwogICAgLW1zLXRyYW5zaXRpb246IDAuNXM7CiAgICAtby10cmFuc2l0aW9uOiAwLjVzOwogICAgdHJhbnNpdGlvbjogMC41czsKfQoKc2VsZWN0I2NvdW50cnl7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBjb2xvcjogIzI2MzIzODsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0VGRjE7CiAgICBwYWRkaW5nOiAxOHB4IDMzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZTogMDsKICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICBtYXJnaW4tYm90dG9tOiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiAwLjVzOwogICAgLW1zLXRyYW5zaXRpb246IDAuNXM7CiAgICAtby10cmFuc2l0aW9uOiAwLjVzOwogICAgdHJhbnNpdGlvbjogMC41czsKfQoubG9naW4tYWRtaW4gLmxvZ2luLWZvcm0gaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICBwYWRkaW5nOiAxOHB4IDMzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZTogMDsKICAgIG1hcmdpbi1ib3R0b206IDI2cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IDAuNXM7CiAgICAtbXMtdHJhbnNpdGlvbjogMC41czsKICAgIC1vLXRyYW5zaXRpb246IDAuNXM7CiAgICB0cmFuc2l0aW9uOiAwLjVzOwogICAgbWFyZ2luLWJvdHRvbTogMHB4Owp9Ci5sb2dpbi1hZG1pbjEgLmxvZ2luLWZvcm0gaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgdGV4dC10cmFuc2Zvcm06ICB1cHBlcmNhc2U7Cn0KLmxvZ2luLWFkbWluIC5sb2dpbi1mb3JtIGlucHV0W3R5cGU9InN1Ym1pdCJdOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIC8qIHRleHQtdHJhbnNmb3JtOiAgdXBwZXJjYXNlOyAqLwp9Ci5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBsYWJlbHsKICAgIG1hcmdpbi1sZWZ0OiAxM3B4OwogICAgbWFyZ2luLXJpZ2h0OiAyNXB4OwogICAgY29sb3I6ICMyNjMyMzg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyAKICAgIGZvbnQtd2VpZ2h0OiA0MDA7Cn0KLmxvZ2luLWFkbWluIC5sb2dpbi1mb3JtIGxhYmVsIGlucHV0W3R5cGU9ImNoZWNrYm94Il17CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICBmb250LXdlaWdodDogNDAwOwp9Ci5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBsYWJlbCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIHdpZHRoOiAyNXB4OwogICAgaGVpZ2h0OiAyNXB4OwogICAgYm9yZGVyOiAycHggc29saWQgI2U2ZTZlNjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC02cHg7CiAgICBsZWZ0OiAtMTZweDsKICAgIHZpc2liaWxpdHk6IHZpc2libGU7Cn0KCi5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBsYWJlbCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY2hlY2suaHRtbCk7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOwp9Ci5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBwewogICBmb250OiAxNnB4OwogICAgY29sb3I6ICMyNjMyMzg7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Ci5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBhewogICAgZm9udC1zaXplOiAxNnB4OwogICAgY29sb3I6ICMyNjMyMzg7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQoubG9naW4tYWRtaW4gLnNvY2lhbC1sb2dpbnsKICAgIG1hcmdpbjoxNXB4IDBweDsKfQoubG9naW4tYWRtaW4gLnNvY2lhbC1sb2dpbiB1bHsKICAgIG1hcmdpbjowcHg7CiAgICBwYWRkaW5nOjBweDsKfSAgICAgICAKLmxvZ2luLWFkbWluIC5zb2NpYWwtbG9naW4gdWwgbGl7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgbWFyZ2luLXJpZ2h0OjIwcHg7CiAgICBmbG9hdDogbGVmdDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0gCi5sb2dpbi1hZG1pbiAuc29jaWFsLWxvZ2luIHVsIGxpIGEgaXsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiA1MHB4OwogICAgY29sb3I6I2ZmZjsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwoKfSAKLmxvZ2luLWFkbWluIC5zb2NpYWwtbG9naW4gdWwgbGkgYSB7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICB3aWR0aDo1MHB4OwogICAgdGV4dC10cmFuc2Zvcm06ICBjYXBpdGFsaXplOwogICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICBoZWlnaHQ6IDUwcHg7CiAgICBwYWRkaW5nOjhweCAxMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9CgoubG9naW4tYWRtaW4gLnNvY2lhbC1sb2dpbiB1bCBsaSBhOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KCgovKj09PT09PT09PT09PT09PT09PT09PQogMzUuIFRlYW0gU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLnRlYW0tc2VjdGlvbjF7CiAgICBwYWRkaW5nLWJvdHRvbTogODNweDsKfQoKLnRlYW1fYmlvX2xvZ297CiAgICBmbG9hdDogbGVmdDsKICAgIGJvcmRlcjogMnB4IHNvbGlkOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgYm9yZGVyLWNvbG9yOiAjMmMzZTUwOwp9Ci50ZWFtX2Jpb19sb2dvIHNwYW4gewogICAgY29sb3I6ICMyYzNlNTA7CiAgICBmbG9hdDogbGVmdDsKICAgIGZvbnQtc2l6ZTogMzZweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci50ZWFtX2Jpb19sb2dvIGgzewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGZsb2F0OiBsZWZ0OwogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7CiAgICBwYWRkaW5nOiAxMnB4IDEwcHg7CiAgICBtYXJnaW46IDBweDsgCn0KLnRlYW1fYmlvX2Rlc3sKICAgIGZsb2F0OiBsZWZ0OwogICAgd2lkdGg6IDEwMCU7Cn0KLnRlYW1fYmlvX2RlcyBoNHsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiMyZjJmMmY7CiAgICBmb250LXdlaWdodDogNTAwOwp9Ci50ZWFtX2Jpb19kZXMgdWx7CiAgICBmbG9hdDogbGVmdDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWFyZ2luOjBweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBwYWRkaW5nOjBweDsKfQoudGVhbV9iaW9fZGVzIHVsIGxpewogICAgZmxvYXQ6IGxlZnQ7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBjb2xvcjogIzY2NjsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgbGlzdC1zdHlsZTpub25lOwp9Ci50ZWFtX2Jpb19kZXMgdWwgbGkgaXsKICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgY29sb3I6IzJjM2U1MDsKfQoudGVhbV9iaW9fZGVzIHVsIGxpIGF7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgY29sb3I6ICM2NjY7Cn0KLnRlYW1fYmlvX2RlcyBwewogICAgY29sb3I6ICM3Nzc3Nzc7CiAgICBmb250LXNpemU6IDE0cHg7Cn0KLm1hcmdpbl9ub25lIHsKICAgIG1hcmdpbjogMCAhaW1wb3J0YW50Owp9Ci50ZWFtX3RodW1iIGZpZ3VyZTphZnRlcnsKICAgIGNvbnRlbnQ6ICIiOwogICAgbGVmdDogMjBweDsKICAgIHJpZ2h0OiAyMHB4OwogICAgdG9wOiAyMHB4OwogICAgYm90dG9tOiAyMHB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm9yZGVyOjFweCBzb2xpZDsgCiAgfQogLnRlYW1fdGh1bWIgZmlndXJlIGZpZ2NhcHRpb257CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3R0b206MTZweDsgCiAgICB6LWluZGV4OiA5OTk5OwogIH0KIC50ZWFtX3RodW1iIHVsIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIG1hcmdpbjogYXV0bzsKCn0KLnRlYW1fdGh1bWIgbGkgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBsaXN0LXN0eWxlOm5vbmU7Cn0KIC50ZWFtX3RodW1iIGZpZ2NhcHRpb24gYXsKICAgIHdpZHRoOiA0MXB4OwogICAgaGVpZ2h0OiA0MXB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiA0MXB4OwogICAgbWFyZ2luOiAwIDNweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgfQogLnRlYW1fdGh1bWIgZmlnY2FwdGlvbiBhOmhvdmVyewogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7CiB9CgovKj09PT09PT09PT09PT09PT09PT09PQogMzYuIENvb21pbmcgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLmZvb3Rlci1hcmVhMSAuZm9vdGVyLWJvdHRvbXsKICAgIHBhZGRpbmc6OXB4IDBweDsKfQouY29vbWluZy1zZWN0aW9uewogICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsKICAgIHBhZGRpbmc6MjVweCAwcHg7CiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1OXB4KTsKICAgIHdpZHRoOiAxMDAlOwp9Ci5jb29taW5nLWNvbnRlbnQgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjNmE3NDgzOwogICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICB0cmFuc2l0aW9uOiAuNXM7CiAgICBtYXJnaW46MjVweCAwcHg7Cn0KLmNvb21pbmctY29udGVudCBoM3sKICAgIGNvbG9yOiAjMGMxMTJhOwogICAgZm9udC1zaXplOiAzMHB4Owp9Ci5jb29taW5nLWNvbnRlbnQgaW5wdXRbdHlwZT0iZW1haWwiXXsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y3Zjk7CiAgICBoZWlnaHQ6IDUwcHg7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDsKICAgIGNvbG9yOiAjZmZmOwogICAgcGFkZGluZzo2cHggMTJweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6MTAwJTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGJvcmRlcjpub25lOwogICAgb3V0bGluZTogbm9uZTsKfQouY29vbWluZy1jb250ZW50IGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXN7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwp9Ci5jb29taW5nLWNvbnRlbnQgaW5wdXRbdHlwZT0iZW1haWwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi8KCiAgY29sb3I6ICMyMjIyMjI7Cn0KLmNvb21pbmctY29udGVudCBpbnB1dFt0eXBlPSJlbWFpbCJdOjotbW96LXBsYWNlaG9sZGVyIHsgLyogRmlyZWZveCAxOSsgKi8KCiAgY29sb3I6ICMyMjIyMjI7Cn0KLmNvb21pbmctY29udGVudCBpbnB1dFt0eXBlPSJlbWFpbCJdOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIElFIDEwKyAqLwoKICBjb2xvcjogIzIyMjIyMjsKfQouY29vbWluZy1jb250ZW50IGlucHV0W3R5cGU9ImVtYWlsIl06LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovCiAgY29sb3I6ICMyMjIyMjI7Cn0KCi5jb29taW5nLWNvbnRlbnQgaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7CiAgICBtaW4td2lkdGg6IDE3MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgbGluZS1oZWlnaHQ6IDMzcHg7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBtYXJnaW46IDI1cHggMHB4OwogICAgYm9yZGVyOm5vbmU7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5jb29taW5nLWNvbnRlbnQgaW5wdXRbdHlwZT0ic3VibWl0Il06aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwp9Ci5jb29taW5nLWNvbnRlbnQgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICNmZmY7CiAgICBtaW4td2lkdGg6IDE3MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgcGFkZGluZzogMTBweCA1MHB4OyAgICAgCiAgICBsaW5lLWhlaWdodDogNDVweDsKICAgIGZvbnQtc2l6ZToyNXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6NXB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouY29vbWluZy1jb250ZW50IGE6aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwp9CgovKj09PT09PT09PT09PT09PT09PT09PQogMzcuIENhcnQgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLmNhcnQtc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKfQouc2VjdGlvbi1oZWFkZXIgaDYgewogICAgbWF4LXdpZHRoOiA1MDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7CiAgICBjb2xvcjogIzI3MjcyNzsKfQoKLmNhcnQtY29udGVudCB0YWJsZSB7CiAgICB3aWR0aDoxMDAlOwogICAgCn0KLmNhcnQtY29udGVudCB0YWJsZSB0aGVhZHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBjb2xvcjojZmZmOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGhlYWQgdHIgdGh7CiAgICBwYWRkaW5nOjIwcHggNDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQouY2FydC1jb250ZW50IHRhYmxlIHRib2R5IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2Y3Zjk7CiAgICBjb2xvcjojMGMxMTJhOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLmNhcnQtY29udGVudCB0YWJsZSB0Ym9keSB0cjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGJvZHkgdHIgewogICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLmNhcnQtY29udGVudCB0YWJsZSB0Ym9keSB0ciB7CiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmN2Y5Owp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGJvZHkgdHIgdGR7CiAgICBwYWRkaW5nOjIwcHggNDBweDsKfQouY2FydC1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkIGEgewogICAgY29sb3I6IzBjMTEyYTsKICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGJvZHkgdHI6aG92ZXIgdGQgYSB7CiAgICBjb2xvcjojMzQ5OGRiOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGZvb3QgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiNmZmY7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB3aWR0aDoxMDAlOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGZvb3QgdHIgdGQgewogICAgcGFkZGluZzoyMHB4IDQwcHg7Cn0KLyogQ2FydCBQcmljZSBzdGFydCAqLwouY2FydC1wcmljZXsKICAgIG1hcmdpbi10b3A6MjBweDsKfQouY2FydC1wcmljZSAuY2FydC1jb3Vwb257CiAgICBmbG9hdDpsZWZ0OwogICAgbWFyZ2luLXJpZ2h0OiAxMDBweDsKICAgIHBhZGRpbmc6IDMwcHggMHB4OyAKfQouY2FydC1wcmljZSAuY2FydC1jb3Vwb24gaW5wdXRbdHlwZT0idGV4dCJdewogICAgbGluZS1oZWlnaHQ6IDQ4cHg7CiAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICBiYWNrZ3JvdW5kOiAjZjZmY2ZmOwogICAgYm9yZGVyOiAxcHggc29saWQgI2UwZjVmZjsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogNjUlOwogICAgZm9udC1zaXplOiAxNHB4Owp9Ci5jYXJ0LXByaWNlIC5jYXJ0LWNvdXBvbiBpbnB1dFt0eXBlPSJzdWJtaXQiXXsKICAgIHdpZHRoOiAzNCU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBtYXJnaW4tbGVmdDogLTJweDsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwogICAgYmFja2dyb3VuZDogIzM0OThkYjsKICAgIGxpbmUtaGVpZ2h0OiA0NnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41cwp9Ci5jYXJ0LXByaWNlIC5jYXJ0LWNvdXBvbiBpbnB1dFt0eXBlPSJzdWJtaXQiXTpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KLmNhcnQtcHJpY2UgLmNhcnQtdG90YWwgewogICAgd2lkdGg6IDUwJTsKICAgIGZsb2F0OiByaWdodDsKICAgIHBhZGRpbmctdG9wOjI3cHg7Cn0KLmNhcnQtcHJpY2UgLmNhcnQtdG90YWwxewogICAgcGFkZGluZy10b3A6MHB4Owp9CgouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bHsKICAgIG1hcmdpbjowcHg7CiAgICBwYWRkaW5nOjBweDsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaXsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBmNWZmOwogICAgcGFkZGluZzogMTVweCA0MHB4OwogICAgbGlzdC1zdHlsZTogbm9uZTsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaTpmaXJzdC1jaGlsZHsKICAgIHBhZGRpbmctdG9wOiAwcHg7Cn0KLmNhcnQtcHJpY2UgLmNhcnQtdG90YWwgdWwgbGk6bGFzdC1jaGlsZHsKICAgIGJvcmRlci1ib3R0b206bm9uZTsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBwewogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBjb2xvcjogIzIyMjsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owp9Ci5jYXJ0LXByaWNlIC5jYXJ0LXRvdGFsIHVsIGxpIHAgc3BhbnsKICAgIGZsb2F0OiByaWdodDsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBwLmNhcnQtb3BhY2l0eSB7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgY29sb3I6Izc5ODQ4ZDsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBwLmNhcnQtY29sb3IgewogICAgY29sb3I6IzM0OThkYjsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBidXR0b24gewogICAgbWFyZ2luLXRvcDo0MHB4OwogICAgZmxvYXQ6IHJpZ2h0OwogICAgcGFkZGluZzogMHB4IDMzcHg7CiAgICBsaW5lLWhlaWdodDogNTBweDsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxNXB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgYmFja2dyb3VuZDogIzM0OThkYjsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlcjpub25lOwogICAgb3V0bGluZTpub25lOwogICAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5jYXJ0LXByaWNlIC5jYXJ0LXRvdGFsIHVsIGxpIGJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAjMmMzZTUwOwp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDM4LiAgQ2hlY2tvdXQgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLmNoZWNrb3V0LXNlY3Rpb257CiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsKICAgIHBhZGRpbmctdG9wOjkwcHg7Cn0KICAuY29udGFjdC1mb3JtIGlucHV0W3R5cGU9ImVtYWlsIl17CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNFRkYxOwp9Ci5jb250YWN0LXBhZ2UtZm9ybS0yIC5jb250YWN0LWZvcm0gaW5wdXRbdHlwZT0idGV4dCJdLCAuY29udGFjdC1mb3JtIGlucHV0W3R5cGU9ImVtYWlsIl0sIC5jb250YWN0LWZvcm0gaW5wdXRbdHlwZT0icGFzc3dvcmQiXSwgLmNvbnRhY3QtZm9ybSBzZWxlY3QsIC5jb250YWN0LWZvcm0gc2VsZWN0ewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi5jYXJ0LXByaWNlMXsKICAgIG1hcmdpbi10b3A6MHB4Owp9Ci5jYXJ0LXByaWNlMSAuY2FydC10b3RhbHsKICAgIHdpZHRoOjEwMCU7CiAgICBmbG9hdDogbm9uZTsKfQovKj09PT09PT09PT09PT09PT09PT09PQogMzkuICBFcnJvciBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwouZXJyb3ItdGh1bWJ7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmbG9hdDogcmlnaHQ7CiAgICB3aWR0aDogNDk5cHg7CiAgICBoZWlnaHQ6IDQ5OXB4OwogICAgcGFkZGluZy10b3A6IDE1MHB4OwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIGJveC1zaGFkb3c6IDRweCAwIDc5cHggcmdiYSg0NiwgNDYsIDQ2LCAwLjA5KTsKICAgIG1hcmdpbjogMTIycHggYXV0byAxMjJweDsKfQouZXJyb3ItdGh1bWIgcCB7CiAgICBmb250LXdlaWdodDogMzAwOwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouZXJyb3ItY29udGVudHsKICAgIHBhZGRpbmctdG9wOiAyMjBweDsKICAgIHBhZGRpbmctbGVmdDogMjVweDsKfQouZXJyb3ItY29udGVudCBoMXsKICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgIGZvbnQtc2l6ZTogNDhweDsKICAgIGZvbnQtd2VpZ2h0OiAxMDA7CiAgICBjb2xvcjogIzM0OThkYjsKfQouZXJyb3ItY29udGVudCBwewogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgIGxpbmUtaGVpZ2h0OiAzMHB4OwogICAgbWFyZ2luLWJvdHRvbTogMzBweDsKfQouZXJyb3ItY29udGVudCBhewogICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgIHBhZGRpbmc6IDE1cHggNTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGxpbmUtaGVpZ2h0OiA1M3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiNmZmY7CiAgICB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQouZXJyb3ItY29udGVudCBhOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKfQouZXJyb3ItY29udGVudCBhIGl7CiAgICBtYXJnaW4tcmlnaHQ6MTBweDsKICAgIGNvbG9yOiAjZmZmOwp9Ci8qPT09PT09PT09PT09PT09PT09PT09CiA0MC4gQWZmaWxpYXRlIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi5jb21taXNzaW9uLXNlY3Rpb24gewogICAgcGFkZGluZy1ib3R0b206IDg5cHg7Cn0KLmFmZmlsaWF0ZS1pdGVtLXNlY3Rpb257CiAgICBwYWRkaW5nLXRvcDogOTBweDsKICAgIHBhZGRpbmctYm90dG9tOiA4M3B4Owp9Ci5hZmZpbGlhdGUtaXRlbSAuYWZmaWxpYXRlLXRodW1iewogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7Cn0KLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cn0KLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudCBoNHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGNvbG9yOiAjNzM3MzczOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudCBoNCBzcGFuewogICAgY29sb3I6ICMzNDk4ZGI7Cn0KLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudCBwewogICAgY29sb3I6ICM3MzczNzM7CiAgICBtYXJnaW46MHB4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDI2cHg7Cn0KLnJlZmVycmFsLWFtb3VudHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbi1ib3R0b206NTBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXItdG9wOjVweCBzb2xpZCAjMzQ5OGRiOwogICAgcGFkZGluZzoxNXB4IDBweCAwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB6LWluZGV4OiAwOwogICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXMgZWFzZS1pbi1vdXQ7CiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4yNXMgZWFzZS1pbi1vdXQ7Cn0KLnJlZmVycmFsLWFtb3VudDpob3ZlcnsKICAgIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsLjIpOwogICAgei1pbmRleDogMTsKfQoucmVmZXJyYWwtYW1vdW50OmJlZm9yZXsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICAgIHdpZHRoOjEwMCU7CiAgICBoZWlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgLjI1cyBlYXNlLWluLW91dDsKICAgIHRyYW5zaXRpb246IGhlaWdodCAuMjVzIGVhc2UtaW4tb3V0OwogICAgei1pbmRleDogLTE7Cn0KLnJlZmVycmFsLWFtb3VudDpob3ZlcjpiZWZvcmV7CiAgIGhlaWdodDogMTAwJTsKfQoucmVmZXJyYWwtYW1vdW50IHB7CiAgICBjb2xvcjogIzMzMzsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsZXR0ZXItc3BhY2luZzogLjEyZW07CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzM0OThkYjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDAgMCAycHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5yZWZlcnJhbC1hbW91bnQ6aG92ZXIgcHsKICAgIGNvbG9yOiAjZmZmOwp9Ci5yZWZlcnJhbC1hbW91bnQgaDR7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgZm9udC1zaXplOiA1MHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnJlZmVycmFsLWFtb3VudDpob3ZlciBoNHsKICAgIGNvbG9yOiAjZmZmOwp9Ci5yZWZlcnJhbC1hbW91bnQgaDV7CiAgICBwYWRkaW5nOiAyMHB4IDA7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQouc2lnbnVwLWFmZmlsaWF0ZSB7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbWFyZ2luLXRvcDoyNXB4Owp9Ci5zaWdudXAtYWZmaWxpYXRlIGF7CiAgICBtYXJnaW46MCBhdXRvOwogICAgcGFkZGluZzogMTJweCAyNXB4OwogICAgZm9udC1zaXplOiAxNnB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICBjb2xvcjogI2ZmZjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7Cn0KLnNpZ251cC1hZmZpbGlhdGUgYTpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiA0MS4gQWJvdXQgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLmFib3V0LXNlY3Rpb24gewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsKICAgIHBhZGRpbmctYm90dG9tOiA4NXB4OwogICAgcGFkZGluZy10b3A6IDg4cHg7Cn0KLmFib3V0Mi1zZWN0aW9uIHsKICAgIHBhZGRpbmc6IDg1cHggMHB4OwogICAgcGFkZGluZy10b3A6OTBweDsKICAgIHBhZGRpbmctYm90dG9tOiA5MHB4Owp9Ci5hYm91dC1jb250ZW50IGgzIHsKICAgIGZvbnQtc2l6ZTogMjVweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGluZS1oZWlnaHQ6IDIwcHg7Cn0KLmFib3V0LWNvbnRlbnQgcCB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQouYWJvdXQtZGVzYyB7CiAgICBwYWRkaW5nLXRvcDogMTBweDsKfQoKLmFib3V0LWluZm8gewogICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsKfQouYWJvdXQtaW5mby0yIHsKICAgIHBhZGRpbmctYm90dG9tOiA2MHB4Owp9CgouYWJvdXQtaW5mbyAuaGVhZGluZyB7CiAgICBmb250LXNpemU6IDQ4cHg7CiAgICBjb2xvcjogIzE5MjAyNDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgbWFyZ2luLWJvdHRvbTogMzZweDsKfQouYWJvdXQtaW5mbyAuc3ViaGVhZGluZyB7CiAgICBjb2xvcjogIzI2MzIzODsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAyNXB4Owp9Ci5hYm91dC1pbmZvIC5idG4gewogICAgZm9udC1zaXplOiAxNnB4OwogICAgcGFkZGluZzogMTdweCA0OHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogI2Y0NDMzNjsKICAgIGJvcmRlci13aWR0aDogMnB4Owp9Ci5hYm91dC1pbmZvIC5idG46aG92ZXIgewogICAgY29sb3I6ICMxNDFiMWU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2Owp9Ci5hYm91dC1pbmZvIC5pbWctYWJvdXQgewogICAgZGlzcGxheTogYmxvY2s7Cn0KLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgewogICAgcGFkZGluZzowcHg7Cn0KLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgLndyYXAgewogICAgcGFkZGluZy1sZWZ0OiA1NHB4Owp9Ci5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5oZWFkaW5nIHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGNvbG9yOiAjMTQxYjFlOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7CiAgICBtYXJnaW4tYm90dG9tOiAzNnB4OwogICAgLyogbWFyZ2luLXRvcDogIDBweDsgKi8KICAgIC8qIHBhZGRpbmc6ICAwOyAqLwogICAgbGluZS1oZWlnaHQ6IDMwcHg7Cn0KLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgLnN1YmhlYWRpbmcgaSB7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBmb250LXNpemU6IDM0cHg7CiAgICBjb2xvcjogIzE0MWIxZTsKICAgIGZsb2F0OiBsZWZ0Owp9Ci5zdWJoZWFkaW5nLWNvbnRlbnQgewogICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9Ci5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5zdWJoZWFkaW5nIC50aXRsZSB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgY29sb3I6ICMxNDFiMWU7Cn0KLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgLnN1YmhlYWRpbmcgLmluZm8gewogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIG1hcmdpbi10b3A6IDE1cHg7CiAgICBjb2xvcjogIzE0MWIxZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4Owp9Ci5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5pbmZvIHsKICAgIGNvbG9yOiAjMmQzMTMzOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbWFyZ2luLXRvcDogNTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLWJvdHRvbTogNTBweDsKfQouYWJvdXQtaW5mby5hYm91dC1saWdodCAuYnRuLm1vZGVybiB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgcGFkZGluZzogMTdweCA2N3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cgp9Ci5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5idG4ubW9kZXJuOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBjb2xvcjogIzM0OThkYjsKfQouYWJvdXQtaW5mby5hYm91dC1saWdodCAuaW1nLWFib3V0IHsKICAgIGxlZnQ6IDQwcHg7CiAgICB0b3A6IC0yNDVweDsKfQouc2VjdGlvbi1oZWFkaW5nIHsKICAgIGZvbnQ6IGJvbGQgNDhweCAiT3BlbiBTYW5zIEJvbGQiLAogICAgc2Fucy1zZXJpZjsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgY29sb3I6ICMxOTIwMjQ7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLnNlY3Rpb24taGVhZGluZy5saWdodCB7CiAgICBjb2xvcjogI2ZmZjsKfQouc2VjdGlvbi1oZWFkaW5nLnNtYWxsLXRleHQgewogICAgZm9udC1zaXplOiAzN3B4Owp9Ci5zZWN0aW9uLXN1YmhlYWRpbmcgewogICAgY29sb3I6ICMxOTIwMjQ7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLnNlY3Rpb24tc3ViaGVhZGluZy5saWdodCB7CiAgICBjb2xvcjogI2ZmZjsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDQyLiAgRmFxIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi5mYXEtc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKfQouZmFxLWNhdGVnb3JpZXMgewogICAgbWFyZ2luLWJvdHRvbTogNDBweDsKfQouZmFxLWNhdGVnb3JpZXM+dWwgewogICAgZm9udC1zaXplOiAwOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5mYXEtY2F0ZWdvcmllcz51bD5saSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KLmZhcS1jYXRlZ29yaWVzIHVsIGxpIGEgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZzogMTJweCAyNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgLjI1cyxiYWNrZ3JvdW5kLWNvbG9yIC4yNXM7CiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzLGJhY2tncm91bmQtY29sb3IgLjI1czsKfQouZmFxLWNhdGVnb3JpZXMgdWwgbGkgYTpiZWZvcmUgewogICAgY29udGVudDoiIjsKICAgIHRvcDowcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiA1MCU7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgIHdpZHRoOiAwOwogICAgaGVpZ2h0OiAwOwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMTJweCAxMnB4IDA7CiAgICBib3JkZXItY29sb3I6ICM2YWFmMDggdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IHRvcCAuNTVzOwogICAgdHJhbnNpdGlvbjogdG9wIC41NXM7CiAgICB6LWluZGV4OiAtMTsKfQouZmFxLWNhdGVnb3JpZXMgdWwgbGkgYTpob3ZlcjpiZWZvcmUsIC5mYXEtY2F0ZWdvcmllcyB1bCBsaS5hY3RpdmUgYTpiZWZvcmUgewogICAgdG9wOiAxMDAlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiB0b3AgLjI1czsKICAgIHRyYW5zaXRpb246IHRvcCAuMjVzOwp9Ci5kb21haW4tLW9mZmVyOmJlZm9yZSwgLnB0LWhlYWQsIC52cHMtcHJpY2luZy0tc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmJlZm9yZSwgLmZhcS1jYXRlZ29yaWVzIHVsIGxpIGE6YmVmb3JlIHsKICAgIGJvcmRlci10b3AtY29sb3I6ICM2YWFmMDg7Cn0KLmZhcS1jb250ZW50IC5wYW5lbC1ncm91cCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwp9Ci5hY2NvcmRpb24gLnBhbmVsIHsKICAgIGJvcmRlci1yYWRpdXM6IDA7Cn0KLmFjY29yZGlvbiAucGFuZWwtaGVhZGluZyB7CiAgICBwYWRkaW5nOiAwOwp9Ci5hY2NvcmRpb24gLnBhbmVsLWhlYWRpbmcgYSwgLmZhcS1jYXRlZ29yaWVzIHVsIGxpIGE6aG92ZXIsIC5mYXEtY2F0ZWdvcmllcyB1bCBsaS5hY3RpdmUgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgY29sb3I6ICMwMDA7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoucGFuZWwtZGVmYXVsdCBwewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQouYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGEgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKfQouYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGg0IGEgewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KLmFjY29yZGlvbiAucGFuZWwtaGVhZGluZyBoNCBhIGkuZmEtbWludXMgewogICAgZmxvYXQ6IHJpZ2h0OwogICAgY29sb3I6ICNmZmY7Cn0KLyouYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGg0IGEuY29sbGFwc2VkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0qLwouYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGg0IGEuY29sbGFwc2VkIGkuZmEtbWludXM6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcZjA2NyI7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09CiA0My4gUG9wdWxhci1QbGFuIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi5wb3B1bGFyLXBsYW4tc2VjdGlvbiB7CiAgICBwYWRkaW5nLWJvdHRvbTogNTVweDsKfQoucG9wdWxhci1wbGFuLWNvbnRlbnQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB3aWR0aDogMTAwJTsKICAgIC8qd2lkdGg6IDcwJTsqLwogICAgZmxvYXQ6IGxlZnQ7CiAgICBwYWRkaW5nOiAyNXB4IDMwcHg7CiAgICAgcGFkZGluZy1ib3R0b206IDI2cHg7IAogICAgbWFyZ2luLWJvdHRvbTogMzFweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMGYwZjA7Cgp9Ci5wb3B1bGFyLXBsYW4tY29udGVudCBoM3sKICAgIGZvbnQtc2l6ZTogMjhweDsKICAgIGNvbG9yOiAjMTkyMDI0OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIG1hcmdpbi1ib3R0b206IDM4cHg7Cn0KLnBvcHVsYXItcGxhbi1jb250ZW50IGgzIHNwYW57CiAgICBjb2xvcjogIzM0OThkYjsKfQoucG9wdWxhci1wbGFuLWNvbnRlbnQgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjMTkyMDI0OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgbWFyZ2luOiAwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4Owp9Ci5wb3B1bGFyLXBsYW4tY29udGVudCB1bHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAvKnRleHQtYWxpZ246IGxlZnQ7Ki8KICAgIHBhZGRpbmc6ICAwcHg7CiAgICBwYWRkaW5nLXRvcDogMjJweDsKICAgIG1hcmdpbi1ib3R0b206ICAwcHg7CiAgICBwYWRkaW5nLXRvcDoxNnB4OwogICAgcGFkZGluZy1ib3R0b206IDE1cHg7CiAgICBib3JkZXI6MXB4IHNvbGlkICNmN2Y3Zjc7Cn0KLnBvcHVsYXItcGxhbi1jb250ZW50IHVsIGxpewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgbWFyZ2luLWJvdHRvbTogMHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBpewogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4Owp9Ci5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBwewogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7Cn0KLnBvcHVsYXItcGxhbi1jb250ZW50IHVsIGxpIHNwYW57CiAgICBjb2xvcjogIzM0OThkYjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDE1cHg7Cn0KLnBvcHVsYXItcGxhbi10aHVtYiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgd2lkdGg6IDI5JTsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICBtYXJnaW4tbGVmdDogLTVweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwYWRkaW5nOjQycHggMzVweDsKICAgIHBhZGRpbmctYm90dG9tOiA1NnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnBvcHVsYXItcGxhbi10aHVtYiAucG9wdWxhci1yaWJib257CiAgICB0b3A6IDBweDsKICAgIHJpZ2h0OiAwcHg7CiAgICB3aWR0aDogODBweDsKICAgIGhlaWdodDogODBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KLnBvcHVsYXItcGxhbi10aHVtYiAucG9wdWxhci1yaWJib24gLnJpYmJvbnsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogI2ZmZjsKICAgIHotaW5kZXg6IDI7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHBhZGRpbmc6IDdweCAwOwogICAgbGVmdDogLThweDsKICAgIHRvcDogMTNweDsKICAgIHdpZHRoOiAxMjBweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KLnBvcHVsYXItcGxhbi10aHVtYiAucG9wdWxhci1wcmljZS1hbW91bnR7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9Ci5wb3B1bGFyLXBsYW4tdGh1bWIgLnBvcHVsYXItcHJpY2UtYW1vdW50IHB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgZm9udC1zaXplOiAzNXB4OwogICAgbWFyZ2luOjBweDsKfQoucG9wdWxhci1wbGFuLXRodW1iIC5wb3B1bGFyLXByaWNlLWFtb3VudCBwIHNwYW57CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgZm9udC1zaXplOiA1MHB4Owp9Ci5wb3B1bGFyLXBsYW4tdGh1bWIgaDZ7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICBib3JkZXI6MnB4IGRvdHRlZCAjZmZmOwogICAgY29sb3I6I2ZmZjsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBtYXJnaW4tYm90dG9tOiAxOHB4Owp9Ci5wb3B1bGFyLXBsYW4tdGh1bWIgYnV0dG9uewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2U1MDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiAxM3B4IDEwcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBib3JkZXI6IHNvbGlkIDJweCAjMmMzZTUwOwogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnBvcHVsYXItcGxhbi10aHVtYiBidXR0b246aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgYm9yZGVyOiBzb2xpZCAycHggIzM0OThkYjsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci5wb3B1bGFyLXBsYW4tdGh1bWIxIHsKICAgIG1hcmdpbi1yaWdodDogLTVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBmbG9hdDogbGVmdDsKfQoucG9wdWxhci1wbGFuLXRodW1iMSBidXR0b257CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyOiBzb2xpZCAycHggIzM0OThkYjsKfQoucG9wdWxhci1wbGFuLXRodW1iIGJ1dHRvbjpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXI6IHNvbGlkIDJweCAjMmMzZTUwOwogICAgY29sb3I6ICMyYzNlNTA7Cn0KLnBvcHVsYXItcGxhbi10aHVtYjEgLnBvcHVsYXItcmliYm9uIC5yaWJib257CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudDF7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudDEgaDMgc3BhbnsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudDEgdWwgbGkgaXsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudDEgdWwgbGkgcHsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudDEgdWwgbGkgc3BhbnsKICAgIGNvbG9yOiAjMmMzZTUwOwp9Ci8qPT09PT09PT09PT09PT09PT09PT09CiA0NC4gIFRlc3RpbW9uaWFsIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi5wZW9wbGUtc2F5LXNlY3Rpb257CiAgICBwYWRkaW5nLWJvdHRvbTogNjJweDsKfQoudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtaW1hZ2Utc2xpZGVyIHsKICBtYXJnaW4tdG9wOiA1cHg7IH0KLnRlc3RpbW9uaWFsLWFyZWEgLnNsaWNrLWxpc3QgewogIG1hcmdpbjogMCA1cHg7IH0KLnRlc3RpbW9uaWFsLWFyZWEgLnNpbi10ZXN0aUltYWdlIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgbWFyZ2luLWJvdHRvbTogMTFweDsKICBvdXRsaW5lOiBtZWRpdW0gbm9uZTsgfQogIC50ZXN0aW1vbmlhbC1hcmVhIC5zaW4tdGVzdGlJbWFnZSBpbWcgewogICAgYm9yZGVyOiAxcHggc29saWQgICMzNDk4ZGI7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsKICAgIGhlaWdodDogODBweDsKICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICBtYXJnaW4tdG9wOiAzNnB4OwogICAgb3V0bGluZTogMCBub25lOwogICAgd2lkdGg6IDgwcHg7IH0KLnRlc3RpbW9uaWFsLWFyZWEgLnNpbi10ZXN0aUltYWdlLnNsaWNrLWN1cnJlbnQgaW1nIHsKICBib3JkZXI6IDNweCBzb2xpZCAjMzQ5OGRiOwogIGhlaWdodDogMTQ2cHg7CiAgbWFyZ2luLXRvcDogMDsKICBvcGFjaXR5OiAxOwogIGJvcmRlci10b3A6IDA7CiAgd2lkdGg6IDE0NnB4OyB9Ci50ZXN0aW1vbmlhbC1hcmVhIC50ZXN0aW1vbmlhbC10ZXh0LXNsaWRlciB7CiAgbWFyZ2luOiBhdXRvOwogIHBhZGRpbmc6IDA7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHotaW5kZXg6IDk7IH0KICAudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtdGV4dC1zbGlkZXIgaDIgewogICAgY29sb3I6ICMzNEM3RkY7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsaW5lLWhlaWdodDogMjZweDsgfQogIC50ZXN0aW1vbmlhbC1hcmVhIC50ZXN0aW1vbmlhbC10ZXh0LXNsaWRlciAuc2luLXRlc3RpVGV4dCB7CiAgICBvdXRsaW5lOiBub25lOyB9CiAgICAudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtdGV4dC1zbGlkZXIgLnNpbi10ZXN0aVRleHQgLnBlb3BsZS1zYXktY29udGVudC1saXN0IHsKICAgICAgcGFkZGluZzogMTBweCAzMHB4OwogICAgICBjb2xvcjogIzJjM2U1MDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgei1pbmRleDogNzsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgICAgIC50ZXN0aW1vbmlhbC1hcmVhIC50ZXN0aW1vbmlhbC10ZXh0LXNsaWRlciAuc2luLXRlc3RpVGV4dCAucGVvcGxlLXNheS1jb250ZW50LWxpc3QgaDQgewogICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgbWFyZ2luOiAwcHg7IH0KICAgICAgLnRlc3RpbW9uaWFsLWFyZWEgLnRlc3RpbW9uaWFsLXRleHQtc2xpZGVyIC5zaW4tdGVzdGlUZXh0IC5wZW9wbGUtc2F5LWNvbnRlbnQtbGlzdCBoNiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH0KICAgICAgLnRlc3RpbW9uaWFsLWFyZWEgLnRlc3RpbW9uaWFsLXRleHQtc2xpZGVyIC5zaW4tdGVzdGlUZXh0IC5wZW9wbGUtc2F5LWNvbnRlbnQtbGlzdCB1bCB7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KICAgICAgICAudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtdGV4dC1zbGlkZXIgLnNpbi10ZXN0aVRleHQgLnBlb3BsZS1zYXktY29udGVudC1saXN0IHVsIGxpIHsKICAgICAgICAgIGZsb2F0OiBsZWZ0OwogICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOyB9CiAgICAgICAgICAudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtdGV4dC1zbGlkZXIgLnNpbi10ZXN0aVRleHQgLnBlb3BsZS1zYXktY29udGVudC1saXN0IHVsIGxpIGkgewogICAgICAgICAgICBjb2xvcjogIzMzMzsgfQogICAgICAudGVzdGltb25pYWwtYXJlYSAudGVzdGltb25pYWwtdGV4dC1zbGlkZXIgLnNpbi10ZXN0aVRleHQgLnBlb3BsZS1zYXktY29udGVudC1saXN0IHAgewogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBjb2xvcjogIzMzMzsgCiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7CiAgICB9Cgouc2xpY2stcHJldiwgLnNsaWNrLW5leHQgewogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7CiAgYm9yZGVyOiBtZWRpdW0gbm9uZTsKICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgY3Vyc29yOiBwb2ludGVyOwogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQtc2l6ZTogMDsKICBoZWlnaHQ6IDI1cHg7CiAgb3V0bGluZTogbWVkaXVtIG5vbmU7CiAgcGFkZGluZzogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAzNC42JTsKICB3aWR0aDogMTZweDsgfQoKLnNsaWNrLXByZXYgewogIGxlZnQ6IC0xODBweDsgfQoKLnNsaWNrLW5leHQgewogIHJpZ2h0OiAtMTgwcHg7IH0KLnNsaWNrLXByZXY6YmVmb3JlLCAuc2xpY2stbmV4dDpiZWZvcmUgewogIGhlaWdodDogMjVweDsKICB3aWR0aDogMTZweDsKICBsZWZ0OiAwOwogIHRvcDogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgY29sb3I6ICMyYzNlNTA7CiAgY29udGVudDogIlxmMTRhIjsKICBmb250LWZhbWlseTogIk1hdGVyaWFsLURlc2lnbi1JY29uaWMtRm9udCI7CiAgZm9udC1zaXplOiA1MHB4ICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzOwogIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7CiAgb3BhY2l0eTogMDsKICAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MCkiOyB9Cgouc2xpY2stbmV4dDpiZWZvcmUgewogIHJpZ2h0OiAwOwogIGNvbnRlbnQ6ICJcZjEwNSI7CiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lOwogIGN1cnNvcjogcG9pbnRlcjsgfQoKLnNsaWNrLXNsaWRlciB7CiAgei1pbmRleDogOTsgfQoKLnNpbi10ZXN0aVRleHQgaSB7CiAgY29sb3I6ICNGRkE4MDA7CiAgZm9udC1zaXplOiAxNHB4OyB9CgoudGVzdGltb25pYWwtYXJlYTpob3ZlciAuc2xpY2stcHJldjpiZWZvcmUsIC50ZXN0aW1vbmlhbC1hcmVhOmhvdmVyIC5zbGljay1uZXh0OmJlZm9yZSB7CiAgb3BhY2l0eTogMTsKICAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKSI7IH0KCi5zbGljay1wcmV2OmJlZm9yZSB7CiAgcmlnaHQ6IDA7CiAgY29udGVudDogIlxmMTA0IjsKICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgY3Vyc29yOiBwb2ludGVyOyB9CgoKLnRlc3RpbW9uaWFscy1pdGVtewogICAgcGFkZGluZzoyNXB4OwogICAgYm9yZGVyOjFweCBzb2xpZCAjZjFmMWYxOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luLWJvdHRvbTogMzBweDsKfQoudGVzdGltb25pYWxzLWl0ZW0gLnRlc3RpbW9uaWFsLXRodW1iewogICAgd2lkdGg6MTAwcHg7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIG1hcmdpbjowIGF1dG87Cn0KLnRlc3RpbW9uaWFscy1pdGVtIC50ZXN0aW1vbmlhbC10aHVtYiBpbWd7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwp9Ci50ZXN0aW1vbmlhbHMtaXRlbSAudGVzdGltb25pYWwtY29udGVudDN7CiAgICBtYXJnaW4tdG9wOjMwcHg7CiAgICBtYXJnaW4tbGVmdDowcHg7Cn0KLnRlc3RpbW9uaWFscy1pdGVtIC50ZXN0aW1vbmlhbC1jb250ZW50MyBwewogICAgY29sb3I6ICM5OTk5OTk7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgZm9udC1zaXplOiAxNHB4Owp9Ci50ZXN0aW1vbmlhbHMtaXRlbSAudGVzdGltb25pYWwtY29udGVudDMgaDV7CiAgICBjb2xvcjogIzIyMjsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKfQoudGVzdGltb25pYWxzLWl0ZW0gLnRlc3RpbW9uaWFsLWNvbnRlbnQzIGg2ewogICAgY29sb3I6ICM5OTk5OTk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Ci50ZXN0aW1vbmlhbC1jb250ZW50MzpiZWZvcmUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgY29udGVudDogIiI7CiAgICB3aWR0aDogMjVweDsKICAgIGhlaWdodDogMjVweDsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNDUlOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtNDVkZWcpOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoLTQ1ZGVnKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtNDVkZWcpOwp9CgoudGVzdGltb25pYWwtY29udGVudDM6YmVmb3JlIHsKICAgIHRvcDogOSU7Cn0KLyo9PT09PT09PT09PT09PT09PT09PT0KIDQ1LiAgU3VwcG9ydCBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwouY29udGFjdC1zZWN0aW9uMXsKICAgIHBhZGRpbmctYm90dG9tOiA2MHB4Owp9Ci5jb250YWN0LWluZm8gLmNvbnRhY3QtY29udGVudCAuY29udGFjdC1saXN0MSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjFmMWYxOwogICAgcGFkZGluZzogMTBweDsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdDEgcHsKICAgZm9udC1zaXplOiAxNHB4OwogICBsaW5lLWhlaWdodDogMjZweDsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDQ2LiBDaWNsZSBTZWN0aW9uIAo9PT09PT09PT09PT09PT09PT09PT0qLwouY2lyY2xlLWNvbnRlbnR7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmNpcmNsZS1jb250ZW50IGg2ewogICAgZm9udC1zaXplOiAyMHB4OwogICAgY29sb3I6IzJjM2U1MDsKfQouY2lyY2xlLWNvbnRlbnQgcHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjowcHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQovKj09PT09PT09PT09PT09PT09PT09PQogNDcuICBEYXRhY2VudGVyIFNlY3Rpb24gCj09PT09PT09PT09PT09PT09PT09PSovCi5kYXRhY2VudGVyLXNlY3Rpb24gewogICAgcGFkZGluZy1ib3R0b206IDcwcHg7Cn0KLmRhdGFjZW50ZXItY29udGVudCBoNCB7CiAgICBmb250LXNpemU6IDMwcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6ICMzNDk4ZGI7CiAgICBmb250LXdlaWdodDogNjAwOwp9Ci5kYXRhY2VudGVyLWNvbnRlbnQgcCB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT0KIDQ4LiAgRWxlbWVudHMgU2VjdGlvbiAKPT09PT09PT09PT09PT09PT09PT09Ki8KLnR5cG9ncmFwaHktc2VjdGlvbiB7CiAgICBwYWRkaW5nOiA3NXB4IDBweDsKfQouYnV0dG9uLWxpc3QgdWwgbGl7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgbWFyZ2luOjEwcHggMHB4Owp9Ci5idXR0b24tbGlzdCB1bCBsaSBhewogICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgIHBhZGRpbmc6IDE1cHggNTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGxpbmUtaGVpZ2h0OiA1M3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGNvbG9yOiAjZmZmOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoud2lkZ2V0VGl0bGV7CiAgICBmb250LXNpemU6IDUwcHg7Cn0KLmNsaWVudC1saXN0IC5jbGllbnQtY29udGFpbmVyIC5vdXItY2xpZW50IHsKICAgIHdpZHRoOiAxNjVweDsKICAgIGhlaWdodDogMTY1cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDJkMmQyOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMHB4IDBweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0OyB9Ci5jbGllbnQtbGlzdCAuY2xpZW50LWNvbnRhaW5lciAub3VyLWNsaWVudDpob3ZlciB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7CiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgICAtbW96LWJveC1zaGFkb3c6IDBweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC43KTsKICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjcpOyB9Ci5jbGllbnQtbGlzdCAuY2xpZW50LWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1uZXh0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgICByaWdodDogLTUwcHg7CiAgICB0b3A6IDY1JTsgfQouY2xpZW50LWxpc3QgLmNsaWVudC1jb250YWluZXIgLnN3aXBlci1idXR0b24tbmV4dDpob3ZlciBpIHsKICAgICAgY29sb3I6ICMyN2FlNjA7IH0KLmNsaWVudC1saXN0IC5jbGllbnQtY29udGFpbmVyIC5zd2lwZXItYnV0dG9uLW5leHQgaSB7CiAgICAgIGZvbnQtc2l6ZTogNDBweDsKICAgICAgY29sb3I6ICMzYzRlNjI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0OyB9Ci5jbGllbnQtbGlzdCAuY2xpZW50LWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1wcmV2IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgICBsZWZ0OiAtNTBweDsKICAgIHRvcDogNjUlOyB9Ci5jbGllbnQtbGlzdCAuY2xpZW50LWNvbnRhaW5lciAuc3dpcGVyLWJ1dHRvbi1wcmV2OmhvdmVyIGkgewogICAgICBjb2xvcjogIzM0OThkYjsgfQouY2xpZW50LWxpc3QgLmNsaWVudC1jb250YWluZXIgLnN3aXBlci1idXR0b24tcHJldiBpIHsKICAgICAgZm9udC1zaXplOiA0MHB4OwogICAgICBjb2xvcjogIzNjNGU2MjsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7IAp9CgoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj09PT09PT09PT09PT09PT0gNDkuIFBhcnRpY2xlIFNlY3Rpb24gU3RhcnQgPT09PT0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCi8qIC0tLS0gcGFydGljbGVzLmpzIGNvbnRhaW5lciAtLS0tICovCi5wYXJ0aWNsZXMtanMtY2FudmFzLWVsewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOjA7CiAgICBsZWZ0OjA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIC8qIHotaW5kZXg6ICAxMDsgKi8KfQoKI3dyYXBwZXIgeyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwIGF1dG87fQoKCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9PT09PT09PT09PT09PT09IDUwLiBDdXN0b21lIENTUyA9PT09PQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKLnNlcnZpY2Utd3JhcHBlciB7CiAgICBwYWRkaW5nOiAzMHB4OwogICAgdHJhbnNpdGlvbjogLjVzOwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIGJhY2tncm91bmQ6ICMzNDk4ZGI7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiOwp9Ci5zZXJ2aWNlLXdyYXBwZXI6aG92ZXIgewogICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDk4ZGI7Cn0KCi5zZXJ2aWNlLXdyYXBwZXI6aG92ZXIgaXsKICAgIGNvbG9yOiAjMzQ5OGRiOwp9Cgouc2VydmljZS13cmFwcGVyOmhvdmVyIHB7CiAgICBjb2xvcjogIzM0OThkYjsKfQoKLnNlcnZpY2Utd3JhcHBlciBpLCAuc2VydmljZS10aXRsZSBwIHsKICAgY29sb3I6ICNmZmZmZmY7Cn0KCi5zZXJ2aWNlLWljb24gewogICAgZm9udC1zaXplOiA0MHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMTBweDsKfQoub3VyLXBsYW4gLnNlY3Rpb24tdGl0bGUgewogICAgcGFkZGluZy1ib3R0b206IDUwcHg7Cn0KCi5taW4tcHJpY2UgaDYgewogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBwYWRkaW5nLXRvcDogMjBweDsKfQoubWluLXByaWNlIGg2IHNwYW4gewogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5wcmljaW5nLWxpc3QtYm90b20tbWFyZ2luewogICAgcGFkZGluZy1ib3R0b206IDQ1cHg7Cn0KCgouY29udGFjdC1taWRkZWwtaW5mbyB7CiAgICBiYWNrZ3JvdW5kOiAjMkM0MDY1OwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiA4NXB4OwogICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4NXB4OwogICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDg1cHg7CiAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiAgODVweCAvKiBGRiAxLjAgLSAxMi4wICovIAoKfQoKLmNvbnRhY3QtbWlkZGVsLXRpdGxlIGg0IHsKICAgIGNvbG9yOiAjZmZmOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKLmNvbnRhY3QtbWlkZGVsLXRpdGxlIGg0IHNwYW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXdlaWdodDogMzAwOwp9CgouY29udGFjdC1taWRkZWwtZGV0YWlscyB7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKfQoKLmNvbnRhY3QtbWlkZGVsLWRldGFpbHMgaSB7CiAgICBjb2xvcjogIzM0OThkYjsKfQoKLmRpc2N1bnQtbWlkZGVsLXRleHQgewogICAgYmFja2dyb3VuZDogIzM0OThkYjsKICAgIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDg1cHg7CiAgIC1tb3otYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDg1cHg7CiAgICAtbXMtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDg1cHg7CiAgICAgLW8tYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDg1cHg7CiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDg1cHg7CgogICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDg1cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogODVweDsKICAgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6ICA4NXB4OyAvKiBGRiAxLjAgLSAxMi4wICovIAoKICAgIG1hcmdpbi1sZWZ0OiAtMTgwcHg7CiAgICBwYWRkaW5nOiA0OHB4Owp9CgouZGlzY3VudC1taWRkZWwtdGV4dCBoMyB7CiAgICBmb250LXNpemU6IDUwcHg7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgoubWFyZ2luLWItMzV7CiAgICBtYXJnaW4tYm90dG9tOiAzNXB4Owp9CgoKLm1haW4tbWVudSB1bCBsaSAubWVudS1wb3N0aW9uIHsKICAgIHJpZ2h0OiAyMzhweDsKICAgIGxlZnQ6IGluaGVyaXQ7Cn0KCi5tYWluLW1lbnUgdWwgbGkgLm1lbnUtcG9zdGlvbi0yIHsKICAgIHJpZ2h0OiA5MnB4OwogICAgbGVmdDogaW5oZXJpdDsKfQoubWFpbi1tZW51IHVsIGxpIC5tZW51LXBvc3Rpb24tMyB7CiAgICByaWdodDogLTQwcHg7CiAgICBsZWZ0OiBpbmhlcml0Owp9Ci5tYWluLW1lbnUgdWwgbGkgLm1lbnUtcG9zdGlvbi00IHsKICAgIHJpZ2h0OiAtNDBweDsKICAgIGxlZnQ6IGluaGVyaXQ7Cn0KLm1haW4tbWVudSB1bCBsaSAubWVudS1wb3N0aW9uLTUgewogICAgcmlnaHQ6IDA7CiAgICBsZWZ0OiAyOCU7Cn0KCgovKkRhc2hib2FyZCBDU1MqLwoucGFuZWwtcHJpbWFyeSB7CiAgICBib3JkZXItY29sb3I6ICMwMGFjYWMhaW1wb3J0YW50Owp9Ci5wYW5lbC1wcmltYXJ5PiAucGFuZWwtaGVhZGluZyB7CiAgICBib3JkZXItY29sb3I6ICMwMGFjYWMhaW1wb3J0YW50OwogICAgY29sb3I6IHdoaXRlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYWNhYyFpbXBvcnRhbnQ7Cn0KCi5wYW5lbC1ncmVlbiB7CiAgICBib3JkZXItY29sb3I6ICMzNDhmZTIhaW1wb3J0YW50Owp9CgoucGFuZWwtZ3JlZW4gPiAucGFuZWwtaGVhZGluZyB7CiAgICBib3JkZXItY29sb3I6ICMzNDhmZTIhaW1wb3J0YW50OwogICAgY29sb3I6IHdoaXRlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OGZlMiFpbXBvcnRhbnQ7Cn0KLnBhbmVsLXllbGxvdyB7CiAgICBib3JkZXItY29sb3I6ICM3MjdjYjYhaW1wb3J0YW50Owp9Ci5wYW5lbC15ZWxsb3cgPiAucGFuZWwtaGVhZGluZyB7CiAgICBib3JkZXItY29sb3I6IzcyN2NiNiFpbXBvcnRhbnQ7CiAgICBjb2xvcjogd2hpdGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiM3MjdjYjYhaW1wb3J0YW50Owp9Ci5wYW5lbC1yZWQgewogICAgYm9yZGVyLWNvbG9yOiAjZmY1YjU3IWltcG9ydGFudDsKfQoucGFuZWwtcmVkID4gLnBhbmVsLWhlYWRpbmcgewogICAgYm9yZGVyLWNvbG9yOiAjZmY1YjU3IWltcG9ydGFudDsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjViNTchaW1wb3J0YW50Owp9CgouZGFzaGJvYXJkLWJhbGFuY2UtdGV4dHsKCiAgICBmb250LXNpemU6IDIwcHg7CiAgICBwYWRkaW5nLXRvcDogMjVweDsKfQoKLm5ldy1pbnZlc3RtZW50LXVzZXIgLnBhbmVsLXByaW1hcnk+LnBhbmVsLWhlYWRpbmcgewogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgYm9yZGVyLWNvbG9yOiAjMzQ5OGRiOwp9CgoubmV3LWludmVzdG1lbnQtdXNlciBoM3sKICAgIGNvbG9yOiAjZmZmZmZmOwp9Ci5uZXctaW52ZXN0bWVudC11c2VyIC5idG4tcHJpbWFyeXsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwp9CgoubmV3LWJ0bi1zdWJtaXQgewogICAgZm9udC1zaXplOiAxOHB4OwogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOwogICAgcGFkZGluZzogMThweCAzM3B4OwogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIG91dGxpbmU6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAyNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OwogICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IDAuNXM7CiAgICAtbXMtdHJhbnNpdGlvbjogMC41czsKICAgIC1vLXRyYW5zaXRpb246IDAuNXM7CiAgICB0cmFuc2l0aW9uOiAwLjVzOwogICAgbWFyZ2luLWJvdHRvbTogMHB4Owp9CgouaW1nLWlucHV0LWRpdnsKICAgIG1hcmdpbi1sZWZ0OiAzNXB4OwogICAgbWFyZ2luLWxlZnQ6IDE4JTsKfQoKLmFkbWluLWhlYWRlci10ZXh0IGgzewogICAgY29sb3I6ICNmZmZmZmY7CiAgICBmb250LXNpemU6IDIxcHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgcGFkZGluZy10b3A6IDE1cHg7Cn0KLmFkbWluLWhlYWRlci1idXR0b257CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7CiAgICBwYWRkaW5nOiAxMHB4IDMzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZTogMDsKICAgIG1hcmdpbi1ib3R0b206IDI2cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogMC41czsKICAgIC1tcy10cmFuc2l0aW9uOiAwLjVzOwogICAgLW8tdHJhbnNpdGlvbjogMC41czsKICAgIHRyYW5zaXRpb246IDAuNXM7CiAgICBtYXJnaW4tYm90dG9tOiAwcHg7ICAKfQouYWRtaW4taGVhZGVyLWJ1dHRvbiBhewogICAgY29sb3I6ICNmZmY7IAp9Ci50ZXh0YXJlYS1jdXN0b21lewogICAgYm9yZGVyLXJhZGl1czogMHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VDRUZGMTsgCiAgICBmb250LXNpemU6IDE4cHg7CiAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgdHJhbnNpdGlvbjogMC41czsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZTogMDsKICAgIHBhZGRpbmc6MThweCAzM3B4OzsKfQoKLmJ0bi1wcmltYXJ5IHsKICAgIGNvbG9yOiAjZmZmOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsKICAgIGJvcmRlci1jb2xvcjojMzQ5OGRiOwp9CgouYWRtaW4taGVhZGVyLWJ1dHRvbi5zdXBwb3J0LWJ0bgp7CiAgICBiYWNrZ3JvdW5kOiAjMDAzMTVhOwp9Ci5wYW5lbC1kZWZhdWx0IHsKICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwxNTIsMjE5LDAuNik7Cn0KCi5wYW5lbC1kZWZhdWx0PiAucGFuZWwtaGVhZGluZyB7CiAgICBib3JkZXItY29sb3I6ICMzNDk4ZGIhaW1wb3J0YW50OwogICAgY29sb3I6IHdoaXRlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYiFpbXBvcnRhbnQ7Cn0KCi5hZG1pbi1oZWFkZXItdGV4dC50ZXh0LWNlbnRlci5zdXBwb3J0LW1zZy10aXRsZSBoM3sKICAgIGNvbG9yOiAjMDAwOwp9Ci5wYWdlX3RpdGxlewogICAgcGFkZGluZy10b3A6IDI1cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwp9Cgoub3Blbi1zdXBwb3J0LWJ0biBoNXsKICAgIGJhY2tncm91bmQtY29sb3I6IzAwMzE1YTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBwYWRkaW5nOiAxMHB4IDMwcHg7CiAgICBjb2xvcjogI2ZmZjsKfQoKLnJhZGlvdXMtemVyb3sKICAgIGJvcmRlci1yYWRpdXM6MHB4Owp9CgouaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7CiAgICBib3JkZXI6IDA7Cn0KCi5pbnZlc3QtdHlwZV9fcHJvZml0IGlucHV0W3R5cGU9InRleHQiXXsKICAgIAogICBjb2xvcjogI2ZmZiFpbXBvcnRhbnQ7CiAgIGZvbnQtc2l6ZTogMjBweCFpbXBvcnRhbnQ7CiAgIGZvbnQtd2VpZ2h0OiA2MDAhaW1wb3J0YW50OwogICBwYWRkaW5nLWJvdHRvbTogMDsKICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgovKj09PT09PT09PT09PT09PT09PT09PQogIDE4LiAgUHJpY2luZyBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5wcmljaW5nLWxpc3QxIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgcGFkZGluZzogMHB4IDMwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsKICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAjNzdiMDQ3OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0MTpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICM3N2IwNDc7CiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgIzJjM2U1MDsKfQoucHJpY2luZy1saXN0MSAucHJpY2luZy1oZWFkZXIxIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDUwcHggMHB4Owp9Ci5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWhlYWRlcjE6YWZ0ZXIgewogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDBweDsKICAgIGxlZnQ6IDE4JTsKICAgIHdpZHRoOiAxMzBweDsKICAgIGhlaWdodDogOHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzc3YjA0NzsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnByaWNpbmctbGlzdDE6aG92ZXIgLnByaWNpbmctaGVhZGVyMTphZnRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMyYzNlNTA7Cn0KCi5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWhlYWRlcjEgaDUgewogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGZvbnQtc2l6ZTogMjVweDsKICAgIGNvbG9yOiAjZmZmOwogICAgbWFyZ2luOiAwcHg7Cn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctaGVhZGVyMSBwIHsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKCn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctYW1vdW50MSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWExNDM1OwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7CiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMjBweCAwcHg7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW8tdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwp9Ci5wcmljaW5nLWxpc3QxOmhvdmVyIC5wcmljaW5nLWFtb3VudDEgewogICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9CgoucHJpY2luZy1saXN0MSAucHJpY2luZy1hbW91bnQxIHAgewogICAgZm9udC1zaXplOiA0MHB4OwogICAgbWFyZ2luOjBweDsKICAgIGNvbG9yOiAjZmZmOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoucHJpY2luZy1saXN0MTpob3ZlciAucHJpY2luZy1hbW91bnQxIHAgewogICBjb2xvcjogIzI3MjcyNzsKCn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctYW1vdW50MSBzcGFuIHsKICAgIGZvbnQtc2l6ZTogNDBweDsKICAgIGNvbG9yOiAjZmZmOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0MTpob3ZlciAucHJpY2luZy1hbW91bnQxIHNwYW4gewogICAgY29sb3I6ICMyNzI3Mjc7Cn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctaW5mbzEgewogICAgcGFkZGluZy1ib3R0b206IDMwcHg7Cn0KLnByaWNpbmctbGlzdDEgLnByaWNpbmctaW5mbzEgdWwgewogICAgbWFyZ2luOiAwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZTUwOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMzBweCAwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMzVweDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogZWFzZS1vdXQgLjVzOwogICAgLW1vei10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtby10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICB0cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7Cn0KLnByaWNpbmctbGlzdDE6aG92ZXIgLnByaWNpbmctaW5mbzEgdWwgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQoucHJpY2luZy1saXN0MSAucHJpY2luZy1pbmZvMSB1bCBsaSB7CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgcGFkZGluZzogMTBweCAwcHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBjb2xvcjogI2ZmZjsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0MTpob3ZlciAucHJpY2luZy1pbmZvMSB1bCBsaSB7CiAgICBjb2xvcjogIzI3MjcyNzsKfQoKLnByaWNpbmctbGlzdDEgLnByaWNpbmctaW5mbzEgdWwgbGk6bGFzdC1jaGlsZHsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7Cn0KCi5wcmljaW5nLWxpc3QxIGEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzc3YjA0NzsKICAgIHBhZGRpbmc6IDEwcHggMjVweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDI1cHglOyAgCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAyNXB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0MTpob3ZlciBhIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cgp9CgoucHJpY2luZy1saXN0MnsKICAgIGJvcmRlci1ib3R0b206bm9uZTsKICAgIHBhZGRpbmctYm90dG9tOiAzMnB4Owp9Ci5wcmljaW5nLWxpc3QyOmhvdmVyewogICAgYm9yZGVyLWJvdHRvbTpub25lOwp9Ci5wcmljaW5nLWxpc3QyIC5wcmljaW5nLXRodW1iIGl7CiAgICBmb250LXNpemU6IDUwcHg7CiAgICBjb2xvcjogICM3N2IwNDc7CiAgICBwYWRkaW5nOjIwcHggMHB4OwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBlYXNlLW91dCAuNXM7CiAgICAtbW96LXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIC1vLXRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKICAgIHRyYW5zaXRpb246IGVhc2Utb3V0IC41czsKfQoucHJpY2luZy1saXN0Mjpob3ZlciAucHJpY2luZy10aHVtYiBpewogICAgY29sb3I6ICMyYzNlNTA7Cn0KLnByaWNpbmctbGlzdDIgLnByaWNpbmctaGVhZGVyMTphZnRlcnsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KLnByaWNpbmctbGlzdDIgLnByaWNpbmctaGVhZGVyMXsKICAgIHBhZGRpbmc6MHB4OwogICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoucHJpY2luZy1saXN0MiAucHJpY2luZy1hbW91bnQxewogICAgcGFkZGluZzoxMHB4IDBweDsgCiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwoKfQoucHJpY2luZy1saXN0Mjpob3ZlciAucHJpY2luZy1hbW91bnQxewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLnByaWNpbmctbGlzdDI6aG92ZXIgLnByaWNpbmctYW1vdW50MSBwewogICAgY29sb3I6I2ZmZjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoucHJpY2luZy1saXN0Mjpob3ZlciAucHJpY2luZy1hbW91bnQxIHNwYW57CiAgICBjb2xvcjojZmZmOwp9Ci5wcmljaW5nLWxpc3QyIC5wcmljaW5nLWluZm8xIHVsewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLnByaWNpbmctbGlzdDI6aG92ZXIgLnByaWNpbmctaW5mbzEgdWx7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKfQoucHJpY2luZy1saXN0Mjpob3ZlciAucHJpY2luZy1pbmZvMSB1bCBsaXsKICAgIGNvbG9yOiAjZmZmOwp9Ci5wcmljaW5nLWxpc3QyIC5wcmljaW5nLWluZm8xewogICAgcGFkZGluZy1ib3R0b206IDEycHg7Cn0KLyo9PT09PT09PT09PT09PT09PT09PT0KICAxOS4gICBQcmljaW5nMiBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PSovCi5wcmljZS1vdXQgewogIG1hcmdpbi10b3A6IDIwcHg7IH0KCiNwcmljaW5nLTIgewogIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL3ByaWNpbmctYmcuanBnIikgbm8tcmVwZWF0IGNlbnRlciBmaXhlZDsKICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogIGNvbG9yOiAjRkZGRkZGOyB9CgoKI3ByaWNpbmctMiAucHJpY2luZy1pbm5lciB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHotaW5kZXg6IDE7IH0KCiNwcmljaW5nLTIgLnNsaWRlci1iZyB7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOwogIHBhZGRpbmc6IDYwcHggMjBweCAzMHB4OwogIG1hcmdpbjogMzBweCAwOyB9CgojcHJpY2luZy0yIC5zbGlkZXItaW5kIHsKICBwYWRkaW5nLWJvdHRvbTogMzVweDsKICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9zbGlkZXItc2NhbGUucG5nIikgbm8tcmVwZWF0OwogIGJhY2tncm91bmQtc2l6ZTogOTklIDQwJTsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyOyB9CgojcHJpY2luZy0yICNwcmljaW5nLXNsaWRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzFFMjIzRjsKICBoZWlnaHQ6IDIwcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOyB9CgojcHJpY2luZy0yICNwcmljaW5nLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHsKICBsZWZ0OiAwOwogIHRvcDogMDsKICBoZWlnaHQ6IDEwMCU7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM3N2IwNDc7IH0KCiNwcmljaW5nLTIgI3ByaWNpbmctc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogMjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzdiMDQ3OwogIGhlaWdodDogMzBweDsKICB3aWR0aDogMzBweDsKICB0b3A6IC01cHg7CiAgbWFyZ2luLWxlZnQ6IC0xMnB4OyAKICBvdXRsaW5lOiBub25lO30KCiNwcmljaW5nLTIgLmluZm8taXRlbSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzc3YjA0NzsKICBwYWRkaW5nOiAxMHB4OwogIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9CgojcHJpY2luZy0yIC5pbmZvLWl0ZW0gc3BhbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC13ZWlnaHQ6IDcwMDsgfQoKI3ByaWNpbmctMiAuaW5mby1pdGVtIHNwYW4udmFsdWUgewogIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7CiAgYm9yZGVyLXJhZGl1czogNXB4OwogICAtbW96LWJvcmRlci1yYWRpdXM6IDVweDsgIAogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwogIHBhZGRpbmc6IDVweCAwOwogIGNvbG9yOiAjMDAwMDAwOwogIG1hcmdpbi10b3A6IDVweDsgfQoKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIGEgewogIGNvbG9yOiAjRkZGRkZGOwogIGRpc3BsYXk6IHRhYmxlOwogIG1hcmdpbjogMCBhdXRvOwogIHdpZHRoOiAzMDBweDsKICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAtbW96LWJvcmRlci1yYWRpdXM6IDIwcHg7ICAKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDIwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzc3YjA0NzsKICBtYXJnaW4tdG9wOiA1MHB4OyB9CgojcHJpY2luZy0yIC5vcmRlci1idXR0b24gYTpob3ZlciAucmlnaHQgewogIGJhY2tncm91bmQtY29sb3I6ICM3N2IwNDc7CiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsgfQoKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIC5sZWZ0LAojcHJpY2luZy0yIC5vcmRlci1idXR0b24gLnJpZ2h0IHsKICBkaXNwbGF5OiB0YWJsZS1jZWxsOwogIHdpZHRoOiA1MCU7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICBwYWRkaW5nOiAxMHB4OyB9CgojcHJpY2luZy0yIC5vcmRlci1idXR0b24gLmxlZnQgLnByaWNlIHsKICBmb250LXNpemU6IDI3cHg7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBsaW5lLWhlaWdodDogMTsKICBkaXNwbGF5OiBibG9jazsgfQoKI3ByaWNpbmctMiAub3JkZXItYnV0dG9uIC5yaWdodCB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsKICBjb2xvcjogIzc3YjA0NzsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwcHg7CiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDIwcHg7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzOwogIC1tb3otdHJhbnNpdGlvbjogMC4zczsKICAtbXMtdHJhbnNpdGlvbjogMC4zczsKICAtby10cmFuc2l0aW9uOiAwLjNzOyB9Cgoub3ZlcmxheSB7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NSwgNDUsIDQ1LCAwLjcpOyB9Ci5zZWN0aW9uLWhlYWRlciBpbWcgewoJd2lkdGg6IDI4cHg7Cn0="}},"time_used":59,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":25,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.839Z","timestamp":1785126645839,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 32859\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":97168,"size_decoded":33115,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32077), with CRLF line terminators","md5":"618538b4ab9639d444e962729a927f15","sha1":"dacc1f76630a9708add066819b1aabf8dce01056","sha256":"27d92130c0321dad5a03760fd5ac98a3d04ed4c94d88418fe6d50da1f7fc5cbe","sha512":"bcb6754ea246939a19a917cc0b810e1753c1b0f1a8b1b7e652128ef15dee4fc79111e4d88fe12f9188449a307e82240d0261af402d783428edfe5785c860372d","ssdeep":"1536:jYE1JVoiB9JqZdXXe2pD3PgoIiulrUdTJ5Fk/zkZ4HjL5o8srOaS9TwDhb7/Jp96:y4J+03jL5TCOauTwDhFdnCVQNLa98Hrc","tlshash":"9693d7d9b6d6706287b734a851bf410bb17aa8eab40c4c60f058c8e47e74e9d507bf2d","first_seen":"2023-03-07T01:12:12Z","last_seen":"2026-07-27T07:58:11.863924Z","times_seen":5680,"resource_available":true,"data":"LyohIGpRdWVyeSB2MS4xMi40IHwgKGMpIGpRdWVyeSBGb3VuZGF0aW9uIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovDQohZnVuY3Rpb24oYSxiKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1hLmRvY3VtZW50P2IoYSwhMCk6ZnVuY3Rpb24oYSl7aWYoIWEuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGIoYSl9OmIoYSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1hLmRvY3VtZW50LGU9Yy5zbGljZSxmPWMuY29uY2F0LGc9Yy5wdXNoLGg9Yy5pbmRleE9mLGk9e30saj1pLnRvU3RyaW5nLGs9aS5oYXNPd25Qcm9wZXJ0eSxsPXt9LG09IjEuMTIuNCIsbj1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbi5mbi5pbml0KGEsYil9LG89L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLHA9L14tbXMtLyxxPS8tKFtcZGEtel0pL2dpLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTtuLmZuPW4ucHJvdG90eXBlPXtqcXVlcnk6bSxjb25zdHJ1Y3RvcjpuLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTplLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1uLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEpe3JldHVybiBuLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhuLm1hcCh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuY2FsbChiLGMsYil9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgsYz0rYSsoMD5hP2I6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGM+PTAmJmI+Yz9bdGhpc1tjXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6Zyxzb3J0OmMuc29ydCxzcGxpY2U6Yy5zcGxpY2V9LG4uZXh0ZW5kPW4uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsaT1hcmd1bWVudHMubGVuZ3RoLGo9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGcmJihqPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyksIm9iamVjdCI9PXR5cGVvZiBnfHxuLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09aSYmKGc9dGhpcyxoLS0pO2k+aDtoKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW2hdKSlmb3IoZCBpbiBlKWE9Z1tkXSxjPWVbZF0sZyE9PWMmJihqJiZjJiYobi5pc1BsYWluT2JqZWN0KGMpfHwoYj1uLmlzQXJyYXkoYykpKT8oYj8oYj0hMSxmPWEmJm4uaXNBcnJheShhKT9hOltdKTpmPWEmJm4uaXNQbGFpbk9iamVjdChhKT9hOnt9LGdbZF09bi5leHRlbmQoaixmLGMpKTp2b2lkIDAhPT1jJiYoZ1tkXT1jKSk7cmV0dXJuIGd9LG4uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhtK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEpfSxub29wOmZ1bmN0aW9uKCl7fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PT1uLnR5cGUoYSl9LGlzQXJyYXk6QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuImFycmF5Ij09PW4udHlwZShhKX0saXNXaW5kb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PWEud2luZG93fSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmYS50b1N0cmluZygpO3JldHVybiFuLmlzQXJyYXkoYSkmJmItcGFyc2VGbG9hdChiKSsxPj0wfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2ZvcihiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJvYmplY3QiIT09bi50eXBlKGEpfHxhLm5vZGVUeXBlfHxuLmlzV2luZG93KGEpKXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhay5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFrLmNhbGwoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1pZighbC5vd25GaXJzdClmb3IoYiBpbiBhKXJldHVybiBrLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ay5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2lbai5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbi50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHAsIm1zLSIpLnJlcGxhY2UocSxyKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD0wO2lmKHMoYSkpe2ZvcihjPWEubGVuZ3RoO2M+ZDtkKyspaWYoYi5jYWxsKGFbZF0sZCxhW2RdKT09PSExKWJyZWFrfWVsc2UgZm9yKGQgaW4gYSlpZihiLmNhbGwoYVtkXSxkLGFbZF0pPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobywiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocyhPYmplY3QoYSkpP24ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmcuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihoKXJldHVybiBoLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxnPTAsaD1bXTtpZihzKGEpKWZvcihkPWEubGVuZ3RoO2Q+ZztnKyspZT1iKGFbZ10sZyxjKSxudWxsIT1lJiZoLnB1c2goZSk7ZWxzZSBmb3IoZyBpbiBhKWU9YihhW2ddLGcsYyksbnVsbCE9ZSYmaC5wdXNoKGUpO3JldHVybiBmLmFwcGx5KFtdLGgpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG4uaXNGdW5jdGlvbihhKT8oYz1lLmNhbGwoYXJndW1lbnRzLDIpLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGUuY2FsbChhcmd1bWVudHMpKSl9LGQuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxuLmd1aWQrKyxkKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDpsfSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG4uZm5bU3ltYm9sLml0ZXJhdG9yXT1jW1N5bWJvbC5pdGVyYXRvcl0pLG4uZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtpWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIHMoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9bi50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxuLmlzV2luZG93KGEpPyExOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciB0PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrMSpuZXcgRGF0ZSx2PWEuZG9jdW1lbnQsdz0wLHg9MCx5PWdhKCksej1nYSgpLEE9Z2EoKSxCPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iJiYobD0hMCksMH0sQz0xPDwzMSxEPXt9Lmhhc093blByb3BlcnR5LEU9W10sRj1FLnBvcCxHPUUucHVzaCxIPUUucHVzaCxJPUUuc2xpY2UsSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7ZD5jO2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sSz0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLEw9IltcXHgyMFxcdFxcclxcblxcZl0iLE09Iig/OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixOPSJcXFsiK0wrIiooIitNKyIpKD86IitMKyIqKFsqXiR8IX5dPz0pIitMKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrTSsiKSl8KSIrTCsiKlxcXSIsTz0iOigiK00rIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK04rIikqKXwuKilcXCl8KSIsUD1uZXcgUmVnRXhwKEwrIisiLCJnIiksUT1uZXcgUmVnRXhwKCJeIitMKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK0wrIiskIiwiZyIpLFI9bmV3IFJlZ0V4cCgiXiIrTCsiKiwiK0wrIioiKSxTPW5ldyBSZWdFeHAoIl4iK0wrIiooWz4rfl18IitMKyIpIitMKyIqIiksVD1uZXcgUmVnRXhwKCI9IitMKyIqKFteXFxdJ1wiXSo/KSIrTCsiKlxcXSIsImciKSxVPW5ldyBSZWdFeHAoTyksVj1uZXcgUmVnRXhwKCJeIitNKyIkIiksVz17SUQ6bmV3IFJlZ0V4cCgiXiMoIitNKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK00rIikiKSxUQUc6bmV3IFJlZ0V4cCgiXigiK00rInxbKl0pIiksQVRUUjpuZXcgUmVnRXhwKCJeIitOKSxQU0VVRE86bmV3IFJlZ0V4cCgiXiIrTyksQ0hJTEQ6bmV3IFJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitMKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitMKyIqKD86KFsrLV18KSIrTCsiKihcXGQrKXwpKSIrTCsiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJlZ0V4cCgiXig/OiIrSysiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK0wrIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrTCsiKigoPzotXFxkKT9cXGQqKSIrTCsiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFk9L15oXGQkL2ksWj0vXltee10rXHtccypcW25hdGl2ZSBcdy8sJD0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLF89L1srfl0vLGFhPS8nfFxcL2csYmE9bmV3IFJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitMKyI/fCgiK0wrIil8LikiLCJpZyIpLGNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iMHgiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6MD5kP1N0cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5NiwxMDIzJmR8NTYzMjApfSxkYT1mdW5jdGlvbigpe20oKX07dHJ5e0guYXBwbHkoRT1JLmNhbGwodi5jaGlsZE5vZGVzKSx2LmNoaWxkTm9kZXMpLEVbdi5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZWEpe0g9e2FwcGx5OkUubGVuZ3RoP2Z1bmN0aW9uKGEsYil7Ry5hcHBseShhLEkuY2FsbChiKSl9OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgsZD0wO3doaWxlKGFbYysrXT1iW2QrK10pO2EubGVuZ3RoPWMtMX19fWZ1bmN0aW9uIGZhKGEsYixkLGUpe3ZhciBmLGgsaixrLGwsbyxyLHMsdz1iJiZiLm93bmVyRG9jdW1lbnQseD1iP2Iubm9kZVR5cGU6OTtpZihkPWR8fFtdLCJzdHJpbmciIT10eXBlb2YgYXx8IWF8fDEhPT14JiY5IT09eCYmMTEhPT14KXJldHVybiBkO2lmKCFlJiYoKGI/Yi5vd25lckRvY3VtZW50fHxiOnYpIT09biYmbShiKSxiPWJ8fG4scCkpe2lmKDExIT09eCYmKG89JC5leGVjKGEpKSlpZihmPW9bMV0pe2lmKDk9PT14KXtpZighKGo9Yi5nZXRFbGVtZW50QnlJZChmKSkpcmV0dXJuIGQ7aWYoai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2UgaWYodyYmKGo9dy5nZXRFbGVtZW50QnlJZChmKSkmJnQoYixqKSYmai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2V7aWYob1syXSlyZXR1cm4gSC5hcHBseShkLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSkpLGQ7aWYoKGY9b1szXSkmJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGYpKSxkfWlmKGMucXNhJiYhQVthKyIgIl0mJighcXx8IXEudGVzdChhKSkpe2lmKDEhPT14KXc9YixzPWE7ZWxzZSBpZigib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7KGs9Yi5nZXRBdHRyaWJ1dGUoImlkIikpP2s9ay5yZXBsYWNlKGFhLCJcXCQmIik6Yi5zZXRBdHRyaWJ1dGUoImlkIixrPXUpLHI9ZyhhKSxoPXIubGVuZ3RoLGw9Vi50ZXN0KGspPyIjIitrOiJbaWQ9JyIraysiJ10iO3doaWxlKGgtLSlyW2hdPWwrIiAiK3FhKHJbaF0pO3M9ci5qb2luKCIsIiksdz1fLnRlc3QoYSkmJm9hKGIucGFyZW50Tm9kZSl8fGJ9aWYocyl0cnl7cmV0dXJuIEguYXBwbHkoZCx3LnF1ZXJ5U2VsZWN0b3JBbGwocykpLGR9Y2F0Y2goeSl7fWZpbmFsbHl7az09PXUmJmIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFEsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdhKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYShhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGlhKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamEoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1jLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEMpLSh+YS5zb3VyY2VJbmRleHx8Qyk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxhKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYShhKXtyZXR1cm4gaGEoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGEoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYShhKXtyZXR1cm4gYSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZhfWM9ZmEuc3VwcG9ydD17fSxmPWZhLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZhLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGUsZz1hP2Eub3duZXJEb2N1bWVudHx8YTp2O3JldHVybiBnIT09biYmOT09PWcubm9kZVR5cGUmJmcuZG9jdW1lbnRFbGVtZW50PyhuPWcsbz1uLmRvY3VtZW50RWxlbWVudCxwPSFmKG4pLChlPW4uZGVmYXVsdFZpZXcpJiZlLnRvcCE9PWUmJihlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGRhLCExKTplLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZGEpKSxjLmF0dHJpYnV0ZXM9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYShmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChuLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1aLnRlc3Qobi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxjLmdldEJ5SWQ9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoYSkuaWQ9dSwhbi5nZXRFbGVtZW50c0J5TmFtZXx8IW4uZ2V0RWxlbWVudHNCeU5hbWUodSkubGVuZ3RofSksYy5nZXRCeUlkPyhkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudEJ5SWQmJnApe3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoYSk7cmV0dXJuIGM/W2NdOltdfX0sZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGJhLGNhKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJpZCIpPT09Yn19KTooZGVsZXRlIGQuZmluZC5JRCxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpO3JldHVybiBmdW5jdGlvbihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSYmYS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBjJiZjLnZhbHVlPT09Yn19KSxkLmZpbmQuVEFHPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWU/ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWU/Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKTpjLnFzYT9iLnF1ZXJ5U2VsZWN0b3JBbGwoYSk6dm9pZCAwfTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT0wLGY9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKTtpZigiKiI9PT1hKXt3aGlsZShjPWZbZSsrXSkxPT09Yy5ub2RlVHlwZSYmZC5wdXNoKGMpO3JldHVybiBkfXJldHVybiBmfSxkLmZpbmQuQ0xBU1M9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZmdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZwP2IuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKTp2b2lkIDB9LHI9W10scT1bXSwoYy5xc2E9Wi50ZXN0KG4ucXVlcnlTZWxlY3RvckFsbCkpJiYoaWEoZnVuY3Rpb24oYSl7by5hcHBlbmRDaGlsZChhKS5pbm5lckhUTUw9IjxhIGlkPSciK3UrIic+PC9hPjxzZWxlY3QgaWQ9JyIrdSsiLVxyXFwnIG1zYWxsb3djYXB0dXJlPScnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixhLnF1ZXJ5U2VsZWN0b3JBbGwoIlttc2FsbG93Y2FwdHVyZV49JyddIikubGVuZ3RoJiZxLnB1c2goIlsqXiRdPSIrTCsiKig/OicnfFwiXCIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxxLnB1c2goIlxcWyIrTCsiKig/OnZhbHVlfCIrSysiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW2lkfj0iK3UrIi1dIikubGVuZ3RofHxxLnB1c2goIn49IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8cS5wdXNoKCI6Y2hlY2tlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiYSMiK3UrIisqIikubGVuZ3RofHxxLnB1c2goIi4jLitbK35dIil9KSxpYShmdW5jdGlvbihhKXt2YXIgYj1uLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK0wrIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj1aLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmlhKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixPKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9Wi50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8Wi50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09bnx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1ufHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0ooayxhKS1KKGssYik6MDo0JmQ/LTE6MSl9OmZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgYyxkPTAsZT1hLnBhcmVudE5vZGUsZj1iLnBhcmVudE5vZGUsZz1bYV0saD1bYl07aWYoIWV8fCFmKXJldHVybiBhPT09bj8tMTpiPT09bj8xOmU/LTE6Zj8xOms/SihrLGEpLUooayxiKTowO2lmKGU9PT1mKXJldHVybiBrYShhLGIpO2M9YTt3aGlsZShjPWMucGFyZW50Tm9kZSlnLnVuc2hpZnQoYyk7Yz1iO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTt3aGlsZShnW2RdPT09aFtkXSlkKys7cmV0dXJuIGQ/a2EoZ1tkXSxoW2RdKTpnW2RdPT09dj8tMTpoW2RdPT09dj8xOjB9LG4pOm59LGZhLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZmEoYSxudWxsLG51bGwsYil9LGZhLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGIpe2lmKChhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSxiPWIucmVwbGFjZShULCI9JyQxJ10iKSxjLm1hdGNoZXNTZWxlY3RvciYmcCYmIUFbYisiICJdJiYoIXJ8fCFyLnRlc3QoYikpJiYoIXF8fCFxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYShiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYS5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZhLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZELmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYS5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZhLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYS5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmEuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGEsbWF0Y2g6VyxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGJhLGNhKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShiYSxjYSksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZhLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZhLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBXLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlUudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK0wrIikiK2ErIigiK0wrInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZhLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlLnJlcGxhY2UoUCwiICIpKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaCx0PSExO2lmKHEpe2lmKGYpe3doaWxlKHApe209Yjt3aGlsZShtPW1bcF0paWYoaD9tLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1tLm5vZGVUeXBlKXJldHVybiExO289cD0ib25seSI9PT1hJiYhbyYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihvPVtnP3EuZmlyc3RDaGlsZDpxLmxhc3RDaGlsZF0sZyYmcyl7bT1xLGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSx0PW4mJmpbMl0sbT1uJiZxLmNoaWxkTm9kZXNbbl07d2hpbGUobT0rK24mJm0mJm1bcF18fCh0PW49MCl8fG8ucG9wKCkpaWYoMT09PW0ubm9kZVR5cGUmJisrdCYmbT09PWIpe2tbYV09W3csbix0XTticmVha319ZWxzZSBpZihzJiYobT1iLGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSx0PW4pLHQ9PT0hMSl3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigoaD9tLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1tLm5vZGVUeXBlKSYmKyt0JiYocyYmKGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGtbYV09W3csdF0pLG09PT1iKSlicmVhaztyZXR1cm4gdC09ZSx0PT09ZHx8dCVkPT09MCYmdC9kPj0wfX19LFBTRVVETzpmdW5jdGlvbihhLGIpe3ZhciBjLGU9ZC5wc2V1ZG9zW2FdfHxkLnNldEZpbHRlcnNbYS50b0xvd2VyQ2FzZSgpXXx8ZmEuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIithKTtyZXR1cm4gZVt1XT9lKGIpOmUubGVuZ3RoPjE/KGM9W2EsYSwiIixiXSxkLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoYS50b0xvd2VyQ2FzZSgpKT9oYShmdW5jdGlvbihhLGMpe3ZhciBkLGY9ZShhLGIpLGc9Zi5sZW5ndGg7d2hpbGUoZy0tKWQ9SihhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYShmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUSwiJDEiKSk7cmV0dXJuIGRbdV0/aGEoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksYlswXT1udWxsLCFjLnBvcCgpfX0pLGhhczpoYShmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIGZhKGEsYikubGVuZ3RoPjB9fSksY29udGFpbnM6aGEoZnVuY3Rpb24oYSl7cmV0dXJuIGE9YS5yZXBsYWNlKGJhLGNhKSxmdW5jdGlvbihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHR8fGUoYikpLmluZGV4T2YoYSk+LTF9fSksbGFuZzpoYShmdW5jdGlvbihhKXtyZXR1cm4gVi50ZXN0KGF8fCIiKXx8ZmEuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrYSksYT1hLnJlcGxhY2UoYmEsY2EpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oYil7dmFyIGM7ZG8gaWYoYz1wP2IubGFuZzpiLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8Yi5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gYz1jLnRvTG93ZXJDYXNlKCksYz09PWF8fDA9PT1jLmluZGV4T2YoYSsiLSIpO3doaWxlKChiPWIucGFyZW50Tm9kZSkmJjE9PT1iLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oYil7dmFyIGM9YS5sb2NhdGlvbiYmYS5sb2NhdGlvbi5oYXNoO3JldHVybiBjJiZjLnNsaWNlKDEpPT09Yi5pZH0scm9vdDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW99LGZvY3VzOmZ1bmN0aW9uKGEpe3JldHVybiBhPT09bi5hY3RpdmVFbGVtZW50JiYoIW4uaGFzRm9jdXN8fG4uaGFzRm9jdXMoKSkmJiEhKGEudHlwZXx8YS5ocmVmfHx+YS50YWJJbmRleCl9LGVuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMX0sZGlzYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMH0sY2hlY2tlZDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiEhYS5jaGVja2VkfHwib3B0aW9uIj09PWImJiEhYS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsYS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5jdGlvbihhKXtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpaWYoYS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIWQucHNldWRvcy5lbXB0eShhKX0saGVhZGVyOmZ1bmN0aW9uKGEpe3JldHVybiBZLnRlc3QoYS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGEpe3JldHVybiBYLnRlc3QoYS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiJidXR0b24iPT09YS50eXBlfHwiYnV0dG9uIj09PWJ9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuImlucHV0Ij09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09YS50eXBlJiYobnVsbD09KGI9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWIudG9Mb3dlckNhc2UoKSl9LGZpcnN0Om5hKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpuYShmdW5jdGlvbihhLGIpe3JldHVybltiLTFdfSksZXE6bmEoZnVuY3Rpb24oYSxiLGMpe3JldHVyblswPmM/YytiOmNdfSksZXZlbjpuYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLG9kZDpuYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLGx0Om5hKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOy0tZD49MDspYS5wdXNoKGQpO3JldHVybiBhfSksZ3Q6bmEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7KytkPGI7KWEucHVzaChkKTtyZXR1cm4gYX0pfX0sZC5wc2V1ZG9zLm50aD1kLnBzZXVkb3MuZXE7Zm9yKGIgaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pZC5wc2V1ZG9zW2JdPWxhKGIpO2ZvcihiIGlue3N1Ym1pdDohMCxyZXNldDohMH0pZC5wc2V1ZG9zW2JdPW1hKGIpO2Z1bmN0aW9uIHBhKCl7fXBhLnByb3RvdHlwZT1kLmZpbHRlcnM9ZC5wc2V1ZG9zLGQuc2V0RmlsdGVycz1uZXcgcGEsZz1mYS50b2tlbml6ZT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZixnLGgsaSxqLGs9elthKyIgIl07aWYoaylyZXR1cm4gYj8wOmsuc2xpY2UoMCk7aD1hLGk9W10saj1kLnByZUZpbHRlcjt3aGlsZShoKXtjJiYhKGU9Ui5leGVjKGgpKXx8KGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9Uy5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShRLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9V1tnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZhLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWEoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYShhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqLGs9W3csZl07aWYoZyl7d2hpbGUoYj1iW2RdKWlmKCgxPT09Yi5ub2RlVHlwZXx8ZSkmJmEoYixjLGcpKXJldHVybiEwfWVsc2Ugd2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxlKXtpZihqPWJbdV18fChiW3VdPXt9KSxpPWpbYi51bmlxdWVJRF18fChqW2IudW5pcXVlSURdPXt9KSwoaD1pW2RdKSYmaFswXT09PXcmJmhbMV09PT1mKXJldHVybiBrWzJdPWhbMl07aWYoaVtkXT1rLGtbMl09YShiLGMsZykpcmV0dXJuITB9fX1mdW5jdGlvbiBzYShhKXtyZXR1cm4gYS5sZW5ndGg+MT9mdW5jdGlvbihiLGMsZCl7dmFyIGU9YS5sZW5ndGg7d2hpbGUoZS0tKWlmKCFhW2VdKGIsYyxkKSlyZXR1cm4hMTtyZXR1cm4hMH06YVswXX1mdW5jdGlvbiB0YShhLGIsYyl7Zm9yKHZhciBkPTAsZT1iLmxlbmd0aDtlPmQ7ZCsrKWZhKGEsYltkXSxjKTtyZXR1cm4gY31mdW5jdGlvbiB1YShhLGIsYyxkLGUpe2Zvcih2YXIgZixnPVtdLGg9MCxpPWEubGVuZ3RoLGo9bnVsbCE9YjtpPmg7aCsrKShmPWFbaF0pJiYoYyYmIWMoZixkLGUpfHwoZy5wdXNoKGYpLGomJmIucHVzaChoKSkpO3JldHVybiBnfWZ1bmN0aW9uIHZhKGEsYixjLGQsZSxmKXtyZXR1cm4gZCYmIWRbdV0mJihkPXZhKGQpKSxlJiYhZVt1XSYmKGU9dmEoZSxmKSksaGEoZnVuY3Rpb24oZixnLGgsaSl7dmFyIGosayxsLG09W10sbj1bXSxvPWcubGVuZ3RoLHA9Znx8dGEoYnx8IioiLGgubm9kZVR5cGU/W2hdOmgsW10pLHE9IWF8fCFmJiZiP3A6dWEocCxtLGEsaCxpKSxyPWM/ZXx8KGY/YTpvfHxkKT9bXTpnOnE7aWYoYyYmYyhxLHIsaCxpKSxkKXtqPXVhKHIsbiksZChqLFtdLGgsaSksaz1qLmxlbmd0aDt3aGlsZShrLS0pKGw9altrXSkmJihyW25ba11dPSEocVtuW2tdXT1sKSl9aWYoZil7aWYoZXx8YSl7aWYoZSl7aj1bXSxrPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmai5wdXNoKHFba109bCk7ZShudWxsLHI9W10saixpKX1rPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmKGo9ZT9KKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YShyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SC5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2EoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYShmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmEoZnVuY3Rpb24oYSl7cmV0dXJuIEooYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3ZhciBlPSFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpO3JldHVybiBiPW51bGwsZX1dO2Y+aTtpKyspaWYoYz1kLnJlbGF0aXZlW2FbaV0udHlwZV0pbT1bcmEoc2EobSksYyldO2Vsc2V7aWYoYz1kLmZpbHRlclthW2ldLnR5cGVdLmFwcGx5KG51bGwsYVtpXS5tYXRjaGVzKSxjW3VdKXtmb3IoZT0rK2k7Zj5lO2UrKylpZihkLnJlbGF0aXZlW2FbZV0udHlwZV0pYnJlYWs7cmV0dXJuIHZhKGk+MSYmc2EobSksaT4xJiZxYShhLnNsaWNlKDAsaS0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWFbaS0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKFEsIiQxIiksYyxlPmkmJndhKGEuc2xpY2UoaSxlKSksZj5lJiZ3YShhPWEuc2xpY2UoZSkpLGY+ZSYmcWEoYSkpfW0ucHVzaChjKX1yZXR1cm4gc2EobSl9ZnVuY3Rpb24geGEoYSxiKXt2YXIgYz1iLmxlbmd0aD4wLGU9YS5sZW5ndGg+MCxmPWZ1bmN0aW9uKGYsZyxoLGksayl7dmFyIGwsbyxxLHI9MCxzPSIwIix0PWYmJltdLHU9W10sdj1qLHg9Znx8ZSYmZC5maW5kLlRBRygiKiIsaykseT13Kz1udWxsPT12PzE6TWF0aC5yYW5kb20oKXx8LjEsej14Lmxlbmd0aDtmb3IoayYmKGo9Zz09PW58fGd8fGspO3MhPT16JiZudWxsIT0obD14W3NdKTtzKyspe2lmKGUmJmwpe289MCxnfHxsLm93bmVyRG9jdW1lbnQ9PT1ufHwobShsKSxoPSFwKTt3aGlsZShxPWFbbysrXSlpZihxKGwsZ3x8bixoKSl7aS5wdXNoKGwpO2JyZWFrfWsmJih3PXkpfWMmJigobD0hcSYmbCkmJnItLSxmJiZ0LnB1c2gobCkpfWlmKHIrPXMsYyYmcyE9PXIpe289MDt3aGlsZShxPWJbbysrXSlxKHQsdSxnLGgpO2lmKGYpe2lmKHI+MCl3aGlsZShzLS0pdFtzXXx8dVtzXXx8KHVbc109Ri5jYWxsKGkpKTt1PXVhKHUpfUguYXBwbHkoaSx1KSxrJiYhZiYmdS5sZW5ndGg+MCYmcitiLmxlbmd0aD4xJiZmYS51bmlxdWVTb3J0KGkpfXJldHVybiBrJiYodz15LGo9diksdH07cmV0dXJuIGM/aGEoZik6Zn1yZXR1cm4gaD1mYS5jb21waWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPVtdLGY9QVthKyIgIl07aWYoIWYpe2J8fChiPWcoYSkpLGM9Yi5sZW5ndGg7d2hpbGUoYy0tKWY9d2EoYltjXSksZlt1XT9kLnB1c2goZik6ZS5wdXNoKGYpO2Y9QShhLHhhKGUsZCkpLGYuc2VsZWN0b3I9YX1yZXR1cm4gZn0saT1mYS5zZWxlY3Q9ZnVuY3Rpb24oYSxiLGUsZil7dmFyIGksaixrLGwsbSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhLG89IWYmJmcoYT1uLnNlbGVjdG9yfHxhKTtpZihlPWV8fFtdLDE9PT1vLmxlbmd0aCl7aWYoaj1vWzBdPW9bMF0uc2xpY2UoMCksai5sZW5ndGg+MiYmIklEIj09PShrPWpbMF0pLnR5cGUmJmMuZ2V0QnlJZCYmOT09PWIubm9kZVR5cGUmJnAmJmQucmVsYXRpdmVbalsxXS50eXBlXSl7aWYoYj0oZC5maW5kLklEKGsubWF0Y2hlc1swXS5yZXBsYWNlKGJhLGNhKSxiKXx8W10pWzBdLCFiKXJldHVybiBlO24mJihiPWIucGFyZW50Tm9kZSksYT1hLnNsaWNlKGouc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWk9Vy5uZWVkc0NvbnRleHQudGVzdChhKT8wOmoubGVuZ3RoO3doaWxlKGktLSl7aWYoaz1qW2ldLGQucmVsYXRpdmVbbD1rLnR5cGVdKWJyZWFrO2lmKChtPWQuZmluZFtsXSkmJihmPW0oay5tYXRjaGVzWzBdLnJlcGxhY2UoYmEsY2EpLF8udGVzdChqWzBdLnR5cGUpJiZvYShiLnBhcmVudE5vZGUpfHxiKSkpe2lmKGouc3BsaWNlKGksMSksYT1mLmxlbmd0aCYmcWEoaiksIWEpcmV0dXJuIEguYXBwbHkoZSxmKSxlO2JyZWFrfX19cmV0dXJuKG58fGgoYSxvKSkoZixiLCFwLGUsIWJ8fF8udGVzdChhKSYmb2EoYi5wYXJlbnROb2RlKXx8YiksZX0sYy5zb3J0U3RhYmxlPXUuc3BsaXQoIiIpLnNvcnQoQikuam9pbigiIik9PT11LGMuZGV0ZWN0RHVwbGljYXRlcz0hIWwsbSgpLGMuc29ydERldGFjaGVkPWlhKGZ1bmN0aW9uKGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obi5jcmVhdGVFbGVtZW50KCJkaXYiKSl9KSxpYShmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxqYSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphLmdldEF0dHJpYnV0ZShiLCJ0eXBlIj09PWIudG9Mb3dlckNhc2UoKT8xOjIpfSksYy5hdHRyaWJ1dGVzJiZpYShmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxpbnB1dC8+IixhLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxqYSgidmFsdWUiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gY3x8ImlucHV0IiE9PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT92b2lkIDA6YS5kZWZhdWx0VmFsdWV9KSxpYShmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8amEoSyxmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOmFbYl09PT0hMD9iLnRvTG93ZXJDYXNlKCk6KGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSksZmF9KGEpO24uZmluZD10LG4uZXhwcj10LnNlbGVjdG9ycyxuLmV4cHJbIjoiXT1uLmV4cHIucHNldWRvcyxuLnVuaXF1ZVNvcnQ9bi51bmlxdWU9dC51bmlxdWVTb3J0LG4udGV4dD10LmdldFRleHQsbi5pc1hNTERvYz10LmlzWE1MLG4uY29udGFpbnM9dC5jb250YWluczt2YXIgdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT12b2lkIDAhPT1jO3doaWxlKChhPWFbYl0pJiY5IT09YS5ub2RlVHlwZSlpZigxPT09YS5ub2RlVHlwZSl7aWYoZSYmbihhKS5pcyhjKSlicmVhaztkLnB1c2goYSl9cmV0dXJuIGR9LHY9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9LHc9bi5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx4PS9ePChbXHctXSspXHMqXC8/Pig/OjxcL1wxPnwpJC8seT0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHooYSxiLGMpe2lmKG4uaXNGdW5jdGlvbihiKSlyZXR1cm4gbi5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYoeS50ZXN0KGIpKXJldHVybiBuLmZpbHRlcihiLGEsYyk7Yj1uLmZpbHRlcihiLGEpfXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbi5pbkFycmF5KGEsYik+LTEhPT1jfSl9bi5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bi5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTpuLmZpbmQubWF0Y2hlcyhhLG4uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbi5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG4oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG4uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbi5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bi51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHoodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHoodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXoodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJncudGVzdChhKT9uKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIEEsQj0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSopKSQvLEM9bi5mbi5pbml0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmO2lmKCFhKXJldHVybiB0aGlzO2lmKGM9Y3x8QSwic3RyaW5nIj09dHlwZW9mIGEpe2lmKGU9IjwiPT09YS5jaGFyQXQoMCkmJiI+Ij09PWEuY2hhckF0KGEubGVuZ3RoLTEpJiZhLmxlbmd0aD49Mz9bbnVsbCxhLG51bGxdOkIuZXhlYyhhKSwhZXx8IWVbMV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxjKS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtpZihlWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBuP2JbMF06YixuLm1lcmdlKHRoaXMsbi5wYXJzZUhUTUwoZVsxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpkLCEwKSkseC50ZXN0KGVbMV0pJiZuLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYiluLmlzRnVuY3Rpb24odGhpc1tlXSk/dGhpc1tlXShiW2VdKTp0aGlzLmF0dHIoZSxiW2VdKTtyZXR1cm4gdGhpc31pZihmPWQuZ2V0RWxlbWVudEJ5SWQoZVsyXSksZiYmZi5wYXJlbnROb2RlKXtpZihmLmlkIT09ZVsyXSlyZXR1cm4gQS5maW5kKGEpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1mfXJldHVybiB0aGlzLmNvbnRleHQ9ZCx0aGlzLnNlbGVjdG9yPWEsdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpcy5jb250ZXh0PXRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOm4uaXNGdW5jdGlvbihhKT8idW5kZWZpbmVkIiE9dHlwZW9mIGMucmVhZHk/Yy5yZWFkeShhKTphKG4pOih2b2lkIDAhPT1hLnNlbGVjdG9yJiYodGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yLHRoaXMuY29udGV4dD1hLmNvbnRleHQpLG4ubWFrZUFycmF5KGEsdGhpcykpfTtDLnByb3RvdHlwZT1uLmZuLEE9bihkKTt2YXIgRD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxFPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O24uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1uKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobi5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXcudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP24oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm4uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9uLnVuaXF1ZVNvcnQoZik6Zil9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9uLmluQXJyYXkodGhpc1swXSxuKGEpKTpuLmluQXJyYXkoYS5qcXVlcnk/YVswXTphLHRoaXMpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4udW5pcXVlU29ydChuLm1lcmdlKHRoaXMuZ2V0KCksbihhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtmdW5jdGlvbiBGKGEsYil7ZG8gYT1hW2JdO3doaWxlKGEmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1uLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlwZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHUoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB1KGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBGKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEYoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHUoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdShhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHUoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHYoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiB2KGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBuLm5vZGVOYW1lKGEsImlmcmFtZSIpP2EuY29udGVudERvY3VtZW50fHxhLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6bi5tZXJnZShbXSxhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtuLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bi5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGQ9YyksZCYmInN0cmluZyI9PXR5cGVvZiBkJiYoZT1uLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYoRVthXXx8KGU9bi51bmlxdWVTb3J0KGUpKSxELnRlc3QoYSkmJihlPWUucmV2ZXJzZSgpKSksdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEc9L1xTKy9nO2Z1bmN0aW9uIEgoYSl7dmFyIGI9e307cmV0dXJuIG4uZWFjaChhLm1hdGNoKEcpfHxbXSxmdW5jdGlvbihhLGMpe2JbY109ITB9KSxifW4uQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe2E9InN0cmluZyI9PXR5cGVvZiBhP0goYSk6bi5leHRlbmQoe30sYSk7dmFyIGIsYyxkLGUsZj1bXSxnPVtdLGg9LTEsaT1mdW5jdGlvbigpe2ZvcihlPWEub25jZSxkPWI9ITA7Zy5sZW5ndGg7aD0tMSl7Yz1nLnNoaWZ0KCk7d2hpbGUoKytoPGYubGVuZ3RoKWZbaF0uYXBwbHkoY1swXSxjWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlJiYoaD1mLmxlbmd0aCxjPSExKX1hLm1lbW9yeXx8KGM9ITEpLGI9ITEsZSYmKGY9Yz9bXToiIil9LGo9e2FkZDpmdW5jdGlvbigpe3JldHVybiBmJiYoYyYmIWImJihoPWYubGVuZ3RoLTEsZy5wdXNoKGMpKSxmdW5jdGlvbiBkKGIpe24uZWFjaChiLGZ1bmN0aW9uKGIsYyl7bi5pc0Z1bmN0aW9uKGMpP2EudW5pcXVlJiZqLmhhcyhjKXx8Zi5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PW4udHlwZShjKSYmZChjKX0pfShhcmd1bWVudHMpLGMmJiFiJiZpKCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBuLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYil7dmFyIGM7d2hpbGUoKGM9bi5pbkFycmF5KGIsZixjKSk+LTEpZi5zcGxpY2UoYywxKSxoPj1jJiZoLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bi5pbkFycmF5KGEsZik+LTE6Zi5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gZiYmKGY9W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZT1nPVtdLGY9Yz0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFmfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGU9ITAsY3x8ai5kaXNhYmxlKCksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFlfSxmaXJlV2l0aDpmdW5jdGlvbihhLGMpe3JldHVybiBlfHwoYz1jfHxbXSxjPVthLGMuc2xpY2U/Yy5zbGljZSgpOmNdLGcucHVzaChjKSxifHxpKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gai5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWR9fTtyZXR1cm4gan0sbi5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbInJlc29sdmUiLCJkb25lIixuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dLGM9InBlbmRpbmciLGQ9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBlLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sdGhlbjpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihjKXtuLmVhY2goYixmdW5jdGlvbihiLGYpe3ZhciBnPW4uaXNGdW5jdGlvbihhW2JdKSYmYVtiXTtlW2ZbMV1dKGZ1bmN0aW9uKCl7dmFyIGE9ZyYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YSYmbi5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YS5wcm9taXNlKCkucHJvZ3Jlc3MoYy5ub3RpZnkpLmRvbmUoYy5yZXNvbHZlKS5mYWlsKGMucmVqZWN0KTpjW2ZbMF0rIldpdGgiXSh0aGlzPT09ZD9jLnByb21pc2UoKTp0aGlzLGc/W2FdOmFyZ3VtZW50cyl9KX0pLGE9bnVsbH0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT9uLmV4dGVuZChhLGQpOmR9fSxlPXt9O3JldHVybiBkLnBpcGU9ZC50aGVuLG4uZWFjaChiLGZ1bmN0aW9uKGEsZil7dmFyIGc9ZlsyXSxoPWZbM107ZFtmWzFdXT1nLmFkZCxoJiZnLmFkZChmdW5jdGlvbigpe2M9aH0sYlsxXmFdWzJdLmRpc2FibGUsYlsyXVsyXS5sb2NrKSxlW2ZbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIGVbZlswXSsiV2l0aCJdKHRoaXM9PT1lP2Q6dGhpcyxhcmd1bWVudHMpLHRoaXN9LGVbZlswXSsiV2l0aCJdPWcuZmlyZVdpdGh9KSxkLnByb21pc2UoZSksYSYmYS5jYWxsKGUsZSksZX0sd2hlbjpmdW5jdGlvbihhKXt2YXIgYj0wLGM9ZS5jYWxsKGFyZ3VtZW50cyksZD1jLmxlbmd0aCxmPTEhPT1kfHxhJiZuLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9kOjAsZz0xPT09Zj9hOm4uRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7YlthXT10aGlzLGNbYV09YXJndW1lbnRzLmxlbmd0aD4xP2UuY2FsbChhcmd1bWVudHMpOmQsYz09PWk/Zy5ub3RpZnlXaXRoKGIsYyk6LS1mfHxnLnJlc29sdmVXaXRoKGIsYyl9fSxpLGosaztpZihkPjEpZm9yKGk9bmV3IEFycmF5KGQpLGo9bmV3IEFycmF5KGQpLGs9bmV3IEFycmF5KGQpO2Q+YjtiKyspY1tiXSYmbi5pc0Z1bmN0aW9uKGNbYl0ucHJvbWlzZSk/Y1tiXS5wcm9taXNlKCkucHJvZ3Jlc3MoaChiLGosaSkpLmRvbmUoaChiLGssYykpLmZhaWwoZy5yZWplY3QpOi0tZjtyZXR1cm4gZnx8Zy5yZXNvbHZlV2l0aChrLGMpLGcucHJvbWlzZSgpfX0pO3ZhciBJO24uZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4ucmVhZHkucHJvbWlzZSgpLmRvbmUoYSksdGhpc30sbi5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGEpe2E/bi5yZWFkeVdhaXQrKzpuLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oYSl7KGE9PT0hMD8tLW4ucmVhZHlXYWl0Om4uaXNSZWFkeSl8fChuLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW4ucmVhZHlXYWl0PjB8fChJLnJlc29sdmVXaXRoKGQsW25dKSxuLmZuLnRyaWdnZXJIYW5kbGVyJiYobihkKS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxuKGQpLm9mZigicmVhZHkiKSkpKX19KTtmdW5jdGlvbiBKKCl7ZC5hZGRFdmVudExpc3RlbmVyPyhkLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEspLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSykpOihkLmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEspLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSykpfWZ1bmN0aW9uIEsoKXsoZC5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1hLmV2ZW50LnR5cGV8fCJjb21wbGV0ZSI9PT1kLnJlYWR5U3RhdGUpJiYoSigpLG4ucmVhZHkoKSl9bi5yZWFkeS5wcm9taXNlPWZ1bmN0aW9uKGIpe2lmKCFJKWlmKEk9bi5EZWZlcnJlZCgpLCJjb21wbGV0ZSI9PT1kLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWQucmVhZHlTdGF0ZSYmIWQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKWEuc2V0VGltZW91dChuLnJlYWR5KTtlbHNlIGlmKGQuYWRkRXZlbnRMaXN0ZW5lcilkLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEspLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsSyk7ZWxzZXtkLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEspLGEuYXR0YWNoRXZlbnQoIm9ubG9hZCIsSyk7dmFyIGM9ITE7dHJ5e2M9bnVsbD09YS5mcmFtZUVsZW1lbnQmJmQuZG9jdW1lbnRFbGVtZW50fWNhdGNoKGUpe31jJiZjLmRvU2Nyb2xsJiYhZnVuY3Rpb24gZigpe2lmKCFuLmlzUmVhZHkpe3RyeXtjLmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYil7cmV0dXJuIGEuc2V0VGltZW91dChmLDUwKX1KKCksbi5yZWFkeSgpfX0oKX1yZXR1cm4gSS5wcm9taXNlKGIpfSxuLnJlYWR5LnByb21pc2UoKTt2YXIgTDtmb3IoTCBpbiBuKGwpKWJyZWFrO2wub3duRmlyc3Q9IjAiPT09TCxsLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbihmdW5jdGlvbigpe3ZhciBhLGIsYyxlO2M9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoYiksInVuZGVmaW5lZCIhPXR5cGVvZiBiLnN0eWxlLnpvb20mJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGwuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZSkpfSksZnVuY3Rpb24oKXt2YXIgYT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuZGVsZXRlRXhwYW5kbz0hMDt0cnl7ZGVsZXRlIGEudGVzdH1jYXRjaChiKXtsLmRlbGV0ZUV4cGFuZG89ITF9YT1udWxsfSgpO3ZhciBNPWZ1bmN0aW9uKGEpe3ZhciBiPW4ubm9EYXRhWyhhLm5vZGVOYW1lKyIgIikudG9Mb3dlckNhc2UoKV0sYz0rYS5ub2RlVHlwZXx8MTtyZXR1cm4gMSE9PWMmJjkhPT1jPyExOiFifHxiIT09ITAmJmEuZ2V0QXR0cmlidXRlKCJjbGFzc2lkIik9PT1ifSxOPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sTz0vKFtBLVpdKS9nO2Z1bmN0aW9uIFAoYSxiLGMpe2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKXt2YXIgZD0iZGF0YS0iK2IucmVwbGFjZShPLCItJDEiKS50b0xvd2VyQ2FzZSgpO2lmKGM9YS5nZXRBdHRyaWJ1dGUoZCksInN0cmluZyI9PXR5cGVvZiBjKXt0cnl7Yz0idHJ1ZSI9PT1jPyEwOiJmYWxzZSI9PT1jPyExOiJudWxsIj09PWM/bnVsbDorYysiIj09PWM/K2M6Ti50ZXN0KGMpP24ucGFyc2VKU09OKGMpOmN9Y2F0Y2goZSl7fW4uZGF0YShhLGIsYyl9ZWxzZSBjPXZvaWQgMDsNCn1yZXR1cm4gY31mdW5jdGlvbiBRKGEpe3ZhciBiO2ZvcihiIGluIGEpaWYoKCJkYXRhIiE9PWJ8fCFuLmlzRW1wdHlPYmplY3QoYVtiXSkpJiYidG9KU09OIiE9PWIpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUihhLGIsZCxlKXtpZihNKGEpKXt2YXIgZixnLGg9bi5leHBhbmRvLGk9YS5ub2RlVHlwZSxqPWk/bi5jYWNoZTphLGs9aT9hW2hdOmFbaF0mJmg7aWYoayYmaltrXSYmKGV8fGpba10uZGF0YSl8fHZvaWQgMCE9PWR8fCJzdHJpbmciIT10eXBlb2YgYilyZXR1cm4ga3x8KGs9aT9hW2hdPWMucG9wKCl8fG4uZ3VpZCsrOmgpLGpba118fChqW2tdPWk/e306e3RvSlNPTjpuLm5vb3B9KSwib2JqZWN0IiE9dHlwZW9mIGImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoZT9qW2tdPW4uZXh0ZW5kKGpba10sYik6altrXS5kYXRhPW4uZXh0ZW5kKGpba10uZGF0YSxiKSksZz1qW2tdLGV8fChnLmRhdGF8fChnLmRhdGE9e30pLGc9Zy5kYXRhKSx2b2lkIDAhPT1kJiYoZ1tuLmNhbWVsQ2FzZShiKV09ZCksInN0cmluZyI9PXR5cGVvZiBiPyhmPWdbYl0sbnVsbD09ZiYmKGY9Z1tuLmNhbWVsQ2FzZShiKV0pKTpmPWcsZn19ZnVuY3Rpb24gUyhhLGIsYyl7aWYoTShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP24uY2FjaGU6YSxoPWY/YVtuLmV4cGFuZG9dOm4uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bi5pc0FycmF5KGIpP2I9Yi5jb25jYXQobi5tYXAoYixuLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1uLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFRKGQpOiFuLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxRKGdbaF0pKSkmJihmP24uY2xlYW5EYXRhKFthXSwhMCk6bC5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPXZvaWQgMCl9fX1uLmV4dGVuZCh7Y2FjaGU6e30sbm9EYXRhOnsiYXBwbGV0ICI6ITAsImVtYmVkICI6ITAsIm9iamVjdCAiOiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAifSxoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiBhPWEubm9kZVR5cGU/bi5jYWNoZVthW24uZXhwYW5kb11dOmFbbi5leHBhbmRvXSwhIWEmJiFRKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUihhLGIsYyl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUyhhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoYSxiLGMsITApfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3JldHVybiBTKGEsYiwhMCl9fSksbi5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj10aGlzWzBdLGc9ZiYmZi5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZT1uLmRhdGEoZiksMT09PWYubm9kZVR5cGUmJiFuLl9kYXRhKGYsInBhcnNlZEF0dHJzIikpKXtjPWcubGVuZ3RoO3doaWxlKGMtLSlnW2NdJiYoZD1nW2NdLm5hbWUsMD09PWQuaW5kZXhPZigiZGF0YS0iKSYmKGQ9bi5jYW1lbENhc2UoZC5zbGljZSg1KSksUChmLGQsZVtkXSkpKTtuLl9kYXRhKGYsInBhcnNlZEF0dHJzIiwhMCl9cmV0dXJuIGV9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe24uZGF0YSh0aGlzLGEpfSk6YXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaChmdW5jdGlvbigpe24uZGF0YSh0aGlzLGEsYil9KTpmP1AoZixhLG4uZGF0YShmLGEpKTp2b2lkIDB9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe24ucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSksbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYT8oYj0oYnx8ImZ4IikrInF1ZXVlIixkPW4uX2RhdGEoYSxiKSxjJiYoIWR8fG4uaXNBcnJheShjKT9kPW4uX2RhdGEoYSxiLG4ubWFrZUFycmF5KGMpKTpkLnB1c2goYykpLGR8fFtdKTp2b2lkIDB9LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9bi5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1uLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe24uZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1jLnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBuLl9kYXRhKGEsYyl8fG4uX2RhdGEoYSxjLHtlbXB0eTpuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtuLl9yZW1vdmVEYXRhKGEsYisicXVldWUiKSxuLl9yZW1vdmVEYXRhKGEsYyl9KX0pfX0pLG4uZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9uLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPW4ucXVldWUodGhpcyxhLGIpO24uX3F1ZXVlSG9va3ModGhpcyxhKSwiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09Y1swXSYmbi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MSxlPW4uRGVmZXJyZWQoKSxmPXRoaXMsZz10aGlzLmxlbmd0aCxoPWZ1bmN0aW9uKCl7LS1kfHxlLnJlc29sdmVXaXRoKGYsW2ZdKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7d2hpbGUoZy0tKWM9bi5fZGF0YShmW2ddLGErInF1ZXVlSG9va3MiKSxjJiZjLmVtcHR5JiYoZCsrLGMuZW1wdHkuYWRkKGgpKTtyZXR1cm4gaCgpLGUucHJvbWlzZShiKX19KSxmdW5jdGlvbigpe3ZhciBhO2wuc2hyaW5rV3JhcEJsb2Nrcz1mdW5jdGlvbigpe2lmKG51bGwhPWEpcmV0dXJuIGE7YT0hMTt2YXIgYixjLGU7cmV0dXJuIGM9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGU/KGI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuc3R5bGUuem9vbSYmKGIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsYi5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zdHlsZS53aWR0aD0iNXB4IixhPTMhPT1iLm9mZnNldFdpZHRoKSxjLnJlbW92ZUNoaWxkKGUpLGEpOnZvaWQgMH19KCk7dmFyIFQ9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVT1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrVCsiKShbYS16JV0qKSQiLCJpIiksVj1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW4uY3NzKGEsImRpc3BsYXkiKXx8IW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfTtmdW5jdGlvbiBYKGEsYixjLGQpe3ZhciBlLGY9MSxnPTIwLGg9ZD9mdW5jdGlvbigpe3JldHVybiBkLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBuLmNzcyhhLGIsIiIpfSxpPWgoKSxqPWMmJmNbM118fChuLmNzc051bWJlcltiXT8iIjoicHgiKSxrPShuLmNzc051bWJlcltiXXx8InB4IiE9PWomJitpKSYmVS5leGVjKG4uY3NzKGEsYikpO2lmKGsmJmtbM10hPT1qKXtqPWp8fGtbM10sYz1jfHxbXSxrPStpfHwxO2RvIGY9Znx8Ii41IixrLz1mLG4uc3R5bGUoYSxiLGsraik7d2hpbGUoZiE9PShmPWgoKS9pKSYmMSE9PWYmJi0tZyl9cmV0dXJuIGMmJihrPStrfHwraXx8MCxlPWNbMV0/aysoY1sxXSsxKSpjWzJdOitjWzJdLGQmJihkLnVuaXQ9aixkLnN0YXJ0PWssZC5lbmQ9ZSkpLGV9dmFyIFk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9MCxpPWEubGVuZ3RoLGo9bnVsbD09YztpZigib2JqZWN0Ij09PW4udHlwZShjKSl7ZT0hMDtmb3IoaCBpbiBjKVkoYSxiLGgsY1toXSwhMCxmLGcpfWVsc2UgaWYodm9pZCAwIT09ZCYmKGU9ITAsbi5pc0Z1bmN0aW9uKGQpfHwoZz0hMCksaiYmKGc/KGIuY2FsbChhLGQpLGI9bnVsbCk6KGo9YixiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gai5jYWxsKG4oYSksYyl9KSksYikpZm9yKDtpPmg7aCsrKWIoYVtoXSxjLGc/ZDpkLmNhbGwoYVtoXSxoLGIoYVtoXSxjKSkpO3JldHVybiBlP2E6aj9iLmNhbGwoYSk6aT9iKGFbMF0sYyk6Zn0sWj0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSwkPS88KFtcdzotXSspLyxfPS9eJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSxhYT0vXlxzKy8sYmE9ImFiYnJ8YXJ0aWNsZXxhc2lkZXxhdWRpb3xiZGl8Y2FudmFzfGRhdGF8ZGF0YWxpc3R8ZGV0YWlsc3xkaWFsb2d8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFpbnxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8cGljdHVyZXxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGVtcGxhdGV8dGltZXx2aWRlbyI7ZnVuY3Rpb24gY2EoYSl7dmFyIGI9YmEuc3BsaXQoInwiKSxjPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKGMuY3JlYXRlRWxlbWVudCl3aGlsZShiLmxlbmd0aCljLmNyZWF0ZUVsZW1lbnQoYi5wb3AoKSk7cmV0dXJuIGN9IWZ1bmN0aW9uKCl7dmFyIGE9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxiPWQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGM9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2EuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGwubGVhZGluZ1doaXRlc3BhY2U9Mz09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSxsLnRib2R5PSFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxsLmh0bWxTZXJpYWxpemU9ISFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLGwuaHRtbDVDbG9uZT0iPDpuYXY+PC86bmF2PiIhPT1kLmNyZWF0ZUVsZW1lbnQoIm5hdiIpLmNsb25lTm9kZSghMCkub3V0ZXJIVE1MLGMudHlwZT0iY2hlY2tib3giLGMuY2hlY2tlZD0hMCxiLmFwcGVuZENoaWxkKGMpLGwuYXBwZW5kQ2hlY2tlZD1jLmNoZWNrZWQsYS5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iLGwubm9DbG9uZUNoZWNrZWQ9ISFhLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxiLmFwcGVuZENoaWxkKGEpLGM9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGMuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxjLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxjLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxhLmFwcGVuZENoaWxkKGMpLGwuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxsLm5vQ2xvbmVFdmVudD0hIWEuYWRkRXZlbnRMaXN0ZW5lcixhW24uZXhwYW5kb109MSxsLmF0dHJpYnV0ZXM9IWEuZ2V0QXR0cmlidXRlKG4uZXhwYW5kbyl9KCk7dmFyIGRhPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpsLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX07ZGEub3B0Z3JvdXA9ZGEub3B0aW9uLGRhLnRib2R5PWRhLnRmb290PWRhLmNvbGdyb3VwPWRhLmNhcHRpb249ZGEudGhlYWQsZGEudGg9ZGEudGQ7ZnVuY3Rpb24gZWEoYSxiKXt2YXIgYyxkLGU9MCxmPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bi5ub2RlTmFtZShkLGIpP2YucHVzaChkKTpuLm1lcmdlKGYsZWEoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm4ubm9kZU5hbWUoYSxiKT9uLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIGZhKGEsYil7Zm9yKHZhciBjLGQ9MDtudWxsIT0oYz1hW2RdKTtkKyspbi5fZGF0YShjLCJnbG9iYWxFdmFsIiwhYnx8bi5fZGF0YShiW2RdLCJnbG9iYWxFdmFsIikpfXZhciBnYT0vPHwmIz9cdys7LyxoYT0vPHRib2R5L2k7ZnVuY3Rpb24gaWEoYSl7Wi50ZXN0KGEudHlwZSkmJihhLmRlZmF1bHRDaGVja2VkPWEuY2hlY2tlZCl9ZnVuY3Rpb24gamEoYSxiLGMsZCxlKXtmb3IodmFyIGYsZyxoLGksaixrLG0sbz1hLmxlbmd0aCxwPWNhKGIpLHE9W10scj0wO28+cjtyKyspaWYoZz1hW3JdLGd8fDA9PT1nKWlmKCJvYmplY3QiPT09bi50eXBlKGcpKW4ubWVyZ2UocSxnLm5vZGVUeXBlP1tnXTpnKTtlbHNlIGlmKGdhLnRlc3QoZykpe2k9aXx8cC5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxqPSgkLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksbT1kYVtqXXx8ZGEuX2RlZmF1bHQsaS5pbm5lckhUTUw9bVsxXStuLmh0bWxQcmVmaWx0ZXIoZykrbVsyXSxmPW1bMF07d2hpbGUoZi0tKWk9aS5sYXN0Q2hpbGQ7aWYoIWwubGVhZGluZ1doaXRlc3BhY2UmJmFhLnRlc3QoZykmJnEucHVzaChiLmNyZWF0ZVRleHROb2RlKGFhLmV4ZWMoZylbMF0pKSwhbC50Ym9keSl7Zz0idGFibGUiIT09anx8aGEudGVzdChnKT8iPHRhYmxlPiIhPT1tWzFdfHxoYS50ZXN0KGcpPzA6aTppLmZpcnN0Q2hpbGQsZj1nJiZnLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGYtLSluLm5vZGVOYW1lKGs9Zy5jaGlsZE5vZGVzW2ZdLCJ0Ym9keSIpJiYhay5jaGlsZE5vZGVzLmxlbmd0aCYmZy5yZW1vdmVDaGlsZChrKX1uLm1lcmdlKHEsaS5jaGlsZE5vZGVzKSxpLnRleHRDb250ZW50PSIiO3doaWxlKGkuZmlyc3RDaGlsZClpLnJlbW92ZUNoaWxkKGkuZmlyc3RDaGlsZCk7aT1wLmxhc3RDaGlsZH1lbHNlIHEucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTtpJiZwLnJlbW92ZUNoaWxkKGkpLGwuYXBwZW5kQ2hlY2tlZHx8bi5ncmVwKGVhKHEsImlucHV0IiksaWEpLHI9MDt3aGlsZShnPXFbcisrXSlpZihkJiZuLmluQXJyYXkoZyxkKT4tMSllJiZlLnB1c2goZyk7ZWxzZSBpZihoPW4uY29udGFpbnMoZy5vd25lckRvY3VtZW50LGcpLGk9ZWEocC5hcHBlbmRDaGlsZChnKSwic2NyaXB0IiksaCYmZmEoaSksYyl7Zj0wO3doaWxlKGc9aVtmKytdKV8udGVzdChnLnR5cGV8fCIiKSYmYy5wdXNoKGcpfXJldHVybiBpPW51bGwscH0hZnVuY3Rpb24oKXt2YXIgYixjLGU9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChsW2JdPWMgaW4gYSl8fChlLnNldEF0dHJpYnV0ZShjLCJ0IiksbFtiXT1lLmF0dHJpYnV0ZXNbY10uZXhwYW5kbz09PSExKTtlPW51bGx9KCk7dmFyIGthPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaSxsYT0vXmtleS8sbWE9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLG5hPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxvYT0vXihbXi5dKikoPzpcLiguKyl8KS87ZnVuY3Rpb24gcGEoKXtyZXR1cm4hMH1mdW5jdGlvbiBxYSgpe3JldHVybiExfWZ1bmN0aW9uIHJhKCl7dHJ5e3JldHVybiBkLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1mdW5jdGlvbiBzYShhLGIsYyxkLGUsZil7dmFyIGcsaDtpZigib2JqZWN0Ij09dHlwZW9mIGIpeyJzdHJpbmciIT10eXBlb2YgYyYmKGQ9ZHx8YyxjPXZvaWQgMCk7Zm9yKGggaW4gYilzYShhLGgsYyxkLGJbaF0sZik7cmV0dXJuIGF9aWYobnVsbD09ZCYmbnVsbD09ZT8oZT1jLGQ9Yz12b2lkIDApOm51bGw9PWUmJigic3RyaW5nIj09dHlwZW9mIGM/KGU9ZCxkPXZvaWQgMCk6KGU9ZCxkPWMsYz12b2lkIDApKSxlPT09ITEpZT1xYTtlbHNlIGlmKCFlKXJldHVybiBhO3JldHVybiAxPT09ZiYmKGc9ZSxlPWZ1bmN0aW9uKGEpe3JldHVybiBuKCkub2ZmKGEpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9Zy5ndWlkfHwoZy5ndWlkPW4uZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5hZGQodGhpcyxiLGUsZCxjKX0pfW4uZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9bi5fZGF0YShhKTtpZihyKXtjLmhhbmRsZXImJihpPWMsYz1pLmhhbmRsZXIsZT1pLnNlbGVjdG9yKSxjLmd1aWR8fChjLmd1aWQ9bi5ndWlkKyspLChnPXIuZXZlbnRzKXx8KGc9ci5ldmVudHM9e30pLChrPXIuaGFuZGxlKXx8KGs9ci5oYW5kbGU9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBufHxhJiZuLmV2ZW50LnRyaWdnZXJlZD09PWEudHlwZT92b2lkIDA6bi5ldmVudC5kaXNwYXRjaC5hcHBseShrLmVsZW0sYXJndW1lbnRzKX0say5lbGVtPWEpLGI9KGJ8fCIiKS5tYXRjaChHKXx8WyIiXSxoPWIubGVuZ3RoO3doaWxlKGgtLSlmPW9hLmV4ZWMoYltoXSl8fFtdLG89cT1mWzFdLHA9KGZbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxvJiYoaj1uLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGU/ai5kZWxlZ2F0ZVR5cGU6ai5iaW5kVHlwZSl8fG8saj1uLmV2ZW50LnNwZWNpYWxbb118fHt9LGw9bi5leHRlbmQoe3R5cGU6byxvcmlnVHlwZTpxLGRhdGE6ZCxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZSxuZWVkc0NvbnRleHQ6ZSYmbi5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpwLmpvaW4oIi4iKX0saSksKG09Z1tvXSl8fChtPWdbb109W10sbS5kZWxlZ2F0ZUNvdW50PTAsai5zZXR1cCYmai5zZXR1cC5jYWxsKGEsZCxwLGspIT09ITF8fChhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKG8saywhMSk6YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib24iK28saykpKSxqLmFkZCYmKGouYWRkLmNhbGwoYSxsKSxsLmhhbmRsZXIuZ3VpZHx8KGwuaGFuZGxlci5ndWlkPWMuZ3VpZCkpLGU/bS5zcGxpY2UobS5kZWxlZ2F0ZUNvdW50KyssMCxsKTptLnB1c2gobCksbi5ldmVudC5nbG9iYWxbb109ITApO2E9bnVsbH19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbyxwLHEscj1uLmhhc0RhdGEoYSkmJm4uX2RhdGEoYSk7aWYociYmKGs9ci5ldmVudHMpKXtiPShifHwiIikubWF0Y2goRyl8fFsiIl0saj1iLmxlbmd0aDt3aGlsZShqLS0paWYoaD1vYS5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1uLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbT1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW0ubGVuZ3RoO3doaWxlKGYtLSlnPW1bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChtLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm0uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFtLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG4ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW4uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bi5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG4uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZSxmKXt2YXIgZyxoLGksaixsLG0sbyxwPVtlfHxkXSxxPWsuY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscj1rLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihpPW09ZT1lfHxkLDMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmIW5hLnRlc3QocStuLmV2ZW50LnRyaWdnZXJlZCkmJihxLmluZGV4T2YoIi4iKT4tMSYmKHI9cS5zcGxpdCgiLiIpLHE9ci5zaGlmdCgpLHIuc29ydCgpKSxoPXEuaW5kZXhPZigiOiIpPDAmJiJvbiIrcSxiPWJbbi5leHBhbmRvXT9iOm5ldyBuLkV2ZW50KHEsIm9iamVjdCI9PXR5cGVvZiBiJiZiKSxiLmlzVHJpZ2dlcj1mPzI6MyxiLm5hbWVzcGFjZT1yLmpvaW4oIi4iKSxiLnJuYW1lc3BhY2U9Yi5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWUpLGM9bnVsbD09Yz9bYl06bi5tYWtlQXJyYXkoYyxbYl0pLGw9bi5ldmVudC5zcGVjaWFsW3FdfHx7fSxmfHwhbC50cmlnZ2VyfHxsLnRyaWdnZXIuYXBwbHkoZSxjKSE9PSExKSl7aWYoIWYmJiFsLm5vQnViYmxlJiYhbi5pc1dpbmRvdyhlKSl7Zm9yKGo9bC5kZWxlZ2F0ZVR5cGV8fHEsbmEudGVzdChqK3EpfHwoaT1pLnBhcmVudE5vZGUpO2k7aT1pLnBhcmVudE5vZGUpcC5wdXNoKGkpLG09aTttPT09KGUub3duZXJEb2N1bWVudHx8ZCkmJnAucHVzaChtLmRlZmF1bHRWaWV3fHxtLnBhcmVudFdpbmRvd3x8YSl9bz0wO3doaWxlKChpPXBbbysrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW8+MT9qOmwuYmluZFR5cGV8fHEsZz0obi5fZGF0YShpLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm4uX2RhdGEoaSwiaGFuZGxlIiksZyYmZy5hcHBseShpLGMpLGc9aCYmaVtoXSxnJiZnLmFwcGx5JiZNKGkpJiYoYi5yZXN1bHQ9Zy5hcHBseShpLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7aWYoYi50eXBlPXEsIWYmJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYoIWwuX2RlZmF1bHR8fGwuX2RlZmF1bHQuYXBwbHkocC5wb3AoKSxjKT09PSExKSYmTShlKSYmaCYmZVtxXSYmIW4uaXNXaW5kb3coZSkpe209ZVtoXSxtJiYoZVtoXT1udWxsKSxuLmV2ZW50LnRyaWdnZXJlZD1xO3RyeXtlW3FdKCl9Y2F0Y2gocyl7fW4uZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxtJiYoZVtoXT1tKX1yZXR1cm4gYi5yZXN1bHR9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXthPW4uZXZlbnQuZml4KGEpO3ZhciBiLGMsZCxmLGcsaD1bXSxpPWUuY2FsbChhcmd1bWVudHMpLGo9KG4uX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVthLnR5cGVdfHxbXSxrPW4uZXZlbnQuc3BlY2lhbFthLnR5cGVdfHx7fTtpZihpWzBdPWEsYS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFrLnByZURpc3BhdGNofHxrLnByZURpc3BhdGNoLmNhbGwodGhpcyxhKSE9PSExKXtoPW4uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsaiksYj0wO3doaWxlKChmPWhbYisrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe2EuY3VycmVudFRhcmdldD1mLmVsZW0sYz0wO3doaWxlKChnPWYuaGFuZGxlcnNbYysrXSkmJiFhLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpYS5ybmFtZXNwYWNlJiYhYS5ybmFtZXNwYWNlLnRlc3QoZy5uYW1lc3BhY2UpfHwoYS5oYW5kbGVPYmo9ZyxhLmRhdGE9Zy5kYXRhLGQ9KChuLmV2ZW50LnNwZWNpYWxbZy5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGcuaGFuZGxlcikuYXBwbHkoZi5lbGVtLGkpLHZvaWQgMCE9PWQmJihhLnJlc3VsdD1kKT09PSExJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gay5wb3N0RGlzcGF0Y2gmJmsucG9zdERpc3BhdGNoLmNhbGwodGhpcyxhKSxhLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxpPWEudGFyZ2V0O2lmKGgmJmkubm9kZVR5cGUmJigiY2xpY2siIT09YS50eXBlfHxpc05hTihhLmJ1dHRvbil8fGEuYnV0dG9uPDEpKWZvcig7aSE9dGhpcztpPWkucGFyZW50Tm9kZXx8dGhpcylpZigxPT09aS5ub2RlVHlwZSYmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEudHlwZSkpe2ZvcihkPVtdLGM9MDtoPmM7YysrKWY9YltjXSxlPWYuc2VsZWN0b3IrIiAiLHZvaWQgMD09PWRbZV0mJihkW2VdPWYubmVlZHNDb250ZXh0P24oZSx0aGlzKS5pbmRleChpKT4tMTpuLmZpbmQoZSx0aGlzLG51bGwsW2ldKS5sZW5ndGgpLGRbZV0mJmQucHVzaChmKTtkLmxlbmd0aCYmZy5wdXNoKHtlbGVtOmksaGFuZGxlcnM6ZH0pfXJldHVybiBoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06dGhpcyxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sZml4OmZ1bmN0aW9uKGEpe2lmKGFbbi5leHBhbmRvXSlyZXR1cm4gYTt2YXIgYixjLGUsZj1hLnR5cGUsZz1hLGg9dGhpcy5maXhIb29rc1tmXTtofHwodGhpcy5maXhIb29rc1tmXT1oPW1hLnRlc3QoZik/dGhpcy5tb3VzZUhvb2tzOmxhLnRlc3QoZik/dGhpcy5rZXlIb29rczp7fSksZT1oLnByb3BzP3RoaXMucHJvcHMuY29uY2F0KGgucHJvcHMpOnRoaXMucHJvcHMsYT1uZXcgbi5FdmVudChnKSxiPWUubGVuZ3RoO3doaWxlKGItLSljPWVbYl0sYVtjXT1nW2NdO3JldHVybiBhLnRhcmdldHx8KGEudGFyZ2V0PWcuc3JjRWxlbWVudHx8ZCksMz09PWEudGFyZ2V0Lm5vZGVUeXBlJiYoYS50YXJnZXQ9YS50YXJnZXQucGFyZW50Tm9kZSksYS5tZXRhS2V5PSEhYS5tZXRhS2V5LGguZmlsdGVyP2guZmlsdGVyKGEsZyk6YX0scHJvcHM6ImFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRldGFpbCBldmVudFBoYXNlIG1ldGFLZXkgcmVsYXRlZFRhcmdldCBzaGlmdEtleSB0YXJnZXQgdGltZVN0YW1wIHZpZXcgd2hpY2giLnNwbGl0KCIgIiksZml4SG9va3M6e30sa2V5SG9va3M6e3Byb3BzOiJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlIi5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihhLGIpe3JldHVybiBudWxsPT1hLndoaWNoJiYoYS53aGljaD1udWxsIT1iLmNoYXJDb2RlP2IuY2hhckNvZGU6Yi5rZXlDb2RlKSxhfX0sbW91c2VIb29rczp7cHJvcHM6ImJ1dHRvbiBidXR0b25zIGNsaWVudFggY2xpZW50WSBmcm9tRWxlbWVudCBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgc2NyZWVuWCBzY3JlZW5ZIHRvRWxlbWVudCIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZz1iLmJ1dHRvbixoPWIuZnJvbUVsZW1lbnQ7cmV0dXJuIG51bGw9PWEucGFnZVgmJm51bGwhPWIuY2xpZW50WCYmKGU9YS50YXJnZXQub3duZXJEb2N1bWVudHx8ZCxmPWUuZG9jdW1lbnRFbGVtZW50LGM9ZS5ib2R5LGEucGFnZVg9Yi5jbGllbnRYKyhmJiZmLnNjcm9sbExlZnR8fGMmJmMuc2Nyb2xsTGVmdHx8MCktKGYmJmYuY2xpZW50TGVmdHx8YyYmYy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWIuY2xpZW50WSsoZiYmZi5zY3JvbGxUb3B8fGMmJmMuc2Nyb2xsVG9wfHwwKS0oZiYmZi5jbGllbnRUb3B8fGMmJmMuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmaCYmKGEucmVsYXRlZFRhcmdldD1oPT09YS50YXJnZXQ/Yi50b0VsZW1lbnQ6aCksYS53aGljaHx8dm9pZCAwPT09Z3x8KGEud2hpY2g9MSZnPzE6MiZnPzM6NCZnPzI6MCksYX19LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXMhPT1yYSgpJiZ0aGlzLmZvY3VzKXRyeXtyZXR1cm4gdGhpcy5mb2N1cygpLCExfWNhdGNoKGEpe319LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PXJhKCkmJnRoaXMuYmx1cj8odGhpcy5ibHVyKCksITEpOnZvaWQgMH0sZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGNsaWNrOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIG4ubm9kZU5hbWUodGhpcywiaW5wdXQiKSYmImNoZWNrYm94Ij09PXRoaXMudHlwZSYmdGhpcy5jbGljaz8odGhpcy5jbGljaygpLCExKTp2b2lkIDB9LF9kZWZhdWx0OmZ1bmN0aW9uKGEpe3JldHVybiBuLm5vZGVOYW1lKGEudGFyZ2V0LCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9bi5leHRlbmQobmV3IG4uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7bi5ldmVudC50cmlnZ2VyKGQsbnVsbCxiKSxkLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9fSxuLnJlbW92ZUV2ZW50PWQucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKX06ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSJvbiIrYjthLmRldGFjaEV2ZW50JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBhW2RdJiYoYVtkXT1udWxsKSxhLmRldGFjaEV2ZW50KGQsYykpfSxuLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBuLkV2ZW50PyhhJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJmEucmV0dXJuVmFsdWU9PT0hMT9wYTpxYSk6dGhpcy50eXBlPWEsYiYmbi5leHRlbmQodGhpcyxiKSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8bi5ub3coKSx2b2lkKHRoaXNbbi5leHBhbmRvXT0hMCkpOm5ldyBuLkV2ZW50KGEsYil9LG4uRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpuLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpxYSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDpxYSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpxYSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wYSxhJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6YS5yZXR1cm5WYWx1ZT0hMSl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiYoYS5zdG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1wYSxhJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sbi5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihhLGIpe24uZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGMsZD10aGlzLGU9YS5yZWxhdGVkVGFyZ2V0LGY9YS5oYW5kbGVPYmo7cmV0dXJuIGUmJihlPT09ZHx8bi5jb250YWlucyhkLGUpKXx8KGEudHlwZT1mLm9yaWdUeXBlLGM9Zi5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhLnR5cGU9YiksY319fSksbC5zdWJtaXR8fChuLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBuLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG4uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1uLm5vZGVOYW1lKGIsImlucHV0Iil8fG4ubm9kZU5hbWUoYiwiYnV0dG9uIik/bi5wcm9wKGIsImZvcm0iKTp2b2lkIDA7YyYmIW4uX2RhdGEoYywic3VibWl0IikmJihuLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0QnViYmxlPSEwfSksbi5fZGF0YShjLCJzdWJtaXQiLCEwKSl9KX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe2EuX3N1Ym1pdEJ1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRCdWJibGUsdGhpcy5wYXJlbnROb2RlJiYhYS5pc1RyaWdnZXImJm4uZXZlbnQuc2ltdWxhdGUoInN1Ym1pdCIsdGhpcy5wYXJlbnROb2RlLGEpKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBuLmV2ZW50LnJlbW92ZSh0aGlzLCIuX3N1Ym1pdCIpfX0pLGwuY2hhbmdlfHwobi5ldmVudC5zcGVjaWFsLmNoYW5nZT17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4ga2EudGVzdCh0aGlzLm5vZGVOYW1lKT8oImNoZWNrYm94IiE9PXRoaXMudHlwZSYmInJhZGlvIiE9PXRoaXMudHlwZXx8KG4uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0Q2hhbmdlZD0hMCl9KSxuLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fY2hhbmdlIixmdW5jdGlvbihhKXt0aGlzLl9qdXN0Q2hhbmdlZCYmIWEuaXNUcmlnZ2VyJiYodGhpcy5fanVzdENoYW5nZWQ9ITEpLG4uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhKX0pKSwhMSk6dm9pZCBuLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtrYS50ZXN0KGIubm9kZU5hbWUpJiYhbi5fZGF0YShiLCJjaGFuZ2UiKSYmKG4uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bi5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSl9KSxuLl9kYXRhKGIsImNoYW5nZSIsITApKX0pfSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7cmV0dXJuIHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8InJhZGlvIiE9PWIudHlwZSYmImNoZWNrYm94IiE9PWIudHlwZT9hLmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp2b2lkIDB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG4uZXZlbnQucmVtb3ZlKHRoaXMsIi5fY2hhbmdlIiksIWthLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksbC5mb2N1c2lufHxuLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSl7bi5ldmVudC5zaW11bGF0ZShiLGEudGFyZ2V0LG4uZXZlbnQuZml4KGEpKX07bi5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW4uX2RhdGEoZCxiKTtlfHxkLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSxuLl9kYXRhKGQsYiwoZXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9bi5fZGF0YShkLGIpLTE7ZT9uLl9kYXRhKGQsYixlKTooZC5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksbi5fcmVtb3ZlRGF0YShkLGIpKX19fSksbi5mbi5leHRlbmQoe29uOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBzYSh0aGlzLGEsYixjLGQpfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHNhKHRoaXMsYSxiLGMsZCwxKX0sb2ZmOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXJldHVybiBkPWEuaGFuZGxlT2JqLG4oYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGQubmFtZXNwYWNlP2Qub3JpZ1R5cGUrIi4iK2QubmFtZXNwYWNlOmQub3JpZ1R5cGUsZC5zZWxlY3RvcixkLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMub2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gYiE9PSExJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGM9YixiPXZvaWQgMCksYz09PSExJiYoYz1xYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5yZW1vdmUodGhpcyxhLGMsYil9KX0sdHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1swXTtyZXR1cm4gYz9uLmV2ZW50LnRyaWdnZXIoYSxiLGMsITApOnZvaWQgMH19KTt2YXIgdGE9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyx1YT1uZXcgUmVnRXhwKCI8KD86IitiYSsiKVtcXHMvPl0iLCJpIiksdmE9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Oi1dKylbXj5dKilcLz4vZ2ksd2E9LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2kseGE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2kseWE9L150cnVlXC8oLiopLyx6YT0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5ccyokL2csQWE9Y2EoZCksQmE9QWEuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7ZnVuY3Rpb24gQ2EoYSxiKXtyZXR1cm4gbi5ub2RlTmFtZShhLCJ0YWJsZSIpJiZuLm5vZGVOYW1lKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxhLmFwcGVuZENoaWxkKGEub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTphfWZ1bmN0aW9uIERhKGEpe3JldHVybiBhLnR5cGU9KG51bGwhPT1uLmZpbmQuYXR0cihhLCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiBFYShhKXt2YXIgYj15YS5leGVjKGEudHlwZSk7cmV0dXJuIGI/YS50eXBlPWJbMV06YS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxhfWZ1bmN0aW9uIEZhKGEsYil7aWYoMT09PWIubm9kZVR5cGUmJm4uaGFzRGF0YShhKSl7dmFyIGMsZCxlLGY9bi5fZGF0YShhKSxnPW4uX2RhdGEoYixmKSxoPWYuZXZlbnRzO2lmKGgpe2RlbGV0ZSBnLmhhbmRsZSxnLmV2ZW50cz17fTtmb3IoYyBpbiBoKWZvcihkPTAsZT1oW2NdLmxlbmd0aDtlPmQ7ZCsrKW4uZXZlbnQuYWRkKGIsYyxoW2NdW2RdKX1nLmRhdGEmJihnLmRhdGE9bi5leHRlbmQoe30sZy5kYXRhKSl9fWZ1bmN0aW9uIEdhKGEsYil7dmFyIGMsZCxlO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwhbC5ub0Nsb25lRXZlbnQmJmJbbi5leHBhbmRvXSl7ZT1uLl9kYXRhKGIpO2ZvcihkIGluIGUuZXZlbnRzKW4ucmVtb3ZlRXZlbnQoYixkLGUuaGFuZGxlKTtiLnJlbW92ZUF0dHJpYnV0ZShuLmV4cGFuZG8pfSJzY3JpcHQiPT09YyYmYi50ZXh0IT09YS50ZXh0PyhEYShiKS50ZXh0PWEudGV4dCxFYShiKSk6Im9iamVjdCI9PT1jPyhiLnBhcmVudE5vZGUmJihiLm91dGVySFRNTD1hLm91dGVySFRNTCksbC5odG1sNUNsb25lJiZhLmlubmVySFRNTCYmIW4udHJpbShiLmlubmVySFRNTCkmJihiLmlubmVySFRNTD1hLmlubmVySFRNTCkpOiJpbnB1dCI9PT1jJiZaLnRlc3QoYS50eXBlKT8oYi5kZWZhdWx0Q2hlY2tlZD1iLmNoZWNrZWQ9YS5jaGVja2VkLGIudmFsdWUhPT1hLnZhbHVlJiYoYi52YWx1ZT1hLnZhbHVlKSk6Im9wdGlvbiI9PT1jP2IuZGVmYXVsdFNlbGVjdGVkPWIuc2VsZWN0ZWQ9YS5kZWZhdWx0U2VsZWN0ZWQ6ImlucHV0IiE9PWMmJiJ0ZXh0YXJlYSIhPT1jfHwoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1mdW5jdGlvbiBIYShhLGIsYyxkKXtiPWYuYXBwbHkoW10sYik7dmFyIGUsZyxoLGksaixrLG09MCxvPWEubGVuZ3RoLHA9by0xLHE9YlswXSxyPW4uaXNGdW5jdGlvbihxKTtpZihyfHxvPjEmJiJzdHJpbmciPT10eXBlb2YgcSYmIWwuY2hlY2tDbG9uZSYmeGEudGVzdChxKSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBmPWEuZXEoZSk7ciYmKGJbMF09cS5jYWxsKHRoaXMsZSxmLmh0bWwoKSkpLEhhKGYsYixjLGQpfSk7aWYobyYmKGs9amEoYixhWzBdLm93bmVyRG9jdW1lbnQsITEsYSxkKSxlPWsuZmlyc3RDaGlsZCwxPT09ay5jaGlsZE5vZGVzLmxlbmd0aCYmKGs9ZSksZXx8ZCkpe2ZvcihpPW4ubWFwKGVhKGssInNjcmlwdCIpLERhKSxoPWkubGVuZ3RoO28+bTttKyspZz1rLG0hPT1wJiYoZz1uLmNsb25lKGcsITAsITApLGgmJm4ubWVyZ2UoaSxlYShnLCJzY3JpcHQiKSkpLGMuY2FsbChhW21dLGcsbSk7aWYoaClmb3Ioaj1pW2kubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsbi5tYXAoaSxFYSksbT0wO2g+bTttKyspZz1pW21dLF8udGVzdChnLnR5cGV8fCIiKSYmIW4uX2RhdGEoZywiZ2xvYmFsRXZhbCIpJiZuLmNvbnRhaW5zKGosZykmJihnLnNyYz9uLl9ldmFsVXJsJiZuLl9ldmFsVXJsKGcuc3JjKTpuLmdsb2JhbEV2YWwoKGcudGV4dHx8Zy50ZXh0Q29udGVudHx8Zy5pbm5lckhUTUx8fCIiKS5yZXBsYWNlKHphLCIiKSkpO2s9ZT1udWxsfXJldHVybiBhfWZ1bmN0aW9uIElhKGEsYixjKXtmb3IodmFyIGQsZT1iP24uZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGQ9ZVtmXSk7ZisrKWN8fDEhPT1kLm5vZGVUeXBlfHxuLmNsZWFuRGF0YShlYShkKSksZC5wYXJlbnROb2RlJiYoYyYmbi5jb250YWlucyhkLm93bmVyRG9jdW1lbnQsZCkmJmZhKGVhKGQsInNjcmlwdCIpKSxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCkpO3JldHVybiBhfW4uZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UodmEsIjwkMT48LyQyPiIpfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpPW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpO2lmKGwuaHRtbDVDbG9uZXx8bi5pc1hNTERvYyhhKXx8IXVhLnRlc3QoIjwiK2Eubm9kZU5hbWUrIj4iKT9mPWEuY2xvbmVOb2RlKCEwKTooQmEuaW5uZXJIVE1MPWEub3V0ZXJIVE1MLEJhLnJlbW92ZUNoaWxkKGY9QmEuZmlyc3RDaGlsZCkpLCEobC5ub0Nsb25lRXZlbnQmJmwubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fG4uaXNYTUxEb2MoYSkpKWZvcihkPWVhKGYpLGg9ZWEoYSksZz0wO251bGwhPShlPWhbZ10pOysrZylkW2ddJiZHYShlLGRbZ10pO2lmKGIpaWYoYylmb3IoaD1ofHxlYShhKSxkPWR8fGVhKGYpLGc9MDtudWxsIT0oZT1oW2ddKTtnKyspRmEoZSxkW2ddKTtlbHNlIEZhKGEsZik7cmV0dXJuIGQ9ZWEoZiwic2NyaXB0IiksZC5sZW5ndGg+MCYmZmEoZCwhaSYmZWEoYSwic2NyaXB0IikpLGQ9aD1lPW51bGwsZn0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW4uZXhwYW5kbyxqPW4uY2FjaGUsaz1sLmF0dHJpYnV0ZXMsbT1uLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxNKGQpKSYmKGY9ZFtpXSxnPWYmJmpbZl0pKXtpZihnLmV2ZW50cylmb3IoZSBpbiBnLmV2ZW50cyltW2VdP24uZXZlbnQucmVtb3ZlKGQsZSk6bi5yZW1vdmVFdmVudChkLGUsZy5oYW5kbGUpO2pbZl0mJihkZWxldGUgaltmXSxrfHwidW5kZWZpbmVkIj09dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlP2RbaV09dm9pZCAwOmQucmVtb3ZlQXR0cmlidXRlKGkpLGMucHVzaChmKSl9fX0pLG4uZm4uZXh0ZW5kKHtkb21NYW5pcDpIYSxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIElhKHRoaXMsYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gSWEodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hP24udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGQpLmNyZWF0ZVRleHROb2RlKGEpKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUNhKHRoaXMsYSk7Yi5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9Q2EodGhpcyxhKTtiLmluc2VydEJlZm9yZShhLGIuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7bnVsbCE9KGE9dGhpc1tiXSk7YisrKXsxPT09YS5ub2RlVHlwZSYmbi5jbGVhbkRhdGEoZWEoYSwhMSkpO3doaWxlKGEuZmlyc3RDaGlsZClhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7YS5vcHRpb25zJiZuLm5vZGVOYW1lKGEsInNlbGVjdCIpJiYoYS5vcHRpb25zLmxlbmd0aD0wKX1yZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsPT1hPyExOmEsYj1udWxsPT1iP2E6Yix0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBuLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXXx8e30sYz0wLGQ9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YSlyZXR1cm4gMT09PWIubm9kZVR5cGU/Yi5pbm5lckhUTUwucmVwbGFjZSh0YSwiIik6dm9pZCAwO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmIXdhLnRlc3QoYSkmJihsLmh0bWxTZXJpYWxpemV8fCF1YS50ZXN0KGEpKSYmKGwubGVhZGluZ1doaXRlc3BhY2V8fCFhYS50ZXN0KGEpKSYmIWRhWygkLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPW4uaHRtbFByZWZpbHRlcihhKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihuLmNsZWFuRGF0YShlYShiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7bi5pbkFycmF5KHRoaXMsYSk8MCYmKG4uY2xlYW5EYXRhKGVhKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSksbi5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtuLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxmPW4oYSksaD1mLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxuKGZbZF0pW2JdKGMpLGcuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEphLEthPXtIVE1MOiJibG9jayIsQk9EWToiYmxvY2sifTtmdW5jdGlvbiBMYShhLGIpe3ZhciBjPW4oYi5jcmVhdGVFbGVtZW50KGEpKS5hcHBlbmRUbyhiLmJvZHkpLGQ9bi5jc3MoY1swXSwiZGlzcGxheSIpO3JldHVybiBjLmRldGFjaCgpLGR9ZnVuY3Rpb24gTWEoYSl7dmFyIGI9ZCxjPUthW2FdO3JldHVybiBjfHwoYz1MYShhLGIpLCJub25lIiE9PWMmJmN8fChKYT0oSmF8fG4oIjxpZnJhbWUgZnJhbWVib3JkZXI9JzAnIHdpZHRoPScwJyBoZWlnaHQ9JzAnLz4iKSkuYXBwZW5kVG8oYi5kb2N1bWVudEVsZW1lbnQpLGI9KEphWzBdLmNvbnRlbnRXaW5kb3d8fEphWzBdLmNvbnRlbnREb2N1bWVudCkuZG9jdW1lbnQsYi53cml0ZSgpLGIuY2xvc2UoKSxjPUxhKGEsYiksSmEuZGV0YWNoKCkpLEthW2FdPWMpLGN9dmFyIE5hPS9ebWFyZ2luLyxPYT1uZXcgUmVnRXhwKCJeKCIrVCsiKSg/IXB4KVthLXolXSskIiwiaSIpLFBhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz17fTtmb3IoZiBpbiBiKWdbZl09YS5zdHlsZVtmXSxhLnN0eWxlW2ZdPWJbZl07ZT1jLmFwcGx5KGEsZHx8W10pO2ZvcihmIGluIGIpYS5zdHlsZVtmXT1nW2ZdO3JldHVybiBlfSxRYT1kLmRvY3VtZW50RWxlbWVudDshZnVuY3Rpb24oKXt2YXIgYixjLGUsZixnLGgsaT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGo9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihqLnN0eWxlKXtqLnN0eWxlLmNzc1RleHQ9ImZsb2F0OmxlZnQ7b3BhY2l0eTouNSIsbC5vcGFjaXR5PSIwLjUiPT09ai5zdHlsZS5vcGFjaXR5LGwuY3NzRmxvYXQ9ISFqLnN0eWxlLmNzc0Zsb2F0LGouc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixqLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsbC5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWouc3R5bGUuYmFja2dyb3VuZENsaXAsaT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGkuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjA7d2lkdGg6OHB4O2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweDtwYWRkaW5nOjA7bWFyZ2luLXRvcDoxcHg7cG9zaXRpb246YWJzb2x1dGUiLGouaW5uZXJIVE1MPSIiLGkuYXBwZW5kQ2hpbGQoaiksbC5ib3hTaXppbmc9IiI9PT1qLnN0eWxlLmJveFNpemluZ3x8IiI9PT1qLnN0eWxlLk1vekJveFNpemluZ3x8IiI9PT1qLnN0eWxlLldlYmtpdEJveFNpemluZyxuLmV4dGVuZChsLHtyZWxpYWJsZUhpZGRlbk9mZnNldHM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09YiYmaygpLGZ9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxlfSxwaXhlbE1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxjfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxifSxyZWxpYWJsZU1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxnfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09YiYmaygpLGh9fSk7ZnVuY3Rpb24gaygpe3ZhciBrLGwsbT1kLmRvY3VtZW50RWxlbWVudDttLmFwcGVuZENoaWxkKGkpLGouc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt0b3A6MSU7d2lkdGg6NTAlIixiPWU9aD0hMSxjPWc9ITAsYS5nZXRDb21wdXRlZFN0eWxlJiYobD1hLmdldENvbXB1dGVkU3R5bGUoaiksYj0iMSUiIT09KGx8fHt9KS50b3AsaD0iMnB4Ij09PShsfHx7fSkubWFyZ2luTGVmdCxlPSI0cHgiPT09KGx8fHt3aWR0aDoiNHB4In0pLndpZHRoLGouc3R5bGUubWFyZ2luUmlnaHQ9IjUwJSIsYz0iNHB4Ij09PShsfHx7bWFyZ2luUmlnaHQ6IjRweCJ9KS5tYXJnaW5SaWdodCxrPWouYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSksay5zdHlsZS5jc3NUZXh0PWouc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowIixrLnN0eWxlLm1hcmdpblJpZ2h0PWsuc3R5bGUud2lkdGg9IjAiLGouc3R5bGUud2lkdGg9IjFweCIsZz0hcGFyc2VGbG9hdCgoYS5nZXRDb21wdXRlZFN0eWxlKGspfHx7fSkubWFyZ2luUmlnaHQpLGoucmVtb3ZlQ2hpbGQoaykpLGouc3R5bGUuZGlzcGxheT0ibm9uZSIsZj0wPT09ai5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCxmJiYoai5zdHlsZS5kaXNwbGF5PSIiLGouaW5uZXJIVE1MPSI8dGFibGU+PHRyPjx0ZD48L3RkPjx0ZD50PC90ZD48L3RyPjwvdGFibGU+IixqLmNoaWxkTm9kZXNbMF0uc3R5bGUuYm9yZGVyQ29sbGFwc2U9InNlcGFyYXRlIixrPWouZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIiksa1swXS5zdHlsZS5jc3NUZXh0PSJtYXJnaW46MDtib3JkZXI6MDtwYWRkaW5nOjA7ZGlzcGxheTpub25lIixmPTA9PT1rWzBdLm9mZnNldEhlaWdodCxmJiYoa1swXS5zdHlsZS5kaXNwbGF5PSIiLGtbMV0uc3R5bGUuZGlzcGxheT0ibm9uZSIsZj0wPT09a1swXS5vZmZzZXRIZWlnaHQpKSxtLnJlbW92ZUNoaWxkKGkpfX19KCk7dmFyIFJhLFNhLFRhPS9eKHRvcHxyaWdodHxib3R0b218bGVmdCkkLzthLmdldENvbXB1dGVkU3R5bGU/KFJhPWZ1bmN0aW9uKGIpe3ZhciBjPWIub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYyYmYy5vcGVuZXJ8fChjPWEpLGMuZ2V0Q29tcHV0ZWRTdHlsZShiKX0sU2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxSYShhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCwiIiE9PWcmJnZvaWQgMCE9PWd8fG4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHwoZz1uLnN0eWxlKGEsYikpLGMmJiFsLnBpeGVsTWFyZ2luUmlnaHQoKSYmT2EudGVzdChnKSYmTmEudGVzdChiKSYmKGQ9aC53aWR0aCxlPWgubWluV2lkdGgsZj1oLm1heFdpZHRoLGgubWluV2lkdGg9aC5tYXhXaWR0aD1oLndpZHRoPWcsZz1jLndpZHRoLGgud2lkdGg9ZCxoLm1pbldpZHRoPWUsaC5tYXhXaWR0aD1mKSx2b2lkIDA9PT1nP2c6ZysiIn0pOlFhLmN1cnJlbnRTdHlsZSYmKFJhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sU2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxSYShhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksT2EudGVzdChnKSYmIVRhLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBVYShhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpP3ZvaWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX12YXIgVmE9L2FscGhhXChbXildKlwpL2ksV2E9L29wYWNpdHlccyo9XHMqKFteKV0qKS9pLFhhPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxZYT1uZXcgUmVnRXhwKCJeKCIrVCsiKSguKikkIiwiaSIpLFphPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSwkYT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn0sX2E9WyJXZWJraXQiLCJPIiwiTW96IiwibXMiXSxhYj1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlO2Z1bmN0aW9uIGJiKGEpe2lmKGEgaW4gYWIpcmV0dXJuIGE7dmFyIGI9YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNsaWNlKDEpLGM9X2EubGVuZ3RoO3doaWxlKGMtLSlpZihhPV9hW2NdK2IsYSBpbiBhYilyZXR1cm4gYX1mdW5jdGlvbiBjYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1uLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVyhkKSYmKGZbZ109bi5fZGF0YShkLCJvbGRkaXNwbGF5IixNYShkLm5vZGVOYW1lKSkpKTooZT1XKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm4uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm4uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gZGIoYSxiLGMpe3ZhciBkPVlhLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gZWIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW4uY3NzKGEsYytWW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bi5jc3MoYSwicGFkZGluZyIrVltmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bi5jc3MoYSwiYm9yZGVyIitWW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bi5jc3MoYSwicGFkZGluZyIrVltmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bi5jc3MoYSwiYm9yZGVyIitWW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBmYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9UmEoYSksZz1sLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPVNhKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksT2EudGVzdChlKSlyZXR1cm4gZTtkPWcmJihsLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrZWIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW4uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9U2EoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjpsLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPWJiKGgpfHxoKSxnPW4uY3NzSG9va3NbYl18fG4uY3NzSG9va3NbaF0sdm9pZCAwPT09YylyZXR1cm4gZyYmImdldCJpbiBnJiZ2b2lkIDAhPT0oZT1nLmdldChhLCExLGQpKT9lOmlbYl07aWYoZj10eXBlb2YgYywic3RyaW5nIj09PWYmJihlPVUuZXhlYyhjKSkmJmVbMV0mJihjPVgoYSxiLGUpLGY9Im51bWJlciIpLG51bGwhPWMmJmM9PT1jJiYoIm51bWJlciI9PT1mJiYoYys9ZSYmZVszXXx8KG4uY3NzTnVtYmVyW2hdPyIiOiJweCIpKSxsLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bi5jYW1lbENhc2UoYik7cmV0dXJuIGI9bi5jc3NQcm9wc1toXXx8KG4uY3NzUHJvcHNbaF09YmIoaCl8fGgpLGc9bi5jc3NIb29rc1tiXXx8bi5jc3NIb29rc1toXSxnJiYiZ2V0ImluIGcmJihmPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPVNhKGEsYixkKSksIm5vcm1hbCI9PT1mJiZiIGluICRhJiYoZj0kYVtiXSksIiI9PT1jfHxjPyhlPXBhcnNlRmxvYXQoZiksYz09PSEwfHxpc0Zpbml0ZShlKT9lfHwwOmYpOmZ9fSksbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe24uY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGM/WGEudGVzdChuLmNzcyhhLCJkaXNwbGF5IikpJiYwPT09YS5vZmZzZXRXaWR0aD9QYShhLFphLGZ1bmN0aW9uKCl7cmV0dXJuIGZiKGEsYixkKX0pOmZiKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmUmEoYSk7cmV0dXJuIGRiKGEsYyxkP2ViKGEsYixkLGwuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1uLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxsLm9wYWNpdHl8fChuLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBXYS50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bi5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW4udHJpbShmLnJlcGxhY2UoVmEsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9VmEudGVzdChmKT9mLnJlcGxhY2UoVmEsZSk6ZisiICIrZSl9fSksbi5jc3NIb29rcy5tYXJnaW5SaWdodD1VYShsLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9QYShhLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxTYSxbYSwibWFyZ2luUmlnaHQiXSk6dm9pZCAwfSksbi5jc3NIb29rcy5tYXJnaW5MZWZ0PVVhKGwucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/KHBhcnNlRmxvYXQoU2EoYSwibWFyZ2luTGVmdCIpKXx8KG4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpP2EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1QYShhLHsNCm1hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSk6MCkpKyJweCI6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxOYS50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1kYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPVJhKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtXKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IGdiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1nYixnYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmdiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fG4uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobi5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPWdiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTpnYi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1nYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9bi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOmdiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGdiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1nYi5wcm90b3R5cGUsZ2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0/YS5lbGVtW2EucHJvcF06KGI9bi5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7bi5meC5zdGVwW2EucHJvcF0/bi5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW24uY3NzUHJvcHNbYS5wcm9wXV0mJiFuLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6bi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sZ2IucHJvcEhvb2tzLnNjcm9sbFRvcD1nYi5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxuLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LG4uZng9Z2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBoYixpYixqYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sa2I9L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBsYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoYj12b2lkIDB9KSxoYj1uLm5vdygpfWZ1bmN0aW9uIG1iKGEsYil7dmFyIGMsZD17aGVpZ2h0OmF9LGU9MDtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWM9VltlXSxkWyJtYXJnaW4iK2NdPWRbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihkLm9wYWNpdHk9ZC53aWR0aD1hKSxkfWZ1bmN0aW9uIG5iKGEsYixjKXtmb3IodmFyIGQsZT0ocWIudHdlZW5lcnNbYl18fFtdKS5jb25jYXQocWIudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7Zz5mO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gb2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbT10aGlzLG89e30scD1hLnN0eWxlLHE9YS5ub2RlVHlwZSYmVyhhKSxyPW4uX2RhdGEoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP24uX2RhdGEoYSwib2xkZGlzcGxheSIpfHxNYShhLm5vZGVOYW1lKTpqLCJpbmxpbmUiPT09ayYmIm5vbmUiPT09bi5jc3MoYSwiZmxvYXQiKSYmKGwuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1NYShhLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIixsLnNocmlua1dyYXBCbG9ja3MoKXx8bS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGpiLmV4ZWMoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8InRvZ2dsZSI9PT1lLGU9PT0ocT8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09ZXx8IXJ8fHZvaWQgMD09PXJbZF0pY29udGludWU7cT0hMH1vW2RdPXImJnJbZF18fG4uc3R5bGUoYSxkKX1lbHNlIGo9dm9pZCAwO2lmKG4uaXNFbXB0eU9iamVjdChvKSkiaW5saW5lIj09PSgibm9uZSI9PT1qP01hKGEubm9kZU5hbWUpOmopJiYocC5kaXNwbGF5PWopO2Vsc2V7cj8iaGlkZGVuImluIHImJihxPXIuaGlkZGVuKTpyPW4uX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHIuaGlkZGVuPSFxKSxxP24oYSkuc2hvdygpOm0uZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbS5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7bi5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3IoYiBpbiBvKW4uc3R5bGUoYSxiLG9bYl0pfSk7Zm9yKGQgaW4gbylnPW5iKHE/cltkXTowLGQsbSksZCBpbiByfHwocltkXT1nLnN0YXJ0LHEmJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1uLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLG4uaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9bi5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBxYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1xYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPW4uRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWhifHxsYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtpPmc7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksMT5mJiZpP2M6KGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpuLmV4dGVuZCh7fSxiKSxvcHRzOm4uZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpuLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmhifHxsYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihwYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtnPmY7ZisrKWlmKGQ9cWIucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIG4uaXNGdW5jdGlvbihkLnN0b3ApJiYobi5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPW4ucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBuLm1hcChrLG5iLGopLG4uaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLG4uZngudGltZXIobi5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9bi5BbmltYXRpb249bi5leHRlbmQocWIse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBYKGMuZWxlbSxhLFUuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtuLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goRyk7Zm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZDtkKyspYz1hW2RdLHFiLnR3ZWVuZXJzW2NdPXFiLnR3ZWVuZXJzW2NdfHxbXSxxYi50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltvYl0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9xYi5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6cWIucHJlZmlsdGVycy5wdXNoKGEpfX0pLG4uc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9uLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fG4uaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxiJiYhbi5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4gZC5kdXJhdGlvbj1uLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgZC5kdXJhdGlvbj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gbi5meC5zcGVlZHM/bi5meC5zcGVlZHNbZC5kdXJhdGlvbl06bi5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtuLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJm4uZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxuLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihXKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uLmlzRW1wdHlPYmplY3QoYSksZj1uLnNwZWVkKGIsYyxkKSxnPWZ1bmN0aW9uKCl7dmFyIGI9cWIodGhpcyxuLmV4dGVuZCh7fSxhKSxmKTsoZXx8bi5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPW4udGltZXJzLGc9bi5fZGF0YSh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZrYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxuLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1uLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobWIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOm1iKCJzaG93Iiksc2xpZGVVcDptYigiaGlkZSIpLHNsaWRlVG9nZ2xlOm1iKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW4udGltZXJzLGM9MDtmb3IoaGI9bi5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxuLmZ4LnN0b3AoKSxoYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpYnx8KGliPWEuc2V0SW50ZXJ2YWwobi5meC50aWNrLG4uZnguaW50ZXJ2YWwpKX0sbi5meC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGliKSxpYj1udWxsfSxuLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxuLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9bi5meD9uLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYSxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGY9ZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYy5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IiksYy5hcHBlbmRDaGlsZChiKSxhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxhLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGwuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWMuY2xhc3NOYW1lLGwuc3R5bGU9L3RvcC8udGVzdChhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksbC5ocmVmTm9ybWFsaXplZD0iL2EiPT09YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxsLmNoZWNrT249ISFiLnZhbHVlLGwub3B0U2VsZWN0ZWQ9Zi5zZWxlY3RlZCxsLmVuY3R5cGU9ISFkLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGUuZGlzYWJsZWQ9ITAsbC5vcHREaXNhYmxlZD0hZi5kaXNhYmxlZCxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxsLmlucHV0PSIiPT09Yi5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYi52YWx1ZT0idCIsYi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGwucmFkaW9WYWx1ZT0idCI9PT1iLnZhbHVlfSgpO3ZhciByYj0vXHIvZyxzYj0vW1x4MjBcdFxyXG5cZl0rL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKS5yZXBsYWNlKHNiLCIgIil9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxkPWEub3B0aW9ucyxlPWEuc2VsZWN0ZWRJbmRleCxmPSJzZWxlY3Qtb25lIj09PWEudHlwZXx8MD5lLGc9Zj9udWxsOltdLGg9Zj9lKzE6ZC5sZW5ndGgsaT0wPmU/aDpmP2U6MDtoPmk7aSsrKWlmKGM9ZFtpXSwoYy5zZWxlY3RlZHx8aT09PWUpJiYobC5vcHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpJiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IW4ubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoYj1uKGMpLnZhbCgpLGYpcmV0dXJuIGI7Zy5wdXNoKGIpfXJldHVybiBnfSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9bi5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0paWYoZD1lW2ddLG4uaW5BcnJheShuLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpdHJ5e2Quc2VsZWN0ZWQ9Yz0hMH1jYXRjaChoKXtkLnNjcm9sbEhlaWdodH1lbHNlIGQuc2VsZWN0ZWQ9ITE7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGV9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT4tMTp2b2lkIDB9fSxsLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIHRiLHViLHZiPW4uZXhwci5hdHRySGFuZGxlLHdiPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2kseGI9bC5nZXRTZXRBdHRyaWJ1dGUseWI9bC5pbnB1dDtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBZKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZigzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/bi5wcm9wKGEsYixjKTooMT09PWYmJm4uaXNYTUxEb2MoYSl8fChiPWIudG9Mb3dlckNhc2UoKSxlPW4uYXR0ckhvb2tzW2JdfHwobi5leHByLm1hdGNoLmJvb2wudGVzdChiKT91Yjp0YikpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBuLnJlbW92ZUF0dHIoYSxiKTplJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPW4uZmluZC5hdHRyKGEsYiksbnVsbD09ZD92b2lkIDA6ZCkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFsLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZuLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEcpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/eWImJnhifHwhd2IudGVzdChjKT9hW2RdPSExOmFbbi5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtkXT0hMTpuLmF0dHIoYSxjLCIiKSxhLnJlbW92ZUF0dHJpYnV0ZSh4Yj9jOmQpfX0pLHViPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/bi5yZW1vdmVBdHRyKGEsYyk6eWImJnhifHwhd2IudGVzdChjKT9hLnNldEF0dHJpYnV0ZSgheGImJm4ucHJvcEZpeFtjXXx8YyxjKTphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbY109ITAsY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPXZiW2JdfHxuLmZpbmQuYXR0cjt5YiYmeGJ8fCF3Yi50ZXN0KGIpP3ZiW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj12YltiXSx2YltiXT1lLGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsdmJbYl09ZiksZX06dmJbYl09ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYildP2IudG9Mb3dlckNhc2UoKTpudWxsfX0pLHliJiZ4Ynx8KG4uYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLm5vZGVOYW1lKGEsImlucHV0Iik/dm9pZChhLmRlZmF1bHRWYWx1ZT1iKTp0YiYmdGIuc2V0KGEsYixjKX19KSx4Ynx8KHRiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gZHx8YS5zZXRBdHRyaWJ1dGVOb2RlKGQ9YS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShjKSksZC52YWx1ZT1iKz0iIiwidmFsdWUiPT09Y3x8Yj09PWEuZ2V0QXR0cmlidXRlKGMpP2I6dm9pZCAwfX0sdmIuaWQ9dmIubmFtZT12Yi5jb29yZHM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiYiIiE9PWQudmFsdWU/ZC52YWx1ZTpudWxsfSxuLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlOnZvaWQgMH0sc2V0OnRiLnNldH0sbi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3RiLnNldChhLCIiPT09Yj8hMTpiLGMpfX0sbi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe24uYXR0ckhvb2tzW2JdPXtzZXQ6ZnVuY3Rpb24oYSxjKXtyZXR1cm4iIj09PWM/KGEuc2V0QXR0cmlidXRlKGIsImF1dG8iKSxjKTp2b2lkIDB9fX0pKSxsLnN0eWxlfHwobi5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fHx2b2lkIDB9LHNldDpmdW5jdGlvbihhLGIpe3JldHVybiBhLnN0eWxlLmNzc1RleHQ9YisiIn19KTt2YXIgemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksQWI9L14oPzphfGFyZWEpJC9pO24uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxuLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bi5wcm9wRml4W2FdfHxhLHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPXZvaWQgMCxkZWxldGUgdGhpc1thXX1jYXRjaChiKXt9fSl9fSksbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bi5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp6Yi50ZXN0KGEubm9kZU5hbWUpfHxBYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsLmhyZWZOb3JtYWxpemVkfHxuLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXtuLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxsLm9wdFNlbGVjdGVkfHwobi5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGwuZW5jdHlwZXx8KG4ucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpO3ZhciBCYj0vW1x0XHJcblxmXS9nO2Z1bmN0aW9uIENiKGEpe3JldHVybiBuLmF0dHIoYSwiY2xhc3MiKXx8IiJ9bi5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsQ2IodGhpcykpKX0pO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKWQuaW5kZXhPZigiICIrZisiICIpPDAmJihkKz1mKyIgIik7aD1uLnRyaW0oZCksZSE9PWgmJm4uYXR0cihjLCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLENiKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKXdoaWxlKGQuaW5kZXhPZigiICIrZisiICIpPi0xKWQ9ZC5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9bi50cmltKGQpLGUhPT1oJiZuLmF0dHIoYywiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6bi5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtuKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsQ2IodGhpcyksYiksYil9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMpe2Q9MCxlPW4odGhpcyksZj1hLm1hdGNoKEcpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWN8fChiPUNiKHRoaXMpLGImJm4uX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsYiksbi5hdHRyKHRoaXMsImNsYXNzIixifHxhPT09ITE/IiI6bi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09PWMubm9kZVR5cGUmJigiICIrQ2IoYykrIiAiKS5yZXBsYWNlKEJiLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KSxuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGIsbnVsbCxhLGMpOnRoaXMudHJpZ2dlcihiKX19KSxuLmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIERiPWEubG9jYXRpb24sRWI9bi5ub3coKSxGYj0vXD8vLEdiPS8oLCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEtRl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/OltlRV1bKy1dP1xkK3wpL2c7bi5wYXJzZUpTT049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKyIiKTt2YXIgYyxkPW51bGwsZT1uLnRyaW0oYisiIik7cmV0dXJuIGUmJiFuLnRyaW0oZS5yZXBsYWNlKEdiLGZ1bmN0aW9uKGEsYixlLGYpe3JldHVybiBjJiZiJiYoZD0wKSwwPT09ZD9hOihjPWV8fGIsZCs9IWYtIWUsIiIpfSkpP0Z1bmN0aW9uKCJyZXR1cm4gIitlKSgpOm4uZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0sbi5wYXJzZVhNTD1mdW5jdGlvbihiKXt2YXIgYyxkO2lmKCFifHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2EuRE9NUGFyc2VyPyhkPW5ldyBhLkRPTVBhcnNlcixjPWQucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIikpOihjPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIEhiPS8jLiokLyxJYj0vKFs/Jl0pXz1bXiZdKi8sSmI9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxLYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxMYj0vXig/OkdFVHxIRUFEKSQvLE1iPS9eXC9cLy8sTmI9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sT2I9e30sUGI9e30sUWI9IiovIi5jb25jYXQoIioiKSxSYj1EYi5ocmVmLFNiPU5iLmV4ZWMoUmIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIFRiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEcpfHxbXTtpZihuLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gVWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09UGI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxuLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBWYihhLGIpe3ZhciBjLGQsZT1uLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZuLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1uLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6UmIsdHlwZToiR0VUIixpc0xvY2FsOktiLnRlc3QoU2JbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6UWIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9WYihWYihhLG4uYWpheFNldHRpbmdzKSxiKTpWYihuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpUYihPYiksYWpheFRyYW5zcG9ydDpUYihQYiksYWpheDpmdW5jdGlvbihiLGMpeyJvYmplY3QiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9bi5hamF4U2V0dXAoe30sYyksbT1sLmNvbnRleHR8fGwsbz1sLmNvbnRleHQmJihtLm5vZGVUeXBlfHxtLmpxdWVyeSk/bihtKTpuLmV2ZW50LHA9bi5EZWZlcnJlZCgpLHE9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iikscj1sLnN0YXR1c0NvZGV8fHt9LHM9e30sdD17fSx1PTAsdj0iY2FuY2VsZWQiLHc9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dSl7aWYoIWspe2s9e307d2hpbGUoYj1KYi5leGVjKGcpKWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9a1thLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT11P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdXx8KGE9dFtjXT10W2NdfHxhLHNbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdXx8KGwubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dSlmb3IoYiBpbiBhKXJbYl09W3JbYl0sYVtiXV07ZWxzZSB3LmFsd2F5cyhhW3cuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHY7cmV0dXJuIGomJmouYWJvcnQoYikseSgwLGIpLHRoaXN9fTtpZihwLnByb21pc2UodykuY29tcGxldGU9cS5hZGQsdy5zdWNjZXNzPXcuZG9uZSx3LmVycm9yPXcuZmFpbCxsLnVybD0oKGJ8fGwudXJsfHxSYikrIiIpLnJlcGxhY2UoSGIsIiIpLnJlcGxhY2UoTWIsU2JbMV0rIi8vIiksbC50eXBlPWMubWV0aG9kfHxjLnR5cGV8fGwubWV0aG9kfHxsLnR5cGUsbC5kYXRhVHlwZXM9bi50cmltKGwuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChHKXx8WyIiXSxudWxsPT1sLmNyb3NzRG9tYWluJiYoZD1OYi5leGVjKGwudXJsLnRvTG93ZXJDYXNlKCkpLGwuY3Jvc3NEb21haW49ISghZHx8ZFsxXT09PVNiWzFdJiZkWzJdPT09U2JbMl0mJihkWzNdfHwoImh0dHA6Ij09PWRbMV0/IjgwIjoiNDQzIikpPT09KFNiWzNdfHwoImh0dHA6Ij09PVNiWzFdPyI4MCI6IjQ0MyIpKSkpLGwuZGF0YSYmbC5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBsLmRhdGEmJihsLmRhdGE9bi5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLFViKE9iLGwsYyx3KSwyPT09dSlyZXR1cm4gdztpPW4uZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGwudHlwZT1sLnR5cGUudG9VcHBlckNhc2UoKSxsLmhhc0NvbnRlbnQ9IUxiLnRlc3QobC50eXBlKSxmPWwudXJsLGwuaGFzQ29udGVudHx8KGwuZGF0YSYmKGY9bC51cmwrPShGYi50ZXN0KGYpPyImIjoiPyIpK2wuZGF0YSxkZWxldGUgbC5kYXRhKSxsLmNhY2hlPT09ITEmJihsLnVybD1JYi50ZXN0KGYpP2YucmVwbGFjZShJYiwiJDFfPSIrRWIrKyk6ZisoRmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0ViKyspKSxsLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZl0pLG4uZXRhZ1tmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVudFR5cGUhPT0hMXx8Yy5jb250ZW50VHlwZSkmJncuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixsLmNvbnRlbnRUeXBlKSx3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlwZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBdXSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitRYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNbIioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXcuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tlXSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx3LGwpPT09ITF8fDI9PT11KSlyZXR1cm4gdy5hYm9ydCgpO3Y9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl3W2VdKGxbZV0pO2lmKGo9VWIoUGIsbCxjLHcpKXtpZih3LnJlYWR5U3RhdGU9MSxpJiZvLnRyaWdnZXIoImFqYXhTZW5kIixbdyxsXSksMj09PXUpcmV0dXJuIHc7bC5hc3luYyYmbC50aW1lb3V0PjAmJihoPWEuc2V0VGltZW91dChmdW5jdGlvbigpe3cuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3U9MSxqLnNlbmQocyx5KX1jYXRjaCh4KXtpZighKDI+dSkpdGhyb3cgeDt5KC0xLHgpfX1lbHNlIHkoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHkoYixjLGQsZSl7dmFyIGsscyx0LHYseCx5PWM7MiE9PXUmJih1PTIsaCYmYS5jbGVhclRpbWVvdXQoaCksaj12b2lkIDAsZz1lfHwiIix3LnJlYWR5U3RhdGU9Yj4wPzQ6MCxrPWI+PTIwMCYmMzAwPmJ8fDMwND09PWIsZCYmKHY9V2IobCx3LGQpKSx2PVhiKGwsdix3LGspLGs/KGwuaWZNb2RpZmllZCYmKHg9dy5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHgmJihuLmxhc3RNb2RpZmllZFtmXT14KSx4PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx4JiYobi5ldGFnW2ZdPXgpKSwyMDQ9PT1ifHwiSEVBRCI9PT1sLnR5cGU/eT0ibm9jb250ZW50IjozMDQ9PT1iP3k9Im5vdG1vZGlmaWVkIjooeT12LnN0YXRlLHM9di5kYXRhLHQ9di5lcnJvcixrPSF0KSk6KHQ9eSwhYiYmeXx8KHk9ImVycm9yIiwwPmImJihiPTApKSksdy5zdGF0dXM9Yix3LnN0YXR1c1RleHQ9KGN8fHkpKyIiLGs/cC5yZXNvbHZlV2l0aChtLFtzLHksd10pOnAucmVqZWN0V2l0aChtLFt3LHksdF0pLHcuc3RhdHVzQ29kZShyKSxyPXZvaWQgMCxpJiZvLnRyaWdnZXIoaz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt3LGwsaz9zOnRdKSxxLmZpcmVXaXRoKG0sW3cseV0pLGkmJihvLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3csbF0pLC0tbi5hY3RpdmV8fG4uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB3fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG4uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG4uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe25bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG4uYWpheChuLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sbi5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksbi5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gbi5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxuLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmMT09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPW4odGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9bi5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7bih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe24ubm9kZU5hbWUodGhpcywiYm9keSIpfHxuKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX19KTtmdW5jdGlvbiBZYihhKXtyZXR1cm4gYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxuLmNzcyhhLCJkaXNwbGF5Iil9ZnVuY3Rpb24gWmIoYSl7aWYoIW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50fHxkLGEpKXJldHVybiEwO3doaWxlKGEmJjE9PT1hLm5vZGVUeXBlKXtpZigibm9uZSI9PT1ZYihhKXx8ImhpZGRlbiI9PT1hLnR5cGUpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9bi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBsLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpP2Eub2Zmc2V0V2lkdGg8PTAmJmEub2Zmc2V0SGVpZ2h0PD0wJiYhYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDpaYihhKX0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgJGI9LyUyMC9nLF9iPS9cW1xdJC8sYWM9L1xyP1xuL2csYmM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGNjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBkYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxfYi50ZXN0KGEpP2QoYSxlKTpkYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpZGMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlkYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSgkYiwiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmY2MudGVzdCh0aGlzLm5vZGVOYW1lKSYmIWJjLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFaLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYWMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGFjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPXZvaWQgMCE9PWEuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTG9jYWw/aWMoKTpkLmRvY3VtZW50TW9kZT44P2hjKCk6L14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmaGMoKXx8aWMoKX06aGM7dmFyIGVjPTAsZmM9e30sZ2M9bi5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIGZjKWZjW2FdKHZvaWQgMCwhMCl9KSxsLmNvcnM9ISFnYyYmIndpdGhDcmVkZW50aWFscyJpbiBnYyxnYz1sLmFqYXg9ISFnYyxnYyYmbi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGIpe2lmKCFiLmNyb3NzRG9tYWlufHxsLmNvcnMpe3ZhciBjO3JldHVybntzZW5kOmZ1bmN0aW9uKGQsZSl7dmFyIGYsZz1iLnhocigpLGg9KytlYztpZihnLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZiBpbiBiLnhockZpZWxkcylnW2ZdPWIueGhyRmllbGRzW2ZdO2IubWltZVR5cGUmJmcub3ZlcnJpZGVNaW1lVHlwZSYmZy5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGRbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGRbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZiBpbiBkKXZvaWQgMCE9PWRbZl0mJmcuc2V0UmVxdWVzdEhlYWRlcihmLGRbZl0rIiIpO2cuc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCksYz1mdW5jdGlvbihhLGQpe3ZhciBmLGksajtpZihjJiYoZHx8ND09PWcucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIGZjW2hdLGM9dm9pZCAwLGcub25yZWFkeXN0YXRlY2hhbmdlPW4ubm9vcCxkKTQhPT1nLnJlYWR5U3RhdGUmJmcuYWJvcnQoKTtlbHNle2o9e30sZj1nLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGcucmVzcG9uc2VUZXh0JiYoai50ZXh0PWcucmVzcG9uc2VUZXh0KTt0cnl7aT1nLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1mfHwhYi5pc0xvY2FsfHxiLmNyb3NzRG9tYWluPzEyMjM9PT1mJiYoZj0yMDQpOmY9ai50ZXh0PzIwMDo0MDR9aiYmZShmLGksaixnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYi5hc3luYz80PT09Zy5yZWFkeVN0YXRlP2Euc2V0VGltZW91dChjKTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mY1toXT1jOmMoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKHZvaWQgMCwhMCl9fX19KTtmdW5jdGlvbiBoYygpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYygpe3RyeXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChiKXt9fW4uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBuLmdsb2JhbEV2YWwoYSksYX19fSksbi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG4uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPWQuaGVhZHx8bigiaGVhZCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe2I9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxmKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgamM9W10sa2M9Lyg9KVw/KD89JnwkKXxcP1w/LztuLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9amMucG9wKCl8fG4uZXhwYW5kbysiXyIrRWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG4uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGtjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYma2MudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW4uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGtjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPShGYi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bi5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP24oYSkucmVtb3ZlUHJvcChlKTphW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssamMucHVzaChlKSksZyYmbi5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbi5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fGQ7dmFyIGU9eC5leGVjKGEpLGY9IWMmJltdO3JldHVybiBlP1tiLmNyZWF0ZUVsZW1lbnQoZVsxXSldOihlPWphKFthXSxiLGYpLGYmJmYubGVuZ3RoJiZuKGYpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9O3ZhciBsYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmxjKXJldHVybiBsYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPi0xJiYoZD1uLnRyaW0oYS5zbGljZShoLGEubGVuZ3RoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP24oIjxkaXY+IikuYXBwZW5kKG4ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sbi5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksbi5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ3JlcChuLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH07ZnVuY3Rpb24gbWMoYSl7cmV0dXJuIG4uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1uLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW4uY3NzKGEsInBvc2l0aW9uIiksbD1uKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1uLmNzcyhhLCJ0b3AiKSxpPW4uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZuLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLG4uZXh0ZW5kKHt9LGgpKSksbnVsbCE9Yi50b3AmJihtLnRvcD1iLnRvcC1oLnRvcCtnKSxudWxsIT1iLmxlZnQmJihtLmxlZnQ9Yi5sZWZ0LWgubGVmdCtlKSwidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxtKTpsLmNzcyhtKX19LG4uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtuLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3duZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LG4uY29udGFpbnMoYixlKT8oInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYz1tYyhmKSx7dG9wOmQudG9wKyhjLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoYy5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX0pOmR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXt0b3A6MCxsZWZ0OjB9LGQ9dGhpc1swXTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChjPWEub2Zmc2V0KCkpLGMudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3Atbi5jc3MoZCwibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtYy5sZWZ0LW4uY3NzKGQsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYhbi5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bi5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxRYX0pfX0pLG4uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO24uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9bWMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bihmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bihmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bi5jc3NIb29rc1tiXT1VYShsLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1TYShhLGIpLE9hLnRlc3QoYyk/bihhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxuLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe24uZWFjaCh7DQpwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGQpe24uZm5bZF09ZnVuY3Rpb24oZCxlKXt2YXIgZj1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZCksZz1jfHwoZD09PSEwfHxlPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oYixjLGQpe3ZhciBlO3JldHVybiBuLmlzV2luZG93KGIpP2IuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1iLm5vZGVUeXBlPyhlPWIuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGIuYm9keVsic2Nyb2xsIithXSxlWyJzY3JvbGwiK2FdLGIuYm9keVsib2Zmc2V0IithXSxlWyJvZmZzZXQiK2FdLGVbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1kP24uY3NzKGIsYyxnKTpuLnN0eWxlKGIsYyxkLGcpfSxiLGY/ZDp2b2lkIDAsZixudWxsKX19KX0pLG4uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX19KSxuLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG4uZm4uYW5kU2VsZj1uLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG59KTt2YXIgbmM9YS5qUXVlcnksb2M9YS4kO3JldHVybiBuLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW4mJihhLiQ9b2MpLGImJmEualF1ZXJ5PT09biYmKGEualF1ZXJ5PW5jKSxufSxifHwoYS5qUXVlcnk9YS4kPW4pLG59KTsNCg=="}},"time_used":39,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":33,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/features/5a42693d53255.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.878Z","timestamp":1785126645878,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/features/5a42693d53255.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 25221\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":25221,"size_decoded":25466,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"be1ccd79a46f8a7767a6f6476fe1207c","sha1":"34c31da1e171950bc41470bd4522543d2356d2c8","sha256":"de0030bfa776359b0ae4bd5a6572bd53b180f474422c6f8845d5c5e30b8cf29b","sha512":"17d1b149576bc2b031442b2980731d2dbea9a7fe9b0e1bb51483bed2274fd133e6383641a4960b0357d33ffbc167a27af7d46bd3aa02dc72df8dd1f921bcc156","ssdeep":"384:rf64nSVKGpIA7AifU+1qVhFGaRJTqN26tB0X:j64nSVTv/qVhokTqNXBK","tlshash":"c4b28d19f4e1b2546aad91312ccb65089c3746832ad68f0678cdcc99bf71bc69e1f8c3","first_seen":"2025-03-17T20:39:33.083263Z","last_seen":"2026-07-27T04:32:40.41564Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjA3KzA2OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTItMjZUMjE6MjE6MzErMDY6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjMxKzA2OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjUxZmJkZTdjLTAxNzAtMWY0OS1hNWQwLTc3M2Y2MDZhYWY3NjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QTI4Mzc0MUQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDo1QTI4MzczRUQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDo1QTI4MzczRkQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjVBMjgzNzQxRDRGQzExRTdBOTc0ODdCQzQ4RUIzMUQ2PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1MWZiZGU3Yy0wMTcwLTFmNDktYTVkMC03NzNmNjA2YWFmNzY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjZUMjE6MjE6MzErMDY6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+5fsF5QAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAoX0lEQVR42uzdaXRU553n8d+9JSEJtKB9R+ybDQLEZuO9A8bGIabt2InjbseZTG9zpvt0+pw582Jmzmwv+sWMkz7JdE/mOO2O49gxgSbGBhMJYzCrhCRUIFYhtG+lpbSjpereeaFgg1UCCVRQy/dzchLHgir43+e5v+d57r3PNWzbFgAAU2VSAgAAAQIAIEAAAAQIAIAAAQCAAAEAECAAAAIEAECAAAAIEAAACBAAAAECACBAAAAECACAAAEAgAABABAgAAACBABAgAAACBAAAAgQAAABAgAgQAAABAgAgAABAIAAAQAQIAAAAgQAQIAAAAgQAAAIEAAAAQIAIEAAAAQIAIAAAQBgqiIC7Q+UX/Yjjgr8rWPsfwzDkIwb/yxJsm/8/wkYssf+wbZv/Ct77D/22D8qlfLCX5wFbxEggJ/YU/3l9td/q3Hf/gwGhwvMQICADomg+3sQLCBAAMKCYAEBAhAWgVcfAgUECDghgkABAQIQGgQKCBCAwAih2hMmIEBAaIAwAQECQgOECQgQcDICYQICBCA0wv24EiQgQEBwgFkJCBAQGmBWAgIEBAeYlYAA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"}},"time_used":967,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":964,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/ss/k=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/br=1/rs=AGKMywGx4txhFJhcrutKYsfPmS4mFc6oJQ/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.436Z","timestamp":1785126646436,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/ss/k=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/br=1/rs=AGKMywGx4txhFJhcrutKYsfPmS4mFc6oJQ/m=root,base HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 0\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 13:04:24 GMT\r\nexpires: Sat, 24 Jul 2027 13:04:24 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 05:09:16 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nage: 228382\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":857,"mime_type":"text/css; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/32196.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.641Z","timestamp":1785126646641,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/32196.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1131\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Sun, 26 Jul 2026 05:45:46 GMT\r\nlast-modified: Fri, 12 Jul 2024 09:20:18 GMT\r\netag: \"4d5fec04d4a1bc91ff0237e3cd86559f\"\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nage: 81901\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nvary: Origin\r\nx-amz-cf-id: NQlvvy7p5NsZ-_fvxnr8JL4mSNNlUi7d47iu1cJ0OGreGxnubrqMKQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":1131,"size_decoded":1648,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"4d5fec04d4a1bc91ff0237e3cd86559f","sha1":"f348dc97c0843bbe323c1ab1051a70431ab2889b","sha256":"58ee891d33bb2f515cd133e01f8f17636037693798a453484fe8178a5e17f8ce","sha512":"73dbfc6181daf57a1e09c3174cc825fc3067d2076d8b8ba96f3728e1038355fc3ed5bc8b31e0b0ed7a720d24f178e4a3db1bb319c9a961ccdcdf7e4fdc076d2f","ssdeep":"","tlshash":"f921f9c20bb4c834ceacb5a76409f40ec5307c4adc4ce0421d15c989ba05f60aa34dd6","first_seen":"2025-05-17T13:51:35.295628Z","last_seen":"2026-07-27T08:07:37.438997Z","times_seen":1207,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEMklEQVR4Xu2bv2/TQBTHu0FTmnjtBIIBCqR1k4YmRRWFAcYOLAxIVVc6dKhE/wDo2oqJoQhGBrrBwtQNBip1ZS1iJv8AUsi75qLL9872u7Njn0We9JGqxu/H9519ti+XqakcbObe0mKt0+jWOs0ej0aXfDBOqazWbp6gsEr9Vu/SzRux0DHo1+cM43tp1ZVwRy0cxbmixpxth5uYt3C70ll6MBzlu8mj7EplYX7YiMurS1exjkIs69HmIvNiPblZUcKR3BsRrIeBuBZbi1oxRUG1UE1UG9abqVXbjQ/iOl+8rRVRNDP9mqi26krjEOvOxOR9HBP7xuCS6GL9qcyX651LpvNCWUYeyeRMqHYah2UULxFzQn/eQl0sk7M9Bi0bzncHX2d7W+TdAfXFGjn4dJ9Pi3xOQJ2R5tupf+f5097bv79HwGOSYDfAN/H75z808a6NSGxC0A6v+dSAJPGS6xtPNF8TpI3eXFH30HwSv/XpSBMaR7DMm7MizwJaaPCpASiQA8YwIZ4NVpo7qP/itrcwrzkUAQqzAWMhcskN9Vuf/s/eH/Z2v30WMzR+lhYUZQPGMqE1oP+PM24DoiYm7jWYxNrLbS22LRgTIa20aKs2QDvIBCZCDv781HxswZguYEwTI2cBpwFzD+9riUzQ7I2+XDCWK1QrxkaGDQhWw5DTAEwSh+vlgHHSgLER0hy0wpBGn/W+jwmSQP8k0D8tGB8R8wCtF9Af0wnf2NCMjwk4YJwo0C8LMAdC31+Iy2Aco69CszrGyyp2HJjHRC4NUFnb2xZE3UqzBDWYyL0BeYIaTEwaMGnApAGTBuTagMev98RdYPf7F+2zrEENJoYNSHoQevH1o5bABoyngsdmBeZB1AehsTwKc4qQ7J+far5pwRwIaSbtY3kZIg66dq/G6J8GutQwPkKaxcsQ93UYkySB/hwwhisY14Q4/W3WAwhMFAX62YCxXMCYJkYbMNjThwchmMgE+tji+uYpmXvEWwyp4d5DTgMITKiy8eaVdrwLGNcGjGViZPTVBkwz9/hhUmLr2H0pDKHVZozPgTP6lfrFXkPUP0VfFnDPAoKS7f86FeBnWYDiOGAME6Rxtt3cRP3CbBqQBygwDvSNwjj60uSWV3QqEhRqAn2iIG2JW2x9awCBgiX0ToHHxhE7+qr52ASCnvC2jt+x1v0RtngyMVE4ru37CGmxagAZOVQWyr9JijZ6WYsn+++3yZHJzdEYtCxQ7bTZE3VZWY25XuAbVDPVjnqcbBBMS+Irsl7UkcrKciZkOvJocvO0j3cHOds7b47m2vAnMx49J8j7vPNs72K+zAtjud5trKhGFC5cNbnFVswP9fHtNZRr+eJ0by+vYx2FGy00yAKzPCvUmMZdnj5abfVi76EK52e16igrnGD8UlnQatGXLxY/n292yQfjjMP+AfgdCCcpRgjcAAAAAElFTkSuQmCC"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1437.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.667Z","timestamp":1785126646667,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1437.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2424\r\nage: 84314\r\nlast-modified: Tue, 19 Oct 2021 05:33:41 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 05:05:52 GMT\r\ncache-control: max-age=86400\r\netag: \"2f7f439543524c24f6631dc79fff2534\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: NxareujirJP0d-3aNQXwe6V7LcRyFpoJxI2U4S6qMWpVhB_h7SIPAg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":2424,"size_decoded":2950,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"2f7f439543524c24f6631dc79fff2534","sha1":"fe636b1346a355d4d2a860eab78ed63151a1d105","sha256":"047acc3f1c7ca410bb750b6c23980bc8f9d827c50ff7903d6fbfe2a8828cdccb","sha512":"39928410f8a01eb59e165fdffebe13aa0f451ad6a5e4058e4e93782470b1a34b95badd6e1ec467f9cf6bb4d4138e086b9b80569b0c7ce6d528b6c068eb434996","ssdeep":"","tlshash":"8b410af2968c157ee44825b969f2fd33f9f2a5e444c4e4431b4bc19a228d10d3e3e86c","first_seen":"2023-05-25T22:55:54Z","last_seen":"2026-07-27T08:07:37.423339Z","times_seen":1251,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAADAFBMVEVHcEz/AAD/vz9/dgDrsUTrskPrsUP//wD6qlHrsUTrskTrskPssUTqsUPqsUT//0frsUS/vz/ts0T/f1vsskTrskPus0TssUPqsET////tskTwtkTytkXrskPxtkXlrUTor0P0uEbsskTwtEXqsUPMmTPvtEbqsETrskTus0TssUPrsUPvtEUAAAD//1XytkXvtETus0XxtkXsskLutEW/fz/rsUTssUPtskTtskTrskPsskTstETsskTxtkXorkLsskTss0Pus0TrsETpsUPpsEPrskPss0PytkXytkXpr0LrsEPrskPlrT/qsUTmtkjzuUXwtUXrsETvtETts0TwtETxtkX0tD/ss0Tssj/wtUTxtkXrskPrsUPss0PrskPssEPtskTtsUPts0PrsUPwtkbpr0LytkXxtUXus0XxtkTxtkXtskPrsUPrsUTtskXsskT////ss0fsskX//v3///7//vzss0brrTnyyXzrrTj9v0n1uUfrrTfsskPssUD2ukftuFP4u0j/wEnssUHts0TssULvtEXrrz3ssD/00pHwtUXtt1DxtUXrrDb9+fD+v0nzt0b7vUj8v0n22qXrrjv8vknss0XssUP//fv//frstEn+wEn9+O7ttUzvv2P9+e////3++vLrrjnqqjDrrz7rsD7rsEDxxG/rrzvyyn/1uEb1uUb2uUfus0X4u0futEX7vkn8vkjts0fstEj//v7//vvvvmD++vHuuVTttEr99+301JfvvV711ZrssEDvwGbrrjr++/byyXv4vEj88+LrrTb22aL34LT99efvwGfvwWjuvFvtuFL78Nvz0Y767NL77tb00pP669D9vkn00ZDzzILzzIPww23uuFPyt0bxxnX01Jb55sP88d/5vEj++/XxyHr44rjstEf8v0j22qb23Kr00I734LL01ZntskTz0Izxx3jzzYfwwmruulf115zzzof558X45b/89OTqqC3ttk333q7+/Pf66svqqCz44rrwwWn+/fr99unxxHHFBZVYAAAAcHRSTlMAAQQC+/39AQP+/vz3/P4C+gTtAv0ojur7Afr89Gv+GRb+d3fYBUE/ul34kG0BA/WnrecqjwSO6tX31s4pqMIu+2KN+5Bhx6m//WBixCyH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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/35491.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.828Z","timestamp":1785126646828,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/35491.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 332\r\nage: 13478\r\nlast-modified: Wed, 30 Jul 2025 12:26:41 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:58:21 GMT\r\ncache-control: public, max-age=86400\r\netag: \"cc548cb26fde330895dba23ae4af6f04\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: EHNCWYROiiYBGXXHucNNAk2SfKsenEHsiLfpjZiFkwbjX4OBoaOytw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":332,"size_decoded":903,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"cc548cb26fde330895dba23ae4af6f04","sha1":"3dfabad6a0e3c3c940c77525d8214c2d18f413c0","sha256":"0a345379ac9b1705adaa73b601e126fc6ddaf9c6280b01458926ebc31b886772","sha512":"adc1c3866158c64aa3fcf20b473e44c2790fdfa62a031a17585d10c99998dc71dd5cf4b9409d9b7dddd616f82de3aab85bcd7ff62bea5dbd4877bfe12220c0b7","ssdeep":"","tlshash":"a9e078dfd7a857ed513916751de8fd204e7b00755100d5c809ed7570445f5453a52531","first_seen":"2025-08-09T19:29:39.154535Z","last_seen":"2026-07-27T08:07:37.456441Z","times_seen":1041,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABE0lEQVR4Xu2QwY3CMBQFaYQ6aIvzNkMhlEBDSHtYxCWKhpisHSOSvBnpXZ6/5e85/IVzYJGGAlikoQAWaSiARRoKYJGGAlikoQAWaSiARRrdBJyO55eU4FzLfC8UwKIVLvhuSc61zPdikQAu9czt+juEZ1NpnR93S1AAixq43HhBLllK6/y4W0K1AC7ExS4/9yGlz4371vnSbC0KYDEHP84lWz9UO1+areWjAkqf49lU5uYVoICNCegdBWxZAO9OhXcYBShgJwJ49t8oQAE7EVAK7zAKUMCGBfSIAhSwUgHfiAIUsAIBa0ktCmAxBx9cW2qpFrA3FMAiDQWwSEMBLNJQAIs0FMAiDQWwSEMBLNKIF/AAZC46QvDJoXEAAAAASUVORK5CYII="}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/13502.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.865Z","timestamp":1785126646865,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/13502.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 847\r\nage: 1265\r\nlast-modified: Mon, 24 Jul 2023 06:55:18 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 04:09:54 GMT\r\netag: \"0c8f6da4c5d03b754a4df9ebea16f241\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: wyX1H5lqW41x6UA6nRX2w0dfXFlh4d3wtb8IGIlygFTmY-NGymrRHA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":847,"size_decoded":1379,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"0c8f6da4c5d03b754a4df9ebea16f241","sha1":"a2c42f2f1e6e5a38f636ea4760069a0fab9bcb49","sha256":"9688dadf1285bb7105ace26c57f29a17b5c95f3fa993efd9c303809f7435e631","sha512":"df1fba179044b01e8c56a3b117cee577072dadfdd2c89a9efa25c5ee9d39dc42b0fffbccfd3704cbae11461ed7c23178e8ee27b0781f975bc7f6c1503d020ae8","ssdeep":"","tlshash":"5a01d675ad492970991ada2f098702fecb73027e138880347e33b5c0bd7c0a23873883","first_seen":"2023-11-19T03:02:16Z","last_seen":"2026-07-27T08:07:37.39101Z","times_seen":975,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADFklEQVR4XuWYbXXkMAxFH4RCCIRCMISFEAgLYSEUQiAUwkJYCIZQBt2qZ5xxnxJbnsQfc3LPuX8cSZYTZ5IJ0IaXL5cvP41K7NPzDr2wR5VaT4FcaW7+bGWO4XDQjdbWYQA8dGOt9ehAi61e6oRG/IOe3KLkOeRxODZHVRboSVPOknSQGbpuykWSavABPdmeteB59pReT8W6eHeLr4mDnnfL006CZfE+BDfEQ/fBHj4JC3RR9jUEd0Dm5n7YJQSXkvslPnx2TyS3S4ufDhN0kUMFG5C7YC/30DycHHv0yr9B12ylCQ+dWFyEmKDr9NDDACfFFm0jjPnKnMRBJwT9GmUj98PUS4cEHBxbAueO5iap7Trdw7Jw7ohu3socFGuF8/b8HRIqw/PGKjhgN3AHyz3vQnBDuIfNdb1HB1gLE3Qe2wvuIyhrzgb9ioMScF5s77fGGbqn4AofUAEJHHReaY3acE8/ekv9+lvgnNL8FnBfwe+nwbJxQPwrBw1wXvA1DuqM3Ibcn7jIQR4sWcAf6LzgSDjo/tY+eaBkAZwTtP54toR7XNfJA1dTDVxNNXA11cDVVANXUw1cTTWwHjDAOUEXxYwC97iukwdKFiH/6zlvLTwQDrq/tc9lY1D0ctAA5wWnKKY3yVfhK/8ZsgckcNB5pTVqwz2p3vhAcI5iUnBe7FN8EDn6SSx1G5XUqQH3EfzxSUzggNLGP6BzWReCG8I97K6LA5LBO3DenvMtvjY8b6witY3dPSwL547o96ewLTgwtgTOHc1dHHRw0K9RNjx0jRF0yMAJsdM9zETqtuplFg+dVFRggwm6Tg89jHBirDzujvAGXbOVZnJbt/fb3RZ7f3iC0xppJFfw6E44Ew/dX+zDF2yBLsZOt9ge5HaquITgR7G84voQ3JDcDhVP26WWkyC6W3xNJuh5tzxt8QHrSRBrwfPsefriAwv0ZClnSTrIDF035SJJNbHce1tKnkMeh2NzNGGCnry38kRojodupLUeA+CgG6utw4BYXkyO2mWrP8I7dPOPKrWengV6YXtKbJMr/R/9MHMSOJNdKwAAAABJRU5ErkJggg=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min-2.html","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.628Z","timestamp":1785126645628,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min-2.html HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 03:44:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 189\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, must-revalidate\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":315,"size_decoded":446,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a34ac19f4afae63adc5d2f7bc970c07f","sha1":"a82190fc530c265aa40a045c21770d967f4767b8","sha256":"d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3","sha512":"42e53d96e5961e95b7a984d9c9778a1d3bd8ee0c87b8b3b515fa31f67c2d073c8565afc2f4b962c43668c4efa1e478da9bb0ecffa79479c7e880731bc4c55765","ssdeep":"","tlshash":"b0e0e75f41473347402252907dc110d1d505236b797161fd3d85b4ab501dc3dc99f7dc","first_seen":"2023-03-07T01:02:33Z","last_seen":"2026-07-27T07:40:01.471307Z","times_seen":146478,"resource_available":true,"data":"PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VOIj4KPGh0bWw+PGhlYWQ+Cjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT4KPC9oZWFkPjxib2R5Pgo8aDE+Tm90IEZvdW5kPC9oMT4KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+CjxwPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kCmVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LjwvcD4KPC9ib2R5PjwvaHRtbD4K"}},"time_used":82,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":82,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.slicknav.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.849Z","timestamp":1785126645849,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery.slicknav.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2496\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":8415,"size_decoded":2751,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (8320)","md5":"abb6ece52a5d3b908359c3dfa21d08a2","sha1":"cdd58421d34de7c63034acb2726a678c55a546f5","sha256":"190402f488a1616b47304ae066078580059ca6a5958b7f217d2156d0a73931a9","sha512":"5e1cc5c6c4831a0affa634cc8b4ad8bc4299976a62e2690f91ecef8d5d5db732232688afee634767c016402288f635a4bbbb4d7bac10b6456120414d85ec8b53","ssdeep":"96:8B5ftaVYApggJKmapO684YBtzcmJycbeKkiKk4rB0KGtZYqxq3FWMrutqGcVtVho:kBt6YAUmW8PFMeRQR1Un1q3Ikuty7dW","tlshash":"6b023358b1103ab371fb7bea4237880ae233512dc50b40793963daa55d3a46d3613f7e","first_seen":"2023-03-07T01:11:41Z","last_seen":"2026-07-27T06:48:32.670442Z","times_seen":1952,"resource_available":true,"data":"LyohCiAqIFNsaWNrTmF2IFJlc3BvbnNpdmUgTW9iaWxlIE1lbnUgdjEuMC4xMAogKiAoYykgMjAxNiBKb3NoIENvcGUKICogbGljZW5zZWQgdW5kZXIgTUlUCiAqLwohZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIGEodCxuKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnNldHRpbmdzPWUuZXh0ZW5kKHt9LGksbiksdGhpcy5zZXR0aW5ncy5kdXBsaWNhdGV8fG4uaGFzT3duUHJvcGVydHkoInJlbW92ZUlkcyIpfHwodGhpcy5zZXR0aW5ncy5yZW1vdmVJZHM9ITEpLHRoaXMuX2RlZmF1bHRzPWksdGhpcy5fbmFtZT1zLHRoaXMuaW5pdCgpfXZhciBpPXtsYWJlbDoiTUVOVSIsZHVwbGljYXRlOiEwLGR1cmF0aW9uOjIwMCxlYXNpbmdPcGVuOiJzd2luZyIsZWFzaW5nQ2xvc2U6InN3aW5nIixjbG9zZWRTeW1ib2w6IiYjOTY1ODsiLG9wZW5lZFN5bWJvbDoiJiM5NjYwOyIscHJlcGVuZFRvOiJib2R5IixhcHBlbmRUbzoiIixwYXJlbnRUYWc6ImEiLGNsb3NlT25DbGljazohMSxhbGxvd1BhcmVudExpbmtzOiExLG5lc3RlZFBhcmVudExpbmtzOiEwLHNob3dDaGlsZHJlbjohMSxyZW1vdmVJZHM6ITAscmVtb3ZlQ2xhc3NlczohMSxyZW1vdmVTdHlsZXM6ITEsYnJhbmQ6IiIsYW5pbWF0aW9uczoianF1ZXJ5Iixpbml0OmZ1bmN0aW9uKCl7fSxiZWZvcmVPcGVuOmZ1bmN0aW9uKCl7fSxiZWZvcmVDbG9zZTpmdW5jdGlvbigpe30sYWZ0ZXJPcGVuOmZ1bmN0aW9uKCl7fSxhZnRlckNsb3NlOmZ1bmN0aW9uKCl7fX0scz0ic2xpY2tuYXYiLG89InNsaWNrbmF2IixsPXtET1dOOjQwLEVOVEVSOjEzLEVTQ0FQRToyNyxMRUZUOjM3LFJJR0hUOjM5LFNQQUNFOjMyLFRBQjo5LFVQOjM4fTthLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dmFyIG4sYSxpPXRoaXMscz1lKHRoaXMuZWxlbWVudCkscj10aGlzLnNldHRpbmdzO2lmKHIuZHVwbGljYXRlP2kubW9iaWxlTmF2PXMuY2xvbmUoKTppLm1vYmlsZU5hdj1zLHIucmVtb3ZlSWRzJiYoaS5tb2JpbGVOYXYucmVtb3ZlQXR0cigiaWQiKSxpLm1vYmlsZU5hdi5maW5kKCIqIikuZWFjaChmdW5jdGlvbih0LG4pe2UobikucmVtb3ZlQXR0cigiaWQiKX0pKSxyLnJlbW92ZUNsYXNzZXMmJihpLm1vYmlsZU5hdi5yZW1vdmVBdHRyKCJjbGFzcyIpLGkubW9iaWxlTmF2LmZpbmQoIioiKS5lYWNoKGZ1bmN0aW9uKHQsbil7ZShuKS5yZW1vdmVBdHRyKCJjbGFzcyIpfSkpLHIucmVtb3ZlU3R5bGVzJiYoaS5tb2JpbGVOYXYucmVtb3ZlQXR0cigic3R5bGUiKSxpLm1vYmlsZU5hdi5maW5kKCIqIikuZWFjaChmdW5jdGlvbih0LG4pe2UobikucmVtb3ZlQXR0cigic3R5bGUiKX0pKSxuPW8rIl9pY29uIiwiIj09PXIubGFiZWwmJihuKz0iICIrbysiX25vLXRleHQiKSwiYSI9PXIucGFyZW50VGFnJiYoci5wYXJlbnRUYWc9J2EgaHJlZj0iIyInKSxpLm1vYmlsZU5hdi5hdHRyKCJjbGFzcyIsbysiX25hdiIpLGE9ZSgnPGRpdiBjbGFzcz0iJytvKydfbWVudSI+PC9kaXY+JyksIiIhPT1yLmJyYW5kKXt2YXIgYz1lKCc8ZGl2IGNsYXNzPSInK28rJ19icmFuZCI+JytyLmJyYW5kKyI8L2Rpdj4iKTtlKGEpLmFwcGVuZChjKX1pLmJ0bj1lKFsiPCIrci5wYXJlbnRUYWcrJyBhcmlhLWhhc3BvcHVwPSJ0cnVlIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iJytvKyJfYnRuICIrbysnX2NvbGxhcHNlZCI+JywnPHNwYW4gY2xhc3M9IicrbysnX21lbnV0eHQiPicrci5sYWJlbCsiPC9zcGFuPiIsJzxzcGFuIGNsYXNzPSInK24rJyI+JywnPHNwYW4gY2xhc3M9IicrbysnX2ljb24tYmFyIj48L3NwYW4+JywnPHNwYW4gY2xhc3M9IicrbysnX2ljb24tYmFyIj48L3NwYW4+JywnPHNwYW4gY2xhc3M9IicrbysnX2ljb24tYmFyIj48L3NwYW4+JywiPC9zcGFuPiIsIjwvIityLnBhcmVudFRhZysiPiJdLmpvaW4oIiIpKSxlKGEpLmFwcGVuZChpLmJ0biksIiIhPT1yLmFwcGVuZFRvP2Uoci5hcHBlbmRUbykuYXBwZW5kKGEpOmUoci5wcmVwZW5kVG8pLnByZXBlbmQoYSksYS5hcHBlbmQoaS5tb2JpbGVOYXYpO3ZhciBwPWkubW9iaWxlTmF2LmZpbmQoImxpIik7ZShwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxuPXt9O2lmKG4uY2hpbGRyZW49dC5jaGlsZHJlbigidWwiKS5hdHRyKCJyb2xlIiwibWVudSIpLHQuZGF0YSgibWVudSIsbiksbi5jaGlsZHJlbi5sZW5ndGg+MCl7dmFyIGE9dC5jb250ZW50cygpLHM9ITEsbD1bXTtlKGEpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzKS5pcygidWwiKT8hMToobC5wdXNoKHRoaXMpLHZvaWQoZSh0aGlzKS5pcygiYSIpJiYocz0hMCkpKX0pO3ZhciBjPWUoIjwiK3IucGFyZW50VGFnKycgcm9sZT0ibWVudWl0ZW0iIGFyaWEtaGFzcG9wdXA9InRydWUiIHRhYmluZGV4PSItMSIgY2xhc3M9IicrbysnX2l0ZW0iLz4nKTtpZihyLmFsbG93UGFyZW50TGlua3MmJiFyLm5lc3RlZFBhcmVudExpbmtzJiZzKWUobCkud3JhcEFsbCgnPHNwYW4gY2xhc3M9IicrbysiX3BhcmVudC1saW5rICIrbysnX3JvdyIvPicpLnBhcmVudCgpO2Vsc2V7dmFyIHA9ZShsKS53cmFwQWxsKGMpLnBhcmVudCgpO3AuYWRkQ2xhc3MobysiX3JvdyIpfXIuc2hvd0NoaWxkcmVuP3QuYWRkQ2xhc3MobysiX29wZW4iKTp0LmFkZENsYXNzKG8rIl9jb2xsYXBzZWQiKSx0LmFkZENsYXNzKG8rIl9wYXJlbnQiKTt2YXIgZD1lKCc8c3BhbiBjbGFzcz0iJytvKydfYXJyb3ciPicrKHIuc2hvd0NoaWxkcmVuP3Iub3BlbmVkU3ltYm9sOnIuY2xvc2VkU3ltYm9sKSsiPC9zcGFuPiIpO3IuYWxsb3dQYXJlbnRMaW5rcyYmIXIubmVzdGVkUGFyZW50TGlua3MmJnMmJihkPWQud3JhcChjKS5wYXJlbnQoKSksZShsKS5sYXN0KCkuYWZ0ZXIoZCl9ZWxzZSAwPT09dC5jaGlsZHJlbigpLmxlbmd0aCYmdC5hZGRDbGFzcyhvKyJfdHh0bm9kZSIpO3QuY2hpbGRyZW4oImEiKS5hdHRyKCJyb2xlIiwibWVudWl0ZW0iKS5jbGljayhmdW5jdGlvbih0KXtyLmNsb3NlT25DbGljayYmIWUodC50YXJnZXQpLnBhcmVudCgpLmNsb3Nlc3QoImxpIikuaGFzQ2xhc3MobysiX3BhcmVudCIpJiZlKGkuYnRuKS5jbGljaygpfSksci5jbG9zZU9uQ2xpY2smJnIuYWxsb3dQYXJlbnRMaW5rcyYmKHQuY2hpbGRyZW4oImEiKS5jaGlsZHJlbigiYSIpLmNsaWNrKGZ1bmN0aW9uKHQpe2UoaS5idG4pLmNsaWNrKCl9KSx0LmZpbmQoIi4iK28rIl9wYXJlbnQtbGluayBhOm5vdCguIitvKyJfaXRlbSkiKS5jbGljayhmdW5jdGlvbih0KXtlKGkuYnRuKS5jbGljaygpfSkpfSksZShwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5kYXRhKCJtZW51Iik7ci5zaG93Q2hpbGRyZW58fGkuX3Zpc2liaWxpdHlUb2dnbGUodC5jaGlsZHJlbixudWxsLCExLG51bGwsITApfSksaS5fdmlzaWJpbGl0eVRvZ2dsZShpLm1vYmlsZU5hdixudWxsLCExLCJpbml0IiwhMCksaS5tb2JpbGVOYXYuYXR0cigicm9sZSIsIm1lbnUiKSxlKHQpLm1vdXNlZG93bihmdW5jdGlvbigpe2kuX291dGxpbmVzKCExKX0pLGUodCkua2V5dXAoZnVuY3Rpb24oKXtpLl9vdXRsaW5lcyghMCl9KSxlKGkuYnRuKS5jbGljayhmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksaS5fbWVudVRvZ2dsZSgpfSksaS5tb2JpbGVOYXYub24oImNsaWNrIiwiLiIrbysiX2l0ZW0iLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxpLl9pdGVtQ2xpY2soZSh0aGlzKSl9KSxlKGkuYnRuKS5rZXlkb3duKGZ1bmN0aW9uKHQpe3ZhciBuPXR8fGV2ZW50O3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgbC5FTlRFUjpjYXNlIGwuU1BBQ0U6Y2FzZSBsLkRPV046dC5wcmV2ZW50RGVmYXVsdCgpLG4ua2V5Q29kZT09PWwuRE9XTiYmZShpLmJ0bikuaGFzQ2xhc3MobysiX29wZW4iKXx8aS5fbWVudVRvZ2dsZSgpLGUoaS5idG4pLm5leHQoKS5maW5kKCdbcm9sZT0ibWVudWl0ZW0iXScpLmZpcnN0KCkuZm9jdXMoKX19KSxpLm1vYmlsZU5hdi5vbigia2V5ZG93biIsIi4iK28rIl9pdGVtIixmdW5jdGlvbih0KXt2YXIgbj10fHxldmVudDtzd2l0Y2gobi5rZXlDb2RlKXtjYXNlIGwuRU5URVI6dC5wcmV2ZW50RGVmYXVsdCgpLGkuX2l0ZW1DbGljayhlKHQudGFyZ2V0KSk7YnJlYWs7Y2FzZSBsLlJJR0hUOnQucHJldmVudERlZmF1bHQoKSxlKHQudGFyZ2V0KS5wYXJlbnQoKS5oYXNDbGFzcyhvKyJfY29sbGFwc2VkIikmJmkuX2l0ZW1DbGljayhlKHQudGFyZ2V0KSksZSh0LnRhcmdldCkubmV4dCgpLmZpbmQoJ1tyb2xlPSJtZW51aXRlbSJdJykuZmlyc3QoKS5mb2N1cygpfX0pLGkubW9iaWxlTmF2Lm9uKCJrZXlkb3duIiwnW3JvbGU9Im1lbnVpdGVtIl0nLGZ1bmN0aW9uKHQpe3ZhciBuPXR8fGV2ZW50O3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgbC5ET1dOOnQucHJldmVudERlZmF1bHQoKTt2YXIgYT1lKHQudGFyZ2V0KS5wYXJlbnQoKS5wYXJlbnQoKS5jaGlsZHJlbigpLmNoaWxkcmVuKCdbcm9sZT0ibWVudWl0ZW0iXTp2aXNpYmxlJykscz1hLmluZGV4KHQudGFyZ2V0KSxyPXMrMTthLmxlbmd0aDw9ciYmKHI9MCk7dmFyIGM9YS5lcShyKTtjLmZvY3VzKCk7YnJlYWs7Y2FzZSBsLlVQOnQucHJldmVudERlZmF1bHQoKTt2YXIgYT1lKHQudGFyZ2V0KS5wYXJlbnQoKS5wYXJlbnQoKS5jaGlsZHJlbigpLmNoaWxkcmVuKCdbcm9sZT0ibWVudWl0ZW0iXTp2aXNpYmxlJykscz1hLmluZGV4KHQudGFyZ2V0KSxjPWEuZXEocy0xKTtjLmZvY3VzKCk7YnJlYWs7Y2FzZSBsLkxFRlQ6aWYodC5wcmV2ZW50RGVmYXVsdCgpLGUodC50YXJnZXQpLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpLmhhc0NsYXNzKG8rIl9vcGVuIikpe3ZhciBwPWUodC50YXJnZXQpLnBhcmVudCgpLnBhcmVudCgpLnByZXYoKTtwLmZvY3VzKCksaS5faXRlbUNsaWNrKHApfWVsc2UgZSh0LnRhcmdldCkucGFyZW50KCkucGFyZW50KCkuaGFzQ2xhc3MobysiX25hdiIpJiYoaS5fbWVudVRvZ2dsZSgpLGUoaS5idG4pLmZvY3VzKCkpO2JyZWFrO2Nhc2UgbC5FU0NBUEU6dC5wcmV2ZW50RGVmYXVsdCgpLGkuX21lbnVUb2dnbGUoKSxlKGkuYnRuKS5mb2N1cygpfX0pLHIuYWxsb3dQYXJlbnRMaW5rcyYmci5uZXN0ZWRQYXJlbnRMaW5rcyYmZSgiLiIrbysiX2l0ZW0gYSIpLmNsaWNrKGZ1bmN0aW9uKGUpe2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9KX0sYS5wcm90b3R5cGUuX21lbnVUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuYnRuLGE9dC5tb2JpbGVOYXY7bi5oYXNDbGFzcyhvKyJfY29sbGFwc2VkIik/KG4ucmVtb3ZlQ2xhc3MobysiX2NvbGxhcHNlZCIpLG4uYWRkQ2xhc3MobysiX29wZW4iKSk6KG4ucmVtb3ZlQ2xhc3MobysiX29wZW4iKSxuLmFkZENsYXNzKG8rIl9jb2xsYXBzZWQiKSksbi5hZGRDbGFzcyhvKyJfYW5pbWF0aW5nIiksdC5fdmlzaWJpbGl0eVRvZ2dsZShhLG4ucGFyZW50KCksITAsbil9LGEucHJvdG90eXBlLl9pdGVtQ2xpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXQuc2V0dGluZ3MsYT1lLmRhdGEoIm1lbnUiKTthfHwoYT17fSxhLmFycm93PWUuY2hpbGRyZW4oIi4iK28rIl9hcnJvdyIpLGEudWw9ZS5uZXh0KCJ1bCIpLGEucGFyZW50PWUucGFyZW50KCksYS5wYXJlbnQuaGFzQ2xhc3MobysiX3BhcmVudC1saW5rIikmJihhLnBhcmVudD1lLnBhcmVudCgpLnBhcmVudCgpLGEudWw9ZS5wYXJlbnQoKS5uZXh0KCJ1bCIpKSxlLmRhdGEoIm1lbnUiLGEpKSxhLnBhcmVudC5oYXNDbGFzcyhvKyJfY29sbGFwc2VkIik/KGEuYXJyb3cuaHRtbChuLm9wZW5lZFN5bWJvbCksYS5wYXJlbnQucmVtb3ZlQ2xhc3MobysiX2NvbGxhcHNlZCIpLGEucGFyZW50LmFkZENsYXNzKG8rIl9vcGVuIiksYS5wYXJlbnQuYWRkQ2xhc3MobysiX2FuaW1hdGluZyIpLHQuX3Zpc2liaWxpdHlUb2dnbGUoYS51bCxhLnBhcmVudCwhMCxlKSk6KGEuYXJyb3cuaHRtbChuLmNsb3NlZFN5bWJvbCksYS5wYXJlbnQuYWRkQ2xhc3MobysiX2NvbGxhcHNlZCIpLGEucGFyZW50LnJlbW92ZUNsYXNzKG8rIl9vcGVuIiksYS5wYXJlbnQuYWRkQ2xhc3MobysiX2FuaW1hdGluZyIpLHQuX3Zpc2liaWxpdHlUb2dnbGUoYS51bCxhLnBhcmVudCwhMCxlKSl9LGEucHJvdG90eXBlLl92aXNpYmlsaXR5VG9nZ2xlPWZ1bmN0aW9uKHQsbixhLGkscyl7ZnVuY3Rpb24gbCh0LG4pe2UodCkucmVtb3ZlQ2xhc3MobysiX2FuaW1hdGluZyIpLGUobikucmVtb3ZlQ2xhc3MobysiX2FuaW1hdGluZyIpLHN8fHAuYWZ0ZXJPcGVuKHQpfWZ1bmN0aW9uIHIobixhKXt0LmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGQuYXR0cigidGFiaW5kZXgiLCItMSIpLGMuX3NldFZpc0F0dHIodCwhMCksdC5oaWRlKCksZShuKS5yZW1vdmVDbGFzcyhvKyJfYW5pbWF0aW5nIiksZShhKS5yZW1vdmVDbGFzcyhvKyJfYW5pbWF0aW5nIikscz8iaW5pdCI9PW4mJnAuaW5pdCgpOnAuYWZ0ZXJDbG9zZShuKX12YXIgYz10aGlzLHA9Yy5zZXR0aW5ncyxkPWMuX2dldEFjdGlvbkl0ZW1zKHQpLHU9MDthJiYodT1wLmR1cmF0aW9uKSx0Lmhhc0NsYXNzKG8rIl9oaWRkZW4iKT8odC5yZW1vdmVDbGFzcyhvKyJfaGlkZGVuIiksc3x8cC5iZWZvcmVPcGVuKGkpLCJqcXVlcnkiPT09cC5hbmltYXRpb25zP3Quc3RvcCghMCwhMCkuc2xpZGVEb3duKHUscC5lYXNpbmdPcGVuLGZ1bmN0aW9uKCl7bChpLG4pfSk6InZlbG9jaXR5Ij09PXAuYW5pbWF0aW9ucyYmdC52ZWxvY2l0eSgiZmluaXNoIikudmVsb2NpdHkoInNsaWRlRG93biIse2R1cmF0aW9uOnUsZWFzaW5nOnAuZWFzaW5nT3Blbixjb21wbGV0ZTpmdW5jdGlvbigpe2woaSxuKX19KSx0LmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKSxkLmF0dHIoInRhYmluZGV4IiwiMCIpLGMuX3NldFZpc0F0dHIodCwhMSkpOih0LmFkZENsYXNzKG8rIl9oaWRkZW4iKSxzfHxwLmJlZm9yZUNsb3NlKGkpLCJqcXVlcnkiPT09cC5hbmltYXRpb25zP3Quc3RvcCghMCwhMCkuc2xpZGVVcCh1LHRoaXMuc2V0dGluZ3MuZWFzaW5nQ2xvc2UsZnVuY3Rpb24oKXtyKGksbil9KToidmVsb2NpdHkiPT09cC5hbmltYXRpb25zJiZ0LnZlbG9jaXR5KCJmaW5pc2giKS52ZWxvY2l0eSgic2xpZGVVcCIse2R1cmF0aW9uOnUsZWFzaW5nOnAuZWFzaW5nQ2xvc2UsY29tcGxldGU6ZnVuY3Rpb24oKXtyKGksbil9fSkpfSxhLnByb3RvdHlwZS5fc2V0VmlzQXR0cj1mdW5jdGlvbih0LG4pe3ZhciBhPXRoaXMsaT10LmNoaWxkcmVuKCJsaSIpLmNoaWxkcmVuKCJ1bCIpLm5vdCgiLiIrbysiX2hpZGRlbiIpO24/aS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpO3ZhciBpPWEuX2dldEFjdGlvbkl0ZW1zKHQpO2kuYXR0cigidGFiaW5kZXgiLCItMSIpLGEuX3NldFZpc0F0dHIodCxuKX0pOmkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIik7dmFyIGk9YS5fZ2V0QWN0aW9uSXRlbXModCk7aS5hdHRyKCJ0YWJpbmRleCIsIjAiKSxhLl9zZXRWaXNBdHRyKHQsbil9KX0sYS5wcm90b3R5cGUuX2dldEFjdGlvbkl0ZW1zPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZGF0YSgibWVudSIpO2lmKCF0KXt0PXt9O3ZhciBuPWUuY2hpbGRyZW4oImxpIiksYT1uLmZpbmQoImEiKTt0LmxpbmtzPWEuYWRkKG4uZmluZCgiLiIrbysiX2l0ZW0iKSksZS5kYXRhKCJtZW51Iix0KX1yZXR1cm4gdC5saW5rc30sYS5wcm90b3R5cGUuX291dGxpbmVzPWZ1bmN0aW9uKHQpe3Q/ZSgiLiIrbysiX2l0ZW0sIC4iK28rIl9idG4iKS5jc3MoIm91dGxpbmUiLCIiKTplKCIuIitvKyJfaXRlbSwgLiIrbysiX2J0biIpLmNzcygib3V0bGluZSIsIm5vbmUiKX0sYS5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9tZW51VG9nZ2xlKCl9LGEucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuYnRuLmhhc0NsYXNzKG8rIl9jb2xsYXBzZWQiKSYmZS5fbWVudVRvZ2dsZSgpfSxhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5idG4uaGFzQ2xhc3MobysiX29wZW4iKSYmZS5fbWVudVRvZ2dsZSgpfSxlLmZuW3NdPWZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cztpZih2b2lkIDA9PT10fHwib2JqZWN0Ij09dHlwZW9mIHQpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2UuZGF0YSh0aGlzLCJwbHVnaW5fIitzKXx8ZS5kYXRhKHRoaXMsInBsdWdpbl8iK3MsbmV3IGEodGhpcyx0KSl9KTtpZigic3RyaW5nIj09dHlwZW9mIHQmJiJfIiE9PXRbMF0mJiJpbml0IiE9PXQpe3ZhciBpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgbz1lLmRhdGEodGhpcywicGx1Z2luXyIrcyk7byBpbnN0YW5jZW9mIGEmJiJmdW5jdGlvbiI9PXR5cGVvZiBvW3RdJiYoaT1vW3RdLmFwcGx5KG8sQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiwxKSkpfSksdm9pZCAwIT09aT9pOnRoaXN9fX0oalF1ZXJ5LGRvY3VtZW50LHdpbmRvdyk7"}},"time_used":74,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":74,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/480cde08b8bfd5ce.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.417Z","timestamp":1785126646417,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/480cde08b8bfd5ce.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 7093019\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"480cde08b8bfd5ce.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com https://vitals.vercel-insights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"2197ad79def7e68e0db5210279b81a88\"\r\nlast-modified: Tue, 28 Apr 2026 14:50:57 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/480cde08b8bfd5ce.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::m49ll-1777388594165-c9ac0a174814\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iIswaxiUaxBph6v70%2F12EsU5vHhx1gqqccrFVdB3yWxnP4JlAgKkdU%2BRjRRBf6rmD0EeC3Q7jcB7XHmymjbkYBMMHSOY5TxkYeGNYx7orj9uM9LHV9MaNY1vH6Bz\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9241ff72efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":84456,"size_decoded":25524,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"2197ad79def7e68e0db5210279b81a88","sha1":"4a9572c96dc4b65a933f8494889a2d78f6bc8b3b","sha256":"0c61a398dcdf9a5d5a6a744855e7d95635c22711ee32b5af4a658fc6035de812","sha512":"1ed4b2613596da63a7fbbb97a8839e5ae8cf7a62d48b3f2818a3d7b510dde3fef57905aa4ce17843dcee71e3b9205f42c8e3b412427bddd975643af58c1b5979","ssdeep":"768:9Nf3ebiEpt8v84l+ayd9ar543m7dGwVBmOJ8SLBlbGJz5RBC8zogjPwNp9WxBbV3:yGY8AJ8pIOCSOvB9GW7H5sZzIxB","tlshash":"8883f8f931d1f88207ab44aac43f0002f32c5d77189e7864a3e5ddea716455da1f2faa","first_seen":"2026-04-28T18:06:46.282063Z","last_seen":"2026-07-27T08:07:37.434807Z","times_seen":1617,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDg1NTk0LChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQ9ITApe3JldHVybiBlLnBhdGhuYW1lK2Uuc2VhcmNoKyh0P2UuaGFzaDoiIil9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJjcmVhdGVIcmVmRnJvbVVybCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksKCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNTQzMjAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPS9bXHctXSstR29vZ2xlfEdvb2dsZS1bXHctXSt8Q2hyb21lLUxpZ2h0aG91c2V8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xyZWRkaXRib3R8aWFfYXJjaGl2ZXJ8QmluZ2JvdHxCaW5nUHJldmlld3xhcHBsZWJvdHxmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fExpbmtlZEluQm90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fFlldGl8Z29vZ2xld2VibGlnaHQvaX0sMzQ2NSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17SFRNTF9MSU1JVEVEX0JPVF9VQV9SRTpmdW5jdGlvbigpe3JldHVybiBsLkhUTUxfTElNSVRFRF9CT1RfVUFfUkV9LEhUTUxfTElNSVRFRF9CT1RfVUFfUkVfU1RSSU5HOmZ1bmN0aW9uKCl7cmV0dXJuIG99LGdldEJvdFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gc30saXNCb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbD1lLnIoNTQzMjApLHU9L0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaSxvPWwuSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS5zb3VyY2U7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbC5IVE1MX0xJTUlURURfQk9UX1VBX1JFLnRlc3QoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gdS50ZXN0KGUpfHxpKGUpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIHUudGVzdChlKT8iZG9tIjppKGUpPyJodG1sIjp2b2lkIDB9fSw4NTYxOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiLyIpP2U6YC8ke2V9YH1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImVuc3VyZUxlYWRpbmdTbGFzaCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9LDkyMjI3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtub3JtYWxpemVBcHBQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIG99LG5vcm1hbGl6ZVJzY1VSTDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig4NTYxOSksdT1lLnIoMjc0NTQpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKDAsbC5lbnN1cmVMZWFkaW5nU2xhc2gpKGUuc3BsaXQoIi8iKS5yZWR1Y2UoKGUsdCxyLG4pPT4hdHx8KDAsdS5pc0dyb3VwU2VnbWVudCkodCl8fCJAIj09PXRbMF18fCgicGFnZSI9PT10fHwicm91dGUiPT09dCkmJnI9PT1uLmxlbmd0aC0xP2U6YCR7ZX0vJHt0fWAsIiIpKX1mdW5jdGlvbiBpKGUpe3JldHVybiBlLnJlcGxhY2UoL1wucnNjKCR8XD8pLywiJDEiKX19LDU0NjgyLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzpmdW5jdGlvbigpe3JldHVybiB1fSxleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbjpmdW5jdGlvbigpe3JldHVybiBpfSxpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDpmdW5jdGlvbigpe3JldHVybiBvfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig5MjIyNyksdT1bIiguLikoLi4pIiwiKC4pIiwiKC4uKSIsIiguLi4pIl07ZnVuY3Rpb24gbyhlKXtyZXR1cm4gdm9pZCAwIT09ZS5zcGxpdCgiLyIpLmZpbmQoZT0+dS5maW5kKHQ9PmUuc3RhcnRzV2l0aCh0KSkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQscixuO2ZvcihsZXQgYSBvZiBlLnNwbGl0KCIvIikpaWYocj11LmZpbmQoZT0+YS5zdGFydHNXaXRoKGUpKSl7W3Qsbl09ZS5zcGxpdChyLDIpO2JyZWFrfWlmKCF0fHwhcnx8IW4pdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtlfS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjY5IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3N3aXRjaCh0PSgwLGwubm9ybWFsaXplQXBwUGF0aCkodCkscil7Y2FzZSIoLikiOm49Ii8iPT09dD9gLyR7bn1gOnQrIi8iK247YnJlYWs7Y2FzZSIoLi4pIjppZigiLyI9PT10KXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7ZX0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTIwNyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtuPXQuc3BsaXQoIi8iKS5zbGljZSgwLC0xKS5jb25jYXQobikuam9pbigiLyIpO2JyZWFrO2Nhc2UiKC4uLikiOm49Ii8iK247YnJlYWs7Y2FzZSIoLi4pKC4uKSI6bGV0IGE9dC5zcGxpdCgiLyIpO2lmKGEubGVuZ3RoPD0yKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7ZX0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTQ4NiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtuPWEuc2xpY2UoMCwtMikuY29uY2F0KG4pLmpvaW4oIi8iKTticmVhaztkZWZhdWx0OnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlciIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMTEyIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfXJldHVybntpbnRlcmNlcHRpbmdSb3V0ZTp0LGludGVyY2VwdGVkUm91dGU6bn19fSw4OTYxNiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibWF0Y2hTZWdtZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj0oZSx0KT0+InN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciPT10eXBlb2YgdCYmZT09PXQ6InN0cmluZyIhPXR5cGVvZiB0JiZlWzBdPT09dFswXSYmZVsxXT09PXRbMV07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTgxNjcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2NvbXB1dGVDaGFuZ2VkUGF0aDpmdW5jdGlvbigpe3JldHVybiBmfSxleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBzfSxnZXRTZWxlY3RlZFBhcmFtczpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQscj17fSl7Zm9yKGxldCBuIG9mIE9iamVjdC52YWx1ZXModFsxXSkpe2xldCB0PW5bMF0sYT1BcnJheS5pc0FycmF5KHQpLGw9YT90WzFdOnQ7IWx8fGwuc3RhcnRzV2l0aCh1LlBBR0VfU0VHTUVOVF9LRVkpfHwoYSYmKCJjIj09PXRbMl18fCJvYyI9PT10WzJdKT9yW3RbMF1dPXRbMV0uc3BsaXQoIi8iKTphJiYoclt0WzBdXT10WzFdKSxyPWUobixyKSl9cmV0dXJuIHJ9fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig1NDY4MiksdT1lLnIoMjc0NTQpLG89ZS5yKDg5NjE2KSxpPWU9PiJzdHJpbmciPT10eXBlb2YgZT8iY2hpbGRyZW4iPT09ZT8iIjplOmVbMV07ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZS5yZWR1Y2UoKGUsdCk9PntsZXQgcjtyZXR1cm4iIj09PSh0PSIvIj09PShyPXQpWzBdP3Iuc2xpY2UoMSk6cil8fCgwLHUuaXNHcm91cFNlZ21lbnQpKHQpP2U6YCR7ZX0vJHt0fWB9LCIiKXx8Ii8ifWZ1bmN0aW9uIHMoZSl7bGV0IHQ9QXJyYXkuaXNBcnJheShlWzBdKT9lWzBdWzFdOmVbMF07aWYodD09PXUuREVGQVVMVF9TRUdNRU5UX0tFWXx8bC5JTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKGU9PnQuc3RhcnRzV2l0aChlKSkpcmV0dXJuO2lmKHQuc3RhcnRzV2l0aCh1LlBBR0VfU0VHTUVOVF9LRVkpKXJldHVybiIiO2xldCByPVtpKHQpXSxuPWVbMV0/P3t9LGE9bi5jaGlsZHJlbj9zKG4uY2hpbGRyZW4pOnZvaWQgMDtpZih2b2lkIDAhPT1hKXIucHVzaChhKTtlbHNlIGZvcihsZXRbZSx0XW9mIE9iamVjdC5lbnRyaWVzKG4pKXtpZigiY2hpbGRyZW4iPT09ZSljb250aW51ZTtsZXQgbj1zKHQpO3ZvaWQgMCE9PW4mJnIucHVzaChuKX1yZXR1cm4gYyhyKX1mdW5jdGlvbiBmKGUsdCl7bGV0IHI9ZnVuY3Rpb24gZSh0LHIpe2xldFtuLGFdPXQsW3UsY109cixmPWkobiksZD1pKHUpO2lmKGwuSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuc29tZShlPT5mLnN0YXJ0c1dpdGgoZSl8fGQuc3RhcnRzV2l0aChlKSkpcmV0dXJuIiI7aWYoISgwLG8ubWF0Y2hTZWdtZW50KShuLHUpKXJldHVybiBzKHIpPz8iIjtmb3IobGV0IHQgaW4gYSlpZihjW3RdKXtsZXQgcj1lKGFbdF0sY1t0XSk7aWYobnVsbCE9PXIpcmV0dXJuYCR7aSh1KX0vJHtyfWB9cmV0dXJuIG51bGx9KGUsdCk7cmV0dXJuIG51bGw9PXJ8fCIvIj09PXI/cjpjKHIuc3BsaXQoIi8iKSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjMyNzgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImhhbmRsZU11dGFibGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2xldCBuPWUucigxODE2Nyk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gdm9pZCAwIT09ZX1mdW5jdGlvbiBsKGUsdCl7bGV0IHI9dC5zaG91bGRTY3JvbGw/PyEwLGw9ZS5wcmV2aW91c05leHRVcmwsdT1lLm5leHRVcmw7aWYoYSh0LnBhdGNoZWRUcmVlKSl7bGV0IHI9KDAsbi5jb21wdXRlQ2hhbmdlZFBhdGgpKGUudHJlZSx0LnBhdGNoZWRUcmVlKTtyPyhsPXUsdT1yKTp1fHwodT1lLmNhbm9uaWNhbFVybCl9cmV0dXJue2Nhbm9uaWNhbFVybDp0LmNhbm9uaWNhbFVybD8/ZS5jYW5vbmljYWxVcmwscmVuZGVyZWRTZWFyY2g6dC5yZW5kZXJlZFNlYXJjaD8/ZS5yZW5kZXJlZFNlYXJjaCxwdXNoUmVmOntwZW5kaW5nUHVzaDphKHQucGVuZGluZ1B1c2gpP3QucGVuZGluZ1B1c2g6ZS5wdXNoUmVmLnBlbmRpbmdQdXNoLG1wYU5hdmlnYXRpb246YSh0Lm1wYU5hdmlnYXRpb24pP3QubXBhTmF2aWdhdGlvbjplLnB1c2hSZWYubXBhTmF2aWdhdGlvbixwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZTphKHQucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUpP3QucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6ZS5wdXNoUmVmLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlfSxmb2N1c0FuZFNjcm9sbFJlZjp7YXBwbHk6ISFyJiYoISFhKHQ/LnNjcm9sbGFibGVTZWdtZW50cyl8fGUuZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkpLG9ubHlIYXNoQ2hhbmdlOnQub25seUhhc2hDaGFuZ2V8fCExLGhhc2hGcmFnbWVudDpyP3QuaGFzaEZyYWdtZW50JiYiIiE9PXQuaGFzaEZyYWdtZW50P2RlY29kZVVSSUNvbXBvbmVudCh0Lmhhc2hGcmFnbWVudC5zbGljZSgxKSk6ZS5mb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQ6bnVsbCxzZWdtZW50UGF0aHM6cj90Py5zY3JvbGxhYmxlU2VnbWVudHM/P2UuZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzOltdfSxjYWNoZTp0LmNhY2hlP3QuY2FjaGU6ZS5jYWNoZSx0cmVlOmEodC5wYXRjaGVkVHJlZSk/dC5wYXRjaGVkVHJlZTplLnRyZWUsbmV4dFVybDp1LHByZXZpb3VzTmV4dFVybDpsLGRlYnVnSW5mbzp0LmNvbGxlY3RlZERlYnVnSW5mbz8/bnVsbH19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDYyMTksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0hFQURfUkVRVUVTVF9LRVk6ZnVuY3Rpb24oKXtyZXR1cm4gb30sUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGFwcGVuZFNlZ21lbnRSZXF1ZXN0S2V5UGFydDpmdW5jdGlvbigpe3JldHVybiBjfSxjb252ZXJ0U2VnbWVudFBhdGhUb1N0YXRpY0V4cG9ydEZpbGVuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LGNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucigyNzQ1NCksdT0iIixvPSIvX2hlYWQiO2Z1bmN0aW9uIGkoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlLnN0YXJ0c1dpdGgobC5QQUdFX1NFR01FTlRfS0VZKT9sLlBBR0VfU0VHTUVOVF9LRVk6Ii9fbm90LWZvdW5kIj09PWU/Il9ub3QtZm91bmQiOmYoZSk7bGV0IHQ9ZVswXTtyZXR1cm4iJCIrZVsyXSsiJCIrZih0KX1mdW5jdGlvbiBjKGUsdCxyKXtyZXR1cm4gZSsiLyIrKCJjaGlsZHJlbiI9PT10P3I6YEAke2YodCl9LyR7cn1gKX1sZXQgcz0vXlthLXpBLVowLTlcLV9AXSskLztmdW5jdGlvbiBmKGUpe3JldHVybiBzLnRlc3QoZSk/ZToiISIrYnRvYShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuYF9fbmV4dCR7ZS5yZXBsYWNlKC9cLy9nLCIuIil9LnR4dGB9fSw4ODA2MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17ZG9lc1N0YXRpY1NlZ21lbnRBcHBlYXJJblVSTDpmdW5jdGlvbigpe3JldHVybiBmfSxnZXRDYWNoZUtleUZvckR5bmFtaWNQYXJhbTpmdW5jdGlvbigpe3JldHVybiBkfSxnZXRQYXJhbVZhbHVlRnJvbUNhY2hlS2V5OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LGdldFJlbmRlcmVkUGF0aG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sZ2V0UmVuZGVyZWRTZWFyY2g6ZnVuY3Rpb24oKXtyZXR1cm4gaX0scGFyc2VEeW5hbWljUGFyYW1Gcm9tVVJMUGFydDpmdW5jdGlvbigpe3JldHVybiBzfSx1cmxTZWFyY2hQYXJhbXNUb1BhcnNlZFVybFF1ZXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIHl9LHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcjpmdW5jdGlvbigpe3JldHVybiBofX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucigyNzQ1NCksdT1lLnIoNDYyMTkpLG89ZS5yKDM0NjQxKTtmdW5jdGlvbiBpKGUpe2xldCB0PWUuaGVhZGVycy5nZXQoby5ORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIpO3JldHVybiBudWxsIT09dD8iIj09PXQ/IiI6Ij8iK3Q6aChuZXcgVVJMKGUudXJsKSkuc2VhcmNofWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUuaGVhZGVycy5nZXQoby5ORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUik/P2gobmV3IFVSTChlLnVybCkpLnBhdGhuYW1lfWZ1bmN0aW9uIHMoZSx0LHIpe3N3aXRjaChlKXtjYXNlImMiOnJldHVybiByPHQubGVuZ3RoP3Quc2xpY2UocikubWFwKGU9PmVuY29kZVVSSUNvbXBvbmVudChlKSk6W107Y2FzZSJjaSguLikoLi4pIjpjYXNlImNpKC4pIjpjYXNlImNpKC4uKSI6Y2FzZSJjaSguLi4pIjp7bGV0IG49ZS5sZW5ndGgtMjtyZXR1cm4gcjx0Lmxlbmd0aD90LnNsaWNlKHIpLm1hcCgoZSx0KT0+MD09PXQ/ZW5jb2RlVVJJQ29tcG9uZW50KGUuc2xpY2UobikpOmVuY29kZVVSSUNvbXBvbmVudChlKSk6W119Y2FzZSJvYyI6cmV0dXJuIHI8dC5sZW5ndGg/dC5zbGljZShyKS5tYXAoZT0+ZW5jb2RlVVJJQ29tcG9uZW50KGUpKTpudWxsO2Nhc2UiZCI6aWYocj49dC5sZW5ndGgpcmV0dXJuIiI7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0W3JdKTtjYXNlImRpKC4uKSguLikiOmNhc2UiZGkoLikiOmNhc2UiZGkoLi4pIjpjYXNlImRpKC4uLikiOntsZXQgbj1lLmxlbmd0aC0yO2lmKHI+PXQubGVuZ3RoKXJldHVybiIiO3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodFtyXS5zbGljZShuKSl9ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gZihlKXtyZXR1cm4hKGU9PT11LlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWXx8ZS5zdGFydHNXaXRoKGwuUEFHRV9TRUdNRU5UX0tFWSl8fCIoIj09PWVbMF0mJmUuZW5kc1dpdGgoIikiKSkmJmUhPT1sLkRFRkFVTFRfU0VHTUVOVF9LRVkmJiIvX25vdC1mb3VuZCIhPT1lfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/KDAsbC5hZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KShlLE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHQpKSk6bnVsbD09PWU/IiI6ZS5qb2luKCIvIil9ZnVuY3Rpb24gaChlKXtsZXQgdD1uZXcgVVJMKGUpO3JldHVybiB0LnNlYXJjaFBhcmFtcy5kZWxldGUoby5ORVhUX1JTQ19VTklPTl9RVUVSWSksdH1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuImMiPT09dHx8Im9jIj09PXQ/ZS5zcGxpdCgiLyIpOmV9ZnVuY3Rpb24geShlKXtsZXQgdD17fTtmb3IobGV0W3Isbl1vZiBlLmVudHJpZXMoKSl2b2lkIDA9PT10W3JdP3Rbcl09bjpBcnJheS5pc0FycmF5KHRbcl0pP3Rbcl0ucHVzaChuKTp0W3JdPVt0W3JdLG5dO3JldHVybiB0fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY3NjI4LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjcmVhdGVJbml0aWFsUlNDUGF5bG9hZEZyb21GYWxsYmFja1ByZXJlbmRlcjpmdW5jdGlvbigpe3JldHVybiBjfSxnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aDpmdW5jdGlvbigpe3JldHVybiBpfSxnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gc30sbm9ybWFsaXplRmxpZ2h0RGF0YTpmdW5jdGlvbigpe3JldHVybiBmfSxwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IGw9ZS5yKDI3NDU0KSx1PWUucig4ODA2Miksbz1lLnIoODU1OTQpO2Z1bmN0aW9uIGkoZSl7bGV0W3QscixuLGFdPWUuc2xpY2UoLTQpLGw9ZS5zbGljZSgwLC00KTtyZXR1cm57cGF0aFRvU2VnbWVudDpsLnNsaWNlKDAsLTEpLHNlZ21lbnRQYXRoOmwsc2VnbWVudDpsW2wubGVuZ3RoLTFdPz8iIix0cmVlOnQsc2VlZERhdGE6cixoZWFkOm4saXNIZWFkUGFydGlhbDphLGlzUm9vdFJlbmRlcjo0PT09ZS5sZW5ndGh9fWZ1bmN0aW9uIGMoZSx0KXtsZXQgcj0oMCx1LmdldFJlbmRlcmVkUGF0aG5hbWUpKGUpLG49KDAsdS5nZXRSZW5kZXJlZFNlYXJjaCkoZSksYT0oMCxvLmNyZWF0ZUhyZWZGcm9tVXJsKShuZXcgVVJMKGxvY2F0aW9uLmhyZWYpKSxsPXQuZlswXSxpPWxbMF07cmV0dXJue2I6dC5iLGM6YS5zcGxpdCgiLyIpLHE6bixpOnQuaSxmOltbZnVuY3Rpb24gZSh0LHIsbixhKXtsZXQgbCxvLGk9dFswXTtpZigic3RyaW5nIj09dHlwZW9mIGkpbD1pLG89KDAsdS5kb2VzU3RhdGljU2VnbWVudEFwcGVhckluVVJMKShpKTtlbHNle2xldCBlPWlbMF0sdD1pWzJdLGM9KDAsdS5wYXJzZUR5bmFtaWNQYXJhbUZyb21VUkxQYXJ0KSh0LG4sYSk7bD1bZSwoMCx1LmdldENhY2hlS2V5Rm9yRHluYW1pY1BhcmFtKShjLHIpLHRdLG89ITB9bGV0IGM9bz9hKzE6YSxzPXRbMV0sZj17fTtmb3IobGV0IHQgaW4gcyl7bGV0IGE9c1t0XTtmW3RdPWUoYSxyLG4sYyl9cmV0dXJuW2wsZixudWxsLHRbM10sdFs0XV19KGksbixyLnNwbGl0KCIvIikuZmlsdGVyKGU9PiIiIT09ZSksMCksbFsxXSxsWzJdLGxbMl1dXSxtOnQubSxHOnQuRyxTOnQuU319ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5zbGljZSgyKX1mdW5jdGlvbiBmKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9lOmUubWFwKGU9PmkoZSkpfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gdD9lbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZSkpOmVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShmdW5jdGlvbiBlKHQpe3ZhciByLG47bGV0W2EsdSxvLGksYyxzXT10LGY9InN0cmluZyI9PXR5cGVvZihyPWEpJiZyLnN0YXJ0c1dpdGgobC5QQUdFX1NFR01FTlRfS0VZKyI/Iik/bC5QQUdFX1NFR01FTlRfS0VZOnIsZD17fTtmb3IobGV0W3Qscl1vZiBPYmplY3QuZW50cmllcyh1KSlkW3RdPWUocik7bGV0IGg9W2YsZCxudWxsLChuPWkpJiYicmVmcmVzaCIhPT1uP2k6bnVsbF07cmV0dXJuIHZvaWQgMCE9PWMmJihoWzRdPWMpLHZvaWQgMCE9PXMmJihoWzVdPXMpLGh9KGUpKSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjE3MDYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2dldEFwcEJ1aWxkSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0QXBwQnVpbGRJZDpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPSIiO2Z1bmN0aW9uIHUoZSl7bD1lfWZ1bmN0aW9uIG8oKXtyZXR1cm4gbH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyNzQxOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17ZGpiMkhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gbH0saGV4SGFzaDpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2Z1bmN0aW9uIGwoZSl7bGV0IHQ9NTM4MTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0PSh0PDw1KSt0K2UuY2hhckNvZGVBdChyKXwwO3JldHVybiB0Pj4+MH1mdW5jdGlvbiB1KGUpe3JldHVybiBsKGUpLnRvU3RyaW5nKDM2KS5zbGljZSgwLDUpfX0sNjg4NDcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49ZS5yKDI3NDE4KTtmdW5jdGlvbiBhKGUsdCxyLGEpe3JldHVybih2b2lkIDA9PT1lfHwiMCI9PT1lKSYmdm9pZCAwPT09dCYmdm9pZCAwPT09ciYmdm9pZCAwPT09YT8iIjooMCxuLmhleEhhc2gpKFtlfHwiMCIsdHx8IjAiLHJ8fCIwIixhfHwiMCJdLmpvaW4oIiwiKSl9fSw0MTMwMiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17c2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW06ZnVuY3Rpb24oKXtyZXR1cm4gb30sc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig2ODg0NyksdT1lLnIoMzQ2NDEpLG89KGUsdCk9PntpKGUsKDAsbC5jb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0pKHRbdS5ORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdLHRbdS5ORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUl0sdFt1Lk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXSx0W3UuTkVYVF9VUkxdKSl9LGk9KGUsdCk9PntsZXQgcj1lLnNlYXJjaCxuPShyLnN0YXJ0c1dpdGgoIj8iKT9yLnNsaWNlKDEpOnIpLnNwbGl0KCImIikuZmlsdGVyKGU9PmUmJiFlLnN0YXJ0c1dpdGgoYCR7dS5ORVhUX1JTQ19VTklPTl9RVUVSWX09YCkpO3QubGVuZ3RoPjA/bi5wdXNoKGAke3UuTkVYVF9SU0NfVU5JT05fUVVFUll9PSR7dH1gKTpuLnB1c2goYCR7dS5ORVhUX1JTQ19VTklPTl9RVUVSWX1gKSxlLnNlYXJjaD1uLmxlbmd0aD9gPyR7bi5qb2luKCImIil9YDoiIn07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTEwNiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO2xldCBuO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT17Y3JlYXRlRmV0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbTpmdW5jdGlvbigpe3JldHVybiBFfSxmZXRjaFNlcnZlclJlc3BvbnNlOmZ1bmN0aW9uKCl7cmV0dXJuIFB9fTtmb3IodmFyIGwgaW4gYSlPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDphW2xdfSk7bGV0IHU9ZS5yKDc1MDQ1KSxvPWUucigzNDY0MSksaT1lLnIoMzA5MzEpLGM9ZS5yKDg5NTk0KSxzPWUucig2NzYyOCksZj1lLnIoNjE3MDYpLGQ9ZS5yKDQxMzAyKSxoPWUucig4ODA2MikscD1lLnIoODg3NzQpLHk9dS5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0sZz11LmNyZWF0ZUZyb21GZXRjaDtmdW5jdGlvbiBSKGUpe3JldHVybigwLGgudXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyKShuZXcgVVJMKGUsbG9jYXRpb24ub3JpZ2luKSkudG9TdHJpbmcoKX1sZXQgXz0hMTthc3luYyBmdW5jdGlvbiBQKGUsdCl7bGV0e2ZsaWdodFJvdXRlclN0YXRlOnIsbmV4dFVybDpufT10LGE9e1tvLlJTQ19IRUFERVJdOiIxIixbby5ORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl06KDAscy5wcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KShyLHQuaXNIbXJSZWZyZXNoKX07biYmKGFbby5ORVhUX1VSTF09bik7dHJ5e2xldCB0PWF3YWl0IHYoZSxhLCJhdXRvIiwhMCkscj0oMCxoLnVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcikobmV3IFVSTCh0LnVybCkpLG49dC5yZWRpcmVjdGVkP3I6ZSxsPXQuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwiIix1PSEhdC5oZWFkZXJzLmdldCgidmFyeSIpPy5pbmNsdWRlcyhvLk5FWFRfVVJMKSxpPSEhdC5oZWFkZXJzLmdldChvLk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiksYz10LmhlYWRlcnMuZ2V0KG8uTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIpLGQ9bnVsbCE9PWM/MWUzKnBhcnNlSW50KGMsMTApOi0xO2lmKCFsLnN0YXJ0c1dpdGgoby5SU0NfQ09OVEVOVF9UWVBFX0hFQURFUil8fCF0Lm9rfHwhdC5ib2R5KXJldHVybiBlLmhhc2gmJihyLmhhc2g9ZS5oYXNoKSxSKHIudG9TdHJpbmcoKSk7bGV0IHA9dC5mbGlnaHRSZXNwb25zZTtpZihudWxsPT09cCl7bGV0IGUscj1pPyhlPXQuYm9keS5nZXRSZWFkZXIoKSxuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwodCl7Zm9yKDs7KXtsZXR7ZG9uZTpyLHZhbHVlOm59PWF3YWl0IGUucmVhZCgpO2lmKCFyKXt0LmVucXVldWUobik7Y29udGludWV9cmV0dXJufX19KSk6dC5ib2R5O3A9RShyLGEpfWxldCB5PWF3YWl0IHA7aWYoKDAsZi5nZXRBcHBCdWlsZElkKSgpIT09eS5iKXJldHVybiBSKHQudXJsKTtsZXQgZz0oMCxzLm5vcm1hbGl6ZUZsaWdodERhdGEpKHkuZik7aWYoInN0cmluZyI9PXR5cGVvZiBnKXJldHVybiBSKGcpO3JldHVybntmbGlnaHREYXRhOmcsY2Fub25pY2FsVXJsOm4scmVuZGVyZWRTZWFyY2g6KDAsaC5nZXRSZW5kZXJlZFNlYXJjaCkodCksY291bGRCZUludGVyY2VwdGVkOnUscHJlcmVuZGVyZWQ6eS5TLHBvc3Rwb25lZDppLHN0YWxlVGltZTpkLGRlYnVnSW5mbzpwLl9kZWJ1Z0luZm8/P251bGx9fWNhdGNoKHQpe3JldHVybiBffHxjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggUlNDIHBheWxvYWQgZm9yICR7ZX0uIEZhbGxpbmcgYmFjayB0byBicm93c2VyIG5hdmlnYXRpb24uYCx0KSxlLnRvU3RyaW5nKCl9fWFzeW5jIGZ1bmN0aW9uIHYoZSx0LHIsYSxsKXt2YXIgdSxzO2xldCBmPSgwLHAuZ2V0RGVwbG95bWVudElkKSgpO2YmJih0WyJ4LWRlcGxveW1lbnQtaWQiXT1mKTtsZXQgaD1uZXcgVVJMKGUpOygwLGQuc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0pKGgsdCk7bGV0IHk9ZmV0Y2goaCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnQscHJpb3JpdHk6cnx8dm9pZCAwLHNpZ25hbDpsfSksUj1hPyh1PXkscz10LGcodSx7Y2FsbFNlcnZlcjppLmNhbGxTZXJ2ZXIsZmluZFNvdXJjZU1hcFVSTDpjLmZpbmRTb3VyY2VNYXBVUkwsZGVidWdDaGFubmVsOm4mJm4ocyl9KSk6bnVsbCxfPWF3YWl0IHksUD1fLnJlZGlyZWN0ZWQsdj1uZXcgVVJMKF8udXJsLGgpO3JldHVybiB2LnNlYXJjaFBhcmFtcy5kZWxldGUoby5ORVhUX1JTQ19VTklPTl9RVUVSWSkse3VybDp2LmhyZWYscmVkaXJlY3RlZDpQLG9rOl8ub2ssaGVhZGVyczpfLmhlYWRlcnMsYm9keTpfLmJvZHksc3RhdHVzOl8uc3RhdHVzLGZsaWdodFJlc3BvbnNlOlJ9fWZ1bmN0aW9uIEUoZSx0KXtyZXR1cm4geShlLHtjYWxsU2VydmVyOmkuY2FsbFNlcnZlcixmaW5kU291cmNlTWFwVVJMOmMuZmluZFNvdXJjZU1hcFVSTCxkZWJ1Z0NoYW5uZWw6biYmbih0KX0pfSJ1Ij50eXBlb2Ygd2luZG93JiYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIiwoKT0+e189ITB9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCgpPT57Xz0hMX0pKSwoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1Nzc3OCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucigyNzQ1NCk7ZnVuY3Rpb24gYShlLHQ9ITEpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Ake2VbMF19fCR7ZVsxXX18JHtlWzJdfWA6dCYmZS5zdGFydHNXaXRoKG4uUEFHRV9TRUdNRU5UX0tFWSk/bi5QQUdFX1NFR01FTlRfS0VZOmV9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMzczNjgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCxyKXtsZXQgbj10WzBdLGE9clswXTtpZihBcnJheS5pc0FycmF5KG4pJiZBcnJheS5pc0FycmF5KGEpKXtpZihuWzBdIT09YVswXXx8blsyXSE9PWFbMl0pcmV0dXJuITB9ZWxzZSBpZihuIT09YSlyZXR1cm4hMDtpZih0WzRdKXJldHVybiFyWzRdO2lmKHJbNF0pcmV0dXJuITA7bGV0IGw9T2JqZWN0LnZhbHVlcyh0WzFdKVswXSx1PU9iamVjdC52YWx1ZXMoclsxXSlbMF07cmV0dXJuIWx8fCF1fHxlKGwsdSl9fX0pLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDE4OTM5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuLGE9e0ZyZXNobmVzc1BvbGljeTpmdW5jdGlvbigpe3JldHVybiBnfSxjcmVhdGVJbml0aWFsQ2FjaGVOb2RlRm9ySHlkcmF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGlzRGVmZXJyZWRSc2M6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sc3Bhd25EeW5hbWljUmVxdWVzdHM6ZnVuY3Rpb24oKXtyZXR1cm4gan0sc3RhcnRQUFJOYXZpZ2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIFB9fTtmb3IodmFyIGwgaW4gYSlPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDphW2xdfSk7bGV0IHU9ZS5yKDI3NDU0KSxvPWUucig4OTYxNiksaT1lLnIoODU1OTQpLGM9ZS5yKDU3Nzc4KSxzPWUucigxMTA2KSxmPWUucig5NDg3OSksZD1lLnIoNTk0MzApLGg9ZS5yKDM3MzY4KSxwPWUucig1NDAxMSkseT1lLnIoNjU0NjMpO3ZhciBnPSgobj17fSlbbi5EZWZhdWx0PTBdPSJEZWZhdWx0IixuW24uSHlkcmF0aW9uPTFdPSJIeWRyYXRpb24iLG5bbi5IaXN0b3J5VHJhdmVyc2FsPTJdPSJIaXN0b3J5VHJhdmVyc2FsIixuW24uUmVmcmVzaEFsbD0zXT0iUmVmcmVzaEFsbCIsbltuLkhNUlJlZnJlc2g9NF09IkhNUlJlZnJlc2giLG4pO2xldCBSPSgpPT57fTtmdW5jdGlvbiBfKGUsdCxyLG4pe3JldHVybiB2KGUsdCx2b2lkIDAsMSxyLG4sbnVsbCxudWxsLCExLG51bGwsbnVsbCwhMSx7c2Nyb2xsYWJsZVNlZ21lbnRzOm51bGwsc2VwYXJhdGVSZWZyZXNoVXJsczpudWxsfSkubm9kZX1mdW5jdGlvbiBQKGUsdCxyLG4sYSxsLHMsZixkLHAseSxnLFIpe3JldHVybiBmdW5jdGlvbiBlKHQscixuLGEsbCxzLGYsZCxwLHksZyxSLF8sUCxPLGosTSxBKXt2YXIgVSxDO2xldCBOLHcsRixJPWFbMF0sTD1sWzBdO2lmKCEoMCxvLm1hdGNoU2VnbWVudCkoTCxJKSlyZXR1cm4hZiYmKDAsaC5pc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQpKGEsbCl8fEw9PT11Lk5PVF9GT1VORF9TRUdNRU5UX0tFWXx8bnVsbD09PVB8fG51bGw9PT1PP251bGw6dih0LGwsbixzLGQscCx5LGcsUixQLE8saixBKTtsZXQgRD1udWxsIT09TyYmbnVsbCE9PVA/UC5jb25jYXQoW08sTF0pOltdLHg9bFsxXSxrPWFbMV0sSD1udWxsIT09ZD9kWzFdOm51bGwsQj1udWxsIT09eT95WzFdOm51bGwsSz0hMD09PWxbNF0sVj1mfHxLLHE9dm9pZCAwIT09bj9uLnBhcmFsbGVsUm91dGVzOnZvaWQgMCxHPSExLHo9ITE7c3dpdGNoKHMpe2Nhc2UgMDpjYXNlIDI6Y2FzZSAxOkc9ITEsej0hMTticmVhaztjYXNlIDM6Y2FzZSA0Okc9ITAsej0hMH1sZXQgWD1uZXcgTWFwKEc/dm9pZCAwOnEpLFc9MD09PU9iamVjdC5rZXlzKHgpLmxlbmd0aDtpZih2b2lkIDA9PT1ufHx6fHxXJiZfKWlmKG51bGwhPT1kJiZudWxsIT09ZFswXSl7bGV0IGU9ZFswXSxyPWRbMl0sbj1udWxsPT09cDt3PVMoZSxyLCExLHAsbixXLFgsdCksRj1XJiZufWVsc2UgaWYobnVsbCE9PXkpe2xldCBlPXlbMF0scj15WzJdLG49eVszXTt3PVMoZSxyLG4sZyxSLFcsWCx0KSxGPW58fFcmJlJ9ZWxzZSB3PVQoWCxXLHQscyksRj0hMDtlbHNlIHc9YighMSxuLFgpLEY9ITE7bGV0IFk9bFsyXSwkPSJzdHJpbmciPT10eXBlb2YgWSYmInJlZnJlc2giPT09bFszXT9ZOk07RiYmbnVsbCE9PSQmJihVPUEsQz0kLG51bGw9PT0oTj1VLnNlcGFyYXRlUmVmcmVzaFVybHMpP1Uuc2VwYXJhdGVSZWZyZXNoVXJscz1uZXcgU2V0KFtDXSk6Ti5hZGQoQykpO2xldCBRPXt9LEo9bnVsbCxaPSExLGVlPXt9O2ZvcihsZXQgbiBpbiB4KXtsZXQgYT14W25dLGw9a1tuXTtpZih2b2lkIDA9PT1sKXJldHVybiBudWxsO2xldCBvPXZvaWQgMCE9PXE/cS5nZXQobik6dm9pZCAwLGY9bnVsbCE9PUg/SFtuXTpudWxsLGQ9bnVsbCE9PUI/QltuXTpudWxsLGg9YVswXSx5PXAsUD1nLHY9UjsyIT09cyYmaD09PXUuREVGQVVMVF9TRUdNRU5UX0tFWSYmKGg9KGE9ZnVuY3Rpb24oZSx0KXtsZXQgcjtyZXR1cm4icmVmcmVzaCI9PT10WzNdP3I9dDooKHI9RSh0LHRbMV0pKVsyXT0oMCxpLmNyZWF0ZUhyZWZGcm9tVXJsKShlKSxyWzNdPSJyZWZyZXNoIikscn0ocixsKSlbMF0sZj1udWxsLHk9bnVsbCxkPW51bGwsUD1udWxsLHY9ITEpO2xldCBtPSgwLGMuY3JlYXRlUm91dGVyQ2FjaGVLZXkpKGgpLGI9ZSh0LHIsdm9pZCAwIT09bz9vLmdldChtKTp2b2lkIDAsbCxhLHMsVixmPz9udWxsLHksZD8/bnVsbCxQLHYsXyxELG4sanx8RiwkLEEpO2lmKG51bGw9PT1iKXJldHVybiBudWxsO251bGw9PT1KJiYoSj1uZXcgTWFwKSxKLnNldChuLGIpO2xldCBTPWIubm9kZTtpZihudWxsIT09Uyl7bGV0IGU9bmV3IE1hcChHP3ZvaWQgMDpvKTtlLnNldChtLFMpLFguc2V0KG4sZSl9bGV0IFQ9Yi5yb3V0ZTtRW25dPVQ7bGV0IE89Yi5keW5hbWljUmVxdWVzdFRyZWU7bnVsbCE9PU8/KFo9ITAsZWVbbl09Tyk6ZWVbbl09VH1yZXR1cm57c3RhdHVzOishRixyb3V0ZTpFKGwsUSksbm9kZTp3LGR5bmFtaWNSZXF1ZXN0VHJlZTptKGwsZWUsRixaLGopLHJlZnJlc2hVcmw6JCxjaGlsZHJlbjpKfX0oZSx0LG51bGwhPT1yP3I6dm9pZCAwLG4sYSxsLCExLHMsZixkLHAseSxnLG51bGwsbnVsbCwhMSxudWxsLFIpfWZ1bmN0aW9uIHYoZSx0LHIsbixhLGwsdSxvLGkscyxmLGQsaCl7bGV0IHksZyxSPXRbMF0sXz1udWxsIT09ZiYmbnVsbCE9PXM/cy5jb25jYXQoW2YsUl0pOltdLFA9dFsxXSxPPW51bGwhPT11P3VbMV06bnVsbCxqPW51bGwhPT1hP2FbMV06bnVsbCxNPXZvaWQgMCE9PXI/ci5wYXJhbGxlbFJvdXRlczp2b2lkIDAsQT0hMSxVPSExLEM9ITE7c3dpdGNoKG4pe2Nhc2UgMDpBPSExLFU9dm9pZCAwPT09cnx8ZS1yLm5hdmlnYXRlZEF0Pj1wLkRZTkFNSUNfU1RBTEVUSU1FX01TLEM9ITE7YnJlYWs7Y2FzZSAxOlU9ITEsQT0hMSxDPSExO2JyZWFrO2Nhc2UgMjppZihVPSExLFU9ITEsdm9pZCAwIT09cil7bGV0IGU9ci5yc2M7Qz0hTihlKXx8InBlbmRpbmciIT09ZS5zdGF0dXN9ZWxzZSBDPSExO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6VT0hMCxBPSEwLEM9ITF9bGV0IHc9bmV3IE1hcChBP3ZvaWQgMDpNKSxGPTA9PT1PYmplY3Qua2V5cyhQKS5sZW5ndGg7aWYoRiYmKG51bGw9PT1oLnNjcm9sbGFibGVTZWdtZW50cyYmKGguc2Nyb2xsYWJsZVNlZ21lbnRzPVtdKSxoLnNjcm9sbGFibGVTZWdtZW50cy5wdXNoKF8pKSxVfHx2b2lkIDA9PT1yKWlmKG51bGwhPT1hJiZudWxsIT09YVswXSl7bGV0IHQ9YVswXSxyPWFbMl0sdT1udWxsPT09bCYmMSE9PW47eT1TKHQsciwhMSxsLHUsRix3LGUpLGc9RiYmdX1lbHNlIGlmKDE9PT1uJiZGJiZudWxsIT09bCl5PVMobnVsbCxudWxsLCExLGwsITEsRix3LGUpLGc9ITE7ZWxzZSBpZigxIT09biYmbnVsbCE9PXUpe2xldCB0PXVbMF0scj11WzJdLG49dVszXTt5PVModCxyLG4sbyxpLEYsdyxlKSxnPW58fEYmJml9ZWxzZSB5PVQodyxGLGUsbiksZz0hMDtlbHNlIHk9YihDLHIsdyksZz0hMTtsZXQgST17fSxMPW51bGwsRD0hMSx4PXt9O2ZvcihsZXQgdCBpbiBQKXtsZXQgcj1QW3RdLGE9dm9pZCAwIT09TT9NLmdldCh0KTp2b2lkIDAsdT1udWxsIT09aj9qW3RdOm51bGwscz1udWxsIT09Tz9PW3RdOm51bGwsZj1yWzBdLHA9KDAsYy5jcmVhdGVSb3V0ZXJDYWNoZUtleSkoZikseT12KGUscix2b2lkIDAhPT1hP2EuZ2V0KHApOnZvaWQgMCxuLHU/P251bGwsbCxzPz9udWxsLG8saSxfLHQsZHx8ZyxoKTtudWxsPT09TCYmKEw9bmV3IE1hcCksTC5zZXQodCx5KTtsZXQgUj15Lm5vZGU7aWYobnVsbCE9PVIpe2xldCBlPW5ldyBNYXAoQT92b2lkIDA6YSk7ZS5zZXQocCxSKSx3LnNldCh0LGUpfWxldCBFPXkucm91dGU7SVt0XT1FO2xldCBtPXkuZHluYW1pY1JlcXVlc3RUcmVlO251bGwhPT1tPyhEPSEwLHhbdF09bSk6eFt0XT1FfXJldHVybntzdGF0dXM6KyFnLHJvdXRlOkUodCxJKSxub2RlOnksZHluYW1pY1JlcXVlc3RUcmVlOm0odCx4LGcsRCxkKSxyZWZyZXNoVXJsOm51bGwsY2hpbGRyZW46TH19ZnVuY3Rpb24gRShlLHQpe2xldCByPVtlWzBdLHRdO3JldHVybiAyIGluIGUmJihyWzJdPWVbMl0pLDMgaW4gZSYmKHJbM109ZVszXSksNCBpbiBlJiYocls0XT1lWzRdKSxyfWZ1bmN0aW9uIG0oZSx0LHIsbixhKXtsZXQgbD1udWxsO3JldHVybiByPyhsPUUoZSx0KSxhfHwobFszXT0icmVmZXRjaCIpKTpsPW4/RShlLHQpOm51bGwsbH1mdW5jdGlvbiBiKGUsdCxyKXtyZXR1cm57cnNjOnQucnNjLHByZWZldGNoUnNjOmU/bnVsbDp0LnByZWZldGNoUnNjLGhlYWQ6dC5oZWFkLHByZWZldGNoSGVhZDplP251bGw6dC5wcmVmZXRjaEhlYWQsbG9hZGluZzp0LmxvYWRpbmcscGFyYWxsZWxSb3V0ZXM6cixuYXZpZ2F0ZWRBdDp0Lm5hdmlnYXRlZEF0fX1mdW5jdGlvbiBTKGUsdCxyLG4sYSxsLHUsbyl7bGV0IGksYyxzLGY7cmV0dXJuIHI/KGM9ZSxpPXcoKSk6KGM9bnVsbCxpPWUpLGw/YT8ocz1uLGY9dygpKToocz1udWxsLGY9bik6KHM9bnVsbCxmPW51bGwpLHtyc2M6aSxwcmVmZXRjaFJzYzpjLGhlYWQ6ZixwcmVmZXRjaEhlYWQ6cyxsb2FkaW5nOnQscGFyYWxsZWxSb3V0ZXM6dSxuYXZpZ2F0ZWRBdDpvfX1mdW5jdGlvbiBUKGUsdCxyLG4pe2xldCBhPTE9PT1uO3JldHVybntyc2M6YT9udWxsOncoKSxwcmVmZXRjaFJzYzpudWxsLGhlYWQ6IWEmJnQ/dygpOm51bGwscHJlZmV0Y2hIZWFkOm51bGwsbG9hZGluZzphP251bGw6dygpLHBhcmFsbGVsUm91dGVzOmUsbmF2aWdhdGVkQXQ6cn19bGV0IE89ITE7ZnVuY3Rpb24gaihlLHQscixuLGEpe2xldCBsPWUuZHluYW1pY1JlcXVlc3RUcmVlO2lmKG51bGw9PT1sKXtPPSExO3JldHVybn1sZXQgdT1VKGUsbCx0LHIsbiksbz1hLnNlcGFyYXRlUmVmcmVzaFVybHMsYz1udWxsO2lmKG51bGwhPT1vKXtjPVtdO2xldCBhPSgwLGkuY3JlYXRlSHJlZkZyb21VcmwpKHQpO2ZvcihsZXQgdCBvZiBvKXQhPT1hJiZudWxsIT09bCYmYy5wdXNoKFUoZSxsLG5ldyBVUkwodCxsb2NhdGlvbi5vcmlnaW4pLHIsbikpfU0oZSxyLHUsYykudGhlbihSLFIpfWFzeW5jIGZ1bmN0aW9uIE0oZSx0LHIsbil7dmFyIGEsbDtsZXQgdT1hd2FpdCAoYT1yLGw9bixuZXcgUHJvbWlzZShlPT57bGV0IHQ9dD0+ezA9PT10LmV4aXRTdGF0dXM/MD09LS1uJiZlKDApOmUodC5leGl0U3RhdHVzKX0scj0oKT0+ZSgyKSxuPTE7YS50aGVuKHQsciksbnVsbCE9PWwmJihuKz1sLmxlbmd0aCxsLmZvckVhY2goZT0+ZS50aGVuKHQscikpKX0pKTtzd2l0Y2goMD09PXUmJih1PWZ1bmN0aW9uIGUodCxyLG4pe3ZhciBhLGwsdTtsZXQgbyxpLGMsczswPT09dC5zdGF0dXM/KHQuc3RhdHVzPTIsYT10Lm5vZGUsbD1yLHU9bixOKGk9YS5yc2MpJiYobnVsbD09PWw/aS5yZXNvbHZlKG51bGwsdSk6aS5yZWplY3QobCx1KSksTihjPWEubG9hZGluZykmJmMucmVzb2x2ZShudWxsLHUpLE4ocz1hLmhlYWQpJiZzLnJlc29sdmUobnVsbCx1KSxvPW51bGw9PT10LnJlZnJlc2hVcmw/MToyKTpvPTA7bGV0IGY9dC5jaGlsZHJlbjtpZihudWxsIT09Zilmb3IobGV0Wyx0XW9mIGYpe2xldCBhPWUodCxyLG4pO2E+byYmKG89YSl9cmV0dXJuIG99KGUsbnVsbCxudWxsKSksdSl7Y2FzZSAwOk89ITE7cmV0dXJuO2Nhc2UgMTp7bGV0IG49YXdhaXQgcjtBKCExLG4udXJsLHQsbi5zZWVkLGUucm91dGUpO3JldHVybn1jYXNlIDI6e2xldCBuPWF3YWl0IHI7QSghMCxuLnVybCx0LG4uc2VlZCxlLnJvdXRlKTtyZXR1cm59ZGVmYXVsdDpyZXR1cm4gdX19ZnVuY3Rpb24gQShlLHQscixuLGEpe2U9ZXx8TyxPPSEwO2xldCBsPXt0eXBlOmQuQUNUSU9OX1NFUlZFUl9QQVRDSCxwcmV2aW91c1RyZWU6YSx1cmw6dCxuZXh0VXJsOnIsc2VlZDpuLG1wYTplfTsoMCxmLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKShsKX1hc3luYyBmdW5jdGlvbiBVKGUsdCxyLG4sYSl7dHJ5e2xldCBsPWF3YWl0ICgwLHMuZmV0Y2hTZXJ2ZXJSZXNwb25zZSkocix7ZmxpZ2h0Um91dGVyU3RhdGU6dCxuZXh0VXJsOm4saXNIbXJSZWZyZXNoOjQ9PT1hfSk7aWYoInN0cmluZyI9PXR5cGVvZiBsKXJldHVybntleGl0U3RhdHVzOjIsdXJsOm5ldyBVUkwobCxsb2NhdGlvbi5vcmlnaW4pLHNlZWQ6bnVsbH07bGV0IHU9KDAseS5jb252ZXJ0U2VydmVyUGF0Y2hUb0Z1bGxUcmVlKShlLnJvdXRlLGwuZmxpZ2h0RGF0YSxsLnJlbmRlcmVkU2VhcmNoKTtyZXR1cm57ZXhpdFN0YXR1czorISFmdW5jdGlvbiBlKHQscixuLGEsbCl7MD09PXQuc3RhdHVzJiZudWxsIT09biYmKHQuc3RhdHVzPTEsZnVuY3Rpb24oZSx0LHIsbil7bGV0IGE9ZS5yc2MsbD10WzBdO2lmKG51bGw9PT1sKXJldHVybjtudWxsPT09YT9lLnJzYz1sOk4oYSkmJmEucmVzb2x2ZShsLG4pO2xldCB1PWUubG9hZGluZztpZihOKHUpKXtsZXQgZT10WzJdO3UucmVzb2x2ZShlLG4pfWxldCBvPWUuaGVhZDtOKG8pJiZvLnJlc29sdmUocixuKX0odC5ub2RlLG4sYSxsKSk7bGV0IHU9dC5jaGlsZHJlbixpPXJbMV0sYz1udWxsIT09bj9uWzFdOm51bGwscz0hMTtpZihudWxsIT09dSlmb3IobGV0IHQgaW4gaSl7bGV0IHI9aVt0XSxuPW51bGwhPT1jP2NbdF06bnVsbCxmPXUuZ2V0KHQpO2lmKHZvaWQgMD09PWYpcz0hMDtlbHNle2xldCB0PWYucm91dGVbMF07KDAsby5tYXRjaFNlZ21lbnQpKHJbMF0sdCkmJm51bGwhPW4mJmUoZixyLG4sYSxsKSYmKHM9ITApfX1yZXR1cm4gc30oZSx1LnRyZWUsdS5kYXRhLHUuaGVhZCxsLmRlYnVnSW5mbyksdXJsOm5ldyBVUkwobC5jYW5vbmljYWxVcmwsbG9jYXRpb24ub3JpZ2luKSxzZWVkOnV9fWNhdGNoe3JldHVybntleGl0U3RhdHVzOjIsdXJsOnIsc2VlZDpudWxsfX19bGV0IEM9U3ltYm9sKCk7ZnVuY3Rpb24gTihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlLnRhZz09PUN9ZnVuY3Rpb24gdygpe2xldCBlLHQscj1bXSxuPW5ldyBQcm9taXNlKChyLG4pPT57ZT1yLHQ9bn0pO3JldHVybiBuLnN0YXR1cz0icGVuZGluZyIsbi5yZXNvbHZlPSh0LGEpPT57InBlbmRpbmciPT09bi5zdGF0dXMmJihuLnN0YXR1cz0iZnVsZmlsbGVkIixuLnZhbHVlPXQsbnVsbCE9PWEmJnIucHVzaC5hcHBseShyLGEpLGUodCkpfSxuLnJlamVjdD0oZSxhKT0+eyJwZW5kaW5nIj09PW4uc3RhdHVzJiYobi5zdGF0dXM9InJlamVjdGVkIixuLnJlYXNvbj1lLG51bGwhPT1hJiZyLnB1c2guYXBwbHkocixhKSx0KGUpKX0sbi50YWc9QyxuLl9kZWJ1Z0luZm89cixufSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI0NDU3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJIYXNMb2FkaW5nQm91bmRhcnkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciBuLGE9KChuPXt9KVtuLlNlZ21lbnRIYXNMb2FkaW5nQm91bmRhcnk9MV09IlNlZ21lbnRIYXNMb2FkaW5nQm91bmRhcnkiLG5bbi5TdWJ0cmVlSGFzTG9hZGluZ0JvdW5kYXJ5PTJdPSJTdWJ0cmVlSGFzTG9hZGluZ0JvdW5kYXJ5IixuW24uU3VidHJlZUhhc05vTG9hZGluZ0JvdW5kYXJ5PTNdPSJTdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnkiLG4pfSw1MjQxMywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbixhLGwsdT17RmV0Y2hTdHJhdGVneTpmdW5jdGlvbigpe3JldHVybiBzfSxOYXZpZ2F0aW9uUmVzdWx0VGFnOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFByZWZldGNoUHJpb3JpdHk6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgbyBpbiB1KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0OnVbb119KTt2YXIgaT0oKG49e30pW24uTVBBPTBdPSJNUEEiLG5bbi5TdWNjZXNzPTFdPSJTdWNjZXNzIixuW24uTm9PcD0yXT0iTm9PcCIsbltuLkFzeW5jPTNdPSJBc3luYyIsbiksYz0oKGE9e30pW2EuSW50ZW50PTJdPSJJbnRlbnQiLGFbYS5EZWZhdWx0PTFdPSJEZWZhdWx0IixhW2EuQmFja2dyb3VuZD0wXT0iQmFja2dyb3VuZCIsYSkscz0oKGw9e30pW2wuTG9hZGluZ0JvdW5kYXJ5PTBdPSJMb2FkaW5nQm91bmRhcnkiLGxbbC5QUFI9MV09IlBQUiIsbFtsLlBQUlJ1bnRpbWU9Ml09IlBQUlJ1bnRpbWUiLGxbbC5GdWxsPTNdPSJGdWxsIixsKTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw0MTg1MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17ZGVsZXRlRnJvbUxydTpmdW5jdGlvbigpe3JldHVybiBmfSxscnVQdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY30sdXBkYXRlTHJ1U2l6ZTpmdW5jdGlvbigpe3JldHVybiBzfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig3NTc0NSksdT1udWxsLG89ITEsaT0wO2Z1bmN0aW9uIGMoZSl7aWYodT09PWUpcmV0dXJuO2xldCB0PWUucHJldixyPWUubmV4dDtpZihudWxsPT09cnx8bnVsbD09PXQ/KGkrPWUuc2l6ZSxkKCkpOih0Lm5leHQ9cixyLnByZXY9dCksbnVsbD09PXUpZS5wcmV2PWUsZS5uZXh0PWU7ZWxzZXtsZXQgdD11LnByZXY7ZS5wcmV2PXQsbnVsbCE9PXQmJih0Lm5leHQ9ZSksZS5uZXh0PXUsdS5wcmV2PWV9dT1lfWZ1bmN0aW9uIHMoZSx0KXtsZXQgcj1lLnNpemU7ZS5zaXplPXQsbnVsbCE9PWUubmV4dCYmKGk9aS1yK3QsZCgpKX1mdW5jdGlvbiBmKGUpe2xldCB0PWUubmV4dCxyPWUucHJldjtudWxsIT09dCYmbnVsbCE9PXImJihpLT1lLnNpemUsZS5uZXh0PW51bGwsZS5wcmV2PW51bGwsdT09PWU/dD09PXU/dT1udWxsOih1PXQsci5uZXh0PXQsdC5wcmV2PXIpOihyLm5leHQ9dCx0LnByZXY9cikpfWZ1bmN0aW9uIGQoKXtvfHxpPD0weDMyMDAwMDB8fChvPSEwLHAoaCkpfWZ1bmN0aW9uIGgoKXtvPSExO2Zvcig7aT4weDJkMDAwMDAmJm51bGwhPT11Oyl7bGV0IGU9dS5wcmV2O251bGwhPT1lJiYoMCxsLmRlbGV0ZU1hcEVudHJ5KShlKX19bGV0IHA9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVlc3RJZGxlQ2FsbGJhY2s/cmVxdWVzdElkbGVDYWxsYmFjazplPT5zZXRUaW1lb3V0KGUsMCk7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzU3NDUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0ZhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGNyZWF0ZUNhY2hlTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGRlbGV0ZUZyb21DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiBofSxkZWxldGVNYXBFbnRyeTpmdW5jdGlvbigpe3JldHVybiBwfSxnZXRGcm9tQ2FjaGVNYXA6ZnVuY3Rpb24oKXtyZXR1cm4gY30saXNWYWx1ZUV4cGlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc2V0SW5DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiBmfSxzZXRTaXplSW5DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiB5fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig0MTg1MiksdT17fSxvPXt9O2Z1bmN0aW9uIGkoKXtyZXR1cm57cGFyZW50Om51bGwsa2V5Om51bGwsdmFsdWU6bnVsbCxtYXA6bnVsbCxwcmV2Om51bGwsbmV4dDpudWxsLHNpemU6MH19ZnVuY3Rpb24gYyhlLHQscixuLGEpe2xldCBpPWZ1bmN0aW9uIGUodCxyLG4sYSxsLGkpe2xldCBjLGY7aWYobnVsbCE9PWEpYz1hLnZhbHVlLGY9YS5wYXJlbnQ7ZWxzZSBpZihsJiZpIT09byljPW8sZj1udWxsO2Vsc2UgcmV0dXJuIG51bGw9PT1uLnZhbHVlP246cyh0LHIsbi52YWx1ZSk/KHAobiksbnVsbCk6bjtsZXQgZD1uLm1hcDtpZihudWxsIT09ZCl7bGV0IG49ZC5nZXQoYyk7aWYodm9pZCAwIT09bil7bGV0IGE9ZSh0LHIsbixmLGwsYyk7aWYobnVsbCE9PWEpcmV0dXJuIGF9bGV0IGE9ZC5nZXQodSk7aWYodm9pZCAwIT09YSlyZXR1cm4gZSh0LHIsYSxmLGwsYyl9cmV0dXJuIG51bGx9KGUsdCxyLG4sYSwwKTtyZXR1cm4gbnVsbD09PWl8fG51bGw9PT1pLnZhbHVlP251bGw6KCgwLGwubHJ1UHV0KShpKSxpLnZhbHVlKX1mdW5jdGlvbiBzKGUsdCxyKXtyZXR1cm4gci5zdGFsZUF0PD1lfHxyLnZlcnNpb248dH1mdW5jdGlvbiBmKGUsdCxyLG4pe2xldCBhPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbj1lLGE9dCxsPW51bGw7Zm9yKDs7KXtsZXQgZT1sO2lmKG51bGwhPT1hKWw9YS52YWx1ZSxhPWEucGFyZW50O2Vsc2UgaWYociYmZSE9PW8pe2lmKG51bGw9PT1uLnZhbHVlKXJldHVybiBuO2w9b31lbHNlIGJyZWFrO2xldCB0PW4ubWFwO2lmKG51bGwhPT10KXtsZXQgZT10LmdldChsKTtpZih2b2lkIDAhPT1lKXtuPWU7Y29udGludWV9fWVsc2UgdD1uZXcgTWFwLG4ubWFwPXQ7bGV0IHU9e3BhcmVudDpuLGtleTpsLHZhbHVlOm51bGwsbWFwOm51bGwscHJldjpudWxsLG5leHQ6bnVsbCxzaXplOjB9O3Quc2V0KGwsdSksbj11fXJldHVybiBufShlLHQsbik7ZChhLHIpLCgwLGwubHJ1UHV0KShhKSwoMCxsLnVwZGF0ZUxydVNpemUpKGEsci5zaXplKX1mdW5jdGlvbiBkKGUsdCl7bnVsbCE9PWUudmFsdWUmJihlLnZhbHVlLnJlZj1udWxsLGUudmFsdWU9bnVsbCk7bGV0IHI9dC5yZWY7ZS52YWx1ZT10LHQucmVmPWUsKDAsbC51cGRhdGVMcnVTaXplKShlLHQuc2l6ZSksbnVsbCE9PXImJnIhPT1lJiZyLnZhbHVlPT09dCYmcChyKX1mdW5jdGlvbiBoKGUpe2xldCB0PWUucmVmO251bGwhPT10JiYoZS5yZWY9bnVsbCxwKHQpKX1mdW5jdGlvbiBwKGUpe2UudmFsdWU9bnVsbCwoMCxsLmRlbGV0ZUZyb21McnUpKGUpO2xldCB0PWUubWFwO2lmKG51bGw9PT10KXtsZXQgdD1lLnBhcmVudCxyPWUua2V5O2Zvcig7bnVsbCE9PXQ7KXtsZXQgZT10Lm1hcDtpZihudWxsIT09ZSYmKGUuZGVsZXRlKHIpLDA9PT1lLnNpemUpJiYodC5tYXA9bnVsbCxudWxsPT09dC52YWx1ZSkpe3I9dC5rZXksdD10LnBhcmVudDtjb250aW51ZX1icmVha319ZWxzZXtsZXQgcj10LmdldChvKTt2b2lkIDAhPT1yJiZudWxsIT09ci52YWx1ZSYmZChlLHIudmFsdWUpfX1mdW5jdGlvbiB5KGUsdCl7bGV0IHI9ZS5yZWY7bnVsbCE9PXImJihlLnNpemU9dCwoMCxsLnVwZGF0ZUxydVNpemUpKHIsdCkpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY1ODkzLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXthcHBlbmRMYXlvdXRWYXJ5UGF0aDpmdW5jdGlvbigpe3JldHVybiBzfSxjbG9uZVBhZ2VWYXJ5UGF0aFdpdGhOZXdTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4geX0sZmluYWxpemVMYXlvdXRWYXJ5UGF0aDpmdW5jdGlvbigpe3JldHVybiBmfSxmaW5hbGl6ZU1ldGFkYXRhVmFyeVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sZmluYWxpemVQYWdlVmFyeVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZ2V0RnVsZmlsbGVkUm91dGVWYXJ5UGF0aDpmdW5jdGlvbigpe3JldHVybiBjfSxnZXRSb3V0ZVZhcnlQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGdldFNlZ21lbnRWYXJ5UGF0aEZvclJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gcH19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbD1lLnIoNTI0MTMpLHU9ZS5yKDc1NzQ1KSxvPWUucig0NjIxOSk7ZnVuY3Rpb24gaShlLHQscil7cmV0dXJue3ZhbHVlOmUscGFyZW50Ont2YWx1ZTp0LHBhcmVudDp7dmFsdWU6cixwYXJlbnQ6bnVsbH19fX1mdW5jdGlvbiBjKGUsdCxyLG4pe3JldHVybnt2YWx1ZTplLHBhcmVudDp7dmFsdWU6dCxwYXJlbnQ6e3ZhbHVlOm4/cjp1LkZhbGxiYWNrLHBhcmVudDpudWxsfX19fWZ1bmN0aW9uIHMoZSx0KXtyZXR1cm57dmFsdWU6dCxwYXJlbnQ6ZX19ZnVuY3Rpb24gZihlLHQpe3JldHVybnt2YWx1ZTplLHBhcmVudDp0fX1mdW5jdGlvbiBkKGUsdCxyKXtyZXR1cm57dmFsdWU6ZSxwYXJlbnQ6e3ZhbHVlOnQscGFyZW50OnJ9fX1mdW5jdGlvbiBoKGUsdCxyKXtyZXR1cm57dmFsdWU6ZStvLkhFQURfUkVRVUVTVF9LRVkscGFyZW50Ont2YWx1ZTp0LHBhcmVudDpyfX19ZnVuY3Rpb24gcChlLHQpe2xldCByPXQudmFyeVBhdGg7aWYodC5pc1BhZ2UmJmUhPT1sLkZldGNoU3RyYXRlZ3kuRnVsbCYmZSE9PWwuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lKXtsZXQgZT1yLnBhcmVudC5wYXJlbnQ7cmV0dXJue3ZhbHVlOnIudmFsdWUscGFyZW50Ont2YWx1ZTp1LkZhbGxiYWNrLHBhcmVudDplfX19cmV0dXJuIHJ9ZnVuY3Rpb24geShlLHQpe2xldCByPWUucGFyZW50O3JldHVybnt2YWx1ZTplLnZhbHVlLHBhcmVudDp7dmFsdWU6dCxwYXJlbnQ6ci5wYXJlbnR9fX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNjMxNiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtsZXQgcj1uZXcgVVJMKGUpO3JldHVybntwYXRobmFtZTpyLnBhdGhuYW1lLHNlYXJjaDpyLnNlYXJjaCxuZXh0VXJsOnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlQ2FjaGVLZXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDc1NzgwLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjYW5jZWxQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gRX0saXNQcmVmZXRjaFRhc2tEaXJ0eTpmdW5jdGlvbigpe3JldHVybiBifSxwaW5nUHJlZmV0Y2hUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LHJlc2NoZWR1bGVQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sc2NoZWR1bGVQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sc3RhcnRSZXZhbGlkYXRpb25Db29sZG93bjpmdW5jdGlvbigpe3JldHVybiBQfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucigyNDQ1NyksdT1lLnIoODk2MTYpLG89ZS5yKDQ0NjY3KSxpPWUucig2NTg5MyksYz1lLnIoMTYzMTYpLHM9ZS5yKDUyNDEzKSxmPWUucigyNzQ1NCksZD0iZnVuY3Rpb24iPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6ZT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbihlKS5jYXRjaChlPT5zZXRUaW1lb3V0KCgpPT57dGhyb3cgZX0pKSxoPVtdLHA9MCx5PTAsZz0hMSxSPW51bGwsXz1udWxsO2Z1bmN0aW9uIFAoKXtudWxsIT09XyYmY2xlYXJUaW1lb3V0KF8pLF89c2V0VGltZW91dCgoKT0+e189bnVsbCxUKCl9LDMwMCl9ZnVuY3Rpb24gdihlLHQscixuLGEpe2xldCBsPXtrZXk6ZSx0cmVlQXRUaW1lT2ZQcmVmZXRjaDp0LGNhY2hlVmVyc2lvbjooMCxvLmdldEN1cnJlbnRDYWNoZVZlcnNpb24pKCkscHJpb3JpdHk6bixwaGFzZToxLGhhc0JhY2tncm91bmRXb3JrOiExLHNwYXduZWRSdW50aW1lUHJlZmV0Y2hlczpudWxsLGZldGNoU3RyYXRlZ3k6cixzb3J0SWQ6eSsrLGlzQ2FuY2VsZWQ6ITEsb25JbnZhbGlkYXRlOmEsX2hlYXBJbmRleDotMX07cmV0dXJuIFMobCksQihoLGwpLFQoKSxsfWZ1bmN0aW9uIEUoZSl7ZS5pc0NhbmNlbGVkPSEwLGZ1bmN0aW9uKGUsdCl7bGV0IHI9dC5faGVhcEluZGV4O2lmKC0xIT09ciYmKHQuX2hlYXBJbmRleD0tMSwwIT09ZS5sZW5ndGgpKXtsZXQgbj1lLnBvcCgpO24hPT10JiYoZVtyXT1uLG4uX2hlYXBJbmRleD1yLHooZSxuLHIpKX19KGgsZSl9ZnVuY3Rpb24gbShlLHQscixuKXtlLmlzQ2FuY2VsZWQ9ITEsZS5waGFzZT0xLGUuc29ydElkPXkrKyxlLnByaW9yaXR5PWU9PT1SP3MuUHJlZmV0Y2hQcmlvcml0eS5JbnRlbnQ6bixlLnRyZWVBdFRpbWVPZlByZWZldGNoPXQsZS5mZXRjaFN0cmF0ZWd5PXIsUyhlKSwtMSE9PWUuX2hlYXBJbmRleD9xKGgsZSk6QihoLGUpLFQoKX1mdW5jdGlvbiBiKGUsdCxyKXtsZXQgbj0oMCxvLmdldEN1cnJlbnRDYWNoZVZlcnNpb24pKCk7cmV0dXJuIGUuY2FjaGVWZXJzaW9uIT09bnx8ZS50cmVlQXRUaW1lT2ZQcmVmZXRjaCE9PXJ8fGUua2V5Lm5leHRVcmwhPT10fWZ1bmN0aW9uIFMoZSl7ZS5wcmlvcml0eT09PXMuUHJlZmV0Y2hQcmlvcml0eS5JbnRlbnQmJmUhPT1SJiYobnVsbCE9PVImJlIucHJpb3JpdHkhPT1zLlByZWZldGNoUHJpb3JpdHkuQmFja2dyb3VuZCYmKFIucHJpb3JpdHk9cy5QcmVmZXRjaFByaW9yaXR5LkRlZmF1bHQscShoLFIpKSxSPWUpfWZ1bmN0aW9uIFQoKXtnfHwoZz0hMCxkKFUpKX1mdW5jdGlvbiBPKGUpe3JldHVybiBudWxsPT09XyYmKGUucHJpb3JpdHk9PT1zLlByZWZldGNoUHJpb3JpdHkuSW50ZW50P3A8MTI6cDw0KX1mdW5jdGlvbiBqKGUpe3JldHVybiBwKyssZS50aGVuKGU9Pm51bGw9PT1lPyhNKCksbnVsbCk6KGUuY2xvc2VkLnRoZW4oTSksZS52YWx1ZSkpfWZ1bmN0aW9uIE0oKXtwLS0sVCgpfWZ1bmN0aW9uIEEoZSl7ZS5pc0NhbmNlbGVkfHwtMSE9PWUuX2hlYXBJbmRleHx8KEIoaCxlKSxUKCkpfWZ1bmN0aW9uIFUoKXtnPSExO2xldCBlPURhdGUubm93KCksdD1LKGgpO2Zvcig7bnVsbCE9PXQmJk8odCk7KXt0LmNhY2hlVmVyc2lvbj0oMCxvLmdldEN1cnJlbnRDYWNoZVZlcnNpb24pKCk7bGV0IHI9ZnVuY3Rpb24oZSx0KXtsZXQgcj10LmtleSxuPSgwLG8ucmVhZE9yQ3JlYXRlUm91dGVDYWNoZUVudHJ5KShlLHQsciksYT1mdW5jdGlvbihlLHQscil7c3dpdGNoKHIuc3RhdHVzKXtjYXNlIG8uRW50cnlTdGF0dXMuRW1wdHk6aigoMCxvLmZldGNoUm91dGVPbkNhY2hlTWlzcykocix0LHQua2V5KSksci5zdGFsZUF0PWUrNmU0LHIuc3RhdHVzPW8uRW50cnlTdGF0dXMuUGVuZGluZztjYXNlIG8uRW50cnlTdGF0dXMuUGVuZGluZzp7bGV0IGU9ci5ibG9ja2VkVGFza3M7cmV0dXJuIG51bGw9PT1lP3IuYmxvY2tlZFRhc2tzPW5ldyBTZXQoW3RdKTplLmFkZCh0KSwxfWNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDpicmVhaztjYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOntpZigwIT09dC5waGFzZSlyZXR1cm4gMjtpZighTyh0KSlyZXR1cm4gMDtsZXQgaT1yLnRyZWUsYz10LmZldGNoU3RyYXRlZ3k9PT1zLkZldGNoU3RyYXRlZ3kuUFBSP3IuaXNQUFJFbmFibGVkP3MuRmV0Y2hTdHJhdGVneS5QUFI6cy5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeTp0LmZldGNoU3RyYXRlZ3k7c3dpdGNoKGMpe2Nhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUjp7dmFyIG4sYSx1O2lmKEYobj1lLGE9dCx1PXIsKDAsby5yZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeSkobixzLkZldGNoU3RyYXRlZ3kuUFBSLHUsdS5tZXRhZGF0YSksYS5rZXksdS5tZXRhZGF0YSksMD09PWZ1bmN0aW9uIGUodCxyLG4sYSxsKXtsZXQgdT0oMCxvLnJlYWRPckNyZWF0ZVNlZ21lbnRDYWNoZUVudHJ5KSh0LHIuZmV0Y2hTdHJhdGVneSxuLGwpO0YodCxyLG4sdSxyLmtleSxsKTtsZXQgaT1hWzFdLGM9bC5zbG90cztpZihudWxsIT09Yylmb3IobGV0IGEgaW4gYyl7aWYoIU8ocikpcmV0dXJuIDA7bGV0IGw9Y1thXSx1PWwuc2VnbWVudCxzPWlbYV0sZj1zPy5bMF07aWYoMD09PSh2b2lkIDAhPT1mJiZrKG4sdSxmKT9lKHQscixuLHMsbCk6ZnVuY3Rpb24gZSh0LHIsbixhKXtpZihhLmhhc1J1bnRpbWVQcmVmZXRjaClyZXR1cm4gbnVsbD09PXIuc3Bhd25lZFJ1bnRpbWVQcmVmZXRjaGVzP3Iuc3Bhd25lZFJ1bnRpbWVQcmVmZXRjaGVzPW5ldyBTZXQoW2EucmVxdWVzdEtleV0pOnIuc3Bhd25lZFJ1bnRpbWVQcmVmZXRjaGVzLmFkZChhLnJlcXVlc3RLZXkpLDI7bGV0IGw9KDAsby5yZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeSkodCxyLmZldGNoU3RyYXRlZ3ksbixhKTtpZihGKHQscixuLGwsci5rZXksYSksbnVsbCE9PWEuc2xvdHMpe2lmKCFPKHIpKXJldHVybiAwO2ZvcihsZXQgbCBpbiBhLnNsb3RzKWlmKDA9PT1lKHQscixuLGEuc2xvdHNbbF0pKXJldHVybiAwfXJldHVybiAyfSh0LHIsbixsKSkpcmV0dXJuIDB9cmV0dXJuIDJ9KGUsdCxyLHQudHJlZUF0VGltZU9mUHJlZmV0Y2gsaSkpcmV0dXJuIDA7bGV0IGw9dC5zcGF3bmVkUnVudGltZVByZWZldGNoZXM7aWYobnVsbCE9PWwpe2xldCBuPW5ldyBNYXA7TihlLHQscixuLHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lKTtsZXQgYT1mdW5jdGlvbiBlKHQscixuLGEsbCx1KXtpZihsLmhhcyhhLnJlcXVlc3RLZXkpKXJldHVybiB3KHQscixuLGEsITEsdSxzLkZldGNoU3RyYXRlZ3kuUFBSUnVudGltZSk7bGV0IG89e30saT1hLnNsb3RzO2lmKG51bGwhPT1pKWZvcihsZXQgYSBpbiBpKXtsZXQgYz1pW2FdO29bYV09ZSh0LHIsbixjLGwsdSl9cmV0dXJuW2Euc2VnbWVudCxvLG51bGwsbnVsbF19KGUsdCxyLGksbCxuKTtuLnNpemU+MCYmaigoMCxvLmZldGNoU2VnbWVudFByZWZldGNoZXNVc2luZ0R5bmFtaWNSZXF1ZXN0KSh0LHIscy5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWUsYSxuKSl9cmV0dXJuIDJ9Y2FzZSBzLkZldGNoU3RyYXRlZ3kuRnVsbDpjYXNlIHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lOmNhc2Ugcy5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeTp7bGV0IG49bmV3IE1hcDtOKGUsdCxyLG4sYyk7bGV0IGE9ZnVuY3Rpb24gZSh0LHIsbixhLHUsaSxjKXtsZXQgZj1hWzFdLGQ9dS5zbG90cyxoPXt9O2lmKG51bGwhPT1kKWZvcihsZXQgYSBpbiBkKXtsZXQgdT1kW2FdLHA9dS5zZWdtZW50LHk9ZlthXSxnPXk/LlswXTtpZih2b2lkIDAhPT1nJiZrKG4scCxnKSl7bGV0IGw9ZSh0LHIsbix5LHUsaSxjKTtoW2FdPWx9ZWxzZSBzd2l0Y2goYyl7Y2FzZSBzLkZldGNoU3RyYXRlZ3kuTG9hZGluZ0JvdW5kYXJ5OntsZXQgZT11Lmhhc0xvYWRpbmdCb3VuZGFyeSE9PWwuSGFzTG9hZGluZ0JvdW5kYXJ5LlN1YnRyZWVIYXNOb0xvYWRpbmdCb3VuZGFyeT9mdW5jdGlvbiBlKHQscixuLGEsdSxpKXtsZXQgYz1udWxsPT09dT8iaW5zaWRlLXNoYXJlZC1sYXlvdXQiOm51bGwsZj0oMCxvLnJlYWRPckNyZWF0ZVNlZ21lbnRDYWNoZUVudHJ5KSh0LHIuZmV0Y2hTdHJhdGVneSxuLGEpO3N3aXRjaChmLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5Omkuc2V0KGEucmVxdWVzdEtleSwoMCxvLnVwZ3JhZGVUb1BlbmRpbmdTZWdtZW50KShmLHMuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnkpKSwicmVmZXRjaCIhPT11JiYoYz11PSJyZWZldGNoIik7YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZDppZihhLmhhc0xvYWRpbmdCb3VuZGFyeT09PWwuSGFzTG9hZGluZ0JvdW5kYXJ5LlNlZ21lbnRIYXNMb2FkaW5nQm91bmRhcnkpcmV0dXJuKDAsby5jb252ZXJ0Um91dGVUcmVlVG9GbGlnaHRSb3V0ZXJTdGF0ZSkoYSk7Y2FzZSBvLkVudHJ5U3RhdHVzLlBlbmRpbmc6Y2FzZSBvLkVudHJ5U3RhdHVzLlJlamVjdGVkOn1sZXQgZD17fTtpZihudWxsIT09YS5zbG90cylmb3IobGV0IGwgaW4gYS5zbG90cyl7bGV0IG89YS5zbG90c1tsXTtkW2xdPWUodCxyLG4sbyx1LGkpfXJldHVyblthLnNlZ21lbnQsZCxudWxsLGMsYS5pc1Jvb3RMYXlvdXRdfSh0LHIsbix1LG51bGwsaSk6KDAsby5jb252ZXJ0Um91dGVUcmVlVG9GbGlnaHRSb3V0ZXJTdGF0ZSkodSk7aFthXT1lO2JyZWFrfWNhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWU6e2xldCBlPXcodCxyLG4sdSwhMSxpLGMpO2hbYV09ZTticmVha31jYXNlIHMuRmV0Y2hTdHJhdGVneS5GdWxsOntsZXQgZT13KHQscixuLHUsITEsaSxjKTtoW2FdPWV9fX1yZXR1cm5bdS5zZWdtZW50LGgsbnVsbCxudWxsLHUuaXNSb290TGF5b3V0XX0oZSx0LHIsdC50cmVlQXRUaW1lT2ZQcmVmZXRjaCxpLG4sYyk7cmV0dXJuIG4uc2l6ZT4wJiZqKCgwLG8uZmV0Y2hTZWdtZW50UHJlZmV0Y2hlc1VzaW5nRHluYW1pY1JlcXVlc3QpKHQscixjLGEsbikpLDJ9fX19cmV0dXJuIDJ9KGUsdCxuKTtpZigwIT09YSYmIiIhPT1yLnNlYXJjaCl7bGV0IG49bmV3IFVSTChyLnBhdGhuYW1lLGxvY2F0aW9uLm9yaWdpbiksYT0oMCxjLmNyZWF0ZUNhY2hlS2V5KShuLmhyZWYsci5uZXh0VXJsKSxsPSgwLG8ucmVhZE9yQ3JlYXRlUm91dGVDYWNoZUVudHJ5KShlLHQsYSk7c3dpdGNoKGwuc3RhdHVzKXtjYXNlIG8uRW50cnlTdGF0dXMuRW1wdHk6Qyh0KSYmKGwuc3RhdHVzPW8uRW50cnlTdGF0dXMuUGVuZGluZyxqKCgwLG8uZmV0Y2hSb3V0ZU9uQ2FjaGVNaXNzKShsLHQsYSkpKTtjYXNlIG8uRW50cnlTdGF0dXMuUGVuZGluZzpjYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOmNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDp9fXJldHVybiBhfShlLHQpLG49dC5oYXNCYWNrZ3JvdW5kV29yaztzd2l0Y2godC5oYXNCYWNrZ3JvdW5kV29yaz0hMSx0LnNwYXduZWRSdW50aW1lUHJlZmV0Y2hlcz1udWxsLHIpe2Nhc2UgMDpyZXR1cm47Y2FzZSAxOlYoaCksdD1LKGgpO2NvbnRpbnVlO2Nhc2UgMjoxPT09dC5waGFzZT8odC5waGFzZT0wLHEoaCx0KSk6bj8odC5wcmlvcml0eT1zLlByZWZldGNoUHJpb3JpdHkuQmFja2dyb3VuZCxxKGgsdCkpOlYoaCksdD1LKGgpO2NvbnRpbnVlfX19ZnVuY3Rpb24gQyhlKXtyZXR1cm4gZS5wcmlvcml0eT09PXMuUHJlZmV0Y2hQcmlvcml0eS5CYWNrZ3JvdW5kfHwoZS5oYXNCYWNrZ3JvdW5kV29yaz0hMCwhMSl9ZnVuY3Rpb24gTihlLHQscixuLGEpe3coZSx0LHIsci5tZXRhZGF0YSwhMSxuLGE9PT1zLkZldGNoU3RyYXRlZ3kuTG9hZGluZ0JvdW5kYXJ5P3MuRmV0Y2hTdHJhdGVneS5GdWxsOmEpfWZ1bmN0aW9uIHcoZSx0LHIsbixhLGwsdSl7bGV0IGk9KDAsby5yZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeSkoZSx1LHIsbiksYz1udWxsO3N3aXRjaChpLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5OmM9KDAsby51cGdyYWRlVG9QZW5kaW5nU2VnbWVudCkoaSx1KTticmVhaztjYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOmkuaXNQYXJ0aWFsJiYoMCxvLmNhbk5ld0ZldGNoU3RyYXRlZ3lQcm92aWRlTW9yZUNvbnRlbnQpKGkuZmV0Y2hTdHJhdGVneSx1KSYmKGM9TChlLHIsbix1KSk7YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLlBlbmRpbmc6Y2FzZSBvLkVudHJ5U3RhdHVzLlJlamVjdGVkOigwLG8uY2FuTmV3RmV0Y2hTdHJhdGVneVByb3ZpZGVNb3JlQ29udGVudCkoaS5mZXRjaFN0cmF0ZWd5LHUpJiYoYz1MKGUscixuLHUpKX1sZXQgcz17fTtpZihudWxsIT09bi5zbG90cylmb3IobGV0IG8gaW4gbi5zbG90cyl7bGV0IGk9bi5zbG90c1tvXTtzW29dPXcoZSx0LHIsaSxhfHxudWxsIT09YyxsLHUpfW51bGwhPT1jJiZsLnNldChuLnJlcXVlc3RLZXksYyk7bGV0IGY9YXx8bnVsbD09PWM/bnVsbDoicmVmZXRjaCI7cmV0dXJuW24uc2VnbWVudCxzLG51bGwsZixuLmlzUm9vdExheW91dF19ZnVuY3Rpb24gRihlLHQscixuLGEsbCl7c3dpdGNoKG4uc3RhdHVzKXtjYXNlIG8uRW50cnlTdGF0dXMuRW1wdHk6aigoMCxvLmZldGNoU2VnbWVudE9uQ2FjaGVNaXNzKShyLCgwLG8udXBncmFkZVRvUGVuZGluZ1NlZ21lbnQpKG4scy5GZXRjaFN0cmF0ZWd5LlBQUiksYSxsKSk7YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLlBlbmRpbmc6c3dpdGNoKG4uZmV0Y2hTdHJhdGVneSl7Y2FzZSBzLkZldGNoU3RyYXRlZ3kuUFBSOmNhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWU6Y2FzZSBzLkZldGNoU3RyYXRlZ3kuRnVsbDpicmVhaztjYXNlIHMuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnk6Qyh0KSYmSShlLHIsYSxsKTticmVhaztkZWZhdWx0Om4uZmV0Y2hTdHJhdGVneX1icmVhaztjYXNlIG8uRW50cnlTdGF0dXMuUmVqZWN0ZWQ6c3dpdGNoKG4uZmV0Y2hTdHJhdGVneSl7Y2FzZSBzLkZldGNoU3RyYXRlZ3kuUFBSOmNhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWU6Y2FzZSBzLkZldGNoU3RyYXRlZ3kuRnVsbDpicmVhaztjYXNlIHMuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnk6SShlLHIsYSxsKTticmVhaztkZWZhdWx0Om4uZmV0Y2hTdHJhdGVneX1jYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOn19ZnVuY3Rpb24gSShlLHQscixuKXtsZXQgYT0oMCxvLnJlYWRPckNyZWF0ZVJldmFsaWRhdGluZ1NlZ21lbnRFbnRyeSkoZSxzLkZldGNoU3RyYXRlZ3kuUFBSLHQsbik7c3dpdGNoKGEuc3RhdHVzKXtjYXNlIG8uRW50cnlTdGF0dXMuRW1wdHk6eChqKCgwLG8uZmV0Y2hTZWdtZW50T25DYWNoZU1pc3MpKHQsKDAsby51cGdyYWRlVG9QZW5kaW5nU2VnbWVudCkoYSxzLkZldGNoU3RyYXRlZ3kuUFBSKSxyLG4pKSwoMCxpLmdldFNlZ21lbnRWYXJ5UGF0aEZvclJlcXVlc3QpKHMuRmV0Y2hTdHJhdGVneS5QUFIsbikpO2Nhc2Ugby5FbnRyeVN0YXR1cy5QZW5kaW5nOmNhc2Ugby5FbnRyeVN0YXR1cy5GdWxmaWxsZWQ6Y2FzZSBvLkVudHJ5U3RhdHVzLlJlamVjdGVkOn19ZnVuY3Rpb24gTChlLHQscixuKXtsZXQgYT0oMCxvLnJlYWRPckNyZWF0ZVJldmFsaWRhdGluZ1NlZ21lbnRFbnRyeSkoZSxuLHQscik7aWYoYS5zdGF0dXM9PT1vLkVudHJ5U3RhdHVzLkVtcHR5KXtsZXQgZT0oMCxvLnVwZ3JhZGVUb1BlbmRpbmdTZWdtZW50KShhLG4pO3JldHVybiB4KCgwLG8ud2FpdEZvclNlZ21lbnRDYWNoZUVudHJ5KShlKSwoMCxpLmdldFNlZ21lbnRWYXJ5UGF0aEZvclJlcXVlc3QpKG4scikpLGV9aWYoKDAsby5jYW5OZXdGZXRjaFN0cmF0ZWd5UHJvdmlkZU1vcmVDb250ZW50KShhLmZldGNoU3RyYXRlZ3ksbikpe2xldCBlPSgwLG8ub3ZlcndyaXRlUmV2YWxpZGF0aW5nU2VnbWVudENhY2hlRW50cnkpKG4sdCxyKSxhPSgwLG8udXBncmFkZVRvUGVuZGluZ1NlZ21lbnQpKGUsbik7cmV0dXJuIHgoKDAsby53YWl0Rm9yU2VnbWVudENhY2hlRW50cnkpKGEpLCgwLGkuZ2V0U2VnbWVudFZhcnlQYXRoRm9yUmVxdWVzdCkobixyKSksYX1zd2l0Y2goYS5zdGF0dXMpe2Nhc2Ugby5FbnRyeVN0YXR1cy5QZW5kaW5nOmNhc2Ugby5FbnRyeVN0YXR1cy5GdWxmaWxsZWQ6Y2FzZSBvLkVudHJ5U3RhdHVzLlJlamVjdGVkOmRlZmF1bHQ6cmV0dXJuIG51bGx9fWxldCBEPSgpPT57fTtmdW5jdGlvbiB4KGUsdCl7ZS50aGVuKGU9PntudWxsIT09ZSYmKDAsby51cHNlcnRTZWdtZW50RW50cnkpKERhdGUubm93KCksdCxlKX0sRCl9ZnVuY3Rpb24gayhlLHQscil7cmV0dXJuIHI9PT1mLlBBR0VfU0VHTUVOVF9LRVk/dD09PSgwLGYuYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCkoZi5QQUdFX1NFR01FTlRfS0VZLE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKGUucmVuZGVyZWRTZWFyY2gpKSk6KDAsdS5tYXRjaFNlZ21lbnQpKHIsdCl9ZnVuY3Rpb24gSChlLHQpe2xldCByPXQucHJpb3JpdHktZS5wcmlvcml0eTtpZigwIT09cilyZXR1cm4gcjtsZXQgbj10LnBoYXNlLWUucGhhc2U7cmV0dXJuIDAhPT1uP246dC5zb3J0SWQtZS5zb3J0SWR9ZnVuY3Rpb24gQihlLHQpe2xldCByPWUubGVuZ3RoO2UucHVzaCh0KSx0Ll9oZWFwSW5kZXg9cixHKGUsdCxyKX1mdW5jdGlvbiBLKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIFYoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiBudWxsO2xldCB0PWVbMF07dC5faGVhcEluZGV4PS0xO2xldCByPWUucG9wKCk7cmV0dXJuIHIhPT10JiYoZVswXT1yLHIuX2hlYXBJbmRleD0wLHooZSxyLDApKSx0fWZ1bmN0aW9uIHEoZSx0KXtsZXQgcj10Ll9oZWFwSW5kZXg7LTEhPT1yJiYoMD09PXI/eihlLHQsMCk6SChlW3ItMT4+PjFdLHQpPjA/RyhlLHQscik6eihlLHQscikpfWZ1bmN0aW9uIEcoZSx0LHIpe2xldCBuPXI7Zm9yKDtuPjA7KXtsZXQgcj1uLTE+Pj4xLGE9ZVtyXTtpZighKEgoYSx0KT4wKSlyZXR1cm47ZVtyXT10LHQuX2hlYXBJbmRleD1yLGVbbl09YSxhLl9oZWFwSW5kZXg9bixuPXJ9fWZ1bmN0aW9uIHooZSx0LHIpe2xldCBuPXIsYT1lLmxlbmd0aCxsPWE+Pj4xO2Zvcig7bjxsOyl7bGV0IHI9KG4rMSkqMi0xLGw9ZVtyXSx1PXIrMSxvPWVbdV07aWYoMD5IKGwsdCkpdTxhJiYwPkgobyxsKT8oZVtuXT1vLG8uX2hlYXBJbmRleD1uLGVbdV09dCx0Ll9oZWFwSW5kZXg9dSxuPXUpOihlW25dPWwsbC5faGVhcEluZGV4PW4sZVtyXT10LHQuX2hlYXBJbmRleD1yLG49cik7ZWxzZXtpZighKHU8YSYmMD5IKG8sdCkpKXJldHVybjtlW25dPW8sby5faGVhcEluZGV4PW4sZVt1XT10LHQuX2hlYXBJbmRleD11LG49dX19fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDk4MDYzLChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtsZXQgdD1lLmluZGV4T2YoIiMiKSxyPWUuaW5kZXhPZigiPyIpLG49cj4tMSYmKHQ8MHx8cjx0KTtyZXR1cm4gbnx8dD4tMT97cGF0aG5hbWU6ZS5zdWJzdHJpbmcoMCxuP3I6dCkscXVlcnk6bj9lLnN1YnN0cmluZyhyLHQ+LTE/dDp2b2lkIDApOiIiLGhhc2g6dD4tMT9lLnNsaWNlKHQpOiIifTp7cGF0aG5hbWU6ZSxxdWVyeToiIixoYXNoOiIifX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInBhcnNlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9LDkwNTgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImFkZFBhdGhQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig5ODA2Myk7ZnVuY3Rpb24gYShlLHQpe2lmKCFlLnN0YXJ0c1dpdGgoIi8iKXx8IXQpcmV0dXJuIGU7bGV0e3BhdGhuYW1lOnIscXVlcnk6YSxoYXNoOmx9PSgwLG4ucGFyc2VQYXRoKShlKTtyZXR1cm5gJHt0fSR7cn0ke2F9JHtsfWB9fSw5ODk0NywoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUucmVwbGFjZSgvXC8kLywiIil8fCIvIn1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInJlbW92ZVRyYWlsaW5nU2xhc2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pfSw2MTgwNywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2xldCBuPWUucig5ODk0NyksYT1lLnIoOTgwNjMpLGw9ZT0+e2lmKCFlLnN0YXJ0c1dpdGgoIi8iKSlyZXR1cm4gZTtsZXR7cGF0aG5hbWU6dCxxdWVyeTpyLGhhc2g6bH09KDAsYS5wYXJzZVBhdGgpKGUpO3JldHVybmAkeygwLG4ucmVtb3ZlVHJhaWxpbmdTbGFzaCkodCl9JHtyfSR7bH1gfTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNDg1NywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiYWRkQmFzZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2xldCBuPWUucig5MDU4KSxhPWUucig2MTgwNyk7ZnVuY3Rpb24gbChlLHQpe3JldHVybigwLGEubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gpKCgwLG4uYWRkUGF0aFByZWZpeCkoZSwiIikpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI5MzYyLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjcmVhdGVQcmVmZXRjaFVSTDpmdW5jdGlvbigpe3JldHVybiBpfSxpc0V4dGVybmFsVVJMOmZ1bmN0aW9uKCl7cmV0dXJuIG99fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IGw9ZS5yKDM0NjUpLHU9ZS5yKDE0ODU3KTtmdW5jdGlvbiBvKGUpe3JldHVybiBlLm9yaWdpbiE9PXdpbmRvdy5sb2NhdGlvbi5vcmlnaW59ZnVuY3Rpb24gaShlKXtsZXQgdDtpZigoMCxsLmlzQm90KSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkpcmV0dXJuIG51bGw7dHJ5e3Q9bmV3IFVSTCgoMCx1LmFkZEJhc2VQYXRoKShlKSx3aW5kb3cubG9jYXRpb24uaHJlZil9Y2F0Y2godCl7dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBDYW5ub3QgcHJlZmV0Y2ggJyR7ZX0nIGJlY2F1c2UgaXQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIFVSTC5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTIzNCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1yZXR1cm4gbyh0KT9udWxsOnR9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sOTgyODMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0lETEVfTElOS19TVEFUVVM6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sUEVORElOR19MSU5LX1NUQVRVUzpmdW5jdGlvbigpe3JldHVybiBzfSxtb3VudEZvcm1JbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiB2fSxtb3VudExpbmtJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBQfSxvbkxpbmtWaXNpYmlsaXR5Q2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiBtfSxvbk5hdmlnYXRpb25JbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYn0scGluZ1Zpc2libGVMaW5rczpmdW5jdGlvbigpe3JldHVybiBUfSxzZXRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gZH0sdW5tb3VudExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbjpmdW5jdGlvbigpe3JldHVybiBofSx1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2U6ZnVuY3Rpb24oKXtyZXR1cm4gRX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbD1lLnIoNTI0MTMpLHU9ZS5yKDE2MzE2KSxvPWUucig3NTc4MCksaT1lLnIoNzUyMDEpLGM9bnVsbCxzPXtwZW5kaW5nOiEwfSxmPXtwZW5kaW5nOiExfTtmdW5jdGlvbiBkKGUpeygwLGkuc3RhcnRUcmFuc2l0aW9uKSgoKT0+e2M/LnNldE9wdGltaXN0aWNMaW5rU3RhdHVzKGYpLGU/LnNldE9wdGltaXN0aWNMaW5rU3RhdHVzKHMpLGM9ZX0pfWZ1bmN0aW9uIGgoZSl7Yz09PWUmJihjPW51bGwpfWxldCBwPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwP25ldyBXZWFrTWFwOm5ldyBNYXAseT1uZXcgU2V0LGc9ImZ1bmN0aW9uIj09dHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyP25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5pbnRlcnNlY3Rpb25SYXRpbz4wO20odC50YXJnZXQsZSl9fSx7cm9vdE1hcmdpbjoiMjAwcHgifSk6bnVsbDtmdW5jdGlvbiBSKGUsdCl7dm9pZCAwIT09cC5nZXQoZSkmJkUoZSkscC5zZXQoZSx0KSxudWxsIT09ZyYmZy5vYnNlcnZlKGUpfWZ1bmN0aW9uIF8odCl7aWYoISgidSI+dHlwZW9mIHdpbmRvdykpcmV0dXJuIG51bGw7e2xldHtjcmVhdGVQcmVmZXRjaFVSTDpyfT1lLnIoMjkzNjIpO3RyeXtyZXR1cm4gcih0KX1jYXRjaHtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmNvbnNvbGUuZXJyb3IpKGBDYW5ub3QgcHJlZmV0Y2ggJyR7dH0nIGJlY2F1c2UgaXQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIFVSTC5gKSxudWxsfX19ZnVuY3Rpb24gUChlLHQscixuLGEsbCl7aWYoYSl7bGV0IGE9Xyh0KTtpZihudWxsIT09YSl7bGV0IHQ9e3JvdXRlcjpyLGZldGNoU3RyYXRlZ3k6bixpc1Zpc2libGU6ITEscHJlZmV0Y2hUYXNrOm51bGwscHJlZmV0Y2hIcmVmOmEuaHJlZixzZXRPcHRpbWlzdGljTGlua1N0YXR1czpsfTtyZXR1cm4gUihlLHQpLHR9fXJldHVybntyb3V0ZXI6cixmZXRjaFN0cmF0ZWd5Om4saXNWaXNpYmxlOiExLHByZWZldGNoVGFzazpudWxsLHByZWZldGNoSHJlZjpudWxsLHNldE9wdGltaXN0aWNMaW5rU3RhdHVzOmx9fWZ1bmN0aW9uIHYoZSx0LHIsbil7bGV0IGE9Xyh0KTtudWxsPT09YXx8UihlLHtyb3V0ZXI6cixmZXRjaFN0cmF0ZWd5Om4saXNWaXNpYmxlOiExLHByZWZldGNoVGFzazpudWxsLHByZWZldGNoSHJlZjphLmhyZWYsc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXM6bnVsbH0pfWZ1bmN0aW9uIEUoZSl7bGV0IHQ9cC5nZXQoZSk7aWYodm9pZCAwIT09dCl7cC5kZWxldGUoZSkseS5kZWxldGUodCk7bGV0IHI9dC5wcmVmZXRjaFRhc2s7bnVsbCE9PXImJigwLG8uY2FuY2VsUHJlZmV0Y2hUYXNrKShyKX1udWxsIT09ZyYmZy51bm9ic2VydmUoZSl9ZnVuY3Rpb24gbShlLHQpe2xldCByPXAuZ2V0KGUpO3ZvaWQgMCE9PXImJihyLmlzVmlzaWJsZT10LHQ/eS5hZGQocik6eS5kZWxldGUociksUyhyLGwuUHJlZmV0Y2hQcmlvcml0eS5EZWZhdWx0KSl9ZnVuY3Rpb24gYihlLHQpe2xldCByPXAuZ2V0KGUpO3ZvaWQgMCE9PXImJnZvaWQgMCE9PXImJlMocixsLlByZWZldGNoUHJpb3JpdHkuSW50ZW50KX1mdW5jdGlvbiBTKHQscil7aWYoInUiPnR5cGVvZiB3aW5kb3cpe2xldCBuPXQucHJlZmV0Y2hUYXNrO2lmKCF0LmlzVmlzaWJsZSl7bnVsbCE9PW4mJigwLG8uY2FuY2VsUHJlZmV0Y2hUYXNrKShuKTtyZXR1cm59bGV0e2dldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZTphfT1lLnIoODQzOTUpLGw9YSgpO2lmKG51bGwhPT1sKXtsZXQgZT1sLnRyZWU7aWYobnVsbD09PW4pe2xldCBuPWwubmV4dFVybCxhPSgwLHUuY3JlYXRlQ2FjaGVLZXkpKHQucHJlZmV0Y2hIcmVmLG4pO3QucHJlZmV0Y2hUYXNrPSgwLG8uc2NoZWR1bGVQcmVmZXRjaFRhc2spKGEsZSx0LmZldGNoU3RyYXRlZ3kscixudWxsKX1lbHNlKDAsby5yZXNjaGVkdWxlUHJlZmV0Y2hUYXNrKShuLGUsdC5mZXRjaFN0cmF0ZWd5LHIpfX19ZnVuY3Rpb24gVChlLHQpe2ZvcihsZXQgciBvZiB5KXtsZXQgbj1yLnByZWZldGNoVGFzaztpZihudWxsIT09biYmISgwLG8uaXNQcmVmZXRjaFRhc2tEaXJ0eSkobixlLHQpKWNvbnRpbnVlO251bGwhPT1uJiYoMCxvLmNhbmNlbFByZWZldGNoVGFzaykobik7bGV0IGE9KDAsdS5jcmVhdGVDYWNoZUtleSkoci5wcmVmZXRjaEhyZWYsZSk7ci5wcmVmZXRjaFRhc2s9KDAsby5zY2hlZHVsZVByZWZldGNoVGFzaykoYSx0LHIuZmV0Y2hTdHJhdGVneSxsLlByZWZldGNoUHJpb3JpdHkuRGVmYXVsdCxudWxsKX19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDA0NjEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7bGV0IGUsdCxyPW5ldyBQcm9taXNlKChyLG4pPT57ZT1yLHQ9bn0pO3JldHVybntyZXNvbHZlOmUscmVqZWN0OnQscHJvbWlzZTpyfX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX0sNDQ2NjcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG4sYT17RW50cnlTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gU30sY2FuTmV3RmV0Y2hTdHJhdGVneVByb3ZpZGVNb3JlQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBlYX0sY29udmVydFJvdXRlVHJlZVRvRmxpZ2h0Um91dGVyU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0KXtsZXQgcj17fTtpZihudWxsIT09dC5zbG90cylmb3IobGV0IG4gaW4gdC5zbG90cylyW25dPWUodC5zbG90c1tuXSk7cmV0dXJuW3Quc2VnbWVudCxyLG51bGwsbnVsbCx0LmlzUm9vdExheW91dF19fSxjcmVhdGVEZXRhY2hlZFNlZ21lbnRDYWNoZUVudHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LGZldGNoUm91dGVPbkNhY2hlTWlzczpmdW5jdGlvbigpe3JldHVybiAkfSxmZXRjaFNlZ21lbnRPbkNhY2hlTWlzczpmdW5jdGlvbigpe3JldHVybiBRfSxmZXRjaFNlZ21lbnRQcmVmZXRjaGVzVXNpbmdEeW5hbWljUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBKfSxnZXRDdXJyZW50Q2FjaGVWZXJzaW9uOmZ1bmN0aW9uKCl7cmV0dXJuIFV9LGdldFN0YWxlVGltZU1zOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LG92ZXJ3cml0ZVJldmFsaWRhdGluZ1NlZ21lbnRDYWNoZUVudHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHBpbmdJbnZhbGlkYXRpb25MaXN0ZW5lcnM6ZnVuY3Rpb24oKXtyZXR1cm4gTn0scmVhZE9yQ3JlYXRlUmV2YWxpZGF0aW5nU2VnbWVudEVudHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIEh9LHJlYWRPckNyZWF0ZVJvdXRlQ2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBMfSxyZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBrfSxyZWFkUm91dGVDYWNoZUVudHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIHd9LHJlYWRTZWdtZW50Q2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBGfSxyZXF1ZXN0T3B0aW1pc3RpY1JvdXRlQ2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBEfSxyZXZhbGlkYXRlRW50aXJlQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sdXBncmFkZVRvUGVuZGluZ1NlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gcX0sdXBzZXJ0U2VnbWVudEVudHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHdhaXRGb3JTZWdtZW50Q2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBJfX07Zm9yKHZhciBsIGluIGEpT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6YVtsXX0pO2xldCB1PWUucigyNDQ1Nyksbz1lLnIoMzQ2NDEpLGk9ZS5yKDExMDYpLGM9ZS5yKDc1NzgwKSxzPWUucig2NTg5MyksZj1lLnIoNjE3MDYpLGQ9ZS5yKDg1NTk0KSxoPWUucigxNjMxNikscD1lLnIoODgwNjIpLHk9ZS5yKDc1NzQ1KSxnPWUucig0NjIxOSksUj1lLnIoNjc2MjgpLF89ZS5yKDU0MDExKSxQPWUucig5ODI4Myksdj1lLnIoMjc0NTQpLEU9ZS5yKDUyNDEzKSxtPWUucig0MDQ2MSk7ZnVuY3Rpb24gYihlKXtyZXR1cm4gMWUzKk1hdGgubWF4KGUsMzApfXZhciBTPSgobj17fSlbbi5FbXB0eT0wXT0iRW1wdHkiLG5bbi5QZW5kaW5nPTFdPSJQZW5kaW5nIixuW24uRnVsZmlsbGVkPTJdPSJGdWxmaWxsZWQiLG5bbi5SZWplY3RlZD0zXT0iUmVqZWN0ZWQiLG4pO2xldCBUPVsiIix7fSxudWxsLCJtZXRhZGF0YS1vbmx5Il0sTz0oMCx5LmNyZWF0ZUNhY2hlTWFwKSgpLGo9KDAseS5jcmVhdGVDYWNoZU1hcCkoKSxNPW51bGwsQT0wO2Z1bmN0aW9uIFUoKXtyZXR1cm4gQX1mdW5jdGlvbiBDKGUsdCl7QSsrLCgwLGMuc3RhcnRSZXZhbGlkYXRpb25Db29sZG93bikoKSwoMCxQLnBpbmdWaXNpYmxlTGlua3MpKGUsdCksTihlLHQpfWZ1bmN0aW9uIE4oZSx0KXtpZihudWxsIT09TSl7bGV0IHI9TTtmb3IobGV0IG4gb2YoTT1udWxsLHIpKSgwLGMuaXNQcmVmZXRjaFRhc2tEaXJ0eSkobixlLHQpJiZmdW5jdGlvbihlKXtsZXQgdD1lLm9uSW52YWxpZGF0ZTtpZihudWxsIT09dCl7ZS5vbkludmFsaWRhdGU9bnVsbDt0cnl7dCgpfWNhdGNoKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcihlKTpjb25zb2xlLmVycm9yKGUpfX19KG4pfX1mdW5jdGlvbiB3KGUsdCl7bGV0IHI9KDAscy5nZXRSb3V0ZVZhcnlQYXRoKSh0LnBhdGhuYW1lLHQuc2VhcmNoLHQubmV4dFVybCk7cmV0dXJuKDAseS5nZXRGcm9tQ2FjaGVNYXApKGUsQSxPLHIsITEpfWZ1bmN0aW9uIEYoZSx0KXtyZXR1cm4oMCx5LmdldEZyb21DYWNoZU1hcCkoZSxBLGosdCwhMSl9ZnVuY3Rpb24gSShlKXtsZXQgdD1lLnByb21pc2U7cmV0dXJuIG51bGw9PT10JiYodD1lLnByb21pc2U9KDAsbS5jcmVhdGVQcm9taXNlV2l0aFJlc29sdmVycykoKSksdC5wcm9taXNlfWZ1bmN0aW9uIEwoZSx0LHIpe251bGwhPT10Lm9uSW52YWxpZGF0ZSYmKG51bGw9PT1NP009bmV3IFNldChbdF0pOk0uYWRkKHQpKTtsZXQgbj13KGUscik7aWYobnVsbCE9PW4pcmV0dXJuIG47bGV0IGE9e2Nhbm9uaWNhbFVybDpudWxsLHN0YXR1czowLGJsb2NrZWRUYXNrczpudWxsLHRyZWU6bnVsbCxtZXRhZGF0YTpudWxsLGNvdWxkQmVJbnRlcmNlcHRlZDohMCxpc1BQUkVuYWJsZWQ6ITEscmVuZGVyZWRTZWFyY2g6bnVsbCxyZWY6bnVsbCxzaXplOjAsc3RhbGVBdDoxLzAsdmVyc2lvbjpBfSxsPSgwLHMuZ2V0Um91dGVWYXJ5UGF0aCkoci5wYXRobmFtZSxyLnNlYXJjaCxyLm5leHRVcmwpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoTyxsLGEsITEpLGF9ZnVuY3Rpb24gRChlLHQscil7bGV0IG49dC5zZWFyY2g7aWYoIiI9PT1uKXJldHVybiBudWxsO2xldCBhPW5ldyBVUkwodCk7YS5zZWFyY2g9IiI7bGV0IGw9dyhlLCgwLGguY3JlYXRlQ2FjaGVLZXkpKGEuaHJlZixyKSk7aWYobnVsbD09PWx8fDIhPT1sLnN0YXR1cylyZXR1cm4gbnVsbDtsZXQgdT1uZXcgVVJMKGwuY2Fub25pY2FsVXJsLHQub3JpZ2luKSxvPSIiIT09dS5zZWFyY2g/dS5zZWFyY2g6bixpPSIiIT09bC5yZW5kZXJlZFNlYXJjaD9sLnJlbmRlcmVkU2VhcmNoOm4sYz1uZXcgVVJMKGwuY2Fub25pY2FsVXJsLGxvY2F0aW9uLm9yaWdpbik7cmV0dXJuIGMuc2VhcmNoPW8se2Nhbm9uaWNhbFVybDooMCxkLmNyZWF0ZUhyZWZGcm9tVXJsKShjKSxzdGF0dXM6MixibG9ja2VkVGFza3M6bnVsbCx0cmVlOngobC50cmVlLGkpLG1ldGFkYXRhOngobC5tZXRhZGF0YSxpKSxjb3VsZEJlSW50ZXJjZXB0ZWQ6bC5jb3VsZEJlSW50ZXJjZXB0ZWQsaXNQUFJFbmFibGVkOmwuaXNQUFJFbmFibGVkLHJlbmRlcmVkU2VhcmNoOmkscmVmOm51bGwsc2l6ZTowLHN0YWxlQXQ6bC5zdGFsZUF0LHZlcnNpb246bC52ZXJzaW9ufX1mdW5jdGlvbiB4KGUsdCl7bGV0IHI9bnVsbCxuPWUuc2xvdHM7aWYobnVsbCE9PW4pZm9yKGxldCBlIGluIHI9e30sbil7bGV0IGE9bltlXTtyW2VdPXgoYSx0KX1yZXR1cm4gZS5pc1BhZ2U/e3JlcXVlc3RLZXk6ZS5yZXF1ZXN0S2V5LHNlZ21lbnQ6ZS5zZWdtZW50LHZhcnlQYXRoOigwLHMuY2xvbmVQYWdlVmFyeVBhdGhXaXRoTmV3U2VhcmNoUGFyYW1zKShlLnZhcnlQYXRoLHQpLGlzUGFnZTohMCxzbG90czpyLGlzUm9vdExheW91dDplLmlzUm9vdExheW91dCxoYXNMb2FkaW5nQm91bmRhcnk6ZS5oYXNMb2FkaW5nQm91bmRhcnksaGFzUnVudGltZVByZWZldGNoOmUuaGFzUnVudGltZVByZWZldGNofTp7cmVxdWVzdEtleTplLnJlcXVlc3RLZXksc2VnbWVudDplLnNlZ21lbnQsdmFyeVBhdGg6ZS52YXJ5UGF0aCxpc1BhZ2U6ITEsc2xvdHM6cixpc1Jvb3RMYXlvdXQ6ZS5pc1Jvb3RMYXlvdXQsaGFzTG9hZGluZ0JvdW5kYXJ5OmUuaGFzTG9hZGluZ0JvdW5kYXJ5LGhhc1J1bnRpbWVQcmVmZXRjaDplLmhhc1J1bnRpbWVQcmVmZXRjaH19ZnVuY3Rpb24gayhlLHQscixuKXtsZXQgYT1GKGUsbi52YXJ5UGF0aCk7aWYobnVsbCE9PWEpcmV0dXJuIGE7bGV0IGw9KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KSh0LG4pLHU9VihyLnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaixsLHUsITEpLHV9ZnVuY3Rpb24gSChlLHQscixuKXt2YXIgYTtsZXQgbD0oYT1uLnZhcnlQYXRoLCgwLHkuZ2V0RnJvbUNhY2hlTWFwKShlLEEsaixhLCEwKSk7aWYobnVsbCE9PWwpcmV0dXJuIGw7bGV0IHU9KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KSh0LG4pLG89VihyLnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaix1LG8sITApLG99ZnVuY3Rpb24gQihlLHQscil7bGV0IG49KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KShlLHIpLGE9Vih0LnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaixuLGEsITApLGF9ZnVuY3Rpb24gSyhlLHQscil7aWYoKDAseS5pc1ZhbHVlRXhwaXJlZCkoZSxBLHIpKXJldHVybiBudWxsO2xldCBuPUYoZSx0KTtpZihudWxsIT09bil7dmFyIGE7aWYoci5mZXRjaFN0cmF0ZWd5IT09bi5mZXRjaFN0cmF0ZWd5JiYoYT1uLmZldGNoU3RyYXRlZ3ksIShhPHIuZmV0Y2hTdHJhdGVneSkpfHwhbi5pc1BhcnRpYWwmJnIuaXNQYXJ0aWFsKXJldHVybiByLnN0YXR1cz0zLHIubG9hZGluZz1udWxsLHIucnNjPW51bGwsbnVsbDsoMCx5LmRlbGV0ZUZyb21DYWNoZU1hcCkobil9cmV0dXJuKDAseS5zZXRJbkNhY2hlTWFwKShqLHQsciwhMSkscn1mdW5jdGlvbiBWKGUpe3JldHVybntzdGF0dXM6MCxmZXRjaFN0cmF0ZWd5OkUuRmV0Y2hTdHJhdGVneS5QUFIscnNjOm51bGwsbG9hZGluZzpudWxsLGlzUGFydGlhbDohMCxwcm9taXNlOm51bGwscmVmOm51bGwsc2l6ZTowLHN0YWxlQXQ6ZSx2ZXJzaW9uOjB9fWZ1bmN0aW9uIHEoZSx0KXtyZXR1cm4gZS5zdGF0dXM9MSxlLmZldGNoU3RyYXRlZ3k9dCx0PT09RS5GZXRjaFN0cmF0ZWd5LkZ1bGwmJihlLmlzUGFydGlhbD0hMSksZS52ZXJzaW9uPUEsZX1mdW5jdGlvbiBHKGUpe2xldCB0PWUuYmxvY2tlZFRhc2tzO2lmKG51bGwhPT10KXtmb3IobGV0IGUgb2YgdCkoMCxjLnBpbmdQcmVmZXRjaFRhc2spKGUpO2UuYmxvY2tlZFRhc2tzPW51bGx9fWZ1bmN0aW9uIHooZSx0LHIsbixhLGwsbyxpKXtsZXQgYz17cmVxdWVzdEtleTpnLkhFQURfUkVRVUVTVF9LRVksc2VnbWVudDpnLkhFQURfUkVRVUVTVF9LRVksdmFyeVBhdGg6cixpc1BhZ2U6ITAsc2xvdHM6bnVsbCxpc1Jvb3RMYXlvdXQ6ITEsaGFzTG9hZGluZ0JvdW5kYXJ5OnUuSGFzTG9hZGluZ0JvdW5kYXJ5LlN1YnRyZWVIYXNOb0xvYWRpbmdCb3VuZGFyeSxoYXNSdW50aW1lUHJlZmV0Y2g6ITF9O3JldHVybiBlLnN0YXR1cz0yLGUudHJlZT10LGUubWV0YWRhdGE9YyxlLnN0YWxlQXQ9bixlLmNvdWxkQmVJbnRlcmNlcHRlZD1hLGUuY2Fub25pY2FsVXJsPWwsZS5yZW5kZXJlZFNlYXJjaD1vLGUuaXNQUFJFbmFibGVkPWksRyhlKSxlfWZ1bmN0aW9uIFgoZSx0LHIsbixhKXtyZXR1cm4gZS5zdGF0dXM9MixlLnJzYz10LGUubG9hZGluZz1yLGUuc3RhbGVBdD1uLGUuaXNQYXJ0aWFsPWEsbnVsbCE9PWUucHJvbWlzZSYmKGUucHJvbWlzZS5yZXNvbHZlKGUpLGUucHJvbWlzZT1udWxsKSxlfWZ1bmN0aW9uIFcoZSx0KXtlLnN0YXR1cz0zLGUuc3RhbGVBdD10LEcoZSl9ZnVuY3Rpb24gWShlLHQpe2Uuc3RhdHVzPTMsZS5zdGFsZUF0PXQsbnVsbCE9PWUucHJvbWlzZSYmKGUucHJvbWlzZS5yZXNvbHZlKG51bGwpLGUucHJvbWlzZT1udWxsKX1hc3luYyBmdW5jdGlvbiAkKGUsdCxyKXtsZXQgbj1yLnBhdGhuYW1lLGE9ci5zZWFyY2gsbD1yLm5leHRVcmwsYz17W28uUlNDX0hFQURFUl06IjEiLFtvLk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl06IjEiLFtvLk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSXToiL190cmVlIn07bnVsbCE9PWwmJihjW28uTkVYVF9VUkxdPWwpO3RyeXtsZXQgcixoLFA9bmV3IFVSTChuK2EsbG9jYXRpb24ub3JpZ2luKTtpZihyPWF3YWl0IGVyKFAsYyksaD1udWxsIT09ciYmci5yZWRpcmVjdGVkP25ldyBVUkwoci51cmwpOlAsIXJ8fCFyLm9rfHwyMDQ9PT1yLnN0YXR1c3x8IXIuYm9keSlyZXR1cm4gVyhlLERhdGUubm93KCkrMWU0KSxudWxsO2xldCBTPSgwLGQuY3JlYXRlSHJlZkZyb21VcmwpKGgpLFQ9ci5oZWFkZXJzLmdldCgidmFyeSIpLGo9bnVsbCE9PVQmJlQuaW5jbHVkZXMoby5ORVhUX1VSTCksTT0oMCxtLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLEE9IjIiPT09ci5oZWFkZXJzLmdldChvLk5FWFRfRElEX1BPU1RQT05FX0hFQURFUik7aWYoQSl7bGV0IHQsbixhPWVuKHIuYm9keSxNLnJlc29sdmUsZnVuY3Rpb24odCl7KDAseS5zZXRTaXplSW5DYWNoZU1hcCkoZSx0KX0pLGw9YXdhaXQgKDAsaS5jcmVhdGVGcm9tTmV4dFJlYWRhYmxlU3RyZWFtKShhLGMpO2lmKGwuYnVpbGRJZCE9PSgwLGYuZ2V0QXBwQnVpbGRJZCkoKSlyZXR1cm4gVyhlLERhdGUubm93KCkrMWU0KSxudWxsO2xldCBvPSgwLHAuZ2V0UmVuZGVyZWRQYXRobmFtZSkociksZD0oMCxwLmdldFJlbmRlcmVkU2VhcmNoKShyKSxoPXttZXRhZGF0YVZhcnlQYXRoOm51bGx9LFI9KHQ9by5zcGxpdCgiLyIpLmZpbHRlcihlPT4iIiE9PWUpLG49Zy5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVksZnVuY3Rpb24gZSh0LHIsbixhLGwsbyxpLGMpe2xldCBmLGQsaD1udWxsLHk9dC5zbG90cztpZihudWxsIT09eSlmb3IobGV0IHQgaW4gZj0hMSxkPSgwLHMuZmluYWxpemVMYXlvdXRWYXJ5UGF0aCkoYSxuKSxoPXt9LHkpe2xldCByLHUsZixkPXlbdF0sUj1kLm5hbWUsXz1kLnBhcmFtVHlwZSxQPWQucGFyYW1LZXk7aWYobnVsbCE9PV8pe2xldCBlPSgwLHAucGFyc2VEeW5hbWljUGFyYW1Gcm9tVVJMUGFydCkoXyxsLG8pLHQ9bnVsbCE9PVA/UDooMCxwLmdldENhY2hlS2V5Rm9yRHluYW1pY1BhcmFtKShlLCIiKTtmPSgwLHMuYXBwZW5kTGF5b3V0VmFyeVBhdGgpKG4sdCksdT1bUix0LF9dLHI9ITB9ZWxzZSBmPW4sdT1SLHI9KDAscC5kb2VzU3RhdGljU2VnbWVudEFwcGVhckluVVJMKShSKTtsZXQgdj1yP28rMTpvLEU9KDAsZy5jcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQpKHUpLG09KDAsZy5hcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQpKGEsdCxFKTtoW3RdPWUoZCx1LGYsbSxsLHYsaSxjKX1lbHNlIGEuZW5kc1dpdGgodi5QQUdFX1NFR01FTlRfS0VZKT8oZj0hMCxkPSgwLHMuZmluYWxpemVQYWdlVmFyeVBhdGgpKGEsaSxuKSxudWxsPT09Yy5tZXRhZGF0YVZhcnlQYXRoJiYoYy5tZXRhZGF0YVZhcnlQYXRoPSgwLHMuZmluYWxpemVNZXRhZGF0YVZhcnlQYXRoKShhLGksbikpKTooZj0hMSxkPSgwLHMuZmluYWxpemVMYXlvdXRWYXJ5UGF0aCkoYSxuKSk7cmV0dXJue3JlcXVlc3RLZXk6YSxzZWdtZW50OnIsdmFyeVBhdGg6ZCxpc1BhZ2U6ZixzbG90czpoLGlzUm9vdExheW91dDp0LmlzUm9vdExheW91dCxoYXNMb2FkaW5nQm91bmRhcnk6dS5IYXNMb2FkaW5nQm91bmRhcnkuU2VnbWVudEhhc0xvYWRpbmdCb3VuZGFyeSxoYXNSdW50aW1lUHJlZmV0Y2g6dC5oYXNSdW50aW1lUHJlZmV0Y2h9fShsLnRyZWUsbixudWxsLGcuUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZLHQsMCxkLGgpKSxfPWgubWV0YWRhdGFWYXJ5UGF0aDtpZihudWxsPT09XylyZXR1cm4gVyhlLERhdGUubm93KCkrMWU0KSxudWxsO2xldCBQPWIobC5zdGFsZVRpbWUpO3ooZSxSLF8sRGF0ZS5ub3coKStQLGosUyxkLEEpfWVsc2V7bGV0IG49ZW4oci5ib2R5LE0ucmVzb2x2ZSxmdW5jdGlvbih0KXsoMCx5LnNldFNpemVJbkNhY2hlTWFwKShlLHQpfSksYT1hd2FpdCAoMCxpLmNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0pKG4sYyk7aWYoYS5iIT09KDAsZi5nZXRBcHBCdWlsZElkKSgpKXJldHVybiBXKGUsRGF0ZS5ub3coKSsxZTQpLG51bGw7IWZ1bmN0aW9uKGUsdCxyLG4sYSxsLGksYyxmKXtsZXQgZD0oMCxwLmdldFJlbmRlcmVkU2VhcmNoKShuKSxoPSgwLFIubm9ybWFsaXplRmxpZ2h0RGF0YSkoYS5mKTtpZigic3RyaW5nIj09dHlwZW9mIGh8fDEhPT1oLmxlbmd0aClyZXR1cm4gVyhsLGUrMWU0KTtsZXQgeT1oWzBdO2lmKCF5LmlzUm9vdFJlbmRlcilyZXR1cm4gVyhsLGUrMWU0KTtsZXQgUD15LnRyZWUsRT0ibnVtYmVyIj09dHlwZW9mIGEucnA/LlsxXT9hLnJwWzFdOnBhcnNlSW50KG4uaGVhZGVycy5nZXQoby5ORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUik/PyIiLDEwKSxtPWlzTmFOKEUpP18uU1RBVElDX1NUQUxFVElNRV9NUzpiKEUpLFM9IjEiPT09bi5oZWFkZXJzLmdldChvLk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiksVD17bWV0YWRhdGFWYXJ5UGF0aDpudWxsfSxPPWZ1bmN0aW9uIGUodCxyLG4sYSxsKXtsZXQgbyxpLGMsZixkPXRbMF07aWYoQXJyYXkuaXNBcnJheShkKSl7Yz0hMTtsZXQgZT1kWzFdO2k9KDAscy5hcHBlbmRMYXlvdXRWYXJ5UGF0aCkobixlKSxmPSgwLHMuZmluYWxpemVMYXlvdXRWYXJ5UGF0aCkocixpKSxvPWR9ZWxzZSBpPW4sci5lbmRzV2l0aCh2LlBBR0VfU0VHTUVOVF9LRVkpPyhjPSEwLG89di5QQUdFX1NFR01FTlRfS0VZLGY9KDAscy5maW5hbGl6ZVBhZ2VWYXJ5UGF0aCkocixhLGkpLG51bGw9PT1sLm1ldGFkYXRhVmFyeVBhdGgmJihsLm1ldGFkYXRhVmFyeVBhdGg9KDAscy5maW5hbGl6ZU1ldGFkYXRhVmFyeVBhdGgpKHIsYSxpKSkpOihjPSExLG89ZCxmPSgwLHMuZmluYWxpemVMYXlvdXRWYXJ5UGF0aCkocixpKSk7bGV0IGg9bnVsbCxwPXRbMV07Zm9yKGxldCB0IGluIHApe2xldCBuPXBbdF0sdT1uWzBdLG89KDAsZy5jcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQpKHUpLGM9ZShuLCgwLGcuYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0KShyLHQsbyksaSxhLGwpO251bGw9PT1oP2g9e1t0XTpjfTpoW3RdPWN9cmV0dXJue3JlcXVlc3RLZXk6cixzZWdtZW50Om8sdmFyeVBhdGg6Zixpc1BhZ2U6YyxzbG90czpoLGlzUm9vdExheW91dDohMD09PXRbNF0saGFzTG9hZGluZ0JvdW5kYXJ5OnZvaWQgMCE9PXRbNV0/dFs1XTp1Lkhhc0xvYWRpbmdCb3VuZGFyeS5TdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnksaGFzUnVudGltZVByZWZldGNoOiExfX0oUCxnLlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSxudWxsLGQsVCksaj1ULm1ldGFkYXRhVmFyeVBhdGg7aWYobnVsbD09PWopcmV0dXJuIFcobCxlKzFlNCk7bGV0IE09eihsLE8saixlK20saSxjLGQsZik7ZWUoZSx0LHIsbixhLFMsTSxudWxsKX0oRGF0ZS5ub3coKSx0LEUuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnkscixhLGUsaixTLEEpfWlmKCFqKXtsZXQgdD0oMCxzLmdldEZ1bGZpbGxlZFJvdXRlVmFyeVBhdGgpKG4sYSxsLGopOygwLHkuc2V0SW5DYWNoZU1hcCkoTyx0LGUsITEpfXJldHVybnt2YWx1ZTpudWxsLGNsb3NlZDpNLnByb21pc2V9fWNhdGNoKHQpe3JldHVybiBXKGUsRGF0ZS5ub3coKSsxZTQpLG51bGx9fWFzeW5jIGZ1bmN0aW9uIFEoZSx0LHIsbil7bGV0IGE9bmV3IFVSTChlLmNhbm9uaWNhbFVybCxsb2NhdGlvbi5vcmlnaW4pLGw9ci5uZXh0VXJsLHU9bi5yZXF1ZXN0S2V5LGM9dT09PWcuUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZPyIvX2luZGV4Ijp1LHM9e1tvLlJTQ19IRUFERVJdOiIxIixbby5ORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdOiIxIixbby5ORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUl06Y307bnVsbCE9PWwmJihzW28uTkVYVF9VUkxdPWwpO3RyeXtsZXQgcj1hd2FpdCBlcihhLHMpO2lmKCFyfHwhci5va3x8MjA0PT09ci5zdGF0dXN8fCIyIiE9PXIuaGVhZGVycy5nZXQoby5ORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIpfHwhci5ib2R5KXJldHVybiBZKHQsRGF0ZS5ub3coKSsxZTQpLG51bGw7bGV0IG49KDAsbS5jcmVhdGVQcm9taXNlV2l0aFJlc29sdmVycykoKSxsPWVuKHIuYm9keSxuLnJlc29sdmUsZnVuY3Rpb24oZSl7KDAseS5zZXRTaXplSW5DYWNoZU1hcCkodCxlKX0pLHU9YXdhaXQgKDAsaS5jcmVhdGVGcm9tTmV4dFJlYWRhYmxlU3RyZWFtKShsLHMpO2lmKHUuYnVpbGRJZCE9PSgwLGYuZ2V0QXBwQnVpbGRJZCkoKSlyZXR1cm4gWSh0LERhdGUubm93KCkrMWU0KSxudWxsO3JldHVybnt2YWx1ZTpYKHQsdS5yc2MsdS5sb2FkaW5nLGUuc3RhbGVBdCx1LmlzUGFydGlhbCksY2xvc2VkOm4ucHJvbWlzZX19Y2F0Y2goZSl7cmV0dXJuIFkodCxEYXRlLm5vdygpKzFlNCksbnVsbH19YXN5bmMgZnVuY3Rpb24gSihlLHQscixuLGEpe2xldCBsPWUua2V5LHU9bmV3IFVSTCh0LmNhbm9uaWNhbFVybCxsb2NhdGlvbi5vcmlnaW4pLGM9bC5uZXh0VXJsOzE9PT1hLnNpemUmJmEuaGFzKHQubWV0YWRhdGEucmVxdWVzdEtleSkmJihuPVQpO2xldCBzPXtbby5SU0NfSEVBREVSXToiMSIsW28uTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVJdOigwLFIucHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdCkobil9O3N3aXRjaChudWxsIT09YyYmKHNbby5ORVhUX1VSTF09Yykscil7Y2FzZSBFLkZldGNoU3RyYXRlZ3kuRnVsbDpicmVhaztjYXNlIEUuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lOnNbby5ORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdPSIyIjticmVhaztjYXNlIEUuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnk6c1tvLk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl09IjEifXRyeXtsZXQgbj1hd2FpdCBlcih1LHMpO2lmKCFufHwhbi5va3x8IW4uYm9keXx8KDAscC5nZXRSZW5kZXJlZFNlYXJjaCkobikhPT10LnJlbmRlcmVkU2VhcmNoKXJldHVybiBaKGEsRGF0ZS5ub3coKSsxZTQpLG51bGw7bGV0IGw9KDAsbS5jcmVhdGVQcm9taXNlV2l0aFJlc29sdmVycykoKSxvPW51bGwsYz1lbihuLmJvZHksbC5yZXNvbHZlLGZ1bmN0aW9uKGUpe2lmKG51bGw9PT1vKXJldHVybjtsZXQgdD1lL28ubGVuZ3RoO2ZvcihsZXQgZSBvZiBvKSgwLHkuc2V0U2l6ZUluQ2FjaGVNYXApKGUsdCl9KSxmPWF3YWl0ICgwLGkuY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbSkoYyxzKSxkPXI9PT1FLkZldGNoU3RyYXRlZ3kuUFBSUnVudGltZSYmZi5ycD8uWzBdPT09ITA7cmV0dXJuIG89ZWUoRGF0ZS5ub3coKSxlLHIsbixmLGQsdCxhKSx7dmFsdWU6bnVsbCxjbG9zZWQ6bC5wcm9taXNlfX1jYXRjaChlKXtyZXR1cm4gWihhLERhdGUubm93KCkrMWU0KSxudWxsfX1mdW5jdGlvbiBaKGUsdCl7bGV0IHI9W107Zm9yKGxldCBuIG9mIGUudmFsdWVzKCkpMT09PW4uc3RhdHVzP1kobix0KToyPT09bi5zdGF0dXMmJnIucHVzaChuKTtyZXR1cm4gcn1mdW5jdGlvbiBlZShlLHQscixuLGEsbCx1LGkpe2lmKGEuYiE9PSgwLGYuZ2V0QXBwQnVpbGRJZCkoKSlyZXR1cm4gbnVsbCE9PWkmJlooaSxlKzFlNCksbnVsbDtsZXQgYz0oMCxSLm5vcm1hbGl6ZUZsaWdodERhdGEpKGEuZik7aWYoInN0cmluZyI9PXR5cGVvZiBjKXJldHVybiBudWxsO2xldCBzPSJudW1iZXIiPT10eXBlb2YgYS5ycD8uWzFdP2EucnBbMV06cGFyc2VJbnQobi5oZWFkZXJzLmdldChvLk5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSKT8/IiIsMTApLGQ9ZSsoaXNOYU4ocyk/Xy5TVEFUSUNfU1RBTEVUSU1FX01TOmIocykpO2ZvcihsZXQgbiBvZiBjKXtsZXQgYT1uLnNlZWREYXRhO2lmKG51bGwhPT1hKXtsZXQgbz1uLnNlZ21lbnRQYXRoLGM9dS50cmVlO2ZvcihsZXQgdD0wO3Q8by5sZW5ndGg7dCs9Mil7bGV0IHI9b1t0XTtpZihjPy5zbG90cz8uW3JdPT09dm9pZCAwKXJldHVybiBudWxsIT09aSYmWihpLGUrMWU0KSxudWxsO2M9Yy5zbG90c1tyXX0hZnVuY3Rpb24gZSh0LHIsbixhLGwsdSxvLGksYyl7bGV0IHM9b1swXTtldCh0LG4sYSxzLG9bMl0sbnVsbD09PXN8fGksdSxsLGMpO2xldCBmPWwuc2xvdHM7aWYobnVsbCE9PWYpe2xldCBsPW9bMV07Zm9yKGxldCBvIGluIGYpe2xldCBzPWZbb10sZD1sW29dO251bGwhPWQmJmUodCxyLG4sYSxzLHUsZCxpLGMpfX19KGUsdCxyLHUsYyxkLGEsbCxpKX1sZXQgbz1uLmhlYWQ7bnVsbCE9PW8mJmV0KGUscix1LG8sbnVsbCxuLmlzSGVhZFBhcnRpYWwsZCx1Lm1ldGFkYXRhLGkpfXJldHVybiBudWxsIT09aT9aKGksZSsxZTQpOm51bGx9ZnVuY3Rpb24gZXQoZSx0LHIsbixhLGwsdSxvLGkpe2xldCBjPW51bGwhPT1pP2kuZ2V0KG8ucmVxdWVzdEtleSk6dm9pZCAwO2lmKHZvaWQgMCE9PWMpWChjLG4sYSx1LGwpO2Vsc2V7bGV0IGk9ayhlLHQscixvKTtpZigwPT09aS5zdGF0dXMpWChxKGksdCksbixhLHUsbCk7ZWxzZXtsZXQgcj1YKHEoVih1KSx0KSxuLGEsdSxsKTtLKGUsKDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KSh0LG8pLHIpfX19YXN5bmMgZnVuY3Rpb24gZXIoZSx0KXtsZXQgcj1hd2FpdCAoMCxpLmNyZWF0ZUZldGNoKShlLHQsImxvdyIsITEpO2lmKCFyLm9rKXJldHVybiBudWxsO3tsZXQgZT1yLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKTtpZighKGUmJmUuc3RhcnRzV2l0aChvLlJTQ19DT05URU5UX1RZUEVfSEVBREVSKSkpcmV0dXJuIG51bGx9cmV0dXJuIHJ9ZnVuY3Rpb24gZW4oZSx0LHIpe2xldCBuPTAsYT1lLmdldFJlYWRlcigpO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoZSl7Zm9yKDs7KXtsZXR7ZG9uZTpsLHZhbHVlOnV9PWF3YWl0IGEucmVhZCgpO2lmKCFsKXtlLmVucXVldWUodSkscihuKz11LmJ5dGVMZW5ndGgpO2NvbnRpbnVlfXQoKTtyZXR1cm59fX0pfWZ1bmN0aW9uIGVhKGUsdCl7cmV0dXJuIGU8dH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw2NTQ2MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y29udmVydFNlcnZlclBhdGNoVG9GdWxsVHJlZTpmdW5jdGlvbigpe3JldHVybiB2fSxuYXZpZ2F0ZTpmdW5jdGlvbigpe3JldHVybiBkfSxuYXZpZ2F0ZVRvU2VlZGVkUm91dGU6ZnVuY3Rpb24oKXtyZXR1cm4gaH19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbD1lLnIoMTEwNiksdT1lLnIoMTg5MzkpLG89ZS5yKDg1NTk0KSxpPWUucig0NDY2NyksYz1lLnIoMTYzMTYpLHM9ZS5yKDI3NDU0KSxmPWUucig1MjQxMyk7ZnVuY3Rpb24gZChlLHQscixuLGEsbCx1LG8pe2xldCBzPURhdGUubm93KCksZD1lLmhyZWYsaD1kPT09dC5ocmVmLHk9KDAsYy5jcmVhdGVDYWNoZUtleSkoZCxhKSxfPSgwLGkucmVhZFJvdXRlQ2FjaGVFbnRyeSkocyx5KTtpZihudWxsIT09XyYmXy5zdGF0dXM9PT1pLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZCl7bGV0IG89ZyhzLF8sXy50cmVlKSxpPW8uZmxpZ2h0Um91dGVyU3RhdGUsYz1vLnNlZWREYXRhLGY9UihzLF8pLGQ9Zi5yc2MseT1mLmlzUGFydGlhbCxQPV8uY2Fub25pY2FsVXJsK2UuaGFzaDtyZXR1cm4gcChzLGUsdCxhLGgscixuLGksYyxkLHksUCxfLnJlbmRlcmVkU2VhcmNoLGwsdSl9aWYobnVsbD09PV98fF8uc3RhdHVzIT09aS5FbnRyeVN0YXR1cy5SZWplY3RlZCl7bGV0IG89KDAsaS5yZXF1ZXN0T3B0aW1pc3RpY1JvdXRlQ2FjaGVFbnRyeSkocyxlLGEpO2lmKG51bGwhPT1vKXtsZXQgaT1nKHMsbyxvLnRyZWUpLGM9aS5mbGlnaHRSb3V0ZXJTdGF0ZSxmPWkuc2VlZERhdGEsZD1SKHMsbykseT1kLnJzYyxfPWQuaXNQYXJ0aWFsLFA9by5jYW5vbmljYWxVcmwrZS5oYXNoO3JldHVybiBwKHMsZSx0LGEsaCxyLG4sYyxmLHksXyxQLG8ucmVuZGVyZWRTZWFyY2gsbCx1KX19bGV0IHY9by5jb2xsZWN0ZWREZWJ1Z0luZm8/P1tdO3JldHVybiB2b2lkIDA9PT1vLmNvbGxlY3RlZERlYnVnSW5mbyYmKHY9by5jb2xsZWN0ZWREZWJ1Z0luZm89W10pLHt0YWc6Zi5OYXZpZ2F0aW9uUmVzdWx0VGFnLkFzeW5jLGRhdGE6UChzLGUsdCxhLHIsbixsLHUsdil9fWZ1bmN0aW9uIGgoZSx0LHIsbixhLGwsbyxpLGMscyl7bGV0IGQ9e3Njcm9sbGFibGVTZWdtZW50czpudWxsLHNlcGFyYXRlUmVmcmVzaFVybHM6bnVsbH0saD10LmhyZWY9PT1hLmhyZWYscD0oMCx1LnN0YXJ0UFBSTmF2aWdhdGlvbikoZSxhLGwsbyxuLnRyZWUsaSxuLmRhdGEsbi5oZWFkLG51bGwsbnVsbCwhMSxoLGQpO3JldHVybiBudWxsIT09cD8oKDAsdS5zcGF3bkR5bmFtaWNSZXF1ZXN0cykocCx0LGMsaSxkKSx5KHAscixuLnJlbmRlcmVkU2VhcmNoLGQuc2Nyb2xsYWJsZVNlZ21lbnRzLHMsdC5oYXNoKSk6e3RhZzpmLk5hdmlnYXRpb25SZXN1bHRUYWcuTVBBLGRhdGE6cn19ZnVuY3Rpb24gcChlLHQscixuLGEsbCxvLGksYyxzLGQsaCxwLGcsUil7bGV0IF89e3Njcm9sbGFibGVTZWdtZW50czpudWxsLHNlcGFyYXRlUmVmcmVzaFVybHM6bnVsbH0sUD0oMCx1LnN0YXJ0UFBSTmF2aWdhdGlvbikoZSxyLGwsbyxpLGcsbnVsbCxudWxsLGMscyxkLGEsXyk7cmV0dXJuIG51bGwhPT1QPygoMCx1LnNwYXduRHluYW1pY1JlcXVlc3RzKShQLHQsbixnLF8pLHkoUCxoLHAsXy5zY3JvbGxhYmxlU2VnbWVudHMsUix0Lmhhc2gpKTp7dGFnOmYuTmF2aWdhdGlvblJlc3VsdFRhZy5NUEEsZGF0YTpofX1mdW5jdGlvbiB5KGUsdCxyLG4sYSxsKXtyZXR1cm57dGFnOmYuTmF2aWdhdGlvblJlc3VsdFRhZy5TdWNjZXNzLGRhdGE6e2ZsaWdodFJvdXRlclN0YXRlOmUucm91dGUsY2FjaGVOb2RlOmUubm9kZSxjYW5vbmljYWxVcmw6dCxyZW5kZXJlZFNlYXJjaDpyLHNjcm9sbGFibGVTZWdtZW50czpuLHNob3VsZFNjcm9sbDphLGhhc2g6bH19fWZ1bmN0aW9uIGcoZSx0LHIpe2xldCBuPXt9LGE9e30sbD1yLnNsb3RzO2lmKG51bGwhPT1sKWZvcihsZXQgciBpbiBsKXtsZXQgdT1nKGUsdCxsW3JdKTtuW3JdPXUuZmxpZ2h0Um91dGVyU3RhdGUsYVtyXT11LnNlZWREYXRhfWxldCB1PW51bGwsbz1udWxsLGM9ITAsZj0oMCxpLnJlYWRTZWdtZW50Q2FjaGVFbnRyeSkoZSxyLnZhcnlQYXRoKTtpZihudWxsIT09Zilzd2l0Y2goZi5zdGF0dXMpe2Nhc2UgaS5FbnRyeVN0YXR1cy5GdWxmaWxsZWQ6dT1mLnJzYyxvPWYubG9hZGluZyxjPWYuaXNQYXJ0aWFsO2JyZWFrO2Nhc2UgaS5FbnRyeVN0YXR1cy5QZW5kaW5nOntsZXQgZT0oMCxpLndhaXRGb3JTZWdtZW50Q2FjaGVFbnRyeSkoZik7dT1lLnRoZW4oZT0+bnVsbCE9PWU/ZS5yc2M6bnVsbCksbz1lLnRoZW4oZT0+bnVsbCE9PWU/ZS5sb2FkaW5nOm51bGwpLGM9Zi5pc1BhcnRpYWx9Y2FzZSBpLkVudHJ5U3RhdHVzLkVtcHR5OmNhc2UgaS5FbnRyeVN0YXR1cy5SZWplY3RlZDp9cmV0dXJue2ZsaWdodFJvdXRlclN0YXRlOlsoMCxzLmFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQpKHIuc2VnbWVudCxPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyh0LnJlbmRlcmVkU2VhcmNoKSkpLG4sbnVsbCxudWxsLHIuaXNSb290TGF5b3V0XSxzZWVkRGF0YTpbdSxhLG8sYywhMV19fWZ1bmN0aW9uIFIoZSx0KXtsZXQgcj1udWxsLG49ITAsYT0oMCxpLnJlYWRTZWdtZW50Q2FjaGVFbnRyeSkoZSx0Lm1ldGFkYXRhLnZhcnlQYXRoKTtpZihudWxsIT09YSlzd2l0Y2goYS5zdGF0dXMpe2Nhc2UgaS5FbnRyeVN0YXR1cy5GdWxmaWxsZWQ6cj1hLnJzYyxuPWEuaXNQYXJ0aWFsO2JyZWFrO2Nhc2UgaS5FbnRyeVN0YXR1cy5QZW5kaW5nOnI9KDAsaS53YWl0Rm9yU2VnbWVudENhY2hlRW50cnkpKGEpLnRoZW4oZT0+bnVsbCE9PWU/ZS5yc2M6bnVsbCksbj1hLmlzUGFydGlhbDtjYXNlIGkuRW50cnlTdGF0dXMuRW1wdHk6Y2FzZSBpLkVudHJ5U3RhdHVzLlJlamVjdGVkOn1yZXR1cm57cnNjOnIsaXNQYXJ0aWFsOm59fWxldCBfPVsiIix7fSxudWxsLCJyZWZldGNoIl07YXN5bmMgZnVuY3Rpb24gUChlLHQscixuLGEsaSxjLHMsZCl7bGV0IHA7c3dpdGNoKGMpe2Nhc2UgdS5GcmVzaG5lc3NQb2xpY3kuRGVmYXVsdDpjYXNlIHUuRnJlc2huZXNzUG9saWN5Lkhpc3RvcnlUcmF2ZXJzYWw6cD1pO2JyZWFrO2Nhc2UgdS5GcmVzaG5lc3NQb2xpY3kuSHlkcmF0aW9uOmNhc2UgdS5GcmVzaG5lc3NQb2xpY3kuUmVmcmVzaEFsbDpjYXNlIHUuRnJlc2huZXNzUG9saWN5LkhNUlJlZnJlc2g6cD1fO2JyZWFrO2RlZmF1bHQ6cD1pfWxldCB5PSgwLGwuZmV0Y2hTZXJ2ZXJSZXNwb25zZSkodCx7ZmxpZ2h0Um91dGVyU3RhdGU6cCxuZXh0VXJsOm59KSxnPWF3YWl0IHk7aWYoInN0cmluZyI9PXR5cGVvZiBnKXJldHVybnt0YWc6Zi5OYXZpZ2F0aW9uUmVzdWx0VGFnLk1QQSxkYXRhOmd9O2xldHtmbGlnaHREYXRhOlIsY2Fub25pY2FsVXJsOlAscmVuZGVyZWRTZWFyY2g6RSxkZWJ1Z0luZm86bX09ZztudWxsIT09bSYmZC5wdXNoKC4uLm0pO2xldCBiPXYoaSxSLEUpO3JldHVybiBoKGUsdCwoMCxvLmNyZWF0ZUhyZWZGcm9tVXJsKShQKSxiLHIsYSxpLGMsbixzKX1mdW5jdGlvbiB2KGUsdCxyKXtsZXQgbj1lLGE9bnVsbCxsPW51bGw7Zm9yKGxldHtzZWdtZW50UGF0aDplLHRyZWU6cixzZWVkRGF0YTp1LGhlYWQ6b31vZiB0KXtsZXQgdD1mdW5jdGlvbiBlKHQscixuLGEsbCx1KXtsZXQgbztpZih1PT09bC5sZW5ndGgpcmV0dXJue3RyZWU6bixkYXRhOmF9O2xldCBpPWxbdV0sYz10WzFdLHM9bnVsbCE9PXI/clsxXTpudWxsLGY9e30sZD17fTtmb3IobGV0IHQgaW4gYyl7bGV0IHI9Y1t0XSxvPW51bGwhPT1zP3NbdF0/P251bGw6bnVsbDtpZih0PT09aSl7bGV0IGk9ZShyLG8sbixhLGwsdSsyKTtmW3RdPWkudHJlZSxkW3RdPWkuZGF0YX1lbHNlIGZbdF09cixkW3RdPW99cmV0dXJuIG89W3RbMF0sZl0sMiBpbiB0JiYob1syXT10WzJdKSwzIGluIHQmJihvWzNdPXRbM10pLDQgaW4gdCYmKG9bNF09dFs0XSkse3RyZWU6byxkYXRhOltudWxsLGQsbnVsbCwhMCwhMV19fShuLGEscix1LGUsMCk7bj10LnRyZWUsYT10LmRhdGEsbD1vfXJldHVybnt0cmVlOm4sZGF0YTphLHJlbmRlcmVkU2VhcmNoOnIsaGVhZDpsfX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1NDAxMSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17RFlOQU1JQ19TVEFMRVRJTUVfTVM6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sU1RBVElDX1NUQUxFVElNRV9NUzpmdW5jdGlvbigpe3JldHVybiBkfSxnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCl7bGV0IHI9W10sW24sYV09dDtpZigwPT09T2JqZWN0LmtleXMoYSkubGVuZ3RoKXJldHVybltbbl1dO2ZvcihsZXRbdCxsXW9mIE9iamVjdC5lbnRyaWVzKGEpKWZvcihsZXQgYSBvZiBlKGwpKSIiPT09bj9yLnB1c2goW3QsLi4uYV0pOnIucHVzaChbbix0LC4uLmFdKTtyZXR1cm4gcn19LGhhbmRsZUV4dGVybmFsVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGhhbmRsZU5hdmlnYXRpb25SZXN1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sbmF2aWdhdGVSZWR1Y2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHl9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IGw9ZS5yKDg1NTk0KSx1PWUucig2MzI3OCksbz1lLnIoNjU0NjMpLGk9ZS5yKDUyNDEzKSxjPWUucig0NDY2Nykscz1lLnIoMTg5MzkpLGY9MWUzKk51bWJlcigiMCIpLGQ9KDAsYy5nZXRTdGFsZVRpbWVNcykoTnVtYmVyKCIzMDAiKSk7ZnVuY3Rpb24gaChlLHQscixuKXtyZXR1cm4gdC5tcGFOYXZpZ2F0aW9uPSEwLHQuY2Fub25pY2FsVXJsPXIsdC5wZW5kaW5nUHVzaD1uLHQuc2Nyb2xsYWJsZVNlZ21lbnRzPXZvaWQgMCwoMCx1LmhhbmRsZU11dGFibGUpKGUsdCl9ZnVuY3Rpb24gcChlLHQscixuLGEpe3N3aXRjaChhLnRhZyl7Y2FzZSBpLk5hdmlnYXRpb25SZXN1bHRUYWcuTVBBOnJldHVybiBoKHQscixhLmRhdGEsbik7Y2FzZSBpLk5hdmlnYXRpb25SZXN1bHRUYWcuU3VjY2Vzczp7ci5jYWNoZT1hLmRhdGEuY2FjaGVOb2RlLHIucGF0Y2hlZFRyZWU9YS5kYXRhLmZsaWdodFJvdXRlclN0YXRlLHIucmVuZGVyZWRTZWFyY2g9YS5kYXRhLnJlbmRlcmVkU2VhcmNoLHIuY2Fub25pY2FsVXJsPWEuZGF0YS5jYW5vbmljYWxVcmwsci5zY3JvbGxhYmxlU2VnbWVudHM9YS5kYXRhLnNjcm9sbGFibGVTZWdtZW50cz8/dm9pZCAwLHIuc2hvdWxkU2Nyb2xsPWEuZGF0YS5zaG91bGRTY3JvbGwsci5oYXNoRnJhZ21lbnQ9YS5kYXRhLmhhc2g7bGV0IG49bmV3IFVSTCh0LmNhbm9uaWNhbFVybCxlKTtyZXR1cm4gZS5wYXRobmFtZT09PW4ucGF0aG5hbWUmJmUuc2VhcmNoPT09bi5zZWFyY2gmJmUuaGFzaCE9PW4uaGFzaCYmKHIub25seUhhc2hDaGFuZ2U9ITAsci5zaG91bGRTY3JvbGw9YS5kYXRhLnNob3VsZFNjcm9sbCxyLmhhc2hGcmFnbWVudD1lLmhhc2gsci5zY3JvbGxhYmxlU2VnbWVudHM9W10pLCgwLHUuaGFuZGxlTXV0YWJsZSkodCxyKX1jYXNlIGkuTmF2aWdhdGlvblJlc3VsdFRhZy5Bc3luYzpyZXR1cm4gYS5kYXRhLnRoZW4oYT0+cChlLHQscixuLGEpLCgpPT50KTtkZWZhdWx0OnJldHVybiB0fX1mdW5jdGlvbiB5KGUsdCl7bGV0e3VybDpyLGlzRXh0ZXJuYWxVcmw6bixuYXZpZ2F0ZVR5cGU6YSxzaG91bGRTY3JvbGw6dX09dCxpPXt9LGM9KDAsbC5jcmVhdGVIcmVmRnJvbVVybCkociksZj0icHVzaCI9PT1hO2lmKGkucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU9ITEsaS5wZW5kaW5nUHVzaD1mLG4pcmV0dXJuIGgoZSxpLHIudG9TdHJpbmcoKSxmKTtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19uZXh0LXBhZ2UtcmVkaXJlY3QiKSlyZXR1cm4gaChlLGksYyxmKTtsZXQgZD1uZXcgVVJMKGUuY2Fub25pY2FsVXJsLGxvY2F0aW9uLm9yaWdpbikseT0oMCxvLm5hdmlnYXRlKShyLGQsZS5jYWNoZSxlLnRyZWUsZS5uZXh0VXJsLHMuRnJlc2huZXNzUG9saWN5LkRlZmF1bHQsdSxpKTtyZXR1cm4gcChyLGUsaSxmLHkpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDYxNzM5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKFt0LHJdKXtpZihBcnJheS5pc0FycmF5KHQpJiYoImRpKC4uKSguLikiPT09dFsyXXx8ImNpKC4uKSguLikiPT09dFsyXXx8ImRpKC4pIj09PXRbMl18fCJjaSguKSI9PT10WzJdfHwiZGkoLi4pIj09PXRbMl18fCJjaSguLikiPT09dFsyXXx8ImRpKC4uLikiPT09dFsyXXx8ImNpKC4uLikiPT09dFsyXSl8fCJzdHJpbmciPT10eXBlb2YgdCYmKDAsbi5pc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCkodCkpcmV0dXJuITA7aWYocil7Zm9yKGxldCB0IGluIHIpaWYoZShyW3RdKSlyZXR1cm4hMH1yZXR1cm4hMX19fSk7bGV0IG49ZS5yKDU0NjgyKTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3NzczMywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17cmVmcmVzaER5bmFtaWNEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHJlZnJlc2hSZWR1Y2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IGw9ZS5yKDU0MDExKSx1PWUucig2NTQ2Myksbz1lLnIoNDQ2NjcpLGk9ZS5yKDYxNzM5KSxjPWUucigxODkzOSk7ZnVuY3Rpb24gcyhlKXtsZXQgdD1lLm5leHRVcmwscj1lLnRyZWU7cmV0dXJuKDAsby5yZXZhbGlkYXRlRW50aXJlQ2FjaGUpKHQsciksZihlLGMuRnJlc2huZXNzUG9saWN5LlJlZnJlc2hBbGwpfWZ1bmN0aW9uIGYoZSx0KXtsZXQgcj1lLm5leHRVcmwsbj0oMCxpLmhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSkoZS50cmVlKT9lLnByZXZpb3VzTmV4dFVybHx8cjpudWxsLGE9ZS5jYW5vbmljYWxVcmwsbz1uZXcgVVJMKGEsbG9jYXRpb24ub3JpZ2luKSxjPWUudHJlZSxzPXt0cmVlOmUudHJlZSxyZW5kZXJlZFNlYXJjaDplLnJlbmRlcmVkU2VhcmNoLGRhdGE6bnVsbCxoZWFkOm51bGx9LGY9RGF0ZS5ub3coKSxkPSgwLHUubmF2aWdhdGVUb1NlZWRlZFJvdXRlKShmLG8sYSxzLG8sZS5jYWNoZSxjLHQsbiwhMCksaD17fTtyZXR1cm4gaC5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT0hMSwoMCxsLmhhbmRsZU5hdmlnYXRpb25SZXN1bHQpKG8sZSxoLCExLGQpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDYwNTUzLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJzZXJ2ZXJQYXRjaFJlZHVjZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX0pO2xldCBuPWUucig4NTU5NCksYT1lLnIoNTQwMTEpLGw9ZS5yKDY1NDYzKSx1PWUucig3NzczMyksbz1lLnIoMTg5MzkpO2Z1bmN0aW9uIGkoZSx0KXtsZXQgcj17fTtyLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlPSExO2xldCBpPXQubXBhLGM9bmV3IFVSTCh0LnVybCxsb2NhdGlvbi5vcmlnaW4pLHM9dC5zZWVkO2lmKGl8fG51bGw9PT1zKXJldHVybigwLGEuaGFuZGxlRXh0ZXJuYWxVcmwpKGUscixjLmhyZWYsITEpO2xldCBmPW5ldyBVUkwoZS5jYW5vbmljYWxVcmwsbG9jYXRpb24ub3JpZ2luKTtpZih0LnByZXZpb3VzVHJlZSE9PWUudHJlZSlyZXR1cm4oMCx1LnJlZnJlc2hSZWR1Y2VyKShlKTtsZXQgZD0oMCxuLmNyZWF0ZUhyZWZGcm9tVXJsKShjKSxoPXQubmV4dFVybCxwPURhdGUubm93KCkseT0oMCxsLm5hdmlnYXRlVG9TZWVkZWRSb3V0ZSkocCxjLGQscyxmLGUuY2FjaGUsZS50cmVlLG8uRnJlc2huZXNzUG9saWN5LlJlZnJlc2hBbGwsaCwhMCk7cmV0dXJuKDAsYS5oYW5kbGVOYXZpZ2F0aW9uUmVzdWx0KShjLGUsciwhMSx5KX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzMjgzOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicmVzdG9yZVJlZHVjZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCBuPWUucig4NTU5NCksYT1lLnIoMTgxNjcpLGw9ZS5yKDE4OTM5KSx1PWUucig1NDAxMSk7ZnVuY3Rpb24gbyhlLHQpe2xldCByLG8saT10Lmhpc3RvcnlTdGF0ZTtpPyhyPWkudHJlZSxvPWkucmVuZGVyZWRTZWFyY2gpOihyPWUudHJlZSxvPWUucmVuZGVyZWRTZWFyY2gpO2xldCBjPW5ldyBVUkwoZS5jYW5vbmljYWxVcmwsbG9jYXRpb24ub3JpZ2luKSxzPXQudXJsLGY9KDAsbi5jcmVhdGVIcmVmRnJvbVVybCkocyksZD0oMCxhLmV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKShyKT8/cy5wYXRobmFtZSxoPURhdGUubm93KCkscD17c2Nyb2xsYWJsZVNlZ21lbnRzOm51bGwsc2VwYXJhdGVSZWZyZXNoVXJsczpudWxsfSx5PSgwLGwuc3RhcnRQUFJOYXZpZ2F0aW9uKShoLGMsZS5jYWNoZSxlLnRyZWUscixsLkZyZXNobmVzc1BvbGljeS5IaXN0b3J5VHJhdmVyc2FsLG51bGwsbnVsbCxudWxsLG51bGwsITEsITEscCk7cmV0dXJuIG51bGw9PT15PygwLHUuaGFuZGxlRXh0ZXJuYWxVcmwpKGUse3ByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiEwfSxmLCExKTooKDAsbC5zcGF3bkR5bmFtaWNSZXF1ZXN0cykoeSxzLGQsbC5GcmVzaG5lc3NQb2xpY3kuSGlzdG9yeVRyYXZlcnNhbCxwKSx7Y2Fub25pY2FsVXJsOmYscmVuZGVyZWRTZWFyY2g6byxwdXNoUmVmOntwZW5kaW5nUHVzaDohMSxtcGFOYXZpZ2F0aW9uOiExLHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiEwfSxmb2N1c0FuZFNjcm9sbFJlZjplLmZvY3VzQW5kU2Nyb2xsUmVmLGNhY2hlOnkubm9kZSx0cmVlOnIsbmV4dFVybDpkLHByZXZpb3VzTmV4dFVybDpudWxsLGRlYnVnSW5mbzpudWxsfSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNTk2NjIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImhtclJlZnJlc2hSZWR1Y2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1lLnIoNzc3MzMpLGE9ZS5yKDE4OTM5KTtmdW5jdGlvbiBsKGUpe3JldHVybigwLG4ucmVmcmVzaER5bmFtaWNEYXRhKShlLGEuRnJlc2huZXNzUG9saWN5LkhNUlJlZnJlc2gpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY4OTM0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhc3NpZ25Mb2NhdGlvbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49ZS5yKDE0ODU3KTtmdW5jdGlvbiBhKGUsdCl7aWYoZS5zdGFydHNXaXRoKCIuIikpe2xldCByPXQub3JpZ2luK3QucGF0aG5hbWU7cmV0dXJuIG5ldyBVUkwoKHIuZW5kc1dpdGgoIi8iKT9yOnIrIi8iKStlKX1yZXR1cm4gbmV3IFVSTCgoMCxuLmFkZEJhc2VQYXRoKShlKSx0LmhyZWYpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDk5ODk2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwYXRoSGFzUHJlZml4Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgbj1lLnIoOTgwNjMpO2Z1bmN0aW9uIGEoZSx0KXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuITE7bGV0e3BhdGhuYW1lOnJ9PSgwLG4ucGFyc2VQYXRoKShlKTtyZXR1cm4gcj09PXR8fHIuc3RhcnRzV2l0aCh0KyIvIil9fSwzODkzMywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiaGFzQmFzZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig5OTg5Nik7ZnVuY3Rpb24gYShlKXtyZXR1cm4oMCxuLnBhdGhIYXNQcmVmaXgpKGUsIiIpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI0MDQyLChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInJlbW92ZUJhc2VQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KSxlLnIoMzg5MzMpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDgwOTI0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtleHRyYWN0SW5mb0Zyb21TZXJ2ZXJSZWZlcmVuY2VJZDpmdW5jdGlvbigpe3JldHVybiBsfSxvbWl0VW51c2VkQXJnczpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2Z1bmN0aW9uIGwoZSl7bGV0IHQ9cGFyc2VJbnQoZS5zbGljZSgwLDIpLDE2KSxyPXQ+PjEmNjMsbj1BcnJheSg2KTtmb3IobGV0IGU9MDtlPDY7ZSsrKXtsZXQgdD1yPj41LWUmMTtuW2VdPTE9PT10fXJldHVybnt0eXBlOjE9PSh0Pj43JjEpPyJ1c2UtY2FjaGUiOiJzZXJ2ZXItYWN0aW9uIix1c2VkQXJnczpuLGhhc1Jlc3RBcmdzOjE9PSgxJnQpfX1mdW5jdGlvbiB1KGUsdCl7bGV0IHI9QXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKShuPDYmJnQudXNlZEFyZ3Nbbl18fG4+PTYmJnQuaGFzUmVzdEFyZ3MpJiYocltuXT1lW25dKTtyZXR1cm4gcn19LDc2ODQ0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtBY3Rpb25EaWROb3RSZXZhbGlkYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LEFjdGlvbkRpZFJldmFsaWRhdGVEeW5hbWljT25seTpmdW5jdGlvbigpe3JldHVybiBvfSxBY3Rpb25EaWRSZXZhbGlkYXRlU3RhdGljQW5kRHluYW1pYzpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPTAsdT0xLG89Mn0sNjcwMzMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtsZXQgbjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInNlcnZlckFjdGlvblJlZHVjZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqfX0pO2xldCBhPWUucigzMDkzMSksbD1lLnIoODk1OTQpLHU9ZS5yKDM0NjQxKSxvPWUucig3NTA1MSksaT1lLnIoNzUwNDUpLGM9ZS5yKDY4OTM0KSxzPWUucig4NTU5NCksZj1lLnIoNTQwMTEpLGQ9ZS5yKDYxNzM5KSxoPWUucig2NzYyOCkscD1lLnIoNDE3MjEpLHk9ZS5yKDkwODYyKSxnPWUucigyNDA0MiksUj1lLnIoMzg5MzMpLF89ZS5yKDgwOTI0KSxQPWUucig0NDY2Nyksdj1lLnIoODg3NzQpLEU9ZS5yKDY1NDYzKSxtPWUucig3Njg0NCksYj1lLnIoMjkzNjIpLFM9ZS5yKDE4OTM5KSxUPWkuY3JlYXRlRnJvbUZldGNoO2FzeW5jIGZ1bmN0aW9uIE8oZSx0LHthY3Rpb25JZDpyLGFjdGlvbkFyZ3M6c30pe2xldCBmLGQscCxnLFIsUD0oMCxpLmNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCkoKSxFPSgwLF8uZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQpKHIpLGI9InVzZS1jYWNoZSI9PT1FLnR5cGU/KDAsXy5vbWl0VW51c2VkQXJncykocyxFKTpzLFM9YXdhaXQgKDAsaS5lbmNvZGVSZXBseSkoYix7dGVtcG9yYXJ5UmVmZXJlbmNlczpQfSksTz17QWNjZXB0OnUuUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsW3UuQUNUSU9OX0hFQURFUl06cixbdS5ORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl06KDAsaC5wcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KShlLnRyZWUpfSxqPSgwLHYuZ2V0RGVwbG95bWVudElkKSgpO2omJihPWyJ4LWRlcGxveW1lbnQtaWQiXT1qKSx0JiYoT1t1Lk5FWFRfVVJMXT10KTtsZXQgTT1hd2FpdCBmZXRjaChlLmNhbm9uaWNhbFVybCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOk8sYm9keTpTfSk7aWYoIjEiPT09TS5oZWFkZXJzLmdldCh1Lk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIpKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgby5VbnJlY29nbml6ZWRBY3Rpb25FcnJvcihgU2VydmVyIEFjdGlvbiAiJHtyfSIgd2FzIG5vdCBmb3VuZCBvbiB0aGUgc2VydmVyLiAKUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9mYWlsZWQtdG8tZmluZC1zZXJ2ZXItYWN0aW9uYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MTUiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0IEE9TS5oZWFkZXJzLmdldCgieC1hY3Rpb24tcmVkaXJlY3QiKSxbVSxDXT1BPy5zcGxpdCgiOyIpfHxbXTtzd2l0Y2goQyl7Y2FzZSJwdXNoIjpmPXkuUmVkaXJlY3RUeXBlLnB1c2g7YnJlYWs7Y2FzZSJyZXBsYWNlIjpmPXkuUmVkaXJlY3RUeXBlLnJlcGxhY2U7YnJlYWs7ZGVmYXVsdDpmPXZvaWQgMH1sZXQgTj0hIU0uaGVhZGVycy5nZXQodS5ORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIpLHc9bS5BY3Rpb25EaWROb3RSZXZhbGlkYXRlO3RyeXtsZXQgZT1NLmhlYWRlcnMuZ2V0KCJ4LWFjdGlvbi1yZXZhbGlkYXRlZCIpO2lmKGUpe2xldCB0PUpTT04ucGFyc2UoZSk7KHQ9PT1tLkFjdGlvbkRpZFJldmFsaWRhdGVTdGF0aWNBbmREeW5hbWljfHx0PT09bS5BY3Rpb25EaWRSZXZhbGlkYXRlRHluYW1pY09ubHkpJiYodz10KX19Y2F0Y2h7fWxldCBGPVU/KDAsYy5hc3NpZ25Mb2NhdGlvbikoVSxuZXcgVVJMKGUuY2Fub25pY2FsVXJsLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSk6dm9pZCAwLEk9TS5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIiksTD0hIShJJiZJLnN0YXJ0c1dpdGgodS5SU0NfQ09OVEVOVF9UWVBFX0hFQURFUikpO2lmKCFMJiYhRil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoTS5zdGF0dXM+PTQwMCYmInRleHQvcGxhaW4iPT09ST9hd2FpdCBNLnRleHQoKToiQW4gdW5leHBlY3RlZCByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2lmKEwpe2xldCBlPWF3YWl0IFQoUHJvbWlzZS5yZXNvbHZlKE0pLHtjYWxsU2VydmVyOmEuY2FsbFNlcnZlcixmaW5kU291cmNlTWFwVVJMOmwuZmluZFNvdXJjZU1hcFVSTCx0ZW1wb3JhcnlSZWZlcmVuY2VzOlAsZGVidWdDaGFubmVsOm4mJm4oTyl9KTtkPUY/dm9pZCAwOmUuYTtsZXQgdD0oMCxoLm5vcm1hbGl6ZUZsaWdodERhdGEpKGUuZik7IiIhPT10JiYocD10LGc9ZS5xLFI9ZS5pKX1lbHNlIGQ9dm9pZCAwLHA9dm9pZCAwLGc9dm9pZCAwLFI9dm9pZCAwO3JldHVybnthY3Rpb25SZXN1bHQ6ZCxhY3Rpb25GbGlnaHREYXRhOnAsYWN0aW9uRmxpZ2h0RGF0YVJlbmRlcmVkU2VhcmNoOmcsYWN0aW9uRmxpZ2h0RGF0YUNvdWxkQmVJbnRlcmNlcHRlZDpSLHJlZGlyZWN0TG9jYXRpb246RixyZWRpcmVjdFR5cGU6ZixyZXZhbGlkYXRpb25LaW5kOncsaXNQcmVyZW5kZXI6Tn19ZnVuY3Rpb24gaihlLHQpe2xldHtyZXNvbHZlOnIscmVqZWN0Om59PXQsYT17fTthLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlPSExO2xldCBsPShlLnByZXZpb3VzTmV4dFVybHx8ZS5uZXh0VXJsKSYmKDAsZC5oYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUpKGUudHJlZSk/ZS5wcmV2aW91c05leHRVcmx8fGUubmV4dFVybDpudWxsO3JldHVybiBPKGUsbCx0KS50aGVuKGFzeW5jKHtyZXZhbGlkYXRpb25LaW5kOnUsYWN0aW9uUmVzdWx0Om8sYWN0aW9uRmxpZ2h0RGF0YTppLGFjdGlvbkZsaWdodERhdGFSZW5kZXJlZFNlYXJjaDpjLGFjdGlvbkZsaWdodERhdGFDb3VsZEJlSW50ZXJjZXB0ZWQ6ZCxyZWRpcmVjdExvY2F0aW9uOmgscmVkaXJlY3RUeXBlOnB9KT0+e3UhPT1tLkFjdGlvbkRpZE5vdFJldmFsaWRhdGUmJih0LmRpZFJldmFsaWRhdGU9ITAsdT09PW0uQWN0aW9uRGlkUmV2YWxpZGF0ZVN0YXRpY0FuZER5bmFtaWMmJigwLFAucmV2YWxpZGF0ZUVudGlyZUNhY2hlKShsLGUudHJlZSkpO2xldCBfPXAhPT15LlJlZGlyZWN0VHlwZS5yZXBsYWNlO2lmKGUucHVzaFJlZi5wZW5kaW5nUHVzaD1fLGEucGVuZGluZ1B1c2g9Xyx2b2lkIDAhPT1oKXtsZXQgdD1wfHx5LlJlZGlyZWN0VHlwZS5wdXNoO2lmKCgwLGIuaXNFeHRlcm5hbFVSTCkoaCkpe2xldCByPWguaHJlZjtyZXR1cm4gbihNKHIsdCkpLCgwLGYuaGFuZGxlRXh0ZXJuYWxVcmwpKGUsYSxyLF8pfXtsZXQgZT0oMCxzLmNyZWF0ZUhyZWZGcm9tVXJsKShoLCExKTtuKE0oKDAsUi5oYXNCYXNlUGF0aCkoZSk/KDAsZy5yZW1vdmVCYXNlUGF0aCkoZSk6ZSx0KSl9fWVsc2UgcihvKTtpZih2b2lkIDA9PT1oJiZ1PT09bS5BY3Rpb25EaWROb3RSZXZhbGlkYXRlJiZ2b2lkIDA9PT1pKXJldHVybiBlO2lmKHZvaWQgMD09PWkmJnZvaWQgMCE9PWgpcmV0dXJuKDAsZi5oYW5kbGVFeHRlcm5hbFVybCkoZSxhLGguaHJlZixfKTtpZigic3RyaW5nIj09dHlwZW9mIGkpcmV0dXJuKDAsZi5oYW5kbGVFeHRlcm5hbFVybCkoZSxhLGksXyk7bGV0IHY9bmV3IFVSTChlLmNhbm9uaWNhbFVybCxsb2NhdGlvbi5vcmlnaW4pLFQ9dm9pZCAwIT09aD9oOnYsTz1lLnRyZWUsaj11PT09bS5BY3Rpb25EaWROb3RSZXZhbGlkYXRlP1MuRnJlc2huZXNzUG9saWN5LkRlZmF1bHQ6Uy5GcmVzaG5lc3NQb2xpY3kuUmVmcmVzaEFsbDtpZih2b2lkIDAhPT1pKXtsZXQgdD1pWzBdO2lmKHZvaWQgMCE9PXQmJnQuaXNSb290UmVuZGVyJiZ2b2lkIDAhPT1jJiZ2b2lkIDAhPT1kKXtsZXQgcj0oMCxzLmNyZWF0ZUhyZWZGcm9tVXJsKShUKSxuPXt0cmVlOnQudHJlZSxyZW5kZXJlZFNlYXJjaDpjLGRhdGE6dC5zZWVkRGF0YSxoZWFkOnQuaGVhZH0sdT1EYXRlLm5vdygpLG89KDAsRS5uYXZpZ2F0ZVRvU2VlZGVkUm91dGUpKHUsVCxyLG4sdixlLmNhY2hlLE8saixsLCEwKTtyZXR1cm4oMCxmLmhhbmRsZU5hdmlnYXRpb25SZXN1bHQpKFQsZSxhLF8sbyl9fWxldCBBPSgwLEUubmF2aWdhdGUpKFQsdixlLmNhY2hlLE8sbCxqLCEwLGEpO3JldHVybigwLGYuaGFuZGxlTmF2aWdhdGlvblJlc3VsdCkoVCxlLGEsXyxBKX0sdD0+KG4odCksZSkpfWZ1bmN0aW9uIE0oZSx0KXtsZXQgcj0oMCxwLmdldFJlZGlyZWN0RXJyb3IpKGUsdCk7cmV0dXJuIHIuaGFuZGxlZD0hMCxyfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY0MSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicmVkdWNlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7bGV0IG49ZS5yKDU5NDMwKSxhPWUucig1NDAxMSksbD1lLnIoNjA1NTMpLHU9ZS5yKDMyODM4KSxvPWUucig3NzczMyksaT1lLnIoNTk2NjIpLGM9ZS5yKDY3MDMzKSxzPSJ1Ijx0eXBlb2Ygd2luZG93P2Z1bmN0aW9uKGUsdCl7cmV0dXJuIGV9OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQudHlwZSl7Y2FzZSBuLkFDVElPTl9OQVZJR0FURTpyZXR1cm4oMCxhLm5hdmlnYXRlUmVkdWNlcikoZSx0KTtjYXNlIG4uQUNUSU9OX1NFUlZFUl9QQVRDSDpyZXR1cm4oMCxsLnNlcnZlclBhdGNoUmVkdWNlcikoZSx0KTtjYXNlIG4uQUNUSU9OX1JFU1RPUkU6cmV0dXJuKDAsdS5yZXN0b3JlUmVkdWNlcikoZSx0KTtjYXNlIG4uQUNUSU9OX1JFRlJFU0g6cmV0dXJuKDAsby5yZWZyZXNoUmVkdWNlcikoZSk7Y2FzZSBuLkFDVElPTl9ITVJfUkVGUkVTSDpyZXR1cm4oMCxpLmhtclJlZnJlc2hSZWR1Y2VyKShlKTtjYXNlIG4uQUNUSU9OX1NFUlZFUl9BQ1RJT046cmV0dXJuKDAsYy5zZXJ2ZXJBY3Rpb25SZWR1Y2VyKShlLHQpO2RlZmF1bHQ6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJVbmtub3duIGFjdGlvbiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjk1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMzQwNTIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByZWZldGNoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTtsZXQgbj1lLnIoMjkzNjIpLGE9ZS5yKDE2MzE2KSxsPWUucig3NTc4MCksdT1lLnIoNTI0MTMpO2Z1bmN0aW9uIG8oZSx0LHIsbyxpKXtsZXQgYz0oMCxuLmNyZWF0ZVByZWZldGNoVVJMKShlKTtpZihudWxsPT09YylyZXR1cm47bGV0IHM9KDAsYS5jcmVhdGVDYWNoZUtleSkoYy5ocmVmLHQpOygwLGwuc2NoZWR1bGVQcmVmZXRjaFRhc2spKHMscixvLHUuUHJlZmV0Y2hQcmlvcml0eS5EZWZhdWx0LGkpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDg0Mzk1LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWU6ZnVuY3Rpb24oKXtyZXR1cm4gX30sZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbjpmdW5jdGlvbigpe3JldHVybiBFfSxkaXNwYXRjaFRyYXZlcnNlQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG19LGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBQfSxwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBifX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBsPWUucig1OTQzMCksdT1lLnIoNjQxKSxvPWUucig3NTIwMSksaT1lLnIoOTE3NjgpLGM9ZS5yKDUyNDEzKSxzPWUucigzNDA1MiksZj1lLnIoOTQ4NzkpLGQ9ZS5yKDE0ODU3KSxoPWUucigyOTM2MikscD1lLnIoOTgyODMpO2Z1bmN0aW9uIHkoZSx0KXtudWxsIT09ZS5wZW5kaW5nPyhlLnBlbmRpbmc9ZS5wZW5kaW5nLm5leHQsbnVsbCE9PWUucGVuZGluZyYmZyh7YWN0aW9uUXVldWU6ZSxhY3Rpb246ZS5wZW5kaW5nLHNldFN0YXRlOnR9KSk6ZS5uZWVkc1JlZnJlc2gmJihlLm5lZWRzUmVmcmVzaD0hMSxlLmRpc3BhdGNoKHt0eXBlOmwuQUNUSU9OX1JFRlJFU0h9LHQpKX1hc3luYyBmdW5jdGlvbiBnKHthY3Rpb25RdWV1ZTplLGFjdGlvbjp0LHNldFN0YXRlOnJ9KXtsZXQgbj1lLnN0YXRlO2UucGVuZGluZz10O2xldCBhPXQucGF5bG9hZCx1PWUuYWN0aW9uKG4sYSk7ZnVuY3Rpb24gbyhuKXtpZih0LmRpc2NhcmRlZCl7dC5wYXlsb2FkLnR5cGU9PT1sLkFDVElPTl9TRVJWRVJfQUNUSU9OJiZ0LnBheWxvYWQuZGlkUmV2YWxpZGF0ZSYmKGUubmVlZHNSZWZyZXNoPSEwKSx5KGUscik7cmV0dXJufWUuc3RhdGU9bix5KGUsciksdC5yZXNvbHZlKG4pfSgwLGkuaXNUaGVuYWJsZSkodSk/dS50aGVuKG8sbj0+e3koZSxyKSx0LnJlamVjdChuKX0pOm8odSl9bGV0IFI9bnVsbDtmdW5jdGlvbiBfKGUsdCl7bGV0IHI9e3N0YXRlOmUsZGlzcGF0Y2g6KGUsdCk9PihmdW5jdGlvbihlLHQscil7bGV0IG49e3Jlc29sdmU6cixyZWplY3Q6KCk9Pnt9fTtpZih0LnR5cGUhPT1sLkFDVElPTl9SRVNUT1JFKXtsZXQgZT1uZXcgUHJvbWlzZSgoZSx0KT0+e249e3Jlc29sdmU6ZSxyZWplY3Q6dH19KTsoMCxvLnN0YXJ0VHJhbnNpdGlvbikoKCk9PntyKGUpfSl9bGV0IGE9e3BheWxvYWQ6dCxuZXh0Om51bGwscmVzb2x2ZTpuLnJlc29sdmUscmVqZWN0Om4ucmVqZWN0fTtudWxsPT09ZS5wZW5kaW5nPyhlLmxhc3Q9YSxnKHthY3Rpb25RdWV1ZTplLGFjdGlvbjphLHNldFN0YXRlOnJ9KSk6dC50eXBlPT09bC5BQ1RJT05fTkFWSUdBVEV8fHQudHlwZT09PWwuQUNUSU9OX1JFU1RPUkU/KGUucGVuZGluZy5kaXNjYXJkZWQ9ITAsYS5uZXh0PWUucGVuZGluZy5uZXh0LGcoe2FjdGlvblF1ZXVlOmUsYWN0aW9uOmEsc2V0U3RhdGU6cn0pKToobnVsbCE9PWUubGFzdCYmKGUubGFzdC5uZXh0PWEpLGUubGFzdD1hKX0pKHIsZSx0KSxhY3Rpb246YXN5bmMoZSx0KT0+KDAsdS5yZWR1Y2VyKShlLHQpLHBlbmRpbmc6bnVsbCxsYXN0Om51bGwsb25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQ6bnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uUm91dGVyVHJhbnNpdGlvblN0YXJ0P3Qub25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQ6bnVsbH07aWYoInUiPnR5cGVvZiB3aW5kb3cpe2lmKG51bGwhPT1SKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiSW50ZXJuYWwgTmV4dC5qcyBFcnJvcjogY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlIHdhcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTYyNCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtSPXJ9cmV0dXJuIHJ9ZnVuY3Rpb24gUCgpe3JldHVybiBudWxsIT09Uj9SLnN0YXRlOm51bGx9ZnVuY3Rpb24gdigpe3JldHVybiBudWxsIT09Uj9SLm9uUm91dGVyVHJhbnNpdGlvblN0YXJ0Om51bGx9ZnVuY3Rpb24gRShlLHQscixuKXtsZXQgYT1uZXcgVVJMKCgwLGQuYWRkQmFzZVBhdGgpKGUpLGxvY2F0aW9uLmhyZWYpOygwLHAuc2V0TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uKShuKTtsZXQgdT12KCk7bnVsbCE9PXUmJnUoZSx0KSwoMCxmLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTpsLkFDVElPTl9OQVZJR0FURSx1cmw6YSxpc0V4dGVybmFsVXJsOigwLGguaXNFeHRlcm5hbFVSTCkoYSksbG9jYXRpb25TZWFyY2g6bG9jYXRpb24uc2VhcmNoLHNob3VsZFNjcm9sbDpyLG5hdmlnYXRlVHlwZTp0fSl9ZnVuY3Rpb24gbShlLHQpe2xldCByPXYoKTtudWxsIT09ciYmcihlLCJ0cmF2ZXJzZSIpLCgwLGYuZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24pKHt0eXBlOmwuQUNUSU9OX1JFU1RPUkUsdXJsOm5ldyBVUkwoZSksaGlzdG9yeVN0YXRlOnR9KX1sZXQgYj17YmFjazooKT0+d2luZG93Lmhpc3RvcnkuYmFjaygpLGZvcndhcmQ6KCk9PndpbmRvdy5oaXN0b3J5LmZvcndhcmQoKSxwcmVmZXRjaDooZSx0KT0+e2xldCByLG49ZnVuY3Rpb24oKXtpZihudWxsPT09Uil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU2NjgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIFJ9KCk7c3dpdGNoKHQ/LmtpbmQ/P2wuUHJlZmV0Y2hLaW5kLkFVVE8pe2Nhc2UgbC5QcmVmZXRjaEtpbmQuQVVUTzpyPWMuRmV0Y2hTdHJhdGVneS5QUFI7YnJlYWs7Y2FzZSBsLlByZWZldGNoS2luZC5GVUxMOnI9Yy5GZXRjaFN0cmF0ZWd5LkZ1bGw7YnJlYWs7ZGVmYXVsdDpyPWMuRmV0Y2hTdHJhdGVneS5QUFJ9KDAscy5wcmVmZXRjaCkoZSxuLnN0YXRlLm5leHRVcmwsbi5zdGF0ZS50cmVlLHIsdD8ub25JbnZhbGlkYXRlPz9udWxsKX0scmVwbGFjZTooZSx0KT0+eygwLG8uc3RhcnRUcmFuc2l0aW9uKSgoKT0+e0UoZSwicmVwbGFjZSIsdD8uc2Nyb2xsPz8hMCxudWxsKX0pfSxwdXNoOihlLHQpPT57KDAsby5zdGFydFRyYW5zaXRpb24pKCgpPT57RShlLCJwdXNoIix0Py5zY3JvbGw/PyEwLG51bGwpfSl9LHJlZnJlc2g6KCk9PnsoMCxvLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCxmLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTpsLkFDVElPTl9SRUZSRVNIfSl9KX0saG1yUmVmcmVzaDooKT0+e3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiaG1yUmVmcmVzaCBjYW4gb25seSBiZSB1c2VkIGluIGRldmVsb3BtZW50IG1vZGUuIFBsZWFzZSB1c2UgcmVmcmVzaCBpbnN0ZWFkLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNDg1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX07InUiPnR5cGVvZiB3aW5kb3cmJndpbmRvdy5uZXh0JiYod2luZG93Lm5leHQucm91dGVyPWIpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9XSk7"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.438Z","timestamp":1785126646438,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 475313\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 00:08:44 GMT\r\nexpires: Fri, 23 Jul 2027 00:08:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 04:34:15 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding, Origin\r\nage: 361322\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1597230,"size_decoded":476001,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (787)","md5":"ef473a4d0528fc7651d726fa43900068","sha1":"3b0d807a63c3244fc3fedeac020c2e81106185e1","sha256":"360a9b05bfc89caf69f220ef2473c20d1657318e21c4e0ffdab81e238b42dc61","sha512":"590afd923ebf8ce8da8def22bdf6149595740d96360cbf541954f52366a31fd5e3d3e6d8dd973044383f2cbad84c18f9f67ff69bf04c3dc6891b35b3eb29bb90","ssdeep":"24576:JddEUuuYnFCL4xFUnYNmJYqJNI5Dt/yV2hD4kf:fdhuuYnFCL4MVJBJO5DtKV2hdf","tlshash":"7e255b9977f2b46343a3f0e0286f018ab17f591454ccd46cb9a9e5f42da090e917bfac","first_seen":"2026-07-22T15:37:53.752532Z","last_seen":"2026-07-27T08:08:01.174134Z","times_seen":1534,"resource_available":false,"data":"dmFyIF95dF9wbGF5ZXI9e307KGZ1bmN0aW9uKGcpe3ZhciB3aW5kb3c9dGhpczsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIChUaGUgTUlUIExpY2Vuc2UpCgogQ29weXJpZ2h0IChDKSAyMDE0IGJ5IFZpdGFseSBQdXpyaW4KCiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiBUSEUgU09GVFdBUkUuCgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFBvcnRlZCBmcm9tIHpsaWIsIHdoaWNoIGlzIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZQogaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvbWFzdGVyL3psaWIuaAoKIHpsaWIuaCAtLSBpbnRlcmZhY2Ugb2YgdGhlICd6bGliJyBnZW5lcmFsIHB1cnBvc2UgY29tcHJlc3Npb24gbGlicmFyeQogICB2ZXJzaW9uIDEuMi44LCBBcHJpbCAyOHRoLCAyMDEzCiAgIENvcHlyaWdodCAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAgVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAgd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogICBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogICBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgICAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogICAgICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogICAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogICAgICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCiAgIEplYW4tbG91cCBHYWlsbHkgICAgICAgIE1hcmsgQWRsZXIKICAgamxvdXBAZ3ppcC5vcmcgICAgICAgICAgbWFkbGVyQGFsdW1uaS5jYWx0ZWNoLmVkdQogICBUaGUgZGF0YSBmb3JtYXQgdXNlZCBieSB0aGUgemxpYiBsaWJyYXJ5IGlzIGRlc2NyaWJlZCBieSBSRkNzIChSZXF1ZXN0IGZvcgogICBDb21tZW50cykgMTk1MCB0byAxOTUyIGluIHRoZSBmaWxlcyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxOTUwCiAgICh6bGliIGZvcm1hdCksIHJmYzE5NTEgKGRlZmxhdGUgZm9ybWF0KSBhbmQgcmZjMTk1MiAoZ3ppcCBmb3JtYXQpLgoqLwovKgoKIENvcHlyaWdodCAyMDE1LXByZXNlbnQgRGFuIEFicmFtb3YKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKi8KJ3VzZSBzdHJpY3QnO3ZhciBJPSd0b1N0cmluZztOO2Ntbz10ZDtzcGxpY2U7MTk3MC0wMS0wMVQxMTo0NTo0MS4wMDArMTE6NDU7bGVuZ3RoO21hdGNoOy87Y2xvbmU7WDtjYWxsO3Rocm93O2Ntbztqb2luO2Fzc2lnbjsvdmlkZW9wbGF5YmFjaztodHRwOi8vbG9jYWw7SjtpbmRleE9mO3d3dy55b3V0dWJlLmNvbTtzcDs7cHVzaDtzbGljZTtHRztyZXZlcnNlO3NjaGVtZTtcXC5nb29nbGV2aWRlb1xcLmNvbSQ7cGF0aDt1cmw7L2luaXRwbGF5YmFjaztuO3BsYXllcmZhbGxiYWNrO2dldDtzZXQ7c3RhcnRzV2l0aDtzcGxpdDs9O2ZhbGxiYWNrX2NvdW50O1c7MTtWO3k3O3Vuc2hpZnQ7cnI7dW5kZWZpbmVkO3BvcDssO2luZGV4Lm0zdTg7Jjtmcm9tQ2hhckNvZGU7V3NsWmtDWm96bFlyNkVCME43LV93OF87cnI/WzEtOV0uKlxcLmNcXC55b3V0dWJlXFwuY29tJDsxOTcwLTAxLTAxVDAyOjMwOjMxLjAwMCswMjozMDslM0Q7RWw7XFwuYTFcXC5nb29nbGV2aWRlb1xcLmNvbSQ7bGV0O0VJO3M7Zm9yRWFjaDt5SXkxUGEyOzE5NjktMTItMzFUMTc6MDA6MzcuMDAwLTA3OjAwO2xvY2FsO2Zvcjt5b3V0dWJlLnBsYXllci53ZWJfMjAyNjA3MjFfMDhfUkMwMDsvZmlsZS9pbmRleC5tM3U4OywiIns7Oi8vO1VudHJ1c3RlZCBVUkw7ZnZpcDthMS5nb29nbGV2aWRlby5jb207V0Q7aHR0cHM6Ly9sb2NhbDttbjsvLztmaWxlO3NpZ25hdHVyZUNpcGhlcjsvYXBpL21hbmlmZXN0O2Ntbz1wZjtyO3JlcGxhY2U7cmVkaXJlY3Rvci5nb29nbGV2aWRlby5jb207LCx9L1wnO3hpJy5zcGxpdCgiOyIpLApXWixuMncsaGksazIsdjJDLGVVLE5pLHB0LEFpLGhNaSxFdyx1eCxkcix4aU0semIsbHgsTFMxLFZqLGVNcixENCxrMyx4MyxneixxVSxKRixTaixtYyxLYixPTSxxd3QsR2JpLFYyLERlLGFNLHRVaCx2NCxucCwkaXgsaEEscmliLHhsLGUxLFhNLHFoLEc1LHNULHBwLEkxaSxTd2gsSkEsUzEsQUEsbVcsS3AsUDQsWmUseUcsVDUsS1MxLFJQLE90aSxadFosbjAsVWl3LFcyLERYLGJwLGtLLGg0LHlpdCx4SyxMMCwkSyxzQSxOeCxwMCxZSyxTdSx1aGgsemgsbHAsbzIsVUEsek0yLEMwLE14LFFsLFZsLFIyLGMyLG41LFc5LHY5LGtVLGhfLEw1LFhELHEzLE4zLHA1LEg5LGY1LFlVLEkwLFNYLG0wLEs1LE9fLFpCLFVfLEVfLHU0LEM1LEI5LG8wLHo5LEZELGpDaCxDeE0sYTAsbkcsRlMyLFdILGJXLGh2LHh2LGVXLGdnLHdaQyxHeix0dixWVVMscmcsTkUsWXYscEcsbjMyLFNXLEp2LFdjcixiYlosT0ssbV8sUEgsWlIsVUsseWcsS0csaVcsRUssb3osdVcsQ0csZGcsbFcsRkYsTUUsUnosClFnLGNILEQyLGJhLHZXLGF6LFdXLG5uLGhTLHg5LGVFLGdlLHFILFhfLFZHLHRTLCQ5LHJlLHNWLGpXLE5ILGFQLHBuLFk5LEhXLEpTLElZLEFTLEtuLFBXLHkxLHVhLG9ZLGs0MixaMixpYSx6JCxsYSxDbixqRSxGXyx3ZSxNSCxRMSxhWSxEOSxiRyxrbSx4bSxMaCx4VWosWHQsWW0sSHksSjMsSXgsU0MsQTMsbTQsS2gsT3MseW0sRXMsaUcsUHksdUcsb3gsZEcsVFMsQ2gsd0csTWYsUngsakMsVm0sYXgsbjgsWE1pLGczVSxiNixrbixoOSxMOCxxTU0sZTYsWGYsc2YsTlkscDgsSjksSV8sSzgsdGpVLHU2LG9fLHNNMixkUSxOenIsenYsbDYsVHYsajYsQzgsQk8sd1EsUl8sY08sV3gsdngsa3ksaEsscWMsWFp4LEFLLG9oLHVrLE1jLHdtLGZULHBNeCxZTXgsbkssdkwsREQsSGJTLEpGWixMSyxJNFMsZWcsZ0QsQUZaLG1VdyxTTVMsS2NoLFBfaSxaYmgsVVViLHJGdCxQTywkVU0sRzcseUZaLGVYLFhULEUzdCxpYlUsJEUsckQsTjUsbzNiLEhMLGZLLEpILElXLEFILEtLLGRVcixTZywKeTcsRTIsWkQsekJ0LE8yLG1oLGRELGw0aixUenIsak1oLHE4LCRHLHBxLFlHLFNPLGdwLEJ6aSxKJCxISixmcSxLcSxDXzEsRXUsdWUsbzUsRmNiLGRwLHozLHdNUyxsZSxUMyxqTyxSQmIsQkosRjEsd3AsUU1VLFY4LFI1LG5WLFE4LGE1LFczLERvLFZqdCx2MyxubDEsV1dyLGJwTSxibixMVix2bHIsZyQsazVaLHRxLFg2LGhIUyx4aGIsTFcyLGVIaCxnbGgsc2wsSDMsRzVoLHJBYixzUDIsTlR0LHA0aSwkaGgsdDFVLEpxLG1JLElpLFlUVSxPbCxQMyxabyx5aSxFbCxmZWIsSkF3LElldyxtaHcsU1RyLG9pLGQkLGxuLHpILEtXVSxCMyxQZjIsam0sT3BpLE12LHckLHlBMSxFbGksaXByLHVNWixSaSxuVyx6SGksVFRyLHZZLGtxLHhxLFhtLHF0LHQxLE50LHNqLENmMSxGV1osdzRyLFlxLEoxLElzLEhZLGZXLFYxVSxBMSxTUyxtRyxLVyxPaixaYSxQWSxjQVUsYWVoLG5LaSx5TixFaixpcix1cixscixvcyx6TixiMHgsZGgsVE4sQ1csalMsV3hoLHZLYixCWSxGbSx3aCxNdCxScyxRTiwKVk4sY1ksYXMsbl8sV0ssaEN4LERpLGJILHZLLGt0LHh4aixMeGksZUNVLGdLdCxYZCxZWSxoYSx4dCxMXyxxdyxzMncsclgsTldoLFl0LEhLLElGLFNBLEFhLG1hLHlLLHAyaix1SCxZQTEsbEgsVEssSDBpLGpBLENfLEJLLEo0cix3WCxNdyxSRixRSyxWSyxJWDEsY0ssYUYsbmUsV1MsRFEsYkMsa2oseGosTGUsZXYsdGsscjcscyQsTjYscGUsWWosSFMsZmUsSmssSVMsU3YsVSQsRSQsaUMsdUMsQTR4LG9TLGQ3LGxDLFRCLGp2LHc3LE02LFJTLFF0LGFTLG53LFdWLG14aixLeFUsREUsTzBpLFBwMSx2VixYJCxxTixVeGoseTQyLCRmLE5OLHB3LGZ3LFlmLEpyLG15LGkwYixQVixPdCxaRSx5Rix1dyxkMixDdyxVdCxUVzIsYUUsY1YsVzAsRHIsdjAsa1QsYmIsaHkseFQsQ3BNLGc4LEJXaixYbixxWCx3MjIsdHksTXVDLFJDVSxRMmksajJaLGFYQyxuVXcsSUssQXksSyQsZ1osWnIsVXoseUgsRXosaWIsb0sselEsbGIsVFEsQyQsQjAsRm4sUkssVkgsYzAsbnksV0IsREksYk8sdkIsCmtSLEx5LGhPLGI1dCxnSixlXyxHMSx0TywkUixOMCx2VTEsc1AscHksazlpLEFPLG1ZLEt5LFVQLHl4LGlPLGhxaCxkSix6MSxUMSxqXyxCQix3SixSOSxNMCxhOSxiUSxrdSxMRixlRixnMCxYcSwkdSxlcTEsZ1VyLHBGLFl1LE5MLEhOLFg5VSxKYyxJZyxTRixBYyxPUixaeSxVUixLRix5YyxFUix1USx0WFUsJDN4LHMwcixkMCxyX2osRzl3LHpuLE5aaSxpUSxvZyxINXgsbFEsVG4sakYsQ0YsRnEsdzAsZkJVLEpfMixJQmksY04sYWcsV3osRG0sU19aLEFfcixtM3csSzByLGI5LHZ6LFA0TSxrTyxoNyx4TyxMUCxlOSxnMyxVM3QscUIsaTVoLHVEeCwkTyxyMyx0Nyx5X3Isc0osTkIscFAsWU8sR28sRVVTLEh6LGZQLEo3LEk3LEE3LG1ULEtQLE9KLFB6LFRaaixabSxvNyxkMyxsOSxqMHgsRjBNLEJaaCx6byxGMyxWZCxNWFMsdzMsY3osbm0sYTcsRDUsYk0sV1UsUnEyLFEwUyxWWDIsY19aLGtRLGFCUyxudjIsV19DLERFeCxiR0MsdnZpLGt6aSxoSSx4USx4RXcsTF9pLGd2dyxldywKTG0sJFEscUt3LHNjLHBtLFlRLHRXdywkRXQsZm0sT2MsUFUsWjUseUosRWMsU3csVWMsaU0scnZoLHN6Uyx1TSx6VCxqdyxUVCxCVSxsTSxDbSxNYixhSSxuWCxOZ3csY1UsVkosZ0UsZVosdHAsJG8sckUsWUtqLGZSMixTS0MsSnZaLHM5LElSMSxOaixISSxwWCxJYixBcCxLWCxaQSxQSSxPOSxVOSxpeSx1eSxkRSxLXzIsT0d4LFBXMSxRUixNaixjSSxDWCxuVSxxMSxiUix2cyxrQSxUcCxzeSxwVSxpR2osS1UsRXZDLGpaLG1yLER2LGc0LE4xLGFiLEY0LEJJLHdFLFZSLHI0LHVSLG92LEV5LFRVLGp5LENVLENXaSxCcyxGUix3NCxNMSxCZ3Isd0hDLE1XdyxRNCxjcyxuNCxhdixXYSxRejEsVld4LGhQLGtCLG45dyx4QixnSyxMNCxlaSxXTlUsREh0LGhUUyxLNCxPYSxnOWksdWcsaWcsWFdqLFRxLHFWWixqaSxHJGosenEsQzR3LG9VLGxnLGRLLFBhLEZqLHRFeCwkSHQsd0ssTWcsUTUsTmUyLGFVLG5CLGtWLGhtLHBXTSxMQixnYixYQSxxUSxHdyx0bSwkVixZVlMscmIsZUwsc0gsCnBCLEhiLGZCLFlWLElMLEhucixmMmosT0gsWk0sRUgseXYsaSQsSlNyLHp3LGRiLEkyWix1JCxTVjEsakwsQ0IsQVN4LG1IMSxLTnQsQmIsRkEsb0wsVHcsUGF4LGNiLFdQLFZ2LGtELHhELGVrLHlTaCxFOWIsaW53LGRIaix1X3QsR1cscGwsSFAsZmwsSmUselRqLElqLEFlLG1FLFNrLEtsLFRlYixPbyxQUCxqWTEsWlksRk54LEJlUyxDYVUsTUV3LFVvLFZFMixsMmoseXEsRW8sY1MyLHFyLHRlLER3LHZHLGtNLGhSLHhNLExSLGU1LGdkLFhhLHFELEc2LHRSLCRNLHJkLHN4LGEyMixwUixKUixJdyxtayxLUixPeCxQRyxadyxVeCx5QSxFeCxpaCx1aCxvdyxkZCxUNixqNSxDUixCRyx3ZCxNRCxRQSxjRyxuZixXZSxERyxiQixubWgsVzRVLERmUyxrJCxYOCx0RSxiaDEsJCQsc2UsTmEscGYsa1NqLHhmUyxIZSxMNFosZWFVLGdtMixKRSxJOCxxc1UsQUUsR1N3LCRmaSxLZixyM1osT2UsbUwsc3hyLHRDaCxTWSxQZSxaRyxweXQsWXNNLEhodyxVZSxJOTIseVcsRWUsdUIsU3NaLGROLApuYyxXUSx5M3IsYjAsRW14LHg1LExjLGV0LG9tTSx0aixYeSxkZjIsRzAsJDUsemFpLGw5aSxUR2gscWUsdXQyLHJhLHNoLEhRLEJHTSxGNGIsZmMsSmosUmFTLGE5cixxNCxubjEsdFgsck0scGksWXosZmksSWYsbVUsUzIsaGp0LEFYLHhZYixLaSxPMyxlancsWnEsZ25aLFAkLExEWixpWixYT2IscWZTLHQ2QyxyOVMsR3ZVLHNfMixOUWksajIsQiQsSDhyLFFyLEo5YixmOEMsTTQsVnIsUmYsYyQsSThqLEE5UyxTZmosRkcsbVl3LFA2Uyx3TSx1Zk0sb25yLGRZTSxpOFUsRW4yLHk5dCx6ajEsYWYscE9pLGw4dCxZZmksVFFNLGpfVSxuNyxGRGIsQzZVLFduLEJRdyx3T1osUmpVLFFfMSxNNlUsbnl3LFdCaixhODIsa0Z3LGhzdyxWNnIsYzlNLExCVSx4Y2Isa2QsZXNqLGhzLGd5MSxHRkMsWHh0LHRwYixxMGIsJGN4LHhkLEw3LGVJLHJLcixzaFosZ1AsTm10LFhOLHB4aSxZMFUscUcsR0UsSFRaLGZsaixKS2osSWxqLHRzLFMwdyxBS3IsbWNyLEtCTSxPVGIsUGtDLFpUVSxVY2kseUtDLApFeTIsaVR4LHVMMixveWgsZGN0LHpzMSxsbHIsVG1yLGpoTSxDa3gsQm1qLHd4WixNcEMsclAsc24scDcsWWQsUnN4LEhuLGY3LFFodyxKcyxWcEMsSU8sQXMsbTUsSzcsWlUsVW4seXcsaUosYWx4LG9PLHpFLFRFLGdYLEM3LGhBaSxCbixlQSxGTixlQVosTUcsUk8sVncsZ0V3LERjLHZBLGtKLFhMUyx4SixlSixnRixYcCxxZCxOZCxJRGgsUzJiLFlKLEhLaSwkNXIsSlQsc1diLElyLHJGLCRKLHRnaCxHN1UscTJDLHRULGZnLHNELEhBLFBBLFpjLFVELHlMLEVELGkzLHUzLG9yLGRGLHpfLFRfLGpKLENnLEJBLEZwLHdGLFFMLFd3LFZMLGNBLHZ3LGt4LGFyLEtoMixMcyxnQSxHaixQSUMsWktaLFl4LHBzLFU1WiwkeCxyQSxzWSxOayxIdyxmcyxKWSxJQixTUCxtdCxBWSx5SHIsS3MsUHcsRUVaLE9ZLFpfLGlLVSxVWSx5ZixvRWksemosbEwsalAsVGosQncsRjUsd0EsTWssUWYsY3csbnosV18sREosZDV3LGJULHZfLGtOLHpBMixoSix4TixMeixleCxnayxYeCxsRHgsVEQxLEdQLHRKLAokTixPdixQXyxaSixVdix5cyxkayx6UCx3TFUsbFQsVFAsangsQ3osTWdNLFJBUyxRV00sVmdpLGNIaixhRFUsRngsTUksbkdTLERPLHZSLGhNLHhYLExNLGVHLFhaLHEkLEdpLHRNLCRYLHJ5LHNOLE4kLFlYLGZNLEpNLElkLFNHLFFQLE9OLG1GLEtnLE0zLFpPLFVOLHZHVSx5VCxrM3IsaTgsdTgsZHksaGdTLHppLGw4LFRpLGpHLHJrLENNLEJSLHg4aixGWixNJCxSZCxRVCxWVCxjUixhZCxuNixXRix2RixMS1UsTDYsZWcxLGU0LFhKaSxxeixxdWosRzNDLHRPWix0WixzNVUsTnBqLHBKYixJbyxZdWgsSHFoLGZ0WixHXyxmRHcsJGcsUzQsSzYsT2ssUEYsSiRVLEl0aSxaSCx5QyxBWixFayxBJGksaUEsdUEsb28sbTh0LHp4LFR4LGo0LEM2LEJGLEtLdCxGdixwNixWQyxPcXgsVThaLERLLHJIaSxKSHIsdlgsaHoseGgsTE4sZVQsZzEsRUdDLCRoLG9HdyxkOGksaXF0LHR6LHUxcixsdGIsTlYsemcyLHBOLFRwYixIWCxORFMsWTJTLE9ELFNKLENlVSxmTixKeix3SngsajVpLFNULG1WLApLTixBeixPZCxQWCxSZ1UsRWQsVk9yLGF0dCxpbyxuWUMsb24sekwsWHYsVEwsalQsQlgsRlYsUU0sY1gsbG8sYzksV0UsYmksdkUsaHUsTEUsdHUsWnFTLHZZaixmRSxKdSxTTSxBdSxWUCxLRSxMSUMsZUVpLE9tLFBFLGdZWix0bU0sWmYsWDNTLEdIdCxxbGgscnFaLHNpcixpaSx1aSxvQSxUbCxDRSx3YyxGQyxNRixSQSxZbHcsUW4sSFZ4LGZvaSxKcVosQXExLG12aixhQSxuTCxQbjEsWlZpLHlxMSxFWTEsaVYyLHU2UyxvWU0sekViLGxvaixrTCx4TCxMTCxlJCxnNix0eCxCJHgsdzNpLEdmLFJFaSwkTCxyNixRaTIsVm10LHNVLFZuLFdqLEhqLGZMLG1mLEVVLGlqLHVqLGQ2LHpmLG9RLGdxWixsaixYWWgscWpoLEdOaCxDTCxCaixGZSxKeCx3NixQMCxNcyxBSixSUSxReixOSSxWeixVdE0sY2oseTFoLEk0LGFRLG5BLGJGLFRmLGokLFN4LGhELEVxaCx4cCxLeixpV1MsdW10LG9xMSx6a1UsTEEsZTcsZ2wsWDIsZHQxLEdlLHRELCRwLHJsLEF4LE51LFlwLElULEFELGlULHB6LEtBLApPUyxQVCxUaGksY3F4LHBMLFpQLFVTLHlVLEVTLGlGLHVGLGxGLHplLGo3LGRsLE1TTSxDQSxCVCxGMix3bCxNdSxhVCxjVCxRc1MsbjIsVzcsVlNoLGtGLGhmLGMxQyx4RixMMixlQixiX0MsZ3YsWHoscXAsdGYsdnRDLGh4dyxmMixKZixJeSx4dzIsU0IsQWYsbVAsWiQsVUYseUUsRUYsaTUsenUsVHUsakIsQzIsQjcsTGF4LEZ6LHd2LE1wLFJ5LFFFLFZFLGM3LGF5LG52LGJZLFd1LERiLEdLdCxxSXcsdEFDLCR3aixyYVUsc0ZNLHZ1LGtzLE5YaCxlbixnVixZSTEsSF9VLHFXLFhyLHRCLGZpeCxyVixzYixOVyxwdixmdixZcyxKQixJNixKYWksSHUsWmIsVWIsRWIsbzYsU0laLHVZLEFhMixURCxsWSxtd3Isam4sQ3YsRnIsd1YsTVcsUWssVmssY3UsQ25pLEZJMSxhNixXcCxEeCxidSx2cCxrWixoVSx4WixMMyxlVixnQyxVd2IseWFqLGlfYixYdSx6eFMsakZNLFNWLENIaCxGYU0sd0tqLE1BTSxSeGosUUZ3LFZBUyxjYXQsYWlNLG5qMSxtZSxXJGosRDZ4LEszLE9HLGJlcixQcCwKdmp3LGg3Mix4NncsVUcsWngsTCQyLHlCLGl1LGU3YixnajEsWFNoLG9xLEdCYixya2osekkscSQyLCQ2aCxsdSxqVixzU3csTjdTLHBTUyxGdSxIZVUsd0MsUnEsSVExLFMkaCxtNncsSyRqLFZCLGNwLFBDMixhcSxaZXcsTXEsVTZDLGZRaCxPZWksQWtNLFc2LHlrcixFalosaWVpLHU5VSxvancsRGQsVDdiLGQ2cix6N1UsalNaLGJTLENDTSxsUWgsdjYseEMsTHIsZXEsa0MsQjdiLHdTVSxndSxGJHgsTXZTLFI3VSxWdnQsY2tqLFgwLGFRUyxuZngsRE4xLGJ3QyxxMixHWix0MCwkQyxRRXcsVkh4LGNyaCxEWDIsdmZ0LGtkVSxuVHcsV2paLGFFdyx2VFosSDYsSjQsZnIseWssbWksS3YsUHUsaVksS3IsSSQsaFpyLE80LHhYQyxMalUsUDYsQTAsbWQsWmQsZ1RDLFU0LEowLGc3LHlvLEU0LGlTLFNxLGtRdyxlWnQsdVMsWDB0LHF6aCxHUWIsdGRqLCRYMSxyeUMsTjhaLGR1LEprQyx6WixsUyxSNixLYTIscDBiLGpxLFZvLElyYixZemksZnJDLENyLEYwLG1YYixLamksTyRpLFokaSxQYlUsClVYWixhJCx5eXgsbkQsV2wsaSRTLEVUaixvVGosRGssdW5VLHZsLHpaaixscjIsVDhoLENidCxCOGksdzBiLGhnLGt3LEZqaixSWmgsTEQsVmR0LGVSLFFLeCx4dyxnaixYQixXWWgsblJ0LCR3LHFQLFl3LHZSdyxlU2osaFMxLExZMix4MEMsZkQsWEJ3LHFQaSxHMVMsdF9oLCQwYixyT2gsczlDLE5KaSxJayxwQngsWVBNLEh5VSxKT3csZkl0LElJYixKZyxBT00sU1IsY3laLFBsLFp5UyxpeWksdWtoLG9SdCxQT3QsRXEsdTEseXUsZDBiLFVxLGxJYixvayxaayxVMFosaTEseU9aLG0wTSxtdixqOUMsT3laLENPaixCSnQsVEpiLEZZQyx3QngsemMsTV93LFE5YixWXzIsUlNDLGNPdyxhSVosV1hoLERMYixrbnIsYkZqLHZ1TSxUYyxoUXgseEx0LExYcixndUMsalIsQ0QsWE5pLEJsLHFScixHbncsdEZ4LCRMQyxyYzIsc2d3LE4wUyxwTnQsWVJ3LEhGWixmeVUsSmNiLEl5dyxTUnQsQWNaLG1MMixLWFosT0ZDLFBRcixaRnQsVUwyLHljMixFdXQsaUZVLHVxdCxvdTIsZExpLHpRUyxseTIsClQwVSxqZ2gsQ1FDLEIwaixGWDIsTUZ4LFJRVSxWRlMsTVAsUXUsVnUsY2wsbk9NLG5DLFdUaCxEQmksYlBTLGFrLHZPMixheVosYm0saEQxLHhCaCxMVGIsdnIsa29yLE9iLGRWLFlDLFN6TSxjNixIJGgsUW8sQjYsd3UsUiQsZGoselMyLEVSUyxYemgscUoyLHQ5aCxrYywkQmkscjdoLGgyLGVEYixYYixIUGIsZm14LEo3aSxJbWkscW0sZ09DLEE3eCxzN3IsTjNDLHhjLExDLHB6aCxaUGosS1RpLE9QMixyUyxOMiwkYyxTSloseTdpLEVPaCxpUFMsbUJiLHUzeCxvT3gsZEJoLFQzaCxqN2osQzl4LHBDLEIzeCx3enIsRlR0LFJEaixRNzIsYzdyLFdnMixoOE0seGJqLEhyLG5RdyxKMixmQyxMZ3csZTh3LGJtaCxWOWksTTliLGdRdyxYVVMscWNVLEdUUyx0d00sckkxLFMwLCRiWixOb0Msc0lNLFljMSxwVWosbW4sQTIsSG1TLGY1eCxKSWIsSTUyLEtDLEFJTSxtYk0sS2d4LE9YLE9tMixQTWosUHIsWm1oLHlJcixpbXIsWlYsVVgseTMsaW0sdW0sRVgsRVFNLHVpaixvUTIsZGJTLHo4MiwKbDVVLGJBLG91LFRvaSxqSWosQ014LEJvdCxkUyxGZ2IselgsTXdoLGwxLFRYLGowLENDLEJyLEZiLHdTLFFJUyxWd00sY0lqLGE1cixSdSxXM1osRGoyLGJYdCxrcGksaHlpLGJKLHZ5TSx4amosTDN4LGV5aixYSVosYXUsV2QscTkxLG51LEQ3LGJWLHRaTSwkalosdmQscnB0LGNjWixNbSxWMyxoQyxIWDIsZkF0LEpwVSxJQWgsUzliLEFwaixtanQsSzNVLE9YMixlaCxncyxYSixQeUMscTksUjhDLFVqdyx0QyxHWSwkMCxFb2ksaVhTLHJzLHNCLHlwYixwdSx1NGIsWTAsb294LGZ1LFRFMixqYjIsSkMsRjNiLFNoLG1vLGRqcixNWjEsSGQsUnlpLFFidyxsQXQsVlppLHp5MSxhQXcsbkF4LGNwdCxQZCxaNyxMcjEsdkFqLHlhLGVwWixrVWksRDF0LGdBaSxXcmgsR1UxLFhzaSxVQix0eTIsYlVVLHI2dyx4MVUscHNyLEVCLEhVaSxmdmksWXlpLEl2aCxTeXIsU1BNLEdYLG9jLFA5VSxtMVUsSWMsbFYselksamgsQmQsRkosS3JiLHdzLFUxaSx5NlosRUFDLE05LFBSYixSYyxpVXQsQ3UsCmNkLG9BdCxRYSxWYSx1VixUWSx3c2ksTXl4LE9VaCxkcyxScFUsYnYsQTZqLGQxMixhdlosbkJDLFcxaSxiNHQsRGdDLHZCMixCNFUsUXZpLGhMWixMMWIseGdaLGVMaCxnQnIsWGFTLGtQLGg1LHFhVSxHcU0senBpLHRpUywkZ0MsTGEsclBoLHNVUyxlbCx4UCxwYU0sZzksWFksSDR0LGZwaSxKUE0sSXBDLFNhTSxZYVUsQVAyLG1naCxPNEMscVQsSzFVLEdHLFBneCxaNHgseVBqLEVCQyxVZzIsb0JyLGRndyxpNFUsdWp4LHpMWixscDIsalVVLFRLdyxSTHQsUVVaLENndCxCS0MsRjF3LHdhUyxNaWksVmliLHI5LHNyLCRQLE5ULGFweCxuVnIsV3F4LEpKLHBhLGJCeCx2VjIsa3d3LFlQLGZhLEg4LHhRdyxoYmosZ1ZoLEo1LFIwLFhiaCxJRyxxSDEsR3dVLHRMeCwkUXgscm1NLHNMYixOYmIsSEJ3LFlIaSxBNSxtQSxKbXgsS2EsU2wsZk0xLE9yLEtxcixQJEMsWkJqLFVRaSx5bWksRVZiLGlCUyxaVCxpdix1QXQsdXYsemJyLG9WMixEJCxURyxqbCxDYSxHdSxCOCxGWSxqTGosQyR3LAp3OSxSRyxRWSxGcU0sTVQsQmJoLFJieCxjbWIsVlksYU1VLG5EaixhRyxEclosVkxNLFdjLGJsWixuTyx2RDEsa1cxLGJzLHZjLHhydCxrSSxlMEMsZ0R4LExFcixYUGkscW8yLGhoLEdXYix0azEsTE8sZXMsZ2YsJHJNLHJlUyxzalMsTl9oLFlvQyx0aCxIbEMsJEksQWV0LHJmLG1yaixLRWgsUGRaLE9sTSxOSyxwTyxabGksRURqLEhjLFlJLHU3dCxkck0samp4LENkaixKaCxJZSxCX0Msc0YsZk8sRkVaLFNzLHdQMSxNa00sbVIsY2ViLHlSMSxHRCwkcyxlMCx6RCx5UyxCdSxFZyxpcyxUWixVZyxpUlosdXMsdWFVLG9NaCxkRGIselVoLHR2aSxNMixqd2osRncsQ2gxLE1LLGlwLGpzLEZraixjYyxDTyxuSixjUmIsVjVoLGx3WixXZixkZixUZGosbHMsbiRNLFdMcixEYXIsTTVpLHYkaCxodnIsZXZ0LGckUyxrcix2ZixYZWosYmwsREwseHIsTEwyLHFlaSwkYXIsdVJyLHJFUyxzOHIsWWVpLFhTLHBlVSx0YixOTncscTcsZkdTLEpFYixJR3csU2UxLEFFaSxyNSxaZncsc1osT2Z0LHlFMiwKRSRNLGlmQyxLTFosdThiLFlyLG8kVSx2NyxmSixKYixBYixQZixWUyx6djIsVVosbEd3LGo4MixDQlMseVosaWwsVWFoLHdlVSxNWU0sUnZaLFE4eCxWWXgsYUcxLFcydyxEZWIsb1gsY0VyLFZaLGswaix6QSxFWixoZDEsbngsTDJNLHhlcixXcSxERixiVSx2cSxlZFMsYVgsT1osQ0osbGwsVEEsQmYsbjVqLEZTLEtKLHVsLGRhdCxYUXgsRzBqLFNhLFFaLHR0dywkZVUseGkscmpqLHNhaSxoVixOYWIsa2ksZW8sWWhpLEhjdCxmNmg7V1o9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG50W25dLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OwpnLkQxPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG50W25dPVd9OwpuMnc9ZnVuY3Rpb24obixXKXtpZihXKWZvcih2YXIgRD0wO0Q8dloubGVuZ3RoO0QrKylrMih2WltEXSsiQXJyYXkucHJvdG90eXBlLiIrbixXKX07CmhpPWZ1bmN0aW9uKG4sVyl7VyYmazIobixXKX07CmsyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9eDI7bj1uLnNwbGl0KCIuIik7Zm9yKHZhciBiPTA7YjxuLmxlbmd0aC0xO2IrKyl7dmFyIHY9bltiXTtpZighKHYgaW4gRCkpcmV0dXJuO0Q9RFt2XX1uPW5bbi5sZW5ndGgtMV07Yj1EW25dO1c9VyhiKTtXIT1iJiZXIT1udWxsJiZXU0MoRCxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6V30pfTsKdjJDPWZ1bmN0aW9uKG4sVyl7bi5wcm90b3R5cGU9RGl4KFcucHJvdG90eXBlKTtuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO2J0UyhuLFcpO24uVEI9Vy5wcm90b3R5cGV9OwplVT1mdW5jdGlvbihuKXtuPU1hdGgudHJ1bmMobil8fDA7bjwwJiYobis9dGhpcy5sZW5ndGgpO2lmKCEobjwwfHxuPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXNbbl19OwpnLkdiPWZ1bmN0aW9uKG4sVyxEKXtuPW4uc3BsaXQoIi4iKTtEPUR8fGcucWk7Zm9yKHZhciBiO24ubGVuZ3RoJiYoYj1uLnNoaWZ0KCkpOyluLmxlbmd0aHx8Vz09PXZvaWQgMD9EW2JdJiZEW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXT9EPURbYl06RD1EW2JdPXt9OkRbYl09V307Ck5pPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigiQ0xPU1VSRV9GTEFHUyIpO249RCYmRFtuXTtyZXR1cm4gbiE9bnVsbD9uOld9OwpnLnJyPWZ1bmN0aW9uKG4sVyl7bj1uLnNwbGl0KCIuIik7Vz1XfHxnLnFpO2Zvcih2YXIgRD0wO0Q8bi5sZW5ndGg7RCsrKWlmKFc9V1tuW0RdXSxXPT1udWxsKXJldHVybiBudWxsO3JldHVybiBXfTsKcHQ9ZnVuY3Rpb24obil7dmFyIFc9dHlwZW9mIG47cmV0dXJuIFchPSJvYmplY3QiP1c6bj9BcnJheS5pc0FycmF5KG4pPyJhcnJheSI6VzoibnVsbCJ9OwpnLlkyPWZ1bmN0aW9uKG4pe3ZhciBXPXB0KG4pO3JldHVybiBXPT0iYXJyYXkifHxXPT0ib2JqZWN0IiYmdHlwZW9mIG4ubGVuZ3RoPT0ibnVtYmVyIn07CmcuZnQ9ZnVuY3Rpb24obil7dmFyIFc9dHlwZW9mIG47cmV0dXJuIFc9PSJvYmplY3QiJiZuIT1udWxsfHxXPT0iZnVuY3Rpb24ifTsKQWk9ZnVuY3Rpb24obil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLFNVKSYmbltTVV18fChuW1NVXT0rK2tidCl9OwpoTWk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLmNhbGwuYXBwbHkobi5iaW5kLGFyZ3VtZW50cyl9OwpnLkt0PWZ1bmN0aW9uKG4sVyxEKXtnLkt0PWhNaTtyZXR1cm4gZy5LdC5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpnLlBaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPUQuc2xpY2UoKTtiLnB1c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBuLmFwcGx5KHRoaXMsYil9fTsKZy5Vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTsKZy55aj1mdW5jdGlvbihuKXtnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXJSdW4iLG4pfTsKRXc9ZnVuY3Rpb24obil7cmV0dXJuIG59OwpnLml4PWZ1bmN0aW9uKG4sVyl7ZnVuY3Rpb24gRCgpe30KRC5wcm90b3R5cGU9Vy5wcm90b3R5cGU7bi5UQj1XLnByb3RvdHlwZTtuLnByb3RvdHlwZT1uZXcgRDtuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO24uQU89ZnVuY3Rpb24oYix2LGspe2Zvcih2YXIgaD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLHg9Mjt4PGFyZ3VtZW50cy5sZW5ndGg7eCsrKWhbeC0yXT1hcmd1bWVudHNbeF07cmV0dXJuIFcucHJvdG90eXBlW3ZdLmFwcGx5KGIsaCl9fTsKdXg9ZnVuY3Rpb24obiwuLi5XKXtXPVcuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiYiKTtpZighVylyZXR1cm4gbjt2YXIgRD1uLm1hdGNoKC9bPyZdYWR1cmw9Lyk7cmV0dXJuIEQ/bi5zbGljZSgwLEQuaW5kZXgrMSkrVysiJiIrbi5zbGljZShELmluZGV4KzEpOm4rKG4uaW5kZXhPZigiPyIpPDA/Ij8iOiImIikrV307CmRyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc/IiYiK24rIj0iK2VuY29kZVVSSUNvbXBvbmVudChXKToiIn07CnhpTT1mdW5jdGlvbihuKXtuPW4uWDtpZighbilyZXR1cm4iIjt2YXIgVz1kcigidWFwIixuLnBsYXRmb3JtKStkcigidWFwdiIsbi5wbGF0Zm9ybVZlcnNpb24pK2RyKCJ1YWZ2IixuLnVhRnVsbFZlcnNpb24pK2RyKCJ1YWEiLG4uYXJjaGl0ZWN0dXJlKStkcigidWFtIixuLm1vZGVsKStkcigidWFiIixuLmJpdG5lc3MpO24uZnVsbFZlcnNpb25MaXN0JiYoVys9IiZ1YWZ2bD0iK2VuY29kZVVSSUNvbXBvbmVudChuLmZ1bGxWZXJzaW9uTGlzdC5tYXAoRD0+ZW5jb2RlVVJJQ29tcG9uZW50KEQuYnJhbmQpKyI7IitlbmNvZGVVUklDb21wb25lbnQoRC52ZXJzaW9uKSkuam9pbigifCIpKSk7Cm4ud293NjQhPW51bGwmJihXKz0iJnVhdz0iK051bWJlcihuLndvdzY0KSk7cmV0dXJuIFcuc2xpY2UoMSl9Owp6Yj1mdW5jdGlvbihuLFcpe2lmKFchPT1udWxsJiZXIT09dm9pZCAwKXtpZih0eXBlb2YgVyE9PSJvYmplY3QiJiZ0eXBlb2YgVyE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO2lmKEQ9PT12b2lkIDApe2lmKCFTeW1ib2wuZGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTt2YXIgRD1XW1N5bWJvbC5kaXNwb3NlXX1pZih0eXBlb2YgRCE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO24uc3RhY2sucHVzaCh7dmFsdWU6VyxkaXNwb3NlOkQsYXN5bmM6ITF9KX1yZXR1cm4gV307Cmx4PWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoayl7bi5lcnJvcj1uLmhhc0Vycm9yP25ldyBTdXBwcmVzc2VkRXJyb3IoayxuLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6aztuLmhhc0Vycm9yPSEwfQpmdW5jdGlvbiBEKCl7Zm9yKDtiPW4uc3RhY2sucG9wKCk7KXRyeXtpZighYi5hc3luYyYmdj09PTEpcmV0dXJuIHY9MCxuLnN0YWNrLnB1c2goYiksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihEKTtpZihiLmRpc3Bvc2Upe3ZhciBrPWIuZGlzcG9zZS5jYWxsKGIudmFsdWUpO2lmKGIuYXN5bmMpcmV0dXJuIHZ8PTIsUHJvbWlzZS5yZXNvbHZlKGspLnRoZW4oRCxmdW5jdGlvbihoKXtXKGgpO3JldHVybiBEKCl9KX1lbHNlIHZ8PTF9Y2F0Y2goaCl7VyhoKX1pZih2PT09MSlyZXR1cm4gbi5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChuLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTsKaWYobi5oYXNFcnJvcil0aHJvdyBuLmVycm9yO30KdmFyIGIsdj0wO0QoKX07CmcuVGI9ZnVuY3Rpb24obixXKXtpZihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSlFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGcuVGIpO2Vsc2V7bGV0IEQ9RXJyb3IoKS5zdGFjaztEJiYodGhpcy5zdGFjaz1EKX1uJiYodGhpcy5tZXNzYWdlPVN0cmluZyhuKSk7VyE9PXZvaWQgMCYmKHRoaXMuY2F1c2U9Vyl9OwpMUzE9ZnVuY3Rpb24oKXt9OwpnLmpVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ubGFzdEluZGV4T2YoVywwKT09MH07CmcuQlo9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmxlbmd0aC1XLmxlbmd0aDtyZXR1cm4gRD49MCYmbi5pbmRleE9mKFcsRCk9PUR9OwpnLkZoPWZ1bmN0aW9uKG4pe3JldHVybi9eW1xzXHhhMF0qJC8udGVzdChuKX07Cmcud3I9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoVy50b0xvd2VyQ2FzZSgpKSE9LTF9OwpnLmNaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtuPVN0cmluZyhuKS50cmltKCkuc3BsaXQoIi4iKTtXPVN0cmluZyhXKS50cmltKCkuc3BsaXQoIi4iKTt2YXIgYj1NYXRoLm1heChuLmxlbmd0aCxXLmxlbmd0aCk7Zm9yKGxldCBoPTA7RD09MCYmaDxiO2grKyl7dmFyIHY9bltoXXx8IiIsaz1XW2hdfHwiIjtkb3t2PS8oXGQqKShcRCopKC4qKS8uZXhlYyh2KXx8WyIiLCIiLCIiLCIiXTtrPS8oXGQqKShcRCopKC4qKS8uZXhlYyhrKXx8WyIiLCIiLCIiLCIiXTtpZih2WzBdLmxlbmd0aD09MCYma1swXS5sZW5ndGg9PTApYnJlYWs7RD1Waih2WzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KHZbMV0sMTApLGtbMV0ubGVuZ3RoPT0wPzA6cGFyc2VJbnQoa1sxXSwxMCkpfHxWaih2WzJdLmxlbmd0aD09MCxrWzJdLmxlbmd0aD09MCl8fFZqKHZbMl0sa1syXSk7dj12WzNdO2s9a1szXX13aGlsZShEPT0wKX1yZXR1cm4gRH07ClZqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG48Vz8tMTpuPlc/MTowfTsKZU1yPWZ1bmN0aW9uKCl7dmFyIG49bnVsbDtpZighbmIpcmV0dXJuIG47dHJ5e2xldCBXPUQ9PkQ7Cm49bmIuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOlcsY3JlYXRlU2NyaXB0OlcsY3JlYXRlU2NyaXB0VVJMOld9KX1jYXRjaChXKXt9cmV0dXJuIG59OwpEND1mdW5jdGlvbigpe1dNPT09dm9pZCAwJiYoV009ZU1yKCkpO3JldHVybiBXTX07CmszPWZ1bmN0aW9uKG4pe3ZhciBXPUQ0KCk7bj1XP1cuY3JlYXRlU2NyaXB0VVJMKG4pOm47cmV0dXJuIG5ldyBiXyhuKX07CngzPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBiXylyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9Owpnej1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgZy5lailyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9OwpxVT1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFhJKFc9Plcuc3Vic3RyKDAsbi5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PW4rIjoiKX07CmcudEY9ZnVuY3Rpb24obixXPWcuRzQpe2lmKG4gaW5zdGFuY2VvZiBnLmVqKXJldHVybiBuO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7KytEKXtsZXQgYj1XW0RdO2lmKGIgaW5zdGFuY2VvZiBYSSYmYi5PVihuKSlyZXR1cm4gbmV3IGcuZWoobil9fTsKZy5yej1mdW5jdGlvbihuKXtpZihnMmoudGVzdChuKSlyZXR1cm4gbn07Cmcuc009ZnVuY3Rpb24obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBnLmVqP2d6KG4pOmcucnoobil9OwpnLk5VPWZ1bmN0aW9uKG4sVyl7Vz1nLnNNKFcpO1chPT12b2lkIDAmJihuLmhyZWY9Vyl9OwpnLnBiPWZ1bmN0aW9uKG4sVz1gdW5leHBlY3RlZCB2YWx1ZSAke259IWApe3Rocm93IEVycm9yKFcpO307CmcuSE09ZnVuY3Rpb24obil7dmFyIFc9RDQoKTtuPVc/Vy5jcmVhdGVIVE1MKG4pOm47cmV0dXJuIG5ldyBnLlkzKG4pfTsKZy5mYj1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgZy5ZMylyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9OwpKRj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9d2luZG93O249Zy5zTShuKTtyZXR1cm4gbiE9PXZvaWQgMD9iLm9wZW4obixXLEQpOm51bGx9OwpTaj1mdW5jdGlvbihuPWRvY3VtZW50KXtuPW4ucXVlcnlTZWxlY3Rvcj8uKCJzY3JpcHRbbm9uY2VdIik7cmV0dXJuIG49PW51bGw/IiI6bi5ub25jZXx8bi5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIifTsKbWM9ZnVuY3Rpb24obil7dmFyIFc9RDQoKTtuPVc/Vy5jcmVhdGVTY3JpcHQobik6bjtyZXR1cm4gbmV3IEFGKG4pfTsKS2I9ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIEFGKXJldHVybiBuLk47dGhyb3cgRXJyb3IoIiIpO307Ck9NPWZ1bmN0aW9uKG4pe3ZhciBXPVNqKG4ub3duZXJEb2N1bWVudCk7VyYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixXKX07CmcuUE09ZnVuY3Rpb24obixXKXtuLnNyYz14MyhXKTtPTShuKX07CnF3dD1mdW5jdGlvbihuKXt2YXIgVz0idHJ1ZSIudG9TdHJpbmcoKSxEPVtYWnhgZGF0YS1gXTtpZihELmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO2lmKEQubWFwKGI9PntpZihiIGluc3RhbmNlb2YgWjQpYj1iLk47ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGJ9KS5ldmVyeShiPT4iZGF0YS1sb2FkZWQiLmluZGV4T2YoYikhPT0wKSl0aHJvdyBFcnJvcignQXR0cmlidXRlICJkYXRhLWxvYWRlZCIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpOwpuLnNldEF0dHJpYnV0ZSgiZGF0YS1sb2FkZWQiLFcpfTsKZy5VTT1mdW5jdGlvbihuKXtyZXR1cm4gbltuLmxlbmd0aC0xXX07CmcueTI9ZnVuY3Rpb24obixXKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sVyx2b2lkIDApfTsKZy5FTT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChuLFcsRCl9OwpnLmlfPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChuLFcsdm9pZCAwKX07CmcudV89ZnVuY3Rpb24obixXLEQpe3JldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwobixXLEQpfTsKZy5vTT1mdW5jdGlvbihuLFcpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKG4sVyx2b2lkIDApfTsKZy5kej1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG4sVyxEKX07CmcubF89ZnVuY3Rpb24obixXKXtXPWcuejQobixXKTtyZXR1cm4gVzwwP251bGw6dHlwZW9mIG49PT0ic3RyaW5nIj9uLmNoYXJBdChXKTpuW1ddfTsKZy56ND1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi5sZW5ndGgsdj10eXBlb2Ygbj09PSJzdHJpbmciP24uc3BsaXQoIiIpOm47Zm9yKGxldCBrPTA7azxiO2srKylpZihrIGluIHYmJlcuY2FsbChELHZba10sayxuKSlyZXR1cm4gaztyZXR1cm4tMX07CmcuVDQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ubGVuZ3RoLHY9dHlwZW9mIG49PT0ic3RyaW5nIj9uLnNwbGl0KCIiKTpuO2ZvcigtLWI7Yj49MDtiLS0paWYoYiBpbiB2JiZXLmNhbGwoRCx2W2JdLGIsbikpcmV0dXJuIGI7cmV0dXJuLTF9OwpnLmpqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobixXLHZvaWQgMCk+PTB9OwpnLkNiPWZ1bmN0aW9uKG4pe2lmKCFBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgVz1uLmxlbmd0aC0xO1c+PTA7Vy0tKWRlbGV0ZSBuW1ddO24ubGVuZ3RoPTB9OwpnLkZJPWZ1bmN0aW9uKG4sVyl7Vz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG4sVyx2b2lkIDApO3ZhciBEOyhEPVc+PTApJiZnLkJNKG4sVyk7cmV0dXJuIER9OwpnLkJNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChuLFcsMSkubGVuZ3RoPT0xfTsKR2JpPWZ1bmN0aW9uKG4sVyl7Vz1nLno0KG4sVyk7Vz49MCYmZy5CTShuLFcpfTsKZy53ej1mdW5jdGlvbihuKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxhcmd1bWVudHMpfTsKZy5STT1mdW5jdGlvbihuKXt2YXIgVz1uLmxlbmd0aDtpZihXPjApe2xldCBEPUFycmF5KFcpO2ZvcihsZXQgYj0wO2I8VztiKyspRFtiXT1uW2JdO3JldHVybiBEfXJldHVybltdfTsKZy5RMj1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspe2xldCBiPWFyZ3VtZW50c1tEXTtpZihnLlkyKGIpKXtsZXQgdj1uLmxlbmd0aHx8MCxrPWIubGVuZ3RofHwwO24ubGVuZ3RoPXYraztmb3IobGV0IGg9MDtoPGs7aCsrKW5bditoXT1iW2hdfWVsc2Ugbi5wdXNoKGIpfX07CmcuY009ZnVuY3Rpb24obixXLEQsYil7QXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShuLFYyKGFyZ3VtZW50cywxKSl9OwpWMj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobixXKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLFcsRCl9OwpnLlc0PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gYU0obixEfHxucCwhMSxXKX07CkRlPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGFNKG4sVywhMCl9OwphTT1mdW5jdGlvbihuLFcsRCxiKXtmb3IodmFyIHY9MCxrPW4ubGVuZ3RoLGg7djxrOyl7bGV0IHg9disoay12Pj4+MSksTDtEP0w9Vy5jYWxsKHZvaWQgMCxuW3hdLHgsbik6TD1XKGIsblt4XSk7TD4wP3Y9eCsxOihrPXgsaD0hTCl9cmV0dXJuIGg/djotdi0xfTsKZy5iZj1mdW5jdGlvbihuLFcpe24uc29ydChXfHxucCl9Owp0VWg9ZnVuY3Rpb24obixXKXt2YXIgRD1ucDtnLmJmKG4sZnVuY3Rpb24oYix2KXtyZXR1cm4gRChXKGIpLFcodikpfSl9Owp2ND1mdW5jdGlvbihuLFcsRCl7aWYoIWcuWTIobil8fCFnLlkyKFcpfHxuLmxlbmd0aCE9Vy5sZW5ndGgpcmV0dXJuITE7dmFyIGI9bi5sZW5ndGg7RD1EfHwkaXg7Zm9yKGxldCB2PTA7djxiO3YrKylpZighRChuW3ZdLFdbdl0pKXJldHVybiExO3JldHVybiEwfTsKbnA9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj5XPzE6bjxXPy0xOjB9OwokaXg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09PVd9OwpnLmtsPWZ1bmN0aW9uKG4sVyxEKXtEPWcuVzQobixXLEQpO0Q8MCYmZy5jTShuLC0oRCsxKSwwLFcpfTsKaEE9ZnVuY3Rpb24obixXKXtuLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mnx8KG4uX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyPXt9KTtuLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mi5zZXZlcml0eT1XfTsKcmliPWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoIndpbmRvdy5sb2NhdGlvbi5ocmVmIik7bj09bnVsbCYmKG49J1Vua25vd24gRXJyb3Igb2YgdHlwZSAibnVsbC91bmRlZmluZWQiJyk7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm57bWVzc2FnZTpuLG5hbWU6IlVua25vd24gZXJyb3IiLGxpbmVOdW1iZXI6Ik5vdCBhdmFpbGFibGUiLGZpbGVOYW1lOlcsc3RhY2s6Ik5vdCBhdmFpbGFibGUifTt2YXIgRD0hMTt0cnl7dmFyIGI9bi5saW5lTnVtYmVyfHxuLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChrKXtiPSJOb3QgYXZhaWxhYmxlIixEPSEwfXRyeXt2YXIgdj1uLmZpbGVOYW1lfHxuLmZpbGVuYW1lfHxuLnNvdXJjZVVSTHx8Zy5xaS4kZ29vZ0RlYnVnRm5hbWV8fFd9Y2F0Y2goayl7dj0iTm90IGF2YWlsYWJsZSIsRD0hMH1XPXhsKG4pO2lmKCEoIUQmJm4ubGluZU51bWJlciYmbi5maWxlTmFtZSYmbi5zdGFjayYmbi5tZXNzYWdlJiZuLm5hbWUpKXtEPW4ubWVzc2FnZTsKaWYoRD09bnVsbCl7aWYobi5jb25zdHJ1Y3RvciYmbi5jb25zdHJ1Y3RvciBpbnN0YW5jZW9mIEZ1bmN0aW9uKXtpZihuLmNvbnN0cnVjdG9yLm5hbWUpRD1uLmNvbnN0cnVjdG9yLm5hbWU7ZWxzZSBpZihEPW4uY29uc3RydWN0b3IsTHBbRF0pRD1McFtEXTtlbHNle0Q9U3RyaW5nKEQpO2lmKCFMcFtEXSl7bGV0IGs9L2Z1bmN0aW9uXHMrKFteXChdKykvbS5leGVjKEQpO0xwW0RdPWs/a1sxXToiW0Fub255bW91c10ifUQ9THBbRF19RD0nVW5rbm93biBFcnJvciBvZiB0eXBlICInK0QrJyInfWVsc2UgRD0iVW5rbm93biBFcnJvciBvZiB1bmtub3duIHR5cGUiO3R5cGVvZiBuLnRvU3RyaW5nPT09ImZ1bmN0aW9uIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyE9PW4udG9TdHJpbmcmJihEKz0iOiAiK24udG9TdHJpbmcoKSl9cmV0dXJue21lc3NhZ2U6RCxuYW1lOm4ubmFtZXx8IlVua25vd25FcnJvciIsbGluZU51bWJlcjpiLGZpbGVOYW1lOnYsc3RhY2s6V3x8Ik5vdCBhdmFpbGFibGUifX1yZXR1cm57bWVzc2FnZTpuLm1lc3NhZ2UsCm5hbWU6bi5uYW1lLGxpbmVOdW1iZXI6bi5saW5lTnVtYmVyLGZpbGVOYW1lOm4uZmlsZU5hbWUsc3RhY2s6V319Owp4bD1mdW5jdGlvbihuLFcpe1d8fChXPXt9KTtXW2UxKG4pXT0hMDt2YXIgRD1uLnN0YWNrfHwiIixiPW4uY2F1c2U7YiYmIVdbZTEoYildJiYoRCs9IlxuQ2F1c2VkIGJ5OiAiLGIuc3RhY2smJmIuc3RhY2suaW5kZXhPZihiLnRvU3RyaW5nKCkpPT0wfHwoRCs9dHlwZW9mIGI9PT0ic3RyaW5nIj9iOmIubWVzc2FnZSsiXG4iKSxEKz14bChiLFcpKTtuPW4uZXJyb3JzO2lmKEFycmF5LmlzQXJyYXkobikpe2I9MTtsZXQgdjtmb3Iodj0wO3Y8bi5sZW5ndGgmJiEoYj40KTt2KyspV1tlMShuW3ZdKV18fChEKz0iXG5Jbm5lciBlcnJvciAiK2IrKyArIjogIixuW3ZdLnN0YWNrJiZuW3ZdLnN0YWNrLmluZGV4T2Yoblt2XS50b1N0cmluZygpKT09MHx8KEQrPXR5cGVvZiBuW3ZdPT09InN0cmluZyI/blt2XTpuW3ZdLm1lc3NhZ2UrIlxuIiksRCs9eGwoblt2XSxXKSk7djxuLmxlbmd0aCYmKEQrPSJcbi4uLiAiKyhuLmxlbmd0aC12KSsiIG1vcmUgaW5uZXIgZXJyb3JzIil9cmV0dXJuIER9OwplMT1mdW5jdGlvbihuKXt2YXIgVz0iIjt0eXBlb2Ygbi50b1N0cmluZz09PSJmdW5jdGlvbiImJihXPSIiK24pO3JldHVybiBXK24uc3RhY2t9OwpnLmdUPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbi5wYXJzZUZyb21TdHJpbmcoZy5mYihXKSxEKX07ClhNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5ldyBXb3JrZXIoeDMobiksVyl9OwpxaD1mdW5jdGlvbihuKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhuKSl9OwpHNT1mdW5jdGlvbihuKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG4ucmVwbGFjZSgvXCsvZywiICIpKX07CmcudEE9ZnVuY3Rpb24obil7c0NoLnRlc3QobikmJihuLmluZGV4T2YoIiYiKSE9LTEmJihuPW4ucmVwbGFjZShOcmgsIiZhbXA7IikpLG4uaW5kZXhPZigiPCIpIT0tMSYmKG49bi5yZXBsYWNlKHBadywiJmx0OyIpKSxuLmluZGV4T2YoIj4iKSE9LTEmJihuPW4ucmVwbGFjZShZd2ksIiZndDsiKSksbi5pbmRleE9mKCciJykhPS0xJiYobj1uLnJlcGxhY2UoSHRVLCImcXVvdDsiKSksbi5pbmRleE9mKCInIikhPS0xJiYobj1uLnJlcGxhY2UoZjFTLCImIzM5OyIpKSxuLmluZGV4T2YoIlx4MDAiKSE9LTEmJihuPW4ucmVwbGFjZShKaVosIiYjMDsiKSkpO3JldHVybiBufTsKZy5yVD1mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD8iIjpTdHJpbmcobil9OwpzVD1mdW5jdGlvbihuKXt2YXIgVz0wO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7KytEKVc9MzEqVytuLmNoYXJDb2RlQXQoRCk+Pj4wO3JldHVybiBXfTsKZy5OaD1mdW5jdGlvbihuKXt2YXIgVz1OdW1iZXIobik7cmV0dXJuIFc9PTAmJmcuRmgobik/TmFOOld9OwpwcD1mdW5jdGlvbihuKXtyZXR1cm4gU3RyaW5nKG4pLnJlcGxhY2UoL1wtKFthLXpdKS9nLGZ1bmN0aW9uKFcsRCl7cmV0dXJuIEQudG9VcHBlckNhc2UoKX0pfTsKSTFpPWZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoUmVnRXhwKCIoXnxbXFxzXSspKFthLXpdKSIsImciKSxmdW5jdGlvbihXLEQsYil7cmV0dXJuIEQrYi50b1VwcGVyQ2FzZSgpfSl9OwpTd2g9ZnVuY3Rpb24obil7dmFyIFc9MTtuPW4uc3BsaXQoIjoiKTtmb3IodmFyIEQ9W107Vz4wJiZuLmxlbmd0aDspRC5wdXNoKG4uc2hpZnQoKSksVy0tO24ubGVuZ3RoJiZELnB1c2gobi5qb2luKCI6IikpO3JldHVybiBEfTsKZy5IND1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD0iIjtuJiYoeCs9bisiOiIpO0QmJih4Kz0iLy8iLFcmJih4Kz1XKyJAIikseCs9RCxiJiYoeCs9IjoiK2IpKTt2JiYoeCs9dik7ayYmKHgrPSI/IitrKTtoJiYoeCs9IiMiK2gpO3JldHVybiB4fTsKZy5mcD1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXRjaChBaXIpfTsKSkE9ZnVuY3Rpb24obil7cmV0dXJuIG4/ZGVjb2RlVVJJKG4pOm59OwpnLklQPWZ1bmN0aW9uKG4pe3JldHVybiBKQShnLmZwKG4pWzNdfHxudWxsKX07ClMxPWZ1bmN0aW9uKG4pe3JldHVybiBKQShnLmZwKG4pWzVdfHxudWxsKX07CkFBPWZ1bmN0aW9uKG4pe249Zy5mcChuKTtyZXR1cm4gZy5INChuWzFdLG5bMl0sblszXSxuWzRdKX07Cm1XPWZ1bmN0aW9uKG4pe249Zy5mcChuKTtyZXR1cm4gZy5INChudWxsLG51bGwsbnVsbCxudWxsLG5bNV0sbls2XSxuWzddKX07CktwPWZ1bmN0aW9uKG4pe3ZhciBXPW4uaW5kZXhPZigiIyIpO3JldHVybiBXPDA/bjpuLnNsaWNlKDAsVyl9OwpnLk9UPWZ1bmN0aW9uKG4sVyl7aWYobil7bj1uLnNwbGl0KCImIik7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspe2xldCBiPW5bRF0uaW5kZXhPZigiPSIpLHYsaz1udWxsO2I+PTA/KHY9bltEXS5zdWJzdHJpbmcoMCxiKSxrPW5bRF0uc3Vic3RyaW5nKGIrMSkpOnY9bltEXTtXKHYsaz9HNShrKToiIil9fX07ClA0PWZ1bmN0aW9uKG4sVyl7aWYoIVcpcmV0dXJuIG47dmFyIEQ9bi5pbmRleE9mKCIjIik7RDwwJiYoRD1uLmxlbmd0aCk7dmFyIGI9bi5pbmRleE9mKCI/Iik7aWYoYjwwfHxiPkQpe2I9RDt2YXIgdj0iIn1lbHNlIHY9bi5zdWJzdHJpbmcoYisxLEQpO249W24uc2xpY2UoMCxiKSx2LG4uc2xpY2UoRCldO0Q9blsxXTtuWzFdPVc/RD9EKyImIitXOlc6RDtyZXR1cm4gblswXSsoblsxXT8iPyIrblsxXToiIikrblsyXX07ClplPWZ1bmN0aW9uKG4sVyxEKXtpZihBcnJheS5pc0FycmF5KFcpKWZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKVplKG4sU3RyaW5nKFdbYl0pLEQpO2Vsc2UgVyE9bnVsbCYmRC5wdXNoKG4rKFc9PT0iIj8iIjoiPSIrcWgoVykpKX07CnlHPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRCBpbiBuKVplKEQsbltEXSxXKTtyZXR1cm4gVy5qb2luKCImIil9OwpnLkVUPWZ1bmN0aW9uKG4sVyl7Vz15RyhXKTtyZXR1cm4gUDQobixXKX07CmcudWY9ZnVuY3Rpb24obixXLEQpe0Q9RCE9bnVsbD8iPSIrcWgoRCk6IiI7cmV0dXJuIFA0KG4sVytEKX07CmcuZFQ9ZnVuY3Rpb24obixXLEQsYil7Zm9yKHZhciB2PUQubGVuZ3RoOyhXPW4uaW5kZXhPZihELFcpKT49MCYmVzxiOyl7dmFyIGs9bi5jaGFyQ29kZUF0KFctMSk7aWYoaz09Mzh8fGs9PTYzKWlmKGs9bi5jaGFyQ29kZUF0KFcrdiksIWt8fGs9PTYxfHxrPT0zOHx8az09MzUpcmV0dXJuIFc7Vys9disxfXJldHVybi0xfTsKZy5sZj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc2VhcmNoKGcuejUpLGI9Zy5kVChuLDAsVyxEKTtpZihiPDApcmV0dXJuIG51bGw7dmFyIHY9bi5pbmRleE9mKCImIixiKTtpZih2PDB8fHY+RCl2PUQ7Yis9Vy5sZW5ndGgrMTtyZXR1cm4gRzUobi5zbGljZShiLHYhPT0tMT92OjApKX07ClQ1PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEPW4uc2VhcmNoKGcuejUpLGI9MCx2LGs9W107KHY9Zy5kVChuLGIsVyxEKSk+PTA7KWsucHVzaChuLnN1YnN0cmluZyhiLHYpKSxiPU1hdGgubWluKG4uaW5kZXhPZigiJiIsdikrMXx8RCxEKTtrLnB1c2gobi5zbGljZShiKSk7cmV0dXJuIGsuam9pbigiIikucmVwbGFjZShtaTEsIiQxIil9OwpLUzE9ZnVuY3Rpb24obixXLEQpe3JldHVybiBnLnVmKFQ1KG4sVyksVyxEKX07CmcuQ3A9ZnVuY3Rpb24obil7biYmdHlwZW9mIG4uZGlzcG9zZT09ImZ1bmN0aW9uIiYmbi5kaXNwb3NlKCl9OwpnLkI0PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wLEQ9YXJndW1lbnRzLmxlbmd0aDtXPEQ7KytXKXtsZXQgYj1hcmd1bWVudHNbV107Zy5ZMihiKT9nLkI0LmFwcGx5KG51bGwsYik6Zy5DcChiKX19OwpnLkZNPWZ1bmN0aW9uKCl7dGhpcy5IRD10aGlzLkhEO3RoaXMuQlY9dGhpcy5CVn07CmcudT1mdW5jdGlvbihuLFcpe24uYWRkT25EaXNwb3NlQ2FsbGJhY2soZy5QWihnLkNwLFcpKX07CmcuTWg9ZnVuY3Rpb24obj0iYmV2YXNyc2ciKXtyZXR1cm4gbmV3IFByb21pc2UoVz0+e2lmKHdpbmRvdz09PXdpbmRvdy50b3ApdmFyIEQ9d2luZG93O2Vsc2V7dHJ5e0Q9ISF3aW5kb3c/LnRvcD8ubG9jYXRpb24uaHJlZiYmITF9Y2F0Y2godil7RD0hMH1EPUQ/d2luZG93OndpbmRvdy50b3B9dmFyIGI9RFtuXTtiPy5iZXZhc3JzP1cobmV3IHdUKGIuYmV2YXNycykpOihifHwoYj17bnFmYmVsOltdfSxEW25dPWIpLGIubnFmYmVsLnB1c2godj0+e1cobmV3IHdUKHYpKX0pKX0pfTsKUlA9ZnVuY3Rpb24obil7dmFyIFc9e2M6bi53XyxlOm4ueEMsbWM6bi5HcixtZTpuLkVSfTtuLmhHJiYoVy5jbz17YzpuLmhHLmFtLGE6bi5oRy5BQixzOm4uaEcucjN9KTtyZXR1cm4gV307Ck90aT1mdW5jdGlvbihuKXtuLkohPT12b2lkIDAmJihuLlcuZm9yRWFjaChXPT57bi5KPy5yZW1vdmVFdmVudExpc3RlbmVyKFcsbi5YKX0pLG4uSj12b2lkIDApfTsKWnRaPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLk8xLndwYyl0aHJvdyBuZXcgUUcoMzAsIk5XQSIpO2lmKG4uTilyZXR1cm4gbi5OO3ZhciBXPWF3YWl0IG4uTzEud3BjKCk7bi5OPW5ldyBQeFMoVyk7cmV0dXJuIG4uTn07Cm4wPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO1ZHKG4sYzQsNikuZm9yRWFjaChEPT57YVAoRCwyKTw9NTMmJlcucHVzaChhUChELDEpKX0pOwpyZXR1cm4gV307ClVpdz1mdW5jdGlvbihuKXt2YXIgVz1bXTtWRyhuLGM0LDYpLmZvckVhY2goRD0+e2FQKEQsMik+NTMmJlcucHVzaChhUChELDEpKX0pOwpyZXR1cm4gV307ClcyPWZ1bmN0aW9uKG4pe24udGhlbigoKT0+e30sKCk9Pnt9KX07CkRYPWZ1bmN0aW9uKG4pe3JldHVybntmaWVsZFR5cGU6MixmaWVsZE5hbWU6bn19OwpicD1mdW5jdGlvbihuKXtyZXR1cm57ZmllbGRUeXBlOjMsZmllbGROYW1lOm59fTsKa0s9ZnVuY3Rpb24obil7cmV0dXJuKHYyfHwodjI9bmV3IFRleHRFbmNvZGVyKSkuZW5jb2RlKG4pfTsKaDQ9ZnVuY3Rpb24obil7Zy5xaS5zZXRUaW1lb3V0KCgpPT57dGhyb3cgbjt9LDApfTsKeWl0PWZ1bmN0aW9uKG4pe3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobixmdW5jdGlvbihXKXtXPVcudG9TdHJpbmcoMTYpO3JldHVybiBXLmxlbmd0aD4xP1c6IjAiK1d9KS5qb2luKCIiKX07CnhLPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCs9MilXLnB1c2gocGFyc2VJbnQobi5zdWJzdHJpbmcoRCxEKzIpLDE2KSk7cmV0dXJuIFd9OwpMMD1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPTA7Zm9yKGxldCBiPTA7YjxuLmxlbmd0aDtiKyspe2xldCB2PW4uY2hhckNvZGVBdChiKTt2PDEyOD9XW0QrK109djoodjwyMDQ4P1dbRCsrXT12Pj42fDE5MjooKHYmNjQ1MTIpPT01NTI5NiYmYisxPG4ubGVuZ3RoJiYobi5jaGFyQ29kZUF0KGIrMSkmNjQ1MTIpPT01NjMyMD8odj02NTUzNisoKHYmMTAyMyk8PDEwKSsobi5jaGFyQ29kZUF0KCsrYikmMTAyMyksV1tEKytdPXY+PjE4fDI0MCxXW0QrK109dj4+MTImNjN8MTI4KTpXW0QrK109dj4+MTJ8MjI0LFdbRCsrXT12Pj42JjYzfDEyOCksV1tEKytdPXYmNjN8MTI4KX1yZXR1cm4gV307CmcuWFE9ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLm5hdmlnYXRvcjtyZXR1cm4gbiYmKG49bi51c2VyQWdlbnQpP246IiJ9OwokSz1mdW5jdGlvbihuKXtpZighZy5xeCYmIWcuR2h8fCFnLnQ0KXJldHVybiExO2ZvcihsZXQgVz0wO1c8Zy50NC5icmFuZHMubGVuZ3RoO1crKyl7bGV0IHticmFuZDpEfT1nLnQ0LmJyYW5kc1tXXTtpZihEJiZELmluZGV4T2YobikhPS0xKXJldHVybiEwfXJldHVybiExfTsKZy5yVz1mdW5jdGlvbihuKXtyZXR1cm4gZy5YUSgpLmluZGV4T2YobikhPS0xfTsKc0E9ZnVuY3Rpb24oKXtyZXR1cm4gZy5xeHx8Zy5HaD8hIWcudDQmJmcudDQuYnJhbmRzLmxlbmd0aD4wOiExfTsKTng9ZnVuY3Rpb24oKXtyZXR1cm4gc0EoKT8hMTpnLnJXKCJPcGVyYSIpfTsKcDA9ZnVuY3Rpb24oKXtyZXR1cm4gZy5yVygiRmlyZWZveCIpfHxnLnJXKCJGeGlPUyIpfTsKZy5IMj1mdW5jdGlvbigpe3JldHVybiBnLnJXKCJTYWZhcmkiKSYmIShZSygpfHwoc0EoKT8wOmcuclcoIkNvYXN0IikpfHxOeCgpfHwoc0EoKT8wOmcuclcoIkVkZ2UiKSl8fChzQSgpPyRLKCJNaWNyb3NvZnQgRWRnZSIpOmcuclcoIkVkZy8iKSl8fChzQSgpPyRLKCJPcGVyYSIpOmcuclcoIk9QUiIpKXx8cDAoKXx8Zy5yVygiU2lsayIpfHxnLnJXKCJBbmRyb2lkIikpfTsKWUs9ZnVuY3Rpb24oKXtyZXR1cm4gc0EoKT8kSygiQ2hyb21pdW0iKTooZy5yVygiQ2hyb21lIil8fGcuclcoIkNyaU9TIikpJiYhKHNBKCk/MDpnLnJXKCJFZGdlIikpfHxnLnJXKCJTaWxrIil9OwpnLmYwPWZ1bmN0aW9uKCl7cmV0dXJuIGcucXh8fGcuR2g/ISFnLnQ0JiYhIWcudDQucGxhdGZvcm06ITF9Owp2YXIgRTJVPWZ1bmN0aW9uKG4sVyxELGIsdil7cmV0dXJuIEo0W0lbMTBdXSh0aGlzLDI1LDE4NjYsbixXLEQsYix2KX07CmcuSTI9ZnVuY3Rpb24oKXtyZXR1cm4gZy5mMCgpP2cudDQucGxhdGZvcm09PT0iQW5kcm9pZCI6Zy5yVygiQW5kcm9pZCIpfTsKU3U9ZnVuY3Rpb24oKXtyZXR1cm4gZy5yVygiaVBob25lIikmJiFnLnJXKCJpUG9kIikmJiFnLnJXKCJpUGFkIil9OwpnLkE0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1KCl8fGcuclcoImlQYWQiKXx8Zy5yVygiaVBvZCIpfTsKZy5teD1mdW5jdGlvbigpe3JldHVybiBnLmYwKCk/Zy50NC5wbGF0Zm9ybT09PSJtYWNPUyI6Zy5yVygiTWFjaW50b3NoIil9OwpnLkswPWZ1bmN0aW9uKCl7cmV0dXJuIGcuZjAoKT9nLnQ0LnBsYXRmb3JtPT09IldpbmRvd3MiOmcuclcoIldpbmRvd3MiKX07CmcuT0E9ZnVuY3Rpb24obil7Zy5PQVsiICJdKG4pO3JldHVybiBufTsKdWhoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9aXR4O3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRCxuKT9EW25dOkRbbl09VyhuKX07CmcuWlg9ZnVuY3Rpb24obil7cmV0dXJuIHVoaChuLGZ1bmN0aW9uKCl7cmV0dXJuIGcuY1ooUDIsbik+PTB9KX07CmcuRUE9ZnVuY3Rpb24obixXKXtXPT09dm9pZCAwJiYoVz0wKTtVQSgpO1c9eWxbV107Zm9yKHZhciBEPUFycmF5KE1hdGguZmxvb3Iobi5sZW5ndGgvMykpLGI9V1s2NF18fCIiLHY9MCxrPTA7djxuLmxlbmd0aC0yO3YrPTMpe3ZhciBoPW5bdl0seD1uW3YrMV0sTD1uW3YrMl0sZT1XW2g+PjJdO2g9V1soaCYzKTw8NHx4Pj40XTt4PVdbKHgmMTUpPDwyfEw+PjZdO0w9V1tMJjYzXTtEW2srK109IiIrZStoK3grTH1lPTA7TD1iO3N3aXRjaChuLmxlbmd0aC12KXtjYXNlIDI6ZT1uW3YrMV0sTD1XWyhlJjE1KTw8Ml18fGI7Y2FzZSAxOm49blt2XSxEW2tdPSIiK1dbbj4+Ml0rV1sobiYzKTw8NHxlPj40XStMK2J9cmV0dXJuIEQuam9pbigiIil9Owp2YXIgbzJqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGlwW0lbMTBdXSh0aGlzLDEsMTcwOCxuLFcpfTsKZy51cD1mdW5jdGlvbihuLFcsRCl7aWYoVyl7bGV0IGI9W10sdj0wO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7aysrKXtsZXQgaD1uLmNoYXJDb2RlQXQoayk7aWYoaD4yNTUpe2xldCB4PUVycm9yKCJnby91bmljb2RlLXRvLWJ5dGUtZXJyb3IiKTtpZihEKXRocm93IHg7Ylt2KytdPWgmMjU1O2g+Pj04fWJbdisrXT1ofW49Zy5FQShiLFcpfWVsc2Ugbj1nLnFpLmJ0b2Eobik7cmV0dXJuIG59Owp6aD1mdW5jdGlvbihuKXt2YXIgVz1bXTtvMihuLGZ1bmN0aW9uKEQpe1cucHVzaChEKX0pOwpyZXR1cm4gV307CmxwPWZ1bmN0aW9uKG4pe3ZhciBXPW4ubGVuZ3RoLEQ9VyozLzQ7RCUzP0Q9TWF0aC5mbG9vcihEKToiPS4iLmluZGV4T2YobltXLTFdKSE9LTEmJihEPSI9LiIuaW5kZXhPZihuW1ctMl0pIT0tMT9ELTI6RC0xKTt2YXIgYj1uZXcgVWludDhBcnJheShEKSx2PTA7bzIobixmdW5jdGlvbihrKXtiW3YrK109a30pOwpyZXR1cm4gdiE9PUQ/Yi5zdWJhcnJheSgwLHYpOmJ9OwpvMj1mdW5jdGlvbihuLFcpe2Z1bmN0aW9uIEQodil7Zm9yKDtiPG4ubGVuZ3RoOyl7bGV0IGs9bi5jaGFyQXQoYisrKSxoPVRoW2tdO2lmKGghPW51bGwpcmV0dXJuIGg7aWYoIWcuRmgoaykpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrayk7fXJldHVybiB2fQpVQSgpO2Zvcih2YXIgYj0wOzspe2xldCB2PUQoLTEpLGs9RCgwKSxoPUQoNjQpLHg9RCg2NCk7aWYoeD09PTY0JiZ2PT09LTEpYnJlYWs7Vyh2PDwyfGs+PjQpO2ghPTY0JiYoVyhrPDw0JjI0MHxoPj4yKSx4IT02NCYmVyhoPDw2JjE5Mnx4KSl9fTsKVUE9ZnVuY3Rpb24oKXtpZighVGgpe1RoPXt9O3ZhciBuPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLFc9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl07Zm9yKGxldCBEPTA7RDw1O0QrKyl7bGV0IGI9bi5jb25jYXQoV1tEXS5zcGxpdCgiIikpO3lsW0RdPWI7Zm9yKGxldCB2PTA7djxiLmxlbmd0aDt2Kyspe2xldCBrPWJbdl07VGhba109PT12b2lkIDAmJihUaFtrXT12KX19fX07CnpNMj1mdW5jdGlvbihuKXtyZXR1cm4gZGlVW25dfHwiIn07CkMwPWZ1bmN0aW9uKG4pe249anUudGVzdChuKT9uLnJlcGxhY2UoanUsek0yKTpuO249YXRvYihuKTt2YXIgVz1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspV1tEXT1uLmNoYXJDb2RlQXQoRCk7cmV0dXJuIFd9OwpNeD1mdW5jdGlvbigpe3JldHVybiBCMnx8KEIyPW5ldyBGUShudWxsLHdXKSl9OwpRbD1mdW5jdGlvbihuKXtSMih3Vyk7dmFyIFc9bi5OO1c9Vz09bnVsbHx8VyE9bnVsbCYmVyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Vzp0eXBlb2YgVz09PSJzdHJpbmciP0MwKFcpOm51bGw7cmV0dXJuIFc9PW51bGw/VzpuLk49V307ClZsPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgVWludDhBcnJheShRbChuKXx8MCl9OwpSMj1mdW5jdGlvbihuKXtpZihuIT09d1cpdGhyb3cgRXJyb3IoImlsbGVnYWwgZXh0ZXJuYWwgY2FsbGVyIik7fTsKYzI9ZnVuY3Rpb24obil7bj1FcnJvcihuKTtoQShuLCJ3YXJuaW5nIik7cmV0dXJuIG59OwpuNT1mdW5jdGlvbihuLFcpe2lmKG4hPW51bGwpe3ZhciBEPWEyPz8oYTI9e30pO3ZhciBiPURbbl18fDA7Yj49V3x8KERbbl09YisxLG49RXJyb3IoKSxoQShuLCJpbmNpZGVudCIpLGg0KG4pKX19OwpXOT1mdW5jdGlvbihuLFc9ITEpe3JldHVybiBXJiZTeW1ib2wuZm9yJiZuP1N5bWJvbC5mb3Iobik6biE9bnVsbD9TeW1ib2wobik6U3ltYm9sKCl9Owp2OT1mdW5jdGlvbihuLFcpe3JldHVybiBXPT09dm9pZCAwP24uTiE9PURCJiYhISgyJihuLmw5W2I0XXwwKSk6ISEoMiZXKSYmbi5OIT09REJ9OwprVT1mdW5jdGlvbihuLFcpe2lmKG4hPW51bGwpaWYodHlwZW9mIG49PT0ic3RyaW5nIiluPW4/bmV3IEZRKG4sd1cpOk14KCk7ZWxzZSBpZihuLmNvbnN0cnVjdG9yIT09RlEpaWYobiE9bnVsbCYmbiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpbj1uLmxlbmd0aD9uZXcgRlEobmV3IFVpbnQ4QXJyYXkobiksd1cpOk14KCk7ZWxzZXtpZighVyl0aHJvdyBFcnJvcigpO249dm9pZCAwfXJldHVybiBufTsKaF89ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcmMTI4PzA6LTEsdj1uLmxlbmd0aCxrO2lmKGs9ISF2KWs9blt2LTFdLGs9ayE9bnVsbCYmdHlwZW9mIGs9PT0ib2JqZWN0IiYmay5jb25zdHJ1Y3Rvcj09PU9iamVjdDt2YXIgaD12KyhrPy0xOjApO2ZvcihXPVcmMTI4PzE6MDtXPGg7VysrKUQoVy1iLG5bV10pO2lmKGspe249blt2LTFdO2ZvcihsZXQgeCBpbiBuKSFpc05hTih4KSYmRCgreCxuW3hdKX19OwpMNT1mdW5jdGlvbihuKXtyZXR1cm4gbiYxMjg/eFU6dm9pZCAwfTsKWEQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVdebjtpZihuLTY+PjM9PTIpeyhEW2JeNTE4XT49LShiXjU1MSl8fCgoMCxEW2JeNTE1XSkoRFtiXjUyMV0sRFtiXjYwOV0pLDApKSYmKDAsRFtiXjU2M10pKERbYl42MDldKTsoMCxEWzZdKSgpOygoMCxEW2JeNTMzXSkoRFtiXjU3NF0sRFtiXjU3Ml0pLERbYl41MzNdKShEW2JeNTM4XSxEW2JeNTcyXSk7dmFyIHY9W119aWYoKG4mMTIwKT09bil0aHJvdyBEO2lmKG4tNzw8MjxuJiYobi00fDMxKT49bil7Zm9yKHZhciBrPWJeMzE1NCxoPVtdOysray1oW0lbNV1dLShiXjMxMjIpOylzd2l0Y2goayl7Y2FzZSBiXjMxMzI6az1iXjMxNDk7ZGVmYXVsdDpoW0lbYl4zMDc2XV0oU3RyaW5nW0lbYl4zMTA0XV0oaykpO2Nhc2UgYl4zMTQ4OmNhc2UgYl4zMTQ5OmNhc2UgYl4zMTg2OmJyZWFrO2Nhc2UgYl4zMTc3OmstPWJeMzE2NjtjYXNlIGJeMzE1MDpjYXNlIGJeMzE1MTpjb250aW51ZTtjYXNlIGJeMzExMjprPWJeMzEzNDtjYXNlIGJeMzE0NTp9dj0KaH0obnw1Nik9PW4mJihlWChiXjQ1MDksYl4zNTE4LEQpLChrPURbSVsxXV1bSVtiXjQ0OTRdXXx8bnVsbCkmJihrPWdaKDIsYl4yMjE3LGssRCkpLHY9W10pO3JldHVybiB2fTsKcTM9ZnVuY3Rpb24obil7bi5URj0hMDtyZXR1cm4gbn07CmcuJFU9ZnVuY3Rpb24obil7aWYoKDAsZy5HOSkobikpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChuKSl0aHJvdyBFcnJvcihTdHJpbmcobikpO31lbHNlIGlmKCgwLGcudF8pKG4pJiYhTnVtYmVyLmlzU2FmZUludGVnZXIobikpdGhyb3cgRXJyb3IoU3RyaW5nKG4pKTtyZXR1cm4gQmlnSW50KG4pfTsKTjM9ZnVuY3Rpb24obil7dmFyIFc9bj4+PjA7clo9VztzXz0obi1XKS80Mjk0OTY3Mjk2Pj4+MH07CnA1PWZ1bmN0aW9uKG4pe2lmKG48MCl7TjMoMC1uKTtuPXJaO3ZhciBXPXNfO1c9flc7bj9uPX5uKzE6Vys9MTtsZXQgW0QsYl09W24sV107clo9RD4+PjA7c189Yj4+PjB9ZWxzZSBOMyhuKX07Ckg5PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vyo0Mjk0OTY3Mjk2KyhuPj4+MCk7cmV0dXJuIE51bWJlci5pc1NhZmVJbnRlZ2VyKEQpP0Q6WVUobixXKX07CmY1PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuJFUoQmlnSW50LmFzVWludE4oNjQsKEJpZ0ludChXPj4+MCk8PEJpZ0ludCgzMikpK0JpZ0ludChuPj4+MCkpKX07CmcuSl89ZnVuY3Rpb24obixXKXtyZXR1cm4gZy4kVShCaWdJbnQuYXNJbnROKDY0LChCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoVykpPDxCaWdJbnQoMzIpKStCaWdJbnQuYXNVaW50TigzMixCaWdJbnQobikpKSl9OwpZVT1mdW5jdGlvbihuLFcpe1c+Pj49MDtuPj4+PTA7dmFyIEQ7Vzw9MjA5NzE1MT9EPSIiKyg0Mjk0OTY3Mjk2Klcrbik6RD0iIisoQmlnSW50KFcpPDxCaWdJbnQoMzIpfEJpZ0ludChuKSk7cmV0dXJuIER9OwpJMD1mdW5jdGlvbigpe3ZhciBuPXJaLFc9c18sRDtXJjIxNDc0ODM2NDg/RD0iIisoQmlnSW50KFd8MCk8PEJpZ0ludCgzMil8QmlnSW50KG4+Pj4wKSk6RD1ZVShuLFcpO3JldHVybiBEfTsKU1g9ZnVuY3Rpb24obil7bi5sZW5ndGg8MTY/cDUoTnVtYmVyKG4pKToobj1CaWdJbnQobiksclo9TnVtYmVyKG4mQmlnSW50KDQyOTQ5NjcyOTUpKT4+PjAsc189TnVtYmVyKG4+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKSl9OwpnLkFfPWZ1bmN0aW9uKG4pe2lmKG4hPW51bGwmJnR5cGVvZiBuIT09Im51bWJlciIpdGhyb3cgRXJyb3IoYFZhbHVlIG9mIGZsb2F0L2RvdWJsZSBmaWVsZCBtdXN0IGJlIGEgbnVtYmVyLCBmb3VuZCAke3R5cGVvZiBufTogJHtufWApO3JldHVybiBufTsKbTA9ZnVuY3Rpb24obil7aWYobj09bnVsbHx8dHlwZW9mIG49PT0ibnVtYmVyIilyZXR1cm4gbjtpZihuPT09Ik5hTiJ8fG49PT0iSW5maW5pdHkifHxuPT09Ii1JbmZpbml0eSIpcmV0dXJuIE51bWJlcihuKX07Cks1PWZ1bmN0aW9uKG4pe3JldHVybiBuLmRpc3BsYXlOYW1lfHxuLm5hbWV8fCJ1bmtub3duIHR5cGUgbmFtZSJ9OwpPXz1mdW5jdGlvbihuKXtpZihuIT1udWxsJiZ0eXBlb2YgbiE9PSJib29sZWFuIil0aHJvdyBFcnJvcihgRXhwZWN0ZWQgYm9vbGVhbiBidXQgZ290ICR7cHQobil9OiAke259YCk7cmV0dXJuIG59OwpaQj1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgImJpZ2ludCI6cmV0dXJuITA7Y2FzZSAibnVtYmVyIjpyZXR1cm4gUDkobik7Y2FzZSAic3RyaW5nIjpyZXR1cm4gbDEyLnRlc3Qobik7ZGVmYXVsdDpyZXR1cm4hMX19OwpVXz1mdW5jdGlvbihuKXtpZih0eXBlb2YgbiE9PSJudW1iZXIiKXRocm93IGMyKCJpbnQzMiIpO2lmKCFQOShuKSl0aHJvdyBjMigiaW50MzIiKTtyZXR1cm4gbnwwfTsKZy55UD1mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD9uOlVfKG4pfTsKRV89ZnVuY3Rpb24obil7aWYobj09bnVsbClyZXR1cm4gbjtpZih0eXBlb2Ygbj09PSJzdHJpbmciJiZuKW49K247ZWxzZSBpZih0eXBlb2YgbiE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4gUDkobik/bnwwOnZvaWQgMH07CnU0PWZ1bmN0aW9uKG4pe2lmKG49PW51bGwpcmV0dXJuIG47aWYodHlwZW9mIG49PT0ic3RyaW5nIiYmbiluPStuO2Vsc2UgaWYodHlwZW9mIG4hPT0ibnVtYmVyIilyZXR1cm47cmV0dXJuIFA5KG4pP24+Pj4wOnZvaWQgMH07CmcubDQ9ZnVuY3Rpb24obil7aWYobiE9bnVsbClhOntpZighWkIobikpdGhyb3cgYzIoImludDY0Iik7c3dpdGNoKHR5cGVvZiBuKXtjYXNlICJzdHJpbmciOm49bzAobik7YnJlYWsgYTtjYXNlICJiaWdpbnQiOm49Zy4kVShkWig2NCxuKSk7YnJlYWsgYTtkZWZhdWx0Om49ejkobil9fXJldHVybiBufTsKQzU9ZnVuY3Rpb24obil7WkIobik7bj1UOShuKTtpZighalgobikpe3A1KG4pO3ZhciBXPXJaLEQ9c187aWYobj1EJjIxNDc0ODM2NDgpVz1+VysxPj4+MCxEPX5EPj4+MCxXPT0wJiYoRD1EKzE+Pj4wKTtXPUg5KFcsRCk7bj10eXBlb2YgVz09PSJudW1iZXIiP24/LVc6VzpuPyItIitXOld9cmV0dXJuIG59OwpCOT1mdW5jdGlvbihuKXtaQihuKTt2YXIgVz1UOShOdW1iZXIobikpO2lmKGpYKFcpKXJldHVybiBTdHJpbmcoVyk7Vz1uLmluZGV4T2YoIi4iKTtXIT09LTEmJihuPW4uc3Vic3RyaW5nKDAsVykpO1c9bi5sZW5ndGg7KG5bMF09PT0iLSI/VzwyMHx8Vz09PTIwJiZuPD0iLTkyMjMzNzIwMzY4NTQ3NzU4MDgiOlc8MTl8fFc9PT0xOSYmbjw9IjkyMjMzNzIwMzY4NTQ3NzU4MDciKXx8KFNYKG4pLG49STAoKSk7cmV0dXJuIG59OwpvMD1mdW5jdGlvbihuKXt2YXIgVz1UOShOdW1iZXIobikpO2lmKGpYKFcpKXJldHVybiBnLiRVKFcpO1c9bi5pbmRleE9mKCIuIik7VyE9PS0xJiYobj1uLnN1YnN0cmluZygwLFcpKTtyZXR1cm4gZy4kVShkWig2NCxCaWdJbnQobikpKX07Cno5PWZ1bmN0aW9uKG4pe2pYKG4pP249Zy4kVShDNShuKSk6KFpCKG4pLG49VDkobiksalgobik/bj1TdHJpbmcobik6KHA1KG4pLG49STAoKSksbj1nLiRVKG4pKTtyZXR1cm4gbn07CkZEPWZ1bmN0aW9uKG4pe3ZhciBXPXR5cGVvZiBuO2lmKG49PW51bGwpcmV0dXJuIG47aWYoVz09PSJiaWdpbnQiKXJldHVybiBnLiRVKGRaKDY0LG4pKTtpZihaQihuKSlyZXR1cm4gVz09PSJzdHJpbmciP28wKG4pOno5KG4pfTsKakNoPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PVtdO2ZvcihsZXQgeCBvZiBEKXtpZigheC51cmwpY29udGludWU7RD1uZXcgZy53Wih4LnVybCwhMCk7aWYoeC5zKXt2YXIgaz1ELGg9eC5zcDtsZXQgTD1lWCg4Myw2NTU4LE0zKDE3LDQyNjMseC5zKSk7a1tJWzM0XV0oaCxSMCgyOSw4NzMyLEwpKX1mb3IobGV0IEwgb2YgT2JqZWN0LmtleXMoYikpRC5zZXQoTCxiW0xdKTtrPVFQKHgudHlwZSx4LnF1YWxpdHkseC5pdGFnLHgud2lkdGgseC5oZWlnaHQpO3YucHVzaChuZXcgVHJ3KGssRCkpfXJldHVybiBWUChuLlcsdixjOShuLFcpLCExKX07CkN4TT1mdW5jdGlvbihuKXtpZihuPT1udWxsKXJldHVybiBuO3ZhciBXPXR5cGVvZiBuO2lmKFc9PT0iYmlnaW50IilyZXR1cm4gU3RyaW5nKGRaKDY0LG4pKTtpZihaQihuKSl7aWYoVz09PSJzdHJpbmciKXJldHVybiBCOShuKTtpZihXPT09Im51bWJlciIpcmV0dXJuIEM1KG4pfX07CmEwPWZ1bmN0aW9uKG4pe2lmKG49PW51bGwpcmV0dXJuIG47dmFyIFc9dHlwZW9mIG47aWYoVz09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoQnJoKDY0LG4pKTtpZihaQihuKSl7aWYoVz09PSJzdHJpbmciKXJldHVybiBaQihuKSxXPVQ5KE51bWJlcihuKSksalgoVykmJlc+PTA/bj1TdHJpbmcoVyk6KFc9bi5pbmRleE9mKCIuIiksVyE9PS0xJiYobj1uLnN1YnN0cmluZygwLFcpKSxuWzBdPT09Ii0iP1c9ITE6KFc9bi5sZW5ndGgsVz1XPDIwPyEwOlc9PT0yMCYmbjw9IjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiksV3x8KFNYKG4pLG49WVUoclosc18pKSksbjtpZihXPT09Im51bWJlciIpcmV0dXJuIFpCKG4pLG49VDkobiksbj49MCYmalgobil8fChwNShuKSxuPUg5KHJaLHNfKSksbn19OwpuRz1mdW5jdGlvbihuKXtpZihuPT1udWxsfHx0eXBlb2Ygbj09InN0cmluZyJ8fG4gaW5zdGFuY2VvZiBGUSlyZXR1cm4gbn07CkZTMj1mdW5jdGlvbihuKXtpZih0eXBlb2YgbiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIG59OwpXSD1mdW5jdGlvbihuKXtpZihuIT1udWxsJiZ0eXBlb2YgbiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIG59OwpnLkRSPWZ1bmN0aW9uKG4pe3JldHVybiBuPT1udWxsfHx0eXBlb2Ygbj09PSJzdHJpbmciP246dm9pZCAwfTsKYlc9ZnVuY3Rpb24obixXKXtpZighKG4gaW5zdGFuY2VvZiBXKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWQgaW5zdGFuY2VvZiAke0s1KFcpfSBidXQgZ290ICR7biYmSzUobi5jb25zdHJ1Y3Rvcil9YCk7cmV0dXJuIG59Owpodj1mdW5jdGlvbihuLFcsRCl7aWYobiE9bnVsbCYmblt2SF09PT1rdilyZXR1cm4gbjtpZihBcnJheS5pc0FycmF5KG4pKXt2YXIgYj1uW2I0XXwwO0Q9YnxEJjMyfEQmMjtEIT09YiYmKG5bYjRdPUQpO3JldHVybiBuZXcgVyhuKX19Owp4dj1mdW5jdGlvbihuKXtyZXR1cm4gbn07CmVXPWZ1bmN0aW9uKG4pe3ZhciBXPUV3KExHKTtyZXR1cm4gVz9uW1ddOnZvaWQgMH07CmdnPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4pIWlzTmFOKEQpJiZXKG4sK0QsbltEXSl9Owp3WkM9ZnVuY3Rpb24obil7dmFyIFc9bmV3IFhGO2dnKG4sKEQsYix2KT0+e1dbYl09Wy4uLnZdfSk7Clcuajc9bi5qNztyZXR1cm4gV307Ckd6PWZ1bmN0aW9uKG4sVyl7aWYoRXcocUUpJiZFdyhMRykmJnZvaWQgMD09PXFFKXtuPW4ubDk7dmFyIEQ9bltMR107aWYoRCYmKEQ9RC5qNykpdHJ5e0QobixXLE1VaSl9Y2F0Y2goYil7aDQoYil9fX07CnR2PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9RXcoTEcpO0QmJm5bRF0/LltXXSE9bnVsbCYmbjUoUk1iLDMpfTsKVlVTPWZ1bmN0aW9uKG4sVyl7VzwxMDB8fG41KFFDaSwxKX07CnJnPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWIhPT12b2lkIDA7Yj0hIWI7dmFyIGs9RXcoTEcpLGg7IXYmJmsmJihoPW5ba10pJiZnZyhoLFZVUyk7az1bXTt2YXIgeD1uLmxlbmd0aDtoPTQyOTQ5NjcyOTU7dmFyIEw9ITEsZT0hIShXJjY0KSxHPWU/VyYxMjg/MDotMTp2b2lkIDA7aWYoIShXJjEpKXt2YXIgcj14JiZuW3gtMV07ciE9bnVsbCYmdHlwZW9mIHI9PT0ib2JqZWN0IiYmci5jb25zdHJ1Y3Rvcj09PU9iamVjdD8oeC0tLGg9eCk6cj12b2lkIDA7IWV8fFcmMTI4fHx2fHwoTD0hMCxoPSgkdj8/eHYpKGgtRyxHLG4scix2b2lkIDApK0cpfVc9dm9pZCAwO2Zvcih2YXIgTj0wO048eDtOKyspe2xldCBIPW5bTl07aWYoSCE9bnVsbCYmKEg9RChILGIpKSE9bnVsbClpZihlJiZOPj1oKXtsZXQgQT1OLUc7KFc/PyhXPXt9KSlbQV09SH1lbHNlIGtbTl09SH1pZihyKWZvcihsZXQgSCBpbiByKXt4PXJbSF07aWYoeD09bnVsbHx8KHg9RCh4LGIpKT09bnVsbCljb250aW51ZTtOPQorSDtsZXQgQTtlJiYhTnVtYmVyLmlzTmFOKE4pJiYoQT1OK0cpPGg/a1tBXT14OihXPz8oVz17fSkpW0hdPXh9VyYmKEw/ay5wdXNoKFcpOmtbaF09Vyk7diYmRXcoTEcpJiYobj1lVyhuKSkmJm4gaW5zdGFuY2VvZiBYRiYmKGtbTEddPXdaQyhuKSk7cmV0dXJuIGt9OwpORT1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKT9uOiIiK247Y2FzZSAiYmlnaW50IjpyZXR1cm4gc0sobik/TnVtYmVyKG4pOiIiK247Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIG4/MTowO2Nhc2UgIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIFc9bltiNF18MDtyZXR1cm4gbi5sZW5ndGg9PT0wJiZXJjE/dm9pZCAwOnJnKG4sVyxORSl9aWYobiE9bnVsbCYmblt2SF09PT1rdilyZXR1cm4gcEcobik7aWYobiBpbnN0YW5jZW9mIEZRKXtXPW4uTjtpZihXPT1udWxsKW49IiI7ZWxzZSBpZih0eXBlb2YgVz09PSJzdHJpbmciKW49VztlbHNle2xldCBEPSIiLGI9MCx2PVcubGVuZ3RoLTEwMjQwO2Zvcig7Yjx2OylEKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsVy5zdWJhcnJheShiLGIrPTEwMjQwKSk7RCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGI/Vy5zdWJhcnJheShiKToKVyk7Vz1idG9hKEQpO249bi5OPVd9cmV0dXJuIG59cmV0dXJufXJldHVybiBufTsKWXY9ZnVuY3Rpb24obixXKXtpZihXKXskdj1XPT1udWxsfHxXPT09eHZ8fFdbY2lVXSE9PWExVT94djpXO3RyeXtyZXR1cm4gcEcobil9ZmluYWxseXskdj12b2lkIDB9fXJldHVybiBwRyhuKX07CnBHPWZ1bmN0aW9uKG4pe249bi5sOTtyZXR1cm4gcmcobixuW2I0XXwwLE5FKX07Cm4zMj1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgImJvb2xlYW4iOnJldHVybiBISHx8KEhIPVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIG4+MD92b2lkIDA6bj09PTA/Zkd8fChmRz1bMCx2b2lkIDBdKTpbLW4sdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLG5dO2Nhc2UgIm9iamVjdCI6cmV0dXJuIG59fTsKU1c9ZnVuY3Rpb24obixXKXtyZXR1cm4gSnYobixXWzBdLFdbMV0pfTsKSnY9ZnVuY3Rpb24obixXLEQsYj0wKXtpZihuPT1udWxsKXt2YXIgdj0zMjtEPyhuPVtEXSx2fD0xMjgpOm49W107VyYmKHY9diYtMTY3NjA4MzN8KFcmMTAyMyk8PDE0KX1lbHNle2lmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IEVycm9yKCJuYXJyIik7dj1uW2I0XXwwO2lmKEF2JiYxJnYpdGhyb3cgRXJyb3IoInJmYXJyIik7MjA0OCZ2JiYhKDImdikmJldjcigpO2lmKHYmMjU2KXRocm93IEVycm9yKCJmYXJyIik7aWYodiY2NClyZXR1cm4odnxiKSE9PXYmJihuW2I0XT12fGIpLG47aWYoRCYmKHZ8PTEyOCxEIT09blswXSkpdGhyb3cgRXJyb3IoIm1pZCIpO2E6e0Q9bjt2fD02NDt2YXIgaz1ELmxlbmd0aDtpZihrKXt2YXIgaD1rLTE7bGV0IEw9RFtoXTtpZihMIT1udWxsJiZ0eXBlb2YgTD09PSJvYmplY3QiJiZMLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtXPXYmMTI4PzA6LTE7aC09VztpZihoPj0xMDI0KXRocm93IEVycm9yKCJwdnRsbXQiKTtmb3IodmFyIHggaW4gTClpZihrPQoreCxrPGgpRFtrK1ddPUxbeF0sZGVsZXRlIExbeF07ZWxzZSBicmVhazt2PXYmLTE2NzYwODMzfChoJjEwMjMpPDwxNDticmVhayBhfX1pZihXKXt4PU1hdGgubWF4KFcsay0odiYxMjg/MDotMSkpO2lmKHg+MTAyNCl0aHJvdyBFcnJvcigic3B2dCIpO3Y9diYtMTY3NjA4MzN8KHgmMTAyMyk8PDE0fX19bltiNF09dnw2NHxiO3JldHVybiBufTsKV2NyPWZ1bmN0aW9uKCl7aWYoQXYpdGhyb3cgRXJyb3IoImNhcnIiKTtuNShEVWksNSl9OwpiYlo9ZnVuY3Rpb24obixXKXtpZih0eXBlb2YgbiE9PSJvYmplY3QiKXJldHVybiBuO2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBEPW5bYjRdfDA7bi5sZW5ndGg9PT0wJiZEJjE/bj12b2lkIDA6RCYyfHwoIVd8fDQwOTYmRHx8MTYmRD9uPW1fKG4sRCwhMSxXJiYhKEQmMTYpKToobltiNF18PTM0LEQmNCYmT2JqZWN0LmZyZWV6ZShuKSkpO3JldHVybiBufWlmKG4hPW51bGwmJm5bdkhdPT09a3YpcmV0dXJuIFc9bi5sOSxEPVdbYjRdfDAsdjkobixEKT9uOktHKG4sVyxEKT9PSyhuLFcpOm1fKFcsRCk7aWYobiBpbnN0YW5jZW9mIEZRKXJldHVybiBufTsKT0s9ZnVuY3Rpb24obixXLEQpe249bmV3IG4uY29uc3RydWN0b3IoVyk7RCYmKG4uTj1EQik7bi5YPURCO3JldHVybiBufTsKbV89ZnVuY3Rpb24obixXLEQsYil7Yj8/KGI9ISEoMzQmVykpO249cmcobixXLGJiWixiKTtiPTMyO0QmJihifD0yKTtXPVcmMTY3NjkyMTd8YjtuW2I0XT1XO3JldHVybiBufTsKUEg9ZnVuY3Rpb24obil7dmFyIFc9bi5sOSxEPVdbYjRdfDA7cmV0dXJuIHY5KG4sRCk/S0cobixXLEQpP09LKG4sVywhMCk6bmV3IG4uY29uc3RydWN0b3IobV8oVyxELCExKSk6bn07ClpSPWZ1bmN0aW9uKG4pe2lmKG4uTiE9PURCKXJldHVybiExO3ZhciBXPW4ubDk7Vz1tXyhXLFdbYjRdfDApO1dbYjRdfD0yMDQ4O24ubDk9VztuLk49dm9pZCAwO24uWD12b2lkIDA7cmV0dXJuITB9OwpVSz1mdW5jdGlvbihuKXtpZighWlIobikmJnY5KG4sbi5sOVtiNF18MCkpdGhyb3cgRXJyb3IoKTt9Owp5Zz1mdW5jdGlvbihuLFcpe1c9PT12b2lkIDAmJihXPW5bYjRdfDApO1cmMzImJiEoVyY0MDk2KSYmKG5bYjRdPVd8NDA5Nil9OwpLRz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEQmMj8hMDpEJjMyJiYhKEQmNDA5Nik/KFdbYjRdPUR8MixuLk49REIsITApOiExfTsKaVc9ZnVuY3Rpb24obixXLEQsYix2KXtPYmplY3QuaXNFeHRlbnNpYmxlKG4pO1c9RUsobi5sOSxXLEQsdik7aWYoVyE9PW51bGx8fGImJm4uWCE9PURCKXJldHVybiBXfTsKRUs9ZnVuY3Rpb24obixXLEQsYil7aWYoVz09PS0xKXJldHVybiBudWxsO3ZhciB2PVcrKEQ/MDotMSksaz1uLmxlbmd0aC0xO2lmKCEoazwxKyhEPzA6LTEpKSl7aWYodj49ayl7dmFyIGg9bltrXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtEPWhbV107dmFyIHg9ITB9ZWxzZSBpZih2PT09aylEPWg7ZWxzZSByZXR1cm59ZWxzZSBEPW5bdl07aWYoYiYmRCE9bnVsbCl7Yj1iKEQpO2lmKGI9PW51bGwpcmV0dXJuIGI7aWYoIU9iamVjdC5pcyhiLEQpKXJldHVybiB4P2hbV109YjpuW3ZdPWIsYn1yZXR1cm4gRH19Owpvej1mdW5jdGlvbihuLFcsRCxiKXtVSyhuKTt2YXIgdj1uLmw5O3VXKHYsdltiNF18MCxXLEQsYik7cmV0dXJuIG59Owp1Vz1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPUQrKHY/MDotMSksaD1uLmxlbmd0aC0xO2lmKGg+PTErKHY/MDotMSkmJms+PWgpe2xldCB4PW5baF07aWYoeCE9bnVsbCYmdHlwZW9mIHg9PT0ib2JqZWN0IiYmeC5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4geFtEXT1iLFd9aWYoazw9aClyZXR1cm4gbltrXT1iLFc7YiE9PXZvaWQgMCYmKGg9KFc/PyhXPW5bYjRdfDApKT4+MTQmMTAyM3x8NTM2ODcwOTEyLEQ+PWg/YiE9bnVsbCYmKG5baCsodj8wOi0xKV09e1tEXTpifSk6bltrXT1iKTtyZXR1cm4gV307CmcuQkg9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLmw5LGg9a1tiNF18MDtiPXY5KG4saCk/MTpiO3Y9ISF2fHxiPT09MztiPT09MiYmWlIobikmJihrPW4ubDksaD1rW2I0XXwwKTtuPWRnKGssVyk7dmFyIHg9bj09PXp6Pzc6bltiNF18MCxMPWxXKHgsaCk7dmFyIGU9NCZMPyExOiEwO2lmKGUpezQmTCYmKG49Wy4uLm5dLHg9MCxMPWpXKEwsaCksaD11VyhrLGgsVyxuKSk7bGV0IEc9MCxyPTA7Zm9yKDtHPG4ubGVuZ3RoO0crKyl7bGV0IE49RChuW0ddKTtOIT1udWxsJiYobltyKytdPU4pfXI8RyYmKG4ubGVuZ3RoPXIpO0Q9KEx8NCkmLTUxMztMPUQmPS0xMDI1O0wmPS00MDk3fUwhPT14JiYobltiNF09TCwyJkwmJk9iamVjdC5mcmVlemUobikpO3JldHVybiBuPUNHKG4sTCxrLGgsVyx2b2lkIDAsYixlLHYpfTsKQ0c9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwpe3ZhciBlPVc7aD09PTF8fChoIT09ND8wOjImV3x8ISgxNiZXKSYmMzImYik/RkYoVyl8fChXfD0hbi5sZW5ndGh8fHgmJiEoNDA5NiZXKXx8MzImYiYmISg0MDk2Jld8fDE2JlcpPzI6MjU2LFchPT1lJiYobltiNF09VyksT2JqZWN0LmZyZWV6ZShuKSk6KGg9PT0yJiZGRihXKSYmKG49Wy4uLm5dLGU9MCxXPWpXKFcsYiksYj11VyhELGIsdixuLGspKSxGRihXKXx8KEx8fChXfD0xNiksVyE9PWUmJihuW2I0XT1XKSkpOzImV3x8ISg0MDk2Jld8fDE2JlcpfHx5ZyhELGIpO3JldHVybiBufTsKZGc9ZnVuY3Rpb24obixXLEQpe249RUsobixXLEQpO3JldHVybiBBcnJheS5pc0FycmF5KG4pP246enp9OwpsVz1mdW5jdGlvbihuLFcpezImVyYmKG58PTIpO3JldHVybiBufDF9OwpGRj1mdW5jdGlvbihuKXtyZXR1cm4hISgyJm4pJiYhISg0Jm4pfHwhISgyNTYmbil9OwpNRT1mdW5jdGlvbihuKXtyZXR1cm4ga1UobiwhMCl9OwpSej1mdW5jdGlvbihuLFcpe249aVcobixXLHZvaWQgMCx2b2lkIDAsTUUpO3JldHVybiBuPT1udWxsP014KCk6bn07ClFnPWZ1bmN0aW9uKG4sVyxEKXtVSyhuKTt2YXIgYj1uLmw5LHY9YltiNF18MDtpZihXPT1udWxsKXJldHVybiB1VyhiLHYsMyksbjtpZighQXJyYXkuaXNBcnJheShXKSl0aHJvdyBjMigpO3ZhciBrPVc9PT16ej83OldbYjRdfDAsaD1rLHg9RkYoayksTD14fHxPYmplY3QuaXNGcm96ZW4oVyk7eHx8KGs9MCk7THx8KFc9Wy4uLlddLGg9MCxrPWpXKGssdiksTD0hMSk7a3w9NTt4PSg0Jms/NTEyJms/NTEyOjEwMjQmaz8xMDI0OjA6dm9pZCAwKT8/MTAyNDtrfD14O2ZvcihsZXQgZT0wO2U8Vy5sZW5ndGg7ZSsrKXtsZXQgRz1XW2VdLHI9RChHLHgpO09iamVjdC5pcyhHLHIpfHwoTCYmKFc9Wy4uLlddLGg9MCxrPWpXKGssdiksTD0hMSksV1tlXT1yKX1rIT09aCYmKEwmJihXPVsuLi5XXSxrPWpXKGssdikpLFdbYjRdPWspO3VXKGIsdiwzLFcpO3JldHVybiBufTsKZy5WZz1mdW5jdGlvbihuLFcsRCxiLHYpe1VLKG4pO3ZhciBrPW4ubDk7dVcoayxrW2I0XXwwLFcsKGI9PT0iMCI/TnVtYmVyKEQpPT09MDpEPT09Yik/dm9pZCAwOkQsdik7cmV0dXJuIG59OwpjSD1mdW5jdGlvbihuLFcsRCl7aWYoVyYyKXRocm93IEVycm9yKCk7dmFyIGI9TDUoVyksdj1kZyhuLEQsYiksaz12PT09eno/Nzp2W2I0XXwwLGg9bFcoayxXKTtpZigyJmh8fEZGKGgpfHwxNiZoKWg9PT1rfHxGRihoKXx8KHZbYjRdPWgpLHY9Wy4uLnZdLGs9MCxoPWpXKGgsVyksdVcobixXLEQsdixiKTtoJj0tMTM7aCE9PWsmJih2W2I0XT1oKTtyZXR1cm4gdn07CkQyPWZ1bmN0aW9uKG4sVyxELGIpe1VLKG4pO3ZhciB2PW4ubDksaz12W2I0XXwwO2lmKGI9PW51bGwpe2xldCBoPWF6KHYpO2lmKG5uKGgsdixrLEQpPT09VyloLnNldChELDApO2Vsc2UgcmV0dXJuIG59ZWxzZSBrPVdXKHYsayxELFcpO3VXKHYsayxXLGIpO3JldHVybiBufTsKYmE9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9bltiNF18MCxrPUw1KHYpO3Y9V1cobix2LEQsVyxrKTt1VyhuLHYsVyxiLGspfTsKdlc9ZnVuY3Rpb24obixXLEQpe249bi5sOTtyZXR1cm4gbm4oYXoobiksbix2b2lkIDAsVyk9PT1EP0Q6LTF9Owphej1mdW5jdGlvbihuKXtyZXR1cm4gbltrOV0/PyhuW2s5XT1uZXcgTWFwKX07CldXPWZ1bmN0aW9uKG4sVyxELGIsdil7Yj09PTB8fEQuaW5jbHVkZXMoYik7dmFyIGs9YXoobiksaD1ubihrLG4sVyxELHYpO2ghPT1iJiYoaCYmKFc9dVcobixXLGgsdm9pZCAwLHYpKSxrLnNldChELGIpKTtyZXR1cm4gV307Cm5uPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bi5nZXQoYik7aWYoayE9bnVsbClyZXR1cm4gaztrPTA7Zm9yKGxldCBoPTA7aDxiLmxlbmd0aDtoKyspe2xldCB4PWJbaF07RUsoVyx4LHYpIT1udWxsJiYoayE9PTAmJihEPXVXKFcsRCxrLHZvaWQgMCx2KSksaz14KX1uLnNldChiLGspO3JldHVybiBrfTsKaFM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5bYjRdfDAsdj1MNShiKSxrPUVLKG4sRCx2KTtpZihrIT1udWxsJiZrW3ZIXT09PWt2KXtpZighdjkoaykpcmV0dXJuIFpSKGspLGsubDk7dmFyIGg9ay5sOX1lbHNlIEFycmF5LmlzQXJyYXkoaykmJihoPWspO2lmKGgpe2xldCB4PWhbYjRdfDA7eCYyJiYoaD1tXyhoLHgpKX1oPVNXKGgsVyk7aCE9PWsmJnVXKG4sYixELGgsdik7cmV0dXJuIGh9Owp4OT1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSExO2I9RUsobixiLHYsaD0+e3ZhciB4PWh2KGgsRCxXKTtrPXghPT1oJiZ4IT1udWxsO3JldHVybiB4fSk7CmlmKGIhPW51bGwpcmV0dXJuIGsmJiF2OShiKSYmeWcobixXKSxifTsKZUU9ZnVuY3Rpb24obixXLEQsYil7bj1uLmw5OyhEPXg5KG4sbltiNF18MCxXLEQsYikpfHwoRD1XW0xuXSl8fChiPW5ldyBXLEQ9Yi5sOSxEW2I0XXw9MzQsRD1XW0xuXT1iKTtyZXR1cm4gRH07CmdlPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4ubDksaz12W2I0XXwwO1c9eDkodixrLFcsRCxiKTtpZihXPT1udWxsKXJldHVybiBXO2s9dltiNF18MDtpZighdjkobixrKSl7bGV0IGg9UEgoVyk7aCE9PVcmJihaUihuKSYmKHY9bi5sOSxrPXZbYjRdfDApLFc9aCxrPXVXKHYsayxELFcsYikseWcodixrKSl9cmV0dXJuIFd9OwpxSD1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1uLmw5O3JldHVybiBYXyhuLHYsdltiNF18MCxXLEQsMSxiKX07ClhfPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCxMKXt2YXIgZT12OShuLEQpO2s9ZT8xOms7eD0hIXh8fGs9PT0zO2U9TCYmIWU7KGs9PT0yfHxlKSYmWlIobikmJihXPW4ubDksRD1XW2I0XXwwKTtuPWRnKFcsdixoKTt2YXIgRz1uPT09eno/NzpuW2I0XXwwLHI9bFcoRyxEKTtpZihMPSEoNCZyKSl7dmFyIE49bixIPUQ7bGV0IEE9ISEoMiZyKTtBJiYoSHw9Mik7bGV0IHk9IUEsVD0hMCx6PTAsQz0wO2Zvcig7ejxOLmxlbmd0aDt6Kyspe2xldCBRPWh2KE5bel0sYixIKTtpZihRIGluc3RhbmNlb2YgYil7aWYoIUEpe2xldCBWPXY5KFEpO3kmJih5PSFWKTtUJiYoVD1WKX1OW0MrK109UX19Qzx6JiYoTi5sZW5ndGg9Qyk7cnw9NDtyPVQ/ciYtNDA5NzpyfDQwOTY7cj15P3J8ODpyJi05fXIhPT1HJiYobltiNF09ciwyJnImJk9iamVjdC5mcmVlemUobikpO2lmKGUmJiEoOCZyfHwhbi5sZW5ndGgmJihrPT09MXx8KGshPT00PzA6MiZyfHwhKDE2JnIpJiYzMiZEKSkpKXtGRihyKSYmKG49ClsuLi5uXSxyPWpXKHIsRCksRD11VyhXLEQsdixuLGgpKTtiPW47ZT1yO2ZvcihHPTA7RzxiLmxlbmd0aDtHKyspTj1iW0ddLHI9UEgoTiksTiE9PXImJihiW0ddPXIpO2V8PTg7cj1lPWIubGVuZ3RoP2V8NDA5NjplJi00MDk3O25bYjRdPXJ9cmV0dXJuIG49Q0cobixyLFcsRCx2LGgsayxMLHgpfTsKVkc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ubDk7cmV0dXJuIFhfKG4sYixiW2I0XXwwLFcsRCx2b2lkIDA9PT1HJD8yOjQsdm9pZCAwLCExLCEwKX07CnRTPWZ1bmN0aW9uKG4sVyl7biE9bnVsbD9iVyhuLFcpOm49dm9pZCAwO3JldHVybiBufTsKJDk9ZnVuY3Rpb24obixXLEQsYix2KXtiPXRTKGIsVyk7b3oobixELGIsdik7YiYmIXY5KGIpJiZ5ZyhuLmw5KTtyZXR1cm4gbn07CnJlPWZ1bmN0aW9uKG4sVyxELGIsdil7dj10Uyh2LFcpO0QyKG4sRCxiLHYpO3YmJiF2OSh2KSYmeWcobi5sOSk7cmV0dXJuIG59OwpzVj1mdW5jdGlvbihuLFcsRCxiKXtVSyhuKTt2YXIgdj1uLmw5LGs9dltiNF18MDtpZihiPT1udWxsKXJldHVybiB1Vyh2LGssRCksbjtpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBjMigpO3ZhciBoPWI9PT16ej83OmJbYjRdfDAseD1oLEw9RkYoaCksZT1MfHxPYmplY3QuaXNGcm96ZW4oYiksRz0hMCxyPSEwO2ZvcihsZXQgSD0wO0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj1iW0hdO2JXKE4sVyk7THx8KE49djkoTiksRyYmKEc9IU4pLHImJihyPU4pKX1MfHwoaD1HPzEzOjUsaD1yP2gmLTQwOTc6aHw0MDk2KTtlJiZoPT09eHx8KGI9Wy4uLmJdLHg9MCxoPWpXKGgsaykpO2ghPT14JiYoYltiNF09aCk7az11Vyh2LGssRCxiKTsyJmh8fCEoNDA5NiZofHwxNiZoKXx8eWcodixrKTtyZXR1cm4gbn07CmpXPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG49KDImVz9ufDI6biYtMykmLTI3M307Ck5IPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWI7VUsobik7Yj1uLmw5O249WF8obixiLGJbYjRdfDAsRCxXLDIsdm9pZCAwLCEwKTt2PXYhPW51bGw/YlcodixEKTpuZXcgRDtuLnB1c2godik7Vz1EPW49PT16ej83Om5bYjRdfDA7KHY9djkodikpPyhEJj0tOSxuLmxlbmd0aD09PTEmJihEJj0tNDA5NykpOkR8PTQwOTY7RCE9PVcmJihuW2I0XT1EKTt2fHx5ZyhiKX07CmFQPWZ1bmN0aW9uKG4sVyxEPTApe3JldHVybiBFXyhpVyhuLFcpKT8/RH07CnBuPWZ1bmN0aW9uKG4sVyxEPXYzaSl7cmV0dXJuIGlXKG4sVyx2b2lkIDAsdm9pZCAwLEZEKT8/RH07Clk5PWZ1bmN0aW9uKG4sVyxEPSIiLGIpe3JldHVybiBnLkRSKGlXKG4sVyxiKSk/P0R9OwpIVz1mdW5jdGlvbihuLFcpe249aVcobixXKTtyZXR1cm4obj09bnVsbD9uOlA5KG4pP258MDp2b2lkIDApPz8wfTsKSlM9ZnVuY3Rpb24obixXKXtyZXR1cm4gZy5EUihpVyhuLFcsdm9pZCAwLGZuKSl9OwpJWT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG96KG4sVyxnLmw0KEQpKX07CmcuU0U9ZnVuY3Rpb24obixXLEQpe3JldHVybiBveihuLFcsV0goRCkpfTsKQVM9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIGcuVmcobixXLFdIKEQpLCIiLGIpfTsKS249ZnVuY3Rpb24obixXLEQpe2lmKEQhPW51bGwpe2lmKCFQOShEKSl0aHJvdyBjMigiZW51bSIpO0R8PTB9cmV0dXJuIG96KG4sVyxEKX07ClBXPWZ1bmN0aW9uKG4sVyl7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm4gbmV3IE9WKEMwKG4pLFcpO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG5ldyBPVihuZXcgVWludDhBcnJheShuKSxXKTtpZihuLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSlyZXR1cm4gbmV3IE9WKG4sITEpO2lmKG4uY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcilyZXR1cm4gbj1uZXcgVWludDhBcnJheShuKSxuZXcgT1YobiwhMSk7aWYobi5jb25zdHJ1Y3Rvcj09PUZRKXJldHVybiBXPVFsKG4pfHxuZXcgVWludDhBcnJheSgwKSxuZXcgT1YoVywhMCxuKTtpZihuIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gbj1uLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9uOm5ldyBVaW50OEFycmF5KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpLG5ldyBPVihuLCExKTt0aHJvdyBFcnJvcigpO307CmcuVVY9ZnVuY3Rpb24obixXKXt2YXIgRD0wLGI9MCx2PTAsaz1uLkosaD1uLk47ZG97dmFyIHg9a1toKytdO0R8PSh4JjEyNyk8PHY7dis9N313aGlsZSh2PDMyJiZ4JjEyOCk7aWYodj4zMilmb3IoYnw9KHgmMTI3KT4+NCx2PTM7djwzMiYmeCYxMjg7dis9Nyl4PWtbaCsrXSxifD0oeCYxMjcpPDx2O1oyKG4saCk7aWYoISh4JjEyOCkpcmV0dXJuIFcoRD4+PjAsYj4+PjApO3Rocm93IEVycm9yKCk7fTsKeTE9ZnVuY3Rpb24obil7Zm9yKHZhciBXPTAsRD1uLk4sYj1EKzEwLHY9bi5KO0Q8Yjspe2xldCBrPXZbRCsrXTtXfD1rO2lmKChrJjEyOCk9PT0wKXJldHVybiBaMihuLEQpLCEhKFcmMTI3KX10aHJvdyBFcnJvcigpO307CmcuRVY9ZnVuY3Rpb24obil7dmFyIFc9bi5KLEQ9bi5OLGI9V1tEKytdLHY9YiYxMjc7aWYoYiYxMjgmJihiPVdbRCsrXSx2fD0oYiYxMjcpPDw3LGImMTI4JiYoYj1XW0QrK10sdnw9KGImMTI3KTw8MTQsYiYxMjgmJihiPVdbRCsrXSx2fD0oYiYxMjcpPDwyMSxiJjEyOCYmKGI9V1tEKytdLHZ8PWI8PDI4LGImMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4KSkpKSl0aHJvdyBFcnJvcigpO1oyKG4sRCk7cmV0dXJuIHZ9Owp1YT1mdW5jdGlvbihuKXt2YXIgVz1uLkosRD1uLk4sYj1XW0QrMF0sdj1XW0QrMV0saz1XW0QrMl07Vz1XW0QrM107aWEobiw0KTtyZXR1cm4oYjw8MHx2PDw4fGs8PDE2fFc8PDI0KT4+PjB9OwpvWT1mdW5jdGlvbihuKXt2YXIgVz11YShuKTtuPXVhKG4pO3JldHVybiBmNShXLG4pfTsKZy5kZT1mdW5jdGlvbihuKXt2YXIgVz1uLmo7V3x8KFc9bi5KLFc9bi5qPW5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoKSk7Vz1XLmdldEZsb2F0NjQobi5OLCEwKTtpYShuLDgpO3JldHVybiBXfTsKazQyPWZ1bmN0aW9uKG4pe3JldHVybiBnLkVWKG4pfTsKWjI9ZnVuY3Rpb24obixXKXtuLk49VztpZihXPm4uVyl0aHJvdyBFcnJvcigpO307CmlhPWZ1bmN0aW9uKG4sVyl7WjIobixuLk4rVyl9Owp6JD1mdW5jdGlvbihuLFcpe2lmKFc8MCl0aHJvdyBFcnJvcigpO3ZhciBEPW4uTjtXPUQrVztpZihXPm4uVyl0aHJvdyBFcnJvcigpO24uTj1XO3JldHVybiBEfTsKbGE9ZnVuY3Rpb24obixXKXtpZihXPT0wKXJldHVybiBNeCgpO3ZhciBEPXokKG4sVyk7bi5uXyYmbi5WP0Q9bi5KLnN1YmFycmF5KEQsRCtXKToobj1uLkosVz1EK1csRD1EPT09Vz9uZXcgVWludDhBcnJheSgwKTpuLnNsaWNlKEQsVykpO3JldHVybiBELmxlbmd0aD09MD9NeCgpOm5ldyBGUShELHdXKX07CkNuPWZ1bmN0aW9uKG4sVyxELGIpe2lmKFQkLmxlbmd0aCl7bGV0IHY9VCQucG9wKCk7akUodixiKTt2Lk4uaW5pdChuLFcsRCxiKTtyZXR1cm4gdn1yZXR1cm4gbmV3IGhCUyhuLFcsRCxiKX07CmpFPWZ1bmN0aW9uKG4se0diOlc9ITF9PXt9KXtuLkdiPVd9OwpGXz1mdW5jdGlvbihuKXt2YXIgVz1uLk47aWYoVy5OPT1XLlcpcmV0dXJuITE7bi5YPW4uTi5OO3ZhciBEPWcuRVYobi5OKT4+PjA7Vz1EPj4+MztEJj03O2lmKCEoRD49MCYmRDw9NSkpdGhyb3cgRXJyb3IoKTtpZihXPDEpdGhyb3cgRXJyb3IoKTtuLlc9VztuLko9RDtyZXR1cm4hMH07CndlPWZ1bmN0aW9uKG4pe3RyeXtzd2l0Y2gobi5KKXtjYXNlIDA6bi5KIT0wP3dlKG4pOnkxKG4uTik7YnJlYWs7Y2FzZSAxOmlhKG4uTiw4KTticmVhaztjYXNlIDI6aWYobi5KIT0yKXdlKG4pO2Vsc2V7dmFyIFc9Zy5FVihuLk4pPj4+MDtpYShuLk4sVyl9YnJlYWs7Y2FzZSA1OmlhKG4uTiw0KTticmVhaztjYXNlIDM6TUgoKTtsZXQgRD1uLlc7dHJ5e2Rve2lmKCFGXyhuKSl0aHJvdyBFcnJvcigpO2lmKG4uSj09NCl7aWYobi5XIT1EKXRocm93IEVycm9yKCk7YnJlYWt9d2Uobil9d2hpbGUoMSl9Y2F0Y2goYil7aWYoYiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGI7fWZpbmFsbHl7Ulk+MCYmUlktLX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fX1jYXRjaChEKXtpZihEIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgRDt9fTsKTUg9ZnVuY3Rpb24oKXtpZihSWT49MTAwKXRocm93IG5ldyBTeW50YXhFcnJvcjtSWSsrfTsKUTE9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5XLHY9Zy5FVihuLk4pPj4+MDt2PW4uTi5OK3Y7dmFyIGs9di1iO2s8PTAmJihuLk4uVz12LEQoVyxuLHZvaWQgMCx2b2lkIDAsdm9pZCAwKSxrPXYtbi5OLk4pO2lmKGspdGhyb3cgRXJyb3IoKTtuLk4uTj12O24uTi5XPWJ9OwphWT1mdW5jdGlvbihuKXt2YXIgVz1nLkVWKG4uTik+Pj4wLEQ9bi5OO249eiQoRCxXKTt2YXIgYj1ELko7KEQ9VjEpfHwoRD1WMT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iix7ZmF0YWw6ITB9KSk7Vz1uK1c7Yj1uPT09MCYmVz09PWIubGVuZ3RoP2I6Yi5zdWJhcnJheShuLFcpO3RyeXt2YXIgdj1ELmRlY29kZShiKX1jYXRjaChrKXtpZihjVz09PXZvaWQgMCl7dHJ5e0QuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsxMjhdKSl9Y2F0Y2goaCl7fXRyeXtELmRlY29kZShuZXcgVWludDhBcnJheShbOTddKSksY1c9ITB9Y2F0Y2goaCl7Y1c9ITF9fSFjVyYmKFYxPXZvaWQgMCk7dGhyb3cgazt9cmV0dXJuIHZ9OwpEOT1mdW5jdGlvbihuKXt2YXIgVz1nLkVWKG4uTik+Pj4wO3JldHVybiBsYShuLk4sVyl9OwpiRz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5FVihuLk4pPj4+MDtmb3IoYj1uLk4uTitiO24uTi5OPGI7KUQucHVzaChXKG4uTikpfTsKa209ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2eShuJjQyOTQ5NjcyOTUsTWF0aC5mbG9vcihuLzQyOTQ5NjcyOTYpKX07CnhtPWZ1bmN0aW9uKG4pe2lmKCFuKXJldHVybiBoM3x8KGgzPW5ldyB2eSgwLDApKTtpZighL15cZCskLy50ZXN0KG4pKXJldHVybiBudWxsO1NYKG4pO3JldHVybiBuZXcgdnkoclosc18pfTsKTGg9ZnVuY3Rpb24obil7cmV0dXJuIG4uSj09PTA/bmV3IHZ5KDAsMSt+bi5OKTpuZXcgdnkofm4uSisxLH5uLk4pfTsKeFVqPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgZUMobiY0Mjk0OTY3Mjk1LE1hdGguZmxvb3Iobi80Mjk0OTY3Mjk2KSl9OwpYdD1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gZ0d8fChnRz1uZXcgZUMoMCwwKSk7aWYoIS9eLT9cZCskLy50ZXN0KG4pKXJldHVybiBudWxsO1NYKG4pO3JldHVybiBuZXcgZUMoclosc18pfTsKWW09ZnVuY3Rpb24obixXLEQpe2lmKHR5cGVvZiBCaWdJbnQ2NEFycmF5IT09InVuZGVmaW5lZCIpcmV0dXJuIHFmfHwocWY9bmV3IEJpZ0ludDY0QXJyYXkoMSksR1M9bmV3IFVpbnQzMkFycmF5KHFmLmJ1ZmZlcikscWZbMF09QmlnSW50KDEpLHQzPUdTWzBdPT09MSkscWZbMF09bixuPXQzPzA6MSxuZXcgVyhHU1tuXSxHU1sxLW5dKTskbXx8KHJHPUJpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiksTmY9QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSxwaD1CaWdJbnQoNDI5NDk2NzI5NSksJG09QmlnSW50KDMyKSk7aWYobj49ckcmJm48PU5mKXJldHVybiBEKE51bWJlcihuKSk7bj1CaWdJbnQuYXNVaW50Tig2NCxuKTtyZXR1cm4gbmV3IFcoTnVtYmVyKG4mcGgpLE51bWJlcihuPj4kbSkpfTsKSHk9ZnVuY3Rpb24obixXLEQpe2Zvcig7RD4wfHxXPjEyNzspbi5OLnB1c2goVyYxMjd8MTI4KSxXPShXPj4+N3xEPDwyNSk+Pj4wLEQ+Pj49NztuLk4ucHVzaChXKX07CkozPWZ1bmN0aW9uKG4sVyl7bi5OLnB1c2goVz4+PjAmMjU1KTtuLk4ucHVzaChXPj4+OCYyNTUpO24uTi5wdXNoKFc+Pj4xNiYyNTUpO24uTi5wdXNoKFc+Pj4yNCYyNTUpfTsKSXg9ZnVuY3Rpb24obixXKXtmb3IoO1c+MTI3OyluLk4ucHVzaChXJjEyN3wxMjgpLFc+Pj49NztuLk4ucHVzaChXKX07ClNDPWZ1bmN0aW9uKG4sVyl7aWYoVz49MClJeChuLFcpO2Vsc2V7Zm9yKGxldCBEPTA7RDw5O0QrKyluLk4ucHVzaChXJjEyN3wxMjgpLFc+Pj03O24uTi5wdXNoKDEpfX07CkEzPWZ1bmN0aW9uKG4sVyl7Vy5sZW5ndGghPT0wJiYobi5XLnB1c2goVyksbi5KKz1XLmxlbmd0aCl9OwptND1mdW5jdGlvbihuLFcsRCl7SXgobi5OLFcqOCtEKX07CktoPWZ1bmN0aW9uKG4sVyl7bTQobixXLDIpO1c9bi5OLmVuZCgpO0EzKG4sVyk7Vy5wdXNoKG4uSik7cmV0dXJuIFd9OwpPcz1mdW5jdGlvbihuLFcpe3ZhciBEPVcucG9wKCk7Zm9yKEQ9bi5KK24uTi5sZW5ndGgoKS1EO0Q+MTI3OylXLnB1c2goRCYxMjd8MTI4KSxEPj4+PTcsbi5KKys7Vy5wdXNoKEQpO24uSisrfTsKeW09ZnVuY3Rpb24obixXLEQpe2lmKEQhPW51bGwpc3dpdGNoKFB5KEQpLG00KG4sVywxKSx0eXBlb2YgRCl7Y2FzZSAibnVtYmVyIjpuPW4uTjtOMyhEKTtKMyhuLHJaKTtKMyhuLHNfKTticmVhaztjYXNlICJiaWdpbnQiOkQ9WW0oRCx2eSxrbSk7bj1uLk47Vz1ELk47SjMobixELkopO0ozKG4sVyk7YnJlYWs7ZGVmYXVsdDpEPXhtKEQpLG49bi5OLFc9RC5OLEozKG4sRC5KKSxKMyhuLFcpfX07CkVzPWZ1bmN0aW9uKG4sVyxEKXtEIT1udWxsJiYoRD1wYXJzZUludChELDEwKSxtNChuLFcsMCksU0Mobi5OLEQpKX07CmlHPWZ1bmN0aW9uKG4sVyxEKXttNChuLFcsMik7SXgobi5OLEQubGVuZ3RoKTtBMyhuLG4uTi5lbmQoKSk7QTMobixEKX07ClB5PWZ1bmN0aW9uKG4pe3N3aXRjaCh0eXBlb2Ygbil7Y2FzZSAic3RyaW5nIjp4bShuKX19Owp1Rz1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgInN0cmluZyI6bi5sZW5ndGgmJm5bMF09PT0iLSI/eG0obi5zdWJzdHJpbmcoMSkpOnhtKG4pfX07Cm94PWZ1bmN0aW9uKCl7dmFyIG49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aHJvdyBFcnJvcigpO319O09iamVjdC5zZXRQcm90b3R5cGVPZihuLG4ucHJvdG90eXBlKTtyZXR1cm4gbn07CmRHPWZ1bmN0aW9uKG4sVyl7aWYoVz09bnVsbHx8Vz09IiIpcmV0dXJuIG5ldyBuO1c9SlNPTi5wYXJzZShXKTtpZighQXJyYXkuaXNBcnJheShXKSl0aHJvdyBFcnJvcigiZG5hcnIiKTtXW2I0XXw9MzI7cmV0dXJuIG5ldyBuKFcpfTsKVFM9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IHpTKG4sVyxsRyl9OwpDaD1mdW5jdGlvbihuLFcsRCxiLHYpe1c9akMoVyxiKTtXIT1udWxsJiYoRD1LaChuLEQpLHYoVyxuKSxPcyhuLEQpKX07CndHPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWJbbl07aWYodilyZXR1cm4gdjt2PXt9O3Yud2s9Yjt2LlJyPW4zMihiWzBdKTt2YXIgaz1iWzFdLGg9MTtrJiZrLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYodi5leHRlbnNpb25zPWssaz1iWysraF0sdHlwZW9mIGs9PT0iZnVuY3Rpb24iJiYodi5kJD0hMCxCeT8/KEJ5PWspLEZ0Pz8oRnQ9YltoKzFdKSxrPWJbaCs9Ml0pKTtmb3IodmFyIHg9e307ayYmQXJyYXkuaXNBcnJheShrKSYmay5sZW5ndGgmJnR5cGVvZiBrWzBdPT09Im51bWJlciImJmtbMF0+MDspe2Zvcih2YXIgTD0wO0w8ay5sZW5ndGg7TCsrKXhba1tMXV09aztrPWJbKytoXX1mb3IoTD0xO2shPT12b2lkIDA7KXt0eXBlb2Ygaz09PSJudW1iZXIiJiYoTCs9ayxrPWJbKytoXSk7bGV0IHI7dmFyIGU9dm9pZCAwO2sgaW5zdGFuY2VvZiB6Uz9yPWs6KHI9TGN0LGgtLSk7aWYocj8uTil7az1iWysraF07ZT1iO3ZhciBHPWg7dHlwZW9mIGs9PT0iZnVuY3Rpb24iJiYoaz1rKCksCmVbR109ayk7ZT1rfWs9YlsrK2hdO0c9TCsxO3R5cGVvZiBrPT09Im51bWJlciImJms8MCYmKEctPWssaz1iWysraF0pO2Zvcig7TDxHO0wrKyl7bGV0IE49eFtMXTtlP0QodixMLHIsZSxOKTpXKHYsTCxyLE4pfX1yZXR1cm4gYltuXT12fTsKTWY9ZnVuY3Rpb24obil7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/blswXWluc3RhbmNlb2YgelM/bjpbZUJ0LG5dOltuLHZvaWQgMF19OwpSeD1mdW5jdGlvbihuLFc9IiIsRD0iIil7bj1uZXcgZy53WihuLCEwKTtuLnNldCgiYWxyIiwieWVzIik7RCYmKEQ9ZVgoODQsNjU1MyxNMygxOCw0MjYwLEQpKSxuW0lbMzRdXShXLFIwKDEzLDg3MTYsRCkpKTtyZXR1cm4gbn07CmpDPWZ1bmN0aW9uKG4sVyl7aWYobiBpbnN0YW5jZW9mIGcuUW0pcmV0dXJuIG4ubDk7aWYoQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gU1cobixXKX07ClZtPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQuY2o7bltXXT1iPyhrLGgseCk9PnYoayxoLHgsYik6dn07CmF4PWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9RC5jaixoLHg7bltXXT0oTCxlLEcpPT5rKEwsZSxHLHh8fCh4PXdHKGN5LFZtLGF4LGIpLlJyKSxofHwoaD1uOChiKSksdil9OwpuOD1mdW5jdGlvbihuKXt2YXIgVz1uW1dPXTtpZihXIT1udWxsKXJldHVybiBXO3ZhciBEPXdHKGN5LFZtLGF4LG4pO1c9RC5kJD8oYix2KT0+QnkoYix2LEQpOihiLHYpPT57YTp7TUgoKTsKdHJ5e2Zvcig7Rl8odikmJnYuSiE9NDspe2xldCBOPXYuVyxIPURbTl07aWYoSD09bnVsbCl7bGV0IEE9RC5leHRlbnNpb25zO2lmKEEpe2xldCB5PUFbTl07aWYoeSl7bGV0IFQ9ZzNVKHkpO1QhPW51bGwmJihIPURbTl09VCl9fX1pZihIPT1udWxsfHwhSCh2LGIsTikpe3ZhciBrPXY7bGV0IEE9ay5YO3dlKGspO2lmKGsuR2IpdmFyIGg9dm9pZCAwO2Vsc2V7bGV0IHk9ay5OLk4tQTtrLk4uTj1BO2g9bGEoay5OLHkpfWs9dm9pZCAwO3ZhciB4PWIsTD1OLGU9aDtlJiYoKGs9eFtMR10/Pyh4W0xHXT1uZXcgWEYpKVtMXT8/KGtbTF09W10pKS5wdXNoKGUpfX1sZXQgcj1lVyhiKTtyJiYoci5qNz1ELndrW0Q4XSk7dmFyIEc9ITA7YnJlYWsgYX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgcjt9ZmluYWxseXtSWT4wJiZSWS0tfUc9dm9pZCAwfXJldHVybiBHfTsKbltXT109VztuW0Q4XT1YTWkuYmluZChuKTtyZXR1cm4gV307ClhNaT1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj10aGlzW2N5XSxrPXRoaXNbV09dLGg9U1codm9pZCAwLHYuUnIpLHg9ZVcobik7aWYoeCl7dmFyIEw9ITEsZT12LmV4dGVuc2lvbnM7aWYoZSl7dj0oRyxyLE4pPT57aWYoTi5sZW5ndGghPT0wKWlmKGVbcl0pZm9yKGxldCBIIG9mIE4pe0c9Q24oSCk7dHJ5e0w9ITAsayhoLEcpfWZpbmFsbHl7Ry5mcmVlKCl9fWVsc2UgYj8uKG4scixOKX07CmlmKFc9PW51bGwpZ2coeCx2KTtlbHNlIGlmKHghPW51bGwpe2xldCBHPXhbV107RyYmdih4LFcsRyl9aWYoTCl7bGV0IEc9bltiNF18MDtpZihHJjImJkcmMjA0OCYmIUQ/LkpTKXRocm93IEVycm9yKCk7bGV0IHI9TDUoRyksTj0oSCxBKT0+e2lmKEVLKG4sSCxyKSE9bnVsbClzd2l0Y2goRD8uaDQpe2Nhc2UgMTpyZXR1cm47ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31BIT1udWxsJiYoRz11VyhuLEcsSCxBLHIpKTtkZWxldGUgeFtIXX07Clc9PW51bGw/aF8oaCxoW2I0XXwwLChILEEpPT57TihILEEpfSk6TihXLEVLKGgsVyxyKSl9fX19OwpnM1U9ZnVuY3Rpb24obil7bj1NZihuKTt2YXIgVz1uWzBdLmNqO2lmKG49blsxXSl7bGV0IEQ9bjgobiksYj13RyhjeSxWbSxheCxuKS5ScjtyZXR1cm4odixrLGgpPT5XKHYsayxoLGIsRCl9cmV0dXJuIFd9OwpiNj1mdW5jdGlvbihuLFcsRCl7bltXXT1ELlBqfTsKa249ZnVuY3Rpb24obixXLEQsYil7dmFyIHYsayxoPUQuUGo7bltXXT0oeCxMLGUpPT5oKHgsTCxlLGt8fChrPXdHKHZPLGI2LGtuLGIpLlJyKSx2fHwodj1oOShiKSkpfTsKaDk9ZnVuY3Rpb24obil7dmFyIFc9blt4bl07aWYoIVcpe2xldCBEPXdHKHZPLGI2LGtuLG4pO1c9KGIsdik9Pkw4KGIsdixEKTsKblt4bl09V31yZXR1cm4gV307Ckw4PWZ1bmN0aW9uKG4sVyxEKXtoXyhuLG5bYjRdfDAsKGIsdik9PntpZih2IT1udWxsKXt2YXIgaz1xTU0oRCxiKTtrP2soVyx2LGIpOmI8NTAwfHxuNShHNFMsMyl9fSk7CihuPWVXKG4pKSYmZ2cobiwoYix2LGspPT57QTMoVyxXLk4uZW5kKCkpO2ZvcihiPTA7YjxrLmxlbmd0aDtiKyspQTMoVyxRbChrW2JdKXx8bmV3IFVpbnQ4QXJyYXkoMCkpfSl9OwpxTU09ZnVuY3Rpb24obixXKXt2YXIgRD1uW1ddO2lmKEQpcmV0dXJuIEQ7aWYoRD1uLmV4dGVuc2lvbnMpaWYoRD1EW1ddKXtEPU1mKEQpO3ZhciBiPURbMF0uUGo7aWYoRD1EWzFdKXtsZXQgdj1oOShEKSxrPXdHKHZPLGI2LGtuLEQpLlJyO0Q9bi5kJD9GdChrLHYpOihoLHgsTCk9PmIoaCx4LEwsayx2KX1lbHNlIEQ9YjsKcmV0dXJuIG5bV109RH19OwplNj1mdW5jdGlvbihuLFcsRCl7aWYoQXJyYXkuaXNBcnJheShXKSl7dmFyIGI9V1tiNF18MDtpZihiJjQpcmV0dXJuIFc7Zm9yKHZhciB2PTAsaz0wO3Y8Vy5sZW5ndGg7disrKXtsZXQgaD1uKFdbdl0pO2ghPW51bGwmJihXW2srK109aCl9azx2JiYoVy5sZW5ndGg9ayk7bj1ifDE7RCYmKG49KG58NCkmLTE1MzcpO24hPT1iJiYoV1tiNF09bik7RCYmbiYyJiZPYmplY3QuZnJlZXplKFcpO3JldHVybiBXfX07CmcuZ1E9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgelMobixXLEQpfTsKWGY9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgelMobixXLEQpfTsKZy5xWT1mdW5jdGlvbihuLFcsRCl7dVcobixuW2I0XXwwLFcsRCxMNShuW2I0XXwwKSl9OwpnLnQ5PWZ1bmN0aW9uKG4sVyxEKXtXPW0wKFcpO1chPW51bGwmJihtNChuLEQsMSksbj1uLk4sRD1Hdnx8KEd2PW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCkpKSxELnNldEZsb2F0NjQoMCwrVywhMCksclo9RC5nZXRVaW50MzIoMCwhMCksc189RC5nZXRVaW50MzIoNCwhMCksSjMobixyWiksSjMobixzXykpfTsKZy4kbj1mdW5jdGlvbihuLFcsRCl7Vz1DeE0oVyk7aWYoVyE9bnVsbCl7c3dpdGNoKHR5cGVvZiBXKXtjYXNlICJzdHJpbmciOlh0KFcpfWlmKFchPW51bGwpc3dpdGNoKG00KG4sRCwwKSx0eXBlb2YgVyl7Y2FzZSAibnVtYmVyIjpuPW4uTjtwNShXKTtIeShuLHJaLHNfKTticmVhaztjYXNlICJiaWdpbnQiOkQ9WW0oVyxlQyx4VWopO0h5KG4uTixELkosRC5OKTticmVhaztkZWZhdWx0OkQ9WHQoVyksSHkobi5OLEQuSixELk4pfX19OwpnLnJRPWZ1bmN0aW9uKG4sVyxEKXtXPUVfKFcpO1chPW51bGwmJlchPW51bGwmJihtNChuLEQsMCksU0Mobi5OLFcpKX07CnNmPWZ1bmN0aW9uKG4sVyxEKXtXPVc9PW51bGx8fHR5cGVvZiBXPT09ImJvb2xlYW4iP1c6dHlwZW9mIFc9PT0ibnVtYmVyIj8hIVc6dm9pZCAwO1chPW51bGwmJihtNChuLEQsMCksbi5OLk4ucHVzaChXPzE6MCkpfTsKTlk9ZnVuY3Rpb24obixXLEQpe1c9Zy5EUihXKTtXIT1udWxsJiZpRyhuLEQsa0soVykpfTsKcDg9ZnVuY3Rpb24obixXLEQsYix2KXtXPWpDKFcsYik7VyE9bnVsbCYmKEQ9S2gobixEKSx2KFcsbiksT3MobixEKSl9OwpKOT1mdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MSlyZXR1cm4hMTtnLnFZKFcsRCxvWShuLk4pKTtyZXR1cm4hMH07CklfPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKEQsYik9PnthOntsZXQgaz17aEI6ITB9O2ImJk9iamVjdC5hc3NpZ24oayxiKTtEPUNuKEQsdm9pZCAwLHZvaWQgMCxrKTt0cnl7bGV0IGg9bmV3IG4seD1oLmw5O244KFcpKHgsRCk7dmFyIHY9aDticmVhayBhfWNhdGNoKGgpe2lmKGggaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBoO31maW5hbGx5e0QuZnJlZSgpfXY9dm9pZCAwfXJldHVybiB2fX07CmcuQTk9ZnVuY3Rpb24obil7cmV0dXJuIFc9PlM2KFcsbil9OwpnLm1EPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBTNih0aGlzLG4pfX07Cks4PWZ1bmN0aW9uKG4pe3JldHVybiBXPT5kRyhuLFcpfTsKdGpVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFFnKG4sVyxVXyl9Owp1Nj1mdW5jdGlvbihuKXt2YXIgVz1uZXcgZy5PZjtXPWcuU0UoVywxLG4uSik7dmFyIEQ9JFVNKG4pO1c9UWcoVyxELEZTMik7RD1bXTt2YXIgYj1bXTtmb3IodmFyIHYgb2Ygbi5OLmtleXMoKSliLnB1c2godi5zcGxpdCgiLCIpKTtmb3Iodj0wO3Y8Yi5sZW5ndGg7disrKXtsZXQgcj1iW3ZdO3ZhciBrPW4uVyxoPVBPKG4sLi4ucil8fFtdO2xldCBOPVtdO2Zvcih2YXIgeD0wO3g8aC5sZW5ndGg7eCsrKXt2YXIgTD1oW3hdLGU9TCYmTC5OO0w9bmV3IFo4O3N3aXRjaChrKXtjYXNlIDM6ZT1OdW1iZXIoZSk7TnVtYmVyLmlzRmluaXRlKGUpJiZEMihMLDEsVWYsZy5sNChlKSk7YnJlYWs7Y2FzZSAyOkQyKEwsMixVZixnLkFfKE51bWJlcihlKSkpfU4ucHVzaChMKX1mb3Ioaz0wO2s8Ti5sZW5ndGg7aysrKXt4PU5ba107aD1uZXcgeWU7aD0kOShoLFo4LDIseCk7eD1bXTtMPXJGdChuKTtmb3IoZT0wO2U8TC5sZW5ndGg7ZSsrKXt2YXIgRz1MW2VdO2xldCBIPXJbZV0sQT1uZXcgRWY7CnN3aXRjaChHKXtjYXNlIDM6RDIoQSwxLGk2LFdIKFN0cmluZyhIKSkpO2JyZWFrO2Nhc2UgMjpHPU51bWJlcihIKTtOdW1iZXIuaXNGaW5pdGUoRykmJkQyKEEsMixpNixnLnlQKEcpKTticmVhaztjYXNlIDE6RDIoQSwzLGk2LE9fKEg9PT0idHJ1ZSIpKX14LnB1c2goQSl9c1YoaCxFZiwxLHgpO0QucHVzaChoKX19c1YoVyx5ZSw0LEQpO3JldHVybiBXfTsKb189ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChuKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7bi5pbmRleE9mKCJibG9iOiIpPT09MCYmKG49bi5zdWJzdHJpbmcoNSkpO249bi5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07bj1uLnRvTG93ZXJDYXNlKCk7bi5pbmRleE9mKCIvLyIpPT0wJiYobj13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrbik7L15bXHdcLV0qOlwvXC8vLnRlc3Qobil8fChuPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgVz1uLnN1YnN0cmluZyhuLmluZGV4T2YoIjovLyIpKzMpLEQ9Vy5pbmRleE9mKCIvIik7RCE9LTEmJihXPVcuc3Vic3RyaW5nKDAsRCkpO0Q9bi5zdWJzdHJpbmcoMCxuLmluZGV4T2YoIjovLyIpKTtpZighRCl0aHJvdyBFcnJvcigiVVJJIGlzIG1pc3NpbmcgcHJvdG9jb2w6ICIrbik7aWYoRCE9PSJodHRwIiYmRCE9PSJodHRwcyImJkQhPT0iY2hyb21lLWV4dGVuc2lvbiImJgpEIT09Im1vei1leHRlbnNpb24iJiZEIT09ImZpbGUiJiZEIT09ImFuZHJvaWQtYXBwIiYmRCE9PSJjaHJvbWUtc2VhcmNoIiYmRCE9PSJjaHJvbWUtdW50cnVzdGVkIiYmRCE9PSJjaHJvbWUiJiZEIT09ImFwcCImJkQhPT0iZGV2dG9vbHMiKXRocm93IEVycm9yKCJJbnZhbGlkIFVSSSBzY2hlbWUgaW4gb3JpZ2luOiAiK0QpO249IiI7dmFyIGI9Vy5pbmRleE9mKCI6Iik7aWYoYiE9LTEpe3ZhciB2PVcuc3Vic3RyaW5nKGIrMSk7Vz1XLnN1YnN0cmluZygwLGIpO2lmKEQ9PT0iaHR0cCImJnYhPT0iODAifHxEPT09Imh0dHBzIiYmdiE9PSI0NDMiKW49IjoiK3Z9cmV0dXJuIEQrIjovLyIrVytufTsKc00yPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZbMF09MTczMjU4NDE5Mzt2WzFdPTQwMjMyMzM0MTc7dlsyXT0yNTYyMzgzMTAyO3ZbM109MjcxNzMzODc4O3ZbNF09MzI4NTM3NzUyMDtHPWU9MH0KZnVuY3Rpb24gVyhyKXtmb3IodmFyIE49aCxIPTA7SDw2NDtIKz00KU5bSC80XT1yW0hdPDwyNHxyW0grMV08PDE2fHJbSCsyXTw8OHxyW0grM107Zm9yKEg9MTY7SDw4MDtIKyspcj1OW0gtM11eTltILThdXk5bSC0xNF1eTltILTE2XSxOW0hdPShyPDwxfHI+Pj4zMSkmNDI5NDk2NzI5NTtyPXZbMF07dmFyIEE9dlsxXSx5PXZbMl0sVD12WzNdLHo9dls0XTtmb3IoSD0wO0g8ODA7SCsrKXtpZihIPDQwKWlmKEg8MjApe3ZhciBDPVReQSYoeV5UKTt2YXIgUT0xNTE4NTAwMjQ5fWVsc2UgQz1BXnleVCxRPTE4NTk3NzUzOTM7ZWxzZSBIPDYwPyhDPUEmeXxUJihBfHkpLFE9MjQwMDk1OTcwOCk6KEM9QV55XlQsUT0zMzk1NDY5NzgyKTtDPSgocjw8NXxyPj4+MjcpJjQyOTQ5NjcyOTUpK0MreitRK05bSF0mNDI5NDk2NzI5NTt6PVQ7VD15O3k9KEE8PDMwfEE+Pj4yKSY0Mjk0OTY3Mjk1O0E9cjtyPUN9dlswXT12WzBdK3ImNDI5NDk2NzI5NTt2WzFdPXZbMV0rQSY0Mjk0OTY3Mjk1O3ZbMl09CnZbMl0reSY0Mjk0OTY3Mjk1O3ZbM109dlszXStUJjQyOTQ5NjcyOTU7dls0XT12WzRdK3omNDI5NDk2NzI5NX0KZnVuY3Rpb24gRChyLE4pe2lmKHR5cGVvZiByPT09InN0cmluZyIpe3I9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHIpKTtmb3IodmFyIEg9W10sQT0wLHk9ci5sZW5ndGg7QTx5OysrQSlILnB1c2goci5jaGFyQ29kZUF0KEEpKTtyPUh9Tnx8KE49ci5sZW5ndGgpO0g9MDtpZihlPT0wKWZvcig7SCs2NDxOOylXKHIuc2xpY2UoSCxIKzY0KSksSCs9NjQsRys9NjQ7Zm9yKDtIPE47KWlmKGtbZSsrXT1yW0grK10sRysrLGU9PTY0KWZvcihlPTAsVyhrKTtIKzY0PE47KVcoci5zbGljZShILEgrNjQpKSxIKz02NCxHKz02NH0KZnVuY3Rpb24gYigpe3ZhciByPVtdLE49Ryo4O2U8NTY/RCh4LDU2LWUpOkQoeCw2NC0oZS01NikpO2Zvcih2YXIgSD02MztIPj01NjtILS0pa1tIXT1OJjI1NSxOPj4+PTg7VyhrKTtmb3IoSD1OPTA7SDw1O0grKylmb3IodmFyIEE9MjQ7QT49MDtBLT04KXJbTisrXT12W0hdPj5BJjI1NTtyZXR1cm4gcn0KZm9yKHZhciB2PVtdLGs9W10saD1bXSx4PVsxMjhdLEw9MTtMPDY0OysrTCl4W0xdPTA7dmFyIGUsRztuKCk7cmV0dXJue3Jlc2V0Om4sdXBkYXRlOkQsZGlnZXN0OmIsSFU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9YigpLE49IiIsSD0wO0g8ci5sZW5ndGg7SCsrKU4rPSIwMTIzNDU2Nzg5QUJDREVGIi5jaGFyQXQoTWF0aC5mbG9vcihyW0hdLzE2KSkrIjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChyW0hdJTE2KTtyZXR1cm4gTn19fTsKZFE9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVN0cmluZyhnLnFpLmxvY2F0aW9uLmhyZWYpO3JldHVybiBiJiZuJiZXP1tXLE56cihvXyhiKSxuLER8fG51bGwpXS5qb2luKCIgIik6bnVsbH07Ck56cj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W10sdj1bXTtpZigoQXJyYXkuaXNBcnJheShEKT8yOjEpPT0xKXJldHVybiB2PVtXLG5dLGcueTIoYixmdW5jdGlvbih4KXt2LnB1c2goeCl9KSx6dih2LmpvaW4oIiAiKSk7CnZhciBrPVtdLGg9W107Zy55MihELGZ1bmN0aW9uKHgpe2gucHVzaCh4LmtleSk7ay5wdXNoKHgudmFsdWUpfSk7CkQ9TWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWUoKS8xRTMpO3Y9ay5sZW5ndGg9PTA/W0QsVyxuXTpbay5qb2luKCI6IiksRCxXLG5dO2cueTIoYixmdW5jdGlvbih4KXt2LnB1c2goeCl9KTsKbj16dih2LmpvaW4oIiAiKSk7bj1bRCxuXTtoLmxlbmd0aD09MHx8bi5wdXNoKGguam9pbigiIikpO3JldHVybiBuLmpvaW4oIl8iKX07Cnp2PWZ1bmN0aW9uKG4pe3ZhciBXPXNNMigpO1cudXBkYXRlKG4pO3JldHVybiBXLkhVKCkudG9Mb3dlckNhc2UoKX07Cmw2PWZ1bmN0aW9uKG4pe3RoaXMuTj1ufHx7Y29va2llOiIifX07ClR2PWZ1bmN0aW9uKG4pe249KG4uTi5jb29raWV8fCIiKS5zcGxpdCgiOyIpO3ZhciBXPVtdLEQ9W107Zm9yKGxldCBrPTA7azxuLmxlbmd0aDtrKyspe3ZhciBiPW5ba10udHJpbSgpO3ZhciB2PWIuaW5kZXhPZigiPSIpO3Y9PS0xPyhXLnB1c2goIiIpLEQucHVzaChiKSk6KFcucHVzaChiLnN1YnN0cmluZygwLHYpKSxELnB1c2goYi5zdWJzdHJpbmcodisxKSkpfXJldHVybntrZXlzOlcsdmFsdWVzOkR9fTsKajY9ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLl9fU0FQSVNJRHx8Zy5xaS5fX0FQSVNJRHx8Zy5xaS5fXzNQU0FQSVNJRHx8Zy5xaS5fXzFQU0FQSVNJRHx8Zy5xaS5fX09WRVJSSURFX1NJRDtpZihuKXJldHVybiEwO3R5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYobj1uZXcgbDYoZG9jdW1lbnQpLG49bi5nZXQoIlNBUElTSUQiKXx8bi5nZXQoIkFQSVNJRCIpfHxuLmdldCgiX19TZWN1cmUtM1BBUElTSUQiKXx8bi5nZXQoIl9fU2VjdXJlLTFQQVBJU0lEIikpO3JldHVybiEhbn07CkM4PWZ1bmN0aW9uKG4sVyxELGIpeyhuPWcucWlbbl0pfHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KG49KG5ldyBsNihkb2N1bWVudCkpLmdldChXKSk7cmV0dXJuIG4/ZFEobixELGIpOm51bGx9OwpCTz1mdW5jdGlvbihuKXt2YXIgVz1vXyhnLnFpPy5sb2NhdGlvbi5ocmVmKSxEPVtdO2lmKGo2KCkpe1c9Vy5pbmRleE9mKCJodHRwczoiKT09MHx8Vy5pbmRleE9mKCJjaHJvbWUtZXh0ZW5zaW9uOiIpPT0wfHxXLmluZGV4T2YoImNocm9tZS11bnRydXN0ZWQ6Ly9uZXctdGFiLXBhZ2UiKT09MHx8Vy5pbmRleE9mKCJtb3otZXh0ZW5zaW9uOiIpPT0wO3ZhciBiLHY9KGI9Vyk/Zy5xaS5fX1NBUElTSUQ6Zy5xaS5fX0FQSVNJRDt2fHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KHY9bmV3IGw2KGRvY3VtZW50KSx2PXYuZ2V0KGI/IlNBUElTSUQiOiJBUElTSUQiKXx8di5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIikpOyhiPXY/ZFEodixiPyJTQVBJU0lESEFTSCI6IkFQSVNJREhBU0giLG4pOm51bGwpJiZELnB1c2goYik7VyYmKChXPUM4KCJfXzFQU0FQSVNJRCIsIl9fU2VjdXJlLTFQQVBJU0lEIiwiU0FQSVNJRDFQSEFTSCIsbikpJiZELnB1c2goVyksKG49QzgoIl9fM1BTQVBJU0lEIiwKIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsbikpJiZELnB1c2gobikpfXJldHVybiBELmxlbmd0aD09MD9udWxsOkQuam9pbigiICIpfTsKZy5GZj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sVyksRCl9Owp3UT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4rRCooVy1uKX07CmcuTVk9ZnVuY3Rpb24obixXKXt0aGlzLng9biE9PXZvaWQgMD9uOjA7dGhpcy55PVchPT12b2lkIDA/VzowfTsKUl89ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09Vz8hMDpuJiZXP24ueD09Vy54JiZuLnk9PVcueTohMX07CmcuUWU9ZnVuY3Rpb24obixXKXt0aGlzLndpZHRoPW47dGhpcy5oZWlnaHQ9V307CmcuVmU9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09Vz8hMDpuJiZXP24ud2lkdGg9PVcud2lkdGgmJm4uaGVpZ2h0PT1XLmhlaWdodDohMX07CmNPPWZ1bmN0aW9uKG4pe3JldHVybiBuLndpZHRoKm4uaGVpZ2h0fTsKZy5hXz1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBiIGluIG4pVy5jYWxsKEQsbltiXSxiLG4pfTsKZy5uVD1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2ZvcihsZXQgYiBpbiBuKVcuY2FsbCh2b2lkIDAsbltiXSxiLG4pJiYoRFtiXT1uW2JdKTtyZXR1cm4gRH07Cld4PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e307Zm9yKGxldCBiIGluIG4pRFtiXT1XLmNhbGwodm9pZCAwLG5bYl0sYixuKTtyZXR1cm4gRH07CmcuRGw9ZnVuY3Rpb24obixXLEQpe2ZvcihsZXQgYiBpbiBuKWlmKFcuY2FsbChELG5bYl0sYixuKSlyZXR1cm4hMDtyZXR1cm4hMX07CmcuYms9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbilpZighVy5jYWxsKHZvaWQgMCxuW0RdLEQsbikpcmV0dXJuITE7cmV0dXJuITB9Owp2eD1mdW5jdGlvbihuKXtmb3IobGV0IFcgaW4gbilyZXR1cm4gV307Cmt5PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBpbiBuKXJldHVybiBuW1ddfTsKaEs9ZnVuY3Rpb24obil7dmFyIFc9W10sRD0wO2ZvcihsZXQgYiBpbiBuKVdbRCsrXT1uW2JdO3JldHVybiBXfTsKZy5MVD1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPTA7Zm9yKGxldCBiIGluIG4pV1tEKytdPWI7cmV0dXJuIFd9OwpnLmVwPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4hPT1udWxsJiZXIGluIG59OwpnLmdtPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4paWYobltEXT09VylyZXR1cm4hMDtyZXR1cm4hMX07CmcuWEw9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbilpZihXLmNhbGwodm9pZCAwLG5bRF0sRCxuKSlyZXR1cm4gRH07CnFjPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKFc9Zy5YTChuLFcpKSYmbltXXX07CmcuR0Y9ZnVuY3Rpb24obil7Zm9yKGxldCBXIGluIG4pcmV0dXJuITE7cmV0dXJuITB9OwpnLnRLPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBpbiBuKWRlbGV0ZSBuW1ddfTsKZy4keT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4hPT1udWxsJiZXIGluIG4/bltXXTpEfTsKZy5ybT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBpbiBuKWlmKCEoRCBpbiBXKXx8bltEXSE9PVdbRF0pcmV0dXJuITE7Zm9yKGxldCBEIGluIFcpaWYoIShEIGluIG4pKXJldHVybiExO3JldHVybiEwfTsKZy5zMD1mdW5jdGlvbihuKXt2YXIgVz17fTtmb3IobGV0IEQgaW4gbilXW0RdPW5bRF07cmV0dXJuIFd9OwpnLk5jPWZ1bmN0aW9uKG4pe2lmKCFufHx0eXBlb2YgbiE9PSJvYmplY3QiKXJldHVybiBuO2lmKHR5cGVvZiBuLmNsb25lPT09ImZ1bmN0aW9uIilyZXR1cm4gbi5jbG9uZSgpO2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmbiBpbnN0YW5jZW9mIE1hcClyZXR1cm4gbmV3IE1hcChuKTtpZih0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpcmV0dXJuIG5ldyBTZXQobik7aWYobiBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKG4uZ2V0VGltZSgpKTt2YXIgVz1BcnJheS5pc0FycmF5KG4pP1tdOnR5cGVvZiBBcnJheUJ1ZmZlciE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXchPT0iZnVuY3Rpb24ifHwhQXJyYXlCdWZmZXIuaXNWaWV3KG4pfHxuIGluc3RhbmNlb2YgRGF0YVZpZXc/e306bmV3IG4uY29uc3RydWN0b3Iobi5sZW5ndGgpO2ZvcihsZXQgRCBpbiBuKVdbRF09Zy5OYyhuW0RdKTtyZXR1cm4gV307CmcuWXk9ZnVuY3Rpb24obixXKXtmb3IobGV0IHY9MTt2PGFyZ3VtZW50cy5sZW5ndGg7disrKXt2YXIgRD1hcmd1bWVudHNbdl07Zm9yKGIgaW4gRCluW2JdPURbYl07Zm9yKGxldCBrPTA7azxwVC5sZW5ndGg7aysrKXt2YXIgYj1wVFtrXTtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRCxiKSYmKG5bYl09RFtiXSl9fX07ClhaeD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFo0KG5bMF0udG9Mb3dlckNhc2UoKSl9OwpnLkh4PWZ1bmN0aW9uKG4sLi4uVyl7aWYoVy5sZW5ndGg9PT0wKXJldHVybiBrMyhuWzBdKTt2YXIgRD1uWzBdO2ZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKUQrPWVuY29kZVVSSUNvbXBvbmVudChXW2JdKStuW2IrMV07cmV0dXJuIGszKEQpfTsKZy5TcD1mdW5jdGlvbihuKXtyZXR1cm4gbj9uZXcgZlQoZy5KSyhuKSk6SWh8fChJaD1uZXcgZlQpfTsKQUs9ZnVuY3Rpb24obixXKXtyZXR1cm4gdHlwZW9mIFc9PT0ic3RyaW5nIj9uLmdldEVsZW1lbnRCeUlkKFcpOld9OwpnLktUPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V3x8ZG9jdW1lbnQ7RC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lP249RC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG4pWzBdOihEPWRvY3VtZW50LG49bj8oV3x8RCkucXVlcnlTZWxlY3RvcihuPyIuIituOiIiKTpnLm1CKEQsIioiLG4sVylbMF18fG51bGwpO3JldHVybiBufHxudWxsfTsKZy5tQj1mdW5jdGlvbihuLFcsRCxiKXtuPWJ8fG47cmV0dXJuKFc9VyYmVyE9IioiP1N0cmluZyhXKS50b1VwcGVyQ2FzZSgpOiIiKXx8RD9uLnF1ZXJ5U2VsZWN0b3JBbGwoVysoRD8iLiIrRDoiIikpOm4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKX07CmcuUHg9ZnVuY3Rpb24obixXKXtnLmFfKFcsZnVuY3Rpb24oRCxiKXtiPT0ic3R5bGUiP24uc3R5bGUuY3NzVGV4dD1EOmI9PSJjbGFzcyI/bi5jbGFzc05hbWU9RDpiPT0iZm9yIj9uLmh0bWxGb3I9RDpPMC5oYXNPd25Qcm9wZXJ0eShiKT9uLnNldEF0dHJpYnV0ZShPMFtiXSxEKTpnLmpVKGIsImFyaWEtIil8fGcualUoYiwiZGF0YS0iKT9uLnNldEF0dHJpYnV0ZShiLEQpOm5bYl09RH0pfTsKZy5FMD1mdW5jdGlvbihuKXt2YXIgVz1uLnNjcm9sbGluZ0VsZW1lbnQ/bi5zY3JvbGxpbmdFbGVtZW50OmcuWmx8fG4uY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP24uYm9keXx8bi5kb2N1bWVudEVsZW1lbnQ6bi5kb2N1bWVudEVsZW1lbnQ7bj1uLmRlZmF1bHRWaWV3O3JldHVybiBuZXcgZy5NWShuPy5wYWdlWE9mZnNldHx8Vy5zY3JvbGxMZWZ0LG4/LnBhZ2VZT2Zmc2V0fHxXLnNjcm9sbFRvcCl9OwpnLmlrPWZ1bmN0aW9uKG4pe3JldHVybiBuP24uZGVmYXVsdFZpZXc6d2luZG93fTsKZy5kbT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9YXJndW1lbnRzLHY9ZG9jdW1lbnQsaz1iWzFdLGg9dWsodixTdHJpbmcoYlswXSkpO2smJih0eXBlb2Ygaz09PSJzdHJpbmciP2guY2xhc3NOYW1lPWs6QXJyYXkuaXNBcnJheShrKT9oLmNsYXNzTmFtZT1rLmpvaW4oIiAiKTpnLlB4KGgsaykpO2IubGVuZ3RoPjImJm9oKHYsaCxiLDIpO3JldHVybiBofTsKb2g9ZnVuY3Rpb24obixXLEQsYil7ZnVuY3Rpb24gdihrKXtrJiZXLmFwcGVuZENoaWxkKHR5cGVvZiBrPT09InN0cmluZyI/bi5jcmVhdGVUZXh0Tm9kZShrKTprKX0KZm9yKDtiPEQubGVuZ3RoO2IrKyl7bGV0IGs9RFtiXTshZy5ZMihrKXx8Zy5mdChrKSYmay5ub2RlVHlwZT4wP3Yoayk6Zy55MihrJiZ0eXBlb2Ygay5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2Ygay5pdGVtPT0iZnVuY3Rpb24iP2cuUk0oayk6ayx2KX19OwpnLnpGPWZ1bmN0aW9uKG4pe3JldHVybiB1ayhkb2N1bWVudCxuKX07CnVrPWZ1bmN0aW9uKG4sVyl7Vz1TdHJpbmcoVyk7bi5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoVz1XLnRvTG93ZXJDYXNlKCkpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoVyl9OwpnLmxrPWZ1bmN0aW9uKG4pe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcobikpfTsKZy5URj1mdW5jdGlvbihuKXtmb3IodmFyIFc7Vz1uLmZpcnN0Q2hpbGQ7KW4ucmVtb3ZlQ2hpbGQoVyl9OwpnLmpwPWZ1bmN0aW9uKG4sVyxEKXtuLmluc2VydEJlZm9yZShXLG4uY2hpbGROb2Rlc1tEXXx8bnVsbCl9OwpnLkNUPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLnBhcmVudE5vZGU/bi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOm51bGx9OwpnLkJ4PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4mJlc/bj09V3x8bi5jb250YWlucyhXKTohMX07CmcuSks9ZnVuY3Rpb24obil7cmV0dXJuIG4ubm9kZVR5cGU9PTk/bjpuLm93bmVyRG9jdW1lbnR8fG4uZG9jdW1lbnR9OwpnLkZMPWZ1bmN0aW9uKG4sVyl7aWYoInRleHRDb250ZW50ImluIG4pbi50ZXh0Q29udGVudD1XO2Vsc2UgaWYobi5ub2RlVHlwZT09MyluLmRhdGE9U3RyaW5nKFcpO2Vsc2UgaWYobi5maXJzdENoaWxkJiZuLmZpcnN0Q2hpbGQubm9kZVR5cGU9PTMpe2Zvcig7bi5sYXN0Q2hpbGQhPW4uZmlyc3RDaGlsZDspbi5yZW1vdmVDaGlsZChuLmxhc3RDaGlsZCk7bi5maXJzdENoaWxkLmRhdGE9U3RyaW5nKFcpfWVsc2UgZy5URihuKSxuLmFwcGVuZENoaWxkKGcuSksobikuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFcpKSl9OwpNYz1mdW5jdGlvbihuKXtyZXR1cm4gbi50YWdOYW1lPT0iQSImJm4uaGFzQXR0cmlidXRlKCJocmVmIil8fG4udGFnTmFtZT09IklOUFVUInx8bi50YWdOYW1lPT0iVEVYVEFSRUEifHxuLnRhZ05hbWU9PSJTRUxFQ1QifHxuLnRhZ05hbWU9PSJCVVRUT04iPyFuLmRpc2FibGVkJiYoIW4uaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx3bShuKSk6bi5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJndtKG4pfTsKd209ZnVuY3Rpb24obil7bj1uLnRhYkluZGV4O3JldHVybiB0eXBlb2Ygbj09PSJudW1iZXIiJiZuPj0wJiZuPDMyNzY4fTsKZy5SaD1mdW5jdGlvbihuLFcsRCl7biYmIUQmJihuPW4ucGFyZW50Tm9kZSk7Zm9yKEQ9MDtuOyl7aWYoVyhuKSlyZXR1cm4gbjtuPW4ucGFyZW50Tm9kZTtEKyt9cmV0dXJuIG51bGx9OwpmVD1mdW5jdGlvbihuKXt0aGlzLk49bnx8Zy5xaS5kb2N1bWVudHx8ZG9jdW1lbnR9OwpwTXg9ZnVuY3Rpb24obil7c1YoUVEsVlEsMSxuKX07CllNeD1mdW5jdGlvbihuLFc9Y3gpe2lmKCFhaCl7bj1uLm5hdmlnYXRvcj8udXNlckFnZW50RGF0YTtpZighbnx8dHlwZW9mIG4uZ2V0SGlnaEVudHJvcHlWYWx1ZXMhPT0iZnVuY3Rpb24ifHxuLmJyYW5kcyYmdHlwZW9mIG4uYnJhbmRzLm1hcCE9PSJmdW5jdGlvbiIpcmV0dXJuIFByb21pc2UucmVqZWN0KEVycm9yKCJVQUNIIHVuYXZhaWxhYmxlIikpO3BNeCgobi5icmFuZHN8fFtdKS5tYXAoYj0+e3ZhciB2PW5ldyBWUTt2PWcuU0UodiwxLGIuYnJhbmQpO3JldHVybiBnLlNFKHYsMixiLnZlcnNpb24pfSkpOwp0eXBlb2Ygbi5tb2JpbGU9PT0iYm9vbGVhbiImJm96KFFRLDIsT18obi5tb2JpbGUpKTthaD1uLmdldEhpZ2hFbnRyb3B5VmFsdWVzKFcpfXZhciBEPW5ldyBTZXQoVyk7cmV0dXJuIGFoLnRoZW4oYj0+e3ZhciB2PVFRLmNsb25lKCk7RC5oYXMoInBsYXRmb3JtIikmJmcuU0UodiwzLGIucGxhdGZvcm0pO0QuaGFzKCJwbGF0Zm9ybVZlcnNpb24iKSYmZy5TRSh2LDQsYi5wbGF0Zm9ybVZlcnNpb24pO0QuaGFzKCJhcmNoaXRlY3R1cmUiKSYmZy5TRSh2LDUsYi5hcmNoaXRlY3R1cmUpO0QuaGFzKCJtb2RlbCIpJiZnLlNFKHYsNixiLm1vZGVsKTtELmhhcygidWFGdWxsVmVyc2lvbiIpJiZnLlNFKHYsNyxiLnVhRnVsbFZlcnNpb24pO3JldHVybiB2LmJZKCl9KS5jYXRjaCgoKT0+UVEuYlkoKSl9OwpuSz1mdW5jdGlvbihuKXtyZXR1cm4gS24obiwxLDEpfTsKdkw9ZnVuY3Rpb24obixXKXskOShuLk4sV0wsMSxXKTtIVyhXLDEpfHxuSyhXKTtuLmdSfHwoVz1ERChuKSxZOShXLDUpfHxnLlNFKFcsNSxuLmxvY2FsZSkpO24udWFjaCYmKFc9REQobiksZ2UoVyxiSSw5KXx8JDkoVyxiSSw5LG4udWFjaCkpfTsKREQ9ZnVuY3Rpb24obil7dmFyIFc9Z2Uobi5OLFdMLDEpO1d8fChXPW5ldyBXTCx2TChuLFcpKTtuPVc7Vz1nZShuLGtFLDExKTtXfHwoVz1uZXcga0UsJDkobixrRSwxMSxXKSk7cmV0dXJuIFd9OwpIYlM9ZnVuY3Rpb24obixXKXtuLko9V307CkpGWj1mdW5jdGlvbihuKXt2YXIgVz1uLmdSP3ZvaWQgMDpnLmlrKCk7Vz9ZTXgoVyxjeCkudGhlbihEPT57bi51YWNoPWY0MihEPz8iW10iKTtEPUREKG4pOyQ5KEQsYkksOSxuLnVhY2gpO3JldHVybiEwfSkuY2F0Y2goKCk9PiExKTpQcm9taXNlLnJlc29sdmUoITEpfTsKZy5oSD1mdW5jdGlvbihuLFcsRCxiKXt0aGlzLlg9bjt0aGlzLmo9Vzt0aGlzLk49dGhpcy5XPW47dGhpcy5WPUR8fDA7dGhpcy5LPWJ8fDJ9OwpnLnhFPWZ1bmN0aW9uKG4pe24uTj1NYXRoLm1pbihuLmosbi5OKm4uSyk7bi5XPU1hdGgubWluKG4uaixuLk4rKG4uVj9NYXRoLnJvdW5kKG4uViooTWF0aC5yYW5kb20oKS0uNSkqMipuLk4pOjApKTtuLkorK307CkxLPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vcGxheS5nb29nbGUuY29tL2xvZz9mb3JtYXQ9anNvbiZoYXNmYXN0PXRydWUifTsKSTRTPWZ1bmN0aW9uKG4sVyl7aWYoIW4uUyQpcmV0dXJuKCk9Pnt9Owp2YXIgRD0oKT0+e24uZmx1c2goKX07CnJldHVybiBXPygpPT57VygpLnRoZW4oRCl9OkR9OwplZz1mdW5jdGlvbihuKXtuLlcuaXNGaW5hbD0hMDtuLmZsdXNoKCk7bi5XLmlzRmluYWw9ITF9OwpnRD1mdW5jdGlvbihuKXtuLll8fChuLlk9TEsoKSk7dHJ5e3JldHVybihuZXcgVVJMKG4uWSkpLnRvU3RyaW5nKCl9Y2F0Y2goVyl7cmV0dXJuKG5ldyBVUkwobi5ZLGcuaWsoKS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfX07CkFGWj1mdW5jdGlvbihuKXtTTVMobiwoVyxEKT0+e1c9bmV3IFVSTChXKTtXLnNlYXJjaFBhcmFtcy5zZXQoImZvcm1hdCIsImpzb24iKTt2YXIgYj0hMTt0cnl7Yj1nLmlrKCkubmF2aWdhdG9yLnNlbmRCZWFjb24oVy50b1N0cmluZygpLEQuYlkoKSl9Y2F0Y2h7fWJ8fChuLkQ9ITEpO3JldHVybiBifSl9OwptVXc9ZnVuY3Rpb24obixXLEQ9bnVsbCxiPW4ud2l0aENyZWRlbnRpYWxzKXt2YXIgdj17fSxrPW5ldyBVUkwoZ0QobikpO0QmJih2LkF1dGhvcml6YXRpb249RCk7bi5zZXNzaW9uSW5kZXgmJih2WyJYLUdvb2ctQXV0aFVzZXIiXT1uLnNlc3Npb25JbmRleCxrLnNlYXJjaFBhcmFtcy5zZXQoImF1dGh1c2VyIixuLnNlc3Npb25JbmRleCkpO24ucGFnZUlkJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHYsIlgtR29vZy1QYWdlSWQiLHt2YWx1ZTpuLnBhZ2VJZH0pLGsuc2VhcmNoUGFyYW1zLnNldCgicGFnZUlkIixuLnBhZ2VJZCkpO3JldHVybnt1cmw6ay50b1N0cmluZygpLGJvZHk6VyxvJDoxLFpKOnYscmVxdWVzdFR5cGU6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpiLHRpbWVvdXRNaWxsaXM6bi50aW1lb3V0TWlsbGlzfX07ClNNUz1mdW5jdGlvbihuLFcpe2lmKG4uTi5sZW5ndGghPT0wKXt2YXIgRD1uZXcgVVJMKGdEKG4pKTtELnNlYXJjaFBhcmFtcy5kZWxldGUoImZvcm1hdCIpO3ZhciBiPW4ubjEoKTtiJiZELnNlYXJjaFBhcmFtcy5zZXQoImF1dGgiLGIpO0Quc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLG4uc2Vzc2lvbkluZGV4fHwiMCIpO2ZvcihiPTA7YjwxMCYmbi5OLmxlbmd0aDsrK2Ipe2xldCB2PW4uTi5zbGljZSgwLDMyKSxrPW4uVy5idWlsZCh2LG4uWCxuLlYsbi5QZyxuLmNKLG4uTyk7aWYoIVcoRC50b1N0cmluZygpLGspKXsrK24uVjticmVha31uLlg9MDtuLlY9MDtuLmNKPTA7bi5PPTA7bi5OPW4uTi5zbGljZSh2Lmxlbmd0aCl9bi5KLmVuYWJsZWQmJm4uSi5zdG9wKCl9fTsKS2NoPWZ1bmN0aW9uKG4sVyl7bi5idWlsZExhYmVsPVc7cmV0dXJuIG59OwpQX2k9ZnVuY3Rpb24obil7bi5uZXR3b3JrPW5ldyBPYjE7cmV0dXJuIG59OwpaYmg9ZnVuY3Rpb24obixXKXtuLk49V307ClVVYj1mdW5jdGlvbihuKXtuLko9ITA7cmV0dXJuIG59OwpyRnQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uZmllbGRzLm1hcChXPT5XLmZpZWxkVHlwZSl9OwpQTz1mdW5jdGlvbihuLC4uLlcpe1c9WFQoLi4uVyk7cmV0dXJuIG4uTi5oYXMoVyk/bi5OLmdldChXKTp2b2lkIDB9OwokVU09ZnVuY3Rpb24obil7cmV0dXJuIG4uZmllbGRzLm1hcChXPT5XLmZpZWxkTmFtZSl9OwpHNz1mdW5jdGlvbihuLFcsLi4uRCl7RD1YVCguLi5EKTtuLk4uc2V0KEQsW25ldyBxNShXKV0pfTsKeUZaPWZ1bmN0aW9uKG4sVywuLi5EKXt2YXIgYj1QTyhuLC4uLkQpO2I/Yi5wdXNoKG5ldyBxNShXKSk6RzcobixXLC4uLkQpfTsKZVg9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9V15uO2lmKChuPj4xJjE2KTw1JiYobi0zJjExKT49OSYmRFtJWzE3XV0pdmFyIGs9UjAoOCw3NTQxLEQpO2lmKG4tMj4+ND09NCl7az12XjQ4NTA7Zm9yKHZhciBoPVtdOysray1oW0lbNV1dLSh2XjQ3NTQpOylzd2l0Y2goayl7Y2FzZSB2XjQ3NDQ6az12XjQ4MTg7Y29udGludWU7Y2FzZSB2XjQ4NDE6az12XjQ3NjY7YnJlYWs7Y2FzZSB2XjQ4NTE6az12XjQ3NjU7Y29udGludWU7Y2FzZSB2XjQ3NjQ6az12XjQ2NTE7Y2FzZSB2XjQ4MDk6ay09dl40NzQ0O2RlZmF1bHQ6aFtJW3ZeNDc3Ml1dKFN0cmluZ1tJW3ZeNDczNl1dKGspKX12YXIgeD1ofShuXjcwKT4+Mz09MiYmKGs9RFtJW3ZeNjYzM11dKElbdl42NjE2XSksdEhbSVt2XjY2NDddXShrLHZeNjYyMSksdEhbSVt2XjY2NDddXShrLDIpLHRIW0lbdl42NjEzXV0oayx2XjY2MzEpLHg9a1tJW3ZeNjU5Ml1dKElbdl42NjE2XSkpO248PDImMjd8fChlWCh2XjEzMzYsdl42NDI3LEQpLAprPU0zKHZeMTM4Nix2XjU1OTYsRFtJW3ZeMTM0OF1dKElbdl4xMzI3XSl8fElbdl4xMzkyXSlbSVt2XjEzNDVdXShJW3ZeMTM1NF0pLHg9RFtJW3ZeMTQwMV1dPT09SVt2XjEzODZdJiZrW0lbNV1dPjEmJiEha1sxXSk7KG48PDEmMTUpPT00JiZiW0lbNV1dIT0wJiYoRD0oRCViW0lbNV1dK2JbSVs1XV0pJWJbSVs1XV0sYltJWzNdXSgwLDEsYltJWzNdXShELDEsYlswXSlbMF0pKTtuLTM+PjM9PTImJih4PUQhPT1udWxsKTtyZXR1cm4geH07ClhUPWZ1bmN0aW9uKC4uLm4pe3JldHVybiBuP24uam9pbigiLCIpOiJrZXkifTsKRTN0PWZ1bmN0aW9uKG4sLi4uVyl7cmV0dXJuKG49UE8obiwuLi5XKSkmJm4ubGVuZ3RoP25bMF06dm9pZCAwfTsKaWJVPWZ1bmN0aW9uKG4sLi4uVyl7dmFyIEQ9MCxiPUUzdChuLC4uLlcpO2ImJihEPWIuTik7RzcobixEKzEsLi4uVyl9OwokRT1mdW5jdGlvbihuLFcpe3RoaXMudHlwZT1uO3RoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1XO3RoaXMuZGVmYXVsdFByZXZlbnRlZD10aGlzLko9ITF9OwpyRD1mdW5jdGlvbihuLFcpeyRFLmNhbGwodGhpcyxuP24udHlwZToiIik7dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1udWxsO3RoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy5OPW51bGw7biYmdGhpcy5pbml0KG4sVyl9OwpONT1mdW5jdGlvbihuKXtyZXR1cm4hKCFufHwhbltzMl0pfTsKbzNiPWZ1bmN0aW9uKG4sVyxELGIsdil7dGhpcy5saXN0ZW5lcj1uO3RoaXMucHJveHk9bnVsbDt0aGlzLnNyYz1XO3RoaXMudHlwZT1EO3RoaXMuY2FwdHVyZT0hIWI7dGhpcy5oYW5kbGVyPXY7dGhpcy5rZXk9Kyt1SWg7dGhpcy51Nz10aGlzLnFfPSExfTsKSEw9ZnVuY3Rpb24obil7bi51Nz0hMDtuLmxpc3RlbmVyPW51bGw7bi5wcm94eT1udWxsO24uc3JjPW51bGw7bi5oYW5kbGVyPW51bGx9OwpmSz1mdW5jdGlvbihuKXt0aGlzLnNyYz1uO3RoaXMubGlzdGVuZXJzPXt9O3RoaXMuTj0wfTsKSkg9ZnVuY3Rpb24obixXKXt2YXIgRD1XLnR5cGU7RCBpbiBuLmxpc3RlbmVycyYmZy5GSShuLmxpc3RlbmVyc1tEXSxXKSYmKEhMKFcpLG4ubGlzdGVuZXJzW0RdLmxlbmd0aD09MCYmKGRlbGV0ZSBuLmxpc3RlbmVyc1tEXSxuLk4tLSkpfTsKSVc9ZnVuY3Rpb24obixXLEQsYil7Zm9yKGxldCB2PTA7djxuLmxlbmd0aDsrK3Ype2xldCBrPW5bdl07aWYoIWsudTcmJmsubGlzdGVuZXI9PVcmJmsuY2FwdHVyZT09ISFEJiZrLmhhbmRsZXI9PWIpcmV0dXJuIHZ9cmV0dXJuLTF9OwpBSD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKGImJmIub25jZSlyZXR1cm4gU2cobixXLEQsYix2KTtpZihBcnJheS5pc0FycmF5KFcpKXtmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKylBSChuLFdba10sRCxiLHYpO3JldHVybiBudWxsfUQ9bWgoRCk7cmV0dXJuIE41KG4pP24uU18oVyxELGcuZnQoYik/ISFiLmNhcHR1cmU6ISFiLHYpOktLKG4sVyxELCExLGIsdil9OwpLSz1mdW5jdGlvbihuLFcsRCxiLHYsayl7aWYoIVcpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO3ZhciBoPWcuZnQodik/ISF2LmNhcHR1cmU6ISF2LHg9TzIobik7eHx8KG5bUExdPXg9bmV3IGZLKG4pKTtEPXguYWRkKFcsRCxiLGgsayk7aWYoRC5wcm94eSlyZXR1cm4gRDtiPWRVcigpO0QucHJveHk9YjtiLnNyYz1uO2IubGlzdGVuZXI9RDtpZihuLmFkZEV2ZW50TGlzdGVuZXIpdj09PXZvaWQgMCYmKHY9ITEpLG4uYWRkRXZlbnRMaXN0ZW5lcihXLnRvU3RyaW5nKCksYix2KTtlbHNlIGlmKG4uYXR0YWNoRXZlbnQpbi5hdHRhY2hFdmVudChaRChXLnRvU3RyaW5nKCkpLGIpO2Vsc2UgaWYobi5hZGRMaXN0ZW5lciYmbi5yZW1vdmVMaXN0ZW5lciluLmFkZExpc3RlbmVyKGIpO2Vsc2UgdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtVMisrO3JldHVybiBEfTsKZFVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihEKXtyZXR1cm4gVy5jYWxsKG4uc3JjLG4ubGlzdGVuZXIsRCl9CnZhciBXPXpCdDtyZXR1cm4gbn07ClNnPWZ1bmN0aW9uKG4sVyxELGIsdil7aWYoQXJyYXkuaXNBcnJheShXKSl7Zm9yKGxldCBrPTA7azxXLmxlbmd0aDtrKyspU2cobixXW2tdLEQsYix2KTtyZXR1cm4gbnVsbH1EPW1oKEQpO3JldHVybiBONShuKT9uLmVGKFcsRCxnLmZ0KGIpPyEhYi5jYXB0dXJlOiEhYix2KTpLSyhuLFcsRCwhMCxiLHYpfTsKeTc9ZnVuY3Rpb24obixXLEQsYix2KXtpZihBcnJheS5pc0FycmF5KFcpKWZvcihsZXQgaz0wO2s8Vy5sZW5ndGg7aysrKXk3KG4sV1trXSxELGIsdik7ZWxzZSBiPWcuZnQoYik/ISFiLmNhcHR1cmU6ISFiLEQ9bWgoRCksTjUobik/bi53SChXLEQsYix2KTpuJiYobj1PMihuKSkmJihXPW4uc2MoVyxELGIsdikpJiZFMihXKX07CkUyPWZ1bmN0aW9uKG4pe2lmKHR5cGVvZiBuIT09Im51bWJlciImJm4mJiFuLnU3KXt2YXIgVz1uLnNyYztpZihONShXKSlKSChXLmRfLG4pO2Vsc2V7dmFyIEQ9bi50eXBlLGI9bi5wcm94eTtXLnJlbW92ZUV2ZW50TGlzdGVuZXI/Vy5yZW1vdmVFdmVudExpc3RlbmVyKEQsYixuLmNhcHR1cmUpOlcuZGV0YWNoRXZlbnQ/Vy5kZXRhY2hFdmVudChaRChEKSxiKTpXLmFkZExpc3RlbmVyJiZXLnJlbW92ZUxpc3RlbmVyJiZXLnJlbW92ZUxpc3RlbmVyKGIpO1UyLS07KEQ9TzIoVykpPyhKSChELG4pLEQuTj09MCYmKEQuc3JjPW51bGwsV1tQTF09bnVsbCkpOkhMKG4pfX19OwpaRD1mdW5jdGlvbihuKXtyZXR1cm4gbiBpbiBpST9pSVtuXTppSVtuXT0ib24iK259Owp6QnQ9ZnVuY3Rpb24obixXKXtpZihuLnU3KW49ITA7ZWxzZXtXPW5ldyByRChXLHRoaXMpO2xldCBEPW4ubGlzdGVuZXIsYj1uLmhhbmRsZXJ8fG4uc3JjO24ucV8mJkUyKG4pO249RC5jYWxsKGIsVyl9cmV0dXJuIG59OwpPMj1mdW5jdGlvbihuKXtuPW5bUExdO3JldHVybiBuIGluc3RhbmNlb2YgZks/bjpudWxsfTsKbWg9ZnVuY3Rpb24obil7aWYodHlwZW9mIG49PT0iZnVuY3Rpb24iKXJldHVybiBuO25bdUldfHwoblt1SV09ZnVuY3Rpb24oVyl7cmV0dXJuIG4uaGFuZGxlRXZlbnQoVyl9KTsKcmV0dXJuIG5bdUldfTsKZy5vVz1mdW5jdGlvbigpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLmRfPW5ldyBmSyh0aGlzKTt0aGlzLkhkPXRoaXM7dGhpcy5sWj1udWxsfTsKZEQ9ZnVuY3Rpb24obixXLEQsYil7Vz1uLmRfLmxpc3RlbmVyc1tTdHJpbmcoVyldO2lmKCFXKXJldHVybiEwO1c9Vy5jb25jYXQoKTt2YXIgdj0hMDtmb3IobGV0IGs9MDtrPFcubGVuZ3RoOysrayl7bGV0IGg9V1trXTtpZihoJiYhaC51NyYmaC5jYXB0dXJlPT1EKXtsZXQgeD1oLmxpc3RlbmVyLEw9aC5oYW5kbGVyfHxoLnNyYztoLnFfJiZKSChuLmRfLGgpO3Y9eC5jYWxsKEwsYikhPT0hMSYmdn19cmV0dXJuIHYmJiFiLmRlZmF1bHRQcmV2ZW50ZWR9OwpnLlQ3PWZ1bmN0aW9uKG4pe249KDAsZy56Nykobik7bEl8fChsST1sNGooKSk7bEkobil9OwpsNGo9ZnVuY3Rpb24oKXtpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWwhPT0idW5kZWZpbmVkIil7bGV0IG49bmV3IE1lc3NhZ2VDaGFubmVsLFc9e30sRD1XO24ucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYoVy5uZXh0IT09dm9pZCAwKXtXPVcubmV4dDtsZXQgYj1XLmtBO1cua0E9bnVsbDtiKCl9fTsKcmV0dXJuIGZ1bmN0aW9uKGIpe0QubmV4dD17a0E6Yn07RD1ELm5leHQ7bi5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19cmV0dXJuIGZ1bmN0aW9uKG4pe2cucWkuc2V0VGltZW91dChuLDApfX07ClR6cj1mdW5jdGlvbigpe2Zvcih2YXIgbjtuPWpnLnJlbW92ZSgpOyl7dHJ5e24uTi5jYWxsKG4uc2NvcGUpfWNhdGNoKFcpe2g0KFcpfUNLLnB1dChuKX1CTD0hMX07CmcuRlQ9ZnVuY3Rpb24oKXt9OwpqTWg9ZnVuY3Rpb24obil7dmFyIFc9V3x8MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLFcpKX19OwpnLndEPWZ1bmN0aW9uKG4pe3ZhciBXPSExLEQ7cmV0dXJuIGZ1bmN0aW9uKCl7V3x8KEQ9bigpLFc9ITApO3JldHVybiBEfX07CmcuWDE9ZnVuY3Rpb24obixXKXt0aGlzLk49MDt0aGlzLks9dm9pZCAwO3RoaXMuWD10aGlzLko9dGhpcy5XPW51bGw7dGhpcy5qPXRoaXMuVj0hMTtpZihuIT1nLkZUKXRyeXtsZXQgRD10aGlzO24uY2FsbChXLGZ1bmN0aW9uKGIpe2dwKEQsMixiKX0sZnVuY3Rpb24oYil7Z3AoRCwzLGIpfSl9Y2F0Y2goRCl7Z3AodGhpcywzLEQpfX07CnE4PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuY29udGV4dD10aGlzLko9dGhpcy5XPXRoaXMuTj1udWxsO3RoaXMuWD0hMX07CmcudCQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPUczLmdldCgpO2IuVz1uO2IuSj1XO2IuY29udGV4dD1EO3JldHVybiBifTsKJEc9ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIGcuWDEpcmV0dXJuIG47dmFyIFc9bmV3IGcuWDEoZy5GVCk7Z3AoVywyLG4pO3JldHVybiBXfTsKZy5ycD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IGcuWDEoZnVuY3Rpb24oVyxEKXtEKG4pfSl9OwpwcT1mdW5jdGlvbihuLFcsRCxiKXtnLk44KG4sZy50JChXfHxnLkZULER8fG51bGwsYikpfTsKWUc9ZnVuY3Rpb24obixXKXtpZihuLk49PTApaWYobi5XKXt2YXIgRD1uLlc7aWYoRC5KKXt2YXIgYj0wLHY9bnVsbCxrPW51bGw7Zm9yKGxldCBoPUQuSjtoJiYoaC5YfHwoYisrLGguTj09biYmKHY9aCksISh2JiZiPjEpKSk7aD1oLm5leHQpdnx8KGs9aCk7diYmKEQuTj09MCYmYj09MT9ZRyhELFcpOihrPyhiPWssYi5uZXh0PT1ELlgmJihELlg9YiksYi5uZXh0PWIubmV4dC5uZXh0KTpISihEKSxmcShELHYsMyxXKSkpfW4uVz1udWxsfWVsc2UgZ3AobiwzLFcpfTsKZy5OOD1mdW5jdGlvbihuLFcpe24uSnx8bi5OIT0yJiZuLk4hPTN8fEokKG4pO24uWD9uLlgubmV4dD1XOm4uSj1XO24uWD1XfTsKU089ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9Zy50JChudWxsLG51bGwsbnVsbCk7di5OPW5ldyBnLlgxKGZ1bmN0aW9uKGssaCl7di5XPVc/ZnVuY3Rpb24oeCl7dHJ5e2xldCBMPVcuY2FsbChiLHgpO2soTCl9Y2F0Y2goTCl7aChMKX19Oms7CnYuSj1EP2Z1bmN0aW9uKHgpe3RyeXtsZXQgTD1ELmNhbGwoYix4KTtMPT09dm9pZCAwJiZ4IGluc3RhbmNlb2YgZy5JNT9oKHgpOmsoTCl9Y2F0Y2goTCl7aChMKX19Omh9KTsKdi5OLlc9bjtnLk44KG4sdik7cmV0dXJuIHYuTn07CmdwPWZ1bmN0aW9uKG4sVyxEKXtuLk49PTAmJihuPT09RCYmKFc9MyxEPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLG4uTj0xLGcuQSQoRCxuLklRLG4uQVMsbil8fChuLks9RCxuLk49VyxuLlc9bnVsbCxKJChuKSxXIT0zfHxEIGluc3RhbmNlb2YgZy5JNXx8Q18xKG4sRCkpKX07CmcuQSQ9ZnVuY3Rpb24obixXLEQsYil7aWYobiBpbnN0YW5jZW9mIGcuWDEpcmV0dXJuIHBxKG4sVyxELGIpLCEwO2lmKG4pdHJ5e3ZhciB2PSEhbi4kZ29vZ19UaGVuYWJsZX1jYXRjaChrKXt2PSExfWVsc2Ugdj0hMTtpZih2KXJldHVybiBuLnRoZW4oVyxELGIpLCEwO2lmKGcuZnQobikpdHJ5e2xldCBrPW4udGhlbjtpZih0eXBlb2Ygaz09PSJmdW5jdGlvbiIpcmV0dXJuIEJ6aShuLGssVyxELGIpLCEwfWNhdGNoKGspe3JldHVybiBELmNhbGwoYixrKSwhMH1yZXR1cm4hMX07CkJ6aT1mdW5jdGlvbihuLFcsRCxiLHYpe2Z1bmN0aW9uIGsoTCl7eHx8KHg9ITAsYi5jYWxsKHYsTCkpfQpmdW5jdGlvbiBoKEwpe3h8fCh4PSEwLEQuY2FsbCh2LEwpKX0KdmFyIHg9ITE7dHJ5e1cuY2FsbChuLGgsayl9Y2F0Y2goTCl7ayhMKX19OwpKJD1mdW5jdGlvbihuKXtuLlZ8fChuLlY9ITAsZy5tSyhuLnlzLG4pKX07CkhKPWZ1bmN0aW9uKG4pe3ZhciBXPW51bGw7bi5KJiYoVz1uLkosbi5KPVcubmV4dCxXLm5leHQ9bnVsbCk7bi5KfHwobi5YPW51bGwpO3JldHVybiBXfTsKZnE9ZnVuY3Rpb24obixXLEQsYil7aWYoRD09MyYmVy5KJiYhVy5YKWZvcig7biYmbi5qO249bi5XKW4uaj0hMTtpZihXLk4pVy5OLlc9bnVsbCxLcShXLEQsYik7ZWxzZSB0cnl7Vy5YP1cuVy5jYWxsKFcuY29udGV4dCk6S3EoVyxELGIpfWNhdGNoKHYpe091LmNhbGwobnVsbCx2KX1HMy5wdXQoVyl9OwpLcT1mdW5jdGlvbihuLFcsRCl7Vz09Mj9uLlcuY2FsbChuLmNvbnRleHQsRCk6bi5KJiZuLkouY2FsbChuLmNvbnRleHQsRCl9OwpDXzE9ZnVuY3Rpb24obixXKXtuLmo9ITA7Zy5tSyhmdW5jdGlvbigpe24uaiYmT3UuY2FsbChudWxsLFcpfSl9OwpnLkk1PWZ1bmN0aW9uKG4pe2cuVGIuY2FsbCh0aGlzLG4pfTsKZy5QSj1mdW5jdGlvbihuLFcpe2cub1cuY2FsbCh0aGlzKTt0aGlzLmd0PW58fDE7dGhpcy5WNz1XfHxnLnFpO3RoaXMuaEU9KDAsZy5LdCkodGhpcy5SUSx0aGlzKTt0aGlzLmpiPWcuVXcoKX07CmcuWnQ9ZnVuY3Rpb24obixXLEQpe2lmKHR5cGVvZiBuPT09ImZ1bmN0aW9uIilEJiYobj0oMCxnLkt0KShuLEQpKTtlbHNlIGlmKG4mJnR5cGVvZiBuLmhhbmRsZUV2ZW50PT0iZnVuY3Rpb24iKW49KDAsZy5LdCkobi5oYW5kbGVFdmVudCxuKTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7cmV0dXJuIE51bWJlcihXKT4yMTQ3NDgzNjQ3Py0xOmcucWkuc2V0VGltZW91dChuLFd8fDApfTsKZy5VdT1mdW5jdGlvbihuLFcpe3ZhciBEPW51bGw7cmV0dXJuKG5ldyBnLlgxKGZ1bmN0aW9uKGIsdil7RD1nLlp0KGZ1bmN0aW9uKCl7YihXKX0sbik7CkQ9PS0xJiZ2KEVycm9yKCJGYWlsZWQgdG8gc2NoZWR1bGUgdGltZXIuIikpfSkpLnNQKGZ1bmN0aW9uKGIpe2cucWkuY2xlYXJUaW1lb3V0KEQpOwp0aHJvdyBiO30pfTsKRXU9ZnVuY3Rpb24obixXLC4uLkQpe24uVy5oYXMoVyl8fG4uVy5zZXQoVyxuZXcgeTgoVyxEKSl9Owp1ZT1mdW5jdGlvbihuLFcsLi4uRCl7bi5XLmhhcyhXKXx8bi5XLnNldChXLG5ldyBpZShXLEQpKX07Cm81PWZ1bmN0aW9uKG4pe24uSi5lbmFibGVkfHxuLkouc3RhcnQoKTtuLlYrKztuLlY+PW4uWCYmbi5qKCl9OwpGY2I9ZnVuY3Rpb24obil7Zm9yKGxldCBXPTA7VzxuLmxlbmd0aDtXKyspbltXXS5jbGVhcigpfTsKZHA9ZnVuY3Rpb24obixXLC4uLkQpeyhXPW4uTihXKSkmJlcgaW5zdGFuY2VvZiBpZSYmKGliVShXLC4uLkQpLG81KG4pKX07CnozPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDIwMDpyZXR1cm4gMDtjYXNlIDQwMDpyZXR1cm4gMztjYXNlIDQwMTpyZXR1cm4gMTY7Y2FzZSA0MDM6cmV0dXJuIDc7Y2FzZSA0MDQ6cmV0dXJuIDU7Y2FzZSA0MDk6cmV0dXJuIDEwO2Nhc2UgNDEyOnJldHVybiA5O2Nhc2UgNDI5OnJldHVybiA4O2Nhc2UgNDk5OnJldHVybiAxO2Nhc2UgNTAwOnJldHVybiAyO2Nhc2UgNTAxOnJldHVybiAxMjtjYXNlIDUwMzpyZXR1cm4gMTQ7Y2FzZSA1MDQ6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMn19Owp3TVM9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgMDpyZXR1cm4iT0siO2Nhc2UgMTpyZXR1cm4iQ0FOQ0VMTEVEIjtjYXNlIDI6cmV0dXJuIlVOS05PV04iO2Nhc2UgMzpyZXR1cm4iSU5WQUxJRF9BUkdVTUVOVCI7Y2FzZSA0OnJldHVybiJERUFETElORV9FWENFRURFRCI7Y2FzZSA1OnJldHVybiJOT1RfRk9VTkQiO2Nhc2UgNjpyZXR1cm4iQUxSRUFEWV9FWElTVFMiO2Nhc2UgNzpyZXR1cm4iUEVSTUlTU0lPTl9ERU5JRUQiO2Nhc2UgMTY6cmV0dXJuIlVOQVVUSEVOVElDQVRFRCI7Y2FzZSA4OnJldHVybiJSRVNPVVJDRV9FWEhBVVNURUQiO2Nhc2UgOTpyZXR1cm4iRkFJTEVEX1BSRUNPTkRJVElPTiI7Y2FzZSAxMDpyZXR1cm4iQUJPUlRFRCI7Y2FzZSAxMTpyZXR1cm4iT1VUX09GX1JBTkdFIjtjYXNlIDEyOnJldHVybiJVTklNUExFTUVOVEVEIjtjYXNlIDEzOnJldHVybiJJTlRFUk5BTCI7Y2FzZSAxNDpyZXR1cm4iVU5BVkFJTEFCTEUiO2Nhc2UgMTU6cmV0dXJuIkRBVEFfTE9TUyI7CmRlZmF1bHQ6cmV0dXJuIiJ9fTsKbGU9ZnVuY3Rpb24oKXt9OwpUMz1mdW5jdGlvbihuLFcsRCl7aWYoVz09bnVsbClELnB1c2goIm51bGwiKTtlbHNle2lmKHR5cGVvZiBXPT0ib2JqZWN0Iil7aWYoQXJyYXkuaXNBcnJheShXKSl7dmFyIGI9VztXPWIubGVuZ3RoO0QucHVzaCgiWyIpO3ZhciB2PSIiO2Zvcih2YXIgaz0wO2s8VztrKyspRC5wdXNoKHYpLFQzKG4sYltrXSxEKSx2PSIsIjtELnB1c2goIl0iKTtyZXR1cm59aWYoVyBpbnN0YW5jZW9mIFN0cmluZ3x8VyBpbnN0YW5jZW9mIE51bWJlcnx8VyBpbnN0YW5jZW9mIEJvb2xlYW4pVz1XLnZhbHVlT2YoKTtlbHNle0QucHVzaCgieyIpO3Y9IiI7Zm9yKGIgaW4gVylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxiKSYmKGs9V1tiXSx0eXBlb2YgayE9ImZ1bmN0aW9uIiYmKEQucHVzaCh2KSxqTyhiLEQpLEQucHVzaCgiOiIpLFQzKG4sayxEKSx2PSIsIikpO0QucHVzaCgifSIpO3JldHVybn19c3dpdGNoKHR5cGVvZiBXKXtjYXNlICJzdHJpbmciOmpPKFcsRCk7YnJlYWs7CmNhc2UgIm51bWJlciI6RC5wdXNoKGlzRmluaXRlKFcpJiYhaXNOYU4oVyk/U3RyaW5nKFcpOiJudWxsIik7YnJlYWs7Y2FzZSAiYm9vbGVhbiI6RC5wdXNoKFN0cmluZyhXKSk7YnJlYWs7Y2FzZSAiZnVuY3Rpb24iOkQucHVzaCgibnVsbCIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gdHlwZTogIit0eXBlb2YgVyk7fX19OwpqTz1mdW5jdGlvbihuLFcpe1cucHVzaCgnIicsbi5yZXBsYWNlKE1qWixmdW5jdGlvbihEKXt2YXIgYj1DcVtEXTtifHwoYj0iXFx1IisoRC5jaGFyQ29kZUF0KDApfDY1NTM2KS50b1N0cmluZygxNikuc2xpY2UoMSksQ3FbRF09Yik7cmV0dXJuIGJ9KSwnIicpfTsKUkJiPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDA6cmV0dXJuIk5vIEVycm9yIjtjYXNlIDE6cmV0dXJuIkFjY2VzcyBkZW5pZWQgdG8gY29udGVudCBkb2N1bWVudCI7Y2FzZSAyOnJldHVybiJGaWxlIG5vdCBmb3VuZCI7Y2FzZSAzOnJldHVybiJGaXJlZm94IHNpbGVudGx5IGVycm9yZWQiO2Nhc2UgNDpyZXR1cm4iQXBwbGljYXRpb24gY3VzdG9tIGVycm9yIjtjYXNlIDU6cmV0dXJuIkFuIGV4Y2VwdGlvbiBvY2N1cnJlZCI7Y2FzZSA2OnJldHVybiJIdHRwIHJlc3BvbnNlIGF0IDQwMCBvciA1MDAgbGV2ZWwiO2Nhc2UgNzpyZXR1cm4iUmVxdWVzdCB3YXMgYWJvcnRlZCI7Y2FzZSA4OnJldHVybiJSZXF1ZXN0IHRpbWVkIG91dCI7Y2FzZSA5OnJldHVybiJUaGUgcmVzb3VyY2UgaXMgbm90IGF2YWlsYWJsZSBvZmZsaW5lIjtkZWZhdWx0OnJldHVybiJVbnJlY29nbml6ZWQgZXJyb3IgY29kZSJ9fTsKQko9ZnVuY3Rpb24oKXt9OwpGMT1mdW5jdGlvbigpe307CndwPWZ1bmN0aW9uKG4pe2cub1cuY2FsbCh0aGlzKTt0aGlzLmhlYWRlcnM9bmV3IE1hcDt0aGlzLlRDPW58fG51bGw7dGhpcy5KPSExO3RoaXMuTj1udWxsO3RoaXMuSz0iIjt0aGlzLlc9MDt0aGlzLmo9IiI7dGhpcy5YPXRoaXMudHc9dGhpcy5ZPXRoaXMuY0o9ITE7dGhpcy5EPTA7dGhpcy5WPW51bGw7dGhpcy5iZD0iIjt0aGlzLk89ITF9OwpRTVU9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9bmV3IHdwO004LnB1c2goeCk7VyYmeC5TXygiY29tcGxldGUiLFcpO3guZUYoInJlYWR5Iix4LldVKTtrJiYoeC5EPU1hdGgubWF4KDAsaykpO2gmJih4Lk89aCk7eC5zZW5kKG4sRCxiLHYpfTsKVjg9ZnVuY3Rpb24obixXKXtuLko9ITE7bi5OJiYobi5YPSEwLG4uTi5hYm9ydCgpLG4uWD0hMSk7bi5qPVc7bi5XPTU7UjUobik7UTgobil9OwpSNT1mdW5jdGlvbihuKXtuLmNKfHwobi5jSj0hMCxuLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksbi5kaXNwYXRjaEV2ZW50KCJlcnJvciIpKX07Cm5WPWZ1bmN0aW9uKG4pe2lmKG4uSiYmdHlwZW9mIGNKIT0idW5kZWZpbmVkIilpZihuLlkmJmE1KG4pPT00KXNldFRpbWVvdXQobi5OOC5iaW5kKG4pLDApO2Vsc2UgaWYobi5kaXNwYXRjaEV2ZW50KCJyZWFkeXN0YXRlY2hhbmdlIiksbi5pc0NvbXBsZXRlKCkpe24uZ2V0U3RhdHVzKCk7bi5KPSExO3RyeXtpZihuLmlzU3VjY2VzcygpKW4uZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxuLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKTtlbHNle24uVz02O3RyeXt2YXIgVz1hNShuKT4yP24uTi5zdGF0dXNUZXh0OiIifWNhdGNoKEQpe1c9IiJ9bi5qPVcrIiBbIituLmdldFN0YXR1cygpKyJdIjtSNShuKX19ZmluYWxseXtROChuKX19fTsKUTg9ZnVuY3Rpb24obixXKXtpZihuLk4pe24uViYmKGNsZWFyVGltZW91dChuLlYpLG4uVj1udWxsKTtsZXQgRD1uLk47bi5OPW51bGw7V3x8bi5kaXNwYXRjaEV2ZW50KCJyZWFkeSIpO3RyeXtELm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsfWNhdGNoKGIpe319fTsKYTU9ZnVuY3Rpb24obil7cmV0dXJuIG4uTj9uLk4ucmVhZHlTdGF0ZTowfTsKVzM9ZnVuY3Rpb24obil7dHJ5e3JldHVybiBuLk4/bi5OLnJlc3BvbnNlVGV4dDoiIn1jYXRjaChXKXtyZXR1cm4iIn19OwpEbz1mdW5jdGlvbihuKXt0cnl7aWYoIW4uTilyZXR1cm4gbnVsbDtpZigicmVzcG9uc2UiaW4gbi5OKXJldHVybiBuLk4ucmVzcG9uc2U7c3dpdGNoKG4uYmQpe2Nhc2UgIiI6Y2FzZSAidGV4dCI6cmV0dXJuIG4uTi5yZXNwb25zZVRleHQ7Y2FzZSAiYXJyYXlidWZmZXIiOmlmKCJtb3pSZXNwb25zZUFycmF5QnVmZmVyImluIG4uTilyZXR1cm4gbi5OLm1velJlc3BvbnNlQXJyYXlCdWZmZXJ9cmV0dXJuIG51bGx9Y2F0Y2goVyl7cmV0dXJuIG51bGx9fTsKVmp0PWZ1bmN0aW9uKG4pe3ZhciBXPXt9O249KG4uTiYmYTUobik+PTI/bi5OLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIjoiIikuc3BsaXQoIlxyXG4iKTtmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl7aWYoZy5GaChuW2JdKSljb250aW51ZTt2YXIgRD1Td2gobltiXSk7bGV0IHY9RFswXTtEPURbMV07aWYodHlwZW9mIEQhPT0ic3RyaW5nIiljb250aW51ZTtEPUQudHJpbSgpO2xldCBrPVdbdl18fFtdO1dbdl09aztrLnB1c2goRCl9cmV0dXJuIFd4KFcsZnVuY3Rpb24oYil7cmV0dXJuIGIuam9pbigiLCAiKX0pfTsKdjM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPWJuKCk7Vz1XKCk7bi5YKEQsYm4oKS1iKTtyZXR1cm4gV307Cm5sMT1mdW5jdGlvbihuLFcsRCxiKXtuPVVVYihQX2koS2NoKG5ldyBrWSxuKSkpLmtDKCk7Vy5sZW5ndGgmJlpiaChuLHRqVShuZXcgY0ZaLFcpKTtiIT09dm9pZCAwJiYobi5Saj1iKTt2YXIgdj1uZXcgYTRqKG4uYnVpbGQoKSk7Zy51KHYsbik7dmFyIGs9bmV3IGhxKHtmbHVzaChoKXt0cnl7di5mbHVzaChoKX1jYXRjaCh4KXtEKHgpfX19KTtrLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57c2V0VGltZW91dCgoKT0+e3RyeXtrLmooKX1maW5hbGx5e3YuZGlzcG9zZSgpfX0pfSk7CmsuWD0xRTU7ay5mbHVzaEludGVydmFsPTNFNDtrLkouc2V0SW50ZXJ2YWwoM0U0KTtyZXR1cm4ga307CldXcj1mdW5jdGlvbihuKXtpZihuLnRpbWVyPT09dm9pZCAwKXtsZXQgVz1NYXRoLm1heCgwLG4uTituLkotYm4oKSk7bi50aW1lcj1zZXRUaW1lb3V0KCgpPT57dHJ5e24uY2FsbGJhY2soKX1maW5hbGx5e24uTj1ibigpLG4udGltZXI9dm9pZCAwfX0sVyl9fTsKYnBNPWZ1bmN0aW9uKG4sVz1bXSl7cmV0dXJuIG5ldyBEaHgobixXKX07CmJuPWZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/Lm5vdz8uKCk/P0RhdGUubm93KCl9OwpMVj1mdW5jdGlvbihuLFcpe2lmKG4uZGlzYWJsZSlyZXR1cm4gbmV3IHhZO1c9Vz9uMChXKTpbXTtyZXR1cm4gYnBNKHtWajpuLlZqLFJoOm4uSnAsTFQ6bi5SaSxSajpuLlJqLHREOm4udEQscm86bi5yb30sVyl9Owp2bHI9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIG51bGw7bj1KUyhuLDQpO3JldHVybiBuPT09bnVsbHx8bj09PXZvaWQgMD9udWxsOmszKG4pfTsKZyQ9ZnVuY3Rpb24oKXtlbS5pbnN0YW5jZXx8KGVtLmluc3RhbmNlPW5ldyBlbSk7cmV0dXJuIGVtLmluc3RhbmNlfTsKazVaPWZ1bmN0aW9uKG4sVyxELGIpe2lmKCFXJiYhRClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIWIpcmV0dXJuIFg2KFcsRCk7dmFyIHY7KHY9bi5KKVtiXXx8KHZbYl09bmV3IFByb21pc2UoKGssaCk9PntYNihXLEQpLnRoZW4oKCk9PntuLk49YjtrKCl9LHg9PntkZWxldGUgbi5KW2JdOwpoKHgpfSl9KSk7CnJldHVybiBuLkpbYl19Owp0cT1mdW5jdGlvbihuLFcpe3JldHVybiBrNVoobixnZShXLHF2LDEseFUpLGdlKFcsR0gsMix4VSksWTkoVywzLHZvaWQgMCx4VSkpfTsKWDY9ZnVuY3Rpb24obixXKXtyZXR1cm4gVz9oSFMoVyk6bj94aGIobik6UHJvbWlzZS5yZXNvbHZlKCl9OwpoSFM9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKChXLEQpPT57dmFyIGI9Zy56RigiU0NSSVBUIiksdj12bHIobik7Zy5QTShiLHYpO2Iub25sb2FkPSgpPT57Zy5DVChiKTtXKCl9OwpiLm9uZXJyb3I9KCk9PntnLkNUKGIpO0QoRXJyb3IoIkVXTFMiKSl9OwooZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChiKX0pfTsKeGhiPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZShXPT57dmFyIEQ9Zy56RigiU0NSSVBUIik7aWYobil7dmFyIGI9SlMobiw2KTtiPWI9PT1udWxsfHxiPT09dm9pZCAwP251bGw6bWMoYil9ZWxzZSBiPW51bGw7RC50ZXh0Q29udGVudD1LYihiKTtPTShEKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChEKTtnLkNUKEQpO1coKX0pfTsKTFcyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFTKG4sMSxXKX07CmVIaD1mdW5jdGlvbihuLFcpe3JldHVybiBBUyhuLDIsVyl9OwpnbGg9ZnVuY3Rpb24obixXKXtyZXR1cm4gQVMobiwzLFcpfTsKc2w9YXN5bmMgZnVuY3Rpb24obixXLEQsYix2KXtXPWdsaChlSGgoTFcyKG5ldyAkWSxuLnJlcXVlc3RLZXkpLFcpLEQpO0Q9bi5OKCk7bj1hd2FpdCBiLlYoImMiLG4ucmVxdWVzdEtleSx2LG4uY2xpZW50LmNyZWF0ZShXLEQpKTt2YXIgaz1WbChSeihuLDIpKTtpZihrLmxlbmd0aClyZXR1cm4gdjMoYiwoKT0+e3ZhciBoPW5ldyBVaW50OEFycmF5KGsubGVuZ3RoKTtmb3IodmFyIHg9MDt4PGsubGVuZ3RoO3grKyloW3hdPWtbeF0rOTc7aWYoZy5xaS5UZXh0RGVjb2RlciloPShuZXcgVGV4dERlY29kZXIpLmRlY29kZShoKTtlbHNlIGlmKGgubGVuZ3RoPD04MTkyKWg9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGgpO2Vsc2V7eD0iIjtmb3IobGV0IEw9MDtMPGgubGVuZ3RoO0wrPTgxOTIpe2xldCBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGgsTCxMKzgxOTIpO3grPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlKX1oPXh9cmV0dXJuIFg0WihoKX0sCiJVIik7CmI9Z2UobixyJCwxKTtpZighYil0aHJvdyBFcnJvcigiTWlzc2luZyBmaWVsZCIpO3JldHVybiBifTsKSDM9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7dmFyIHY9bi5OKCk7dmFyIGs9bmV3IE52O2s9QVMoaywxLG4ucmVxdWVzdEtleSk7dmFyIGg9QVMoaywyLFcpO1c9RC5WO2s9bi5yZXF1ZXN0S2V5O249bi5jbGllbnQ7dj1ZWShuLk4sbi5KKyIvJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9HZW5lcmF0ZUlUIixoLHZ8fHt9LHFUUyk7cmV0dXJuIFcuY2FsbChELCJnIixrLGIsdil9OwpHNWg9ZnVuY3Rpb24obixXLEQsYix2KXtyZXR1cm4gbiBpbnN0YW5jZW9mIGZWP3NsKG4sYix2LFcsRCk6c2wobixiLHYsbmV3IHhZLDApfTsKckFiPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGI9ZyQoKSx2PVByb21pc2UucmVzb2x2ZSh2b2lkIDApLGspe2F3YWl0IDA7Zm9yKHZhciBoOzspe2xldCB4PW51bGw7aWYoaCl7SnEobiw3KTt0cnl7eD1hd2FpdCBJaShoLnNuYXBzaG90KHt9KSxrLmpkLCgpPT5Qcm9taXNlLnJlc29sdmUoIkU6Q1RPIikpfWNhdGNoKEcpe3g9IkU6VUNFIn19bGV0IEwsZT1uZXcgZy5oSChoP2sudzg6ay5DcSxrLm96LGsuZDgsay5BaSk7CmZvcihsZXQgRz0xO0c8PWsubWF4QXR0ZW1wdHM7RysrKXtpZihHIT09MSl7SnEobiwwKTtuLk49bmV3IFNtKGUuZ2V0VmFsdWUoKSxrLnVtLGsubmIpO2xldCByPWF3YWl0IG4uTi5wcm9taXNlO24uTj12b2lkIDA7cj09PTE/KEc9MSxlLnJlc2V0KCkpOmcueEUoZSl9dHJ5e2xldCByO0Q/cj1EOihKcShuLDUpLHI9YXdhaXQgSWkoRzVoKFcsbi5sb2dnZXIsRyxiLk4seCksay5ocCwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoIlJHRjpGZXRjaCB0aW1lZCBvdXQiKSkpKTsKSnEobiwzKTthd2FpdCBJaSh0cShiLHIpLGsuUVgsKCk9PlByb21pc2UucmVqZWN0KEVycm9yKCJEVFo6U2NyaXB0IHRpbWVkIG91dCIpKSk7CkpxKG4sOCk7YXdhaXQgdjtsZXQgTj1uZXcgQXEoe2NoYWxsZW5nZTpyLHgzOm4ub3B0aW9ucy54Myx3MzpuLm9wdGlvbnMudzN9KTthd2FpdCBJaShOLk92LGsucUssKCk9PlByb21pc2UucmVqZWN0KEVycm9yKCJRRUc6U2V0dXAgdGltZWQgb3V0IikpKTsKTD1OO2JyZWFrfWNhdGNoKHIpe24uaGFuZGxlRXJyb3IociksbUkobil9fWlmKG4ucU4oKSlicmVhaztMJiYoRD12b2lkIDAsdDFVKG4saCksaD1MLCRoaChuLEwpLG1JKG4pKTtKcShuLDIpO24uTj1uZXcgU20oay5GWixrLnVtLGsubmIpO24uaXNQYXVzZWQmJm4uTi5wYXVzZSgpO2F3YWl0IG4uTi5wcm9taXNlO24uTj12b2lkIDA7aWYobi5xTigpKWJyZWFrfWg/LmRpc3Bvc2UoKX07CnNQMj1mdW5jdGlvbihuKXtuLks9RXJyb3IoIkNhbmNlbGxlZCBieSBkaXNwb3NlIik7bi5qLnJlc29sdmUoKTtXMihuLlYucHJvbWlzZSk7bi5WLnJlamVjdChFcnJvcigiQ2FuY2VsbGVkIGJ5IGRpc3Bvc2UiKSk7bi5sb2dnZXIuZGlzcG9zZSgpO1Byb21pc2UuYWxsKG4uWCkudGhlbihhc3luYygpPT57bi5XPy5kaXNwb3NlKCk7bi5XPXZvaWQgMH0pOwpuLlg9W107bi5OPy5KKCk7VzIobi5KLnByb21pc2UpO24uSi5yZWplY3QoRXJyb3IoIkNhbmNlbGxlZCBieSBkaXNwb3NlIikpfTsKTlR0PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKG4ucU4oKSl0aHJvdyBFcnJvcigiQWxyZWFkeSBkaXNwb3NlZCIpO24uTj8uSigpO2F3YWl0IG4uSi5wcm9taXNlfTsKcDRpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5xSjtuLnFKPSgpPT57RCgpO1coKX19OwokaGg9ZnVuY3Rpb24obixXKXtuLnFOKCl8fChuLlc9VyxuLmxvZ2dlci51cGRhdGUoVy5RRCgpKSxuLmoucmVzb2x2ZSgpLG4uVi5yZXNvbHZlKHZvaWQgMCksbi5xSigpKX07CnQxVT1mdW5jdGlvbihuLFcpe1cmJihQcm9taXNlLmFsbChuLlgpLnRoZW4oKCk9PnZvaWQgVy5kaXNwb3NlKCkpLG4uWD1bXSl9OwpKcT1mdW5jdGlvbihuLFcpe24uWT1XO24ub3B0aW9ucy5mUD8uKFcpfTsKbUk9ZnVuY3Rpb24obil7bi5xTigpfHwobi5KLnJlc29sdmUoKSxuLko9bmV3IGcuS1YpfTsKSWk9ZnVuY3Rpb24obixXLEQpe3ZhciBiO0Q9KG5ldyBQcm9taXNlKHY9PntiPXNldFRpbWVvdXQodixXKX0pKS50aGVuKEQpOwpXMihEKTtyZXR1cm4gUHJvbWlzZS5yYWNlKFtuLmZpbmFsbHkoKCk9PnZvaWQgY2xlYXJUaW1lb3V0KGIpKSwKRF0pfTsKWVRVPWZ1bmN0aW9uKG4sVyl7bi5lbmRUaW1lTXM9RGF0ZS5ub3coKStXO24udGljaygpfTsKT2w9ZnVuY3Rpb24obil7bi5OJiYoY2xlYXJUaW1lb3V0KG4uTiksbi5OPW51bGwpfTsKUDM9ZnVuY3Rpb24obixXKXt0cnl7cmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuLFcpLCEwfWNhdGNoKEQpe3JldHVybiExfX07ClpvPWZ1bmN0aW9uKG4sVz0wLEQ9bi5sZW5ndGgsYil7dmFyIHY9MDtmb3IoYiYmKHY9Wm8oYikpO1c8RDtXKyspdj1IcGkoMzEsdikrKHR5cGVvZiBuPT09InN0cmluZyI/bi5jaGFyQ29kZUF0KFcpOm5bV10pfDA7cmV0dXJuIHZ9Owp5aT1mdW5jdGlvbihuKXt2YXIgW1csRF09W1pvKG4sMCxuLmxlbmd0aD4+MSxVbCksWm8obixuLmxlbmd0aD4+MSldO3JldHVybiBXLnRvU3RyaW5nKDE2KStELnRvU3RyaW5nKDE2KX07CkVsPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W1pvKFcsMCxXLmxlbmd0aD4+MSx2b2lkIDApLFpvKFcsVy5sZW5ndGg+PjEpXTtuPW5ldyBVaW50MzJBcnJheShuLmJ1ZmZlcik7Vz1uWzBdO3ZhciBbYix2XT1EO2ZvcihEPTE7RDxuLmxlbmd0aDtEKz0yKXt2YXIgaz1XLGg9RCx4PWIsTD12O2ZvcihsZXQgZT0wO2U8MjI7ZSsrKWg9aD4+Pjh8aDw8MjQsaCs9a3wwLGhePXgrMzgyOTMsaz1rPDwzfGs+Pj4yOSxrXj1oLEw9TD4+Pjh8TDw8MjQsTCs9eHwwLExePWUrMzgyOTMseD14PDwzfHg+Pj4yOSx4Xj1MO2s9W2ssaF07bltEXV49a1swXTtEKzE8bi5sZW5ndGgmJihuW0QrMV1ePWtbMV0pfX07CmZlYj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSg0LShVbC5sZW5ndGgrRC5sZW5ndGgpJTQpJTQsaD1uZXcgVWludDhBcnJheSg0K2srVWwubGVuZ3RoKzQrRC5sZW5ndGgpLHg9bmV3IERhdGFWaWV3KGguYnVmZmVyKSxMPTA7eC5zZXRVaW50MzIoTCxNYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTUpO0w9TCs0K2s7aC5zZXQoVWwsTCk7TCs9VWwubGVuZ3RoO3guc2V0VWludDMyKEwsdik7aC5zZXQoRCxMKzQpO0VsKGgsYik7cmV0dXJuIG4ucXAoVyxlPT52b2lkIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShlKSk/UDMoVyxnLkVBKGgpKT8icyI6InQiOiJpIn07CkpBdz1mdW5jdGlvbihuLFcpe3ZhciBEPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuKTtpZighRClyZXR1cm5bIm0iXTt0cnl7dmFyIGI9bHAoRCk7RWwoYixXKX1jYXRjaCh2KXtyZXR1cm4gZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG4pLFsiYyJdfWZvcihXPTQ7Vzw3JiZiW1ddPT09MDspVysrO2ZvcihEPTA7RDxVbC5sZW5ndGg7RCsrKWlmKGJbVysrXSE9PVVsW0RdKXJldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0obiksWyJkIl07RD0obmV3IERhdGFWaWV3KGIuYnVmZmVyKSkuZ2V0VWludDMyKFcpO3JldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKT49RD8oZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG4pLFsiZSJdKTpbImEiLG5ldyBVaW50OEFycmF5KGIuYnVmZmVyLFcrNCldfTsKSWV3PWZ1bmN0aW9uKG4pe3ZhciBXPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiaVU1cS0hTzlAJCIpO2lmKCFXKXJldHVybiBuZXcgdW4obik7dmFyIEQ9Vy5zcGxpdCgiLCIpO2lmKEQubGVuZ3RoPDIpcmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiaVU1cS0hTzlAJCIpLG5ldyB1bihuKTtXPUQuc2xpY2UoMSk7Vy5sZW5ndGg9PT0xJiZXWzBdPT09IiImJihXPVtdKTtEPU51bWJlcihEWzBdKTtyZXR1cm4gaXNOYU4oRCl8fEQ8MHx8RD5XLmxlbmd0aD8oZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJpVTVxLSFPOUAkIiksbmV3IHVuKG4pKTpuZXcgdW4obixELFcpfTsKbWh3PWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoKXtELT1iO0QtPXY7RF49dj4+PjEzO2ItPXY7Yi09RDtiXj1EPDw4O3YtPUQ7di09Yjt2Xj1iPj4+MTM7RC09YjtELT12O0RePXY+Pj4xMjtiLT12O2ItPUQ7Yl49RDw8MTY7di09RDt2LT1iO3ZePWI+Pj41O0QtPWI7RC09djtEXj12Pj4+MztiLT12O2ItPUQ7Yl49RDw8MTA7di09RDt2LT1iO3ZePWI+Pj4xNX0Kbj1TVHIobik7Zm9yKHZhciBEPTI2NTQ0MzU3NjksYj0yNjU0NDM1NzY5LHY9MzE0MTU5MjY1LGs9bi5sZW5ndGgsaD1rLHg9MDtoPj0xMjtoLT0xMix4Kz0xMilEKz1vaShuLHgpLGIrPW9pKG4seCs0KSx2Kz1vaShuLHgrOCksVygpO3YrPWs7c3dpdGNoKGgpe2Nhc2UgMTE6dis9blt4KzEwXTw8MjQ7Y2FzZSAxMDp2Kz1uW3grOV08PDE2O2Nhc2UgOTp2Kz1uW3grOF08PDg7Y2FzZSA4OmIrPW5beCs3XTw8MjQ7Y2FzZSA3OmIrPW5beCs2XTw8MTY7Y2FzZSA2OmIrPW5beCs1XTw8ODtjYXNlIDU6Yis9blt4KzRdO2Nhc2UgNDpEKz1uW3grM108PDI0O2Nhc2UgMzpEKz1uW3grMl08PDE2O2Nhc2UgMjpEKz1uW3grMV08PDg7Y2FzZSAxOkQrPW5beCswXX1XKCk7cmV0dXJuIEFBUy50b1N0cmluZyh2KX07ClNUcj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2gobi5jaGFyQ29kZUF0KEQpKTtyZXR1cm4gV307Cm9pPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5bVyswXSsobltXKzFdPDw4KSsobltXKzJdPDwxNikrKG5bVyszXTw8MjQpfTsKZCQ9ZnVuY3Rpb24obixXKXt2YXIgRD1zZXRUaW1lb3V0KCgpPT57bi5YLnJlc29sdmUoKX0sVyk7Cm4uYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KEQpKX07CmxuPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9YCR7VyhuLmVycm9yLm1lc3NhZ2UpfToke1cobi5lcnJvci5zdGFjayl9YC5zdWJzdHJpbmcoMCwyMDQ4KTtXPUQubGVuZ3RoKzE7RD16SChEKTt2YXIgYj1uZXcgVWludDhBcnJheSg0K0QubGVuZ3RoKTtiLnNldChbNDIsVyYxMjd8MTI4LFc+Pjcsbi5lcnJvci5jb2RlXSk7Yi5zZXQoRCw0KTtyZXR1cm4gYn07CnpIPWZ1bmN0aW9uKG4pe3JldHVybiBnbG9iYWxUaGlzLlRleHRFbmNvZGVyPyhuZXcgVGV4dEVuY29kZXIpLmVuY29kZShuKTpMMChuKX07CktXVT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4gaW5zdGFuY2VvZiBmVj9IMyhuLEQsVywxKTpuLlpqKEQpfTsKQjM9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9dm9pZCAwO24uaisrO3ZhciBEPW5ldyBnLktWO24uTzEgaW5zdGFuY2VvZiBUSCYmbi5PMS5YLnB1c2goRC5wcm9taXNlKTtpZihuLlhsKXtsZXQgaz1uZXcgZy5LVjtzZXRUaW1lb3V0KCgpPT52b2lkIGsucmVzb2x2ZSgpKTsKYXdhaXQgay5wcm9taXNlfXZhciBiPW4ubG9nZ2VyLnNoYXJlKCk7dHJ5e24uc3RhdGU9NTtsZXQgaz1bXSxoPWF3YWl0IElpKG4uTzEuc25hcHNob3Qoe3dfOnt9LHRMOmt9KSxuLmtkLnJTLCgpPT5Qcm9taXNlLnJlamVjdChuZXcgUUcoMTUsIk1EQTpUaW1lb3V0IikpKTsKam0obiwiTURBOkRpc3Bvc2VkIik7bGV0IHg9a1swXTtuLnN0YXRlPTY7bGV0IEw9YXdhaXQgSWkoS1dVKG4uVWcsYixoKSxuLmtkLlhVLCgpPT5Qcm9taXNlLnJlamVjdChuZXcgUUcoMTAsIkJXQjpUaW1lb3V0IikpKTsKam0obiwiQldCOkRpc3Bvc2VkIik7bi5zdGF0ZT03O1c9djMoYiwoKT0+e3ZhciBlPU9waShuLEwsRCx4KTtlLlgucHJvbWlzZS50aGVuKCgpPT52b2lkIG4uVigpKTsKcmV0dXJuIGV9LCJpIil9Y2F0Y2goayl7Vz8uZGlzcG9zZSgpOwppZighbi5KKXtsZXQgaD1QZjIobixrKTtELnJlc29sdmUoKTt2YXIgdjtpZih2PW4uTzEgaW5zdGFuY2VvZiBUSCYmbi5qPDIpYTppZihrIGluc3RhbmNlb2YgUUcpdj1rLmNvZGUhPT0zMiYmay5jb2RlIT09MjAmJmsuY29kZSE9PTEwO2Vsc2V7aWYoayBpbnN0YW5jZW9mIENWKXN3aXRjaChrLmNvZGUpe2Nhc2UgMjpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6dj0hMTticmVhayBhfXY9ITB9aWYodil7bGV0IHg9c2V0VGltZW91dCgoKT0+dm9pZCBuLlYoKSwoMStNYXRoLnJhbmRvbSgpKi4yNSkqKG4uTj82RTQ6MUUzKSk7Cm4uYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KHgpKTsKcmV0dXJufW4uSj1ofWIuSihuLk4/MTM6MTQpO24uWC5yZWplY3Qobi5KKTtyZXR1cm59ZmluYWxseXtiLmRpc3Bvc2UoKX1uLnN0YXRlPTg7bi5qPTA7bi5OPy5kaXNwb3NlKCk7bi5OPVc7bi5YLnJlc29sdmUoKX07ClBmMj1mdW5jdGlvbihuLFcpe2lmKCEoVyBpbnN0YW5jZW9mIFFHKSlpZihXIGluc3RhbmNlb2YgQ1Ype2xldCBEPUVycm9yKFcudG9TdHJpbmcoKSk7RC5zdGFjaz1XLnN0YWNrO1c9bmV3IFFHKDExLCJFQkg6RXJyb3IiLEQpfWVsc2UgVz1uZXcgUUcoMTIsIkJTTzpVbmtub3duIixXKTtyZXR1cm4gbi5yZXBvcnRFcnJvcihXKX07CmptPWZ1bmN0aW9uKG4sVyl7aWYobi5xTigpKXRocm93IG5ldyBRRyhuLk4/MjA6MzIsVyk7fTsKT3BpPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PSh1NChpVyhXLDIpKT8/MCkqMUUzO2lmKHY8PTApdGhyb3cgbmV3IFFHKDMxLCJUVE06SW52YWxpZCIpO2lmKFk5KFcsNCkpcmV0dXJuIG5ldyBacHQobi5sb2dnZXIsWTkoVyw0KSx2KTtpZighKHU0KGlXKFcsMykpPz8wKSlyZXR1cm4gbmV3IFVoaihuLmxvZ2dlcixWbChSeihXLDEpKSx2KTtpZighYil0aHJvdyBuZXcgUUcoNCwiUE1EOlVuZGVmaW5lZCIpO2I9YihWbChSeihXLDEpKSk7aWYodHlwZW9mIGIhPT0iZnVuY3Rpb24iKXRocm93IG5ldyBRRygxNiwiQVBGOkZhaWxlZCIpO24uSz1NYXRoLmZsb29yKChEYXRlLm5vdygpK3YpLzFFMyk7bj1uZXcgRjYobi5sb2dnZXIsYix1NChpVyhXLDMpKT8/MCx2KTtuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIEQucmVzb2x2ZSgpKTsKcmV0dXJuIG59OwpNdj1mdW5jdGlvbihuLFcsRCl7dHJ5e2lmKG4ucU4oKSl0aHJvdyBuZXcgUUcoMjEsIkJOVDpkaXNwb3NlZCIpO2lmKCFuLk4mJm4uSil0aHJvdyBuLko7cmV0dXJuIHlBMShuLFcsRCk/P0VsaShuLFcsRCk/P2lwcihuLFcsRCl9Y2F0Y2goYil7aWYoIVcuRVIpdGhyb3cgdyQobixiKTtyZXR1cm4gdU1aKG4sRCxiKX19Owp3JD1mdW5jdGlvbihuLFcpe1c9VyBpbnN0YW5jZW9mIFFHP1c6bmV3IFFHKDUsIlRWRDplcnJvciIsVyk7cmV0dXJuIG4ucmVwb3J0RXJyb3IoVyl9Owp5QTE9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLk4/LkZwKCgpPT5SaShuLFcpLEQsYj0+e2lmKG4uTiBpbnN0YW5jZW9mIEY2JiZXLmhHPy5yMyl0cnl7bi5jYWNoZT8uTihSaShuLFcpLGIsVy5oRy5hbSxuLkstMTIwKX1jYXRjaCh2KXtuLnJlcG9ydEVycm9yKG5ldyBRRygyNCwiRUxYOndyaXRlIix2KSl9fSl9OwpFbGk9ZnVuY3Rpb24obixXLEQpe2lmKFcuaEc/LkFCKXRyeXtsZXQgYj1uLmNhY2hlPy5KKFJpKG4sVyksVy5oRy5hbSk7cmV0dXJuIGI/RD92MyhuLmxvZ2dlciwoKT0+Zy5FQShiLDIpLCJhIik6Yjp2b2lkIDB9Y2F0Y2goYil7bi5yZXBvcnRFcnJvcihuZXcgUUcoMjMsIlJYTzpyZWFkIixiKSl9fTsKaXByPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7aWYoIVcuR3IpdGhyb3cgbmV3IFFHKDI5LCJTREY6bm90cmVhZHkiKTtyZXR1cm4gemIoYixuZXcgUWkobi5sb2dnZXIsMCxuLnN0YXRlKSkuRnAoKCk9PlJpKG4sVyksRCl9Y2F0Y2godil7Yi5lcnJvcj12LGIuaGFzRXJyb3I9ITB9ZmluYWxseXtseChiKX19Owp1TVo9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtsZXQgdj13JChuLEQpO3JldHVybiB6YihiLG5ldyBvbHcobi5sb2dnZXIsdikpLkZwKCgpPT5bXSxXKX1jYXRjaCh2KXtiLmVycm9yPXYsYi5oYXNFcnJvcj0hMH1maW5hbGx5e2x4KGIpfX07ClJpPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcueEM/Vy54QzpXLndfP3YzKG4ubG9nZ2VyLCgpPT5XLnhDPXpIKFcud18pLCJjIik6W119OwpuVz1mdW5jdGlvbigpe3ZhciBuPTAsVztyZXR1cm4gRD0+e1d8fChXPW5ldyB4WSk7dmFyIGI9bmV3IFFpKFcsbiwxKSx2PWIuRnAoKCk9PnpIKEQpLCEwKTsKYi5kaXNwb3NlKCk7bisrO3JldHVybiB2fX07CmcuV1k9ZnVuY3Rpb24obixXKXtpZihuKWZvcihsZXQgRCBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLEQpJiZXKG5bRF0sRCxuKX07CnpIaT1mdW5jdGlvbigpe3ZhciBuPVtdO2cuV1koZGhaLFc9PntuLnB1c2goVyl9KTsKcmV0dXJuIG59OwpUVHI9ZnVuY3Rpb24oKXt2YXIgbj1nLkRhKCJJRlJBTUUiKSxXPXt9O2cueTIobGVTKCksRD0+e24uc2FuZGJveCYmbi5zYW5kYm94LnN1cHBvcnRzJiZuLnNhbmRib3guc3VwcG9ydHMoRCkmJihXW0RdPSEwKX0pOwpyZXR1cm4gV307CmcuRGE9ZnVuY3Rpb24obixXPWRvY3VtZW50KXtyZXR1cm4gVy5jcmVhdGVFbGVtZW50KFN0cmluZyhuKS50b0xvd2VyQ2FzZSgpKX07CmcuYnI9ZnVuY3Rpb24obixXLEQsYil7dGhpcy5sZWZ0PW47dGhpcy50b3A9Vzt0aGlzLndpZHRoPUQ7dGhpcy5oZWlnaHQ9Yn07CnZZPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG49PVc/ITA6biYmVz9uLmxlZnQ9PVcubGVmdCYmbi53aWR0aD09Vy53aWR0aCYmbi50b3A9PVcudG9wJiZuLmhlaWdodD09Vy5oZWlnaHQ6ITF9OwpnLmgxPWZ1bmN0aW9uKG4sVyxEKXtpZih0eXBlb2YgVz09PSJzdHJpbmciKWtxKG4sRCxXKTtlbHNlIGZvcihsZXQgYiBpbiBXKWtxKG4sV1tiXSxiKX07CmtxPWZ1bmN0aW9uKG4sVyxEKXsoRD14cShuLEQpKSYmKGpQQy50ZXN0KEQpP24uc3R5bGUuc2V0UHJvcGVydHkoRCxXKTpuLnN0eWxlW0RdPVcpfTsKeHE9ZnVuY3Rpb24obixXKXt2YXIgRD1MV1tXXTtpZighRCl7dmFyIGI9cHAoVyk7RD1iO24uc3R5bGVbYl09PT12b2lkIDAmJihiPShnLlpsPyJXZWJraXQiOmcuZVM/Ik1veiI6bnVsbCkrSTFpKGIpLG4uc3R5bGVbYl0hPT12b2lkIDAmJihEPWIpKTtMV1tXXT1EfXJldHVybiBEfTsKZy5naD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc3R5bGVbcHAoVyldO3JldHVybiB0eXBlb2YgRCE9PSJ1bmRlZmluZWQiP0Q6bi5zdHlsZVt4cShuLFcpXXx8IiJ9OwpYbT1mdW5jdGlvbihuLFcpe3ZhciBEPWcuSksobik7cmV0dXJuIEQuZGVmYXVsdFZpZXcmJkQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSYmKG49RC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKG4sbnVsbCkpP25bV118fG4uZ2V0UHJvcGVydHlWYWx1ZShXKXx8IiI6IiJ9OwpxdD1mdW5jdGlvbihuKXt0cnl7cmV0dXJuIG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goVyl7cmV0dXJue2xlZnQ6MCx0b3A6MCxyaWdodDowLGJvdHRvbTowfX19OwpnLkdOPWZ1bmN0aW9uKG4pe3ZhciBXPWcuSksobiksRD1uZXcgZy5NWSgwLDApO2lmKG49PShXP2cuSksoVyk6ZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudClyZXR1cm4gRDtuPXF0KG4pO1c9Zy5TcChXKTtXPWcuRTAoVy5OKTtELng9bi5sZWZ0K1cueDtELnk9bi50b3ArVy55O3JldHVybiBEfTsKZy4kcT1mdW5jdGlvbihuLFcpe249dDEobik7Vz10MShXKTtyZXR1cm4gbmV3IGcuTVkobi54LVcueCxuLnktVy55KX07Cmcucmg9ZnVuY3Rpb24obil7bj1xdChuKTtyZXR1cm4gbmV3IGcuTVkobi5sZWZ0LG4udG9wKX07CnQxPWZ1bmN0aW9uKG4pe2lmKG4ubm9kZVR5cGU9PTEpcmV0dXJuIGcucmgobik7bj1uLmNoYW5nZWRUb3VjaGVzP24uY2hhbmdlZFRvdWNoZXNbMF06bjtyZXR1cm4gbmV3IGcuTVkobi5jbGllbnRYLG4uY2xpZW50WSl9OwpOdD1mdW5jdGlvbihuLFcpe2lmKFcgaW5zdGFuY2VvZiBnLlFlKXt2YXIgRD1XLmhlaWdodDtXPVcud2lkdGh9ZWxzZSB0aHJvdyBFcnJvcigibWlzc2luZyBoZWlnaHQgYXJndW1lbnQiKTtuLnN0eWxlLndpZHRoPXNqKFcsITApO24uc3R5bGUuaGVpZ2h0PXNqKEQsITApfTsKc2o9ZnVuY3Rpb24obixXKXt0eXBlb2Ygbj09Im51bWJlciImJihuPShXP01hdGgucm91bmQobik6bikrInB4Iik7cmV0dXJuIG59OwpnLnBXPWZ1bmN0aW9uKG4pe3ZhciBXPUNmMSxEOyhEPVhtKG4sImRpc3BsYXkiKSl8fChEPW4uY3VycmVudFN0eWxlP24uY3VycmVudFN0eWxlLmRpc3BsYXk6bnVsbCk7aWYoKER8fG4uc3R5bGUmJm4uc3R5bGUuZGlzcGxheSkhPSJub25lIilyZXR1cm4gVyhuKTtEPW4uc3R5bGU7dmFyIGI9RC5kaXNwbGF5LHY9RC52aXNpYmlsaXR5LGs9RC5wb3NpdGlvbjtELnZpc2liaWxpdHk9ImhpZGRlbiI7RC5wb3NpdGlvbj0iYWJzb2x1dGUiO0QuZGlzcGxheT0iaW5saW5lIjtuPVcobik7RC5kaXNwbGF5PWI7RC5wb3NpdGlvbj1rO0QudmlzaWJpbGl0eT12O3JldHVybiBufTsKQ2YxPWZ1bmN0aW9uKG4pe3ZhciBXPW4ub2Zmc2V0V2lkdGgsRD1uLm9mZnNldEhlaWdodCxiPWcuWmwmJiFXJiYhRDtyZXR1cm4oVz09PXZvaWQgMHx8YikmJm4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0PyhuPXF0KG4pLG5ldyBnLlFlKG4ucmlnaHQtbi5sZWZ0LG4uYm90dG9tLW4udG9wKSk6bmV3IGcuUWUoVyxEKX07CkZXWj1mdW5jdGlvbihuLFc9e30pe3JldHVybiBuZXcgQlR0KG4sVyl9Owp3NHI9ZnVuY3Rpb24obil7bi5WLnhWKCJkYXRhIixXPT57aWYoIjEiaW4gVyl7dmFyIEQ9V1siMSJdO2xldCBiO3RyeXtiPW4uSyhEKX1jYXRjaCh2KXtZcShuLG5ldyBDVigxMyxgRXJyb3Igd2hlbiBkZXNlcmlhbGl6aW5nIHJlc3BvbnNlIGRhdGE7IGVycm9yOiAke3Z9LCByZXNwb25zZTogJHtEfWApKX1iJiZIWShuLGIpfWlmKCIyImluIFcpZm9yKFc9ZlcobixXWyIyIl0pLEQ9MDtEPG4uai5sZW5ndGg7RCsrKW4ualtEXShXKX0pOwpuLlYueFYoImVuZCIsKCk9PntKMShuLElzKG4pKTtmb3IobGV0IFc9MDtXPG4uVy5sZW5ndGg7VysrKW4uV1tXXSgpfSk7Cm4uVi54VigiZXJyb3IiLCgpPT57aWYobi5OLmxlbmd0aCE9PTApe3ZhciBXPW4ueGhyLlc7VyE9PTB8fG4ueGhyLmlzU3VjY2VzcygpfHwoVz02KTt2YXIgRD0tMTtzd2l0Y2goVyl7Y2FzZSAwOnZhciBiPTI7YnJlYWs7Y2FzZSA3OmI9MTA7YnJlYWs7Y2FzZSA4OmI9NDticmVhaztjYXNlIDY6RD1uLnhoci5nZXRTdGF0dXMoKTtiPXozKEQpO2JyZWFrO2RlZmF1bHQ6Yj0xNH1KMShuLElzKG4pKTtXPVJCYihXKSsiLCBlcnJvcjogIituLnhoci5nZXRMYXN0RXJyb3IoKTtEIT09LTEmJihXKz1gLCBodHRwIHN0YXR1cyBjb2RlOiAke0R9YCk7WXEobixuZXcgQ1YoYixXKSl9fSl9OwpZcT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5OLmxlbmd0aDtEKyspbi5OW0RdKFcpfTsKSjE9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQ9MDtEPG4uWC5sZW5ndGg7RCsrKW4uWFtEXShXKX07CklzPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9Vmp0KG4ueGhyKTtPYmplY3Qua2V5cyhEKS5mb3JFYWNoKGI9PntXW2JdPURbYl19KTsKcmV0dXJuIFd9OwpIWT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5KLmxlbmd0aDtEKyspbi5KW0RdKFcpfTsKZlc9ZnVuY3Rpb24obixXKXt2YXIgRD0yLGI9e307dHJ5e2xldCBrO2s9TTFiKFcpO0Q9YVAoaywxKTt2YXIgdj1rLmdldE1lc3NhZ2UoKTtWRyhrLFJIaSwzKS5sZW5ndGgmJihiWyJncnBjLXdlYi1zdGF0dXMtZGV0YWlscy1iaW4iXT1XKX1jYXRjaChrKXtuLnhociYmbi54aHIuZ2V0U3RhdHVzKCk9PT00MDQ/KEQ9NSx2PSJOb3QgRm91bmQ6ICIrU3RyaW5nKG4ueGhyLkspKTooRD0xNCx2PWBVbmFibGUgdG8gcGFyc2UgUnBjU3RhdHVzOiAke2t9YCl9cmV0dXJue2NvZGU6RCxkZXRhaWxzOnYsbWV0YWRhdGE6Yn19OwpWMVU9ZnVuY3Rpb24obixXKXt2YXIgRD1uZXcgUVBTO0FIKG4ueGhyLCJjb21wbGV0ZSIsKCk9PntpZihuLnhoci5pc1N1Y2Nlc3MoKSl7dmFyIGI9VzMobi54aHIpO2lmKFcmJm4ueGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKT09PSJ0ZXh0L3BsYWluIil7aWYoIWF0b2IpdGhyb3cgRXJyb3IoIkNhbm5vdCBkZWNvZGUgQmFzZTY0IHJlc3BvbnNlIik7Yj1hdG9iKGIpfXRyeXt2YXIgdj1uLksoYil9Y2F0Y2goaCl7WXEobixTUyhuZXcgQ1YoMTMsYEVycm9yIHdoZW4gZGVzZXJpYWxpemluZyByZXNwb25zZSBkYXRhOyBlcnJvcjogJHtofSwgcmVzcG9uc2U6ICR7Yn1gKSxEKSk7cmV0dXJufWI9ejMobi54aHIuZ2V0U3RhdHVzKCkpO0oxKG4sSXMobikpO2I9PT0wP0hZKG4sdik6WXEobixTUyhuZXcgQ1YoYiwiWGhyIHN1Y2NlZWRlZCBidXQgdGhlIHN0YXR1cyBjb2RlIGlzIG5vdCAyMDAiKSxEKSl9ZWxzZXtiPVczKG4ueGhyKTtsZXQgaDt2PUlzKG4pO2lmKGIpe3ZhciBrPQpmVyhuLGIpO2I9ay5jb2RlO2g9ay5kZXRhaWxzO2s9ay5tZXRhZGF0YX1lbHNlIGI9MixoPWBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogJHtTdHJpbmcobi54aHIuSyl9LCBlcnJvciBjb2RlOiAke24ueGhyLld9LCBlcnJvcjogJHtuLnhoci5nZXRMYXN0RXJyb3IoKX1gLGs9djtKMShuLHYpO1lxKG4sU1MobmV3IENWKGIsaCxrKSxEKSl9fSl9OwpBMT1mdW5jdGlvbihuLFcpe1c9bi5pbmRleE9mKFcpO1c+LTEmJm4uc3BsaWNlKFcsMSl9OwpTUz1mdW5jdGlvbihuLFcpe1cuc3RhY2smJihuLnN0YWNrKz0iXG4iK1cuc3RhY2spO3JldHVybiBufTsKbUc9ZnVuY3Rpb24obil7dGhpcy5YPW4uWTZ8fG51bGw7dGhpcy5XPW4uWUJ8fCExO3RoaXMuSj12b2lkIDB9OwpLVz1mdW5jdGlvbihuLFcpe2cub1cuY2FsbCh0aGlzKTt0aGlzLnR3PW47dGhpcy5WPVc7dGhpcy5qPXZvaWQgMDt0aGlzLnN0YXR1cz10aGlzLnJlYWR5U3RhdGU9MDt0aGlzLnJlc3BvbnNlVHlwZT10aGlzLnJlc3BvbnNlVGV4dD10aGlzLnJlc3BvbnNlPXRoaXMuc3RhdHVzVGV4dD0iIjt0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3RoaXMuRD1uZXcgSGVhZGVyczt0aGlzLko9bnVsbDt0aGlzLmNKPSJHRVQiO3RoaXMuTz0iIjt0aGlzLk49ITE7dGhpcy5LPXRoaXMuVz10aGlzLlg9bnVsbDt0aGlzLlk9bmV3IEFib3J0Q29udHJvbGxlcn07Ck9qPWZ1bmN0aW9uKG4pe24uVy5yZWFkKCkudGhlbihuLmxFLmJpbmQobikpLmNhdGNoKG4uRFAuYmluZChuKSl9OwpaYT1mdW5jdGlvbihuKXtuLnJlYWR5U3RhdGU9NDtuLlg9bnVsbDtuLlc9bnVsbDtuLks9bnVsbDtQWShuKX07ClBZPWZ1bmN0aW9uKG4pe24ub25yZWFkeXN0YXRlY2hhbmdlJiZuLm9ucmVhZHlzdGF0ZWNoYW5nZS5jYWxsKG4pfTsKY0FVPWZ1bmN0aW9uKG4pe2lmKG4uejcmJnR5cGVvZiBuLno3PT0iZnVuY3Rpb24iKXJldHVybiBuLno3KCk7aWYodHlwZW9mIE1hcCE9PSJ1bmRlZmluZWQiJiZuIGluc3RhbmNlb2YgTWFwfHx0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20obi52YWx1ZXMoKSk7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm4gbi5zcGxpdCgiIik7aWYoZy5ZMihuKSl7bGV0IFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdKTtyZXR1cm4gV31yZXR1cm4gaEsobil9OwphZWg9ZnVuY3Rpb24obil7aWYobi51QiYmdHlwZW9mIG4udUI9PSJmdW5jdGlvbiIpcmV0dXJuIG4udUIoKTtpZighbi56N3x8dHlwZW9mIG4uejchPSJmdW5jdGlvbiIpe2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmbiBpbnN0YW5jZW9mIE1hcClyZXR1cm4gQXJyYXkuZnJvbShuLmtleXMoKSk7aWYoISh0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpKXtpZihnLlkyKG4pfHx0eXBlb2Ygbj09PSJzdHJpbmciKXtsZXQgVz1bXTtuPW4ubGVuZ3RoO2ZvcihsZXQgRD0wO0Q8bjtEKyspVy5wdXNoKEQpO3JldHVybiBXfXJldHVybiBnLkxUKG4pfX19OwpuS2k9ZnVuY3Rpb24obixXLEQpe2lmKG4uZm9yRWFjaCYmdHlwZW9mIG4uZm9yRWFjaD09ImZ1bmN0aW9uIiluLmZvckVhY2goVyxEKTtlbHNlIGlmKGcuWTIobil8fHR5cGVvZiBuPT09InN0cmluZyIpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLFcsRCk7ZWxzZXtsZXQgYj1hZWgobiksdj1jQVUobiksaz12Lmxlbmd0aDtmb3IobGV0IGg9MDtoPGs7aCsrKVcuY2FsbChELHZbaF0sYiYmYltoXSxuKX19OwpnLlVqPWZ1bmN0aW9uKG4pe3RoaXMuTj10aGlzLlk9dGhpcy5YPSIiO3RoaXMuVj1udWxsO3RoaXMuaj10aGlzLko9IiI7dGhpcy5LPSExO3ZhciBXO24gaW5zdGFuY2VvZiBnLlVqPyh0aGlzLks9bi5LLHlOKHRoaXMsbi5YKSx0aGlzLlk9bi5ZLEVqKHRoaXMsbi5OKSxpcih0aGlzLG4uViksdGhpcy5KPW4uSix1cih0aGlzLG4uVy5jbG9uZSgpKSx0aGlzLmo9bi5qKTpuJiYoVz1nLmZwKFN0cmluZyhuKSkpPyh0aGlzLks9ITEseU4odGhpcyxXWzFdfHwiIiwhMCksdGhpcy5ZPW9zKFdbMl18fCIiKSxFaih0aGlzLFdbM118fCIiLCEwKSxpcih0aGlzLFdbNF0pLHRoaXMuSj1vcyhXWzVdfHwiIiwhMCksdXIodGhpcyxXWzZdfHwiIiwhMCksdGhpcy5qPW9zKFdbN118fCIiKSk6KHRoaXMuSz0hMSx0aGlzLlc9bmV3IGRoKG51bGwsdGhpcy5LKSl9Owp5Tj1mdW5jdGlvbihuLFcsRCl7bi5YPUQ/b3MoVywhMCk6VztuLlgmJihuLlg9bi5YLnJlcGxhY2UoLzokLywiIikpfTsKRWo9ZnVuY3Rpb24obixXLEQpe24uTj1EP29zKFcsITApOld9Owppcj1mdW5jdGlvbihuLFcpe2lmKFcpe1c9TnVtYmVyKFcpO2lmKGlzTmFOKFcpfHxXPDApdGhyb3cgRXJyb3IoIkJhZCBwb3J0IG51bWJlciAiK1cpO24uVj1XfWVsc2Ugbi5WPW51bGx9Owp1cj1mdW5jdGlvbihuLFcsRCl7VyBpbnN0YW5jZW9mIGRoPyhuLlc9VyxXeGgobi5XLG4uSykpOihEfHwoVz16TihXLER4UykpLG4uVz1uZXcgZGgoVyxuLkspKX07CmxyPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgZy5Vaj9uLmNsb25lKCk6bmV3IGcuVWoobil9Owpvcz1mdW5jdGlvbihuLFcpe3JldHVybiBuP1c/ZGVjb2RlVVJJKG4ucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChuKToiIn07CnpOPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdHlwZW9mIG49PT0ic3RyaW5nIj8obj1lbmNvZGVVUkkobikucmVwbGFjZShXLGIweCksRCYmKG49bi5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxuKTpudWxsfTsKYjB4PWZ1bmN0aW9uKG4pe249bi5jaGFyQ29kZUF0KDApO3JldHVybiIlIisobj4+NCYxNSkudG9TdHJpbmcoMTYpKyhuJjE1KS50b1N0cmluZygxNil9OwpkaD1mdW5jdGlvbihuLFcpe3RoaXMuSj10aGlzLk49bnVsbDt0aGlzLlc9bnx8bnVsbDt0aGlzLlg9ISFXfTsKVE49ZnVuY3Rpb24obil7bi5OfHwobi5OPW5ldyBNYXAsbi5KPTAsbi5XJiZnLk9UKG4uVyxmdW5jdGlvbihXLEQpe24uYWRkKEc1KFcpLEQpfSkpfTsKQ1c9ZnVuY3Rpb24obixXKXtUTihuKTtXPWpTKG4sVyk7cmV0dXJuIG4uTi5oYXMoVyl9OwpqUz1mdW5jdGlvbihuLFcpe1c9U3RyaW5nKFcpO24uWCYmKFc9Vy50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gV307Cld4aD1mdW5jdGlvbihuLFcpe1cmJiFuLlgmJihUTihuKSxuLlc9bnVsbCxuLk4uZm9yRWFjaChmdW5jdGlvbihELGIpe3ZhciB2PWIudG9Mb3dlckNhc2UoKTtiIT12JiYodGhpcy5yZW1vdmUoYiksdGhpcy5yZW1vdmUodiksRC5sZW5ndGg+MCYmKHRoaXMuVz1udWxsLHRoaXMuTi5zZXQoalModGhpcyx2KSxnLlJNKEQpKSx0aGlzLko9dGhpcy5KK0QubGVuZ3RoKSl9LG4pKTsKbi5YPVd9Owp2S2I9ZnVuY3Rpb24obil7dmFyIFc9IiI7Zy5hXyhuLGZ1bmN0aW9uKEQsYil7Vys9YjtXKz0iOiI7Vys9RDtXKz0iXHJcbiJ9KTsKcmV0dXJuIFd9OwpCWT1mdW5jdGlvbihuKXtnLkZNLmNhbGwodGhpcyk7dGhpcy5KPW47dGhpcy5OPXt9fTsKRm09ZnVuY3Rpb24obixXLEQsYix2LGspe2lmKEFycmF5LmlzQXJyYXkoRCkpZm9yKGxldCBoPTA7aDxELmxlbmd0aDtoKyspRm0obixXLERbaF0sYix2LGspO2Vsc2V7Vz1TZyhXLEQsYnx8bi5oYW5kbGVFdmVudCx2LGt8fG4uSnx8bik7aWYoIVcpcmV0dXJuIG47bi5OW1cua2V5XT1XfXJldHVybiBufTsKd2g9ZnVuY3Rpb24obixXLEQpe24uVz0hMTt0aHJvdyBFcnJvcigiVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5KKyIuIEVycm9yOiAiK0QrIi4gV2l0aCBpbnB1dDpcbiIrVyk7fTsKTXQ9ZnVuY3Rpb24oKXt0aGlzLlY9bnVsbDt0aGlzLks9W107dGhpcy5YPXRoaXMuSj10aGlzLlc9dGhpcy5OPXRoaXMuRD0wO3RoaXMuaj1udWxsO3RoaXMuWT0wfTsKUnM9ZnVuY3Rpb24obixXLEQsYil7bi5OPTM7bi5WPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIituLkQrIi8iK0QrIi4gRXJyb3I6ICIrYisiLiBXaXRoIGlucHV0OlxuIitXO3Rocm93IEVycm9yKG4uVik7fTsKUU49ZnVuY3Rpb24oKXt0aGlzLk49bnVsbDt0aGlzLko9MDt0aGlzLlc9bmV3IGtoUzt0aGlzLlg9bmV3IE10fTsKVk49ZnVuY3Rpb24obixXLEQpe24uTj0iVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5KKyIuIEVycm9yOiAiK0QrIi4gV2l0aCBpbnB1dDpcbiIrVzt0aHJvdyBFcnJvcihuLk4pO307CmNZPWZ1bmN0aW9uKG4pe3JldHVybiBuPT0iXHIifHxuPT0iXG4ifHxuPT0iICJ8fG49PSJcdCJ9Owphcz1mdW5jdGlvbihuKXt0aGlzLkQ9bnVsbDt0aGlzLlY9W107dGhpcy5YPSIiO3RoaXMuY0o9W107dGhpcy5XPXRoaXMuSj0wO3RoaXMuSz0hMTt0aGlzLlk9MDt0aGlzLnR3PS9bXFwiXS9nO3RoaXMuTj10aGlzLmo9MDt0aGlzLk89ISghbnx8IW4uWkgpfTsKbl89ZnVuY3Rpb24obixXLEQpe24uaj0zO24uRD0iVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5XKyIvIitEKyIuIFdpdGggaW5wdXQ6XG4iK1c7dGhyb3cgRXJyb3Iobi5EKTt9OwpXSz1mdW5jdGlvbigpe3RoaXMuaj10aGlzLlc9bnVsbDt0aGlzLko9dGhpcy5OPTA7dGhpcy5YPVtdO3RoaXMuVj0hMX07CmhDeD1mdW5jdGlvbihuKXt2YXIgVz1uLk4/bi5OLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKTpudWxsO2lmKCFXKXJldHVybiBudWxsO1c9Vy50b0xvd2VyQ2FzZSgpO3JldHVybiBXLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKT9XLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24rcHJvdG9idWYiKT9uZXcgV0s6bmV3IGFzOlcuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24veC1wcm90b2J1ZiIpPyhuPW4uTj9uLk4uZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmciKTpudWxsKT9uLnRvTG93ZXJDYXNlKCk9PSJiYXNlNjQiP25ldyBRTjpudWxsOm5ldyBNdDpudWxsfTsKRGk9ZnVuY3Rpb24obixXKXtuLmohPVcmJihuLmo9VyxuLksmJm4uSygpKX07CmJIPWZ1bmN0aW9uKG4pe24uWS5UaSgpO2lmKG4uTil7bGV0IFc9bi5OO24uTj1udWxsO1cuYWJvcnQoKTtXLmRpc3Bvc2UoKX19Owp2Sz1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKXtsZXQgYj1uW0RdO1cuZm9yRWFjaChmdW5jdGlvbih2KXt0cnl7dihiKX1jYXRjaChrKXt9fSl9fTsKa3Q9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkpbV107RCYmRC5mb3JFYWNoKGZ1bmN0aW9uKGIpe3RyeXtiKCl9Y2F0Y2godil7fX0pOwooRD1uLk5bV10pJiZELmZvckVhY2goZnVuY3Rpb24oYil7YigpfSk7Cm4uTltXXT1bXX07Cnh4aj1mdW5jdGlvbihuLFcpe3JldHVybiBXLnJlZHVjZSgoRCxiKT0+dj0+Yi5pbnRlcmNlcHQodixEKSxuKX07Ckx4aT1mdW5jdGlvbihuLFcpe3JldHVybiBXLnJlZHVjZSgoRCxiKT0+dj0+Yi5pbnRlcmNlcHQodixEKSxuKX07CmVDVT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5sMCx2PVcuZ2V0TWV0YWRhdGEoKSxrPWhhKG4sITApO249eHQobix2LGssRCtiLmdldE5hbWUoKSk7RD1MXyhrLGIuVywhMSk7VjFVKEQsdlsiWC1Hb29nLUVuY29kZS1SZXNwb25zZS1JZi1FeGVjdXRhYmxlIl09PT0iYmFzZTY0Iik7Vz1iLk4oVy5mdik7ay5zZW5kKG4sIlBPU1QiLFcpO3JldHVybiBEfTsKZ0t0PWZ1bmN0aW9uKG4sVyxELGIsdixrPXt9KXt2YXIgaD1XLnN1YnN0cmluZygwLFcubGVuZ3RoLXYubmFtZS5sZW5ndGgpLHg9az8uc2lnbmFsO3JldHVybiBMeGkoTD0+bmV3IFByb21pc2UoKGUsRyk9PntpZih4Py5hYm9ydGVkKXtsZXQgSD1uZXcgQ1YoMSwiQWJvcnRlZCIpO0guY2F1c2U9eC5yZWFzb247RyhIKX1lbHNle3ZhciByPXt9LE49ZUNVKG4sTCxoKTtOLnhWKCJlcnJvciIsSD0+dm9pZCBHKEgpKTsKTi54VigibWV0YWRhdGEiLEg9PntyPUh9KTsKTi54VigiZGF0YSIsSD0+e2UoRldaKEgscikpfSk7CngmJnguYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57Ti5jYW5jZWwoKTt2YXIgSD1uZXcgQ1YoMSwiQWJvcnRlZCIpO0guY2F1c2U9eC5yZWFzb247RyhIKX0pfX0pLG4uRk4pLmNhbGwobix2LkooRCxiKSkudGhlbihMPT5MLlB6KX07ClhkPWZ1bmN0aW9uKG4sVz0hMSl7ZVgoMjgsNzIzMSxuKTtpZihuW0lbMjhdXSE9PUlbMTVdKXt2YXIgRD1uW0lbOF1dKCk7RFtJWzM0XV0oSVszMl0sSVs0MF0pO3JldHVybiBEfXZhciBiPW5bSVs3Ml1dKCk7RD1uZXcgZy5VaihiKTt2YXIgdj1uW0lbMzNdXShJWzcwXSksaz1NMygxNiw0MjYyLG5bSVszM11dKElbNzRdKXx8SVsyMV0pW0lbMzZdXShJWzQ3XSk7aWYodiYmayYma1tJWzVdXT4xJiZrWzFdKXJldHVybiBiPUQuTixuPWJbSVs4MV1dKC9eW14uXSovLElbMjFdKSxFaihELGAke2JbSVsxOF1dKElbNDRdKT09PTA/SVs0NF06SVs4MF19JHt2fS0tLSR7a1sxXX0ke259YCksRD1uZXcgZy53WihEW0lbMF1dKCkpLERbSVszNF1dKElbMzhdLElbNDBdKSxEO2lmKFcpcmV0dXJuIEQ9bltJWzhdXSgpLERbSVszNF1dKElbMzhdLElbNDBdKSxEO3Y9RC5OW0lbNl1dKElbNTZdKTtELk5bSVs2XV0oSVsyN10pPyhFaihELElbODJdKSxiPURbSVswXV0oKSk6RC5OW0lbNl1dKElbNTJdKT8KKEVqKEQsSVsxOV0pLGI9RFtJWzBdXSgpKTooRD1lQShiKSxnWChEKSYmKGI9RCkpO0Q9bmV3IGcud1ooYik7RFtJWzM0XV0oSVs3OV0sSVs0MF0pO3YmJkRbSVszNF1dKElbMl0sSVs3MV0pO3JldHVybiBEfTsKWVk9ZnVuY3Rpb24obixXLEQsYix2LGs9e30pe3JldHVybiBnS3QobixXLEQsYix2LGspfTsKaGE9ZnVuY3Rpb24obixXKXtXPW4uTiYmIVc7cmV0dXJuIG4uU258fFc/bmV3IHdwKG5ldyBtRyh7WTY6bi5TbixZQjpXfSkpOm5ldyB3cH07Cnh0PWZ1bmN0aW9uKG4sVyxELGIpe1dbIkNvbnRlbnQtVHlwZSJdPSJhcHBsaWNhdGlvbi9qc29uK3Byb3RvYnVmIjtXWyJYLVVzZXItQWdlbnQiXT0iZ3JwYy13ZWItamF2YXNjcmlwdC8wLjEiO3ZhciB2PVcuQXV0aG9yaXphdGlvbjtpZih2JiZYMnIuaGFzKHYuc3BsaXQoIiAiKVswXSl8fG4ud2l0aENyZWRlbnRpYWxzKUQuTz0hMDtpZihuLllPKW49YixnLkdGKFcpP2I9bjooVz12S2IoVyksdHlwZW9mIG49PT0ic3RyaW5nIj9iPWcudWYobixxaCgiJGh0dHBIZWFkZXJzIiksVyk6KG4uVy5zZXQoIiRodHRwSGVhZGVycyIsVyksYj1uKSk7ZWxzZSBmb3IobGV0IGsgb2YgT2JqZWN0LmtleXMoVykpRC5oZWFkZXJzLnNldChrLFdba10pO3JldHVybiBifTsKTF89ZnVuY3Rpb24obixXLEQpe2lmKEQpe24uaXNBY3RpdmUoKTtEPW5ldyBxQXQobik7dmFyIGI9bmV3IEdoaShEKX1yZXR1cm4gbmV3IHR1MSh7eGhyOm4sTUU6Yn0sVyl9Owpxdz1mdW5jdGlvbigpe3RoaXMuTj1uZXcgJHhoO3RoaXMuSj0iaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20iLnJlcGxhY2UoL1wvKyQvLCIiKX07CmcuR0s9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5yZXBsYWNlKHI0MixmdW5jdGlvbihELGIpe3RyeXtsZXQgdj1nLiR5KFcsYik7aWYodj09bnVsbHx8di50b1N0cmluZygpPT1udWxsKXJldHVybiBEO3Y9di50b1N0cmluZygpO2lmKHY9PSIifHwhZy5GaChnLnJUKHYpKSlyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHYpLnJlcGxhY2UoLyUyQy9nLCIsIil9Y2F0Y2godil7fXJldHVybiBEfSl9OwpzMnc9ZnVuY3Rpb24oKXt2YXIgbj10YTskdC5pbnN0YW5jZXx8KCR0Lmluc3RhbmNlPW5ldyAkdChuKSk7cmV0dXJuICR0Lmluc3RhbmNlfTsKclg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5XP24uVzpuLlc9bmV3IFByb21pc2UoYXN5bmMgRD0+e3ZhciBiPXdpbmRvdy5BYm9ydENvbnRyb2xsZXI/bmV3IHdpbmRvdy5BYm9ydENvbnRyb2xsZXI6dm9pZCAwLHY9Yj8uc2lnbmFsLGs9ITE7dHJ5e2ImJihuLk49bi5BJC5MUygoKT0+e2IuYWJvcnQoKX0sV3x8MkU0KSksYXdhaXQgZmV0Y2goIi9nZW5lcmF0ZV8yMDQiLHttZXRob2Q6IkhFQUQiLApzaWduYWw6dn0pLGs9ITB9Y2F0Y2h7az0hMX1maW5hbGx5e24uVz12b2lkIDAsbi5OJiYobi5BJC5zTyhuLk4pLG4uTj0wKSxrIT09bi5pc09ubGluZSYmKG4uaXNPbmxpbmU9ayxuLmlzT25saW5lP24uZGlzcGF0Y2hFdmVudCgibmV0d29ya3N0YXR1cy1vbmxpbmUiKTpuLmRpc3BhdGNoRXZlbnQoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpKSxEKGspfX0pfTsKTldoPWZ1bmN0aW9uKG4pe24uTj09PS0xJiYobi5OPW4uZGF0YS5yZWR1Y2UoKFcsRCxiKT0+VysoRD8yKipiOjApLDApKTsKcmV0dXJuIG4uTn07Cmcuc0k9ZnVuY3Rpb24obixXLEQ9ITEpe2lmKG4mJlchPT1udWxsJiZXIT1XLnRvcCl7aWYoIVcudG9wKXJldHVybiBuZXcgZy5RZSgtMTIyNDU5MzMsLTEyMjQ1OTMzKTtXPVcudG9wfXRyeXtpZihEKXZhciBiPShuZXcgZy5RZShXLmlubmVyV2lkdGgsVy5pbm5lckhlaWdodCkpLnJvdW5kKCk7ZWxzZXtsZXQgdj0oV3x8d2luZG93KS5kb2N1bWVudCxrPXYuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiP3YuZG9jdW1lbnRFbGVtZW50OnYuYm9keTtiPShuZXcgZy5RZShrLmNsaWVudFdpZHRoLGsuY2xpZW50SGVpZ2h0KSkucm91bmQoKX1yZXR1cm4gYn1jYXRjaCh2KXtyZXR1cm4gbmV3IGcuUWUoLTEyMjQ1OTMzLC0xMjI0NTkzMyl9fTsKZy5Odz1mdW5jdGlvbihuKXtyZXR1cm4gbi5wcmVyZW5kZXJpbmc/Mzp7dmlzaWJsZToxLGhpZGRlbjoyLHByZXJlbmRlcjozLHByZXZpZXc6NCx1bmxvYWRlZDo1LCIiOjB9W24udmlzaWJpbGl0eVN0YXRlfHxuLndlYmtpdFZpc2liaWxpdHlTdGF0ZXx8bi5tb3pWaXNpYmlsaXR5U3RhdGV8fCIiXT8/MH07CmcucF89ZnVuY3Rpb24obixXLEQpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLk49bnVsbDt0aGlzLlg9ITE7dGhpcy5WPW47dGhpcy5qPUQ7dGhpcy5KPVd8fHdpbmRvdzt0aGlzLlc9KDAsZy5LdCkodGhpcy5PdCx0aGlzKX07Cll0PWZ1bmN0aW9uKG4pe249bi5KO3JldHVybiBuLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8bi53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG51bGx9OwpISz1mdW5jdGlvbihuKXtuPW4uSjtyZXR1cm4gbi5jYW5jZWxBbmltYXRpb25GcmFtZXx8bi5jYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm1vekNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8bi5vQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm1zQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxudWxsfTsKZy5mXz1mdW5jdGlvbihuLFcsRCl7Zy5GTS5jYWxsKHRoaXMpO3RoaXMuTj1uO3RoaXMuZ3Q9V3x8MDt0aGlzLko9RDt0aGlzLlc9KDAsZy5LdCkodGhpcy5pJCx0aGlzKX07CmcuSmE9ZnVuY3Rpb24obixXKXtuLmlzQWN0aXZlKCl8fG4uc3RhcnQoVyl9OwpJRj1mdW5jdGlvbihuKXtuLlo2PWcuWnQoKCk9PntuLlo2PW51bGw7bi5OJiYhbi5KJiYobi5OPSExLElGKG4pKX0sbi5ndCk7CnZhciBXPW4uVztuLlc9bnVsbDtuLlguYXBwbHkobnVsbCxXKX07ClNBPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbi5jbGFzc05hbWU9PSJzdHJpbmciP24uY2xhc3NOYW1lOm4uZ2V0QXR0cmlidXRlJiZuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9OwpBYT1mdW5jdGlvbihuKXtyZXR1cm4gbi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3Q6U0EobikubWF0Y2goL1xTKy9nKXx8W119OwptYT1mdW5jdGlvbihuLFcpe3R5cGVvZiBuLmNsYXNzTmFtZT09InN0cmluZyI/bi5jbGFzc05hbWU9VzpuLnNldEF0dHJpYnV0ZSYmbi5zZXRBdHRyaWJ1dGUoImNsYXNzIixXKX07CmcuS189ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3QuY29udGFpbnMoVyk6Zy5qaihBYShuKSxXKX07CmcuVUk9ZnVuY3Rpb24obixXKXtpZihuLmNsYXNzTGlzdCluLmNsYXNzTGlzdC5hZGQoVyk7ZWxzZSBpZighZy5LXyhuLFcpKXtsZXQgRD1TQShuKTttYShuLEQrKEQubGVuZ3RoPjA/IiAiK1c6VykpfX07CnlLPWZ1bmN0aW9uKG4sVyl7aWYobi5jbGFzc0xpc3QpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChXLGZ1bmN0aW9uKGIpe2cuVUkobixiKX0pOwplbHNle3ZhciBEPXt9O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoQWEobiksZnVuY3Rpb24oYil7RFtiXT0hMH0pOwpBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKFcsZnVuY3Rpb24oYil7RFtiXT0hMH0pOwpXPSIiO2ZvcihsZXQgYiBpbiBEKVcrPVcubGVuZ3RoPjA/IiAiK2I6YjttYShuLFcpfX07CmcuRUk9ZnVuY3Rpb24obixXKXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5yZW1vdmUoVyk6Zy5LXyhuLFcpJiZtYShuLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChBYShuKSxmdW5jdGlvbihEKXtyZXR1cm4gRCE9V30pLmpvaW4oIiAiKSl9OwpwMmo9ZnVuY3Rpb24obixXKXtuLmNsYXNzTGlzdD9BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKFcsZnVuY3Rpb24oRCl7Zy5FSShuLEQpfSk6bWEobixBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoQWEobiksZnVuY3Rpb24oRCl7cmV0dXJuIWcuamooVyxEKX0pLmpvaW4oIiAiKSl9OwpnLmlIPWZ1bmN0aW9uKG4sVyxEKXtEP2cuVUkobixXKTpnLkVJKG4sVyl9Owp1SD1mdW5jdGlvbigpe307CllBMT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2Ygb0Z8fG4gaW5zdGFuY2VvZiBkWHx8biBpbnN0YW5jZW9mIHpLKXJldHVybiBuO2lmKHR5cGVvZiBuLm5leHQ9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBvRigoKT0+bik7CmlmKHR5cGVvZiBuW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBvRigoKT0+bltTeW1ib2wuaXRlcmF0b3JdKCkpOwppZih0eXBlb2Ygbi5ncT09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IG9GKCgpPT5uLmdxKCkpOwp0aHJvdyBFcnJvcigiTm90IGFuIGl0ZXJhdG9yIG9yIGl0ZXJhYmxlLiIpO307CmxIPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCl7dGhpcy5OPW47dGhpcy5LPVc7dGhpcy5XPUQ7dGhpcy5qPWI7dGhpcy5YPXY7dGhpcy5WPWs7dGhpcy5KPWg7dGhpcy5ZPXh9OwpUSz1mdW5jdGlvbihuLFcpe2lmKFc9PTApcmV0dXJuIG4uTjtpZihXPT0xKXJldHVybiBuLko7dmFyIEQ9d1Eobi5OLG4uVyxXKSxiPXdRKG4uVyxuLlgsVyk7bj13UShuLlgsbi5KLFcpO0Q9d1EoRCxiLFcpO2I9d1EoYixuLFcpO3JldHVybiB3UShELGIsVyl9OwpIMGk9ZnVuY3Rpb24obixXKXt2YXIgRD0oVy1uLk4pLyhuLkotbi5OKTtpZihEPD0wKXJldHVybiAwO2lmKEQ+PTEpcmV0dXJuIDE7dmFyIGI9MCx2PTEsaz0wO2Zvcih2YXIgaD0wO2g8ODtoKyspe2s9VEsobixEKTtsZXQgeD0oVEsobixEKzFFLTYpLWspLzFFLTY7aWYoTWF0aC5hYnMoay1XKTwxRS02KXJldHVybiBEO2lmKE1hdGguYWJzKHgpPDFFLTYpYnJlYWs7ZWxzZSBrPFc/Yj1EOnY9RCxELT0oay1XKS94fWZvcihoPTA7TWF0aC5hYnMoay1XKT4xRS02JiZoPDg7aCsrKWs8Vz8oYj1ELEQ9KEQrdikvMik6KHY9RCxEPShEK2IpLzIpLGs9VEsobixEKTtyZXR1cm4gRH07CmpBPWZ1bmN0aW9uKG4pe3JldHVybihuPW4uZXhlYyhnLlhRKCkpKT9uWzFdOiIifTsKQ189ZnVuY3Rpb24obil7cmV0dXJuIGcuY1ooZlgyLG4pPj0wfTsKQks9ZnVuY3Rpb24obil7Zy5GTS5jYWxsKHRoaXMpO3RoaXMuVj0xO3RoaXMuVz1bXTt0aGlzLlg9MDt0aGlzLk49W107dGhpcy5KPXt9O3RoaXMuSz0hIW59OwpKNHI9ZnVuY3Rpb24obixXLEQpe2cubUsoZnVuY3Rpb24oKXtuLmFwcGx5KFcsRCl9KX07CmcuRmQ9ZnVuY3Rpb24obil7dGhpcy5OPW59Owp3WD1mdW5jdGlvbihuKXt0aGlzLk49bn07Ck13PWZ1bmN0aW9uKG4pe3RoaXMuZGF0YT1ufTsKUkY9ZnVuY3Rpb24obil7cmV0dXJuIG49PT12b2lkIDB8fG4gaW5zdGFuY2VvZiBNdz9uOm5ldyBNdyhuKX07ClFLPWZ1bmN0aW9uKG4pe3RoaXMuTj1ufTsKVks9ZnVuY3Rpb24obil7dGhpcy5OPW59OwpJWDE9ZnVuY3Rpb24oKXt9OwpjSz1mdW5jdGlvbigpe307CmFGPWZ1bmN0aW9uKG4pe3RoaXMuTj1uO3RoaXMuSj1udWxsfTsKbmU9ZnVuY3Rpb24obil7aWYobi5OPT1udWxsKXRocm93IEVycm9yKCJTdG9yYWdlIG1lY2hhbmlzbTogU3RvcmFnZSB1bmF2YWlsYWJsZSIpO24uaXNBdmFpbGFibGUoKXx8aDQoRXJyb3IoIlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIHVuYXZhaWxhYmxlIikpfTsKV1M9ZnVuY3Rpb24oKXt2YXIgbj1udWxsO3RyeXtuPWcucWkubG9jYWxTdG9yYWdlfHxudWxsfWNhdGNoKFcpe31hRi5jYWxsKHRoaXMsbil9OwpEUT1mdW5jdGlvbigpe3ZhciBuPW51bGw7dHJ5e249Zy5xaS5zZXNzaW9uU3RvcmFnZXx8bnVsbH1jYXRjaChXKXt9YUYuY2FsbCh0aGlzLG4pfTsKYkM9ZnVuY3Rpb24obixXKXt0aGlzLko9bjt0aGlzLk49VysiOjoifTsKZy52Uz1mdW5jdGlvbihuKXt2YXIgVz1uZXcgV1M7cmV0dXJuIFcuaXNBdmFpbGFibGUoKT9uP25ldyBiQyhXLG4pOlc6bnVsbH07CmtqPWZ1bmN0aW9uKG4sVyl7dGhpcy5OPW47dGhpcy5KPVd9Owp4aj1mdW5jdGlvbihuKXt2YXIgVyxELGI9bi5sZW5ndGgsdj0wO2ZvcihXPTA7VzxiO1crKyl7dmFyIGs9bi5jaGFyQ29kZUF0KFcpO2lmKChrJjY0NTEyKT09PTU1Mjk2JiZXKzE8Yil7dmFyIGg9bi5jaGFyQ29kZUF0KFcrMSk7KGgmNjQ1MTIpPT09NTYzMjAmJihrPTY1NTM2KyhrLTU1Mjk2PDwxMCkrKGgtNTYzMjApLFcrKyl9dis9azwxMjg/MTprPDIwNDg/MjprPDY1NTM2PzM6NH12YXIgeD1uZXcgaGsuT20odik7Zm9yKFc9RD0wO0Q8djtXKyspaz1uLmNoYXJDb2RlQXQoVyksKGsmNjQ1MTIpPT09NTUyOTYmJlcrMTxiJiYoaD1uLmNoYXJDb2RlQXQoVysxKSwoaCY2NDUxMik9PT01NjMyMCYmKGs9NjU1MzYrKGstNTUyOTY8PDEwKSsoaC01NjMyMCksVysrKSksazwxMjg/eFtEKytdPWs6KGs8MjA0OD94W0QrK109MTkyfGs+Pj42OihrPDY1NTM2P3hbRCsrXT0yMjR8az4+PjEyOih4W0QrK109MjQwfGs+Pj4xOCx4W0QrK109MTI4fGs+Pj4xMiY2MykseFtEKytdPTEyOHxrPj4+CjYmNjMpLHhbRCsrXT0xMjh8ayY2Myk7cmV0dXJuIHh9OwpMZT1mdW5jdGlvbihuKXtmb3IodmFyIFc9bi5sZW5ndGg7LS1XPj0wOyluW1ddPTB9Owpldj1mdW5jdGlvbihuLFcsRCxiLHYpe3RoaXMua089bjt0aGlzLmJFPVc7dGhpcy50cD1EO3RoaXMuYXo9Yjt0aGlzLnVIPXY7dGhpcy5aZD1uJiZuLmxlbmd0aH07CnZhciBTQTE9ZnVuY3Rpb24obil7cmV0dXJuIGc3W0lbMTBdXSh0aGlzLDI1LDYzMjIsbil9Owp0az1mdW5jdGlvbihuLFcpe3RoaXMuTTA9bjt0aGlzLnJPPTA7dGhpcy5BWj1XfTsKcjc9ZnVuY3Rpb24obixXKXtuLkZCW24ucGVuZGluZysrXT1XJjI1NTtuLkZCW24ucGVuZGluZysrXT1XPj4+OCYyNTV9OwpzJD1mdW5jdGlvbihuLFcsRCl7bi5ZSD4xNi1EPyhuLlJKfD1XPDxuLllIJjY1NTM1LHI3KG4sbi5SSiksbi5SSj1XPj4xNi1uLllILG4uWUgrPUQtMTYpOihuLlJKfD1XPDxuLllIJjY1NTM1LG4uWUgrPUQpfTsKTjY9ZnVuY3Rpb24obixXLEQpe3MkKG4sRFtXKjJdLERbVyoyKzFdKX07CnBlPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtkbyBEfD1uJjEsbj4+Pj0xLEQ8PD0xO3doaWxlKC0tVz4wKTtyZXR1cm4gRD4+PjF9OwpZaj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9QXJyYXkoMTYpLHY9MCxrO2ZvcihrPTE7azw9MTU7aysrKWJba109dj12K0Rbay0xXTw8MTtmb3IoRD0wO0Q8PVc7RCsrKXY9bltEKjIrMV0sdiE9PTAmJihuW0QqMl09cGUoYlt2XSsrLHYpKX07CkhTPWZ1bmN0aW9uKG4pe3ZhciBXO2ZvcihXPTA7VzwyODY7VysrKW4ua0dbVyoyXT0wO2ZvcihXPTA7VzwzMDtXKyspbi5sZltXKjJdPTA7Zm9yKFc9MDtXPDE5O1crKyluLndoW1cqMl09MDtuLmtHWzUxMl09MTtuLlhSPW4uVHY9MDtuLndYPW4ubWF0Y2hlcz0wfTsKZmU9ZnVuY3Rpb24obil7bi5ZSD44P3I3KG4sbi5SSik6bi5ZSD4wJiYobi5GQltuLnBlbmRpbmcrK109bi5SSik7bi5SSj0wO24uWUg9MH07CkprPWZ1bmN0aW9uKG4sVyxEKXtmZShuKTtyNyhuLEQpO3I3KG4sfkQpO2hrLlA3KG4uRkIsbi53aW5kb3csVyxELG4ucGVuZGluZyk7bi5wZW5kaW5nKz1EfTsKSVM9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9VyoyLGs9RCoyO3JldHVybiBuW3ZdPG5ba118fG5bdl09PT1uW2tdJiZiW1ddPD1iW0RdfTsKU3Y9ZnVuY3Rpb24obixXLEQpe2Zvcih2YXIgYj1uLmhlYXBbRF0sdj1EPDwxO3Y8PW4uVW47KXt2PG4uVW4mJklTKFcsbi5oZWFwW3YrMV0sbi5oZWFwW3ZdLG4uZGVwdGgpJiZ2Kys7aWYoSVMoVyxiLG4uaGVhcFt2XSxuLmRlcHRoKSlicmVhaztuLmhlYXBbRF09bi5oZWFwW3ZdO0Q9djt2PDw9MX1uLmhlYXBbRF09Yn07ClUkPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj0wO2lmKG4ud1ghPT0wKXtkb3t2YXIgdj1uLkZCW24uQTgrYioyXTw8OHxuLkZCW24uQTgrYioyKzFdO3ZhciBrPW4uRkJbbi50YStiXTtiKys7aWYodj09PTApTjYobixrLFcpO2Vsc2V7dmFyIGg9QWtba107TjYobixoKzI1NisxLFcpO3ZhciB4PW0kW2hdO3ghPT0wJiYoay09S2VbaF0scyQobixrLHgpKTt2LS07aD12PDI1Nj9PJFt2XTpPJFsyNTYrKHY+Pj43KV07TjYobixoLEQpO3g9UFNbaF07eCE9PTAmJih2LT1aUVtoXSxzJChuLHYseCkpfX13aGlsZShiPG4ud1gpfU42KG4sMjU2LFcpfTsKRSQ9ZnVuY3Rpb24obixXKXt2YXIgRD1XLk0wLGI9Vy5BWi5rTyx2PVcuQVouWmQsaz1XLkFaLmF6LGgseD0tMTtuLlVuPTA7bi5PND01NzM7Zm9yKGg9MDtoPGs7aCsrKURbaCoyXSE9PTA/KG4uaGVhcFsrK24uVW5dPXg9aCxuLmRlcHRoW2hdPTApOkRbaCoyKzFdPTA7Zm9yKDtuLlVuPDI7KXt2YXIgTD1uLmhlYXBbKytuLlVuXT14PDI/Kyt4OjA7RFtMKjJdPTE7bi5kZXB0aFtMXT0wO24uWFItLTt2JiYobi5Udi09YltMKjIrMV0pfVcuck89eDtmb3IoaD1uLlVuPj4xO2g+PTE7aC0tKVN2KG4sRCxoKTtMPWs7ZG8gaD1uLmhlYXBbMV0sbi5oZWFwWzFdPW4uaGVhcFtuLlVuLS1dLFN2KG4sRCwxKSxiPW4uaGVhcFsxXSxuLmhlYXBbLS1uLk80XT1oLG4uaGVhcFstLW4uTzRdPWIsRFtMKjJdPURbaCoyXStEW2IqMl0sbi5kZXB0aFtMXT0obi5kZXB0aFtoXT49bi5kZXB0aFtiXT9uLmRlcHRoW2hdOm4uZGVwdGhbYl0pKzEsRFtoKjIrMV09RFtiKjIrMV09TCxuLmhlYXBbMV09TCsrLApTdihuLEQsMSk7d2hpbGUobi5Vbj49Mik7bi5oZWFwWy0tbi5PNF09bi5oZWFwWzFdO2g9Vy5NMDtMPVcuck87Yj1XLkFaLmtPO3Y9Vy5BWi5aZDtrPVcuQVouYkU7dmFyIGU9Vy5BWi50cCxHPVcuQVoudUgscixOPTA7Zm9yKHI9MDtyPD0xNTtyKyspbi5WbltyXT0wO2hbbi5oZWFwW24uTzRdKjIrMV09MDtmb3IoVz1uLk80KzE7Vzw1NzM7VysrKXt2YXIgSD1uLmhlYXBbV107cj1oW2hbSCoyKzFdKjIrMV0rMTtyPkcmJihyPUcsTisrKTtoW0gqMisxXT1yO2lmKCEoSD5MKSl7bi5WbltyXSsrO3ZhciBBPTA7SD49ZSYmKEE9a1tILWVdKTt2YXIgeT1oW0gqMl07bi5YUis9eSoocitBKTt2JiYobi5Udis9eSooYltIKjIrMV0rQSkpfX1pZihOIT09MCl7ZG97Zm9yKHI9Ry0xO24uVm5bcl09PT0wOylyLS07bi5WbltyXS0tO24uVm5bcisxXSs9MjtuLlZuW0ddLS07Ti09Mn13aGlsZShOPjApO2ZvcihyPUc7ciE9PTA7ci0tKWZvcihIPW4uVm5bcl07SCE9PTA7KWI9bi5oZWFwWy0tV10sCmI+THx8KGhbYioyKzFdIT09ciYmKG4uWFIrPShyLWhbYioyKzFdKSpoW2IqMl0saFtiKjIrMV09ciksSC0tKX1ZaihELHgsbi5Wbil9OwppQz1mdW5jdGlvbihuLFcsRCl7dmFyIGIsdj0tMSxrPVdbMV0saD0wLHg9NyxMPTQ7az09PTAmJih4PTEzOCxMPTMpO1dbKEQrMSkqMisxXT02NTUzNTtmb3IoYj0wO2I8PUQ7YisrKXt2YXIgZT1rO2s9V1soYisxKSoyKzFdOysraDx4JiZlPT09a3x8KGg8TD9uLndoW2UqMl0rPWg6ZSE9PTA/KGUhPT12JiZuLndoW2UqMl0rKyxuLndoWzMyXSsrKTpoPD0xMD9uLndoWzM0XSsrOm4ud2hbMzZdKyssaD0wLHY9ZSxrPT09MD8oeD0xMzgsTD0zKTplPT09az8oeD02LEw9Myk6KHg9NyxMPTQpKX19Owp1Qz1mdW5jdGlvbihuLFcsRCl7dmFyIGIsdj0tMSxrPVdbMV0saD0wLHg9NyxMPTQ7az09PTAmJih4PTEzOCxMPTMpO2ZvcihiPTA7Yjw9RDtiKyspe3ZhciBlPWs7az1XWyhiKzEpKjIrMV07aWYoISgrK2g8eCYmZT09PWspKXtpZihoPEwpe2RvIE42KG4sZSxuLndoKTt3aGlsZSgtLWghPT0wKX1lbHNlIGUhPT0wPyhlIT09diYmKE42KG4sZSxuLndoKSxoLS0pLE42KG4sMTYsbi53aCkscyQobixoLTMsMikpOmg8PTEwPyhONihuLDE3LG4ud2gpLHMkKG4saC0zLDMpKTooTjYobiwxOCxuLndoKSxzJChuLGgtMTEsNykpO2g9MDt2PWU7az09PTA/KHg9MTM4LEw9Myk6ZT09PWs/KHg9NixMPTMpOih4PTcsTD00KX19fTsKQTR4PWZ1bmN0aW9uKG4pe3ZhciBXPTQwOTM2MjQ0NDcsRDtmb3IoRD0wO0Q8PTMxO0QrKyxXPj4+PTEpaWYoVyYxJiZuLmtHW0QqMl0hPT0wKXJldHVybiAwO2lmKG4ua0dbMThdIT09MHx8bi5rR1syMF0hPT0wfHxuLmtHWzI2XSE9PTApcmV0dXJuIDE7Zm9yKEQ9MzI7RDwyNTY7RCsrKWlmKG4ua0dbRCoyXSE9PTApcmV0dXJuIDE7cmV0dXJuIDB9OwpvUz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1XXm47aWYoIShuKzQmNykpe0Q9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dO3ZhciBrPWJbMF07YlswXT1iW0RdO2JbRF09azt2YXIgaD1bRF19KG4rOSY1KT09MSYmYltJWzNdXShiW0lbNV1dLDAsRCk7cmV0dXJuIGh9OwpkNz1mdW5jdGlvbihuLFcsRCl7bi5GQltuLkE4K24ud1gqMl09Vz4+PjgmMjU1O24uRkJbbi5BOCtuLndYKjIrMV09VyYyNTU7bi5GQltuLnRhK24ud1hdPUQmMjU1O24ud1grKztXPT09MD9uLmtHW0QqMl0rKzoobi5tYXRjaGVzKyssVy0tLG4ua0dbKEFrW0RdKzI1NisxKSoyXSsrLG4ubGZbKFc8MjU2P08kW1ddOk8kWzI1NisoVz4+PjcpXSkqMl0rKyk7cmV0dXJuIG4ud1g9PT1uLktYLTF9OwpsQz1mdW5jdGlvbihuLFcpe24ubXNnPXpCW1ddO3JldHVybiBXfTsKVEI9ZnVuY3Rpb24obil7Zm9yKHZhciBXPW4ubGVuZ3RoOy0tVz49MDspbltXXT0wfTsKanY9ZnVuY3Rpb24obil7dmFyIFc9bi5zdGF0ZSxEPVcucGVuZGluZztEPm4udVImJihEPW4udVIpO0QhPT0wJiYoaGsuUDcobi5vdXRwdXQsVy5GQixXLmhSLEQsbi51Zyksbi51Zys9RCxXLmhSKz1ELG4udEIrPUQsbi51Ui09RCxXLnBlbmRpbmctPUQsVy5wZW5kaW5nPT09MCYmKFcuaFI9MCkpfTsKdzc9ZnVuY3Rpb24obixXKXt2YXIgRD1uLk9LPj0wP24uT0s6LTEsYj1uLnFzLW4uT0ssdj0wO2lmKG4ubGV2ZWw+MCl7bi5UUi5xUz09PTImJihuLlRSLnFTPUE0eChuKSk7RSQobixuLlFmKTtFJChuLG4uYVMpO2lDKG4sbi5rRyxuLlFmLnJPKTtpQyhuLG4ubGYsbi5hUy5yTyk7RSQobixuLm1NKTtmb3Iodj0xODt2Pj0zJiZuLndoW0NlW3ZdKjIrMV09PT0wO3YtLSk7bi5YUis9MyoodisxKSs1KzUrNDt2YXIgaz1uLlhSKzMrNz4+PjM7dmFyIGg9bi5UdiszKzc+Pj4zO2g8PWsmJihrPWgpfWVsc2Ugaz1oPWIrNTtpZihiKzQ8PWsmJkQhPT0tMSlzJChuLFc/MTowLDMpLEprKG4sRCxiKTtlbHNlIGlmKG4uc3RyYXRlZ3k9PT00fHxoPT09aylzJChuLDIrKFc/MTowKSwzKSxVJChuLEJTLEY5KTtlbHNle3MkKG4sNCsoVz8xOjApLDMpO0Q9bi5RZi5yTysxO2I9bi5hUy5yTysxO3YrPTE7cyQobixELTI1Nyw1KTtzJChuLGItMSw1KTtzJChuLHYtNCw0KTtmb3Ioaz0wO2s8djtrKyspcyQobiwKbi53aFtDZVtrXSoyKzFdLDMpO3VDKG4sbi5rRyxELTEpO3VDKG4sbi5sZixiLTEpO1UkKG4sbi5rRyxuLmxmKX1IUyhuKTtXJiZmZShuKTtuLk9LPW4ucXM7anYobi5UUil9OwpNNj1mdW5jdGlvbihuLFcpe24uRkJbbi5wZW5kaW5nKytdPVd9OwpSUz1mdW5jdGlvbihuLFcpe24uRkJbbi5wZW5kaW5nKytdPVc+Pj44JjI1NTtuLkZCW24ucGVuZGluZysrXT1XJjI1NX07ClF0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5lYixiPW4ucXMsdj1uLlRhLGs9bi5PUixoPW4ucXM+bi54ci0yNjI/bi5xcy0obi54ci0yNjIpOjAseD1uLndpbmRvdyxMPW4ueWUsZT1uLlJULEc9bi5xcysyNTgscj14W2Irdi0xXSxOPXhbYit2XTtuLlRhPj1uLnIkJiYoRD4+PTIpO2s+bi5HVyYmKGs9bi5HVyk7ZG97dmFyIEg9VztpZih4W0grdl09PT1OJiZ4W0grdi0xXT09PXImJnhbSF09PT14W2JdJiZ4WysrSF09PT14W2IrMV0pe2IrPTI7Zm9yKEgrKzt4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmeFsrK2JdPT09eFsrK0hdJiZ4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmeFsrK2JdPT09eFsrK0hdJiZ4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmYjxHOyk7SD0yNTgtKEctYik7Yj1HLTI1ODtpZihIPnYpe24uUVo9Vzt2PUg7aWYoSD49aylicmVhaztyPXhbYit2LTFdO049eFtiK3ZdfX19d2hpbGUoKFc9ZVtXJkxdKT5oJiYtLUQhPT0KMCk7cmV0dXJuIHY8PW4uR1c/djpuLkdXfTsKYVM9ZnVuY3Rpb24obil7dmFyIFc9bi54cixEO2Rve3ZhciBiPW4uYlgtbi5HVy1uLnFzO2lmKG4ucXM+PVcrKFctMjYyKSl7aGsuUDcobi53aW5kb3csbi53aW5kb3csVyxXLDApO24uUVotPVc7bi5xcy09VztuLk9LLT1XO3ZhciB2PUQ9bi5BeTtkb3t2YXIgaz1uLmhlYWRbLS12XTtuLmhlYWRbdl09az49Vz9rLVc6MH13aGlsZSgtLUQpO3Y9RD1XO2RvIGs9bi5SVFstLXZdLG4uUlRbdl09az49Vz9rLVc6MDt3aGlsZSgtLUQpO2IrPVd9aWYobi5UUi5CQT09PTApYnJlYWs7dj1uLlRSO0Q9bi53aW5kb3c7az1uLnFzK24uR1c7dmFyIGg9di5CQTtoPmImJihoPWIpO2g9PT0wP0Q9MDoodi5CQS09aCxoay5QNyhELHYuaW5wdXQsdi5VWixoLGspLHYuc3RhdGUud3JhcD09PTE/di5nST1WdCh2LmdJLEQsaCxrKTp2LnN0YXRlLndyYXA9PT0yJiYodi5nST1jUyh2LmdJLEQsaCxrKSksdi5VWis9aCx2LkVtKz1oLEQ9aCk7bi5HVys9RDtpZihuLkdXK24ucXA+PTMpZm9yKGI9bi5xcy1uLnFwLApuLnBBPW4ud2luZG93W2JdLG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbYisxXSkmbi5sQjtuLnFwJiYhKG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbYiszLTFdKSZuLmxCLG4uUlRbYiZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPWIsYisrLG4ucXAtLSxuLkdXK24ucXA8Myk7KTt9d2hpbGUobi5HVzwyNjImJm4uVFIuQkEhPT0wKX07Cm53PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEOzspe2lmKG4uR1c8MjYyKXthUyhuKTtpZihuLkdXPDI2MiYmVz09PTApcmV0dXJuIDE7aWYobi5HVz09PTApYnJlYWt9RD0wO24uR1c+PTMmJihuLnBBPShuLnBBPDxuLkhjXm4ud2luZG93W24ucXMrMy0xXSkmbi5sQixEPW4uUlRbbi5xcyZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPW4ucXMpO0QhPT0wJiZuLnFzLUQ8PW4ueHItMjYyJiYobi5mQT1RdChuLEQpKTtpZihuLmZBPj0zKWlmKEQ9ZDcobixuLnFzLW4uUVosbi5mQS0zKSxuLkdXLT1uLmZBLG4uZkE8PW4uUmImJm4uR1c+PTMpe24uZkEtLTtkbyBuLnFzKyssbi5wQT0obi5wQTw8bi5IY15uLndpbmRvd1tuLnFzKzMtMV0pJm4ubEIsbi5SVFtuLnFzJm4ueWVdPW4uaGVhZFtuLnBBXSxuLmhlYWRbbi5wQV09bi5xczt3aGlsZSgtLW4uZkEhPT0wKTtuLnFzKyt9ZWxzZSBuLnFzKz1uLmZBLG4uZkE9MCxuLnBBPW4ud2luZG93W24ucXNdLG4ucEE9KG4ucEE8PG4uSGNeCm4ud2luZG93W24ucXMrMV0pJm4ubEI7ZWxzZSBEPWQ3KG4sMCxuLndpbmRvd1tuLnFzXSksbi5HVy0tLG4ucXMrKztpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfW4ucXA9bi5xczwyP24ucXM6MjtyZXR1cm4gVz09PTQ/KHc3KG4sITApLG4uVFIudVI9PT0wPzM6NCk6bi53WCYmKHc3KG4sITEpLG4uVFIudVI9PT0wKT8xOjJ9OwpXVj1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRCxiOzspe2lmKG4uR1c8MjYyKXthUyhuKTtpZihuLkdXPDI2MiYmVz09PTApcmV0dXJuIDE7aWYobi5HVz09PTApYnJlYWt9RD0wO24uR1c+PTMmJihuLnBBPShuLnBBPDxuLkhjXm4ud2luZG93W24ucXMrMy0xXSkmbi5sQixEPW4uUlRbbi5xcyZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPW4ucXMpO24uVGE9bi5mQTtuLkx2PW4uUVo7bi5mQT0yO0QhPT0wJiZuLlRhPG4uUmImJm4ucXMtRDw9bi54ci0yNjImJihuLmZBPVF0KG4sRCksbi5mQTw9NSYmKG4uc3RyYXRlZ3k9PT0xfHxuLmZBPT09MyYmbi5xcy1uLlFaPjQwOTYpJiYobi5mQT0yKSk7aWYobi5UYT49MyYmbi5mQTw9bi5UYSl7Yj1uLnFzK24uR1ctMztEPWQ3KG4sbi5xcy0xLW4uTHYsbi5UYS0zKTtuLkdXLT1uLlRhLTE7bi5UYS09Mjtkbysrbi5xczw9YiYmKG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbbi5xcyszLTFdKSZuLmxCLG4uUlRbbi5xcyZuLnllXT0Kbi5oZWFkW24ucEFdLG4uaGVhZFtuLnBBXT1uLnFzKTt3aGlsZSgtLW4uVGEhPT0wKTtuLlJGPTA7bi5mQT0yO24ucXMrKztpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfWVsc2UgaWYobi5SRil7aWYoKEQ9ZDcobiwwLG4ud2luZG93W24ucXMtMV0pKSYmdzcobiwhMSksbi5xcysrLG4uR1ctLSxuLlRSLnVSPT09MClyZXR1cm4gMX1lbHNlIG4uUkY9MSxuLnFzKyssbi5HVy0tfW4uUkYmJihkNyhuLDAsbi53aW5kb3dbbi5xcy0xXSksbi5SRj0wKTtuLnFwPW4ucXM8Mj9uLnFzOjI7cmV0dXJuIFc9PT00Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKbXhqPWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBELGIsdixrPW4ud2luZG93Ozspe2lmKG4uR1c8PTI1OCl7YVMobik7aWYobi5HVzw9MjU4JiZXPT09MClyZXR1cm4gMTtpZihuLkdXPT09MClicmVha31uLmZBPTA7aWYobi5HVz49MyYmbi5xcz4wJiYoYj1uLnFzLTEsRD1rW2JdLEQ9PT1rWysrYl0mJkQ9PT1rWysrYl0mJkQ9PT1rWysrYl0pKXtmb3Iodj1uLnFzKzI1ODtEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZiPHY7KTtuLmZBPTI1OC0odi1iKTtuLmZBPm4uR1cmJihuLmZBPW4uR1cpfW4uZkE+PTM/KEQ9ZDcobiwxLG4uZkEtMyksbi5HVy09bi5mQSxuLnFzKz1uLmZBLG4uZkE9MCk6KEQ9ZDcobiwwLG4ud2luZG93W24ucXNdKSxuLkdXLS0sbi5xcysrKTtpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfW4ucXA9MDtyZXR1cm4gVz09PQo0Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKS3hVPWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEOzspe2lmKG4uR1c9PT0wJiYoYVMobiksbi5HVz09PTApKXtpZihXPT09MClyZXR1cm4gMTticmVha31uLmZBPTA7RD1kNyhuLDAsbi53aW5kb3dbbi5xc10pO24uR1ctLTtuLnFzKys7aWYoRCYmKHc3KG4sITEpLG4uVFIudVI9PT0wKSlyZXR1cm4gMX1uLnFwPTA7cmV0dXJuIFc9PT00Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKREU9ZnVuY3Rpb24obixXLEQsYix2KXt0aGlzLm5rPW47dGhpcy5ZOD1XO3RoaXMuRWs9RDt0aGlzLlNSPWI7dGhpcy5mdW5jPXZ9OwpPMGk9ZnVuY3Rpb24oKXt0aGlzLlRSPW51bGw7dGhpcy5zdGF0dXM9MDt0aGlzLkZCPW51bGw7dGhpcy53cmFwPXRoaXMucGVuZGluZz10aGlzLmhSPXRoaXMueXY9MDt0aGlzLkZRPW51bGw7dGhpcy5HST0wO3RoaXMubWV0aG9kPTg7dGhpcy5obz0tMTt0aGlzLnllPXRoaXMuclo9dGhpcy54cj0wO3RoaXMud2luZG93PW51bGw7dGhpcy5iWD0wO3RoaXMuaGVhZD10aGlzLlJUPW51bGw7dGhpcy5PUj10aGlzLnIkPXRoaXMuc3RyYXRlZ3k9dGhpcy5sZXZlbD10aGlzLlJiPXRoaXMuZWI9dGhpcy5UYT10aGlzLkdXPXRoaXMuUVo9dGhpcy5xcz10aGlzLlJGPXRoaXMuTHY9dGhpcy5mQT10aGlzLk9LPXRoaXMuSGM9dGhpcy5sQj10aGlzLll2PXRoaXMuQXk9dGhpcy5wQT0wO3RoaXMua0c9bmV3IGhrLm1LKDExNDYpO3RoaXMubGY9bmV3IGhrLm1LKDEyMik7dGhpcy53aD1uZXcgaGsubUsoNzgpO1RCKHRoaXMua0cpO1RCKHRoaXMubGYpO1RCKHRoaXMud2gpO3RoaXMubU09dGhpcy5hUz0KdGhpcy5RZj1udWxsO3RoaXMuVm49bmV3IGhrLm1LKDE2KTt0aGlzLmhlYXA9bmV3IGhrLm1LKDU3Myk7VEIodGhpcy5oZWFwKTt0aGlzLk80PXRoaXMuVW49MDt0aGlzLmRlcHRoPW5ldyBoay5tSyg1NzMpO1RCKHRoaXMuZGVwdGgpO3RoaXMuWUg9dGhpcy5SSj10aGlzLnFwPXRoaXMubWF0Y2hlcz10aGlzLlR2PXRoaXMuWFI9dGhpcy5BOD10aGlzLndYPXRoaXMuS1g9dGhpcy50YT0wfTsKUHAxPWZ1bmN0aW9uKG4sVyl7aWYoIW58fCFuLnN0YXRlfHxXPjV8fFc8MClyZXR1cm4gbj9sQyhuLC0yKTotMjt2YXIgRD1uLnN0YXRlO2lmKCFuLm91dHB1dHx8IW4uaW5wdXQmJm4uQkEhPT0wfHxELnN0YXR1cz09PTY2NiYmVyE9PTQpcmV0dXJuIGxDKG4sbi51Uj09PTA/LTU6LTIpO0QuVFI9bjt2YXIgYj1ELmhvO0QuaG89VztpZihELnN0YXR1cz09PTQyKWlmKEQud3JhcD09PTIpbi5nST0wLE02KEQsMzEpLE02KEQsMTM5KSxNNihELDgpLEQuRlE/KE02KEQsKEQuRlEudGV4dD8xOjApKyhELkZRLnZMPzI6MCkrKEQuRlEuZXh0cmE/NDowKSsoRC5GUS5uYW1lPzg6MCkrKEQuRlEuY29tbWVudD8xNjowKSksTTYoRCxELkZRLnRpbWUmMjU1KSxNNihELEQuRlEudGltZT4+OCYyNTUpLE02KEQsRC5GUS50aW1lPj4xNiYyNTUpLE02KEQsRC5GUS50aW1lPj4yNCYyNTUpLE02KEQsRC5sZXZlbD09PTk/MjpELnN0cmF0ZWd5Pj0yfHxELmxldmVsPDI/NDowKSxNNihELEQuRlEub3MmCjI1NSksRC5GUS5leHRyYSYmRC5GUS5leHRyYS5sZW5ndGgmJihNNihELEQuRlEuZXh0cmEubGVuZ3RoJjI1NSksTTYoRCxELkZRLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxELkZRLnZMJiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLDApKSxELkdJPTAsRC5zdGF0dXM9NjkpOihNNihELDApLE02KEQsMCksTTYoRCwwKSxNNihELDApLE02KEQsMCksTTYoRCxELmxldmVsPT09OT8yOkQuc3RyYXRlZ3k+PTJ8fEQubGV2ZWw8Mj80OjApLE02KEQsMyksRC5zdGF0dXM9MTEzKTtlbHNle3ZhciB2PTgrKEQuclotODw8NCk8PDg7dnw9KEQuc3RyYXRlZ3k+PTJ8fEQubGV2ZWw8Mj8wOkQubGV2ZWw8Nj8xOkQubGV2ZWw9PT02PzI6Myk8PDY7RC5xcyE9PTAmJih2fD0zMik7RC5zdGF0dXM9MTEzO1JTKEQsdisoMzEtdiUzMSkpO0QucXMhPT0wJiYoUlMoRCxuLmdJPj4+MTYpLFJTKEQsbi5nSSY2NTUzNSkpO24uZ0k9MX1pZihELnN0YXR1cz09PTY5KWlmKEQuRlEuZXh0cmEpe2Zvcih2PQpELnBlbmRpbmc7RC5HSTwoRC5GUS5leHRyYS5sZW5ndGgmNjU1MzUpJiYoRC5wZW5kaW5nIT09RC55dnx8KEQuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpLGp2KG4pLHY9RC5wZW5kaW5nLEQucGVuZGluZyE9PUQueXYpKTspTTYoRCxELkZRLmV4dHJhW0QuR0ldJjI1NSksRC5HSSsrO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO0QuR0k9PT1ELkZRLmV4dHJhLmxlbmd0aCYmKEQuR0k9MCxELnN0YXR1cz03Myl9ZWxzZSBELnN0YXR1cz03MztpZihELnN0YXR1cz09PTczKWlmKEQuRlEubmFtZSl7dj1ELnBlbmRpbmc7ZG97aWYoRC5wZW5kaW5nPT09RC55diYmKEQuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpLGp2KG4pLHY9RC5wZW5kaW5nLEQucGVuZGluZz09PUQueXYpKXt2YXIgaz0xO2JyZWFrfWs9RC5HSTxELkZRLm5hbWUubGVuZ3RoPwpELkZRLm5hbWUuY2hhckNvZGVBdChELkdJKyspJjI1NTowO002KEQsayl9d2hpbGUoayE9PTApO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO2s9PT0wJiYoRC5HST0wLEQuc3RhdHVzPTkxKX1lbHNlIEQuc3RhdHVzPTkxO2lmKEQuc3RhdHVzPT09OTEpaWYoRC5GUS5jb21tZW50KXt2PUQucGVuZGluZztkb3tpZihELnBlbmRpbmc9PT1ELnl2JiYoRC5GUS52TCYmRC5wZW5kaW5nPnYmJihuLmdJPWNTKG4uZ0ksRC5GQixELnBlbmRpbmctdix2KSksanYobiksdj1ELnBlbmRpbmcsRC5wZW5kaW5nPT09RC55dikpe2s9MTticmVha31rPUQuR0k8RC5GUS5jb21tZW50Lmxlbmd0aD9ELkZRLmNvbW1lbnQuY2hhckNvZGVBdChELkdJKyspJjI1NTowO002KEQsayl9d2hpbGUoayE9PTApO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO2s9PT0wJiYoRC5zdGF0dXM9MTAzKX1lbHNlIEQuc3RhdHVzPQoxMDM7RC5zdGF0dXM9PT0xMDMmJihELkZRLnZMPyhELnBlbmRpbmcrMj5ELnl2JiZqdihuKSxELnBlbmRpbmcrMjw9RC55diYmKE02KEQsbi5nSSYyNTUpLE02KEQsbi5nST4+OCYyNTUpLG4uZ0k9MCxELnN0YXR1cz0xMTMpKTpELnN0YXR1cz0xMTMpO2lmKEQucGVuZGluZyE9PTApe2lmKGp2KG4pLG4udVI9PT0wKXJldHVybiBELmhvPS0xLDB9ZWxzZSBpZihuLkJBPT09MCYmKFc8PDEpLShXPjQ/OTowKTw9KGI8PDEpLShiPjQ/OTowKSYmVyE9PTQpcmV0dXJuIGxDKG4sLTUpO2lmKEQuc3RhdHVzPT09NjY2JiZuLkJBIT09MClyZXR1cm4gbEMobiwtNSk7aWYobi5CQSE9PTB8fEQuR1chPT0wfHxXIT09MCYmRC5zdGF0dXMhPT02NjYpe2I9RC5zdHJhdGVneT09PTI/S3hVKEQsVyk6RC5zdHJhdGVneT09PTM/bXhqKEQsVyk6YndbRC5sZXZlbF0uZnVuYyhELFcpO2lmKGI9PT0zfHxiPT09NClELnN0YXR1cz02NjY7aWYoYj09PTF8fGI9PT0zKXJldHVybiBuLnVSPT09MCYmKEQuaG89Ci0xKSwwO2lmKGI9PT0yJiYoVz09PTE/KHMkKEQsMiwzKSxONihELDI1NixCUyksRC5ZSD09PTE2PyhyNyhELEQuUkopLEQuUko9MCxELllIPTApOkQuWUg+PTgmJihELkZCW0QucGVuZGluZysrXT1ELlJKJjI1NSxELlJKPj49OCxELllILT04KSk6VyE9PTUmJihzJChELDAsMyksSmsoRCwwLDApLFc9PT0zJiYoVEIoRC5oZWFkKSxELkdXPT09MCYmKEQucXM9MCxELk9LPTAsRC5xcD0wKSkpLGp2KG4pLG4udVI9PT0wKSlyZXR1cm4gRC5obz0tMSwwfWlmKFchPT00KXJldHVybiAwO2lmKEQud3JhcDw9MClyZXR1cm4gMTtELndyYXA9PT0yPyhNNihELG4uZ0kmMjU1KSxNNihELG4uZ0k+PjgmMjU1KSxNNihELG4uZ0k+PjE2JjI1NSksTTYoRCxuLmdJPj4yNCYyNTUpLE02KEQsbi5FbSYyNTUpLE02KEQsbi5FbT4+OCYyNTUpLE02KEQsbi5FbT4+MTYmMjU1KSxNNihELG4uRW0+PjI0JjI1NSkpOihSUyhELG4uZ0k+Pj4xNiksUlMoRCxuLmdJJjY1NTM1KSk7anYobik7RC53cmFwPjAmJgooRC53cmFwPS1ELndyYXApO3JldHVybiBELnBlbmRpbmchPT0wPzA6MX07CnZWPWZ1bmN0aW9uKG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIHZWKSlyZXR1cm4gbmV3IHZWKG4pO249dGhpcy5vcHRpb25zPWhrLmFzc2lnbih7bGV2ZWw6LTEsbWV0aG9kOjgsY2h1bmtTaXplOjE2Mzg0LHRnOjE1LEJrOjgsc3RyYXRlZ3k6MCx0bzoiIn0sbnx8e30pO24ucmF3JiZuLnRnPjA/bi50Zz0tbi50ZzpuLkJUJiZuLnRnPjAmJm4udGc8MTYmJihuLnRnKz0xNik7dGhpcy5lcnI9MDt0aGlzLm1zZz0iIjt0aGlzLmVuZGVkPSExO3RoaXMuY2h1bmtzPVtdO3RoaXMuVFI9bmV3IGtmO3RoaXMuVFIudVI9MDt2YXIgVz10aGlzLlRSO3ZhciBEPW4ubGV2ZWwsYj1uLm1ldGhvZCx2PW4udGcsaz1uLkJrLGg9bi5zdHJhdGVneTtpZihXKXt2YXIgeD0xO0Q9PT0tMSYmKEQ9Nik7djwwPyh4PTAsdj0tdik6dj4xNSYmKHg9Mix2LT0xNik7aWYoazwxfHxrPjl8fGIhPT04fHx2PDh8fHY+MTV8fEQ8MHx8RD45fHxoPDB8fGg+NClXPWxDKFcsLTIpO2Vsc2V7dj09PTgmJih2PTkpO3ZhciBMPQpuZXcgTzBpO1cuc3RhdGU9TDtMLlRSPVc7TC53cmFwPXg7TC5GUT1udWxsO0wuclo9djtMLnhyPTE8PEwuclo7TC55ZT1MLnhyLTE7TC5Zdj1rKzc7TC5BeT0xPDxMLll2O0wubEI9TC5BeS0xO0wuSGM9fn4oKEwuWXYrMy0xKS8zKTtMLndpbmRvdz1uZXcgaGsuT20oTC54cioyKTtMLmhlYWQ9bmV3IGhrLm1LKEwuQXkpO0wuUlQ9bmV3IGhrLm1LKEwueHIpO0wuS1g9MTw8ays2O0wueXY9TC5LWCo0O0wuRkI9bmV3IGhrLk9tKEwueXYpO0wuQTg9MSpMLktYO0wudGE9MypMLktYO0wubGV2ZWw9RDtMLnN0cmF0ZWd5PWg7TC5tZXRob2Q9YjtpZihXJiZXLnN0YXRlKXtXLkVtPVcudEI9MDtXLnFTPTI7RD1XLnN0YXRlO0QucGVuZGluZz0wO0QuaFI9MDtELndyYXA8MCYmKEQud3JhcD0tRC53cmFwKTtELnN0YXR1cz1ELndyYXA/NDI6MTEzO1cuZ0k9RC53cmFwPT09Mj8wOjE7RC5obz0wO2lmKCFocil7Yj1BcnJheSgxNik7Zm9yKGs9aD0wO2s8Mjg7aysrKWZvcihLZVtrXT1oLHY9MDt2PAoxPDxtJFtrXTt2KyspQWtbaCsrXT1rO0FrW2gtMV09aztmb3Ioaz1oPTA7azwxNjtrKyspZm9yKFpRW2tdPWgsdj0wO3Y8MTw8UFNba107disrKU8kW2grK109aztmb3IoaD4+PTc7azwzMDtrKyspZm9yKFpRW2tdPWg8PDcsdj0wO3Y8MTw8UFNba10tNzt2KyspTyRbMjU2K2grK109aztmb3Iodj0wO3Y8PTE1O3YrKyliW3ZdPTA7Zm9yKHY9MDt2PD0xNDM7KUJTW3YqMisxXT04LHYrKyxiWzhdKys7Zm9yKDt2PD0yNTU7KUJTW3YqMisxXT05LHYrKyxiWzldKys7Zm9yKDt2PD0yNzk7KUJTW3YqMisxXT03LHYrKyxiWzddKys7Zm9yKDt2PD0yODc7KUJTW3YqMisxXT04LHYrKyxiWzhdKys7WWooQlMsMjg3LGIpO2Zvcih2PTA7djwzMDt2KyspRjlbdioyKzFdPTUsRjlbdioyXT1wZSh2LDUpO3hmPW5ldyBldihCUyxtJCwyNTcsMjg2LDE1KTtMdz1uZXcgZXYoRjksUFMsMCwzMCwxNSk7ZUg9bmV3IGV2KFtdLFowdywwLDE5LDcpO2hyPSEwfUQuUWY9bmV3IHRrKEQua0cseGYpO0QuYVM9Cm5ldyB0ayhELmxmLEx3KTtELm1NPW5ldyB0ayhELndoLGVIKTtELlJKPTA7RC5ZSD0wO0hTKEQpO0Q9MH1lbHNlIEQ9bEMoVywtMik7RD09PTAmJihXPVcuc3RhdGUsVy5iWD0yKlcueHIsVEIoVy5oZWFkKSxXLlJiPWJ3W1cubGV2ZWxdLlk4LFcuciQ9YndbVy5sZXZlbF0ubmssVy5PUj1id1tXLmxldmVsXS5FayxXLmViPWJ3W1cubGV2ZWxdLlNSLFcucXM9MCxXLk9LPTAsVy5HVz0wLFcucXA9MCxXLmZBPVcuVGE9MixXLlJGPTAsVy5wQT0wKTtXPUR9fWVsc2UgVz0tMjtpZihXIT09MCl0aHJvdyBFcnJvcih6QltXXSk7bi5oZWFkZXImJihXPXRoaXMuVFIpJiZXLnN0YXRlJiZXLnN0YXRlLndyYXA9PT0yJiYoVy5zdGF0ZS5GUT1uLmhlYWRlcik7aWYobi5Dbyl7dmFyIGU7dHlwZW9mIG4uQ289PT0ic3RyaW5nIj9lPXhqKG4uQ28pOmcyLmNhbGwobi5Dbyk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP2U9bmV3IFVpbnQ4QXJyYXkobi5Dbyk6ZT1uLkNvO249dGhpcy5UUjtrPWU7aD0Kay5sZW5ndGg7aWYobiYmbi5zdGF0ZSlpZihlPW4uc3RhdGUsVz1lLndyYXAsVz09PTJ8fFc9PT0xJiZlLnN0YXR1cyE9PTQyfHxlLkdXKVc9LTI7ZWxzZXtXPT09MSYmKG4uZ0k9VnQobi5nSSxrLGgsMCkpO2Uud3JhcD0wO2g+PWUueHImJihXPT09MCYmKFRCKGUuaGVhZCksZS5xcz0wLGUuT0s9MCxlLnFwPTApLEQ9bmV3IGhrLk9tKGUueHIpLGhrLlA3KEQsayxoLWUueHIsZS54ciwwKSxrPUQsaD1lLnhyKTtEPW4uQkE7Yj1uLlVaO3Y9bi5pbnB1dDtuLkJBPWg7bi5VWj0wO24uaW5wdXQ9aztmb3IoYVMoZSk7ZS5HVz49Mzspe2s9ZS5xcztoPWUuR1ctMjtkbyBlLnBBPShlLnBBPDxlLkhjXmUud2luZG93W2srMy0xXSkmZS5sQixlLlJUW2smZS55ZV09ZS5oZWFkW2UucEFdLGUuaGVhZFtlLnBBXT1rLGsrKzt3aGlsZSgtLWgpO2UucXM9aztlLkdXPTI7YVMoZSl9ZS5xcys9ZS5HVztlLk9LPWUucXM7ZS5xcD1lLkdXO2UuR1c9MDtlLmZBPWUuVGE9MjtlLlJGPTA7bi5VWj1iO24uaW5wdXQ9CnY7bi5CQT1EO2Uud3JhcD1XO1c9MH1lbHNlIFc9LTI7aWYoVyE9PTApdGhyb3cgRXJyb3IoekJbV10pO3RoaXMuWGg9ITB9fTsKWCQ9ZnVuY3Rpb24obil7dmFyIFc9V3x8e307Vy5CVD0hMDtXPW5ldyB2VihXKTtXLnB1c2gobiwhMCk7aWYoVy5lcnIpdGhyb3cgVy5tc2d8fHpCW1cuZXJyXTtyZXR1cm4gVy5yZXN1bHR9OwpxTj1mdW5jdGlvbiguLi5uKXtyZXR1cm4gbi5sZW5ndGg9PT0wP1c9Plc6bi5sZW5ndGg9PT0xP25bMF06bi5yZWR1Y2UoKFcsRCk9PiguLi5iKT0+VyhEKC4uLmIpKSl9OwpVeGo9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gVz0+KEQsYik9PntEPVcoRCxiKTt2YXIgdj0oKT0+e3Rocm93IEVycm9yKCJEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guIik7fSxrPXtnZXRTdGF0ZTpELmdldFN0YXRlLApkaXNwYXRjaDooaCwuLi54KT0+dihoLC4uLngpfTsKYj1uLm1hcChoPT5oKGspKTsKdj1xTiguLi5iKShELmRpc3BhdGNoKTtyZXR1cm57Li4uRCxkaXNwYXRjaDp2fX19Owp5NDI9ZnVuY3Rpb24obil7T2JqZWN0LmtleXMobikuZm9yRWFjaChXPT57dmFyIEQ9bltXXTtpZih0eXBlb2YgRCh2b2lkIDAse3R5cGU6R2R9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKGBUaGUgc2xpY2UgcmVkdWNlciBmb3Iga2V5ICIke1d9IiByZXR1cm5lZCB1bmRlZmluZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJZiB0aGUgc3RhdGUgcGFzc2VkIHRvIHRoZSByZWR1Y2VyIGlzIHVuZGVmaW5lZCwgeW91IG11c3QgZXhwbGljaXRseSByZXR1cm4gdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBzZXQgYSB2YWx1ZSBmb3IgdGhpcyByZWR1Y2VyLCB5b3UgY2FuIHVzZSBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLmApO2lmKHR5cGVvZiBEKHZvaWQgMCx7dHlwZTpgQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiR7dHIoKX1gfSk9PT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcihgVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSAiJHtXfSIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gcHJvYmVkIHdpdGggYSByYW5kb20gdHlwZS4gRG9uJ3QgdHJ5IHRvIGhhbmRsZSAnJHtHZH0nIG9yIG90aGVyIGFjdGlvbnMgaW4gInJlZHV4LyoiIG5hbWVzcGFjZS4gVGhleSBhcmUgY29uc2lkZXJlZCBwcml2YXRlLiBJbnN0ZWFkLCB5b3UgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHVubGVzcyBpdCBpcyB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBhY3Rpb24gdHlwZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQsIGJ1dCBjYW4gYmUgbnVsbC5gKTsKfSl9OwokZj1mdW5jdGlvbihuLFcsRCl7ZnVuY3Rpb24gYigpe2lmKEcpdGhyb3cgRXJyb3IoIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuZ2V0U3RhdGUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIFRoZSByZWR1Y2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIHRoZSBzdGF0ZSBhcyBhbiBhcmd1bWVudC4gUGFzcyBpdCBkb3duIGZyb20gdGhlIHRvcCByZWR1Y2VyIGluc3RlYWQgb2YgcmVhZGluZyBpdCBmcm9tIHRoZSBzdG9yZS4iKTtyZXR1cm4geH0KZnVuY3Rpb24gdihOKXtpZih0eXBlb2YgTiE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoYEV4cGVjdGVkIHRoZSBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7dHlwZW9mIE59J2ApO2lmKEcpdGhyb3cgRXJyb3IoIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuc3Vic2NyaWJlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBJZiB5b3Ugd291bGQgbGlrZSB0byBiZSBub3RpZmllZCBhZnRlciB0aGUgc3RvcmUgaGFzIGJlZW4gdXBkYXRlZCwgc3Vic2NyaWJlIGZyb20gYSBjb21wb25lbnQgYW5kIGludm9rZSBzdG9yZS5nZXRTdGF0ZSgpIGluIHRoZSBjYWxsYmFjayB0byBhY2Nlc3MgdGhlIGxhdGVzdCBzdGF0ZS4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL2FwaS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLiIpO3ZhciBIPSEwO2U9PT1MJiYoZT1MLnNsaWNlKCkpO2UucHVzaChOKTtyZXR1cm4gZnVuY3Rpb24oKXtpZihIKXtpZihHKXRocm93IEVycm9yKCJZb3UgbWF5IG5vdCB1bnN1YnNjcmliZSBmcm9tIGEgc3RvcmUgbGlzdGVuZXIgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvYXBpL3N0b3JlI3N1YnNjcmliZWxpc3RlbmVyIGZvciBtb3JlIGRldGFpbHMuIik7Ckg9ITE7ZT09PUwmJihlPUwuc2xpY2UoKSk7ZS5zcGxpY2UoZS5pbmRleE9mKE4pLDEpO0w9bnVsbH19fQpmdW5jdGlvbiBrKE4pe2lmKHR5cGVvZiBOIT09Im9iamVjdCJ8fE49PT1udWxsKXZhciBIPSExO2Vsc2V7Zm9yKEg9TjtPYmplY3QuZ2V0UHJvdG90eXBlT2YoSCkhPT1udWxsOylIPU9iamVjdC5nZXRQcm90b3R5cGVPZihIKTtIPU9iamVjdC5nZXRQcm90b3R5cGVPZihOKT09PUh9aWYoIUgpdGhyb3cgRXJyb3IoYEFjdGlvbnMgbXVzdCBiZSBwbGFpbiBvYmplY3RzLiBJbnN0ZWFkLCB0aGUgYWN0dWFsIHR5cGUgd2FzOiAnJHt0eXBlb2YgTn0nLiBZb3UgbWF5IG5lZWQgdG8gYWRkIG1pZGRsZXdhcmUgdG8geW91ciBzdG9yZSBzZXR1cCB0byBoYW5kbGUgZGlzcGF0Y2hpbmcgb3RoZXIgdmFsdWVzLCBzdWNoIGFzICdyZWR1eC10aHVuaycgdG8gaGFuZGxlIGRpc3BhdGNoaW5nIGZ1bmN0aW9ucy4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC00LXN0b3JlI21pZGRsZXdhcmUgYW5kIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC02LWFzeW5jLWxvZ2ljI3VzaW5nLXRoZS1yZWR1eC10aHVuay1taWRkbGV3YXJlIGZvciBleGFtcGxlcy5gKTsKaWYodHlwZW9mIE4udHlwZT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCdBY3Rpb25zIG1heSBub3QgaGF2ZSBhbiB1bmRlZmluZWQgInR5cGUiIHByb3BlcnR5LiBZb3UgbWF5IGhhdmUgbWlzc3BlbGxlZCBhbiBhY3Rpb24gdHlwZSBzdHJpbmcgY29uc3RhbnQuJyk7aWYoRyl0aHJvdyBFcnJvcigiUmVkdWNlcnMgbWF5IG5vdCBkaXNwYXRjaCBhY3Rpb25zLiIpO3RyeXtHPSEwLHg9aCh4LE4pfWZpbmFsbHl7Rz0hMX1IPUw9ZTtmb3IobGV0IEE9MDtBPEgubGVuZ3RoO0ErKykoMCxIW0FdKSgpO3JldHVybiBOfQppZih0eXBlb2YgVz09PSJmdW5jdGlvbiImJnR5cGVvZiBEPT09ImZ1bmN0aW9uInx8dHlwZW9mIEQ9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYXJndW1lbnRzWzNdPT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSXQgbG9va3MgbGlrZSB5b3UgYXJlIHBhc3Npbmcgc2V2ZXJhbCBzdG9yZSBlbmhhbmNlcnMgdG8gY3JlYXRlU3RvcmUoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBjb21wb3NlIHRoZW0gdG9nZXRoZXIgdG8gYSBzaW5nbGUgZnVuY3Rpb24uIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNC1zdG9yZSNjcmVhdGluZy1hLXN0b3JlLXdpdGgtZW5oYW5jZXJzIGZvciBhbiBleGFtcGxlLiIpO3R5cGVvZiBXPT09ImZ1bmN0aW9uIiYmdHlwZW9mIEQ9PT0idW5kZWZpbmVkIiYmKEQ9VyxXPXZvaWQgMCk7aWYodHlwZW9mIEQhPT0idW5kZWZpbmVkIil7aWYodHlwZW9mIEQhPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKGBFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke3R5cGVvZiBEfSdgKTsKcmV0dXJuIEQoJGYpKG4sVyl9aWYodHlwZW9mIG4hPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKGBFeHBlY3RlZCB0aGUgcm9vdCByZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHt0eXBlb2Ygbn0nYCk7dmFyIGg9bix4PVcsTD1bXSxlPUwsRz0hMTtrKHt0eXBlOkdkfSk7dmFyIHI9e2Rpc3BhdGNoOmssc3Vic2NyaWJlOnYsZ2V0U3RhdGU6YixyZXBsYWNlUmVkdWNlcjpmdW5jdGlvbihOKXtpZih0eXBlb2YgTiE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoYEV4cGVjdGVkIHRoZSBuZXh0UmVkdWNlciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7dHlwZW9mIE59YCk7aD1OO2soe3R5cGU6RUtDfSk7cmV0dXJuIHJ9LApbcjJdOmZ1bmN0aW9uKCl7cmV0dXJue3N1YnNjcmliZShOKXtmdW5jdGlvbiBIKCl7Ti5uZXh0JiZOLm5leHQoYigpKX0KaWYodHlwZW9mIE4hPT0ib2JqZWN0Inx8Tj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgdGhlIG9ic2VydmVyIHRvIGJlIGFuIG9iamVjdC4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke3R5cGVvZiBOfSdgKTtIKCk7cmV0dXJue3Vuc3Vic2NyaWJlOnYoSCl9fSxbcjJdKCl7cmV0dXJuIHRoaXN9fX19OwpyZXR1cm4gcn07Ck5OPWZ1bmN0aW9uKG4pe3JldHVybiBuPyhuPW4ucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVNjcmlwdFdyYXBwZWRWYWx1ZSk/bWMobik6bnVsbDpudWxsfTsKcHc9ZnVuY3Rpb24obil7cmV0dXJuIG4/KG49bi5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWUpP2szKG4pOm51bGw6bnVsbH07CmcuSFY9ZnVuY3Rpb24obil7bj1ZZihuKTtyZXR1cm4gZy5ITShuKX07CmZ3PWZ1bmN0aW9uKG4pe249WWYobik7cmV0dXJuIGszKG4pfTsKWWY9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1udWxsPyJudWxsIjpuPT09dm9pZCAwPyJ1bmRlZmluZWQiOm59OwpKcj1mdW5jdGlvbigpe3JldHVybiBnLnJyKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIpfHwiIn07CmcuU0g9ZnVuY3Rpb24oLi4ubil7bj1hcmd1bWVudHM7dmFyIFc9SUU7bi5sZW5ndGg+MT9XW25bMF1dPW5bMV06bi5sZW5ndGg9PT0xJiZPYmplY3QuYXNzaWduKFcsblswXSl9OwpnLkFyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4gaW4gSUU/SUVbbl06V307Cm15PWZ1bmN0aW9uKG4pe3ZhciBXPUlFLkVYUEVSSU1FTlRfRkxBR1M7cmV0dXJuIFc/V1tuXTp2b2lkIDB9OwppMGI9ZnVuY3Rpb24obil7S3cuZm9yRWFjaChXPT5XKG4pKX07ClBWPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZ3aW5kb3cueXRlcnI/ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNoKFcpe090KFcpfX06bn07Ck90PWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIpO1c/VyhuLCJFUlJPUiIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCk6KFc9Zy5BcigiRVJST1JTIixbXSksVy5wdXNoKFtuLCJFUlJPUiIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMF0pLGcuU0goIkVSUk9SUyIsVykpO2kwYihuKX07ClpFPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9Zy5ycigieXQubG9nZ2luZy5lcnJvcnMubG9nIik7az9rKG4sIldBUk5JTkciLFcsRCxiLHZvaWQgMCx2KTooaz1nLkFyKCJFUlJPUlMiLFtdKSxrLnB1c2goW24sIldBUk5JTkciLFcsRCxiLHZvaWQgMCx2XSksZy5TSCgiRVJST1JTIixrKSl9Owp5Rj1mdW5jdGlvbihuLFcpe1c9bi5zcGxpdChXKTt2YXIgRD17fTtmb3IobGV0IGs9MCxoPVcubGVuZ3RoO2s8aDtrKyspe2xldCB4PVdba10uc3BsaXQoIj0iKTtpZih4Lmxlbmd0aD09PTEmJnhbMF18fHgubGVuZ3RoPT09Mil0cnl7bGV0IEw9VXQoeFswXXx8IiIpLGU9VXQoeFsxXXx8IiIpO2lmKEwgaW4gRCl7bGV0IEc9RFtMXTtBcnJheS5pc0FycmF5KEcpP2cuUTIoRyxlKTpEW0xdPVtHLGVdfWVsc2UgRFtMXT1lfWNhdGNoKEwpe3ZhciBiPUwsdj14WzBdO2xldCBlPVN0cmluZyh5Rik7Yi5hcmdzPVt7a2V5OnYsdmFsdWU6eFsxXSxxdWVyeTpuLG1ldGhvZDp1UWg9PT1lPyJ1bmNoYW5nZWQiOmV9XTtvS2kuaGFzT3duUHJvcGVydHkodil8fFpFKGIpfX1yZXR1cm4gRH07CmcuRXQ9ZnVuY3Rpb24obil7dmFyIFc9W107Zy5hXyhuLChELGIpPT57dmFyIHY9cWgoYik7Zy55MihBcnJheS5pc0FycmF5KEQpP0Q6W0RdLGs9PntrPT0iIj9XLnB1c2godik6Vy5wdXNoKGAke3Z9PSR7cWgoayl9YCl9KX0pOwpyZXR1cm4gVy5qb2luKCImIil9OwpnLml3PWZ1bmN0aW9uKG4pe24uY2hhckF0KDApPT09Ij8iJiYobj1uLnN1YnN0cmluZygxKSk7cmV0dXJuIHlGKG4sIiYiKX07CnV3PWZ1bmN0aW9uKG4pe3JldHVybiBuLnNwbGl0KCIsIikubWFwKFc9PmcuaXcoVykpfTsKZy5vRT1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmRleE9mKCI/IikhPT0tMT8obj0obnx8IiIpLnNwbGl0KCIjIilbMF0sbj1uLnNwbGl0KCI/IiwyKSxnLml3KG4ubGVuZ3RoPjE/blsxXTpuWzBdKSk6e319OwpnLnpkPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGQyKG4sV3x8e30sITApfTsKZy5sdz1mdW5jdGlvbihuLFcpe3JldHVybiBkMihuLFd8fHt9LCExKX07CmQyPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLnNwbGl0KCIjIiwyKTtuPWJbMF07Yj1iLmxlbmd0aD4xPyIjIitiWzFdOiIiO3ZhciB2PW4uc3BsaXQoIj8iLDIpO249dlswXTt2PWcuaXcodlsxXXx8IiIpO2ZvcihsZXQgayBpbiBXKWlmKER8fCFnLmVwKHYsaykpdltrXT1XW2tdO3JldHVybiBnLkVUKG4sdikrYn07CmcuVGQ9ZnVuY3Rpb24obil7aWYoIVcpdmFyIFc9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIEQ9Zy5mcChuKVsxXXx8bnVsbCxiPWcuSVAobik7RCYmYj8obj1nLmZwKG4pLFc9Zy5mcChXKSxuPW5bM109PVdbM10mJm5bMV09PVdbMV0mJm5bNF09PVdbNF0pOm49Yj9nLklQKFcpPT09YiYmKE51bWJlcihnLmZwKFcpWzRdfHxudWxsKXx8bnVsbCk9PT0oTnVtYmVyKGcuZnAobilbNF18fG51bGwpfHxudWxsKTohMDtyZXR1cm4gbn07Cmcuakg9ZnVuY3Rpb24obil7bnx8KG49ZG9jdW1lbnQubG9jYXRpb24uaHJlZik7bj1nLmZwKG4pWzFdfHxudWxsO3JldHVybiBuIT09bnVsbCYmbj09PSJodHRwcyJ9OwpnLkJWPWZ1bmN0aW9uKG4pe249Q3cobik7cmV0dXJuIG49PT1udWxsPyExOm5bMF09PT0iY29tIiYmblsxXS5tYXRjaCgvXnlvdXR1YmUoPzpraWRzfC1ub2Nvb2tpZSk/JC8pPyEwOiExfTsKZy5GJD1mdW5jdGlvbihuKXtuPUN3KG4pO3JldHVybiBuPT09bnVsbD8hMTpuWzFdPT09Imdvb2dsZSI/ITA6blsyXT09PSJnb29nbGUiP25bMF09PT0iYXUiJiZuWzFdPT09ImNvbSI/ITA6blswXT09PSJ1ayImJm5bMV09PT0iY28iPyEwOiExOiExfTsKQ3c9ZnVuY3Rpb24obil7bj1nLklQKG4pO3JldHVybiBuIT09bnVsbD9uLnNwbGl0KCIuIikucmV2ZXJzZSgpOm51bGx9OwpVdD1mdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5tYXRjaChkeGkpP246RzUobil9OwpnLk1OPWZ1bmN0aW9uKG4pe2E6e2xldCBEO3RyeXtEPW4uTi50b3AubG9jYXRpb24uaHJlZn1jYXRjaChiKXtuPTI7YnJlYWsgYX1uPUQ/RD09PW4uSi5sb2NhdGlvbi5ocmVmPzA6MToyfW49e2R0OnpDdyxmbGFzaDoiMCIsZnJtOm59O3RyeXtuLnVfdHo9LShuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKTt0cnl7dmFyIFc9Zy53Mi5oaXN0b3J5Lmxlbmd0aH1jYXRjaChEKXtXPTB9bi51X2hpcz1XO24udV9oPWcudzIuc2NyZWVuPy5oZWlnaHQ7bi51X3c9Zy53Mi5zY3JlZW4/LndpZHRoO24udV9haD1nLncyLnNjcmVlbj8uYXZhaWxIZWlnaHQ7bi51X2F3PWcudzIuc2NyZWVuPy5hdmFpbFdpZHRoO24udV9jZD1nLncyLnNjcmVlbj8uY29sb3JEZXB0aH1jYXRjaChEKXt9cmV0dXJuIG59OwpnLlFGPWZ1bmN0aW9uKG49SnIoKSl7dmFyIFc9Zy5SRSxEPU9iamVjdCxiPUQuYXNzaWduLHY9Zy5NTihXKTt2YXIgaz1XLk47dHJ5e3ZhciBoPWsuc2NyZWVuWDt2YXIgeD1rLnNjcmVlbll9Y2F0Y2goVCl7fXRyeXt2YXIgTD1rLm91dGVyV2lkdGg7dmFyIGU9ay5vdXRlckhlaWdodH1jYXRjaChUKXt9dHJ5e3ZhciBHPWsuaW5uZXJXaWR0aDt2YXIgcj1rLmlubmVySGVpZ2h0fWNhdGNoKFQpe310cnl7dmFyIE49ay5zY3JlZW5MZWZ0O3ZhciBIPWsuc2NyZWVuVG9wfWNhdGNoKFQpe310cnl7Rz1rLmlubmVyV2lkdGgscj1rLmlubmVySGVpZ2h0fWNhdGNoKFQpe310cnl7dmFyIEE9ay5zY3JlZW4uYXZhaWxXaWR0aDt2YXIgeT1rLnNjcmVlbi5hdmFpbFRvcH1jYXRjaChUKXt9az1bTixILGgseCxBLHksTCxlLEcscl07aD1nLnNJKCExLFcuTi50b3ApO3g9bmV3IGxYcjsiU1ZHRWxlbWVudCJpbiBnLnFpJiYiY3JlYXRlRWxlbWVudE5TImluIGcucWkuZG9jdW1lbnQmJnguc2V0KDApOwpMPVRUcigpO0xbImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJdJiZ4LnNldCgxKTtMWyJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giXSYmeC5zZXQoMik7Zy5xaS5jcnlwdG8mJmcucWkuY3J5cHRvLnN1YnRsZSYmeC5zZXQoMyk7IlRleHREZWNvZGVyImluIGcucWkmJiJUZXh0RW5jb2RlciJpbiBnLnFpJiZ4LnNldCg0KTtXPXtiYzpOV2goeCksYmloOmguaGVpZ2h0LGJpdzpoLndpZHRoLGJyZGltOmsuam9pbigpLHZpczpnLk53KFcuSiksd2dsOiEhZy53Mi5XZWJHTFJlbmRlcmluZ0NvbnRleHR9O0Q9Yi5jYWxsKEQsdixXKTtELmNhX3R5cGU9ImltYWdlIjtuJiYoRC5iaWQ9bik7cmV0dXJuIER9OwpUVzI9ZnVuY3Rpb24oKXtpZighVkYpcmV0dXJuIG51bGw7dmFyIG49VkYoKTtyZXR1cm4ib3BlbiJpbiBuP246bnVsbH07CmFFPWZ1bmN0aW9uKG4pe3N3aXRjaChjVihuKSl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDM6Y2FzZSAyMDQ6Y2FzZSAyMDU6Y2FzZSAyMDY6Y2FzZSAzMDQ6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19OwpjVj1mdW5jdGlvbihuKXtyZXR1cm4gbiYmInN0YXR1cyJpbiBuP24uc3RhdHVzOi0xfTsKZy5uJD1mdW5jdGlvbihuLFcpe3R5cGVvZiBuPT09ImZ1bmN0aW9uIiYmKG49UFYobikpO3JldHVybiB3aW5kb3cuc2V0VGltZW91dChuLFcpfTsKVzA9ZnVuY3Rpb24obixXKXt0eXBlb2Ygbj09PSJmdW5jdGlvbiImJihuPVBWKG4pKTtyZXR1cm4gd2luZG93LnNldEludGVydmFsKG4sVyl9OwpEcj1mdW5jdGlvbihuKXt3aW5kb3cuY2xlYXJJbnRlcnZhbChuKX07CmcubD1mdW5jdGlvbihuLFcpe249YmIobixXKTtyZXR1cm4gdHlwZW9mIG49PT0ic3RyaW5nIiYmbj09PSJmYWxzZSI/ITE6ISFufTsKdjA9ZnVuY3Rpb24obixXKXtyZXR1cm4gTnVtYmVyKGJiKG4sVyl8fDApfTsKa1Q9ZnVuY3Rpb24oKXtyZXR1cm4gZy5BcigiRVhQRVJJTUVOVFNfVE9LRU4iLCIiKX07CmJiPWZ1bmN0aW9uKG4sVyl7bj1nLkFyKCJFWFBFUklNRU5UX0ZMQUdTIix7fSlbbl07cmV0dXJuIG4hPT12b2lkIDA/bjpXfTsKaHk9ZnVuY3Rpb24oKXt2YXIgbj1bXSxXPWcuQXIoIkVYUEVSSU1FTlRTX0ZPUkNFRF9GTEFHUyIse30pO2Zvcih2YXIgRCBvZiBPYmplY3Qua2V5cyhXKSluLnB1c2goe2tleTpELHZhbHVlOlN0cmluZyhXW0RdKX0pO0Q9Zy5BcigiRVhQRVJJTUVOVF9GTEFHUyIse30pO2ZvcihsZXQgYiBvZiBPYmplY3Qua2V5cyhEKSliLnN0YXJ0c1dpdGgoImZvcmNlXyIpJiZXW2JdPT09dm9pZCAwJiZuLnB1c2goe2tleTpiLHZhbHVlOlN0cmluZyhEW2JdKX0pO3JldHVybiBufTsKeFQ9ZnVuY3Rpb24obixXLEQ9IkdFVCIsYj0iIix2LGssaCx4PSExLEwpe3ZhciBlPVRXMigpO2lmKCFlKXJldHVybiBudWxsO3ZhciBHPSgpPT57KGUmJiJyZWFkeVN0YXRlImluIGU/ZS5yZWFkeVN0YXRlOjApPT09NCYmVyYmUFYoVykoZSl9Owoib25sb2FkZW5kImluIGU/ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixHLCExKTplLm9ucmVhZHlzdGF0ZWNoYW5nZT1HO2cubCgiZGVidWdfZm9yd2FyZF93ZWJfcXVlcnlfcGFyYW1ldGVycyIpJiYobj1qMloobikpO2Uub3BlbihELG4sITApO2smJihlLnJlc3BvbnNlVHlwZT1rKTtoJiYoZS53aXRoQ3JlZGVudGlhbHM9ITApO0Q9RD09PSJQT1NUIiYmKHdpbmRvdy5Gb3JtRGF0YT09PXZvaWQgMHx8IShiIGluc3RhbmNlb2YgRm9ybURhdGEpKTtpZih2PUNwTShuLHYpKWZvcihsZXQgciBpbiB2KWUuc2V0UmVxdWVzdEhlYWRlcihyLHZbcl0pLCJjb250ZW50LXR5cGUiPT09ci50b0xvd2VyQ2FzZSgpJiYoRD0hMSk7RCYmZS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTtMJiYib25wcm9ncmVzcyJpbiBlJiYoZS5vbnByb2dyZXNzPSgpPT57TChlLnJlc3BvbnNlVGV4dCl9KTsKaWYoeCYmInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nImluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSl7bj17ZXZlbnRTb3VyY2VFbGlnaWJsZTohMCx0cmlnZ2VyRWxpZ2libGU6ITF9O3RyeXtlLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKG4pfWNhdGNoKHIpe1pFKHIpfX1lLnNlbmQoYik7cmV0dXJuIGV9OwpDcE09ZnVuY3Rpb24obixXPXt9KXt2YXIgRD1nLlRkKG4pLGI9Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIiksdj1nLmwoIndlYl9hamF4X2lnbm9yZV9nbG9iYWxfaGVhZGVyc19pZl9zZXQiKTtmb3IobGV0IHggaW4gTCQpe2xldCBMPWcuQXIoTCRbeF0pLGU9eD09PSJYLUdvb2ctQXV0aFVzZXIifHx4PT09IlgtR29vZy1QYWdlSWQiO3ghPT0iWC1Hb29nLVZpc2l0b3ItSWQifHxMfHwoTD1nLkFyKCJWSVNJVE9SX0RBVEEiKSk7dmFyIGs7aWYoIShrPSFMKSl7aWYoIShrPUR8fChnLklQKG4pPyExOiEwKSkpe2s9bjt2YXIgaDtpZihoPWcubCgiYWRkX2F1dGhfaGVhZGVyc190b19yZW1hcmtldGluZ19nb29nbGVfZG90X2NvbV9waW5nIikmJng9PT0iQXV0aG9yaXphdGlvbiImJihiPT09IlRWSFRNTDUifHxiPT09IlRWSFRNTDVfVU5QTFVHR0VEInx8Yj09PSJUVkhUTUw1X1NJTVBMWSIpJiZnLkYkKGspKWs9UzEoayl8fCIiLGs9ay5zcGxpdCgiLyIpLGs9Ii8iKyhrLmxlbmd0aD4KMT9rWzFdOiIiKSxoPWs9PT0iL3BhZ2VhZCI7az1oPyEwOiExfWs9IWt9a3x8diYmV1t4XSE9PXZvaWQgMHx8Yj09PSJUVkhUTUw1X1VOUExVR0dFRCImJmV8fChXW3hdPUwpfSJYLUdvb2ctRU9NLVZpc2l0b3ItSWQiaW4gVyYmIlgtR29vZy1WaXNpdG9yLUlkImluIFcmJmRlbGV0ZSBXWyJYLUdvb2ctVmlzaXRvci1JZCJdO2lmKER8fCFnLklQKG4pKVdbIlgtWW91VHViZS1VdGMtT2Zmc2V0Il09U3RyaW5nKC0obmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkpO2lmKER8fCFnLklQKG4pKXtsZXQgeDt0cnl7eD0obmV3IEludGwuRGF0ZVRpbWVGb3JtYXQpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lfWNhdGNoe314JiYoV1siWC1Zb3VUdWJlLVRpbWUtWm9uZSJdPXgpfWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLmVuZHNXaXRoKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpfHwhRCYmZy5JUChuKXx8KFdbIlgtWW91VHViZS1BZC1TaWduYWxzIl09Zy5FdChnLlFGKCkpKTtyZXR1cm4gV307Cmc4PWZ1bmN0aW9uKG4sVyl7Vy5tZXRob2Q9IlBPU1QiO1cucG9zdFBhcmFtc3x8KFcucG9zdFBhcmFtcz17fSk7cmV0dXJuIGcuZWQobixXKX07CkJXaj1mdW5jdGlvbihuLFcpe2lmKHdpbmRvdy5mZXRjaCYmVy5mb3JtYXQhPT0iWE1MIil7dmFyIEQ9e21ldGhvZDpXLm1ldGhvZHx8IkdFVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn07Vy5oZWFkZXJzJiYoRC5oZWFkZXJzPVcuaGVhZGVycyk7Vy5wcmlvcml0eSYmKEQucHJpb3JpdHk9Vy5wcmlvcml0eSk7bj1YbihuLFcpO3ZhciBiPXFYKG4sVyk7YiYmKEQuYm9keT1iKTtXLndpdGhDcmVkZW50aWFscyYmKEQuY3JlZGVudGlhbHM9ImluY2x1ZGUiKTt2YXIgdj1XLmNvbnRleHR8fGcucWksaz0hMSxoO2ZldGNoKG4sRCkudGhlbih4PT57aWYoIWspe2s9ITA7aCYmd2luZG93LmNsZWFyVGltZW91dChoKTt2YXIgTD14Lm9rLGU9Rz0+e0c9R3x8e307TD9XLm9uU3VjY2VzcyYmVy5vblN1Y2Nlc3MuY2FsbCh2LEcseCk6Vy5vbkVycm9yJiZXLm9uRXJyb3IuY2FsbCh2LEcseCk7Vy5vbkZpbmlzaCYmVy5vbkZpbmlzaC5jYWxsKHYsRyx4KX07CihXLmZvcm1hdHx8IkpTT04iKT09PSJKU09OIiYmKEx8fHguc3RhdHVzPj00MDAmJnguc3RhdHVzPDUwMCk/eC5qc29uKCkudGhlbihlLCgpPT57ZShudWxsKX0pOmUobnVsbCl9fSkuY2F0Y2goKCk9PntXLm9uRXJyb3ImJlcub25FcnJvci5jYWxsKHYse30se30pfSk7Cm49Vy50aW1lb3V0fHwwO1cub25GZXRjaFRpbWVvdXQmJm4+MCYmKGg9Zy5uJCgoKT0+e2t8fChrPSEwLHdpbmRvdy5jbGVhclRpbWVvdXQoaCksVy5vbkZldGNoVGltZW91dC5jYWxsKFcuY29udGV4dHx8Zy5xaSkpfSxuKSl9ZWxzZSBnLmVkKG4sVyl9OwpnLmVkPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5mb3JtYXR8fCJKU09OIjtuPVhuKG4sVyk7dmFyIGI9cVgobixXKSx2PSExLGs9RngxKG4seD0+e2lmKCF2KXt2PSEwO2gmJndpbmRvdy5jbGVhclRpbWVvdXQoaCk7dmFyIEw9YUUoeCksZT1udWxsLEc9NDAwPD14LnN0YXR1cyYmeC5zdGF0dXM8NTAwLHI9NTAwPD14LnN0YXR1cyYmeC5zdGF0dXM8NjAwO2lmKEx8fEd8fHIpZT13MjIobixELHgsVy5jb252ZXJ0VG9TYWZlSHRtbCk7TCYmKEw9TXVDKEQseCxlKSk7ZT1lfHx7fTtHPVcuY29udGV4dHx8Zy5xaTtMP1cub25TdWNjZXNzJiZXLm9uU3VjY2Vzcy5jYWxsKEcseCxlKTpXLm9uRXJyb3ImJlcub25FcnJvci5jYWxsKEcseCxlKTtXLm9uRmluaXNoJiZXLm9uRmluaXNoLmNhbGwoRyx4LGUpfX0sVy5tZXRob2QsYixXLmhlYWRlcnMsVy5yZXNwb25zZVR5cGUsVy53aXRoQ3JlZGVudGlhbHMsITEsVy5vblByb2dyZXNzKTsKYj1XLnRpbWVvdXR8fDA7aWYoVy5vblRpbWVvdXQmJmI+MCl7bGV0IHg9Vy5vblRpbWVvdXQ7dmFyIGg9Zy5uJCgoKT0+e3Z8fCh2PSEwLGsuYWJvcnQoKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLHguY2FsbChXLmNvbnRleHR8fGcucWksaykpfSxiKX1yZXR1cm4ga307ClhuPWZ1bmN0aW9uKG4sVyl7Vy5pbmNsdWRlRG9tYWluJiYobj1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKyhkb2N1bWVudC5sb2NhdGlvbi5wb3J0PyI6Iitkb2N1bWVudC5sb2NhdGlvbi5wb3J0OiIiKStuKTt2YXIgRD1nLkFyKCJYU1JGX0ZJRUxEX05BTUUiKTtpZihXPVcudXJsUGFyYW1zKVdbRF0mJmRlbGV0ZSBXW0RdLG49Zy56ZChuLFcpO3JldHVybiBufTsKcVg9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkFyKCJYU1JGX0ZJRUxEX05BTUUiKSxiPWcuQXIoIlhTUkZfVE9LRU4iKSx2PVcucG9zdEJvZHl8fCIiLGs9Vy5wb3N0UGFyYW1zLGg9Zy5BcigiWFNSRl9GSUVMRF9OQU1FIikseDtXLmhlYWRlcnMmJih4PVcuaGVhZGVyc1siQ29udGVudC1UeXBlIl0pO1cuZXhjbHVkZVhzcmZ8fGcuSVAobikmJiFXLndpdGhDcmVkZW50aWFscyYmZy5JUChuKSE9PWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lfHxXLm1ldGhvZCE9PSJQT1NUInx8eCYmeCE9PSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifHxXLnBvc3RQYXJhbXMmJlcucG9zdFBhcmFtc1toXXx8KGt8fChrPXt9KSxrW0RdPWIpO2smJnR5cGVvZiB2PT09InN0cmluZyImJih2PWcuaXcodiksZy5ZeSh2LGspLHY9Vy5wb3N0Qm9keUZvcm1hdCYmVy5wb3N0Qm9keUZvcm1hdD09PSJKU09OIj9KU09OLnN0cmluZ2lmeSh2KTp5Ryh2KSk7az12fHxrJiYhZy5HRihrKTshR1EmJgprJiZXLm1ldGhvZCE9PSJQT1NUIiYmKEdRPSEwLE90KEVycm9yKCJBSkFYIHJlcXVlc3Qgd2l0aCBwb3N0RGF0YSBzaG91bGQgdXNlIFBPU1QiKSkpO3JldHVybiB2fTsKdzIyPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW51bGw7c3dpdGNoKFcpe2Nhc2UgIkpTT04iOmxldCBrO3RyeXtrPUQucmVzcG9uc2VUZXh0fWNhdGNoKGgpe3Rocm93IGI9RXJyb3IoIkVycm9yIHJlYWRpbmcgcmVzcG9uc2VUZXh0IiksYi5wYXJhbXM9bixaRShiKSxoO31uPUQuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpfHwiIjtpZihrJiZuLmluZGV4T2YoImpzb24iKT49MCl7ay5zdWJzdHJpbmcoMCw1KT09PSIpXX0nXG4iJiYoaz1rLnN1YnN0cmluZyg1KSk7dHJ5e3Y9SlNPTi5wYXJzZShrKX1jYXRjaChoKXt9fWJyZWFrO2Nhc2UgIlhNTCI6aWYobj0obj1ELnJlc3BvbnNlWE1MKT9SQ1Uobik6bnVsbCl2PXt9LGcueTIobi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGg9Pnt2W2gudGFnTmFtZV09UTJpKGgpfSl9YiYmdHkodik7CnJldHVybiB2fTsKdHk9ZnVuY3Rpb24obil7aWYoZy5mdChuKSlmb3IobGV0IFcgaW4gbilXPT09Imh0bWxfY29udGVudCJ8fGcuQlooVywiX2h0bWwiKT9uW1ddPWcuSE0obltXXSk6dHkobltXXSl9OwpNdUM9ZnVuY3Rpb24obixXLEQpe2lmKFcmJlcuc3RhdHVzPT09MjA0KXJldHVybiEwO3N3aXRjaChuKXtjYXNlICJKU09OIjpyZXR1cm4hIUQ7Y2FzZSAiWE1MIjpyZXR1cm4gTnVtYmVyKEQmJkQucmV0dXJuX2NvZGUpPT09MDtjYXNlICJSQVciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuISFEfX07ClJDVT1mdW5jdGlvbihuKXtyZXR1cm4gbj8obj0oInJlc3BvbnNlWE1MImluIG4/bi5yZXNwb25zZVhNTDpuKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgicm9vdCIpKSYmbi5sZW5ndGg+MD9uWzBdOm51bGw6bnVsbH07ClEyaT1mdW5jdGlvbihuKXt2YXIgVz0iIjtnLnkyKG4uY2hpbGROb2RlcyxEPT57Vys9RC5ub2RlVmFsdWV9KTsKcmV0dXJuIFd9OwpqMlo9ZnVuY3Rpb24obil7dmFyIFc9d2luZG93LmxvY2F0aW9uLnNlYXJjaCxEPWcuSVAobik7Zy5sKCJkZWJ1Z19oYW5kbGVfcmVsYXRpdmVfdXJsX2Zvcl9xdWVyeV9mb3J3YXJkX2tpbGxzd2l0Y2giKXx8IUQmJmcuVGQobikmJihEPWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTt2YXIgYj1TMShuKTtiPShEPUQmJihELmVuZHNXaXRoKCJ5b3V0dWJlLmNvbSIpfHxELmVuZHNXaXRoKCJ5b3V0dWJlLW5vY29va2llLmNvbSIpKSkmJmImJmIuc3RhcnRzV2l0aCgiL2FwaS8iKTtpZighRHx8YilyZXR1cm4gbjt2YXIgdj1nLml3KFcpLGs9e307Zy55MihWdWIsaD0+e3ZbaF0mJihrW2hdPXZbaF0pfSk7CnJldHVybiBnLmx3KG4sayl9OwpnLnI4PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5zMChXKSxiO3JldHVybihuZXcgZy5YMSgodixrKT0+e0Qub25TdWNjZXNzPWg9PnthRShoKT92KG5ldyBjNFUoaCkpOmsobmV3IGcuJFQoYFJlcXVlc3QgZmFpbGVkLCBzdGF0dXM9JHtjVihoKX1gLCJuZXQuYmFkc3RhdHVzIixoKSl9OwpELm9uRXJyb3I9aD0+e2sobmV3IGcuJFQoIlVua25vd24gcmVxdWVzdCBlcnJvciIsIm5ldC51bmtub3duIixoKSl9OwpELm9uVGltZW91dD1oPT57ayhuZXcgZy4kVCgiUmVxdWVzdCB0aW1lZCBvdXQiLCJuZXQudGltZW91dCIsaCkpfTsKYj1nLmVkKG4sRCl9KSkuc1Aodj0+e3YgaW5zdGFuY2VvZiBnLkk1JiZiPy5hYm9ydCgpOwpyZXR1cm4gZy5ycCh2KX0pfTsKZy5zej1mdW5jdGlvbihuLFcsRCxiLHY9LTEsayl7dmFyIGg9TD0+bmV3IGcuWDEoZT0+e3NldFRpbWVvdXQoZSxMKX0pLHg9KEwsZSxHKT0+TC5zUChyPT57aWYoZTw9MHx8Y1Yoci54aHIpPT09NDAzKXJldHVybiBnLnJwKG5ldyBnLiRUKCJSZXF1ZXN0IHJldHJpZWQgdG9vIG1hbnkgdGltZXMiLCJuZXQucmV0cnlleGhhdXN0ZWQiLHIueGhyKSk7CnZhciBOPU1hdGgucG93KDIsRC1lKzEpKkcsSD12PjA/TWF0aC5taW4odixOKTpOO3JldHVybiBoKEcpLnRoZW4oKCk9PntrJiZrKHIsZS0xKTtyZXR1cm4geChnLnI4KG4sVyksZS0xLEgpfSl9KTsKcmV0dXJuIHgoZy5yOChuLFcpLEQtMSxiKX07CmFYQz1mdW5jdGlvbihuLFc9bnVsbCl7bi5XPTI7bi5KPVd9OwpuVXc9ZnVuY3Rpb24obixXPW51bGwpe24uVz0xO24uSj1XfTsKZy5wJD1mdW5jdGlvbihuPW51bGwpe3ZhciBXPW5ldyBOWDthWEMoVyxuKTtyZXR1cm4gV307CmcuSDA9ZnVuY3Rpb24obj1udWxsKXt2YXIgVz1uZXcgTlg7blV3KFcsbik7cmV0dXJuIFd9OwpJSz1mdW5jdGlvbihuLFcsRCxiPSJ5b3V0dWJlLmNvbSIsdj0hMSl7ZiR8fEp5LnNldCgiIituLFcse256OkQscGF0aDoiLyIsZG9tYWluOmIsc2VjdXJlOnZ9KX07CmcuU2Q9ZnVuY3Rpb24obil7aWYoIWYkKXJldHVybiBKeS5nZXQoIiIrbix2b2lkIDApfTsKQXk9ZnVuY3Rpb24obixXPSIvIixEPSJ5b3V0dWJlLmNvbSIpe2YkfHxKeS5yZW1vdmUoIiIrbixXLEQpfTsKZy5taj1mdW5jdGlvbigpe2lmKCFKeS5pc0VuYWJsZWQoKSlyZXR1cm4hMTtpZighSnkuaXNFbXB0eSgpKXJldHVybiEwO0p5LnNldCgiVEVTVENPT0tJRVNFTkFCTEVEIiwiMSIse256OjYwfSk7aWYoSnkuZ2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiKSE9PSIxIilyZXR1cm4hMTtKeS5yZW1vdmUoIlRFU1RDT09LSUVTRU5BQkxFRCIpO3JldHVybiEwfTsKZy53PWZ1bmN0aW9uKG4sVyl7aWYobilyZXR1cm4gbltXLm5hbWVdfTsKSyQ9ZnVuY3Rpb24obil7dmFyIFc9Zy5BcigiSU5ORVJUVUJFX0hPU1RfT1ZFUlJJREUiKTtXJiYobj1TdHJpbmcoVykrU3RyaW5nKG1XKG4pKSk7cmV0dXJuIG59OwpnWj1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1XXm47dmFyIGs7KG4tNSYxMyk9PTEmJihrPURbSVsxN11dP0RbSVsxN11dW0lbMzVdXShJWzYzXSk6RFtJWzI2XV09PT1JWzYzXSk7aWYoKG4+PjEmNyk9PTEpe3ZhciBoPVAwKHZeNjQ0MCx2XjEzODcsRCk7YltJW3ZeNjQyNF1dKElbdl42NDM3XSxoKTtrPVtdfShuJjEzKT09biYmYltJWzVdXSE9MCYmKGg9b1MoNCw3NjI0LEQsYiksRD1oWzBdKTtyZXR1cm4ga307ClpyPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O2cubCgianNvbl9jb25kZW5zZWRfcmVzcG9uc2UiKSYmKFcucHJldHR5UHJpbnQ9ImZhbHNlIik7cmV0dXJuIG49Zy5sdyhuLFcpfTsKVXo9ZnVuY3Rpb24obixXPSJQT1NUIil7bj17bWV0aG9kOlcsbW9kZTpnLlRkKG4pPyJzYW1lLW9yaWdpbiI6ImNvcnMiLGNyZWRlbnRpYWxzOmcuVGQobik/InNhbWUtb3JpZ2luIjoiaW5jbHVkZSJ9O1c9e307dmFyIEQ9e307Zm9yKGxldCBiIG9mIE9iamVjdC5rZXlzKFcpKVdbYl0mJihEW2JdPVdbYl0pO09iamVjdC5rZXlzKEQpLmxlbmd0aD4wJiYobi5oZWFkZXJzPUQpO3JldHVybiBufTsKeUg9ZnVuY3Rpb24obixXPXt9KXtyZXR1cm5gc2VydmljZToke259LyR7T2JqZWN0LmtleXMoVykuc29ydCgpLm1hcChEPT5EKyI6IitXW0RdKS5qb2luKCIvIil9YH07CkV6PWZ1bmN0aW9uKCl7dmFyIG49L0Nocm9tZVwvKFxkKykvLmV4ZWMoZy5YUSgpKTtyZXR1cm4gbj9wYXJzZUZsb2F0KG5bMV0pOk5hTn07CmliPWZ1bmN0aW9uKCl7dmFyIG49L1xzQ29iYWx0XC8oXFMrKVxzLy5leGVjKGcuWFEoKSk7aWYoIW4pcmV0dXJuIE5hTjt2YXIgVz1bXTtmb3IobGV0IEQgb2YgblsxXS5zcGxpdCgiLiIpKW49cGFyc2VJbnQoRCwxMCksbj49MCYmVy5wdXNoKG4pO3JldHVybiBwYXJzZUZsb2F0KFcuam9pbigiLiIpKX07Cm9LPWZ1bmN0aW9uKCl7cmV0dXJuIGcudWIoImFuZHJvaWQiKSYmZy51YigiY2hyb21lIikmJiEoZy51YigidHJpZGVudC8iKXx8Zy51YigiZWRnZS8iKSkmJiFnLnViKCJjb2JhbHQiKX07CmcuZDg9ZnVuY3Rpb24oKXtyZXR1cm4gZy51YigiY29iYWx0Iil9Owp6UT1mdW5jdGlvbigpe3JldHVybiBnLnViKCJjb2JhbHQiKSYmZy51YigiYXBwbGV0diIpfTsKbGI9ZnVuY3Rpb24oKXtyZXR1cm4gZy51YigiKHBzMzsgbGVhbmJhY2sgc2hlbGwpIil8fGcudWIoInBzMyIpJiZnLmQ4KCl9OwpUUT1mdW5jdGlvbigpe3JldHVybiBnLnViKCIocHM0OyBsZWFuYmFjayBzaGVsbCkiKXx8Zy51YigicHM0IikmJmcuZDgoKX07CmcuamQ9ZnVuY3Rpb24oKXtyZXR1cm4gZy5kOCgpJiYoZy51YigicHM0IHZyIil8fGcudWIoInBzNCBwcm8gdnIiKSl9OwpDJD1mdW5jdGlvbigpe3ZhciBuPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKGcuWFEoKSk7cmV0dXJuISEobiYmcGFyc2VJbnQoblsxXSwxMCk+PTYwMCl9OwpCMD1mdW5jdGlvbigpe3ZhciBuPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKGcuWFEoKSk7cmV0dXJuISEobiYmcGFyc2VJbnQoblsxXSwxMCk+PTYwMil9OwpGbj1mdW5jdGlvbigpe3JldHVybiBnLnViKCJpZW1vYmlsZSIpfHxnLnViKCJ3aW5kb3dzIHBob25lIikmJmcudWIoImVkZ2UiKX07ClJLPWZ1bmN0aW9uKCl7cmV0dXJuKHc4fHxNWCkmJmcudWIoImFwcGxld2Via2l0IikmJiFnLnViKCJ2ZXJzaW9uIikmJighZy51Yigic2FmYXJpIil8fGcudWIoImdzYS8iKSl9OwpWSD1mdW5jdGlvbigpe3JldHVybiBnLlFIJiZnLnViKCJ2ZXJzaW9uLyIpfTsKYzA9ZnVuY3Rpb24oKXtyZXR1cm4gZy51Yigic21hcnQtdHYiKSYmZy51Yigic2Ftc3VuZyIpfTsKZy51Yj1mdW5jdGlvbihuKXt2YXIgVz1nLlhRKCk7cmV0dXJuIFc/Vy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobik+PTA6ITF9OwpnLmFLPWZ1bmN0aW9uKCl7cmV0dXJuIGo2KCl8fFJLKCl8fFZIKCk/ITA6Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpPyExOiEwfTsKbnk9ZnVuY3Rpb24obixXKXtyZXR1cm4gVz09PXZvaWQgMHx8Vz09PW51bGw/bjpXPT09IjEifHxXPT09ITB8fFc9PT0xfHxXPT09IlRydWUiPyEwOiExfTsKV0I9ZnVuY3Rpb24obixXLEQpe2ZvcihsZXQgYiBpbiBEKWlmKERbYl09PVcpcmV0dXJuIERbYl07cmV0dXJuIG59OwpEST1mdW5jdGlvbihuLFcpe3JldHVybiBXPT09dm9pZCAwfHxXPT09bnVsbD9uOk51bWJlcihXKX07CmJPPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc9PT12b2lkIDB8fFc9PT1udWxsP246Vy50b1N0cmluZygpfTsKdkI9ZnVuY3Rpb24obixXKXtpZihXKXtpZihuPT09ImZ1bGx3aWR0aCIpcmV0dXJuIEluZmluaXR5O2lmKG49PT0iZnVsbGhlaWdodCIpcmV0dXJuIDB9cmV0dXJuIG4mJihXPW4ubWF0Y2goVzAxKSkmJihuPU51bWJlcihXWzJdKSxXPU51bWJlcihXWzFdKSwhaXNOYU4obikmJiFpc05hTihXKSYmbj4wKT9XL246TmFOfTsKa1I9ZnVuY3Rpb24obil7dmFyIFc9bi5kb2NpZHx8bi52aWRlb19pZHx8bi52aWRlb0lkfHxuLmlkO2lmKFcpcmV0dXJuIFc7Vz1uLnJhd19wbGF5ZXJfcmVzcG9uc2U7V3x8KG49bi5wbGF5ZXJfcmVzcG9uc2UpJiYoVz1KU09OLnBhcnNlKG4pKTtyZXR1cm4gVyYmVy52aWRlb0RldGFpbHMmJlcudmlkZW9EZXRhaWxzLnZpZGVvSWR8fG51bGx9OwpnLnhSPWZ1bmN0aW9uKG4pe3JldHVybiBoTyhuLCExKT09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwifTsKTHk9ZnVuY3Rpb24obil7cmV0dXJuIG49PT0iRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9GSVhFRF9QTEFZQkFDS19MSU1JVCJ8fG49PT0iRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9EWU5BTUlDX1BMQVlCQUNLX0xJTUlUIj8hMDohMX07CmhPPWZ1bmN0aW9uKG4sVz0hMSl7Vz1XPyJFTUJFRERFRF9QTEFZRVJfTU9ERV9ERUZBVUxUIjoiRU1CRURERURfUExBWUVSX01PREVfVU5LTk9XTiI7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluY2x1ZGVzKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpJiYoVz0iRU1CRURERURfUExBWUVSX01PREVfUEZMIik7dmFyIEQ9bi5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlO2lmKCFEJiYobj1uLmVtYmVkZGVkX3BsYXllcl9yZXNwb25zZSkpdHJ5e0Q9SlNPTi5wYXJzZShuKX1jYXRjaChiKXtyZXR1cm4gV31yZXR1cm4gRD9XQihXLEQuZW1iZWRkZWRQbGF5ZXJNb2RlLEQzMSk6V307CmI1dD1mdW5jdGlvbihuKXtuJiYobi5kYXRhc2V0P24uZGF0YXNldFtlXygpXT0idHJ1ZSI6cXd0KG4pKX07CmdKPWZ1bmN0aW9uKG4pe3JldHVybiBuP24uZGF0YXNldD9uLmRhdGFzZXRbZV8oKV06bi5nZXRBdHRyaWJ1dGUoImRhdGEtbG9hZGVkIik6bnVsbH07CmVfPWZ1bmN0aW9uKCl7cmV0dXJuIFhrLmxvYWRlZHx8KFhrLmxvYWRlZD0ibG9hZGVkIi5yZXBsYWNlKC9cLShbYS16XSkvZywobixXKT0+Vy50b1VwcGVyQ2FzZSgpKSl9OwpHMT1mdW5jdGlvbigpe3ZhciBuPWRvY3VtZW50O2lmKCJ2aXNpYmlsaXR5U3RhdGUiaW4gbilyZXR1cm4gbi52aXNpYmlsaXR5U3RhdGU7dmFyIFc9cTArIlZpc2liaWxpdHlTdGF0ZSI7aWYoVyBpbiBuKXJldHVybiBuW1ddfTsKdE89ZnVuY3Rpb24obixXKXt2YXIgRDtnLm9NKG4sYj0+e0Q9V1tiXTtyZXR1cm4hIUR9KTsKcmV0dXJuIER9OwokUj1mdW5jdGlvbihuKXtpZihuLnJlcXVlc3RGdWxsc2NyZWVuKW49bi5yZXF1ZXN0RnVsbHNjcmVlbih2b2lkIDApO2Vsc2UgaWYobi53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiluPW4ud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKG4ubW96UmVxdWVzdEZ1bGxTY3JlZW4pbj1uLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7ZWxzZSBpZihuLm1zUmVxdWVzdEZ1bGxzY3JlZW4pbj1uLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKG4ud2Via2l0RW50ZXJGdWxsc2NyZWVuKW49bi53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKTtlbHNlIHJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiRnVsbHNjcmVlbiBBUEkgdW5hdmFpbGFibGUiKSk7cmV0dXJuIG4gaW5zdGFuY2VvZiBQcm9taXNlP246UHJvbWlzZS5yZXNvbHZlKCl9OwpOMD1mdW5jdGlvbihuKXt2YXIgVztnLnJKKCk/c1AoKT09biYmKFc9ZG9jdW1lbnQpOlc9bjtyZXR1cm4gVyYmKG49dE8oWyJleGl0RnVsbHNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwibW96Q2FuY2VsRnVsbFNjcmVlbiIsIm1zRXhpdEZ1bGxzY3JlZW4iXSxXKSk/KFc9bi5jYWxsKFcpLFcgaW5zdGFuY2VvZiBQcm9taXNlP1c6UHJvbWlzZS5yZXNvbHZlKCkpOlByb21pc2UucmVzb2x2ZSgpfTsKdlUxPWZ1bmN0aW9uKG4pe3JldHVybiBnLmxfKFsiZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwiTVNGdWxsc2NyZWVuQ2hhbmdlIl0sVz0+YG9uJHtXLnRvTG93ZXJDYXNlKCl9YGluIG4pfTsKZy5ySj1mdW5jdGlvbigpe3JldHVybiEhdE8oWyJmdWxsc2NyZWVuRW5hYmxlZCIsIndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkIiwibW96RnVsbFNjcmVlbkVuYWJsZWQiLCJtc0Z1bGxzY3JlZW5FbmFibGVkIl0sZG9jdW1lbnQpfTsKc1A9ZnVuY3Rpb24obj0hMSl7dmFyIFc9dE8oWyJmdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJtc0Z1bGxzY3JlZW5FbGVtZW50Il0sZG9jdW1lbnQpO2lmKG4pZm9yKDtXJiZXLnNoYWRvd1Jvb3Q7KVc9Vy5zaGFkb3dSb290LmZ1bGxzY3JlZW5FbGVtZW50O3JldHVybiBXP1c6bnVsbH07CnB5PWZ1bmN0aW9uKG4pe2lmKGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7bGV0IFc9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ArZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtuLk49bi5jbGllbnRYKyhkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpO24uSj1uLmNsaWVudFkrV319OwprOWk9ZnVuY3Rpb24obixXLEQsYj17fSl7bi5hZGRFdmVudExpc3RlbmVyJiYoVyE9Im1vdXNlZW50ZXIifHwib25tb3VzZWVudGVyImluIGRvY3VtZW50P1chPSJtb3VzZWxlYXZlInx8Im9ubW91c2VlbnRlciJpbiBkb2N1bWVudD9XPT0ibW91c2V3aGVlbCImJiJNb3pCb3hTaXppbmciaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoVz0iTW96TW91c2VQaXhlbFNjcm9sbCIpOlc9Im1vdXNlb3V0IjpXPSJtb3VzZW92ZXIiKTtyZXR1cm4gZy5YTChnLllSLHY9Pnt2YXIgaz10eXBlb2Ygdls0XT09PSJib29sZWFuIiYmdls0XT09ISFiLGg9Zy5mdCh2WzRdKSYmZy5mdChiKSYmZy5ybSh2WzRdLGIpO3JldHVybiEhdi5sZW5ndGgmJnZbMF09PW4mJnZbMV09PVcmJnZbMl09PUQmJihrfHxoKX0pfTsKZy5JOT1mdW5jdGlvbihuLFcsRCxiPXt9KXtpZighbnx8IW4uYWRkRXZlbnRMaXN0ZW5lciYmIW4uYXR0YWNoRXZlbnQpcmV0dXJuIiI7dmFyIHY9azlpKG4sVyxELGIpO2lmKHYpcmV0dXJuIHY7dj0rK0hCLmNvdW50KyIiO3ZhciBrPSEoVyE9Im1vdXNlZW50ZXIiJiZXIT0ibW91c2VsZWF2ZSJ8fCFuLmFkZEV2ZW50TGlzdGVuZXJ8fCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQpO3ZhciBoPWs/eD0+e3g9bmV3IGZ5KHgpO2lmKCFnLlJoKHgucmVsYXRlZFRhcmdldCxMPT5MPT1uLCEwKSlyZXR1cm4geC5jdXJyZW50VGFyZ2V0PW4seC50eXBlPVcsRC5jYWxsKG4seCl9Ong9Pnt4PW5ldyBmeSh4KTsKeC5jdXJyZW50VGFyZ2V0PW47cmV0dXJuIEQuY2FsbChuLHgpfTsKaD1QVihoKTtuLmFkZEV2ZW50TGlzdGVuZXI/KFc9PSJtb3VzZWVudGVyIiYmaz9XPSJtb3VzZW92ZXIiOlc9PSJtb3VzZWxlYXZlIiYmaz9XPSJtb3VzZW91dCI6Vz09Im1vdXNld2hlZWwiJiYiTW96Qm94U2l6aW5nImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmKFc9Ik1vek1vdXNlUGl4ZWxTY3JvbGwiKSxKTygpfHx0eXBlb2YgYj09PSJib29sZWFuIj9uLmFkZEV2ZW50TGlzdGVuZXIoVyxoLGIpOm4uYWRkRXZlbnRMaXN0ZW5lcihXLGgsISFiLmNhcHR1cmUpKTpuLmF0dGFjaEV2ZW50KGBvbiR7V31gLGgpO2cuWVJbdl09W24sVyxELGgsYl07cmV0dXJuIHZ9OwpnLlNfPWZ1bmN0aW9uKG4pe24mJih0eXBlb2Ygbj09InN0cmluZyImJihuPVtuXSksZy55MihuLFc9PntpZihXIGluIGcuWVIpe3ZhciBEPWcuWVJbV107bGV0IGI9RFswXSx2PURbMV0saz1EWzNdO0Q9RFs0XTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Sk8oKXx8dHlwZW9mIEQ9PT0iYm9vbGVhbiI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKHYsayxEKTpiLnJlbW92ZUV2ZW50TGlzdGVuZXIodixrLCEhRC5jYXB0dXJlKTpiLmRldGFjaEV2ZW50JiZiLmRldGFjaEV2ZW50KGBvbiR7dn1gLGspO2RlbGV0ZSBnLllSW1ddfX0pKX07CkFPPWZ1bmN0aW9uKG4pe249bnx8d2luZG93LmV2ZW50O3ZhciBXO24uY29tcG9zZWRQYXRoJiZ0eXBlb2Ygbi5jb21wb3NlZFBhdGg9PT0iZnVuY3Rpb24iP1c9bi5jb21wb3NlZFBhdGgoKTpXPW4ucGF0aDtXJiZXLmxlbmd0aD9uPVdbMF06KG49bnx8d2luZG93LmV2ZW50LG49bi50YXJnZXR8fG4uc3JjRWxlbWVudCxuLm5vZGVUeXBlPT0zJiYobj1uLnBhcmVudE5vZGUpKTtyZXR1cm4gbn07Cm1ZPWZ1bmN0aW9uKG4pe3RoaXMuSz1uO3RoaXMuTj1udWxsO3RoaXMuWD0wO3RoaXMuVj1udWxsO3RoaXMuaj0wO3RoaXMuSj1bXTtmb3Iobj0wO248NDtuKyspdGhpcy5KLnB1c2goMCk7dGhpcy5XPTA7dGhpcy5jSj1nLkk5KHdpbmRvdywibW91c2Vtb3ZlIiwoMCxnLkt0KSh0aGlzLkQsdGhpcykpO3RoaXMuWT1XMCgoMCxnLkt0KSh0aGlzLk8sdGhpcyksMjUpfTsKS3k9ZnVuY3Rpb24obixXLEQsYil7Zm9yKGxldCB2PTA7djxELmxlbmd0aDt2Kyspbi5OTihXLERbdl0sYil9OwpnLlBCPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1EJiZEPjA/RDowO0Q9Yj9EYXRlLm5vdygpK2IqMUUzOjA7aWYoKGI9Yj9PUC5CcCgpOk9QLnFiKCkpJiZ3aW5kb3cuSlNPTil7dHlwZW9mIFchPT0ic3RyaW5nIiYmKFc9SlNPTi5zdHJpbmdpZnkoVyx2b2lkIDApKTt0cnl7Yi5zZXQobixXLEQpfWNhdGNoKHYpe2IucmVtb3ZlKG4pfX19OwpnLlpJPWZ1bmN0aW9uKG4pe3ZhciBXPU9QLnFiKCksRD1PUC5CcCgpO2lmKCFXJiYhRHx8IXdpbmRvdy5KU09OKXJldHVybiBudWxsO3RyeXt2YXIgYj1XLmdldChuKX1jYXRjaCh2KXt9aWYodHlwZW9mIGIhPT0ic3RyaW5nIil0cnl7Yj1ELmdldChuKX1jYXRjaCh2KXt9aWYodHlwZW9mIGIhPT0ic3RyaW5nIilyZXR1cm4gbnVsbDt0cnl7Yj1KU09OLnBhcnNlKGIsdm9pZCAwKX1jYXRjaCh2KXt9cmV0dXJuIGJ9OwpVUD1mdW5jdGlvbigpe3ZhciBuPU9QLkJwKCk7aWYobiYmKG49bi5NRCgieXQtcGxheWVyLXF1YWxpdHkiKSkpcmV0dXJuIG4uY3JlYXRpb259Owp5eD1mdW5jdGlvbigpe2lmKCFnLnFpLm1hdGNoTWVkaWEpcmV0dXJuIldFQl9ESVNQTEFZX01PREVfVU5LTk9XTiI7dHJ5e3JldHVybiBnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IG1pbmltYWwtdWkpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9NSU5JTUFMX1VJIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGZ1bGxzY3JlZW4pIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9GVUxMU0NSRUVOIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGJyb3dzZXIpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn1jYXRjaChuKXtyZXR1cm4iV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn19OwppTz1mdW5jdGlvbigpe0VQLmluc3RhbmNlfHwoRVAuaW5zdGFuY2U9bmV3IEVQKTtyZXR1cm4gRVAuaW5zdGFuY2V9OwpocWg9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIkRFU0tUT1AiOnJldHVybiAxO2Nhc2UgIlVOS05PV05fUExBVEZPUk0iOnJldHVybiAwO2Nhc2UgIlRWIjpyZXR1cm4gMjtjYXNlICJHQU1FX0NPTlNPTEUiOnJldHVybiAzO2Nhc2UgIk1PQklMRSI6cmV0dXJuIDQ7Y2FzZSAiVEFCTEVUIjpyZXR1cm4gNX19OwpnLm85PWZ1bmN0aW9uKCl7dU98fCh1Tz1uZXcgeDNiKTtyZXR1cm4gdU99OwpkSj1mdW5jdGlvbihuKXtpZigvXmYoWzEtOV1bMC05XSopJC8udGVzdChuKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWRSZWdleE1hdGNoOiAke259YCk7fTsKejE9ZnVuY3Rpb24obil7aWYoIS9eXHcrJC8udGVzdChuKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWRSZWdleE1pc21hdGNoOiAke259YCk7fTsKVDE9ZnVuY3Rpb24obil7bj1sT1tuXSE9PXZvaWQgMD9sT1tuXS50b1N0cmluZygpOm51bGw7cmV0dXJuIG4hPW51bGwmJi9eW0EtRmEtZjAtOV0rJC8udGVzdChuKT9wYXJzZUludChuLDE2KTpudWxsfTsKal89ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLm5hdmlnYXRvcjtyZXR1cm4gbj9uLmNvbm5lY3Rpb246dm9pZCAwfTsKQkI9ZnVuY3Rpb24oKXt2YXIgbj1qXygpO2lmKG4pe3ZhciBXPUN5W24udHlwZXx8InVua25vd24iXXx8IkNPTk5fVU5LTk9XTiI7bj1DeVtuLmVmZmVjdGl2ZVR5cGV8fCJ1bmtub3duIl18fCJDT05OX1VOS05PV04iO1c9PT0iQ09OTl9DRUxMVUxBUl9VTktOT1dOIiYmbiE9PSJDT05OX1VOS05PV04iJiYoVz1uKTtpZihXIT09IkNPTk5fVU5LTk9XTiIpcmV0dXJuIFc7aWYobiE9PSJDT05OX1VOS05PV04iKXJldHVybiBufX07CndKPWZ1bmN0aW9uKCl7dmFyIG49al8oKTtpZihuPy5lZmZlY3RpdmVUeXBlKXJldHVybiBGay5oYXNPd25Qcm9wZXJ0eShuLmVmZmVjdGl2ZVR5cGUpP0ZrW24uZWZmZWN0aXZlVHlwZV06IkVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfVU5LTk9XTiJ9OwpSOT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTTAoKSwhMH1jYXRjaChuKXtyZXR1cm4hMX19OwpNMD1mdW5jdGlvbigpe2lmKGcuQXIoIkRBVEFTWU5DX0lEIikhPT12b2lkIDApcmV0dXJuIGcuQXIoIkRBVEFTWU5DX0lEIik7dGhyb3cgbmV3IGcuUXgoIkRhdGFzeW5jIElEIG5vdCBzZXQiLCJ1bmtub3duIik7fTsKZy5jQj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIGcuVngoMCxXLDAsRCl9OwphOT1mdW5jdGlvbihuKXt2YXIgVz1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSW1tZWRpYXRlSm9iIik7Vz9XKG4pOm4oKX07CmcuRHk9ZnVuY3Rpb24oKXtXTi5pbnN0YW5jZXx8KFdOLmluc3RhbmNlPW5ldyBXTik7cmV0dXJuIFdOLmluc3RhbmNlfTsKZy5WeD1mdW5jdGlvbihuLFcsRCxiKXtiIT09dm9pZCAwJiZOdW1iZXIuaXNOYU4oTnVtYmVyKGIpKSYmKGI9dm9pZCAwKTtyZXR1cm4obj1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSm9iIikpP24oVyxELGIpOmI9PT12b2lkIDA/KFcoKSxOYU4pOmcubiQoVyxifHwwKX07CmJRPWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zZXRQcmlvcml0eVRocmVzaG9sZCIpO1cmJlcobil9OwprdT1mdW5jdGlvbigpe3JldHVybiB2TigpPy5nZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsITApfTsKTEY9ZnVuY3Rpb24obil7aGN8fCh4dS5wdXNoKHt0eXBlOiJFUlJPUiIscGF5bG9hZDpufSkseHUubGVuZ3RoPjEwJiZ4dS5zaGlmdCgpKX07CmVGPWZ1bmN0aW9uKG4sVyl7aGN8fCh4dS5wdXNoKHt0eXBlOiJFVkVOVCIsZXZlbnRUeXBlOm4scGF5bG9hZDpXfSkseHUubGVuZ3RoPjEwJiZ4dS5zaGlmdCgpKX07CmcwPWZ1bmN0aW9uKG4pe2lmKG4uaW5kZXhPZigiOiIpPj0wKXRocm93IEVycm9yKCJEYXRhYmFzZSBuYW1lIGNhbm5vdCBjb250YWluICc6JyIpO307ClhxPWZ1bmN0aW9uKG4pe3JldHVybiBuLnN1YnN0cigwLG4uaW5kZXhPZigiOiIpKXx8bn07CiR1PWZ1bmN0aW9uKG4sVyxELGIpe1c9WHEoVyk7dmFyIHY9biBpbnN0YW5jZW9mIEVycm9yP246RXJyb3IoYFVuZXhwZWN0ZWQgZXJyb3I6ICR7bn1gKTtpZih2IGluc3RhbmNlb2YgcUwpcmV0dXJuIHY7bj17b2JqZWN0U3RvcmVOYW1lczpELGRiTmFtZTpXLGRiVmVyc2lvbjpifTtpZih2Lm5hbWU9PT0iUXVvdGFFeGNlZWRlZEVycm9yIilyZXR1cm4gbmV3IHFMKCJRVU9UQV9FWENFRURFRCIsbik7aWYoZy5HbiYmdi5uYW1lPT09IlVua25vd25FcnJvciIpcmV0dXJuIG5ldyBxTCgiUVVPVEFfTUFZQkVfRVhDRUVERUQiLG4pO2lmKHYgaW5zdGFuY2VvZiB0YylyZXR1cm4gbmV3IHFMKCJNSVNTSU5HX0lOREVYIix7Li4ubixvYmplY3RTdG9yZTp2Lm9iamVjdFN0b3JlLGluZGV4OnYuaW5kZXh9KTtpZih2Lm5hbWU9PT0iSW52YWxpZFN0YXRlRXJyb3IiJiZMMGkuc29tZShrPT52Lm1lc3NhZ2UuaW5jbHVkZXMoaykpKXJldHVybiBuZXcgcUwoIkVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCIiwKbik7CmlmKHYubmFtZT09PSJBYm9ydEVycm9yIilyZXR1cm4gbmV3IHFMKCJVTktOT1dOX0FCT1JUIixuLHYubWVzc2FnZSk7di5hcmdzPVt7Li4ubixuYW1lOiJJZGJFcnJvciIsYTc6di5uYW1lfV07di5sZXZlbD0iV0FSTklORyI7cmV0dXJuIHZ9OwpnLnIwPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1rdSgpO3JldHVybiBuZXcgcUwoIklEQl9OT1RfU1VQUE9SVEVEIix7Y29udGV4dDp7Y2FsbGVyOm4scHVibGljTmFtZTpXLHZlcnNpb246RCxoYXNTdWNjZWVkZWRPbmNlOmI/Lmhhc1N1Y2NlZWRlZE9uY2V9fSl9OwplcTE9ZnVuY3Rpb24obil7aWYoIW4pdGhyb3cgRXJyb3IoKTt0aHJvdyBuO307CmdVcj1mdW5jdGlvbihuKXtyZXR1cm4gbn07CnBGPWZ1bmN0aW9uKG4sVyxELGIsdil7dHJ5e2lmKG4uc3RhdGUuc3RhdHVzIT09IkZVTEZJTExFRCIpdGhyb3cgRXJyb3IoImNhbGxpbmcgaGFuZGxlUmVzb2x2ZSBiZWZvcmUgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLiIpO2xldCBrPUQobi5zdGF0ZS52YWx1ZSk7ayBpbnN0YW5jZW9mIHNSP05MKG4sVyxrLGIsdik6YihrKX1jYXRjaChrKXt2KGspfX07Cll1PWZ1bmN0aW9uKG4sVyxELGIsdil7dHJ5e2lmKG4uc3RhdGUuc3RhdHVzIT09IlJFSkVDVEVEIil0aHJvdyBFcnJvcigiY2FsbGluZyBoYW5kbGVSZWplY3QgYmVmb3JlIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLiIpO2xldCBrPUQobi5zdGF0ZS5yZWFzb24pO2sgaW5zdGFuY2VvZiBzUj9OTChuLFcsayxiLHYpOmIoayl9Y2F0Y2goayl7dihrKX19OwpOTD1mdW5jdGlvbihuLFcsRCxiLHYpe1c9PT1EP3YobmV3IFR5cGVFcnJvcigiQ2lyY3VsYXIgcHJvbWlzZSBjaGFpbiBkZXRlY3RlZC4iKSk6RC50aGVuKGs9PntrIGluc3RhbmNlb2Ygc1I/TkwobixXLGssYix2KTpiKGspfSxrPT57dihrKX0pfTsKSE49ZnVuY3Rpb24obixXLEQpe3ZhciBiPSgpPT57dHJ5e24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsdiksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsayl9Y2F0Y2h7fX0sdj0oKT0+e1cobi5yZXN1bHQpOwpiKCl9LGs9KCk9PntEKG4uZXJyb3IpOwpiKCl9OwpuLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLHYpO24uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGspfTsKWDlVPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZSgoVyxEKT0+e0hOKG4sVyxEKX0pfTsKSmM9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9PntITihuLFcsRCl9KSl9OwpJZz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgc1IobmV3IGZGKChELGIpPT57dmFyIHY9KCk9Pnt2YXIgaz1uP1cobik6bnVsbDtrP2sudGhlbihoPT57bj1oO3YoKX0sYik6RCgpfTsKdigpfSkpfTsKU0Y9ZnVuY3Rpb24obil7cmV0dXJuIEpjKG4pLnRoZW4oVz0+Vz9uZXcgcV8yKG4sVyk6bnVsbCl9OwpBYz1mdW5jdGlvbigpe3JldHVybiBnLmwoImlkYl9pbW1lZGlhdGVfY29tbWl0Iil9OwpPUj1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXt2YXIgdj17bW9kZToicmVhZG9ubHkiLEdROiExLHRhZzoiSURCX1RSQU5TQUNUSU9OX1RBR19VTktOT1dOIn07dHlwZW9mIEQ9PT0ic3RyaW5nIj92Lm1vZGU9RDpPYmplY3QuYXNzaWduKHYsRCk7bi50cmFuc2FjdGlvbkNvdW50Kys7RD12LkdRPzM6MTtmb3IodmFyIGs9MCxoOyFoOyl7aysrO2xldCBHPU1hdGgucm91bmQoKDAsZy5SKSgpKTt0cnl7dmFyIHg9bi5OLnRyYW5zYWN0aW9uKFcsdi5tb2RlKSxMPWIsZT0hIXYuY29tbWl0O2xldCByPW5ldyBtWCh4KSxOPWF3YWl0IEc5dyhyLEwsZSksSD1NYXRoLnJvdW5kKCgwLGcuUikoKSk7S0YobixHLEgsayx2b2lkIDAsVy5qb2luKCksdik7cmV0dXJuIE59Y2F0Y2gocil7TD1NYXRoLnJvdW5kKCgwLGcuUikoKSk7bGV0IE49JHUocixuLk4ubmFtZSxXLmpvaW4oKSxuLk4udmVyc2lvbik7aWYoTiBpbnN0YW5jZW9mIHFMJiYhTi5OfHxrPj1EKUtGKG4sRyxMLGssTixXLmpvaW4oKSwKdiksaD1OfX1yZXR1cm4gUHJvbWlzZS5yZWplY3QoaCl9OwpaeT1mdW5jdGlvbihuLFcsRCl7bj1uLk4uY3JlYXRlT2JqZWN0U3RvcmUoVyxEKTtyZXR1cm4gbmV3IFBOKG4pfTsKVVI9ZnVuY3Rpb24obixXKXtuLk4ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhXKSYmbi5OLmRlbGV0ZU9iamVjdFN0b3JlKFcpfTsKS0Y9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7Vz1ELVc7dj8odiBpbnN0YW5jZW9mIHFMJiYodi50eXBlPT09IlFVT1RBX0VYQ0VFREVEInx8di50eXBlPT09IlFVT1RBX01BWUJFX0VYQ0VFREVEIikmJmVGKCJRVU9UQV9FWENFRURFRCIse2RiTmFtZTpYcShuLk4ubmFtZSksb2JqZWN0U3RvcmVOYW1lczprLHRyYW5zYWN0aW9uQ291bnQ6bi50cmFuc2FjdGlvbkNvdW50LHRyYW5zYWN0aW9uTW9kZTpoLm1vZGV9KSx2IGluc3RhbmNlb2YgcUwmJnYudHlwZT09PSJVTktOT1dOX0FCT1JUIiYmKEQtPW4uVyxEPDAmJkQ+PTIxNDc0ODM2NDgmJihEPTApLGVGKCJUUkFOU0FDVElPTl9VTkVYUEVDVEVETFlfQUJPUlRFRCIse29iamVjdFN0b3JlTmFtZXM6ayx0cmFuc2FjdGlvbkR1cmF0aW9uOlcsdHJhbnNhY3Rpb25Db3VudDpuLnRyYW5zYWN0aW9uQ291bnQsZGJEdXJhdGlvbjpEfSksbi5KPSEwKSx5YyhuLCExLGIsayxXLGgudGFnKSxMRih2KSk6eWMobiwhMCxiLGssVyxoLnRhZyl9Owp5Yz1mdW5jdGlvbihuLFcsRCxiLHYsaz0iSURCX1RSQU5TQUNUSU9OX1RBR19VTktOT1dOIil7ZUYoIlRSQU5TQUNUSU9OX0VOREVEIix7b2JqZWN0U3RvcmVOYW1lczpiLGNvbm5lY3Rpb25IYXNVbmtub3duQWJvcnRlZFRyYW5zYWN0aW9uOm4uSixkdXJhdGlvbjp2LGlzU3VjY2Vzc2Z1bDpXLHRyeUNvdW50OkQsdGFnOmt9KX07CkVSPWZ1bmN0aW9uKG4sVyxEKXtuLk4uY3JlYXRlSW5kZXgoVyxELHt1bmlxdWU6ITF9KX07CnVRPWZ1bmN0aW9uKG4sVyxEKXtuPW4uTi5vcGVuQ3Vyc29yKFcucXVlcnksVy5kaXJlY3Rpb24pO3JldHVybiBpUShuKS50aGVuKGI9PklnKGIsRCkpfTsKdFhVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIHVRKG4se3F1ZXJ5Old9LEQ9PkQuZGVsZXRlKCkudGhlbigoKT0+b2coRCkpKS50aGVuKCgpPT57fSl9OwokM3g9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO3JldHVybiB1UShuLHtxdWVyeTpXfSx2PT57aWYoIShEIT09dm9pZCAwJiZiLmxlbmd0aD49RCkpcmV0dXJuIGIucHVzaCh2LmdldFZhbHVlKCkpLG9nKHYpfSkudGhlbigoKT0+Yil9OwpzMHI9ZnVuY3Rpb24obil7dmFyIFc9W107cmV0dXJuIHJfaihuLEQ9PntXLnB1c2goRC5jdXJzb3IucHJpbWFyeUtleSk7RC5jdXJzb3IuY29udGludWUodm9pZCAwKTtyZXR1cm4gU0YoRC5yZXF1ZXN0KX0pLnRoZW4oKCk9PlcpfTsKZDA9ZnVuY3Rpb24obil7cmV0dXJuImdldEFsbEtleXMiaW4gSURCT2JqZWN0U3RvcmUucHJvdG90eXBlP0pjKG4uTi5nZXRBbGxLZXlzKHZvaWQgMCx2b2lkIDApKTpzMHIobil9OwpyX2o9ZnVuY3Rpb24obixXKXt2YXIgRD17cXVlcnk6dm9pZCAwfSxiPUQucXVlcnk7RD1ELmRpcmVjdGlvbjtuPSJvcGVuS2V5Q3Vyc29yImluIElEQk9iamVjdFN0b3JlLnByb3RvdHlwZT9uLk4ub3BlbktleUN1cnNvcihiLEQpOm4uTi5vcGVuQ3Vyc29yKGIsRCk7cmV0dXJuIFNGKG4pLnRoZW4odj0+SWcodixXKSl9OwpHOXc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5ldyBQcm9taXNlKCh2LGspPT57dHJ5e2xldCBoPVcobik7RCYmbi5jb21taXQoKTtoLnRoZW4oeD0+e3YoeCl9KS5jYXRjaChrKX1jYXRjaChoKXtrKGgpLG4uYWJvcnQoKX19KTsKcmV0dXJuIFByb21pc2UuYWxsKFtiLG4uZG9uZV0pLnRoZW4oKFt2XSk9PnYpfTsKem49ZnVuY3Rpb24obixXLEQpe3ZhciB7cXVlcnk6Yj1udWxsLGRpcmVjdGlvbjp2PSJuZXh0In09VztuPW4uTi5vcGVuQ3Vyc29yKGIsdik7cmV0dXJuIGlRKG4pLnRoZW4oaz0+SWcoayxEKSl9OwpOWmk9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO3JldHVybiB6bihuLHtxdWVyeTpXfSx2PT57aWYoIShEIT09dm9pZCAwJiZiLmxlbmd0aD49RCkpcmV0dXJuIGIucHVzaCh2LmdldFZhbHVlKCkpLG9nKHYpfSkudGhlbigoKT0+Yil9OwppUT1mdW5jdGlvbihuKXtyZXR1cm4gSmMobikudGhlbihXPT5XP25ldyBwOXgobixXKTpudWxsKX07Cm9nPWZ1bmN0aW9uKG4pe24uY3Vyc29yLmNvbnRpbnVlKHZvaWQgMCk7cmV0dXJuIGlRKG4ucmVxdWVzdCl9OwpINXg9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgUHJvbWlzZSgoYix2KT0+e3ZhciBrPVchPT12b2lkIDA/c2VsZi5pbmRleGVkREIub3BlbihuLFcpOnNlbGYuaW5kZXhlZERCLm9wZW4obik7dmFyIGg9RC5ibG9ja2VkLHg9RC5ibG9ja2luZyxMPUQuQnosZT1ELnVwZ3JhZGUsRz1ELmNsb3NlZCxyLE49KCk9PntyfHwocj1uZXcgWV9yKGsucmVzdWx0LHtjbG9zZWQ6R30pKTtyZXR1cm4gcn07CmsuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsSD0+e3RyeXtpZihILm5ld1ZlcnNpb249PT1udWxsKXRocm93IEVycm9yKCJJbnZhcmlhbnQ6IG5ld1ZlcnNpb24gb24gSURiVmVyc2lvbkNoYW5nZUV2ZW50IGlzIG51bGwiKTtpZihrLnRyYW5zYWN0aW9uPT09bnVsbCl0aHJvdyBFcnJvcigiSW52YXJpYW50OiB0cmFuc2FjdGlvbiBvbiBJRGJPcGVuRGJSZXF1ZXN0IGlzIG51bGwiKTtILmRhdGFMb3NzJiZILmRhdGFMb3NzIT09Im5vbmUiJiZlRigiSURCX0RBVEFfQ09SUlVQVEVEIix7cmVhc29uOkguZGF0YUxvc3NNZXNzYWdlfHwidW5rbm93biByZWFzb24iLGRiTmFtZTpYcShuKX0pO2xldCBBPU4oKSx5PW5ldyBtWChrLnRyYW5zYWN0aW9uKTtlJiZlKEEsVD0+SC5vbGRWZXJzaW9uPFQmJkgubmV3VmVyc2lvbj49VCx5KTsKeS5kb25lLmNhdGNoKFQ9Pnt2KFQpfSl9Y2F0Y2goQSl7dihBKX19KTsKay5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwoKT0+e3ZhciBIPWsucmVzdWx0O3gmJkguYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsKCk9Pnt4KE4oKSl9KTsKSC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9PntlRigiSURCX1VORVhQRUNURURMWV9DTE9TRUQiLHtkYk5hbWU6WHEobiksZGJWZXJzaW9uOkgudmVyc2lvbn0pO0wmJkwoKX0pOwpiKE4oKSl9KTsKay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt2KGsuZXJyb3IpfSk7CmgmJmsuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsKCk9PntoKCl9KX0pfTsKbFE9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBINXgobixXLEQpfTsKVG49YXN5bmMgZnVuY3Rpb24obixXPXt9KXt0cnl7bGV0IEQ9c2VsZi5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UobiksYj1XLmJsb2NrZWQ7YiYmRC5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIiwoKT0+e2IoKX0pOwphd2FpdCBYOVUoRCl9Y2F0Y2goRCl7dGhyb3cgJHUoRCxuLCIiLC0xKTt9fTsKakY9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IHFMKCJJTkNPTVBBVElCTEVfREJfVkVSU0lPTiIse2RiTmFtZTpuLm5hbWUsb2xkVmVyc2lvbjpuLm9wdGlvbnMudmVyc2lvbixuZXdWZXJzaW9uOld9KX07CkNGPWZ1bmN0aW9uKG4sVyl7aWYoIVcpdGhyb3cgZy5yMCgib3BlbldpdGhUb2tlbiIsWHEobi5uYW1lKSk7cmV0dXJuIG4ub3BlbigpfTsKRnE9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gT1IoYXdhaXQgQ0YoQk4sVyksWyJkYXRhYmFzZXMiXSx7R1E6ITAsbW9kZToicmVhZHdyaXRlIn0sRD0+e3ZhciBiPUQub2JqZWN0U3RvcmUoImRhdGFiYXNlcyIpO3JldHVybiBiLmdldChuLmFjdHVhbE5hbWUpLnRoZW4odj0+e2lmKHY/bi5hY3R1YWxOYW1lIT09di5hY3R1YWxOYW1lfHxuLnB1YmxpY05hbWUhPT12LnB1YmxpY05hbWV8fG4udXNlcklkZW50aWZpZXIhPT12LnVzZXJJZGVudGlmaWVyOjEpcmV0dXJuIGIucHV0KG4pLnRoZW4oKCk9Pnt9KX0pfSl9Owp3MD1hc3luYyBmdW5jdGlvbihuLFcpe3JldHVybiBuPyhhd2FpdCBDRihCTixXKSkuZGVsZXRlKCJkYXRhYmFzZXMiLG4pOnZvaWQgMH07CmZCVT1hc3luYyBmdW5jdGlvbihuLFcpe3ZhciBEPVtdO1c9YXdhaXQgQ0YoQk4sVyk7YXdhaXQgT1IoVyxbImRhdGFiYXNlcyJdLHtHUTohMCxtb2RlOiJyZWFkb25seSJ9LGI9PntELmxlbmd0aD0wO3JldHVybiB1UShiLm9iamVjdFN0b3JlKCJkYXRhYmFzZXMiKSx7fSx2PT57bih2LmdldFZhbHVlKCkpJiZELnB1c2godi5nZXRWYWx1ZSgpKTtyZXR1cm4gb2codil9KX0pOwpyZXR1cm4gRH07CkpfMj1mdW5jdGlvbihuLFcpe3JldHVybiBmQlUoRD0+RC5wdWJsaWNOYW1lPT09biYmRC51c2VySWRlbnRpZmllciE9PXZvaWQgMCxXKX07CklCaT1hc3luYyBmdW5jdGlvbigpe2lmKGt1KCk/Lmhhc1N1Y2NlZWRlZE9uY2UpcmV0dXJuITA7dmFyIG47aWYoIShuPWcuTUwmJkMkKCkmJiFCMCgpfHxnLlJnKSl7dHJ5e249c2VsZjt2YXIgVz0hIShuLmluZGV4ZWREQiYmbi5JREJJbmRleCYmbi5JREJLZXlSYW5nZSYmbi5JREJPYmplY3RTdG9yZSl9Y2F0Y2goRCl7Vz0hMX1uPSFXfWlmKG58fCEoIklEQlRyYW5zYWN0aW9uImluIHNlbGYmJiJvYmplY3RTdG9yZU5hbWVzImluIElEQlRyYW5zYWN0aW9uLnByb3RvdHlwZSkpcmV0dXJuITE7dHJ5e3JldHVybiBhd2FpdCBGcSh7YWN0dWFsTmFtZToieXQtaWRiLXRlc3QtZG8tbm90LXVzZSIscHVibGljTmFtZToieXQtaWRiLXRlc3QtZG8tbm90LXVzZSIsdXNlcklkZW50aWZpZXI6dm9pZCAwfSxRYyksYXdhaXQgdzAoInl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLFFjKSwhMH1jYXRjaChEKXtyZXR1cm4hMX19OwpjTj1mdW5jdGlvbigpe2lmKFZjIT09dm9pZCAwKXJldHVybiBWYztoYz0hMDtyZXR1cm4gVmM9SUJpKCkudGhlbihuPT57aGM9ITE7aWYodk4oKT8uSigpKXt2YXIgVz17aGFzU3VjY2VlZGVkT25jZTprdSgpPy5oYXNTdWNjZWVkZWRPbmNlfHxufTt2TigpPy5zZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsVywyNTkyRTMsITApfXJldHVybiBufSl9OwphZz1mdW5jdGlvbigpe3JldHVybiBnLnJyKCJ5dGdsb2JhbC5pZGJUb2tlbl8iKXx8dm9pZCAwfTsKZy5uUD1mdW5jdGlvbigpe3ZhciBuPWFnKCk7cmV0dXJuIG4/UHJvbWlzZS5yZXNvbHZlKG4pOmNOKCkudGhlbihXPT57Vz8oZy5HYigieXRnbG9iYWwuaWRiVG9rZW5fIixRYyksVz1RYyk6Vz12b2lkIDA7cmV0dXJuIFd9KX07Cld6PWZ1bmN0aW9uKG4pe2lmKCFSOSgpKXRocm93IG49bmV3IHFMKCJBVVRIX0lOVkFMSUQiLHtkYk5hbWU6bn0pLExGKG4pLG47dmFyIFc9TTAoKTtyZXR1cm57YWN0dWFsTmFtZTpgJHtufToke1d9YCxwdWJsaWNOYW1lOm4sdXNlcklkZW50aWZpZXI6V319OwpEbT1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1FcnJvcigpLnN0YWNrPz8iIixrPWF3YWl0IGcublAoKTtpZighayl0aHJvdyBXPWcucjAoIm9wZW5EYkltcGwiLG4sVyksZy5sKCJ5dGlkYl9hc3luY19zdGFja19raWxsc3dpdGNoIil8fChXLnN0YWNrPWAke1cuc3RhY2t9XG4ke3Yuc3Vic3RyaW5nKHYuaW5kZXhPZigiXG4iKSsxKX1gKSxMRihXKSxXO2cwKG4pO3Y9RD97YWN0dWFsTmFtZTpuLHB1YmxpY05hbWU6bix1c2VySWRlbnRpZmllcjp2b2lkIDB9Old6KG4pO3RyeXtyZXR1cm4gYXdhaXQgRnEodixrKSxhd2FpdCBsUSh2LmFjdHVhbE5hbWUsVyxiKX1jYXRjaChoKXt0cnl7YXdhaXQgdzAodi5hY3R1YWxOYW1lLGspfWNhdGNoe310aHJvdyBoO319OwpTX1o9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBEbShuLFcsITEsRCl9OwpBX3I9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBEbShuLFcsITAsRCl9OwptM3c9YXN5bmMgZnVuY3Rpb24obixXPXt9KXt2YXIgRD1hd2FpdCBnLm5QKCk7RCYmKGcwKG4pLG49V3oobiksYXdhaXQgVG4obi5hY3R1YWxOYW1lLFcpLGF3YWl0IHcwKG4uYWN0dWFsTmFtZSxEKSl9OwpLMHI9ZnVuY3Rpb24obixXLEQpe249bi5tYXAoYXN5bmMgYj0+e2F3YWl0IFRuKGIuYWN0dWFsTmFtZSxXKTthd2FpdCB3MChiLmFjdHVhbE5hbWUsRCl9KTsKcmV0dXJuIFByb21pc2UuYWxsKG4pLnRoZW4oKCk9Pnt9KX07CmI5PWFzeW5jIGZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9YXdhaXQgZy5uUCgpO0QmJihnMChuKSxuPWF3YWl0IEpfMihuLEQpLGF3YWl0IEswcihuLFcsRCkpfTsKdno9YXN5bmMgZnVuY3Rpb24obixXPXt9KXt2YXIgRD1hd2FpdCBnLm5QKCk7RCYmKGcwKG4pLGF3YWl0IFRuKG4sVyksYXdhaXQgdzAobixEKSl9OwpQNE09ZnVuY3Rpb24obixXKXt2YXIgRDtyZXR1cm4oKT0+e0R8fChEPW5ldyBPNXQobixXKSk7cmV0dXJuIER9fTsKa089ZnVuY3Rpb24obixXKXtyZXR1cm4gUDRNKG4sVyl9OwpoNz1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoWjVDKCksbil9Owp4Tz1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXtuPXtjb25maWc6bixoYXNoRGF0YTpXLHRpbWVzdGFtcDpiIT09dm9pZCAwP2I6KDAsZy5SKSgpfTtEPWF3YWl0IGg3KEQpO2F3YWl0IEQuY2xlYXIoImhvdENvbmZpZ1N0b3JlIik7cmV0dXJuIGF3YWl0IEQucHV0KCJob3RDb25maWdTdG9yZSIsbil9OwpMUD1hc3luYyBmdW5jdGlvbihuLFcsRCxiLHYpe249e2NvbmZpZzpuLGhhc2hEYXRhOlcsY29uZmlnRGF0YTpELHRpbWVzdGFtcDp2IT09dm9pZCAwP3Y6KDAsZy5SKSgpfTtiPWF3YWl0IGg3KGIpO2F3YWl0IGIuY2xlYXIoImNvbGRDb25maWdTdG9yZSIpO3JldHVybiBhd2FpdCBiLnB1dCgiY29sZENvbmZpZ1N0b3JlIixuKX07CmU5PWFzeW5jIGZ1bmN0aW9uKG4pe249YXdhaXQgaDcobik7dmFyIFc9dm9pZCAwO2F3YWl0IE9SKG4sWyJjb2xkQ29uZmlnU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+em4oRC5vYmplY3RTdG9yZSgiY29sZENvbmZpZ1N0b3JlIikuaW5kZXgoImNvbGRUaW1lc3RhbXBJbmRleCIpLHtkaXJlY3Rpb246InByZXYifSxiPT57Vz1iLmdldFZhbHVlKCl9KSk7CnJldHVybiBXfTsKZzM9YXN5bmMgZnVuY3Rpb24obil7bj1hd2FpdCBoNyhuKTt2YXIgVz12b2lkIDA7YXdhaXQgT1IobixbImhvdENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9PnpuKEQub2JqZWN0U3RvcmUoImhvdENvbmZpZ1N0b3JlIikuaW5kZXgoImhvdFRpbWVzdGFtcEluZGV4Iikse2RpcmVjdGlvbjoicHJldiJ9LGI9PntXPWIuZ2V0VmFsdWUoKX0pKTsKcmV0dXJuIFd9OwpVM3Q9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBiOSgieXRHY2ZDb25maWciKX07CnFCPWZ1bmN0aW9uKCl7aWYoIWcuWDMuaW5zdGFuY2Upe2xldCBuPW5ldyBnLlgzO2cuWDMuaW5zdGFuY2U9bn1yZXR1cm4gZy5YMy5pbnN0YW5jZX07Cmk1aD1mdW5jdGlvbihuKXtpZighbi5KfHwhbi5OKXtpZighYWcoKSl7bGV0IFc9Zy5yMCgic2NoZWR1bGVHZXRDb25maWdzIik7WkUoVyl9bi5YfHwobi5YPXRhLkxTKGFzeW5jKCk9Pnt0cnl7YXdhaXQgeV9yKG4pfWNhdGNoe310cnl7YXdhaXQgRVVTKG4pfWNhdGNoe31uLlgmJihuLlg9MCl9LDEwMCkpfX07CnVEeD1hc3luYyBmdW5jdGlvbihuKXtpZihnLmwoInN0YXJ0X2NsaWVudF9nY2YiKXx8Zy5sKCJkZWxldGVfZ2NmX2NvbmZpZ19kYiIpKWcubCgic3RhcnRfY2xpZW50X2djZiIpJiYoYXdhaXQgZy5uUCgpJiZSOSgpJiYhZy5sKCJkZWxldGVfZ2NmX2NvbmZpZ19kYiIpPyhuLlY9ITAsaTVoKG4pKTooR28obiksdDcobikpKSxnLmwoImRlbGV0ZV9nY2ZfY29uZmlnX2RiIikmJmF3YWl0IFUzdCgpfTsKJE89ZnVuY3Rpb24oKXtyZXR1cm4gZy5ycigieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIpfTsKdmFyIG9Vaj1mdW5jdGlvbihuLFcpe3JldHVybiBlWFtJWzEwXV0odGhpcywxMCw3MTI2LG4sVyl9OwpyMz1mdW5jdGlvbihuLFcpe24uSj1XO2cuR2IoInl0LmdjZi5jb25maWcuaG90Q29uZmlnR3JvdXAiLG4uSnx8bnVsbCl9Owp0Nz1mdW5jdGlvbihuKXtyMyhuLGcuQXIoIlJBV19IT1RfQ09ORklHX0dST1VQIikpO24uVyhnLkFyKCJTRVJJQUxJWkVEX0hPVF9IQVNIX0RBVEEiKSl9Owp5X3I9YXN5bmMgZnVuY3Rpb24obil7aWYobi5KKXJldHVybiAkTygpO2lmKCFuLlYpcmV0dXJuIG49Zy5yMCgiZ2V0SG90Q29uZmlnIElEQiBub3QgaW5pdGlhbGl6ZWQiKSxaRShuKSxQcm9taXNlLnJlamVjdChuKTt2YXIgVz1hZygpLEQ9Zy5BcigiVElNRV9DUkVBVEVEX01TIik7aWYoVyl7dmFyIGI9YXdhaXQgZzMoVyk7aWYoYiYmYi50aW1lc3RhbXA+RClyZXR1cm4gcjMobixiLmNvbmZpZyksbi5XKGIuaGFzaERhdGEpLCRPKCl9ZWxzZSBiPWcucjAoImdldEhvdENvbmZpZyB0b2tlbiBlcnJvciIpLFpFKGIpO3Q3KG4pO1cmJm4uSiYmbi5ob3RIYXNoRGF0YSYmYXdhaXQgeE8obi5KLG4uaG90SGFzaERhdGEsVyxEKTtyZXR1cm4gbi5KPyRPKCk6KG49bmV3IGcuUXgoIkNvbmZpZyBub3QgYXZhaWxhYmxlIGluIHl0Q29uZmlnIiksWkUobiksUHJvbWlzZS5yZWplY3QobikpfTsKc0o9ZnVuY3Rpb24oKXtyZXR1cm4gZy5ycigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnR3JvdXAiKX07Ck5CPWZ1bmN0aW9uKG4sVyl7bi5OPVc7Zy5HYigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnR3JvdXAiLG4uTnx8bnVsbCl9OwpwUD1mdW5jdGlvbihuLFcpe24uY29uZmlnRGF0YT1XO2cuR2IoInl0LmdjZi5jb25maWcuY29sZENvbmZpZ0RhdGEiLG4uY29uZmlnRGF0YXx8bnVsbCl9OwpZTz1mdW5jdGlvbihuLFcpe24uY29sZEhhc2hEYXRhPVc7Zy5HYigieXQuZ2NmLmNvbmZpZy5jb2xkSGFzaERhdGEiLG4uY29sZEhhc2hEYXRhfHxudWxsKX07CkdvPWZ1bmN0aW9uKG4pe05CKG4sZy5BcigiUkFXX0NPTERfQ09ORklHX0dST1VQIikpO1lPKG4sZy5BcigiU0VSSUFMSVpFRF9DT0xEX0hBU0hfREFUQSIpKTtwUChuLG4uTj8uY29uZmlnRGF0YSl9OwpFVVM9YXN5bmMgZnVuY3Rpb24obil7aWYobi5OKXJldHVybiBzSigpO2lmKCFuLlYpcmV0dXJuIG49Zy5yMCgiZ2V0Q29sZENvbmZpZyBJREIgbm90IGluaXRpYWxpemVkIiksWkUobiksUHJvbWlzZS5yZWplY3Qobik7dmFyIFc9YWcoKSxEPWcuQXIoIlRJTUVfQ1JFQVRFRF9NUyIpO2lmKFcpe3ZhciBiPWF3YWl0IGU5KFcpO2lmKGImJmIudGltZXN0YW1wPkQpcmV0dXJuIE5CKG4sYi5jb25maWcpLHBQKG4sYi5jb25maWdEYXRhKSxZTyhuLGIuaGFzaERhdGEpLHNKKCl9ZWxzZSBiPWcucjAoImdldENvbGRDb25maWciKSxaRShiKTtHbyhuKTtXJiZuLk4mJm4uY29sZEhhc2hEYXRhJiZuLmNvbmZpZ0RhdGEmJmF3YWl0IExQKG4uTixuLmNvbGRIYXNoRGF0YSxuLmNvbmZpZ0RhdGEsVyxEKTtyZXR1cm4gbi5OP3NKKCk6KG49bmV3IGcuUXgoIkNvbmZpZyBub3QgYXZhaWxhYmxlIGluIHl0Q29uZmlnIiksWkUobiksUHJvbWlzZS5yZWplY3QobikpfTsKSHo9YXN5bmMgZnVuY3Rpb24obixXLEQpe2lmKGcubCgic3RhcnRfY2xpZW50X2djZiIpKXtEJiZyMyhuLEQpO24uVyhXKTtsZXQgYj1hZygpO2ImJihEfHwoRD0oYXdhaXQgZzMoYikpPy5jb25maWcpLGF3YWl0IHhPKEQsVyxiKSk7aWYoRCl7bj1uLks7Zm9yKGxldCB2IG9mIG4uTil2KEQpfX19OwpmUD1hc3luYyBmdW5jdGlvbihuLFcsRCl7Zy5sKCJzdGFydF9jbGllbnRfZ2NmIikmJihZTyhuLFcpLG49YWcoKSkmJihEfHwoRD0oYXdhaXQgZTkobikpPy5jb25maWcpLEQmJmF3YWl0IExQKEQsVyxELmNvbmZpZ0RhdGEsbikpfTsKSjc9ZnVuY3Rpb24oKXt2YXIgbj1xQigpLFc9KDAsZy5SKSgpLW4uajtpZighKG4uaiE9PTAmJlc8djAoInNlbmRfY29uZmlnX2hhc2hfdGltZXIiKSkpe1c9Zy5ycigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnRGF0YSIpO3ZhciBEPWcucnIoInl0LmdjZi5jb25maWcuaG90SGFzaERhdGEiKSxiPWcucnIoInl0LmdjZi5jb25maWcuY29sZEhhc2hEYXRhIik7VyYmRCYmYiYmKG4uaj0oMCxnLlIpKCkpO3JldHVybntjb2xkQ29uZmlnRGF0YTpXLGhvdEhhc2hEYXRhOkQsY29sZEhhc2hEYXRhOmJ9fX07Ckk3PWZ1bmN0aW9uKCl7cmV0dXJuIklOTkVSVFVCRV9BUElfS0VZImluIElFJiYiSU5ORVJUVUJFX0FQSV9WRVJTSU9OImluIElFfTsKZy5TOT1mdW5jdGlvbigpe3JldHVybntpbm5lcnR1YmVBcGlLZXk6Zy5BcigiSU5ORVJUVUJFX0FQSV9LRVkiKSxpbm5lcnR1YmVBcGlWZXJzaW9uOmcuQXIoIklOTkVSVFVCRV9BUElfVkVSU0lPTiIpLGNSOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9DT05GSUdfSU5GTyIpLEcwOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwiV0VCIiksRmQ6Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiLDEpLGlubmVydHViZUNvbnRleHRDbGllbnRWZXJzaW9uOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiksTWI6Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfSEwiKSxFRTpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9HTCIpLHY2OmcuQXIoIklOTkVSVFVCRV9IT1NUX09WRVJSSURFIil8fCIiLE9zOiEhZy5BcigiSU5ORVJUVUJFX1VTRV9USElSRF9QQVJUWV9BVVRIIiwhMSksT0Q6ISFnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIsCiExKSxhcHBJbnN0YWxsRGF0YTpnLkFyKCJTRVJJQUxJWkVEX0NMSUVOVF9DT05GSUdfREFUQSIpfX07CmcuVUo9ZnVuY3Rpb24obil7dmFyIFc9e2NsaWVudDp7aGw6bi5NYixnbDpuLkVFLGNsaWVudE5hbWU6bi5HMCxjbGllbnRWZXJzaW9uOm4uaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24sY29uZmlnSW5mbzpuLmNSfX07bmF2aWdhdG9yLnVzZXJBZ2VudCYmKFcuY2xpZW50LnVzZXJBZ2VudD1TdHJpbmcobmF2aWdhdG9yLnVzZXJBZ2VudCkpO3ZhciBEPWcucWkuZGV2aWNlUGl4ZWxSYXRpbztEJiZEIT0xJiYoVy5jbGllbnQuc2NyZWVuRGVuc2l0eUZsb2F0PVN0cmluZyhEKSk7RD1rVCgpO0QhPT0iIiYmKFcuY2xpZW50LmV4cGVyaW1lbnRzVG9rZW49RCk7RD1oeSgpO0QubGVuZ3RoPjAmJihXLnJlcXVlc3Q9e2ludGVybmFsRXhwZXJpbWVudEZsYWdzOkR9KTtBNyhuLHZvaWQgMCxXKTttVCh2b2lkIDAsVyk7S1Aodm9pZCAwLFcpO09KKG4sdm9pZCAwLFcpO1B6KHZvaWQgMCxXKTtnLmwoInN0YXJ0X2NsaWVudF9nY2YiKSYmWm0odm9pZCAwLFcpO2cuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikmJgohZy5sKCJwYWdlaWRfYXNfaGVhZGVyX3dlYiIpJiYoVy51c2VyPXtvbkJlaGFsZk9mVXNlcjpnLkFyKCJERUxFR0FURURfU0VTU0lPTl9JRCIpfSk7IWcubCgiZmlsbF9kZWxlZ2F0ZV9jb250ZXh0X2luX2dlbF9raWxsc3dpdGNoIikmJihuPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIikpJiYoVy51c2VyPXsuLi5XLnVzZXIsc2VyaWFsaXplZERlbGVnYXRpb25Db250ZXh0Om59KTtuPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik7Zy5sKCJlbmFibGVfcGVyc2lzdGVudF9kZXZpY2VfdG9rZW4iKSYmbj8uY2xpZW50Py5yb2xsb3V0VG9rZW4mJihXLmNsaWVudC5yb2xsb3V0VG9rZW49bj8uY2xpZW50Py5yb2xsb3V0VG9rZW4pO249T2JqZWN0O0Q9bi5hc3NpZ247dmFyIGI9Vy5jbGllbnQsdj1nLkFyKCJERVZJQ0UiLCIiKSxrPXt9O2ZvcihsZXQgW2gseF1vZiBPYmplY3QuZW50cmllcyhnLml3KHYpKSl2PWgsdj09PSJjYnJhbmQiPwprLmRldmljZU1ha2U9eDp2PT09ImNtb2RlbCI/ay5kZXZpY2VNb2RlbD14OnY9PT0iY2JyIj9rLmJyb3dzZXJOYW1lPXg6dj09PSJjYnJ2ZXIiP2suYnJvd3NlclZlcnNpb249eDp2PT09ImNvcyI/ay5vc05hbWU9eDp2PT09ImNvc3ZlciI/ay5vc1ZlcnNpb249eDp2PT09ImNwbGF0Zm9ybSImJihrLnBsYXRmb3JtPXgpO1cuY2xpZW50PUQuY2FsbChuLGIsayk7Zy5sKCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYoVy5jbGllbnQud2luZG93V2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGgsVy5jbGllbnQud2luZG93SGVpZ2h0UG9pbnRzPXdpbmRvdy5pbm5lckhlaWdodCk7cmV0dXJuIFd9OwpBNz1mdW5jdGlvbihuLFcsRCl7bj1uLkcwO2lmKG49PT0iV0VCInx8bj09PSJNV0VCInx8bj09PTF8fG49PT0yKVc/KEQ9Z2UoVyx5ZCw5Nil8fG5ldyB5ZCxuPXl4KCksbj1PYmplY3Qua2V5cyhkM2opLmluZGV4T2Yobiksbj1uPT09LTE/bnVsbDpuLG4hPT1udWxsJiZLbihELDMsbiksJDkoVyx5ZCw5NixEKSk6RCYmKEQuY2xpZW50Lm1haW5BcHBXZWJJbmZvPUQuY2xpZW50Lm1haW5BcHBXZWJJbmZvPz97fSxELmNsaWVudC5tYWluQXBwV2ViSW5mby53ZWJEaXNwbGF5TW9kZT15eCgpKX07Cm1UPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigieXQuZW1iZWRkZWRfcGxheWVyLmVtYmVkX3VybCIpO0QmJihuPyhXPWdlKG4sRUosNyl8fG5ldyBFSixnLlNFKFcsNCxEKSwkOShuLEVKLDcsVykpOlcmJihXLnRoaXJkUGFydHk9e2VtYmVkVXJsOkR9KSl9OwpLUD1mdW5jdGlvbihuLFcpe2lmKGcubCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJmcucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnkpe2xldCBEPWcucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnk7bj9veihuLDk1LGcubDQoRCoxRTYpKTpXJiYoVy5jbGllbnQubWVtb3J5VG90YWxLYnl0ZXM9YCR7RCoxRTZ9YCl9fTsKT0o9ZnVuY3Rpb24obixXLEQpe24uYXBwSW5zdGFsbERhdGEmJihXPyhEPWdlKFcsaTksNjIpPz9uZXcgaTksZy5TRShELDYsbi5hcHBJbnN0YWxsRGF0YSksJDkoVyxpOSw2MixEKSk6RCYmKEQuY2xpZW50LmNvbmZpZ0luZm89RC5jbGllbnQuY29uZmlnSW5mb3x8e30sRC5jbGllbnQuY29uZmlnSW5mby5hcHBJbnN0YWxsRGF0YT1uLmFwcEluc3RhbGxEYXRhKSl9OwpQej1mdW5jdGlvbihuLFcpe3ZhciBEPUJCKCk7RCYmKG4/S24obiw2MSx6cXdbRF0pOlcmJihXLmNsaWVudC5jb25uZWN0aW9uVHlwZT1EKSk7Zy5sKCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKEQ9d0ooKSkmJihuP0tuKG4sOTQsbEJyW0RdKTpXJiYoVy5jbGllbnQuZWZmZWN0aXZlQ29ubmVjdGlvblR5cGU9RCkpfTsKVFpqPWZ1bmN0aW9uKG4sVyxEPXt9KXt2YXIgYj17fTtnLkFyKCJFT01fVklTSVRPUl9EQVRBIik/Yj17IlgtR29vZy1FT00tVmlzaXRvci1JZCI6Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpfTpiPXsiWC1Hb29nLVZpc2l0b3ItSWQiOkQudmlzaXRvckRhdGF8fGcuQXIoIlZJU0lUT1JfREFUQSIsIiIpfTtpZihXJiZXLmluY2x1ZGVzKCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iKSlyZXR1cm4gYjtXPUQuUDF8fGcuQXIoIkFVVEhPUklaQVRJT04iKTtXfHwobj9XPWBCZWFyZXIgJHtnLnJyKCJnYXBpLmF1dGguZ2V0VG9rZW4iKSgpLmFjY2Vzc190b2tlbn1gOihuPWlPKCkuYWoodTkpLGcubCgicGFnZWlkX2FzX2hlYWRlcl93ZWIiKXx8ZGVsZXRlIG5bIlgtR29vZy1QYWdlSWQiXSxiPXsuLi5iLC4uLm59KSk7VyYmKGIuQXV0aG9yaXphdGlvbj1XKTtyZXR1cm4gYn07ClptPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9SjcoKTtpZihEKXt2YXIgYj1ELmNvbGRDb25maWdEYXRhLHY9RC5jb2xkSGFzaERhdGE7RD1ELmhvdEhhc2hEYXRhO24/KFc9Z2UobixpOSw2Mik/P25ldyBpOSxiPWcuU0UoVywxLGIpLGcuU0UoYiwzLHYpLlcoRCksJDkobixpOSw2MixXKSk6VyYmKFcuY2xpZW50LmNvbmZpZ0luZm89Vy5jbGllbnQuY29uZmlnSW5mb3x8e30sYiYmKFcuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9YiksdiYmKFcuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPXYpLEQmJihXLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPUQpKX19OwpvNz1mdW5jdGlvbihuKXt0aGlzLnZlcnNpb249MTt0aGlzLmFyZ3M9bn07CmQzPWZ1bmN0aW9uKG4sVyl7dGhpcy50b3BpYz1uO3RoaXMuTj1XfTsKbDk9ZnVuY3Rpb24obixXKXt2YXIgRD16bygpO0QmJkQucHVibGlzaC5jYWxsKEQsbi50b1N0cmluZygpLG4sVyl9OwpqMHg9ZnVuY3Rpb24obil7dmFyIFc9VG8sRD16bygpO2lmKCFEKXJldHVybiAwO3ZhciBiPUQuc3Vic2NyaWJlKFcudG9TdHJpbmcoKSwodixrKT0+e3ZhciBoPWcucnIoInl0UHVic3ViMlB1YnN1YjJTa2lwU3ViS2V5Iik7aCYmaD09Ynx8KGg9KCk9PntpZihqOVtiXSl0cnl7aWYoayYmVyBpbnN0YW5jZW9mIGQzJiZXIT12KXRyeXt7dmFyIHg9Vy5OLEw9aztpZighTC5hcmdzfHwhTC52ZXJzaW9uKXRocm93IEVycm9yKCJ5dC5wdWJzdWIyLkRhdGEuZGVzZXJpYWxpemUoKTogc2VyaWFsaXplZERhdGEgaXMgaW5jb21wbGV0ZS4iKTtsZXQgZTt0cnl7aWYoIXguQ2Ipe2xldCBHPW5ldyB4O3guQ2I9Ry52ZXJzaW9ufWU9eC5DYn1jYXRjaChHKXt9aWYoIWV8fEwudmVyc2lvbiE9ZSl0aHJvdyBFcnJvcigieXQucHVic3ViMi5EYXRhLmRlc2VyaWFsaXplKCk6IHNlcmlhbGl6ZWREYXRhIHZlcnNpb24gaXMgaW5jb21wYXRpYmxlLiIpO3RyeXtrPVJlZmxlY3QuY29uc3RydWN0KHgsZy5STShMLmFyZ3MpKX1jYXRjaChHKXt0aHJvdyBHLm1lc3NhZ2U9CiJ5dC5wdWJzdWIyLkRhdGEuZGVzZXJpYWxpemUoKTogIitHLm1lc3NhZ2UsRzt9fX1jYXRjaChlKXt0aHJvdyBlLm1lc3NhZ2U9Inl0LnB1YnN1YjIucHVic3ViMiBjcm9zcy1iaW5hcnkgY29udmVyc2lvbiBlcnJvciBmb3IgIitXLnRvU3RyaW5nKCkrIjogIitlLm1lc3NhZ2UsZTt9bi5jYWxsKHdpbmRvdyxrKX1jYXRjaChlKXtPdChlKX19LENQW1cudG9TdHJpbmcoKV0/Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlIik/dGEuTFMoaCk6Zy5uJChoLDApOmgoKSl9KTsKajlbYl09ITA7QnpbVy50b1N0cmluZygpXXx8KEJ6W1cudG9TdHJpbmcoKV09W10pO0J6W1cudG9TdHJpbmcoKV0ucHVzaChiKTtyZXR1cm4gYn07CkYwTT1mdW5jdGlvbigpe3ZhciBuPUM0dyxXPWoweChmdW5jdGlvbihEKXtuLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpO0JaaChXKX0pOwpyZXR1cm4gV307CkJaaD1mdW5jdGlvbihuKXt2YXIgVz16bygpO1cmJih0eXBlb2Ygbj09PSJudW1iZXIiJiYobj1bbl0pLGcueTIobixEPT57Vy51bnN1YnNjcmliZUJ5S2V5KEQpO2RlbGV0ZSBqOVtEXX0pKX07CnpvPWZ1bmN0aW9uKCl7cmV0dXJuIGcucnIoInl0UHVic3ViMlB1YnN1YjJJbnN0YW5jZSIpfTsKRjM9ZnVuY3Rpb24obixXLEQ9e3NhbXBsZVJhdGU6LjF9KXtNYXRoLnJhbmRvbSgpPE1hdGgubWluKC4wMixELnNhbXBsZVJhdGUvMTAwKSYmbDkoIm1ldGFfbG9nZ2luZ19jc2lfZXZlbnQiLHt0aW1lck5hbWU6bix0aW1lbGluZURhdGE6V30pfTsKVmQ9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9e3N0YXJ0VGltZTooMCxnLlIpKCksdGlja3M6e30saW5mb3M6e319O3RyeXtsZXQgaD13MyhXKTtpZihoPT1udWxsfHwhKGg+TUJ8fGg8UjcpKXt2YXIgaz1YJChRZChXKSk7bGV0IHg9KDAsZy5SKSgpO3YudGlja3MuZ2VsYz14O3c5aisrO2cubCgiZ2VsX2NvbXByZXNzaW9uX2NzaV9raWxsc3dpdGNoIil8fCFnLmwoImxvZ19nZWxfY29tcHJlc3Npb25fbGF0ZW5jeSIpJiYhZy5sKCJsb2dfZ2VsX2NvbXByZXNzaW9uX2xhdGVuY3lfbHIiKXx8RjMoImdlbF9jb21wcmVzc2lvbiIsdix7c2FtcGxlUmF0ZTouMX0pO0QuaGVhZGVyc3x8KEQuaGVhZGVycz17fSk7RC5oZWFkZXJzWyJDb250ZW50LUVuY29kaW5nIl09Imd6aXAiO0QucG9zdEJvZHk9aztELnBvc3RQYXJhbXM9dm9pZCAwfWIobixEKX1jYXRjaChoKXtaRShoKSxiKG4sRCl9fTsKTVhTPWZ1bmN0aW9uKG4peygwLGcuUikoKTtpZighbi5ib2R5KXJldHVybiBuO3RyeXtsZXQgVz10eXBlb2Ygbi5ib2R5PT09InN0cmluZyI/bi5ib2R5OkpTT04uc3RyaW5naWZ5KG4uYm9keSksRD1XO2lmKHR5cGVvZiBXPT09InN0cmluZyIpe2xldCBiPXczKFcpO2lmKGIhPW51bGwmJihiPk1CfHxiPFI3KSlyZXR1cm4gbjtEPVgkKFFkKFcpKTsoMCxnLlIpKCl9bi5oZWFkZXJzPXsiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLC4uLihuLmhlYWRlcnN8fHt9KX07bi5ib2R5PUQ7cmV0dXJuIG59Y2F0Y2goVyl7cmV0dXJuIFpFKFcpLG59fTsKdzM9ZnVuY3Rpb24obil7dHJ5e3JldHVybihuZXcgQmxvYihuLnNwbGl0KCIiKSkpLnNpemV9Y2F0Y2goVyl7cmV0dXJuIFpFKFcpLG51bGx9fTsKY3o9ZnVuY3Rpb24obil7cmV0dXJuISFuLllXfHxuLld2fTsKbm09ZnVuY3Rpb24obil7Y3oobikmJiFuLk5oJiYobi5OPSEwLG4uQ3ImJk1hdGgucmFuZG9tKCk8PW4uS3ImJm4uZ0UudGkobi5ZVyksYTcobiksbi55Ry5XRygpJiZuLlcoKSxuLnlHLlNfKG4udVosbi5XLmJpbmQobikpLG4ueUcuU18obi5OQSxuLlguYmluZChuKSkpfTsKYTc9ZnVuY3Rpb24obil7aWYoIWN6KG4pKXRocm93IEVycm9yKCJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZDogcmV0cnlRdWV1ZWRSZXF1ZXN0cyIpO24uZ0UuaTQoIlFVRVVFRCIsbi5ZVykudGhlbihXPT57VyYmIVdVKG4sVyxuLlo0KT9uLkEkLkxTKGFzeW5jKCk9PntXLmlkIT09dm9pZCAwJiZhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVyk7YTcobil9KTpuLnlHLldHKCkmJm4uVygpfSl9OwpENT1hc3luYyBmdW5jdGlvbihuLFcpe2lmKCFjeihuKSl0aHJvdyBFcnJvcigiSW5kZXhlZERCIGlzIG5vdCBzdXBwb3J0ZWQ6IGltbWVkaWF0ZVNlbmQiKTtXLmlkIT09dm9pZCAwJiYoYXdhaXQgbi5nRS5LNihXLmlkLG4uWVcpfHxuLkYyKEVycm9yKCJUaGUgcmVxdWVzdCBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlLiIpKSk7V1UobixXLG4uR3kpPyhXLnNraXBSZXRyeXx8KFc9UnEyKG4sVykpLFcmJihXLnNraXBSZXRyeSYmVy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpLG4uTG0oVy51cmwsVy5vcHRpb25zLCEhVy5za2lwUmV0cnkpKSk6KG4uRjIoRXJyb3IoIk5ldHdvcmtsZXNzIExvZ2dpbmc6IFN0b3JlZCBsb2dzIHJlcXVlc3QgZXhwaXJlZCBhZ2UgbGltaXQiKSksVy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpKX07CmJNPWZ1bmN0aW9uKG4sVyl7bi5oTCYmIW4ueUcuV0coKT9uLmhMKFcpOm4uaGFuZGxlRXJyb3IoVyl9OwpXVT1mdW5jdGlvbihuLFcsRCl7Vz1XLnRpbWVzdGFtcDtyZXR1cm4gbi5ub3coKS1XPj1EPyExOiEwfTsKUnEyPWZ1bmN0aW9uKG4sVyl7aWYoIWN6KG4pKXRocm93IEVycm9yKCJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZDogdXBkYXRlUmVxdWVzdEhhbmRsZXJzIik7dmFyIEQ9Vy5vcHRpb25zLm9uRXJyb3I/Vy5vcHRpb25zLm9uRXJyb3I6KCk9Pnt9OwpXLm9wdGlvbnMub25FcnJvcj1hc3luYyh2LGspPT57dmFyIGg9UTBTKGspLHg9VlgyKGspO3gmJm4uRXEmJm4uRXEoIndlYl9lbmFibGVfZXJyb3JfMjA0IikmJm4uaGFuZGxlRXJyb3IoRXJyb3IoIlJlcXVlc3QgZmFpbGVkIGR1ZSB0byBjb21wcmVzc2lvbiIpLFcudXJsLGspO2lmKG4uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJmh8fG4uRXEmJiFuLkVxKCJud2xfY29uc2lkZXJfZXJyb3JfY29kZSIpJiZuLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcjw9bi5IRilpZihuLnlHLmhKJiZhd2FpdCBuLnlHLmhKKCksIW4ueUcuV0coKSl7RCh2LGspO24uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJlc/LmlkIT09dm9pZCAwJiZhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVywhMSk7cmV0dXJufW4uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJiFoJiZuLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcj5uLkhGfHwobi5wb3RlbnRpYWxFc2ZFcnJvckNvdW50ZXIrKywKVz8uaWQhPT12b2lkIDAmJihXLnNlbmRDb3VudDxuLkExPyhhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVywhMCx4PyExOnZvaWQgMCksbi5BJC5MUygoKT0+e24ueUcuV0coKSYmbi5XKCl9LG4uSVApKTphd2FpdCBuLmdFLlRNKFcuaWQsbi5ZVykpLEQodixrKSl9Owp2YXIgYj1XLm9wdGlvbnMub25TdWNjZXNzP1cub3B0aW9ucy5vblN1Y2Nlc3M6KCk9Pnt9OwpXLm9wdGlvbnMub25TdWNjZXNzPWFzeW5jKHYsayk9PntXPy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpO24ueUcubGMmJm4uRXEmJm4uRXEoInZzc19uZXR3b3JrX2hpbnQiKSYmbi55Ry5sYyghMCk7Yih2LGspfTsKcmV0dXJuIFd9OwpRMFM9ZnVuY3Rpb24obil7cmV0dXJuKG49bj8uZXJyb3I/LmNvZGUpJiZuPj00MDAmJm48PTU5OT8hMTohMH07ClZYMj1mdW5jdGlvbihuKXtuPW4/LmVycm9yPy5jb2RlO3JldHVybiEobiE9PTQwMCYmbiE9PTQxNSl9OwpjX1o9ZnVuY3Rpb24oKXtpZih2VSlyZXR1cm4gdlUoKTt2VT1rTygiTG9nc0RhdGFiYXNlVjIiLHtLYzp7TG9nc1JlcXVlc3RzU3RvcmU6e3Z4OjJ9fSxzaGFyZWQ6ITEsdXBncmFkZShuLFcsRCl7VygyKSYmWnkobiwiTG9nc1JlcXVlc3RzU3RvcmUiLHtrZXlQYXRoOiJpZCIsYXV0b0luY3JlbWVudDohMH0pO1coMyk7Vyg1KSYmKEQ9RC5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSxELk4uaW5kZXhOYW1lcy5jb250YWlucygibmV3UmVxdWVzdCIpJiZELk4uZGVsZXRlSW5kZXgoIm5ld1JlcXVlc3QiKSxFUihELCJuZXdSZXF1ZXN0VjIiLFsic3RhdHVzIiwiaW50ZXJmYWNlIiwidGltZXN0YW1wIl0pKTtXKDcpJiZVUihuLCJzYXBpc2lkIik7Vyg5KSYmVVIobiwiU1dIZWFsdGhMb2ciKX0sdmVyc2lvbjo5fSk7cmV0dXJuIHZVKCl9OwprUT1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoY19aKCksbil9OwphQlM9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD17c3RhcnRUaW1lOigwLGcuUikoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9XUklURSJ9LHRpY2tzOnt9fTtXPWF3YWl0IGtRKFcpO249ey4uLm4sb3B0aW9uczpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG4ub3B0aW9ucykpLGludGVyZmFjZTpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCl9O249YXdhaXQgVy5wdXQoIkxvZ3NSZXF1ZXN0c1N0b3JlIixuKTtELnRpY2tzLnRjPSgwLGcuUikoKTtoSShEKTtyZXR1cm4gbn07Cm52Mj1hc3luYyBmdW5jdGlvbihuLFcpe3ZhciBEPXtzdGFydFRpbWU6KDAsZy5SKSgpLGluZm9zOnt0cmFuc2FjdGlvblR5cGU6IllUX0lEQl9UUkFOU0FDVElPTl9UWVBFX1JFQUQifSx0aWNrczp7fX07Vz1hd2FpdCBrUShXKTt2YXIgYj1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCksdj1bbixiLDBdO2I9W24sYiwoMCxnLlIpKCldO3ZhciBrPUlEQktleVJhbmdlLmJvdW5kKHYsYiksaD0icHJldiI7Zy5sKCJ1c2VfZmlmb19mb3JfbmV0d29ya2xlc3MiKSYmKGg9Im5leHQiKTt2YXIgeD12b2lkIDA7dj1uPT09Ik5FVyI/InJlYWR3cml0ZSI6InJlYWRvbmx5IjtnLmwoInVzZV9yZWFkb25seV9mb3JfZ2V0X21vc3RfcmVjZW50X2J5X3N0YXR1c19raWxsc3dpdGNoIikmJih2PSJyZWFkd3JpdGUiKTthd2FpdCBPUihXLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZTp2LEdROiEwfSxMPT56bihMLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLmluZGV4KCJuZXdSZXF1ZXN0VjIiKSwKe3F1ZXJ5OmssZGlyZWN0aW9uOmh9LGU9PntlLmdldFZhbHVlKCkmJih4PWUuZ2V0VmFsdWUoKSxuPT09Ik5FVyImJih4LnN0YXR1cz0iUVVFVUVEIixlLnVwZGF0ZSh4KSkpfSkpOwpELnRpY2tzLnRjPSgwLGcuUikoKTtoSShEKTtyZXR1cm4geH07CldfQz1hc3luYyBmdW5jdGlvbihuLFcpe3JldHVybiBPUihhd2FpdCBrUShXKSxbIkxvZ3NSZXF1ZXN0c1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9Pnt2YXIgYj1ELm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpO3JldHVybiBiLmdldChuKS50aGVuKHY9PntpZih2KXJldHVybiB2LnN0YXR1cz0iUVVFVUVEIixiLnB1dCh2KS50aGVuKCgpPT52KX0pfSl9OwpERXg9YXN5bmMgZnVuY3Rpb24obixXLEQ9ITAsYil7cmV0dXJuIE9SKGF3YWl0IGtRKFcpLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sdj0+e3ZhciBrPXYub2JqZWN0U3RvcmUoIkxvZ3NSZXF1ZXN0c1N0b3JlIik7cmV0dXJuIGsuZ2V0KG4pLnRoZW4oaD0+aD8oaC5zdGF0dXM9Ik5FVyIsRCYmKGguc2VuZENvdW50Kz0xKSxiIT09dm9pZCAwJiYoaC5vcHRpb25zLmNvbXByZXNzPWIpLGsucHV0KGgpLnRoZW4oKCk9PmgpKTpzUi5yZXNvbHZlKHZvaWQgMCkpfSl9OwpiR0M9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4oYXdhaXQga1EoVykpLmRlbGV0ZSgiTG9nc1JlcXVlc3RzU3RvcmUiLG4pfTsKdnZpPWFzeW5jIGZ1bmN0aW9uKG4pe249YXdhaXQga1Eobik7dmFyIFc9KDAsZy5SKSgpLTI1OTJFNjthd2FpdCBPUihuLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+dVEoRC5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSx7fSxiPT57aWYoYi5nZXRWYWx1ZSgpLnRpbWVzdGFtcDw9VylyZXR1cm4gYi5kZWxldGUoKS50aGVuKCgpPT5vZyhiKSl9KSl9Owpremk9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBiOSgiTG9nc0RhdGFiYXNlVjIiKX07CmhJPWZ1bmN0aW9uKG4pe2cubCgibndsX2NzaV9raWxsc3dpdGNoIil8fEYzKCJuZXR3b3JrbGVzc19wZXJmb3JtYW5jZSIsbix7c2FtcGxlUmF0ZToxfSl9Owp4UT1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoaF94KCksbil9Owp4RXc9YXN5bmMgZnVuY3Rpb24obil7bj1hd2FpdCB4UShuKTt2YXIgVz0oMCxnLlIpKCktMjU5MkU2O2F3YWl0IE9SKG4sWyJTV0hlYWx0aExvZyJdLHttb2RlOiJyZWFkd3JpdGUiLEdROiEwfSxEPT51UShELm9iamVjdFN0b3JlKCJTV0hlYWx0aExvZyIpLHt9LGI9PntpZihiLmdldFZhbHVlKCkudGltZXN0YW1wPD1XKXJldHVybiBiLmRlbGV0ZSgpLnRoZW4oKCk9Pm9nKGIpKX0pKX07CkxfaT1hc3luYyBmdW5jdGlvbihuKXthd2FpdCAoYXdhaXQgeFEobikpLmNsZWFyKCJTV0hlYWx0aExvZyIpfTsKZy5nbz1mdW5jdGlvbihuLFcsRCxiLHY9IiIsaz0hMSxoPSExKXtpZihuKWlmKEQmJiFnLmQ4KCkpWkUobmV3IGcuUXgoIkxlZ2FjeSByZWZlcnJlci1zY3J1YmJlZCBwaW5nIGRldGVjdGVkIikpLG4mJkxtKG4sdm9pZCAwLHtzY3J1YlJlZmVycmVyOiEwfSk7ZWxzZSBpZih2KXhUKG4sVywiUE9TVCIsdixiKTtlbHNlIGlmKGcuQXIoIlVTRV9ORVRfQUpBWF9GT1JfUElOR19UUkFOU1BPUlQiLCExKXx8Ynx8aCl4VChuLFcsIkdFVCIsIiIsYix2b2lkIDAsayxoKTtlbHNle2I6e3RyeXtjOnt2YXIgeD1uZXcgZV93KHt1cmw6bn0pO2lmKHguTi5kc2g9PT0iMSIpdmFyIEw9bnVsbDtlbHNle3ZhciBlPXguTi5hZTtpZihlPT09IjEiKXtsZXQgcj14Lk4uYWR1cmw7aWYocil0cnl7TD17dmVyc2lvbjozLFViOmRlY29kZVVSSUNvbXBvbmVudChyKSxERzp1eCh4LkosImFjdD0xIiwicmk9MSIseGlNKHgpKX07YnJlYWsgY31jYXRjaChOKXt9fUw9ZT09PSIyIj97dmVyc2lvbjo0LFViOnV4KHguSiwKImRjdD0xIiwic3VpZD0iK3guVywicmk9MSIpLERHOnV4KHguSiwiYWN0PTEiLCJyaT0xIiwic3VpZD0iK3guVyl9Om51bGx9fWlmKEwpe2xldCByPVMxKG4pO3ZhciBHPSEoIXJ8fCFyLmVuZHNXaXRoKCIvYWNsayIpfHxnLmxmKG4sInJpIikhPT0iMSIpO2JyZWFrIGJ9fWNhdGNoKHIpe31HPSExfUc/ZXcobik/KFcmJlcoKSxEPSEwKTpEPSExOkQ9ITE7RHx8TG0obixXKX19Owpndnc9ZnVuY3Rpb24obixXPSIiKXtldyhuLFcpfHxnLmdvKG4sdm9pZCAwLHZvaWQgMCx2b2lkIDAsVyl9Owpldz1mdW5jdGlvbihuLFc9IiIpe3RyeXtpZih3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24mJndpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihuLFcpKXJldHVybiEwfWNhdGNoKEQpe31yZXR1cm4hMX07CkxtPWZ1bmN0aW9uKG4sVyxEPXt9KXt2YXIgYj1uZXcgSW1hZ2Usdj0iIitYSHcrKztYaVt2XT1iO2Iub25sb2FkPWIub25lcnJvcj0oKT0+e1cmJlhpW3ZdJiZXKCk7ZGVsZXRlIFhpW3ZdfTsKRC5zY3J1YlJlZmVycmVyJiYoYi5yZWZlcnJlclBvbGljeT0ibm8tcmVmZXJyZXIiKTtiLnNyYz1ufTsKZy5xYj1mdW5jdGlvbihuKXtyZXR1cm4gZG9jdW1lbnQuZmVhdHVyZVBvbGljeT8uYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpP24rIiZuaXM9NiI6bisiJm5pcz01In07CiRRPWZ1bmN0aW9uKCl7R1R8fChHVD1uZXcgdEkoInl0Lm9mZmxpbmUiKSk7cmV0dXJuIEdUfTsKcUt3PWZ1bmN0aW9uKG4pe2lmKGcubCgib2ZmbGluZV9lcnJvcl9oYW5kbGluZyIpKXt2YXIgVz0kUSgpLmdldCgiZXJyb3JzIiwhMCl8fHt9O1dbbi5tZXNzYWdlXT17bmFtZTpuLm5hbWUsc3RhY2s6bi5zdGFja307bi5sZXZlbCYmKFdbbi5tZXNzYWdlXS5sZXZlbD1uLmxldmVsKTskUSgpLnNldCgiZXJyb3JzIixXLDI1OTJFMywhMCl9fTsKc2M9ZnVuY3Rpb24oKXtpZighcm8uaW5zdGFuY2Upe2xldCBuPWcucnIoInl0Lm5ldHdvcmtSZXF1ZXN0TW9uaXRvci5pbnN0YW5jZSIpfHxuZXcgcm87Zy5HYigieXQubmV0d29ya1JlcXVlc3RNb25pdG9yLmluc3RhbmNlIixuKTtyby5pbnN0YW5jZT1ufXJldHVybiByby5pbnN0YW5jZX07CnBtPWZ1bmN0aW9uKCl7aWYoIU5iLmluc3RhbmNlKXtsZXQgbj1nLnJyKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZSIpfHxuZXcgTmI7Zy5HYigieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UiLG4pO05iLmluc3RhbmNlPW59cmV0dXJuIE5iLmluc3RhbmNlfTsKWVE9ZnVuY3Rpb24obixXKXtuLnJhdGVMaW1pdD9uLk4/KHRhLnNPKG4uWCksbi5YPXRhLkxTKCgpPT57bi5XIT09VyYmKG4uZGlzcGF0Y2hFdmVudChXKSxuLlc9VyxuLk49KDAsZy5SKSgpKX0sbi5yYXRlTGltaXQtKCgwLGcuUikoKS1uLk4pKSk6KG4uZGlzcGF0Y2hFdmVudChXKSxuLlc9VyxuLk49KDAsZy5SKSgpKTpuLmRpc3BhdGNoRXZlbnQoVyl9OwpnLkhVPWZ1bmN0aW9uKCl7dmFyIG49Zy5ycigieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIpO258fChuPW5ldyBHemgsZy5HYigieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIsbiksZy5sKCJuZXR3b3JrbGVzc19sb2dnaW5nIikmJmcublAoKS50aGVuKFc9PntuLllXPVc7bm0obik7bi5qLnJlc29sdmUoKTtuLkNyJiZNYXRoLnJhbmRvbSgpPD1uLktyJiZuLllXJiZ4RXcobi5ZVyk7Zy5sKCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX3N3X2hlYWx0aF9zdG9yZSIpJiZ0V3cobil9KSk7CnJldHVybiBufTsKdFd3PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLllXKXRocm93IGcucjAoImNsZWFyU1dIZWFsdGhMb2dzRGIiKTtMX2kobi5ZVykuY2F0Y2goVz0+e24uaGFuZGxlRXJyb3IoVyl9KX07CiRFdD1mdW5jdGlvbihuLFcsRCl7Vz1nLmwoIndlYl9mcF92aWFfanNwYiIpP09iamVjdC5hc3NpZ24oe30sVyk6VztnLmwoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIik/Vy5oZWFkZXJzJiZnLlRkKG4pJiYoVy5oZWFkZXJzWyJYLUdvb2ctUmVxdWVzdC1UaW1lIl09SlNPTi5zdHJpbmdpZnkoTWF0aC5yb3VuZCgoMCxnLlIpKCkpKSk6Vy5wb3N0UGFyYW1zPy5yZXF1ZXN0VGltZU1zJiYoVy5wb3N0UGFyYW1zLnJlcXVlc3RUaW1lTXM9TWF0aC5yb3VuZCgoMCxnLlIpKCkpKTtEJiZPYmplY3Qua2V5cyhXKS5sZW5ndGg9PT0wP2cuZ28obik6Vy5jb21wcmVzcz9XLnBvc3RCb2R5Pyh0eXBlb2YgVy5wb3N0Qm9keSE9PSJzdHJpbmciJiYoVy5wb3N0Qm9keT1KU09OLnN0cmluZ2lmeShXLnBvc3RCb2R5KSksVmQobixXLnBvc3RCb2R5LFcsZy5lZCkpOlZkKG4sSlNPTi5zdHJpbmdpZnkoVy5wb3N0UGFyYW1zKSxXLGc4KTpnLmVkKG4sVyl9OwpmbT1mdW5jdGlvbihuLFcpe2cubCgidXNlX2V2ZW50X3RpbWVfbXNfaGVhZGVyIikmJmcuVGQobikmJihXLmhlYWRlcnN8fChXLmhlYWRlcnM9e30pLFcuaGVhZGVyc1siWC1Hb29nLUV2ZW50LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLGcuUikoKSkpKTtyZXR1cm4gV307CmcuSUk9ZnVuY3Rpb24obixXLEQsYil7IWcuQXIoIlZJU0lUT1JfREFUQSIpJiZXIT09InZpc2l0b3JfaWQiJiZNYXRoLnJhbmRvbSgpPC4wMSYmWkUobmV3IGcuUXgoIk1pc3NpbmcgVklTSVRPUl9EQVRBIHdoZW4gc2VuZGluZyBpbm5lcnR1YmUgcmVxdWVzdC4iLFcsRCxiKSk7aWYoIW4uaXNSZWFkeSgpKXRocm93IG49bmV3IGcuUXgoImlubmVydHViZSB4aHJjbGllbnQgbm90IHJlYWR5IixXLEQsYiksT3Qobiksbjt2YXIgdj17aGVhZGVyczpiLmhlYWRlcnN8fHt9LG1ldGhvZDoiUE9TVCIscG9zdFBhcmFtczpELHBvc3RCb2R5OmIucG9zdEJvZHkscG9zdEJvZHlGb3JtYXQ6Yi5wb3N0Qm9keUZvcm1hdHx8IkpTT04iLG9uVGltZW91dDooKT0+e2Iub25UaW1lb3V0KCl9LApvbkZldGNoVGltZW91dDpiLm9uVGltZW91dCxvblN1Y2Nlc3M6KGUsRyk9PntpZihiLm9uU3VjY2VzcyliLm9uU3VjY2VzcyhHKX0sCm9uRmV0Y2hTdWNjZXNzOmU9PntpZihiLm9uU3VjY2VzcyliLm9uU3VjY2VzcyhlKX0sCm9uUHJvZ3Jlc3M6ZT0+e2lmKGIub25Qcm9ncmVzcyliLm9uUHJvZ3Jlc3MoZSl9LApvbkVycm9yOihlLEcpPT57aWYoYi5vbkVycm9yKWIub25FcnJvcihHKX0sCm9uRmV0Y2hFcnJvcjplPT57aWYoYi5vbkVycm9yKWIub25FcnJvcihlKX0sCnRpbWVvdXQ6Yi50aW1lb3V0LHdpdGhDcmVkZW50aWFsczohMCxjb21wcmVzczpiLmNvbXByZXNzfTt2LmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdfHwodi5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpO0Q9IiI7dmFyIGs9bi5jb25maWdfLnY2O2smJihEPWspO2s9bi5jb25maWdfLk9zfHwhMTt2YXIgaD1UWmooayxELGIpO09iamVjdC5hc3NpZ24odi5oZWFkZXJzLGgpO3YuaGVhZGVycy5BdXRob3JpemF0aW9uJiYhRCYmayYmKHYuaGVhZGVyc1sieC1vcmlnaW4iXT13aW5kb3cubG9jYXRpb24ub3JpZ2luKTt2YXIgeD1nLnpkKGAke0R9JHtgL3lvdXR1YmVpLyR7bi5jb25maWdfLmlubmVydHViZUFwaVZlcnNpb259LyR7V31gfWAse2FsdDoianNvbiJ9KSxMPShlPSExKT0+e3RyeXtpZihlJiZiLnJldHJ5JiYhYi5uZXR3b3JrbGVzc09wdGlvbnMuYnlwYXNzTmV0d29ya2xlc3Mpdi5tZXRob2Q9IlBPU1QiLGIubmV0d29ya2xlc3NPcHRpb25zLndyaXRlVGhlblNlbmQ/CmcuSFUoKS53cml0ZVRoZW5TZW5kKHgsdik6Zy5IVSgpLnNlbmRBbmRXcml0ZSh4LHYpO2Vsc2UgaWYoYi5jb21wcmVzcylpZih2LnBvc3RCb2R5KXtsZXQgRz12LnBvc3RCb2R5O3R5cGVvZiBHIT09InN0cmluZyImJihHPUpTT04uc3RyaW5naWZ5KHYucG9zdEJvZHkpKTtWZCh4LEcsdixnLmVkKX1lbHNlIFZkKHgsSlNPTi5zdHJpbmdpZnkodi5wb3N0UGFyYW1zKSx2LGc4KTtlbHNlIGc4KHgsdil9Y2F0Y2goRyl7aWYoRy5uYW1lPT09IkludmFsaWRBY2Nlc3NFcnJvciIpWkUoRXJyb3IoIkFuIGV4dGVuc2lvbiBpcyBibG9ja2luZyBuZXR3b3JrIHJlcXVlc3QuIikpO2Vsc2UgdGhyb3cgRzt9fTsKZy5ycigieXROZXR3b3JrbGVzc0xvZ2dpbmdJbml0aWFsaXphdGlvbk9wdGlvbnMiKSYmSkkuaXNOd2xJbml0aWFsaXplZD9jTigpLnRoZW4oZT0+e0woZSl9KTpMKCExKX07Ck9jPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1TdygpO2lmKGImJlcpe2xldCB2PWIuc3Vic2NyaWJlKG4sZnVuY3Rpb24oKXt2YXIgaz1hcmd1bWVudHMsaD0oKT0+e0FJW3ZdJiZXLmFwcGx5JiZ0eXBlb2YgVy5hcHBseT09ImZ1bmN0aW9uIiYmVy5hcHBseShEfHx3aW5kb3csayl9Owp0cnl7bWdbbl0/aCgpOmcubiQoaCwwKX1jYXRjaCh4KXtPdCh4KX19LEQpOwpBSVt2XT0hMDtLbVtuXXx8KEttW25dPVtdKTtLbVtuXS5wdXNoKHYpO3JldHVybiB2fXJldHVybiAwfTsKUFU9ZnVuY3Rpb24obil7dmFyIFc9U3coKTtXJiYodHlwZW9mIG49PT0ibnVtYmVyIj9uPVtuXTp0eXBlb2Ygbj09PSJzdHJpbmciJiYobj1bcGFyc2VJbnQobiwxMCldKSxnLnkyKG4sRD0+e1cudW5zdWJzY3JpYmVCeUtleShEKTtkZWxldGUgQUlbRF19KSl9OwpaNT1mdW5jdGlvbihuLFcpe3ZhciBEPVN3KCk7cmV0dXJuIEQ/RC5wdWJsaXNoLmFwcGx5KEQsYXJndW1lbnRzKTohMX07CnlKPWZ1bmN0aW9uKG4pe3ZhciBXPVN3KCk7aWYoVylpZihXLmNsZWFyKG4pLG4pVWMobik7ZWxzZSBmb3IobGV0IEQgaW4gS20pVWMoRCl9OwpFYz1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPVdebjtpZighKG4tNj4+Mykpe2VYKGteMjk5MCxrXjYwMjksRCk7dmFyIGg9RFtJW2teMjk4Nl1dKyhEW0lba14yOTg2XV0/SVtrXjMwNjBdOklba14zMDY3XSkrRFtJW2teMjk2N11dK0RbSVtrXjI5ODhdXTtpZihQMChrXjMwNDUsa140NjE4LEQpKXtsZXQgTD1bXTtnLmFfKERbSVsxXV0sKEcscik9PntHIT09bnVsbCYmTFtJW2teMjk4Ml1dKGAke3J9PSR7R31gKX0pOwpsZXQgZT1MW0lba14zMDA1XV0oSVtrXjI5NDVdKTtoKz1gPyR7ZX1gfXZhciB4PWh9KG4rMl43KTxuJiYobi01fDIzKT49biYmKGI9PT1JW2teNjU4OV0mJigoaD12W0lba142NTYzXV0oSVtrXjY1NDhdKSk+PTA/KGI9YGNtbz0ke3ZbSVtrXjY1NjZdXSgwLGgpfWAsdj12W0lba142NTY2XV0oaCsxKSk6KGg9dltJW2teNjU2M11dKElba142NTM1XSkpPj0wJiYoYj1gY21vPSR7dltJW2teNjU2Nl1dKDAsaCl9YCx2PXZbSVtrXjY1NjZdXShoKzMpKSksRFtiXT12KTtyZXR1cm4geH07ClN3PWZ1bmN0aW9uKCl7cmV0dXJuIGcucWkueXRQdWJzdWJQdWJzdWJJbnN0YW5jZX07ClVjPWZ1bmN0aW9uKG4pe0ttW25dJiYobj1LbVtuXSxnLnkyKG4sVz0+e0FJW1ddJiZkZWxldGUgQUlbV119KSxuLmxlbmd0aD0wKX07CmlNPWZ1bmN0aW9uKG4sVyxEPW51bGwpe3J2aChuLFcsRCl9Owpydmg9ZnVuY3Rpb24obixXLEQ9bnVsbCl7dmFyIGI9dU0odHlwZW9mIG49PT0ic3RyaW5nIj9uOm4udG9TdHJpbmcoKSksdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSxrPXYmJmdKKHYpLGg9diYmIWs7az9XJiZXKCk6KFcmJihrPU9jKGIsVyksVz1gJHtBaShXKX1gLG9JW1ddPWspLGh8fCh2PXN6UyhuLGIsKCk9PntnSih2KXx8KGI1dCh2KSxaNShiKSxnLm4kKCgpPT57eUooYil9LDApKX0sRCkpKX07CnN6Uz1mdW5jdGlvbihuLFcsRCxiPW51bGwpe3ZhciB2PWcuekYoIlNDUklQVCIpO3YuaWQ9Vzt2Lm9ubG9hZD0oKT0+e0QmJnNldFRpbWVvdXQoRCwwKX07CnYub25yZWFkeXN0YXRlY2hhbmdlPSgpPT57c3dpdGNoKHYucmVhZHlTdGF0ZSl7Y2FzZSAibG9hZGVkIjpjYXNlICJjb21wbGV0ZSI6di5vbmxvYWQoKX19OwpiJiZ2LnNldEF0dHJpYnV0ZSgibm9uY2UiLGIpO2cuUE0odix0eXBlb2Ygbj09PSJzdHJpbmciP2Z3KG4pOm4pO249ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTtuLmluc2VydEJlZm9yZSh2LG4uZmlyc3RDaGlsZCk7cmV0dXJuIHZ9Owp1TT1mdW5jdGlvbihuKXt2YXIgVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5OVShXLG4pO249Vy5ocmVmLnJlcGxhY2UoL15bYS16QS1aXSs6XC9cLy8sIi8vIik7cmV0dXJuYGpzLSR7c1Qobil9YH07CnpUPWZ1bmN0aW9uKG4sVyl7aWYobj09PVcpbj0hMDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobikmJkFycmF5LmlzQXJyYXkoVykpbj12NChuLFcselQpO2Vsc2UgaWYoZy5mdChuKSYmZy5mdChXKSlhOmlmKGcuTFQobikubGVuZ3RoIT1nLkxUKFcpLmxlbmd0aCluPSExO2Vsc2V7Zm9yKGxldCBEIGluIG4paWYoIXpUKG5bRF0sV1tEXSkpe249ITE7YnJlYWsgYX1uPSEwfWVsc2Ugbj0hMTtyZXR1cm4gbn07Cmp3PWZ1bmN0aW9uKG4sLi4uVyl7aWYoIWxNKG4pfHxXLnNvbWUoRD0+IWxNKEQpKSl0aHJvdyBFcnJvcigiT25seSBvYmplY3RzIG1heSBiZSBtZXJnZWQuIik7CmZvcihsZXQgRCBvZiBXKVRUKG4sRCl9OwpUVD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBpbiBXKWlmKGxNKFdbRF0pKXtpZihEIGluIG4mJiFsTShuW0RdKSl0aHJvdyBFcnJvcigiQ2Fubm90IG1lcmdlIGFuIG9iamVjdCBpbnRvIGEgbm9uLW9iamVjdC4iKTtEIGluIG58fChuW0RdPXt9KTtUVChuW0RdLFdbRF0pfWVsc2UgaWYoQ20oV1tEXSkpe2lmKEQgaW4gbiYmIUNtKG5bRF0pKXRocm93IEVycm9yKCJDYW5ub3QgbWVyZ2UgYW4gYXJyYXkgaW50byBhIG5vbi1hcnJheS4iKTtEIGluIG58fChuW0RdPVtdKTtCVShuW0RdLFdbRF0pfWVsc2UgbltEXT1XW0RdO3JldHVybiBufTsKQlU9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2YgVylsTShEKT9uLnB1c2goVFQoe30sRCkpOkNtKEQpP24ucHVzaChCVShbXSxEKSk6bi5wdXNoKEQpO3JldHVybiBufTsKbE09ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KG4pfTsKQ209ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09Im9iamVjdCImJkFycmF5LmlzQXJyYXkobil9OwpnLkZpPWZ1bmN0aW9uKG49ITEpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLlkkPW5ldyBCSyhuKTtnLnUodGhpcyx0aGlzLlkkKX07Ck1iPWZ1bmN0aW9uKG4pe2lmKHdpbmRvdy5jcnlwdG8mJndpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgVz1BcnJheShuKSxEPW5ldyBVaW50OEFycmF5KG4pO3dpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKEQpO2Zvcih2YXIgYj0wO2I8Vy5sZW5ndGg7YisrKVdbYl09RFtiXTtyZXR1cm4gV31jYXRjaCh2KXt9Vz1BcnJheShuKTtmb3IoRD0wO0Q8bjtEKyspe2I9RGF0ZS5ub3coKTtmb3IobGV0IHY9MDt2PGIlMjM7disrKVdbRF09TWF0aC5yYW5kb20oKTtXW0RdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpfWlmKHdvKWZvcihEPTEsYj0wO2I8d28ubGVuZ3RoO2IrKylXW0Qlbl1ePVdbKEQtMSklbl0vNF53by5jaGFyQ29kZUF0KGIpLEQrKztyZXR1cm4gV307CmcuUkk9ZnVuY3Rpb24obil7bj1NYihuKTt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLmNoYXJBdChuW0RdJjYzKSk7cmV0dXJuIFcuam9pbigiIil9OwpnLlFKPWZ1bmN0aW9uKCl7cmV0dXJuIGcuaV8oTWIoMTYpLG49PihuJjE1KS50b1N0cmluZygxNikpLmpvaW4oIiIpfTsKYUk9ZnVuY3Rpb24oKXsoe0NQOlc9ITEsTTY6bj0hMH09e30pO3ZhciBuLFc7aWYoZy5ycigiX2xhY3QiLHdpbmRvdyk9PW51bGwpe3ZhciBEPXBhcnNlSW50KGcuQXIoIkxBQ1QiKSwxMCk7RD1pc0Zpbml0ZShEKT9EYXRlLm5vdygpLU1hdGgubWF4KEQsMCk6LTE7Zy5HYigiX2xhY3QiLEQsd2luZG93KTtnLkdiKCJfZmFjdCIsRCx3aW5kb3cpO0Q9PS0xJiZWSigpO05ndyhXLG4pO25ldyBtWSgoKT0+e2NVKCJtb3VzZSIsMTAwKX0pfX07Cm5YPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IGcud1ooVyk7KFc9RC5nZXQoInJlcV9pZCIpKSYmbi5zZXQoInJlcV9pZCIsVyk7Zy5hXyhuLk4sKGIsdik9PntEWyJzZXQiXSh2LG51bGwpfSk7CnJldHVybiBEfTsKTmd3PWZ1bmN0aW9uKG49ITEsVz0hMCl7dmFyIEQ9d2luZG93O2cuSTkoRC5kb2N1bWVudCwia2V5ZG93biIsVkopO2cuSTkoRC5kb2N1bWVudCwia2V5dXAiLFZKKTtnLkk5KEQuZG9jdW1lbnQsIm1vdXNlZG93biIsVkopO2cuSTkoRC5kb2N1bWVudCwibW91c2V1cCIsVkopO24/Zy5JOShELCJ0b3VjaG1vdmUiLCgpPT57Y1UoInRvdWNobW92ZSIsMjAwKX0se3Bhc3NpdmU6ITB9KTooZy5JOShELCJyZXNpemUiLCgpPT57Y1UoInJlc2l6ZSIsMjAwKX0pLFcmJmcuSTkoRCwic2Nyb2xsIiwoKT0+e2NVKCJzY3JvbGwiLDIwMCl9KSk7CmcuSTkoRC5kb2N1bWVudCwidG91Y2hzdGFydCIsVkose3Bhc3NpdmU6ITB9KTtnLkk5KEQuZG9jdW1lbnQsInRvdWNoZW5kIixWSix7cGFzc2l2ZTohMH0pfTsKY1U9ZnVuY3Rpb24obixXKXtieVtuXXx8KGJ5W25dPSEwLHRhLkxTKCgpPT57VkooKTtieVtuXT0hMX0sVykpfTsKVko9ZnVuY3Rpb24oKXtnLnJyKCJfbGFjdCIsd2luZG93KT09bnVsbCYmKGFJKCksZy5ycigiX2xhY3QiLHdpbmRvdykpO3ZhciBuPURhdGUubm93KCk7Zy5HYigiX2xhY3QiLG4sd2luZG93KTtnLnJyKCJfZmFjdCIsd2luZG93KT09LTEmJmcuR2IoIl9mYWN0IixuLHdpbmRvdyk7KG49Zy5ycigieXRnbG9iYWwueXRVdGlsQWN0aXZpdHlDYWxsYmFja18iKSkmJm4oKX07Cmcudkk9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJfbGFjdCIsd2luZG93KTtyZXR1cm4gbj09bnVsbD8tMTpNYXRoLm1heChEYXRlLm5vdygpLW4sMCl9OwpnLmhwPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcga28obil9OwpnLnhvPWZ1bmN0aW9uKG4sVyl7bi5KLnNldChXLk5ILFcpO3ZhciBEPW4uVy5nZXQoVy5OSCk7aWYoRCl0cnl7RC5RNChuLnJlc29sdmUoVy5OSCkpfWNhdGNoKGIpe0QuSlkoYil9fTsKZ0U9ZnVuY3Rpb24obixXLEQsYj0hMSl7aWYoRC5pbmRleE9mKFcpPi0xKXRocm93IEVycm9yKGBEZXBzIGN5Y2xlIGZvcjogJHtXfWApO2lmKG4uTi5oYXMoVykpcmV0dXJuIG4uTi5nZXQoVyk7aWYoIW4uSi5oYXMoVykpe2lmKGIpcmV0dXJuO3Rocm93IEVycm9yKGBObyBwcm92aWRlciBmb3I6ICR7V31gKTt9Yj1uLkouZ2V0KFcpO0QucHVzaChXKTtpZihiLlBmIT09dm9pZCAwKXZhciB2PWIuUGY7ZWxzZSBpZihiLlJjKXY9YltnLkxYXT9lWihuLGJbZy5MWF0sRCk6W10sdj1iLlJjKC4uLnYpO2Vsc2UgaWYoYi5ZTCl7dj1iLllMO2xldCBrPXZbZy5MWF0/ZVoobix2W2cuTFhdLEQpOltdO3Y9bmV3IHYoLi4uayl9ZWxzZSB0aHJvdyBFcnJvcihgQ291bGQgbm90IHJlc29sdmUgcHJvdmlkZXJzIGZvcjogJHtXfWApO0QucG9wKCk7Yi5wbnx8bi5OLnNldChXLHYpO3JldHVybiB2fTsKZVo9ZnVuY3Rpb24obixXLEQpe3JldHVybiBXP1cubWFwKGI9PmIgaW5zdGFuY2VvZiBrbz9nRShuLGIua2V5LEQsITApOmdFKG4sYixEKSk6W119OwpnLnFqPWZ1bmN0aW9uKCl7WDR8fChYND1uZXcgcEhyKTtyZXR1cm4gWDR9Owp0cD1mdW5jdGlvbigpe3JldHVybiJoNXZjYyJpbiBHcCYmR3AuaDV2Y2MudHJhY2VFdmVudD8udHJhY2VCZWdpbiYmR3AuaDV2Y2MudHJhY2VFdmVudD8udHJhY2VFbmQ/MToicGVyZm9ybWFuY2UiaW4gR3AmJkdwLnBlcmZvcm1hbmNlLm1hcmsmJkdwLnBlcmZvcm1hbmNlLm1lYXN1cmU/MjowfTsKJG89ZnVuY3Rpb24obil7dmFyIFc9dHAoKTtzd2l0Y2goVyl7Y2FzZSAxOkdwLmg1dmNjLnRyYWNlRXZlbnQudHJhY2VCZWdpbigiWVRMUiIsbik7YnJlYWs7Y2FzZSAyOkdwLnBlcmZvcm1hbmNlLm1hcmsoYCR7bn0tc3RhcnRgKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDpnLnBiKFcsInVua25vd24gdHJhY2UgdHlwZSIpfX07CnJFPWZ1bmN0aW9uKG4pe3ZhciBXPXRwKCk7c3dpdGNoKFcpe2Nhc2UgMTpHcC5oNXZjYy50cmFjZUV2ZW50LnRyYWNlRW5kKCJZVExSIixuKTticmVhaztjYXNlIDI6Vz1gJHtufS1zdGFydGA7bGV0IEQ9YCR7bn0tZW5kYDtHcC5wZXJmb3JtYW5jZS5tYXJrKEQpO0dwLnBlcmZvcm1hbmNlLm1lYXN1cmUobixXLEQpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0OmcucGIoVywidW5rbm93biB0cmFjZSB0eXBlIil9fTsKWUtqPWZ1bmN0aW9uKG4pe3ZhciBXPUFycmF5LmZyb20obi5OLmtleXMoKSkuc29ydCgoRCxiKT0+KG4uTltiXS5wcmlvcml0eT8/MCktKG4uTltEXS5wcmlvcml0eT8/MCkpOwpmb3IobGV0IEQgb2YgVylXPW4uTltEXSxXLmpvYklkPT09dm9pZCAwfHxXLk1KfHwobi5zY2hlZHVsZXIuc08oVy5qb2JJZCksZy5WeCgwLFcuSmEsMTApKX07CmZSMj1mdW5jdGlvbihuLFcsRCl7SEd0JiZjb25zb2xlLmdyb3VwQ29sbGFwc2VkJiZjb25zb2xlLmdyb3VwRW5kJiYoY29uc29sZS5ncm91cENvbGxhcHNlZChgWyR7bi5jb25zdHJ1Y3Rvci5uYW1lfV0gJyR7bi5zdGF0ZX0nIHRvICcke1d9J2ApLGNvbnNvbGUubG9nKCJ3aXRoIG1lc3NhZ2U6ICIsRCksY29uc29sZS5ncm91cEVuZCgpKX07ClNLQz1mdW5jdGlvbihuLFcpe3ZhciBEPVcuZmlsdGVyKHY9PihuLko/P3YucHJpb3JpdHk/PzApPT09MTApLGI9Vy5maWx0ZXIodj0+KG4uSj8/di5wcmlvcml0eT8/MCkhPT0xMCk7CnJldHVybiBuLlguS0c/YXN5bmMoLi4udik9Pnthd2FpdCBKdlooRCwuLi52KTtzOShuLGIsLi4udil9OiguLi52KT0+e0lSMShELC4uLnYpOwpzOShuLGIsLi4udil9fTsKSnZaPWFzeW5jIGZ1bmN0aW9uKG4sLi4uVyl7Zy5EeSgpO2ZvcihsZXQgRCBvZiBuKXtsZXQgYjthOSgoKT0+e05qKEQubmFtZSk7dmFyIHY9cFgoKCk9PkQuY2FsbGJhY2soLi4uVykpOwpZbyh2KT9iPWcubCgid2ViX2xpZmVjeWNsZV9lcnJvcl9oYW5kbGluZ19raWxsc3dpdGNoIik/di50aGVuKCgpPT57SEkoRC5uYW1lKX0pOnYudGhlbigoKT0+e0hJKEQubmFtZSl9LGs9Pnt3aW5kb3cub25lcnJvcj8uKGsubWVzc2FnZSwiIiwwLDAsayk7CkhJKEQubmFtZSl9KTpISShELm5hbWUpfSk7CmImJmF3YWl0IGJ9fTsKczk9ZnVuY3Rpb24obixXLC4uLkQpe1c9Vy5tYXAoYj0+KHtKYTooKT0+e05qKGIubmFtZSk7cFgoKCk9PmIuY2FsbGJhY2soLi4uRCkpOwpISShiLm5hbWUpfSwKcHJpb3JpdHk6bi5KPz9iLnByaW9yaXR5Pz8wfSkpOwpXLmxlbmd0aCYmKG4uVz1uZXcgQXZqKFcpKX07CklSMT1mdW5jdGlvbihuLC4uLlcpe2cuRHkoKTtmb3IobGV0IEQgb2YgbilhOSgoKT0+e05qKEQubmFtZSk7cFgoKCk9PkQuY2FsbGJhY2soLi4uVykpOwpISShELm5hbWUpfSl9OwpOaj1mdW5jdGlvbihuKXtmWCYmbiYmJG8obil9OwpIST1mdW5jdGlvbihuKXtmWCYmbiYmckUobil9OwpwWD1mdW5jdGlvbihuKXtpZihnLmwoIndlYl9saWZlY3ljbGVfZXJyb3JfaGFuZGxpbmdfa2lsbHN3aXRjaCIpKXJldHVybiBuKCk7dHJ5e3JldHVybiBuKCl9Y2F0Y2goVyl7d2luZG93Lm9uZXJyb3I/LihXLm1lc3NhZ2UsIiIsMCwwLFcpfX07CkliPWZ1bmN0aW9uKCl7SnB8fChKcD1uZXcgbUV3KTtyZXR1cm4gSnB9OwpBcD1mdW5jdGlvbigpe1NafHwoU1o9cHcoZy5BcigiV09SS0VSX1NFUklBTElaQVRJT05fVVJMIikpKTtyZXR1cm4gU1p8fHZvaWQgMH07CktYPWZ1bmN0aW9uKCl7dmFyIG49QXAoKTttM3x8bj09PXZvaWQgMHx8KG0zPVhNKG4pKTtyZXR1cm4gbTN9OwpaQT1mdW5jdGlvbihuLFcpe3ZhciBEPU85KFcpO2lmKG4uTltEXSlyZXR1cm4gbi5OW0RdO3ZhciBiPU9iamVjdC5rZXlzKG4uc3RvcmUpfHxbXTtpZihiLmxlbmd0aDw9MSYmTzkoVyk9PT1iWzBdKXJldHVybiBiO3ZhciB2PVtdO2ZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXtsZXQgeD1iW2hdLnNwbGl0KCIvIik7aWYoUEkoVy5hdXRoLHhbMF0pKXt2YXIgaz1XLmlzSnNwYjtQSShrPT09dm9pZCAwPyJ1bmRlZmluZWQiOms/InRydWUiOiJmYWxzZSIseFsxXSkmJlBJKFcuY3R0QXV0aEluZm8seFsyXSkmJihrPVcudGllcixrPWs9PT12b2lkIDA/InVuZGVmaW5lZCI6SlNPTi5zdHJpbmdpZnkoayksUEkoayx4WzNdKSYmdi5wdXNoKGJbaF0pKX19cmV0dXJuIG4uTltEXT12fTsKUEk9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09PXZvaWQgMHx8bj09PSJ1bmRlZmluZWQiPyEwOm49PT1XfTsKTzk9ZnVuY3Rpb24obil7cmV0dXJuW24uYXV0aD09PXZvaWQgMD8idW5kZWZpbmVkIjpuLmF1dGgsbi5pc0pzcGI9PT12b2lkIDA/InVuZGVmaW5lZCI6bi5pc0pzcGIsbi5jdHRBdXRoSW5mbz09PXZvaWQgMD8idW5kZWZpbmVkIjpuLmN0dEF1dGhJbmZvLG4udGllcj09PXZvaWQgMD8idW5kZWZpbmVkIjpuLnRpZXJdLmpvaW4oIi8iKX07ClU5PWZ1bmN0aW9uKCl7cmV0dXJuIGcubCgiaHRtbDVfc2VuZF9xb2Vfb25fZ2VsIil8fGcubCgid2ViX3NlbmRfdnNzM19pc29sYXRlZF9wYXlsb2FkIil9OwppeT1mdW5jdGlvbihuKXt5Uj1uO1U5KCkmJihnLnFpLnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yXz1uKTtFOT1uZXcgbn07CnV5PWZ1bmN0aW9uKG4pe3JldHVybiBuP246VTkoKT95Unx8Zy5xaS55dExvZ2dpbmdUcmFuc3BvcnRSZWdpc3RlcmVkQ2xpZW50Q3Rvcl98fG51bGw6bnVsbH07CmRFPWZ1bmN0aW9uKCl7dmFyIG49Zy5ycigieXQubG9nZ2luZy5pbXMiKTtufHwobj1uZXcgb2IsZy5HYigieXQubG9nZ2luZy5pbXMiLG4pKTtyZXR1cm4gbn07CktfMj1mdW5jdGlvbigpe2lmKHR5cGVvZiBXb3JrZXI9PT0iZnVuY3Rpb24iJiZBcCgpJiYhenApe3ZhciBuPUQ9PntEPUQuZGF0YTtpZihELm9wPT09InNlcmlhbGl6ZWRHZWxCYXRjaCIpe3ZhciBiPWx5LmdldChELmtleSk7YiYmKFRwKEQuc2VyaWFsaXplZEJhdGNoLGIuY2xpZW50LGIucmVzb2x2ZSxiLm5ldHdvcmtsZXNzT3B0aW9ucyxiLmlzSXNvbGF0ZWQsYi51c2VWU1NFbmRwb2ludCxiLmRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb24sYi5yZXF1ZXN0c091dHN0YW5kaW5nKSxseS5kZWxldGUoRC5rZXkpKX19LFc9S1goKTsKVyYmKFcuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbiksVy5vbmVycm9yPSgpPT57bHkuY2xlYXIoKX0pOwp6cD0hMH19OwpPR3g9ZnVuY3Rpb24obixXKXtpZihuLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe2paKG4pO3ZhciBEPUNYKG4pLGI9Qkkobi5wYXlsb2FkKXx8IiIsdj1GNChiKSxrPTIwMDtpZih2KXtpZih2LmVuYWJsZWQ9PT0hMSYmIWcubCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47az13RSh2LnRpZXIpO2lmKGs9PT00MDApe01qKG4sVyk7cmV0dXJufX1SYltEXT0hMDtEPXtjdHRBdXRoSW5mbzpELGlzSnNwYjohMSx0aWVyOmt9O2RFKCkuc3RvcmVQYXlsb2FkKEQsbi5wYXlsb2FkKTtRUihXLCExLEQsVlIoYikpfX07ClBXMT1mdW5jdGlvbihuLFcsRCl7aWYoVy5lbmRwb2ludD09PSJsb2dfZXZlbnQiKXtqWih2b2lkIDAsVyk7dmFyIGI9Q1goVywhMCksdj1GNChuKSxrPTIwMDtpZih2KXtpZih2LmVuYWJsZWQ9PT0hMSYmIWcubCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47az13RSh2LnRpZXIpO2lmKGs9PT00MDApe2NJKG4sVyxEKTtyZXR1cm59fVJiW2JdPSEwO2I9e2N0dEF1dGhJbmZvOmIsaXNKc3BiOiEwLHRpZXI6a307ZEUoKS5zdG9yZVBheWxvYWQoYixZdihXLnBheWxvYWQpKTtRUihELCEwLGIsVlIobikpfX07ClFSPWZ1bmN0aW9uKG4sVz0hMSxELGI9ITEpe24mJml5KG4pO249djAoInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2hfYWRzX2ZvcmsiKXx8djAoInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2giKXx8djAoIndlYl9sb2dnaW5nX21heF9iYXRjaCIpfHwxMDA7dmFyIHY9KDAsZy5SKSgpLGs9YWIoVyxELnRpZXIpLGg9ay5YO2ImJihrLk49ITApO2I9MDtEJiYoYj1kRSgpLmdldFNlcXVlbmNlQ291bnQoRCkpO2I+PTFFMz9uVSh7d3JpdGVUaGVuU2VuZDohMH0sVyxELnRpZXIpOmI+PW4/V3N8fChXcz1EdigoKT0+e25VKHt3cml0ZVRoZW5TZW5kOiEwfSxXLEQudGllcik7V3M9dm9pZCAwfSwwKSk6di1oPj0xMCYmKGJSKFcsRC50aWVyKSxrLlg9dil9OwpNaj1mdW5jdGlvbihuLFcpe2lmKG4uZW5kcG9pbnQ9PT0ibG9nX2V2ZW50Iil7Zy5sKCJtb3JlX2FjY3VyYXRlX2dlbF9wYXJzZXIiKSYmZEUoKS5zdG9yZVBheWxvYWQoe2lzSnNwYjohMX0sbi5wYXlsb2FkKTtqWihuKTt2YXIgRD1DWChuKSxiPW5ldyBNYXA7Yi5zZXQoRCxbbi5wYXlsb2FkXSk7dmFyIHY9Qkkobi5wYXlsb2FkKXx8IiI7KG49dXkoVykpJiZpeShuKTtyZXR1cm4gbmV3IGcuWDEoKGssaCk9PntFOSYmRTkuaXNSZWFkeSgpP3ZzKGIsRTksayxoLHtieXBhc3NOZXR3b3JrbGVzczohMH0sITAsVlIodikpOmsoKX0pfX07CmNJPWZ1bmN0aW9uKG4sVyxEKXtpZihXLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe2paKHZvaWQgMCxXKTt2YXIgYj1DWChXLCEwKSx2PW5ldyBNYXA7di5zZXQoYixbWXYoVy5wYXlsb2FkKV0pOyhXPXV5KEQpKSYmaXkoVyk7cmV0dXJuIG5ldyBnLlgxKGs9PntFOSYmRTkuaXNSZWFkeSgpP2tBKHYsRTksayx7YnlwYXNzTmV0d29ya2xlc3M6ITB9LCEwLFZSKG4pKTprKCl9KX19OwpDWD1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPSIiO2lmKG4uZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbilEPSJ2aXNpdG9yT25seUFwcHJvdmVkS2V5IjtlbHNlIGlmKG4uY3R0QXV0aEluZm8pe2lmKFcpe1c9bi5jdHRBdXRoSW5mby50b2tlbjtEPW4uY3R0QXV0aEluZm87bGV0IGI9bmV3IGg2O0QudmlkZW9JZD9iLnNldFZpZGVvSWQoRC52aWRlb0lkKTpELnBsYXlsaXN0SWQmJkQyKGIsMix4QSxXSChELnBsYXlsaXN0SWQpKTtMVVtXXT1ifWVsc2UgVz1uLmN0dEF1dGhJbmZvLEQ9e30sVy52aWRlb0lkP0QudmlkZW9JZD1XLnZpZGVvSWQ6Vy5wbGF5bGlzdElkJiYoRC5wbGF5bGlzdElkPVcucGxheWxpc3RJZCksZXlbbi5jdHRBdXRoSW5mby50b2tlbl09RDtEPW4uY3R0QXV0aEluZm8udG9rZW59cmV0dXJuIER9OwpuVT1mdW5jdGlvbihuPXt9LFc9ITEsRCl7bmV3IGcuWDEoKGIsdik9Pnt2YXIgaz1hYihXLEQpLGg9ay5OO2suTj0hMTtpZihnLmwoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpJiZnLmwoIndlYl92c3Nfcm91dGluZ19jaGVja19hbGxfdGllcl9wb2xpY2llcyIpKXtsZXQgeD1hYihXLDMwMCksTD1hYihXLDIwMCk7aD1ofHx4Lk58fEwuTjt4Lk49ITE7TC5OPSExfWc0KGsuVyk7ZzQoay5KKTtrLko9MDtFOSYmRTkuaXNSZWFkeSgpP0Q9PT12b2lkIDAmJmcubCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/cTEoYix2LG4sVywzMDAsaCk6cTEoYix2LG4sVyxELGgpOihiUihXLEQpLGIoKSl9KX07CnExPWZ1bmN0aW9uKG4sVyxEPXt9LGI9ITEsdj0yMDAsaz0hMSl7dmFyIGg9RTkseD1uZXcgTWFwLEw9bmV3IE1hcCxlPXtpc0pzcGI6YixjdHRBdXRoSW5mbzp2b2lkIDAsdGllcjp2fSxHPXtpc0pzcGI6YixjdHRBdXRoSW5mbzp2b2lkIDB9O2lmKGIpe2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyhSYikpVz1nLmwoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpP2RFKCkuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtrZXlzOltlLEddLHNpemVMaW1pdDoxRTN9KTpkRSgpLmV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2lzSnNwYjohMCxjdHRBdXRoSW5mbzpyfSksVy5sZW5ndGg+MCYmeC5zZXQocixXKSwoZy5sKCJ3ZWJfZnBfdmlhX2pzcGJfYW5kX2pzb24iKSYmRC53cml0ZVRoZW5TZW5kfHwhZy5sKCJ3ZWJfZnBfdmlhX2pzcGJfYW5kX2pzb24iKSkmJmRlbGV0ZSBSYltyXTtrQSh4LGgsbixELCExLGspfWVsc2V7Zm9yKGxldCByIG9mIE9iamVjdC5rZXlzKFJiKSl4PWcubCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/CmRFKCkuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtrZXlzOlt7aXNKc3BiOiExLGN0dEF1dGhJbmZvOnIsdGllcjp2fSx7aXNKc3BiOiExLGN0dEF1dGhJbmZvOnJ9XSxzaXplTGltaXQ6MUUzfSk6ZEUoKS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtpc0pzcGI6ITEsY3R0QXV0aEluZm86cn0pLHgubGVuZ3RoPjAmJkwuc2V0KHIseCksKGcubCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikmJkQud3JpdGVUaGVuU2VuZHx8IWcubCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikpJiZkZWxldGUgUmJbcl07dnMoTCxoLG4sVyxELCExLGspfX07CmJSPWZ1bmN0aW9uKG49ITEsVz0yMDApe3ZhciBEPSgpPT57blUoe3dyaXRlVGhlblNlbmQ6ITB9LG4sVyl9LGI9YWIobixXKSx2PWI9PT1HVXx8Yj09PXQ2PzVFMzpaR1o7CmcubCgid2ViX2dlbF90aW1lb3V0X2NhcCIpJiYhYi5KJiYodj1EdigoKT0+e0QoKX0sdiksYi5KPXYpOwpnNChiLlcpO3Y9Zy5BcigiTE9HR0lOR19CQVRDSF9USU1FT1VUIix2MCgid2ViX2dlbF9kZWJvdW5jZV9tcyIsMUU0KSk7Zy5sKCJzaG9ydGVuX2luaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiKSYmJEEmJih2PVVFdyk7dj1EdigoKT0+e3YwKCJnZWxfbWluX2JhdGNoX3NpemUiKT4wP2RFKCkuZ2V0U2VxdWVuY2VDb3VudCh7Y3R0QXV0aEluZm86dm9pZCAwLGlzSnNwYjpuLHRpZXI6V30pPj15dlMmJkQoKTpEKCl9LHYpOwpiLlc9dn07CnZzPWZ1bmN0aW9uKG4sVyxELGIsdj17fSxrLGgpe3ZhciB4PU1hdGgucm91bmQoKDAsZy5SKSgpKSxMPW4uc2l6ZSxlPXI0KGgpO2ZvcihsZXQgW0cscl1vZiBuKXtuPUc7aD1yO2xldCBOPWcuTmMoe2NvbnRleHQ6Zy5VSihXLmNvbmZpZ198fGcuUzkoKSl9KTtpZighZy5ZMihoKSYmIWcubCgidGhyb3dfZXJyX3doZW5fbG9nZXZlbnRfbWFsZm9ybWVkX2tpbGxzd2l0Y2giKSl7YigpO2JyZWFrfU4uZXZlbnRzPWg7KGg9ZXlbbl0pJiZFdkMoTixuLGgpO2RlbGV0ZSBleVtuXTtsZXQgSD1uPT09InZpc2l0b3JPbmx5QXBwcm92ZWRLZXkiO2lHaihOLHgsSCk7c3kodik7bGV0IEE9ej0+e2cubCgic3RhcnRfY2xpZW50X2djZiIpJiZ0YS5MUyhhc3luYygpPT57YXdhaXQgTjEoeil9KTsKTC0tO0x8fEQoKX0seT0wLFQ9KCk9Pnt5Kys7CmlmKHYuYnlwYXNzTmV0d29ya2xlc3MmJnk9PT0xKXRyeXtnLklJKFcsZSxOLHBVKHt3cml0ZVRoZW5TZW5kOiEwfSxILEEsVCxrKSksJEE9ITF9Y2F0Y2goeil7T3QoeiksYigpfUwtLTtMfHxEKCl9Owp0cnl7Zy5JSShXLGUsTixwVSh2LEgsQSxULGspKSwkQT0hMX1jYXRjaCh6KXtPdCh6KSxiKCl9fX07CmtBPWZ1bmN0aW9uKG4sVyxELGI9e30sdixrKXt2YXIgaD1NYXRoLnJvdW5kKCgwLGcuUikoKSkseD17dmFsdWU6bi5zaXplfSxMPW5ldyBNYXAoWy4uLm5dKTtmb3IobGV0IFtUXW9mIEwpe3ZhciBlPVQsRz1uLmdldChlKTtMPW5ldyB1RjI7dmFyIHI9Vy5jb25maWdffHxnLlM5KCksTj1uZXcgWUEsSD1uZXcgSHM7Zy5TRShILDEsci5NYik7Zy5TRShILDIsci5FRSk7S24oSCwxNixyLkZkKTtnLlNFKEgsMTcsci5pbm5lcnR1YmVDb250ZXh0Q2xpZW50VmVyc2lvbik7aWYoci5jUil7dmFyIEE9ci5jUix5PW5ldyBpOTtBLmNvbGRDb25maWdEYXRhJiZnLlNFKHksMSxBLmNvbGRDb25maWdEYXRhKTtBLmFwcEluc3RhbGxEYXRhJiZnLlNFKHksNixBLmFwcEluc3RhbGxEYXRhKTtBLmNvbGRIYXNoRGF0YSYmZy5TRSh5LDMsQS5jb2xkSGFzaERhdGEpO0EuaG90SGFzaERhdGEmJnkuVyhBLmhvdEhhc2hEYXRhKTskOShILGk5LDYyLHkpfShBPWcucWkuZGV2aWNlUGl4ZWxSYXRpbykmJgpBIT0xJiZveihILDY1LGcuQV8oQSkpO0E9a1QoKTtBIT09IiImJmcuU0UoSCw1NCxBKTtBPWh5KCk7aWYoQS5sZW5ndGg+MCl7eT1uZXcgZlU7Zm9yKGxldCB6PTA7ejxBLmxlbmd0aDt6Kyspe2xldCBDPW5ldyBKNjtnLlNFKEMsMSxBW3pdLmtleSk7RDIoQywyLEl2LFdIKEFbel0udmFsdWUpKTtOSCh5LDE1LEo2LEMpfSQ5KE4sZlUsNSx5KX1BNyhyLEgpO21UKE4pO0tQKEgpO09KKHIsSCk7UHooSCk7Zy5sKCJzdGFydF9jbGllbnRfZ2NmIikmJlptKEgpO2cuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikmJiFnLmwoInBhZ2VpZF9hc19oZWFkZXJfd2ViIikmJihyPW5ldyBTeSxnLlNFKHIsMyxnLkFyKCJERUxFR0FURURfU0VTU0lPTl9JRCIpKSk7IWcubCgiZmlsbF9kZWxlZ2F0ZV9jb250ZXh0X2luX2dlbF9raWxsc3dpdGNoIikmJihBPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIikpJiYoeT1nZShOLFN5LDMpfHxuZXcgU3ksCnI9TixBPWcuU0UoeSwxOCxBKSwkOShyLFN5LDMsQSkpO3I9SDtBPWcuQXIoIkRFVklDRSIsIiIpO2ZvcihsZXQgW3osQ11vZiBPYmplY3QuZW50cmllcyhnLml3KEEpKSlBPXosQT09PSJjYnJhbmQiP2cuU0UociwxMixDKTpBPT09ImNtb2RlbCI/Zy5TRShyLDEzLEMpOkE9PT0iY2JyIj9nLlNFKHIsODcsQyk6QT09PSJjYnJ2ZXIiP2cuU0Uociw4OCxDKTpBPT09ImNvcyI/Zy5TRShyLDE4LEMpOkE9PT0iY29zdmVyIj9nLlNFKHIsMTksQyk6QT09PSJjcGxhdGZvcm0iJiZLbihyLDQyLGhxaChDKSk7Zy5sKCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYob3ooSCw1NSxnLnlQKHdpbmRvdy5pbm5lcldpZHRoKSksb3ooSCw1NixnLnlQKHdpbmRvdy5pbm5lckhlaWdodCkpKTtOLlcoSCk7JDkoTCxZQSwxLE4pO2lmKEg9TFVbZV0pYTp7aWYoSC5FMSgpKU49MTtlbHNlIGlmKEguZ2V0UGxheWxpc3RJZCgpKU49MjtlbHNlIGJyZWFrIGE7JDkoTCxoNiw0LEgpO0g9Z2UoTCwKWUEsMSl8fG5ldyBZQTtyPWdlKEgsU3ksMyl8fG5ldyBTeTtBPW5ldyBBNjtBLnNldFRva2VuKGUpO0tuKEEsMSxOKTtOSChyLDEyLEE2LEEpOyQ5KEgsU3ksMyxyKX1kZWxldGUgTFVbZV07ZT1lPT09InZpc2l0b3JPbmx5QXBwcm92ZWRLZXkiO21yKCl8fElZKEwsMixoKTshZSYmKE49Zy5BcigiRVZFTlRfSUQiKSkmJihIPUtVKCkscj1uZXcgT3ksZy5TRShyLDEsTiksSVkociwyLEgpLCQ5KEwsT3ksNSxyKSk7c3koYik7aWYoZy5sKCJqc3BiX3NlcmlhbGl6ZV93aXRoX3dvcmtlciIpJiYoTj1LWCgpKSYmYi53cml0ZVRoZW5TZW5kKXtseS5zZXQoUHMse2NsaWVudDpXLHJlc29sdmU6RCxuZXR3b3JrbGVzc09wdGlvbnM6Yixpc0lzb2xhdGVkOnYsdXNlVlNTRW5kcG9pbnQ6ayxkYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9uOmUscmVxdWVzdHNPdXRzdGFuZGluZzp4fSk7Ti5wb3N0TWVzc2FnZSh7b3A6ImdlbEJhdGNoVG9TZXJpYWxpemUiLGJhdGNoUmVxdWVzdDpZdihMKSxjbGllbnRFdmVudHM6RywKa2V5OlBzfSk7UHMrKzticmVha31pZihHKXtOPVtdO2ZvcihIPTA7SDxHLmxlbmd0aDtIKyspdHJ5e04ucHVzaChuZXcgWnYoR1tIXSkpfWNhdGNoe090KG5ldyBnLlF4KCJUcmFuc3BvcnQgZmFpbGVkIHRvIGRlc2VyaWFsaXplICIrU3RyaW5nKEdbSF0pKSl9Rz1OfWVsc2UgRz1bXTtmb3IobGV0IHogb2YgRylOSChMLDMsWnYseik7Rz17c3RhcnRUaW1lOigwLGcuUikoKSx0aWNrczp7fSxpbmZvczp7fX07TD1MLmJZKCk7Ry50aWNrcy5nZWxqc3BjPSgwLGcuUikoKTtnLmwoImxvZ19qc3BiX3NlcmlhbGl6ZV9sYXRlbmN5IikmJkYzKCJnZWxfanNwYl9zZXJpYWxpemUiLEcse3NhbXBsZVJhdGU6LjF9KTtUcChMLFcsRCxiLHYsayxlLHgpfX07ClRwPWZ1bmN0aW9uKG4sVyxELGI9e30sdixrLGgseD17dmFsdWU6MH0pe2s9cjQoayk7Yj1wVShiLGgsTD0+e2cubCgic3RhcnRfY2xpZW50X2djZiIpJiZ0YS5MUyhhc3luYygpPT57YXdhaXQgTjEoTCl9KTsKeC52YWx1ZS0tO3gudmFsdWV8fEQoKX0sKCk9Pnt4LnZhbHVlLS07CngudmFsdWV8fEQoKX0sdik7CmIuaGVhZGVyc1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24rcHJvdG9idWYiO2IucG9zdEJvZHlGb3JtYXQ9IkpTUEIiO2IucG9zdEJvZHk9bjtnLklJKFcsaywiIixiKTskQT0hMX07CnN5PWZ1bmN0aW9uKG4pe2cubCgiYWx3YXlzX3NlbmRfYW5kX3dyaXRlIikmJihuLndyaXRlVGhlblNlbmQ9ITEpfTsKcFU9ZnVuY3Rpb24obixXLEQsYix2KXtuPXtyZXRyeTohMCxvblN1Y2Nlc3M6RCxvbkVycm9yOmIsbmV0d29ya2xlc3NPcHRpb25zOm4sZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbjpXLFRVOiEhdixoZWFkZXJzOnt9LHBvc3RCb2R5Rm9ybWF0OiIiLHBvc3RCb2R5OiIiLGNvbXByZXNzOmcubCgiY29tcHJlc3NfZ2VsIil8fGcubCgiY29tcHJlc3NfZ2VsX2xyIil9O21yKCkmJihuLmhlYWRlcnNbIlgtR29vZy1SZXF1ZXN0LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLGcuUikoKSkpKTtyZXR1cm4gbn07CmlHaj1mdW5jdGlvbihuLFcsRCl7bXIoKXx8KG4ucmVxdWVzdFRpbWVNcz1TdHJpbmcoVykpO2cubCgidW5zcGxpdF9nZWxfcGF5bG9hZHNfaW5fbG9ncyIpJiYobi51bnNwbGl0R2VsUGF5bG9hZHNJbkxvZ3M9ITApOyFEJiYoVz1nLkFyKCJFVkVOVF9JRCIpKSYmKEQ9S1UoKSxuLnNlcmlhbGl6ZWRDbGllbnRFdmVudElkPXtzZXJpYWxpemVkRXZlbnRJZDpXLGNsaWVudENvdW50ZXI6U3RyaW5nKEQpfSl9OwpLVT1mdW5jdGlvbigpe3ZhciBuPWcuQXIoIkJBVENIX0NMSUVOVF9DT1VOVEVSIil8fDA7bnx8KG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjY1NTM1LzIpKTtuKys7bj42NTUzNSYmKG49MSk7Zy5TSCgiQkFUQ0hfQ0xJRU5UX0NPVU5URVIiLG4pO3JldHVybiBufTsKRXZDPWZ1bmN0aW9uKG4sVyxEKXtpZihELnZpZGVvSWQpdmFyIGI9IlZJREVPIjtlbHNlIGlmKEQucGxheWxpc3RJZCliPSJQTEFZTElTVCI7ZWxzZSByZXR1cm47bi5jcmVkZW50aWFsVHJhbnNmZXJUb2tlblRhcmdldElkPUQ7bi5jb250ZXh0PW4uY29udGV4dHx8e307bi5jb250ZXh0LnVzZXI9bi5jb250ZXh0LnVzZXJ8fHt9O24uY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOlcsc2NvcGU6Yn1dfTsKalo9ZnVuY3Rpb24obixXKXt2YXIgRD1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5lbmFibGVTY3JhcGluZ0ZvclRlc3QiKSxiPWJiKCJpbF9wYXlsb2FkX3NjcmFwaW5nIik7Yj0oYiE9PXZvaWQgMD9TdHJpbmcoYik6IiIpPT09ImVuYWJsZV9pbF9wYXlsb2FkX3NjcmFwaW5nIjtpZighRClpZihiKVV5PVtdLGcuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmVuYWJsZVNjcmFwaW5nRm9yVGVzdCIsITApLGcuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLFV5KSxnLkdiKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5wYXlsb2FkVG9TY3JhcGUiLCJ2aXN1YWxFbGVtZW50U2hvd24gdmlzdWFsRWxlbWVudEhpZGRlbiB2aXN1YWxFbGVtZW50QXR0YWNoZWQgc2NyZWVuQ3JlYXRlZCB2aXN1YWxFbGVtZW50R2VzdHVyZWQgdmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZCIuc3BsaXQoIiAiKSksZy5HYigieXQubG9nZ2luZy50cmFuc3BvcnQuZ2V0U2NyYXBlZFBheWxvYWRGcm9tQ2xpZW50RXZlbnRzRnVuY3Rpb24iKSwKZy5HYigieXQubG9nZ2luZy50cmFuc3BvcnQuc2NyYXBlQ2xpZW50RXZlbnQiLCEwKTtlbHNlIHJldHVybjtEPWcucnIoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciKTtiPWcucnIoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnBheWxvYWRUb1NjcmFwZSIpO1cmJihXPVcucGF5bG9hZCwoVz1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5nZXRTY3JhcGVkUGF5bG9hZEZyb21DbGllbnRFdmVudHNGdW5jdGlvbiIpLmJpbmQoVykoKSkmJkQucHVzaChXKSk7Vz1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVDbGllbnRFdmVudCIpO2lmKGImJmIubGVuZ3RoPj0xKWZvcihsZXQgdj0wO3Y8Yi5sZW5ndGg7disrKW4mJm4ucGF5bG9hZFtiW3ZdXSYmKFc/RC5wdXNoKG4ucGF5bG9hZCk6RC5wdXNoKChuPy5wYXlsb2FkKVtiW3ZdXSkpO2cuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLEQpfTsKbXI9ZnVuY3Rpb24oKXtyZXR1cm4gZy5sKCJ1c2VfcmVxdWVzdF90aW1lX21zX2hlYWRlciIpfHxnLmwoImxyX3VzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIil9OwpEdj1mdW5jdGlvbihuLFcpe3JldHVybiBnLmwoInRyYW5zcG9ydF91c2Vfc2NoZWR1bGVyIik9PT0hMT9nLm4kKG4sVyk6Zy5sKCJsb2dnaW5nX2F2b2lkX2Jsb2NraW5nX2R1cmluZ19uYXZpZ2F0aW9uIil8fGcubCgibHJfbG9nZ2luZ19hdm9pZF9ibG9ja2luZ19kdXJpbmdfbmF2aWdhdGlvbiIpP2cuY0IoMCwoKT0+e0liKCkuY3VycmVudFN0YXRlPT09Im5vbmUiP24oKTpJYigpLmluc3RhbGwoe25vbmU6e2NhbGxiYWNrOm59fSl9LFcpOmcuY0IoMCxuLFcpfTsKZzQ9ZnVuY3Rpb24obil7Zy5sKCJ0cmFuc3BvcnRfdXNlX3NjaGVkdWxlciIpP3RhLnNPKG4pOndpbmRvdy5jbGVhclRpbWVvdXQobil9OwpOMT1hc3luYyBmdW5jdGlvbihuKXtuPW4/LnJlc3BvbnNlQ29udGV4dD8uZ2xvYmFsQ29uZmlnR3JvdXA7dmFyIFc9Zy53KG4sb3Z0KSxEPW4/LmhvdEhhc2hEYXRhLGI9Zy53KG4sZEUyKSx2PW4/LmNvbGRIYXNoRGF0YSxrPWcucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpO2smJihEJiYoVz9hd2FpdCBIeihrLEQsVyk6YXdhaXQgSHooayxEKSksdiYmKGI/YXdhaXQgZlAoayx2LGIpOmF3YWl0IGZQKGssdikpKTtXPW4/LnJhd0ZpbmNoU3RhdGljQ29uZmlnR3JvdXA7KG49bj8uZmluY2hTdGF0aWNIYXNoRGF0YSk/KEQ9Zy5xaigpLnJlc29sdmUoZy5ocCh6X3QpKSk/YXdhaXQgRC5OVSh7Y29uZmlnOld8fHt9LFlVOm58fCIifSk6KFd8fG4pJiZaRShuZXcgZy5ReCgiRmluY2hDb25maWdNYW5hZ2VyU2VydmljZSBpcyBub3QgcHJlc2VudCwgYnV0IEZpbmNoIGNvbmZpZyBkYXRhIGlzIHByZXNlbnQuIikpOlcmJlpFKG5ldyBnLlF4KCJGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LCBidXQgaGFzaCBpcyBtaXNzaW5nLiIpKX07CmFiPWZ1bmN0aW9uKG4sVz0yMDApe3JldHVybiBuP1c9PT0zMDA/R1U6bFJDOlc9PT0zMDA/dDY6VGdpfTsKRjQ9ZnVuY3Rpb24obil7aWYoZy5sKCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSl7bj15NFtufHwiIl07dmFyIFc9Zy5xaigpLnJlc29sdmUoZy5ocChnLlgzKSk/LkxYKCk/LmxvZ2dpbmdIb3RDb25maWc/LmV2ZW50TG9nZ2luZ0NvbmZpZz8ucGF5bG9hZFBvbGljaWVzO2lmKFcpZm9yKGxldCBEPTA7RDxXLmxlbmd0aDtEKyspaWYoV1tEXS5wYXlsb2FkTnVtYmVyPT09bilyZXR1cm4gV1tEXX19OwpCST1mdW5jdGlvbihuKXtuPU9iamVjdC5rZXlzKG4pO2ZvcihsZXQgVyBvZiBuKWlmKHk0W1ddKXJldHVybiBXfTsKd0U9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9VTlNQRUNJRklFRCI6cmV0dXJuIDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RFRkFVTFQiOnJldHVybiAxMDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RJU1BBVENIX1RPX0VNUFRZIjpyZXR1cm4gMjAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9GQVNUIjpyZXR1cm4gMzAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9JTU1FRElBVEUiOnJldHVybiA0MDA7ZGVmYXVsdDpyZXR1cm4gMjAwfX07ClZSPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09ImdlbERlYnVnZ2luZ0V2ZW50Inx8bj09PSJ3YXRjaFRpbWVTZWdtZW50In07CnI0PWZ1bmN0aW9uKG49ITEpe3JldHVybiBuJiZnLmwoInZzc190aHJvdWdoX2dlbF92aWRlb19zdGF0cyIpPyJ2aWRlb19zdGF0cyI6ImxvZ19ldmVudCJ9Owp1Uj1mdW5jdGlvbihuLFcsRCxiPXt9KXt2YXIgdj17fSxrPU1hdGgucm91bmQoYi50aW1lc3RhbXB8fCgwLGcuUikoKSk7di5ldmVudFRpbWVNcz1rPE51bWJlci5NQVhfU0FGRV9JTlRFR0VSP2s6MDt2W25dPVc7bj1nLnZJKCk7di5jb250ZXh0PXtsYXN0QWN0aXZpdHlNczpTdHJpbmcoYi50aW1lc3RhbXB8fCFpc0Zpbml0ZShuKT8tMTpuKX07Yi5zZXF1ZW5jZUdyb3VwJiYhZy5sKCJ3ZWJfZ2VsX3NlcXVlbmNlX2luZm9fa2lsbHN3aXRjaCIpJiYobj12LmNvbnRleHQsVz1iLnNlcXVlbmNlR3JvdXAsVz17aW5kZXg6RXkoVyksZ3JvdXBLZXk6V30sbi5zZXF1ZW5jZT1XLGIuZW5kT2ZTZXF1ZW5jZSYmZGVsZXRlIGlSW2Iuc2VxdWVuY2VHcm91cF0pO2cubCgid2ViX3RhZ19hdXRvbWF0ZWRfbG9nX2V2ZW50cyIpJiYodi5jb250ZXh0LmF1dG9tYXRlZExvZ0V2ZW50U291cmNlPWIuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpOyhiLnNlbmRJc29sYXRlZFBheWxvYWQ/TWo6T0d4KSh7ZW5kcG9pbnQ6ImxvZ19ldmVudCIsCnBheWxvYWQ6dixjdHRBdXRoSW5mbzpiLmN0dEF1dGhJbmZvLGRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb246Yi5kYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9ufSxEKX07Cm92PWZ1bmN0aW9uKG49ITEpe25VKHZvaWQgMCxuKX07CkV5PWZ1bmN0aW9uKG4pe2lSW25dPW4gaW4gaVI/aVJbbl0rMTowO3JldHVybiBpUltuXX07CmcuelU9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPWcuZDQ7Zy5BcigieXRMb2dnaW5nRXZlbnRzRGVmYXVsdERpc2FibGVkIiwhMSkmJmcuZDQ9PT1nLmQ0JiYoYj1udWxsKTt1UihuLFcsYixEKX07ClRVPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgbFIoe3RyYWNraW5nUGFyYW1zOm59KX07Cmp5PWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD1qelorKztyZXR1cm4gbmV3IGxSKHt2ZVR5cGU6bix2ZUNvdW50ZXI6aCxlbGVtZW50SW5kZXg6RCxkYXRhRWxlbWVudDpXLHlvdXR1YmVEYXRhOmIsanNwYllvdXR1YmVEYXRhOnYsbG9nZ2luZ0RpcmVjdGl2ZXM6a30pfTsKQ1U9ZnVuY3Rpb24obj0wKXtyZXR1cm4gZy5BcigiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIse30pW25dfTsKQ1dpPWZ1bmN0aW9uKG4sVz0wKXt2YXIgRD1nLkFyKCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIik7RHx8KEQ9e30sZy5TSCgiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIsRCkpO0RbV109bn07CkJzPWZ1bmN0aW9uKG49MCl7cmV0dXJuIG49PT0wPyJST09UX1ZFX1RZUEUiOmBST09UX1ZFX1RZUEUuJHtufWB9OwpGUj1mdW5jdGlvbihuPTApe3JldHVybiBnLkFyKEJzKG4pKX07Cnc0PWZ1bmN0aW9uKG49MCl7cmV0dXJuKG49RlIobikpP25ldyBsUih7dmVUeXBlOm4seW91dHViZURhdGE6dm9pZCAwLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTpudWxsfTsKTTE9ZnVuY3Rpb24oKXt2YXIgbj1nLkFyKCJjc24tdG8tY3R0LWF1dGgtaW5mbyIpO258fChuPXt9LGcuU0goImNzbi10by1jdHQtYXV0aC1pbmZvIixuKSk7cmV0dXJuIG59OwpCZ3I9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhnLkFyKCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIix7fSkpLmZpbHRlcihuPT5uIT09dm9pZCAwKX07CmcuUnY9ZnVuY3Rpb24obj0wKXtuPUNVKG4pO2lmKCFuJiYhZy5BcigiVVNFX0NTTl9GQUxMQkFDSyIsITApKXJldHVybiBudWxsO258fChuPSJVTkRFRklORURfQ1NOIik7cmV0dXJuIG4/bjpudWxsfTsKd0hDPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBPYmplY3QudmFsdWVzKEZfVSkpaWYoZy5SdihXKT09PW4pcmV0dXJuITA7cmV0dXJuITF9OwpNV3c9ZnVuY3Rpb24obixXLEQpe3ZhciBiPU0xKCk7KEQ9Zy5SdihEKSkmJmRlbGV0ZSBiW0RdO1cmJihiW25dPVcpfTsKUTQ9ZnVuY3Rpb24obil7cmV0dXJuIE0xKClbbl19Owpjcz1mdW5jdGlvbihuLFcsRD0wLGIpe2lmKG4hPT1DVShEKXx8VyE9PWcuQXIoQnMoRCkpKWlmKE1XdyhuLGIsRCksQ1dpKG4sRCksZy5TSChCcyhEKSxXKSxXPSgpPT57c2V0VGltZW91dCgoKT0+e24mJmcuelUoImZvcmVncm91bmRIZWFydGJlYXRTY3JlZW5Bc3NvY2lhdGVkIix7Y2xpZW50RG9jdW1lbnROb25jZTpWNCxjbGllbnRTY3JlZW5Ob25jZTpufSl9LDApfSwicmVxdWVzdEFuaW1hdGlvbkZyYW1lImluIHdpbmRvdyl0cnl7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShXKX1jYXRjaCh2KXtXKCl9ZWxzZSBXKCl9OwpuND1mdW5jdGlvbihuLFcpe3ZhciBEPWcuQXIoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pLGI9Zy5JUCh3aW5kb3cubG9jYXRpb24uaHJlZik7YiYmRC5wdXNoKGIpO2I9Zy5JUChuKTtpZihnLmpqKEQsYil8fCFiJiZnLmpVKG4sIi8iKSlpZihEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxnLk5VKEQsbiksbj1ELmhyZWYpaWYobj1tVyhuKSxuPUtwKG4pKWlmKCFXLmNzbiYmKFcuaXRjdHx8Vy52ZWQpJiYoVz1PYmplY3QuYXNzaWduKHtjc246Zy5SdigpfSxXKSksdil7dmFyIHY9cGFyc2VJbnQodiwxMCk7aXNGaW5pdGUodikmJnY+MCYmYXYobixXLHYpfWVsc2UgYXYobixXKX07CmF2PWZ1bmN0aW9uKG4sVyxEKXtuPVdhKG4pO1c9Vz95RyhXKToiIjtEPUR8fDU7Zy5hSygpJiZJSyhuLFcsRCl9OwpXYT1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgUl9NKW49VDUobixXKTtyZXR1cm4iU1QtIitzVChuKS50b1N0cmluZygzNil9OwpnLkRwPWZ1bmN0aW9uKG4pe2lmKG4uc2ltcGxlVGV4dClyZXR1cm4gbi5zaW1wbGVUZXh0O2lmKG4ucnVucyl7bGV0IFc9W107Zm9yKGxldCBEIG9mIG4ucnVucylELnRleHQmJlcucHVzaChELnRleHQpO3JldHVybiBXLmpvaW4oIiIpfXJldHVybiIifTsKZy5iZz1mdW5jdGlvbihuKXtpZihuLnNpbXBsZVRleHQpcmV0dXJuIG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobi5zaW1wbGVUZXh0KSxuO3ZhciBXPVtdO2lmKG4ucnVucylmb3IobGV0IHg9MDt4PG4ucnVucy5sZW5ndGg7eCsrKXt2YXIgRD1uLnJ1bnNbeF07aWYoRC50ZXh0KXt2YXIgYj1XLHY9Yi5wdXNoLGs9bnVsbDt2YXIgaD1ELnRleHQ7RC5ib2xkJiYoaz1nLmRtKCJCIixudWxsLGt8fGgpKTtELml0YWxpY3MmJihrPWcuZG0oIkkiLG51bGwsa3x8aCkpO0Quc3RyaWtldGhyb3VnaCYmKGs9Zy5kbSgiU1RSSUtFIixudWxsLGt8fGgpKTtELm5hdmlnYXRpb25FbmRwb2ludCYmRC5uYXZpZ2F0aW9uRW5kcG9pbnQudXJsRW5kcG9pbnQmJihEPUQubmF2aWdhdGlvbkVuZHBvaW50LnVybEVuZHBvaW50LGs9Zy5kbSgiQSIsbnVsbCxrfHxoKSxnLk5VKGssRC51cmwpLEQudGFyZ2V0PT0iVEFSR0VUX05FV19XSU5ET1ciJiYoay50YXJnZXQ9Il9ibGFuayIpKTtoPWt8fGcuZG0oIlNQQU4iLApudWxsLGgpO3YuY2FsbChiLGgpfX1yZXR1cm4gVy5sZW5ndGg9PTE/V1swXTpnLmRtKCJTUEFOIixudWxsLFcpfTsKUXoxPWZ1bmN0aW9uKG4pe2lmKG4ubmFtZT09PSJKYXZhRXhjZXB0aW9uIilyZXR1cm4hMDtuPW4uc3RhY2s7cmV0dXJuIG4uaW5jbHVkZXMoImNocm9tZTovLyIpfHxuLmluY2x1ZGVzKCItZXh0ZW5zaW9uOi8vIil8fG4uaW5jbHVkZXMoIndlYmtpdC1tYXNrZWQtdXJsOi8vIil9OwpWV3g9ZnVuY3Rpb24obil7aWYoIW4uc3RhY2spcmV0dXJuITA7dmFyIFc9IW4uc3RhY2suaW5jbHVkZXMoIlxuIik7cmV0dXJuIFcmJm4uc3RhY2suaW5jbHVkZXMoIkVycm9yVHlwZTogIil8fFcmJm4uc3RhY2suaW5jbHVkZXMoIkFub255bW91cyBmdW5jdGlvbiAoVW5rbm93biBzY3JpcHQiKXx8bi5zdGFjay50b0xvd2VyQ2FzZSgpPT09Im5vdCBhdmFpbGFibGUifHxuLmZpbGVOYW1lPT09InVzZXItc2NyaXB0Inx8bi5maWxlTmFtZS5zdGFydHNXaXRoKCJ1c2VyLXNjcmlwdDoiKT8hMDohMX07CmhQPWZ1bmN0aW9uKCl7aWYoIXZhKXt2YXIgbj12YT1uZXcgY3ZoO24uTjkubGVuZ3RoPTA7bi5rby5sZW5ndGg9MDtrQihuLGFSUyl9cmV0dXJuIHZhfTsKa0I9ZnVuY3Rpb24obixXKXtXLk45JiZuLk45LnVuc2hpZnQuYXBwbHkobi5OOSxXLk45KTtXLmtvJiZuLmtvLnVuc2hpZnQuYXBwbHkobi5rbyxXLmtvKX07Cm45dz1mdW5jdGlvbihuKXt2YXIgVz1uLmxlbmd0aCxEPTAsYj0oKT0+bi5jaGFyQ29kZUF0KEQrKyk7CmRve3ZhciB2PXhCKGIpO2lmKHY9PT1JbmZpbml0eSlicmVhaztsZXQgaz12Pj4zO3N3aXRjaCh2Jjcpe2Nhc2UgMDp2PXhCKGIpO2lmKGs9PT0yKXJldHVybiB2O2JyZWFrO2Nhc2UgMTppZihrPT09MilyZXR1cm47RCs9ODticmVhaztjYXNlIDI6dj14QihiKTtpZihrPT09MilyZXR1cm4gbi5zdWJzdHIoRCx2KTtEKz12O2JyZWFrO2Nhc2UgNTppZihrPT09MilyZXR1cm47RCs9NDticmVhaztkZWZhdWx0OnJldHVybn19d2hpbGUoRDxXKX07CnhCPWZ1bmN0aW9uKG4pe3ZhciBXPW4oKSxEPVcmMTI3O2lmKFc8MTI4KXJldHVybiBEO1c9bigpO0R8PShXJjEyNyk8PDc7aWYoVzwxMjgpcmV0dXJuIEQ7Vz1uKCk7RHw9KFcmMTI3KTw8MTQ7aWYoVzwxMjgpcmV0dXJuIEQ7Vz1uKCk7cmV0dXJuIFc8MTI4P0R8KFcmMTI3KTw8MjE6SW5maW5pdHl9OwpnSz1mdW5jdGlvbihuLFcsRCxiKXtpZihuKWlmKEFycmF5LmlzQXJyYXkobikpe3ZhciB2PWI7Zm9yKGI9MDtiPG4ubGVuZ3RoJiYhKG5bYl0mJih2Kz1MNChiLG5bYl0sVyxEKSx2PjUwMCkpO2IrKyk7Yj12fWVsc2UgaWYodHlwZW9mIG49PT0ib2JqZWN0Iilmb3IodiBpbiBuKXtpZihuW3ZdKXthOnt2YXIgaz12O3ZhciBoPW5bdl0seD1XLEw9RDtpZih0eXBlb2YgaCE9PSJzdHJpbmcifHxrIT09ImNsaWNrVHJhY2tpbmdQYXJhbXMiJiZrIT09InRyYWNraW5nUGFyYW1zIil7az0wO2JyZWFrIGF9az0oaD1uOXcoYXRvYihoLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKSkpP0w0KGAke2t9LnZlYCxoLHgsTCk6MH1iKz1rO2IrPUw0KHYsblt2XSxXLEQpO2lmKGI+NTAwKWJyZWFrfX1lbHNlIERbV109ZWkobiksYis9RFtXXS5sZW5ndGg7ZWxzZSBEW1ddPWVpKG4pLGIrPURbV10ubGVuZ3RoO3JldHVybiBifTsKTDQ9ZnVuY3Rpb24obixXLEQsYil7RCs9YC4ke259YDtuPWVpKFcpO2JbRF09bjtyZXR1cm4gRC5sZW5ndGgrbi5sZW5ndGh9OwplaT1mdW5jdGlvbihuKXt0cnl7cmV0dXJuKHR5cGVvZiBuPT09InN0cmluZyI/bjpTdHJpbmcoSlNPTi5zdHJpbmdpZnkobikpKS5zdWJzdHIoMCw1MDApfWNhdGNoKFcpe3JldHVybmB1bmFibGUgdG8gc2VyaWFsaXplICR7dHlwZW9mIG59ICgke1cubWVzc2FnZX0pYH19OwpXTlU9ZnVuY3Rpb24obixXPXt9KXtpZihuPW4uelope2xldCBEPW4uSngsYj1uLmQ2O249W1siY29tcG9uZW50U3RhY2siLG4ubUldLFsid2l6VGFnTmFtZSIsbi50YWdOYW1lXSxbIndpek93bmVyVHJhY2UiLG4uRHU/LmpvaW4oIiA+ICIpXSxbImVycm9yU2V2ZXJpdHkiLEQ/LnRvU3RyaW5nKCldLFsid2l6RmVhdHVyZUZsYWdzIixiP09iamVjdC5lbnRyaWVzKGIpLmpvaW4oIlxuIik6dm9pZCAwXV07Zm9yKGxldCBbdixrXW9mIG4pbj1rLG4hPT12b2lkIDAmJihXW3ZdPW4pfXJldHVybiBXfTsKZy5xZz1mdW5jdGlvbihuKXtnLlhqKG4pfTsKZy5HcT1mdW5jdGlvbihuKXtnLlhqKG4sIldBUk5JTkciKX07CmcuWGo9ZnVuY3Rpb24obixXPSJFUlJPUiIpe3ZhciBEPXt9O0QubmFtZT1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMSk7RC52ZXJzaW9uPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIik7REh0KG4sRCxXKX07CkRIdD1mdW5jdGlvbihuLFcsRD0iRVJST1IiKXtpZihuKXtuLmhhc093blByb3BlcnR5KCJsZXZlbCIpJiZuLmxldmVsJiYoRD1uLmxldmVsKTtpZihnLmwoIndpel9lbmFibGVfbWV0YWRhdGFfZXh0cmFjdGlvbl9raWxsc3dpdGNoIikpe3ZhciBiPVc7aWYoIWI/LmNvbXBvbmVudFN0YWNrKXt2YXIgdj1uLnpaPy5tSTt2JiYoYnx8KGI9e30pLGIuY29tcG9uZW50U3RhY2s9dil9Vz1ifHxXfWVsc2UgVz1XTlUobixXKSxiPW4uelo/Lkp4LGIhPT12b2lkIDAmJkQhPT0iSUdOT1JFRCImJihEPWI+PTM/IkVSUk9SIjoiV0FSTklORyIpO2lmKGcubCgiY29uc29sZV9sb2dfanNfZXhjZXB0aW9ucyIpfHxbInRlc3QiLCJkZXYiLCJhdXRvcHVzaCIsInN0YWdpbmciXS5pbmNsdWRlcyhnLkFyKCJTRVJWRVJfVkVSU0lPTiIpKSliPVtdLGIucHVzaChgTmFtZTogJHtuLm5hbWV9YCksYi5wdXNoKGBNZXNzYWdlOiAke24ubWVzc2FnZX1gKSxuLmhhc093blByb3BlcnR5KCJwYXJhbXMiKSYmYi5wdXNoKGBFcnJvciBQYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkobi5wYXJhbXMpfWApLApuLmhhc093blByb3BlcnR5KCJhcmdzIikmJmIucHVzaChgRXJyb3IgYXJnczogJHtKU09OLnN0cmluZ2lmeShuLmFyZ3MpfWApLGIucHVzaChgRmlsZSBuYW1lOiAke24uZmlsZU5hbWV9YCksYi5wdXNoKGBTdGFja3RyYWNlOiAke24uc3RhY2t9YCksYj1iLmpvaW4oIlxuIiksd2luZG93LmNvbnNvbGUubG9nKGIsbik7aWYoISh0UD49NSkpe2I9W107Zm9yKGsgb2YgYm4yKXRyeXtrKCkmJmIucHVzaChrKCkpfWNhdGNoKEEpe312YXIgaz1iO2s9Wy4uLnY5MiwuLi5rXTt2YXIgaD1yaWIobik7Yj1oLm1lc3NhZ2V8fCJVbmtub3duIEVycm9yIjt2PWgubmFtZXx8IlVua25vd25FcnJvciI7dmFyIHg9aC5zdGFja3x8bi5TdHx8Ik5vdCBhdmFpbGFibGUiO2lmKHguc3RhcnRzV2l0aChgJHt2fTogJHtifWApKXt2YXIgTD14LnNwbGl0KCJcbiIpO0wuc2hpZnQoKTt4PUwuam9pbigiXG4iKX1MPWgubGluZU51bWJlcnx8Ik5vdCBhdmFpbGFibGUiO2g9aC5maWxlTmFtZXx8Ik5vdCBhdmFpbGFibGUiOwpsZXQgSD0wO2lmKG4uaGFzT3duUHJvcGVydHkoImFyZ3MiKSYmbi5hcmdzJiZuLmFyZ3MubGVuZ3RoKWZvcih2YXIgZT0wO2U8bi5hcmdzLmxlbmd0aCYmIShIPWdLKG4uYXJnc1tlXSxgcGFyYW1zLiR7ZX1gLFcsSCksSD49NTAwKTtlKyspO2Vsc2UgaWYobi5oYXNPd25Qcm9wZXJ0eSgicGFyYW1zIikmJm4ucGFyYW1zKXtsZXQgQT1uLnBhcmFtcztpZih0eXBlb2Ygbi5wYXJhbXM9PT0ib2JqZWN0Iilmb3IoZSBpbiBBKXtpZighQVtlXSljb250aW51ZTtsZXQgeT1gcGFyYW1zLiR7ZX1gLFQ9ZWkoQVtlXSk7V1t5XT1UO0grPXkubGVuZ3RoK1QubGVuZ3RoO2lmKEg+NTAwKWJyZWFrfWVsc2UgVy5wYXJhbXM9ZWkoQSl9aWYoay5sZW5ndGgpZm9yKGU9MDtlPGsubGVuZ3RoJiYhKEg9Z0soa1tlXSxgcGFyYW1zLmNvbnRleHQuJHtlfWAsVyxIKSxIPj01MDApO2UrKyk7bmF2aWdhdG9yLnZlbmRvciYmIVcuaGFzT3duUHJvcGVydHkoInZlbmRvciIpJiYoV1siZGV2aWNlLnZlbmRvciJdPQpuYXZpZ2F0b3IudmVuZG9yKTtlPXttZXNzYWdlOmIsbmFtZTp2LGxpbmVOdW1iZXI6TCxmaWxlTmFtZTpoLHN0YWNrOngscGFyYW1zOlcsc2FtcGxlV2VpZ2h0OjF9O1c9TnVtYmVyKG4uY29sdW1uTnVtYmVyKTtpc05hTihXKXx8KGUubGluZU51bWJlcj1gJHtlLmxpbmVOdW1iZXJ9OiR7V31gKTtpZihuLmxldmVsPT09IklHTk9SRUQiKXZhciBHPTA7ZWxzZSBhOntuPWhQKCk7Zm9yKEcgb2Ygbi5OOSlpZihlLm1lc3NhZ2UmJmUubWVzc2FnZS5tYXRjaChHLktSKSl7Rz1HLndlaWdodDticmVhayBhfWZvcih2YXIgciBvZiBuLmtvKWlmKHIuY2FsbGJhY2soZSkpe0c9ci53ZWlnaHQ7YnJlYWsgYX1HPTF9ZS5zYW1wbGVXZWlnaHQ9RztHPWU7Zm9yKHZhciBOIG9mIGskYil7aWYoIU4uWXpbRy5uYW1lXSljb250aW51ZTtyPU4uWXpbRy5uYW1lXTtmb3IobGV0IEEgb2Ygcil7cj1HLm1lc3NhZ2UubWF0Y2goQS53Yik7aWYoIXIpY29udGludWU7Ry5wYXJhbXNbInBhcmFtcy5lcnJvci5vcmlnaW5hbCJdPQpyWzBdO249QS5ncm91cHM7ZT17fTtmb3IoVz0wO1c8bi5sZW5ndGg7VysrKWVbbltXXV09cltXKzFdLEcucGFyYW1zW2BwYXJhbXMuZXJyb3IuJHtuW1ddfWBdPXJbVysxXTtHLm1lc3NhZ2U9Ti5HMShlKTticmVha319Ry5wYXJhbXN8fChHLnBhcmFtcz17fSk7Tj1oUCgpO0cucGFyYW1zWyJwYXJhbXMuZXJyb3JTZXJ2aWNlU2lnbmF0dXJlIl09YG1zZz0ke04uTjkubGVuZ3RofSZjYj0ke04ua28ubGVuZ3RofWA7Ry5wYXJhbXNbInBhcmFtcy5zZXJ2aWNlV29ya2VyIl09ImZhbHNlIjtnLnFpLmRvY3VtZW50JiZnLnFpLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwmJihHLnBhcmFtc1sicGFyYW1zLmZzY3JpcHRzIl09U3RyaW5nKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdDpub3QoW25vbmNlXSkiKS5sZW5ndGgpKTsobmV3ICRCKHJLLCJzYW1wbGUiKSkuY29uc3RydWN0b3IhPT0kQiYmKEcucGFyYW1zWyJwYXJhbXMuZmNvbnN0Il09InRydWUiKTt3aW5kb3cueXRlcnImJgp0eXBlb2Ygd2luZG93Lnl0ZXJyPT09ImZ1bmN0aW9uIiYmd2luZG93Lnl0ZXJyKEcpO0cuc2FtcGxlV2VpZ2h0PT09MHx8SVUuaGFzKEcubWVzc2FnZSl8fGhUUyhHLEQpfX19OwpoVFM9ZnVuY3Rpb24obixXPSJFUlJPUiIpe2lmKFc9PT0iRVJST1IiKXtTaS5XSigiaGFuZGxlRXJyb3IiLG4pO2lmKGcubCgicmVjb3JkX2FwcF9jcmFzaGVkX3dlYiIpJiZBUD09PTAmJm4uc2FtcGxlV2VpZ2h0PT09MSl7QVArKzt2YXIgRD17YXBwQ3Jhc2hUeXBlOiJBUFBfQ1JBU0hfVFlQRV9CUkVBS1BBRCJ9O2cubCgicmVwb3J0X2NsaWVudF9lcnJvcl93aXRoX2FwcF9jcmFzaF9rcyIpfHwoRC5zeXN0ZW1IZWFsdGg9e2NyYXNoRGF0YTp7Y2xpZW50RXJyb3I6e2xvZ01lc3NhZ2U6e21lc3NhZ2U6bi5tZXNzYWdlfX19fSk7Zy56VSgiYXBwQ3Jhc2hlZCIsRCl9eEhNKyt9ZWxzZSBXPT09IldBUk5JTkciJiZTaS5XSigiaGFuZGxlV2FybmluZyIsbik7aWYoZy5sKCJrZXZsYXJfZ2VsX2Vycm9yX3JvdXRpbmciKSl7RD17fTtiOntmb3IoYiBvZiBMTkMpaWYoZy51YihiLnRvTG93ZXJDYXNlKCkpKXt2YXIgYj0hMDticmVhayBifWI9ITF9aWYoYilEPXZvaWQgMDtlbHNle3ZhciB2PQp7c3RhY2tUcmFjZTpuLnN0YWNrfTtuLmZpbGVOYW1lJiYodi5maWxlbmFtZT1uLmZpbGVOYW1lKTtiPW4ubGluZU51bWJlciYmbi5saW5lTnVtYmVyLnNwbGl0P24ubGluZU51bWJlci5zcGxpdCgiOiIpOltdO2IubGVuZ3RoIT09MCYmKGIubGVuZ3RoIT09MXx8aXNOYU4oTnVtYmVyKGJbMF0pKT9iLmxlbmd0aCE9PTJ8fGlzTmFOKE51bWJlcihiWzBdKSl8fGlzTmFOKE51bWJlcihiWzFdKSl8fCh2LmxpbmVOdW1iZXI9TnVtYmVyKGJbMF0pLHYuY29sdW1uTnVtYmVyPU51bWJlcihiWzFdKSk6di5saW5lTnVtYmVyPU51bWJlcihiWzBdKSk7Yj17bGV2ZWw6IkVSUk9SX0xFVkVMX1VOS05PV04iLG1lc3NhZ2U6bi5tZXNzYWdlLGVycm9yQ2xhc3NOYW1lOm4ubmFtZSxzYW1wbGVXZWlnaHQ6bi5zYW1wbGVXZWlnaHR9O1c9PT0iRVJST1IiP2IubGV2ZWw9IkVSUk9SX0xFVkVMX0VSUk9SIjpXPT09IldBUk5JTkciJiYoYi5sZXZlbD0iRVJST1JfTEVWRUxfV0FSTk5JTkciKTt2PXtpc09iZnVzY2F0ZWQ6ITAsCmJyb3dzZXJTdGFja0luZm86dn07RC5wYWdlVXJsPXdpbmRvdy5sb2NhdGlvbi5ocmVmO0Qua3ZQYWlycz1bXTtnLkFyKCJGRVhQX0VYUEVSSU1FTlRTIikmJihELmV4cGVyaW1lbnRJZHM9Zy5BcigiRkVYUF9FWFBFUklNRU5UUyIpKTt2YXIgaz1nLkFyKCJMQVRFU1RfRUNBVENIRVJfU0VSVklDRV9UUkFDS0lOR19QQVJBTVMiKTtpZighbXkoIndlYl9kaXNhYmxlX2dlbF9zdHBfZWNhdGNoZXJfa2lsbHN3aXRjaCIpJiZrKWZvcih2YXIgaCBvZiBPYmplY3Qua2V5cyhrKSlELmt2UGFpcnMucHVzaCh7a2V5OmgsdmFsdWU6U3RyaW5nKGtbaF0pfSk7aWYoaD1uLnBhcmFtcylmb3IodmFyIHggb2YgT2JqZWN0LmtleXMoaCkpRC5rdlBhaXJzLnB1c2goe2tleTpgY2xpZW50LiR7eH1gLHZhbHVlOlN0cmluZyhoW3hdKX0pO2lmKHg9bi5wYXJhbXM/LnNlc3Npb25SZXBsYXlJZClELnNlc3Npb25SZXBsYXlJZD1TdHJpbmcoeCk7eD1nLkFyKCJTRVJWRVJfTkFNRSIpO2g9Zy5BcigiU0VSVkVSX1ZFUlNJT04iKTsKeCYmaCYmKEQua3ZQYWlycy5wdXNoKHtrZXk6InNlcnZlci5uYW1lIix2YWx1ZTp4fSksRC5rdlBhaXJzLnB1c2goe2tleToic2VydmVyLnZlcnNpb24iLHZhbHVlOmh9KSk7KHg9Zy5BcigiUExBWUVSX0NMSUVOVF9WRVJTSU9OIikpJiZELmt2UGFpcnMucHVzaCh7a2V5OiJjbGllbnQucGxheWVyLnZlcnNpb24iLHZhbHVlOnh9KTtEPXtlcnJvck1ldGFkYXRhOkQsc3RhY2tUcmFjZTp2LGxvZ01lc3NhZ2U6Yn19aWYoRCYmKGcuelUoImNsaWVudEVycm9yIixEKSxXPT09IkVSUk9SInx8Zy5sKCJlcnJvcnNfZmx1c2hfZ2VsX2Fsd2F5c19raWxsc3dpdGNoIikpKWE6e2lmKGcubCgid2ViX2ZwX3ZpYV9qc3BiIikpe0Q9bTE7bTE9W107aWYoRClmb3IodmFyIEwgb2YgRCl1UihMLnBheWxvYWROYW1lLEwucGF5bG9hZCxnLmQ0LEwub3B0aW9ucyk7b3YoITApO2lmKCFnLmwoIndlYl9mcF92aWFfanNwYl9hbmRfanNvbiIpKWJyZWFrIGF9b3YoKX19aWYoIWcubCgic3VwcHJlc3NfZXJyb3JfMjA0X2xvZ2dpbmciKSl7TD0Kbi5wYXJhbXN8fHt9O1c9e3VybFBhcmFtczp7YToibG9nZXJyb3IiLHQ6ImpzZXJyb3IiLHR5cGU6bi5uYW1lLG1zZzpuLm1lc3NhZ2Uuc3Vic3RyKDAsMjUwKSxsaW5lOm4ubGluZU51bWJlcixsZXZlbDpXLCJjbGllbnQubmFtZSI6TC5uYW1lfSxwb3N0UGFyYW1zOnt1cmw6Zy5BcigiUEFHRV9OQU1FIix3aW5kb3cubG9jYXRpb24uaHJlZiksZmlsZTpuLmZpbGVOYW1lfSxtZXRob2Q6IlBPU1QifTtMLnZlcnNpb24mJihXWyJjbGllbnQudmVyc2lvbiJdPUwudmVyc2lvbik7aWYoVy5wb3N0UGFyYW1zKXtuLnN0YWNrJiYoVy5wb3N0UGFyYW1zLnN0YWNrPW4uc3RhY2spO2Zvcih2YXIgZSBvZiBPYmplY3Qua2V5cyhMKSlXLnBvc3RQYXJhbXNbYGNsaWVudC4ke2V9YF09TFtlXTtpZihlPWcuQXIoIkxBVEVTVF9FQ0FUQ0hFUl9TRVJWSUNFX1RSQUNLSU5HX1BBUkFNUyIpKWZvcih2YXIgRyBvZiBPYmplY3Qua2V5cyhlKSlXLnBvc3RQYXJhbXNbR109ZVtHXTsoRz1nLkFyKCJMQVZBX1ZFUlNJT04iKSkmJgooVy5wb3N0UGFyYW1zWyJsYXZhLnZlcnNpb24iXT1HKTtHPWcuQXIoIlNFUlZFUl9OQU1FIik7ZT1nLkFyKCJTRVJWRVJfVkVSU0lPTiIpO0cmJmUmJihXLnBvc3RQYXJhbXNbInNlcnZlci5uYW1lIl09RyxXLnBvc3RQYXJhbXNbInNlcnZlci52ZXJzaW9uIl09ZSk7KEc9Zy5BcigiUExBWUVSX0NMSUVOVF9WRVJTSU9OIikpJiYoVy5wb3N0UGFyYW1zWyJjbGllbnQucGxheWVyLnZlcnNpb24iXT1HKX1nLmVkKGAke2cuQXIoIkVDQVRDSEVSX1JFUE9SVF9IT1NUIiwiIil9L2Vycm9yXzIwNGAsVyl9dHJ5e0lVLmFkZChuLm1lc3NhZ2UpfWNhdGNoKHIpe310UCsrfTsKSzQ9ZnVuY3Rpb24obiwuLi5XKXtuLmFyZ3N8fChuLmFyZ3M9W10pO0FycmF5LmlzQXJyYXkobi5hcmdzKSYmbi5hcmdzLnB1c2goLi4uVyl9OwpPYT1mdW5jdGlvbihuKXt2YXIgVz0wO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKVc9VyozMStuLmNoYXJDb2RlQXQoRCksRDxuLmxlbmd0aC0xJiYoVyU9MHg4MDAwMDAwMDAwMDApO3JldHVybiBXJTFFNX07Cmc5aT1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCl7dmFyIGU9ZVRoKCk7az1uZXcgbFIoe3ZlVHlwZTpXLHlvdXR1YmVEYXRhOmssanNwYllvdXR1YmVEYXRhOnZvaWQgMH0pO0w9UGEoe2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOkx9LGUpO3YmJihMLmN0dEF1dGhJbmZvPXYpO3Y9e2NzbjplLHBhZ2VWZTprLmdldEFzSnNvbigpfTtnLmwoImV4cGVjdGF0aW9uX2xvZ2dpbmciKSYmeCYmeC5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyYmKHYuc2NyZWVuQ3JlYXRlZExvZ2dpbmdFeHBlY3RhdGlvbnM9eC5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyk7RCYmRC52aXN1YWxFbGVtZW50Pyh2LmltcGxpY2l0R2VzdHVyZT17cGFyZW50Q3NuOkQuY2xpZW50U2NyZWVuTm9uY2UsZ2VzdHVyZWRWZTpELnZpc3VhbEVsZW1lbnQuZ2V0QXNKc29uKCl9LGgmJih2LmltcGxpY2l0R2VzdHVyZS5nZXN0dXJlVHlwZT1oKSk6RCYmZy5HcShuZXcgZy5ReCgibmV3U2NyZWVuKCkgcGFyZW50IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIFZFIC0gcm9vdFZlIiwKVykpO2ImJih2LmNsb25lQ3NuPWIpO24/dVIoInNjcmVlbkNyZWF0ZWQiLHYsbixMKTpnLnpVKCJzY3JlZW5DcmVhdGVkIix2LEwpO2w5KFRvLG5ldyBacChlKSk7VWEuY2xlYXIoKTt5NS5jbGVhcigpO0VhLmNsZWFyKCk7cmV0dXJuIGV9Owp1Zz1mdW5jdGlvbihuLFcsRCxiLHY9ITEsaz17fSl7aWcobixXLEQsW2JdLHYsayl9OwppZz1mdW5jdGlvbihuLFcsRCxiLHY9ITEsaz17fSl7T2JqZWN0LmFzc2lnbihrLFBhKHtjdHRBdXRoSW5mbzpRNChXKXx8dm9pZCAwfSxXKSk7Zm9yKGxldCB4IG9mIGIpe3ZhciBoPXguZ2V0QXNKc29uKCk7KGcuR0YoaCl8fCFoLnRyYWNraW5nUGFyYW1zJiYhaC52ZVR5cGUpJiZnLkdxKEVycm9yKCJDaGlsZCBWRSBsb2dnZWQgd2l0aCBubyBkYXRhIikpO2lmKGcubCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSl7bGV0IEw9b1UoeCxXKTtpZihoLnZlVHlwZSYmIXk1LmhhcyhMKSYmIUVhLmhhcyhMKSYmIXYpe2lmKCFnLmwoImlsX2F0dGFjaF9jYWNoZV9saW1pdCIpfHxVYS5zaXplPDFFMyl7VWEuc2V0KEwsW24sVyxELHhdKTtyZXR1cm59Zy5sKCJpbF9hdHRhY2hfY2FjaGVfbGltaXQiKSYmVWEuc2l6ZT4xRTMmJmcuR3EobmV3IGcuUXgoIklMIEF0dGFjaCBjYWNoZSBleGNlZWRlZCBsaW1pdCIpKX1oPW9VKEQsVyk7VWEuaGFzKGgpP2RLKEQsVyk6RWEuc2V0KGgsCiEwKX19Yj1iLmZpbHRlcih4PT57eC5jc24hPT1XPyh4LmNzbj1XLHg9ITApOng9ITE7cmV0dXJuIHh9KTsKRD17Y3NuOlcscGFyZW50VmU6RC5nZXRBc0pzb24oKSxjaGlsZFZlczpnLmlfKGIseD0+eC5nZXRBc0pzb24oKSl9OwpXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGssRCk6bj91UigidmlzdWFsRWxlbWVudEF0dGFjaGVkIixELG4sayk6Zy56VSgidmlzdWFsRWxlbWVudEF0dGFjaGVkIixELGspfTsKWFdqPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgpe2xnKEQsVyk7Yj1QYSh7Y3R0QXV0aEluZm86UTQoVyl8fHZvaWQgMCxhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTpofSxXKTtEPXtjc246Vyx2ZTpELmdldEFzSnNvbigpLGV2ZW50VHlwZToxfTt2JiYoRC5jbGllbnREYXRhPXYpO1c9PT0iVU5ERUZJTkVEX0NTTiI/enEoInZpc3VhbEVsZW1lbnRTaG93biIsYixEKTpuP3VSKCJ2aXN1YWxFbGVtZW50U2hvd24iLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50U2hvd24iLEQsYil9OwpUcT1mdW5jdGlvbihuLFcsRCxiPSExKXt2YXIgdj1iPzE2Ojg7Yj1QYSh7Y3R0QXV0aEluZm86UTQoVyl8fHZvaWQgMCxlbmRPZlNlcXVlbmNlOmIsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6dm9pZCAwfSxXKTtEPXtjc246Vyx2ZTpELmdldEFzSnNvbigpLGV2ZW50VHlwZTp2fTtXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixiLEQpOm4/dVIoInZpc3VhbEVsZW1lbnRIaWRkZW4iLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixELGIpfTsKcVZaPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtqaShuLFcsRCxiLGspfTsKamk9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz12b2lkIDA7bGcoRCxXKTtrPWt8fCJJTlRFUkFDVElPTl9MT0dHSU5HX0dFU1RVUkVfVFlQRV9HRU5FUklDX0NMSUNLIjt2PVBhKHtjdHRBdXRoSW5mbzpRNChXKXx8dm9pZCAwLGF1dG9tYXRlZExvZ0V2ZW50U291cmNlOnZ9LFcpO0Q9e2NzbjpXLHZlOkQuZ2V0QXNKc29uKCksZ2VzdHVyZVR5cGU6a307YiYmKEQuY2xpZW50RGF0YT1iKTtXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50R2VzdHVyZWQiLHYsRCk6bj91UigidmlzdWFsRWxlbWVudEdlc3R1cmVkIixELG4sdik6Zy56VSgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixELHYpfTsKRyRqPWZ1bmN0aW9uKCl7dmFyIG49TWIoMTYpO3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKVcucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckF0KG5bRF0mNjMpKTtyZXR1cm4gVy5qb2luKCIiKX07CnpxPWZ1bmN0aW9uKG4sVyxEKXtDNC5wdXNoKHtwYXlsb2FkTmFtZTpuLHBheWxvYWQ6RCxwUDp2b2lkIDAsb3B0aW9uczpXfSk7QmF8fChCYT1GME0oKSl9OwpDNHc9ZnVuY3Rpb24obil7aWYoQzQpe2ZvcihsZXQgVyBvZiBDNClXLnBheWxvYWQmJihXLnBheWxvYWQuY3NuPW4uY3NuLGcuelUoVy5wYXlsb2FkTmFtZSxXLnBheWxvYWQsVy5vcHRpb25zKSk7QzQubGVuZ3RoPTB9QmE9MH07Cm9VPWZ1bmN0aW9uKG4sVyl7cmV0dXJuYCR7bi5nZXRBc0pzb24oKS52ZVR5cGV9JHtuLmdldEFzSnNvbigpLnZlQ291bnRlcn0ke1d9YH07CmxnPWZ1bmN0aW9uKG4sVyl7aWYoZy5sKCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpKXt2YXIgRD1vVShuLFcpO3k1LnNldChELCEwKTtkSyhuLFcpfX07CmRLPWZ1bmN0aW9uKG4sVyl7bj1vVShuLFcpO1VhLmhhcyhuKSYmKFc9VWEuZ2V0KG4pfHxbXSx1ZyhXWzBdLFdbMV0sV1syXSxXWzNdLCEwKSxVYS5kZWxldGUobikpfTsKUGE9ZnVuY3Rpb24obixXKXtnLmwoImxvZ19zZXF1ZW5jZV9pbmZvX29uX2dlbF93ZWIiKSYmKG4uc2VxdWVuY2VHcm91cD1XKTtyZXR1cm4gbn07CkZqPWZ1bmN0aW9uKG4sVyxELGIpe1BWKFhXaikodm9pZCAwLG4sVyxELGIsdm9pZCAwKX07CnRFeD1mdW5jdGlvbihuLFcpe1BWKCgpPT57Zy55MihXLEQ9PntsZyhELG4pO3ZhciBiPVBhKHtjdHRBdXRoSW5mbzpRNChuKXx8dm9pZCAwLGF1dG9tYXRlZExvZ0V2ZW50U291cmNlOnZvaWQgMH0sbik7RD17Y3NuOm4sdmU6RC5nZXRBc0pzb24oKSxldmVudFR5cGU6NH07bj09PSJVTkRFRklORURfQ1NOIj96cSgidmlzdWFsRWxlbWVudFNob3duIixiLEQpOmcuelUoInZpc3VhbEVsZW1lbnRTaG93biIsRCxiKX0pfSkoKX07CiRIdD1mdW5jdGlvbihuLFcpe1BWKCgpPT57Zy55MihXLEQ9PntUcSh2b2lkIDAsbixEKX0pfSkoKX07CndLPWZ1bmN0aW9uKCl7dmFyIG49ITE7dHJ5e249ISF3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgic2Vzc2lvbl9sb2dpbmluZm8iKX1jYXRjaHtuPSEwfXJldHVybihnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUIifHxnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfQ1JFQVRPUiIpJiZufTsKTWc9ZnVuY3Rpb24oKXt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oInN0aWNraW5lc3NfcmVsb2FkIik7d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oInNlc3Npb25fbG9naW5pbmZvIik7Zy5TSCgiTE9HSU5fSU5GTyIsIiIpO3dpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJmcm9tX3N3aXRjaF9hY2NvdW50IiwiMSIpO3ZhciBuO2xldCBEPXJTaDtEfHwoRD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGVyc2lzdF9pZGVudGl0eSIpKTtpZihuPUQpe3ZhciBXPW4uc3JjPyhuZXcgVVJMKG4uc3JjKSkub3JpZ2luOiIqIjtuLmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKHthY3Rpb246ImNsZWFyIn0sVyl9fWNhdGNoe319OwpnLlJVPWZ1bmN0aW9uKG4pe24mJihuLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9BZGRTZXNzaW9uIik/TWcoKTpuLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW4iKT9NZygpOm4uc3RhcnRzV2l0aCgiaHR0cHM6Ly9teWFjY291bnQuZ29vZ2xlLmNvbSIpJiZscihuKS5KLmVuZHNXaXRoKCIveW91dHViZW9wdGlvbnMiKSYmTWcoKSk7aWYoZy5BcigiTE9HR0VEX0lOIiwhMCkmJndLKCkpe3ZhciBXPWcuQXIoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pO3ZhciBEPWcuSVAod2luZG93LmxvY2F0aW9uLmhyZWYpO0QmJlcucHVzaChEKTtEPWcuSVAobik7Zy5qaihXLEQpfHwhRCYmZy5qVShuLCIvIik/KFc9bVcobiksKFc9S3AoVykpPyhXPVdhKFcpLFc9KFc9Zy5TZChXKXx8bnVsbCk/Zy5pdyhXKTp7fSk6Vz1udWxsKTpXPW51bGw7Vz09bnVsbCYmKFc9e30pO0Q9Vzt2YXIgYj12b2lkIDA7CndLKCk/KGJ8fChiPWcuQXIoIkxPR0lOX0lORk8iKSksYj8oRC5zZXNzaW9uX2xvZ2luaW5mbz1iLEQ9ITApOkQ9ITEpOkQ9ITE7RCYmbjQobixXKX19OwpRNT1mdW5jdGlvbihuLFc9e30pe3ZhciBEPWcuQXIoIkVWRU5UX0lEIik7RCYmKFcuZWl8fChXLmVpPUQpKTtXJiZuNChuLFcpfTsKZy5jYT1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe0QmJm40KG4sRCk7RD1nLnRGKG4sZy5HNCl8fGcuVjU7dmFyIGs9Z3ooRCk7biE9ayYmWkUoRXJyb3IoYFVuc2FmZSB3aW5kb3cub3BlbiBVUkw6ICR7bn1gKSk7bj1rO1c9V3x8c1QobikudG9TdHJpbmcoMzYpO3RyeXtpZih2KXJldHVybiB2PW4sdj1nLnFiKHYpLGcuUlUodiksSkYodixXLCJhdHRyaWJ1dGlvbnNyYyIpfWNhdGNoKGgpe090KGgpfWcuUlUobik7cmV0dXJuIEpGKEQsVyxiKX07Ck5lMj1mdW5jdGlvbigpe3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2lmKGcubCgia2V2bGFyX2Rpc2FibGVfdGhlbWVfcGFyYW0iKSlyZXR1cm4gbnVsbDtTMShuKTt0cnl7bGV0IFc9Zy5vRShuKS50aGVtZTtyZXR1cm4gc1lVLmdldChXKXx8bnVsbH1jYXRjaChXKXt9cmV0dXJuIG51bGx9OwphVT1mdW5jdGlvbihuLFcpe2lmKFcuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50cyYmKG4uTltXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdPVcsdHlwZW9mIFcuZXhwaXJhdGlvblNlY29uZHM9PT0ic3RyaW5nIikpe2xldCBEPU51bWJlcihXLmV4cGlyYXRpb25TZWNvbmRzKTtzZXRUaW1lb3V0KCgpPT57ZGVsZXRlIG4uTltXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdfSxEKjFFMyk7Cm4uSiYmSUsoIkNPTlNJU1RFTkNZIixXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHMsRCx2b2lkIDAsITApfX07Cm5CPWZ1bmN0aW9uKG4pe3JldHVybiBuLmxvY2FsU3RvcmFnZT09PXZvaWQgMD9uZXcgdEkoInl0LWNsaWVudC1sb2NhdGlvbiIpOm4ubG9jYWxTdG9yYWdlfTsKZy52Yj1mdW5jdGlvbihuLFc9ITEsRD0hMSxiLHYpe3ZhciBrPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik7aWYoIWspcmV0dXJuIGcuWGooRXJyb3IoIkVycm9yOiBObyBJbm5lclR1YmVDb250ZXh0IHNoZWxsIHByb3ZpZGVkIGluIHl0Y29uZmlnLiIpKSx7fTtrPWcuTmMoayk7Zy5sKCJ3ZWJfbm9fdHJhY2tpbmdfcGFyYW1zX2luX3NoZWxsX2tpbGxzd2l0Y2giKXx8ZGVsZXRlIGsuY2xpY2tUcmFja2luZztrLmNsaWVudHx8KGsuY2xpZW50PXt9KTt2YXIgaD1rLmNsaWVudDtoLmNsaWVudE5hbWU9PT0iTVdFQiImJmguY2xpZW50Rm9ybUZhY3RvciE9PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIiYmKGguY2xpZW50Rm9ybUZhY3Rvcj1nLkFyKCJJU19UQUJMRVQiKT8iTEFSR0VfRk9STV9GQUNUT1IiOiJTTUFMTF9GT1JNX0ZBQ1RPUiIpO2guc2NyZWVuV2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGg7aC5zY3JlZW5IZWlnaHRQb2ludHM9d2luZG93LmlubmVySGVpZ2h0O2guc2NyZWVuUGl4ZWxEZW5zaXR5PQpNYXRoLnJvdW5kKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxKTtoLnNjcmVlbkRlbnNpdHlGbG9hdD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtoLnV0Y09mZnNldE1pbnV0ZXM9LU1hdGguZmxvb3IoKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKTt2YXIgeD1nLm85KCk7dmFyIEw9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjt4LlFRKDE2NSk/TD0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyI6eC5RUSgxNzQpP0w9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjohZy5sKCJrZXZsYXJfbGVnYWN5X2Jyb3dzZXJzIikmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lKSIpLm1hdGNoZXMmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKEw9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0RBUksiKTt4PU5lMigpfHxMO2gudXNlckludGVyZmFjZVRoZW1lPQp4O2cubCgid2ViX3Byb3BhZ2F0ZV92aXNpYmlsaXR5X3RvX2FwcGxpY2F0aW9uX3N0YXRlIikmJmcucWkuZG9jdW1lbnQmJihoLmFwcGxpY2F0aW9uU3RhdGU9Zy5xaS5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIj8iQkFDS0dST1VORCI6IkFDVElWRSIpO2lmKCFXKXtpZih4PUJCKCkpaC5jb25uZWN0aW9uVHlwZT14O2cubCgid2ViX2xvZ19lZmZlY3RpdmVfY29ubmVjdGlvbl90eXBlIikmJih4PXdKKCkpJiYoay5jbGllbnQuZWZmZWN0aXZlQ29ubmVjdGlvblR5cGU9eCl9Zy5sKCJ3ZWJfbG9nX21lbW9yeV90b3RhbF9rYnl0ZXMiKSYmZy5xaS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGsuY2xpZW50Lm1lbW9yeVRvdGFsS2J5dGVzPWAke2cucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnkqMUU2fWApO1cmJmImJiFnLmwoIndlYl9pdF9jb250ZXh0X3NldF9vcmlnaW5hbF91cmxfa3MiKSYmKHg9YixMPWcucWkubG9jYXRpb24uaHJlZixMIGluc3RhbmNlb2YKZy5Vanx8KEw9bHIoTCkpLHggaW5zdGFuY2VvZiBnLlVqfHwoeD1scih4KSkseD1MLnJlc29sdmUoeCksaC5vcmlnaW5hbFVybD14LnRvU3RyaW5nKCkpO2lmKGcubCgid2ViX2djZl9oYXNoZXNfaW5uZXJ0dWJlIikpe3ZhciBlPUo3KCk7ZSYmKHg9ZS5jb2xkQ29uZmlnRGF0YSxMPWUuY29sZEhhc2hEYXRhLGU9ZS5ob3RIYXNoRGF0YSxrLmNsaWVudC5jb25maWdJbmZvPWsuY2xpZW50LmNvbmZpZ0luZm98fHt9LHgmJihrLmNsaWVudC5jb25maWdJbmZvLmNvbGRDb25maWdEYXRhPXgpLEwmJihrLmNsaWVudC5jb25maWdJbmZvLmNvbGRIYXNoRGF0YT1MKSxlJiYoay5jbGllbnQuY29uZmlnSW5mby5ob3RIYXNoRGF0YT1lKSl9eD1nLm9FKGcucWkubG9jYXRpb24uaHJlZik7IWcubCgid2ViX3BvcHVsYXRlX2ludGVybmFsX2dlb19raWxsc3dpdGNoIikmJnguaW50ZXJuYWxjb3VudHJ5Y29kZSYmKGguaW50ZXJuYWxHZW89eC5pbnRlcm5hbGNvdW50cnljb2RlKTshZy5sKCJ3ZWJfcG9wdWxhdGVfY2xpZW50X3NjcmVlbl9raWxsc3dpdGNoIikmJgp2JiYoaC5jbGllbnRTY3JlZW49dik7aC5jbGllbnROYW1lPT09Ik1XRUIifHxoLmNsaWVudE5hbWU9PT0iV0VCIj8oaC5tYWluQXBwV2ViSW5mb3x8KGgubWFpbkFwcFdlYkluZm89e30pLGgubWFpbkFwcFdlYkluZm8uZ3JhZnRVcmw9Ynx8Zy5xaS5sb2NhdGlvbi5ocmVmLGcubCgia2V2bGFyX3dvZmZsZSIpJiZXYi5pbnN0YW5jZSYmKGI9V2IuaW5zdGFuY2UsaC5tYWluQXBwV2ViSW5mby5wd2FJbnN0YWxsYWJpbGl0eVN0YXR1cz0hYi5OJiZiLko/IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfQ0FOX0JFX0lOU1RBTExFRCI6IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfVU5LTk9XTiIpLGgubWFpbkFwcFdlYkluZm8ud2ViRGlzcGxheU1vZGU9eXgoKSxoLm1haW5BcHBXZWJJbmZvLmlzV2ViTmF0aXZlU2hhcmVBdmFpbGFibGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2hhcmUhPT12b2lkIDApOmguY2xpZW50TmFtZT09PSJUVkhUTUw1IiYmKCFnLmwoIndlYl9scl9hcHBfcXVhbGl0eV9raWxsc3dpdGNoIikmJgooYj1nLkFyKCJMSVZJTkdfUk9PTV9BUFBfUVVBTElUWSIpKSYmKGgudHZBcHBJbmZvPU9iamVjdC5hc3NpZ24oaC50dkFwcEluZm98fHt9LHthcHBRdWFsaXR5OmJ9KSksYj1nLkFyKCJMSVZJTkdfUk9PTV9DRVJUSUZJQ0FUSU9OX1NDT1BFIikpJiYoaC50dkFwcEluZm89T2JqZWN0LmFzc2lnbihoLnR2QXBwSW5mb3x8e30se2NlcnRpZmljYXRpb25TY29wZTpifSkpO2lmKCFnLmwoIndlYl9wb3B1bGF0ZV90aW1lX3pvbmVfaXRjX2tpbGxzd2l0Y2giKSl7YTp7aWYodHlwZW9mIEludGwhPT0idW5kZWZpbmVkIil0cnl7dmFyIEc9KG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTticmVhayBhfWNhdGNoe31HPXZvaWQgMH1HJiYoaC50aW1lWm9uZT1HKX0oRz1rVCgpKT9oLmV4cGVyaW1lbnRzVG9rZW49RzpkZWxldGUgaC5leHBlcmltZW50c1Rva2VuO2g9aHkoKTtETS5pbnN0YW5jZXx8KERNLmluc3RhbmNlPW5ldyBETSk7Rz1oSyhETS5pbnN0YW5jZS5OKTsKay5yZXF1ZXN0PXsuLi5rLnJlcXVlc3QsaW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6aCxjb25zaXN0ZW5jeVRva2VuSmFyczpHfTshZy5sKCJ3ZWJfcHJlcXVlc3RfY29udGV4dF9raWxsc3dpdGNoIikmJihoPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1BSRVFVRVNUX0NPTlRFWFQiKSkmJihrLnJlcXVlc3QuZXh0ZXJuYWxQcmVxdWVzdENvbnRleHQ9aCk7Rz1nLm85KCk7aD1HLlFRKDU4KTtHPUcuZ2V0KCJnc21sIiwiIik7ay51c2VyPXsuLi5rLnVzZXJ9O2gmJihrLnVzZXIuZW5hYmxlU2FmZXR5TW9kZT1oKTtHJiYoay51c2VyLmxvY2tlZFNhZmV0eU1vZGU9ITApO2cubCgid2FybV9vcF9jc25fY2xlYW51cCIpP0QmJihXPWcuUnYoKSkmJihrLmNsaWVudFNjcmVlbk5vbmNlPVcpOiFXJiYoVz1nLlJ2KCkpJiYoay5jbGllbnRTY3JlZW5Ob25jZT1XKTtuJiYoay5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOm59KTtpZihuPWcucnIoInl0Lm1keC5yZW1vdGUucmVtb3RlQ2xpZW50XyIpKWsucmVtb3RlQ2xpZW50PQpuO2IkLmdldEluc3RhbmNlKCkuc2V0TG9jYXRpb25PbklubmVyVHViZUNvbnRleHQoayk7dHJ5e3ZhciByPWcuUUYoKSxOPXIuYmlkO2RlbGV0ZSByLmJpZDtrLmFkU2lnbmFsc0luZm89e3BhcmFtczpbXSxiaWQ6Tn07Zm9yKGxldCBbSCxBXW9mIE9iamVjdC5lbnRyaWVzKHIpKXI9SCxOPUEsay5hZFNpZ25hbHNJbmZvLnBhcmFtcz8ucHVzaCh7a2V5OnIsdmFsdWU6YCR7Tn1gfSk7aWYoay5jbGllbnQ/LmNsaWVudE5hbWU9PT0iVFZIVE1MNSJ8fGsuY2xpZW50Py5jbGllbnROYW1lPT09IlRWSFRNTDVfVU5QTFVHR0VEIil7bGV0IEg9Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFQiKTtILmFkU2lnbmFsc0luZm8mJihrLmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZD1ILmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZCxrLmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZFNpZ25hbFR5cGU9IkRFVklDRV9JRF9UWVBFX0NPTk5FQ1RFRF9UVl9JRkEiLGsuYWRTaWduYWxzSW5mby5saW1pdEFkVHJhY2tpbmc9CkguYWRTaWduYWxzSW5mby5saW1pdEFkVHJhY2tpbmcsSC5hZFNpZ25hbHNJbmZvLmF0VHJhY2tpbmdNYW5hZ2VyQXV0aG9yaXphdGlvblN0YXR1cyE9PXZvaWQgMCYmKGsuYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXM9SC5hZFNpZ25hbHNJbmZvLmF0VHJhY2tpbmdNYW5hZ2VyQXV0aG9yaXphdGlvblN0YXR1cykpfX1jYXRjaChIKXtnLlhqKEgpfXJldHVybiBrfTsKa1Y9ZnVuY3Rpb24obil7dmFyIFc9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn07Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpP1dbIlgtR29vZy1FT00tVmlzaXRvci1JZCJdPWcuQXIoIkVPTV9WSVNJVE9SX0RBVEEiKTpnLkFyKCJWSVNJVE9SX0RBVEEiKSYmKFdbIlgtR29vZy1WaXNpdG9yLUlkIl09Zy5BcigiVklTSVRPUl9EQVRBIikpO1dbIlgtWW91dHViZS1Cb290c3RyYXAtTG9nZ2VkLUluIl09Zy5BcigiTE9HR0VEX0lOIiwhMSk7Zy5BcigiREVCVUdfU0VUVElOR1NfTUVUQURBVEEiKSYmKFdbIlgtRGVidWctU2V0dGluZ3MtTWV0YWRhdGEiXT1nLkFyKCJERUJVR19TRVRUSU5HU19NRVRBREFUQSIpKTtuIT09ImNvcnMiJiYoKG49Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiKSkmJihXWyJYLVlvdXR1YmUtQ2xpZW50LU5hbWUiXT1uKSwobj1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpKSYmKFdbIlgtWW91dHViZS1DbGllbnQtVmVyc2lvbiJdPQpuKSwobj1nLkFyKCJDSFJPTUVfQ09OTkVDVEVEX0hFQURFUiIpKSYmKFdbIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIl09biksKG49Zy5BcigiRE9NQUlOX0FETUlOX1NUQVRFIikpJiYoV1siWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSJdPW4pLChuPWIkLmdldEluc3RhbmNlKCkuZ2V0WEdlb0hlYWRlcj8uKCkpJiYoV1siWC1HZW8iXT1uKSk7KG49Zy5BcigiU0VSSUFMSVpFRF9MQVZBX0RFVklDRV9DT05URVhUIikpJiYoV1siWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiXT1uKTtyZXR1cm4gV307CmhtPWZ1bmN0aW9uKG4pe3JldHVybigpPT5uZXcgbn07CnBXTT1mdW5jdGlvbihuKXtpZihuLmxlbmd0aD09PTEpcmV0dXJuIG5bMF07dmFyIFc9eFYuVU5LTk9XTl9JTlRFUkZBQ0U7aWYoVyl7Vz1uZXcgUmVnRXhwKFcpO2Zvcih2YXIgRCBvZiBuKWlmKFcuZXhlYyhEKSlyZXR1cm4gRH12YXIgYj1bXTtPYmplY3QuZW50cmllcyh4VikuZm9yRWFjaCgoW3Ysa10pPT57IlVOS05PV05fSU5URVJGQUNFIiE9PXYmJmIucHVzaChrKX0pOwpEPW5ldyBSZWdFeHAoYi5qb2luKCJ8IikpO24uc29ydCgodixrKT0+di5sZW5ndGgtay5sZW5ndGgpOwpmb3IobGV0IHYgb2YgbilpZighRC5leGVjKHYpKXJldHVybiB2O3JldHVybiBuWzBdfTsKTEI9ZnVuY3Rpb24obil7cmV0dXJuYC95b3V0dWJlaS92MS8ke3BXTShuKX1gfTsKZ2I9ZnVuY3Rpb24obil7cmV0dXJuIGcucnIoInl0Y3NpLiIrKG58fCIiKSsiZGF0YV8iKXx8ZUwobil9OwpYQT1mdW5jdGlvbigpe3ZhciBuPWdiKCk7bi5pbmZvfHwobi5pbmZvPXt9KTtyZXR1cm4gbi5pbmZvfTsKcVE9ZnVuY3Rpb24obil7bj1nYihuKTtuLm1ldGFkYXRhfHwobi5tZXRhZGF0YT17fSk7cmV0dXJuIG4ubWV0YWRhdGF9OwpHdz1mdW5jdGlvbihuKXtuPWdiKG4pO24udGlja3x8KG4udGljaz17fSk7cmV0dXJuIG4udGlja307CnRtPWZ1bmN0aW9uKG4pe249Z2Iobik7aWYobi5nZWwpe2xldCBXPW4uZ2VsO1cuZ2VsSW5mb3N8fChXLmdlbEluZm9zPXt9KTtXLmdlbFRpY2tzfHwoVy5nZWxUaWNrcz17fSl9ZWxzZSBuLmdlbD17Z2VsVGlja3M6e30sZ2VsSW5mb3M6e319O3JldHVybiBuLmdlbH07CiRWPWZ1bmN0aW9uKG4pe249dG0obik7bi5nZWxJbmZvc3x8KG4uZ2VsSW5mb3M9e30pO3JldHVybiBuLmdlbEluZm9zfTsKWVZTPWZ1bmN0aW9uKCl7dmFyIG49dG0oKTtuLnByZUxvZ2dlZEdlbEluZm9zfHwobi5wcmVMb2dnZWRHZWxJbmZvcz1bXSk7cmV0dXJuIG4ucHJlTG9nZ2VkR2VsSW5mb3N9OwpyYj1mdW5jdGlvbihuKXt2YXIgVz1nYihuKS5ub25jZTtXfHwoVz1nLlJJKDE2KSxnYihuKS5ub25jZT1XKTtyZXR1cm4gV307CmVMPWZ1bmN0aW9uKG4pe3ZhciBXPXt0aWNrOnt9LGluZm86e319O2cuR2IoInl0Y3NpLiIrKG58fCIiKSsiZGF0YV8iLFcpO3JldHVybiBXfTsKc0g9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dGNzaS5kZWJ1ZyIpO258fChuPVtdLGcuR2IoInl0Y3NpLmRlYnVnIixuKSxnLkdiKCJ5dGNzaS5yZWZlcmVuY2UiLHt9KSk7cmV0dXJuIG59OwpwQj1mdW5jdGlvbihuKXt2YXIgVz1zSCgpO1cucHVzaChuKTtnLmwoImxpbWl0X3l0Y3NpX2RlYnVnX2FycmF5X3NpemUiKSYmVy5sZW5ndGg+TlEmJlcuc3BsaWNlKDAsVy5sZW5ndGgtTlEpfTsKSGI9ZnVuY3Rpb24obil7bj1ufHwiIjt2YXIgVz1ZVigpO2lmKFdbbl0pcmV0dXJuIFdbbl07dmFyIEQ9e3RpbWVyTmFtZTpuLGluZm86e30sdGljazp7fSxzcGFuOnt9LGpzcGJJbmZvOltdfTtwQihEKTtyZXR1cm4gV1tuXT1EfTsKZkI9ZnVuY3Rpb24obil7bj1ufHwiIjt2YXIgVz1ZVigpO1dbbl0mJmRlbGV0ZSBXW25dO3ZhciBEPXt0aW1lck5hbWU6bixpbmZvOnt9LHRpY2s6e30sc3Bhbjp7fSxqc3BiSW5mbzpbXX07cEIoRCk7V1tuXT1EfTsKWVY9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dGNzaS5yZWZlcmVuY2UiKTtpZihuKXJldHVybiBuO3NIKCk7cmV0dXJuIGcucnIoInl0Y3NpLnJlZmVyZW5jZSIpfTsKSUw9ZnVuY3Rpb24obil7cmV0dXJuIEptW25dfHwiTEFURU5DWV9BQ1RJT05fVU5LTk9XTiJ9OwpIbnI9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPU1hdGgucm91bmQoRC50aW1lc3RhbXB8fCgwLGcuUikoKSk7SVkobiwxLGI8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/YjowKTtiPW5ldyBTTDtpZihELmxhY3QpSVkoYiwxLGlzRmluaXRlKEQubGFjdCk/RC5sYWN0Oi0xKTtlbHNlIGlmKEQudGltZXN0YW1wKUlZKGIsMSwtMSk7ZWxzZXt2YXIgdj1nLnZJKCk7SVkoYiwxLGlzRmluaXRlKHYpP3Y6LTEpfWlmKEQuc2VxdWVuY2VHcm91cCYmIWcubCgid2ViX2dlbF9zZXF1ZW5jZV9pbmZvX2tpbGxzd2l0Y2giKSl7dj1ELnNlcXVlbmNlR3JvdXA7bGV0IGs9RXkodiksaD1uZXcgQW07SVkoaCwyLGspO2cuU0UoaCwxLHYpOyQ5KGIsQW0sMyxoKTtELmVuZE9mU2VxdWVuY2UmJmRlbGV0ZSBtcVtELnNlcXVlbmNlR3JvdXBdfSQ5KG4sU0wsMzMsYik7KEQuc2VuZElzb2xhdGVkUGF5bG9hZD9jSTpQVzEpKCJsYXRlbmN5QWN0aW9uSW5mbyIse2VuZHBvaW50OiJsb2dfZXZlbnQiLHBheWxvYWQ6biwKY3R0QXV0aEluZm86RC5jdHRBdXRoSW5mbyxkYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9uOkQuZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbn0sVyl9OwpmMmo9ZnVuY3Rpb24obixXPXt9KXt2YXIgRD0hMTtnLkFyKCJ5dExvZ2dpbmdFdmVudHNEZWZhdWx0RGlzYWJsZWQiLCExKSYmKEQ9ITApO0hucihuLEQ/bnVsbDpnLmQ0LFcpfTsKT0g9ZnVuY3Rpb24oKXtLQi5pbnN0YW5jZXx8KEtCLmluc3RhbmNlPW5ldyBLQik7cmV0dXJuIEtCLmluc3RhbmNlfTsKWk09ZnVuY3Rpb24obixXKXtQYltXXT1QYltXXXx8e2NvdW50OjB9O3ZhciBEPVBiW1ddO0QuY291bnQrKztELnRpbWU9KDAsZy5SKSgpO24uTnx8KG4uTj1nLmNCKDAsKCk9Pnt2YXIgYj0oMCxnLlIpKCk7Zm9yKGxldCB2IGluIFBiKVBiW3ZdJiZiLVBiW3ZdLnRpbWU+NkU0JiZkZWxldGUgUGJbdl07biYmKG4uTj0wKX0sNUUzKSk7CnJldHVybiBELmNvdW50PjU/KEQuY291bnQ9PT02JiZNYXRoLnJhbmRvbSgpKjFFNTwxJiYoRD1uZXcgZy5ReCgiQ1NJIGRhdGEgZXhjZWVkZWQgbG9nZ2luZyBsaW1pdCB3aXRoIGtleSIsVy5zcGxpdCgiXyIpKSxXLmluZGV4T2YoInBsZXYiKT49MHx8Zy5HcShEKSksITApOiExfTsKRUg9ZnVuY3Rpb24oKXt2YXIgbjtnLmwoImNzaV91c2VfcGVyZm9ybWFuY2VfbmF2aWdhdGlvbl90aW1pbmciKT8obj1VSD8uZ2V0RW50cmllc0J5VHlwZT8uKCJuYXZpZ2F0aW9uIik/LlswXT8udG9KU09OPy4oKSk/KG4ucmVxdWVzdFN0YXJ0PXl2KG4ucmVxdWVzdFN0YXJ0KSxuLnJlc3BvbnNlRW5kPXl2KG4ucmVzcG9uc2VFbmQpLG4ucmVkaXJlY3RTdGFydD15dihuLnJlZGlyZWN0U3RhcnQpLG4ucmVkaXJlY3RFbmQ9eXYobi5yZWRpcmVjdEVuZCksbi5kb21haW5Mb29rdXBFbmQ9eXYobi5kb21haW5Mb29rdXBFbmQpLG4uY29ubmVjdFN0YXJ0PXl2KG4uY29ubmVjdFN0YXJ0KSxuLmNvbm5lY3RFbmQ9eXYobi5jb25uZWN0RW5kKSxuLnJlc3BvbnNlU3RhcnQ9eXYobi5yZXNwb25zZVN0YXJ0KSxuLnNlY3VyZUNvbm5lY3Rpb25TdGFydD15dihuLnNlY3VyZUNvbm5lY3Rpb25TdGFydCksbi5kb21haW5Mb29rdXBTdGFydD15dihuLmRvbWFpbkxvb2t1cFN0YXJ0KSxuLmlzUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nPQohMCk6bj1VSC50aW1pbmc6bj1nLmwoImNzaV9wZXJmb3JtYW5jZV90aW1pbmdfdG9fb2JqZWN0Iik/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVSC50aW1pbmcpKTpVSC50aW1pbmc7cmV0dXJuIG59Owp5dj1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChpJCgpK24pfTsKaSQ9ZnVuY3Rpb24oKXtyZXR1cm4oZy5sKCJjc2lfdXNlX3RpbWVfb3JpZ2luIil8fGcubCgiY3NpX3VzZV90aW1lX29yaWdpbl90dmh0bWw1IikpJiZVSC50aW1lT3JpZ2luP01hdGguZmxvb3IoVUgudGltZU9yaWdpbik6VUgudGltaW5nLm5hdmlnYXRpb25TdGFydH07CkpTcj1mdW5jdGlvbigpe3ZhciBuPVlWUygpLFc9JFYoKSxEPXZvaWQgMDtmb3IodmFyIGI9MDtiPG4ubGVuZ3RoO2IrKyl7bGV0IHg9bltiXTtpZih4LmxvYWRUeXBlKXtEPXgubG9hZFR5cGU7YnJlYWt9fWlmKHFRKCkubG9hZFR5cGU9PT0iY29sZCImJihXLmxvYWRUeXBlPT09ImNvbGQifHxEPT09ImNvbGQiKSl7RD1HdygpO2I9dG0oKTtiPWIuZ2VsVGlja3M/Yi5nZWxUaWNrczpiLmdlbFRpY2tzPXt9O2Zvcih2YXIgdiBpbiBEKXYgaW4gYnx8dHlwZW9mIERbdl09PT0ibnVtYmVyIiYmdSQodixvTCh2KSk7dmFyIGs9e30saD0hMTt2PXg9PntqdyhXLHgpO2p3KGsseCk7aD0hMH07CmZvcihsZXQgeCBvZiBuKXYoeCk7aCYmZGIoayl9fTsKenc9ZnVuY3Rpb24obixXKXt1JCgiX3N0YXJ0IixuLFcpfTsKZGI9ZnVuY3Rpb24obixXKXtpZighZy5sKCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFnYihXKS5hY3Rpb25EaXNhYmxlZCl7dmFyIEQ9SGIoV3x8IiIpO2p3KEQuaW5mbyxuKTtuLmxvYWRUeXBlJiYoRD1uLmxvYWRUeXBlLHFRKFcpLmxvYWRUeXBlPUQpO2p3KCRWKFcpLG4pO0Q9cmIoVyk7Vz1nYihXKS5jdHRBdXRoSW5mbztPSCgpLmluZm8obixELFcpfX07CkkyWj1mdW5jdGlvbigpe3JldHVybihnLnFqKCkucmVzb2x2ZShnLmhwKGcuWDMpKT8uTFgoKT8ubG9nZ2luZ0hvdENvbmZpZz8uY3NpQ29uZmlnPy5kZWJ1Z1RpY2tzPz9bXSkubWFwKG49Pk9iamVjdC52YWx1ZXMobilbMF0pfTsKdSQ9ZnVuY3Rpb24obixXLEQpe2lmKCFnLmwoIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiKXx8IWdiKEQpLmFjdGlvbkRpc2FibGVkKXt2YXIgYj1yYihEKSx2O2lmKHY9Zy5sKCJ3ZWJfY3NpX2RlYnVnX3NhbXBsZV9lbmFibGVkIikmJmIpe2cucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpPy5MWCgpJiYhbCQmJihsJD0hMCx1JCgiZ2NmbCIsKDAsZy5SKSgpLEQpKTt2PWcucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpPy5MWCgpPy5sb2dnaW5nSG90Q29uZmlnPy5jc2lDb25maWc/LmRlYnVnU2FtcGxlV2VpZ2h0fHwwO3ZhciBrO2lmKGs9diE9PTApYjp7az1JMlooKTtpZihrLmxlbmd0aD4wKWZvcih2YXIgaD0wO2g8ay5sZW5ndGg7aCsrKWlmKG49PT1rW2hdKXtrPSEwO2JyZWFrIGJ9az0hMX1rPyh2PU9hKGIpJXYhPT0wLGdiKEQpLmRlYnVnVGlja3NFeGNsdWRlZExvZ2dlZHx8KGs9e30say5kZWJ1Z1RpY2tzRXhjbHVkZWQ9dixkYihrLEQpKSxnYihEKS5kZWJ1Z1RpY2tzRXhjbHVkZWRMb2dnZWQ9CiEwKTp2PSExfWlmKCF2KXtpZihuWzBdIT09Il8iJiYodj1uLFVILm1hcmspKXt2LnN0YXJ0c1dpdGgoIm1hcmtfIil8fCh2PSJtYXJrXyIrdik7RCYmKHYrPWAgKCR7RH0pYCk7az12O2g9e307aWYoVyE9PXZvaWQgMCYmIWcubCgid2ViX2NzaV9kaXNhYmxlX2FsdF90aW1lX3BlcmZvcm1hbmNlX21hcmsiKSl7bGV0IEw9VztMPWcubCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP0wtVUgudGltZU9yaWdpbjpMLShVSC50aW1lT3JpZ2lufHxVSC50aW1pbmcubmF2aWdhdGlvblN0YXJ0KTtoLnN0YXJ0VGltZT1MfWcubCgiY3NpX2VuYWJsZV9jaHJvbWVfZGV2dG9vbHNfcGVyZm9ybWFuY2VfdGltZWxpbmVfaW50ZWdyYXRpb24iKSYmKGguZGV0YWlsPXtHVTp7ZGF0YVR5cGU6Im1hcmtlciIsY29sb3I6InByaW1hcnkiLHRvb2x0aXBUZXh0Omt9fSk7az1PYmplY3Qua2V5cyhoKS5sZW5ndGg+MD9oOnZvaWQgMDt0cnl7VUgubWFyayh2LGspfWNhdGNoKEwpe1VILm1hcmsodil9fXY9CkhiKER8fCIiKTt2LnRpY2tbbl09V3x8KDAsZy5SKSgpO2lmKHYuY2FsbGJhY2smJnYuY2FsbGJhY2tbbl0pZm9yKHZhciB4IG9mIHYuY2FsbGJhY2tbbl0peCgpO3g9dG0oRCk7eC5nZWxUaWNrcyYmKHguZ2VsVGlja3Nbbl09ITApO3Y9R3coRCk7eD1XfHwoMCxnLlIpKCk7dltuXT14O3Y9Z2IoRCkuY3R0QXV0aEluZm87bj09PSJfc3RhcnQiPyhuPU9IKCksWk0obixgYmFzZWxpbmVfJHtifWApfHxnLnpVKCJsYXRlbmN5QWN0aW9uQmFzZWxpbmVkIix7Y2xpZW50QWN0aW9uTm9uY2U6Yn0se3RpbWVzdGFtcDpXLGN0dEF1dGhJbmZvOnZ9KSk6T0goKS50aWNrKG4sYixXLHYpO1R3KEQpO3JldHVybiB4fX19OwpTVjE9ZnVuY3Rpb24oKXt2YXIgbj1VSC5nZXRFbnRyaWVzQnlUeXBlPy4oIm1hcmsiKTtuJiZuLmZvckVhY2goVz0+e1cubmFtZS5zdGFydHNXaXRoKCJtYXJrXyIpJiZVSC5jbGVhck1hcmtzPy4oVy5uYW1lKX0pfTsKakw9ZnVuY3Rpb24oKXtzd2l0Y2goRzEoKSl7Y2FzZSAiaGlkZGVuIjpyZXR1cm4gMDtjYXNlICJ2aXNpYmxlIjpyZXR1cm4gMTtjYXNlICJwcmVyZW5kZXIiOnJldHVybiAyO2Nhc2UgInVubG9hZGVkIjpyZXR1cm4gMztkZWZhdWx0OnJldHVybi0xfX07CkNCPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9KGIsdixrKT0+e3Y9di5tYXRjaCgiX3JpZCIpP3Yuc3BsaXQoIl9yaWQiKVswXTp2O3R5cGVvZiBrPT09Im51bWJlciImJihrPUpTT04uc3RyaW5naWZ5KGspKTtiLnJlcXVlc3RJZHM/Yi5yZXF1ZXN0SWRzLnB1c2goe2VuZHBvaW50OnYsaWQ6a30pOmIucmVxdWVzdElkcz1be2VuZHBvaW50OnYsaWQ6a31dfTsKZm9yKGxldCBbYix2XW9mIE9iamVjdC5lbnRyaWVzKG4pKXtuPWI7bGV0IGs9djtzd2l0Y2gobil7Y2FzZSAiR2V0QnJvd3NlX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0R3VpZGVfcmlkIjpEKFcsbixrKTticmVhaztjYXNlICJHZXRIb21lX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0UGxheWVyX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0U2VhcmNoX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0U2V0dGluZ3NfcmlkIjpEKFcsbixrKTticmVhaztjYXNlICJHZXRUcmVuZGluZ19yaWQiOkQoVyxuLGspO2JyZWFrO2Nhc2UgIkdldFdhdGNoTmV4dF9yaWQiOkQoVyxuLGspO2JyZWFrO2Nhc2UgInl0X3JlZCI6Vy5pc1JlZFN1YnNjcmliZXI9ISFrO2JyZWFrO2Nhc2UgInl0X2FkIjpXLmlzTW9uZXRpemVkPSEha319cmV0dXJuIFd9OwpBU3g9ZnVuY3Rpb24obixXKXtuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobik7aWYoIW4pcmV0dXJuITE7dmFyIEQ9IiIsYj1uLm5vZGVOYW1lO2I9PT0iU0NSSVBUIj8oRD1uLnNyYyxEfHwoRD1uLmdldEF0dHJpYnV0ZSgiZGF0YS10aW1pbmctaHJlZiIpKSYmKEQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sK0QpKTpiPT09IkxJTksiJiYoRD1uLmhyZWYpO1NqKGRvY3VtZW50KSYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixTaihkb2N1bWVudCkpO3JldHVybiBEPyhuPVVILmdldEVudHJpZXNCeU5hbWUoRCkpJiZuWzBdJiYobj1uWzBdLEQ9aSQoKSx1JCgicnNmXyIrVyxEK01hdGgucm91bmQobi5mZXRjaFN0YXJ0KSksdSQoInJzZV8iK1csRCtNYXRoLnJvdW5kKG4ucmVzcG9uc2VFbmQpKSxuLnRyYW5zZmVyU2l6ZSE9PXZvaWQgMCYmbi50cmFuc2ZlclNpemU9PT0wKT8hMDohMTohMX07Cm1IMT1mdW5jdGlvbigpe3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCxXPVVILmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIik7Vz1nLkVNKFcsRD0+RC5uYW1lLmluZGV4T2YoYCR7bn0vL2ZvbnRzLmdzdGF0aWMuY29tL3MvYCk9PT0wKTsKKFc9Zy51XyhXLChELGIpPT5iLmR1cmF0aW9uPkQuZHVyYXRpb24/YjpELHtkdXJhdGlvbjowfSkpJiZXLnN0YXJ0VGltZT4wJiZXLnJlc3BvbnNlRW5kPjAmJih1JCgid2ZmcyIseXYoVy5zdGFydFRpbWUpKSx1JCgid2ZmZSIseXYoVy5yZXNwb25zZUVuZCkpKX07CktOdD1mdW5jdGlvbihuLFcsRCl7VUgmJlVILm1lYXN1cmUmJihuLnN0YXJ0c1dpdGgoIm1lYXN1cmVfIil8fChuPSJtZWFzdXJlXyIrbiksRD9VSC5tZWFzdXJlKG4sVyxEKTpXP1VILm1lYXN1cmUobixXKTpVSC5tZWFzdXJlKG4pKX07CkJiPWZ1bmN0aW9uKG4pe3ZhciBXPW9MKCJhZnQiLG4pO2lmKFcpcmV0dXJuIFc7Vz1nLkFyKChufHwiIikrIlRJTUlOR19BRlRfS0VZUyIsWyJvbCJdKTt2YXIgRD1XLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKXtsZXQgdj1vTChXW2JdLG4pO2lmKHYpcmV0dXJuIHZ9cmV0dXJuIE5hTn07CkZBPWZ1bmN0aW9uKG4sVyl7Zy5HYigieXRnbG9iYWwudGltaW5nIisoV3x8IiIpKyJyZWFkeV8iLG4pfTsKb0w9ZnVuY3Rpb24obixXKXtpZihuPUd3KFcpW25dKXJldHVybiB0eXBlb2Ygbj09PSJudW1iZXIiP246bltuLmxlbmd0aC0xXX07ClR3PWZ1bmN0aW9uKG4pe3ZhciBXPW9MKCJfc3RhcnQiLG4pLEQ9QmIobiksYj0hd2I7VyYmRCYmYiYmKGw5KE9udCxuZXcgTVEoTWF0aC5yb3VuZChELVcpLG4pKSx3Yj0hMCl9OwpQYXg9ZnVuY3Rpb24oKXtpZihVSC5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbj1VSC5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpO2lmKG49Zy5sXyhuLEQ9PkQubmFtZT09PSJmaXJzdC1wYWludCIpKXJldHVybiB5dihuLnN0YXJ0VGltZSl9dmFyIFc7CmcubCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP1c9VUguZ2V0RW50cmllc0J5VHlwZSgiZmlyc3QtcGFpbnQiKVswXS5zdGFydFRpbWU6Vz1VSC50aW1pbmcubDI7cmV0dXJuIFc/TWF0aC5tYXgoMCxXKTowfTsKZy5STD1mdW5jdGlvbihuKXtlTChuKTtabmkoKTtTVjEoKTtufHwoZy5BcigiVElNSU5HX0FDVElPTiIpJiZnLlNIKCJQUkVWSU9VU19BQ1RJT04iLGcuQXIoIlRJTUlOR19BQ1RJT04iKSksZy5TSCgiVElNSU5HX0FDVElPTiIsIiIpKX07CmNiPWZ1bmN0aW9uKG4sVyl7UFYoKCk9PntIYigiIikuaW5mby5hY3Rpb25UeXBlPW47VyYmZy5TSCgiVElNSU5HX0FGVF9LRVlTIixXKTtnLlNIKCJUSU1JTkdfQUNUSU9OIixuKTt2YXIgRD1DQihnLkFyKCJUSU1JTkdfSU5GTyIse30pKTtPYmplY3Qua2V5cyhEKS5sZW5ndGg+MCYmZGIoRCk7RD17aXNOYXZpZ2F0aW9uOiEwLGFjdGlvblR5cGU6SUwoZy5BcigiVElNSU5HX0FDVElPTiIpKX07dmFyIGI9Zy5BcigiUFJFVklPVVNfQUNUSU9OIik7YiYmKEQucHJldmlvdXNBY3Rpb249SUwoYikpO2lmKGI9Zy5BcigiQ0xJRU5UX1BST1RPQ09MIikpRC5odHRwUHJvdG9jb2w9YjtpZihiPWcuQXIoIkNMSUVOVF9UUkFOU1BPUlQiKSlELnRyYW5zcG9ydFByb3RvY29sPWI7KGI9Zy5SdigpKSYmYiE9PSJVTkRFRklORURfQ1NOIiYmKEQuY2xpZW50U2NyZWVuTm9uY2U9Yik7Yj1qTCgpO2lmKGI9PT0xfHxiPT09LTEpRC5pc1Zpc2libGU9ITA7Yj1xUSgpLmxvYWRUeXBlPT09ImNvbGQiOwp2YXIgdj1YQSgpO2J8fChiPXYueXRfbHQ9PT0iY29sZCIpO2lmKGIpe0QubG9hZFR5cGU9ImNvbGQiO2I9WEEoKTt2PUVIKCk7bGV0IHg9aSQoKSxMPWcuQXIoIkNTSV9TVEFSVF9USU1FU1RBTVBfTUlMTElTIiwwKTtMPjAmJiFnLmwoImVtYmVkc193ZWJfZW5hYmxlX2NzaV9zdGFydF9vdmVycmlkZV9raWxsc3dpdGNoIikmJih4PUwpO3gmJih1JCgic3J0Iix2LnJlc3BvbnNlU3RhcnQpLGIucHJlcmVuZGVyIT09MSYmencoeCkpO2I9UGF4KCk7Yj4wJiZ1JCgiZnB0IixiKTtiPUVIKCk7Yi5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyYmZGIoe3BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZzohMH0sdm9pZCAwKTt1JCgibnJlcXMiLGIucmVxdWVzdFN0YXJ0LHZvaWQgMCk7dSQoIm5yZXNzIixiLnJlc3BvbnNlU3RhcnQsdm9pZCAwKTt1JCgibnJlc2UiLGIucmVzcG9uc2VFbmQsdm9pZCAwKTtiLnJlZGlyZWN0RW5kLWIucmVkaXJlY3RTdGFydD4wJiYodSQoIm5ycyIsYi5yZWRpcmVjdFN0YXJ0LAp2b2lkIDApLHUkKCJucmUiLGIucmVkaXJlY3RFbmQsdm9pZCAwKSk7Yi5kb21haW5Mb29rdXBFbmQtYi5kb21haW5Mb29rdXBTdGFydD4wJiYodSQoIm5kbnNzIixiLmRvbWFpbkxvb2t1cFN0YXJ0LHZvaWQgMCksdSQoIm5kbnNlIixiLmRvbWFpbkxvb2t1cEVuZCx2b2lkIDApKTtiLmNvbm5lY3RFbmQtYi5jb25uZWN0U3RhcnQ+MCYmKHUkKCJudGNwcyIsYi5jb25uZWN0U3RhcnQsdm9pZCAwKSx1JCgibnRjcGUiLGIuY29ubmVjdEVuZCx2b2lkIDApKTtiLnNlY3VyZUNvbm5lY3Rpb25TdGFydD49aSQoKSYmYi5jb25uZWN0RW5kLWIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0PjAmJih1JCgibnN0Y3BzIixiLnNlY3VyZUNvbm5lY3Rpb25TdGFydCx2b2lkIDApLHUkKCJudGNwZSIsYi5jb25uZWN0RW5kLHZvaWQgMCkpO1VIJiYiZ2V0RW50cmllc0J5VHlwZSJpbiBVSCYmbUgxKCk7Yj1bXTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yJiZVSCYmVUguZ2V0RW50cmllc0J5TmFtZSlmb3IoayBpbiBRdilRdi5oYXNPd25Qcm9wZXJ0eShrKSYmCih2PVF2W2tdLEFTeChrLHYpJiZiLnB1c2godikpO3ZhciBrPWI7aWYoay5sZW5ndGg+MCl7RC5yZXNvdXJjZUluZm89W107Zm9yKHZhciBoIG9mIGspRC5yZXNvdXJjZUluZm8ucHVzaCh7cmVzb3VyY2VDYWNoZTpofSl9fWRiKEQpO0pTcigpO0ZBKCEwKTtoPWcuQXIoIlRJTUlOR19BQ1RJT04iKTtnLnJyKCJ5dGdsb2JhbC50aW1pbmdyZWFkeV8iKSYmaCYmVnYoKSYmQmIoKSYmVHcoKX0pKCl9OwpXUD1mdW5jdGlvbigpe3ZhciBuPXt9O1BWKCgpPT57VnYoKSYmZy5hTCgiYWEiLHZvaWQgMCx2b2lkIDApO2ZCKCk7Zy5STCgpO0ZBKCExKTtuLmN0dEF1dGhJbmZvJiYoZ2IoKS5jdHRBdXRoSW5mbz1uLmN0dEF1dGhJbmZvKTtnLlNIKCJUSU1JTkdfQUZUX0tFWVMiLFtdKTtuLnJQP2cubmwoe2xvYWRUeXBlOiJob3QifSk6Zy5ubCh7bG9hZFR5cGU6Indhcm0ifSk7Zy5TSCgiVElNSU5HX0FDVElPTiIsIiIpO2RlbGV0ZSBnLkFyKCJUSU1JTkdfSU5GTyIse30pLnl0X2x0O1BWKHp3KShuLnN0YXJ0VGltZSx2b2lkIDApfSkoKX07CmcuYmQ9ZnVuY3Rpb24obixXPXt9KXtQVigoKT0+e2cuRFkobik7dmFyIEQ9Vy5zYW1wbGVSYXRlO2lmKCFnLmwoIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiKXx8RD09PXZvaWQgMHx8RDw9MSlEPSExO2Vsc2V7dmFyIGI9cmIobik7RD1PYShiKSVEIT09MH1EJiYoZ2IobikuYWN0aW9uRGlzYWJsZWQ9ITApO0hiKG58fCIiKS5pbmZvLmFjdGlvblR5cGU9bjtXLmN0dEF1dGhJbmZvJiYoZ2IobikuY3R0QXV0aEluZm89Vy5jdHRBdXRoSW5mbyk7Zy5TSChuKyJUSU1JTkdfQUNUSU9OIixuKTtQVih6dykoVy5zdGFydFRpbWUsbik7RD17YWN0aW9uVHlwZTpJTChuKX07Vy5leiYmKEQucHJldmlvdXNBY3Rpb249SUwoZy5BcigiVElNSU5HX0FDVElPTiIpKSk7KGI9Zy5SdigpKSYmYiE9PSJVTkRFRklORURfQ1NOIiYmKEQuY2xpZW50U2NyZWVuTm9uY2U9Yik7Zy5ubChELG4pO0ZBKCEwLG4pfSkoKX07CmcuRFk9ZnVuY3Rpb24obil7UFYoKCk9PntWdihuKSYmZy5hTCgiYWEiLHZvaWQgMCxuKTtmQihuKTtnLlJMKG4pfSkoKX07ClZ2PWZ1bmN0aW9uKG4pe3JldHVybiBQVigoKT0+Zy52UCgiX3N0YXJ0IixuKSkoKX07Cmcubmw9ZnVuY3Rpb24obixXLEQ9ITEpe1BWKGRiKShuLFcsRCl9OwpnLmFMPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUFYodSQpKG4sVyxEKX07CmtEPWZ1bmN0aW9uKG4pe1BWKEtOdCkoImFjdGlvbl9maW5pc2hlZCIsbix2b2lkIDApfTsKZy52UD1mdW5jdGlvbihuLFcpe3JldHVybiBQVigoKT0+e3ZhciBEPUd3KFcpO3JldHVybiBuIGluIER9KSgpfTsKeEQ9ZnVuY3Rpb24obil7aWYoIWcubCgidW5pdmVyc2FsX2NzaV9uZXR3b3JrX3RpY2tzIikpcmV0dXJuIiI7bj1TMShuKXx8IiI7dmFyIFc9T2JqZWN0LmtleXMoaGUpO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKXtsZXQgYj1XW0RdO2lmKG4uaW5jbHVkZXMoYikpcmV0dXJuIGJ9cmV0dXJuIiJ9Owplaz1mdW5jdGlvbihuKXtpZighZy5sKCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKSlyZXR1cm4oKT0+e307CnZhciBXPWhlW25dO3JldHVybiBXPyhnLkxsKFcpLCgpPT57dmFyIEQ9Zy5sKCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKT8oRD1VSE1bbl0pP2cuTGwoRCk6ITE6ITE7cmV0dXJuIER9KTooKT0+e319OwpnLkxsPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUFYoKCk9PntpZihnLnZQKG4sRCkpcmV0dXJuITE7Zy5hTChuLFcsRCk7cmV0dXJuITB9KSgpfTsKZy5nXz1mdW5jdGlvbihuLFcsRCl7UFYoKCk9PntpZighVnYoRCl8fGcudlAobixEKSlyZXR1cm4hMTtnLmFMKG4sVyxEKTtyZXR1cm4hMH0pKCl9Owp5U2g9ZnVuY3Rpb24oKXtQVigoKT0+e3ZhciBuPXJiKCk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57c2V0VGltZW91dCgoKT0+e249PT1yYigpJiZnLmFMKCJmdGwiLHZvaWQgMCx2b2lkIDApfSwwKX0pfSkoKX07CkU5Yj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKFg3Lmluc3RhbmNlIT09dm9pZCAwKXtpZihiPVg3Lmluc3RhbmNlLG49W24hPT1iLmosVyE9PWIueUcsRCE9PWIuVyx2IT09Yi5KLCExLCExLCExXSxuLnNvbWUoaz0+aykpdGhyb3cgbmV3IGcuUXgoIklubmVyVHViZVRyYW5zcG9ydFNlcnZpY2UgaXMgYWxyZWFkeSBpbml0aWFsaXplZCIsbik7Cn1lbHNlIFg3Lmluc3RhbmNlPW5ldyBYNyhuLFcsRCxiLHYpfTsKaW53PWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXtuPWF3YWl0ICRHKG4uVy5haihXPy5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6Vz8uQkc/LnNlc3Npb25JbmRleH0pKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsuLi5rVihEKSwuLi5ufSl9OwpkSGo9YXN5bmMgZnVuY3Rpb24obixXLEQsYj0oKT0+e30pe3ZhciB2PVcuY29uZmlnPy5Ibj8uUkw7CmlmKHYmJm4uSiYmbi5KLmhhcyh2KSYmIVcuY29uZmlnPy5Ibj8uZGlzYWJsZUNhY2hlKXt2YXIgaz1hd2FpdCBuLkouZ2V0KHYpO2lmKGsmJiFrLmlzRXhwaXJlZCgpKXJldHVybiBiPXFyKGspLGsuaXNQcm9jZXNzZWQoKXx8KEdXKG4sYixXKSxhd2FpdCB0ZShuLkosdikpLFByb21pc2UucmVzb2x2ZShiKX1hd2FpdCB1X3QoVyk7KHY9Vy5jb25maWc/LnJlcXVlc3RLZXkpJiZuLk4uaGFzKHYpP0Q9bi5OLmdldCh2KTooaz1KU09OLnN0cmluZ2lmeShXLmlubmVyVHViZVJlcXVlc3QpLFcuUGk9ey4uLlcuUGksaGVhZGVyczp7Li4uKFcuUGk/LmhlYWRlcnM/P3t9KSwuLi5EfX0sRD17Li4uVy5QaX0sVy5QaS5tZXRob2Q9PT0iUE9TVCImJihEPXsuLi5ELGJvZHk6a30pLFcuY29uZmlnPy5MYSYmZy5hTChXLmNvbmZpZy5MYSksRD1uLnlHLmZldGNoKFcuaW5wdXQsRCxXLmNvbmZpZyksdiYmbi5OLnNldCh2LEQpKTtpZigoRD1hd2FpdCBEKSYmImVycm9yImluIEQmJkQ/LmVycm9yPy5kZXRhaWxzKXtrPQpELmVycm9yLmRldGFpbHM7Zm9yKGxldCBoIG9mIGspKGs9aFsiQHR5cGUiXSkmJm85ai5pbmRleE9mKGspPi0xJiYoZGVsZXRlIGhbIkB0eXBlIl0sRD1oKX12JiZuLk4uaGFzKHYpJiZuLk4uZGVsZXRlKHYpO1cuY29uZmlnPy5SViYmZy5hTChXLmNvbmZpZy5SVik7R1cobixELFcpO1cuY29uZmlnPy5HdCYmZy5hTChXLmNvbmZpZy5HdCk7YigpO3JldHVybiBEfHx2b2lkIDB9OwpnLnJfPWZ1bmN0aW9uKG4sVyxELGIsdj17Qkc6e2lkZW50aXR5OnU5fX0pe3ZhciBrPWcucWooKS5yZXNvbHZlKGcuaHAoJEQpKT8uKCk7aWYoKGcubCgibWF3X25ldHdvcmtfbWFjaGluZV9yYXdfcmVxdWVzdCIpfHxnLmwoImFsbF93ZWJfbmV0d29ya19tYWNoaW5lX3Jhd19yZXF1ZXN0IikpJiZrKXJldHVybiB6VGoobDJqKGsse2lubmVyVHViZVJlcXVlc3Q6VyxhcGlQYXRoOkQsY2xpY2tUcmFja2luZ1BhcmFtczpiLGNvbmZpZzp2LGluY2x1ZGVDdXJyZW50U2NyZWVuTm9uY2U6ITB9KSkudGhlbih4PT54LCgpPT57fSk7CnZhciBoPSgpPT57fTsKaD1layh4RChEKSk7Vy5jb250ZXh0fHwoVy5jb250ZXh0PWcudmIoYiwhMCkpO3JldHVybiBuZXcgZy5YMShhc3luYyB4PT57dmFyIEw9SyQoRCk7TD1nLlRkKEwpPyJzYW1lLW9yaWdpbiI6ImNvcnMiO2lmKG4uVy5zQil7dmFyIGU9bi5XLmFqKHY/LkJHPy5pZGVudGl0eXx8dTkse3Nlc3Npb25JbmRleDp2Py5CRz8uc2Vzc2lvbkluZGV4fSk7TD17Li4ua1YoTCksLi4uZX19ZWxzZSBMPWF3YWl0IGludyhuLHYsTCk7ZT1acihLJChEKSk7ZT17aW5wdXQ6ZSxQaTpVeihlKSxpbm5lclR1YmVSZXF1ZXN0OlcsY29uZmlnOnZ9O3goZEhqKG4sZSxMLGgpKX0pfTsKdV90PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKG4/LmlubmVyVHViZVJlcXVlc3Q/LmNvbnRleHQpe249bi5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ7Zm9yKGxldCBXIG9mW10pYXdhaXQgVy5CcyhuKX19OwpHVz1mdW5jdGlvbihuLFcsRCl7aWYoVyYmIVc/LnNlcXVlbmNlTWV0YURhdGE/LnNraXBQcm9jZXNzaW5nJiZuLlgpZm9yKGxldCBiIG9mIHNvKW4uWFtiXSYmbi5YW2JdLmhhbmRsZVJlc3BvbnNlKFcsRCl9OwpwbD1mdW5jdGlvbigpe3ZhciBuLFc7cmV0dXJue3JGOm5ldyBOcigoRCxiKT0+e249RDtXPWJ9KSwKcmVzb2x2ZTpuLHJlamVjdDpXfX07CkhQPWZ1bmN0aW9uKG4pe3JldHVybiBZRChuKT9uOllvKG4pP25ldyBOcigoVyxEKT0+e24udGhlbihXLEQpfSk6bmV3IE5yKFc9PntXKG4pfSl9OwpmbD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IE5yKChXLEQpPT57RChuKX0pfTsKSmU9ZnVuY3Rpb24obil7dHJ5e3JldHVybiBIUChuKCkpfWNhdGNoKFcpe3JldHVybiBmbChXKX19Owp6VGo9ZnVuY3Rpb24obil7cmV0dXJuIElqKG4sZy5YMSl9OwpJaj1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgVygoRCxiKT0+e1NrKG4sRCxiKX0pfTsKQWU9YXN5bmMgZnVuY3Rpb24obil7cmV0dXJuIElqKG4sUHJvbWlzZSl9OwptRT1mdW5jdGlvbihuKXtpZihuLk49PT0iZnVsZmlsbGVkIil7dmFyIFc9bi5KO24uSj1bXTtuLlc9W107Zm9yKHZhciBEIG9mIFcpRChuLnJlc3VsdCl9ZWxzZSBpZihuLk49PT0icmVqZWN0ZWQiKXtEPW4uVztuLko9W107bi5XPVtdO2ZvcihXIG9mIEQpVyhuLmVycm9yKX19OwpTaz1mdW5jdGlvbihuLFcsRCl7dmFyIHtyRjpiLHJlc29sdmU6dixyZWplY3Q6a309cGwoKTtuLkoucHVzaChoPT57aWYoVyl0cnl7bGV0IHg9VyhoKTt2KHgpfWNhdGNoKHgpe2soeCl9ZWxzZSB2KGgpfSk7Cm4uVy5wdXNoKGg9PntpZihEKXRyeXtsZXQgeD1EKGgpO3YoeCl9Y2F0Y2goeCl7ayh4KX1lbHNlIGsoaCl9KTsKbUUobik7cmV0dXJuIGJ9OwpLbD1mdW5jdGlvbihuLFcpe3JldHVybiBTayhuLHZvaWQgMCxXKX07ClRlYj1mdW5jdGlvbihuLFcpe1NrKG4sRD0+U2soSFAoVygpKSwoKT0+RCksRD0+U2soSFAoVygpKSwoKT0+ZmwoRCkpKX07Ck9vPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGpZMShXLmNhbGwobikpfTsKUFA9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZHtyRjpIUChuKX19KCl9OwpqWTE9ZnVuY3Rpb24obil7cmV0dXJuIEplKCgpPT5aWShuLG4ubmV4dCgpKSl9OwpaWT1mdW5jdGlvbihuLFcpe3JldHVybiBXLmRvbmU/SFAoVy52YWx1ZSk6S2woU2soVy52YWx1ZS5yRixEPT5aWShuLG4ubmV4dChEKSkpLEQ9PlpZKG4sbi50aHJvdyhEKSkpfTsKRk54PWZ1bmN0aW9uKG4pe3ZhciBXPUNhVShuKTtyZXR1cm4gU2soQmVTKFcpLCgpPT5XLm1hcChEPT5ELnN0YXRlKCkpKX07CkJlUz1mdW5jdGlvbihuKXtpZihuLmxlbmd0aD09PTApcmV0dXJuIEhQKE5hTik7dmFyIHtyRjpXLHJlc29sdmU6RH09cGwoKSxiPW4ubGVuZ3RoO2ZvcihsZXQgdj0wO3Y8bi5sZW5ndGg7disrKVRlYihuW3ZdLCgpPT57Vy5OPT09InBlbmRpbmciJiYod1dqKHZvaWQgMCkmJih2b2lkIDApKHYpJiZXLk49PT0icGVuZGluZyI/RCh2KTooLS1iLGI9PT0wJiZEKE5hTikpKX0pOwpyZXR1cm4gV307CkNhVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoVz0+SFAoVykpfTsKTUV3PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gT28obixmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciB2PSRHKGIuTi5haihXPy5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6Vz8uQkc/LnNlc3Npb25JbmRleH0pKTt2PXlpZWxkKlBQKEhQKHYpKTtyZXR1cm57Li4ua1YoRCksLi4udn19KCl9KX07ClVvPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09MXx8bj09PTJ9OwpWRTI9ZnVuY3Rpb24obixXLEQ9ITEpe3ZhciBiLHY9Zy53KFcsUlRoKT8ucmVxdWVzdDt2JiZuLk4uaVQmJihiPW4uTi5pVFt2XSk7Ynx8RHx8KHY9Zy53KFcsUVlNKT8uc2lnbmFsKSYmbi5OLndkJiYoYj1uLk4ud2Rbdl0pO2lmKCFiJiYobj1EP24uTi51STpuLk4uemcpKWZvcihsZXQgayBpbiBXKWlmKG5ba10pe2I9bltrXTticmVha31pZighYil7aWYoRCl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIHN0cmVhbWluZyByZXF1ZXN0IGJ1aWxkZXIgZm91bmQgZm9yIGNvbW1hbmQiKTt0aHJvdyBFcnJvcigiRXJyb3I6IE5vIHJlcXVlc3QgYnVpbGRlciBmb3VuZCBmb3IgY29tbWFuZC4iKTt9Vz1iKCk7cmV0dXJuIEhQKFcpfTsKbDJqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ucnVuKCJSRVFVRVNUX0lOSVQiLFcpfTsKeXE9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5ydW4oIlBST0NFU1NfUkVTUE9OU0UiLFcsIlJlc3BvbnNlTWFjaGluZSAoQ2FjaGUpIil9OwpFbz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4ucnVuKCJJTklUIixXLEQhPT12b2lkIDA/YFJlc3BvbnNlTWFjaGluZSAoQ2h1bmsgJHtEfSlgOiJSZXNwb25zZU1hY2hpbmUiKX07CmNTMj1mdW5jdGlvbigpe3ZhciBuPWcucWooKTtnLnhvKG4se05IOmlkLFJjOigpPT5uZXcgTWFwfSk7CmcueG8obix7Tkg6dWQsWUw6dWQscG46ITB9KTtnLnhvKG4se05IOm9qLFlMOm9qLHBuOiEwfSk7Zy54byhuLHtOSDpkXyxZTDpkXyxwbjohMH0pO2cueG8obix7Tkg6elcsWUw6elcscG46ITB9KTtnLnhvKG4se05IOmxkLFlMOmxkLHBuOiEwfSk7Zy54byhuLHtOSDpUVyxZTDpUVyxwbjohMH0pO2cueG8obix7Tkg6amssWUw6amsscG46ITB9KTtnLnhvKG4se05IOkNsLFlMOkNsLHBuOiEwfSk7Zy54byhuLHtOSDpCUCxZTDpCUCxwbjohMH0pO2cueG8obix7Tkg6RjcsWUw6RjcscG46ITB9KTtnLnhvKG4se05IOndfLFJjOihXLEQsYix2LGssaCx4LEwsZSxHKT0+KHtDT01NQU5EX0lOSVQ6TCxSRVFVRVNUX0lOSVQ6ZSxDQUNIRTpELExPQ0FMX1JPVVRFUjp4LENPTlRFWFQ6YixBVVRIOlcsREVEVVBFOnYsRkVUQ0g6aCxSRVRSWTpHLEZBTExCQUNLOmt9KSwKW2cuTFhdOlt1ZCxvaixkXyx6VyxsZCxUVyxqayxDbCxCUCxGN10scG46ITB9KTtnLnhvKG4se05IOiRELFJjOlc9PigpPT5uZXcgZy5NcihXKSwKW2cuTFhdOlt3X10scG46ITB9KTtnLnhvKG4se05IOlJqLFlMOlJqLHBuOiEwfSk7Zy54byhuLHtOSDpRcSxZTDpRcSxwbjohMH0pO2cueG8obix7Tkg6VnEsWUw6VnEscG46ITB9KTtnLnhvKG4se05IOmNQLFlMOmNQLHBuOiEwfSk7Zy54byhuLHtOSDphaixSYzooVyxELGIsdik9Pih7SU5JVDp2LEVSUk9SX1VOUEFDS0VSOkQsUFJPQ0VTU19SRVNQT05TRTpiLENBTExCQUNLX0RJU1BBVENIRVI6V30pLApbZy5MWF06W1JqLFFxLFZxLGNQXSxwbjohMH0pO2cueG8obix7Tkg6blIsUmM6Vz0+KCk9Pm5ldyBXRyhXKSwKW2cuTFhdOlthal0scG46ITB9KX07CnFyPWZ1bmN0aW9uKG4pe3JldHVybnsuLi5uLmRhdGEuaW5uZXJ0dWJlUmVzcG9uc2UsY2FjaGVNZXRhZGF0YTp7aXNDYWNoZUhpdDohMH19fTsKdGU9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uLk4uZ2V0KFcpO0QmJihELmVudHJ5RGF0YS5pc1Byb2Nlc3NlZD0hMCxhd2FpdCBEdyhuLFcsRC5lbnRyeURhdGEpKX07CkR3PWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLko7aWYoRC5leHBpcmVUaW1lc3RhbXBNcyl7Yj1OdW1iZXIoRC5leHBpcmVUaW1lc3RhbXBNcyktTWF0aC5yb3VuZCgoMCxnLlIpKCkpO2xldCB2PXYwKCJtd2ViX292ZXJyaWRlX3Jlc3BvbnNlX3N0b3JlX2V4cGlyYXRpb25fbXMiKTt2PjAmJnY8YiYmKGI9dil9Yj1zZXRUaW1lb3V0KCgpPT57bi5yZW1vdmUoVyl9LGIpOwpuLk4uc2V0KFcse2VudHJ5RGF0YTpELHRpbWVyOmJ9KX07CnZHPWZ1bmN0aW9uKG4sVyl7aWYobj1uLk4uZ2V0KFcpKXJldHVybiBuZXcgYmgobi5lbnRyeURhdGEpfTsKa009ZnVuY3Rpb24obixXKXt2YXIgRD1uLk4uZ2V0KFcpO0QmJihjbGVhclRpbWVvdXQoRC50aW1lciksbi5OLmRlbGV0ZShXKSl9OwpoUj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9ey4uLm59O2ZvcihsZXQgdiBvZiBPYmplY3Qua2V5cyhXKSl7bGV0IGs9blt2XSxoPVdbdl07aWYoaD09PXZvaWQgMClkZWxldGUgYlt2XTtlbHNlIGlmKGs9PT12b2lkIDApYlt2XT1oO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShoKSYmQXJyYXkuaXNBcnJheShrKSliW3ZdPUQ/Wy4uLmssLi4uaF06aDtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGgpJiZnLmZ0KGgpJiYhQXJyYXkuaXNBcnJheShrKSYmZy5mdChrKSliW3ZdPWhSKGssaCxEKTtlbHNlIGlmKHR5cGVvZiBoPT09dHlwZW9mIGspYlt2XT1oO2Vsc2UgcmV0dXJuIFc9bmV3IGcuUXgoIkF0dGVtcHRlZCB0byBtZXJnZSBmaWVsZHMgb2YgZGlmZmVyaW5nIHR5cGVzLiIse25hbWU6IkRlZXBNZXJnZUVycm9yIixrZXk6dixGVzprLHVwZGF0ZVZhbHVlOmh9KSxnLlhqKFcpLG59cmV0dXJuIGJ9Owp4TT1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4ubGVuZ3RoPT09MD8hMToobj1uLk5bbi5OLmxlbmd0aC0xXSkmJm4uYnVmZmVyPT09Vy5idWZmZXImJm4uYnl0ZU9mZnNldCtuLmxlbmd0aD09PVcuYnl0ZU9mZnNldH07CkxSPWZ1bmN0aW9uKG4pe24uWD12b2lkIDA7bi5KPTA7bi5XPTB9OwplNT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBXLk4pbi5hcHBlbmQoRCl9OwpnZD1mdW5jdGlvbihuLFcsRCl7dmFyIHtDczpiLFk5OnZ9PW4uc3BsaXQoVyk7KHtDczpifT12LnNwbGl0KEQpKTtyZXR1cm4gYn07ClhhPWZ1bmN0aW9uKG4sVyxEKXtuLmlzRm9jdXNlZChXKTtyZXR1cm4gVy1uLlcrRDw9bi5OW24uSl0ubGVuZ3RofTsKcUQ9ZnVuY3Rpb24obil7aWYoIW4uWCl7bGV0IFc9bi5OW24uSl07bi5YPW5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5sZW5ndGgpfXJldHVybiBuLlh9OwpHNj1mdW5jdGlvbihuLFc9MCxEPS0xKXtpZighbi50b3RhbExlbmd0aHx8IUQpcmV0dXJuIG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpO0Q8MCYmKEQ9bi50b3RhbExlbmd0aC1XKTtuLmZvY3VzKFcpO2lmKCFYYShuLFcsRCkpe3ZhciBiPW4uSix2PW4uVztuLmZvY3VzKFcrRC0xKTt2PW5ldyBVaW50OEFycmF5KG4uVytuLk5bbi5KXS5sZW5ndGgtdik7bGV0IGs9MDtmb3IobGV0IGg9YjtoPD1uLko7aCsrKXYuc2V0KG4uTltoXSxrKSxrKz1uLk5baF0ubGVuZ3RoO24uTi5zcGxpY2UoYixuLkotYisxLHYpO0xSKG4pO24uZm9jdXMoVyl9Yj1uLk5bbi5KXTtyZXR1cm4gbmV3IERhdGFWaWV3KGIuYnVmZmVyLGIuYnl0ZU9mZnNldCtXLW4uVyxEKX07CnRSPWZ1bmN0aW9uKG4sVz0wLEQ9LTEpe249RzYobixXLEQpO3JldHVybiBuZXcgVWludDhBcnJheShuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQsbi5ieXRlTGVuZ3RoKX07CiRNPWZ1bmN0aW9uKG4sVz0wLEQ9LTEpe249dFIobixXLEQpO1c9bmV3IFVpbnQ4QXJyYXkobi5sZW5ndGgpO3RyeXtXLnNldChuKX1jYXRjaChiKXtmb3IoRD0wO0Q8bi5sZW5ndGg7RCsrKVdbRF09bltEXX1yZXR1cm4gV307CnJkPWZ1bmN0aW9uKG4sVyl7bi5mb2N1cyhXKTtyZXR1cm4gbi5OW24uSl1bVy1uLlddfTsKc3g9ZnVuY3Rpb24obixXKXtuLmZvY3VzKFcpO3JldHVybiBYYShuLFcsNCk/cUQobikuZ2V0VWludDMyKFctbi5XKToyNTYqKDI1NiooMjU2KnJkKG4sVykrcmQobixXKzEpKStyZChuLFcrMikpK3JkKG4sVyszKX07CmEyMj1mdW5jdGlvbihuKXt2YXIgVz1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspV1tEXT1uLmNoYXJDb2RlQXQoRCk7cmV0dXJuIFd9OwpwUj1mdW5jdGlvbihuKXtyZXR1cm4gbi5sZW5ndGg/TkQ/TkQuZGVjb2RlKG4pOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuKToiIn07CmcuSEc9ZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKXJldHVybiIiO3RyeXtpZihORClyZXR1cm4gTkQuZGVjb2RlKG4pO2lmKHR5cGVvZiBGZXRjaEludGVybmFsIT09InVuZGVmaW5lZCIpcmV0dXJuIEZldGNoSW50ZXJuYWwuZGVjb2RlRnJvbVVURjgobil9Y2F0Y2h7fWZvcih2YXIgVz0wLEQ9W10sYj1uLmxlbmd0aDtXPGI7KXtsZXQgaz0wO2Zvcig7azwxMDI0JiZXPGI7KXt2YXIgdj1uW1crK107aWYodjwxMjgpe1lNW2srK109djtjb250aW51ZX1pZih2PDIyNCl2PSh2JjMxKTw8NnxuW1crK10mNjM7ZWxzZSBpZih2PDI0MCl2PSh2JjE1KTw8MTJ8KG5bVysrXSY2Myk8PDZ8bltXKytdJjYzO2Vsc2V7aWYoaysxPT09MTAyNCl7LS1XO2JyZWFrfXY9KHYmNyk8PDE4fChuW1crK10mNjMpPDwxMnwobltXKytdJjYzKTw8NnxuW1crK10mNjM7di09NjU1MzY7WU1baysrXT01NTI5Nnx2Pj4xMDt2PTU2MzIwfHYmMTAyM31ZTVtrKytdPXZ9dj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywKWU0pO2s8MTAyNCYmKHY9di5zdWJzdHJpbmcoMCxrKSk7RC5wdXNoKHYpfXJldHVybiBELmpvaW4oIiIpfTsKSlI9ZnVuY3Rpb24obixXKXtpZihmUj8uZW5jb2RlSW50byl7bGV0IHtyZWFkOmIsd3JpdHRlbjp2fT1mUi5lbmNvZGVJbnRvKG4sVyk7cmV0dXJuIGI8bi5sZW5ndGg/bi5sZW5ndGgqNDp2fXZhciBEPTA7Zm9yKGxldCBiPTA7YjxuLmxlbmd0aDtiKyspe2xldCB2PW4uY2hhckNvZGVBdChiKTt2PDEyOD9XW0QrK109djoodjwyMDQ4P1dbRCsrXT12Pj42fDE5MjooKHYmNjQ1MTIpPT09NTUyOTYmJmIrMTxuLmxlbmd0aCYmKG4uY2hhckNvZGVBdChiKzEpJjY0NTEyKT09PTU2MzIwPyh2PTY1NTM2KygodiYxMDIzKTw8MTApKyhuLmNoYXJDb2RlQXQoKytiKSYxMDIzKSxXW0QrK109dj4+MTh8MjQwLFdbRCsrXT12Pj4xMiY2M3wxMjgpOldbRCsrXT12Pj4xMnwyMjQsV1tEKytdPXY+PjYmNjN8MTI4KSxXW0QrK109diY2M3wxMjgpfXJldHVybiBEfTsKSXc9ZnVuY3Rpb24obil7aWYoZlIpcmV0dXJuIGZSLmVuY29kZShuKTt2YXIgVz1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobi5sZW5ndGgqMS4yKSksRD1KUihuLFcpO1cubGVuZ3RoPEQmJihXPW5ldyBVaW50OEFycmF5KEQpLEQ9SlIobixXKSk7Vy5sZW5ndGg+RCYmKFc9Vy5zdWJhcnJheSgwLEQpKTtyZXR1cm4gV307Cm1rPWZ1bmN0aW9uKG4sVyl7bj1uIGluc3RhbmNlb2YgVWludDhBcnJheT9uZXcgUzUoW25dKTpuO3JldHVybiBXKG5ldyBBUihuKSl9OwpLUj1mdW5jdGlvbihuKXt2YXIgVz1yZChuLk4sbi5wb3MpOysrbi5wb3M7aWYoVzwxMjgpcmV0dXJuIFc7Zm9yKHZhciBEPVcmMTI3LGI9MTtXPj0xMjg7KVc9cmQobi5OLG4ucG9zKSwrK24ucG9zLGIqPTEyOCxEKz0oVyYxMjcpKmI7cmV0dXJuIER9OwpPeD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uSjtmb3Iobi5KPS0xO24ucG9zKzE8PW4uTi50b3RhbExlbmd0aDspe0Q8MCYmKEQ9S1IobikpO3ZhciBiPUQ+PjM7bGV0IHY9RCY3O2lmKGI9PT1XKXJldHVybiEwO2lmKGI+Vyl7bi5KPUQ7YnJlYWt9RD0tMTtzd2l0Y2godil7Y2FzZSAwOktSKG4pO2JyZWFrO2Nhc2UgMTpuLnBvcys9ODticmVhaztjYXNlIDI6Yj1LUihuKTtuLnBvcys9YjticmVhaztjYXNlIDU6bi5wb3MrPTR9fXJldHVybiExfTsKUEc9ZnVuY3Rpb24obixXKXtpZihPeChuLFcpKXJldHVybiBLUihuKX07Clp3PWZ1bmN0aW9uKG4sVyl7aWYoT3gobixXKSlyZXR1cm4gVz10UihuLk4sbi5wb3MsOCksbi5wb3MrPTgsKG5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoKSkuZ2V0RmxvYXQ2NCgwLCEwKX07ClV4PWZ1bmN0aW9uKG4sVyl7aWYoT3gobixXKSlyZXR1cm4hIUtSKG4pfTsKeUE9ZnVuY3Rpb24obixXKXtpZihPeChuLFcpKXtXPUtSKG4pO3ZhciBEPXRSKG4uTixuLnBvcyxXKTtuLnBvcys9VztyZXR1cm4gRH19OwpFeD1mdW5jdGlvbihuLFcpe2lmKG49eUEobixXKSlyZXR1cm4gZy5IRyhuKX07CmloPWZ1bmN0aW9uKG4sVyxEKXtpZihuPXlBKG4sVykpcmV0dXJuIEQobmV3IEFSKG5ldyBTNShbbl0pKSl9Owp1aD1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD1bXTtPeChuLFcpOylELnB1c2goS1IobikpO3JldHVybiBELmxlbmd0aD9EOnZvaWQgMH07Cm93PWZ1bmN0aW9uKG4sVyxEKXtmb3IodmFyIGI9W10sdjt2PXlBKG4sVyk7KWIucHVzaChEKG5ldyBBUihuZXcgUzUoW3ZdKSkpKTtyZXR1cm4gYi5sZW5ndGg/Yjp2b2lkIDB9OwpkZD1mdW5jdGlvbihuLFcsRCl7aWYoVyYmRCYmRC5idWZmZXI9PT1XLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil7bGV0IGI9Vy5tZW1vcnkucmVhbGxvYyhELmJ5dGVPZmZzZXQsbik7aWYoYilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoVy5leHBvcnRzLm1lbW9yeS5idWZmZXIsYixuKX1uPVc/bmV3IFVpbnQ4QXJyYXkoVy5leHBvcnRzLm1lbW9yeS5idWZmZXIsVy5tZW1vcnkubWFsbG9jKG4pLG4pOm5ldyBVaW50OEFycmF5KG4pO0QmJm4uc2V0KEQpO3JldHVybiBufTsKZy5saD1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyB6Nig0MDk2KTtXKEQsbik7cmV0dXJuIG5ldyBVaW50OEFycmF5KEQuTi5idWZmZXIsRC5OLmJ5dGVPZmZzZXQsRC5wb3MpfTsKVDY9ZnVuY3Rpb24obixXKXtXPW4ucG9zK1c7aWYoIShuLk4ubGVuZ3RoPj1XKSl7Zm9yKHZhciBEPW4uTi5sZW5ndGgqMjtEPFc7KUQqPTI7bi5OPWRkKEQsbi5XVixuLk4uc3ViYXJyYXkoMCxuLnBvcykpO24udmlldz1uZXcgRGF0YVZpZXcobi5OLmJ1ZmZlcixuLk4uYnl0ZU9mZnNldCxuLk4uYnl0ZUxlbmd0aCl9fTsKajU9ZnVuY3Rpb24obixXKXtpZihXPjI2ODQzNTQ1NSl7VDYobiw0KTtsZXQgRD1XJjEwNzM3NDE4MjM7Zm9yKGxldCBiPTA7Yjw0O2IrKyluLnZpZXcuc2V0VWludDgobi5wb3MsRCYxMjd8MTI4KSxEPj4+PTcsbi5wb3MrPTE7Vz1NYXRoLmZsb29yKFcvMjY4NDM1NDU2KX1mb3IoVDYobiw0KTtXPjEyNzspbi52aWV3LnNldFVpbnQ4KG4ucG9zLFcmMTI3fDEyOCksVz4+Pj03LG4ucG9zKz0xO24udmlldy5zZXRVaW50OChuLnBvcyxXKTtuLnBvcys9MX07CkNSPWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYoajUobixXKjgpLGo1KG4sRCkpfTsKQkc9ZnVuY3Rpb24obixXLEQpe0QhPT12b2lkIDAmJkNSKG4sVyxEPzE6MCl9OwpnLkZhPWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYoajUobixXKjgrMiksVz1ELmxlbmd0aCxqNShuLFcpLFQ2KG4sVyksbi5OLnNldChELG4ucG9zKSxuLnBvcys9Vyl9Owp3ZD1mdW5jdGlvbihuLFcsRD0yKXtqNShuLFcqOCsyKTtuLkoucHVzaChuLnBvcyk7bi5KLnB1c2goRCk7bi5wb3MrPUR9OwpNRD1mdW5jdGlvbihuKXtmb3IodmFyIFc9bi5KLnBvcCgpLEQ9bi5KLnBvcCgpLGI9bi5wb3MtRC1XO1ctLTspe2xldCB2PVc/MTI4OjA7bi52aWV3LnNldFVpbnQ4KEQrKyxiJjEyN3x2KTtiPj49N319OwpnLlJ3PWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYod2QobixXLE1hdGguY2VpbChNYXRoLmxvZzIoRC5sZW5ndGgqNCsyKS83KSksVDYobixELmxlbmd0aCoxLjIpLFc9SlIoRCxuLk4uc3ViYXJyYXkobi5wb3MpKSxuLnBvcytXPm4uTi5sZW5ndGgmJihUNihuLFcpLFc9SlIoRCxuLk4uc3ViYXJyYXkobi5wb3MpKSksbi5wb3MrPVcsTUQobikpfTsKUUE9ZnVuY3Rpb24obixXLEQsYix2PTMpe0QmJih3ZChuLFcsdiksYihuLEQpLE1EKG4pKX07CmNHPWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBBUihuZXcgUzUoW2xwKGRlY29kZVVSSUNvbXBvbmVudChuKSldKSk7bj1FeChXLDIpO1c9UEcoVyw0KTt2YXIgRD1WQVtXXTtpZih0eXBlb2YgRD09PSJ1bmRlZmluZWQiKXRocm93IG49bmV3IGcuUXgoIkZhaWxlZCB0byByZWNvZ25pemUgZmllbGQgbnVtYmVyIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGZpZWxkTnVtYmVyOld9KSxnLlhqKG4pLG47cmV0dXJue0RYOlcsZW50aXR5VHlwZTpELGVudGl0eUlkOm59fTsKbmY9ZnVuY3Rpb24obixXKXt2YXIgRD1uZXcgejY7Zy5GYShELDIsSXcobikpO249YXdbV107aWYodHlwZW9mIG49PT0idW5kZWZpbmVkIil0aHJvdyBXPW5ldyBnLlF4KCJGYWlsZWQgdG8gcmVjb2duaXplIGVudGl0eSB0eXBlIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGVudGl0eVR5cGU6V30pLGcuWGooVyksVztDUihELDQsbik7Q1IoRCw1LDEpO1c9bmV3IFVpbnQ4QXJyYXkoRC5OLmJ1ZmZlcixELk4uYnl0ZU9mZnNldCxELnBvcyk7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChnLkVBKFcsMCkpfTsKV2U9ZnVuY3Rpb24obil7bj1uLmtleXx8bi5pZDtpZighbil0aHJvdyBFcnJvcigiRW50aXR5IGtleSBpcyBtaXNzaW5nIik7cmV0dXJuIG59OwpERz1mdW5jdGlvbihuLFcsRCxiKXtpZihiPT09dm9pZCAwKXtsZXQge1tEXTp2LC4uLmt9PW5bV118fHt9O3JldHVybnsuLi5uLFtXXTprfX1yZXR1cm57Li4ubixbV106ey4uLm5bV10sW0RdOmJ9fX07CmJCPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bltXXXx8e30saD1rW0RdO2lmKCFoJiYhZy5sKCJ3ZWJfZW5hYmxlX2VudGl0eV91cHNlcnRfb25fdXBkYXRlIikpcmV0dXJuIG47Yj1oUihofHx7fSxiLHY9PT0iUkVQRUFURURfRklFTERTX01FUkdFX09QVElPTl9BUFBFTkQiKTtyZXR1cm57Li4ubixbV106ey4uLmssW0RdOmJ9fX07Cm5taD1mdW5jdGlvbihuPXt9LFcpe3N3aXRjaChXLnR5cGUpe2Nhc2UgIkVOVElUWV9MT0FERUQiOnJldHVybiBXLnBheWxvYWQucmVkdWNlKChELGIpPT57dmFyIHY9Yi5vcHRpb25zPy5wZXJzaXN0ZW5jZU9wdGlvbjtpZih2JiZ2IT09IkVOVElUWV9QRVJTSVNURU5DRV9PUFRJT05fVU5LTk9XTiImJnYhPT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9JTk1FTU9SWV9BTkRfUEVSU0lTVCIpcmV0dXJuIEQ7aWYoIWIuZW50aXR5S2V5KXJldHVybiBnLlhqKEVycm9yKCJNaXNzaW5nIGVudGl0eSBrZXkiKSksRDtpZihiLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfUkVQTEFDRSIpe2lmKCFiLnBheWxvYWQpcmV0dXJuIGI9bmV3IGcuUXgoIlJFUExBQ0UgZW50aXR5IG11dGF0aW9uIGlzIG1pc3NpbmcgYSBwYXlsb2FkIix7ZW50aXR5S2V5OmIuZW50aXR5S2V5fSksZy5YaihiKSxEO3ZhciBrPXZ4KGIucGF5bG9hZCk7cmV0dXJuIERHKEQsayxiLmVudGl0eUtleSxiLnBheWxvYWRba10pfWlmKGIudHlwZT09PQoiRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIil7YTp7Yj1iLmVudGl0eUtleTt0cnl7bGV0IGg9Y0coYikuZW50aXR5VHlwZTtrPURHKEQsaCxiKTticmVhayBhfWNhdGNoKGgpe2lmKGggaW5zdGFuY2VvZiBFcnJvcil7Yj1uZXcgZy5ReCgiRmFpbGVkIHRvIGRlc2VyaWFsaXplIGVudGl0eSBrZXkiLHtlbnRpdHlLZXk6YixvcmlnaW5hbE1lc3NhZ2U6aC5tZXNzYWdlfSk7Zy5YaihiKTtrPUQ7YnJlYWsgYX10aHJvdyBoO31rPXZvaWQgMH1yZXR1cm4ga31pZihiLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfVVBEQVRFIil7aWYoIWIucGF5bG9hZClyZXR1cm4gYj1uZXcgZy5ReCgiVVBEQVRFIGVudGl0eSBtdXRhdGlvbiBpcyBtaXNzaW5nIGEgcGF5bG9hZCIse2VudGl0eUtleTpiLmVudGl0eUtleX0pLGcuWGooYiksRDtrPXZ4KGIucGF5bG9hZCk7cmV0dXJuIGJCKEQsayxiLmVudGl0eUtleSxiLnBheWxvYWRba10sYi5maWVsZE1hc2s/Lm1lcmdlT3B0aW9ucz8ucmVwZWF0ZWRGaWVsZHNNZXJnZU9wdGlvbil9cmV0dXJuIER9LApuKTsKY2FzZSAiUkVQTEFDRV9FTlRJVFkiOnJldHVybiBERyhuLFcucGF5bG9hZC5lbnRpdHlUeXBlLFcucGF5bG9hZC5rZXksVy5wYXlsb2FkLmc4KTtjYXNlICJSRVBMQUNFX0VOVElUSUVTIjpyZXR1cm4gT2JqZWN0LmtleXMoVy5wYXlsb2FkKS5yZWR1Y2UoKEQsYik9Pnt2YXIgdj1XLnBheWxvYWRbYl07cmV0dXJuIE9iamVjdC5rZXlzKHYpLnJlZHVjZSgoayxoKT0+REcoayxiLGgsdltoXSksRCl9LG4pOwpjYXNlICJVUERBVEVfRU5USVRZIjpyZXR1cm4gYkIobixXLnBheWxvYWQuZW50aXR5VHlwZSxXLnBheWxvYWQua2V5LFcucGF5bG9hZC5nOCxXLnBheWxvYWQublApO2RlZmF1bHQ6cmV0dXJuIG59fTsKVzRVPWZ1bmN0aW9uKCl7aWYodmUpcmV0dXJuIHZlKCk7dmU9a08oIlBlcnNpc3RlbnRFbnRpdHlTdG9yZURiIix7S2M6e0VudGl0eVN0b3JlOnt2eDoxfSxFbnRpdHlBc3NvY2lhdGlvblN0b3JlOnt2eDoyfX0sc2hhcmVkOiExLHVwZ3JhZGUobixXKXtXKDEpJiZFUihaeShuLCJFbnRpdHlTdG9yZSIse2tleVBhdGg6ImtleSJ9KSwiZW50aXR5VHlwZSIsImVudGl0eVR5cGUiKTtXKDIpJiYobj1aeShuLCJFbnRpdHlBc3NvY2lhdGlvblN0b3JlIix7a2V5UGF0aDpbInBhcmVudEVudGl0eUtleSIsImNoaWxkRW50aXR5S2V5Il19KSxFUihuLCJieVBhcmVudEVudGl0eUtleSIsInBhcmVudEVudGl0eUtleSIpLEVSKG4sImJ5Q2hpbGRFbnRpdHlLZXkiLCJjaGlsZEVudGl0eUtleSIpKX0sdmVyc2lvbjozfSk7cmV0dXJuIHZlKCl9OwpEZlM9ZnVuY3Rpb24obil7cmV0dXJuIENGKFc0VSgpLG4pfTsKayQ9ZnVuY3Rpb24obil7cmV0dXJuIHdpbmRvdy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KG4pOkFycmF5KG4pfTsKWDg9ZnVuY3Rpb24obil7dmFyIFc9bi5rZXksRD1uLmNvdW50ZXJbMF1eV1swXSxiPW4uY291bnRlclsxXV5XWzFdLHY9bi5jb3VudGVyWzJdXldbMl0saz1uLmNvdW50ZXJbM11eV1szXTtmb3IodmFyIGg9MztoPj0wJiYhKG4uY291bnRlcltoXT0tfm4uY291bnRlcltoXSk7aC0tKTtmb3IodmFyIHgsTCxlPTQ7ZTw0MDspaD1oRVtEPj4+MjRdXngkW2I+PjE2JjI1NV1eTGZbdj4+OCYyNTVdXmVZW2smMjU1XV5XW2UrK10seD1oRVtiPj4+MjRdXngkW3Y+PjE2JjI1NV1eTGZbaz4+OCYyNTVdXmVZW0QmMjU1XV5XW2UrK10sTD1oRVt2Pj4+MjRdXngkW2s+PjE2JjI1NV1eTGZbRD4+OCYyNTVdXmVZW2ImMjU1XV5XW2UrK10saz1oRVtrPj4+MjRdXngkW0Q+PjE2JjI1NV1eTGZbYj4+OCYyNTVdXmVZW3YmMjU1XV5XW2UrK10sRD1oLGI9eCx2PUw7bj1uLko7aD1XWzQwXTtuWzBdPWdOW0Q+Pj4yNF1eaD4+PjI0O25bMV09Z05bYj4+MTYmMjU1XV5oPj4xNiYyNTU7blsyXT1nTlt2Pj44JgoyNTVdXmg+PjgmMjU1O25bM109Z05bayYyNTVdXmgmMjU1O2g9V1s0MV07bls0XT1nTltiPj4+MjRdXmg+Pj4yNDtuWzVdPWdOW3Y+PjE2JjI1NV1eaD4+MTYmMjU1O25bNl09Z05baz4+OCYyNTVdXmg+PjgmMjU1O25bN109Z05bRCYyNTVdXmgmMjU1O2g9V1s0Ml07bls4XT1nTlt2Pj4+MjRdXmg+Pj4yNDtuWzldPWdOW2s+PjE2JjI1NV1eaD4+MTYmMjU1O25bMTBdPWdOW0Q+PjgmMjU1XV5oPj44JjI1NTtuWzExXT1nTltiJjI1NV1eaCYyNTU7aD1XWzQzXTtuWzEyXT1nTltrPj4+MjRdXmg+Pj4yNDtuWzEzXT1nTltEPj4xNiYyNTVdXmg+PjE2JjI1NTtuWzE0XT1nTltiPj44JjI1NV1eaD4+OCYyNTU7blsxNV09Z05bdiYyNTVdXmgmMjU1fTsKdEU9ZnVuY3Rpb24oKXtpZighcWEmJiFnLlJnKXtpZihHcilyZXR1cm4gR3I7R3I9d2luZG93LmNyeXB0bz8uc3VidGxlO2lmKEdyPy5pbXBvcnRLZXkmJkdyPy5zaWduJiZHcj8uZW5jcnlwdClyZXR1cm4gR3I7R3I9dm9pZCAwfX07CmJoMT1hc3luYyBmdW5jdGlvbihuLFcsRCl7bi5OfHwobi5OPWF3YWl0IG4uSi5pbXBvcnRLZXkoInJhdyIsbi5XLHtuYW1lOiJBRVMtQ1RSIn0sITEsWyJlbmNyeXB0Il0pKTtuPWF3YWl0IG4uSi5lbmNyeXB0KHtuYW1lOiJBRVMtQ1RSIixjb3VudGVyOkQsbGVuZ3RoOjEyOH0sbi5OLFcpO3JldHVybiBuZXcgVWludDhBcnJheShuKX07CiQkPWZ1bmN0aW9uKG4pe24uTj1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO24uSz1bXTtuLksubGVuZ3RoPTY0O24uWD0wO24uSj0wfTsKc2U9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uSyx2PW4uTlswXSxrPW4uTlsxXSxoPW4uTlsyXSx4PW4uTlszXSxMPW4uTls0XSxlPW4uTls1XSxHPW4uTls2XSxyPW4uTls3XSxOO2ZvcihsZXQgeT0wO3k8NjQ7KXtpZih5PDE2KWJbeV09Tj1XW0RdPDwyNHxXW0QrMV08PDE2fFdbRCsyXTw8OHxXW0QrM10sRCs9NDtlbHNle3ZhciBIPWJbeS0yXTt2YXIgQT1iW3ktMTVdO049Ylt5LTddK2JbeS0xNl0rKChIPj4+MTd8SDw8MTUpXihIPj4+MTl8SDw8MTMpXkg+Pj4xMCkrKChBPj4+N3xBPDwyNSleKEE+Pj4xOHxBPDwxNCleQT4+PjMpO2JbeV09Tn1IPXIrck5beV0rTisoKEw+Pj42fEw8PDI2KV4oTD4+PjExfEw8PDIxKV4oTD4+PjI1fEw8PDcpKSsoTCZlXn5MJkcpO0E9KCh2Pj4+Mnx2PDwzMCleKHY+Pj4xM3x2PDwxOSleKHY+Pj4yMnx2PDwxMCkpKyh2JmtediZoXmsmaCk7cj1IK0E7eCs9SDt5Kys7eTwxNj8oYlt5XT1OPVdbRF08PDI0fFdbRCsxXTw8MTZ8V1tEKzJdPDw4fFdbRCsKM10sRCs9NCk6KEg9Ylt5LTJdLEE9Ylt5LTE1XSxOPWJbeS03XStiW3ktMTZdKygoSD4+PjE3fEg8PDE1KV4oSD4+PjE5fEg8PDEzKV5IPj4+MTApKygoQT4+Pjd8QTw8MjUpXihBPj4+MTh8QTw8MTQpXkE+Pj4zKSxiW3ldPU4pO0g9RytyTlt5XStOKygoeD4+PjZ8eDw8MjYpXih4Pj4+MTF8eDw8MjEpXih4Pj4+MjV8eDw8NykpKyh4JkxefngmZSk7QT0oKHI+Pj4yfHI8PDMwKV4ocj4+PjEzfHI8PDE5KV4ocj4+PjIyfHI8PDEwKSkrKHImdl5yJmtediZrKTtHPUgrQTtoKz1IO3krKzt5PDE2PyhiW3ldPU49V1tEXTw8MjR8V1tEKzFdPDwxNnxXW0QrMl08PDh8V1tEKzNdLEQrPTQpOihIPWJbeS0yXSxBPWJbeS0xNV0sTj1iW3ktN10rYlt5LTE2XSsoKEg+Pj4xN3xIPDwxNSleKEg+Pj4xOXxIPDwxMyleSD4+PjEwKSsoKEE+Pj43fEE8PDI1KV4oQT4+PjE4fEE8PDE0KV5BPj4+MyksYlt5XT1OKTtIPWUrck5beV0rTisoKGg+Pj42fGg8PDI2KV4oaD4+PjExfGg8PDIxKV4oaD4+PjI1fApoPDw3KSkrKGgmeF5+aCZMKTtBPSgoRz4+PjJ8Rzw8MzApXihHPj4+MTN8Rzw8MTkpXihHPj4+MjJ8Rzw8MTApKSsoRyZyXkcmdl5yJnYpO2U9SCtBO2srPUg7eSsrO3k8MTY/KGJbeV09Tj1XW0RdPDwyNHxXW0QrMV08PDE2fFdbRCsyXTw8OHxXW0QrM10sRCs9NCk6KEg9Ylt5LTJdLEE9Ylt5LTE1XSxOPWJbeS03XStiW3ktMTZdKygoSD4+PjE3fEg8PDE1KV4oSD4+PjE5fEg8PDEzKV5IPj4+MTApKygoQT4+Pjd8QTw8MjUpXihBPj4+MTh8QTw8MTQpXkE+Pj4zKSxiW3ldPU4pO0g9TCtyTlt5XStOKygoaz4+PjZ8azw8MjYpXihrPj4+MTF8azw8MjEpXihrPj4+MjV8azw8NykpKyhrJmhefmsmeCk7QT0oKGU+Pj4yfGU8PDMwKV4oZT4+PjEzfGU8PDE5KV4oZT4+PjIyfGU8PDEwKSkrKGUmR15lJnJeRyZyKTtOPXI7cj14O3g9TjtOPUc7Rz1oO2g9TjtOPWU7ZT1rO2s9TjtMPXYrSDt2PUgrQTt5Kyt9bi5OWzBdPXYrbi5OWzBdfDA7bi5OWzFdPWsrbi5OWzFdfDA7bi5OWzJdPWgrbi5OWzJdfAowO24uTlszXT14K24uTlszXXwwO24uTls0XT1MK24uTls0XXwwO24uTls1XT1lK24uTls1XXwwO24uTls2XT1HK24uTls2XXwwO24uTls3XT1yK24uTls3XXwwfTsKTmE9ZnVuY3Rpb24obil7dmFyIFc9bmV3IFVpbnQ4QXJyYXkoMzIpLEQ9NjQtbi5KO24uSj41NSYmKEQrPTY0KTt2YXIgYj1uZXcgVWludDhBcnJheShEKTtiWzBdPTEyODt2YXIgdj1uLlgqODtmb3IobGV0IGs9MTtrPDk7aysrKXtsZXQgaD12JTI1NjtiW0Qta109aDt2PSh2LWgpLzI1Nn1uLnVwZGF0ZShiKTtmb3IoRD0wO0Q8ODtEKyspV1tEKjRdPW4uTltEXT4+PjI0LFdbRCo0KzFdPW4uTltEXT4+PjE2JjI1NSxXW0QqNCsyXT1uLk5bRF0+Pj44JjI1NSxXW0QqNCszXT1uLk5bRF0mMjU1OyQkKG4pO3JldHVybiBXfTsKcGY9ZnVuY3Rpb24obixXLEQpe249bmV3IHZtaShuLk4pO24udXBkYXRlKFcpO24udXBkYXRlKEQpO1c9TmEobik7bi51cGRhdGUobi5qKTtuLnVwZGF0ZShXKTtXPU5hKG4pO24ucmVzZXQoKTtyZXR1cm4gV307CmtTaj1hc3luYyBmdW5jdGlvbihuLFcsRCl7bi5OfHwobi5OPWF3YWl0IG4uSi5pbXBvcnRLZXkoInJhdyIsbi5XLHtuYW1lOiJITUFDIixoYXNoOiJTSEEtMjU2In0sITEsWyJzaWduIl0pKTt2YXIgYj1uZXcgVWludDhBcnJheShXLmxlbmd0aCtELmxlbmd0aCk7Yi5zZXQoVyk7Yi5zZXQoRCxXLmxlbmd0aCk7bj1hd2FpdCBuLkouc2lnbih7bmFtZToiSE1BQyIsaGFzaDoiU0hBLTI1NiJ9LG4uTixiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobil9Owp4ZlM9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7bi5KfHwobi5KPW5ldyBoYXcobi5OLGIpKTtyZXR1cm4ga1NqKG4uSixXLEQpfTsKSGU9ZnVuY3Rpb24obixXLEQpe24uV3x8KG4uVz1uZXcgWSQobi5OKSk7cmV0dXJuIHBmKG4uVyxXLEQpfTsKTDRaPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj10RSgpO2lmKGIpdHJ5e3JldHVybiBhd2FpdCB4ZlMobixXLEQsYil9Y2F0Y2godil7cmV0dXJuIGcuR3EodikscWE9ITAsSGUobixXLEQpfWVsc2UgcmV0dXJuIEhlKG4sVyxEKX07CmVhVT1mdW5jdGlvbihuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIEVycm9yP25ldyBmZigiVU5LTk9XTl9FTkNPREVfRVJST1IiLHtvcmlnaW5hbE1lc3NhZ2U6bi5tZXNzYWdlfSk6bmV3IGZmKCJVTktOT1dOX0VOQ09ERV9FUlJPUiIpfTsKZ20yPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRXJyb3I/bmV3IGZmKCJVTktOT1dOX0RFQ09ERV9FUlJPUiIse29yaWdpbmFsTWVzc2FnZTpuLm1lc3NhZ2V9KTpuZXcgZmYoIlVOS05PV05fREVDT0RFX0VSUk9SIil9OwpKRT1mdW5jdGlvbihuLFcpe249biBpbnN0YW5jZW9mIGZmP246VyhuKTtnLlhqKG4pO3Rocm93IG47fTsKSTg9ZnVuY3Rpb24obil7bj0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUobikuc3ViYXJyYXkoMCwxNik7dmFyIFc9bmV3IFVpbnQ4QXJyYXkoMTYpO1cuc2V0KG4pO3JldHVybiBXfTsKcXNVPWZ1bmN0aW9uKCl7dmFyIG49WHlVLnZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTtpZihuKXJldHVybiBuO2cuR3EobmV3IGcuUXgoIkVudGl0eSBtb2RlbCBub3QgZm91bmQuIix7ZW50aXR5VHlwZToidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5In0pKX07CkFFPWZ1bmN0aW9uKG4sVyl7YTp7bj1TWShuLlcsVy52ZXJzaW9uKTt0cnl7dmFyIEQ9bi5KKFcuZGF0YSxXLmtleSk7YnJlYWsgYX1jYXRjaChiKXtKRShiLGdtMil9RD12b2lkIDB9cmV0dXJuIER9OwpHU3c9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLm9iamVjdFN0b3JlKCJFbnRpdHlTdG9yZSIpLmluZGV4KCJlbnRpdHlUeXBlIikuZ2V0QWxsKElEQktleVJhbmdlLm9ubHkoVykpLnRoZW4oRD0+RC5tYXAoYj0+QUUobixiKSkpfTsKJGZpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V2UoVyk7cmV0dXJuIG1MKG4sRCkudGhlbigoKT0+dENoKG4sVykpfTsKS2Y9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uSltEXTtifHwoYj1uZXcgU2V0LG4uSltEXT1iKTtiLmFkZChXKX07CnIzWj1mdW5jdGlvbihuLFcpe3ZhciBEPVdlKFcpLGI9U1kobi5XLDEpLHY9ey4uLld9O3JldHVybiBuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikuZ2V0KEQpLnRoZW4oaz0+e2lmKGspe2lmKGsuZW50aXR5VHlwZSE9PSJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkiKXRocm93IEVycm9yKCJJbmNvcnJlY3QgZW50aXR5IHR5cGUiKTt2LmVudGl0eU1ldGFkYXRhfHwoaz1BRShuLGspLHYuZW50aXR5TWV0YWRhdGE9ay5lbnRpdHlNZXRhZGF0YSl9fSkudGhlbigoKT0+e2E6e3RyeXt2YXIgaz1iLlcodixEKTsKYnJlYWsgYX1jYXRjaChoKXtKRShoLGVhVSl9az12b2lkIDB9az17a2V5OkQsZW50aXR5VHlwZToidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5IixkYXRhOmssdmVyc2lvbjoxfTtyZXR1cm4gc1IuYWxsKFtuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikucHV0KGspLCRmaShuLHYpXSl9KS50aGVuKCgpPT57S2YobixELCJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkiKTsKcmV0dXJuIER9KX07Ck9lPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Y0coVykuZW50aXR5VHlwZTtyZXR1cm4gc1IuYWxsKFtuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikuZGVsZXRlKFcpLG1MKG4sVyldKS50aGVuKCgpPT57S2YobixXLEQpfSl9OwptTD1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4ub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKS5pbmRleCgiYnlQYXJlbnRFbnRpdHlLZXkiKS5kZWxldGUoSURCS2V5UmFuZ2Uub25seShXKSl9OwpzeHI9ZnVuY3Rpb24obixXKXtXPVcubWFwKEQ9Pk9lKG4sRCkpOwpyZXR1cm4gc1IuYWxsKFcpLnRoZW4oKCk9Pnt9KX07CnRDaD1mdW5jdGlvbihuLFcpe3ZhciBEPVdlKFcpLGI9cXNVKCk7aWYoIWIpcmV0dXJuIHNSLnJlc29sdmUoW10pO1c9bmV3IGIoVyk7bj1uLk4ub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKTtiPVtdO2ZvcihsZXQgdiBvZiBXLkooKSliLnB1c2gobi5wdXQoe3BhcmVudEVudGl0eUtleTpELGNoaWxkRW50aXR5S2V5OnZ9KSk7cmV0dXJuIHNSLmFsbChiKS50aGVuKHY9PnYubWFwKGs9PmtbMV0pKX07ClNZPWZ1bmN0aW9uKG4sVz0wKXtuPW4uTltXXTtpZighbil0aHJvdyBXPW5ldyBmZigiSU5WQUxJRF9FTkNPREVSX1ZFUlNJT04iLHtPQTpXfSksZy5YaihXKSxXO3JldHVybiBufTsKUGU9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2Ygbi5vYnNlcnZlcnMpRChXKX07ClpHPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1hd2FpdCBEZlMobi50b2tlbiksdjtXPWF3YWl0IE9SKGIsWyJFbnRpdHlTdG9yZSIsIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiXSxXLGs9Pnt2PW5ldyBOR3coayxuLk4pO3JldHVybiBEKHYpfSk7CnYmJihiPXYuSixPYmplY3Qua2V5cyhiKS5sZW5ndGg+MCYmKG4uY2hhbm5lbC5wb3N0TWVzc2FnZShiKSxQZShuLGIpKSk7cmV0dXJuIFd9OwpweXQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gWkcobix7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+cjNaKEQsVykpfTsKWXNNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9Pk9lKEQsVykpfTsKSGh3PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9PnN4cihELFcpKX07ClVlPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWRvbmx5IixHUTohMH0sRD0+R1N3KEQsVykpfTsKSTkyPWFzeW5jIGZ1bmN0aW9uKCl7dHJ5e2xldCBXPWF3YWl0IGcublAoKTtpZihXJiZSOSgpJiZ0eXBlb2YgZy5xaS5Ccm9hZGNhc3RDaGFubmVsIT09InVuZGVmaW5lZCIpe3ZhciBuPW5ldyBmOWk7cmV0dXJuIG5ldyBKM2koVyxuKX19Y2F0Y2goVyl7VyBpbnN0YW5jZW9mIEVycm9yJiZnLlhqKFcpfX07CnlXPWZ1bmN0aW9uKCl7dmFyIG49WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLmZldGNoO3JldHVybiEhbiYmbi5sZW5ndGg9PT0zfTsKRWU9ZnVuY3Rpb24obixXKXtXPU51bWJlcihXKSoxRTM7dmFyIEQ9TWF0aC5yb3VuZCgoMCxnLlIpKCkpLGI9RC50b1N0cmluZygpO249e2lubmVydHViZVJlc3BvbnNlOm4sc2VydmVyRGF0ZVRpbWVzdGFtcE1zOmIsbGFzdE1vZGlmaWVkVGltZXN0YW1wTXM6YixleHBpcmVUaW1lc3RhbXBNczooRCtXKS50b1N0cmluZygpLGlzUHJvY2Vzc2VkOiEwfTtpZihXPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIikpbi5jbGllbnROYW1lPVc7cmV0dXJuIG59Owp1Qj1mdW5jdGlvbihuLFcsRCl7aWYoIWcubCgic3RhdGVfdGFnc19raWxsc3dpdGNoIikpe3ZhciBiPW5ldyBpQihXKTtpZigoYi5OPy5zdGF0ZVRhZ3NNb2RpZmllZHx8W10pLmxlbmd0aD4wKXt2YXIgdj1uLk4udUIoKTtmb3IobGV0IGggb2Ygdil7dmFyIGs9dkcobi5OLGgpO2lmKGspe2E6e3Y9Yi5OPy5zdGF0ZVRhZ3NNb2RpZmllZHx8W107az0obmV3IGlCKHFyKGspKSkuTj8ucmVsZXZhbnRTdGF0ZVRhZ3N8fFtdO2ZvcihsZXQgeCBvZiBrKWlmKHguc3RhdGVUYWchPW51bGwmJnYuaW5jbHVkZXMoeC5zdGF0ZVRhZykmJngub25TdGF0ZVRhZ01vZGlmaWVkPT09IlNUQVRFX1RBR19DQUNIRV9JTlNUUlVDVElPTl9FVklDVF9SRVNQT05TRSIpe3Y9ITA7YnJlYWsgYX12PSExfXYmJmtNKG4uTixoKX19fX1iPVcucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzO0QmJmImJk51bWJlcihiKT4wJiYoVz1FZShXLGIpLG4uTi5wdXQoRCxuZXcgYmgoVykpKX07ClNzWj1mdW5jdGlvbihuLFcsRCl7aWYobi5OKXtsZXQgYj1TMShUNShXLCJrZXkiKSl8fCIvVU5LTk9XTl9QQVRIIjtuLk4uc3RhcnQoYil9bj1EO2cubCgid3VnX25ldHdvcmtpbmdfZ3ppcF9yZXF1ZXN0IikmJihuPU1YUyhEKSk7cmV0dXJuIG5ldyB3aW5kb3cuUmVxdWVzdChXLG4pfTsKZE49YXN5bmMgZnVuY3Rpb24obixXLEQsYix2LGspe2lmKGs/LmFib3J0ZWQpcmV0dXJuIFcuY2FuY2VsKCksYjt2YXIge3ZhbHVlOmgsZG9uZTp4fT1hd2FpdCBXLnJlYWQoKTtpZih4KXJldHVybiBuLk4/LnN1Y2Nlc3MoKSxiO3RyeXt2YXIgTD1ELnBhcnNlKGgpfWNhdGNoKGUpe3Rocm93IG5ldyBvOCgiRmFpbGVkIHRvIHBhcnNlIHN0cmVhbWluZyByZXNwb25zZSIsaCk7fWlmKEwhPW51bGwpZm9yKGxldCBlIG9mIEwpYi5wdXNoKGUpLHY/LihlKTtyZXR1cm4gZE4obixXLEQsYix2LGspfTsKbmM9ZnVuY3Rpb24obixXLEQpe2lmKCF6cil7bGV0IGs9Zy5xaigpO2cueG8oayx7Tkg6bEIsWUw6VHJ9KTtpZihEPy5vUyl7Zy54byhrLHtOSDpqWSxQZjpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsRC5jbGllbnRJbnRlcmZhY2UpfSk7Zy54byhrLHtOSDpDZixQZjo1MTg0RTZ9KTtnLnhvKGsse05IOkJlLFlMOkEzaixbZy5MWF06W2pZLENmXX0pO2cueG8oayx7Tkg6RjgsWUw6d059KTt2YXIgYj1rLnJlc29sdmUoRjgpO2xldCBoPXdpbmRvdztpZihoLnl0SW5pdGlhbFZpZGVvSWQpe3ZhciB2PWgueXRJbml0aWFsVmlkZW9JZDtoLnl0SW5pdGlhbFBsYXllclJlc3BvbnNlJiZ1QihiLGgueXRJbml0aWFsUGxheWVyUmVzcG9uc2UseUgoInBsYXllciIse3ZpZGVvSWQ6dn0pKTtoLnl0SW5pdGlhbFdhdGNoTmV4dFJlc3BvbnNlJiZ1QihiLGgueXRJbml0aWFsV2F0Y2hOZXh0UmVzcG9uc2UseUgoIm5leHQiLHt2aWRlb0lkOnZ9KSk7aC55dEluaXRpYWxSZWVsSXRlbVdhdGNoUmVzcG9uc2UmJgp1QihiLGgueXRJbml0aWFsUmVlbEl0ZW1XYXRjaFJlc3BvbnNlLHlIKCJyZWVsX2l0ZW1fd2F0Y2giLHt2aWRlb0lkOnZ9KSl9fWcueG8oayx7Tkg6TWEsUGY6e3pnOntmZWVkYmFja0VuZHBvaW50OmhtKG1mUyksbW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludDpobShLNGkpLHBsYXlsaXN0RWRpdEVuZHBvaW50OmhtKE9ociksc2hhcmVFbnRpdHlFbmRwb2ludDpobShSOCksc3Vic2NyaWJlRW5kcG9pbnQ6aG0oUEd4KSx1bnN1YnNjcmliZUVuZHBvaW50OmhtKFpodCksd2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQ6aG0oVWZaKX19fSk7dj1iJC5nZXRJbnN0YW5jZSgpO2I9e307diYmKGIuY2xpZW50X2xvY2F0aW9uPXYpO0Q/Lm9TJiYodj1rLnJlc29sdmUoRjgpLGIuc3RvcmU9dixiLnJlc29sdmVfdXJsX3ByZWZldGNoPWsucmVzb2x2ZShRVykpO2cueG8oayx7Tkg6VlcsUGY6Yn0pO2cueG8oayx7Tkg6Y2UsUGY6biE9PXZvaWQgMD8KbjppTygpfSk7Vz09PXZvaWQgMCYmKFc9ay5yZXNvbHZlKGxCKSk7Zy5sKCJhbGxfd2ViX2VuYWJsZV9uZXR3b3JrX21hY2hpbmUiKSYmY1MyKCk7RTliKGsucmVzb2x2ZShNYSksVyxrLnJlc29sdmUoY2UpLGsucmVzb2x2ZShWVyksRD8ub1M/ay5yZXNvbHZlKEJlKTp2b2lkIDApO2cueG8oayx7Tkg6YTgsUGY6WDcuaW5zdGFuY2V9KTt6cj1rLnJlc29sdmUoYTgpfXJldHVybiB6cn07CldRPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O249bi5zcGxpdCgiJiIpO2ZvcihsZXQgRCBvZiBuKW49RC5zcGxpdCgiPSIpLG4ubGVuZ3RoPT09MiYmKFdbblswXV09blsxXSk7cmV0dXJuIFd9Owp5M3I9YXN5bmMgZnVuY3Rpb24oKXt2YXIgbj13aW5kb3c7YXdhaXQgZy5NaChnLkQ2KCkpO3ZhciBXPW4uYmdldm1jO2lmKCFXKXRocm93IEVycm9yKCJCR0UgQ29udHJvbHMgbm90IGV4cG9zZWQiKTtyZXR1cm57cGF1c2U6KCk9PntXLnAoKX0sCnJlc3VtZTooKT0+e1cucigpfSwKY2hlY2tGb3JSZWZyZXNoOigpPT5XLmNyKCl9fTsKZy5ENj1mdW5jdGlvbigpe3JldHVybiBnLmwoImJnX3N0X2hyIik/ImhhdnVva21oaHMtMCI6YGhhdnVva21oaHMtJHtNYXRoLmZsb29yKGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/LnRpbWVPcmlnaW58fDApfWB9OwpiMD1mdW5jdGlvbihuKXt3aW5kb3cuYmdlbnM9bn07CkVteD1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShuPT57dmFyIFc9d2luZG93O1cubnRwZXZhc3JzIT09dm9pZCAwP24obmV3IHZRKFcubnRwZXZhc3JzKSk6KFcubnRwcWZiZWw9PT12b2lkIDAmJihXLm50cHFmYmVsPVtdKSxXLm50cHFmYmVsLnB1c2goRD0+e24obmV3IHZRKEQpKX0pKX0pfTsKeDU9ZnVuY3Rpb24oKXtpZihnLmFLKCkpe3ZhciBuPWcuQXIoIlBMQVlFUl9WQVJTIix7fSk7aWYoZy4keShuLCJwcml2ZW1iZWQiLCExKSE9IjEiJiYhZy54UihuKSl7dmFyIFc9KCk9PntrNT0hMDsiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3c/Zy5TSCgiRENMS1NUQVQiLDEpOmcuU0goIkRDTEtTVEFUIiwyKX07CnRyeXtsZXQgRD1Taihkb2N1bWVudCk7aU0oaGosVyxEKX1jYXRjaChEKXt9aWhDLnB1c2godGEuTFMoKCk9PntpZighKGs1fHwiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3cpKXt0cnl7aWYoaGoudG9TdHJpbmcoKSYmVyl7dmFyIEQ9YCR7QWkoVyl9YCxiPW9JW0RdO2ImJlBVKGIpfX1jYXRjaCh2KXt9azU9ITA7Zy5TSCgiRENMS1NUQVQiLDMpfX0sNUUzKSl9fX07CkxjPWZ1bmN0aW9uKCl7dmFyIG49TnVtYmVyKGcuQXIoIkRDTEtTVEFUIiwwKSk7cmV0dXJuIGlzTmFOKG4pPzA6bn07CmV0PWZ1bmN0aW9uKG4sVyl7bi5OPVd9OwpvbU09YXN5bmMgZnVuY3Rpb24obil7aWYoZy5xaS55dEF0UCYmIWcubCgieXRhdHBfa3MiKSl7dmFyIFc9YXdhaXQgZy5xaS55dEF0UDtkZWxldGUgZy5xaS55dEF0UDt2YXIgRD1XPy5SO3ZhciBiPVc/LlQ7Vz11dDIoRCk7bGV0IGs9ISFiO24uSi5KKEQ/Vz9rPzc6MTA6az8xOjg6az8yOjksbi5XKyspO2lmKCFEfHxXKUQ9YXdhaXQgWHkobixxZShiLG51bGwpKSxEPUpTT04uc3RyaW5naWZ5KEQpO2cucWkueXRBdFJDP2cucWkueXRBdFJDKEQpOmcuR3EoRXJyb3IoInl0QXRSQyBub3QgZGVmaW5lZCBmb3IgeXRBdFAuIikpfWVsc2UgZy5xaS55dEF0UkM/Zy5WeCgwLGFzeW5jKCk9PntiPWcucWkueXRBdFQ7ZGVsZXRlIGcucWkueXRBdFQ7aWYoZy5xaS55dEF0UkMpe24uSi5KKDIsbi5XKyspO3ZhciBrPWF3YWl0IFh5KG4scWUoYixudWxsKSk7Zy5xaS55dEF0UkMmJmcucWkueXRBdFJDKEpTT04uc3RyaW5naWZ5KGspKX1lbHNlIG4uSi5KKDYsbi5XKyspfSwyLHYwKCJhdHRfaW5pdF9kZWxheSIsCjApKTooYj1nLnFpLnl0QXRULGRlbGV0ZSBnLnFpLnl0QXRULG4uSi5KKDEsbi5XKyspKTsKRD1hd2FpdCBFbXgoKTtELmJpbmRJbm5lcnR1YmVDaGFsbGVuZ2VGZXRjaGVyKGs9PntuLkouSigzLG4uVysrKTtyZXR1cm4gWHkobixxZShiLGspKX0pOwpELnJlZ2lzdGVyQ2hhbGxlbmdlRmV0Y2hlZENhbGxiYWNrKGs9PntrPWsuY2hhbGxlbmdlO2lmKCFrKXRocm93IEVycm9yKCJCR0VfTUFDUiIpO2s9e2NoYWxsZW5nZTprLFJSOldRKGspLE8xOnYsYmdDaGFsbGVuZ2U6bmV3IHIkfTtrPVByb21pc2UucmVzb2x2ZShrKTtuLk49a30pOwp2YXIgdj1hd2FpdCBnLk1oKGcuRDYoKSk7RD1ELmdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCkuY2hhbGxlbmdlO2lmKCFEKXRocm93IEVycm9yKCJCR0VfTUFDSUwiKTtyZXR1cm57Y2hhbGxlbmdlOkQsUlI6V1EoRCksTzE6dixiZ0NoYWxsZW5nZTpuZXcgciR9fTsKdGo9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9cWUodm9pZCAwLGckKCkuTik7dHJ5e3ZhciBEPWF3YWl0IGRmMihuLFcpfWNhdGNoKHgpe3JldHVybiBnLkdxKEVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXR0ZXN0YXRpb24gY2hhbGxlbmdlIGFmdGVyIDUgYXR0ZW1wdHM7IG5vdCByZXRyeWluZyBmb3IgMjRoLiIpKSxHMChuLDg2NEU1KSx7Y2hhbGxlbmdlOiIiLFJSOnt9LE8xOnZvaWQgMCxiZ0NoYWxsZW5nZTp2b2lkIDB9fVc9RC5RRjt2YXIgYj1ELlR0O0cwKG4sKE51bWJlcihiLnQpfHw3MjAwKSoxRTMpO249dm9pZCAwO2lmKCJjMWEiaW4gYiYmRC5iZ0NoYWxsZW5nZSl7RD1ELmJnQ2hhbGxlbmdlO3ZhciB2PW5ldyByJDtpZihELmludGVycHJldGVySmF2YXNjcmlwdCl7dmFyIGs9Tk4oRC5pbnRlcnByZXRlckphdmFzY3JpcHQpO2s9S2IoaykudG9TdHJpbmcoKTt2YXIgaD1uZXcgcXY7Zy5TRShoLDYsayk7JDkodixxdiwxLGgseFUpfWVsc2UgRC5pbnRlcnByZXRlclVybCYmCihrPXB3KEQuaW50ZXJwcmV0ZXJVcmwpLGs9eDMoaykudG9TdHJpbmcoKSxoPW5ldyBHSCxnLlNFKGgsNCxrKSwkOSh2LEdILDIsaCx4VSkpO0QuaW50ZXJwcmV0ZXJIYXNoJiZBUyh2LDMsRC5pbnRlcnByZXRlckhhc2gseFUpO0QucHJvZ3JhbSYmQVModiw0LEQucHJvZ3JhbSx4VSk7RC5nbG9iYWxOYW1lJiZBUyh2LDUsRC5nbG9iYWxOYW1lLHhVKTtELmNsaWVudEV4cGVyaW1lbnRzU3RhdGVCbG9iJiZBUyh2LDcsRC5jbGllbnRFeHBlcmltZW50c1N0YXRlQmxvYix4VSk7dHJ5e2F3YWl0IHRxKGckKCksdil9Y2F0Y2goeCl7cmV0dXJuIGcuR3EoeCkse2NoYWxsZW5nZTpXLFJSOmIsTzE6bixiZ0NoYWxsZW5nZTp2fX10cnl7bj1uZXcgQXEoe2NoYWxsZW5nZTp2LHgzOntWajoiYUdJZiJ9fSksYXdhaXQgbi5Pdn1jYXRjaCh4KXtnLkdxKHgpLG49dm9pZCAwfX1yZXR1cm57Y2hhbGxlbmdlOlcsUlI6YixPMTpuLGJnQ2hhbGxlbmdlOnZ9fTsKWHk9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uLlg7aWYoIUR8fEQuV0coKSlyZXR1cm4gJDUobixXKTtnLmdfKCJhdHRfcG5hIix2b2lkIDAsImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO3JldHVybiBuZXcgUHJvbWlzZShiPT57RC5lRigicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9PnskNShuLFcpLnRoZW4oYil9KX0pfTsKZGYyPWFzeW5jIGZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEPXZvaWQgMCxiPTA7Yjw1Oyl7aWYoYj4wKXtsZXQgdj0xRTMqTWF0aC5wb3coMixiLTEpK01hdGgucmFuZG9tKCkqMUUzO2F3YWl0IG5ldyBQcm9taXNlKGs9PntnLmNCKDAsKCk9PntrKHZvaWQgMCl9LHYpfSl9dHJ5e24uSi5KKDQsbi5XKyspOwpsZXQgdj1hd2FpdCBYeShuLFcpO3JldHVybiB6YWkodil9Y2F0Y2godil7RD12LHYgaW5zdGFuY2VvZiBFcnJvciYmZy5HcSh2KX1iKyt9dGhyb3cgRDt9OwpHMD1mdW5jdGlvbihuLFcpe3ZhciBEPURhdGUubm93KCkrVyxiPWFzeW5jKCk9Pnt2YXIgdj1ELURhdGUubm93KCk7djwxRTM/YXdhaXQgbDlpKG4pOmcuY0IoMCxiLE1hdGgubWluKHYsNkU0KSl9OwpiKCl9OwokNT1hc3luYyBmdW5jdGlvbihuLFcpe2IwKDIpO3RyeXtsZXQgRD1hd2FpdCBYeShuLm5ldHdvcmssVyk7RD9ELmNoYWxsZW5nZSYmIUQuYmdDaGFsbGVuZ2U/YjAoMSk6YjAoNCk6YjAoMyk7cmV0dXJuIER9Y2F0Y2goRCl7YjAoMyl9fTsKemFpPWZ1bmN0aW9uKG4pe2lmKCFuKXRocm93IEVycm9yKCJGZXRjaGluZyBBdHRlc3RhdGlvbiBjaGFsbGVuZ2UgcmV0dXJuZWQgZmFsc3kiKTtpZighbi5jaGFsbGVuZ2UpdGhyb3cgRXJyb3IoIk1pc3NpbmcgQXR0ZXN0YXRpb24gY2hhbGxlbmdlIik7dmFyIFc9bi5jaGFsbGVuZ2UsRD1XUShXKTtpZigiYzFhImluIEQmJighbi5iZ0NoYWxsZW5nZXx8IW4uYmdDaGFsbGVuZ2UucHJvZ3JhbSkpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGJnIGNoYWxsZW5nZSBidXQgbWlzc2luZy4iKTtyZXR1cm57Li4ubixRRjpXLFR0OkR9fTsKbDlpPWFzeW5jIGZ1bmN0aW9uKG4pe3ZhciBXPWF3YWl0IFByb21pc2UucmFjZShbbi5OLG51bGxdKSxEPXRqKG4pO24uTj1EO1c/Lk8xPy5kaXNwb3NlKCl9OwpUR2g9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IFByb21pc2UoRD0+e2cuY0IoMCwoKT0+e0QoVygpKX0sbil9KX07CnFlPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e2VuZ2FnZW1lbnRUeXBlOiJFTkdBR0VNRU5UX1RZUEVfVU5CT1VORCJ9O24mJihELmVhY3JUb2tlbj1uKTtXJiYoRC5pbnRlcnByZXRlckhhc2g9Vyk7cmV0dXJuIER9Owp1dDI9ZnVuY3Rpb24obil7aWYoIW58fCFnLmwoInJvc2NhcyIpKXJldHVybiExO3RyeXt2YXIgVz1KU09OLnBhcnNlKG4pfWNhdGNoKEQpe3JldHVybiExfW49Vy5jaGFsbGVuZ2U7aWYoIW4pcmV0dXJuITE7Vz1XUShuKTtuPU51bWJlcihXLmMpfHx2b2lkIDA7Vz1OdW1iZXIoVy50KXx8NzIwMDtyZXR1cm4hIW4mJkRhdGUubm93KCk+KG4rVykqMUUzfTsKcmE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2Uobj0+e3ZhciBXPXdpbmRvdztXLmF0dG1wIT09dm9pZCAwP24oVy5hdHRtcCk6KFcuYXR0bXE9PT12b2lkIDAmJihXLmF0dG1xPVtdKSxXLmF0dG1xLnB1c2goRD0+e24oRCl9KSl9KX07CmcucGM9YXN5bmMgZnVuY3Rpb24obixXLEQpe2lmKHNoKCkpe3ZhciBiPXdpbmRvdztyZXR1cm4gYi5hdHRtcCE9PXZvaWQgMD9iLmF0dG1wLnMobixXLEQpOihhd2FpdCByYSgpKS5zKG4sVyxEKX1yZXR1cm4oYj0oYj1nLnJyKCJ5dC5hYmEuYXR0IikpP2I6TmUuaW5zdGFuY2UhPT12b2lkIDA/TmUuaW5zdGFuY2UuZFEuYmluZChOZS5pbnN0YW5jZSk6bnVsbCk/YihuLFcsRCk6UHJvbWlzZS5yZXNvbHZlKHtlcnJvcjoiQVRURVNUQVRJT05fRVJST1JfQVBJX05PVF9SRUFEWSJ9KX07CmcuWTU9YXN5bmMgZnVuY3Rpb24oKXtpZihzaCgpKXJldHVybiB3aW5kb3cuYXR0bXA9PT12b2lkIDA/ITE6KGF3YWl0IHJhKCkpLmlyKCk7dmFyIG47cmV0dXJuKG49KG49Zy5ycigieXQuYWJhLmF0dDIiKSk/bjpOZS5pbnN0YW5jZSE9PXZvaWQgMD9OZS5pbnN0YW5jZS55Zi5iaW5kKE5lLmluc3RhbmNlKTpudWxsKT9uKCk6UHJvbWlzZS5yZXNvbHZlKCExKX07CnNoPWZ1bmN0aW9uKCl7cmV0dXJuKGcubCgiYXR0bXVzaSIpfHxnLmwoImF0dG11c2l3IikpJiZnLmwoImF0dG11c2lfdWUiKX07CkhRPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigieXREZWJ1Z0RhdGEuY2FsbGJhY2tzIik7RHx8KEQ9e30sZy5HYigieXREZWJ1Z0RhdGEuY2FsbGJhY2tzIixEKSk7aWYoZy5sKCJ3ZWJfZGRfaXUiKXx8anhTLmluY2x1ZGVzKG4pKURbbl09V307CkJHTT1hc3luYyBmdW5jdGlvbihuLFcsRCl7Vz17Y29udGV4dDpnLnZiKCksc2V0dGluZ0l0ZW1JZDpXLG5ld1ZhbHVlOkR9O0Q9TEIoQ0diKTtuPWF3YWl0IGcucl8obixXLEQpO2lmKCFufHxuLmVycm9yTWV0YWRhdGEpbj9uLmVycm9yTWV0YWRhdGEmJmcuR3EobmV3IGcuUXgoYFNldFNldHRpbmdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke24uZXJyb3JNZXRhZGF0YS5zdGF0dXN9YCkpOmcuR3EobmV3IGcuUXgoIlNldFNldHRpbmdSZXF1ZXN0IGZhaWxlZCB3aXRoIGVtcHR5IHJlc3BvbnNlIikpfTsKRjRiPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtEPyhuLnZWKDIpLGlNKGZ3KEQpLCgpPT57aWYod2luZG93LnRyYXlyaWRlKWZjKG4sYix2KTtlbHNle24udlYoMyk7bGV0IGg9dU0oRCkseD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChoKTt4JiYoeUooaCkseC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHgpKTtnLkdxKG5ldyBnLlF4KCJCTDpVTEIiLGAke0R9YCkpfX0saykpOlc/KGs9Zy56RigiU0NSSVBUIiksVyBpbnN0YW5jZW9mIEFGPyhrLnRleHRDb250ZW50PUtiKFcpLE9NKGspKTprLnRleHRDb250ZW50PVcsay5ub25jZT1Taihkb2N1bWVudCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChrKSxkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGspLHdpbmRvdy50cmF5cmlkZT9mYyhuLGIsdik6KG4udlYoNCksZy5HcShuZXcgZy5ReCgiQkw6VUxCSiIpKSkpOmcuR3EobmV3IGcuUXgoIkJMOlVMViIpKX07CmZjPWZ1bmN0aW9uKG4sVyxEKXtuLnZWKDUpO3ZhciBiPSEhbi5EYSYmd3loLmluY2x1ZGVzKGcuSVAobi5EYSl8fCIiKTt0cnl7bGV0IHY9bmV3IEFxKHtwcm9ncmFtOlcsZ2xvYmFsTmFtZToidHJheXJpZGUiLHgzOntkaXNhYmxlOiFnLmwoImF0dF93ZWJfcmVjb3JkX21ldHJpY3MiKXx8IWcubCgiYXR0X3NraXBfbWV0cmljc19mb3JfY29va2llbGVzc19kb21haW5zX2tzIikmJmIsVmo6ImFHSWYifX0pO3YuT3YudGhlbigoKT0+e24udlYoNik7RCYmRChXKX0pOwpuLk4odil9Y2F0Y2godil7bi52Vig3KSx2IGluc3RhbmNlb2YgRXJyb3ImJmcuR3Eodil9fTsKdmFyIE1DYj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFAwW0lbMTBdXSh0aGlzLDEsODEzOCxuLFcsRCl9OwpKaj1mdW5jdGlvbigpe3ZhciBuPWcucnIoInl0LmFidXNlLnBsYXllckF0dExvYWRlciIpO3JldHVybiBuJiZbImJndm1hIiwiYmd2bWIiLCJiZ3ZtYyJdLmV2ZXJ5KFc9PlcgaW4gbik/bjpudWxsfTsKUmFTPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDI6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiAyO2Nhc2UgMDpyZXR1cm4gMztjYXNlIDQ6Y2FzZSAzOnJldHVybiAxO2RlZmF1bHQ6Zy5wYihuLCJ1bmtub3duIHJlc3VsdCB0eXBlIil9fTsKZy5JYT1mdW5jdGlvbihuKXtyZXR1cm4gbj8ubGF5b3V0SWQhPW51bGwmJm4/LmxheW91dFR5cGUhPW51bGx9OwpnLlo2PWZ1bmN0aW9uKG4pe2lmKCFnLklhKG4uYWRMYXlvdXRNZXRhZGF0YSkpcmV0dXJuITE7bj1uLnJlbmRlcmluZ0NvbnRlbnQ7cmV0dXJuIGcudyhuLGcuU3QpfHxnLncobixnLkFqKXx8Zy53KG4sZy5tMil8fGcudyhuLGcuS2MpfHxnLncobixnLk9oKXx8Zy53KG4sZy5QUSk/ITA6ITF9OwpnLnUwPWZ1bmN0aW9uKG4pe2lmKCFnLklhKG4uYWRMYXlvdXRNZXRhZGF0YSkpcmV0dXJuITE7bj1uLnJlbmRlcmluZ0NvbnRlbnQ7cmV0dXJuIGcudyhuLGcuVWgpfHxnLncobixnLnlWKXx8Zy53KG4sUXhNKXx8Zy53KG4sZy5FaCl8fGcudyhuLGcuaTApPyEwOiExfTsKZy56MD1mdW5jdGlvbihuKXtyZXR1cm4gZy5JYShuLmFkTGF5b3V0TWV0YWRhdGEpP2cudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5vYSl8fGcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5kYSk/ITA6ITE6ITF9OwpnLmwwPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXllclZhcnMhPT12b2lkIDAmJm4ucGluZ3MhPT12b2lkIDAmJm4uZXh0ZXJuYWxWaWRlb0lkIT09dm9pZCAwfTsKZy5NZT1mdW5jdGlvbihuKXtpZighZy5JYShuLmFkTGF5b3V0TWV0YWRhdGEpKXJldHVybiExO249bi5yZW5kZXJpbmdDb250ZW50O3ZhciBXPWcudyhuLGcuVDApO3JldHVybiBXP2cuanQoVyk6KFc9Zy53KG4sZy5DYykpP2cubDAoVyk6KFc9Zy53KG4sZy5CUSkpP1cucGxheWVyVmFycyE9PXZvaWQgMDooVz1nLncobixnLlVoKSk/Vy5kdXJhdGlvbk1pbGxpc2Vjb25kcyE9PXZvaWQgMDpnLncobixnLkZ5KXx8Zy53KG4sZy53YSk/ITA6ITF9OwpnLmp0PWZ1bmN0aW9uKG4pe249KG4uc2VxdWVudGlhbExheW91dHN8fFtdKS5tYXAoVz0+Zy53KFcsZy5SYSkpOwpyZXR1cm4gbi5sZW5ndGg+MCYmbi5ldmVyeShnLk1lKX07CmcuVlY9ZnVuY3Rpb24obil7cmV0dXJuIGcuSWEobi5hZExheW91dE1ldGFkYXRhKT8obj1nLncobi5yZW5kZXJpbmdDb250ZW50LGcuUVYpKSYmbi5waW5ncz8hMDohMTohMX07CmcuRHE9ZnVuY3Rpb24obil7aWYoIWcuSWEobi5hZExheW91dE1ldGFkYXRhKSlyZXR1cm4hMTtpZihnLncobi5yZW5kZXJpbmdDb250ZW50LGcuY1EpfHxnLncobi5yZW5kZXJpbmdDb250ZW50LGcub2EpKXJldHVybiEwO3ZhciBXPWcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5hYSk7cmV0dXJuIGcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5uaSl8fGcudyhXPy5zaWRlUGFuZWwsVkMyKXx8Zy53KFc/LnNpZGVQYW5lbCxnLlckKXx8Zy53KFc/LnNpZGVQYW5lbCxjM2gpPyEwOiExfTsKZy5nTT1mdW5jdGlvbihuKXt2YXIgVzsoVz0hbil8fChXPW4uYWRTbG90TWV0YWRhdGEsVz0hKFc/LnNsb3RJZCE9PXZvaWQgMCYmVz8uc2xvdFR5cGUhPT12b2lkIDApKTtpZihXfHwhKGcuYloobil8fG4uc2xvdEVudHJ5VHJpZ2dlciYmbi5zbG90RnVsZmlsbG1lbnRUcmlnZ2VycyYmbi5zbG90RXhwaXJhdGlvblRyaWdnZXJzKSlyZXR1cm4hMTtuPW4uZnVsZmlsbG1lbnRDb250ZW50Py5mdWxmaWxsZWRMYXlvdXQ7cmV0dXJuKFc9Zy53KG4sZy5SYSkpP2cuTWUoVyk6KFc9Zy53KG4sZy52JCkpP2cuRHEoVyk6KFc9Zy53KG4sZy5reikpP2cudTAoVyk6KFc9Zy53KG4sZy5oWCkpP2cuWjYoVyk6KFc9Zy53KG4sZy54eikpP2cuSWEoVy5hZExheW91dE1ldGFkYXRhKT9nLncoVy5yZW5kZXJpbmdDb250ZW50LGcuU3QpPyEwOiExOiExOihXPWcudyhuLGcuTGkpKT9nLlZWKFcpOihuPWcudyhuLGcuZTIpKT9nLnowKG4pOiExfTsKZy5iWj1mdW5jdGlvbihuKXtyZXR1cm4obj1nLncobi5mdWxmaWxsbWVudENvbnRlbnQ/LmZ1bGZpbGxlZExheW91dCxnLnYkKSkmJm4uYWRMYXlvdXRNZXRhZGF0YT8ubGF5b3V0VHlwZT09PSJMQVlPVVRfVFlQRV9QQU5FTF9RUl9DT0RFIiYmbi5sYXlvdXRFeGl0Tm9ybWFsVHJpZ2dlcnM9PT12b2lkIDB9OwphOXI9ZnVuY3Rpb24obil7Zm9yKGxldCBXIG9mIG58fFtdKXtuPWcudyhXLGcuWEcpO2lmKG49PT12b2lkIDB8fCFnLmdNKG4pKWJyZWFrO2lmKChuPWcudyhuLmZ1bGZpbGxtZW50Q29udGVudD8uZnVsZmlsbGVkTGF5b3V0LGcuTGkpKSYmZy5WVihuKSlyZXR1cm4hMH1yZXR1cm4hMX07CnE0PWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5hZFBsYWNlbWVudHMmJiFuLmFkU2xvdHMpcmV0dXJuITE7Zm9yKGxldCBXIG9mIG4uYWRQbGFjZW1lbnRzfHxbXSl7aWYoIVcpY29udGludWU7bGV0IEQ9Vy5hZFBsYWNlbWVudFJlbmRlcmVyO2lmKEQhPW51bGwmJihELmNvbmZpZyYmRC5jb25maWcuYWRQbGFjZW1lbnRDb25maWcmJkQuY29uZmlnLmFkUGxhY2VtZW50Q29uZmlnLmtpbmQpPT09IkFEX1BMQUNFTUVOVF9LSU5EX1NUQVJUIilyZXR1cm4hMH1mb3IobGV0IFcgb2Ygbi5hZFNsb3RzfHxbXSlpZihnLncoVyxnLlhHKT8uYWRTbG90TWV0YWRhdGE/LnRyaWdnZXJFdmVudD09PSJTTE9UX1RSSUdHRVJfRVZFTlRfQkVGT1JFX0NPTlRFTlQiKXJldHVybiEwO3JldHVybiExfTsKbm4xPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Vz9XLmlzVHJ1c3RlZD09PSEwP0QucHVzaCgiQklTQ09UVElfQkFTRURfREVURUNUSU9OX1NUQVRFX0FTX1NFRUtfRVZFTlRfVFJVU1RFRCIpOlcuaXNUcnVzdGVkPT09ITE/RC5wdXNoKCJCSVNDT1RUSV9CQVNFRF9ERVRFQ1RJT05fU1RBVEVfQVNfU0VFS19FVkVOVF9OT1RfVFJVU1RFRCIpOkQucHVzaCgiQklTQ09UVElfQkFTRURfREVURUNUSU9OX1NUQVRFX0FTX1NFRUtfRVZFTlRfVFJVU1RFRF9QUk9QRVJUWV9VTkRFRklORUQiKTpELnB1c2goIkJJU0NPVFRJX0JBU0VEX0RFVEVDVElPTl9TVEFURV9BU19TRUVLX0VWRU5UX1VOREVGSU5FRCIpO2cuR0MoMCwiYS5zXyIse21ldGFkYXRhOm4sc3RhdGVzOkR9KTtnLlNIKCJBU0RTVEFUIiwwKX07CmcuR0M9ZnVuY3Rpb24obixXLEQpe1c9V0RDW1ddO3ZhciBiPXtkZXRlY3RlZDpuPT09MCxzb3VyY2U6YCR7Vy5KfSR7RC50cmlnZ2VyQ29udGV4dD8/IiJ9JHtELk0zPz8iIn1gLGRldGVjdGlvblN0YXRlczpELnN0YXRlcyxkdXJhdGlvbk1zOkQuRXd9O0QubWV0YWRhdGEmJihiLmNvbnRlbnRDcG49RC5tZXRhZGF0YS5jb250ZW50Q3BuLGIuYWRDcG49RC5tZXRhZGF0YS5hZENwbik7Zy56VSgiYmlzY290dGlCYXNlZERldGVjdGlvbiIsYik7Vy5OIT09dm9pZCAwJiYoRD1OdW1iZXIoZy5BcigiQ0FUU1RBVCIsMCkpLFcuTiE9PXZvaWQgMD8oVz1XLk4sbj1SYVMobiksbj1EJn4oMzw8Vyl8bjw8Vyk6bj1ELGcuU0goIkNBVFNUQVQiLG4pKX07CnRYPWZ1bmN0aW9uKG4sVyl7bj1uLndhdGNoRW5kcG9pbnRTdXBwb3J0ZWRBdXRob3JpemF0aW9uVG9rZW5Db25maWc/LnZpZGVvQXV0aG9yaXphdGlvblRva2VuPy5jcmVkZW50aWFsVHJhbnNmZXJUb2tlbnN8fFtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7KytEKWlmKG5bRF0uc2NvcGU9PT1XKXJldHVybiBuW0RdLnRva2VufHx2b2lkIDB9OwpnLk40PWZ1bmN0aW9uKG4pe3ZhciBXPWcudyhuLCR6KTtpZihXKXJldHVybiBXO2lmKChXPWcudyhuLERZcikpJiZXLmNvbW1hbmRzKXJldHVybiByTShXLmNvbW1hbmRzKTtpZigoVz1nLncobixiOGIpKSYmVy5jb21tYW5kcylyZXR1cm4gck0oVy5jb21tYW5kcyk7aWYoKG49Zy53KG4sdm5NKSkmJm4uaWRlbnRpZmllciYmbi5jb21tYW5kJiYoczN8fChzMz1bXSksIXMzLmluY2x1ZGVzKG4uaWRlbnRpZmllcikpKXJldHVybiBzMy5wdXNoKG4uaWRlbnRpZmllciksZy53KG4uY29tbWFuZCwkeil9OwpyTT1mdW5jdGlvbihuKXtpZihuLmxlbmd0aCE9PTApe3ZhciBXPVtdO2ZvcihsZXQgRCBvZiBuKShuPWcuTjQoRCkpJiZXLnB1c2gobik7cmV0dXJue2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOld9fX19OwpwaT1mdW5jdGlvbihuKXtpZihuJiZuLnNpbXBsZVRleHQpcmV0dXJuIG4uc2ltcGxlVGV4dDt2YXIgVz0iIjtpZihuJiZuLnJ1bnMpZm9yKGxldCBEPTA7RDxuLnJ1bnMubGVuZ3RoO0QrKyluLnJ1bnNbRF0udGV4dCYmKFcrPW4ucnVuc1tEXS50ZXh0KTtyZXR1cm4gV307Cll6PWZ1bmN0aW9uKG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaChXKXtnLlhqKFcpfX06bn07CmZpPWZ1bmN0aW9uKCl7SCQuaW5zdGFuY2V8fChIJC5pbnN0YW5jZT1uZXcgSCQpO3JldHVybiBIJC5pbnN0YW5jZX07CklmPWZ1bmN0aW9uKCl7SlguaW5zdGFuY2V8fChKWC5pbnN0YW5jZT1uZXcgSlgpO3JldHVybiBKWC5pbnN0YW5jZX07Cm1VPWZ1bmN0aW9uKG4sVyxELGI9e30pe1BWKCgpPT57a3ZNLmluY2x1ZGVzKFcpfHwoZy5HcShuZXcgZy5ReCgiY3JlYXRlQ2xpZW50U2NyZWVuKCkgY2FsbGVkIHdpdGggYSBub24tcGFnZSBWRSIsVykpLFc9ODM3NjkpO2lmKCFiLmlzSGlzdG9yeU5hdmlnYXRpb24pe2xldCB2PWIubGF5ZXJ8fDA7bi5UQy5zZXQodixbXSk7UzIobix2KS5wdXNoKHtyb290VmU6VyxrZXk6Yi5rZXl8fCIifSl9bi5EPVtdO24uTz1bXTtiLlVBP2hqdChuLFcsRCxiKTpBWChuLFcsRCxiKX0pKCl9OwpTMj1mdW5jdGlvbihuLFcpe24uSy5oYXMoVyl8fG4uSy5zZXQoVyxbXSk7cmV0dXJuIG4uSy5nZXQoVyl9OwpoanQ9ZnVuY3Rpb24obixXLEQsYj17fSl7bi5OLmFkZChiLmxheWVyfHwwKTtuLmo9KCk9PntBWChuLFcsRCxiKTt2YXIgdj13NChiLmxheWVyKTtpZih2KXtsZXQgaz1nLlJ2KGIubGF5ZXIpO2ZvcihsZXQgaCBvZiBuLkQpe2xldCB4PWhbMF0sTD1oWzFdfHx2O2s/S2kobix4LEwsYi5sYXllcixrKTpPMyhuLHgsTCxiLmxheWVyKX1mb3IobGV0IGggb2Ygbi5PKVAkKG4saFswXSxoWzFdKX19OwpEfHxnLlJ2KGIubGF5ZXIpfHxuLmooKTtpZihiLlVBKWZvcihsZXQgdiBvZiBiLlVBKXhZYihuLHYsYi5sYXllcik7ZWxzZSBnLlhqKEVycm9yKCJEZWxheWVkIHNjcmVlbiBuZWVkcyBhIGRhdGEgcHJvbWlzZS4iKSl9OwpBWD1mdW5jdGlvbihuLFcsRCxiPXt9KXt2YXIgdj12b2lkIDA7Yi5sYXllcnx8KGIubGF5ZXI9MCk7dj1iLnBhcmVudExheWVyIT09dm9pZCAwP2IucGFyZW50TGF5ZXI6Yi5sYXllcjt2YXIgaz1nLlJ2KHYpO3Y9dzQodik7dmFyIGg9RHx8dix4O2gmJihiLnBhcmVudENzbiE9PXZvaWQgMD94PXtjbGllbnRTY3JlZW5Ob25jZTpiLnBhcmVudENzbix2aXN1YWxFbGVtZW50Omh9OmsmJmshPT0iVU5ERUZJTkVEX0NTTiImJih4PXtjbGllbnRTY3JlZW5Ob25jZTprLHZpc3VhbEVsZW1lbnQ6aH0pKTt2YXIgTCxlPWcuQXIoIkVWRU5UX0lEIik7az09PSJVTkRFRklORURfQ1NOIiYmZSYmKEw9e3NlcnZsZXREYXRhOntzZXJpYWxpemVkU2VydmxldEV2ZW50SWQ6ZX19KTtnLmwoImNvbWJpbmVfdmVfZ3JhZnRzIikmJmsmJlpxKG4sayk7Zy5sKCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpJiZoJiZrJiZkSyhoLGspO3RyeXt2YXIgRz1nOWkobi5jbGllbnQsVyx4LGIuTDgsCmIuY3R0QXV0aEluZm8sTCxiLmltcGxpY2l0R2VzdHVyZVR5cGUsYi5sb2dnaW5nRXhwZWN0YXRpb25zLGIuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpfWNhdGNoKE4pe0s0KE4se2w3Olcscm9vdFZlOnYsSTc6RCxsQTprLGdQOngsTDg6Yi5MOH0pO2cuWGooTik7cmV0dXJufWNzKEcsVyxiLmxheWVyLGIuY3R0QXV0aEluZm8pO2smJmshPT0iVU5ERUZJTkVEX0NTTiImJnYmJiF3SEMoaykmJihUcShuLmNsaWVudCxrLHYsITApLG4uSi5kZWxldGUoaykpO1c9UzIobixiLmxheWVyfHwwKTtXLmxlbmd0aD4wJiYhV1tXLmxlbmd0aC0xXS5jc24mJihXW1cubGVuZ3RoLTFdLmNzbj1HfHwiIik7Zy5ubCh7Y2xpZW50U2NyZWVuTm9uY2U6R30pO1UzLmluc3RhbmNlfHwoVTMuaW5zdGFuY2U9bmV3IFUzKTtQVihmaSgpLk4pLmJpbmQoZmkoKSkoKTt2YXIgcj13NChiLmxheWVyKTtrJiZrIT09IlVOREVGSU5FRF9DU04iJiZyJiZnLmwoIm11c2ljX3dlYl9tYXJrX3Jvb3RfdmlzaWJsZSIpJiYKRmooRyxyKTtuLk4uZGVsZXRlKGIubGF5ZXJ8fDApO24uaj12b2lkIDA7bi5TJC5nZXQoYi5sYXllcik/LmZvckVhY2goKE4sSCk9PntOP08zKG4sSCxOLGIubGF5ZXIpOnImJk8zKG4sSCxyLGIubGF5ZXIpfSk7CkxEWihuKX07CnhZYj1mdW5jdGlvbihuLFcsRD0wKXtQVigoKT0+e1cudGhlbihiPT57bi5OLmhhcyhEKSYmbi5qJiZuLmooKTt2YXIgdj1nLlJ2KEQpLGs9dzQoRCk7aWYodiYmayl7dmFyIGg9e2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOjN9O2I/LnJlc3BvbnNlPy50cmFja2luZ1BhcmFtcyYmdWcobi5jbGllbnQsdixrLFRVKGIucmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpO2I/LnBsYXllclJlc3BvbnNlPy50cmFja2luZ1BhcmFtcyYmdWcobi5jbGllbnQsdixrLFRVKGIucGxheWVyUmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpfX0pfSkoKX07CktpPWZ1bmN0aW9uKG4sVyxELGI9MCx2KXtuLkouaGFzKHYpfHxuLkouc2V0KHYsbmV3IFNldCk7dmFyIGs9RHx8dzQoYik7az1gJHtXLnRvU3RyaW5nKCl9fCR7az9rLnRvU3RyaW5nKCk6IiJ9YDtuLkouZ2V0KHYpLmhhcyhrKXx8KE8zKG4sVyxELGIpLG4uSi5nZXQodikuYWRkKGspKX07Ck8zPWZ1bmN0aW9uKG4sVyxELGI9MCl7cmV0dXJuIFBWKCgpPT57aWYobi5OLmhhcyhiKSlyZXR1cm4gbi5ELnB1c2goW1csRF0pLCEwO3ZhciB2PWcuUnYoYiksaz1EfHx3NChiKTtpZih2JiZrKXtpZihnLmwoImNvbWJpbmVfdmVfZ3JhZnRzIikpe2xldCBoPW4uWC5nZXQoay50b1N0cmluZygpKTtoP2gucHVzaChXKToobi5ZLnNldChrLnRvU3RyaW5nKCksayksbi5YLnNldChrLnRvU3RyaW5nKCksW1ddKSk7bi50d3x8KG4udHc9Zy5jQigwLCgpPT57WnEobix2KX0sMTIwMCkpfWVsc2UgdWcobi5jbGllbnQsdixrLFcpOwpyZXR1cm4hMH1yZXR1cm4hMX0pKCl9OwpnLnlyPWZ1bmN0aW9uKG4pe3ZhciBXPUlmKCk7UFYoKCk9Pnt2YXIgRD1UVShuKSxiPWcuUnYoMCk7YiYmIVcuTi5oYXMoMCk/S2koVyxELHZvaWQgMCwwLGIpOk8zKFcsRCx2b2lkIDAsMCk7cmV0dXJuIER9KSgpfTsKZWp3PWZ1bmN0aW9uKG4pe3ZhciBXPXt2ZVR5cGU6MjUzMjQ2fTtyZXR1cm4gUFYoKCk9PntpZighVy52ZVR5cGUpcmV0dXJuIGcucWcobmV3IGcuUXgoIkVycm9yOiBUcnlpbmcgdG8gZ3JhZnQgYSBjbGllbnQgVkUgd2l0aG91dCBhIHZlVHlwZS4iKSksbnVsbDtpZihXLnZpc2liaWxpdHlUeXBlcyl7dmFyIEQ9Vy52aXNpYmlsaXR5VHlwZXMucmVkdWNlKChiLHYpPT5ifHYpOwpEPXt2aXNpYmlsaXR5Ont0eXBlczpTdHJpbmcoRCl9fX1EPWp5KFcudmVUeXBlLFcudmlzdWFsRWxlbWVudCxXLmVsZW1lbnRJbmRleCxXLmNsaWVudFlvdVR1YmVEYXRhLHZvaWQgMCxEKTtyZXR1cm4gTzMobixEKT9EOm51bGx9KSgpfTsKWnE9ZnVuY3Rpb24obixXKXtpZihXPT09dm9pZCAwKXtsZXQgRD1CZ3IoKTtmb3IobGV0IGI9MDtiPEQubGVuZ3RoO2IrKylEW2JdIT09dm9pZCAwJiZacShuLERbYl0pfWVsc2Ugbi5YLmZvckVhY2goKEQsYik9PnsoYj1uLlkuZ2V0KGIpKSYmaWcobi5jbGllbnQsVyxiLEQpfSksbi5YLmNsZWFyKCksbi5ZLmNsZWFyKCksbi50dz12b2lkIDB9Owpnblo9ZnVuY3Rpb24obixXLEQsYj0wKXtpZighVylyZXR1cm4hMTtiPWcuUnYoYik7aWYoIWIpcmV0dXJuITE7amkobi5jbGllbnQsYixUVShXKSxEKTtyZXR1cm4hMH07ClAkPWZ1bmN0aW9uKG4sVyxELGI9MCl7dmFyIHY9Zy5SdihiKTtXPVd8fHc0KGIpO3YmJlcmJihuPW4uY2xpZW50LGI9UGEoe2N0dEF1dGhJbmZvOlE0KHYpfHx2b2lkIDB9LHYpLEQ9e2Nzbjp2LHZlOlcuZ2V0QXNKc29uKCksY2xpZW50RGF0YTpEfSx2PT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixiLEQpOm4/dVIoInZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixELGIpKX07CkxEWj1mdW5jdGlvbihuKXtmb3IodmFyIFc9MDtXPG4uVi5sZW5ndGg7VysrKXt2YXIgRD1uLlZbV107dHJ5e0QoKX1jYXRjaChiKXtnLlhqKGIpfX1uLlYubGVuZ3RoPTA7Zm9yKFc9MDtXPG4uY0oubGVuZ3RoO1crKyl7RD1uLmNKW1ddO3RyeXtEKCl9Y2F0Y2goYil7Zy5YaihiKX19fTsKaVo9ZnVuY3Rpb24oKXtFMy5pbnN0YW5jZXx8KEUzLmluc3RhbmNlPW5ldyBFMyk7cmV0dXJuIEUzLmluc3RhbmNlfTsKWE9iPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uZXcgWE1MSHR0cFJlcXVlc3Q7RD8ubGcmJihiLm9ucmVhZHlzdGF0ZWNoYW5nZT12PT57RC5sZyhiLHYpfSk7CmIub3BlbihXLm1ldGhvZD8/IkdFVCIsbiwhMCk7Yi5yZXNwb25zZVR5cGU9InRleHQiO2Iud2l0aENyZWRlbnRpYWxzPSEwO2lmKFcuaGVhZGVycylmb3IobGV0IFt2LGtdb2YgT2JqZWN0LmVudHJpZXMoVy5oZWFkZXJzKSliLnNldFJlcXVlc3RIZWFkZXIodixrKTtyZXR1cm4gYn07CnFmUz1mdW5jdGlvbigpe3ZhciBuPW5hdmlnYXRvcjtyZXR1cm4gbmV3IFByb21pc2UoKFcsRCk9PntuLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2U/LnF1ZXJ5VXNhZ2VBbmRRdW90YT9uLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2UucXVlcnlVc2FnZUFuZFF1b3RhKChiLHYpPT57Vyh7dXNhZ2U6YixxdW90YTp2fSl9LGI9PntEKGIpfSk6RChFcnJvcigid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSBpcyBub3Qgc3VwcG9ydGVkLiIpKX0pfTsKdDZDPWZ1bmN0aW9uKG4sVyl7R3ZVKG4ucHJvZ3JhbSxXLkQzKSYmKGcuZ18oImJnX2kiLHZvaWQgMCwicGxheWVyX2F0dCIpLGcudVouaW5pdGlhbGl6ZShuLCgpPT57Zy5nXygiYmdfbCIsdm9pZCAwLCJwbGF5ZXJfYXR0Iik7b2Y9KDAsZy5SKSgpfSxXLmNzcE5vbmNlLFcuRGEpKX07CnZhciAkWWo9ZnVuY3Rpb24oKXtyZXR1cm4gSjRbSVsxMF1dKHRoaXMsMTYsNDYyNil9OwpyOVM9ZnVuY3Rpb24obj17fSl7cmV0dXJuIGcudVouaW52b2tlKG4pfTsKR3ZVPWZ1bmN0aW9uKG4sVyl7aWYobil7dmFyIEQ7Zy51Wi5pc0xvYWRpbmcoKT9EPSExOkQ9IW9mfHwoMCxnLlIpKCktb2Y+VztuPUR9ZWxzZSBuPSExO3JldHVybiBufTsKc18yPWZ1bmN0aW9uKG4sVyl7aWYoVy5wYXJ0bmVySWQ9PT0zOCYmbi5wbGF5ZXJTdHlsZT09PSJib29rcyIpe3ZhciBEPVcudmlkZW9JZC5pbmRleE9mKCI6Iik7bj1XLnZpZGVvSWQuc2xpY2UoMCxEKTtEPVcudmlkZW9JZC5zbGljZShEKzEpO3JldHVybiBnLkVUKGAvL3BsYXkuZ29vZ2xlLmNvbS9ib29rcy92b2x1bWVzLyR7bn0vY29udGVudC9tZWRpYWAse2FpZDpELHNpZzpXLnlkfSl9aWYoVy5wYXJ0bmVySWQ9PT0zMCYmbi5wbGF5ZXJTdHlsZT09PSJkb2NzIilyZXR1cm4gZy5FVCgiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZ2V0X3ZpZGVvX2luZm8iLHtkb2NpZDpXLnZpZGVvSWQsYXV0aHVzZXI6Vy5rcCxhdXRoa2V5OlcudkYsZXVybDpuLlFyfSk7aWYoVy5wYXJ0bmVySWQ9PT0zMyYmbi5wbGF5ZXJTdHlsZT09PSJnb29nbGUtbGl2ZSIpcmV0dXJuIGcuRVQoIi8vZ29vZ2xlLWxpdmVwbGF5ZXIuYXBwc3BvdC5jb20vZ2V0X3ZpZGVvX2luZm8iLHtrZXk6Vy52aWRlb0lkfSk7CnRocm93IEVycm9yKCJnZXRWaWRlb0luZm9VcmwgZm9yIGludmFsaWQgbmFtZXNwYWNlOiAiK24uVik7fTsKTlFpPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O24uY0wmJihXLnl0cmV4dD1uLmNMKTtyZXR1cm4gZy5HRihXKT92b2lkIDA6V307CmcuekM9ZnVuY3Rpb24obixXKXt0NkMobix7RDM6Zy5kTShXLmV4cGVyaW1lbnRzLCJiZ192bV9yZWluaXRfdGhyZXNob2xkIiksY3NwTm9uY2U6Vy5jc3BOb25jZSxEYTpXLkRhfHwiIn0pfTsKZy5sWj1mdW5jdGlvbihuKXtpZihuLnZpZGVvRGF0YSYmbi52aWRlb0RhdGEucEspe2xldCBXPVtuLnZpZGVvRGF0YS5wS107Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKG4uTikpaWYobi5SUltEXSYmbi5OW0RdKXtsZXQgYj1uLk5bRF0obi5SUik7YiYmVy5wdXNoKGIpfXJldHVybiBXLmpvaW4oIiYiKX1yZXR1cm4gbnVsbH07CmcuVEM9ZnVuY3Rpb24obil7dmFyIFc9W107aWYobilmb3IobGV0IFtiLHZdb2YgT2JqZWN0LmVudHJpZXMobikpe249Yjt2YXIgRD12O2lmKEQ9PT12b2lkIDApY29udGludWU7RD10eXBlb2YgRD09PSJib29sZWFuIj9gJHsrRH1gOmAke0R9YC5yZXBsYWNlKC9bOiw9XS9nLCJfIik7Vy5wdXNoKGAke259LiR7RH1gKX1yZXR1cm4gVy5qb2luKCI7Iil9OwpqMj1mdW5jdGlvbihuKXtyZXR1cm4gbj09PTF8fG49PT0yfTsKQiQ9ZnVuY3Rpb24obixXPTApe2lmKG4gaW5zdGFuY2VvZiBnLkNpKXJldHVybiBuO249biYmbiBpbnN0YW5jZW9mIEVycm9yP246RXJyb3IoYCR7bn1gKTtqMihXKT9nLlhqKG4pOmcuR3Eobik7cmV0dXJuIG5ldyBnLkNpKFc9PT0xPyJwbGF5ZXIuZmF0YWxleGNlcHRpb24iOiJwbGF5ZXIuZXhjZXB0aW9uIix7bmFtZTpgJHtuLm5hbWV9YCxtZXNzYWdlOmAke24ubWVzc2FnZX1gfSxXKX07Ckg4cj1mdW5jdGlvbihuLFcpe1FBKG4sMixXLkNuLEZHLDMpO1FBKG4sMyxXLmlubmVydHViZVJlcXVlc3QscE9pLDMpO2cuRmEobiw0LFcub25lc2llVXN0cmVhbWVyQ29uZmlnKTtnLkZhKG4sOSxXLkJ4KTtRQShuLDEwLFcubUgsd00sMyk7UUEobiwxNSxXLnJlbG9hZFBsYXliYWNrUGFyYW1zLFlmaSwzKTtnLlJ3KG4sMTgsVy5Vayl9OwpRcj1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLmZvcm1hdElkLE00LDMpO0NSKG4sMixXLnN0YXJ0VGltZU1zKTtDUihuLDMsVy5kdXJhdGlvbk1zKTtDUihuLDQsVy5BQyk7Q1Iobiw1LFcuaTkpO1FBKG4sOSxXLmo2LGY4QywzKTtRQShuLDExLFcuQUYsUmYsMSk7UUEobiwxMixXLkVqLFJmLDEpfTsKSjliPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy52aWRlb0lkKTtDUihuLDIsVy5sbXQpfTsKZjhDPWZ1bmN0aW9uKG4sVyl7aWYoVy5Geilmb3IobGV0IEQ9MDtEPFcuRnoubGVuZ3RoO0QrKylRQShuLDEsVy5GeltEXSxKOWIsMyl9OwpNND1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLml0YWcpO0NSKG4sMixXLmxtdCk7Zy5SdyhuLDMsVy54dGFncyl9OwpWcj1mdW5jdGlvbihuKXtyZXR1cm57aXRhZzpQRyhuLDEpLGxtdDpQRyhuLDIpLHh0YWdzOkV4KG4sMyl9fTsKUmY9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5zdGFydFRpY2tzKTtDUihuLDIsVy5sOCk7Q1IobiwzLFcudGltZXNjYWxlKX07CmMkPWZ1bmN0aW9uKG4pe3JldHVybntzdGFydFRpY2tzOlBHKG4sMSksbDg6UEcobiwyKSx0aW1lc2NhbGU6UEcobiwzKX19OwpJOGo9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5kZWZhdWx0UG9saWN5KTtDUihuLDIsVy5zbW9vdGgpO0NSKG4sMyxXLnZpc2liaWxpdHkpO0NSKG4sNCxXLk9iKTtDUihuLDUsVy5wZXJmb3JtYW5jZSk7Q1Iobiw2LFcuc3BlZWQpfTsKQTlTPWZ1bmN0aW9uKG4sVyl7aWYoVy5hdXRob3JpemVkRm9ybWF0cylmb3IobGV0IEQ9MDtEPFcuYXV0aG9yaXplZEZvcm1hdHMubGVuZ3RoO0QrKylRQShuLDEsVy5hdXRob3JpemVkRm9ybWF0c1tEXSxTZmosMSk7Zy5GYShuLDIsVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQpfTsKU2ZqPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcudHJhY2tUeXBlKTtCRyhuLDIsVy5pc0hkcil9OwpGRz1mdW5jdGlvbihuLFcpe0NSKG4sMTMsVy50aW1lU2luY2VMYXN0TWFudWFsRm9ybWF0U2VsZWN0aW9uTXMpO3ZhciBEPVcubGFzdE1hbnVhbERpcmVjdGlvbjtEIT09dm9pZCAwJiYoajUobiwxMTIpLGo1KG4sRDw8MV5EPj4zMSkpO0NSKG4sMTYsVy5pSCk7Q1IobiwxNyxXLmRldGFpbGVkTmV0d29ya1R5cGUpO0NSKG4sMTgsVy5zQSk7Q1IobiwxOSxXLllBKTtDUihuLDIxLFcuVE4pO0NSKG4sMjMsVy5JJCk7Q1IobiwyOCxXLm5SKTtDUihuLDI5LFcubHEpO0NSKG4sMzQsVy52aXNpYmlsaXR5KTtEPVcucGxheWJhY2tSYXRlO2lmKEQhPT12b2lkIDApe3ZhciBiPW5ldyBBcnJheUJ1ZmZlcig0KTsobmV3IEZsb2F0MzJBcnJheShiKSlbMF09RDtEPShuZXcgVWludDMyQXJyYXkoYikpWzBdO2lmKEQhPT12b2lkIDApZm9yKGo1KG4sMjg1KSxUNihuLDQpLGI9MDtiPDQ7KW4udmlldy5zZXRVaW50OChuLnBvcyxEJjI1NSksRD4+PTgsbi5wb3MrPTEsYis9MX1DUihuLDM2LFcuZnEpOwpRQShuLDM4LFcubWVkaWFDYXBhYmlsaXRpZXMsbVl3LDMpO0NSKG4sMzksVy5aSSk7Q1Iobiw0MCxXLllmKTtDUihuLDQ0LFcucGxheWVyU3RhdGUpO0JHKG4sNDYsVy5FYik7Q1Iobiw0OCxXLmo0KTtDUihuLDUwLFcua0UpO0NSKG4sNTEsVy5VbSk7Q1Iobiw1NCxXLkc3KTtpZihXLnlLKWZvcihEPTA7RDxXLnlLLmxlbmd0aDtEKyspQ1Iobiw1NSxXLnlLW0RdKTtCRyhuLDU2LFcuWkMpO0NSKG4sNTcsVy5YRCk7Qkcobiw1OCxXLmJ2KTtDUihuLDU5LFcublMpO0NSKG4sNjAsVy5HRik7Qkcobiw2MSxXLmlzUHJlZmV0Y2gpO0NSKG4sNjIsVy5TZik7Zy5GYShuLDYzLFcuc2FickxpY2Vuc2VDb25zdHJhaW50KTtDUihuLDY0LFcuazgpO0NSKG4sNjYsVy5WWCk7Q1Iobiw2NyxXLkJaKTtDUihuLDY4LFcucDYpO2cuUncobiw2OSxXLmF1ZGlvVHJhY2tJZCk7Qkcobiw3MSxXLnIwKTtRQShuLDcyLFcuTk8sSThqLDEpO0NSKG4sNzMsVy5pQik7Q1Iobiw3NCxXLllzKTtDUihuLDc1LFcuZXEpOwpDUihuLDc2LFcucU0pO1FBKG4sNzksVy5rYyxBOVMsMyk7Q1Iobiw4MCxXLkokKTtCRyhuLDg1LFcudXEpfTsKbVl3PWZ1bmN0aW9uKG4sVyl7aWYoVy52aWRlb0Zvcm1hdENhcGFiaWxpdGllcylmb3IodmFyIEQ9MDtEPFcudmlkZW9Gb3JtYXRDYXBhYmlsaXRpZXMubGVuZ3RoO0QrKylRQShuLDEsVy52aWRlb0Zvcm1hdENhcGFiaWxpdGllc1tEXSxLRDEsMSk7aWYoVy5hdWRpb0Zvcm1hdENhcGFiaWxpdGllcylmb3IoRD0wO0Q8Vy5hdWRpb0Zvcm1hdENhcGFiaWxpdGllcy5sZW5ndGg7RCsrKVFBKG4sMixXLmF1ZGlvRm9ybWF0Q2FwYWJpbGl0aWVzW0RdLE84TSwxKTtRQShuLDQsVy5wZXJQbGF5YmFja0F0dHJpYnV0ZXMsUDZTLDMpO0NSKG4sNSxXLmhkck1vZGVCaXRtYXNrKX07CnZhciBaODE9ZnVuY3Rpb24oKXtyZXR1cm4gZzdbSVsxMF1dKHRoaXMsNDEsODk3NSl9Owp2YXIgS0QxPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcudmlkZW9Db2RlYyk7QkcobiwyLFcuZWZmaWNpZW50KTtDUihuLDMsVy5tYXhIZWlnaHQpO0NSKG4sNCxXLm1heFdpZHRoKTtDUihuLDExLFcubWF4RnJhbWVyYXRlKTtDUihuLDEyLFcubWF4Qml0cmF0ZUJwcyk7QkcobiwxNSxXLmlzMTBCaXRTdXBwb3J0ZWQpfSxPOE09ZnVuY3Rpb24obixXKXtDUihuLDEsVy5hdWRpb0NvZGVjKTsKQ1IobiwyLFcubnVtQ2hhbm5lbHMpO0NSKG4sMyxXLm1heEJpdHJhdGVCcHMpO0NSKG4sNixXLnNwYXRpYWxDYXBhYmlsaXR5Qml0bWFzayl9Owp2YXIgVVloPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFAwW0lbMTBdXSh0aGlzLDUxLDIyNDksbixXKX07ClA2Uz1mdW5jdGlvbihuLFcpe2lmKFcuaXRhZ0RlbnlsaXN0KWZvcihsZXQgRD0wO0Q8Vy5pdGFnRGVueWxpc3QubGVuZ3RoO0QrKylDUihuLDEsVy5pdGFnRGVueWxpc3RbRF0pfTsKd009ZnVuY3Rpb24obixXKXtRQShuLDEsVy5jbGllbnRJbmZvLHk5dCwzKTtnLkZhKG4sMixXLmROKTtnLkZhKG4sMyxXLnBsYXliYWNrQ29va2llKTtnLkZhKG4sNCxXLkJ4KTtpZihXLnJxKWZvcih2YXIgRD0wO0Q8Vy5ycS5sZW5ndGg7RCsrKVFBKG4sNSxXLnJxW0RdLEVuMiwzKTtpZihXLnV0KWZvcihEPTA7RDxXLnV0Lmxlbmd0aDtEKyspQ1Iobiw2LFcudXRbRF0pO2cuUncobiw3LFcucEcpO1FBKG4sOCxXLnEkLGk4VSwzKX07CnVmTT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLlN6KTtDUihuLDIsVy5SNyl9OwpvbnI9ZnVuY3Rpb24obixXKXt2YXIgRD1XLmNvZGU7RCE9PXZvaWQgMCYmKGo1KG4sOCksajUobixEPDwxXkQ+PjMxKSk7Zy5SdyhuLDIsVy5tZXNzYWdlKX07CmRZTT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmNsaWVudFN0YXRlKTtRQShuLDIsVy5adSx1Zk0sMSl9OwppOFU9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLll0KTtRQShuLDIsVy5TaixvbnIsMyk7UUEobiwzLFcuY29sZFN0YXJ0SW5mbyxkWU0sMyl9OwpFbjI9ZnVuY3Rpb24obixXKXtDUihuLDEsVy50eXBlKTtnLkZhKG4sMixXLnZhbHVlKX07Cnk5dD1mdW5jdGlvbihuLFcpe2cuUncobiwxLFcuaGwpO2cuUncobiwxMixXLmRldmljZU1ha2UpO2cuUncobiwxMyxXLmRldmljZU1vZGVsKTtDUihuLDE2LFcuY2xpZW50TmFtZSk7Zy5SdyhuLDE3LFcuY2xpZW50VmVyc2lvbik7Zy5SdyhuLDE4LFcub3NOYW1lKTtnLlJ3KG4sMTksVy5vc1ZlcnNpb24pfTsKemoxPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5uYW1lKTtnLlJ3KG4sMixXLnZhbHVlKX07CmFmPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy51cmwpO2lmKFcuZTMpZm9yKGxldCBEPTA7RDxXLmUzLmxlbmd0aDtEKyspUUEobiwyLFcuZTNbRF0semoxLDMpO2cuRmEobiwzLFcucG9zdEJvZHkpO0JHKG4sNCxXLkVhKTtCRyhuLDYsVy5lOCl9OwpwT2k9ZnVuY3Rpb24obixXKXtnLkZhKG4sMixXLnZVKTtnLkZhKG4sNSxXLmVuY3J5cHRlZENsaWVudEtleSk7Zy5GYShuLDYsVy5pdik7Zy5GYShuLDcsVy5kZik7QkcobiwxMCxXLm13KTtCRyhuLDEzLFcuRkQpO0JHKG4sMTQsVy5EWSk7Zy5GYShuLDE2LFcud1MpO0JHKG4sMTcsVy55Sil9OwpsOHQ9ZnVuY3Rpb24obil7cmV0dXJue1dzOlBHKG4sMSksaHR0cFN0YXR1czpQRyhuLDIpLGJvZHk6eUEobiw0KX19OwpZZmk9ZnVuY3Rpb24obixXKXtnLlJ3KG4sMSxXLnRva2VuKX07ClRRTT1mdW5jdGlvbihuKXtyZXR1cm57dG9rZW46RXgobiwxKX19OwpqX1U9ZnVuY3Rpb24obil7Zm9yKHZhciBXPVtdLEQ7RD1FeChuLDEpOylXLnB1c2goRCk7cmV0dXJue3VybDpXLmxlbmd0aD9XOnZvaWQgMH19OwpuNz1mdW5jdGlvbihuKXtyZXR1cm57QWg6UEcobiwxKSx2eTpQRyhuLDIpfX07CkZEYj1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLkNuLEZHLDMpO2lmKFcuY0UpZm9yKHZhciBEPTA7RDxXLmNFLmxlbmd0aDtEKyspUUEobiwyLFcuY0VbRF0sTTQsMyk7aWYoVy5lVylmb3IoRD0wO0Q8Vy5lVy5sZW5ndGg7RCsrKVFBKG4sMyxXLmVXW0RdLFFyLDMpO2cuRmEobiw1LFcudmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZyk7aWYoVy5CaSlmb3IoRD0wO0Q8Vy5CaS5sZW5ndGg7RCsrKVFBKG4sNixXLkJpW0RdLEM2VSwzKTtpZihXLkdoKWZvcihEPTA7RDxXLkdoLmxlbmd0aDtEKyspUUEobiwxNixXLkdoW0RdLE00LDMpO2lmKFcuTSQpZm9yKEQ9MDtEPFcuTSQubGVuZ3RoO0QrKylRQShuLDE3LFcuTSRbRF0sTTQsMyk7aWYoVy5Fdilmb3IoRD0wO0Q8Vy5Fdi5sZW5ndGg7RCsrKVFBKG4sMTgsVy5FdltEXSxNNCwzKTtRQShuLDE5LFcubUgsd00sMyk7UUEobiwyMSxXLk15LFduLDMpO0NSKG4sMjIsVy51TSk7Q1IobiwyMyxXLnJHKTtpZihXLmJLKWZvcihEPTA7RDxXLmJLLmxlbmd0aDtEKyspUUEobiwKMjQsVy5iS1tEXSxXbiwzKTtnLkZhKG4sMjUsVy5kUyk7aWYoVy5qcilmb3IoRD0wO0Q8Vy5qci5sZW5ndGg7RCsrKVFBKG4sMUUzLFcuanJbRF0sQlF3LDMpfTsKQzZVPWZ1bmN0aW9uKG4sVyl7UUEobiwxLFcuZm9ybWF0SWQsTTQsMyk7Q1IobiwyLFcudkQpO0NSKG4sMyxXLnNlcXVlbmNlTnVtYmVyKTtRQShuLDQsVy5oeCxSZiwxKTtDUihuLDUsVy5TMCk7Q1Iobiw2LFcudTMpfTsKV249ZnVuY3Rpb24obixXKXtpZihXLmFEKWZvcihsZXQgRD0wO0Q8Vy5hRC5sZW5ndGg7RCsrKWcuUncobiwxLFcuYURbRF0pO2cuRmEobiwyLFcuYWRzQ29uZmlnKTtnLlJ3KG4sMyxXLkJmKTtDUihuLDQsVy5ESik7Q1Iobiw1LFcub3YpO2cuUncobiw2LFcuZDMpO2cuUncobiw3LFcuY3VlcG9pbnRJZCk7Q1Iobiw4LFcuczEpO2cuUncobiw5LFcudGlsZUNvbnRleHQpO0NSKG4sMTAsVy5zdGFydFRpbWVNcyk7Q1IobiwxMSxXLmR1cmF0aW9uTXMpfTsKQlF3PWZ1bmN0aW9uKG4sVyl7aWYoVy5jRSlmb3IodmFyIEQ9MDtEPFcuY0UubGVuZ3RoO0QrKylRQShuLDEsVy5jRVtEXSxNNCwzKTtpZihXLmVXKWZvcihEPTA7RDxXLmVXLmxlbmd0aDtEKyspUUEobiwyLFcuZVdbRF0sUXIsMyk7Zy5SdyhuLDMsVy5jbGlwSWQpfTsKZy5EVT1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLkNuLEZHLDMpO2cuRmEobiwzLFcudmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZyk7UUEobiw1LFcubUgsd00sMyk7UUEobiw2LFcuTXksV24sMyl9Owp3T1o9ZnVuY3Rpb24obil7cmV0dXJue3R5cGU6UEcobiwxKX19OwpSalU9ZnVuY3Rpb24obixXKXtpZihXLk8zKWZvcihsZXQgRD0wO0Q8Vy5PMy5sZW5ndGg7RCsrKVFBKG4sMSxXLk8zW0RdLE02VSwzKX07ClFfMT1mdW5jdGlvbihuLFcpe1FBKG4sMTA0NyxXLmJMLFJqVSwzKX07Ck02VT1mdW5jdGlvbihuLFcpe2lmKFcualYpZm9yKHZhciBEPTA7RDxXLmpWLmxlbmd0aDtEKyspZy5GYShuLDEsVy5qVltEXSk7aWYoVy5yWClmb3IoRD0wO0Q8Vy5yWC5sZW5ndGg7RCsrKWcuRmEobiwyLFcuclhbRF0pfTsKbnl3PWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5jcG4pO0NSKG4sMixXLnNlcXVlbmNlTnVtYmVyKTtnLlJ3KG4sMyxXLnNlcmlhbGl6ZWRXYXRjaEVuZHBvaW50TG9nZ2luZ0NvbnRleHQpO2lmKFcuZGVjb2RlckluZm8pZm9yKHZhciBEPTA7RDxXLmRlY29kZXJJbmZvLmxlbmd0aDtEKyspUUEobiw2LFcuZGVjb2RlckluZm9bRF0sVjZyLDMpO2cuUncobiw5LFcucGxheWVyUmVzcG9uc2VDcG4pO0NSKG4sMTAsVy50cmFuc2l0aW9uU3RpdGNoVHlwZSk7Zy5SdyhuLDExLFcucW9lUGluZ1VybCk7Q1IobiwxMixXLnRpbWVzdGFtcE9mZnNldE1zZWNzKTtDUihuLDE1LFcucmVtb3RlQ29udHJvbE1vZGUpO2lmKFcucmVtb3RlQ29ubmVjdGVkRGV2aWNlcylmb3IoRD0wO0Q8Vy5yZW1vdGVDb25uZWN0ZWREZXZpY2VzLmxlbmd0aDtEKyspUUEobiwxNixXLnJlbW90ZUNvbm5lY3RlZERldmljZXNbRF0sYzlNLDMpO2cuRmEobiwxNyxXLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0KTsKaWYoVy5zZXJpYWxpemVkUW9lQ29udGV4dERhdGEpZm9yKEQ9MDtEPFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhLmxlbmd0aDtEKyspZy5GYShuLDE5LFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhW0RdKTtpZihXLmRhaUN1ZVBvaW50RXZlbnRzKWZvcihEPTA7RDxXLmRhaUN1ZVBvaW50RXZlbnRzLmxlbmd0aDtEKyspUUEobiwyMCxXLmRhaUN1ZVBvaW50RXZlbnRzW0RdLGE4MiwzKTtpZihXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEpZm9yKEQ9MDtEPFcuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YS5sZW5ndGg7RCsrKWcuRmEobiwyMSxXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGFbRF0pfTsKV0JqPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5pZGVudGlmaWVyKTtnLlJ3KG4sMixXLnRpbGVDb250ZXh0KX07Cmcudm49ZnVuY3Rpb24obil7dmFyIFc9e25zOm4uUmEsZWw6bi5ldmVudExhYmVsLGNwbjpuLmNsaWVudFBsYXliYWNrTm9uY2UsdmVyOjIsY210Om4uSihuLk4pLGZtdDpuLnZpZGVvRm9ybWF0LGZzOm4ualc/IjEiOiIwIixydDpuLkoobi53YSksYWRmb3JtYXQ6bi5hZEZvcm1hdCxjb250ZW50X3Y6bi5jb250ZW50VmlkZW9JZCxldXJpOm4uTWQsbGFjdDpuLk5kLGxpdmU6bi5UUSxjbDooOTUxNzc5MTA0KS50b1N0cmluZygpLG1vczpuLlJ0LHN0YXRlOm4ucGxheWVyU3RhdGUsdm9sdW1lOm4uZ1R9O24uc3Vic2NyaWJlZCYmKFcuc3Vic2NyaWJlZD0iMSIpO09iamVjdC5hc3NpZ24oVyxuLlkkKTtuLkQ9PT0iYWxsIj9PYmplY3QuYXNzaWduKFcsbi55RSk6bi5EPT09Im9uY2UiJiZuLlcmJk9iamVjdC5hc3NpZ24oVyxuLnlFKTtuLmF1dG9wbGF5JiYoVy5hdXRvcGxheT0iMSIpO24uTEImJihXLnNhdXRvcGxheT0iMSIpO24uQ3UmJihXLmRuaT0iMSIpOyFuLlgmJm4uSEomJihXLmVwbT0KRGMxW24uSEpdKTtuLmlzRmluYWwmJihXWyJmaW5hbCJdPSIxIik7bi5udSYmKFcuc3BsYXk9IjEiKTtuLm9EJiYoVy5kZWxheT1uLm9EKTtuLkR0JiYoVy5obD1uLkR0KTtuLnJlZ2lvbiYmKFcuY3I9bi5yZWdpb24pO24udXNlckdlbmRlckFnZSYmKFcudWdhPW4udXNlckdlbmRlckFnZSk7bi51c2VyQWdlIT09dm9pZCAwJiZuLkdDJiYoVy51Z2E9bi5HQytuLnVzZXJBZ2UpO24uZSQhPT12b2lkIDAmJihXLmxlbj1uLkoobi5lJCkpOyghbi5YfHxuLkJWKSYmbi5leHBlcmltZW50SWRzLmxlbmd0aD4wJiYoVy5mZXhwPW4uZXhwZXJpbWVudElkcy50b1N0cmluZygpKTtuLkshPT1udWxsJiYoVy5ydG49bi5KKG4uSykpO24uUzkmJihXLmZlYXR1cmU9bi5TOSk7bi5pNSYmKFcuY3RybD1uLmk1KTtuLlVLJiYoVy55dHI9bi5VSyk7bi52SiYmKFcuYWZtdD1uLnZKKTtuLm9mZmxpbmVEb3dubG9hZFVzZXJDaG9pY2UmJihXLk9EVUM9bi5vZmZsaW5lRG93bmxvYWRVc2VyQ2hvaWNlKTtuLlkmJgooVy5saW89bi5KKG4uWSkpO24uWD8oVy5pZHBqPW4uRTUsVy5sZHBqPW4uUXIsbi5kZWxheVRocmVzaG9sZE1ldCYmKFcuZHRtPSIxIiksbi5PIT1udWxsJiYoVy5ydGk9bi5KKG4uTykpLG4uRkwmJihXLmFsZD1uLkZMKSxuLmNvbXBvc2l0ZUxpdmVJbmdlc3Rpb25PZmZzZXRUb2tlbiYmKFcuY2xpbz1uLmNvbXBvc2l0ZUxpdmVJbmdlc3Rpb25PZmZzZXRUb2tlbikpOm4uYWRUeXBlIT09dm9pZCAwJiYoVy5hdD1uLmFkVHlwZSk7bi5mQiYmKG4uV3x8bi5YKSYmKFcuc2l6ZT1uLmZCKTtuLlcmJm4uVi5sZW5ndGgmJihXLnBic3R5bGU9bi5WLmpvaW4oIiwiKSk7bi5IRCE9bnVsbCYmKG4uV3x8bi5YKSYmKFcuaW52aWV3PW4uSihuLkhEKSk7bi5oZWFydGJlYXRMb2dnaW5nVG9rZW4mJihXLmhiX2RhdGE9bi5oZWFydGJlYXRMb2dnaW5nVG9rZW4pO24uWCYmKFcudm9sdW1lPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQudm9sdW1lKSksVy5zdD1iSihuLGcuaV8obi5zZWdtZW50cywKRD0+RC5zdGFydFRpbWUpKSxXLmV0PWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQuZW5kVGltZSkpLGcub00obi5zZWdtZW50cyxEPT5ELnBsYXliYWNrUmF0ZSE9PTEpJiYoVy5yYXRlPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQucGxheWJhY2tSYXRlKSkpLGcub00obi5zZWdtZW50cyxEPT5ELk4hPT0iLSIpJiYoVy5hbHM9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuTikuam9pbigiLCIpKSxnLm9NKG4uc2VnbWVudHMsRD0+RC5wcmV2aW91c2x5RW5kZWQpJiYoVy5wZT1nLmlfKG4uc2VnbWVudHMsRD0+YCR7K0QucHJldmlvdXNseUVuZGVkfWApLmpvaW4oIiwiKSkpOwpXLm11dGVkPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQubXV0ZWQ/MTowKSk7Cmcub00obi5zZWdtZW50cyxEPT5ELnZpc2liaWxpdHlTdGF0ZSE9PTApJiYoVy52aXM9YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC52aXNpYmlsaXR5U3RhdGUpKSk7Cmcub00obi5zZWdtZW50cyxEPT5ELmNvbm5lY3Rpb25UeXBlIT09MCkmJihXLmNvbm49YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC5jb25uZWN0aW9uVHlwZSkpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PkQuVyE9PTApJiYoVy5ibG89YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC5XKSkpOwpnLm9NKG4uc2VnbWVudHMsRD0+ISFELmopJiYoVy5ibG89Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuaikuam9pbigiLCIpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PiEhRC5jb21wb3NpdGVMaXZlU3RhdHVzVG9rZW4pJiYoVy5jYnM9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuY29tcG9zaXRlTGl2ZVN0YXR1c1Rva2VuKS5qb2luKCIsIikpOwpnLm9NKG4uc2VnbWVudHMsRD0+RC5KIT09Ii0iKSYmKFcuY2M9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuSikuam9pbigiLCIpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PkQuY2xpcElkIT09Ii0iKSYmKFcuY2xpcGlkPWcuaV8obi5zZWdtZW50cyxEPT5ELmNsaXBJZCkuam9pbigiLCIpKTsKaWYoZy5vTShuLnNlZ21lbnRzLEQ9PiEhRC5hdWRpb0lkKSl7bGV0IEQ9ImF1IjsKbi5XJiYoRD0iYXVfZCIpO1dbRF09Zy5pXyhuLnNlZ21lbnRzLGI9PmIuYXVkaW9JZCkuam9pbigiLCIpfWcuakgoKSYmbi50dyYmKFcuY3R0PW4udHcsVy5jdHR5cGU9bi5QWCxXLm1keF9lbnZpcm9ubWVudD1uLm1keEVudmlyb25tZW50KTsKbi55dyYmKFcuZXR5cGU9bi5iZCE9PXZvaWQgMD9uLmJkOjApO24uRkYmJihXLnVvbz1uLkZGKTtuLmxpdmluZ1Jvb21BcHBNb2RlJiZuLmxpdmluZ1Jvb21BcHBNb2RlIT09IkxJVklOR19ST09NX0FQUF9NT0RFX1VOU1BFQ0lGSUVEIiYmKFcuY2xyYW09YlR3W24ubGl2aW5nUm9vbUFwcE1vZGVdfHxuLmxpdmluZ1Jvb21BcHBNb2RlKTtuLmo/dnlNKG4sVyk6KFcuZG9jaWQ9bi52aWRlb0lkLFcucmVmZXJyZXI9bi5yZWZlcnJlcixXLmVpPW4uZXZlbnRJZCxXLm9mPW4uUkgsVy5vc2lkPW4ub3NpZCxXLnZtPW4udmlkZW9NZXRhZGF0YSxuLmFkUXVlcnlJZCYmKFcuYXFpPW4uYWRRdWVyeUlkKSxuLmF1dG9uYXYmJihXLmF1dG9uYXY9IjEiKSxuLnBsYXlsaXN0SWQmJihXLmxpc3Q9bi5wbGF5bGlzdElkKSxuLkFSJiYoVy5zc3J0PSIxIiksbi5IcSYmKFcudXB0PW4uSHEpKTtuLlcmJihuLmVtYmVkc1JjdCYmKFcucmN0PW4uZW1iZWRzUmN0KSxuLmVtYmVkc1JjdG4mJihXLnJjdG49Cm4uZW1iZWRzUmN0biksbi5jb21wb3NpdGVMaXZlSW5nZXN0aW9uT2Zmc2V0VG9rZW4mJihXLmNsaW89bi5jb21wb3NpdGVMaXZlSW5nZXN0aW9uT2Zmc2V0VG9rZW4pKTtuLmhvc3RDcG4mJihXLmhvc3RfY3BuPW4uaG9zdENwbik7cmV0dXJuIFd9OwphODI9ZnVuY3Rpb24obixXKXtRQShuLDEsVy5pZGVudGlmaWVyLFdCaiwzKTtpZihXLnJlY2VpdmVkQ3VlUG9pbnRFdmVudHMpZm9yKHZhciBEPTA7RDxXLnJlY2VpdmVkQ3VlUG9pbnRFdmVudHMubGVuZ3RoO0QrKylRQShuLDIsVy5yZWNlaXZlZEN1ZVBvaW50RXZlbnRzW0RdLGtGdywxKTtpZihXLnJlY2VpdmVkQWRFdmVudHMpZm9yKEQ9MDtEPFcucmVjZWl2ZWRBZEV2ZW50cy5sZW5ndGg7RCsrKVFBKG4sMyxXLnJlY2VpdmVkQWRFdmVudHNbRF0saHN3LDMpfTsKa0Z3PWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuZWxhcHNlZFRpbWVNcyk7Q1IobiwyLFcuc2VnbWVudFN0YXJ0VGltZU1zKTtDUihuLDMsVy5jdWVwb2ludEV2ZW50KTtDUihuLDQsVy5hZEJyZWFrRnVsZmlsbG1lbnRTdGF0ZSk7Q1Iobiw1LFcudHJhY2tUeXBlKTtDUihuLDYsVy5zZWdtZW50TnVtYmVyKTtDUihuLDcsVy5ub0Fkc1N0aXRjaGVkUmVhc29uKX07Cmhzdz1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmVsYXBzZWRUaW1lTXMpO2cuUncobiwyLFcuYWRDcG4pO0NSKG4sMyxXLmFkQWRkZWRMYXRlbmN5VGltZU1zKTtnLlJ3KG4sNCxXLmFkVmlkZW9JZCk7Q1Iobiw1LFcuYWRTdGFydFRpbWVNcyk7Q1Iobiw2LFcuYWREdXJhdGlvbk1zKTtDUihuLDcsVy5hZFJlamVjdGlvblJlYXNvbik7Q1Iobiw4LFcudGltZUVsYXBzZWRTaW5jZUN1ZXBvaW50TXMpfTsKVjZyPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuZWxhcHNlZFRpbWVNcyk7Zy5SdyhuLDMsVy52aWRlb0RlY29kZXJOYW1lKX07CmM5TT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmRldmljZUludGVyZmFjZSk7Zy5SdyhuLDIsVy5kZXZpY2VWZXJzaW9uKTtCRyhuLDMsVy5pc1NsZWVwaW5nKX07CkxCVT1mdW5jdGlvbihuKXtyZXR1cm57ZmY6aWgobiwxLHhjYiksdHJhY2tUeXBlOlBHKG4sMiksUFA6UEcobiwzKSx0aW1lUmFuZ2U6aWgobiw0LGMkKSx0aWxlQ29udGV4dDpFeChuLDUpLGJ4OlBHKG4sNiksRzM6UEcobiw3KSxvcHBvcnR1bml0eUlkOkV4KG4sOCksc2VyaWFsaXplZFByZWZldGNoQ29udGV4dDp5QShuLDkpfX07CnhjYj1mdW5jdGlvbihuKXtyZXR1cm57dHlwZTpQRyhuLDEpLGV2ZW50OlBHKG4sMiksTUs6WncobiwzKSxUeTpadyhuLDQpLHVUOkV4KG4sNSksaWRlbnRpZmllcjpFeChuLDYpLEFDOlBHKG4sOSl9fTsKa2Q9ZnVuY3Rpb24obil7cmV0dXJue2ZpcnN0OlBHKG4sMSksSjc6UEcobiwyKX19Owplc2o9ZnVuY3Rpb24obil7cmV0dXJue2JpdHJhdGU6UEcobiw2KSx3aWR0aDpQRyhuLDcpLGhlaWdodDpQRyhuLDgpLGZwczpQRyhuLDI1KSxhdmVyYWdlQml0cmF0ZTpQRyhuLDMxKSxhdWRpb1NhbXBsZVJhdGU6UEcobiw0NSksYXVkaW9DaGFubmVsczpQRyhuLDQ2KSxxdWFsaXR5T3JkaW5hbDpQRyhuLDU2KX19Owpocz1mdW5jdGlvbihuKXtyZXR1cm57aXRhZ0RlbnlsaXN0OnVoKG4sMSl9fTsKZ3kxPWZ1bmN0aW9uKG4pe3JldHVybntZazpVeChuLDEpLFhXOlBHKG4sMiksc1E6VXgobiwzKSxOVDpadyhuLDQpLGNyeXB0b1BlcmlvZEluZGV4OlBHKG4sNSksWlg6UEcobiw2KSxMRzpQRyhuLDcpfX07CkdGQz1mdW5jdGlvbihuKXtyZXR1cm57SzU6UEcobiwxKSxpdGFnOkV4KG4sMyksUXQ6aWgobiw0LFh4dCksbG10OlBHKG4sNSksQ2U6UEcobiw3KSx4dGFnczpFeChuLDE1KSxuNjppaChuLDIzLHEwYiksWHQ6aWgobiwzNCxocyl9fTsKWHh0PWZ1bmN0aW9uKG4pe3JldHVybntpdjp5QShuLDUpLE5FOlV4KG4sNyl9fTsKdHBiPWZ1bmN0aW9uKG4pe3JldHVybntnazp1aChuLDIpLHZpZGVvSWQ6RXgobiwzKSxRbzpQRyhuLDQpfX07CnEwYj1mdW5jdGlvbihuKXtyZXR1cm57dmlkZW9JZDpFeChuLDIpfX07CiRjeD1mdW5jdGlvbihuKXtyZXR1cm57d2Y6UEcobiwzKSx2NzpQRyhuLDQpLEtOOlBHKG4sNSksWjM6VXgobiw4KSxXWjpQRyhuLDEwKSxITzpQRyhuLDEyKSxVUjpQRyhuLDEzKSxzUjpQRyhuLDE0KSx1MDpQRyhuLDE1KSxMejpQRyhuLDE2KX19Owp4ZD1mdW5jdGlvbihuKXtyZXR1cm57dGFyZ2V0QXVkaW9SZWFkYWhlYWRNczpQRyhuLDEpLHRhcmdldFZpZGVvUmVhZGFoZWFkTXM6UEcobiwyKSxiYWNrb2ZmVGltZU1zOlBHKG4sNCkscGxheWJhY2tDb29raWU6eUEobiw3KSx2aWRlb0lkOkV4KG4sOCl9fTsKTDc9ZnVuY3Rpb24obil7cmV0dXJue21pbkJhbmR3aWR0aEJ5dGVzUGVyU2VjOlBHKG4sMSksbWluUmVhZGFoZWFkTXM6UEcobiwyKX19OwplST1mdW5jdGlvbihuKXtyZXR1cm57c3RhcnRNaW5SZWFkYWhlYWRQb2xpY3k6b3cobiwxLEw3KSxyZXN1bWVNaW5SZWFkYWhlYWRQb2xpY3k6b3cobiwyLEw3KX19OwpyS3I9ZnVuY3Rpb24obil7cmV0dXJue2xhYmVsOkV4KG4sMSksdGV4dDpFeChuLDIpfX07CnNoWj1mdW5jdGlvbihuKXtyZXR1cm57dmlkZW9JZDpFeChuLDEpLGZvcm1hdElkOmloKG4sMixWciksZGVidWdJbmZvOm93KG4sMyxyS3IpfX07CmdQPWZ1bmN0aW9uKG4pe3JldHVybntKMDpvdyhuLDEsc2haKX19OwpObXQ9ZnVuY3Rpb24obil7cmV0dXJue0ZrOlBHKG4sMSksZno6UEcobiwyKSxtaW5SZWFkYWhlYWRNczpQRyhuLDMpfX07ClhOPWZ1bmN0aW9uKG4pe3JldHVybntwdjpQRyhuLDEpLGl0ZW1zOm93KG4sMixObXQpLFBuOlBHKG4sMyl9fTsKcHhpPWZ1bmN0aW9uKG4pe3JldHVybnt0b2tlbjpFeChuLDEpLHZpZGVvSWQ6RXgobiwyKX19OwpZMFU9ZnVuY3Rpb24obil7cmV0dXJue2V3OlBHKG4sMSl9fTsKcUc9ZnVuY3Rpb24obil7cmV0dXJue1FxOkV4KG4sMSksYWN0aW9uOlBHKG4sMiksQ3Y6aWgobiwzLFkwVSl9fTsKR0U9ZnVuY3Rpb24obil7cmV0dXJue0pKOlBHKG4sMSksUUI6UEcobiwyKSxzZWVrU291cmNlOlBHKG4sMyl9fTsKSFRaPWZ1bmN0aW9uKG4pe3JldHVybnt6SDpQRyhuLDEpLHg6UEcobiwyKSx5OlBHKG4sMyksd2lkdGg6UEcobiw0KSxoZWlnaHQ6UEcobiw1KX19OwpmbGo9ZnVuY3Rpb24obil7cmV0dXJue3JlZ2lvbjppaChuLDEsSFRaKSx1MTppaChuLDIsYyQpLGNwbjpFeChuLDUpLGxvZ2dpbmdNZXRhZGF0YTp5QShuLDYpLGJUOmloKG4sNyxjJCksTlI6UEcobiw4KSxxUjpVeChuLDkpfX07CkpLaj1mdW5jdGlvbihuKXtyZXR1cm57UjE6b3cobiwxLGZsail9fTsKSWxqPWZ1bmN0aW9uKG4pe3JldHVybnttZXRhZGF0YTpvdyhuLDEsSktqKSx0cmFja1R5cGU6UEcobiwyKX19Owp0cz1mdW5jdGlvbihuKXtyZXR1cm57dHlwZTpQRyhuLDEpLHNjb3BlOlBHKG4sMiksdmFsdWU6eUEobiwzKSxzZW5kQnlEZWZhdWx0OlV4KG4sNCksd3JpdGVQb2xpY3k6UEcobiw1KX19OwpTMHc9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5pZCk7Zy5SdyhuLDIsVy51cmwpfTsKQUtyPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuaWQpO2cuUncobiwyLFcubmFtZSk7Q1IobiwzLFcucmVzb3VyY2VJZCk7Q1Iobiw0LFcubGluZSk7Q1Iobiw1LFcuY29sdW1uKX07Cm1jcj1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmlkKTtDUihuLDIsVy50aW1lc3RhbXBNcyk7Q1IobiwzLFcuc3RhY2tJZCl9OwpLQk09ZnVuY3Rpb24obixXKXtDUihuLDEsVy5pZCk7Q1IobiwyLFcuZnJhbWVJZCk7Q1IobiwzLFcucGFyZW50SWQpfTsKT1RiPWZ1bmN0aW9uKG4sVyl7aWYoVy5yZXNvdXJjZXMpZm9yKHZhciBEPTA7RDxXLnJlc291cmNlcy5sZW5ndGg7RCsrKVFBKG4sMSxXLnJlc291cmNlc1tEXSxTMHcsMyk7aWYoVy5mcmFtZXMpZm9yKEQ9MDtEPFcuZnJhbWVzLmxlbmd0aDtEKyspUUEobiwyLFcuZnJhbWVzW0RdLEFLciwzKTtpZihXLnNhbXBsZXMpZm9yKEQ9MDtEPFcuc2FtcGxlcy5sZW5ndGg7RCsrKVFBKG4sMyxXLnNhbXBsZXNbRF0sbWNyLDEpO2lmKFcuc3RhY2tzKWZvcihEPTA7RDxXLnN0YWNrcy5sZW5ndGg7RCsrKVFBKG4sNCxXLnN0YWNrc1tEXSxLQk0sMSl9OwpQa0M9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLmRhdGEpfTsKWlRVPWZ1bmN0aW9uKG4sVyl7QkcobiwxLFcucGxhY2Vob2xkZXIpfTsKVWNpPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuTXcpfTsKeUtDPWZ1bmN0aW9uKG4sVyl7QkcobiwxLFcucGxhY2Vob2xkZXIpfTsKRXkyPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5CQil9OwppVHg9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLmRhdGEpO0NSKG4sMixXLlM3KX07CnVMMj1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLnR5cGUpO3ZhciBEPVcucUw7aWYoRCE9PXZvaWQgMCl7dmFyIGI9bmV3IEFycmF5QnVmZmVyKDgpOyhuZXcgRmxvYXQ2NEFycmF5KGIpKVswXT1EO0Q9bmV3IFVpbnQzMkFycmF5KGIpO2I9RFswXTtEPURbMV07aWYoYiE9PXZvaWQgMCYmRCE9PXZvaWQgMCl7ajUobiwxNyk7VDYobiw4KTtmb3IobGV0IHY9MDt2PDQ7disrKW4udmlldy5zZXRVaW50OChuLnBvcyxiJjI1NSksYj4+Pj04LG4ucG9zKz0xO2I9RDtmb3IoRD0wO0Q8NDtEKyspbi52aWV3LnNldFVpbnQ4KG4ucG9zLGImMjU1KSxiPj4+PTgsbi5wb3MrPTF9fVFBKG4sMyxXLmE5LFBrQywzKTtRQShuLDQsVy5seCxaVFUsMSk7UUEobiw1LFcucTAsVWNpLDEpO1FBKG4sNixXLmlzVHlwZVN1cHBvcnRlZCx5S0MsMSk7UUEobiw3LFcueTgsRXkyLDMpO1FBKG4sOCxXLkpMLGlUeCwzKX07Cm95aD1mdW5jdGlvbihuKXtyZXR1cm57ZGF0YTp5QShuLDEpfX07CmRjdD1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19Owp6czE9ZnVuY3Rpb24obil7cmV0dXJue0hTOlp3KG4sMSl9fTsKbGxyPWZ1bmN0aW9uKG4pe3JldHVybntwbGFjZWhvbGRlcjpVeChuLDEpfX07ClRtcj1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19OwpqaE09ZnVuY3Rpb24obil7cmV0dXJue2RhdGE6eUEobiwxKSxrazpQRyhuLDIpfX07CkNreD1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19OwpCbWo9ZnVuY3Rpb24obil7cmV0dXJue3R5cGU6UEcobiwxKSxxTDpadyhuLDIpLFFKOlp3KG4sMyksVG86Wncobiw0KSxpbml0OmloKG4sNSxDa3gpLGE5OmloKG4sNixveWgpLGx4OmloKG4sNyxkY3QpLHEwOmloKG4sOCx6czEpLGlzVHlwZVN1cHBvcnRlZDppaChuLDksbGxyKSx5ODppaChuLDEwLFRtciksSkw6aWgobiwxMSxqaE0pfX07Cnd4Wj1mdW5jdGlvbihuKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhGQlUpLmluY2x1ZGVzKG4pfTsKTXBDPWZ1bmN0aW9uKG4peyRkPTI1OTJFMyoobnx8MSl9OwpyUD1mdW5jdGlvbigpe3ZhciBuPWcuWkkoInl0LXBsYXllci12b2x1bWUiKXx8e30sVz1uLnZvbHVtZTtyZXR1cm57dm9sdW1lOmlzTmFOKFcpPzEwMDpnLkZmKE1hdGguZmxvb3IoVyksMCwxMDApLG11dGVkOiEhbi5tdXRlZH19Owpzbj1mdW5jdGlvbihuKXtnLlBCKCJ5dC1wbGF5ZXItYmFuZHdpZHRoIixuLDI1OTJFMyl9OwpwNz1mdW5jdGlvbihuPSRkKXtpZihuPjAmJiEoVVAoKT4oMCxnLlIpKCktbioxRTMpKXJldHVybiAwO249Zy5aSSgieXQtcGxheWVyLXF1YWxpdHkiKTtpZih0eXBlb2Ygbj09PSJzdHJpbmciKXtpZihuPU5HW25dLG4+MClyZXR1cm4gbn1lbHNlIGlmKG4gaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIG4ucXVhbGl0eTtyZXR1cm4gMH07CllkPWZ1bmN0aW9uKCl7dmFyIG49Zy5aSSgieXQtcGxheWVyLXByb3hpbWEtcHJlZiIpO3JldHVybiBuPT1udWxsP251bGw6bn07ClJzeD1mdW5jdGlvbigpe3ZhciBuPWcuWkkoInl0LXBsYXllci1xdWFsaXR5Iik7aWYobiBpbnN0YW5jZW9mIE9iamVjdCYmbi5xdWFsaXR5JiZuLnByZXZpb3VzUXVhbGl0eSl7aWYobi5xdWFsaXR5Pm4ucHJldmlvdXNRdWFsaXR5KXJldHVybiAxO2lmKG4ucXVhbGl0eTxuLnByZXZpb3VzUXVhbGl0eSlyZXR1cm4tMX1yZXR1cm4gMH07CkhuPWZ1bmN0aW9uKCl7dmFyIG49e3ZhbHVlczp7fSxGWTp7fX07dHJ5e2xldCBXPUpTT04ucGFyc2UoSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdlWyJ5dC1wbGF5ZXItbWVtb3J5Il0pLmRhdGEpO24udmFsdWVzPVcudmFsdWVzO24uaGFsZkxpdmVzPVcuaGFsZkxpdmVzfWNhdGNoe31yZXR1cm4gbn07CmY3PWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiKXx8e319OwpRaHc9ZnVuY3Rpb24obj0hMSl7aWYobil7bj1mNygpO2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhuKSlXLmluZGV4T2YoIjEiKSE9PTAmJmRlbGV0ZSBuW1ddO2cuUEIoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiLG4sMjU5MkUzKX1lbHNlIHRyeXtsZXQgVz1PUC5xYigpLEQ9T1AuQnAoKTtXJiZXLnJlbW92ZSgieXQtcGxheWVyLXBlcmZvcm1hbmNlLWNhcCIpO0QmJkQucmVtb3ZlKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwIil9Y2F0Y2goVyl7fX07CkpzPWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAtYWN0aXZlLXNldCIpPz9bXX07ClZwQz1mdW5jdGlvbihuPSExKXtuPyhuPUpzKCkuZmlsdGVyKFc9Plcuc3RhcnRzV2l0aCgiMSIpKSxnLlBCKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwLWFjdGl2ZS1zZXQiLG4sMjU5MkUzKSk6Zy5QQigieXQtcGxheWVyLXBlcmZvcm1hbmNlLWNhcC1hY3RpdmUtc2V0IixbXSwyNTkyRTMpfTsKSU89ZnVuY3Rpb24oKXtyZXR1cm4hIWcuWkkoInl0LXBsYXllci1oZWFkZXJzLXJlYWRhYmxlIil9OwpnLlNJPWZ1bmN0aW9uKCl7dmFyIG49Zy5aSSgieXQtcGxheWVyLWNhcHRpb24tbGFuZ3VhZ2UtcHJlZmVyZW5jZXMiKTtyZXR1cm4gbj9uOltdfTsKQXM9ZnVuY3Rpb24oKXt2YXIgbj1nLlpJKCJ5dC1wbGF5ZXItdXNlci1zZXR0aW5ncyIpLFc9bmV3IE1hcDtpZihuKWZvcihsZXQgW0QsYl1vZiBPYmplY3QuZW50cmllcyhuKSlXLnNldChELGIpO3JldHVybiBXfTsKbTU9ZnVuY3Rpb24oKXtyZXR1cm4gZy5aSSgieXQtcGxheWVyLXZvaWNlLWJvb3N0Iik/P3ZvaWQgMH07Cks3PWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1hdWRpby1xdWFsaXR5LXNldHRpbmciKT8/Mn07ClpVPWZ1bmN0aW9uKCl7dHJ5e2xldCBuPXdpbmRvdy5uYXZpZ2F0b3I7aWYobi5nZXRBdXRvcGxheVBvbGljeSYmdHlwZW9mIG4uZ2V0QXV0b3BsYXlQb2xpY3k9PT0iZnVuY3Rpb24iKXtsZXQgVz1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGcuT24uV0MpLEQ7RD1XLmxlbmd0aD4wJiZXWzBdP24uZ2V0QXV0b3BsYXlQb2xpY3koV1swXSk6bi5nZXRBdXRvcGxheVBvbGljeSgibWVkaWFlbGVtZW50Iik7aWYoUG5bRF0pcmV0dXJuIFBuW0RdfX1jYXRjaChuKXt9cmV0dXJuIkFVVE9QTEFZX0JST1dTRVJfUE9MSUNZX1VOU1BFQ0lGSUVEIn07ClVuPWZ1bmN0aW9uKG4pe3JldHVybiBuLlBYfHxuLkd1fHxuLm11dGVkQXV0b3BsYXl9Owp5dz1mdW5jdGlvbihuLFcpe3JldHVybiBVbihuKT9XIT09MSYmVyE9PTImJlchPT0wPyJBVVRPUExBWV9TVEFUVVNfVU5BVkFJTEFCTEUiOm4uc1o/IkFVVE9QTEFZX1NUQVRVU19CTE9DS0VEIjoiQVVUT1BMQVlfU1RBVFVTX09DQ1VSUkVEIjoiQVVUT1BMQVlfU1RBVFVTX05PVF9BVFRFTVBURUQifTsKZy5Fbj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5HKCk7bi50aGlyZFBhcnR5fHwobi50aGlyZFBhcnR5PXt9KTtuLnRoaXJkUGFydHk9ey4uLm4udGhpcmRQYXJ0eSxlbWJlZFVybDpiLmxvYWRlclVybH07Yi5hbmNlc3Rvck9yaWdpbnMmJihuLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0PXsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LGFuY2VzdG9yT3JpZ2luczpiLmFuY2VzdG9yT3JpZ2luc30pO2IuZUshPW51bGwmJihuLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0PXsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LHZpc2liaWxpdHlGcmFjdGlvbjpOdW1iZXIoYi5lSyl9KTtiLkxLJiYobi50aGlyZFBhcnR5LmVtYmVkZGVkUGxheWVyQ29udGV4dD17Li4ubi50aGlyZFBhcnR5LmVtYmVkZGVkUGxheWVyQ29udGV4dCx2aXNpYmlsaXR5RnJhY3Rpb25Tb3VyY2U6Yi5MS30pO24udGhpcmRQYXJ0eS5lbWJlZGRlZFBsYXllckNvbnRleHQ9CnsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LGF1dG9wbGF5QnJvd3NlclBvbGljeTpaVSgpLGF1dG9wbGF5SW50ZW5kZWQ6VW4oVyksYXV0b3BsYXlTdGF0dXM6eXcoVyxEKX19OwppSj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQgb2Ygbi5zcGxpdCgiLCIpKXtpZighRCljb250aW51ZTsobj1ELnN0YXJ0c1dpdGgoIiEiKSkmJihEPUQuc3Vic3RyaW5nKDEpKTtsZXQgYj1ELnNwbGl0KCItIik7Yi5sZW5ndGg8M3x8Vy5wdXNoKHtoajpiWzBdLHBsYXRmb3JtOmJbMV0sZGV2aWNlVmVyc2lvbjpiWzJdLEVzOm59KX1yZXR1cm4gV307CmFseD1mdW5jdGlvbihuKXtyZXR1cm4gaUoobikubWFwKCh7aGo6VyxkZXZpY2VWZXJzaW9uOkQsRXM6Yn0pPT4oe2RldmljZUludGVyZmFjZTpjS01bdUpbV11dfHwwLGRldmljZVZlcnNpb246RHx8IiIsaXNTbGVlcGluZzpifSkpfTsKb089ZnVuY3Rpb24obixXLEQ9ITEsYj0iIil7IW4mJkQmJmcuR3EoRXJyb3IoYFBsYXllciBVUkwgdmFsaWRhdG9yIGRldGVjdHMgaW52YWxpZCB1cmwuICR7Yn06ICR7V31gKSk7cmV0dXJuIG59Owp6RT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFcmJlcudGVzdChuKXx8ZFAmJkQmJkQudGVzdChuKT8hMDohMX07ClRFPWZ1bmN0aW9uKG4pe3JldHVybihuPWxKJiZsSi5leGVjKG4pKT9uWzBdOiIifTsKZ1g9ZnVuY3Rpb24obil7cmV0dXJuIG9PKHpFKG4sbkV3LFdoWiksbiwhMSwiVHJ1c3RlZCBTdHJlYW0gVVJMIil9OwpnLmpJPWZ1bmN0aW9uKG4pe3JldHVybiBvTyh6RShuLEQ1VSxiS1opLG4sITEsIlRydXN0ZWQgSW1hZ2UgVVJMIil9OwpDNz1mdW5jdGlvbihuKXtyZXR1cm4gb08oekUobix2RWgsbnVsbCksbiwhMSwiVHJ1c3RlZCBQcm9tb3RlZCBWaWRlbyBEb21haW4gVVJMIil9OwpoQWk9ZnVuY3Rpb24obil7cmV0dXJuIG9PKHpFKG4sazdyLG51bGwpLG4sITEsIkRybSBMaWNlbnNvciBVUkwiKX07CkJuPWZ1bmN0aW9uKG4sVz0hMSl7cmV0dXJuIG9PKHpFKG4seDVyLExodCksbixXLCJDYXB0aW9ucyBVUkwiKX07CmVBPWZ1bmN0aW9uKG4pe249bmV3IGcuVWoobik7eU4obixkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCk7RWoobixkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7ZG9jdW1lbnQubG9jYXRpb24ucG9ydCYmaXIobixkb2N1bWVudC5sb2NhdGlvbi5wb3J0KTtyZXR1cm4gbi50b1N0cmluZygpfTsKRk49ZnVuY3Rpb24obil7bj1uZXcgZy5VaihuKTt5TihuLGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gbi50b1N0cmluZygpfTsKZUFaPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5uYW1lLFsyXTpuLmlkLFszXTpuLmlzRGVmYXVsdCxbNF06bi5pc0F1dG9EdWJiZWR9fTsKTUc9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB3UChuWzFdLG5bMl0sblszXSxuWzRdKX07ClJPPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5sYW5ndWFnZUNvZGUsWzJdOm4ubGFuZ3VhZ2VOYW1lLFszXTpuLmtpbmQsWzRdOm4ubmFtZSxbNV06bi5kaXNwbGF5TmFtZSxbNl06bi5pZCxbN106bi54dGFncyxbOF06bi5OLFs5XTpuLmlzVHJhbnNsYXRlYWJsZSxbMTBdOm4udXJsLFsxMV06bi52c3NJZCxbMTJdOm4uaXNEZWZhdWx0LFsxM106bi50cmFuc2xhdGlvbkxhbmd1YWdlLFsxNF06bi5jYXB0aW9uSWR9fTsKVnc9ZnVuY3Rpb24obil7dmFyIFc9bmV3IGcuUXcoe2xhbmd1YWdlQ29kZTpuWzFdLGxhbmd1YWdlTmFtZTpuWzJdLGtpbmQ6blszXSxuYW1lOm5bNF0saWQ6bls2XSxpc19zZXJ2YWJsZTpuWzhdLGlzX3RyYW5zbGF0ZWFibGU6bls5XSx1cmw6blsxMF0sdnNzX2lkOm5bMTFdLGlzX2RlZmF1bHQ6blsxMl0seHRhZ3M6bls3XSxjYXB0aW9uSWQ6blsxNF19KTtXLmRpc3BsYXlOYW1lPW5bNV07Vy50cmFuc2xhdGlvbkxhbmd1YWdlPW5bMTNdO3JldHVybiBXfTsKZy5jbj1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLmRpc3BsYXlOYW1lKVcucHVzaChuLmRpc3BsYXlOYW1lKTtlbHNle2xldCBEPW4ubGFuZ3VhZ2VOYW1lfHwiIjtXLnB1c2goRCk7bi5raW5kPT09ImFzciImJkQuaW5kZXhPZigiKCIpPT09LTEmJlcucHVzaCgiIChBdXRvbWF0aWMgQ2FwdGlvbnMpIik7bi5uYW1lJiZXLnB1c2goYCAtICR7bi5uYW1lfWApfW4udHJhbnNsYXRpb25MYW5ndWFnZSYmVy5wdXNoKGAgPj4gJHtuLnRyYW5zbGF0aW9uTGFuZ3VhZ2UubGFuZ3VhZ2VOYW1lfWApO3JldHVybiBXLmpvaW4oIiIpfTsKZy5hTz1mdW5jdGlvbihuKXtyZXR1cm4gbi50cmFuc2xhdGlvbkxhbmd1YWdlP24udHJhbnNsYXRpb25MYW5ndWFnZS5sYW5ndWFnZUNvZGU6bi5sYW5ndWFnZUNvZGV9OwpnLm5nPWZ1bmN0aW9uKG4pe3ZhciBXPW4udnNzSWQ7bi50cmFuc2xhdGlvbkxhbmd1YWdlJiZXJiYoVz1gdCR7V30uJHtnLmFPKG4pfWApO3JldHVybiBXfTsKZ0V3PWZ1bmN0aW9uKG4pe3ZhciBXPW4uVyxEPW4uTixiPW4uWDtyZXR1cm57WzFdOm4uY2FwdGlvbnNJbml0aWFsU3RhdGUsWzJdOm4uSixbM106bi5jYXB0aW9uVHJhY2tzLm1hcCh2PT5STyh2KSksCls0XTpXP1JPKFcpOm51bGwsWzVdOkQ/Uk8oRCk6bnVsbCxbNl06bi5pZCxbN106bi5qLFs4XTpuLlYsWzldOmVBWihuLmtaKSxbMTBdOmI/Uk8oYik6bnVsbCxbMTFdOm4ueHRhZ3N9fTsKRGM9ZnVuY3Rpb24obil7dmFyIFc9bls0XSxEPW5bNV0sYj1uWzEwXSx2PW5ldyBXQShuWzZdLE1HKG5bOV0pKTt2LmNhcHRpb25zSW5pdGlhbFN0YXRlPW5bMV07di5jYXB0aW9uVHJhY2tzPW5bM10ubWFwKGs9PlZ3KGspKTsKdi5KPW5bMl07di5XPVc/VncoVyk6bnVsbDt2Lk49RD9WdyhEKTpudWxsO3Yuaj1uWzddO3YuVj1uWzhdO3YuWD1iP1Z3KGIpOm51bGw7di54dGFncz1uWzExXTtyZXR1cm4gdn07CnZBPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiBuZXcgYjMoTkdbbl18fDAsTkdbV118fDAsRCxiKX07CmtKPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5KLFsyXTpuLk4sWzNdOm4uVyxbNF06bi5yZWFzb24sWzVdOm4uTnN9fTsKWExTPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgYjMoblsxXSxuWzJdLG5bM10sbls0XSxuWzVdKX07CnhKPWZ1bmN0aW9uKG4pe2lmKGhUJiZuLk5zKXJldHVybiExO3ZhciBXPU5HLmF1dG87cmV0dXJuIG4uSj09PVcmJm4uTj09PVd9OwplSj1mdW5jdGlvbihuKXtyZXR1cm4gTGdbbi5OfHxuLkpdfHwiYXV0byJ9OwpnRj1mdW5jdGlvbihuLFcpe1c9TkdbV107cmV0dXJuIG4uSjw9VyYmKCFuLk58fG4uTj49Vyl9OwpYcD1mdW5jdGlvbihuKXtyZXR1cm4hIW5bIjEiXT8ubGVuZ3RofHwhIW5bIjFoIl0/Lmxlbmd0aHx8ISFuWyIxZSJdPy5sZW5ndGh9OwpxZD1mdW5jdGlvbihuKXtyZXR1cm4gbj09PSIxInx8bj09PSIxaCJ8fG49PT0iMWUifTsKTmQ9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9ITE7aWYobi5KKXJldHVybiBuLko7dmFyIEw9e30sZT1uZXcgU2V0LEc9e307aWYoR18oYikpe2Zvcih2YXIgciBpbiBiLk4pe2lmKCFiLk4uaGFzT3duUHJvcGVydHkocikpY29udGludWU7bj1iLk5bcl07R1tuLmluZm8uSUJdPVtuLmluZm9dfXJldHVybiBHfXI9dFQoVyxiLEwpO2lmKFcuSil7KHg9WHAocikpfHwoVy5OLm5vQXYxUmVhc29uPSJub0Zvcm1hdCIpO3ZhciBOPUQuWT8iZGlzYWJsZUF2MUZvclNlc3Npb24iOiIiO04mJihXLk4ubm9BdjFSZWFzb249Tik7dih7bm9BdjFSZWFzb246Vy5OLm5vQXYxUmVhc29ufSl9ayYmdih7YWZ0c3J0OiRKKHIpfSk7Tj17fTt2YXIgSD0iIjtmb3IobGV0IEEgb2YgT2JqZWN0LmtleXMocikpe2xldCB5PUE7Zm9yKGxldCBUIG9mIHJbeV0pe2xldCB6PVQuaXRhZyxDPXJGKHksVCxXKTtpZihOLmhhc093blByb3BlcnR5KEMpKXtOW0NdPT09ITA/R1t5XS5wdXNoKFQpOkxbel09Ck5bQ107Y29udGludWV9bGV0IFE9c0QoVyxULEQsYi5pc0xpdmUsZSk7USE9PSEwPyhoLmFkZCh5KSxMW3pdPVEsVy5KJiZULk1XKCkmJihIKz1gOyR7en07JHtRfWApLFE9PT0iZGlzYWJsZXZwOWhmciImJihOW0NdPSJkaXNhYmxldnA5aGZyIikpOihHW3ldPUdbeV18fFtdLEdbeV0ucHVzaChUKSxOW0NdPSEwKX19Vy5KJiZ4JiYhWHAoRykmJih4PSExLFcuTi5ub0F2MVJlYXNvbj1ILHYoe25vQXYxUmVhc29uOlcuTi5ub0F2MVJlYXNvbn0pKTtrJiZ2KHtiZmZsdDokSihHKX0pO2ZvcihsZXQgQSBpbiBHKXtpZighRy5oYXNPd25Qcm9wZXJ0eShBKSljb250aW51ZTtiPUE7R1tiXSYmR1tiXVswXS5mWSgpJiYoaD1HW2JdLmxlbmd0aCxHW2JdPUdbYl0sVy5KJiZxZChiKSYmaD4wJiZHW2JdLmxlbmd0aDw9MCYmKGg9R1tiXS5sZW5ndGgsdih7bm9BdjFGbXQ6ImZpbHRlclZwOVVsdGxvdyIsY29kZWM6Yn0pKSxHW2JdPXEyQyhXLEdbYl0sTCksVy5KJiZxZChiKSYmaD4wJiZHW2JdLmxlbmd0aDw9CjAmJihoPUdbYl0ubGVuZ3RoLHYoe25vQXYxRm10OiJmaWx0ZXJRdWFsaXRpZXMiLGNvZGVjOmJ9KSksR1tiXT1HN1UoR1tiXSxMKSxXLkomJnFkKGIpJiZoPjAmJkdbYl0ubGVuZ3RoPD0wJiZ2KHtub0F2MUZtdDoiZmlsdGVySGZyIixjb2RlYzpifSkpfWsmJk9iamVjdC5rZXlzKEwpLmxlbmd0aD4wJiZ2KHtyanI6Zy5UQyhMKX0pO2ZvcihsZXQgQSBvZiBlLnZhbHVlcygpKShMPUQuVy5nZXQoQSkpJiYtLUwuZzE7ayYmdih7YWZ0Zmx0OiRKKEcpfSk7Vy5KJiZ4JiYhWHAoRykmJih4PSExLFcuTi5ub0F2MVJlYXNvbj0iZmlsdGVyIix2KHtub0F2MVJlYXNvbjpXLk4ubm9BdjFSZWFzb259KSk7bi5KPWcublQoRyxBPT4hIUEubGVuZ3RoKTsKcmV0dXJuIG4uSn07CklEaD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD1XLld8fCEhdixMPXgmJlcuTEI/azp2b2lkIDAsZT1uZXcgU2V0LEc9TmQobixXLEQsYixrLHgsZSk7Yi5YKCkmJihHPXRnaChELEcsdix4LGssVykseCYmayh7ZW5mbHQ6JEooRyl9KSk7Vy55RT0kNXIoRyxXKTt2PUx0PT4hIUdbTHRdOwp2YXIgcj1ySGkoVyk7RD1bXTtmb3IodmFyIE4gb2YgT2JqZWN0LnZhbHVlcyhHKSlOPy5sZW5ndGgmJk5bMF0uZVMoKSYmRC5wdXNoKC4uLk4pO2lmKEdfKGIpKXJldHVybiBrPWcubF8oT2JqZWN0LnZhbHVlcyhHKSxMdD0+ISFMdC5sZW5ndGgmJiEhTHRbMF0uYXVkaW8pLHg9Zy5sXyhPYmplY3QudmFsdWVzKEcpLEx0PT4hIUx0Lmxlbmd0aCYmISFMdFswXS52aWRlbyksayYmeHx8Zy5wJCgpLGcuSDAobmV3IHBnKHgsayxMLEQpKTsKTj1HLmE7dmFyIEg9ITE7Vy5IaSYmclswXSE9PSJhIiYmc1diKE4pJiYoci51bnNoaWZ0KCJhIiksSD0hMCk7eCYmKGsoe2F1ZGlvUHJlZk9yZGVyOnIuam9pbigiXyIpfSksayh7cHJlZmVySGlnaFF1YWxpdHlBdWRpbzpXLkhpfSksayh7Zm9yY2VkQWFjRm9ySHFhOkh9KSk7Tj1bXTtpZihXLnZYKXtyPWcuRU0ocix2KTtIPW5ldyBTZXQ7Zm9yKHZhciBBIG9mIHIpe3ZhciB5PUdbQV07bGV0IEx0PW5ldyBTZXQ7Zm9yKHZhciBUIG9mIHkpaWYoeT1ULmtaPy5pZClILmhhcyh5KT9MdC5oYXMoeSkmJk4ucHVzaChUKTooTHQuYWRkKHkpLEguYWRkKHkpLE4ucHVzaChUKSl9aWYoTi5sZW5ndGg9PT0wKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIHgmJmsoe25vYXVkaW86MX0pLGcucCQoKTtOPUdbclswXV19fWVsc2V7Tj1nLmxfKHIsdik7aWYoIU4pcmV0dXJuIHgmJmsoe25vYXVkaW86MX0pLGcucCQoKTtOPUdbTl19R1siOSJdJiZHLmgmJmIuelcmJiFXLkZGJiYoeCYmayh7ZGx0dnA5OjF9KSwKZGVsZXRlIEdbIjkiXSk7aWYoaCl7eCYmayh7YmZzZmx0OiRKKEcpLGJmc2ZsdGE6WUoobil9KTtXLkR0P24uTj1ORFMoZSxuLk4pOm4uTi5jbGVhcigpO3gmJmsoe2Jmc2ZsdGI6WUoobil9KTtmb3IodmFyIHogaW4gRyl7aWYoIUcuaGFzT3duUHJvcGVydHkoeikpY29udGludWU7aD16O2lmKCEoaD09PSJmInx8Vy54ZD09PTAmJnBMai5oYXMoaCkpKWZvcih2YXIgQyBvZiBHW2hdKVcuRHQ/WTJTKGgsQyxuLk4pOkhLaShuLGgsQyl9eCYmayh7YWZ0c2ZsdDpZSihuKX0pfXo9R1siMWgiXT8iMWgiOiIxIjtuPUdbIjloIl0/IjloIjoiOSI7aD1HW3pdO2U9R1siMiJdO0E9R1tuXTtoJiZoLmxlbmd0aCYmKFcuTi5oaWdoZXN0QXYxUmVzb2x1dGlvbj1oW2gubGVuZ3RoLTFdLnZpZGVvLnF1YWxpdHlPcmRpbmFsKTtBJiZBLmxlbmd0aCYmKFcuTi5oaWdoZXN0VnA5UmVzb2x1dGlvbj1BW0EubGVuZ3RoLTFdLnZpZGVvLnF1YWxpdHlPcmRpbmFsKTtDPVtdO1Q9W107aWYoVy55dyYmZSlDPQplLFQ9WyIyIl07ZWxzZSBpZihXLk1kJiZoKUM9aCxUPVt6XSxrKHtmb3JjZUF2MTp6fSk7ZWxzZSBpZihXLkQmJiFXLmJ2KXtUPWZEdyhiKT9HWyIxaCJdfHxHWyI5aCJdP1siMWgiLCI5aCJdOlsiOSIsImgiXTpbIjEiLCI5IiwiaCJdO3gmJmsoe25ld2h5YnByZWY6VC5qb2luKCIuIil9KTtmb3IodmFyIFEgb2YgVClDPUMuY29uY2F0KEdbUV0pLmZpbHRlcihMdD0+THQpfWVsc2UgVy5uUz4wJiZBJiZoJiYoVD1beiwKbl0sQz1oLmNvbmNhdChBKS5maWx0ZXIoTHQ9Pkx0KSk7CmlmKEMubGVuZ3RoJiYhVy5idil7SEEoQyxUKTtpZih4KXt4PVtdO2Zvcih2YXIgViBvZiBDKXgucHVzaChWLml0YWcpO2soe2hiZGZtdDp4LmpvaW4oIi4iKX0pfXJldHVybiBnLkgwKG5ldyBwZyhDLE4sTCxEKSl9Vj1KSHIoVyk7Vj1nLmxfKFYsdik7aWYoIVYpe2lmKEdbel0pcmV0dXJuIGs9R1t6XSxIQShrKSxnLkgwKG5ldyBwZyhrLE4sTCxEKSk7eCYmayh7bm92aWRlbzoxfSk7cmV0dXJuIGcucCQoKX1WIT09IjEiJiZWIT09IjFoInx8IUdbbl18fChRPWZnKEdbVl0pLHY9ZmcoR1tuXSksdj5RP1Y9bjooUT12PT09USx2PUpUKEdbbl0pLHo9SlQoR1tWXSksIVF8fCF2fHxXLllaJiZ6fHwoVj1uKSkpO1Y9PT0iOSImJkcuaCYmZmcoRy5oKT5mZyhHWyI5Il0pJiYoVj0iaCIpO1cuQlYmJmIuaXNMaXZlJiZWPT09IigiJiZHLkgmJmZnKEdbIigiXSk8MTQ0MCYmKFY9IkgiKTt4JiZrKHt2Zm1seTpJcihWKX0pO1c9R1tWXTtpZighVy5sZW5ndGgpcmV0dXJuIHgmJmsoe25vdmZtbHk6SXIoVil9KSwKZy5wJCgpO0hBKFcpO3JldHVybiBnLkgwKG5ldyBwZyhXLE4sTCxEKSl9OwpTMmI9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4PSExKXtpZihXLkU1JiZoJiZoLmxlbmd0aD4xJiYhKFcublM+MHx8Vy5EKSl7bGV0IHI9Vy5XfHwhIXYsTj1yJiZXLkxCP2s6dm9pZCAwLEg9dFQoVyxiKSxBPVtdLHk9W10sVD17fTtmb3IobGV0IHo9MDt6PGgubGVuZ3RoO3orKyl7dmFyIEw9aFt6XSxlPWIuSi5nZXQoTCk7aWYoZSYmZS5pbmZvKXt2YXIgRz1lLmluZm87ZT1HLklCO2lmKHNEKFcsRyxELGIuaXNMaXZlKSl7TD1HLmZZKCk/QTp5O0c9SFtlXTtmb3IobGV0IEMgb2YgRylHPXJGKGUsQyxXKSxULmhhc093blByb3BlcnR5KEcpP1RbR109PT0hMCYmTC5wdXNoKEMpOnNEKFcsQyxELGIuaXNMaXZlKSYmKEwucHVzaChDKSxUW0ddPSEwKX1lbHNlIHImJmsoe29wZnU6TH0pfX1pZihBLmxlbmd0aCYmeS5sZW5ndGgpcmV0dXJuIHImJmsoe29wZm06QVswXS5pdGFnKyIsIit5WzBdLml0YWd9KSxnLkgwKG5ldyBwZyhBLHksTikpfXJldHVybiBJRGgobixXLEQsYix2LGsseCl9OwpZSj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQgb2Ygbi5OLmtleXMoKSl7bGV0IGI9bi5OLmdldChEKTtXLnB1c2goYCR7RH1fJHtiLm1heFdpZHRofV8ke2IubWF4SGVpZ2h0fWApfXJldHVybiBXLmpvaW4oIi4iKX07CkhLaT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9RC52aWRlbz8uZnBzfHwwLHY9YCR7V31fJHtifWAsaz0hIUQuYXVkaW8saD1uLk4uZ2V0KHYpLHg9bi5OLmdldCh2KSxMPSEhRC5hdWRpbzt4JiYoTHx8IUwmJkQudmlkZW8/LmhlaWdodCYmeC5tYXhIZWlnaHQmJngubWF4SGVpZ2h0Pj1ELnZpZGVvPy5oZWlnaHQpfHwoeD1ELml0YWcsVz1oP2g6e2l0YWc6eCxJQjpXLGVTOmt9LGs/Vy5udW1DaGFubmVscz1ELmF1ZGlvLm51bUNoYW5uZWxzOihrPUQudmlkZW8sVy5tYXhXaWR0aD1rPy53aWR0aCxXLm1heEhlaWdodD1rPy5oZWlnaHQsVy5tYXhGcmFtZXJhdGU9YixXLm1heEJpdHJhdGVCcHM9RC5Ocyo4LFcuejk9az8uaXNIZHIoKSksbi5OLnNldCh2LFcpKX07CiQ1cj1mdW5jdGlvbihuLFcpe3ZhciBEPSEoIW4ubSYmIW4uTSksYj0hKCFuLm1hYzMmJiFuLk1BQzMpLHY9ISghbi5tZWFjMyYmIW4uTUVBQzMpO249ISghbi5pJiYhbi5JKTtXLlFyPW47cmV0dXJuIER8fGJ8fHZ8fG59OwpKVD1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgbilpZihXLml0YWcmJkFIUy5oYXMoVy5pdGFnKSlyZXR1cm4hMDtyZXR1cm4hMX07CnNXYj1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgbilpZihXLmF1ZGlvLmF1ZGlvUXVhbGl0eT09PSJBVURJT19RVUFMSVRZX0hJR0giKXJldHVybiEwO3JldHVybiExfTsKSXI9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIioiOnJldHVybiJ2OGUiO2Nhc2UgIigiOnJldHVybiJ2OWUiO2Nhc2UgIihoIjpyZXR1cm4idjloZSI7ZGVmYXVsdDpyZXR1cm4gbn19OwpyRj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEQuVEM/YCR7bn1fJHtOdW1iZXIoVy52aWRlbz8uZnBzfHwwKX1fJHshIVcuYXVkaW8/Lk59XyR7ISFXLnZpZGVvPy5YfWA6YCR7bn1fJHtOdW1iZXIoVy52aWRlbz8uZnBzfHwwKX1fJHshIVcuYXVkaW8/Lk59YH07CiRKPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRCBpbiBuKXtpZighbi5oYXNPd25Qcm9wZXJ0eShEKSljb250aW51ZTtsZXQgYj1EO1cucHVzaChJcihiKSk7Zm9yKGxldCB2IG9mIG5bYl0pVy5wdXNoKHYuaXRhZyl9cmV0dXJuIFcuam9pbigiLiIpfTsKdGdoPWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD17fSx4PXt9O2cuYV8oVywoTCxlKT0+e0w9TC5maWx0ZXIoRz0+e3ZhciByPUcuaXRhZztpZighRy5jb250ZW50UHJvdGVjdGlvbilyZXR1cm4geFtyXT0ibm9lbmMiLCExO2lmKGsuSEQmJkcuSUI9PT0iKGgiJiZrLmJkKXJldHVybiB4W3JdPSJsaWNoZHIiLCExO2lmKCFuLlgmJkcuSUI9PT0iMWUiKXJldHVybiB4W3JdPSJub2F2MWVuYyIsITE7aWYoRy5JQj09PSIoInx8Ry5JQj09PSIoaCIpe2lmKG4uSiYmRCYmRC5mbGF2b3I9PT0id2lkZXZpbmUiKXt2YXIgTj1HLm1pbWVUeXBlKyI7IGV4cGVyaW1lbnRhbD1hbGxvd2VkIjsoTj0hIUcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdJiYhIUQuSltOXSl8fCh4W3JdPUcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdPyJ1bnNwdCI6Im5vZmx2Iik7cmV0dXJuIE59aWYoIVNKKG4sQVQuQ1JZUFRPQkxPQ0tGT1JNQVQpJiYhbi5UQ3x8bi50dylyZXR1cm4geFtyXT1uLnR3PwoiZGlzdnAiOiJ2cHN1YiIsITF9cmV0dXJuIEQmJkcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdJiZELkpbRy5taW1lVHlwZV0/ITA6KHhbcl09RD9HLmNvbnRlbnRQcm90ZWN0aW9uW0QuZmxhdm9yXT8idW5zcHQiOiJub2ZsdiI6Im5vc3lzIiwhMSl9KTsKTC5sZW5ndGgmJihoW2VdPUwpfSk7CmImJk9iamVjdC5lbnRyaWVzKHgpLmxlbmd0aCYmdih7cmpyOmcuVEMoeCl9KTtpZihrLkopZm9yKGxldCBMIG9mIE9iamVjdC52YWx1ZXMoVykpaWYoTClmb3IobGV0IGUgb2YgTClXPXhbZS5pdGFnXSxlLk1XKCkmJlchPT12b2lkIDAmJihrLk5bZS5pdGFnXT1XKTtyZXR1cm4gaH07Ckc3VT1mdW5jdGlvbihuLFcpe3ZhciBEPWcudV8obiwoYix2KT0+di52aWRlby5KKCk/TWF0aC5taW4oYix2LnZpZGVvLndpZHRoKTpiLEluZmluaXR5KTsKRDxJbmZpbml0eSYmKG49bi5maWx0ZXIoYj0+e2lmKGIudmlkZW8uSigpfHxiLnZpZGVvLndpZHRoPEQpcmV0dXJuITA7V1tiLml0YWddPSJoZnJmaXJzdCI7cmV0dXJuITF9KSk7CmxiKCkmJihuPW4uZmlsdGVyKGI9PntpZihiLml0YWchPT0iMjk5IilyZXR1cm4hMDtXW2IuaXRhZ109InBzM2hmcjEwODAiO3JldHVybiExfSkpOwpyZXR1cm4gbn07CnEyQz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFc9Vy5maWx0ZXIoYj0+e2lmKGIudmlkZW8ucXVhbGl0eU9yZGluYWw8PW4ud2EpcmV0dXJuITA7RFtiLml0YWddPSJtYXhxdWFsaXR5IjtyZXR1cm4hMX0pfTsKdFQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXt9O2ZvcihsZXQgdiBpbiBXLk4pe2lmKCFXLk4uaGFzT3duUHJvcGVydHkodikpY29udGludWU7bGV0IGs9Vy5OW3ZdLmluZm87aWYobi5ZJiZrLnZpZGVvJiZrLnZpZGVvLnF1YWxpdHlPcmRpbmFsPG4uWSl7RCYmKERbay5pdGFnXT1gbWluJHtuLll9YCk7Y29udGludWV9bGV0IGg9ay5JQjtiW2hdPWJbaF18fFtdO2JbaF0ucHVzaChrKX1mb3IobGV0IHYgb2YgT2JqZWN0LmtleXMoYikpSEEoYlt2XSk7cmV0dXJuIGJ9OwpmZz1mdW5jdGlvbihuKXtyZXR1cm4gZy51XyhuLChXLEQpPT5NYXRoLm1heChXLEQudmlkZW8ucXVhbGl0eU9yZGluYWwpLDApfTsKc0Q9ZnVuY3Rpb24obixXLEQsYj0hMSx2PW5ldyBTZXQpe2lmKFcuSUI9PT0iIilyZXR1cm4idW5rbiI7aWYoKFcuaXRhZz09PSIzMDQifHxXLml0YWc9PT0iMjY2IikmJm4udHcpcmV0dXJuImJsazJraGZyIjtpZihuLksmJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+bi5LKXJldHVybmBtYXgke24uS31gO2lmKG4uQ3UmJlcuSUI9PT0iaCImJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MClyZXR1cm4iYmxraGlnaDI2NCI7aWYoVy5JQj09PSIoaCImJiFELkspcmV0dXJuImVuY2hkciI7aWYoYiYmbUYoVykmJiFuLm51KXJldHVybiJibGs1MWxpdmUiO2lmKChXLklCPT09Ik1BQzMifHxXLklCPT09Im1hYzMiKSYmIW4uailyZXR1cm4iYmxrYWMzIjtpZigoVy5JQj09PSJNRUFDMyJ8fFcuSUI9PT0ibWVhYzMiKSYmIW4uVilyZXR1cm4iYmxrZWFjMyI7aWYoVy5JQj09PSJNInx8Vy5JQj09PSJtIilyZXR1cm4iYmxrYWFjNTEiO2lmKChXLklCPT09InNvInx8ClcuSUI9PT0ic2EiKSYmIW4uY0opcmV0dXJuImJsa2FtYiI7aWYoIW4uSEQmJktnKFcpJiYoIUQuWHx8Vy5JQiE9PSIxZSIpKXJldHVybiJjYmMiO2lmKCFELlgmJktnKFcpJiZXLklCPT09IjFlIilyZXR1cm4iY2JjYXYxIjtpZigoVy5JQj09PSJpInx8Vy5JQj09PSJJIikmJiFuLlZRKXJldHVybiJibGtpYW1mIjtpZihuLlJhJiZXLmF1ZGlvPy5OPT09ITApcmV0dXJuImJsa3ZiY2FiciI7aWYobi5UQyYmVy52aWRlbz8uWD09PSExKXJldHVybiJibGttdHZjYWJyIjtpZihuLnZKJiYoVy5JQj09PSIxInx8Vy5JQj09PSIxaCJ8fEQuWCYmVy5JQj09PSIxZSIpJiZXLnZpZGVvPy5xdWFsaXR5T3JkaW5hbCYmVy52aWRlbz8ucXVhbGl0eU9yZGluYWw+bi52SilyZXR1cm4iYXYxY2FwIjtiPUQuVy5nZXQoVy5JQik7aWYoIW4ualcmJmImJmIuZzE+MClyZXR1cm4gdi5hZGQoVy5JQiksImJ5ZXJyIjtpZihXLnZpZGVvPy5KKCkpe2lmKCFELmJkJiYhU0ooRCxBVC5GUkFNRVJBVEUpKXJldHVybiJjYXBIZnIiOwppZihuLlBYJiZXLnZpZGVvLnF1YWxpdHlPcmRpbmFsPj00MzIwKXJldHVybiJibGs4a2hmciI7aWYoVy5YKCkmJm4uVTUmJlcuY29udGVudFByb3RlY3Rpb24mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+PTE0NDApcmV0dXJuImRpc2FibGV2cDloZnIifWlmKG4uTnMmJlcuTnM+bi5OcylyZXR1cm4icmF0ZWNhcCI7aWYobi5TJD4wJiZXLmZZKCkmJlcudmlkZW8uaGVpZ2h0Pm4uUyQpcmV0dXJuIm12aGNhcCI7bj1PRChELFcpO3JldHVybiBuIT09ITA/bjohMH07CkhBPWZ1bmN0aW9uKG4sVz1bXSl7Zy5iZihuLChELGIpPT57dmFyIHY9Yi5Ocy1ELk5zO2lmKCFELmZZKCl8fCFiLmZZKCkpcmV0dXJuIHY7dmFyIGs9Yi52aWRlby5oZWlnaHQqYi52aWRlby53aWR0aC1ELnZpZGVvLmhlaWdodCpELnZpZGVvLndpZHRoOyFrJiZXJiZXLmxlbmd0aD4wJiYoRD1XLmluZGV4T2YoRC5JQikrMSxiPVcuaW5kZXhPZihiLklCKSsxLGs9RD09PTB8fGI9PT0wP2J8fC0xOkQtYik7a3x8KGs9dik7cmV0dXJuIGt9KX07ClBBPWZ1bmN0aW9uKG4sVyl7aWYoVz5uLngkKCkpbi5zZWdtZW50cz1bXTtlbHNle3ZhciBEPWcuejQobi5zZWdtZW50cyxiPT5iLmokPj1XLG4pOwpEPjAmJm4uc2VnbWVudHMuc3BsaWNlKDAsRCl9fTsKWmM9ZnVuY3Rpb24obil7dmFyIFc9bi5kYXRhLmdldFVpbnQ4KG4ub2Zmc2V0K24uTik7bi5OKz0xO3JldHVybiBXfTsKVUQ9ZnVuY3Rpb24obil7dmFyIFc9bi5kYXRhLmdldFVpbnQxNihuLm9mZnNldCtuLk4pO24uTis9MjtyZXR1cm4gV307CnlMPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRJbnQzMihuLm9mZnNldCtuLk4pO24uTis9NDtyZXR1cm4gV307CkVEPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRVaW50MzIobi5vZmZzZXQrbi5OKTtuLk4rPTQ7cmV0dXJuIFd9OwppMz1mdW5jdGlvbihuKXt2YXIgVz1uLmRhdGE7dmFyIEQ9bi5vZmZzZXQrbi5OO1c9Vy5nZXRVaW50MzIoRCkqNDI5NDk2NzI5NitXLmdldFVpbnQzMihEKzQpO24uTis9ODtyZXR1cm4gV307CnUzPWZ1bmN0aW9uKG4sVz1OYU4pe2lmKGlzTmFOKFcpKXZhciBEPW4uc2l6ZTtlbHNlIGZvcihEPW4uTjtEPG4uc2l6ZSYmbi5kYXRhLmdldFVpbnQ4KG4ub2Zmc2V0K0QpIT09VzspKytEO1c9bmV3IFVpbnQ4QXJyYXkobi5kYXRhLmJ1ZmZlcixuLm9mZnNldCtuLk4rbi5kYXRhLmJ5dGVPZmZzZXQsRC1uLk4pO24uTj1NYXRoLm1pbihEKzEsbi5zaXplKTtyZXR1cm4gcFIoVyl9Owpvcj1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobi5kYXRhLmJ1ZmZlcixuLm9mZnNldCtuLmRhdGEuYnl0ZU9mZnNldCxuLnNpemUpfTsKZEY9ZnVuY3Rpb24obixXLEQsYil7KG5ldyBVaW50OEFycmF5KG4uZGF0YS5idWZmZXIsbi5vZmZzZXQsYikpLnNldChuZXcgVWludDhBcnJheShXLmJ1ZmZlcixEK1cuYnl0ZU9mZnNldCxiKSk7bi5vZmZzZXQrPWJ9Owp6Xz1mdW5jdGlvbihuLFcpe3JldHVybiBOdW1iZXIobi5kYXRhW1ddKXx8MH07ClRfPWZ1bmN0aW9uKG4pe3JldHVybiBuLmRhdGFbIkN1ZXBvaW50LVR5cGUiXT9uZXcgZy5sMygtKE51bWJlcihuLmRhdGFbIkN1ZXBvaW50LVBsYXloZWFkLVRpbWUtU2VjIl0pfHwwKSxOdW1iZXIobi5kYXRhWyJDdWVwb2ludC1Ub3RhbC1EdXJhdGlvbi1TZWMiXSl8fDAsbi5kYXRhWyJDdWVwb2ludC1Db250ZXh0Il0sbi5kYXRhWyJDdWVwb2ludC1JZGVudGlmaWVyIl18fCIiLG01altuLmRhdGFbIkN1ZXBvaW50LUV2ZW50Il18fCIiXXx8InVua25vd24iLChOdW1iZXIobi5kYXRhWyJDdWVwb2ludC1QbGF5aGVhZC1UaW1lLVNlYyJdKXx8MCkqMUUzKTpudWxsfTsKako9ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcihuLmRhdGFbIlN0YXJ0LU1lZGlhLVRpbWUtVXMiXSkvMUU2fHwwfTsKQ2c9ZnVuY3Rpb24obil7cmV0dXJuIG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tSWQiXT9uLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUlkIl0uc3BsaXQoIiwiKS5zbGljZSgwLC0xKTpbXX07CkJBPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2lmKG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tRHVyYXRpb24tVXMiXSlmb3IobGV0IEQgb2Ygbi5kYXRhWyJTdGl0Y2hlZC1WaWRlby1EdXJhdGlvbi1VcyJdLnNwbGl0KCIsIikuc2xpY2UoMCwtMSkpVy5wdXNoKChOdW1iZXIoRCl8fDApLzFFNik7cmV0dXJuIFd9OwpGcD1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLmRhdGFbIlN0aXRjaGVkLVZpZGVvLVN0YXJ0LUZyYW1lLUluZGV4Il0pZm9yKGxldCBEIG9mIG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tU3RhcnQtRnJhbWUtSW5kZXgiXS5zcGxpdCgiLCIpLnNsaWNlKDAsLTEpKVcucHVzaChOdW1iZXIoRCl8fDApO3JldHVybiBXfTsKd0Y9ZnVuY3Rpb24obil7dmFyIFc9W107aWYobi5kYXRhWyJTdGl0Y2hlZC1WaWRlby1TdGFydC1UaW1lLVdpdGhpbi1BZC1VcyJdKWZvcihsZXQgRCBvZiBuLmRhdGFbIlN0aXRjaGVkLVZpZGVvLVN0YXJ0LVRpbWUtV2l0aGluLUFkLVVzIl0uc3BsaXQoIiwiKS5zbGljZSgwLC0xKSlXLnB1c2goKE51bWJlcihEKXx8MCkvMUU2KTtyZXR1cm4gV307CmcuTWQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdP24uZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdOiIifTsKZy5Scj1mdW5jdGlvbihuKXtzd2l0Y2gobi5kYXRhWyJJcy1BZC1CcmVhay1GaW5pc2hlZCJdKXtjYXNlICJ0cnVlIjpyZXR1cm4gMTtjYXNlICJmYWxzZSI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19OwpRTD1mdW5jdGlvbihuKXt2YXIgVz17fTtuPW4uc3BsaXQoIlxyXG4iKTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKyl7aWYobltEXS5sZW5ndGg9PT0wKXJldHVybiBXO2xldCBiPW5bRF0ubWF0Y2goLyhbXjpdKyk6XHMrKFtcU1xzXSspLyk7YiE9bnVsbCYmKFdbYlsxXV09YlsyXSl9cmV0dXJuIG51bGx9OwpnLm5zPWZ1bmN0aW9uKG4sVyxEKXtmb3IoO1ZMKG4sVyk7KXtsZXQgYj1jQShuLFcpO2lmKGIudHlwZT09PUQpcmV0dXJuIGI7Vz1hcihiLnR5cGUpP1crODpXK2Iuc2l6ZX1yZXR1cm4gbnVsbH07Cld3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ucyhuLDAsMTk1Mjg2ODQ1Mik7bj1nLm5zKG4sMCwxOTUzNjU4MjIyKTtpZihEJiZuKXtELnNraXAoMSk7dmFyIGI9WmMoRCk8PDE2fFVEKEQpO0Quc2tpcCg0KTtiJjEmJkQuc2tpcCg4KTtiJjImJkQuc2tpcCg0KTtpZihiJjgpe2I9RC5OO3ZhciB2PUVEKEQpO0QuZGF0YS5zZXRVaW50MzIoRC5vZmZzZXQrYixXPjE/TWF0aC5jZWlsKHYqVyk6TWF0aC5mbG9vcih2KlcpKX1uLnNraXAoMSk7RD1aYyhuKTw8MTZ8VUQobik7aWYoRCYyNTYpe2I9RCYxO3Y9RCY0O3ZhciBrPUQmNTEyLGg9RCYxMDI0LHg9RCYyMDQ4O0Q9RUQobik7YiYmbi5za2lwKDQpO3YmJm4uc2tpcCg0KTtiPShrPzQ6MCkrKGg/NDowKSsoeD80OjApO2Zvcih2PTA7djxEO3YrKylrPW4uTixoPUVEKG4pLG4uZGF0YS5zZXRVaW50MzIobi5vZmZzZXQrayxXPjE/TWF0aC5jZWlsKGgqVyk6TWF0aC5mbG9vcihoKlcpKSxuLnNraXAoYil9fX07ClZMPWZ1bmN0aW9uKG4sVyl7aWYobi5ieXRlTGVuZ3RoLVc8OClyZXR1cm4hMTt2YXIgRD1uLmdldFVpbnQzMihXKTtpZihEPDh8fG4uYnl0ZUxlbmd0aC1XPEQpcmV0dXJuITE7Zm9yKEQ9NDtEPDg7RCsrKXtsZXQgYj1uLmdldEludDgoVytEKTtpZihiPDQ4fHxiPjEyMilyZXR1cm4hMX1yZXR1cm4hMH07CmNBPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5nZXRVaW50MzIoVyksYj1uLmdldFVpbnQzMihXKzQpO3JldHVybiBuZXcgRF8obixXLEQsYil9OwpnLmJMPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRVaW50OChuLmRhdGFPZmZzZXQpPzIwOjEyO3JldHVybiBuLmRhdGEuZ2V0VWludDMyKG4uZGF0YU9mZnNldCtXKX07CnZ3PWZ1bmN0aW9uKG4pe249bmV3IERhdGFWaWV3KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpO3JldHVybihuPWcubnMobiwwLDE4MzY0NzY1MTYpKT9nLmJMKG4pOk5hTn07Cmt4PWZ1bmN0aW9uKG4sVyxEKXtmb3IoO1ZMKG4sVyk7KXtsZXQgYj1jQShuLFcpO2lmKGIudHlwZT09PUQpcmV0dXJuIGI7Vys9Yi5zaXplfXJldHVybiBudWxsfTsKYXI9ZnVuY3Rpb24obil7cmV0dXJuIG49PT0xNzAxMDgyMjI3fHxuPT09MTgzNjAxOTU1OHx8bj09PTE4MzYwMTk1NzR8fG49PT0xODM1Mjk3MTIxfHxuPT09MTgzNTYyNjA4Nnx8bj09PTE5MzcwMDcyMTJ8fG49PT0xOTUzNjUzMDk0fHxuPT09MTk1MzY1MzA5OXx8bj09PTE4MzY0NzU3Njh9OwpLaDI9ZnVuY3Rpb24obil7dmFyIFc9Zy5ucyhuLDAsMTkzNzAxMTU1Nik7aWYoIVcpcmV0dXJuIG51bGw7Vz1reChuLFcuZGF0YU9mZnNldCs4LDE2MzUxNDg1OTMpfHxreChuLFcuZGF0YU9mZnNldCs4LDE2MzUxMzU1MzcpO2lmKCFXKXJldHVybiBudWxsO3ZhciBEPWt4KG4sVy5kYXRhT2Zmc2V0Kzc4LDE5MzY5OTUxNzIpLGI9a3gobixXLmRhdGFPZmZzZXQrNzgsMTkzNzEyNjI0NCk7aWYoIWIpcmV0dXJuIG51bGw7Vz1udWxsO2lmKEQpc3dpdGNoKEQuc2tpcCg0KSxaYyhEKSl7ZGVmYXVsdDpXPTA7YnJlYWs7Y2FzZSAxOlc9MjticmVhaztjYXNlIDI6Vz0xO2JyZWFrO2Nhc2UgMzpXPTI1NX12YXIgdj1EPW51bGwsaz1udWxsO2lmKGI9a3gobixiLmRhdGFPZmZzZXQsMTg4NjU0NzgxOCkpe2xldCBoPWt4KG4sYi5kYXRhT2Zmc2V0LDE4ODY1NDYwMjApLHg9a3gobixiLmRhdGFPZmZzZXQsMjAzNzY3MzMyOCk7aWYoIXgmJih4PWt4KG4sYi5kYXRhT2Zmc2V0LDE4MzYyNzk5MjApLAoheCkpcmV0dXJuIG51bGw7aCYmKGguc2tpcCg0KSxEPXlMKGgpLzY1NTM2LGs9eUwoaCkvNjU1MzYsdj15TChoKS82NTUzNik7bj1vcih4KTtuPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQrOCxuLmJ5dGVMZW5ndGgtOCk7cmV0dXJuIG5ldyBoWShXLEQsayx2LG4pfXJldHVybiBudWxsfTsKZy54eD1mdW5jdGlvbihuKXtpZihuLmRhdGEuZ2V0VWludDgobi5kYXRhT2Zmc2V0KSl7dmFyIFc9bi5kYXRhO249bi5kYXRhT2Zmc2V0KzQ7Vz1XLmdldFVpbnQzMihuKSo0Mjk0OTY3Mjk2K1cuZ2V0VWludDMyKG4rNCl9ZWxzZSBXPW4uZGF0YS5nZXRVaW50MzIobi5kYXRhT2Zmc2V0KzQpO3JldHVybiBXfTsKTHM9ZnVuY3Rpb24obil7bj1uZXcgRF8obi5kYXRhLG4ub2Zmc2V0LG4uc2l6ZSxuLnR5cGUsbi5KKTt2YXIgVz1aYyhuKTtuLnNraXAoNyk7dmFyIEQ9RUQobik7aWYoVz09PTApe1c9RUQobik7dmFyIGI9RUQobil9ZWxzZSBXPWkzKG4pLGI9aTMobik7bi5za2lwKDIpO3ZhciB2PVVEKG4pLGs9W10saD1bXTtmb3IobGV0IHg9MDt4PHY7eCsrKXtsZXQgTD1FRChuKTtrLnB1c2goTCk7aC5wdXNoKEVEKG4pKTtuLnNraXAoNCl9cmV0dXJue3RpbWVzY2FsZTpELGY4OlcsTm86YixIczprLHFnOmh9fTsKZy5lUD1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD0wLGI9W107VkwobixEKTspe2xldCB2PWNBKG4sRCk7di50eXBlPT09VyYmYi5wdXNoKHYpO0Q9YXIodi50eXBlKT9EKzg6RCt2LnNpemV9cmV0dXJuIGJ9OwpnQT1mdW5jdGlvbihuKXtuLnNraXAoNCk7cmV0dXJue1d6OnUzKG4sMCksdmFsdWU6dTMobiwwKSx0aW1lc2NhbGU6RUQobiksbzc6RUQobiksZXZlbnREdXJhdGlvbjpFRChuKSxpZDpFRChuKSxadzp1MyhuKSxvZmZzZXQ6bi5vZmZzZXR9fTsKZy5xaz1mdW5jdGlvbihuKXt2YXIgVz1reChuLDAsMTcwMTY3MTc4Myk7aWYoIVcpcmV0dXJuIG51bGw7dmFyIEQ9Z0EoVyksYj1ELld6O0Q9UUwoRC5adyk7aWYobj1reChuLFcub2Zmc2V0K1cuc2l6ZSwxNzAxNjcxNzgzKSlpZihuPWdBKG4pLG49UUwobi5adyksRCYmbilmb3IobGV0IHYgb2YgT2JqZWN0LmtleXMobikpRFt2XT1uW3ZdO3JldHVybiBEP25ldyBYNShELGIpOm51bGx9OwpHaj1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD1reChuLDAsVyk7RDspe3ZhciBiPUQ7Yi50eXBlPTE5MzY0MTkxODQ7Yi5kYXRhLnNldFVpbnQzMihiLm9mZnNldCs0LDE5MzY0MTkxODQpO0Q9a3gobixELm9mZnNldCtELnNpemUsVyl9fTsKUElDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ucyhuLDAsMTkzNzAxMTU1NiksYj1nLm5zKG4sMCwxOTUzNjU0MTM2KTtpZighRHx8IWJ8fG4uZ2V0VWludDMyKEQub2Zmc2V0KzEyKT49MilyZXR1cm4gbnVsbDt2YXIgdj1uZXcgRGF0YVZpZXcoVy5idWZmZXIsVy5ieXRlT2Zmc2V0LFcubGVuZ3RoKSxrPWcubnModiwwLDE5MzcwMTE1NTYpO2lmKCFrKXJldHVybiBudWxsO1c9di5nZXRVaW50MzIoay5kYXRhT2Zmc2V0KzgpO2I9di5nZXRVaW50MzIoay5kYXRhT2Zmc2V0KzEyKTtpZihiIT09MTcwMTczMzIxNyYmYiE9PTE3MDE3MzMyMzgpcmV0dXJuIG51bGw7Yj1uZXcgT0t0KG4uYnl0ZUxlbmd0aCtXKTtkRihiLG4sMCxELm9mZnNldCsxMik7Yi5kYXRhLnNldEludDMyKGIub2Zmc2V0LDIpO2Iub2Zmc2V0Kz00O2RGKGIsbixELm9mZnNldCsxNixELnNpemUtMTYpO2RGKGIsdix2LmJ5dGVPZmZzZXQray5kYXRhT2Zmc2V0KzgsVyk7ZEYoYixuLEQub2Zmc2V0K0Quc2l6ZSxuLmJ5dGVMZW5ndGgtCihELm9mZnNldCtELnNpemUpKTtEPVsxODM2MDE5NTc0LDE5NTM2NTMwOTksMTgzNTI5NzEyMSwxODM1NjI2MDg2LDE5MzcwMDcyMTIsMTkzNzAxMTU1Nl07Zm9yKGxldCBoIG9mIEQpRD1nLm5zKG4sMCxoKSxiLmRhdGEuc2V0VWludDMyKEQub2Zmc2V0LEQuc2l6ZStXKTtuPWcubnMoYi5kYXRhLDAsMTk1MzY1NDEzNik7Yi5kYXRhLnNldFVpbnQzMihuLm9mZnNldCsxNiwyKTtyZXR1cm4gYi5kYXRhfTsKWktaPWZ1bmN0aW9uKG4pe3ZhciBXPWcubnMobiwwLDE5MzcwMTE1NTYpO2lmKCFXKXJldHVybiBudWxsO3ZhciBEPW4uZ2V0VWludDMyKFcuZGF0YU9mZnNldCsxMik7aWYoRCE9PTE3MDE3MzMyMTcmJkQhPT0xNzAxNzMzMjM4KXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCsyNCsoRD09PTE3MDE3MzMyMTc/Mjg6NzgpLDE5MzYyODkzODIpO2lmKCFXKXJldHVybiBudWxsO0Q9a3gobixXLm9mZnNldCs4LDE5MzU4OTQ2MzcpO2lmKCFEfHxuLmdldFVpbnQzMihELm9mZnNldCsxMikhPT0xNjY3MzkyMzcxKXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCs4LDE5MzU4OTQ2MzMpO2lmKCFXKXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCs4LDE5NTI4MDQ0NTEpO2lmKCFXKXJldHVybiBudWxsO0Q9bmV3IFVpbnQ4QXJyYXkoMTYpO2ZvcihsZXQgYj0wO2I8MTY7YisrKURbYl09bi5nZXRJbnQ4KFcub2Zmc2V0KzE2K2IpO3JldHVybiBEfTsKWXg9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5ldyB0WShEKTtpZighJHgoYixuKSlyZXR1cm4hMTtiPXJBKGIpO2lmKCFzWShiLFcpKXJldHVybiExO2ZvcihuPTA7VzspVz4+Pj04LG4rKztXPWIuc3RhcnQrYi5wb3M7dmFyIHY9TmsoYiwhMCk7Yj1uKyhiLnN0YXJ0K2IucG9zLVcpK3Y7Yj1iPjk/cHMoYi05LDgpOnBzKGItMiwxKTtuPVctbjtELnNldFVpbnQ4KG4rKywyMzYpO2ZvcihXPTA7VzxiLmxlbmd0aDtXKyspRC5zZXRVaW50OChuKyssYltXXSk7cmV0dXJuITB9Owpwcz1mdW5jdGlvbihuLFcpe1d8fChXPU1hdGguY2VpbChNYXRoLmxvZyhuKzIpL01hdGgubG9nKDIpLzcpKTtmb3IodmFyIEQ9MTw8OC1XLGI9W107Yi5sZW5ndGg8Vy0xOyliLnVuc2hpZnQobiUyNTYpLG49TWF0aC5mbG9vcihuLzI1Nik7Yi51bnNoaWZ0KG58RCk7cmV0dXJuIGJ9OwpVNVo9ZnVuY3Rpb24obil7dmFyIFc9bmV3IHRZKG4pO1cuT0ooKTtpZigkeChXLFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyMjRdKSlXPXJBKFcpO2Vsc2UgcmV0dXJuIG51bGw7Zm9yKHZhciBEPW49bnVsbDshSHcoVyk7KXt2YXIgYj1OayhXLCExKTtpZihiPT09MjE0MzIpc3dpdGNoKGZzKFcpKXtkZWZhdWx0Om49MDticmVhaztjYXNlIDE6bj0xO2JyZWFrO2Nhc2UgMzpuPTI7YnJlYWs7Y2FzZSAxNTpuPTI1NX1lbHNlIGI9PT0zMDMyMD9EPXJBKFcpOkpZKFcpfWlmKCFEKXJldHVybiBudWxsO2Zvcih2YXIgdixrPWI9Vz1udWxsOyFIdyhEKTspc3dpdGNoKE5rKEQsITEpKXtjYXNlIDMwMzIxOmlmKGZzKEQpIT09MylyZXR1cm4gbnVsbDticmVhaztjYXNlIDMwMzI0Olc9SUIoRCk7YnJlYWs7Y2FzZSAzMDMyMzprPUlCKEQpO2JyZWFrO2Nhc2UgMzAzMjU6Yj1JQihEKTticmVhaztjYXNlIDMwMzIyOnY9TmsoRCwhMCk7dj1TUChELHYpO3Y9bmV3IERhdGFWaWV3KHYuYnVmZmVyLAp2LmJ5dGVPZmZzZXQsdi5ieXRlTGVuZ3RoKTticmVhaztkZWZhdWx0OkpZKEQpfXJldHVybiB2P25ldyBoWShuLFcsayxiLHYpOm51bGx9OwokeD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKXtpZighc1kobixXW0RdKSlyZXR1cm4hMTtEIT09Vy5sZW5ndGgtMSYmTmsobiwhMCl9cmV0dXJuITB9OwpyQT1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKSxEPW4uTi5ieXRlT2Zmc2V0K24ucG9zO0Q9bmV3IERhdGFWaWV3KG4uTi5idWZmZXIsRCxNYXRoLm1pbihXLG4uTi5idWZmZXIuYnl0ZUxlbmd0aC1EKSk7RD1uZXcgdFkoRCxuLnN0YXJ0K24ucG9zKTtuLnBvcys9VztyZXR1cm4gRH07CnNZPWZ1bmN0aW9uKG4sVyxEPSExKXtpZihIdyhuKSlyZXR1cm4hMTtmb3IodmFyIGI9bi5wb3M7TmsobiwhMSkhPT1XOylpZihKWShuKSxiPW4ucG9zLEh3KG4pKXJldHVybiExO0QmJihuLnBvcz1iKTtyZXR1cm4hMH07Ck5rPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9QVkobik7aWYoRD09PTEpe0Q9MDtmb3IoVz0wO1c8NztXKyspRD1EKjI1NitBWShuKTtyZXR1cm4gRH12YXIgYj0xMjg7Zm9yKGxldCB2PTA7djw2JiZiPkQ7disrKUQ9RCoyNTYrQVkobiksYio9MTI4O3JldHVybiBXP0QtYjpEfTsKSHc9ZnVuY3Rpb24obil7cmV0dXJuIG4ucG9zPj1uLk4uYnl0ZUxlbmd0aH07CmZzPWZ1bmN0aW9uKG4pe3ZhciBXPU5rKG4sITApLEQ9QVkobik7Zm9yKGxldCBiPTE7YjxXO2IrKylEPUQqMjU2K0FZKG4pO3JldHVybiBEfTsKSlk9ZnVuY3Rpb24obil7dmFyIFc9TmsobiwhMCk7bi5wb3MrPVd9OwpJQj1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKSxEPTA7Vz09PTQ/RD1uLk4uZ2V0RmxvYXQzMihuLnBvcyk6Vz09PTgmJihEPW4uTi5nZXRGbG9hdDY0KG4ucG9zKSk7bi5wb3MrPVc7cmV0dXJuIER9OwpTUD1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyBVaW50OEFycmF5KG4uTi5idWZmZXIsbi5OLmJ5dGVPZmZzZXQrbi5wb3MsVyk7bi5wb3MrPVc7cmV0dXJuIER9OwptdD1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKTtyZXR1cm4gcFIoU1AobixXKSl9OwpBWT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmdldFVpbnQ4KG4ucG9zKyspfTsKeUhyPWZ1bmN0aW9uKG4pe2lmKCFzWShuLDQ0MDc4Njg1MSwhMCkpcmV0dXJuIG51bGw7dmFyIFc9bi5wb3M7TmsobiwhMSk7dmFyIEQ9TmsobiwhMCkrbi5wb3MtVztuLnBvcz1XK0Q7aWYoIXNZKG4sNDA4MTI1NTQzLCExKSlyZXR1cm4gbnVsbDtOayhuLCEwKTtpZighc1kobiwzNTcxNDkwMzAsITApKXJldHVybiBudWxsO3ZhciBiPW4ucG9zO05rKG4sITEpO3ZhciB2PU5rKG4sITApK24ucG9zLWI7bi5wb3M9Yit2O2lmKCFzWShuLDM3NDY0ODQyNywhMCkpcmV0dXJuIG51bGw7dmFyIGs9bi5wb3M7TmsobiwhMSk7dmFyIGg9TmsobiwhMCkrbi5wb3Mtayx4PW5ldyBVaW50OEFycmF5KEQrMTIrditoKSxMPW5ldyBEYXRhVmlldyh4LmJ1ZmZlcik7eC5zZXQobmV3IFVpbnQ4QXJyYXkobi5OLmJ1ZmZlcixuLk4uYnl0ZU9mZnNldCtXLEQpKTtMLnNldFVpbnQzMihELDQwODEyNTU0Myk7TC5zZXRVaW50MzIoRCs0LDMzNTU0NDMxKTtMLnNldFVpbnQzMihEKzgsNDI5NDk2NzI5NSk7Cnguc2V0KG5ldyBVaW50OEFycmF5KG4uTi5idWZmZXIsbi5OLmJ5dGVPZmZzZXQrYix2KSxEKzEyKTt4LnNldChuZXcgVWludDhBcnJheShuLk4uYnVmZmVyLG4uTi5ieXRlT2Zmc2V0K2ssaCksRCsxMit2KTtyZXR1cm4geH07CktzPWZ1bmN0aW9uKG4pe3ZhciBXPW4ucG9zO24ucG9zPTA7dmFyIEQ9MUU2OyR4KG4sWzQwODEyNTU0MywzNTcxNDkwMzAsMjgwNzcyOV0pJiYoRD1mcyhuKSk7bi5wb3M9VztyZXR1cm4gRH07ClB3PWZ1bmN0aW9uKG4pe2lmKCFPWShuKXx8IXNZKG4sNTI0NTMxMzE3KSlyZXR1cm4hMTtOayhuLCEwKTtyZXR1cm4hMH07CkVFWj1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucG9zO24ucG9zPTA7aWYobi5OLmdldFVpbnQ4KG4ucG9zKSE9PTE2MCYmIVB3KG4pfHwhc1kobiwxNjApKXJldHVybiBuLnBvcz1ELE5hTjtOayhuLCEwKTt2YXIgYj1uLnBvcztpZighc1kobiwxNjEpKXJldHVybiBuLnBvcz1ELE5hTjtOayhuLCEwKTtBWShuKTt2YXIgdj1BWShuKTw8OHxBWShuKTtuLnBvcz1iO2lmKCFzWShuLDE1NSkpcmV0dXJuIG4ucG9zPUQsTmFOO2I9ZnMobik7bi5wb3M9RDtyZXR1cm4oditiKSpXLzFFOX07Ck9ZPWZ1bmN0aW9uKG4pe2lmKG4uT0ooKSl7aWYoIXNZKG4sNDA4MTI1NTQzKSlyZXR1cm4hMTtOayhuLCEwKX1yZXR1cm4hMH07ClpfPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5pbmRleE9mKCI/Iik7aWYoRD4wKXtsZXQgYj1nNygxLDUwLFcuc3Vic3RyaW5nKEQrMSkpO2cuYV8oYixmdW5jdGlvbih2LGspe3RoaXMuc2V0KGssdil9LG4pOwpXPVcuc3Vic3RyaW5nKDAsRCl9Vz1pcCgxNSw4MjUsVyk7Zy5hXyhXLGZ1bmN0aW9uKGIsdil7dGhpcy5zZXQodixiKX0sbil9OwppS1U9ZnVuY3Rpb24obil7dmFyIFc9bi5BTy5XRCgpLEQ9W107Zy5hXyhuLk4sKHYsayk9PntELnB1c2goYCR7a309JHt2fWApfSk7CmlmKCFELmxlbmd0aClyZXR1cm4gVzt2YXIgYj1ELmpvaW4oIiYiKTtuPVAwKDgzLDY1ODgsbi5BTyk/IiYiOiI/IjtyZXR1cm4gVytuK2J9OwpVWT1mdW5jdGlvbihuLFcpe25bV118fChuW1ddPW5ldyB1VGkpO3JldHVybiBuW1ddfTsKeWY9ZnVuY3Rpb24obixXPSExKXtXJiYobi5KKz0xKTtuLk4rPTF9OwpvRWk9ZnVuY3Rpb24obixXPSExKXtuLnRpbWVkT3V0Kz0xO1cmJnlmKG4sITApfTsKemo9ZnVuY3Rpb24obixXPSExKXtXJiYobi5YPSgwLGcuUikoKSxuLko9MCk7bi5WPSgwLGcuUikoKTtuLnN0YXJ0ZWQ9MDtuLnRpbWVkT3V0PTA7bi5OPTB9OwpsTD1mdW5jdGlvbihuLFcsRD0hMSl7aWYoRClyZXR1cm4gMTw8TWF0aC5taW4obi5KLDUpO0Q9bi5zdGFydGVkK24uTio0O1cmJihEKz1uLlcpO0Q9TWF0aC5tYXgoMCxELTMpO3JldHVybiAxLjYqKkR9OwpqUD1mdW5jdGlvbihuLFcsRCl7aWYoZ1ooMzgsMTIwMixuLk4pKXJldHVybiExO3ZhciBiPVVZKEQsUjAoMzUsMzUwNyxuLk4pKTtpZihiLnRpbWVkT3V0PDEmJmIuTjwxKXJldHVybiExO2I9Yi50aW1lZE91dCtiLk47bj1UaihuLFcpO0Q9VVkoRCxSMCgzMiwzNTA0LG4pKTtyZXR1cm4gRC50aW1lZE91dCtELk4rMDxifTsKVGo9ZnVuY3Rpb24obixXKXtXPVc/Vy5vTTohMTtuLlh8fChuLlg9WGQobi5XLFcpKTtyZXR1cm4gbi5YfTsKQnc9ZnVuY3Rpb24obixXLEQpe249Vz9UaihuLEQpOm4uTjtyZXR1cm4gbmV3IENzKG4pfTsKRjU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBSMCgzNSwzNTA3LFc/VGoobixEKTpuLk4pfTsKd0E9ZnVuY3Rpb24obixXLEQsYix2KXsrK24uSjtXJiYrK24uVjtSMCgzMiwzNTA0LEQuQU8pLnN0YXJ0c1dpdGgoInJlZGlyZWN0b3IuIikmJihuLk49bi5XLmNsb25lKCksZGVsZXRlIG4uWCxiLnBFJiZkZWxldGUgdltSMCg2NywzNTM5LG4uTildKX07Ck1rPWZ1bmN0aW9uKG4pe3JldHVybiBuP2Ake24uaXRhZ3x8IiJ9OyR7bi5sbXR8fDB9OyR7bi54dGFnc3x8IiJ9YDoiIn07ClFmPWZ1bmN0aW9uKG4sVyl7bi5pbmZvJiZuLmluZm8udmlkZW8mJm4uaW5mby52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJNRVNIIiYmIW4uTyYmKGcuUkIobi5pbmZvKT9uLk89S2gyKFcpOm4uaW5mby5xSCgpJiYobi5PPVU1WihXKSkpfTsKY3c9ZnVuY3Rpb24obixXKXtyZXR1cm4gTWsoZy5WZihuLmluZm8sVykpfTsKbno9ZnVuY3Rpb24obil7bj1uLnNwbGl0KCItIik7dmFyIFc9TnVtYmVyKG5bMF0pLEQ9TnVtYmVyKG5bMV0pO2lmKCFpc05hTihXKSYmIWlzTmFOKEQpJiZuLmxlbmd0aD09PTImJihuPW5ldyBhQihXLEQpLCFpc05hTihuLnN0YXJ0KSYmIWlzTmFOKG4uZW5kKSYmIWlzTmFOKG4ubGVuZ3RoKSYmbi5sZW5ndGg+MCkpcmV0dXJuIG59OwpXXz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgYUIobixuK1ctMSl9OwpESj1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gbmV3IGFCKDAsMCk7dmFyIFc9TnVtYmVyKG4uc3RhcnQpO249TnVtYmVyKG4uZW5kKTtpZighaXNOYU4oVykmJiFpc05hTihuKSYmKFc9bmV3IGFCKFcsbiksVy5sZW5ndGg+MCkpcmV0dXJuIFd9OwpkNXc9ZnVuY3Rpb24obil7bi5sZW5ndGg9PT0xfHxnLmR6KG4sRD0+ISFELnJhbmdlKTsKZm9yKHZhciBXPTE7VzxuLmxlbmd0aDtXKyspO1c9bltuLmxlbmd0aC0xXTtyZXR1cm4gbmV3IGFCKG5bMF0ucmFuZ2Uuc3RhcnQrblswXS5OLFcucmFuZ2Uuc3RhcnQrVy5OK1cuSi0xKX07CmJUPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uUEo9PT1XLlBKP24ucmFuZ2UmJlcucmFuZ2U/bi5yYW5nZS5zdGFydCtuLk4rbi5KPT09Vy5yYW5nZS5zdGFydCtXLk46bi5qJD09PVcuaiQ/bi5OK24uSj09PVcuTjpuLmokKzE9PT1XLmokJiZXLk49PT0wJiZuLmFaOiExfTsKdl89ZnVuY3Rpb24obil7bi5YPW4uc2VnbWVudFN0YXJ0VGltZTtuLks9bi5XO24uaj1uLlgrbi5LfTsKa049ZnVuY3Rpb24obil7cmV0dXJuIG4ucmFuZ2U/bi5qOk1hdGgubWluKG4uc2VnbWVudFN0YXJ0VGltZStNYXRoLm1pbihuLk4vbi5QSi5pbmZvLk5zLG4uVykrKG4ucmFuZ2U/bi5LOk1hdGgubWluKG4uVyxuLkovbi5QSi5pbmZvLk5zKSksbi5zZWdtZW50U3RhcnRUaW1lK24uVyl9Owp6QTI9ZnVuY3Rpb24obixXLEQpe3ZhciBiPSEoIVd8fFcuUEohPT1uLlBKfHxXLnR5cGUhPT1uLnR5cGV8fFcuaiQhPT1uLmokKTtyZXR1cm4gRD9iJiYhIVcmJihuLnJhbmdlJiZXLnJhbmdlP1cucmFuZ2UuZW5kPT09bi5yYW5nZS5lbmQ6Vy5yYW5nZT09PW4ucmFuZ2UpJiZXLk4rVy5KPT09bi5OK24uSjpifTsKaEo9ZnVuY3Rpb24obil7cmV0dXJuIG4udHlwZT09PTF8fG4udHlwZT09PTJ9Owp4Tj1mdW5jdGlvbihuKXtyZXR1cm4gbi50eXBlPT09M3x8bi50eXBlPT09Nn07Ckx6PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGJUKG4sVyl8fE1hdGguYWJzKG4uai1XLlgpPD0xRS02fHxuLmokKzE9PT1XLmokJiZXLk49PT0wJiZuLmFaPyEwOiExfTsKZXg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5qJCE9PVcuaiQmJlcuaiQhPT1uLmokKzF8fG4udHlwZSE9PVcudHlwZT8hMTpiVChuLFcpPyEwOk1hdGguYWJzKG4uWC1XLlgpPD0xRS02JiZuLmokPT09Vy5qJD8hMTpMeihuLFcpfTsKZ2s9ZnVuY3Rpb24obil7cmV0dXJuIG4uaiQrKG4uYVo/MTowKX07Clh4PWZ1bmN0aW9uKG4pe3ZhciBXPXt9O1cuaXRhZz1uLlBKLmluZm8uaXRhZztXLnR5cGU9YCR7bi50eXBlfWA7Vy5zcmM9YCR7bi5zb3VyY2V9YDtXLnNlZ3NyYz1uLlk7Vy5zZWc9U3RyaW5nKG4uaiQpO24ucmFuZ2UmJihXLnJhbmdlPWAke24ucmFuZ2Uuc3RhcnQrbi5OfS0ke24ucmFuZ2Uuc3RhcnQrbi5OK24uSi0xfWApO1cudGltZT1gJHtuLlgudG9GaXhlZCgxKX0tJHsobi5YK24uSykudG9GaXhlZCgxKX1gO1cub2ZmPVN0cmluZyhuLk4pO1cubGVuPVN0cmluZyhuLkopO24uYVomJihXLmVuZD0iMSIpO24uVigpJiYoVy5lb3M9IjEiKTtuLmNsaXBJZCYmKFcuY2lkPW4uY2xpcElkKTtyZXR1cm4gV307CmxEeD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHFJKG4udHlwZSxuLlBKLG4ucmFuZ2UsImdldEVtcHR5U3R1YkJlZm9yZSIrbi5ZLG4uaiQsbi5zZWdtZW50U3RhcnRUaW1lLDAsbi5OLDAsdm9pZCAwLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKVEQxPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgcUkobi50eXBlLG4uUEosbi5yYW5nZSwiZ2V0RW1wdHlTdHViQWZ0ZXIiK24uWSxuLmokLG4uc2VnbWVudFN0YXJ0VGltZStuLlcsMCxuLk4rbi5KLDAsdm9pZCAwLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKR1A9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIG5ldyBxSShuLnR5cGUsbi5QSixuLnJhbmdlLCJyZXNsaWNlIituLlksbi5qJCxuLnNlZ21lbnRTdGFydFRpbWUsbi5XLFcsRCxiLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKdEo9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5QSiE9PVcuUEo/ITE6bi5yYW5nZSYmVy5yYW5nZT9uLnJhbmdlLnN0YXJ0K24uTj49Vy5yYW5nZS5zdGFydCtXLk4mJm4ucmFuZ2Uuc3RhcnQrbi5OK24uSjw9Vy5yYW5nZS5zdGFydCtXLk4rVy5KOm4uaiQ9PT1XLmokJiZuLk4+PVcuTiYmKG4uTituLko8PVcuTitXLkp8fFcuYVopfTsKJE49ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5QSiE9PVcuUEo/ITE6bi5jSigpJiZXLnR5cGU9PT0zJiZuLlBKLk4oKT8obj1uLlBKLlZRKG4pLGcub00obixEPT4kTihELFcpKSk6bi5qJD09PVcuaiQmJiEhVy5KJiZXLk4rVy5KPm4uTiYmVy5OK1cuSjw9bi5OK24uSn07Ck92PWZ1bmN0aW9uKG4pe3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCksRD1uLmg1KCksYj1ELmVfKCksdj1uLkcoKSxrPW4uZDAoKSxoPWsuVDEqOC8xMDI0LHg9ay54WS8xMDI0LEw9ay5LVCxlPWsuU1UsRz1rLk1BLHI9RC5nZXRDdXJyZW50VGltZSgpLnRvRml4ZWQoMiksTj1yayhELkooKSwiLCIsMyk7dmFyIEg9IiI7aWYoVy5pc0RhaUVuYWJsZWQoKSl7SD1OSShXKT9IKyJNViI6Vy5lbmFibGVTZXJ2ZXJTdGl0Y2hlZERhaT9IKyJTUyI6SCsiQ1MiO0g9Vy5ERigpP0grIkxJRkEsICI6SCsiREFJLCAiO1cuYlYmJihIKz0iREFJRkIsICIpO3ZhciBBPWsuZEM7QSYmKEgrPUEpfWVsc2UgVy5LZj9IKz0iQ1NEQUksICI6Vy5KbD9IKz0iRFNEQUksICI6Vy5qRiYmKEgrPSJVU0RBSSwgIik7cHooVykmJiFXLkRGKCkmJihIKz0iTElGQUUsICIpO2cuWU4oVykmJihIKz0iU0FCUiwgIik7aWYoVy5mZXRjaFR5cGUpe3N3aXRjaChXLmZldGNoVHlwZSl7Y2FzZSAib25lc2llIjpBPSJvIjticmVhazsKY2FzZSAiZ3AiOkE9ImdwIjticmVhaztkZWZhdWx0OkE9Imd2aSJ9SCs9YHZkOiR7QX0sIGB9KEE9di5qXygpKSYmKEg9QS5pc0FzbWpzP0grIndhLCAiOkgrIncsICIpO0grPWBzOiR7R30gdDoke3J9IGI6JHtOfSBgO0QuaXNTZWVraW5nKCkmJihIKz0iUyIpO0QuaXNQYXVzZWQoKSYmKEgrPSJQIik7RC5pc0VuZGVkKCkmJihIKz0iRSIpO24uaXNPcmNoZXN0cmF0aW9uTGVhZGVyKCkmJihIKz0iIEwiKTsoRD1rLmVJKSYmKEgrPWAgbDoke0QudG9GaXhlZCgpfWApO0Q9ay5jdXJyZW50VGltZTtHPVcueW47RCYmRD5HLnN0YXJ0JiZEPEcuZW5kJiYoSCs9IiBhcyIpO0Q9UFYob0wpKCJfc3RhcnQiLHZvaWQgMCk7Rz1bXTtmb3IoeSBvZlsicGxfaSIsInZpciIsIm9yX3AiLCJvcmZiIiwicGJzIl0pKHI9UFYob0wpKHksdm9pZCAwKSkmJkQmJihyLT1ELEcucHVzaChgJHt5fToke01hdGgucm91bmQocil9YCkpO3ZhciB5PUcuam9pbigiICIpO0Q9Zy5IXygpO0c9Zy5meihuKS52VDtyPQpXLlcmJiFXLlcuTigpPyJkaXNwbGF5Om5vbmUiOiIiO2lmKChOPVcuY2xpZW50UGxheWJhY2tOb25jZSkmJk4ubGVuZ3RoPT0xNil7Tis9IkFBQUEiO0E9MDt2YXIgVD0iIjtmb3IobGV0IEM9MDtDPDIwO0MrKylpZihBPShBPDw2KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuaW5kZXhPZihOLmNoYXJBdChDKSksQyU1PT00KXtsZXQgUT0iIjtmb3IobGV0IFY9MDtWPDY7VisrKVE9IjAxMjM0NTY3ODlBQkNERUZHSEpLTU5QUVJTVFZXWFlaIi5jaGFyQXQoQSYzMSkrUSxBPj49NTtUKz1RfU49YCR7VC5zdWJzdHIoMCw0KX0gJHtULnN1YnN0cig0LDQpfSAke1Quc3Vic3RyKDgsNCl9ICR7VC5zdWJzdHIoMTIsNCl9ICR7VC5zdWJzdHIoMTYsNCl9YH1lbHNlIE49IiI7aD17dmlkZW9faWRfYW5kX2NwbjpTdHJpbmcoVy52aWRlb0lkKSsiIC8gIitOLGNvZGVjczoiIixkaW1zX2FuZF9mcmFtZXM6IiIsYmFuZHdpZHRoX2ticHM6YCR7aC50b0ZpeGVkKDApfSBLYnBzYCwKYnVmZmVyX2hlYWx0aF9zZWNvbmRzOmAke0wudG9GaXhlZCgyKX0gc2AsZGF0ZTpgJHsobmV3IERhdGUpLnRvU3RyaW5nKCl9YCxkcm1fc3R5bGU6ZT8iIjoiZGlzcGxheTpub25lIixkcm06ZSxkZWJ1Z19pbmZvOkgsZXh0cmFfZGVidWdfaW5mbzoiIixiYW5kd2lkdGhfc3R5bGU6cixuZXR3b3JrX2FjdGl2aXR5X3N0eWxlOnIsbmV0d29ya19hY3Rpdml0eV9ieXRlczpgJHt4LnRvRml4ZWQoMCl9IEtCYCxzaGFkZXJfaW5mbzpHLHNoYWRlcl9pbmZvX3N0eWxlOkc/IiI6ImRpc3BsYXk6bm9uZSIscGxheWJhY2tfY2F0ZWdvcmllczoiIn07eD1gJHtiLmNsaWVudFdpZHRofXgke2IuY2xpZW50SGVpZ2h0fWArKEQ+MT9gKiR7RC50b0ZpeGVkKDIpfWA6IiIpO0w9Ii0iO2sudG90YWxWaWRlb0ZyYW1lcyYmKEw9YCR7ay5kcm9wcGVkVmlkZW9GcmFtZXN8fDB9IGRyb3BwZWQgb2YgJHtrLnRvdGFsVmlkZW9GcmFtZXN9YCk7aC5kaW1zX2FuZF9mcmFtZXM9YCR7eH0gLyAke0x9YDtlPW4uZ2V0Vm9sdW1lKCk7Cm49Vy5oZzt4PW4uTjtMPU1hdGgucm91bmQoZSk7ZT1NYXRoLnJvdW5kKGUqKHg/LlpyPz8xKSk7SD0iIjtXLlg/LmF1ZGlvLk4/SD0iIFZCIjpXLlg/LmF1ZGlvLlcmJihIPSIgRFJDIik7RD0iIjt4Py5mZCE9bnVsbD9EKz1gY29udC4ke3guZmQudG9GaXhlZCgxKX1kQmA6bi5RTyE9bnVsbCYmKEQrPWBsaXZlLiR7bi5RTy50b0ZpeGVkKDEpfWRCYCk7eD8ucHkhPW51bGwmJihEKz1gIHRndC4ke3gucHkudG9GaXhlZCgxKX1kQmApO0QmJihEPWAgKCR7RH0pYCk7aC52b2x1bWU9YCR7TH0lLyR7ZX0lJHtIfSR7RH1gO2gucmVzb2x1dGlvbj1gJHtiLnZpZGVvV2lkdGh9eCR7Yi52aWRlb0hlaWdodH1gO2lmKGI9Vy5KKXtpZihuPWIudmlkZW8peD1uLmZwcyx4PjEmJihoLnJlc29sdXRpb24rPWBAJHt4fWApLCh4PWsuTHQpJiZ4LnZpZGVvJiYoaC5yZXNvbHV0aW9uKz1gIC8gJHt4LnZpZGVvLndpZHRofXgke3gudmlkZW8uaGVpZ2h0fWAseC52aWRlby5mcHM+MSYmKGgucmVzb2x1dGlvbis9CmBAJHt4LnZpZGVvLmZwc31gKSksaC5jb2RlY3M9SkooYiksIVcuWHx8Yi5hdWRpbyYmYi52aWRlbz9iLkFhJiYoaC5jb2RlY3MrPWAgLyAke2IuQWF9QWApOmguY29kZWNzKz1gIC8gJHtKSihXLlgpfWAsbi5OfHxuLnByaW1hcmllcz8oeD1uLk58fCJ1bmtub3duIix4PT09InNtcHRlMjA4NCI/eD1gJHt4fSAoUFEpYDp4PT09ImFyaWItc3RkLWI2NyImJih4PWAke3h9IChITEcpYCksaC5jb2xvcj1gJHt4fSAvICR7bi5wcmltYXJpZXN8fCJ1bmtub3duIn1gLGguY29sb3Jfc3R5bGU9IiIpOmguY29sb3Jfc3R5bGU9ImRpc3BsYXk6bm9uZSI7aWYoYi5kZWJ1Z0luZm8pe2guZm10X2RlYnVnX2luZm89IiI7Zm9yKHZhciB6IG9mIGIuZGVidWdJbmZvKWguZm10X2RlYnVnX2luZm8rPWAke3oubGFiZWx9OiR7ei50ZXh0fSBgfWguZm10X2RlYnVnX2luZm9fc3R5bGU9aC5mbXRfZGVidWdfaW5mbyYmaC5mbXRfZGVidWdfaW5mby5sZW5ndGg+MD8iIjoiZGlzcGxheTpub25lIn16PVcuaXNMaXZlUGxheWJhY2s7CmI9Vy5YZztoLmxpdmVfbW9kZV9zdHlsZT16fHxiPyIiOiJkaXNwbGF5Om5vbmUiO2gubGl2ZV9sYXRlbmN5X3N0eWxlPXo/IiI6ImRpc3BsYXk6bm9uZSI7aWYoYiloLmxpdmVfbW9kZT0iUG9zdC1MaXZlIisoSTQoVyk/IiBNYW5pZmVzdGxlc3MiOiIiKTtlbHNlIGlmKHope2I9ay5wVDtoLmxpdmVfbGF0ZW5jeV9zZWNzPWAke2IudG9GaXhlZCgyKX1zYDt6PUk0KFcpPyJNYW5pZmVzdGxlc3MsICI6IiI7Vy5SSSYmKHorPSJXaW5kb3dlZCwgIik7bj0iVW5jZXJ0YWluIjtpZihiPj0wJiZiPDEyMClpZihXLmxhdGVuY3lDbGFzcyYmVy5sYXRlbmN5Q2xhc3MhPT0iVU5LTk9XTiIpc3dpdGNoKFcubGF0ZW5jeUNsYXNzKXtjYXNlICJOT1JNQUwiOm49Ik9wdGltaXplZCBmb3IgTm9ybWFsIExhdGVuY3kiO2JyZWFrO2Nhc2UgIkxPVyI6bj0iT3B0aW1pemVkIGZvciBMb3cgTGF0ZW5jeSI7YnJlYWs7Y2FzZSAiVUxUUkFMT1ciOm49Ik9wdGltaXplZCBmb3IgVWx0cmEgTG93IExhdGVuY3kiOwpicmVhaztkZWZhdWx0Om49IlVua25vd24gTGF0ZW5jeSBTZXR0aW5nIn1lbHNlIG49U3goVyk/Ik9wdGltaXplZCBmb3IgTG93IExhdGVuY3kiOiJPcHRpbWl6ZWQgZm9yIFNtb290aCBTdHJlYW1pbmciO3orPW47KGI9ay5GSSkmJih6Kz1gLCBzZXEgJHtiLnNlcXVlbmNlfWApO2gubGl2ZV9tb2RlPXp9di5leHBlcmltZW50cy5adCgpLk4uUVEoaldTKT9rLmlzR2FwbGVzcyYmIWsuZFQmJihoLnBsYXliYWNrX2NhdGVnb3JpZXM9ay5Ibz9oLnBsYXliYWNrX2NhdGVnb3JpZXMrIkdhcGxlc3MgIjpoLnBsYXliYWNrX2NhdGVnb3JpZXMrIlF1ZXVlZCAiKTohay5pc0dhcGxlc3N8fEFKKFcpJiZrLmRUfHwoaC5wbGF5YmFja19jYXRlZ29yaWVzKz0iR2FwbGVzcyAiKTtoLnBsYXliYWNrX2NhdGVnb3JpZXNfc3R5bGU9aC5wbGF5YmFja19jYXRlZ29yaWVzPyIiOiJkaXNwbGF5Om5vbmUiO2guYmFuZHdpZHRoX3NhbXBsZXM9ay5VJDtoLm5ldHdvcmtfYWN0aXZpdHlfc2FtcGxlcz1rLmRjOwpoLmxpdmVfbGF0ZW5jeV9zYW1wbGVzPWsuc0k7aC5idWZmZXJfaGVhbHRoX3NhbXBsZXM9ay5qeDt2PWcubU0oVyk7aWYoVy5jb3RufHx2KWguY290bl9hbmRfbG9jYWxfbWVkaWE9YCR7Vy5jb3RuP1cuY290bjoibnVsbCJ9IC8gJHt2fWA7aC5jb3RuX2FuZF9sb2NhbF9tZWRpYV9zdHlsZT1oLmNvdG5fYW5kX2xvY2FsX21lZGlhPyIiOiJkaXNwbGF5Om5vbmUiO0t6KFcsIndlYl9wbGF5ZXJfcmVsZWFzZV9kZWJ1ZyIpPyhoLnJlbGVhc2VfbmFtZT1JWzY1XSxoLnJlbGVhc2Vfc3R5bGU9IiIpOmgucmVsZWFzZV9zdHlsZT0iZGlzcGxheTpub25lIjtoLmRlYnVnX2luZm8mJnkubGVuZ3RoPjAmJmguZGVidWdfaW5mby5sZW5ndGgreS5sZW5ndGg8PTYwP2guZGVidWdfaW5mbys9IiAiK3k6aC5leHRyYV9kZWJ1Z19pbmZvPXk7aC5leHRyYV9kZWJ1Z19pbmZvX3N0eWxlPWguZXh0cmFfZGVidWdfaW5mbyYmaC5leHRyYV9kZWJ1Z19pbmZvLmxlbmd0aD4wPyIiOiJkaXNwbGF5Om5vbmUiOwpyZXR1cm4gaH07ClBfPWZ1bmN0aW9uKG4sVyxEKXtuLkorPVcuSjtuLnJhbmdlJiYobi5LKz1XLkspO24uaj1XLmo7bi5hWj1XLmFaO0QmJlcuYVomJihuLlc9Vy5XLG4uc2VnbWVudFN0YXJ0VGltZT1XLnNlZ21lbnRTdGFydFRpbWUsbi5YPW4uc2VnbWVudFN0YXJ0VGltZSxuLnJhbmdlfHwobi5LPW4uVykpfTsKWko9ZnVuY3Rpb24obixXKXt2YXIgRD1XLmokO24uWT0idXBkYXRlV2l0aFNlZ21lbnRJbmZvIjtuLmokPUQ7aWYobi5zZWdtZW50U3RhcnRUaW1lIT09Vy5zdGFydFRpbWV8fG4uVyE9PVcuZHVyYXRpb24pbi5zZWdtZW50U3RhcnRUaW1lPVcuc3RhcnRUaW1lLG4uVz1XLmR1cmF0aW9uLHZfKG4pfTsKVXY9ZnVuY3Rpb24obil7cmV0dXJuIWhKKG4uQXdbbi5Bdy5sZW5ndGgtMV0pfTsKeXM9ZnVuY3Rpb24obil7cmV0dXJuIG4uQXdbbi5Bdy5sZW5ndGgtMV0uY0ooKX07CmcuRXY9ZnVuY3Rpb24obixXLEQpe0Q9bi5wUz09PW51bGw/bi5YYi5wUyhXLEQsbi5Bd1swXS50eXBlKTpuLnBTO2lmKG4uTil7Vz1EP1hkKG4uTixXLm9NKTpuLk47dmFyIGI9bmV3IENzKFcpO2IuZ2V0KCJhbHIiKXx8Yi5zZXQoImFsciIsInllcyIpO24uSiYmWl8oYixuLkopfWVsc2UvaHR0cFtzXT86XC9cLy8udGVzdChuLkopP2I9bmV3IENzKG5ldyBnLndaKG4uSikpOihiPUJ3KG4uWGIsRCxXKSxuLkomJlpfKGIsbi5KKSk7KFc9bi5yYW5nZSk/Yi5zZXQoInJhbmdlIixXLnRvU3RyaW5nKCkpOm4uQXdbMF0uUEouRCgpJiZuLkF3Lmxlbmd0aD09PTEmJm4uQXdbMF0uTiYmYi5zZXQoInJhbmdlIixgJHtuLkF3WzBdLk59LWApO24ucmVxdWVzdElkJiZiLnNldCgicmVxX2lkIixuLnJlcXVlc3RJZCk7aXNOYU4obi5aQSl8fGIuc2V0KCJoZWFkbSIsbi5aQS50b1N0cmluZygpKTtpc05hTihuLmopfHxiLnNldCgibWZmYSIsYCR7bi5qfW1zYCk7bi51cmxQYXJhbXMmJmcuYV8obi51cmxQYXJhbXMsCih2LGspPT57Yi5zZXQoayx2KX0pOwpyZXR1cm4gYn07CmRrPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkcoKSx2PXtodG1sNVByZWZlcmVuY2U6IkhUTUw1X1BSRUZfV0FOVFMiLGxhY3RNaWxsaXNlY29uZHM6U3RyaW5nKGcudkkoKSkscmVmZXJlcjpkb2N1bWVudC5sb2NhdGlvbi50b1N0cmluZygpLHNpZ25hdHVyZVRpbWVzdGFtcDoyMDY1NX0saz1nLm85KCk7bi5pc0F1dG9uYXYmJih2LmF1dG9uYXY9ITApO2suUVEoMTQxKSYmKHYuYXV0b25hdlN0YXRlPWsuUVEoMTQwKT8iU1RBVEVfT0ZGIjoiU1RBVEVfT04iKTt2LmF1dG9DYXB0aW9uc0RlZmF1bHRPbj1rLlFRKDY2KTtpVChuKSYmKHYuYXV0b3BsYXk9ITApO2IuSyYmbi5jeWNUb2tlbiYmKHYuY3ljVG9rZW49bi5jeWNUb2tlbik7Yi5lbmFibGVQcml2YWN5RmlsdGVyJiYodi5lbmFibGVQcml2YWN5RmlsdGVyPSEwKTtuLmlzRmxpbmcmJih2LmZsaW5nPSEwKTt2YXIgaD1uLmZvcmNlQWRzVXJsO2lmKGgpe2s9e307dmFyIHg9W107aD1oLnNwbGl0KCIsIik7Zm9yKHZhciBMIG9mIGgpe3ZhciBlPQpMLnNwbGl0KCJ8Iik7ZS5sZW5ndGghPT0zfHxMLmluY2x1ZGVzKCI9Iil8fChlWzBdPWBicmVha3R5cGU9JHtlWzBdfWAsZVsxXT1gb2Zmc2V0PSR7ZVsxXX1gLGVbMl09YHVybD0ke2VbMl19YCk7aD17YWR0eXBlOiJ2aWRlb19hZCJ9O2Zvcih2YXIgRyBvZiBlKXtsZXQgW3osLi4uQ109Ry5zcGxpdCgiPSIpO2hbel09Qy5qb2luKCI9Iil9ZT1oLnVybDtsZXQgSD1oLnByZXNldGFkLEE9aC52aXJhbHJlc3BvbnNldXJsLHk9TnVtYmVyKGguY2FtcGFpZ25pZCksVD1oLmJpYmxpb3RlY2FhZGlkO2lmKGguYWR0eXBlPT09ImluX2Rpc3BsYXlfYWQiKWUmJihrLnVybD1lKSxIJiYoay5wcmVzZXRBZD1IKSxBJiYoay52aXJhbEFkUmVzcG9uc2VVcmw9QSkseSYmKGsudmlyYWxDYW1wYWlnbklkPVN0cmluZyh5KSksVCYmKGsuYmlibGlvdGVjYUFkSWQ9VCk7ZWxzZSBpZihoLmFkdHlwZT09PSJ2aWRlb19hZCIpe2xldCB6PXtvZmZzZXQ6e2tpbmQ6Ik9GRlNFVF9NSUxMSVNFQ09ORFMiLHZhbHVlOlN0cmluZyhOdW1iZXIoaC5vZmZzZXQpfHwKMCl9fTtpZihoPUNJWltoLmJyZWFrdHlwZV0pei5icmVha1R5cGU9aDtlJiYoei51cmw9ZSk7SCYmKHoucHJlc2V0QWQ9SCk7QSYmKHoudmlyYWxBZFJlc3BvbnNlVXJsPUEpO3kmJih6LnZpcmFsQ2FtcGFpZ25JZD1TdHJpbmcoeSkpO1QmJih6LmJpYmxpb3RlY2FBZElkPVQpO3gucHVzaCh6KX19T2JqZWN0LmtleXMoaykubGVuZ3RoPjA/di5mb3JjZUFkUGFyYW1ldGVycz17dmlkZW9BZHM6eCxpbkRpc3BsYXlBZDprfTp2LmZvcmNlQWRQYXJhbWV0ZXJzPXt2aWRlb0Fkczp4fX1uLmlzSW5saW5lUGxheWJhY2tOb0FkJiYodi5pc0lubGluZVBsYXliYWNrTm9BZD0hMCk7bi5pc0xpdmluZ1Jvb21EZWVwbGluayYmKHYuaXNMaXZpbmdSb29tRGVlcGxpbms9ITApO0w9bi5zUztpZihMIT1udWxsKXtMPXtzdGFydFdhbGx0aW1lOlN0cmluZyhMKX07aWYoRz1uLnptKUwubWFuaWZlc3REdXJhdGlvbj1TdHJpbmcoR3x8MTQ0MDApO3YubGl2ZUNvbnRleHQ9TH1uLm11dGVkQXV0b3BsYXkmJgoodi5tdXRlZEF1dG9wbGF5PSEwLEw9Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCksTD8uZW1iZWRzSG9zdEZsYWdzPy5hbGxvd011dGVkQXV0b3BsYXlEdXJhdGlvbk1vZGUmJkw/LmVtYmVkc0hvc3RGbGFncz8uYWxsb3dNdXRlZEF1dG9wbGF5RHVyYXRpb25Nb2RlLmluY2x1ZGVzKHVUW24ubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZV0pJiYodi5tdXRlZEF1dG9wbGF5RHVyYXRpb25Nb2RlPXVUW24ubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZV0pKTtpZihuLmZCPzA6bi5QWCl2LnNwbGF5PSEwO0w9bi52bmQ7TD09PTUmJih2LnZuZD1MKTtMPXt9O2lmKEc9bi5pc01keFBsYXliYWNrKUwudHJpZ2dlcmVkQnlNZHg9RztpZihHPW4uRmYpTC5za2lwcGFibGVBZHNTdXBwb3J0ZWQ9Ry5zcGxpdCgiLCIpLmluY2x1ZGVzKCJza2EiKTtpZih4PW4uVUspe0c9bi5jTDtrPVtdO2Zvcih2YXIgciBvZiBpSih4KSl7eD1yLnBsYXRmb3JtO3g9e2FwcGxpY2F0aW9uU3RhdGU6ci5Fcz8KIklOQUNUSVZFIjoiQUNUSVZFIixjbGllbnRGb3JtRmFjdG9yOkJEalt4XXx8IlVOS05PV05fRk9STV9GQUNUT1IiLGNsaWVudE5hbWU6dUpbci5oal18fCJVTktOT1dOX0lOVEVSRkFDRSIsY2xpZW50VmVyc2lvbjpyLmRldmljZVZlcnNpb258fCIiLHBsYXRmb3JtOkZoaVt4XXx8IlVOS05PV05fUExBVEZPUk0ifTtoPXt9O2lmKEcpe3ZhciBOPXZvaWQgMDt0cnl7Tj1KU09OLnBhcnNlKEcpfWNhdGNoKEgpe2cuR3EoSCl9TiYmKGg9e3BhcmFtczpbe2tleToibXMiLHZhbHVlOk4ubXN9XX0sTi5hZHZlcnRpc2luZ19pZCYmKGguYWR2ZXJ0aXNpbmdJZD1OLmFkdmVydGlzaW5nX2lkKSxOLmxpbWl0X2FkX3RyYWNraW5nIT09dm9pZCAwJiZOLmxpbWl0X2FkX3RyYWNraW5nIT09bnVsbCYmKGgubGltaXRBZFRyYWNraW5nPU4ubGltaXRfYWRfdHJhY2tpbmcpLHgub3NOYW1lPU4ub3NfbmFtZSx4LnVzZXJBZ2VudD1OLnVzZXJfYWdlbnQseC53aW5kb3dIZWlnaHRQb2ludHM9Ti53aW5kb3dfaGVpZ2h0X3BvaW50cywKeC53aW5kb3dXaWR0aFBvaW50cz1OLndpbmRvd193aWR0aF9wb2ludHMpfWsucHVzaCh7YWRTaWduYWxzSW5mbzpoLHJlbW90ZUNsaWVudDp4fSl9TC5yZW1vdGVDb250ZXh0cz1rfXI9bi5zb3VyY2VDb250YWluZXJQbGF5bGlzdElkO049bi5zZXJpYWxpemVkTWR4TWV0YWRhdGE7aWYocnx8TilHPXt9LHImJihHLm1keFBsYXliYWNrQ29udGFpbmVySW5mbz17c291cmNlQ29udGFpbmVyUGxheWxpc3RJZDpyfSksTiYmKEcuc2VyaWFsaXplZE1keE1ldGFkYXRhPU4pLEwubWR4UGxheWJhY2tTb3VyY2VDb250ZXh0PUc7di5tZHhDb250ZXh0PUw7cj1XLndpZHRoO3I+MCYmKHYucGxheWVyV2lkdGhQaXhlbHM9TWF0aC5yb3VuZChyKSk7aWYoVz1XLmhlaWdodCl2LnBsYXllckhlaWdodFBpeGVscz1NYXRoLnJvdW5kKFcpO0QhPT0wJiYodi52aXM9RCk7aWYoRD1iLndpZGdldFJlZmVycmVyKXYud2lkZ2V0UmVmZXJyZXI9RC5zdWJzdHJpbmcoMCwxMjgpO2cubzQoYikmJnYmJih2LmFuY2VzdG9yT3JpZ2lucz0KYi5hbmNlc3Rvck9yaWdpbnMpO24uZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQmJih2LmNvbXBvc2l0ZVZpZGVvQ29udGV4dD17ZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQ6bi5kZWZhdWx0QWN0aXZlU291cmNlVmlkZW9JZH0pO2lmKG49Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCkpdi5lbmNyeXB0ZWRIb3N0RmxhZ3M9bi5lbmNyeXB0ZWRIb3N0RmxhZ3M7cmV0dXJuIHZ9Owp6UD1mdW5jdGlvbihuKXtpZihuLnJhbmdlKXJldHVybiBuLlc7bj1uLkF3WzBdO3JldHVybiBNYXRoLnJvdW5kKG4uSypuLlBKLmluZm8uTnMpfTsKd0xVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIE1hdGgubWF4KDAsbi5Bd1swXS5YLVcpfTsKbFQ9ZnVuY3Rpb24obixXLEQpe2Zvcig7bjtuPW4ucGFyZW50Tm9kZSl7aWYoIW4uYXR0cmlidXRlc3x8RCYmbi5ub2RlTmFtZSE9PUQpY29udGludWU7bGV0IGI9bi5nZXRBdHRyaWJ1dGUoVyk7aWYoYilyZXR1cm4gYn1yZXR1cm4iIn07ClRQPWZ1bmN0aW9uKG4sVyl7Zm9yKDtuO249bi5wYXJlbnROb2RlKXtsZXQgRD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKFcpO2lmKEQubGVuZ3RoPjApcmV0dXJuIERbMF19cmV0dXJuIG51bGx9OwpqeD1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gMDt2YXIgVz1uLm1hdGNoKC9QVCgoWzAtOV0qKUgpPygoWzAtOV0qKU0pPygoWzAtOS5dKilTKT8vKTtyZXR1cm4gVz8oTnVtYmVyKFdbMl0pfDApKjM2MDArKE51bWJlcihXWzRdKXwwKSo2MCsoTnVtYmVyKFdbNl0pfDApOk51bWJlcihuKXwwfTsKQ3o9ZnVuY3Rpb24obil7cmV0dXJuIG4ubWF0Y2goL14oXGR7NH0pLShcZHsyfSktKFxkezJ9KVQoXGR7Mn0pOihcZHsyfSk6KFxkezJ9KVwuKFxkezN9KSQvKT9gJHtufVpgOm59OwpNZ009ZnVuY3Rpb24obil7dmFyIFc9bi5XO24uVz1bXTtyZXR1cm4gV307ClJBUz1mdW5jdGlvbihuKXtuLk58fChuLk49bmV3IEJfKTtyZXR1cm4gbi5OfTsKUVdNPWZ1bmN0aW9uKG4sVyl7bi5KW1ddfHwobi5KW1ddPW5ldyBCXyk7cmV0dXJuIG4uSltXXX07ClZnaT1mdW5jdGlvbihuLFcpe24uV1tXXXx8KG4uV1tXXT1uZXcgQl8pO3JldHVybiBuLldbV119OwpjSGo9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtXPUFycmF5LmZyb20oVy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRpbWVsaW5lIikpO2ZvcihsZXQgYiBvZiBXKXtXPWIucGFyZW50Tm9kZS5wYXJlbnROb2RlO2xldCB2PW51bGw7Vy5ub2RlTmFtZT09PSJQZXJpb2QiP3Y9UkFTKG4pOlcubm9kZU5hbWU9PT0iQWRhcHRhdGlvblNldCI/KFc9Vy5nZXRBdHRyaWJ1dGUoImlkIil8fFcuZ2V0QXR0cmlidXRlKCJtaW1ldHlwZSIpfHwiIix2PVFXTShuLFcpKTpXLm5vZGVOYW1lPT09IlJlcHJlc2VudGF0aW9uIiYmKFc9Vy5nZXRBdHRyaWJ1dGUoImlkIil8fCIiLHY9VmdpKG4sVykpO2lmKHY9PW51bGwpcmV0dXJuO3YudXBkYXRlKGIpO2cuUTIoRCxNZ00odikpfWcuUTIobi5YLEQpO3RVaChuLlgsYj0+Yi5zdGFydFNlY3MqMUUzK2IuTil9OwphRFU9ZnVuY3Rpb24obil7bi5OJiYobi5OLk49W10pO2cuYV8obi5KLFc9PntXLk49W119KTsKZy5hXyhuLlcsVz0+e1cuTj1bXX0pfTsKRng9ZnVuY3Rpb24obixXKXtyZXR1cm4gRGUobi5zZWdtZW50cyxEPT5XLUQuaiQpfTsKTUk9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uaW5kZXguVihXKSx2PW4uaW5kZXguZ2V0U3RhcnRUaW1lKFcpLGs9bi5pbmRleC5nZXREdXJhdGlvbihXKTtEP2s9RD0wOkQ9bi5pbmZvLk5zKms7cmV0dXJuIG5ldyB3ayhbbmV3IHFJKDMsbix2b2lkIDAsIm90ZkNyZWF0ZVJlcXVlc3RJbmZvRm9yU2VnbWVudCIsVyx2LGssMCxEKV0sYil9OwpuR1M9ZnVuY3Rpb24obixXKXtpZighbi5pbmRleC5pc0xvYWRlZCgpKXt2YXIgRD1bXSxiPVcuajtXPVcuSy5zcGxpdCgiLCIpLmZpbHRlcihlPT5lLmxlbmd0aD4wKTsKdmFyIHY9MCxrPTAsaD0wLHg9L14oXGQrKS8sTD0vcj0oXGQrKS87Zm9yKGxldCBlPTA7ZTxiO2UrKyl7aWYoaDw9MClpZihoPVcuc2hpZnQoKSxrPShrPXguZXhlYyhoKSk/K2tbMV0vMUUzOjApaD0oaD1MLmV4ZWMoaCkpPytoWzFdOjAsaCs9MTtlbHNlIHJldHVybjtELnB1c2gobmV3IFI0KGUsdixrLE5hTiwic3EvIisoZSsxKSkpO3YrPWs7aC0tfW4uaW5kZXguYXBwZW5kKEQpfX07CmcuY189ZnVuY3Rpb24obixXLC4uLkQpe2cuUXMoNSxuIGluc3RhbmNlb2YgZy5Wcz9uLnRhZzpuLFcsLi4uRCl9OwpnLlFzPWZ1bmN0aW9uKG4sVyxELC4uLmIpe3ZhciB2PW49PT02PyJFUlJPUiI6IldBUk5JTkciO0Q9YGIke0R9YDtnLlhqKG5ldyBnLlF4KEQsLi4uYiksdik7Yi51bnNoaWZ0KEQpO2I9Yi5qb2luKCIsICIpO3Y9YTQuZ2V0KFcpO2lmKCF2KXt2PWB5dHBsb2cuJHtXfWA7RD01O3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiYhaXNOYU4oK3dpbmRvdy5sb2NhbFN0b3JhZ2Vbdl0pJiYoRD0rd2luZG93LmxvY2FsU3RvcmFnZVt2XSksd2luZG93LnNlc3Npb25TdG9yYWdlJiYhaXNOYU4oK3dpbmRvdy5zZXNzaW9uU3RvcmFnZVt2XSkmJihEPSt3aW5kb3cuc2Vzc2lvblN0b3JhZ2Vbdl0pfWNhdGNoe31hNC5zZXQoVyxEKTt2PUR9bjx2fHwobj1XS3csdj1uLk4uZ2V0KFcpLHZ8fCh2PW5ldyBEODIsbi5OLnNldChXLHYpKSxuPXYsdj1EYXRlLm5vdygpLEQ9TWF0aC5mbG9vcigodi1uLkopKi4wMSksRD4wJiYobi5OPU1hdGgubWluKG4uTitELDEwKSxuLko9diksbi5OPjA/KG4uTi0tLG49CiEwKTpuPSExLG4/KHR5cGVvZiBiPT09ImZ1bmN0aW9uIiYmKGI9YigpKSxjb25zb2xlLmxvZyhgcGx5ci4ke1d9YCxiKSk6KGI9KG5NLmdldChXKT8/MCkrMSxuTS5zZXQoVyxiKSxiJTEwMD09PTEmJmNvbnNvbGUud2FybigicGx5ciIsYHBseXIuJHtXfSBpcyBjaGF0dHksIGRyb3BwaW5nIGxvZ3MuYCkpKX07CkRPPWZ1bmN0aW9uKG4pe2lmKCFuLkspe2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXt2YXIgVz1nLldSKG4pO3ZhciBEPWt4KFcsMCwxODM2MDE5NTc0KTtpZihEKXtEPUQub2Zmc2V0K0Quc2l6ZTt2YXIgYj1uZXcgVWludDhBcnJheShEKTtiLnNldChuZXcgVWludDhBcnJheShXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsRCkpO1c9Yn1lbHNlIFc9bnVsbH1lbHNlIFc9eUhyKG5ldyB0WShnLldSKG4pKSk7VyYmKG4uaW5mby5QSi5KPVcsbi5LPSEwKX19OwpnLldSPWZ1bmN0aW9uKG4pe3JldHVybiBHNihuLkopfTsKdlI9ZnVuY3Rpb24obixXKXtXPU1hdGgubWluKFcsbi5pbmZvLkopO3ZhciB7Q3M6RCxZOTpifT1uLkouc3BsaXQoVyksdj1uZXcgYjgobmV3IHFJKG4uaW5mby50eXBlLG4uaW5mby5QSixuLmluZm8ucmFuZ2Usbi5pbmZvLlksbi5pbmZvLmokLG4uaW5mby5zZWdtZW50U3RhcnRUaW1lLG4uaW5mby5XLG4uaW5mby5OLFcsITEsbi5pbmZvLnZELG4uaW5mby5jbGlwSWQsbi5pbmZvLkQpLEQpO3YuWD1uLlg7di5XPW4uVztXPW5ldyBiOChuZXcgcUkobi5pbmZvLnR5cGUsbi5pbmZvLlBKLG4uaW5mby5yYW5nZSxuLmluZm8uWSxuLmluZm8uaiQsbi5pbmZvLnNlZ21lbnRTdGFydFRpbWUsbi5pbmZvLlcsbi5pbmZvLk4rVyxuLmluZm8uSi1XLG4uaW5mby5hWixuLmluZm8udkQsbi5pbmZvLmNsaXBJZCxuLmluZm8uRCksYik7Vy5YPW4uWDtXLlc9bi5XO3JldHVyblt2LFddfTsKZy5rWD1mdW5jdGlvbihuKXtnLlJCKG4uaW5mby5QSi5pbmZvKXx8bi5pbmZvLlBKLmluZm8ucUgoKTtpZihuLlchPT0tMSlyZXR1cm4gbi5XO2lmKG4uTiYmakoobi5OKSlyZXR1cm4gbi5XPWpKKG4uTiksbi5XO2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXt2YXIgVz1nLldSKG4pO3ZhciBEPW4uaW5mby5QSi5KLGI9TmFOO2xldCB2PU5hTixrPTA7Zm9yKDtWTChXLGspOyl7bGV0IGg9Y0EoVyxrKTtoLnR5cGU9PT0xOTM2Mjg2ODQwP3Y9aC5kYXRhLmdldFVpbnQzMihoLmRhdGFPZmZzZXQrOCk6aC50eXBlPT09MTgzNjQ3NjUxNj92PWcuYkwoaCk6aC50eXBlPT09MTk1Mjg2NzQ0NCYmaXNOYU4oYikmJihiPWcueHgoaCkpO2s9YXIoaC50eXBlKT9rKzg6aytoLnNpemV9IXYmJkQmJih2PXZ3KEQpKTtXPWIvdn1lbHNlIFc9bmV3IHRZKGcuV1IobikpLEQ9bi5WP1c6bmV3IHRZKG5ldyBEYXRhVmlldyhuLmluZm8uUEouSi5idWZmZXIpKSxiPUtzKEQpLEQ9Vy5wb3MsVy5wb3M9MCxQdyhXKT8Kc1koVywyMzEpPyhiPWZzKFcpKmIvMUU5LFcucG9zPUQsVz1iKTooVy5wb3M9RCxXPU5hTik6KFcucG9zPUQsVz1OYU4pO24uVz1XfHxuLmluZm8uWDtyZXR1cm4gbi5XfTsKaE09ZnVuY3Rpb24obixXKXtnLlJCKG4uaW5mby5QSi5pbmZvKXx8bi5pbmZvLlBKLmluZm8ucUgoKTtuLlc9VztpZihnLlJCKG4uaW5mby5QSi5pbmZvKSl7dmFyIEQ9Zy5XUihuKTtuPW4uaW5mby5QSi5KO3ZhciBiPU5hTix2PU5hTjtsZXQgTD0wO2Zvcig7VkwoRCxMKTspe2xldCBlPWNBKEQsTCk7aXNOYU4oYikmJihlLnR5cGU9PT0xOTM2Mjg2ODQwP2I9ZS5kYXRhLmdldFVpbnQzMihlLmRhdGFPZmZzZXQrOCk6ZS50eXBlPT09MTgzNjQ3NjUxNiYmKGI9Zy5iTChlKSkpO2lmKGUudHlwZT09PTE5NTI4Njc0NDQpeyFiJiZuJiYoYj12dyhuKSk7dmFyIGs9Zy54eChlKTtpc05hTih2KSYmKHY9TWF0aC5yb3VuZChXKmIpLWspO3ZhciBoPWU7ays9djtpZihoLmRhdGEuZ2V0VWludDgoaC5kYXRhT2Zmc2V0KSl7dmFyIHg9aC5kYXRhO2g9aC5kYXRhT2Zmc2V0KzQ7eC5zZXRVaW50MzIoaCxNYXRoLmZsb29yKGsvNDI5NDk2NzI5NikpO3guc2V0VWludDMyKGgrNCxrJjQyOTQ5NjcyOTUpfWVsc2UgaC5kYXRhLnNldFVpbnQzMihoLmRhdGFPZmZzZXQrCjQsayl9TD1hcihlLnR5cGUpP0wrODpMK2Uuc2l6ZX1yZXR1cm4hMH1EPW5ldyB0WShnLldSKG4pKTtuPW4uVj9EOm5ldyB0WShuZXcgRGF0YVZpZXcobi5pbmZvLlBKLkouYnVmZmVyKSk7Yj1LcyhuKTtuPUQucG9zO0QucG9zPTA7aWYoUHcoRCkmJnNZKEQsMjMxKSlpZih2PU5rKEQsITApLFc9TWF0aC5mbG9vcihXKjFFOS9iKSxNYXRoLmNlaWwoTWF0aC5sb2coVykvTWF0aC5sb2coMikvOCk+dilXPSExO2Vsc2V7Zm9yKGI9di0xO2I+PTA7Yi0tKUQuTi5zZXRVaW50OChELnBvcytiLFcmMjU1KSxXPj4+PTg7RC5wb3M9bjtXPSEwfWVsc2UgVz0hMTtyZXR1cm4gV307CnhYPWZ1bmN0aW9uKG4sVyl7bi50aW1lc3RhbXBPZmZzZXQ+MCYmKFctPW4udGltZXN0YW1wT2Zmc2V0KTt2YXIgRD1nLmtYKG4pK1c7aE0obixEKTtuLnRpbWVzdGFtcE9mZnNldD1XfTsKTE09ZnVuY3Rpb24obil7Zy5SQihuLmluZm8uUEouaW5mbyl8fG4uaW5mby5QSi5pbmZvLnFIKCk7aWYobi5OJiZuLmluZm8udHlwZT09PTYpcmV0dXJuIG4uTi5yYjtpZihnLlJCKG4uaW5mby5QSi5pbmZvKSl7dmFyIFc9Zy5XUihuKTt2YXIgRD0wO1c9Zy5lUChXLDE5MzYyODY4NDApO2Zvcih2YXIgYiBvZiBXKVc9THMoYiksRCs9Vy5xZ1swXS9XLnRpbWVzY2FsZTtEPUR8fE5hTjtpZighKEQ+PTApKWE6e0Q9Zy5XUihuKTtiPW4uaW5mby5QSi5KO2xldCByPVc9MDtmb3IodmFyIHY9MDtWTChELFcpOyl7bGV0IE49Y0EoRCxXKTtpZihOLnR5cGU9PT0xODM2NDc2NTE2KXI9Zy5iTChOKTtlbHNlIGlmKE4udHlwZT09PTE4MzYwMTk1NTgpeyFyJiZiJiYocj12dyhiKSk7aWYoIXIpe0Q9TmFOO2JyZWFrIGF9dmFyIGs9a3goTi5kYXRhLE4uZGF0YU9mZnNldCwxOTUzNjUzMDk0KSxoPWs7az1yO3ZhciB4PWt4KGguZGF0YSxoLmRhdGFPZmZzZXQsMTk1Mjg2ODQ1Mik7aD1reChoLmRhdGEsCmguZGF0YU9mZnNldCwxOTUzNjU4MjIyKTt2YXIgTD15TCh4KTt5TCh4KTtMJjImJnlMKHgpO3g9TCY4P3lMKHgpOjA7dmFyIGU9eUwoaCksRz1lJjE7TD1lJjQ7bGV0IEg9ZSYyNTYsQT1lJjUxMix5PWUmMTAyNDtlJj0yMDQ4O2xldCBUPUVEKGgpO0cmJnlMKGgpO0wmJnlMKGgpO0c9MDtmb3IobGV0IHo9MDt6PFQ7eisrKXtsZXQgQz1IP3lMKGgpOng7QSYmeUwoaCk7TCYmej09PTB8fCF5fHx5TChoKTtlJiZ5TChoKTtHKz1DfXYrPUcva31XPWFyKE4udHlwZSk/Vys4OlcrTi5zaXplfUQ9dnx8TmFOfUR8fGcuR3EobmV3IGcuUXgoIk1pc3NpbmcgZHVyYXRpb24gd2hpbGUgcGFyc2luZyBibWZmIixuLmluZm8uZ2EoKSkpfWVsc2UgRD1uZXcgdFkoZy5XUihuKSksbj1uLlY/RDpuZXcgdFkobmV3IERhdGFWaWV3KG4uaW5mby5QSi5KLmJ1ZmZlcikpLEQ9RUVaKEQsS3MobikpO3JldHVybiBEfTsKZUc9ZnVuY3Rpb24obixXPSExKXt2YXIgRD1MTShuKTtuPVc/MDpuLmluZm8uSztyZXR1cm4gRHx8bn07CmcuZ3k9ZnVuY3Rpb24obil7aWYobi5pbmZvLlBKLlcoKSlyZXR1cm4gbi5pbmZvLlc7bi5YPT09LTEmJihuLlg9TE0obikpO3JldHVybiBuLlh8fG4uaW5mby5XfTsKWFo9ZnVuY3Rpb24obil7dmFyIFc9Zy5XUihuKSxEPWcubnMoVywwLDE5MzYyODY4NDApO0Q9RD9ELmRhdGEuZ2V0VWludDMyKEQuZGF0YU9mZnNldCs4KTpOYU47aXNOYU4oRCkmJihuPW4uaW5mby5QSi5KLEQ9KFc9Zy5ucyhXLDAsMTgzNjQ3NjUxNikpP2cuYkwoVyk6bj92dyhuKTpOYU4pO3JldHVybiBEfTsKcSQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uaW5mby5QSi5pbmZvLnFIKCkmJnJkKG4uSiwwKT09PTE2MH07CkdpPWZ1bmN0aW9uKG4pe2lmKCFuLk4pe2cuUkIobi5pbmZvLlBKLmluZm8pfHxuLmluZm8uUEouaW5mby5xSCgpO2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXZhciBXPWcucWsoZy5XUihuKSk7ZWxzZXtXPW5ldyB0WShnLldSKG4pKTtsZXQgYj1XLnBvcztXLnBvcz0wO2xldCB2PW51bGwsaz1udWxsO2lmKCR4KFcsWzQwODEyNTU0MywzMDc1NDQ5MzVdKSl7bGV0IGg9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczxoOyl7aWYoTmsoVywhMSkhPT0yOTU1NSl7SlkoVyk7Y29udGludWV9bGV0IHg9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczx4Oyl7aWYoTmsoVywhMSkhPT0yNjU2OCl7SlkoVyk7Y29udGludWV9bGV0IEw9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczxMOyl7dmFyIEQ9TmsoVywhMSk7aWYoRD09PTE3NTQzKXtpZihEPW10KFcpLEQ9UUwoRCkpaWYoaylmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoRCkpa1tlXT1EW2VdO2Vsc2Ugaz1EfWVsc2UgRD09PTE3ODI3PyhEPQptdChXKSx2fHwodj1EKSk6SlkoVyl9fX19Vy5wb3M9YjtXPWs/bmV3IFg1KGssdik6bnVsbH1uLk49V319Owp0TT1mdW5jdGlvbihuLFcpe3JldHVybiBXKzE8bi5jb3VudHx8bi5XP24ub2Zmc2V0c1tXKzFdLW4ub2Zmc2V0c1tXXTotMX07CiRYPWZ1bmN0aW9uKG4pe24ub2Zmc2V0cy5sZW5ndGg8bi5jb3VudCsxJiZuLnJlc2l6ZShuLm9mZnNldHMubGVuZ3RoKjIpfTsKcnk9ZnVuY3Rpb24obixXLEQpe24uY291bnQrKzskWChuKTtuLm9mZnNldHNbbi5jb3VudF09bi5vZmZzZXRzW24uY291bnQtMV0rVztuLnN0YXJ0VGlja3Nbbi5jb3VudF09bi5zdGFydFRpY2tzW24uY291bnQtMV0rRH07CnNOPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PVtdO2ZvcihsZXQgaz1XO2s8PW4uaW5kZXgueCQoKTtrKyspe2xldCBoPVdfKG4uaW5kZXguTihrKSx0TShuLmluZGV4LGspKSx4PW4uaW5kZXguZ2V0U3RhcnRUaW1lKGspLEw9bi5pbmRleC5nZXREdXJhdGlvbihrKSxlPU1hdGgubWF4KDAsRC1oLnN0YXJ0KSxHPU1hdGgubWluKGguZW5kKzEsRCtiKS0oaC5zdGFydCtlKTt2LnB1c2gobmV3IHFJKDMsbixoLCJnZXRSZXF1ZXN0SW5mb0ZvclJhbmdlIixrLHgsTCxlLEcpKTtpZihoLnN0YXJ0K2UrRz49RCtiKWJyZWFrfXYubGVuZ3RofHwobj1uZXcgZy5ReCgiYjE4OTYxOTU5MyIsYCR7V31gLGAke0R9YCxgJHtifWApLGcuWGoobikpO3JldHVybiBuZXcgd2sodil9OwpOJD1mdW5jdGlvbihuKXtpZihuPW4uY29sb3JJbmZvKWlmKG49bi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcylyZXR1cm4gYnFVW25dO3JldHVybiBudWxsfTsKWVg9ZnVuY3Rpb24obixXKXt2YXIgRD1NYXRoLm1heChuLFcpO249TWF0aC5taW4obixXKTtXPXBNWzBdO2ZvcihsZXQgYj0wO2I8cE0ubGVuZ3RoO2IrKyl7bGV0IHY9cE1bYl0saz1OR1t2XTtpZihEPj1NYXRoLmZsb29yKGsqMTYvOSkqMS4zfHxuPj1rKjEuMylyZXR1cm4gVztXPXZ9cmV0dXJuInRpbnkifTsKZk09ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBIUihuWzFdLG5bMl0sblszXSxuWzRdLG5bNV0sbls2XSxuWzddLG5bOF0sbls5XSxuWzEwXSl9OwpKTT1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmRleE9mKCIvbXA0Iik+PTA/MTpuLmluZGV4T2YoIi93ZWJtIik+PTA/MjpuLmluZGV4T2YoIi94LWZsdiIpPj0wPzM6bi5pbmRleE9mKCIvdnR0Iik+PTA/NDowfTsKSWQ9ZnVuY3Rpb24obil7cmV0dXJuLyhvcHVzfG1wNGF8ZHRzZXxhYy0zfGVjLTN8aWFtZikvLnRlc3Qobil9OwpTRz1mdW5jdGlvbihuKXtyZXR1cm4vKHZwOXx2cDA5fHZwOHxhdmMxfGF2MDF8YXYwMikvLnRlc3Qobil9OwpRUD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD1uZXcgQU07VyBpbiBOR3x8KFc9InNtYWxsIik7Vz09PSJsaWdodCImJihXPSJ0aW55Iik7YiYmdj8odj1OdW1iZXIodiksYj1OdW1iZXIoYikpOih2PU5HW1ddLGI9TWF0aC5yb3VuZCh2KjE2LzkpKTtrPW5ldyBIUihiLHYsMCxudWxsLHZvaWQgMCxXLGssaCk7bj11bmVzY2FwZShuLnJlcGxhY2UoLyZxdW90Oy9nLCciJykpO3JldHVybiBuZXcgbXUoRCxuLHthdWRpbzp4LHZpZGVvOmt9KX07Ck9OPWZ1bmN0aW9uKG4pe3ZhciBXPW5bN10sRD1uWzExXSxiPW5bOV0sdj1uWzhdO3JldHVybiBuZXcgbXUoblsxXSxuWzJdLHtYbjpuWzNdLE5zOm5bNF0sbGFzdE1vZGlmaWVkOm5bNV0sY29udGVudExlbmd0aDpuWzZdLGF1ZGlvOlc/bmV3IEFNKFdbMV0sV1syXSxXWzNdLFdbNF0sV1s1XSxXWzZdLFdbN10sV1s4XSk6dm9pZCAwLHZpZGVvOnY/Zk0odik6dm9pZCAwLGtaOmI/TUcoYik6dm9pZCAwLGNvbnRlbnRQcm90ZWN0aW9uOm5bMTBdLGNhcHRpb25UcmFjazpEP25ldyBLTShEWzFdLERbMl0sRFszXSxEWzRdLERbNV0sRFs2XSk6dm9pZCAwLHN0cmVhbVR5cGU6blsxMl0sQWE6blsxM10sYXBwcm94RHVyYXRpb25NczpuWzE0XX0pfTsKbUY9ZnVuY3Rpb24obil7cmV0dXJuIG4uSUI9PT0iTUFDMyJ8fG4uSUI9PT0iTUVBQzMifHxuLklCPT09Ik0ifHxuLklCPT09IkkifTsKS2c9ZnVuY3Rpb24obil7cmV0dXJuISFuLmNvbnRlbnRQcm90ZWN0aW9uJiYhIW4uY29udGVudFByb3RlY3Rpb24uZmFpcnBsYXkmJihuLklCPT09IigifHxuLklCPT09IihoInx8bi5JQj09PSJBInx8bi5JQj09PSJNRUFDMyIpfHxQUiYmISFuLmNvbnRlbnRQcm90ZWN0aW9uJiZuLklCPT09IjFlIn07CmcuUkI9ZnVuY3Rpb24obil7cmV0dXJuIG4uY29udGFpbmVyVHlwZT09PTF9OwpNMz1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCxlLEcscil7dmFyIE49V15uO3ZhciBIOyhuJjc2KT09biYmKEg9YihoLHgsTCxlLEcscikpOyhuPj4xJjE1KT09MSYmKEQ9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dLGJbSVszXV0oRCwxKSk7bis5Pj4zPT0zJiYoSD1kZWNvZGVVUklDb21wb25lbnQoRCkpO24tOTwyMyYmKG4+PjEmMTUpPj0xMyYmKERbTl41MjY0XTwoTl41MzQzKSYmKERbTl41MjcwXTw9LTEmJigoKDAsRFtOXjUzMjhdKShEW25ldyBEYXRlKElbTl41MzQ2XSkvKE5eNTk1MSldLERbTl41MjY4XSksRFtOXjUzNDVdKShEW05eNTM2MV0sRFtOXjUyNjhdKSwxKXx8KDAsRFtOXjUzNTFdKSgoMCxEW05eNTM0NF0pKERbTl41MzY2XSxEW05eNTMxOV0pLERbMV0sRFtOXjUzMjBdLERbTl41MzQ4XSkpLERbTl41MjY4XT49LTImJigoMCxEW05eNTM1MV0pKCgwLERbM10pKERbTl41MzcyXSwoMCxEW25ldyBEYXRlKElbNF0pLyhOXjU5NTEpXSkoKSxEW05eNTMxNV0pLApEW05eNTM1Nl0sRFtOXjUyNzFdLERbTl41MzY1XSksRFtOXjUzMjZdKShEW05eNTMyMV0sRFtOXjUzNTZdKSxEWzVdPD0tMiYmKERbTl41Mjc2XTwoTl41MzQxKXx8KCgoKDAsRFtOXjUzMjZdKShEW05eNTMxOV0sRFtOXjUzNzNdKSxEW05eNTI2OV0pKCgwLERbTl41MjY4XSkoRFtOXjUzNTNdLERbTl41MzQ3XSksRFtOXjUzMzZdLCgwLERbNF0pKCgwLERbTl41MzYyXSkoRFtOXjUzNDldLCgwLERbTl41Mjc2XSkoKSxEW05eNTM3NV0pLERbTl41MjY2XSxEW05eNTM1NV0sRFtOXjUzMjhdKSxEW05eNTM2MV0sRFswXSksRFtOXjUzMThdKShEW05eNTM3M10sRFtOXjUzNDBdKSxJW05eNTMxNF0pKSYmKCgwLERbTl41MzI2XSkoKCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbbmV3IERhdGUoSVtOXjUzNTNdKS8oTl41OTUxKV0pKCksRFtOXjUzNzBdKSxEW05eNTMyN10pKERbTl41MzQyXSksRFtOXjUzMTNdLCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbTl41MzI4XSkoKSwKRFtOXjUyNzBdKSxEW05eNTI3NF0sRFtOXjUzNDJdKSxEW05eNTMzNl0pKCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbTl41MzYyXSkoKSxEW05eNTM0OF0pLERbTl41MzI1XSxEW05eNTI2Nl0sRFtOXjUzNTldKSxIPVtdKTtyZXR1cm4gSH07CmcuVmY9ZnVuY3Rpb24obixXKXtyZXR1cm57aXRhZzorbi5pdGFnLGxtdDpXPzA6bi5sYXN0TW9kaWZpZWQseHRhZ3M6bi5KfHwiIn19OwpaTz1mdW5jdGlvbihuKXtyZXR1cm4gbi5JQj09PSI5aCJ8fG4uSUI9PT0iKGgifTsKVU49ZnVuY3Rpb24obil7cmV0dXJuIG4uSUI9PT0iKCJ8fG4uSUI9PT0iKGgifHxuLklCPT09IkgifHxQUiYmbi5JQj09PSIxZSJ9Owp2R1U9ZnVuY3Rpb24obixXPTEpe3ZhciBEPXt9O24udmlkZW8mJihuLnZpZGVvLndpZHRoJiYoRFtBVC5XSURUSC5uYW1lXT1uLnZpZGVvLndpZHRoKSxuLnZpZGVvLmhlaWdodCYmKERbQVQuSEVJR0hULm5hbWVdPW4udmlkZW8uaGVpZ2h0KSxuLnZpZGVvLmZwcyYmKERbQVQuRlJBTUVSQVRFLm5hbWVdPW4udmlkZW8uZnBzKlcpLG4udmlkZW8uTiYmKERbQVQuRU9URi5uYW1lXT1uLnZpZGVvLk4pLG4uTnMmJihEW0FULkJJVFJBVEUubmFtZV09bi5Ocyo4KlcpLG4uSUI9PT0iKCImJihEW0FULkNSWVBUT0JMT0NLRk9STUFULm5hbWVdPSJzdWJzYW1wbGUiKSxuLnZpZGVvLnByb2plY3Rpb25UeXBlPT09IkVRVUlSRUNUQU5HVUxBUiJ8fG4udmlkZW8ucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSX1RIUkVFRF9UT1BfQk9UVE9NInx8bi52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJNRVNIIikmJihEW0FULkRFQ09ERVRPVEVYVFVSRS5uYW1lXT0idHJ1ZSIpO24uYXVkaW8/Lm51bUNoYW5uZWxzJiYKbi5JQiE9PSJpIiYmbi5JQiE9PSJJIiYmKERbQVQuQ0hBTk5FTFMubmFtZV09bi5hdWRpby5udW1DaGFubmVscyk7cmV0dXJuIER9Owp5VD1mdW5jdGlvbihuLFcpe249biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dmFyIEQ9IiI7dHJ5e0Q9SlNPTi5zdHJpbmdpZnkoVyl9Y2F0Y2goYil7RD0iZmFpbGVkIHRvIHN0cmluZ2lmeSBjb25maWcifWcuY18oImRhc2giLDUxOTE5NjY0OSxuLEQpfTsKazNyPWZ1bmN0aW9uKG4pe3ZhciBXPW5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcztpZighVz8uZGVjb2RpbmdJbmZvfHxuLklCPT09ImYiKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgRD17dHlwZTpuLmF1ZGlvJiZuLnZpZGVvPyJmaWxlIjoibWVkaWEtc291cmNlIn07bi52aWRlbyYmKEQudmlkZW89e2NvbnRlbnRUeXBlOm4ubWltZVR5cGUsd2lkdGg6bi52aWRlby53aWR0aHx8NjQwLGhlaWdodDpuLnZpZGVvLmhlaWdodHx8MzYwLGJpdHJhdGU6bi5Ocyo4fHwxRTYsZnJhbWVyYXRlOm4udmlkZW8uZnBzfHwzMH0pO24uYXVkaW8mJihELmF1ZGlvPXtjb250ZW50VHlwZTpuLm1pbWVUeXBlLGNoYW5uZWxzOmAke24uYXVkaW8ubnVtQ2hhbm5lbHN8fDJ9YCxiaXRyYXRlOm4uTnMqOHx8MTI4RTMsc2FtcGxlcmF0ZTpuLmF1ZGlvLnNhbXBsZVJhdGV8fDQ0MTAwfSk7aWYoRU4pdHJ5e3JldHVybiBXLmRlY29kaW5nSW5mbyhEKS50aGVuKGI9PntuLmo9Yn0pLmNhdGNoKGI9Pgp7eVQoYixEKX0pfWNhdGNoKGIpe3JldHVybiB5VChiLEQpLFByb21pc2UucmVzb2x2ZSgpfXJldHVybiBXLmRlY29kaW5nSW5mbyhEKS50aGVuKGI9PntuLmo9Yn0pfTsKaTg9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dC5wbGF5ZXIudXRpbHMudmlkZW9FbGVtZW50XyIpO258fChuPWcuekYoIlZJREVPIiksZy5HYigieXQucGxheWVyLnV0aWxzLnZpZGVvRWxlbWVudF8iLG4pKTtyZXR1cm4gbn07CnU4PWZ1bmN0aW9uKG4pe3ZhciBXPWk4KCk7cmV0dXJuISEoVyYmVy5jYW5QbGF5VHlwZSYmVy5jYW5QbGF5VHlwZShuKSl9OwpkeT1mdW5jdGlvbihuKXtpZigvb3B1cy8udGVzdChuKSYmZy5vZCYmIUNfKCIzOCIpJiYhZy5kOCgpKXJldHVybiExO2lmKHNlbGYuTWVkaWFTb3VyY2UmJnNlbGYuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKXJldHVybiBzZWxmLk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChuKTtpZihzZWxmLk1hbmFnZWRNZWRpYVNvdXJjZSYmc2VsZi5NYW5hZ2VkTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKXJldHVybiBzZWxmLk1hbmFnZWRNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobik7aWYoL3dlYm0vLnRlc3QobikmJiFUUSgpKXJldHVybiExO249PT0nYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInJiYobj0ndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNGQ0MDFmIicpO3JldHVybiEhdTgobil9OwpoZ1M9ZnVuY3Rpb24obil7dHJ5e2xldCBXPWR5KCd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MjAwMUUiJyl8fGR5KCd2aWRlby93ZWJtOyBjb2RlY3M9InZwOSInKTtyZXR1cm4oZHkoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyl8fGR5KCdhdWRpby93ZWJtOyBjb2RlY3M9Im9wdXMiJykpJiYoV3x8IW4pfHx1OCgndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDIwMDFFLCBtcDRhLjQwLjIiJyk/bnVsbDoiZm10Lm5vbmVhdmFpbGFibGUifWNhdGNoe3JldHVybiJodG1sNS5taXNzaW5nYXBpIn19Owp6aT1mdW5jdGlvbigpe3ZhciBuPWk4KCk7cmV0dXJuISghbi53ZWJraXRTdXBwb3J0c1ByZXNlbnRhdGlvbk1vZGV8fHR5cGVvZiBuLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUhPT0iZnVuY3Rpb24iKX07Cmw4PWZ1bmN0aW9uKCl7dmFyIG49aTgoKTt0cnl7bGV0IFc9bi5tdXRlZDtuLm11dGVkPSFXO3JldHVybiBuLm11dGVkIT09V31jYXRjaHt9cmV0dXJuITF9OwpUaT1mdW5jdGlvbihuLFcpe3JldHVybntzdGFydChEKXtyZXR1cm4gbltEXX0sZW5kKEQpe3JldHVybiBXW0RdfSxsZW5ndGg6bi5sZW5ndGh9fTsKakc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdLHY9W107Zm9yKGxldCBrPTA7azxuLmxlbmd0aDtrKyspYi5wdXNoKG4uc3RhcnQoaykpLHYucHVzaChuLmVuZChrKSk7Yi5wdXNoKFcpO3YucHVzaChEKTtiLnNvcnQoKGssaCk9PmstaCk7CnYuc29ydCgoayxoKT0+ay1oKTsKcmV0dXJuIFRpKGIsdil9Owpyaz1mdW5jdGlvbihuLFc9IiwiLEQ9bj9uLmxlbmd0aDowKXt2YXIgYj1bXTtpZihuKWZvcihEPU1hdGgubWF4KG4ubGVuZ3RoLUQsMCk7RDxuLmxlbmd0aDtEKyspYi5wdXNoKGAke24uc3RhcnQoRCkudG9GaXhlZCgzKX0tJHtuLmVuZChEKS50b0ZpeGVkKDMpfWApO3JldHVybiBiLmpvaW4oVyl9OwpDTT1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybi0xO3RyeXtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylpZihuLnN0YXJ0KEQpPD1XJiZuLmVuZChEKT49VylyZXR1cm4gRH1jYXRjaChEKXt9cmV0dXJuLTF9OwpCUj1mdW5jdGlvbihuLFcpe3JldHVybiBDTShuLFcpPj0wfTsKeDhqPWZ1bmN0aW9uKG4sVyl7aWYoIW4pcmV0dXJuIE5hTjtXPUNNKG4sVyk7cmV0dXJuIFc+PTA/bi5zdGFydChXKTpOYU59OwpGWj1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybiBOYU47Vz1DTShuLFcpO3JldHVybiBXPj0wP24uZW5kKFcpOk5hTn07Cmcud3k9ZnVuY3Rpb24obil7cmV0dXJuIG4mJm4ubGVuZ3RoP24uZW5kKG4ubGVuZ3RoLTEpOk5hTn07Ck0kPWZ1bmN0aW9uKG4pe3JldHVybiBnLnd5KG4pPjB9OwpSZD1mdW5jdGlvbihuLFcpe249RloobixXKTtyZXR1cm4gbj49MD9uLVc6MH07ClFUPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXSx2PVtdO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7aysrKW4uZW5kKGspPFd8fG4uc3RhcnQoayk+RHx8KGIucHVzaChNYXRoLm1heChXLG4uc3RhcnQoaykpLVcpLHYucHVzaChNYXRoLm1pbihELG4uZW5kKGspKS1XKSk7cmV0dXJuIFRpKGIsdil9OwpWVD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuU291cmNlQnVmZmVyPyEhU291cmNlQnVmZmVyLnByb3RvdHlwZS5jaGFuZ2VUeXBlOiExfTsKY1I9ZnVuY3Rpb24oKXtyZXR1cm4hISh3aW5kb3cuTWVkaWFTb3VyY2V8fHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2V8fHdpbmRvdy5XZWJLaXRNZWRpYVNvdXJjZXx8d2luZG93LkhUTUxNZWRpYUVsZW1lbnQmJkhUTUxNZWRpYUVsZW1lbnQucHJvdG90eXBlLndlYmtpdFNvdXJjZUFkZElkKX07CmFkPWZ1bmN0aW9uKCl7cmV0dXJuISghd2luZG93Lk1lZGlhU291cmNlfHwhd2luZG93Lk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCl8fHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2V9OwpuNj1mdW5jdGlvbihuKXt0cnl7cmV0dXJuIG4uVygpPT09Im9wZW4ifWNhdGNoKFcpe3JldHVybiExfX07CldGPWZ1bmN0aW9uKG4sVyl7bjYobik/Zy5tSygoKT0+e1cobil9KTpuLmNhbGxiYWNrPVd9Owp2Rj1mdW5jdGlvbihuLFcsRCl7REgmJihiQShuLm1lZGlhRWxlbWVudCx7bDoibXN3c3NiIixzcjpuLm1lZGlhRWxlbWVudC5ZYT8ucGcoKX0sITEpLFcuaCQobi5MTCxuKSxELmgkKG4uTEwsbikpO24uTj1XO24uSj1EO2cudShuLFcpO2cudShuLEQpfTsKTEtVPWZ1bmN0aW9uKG4sVyxELGI9IiIpe2I9Vy5taW1lVHlwZStiO3ZhciB2PUQubWltZVR5cGU7Vz1XLklCO0Q9RC5JQjtuLlZRPW4ubWVkaWFTb3VyY2U/LmFkZFNvdXJjZUJ1ZmZlcih2KTtuLmUkPWIuc3BsaXQoIjsiKVswXT09PSJmYWtlc2IiP3ZvaWQgMDpuLm1lZGlhU291cmNlPy5hZGRTb3VyY2VCdWZmZXIoYik7bi5FViYmKG4uRVYud2Via2l0U291cmNlQWRkSWQoIjAiLHYpLG4uRVYud2Via2l0U291cmNlQWRkSWQoIjEiLGIpKTtEPW5ldyBrZyhuLlZRLG4uRVYsIjAiLEpNKHYpLEQsITEpO2I9bmV3IGtnKG4uZSQsbi5FViwiMSIsSk0oYiksVywhMCk7dkYobixELGIpfTsKTDY9ZnVuY3Rpb24obixXLEQsYil7aWYoIW4uTnx8IW4uSilyZXR1cm4gbnVsbDt2YXIgdj1uLk4uaXNWaWV3KCk/bi5OLmskOm4uTixrPW4uSi5pc1ZpZXcoKT9uLkouayQ6bi5KLGg9bmV3IGhaKG4ubWVkaWFFbGVtZW50LG4ubWVkaWFTb3VyY2UsITApO2guaj1uLmo7dkYoaCxuZXcgeGcodixXLEQsYiksbmV3IHhnKGssVyxELGIpKTtuNihuKXx8bi5OLnlPKG4uTi5TVygpKTtyZXR1cm4gaH07CmVnMT1mdW5jdGlvbihuKXtyZXR1cm4gZTQoKFcsRCk9Pmcuc3ooVyxELDQsMUUzKSxuLHtmb3JtYXQ6IlJBVyIsCm1ldGhvZDoiR0VUIix3aXRoQ3JlZGVudGlhbHM6ITB9KX07CmcuZ3Q9ZnVuY3Rpb24obil7dmFyIFc7bi5yZXNwb25zZVR5cGUmJm4ucmVzcG9uc2VUeXBlIT09InRleHQiP24ucmVzcG9uc2VUeXBlPT09ImFycmF5YnVmZmVyIiYmKFc9cFIobmV3IFVpbnQ4QXJyYXkobi5yZXNwb25zZSkpKTpXPW4ucmVzcG9uc2VUZXh0O3JldHVybiFXfHxXLmxlbmd0aD4yMDQ4PyIiOlcuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTA/VzoiIn07CmU0PWZ1bmN0aW9uKG4sVyxEKXtXLm1hdGNoKGdHcik7cmV0dXJuIG4oVyxEKS50aGVuKGI9Pnt2YXIgdj1nLmd0KGIueGhyKTtyZXR1cm4gdj9lNChuLHYsRCk6Yi54aHJ9KX07ClhKaT1mdW5jdGlvbihuLFcsRCl7aWYoIW4/LldjKCkpcmV0dXJuITE7dmFyIGI9Vy5zb21lKGg9PmgucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSInx8aC5wcm9qZWN0aW9uVHlwZT09PSJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iKSx2PVcuc29tZShoPT5oLnByb2plY3Rpb25UeXBlPT09Ik1FU0giKSxrPVcuc29tZShoPT5oLnN0ZXJlb0xheW91dD09PTEpOwpXPVcuc29tZShoPT5oLmlzSGRyKCkpOwpuPSFEJiYhVyYmbi5TKCJlbmFibGVfd2ViZ2xfbm9vcCIpO3JldHVybiBifHx2fHxrfHxufTsKcXo9ZnVuY3Rpb24obixXLEQsYil7aWYoWEppKG4sVyxEKSlyZXR1cm4hMDtpZighbj8udE0oKXx8IVh2KG4sYikpcmV0dXJuITE7bj1XLnNvbWUodj0+di5pc0hkcigpKTsKcmV0dXJuIER8fG4/ITE6ITB9OwpxdWo9ZnVuY3Rpb24obil7cmV0dXJuIGcub00obixXPT4iRk9STUFUX1NUUkVBTV9UWVBFX09URiI9PT1XLnR5cGUpPyJGT1JNQVRfU1RSRUFNX1RZUEVfT1RGIjoiRk9STUFUX1NUUkVBTV9UWVBFX1VOS05PV04ifTsKRzNDPWZ1bmN0aW9uKG4sVyxEPTAsYix2KXt2YXIgaz1uZXcgZy5HeCgiIixiLmV4cGVyaW1lbnRzLCExKTtrLmR1cmF0aW9uPUR8fDA7Zm9yKGxldCBoIG9mIG4pe249dFooaCxXLGsuZHVyYXRpb24sYix2KTtsZXQge0VsOngsczpMLHk3OmV9PVAwKDE1LDcwMCxoKTsoRD1SeCh4fHxoLnVybHx8IiIsZSxMKSkmJihuLnN0cmVhbVR5cGU9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/JGcoayxuZXcgcnQoRCxuKSk6JGcoayxuZXcgc2soRCxuLERKKGguaW5pdFJhbmdlKSxESihoLmluZGV4UmFuZ2UpKSkpfWsuaXNPdGY9ITA7cmV0dXJuIGt9Owp0T1o9ZnVuY3Rpb24obixXLEQ9MCxiLHYpe3ZhciBrPW5ldyBnLkd4KCIiLGIuZXhwZXJpbWVudHMsITEpO2suZHVyYXRpb249RHx8MDtmb3IobGV0IGggb2Ygbil7bj10WihoLFcsay5kdXJhdGlvbixiLHYpO0Q9REooaC5pbml0UmFuZ2UpO2xldCB4PURKKGguaW5kZXhSYW5nZSkse0VsOkwsczplLHk3Okd9PVAwKDEzLDcwMixoKSxyPVJ4KEx8fGgudXJsfHwiIixHLGUpO3ImJiRnKGssbmV3IHNrKHIsbixELHgpKX1yZXR1cm4ga307CnRaPWZ1bmN0aW9uKG4sVyxEPTAsYix2KXt2YXIgaz1uLm1pbWVUeXBlfHwiIixoPW4uaXRhZzt2YXIgeD1uLnh0YWdzO2g9aD9oLnRvU3RyaW5nKCk6IiI7eCYmKGgrPWA7JHt4fWApO3g9aDtpZihTRyhrKSl7dmFyIEw9bi53aWR0aHx8NjQwO2g9bi5oZWlnaHR8fDM2MDtsZXQgeT1uLmZwcyxUPW4ucXVhbGl0eUxhYmVsLHo9bi5xdWFsaXR5T3JkaW5hbCxDPW4uY29sb3JJbmZvLFE9bi5wcm9qZWN0aW9uVHlwZTt2YXIgZTtuLnN0ZXJlb0xheW91dCYmKGU9JDh4W24uc3RlcmVvTGF5b3V0XSk7bGV0IFY9TiQobil8fHZvaWQgMDt2YXIgRztDPy5wcmltYXJpZXMmJihHPXIkeFtDLnByaW1hcmllc118fHZvaWQgMCk7TD1uZXcgSFIoTCxoLHksUSxlLHZvaWQgMCxULHomJk56W3pdLFYsRywobi52aWRlb1RyYWNrPy5hc3NvY2lhdGVkQXVkaW9UcmFja0lkPy5sZW5ndGg/PzApPT09MCk7az1wNihrLEwsWWdbbi5pdGFnfHwiIl0pO0hGJiYoays9IjsgZW5hYmxlZmx1c2hkdXJpbmdzZWVrPXRydWUiKTsKZjYmJihrKz0iOyBlbmFibGVyZXNldGF1ZGlvZGVjb2Rlcj10cnVlIik7cXooYixbTF0sVyx2KSYmKGsrPSI7IGRlY29kZS10by10ZXh0dXJlPXRydWUiKX12YXIgcjtpZihJZChrKSl7dmFyIE49bi5hdWRpb1NhbXBsZVJhdGU7Yj1uLmF1ZGlvVHJhY2s7Tj1uZXcgQU0oTj8rTjp2b2lkIDAsbi5hdWRpb0NoYW5uZWxzLG4uc3BhdGlhbEF1ZGlvVHlwZSxuLmlzRHJjLG4ubG91ZG5lc3NEYixuLnRyYWNrQWJzb2x1dGVMb3VkbmVzc0xrZnMsbi5hdWRpb1F1YWxpdHl8fCJBVURJT19RVUFMSVRZX1VOS05PV04iLG4uaXNWYik7YiYmKHY9Yi5kaXNwbGF5TmFtZSxlPWIuaWQsRz1iLmF1ZGlvSXNEZWZhdWx0LGI9Yi5pc0F1dG9EdWJiZWQsdiYmKHI9bmV3IHdQKHYsZXx8IiIsISFHLCEhYikpKX12YXIgSDtuLmNhcHRpb25UcmFjayYmKGI9bi5jYXB0aW9uVHJhY2suZGlzcGxheU5hbWUsdj1uLmNhcHRpb25UcmFjay52c3NJZCxlPW4uY2FwdGlvblRyYWNrLmxhbmd1YWdlQ29kZSxHPW4uY2FwdGlvblRyYWNrLmtpbmQsCmg9bi5jYXB0aW9uVHJhY2suaWQsYiYmdiYmZSYmKEg9bmV3IEtNKGIsdixlLEcsbi54dGFncyxoKSkpO2I9TnVtYmVyKG4uYml0cmF0ZSkvODt2PU51bWJlcihuLmNvbnRlbnRMZW5ndGgpO2U9TnVtYmVyKG4ubGFzdE1vZGlmaWVkKTtoPW4uZHJtRmFtaWxpZXM7Rz1uLnR5cGU7bj1OdW1iZXIobi5hcHByb3hEdXJhdGlvbk1zKTtpZihXJiZoKXt2YXIgQT17fTtmb3IobGV0IHkgb2YgaCkoaD1KWlt5XSkmJihBW2hdPVdbaF0pfXJldHVybiBuZXcgbXUoeCxrLHthdWRpbzpOLHZpZGVvOkwsa1o6cixjb250ZW50UHJvdGVjdGlvbjpBLE5zOmIsWG46RCYmdj92L0Q6MCxjb250ZW50TGVuZ3RoOnYsbGFzdE1vZGlmaWVkOmUsY2FwdGlvblRyYWNrOkgsc3RyZWFtVHlwZTpHLGFwcHJveER1cmF0aW9uTXM6bn0pfTsKczVVPWZ1bmN0aW9uKG4pe3JldHVybiBnLm9NKG4sVz0+IkZPUk1BVF9TVFJFQU1fVFlQRV9PVEYiPT09Vy5zdHJlYW1fdHlwZSk/IkZPUk1BVF9TVFJFQU1fVFlQRV9PVEYiOiJGT1JNQVRfU1RSRUFNX1RZUEVfVU5LTk9XTiJ9OwpOcGo9ZnVuY3Rpb24obixXLEQ9MCxiLHYpe3ZhciBrPW5ldyBnLkd4KCIiLGI/LmV4cGVyaW1lbnRzLCExKTtrLmR1cmF0aW9uPUR8fDA7Zm9yKGxldCBoIG9mIG4paWYobj1JbyhoLFcsay5kdXJhdGlvbixiLHYpLEQ9UngoaC51cmwsaC5zcCxoLnMpKWlmKG4uc3RyZWFtVHlwZT09PSJGT1JNQVRfU1RSRUFNX1RZUEVfT1RGIikkZyhrLG5ldyBydChELG4pKTtlbHNle2xldCB4PW56KGguaW5pdCksTD1ueihoLmluZGV4KTskZyhrLG5ldyBzayhELG4seCxMKSl9ay5pc090Zj0hMDtyZXR1cm4ga307CnBKYj1mdW5jdGlvbihuLFcsRD0wLGIsdil7dmFyIGs9bmV3IGcuR3goIiIsYj8uZXhwZXJpbWVudHMsITEpO2suZHVyYXRpb249RHx8MDtmb3IobGV0IGggb2Ygbil7bj1JbyhoLFcsay5kdXJhdGlvbixiLHYpO0Q9bnooaC5pbml0KTtsZXQgeD1ueihoLmluZGV4KSxMPVJ4KGgudXJsLGguc3AsaC5zKTtMJiYkZyhrLG5ldyBzayhMLG4sRCx4KSl9cmV0dXJuIGt9OwpJbz1mdW5jdGlvbihuLFcsRD0wLGIsdil7dmFyIGs9bi50eXBlO3ZhciBoPW4uaXRhZzt2YXIgeD1uLnh0YWdzO3gmJihoPW4uaXRhZysiOyIreCk7aWYoU0coaykpe3ZhciBMPShuLnNpemV8fCI2NDB4MzYwIikuc3BsaXQoIngiKTtMPW5ldyBIUigrTFswXSwrTFsxXSwrbi5mcHMsbi5wcm9qZWN0aW9uX3R5cGUsK24uc3RlcmVvX2xheW91dCx2b2lkIDAsbi5xdWFsaXR5X2xhYmVsLCtuLnF1YWxpdHlfb3JkaW5hbCxuLmVvdGYsbi5wcmltYXJpZXMsIW4udmlkZW9fdHJhY2tfYXNzb2NpYXRlZF9hdWRpb190cmFja19pZCk7az1wNihrLEwsWWdbbi5pdGFnXSk7SEYmJihrKz0iOyBlbmFibGVmbHVzaGR1cmluZ3NlZWs9dHJ1ZSIpO2Y2JiYoays9IjsgZW5hYmxlcmVzZXRhdWRpb2RlY29kZXI9dHJ1ZSIpO3F6KGIsW0xdLFcsdikmJihrKz0iOyBkZWNvZGUtdG8tdGV4dHVyZT10cnVlIil9dmFyIGU7aWYoSWQoaykpe3ZhciBHPW5ldyBBTSgrbi5hdWRpb19zYW1wbGVfcmF0ZXx8dm9pZCAwLAorbi5hdWRpb19jaGFubmVsc3x8MCxuLnNwYXRpYWxfYXVkaW9fdHlwZSwhIW4uZHJjKTtuLm5hbWUmJihlPW5ldyB3UChuLm5hbWUsbi5hdWRpb190cmFja19pZCxuLmlzRGVmYXVsdD09PSIxIixuLmlzQXV0b0R1YmJlZD09PSIxIikpfXZhciByO24uY2FwdGlvbl9kaXNwbGF5X25hbWUmJm4uY2FwdGlvbl92c3NfaWQmJm4uY2FwdGlvbl9sYW5ndWFnZV9jb2RlJiYocj1uZXcgS00obi5jYXB0aW9uX2Rpc3BsYXlfbmFtZSxuLmNhcHRpb25fdnNzX2lkLG4uY2FwdGlvbl9sYW5ndWFnZV9jb2RlLG4uY2FwdGlvbl9raW5kLG4ueHRhZ3Msbi5jYXB0aW9uX2lkKSk7Yj1OdW1iZXIobi5iaXRyYXRlKS84O3Y9TnVtYmVyKG4uY2xlbik7eD1OdW1iZXIobi5sbXQpO0Q9RCYmdj92L0Q6MDtpZihXJiZuLmRybV9mYW1pbGllcyl7dmFyIE49e307Zm9yKGxldCBIIG9mIG4uZHJtX2ZhbWlsaWVzLnNwbGl0KCIsIikpTltIXT1XW0hdfXJldHVybiBuZXcgbXUoaCxrLHthdWRpbzpHLHZpZGVvOkwsCmtaOmUsY29udGVudFByb3RlY3Rpb246TixOczpiLFhuOkQsY29udGVudExlbmd0aDp2LGxhc3RNb2RpZmllZDp4LGNhcHRpb25UcmFjazpyLHN0cmVhbVR5cGU6bi5zdHJlYW1fdHlwZSxhcHByb3hEdXJhdGlvbk1zOk51bWJlcihuLmFwcHJveF9kdXJhdGlvbl9tcyl9KX07Cll1aD1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSAiZXF1aXJlY3Rhbmd1bGFyIjpyZXR1cm4iRVFVSVJFQ1RBTkdVTEFSIjtjYXNlICJlcXVpcmVjdGFuZ3VsYXJfdGhyZWVkX3RvcF9ib3R0b20iOnJldHVybiJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iO2Nhc2UgIm1lc2giOnJldHVybiJNRVNIIjtjYXNlICJyZWN0YW5ndWxhciI6cmV0dXJuIlJFQ1RBTkdVTEFSIjtkZWZhdWx0OnJldHVybiJVTktOT1dOIn19OwpIcWg9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgInNwYXRpYWxfYXVkaW9fdHlwZV9hbWJpc29uaWNzXzVfMSI6cmV0dXJuIlNQQVRJQUxfQVVESU9fVFlQRV9BTUJJU09OSUNTXzVfMSI7Y2FzZSAic3BhdGlhbF9hdWRpb190eXBlX2FtYmlzb25pY3NfcXVhZCI6cmV0dXJuIlNQQVRJQUxfQVVESU9fVFlQRV9BTUJJU09OSUNTX1FVQUQiO2Nhc2UgInNwYXRpYWxfYXVkaW9fdHlwZV9mb2Ffd2l0aF9ub25fZGllZ2V0aWMiOnJldHVybiJTUEFUSUFMX0FVRElPX1RZUEVfRk9BX1dJVEhfTk9OX0RJRUdFVElDIjtkZWZhdWx0OnJldHVybiJTUEFUSUFMX0FVRElPX1RZUEVfTk9ORSJ9fTsKZnRaPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUzQobmV3IGcuR3gobixXLEQpLG4pfTsKR189ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PmdaKDI0LDExNjQsVy5YYi5OKSl9OwpmRHc9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PiEhVy5pbmZvLnZpZGVvJiZXLmluZm8udmlkZW8uaXNIZHIoKSl9OwokZz1mdW5jdGlvbihuLFcpe24uTltXLmluZm8uaWRdPVc7bi5KLnNldChjdyhXLG4uelcpLFcpfTsKUzQ9ZnVuY3Rpb24obixXPSIiKXtuLnN0YXRlPTE7bi5TJD0oMCxnLlIpKCk7cmV0dXJuIGVnMShXfHxuLnNvdXJjZVVybCkudGhlbihEPT57aWYoIW4ucU4oKSl7bi5sTj1ELnN0YXR1cztEPUQucmVzcG9uc2VUZXh0O2xldCB2PW5ldyBET01QYXJzZXI7RD1nLmdUKHYsZy5IVihEKSwidGV4dC94bWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTVBEIilbMF07bi5jSj1qeChsVChELCJtaW5pbXVtVXBkYXRlUGVyaW9kIikpKjFFM3x8SW5maW5pdHk7Yjp7aWYoRC5hdHRyaWJ1dGVzKWZvcihiIG9mIEQuYXR0cmlidXRlcylpZihiLnZhbHVlPT09Imh0dHA6Ly95b3V0dWJlLmNvbS95dC8yMDEyLzEwLzEwIil7dmFyIGI9Yi5uYW1lLnNwbGl0KCI6IilbMV07YnJlYWsgYn1iPSIifW4uaj1iO24uaXNMaXZlPW4uY0o8SW5maW5pdHkmJm4uaXNMaXZlUGxheWJhY2s7bi5ISj1OdW1iZXIobFQoRCxuLmorIjplYXJsaWVzdE1lZGlhU2VxdWVuY2UiKSl8fDA7aWYoYj1EYXRlLnBhcnNlKEN6KGxUKEQsCm4uaisiOm1wZFJlc3BvbnNlVGltZSIpKSkpbi5lJD0oKDAsZy5SKSgpLWIpLzFFMztuLmlzTGl2ZSYmRC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRpbWVsaW5lIikubGVuZ3RoPD0wfHxnLmR6KEQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlBlcmlvZCIpLG4ueUUsbik7bi5zdGF0ZT0yO24uV0ooImxvYWRlZCIpO0FaKG4pfXJldHVybiBufSkuc1AoRD0+e2lmKEQgaW5zdGFuY2VvZiBnLiRUKXt2YXIgYj1ELnhocjsKbi5sTj1iLnN0YXR1c31uLnN0YXRlPTM7bi5XSigibG9hZGVycm9yIik7cmV0dXJuIGcucnAoYil9KX07CmcubUg9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PlcuaW5mby5OKCkpfTsKSzY9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PlcuaW5mby52aWRlbz9XLmluZm8udmlkZW8ucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSIjohMSl9OwpPaz1mdW5jdGlvbihuKXtyZXR1cm4gZy5EbChuLk4sVz0+Vy5pbmZvLnZpZGVvP1cuaW5mby52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iOiExKX07ClBGPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRsKG4uTixXPT5XLmluZm8udmlkZW8/Vy5pbmZvLnZpZGVvLnByb2plY3Rpb25UeXBlPT09Ik1FU0giOiExKX07CkokVT1mdW5jdGlvbihuKXtyZXR1cm4gZy5EbChuLk4sVz0+Vy5pbmZvLnZpZGVvP1cuaW5mby52aWRlby5zdGVyZW9MYXlvdXQ9PT0xOiExKX07Ckl0aT1mdW5jdGlvbihuKXtyZXR1cm4gZy5iayhuLk4sVz0+Vy5pbmZvLnZpZGVvP1cubnUoKTohMCl9OwpaSD1mdW5jdGlvbihuLFcsRCl7Vz1nLlZmKFcuaW5mbyxuLnpXKTtpZihEKXtsZXQgYj1Nayh7aXRhZzpXLml0YWcsbG10Om4uelc/MDpXLmxtdHx8MCx4dGFnczpXLnh0YWdzfSk7aWYobi52SltiXSlyZXR1cm47bi52SltiXT1EfW4uR0MucHVzaChXKX07CnlDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bFQoVywiaWQiKTtEPUQucmVwbGFjZSgiOiIsIjsiKTt2YXIgYj1sVChXLCJtaW1lVHlwZSIpLHY9bFQoVywiY29kZWNzIik7Yj12P2Ake2J9OyBjb2RlY3M9IiR7dn0iYDpiO3Y9TnVtYmVyKGxUKFcsImJhbmR3aWR0aCIpKS84O3ZhciBrPU51bWJlcihUUChXLCJCYXNlVVJMIikuZ2V0QXR0cmlidXRlKG4uaisiOmNvbnRlbnRMZW5ndGgiKSksaD1uLmR1cmF0aW9uJiZrP2svbi5kdXJhdGlvbjowO2lmKFNHKGIpKXt2YXIgeD1OdW1iZXIobFQoVywid2lkdGgiKSksTD1OdW1iZXIobFQoVywiaGVpZ2h0IikpLGU9TnVtYmVyKGxUKFcsImZyYW1lUmF0ZSIpKTtsZXQgQT1ZdWgobFQoVyxuLmorIjpwcm9qZWN0aW9uVHlwZSIpKTthOnN3aXRjaChsVChXLG4uaisiOnN0ZXJlb0xheW91dCIpKXtjYXNlICJsYXlvdXRfbGVmdF9yaWdodCI6dmFyIEc9MTticmVhayBhO2Nhc2UgImxheW91dF90b3BfYm90dG9tIjpHPTI7YnJlYWsgYTtkZWZhdWx0Okc9CjB9Rz1uZXcgSFIoeCxMLGUsQSxHKX1pZihJZChiKSl7dmFyIHI9TnVtYmVyKGxUKFcsImF1ZGlvU2FtcGxpbmdSYXRlIikpO3ZhciBOPU51bWJlcihsVChXLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBdWRpb0NoYW5uZWxDb25maWd1cmF0aW9uIilbMF0sInZhbHVlIikpO3g9SHFoKGxUKFcsbi5qKyI6c3BhdGlhbEF1ZGlvVHlwZSIpKTtyPW5ldyBBTShyLE4seCk7YTp7TD1sVChXLCJsYW5nIil8fCJ1bmQiO2lmKE49VFAoVywiUm9sZSIpKWlmKGU9bFQoTiwidmFsdWUiKXx8IiIsZy5lcChVayxlKSl7Tj1gJHtMfS4ke1VrW2VdfWA7eD1lPT09Im1haW4iO249bFQoVyxuLmorIjpsYW5nTmFtZSIpfHxgJHtMfSAtICR7ZX1gO049bmV3IHdQKG4sTix4KTticmVhayBhfU49dm9pZCAwfX1pZihXPVRQKFcsIkNvbnRlbnRQcm90ZWN0aW9uIikpaWYoVy5nZXRBdHRyaWJ1dGUoInNjaGVtZUlkVXJpIik9PT0iaHR0cDovL3lvdXR1YmUuY29tL2RybS8yMDEyLzEwLzEwIil7dmFyIEg9e307Zm9yKFc9ClcuZmlyc3RDaGlsZDtXIT1udWxsO1c9Vy5uZXh0U2libGluZyl7aWYoIShXIGluc3RhbmNlb2YgRWxlbWVudCkpY29udGludWU7aWYoIS9TeXN0ZW1VUkwvLnRlc3QoVy5ub2RlTmFtZSkpY29udGludWU7bj1XLmdldEF0dHJpYnV0ZSgidHlwZSIpO3g9Vy50ZXh0Q29udGVudDtuJiZ4JiYoSFtuXT14LnRyaW0oKSl9fWVsc2UgSD12b2lkIDA7cmV0dXJuIG5ldyBtdShELGIse2F1ZGlvOnIsdmlkZW86RyxrWjpOLGNvbnRlbnRQcm90ZWN0aW9uOkgsTnM6dixYbjpoLGNvbnRlbnRMZW5ndGg6a30pfTsKQVo9ZnVuY3Rpb24obil7dmFyIFc9bi5jSjtpc0Zpbml0ZShXKSYmKEVrKG4pP24ucmVmcmVzaCgpOihXPU1hdGgubWF4KDAsbi5TJCtXLSgwLGcuUikoKSksbi5LfHwobi5LPW5ldyBnLmZfKG4ucmVmcmVzaCxXLG4pLGcudShuLG4uSykpLG4uSy5zdGFydChXKSkpfTsKdmFyIFN1eD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCxlKXtyZXR1cm4gTTNbSVsxMF1dKHRoaXMsNCwxNjk5LG4sVyxELGIsdixrLGgseCxMLGUpfTsKRWs9ZnVuY3Rpb24obil7cmV0dXJuIG4uaXNMaXZlJiYoMCxnLlIpKCktbi5TJD49bi5jSn07CkEkaT1mdW5jdGlvbihuKXtuPW4uTjtmb3IobGV0IFcgaW4gbil7bGV0IEQ9bltXXS5pbmRleDtpZihELmlzTG9hZGVkKCkpcmV0dXJuIEQueCQoKSsxfXJldHVybiAwfTsKaUE9ZnVuY3Rpb24obil7cmV0dXJuIG4ub1I/bi5vUi0obi5EfHxuLnRpbWVzdGFtcE9mZnNldCk6MH07CnVBPWZ1bmN0aW9uKG4pe3JldHVybiBuLkpVP24uSlUtKG4uRHx8bi50aW1lc3RhbXBPZmZzZXQpOjB9Owpvbz1mdW5jdGlvbihuKXtpZighaXNOYU4obi5UQykpcmV0dXJuIG4uVEM7dmFyIFc9bi5OO2Zvcih2YXIgRCBpbiBXKXt2YXIgYj1XW0RdLmluZGV4O2lmKGIuaXNMb2FkZWQoKSYmIVdbRF0uaW5mby5OKCkpe1c9MDtmb3IoRD1iLlpPKCk7RDw9Yi54JCgpO0QrKylXKz1iLmdldER1cmF0aW9uKEQpO1cvPWIuSDcoKTtXPU1hdGgucm91bmQoVy8uNSkqLjU7Yi5INygpPjEwJiYobi5UQz1XKTtyZXR1cm4gV31pZihuLmlzTGl2ZSYmKGI9V1tEXSxiLnJiKSlyZXR1cm4gYi5yYn1yZXR1cm4gTmFOfTsKbTh0PWZ1bmN0aW9uKG4sVyl7bj1xYyhuLk4sYj0+Yi5pbmRleC5pc0xvYWRlZCgpKTsKaWYoIW4pcmV0dXJuIE5hTjtuPW4uaW5kZXg7dmFyIEQ9bi5SMyhXKTtyZXR1cm4gbi5nZXRTdGFydFRpbWUoRCk9PT1XP1c6RDxuLngkKCk/bi5nZXRTdGFydFRpbWUoRCsxKTpOYU59Owp6eD1mdW5jdGlvbihuLFcpe2lmKCFuLk5bIjAiXSl7dmFyIEQ9bmV3IG11KCIwIiwiZmFrZXNiIix7dmlkZW86bmV3IEhSKDAsMCwwLHZvaWQgMCx2b2lkIDAsImF1dG8iKX0pO24uTlsiMCJdPVc/bmV3IGR0KG5ldyBnLndaKCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3ZpZGVvcGxheWJhY2siKSxELCJmYWtlIik6bmV3IHNrKG5ldyBnLndaKCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3ZpZGVvcGxheWJhY2siKSxELG5ldyBhQigwLDApLG5ldyBhQigwLDApKX19OwpnLmxBPWZ1bmN0aW9uKG4pe2lmKG4uaXNNYW5pZmVzdGxlc3MpZm9yKGxldCBXIGluIG4uTiluLk5bV10uaW5kZXguc2VnbWVudHM9W119OwpUeD1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBiIGluIG4uTil7bGV0IHY9bi5OW2JdLmluZm8uTigpfHxuLk5bYl0uaW5mby5mWSgpO0Q9PT12JiZuLk5bYl0uaW5kZXg/Lk8oVyl9fTsKajQ9ZnVuY3Rpb24obil7Zm9yKGxldCBXIGluIG4uTiluLk5bV10uaW5mby5OKCl8fFBBKG4uTltXXS5pbmRleCxJbmZpbml0eSl9OwpDNj1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBoIGluIG4uTil7dmFyIGI9bi5OW2hdLmluZGV4LHY9VyxrPUQ7Yi5PVCYmKHYmJihiLnFxPU1hdGgubWF4KGIucXEsdikpLGsmJihiLkRuPU1hdGgubWF4KGIuRG58fDAsaykpKX1EJiYobi50dz1ELzFFMyl9OwpCRj1mdW5jdGlvbihuLFcsRCxiPSExKXtiJiZEPT09bi5QWHx8KG4uYmQucHVzaChXKSxuLlBYPUQsbi5XSigiY3VlcG9pbnRzYWRkZWQiLEQpKX07CktLdD1mdW5jdGlvbihuKXtuLkpVPTA7bi5vUj0wO24uSVQ9MH07CkZ2PWZ1bmN0aW9uKG4pe3JldHVybiBuLlZRJiZuLmlzTWFuaWZlc3RsZXNzP24uaXNMaXZlSGVhZFBsYXlhYmxlOm4uaXNMaXZlfTsKcDY9ZnVuY3Rpb24obixXLEQpe3d0PT09bnVsbCYmKHd0PXdpbmRvdy5NZWRpYVNvdXJjZSYmTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkJiZNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMi41MS4xMC4wMS4wOS4xNi4wOS4wMCInKSYmIU1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDA5LjAyLjUxLjEwLjAxLjA5Ljk5Ljk5LjAwIicpKTtpZihNeiYmd2luZG93Lk1lZGlhU291cmNlJiZNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQhPT12b2lkIDApcmV0dXJuIHd0fHxEIT09IjkiJiZEIT09IigiP3d0fHxEIT09IjloIiYmRCE9PSIoaCJ8fChuPSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOS4yIicpOm49J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5IicsbjtpZighd3QmJiFSb3x8biE9PSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOSInJiZuIT09J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5LjIiJylyZXR1cm4gbjsKRD0iMDAiO3ZhciBiPSIwOCIsdj0iMDEiLGs9IjAxIixoPSIwMSI7bj09PSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOS4yIicmJihEPSIwMiIsYj0iMTAiLFcucHJpbWFyaWVzPT09ImJ0MjAyMCImJihoPXY9IjA5IiksVy5OPT09InNtcHRlMjA4NCImJihrPSIxNiIpLFcuTj09PSJhcmliLXN0ZC1iNjciJiYoaz0iMTgiKSk7cmV0dXJuYHZpZGVvL3dlYm07IGNvZGVjcz0iJHtbInZwMDkiLEQsIjUxIixiLCIwMSIsdixrLGgsIjAwIl0uam9pbigiLiIpfSJgfTsKVkM9ZnVuY3Rpb24obixXLEQpe249YCR7bn0ke1c+NDk/InA2MCI6Vz4zMj8icDQ4IjoiIn1gO1c9ZjcoKVtuXTtpZihXIT1udWxsJiZXPjApcmV0dXJuIFc7Vz1RQy5nZXQobik7aWYoVyE9bnVsbCYmVz4wKXJldHVybiBXO0Q9RD8uZ2V0KG4pO3JldHVybiBEIT1udWxsJiZEPjA/RDo4MTkyfTsKT3F4PWZ1bmN0aW9uKG4sVz0hMSl7UWh3KFcpO1ZwQyhXKTtpZihXKXtmb3IobGV0IEQgb2YgUUMua2V5cygpKUQuc3RhcnRzV2l0aCgiMSIpfHxRQy5kZWxldGUoRCk7Zm9yKGxldCBEIG9mIGNGLnZhbHVlcygpKUQuc3RhcnRzV2l0aCgiMSIpfHxjRi5kZWxldGUoRCk7Zm9yKGxldCBEIG9mIG4ua2V5cygpKUQuc3RhcnRzV2l0aCgiMSIpfHxuLmRlbGV0ZShEKX1lbHNlIFFDLmNsZWFyKCksY0YuY2xlYXIoKSxuLmNsZWFyKCl9OwpVOFo9ZnVuY3Rpb24obix7aXNPdGY6VyxtVjpELHlYOmIsSVI6dixPdzprLEhpOmgsbFU6eCxvTDpMLHhkOmUsZGlzYWJsZUF2MTpHLGRCOnJ9KXt2YXIgTj1uZXcgUGVNKG4pO2lmKG4uV1goKXx8bi5TKCJodG1sNV9sb2dnaW5nX2Zvcm1hdF9zZWxlY3Rpb24iKSlOLlc9ITA7Ti5HQz1rO04uSGk9aCYmbi5LO04ueGQ9ZTtnLnViKCJ3aW5kb3dzIG50IDUuMSIpJiYhZy5hbyYmKE4uYnY9ITApO2lmKGs9RClrPWcubk4obik/WnFTKG4pOiExO2smJihOLmNKPSEwKTt4JiYoTi5idj0hMCxOLk5kPSEwKTtXJiYhbi5TKCJodG1sNV9vdGZfcHJlZmVyX3ZwOSIpJiYoTi5idj0hMCk7bi5wbGF5ZXJTdHlsZT09PSJwaWNhc2F3ZWIiJiYoVyYmKE4uYnY9ITEpLE4udHc9ITEpO3YmJihOLmJ2PSEwKTtTSihuLlcsQVQuQ0hBTk5FTFMpJiYobi5TKCJodG1sNV9lbmFibGVfYWMzIikmJihOLmo9ITApLG4uUygiaHRtbDVfZW5hYmxlX2VhYzMiKSYmKE4uVj0hMCksbi5TKCJodG1sNV9lbmFibGVfYWMzX2dhcGxlc3MiKSYmCihOLkhKPSEwKSk7bi5TKCJodG1sNV9ibG9ja184a19oZnIiKSYmKE4uUFg9ITApO04uSz1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X21heF9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbCIpO04uWT1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X21pbl9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbCIpO2cuV1gmJihOLndhPTQ4MCk7aWYoYnx8RClOLnR3PSExO04uQ3U9ITE7Ti5kaXNhYmxlQXYxPUc7Ti5KPW4uUygiaHRtbDVfbG9nX25vX2F2MV9yZWFzb24iKTtXPURLKG4sTi5OLHZvaWQgMCxOLmRpc2FibGVBdjEpO1c+MCYmVzwyMTYwJiYoVlQoKXx8bi5TKCJodG1sNV9mb3JtYXRfaHlicmlkaXphdGlvbiIpKSYmKE4uTi5zdXBwb3J0c0NoYW5nZVR5cGU9K1ZUKCksTi5uUz1XKTtXPj0yMTYwJiYoTi5lJD0hMCk7Ti5vTD1MO04uRkY9Zy5SZ3x8YzAoKSYmIUw/ITE6ITA7Ti5EPW4uUygiaHRtbDVfZm9ybWF0X2h5YnJpZGl6YXRpb24iKTtOLkJWPW4uUygiaHRtbDVfZGlzYWJsZV9lbmNyeXB0ZWRfdnA5X2xpdmVfbm9uXzJrXzRrIik7Ck4ualc9cjtyZXR1cm4gTn07CkRLPWZ1bmN0aW9uKG4sVz17fSxELGI9ITEpe2lmKGIpcmV0dXJuIFcuZGlzYWJsZWQ9MSwwO2lmKFNKKG4uVyxBVC5BVjFfQ09ERUNTKSYmU0oobi5XLEFULkhFSUdIVCkmJlNKKG4uVyxBVC5CSVRSQVRFKSlyZXR1cm4gVy5pc0NhcGFiaWxpdHlVc2FibGU9MSw4MTkyO2I9MTA4MDt2YXIgdj1uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTt2PD0yJiYoYj00ODApO1cuY29yZUNvdW50PXY7aWYodj1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X2RlZmF1bHRfYXYxX3RocmVzaG9sZCIpKWI9V1siZGVmYXVsdCJdPXY7aWYodj1uLlcuY0opVy5tY2FwPXYsYj1NYXRoLm1heChiLHYpO2lmKEQpe2lmKHY9RC52aWRlb0luZm9zLmZpbmQoaD0+aC5NVygpKT8uaj8ucG93ZXJFZmZpY2llbnQpYj04MTkyLFcuaXNFZmZpY2llbnQ9MTsKRD1ELnZpZGVvSW5mb3NbMF0udmlkZW87bGV0IGs9TWF0aC5taW4oVkMoIjEiLEQuZnBzKSxWQygiMSIsMzApKTtXLnBlcmZDYXA9aztiPU1hdGgubWluKGIsayk7IUQuaXNIZHIoKXx8dnx8bi5adCgpLk4uUVEoeSRqKXx8KFcuaGRyPTEsYio9Ljc1KX1lbHNlIG49VkMoIjEiLDMwKSxXLnBlcmZDYXAzMD1uLGI9TWF0aC5taW4oYixuKSxuPVZDKCIxIiw2MCksVy5wZXJmQ2FwNjA9bixiPU1hdGgubWluKGIsbik7cmV0dXJuIFcuYXYxVGhyZXNob2xkPWJ9OwpySGk9ZnVuY3Rpb24obil7dmFyIFc9WyJvIiwiYSIsIkEiXTtpZihuLnhkPT09MSYmKG4uaiYmKFc9WyJtYWMzIiwiTUFDMyJdLmNvbmNhdChXKSksbi5WJiYoVz1bIm1lYWMzIiwiTUVBQzMiXS5jb25jYXQoVykpLG4uVlF8fG4uZkIpKXtsZXQgRD1bXTtuLlZRJiZELnB1c2goImkiKTtuLmZCJiZELnB1c2goIkkiKTtXPUQuY29uY2F0KFcpfW4uY0omJihXPVsic28iLCJzYSJdLmNvbmNhdChXKSk7IW4uTmR8fG4uSEp8fG4uWHx8bi5zNXx8Vy51bnNoaWZ0KCJhIik7bi5YJiYoVz0oYm9bbi5YXXx8W24uWF0pLmNvbmNhdChXKSk7cmV0dXJuIFd9OwpKSHI9ZnVuY3Rpb24obil7aWYobi5HQylyZXR1cm5bImYiXTtpZihnLnViKCJhcHBsZXR2NSIpKXJldHVybiJoIDloIDkgOCBIIChoICggKiIuc3BsaXQoIiAiKTt2YXIgVz1bIjloIiwiOSIsImgiLCI4Il07bi5ZJCYmVy5wdXNoKCIxZSIpO1c9Vy5jb25jYXQoWyIoaCIsIigiLCJIIiwiKiJdKTtuLmUkJiYoVy51bnNoaWZ0KCIxIiksVy51bnNoaWZ0KCIxaCIpKTtuLmJ2JiZXLnVuc2hpZnQoImgiKTtuLk8mJihXPShib1tuLk9dfHxbbi5PXSkuY29uY2F0KFcpKTtyZXR1cm4gV307CnZYPWZ1bmN0aW9uKCl7dmFyIG49d2luZG93LFc9bi5NU01lZGlhS2V5cztDJCgpJiYhVyYmKFc9bi5XZWJLaXRNZWRpYUtleXMpO3JldHVybiBXJiZXLmlzVHlwZVN1cHBvcnRlZD9XOm51bGx9Owpoej1mdW5jdGlvbihuKXtyZXR1cm4gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcz9nLm9kJiYhZy5kOCgpP0NfKCI0NSIpOmcuUmd8fGcua2g/bi5FcSgiZWRnZV9ub25wcmVmaXhlZF9lbWUiKTpnLmFvP0NfKCI0NyIpOmcuR24mJm4uRXEoImh0bWw1X2VuYWJsZV9zYWZhcmlfZmFpcnBsYXkiKT8hMTohMDohMX07CnhoPWZ1bmN0aW9uKG4pe3JldHVybiBuLlg/ITE6IW4ua2V5U3lzdGVtQWNjZXNzJiYhIXZYKCkmJm4ua2V5U3lzdGVtPT09ImNvbS5taWNyb3NvZnQucGxheXJlYWR5In07CkxOPWZ1bmN0aW9uKG4pe3JldHVybiBuLmtleVN5c3RlbT09PSJjb20ubWljcm9zb2Z0LnBsYXlyZWFkeSJ9OwplVD1mdW5jdGlvbihuKXtyZXR1cm4hbi5rZXlTeXN0ZW1BY2Nlc3MmJiEhdlgoKSYmbi5rZXlTeXN0ZW09PT0iY29tLmFwcGxlLmZwcy4xXzAifTsKZzE9ZnVuY3Rpb24obil7cmV0dXJuIG4ua2V5U3lzdGVtPT09ImNvbS55b3V0dWJlLmZhaXJwbGF5In07CmcuWFY9ZnVuY3Rpb24obil7cmV0dXJuIG4uZmxhdm9yPT09ImZhaXJwbGF5In07CkVHQz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj16USgpLGs9KEQ9dnx8RCYmQyQoKSk/WyJjb20ueW91dHViZS5mYWlycGxheSJdOlsiY29tLndpZGV2aW5lLmFscGhhIl07VyYmay51bnNoaWZ0KCJjb20ueW91dHViZS53aWRldmluZS5sMyIpO3YmJmImJmsudW5zaGlmdCgiY29tLnlvdXR1YmUuZmFpcnBsYXkuc2JkbCIpO3JldHVybiBEP2s6bj9bLi4uaywuLi5xVi5wbGF5cmVhZHldOlsuLi5xVi5wbGF5cmVhZHksLi4ua119OwokaD1mdW5jdGlvbihuKXtpZighbi5xTigpKWlmKG4uSi5sZW5ndGg9PT0wKW4uY2FsbGJhY2sobi5YKTtlbHNle3ZhciBXPW4uSlswXSxEPW4uV1tXXSxiPWlxdChuLEQpO0dMJiZHTC5rZXlTeXN0ZW09PT1XJiZHTC5JMT09PUpTT04uc3RyaW5naWZ5KGIpPyhuLlUoInJlbWtzYSIse3JlOiEwfSksdHoobixELEdMLmtleVN5c3RlbUFjY2VzcykpOihuLlUoInJlbWtzYSIse3JlOiExLG9rOkdMPy5rZXlTeXN0ZW0/PyIifSksR0w9dm9pZCAwLG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoVyxiKS50aGVuKFl6KHY9Pnt0eihuLEQsdixiKX0pLFl6KCgpPT57bi5qPSFuLmomJm4uV1tuLkpbMF1dLmZsYXZvcj09PSJ3aWRldmluZSI7Cm4uanx8bi5KLnNoaWZ0KCk7JGgobil9KSkpfX07Cm9Hdz1mdW5jdGlvbihuKXtpZih2WCgpJiYoZy5Hbnx8dzgpKW4uWC5wdXNoKG5ldyByMSgiZmFpcnBsYXkiLCJjb20uYXBwbGUuZnBzLjFfMCIsIiIsbi55US5leHBlcmltZW50cykpO2Vsc2V7dmFyIFc9dTFyKCksRD1nLmxfKG4uSixiPT57dmFyIHY9bi5XW2JdLGs9ITEsaD0hMTtmb3IobGV0IHggaW4gbi5OW3YuZmxhdm9yXSlXKHgsYikmJih2LkpbeF09ITAsaz1rfHx4LmluZGV4T2YoImF1ZGlvLyIpPT09MCxoPWh8fHguaW5kZXhPZigidmlkZW8vIik9PT0wKTtyZXR1cm4gayYmaH0pOwpEJiZuLlgucHVzaChuLldbRF0pO24uSj1bXX1uLmNhbGxiYWNrKG4uWCl9OwpkOGk9ZnVuY3Rpb24obixXKXtuLmNhbGxiYWNrPVc7bi5YPVtdO2h6KG4ueVEuZXhwZXJpbWVudHMpPyRoKG4pOm9HdyhuKX07CmlxdD1mdW5jdGlvbihuLFcpe3ZhciBEPXtpbml0RGF0YVR5cGVzOlsiY2VuYyIsIndlYm0iXSxhdWRpb0NhcGFiaWxpdGllczpbXSx2aWRlb0NhcGFiaWxpdGllczpbXX07aWYobi5TKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5IikmJmcxKFcpKXJldHVybiBELmF1ZGlvQ2FwYWJpbGl0aWVzLnB1c2goe2NvbnRlbnRUeXBlOidhdWRpby9tcDQ7IGNvZGVjcz0ibXA0YS40MC41Iid9KSxELnZpZGVvQ2FwYWJpbGl0aWVzLnB1c2goe2NvbnRlbnRUeXBlOid2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40ZDQwMGIiJ30pLFtEXTtMTihXKSYmKEQuaW5pdERhdGFUeXBlcz1bImtleWlkcyIsImNlbmMiXSk7Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKG4uTltXLmZsYXZvcl0pKXt2YXIgYj12LmluZGV4T2YoImF1ZGlvLyIpPT09MDtsZXQgaz1iP0QuYXVkaW9DYXBhYmlsaXRpZXM6RC52aWRlb0NhcGFiaWxpdGllcztXLmZsYXZvciE9PSJ3aWRldmluZSJ8fG4uaj9rLnB1c2goe2NvbnRlbnRUeXBlOnZ9KToKYj9rLnB1c2goe2NvbnRlbnRUeXBlOnYscm9idXN0bmVzczoiU1dfU0VDVVJFX0NSWVBUTyJ9KTooZy5vZCYmZy51Yigid2luZG93cyBudCIpJiYhbi5TKCJodG1sNV9kcm1fZW5hYmxlX21vaG8iKXx8ay5wdXNoKHtjb250ZW50VHlwZTp2LHJvYnVzdG5lc3M6IkhXX1NFQ1VSRV9BTEwifSksYj12LG4ueVEuVy5KJiZ2LmluY2x1ZGVzKCJ2cDA5IikmJihiPXYrIjsgZXhwZXJpbWVudGFsPWFsbG93ZWQiKSxrLnB1c2goe2NvbnRlbnRUeXBlOmIscm9idXN0bmVzczoiU1dfU0VDVVJFX0RFQ09ERSJ9KSxnLnNkKG4ueVEpJiYoVkgoKXx8b0soKSkmJihuLlUoInN3Y3J5cHRvIix7fSksay5wdXNoKHtjb250ZW50VHlwZTp2LHJvYnVzdG5lc3M6IlNXX1NFQ1VSRV9DUllQVE8ifSkpKX1yZXR1cm5bRF19Owp0ej1mdW5jdGlvbihuLFcsRCxiKXtpZighbi5xTigpKXtiJiYoR0w9e2tleVN5c3RlbTpXLmtleVN5c3RlbSxrZXlTeXN0ZW1BY2Nlc3M6RCxJMTpKU09OLnN0cmluZ2lmeShiKX0pO1cua2V5U3lzdGVtQWNjZXNzPUQ7aWYoTE4oVykpe3ZhciB2PWk4KCk7Zm9yKHZhciBrIG9mIE9iamVjdC5rZXlzKG4uTltXLmZsYXZvcl0pKVcuSltrXT0hIXYuY2FuUGxheVR5cGUoayl9ZWxzZXtrPVcua2V5U3lzdGVtQWNjZXNzLmdldENvbmZpZ3VyYXRpb24oKTtpZihrLmF1ZGlvQ2FwYWJpbGl0aWVzKWZvcih2IG9mIGsuYXVkaW9DYXBhYmlsaXRpZXMpVy5KW3YuY29udGVudFR5cGVdPSEwO2lmKGsudmlkZW9DYXBhYmlsaXRpZXMpZm9yKGxldCBoIG9mIGsudmlkZW9DYXBhYmlsaXRpZXMpVy5KW2guY29udGVudFR5cGVdPSEwfW4uWC5wdXNoKFcpO24udXNlQ29iYWx0V2lkZXZpbmV8fG4uUygiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpJiZXLk4oKT8obi5KLnNoaWZ0KCksJGgobikpOm4uY2FsbGJhY2sobi5YKX19Owp1MXI9ZnVuY3Rpb24oKXt2YXIgbj12WCgpO2lmKG4pe2xldCBEPW4uaXNUeXBlU3VwcG9ydGVkO3JldHVybihiLHYpPT5EKHYsYil9dmFyIFc9aTgoKTsKcmV0dXJuIFcmJihXLmFkZEtleXx8Vy53ZWJraXRBZGRLZXkpPyhELGIpPT4hIVcuY2FuUGxheVR5cGUoRCxiKTooKT0+ITF9OwpsdGI9ZnVuY3Rpb24obixXKXtzd2l0Y2goVy5VMCl7Y2FzZSAiYm9vbCI6cmV0dXJuIG4uRXEoVy5ueCk7Y2FzZSAiaW50IjpyZXR1cm4gbj1OVihuLFcubngpLGcuJFUobik7Y2FzZSAiZG91YmxlIjpyZXR1cm4gTlYobixXLm54KTtjYXNlICJzdHJpbmciOnJldHVybiB6ZzIobixXLm54KTtjYXNlICJpbnQzMl9saXN0IjpyZXR1cm4gcE4obixXLm54KTtjYXNlICJpbnQ2NF9saXN0IjpyZXR1cm4gcE4obixXLm54KS5tYXAoRD0+Zy4kVShEKSk7CmNhc2UgInN0cmluZ19saXN0Ijp0aHJvdyBFcnJvcigiU3RyaW5nIGxpc3QgZmxhZ3MgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gV1BDQyIpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gZmxhZyB0eXBlIik7fX07Ck5WPWZ1bmN0aW9uKG4sVyl7bj1uLmZsYWdzLmdldChgJHtXfWApO3JldHVybiBOdW1iZXIobil8fDB9Owp6ZzI9ZnVuY3Rpb24obixXKXtyZXR1cm4obj1uLmZsYWdzLmdldChgJHtXfWApKT9uLnRvU3RyaW5nKCk6IiJ9OwpwTj1mdW5jdGlvbihuLFcpe2lmKG49bi5mbGFncy5nZXQoYCR7V31gKSlpZihuPW4ucmVwbGFjZSgvXFsgKiguKj8pICpcXS8sIiQxIikpcmV0dXJuIG4uc3BsaXQoIiwiKS5tYXAoTnVtYmVyKTtyZXR1cm5bXX07CmcuZE09ZnVuY3Rpb24obixXLEQ9MCl7bj1uLlFRKFcpO0pTT04uc3RyaW5naWZ5KG4pO3JldHVybiBuPT09dm9pZCAwP0Q6TnVtYmVyKG4pfTsKZy5ZaD1mdW5jdGlvbihuLFcpe3JldHVybihuPW4uUVEoVykpP24udG9TdHJpbmcoKToiIn07ClRwYj1mdW5jdGlvbihuKXtpZihuPW4uUVEoImh0bWw1X3dlYl9wb19leHBlcmltZW50X2lkcyIpKWlmKG49bi5yZXBsYWNlKC9cWyAqKC4qPykgKlxdLywiJDEiKSlyZXR1cm4gbi5zcGxpdCgiLCIpLm1hcChOdW1iZXIpO3JldHVybltdfTsKSFg9ZnVuY3Rpb24obil7aWYobi5OKXJldHVybiBuLk47aWYobi5leHBlcmltZW50SWRzLmxlbmd0aDw9MSlyZXR1cm4gbi5OPW4uZXhwZXJpbWVudElkcyxuLk47dmFyIFc9Wy4uLm4uZXhwZXJpbWVudElkc10ubWFwKEQ9Pk51bWJlcihEKSk7Clcuc29ydCgpO2ZvcihsZXQgRD1XLmxlbmd0aC0xO0Q+MDstLUQpV1tEXS09V1tELTFdO24uTj1XLm1hcChEPT5ELnRvU3RyaW5nKCkpOwpuLk4udW5zaGlmdCgidjEiKTtyZXR1cm4gbi5OfTsKTkRTPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IE1hcDtmb3IobGV0IGIgb2YgVy5rZXlzKCkpe2xldCB2PWIuc3BsaXQoIl8iKVswXTtuLmhhcyh2KXx8RC5zZXQoYixXLmdldChiKSl9cmV0dXJuIER9OwpZMlM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcudmlkZW8/LmZwc3x8MCx2PWAke259XyR7Yn1gLGs9ISFXLmF1ZGlvLGg9e2l0YWc6Vy5pdGFnLElCOm4sZVM6a307aWYoayloLm51bUNoYW5uZWxzPVcuYXVkaW8ubnVtQ2hhbm5lbHM7ZWxzZXt2YXIgeD1XLnZpZGVvO2gubWF4V2lkdGg9eD8ud2lkdGg7aC5tYXhIZWlnaHQ9eD8uaGVpZ2h0O2gubWF4RnJhbWVyYXRlPWI7aC5tYXhCaXRyYXRlQnBzPVcuTnMqODtoLno5PXg/LmlzSGRyKCl9eD1ELmdldCh2KTt4P2t8fChXPU1hdGgubWF4KHgubWF4V2lkdGh8fDAseC5tYXhIZWlnaHR8fDApPk1hdGgubWF4KGgubWF4V2lkdGh8fDAsaC5tYXhIZWlnaHR8fDApP3g6aCxuPXtpdGFnOlcuaXRhZyxJQjpuLGVTOmssbWF4V2lkdGg6TWF0aC5tYXgoeC5tYXhXaWR0aHx8MCxoLm1heFdpZHRofHwwKSxtYXhIZWlnaHQ6TWF0aC5tYXgoeC5tYXhIZWlnaHR8fDAsaC5tYXhIZWlnaHR8fDApLG1heEZyYW1lcmF0ZTpiLHo5Olcuejl9LG4ubWF4Qml0cmF0ZUJwcz0KVy5tYXhCaXRyYXRlQnBzLEQuc2V0KHYsbikpOkQuc2V0KHYsaCl9OwpPRD1mdW5jdGlvbihuLFcsRD0xKXt2YXIgYj1XLml0YWc7aWYoYj09PSIwIilyZXR1cm4hMDt2YXIgdj1XLm1pbWVUeXBlO2lmKFcuSUI9PT0iMWUiJiYhbi5YKXJldHVybiJkYXYxZW5jIjtpZihXLk1XKCkmJm4uWSlyZXR1cm4iZGF2MSI7aWYoVy52aWRlbyYmKFcudmlkZW8uaXNIZHIoKXx8Vy52aWRlby5wcmltYXJpZXM9PT0iYnQyMDIwIikmJiEoU0oobixBVC5FT1RGKXx8d2luZG93Lm1hdGNoTWVkaWEmJih3aW5kb3cubWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6IGhpZ2gpLCAodmlkZW8tZHluYW1pYy1yYW5nZTogaGlnaCkiKS5tYXRjaGVzfHx3aW5kb3cuc2NyZWVuLnBpeGVsRGVwdGg+MjQmJndpbmRvdy5tYXRjaE1lZGlhKCIoY29sb3ItZ2FtdXQ6IHAzKSIpLm1hdGNoZXMpKSlyZXR1cm4iZGhkciI7aWYoYj09PSIzMzgiJiYhKGcub2Q/Q18oNTMpOmcuYW8mJkNfKDY0KSkpcmV0dXJuImRvcHVzIjtEPXZHVShXLEQpO24uSiYmVy5YKCkmJihEW0FULkVYUEVSSU1FTlRBTC5uYW1lXT0KImFsbG93ZWQiKTtmb3IobGV0IHggb2YgT2JqZWN0LmtleXMoQVQpKXtsZXQgTD1BVFt4XTt2YXIgaztpZihrPURbTC5uYW1lXSlpZihrPSEoTD09PUFULkVPVEYmJlcubWltZVR5cGUuaW5kZXhPZigidnAwOS4wMiIpPjApKXtrPUw7dmFyIGg9VztrPSEobi5leHBlcmltZW50cy5FcSgiaHRtbDVfaWdub3JlX2gyNjRfZnJhbWVyYXRlX2NhcCIpJiZrPT09QVQuRlJBTUVSQVRFJiYoaC5JQj09PSJIInx8aC5JQj09PSJoIikpfWlmKGspaWYoU0oobixMKSlpZihuLmope2lmKG4ualtMLm5hbWVdPERbTC5uYW1lXSlyZXR1cm4gTC5uYW1lfWVsc2Ugdj1gJHt2fTsgJHtMLm5hbWV9PSR7RFtMLm5hbWVdfWA7ZWxzZSBpZihaTyhXKSYmTD09PUFULkVPVEYpcmV0dXJuImR2cDkyIn1uLk8mJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MCYmVy5jb250ZW50UHJvdGVjdGlvbiYmKHYrPSI7IGhkY3A9Mi4yIik7cmV0dXJuIGI9PT0iMjI3Ij8iaHFjZW5jIjpiPT09IjU4NSJ8fApiPT09IjU4OCJ8fGI9PT0iNTgzInx8Yj09PSI1ODYifHxiPT09IjU4NCJ8fGI9PT0iNTg3Inx8Yj09PSI1OTEifHxiPT09IjU5MiI/Im5ld2h2YyI6elEoKSYmaWIoKT49MjEmJmcudWIoImFwcGxldHY1IikmJihiPT09IjQxMCJ8fGI9PT0iODQ1Iik/ITA6bi5pc1R5cGVTdXBwb3J0ZWQodik/ITA6InRwdXMifTsKU0o9ZnVuY3Rpb24obixXKXtXLm5hbWUgaW4gbi5EfHwobi5EW1cubmFtZV09ajVpKG4sVykpO3JldHVybiBuLkRbVy5uYW1lXX07CkNlVT1mdW5jdGlvbihuKXtuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyYmbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7dHlwZToibWVkaWEtc291cmNlIix2aWRlbzp7Y29udGVudFR5cGU6J3ZpZGVvL21wNDsgY29kZWNzPSJhdjAxLjAuMTJNLjA4Iicsd2lkdGg6Mzg0MCxoZWlnaHQ6MjE2MCxiaXRyYXRlOjMyRTYsZnJhbWVyYXRlOjYwfX0pLnRoZW4oVz0+e1cuc21vb3RoJiZXLnBvd2VyRWZmaWNpZW50JiYobi5jSj0yMTYwKX0pfTsKZk49ZnVuY3Rpb24oKXt2YXIgbj1vSygpJiYhQ18oMjkpLFc9Zy51YigiZ29vZ2xlIHR2IikmJmcudWIoImNocm9tZSIpJiYhQ18oMzApO3JldHVybiBufHxXPyExOmNSKCl9OwpKej1mdW5jdGlvbihuLFcsRCl7dmFyIGI9NDgwLHY9MTA4MCxrO2lmKGs9bi5leHBlcmltZW50cy5adCgpLk4uUVEoQnB0KSluLlY9PT1udWxsJiYobi5WPSExLFNKKG4sQVQuV0lEVEgpJiZTSihuLEFULkhFSUdIVCkmJihuLlY9ZHkoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdjAxLjAuMTdNLjA4Ijsgd2lkdGg9NzY4MDsgaGVpZ2h0PTQzMjAnKSkpLGs9bi5WO2smJih2PTIxNjApO2ZvcihsZXQgaCBvZiBXKVc9aC52aWRlby5xdWFsaXR5T3JkaW5hbCxXPD12JiZXPmImJk9EKG4saCxEKT09PSEwJiYoYj1XKTtyZXR1cm4gYn07CmcuSW49ZnVuY3Rpb24obixXPSExKXtyZXR1cm4gZk4oKSYmbi5pc1R5cGVTdXBwb3J0ZWQoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyl8fCFXJiZuLmNhblBsYXlUeXBlKGk4KCksImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIpPyEwOiExfTsKd0p4PWZ1bmN0aW9uKG4pe0ZLQygoKT0+e2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhBVCkpU0oobixBVFtXXSl9KX07Cmo1aT1mdW5jdGlvbihuLFcpe2lmKG4uailyZXR1cm4hIW4ualtXLm5hbWVdO2lmKFc9PT1BVC5CSVRSQVRFJiZuLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiOyB3aWR0aD0zODQwOyBoZWlnaHQ9MjE2MDsgYml0cmF0ZT0yMDAwMDAwJykmJiFuLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiOyB3aWR0aD0zODQwOyBoZWlnaHQ9MjE2MDsgYml0cmF0ZT0yMDAwMDAwMCcpKXJldHVybiExO2lmKFc9PT1BVC5BVjFfQ09ERUNTKXJldHVybiBuLmlzVHlwZVN1cHBvcnRlZChgdmlkZW8vbXA0OyBjb2RlY3M9JHtXLnZhbGlkfWApJiYhbi5pc1R5cGVTdXBwb3J0ZWQoYHZpZGVvL21wNDsgY29kZWNzPSR7Vy52R31gKTtpZihXLnZpZGVvKXt2YXIgRD0ndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiJztuLmlzVHlwZVN1cHBvcnRlZChEKXx8KEQ9J3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjRkNDAxZSInKX1lbHNlIEQ9J2F1ZGlvL3dlYm07IGNvZGVjcz0ib3B1cyInLApuLmlzVHlwZVN1cHBvcnRlZChEKXx8KEQ9J2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyk7cmV0dXJuIG4uaXNUeXBlU3VwcG9ydGVkKGAke0R9OyAke1cubmFtZX09JHtXLnZhbGlkfWApJiYhbi5pc1R5cGVTdXBwb3J0ZWQoYCR7RH07ICR7Vy5uYW1lfT0ke1cudkd9YCl9OwpTVD1mdW5jdGlvbihuLFcpe3ZhciBEPTA7bi5XLmhhcyhXKSYmKEQ9bi5XLmdldChXKS56RSk7bi5XLnNldChXLHt6RTpEKzEsZzE6MioqKEQrMSl9KTtuLk49ITB9OwptVj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKFcmJnR5cGVvZiBXPT09Im9iamVjdCIpe2xldCBrPWg9PkF6KG4saCxELGIsdik7CmlmKFlvKFcpKXJldHVybiBXLnRoZW4oayk7aWYoWUQoVykpcmV0dXJuIFNrKFcsayl9cmV0dXJuIEF6KG4sVyxELGIsdil9OwpLTj1mdW5jdGlvbihuLFcsRCxiPTEpe0Q+PTAmJihXIGluIG4uTnx8KG4uTltXXT1uZXcgTU9pKSxuLk5bV10uZEUoRCxiKSl9OwpBej1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSgwLGcuUikoKTt2PXY/dihXKTp2b2lkIDA7dmFyIGg9dj8uVF8/PzE7aCE9PTAmJktOKG4sdj8ucHJvZmlsZT8/RCxrLWIsaCk7cmV0dXJuIFd9OwpPZD1mdW5jdGlvbihuKXt2YXIgVz13aW5kb3c7Vy55d2N8fChXLnl3Yz17fSk7dmFyIEQ9Vy55d2Nbbl07aWYoRClyZXR1cm4gRDtEPXt9O3JldHVybiBXLnl3Y1tuXT1EfTsKUFg9ZnVuY3Rpb24obil7dmFyIFc9d2luZG93O1cueXdjJiZkZWxldGUgVy55d2Nbbl19OwpSZ1U9ZnVuY3Rpb24obil7dmFyIFc9T2Qobik7aWYoVy5iaW5QKXJldHVybiBXLmJpblA7Vy5iaW5QPVByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmZldGNoKG4pKS50aGVuKEQ9PntpZighRC5vayl0aHJvdyBFcnJvcihgSFRUUCR7RC5zdGF0dXNUZXh0fWApOwpyZXR1cm4gRC5hcnJheUJ1ZmZlcigpfSk7ClcuYmluUC50aGVuKEQ9PntXLmJpbj1EfSwoKT0+e1BYKG4pfSk7CnJldHVybiBXLmJpblB9OwpFZD1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE9vKHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1aSy50WCgpLHY9biYmVWQ7aWYoIXYmJiFXKXJldHVybiBEPy4oIndhc21ucyIse3A6bj8iMSI6IjAiLGE6Vz8iMSI6IjAiLHM6VWQ/IjEiOiIwIn0pLGZsKEVycm9yKCJ3YXNtLndtLm5zIikpO3ZhciBrPW5ldyBRNXI7aWYodil0cnl7bGV0IGg9eWllbGQqUFAoVk9yKGssbikpLHg9bmV3IHlNKGgsaywhMSk7WksuZVUoIndpbml0IixiKTtEPy4oIndhc21zdyIse30pO3JldHVybiB4fWNhdGNoKGgpe2lmKEQ/Ligid2FzbWVycnciLHtlOmAke2h9YH0pLCFXKXRocm93IEVycm9yKCJ3YXNtLndtLml3Iix7Y2F1c2U6aH0pO31pZighVyl0aHJvdyBFcnJvcigid2FzbS53bS54eCIpO3RyeXtsZXQgaD15aWVsZCpQUChXKGspKSx4PW5ldyB5TSh7ZXhwb3J0czpofSxrLCEwKTtaSy5lVSgid2luaXRqcyIsYik7RD8uKCJ3YXNtc2EiLHt9KTtyZXR1cm4geH1jYXRjaChoKXt0aHJvdyBEPy4oIndhc21lcnJhIiwKe2U6YCR7aH1gfSksRXJyb3IoYHdhc20ud20uaWE6ICR7aH1gKTt9fSgpfSl9OwpWT3I9ZnVuY3Rpb24obixXKXtyZXR1cm4gT28oYyR0LGZ1bmN0aW9uKCl7dmFyIEQ9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7aWYoIUQuTil0aHJvdyJ3YXNtLnBzLm5zIjt2YXIgYj15aWVsZCpQUChhdHQoRCxXKSk7aWYoIWIpdGhyb3cid2FzbS5wcy51bSI7cmV0dXJuIHlpZWxkKlBQKFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGIsbikpfSgpfSl9OwphdHQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gT28obixmdW5jdGlvbigpe3ZhciBEPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPVtdLHY9KCk9PiJ3YXNtLnBzLmM6IFsiK2IubWFwKHg9PmAiJHt4fSJgKS5qb2luKCIsICIpKyJdIixrPU9kKFcpOwppZihrLm1vZClyZXR1cm4gay5tb2Q7aWYoay5tb2RQKXRyeXtyZXR1cm4geWllbGQqUFAoay5tb2RQKX1jYXRjaCh4KXtiLnVuc2hpZnQoInBjbSIpfXZhciBoPWsuYmluO2lmKCFoJiZrLmJpblApdHJ5e2g9eWllbGQqUFAoay5iaW5QKX1jYXRjaCh4KXtiLnVuc2hpZnQoInBmYiIpfWlmKCFoKXRyeXtoPXlpZWxkKlBQKFJnVShXKSl9Y2F0Y2goeCl7dGhyb3cgRC5OPSExLGIudW5zaGlmdChgZmI6ICR7eH1gKSx2KCk7fXRyeXtyZXR1cm4geWllbGQqUFAoV2ViQXNzZW1ibHkuY29tcGlsZShoKSl9Y2F0Y2goeCl7UFgoVyksYi51bnNoaWZ0KGBjYTogJHt4fWApfXRocm93IHYoKTt9KCl9KX07CmlvPWZ1bmN0aW9uKG4sVyxELGIpe0Q9bi5XVi5tZW1vcnkuY29weUluKEQpO3ZhciB2PW4uTjt2LldWLmV4cG9ydHMuQUVTMTI4Q1RSQ2lwaGVyX3NldENvdW50ZXIodi5jaXBoZXIsRC5ieXRlT2Zmc2V0KTtXPW4uV1YubWVtb3J5LmNvcHlJbihXKTtuLk4uZW5jcnlwdChXKTt2PXZvaWQgMDtpZihiKXtiPW4uV1Y7dj1uLko7bGV0IGs9Yi5tZW1vcnkuYnVmZmVyKGIubWVtb3J5Lm1hbGxvYygzMiksMzIpO2IuZXhwb3J0cy5TaGEyNTZIbWFjKHYuYnl0ZU9mZnNldCx2LmJ5dGVMZW5ndGgsRC5ieXRlT2Zmc2V0LEQuYnl0ZUxlbmd0aCxXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoLGsuYnl0ZU9mZnNldCk7dj1uLldWLm1lbW9yeS5tb3ZlT3V0KGspfW4uV1YubWVtb3J5LmZyZWUoRC5ieXRlT2Zmc2V0KTtyZXR1cm57RzQ6bi5XVi5tZW1vcnkubW92ZU91dChXKSxzaWduYXR1cmU6dn19OwpuWUM9ZnVuY3Rpb24obil7bi5FaC5leHBvcnRzLlRyYWNrZWRQb2ludGVyX3JlbGVhc2Uobi5pZCl9Owpvbj1mdW5jdGlvbihuKXtuLlh8fChuLlg9bmV3IHVvKG4uSikpO3JldHVybiBuLlh9OwpnLmQxPWZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gbHAobil9Y2F0Y2goVyl7cmV0dXJuIG51bGx9fTsKekw9ZnVuY3Rpb24obil7dmFyIFc9SG4oKTtpZihXLnZhbHVlcyl7Vz1XLnZhbHVlcztsZXQgaD17fTtmb3IodmFyIEQgb2YgT2JqZWN0LmtleXMobi52YWx1ZXMpKXtXW0RdJiZuLkpbRF0mJihuLnZhbHVlc1tEXSs9V1tEXS1uLkpbRF0pO3ZhciBiPW4sdj1iO2lmKCF2LnZhbHVlc1tEXSl7dmFyIGs9SG4oKTt2LnZhbHVlcz1rLnZhbHVlc3x8e307di5GWT1rLmhhbGZMaXZlc3x8e307di5KPWsudmFsdWVzP09iamVjdC5hc3NpZ24oe30say52YWx1ZXMpOnt9fWhbRF09Yi52YWx1ZXNbRF0mJmIuRllbRF0/Yi52YWx1ZXNbRF0vMioqKGIuTi9iLkZZW0RdKTowfW4uSj1ofUQ9bi5GWTtXPXt9O1cudmFsdWVzPW4uSjtXLmhhbGZMaXZlcz1EO2cuUEIoInl0LXBsYXllci1tZW1vcnkiLFcsMjU5MkUzKX07Clh2PWZ1bmN0aW9uKG4sVyl7cmV0dXJuISFXJiYhIW4uWnQoKS5OLlFRKFdJTSkmJihXLnN0YXJ0c1dpdGgoImciKXx8Vy5zdGFydHNXaXRoKCJsIikpfTsKZy5zZD1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iTVdFQiJ9OwpUTD1mdW5jdGlvbihuKXtuLmdUPT09bnVsbCYmKG4uZ1Q9d2luZG93Lk1lZGlhU291cmNlJiZ3aW5kb3cuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkP3dpbmRvdy5NZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyMDAxRSI7IGRlY29kZS10by10ZXh0dXJlPXRydWUnKTohMSk7cmV0dXJuIG4uZ1R9OwpqVD1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iVFZIVE1MNV9TSU1QTFlfRU1CRURERURfUExBWUVSIn07CmcubzQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uSiYmZy5DTihuKSYmIUJYKG4pJiYhbi5YfTsKQlg9ZnVuY3Rpb24obil7cmV0dXJuIG4uWT09PSJhZHVuaXQifHxuLnBsYXllclN0eWxlPT09Imd2biJ9OwpGVj1mdW5jdGlvbihuKXtyZXR1cm4gbi5ZPT09ImRldGFpbHBhZ2UifTsKZy53MT1mdW5jdGlvbihuKXtyZXR1cm4gdzgmJiFuLnhofHxnLnViKCJuaW50ZW5kbyB3aWl1Iik/ITA6ITF9OwpnLkNOPWZ1bmN0aW9uKG4pe3JldHVybiBuLlk9PT0iZW1iZWRkZWQifTsKZy5NVj1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iV0VCX1JFTUlYIn07ClFNPWZ1bmN0aW9uKG4pe2lmKCFuLndlYlBsYXllckNvbnRleHRDb25maWc/LmVtYmVkc0hvc3RGbGFncz8uZW5hYmxlTGl0ZVV4fHxuLnZKfHxuLlh8fG4uRHx8bi5jSj09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRlAiKXJldHVybiJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX05PTkUiO249Zy5kTShuLmV4cGVyaW1lbnRzLCJlbWJlZHNfd2ViX2xpdGVfbW9kZSIpO3JldHVybiBuPT09dm9pZCAwPyJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX1VOS05PV04iOm4+PTAmJm48Um4ubGVuZ3RoP1JuW25dOiJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX1VOS05PV04ifTsKY1g9ZnVuY3Rpb24obixXLEQ9ITEpe24uUyQ9Yk8obi5TJCxXLnZpZGVvX2lkKTtuLmZCPWJPKG4uZkIsVy5ldmVudGlkKTtuLmZCJiYod289bi5mQik7dmFyIGI9W107Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKFZNKSl7bGV0IGs9Vk1bdl0saD1XW2tdO2ghPW51bGwmJihoIT09bi5OW2tdJiZiLnB1c2goayksbi5OW2tdPWgpfSFEJiZiLmxlbmd0aD4wJiZuLm9NJiYoYi5zb3J0KCksZy5HcShuZXcgZy5ReCgiUGxheWVyIGNsaWVudCBwYXJhbWV0ZXJzIGNoYW5nZWQgYWZ0ZXIgc3RhcnR1cCIsYikpKTtuLnVzZXJBZ2U9REkobi51c2VyQWdlLFcudXNlcl9hZ2UpO24udXNlckRpc3BsYXlJbWFnZT1iTyhuLnVzZXJEaXNwbGF5SW1hZ2UsVy51c2VyX2Rpc3BsYXlfaW1hZ2UpO2cuakkobi51c2VyRGlzcGxheUltYWdlKXx8KG4udXNlckRpc3BsYXlJbWFnZT0iIik7bi51c2VyRGlzcGxheU5hbWU9Yk8obi51c2VyRGlzcGxheU5hbWUsVy51c2VyX2Rpc3BsYXlfbmFtZSk7bi55dz1iTyhuLnl3LApXLnVzZXJfZ2VuZGVyKTtuLmNzaVBhZ2VUeXBlPWJPKG4uY3NpUGFnZVR5cGUsVy5jc2lfcGFnZV90eXBlKTtuLmNzaVNlcnZpY2VOYW1lPWJPKG4uY3NpU2VydmljZU5hbWUsVy5jc2lfc2VydmljZV9uYW1lKTtuLmVWPW55KG4uZVYsVy5lbmFibGVjc2kpO24ucGFnZUlkPWJPKG4ucGFnZUlkLFcucGFnZWlkKTtpZihEPVcuZW5hYmxlZF9lbmdhZ2VfdHlwZXMpbi5lbmFibGVkRW5nYWdlVHlwZXM9bmV3IFNldChELnNwbGl0KCIsIikpO1cubGl2aW5nX3Jvb21fc2Vzc2lvbl9wb190b2tlbiYmKG4ualc9Vy5saXZpbmdfcm9vbV9zZXNzaW9uX3BvX3Rva2VuLnRvU3RyaW5nKCkpfTsKZy5hbj1mdW5jdGlvbihuKXtyZXR1cm4vd2ViL2kudGVzdChsbyhuKSl9Owpsbz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmN9OwpjOT1mdW5jdGlvbihuLFcpe3JldHVybiFuLlgmJm9LKCkmJkNfKDU1KSYmbi5jb250cm9sc1R5cGU9PT0iMyImJiFXfTsKV0U9ZnVuY3Rpb24obil7bj1nLm5FKG4uRGEpO3JldHVybiBuPT09Ind3dy55b3V0dWJlLW5vY29va2llLmNvbSI/Ind3dy55b3V0dWJlLmNvbSI6bn07CmcuRGY9ZnVuY3Rpb24obil7cmV0dXJuIGxvKG4pPT09IldFQl9VTlBMVUdHRUQifTsKYmk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLnByb3RvY29sKyI6Ly9pMS55dGltZy5jb20vdmkvIitXKyIvIisoRHx8ImhxZGVmYXVsdC5qcGciKX07CnZFPWZ1bmN0aW9uKG4pe3JldHVybiBGVihuKSYmIWcuRGYobil9OwpnLms2PWZ1bmN0aW9uKG4pe3JldHVybi9eVFZIVE1MNS8udGVzdChsbyhuKSl9OwpodT1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iVFZIVE1MNV9DQVNUInx8bG8obik9PT0iVFZIVE1MNSImJihuLk4uY3Zlci5zdGFydHNXaXRoKCI2LjIwMTMwNzI1Iil8fG4uTi5jdmVyLnN0YXJ0c1dpdGgoIjYuMjAxMzA3MjYiKSl9OwpnLng2PWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJUVkhUTUw1In07CkxFPWZ1bmN0aW9uKG4pe3JldHVybiBuLk4uY21vZGVsPT09IkNIUk9NRUNBU1QgVUxUUkEvU1RFQUsifHxuLk4uY21vZGVsPT09IkNIUk9NRUNBU1QvU1RFQUsifTsKZy5IXz1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbz4xP3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOjF9OwpnLmVNPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKS50b1VwcGVyQ2FzZSgpPT09IldFQiJ9OwpnLlhDPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJXRUJfS0lEUyJ9OwpnLnFGPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJUVkhUTUw1X1VOUExVR0dFRCJ9OwpnLkdsPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRmKG4pfHxsbyhuKT09PSJUVl9VTlBMVUdHRURfQ0FTVCJ8fGcucUYobil9Owp0dT1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iV0VCX01VU0lDX0lOVEVHUkFUSU9OUyJ9OwpnLiQ2PWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJXRUJfRU1CRURERURfUExBWUVSIn07Cmcubk49ZnVuY3Rpb24obil7cmV0dXJuKG4uZGV2aWNlSXNBdWRpb09ubHl8fCFnLm9kfHxnLk1MfHxuLmNvbnRyb2xzVHlwZT09PSIzIj8hMTpnLlFIP24uSiYmZy5aWCg1MSk6ITApfHwobi5kZXZpY2VJc0F1ZGlvT25seXx8IWcuYW98fGcuTUx8fG4uY29udHJvbHNUeXBlPT09IjMiPyExOmcuUUg/bi5KJiZnLlpYKDQ4KTpnLlpYKDM4KSl8fChuLmRldmljZUlzQXVkaW9Pbmx5fHwhcmN8fGcuTUx8fG4uY29udHJvbHNUeXBlPT09IjMiPyExOmcuUUg/bi5KJiZnLlpYKDM3KTpnLlpYKDI3KSl8fCFuLmRldmljZUlzQXVkaW9Pbmx5JiZnLnNtJiYhRm4oKSYmZy5aWCgxMSl8fCFuLmRldmljZUlzQXVkaW9Pbmx5JiZnLkduJiZnLlpYKCI2MDQuNCIpfHxuLldjKCl9OwpacVM9ZnVuY3Rpb24obil7aWYoZy5DTihuKSYmTkYpcmV0dXJuITE7aWYoZy5hbyl7aWYoIWcuWlgoNDcpfHwhZy5aWCg1MikmJmcuWlgoNTEpKXJldHVybiExfWVsc2UgaWYoZy5HbilyZXR1cm4hMTtyZXR1cm4gd2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dD8hMDohMX07CmcucEU9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5lbmFibGVkRW5nYWdlVHlwZXMuaGFzKFcudG9TdHJpbmcoKSl8fER2aS5pbmNsdWRlcyhXKX07CnZZaj1mdW5jdGlvbihuKXt2YXIgVz1XRShuKTtiVmkuaW5jbHVkZXMoVykmJihXPSJ3d3cueW91dHViZS5jb20iKTtyZXR1cm4gbi5wcm90b2NvbCsiOi8vIitXfTsKZy5IRT1mdW5jdGlvbihuLFc9IiIpe2lmKG4uSFkpe2xldCBEPW5ldyBZNixiLHY9bi5IWSgpO3Yuc2lnbmVkT3V0P2I9IiI6di50b2tlbj9iPXYudG9rZW46di5wZW5kaW5nUmVzdWx0LnRoZW4oaz0+e3Yuc2lnbmVkT3V0P0QucmVzb2x2ZSgiIik6RC5yZXNvbHZlKGsudG9rZW4pfSxrPT57Zy5HcShuZXcgZy5ReCgiYjE4OTM0ODMyOF9vYXV0aF9jYWxsYmFja19mYWlsZWQiLHtlcnJvcjprfSkpOwpELnJlc29sdmUoVyl9KTsKcmV0dXJuIGIhPT12b2lkIDA/Zy5IMChiKTpuZXcgTlgoRCl9cmV0dXJuIGcuSDAoVyl9OwpmRT1mdW5jdGlvbihuLFc9IiIpe3JldHVybiBuLllyP0hQKCEwKTpLbChTayhIUChnLkhFKG4sVykpLEQ9PkhQKCEhRCkpLCgpPT5IUCghMSkpfTsKSnU9ZnVuY3Rpb24obixXKXtpZihuLldWPVcpbi5QWD8uTj8uVihXKSxXLmlzQXNtanM/bi5reS5wdXNoKCJhc21qcyIpOm4ua3kucHVzaCgid2FzbSIpfTsKZy5uRT1mdW5jdGlvbihuKXt2YXIgVz1nLklQKG4pO3JldHVybihuPU51bWJlcihnLmZwKG4pWzRdfHxudWxsKXx8bnVsbCk/YCR7V306JHtufWA6V307ClNNPWZ1bmN0aW9uKG4sVz0hMSl7dmFyIEQ9WWdbbl0sYj1JQVtEXSx2PWtIcltuXTtpZighdnx8IWIpcmV0dXJuIG51bGw7Vz1uZXcgSFIoVz92LmhlaWdodDp2LndpZHRoLFc/di53aWR0aDp2LmhlaWdodCx2LmZwcyk7Yj1wNihiLFcsRCk7cmV0dXJuIG5ldyBtdShuLGIse3ZpZGVvOlcsTnM6di5iaXRyYXRlLzh9KX07CkF1PWZ1bmN0aW9uKG4pe3ZhciBXPUlBW1lnW25dXSxEPWhFU1tuXTtyZXR1cm4gRCYmVz9uZXcgbXUobixXLHthdWRpbzpuZXcgQU0oRC5hdWRpb1NhbXBsZVJhdGUsRC5udW1DaGFubmVscyl9KTpudWxsfTsKVlA9ZnVuY3Rpb24obixXLEQsYil7aWYoRClyZXR1cm4gZy5wJCgpO0Q9e307dmFyIHY9aTgoKTtmb3IobGV0IGsgb2YgVylpZihuLmNhblBsYXlUeXBlKHYsay5rTCgpLm1pbWVUeXBlKXx8YilpZihXPWsuTi52aWRlby5xdWFsaXR5LCFEW1ddfHxEW1ddLmtMKCkucUgoKSlEW1ddPWs7bj1bXTtELmF1dG8mJm4ucHVzaChELmF1dG8pO2ZvcihsZXQgayBvZiBwTSkoYj1EW2tdKSYmbi5wdXNoKGIpO3JldHVybiBuLmxlbmd0aD9nLkgwKG4pOmcucCQoKX07CktFPWZ1bmN0aW9uKG4sVz0hMSxEPSEwLGI9e30pe3ZhciB2PXt9O2ZvcihsZXQgaCBvZiBuKXtpZihXJiZNZWRpYVNvdXJjZSYmTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkJiYobj1oLnR5cGUsaC5hdWRpb19jaGFubmVscyYmKG49bisiOyBjaGFubmVscz0iK2guYXVkaW9fY2hhbm5lbHMpLCFNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobikpKXtiW2guaXRhZ109InRwdXMiO2NvbnRpbnVlfWlmKCFEJiZoLmRybV9mYW1pbGllcyYmKGguZW90Zj09PSJzbXB0ZTIwODQifHxoLmVvdGY9PT0iYXJpYi1zdGQtYjY3Iikpe2JbaC5pdGFnXT0iZW5jaGRyIjtjb250aW51ZX1uPXZvaWQgMDtsZXQgeD17YnQ3MDk6IlNEUiIsYnQyMDIwOiJTRFIiLHNtcHRlMjA4NDoiUFEiLCJhcmliLXN0ZC1iNjciOiJITEcifTt2YXIgaz1oLnR5cGUubWF0Y2goL2NvZGVjcz0iKFteIl0qKSIvKTtrPWs/a1sxXToiIjtoLmF1ZGlvX3RyYWNrX2lkJiYobj1uZXcgd1AoaC5uYW1lLGguYXVkaW9fdHJhY2tfaWQsCiEhaC5pc19kZWZhdWx0KSk7bGV0IEw9aC5lb3RmO249bmV3IG04KHtpdGFnOmguaXRhZyx1cmw6aC51cmwsY29kZWNzOmssd2lkdGg6TnVtYmVyKGgud2lkdGgpLGhlaWdodDpOdW1iZXIoaC5oZWlnaHQpLGZwczpOdW1iZXIoaC5mcHMpLGJpdHJhdGU6TnVtYmVyKGguYml0cmF0ZSksYXVkaW9JdGFnOmguYXVkaW9faXRhZyxVaDpMP3hbTF06dm9pZCAwLGNvbnRlbnRQcm90ZWN0aW9uOmguZHJtX2ZhbWlsaWVzLGtaOm4sYXVkaW9DaGFubmVsczpOdW1iZXIoaC5hdWRpb19jaGFubmVscyl9KTt2W24uaXRhZ109dltuLml0YWddfHxbXTt2W24uaXRhZ10ucHVzaChuKX1yZXR1cm4gdn07CnZhciB4dlU9ZnVuY3Rpb24obixXKXtyZXR1cm4gZ1pbSVsxMF1dKHRoaXMsMSw3ODUyLG4sVyl9OwpMSUM9ZnVuY3Rpb24obixXKXtuLlcuc29tZShEPT5ELmtaPy5nZXRJZCgpPT09Vyk7Cm4uTj1XfTsKZUVpPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9W107Zm9yKGxldCBiIG9mIG4uSiliLmJpdHJhdGU8PW4uWD9XLnB1c2goYik6RC5wdXNoKGIpO1cuc29ydCgoYix2KT0+di5iaXRyYXRlLWIuYml0cmF0ZSk7CkQuc29ydCgoYix2KT0+Yi5iaXRyYXRlLXYuYml0cmF0ZSk7Cm4uSj1XLmNvbmNhdChEKX07Ck9tPWZ1bmN0aW9uKG4sVyxEKXtuLmNwbiYmKFc9Zy5FVChXLHtjcG46bi5jcG59KSk7RCYmKFc9Zy5FVChXLHt2WjpEfSkpO3JldHVybiBXfTsKUEU9ZnVuY3Rpb24obixXKXtuPW4uaXRhZy50b1N0cmluZygpO1chPT1udWxsJiYobis9Vy5pdGFnLnRvU3RyaW5nKCkpO3JldHVybiBufTsKZ1laPWZ1bmN0aW9uKG4sVyl7aWYoIShnLk1MfHxDJCgpfHx6USgpKSlyZXR1cm4gbnVsbDtuPUtFKFcsbi5TKCJodG1sNV9maWx0ZXJfZm1wNF9pbl9obHMiKSk7aWYoIW4pcmV0dXJuIG51bGw7Vz1bXTt2YXIgRD17fTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMobikpZm9yKGxldCB2IG9mIG5bYl0paWYodi5rWil7bGV0IGs9di5rWi5nZXRJZCgpO2lmKCFEW2tdKXtsZXQgaD1uZXcgV0Eoayx2LmtaKTtEW2tdPWg7Vy5wdXNoKGgpfX1yZXR1cm4gVy5sZW5ndGg+MD9XOm51bGx9Owp0bU09ZnVuY3Rpb24obixXLEQsYix2LGssaCl7aWYoIShnLk1MfHxDJCgpfHx6USgpKSlyZXR1cm4gZy5wJCgpO3ZhciB4PXt9LEw9WDNTKEQpLGU9S0UoRCxuLlMoImh0bWw1X2ZpbHRlcl9mbXA0X2luX2hscyIpLG4uVy5LLHgpO2lmKCFlKXJldHVybiBoKHtub3Bsc3Q6MX0pLGcucCQoKTtxbGgoZSk7dmFyIEc9e2ZhaXJwbGF5OiJodHRwczovL3lvdXR1YmUuY29tL2FwaS9kcm0vZnBzP2VrPXVuaW5pdGlhbGl6ZWQifSxyO0Q9W107dmFyIE49W10sSD1bXSxBPW51bGwseT0iIjtiPWImJmIubWF0Y2goL2hsc190aW1lZHRleHRfcGxheWxpc3QvKT9uZXcgbTgoe2l0YWc6IjAiLHVybDpiLGNvZGVjczoidnR0Iix3aWR0aDowLGhlaWdodDowLGZwczowLGJpdHJhdGU6MCxrWjpuZXcgd1AoIkVuZ2xpc2giLCJlbiIsITEpfSk6bnVsbDtmb3IobGV0IFEgb2YgT2JqZWN0LmtleXMoZSkpaWYoIW4uUygiaHRtbDVfZGlzYWJsZV9kcm1faGZyXzEwODAiKXx8USE9PSIzODMiJiZRIT09IjM3MyIpZm9yKGxldCBWIG9mIGVbUV0paWYoVi53aWR0aCl7Zm9yKGxldCBIWiBvZiBWLkopaWYoZVtIWl0pe1YuTj0KSFo7YnJlYWt9Vi5OfHwoVi5OPUdIdChlLFYpKTtsZXQgTHQ9ZVtWLk5dO2lmKCFMdCljb250aW51ZTtELnB1c2goVik7Vi5jb250ZW50UHJvdGVjdGlvbj09PSJmYWlycGxheSImJihyPUcpO2xldCB0aT0iIjtWLlVoPT09IlBRIj90aT0ic21wdGUyMDg0IjpWLlVoPT09IkhMRyImJih0aT0iYXJpYi1zdGQtYjY3Iik7dGkmJih5PXRpKTtILnB1c2goWmYoTHQsW1ZdLGIsayxWLml0YWcsVi53aWR0aCxWLmhlaWdodCxWLmZwcyxMLHZvaWQgMCx2b2lkIDAscix0aSkpO2lmKCFBfHxWLndpZHRoKlYuaGVpZ2h0KlYuZnBzPkEud2lkdGgqQS5oZWlnaHQqQS5mcHMpQT1WfWVsc2UgTi5wdXNoKFYpO2Vsc2UgeFtRXT0iZGlzZHJtaGZyIjtILnJlZHVjZSgoUSxWKT0+Vi5rTCgpLmlzRW5jcnlwdGVkKCkmJlEsITApJiYocj1HKTsKdj1NYXRoLm1heCh2LDApO3ZhciB7ZnBzOlQ9MCx3aWR0aDp6PTAsaGVpZ2h0OkM9MH09QXx8e307QT1uLlMoImh0bWw1X25hdGl2ZV9hdWRpb190cmFja19zd2l0Y2hpbmciKTtILnB1c2goWmYoTixELGIsaywiOTMiLHosQyxULEwsImF1dG8iLHYscix5LEEpKTtPYmplY3QuZW50cmllcyh4KS5sZW5ndGgmJmgoeCk7cmV0dXJuIFZQKG4uVyxILGM5KG4sVyksITEpfTsKWmY9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwsZSxHLHIsTixIKXt2YXIgQT0wLHk9IiI7Zm9yKGxldCBUIG9mIG4peXx8KHk9VC5pdGFnKSxULmF1ZGlvQ2hhbm5lbHMmJlQuYXVkaW9DaGFubmVscz5BJiYoQT1ULmF1ZGlvQ2hhbm5lbHMseT1ULml0YWcpO3Y9bmV3IG11KHYsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse2F1ZGlvOm5ldyBBTSgwLEEpLHZpZGVvOm5ldyBIUihrLGgseCxudWxsLHZvaWQgMCxlLHZvaWQgMCx2b2lkIDAsTiksY29udGVudFByb3RlY3Rpb246cixBYTp5fSk7bj1uZXcgJHYxKG4sVyxEP1tEXTpbXSxiLCEhSCk7bi5YPUc/RzoxMzY5ODQzO3JldHVybiBuZXcgVW0odixuLEwpfTsKWDNTPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuKWlmKFcudXJsJiYobj1XLnVybC5zcGxpdCgiZXhwaXJlLyIpLCEobi5sZW5ndGg8PTEpKSlyZXR1cm4rblsxXS5zcGxpdCgiLyIpWzBdO3JldHVybiBOYU59OwpHSHQ9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2YgT2JqZWN0LmtleXMobikpe2xldCBiPW5bRF1bMF07aWYoIWIud2lkdGgmJmIuY29udGVudFByb3RlY3Rpb249PT1XLmNvbnRlbnRQcm90ZWN0aW9uJiYhYi5hdWRpb0NoYW5uZWxzKXJldHVybiBEfXJldHVybiIifTsKcWxoPWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBTZXQ7Zm9yKHZhciBEIG9mIE9iamVjdC52YWx1ZXMobikpaWYoRC5sZW5ndGgpe3ZhciBiPURbMF07Yi5oZWlnaHQmJmIuY29kZWNzLnN0YXJ0c1dpdGgoInZwMDkiKSYmVy5hZGQoYi5oZWlnaHQpfUQ9W107aWYoVy5zaXplKWZvcihsZXQgdiBvZiBPYmplY3Qua2V5cyhuKSluW3ZdLmxlbmd0aCYmKGI9blt2XVswXSxiLmhlaWdodCYmVy5oYXMoYi5oZWlnaHQpJiYhYi5jb2RlY3Muc3RhcnRzV2l0aCgidnAwOSIpJiZELnB1c2godikpO2ZvcihsZXQgdiBvZiBEKWRlbGV0ZSBuW3ZdfTsKcnFaPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXTtmb3IobGV0IHYgb2YgRCl7aWYoIXZ8fCF2LnVybCljb250aW51ZTtEPVFQKHYudHlwZSwibWVkaXVtIiwiMCIpO2IucHVzaChuZXcgeW4oRCx2LnVybCkpfXJldHVybiBWUChuLlcsYixjOShuLFcpLCExKX07CnNpcj1mdW5jdGlvbihuLFcpe3ZhciBEPVtdLGI9UVAoVy50eXBlLCJhdXRvIixXLml0YWcpO0QucHVzaChuZXcgeW4oYixXLnVybCkpO3JldHVybiBWUChuLlcsRCwhMSwhMCl9OwppaT1mdW5jdGlvbihuKXtyZXR1cm4gbiYmRW1bbl0/RW1bbl06bnVsbH07CnVpPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJtdWx0aXZpZXcudXN0cmVhbWVyX2Rpc2FibGVkIjpjYXNlICJzYWJyLmludmFsaWRfaW5wdXRfc3RyZWFtIjpjYXNlICJzYWJyLmxpdmVfbm9fbWF4X3NxIjpjYXNlICJzYWJyLmxpdmVfdW5hdXRob3JpemVkX3JlcXVlc3QiOmNhc2UgInNhYnIubWFsZm9ybWVkX2NvbmZpZyI6Y2FzZSAic2Fici5tZWRpYV9zZXJ2aW5nX2VuZm9yY2VtZW50X2lkX2Vycm9yIjpjYXNlICJzYWJyLm1ldGFkYXRhX2ZldGNoZXJfZXJyb3IiOmNhc2UgInNhYnIubm9fYXVkaW9fc2VsZWN0ZWQiOmNhc2UgInNhYnIubm9fYXZhaWxhYmxlX2Zvcm1hdHMiOmNhc2UgInNhYnIubm9fcmVkaXJlY3RfdXJsIjpjYXNlICJzYWJyLm5vX3ZpZGVvX3NlbGVjdGVkIjpjYXNlICJzYWJyLm90Zl9ub3Rfc3VwcG9ydGVkIjpjYXNlICJzYWJyLnRvb19tYW55X2NodW5rX3JlYWRlcl9lcnJvcl9yZXRyaWVzIjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiJzYWJyLmNvbmZpZyJ9fTsKb0E9ZnVuY3Rpb24obixXKXtpZihXPVc/LndhdGNoRW5kcG9pbnRTdXBwb3J0ZWRPbmVzaWVDb25maWc/Lmh0bWw1UGxheWJhY2tPbmVzaWVDb25maWcpbi5RYT1uZXcgTiR3KFcpfTsKVGw9ZnVuY3Rpb24obixXLEQsYil7bnx8KG49VyYmZGMuaGFzT3duUHJvcGVydHkoVykmJnpsLmhhc093blByb3BlcnR5KFcpP3psW1ddKyJfIitkY1tXXTp2b2lkIDApO1c9bjtpZighVylyZXR1cm4gbnVsbDtuPVcubWF0Y2gobGkpO2lmKCFufHxuLmxlbmd0aCE9PTUpcmV0dXJuIG51bGw7e2xldCBrPVcubWF0Y2gobGkpO2lmKGspe249TnVtYmVyKGtbM10pO3ZhciB2PVs3LDgsMTAsNSw2XTtuPSEoTnVtYmVyKGtbMV0pPT09MSYmbj09PTgpJiZ2LmluZGV4T2Yobik+PTB9ZWxzZSBuPSExfXJldHVybiBEfHxifHxuP1c6bnVsbH07CkNFPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e307Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKGpNKSl7dmFyIGI9Vz9XK3Y6djtiPW5bYisiX3dlYnAiXXx8bltiXTtnLmpJKGIpJiYoRFtqTVt2XV09Yil9cmV0dXJuIER9Owp3Yz1mdW5jdGlvbihuKXt2YXIgVz17fTtpZighbnx8IW4udGh1bWJuYWlscylyZXR1cm4gVztuPW4udGh1bWJuYWlscy5maWx0ZXIodj0+ISF2LnVybCk7Cm4uc29ydCgodixrKT0+di53aWR0aC1rLndpZHRofHx2LmhlaWdodC1rLmhlaWdodCk7CmZvcih2YXIgRCBvZiBPYmplY3Qua2V5cyhCRSkpe3ZhciBiPU51bWJlcihEKTtsZXQgdj1CRVtiXTtmb3IobGV0IGsgb2YgbilpZihrLndpZHRoPj1iKXtiPUZDKGsudXJsKTtnLmpJKGIpJiYoV1t2XT1iKTticmVha319KEQ9bi5wb3AoKSkmJkQud2lkdGg+PTEyODAmJihEPUZDKEQudXJsKSxnLmpJKEQpJiYoV1sibWF4cmVzZGVmYXVsdC5qcGciXT1EKSk7cmV0dXJuIFd9OwpGQz1mdW5jdGlvbihuKXtyZXR1cm4gbi5zdGFydHNXaXRoKCIvLyIpPyJodHRwczoiK246bn07Ck1GPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLmJhc2VVcmx8fCIifTsKUkE9ZnVuY3Rpb24obil7bj1nLm9FKG4pO2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhuKSl7bGV0IEQ9bltXXTtuW1ddPUFycmF5LmlzQXJyYXkoRCk/RFswXTpEfXJldHVybiBufTsKWWx3PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEIG9mIFcpaWYoVz1ELnBsYXllckFubm90YXRpb25zVXJsc1JlbmRlcmVyKXtXLmFkc09ubHkmJihuLlJtPSEwKTtpZihEPVcubG9hZFBvbGljeSluLmFubm90YXRpb25zTG9hZFBvbGljeT1wM01bRF07aWYoRD1XLmludmlkZW9Vcmwpbi5lYT1GTihEKTtuLnk1PSEwO2JyZWFrfX07ClFuPWZ1bmN0aW9uKG4sVyl7bi5ib3RndWFyZERhdGE9Vy5wbGF5ZXJBdHRlc3RhdGlvblJlbmRlcmVyLmJvdGd1YXJkRGF0YTtXPVcucGxheWVyQXR0ZXN0YXRpb25SZW5kZXJlci5jaGFsbGVuZ2U7VyE9bnVsbCYmKG4ucEs9Vyl9OwpIVng9ZnVuY3Rpb24obixXKXtuLmNhcHRpb25UcmFja3M9W107aWYoVy5jYXB0aW9uVHJhY2tzKWZvcih2YXIgRCBvZiBXLmNhcHRpb25UcmFja3Mpe3ZhciBiPVZuKEQuYmFzZVVybCk7aWYoIWIpcmV0dXJuO2I9e2lzX3RyYW5zbGF0ZWFibGU6ISFELmlzVHJhbnNsYXRhYmxlLGxhbmd1YWdlQ29kZTpELmxhbmd1YWdlQ29kZSxsYW5ndWFnZU5hbWU6RC5uYW1lJiZnLkRwKEQubmFtZSksdXJsOmIsdnNzX2lkOkQudnNzSWQsa2luZDpELmtpbmR9O2IubmFtZT1ELnRyYWNrTmFtZTtiLmRpc3BsYXlOYW1lPUQubmFtZSYmZy5EcChELm5hbWUpO24uY2FwdGlvblRyYWNrcy5wdXNoKG5ldyBnLlF3KGIpKX1uLlR3PVcuYXVkaW9UcmFja3N8fFtdO24uTyQ9Vy5kZWZhdWx0QXVkaW9UcmFja0luZGV4fHwwO24ucnA9W107aWYoVy50cmFuc2xhdGlvbkxhbmd1YWdlcylmb3IobGV0IHYgb2YgVy50cmFuc2xhdGlvbkxhbmd1YWdlcyl7RD17fTtELmxhbmd1YWdlQ29kZT12Lmxhbmd1YWdlQ29kZTsKRC5sYW5ndWFnZU5hbWU9Zy5EcCh2Lmxhbmd1YWdlTmFtZSk7aWYodi50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcyl7RC50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcz1bXTtmb3IobGV0IGsgb2Ygdi50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcylELnRyYW5zbGF0aW9uU291cmNlVHJhY2tJbmRpY2VzLnB1c2goayl9aWYodi5leGNsdWRlQXVkaW9UcmFja0luZGljZXMpe0QuZXhjbHVkZUF1ZGlvVHJhY2tJbmRpY2VzPVtdO2ZvcihsZXQgayBvZiB2LmV4Y2x1ZGVBdWRpb1RyYWNrSW5kaWNlcylELmV4Y2x1ZGVBdWRpb1RyYWNrSW5kaWNlcy5wdXNoKGspfW4ucnAucHVzaChEKX1uLmc1PVtdO2lmKFcuZGVmYXVsdFRyYW5zbGF0aW9uU291cmNlVHJhY2tJbmRpY2VzKWZvcihsZXQgdiBvZiBXLmRlZmF1bHRUcmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcyluLmc1LnB1c2godil9Owpmb2k9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcuZXJyb3JTY3JlZW47aWYoIShiJiYoYi5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjT2ZmZXJSZW5kZXJlcnx8Yi5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjVHJhaWxlclJlbmRlcmVyfHxiLnlwY1RyYWlsZXJSZW5kZXJlcil8fEQmJkQuaXNVcGNvbWluZ3x8WyJPSyIsIkxJVkVfU1RSRUFNX09GRkxJTkUiLCJGVUxMU0NSRUVOX09OTFkiXS5pbmNsdWRlcyhXLnN0YXR1cykpKXtuLmVycm9yQ29kZT1paShXLmVycm9yQ29kZSl8fCJhdXRoIjtpZihEPWImJmIucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXIpe24ucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXI9RDtsZXQgdj1ELnJlYXNvbjt2JiYobi5lcnJvclJlYXNvbj1nLkRwKHYpKTtpZihEPUQuc3VicmVhc29uKW4ud2k9Zy5EcChEKSxuLlRZPUR9ZWxzZSBuLmVycm9yUmVhc29uPVcucmVhc29ufHxudWxsO0Q9Vy5zdGF0dXM7RD09PSJMT0dJTl9SRVFVSVJFRCI/bi5lcnJvckRldGFpbD0KIjEiOkQ9PT0iQ09OVEVOVF9DSEVDS19SRVFVSVJFRCI/bi5lcnJvckRldGFpbD0iMiI6RD09PSJBR0VfQ0hFQ0tfUkVRVUlSRUQiPyhXPShXPVcuZXJyb3JTY3JlZW4pJiZXLnBsYXllckthdlJlbmRlcmVyLG4uZXJyb3JEZXRhaWw9VyYmVy5rYXZVcmw/IjQiOiIzIik6KGI9Yj8ucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXI/LnByb2NlZWRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5jb21tYW5kLG4uZXJyb3JEZXRhaWw9Vy5pc0Jsb2NrZWRJblJlc3RyaWN0ZWRNb2RlPyI1IjpnLncoYixnLmNFKT8uc2lnbmFsPT09IlJFTE9BRF9QQUdFIj8iNyI6IjAiKX19OwpKcVo9ZnVuY3Rpb24obixXKXtuLllpPSEwO3ZhciBEPVcuaGVhcnRiZWF0VG9rZW47bi5kcm1TZXNzaW9uSWQ9Vy5kcm1TZXNzaW9uSWR8fCIiO24uaGVhcnRiZWF0VG9rZW49RHx8IiI7bi5zRT1OdW1iZXIoVy5pbnRlcnZhbE1pbGxpc2Vjb25kcyk7bi5sND1OdW1iZXIoVy5tYXhSZXRyaWVzKTtuLkg2PSEhVy5zb2Z0RmFpbE9uRXJyb3I7bi5EZD0hIVcudXNlSW5uZXJ0dWJlSGVhcnRiZWF0c0ZvckRybTtuLmhlYXJ0YmVhdFNlcnZlckRhdGE9Vy5oZWFydGJlYXRTZXJ2ZXJEYXRhO24uUE09ISFXLmhlYXJ0YmVhdEF0dGVzdGF0aW9uQ29uZmlnPy5yZXF1aXJlc0F0dGVzdGF0aW9ufTsKQXExPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9RC5pbnRlcnN0aXRpYWxzLm1hcChiPT57dmFyIHY9Zy53KGIsSW9iKTtpZih2KXJldHVybntpc195dG9faW50ZXJzdGl0aWFsOiEwLHJhd19wbGF5ZXJfcmVzcG9uc2U6dn07aWYoYj1nLncoYixTbE0pKXJldHVybiBPYmplY3QuYXNzaWduKHtpc195dG9faW50ZXJzdGl0aWFsOiEwfSxnLml3KGIpKX0pOwpmb3IobGV0IGIgb2YgVylzd2l0Y2goRC5wb2RDb25maWcucGxheWJhY2tQbGFjZW1lbnQpe2Nhc2UgIklOVEVSU1RJVElBTF9QTEFZQkFDS19QTEFDRU1FTlRfUFJFIjpuLmludGVyc3RpdGlhbHM9bi5pbnRlcnN0aXRpYWxzLmNvbmNhdCh7dGltZTowLHBsYXllclZhcnM6YixrcTo1fSk7YnJlYWs7Y2FzZSAiSU5URVJTVElUSUFMX1BMQVlCQUNLX1BMQUNFTUVOVF9QT1NUIjpuLmludGVyc3RpdGlhbHM9bi5pbnRlcnN0aXRpYWxzLmNvbmNhdCh7dGltZToweDdmZmZmZmZmZmZmZmYscGxheWVyVmFyczpiLGtxOjZ9KTticmVhaztjYXNlICJJTlRFUlNUSVRJQUxfUExBWUJBQ0tfUExBQ0VNRU5UX0lOU0VSVF9BVF9WSURFT19USU1FIjpXPU51bWJlcihELnBvZENvbmZpZy50aW1lVG9JbnNlcnRBdE1pbGxpcyksbi5pbnRlcnN0aXRpYWxzPW4uaW50ZXJzdGl0aWFscy5jb25jYXQoe3RpbWU6VyxwbGF5ZXJWYXJzOmIsa3E6Vz09PTA/NTo3fSl9fX07Cm12aj1mdW5jdGlvbihuLFcpe2lmKFc9Vy5maW5kKEQ9PiEoIUR8fCFELnRvb2x0aXBSZW5kZXJlcikpKW4udG9vbHRpcFJlbmRlcmVyPVcudG9vbHRpcFJlbmRlcmVyfTsKYUE9ZnVuY3Rpb24obixXKXtXLnN1YnNjcmliZUNvbW1hbmQmJihuLnN1YnNjcmliZUNvbW1hbmQ9Vy5zdWJzY3JpYmVDb21tYW5kKTtXLnVuc3Vic2NyaWJlQ29tbWFuZCYmKG4udW5zdWJzY3JpYmVDb21tYW5kPVcudW5zdWJzY3JpYmVDb21tYW5kKTtXLmFkZFRvV2F0Y2hMYXRlckNvbW1hbmQmJihuLmFkZFRvV2F0Y2hMYXRlckNvbW1hbmQ9Vy5hZGRUb1dhdGNoTGF0ZXJDb21tYW5kKTtXLnJlbW92ZUZyb21XYXRjaExhdGVyQ29tbWFuZCYmKG4ucmVtb3ZlRnJvbVdhdGNoTGF0ZXJDb21tYW5kPVcucmVtb3ZlRnJvbVdhdGNoTGF0ZXJDb21tYW5kKTtXLmdldFNoYXJlUGFuZWxDb21tYW5kJiYobi5nZXRTaGFyZVBhbmVsQ29tbWFuZD1XLmdldFNoYXJlUGFuZWxDb21tYW5kKX07Cm5MPWZ1bmN0aW9uKG4sVyl7VyE9bnVsbD8obi5yUj1XLG4uaU49ITApOihuLnJSPSIiLG4uaU49ITEpfTsKUG4xPWZ1bmN0aW9uKG4sVyl7aWYoVz1XLnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyKW5MKG4sVy5jb250cm9sQmdIdG1sKSxXLm11dGVkQXV0b3BsYXk/KFc9Zy53KFcubXV0ZWRBdXRvcGxheSxLSTEpKSYmVy5lbmRTY3JlZW4mJihXPWcudyhXLmVuZFNjcmVlbixPVngpKSYmVy50ZXh0JiYobi5NVj1nLkRwKFcudGV4dCkpOm4ubXV0ZWRBdXRvcGxheT0hMX07ClpWaT1mdW5jdGlvbihuLFcpe3ZhciBEPVcuYmFja2dyb3VuZGFiaWxpdHk7RCYmRC5iYWNrZ3JvdW5kYWJpbGl0eVJlbmRlcmVyLmJhY2tncm91bmRhYmxlJiYobi5iYWNrZ3JvdW5kYWJsZT0hMCk7Vy5vZmZsaW5lYWJpbGl0eT8ub2ZmbGluZWFiaWxpdHlSZW5kZXJlcj8ub2ZmbGluZWFibGUmJihuLm9mZmxpbmVhYmxlPSEwKTtpZihEPVcuY29udGV4dFBhcmFtcyluLmNvbnRleHRQYXJhbXM9RDsoRD1XLnBpY3R1cmVJblBpY3R1cmUpJiZELnBpY3R1cmVJblBpY3R1cmVSZW5kZXJlci5wbGF5YWJsZUluUGlwJiYobi5waXBhYmxlPSEwKTtXLnBsYXlhYmxlSW5FbWJlZCYmKG4uYWxsb3dFbWJlZD0hMCk7aWYoRD1XLnlwY0NsaWNrd3JhcClXPUQucGxheWVyTGVnYWN5RGVza3RvcFlwY0NsaWNrd3JhcFJlbmRlcmVyLEQ9RC55cGNSZW50YWxBY3RpdmF0aW9uUmVuZGVyZXIsVz8obi5Jaz1XLmR1cmF0aW9uTWVzc2FnZXx8IiIsbi5EbD0hMCk6RCYmKFc9RC5kdXJhdGlvbk1lc3NhZ2UsCm4uSWs9Vz9nLkRwKFcpOiIiLG4uRGw9ITApfTsKeXExPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1NRihXLmdvb2dsZVJlbWFya2V0aW5nVXJsKTtiJiYobi5nb29nbGVSZW1hcmtldGluZ1VybD1iKTtpZihiPU1GKFcueW91dHViZVJlbWFya2V0aW5nVXJsKSluLnlvdXR1YmVSZW1hcmtldGluZ1VybD1iO2lmKGI9Vy5oZWFydGJlYXRMb2dnaW5nVG9rZW4pbi5oZWFydGJlYXRMb2dnaW5nVG9rZW49YjtiPXt9O3ZhciB2PU1GKFcucHRyYWNraW5nVXJsKTtpZih2KXt2PVJBKHYpO3ZhciBrPXYub2lkO2smJihuLlhvPWspO2lmKGs9di5wbHR5cGUpbi5xOD1rO2lmKGs9di5wdGNobiluLmgxPWs7aWYoaz12LnB0ayluLnh6PWVuY29kZVVSSUNvbXBvbmVudChrKTtpZih2PXYubSluLnk5PXZ9aWYodj1NRihXLnFvZVVybCkpe3Y9Zy5vRSh2KTtmb3IoaCBvZiBPYmplY3Qua2V5cyh2KSlrPXZbaF0sdltoXT1BcnJheS5pc0FycmF5KGspP2suam9pbigiLCIpOms7dmFyIGg9djtuLnpiPWg7aWYodj1oLmNhdCluLlMoImh0bWw1X2VuYWJsZV9xb2VfY2F0X2xpc3QiKT8Kbi5rSz1uLmtLLmNvbmNhdCh2LnNwbGl0KCIsIikpOm4ua3k9djtpZih2PWgubGl2ZSluLnVoPXY7aWYoaD1oLmRybV9wcm9kdWN0KW4uZHJtUHJvZHVjdD1ofWlmKGg9TUYoVy52aWRlb3N0YXRzUGxheWJhY2tVcmwpKXtoPVJBKGgpO2lmKHY9aC5hZGZvcm1hdClpZihELmFkZm9ybWF0PXYsaz1uLkcoKSxrPVRsKHYsbi5GdyxrLkosay5LKSluLmFkRm9ybWF0PWs7aWYoaz1oLmFxaSlELmFkX3F1ZXJ5X2lkPWs7aWYoRD1oLmF1dG9wbGF5KW4uR3U9RD09IjEiLG4uVlQ9RD09IjEiO2lmKEQ9aC5hdXRvbmF2KW4uaXNBdXRvbmF2PUQ9PSIxIjtpZihEPWguZGVsYXkpbi5vRD1nLk5oKEQpO2lmKEQ9aC5laSluLmV2ZW50SWQ9RDtpZihEPWcuZDEoaC5hZGNvbnRleHQpKXRyeXt2YXIgeD1VdjIoRCk7eCYmKG4uZk49eCl9Y2F0Y2goTCl7Zy5HcShFcnJvcigiTWFsZm9ybWVkIGFkQ29udGV4dCIpKX1pZihEfHx2KW4uR3U9ITA7aWYoeD1oLmZlYXR1cmUpbi5TOT14O2lmKHg9aC5saXN0KW4ucGxheWxpc3RJZD0KeDtpZih4PWgub2Ypbi5SSD14O2lmKHg9aC5vc2lkKW4ub3NpZD14O2lmKHg9aC5yZWZlcnJlciluLnJlZmVycmVyPXg7aWYoeD1oLnNkZXRhaWwpbi53dT14O2lmKHg9aC5zb3VyY2VpZCluLmJJPXg7aWYoeD1oLnNzcnQpbi5BUj14PT0iMSI7aWYoeD1oLnN1YnNjcmliZWQpbi5zdWJzY3JpYmVkPXg9PSIxIjtpZih4PWgudWdhKW4udXNlckdlbmRlckFnZT14O2lmKHg9aC51cHQpbi5IcT14O2lmKHg9aC52bSluLnZpZGVvTWV0YWRhdGE9eDtiLnBsYXliYWNrPWh9aWYoeD1NRihXLnZpZGVvc3RhdHNXYXRjaHRpbWVVcmwpKXt4PVJBKHgpO2lmKEQ9eC5hbGQpbi5GTD1EO2Iud2F0Y2h0aW1lPXh9aWYoeD1NRihXLmF0clVybCkpeD1SQSh4KSxiLmF0cj14O2lmKHg9TUYoVy5lbmdhZ2VVcmwpKXg9UkEoeCksYi5lbmdhZ2U9eDtuLlhUPWI7Vy5wcm9tb3RlZFBsYXliYWNrVHJhY2tpbmcmJihiPVcucHJvbW90ZWRQbGF5YmFja1RyYWNraW5nLGIuc3RhcnRVcmxzJiYobi5Gcj1iLnN0YXJ0VXJscyksCmIuZmlyc3RRdWFydGlsZVVybHMmJihuLndOPWIuZmlyc3RRdWFydGlsZVVybHMpLGIuc2Vjb25kUXVhcnRpbGVVcmxzJiYobi5DdD1iLnNlY29uZFF1YXJ0aWxlVXJscyksYi50aGlyZFF1YXJ0aWxlVXJscyYmKG4ub0g9Yi50aGlyZFF1YXJ0aWxlVXJscyksYi5jb21wbGV0ZVVybHMmJihuLkF0PWIuY29tcGxldGVVcmxzKSxiLmVuZ2FnZWRWaWV3VXJscyYmKGIuZW5nYWdlZFZpZXdVcmxzLmxlbmd0aD4xJiZnLkdxKG5ldyBnLlF4KCJUaGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBlbmdhZ2VkX3ZpZXdfdXJscy4iKSksbi5EeD1iLmVuZ2FnZWRWaWV3VXJsc1swXSkpO1cuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YSYmKG4uc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YT1XLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEpO1cudnNzM0NvbmZpZz8uc2VyaWFsaXplZFdhdGNoVGltZUNvbnRleHREYXRhJiYobi5zZXJpYWxpemVkV2F0Y2hUaW1lQ29udGV4dERhdGE9ClcudnNzM0NvbmZpZy5zZXJpYWxpemVkV2F0Y2hUaW1lQ29udGV4dERhdGEpfTsKRVkxPWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgVylpZihiJiYoVz1iLnBsYXllckxlZ2FjeURlc2t0b3BXYXRjaEFkc1JlbmRlcmVyKSYmKFc9Vy5wbGF5ZXJBZFBhcmFtcykpe1cuYXV0b3BsYXk9PSIxIiYmKG4uR3U9ITAsbi5WVD0hMCk7bi5Jbz1XLmVuY29kZWRBZFNhZmV0eVJlYXNvbnx8bnVsbDtXLnNob3dDb250ZW50VGh1bWJuYWlsIT09dm9pZCAwJiYobi5xMj0hIVcuc2hvd0NvbnRlbnRUaHVtYm5haWwpO0QuZW5hYmxlZF9lbmdhZ2VfdHlwZXM9Vy5lbmFibGVkRW5nYWdlVHlwZXM7YnJlYWt9fTsKaVYyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5tYW5pZmVzdGxlc3NXaW5kb3dlZExpdmVDb25maWc7aWYoRCl7dmFyIGI9TnVtYmVyKEQubWluRHZyU2VxdWVuY2UpLHY9TnVtYmVyKEQubWF4RHZyU2VxdWVuY2UpLGs9TnVtYmVyKEQubWluRHZyTWVkaWFUaW1lTXMpLGg9TnVtYmVyKEQubWF4RHZyTWVkaWFUaW1lTXMpO0Q9TnVtYmVyKEQuc3RhcnRXYWxsdGltZU1zKTtiJiYobi5JdD1iKTtrJiYobi5KVT1rLzFFMyxuLlMoImh0bWw1X3NhYnJfcGFyc2VfbGl2ZV9tZXRhZGF0YV9wbGF5YmFja19ib3VuZGFyaWVzIikmJmcuWU4obikmJihuLkgyPWsvMUUzKSk7diYmKG4uSFA9dik7aCYmKG4ub1I9aC8xRTMsbi5TKCJodG1sNV9zYWJyX3BhcnNlX2xpdmVfbWV0YWRhdGFfcGxheWJhY2tfYm91bmRhcmllcyIpJiZnLllOKG4pJiYobi5XTT1oLzFFMykpO0QmJihuLklUPUQvMUUzKTsoYnx8aykmJih2fHxoKSYmKG4uUkk9ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCxuLmFsbG93TGl2ZUR2cj0KITAsbi5YZz0hMSl9aWYoYj1XLmRhaUNvbmZpZyl7aWYoYi5lbmFibGVEYWkpe24uTFk9ITA7aWYodj1iLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpKW4uZW5hYmxlU2VydmVyU3RpdGNoZWREYWk9djtpZih2PWIuZW5hYmxlUHJlcm9sbCluLktkPXZ9aWYoYi5kYWlUeXBlPT09IkRBSV9UWVBFX1NTX0RJU0FCTEVEInx8Yi5kZWJ1Z0luZm8/LmlzRGlzYWJsZWRVbnBsdWdnZWRDaGFubmVsKW4uSmw9ITA7IW4uUygiaHRtbDVfdW1wX3N0aXRjaGVkX21ldGFkYXRhX3Vuc3BlY2lmaWVkX2hhbmRsaW5nIil8fGIuZGFpVHlwZSE9PSJEQUlfVFlQRV9VTlNQRUNJRklFRCImJmIuZGFpVHlwZSE9PXZvaWQgMHx8KG4uakY9ITApO2IuZGFpVHlwZT09PSJEQUlfVFlQRV9DTElFTlRfU1RJVENIRUQiJiYobi5DVT0hMCk7Yi5hbGxvd1VzdHJlYW1lclJlcXVlc3RBZGNvbmZpZyYmKG4uUTY9ITApO2Iuc2VuZFNzZGFpTWlzc2luZ0FkQnJlYWtSZWFzb25zJiYobi5LVj0hMCl9aWYoYj1XLmF1ZGlvQ29uZmlnKXt2PQpuLmhnO2IudHJhY2tBYnNvbHV0ZUxvdWRuZXNzTGtmcyE9bnVsbCYmKHYuSj1iLnRyYWNrQWJzb2x1dGVMb3VkbmVzc0xrZnMpO2IubG91ZG5lc3NUYXJnZXRMa2ZzIT1udWxsJiYodi5sb3VkbmVzc1RhcmdldExrZnM9Yi5sb3VkbmVzc1RhcmdldExrZnMpO2IubG91ZG5lc3NEYiE9bnVsbCYmKHYuVz1iLmxvdWRuZXNzRGIpO2lmKGs9Yi5sb3VkbmVzc05vcm1hbGl6YXRpb25Db25maWcpay5hcHBseVN0YXRlZnVsTm9ybWFsaXphdGlvbiYmKHYuYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb249ITApLGsucHJlc2VydmVTdGF0ZWZ1bExvdWRuZXNzVGFyZ2V0JiYodi5wcmVzZXJ2ZVN0YXRlZnVsTG91ZG5lc3NUYXJnZXQ9ITApLGsubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcyE9bnVsbCYmKHYubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcz1rLm1pbmltdW1Mb3VkbmVzc1RhcmdldExrZnMpO3Y9Yi5sb3VkbmVzc0RiO3YhPW51bGwmJihuLllLPXYpO2IuYXVkaW9NdXRlZCYmKG4ueWw9CiEwKTtiLm11dGVPblN0YXJ0JiYobi5OMD0hMCk7Yi5wbGF5QXVkaW9Pbmx5JiYobi5KZz0hMCl9aWYodj1XLnBsYXliYWNrRW5kQ29uZmlnKWI9di5lbmRTZWNvbmRzLHY9di5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcyxuLm11dGVkQXV0b3BsYXkmJihiJiYobi5lbmRTZWNvbmRzPWIpLHYmJihuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPXYpKTtpZihiPVcuZmFpclBsYXlDb25maWcpe2lmKHY9Yi5jZXJ0aWZpY2F0ZSluLkNpPWcuZDEodik7dj1OdW1iZXIoYi5rZXlSb3RhdGlvblBlcmlvZE1zKTt2PjAmJihuLlY5PXYpO2I9TnVtYmVyKGIua2V5UHJlZmV0Y2hNYXJnaW5Ncyk7Yj4wJiYobi5qaT1iKX1pZigoYj1XLnBsYXliYWNrU3RhcnRDb25maWcpJiYhbi5OVil7bi52RT1OdW1iZXIoYi5zdGFydFNlY29uZHMpO2s9Yi5saXZlVXRjU3RhcnRTZWNvbmRzO3Y9ISFuLmxpdmVVdGNTdGFydFNlY29uZHMmJm4ubGl2ZVV0Y1N0YXJ0U2Vjb25kcz4wOwprJiYhdiYmKG4ubGl2ZVV0Y1N0YXJ0U2Vjb25kcz1OdW1iZXIoaykpO2lmKGs9Yi5zdGFydFBvc2l0aW9uKWlmKChoPWsudXRjVGltZU1pbGxpcykmJiF2JiYobi5saXZlVXRjU3RhcnRTZWNvbmRzPU51bWJlcihoKSouMDAxKSx2PWsuc3RyZWFtVGltZU1pbGxpcyluLlVyPU51bWJlcih2KSouMDAxO24ucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uPWIucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uO24ucHJvZ3Jlc3NCYXJFbmRQb3NpdGlvbj1iLnByb2dyZXNzQmFyRW5kUG9zaXRpb259ZWxzZSBpZihiPVcuc2tpcHBhYmxlU2VnbWVudHNDb25maWcpe2lmKHY9Yi5pbnRyb1NraXBEdXJhdGlvbk1zKW4uUEU9TnVtYmVyKHYpLzFFMztpZihiPWIub3V0cm9Ta2lwRHVyYXRpb25NcyluLm50PU51bWJlcihiKS8xRTN9aWYodj1XLnNraXBwYWJsZUludHJvQ29uZmlnKWI9TnVtYmVyKHYuc3RhcnRNcyksdj1OdW1iZXIodi5lbmRNcyksaXNOYU4oYil8fGlzTmFOKHYpfHwobi53Qj1iLG4uQXA9CnYpO2lmKGI9Vy5zdHJlYW1TZWxlY3Rpb25Db25maWcpbi5HZj1OdW1iZXIoYi5tYXhCaXRyYXRlKTtpZihiPVcudnJDb25maWcpbi5Kbz1iLnBhcnRpYWxTcGhlcmljYWw9PSIxIjtpZihiPVcud2ViRHJtQ29uZmlnKXtiLnNraXBXaWRldmluZSYmKG4uSmo9ITApO2lmKHY9Yi53aWRldmluZVNlcnZpY2VDZXJ0KW4uRmM9Zy5kMSh2KTtiLnVzZUNvYmFsdFdpZGV2aW5lJiYobi51c2VDb2JhbHRXaWRldmluZT0hMCk7Yi5zdGFydFdpdGhOb1F1YWxpdHlDb25zdHJhaW50JiYobi5aOT0hMCl9aWYoYj1XLm1lZGlhQ29tbW9uQ29uZmlnKXtpZih2PWIuZHluYW1pY1JlYWRhaGVhZENvbmZpZyl7bi5tYXhSZWFkQWhlYWRNZWRpYVRpbWVNcz12Lm1heFJlYWRBaGVhZE1lZGlhVGltZU1zfHxOYU47bi5taW5SZWFkQWhlYWRNZWRpYVRpbWVNcz12Lm1pblJlYWRBaGVhZE1lZGlhVGltZU1zfHxOYU47bi5yZWFkQWhlYWRHcm93dGhSYXRlTXM9di5yZWFkQWhlYWRHcm93dGhSYXRlTXN8fE5hTjsKaWYodj1iPy5tZWRpYVVzdHJlYW1lclJlcXVlc3RDb25maWc/LnZpZGVvUGxheWJhY2tVc3RyZWFtZXJDb25maWcpbi5hST1nLmQxKHYpO2lmKCh2PWI/LnNhYnJDb250ZXh0VXBkYXRlcykmJnYubGVuZ3RoPjApZm9yKHZhciB4IG9mIHYpeC50eXBlJiZ4LnZhbHVlJiYodj17dHlwZTp4LnR5cGUsc2NvcGU6eC5zY29wZSx2YWx1ZTpnLmQxKHgudmFsdWUpfHx2b2lkIDAsc2VuZEJ5RGVmYXVsdDp4LnNlbmRCeURlZmF1bHR9LG4uc2FickNvbnRleHRVcGRhdGVzLnNldCh4LnR5cGUsdikpfWlmKHg9Yi5zZXJ2ZXJQbGF5YmFja1N0YXJ0Q29uZmlnKW4uc2VydmVyUGxheWJhY2tTdGFydENvbmZpZz14O2IudXNlU2VydmVyRHJpdmVuQWJyJiYobi5ERT0hMCk7aWYoeD1iLnJlcXVlc3RQaXBlbGluaW5nQ29uZmlnKW4ucmVxdWVzdFBpcGVsaW5pbmdDb25maWc9eH1pZih4PVcuaW5saW5lUGxheWJhY2tDb25maWcpbi52MT0hIXguc2hvd0F1ZGlvQ29udHJvbHM7aWYoeD1XLmVtYmVkZGVkUGxheWVyQ29uZmlnKXtuLmVtYmVkZGVkUGxheWVyQ29uZmlnPQp4O2lmKHY9eC5lbWJlZGRlZFBsYXllck1vZGUpYj1uLkcoKSxiLmNKPXYsYi5EPXY9PT0iRU1CRURERURfUExBWUVSX01PREVfUEZMIjtpZih4PXgucGVybWlzc2lvbnMpbi5hbGxvd0ltYU1vbmV0aXphdGlvbj0hIXguYWxsb3dJbWFNb25ldGl6YXRpb259aWYoeD1XLndlYlBsYXllckNvbmZpZylpZih4LmdhdGV3YXlFeHBlcmltZW50R3JvdXAmJihuLmdhdGV3YXlFeHBlcmltZW50R3JvdXA9eC5nYXRld2F5RXhwZXJpbWVudEdyb3VwKSx4LmlzUHJveGltYUVsaWdpYmxlJiYobi5pc1Byb3hpbWFMYXRlbmN5RWxpZ2libGU9ITApLHg9eC5tdWx0aUFzcGVjdFN0cmVhbWluZ0NvbmZpZyluLldrPSEwLG4ucGxheWVyT3JpZW50YXRpb249eC5wbGF5ZXJPcmllbnRhdGlvbix4LnBsYXllck9yaWVudGF0aW9uPT09IlBMQVlFUl9PUklFTlRBVElPTl9IT1JJWk9OVEFMIj9uLkJqPXgudmVydGljYWxDb21tYW5kfHxudWxsOngucGxheWVyT3JpZW50YXRpb249PT0iUExBWUVSX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIiYmCihuLkJqPXguaG9yaXpvbnRhbENvbW1hbmR8fG51bGwpO1c9Vy5wbGF5ZXJDb250cm9sc0NvbmZpZztXPy5pc1NlZWthYmxlIT09dm9pZCAwJiYobi5pc1NlZWthYmxlPSEhVy5pc1NlZWthYmxlKX07CnU2Uz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5mb3JtYXRzO2lmKGIpe3ZhciB2PVtdO2Zvcih2YXIgayBvZiBiKXYucHVzaChgJHtrLml0YWd9LyR7ay53aWR0aH14JHtrLmhlaWdodH1gKTtuLkdqPXYuam9pbigiLCIpO3Y9W107Zm9yKHZhciBoIG9mIGIpe2I9e2l0YWc6aC5pdGFnLHR5cGU6aC5taW1lVHlwZSxxdWFsaXR5OmgucXVhbGl0eX07KGs9aC51cmwpJiYoYi51cmw9ayk7bGV0IHt4aTpOLEVsOkgseTc6QSxzOnl9PVAwKDcsNjkyLGgpO04mJihiLnVybD1ILGIuc3A9QSxiLnM9eSk7di5wdXNoKHlHKGIpKX1uLmNmPXYuam9pbigiLCIpfWlmKGg9Vy5obHNGb3JtYXRzKXt2PXt9O2lmKEQmJihEPUQuYXVkaW9QYWlyaW5nQ29uZmlnKSYmRC5wYWlycylmb3IodmFyIHggb2YgRC5wYWlycylEPXgudmlkZW9JdGFnLHZbRF18fCh2W0RdPVtdKSx2W0RdLnB1c2goeC5hdWRpb0l0YWcpO3g9e307Zm9yKHZhciBMIG9mIGgpeFtMLml0YWddPUwuYml0cmF0ZTtMPVtdO2ZvcihHIG9mIGgpe0Q9CntpdGFnOkcuaXRhZyx0eXBlOkcubWltZVR5cGUsdXJsOkcudXJsLGJpdHJhdGU6Ry5iaXRyYXRlLHdpZHRoOkcud2lkdGgsaGVpZ2h0OkcuaGVpZ2h0LGZwczpHLmZwc307aWYoaD1HLmF1ZGlvVHJhY2spaWYoYj1oLmRpc3BsYXlOYW1lKUQubmFtZT1iLEQuYXVkaW9fdHJhY2tfaWQ9aC5pZCxoLmF1ZGlvSXNEZWZhdWx0JiYoRC5pc19kZWZhdWx0PSIxIik7aWYoRy5kcm1GYW1pbGllcyl7aD1bXTtmb3IodmFyIGUgb2YgRy5kcm1GYW1pbGllcyloLnB1c2goSlpbZV0pO0QuZHJtX2ZhbWlsaWVzPWguam9pbigiLCIpfShoPXZbRy5pdGFnXSkmJmgubGVuZ3RoJiYoRC5hdWRpb19pdGFnPWguam9pbigiLCIpLChoPXhbaFswXV0pJiYoRC5iaXRyYXRlKz1oKSk7KGg9TiQoRykpJiYoRC5lb3RmPWgpO0cuYXVkaW9DaGFubmVscyYmKEQuYXVkaW9fY2hhbm5lbHM9Ry5hdWRpb0NoYW5uZWxzKTtMLnB1c2goeUcoRCkpfXZhciBHPUwuam9pbigiLCIpO24uaGxzRm9ybWF0cz1HfWlmKChlPQpXLmxpY2Vuc2VJbmZvcykmJmUubGVuZ3RoPjApe0c9e307Zm9yKHZhciByIG9mIGUpZT1yLmRybUZhbWlseSx2PXIudXJsLGUmJnYmJihHW0paW2VdXT12KTtuLmNvbnRlbnRQcm90ZWN0aW9uPUd9aWYocj1XLmRybVBhcmFtcyluLmRybVBhcmFtcz1yO2lmKHI9Vy5kYXNoTWFuaWZlc3RVcmwpbi5UZj1nLkVUKHIse2NwbjpuLmNsaWVudFBsYXliYWNrTm9uY2V9KTtpZihyPVcuaGxzTWFuaWZlc3RVcmwpbi5obHN2cD1yO2lmKHI9Vy5wcm9iZVVybCluLnByb2JlVXJsPUZOKGcuRVQocix7Y3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX0pKTtpZihXPVcuc2VydmVyQWJyU3RyZWFtaW5nVXJsKW4ubEM9bmV3IGcud1ooVywhMCl9OwpvWU09ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcudmlkZW9JZDtiJiYobi52aWRlb0lkPWIsRC52aWRlb19pZHx8KEQudmlkZW9faWQ9YikpO2lmKGI9Vy50aXRsZSluLnRpdGxlPWIsRC50aXRsZXx8KEQudGl0bGU9Yik7aWYoYj1XLmxlbmd0aFNlY29uZHMpbi5sZW5ndGhTZWNvbmRzPU51bWJlcihiKSxELmxlbmd0aF9zZWNvbmRzfHwoRC5sZW5ndGhfc2Vjb25kcz1iKTtpZihiPVcua2V5d29yZHMpbi5rZXl3b3Jkcz1XaihiKTtpZihiPVcuY2hhbm5lbElkKW4uRjk9YixELnVjaWR8fChELnVjaWQ9Yik7aWYoYj1XLnZpZXdDb3VudCluLnJhd1ZpZXdDb3VudD1OdW1iZXIoYik7aWYoYj1XLmF1dGhvciluLmF1dGhvcj1iLEQuYXV0aG9yfHwoRC5hdXRob3I9Yik7aWYoRD1XLnNob3J0RGVzY3JpcHRpb24pbi5zaG9ydERlc2NyaXB0aW9uPUQ7aWYoRD1XLmlzQ3Jhd2xhYmxlKW4uaXNMaXN0ZWQ9RDtpZihEPVcubXVzaWNWaWRlb1R5cGUpbi5tdXNpY1ZpZGVvVHlwZT1EO0Q9Vy5pc0xpdmU7CkQhPW51bGwmJihuLmlzTGl2ZVBsYXliYWNrPUQpO2lmKER8fFcuaXNVcGNvbWluZyluLmlzUHJlbWllcmU9IVcuaXNMaXZlQ29udGVudDtpZihEPVcudGh1bWJuYWlsKW4udE89d2MoRCk7aWYoRD1XLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3Qpbi5pc0V4dGVybmFsbHlIb3N0ZWRQb2RjYXN0PUQ7KEQ9Vy5zdGF0aW9uVHlwZSkmJkQhPT0iU1RBVElPTl9UWVBFX1VOS05PV04iJiYobi56Mz0hMCk7RD1XLnZpZXdlckxpdmVzdHJlYW1Kb2luUG9zaXRpb247RD8udXRjVGltZU1pbGxpcyYmKG4uRHo9Zy5OaChELnV0Y1RpbWVNaWxsaXMpKTtuLkcoKS5leHBlcmltZW50cy5FcSgiZW5hYmxlX2NlbnRlcmVkX2NhcHRpb25fZm9yX3R2ZmlsbV92aWRlbyIpJiZXLmlzVHZmaWxtVmlkZW8hPW51bGwmJihuLmlzVHZmaWxtVmlkZW89Vy5pc1R2ZmlsbVZpZGVvKTtXLmlzVHZmaWxtVmlkZW8hPW51bGwmJihuLmNPPVcuaXNUdmZpbG1WaWRlbyYmbi5pc0xpdmVQbGF5YmFjayl9Owp6RWI9ZnVuY3Rpb24obixXKXtpZihXLnBsYXllckxlZ2FjeURlc2t0b3BZcGNUcmFpbGVyUmVuZGVyZXIpe3ZhciBEPVcucGxheWVyTGVnYWN5RGVza3RvcFlwY1RyYWlsZXJSZW5kZXJlcjtuLk1nPUQudHJhaWxlclZpZGVvSWR8fCIiO3ZhciBiPShiPVcucGxheWVyTGVnYWN5RGVza3RvcFlwY1RyYWlsZXJSZW5kZXJlci55cGNUcmFpbGVyKSYmYi55cGNUcmFpbGVyUmVuZGVyZXJ9ZWxzZSBXLnBsYXllckxlZ2FjeURlc2t0b3BZcGNPZmZlclJlbmRlcmVyP0Q9Vy5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjT2ZmZXJSZW5kZXJlcjpXLnlwY1RyYWlsZXJSZW5kZXJlciYmKGI9Vy55cGNUcmFpbGVyUmVuZGVyZXIsVz1iLmZ1bGxWaWRlb01lc3NhZ2Usbi5IQj1XP2cuRHAoVyk6IiIsbi5NZz1nLncoYixEeik/LnZpZGVvRGV0YWlscz8udmlkZW9JZHx8IiIpO0QmJihuLlU5PUQuaXRlbVRpdGxlfHwiIixELml0ZW1VcmwmJihuLndWPUQuaXRlbVVybCksRC5pdGVtQnV5VXJsJiYobi5nVj0KRC5pdGVtQnV5VXJsKSxuLkFKPUQuaXRlbVRodW1ibmFpbHx8IiIsbi5kVj1ELm9mZmVySGVhZGxpbmV8fCIiLG4uR249RC5vZmZlckRlc2NyaXB0aW9ufHwiIixuLk9oPUQub2ZmZXJJZHx8IiIsbi5Daj1ELm9mZmVyQnV0dG9uVGV4dHx8IiIsbi51Vz1ELm9mZmVyQnV0dG9uRm9ybWF0dGVkVGV4dHx8bnVsbCxuLkU5PUQub3ZlcmxheUR1cmF0aW9uTXNlY3x8TmFOLG4uSEI9RC5mdWxsVmlkZW9NZXNzYWdlfHwiIixuLnZNPSEwKTtiJiYoKEQ9Zy53KGIsRHopKT9uLkljPXtyYXdfcGxheWVyX3Jlc3BvbnNlOkR9OihEPWcudyhiLGR2aSksbi5JYz1EP2cuaXcoRCk6bnVsbCksbi52TT0hMCl9Owpsb2o9ZnVuY3Rpb24obixXLEQsYil7Vy5pc0xpdmVEZWZhdWx0QnJvYWRjYXN0JiYobi5pc0xpdmVEZWZhdWx0QnJvYWRjYXN0PSEwKTtXLmlzVXBjb21pbmcmJihuLmlzVXBjb21pbmc9ITApO2lmKFcuaXNQb3N0TGl2ZUR2cil7bi5YZz0hMDtpZihiPVcubGF0ZW5jeUNsYXNzKW4ubGF0ZW5jeUNsYXNzPWJqW2JdfHwiVU5LTk9XTiI7Vy5pc0xvd0xhdGVuY3lMaXZlU3RyZWFtJiYobi5pc0xvd0xhdGVuY3lMaXZlU3RyZWFtPSEwKX1lbHNle2xldCB2PSExO24uSVI/KG4uYWxsb3dMaXZlRHZyPWZOKCk/ITA6TVgmJnZqPDU/ITE6ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCk6Vy5pc0xpdmU/KGIubGl2ZXN0cmVhbT0iMSIsbi5hbGxvd0xpdmVEdnI9Vy5pc0xpdmVEdnJFbmFibGVkP2ZOKCk/ITA6TVgmJnZqPDU/ITE6ITA6ITEsbi5wYXJ0bmVySWQ9Mjcsdj0hMCk6Vy5pc1VwY29taW5nJiYodj0hMCk7aWYoVy5pc0xpdmV8fG4uSVIpe1cuaXNMb3dMYXRlbmN5TGl2ZVN0cmVhbSYmKG4uaXNMb3dMYXRlbmN5TGl2ZVN0cmVhbT0KITApO2xldCBrPVcubGF0ZW5jeUNsYXNzO2smJihuLmxhdGVuY3lDbGFzcz1ialtrXXx8IlVOS05PV04iKTtpZihXPVcubGl2ZUNodW5rUmVhZGFoZWFkKW4ubGl2ZUNodW5rUmVhZGFoZWFkPVc7aWYoVz1EJiZELmxpdmVQbGF5ZXJDb25maWcpe1cuaGFzU3ViZnJhZ21lbnRlZEZtcDQmJihuLmhhc1N1YmZyYWdtZW50ZWRGbXA0PSEwKTtXLmhhc1N1YmZyYWdtZW50ZWRXZWJtJiYobi5JMj0hMCk7Vy5kZWZyYWdnZWRGcm9tU3ViZnJhZ21lbnRzJiYobi5kZWZyYWdnZWRGcm9tU3ViZnJhZ21lbnRzPSEwKTtpZihEPVcubGl2ZUV4cGVyaW1lbnRhbENvbnRlbnRJZCluLmxpdmVFeHBlcmltZW50YWxDb250ZW50SWQ9TnVtYmVyKEQpO1c9Vy5pc0xpdmVIZWFkUGxheWFibGU7bi5TKCJodG1sNV9saXZlX2hlYWRfcGxheWFibGUiKSYmVyE9bnVsbCYmKG4uaXNMaXZlSGVhZFBsYXlhYmxlPVcpfX12JiYobi5pc0xpdmVQbGF5YmFjaz0hMCxiLmFkZm9ybWF0JiZiLmFkZm9ybWF0LnNwbGl0KCJfIilbMV0hPT0KIjgifHxuLklKLnB1c2goImhlYXJ0YmVhdCIpKX19OwprTD1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFdhdGNoTmV4dFJlc3BvbnNlKCk/LmNvbnRlbnRzPy50d29Db2x1bW5XYXRjaE5leHRSZXN1bHRzOyhuPW4uZ2V0V2F0Y2hOZXh0UmVzcG9uc2UoKT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uZW5kU2NyZWVuPy53YXRjaE5leHRFbmRTY3JlZW5SZW5kZXJlcj8ucmVzdWx0cyl8fChuPVc/LmVuZFNjcmVlbj8uZW5kU2NyZWVuPy5yZXN1bHRzKTtyZXR1cm4gbn07CnhMPWZ1bmN0aW9uKCl7aWYoaHg9PT12b2lkIDApe3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInl0LXBsYXllci1sdiIpfWNhdGNoKFcpe31hOnt0cnl7dmFyIG49ISFzZWxmLmxvY2FsU3RvcmFnZX1jYXRjaHtuPSExfWlmKG4mJihuPWcudlMoYCR7TTAoKX06Onl0LXBsYXllcmApKSl7aHg9bmV3IFQkYihuKTticmVhayBhfWh4PXZvaWQgMH19cmV0dXJuIGh4fTsKTEw9ZnVuY3Rpb24oKXt2YXIgbj14TCgpO2lmKCFuKXJldHVybnt9O3RyeXtsZXQgVz1uLmdldCgieXQtcGxheWVyLWx2Iik7cmV0dXJuIEpTT04ucGFyc2UoV3x8Int9Iil9Y2F0Y2goVyl7cmV0dXJue319fTsKZSQ9ZnVuY3Rpb24obil7cmV0dXJuIExMKClbbl18fDB9OwpnNj1mdW5jdGlvbihuLFcpe3ZhciBEPUxMKCk7VyE9PURbbl0mJihXIT09MD9EW25dPVc6ZGVsZXRlIERbbl0sbj14TCgpKSYmKEQ9SlNPTi5zdHJpbmdpZnkoRCksbi5zZXQoInl0LXBsYXllci1sdiIsRCkpfTsKZy5YZT1hc3luYyBmdW5jdGlvbihuKXtyZXR1cm4gQ0YoamlVKCksbil9Owp0eD1hc3luYyBmdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe2lmKGUkKG4pPT09NClyZXR1cm4gNDt2YXIgTD1hd2FpdCBnLm5QKCk7aWYoIUwpdGhyb3cgZy5yMCgid2lhYyIpO3gmJmghPT12b2lkIDAmJihoPWF3YWl0IENuaSh4LGgpKTt2YXIgZT1ELmxhc3RNb2RpZmllZHx8IjAiO3g9YXdhaXQgZy5YZShMKTt0cnl7cmV0dXJuIHFzKyssYXdhaXQgT1IoeCxbImluZGV4IiwibWVkaWEiXSx7bW9kZToicmVhZHdyaXRlIix0YWc6IklEQl9UUkFOU0FDVElPTl9UQUdfV0lBQyIsR1E6ITB9LEc9PntpZihrIT09dm9pZCAwJiZoIT09dm9pZCAwKXt2YXIgcj1gJHtufXwke1cuaWR9fCR7ZX18JHtTdHJpbmcoaykucGFkU3RhcnQoMTAsIjAiKX1gO3I9Ry5vYmplY3RTdG9yZSgibWVkaWEiKS5wdXQoaCxyKX1lbHNlIHI9c1IucmVzb2x2ZSh2b2lkIDApO3ZhciBOPUdmKG4sVy5mWSgpKSxIPUdmKG4sIVcuZlkoKSksQT17Zm10czpnLkV0KHtkbHQ6Yi5kb3dubG9hZGVkRW5kVGltZS50b1N0cmluZygpLApta2V0OmIubWF4S25vd25FbmRUaW1lLnRvU3RyaW5nKCksYXZicjpiLmF2ZXJhZ2VCeXRlUmF0ZS50b1N0cmluZygpfSksZm9ybWF0OkR8fHt9fTtOPUcub2JqZWN0U3RvcmUoImluZGV4IikucHV0KEEsTik7dmFyIHk9Yi5kb3dubG9hZGVkRW5kVGltZT09PS0xO0E9eT9HLm9iamVjdFN0b3JlKCJpbmRleCIpLmdldChIKTpzUi5yZXNvbHZlKHZvaWQgMCk7dmFyIFQ9e2ZtdHM6Im11c2ljIixmb3JtYXQ6e319O0c9eSYmdiYmIVcuZlkoKT9HLm9iamVjdFN0b3JlKCJpbmRleCIpLnB1dChULEgpOnNSLnJlc29sdmUodm9pZCAwKTtyZXR1cm4gc1IuYWxsKFtHLEEscixOXSkudGhlbigoWyx6XSk9Pntxcy0tO3ZhciBDPWUkKG4pLFE7IShRPUMhPT00JiZ5JiZ2KSYmKFE9eiE9PXZvaWQgMCkmJihRPSh6PXouZm10cyk/ej09PSJtdXNpYyI/ITA6ei5pbmNsdWRlcygiZGx0PS0xIil8fCF6LmluY2x1ZGVzKCJkbHQ9Iik6ITEpO1EmJihDPTEsZzYobixDKSk7cmV0dXJuIEN9KX0pfWNhdGNoKEcpe3FzLS07Cng9ZSQobik7aWYoeD09PTQpcmV0dXJuIHg7ZzYobiw0KTt0aHJvdyBHO319OwpCJHg9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9YXdhaXQgZy5uUCgpO2lmKCFXKXRocm93IGcucjAoInJpIik7cmV0dXJuIE9SKGF3YWl0IGcuWGUoVyksWyJpbmRleCJdLHttb2RlOiJyZWFkb25seSIsdGFnOiJJREJfVFJBTlNBQ1RJT05fVEFHX0xNUkkifSxEPT57dmFyIGI9SURCS2V5UmFuZ2UuYm91bmQobisifCIsbisifiIpO3JldHVybiBELm9iamVjdFN0b3JlKCJpbmRleCIpLmdldEFsbChiKS50aGVuKHY9PnYubWFwKGs9Pms/ay5mb3JtYXQ6e30pKX0pfTsKdzNpPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9YXdhaXQgZy5uUCgpO2lmKCFrKXRocm93IGcucjAoInJjIik7az1PUihhd2FpdCBnLlhlKGspLFsibWVkaWEiXSx7bW9kZToicmVhZG9ubHkiLHRhZzoiSURCX1RSQU5TQUNUSU9OX1RBR19MTVJNIn0saD0+e3ZhciB4PWAke259fCR7V318JHtEfXwke1N0cmluZyhiKS5wYWRTdGFydCgxMCwiMCIpfWA7cmV0dXJuIGgub2JqZWN0U3RvcmUoIm1lZGlhIikuZ2V0KHgpfSk7CnJldHVybiB2P2sudGhlbihoPT57aWYoaD09PXZvaWQgMCl0aHJvdyBFcnJvcigiTm8gZGF0YSBmcm9tIGluZGV4RGIiKTtyZXR1cm4gRkkxKHYsaCl9KS5jYXRjaChoPT57dGhyb3cgbmV3IGcuUXgoYEVycm9yIHdoaWxlIHJlYWRpbmcgY2h1bms6ICR7aC5uYW1lfSwgJHtoLm1lc3NhZ2V9YCk7Cn0pOmt9OwpHZj1mdW5jdGlvbihuLFcpe3JldHVybmAke259fCR7Vz8idiI6ImEifWB9OwpSRWk9ZnVuY3Rpb24obil7dmFyIFc9e30sRD17fTtmb3IobGV0IGsgb2Ygbil7dmFyIGI9ay5zcGxpdCgifCIpO2lmKCFrLm1hdGNoKE1tQykpe0Rba109Ij8iO2NvbnRpbnVlfW49TnVtYmVyKGIucG9wKCkpO2lmKGlzTmFOKG4pKXtEW2tdPSI/Ijtjb250aW51ZX12YXIgdj1iLmpvaW4oInwiKTsoYj1XW3ZdKT8odj1iW2IubGVuZ3RoLTFdLG49PT12LmVuZCsxP3YuZW5kPW46Yi5wdXNoKHtzdGFydDpuLGVuZDpufSkpOldbdl09W3tzdGFydDpuLGVuZDpufV19Zm9yKGxldCBrIG9mIE9iamVjdC5rZXlzKFcpKURba109V1trXS5tYXAoaD0+YCR7aC5zdGFydH0tJHtoLmVuZH1gKS5qb2luKCIsIik7CnJldHVybiBEfTsKJEw9ZnVuY3Rpb24obixXKXt2YXIgRD1uLlYoKSxiPW4uWCgpLHY9MSxrPTAsaD1nLmRNKG4ueVEuZXhwZXJpbWVudHMsImh0bWw1X2RlZmF1bHRfYWRfZ2FpbiIpO2ghPW51bGwmJkQmJih2PWgpO2lmKGI/LkQoKSl7az1iLmF1ZGlvPy5KPz9uLko7aWYoaz09bnVsbHx8aXNOYU4oaykpaz12b2lkIDA7cmV0dXJue0R5OjAsWnI6MSx3RzoxLGZkOmsscHk6ayxSUzprLGZvcm1hdElkOmIuaWQsYUc6VyxJejpuLnlRLlZRLFFPOm4uUU99fUQ9Yj8uYXVkaW8/Lko/P24uSjtiIT1udWxsJiZiLmF1ZGlvPy5KPT1udWxsJiZuLlUoImFnYyIse25vX2FiOjF9KTtpZihEPT1udWxsfHxpc05hTihEKSlyZXR1cm4gVz1iPy5hdWRpbz8uWCE9bnVsbD9iLmF1ZGlvLlg6bi5XLGlzTmFOKFcpfHwoaz00KSxXPS1XLHtEeTpXLFpyOk1hdGgubWluKDEsMTAqKihXLzIwKSl8fHYsd0c6ayxmb3JtYXRJZDpiPy5pZCxRTzpuLlFPfTtrPTE7aD1uLmxvdWRuZXNzVGFyZ2V0TGtmczt2YXIgeD1uLnlRLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9zdGF0ZWZ1bF9hdWRpb19ub3JtYWxpemF0aW9uIik7CmlmKG4uYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb24mJngpe2lmKFchPW51bGwpdmFyIEw9VztlbHNlIGlzRmluaXRlKG4ueVEuVlEpJiYoTD1uLnlRLlZRKTtMIT1udWxsJiYoaz0yLGg9Zy5GZihMLG4ubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcyxuLmxvdWRuZXNzVGFyZ2V0TGtmcykpfXZhciBlPU1hdGgubWluKGgtRCwwKTt2YXIgRz1EK2U7dj1NYXRoLm1pbigxLDEwKiooZS8yMCkpfHx2O3gmJm4uVSgiYWdjIix7c3Rub3JtOm4uYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb24saHN0OlcsZW52Om4ueVEuVlEsZm1sOkQsc3RndDpMLHRtaW46bi5taW5pbXVtTG91ZG5lc3NUYXJnZXRMa2ZzLHRtYXg6bi5sb3VkbmVzc1RhcmdldExrZnMsbmc6ZX0pO3JldHVybntEeTplLFpyOnYsd0c6ayxmZDpELHB5OmgsUlM6Ryxmb3JtYXRJZDpiPy5pZCxhRzpXLEl6Om4ueVEuVlEsUU86bi5RT319OwpyNj1mdW5jdGlvbihuLFcpe1c9JEwobixXKTtuLk49VztuLnByZXNlcnZlU3RhdGVmdWxMb3VkbmVzc1RhcmdldCYmVy5SUyE9bnVsbCYmKG4ueVEuVlE9Vy5SUyk7cmV0dXJuIFcuWnJ9OwpRaTI9ZnVuY3Rpb24obixXLEQpe1c9e2NwbjpXfTtuLmluZGV4T2YoIi9pYncvIik9PT0tMSYmKFcuaWJ3PUQ/U3RyaW5nKEQpOiIxMzY5ODQzIik7cmV0dXJue3VybDpnLkVUKG4sVyksdHlwZToiYXBwbGljYXRpb24veC1tcGVnVVJMIixxdWFsaXR5OiJhdXRvIixpdGFnOiI5MyJ9fTsKVm10PWZ1bmN0aW9uKG4pe3RyeXtsZXQgVz0obmV3IGcud1oobiwhMCkpLmdldCgibiIpO2lmKFcpe2xldCBEPW4ubWF0Y2goL1wvblwvKFteL10rKS8pO2lmKEQmJkRbMV0mJkRbMV0hPT1XKXJldHVybiBuLnJlcGxhY2UoYC9uLyR7RFsxXX1gLGAvbi8ke1d9YCl9fWNhdGNoKFcpe2cuR3EoVyl9cmV0dXJuIG59OwpzVT1mdW5jdGlvbihuKXtpZihuLmlzQWQoKSYmKG4uVlE/bi52aWRlb0lkIT09bi55US5TJDpuLnZpZGVvSWQhPW4ueVEuUyQpKXJldHVybiBuLnlRLlMkfTsKVm49ZnVuY3Rpb24obil7aWYobil7aWYoQm4obikpcmV0dXJuIG47bj1lQShuKTtpZihCbihuLCEwKSlyZXR1cm4gbn1yZXR1cm4iIn07CmcuWU49ZnVuY3Rpb24obil7aWYoZy4kNihuLnlRKSYmbi55US5WPT09Inl0IiYmIW4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25feXRfZW1iZWRzIikpcmV0dXJuITE7aWYobi5abylyZXR1cm4gbi5ERSYmbi5VKCJmZHMiLHtmZHM6ITB9LCEwKSwhMTtpZihuLnlRLlYhPT0ieXQiJiYhY3F4KG4pKXJldHVybiBuLkRFJiZuLlUoImRzdm4iLHtuczpuLnlRLlZ9LCEwKSwhMTtpZihuLmNvdG58fCFuLk58fG4uTi5pc090ZiYmIW4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb3RmX2luX2NsaWVudCIpfHxuLlcmJiFuLlcuTigpfHxuLkNVJiYhbi5TKCJodG1sNV9lbmFibGVfc2Ficl9jc2RhaSIpKXJldHVybiExO2lmKG4uUygiaHRtbDVfdXNlX3NhYnJfcmVxdWVzdHNfZm9yX2RlYnVnZ2luZyIpKXJldHVybiEwO24uREUmJm4uVSgiZXNmdyIse3VzYmM6bi5ERSxoc3U6ISFuLmxDfSwhMCk7aWYobi5ERSYmbi5sQylyZXR1cm4hMDtpZihuLlMoImh0bWw1X3JlbW92ZV9jbGllbnRfc2Ficl9kZXRlcm1pbmF0aW9uIikpcmV0dXJuITE7CnZhciBXPSFuLk4uelcmJiFuLk1pKCksRD1XJiZOcyYmbi5TKCJodG1sNV9lbmFibGVfc2Ficl92b2Rfc3RyZWFtaW5nX3hociIpO1c9VyYmIU5zJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX3ZvZF9ub25fc3RyZWFtaW5nX3hociIpO3ZhciBiPXBMKG4pLHY9bi5TKCJodG1sNV9lbmFibGVfc2Ficl9kcm1fdm9kX3N0cmVhbWluZ194aHIiKSYmTnMmJm4uTWkoKSYmIW4uTi56VyYmKG4uZHJtUHJvZHVjdD09PSIxIj8hMTohMCk7KEQ9RHx8V3x8Ynx8dikmJiFuLmxDJiZuLlUoInNhYnIiLHtsb2M6Im0ifSwhMCk7cmV0dXJuIEQmJiEhbi5sQ307CldqPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O2ZvcihsZXQgRCBvZiBuKW49RC5zcGxpdCgiPSIpLG4ubGVuZ3RoPT09Mj9XW25bMF1dPW5bMV06V1tEXT0hMDtyZXR1cm4gV307CkhqPWZ1bmN0aW9uKG4pe2lmKG4uUygiaHRtbDVfb25lc2llIikmJm4uZXJyb3JDb2RlKXJldHVybiExO3ZhciBXPWcuamoobi5JSiwieXBjIik7bi55cGNQcmV2aWV3JiYoVz0hMSk7cmV0dXJuIG4uT1YoKSYmIW4ubG9hZGluZyYmKGcuWUwobil8fGcuamoobi5JSiwiaGVhcnRiZWF0Iil8fFcpfTsKZkw9ZnVuY3Rpb24obil7bi5xTigpfHwobi5sb2FkaW5nPSExLG4uV0ooImRhdGFsb2FkZWQiKSl9OwptZj1mdW5jdGlvbihuLFcpe3ZhciBEPVcucmF3X2VtYmVkZGVkX3BsYXllcl9yZXNwb25zZTtpZighRCl7dmFyIGI9Vy5lbWJlZGRlZF9wbGF5ZXJfcmVzcG9uc2U7YiYmKEQ9SlNPTi5wYXJzZShiKSl9RCYmKG4uTz1EKTtpZihuLk8pe24uZW1iZWRkZWRQbGF5ZXJDb25maWc9bi5PLmVtYmVkZGVkUGxheWVyQ29uZmlnfHxudWxsO2lmKEQ9bi5PLnZpZGVvRmxhZ3MpRC5wbGF5YWJsZUluRW1iZWQmJihuLmFsbG93RW1iZWQ9ITApLEQuaXNQcml2YXRlJiYobi5pc1ByaXZhdGU9ITApLEQudXNlckRpc3BsYXlOYW1lJiYoVy51c2VyX2Rpc3BsYXlfbmFtZT1ELnVzZXJEaXNwbGF5TmFtZSksRC51c2VyRGlzcGxheUltYWdlJiYoVy51c2VyX2Rpc3BsYXlfaW1hZ2U9RC51c2VyRGlzcGxheUltYWdlKTtpZigoRD1uLk8uZW1iZWRQcmV2aWV3KSYmRC50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIpe0Q9RC50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI7bkwobixELmNvbnRyb2xCZ0h0bWwpO2lmKGI9CkQuZGVmYXVsdFRodW1ibmFpbCluLnRPPXdjKGIpOyhiPWcudyhEPy52aWRlb0RldGFpbHMsYW9VKSkmJkp4KG4sVyxiKTtiPWcudyhEPy52aWRlb0RldGFpbHMsbnFNKTtuLkU1PSEhRC5hZGRUb1dhdGNoTGF0ZXJCdXR0b247bi5zaG93U2hhcmVCdXR0b249ISFELnNoYXJlQnV0dG9uO2I/Lm11c2ljVmlkZW9UeXBlJiYobi5tdXNpY1ZpZGVvVHlwZT1iLm11c2ljVmlkZW9UeXBlKTtpZihiPWcudyhuLmdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UoKT8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI/LnBsYXlCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5uYXZpZ2F0aW9uRW5kcG9pbnQsZy5JUSkpb0EobixiKSxuLnZpZGVvSWQ9Yi52aWRlb0lkfHxuLnZpZGVvSWQ7RC52aWRlb0R1cmF0aW9uU2Vjb25kcyYmKG4ubGVuZ3RoU2Vjb25kcz1nLk5oKEQudmlkZW9EdXJhdGlvblNlY29uZHMpKTtELndlYlBsYXllckFjdGlvbnNQb3J0aW5nJiZhQShuLEQud2ViUGxheWVyQWN0aW9uc1BvcnRpbmcpOwppZihEPWcudyhEPy5wbGF5bGlzdCxXR2kpKXtuLk1kPSEwO2I9W107dmFyIHY9TnVtYmVyKEQuY3VycmVudEluZGV4KTtpZihELmNvbnRlbnRzKWZvcihsZXQgaz0wLGg9RC5jb250ZW50cy5sZW5ndGg7azxoO2srKyl7bGV0IHg9RC5jb250ZW50c1trXS5wbGF5bGlzdFBhbmVsVmlkZW9SZW5kZXJlcjtpZigheCljb250aW51ZTtsZXQgTD14LnNob3J0QnlsaW5lVGV4dD9nLkRwKHguc2hvcnRCeWxpbmVUZXh0KToiIixlPXgudGl0bGU/Zy5EcCh4LnRpdGxlKToiIjtiLnB1c2goe2F1dGhvcjpMLGVuY3J5cHRlZF9pZDp4LnZpZGVvSWQsdGl0bGU6ZSxjaGFubmVsX3BhdGg6az09PXY/Vy5jaGFubmVsX3BhdGg6IiIscHJvZmlsZV9waWN0dXJlOms9PT12P1cucHJvZmlsZV9waWN0dXJlOiIiLGlzX3ByaXZhdGU6az09PXY/bi5pc1ByaXZhdGU6ITAsaXNfZG5pOms9PT12P24uaU46ITEsZG5pX2NvbG9yOms9PT12P24uclI6IiJ9KX1XPXtpbmRleDpELmN1cnJlbnRJbmRleCxsaXN0OkQucGxheWxpc3RJZCwKcGxheWxpc3RfbGVuZ3RoOkQudG90YWxWaWRlb3MsdmlkZW86Yn07RC50aXRsZVRleHQmJihXLnRpdGxlPWcuRHAoRC50aXRsZVRleHQpKTtELnNob3J0QnlsaW5lVGV4dCYmKFcuYXV0aG9yPWcuRHAoRC5zaG9ydEJ5bGluZVRleHQpKTtuLlE3PVd9aWYoVz1nLncobi5nZXRFbWJlZGRlZFBsYXllclJlc3BvbnNlKCk/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5pbmZvUGFuZWwsUyQpKW4ud289TnVtYmVyKFc/LmR1cmF0aW9uTXMpfHxOYU4sVz8uaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihuLnhqPVc/LmluZm9QYW5lbE92ZXJ2aWV3Vmlld01vZGVsKSxXPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsJiYobi5Saz1XPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsKX1pZihuLk8ucHJldmlld1BsYXlhYmlsaXR5U3RhdHVzKXtpZihuLmVCPW4uTy5wcmV2aWV3UGxheWFiaWxpdHlTdGF0dXMsVz1uLmVCLCFbIk9LIiwiTElWRV9TVFJFQU1fT0ZGTElORSJdLmluY2x1ZGVzKFcuc3RhdHVzKSl7bi5lcnJvckNvZGU9CmlpKFcuZXJyb3JDb2RlKTtEPVcuZXJyb3JTY3JlZW47aWYoYj1EPy5wbGF5ZXJFcnJvck1lc3NhZ2VSZW5kZXJlcil7bi5mbT1iO2lmKHY9Yi5yZWFzb24pbi5lcnJvclJlYXNvbj1nLkRwKHYpO2lmKGI9Yi5zdWJyZWFzb24pbi53aT1nLkRwKGIpfWVsc2Ugbi5lcnJvclJlYXNvbj1XLnJlYXNvbnx8bnVsbDtzd2l0Y2goVy5zdGF0dXMpe2Nhc2UgIkxPR0lOX1JFUVVJUkVEIjpuLmVycm9yRGV0YWlsPSIxIjticmVhaztjYXNlICJDT05URU5UX0NIRUNLX1JFUVVJUkVEIjpuLmVycm9yRGV0YWlsPSIyIjticmVhaztjYXNlICJBR0VfQ0hFQ0tfUkVRVUlSRUQiOm4uZXJyb3JEZXRhaWw9RD8ucGxheWVyS2F2UmVuZGVyZXI/LmthdlVybD8iNCI6IjMiO2JyZWFrO2RlZmF1bHQ6bi5lcnJvckRldGFpbD1XLmlzQmxvY2tlZEluUmVzdHJpY3RlZE1vZGU/IjUiOiIwIn19fWVsc2Ugbi5PLnBsYXlhYmlsaXR5U3RhdHVzJiYobi5SdD1uLk8ucGxheWFiaWxpdHlTdGF0dXMsQXgobikmJihuLmVycm9yRGV0YWlsPQoiMCIsbi5SdCYmKChXPW4uUnQuZW1iZWRkZWRQbGF5ZXJFcnJvck1lc3NhZ2VSZW5kZXJlcik/bi5mbT1nLncoVyxEdEMpOm4uZXJyb3JSZWFzb249bi5SdC5yZWFzb258fG51bGwpKSk7KFc9bi5PLmF0dGVzdGF0aW9uKSYmUW4obixXKTsoVz1uLk8ucGVybWlzc2lvbnMpJiZXLmFsbG93SW1hTW9uZXRpemF0aW9uJiYobi5hbGxvd0ltYU1vbmV0aXphdGlvbj0hMCl9fTsKRVU9ZnVuY3Rpb24obixXKXt2YXIgRD1XLnJhd193YXRjaF9uZXh0X3Jlc3BvbnNlO2lmKCFEKXt2YXIgYj1XLndhdGNoX25leHRfcmVzcG9uc2U7YiYmKEQ9SlNPTi5wYXJzZShiKSl9aWYoRCl7bi53YXRjaE5leHRSZXNwb25zZT1EOyhEPW4ud2F0Y2hOZXh0UmVzcG9uc2UucGxheWVyQ3VlUmFuZ2VTZXQpJiZnLktMKG4sRCk7RD1uLndhdGNoTmV4dFJlc3BvbnNlLnBsYXllck92ZXJsYXlzO2lmKEQmJihEPUQucGxheWVyT3ZlcmxheVJlbmRlcmVyKSl7aWYoYj1ELmF1dG9uYXZUb2dnbGUpbi5hdXRvcGxheVN3aXRjaEJ1dHRvblJlbmRlcmVyPWcudyhiLGJXWiksbi5TKCJ3ZWJfcGxheWVyX2F1dG9uYXZfdXNlX3NlcnZlcl9wcm92aWRlZF9zdGF0ZSIpJiZuLkFWKCkmJihuLmF1dG9uYXZTdGF0ZT1uLmF1dG9wbGF5U3dpdGNoQnV0dG9uUmVuZGVyZXIuZW5hYmxlZD8yOjEpO2lmKGI9RC52aWRlb0RldGFpbHMpe3ZhciB2PWIuZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXI7CmlmKGI9Yi5wbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXIpYi50aXRsZSYmKFcudGl0bGU9Zy5EcChiLnRpdGxlKSksYi5zdWJ0aXRsZSYmKFcuc3VidGl0bGU9Zy5EcChiLnN1YnRpdGxlKSl9Zy5DTihuLnlRKSYmKG4uRTU9ISFELmFkZFRvTWVudSk7bi5zaG93U2hhcmVCdXR0b249ISFELnNoYXJlQnV0dG9uO0Quc3RhcnRQb3NpdGlvbiYmRC5lbmRQb3NpdGlvbiYmKG4ucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uPUQuc3RhcnRQb3NpdGlvbixuLnByb2dyZXNzQmFyRW5kUG9zaXRpb249RC5lbmRQb3NpdGlvbik7aWYoYj1nLncobi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5pbmZvUGFuZWwsUyQpKW4ud289TnVtYmVyKGI/LmR1cmF0aW9uTXMpfHxOYU4sYj8uaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihuLnhqPWI/LmluZm9QYW5lbE92ZXJ2aWV3Vmlld01vZGVsKSxiPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsJiYKKG4uUms9Yj8uaW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbCk7bi5zaG93U2Vla2luZ0NvbnRyb2xzPSEhRC5zaG93U2Vla2luZ0NvbnRyb2xzfWlmKEQ9bi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5jb250ZW50cz8udHdvQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cylpZihEPUQuZGVza3RvcE92ZXJsYXkmJmcudyhELmRlc2t0b3BPdmVybGF5LHZxdCkpRC5zdXBwcmVzc1NoYXJlQnV0dG9uJiYobi5zaG93U2hhcmVCdXR0b249ITEpLEQuc3VwcHJlc3NXYXRjaExhdGVyQnV0dG9uJiYobi5FNT0hMSk7diYmSngobixXLHYpO0Q9REkoMCxXLmF1dG9wbGF5X2NvdW50KTt2YXIgaz1uLmdldFdhdGNoTmV4dFJlc3BvbnNlKCk7Yj1rLmNvbnRlbnRzPy50d29Db2x1bW5XYXRjaE5leHRSZXN1bHRzO3Y9ay5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5hdXRvcGxheT8ucGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI7dmFyIGg9a0wobik7aWYoKGs9ay5jb250ZW50cz8uc2luZ2xlQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cykmJgprLmF1dG9wbGF5Py5hdXRvcGxheSYmIWsucGxheWxpc3Qpe2xldCB5PWsuYXV0b3BsYXkuYXV0b3BsYXkuc2V0cztrPXt9O3ZhciB4PW5ldyBPVShuLkcoKSksTD1udWxsLGU7aWYoeSl7Zm9yKHZhciBHIG9mIHkpaWYoKGU9Ry5hdXRvcGxheVZpZGVvUmVuZGVyZXIpJiZlLmNvbXBhY3RWaWRlb1JlbmRlcmVyKXtMPWUuY29tcGFjdFZpZGVvUmVuZGVyZXI7YnJlYWt9aWYoZT15WzBdLmF1dG9wbGF5VmlkZW8pKEc9ZS5jbGlja1RyYWNraW5nUGFyYW1zKSYmKGsuaXRjdD1HKSxrLmF1dG9uYXY9IjEiLGsucGxheW5leHQ9U3RyaW5nKEQpfWVsc2Ugay5mZWF0dXJlPSJyZWxhdGVkLWF1dG8iO2U9Zy53KGUsZy5JUSk7aWYoTCl7eC52aWRlb0lkPUwudmlkZW9JZDtpZihlPUwuc2hvcnRCeWxpbmVUZXh0KXguYXV0aG9yPWcuRHAoZSk7aWYoZT1MLnRpdGxlKXgudGl0bGU9Zy5EcChlKX1lbHNlIGUhPW51bGwmJmUudmlkZW9JZCYmKHgudmlkZW9JZD1lLnZpZGVvSWQpO3gueXo9aztuLnN1Z2dlc3Rpb25zPQpbXTtuLlU1PXh9aWYoaCl7ZT1bXTtmb3IodmFyIHIgb2YgaCl7aD12b2lkIDA7Rz1udWxsO2lmKHIuZW5kU2NyZWVuVmlkZW9SZW5kZXJlcil7az1yLmVuZFNjcmVlblZpZGVvUmVuZGVyZXI7eD1rLnRpdGxlO0c9bmV3IE9VKG4uRygpKTtHLnZpZGVvSWQ9ay52aWRlb0lkO0cubGVuZ3RoU2Vjb25kcz1rLmxlbmd0aEluU2Vjb25kc3x8MDtpZihMPWsucHVibGlzaGVkVGltZVRleHQpRy5wdWJsaXNoZWRUaW1lVGV4dD1nLkRwKEwpO2lmKEw9ay5zaG9ydEJ5bGluZVRleHQpRy5hdXRob3I9Zy5EcChMKTtpZihMPWsuc2hvcnRWaWV3Q291bnRUZXh0KUcuc2hvcnRWaWV3Q291bnQ9Zy5EcChMKTt4JiYoRy50aXRsZT1nLkRwKHgpLCh4PXguYWNjZXNzaWJpbGl0eSkmJih4PXguYWNjZXNzaWJpbGl0eURhdGEpJiZ4LmxhYmVsJiYoRy5hcmlhTGFiZWw9eC5sYWJlbCkpO2lmKEw9ay5uYXZpZ2F0aW9uRW5kcG9pbnQpaD1MLmNsaWNrVHJhY2tpbmdQYXJhbXMseD1nLncoTCxnLklRKSxMPWcudyhMLApnLlBqKSx4P0cuczA9eDpMIT1udWxsJiYoRy53YXRjaFVybD1MLnVybCk7aWYoeD1rLnRodW1ibmFpbE92ZXJsYXlzKWZvcih2YXIgTiBvZiB4KWlmKHg9Ti50aHVtYm5haWxPdmVybGF5VGltZVN0YXR1c1JlbmRlcmVyKWlmKHguc3R5bGU9PT0iTElWRSIpe0cuaXNMaXZlUGxheWJhY2s9ITA7YnJlYWt9ZWxzZSBpZih4LnN0eWxlPT09IlVQQ09NSU5HIil7Ry5pc1VwY29taW5nPSEwO2JyZWFrfUcudE89d2Moay50aHVtYm5haWwpfWVsc2UgaWYoci5lbmRTY3JlZW5QbGF5bGlzdFJlbmRlcmVyKXtrPXIuZW5kU2NyZWVuUGxheWxpc3RSZW5kZXJlcjtoPWsubmF2aWdhdGlvbkVuZHBvaW50O2lmKCFoKWNvbnRpbnVlO0c9Zy53KGgsZy5JUSk7aWYoIUcpY29udGludWU7eD1HLnZpZGVvSWQ7Rz1uZXcgWnoobi5HKCkpO0cucGxheWxpc3RJZD1rLnBsYXlsaXN0SWQ7Ry5wbGF5bGlzdExlbmd0aD1OdW1iZXIoay52aWRlb0NvdW50KXx8MDtHLk49eHx8bnVsbDtHLnZpZGVvSWQ9eDtpZih4PQprLnRpdGxlKUcudGl0bGU9Zy5EcCh4KTtpZih4PWsuc2hvcnRCeWxpbmVUZXh0KUcuYXV0aG9yPWcuRHAoeCk7aD1oLmNsaWNrVHJhY2tpbmdQYXJhbXM7Ry50Tz13YyhrLnRodW1ibmFpbCl9RyYmKGgmJihHLnNlc3Npb25EYXRhPXtpdGN0Omh9KSxlLnB1c2goRykpfW4uc3VnZ2VzdGlvbnM9ZX1pZih2KXtuLkozPSEhdi5wcmVmZXJJbW1lZGlhdGVSZWRpcmVjdDtuLkcoKS5adCgpLk4uUVEoa05qKSYmKG4uaDM9ISF2LnNob3dQYXVzZWRXaGVuRGlzYWJsZWQpO24uclc9bi5yV3x8ISF2LndlYlNob3dOZXdBdXRvbmF2Q291bnRkb3duO2lmKG4uclcpe049djtiPWJ8fG51bGw7cj1uZXcgT1Uobi5HKCkpO3IudmlkZW9JZD1OLnZpZGVvSWQ7aWYoZT1OLnZpZGVvVGl0bGUpci50aXRsZT1nLkRwKGUpLChlPWUuYWNjZXNzaWJpbGl0eSkmJihlPWUuYWNjZXNzaWJpbGl0eURhdGEpJiZlLmxhYmVsJiYoci5hcmlhTGFiZWw9ZS5sYWJlbCk7aWYoZT1OLmJ5bGluZSlyLmF1dGhvcj1nLkRwKGUpOwppZihlPU4ucHVibGlzaGVkVGltZVRleHQpci5wdWJsaXNoZWRUaW1lVGV4dD1nLkRwKGUpO2lmKGU9Ti5zaG9ydFZpZXdDb3VudFRleHQpci5zaG9ydFZpZXdDb3VudD1nLkRwKGUpO2lmKGU9Ti50aHVtYm5haWxPdmVybGF5cylmb3IodmFyIEggb2YgZSlpZihlPUgudGh1bWJuYWlsT3ZlcmxheVRpbWVTdGF0dXNSZW5kZXJlcilpZihlLnN0eWxlPT09IkxJVkUiKXtyLmlzTGl2ZVBsYXliYWNrPSEwO2JyZWFrfWVsc2UgaWYoZS5zdHlsZT09PSJVUENPTUlORyIpe3IuaXNVcGNvbWluZz0hMDticmVha31lbHNlIGlmKGUuc3R5bGU9PT0iREVGQVVMVCImJmUudGV4dCl7ci5sZW5ndGhUZXh0PWcuRHAoZS50ZXh0KTsoSD1lLnRleHQuYWNjZXNzaWJpbGl0eSkmJihIPUguYWNjZXNzaWJpbGl0eURhdGEpJiZILmxhYmVsJiYoci5pZz1ILmxhYmVsfHwiIik7YnJlYWt9ci50Tz13YyhOLmJhY2tncm91bmQpO2lmKEg9Ti5uZXh0QnV0dG9uKWlmKEg9SC5idXR0b25SZW5kZXJlcilpZihIPUgubmF2aWdhdGlvbkVuZHBvaW50KWlmKEg9CmcudyhILGcuSVEpKXIuczA9SDtOLnRvcEJhZGdlcyYmKEg9Ti50b3BCYWRnZXNbMF0pJiYoSD1nLncoSCxoazIpKSYmSC5zdHlsZT09PSJCQURHRV9TVFlMRV9UWVBFX1BSRU1JVU0iJiYoci5OPSEwKTtpZihIPU4uYWx0ZXJuYXRpdmVUaXRsZSlyLko5PWcuRHAoSCk7SD1yO0Q9e2F1dG9uYXY6IjEiLHBsYXluZXh0OlN0cmluZyhEKX07SC5wbGF5bGlzdElkJiYoRC5hdXRvcGxheT0iMSIpO2lmKGIpe2lmKE49Yi5hdXRvcGxheT8uYXV0b3BsYXk/LnNldHM/LlswXT8uYXV0b3BsYXlWaWRlbylpZigoYj1OLmNsaWNrVHJhY2tpbmdQYXJhbXMpJiYoRC5pdGN0PWIpLE49Zy53KE4sZy5JUSkpSC50RT1OfWVsc2UgTiYmKE49Ti5uZXh0QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50Py5jbGlja1RyYWNraW5nUGFyYW1zKSYmKEQuaXRjdD1OKTtELml0Y3R8fChELmZlYXR1cmU9InJlbGF0ZWQtYXV0byIpO0gueXo9RDtuLnN1Z2dlc3Rpb25zfHwobi5zdWdnZXN0aW9ucz0KW10pO24uVTU9cn12LmNvdW50RG93blNlY3MhPW51bGwmJihuLk9OPXYuY291bnREb3duU2VjcyoxRTMpO3YuY291bnREb3duU2Vjc0ZvckZ1bGxzY3JlZW4hPW51bGwmJihuLnMzPXYuY291bnREb3duU2Vjc0ZvckZ1bGxzY3JlZW4+PTA/di5jb3VudERvd25TZWNzRm9yRnVsbHNjcmVlbioxRTM6LTEpfWlmKHY9a0wobikpdj12Py5bMF0/LmVuZFNjcmVlblZpZGVvUmVuZGVyZXI/Lm5hdmlnYXRpb25FbmRwb2ludD8uY2xpY2tUcmFja2luZ1BhcmFtcyxIPW4uVTV8fG4uc3VnZ2VzdGlvbnM/LlswXXx8bnVsbCx2JiZIJiYoSC5zZXNzaW9uRGF0YT17aXRjdDp2fSk7bi53YXRjaE5leHRSZXNwb25zZS5jdXJyZW50VmlkZW9UaHVtYm5haWwmJihuLnRPPXdjKG4ud2F0Y2hOZXh0UmVzcG9uc2UuY3VycmVudFZpZGVvVGh1bWJuYWlsKSk7KHY9bi53YXRjaE5leHRSZXNwb25zZT8uY29udGVudHM/LnR3b0NvbHVtbldhdGNoTmV4dFJlc3VsdHM/LnJlc3VsdHM/LnJlc3VsdHM/LmNvbnRlbnRzKSYmCnZbMF0mJihIPXZbMF0udmlkZW9QcmltYXJ5SW5mb1JlbmRlcmVyKSYmSCYmSC5zdWJ0aXRsZSYmKG4uWDQ9Zy5EcChILnN1YnRpdGxlKSk7diYmdlsxXSYmKHY9dlsxXS52aWRlb1NlY29uZGFyeUluZm9SZW5kZXJlcj8ub3duZXI/LnZpZGVvT3duZXJSZW5kZXJlcj8udGh1bWJuYWlsPy50aHVtYm5haWxzKSYmdi5sZW5ndGgmJihuLnByb2ZpbGVQaWN0dXJlPXZbdi5sZW5ndGgtMV0udXJsKTtXPWtSKFcpO2lmKHY9bi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5vblJlc3BvbnNlUmVjZWl2ZWRFbmRwb2ludHMpZm9yKHZhciBBIG9mIHYpZy53KEEsVVUpJiYobi5ScT1nLncoQSxVVSkpLHY9Zy53KEEseHRNKSx2Py5lbnRpdHlLZXlzJiYobi5MTj12LmVudGl0eUtleXN8fFtdLHYudmlzaWJsZU9uTG9hZEtleXMmJihuLnZpc2libGVPbkxvYWRLZXlzPXYudmlzaWJsZU9uTG9hZEtleXMpKTtuLlMoIndlYl9rZXlfbW9tZW50c19tYXJrZXJzIikmJihBPXl6LmdldFN0YXRlKCkuZW50aXRpZXMsCnY9bmYoInZpc2liaWxpdHlfb3ZlcnJpZGUiLCJtYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5IiksQT1BLm1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHk/QS5tYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5W3ZdfHxudWxsOm51bGwsbi5IeD1BPy52aWRlb0lkPT09KG4udmlkZW9JZHx8VykmJkE/LnZpc2liaWxpdHlPdmVycmlkZU1hcmtlcnNLZXk/QS52aXNpYmlsaXR5T3ZlcnJpZGVNYXJrZXJzS2V5Om4udmlzaWJsZU9uTG9hZEtleXMsbi52aXNpYmxlT25Mb2FkS2V5cz1bLi4ubi5IeF0pfX07CmlqPWZ1bmN0aW9uKG4sVyl7aWYoVz1XLnJhd19yZWVsX2l0ZW1fd2F0Y2hfcmVzcG9uc2Upbi5yZWVsSXRlbVdhdGNoUmVzcG9uc2U9V307CnVqPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5yYXdfcmVzb2x2ZV91cmxfcmVzcG9uc2U7RHx8KFc9Vy5yZXNvbHZlX3VybF9yZXNwb25zZSkmJihEPUpTT04ucGFyc2UoVykpO0QmJihuLnBvPUQpfTsKZDY9ZnVuY3Rpb24obixXKXtuLmZmbGFncz1iTyhuLmZmbGFncyxXLmZmbGFncyk7dmFyIEQ9Vy5pdl9pbnZpZGVvX3VybDtEJiYobi5lYT1GTihEKSk7bi5SbT1ueShuLlJtLFcuaXZfYWRzX29ubHkpO2lmKEQ9Vy5jdGFfY29udmVyc2lvbl91cmxzKW4ubE09RDtuLmlzUGhhcm1hPW55KG4uaXNQaGFybWEsVy5pc19waGFybWEpO24uYXV0aG9yPWJPKG4uYXV0aG9yLFcuYXV0aG9yKTtuLndhPVZuKFcudHRzdXJsKXx8bi53YTtuLldjPW55KG4uV2MsVy5jY19hc3IpO2lmKEQ9Vy5wcm9maWxlX3BpY3R1cmUpbi5wcm9maWxlUGljdHVyZT1iTyhuLnByb2ZpbGVQaWN0dXJlLEQpO24udmlkZW9Db3VudFRleHQ9Yk8obi52aWRlb0NvdW50VGV4dCxXLnZpZGVvX2NvdW50X3RleHQpO24uYXV0b25hdlN0YXRlPVdCKG4uYXV0b25hdlN0YXRlLFcuYXV0b25hdl9zdGF0ZSxMRzEpO24uY2xpZW50UGxheWJhY2tOb25jZT1iTyhuLmNsaWVudFBsYXliYWNrTm9uY2UsVy5jcG4pO24uc3Vic2NyaWJlZD0Kbnkobi5zdWJzY3JpYmVkLFcuc3Vic2NyaWJlZCk7bi5yYXdWaWV3Q291bnQ9REkobi5yYXdWaWV3Q291bnQsVy52aWV3X2NvdW50KTtuLnNob3J0Vmlld0NvdW50PWJPKG4uc2hvcnRWaWV3Q291bnQsVy5zaG9ydF92aWV3X2NvdW50X3RleHQpO24ucHVibGlzaGVkVGltZVRleHQ9Yk8obi5wdWJsaXNoZWRUaW1lVGV4dHx8IiIsVy5wdWJsaXNoZWRUaW1lVGV4dCk7bi5sZW5ndGhUZXh0PWJPKG4ubGVuZ3RoVGV4dHx8IiIsVy5sZW5ndGhUZXh0KTtuLmlnPWJPKG4uaWd8fCIiLFcuaWcpO24uSjk9Yk8obi5KOXx8IiIsVy5KOSk7bi50aXRsZT1iTyhuLnRpdGxlLFcudGl0bGUpO24uc3VidGl0bGU9Yk8obi5zdWJ0aXRsZSxXLnN1YnRpdGxlKTtuLmV4cGFuZGVkVGl0bGU9Yk8obi5leHBhbmRlZFRpdGxlLFcuZXhwYW5kZWRfdGl0bGUpO24uZXhwYW5kZWRTdWJ0aXRsZT1iTyhuLmV4cGFuZGVkU3VidGl0bGUsVy5leHBhbmRlZF9zdWJ0aXRsZSk7bi55cGNQcmV2aWV3PWJPKG4ueXBjUHJldmlldywKVy55cGNfcHJldmlldyk7bi5EVD1iTyhuLkRULFcueXBjX29yaWdpbik7bi5MQj1ueShuLkxCLFcueXBjX2lzX3ByZW1pZXJlX3RyYWlsZXIpO24uSWs9Yk8obi5JayxXLnlwY19jbGlja3dyYXBfbWVzc2FnZSk7bi5wYXlnYXRlZD1ueShuLnBheWdhdGVkLFcucGF5Z2F0ZWQpO24uS289bnkobi5LbyxXLnJlcXVpcmVzX3B1cmNoYXNlKTtuLnNob3dTaGFyZUJ1dHRvbj0hbnkoIW4uc2hvd1NoYXJlQnV0dG9uLFcuc3MpO24uRTU9bnkobi5FNSxXLnNob3d3YXRjaGxhdGVyKTtpZihEPVcuZWwpbi5ldmVudExhYmVsPUQ7aWYoRD1XLmtleXdvcmRzKW4ua2V5d29yZHM9V2ooRC5zcGxpdCgiLCIpKTtpZihEPVcucnZzKW4uc3VnZ2VzdGlvbnM9dXcoRCkubWFwKGI9PmIucGxheWxpc3R8fGIubGlzdHx8Yi5hcGk/bmV3IFp6KG4ueVEsYik6bmV3IE9VKG4ueVEsYikpOwpuLmNvbnRlbnRDaGVja09rPW55KG4uY29udGVudENoZWNrT2ssVy5jY28pO24ucmFjeUNoZWNrT2s9bnkobi5yYWN5Q2hlY2tPayxXLnJjbyk7bi5pc0xpdmluZ1Jvb21EZWVwbGluaz1ueShuLmlzTGl2aW5nUm9vbURlZXBsaW5rLFcuaXNfbGl2aW5nX3Jvb21fZGVlcGxpbmspO24ub2F1dGhUb2tlbj1iTyhuLm9hdXRoVG9rZW4sVy5vYXV0aF90b2tlbik7bi5ISj1iTyhuLkhKLFcua3B0KTtuLnZpc2l0b3JEYXRhPWJPKG4udmlzaXRvckRhdGEsVy52aXNpdG9yX2RhdGEpO2lmKEQ9Vy5zZXNzaW9uX2RhdGEpbi5zZXNzaW9uRGF0YT15RihELCImIik7bi5XSz1iTyhuLldLLFcudHJhY2tpbmdfbGlzdCk7bi5EdD1ueShuLkR0LFcucGF1c2VfYXRfc3RhcnQpO29RKG4sVyl9Owp6Zj1mdW5jdGlvbihuLFcsRCxiKXtXJiZXLmNwbiYmZy5HcShuZXcgZy5ReCgiQ1BOIHByb3ZpZGVkIGluIFZpZGVvRGF0YSB1cGRhdGUiLHtIWjpXLmNwbixLWTpuLmNsaWVudFBsYXliYWNrTm9uY2UsdEY6RH0pKTtiJiYobi5lcnJvckNvZGU9bnVsbCxuLmVycm9yRGV0YWlsPSIiLG4uZXJyb3JSZWFzb249bnVsbCxuLndpPW51bGwpO0Q/KGtSKFcpLG4uc2V0RGF0YShXKSxIaihuKSYmZkwobikpOihXPVd8fHt9LG1mKG4sVyksRVUobixXKSxpaihuLFcpLHVqKG4sVyksZDYobixXKSxuLldKKCJkYXRhdXBkYXRlZCIpKX07Cm9RPWZ1bmN0aW9uKG4sVyl7Vy5pbmxpbmVNZXRyaWNFbmFibGVkJiYobi5pbmxpbmVNZXRyaWNFbmFibGVkPSEwKTtXLnBsYXliYWNrX3Byb2dyZXNzXzBzX3VybCYmKG4uVEk9bmV3IGVrdChXKSk7aWYoVz1XLnZpZGVvX21hc3RoZWFkX2FkX3F1YXJ0aWxlX3VybHMpbi5OZj1XLnF1YXJ0aWxlXzBfdXJsLG4uYmU9Vy5xdWFydGlsZV8yNV91cmwsbi56ND1XLnF1YXJ0aWxlXzUwX3VybCxuLm1EPVcucXVhcnRpbGVfNzVfdXJsLG4uV0g9Vy5xdWFydGlsZV8xMDBfdXJsLG4uRnI9Vy5xdWFydGlsZV8wX3VybHMsbi53Tj1XLnF1YXJ0aWxlXzI1X3VybHMsbi5DdD1XLnF1YXJ0aWxlXzUwX3VybHMsbi5vSD1XLnF1YXJ0aWxlXzc1X3VybHMsbi5BdD1XLnF1YXJ0aWxlXzEwMF91cmxzfTsKZy5LTD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBXKUQuY3VlUmFuZ2VTZXRJZGVudGlmaWVyJiZuLmJOLnNldChELmN1ZVJhbmdlU2V0SWRlbnRpZmllcixELnBsYXllckN1ZVJhbmdlcz8/W10pfTsKZ3FaPWZ1bmN0aW9uKG4pe2lmKCFuKXJldHVybiBudWxsO2ZvcihsZXQgVyBvZiBuKWlmKG49Vy5hZFBsYWNlbWVudFJlbmRlcmVyPy5yZW5kZXJlcj8udmlkZW9BZFRyYWNraW5nUmVuZGVyZXIpcmV0dXJuIG47cmV0dXJuIG51bGx9Owpsaj1mdW5jdGlvbihuKXt2YXIgVz1uLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/LmNvbXBvc2l0ZVZpZGVvQ29uZmlnPy5zb3VyY2VDb25maWdzO249bi5wbGF5ZXJSZXNwb25zZT8ucGxheWVyQ29uZmlnPy5jb21wb3NpdGVWaWRlb0NvbmZpZz8uZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQ7aWYoIVd8fCFXLmxlbmd0aClyZXR1cm4iIjtufHwobj1XWzBdLnZpZGVvSWR8fCIiKTtmb3IobGV0IEQgb2YgVylpZihELnZpZGVvSWQ9PT1uJiZELmF1ZGlvVHJhY2tzKWZvcihsZXQgYiBvZiBELmF1ZGlvVHJhY2tzKWlmKGIuaXNEZWZhdWx0Rm9yU291cmNlKXJldHVybiBiLmlkfHwiIjtyZXR1cm4iIn07ClhZaD1mdW5jdGlvbihuLFcsRCl7c3dpdGNoKFcpe2Nhc2UgIkVNQkVEREVEX1BMQVlFUl9MSVRFX01PREVfRklYRURfUExBWUJBQ0tfTElNSVQiOkQ+MzA/bi5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcz0zMDpEPDMwJiZEPjEwJiYobi5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcz0xMCk7YnJlYWs7Y2FzZSAiRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9EWU5BTUlDX1BMQVlCQUNLX0xJTUlUIjpuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPUQqLjJ9fTsKcWpoPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFchPW51bGw/bnkobi5LLFcpOm4uSz9uLks6bi55US5wcmVmZXJHYXBsZXNzJiZuLnlRLnN1cHBvcnRzR2FwbGVzc1Nob3J0cygpfTsKR05oPWZ1bmN0aW9uKG4pe3JldHVybiEhbiYmaXNGaW5pdGUobikmJm4+MUU5fTsKQ0w9ZnVuY3Rpb24obil7cmV0dXJuIHpRKCkmJlRmKG4pPyExOmokKG4pJiYoZy5HbChuLnlRKT8hbi5pc0xpdmVQbGF5YmFjazpuLmhsc3ZwKXx8IWZOKCl8fG4uVVQ/ITA6ITF9OwpCaj1mdW5jdGlvbihuKXtuPWcub0Uobik7cmV0dXJuIE51bWJlcihuLmV4cGlyZSl8fDB9OwpGZT1mdW5jdGlvbihuKXt2YXIgVz1uLkcoKTtyZXR1cm4gbi55US5WPT09ImhtInx8bi55US5WPT09ImdkInx8Vy5leHBlcmltZW50cy5adCgpLk4uUVEodFMyKSYmbi55US5YJiZuLnlRLlYhPT0iZ2wiPyEwOiExfTsKSng9ZnVuY3Rpb24obixXLEQpe3ZhciBiPUQuY2hhbm5lbFRodW1ibmFpbDtiJiYoYj1iLnRodW1ibmFpbHMpJiYoYj1iWzBdKSYmKFcucHJvZmlsZV9waWN0dXJlPWIudXJsKTtpZihiPWcudyhnLncoRD8uY2hhbm5lbFRodW1ibmFpbEVuZHBvaW50LCR0TSk/LnVybEVuZHBvaW50LGcuUGopKVcuY2hhbm5lbF9wYXRoPWIudXJsO2lmKGI9RC5jb2xsYXBzZWRSZW5kZXJlcilpZihiPWcudyhiLHIxcikpe2xldCB2PWIudGl0bGU7diYmKFcudGl0bGU9Zy5EcCh2KSk7aWYoYj1iLnN1YnRpdGxlKVcuc3VidGl0bGU9Zy5EcChiKX1pZihEPUQuZXhwYW5kZWRSZW5kZXJlcilpZihEPWcudyhELHNzQykpe2lmKGI9RC50aXRsZSlXLmV4cGFuZGVkX3RpdGxlPWcuRHAoYik7aWYoYj1ELnN1YnRpdGxlKVcuZXhwYW5kZWRfc3VidGl0bGU9Zy5EcChiKTtpZihEPUQuc3Vic2NyaWJlQnV0dG9uKW4uc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXI9Zy53KEQsTmgxKSxuLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyJiYKKFcudWNpZD1uLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLmNoYW5uZWxJZCxXLnN1YnNjcmliZWQ9bi5zdWJzY3JpYmVCdXR0b25SZW5kZXJlci5zdWJzY3JpYmVkLG4uc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbiYmbi5zdWJzY3JpYmVCdXR0b25SZW5kZXJlci5ub3RpZmljYXRpb25QcmVmZXJlbmNlVG9nZ2xlQnV0dG9uLnRvZ2dsZUJ1dHRvblJlbmRlcmVyJiYoVz1uLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24udG9nZ2xlQnV0dG9uUmVuZGVyZXIsVy5pc1RvZ2dsZWQ/KG4ubGU9Vy50b2dnbGVkU2VydmljZUVuZHBvaW50fHxudWxsLG4uWTA9Vy5kZWZhdWx0U2VydmljZUVuZHBvaW50fHxudWxsKToobi5sZT1XLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnR8fG51bGwsbi5ZMD1XLnRvZ2dsZWRTZXJ2aWNlRW5kcG9pbnR8fG51bGwpKSl9fTsKdzY9ZnVuY3Rpb24obil7cmV0dXJuISFuLkR4fHwhIW4uTmZ8fCEhbi5Gcnx8ISFuLlRJfHxuLmZafTsKUDA9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1XXm47aWYoKG4mMTA3KT09bil7dmFyIGg9YltJWzVdXTtEW0lba144MTgzXV0oZnVuY3Rpb24ocixOLEgpe3RoaXNbSVtrXjgxNTddXShIW05dPWJbKGJbSVtrXjgxNTNdXShyKS1iW0lba144MTUzXV0odGhpc1tOXSkrTitoLS0pJWJbSVs1XV1dKX0sdltJW2teODE3NV1dKElba144MTU4XSkpfWlmKChuXjcxKT49NiYmKG4tMiYxNik8MylhOnt2YXIgeD1nLncoRCxwWVopfHxEW0lba143NjZdXSxMPXt4aTohMSwKRWw6SVtrXjY3OF0seTc6SVtrXjY3OF0sczpJW2teNjc4XX07aWYoIXgpe3ZhciBlPUw7YnJlYWsgYX14PWcuaXcoeCk7TFtJW2teNzQzXV09ITA7TFtJW2teNjQ0XV09eFtJW2teNjg2XV07TFtJW2teNjY1XV09eFtJW2teNjc5XV07TFtJW2teNjQ4XV09eFtJW2teNjQ4XV07ZT1MfWlmKChuJjEyNik9PW4pYTp7TD1EW0lba143MjcxXV0oSVtrXjcyNTRdKTt4PVsvWy8sLTQsL11bfSxdXFsnLyxJW2teNzE4NF0sLShrXjE4MTg5Njc3MzgpLC0oa14zMzc1NjY4NzMpLGteOTg5NTU4NzU4LG51bGwsVVloLC0oa144MjEyMzQxMTApLGteODc1MzU2NTIyLC0oa145NDM2MTYyODUpLC0oa144MzYxOTg2MDIpLGteMTU5ODMxMjY5MixaODEsa143MDczMDE3OTAsa14xMTcyOTI1ODk4LG51bGwsa140MTk5NDUxMywtKGteMjc3NDM3NjUyKSxrXjE0MzEzMjI2NzcsRTJVLC0oa14xNDYyMzMwNzMxKSx4dlUsbnVsbCxrXjE2MDQ0MTY1LGteNDg4OTU0MTc0LGteODIyNTEwODUxLFlqWixMLEhXdCwKZmFpLG8yaiwtKGteMjAyOTQ4MDMyNyksa14xMjgxODQ0NjYsa142NjMwMjAxNDQsU0ExLC0oa14xMjYwMTUwODE1KSwtKGteMTM4NTgyODA1NiksLShrXjE2NjI1MTc4MzcpLGteMTQ3ODUyMTA0NCwkWWosa14xODcwOTA2Mjg1LGteODIyNTEwODUxLFN1eCwtKGteMTExOTIxMzExNCksLShrXjg3NDEwNjcxMCksa14yMDc2NDU3OTE4LGteMTc0Njc4MTY5NCxJW2teNzI0MF0sb1VqLGteMTM4NDIyNjkxNSxNQ2IsLShrXjE2MjA0NjE3NTYpLGteMTI3MjM0ODc2MCxJW2teNzI5NF0sLShrXjkxMjQ2MDk4MSksa14xODg3MTM4NTY5LEoxWixJW2teNzE3MV0sTCwtKGteMTg5NjQ1NTA0KSwtKGteMTM1NTU3MzkzMSksLShrXjE0MTE5OTc0MjkpLGteMTk0Mzk0NjQxMyxMLElhMixTalUsa14xODcwOTA2Mjg1LElba143MjkwXSxBMTEsa14xMDM5NzI3ODI1LGteOTQxOTgzMTg4LC0oa14xODUwNDM2ODczKSxJW2teNzE2OF0sa14yMTYzOTkwMjEsbXR4LC0oa140NjQ5MjEzOSldO3hbNV09Cng7eFtrXjcyNDRdPXg7eFtrXjcyNTNdPXg7aWYodHlwZW9mIEtHdD09PUlba143Mjc4XSl7ZT1EO2JyZWFrIGF9dHJ5e3RyeXt4W2teNzI1NV09PT0tMyYmKCgoMCx4W2teNzI1NF0pKHhba143MTczXSx4W2teNzI0NF0pLCgoMCx4W2teNzI4MV0pKHhba143MjU2XSwoMCx4W2teNzI5MV0pKCkseFtrXjcyOTBdKSx4W2teNzI4MV0pKHhba143Mjg5XSwoMCx4W2teNzI0N10pKCkseFtrXjcyOTBdKSx4W2teNzI2M10pKHhba143MjUzXSksMSl8fCgoMCx4W2teNzI1NF0pKHhba143MjUxXSx4W2teNzI1Nl0pLHhba143MjYxXSkoeFtrXjcyNzJdLHhba143MjkyXSk+PigoMCx4W2teNzI2M10pKHhba143MjU2XSl8KDAseFtrXjcxNzVdKSh4W2teNzI1Ml0seFs1XSkpfWNhdGNoKHIpeygwLHhba143MjU1XSkoeFtrXjcyODJdKX1maW5hbGx5e3ZhciBHPU0zKGteNzI1NyxrXjIxOTAseCl9dHJ5e0c9WEQoa143MjUzLGteNzgwMCx4KX1jYXRjaChyKXt4W2teNzE3OV0hPS0zJiYoKCgoMCx4W2teCjcyOTJdKSgoMCx4W2teNzI0N10pKHhba143MTc3XSx4W2teNzE3NF0pLHhba143MjgzXSx4W2teNzE2OF0pLCgwLHhba143MTY5XSkoeFs1XSx4W2teNzI0OV0pLHhba143MTgxXSkoeFtrXjcyNDBdLHhba143MjgyXSkseFszXSkoeFtrXjcyNzBdLHhba143MjY5XSkseFtrXjcyNzhdKSgoMCx4W2teNzI3N10pKHhba143MjYxXSx4W2teNzI1MF0pLHhba143MjQ4XSwoMCx4W2teNzI2NF0pKHhba143Mjg3XSx4W2teNzI0NF0pLHhba143MjgzXSx4W2teNzI3MV0pLHhba143MjYwXSE9PTAmJih4W2teNzE2OF08PS0zPygwLHhba143MjY0XSkoeFtrXjcyNjldLHhba143MTc3XSk6KDAseFtrXjcxNjldKSh4W2teNzI2OF0sKDAseFtrXjcyNThdKSgpLHhbNF0pKX1maW5hbGx5e3hba143MTczXSE9PTQmJih4W2teNzI0N108PS00PygwLHhba143Mjg5XSkoKCgwLHhba143Mjc5XSkoeFtrXjcxODNdLHhba143MjQ0XSkseFtrXjcyNjhdKSh4W2teNzE4M10seFtrXjcyNDVdKSx4W2teNzI0OV0sCigwLHhba143MjQzXSkoKDAseFtrXjcyNDhdKSh4W2teNzI1N10seFtrXjcyODJdKSx4W2teNzI2OF0seFtrXjcyNDJdLHhba143MTcyXSksKCgoKCgoMCx4W2teNzI5NF0pKHhba143MjgxXSx4W2teNzI0MF0pLHhba143Mjc1XSkoeFtrXjcxODddLHhba143MjYzXSkseFtrXjcyNTVdKSh4W2teNzE3N10sKDAseFtrXjcyNDJdKSgpLHhba143MjU2XSkseFtrXjcyNDldKSh4W2teNzI2Nl0seFtrXjcyOTNdKSx4W2teNzE3NV0pKCgwLHhba143MTgwXSkoeFtrXjcyNDhdLHhba143MjkzXSkseFtrXjcxNzNdLHhbMV0seFtrXjcyOTNdKSx4W2teNzI0OV0pKHhba143MTY4XSx4W2teNzI2M10pLCgwLHhba143Mjc1XSkoeFtrXjcyODhdLHhba143MjkzXSk8PSgwLHhba143MjU1XSkoeFtrXjcxNzddLCgwLHhba143Mjc5XSkoKSx4W2teNzI1MF0pLHhba143MTc2XSwoMCx4W2teNzE3Nl0pKHhba143MjUxXSx4W2teNzI2M10pLHhbMF0seFtrXjcxNzddKTooKCgwLHhba143MTgxXSkoKCgwLHhba14KNzE3Nl0pKHhba143MTY5XSx4W2teNzI2M10pLHhba143Mjc1XSkoeFtrXjcyOTFdLHhba143MjYzXSklKDAseFtrXjcxODJdKSh4W2teNzE3Ml0pLHhba143MjU1XSwoMCx4W2teNzE3Nl0pKHhbNF0seFtrXjcxNzJdKSx4W2teNzI5M10sKDAseFtrXjcyNzBdKSgpLHhba143MjU2XSksKDAseFtrXjcxODJdKSh4W2teNzI4MV0pLHhba143MjU1XSkoeFtrXjcyOTNdLCgwLHhba143MjU3XSkoKSx4W2teNzI2OF0pPT09KCgoMCx4W2teNzI1NV0pKHhba143MTc3XSwoMCx4W2teNzI1N10pKCkseFtrXjcyNTBdKSx4W2teNzI3NV0pKHhba143MjU5XSx4W2teNzE3MV0pLCgwLHhba143MjU1XSkoeFtrXjcxNzddLCgwLHhba143MjU3XSkoKSx4W2teNzI2OF0pLHhba143MjU1XSkoeFtrXjcyOTNdLCgwLHhba143Mjc5XSkoKSx4W2teNzI1Nl0pXigwLHhba143Mjc1XSkoeFtrXjcyNzZdLHhba143MTcyXSksKDAseFtrXjcxNzVdKSgoMCx4W2teNzE3M10pKHhba143Mjc0XSx4W2teNzE3Ml0pLAp4W2teNzI1NV0seFtrXjcyOTNdLCgwLHhba143MjcwXSkoKSx4W2teNzI1MF0pLHhba143MTc2XSkoeFtrXjcyOTRdLHhba143MjYzXSkpfX1jYXRjaChyKXtlPUlba143MjgwXStEO2JyZWFrIGF9ZT1MW0lba143MjQ2XV0oSVtrXjcyNTRdKX0obl45MSk8MTYmJm4rMT4+Mz49MiYmKGVYKGteNjY0MixrXjE0ODksRCksZT1nLkRsKERbSVsxXV0sT1d0KSk7bis5Pj40Pj0zJiYobj4+MiYyNCk8MTImJmJbSVsyMl1dKEQpO3JldHVybiBlfTsKTXM9ZnVuY3Rpb24obil7cmV0dXJuISEobi5XJiZuLlcudmlkZW9JbmZvcyYmbi5XLnZpZGVvSW5mb3MubGVuZ3RoKX07CkFKPWZ1bmN0aW9uKG4pe3JldHVybiBuLk5QKCkmJm4uRygpLnN1cHBvcnRzR2FwbGVzc1Nob3J0cygpfTsKUlE9ZnVuY3Rpb24obil7dmFyIFc9WyJNVVNJQ19WSURFT19UWVBFX0FUViIsIk1VU0lDX1ZJREVPX1RZUEVfUFJJVkFURUxZX09XTkVEX1RSQUNLIl0sRD1sbyhuLnlRKT09PSJUVkhUTUw1X1NJTVBMWSImJm4ueVEuTi5jdGhlbWU9PT0iTVVTSUMiOyFuLkpnJiYoZy5NVihuLnlRKXx8dHUobi55USl8fEQpJiYoVy5pbmNsdWRlcyhuLm11c2ljVmlkZW9UeXBlKXx8bi5pc0V4dGVybmFsbHlIb3N0ZWRQb2RjYXN0KSYmKG4uSmc9ITApO2lmKFc9Zy5kOCgpKVc9L1N0YXJib2FyZFwvKFswLTldKykvLmV4ZWMoZy5YUSgpKSxXPShXP3BhcnNlSW50KFdbMV0sMTApOk5hTik8MTA7RD1odShuLnlRKSYmbi55US5OLmN0aGVtZT09PSJNVVNJQyI7dmFyIGI7aWYoYj0hbi5KZylEfHwoRD1uLnlRLEQ9bG8oRCk9PT0iVFZIVE1MNSImJkQuTi5jdmVyLnN0YXJ0c1dpdGgoIjciKSksYj1EO2ImJiFXJiYoVz1uLm11c2ljVmlkZW9UeXBlPT09Ik1VU0lDX1ZJREVPX1RZUEVfUFJJVkFURUxZX09XTkVEX1RSQUNLIiwKRD0obi5TKCJjYXN0X3ByZWZlcl9hdWRpb19vbmx5X2Zvcl9hdHZfYW5kX3VwbG9hZHMiKXx8bi5TKCJrYWJ1a2lfcGFuZ2VhX3ByZWZlcl9hdWRpb19vbmx5X2Zvcl9hdHZfYW5kX3VwbG9hZHMiKSkmJm4ubXVzaWNWaWRlb1R5cGU9PT0iTVVTSUNfVklERU9fVFlQRV9BVFYiLFd8fER8fG4uaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdCkmJihuLkpnPSEwKTtyZXR1cm4gbi55US5kZXZpY2VJc0F1ZGlvT25seXx8bi5KZyYmbi55US5LfTsKUXo9ZnVuY3Rpb24obil7cmV0dXJuIG4ueVEuUygiaHRtbDVfZGlzYWJsZV9hdjEiKT8hMDohMX07Ck5JPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/LmNvbXBvc2l0ZVZpZGVvQ29uZmlnPy5jb21wb3NpdGVCcm9hZGNhc3RUeXBlPT09IkNPTVBPU0lURV9CUk9BRENBU1RfVFlQRV9DT01QUkVTU0VEX0RPTUFJTl9DT01QT1NJVEUifTsKVno9ZnVuY3Rpb24obil7dmFyIFc9bi5LO24uUygiaHRtbDVfZ2FwbGVzc191bmxpbWl0X2Zvcm1hdF9zZWxlY3Rpb24iKSYmQUoobikmJihXPSExKTt2YXIgRD0hIW4uTiYmbi5OLnpXO1c9VThaKG4ueVEse21WOm4ubVYoKSx5WDpELE93OlJRKG4pLEhpOm4uSGksbFU6Vyxpc090ZjpuLmlzT3RmKCksb0w6bi5vTCgpLElSOm4uSVIseGQ6bi5nZXRVc2VyQXVkaW81MVByZWZlcmVuY2UoKSxkaXNhYmxlQXYxOlF6KG4pLGRCOk5JKG4pfSk7Zy5ZTihuKSYmKFcudlg9ITApO3pRKCkmJm4ucGxheWVyUmVzcG9uc2UmJm4ucGxheWVyUmVzcG9uc2UucGxheWVyQ29uZmlnJiZuLnBsYXllclJlc3BvbnNlLnBsYXllckNvbmZpZy53ZWJQbGF5ZXJDb25maWcmJm4ucGxheWVyUmVzcG9uc2UucGxheWVyQ29uZmlnLndlYlBsYXllckNvbmZpZy51c2VDb2JhbHRUdm9zRG9nZm9vZEZlYXR1cmVzJiYoVy5qPSEwLFcuVj0hMCk7bi5LJiZuLmlzQWQoKSYmKG4uWXImJihXLk89bi5Zciksbi5TViYmCihXLlg9bi5TVikpO24uTlAoKSYmKFcuUyQ9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9oYXJkX2NhcF9tYXhfdmVydGljYWxfcmVzb2x1dGlvbl9mb3Jfc2hvcnRzIikpO1cubnU9bi5pc0xpdmVQbGF5YmFjayYmbi5NaSgpJiZuLnlRLlMoImh0bWw1X2RybV9saXZlX2F1ZGlvXzUxIik7Vy5iZD1uLkVUO24uUygiaHRtbDVfZGlzYWJsZV92cDlfaGRyX2ZhaXJwbGF5IikmJnpRKCkmJihXLmJkPSEwKTtXLlJhPSFnLllOKG4pO1cuVEM9IWcuWU4obikmJm4ueVEuZXhwZXJpbWVudHMuWnQoKS5OLlFRKFByaSk7cmV0dXJuIG4uZSQ9V307ClV0TT1mdW5jdGlvbihuKXtnLmFMKCJkcm1fcGJfcyIsdm9pZCAwLG4uelIpO24uQ2l8fG4uTiYmbi5OLlgoKTt2YXIgVz17fTtuLk4mJihXPU5kKG4ueXcsVnoobiksbi55US5XLG4uTixEPT5uLldKKCJjdG1wIiwiZm10Zmx0IixEKSwhMCxuZXcgU2V0KSk7Clc9bmV3IFpXUyhXLG4ueVEsbi5KaixuLnVzZUNvYmFsdFdpZGV2aW5lP3pRKCk/VGYobik6ITE6ITEsKEQsYik9PntuLlUoRCxiKX0pOwpnLnUobixXKTtuLlEkPSExO24ubG9hZGluZz0hMDtkOGkoVyxEPT57Zy5hTCgiZHJtX3BiX2YiLHZvaWQgMCxuLnpSKTtmb3IodmFyIGIgb2YgRClzd2l0Y2goYi5mbGF2b3Ipe2Nhc2UgImZhaXJwbGF5IjpiLkNpPW4uQ2k7Yi5WOT1uLlY5O2Iuamk9bi5qaTticmVhaztjYXNlICJ3aWRldmluZSI6Yi5GYz1uLkZjfW4uVFE9RDtpZihuLlRRLmxlbmd0aD4wJiYobi5qPW4uVFFbMF0sbi55US5XWCgpKSl7RD17fTtmb3IobGV0IFt2LGtdb2YgT2JqZWN0LmVudHJpZXMobi5qLkopKXtiPWs7bGV0IGg9InVuayIseD12Lm1hdGNoKC8oLiopY29kZWNzPSIoLiopIi8pO3gmJihoPXhbMl0pO0RbaF09Yn1uLlUoImRybVByb2JlIixEKX1mTChuKX0pfTsKY2o9ZnVuY3Rpb24obil7dmFyIFc7aWYoVz0hIW4uY290bilXPW4udmlkZW9JZCxXPSEhVyYmZSQoVyk9PT0xO3JldHVybiBXJiYhbi5XaX07CnkxaD1mdW5jdGlvbihuKXt2YXIgVz1uLnBsYXllclJlc3BvbnNlPy5zdHJlYW1pbmdEYXRhPy5hZGFwdGl2ZUZvcm1hdHN8fFtdLEQ9bnVsbDtpZihXLmxlbmd0aD4wKUQ9YVEobixXKTtlbHNlIGlmKCFuLlMoImh0bWw1X2RlcHJlY2F0ZV9hZGFwdGl2ZV9mb3JtYXRzX3N0cmluZyIpKXtuLlUoInBhZm10c3RyIix7czpuLmFkYXB0aXZlRm9ybWF0cy5zdWJzdHJpbmcoMCw1MCl9KTtpZigoVz1uLmFkYXB0aXZlRm9ybWF0cykmJiFqJChuKSl7bi55US5XLkomJihSbz0hMCk7Vz1uQShXKTtEPW4uY29udGVudFByb3RlY3Rpb247dmFyIGI9bi5sZW5ndGhTZWNvbmRzLHY9bi5pc0xpdmVQbGF5YmFjayxrPW4uWGcsaD1uLnlRLHg9bi5jbGllbnRQbGF5YmFja05vbmNlLEw9czVVKFcpO2lmKHZ8fGspe2I9bmV3IGcuR3goIiIsaD8uZXhwZXJpbWVudHMsITApO2Iuelc9ITA7Yi5pc01hbmlmZXN0bGVzcz0hMDtiLlc9IWs7Yi5pc0xpdmU9IWs7Yi5YZz1rO2ZvcihHIG9mIFcpe3Y9SW8oRywKRCwwLGgseCk7TD1SeChHLnVybCxHLnNwLEcucyk7dmFyIGU9TC5nZXQoImlkIik7ZSYmZS5pbmNsdWRlcygiJTdFIikmJihiLk89ITApO2U9aD8uZXhwZXJpbWVudHM/LkVxKCJodG1sNV9tYXhfa25vd25fZW5kX3RpbWVfcmViYXNlIik7bGV0IHI9TnVtYmVyKEcudGFyZ2V0X2R1cmF0aW9uX3NlYyl8fDUsTj1OdW1iZXIoRy5tYXhfZHZyX2R1cmF0aW9uX3NlYyl8fDE0NDAwLEg9TnVtYmVyKEwuZ2V0KCJtaW5kc3EiKXx8TC5nZXQoIm1pbl9zcSIpfHwiMCIpLEE9TnVtYmVyKEwuZ2V0KCJtYXhkc3EiKXx8TC5nZXQoIm1heF9zcSIpfHwiMCIpfHxJbmZpbml0eTtiLkl0PWIuSXR8fEg7Yi5IUD1iLkhQfHxBO2xldCB5PSF2Lk4oKTtMJiYkZyhiLG5ldyBXVChMLHYse3JiOnIsT1Q6eSx1YjpOLEl0OkgsSFA6QSx1azozMDAsWGc6ayxFMzplfSkpfXZhciBHPWJ9ZWxzZSBHPUw9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/TnBqKFcsRCxiLGgseCk6cEpiKFcsRCxiLGgseCk7Vy5sZW5ndGg+CjAmJihXPVdbMF0sRmUobikmJlcudXJsJiYobi5SYT1uLlJhfHxCaihXLnVybCkpKTtXPW4uaXNMaXZlUGxheWJhY2smJiFuLlhnJiYhbi5SSSYmIW4uaXNQcmVtaWVyZTtuLlMoImh0bWw1X2xpdmVfaGVhZF9wbGF5YWJsZSIpJiYoIWcuRFAobikmJlcmJm4uVSgibWlzc2luZ0xpdmVIZWFkUGxheWFibGUiLHt9KSxuLnlRLlY9PT0ieXQiJiYoRy5WUT0hMCkpO0Q9R31lbHNlIEQ9bnVsbDtuLlUoInBhZm10cyIse2lzTWFuaWZlc3RGaWxsZWQ6ISFEfSl9aWYoIUQpcmV0dXJuITE7YkYobixEKTtyZXR1cm4hMH07Ckk0PWZ1bmN0aW9uKG4pe3JldHVybiEoIW4uTnx8IW4uTi5pc01hbmlmZXN0bGVzcyl9OwpnLkRQPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X2xpdmVfaGVhZF9wbGF5YWJsZSIpJiZJNChuKSYmbi55US5WPT09Inl0Ij9uLmlzTGl2ZUhlYWRQbGF5YWJsZTpuLmlzTGl2ZVBsYXliYWNrfTsKYVE9ZnVuY3Rpb24obixXKXtpZihXLmxlbmd0aD09PTB8fGokKG4pKXJldHVybiBudWxsO24ueVEuVy5KJiYoUm89ITApO3ZhciBEPW4uY29udGVudFByb3RlY3Rpb247dmFyIGI9bi5sZW5ndGhTZWNvbmRzLHY9bi5pc0xpdmVQbGF5YmFjayxrPW4uWGcsaD1uLnlRLHg9bi5jbGllbnRQbGF5YmFja05vbmNlLEw9cXVqKFcpO2lmKHZ8fGspe2I9bmV3IGcuR3goIiIsaC5leHBlcmltZW50cywhMCk7Yi5XPSFrO2Iuelc9ITA7Yi5pc01hbmlmZXN0bGVzcz0hMDtiLmlzTGl2ZT0haztiLlhnPWs7Zm9yKGxldCBHIG9mIFcpe3Y9dFooRyxELDAsaCx4KTtsZXQge0VsOnIsczpOLHk3Okh9PVAwKDUsNjk0LEcpO0w9Ungocnx8Ry51cmx8fCIiLEgsTik7dmFyIGU9TC5nZXQoImlkIik7ZSYmZS5pbmNsdWRlcygiJTdFIikmJihiLk89ITApO2U9aC5leHBlcmltZW50cz8uRXEoImh0bWw1X21heF9rbm93bl9lbmRfdGltZV9yZWJhc2UiKTtsZXQgQT1OdW1iZXIoRy50YXJnZXREdXJhdGlvblNlY3x8CjUpLHk9TnVtYmVyKEcubWF4RHZyRHVyYXRpb25TZWN8fDE0NDAwKSxUPU51bWJlcihMLmdldCgibWluZHNxIil8fEwuZ2V0KCJtaW5fc3EiKXx8IjAiKSx6PU51bWJlcihMLmdldCgibWF4ZHNxIil8fEwuZ2V0KCJtYXhfc3EiKXx8IjAiKXx8SW5maW5pdHk7Yi5JdD1iLkl0fHxUO2IuSFA9Yi5IUHx8ejtsZXQgQz0hdi5OKCk7TCYmJGcoYixuZXcgV1QoTCx2LHtyYjpBLE9UOkMsdWI6eSxJdDpULEhQOnosdWs6MzAwLFhnOmssRTM6ZX0pKX1EPWJ9ZWxzZSBEPUw9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/RzNDKFcsRCxiLGgseCk6dE9aKFcsRCxiLGgseCk7Vy5sZW5ndGg+MCYmKFc9V1swXSxGZShuKSYmVy51cmwmJihuLlJhPW4uUmF8fEJqKFcudXJsKSkpO1c9bi5pc0xpdmVQbGF5YmFjayYmIW4uWGcmJiFuLlJJJiYhbi5pc1ByZW1pZXJlO24uUygiaHRtbDVfbGl2ZV9oZWFkX3BsYXlhYmxlIikmJighZy5EUChuKSYmVyYmbi5VKCJtaXNzaW5nTGl2ZUhlYWRQbGF5YWJsZSIsCnt9KSxuLnlRLlY9PT0ieXQiJiYoRC5WUT0hMCkpO3JldHVybiBEfTsKbkE9ZnVuY3Rpb24obixXKXtuPXV3KG4pO3ZhciBEPXt9O2lmKFcpZm9yKHZhciBiIG9mIFcuc3BsaXQoIiwiKSkoVz1iLm1hdGNoKC9eKFswLTldKylcLyhbMC05XSspeChbMC05XSspKFwvfCQpLykpJiYoRFtXWzFdXT17d2lkdGg6V1syXSxoZWlnaHQ6V1szXX0pO2ZvcihsZXQgdiBvZiBuKWlmKGI9RFt2Lml0YWddKXYud2lkdGg9Yi53aWR0aCx2LmhlaWdodD1iLmhlaWdodDtyZXR1cm4gbn07CmJGPWZ1bmN0aW9uKG4sVyxEPSExKXtuLmVWPXZvaWQgMDtuLk49VztnLnUobixXKTtXLkl0PW4uSXQ7Vy5IUD1uLkhQO1cuSlU9bi5KVTtXLm9SPW4ub1I7Vy5JVD1uLklUO24ubEMmJihXLlk9bmV3IHZUKG4ubEMpKTsobi5tVigpfHxnLmtwKG4pKSYmbi5JSi5wdXNoKCJ3ZWJnbCIpO24uTi5pc0xpdmV8fChuLmlzTGl2ZVBsYXliYWNrPSExKTt2YXIgYj1XLnNvdXJjZVVybC5zcGxpdCgiLyIpO2lmKG4uVlE/Yi5pbmRleE9mKCJtYW5pZmVzdF9kdXJhdGlvbiIpIT09LTE6Yi5pbmRleE9mKCJtYW5pZmVzdF9kdXJhdGlvbiIpIT0tMSluLnptPU51bWJlcihiW2IuaW5kZXhPZigibWFuaWZlc3RfZHVyYXRpb24iKSsxXSk7aWYoVy5XfHxXLmlzTWFuaWZlc3RsZXNzKVcuc3Vic2NyaWJlKCJjbGllbnR0ZW1wIixuLlUsbiksRD9XLnN1YnNjcmliZSgicmVmcmVzaCIsbi5QSCxuKTpXLnN1YnNjcmliZSgiY3VlcG9pbnRzYWRkZWQiLG4uRVosbik7Vy5YKCk/bi5RJD0hMDpHTD12b2lkIDA7Cm4uUkkmJihXLmlzV2luZG93ZWRMaXZlPW4uUkksVy5pc0xpdmU9ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCk7Vy5pc1ByZW1pZXJlPW4uaXNQcmVtaWVyZTtXLmlzTGl2ZUhlYWRQbGF5YWJsZT1uLmlzTGl2ZUhlYWRQbGF5YWJsZX07ClRmPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X3R2b3Nfc2tpcF9kYXNoX2F1ZGlvX2NoZWNrIil8fE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgnYXVkaW8vd2VibTsgY29kZWNzPSJvcHVzIicpfTsKaiQ9ZnVuY3Rpb24obil7cmV0dXJuIHpRKCk/IVRmKG4pOkMkKCk/bi5DaSYmbi5jTz8hMDohKCFuLkNpfHwhbi5TKCJodG1sNV9lbmFibGVfc2FmYXJpX2ZhaXJwbGF5IikmJmZOKCkpOiExfTsKU3g9ZnVuY3Rpb24obil7cmV0dXJuIG4ubGF0ZW5jeUNsYXNzPT09IkxPVyJ8fG4ubGF0ZW5jeUNsYXNzPT09IlVMVFJBTE9XIn07CmhEPWZ1bmN0aW9uKG4pe3JldHVybiBuLlZRP1N4KG4pJiZuLk4hPW51bGwmJm9vKG4uTik+PTU6U3gobikmJm4uTiE9dm9pZCAwJiZvbyhuLk4pPj01fTsKRXFoPWZ1bmN0aW9uKG4pe24ubG9hZGluZz0hMDtuLkN1PSExO2lmKGNqKG4pKUIkeChuLnZpZGVvSWQpLnRoZW4oYj0+e2lmKG4ucGxheWVyUmVzcG9uc2U/LnN0cmVhbWluZ0RhdGEpe3ZhciB2PVtdO2ZvcihsZXQgayBvZiBiKWI9T2JqZWN0LmFzc2lnbih7fSxrKSxiLnNpZ25hdHVyZUNpcGhlcj0iIix2LnB1c2goYik7di5sZW5ndGg8MiYmbi5VKCJvZmZtbGYiLHtsZW46di5sZW5ndGh9KTt2PWFRKG4sdik7UlEobikmJnp4KHYsITEpO2JGKG4sdik7bi5VKCJkbHIiLHt9KX1lbHNlIG4uVSgib2Zmc2RtIix7Y290bjpuLkNtP24uQ20uY290bjoiMCIsY3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX0pfSkudGhlbigoKT0+e2ZMKG4pfSk7CmVsc2V7Z1gobi5UZil8fGcuR3EobmV3IGcuUXgoIkRBU0ggTVBEIE9yaWdpbiBpbnZhbGlkOiAiLG4uVGYpKTt2YXIgVz1uLlRmLEQ9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJkYXNoX21hbmlmZXN0X3ZlcnNpb24iKXx8NDtXPWcuRVQoVyx7bXBkX3ZlcnNpb246RH0pO1N4KG4pJiZuLmxhdGVuY3lDbGFzcyE9PSJOT1JNQUwifHwoVz1nLkVUKFcse3BhY2luZzowfSkpO2Z0WihXLG4ueVEuZXhwZXJpbWVudHMsbi5pc0xpdmVQbGF5YmFjaykudGhlbihiPT57bi5xTigpfHwoYkYobixiLCEwKSxnLmFMKCJtcmMiLHZvaWQgMCxuLnpSKSxmTChuKSl9LGI9PntuLnFOKCl8fChuLmxvYWRpbmc9ITEsbi5XSigiZGF0YWxvYWRlcnJvciIsbmV3IGcuQ2koIm1hbmlmZXN0Lm5ldC5yZXRyeWV4aGF1c3RlZCIse2JhY2tlbmQ6Im1hbmlmZXN0IiwKcmM6Yi5zdGF0dXN9LDEpKSl9KTsKZy5hTCgibXJzIix2b2lkIDAsbi56Uil9fTsKeHA9ZnVuY3Rpb24obil7aWYoIW4uaXNQcm94aW1hTGF0ZW5jeUVsaWdpYmxlKXJldHVybiAwO3ZhciBXPVlkKCk7cmV0dXJuIG4ueVEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpPy5lbmFibGVQcm94aW1hTG93TGF0ZW5jeT8yOlc9PT0xPzE6bi5TKCJodG1sNV9lbmFibGVfcHJveGltYSIpPzI6MH07Ckt6PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uUyhXKT8hMDoobi5mZmxhZ3N8fCIiKS5pbmNsdWRlcyhXKyI9dHJ1ZSIpfTsKaVdTPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V3x8Q0wobil8fG4uaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdDtpZighbi5OfHxEKXJldHVybiBuLlUoInNraXBEYXNoIix7ZG06ISFuLk4sYWlyOlcsZGQ6bi5VVCxtc3M6Zk4oKSwiM3BwIjpuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3R9KSxnLnAkKCk7UlEobikmJnp4KG4uTixuLmlzTGl2ZVBsYXliYWNrKTtyZXR1cm4gZy5IMCgpLnRoZW4oKCk9PlMyYihuLnl3LFZ6KG4pLG4ueVEuVyxuLk4sbi5qLGI9Pm4uV0ooImN0bXAiLCJmbXRmbHQiLGIpLG4ub00sTEEobikpLnRoZW4oYj0+e2U3KG4sYik7Cm4ueXcuSj1udWxsOy9eYXYvLnRlc3Qobi5jbGllbnRQbGF5YmFja05vbmNlKSYmbi5lJCYmbi5VKCJhdjEiLG4uZSQuTil9KSl9Owp1bXQ9ZnVuY3Rpb24obixXKXtpZihXJiZuLmhsc3ZwKXJldHVybiBnLnAkKCk7aWYobi5obHNGb3JtYXRzKXtpZihXPW5BKG4uaGxzRm9ybWF0cykpe2xldCBiPVtdO2Zvcih2YXIgRCBvZiBXKUQudXJsJiYoRC51cmw9Vm10KEQudXJsKSksbi5lJD8uVyYmYi5wdXNoKEQuaXRhZyk7bi5lJD8uVyYmYi5sZW5ndGg+MCYmbi5VKCJobHNmbXQiLHtpdGFnczpiLmpvaW4oIi4iKX0pfW4ueUU9Z1laKG4ueVEsVyk7bi55RSYmZ2wobixuLnlFKTtEPW4uY2xpZW50UGxheWJhY2tOb25jZTtyZXR1cm4gdG1NKG4ueVEsbi5pc0FkKCksVyxuLnBsYXllclJlc3BvbnNlPy5jYXB0aW9ucz8ucGxheWVyQ2FwdGlvbnNSZW5kZXJlcj8uYmFzZVVybD8/bnVsbCxuLkdmLEQsYj0+bi5XSigiY3RtcCIsImhsc2ZsdCIsYikpLnRoZW4oYj0+e3ZhciB2PTAsaz1bXTsKZm9yKGxldCBoIG9mIGIpay5wdXNoKGgua0woKT8uaXRhZyksaC5rTCgpPy5ZKCk/Lm51bUNoYW5uZWxzPnYmJih2PWgua0woKS5hdWRpby5udW1DaGFubmVscyk7dj4yJiZuLlUoImhsc2NobCIse21uOnZ9KTtuLmUkPy5XJiZuLlUoImhsc2ZtdGFmIix7aXRhZ3M6ay5qb2luKCIuIil9KTtpZihuLlMoImh0bWw1X2VuYWJsZV92cDlfZmFpcnBsYXkiKSYmbi5qPy5OKCkpe24uVSgiZHJtIix7c2JkbGZiazoxfSk7Zm9yKGxldCBoIG9mIG4uVFEpaWYoZzEoaCkpe24uaj1oO2JyZWFrfX1YMihuLGIpfSl9cmV0dXJuIGcucCQoKX07Cm9xMT1mdW5jdGlvbihuKXtpZihuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3QmJm4uY2Ype2xldCBXPW5BKG4uY2YpO2lmKCFXWzBdKXJldHVybiBnLnAkKCk7bi5xdz1XWzBdO3JldHVybiBzaXIobi55USxXWzBdKS50aGVuKEQ9PntYMihuLEQpfSl9cmV0dXJuIG4uUXImJm4ub2M/cnFaKG4ueVEsbi5pc0FkKCksbi5RcikudGhlbihXPT57WDIobixXKX0pOmcucCQoKX07CnprVT1mdW5jdGlvbihuKXtpZihuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3QpcmV0dXJuIGcucCQoKTt2YXIgVz1uQShuLmNmLG4uR2opO2lmKG4uaGxzdnApe2xldCBEPVFpMihuLmhsc3ZwLG4uY2xpZW50UGxheWJhY2tOb25jZSxuLkdmKTtXLnB1c2goRCl9cmV0dXJuIGpDaChuLnlRLG4uaXNBZCgpLFcsZHQxKG4pKS50aGVuKEQ9PntYMihuLEQpfSl9OwpMQT1mdW5jdGlvbihuKXt2YXIgVz1uLlMoImh0bWw1X2VuYWJsZV9zZXJ2ZXJfZm9ybWF0X2ZpbHRlciIpJiYhbi5NaSgpLEQ9bi5TKCJodG1sNV9lbmFibGVfc2VydmVyX2Zvcm1hdF9maWx0ZXJfZm9yX2RybSIpJiZuLk1pKCk7cmV0dXJuIGcuWU4obikmJihXfHxEKX07CmU3PWZ1bmN0aW9uKG4sVyl7bi5XPVc7Z2wobixuLlcuZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MoKSk7aWYobi5XKWZvcih2YXIgRCBvZiBuLlcudmlkZW9JbmZvcylXPUQuY29udGFpbmVyVHlwZSxXIT09MCYmKG4uYkJbV109RC5pZCk7RD1uLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7RD1ELmNvbmNhdChuLnZYKTtmb3IoVz0wO1c8bi5Udy5sZW5ndGg7VysrKXtsZXQgdj1uLlR3W1ddO2ZvcihsZXQgaz0wO2s8RC5sZW5ndGg7aysrKXtsZXQgaD1EW2tdO3ZhciBiPWgua1ouaWQ9PT12LmF1ZGlvVHJhY2tJZDtpZihoLmtaLmlzRGVmYXVsdCYmVz09PW4uTyR8fGIpe2lmKHYuY2FwdGlvblRyYWNrSW5kaWNlcylmb3IoYj0wO2I8di5jYXB0aW9uVHJhY2tJbmRpY2VzLmxlbmd0aDtiKyspaC5jYXB0aW9uVHJhY2tzW2JdPW4uY2FwdGlvblRyYWNrc1t2LmNhcHRpb25UcmFja0luZGljZXNbYl1dO3YuZGVmYXVsdENhcHRpb25UcmFja0luZGV4IT09dm9pZCAwJiYoaC5XPW4uY2FwdGlvblRyYWNrc1t2LmRlZmF1bHRDYXB0aW9uVHJhY2tJbmRleF0pOwp2LmZvcmNlZENhcHRpb25UcmFja0luZGV4IT09dm9pZCAwJiYoaC5OPW4uY2FwdGlvblRyYWNrc1t2LmZvcmNlZENhcHRpb25UcmFja0luZGV4XSk7aC5KPXYudmlzaWJpbGl0eXx8IlVOS05PV04iO2guY2FwdGlvbnNJbml0aWFsU3RhdGU9di5jYXB0aW9uc0luaXRpYWxTdGF0ZXx8IkNBUFRJT05TX0lOSVRJQUxfU1RBVEVfVU5LTk9XTiJ9fX1pZihuLmomJm4uVyYmbi5XLnZpZGVvSW5mb3MmJiEobi5XLnZpZGVvSW5mb3MubGVuZ3RoPD0wKSYmKEQ9bi5XLnZpZGVvSW5mb3NbMF0uVygpLG4uai5mbGF2b3I9PT0iZmFpcnBsYXkiIT09RCkpZm9yKGxldCB2IG9mIG4uVFEpaWYoRD09PSh2LmZsYXZvcj09PSJmYWlycGxheSIpKXtuLmo9djticmVha319OwpnbD1mdW5jdGlvbihuLFcpe1cuc29ydCgoRCxiKT0+RC50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoYi50b1N0cmluZygpLG4ueVEuaG9zdExhbmd1YWdlKSl9OwpYMj1mdW5jdGlvbihuLFcpe24ubnU9VztlNyhuLG5ldyBwZyhnLmlfKG4ubnUsRD0+RC5rTCgpKSkpfTsKZHQxPWZ1bmN0aW9uKG4pe3ZhciBXPXtjcG46bi5jbGllbnRQbGF5YmFja05vbmNlLGM6bi55US5OLmMsY3ZlcjpuLnlRLk4uY3Zlcn07bi54eiYmKFcucHRrPW4ueHosVy5vaWQ9bi5YbyxXLnB0Y2huPW4uaDEsVy5wbHR5cGU9bi5xOCxuLnk5JiYoVy5tPW4ueTkpKTtyZXR1cm4gV307CmcucXU9ZnVuY3Rpb24obil7cmV0dXJuIGokKG4pJiZuLkNpP3tmYWlycGxheToiaHR0cHM6Ly95b3V0dWJlLmNvbS9hcGkvZHJtL2Zwcz9laz11bmluaXRpYWxpemVkIn06bi5KJiZuLkouY29udGVudFByb3RlY3Rpb258fG51bGx9OwpHZT1mdW5jdGlvbihuKXtyZXR1cm4gbi5wbGF5ZXJSZXNwb25zZSYmbi5wbGF5ZXJSZXNwb25zZS5wYWlkQ29udGVudE92ZXJsYXkmJm4ucGxheWVyUmVzcG9uc2UucGFpZENvbnRlbnRPdmVybGF5LnBhaWRDb250ZW50T3ZlcmxheVJlbmRlcmVyfHxnLncobi53YXRjaE5leHRSZXNwb25zZT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8ucGxheWVyRGlzY2xvc3VyZSxsYVMpfHxudWxsfTsKdEQ9ZnVuY3Rpb24obil7dmFyIFc9R2Uobik7cmV0dXJuIFcmJlcudGV4dD9nLkRwKFcudGV4dCk6bi5wYWlkQ29udGVudE92ZXJsYXlUZXh0fTsKJHA9ZnVuY3Rpb24obil7dmFyIFc9R2Uobik7cmV0dXJuIFcmJlcuZHVyYXRpb25Ncz9nLk5oKFcuZHVyYXRpb25Ncyk6bi5wYWlkQ29udGVudE92ZXJsYXlEdXJhdGlvbk1zfTsKcmw9ZnVuY3Rpb24obil7dmFyIFc9IiI7aWYobi51aClyZXR1cm4gbi51aDtuLmlzTGl2ZVBsYXliYWNrJiYoVz1uLmFsbG93TGl2ZUR2cj8iZHZyIjpuLmlzUHJlbWllcmU/ImxwIjpuLlJJPyJ3aW5kb3ciOiJsaXZlIik7bi5YZyYmKFc9InBvc3QiKTtyZXR1cm4gV307Cmcuc1M9ZnVuY3Rpb24obixXKXtyZXR1cm4gdHlwZW9mIG4ua2V5d29yZHNbV10hPT0ic3RyaW5nIj9udWxsOm4ua2V5d29yZHNbV119OwpnLllMPWZ1bmN0aW9uKG4pe3JldHVybiEhKG4uVGZ8fG4uY2Z8fG4uUXJ8fG4uaGxzdnB8fG4uSXAoKSl9OwpBeD1mdW5jdGlvbihuKXtyZXR1cm4obj1uLlJ0KSYmbi5zaG93RXJyb3I/bi5zaG93RXJyb3I6ITF9OwpOdT1mdW5jdGlvbihuKXtuLm11dGVkQXV0b3BsYXk9ITE7bi5lbmRTZWNvbmRzPU5hTjtuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPU5hTjt6ZihuKX07CmcucEE9ZnVuY3Rpb24obil7cmV0dXJuIGcuRFAobikmJiFuLmFsbG93TGl2ZUR2cn07CllwPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRQKG4pJiZuLmFsbG93TGl2ZUR2cn07CmcuSFQ9ZnVuY3Rpb24obil7cmV0dXJuISFuLk4mJks2KG4uTil9OwpnLmZBPWZ1bmN0aW9uKG4pe3JldHVybiEhbi5OJiZPayhuLk4pfTsKZy5rcD1mdW5jdGlvbihuKXtyZXR1cm4hIW4uTiYmSiRVKG4uTil9OwpnLkpEPWZ1bmN0aW9uKG4pe3JldHVybiEhbi5OJiZQRihuLk4pfTsKSVQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uYWRGb3JtYXQmJihuLlZRP24uYWRGb3JtYXQhPT0iMV81IjpuLmFkRm9ybWF0IT0iMV81Iik/ImFkdW5pdCI6bi5ldmVudExhYmVsfHxuLnlRLll9OwpnLlM3PWZ1bmN0aW9uKG4pe3JldHVybiBJVChuKT09PSJzaG9ydHNwYWdlIn07CkFEPWZ1bmN0aW9uKG4pe3JldHVybiBuLkd1fHxJVChuKT09PSJkZXRhaWxwYWdlInx8SVQobik9PT0ic2hvcnRzcGFnZSJ8fG4ubXV0ZWRBdXRvcGxheX07CmlUPWZ1bmN0aW9uKG4pe3JldHVybiBJVChuKT09PSJhZHVuaXQiP24uVlQ6QUQobik/SVQobik9PT0iZGV0YWlscGFnZSJ8fElUKG4pPT09InNob3J0c3BhZ2UiP24uaXNBdXRvbmF2fHxuLlMkPjA6bi5mQj8hMTpuLnlRLlU1fHxuLnlRLk1kfHwhZy5vNChuLnlRKT8hMDohMToobi5mQj8wOm4uUFgpJiZnLm80KG4ueVEpPyEwOiExfTsKZy5tTz1mdW5jdGlvbihuKXtyZXR1cm4gbi56VygpJiZnLllOKG4pfTsKcHo9ZnVuY3Rpb24obil7cmV0dXJuISFuLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/Lm1lZGlhQ29tbW9uQ29uZmlnPy5zcGxpdFNjcmVlbkVsaWdpYmxlfTsKS0E9ZnVuY3Rpb24obil7cmV0dXJuIGlzTmFOKG4pPzA6TWF0aC5tYXgoKERhdGUubm93KCktbikvMUUzLTMwLDApfTsKT1M9ZnVuY3Rpb24obil7cmV0dXJuISghbi5XaXx8IW4ueVEuSykmJm4uSXAoKX07ClBUPWZ1bmN0aW9uKG4pe3JldHVybiBuLktkJiZuLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpfTsKVGhpPWZ1bmN0aW9uKG4pe3JldHVybiBuLkRFJiYhbi5sQ307CmNxeD1mdW5jdGlvbihuKXtzd2l0Y2gobi55US5WKXtjYXNlICJnZCI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25fZHJpdmUiKTtjYXNlICJncCI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25fcGxheV9zdG9yZSIpO2Nhc2UgImRkIjpyZXR1cm4hMDtjYXNlICJwdyI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb3RmX2luX2NsaWVudCIpO2RlZmF1bHQ6cmV0dXJuITF9fTsKcEw9ZnVuY3Rpb24obil7dmFyIFc7aWYoIShXPU5zJiZuLnpXKCkmJm4uTWkoKSYmKG4uZHJtUHJvZHVjdD09PSIxIj8hMTohMCkmJm4uUygiaHRtbDVfc2Ficl9saXZlX2RybV9zdHJlYW1pbmdfeGhyIikpKXtXPW4uelcoKSYmIW4uTWkoKSYmTnM7dmFyIEQ9bi56VygpJiZuLmxhdGVuY3lDbGFzcyE9PSJVTFRSQUxPVyImJiFTeChuKSYmbi5TKCJodG1sNV9zYWJyX2xpdmVfbm9ybWFsX2xhdGVuY3lfc3RyZWFtaW5nX3hociIpLGI9U3gobikmJm4uUygiaHRtbDVfc2Ficl9saXZlX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHIiKTtsZXQgdj1uLmxhdGVuY3lDbGFzcz09PSJVTFRSQUxPVyImJm4uUygiaHRtbDVfc2Ficl9saXZlX3VsdHJhX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHIiKTtXPVcmJihEfHxifHx2KX1EPVc7Vz1uLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiZEJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX3NzZGFpX3N0cmVhbWluZ194aHIiKTtEPSFuLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiYKRDtiPW4uelcoKSYmIU5zJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX2xpdmVfbm9uX3N0cmVhbWluZ194aHIiKTtuPU5zJiYobi5ERigpfHxweihuKSYmbi5TKCJodG1sNV9lbmFibGVfc2Ficl9mb3JfbGlmYV9lbGlnaWJsZV9zdHJlYW1zIikpO3JldHVybiBXfHxEfHxifHxufTsKZy5tTT1mdW5jdGlvbihuKXtpZighbi5OfHwhbi5KfHwhbi5YKXJldHVybiExO3ZhciBXPW4uTi5OLEQ9ISFXW24uSi5pZF0mJmdaKDU2LDExOTYsV1tuLkouaWRdLlhiLk4pO1c9ISFXW24uWC5pZF0mJmdaKDIyLDExNTQsV1tuLlguaWRdLlhiLk4pO3JldHVybihuLkouaXRhZz09PSIwInx8RCkmJld9OwpaUD1mdW5jdGlvbihuKXtyZXR1cm4gbi5lQj9bIk9LIiwiTElWRV9TVFJFQU1fT0ZGTElORSJdLmluY2x1ZGVzKG4uZUIuc3RhdHVzKTohMH07ClVTPWZ1bmN0aW9uKG4pe3JldHVybiEoIW4uaXNMaXZlUGxheWJhY2t8fCFuLmhhc1Byb2dyZXNzQmFyQm91bmRhcmllcygpKX07CnlVPWZ1bmN0aW9uKG4pe3JldHVybiBuLnlRLmV4cGVyaW1lbnRzLlp0KCkuTi5RUShqc1opJiZuLk5QKCl8fG4uUygiZW5hYmxlX3BsYXllcl9yZXNwb25zZV9jYWNoZV9mb3JfbGl2ZSIpfTsKRVM9ZnVuY3Rpb24obil7cmV0dXJuISFuLmVtYmVkZGVkUGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllckZsYWdzPy5lbmFibGVNdXNpY1V4fTsKaUY9ZnVuY3Rpb24obil7cmV0dXJuIG4ueVEuSiYmbi5pc1ByaXZhdGV9OwpnLm9UPWZ1bmN0aW9uKG4pe3ZhciBXPW4uRygpLEQ9dUYoVyksYj1XLlFyO2cuQ04oVykmJihiJiYoRC50aGlyZFBhcnR5PXsuLi5ELnRoaXJkUGFydHksZW1iZWRVcmw6Yn0pLGcuRW4oRCxuKSk7KGI9bi50dyk/RC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmJ9OmcuQ04obi5HKCkpJiZnLkFyKCJFVkVOVF9JRCIpJiYoRC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmcuQXIoIkVWRU5UX0lEIil9KTtiPUQuY2xpZW50fHx7fTt2YXIgdj0iRU1CRUQiLGs9SVQobik7az09PSJsZWFuYmFjayI/dj0iV0FUQ0giOlcuUygiZ3ZpX2NoYW5uZWxfY2xpZW50X3NjcmVlbiIpJiZrPT09InByb2ZpbGVwYWdlIj92PSJDSEFOTkVMIjpuLklSP3Y9IkxJVkVfTU9OSVRPUiI6az09PSJkZXRhaWxwYWdlIj92PSJXQVRDSF9GVUxMX1NDUkVFTiI6az09PSJhZHVuaXQiP3Y9IkFEVU5JVCI6az09PSJzcG9uc29yc2hpcHNvZmZlciImJih2PSJVTktOT1dOIik7Yi5jbGllbnRTY3JlZW49CnY7aWYodj1uLmtpZHNBcHBJbmZvKWIua2lkc0FwcEluZm89SlNPTi5wYXJzZSh2KTsoaz1uLkFtKSYmIXYmJihiLmtpZHNBcHBJbmZvPXtjb250ZW50U2V0dGluZ3M6e2FnZVVwTW9kZTpDcmJba119fSk7aWYodj1uLnRHKWIudW5wbHVnZ2VkQXBwSW5mbz17ZW5hYmxlRmlsdGVyTW9kZTohMH07KGs9bi51bnBsdWdnZWRGaWx0ZXJNb2RlVHlwZSkmJiF2JiYoYi51bnBsdWdnZWRBcHBJbmZvPXtmaWx0ZXJNb2RlVHlwZTpCaGhba119KTtpZih2PW4uWFkpYi51bnBsdWdnZWRMb2NhdGlvbkluZm89djtELmNsaWVudD1iO2I9RC5yZXF1ZXN0fHx7fTtuLllaJiYoYi5pc1ByZWZldGNoPSEwKTtpZih2PW4ubWR4RW52aXJvbm1lbnQpYi5tZHhFbnZpcm9ubWVudD12O2lmKHY9bi5tZHhDb250cm9sTW9kZSliLm1keENvbnRyb2xNb2RlPUZHeFt2XTtELnJlcXVlc3Q9YjtiPUQudXNlcnx8e307aWYodj1uLkQpYi5jcmVkZW50aWFsVHJhbnNmZXJUb2tlbnM9W3t0b2tlbjp2LHNjb3BlOiJWSURFTyJ9XTsKaWYodj1uLkhKKWIuZGVsZWdhdGVQdXJjaGFzZXM9e29hdXRoVG9rZW46dn0sYi5raWRzUGFyZW50PXtvYXV0aFRva2VuOnZ9O3Y9Vy5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk/LnVzZXJDb250ZW50UmF0aW5nOyF2JiZXLlMoImVuYWJsZV9icmF6aWxfYWdlX2dhdGluZ193ZWIiKSYmKHY9Zy5vOSgpLmdldCgiYnJfYWdlX3JhdGluZyIpKTt2JiYoYi5zZXJpYWxpemVkVXNlckNvbnRlbnRSYXRpbmc9dik7RC51c2VyPWI7aWYoVz1uLmNvbnRleHRQYXJhbXMpRC5hY3RpdmVQbGF5ZXJzPVt7cGxheWVyQ29udGV4dFBhcmFtczpXfV07aWYobj1uLmNsaWVudFNjcmVlbk5vbmNlKUQuY2xpZW50U2NyZWVuTm9uY2U9bjtyZXR1cm4gRH07CnVGPWZ1bmN0aW9uKG4pe3ZhciBXPWcudmIoKSxEPVcuY2xpZW50fHx7fTtpZihuLmZvcmNlZEV4cGVyaW1lbnRzKXt2YXIgYj1uLmZvcmNlZEV4cGVyaW1lbnRzLnNwbGl0KCIsIik7bGV0IHY9W107Zm9yKGxldCBrIG9mIGIpdi5wdXNoKE51bWJlcihrKSk7RC5leHBlcmltZW50SWRzPXZ9aWYoYj1uLmhvbWVHcm91cEluZm8pRC5ob21lR3JvdXBJbmZvPUpTT04ucGFyc2UoYik7aWYoYj1uLmdldFBsYXllclR5cGUoKSlELnBsYXllclR5cGU9YjtpZihiPW4uTi5jdGhlbWUpRC50aGVtZT1iO2lmKGI9bi5saXZpbmdSb29tQXBwTW9kZSlELnR2QXBwSW5mbz17Li4uRC50dkFwcEluZm8sbGl2aW5nUm9vbUFwcE1vZGU6Yn07Yj1uLmRldmljZVllYXI7bi5TKCJodG1sNV9wcm9wYWdhdGVfZGV2aWNlX3llYXIiKSYmYiYmKEQudHZBcHBJbmZvPXsuLi5ELnR2QXBwSW5mbyxkZXZpY2VZZWFyOmJ9KTtpZihiPW4ubGl2aW5nUm9vbVBvVG9rZW5JZClELnR2QXBwSW5mbz17Li4uRC50dkFwcEluZm8sCmxpdmluZ1Jvb21Qb1Rva2VuSWQ6Yn07Vy5jbGllbnQ9RDtiPVcudXNlcnx8e307bi5lbmFibGVTYWZldHlNb2RlJiYoYj17Li4uYixlbmFibGVTYWZldHlNb2RlOiEwfSk7IUQudHZBcHBJbmZvPy51c2VQYWdlaWRBc0hlYWRlciYmbi5wYWdlSWQmJihiPXsuLi5iLG9uQmVoYWxmT2ZVc2VyOm4ucGFnZUlkfSk7Vy51c2VyPWI7cmV0dXJuIFd9OwpsRj1mdW5jdGlvbihuLFcsRCl7Vz17dmlkZW9JZDpuLnZpZGVvSWQsY29udGV4dDpnLm9UKG4pLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDpkayhuLFcsRCl9fTtuLmdUJiYoVy5wbGF5YmFja0NvbnRleHQucmVsb2FkUGxheWJhY2tDb250ZXh0PXtyZWxvYWRQbGF5YmFja1BhcmFtczpuLmdUPy5yZWxvYWRQbGF5YmFja1BhcmFtc30pO24uY29udGVudENoZWNrT2smJihXLmNvbnRlbnRDaGVja09rPSEwKTtpZihEPW4uY2xpZW50UGxheWJhY2tOb25jZSlXLmNwbj1EO2lmKEQ9bi5wbGF5ZXJQYXJhbXMpVy5wYXJhbXM9RDtlbHNlIGlmKEQ9bi5nZXRSZXNvbHZlVXJsUmVzcG9uc2UoKSlpZihEPWRsKEQpKVcucGFyYW1zPUQ7aWYoRD1uLnBsYXlsaXN0SWQpVy5wbGF5bGlzdElkPUQ7bi5yYWN5Q2hlY2tPayYmKFcucmFjeUNoZWNrT2s9ITApO0Q9bi5HKCk7dmFyIGI9RC5lbWJlZENvbmZpZztuLk5kP1cuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz0Kbi5OZDpiJiYoVy5zZXJpYWxpemVkVGhpcmRQYXJ0eUVtYmVkQ29uZmlnPWIpO1cuY2FwdGlvblBhcmFtcz17fTtiPWcubzkoKS5RUSg2NSk7bi5kZXZpY2VDYXB0aW9uc09uIT1udWxsP1cuY2FwdGlvblBhcmFtcy5kZXZpY2VDYXB0aW9uc09uPW4uZGV2aWNlQ2FwdGlvbnNPbjpnLmVNKEQpJiYoVy5jYXB0aW9uUGFyYW1zLmRldmljZUNhcHRpb25zT249YiE9bnVsbD8hYjohMSk7bi5LTCYmKFcuY2FwdGlvblBhcmFtcy5kZXZpY2VDYXB0aW9uc0xhbmdQcmVmPW4uS0wpO2I9bi5TKCJ3ZWJfZW5hYmxlX3BsYXllcl9yZXF1ZXN0X2NhcHRpb25zX2xhc3RfbGFuZ3VhZ2Vfb25seSIpO2lmKG4uRmUubGVuZ3RoKVcuY2FwdGlvblBhcmFtcy52aWV3ZXJTZWxlY3RlZENhcHRpb25MYW5ncz1iP1tuLkZlLmF0KC0xKV06bi5GZTtlbHNlIGlmKGcuZU0oRCkpe3ZhciB2PWcuU0koKTt2Py5sZW5ndGgmJihXLmNhcHRpb25QYXJhbXMudmlld2VyU2VsZWN0ZWRDYXB0aW9uTGFuZ3M9Yj9bdi5hdCgtMSldOgp2KX1iPW4uZmV0Y2hUeXBlPT09Im9uZXNpZSImJm4uUygiaHRtbDVfb25lc2llX2F0dGFjaF9wb190b2tlbiIpO3Y9bi5mZXRjaFR5cGUhPT0ib25lc2llIiYmbi5TKCJodG1sNV9ub25fb25lc2llX2F0dGFjaF9wb190b2tlbiIpO2lmKGJ8fHYpYj1uLkcoKSxiLmpXJiYoVy5zZXJ2aWNlSW50ZWdyaXR5RGltZW5zaW9ucz17fSxXLnNlcnZpY2VJbnRlZ3JpdHlEaW1lbnNpb25zLnBvVG9rZW49Yi5qVyk7RC5TKCJmZXRjaF9hdHRfaW5kZXBlbmRlbnRseSIpJiYoVy5hdHRlc3RhdGlvblJlcXVlc3Q9e29taXRCb3RndWFyZERhdGE6ITB9KTtXLnBsYXliYWNrQ29udGV4dHx8KFcucGxheWJhY2tDb250ZXh0PXt9KTtXLnBsYXliYWNrQ29udGV4dC5kZXZpY2VQbGF5YmFja0NhcGFiaWxpdGllcz16ZShuKTtXLnBsYXliYWNrQ29udGV4dC5kZXZpY2VQbGF5YmFja0NhcGFiaWxpdGllcy5zdXBwb3J0c1ZwOUVuY29kaW5nPT09ITEmJm4uVSgibm9WcDkiLHt9KTtyZXR1cm4gV307CnplPWZ1bmN0aW9uKG4pe3ZhciBXPSFuPy5vTCgpJiZuPy56VygpJiZjMCgpO3JldHVybntzdXBwb3J0c1ZwOUVuY29kaW5nOiEoIW4/LllqKCl8fFcpLHN1cHBvcnRYaHI6TnN9fTsKajc9ZnVuY3Rpb24obil7aWYobj1uPy5lbmRwb2ludClyZXR1cm4gZy53KG4sZy5JUSl8fGcudyhuLFRlKX07CmRsPWZ1bmN0aW9uKG4pe3JldHVybiBqNyhuKT8ucGxheWVyUGFyYW1zfTsKTVNNPWFzeW5jIGZ1bmN0aW9uKG4sVyl7bj17Y29udGV4dDp1RihuLkcoKSksZW5nYWdlbWVudFR5cGU6IkVOR0FHRU1FTlRfVFlQRV9QTEFZQkFDSyIsaWRzOlt7cGxheWJhY2tJZDp7dmlkZW9JZDpuLnZpZGVvSWQsY3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX19XX07dmFyIEQ9TEIod1laKTtyZXR1cm4gYXdhaXQgZy5yXyhXLG4sRCl9OwpDQT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5kTShXLmV4cGVyaW1lbnRzLCJiZ192bV9yZWluaXRfdGhyZXNob2xkIik7KCFvZnx8KDAsZy5SKSgpLW9mPmIpJiZNU00obixEKS50aGVuKHY9Pnt2JiYodj12LmJvdGd1YXJkRGF0YSkmJmcuekModixXKX0sdj0+e24ucU4oKXx8KHY9QiQodiksbi5VKCJhdHRmIix2LmRldGFpbHMpKX0pfTsKQlQ9ZnVuY3Rpb24obixXLEQpe24uc3RhdGUuTltXXT0oLi4uYik9PkQuYXBwbHkobixiKX07CkYyPWZ1bmN0aW9uKG4sVyxEKXtuLnN0YXRlLk4uaGFzT3duUHJvcGVydHkoVyl8fEJUKG4sVyxEKTtuLnN0YXRlLmpbV109KC4uLmIpPT5ELmFwcGx5KG4sYik7Cm4uc3RhdGUuSy5hZGQoVyl9Owp3bD1mdW5jdGlvbihuLFcsRCl7bi5zdGF0ZS5OLmhhc093blByb3BlcnR5KFcpfHxCVChuLFcsRCk7bi5hcHAuRygpLksmJihuLnN0YXRlLlZbV109KC4uLmIpPT5ELmFwcGx5KG4sYiksbi5zdGF0ZS5LLmFkZChXKSl9OwpNdT1mdW5jdGlvbihuLFcpe24uc3RhdGUuTi5hZGRFbWJlZHNDb252ZXJzaW9uVHJhY2tpbmdQYXJhbXMoLi4uVyl9OwpnLlJUPWZ1bmN0aW9uKG4sVywuLi5EKXtuLnN0YXRlLlcuV0ooVywuLi5EKTtuLnN0YXRlLkouV0ooVywuLi5EKX07CmcuUVU9ZnVuY3Rpb24obixXLC4uLkQpe24uc3RhdGUuVy5XSihXLC4uLkQpO24uc3RhdGUuSi5XSihXLC4uLkQpO24uc3RhdGUuWC5XSihXLC4uLkQpfTsKZy5WVT1mdW5jdGlvbihuLFcsLi4uRCl7bi5zdGF0ZS5XLldKKFcsLi4uRCk7bi5zdGF0ZS5KLldKKFcsLi4uRCk7bi5zdGF0ZS5YLldKKFcsLi4uRCk7bi5zdGF0ZS5ZLldKKFcsLi4uRCl9OwphVD1mdW5jdGlvbihuLFcsRCl7dHlwZW9mIG49PT0ic3RyaW5nIiYmKG49e21lZGlhQ29udGVudFVybDpuLHN0YXJ0U2Vjb25kczpXLHN1Z2dlc3RlZFF1YWxpdHk6RH0pO2E6e2lmKChXPW4ubWVkaWFDb250ZW50VXJsKSYmKFc9L1wvKFt2ZV18ZW1iZWQpXC8oW14jP10rKS8uZXhlYyhXKSkmJldbMl0pe1c9V1syXTticmVhayBhfVc9bnVsbH1uLnZpZGVvSWQ9VztyZXR1cm4gY1Qobil9OwpjVD1mdW5jdGlvbihuLFcsRCl7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm57dmlkZW9JZDpuLHN0YXJ0U2Vjb25kczpXLHN1Z2dlc3RlZFF1YWxpdHk6RH07Vz17fTtmb3IobGV0IGIgb2YgUmtaKW5bYl0mJihXW2JdPW5bYl0pOyhuPW4uZW1iZWRDb25maWd8fG4uZW1iZWRfY29uZmlnKSYmKFcuZW1iZWRfY29uZmlnPW4yKG4pKTtyZXR1cm4gV307ClFzUz1mdW5jdGlvbihuLFcsRCxiKXtpZihnLmZ0KG4pJiYhQXJyYXkuaXNBcnJheShuKSl7Vz0icGxheWxpc3QgbGlzdCBsaXN0VHlwZSBpbmRleCBzdGFydFNlY29uZHMgc3VnZ2VzdGVkUXVhbGl0eSIuc3BsaXQoIiAiKTtEPXt9O2ZvcihiPTA7YjxXLmxlbmd0aDtiKyspe2xldCB2PVdbYl07blt2XSYmKERbdl09blt2XSl9cmV0dXJuIER9Vz17aW5kZXg6VyxzdGFydFNlY29uZHM6RCxzdWdnZXN0ZWRRdWFsaXR5OmJ9O3R5cGVvZiBuPT09InN0cmluZyImJm4ubGVuZ3RoPT09MTY/Vy5saXN0PSJQTCIrbjpXLnBsYXlsaXN0PW47cmV0dXJuIFd9OwpuMj1mdW5jdGlvbihuKXtpZih0eXBlb2Ygbj09PSJzdHJpbmciKXJldHVybiBuO2lmKGcuZnQobikpdHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuKX1jYXRjaChXKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGVtYmVkQ29uZmlnIEpTT04iLFcpfX07Clc3PWZ1bmN0aW9uKG4sVz0xKXt2YXIgRD17fTtXPW4uYXBwLlZFKHtwbGF5ZXJUeXBlOld9KS5nZXRWaWRlb0RhdGEoKTtpZihpRihXKSlyZXR1cm57fTtELnZpZGVvX2lkPVcudmlkZW9JZDtELmF1dGhvcj1XLmF1dGhvcjtELnRpdGxlPVcudGl0bGU7RC5pc1BsYXlhYmxlPVpQKFcpO0QuZXJyb3JDb2RlPVcuZXJyb3JDb2RlO2lmKFcuSiYmVy5KLnZpZGVvKXtELnZpZGVvX3F1YWxpdHk9Vy5KLnZpZGVvLnF1YWxpdHk7Vz1XLkoudmlkZW87bGV0IGI9W107Vy5KKCkmJmIucHVzaCgiaGZyIik7Vy5pc0hkcigpJiZiLnB1c2goImhkciIpO1cucHJpbWFyaWVzPT09ImJ0MjAyMCImJmIucHVzaCgid2NnIik7RC52aWRlb19xdWFsaXR5X2ZlYXR1cmVzPWJ9aWYobj1uLmdldFBsYXlsaXN0SWQoKSlELmxpc3Q9bjtyZXR1cm4gRH07ClZTaD1mdW5jdGlvbihuKXtGMihuLCJjdWVWaWRlb0J5SWQiLG4uY0opO0YyKG4sImxvYWRWaWRlb0J5SWQiLG4uWSQpO0YyKG4sImN1ZVZpZGVvQnlVcmwiLG4uYmQpO0YyKG4sImxvYWRWaWRlb0J5VXJsIixuLlFyKTtGMihuLCJwbGF5VmlkZW8iLG4ueXcpO0YyKG4sInBhdXNlVmlkZW8iLG4ucGF1c2VWaWRlbyk7RjIobiwic3RvcFZpZGVvIixuLnptKTtGMihuLCJjbGVhclZpZGVvIixuLmNsZWFyVmlkZW8pO0YyKG4sImdldFZpZGVvQnl0ZXNMb2FkZWQiLG4uWVopO0YyKG4sImdldFZpZGVvQnl0ZXNUb3RhbCIsbi5SYSk7RjIobiwiZ2V0VmlkZW9Mb2FkZWRGcmFjdGlvbiIsbi5YKTtGMihuLCJnZXRWaWRlb1N0YXJ0Qnl0ZXMiLG4uTEIpO0YyKG4sImN1ZVBsYXlsaXN0IixuLmN1ZVBsYXlsaXN0KTtGMihuLCJsb2FkUGxheWxpc3QiLG4uTmQpO0YyKG4sIm5leHRWaWRlbyIsbi5VNSk7RjIobiwicHJldmlvdXNWaWRlbyIsbi5RJCk7RjIobiwicGxheVZpZGVvQXQiLG4uTWQpOwpGMihuLCJzZXRTaHVmZmxlIixuLnNldFNodWZmbGUpO0YyKG4sInNldExvb3AiLG4uc2V0TG9vcCk7RjIobiwiZ2V0UGxheWxpc3QiLG4ualcpO0YyKG4sImdldFBsYXlsaXN0SW5kZXgiLG4uZ2V0UGxheWxpc3RJbmRleCk7RjIobiwiZ2V0UGxheWxpc3RJZCIsbi5nZXRQbGF5bGlzdElkKTtGMihuLCJsb2FkTW9kdWxlIixuLmopO0YyKG4sInVubG9hZE1vZHVsZSIsbi5WKTtGMihuLCJzZXRPcHRpb24iLG4uSik7RjIobiwiZ2V0T3B0aW9uIixuLnZKKTtGMihuLCJnZXRPcHRpb25zIixuLk4pO0YyKG4sIm11dGUiLG4uczUpO0YyKG4sInVuTXV0ZSIsbi5taCk7RjIobiwiaXNNdXRlZCIsbi5pc011dGVkKTtGMihuLCJzZXRWb2x1bWUiLG4uYlYpO0YyKG4sImdldFZvbHVtZSIsbi5nZXRWb2x1bWUpO0YyKG4sInNlZWtUbyIsbi5TVik7RjIobiwiZ2V0UGxheWVyTW9kZSIsbi5nZXRQbGF5ZXJNb2RlKTtGMihuLCJnZXRQbGF5ZXJTdGF0ZSIsbi55RSk7RjIobiwiZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcyIsCm4uZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcyk7RjIobiwiZ2V0UGxheWJhY2tRdWFsaXR5IiwoKT0+bi5nZXRQbGF5YmFja1F1YWxpdHkoMSkpOwpGMihuLCJzZXRQbGF5YmFja1F1YWxpdHkiLG4uZVYpO0YyKG4sImdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMiLG4uVlEpO0YyKG4sImdldEN1cnJlbnRUaW1lIixuLkhKKTtGMihuLCJnZXREdXJhdGlvbiIsbi5udSk7RjIobiwiYWRkRXZlbnRMaXN0ZW5lciIsbi5PKTtGMihuLCJyZW1vdmVFdmVudExpc3RlbmVyIixuLmdUKTtGMihuLCJnZXREZWJ1Z1RleHQiLG4uRHQpO0YyKG4sImdldFZpZGVvRGF0YSIsKCk9Plc3KG4pKTsKRjIobiwiYWRkQ3VlUmFuZ2UiLG4uWSk7RjIobiwicmVtb3ZlQ3VlUmFuZ2UiLG4ucmVtb3ZlQ3VlUmFuZ2UpO0YyKG4sInNldFNpemUiLG4uc2V0U2l6ZSk7RjIobiwiZ2V0QXBpSW50ZXJmYWNlIixuLmdldEFwaUludGVyZmFjZSk7RjIobiwiZGVzdHJveSIsbi5kZXN0cm95KTtGMihuLCJtdXRlZEF1dG9wbGF5IixuLm11dGVkQXV0b3BsYXkpO3ZhciBXPW4uYXBwLkcoKTtGMihuLCJnZXRWaWRlb0VtYmVkQ29kZSIsbi5nZXRWaWRlb0VtYmVkQ29kZSk7RjIobiwiZ2V0VmlkZW9VcmwiLG4ud2EpO0YyKG4sImdldE1lZGlhUmVmZXJlbmNlVGltZSIsbi5HQyk7RjIobiwiZ2V0U2l6ZSIsbi5nZXRTaXplKTtGMihuLCJzZXRGYXV4RnVsbHNjcmVlbiIsbi51NSk7Vy5TKCJlbWJlZHNfZW5hYmxlX21vdmVfc2V0X2NlbnRlcl9jcm9wX3RvX3B1YmxpYyIpJiZGMihuLCJzZXRDZW50ZXJDcm9wIixuLnNldENlbnRlckNyb3ApO1cuWHx8RjIobiwibG9nSW1hQWRFdmVudCIsbi5sb2dJbWFBZEV2ZW50KTsKRjIobiwicHJlbG9hZFZpZGVvQnlJZCIsbi5SdCk7RjIobiwid2FrZVVwQ29udHJvbHMiLG4ud2FrZVVwQ29udHJvbHMpfTsKZy5iNT1mdW5jdGlvbihuKXtyZXR1cm4obj1EJChuLmFwcC5KNSgpKSk/bi5CNygpOm51bGx9OwprRj1mdW5jdGlvbihuKXt2YXIgVz1RTShuLmFwcC5HKCkpLEQ9bi5hcHAuZ2V0VmlkZW9EYXRhKCk/Lk1kO249djcobi5hcHApO3JldHVybiBMeShXKSYmIUR8fG4/ITE6ITB9OwpoZj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIHR5cGVvZiBuPT09Im51bWJlciI/e3BsYXllclR5cGU6bix2bzpXLGNwbjpEfTpufHx7fX07CmMxQz1mdW5jdGlvbihuKXt2YXIgVz1uLnJhd19wbGF5ZXJfcmVzcG9uc2U7aWYoIVcpe3ZhciBEPW4ucGxheWVyX3Jlc3BvbnNlO0QmJihXPUpTT04ucGFyc2UoRCkpfWRlbGV0ZSBuLnBsYXllcl9yZXNwb25zZTtkZWxldGUgbi5yYXdfcGxheWVyX3Jlc3BvbnNlO1cmJihuLnJhd19wbGF5ZXJfcmVzcG9uc2U9e3N0cmVhbWluZ0RhdGE6Vy5zdHJlYW1pbmdEYXRhLHBsYXllckNvbmZpZzpXLnBsYXllckNvbmZpZ30sVy5wbGF5YmFja1RyYWNraW5nPy5xb2VVcmwmJihuLnJhd19wbGF5ZXJfcmVzcG9uc2U9ey4uLm4ucmF3X3BsYXllcl9yZXNwb25zZSxwbGF5YmFja1RyYWNraW5nOntxb2VVcmw6Vy5wbGF5YmFja1RyYWNraW5nLnFvZVVybH19KSxXLmNhcHRpb25zJiYobi5yYXdfcGxheWVyX3Jlc3BvbnNlPXsuLi5uLnJhd19wbGF5ZXJfcmVzcG9uc2UsY2FwdGlvbnM6Vy5jYXB0aW9uc30pLFcudmlkZW9EZXRhaWxzJiYoVy52aWRlb0RldGFpbHMudmlkZW9JZHx8Vy52aWRlb0RldGFpbHMubGVuZ3RoU2Vjb25kcykmJgooRD17fSxXLnZpZGVvRGV0YWlscy52aWRlb0lkJiYoRC52aWRlb0lkPVcudmlkZW9EZXRhaWxzLnZpZGVvSWQpLFcudmlkZW9EZXRhaWxzLmxlbmd0aFNlY29uZHMmJihELmxlbmd0aFNlY29uZHM9Vy52aWRlb0RldGFpbHMubGVuZ3RoU2Vjb25kcyksbi5yYXdfcGxheWVyX3Jlc3BvbnNlPXsuLi5uLnJhd19wbGF5ZXJfcmVzcG9uc2UsdmlkZW9EZXRhaWxzOkR9KSl9Owp4Rj1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2lmKG4uYXBwLkcoKS5PKXtmb3IobGV0IGIgb2YgYWF4KVcuaGFzT3duUHJvcGVydHkoYikmJihEW2JdPVdbYl0pO2lmKG49RC5xb2VfY2F0KVc9IiIsdHlwZW9mIG49PT0ic3RyaW5nIiYmbi5sZW5ndGg+MCYmKFc9bi5zcGxpdCgiLCIpLmZpbHRlcihiPT5udDIuaW5jbHVkZXMoYikpLmpvaW4oIiwiKSksRC5xb2VfY2F0PVc7CmMxQyhEKX1lbHNlIGZvcihsZXQgYiBvZiBXYXcpVy5oYXNPd25Qcm9wZXJ0eShiKSYmKERbYl09V1tiXSk7cmV0dXJuIER9OwpMMj1mdW5jdGlvbihuKXtyZXR1cm4gbj9Ed1Vbbl18fDU6NX07CmVCPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKFcpKXtsZXQgYj1XW0RdO249bi5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcJCIrRCwiZ2kiKSwoKT0+Yil9cmV0dXJuIG59OwpiX0M9ZnVuY3Rpb24obil7QlQobiwiZ2V0SW50ZXJuYWxBcGlJbnRlcmZhY2UiLG4uZ2V0SW50ZXJuYWxBcGlJbnRlcmZhY2UpO0JUKG4sImdldFRydXN0ZWRBcGkiLG4uZ2V0VHJ1c3RlZEFwaSk7QlQobiwiYWRkRXZlbnRMaXN0ZW5lciIsbi5EKTtCVChuLCJyZW1vdmVFdmVudExpc3RlbmVyIixuLlRRKTtCVChuLCJjdWVWaWRlb0J5UGxheWVyVmFycyIsbi50dyk7QlQobiwibG9hZFZpZGVvQnlQbGF5ZXJWYXJzIixuLkU1KTtCVChuLCJwcmVsb2FkVmlkZW9CeVBsYXllclZhcnMiLG4uWmgpO0JUKG4sImdldEFkU3RhdGUiLG4uZ2V0QWRTdGF0ZSk7QlQobiwic2VuZEFiYW5kb25tZW50UGluZyIsbi5zZW5kQWJhbmRvbm1lbnRQaW5nKTtCVChuLCJzZXRMb29wUmFuZ2UiLG4uc2V0TG9vcFJhbmdlKTtCVChuLCJnZXRMb29wUmFuZ2UiLG4uZ2V0TG9vcFJhbmdlKTtCVChuLCJzZXRBdXRvbmF2U3RhdGUiLG4uc2V0QXV0b25hdlN0YXRlKTtCVChuLCJzZWVrVG8iLG4uYk4pO0JUKG4sCiJzZWVrQnkiLG4uc1YpO0JUKG4sInNlZWtUb0xpdmVIZWFkIixuLnNlZWtUb0xpdmVIZWFkKTtCVChuLCJyZXF1ZXN0U2Vla1RvV2FsbFRpbWVTZWNvbmRzIixuLnJlcXVlc3RTZWVrVG9XYWxsVGltZVNlY29uZHMpO0JUKG4sInNlZWtUb1N0cmVhbVRpbWUiLG4uc2Vla1RvU3RyZWFtVGltZSk7QlQobiwic3RhcnRTZWVrQ3NpQWN0aW9uIixuLnN0YXJ0U2Vla0NzaUFjdGlvbik7QlQobiwiZ2V0U3RyZWFtVGltZU9mZnNldCIsbi5nZXRTdHJlYW1UaW1lT2Zmc2V0KTtCVChuLCJnZXRWaWRlb0RhdGEiLG4uZkIpO0JUKG4sImdldEFwcFN0YXRlIixuLmdldEFwcFN0YXRlKTtCVChuLCJ1cGRhdGVMYXN0QWN0aXZlVGltZSIsbi51cGRhdGVMYXN0QWN0aXZlVGltZSk7QlQobiwic2V0VXNlckVuZ2FnZW1lbnQiLG4uc2V0VXNlckVuZ2FnZW1lbnQpO0JUKG4sInVwZGF0ZVN1YnRpdGxlc1VzZXJTZXR0aW5ncyIsbi51cGRhdGVTdWJ0aXRsZXNVc2VyU2V0dGluZ3MpO0JUKG4sImdldFByZXNlbnRpbmdQbGF5ZXJUeXBlIiwKbi5XKTtCVChuLCJjYW5QbGF5VHlwZSIsbi5jYW5QbGF5VHlwZSk7QlQobiwidXBkYXRlUGxheWxpc3QiLG4udXBkYXRlUGxheWxpc3QpO0JUKG4sInVwZGF0ZVZpZGVvRGF0YSIsbi51cGRhdGVWaWRlb0RhdGEpO0JUKG4sInVwZGF0ZUVudmlyb25tZW50RGF0YSIsbi51cGRhdGVFbnZpcm9ubWVudERhdGEpO0JUKG4sInNlbmRWaWRlb1N0YXRzRW5nYWdlRXZlbnQiLG4uWXIpO0JUKG4sInNldFNhZmV0eU1vZGUiLG4uc2V0U2FmZXR5TW9kZSk7QlQobiwiaXNBdExpdmVIZWFkIixXPT5uLmlzQXRMaXZlSGVhZCh2b2lkIDAsVykpOwpCVChuLCJnZXRWaWRlb0FzcGVjdFJhdGlvIixuLmdldFZpZGVvQXNwZWN0UmF0aW8pO0JUKG4sImdldFByZWZlcnJlZFF1YWxpdHkiLG4uZ2V0UHJlZmVycmVkUXVhbGl0eSk7QlQobiwiZ2V0UGxheWJhY2tRdWFsaXR5TGFiZWwiLG4uZ2V0UGxheWJhY2tRdWFsaXR5TGFiZWwpO0JUKG4sInNldFBsYXliYWNrUXVhbGl0eVJhbmdlIixuLldpKTtCVChuLCJvbkFkVXhDbGlja2VkIixuLm9uQWRVeENsaWNrZWQpO0JUKG4sImdldEZlZWRiYWNrUHJvZHVjdERhdGEiLG4uZ2V0RmVlZGJhY2tQcm9kdWN0RGF0YSk7QlQobiwiZ2V0U3Rvcnlib2FyZEZyYW1lIixuLmdldFN0b3J5Ym9hcmRGcmFtZSk7QlQobiwiZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgiLG4uZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgpO0JUKG4sImdldFN0b3J5Ym9hcmRMZXZlbCIsbi5nZXRTdG9yeWJvYXJkTGV2ZWwpO0JUKG4sImdldE51bWJlck9mU3Rvcnlib2FyZExldmVscyIsbi5nZXROdW1iZXJPZlN0b3J5Ym9hcmRMZXZlbHMpOwpCVChuLCJnZXRDYXB0aW9uV2luZG93Q29udGFpbmVySWQiLG4uZ2V0Q2FwdGlvbldpbmRvd0NvbnRhaW5lcklkKTtCVChuLCJnZXRBdmFpbGFibGVRdWFsaXR5TGFiZWxzIixuLmdldEF2YWlsYWJsZVF1YWxpdHlMYWJlbHMpO0JUKG4sImFkZEN1ZVJhbmdlIixuLmFkZEN1ZVJhbmdlKTtCVChuLCJhZGRVdGNDdWVSYW5nZSIsbi5hZGRVdGNDdWVSYW5nZSk7QlQobiwic2hvd0FpcnBsYXlQaWNrZXIiLG4uc2hvd0FpcnBsYXlQaWNrZXIpO0JUKG4sImRpc3BhdGNoUmVkdXhBY3Rpb24iLG4uZGlzcGF0Y2hSZWR1eEFjdGlvbik7QlQobiwiZ2V0UGxheWVyUmVzcG9uc2UiLG4uUFgpO0JUKG4sImdldFdhdGNoTmV4dFJlc3BvbnNlIixuLnZYKTtCVChuLCJnZXRIZWFydGJlYXRSZXNwb25zZSIsbi5GRik7QlQobiwiZ2V0Q3VycmVudFRpbWUiLG4uZSQpO0JUKG4sImdldER1cmF0aW9uIixuLm1aKTtCVChuLCJnZXRQbGF5ZXJTdGF0ZSIsbi5nZXRQbGF5ZXJTdGF0ZSk7QlQobiwiZ2V0UGxheWVyU3RhdGVPYmplY3QiLApuLkN1KTtCVChuLCJnZXRWaWRlb0xvYWRlZEZyYWN0aW9uIixuLmdldFZpZGVvTG9hZGVkRnJhY3Rpb24pO0JUKG4sImdldFByb2dyZXNzU3RhdGUiLG4uZ2V0UHJvZ3Jlc3NTdGF0ZSk7QlQobiwiZ2V0Vm9sdW1lIixuLmdldFZvbHVtZSk7QlQobiwic2V0Vm9sdW1lIixuLmtGKTtCVChuLCJpc011dGVkIixuLmlzTXV0ZWQpO0JUKG4sIm11dGUiLG4uZ0cpO0JUKG4sInVuTXV0ZSIsbi5sbSk7QlQobiwibG9hZE1vZHVsZSIsbi5sb2FkTW9kdWxlKTtCVChuLCJ1bmxvYWRNb2R1bGUiLG4udW5sb2FkTW9kdWxlKTtCVChuLCJnZXRPcHRpb24iLG4uanUpO0JUKG4sImdldE9wdGlvbnMiLG4uZ2V0T3B0aW9ucyk7QlQobiwic2V0T3B0aW9uIixuLnNldE9wdGlvbik7QlQobiwibG9hZFZpZGVvQnlJZCIsbi5ydyk7QlQobiwibG9hZFZpZGVvQnlVcmwiLG4uSzApO0JUKG4sInBsYXlWaWRlbyIsbi5VRyk7QlQobiwic3RvcFZpZGVvIixuLkspO0JUKG4sImxvYWRQbGF5bGlzdCIsbi5sb2FkUGxheWxpc3QpOwpCVChuLCJuZXh0VmlkZW8iLG4ubmV4dFZpZGVvKTtCVChuLCJwcmV2aW91c1ZpZGVvIixuLnByZXZpb3VzVmlkZW8pO0JUKG4sInBsYXlWaWRlb0F0IixuLnBsYXlWaWRlb0F0KTtCVChuLCJnZXREZWJ1Z1RleHQiLG4uZ2V0RGVidWdUZXh0KTtCVChuLCJnZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnIixuLmdldFdlYlBsYXllckNvbnRleHRDb25maWcpO0JUKG4sImdldFZpZGVvQ29udGVudFJlY3QiLG4uZ2V0VmlkZW9Db250ZW50UmVjdCk7QlQobiwidG9nZ2xlU3VidGl0bGVzT24iLG4udG9nZ2xlU3VidGl0bGVzT24pO0JUKG4sImlzU3VidGl0bGVzT24iLG4uaXNTdWJ0aXRsZXNPbik7QlQobiwiZ2V0QXVkaW9UcmFjayIsbi5UQyk7QlQobiwic2V0QXVkaW9UcmFjayIsbi5zeik7QlQobiwiZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MiLG4uUyQpO0JUKG4sImlzT3JjaGVzdHJhdGlvbkxlYWRlciIsbi5pc09yY2hlc3RyYXRpb25MZWFkZXIpO0JUKG4sIm5vdGlmeVNob3J0c0FkU3dpcGVFdmVudCIsCm4ubm90aWZ5U2hvcnRzQWRTd2lwZUV2ZW50KTtCVChuLCJwcmVmZXRjaEtleVBsYXkiLG4ucHJlZmV0Y2hLZXlQbGF5KTtCVChuLCJwcmVmZXRjaEp1bXBBaGVhZCIsbi5wcmVmZXRjaEp1bXBBaGVhZCk7QlQobiwicHJvZHVjdHNJblZpZGVvVmlzaWJpbGl0eVVwZGF0ZWQiLG4ucHJvZHVjdHNJblZpZGVvVmlzaWJpbGl0eVVwZGF0ZWQpO0JUKG4sInNldEJsYWNrb3V0IixuLnNldEJsYWNrb3V0KTtCVChuLCJzZXRJbmxpbmVQcmV2aWV3IixuLnNldElubGluZVByZXZpZXcpO0JUKG4sInNldFNxdWVlemViYWNrIixuLnNldFNxdWVlemViYWNrKTtCVChuLCJyZXBvcnRQbGF5YmFja0lzc3VlIixuLnJlcG9ydFBsYXliYWNrSXNzdWUpO0JUKG4sInNldEF1dG9uYXYiLG4uc2V0QXV0b25hdik7QlQobiwiaXNOb3RTZXJ2YWJsZSIsbi5pc05vdFNlcnZhYmxlKTtCVChuLCJjaGFubmVsU3Vic2NyaWJlZCIsbi5jaGFubmVsU3Vic2NyaWJlZCk7QlQobiwiY2hhbm5lbFVuc3Vic2NyaWJlZCIsCm4uY2hhbm5lbFVuc3Vic2NyaWJlZCk7QlQobiwidG9nZ2xlUGljdHVyZUluUGljdHVyZSIsbi50b2dnbGVQaWN0dXJlSW5QaWN0dXJlKTtCVChuLCJzdXBwb3J0c0dhcGxlc3NBdWRpbyIsbi5zdXBwb3J0c0dhcGxlc3NBdWRpbyk7QlQobiwic3VwcG9ydHNHYXBsZXNzU2hvcnRzIixuLnN1cHBvcnRzR2FwbGVzc1Nob3J0cyk7QlQobiwiaXNHYXBsZXNzVHJhbnNpdGlvblJlYWR5IixuLmlzR2FwbGVzc1RyYW5zaXRpb25SZWFkeSk7QlQobiwic2V0U2hvcnRzQXV0b0FkdmFuY2VkRW5hYmxlZCIsbi5zZXRTaG9ydHNBdXRvQWR2YW5jZWRFbmFibGVkKTtCVChuLCJlbnF1ZXVlVmlkZW9CeVBsYXllclZhcnMiLFc9PnZvaWQgbi5lbnF1ZXVlVmlkZW9CeVBsYXllclZhcnMoVykpOwpCVChuLCJjbGVhclF1ZXVlIixuLmNsZWFyUXVldWUpO0JUKG4sImdldE1heFBsYXliYWNrUXVhbGl0eSIsbi5nZXRNYXhQbGF5YmFja1F1YWxpdHkpO0JUKG4sImdldFVzZXJQbGF5YmFja1F1YWxpdHlQcmVmZXJlbmNlIixuLmdldFVzZXJQbGF5YmFja1F1YWxpdHlQcmVmZXJlbmNlKTtCVChuLCJnZXRTdWJ0aXRsZXNVc2VyU2V0dGluZ3MiLG4uZ2V0U3VidGl0bGVzVXNlclNldHRpbmdzKTtCVChuLCJyZXNldFN1YnRpdGxlc1VzZXJTZXR0aW5ncyIsbi5yZXNldFN1YnRpdGxlc1VzZXJTZXR0aW5ncyk7QlQobiwic2V0TWluaW1pemVkIixuLnNldE1pbmltaXplZCk7QlQobiwic2V0T3ZlcmxheVZpc2liaWxpdHkiLG4uc2V0T3ZlcmxheVZpc2liaWxpdHkpO0JUKG4sImNvbmZpcm1ZcGNSZW50YWwiLG4uY29uZmlybVlwY1JlbnRhbCk7QlQobiwicXVldWVOZXh0VmlkZW8iLG4ucXVldWVOZXh0VmlkZW8pO0JUKG4sImhhbmRsZUV4dGVybmFsQ2FsbCIsbi5oYW5kbGVFeHRlcm5hbENhbGwpOwpCVChuLCJsb2dBcGlDYWxsIixuLmxvZ0FwaUNhbGwpO0JUKG4sImlzRXh0ZXJuYWxNZXRob2RBdmFpbGFibGUiLG4uaXNFeHRlcm5hbE1ldGhvZEF2YWlsYWJsZSk7QlQobiwic2V0U2NyZWVuTGF5ZXIiLG4uc2V0U2NyZWVuTGF5ZXIpO0JUKG4sImdldEN1cnJlbnRQbGF5bGlzdFNlcXVlbmNlIixuLmdldEN1cnJlbnRQbGF5bGlzdFNlcXVlbmNlKTtCVChuLCJnZXRQbGF5bGlzdFNlcXVlbmNlRm9yVGltZSIsbi5nZXRQbGF5bGlzdFNlcXVlbmNlRm9yVGltZSk7QlQobiwic2hvdWxkU2VuZFZpc2liaWxpdHlTdGF0ZSIsbi5zaG91bGRTZW5kVmlzaWJpbGl0eVN0YXRlKTtCVChuLCJzeW5jVm9sdW1lIixuLnN5bmNWb2x1bWUpO0JUKG4sImhpZ2hsaWdodFNldHRpbmdzTWVudUl0ZW0iLG4uaGlnaGxpZ2h0U2V0dGluZ3NNZW51SXRlbSk7QlQobiwib3BlblNldHRpbmdzTWVudUl0ZW0iLG4ub3BlblNldHRpbmdzTWVudUl0ZW0pO0JUKG4sImdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UiLApuLmdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UpO0JUKG4sImdldFZpc2liaWxpdHlTdGF0ZSIsbi5nZXRWaXNpYmlsaXR5U3RhdGUpO0JUKG4sImlzTXV0ZWRCeU11dGVkQXV0b3BsYXkiLG4uaXNNdXRlZEJ5TXV0ZWRBdXRvcGxheSk7QlQobiwiaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheSIsbi5pc011dGVkQnlFbWJlZHNNdXRlZEF1dG9wbGF5KTtCVChuLCJzZXRHbG9iYWxDcm9wIixuLnNldEdsb2JhbENyb3ApO0JUKG4sInNldEludGVybmFsU2l6ZSIsbi5zZXRJbnRlcm5hbFNpemUpO0JUKG4sInNldEZhdXhGdWxsc2NyZWVuIixuLnNldEZhdXhGdWxsc2NyZWVuKTtCVChuLCJzZXRBcHBGdWxsc2NyZWVuIixuLnNldEFwcEZ1bGxzY3JlZW4pO0JUKG4sImlzS2V5Ym9hcmREaXNhYmxlZCIsbi5pc0tleWJvYXJkRGlzYWJsZWQpO0JUKG4sImdldEN1cnJlbnRUaW1lRm9yVXgiLG4uZ2V0Q3VycmVudFRpbWVGb3JVeCk7QlQobiwiZ2V0RHVyYXRpb25Gb3JVeCIsbi5nZXREdXJhdGlvbkZvclV4KX07Cmd2PWZ1bmN0aW9uKG4pe24uZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKT09PTM/bi5XSigibWR4YXV0b3BsYXljYW5jZWwiKTpnLlJUKG4sIm9uQXV0b25hdkNhbmNlbGxlZCIsITApfTsKWHo9ZnVuY3Rpb24obil7bj1uLko1KCkuTmkuZ2V0KCJlbmRzY3JlZW4iKTtyZXR1cm4hIW4mJlh6KG4pfTsKcXA9ZnVuY3Rpb24obil7bj1uLko1KCk7dmFyIFc9bi5OaS5nZXQoImVuZHNjcmVlbiIpO3JldHVybiBXJiZXLlhjKCk/ITA6bi5JVigpfTsKdGY9ZnVuY3Rpb24obil7dmFyIFc9R3Uobi5KNSgpKTtyZXR1cm4gbi5hcHAuWlYmJiFuLmlzRnVsbHNjcmVlbigpfHxuLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0zJiZXJiZXLmhhc05leHQoKSYmVy5oYXNQcmV2aW91cygpfHwhIW4uZ2V0UGxheWxpc3QoKX07CmcuZno9ZnVuY3Rpb24obil7cmV0dXJuKG49Zy4kRihuLko1KCkpKT9uLkhwKCk6e319OwpnLnJ2PWZ1bmN0aW9uKG4sVyxEKXtuPW4ubGooKS5lbGVtZW50O3ZhciBiPURlKG4uY2hpbGRyZW4sdj0+e3Y9TnVtYmVyKHYuZ2V0QXR0cmlidXRlKCJkYXRhLWxheWVyIikpO3JldHVybiBELXZ8fDF9KTsKYjwwJiYoYj0tKGIrMSkpO2cuanAobixXLGIpO1cuc2V0QXR0cmlidXRlKCJkYXRhLWxheWVyIixTdHJpbmcoRCkpfTsKdnRDPWZ1bmN0aW9uKG4sVyl7bj1zRihuLmFwcC5Wci5YKTtmb3IobGV0IEQgb2Ygbil7bj1ELmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7bGV0IGI9bnVsbDtmb3IobGV0IHYgb2YgbilpZih2LmdldExhbmd1YWdlSW5mbygpLmdldElkKCk9PT1XKXtiPXY7YnJlYWt9YiYmRC5MeShiLCEwKX19OwpnLnAyPWZ1bmN0aW9uKCl7TnB8fChOcD1uZXcga0t4KTtyZXR1cm4gTnB9OwpnLllGPWZ1bmN0aW9uKG4sVyl7Vz9uLlpKLkF1dGhvcml6YXRpb249YEJlYXJlciAke1d9YDpkZWxldGUgbi5aSi5BdXRob3JpemF0aW9ufTsKaHh3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9KC4uLmIpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKCJwbGF5aW5nIixEKTtXKC4uLmIpfTsKbi5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixEKX07CmcuSDc9ZnVuY3Rpb24obil7dmFyIFc9TWF0aC5hYnMoTWF0aC5mbG9vcihuKSksRD1NYXRoLmZsb29yKFcvODY0MDApLGI9TWF0aC5mbG9vcihXJTg2NDAwLzM2MDApLHY9TWF0aC5mbG9vcihXJTM2MDAvNjApO1c9TWF0aC5mbG9vcihXJTYwKTt2YXIgaz0iIjtEPjAmJihrKz1gJHtEfTpgLGI8MTAmJihrKz0iMCIpKTtpZihEPjB8fGI+MClrKz1gJHtifTpgLHY8MTAmJihrKz0iMCIpO2srPWAke3Z9OmA7VzwxMCYmKGsrPSIwIik7RD1rK1c7cmV0dXJuIG4+PTA/RDpgLSR7RH1gfTsKZjI9ZnVuY3Rpb24obil7cmV0dXJuKCEoImJ1dHRvbiJpbiBuKXx8dHlwZW9mIG4uYnV0dG9uIT09Im51bWJlciJ8fG4uYnV0dG9uPT09MCkmJiEoInNoaWZ0S2V5ImluIG4mJm4uc2hpZnRLZXkpJiYhKCJhbHRLZXkiaW4gbiYmbi5hbHRLZXkpJiYhKCJtZXRhS2V5ImluIG4mJm4ubWV0YUtleSkmJiEoImN0cmxLZXkiaW4gbiYmbi5jdHJsS2V5KX07CkpmPWZ1bmN0aW9uKG4sVyxELGIpe2lmKGIuc3Vic3RyaW5nKDAsMik9PT0ie3siKW4uWVpbYl09W1csRF07ZWxzZSByZXR1cm4gYn07Ckl5PWZ1bmN0aW9uKG4sVyxELGIpe2lmKEQ9PT0iY2hpbGQiKXtnLlRGKFcpO2xldCBrO2I9PT12b2lkIDA/az12b2lkIDA6az0hQXJyYXkuaXNBcnJheShiKXx8YiYmdHlwZW9mIGIuWj09PSJzdHJpbmciP1tiXTpiO0Q9eHcyKG4sayk7Zm9yKHZhciB2IG9mIEQpVy5hcHBlbmRDaGlsZCh2KX1lbHNlIEQ9PT0ic3R5bGUiP2cuaDEoVywiY3NzVGV4dCIsYj9iOiIiKTpiPT09bnVsbHx8Yj09PXZvaWQgMD9XLnJlbW92ZUF0dHJpYnV0ZShEKToodj1iLnRvU3RyaW5nKCksRD09PSJocmVmIiYmKHY9Z3ooZy50Rih2LGcuRzQpfHxnLlY1KSksVy5zZXRBdHRyaWJ1dGUoRCx2KSl9Owp4dzI9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtpZighVylyZXR1cm4gRDtmb3IobGV0IGIgb2YgVyl7aWYoYj09bnVsbCljb250aW51ZTtXPWIubm9kZVR5cGU7Vz09PTF8fFc9PT0zP0QucHVzaChiKTpiJiZ0eXBlb2YgYi5aPT09InN0cmluZyI/RC5wdXNoKG4uY3JlYXRlRWxlbWVudChiKSk6Yi5lbGVtZW50P0QucHVzaChiLmVsZW1lbnQpOnR5cGVvZiBiPT09InN0cmluZyImJmIuaW5kZXhPZigiXG4iKSE9PS0xP2Iuc3BsaXQoIlxuIikuZm9yRWFjaCgodixrKT0+e2s+MCYmRC5wdXNoKGcuekYoIkJSIikpO0QucHVzaChnLmxrKHYpKX0pOkQucHVzaChnLmxrKGIpKX1yZXR1cm4gRH07ClNCPWZ1bmN0aW9uKG4sVyl7bj1uLmVsZW1lbnQuZWxlbWVudDtXP24uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTpuLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKX07CkFmPWZ1bmN0aW9uKG4pe3JldHVybiBuLkomJm4uZmFkZS5zdGF0ZSE9PTR9OwptUD1mdW5jdGlvbihuKXtuLnNvdXJjZUVsZW1lbnQmJihkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZnLkJ4KG4uZWxlbWVudCxkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmbi5zb3VyY2VFbGVtZW50LmZvY3VzKCksbi5zb3VyY2VFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksbi5zb3VyY2VFbGVtZW50PXZvaWQgMCk7bi5OLkooKTtuLlc9dm9pZCAwfTsKZy5LMj1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntoZWlnaHQ6IjEwMCUiLHZlcnNpb246IjEuMSIsdmlld0JveDoiMCAwIDMyIDMyIix3aWR0aDoiMTAwJSJ9LFhGOlt7WjoicGF0aCIseGE6e2Q6Ik0gMTkuNDEsMjAuMDkgMTQuODMsMTUuNSAxOS40MSwxMC45MSAxOCw5LjUgbCAtNiw2IDYsNiB6IixmaWxsOiIjZmZmIn19XX19OwpnLk9GPWZ1bmN0aW9uKCl7cmV0dXJue1o6InN2ZyIseGE6e2hlaWdodDoiMTAwJSIsdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMzIgMzIiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIix4YTp7ZDoibSAxMi41OSwyMC4zNCA0LjU4LC00LjU5IC00LjU4LC00LjU5IDEuNDEsLTEuNDEgNiw2IC02LDYgeiIsZmlsbDoiI2ZmZiJ9fV19fTsKZy5QNz1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjEwMCUifSxYRjpbe1o6InBhdGgiLHhhOntkOiJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIsZmlsbDoiI2ZmZiJ9fV19fTsKWiQ9ZnVuY3Rpb24oKXtyZXR1cm57Wjoic3ZnIix4YTp7aGVpZ2h0OiIxMDAlIix2ZXJzaW9uOiIxLjEiLHZpZXdCb3g6IjAgMCAxMTAgMjYiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIixLeTohMCxKdzoieXRwLXN2Zy1maWxsIix4YTp7ZDoiTSAxNi42OCwuOTkgQyAxMy41NSwxLjAzIDcuMDIsMS4xNiA0Ljk5LDEuNjggYyAtMS40OSwuNCAtMi41OSwxLjYgLTIuOTksMyAtMC42OSwyLjcgLTAuNjgsOC4zMSAtMC42OCw4LjMxIDAsMCAtMC4wMSw1LjYxIC42OCw4LjMxIC4zOSwxLjUgMS41OSwyLjYgMi45OSwzIDIuNjksLjcgMTMuNDAsLjY4IDEzLjQwLC42OCAwLDAgMTAuNzAsLjAxIDEzLjQwLC0wLjY4IDEuNSwtMC40IDIuNTksLTEuNiAyLjk5LC0zIC42OSwtMi43IC42OCwtOC4zMSAuNjgsLTguMzEgMCwwIC4xMSwtNS42MSAtMC42OCwtOC4zMSAtMC40LC0xLjUgLTEuNTksLTIuNiAtMi45OSwtMyBDIDI5LjExLC45OCAxOC40MCwuOTkgMTguNDAsLjk5IGMgMCwwIC0wLjY3LC0wLjAxIC0xLjcxLDAgeiBtIDcyLjIxLC45MCAwLDIxLjI4IDIuNzgsMCAuMzEsLTEuMzcgLjA5LDAgYyAuMywuNSAuNzEsLjg4IDEuMjEsMS4xOCAuNSwuMyAxLjA4LC40MCAxLjY4LC40MCAxLjEsMCAxLjk5LC0wLjQ5IDIuNDksLTEuNTkgLjUsLTEuMSAuODEsLTIuNzAgLjgxLC00LjkwIGwgMCwtMi40MCBjIDAsLTEuNiAtMC4xMSwtMi45MCAtMC4zMSwtMy45MCAtMC4yLC0wLjg5IC0wLjUsLTEuNTkgLTEsLTIuMDkgLTAuNSwtMC40IC0xLjEwLC0wLjU5IC0xLjkwLC0wLjU5IC0wLjU5LDAgLTEuMTgsLjE5IC0xLjY4LC40OSAtMC40OSwuMyAtMS4wMSwuODAgLTEuMjEsMS40MCBsIDAsLTcuOTAgLTMuMjgsMCB6IG0gLTQ5Ljk5LC43OCAzLjkwLDEzLjkwIC4xOCw2LjcxIDMuMzEsMCAwLC02LjcxIDMuODcsLTEzLjkwIC0zLjM3LDAgLTEuNDAsNi4zMSBjIC0wLjQsMS44OSAtMC43MSwzLjE5IC0wLjgxLDMuOTkgbCAtMC4wOSwwIGMgLTAuMiwtMS4xIC0wLjUxLC0yLjQgLTAuODEsLTMuOTkgbCAtMS4zNywtNi4zMSAtMy40MCwwIHogbSAyOS41OSwwIDAsMi43MSAzLjQwLDAgMCwxNy45MCAzLjI4LDAgMCwtMTcuOTAgMy40MCwwIGMgMCwwIC4wMCwtMi43MSAtMC4wOSwtMi43MSBsIC05Ljk5LDAgeiBtIC01My40OSw1LjEyIDguOTAsNS4xOCAtOC45MCw1LjA5IDAsLTEwLjI4IHogbSA4OS40MCwuMDkgYyAtMS43LDAgLTIuODksLjU5IC0zLjU5LDEuNTkgLTAuNjksLjk5IC0wLjk5LDIuNjAgLTAuOTksNC45MCBsIDAsMi41OSBjIDAsMi4yIC4zMCwzLjkwIC45OSw0LjkwIC43LDEuMSAxLjgsMS41OSAzLjUsMS41OSAxLjQsMCAyLjM4LC0wLjMgMy4xOCwtMSAuNywtMC43IDEuMDksLTEuNjkgMS4wOSwtMy4wOSBsIDAsLTAuNSAtMi45MCwtMC4yMSBjIDAsMSAtMC4wOCwxLjYgLTAuMjgsMiAtMC4xLC40IC0wLjUsLjYyIC0xLC42MiAtMC4zLDAgLTAuNjEsLTAuMTEgLTAuODEsLTAuMzEgLTAuMiwtMC4zIC0wLjMwLC0wLjU5IC0wLjQwLC0xLjA5IC0wLjEsLTAuNSAtMC4wOSwtMS4yMSAtMC4wOSwtMi4yMSBsIDAsLTAuNzggNS43MSwtMC4wOSAwLC0yLjYyIGMgMCwtMS42IC0wLjEwLC0yLjc4IC0wLjQwLC0zLjY4IC0wLjIsLTAuODkgLTAuNzEsLTEuNTkgLTEuMzEsLTEuOTkgLTAuNywtMC40IC0xLjQ4LC0wLjU5IC0yLjY4LC0wLjU5IHogbSAtNTAuNDksLjA5IGMgLTEuMDksMCAtMi4wMSwuMTggLTIuNzEsLjY4IC0wLjcsLjQgLTEuMiwxLjEyIC0xLjQ5LDIuMTIgLTAuMywxIC0wLjUsMi4yNyAtMC41LDMuODcgbCAwLDIuMjEgYyAwLDEuNSAuMTAsMi43OCAuNDAsMy43OCAuMiwuOSAuNzAsMS42MiAxLjQwLDIuMTIgLjY5LC41IDEuNzEsLjY4IDIuODEsLjc4IDEuMTksMCAyLjA4LC0wLjI4IDIuNzgsLTAuNjggLjY5LC0wLjQgMS4wOSwtMS4wOSAxLjQ5LC0yLjA5IC4zOSwtMSAuNDksLTIuMzAgLjQ5LC0zLjkwIGwgMCwtMi4yMSBjIDAsLTEuNiAtMC4yLC0yLjg3IC0wLjQ5LC0zLjg3IC0wLjMsLTAuODkgLTAuOCwtMS42MiAtMS40OSwtMi4xMiAtMC43LC0wLjUgLTEuNTgsLTAuNjggLTIuNjgsLTAuNjggeiBtIDEyLjE4LC4wOSAwLDExLjkwIGMgLTAuMSwuMyAtMC4yOSwuNDggLTAuNTksLjY4IC0wLjIsLjIgLTAuNTEsLjMxIC0wLjgxLC4zMSAtMC4zLDAgLTAuNTgsLTAuMTAgLTAuNjgsLTAuNDAgLTAuMSwtMC4zIC0wLjE4LC0wLjcwIC0wLjE4LC0xLjQwIGwgMCwtMTAuOTkgLTMuNDAsMCAwLDExLjIxIGMgMCwxLjQgLjE4LDIuMzkgLjY4LDMuMDkgLjQ5LC43IDEuMjEsMSAyLjIxLDEgMS40LDAgMi40OCwtMC42OSAzLjE4LC0yLjA5IGwgLjA5LDAgLjMxLDEuNzggMi41OSwwIDAsLTE0Ljk5IGMgMCwwIC0zLjQwLC4wMCAtMy40MCwtMC4wOSB6IG0gMTcuMzEsMCAwLDExLjkwIGMgLTAuMSwuMyAtMC4yOSwuNDggLTAuNTksLjY4IC0wLjIsLjIgLTAuNTEsLjMxIC0wLjgxLC4zMSAtMC4zLDAgLTAuNTgsLTAuMTAgLTAuNjgsLTAuNDAgLTAuMSwtMC4zIC0wLjIxLC0wLjcwIC0wLjIxLC0xLjQwIGwgMCwtMTAuOTkgLTMuNDAsMCAwLDExLjIxIGMgMCwxLjQgLjIxLDIuMzkgLjcxLDMuMDkgLjUsLjcgMS4xOCwxIDIuMTgsMSAxLjM5LDAgMi41MSwtMC42OSAzLjIxLC0yLjA5IGwgLjA5LDAgLjI4LDEuNzggMi42MiwwIDAsLTE0Ljk5IGMgMCwwIC0zLjQwLC4wMCAtMy40MCwtMC4wOSB6IG0gMjAuOTAsMi4wOSBjIC40LDAgLjU4LC4xMSAuNzgsLjMxIC4yLC4zIC4zMCwuNTkgLjQwLDEuMDkgLjEsLjUgLjA5LDEuMjEgLjA5LDIuMjEgbCAwLDEuMDkgLTIuNSwwIDAsLTEuMDkgYyAwLC0xIC0wLjAwLC0xLjcxIC4wOSwtMi4yMSAwLC0wLjQgLjExLC0wLjggLjMxLC0xIC4yLC0wLjMgLjUxLC0wLjQwIC44MSwtMC40MCB6IG0gLTUwLjQ5LC4xMiBjIC41LDAgLjgsLjE4IDEsLjY4IC4xOSwuNSAuMjgsMS4zMCAuMjgsMi40MCBsIDAsNC42OCBjIDAsMS4xIC0wLjA4LDEuOTAgLTAuMjgsMi40MCAtMC4yLC41IC0wLjUsLjY4IC0xLC42OCAtMC41LDAgLTAuNzksLTAuMTggLTAuOTksLTAuNjggLTAuMiwtMC41IC0wLjMxLC0xLjMwIC0wLjMxLC0yLjQwIGwgMCwtNC42OCBjIDAsLTEuMSAuMTEsLTEuOTAgLjMxLC0yLjQwIC4yLC0wLjUgLjQ5LC0wLjY4IC45OSwtMC42OCB6IG0gMzkuNjgsLjA5IGMgLjMsMCAuNjEsLjEwIC44MSwuNDAgLjIsLjMgLjI3LC42NyAuMzcsMS4zNyAuMSwuNiAuMTIsMS41MSAuMTIsMi43MSBsIC4wOSwxLjkwIGMgMCwxLjEgLjAwLDEuOTkgLTAuMDksMi41OSAtMC4xLC42IC0wLjE5LDEuMDggLTAuNDksMS4yOCAtMC4yLC4zIC0wLjUwLC40MCAtMC45MCwuNDAgLTAuMywwIC0wLjUxLC0wLjA4IC0wLjgxLC0wLjE4IC0wLjIsLTAuMSAtMC4zOSwtMC4yOSAtMC41OSwtMC41OSBsIDAsLTguNSBjIC4xLC0wLjQgLjI5LC0wLjcgLjU5LC0xIC4zLC0wLjMgLjYwLC0wLjQwIC45MCwtMC40MCB6In19XX19OwpVRj1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntmaWxsOiJub25lIixoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCAxNDMgNTEiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIix4YTp7ZDoiTTU4LjM3IDQxLjM5SDYyLjc5VjI3LjIzQzYyLjc5IDIzLjAzIDYyLjY5IDE4LjY5IDYyLjQzIDEzLjU5SDYyLjkzTDYzLjY5IDE2Ljg5TDY4LjY3IDQxLjM5SDczLjE3TDc4LjA3IDE2Ljg5TDc4Ljg5IDEzLjU5SDc5LjM3Qzc5LjE1IDE4LjQ1IDc5LjAzIDIyLjg5IDc5LjAzIDI3LjIzVjQxLjM5SDgzLjQ1VjguNzlINzUuOTVMNzMuNDEgMjAuODFDNzIuMzUgMjUuODUgNzEuNTEgMzIuMDEgNzEuMDEgMzUuMTlINzAuNzNDNzAuMzMgMzEuOTUgNjkuNDkgMjUuODEgNjguNDEgMjAuODVMNjUuODEgOC43OUg1OC4zN1Y0MS4zOVoiLGZpbGw6IndoaXRlIn19LHtaOiJwYXRoIix4YTp7ZDoiTTkxLjQ1IDQxLjczQzkzLjkxIDQxLjczIDk1LjgzIDQwLjU5IDk3LjE3IDM4LjEzSDk3LjM1TDk3LjY5IDQxLjM5SDEwMS40M1YxNy43M0g5Ni40N1YzNi42MUM5NS45MSAzNy42NyA5NC44MSAzOC4yOSA5My43MyAzOC4yOUM5Mi4zMyAzOC4yOSA5MS44OSAzNy4xNyA5MS44OSAzNS4xM1YxNy43M0g4Ni45M1YzNS40M0M4Ni45MyAzOS40OSA4OC4xOSA0MS43MyA5MS40NSA0MS43M1oiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMTAuNzkgNDEuODlDMTE1LjE1IDQxLjg5IDExNy43NSAzOS44MyAxMTcuNzUgMzUuNjVDMTE3Ljc1IDMxLjc5IDExNS45MyAzMC4zOSAxMTEuODUgMjcuNDdDMTA5LjY3IDI1LjkxIDEwOC4zOSAyNS4wOSAxMDguMzkgMjIuOTVDMTA4LjM5IDIxLjQ3IDEwOS4yNyAyMC42MSAxMTAuODkgMjAuNjFDMTEyLjY5IDIwLjYxIDExMy4zMyAyMS44MSAxMTMuMzMgMjUuMjlMMTE3LjQ1IDI1LjA3QzExNy43NyAxOS41NyAxMTUuNzEgMTcuMjMgMTEwLjk3IDE3LjIzQzEwNi41NyAxNy4yMyAxMDQuMTcgMTkuMjcgMTA0LjE3IDIzLjQ1QzEwNC4xNyAyNy4yNSAxMDUuOTcgMjguODMgMTA4LjkzIDMxLjAzQzExMS44OSAzMy4yMyAxMTMuNTUgMzQuNTMgMTEzLjU1IDM2LjIzQzExMy41NSAzNy43NSAxMTIuNTEgMzguNjEgMTExLjAxIDM4LjYxQzEwOS4xMyAzOC42MSAxMDguMTEgMzYuOTcgMTA4LjI5IDM0LjQxTDEwNC4yMSAzNC40OUMxMDMuNTEgMzkuMjUgMTA1Ljg5IDQxLjg5IDExMC43OSA0MS44OVoiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMjIuNSAxNC41OUMxMjQuMjIgMTQuNTkgMTI1LjA0IDEzLjk5IDEyNS4wNCAxMS41OUMxMjUuMDQgOS4zMyAxMjQuMTYgOC42NSAxMjIuNSA4LjY1QzEyMC44NCA4LjY1IDExOS45NCA5LjI3IDExOS45NCAxMS41OUMxMTkuOTQgMTMuOTkgMTIwLjgyIDE0LjU5IDEyMi41IDE0LjU5Wk0xMjAuMiA0MS4zOUgxMjVWMTcuNzNIMTIwLjJWNDEuMzlaIixmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMzQuOTUgNDEuNzlDMTM3LjMxIDQxLjc5IDEzOC42MyA0MS40OSAxMzkuNzEgNDAuNDdDMTQxLjMxIDM5LjAxIDE0MS45NyAzNi42MyAxNDEuODUgMzMuMTFMMTM3LjQxIDMyLjg3QzEzNy40MSAzNi44NyAxMzYuODEgMzguNDUgMTM1LjAzIDM4LjQ1QzEzMy4xMyAzOC40NSAxMzIuNzcgMzYuNDUgMTMyLjc3IDMxLjk3VjI3LjIxQzEzMi43NyAyMi40MSAxMzMuMjMgMjAuNTEgMTM1LjA3IDIwLjUxQzEzNi42NyAyMC41MSAxMzcuMjkgMjIuMDEgMTM3LjI5IDI2LjQ3TDE0MS42NSAyNi4xNUMxNDEuOTcgMjIuOTMgMTQxLjU5IDIwLjI5IDE0MC4wOSAxOC44M0MxMzkuMDEgMTcuNzcgMTM3LjM3IDE3LjI5IDEzNS4xNSAxNy4yOUMxMjkuNjUgMTcuMjkgMTI3Ljc1IDIwLjczIDEyNy43NSAyOC4wM1YzMS4xN0MxMjcuNzUgMzguNDcgMTI5LjIzIDQxLjc5IDEzNC45NSA0MS43OVoiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6eyJjbGlwLXJ1bGUiOiJldmVub2RkIixkOiJNMjQuOTkgNDlDMjkuNzQgNDkuMDAgMzQuMzggNDcuNTkgMzguMzIgNDQuOTVDNDIuMjcgNDIuMzIgNDUuMzUgMzguNTcgNDcuMTcgMzQuMThDNDguOTggMjkuODAgNDkuNDYgMjQuOTcgNDguNTMgMjAuMzJDNDcuNjEgMTUuNjYgNDUuMzIgMTEuMzggNDEuOTcgOC4wM0MzOC42MSA0LjY3IDM0LjMzIDIuMzggMjkuNjggMS40NkMyNS4wMiAuNTMgMjAuMjAgMS4wMSAxNS44MSAyLjgyQzExLjQzIDQuNjQgNy42OCA3LjcxIDUuMDQgMTEuNjZDMi40MCAxNS42MSAxIDIwLjI1IDEgMjVDMC45OSAyOC4xNSAxLjYxIDMxLjI3IDIuODIgMzQuMThDNC4wMyAzNy4wOSA1Ljc5IDM5Ljc0IDguMDIgNDEuOTdDMTAuMjUgNDQuMTkgMTIuODkgNDUuOTYgMTUuODEgNDcuMTdDMTguNzIgNDguMzcgMjEuODQgNDkgMjQuOTkgNDlaTTI0Ljk5IDEyLjM2QzI3LjQ5IDEyLjM2IDI5Ljk0IDEzLjEwIDMyLjAyIDE0LjQ4QzM0LjEwIDE1Ljg3IDM1LjcyIDE3Ljg0IDM2LjY4IDIwLjE1QzM3LjY0IDIyLjQ2IDM3Ljg5IDI1LjAxIDM3LjQxIDI3LjQ2QzM2LjkyIDI5LjkxIDM1LjcyIDMyLjE3IDMzLjk1IDMzLjk0QzMyLjE4IDM1LjcwIDI5LjkzIDM2LjkxIDI3LjQ4IDM3LjQwQzI1LjAyIDM3Ljg5IDIyLjQ4IDM3LjY0IDIwLjE3IDM2LjY4QzE3Ljg2IDM1LjcyIDE1Ljg4IDM0LjEwIDE0LjUwIDMyLjAyQzEzLjExIDI5Ljk0IDEyLjM3IDI3LjUwIDEyLjM3IDI1QzEyLjM3IDIxLjY1IDEzLjcwIDE4LjQ0IDE2LjA3IDE2LjA3QzE4LjQzIDEzLjcwIDIxLjY0IDEyLjM3IDI0Ljk5IDEyLjM2Wk0yNC45OSAxMC40M0MyMi4xMSAxMC40MyAxOS4yOSAxMS4yOCAxNi44OSAxMi44OEMxNC41MCAxNC40OCAxMi42MyAxNi43NiAxMS41MyAxOS40MkMxMC40MiAyMi4wOSAxMC4xMyAyNS4wMiAxMC43MCAyNy44NUMxMS4yNiAzMC42NyAxMi42NSAzMy4yNyAxNC42OSAzNS4zMUMxNi43MyAzNy4zNSAxOS4zMiAzOC43MyAyMi4xNSAzOS4zMEMyNC45OCAzOS44NiAyNy45MSAzOS41NyAzMC41NyAzOC40NkMzMy4yMyAzNy4zNiAzNS41MSAzNS40OSAzNy4xMSAzMy4wOUMzOC43MSAzMC43MCAzOS41NyAyNy44OCAzOS41NiAyNUMzOS41NiAyMy4wOCAzOS4xOSAyMS4xOSAzOC40NiAxOS40MkMzNy43MiAxNy42NSAzNi42NSAxNi4wNCAzNS4zMCAxNC42OUMzMy45NCAxMy4zNCAzMi4zNCAxMi4yNyAzMC41NyAxMS41M0MyOC44MCAxMC44MCAyNi45MCAxMC40MyAyNC45OSAxMC40M1pNMzIuNjMgMjQuOTlMMjAuMzYgMzIuMDlWMTcuOTFMMzIuNjMgMjQuOTlaIiwKZmlsbDoid2hpdGUiLCJmaWxsLXJ1bGUiOiJldmVub2RkIn19XX19Owp5RT1mdW5jdGlvbihuPXt9LFc9W10pe1cucHVzaCgieXRwLW1lbnVpdGVtIik7InJvbGUiaW4gbnx8KG4ucm9sZT0ibWVudWl0ZW0iKTsidGFiaW5kZXgiaW4gbnx8KG4udGFiaW5kZXg9IjAiKTtyZXR1cm57WjoiZGl2IixLQjpXLHhhOm4sWEY6W3taOiJkaXYiLEp3OiJ5dHAtbWVudWl0ZW0taWNvbiIsT3E6Int7aWNvbn19In0se1o6ImRpdiIsSnc6Inl0cC1tZW51aXRlbS1sYWJlbCIsT3E6Int7bGFiZWx9fSJ9LHtaOiJkaXYiLEp3OiJ5dHAtbWVudWl0ZW0tY29udGVudCIsT3E6Int7Y29udGVudH19In1dfX07CkVGPWZ1bmN0aW9uKG4pe3JldHVybiBuP2cuRHAobik6IiJ9OwppNT1mdW5jdGlvbihuKXtyZXR1cm4gbj09PS0weDgwMDAwMDAwMDAwMDA/IkJFRk9SRV9NRURJQV9TVEFSVCI6bj09PTA/Ik1FRElBX1NUQVJUIjpuPT09MHg3ZmZmZmZmZmZmZmZmPyJNRURJQV9FTkQiOm49PT0weDgwMDAwMDAwMDAwMDA/IkFGVEVSX01FRElBX0VORCI6bi50b1N0cmluZygpfTsKZy51NT1mdW5jdGlvbihuLFcpe3JldHVybiBuLnN0YXJ0LVcuc3RhcnR8fG4ucHJpb3JpdHktVy5wcmlvcml0eXx8bi5KLVcuSn07Cmcub3k9ZnVuY3Rpb24obil7cmV0dXJuYGNybl8ke259YH07CmcuZHY9ZnVuY3Rpb24obil7cmV0dXJuYGNyeF8ke259YH07Cnp1PWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5zdGFydCxbMl06bi5lbmQsWzNdOm4uaWQsWzRdOm4ucHJpb3JpdHksWzVdOm4ubmFtZXNwYWNlLFs2XTpuLnZpc2libGUsWzddOm4uc3R5bGUsWzhdOm4udG9vbHRpcCxbOV06bi5jb2xvcixbMTBdOm4uaWNvbnMsWzExXTpuLmFzc29jaWF0ZWRDbGlwSWQsWzEyXTpuLm1hcmtlclBvc2l0aW9uTXN9fTsKVHU9ZnVuY3Rpb24obixXLEQsYil7VyBpbiBuLk58fChEPW5ldyBnLmw1KEQsYix7aWQ6Vyxwcmlvcml0eToyLG5hbWVzcGFjZToiYXBwYWQifSksbi5hcGkuZ2goW0RdLDEpLG4uTltXXT1EKX07CmpCPWZ1bmN0aW9uKG4sVyl7TGF4KG4sVykudGhlbihEPT57Zy5nbyhXLHZvaWQgMCx2b2lkIDAsRCl9KX07CkMyPWZ1bmN0aW9uKG4sVyl7Vy5mb3JFYWNoKEQ9PntqQihuLEQpfSl9OwpCNz1mdW5jdGlvbihuLFcsRCl7aWYoIShEIGluIFcpKXJldHVybiExO1c9V1tEXTtBcnJheS5pc0FycmF5KFcpfHwoVz1bV10pO2ZvcihsZXQgYiBvZiBXKVc9e0NQTjpuLmFwaS5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlfSxXPWcuR0soYixXKSxnLmdvKFcsdm9pZCAwLG9PKHpFKFcsZXh4LG51bGwpLFcsITEsIkFjdGl2ZSBWaWV3IDNyZCBQYXJ0eSBJbnRlZ3JhdGlvbiBVUkwiKXx8b08oekUoVyxndGosbnVsbCksVywhMSwiR29vZ2xlL1lvdVR1YmUgQnJhbmQgTGlmdCBVUkwiKXx8b08oekUoVyxYSzIsbnVsbCksVywhMSwiTmllbHNlbiBPQ1IgVVJMIikpO3JldHVybiEwfTsKTGF4PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuazYobi5hcGkuRygpKSYmZy5CVihXKSYmZy5qSChXKT9nLkhFKG4uYXBpLkcoKSxuLmFwaS5nZXRWaWRlb0RhdGEoKS5WKCkpLnRoZW4oRD0+e3ZhciBiO0QmJihiPXtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHtEfWB9KTtyZXR1cm4gYn0sdm9pZCAwKTpnLkgwKCl9OwpGej1mdW5jdGlvbihuLFcpe24uY2hlY2tlZD1XO24uZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsU3RyaW5nKG4uY2hlY2tlZCkpfTsKd3Y9ZnVuY3Rpb24obixXKXtuLmVuYWJsZWQ9VztuLmVuYWJsZWQ/bi5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIpOm4uZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIil9OwpNcD1mdW5jdGlvbihuLFcsRD0hMSxiKXt2YXIgdj1uLmN1cnJlbnRUYXJnZXQ7aWYoIUQmJmYyKG4pKXJldHVybiBuLnByZXZlbnREZWZhdWx0KCksITA7Vy5wYXVzZVZpZGVvKCk7bj12LmdldEF0dHJpYnV0ZSgiaHJlZiIpO1E1KG4sYik7cmV0dXJuITF9OwpSeT1mdW5jdGlvbihuLFcsRCl7aWYodkUoVy5HKCkpJiZXLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCkhPT0yKWYyKEQpJiYoVy5pc0Z1bGxzY3JlZW4oKSYmIVcuRygpLmV4dGVybmFsRnVsbHNjcmVlbiYmVy50b2dnbGVGdWxsc2NyZWVuKCksRC5wcmV2ZW50RGVmYXVsdCgpKTtlbHNle2xldCBiPWYyKEQpO2ImJlcucGF1c2VWaWRlbygpO1E1KG4pO2ImJihnLmNhKG4pLEQucHJldmVudERlZmF1bHQoKSl9fTsKUUU9ZnVuY3Rpb24obil7cmV0dXJuIG4uYXVkaW8/LmF1ZGlvUXVhbGl0eT09PSJBVURJT19RVUFMSVRZX0hJR0giJiYhbi5WKCl9OwpWRT1mdW5jdGlvbihuKXtyZXR1cm4gbi5hdWRpbz8uVz09PSEwfTsKYzc9ZnVuY3Rpb24obil7cmV0dXJuIG4uVigpfTsKYXk9ZnVuY3Rpb24obil7cmV0dXJuIG4uYXVkaW8/Lk49PT0hMH07Cm52PWZ1bmN0aW9uKG4sVyl7aWYobi5sZW5ndGg8MilyZXR1cm4hMTt2YXIgRD1XKG5bMF0pO3JldHVybiBuLnNvbWUoYj0+VyhiKSE9PUQpfTsKYlk9ZnVuY3Rpb24obixXKXtuPXFJdyhuLFcubGFuZ3VhZ2VJZCk7bj1XdShuLCEhVy5nTyk7cmV0dXJuIG49RGIobiwhIVcuajkpfTsKV3U9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkVNKG4sYj0+YXkoYik9PT1XKTsKcmV0dXJuIEQubGVuZ3RoPjA/RDpufTsKRGI9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkVNKG4sYj0+VkUoYik9PT1XKTsKcmV0dXJuIEQubGVuZ3RoPjA/RDpufTsKR0t0PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcuaWQhPT0idW5kIj9nLkVNKG4sRD0+e3ZhciBiPVcuZ2V0TGFuZ3VhZ2VJbmZvKCk/Lm5hbWU7cmV0dXJuIEQua1o/Lm5hbWU9PT1ifSk6bn07CnFJdz1mdW5jdGlvbihuLFcpe2lmKFcmJlchPT0idW5kIilpZih0eXBlb2YgVz09PSJzdHJpbmciKXt2YXIgRD1nLmxfKG4sdj0+di5pZD09PVcpOwppZihEPy5rWil2YXIgYj1ELmtaLmlkfWVsc2UgYj1XLmtaPy5pZDtpZihiJiYoRD1nLkVNKG4sdj0+di5rWj8uaWQ9PT1iKSxELmxlbmd0aD4wKSlyZXR1cm4gRDsKRD1nLkVNKG4sdj0+ISF2LmtaPy5pc0RlZmF1bHQpOwpyZXR1cm4gRC5sZW5ndGg+MD9EOm59Owp0QUM9ZnVuY3Rpb24obil7dmFyIFc9Zy5FTShuLEQ9PmM3KEQpPT09ITApOwpyZXR1cm4gVy5sZW5ndGg+MD9XOm59Owokd2o9ZnVuY3Rpb24obil7dmFyIFc9Zy5FTShuLEQ9PlFFKEQpPT09ITApOwpyZXR1cm4gVy5sZW5ndGg+MD9XOm59OwpyYVU9ZnVuY3Rpb24obixXKXtuPW5ldyBTZXQobi5tYXAoVykpO24uZGVsZXRlKHZvaWQgMCk7cmV0dXJuIG4uc2l6ZT49Mn07CnNGTT1mdW5jdGlvbihuLFcpe3JldHVybiBXLnByaW9yaXR5LW4ucHJpb3JpdHl9Owp2dT1mdW5jdGlvbihuLFcsRD0hMSl7aWYoRCluLml0ZW1zLnB1c2goVyksbi5tZW51SXRlbXMuZWxlbWVudC5hcHBlbmRDaGlsZChXLmVsZW1lbnQpO2Vsc2V7RD1nLlc0KG4uaXRlbXMsVyxzRk0pO2lmKEQ+PTApcmV0dXJuO0Q9fkQ7Zy5jTShuLml0ZW1zLEQsMCxXKTtnLmpwKG4ubWVudUl0ZW1zLmVsZW1lbnQsVy5lbGVtZW50LEQpfVcuc3Vic2NyaWJlKCJzaXplLWNoYW5nZSIsbi5xQSxuKTtuLm1lbnVJdGVtcy5XSigic2l6ZS1jaGFuZ2UiKX07CmtzPWZ1bmN0aW9uKG4sVyl7Vy51bnN1YnNjcmliZSgic2l6ZS1jaGFuZ2UiLG4ucUEsbik7bi5xTigpfHwoZy5GSShuLml0ZW1zLFcpLG4ubWVudUl0ZW1zLmVsZW1lbnQucmVtb3ZlQ2hpbGQoVy5lbGVtZW50KSxuLm1lbnVJdGVtcy5XSigic2l6ZS1jaGFuZ2UiKSl9OwpnLmhCPWZ1bmN0aW9uKG4sVyl7aWYobi5XKXt2YXIgRD1uLm9wdGlvbnNbbi5XXTtELmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiKTtELmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLCJmYWxzZSIpO24uVz1udWxsfWlmKEQ9bi5vcHRpb25zW1ddKUQuZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsInRydWUiKSxuLlgobi5qKFcpKSxuLlc9V307Ck5YaD1mdW5jdGlvbihuLFcsRCxiKXtEPW5ldyB4cyh7WjoiZGl2IixLQjpbInl0cC1tZW51aXRlbSIsIiJdLHhhOnt0YWJpbmRleDoiMCIscm9sZToibWVudWl0ZW1yYWRpbyIsImFyaWEtY2hlY2tlZCI6Yj8idHJ1ZSI6ImZhbHNlIn0sWEY6W3taOiJkaXYiLEtCOlsieXRwLW1lbnVpdGVtLWxhYmVsIl0sT3E6Int7bGFiZWx9fSJ9XX0sRCxuLmooVykpO0QuU18oImNsaWNrIiwoKT0+e24uRChXKX0pOwpyZXR1cm4gRH07CmcuTHY9ZnVuY3Rpb24obixXKXt2YXIgRD1uLks7Zm9yKHZhciBiIG9mIEQuaXRlbXMpYi51bnN1YnNjcmliZSgic2l6ZS1jaGFuZ2UiLEQucUEsRCk7RC5pdGVtcz1bXTt0cnl7Zy5URihELm1lbnVJdGVtcy5lbGVtZW50KX1jYXRjaCh2KXtnLkdxKG5ldyBnLlF4KCJGYWlsZWQgdG8gcmVtb3ZlIG1lbnUgaXRlbXMgZnJvbSBwYW5lbCBtZW51LiIse2Vycm9yOnYubWVzc2FnZSxvcmlnaW5hbFN0YWNrOnYuc3RhY2ssY2hpbGRUb0JlUmVtb3ZlZDpELm1lbnVJdGVtcy5lbGVtZW50LmZpcnN0Q2hpbGQ/LnRleHRDb250ZW50Pz8iY2hpbGQgZWxlbWVudCBub3QgZm91bmQifSkpfUQubWVudUl0ZW1zLldKKCJzaXplLWNoYW5nZSIpO0Q9e307Yj0hMTtmb3IobGV0IHY9MDt2PFcubGVuZ3RoO3YrKyl7bGV0IGs9V1t2XSxoPW4ub3B0aW9uc1trXSx4PWs9PT1uLlc7eCYmKGI9ITApO2gmJmgucHJpb3JpdHk9PT0tdj8obi5vcHRpb25zW2tdLnVwZGF0ZVZhbHVlKCJsYWJlbCIsbi5qKGspKSwKZGVsZXRlIG4ub3B0aW9uc1trXSk6aD1OWGgobixrLC12LHgpO0Rba109aDt2dShuLkssaCwhMCl9Ynx8KG4uVz1udWxsKTtmb3IobGV0IHYgb2YgT2JqZWN0LmtleXMobi5vcHRpb25zKSluLm9wdGlvbnNbdl0uZGlzcG9zZSgpO24ub3B0aW9ucz1EfTsKZW49ZnVuY3Rpb24obil7aWYobi5tZW51SXRlbSl7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCk7bi5tZW51SXRlbS5lbmFibGUoISFXJiYhIVcuV2spfX07CmdWPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9TnVtYmVyKEQucGxheWJhY2tQb3NpdGlvbj8udXRjVGltZU1pbGxpcykvMUUzO2xldCBiPWBlbWJhcmdvXyR7V31gO24uYXBpLmFkZFV0Y0N1ZVJhbmdlKGIsVyxXK051bWJlcihELmR1cmF0aW9uPy5zZWNvbmRzKSwiZW1iYXJnbyIsITEpO0Qub25FbnRlciYmKG4uTltiXT1ELm9uRW50ZXIuZmlsdGVyKG4uSikpfX07CllJMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5nZXRSb290Tm9kZSgpO1c9bi5hcGkuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpLmVtYmVkc0VuYWJsZUVtYzNkcz9XLnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnR8fFc6VztuLk49bmV3IHBLcihXLEQ9PntEIT1udWxsJiYobi5hcGkuRygpLmVLPUQsbi5hcGkuRygpLkxLPSJFTUJFRERFRF9QTEFZRVJfVklTSUJJTElUWV9GUkFDVElPTl9TT1VSQ0VfSU5URVJTRUNUSU9OX09CU0VSVkVSIil9KTsKZy51KG4sbi5OKTtuLmV2ZW50cy5OTihuLmFwaSwidmlkZW9TdGF0c1BpbmdDcmVhdGVkIixEPT57dmFyIGI9bi5OO2I9Yi5OPT1udWxsP251bGw6TWF0aC5yb3VuZChiLk4qMTAwKS8xMDA7RC5pbnZpZXc9YiE9bnVsbD9iOnZvaWQgMDtiPW4uYXBpLmdldFBsYXllclNpemUoKTtpZihiLmhlaWdodD4wJiZiLndpZHRoPjApe2I9W01hdGgucm91bmQoYi53aWR0aCksTWF0aC5yb3VuZChiLmhlaWdodCldO2xldCB2PWcuSF8oKTt2PjEmJmIucHVzaCh2KTtiPWIuam9pbigiOiIpfWVsc2UgYj12b2lkIDA7RC5zaXplPWJ9KX07CkhfVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoVz0+bmV3IG11KFcuaWQsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse2taOlcua1p9KSl9OwpxVz1mdW5jdGlvbihuLFcsRCxiKXtmdW5jdGlvbiB2KGgpe3ZhciB4PSEoaC5zdGF0dXMhPT0yMDQmJmguc3RhdHVzIT09MjAwJiYhaC5yZXNwb25zZSk7aD17c3VjYzpgJHsreH1gLHJjOmguc3RhdHVzLGxiOmgucmVzcG9uc2U/LmJ5dGVMZW5ndGh8fDAscnQ6KCgwLGcuUikoKS1rKS50b0ZpeGVkKCksc2hvc3Q6Zy5JUChuKSx0cmlnZ2VyOld9O1hyKGgsbik7RCYmRChoKTtiJiYheCYmYihuZXcgZy5DaSgicGF0aHByb2JlLm5ldCIsaCkpfQp2YXIgaz0oMCxnLlIpKCk7Zy5lZChuLHtmb3JtYXQ6IlJBVyIscmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIsdGltZW91dDoxRTQsb25GaW5pc2g6dixvblRpbWVvdXQ6dn0pfTsKWHI9ZnVuY3Rpb24obixXKXt3aW5kb3cucGVyZm9ybWFuY2U/LmdldEVudHJpZXNCeU5hbWUmJihXPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoVykpJiZXLmxlbmd0aCYmKFc9V1swXSxuLnBlZG5zPShXLmRvbWFpbkxvb2t1cEVuZC1XLnN0YXJ0VGltZSkudG9GaXhlZCgpLG4ucGVjb249KFcuY29ubmVjdEVuZC1XLmRvbWFpbkxvb2t1cEVuZCkudG9GaXhlZCgpLG4ucGVycXM9KFcucmVxdWVzdFN0YXJ0LVcuY29ubmVjdEVuZCkudG9GaXhlZCgpKX07CnRCPWZ1bmN0aW9uKG4pe3JldHVybiBHRChuLmlqLCFuLnBvbGljeS5mUixuLnBvbGljeS5RSCl9OwpmaXg9ZnVuY3Rpb24obixXKXt2YXIgRD1NYXRoLm1pbihuLnBvbGljeS5UNiwkcyhuLmlqKSk7bj10QihuKTtyZXR1cm4gVy1EKm59OwpyVj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLm1heChNYXRoLm1heChuLnBvbGljeS5abSxuLnBvbGljeS5UNCpEKSxNYXRoLm1pbihNYXRoLm1pbihuLnBvbGljeS5ISiwzMSpEKSxNYXRoLmNlaWwoVypEKSkpKXx8bi5wb2xpY3kuWm19OwpzYj1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe2lmKG4ucG9saWN5LlE3KXJldHVybiBNYXRoLmNlaWwobi5wb2xpY3kuUTcqVyk7bi5wb2xpY3kudm4mJihiPU1hdGguYWJzKGIpKTtiLz1uLnBsYXliYWNrUmF0ZTt2YXIgaz0xL0dEKG4uaWopO0Q9TWF0aC5tYXgoLjkqKGItMyksJHMobi5paikrbi5pai5KLk4qaykvayouOC8oVytEKTtEPU1hdGgubWluKEQsYik7bi5wb2xpY3kuSFk+MCYmdiYmKEQ9TWF0aC5tYXgoRCxuLnBvbGljeS5IWSkpO3JldHVybiByVihuLEQsVyl9OwpOVz1mdW5jdGlvbihuKXtyZXR1cm4gdEIobikvbi5wbGF5YmFja1JhdGV9Owpwdj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi5wb2xpY3kucGxheWJhY2tTdGFydFBvbGljeS5yZXN1bWVNaW5SZWFkYWhlYWRQb2xpY3l8fFtdLHY9bi5wb2xpY3kucGxheWJhY2tTdGFydFBvbGljeS5zdGFydE1pblJlYWRhaGVhZFBvbGljeXx8W107bj1JbmZpbml0eTtXPVcmJmIubGVuZ3RoPjA/Yjp2O2ZvcihsZXQgayBvZiBXKVc9ay5taW5SZWFkYWhlYWRNc3x8MCxEPChrLm1pbkJhbmR3aWR0aEJ5dGVzUGVyU2VjfHwwKXx8bj5XJiYobj1XKTtyZXR1cm4gbjxJbmZpbml0eT9uLzFFMzpufTsKZnY9ZnVuY3Rpb24obixXLEQsYix2KXtpZighYi5pbmZvLmFaKXJldHVybiBELmxlbmd0aD09PTA/RC5wdXNoKGIpOihuPUQucG9wKCk/LmooYikpP0QucHVzaChuKTpELnB1c2goYiksdjsoRD1ELnBvcCgpPy5qKGIpKXx8KEQ9Yik7aWYoRC5pbmZvLk4pcmV0dXJuIG4ubG9nZ2VyJiZuLmxvZ2dlcih7aW5jb21wbGV0ZVNlZ21lbnQ6RC5pbmZvLmdhKCl9KSx2O3ZhciB7Zm9ybWF0SWQ6ayxqJDpoLHN0YXJ0VGltZU1zOngsY2xpcElkOkwscjk6ZX09bi5LKEQpO2I9e2NsaXBJZDpMLGZvcm1hdElkOmssc3RhcnRUaW1lTXM6eCxkdXJhdGlvbk1zOmUsQUM6aCxpOTpofTt2PVlzKFcsYi5zdGFydFRpbWVNcyk7RD12Pj0wP1dbdl06bnVsbDt2YXIgRztpZihHPUQpe0c9Yjt2YXIgcj12LE49RC5zdGFydFRpbWVNcytELmR1cmF0aW9uTXMsSD1HLnN0YXJ0VGltZU1zK0cuZHVyYXRpb25NcztpZihHLnN0YXJ0VGltZU1zLU4+bi5OKUc9ITE7ZWxzZSBpZihIdShuLEQuZm9ybWF0SWQsRy5mb3JtYXRJZCkpRC5kdXJhdGlvbk1zPQpNYXRoLm1heChOLEgpLUQuc3RhcnRUaW1lTXMsRC5pOT1NYXRoLm1heChELmk5LEcuaTkpLEc9ITA7ZWxzZSBpZihNYXRoLmFicyhELnN0YXJ0VGltZU1zLUcuc3RhcnRUaW1lTXMpPD1uLk4paWYoRC5kdXJhdGlvbk1zPkcuZHVyYXRpb25NcytuLk4pe3I9RC5mb3JtYXRJZDt2YXIgQT1ELkFDLHk9RC5pOTtELmZvcm1hdElkPUcuZm9ybWF0SWQ7RC5kdXJhdGlvbk1zPUcuZHVyYXRpb25NcztELkFDPUcuQUM7RC5pOT1HLmk5O0cuZm9ybWF0SWQ9cjtHLnN0YXJ0VGltZU1zPUg7Ry5kdXJhdGlvbk1zPU4tSDtHLkFDPUE7Ry5pOT15O0c9ITF9ZWxzZSBELmZvcm1hdElkPUcuZm9ybWF0SWQsRz0hMDtlbHNlIE4+Ry5zdGFydFRpbWVNcyYmKE4+SCYmKFcuc3BsaWNlKHIrMSwwLHtmb3JtYXRJZDpELmZvcm1hdElkLHN0YXJ0VGltZU1zOkgsZHVyYXRpb25NczpOLUgsQUM6Ry5pOSsxLGk5OkQuaTl9KSxuLmxvZ2dlciYmbi5sb2dnZXIoe3NwbGl0T2xkU3RhcnQ6RC5zdGFydFRpbWVNcz8udG9GaXhlZCgzKSwKc3BsaXRPbGRFbmQ6Tj8udG9GaXhlZCgzKSxzcGxpdE5ld1N0YXJ0Okcuc3RhcnRUaW1lTXM/LnRvRml4ZWQoMyksc3BsaXROZXdFbmQ6SD8udG9GaXhlZCgzKX0pKSxELmR1cmF0aW9uTXM9Ry5zdGFydFRpbWVNcy1ELnN0YXJ0VGltZU1zLEQuaTk9Ry5BQy0xKSxHPSExfUc/Yj1EOih2Kz0xLFcuc3BsaWNlKHYsMCxiKSk7RD0wO2ZvcihHPXYrMTtHPFcubGVuZ3RoO0crKyl7Tj1uO0g9V1tHXTtyPWI7QT1ILnN0YXJ0VGltZU1zK0guZHVyYXRpb25Nczt5PXIuc3RhcnRUaW1lTXMrci5kdXJhdGlvbk1zO3k+PUErTi5OP049ITA6eStOLk48SC5zdGFydFRpbWVNcz9OPSExOkh1KE4sSC5mb3JtYXRJZCxyLmZvcm1hdElkKT8oci5kdXJhdGlvbk1zPUEtci5zdGFydFRpbWVNcyxyLmk5PUguaTksTj0hMCk6KEguc3RhcnRUaW1lTXM9eSxILkFDPXIuaTkrMSxOPSExKTtpZighTilicmVhaztEKyt9RCYmVy5zcGxpY2UodisxLEQpO3JldHVybiB2fTsKWXM9ZnVuY3Rpb24obixXKXtuPWcuVzQobix7c3RhcnRUaW1lTXM6V30sKEQsYik9PkQuc3RhcnRUaW1lTXMtYi5zdGFydFRpbWVNcyk7CnJldHVybiBuPj0wP246LW4tMn07CkpCPWZ1bmN0aW9uKG4sVyxEKXtpZihuLmxvZ2dlcil7dmFyIGI9W107Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPVdbdl07ay5Faj8uc3RhcnRUaWNrcyYmYi5wdXNoKGBpLiR7ay5mb3JtYXRJZD8uaXRhZ31fc3QuJHtrLnN0YXJ0VGltZU1zfV9wc3N0LiR7ay5Faj8uc3RhcnRUaWNrc31fcHNkLiR7ay5Faj8ubDh9YCk7Yi5wdXNoKGBpLiR7ay5mb3JtYXRJZD8uaXRhZ31fc3QuJHtrLnN0YXJ0VGltZU1zfV9lLiR7ay5zdGFydFRpbWVNcytrLmR1cmF0aW9uTXN9X2QuJHtrLmR1cmF0aW9uTXN9X3NuLiR7ay5BQ31fZW4uJHtrLmk5fWApfW4ubG9nZ2VyKHtwOmAke0R9YCxicjpiLmpvaW4oIjsiKX0pfX07Ckk2PWZ1bmN0aW9uKG4sVyxEPSExKXtpZihuLlFFKXt2YXIgYj1uLlFFLlpGKCk7aWYoYi5sZW5ndGghPT0wKXtpZihuLlcmJlcpe3ZhciB2PW4uVyxrPXYuaW5mby5YOyFCUihiLGspJiZ2LmluZm8uSz4wJiYoMCxnLlIpKCktbi5EPDVFMyYmKG4ubG9nZ2VyJiZuLmxvZ2dlcih7ZGVuZDp2LmluZm8uZ2EoKX0pLGI9akcoYixrLGsrLjAxKSl9dj1bXTtmb3IodmFyIGg9az0wO2s8Yi5sZW5ndGgmJmg8bi5lVy5sZW5ndGg7KXt2YXIgeD1iLnN0YXJ0KGspO2xldCBOPWIuZW5kKGspO3ZhciBMPW4uZVdbaF0uc3RhcnRUaW1lTXMvMUUzO2xldCBIPShuLmVXW2hdLnN0YXJ0VGltZU1zK24uZVdbaF0uZHVyYXRpb25NcykvMUUzO2lmKEw8PU4mJkg+PXgpe2xldCBBPXsuLi5uLmVXW2hdfTt2YXIgZT1uLkt1LkouZ2V0KE1rKG4uZVdbaF0uZm9ybWF0SWQpKSxHPU1hdGgubWF4KEwseCk7eD1lLmluZGV4LlIzKEcrbi5OLzFFMyk7TD1lLmluZGV4LmdldFN0YXJ0VGltZSh4KTt2YXIgcj14KworKE1hdGguYWJzKEwtRyk+bi5OLzFFMyk7Rz1yK24uWDtyPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHIpKjFFMztoIT09bi5KfHxXPyhBLkFDPUcsQS5zdGFydFRpbWVNcz1yKToobi5sb2dnZXImJm4ubG9nZ2VyKHtwRXZpY3Q6IjEiLG9nOkEuc3RhcnRUaW1lTXMsYWRqOkwqMUUzfSksQS5BQz14K24uWCxBLnN0YXJ0VGltZU1zPUwqMUUzKTt4PW4uVz8uaW5mby5XfHwxMTshRCYmaD09PW4uSiYmTjxIJiZILU48PXgqMS4wMSYmIShuLnBvbGljeS5TdyYmbi5RRSYmbi5RRS55dSgpKSYmKE49SCk7eD1NYXRoLm1pbihILE4pO0w9ZS5pbmRleC5SMyh4LW4uTi8xRTMpO0c9ZS5pbmRleC5qRShMKTtMLT0rKE1hdGguYWJzKEcteCk+bi5OLzFFMyk7eD1MK24uWDtlPWUuaW5kZXguakUoTCkqMUUzO0EuaTk9eDtBLmR1cmF0aW9uTXM9ZS1BLnN0YXJ0VGltZU1zO0EuQUM8PUEuaTkmJnYucHVzaChBKX1IPE4/aCs9MTprKz0xfW4uZVc9dn19fTsKSmFpPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9Wy4uLm4uUDNdO24uZVcuZm9yRWFjaChrPT57Vy5wdXNoKHsuLi5rfSl9KTsKdmFyIGI9bi5UQy5aUCgpLHY9bi5KO2ZvcihsZXQgayBvZiBiKXY9ZnYobixXLEQsayx2KTtXLmZvckVhY2goaz0+e2suc3RhcnRUaW1lTXMmJihrLnN0YXJ0VGltZU1zKz1uLnRpbWVzdGFtcE9mZnNldCoxRTMpfSk7CnJldHVybntlVzpXLFAzOkR9fTsKSHU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBXLml0YWchPT1ELml0YWd8fFcueHRhZ3MhPT1ELnh0YWdzPyExOm4uS3Uueld8fFcubG10PT09RC5sbXR9OwpaYj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKCFXLlBKLk4oKSl7aWYoISh2PUQ9PT0wfHwhIVcuSi5sZW5ndGgmJlcuSlswXWluc3RhbmNlb2YgU24pKWE6e2lmKFcuSi5sZW5ndGgmJih2PVcuSlswXSx2IGluc3RhbmNlb2YgQUImJnYuSk8mJnYuYUkpKXt2PSEwO2JyZWFrIGF9dj0hMX12fHxuLnBvbGljeS5OfHxtaShXKTtyZXR1cm4gRH12YXIgaz1LdihXLEQpO2lmKCFpc05hTihrKSlyZXR1cm4gaztpZihuLmxvYWRlci5DNyhEKjFFMykpcmV0dXJuIEQ7di5BTT9uLnBvbGljeS5WSCYmKG49T2Iobi5sb2FkZXIsVyksVy5zTShEK24sITApKTooVy56aSgpLG4ubG9hZGVyLlgkKCExLGBzdGFfJHsrVy5QSi5pbmZvLmVTKCl9YCkpO3JldHVybiBiJiYobj1GWihiLlpGKCksRCksIWlzTmFOKG4pKT8oUHUoVyxuK0lpYix2KSxEKTpQdShXLEQsdil9OwpVYj1mdW5jdGlvbihuLFcsRCl7aWYoIW4ucG9saWN5Lmope249Vy5QSi5pbmRleDt2YXIgYj1XLk4uaiQ7bi5NSShiKXx8RCYmRC5qJD09PWI/KFcuUEQ9IW4uTUkoYiksVy5EPSFuLk1JKGIpKTooVy5QRD0hMCxXLkQ9ITApfX07CkViPWZ1bmN0aW9uKG4pe3ZhciBXPU1hdGgubWF4KG4udmlkZW9UcmFjay5TRSgpLG4uYXVkaW9UcmFjay5TRSgpKTt5ayhuLnZpZGVvVHJhY2spO3lrKG4uYXVkaW9UcmFjayk7bi5wb2xpY3kuanx8ajQobi5LdSk7bi5LdS5pc01hbmlmZXN0bGVzcyYmIW4ucG9saWN5LmomJihuLk49ITAsbi5KPTApO3ZhciBEPW4ubG9hZGVyO2lmKCFELnBvbGljeS5sbnx8RC5wb2xpY3kuR0MpRC5jdXJyZW50VGltZT1XO24uc2Vla2luZz0hMDtuLlc9bmV3IFk2O3JldHVybiBuLld9OwpvNj1mdW5jdGlvbihuKXt2YXIgVz1uLnZpZGVvVHJhY2suWCE9PS0xLEQ9bi5hdWRpb1RyYWNrLlghPT0tMTtpZighV3x8IUQpaWYoVz0hVyYmaVkobi52aWRlb1RyYWNrKSxEPSFEJiZpWShuLmF1ZGlvVHJhY2spLFd8fEQpaWYoRD1XP24udmlkZW9UcmFjazpuLmF1ZGlvVHJhY2ssVz1XP24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2ssRC5YPWlZKEQpLmluZm8uaiQsbi5wb2xpY3kuaiYmKFcuWD1pWShXKT8uaW5mby5UQygpfHxXLlgpLFcuWCE9PS0xKXtsZXQgYj1NYXRoLm1heChXLlBKLmluZGV4LmdldFN0YXJ0VGltZShXLlgpLEQuUEouaW5kZXguZ2V0U3RhcnRUaW1lKEQuWCkpO3VBKG4uS3UpJiZNYXRoLmFicyhiLXVBKG4uS3UpKT40MzJFMyYmS0t0KG4uS3UpO24uSiYmKGI9bi5KLG4uSj0wKTtnLm1LKCgpPT57bi5wb2xpY3kuanx8dVkobixiLDEwMil9KTsKbi5sb2FkZXIuVSgiaW5pdE1hbmlmZXN0bGVzc1N5bmMiLHtzdDpiLG9zdDpiK24ubG9hZGVyLlNXKCksYTpuLmF1ZGlvVHJhY2suWCx2Om4udmlkZW9UcmFjay5YfSk7bi5XJiYobi5XLnJlc29sdmUoYisuMSksbi5XPW51bGwpO24ucG9saWN5LmomJnVZKG4sYiwxMDIpfX07ClNJWj1mdW5jdGlvbihuLFcsRCl7aWYoIW4uaXNTZWVraW5nKCkpcmV0dXJuLTE7RD0oRD9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrKS5QSi5pbmRleDt2YXIgYj1ELlIzKG4udGFyZ2V0VGltZSk7cmV0dXJuKEQuTUkobi5LdS5JdCl8fFcuaiQ9PT1uLkt1Lkl0KSYmYjxuLkt1Lkl0P24uS3UuTGYoKTotMX07CnVZPWZ1bmN0aW9uKG4sVyxEKXtuLk4mJm4udmlkZW9UcmFjay5YIT09LTEmJm4uYXVkaW9UcmFjay5YIT09LTEmJihuLk49ITEsbi50YXJnZXRUaW1lPVcsZFYobi5sb2FkZXIsVysuMSx7QTk6ITAscWQ6ImNodW5rU2VsZWN0b3JTeW5jaHJvbml6ZSIscWE6ITAsc2Vla1NvdXJjZTpEfSkpfTsKQWEyPWZ1bmN0aW9uKG4sVyxELGIpe2lmKG4ucG9saWN5LmopIWJ8fCFuLk4mJm4ucG9saWN5LkJWfHxnLm1LKCgpPT57bzYobil9KTsKZWxzZXtpZihuLmlzU2Vla2luZygpJiZuLnRhcmdldFRpbWUpe2xldCBrPVNJWihuLFcsRCk7aWYoayE9PS0xKXtuLnZpZGVvVHJhY2suUEQ9ITE7bi5hdWRpb1RyYWNrLlBEPSExO24uTj0hMDtuLko9MDtnLm1LKCgpPT57bi5sb2FkZXIuVSgic2Vla3JlYXNvbiIse3JlYXNvbjoiYmVoaW5kTWluU3EiLHRndDprfSk7dVkobixrKX0pOwpyZXR1cm59fUQ/bi52aWRlb1RyYWNrLkQ9ITE6bi5hdWRpb1RyYWNrLkQ9ITE7dmFyIHY9IW4uTjtLdihuLnZpZGVvVHJhY2ssbi50YXJnZXRUaW1lKT49MCYmS3Yobi5hdWRpb1RyYWNrLG4udGFyZ2V0VGltZSk+PTAmJnY/KG4uUEQoKSYmbi5sb2FkZXIuVSgiaXRlcmF0aXZlU2Vla2luZyIse3N0YXR1czoiZG9uZSIsY291bnQ6bi5zZWVrQ291bnR9KSxuLnZpZGVvVHJhY2suUEQ9ITEsbi5hdWRpb1RyYWNrLlBEPSExKTpiJiZnLm1LKCgpPT57aWYobi5OfHwhbi5wb2xpY3kuQlYpbzYobik7ZWxzZXt2YXIgaz1XLnN0YXJ0VGltZSxoPVcuZHVyYXRpb247aWYoIW4ucG9saWN5Lmope3ZhciB4PW4udmlkZW9UcmFjay5YIT09LTEmJm4uYXVkaW9UcmFjay5YIT09LTEsTD0hbi52aWRlb1RyYWNrLkQmJiFuLmF1ZGlvVHJhY2suRDsoRD9uLnZpZGVvVHJhY2suUEQ6bi5hdWRpb1RyYWNrLlBEKSYmeCYmTCYmKG4udGFyZ2V0VGltZT49ayYmbi50YXJnZXRUaW1lPGsraCsuMT8oKEQ/bi52aWRlb1RyYWNrOgpuLmF1ZGlvVHJhY2spLlBEPSExLG4uUEQoKXx8KG4ubG9hZGVyLlUoIml0ZXJhdGl2ZVNlZWtpbmciLHtzdGF0dXM6ImRvbmUiLHRhcmdldDprLG9yaWdpbmFsVGltZTprK24ubG9hZGVyLlNXKCksY291bnQ6bi5zZWVrQ291bnR9KSxuLnNlZWtDb3VudD0wKSk6bi5zZWVrQ291bnQ8OD8obi5zZWVrQ291bnQrKyxuLmxvYWRlci5VKCJpdGVyYXRpdmVTZWVraW5nIix7c3RhdHVzOiJpbnByb2dyZXNzIixjb3VudDpuLnNlZWtDb3VudCx0YXJnZXQ6bi50YXJnZXRUaW1lLGFjdHVhbDprLGR1cmF0aW9uOmgsaXNWaWRlbzpEfSksbi5zZWVrKG4udGFyZ2V0VGltZSx7fSkpOihuLmxvYWRlci5VKCJpdGVyYXRpdmVTZWVraW5nIix7c3RhdHVzOiJpbmNvbXBsZXRlIixjb3VudDpuLnNlZWtDb3VudCx0YXJnZXQ6bi50YXJnZXRUaW1lLGFjdHVhbDprfSksbi5zZWVrQ291bnQ9MCxuLnZpZGVvVHJhY2suUEQ9ITEsbi5hdWRpb1RyYWNrLlBEPSExLGRWKG4ubG9hZGVyLGsrLjEse0E5OiEwLHFkOiJjaHVua1NlbGVjdG9yU3luY2hyb25pemVNZWRpYSIsCnFhOiEwfSkpKX19fSl9fTsKVEQ9ZnVuY3Rpb24obixXLEQpe3pEKG4uaWosVyk7bi5EdCYmKG4uRHQuYWRkKE1hdGguY2VpbChXKS1NYXRoLmNlaWwobi5LKSksbi5EdC5hZGQoTWF0aC5tYXgoMCxNYXRoLmNlaWwoRC8xMDI0KS1NYXRoLmNlaWwobi5YLzEwMjQpKSkpO3ZhciBiPVctbi5LLHY9RC1uLlg7bi5VNT12O24ualc9TWF0aC5tYXgobi5qVyx2LyhiKy4wMSkqMUUzKTtuLks9VztuLlg9RDtuLkhKJiZEPm4uSEomJmxZKG4pfTsKbFk9ZnVuY3Rpb24obil7bi5udT1NYXRoLm1heChuLm51LG4uWC1uLlJ0KTtuLlZRPU1hdGgubWF4KG4uVlEsbi5LLW4uWmgpO24uSEo9MH07Cm13cj1mdW5jdGlvbihuLFcpe24udXJsPVc7d2luZG93LnBlcmZvcm1hbmNlJiYhcGVyZm9ybWFuY2Uub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwmJihwZXJmb3JtYW5jZS5vbnJlc291cmNldGltaW5nYnVmZmVyZnVsbD0oKT0+e3BlcmZvcm1hbmNlLmNsZWFyUmVzb3VyY2VUaW1pbmdzKCl9KX07CmpuPWZ1bmN0aW9uKG4pe24uaXNBY3RpdmUmJihuLmlzQWN0aXZlPSExKX07CkN2PWZ1bmN0aW9uKG4pe24uZSQ9bi5OK24uc25hcHNob3QuZGVsYXkqMUUzO24udlg9ITF9OwpGcj1mdW5jdGlvbihuLFcsRCl7aWYoIW4uZGlzYWJsZVJlY29yZGluZyl7Vz1NYXRoLm1heChXLC4wMSk7dmFyIGI9bi5xWT9NYXRoLm1heChXLEQvbi5xWSk6Vyx2PW4uaWouSi5XO3YmJihiPVcsbi5xWSYmKGI9TWF0aC5tYXgoVyxEL24ucVkqdikpKTtCdShuLmlqLFcsRCxiKX19Owp3Vj1mdW5jdGlvbihuKXt2YXIgVz1uLkZGfHxuLkdDO3JldHVybiBXP24uc25hcHNob3QuZGVsYXkrTWF0aC5taW4obi5POCwobi5jSi1uLnR3KS8xRTMpK1c6bi5zNX07Ck1XPWZ1bmN0aW9uKG4pe3JldHVybihuLlktbi5OKS8xRTN9OwpRaz1mdW5jdGlvbihuLFcpe2lmKG4uaG4mJm4uaiQhPT12b2lkIDAmJm4uWkEhPT12b2lkIDApe3ZhciBEPU1hdGgsYj1ELm1pbix2PW4uVjt2YXIgaz1uLmhuO3ZhciBoPW4uTjtpZihSNihrLG4uaiQpKWs9VztlbHNle3ZhciB4PTA7ay50SSYmKHg9LjIpO2s9aCsoay5POCt4KSoxRTN9bi5WPWIuY2FsbChELHYsayk7RD1NYXRoO2I9RC5taW47dj1uLk87az1uLmhuO2g9bi5OO3g9S2EyKGssbi5qJCxuLlpBKTt4IT09MiYmKFc9eD9XOmgray5POCoxRTMsay50SSYmKFcrPWsuTzgqMUUzKSk7bi5PPWIuY2FsbChELHYsVyk7bi5WPD1uLk4/Q3Yobik6KG4uZSQ9bi5WLG4udlg9ITApfX07ClZrPWZ1bmN0aW9uKG4sVyl7aWYoVysxPD1uLnRvdGFsTGVuZ3RoKXt2YXIgRD1yZChuLFcpO0Q9RDwxMjg/MTpEPDE5Mj8yOkQ8MjI0PzM6RDwyNDA/NDo1fWVsc2UgRD0wO2lmKEQ8MXx8IShXK0Q8PW4udG90YWxMZW5ndGgpKXJldHVyblstMSxXXTtpZihEPT09MSluPXJkKG4sVysrKTtlbHNlIGlmKEQ9PT0yKUQ9cmQobixXKyspLG49cmQobixXKyspLG49KEQmNjMpKzY0Km47ZWxzZSBpZihEPT09Myl7RD1yZChuLFcrKyk7dmFyIGI9cmQobixXKyspO249cmQobixXKyspO249KEQmMzEpKzMyKihiKzI1NipuKX1lbHNlIGlmKEQ9PT00KXtEPXJkKG4sVysrKTtiPXJkKG4sVysrKTtsZXQgdj1yZChuLFcrKyk7bj1yZChuLFcrKyk7bj0oRCYxNSkrMTYqKGIrMjU2Kih2KzI1NipuKSl9ZWxzZSBEPVcrMSxuLmZvY3VzKEQpLFhhKG4sRCw0KT9uPXFEKG4pLmdldFVpbnQzMihELW4uVywhMCk6KGI9cmQobixEKzIpKzI1NipyZChuLEQrMyksbj1yZChuLEQpKzI1NioocmQobixEKzEpKwoyNTYqYikpLFcrPTU7cmV0dXJuW24sV119OwpjdT1mdW5jdGlvbihuKXtyZXR1cm4gZy5keihuLmluZm8uQXcsVz0+Vy50eXBlPT09Myl9OwpDbmk9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gVz8obmV3IHVvKG4uSikpLmVuY3J5cHQoVyxuLk4pOld9OwpGSTE9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gVz9hd2FpdCAobmV3IHVvKG4uSikpLmRlY3J5cHQoVyxuLk4pOld9OwphNj1mdW5jdGlvbihuKXtuLlcucmVhZCgpLnRoZW4obi5ZLG4ub25FcnJvcikudGhlbih2b2lkIDAsZy5xZyl9OwpXcD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKGdaKDYsMTE3MCxuLkFPKSlyZXR1cm4gbmV3IE9fcihuLEQpO249bi5XRCgpO3JldHVybiBiP3lXKCk/bmV3IG4zKG4sVyxELHYpOm5ldyBQSGoobixXLEQsdik6bmV3IFpfQyhuLEQsdil9OwpEeD1mdW5jdGlvbihuLFcsRCl7bi5OJiYoZTUobi5OLFcpLFc9bi5OLG4uTj1udWxsKTt2YXIgYj0wLHY9MDtmb3IobGV0IEwgb2Ygbi5Bdyl7aWYoTC5yYW5nZSYmYitMLko8PW4uSil7Yis9TC5KO2NvbnRpbnVlfWlmKGhKKEwpJiYhRCYmbi5KK1cudG90YWxMZW5ndGgtdjxiK0wuSil7KHtZOTpuLk59PVcuc3BsaXQodikpO2JyZWFrfWE6e3ZhciBrPW47dmFyIGg9TCx4PW4uSi1iO2xldCBlPVcudG90YWxMZW5ndGgtdjtoLnJhbmdlJiYoZT1NYXRoLm1pbihoLkoteCxlKSk7aD1HUChoLGguTit4LGUsaC5yYW5nZT9oLk4reCtlPT09aC5yYW5nZS5sZW5ndGg6ISFEKTt4PWdkKFcsdixlKTtoPW5ldyBiOChoLHgpO2lmKGsualMubGVuZ3RoJiYoeD1rLmpTW2sualMubGVuZ3RoLTFdLmooaCkpKXtrLmpTW2sualMubGVuZ3RoLTFdPXg7az1lO2JyZWFrIGF9ay5qUy5wdXNoKGgpO2s9ZX1uLkorPWs7dis9aztiKz1MLko7aWYodj09PVcudG90YWxMZW5ndGgpYnJlYWt9fTsKYnU9ZnVuY3Rpb24obil7cmV0dXJuIFVZKG4ubm4sUjAoNjQsMzUzNixuLlNPLkFPKSl9Owp2cD1mdW5jdGlvbihuKXtuLlhiLk89KDAsZy5SKSgpO249YnUobik7bi5qPSgwLGcuUikoKTtuLnN0YXJ0ZWQrPTF9OwprWj1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe24udGltaW5nLkhEKCgwLGcuUikoKSxXLEQpO1c9bi5YYjtXLko9MDtXLlY9MDtXLkQ9MDt6aihidShuKSx2KTtiJiYoYj1idShuKSxiLlcrPTEpO24uVWo/Lk8obi5TTy5BTyl9OwpoVT1mdW5jdGlvbihuLFc9ITEpe2lmKG4ubGFzdEVycm9yPT09InVtcC5zcHNyZWplY3RmYWlsdXJlIiluLnRpbWluZy5iZHx8d0Eobi5YYiwhMSxuLlNPLG4ucG9saWN5LG4ubm4pO2Vsc2V7aWYobi5sYXN0RXJyb3I9PT0ibmV0LnRpbWVvdXQiKW4udGltaW5nLnlFKCgwLGcuUikoKSk7ZWxzZXt2YXIgRD1uLnRpbWluZztURChELCgwLGcuUikoKSxELlgpfW4ubGFzdEVycm9yPT09Im5ldC5ub2NvbnRlbnQiPysrbi5YYi5EOigoRD1uLmxhc3RFcnJvcj09PSJuZXQudGltZW91dCJ8fG4ubGFzdEVycm9yPT09Im5ldC5jb25uZWN0Inx8bi5sYXN0RXJyb3I9PT0ibmV0LmNsb3NlZCIpJiYhZ1ooNiwxMTcwLG4uU08uQU8pP29FaShidShuKSxXKTp5ZihidShuKSxXKSxuLnRpbWluZy5iZHx8d0Eobi5YYixELG4uU08sbi5wb2xpY3ksbi5ubikpfW4uWWEudlYoNSl9Owp4Wj1mdW5jdGlvbihuLFcsRCxiPSExLHY9ITEsaz0hMSl7cmV0dXJuIFc+PTQwMHx8az8obi5sYXN0RXJyb3I9az8icHJvYmUubmV0LmJhZHN0YXR1cyI6Im5ldC5iYWRzdGF0dXMiLCEwKTp2PyhuLmxhc3RFcnJvcj0idW1wLnNwc3JlamVjdGZhaWx1cmUiLCEwKTpEfHxiPyExOihuLmxhc3RFcnJvcj1XPT09MjA0PyJuZXQubm9jb250ZW50IjoibmV0LmNvbm5lY3QiLCEwKX07CkwzPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kuYiQpcmV0dXJuITE7dmFyIEQ9Vy5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIiksYj1XLmlpKCk7bj0hYnx8Yjw9bi5wb2xpY3kub2M7cmV0dXJuKCFXLkdwKCl8fCFEfHxELmluZGV4T2YoInRleHQvcGxhaW4iKSE9PS0xKSYmbn07CmVWPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9IiI7Vz1XLnNOKCk7Vy50b3RhbExlbmd0aDw9bi5wb2xpY3kub2MmJihuPXRSKFcpLG49cFIobiksRD1nWChuKT9uOiIiKTtyZXR1cm4gRH07CmdDPWZ1bmN0aW9uKG4pe3ZhciBXPW4udGltaW5nLkQoKTtXLnNob3N0PVIwKDk2LDM1Njgsbi5TTy5BTyk7bi5wb2xpY3kuQ3UmJm4ucG9saWN5LnZYJiYoVy5jc3JjPTEpO3JldHVybiBXfTsKVXdiPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4/Lm1heFdpZHRoPlc/Lm1heFdpZHRofHxuPy5tYXhIZWlnaHQ+Vz8ubWF4SGVpZ2h0fTsKeWFqPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcua2V5cygpKXtsZXQgYj1XLmdldChEKTtpZihiLmxlbmd0aD09PTApY29udGludWU7Zy5iZihiLChoLHgpPT54Lm1heEZyYW1lcmF0ZS1oLm1heEZyYW1lcmF0ZSk7CmxldCB2PVtiWzBdXSxrPTA7Zm9yKGxldCBoPTE7aDxiLmxlbmd0aDtoKyspVXdiKGJbaF0sdltrXSkmJih2LnB1c2goYltoXSksaysrKTtuPW4uY29uY2F0KHYpfXJldHVybiBufTsKaV9iPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIFcpVz1FdGpbYl18fDAsbi5OJiZXPm4uTnx8RC5wdXNoKGIpO3JldHVybiBEfTsKWHU9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXVkWltuXXx8W107RC5TKCJodG1sNV9zaG9ydHNfb25lc2llX21pc21hdGNoZWRfZml4IikmJihiPW90dFtuXXx8W10pO1cucHVzaCguLi5iKTtELlMoImh0bWw1X2Vhcmx5X21lZGlhX2Zvcl9kcm0iKSYmVy5wdXNoKC4uLihkd3Rbbl18fFtdKSl9Owp6eFM9ZnVuY3Rpb24obixXKXt2YXIgRD1WeihuKSxiPW4uRygpLHY9Yi5XO2I9Yi5TKCJodG1sNV9zaG9ydHNfb25lc2llX21pc21hdGNoZWRfZml4Iik7dmFyIGs9bi5OUCgpO2lmKGIpe2lmKCF2Lk4pe2lmKGsmJnFxKXJldHVybiBxcTtpZihHSSlyZXR1cm4gR0l9fWVsc2UgaWYoR0kmJiF2Lk4pcmV0dXJuIEdJO3ZhciBoPVtdLHg9W10sTD17fSxlPXRVLmNvbmNhdCgkWik7YiYmKGU9dFUuY29uY2F0KHJDKSk7bi5TKCJodG1sNV9lYXJseV9tZWRpYV9mb3JfZHJtIikmJihlPWUuY29uY2F0KHNHKSxuLlMoImFsbG93X3ZwOV8xMDgwcF9tcV9lbmMiKSYmZS5wdXNoKE5xKSk7dmFyIEc9Wy4uLnAzXTtuLlMoImh0bWw1X2lhbWZfYXVkaW9fb25lc2llX2ZtdCIpJiZHLnB1c2goWyI3NzMiXSk7Zm9yKHZhciByIG9mIGUpe2U9ITE7Zm9yKGxldCBIIG9mIHIpe3ZhciBOPVNNKEgsayYmYik7aWYoIU58fCFOLnZpZGVvKWNvbnRpbnVlO2lmKE4uTVcoKSYmIUQuZSQmJk4udmlkZW8ucXVhbGl0eU9yZGluYWw+CkQublMpY29udGludWU7bGV0IEE9Zy5kTShuLkcoKS5leHBlcmltZW50cywiaHRtbDVfZHJtX2J5dGVyYXRlX3NvZnRfY2FwIik7aWYoQT4wJiZVTihOKSYmTi5Ocz5BKWNvbnRpbnVlO2lmKGUpe2gucHVzaChIKTtYdShILGgsbik7Y29udGludWV9Tj1zRChELE4sdik7Tj09PSEwPyhlPSEwLGgucHVzaChIKSxYdShILGgsbikpOkxbSF09Tn19Zm9yKGxldCBIIG9mIEcpZm9yKGxldCBBIG9mIEgpe3I9QXUoQSk7aWYoIXJ8fCFyLmF1ZGlvfHwhbi5TKCJodG1sNV9vbmVzaWVfNTFfYXVkaW8iKSYmci5WKCkpY29udGludWU7cj1zRChELHIsdik7aWYocj09PSEwKXt4LnB1c2goQSk7WHUoQSx4LG4pO2JyZWFrfWVsc2UgTFtBXT1yfWlmKCFuLlMoImh0bWw1X2VuYWJsZV9hdWRpb19xdWFsaXR5X3NldHRpbmciKSl7bj1bIjE0MSIsIjc3NCJdO2ZvcihsZXQgSCBvZiBuKXguaW5jbHVkZXMoSCkmJihnLkZJKHgsSCksTFtIXT0iYmxraHFhIil9RC5XJiZXKCJvcmZtdHMiLEwpO2lmKGIpcmV0dXJuIHYuTiYmCih2Lk49ITEscXE9R0k9dm9pZCAwKSxrP3FxPXt2aWRlbzpoLGF1ZGlvOnh9OkdJPXt2aWRlbzpoLGF1ZGlvOnh9O0dJPXt2aWRlbzpoLGF1ZGlvOnh9O3YuTj0hMTtyZXR1cm4gR0l9OwpqRk09ZnVuY3Rpb24obil7dmFyIFc9e30sRD1uLkwsYj1uLnlRLHY9bi5paixrPUQuZ2V0VmlkZW9EYXRhKCksaD1wNygwKTt2YXIgeD1ELmdldFZpc2liaWxpdHlTdGF0ZSgpO2IuUygiaHRtbDVfZW5hYmxlX2F1ZGlvX3F1YWxpdHlfc2V0dGluZyIpJiYoVy5pQj1iLmlCKTtoJiYoVy5pSD1oLFcubGFzdE1hbnVhbERpcmVjdGlvbj1Sc3goKSxoPVVQKCl8fDAsaD4wJiYoaD0oYi5TKCJodG1sNV91c2VfZGF0ZV9ub3dfZm9yX2xvY2FsX3N0b3JhZ2UiKT9EYXRlLm5vdygpOigwLGcuUikoKSktaCxiLlMoImh0bWw1X3VzZV9kYXRlX25vd19mb3JfbG9jYWxfc3RvcmFnZSIpP2g+MCYmKFcudGltZVNpbmNlTGFzdE1hbnVhbEZvcm1hdFNlbGVjdGlvbk1zPWgpOlcudGltZVNpbmNlTGFzdE1hbnVhbEZvcm1hdFNlbGVjdGlvbk1zPWgpKTtpZih2Lk98fGIuUygiaHRtbDVfc2Ficl91Z2Nfdm9kX3dlYl9lbWJlZGRlZF9jbGllbnRfZGVmYXVsdF9iYW5kd2lkdGhfb25faXBob25lIikmJnc4KWg9CmIuUygiaHRtbDVfZGlzYWJsZV9iYW5kd2lkdGhfY29mYWN0b3JzX2Zvcl9zYWJyX2xpdmUiKT8hIW4ub1o/LmZSOiExLFcuSSQ9R0QodiwhaCk7dmFyIEw9TkcubWVkaXVtLGU9TWF0aC5mbG9vcihMKjE2LzkpLEc9ay5OUCgpfHwoay5OJiZrLlcmJmsuVy52aWRlb0luZm9zLmxlbmd0aCE9PTA/ay5XLnZpZGVvSW5mb3NbMF0uaXNWZXJ0aWNhbCgpOiExKTtoPUc/TDplO2U9Rz9lOkw7Rz1ELlNpKCk7TD1HLndpZHRoO0c9Ry5oZWlnaHQ7Vy5zQT1NYXRoLm1heChMLGgpO1cuWUE9TWF0aC5tYXgoRyxlKTtiLlMoImh0bWw1X2VuYWJsZV9jbGllbnRfdmlld3BvcnRfc2l6ZV9sb2dnaW5nIikmJmIuV1goKSYmKGg9RC5NaCgpLEQuVSgiY3Z3Iix7dzpMLGg6Ryxjdnc6Vy5zQSxjdmg6Vy5ZQSxjdnU6aC5OfSkpO1cudmlzaWJpbGl0eT14O1cuWkk9Zy52SSgpO1cuZnE9RC5sNSgpKjFFMzt4PW4uTC52JCgpO1cuTk89e2RlZmF1bHRQb2xpY3k6eD8uRHI/Lk58fDAsc21vb3RoOng/LnpOPy5OfHwKMCx2aXNpYmlsaXR5Ong/LmN3Py5OfHwwLE9iOng/LkFFPy5OfHwwLHBlcmZvcm1hbmNlOng/LmlQPy5OfHwwLHNwZWVkOng/LlhOPy5OfHwwfTtXLlROPXg/LlFZPy5OfHwwO2lmKG4uaHF8fG4uQ3gmJiFuLmdEKWg9Yi5adCgpLk4uUVEobGlaKT8/MCxoPjAmJiFXLlROJiYoTD0oeD8uRHJ8fFlaKS5jb21wb3NlKG5ldyBiMygwLGgsITEsInAiKSksVy5OTy5kZWZhdWx0UG9saWN5PUwuTixELlUoImxzbCIse3FjOmh9KSksay5saXZlUHJlbG9hZCYmay5TKCJodG1sNV9hbGxvd19tdWx0aXZpZXdfdGlsZV9wcmVsb2FkIikmJiFrLkcoKS5adCgpLk4uUVEoSHApJiYoeD0oeD8uRHJ8fFlaKS5jb21wb3NlKG5ldyBiMygwLDI0MCwhMSwicCIpKSxXLk5PLmRlZmF1bHRQb2xpY3k9eC5OKTt4PW4uaHF8fGsuWjk/W3t0cmFja1R5cGU6MSxpc0hkcjohMX0se3RyYWNrVHlwZToyLGlzSGRyOiExfSx7dHJhY2tUeXBlOjIsaXNIZHI6ITB9LHt0cmFja1R5cGU6Myxpc0hkcjohMX0se3RyYWNrVHlwZTozLAppc0hkcjohMH0se3RyYWNrVHlwZTo0LGlzSGRyOiExfSx7dHJhY2tUeXBlOjQsaXNIZHI6ITB9LHt0cmFja1R5cGU6NSxpc0hkcjohMX0se3RyYWNrVHlwZTo1LGlzSGRyOiEwfV06W3t0cmFja1R5cGU6MSxpc0hkcjohMX0se3RyYWNrVHlwZToyLGlzSGRyOiExfSx7dHJhY2tUeXBlOjIsaXNIZHI6ITB9XTtXLmtjPW4uYXV0aG9yaXplZEZvcm1hdHMmJm4uYXV0aG9yaXplZEZvcm1hdHMubGVuZ3RoPjA/e2F1dGhvcml6ZWRGb3JtYXRzOm4uYXV0aG9yaXplZEZvcm1hdHN9OnthdXRob3JpemVkRm9ybWF0czp4fTtuLnNhYnJMaWNlbnNlQ29uc3RyYWludCYmKFcua2Muc2FickxpY2Vuc2VDb25zdHJhaW50PW4uc2FickxpY2Vuc2VDb25zdHJhaW50KTtpZihiLlMoImh0bWw1X29uZXNpZV9tZWRpYV9jYXBhYmlsaXRpZXMiKXx8TEEoaykpVy5ZZj0zO2lmKGIuUygiaHRtbDVfb25lc2llX2F1ZGlvX29ubHlfcGxheWJhY2siKSYmUlEoayl8fG4ub1o/Lk4mJmxvKGIpPT09IlRWSFRNTDVfQVVESU8iKVcuWWY9CjE7bi5vWj8ueUUmJm4ub0cmJihXLllmPVcuWWY9PT12b2lkIDA/NzpXLllmfDQpO3g9ay5lJD9rLmUkOlZ6KGspO2lmKGIuUygiaHRtbDVfb25lc2llX21lZGlhX2NhcGFiaWxpdGllcyIpKXtoPWIuVztMPVtdO2U9W107Rz1iLlMoImh0bWw1X3Nob3J0c19vbmVzaWVfbWlzbWF0Y2hlZF9maXgiKTt2YXIgcj1rLk5QKCksTj10VS5jb25jYXQoJFopO0cmJihOPXRVLmNvbmNhdChyQykpO2IuUygiaHRtbDVfZWFybHlfbWVkaWFfZm9yX2RybSIpJiYoTj1OLmNvbmNhdChzRyksYi5TKCJhbGxvd192cDlfMTA4MHBfbXFfZW5jIikmJk4ucHVzaChOcSkpO3ZhciBIPVsuLi5wM107Yi5TKCJodG1sNV9pYW1mX2F1ZGlvX29uZXNpZV9mbXQiKSYmSC5wdXNoKFsiNzczIl0pO2Zvcih2YXIgQSBvZiBOKWZvcih2YXIgeSBvZiBBKXtOPVNNKHksciYmRyk7aWYoIU58fCFOLnZpZGVvKWNvbnRpbnVlO2xldCBRPWcuZE0oYi5leHBlcmltZW50cywiaHRtbDVfZHJtX2J5dGVyYXRlX3NvZnRfY2FwIik7CmlmKCEoUT4wJiZVTihOKSYmTi5Ocz5RKSYmc0QoeCxOLGgpPT09ITApe0wucHVzaCh7dmlkZW9Db2RlYzpmM1tZZ1t5XV0sbWF4V2lkdGg6Ti52aWRlby53aWR0aCxtYXhIZWlnaHQ6Ti52aWRlby5oZWlnaHQsbWF4RnJhbWVyYXRlOk4udmlkZW8uZnBzfSk7YnJlYWt9fWZvcih2YXIgVCBvZiBIKWZvcih2YXIgeiBvZiBUKWlmKChBPUF1KHopKSYmQS5hdWRpbyYmKGIuUygiaHRtbDVfb25lc2llXzUxX2F1ZGlvIil8fCFBLlYoKSkmJnNEKHgsQSxoKT09PSEwKXtlLnB1c2goe2F1ZGlvQ29kZWM6SlVbWWdbel1dLG51bUNoYW5uZWxzOkEuYXVkaW8ubnVtQ2hhbm5lbHN9KTticmVha31XLm1lZGlhQ2FwYWJpbGl0aWVzPXt2aWRlb0Zvcm1hdENhcGFiaWxpdGllczpMLGF1ZGlvRm9ybWF0Q2FwYWJpbGl0aWVzOmV9fWlmKG4ub1o/LkR0KCkpe0E9bi5JODt5PW4ubGw7aD1uLm9aPy5OcztUPVtdO3o9W107TD1uZXcgTWFwO2U9KGU9ay5KKT9lLml0YWc6dm9pZCAwO0c9ay5XPy52aWRlb0luZm9zOwpHPUc/Lmxlbmd0aD9HW0cubGVuZ3RoLTFdLml0YWc6dm9pZCAwO2U9IVZUKCkmJmUhPT12b2lkIDAmJkE/LmluY2x1ZGVzKE51bWJlcihHKSk7Rz1rLnl3Lk47Zm9yKHZhciBDIG9mIEcudmFsdWVzKCkpQy5lUz96LnB1c2goe2F1ZGlvQ29kZWM6SlVbQy5JQl0sbnVtQ2hhbm5lbHM6Qy5udW1DaGFubmVscyxzcGF0aWFsQ2FwYWJpbGl0eUJpdG1hc2s6VFhNW0MuSUJdfSk6KEc9ZjNbQy5JQl0scj1DLm1heEJpdHJhdGVCcHN8fDAsSD1oP2gqODowLHI9e3ZpZGVvQ29kZWM6RyxtYXhXaWR0aDp5JiYhZT84NTQ6Qy5tYXhXaWR0aHx8MCxtYXhIZWlnaHQ6eSYmIWU/NDgwOkMubWF4SGVpZ2h0fHwwLG1heEZyYW1lcmF0ZTpDLm1heEZyYW1lcmF0ZXx8MCxpczEwQml0U3VwcG9ydGVkOkMuejl8fCExLG1heEJpdHJhdGVCcHM6SCYmcj9NYXRoLm1pbihILHIpOkh8fHIsZWZmaWNpZW50OiEwfSxHPWAke0d9XyR7Qy56OX1gLEg9TC5nZXQoRyl8fFtdLEgucHVzaChyKSxMLnNldChHLEgpKTsKVD15YWooVCxMKTtDPUEmJiFlP1suLi5BXTpbXTtrLlMoImh0bWw1X3NzZmZfZGVueWxpc3Rfb3B1c19sb3ciKSYmQy5wdXNoKDI0OSwzNTApO1Z6KGspO1cubWVkaWFDYXBhYmlsaXRpZXM9e3ZpZGVvRm9ybWF0Q2FwYWJpbGl0aWVzOlQsYXVkaW9Gb3JtYXRDYXBhYmlsaXRpZXM6eixoZHJNb2RlQml0bWFzazozLHBlclBsYXliYWNrQXR0cmlidXRlczpDLmxlbmd0aD97aXRhZ0RlbnlsaXN0OkN9Ont9fX1XLnVxPVZUKCk7bi5vWj8uTiYmKFcuYnY9eC5idixXLm5TPW4ub1o/Lm5TKTtiLnlFJiYoVy5FYj1iLnlFKTtXLm5SPW4ublI7Vy5Zcz1uLllzO1cuZXE9bi5lcTtXLmo0PW4uajQ7bi5weiYmKFcubHE9KDAsZy5SKSgpLW4ucHopO24uSiQmJihXLkokPW4uSiQpO05zfHwoVy5aQz0hMCk7Qz0kcyh2KSoxRTM7Qz4wJiYoVy5YRD1DKTtEPUQuZ2V0UGxheWJhY2tSYXRlKCk7RCE9PTEmJihXLnBsYXliYWNrUmF0ZT1EKTtuLm9aPy5MQiYmbi5HNyYmKFcua0U9bi5rRSxXLlVtPW4uVW0sClcuRzc9bi5HNyk7WWQoKT09PTEmJihXLms4PTEpO2IuUygiaHRtbDVfc2Ficl9mb3JjZV9wcm94aW1hIikmJihXLlZYPTEpO0Q9Zy5kTShiLmV4cGVyaW1lbnRzLCJodG1sNV9zYWJyX2ZvcmNlX21heF9uZXR3b3JrX2ludGVycnVwdGlvbl9kdXJhdGlvbl9tcyIpO1cucDY9RD4wP0Q6di5pbnRlcnJ1cHRpb25zWzBdfHwwO24ub1o/LllaJiYoVy5yMD1uLnIwKTtiLkhKJiYoVy5hdWRpb1RyYWNrSWQ9Yi5ISik7ay5aaCgpJiYhVy5hdWRpb1RyYWNrSWQmJihiLlMoImh0bWw1X2ZpbGxfZGVmYXVsdF9tb3NhaWNfYXVkaW9fdHJhY2tfaWQiKXx8KG49bGooayksVy5hdWRpb1RyYWNrSWQ9biksaz8uVSgibWlzc3Rya2NoZyIseyJkZWZhdWx0IjpXLmF1ZGlvVHJhY2tJZH0pKTtpZihuPW5hdmlnYXRvci5jb25uZWN0aW9uPy50eXBlfHwiIilXLmRldGFpbGVkTmV0d29ya1R5cGU9SXFbbl18fElxLm90aGVyOyFiLlMoImh0bWw1X2VuYWJsZV92b2ljZV9ib29zdCIpfHxrLk5QKCl8fGsuaXNBZCgpfHwKKFcucU09Yi5taCk7cmV0dXJuIFd9OwpTVj1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD17fTtXJiYoeC5xJD1XKTtpZighbilyZXR1cm4geDt4LnBsYXliYWNrQ29va2llPUQ/LnBsYXliYWNrQ29va2llO3YmJih4LmROPXYpO3gudXQ9W107eC5ycT1bXTtpZihoPy5zaXplKWZvcihsZXQgTCBvZiBoLnZhbHVlcygpKXgucnEucHVzaChMKTtpZihuLnNhYnJDb250ZXh0VXBkYXRlcy5zaXplPjApZm9yKGxldCBMIG9mIG4uc2FickNvbnRleHRVcGRhdGVzLnZhbHVlcygpKUNIaCh4LEwsYik7Zy5ZTihuKSYmayYmQ0hoKHgsayxiKTtXPW4uRygpLk47eC5jbGllbnRJbmZvPXtjbGllbnROYW1lOkJYdFtXLmMudG9VcHBlckNhc2UoKV18fDB9O1cuY2JyYW5kJiYoeC5jbGllbnRJbmZvLmRldmljZU1ha2U9Vy5jYnJhbmQpO1cuY21vZGVsJiYoeC5jbGllbnRJbmZvLmRldmljZU1vZGVsPVcuY21vZGVsKTtXLmN2ZXImJih4LmNsaWVudEluZm8uY2xpZW50VmVyc2lvbj1XLmN2ZXIpO1cuY29zJiYoeC5jbGllbnRJbmZvLm9zTmFtZT0KVy5jb3MpO1cuY29zdmVyJiYoeC5jbGllbnRJbmZvLm9zVmVyc2lvbj1XLmNvc3Zlcik7Vz1uLkcoKTtXLlMoImh0bWw1X3NhYnJfZW5hYmxlX3NlcnZlcl94dGFnX3NlbGVjdGlvbiIpJiZXLlJhJiYoeC5jbGllbnRJbmZvLmhsPVcuUmEpO24uQngmJih4LkJ4PW4uQngpO3JldHVybiB4fTsKQ0hoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XLnR5cGV8fDA7RD8uaGFzKGIpP24ucnEucHVzaChXKTpuLnV0LnB1c2goYil9OwpGYU09ZnVuY3Rpb24obil7aWYoISh5cyhuLmluZm8pJiZuLmluZm8uUW4oKSYmbi5wb2xpY3kuc1YmJm4uZTEpfHxuLmluZm8uWGIuSj49Mnx8cDcoKT4wfHwhSU8oKSlyZXR1cm4hMTt2YXIgVz1uLlNPLmdldCgiYWl0YWdzIik7aWYoIVcpcmV0dXJuITE7Vz1HNShXKS5zcGxpdCgiLCIpO3ZhciBEPVtdO2ZvcihsZXQgYiBvZiBuLmUxKWcuamooVyxiKSYmRC5wdXNoKGIpO2lmKCFELmxlbmd0aClyZXR1cm4hMTtuLlNPLnNldCgiYWx0aXRhZ3MiLHFoKEQuam9pbigiLCIpKSk7cmV0dXJuITB9Owp3S2o9ZnVuY3Rpb24obixXLEQ9ITEpe2cuWGooVyk7bi50NS5sYXN0RXJyb3I9InBsYXllci5leGNlcHRpb24iO24uZXJyb3JNZXNzYWdlPWAke1cubmFtZX1fJHtXLm1lc3NhZ2V9YDtEP2cubUsoKCk9PntoVShuLnQ1KX0pOmhVKG4udDUpfTsKTUFNPWZ1bmN0aW9uKG4pe24uZXcmJihuLnhoci5zdGF0dXM9bi5ldyxuLmxOPW4uZXcpfTsKUnhqPWZ1bmN0aW9uKG4sVyl7bi50aW1pbmcuYmQ9ITA7bi54aHIuR3AoKSYmbi50aW1pbmcuVEMoKTtuLnBvbGljeS5OZCYmbi5UMj8uc3RvcCgpO0R4KG4uV28sVywhMSl9OwpRRnc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ucVk/TWF0aC5tYXgoVyxEL24ucVkpOlcsdj1uLmlqLkouVzt2JiYoYj1XLG4ucVkmJihiPU1hdGgubWF4KFcsRC9uLnFZKnYpKSk7QnUobi5paixXLEQsYil9OwpWQVM9ZnVuY3Rpb24obixXLEQsYix2LGspe24uTyYmKG4uTy5hZGQoTWF0aC5yb3VuZChXKSksbi5PLmFkZChNYXRoLnJvdW5kKEQpKSxuLk8uYWRkKE1hdGgucm91bmQoYikpLG4uTy5hZGQoTWF0aC5yb3VuZCh2KSksbi5PLmFkZChNYXRoLnJvdW5kKGspKSxuLk8uYWRkKE1hdGgucm91bmQobi52WCkpKX07CmNhdD1mdW5jdGlvbihuLFcsRCl7c3dpdGNoKFcpe2Nhc2UgNjg6bi5aYihEKTticmVhaztjYXNlIDM1Om4uc3koRCk7YnJlYWs7Y2FzZSA0NDpuLklyKEQpO2JyZWFrO2Nhc2UgNDM6bi5yTihEKTticmVhaztjYXNlIDUzOm4ua0ooRCk7YnJlYWs7Y2FzZSA1NjpuLk9lKCk7YnJlYWs7Y2FzZSA1NzpuLnlUKEQpO2JyZWFrO2Nhc2UgNDI6bi5XbChEKTticmVhaztjYXNlIDQ1Om4udVEoRCk7YnJlYWs7Y2FzZSA1OTpuLmdZKEQpO2JyZWFrO2Nhc2UgNTE6bi5DWChEKTticmVhaztjYXNlIDQ5Om4uTiQoRCk7YnJlYWs7Y2FzZSA1MDpuLkZYKEQpO2JyZWFrO2Nhc2UgNDc6bi5BcShEKTticmVhaztjYXNlIDU4Om4uc1coRCk7YnJlYWs7Y2FzZSA2MTpuLkhFKEQpO2JyZWFrO2Nhc2UgNzI6bi5ZYS5UcSgpO2JyZWFrO2Nhc2UgNjY6bi56cChEKTticmVhaztjYXNlIDQ2Om4udnQoRCk7YnJlYWs7Y2FzZSA2NzpuLm9uU25hY2tiYXJNZXNzYWdlKEQpO2JyZWFrO2Nhc2UgNzE6Vz1tayhELApJbGopLG4uWWEuSUYoVyl9fTsKYWlNPWZ1bmN0aW9uKG4pe0FVPW59OwpuajE9ZnVuY3Rpb24obixXLEQpe24udTkuZ2V0KFcpLm9uUHJvZ3Jlc3M9RH07Cm1lPWZ1bmN0aW9uKG4sVyl7bi5nRihXKSYmKEFVP24udTkuZ2V0KFcpLkZtLmNsZWFyKCk6bi51OS5nZXQoVykualM9bmV3IFM1LG4uSihXKSxuLlg9ITApfTsKVyRqPWZ1bmN0aW9uKG4pe2ZvcihsZXQgW1csRF1vZiBuLnU5KXtsZXQgYj1XO0QuRG98fG1lKG4sYil9fTsKRDZ4PWZ1bmN0aW9uKG4sVyl7bj1uLnU5LmdldChXKTtpZighbilyZXR1cm4gMDtXPTA7aWYobi5Bdy5sZW5ndGg+MCl7Zm9yKGxldCBEIG9mIG4uQXcpVys9RC5yYW5nZT8ubGVuZ3RofHwwO3JldHVybiBXfWlmKG4uQnQubGVuZ3RoPjApZm9yKGxldCBEIG9mIG4uQnQpVys9RC5lSHx8MDtyZXR1cm4gVytuLk1vfTsKSzM9ZnVuY3Rpb24obixXKXtpZihBVSl7bGV0IEQ9MDtuPW4udTkuZ2V0KFcpO2lmKCFuPy5GbSlyZXR1cm4gMDtmb3IobGV0IGIgb2Ygbi5GbS52YWx1ZXMoKSlEKz1iLmRhdGEudG90YWxMZW5ndGg7cmV0dXJuIER9cmV0dXJuIG4udTkuZ2V0KFcpPy5qUy5qKCl8fDB9OwpPRz1mdW5jdGlvbihuLFcpe249bi51OS5nZXQoVyk7aWYoQVUpe2lmKCFuPy5EbylyZXR1cm4hMTtXPW4uRm0uc2l6ZT4wO3JldHVybiBuLnBKLmxlbmd0aD4wfHxXfXJldHVybiEhbj8uRG8mJiEhbj8ualMuaigpfTsKYmVyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi51OS5nZXQoVyksYj1ENngobixXKSx2PSFiJiYhIUQuYnl0ZXNSZWNlaXZlZDtpZihBVSl7aWYobi5LdT8uelcpe2Zvcih2YXIgayBvZiBELkZtLnZhbHVlcygpKWlmKCFrLmtuKXJldHVybiExO3JldHVybiB2fX1lbHNlIGlmKGs9bi5tNihXKSx2JiZuLlcmJmshPT12b2lkIDApcmV0dXJuIGs7cmV0dXJuKHZ8fEQuYnl0ZXNSZWNlaXZlZD09PWIpJiZELmJ5K0szKG4sVyk9PT1ELmJ5dGVzUmVjZWl2ZWR9OwpQcD1mdW5jdGlvbihuLFcsRCxiKXtXPXZqdyhuLFcsRCk7RD1ELmF1O2IuQXcucHVzaCguLi5XKTtpZihBVSliLmNCLmhhcyhEKXx8Yi5jQi5zZXQoRCxbXSksYi5jQi5nZXQoRCkucHVzaCguLi5XKTtlbHNlIGlmKGIuV28pZm9yKGxldCB2IG9mIFcpYi5Xby5Bdy5wdXNoKHYpO2Vsc2UgYi5Xbz1uZXcga0JoKFsuLi5iLkF3XSksbi5vWj8uSHgmJmcudShuLGIuV28pO3JldHVybiBXfTsKdmp3PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkt1Py5KLmdldChXKTtpZighYilyZXR1cm5bXTtpZihELk9KKXJldHVybiBiLlkoMCxELmNsaXBJZCk/LkF3fHxbXTtpZihiLlcoKSl7dmFyIHY9RC5zdGFydE1zLGs9RC5kdXJhdGlvbk1zLGg9MUUzO24ub1o/Lk4mJkQudGltZVJhbmdlJiYodj1ELnRpbWVSYW5nZS5zdGFydFRpY2tzPz8tMSxrPUQudGltZVJhbmdlLmw4Pz8tMSxoPUQudGltZVJhbmdlLnRpbWVzY2FsZT8/LTEpO2lmKEQuenY8MHx8RC5QUDwwfHxrPDB8fHY8MHx8RC5lSDwwfHxoPDApcmV0dXJuIG1lKG4sVyksW107bj1XXyhELnp2LEQuZUgpO1c9RC5kR3x8MDtyZXR1cm5bbmV3IHFJKDMsYixuLCJtYWtlU2xpY2VJbmZvc01lZGlhQnl0ZXMiLEQuUFAtMSx2L2gsay9oLFcsbi5sZW5ndGgtVyx2b2lkIDAsRC52RCxELmNsaXBJZCxELkhmIT09dm9pZCAwKV19aWYoRC5QUDwwKXJldHVybiBtZShuLFcpLFtdO2lmKG4uS3U/LnpXKXJldHVybiBrPWIucmIsaD1rKmIuaW5mby5OcywKVz1ELmRHLG4ub1o/Lk4mJm4uVi50ZCgpIT09Ik9ORVNJRSImJkQudGltZVJhbmdlJiYhVyYmKHY9RC50aW1lUmFuZ2Uuc3RhcnRUaWNrcy9ELnRpbWVSYW5nZS50aW1lc2NhbGUpLFtuZXcgcUkoMyxiLHZvaWQgMCwibWFrZVNsaWNlSW5mb3NNZWRpYUJ5dGVzIixELlBQLHYsayxXLGgsITAsRC52RCxELmNsaXBJZCxELkhmIT09dm9pZCAwKV07aWYobi5vWj8uUXImJmIgaW5zdGFuY2VvZiBydCl7aWYoIWIuTigpKXJldHVybiBuLnU5LmdldChXKS5XcS5zZXQoRC5hdSxEKSxbXTtuPUQuUFAtMTt2PWIuaW5kZXguZ2V0U3RhcnRUaW1lKG4pO2s9Yi5pbmRleC5nZXREdXJhdGlvbihuKTtyZXR1cm5bbmV3IHFJKDMsYix2b2lkIDAsIm1ha2VTbGljZUluZm9zTWVkaWFCeXRlcyIsbix2LGssMCxrKmIuaW5mby5Ocyx2b2lkIDAsdm9pZCAwLHZvaWQgMCxELkhmIT09dm9pZCAwKV19cmV0dXJuW119OwpoNzI9ZnVuY3Rpb24obixXLEQpe24uS3U9VztuLm9aPUQ7Zm9yKGxldCBbYix2XW9mIG4udTkpe1c9YjtEPXY7Zm9yKGxldCBrIG9mIEQucDkpUHAobixXLGssRCl9fTsKeDZ3PWZ1bmN0aW9uKG4pe3JldHVybiBuLndEKCkmJiFuLkFkfTsKVUc9ZnVuY3Rpb24obil7aWYobi5VOCE9PXZvaWQgMCl7dmFyIFc9bi5wb2xpY3kual8oKTtpZihXKXt2YXIgRD1XLmV4cG9ydHMuU2FiclJlcXVlc3RDb29yZGluYXRvcl9nZXRFdmVudHNDb3VudChuLlU4KTtpZihEPjApe3ZhciBiPVcuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2dldEJhdGNoZWRFdmVudHMobi5VOCk7aWYoYil7Yj1XLm1lbW9yeS5idWZmZXIoYixEKjE2KTtiPW5ldyBVaW50MzJBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQsRCo0KTtsZXQgaz0wO2ZvcihsZXQgaD0wO2g8RDtoKyspe3ZhciB2PWJba107bGV0IHg9YltrKzFdLEw9YltrKzJdLGU9YltrKzNdO3Y9PT0wP2UhPT0wJiYodj14JiZMPjA/bmV3IFM1KFtXLm1lbW9yeS5idWZmZXIoeCxMKS5zbGljZSgpXSk6bmV3IFM1KFtuZXcgVWludDhBcnJheSgwKV0pLG4ueUQud20oZSx2KSk6dj09PTEmJm4ueGhyLkdwKCkmJlp4KG4pO2srPTR9fVcuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2NsZWFyRXZlbnRzKG4uVTgpfX19fTsKWng9ZnVuY3Rpb24obil7bi5wb2xpY3kuWTAmJm4uUHEmJiFuLmdVP24uZ1U9ITA6bi5uZi5UQygpfTsKTCQyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9LTEsYj0tMSx2PS0xO2lmKG4udFk/Lml0ZW1zKWZvcihsZXQgayBvZiBuLnRZLml0ZW1zKVc8ay5Ga3x8ay5GazxEfHwoRD1rLkZrLGI9ay5meix2PWsubWluUmVhZGFoZWFkTXMpO3JldHVybntxRTpELGZ6OmIsRFE6dn19Owp5Qj1mdW5jdGlvbihuKXtpZihuLlU4IT09dm9pZCAwKXJldHVybiBuLnBvbGljeS5qXygpLmV4cG9ydHMuU2FiclJlcXVlc3RDb29yZGluYXRvcl9nZXRNZWRpYUJ5dGVzKG4uVTgpfTsKZy5FRz1mdW5jdGlvbihuLFcsRCl7Zy52UChuLEQpfHxnLmdfKG4sVyxEKTtnLnZQKG4sInZpZGVvX3RvX2FkIil8fGcuZ18obixXLCJ2aWRlb190b19hZCIpO2cudlAobiwiYWRfdG9fdmlkZW8iKXx8Zy5nXyhuLFcsImFkX3RvX3ZpZGVvIik7Zy52UChuLCJhZF90b19hZCIpfHxnLmdfKG4sVywiYWRfdG9fYWQiKX07Cml1PWZ1bmN0aW9uKG4pe24uT3x8KG4uTz0oMCxnLlIpKCksZy5FRygibWJfcyIsbi5PLG4uelIpKX07CmU3Yj1mdW5jdGlvbihuKXtuLnR3fHwobi50dz0oMCxnLlIpKCksZy5FRygib3Zmc19ycCIsbi50dyxuLnpSKSl9OwpnajE9ZnVuY3Rpb24obil7bi5jSnx8KG4uY0o9KDAsZy5SKSgpLGcuRUcoIm9hZnNfcnAiLG4uY0osbi56UikpfTsKWFNoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XIGluc3RhbmNlb2YgdXUmJiFuLlgmJiFuLk4sdj0hbi5YJiZEPy5pbmZvLnZpZGVvO0Q9IW4uTiYmRD8uaW5mby5hdWRpbztXLnN0YXRlPT09Mz8oKHZ8fGIpJiZuLnRpY2soInZyciIpLChEfHxiKSYmbi50aWNrKCJhcnIiKSk6Vy5zdGF0ZT09PTQ/dj8obi5YPVcuV0QoKSxnLkR5KCksYlEoNCkpOkQmJihuLk49Vy5XRCgpKTpXIGluc3RhbmNlb2YgQUImJlcuUXkoKSYmdiYmKGcuRHkoKSxiUSg0KSl9OwpvcT1mdW5jdGlvbihuLFcsRCl7bi5KIT09VyYmKG4uVSgic2RhaSIse3NldHNzdDpXLG9sZDpuLkoscjpEfSksbi5KPVcpfTsKR0JiPWZ1bmN0aW9uKG4sVyxELGI9ITApe2lmKEQmJiFuLlRDLmhhcyhXLmokKSl7dmFyIHY9Vy5zdGFydFRpbWUsaz1bXTtmb3IodmFyIGg9MDtoPEQuTi5sZW5ndGg7aCsrKXt2YXIgeD1ELk5baF0sTD12O3Y9TCtELkpbaF07ay5wdXNoKHtzdGFydFRpbWU6TCxlbmRUaW1lOnYsYWRDcG46eH0pfW4uVEMuc2V0KFcuaiQsayl9bi5wb2xpY3kuZVYmJih2PW4uRCYmVy5qJD09PW4uRC5qJCsxLG4uRD1XLGs9bi5OJiZXLmokPT09bi5OLmokKzEsaz1uLk4mJnYmJmsmJm4uTi5mZi5ldmVudCE9PSJzdG9wIiYmbi5OLmZmLmV2ZW50IT09InByZWRpY3RTdGFydCIsaD1XLmZmfHxudWxsLHg9bi52aWRlb1RyYWNrLlBKLmluZGV4LngkKCkseD1XLmokPj14LEw9bi5LdS5pc01hbmlmZXN0bGVzcyxoPyhuLk4/LmZmLmV2ZW50PT09InByZWRpY3RTdGFydCImJm4uTi5qJDxXLmokJiZoLmV2ZW50PT09InN0b3AiJiZuLmxvYWRlci5oYW5kbGVFcnJvcigic3NkYWkubWlzc2luZ3N0YXJ0Y3VlZXZlbnQiLAp7bGFzdHByZWRpY3Q6bi5OPy5qJHx8MCxjc3E6Vy5qJH0sMCksbi5OPXtmZjpoLGokOlcuaiQsZks6ISFELGZZOmJ9LHg/bi5WaShoLFcuaiQpOkwmJih2P2s/bi5WaShoLFcuaiQpOmguZXZlbnQ9PT0iY29udGludWUifHxoLmV2ZW50PT09InN0b3AiP3EkMihuLFcpOm4uVmkoaCxXLmokKTpuLlZpKGgsVy5qJCkpKTooayYmcSQyKG4sVyksbi5KPT09NCYmb3Eobiw1LCJxZW5kIikpKX07CnJraj1mdW5jdGlvbihuLFcsRCxiLHYpe1chPT1uLk4/LmokfHxuLko9PT0xfHxifHxuLk4uZmYuZXZlbnQ9PT0icHJlZGljdFN0YXJ0Inx8bi5VKCJzZGFpIix7dW5kZWNldnQ6MSxzcTpXLG10OkQsZXZ0Om4uTi5mZi5ldmVudH0sITApO1c+bi5qJiYobi5qPU5hTixuLlY9TmFOKTtpZihuLk4mJm4uTi5qJD09PVcpe2lmKGI9bi5OLCFuLnBvbGljeS5YfHwhbi5wb2xpY3kuVTEpaWYodiYmYil7dmFyIGs9Yi5mZixoPXYuU0Qoayk7ay5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYobi5jSj1XKTtuLlUoInNkYWkiLHtvbnFldnQ6ay5ldmVudCxzcTpXLG10OkQsZ2FiOmgsY3N0Omsuc3RhcnRTZWNzLGN1ZWlkOm4ucG9saWN5LnlkJiYoaHx8ay5ldmVudD09PSJzdGFydCIpP2suaWRlbnRpZmllcjp2b2lkIDB9LCEwKTtoP2suZXZlbnQhPT0icHJlZGljdFN0YXJ0Ij8oay5ldmVudD09PSJzdGFydCImJm4uY0o9PT1XLTEmJm4uVSgic2RhaSIse2dhYm9uc3RhcnQ6V30pLGIuZks/b3EobiwKNCwiY3VlIik6KG4uaj1XLG4uVj1ELG4uVSgic2RhaSIse2pvaW5hZDpuLkosc2c6bi5qLHN0Om4uVi50b0ZpeGVkKDMpfSksbi5ZPURhdGUubm93KCksb3EobiwyLG4uSj09PTM/InN0YWZ0cHJlZCI6ImpvaW4iKSx0dmkodixiLmZmKSkpOihoPSQ2aChuKSxXKz1NYXRoLm1heChNYXRoLmNlaWwoLWsuTi9oKSwxKSxrPU1hdGguZmxvb3IoRC1rLk4vMUUzKSxuLnBvbGljeS5VMT9uLlc9azpuLlg9VyxuLlUoInNkYWkiLHtvbnByZWQ6RCxlc3RzcTpXLGVzdG10OmsudG9GaXhlZCgzKX0pLGcuZEMobi5sb2FkZXIsayxrLFcsaCksbi5ZPURhdGUubm93KCksb3EobiwzLCJwcmVkaWN0IiksdHZpKHYsYi5mZikpOm4uSj09PTE/bi5zVT8uR2coRCk/KGcuZEMobi5sb2FkZXIsRCxELFcpLG9xKG4sNCwic2syaGVhZCIpKTpvcShuLDUsIm5vZ2FiIik6ay5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYobi5wb2xpY3kuVTEmJm4uVz4wPyhEPU1hdGguZmxvb3IoRC1rLk4vMUUzKSxuLlchPT1EJiYKbi5VKCJzZGFpIix7dXBkYXRlU3Q6RCxvbGQ6bi5XfSksbi5XPUQpOm4uWD4wJiYoRD1XK01hdGgubWF4KE1hdGguY2VpbCgtay5OLyQ2aChuKSksMSksbi5YIT09RCYmKG4uVSgic2RhaSIse3VwZGF0ZVN0OkQsb2xkOm4uWH0pLG4uWD1EKSkpfWVsc2Ugbi5VKCJzZGFpIix7bnVsbGRlYzoxLHNxOlcsbXQ6RC50b0ZpeGVkKDMpLGV2dDpiPy5mZj8uZXZlbnR8fCJub25lIn0pfWVsc2Ugbi5KPT09MSYmb3Eobiw1LCJub2FkIil9Owp6ST1mdW5jdGlvbihuLFcsRCl7cmV0dXJuKEQ8MHx8RD09PW4uaikmJiFpc05hTihuLlYpP24uVjpXfTsKcSQyPWZ1bmN0aW9uKG4sVyl7aWYobi5OKXt2YXIgRD1uLk4uZmYuQ2YtKFcuc3RhcnRUaW1lK24uSy1uLk4uZmYuc3RhcnRTZWNzKTtEPD0wfHwoRD1uZXcgZy5sMyhuLk4uZmYuc3RhcnRTZWNzLShpc05hTihuLkspPzA6bi5LKSxELG4uTi5mZi5jb250ZXh0LG4uTi5mZi5pZGVudGlmaWVyLCJzdG9wIixuLk4uZmYuTitXLmR1cmF0aW9uKjFFMyksbi5VKCJjdWVwb2ludGRpc2NvbnRpbnVpdHkiLHtzZWdOdW06Vy5qJH0pLG4uVmkoRCxXLmokKSl9fTsKJDZoPWZ1bmN0aW9uKG4pe3N3aXRjaChuLnBvbGljeS5sYXRlbmN5Q2xhc3Mpe2Nhc2UgIkxPVyI6cmV0dXJuIDJFMztjYXNlICJVTFRSQUxPVyI6cmV0dXJuIDFFMztkZWZhdWx0OnJldHVybiA1RTN9fTsKbHU9ZnVuY3Rpb24obixXLEQsYj0hMSl7Yj9vcShuLDEsInNlZWsiKTpXPjAmJk1hdGguYWJzKFctRCk+PTUmJm4uSj09PTQmJm9xKG4sNSwic2sydCIpfTsKZy5UST1mdW5jdGlvbihuKXtyZXR1cm4gbi50aWxlQ29udGV4dD9gJHtuLlNTfTske24udGlsZUNvbnRleHR9YDpuLlNTfTsKalY9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuInVua25vd24iO3N3aXRjaChuKXtjYXNlIDU6cmV0dXJuInByZWRpY3RTdGFydCI7Y2FzZSAxOnJldHVybiJzdGFydCI7Y2FzZSAyOnJldHVybiJjb250aW51ZSI7Y2FzZSAzOnJldHVybiJzdG9wIjtjYXNlIDY6cmV0dXJuInByZWZldGNoIjtkZWZhdWx0OnJldHVybiJ1bmtub3duIn19OwpzU3c9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgInByZWRpY3RTdGFydCI6cmV0dXJuIDU7Y2FzZSAic3RhcnQiOnJldHVybiAxO2Nhc2UgImNvbnRpbnVlIjpyZXR1cm4gMjtjYXNlICJzdG9wIjpyZXR1cm4gMztjYXNlICJwcmVmZXRjaCI6cmV0dXJuIDY7ZGVmYXVsdDpyZXR1cm4gMH19OwpON1M9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIDA7c3dpdGNoKG4pe2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDE6cmV0dXJuIDE7ZGVmYXVsdDpyZXR1cm4gMH19OwpwU1M9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIDA7c3dpdGNoKG4pe2Nhc2UgNjpyZXR1cm4gNztjYXNlIDU6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgMTE6cmV0dXJuIDM7Y2FzZSAzOnJldHVybiA0O2Nhc2UgMTpyZXR1cm4gNTtjYXNlIDEyOnJldHVybiA2O2RlZmF1bHQ6cmV0dXJuIDB9fTsKZy5DMz1mdW5jdGlvbihuKXtyZXR1cm4gbj9uLnRpbGVDb250ZXh0P2Ake24uaWRlbnRpZmllcn07JHtuLnRpbGVDb250ZXh0fWA6bi5pZGVudGlmaWVyOiIifTsKZy5CcD1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSAwOnJldHVybiJ1bmtub3duIjtjYXNlIDE6cmV0dXJuInRpbWVvdXQiO2Nhc2UgMjpyZXR1cm4icmF0ZWNvbnRyb2wiO2Nhc2UgMTE6cmV0dXJuInJhdGVjb250cm9sX2NsaWVudCI7Y2FzZSAzOnJldHVybiJzdmVyciI7Y2FzZSA0OnJldHVybiJkZWxldGVkIjtjYXNlIDU6cmV0dXJuIndhaXRpbmciO2Nhc2UgNjpyZXR1cm4icmVhZHkiO2Nhc2UgNzpyZXR1cm4ic3NkaXNhYmxlZCI7Y2FzZSA5OnJldHVybiJzc2Rpc2FibGVkX3VzdHJlYW1lciI7Y2FzZSAxMDpyZXR1cm4ic3NkaXNhYmxlZF9ub19jb25maWciO2Nhc2UgMTI6cmV0dXJuIm5vZ2FiY29uZmlnIjtjYXNlIDg6cmV0dXJuImluYWN0aXZlIjtjYXNlIDEzOnJldHVybiJjYWNoZW1pc3MiO2RlZmF1bHQ6cmV0dXJuInVua25vd24ifX07CkZ1PWZ1bmN0aW9uKG4pe3ZhciBXPS0obi5mZj8uVHl8fDApO24udGltZVJhbmdlJiYoVys9KG4udGltZVJhbmdlLnN0YXJ0VGlja3N8fDApLyhuLnRpbWVSYW5nZS50aW1lc2NhbGV8fDEpKTtyZXR1cm4gbmV3IGcubDMoVyxuLmZmPy5NS3x8MCxuLmZmPy51VHx8IiIsbi5mZj8uaWRlbnRpZmllcnx8IiIsalYobi5mZj8uZXZlbnQpLChuLmZmPy5UeXx8MCkqMUUzLG4udGlsZUNvbnRleHQpfTsKZy5ZJEM9ZnVuY3Rpb24obixXKXt2YXIgRD0iIixiPVtdO2ZvcihsZXQgW3Ysa11vZiBuLk4uZW50cmllcygpKXtsZXQgaD12LHg9azt4Py5zdGFydFRpbWVTZWNzPD1XJiZXPD14Py5zdGFydFRpbWVTZWNzK3g/LkNmJiZiLnB1c2goaCk7RCs9YCR7aH06JHt4Py5zdGFydFRpbWVTZWNzLnRvRml4ZWQoMyl9OiR7eD8uQ2YudG9GaXhlZCgzKX07YH1iLmxlbmd0aD09PTAmJihXPXtub19jaWQ6MSxtdDpXLnRvRml4ZWQoMyksYWRDb25maWdNYXA6RC5zdWJzdHJpbmcoMCwxMDI0KX0sbi5wb2xpY3kuRlImJm4uVSgiY2xzZGFpIixXKSk7cmV0dXJuIGJ9OwpIZVU9ZnVuY3Rpb24obixXLEQ9ITEpe0QmJihuLlY9ITApOysrbi5qO0Q9NkU0KjIqKm4uajtEPSgwLGcuUikoKStEO24uVy5zZXQoVy5pbmZvLmlkLEQpfTsKd0M9ZnVuY3Rpb24obil7Zm9yKGxldCBbVyxEXW9mIG4uVy5lbnRyaWVzKCkpe2xldCBiPVc7RDwoMCxnLlIpKCkmJm4uVy5kZWxldGUoYil9cmV0dXJuIG4uV307ClJxPWZ1bmN0aW9uKG4sVyl7bi5OPVc7dmFyIEQ9bi5LLnZpZGVvSW5mb3M7aWYoIW4uTi5pc0xvY2tlZCgpKXtsZXQgaz0oMCxnLlIpKCk7RD1nLkVNKEQsZnVuY3Rpb24oaCl7aWYoaC5Ocz50aGlzLnBvbGljeS5OcylyZXR1cm4hMTt2YXIgeD10aGlzLkt1Lk5baC5pZF07cmV0dXJuIHdDKHRoaXMuaikuZ2V0KGguaWQpPmt8fHguWGIuSj40fHx4LkZGPjQ/ITE6dGhpcy50dy5oYXMoK2guaXRhZyk/ITE6ITB9LG4pOwpuLmoubGwoKSYmKEQ9Zy5FTShELGg9PmgudmlkZW8ud2lkdGg8PTg1NCYmaC52aWRlby5oZWlnaHQ8PTQ4MCkpfUQubGVuZ3RofHwoRD1uLksudmlkZW9JbmZvcyk7CnZhciBiPUQ7bi5wb2xpY3kuUm8mJihiPWZRaChuLGIsVykpO2I9Zy5FTShiLFcuWCxXKTtpZihuLk4uaXNMb2NrZWQoKSYmbi5qLk4pe3ZhciB2PWcubF8oRCxrPT5rLmlkPT09bi5qLk4pOwp2P2I9W3ZdOm4uRGUoIiIpfW4ucG9saWN5LlJvfHwoYj1mUWgobixiLFcpKTtiLmxlbmd0aHx8KGI9W0RbMF1dKTtiLnNvcnQoKGssaCk9Pk1xKG4sayktTXEobixoKSk7CmZvcihXPTE7VzxiLmxlbmd0aDtXKyspRD1iW1ctMV0sdj1iW1ddLEQudmlkZW8ud2lkdGg+di52aWRlby53aWR0aD8oZy5CTShiLFcpLFctLSk6TXEobixEKSpuLnBvbGljeS5LPk1xKG4sdikmJihnLkJNKGIsVy0xKSxXLS0pO1c9YltiLmxlbmd0aC0xXTtuLkR0PSEhbi5XJiYhIW4uVy5pbmZvJiZuLlcuaW5mby5JQiE9PVcuSUI7bi5YPWI7bi5lJC5jbGVhcigpO0Q9ITE7Zm9yKHY9MDt2PGIubGVuZ3RoO3YrKylEP24uZSQuYWRkKGJbdl0uaXRhZyk6Ylt2XS52aWRlby5xdWFsaXR5T3JkaW5hbD49MTA4MCYmKEQ9ITApO0prQyhuLnBvbGljeSxXLG4uS3UuelcpfTsKSVExPWZ1bmN0aW9uKG4pe3ZhciBXPW4ucG9saWN5LmNKLEQ9Tlcobi5JZykvVy1NcShuLG4uSi5pbmZvKTtXPWcuVDQobi5YLGZ1bmN0aW9uKGIpe3JldHVybiBNcSh0aGlzLGIpPER9LG4pOwpXPDAmJihXPTApO24udmlkZW9JbmRleD1XO24ubmV4dFZpZGVvPW4uS3UuTltuLlhbV10uaWRdfTsKUyRoPWZ1bmN0aW9uKG4pe24uUyQ/bi5TJD0hMTpuLlk9KDAsZy5SKSgpO24uRD0hMTtuLlZRPSExO3JldHVybiBuZXcgUUIobi5WLG4uVyxuLk4ucmVhc29uKX07Cm02dz1mdW5jdGlvbihuLFcsRCl7UnEobixXKTt2YXIgYj1uLmo7Vz1iLlguSjtEPWJZKFcse2dPOmIucG9saWN5LmdPLGo5OmIucG9saWN5Lmo5LGxhbmd1YWdlSWQ6RH0pO24uSj1uLkt1Lk5bKEQubGVuZ3RoPjA/RFswXTpXWzBdKS5pZF07VkIobik7bi5WPW4uSjtJUTEobik7bi5UQy5sZW5ndGgmJihuLm5leHRWaWRlbz1Ba00obixuLm5leHRWaWRlbyxuLksudmlkZW9JbmZvcyksbi5KPUFrTShuLG4uSixuLksuSikpO24uVz1uLm5leHRWaWRlbztuLlY9bi5KO3JldHVybiBTJGgobil9OwpLJGo9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLmVxdWFscyhXKSYmKCFuLmouTnx8IW4uTi5pc0xvY2tlZCgpfHxuLm5leHRWaWRlbz8uaW5mby5pZD09PW4uai5OKX07ClZCPWZ1bmN0aW9uKG4pe2lmKCFuLkp8fCFuLnBvbGljeS5KJiYhbi5KLmluZm8ua1ope3ZhciBXPW4uSy5KO24uSiYmKFc9YlkoVyx7bGFuZ3VhZ2VJZDpuLkouaW5mby5rWj8uaWQsZ086bi5wb2xpY3kuZ08sajk6bi5wb2xpY3kuajl9KSxXLmxlbmd0aHx8KFc9bi5LLkopKTtuLko9bi5LdS5OW1dbMF0uaWRdO2lmKFcubGVuZ3RoPjEmJiFuLnBvbGljeS5IaSl7aWYoIW4ucG9saWN5LnRHKXt2YXIgRD1nLmxfKFcsYj0+Yi5hdWRpby5hdWRpb1F1YWxpdHkhPT0iQVVESU9fUVVBTElUWV9ISUdIIik7CkQmJihuLko9bi5LdS5OW0QuaWRdKX1EPSExO2lmKEQ9bi5wb2xpY3kuWSQ/ITA6bi5OLmlzTG9ja2VkKCk/bi5OLk48MjQwOk9laShuLG4uSikpbi5KPW4uS3UuTltnLlVNKFcpLmlkXX19fTsKY3A9ZnVuY3Rpb24obil7aWYoIW4ubmV4dFZpZGVvfHwhbi5wb2xpY3kuSilpZihuLk4uaXNMb2NrZWQoKSluLm5leHRWaWRlbz1uLk4uTjw9MzYwP24uS3UuTltuLlhbMF0uaWRdOm4uS3UuTltnLlVNKG4uWCkuaWRdO2Vsc2V7Zm9yKHZhciBXPU1hdGgubWluKG4udmlkZW9JbmRleCxuLlgubGVuZ3RoLTEpLEQ9Tlcobi5JZyksYj1NcShuLG4uSi5pbmZvKSx2PUQvbi5wb2xpY3kuY0otYjtXPjAmJiEoTXEobixuLlhbV10pPD12KTtXLS0pO2ZvcihEPUQvbi5wb2xpY3kuSy1iO1c8bi5YLmxlbmd0aC0xJiYhKE1xKG4sbi5YW1crMV0pPj1EKTtXKyspO24ubmV4dFZpZGVvPW4uS3UuTltuLlhbV10uaWRdO24udmlkZW9JbmRleD1XfX07ClBDMj1mdW5jdGlvbihuLFcpe2lmKFcuUEouaW5mby52aWRlbyYmVy5hWil7bGV0IEQ9KFcuTitXLkopL1cuVyxiPVcuUEouaW5mby5OcztEJiZiJiYobi5udS5JSSgxLEQvYiksbi5wb2xpY3kuVyYmRC9iPjEuNSYmbi5sb2FkZXIuVSgib3ZlcnNob290Iix7c3E6Vy5qJCxicjpELG1heDpifSkpfX07CmFxPWZ1bmN0aW9uKG4sVyxEPSExKXtIZVUobi5qLFcsRCk7bi5ZPS0xO1JxKG4sbi5OKX07Clpldz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgUUIobi5WLG4uVyxXfHxuLk4ucmVhc29uKX07Ck1xPWZ1bmN0aW9uKG4sVyl7aWYoIW4uYmRbVy5pZF0pe3ZhciBEPW4uS3UuTltXLmlkXS5pbmRleC5YZChuLmNKLDE1KTtEPVcuWG4mJm4uVyYmbi5XLmluZGV4LmlzTG9hZGVkKCk/RHx8Vy5YbjpEfHxXLk5zO24uYmRbVy5pZF09RH1EPW4uYmRbVy5pZF07bi5lJC5oYXMoVy5pdGFnKSYmKEQqPTEuNSk7cmV0dXJuIEQqPU1hdGgubWF4KDEsbi5udS5MZygpfHwwKX07ClU2Qz1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2ZvcihsZXQgYiBvZiBXKXtpZighYnx8IWIudmlkZW8pY29udGludWU7Vz1iLnZpZGVvLnF1YWxpdHlPcmRpbmFsO2xldCB2PURbV10saz12JiZ2Lk1XKCkmJnYudmlkZW8ucXVhbGl0eU9yZGluYWw+bi5wb2xpY3kublMsaD1XPD1uLnBvbGljeS5uUz9iLk1XKCk6Yi5YKCk7aWYoIXZ8fGt8fGgpRFtXXT1ifXJldHVybiBEfTsKZlFoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1ELnJlYXNvbj09PSJtInx8RC5yZWFzb249PT0icyI7bi5wb2xpY3kuUnEmJm5yJiZnLkduJiYoIWJ8fEQuTjwxMDgwKSYmKFc9Vy5maWx0ZXIodj0+di52aWRlbyYmKCF2Lmp8fHYuai5wb3dlckVmZmljaWVudCkpKTsKaWYoVy5sZW5ndGg+MClpZihWVCgpKXtsZXQgdj1VNkMobixXKTtXPVcuZmlsdGVyKGs9PiEhayYmISFrLnZpZGVvJiZrLklCPT09dltrLnZpZGVvLnF1YWxpdHlPcmRpbmFsXS5JQil9ZWxzZXtsZXQgdj1XWzBdPy52aWRlbz8ucXVhbGl0eU9yZGluYWw7CmlmKHYpe0Q9Vy5maWx0ZXIoaD0+ISFoJiYhIWgudmlkZW8mJmgudmlkZW8ucXVhbGl0eU9yZGluYWw9PT12KTsKbGV0IGs9VTZDKG4sRClbdl0uSUI7Vz1XLmZpbHRlcihoPT4hIWgmJiEhaC52aWRlbyYmaC5JQj09PWspfX1yZXR1cm4gV307Ck9laT1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD0wO0QrMTxuLlgubGVuZ3RoJiZuLlhbRF0udmlkZW8ucXVhbGl0eT09PSJ0aW55IjspRCsrO3ZhciBiPU5XKG4uSWcpL24ucG9saWN5Lks7cmV0dXJuIE1xKG4sVy5pbmZvKStNcShuLG4uWFtEXSk+Yn07CkFrTT1mdW5jdGlvbihuLFcsRCl7aWYoVy5pbmZvLklCPT09ImYifHxuLlRDLmluY2x1ZGVzKGN3KFcsbi5LdS56VykpKXJldHVybiBXO2ZvcihsZXQgYj0wO2I8RC5sZW5ndGg7YisrKXtsZXQgdj1uLkt1Lk5bRFtiXS5pZF07aWYoIW4uVEMuaW5jbHVkZXMoY3codixuLkt1LnpXKSkpY29udGludWU7bGV0IGs9Vy5pbmZvLklCLGg9di5pbmZvLklCO2lmKGs9PT1ofHxWVCgpKXtpZihXLmluZm8udmlkZW8/Vy5pbmZvLkohPT12LmluZm8uSjpXLmluZm8ua1o/LmlkIT09di5pbmZvLmtaPy5pZHx8YXkoVy5pbmZvKSE9PWF5KHYuaW5mbyl8fFZFKFcuaW5mbykhPT1WRSh2LmluZm8pKXJldHVybiBXNihuLHttaXNtYXRjaDoieHRhZyIsZjpXLmluZm8uaWQsdDp2LmluZm8uaWR9KSxXO1c2KG4se2Y6Vy5pbmZvLml0YWcsdDp2LmluZm8uaXRhZ30pO24uUyQ9ITA7cmV0dXJuIHZ9VzYobix7bWlzbWF0Y2g6ImVmZmljaWVudCIsZmM6ayx0YzpofSl9VzYobix7bWlzbWF0Y2g6InVuc2VsZWN0YWJsZSIsCmZtdHM6bi5UQy5qb2luKCIuIil9KTtyZXR1cm4gV307Clc2PWZ1bmN0aW9uKG4sVyl7bi5wb2xpY3kuRUQ/bi5sb2FkZXIuaGFuZGxlRXJyb3IoIm9uZXNpZS5mbXQubWlzbWF0Y2giLFcsMCk6bi5sb2FkZXIuVSgib21iaWZhIixXKX07Cnlrcj1mdW5jdGlvbihuLFcpe249cWMobi5LdS5OLEQ9PkQuaW5mby5pdGFnPT09Vyk7CmlmKCFuKXRocm93IEVycm9yKCJJdGFnICIrVysiIGZyb20gc2VydmVyIG5vdCBrbm93bi4iKTtyZXR1cm4gbn07CkVqWj1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLk4ucmVhc29uPT09Im0ifHxuLk4ucmVhc29uPT09InMiKXJldHVybiBXO2lmKEl0aShuLkt1KSl7Zm9yKGxldCBEPU1hdGgubWF4KDAsbi52aWRlb0luZGV4LTIpO0Q8bi52aWRlb0luZGV4JiZEPG4uWC5sZW5ndGg7RCsrKVcucHVzaChuLlhbRF0uaXRhZyk7Vy5yZXZlcnNlKCl9cmV0dXJuIFd9OwppZWk9ZnVuY3Rpb24obixXKXtuLkRrKCJpc21wX3AiKTtuLko9V307CnU5VT1mdW5jdGlvbihuKXtuLk4mJihuLk4uZGlzcG9zZSgpLG4uRGsoImlzbXBfZCIpKX07Cm9qdz1mdW5jdGlvbih7dEk6bj0hMSxzSjpXPSExLGU0OkQ9ITF9PXt9KXtyZXR1cm4gbj9EPzM6MjpXPy0xOjF9OwpEZD1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W10sdj1uLnRyYWNrLlFFO2lmKHYpe3Y9di5aRigpO2Zvcih2YXIgaz0wO2s8di5sZW5ndGg7aysrKWIucHVzaChNYXRoLnJvdW5kKHYuc3RhcnQoaykqMUUzKSksYi5wdXNoKE1hdGgucm91bmQodi5lbmQoaykqMUUzKSl9dj0xO2s9Yi5sZW5ndGg7aWYoaz09PW4uYnVmZmVyZWQubGVuZ3RoKXtmb3IodmFyIGg9MDtoPD1rJiZiW2hdPT09bi5idWZmZXJlZFtoXTtoKyspO2g+az92PTA6YltoXT5uLmJ1ZmZlcmVkW2hdJiYoaD09PWstMT92PTI6aD09PWstMiYmYltoKzFdPm4uYnVmZmVyZWRbaCsxXSYmKHY9MykpfW4uTi5hZGQoVzw8M3woRCYmNCl8dik7Vz1NYXRoLmNlaWwobi50cmFjay5sNSgpKjFFMyk7bi5OLmFkZChXLW4uaik7bi5qPVc7aWYodj09PTEpZm9yKG4uTi5hZGQoayksVz0wLGg9MDtoPGs7aCsrKW4uTi5hZGQoYltoXS1XKSxXPWJbaF07dj09PTMmJm4uTi5hZGQoYltrLTJdLW4uYnVmZmVyZWRbay0yXSk7dj49MiYmbi5OLmFkZChiW2stCjFdLW4uYnVmZmVyZWRbay0xXSk7RCYmbi5OLmFkZChEKTtuLmJ1ZmZlcmVkPWJ9OwpUN2I9ZnVuY3Rpb24obixXLEQsYix2KXtpZighYi5hWilyZXR1cm4gRC5sZW5ndGg9PT0wP0QucHVzaChiLmNsb25lKCkpOihuPShXPUQucG9wKCkpP2Q2cihuLFcsYik6bnVsbCk/RC5wdXNoKG4pOkQucHVzaChiLmNsb25lKCkpLHY7KEQ9KEQ9RC5wb3AoKSk/ZDZyKG4sRCxiKTpudWxsKXx8KEQ9Yik7aWYoRC5OKXJldHVybiBuLmxvZ2dlciYmbi5sb2dnZXIoe2luY29tcGxldGVTZWdtZW50OkQuZ2EoKX0pLHY7dmFyIHtmb3JtYXRJZDprLGokOmgsc3RhcnRUaW1lTXM6eCxjbGlwSWQ6TCxyOTplfT17Zm9ybWF0SWQ6Zy5WZihELlBKLmluZm8sbi5LdS56VyksaiQ6RC5qJCtuLlgsc3RhcnRUaW1lTXM6RC5zZWdtZW50U3RhcnRUaW1lKjFFMyxjbGlwSWQ6RC5jbGlwSWQscjk6RC5XKjFFM307Yj17Y2xpcElkOkwsZm9ybWF0SWQ6ayxzdGFydFRpbWVNczp4LGR1cmF0aW9uTXM6ZSxBQzpoLGk5Omh9O3Y9ejdVKFcsYi5zdGFydFRpbWVNcyk7RD12Pj0wP1dbdl06bnVsbDt2YXIgRzsKaWYoRz1EKXtHPWI7dmFyIHI9dixOPUQuc3RhcnRUaW1lTXMrRC5kdXJhdGlvbk1zLEg9Ry5zdGFydFRpbWVNcytHLmR1cmF0aW9uTXM7aWYoRy5zdGFydFRpbWVNcy1OPm4uTilHPSExO2Vsc2UgaWYobFFoKG4sRC5mb3JtYXRJZCxHLmZvcm1hdElkKSlELmR1cmF0aW9uTXM9TWF0aC5tYXgoTixIKS1ELnN0YXJ0VGltZU1zLEQuaTk9TWF0aC5tYXgoRC5pOSxHLmk5KSxHPSEwO2Vsc2UgaWYoTWF0aC5hYnMoRC5zdGFydFRpbWVNcy1HLnN0YXJ0VGltZU1zKTw9bi5OKWlmKEQuZHVyYXRpb25Ncz5HLmR1cmF0aW9uTXMrbi5OKXtyPUQuZm9ybWF0SWQ7dmFyIEE9RC5BQyx5PUQuaTk7RC5mb3JtYXRJZD1HLmZvcm1hdElkO0QuZHVyYXRpb25Ncz1HLmR1cmF0aW9uTXM7RC5BQz1HLkFDO0QuaTk9Ry5pOTtHLmZvcm1hdElkPXI7Ry5zdGFydFRpbWVNcz1IO0cuZHVyYXRpb25Ncz1OLUg7Ry5BQz1BO0cuaTk9eTtHPSExfWVsc2UgRC5mb3JtYXRJZD1HLmZvcm1hdElkLEc9ITA7ZWxzZSBOPgpHLnN0YXJ0VGltZU1zJiYoTj5IJiYoVy5zcGxpY2UocisxLDAse2Zvcm1hdElkOkQuZm9ybWF0SWQsc3RhcnRUaW1lTXM6SCxkdXJhdGlvbk1zOk4tSCxBQzpHLmk5KzEsaTk6RC5pOX0pLG4ubG9nZ2VyJiZuLmxvZ2dlcih7c3BsaXRPbGRTdGFydDpELnN0YXJ0VGltZU1zPy50b0ZpeGVkKDMpLHNwbGl0T2xkRW5kOk4/LnRvRml4ZWQoMyksc3BsaXROZXdTdGFydDpHLnN0YXJ0VGltZU1zPy50b0ZpeGVkKDMpLHNwbGl0TmV3RW5kOkg/LnRvRml4ZWQoMyl9KSksRC5kdXJhdGlvbk1zPUcuc3RhcnRUaW1lTXMtRC5zdGFydFRpbWVNcyxELmk5PUcuQUMtMSksRz0hMX1HP2I9RDoodis9MSxXLnNwbGljZSh2LDAsYikpO0Q9MDtmb3IoRz12KzE7RzxXLmxlbmd0aDtHKyspe049bjtIPVdbR107cj1iO0E9SC5zdGFydFRpbWVNcytILmR1cmF0aW9uTXM7eT1yLnN0YXJ0VGltZU1zK3IuZHVyYXRpb25Nczt5Pj1BK04uTj9OPSEwOnkrTi5OPEguc3RhcnRUaW1lTXM/Tj0hMTpsUWgoTixILmZvcm1hdElkLApyLmZvcm1hdElkKT8oci5kdXJhdGlvbk1zPUEtci5zdGFydFRpbWVNcyxyLmk5PUguaTksTj0hMCk6KEguc3RhcnRUaW1lTXM9eSxILkFDPXIuaTkrMSxOPSExKTtpZighTilicmVhaztEKyt9RCYmVy5zcGxpY2UodisxLEQpO3JldHVybiB2fTsKZDZyPWZ1bmN0aW9uKG4sVyxEKXtpZighYlQoVyxEKXx8Vy5hWilyZXR1cm4gbnVsbDtQXyhXLEQsbi5wb2xpY3kuZUspO3JldHVybiBXfTsKejdVPWZ1bmN0aW9uKG4sVyl7bj1nLlc0KG4se3N0YXJ0VGltZU1zOld9LChELGIpPT5ELnN0YXJ0VGltZU1zLWIuc3RhcnRUaW1lTXMpOwpyZXR1cm4gbj49MD9uOi1uLTJ9OwpqU1o9ZnVuY3Rpb24obixXLEQpe2lmKG4ubG9nZ2VyKXt2YXIgYj1bXTtmb3IobGV0IHY9MDt2PFcubGVuZ3RoO3YrKyl7bGV0IGs9V1t2XTtrLkVqPy5zdGFydFRpY2tzJiZiLnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X3Bzc3QuJHtrLkVqPy5zdGFydFRpY2tzfV9wc2QuJHtrLkVqPy5sOH1gKTtiLnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X2UuJHtrLnN0YXJ0VGltZU1zK2suZHVyYXRpb25Nc31fZC4ke2suZHVyYXRpb25Nc31fc24uJHtrLkFDfV9lbi4ke2suaTl9YCl9bi5sb2dnZXIoe3A6YCR7RH1gLGJyOmIuam9pbigiOyIpfSl9fTsKYlM9ZnVuY3Rpb24obixXLEQ9ITEpe2lmKG4uUUUpe3ZhciBiPW4uUUUuWkYoKTtpZihiLmxlbmd0aCE9PTApe2lmKG4uVyYmVyl7dmFyIHY9bi5XLGs9di5YOyFCUihiLGspJiZ2Lks+MCYmKDAsZy5SKSgpLW4uSzw1RTMmJihuLmxvZ2dlciYmbi5sb2dnZXIoe2RlbmQ6di5nYSgpfSksYj1qRyhiLGssaysuMDEpKX12PVtdO2Zvcih2YXIgaD1rPTA7azxiLmxlbmd0aCYmaDxuLmVXLmxlbmd0aDspe3ZhciB4PWIuc3RhcnQoayk7bGV0IE49Yi5lbmQoayk7dmFyIEw9bi5lV1toXS5zdGFydFRpbWVNcy8xRTM7bGV0IEg9KG4uZVdbaF0uc3RhcnRUaW1lTXMrbi5lV1toXS5kdXJhdGlvbk1zKS8xRTM7aWYoTDw9TiYmSD49eCl7bGV0IEE9ey4uLm4uZVdbaF19O3ZhciBlPW4uS3UuSi5nZXQoTWsobi5lV1toXS5mb3JtYXRJZCkpLEc9TWF0aC5tYXgoTCx4KTt4PWUuaW5kZXguUjMoRytuLk4vMUUzKTtMPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHgpO3ZhciByPXgrICsoTWF0aC5hYnMoTC1HKT4Kbi5OLzFFMyk7Rz1yK24uWDtyPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHIpKjFFMztoIT09bi5KfHxXPyhBLkFDPUcsQS5zdGFydFRpbWVNcz1yKToobi5sb2dnZXImJm4ubG9nZ2VyKHtwRXZpY3Q6IjEiLG9nOkEuc3RhcnRUaW1lTXMsYWRqOkwqMUUzfSksQS5BQz14K24uWCxBLnN0YXJ0VGltZU1zPUwqMUUzKTt4PW4uVz8uV3x8MTE7IUQmJmg9PT1uLkomJk48SCYmSC1OPD14KjEuMDEmJiEobi5wb2xpY3kuU3cmJm4uUUUmJm4uUUUueXUoKSkmJihOPUgpO3g9TWF0aC5taW4oSCxOKTtMPWUuaW5kZXguUjMoeC1uLk4vMUUzKTtHPWUuaW5kZXguakUoTCk7TC09KyhNYXRoLmFicyhHLXgpPm4uTi8xRTMpO3g9TCtuLlg7ZT1lLmluZGV4LmpFKEwpKjFFMztBLmk5PXg7QS5kdXJhdGlvbk1zPWUtQS5zdGFydFRpbWVNcztBLkFDPD1BLmk5JiZ2LnB1c2goQSl9SDxOP2grPTE6ays9MX1uLmVXPXZ9fX07CkNDTT1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPW4uTTcubWFwKGs9PmsuY2xvbmUoKSk7Cm4uZVcuZm9yRWFjaChrPT57Vy5wdXNoKHsuLi5rfSl9KTsKdmFyIGI9bi5ELmYzKCksdj1uLko7Zm9yKGxldCBrIG9mIGIpdj1UN2IobixXLEQsayx2KTtXLmZvckVhY2goaz0+e2suc3RhcnRUaW1lTXMmJihrLnN0YXJ0VGltZU1zKz1uLnRpbWVzdGFtcE9mZnNldCoxRTMpfSk7CnJldHVybntlVzpXLE03OkR9fTsKbFFoPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gVy5pdGFnIT09RC5pdGFnfHxXLnh0YWdzIT09RC54dGFncz8hMTpuLkt1LnpXfHxXLmxtdD09PUQubG10fTsKdjY9ZnVuY3Rpb24obil7cmV0dXJue2Rvd25sb2FkZWRFbmRUaW1lOk1hdGgucm91bmQobi5kSD9uLmRILmo6MCksbWF4S25vd25FbmRUaW1lOk1hdGgucm91bmQobi5OLmluZGV4LmJRKCkpLGF2ZXJhZ2VCeXRlUmF0ZTpNYXRoLnJvdW5kKG4uTi5pbmZvLlhuKX19Owp4Qz1mdW5jdGlvbihuLFc9ITEpeyFXfHxuLmluZGV4UmFuZ2UmJm4uaW5pdFJhbmdlJiZuLmRIfHxrQyhuLG5ldyBoMCgiV29mZmxlOiBFeHBlY3QgaXNGaW5hbCB0byBhbHdheXMgaGF2ZSBpbmRleFJhbmdlIGFuZCBpbml0UmFuZ2UgYW5kIGxhc3RTbGljZSIpKTtXPXtsbXQ6bi5OLmluZm8ubGFzdE1vZGlmaWVkLGRvY2lkOm4ucG9saWN5LkosZm10aWQ6bi5OLmluZm8uaWQsdHlwZTpuLk4uaW5mby5taW1lVHlwZS5zcGxpdCgiOyIpWzBdLGNzejpuLmNodW5rU2l6ZSxjbGVuOm4uVypuLmNodW5rU2l6ZStuLkp9O24uY3J5cHRvJiYoVy5jaz1uLlksVy5jaXY9bi5LKTtXPSJsb2NhbDovL2xvY2FsaG9zdC92aWRlb3BsYXliYWNrPyIrZy5FdChXKTtXPXtpdGFnOituLk4uaW5mby5pdGFnLG1pbWVUeXBlOm4uTi5pbmZvLm1pbWVUeXBlLGJpdHJhdGU6bi5OLmluZm8uTnMqOCxsYXN0TW9kaWZpZWQ6U3RyaW5nKG4uTi5pbmZvLmxhc3RNb2RpZmllZCksaW5pdFJhbmdlOm4uaW5pdFJhbmdlPy5OKCksCmluZGV4UmFuZ2U6bi5pbmRleFJhbmdlPy5OKCksdXJsOld9O3ZhciBEPW4uTi5pbmZvLko7RCYmKFcueHRhZ3M9RCk7aWYoRD1uLk4uaW5mby52aWRlbylpZihXLnF1YWxpdHk9RC5xdWFsaXR5LFcucXVhbGl0eUxhYmVsPUQucXVhbGl0eUxhYmVsLFcud2lkdGg9RC53aWR0aCxXLmhlaWdodD1ELmhlaWdodCxEPUQuZnBzKVcuZnBzPUQ7aWYobj1uLk4uaW5mby5hdWRpbyl7aWYoRD1uLnNhbXBsZVJhdGUpVy5hdWRpb1NhbXBsZVJhdGU9U3RyaW5nKEQpO2lmKG49bi5udW1DaGFubmVscylXLmF1ZGlvQ2hhbm5lbHM9bn1yZXR1cm4gV307CkxyPWZ1bmN0aW9uKG4sVyxEPSExKXtXLnRoZW4oYj0+e24uTy5kZWxldGUoVyk7KER8fGI9PT00KSYmbi5WLnJlc29sdmUoYil9LGI9PntuLlYucmVqZWN0KGIpfSl9OwplcT1mdW5jdGlvbihuKXtyZXR1cm4hIW4uZEgmJm4uZEguVigpfTsKa0M9ZnVuY3Rpb24obixXKXtlJChuLnBvbGljeS5KKSE9PTQmJihnNihuLnBvbGljeS5KLDQpLGcuR3EoVyksbi5WLnJlamVjdChuZXcgaDAoVy5tZXNzYWdlKSkpfTsKQjdiPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MCxiPXRSKFcuSik7aWYobi5XPG4uWCl7RD1uLlgqbi5jaHVua1NpemUtKChXLmluZm8ucmFuZ2U/LnN0YXJ0fHwwKStXLmluZm8uTik7aWYoRD49Yi5sZW5ndGgpcmV0dXJuO2lmKEQ8MCl0aHJvdyBFcnJvcigiTWlzc2luZyBkYXRhIik7bi5XPW4uWDtuLko9MH1mb3IoO0Q8Yi5sZW5ndGg7KXt2YXIgdj1NYXRoLm1pbihiLmxlbmd0aC1ELG4uai5ieXRlTGVuZ3RoLW4uSik7bGV0IGs9bmV3IFVpbnQ4QXJyYXkoYi5idWZmZXIsYi5ieXRlT2Zmc2V0K0Qsdik7bi5qLnNldChrLG4uSik7bi5KKz12O0QrPXY7aWYobi5KPT09bi5qLmxlbmd0aCl7aWYoVy5pbmZvPT09bi5kSCYmZXEobikmJkQ9PT1iLmxlbmd0aClicmVhazt2PXY2KG4pO3Y9dHgobi5wb2xpY3kuSixuLk4uaW5mbyx4QyhuKSx2LG4ucG9saWN5LmJkLG4uVyxuLmosbi5jcnlwdG8pO24uTy5hZGQodik7THIobix2KTtuLnFOKCl8fCh2PXY2KG4pLG4uYmQoeEMobiksdiE9PXZvaWQgMD8KKHYuZG93bmxvYWRlZEVuZFRpbWV8fDApKnYuYXZlcmFnZUJ5dGVSYXRlOnYubWF4S25vd25FbmRUaW1lKnYuYXZlcmFnZUJ5dGVSYXRlLHYubWF4S25vd25FbmRUaW1lKnYuYXZlcmFnZUJ5dGVSYXRlKSk7bi5qPW5ldyBVaW50OEFycmF5KG4uY2h1bmtTaXplKTtuLko9MDtuLlcrPTF9fX07CndTVT1mdW5jdGlvbihuKXtpZihlcShuKSlpZihuLmRIJiZuLmluZGV4UmFuZ2UpaWYobi5KKXt2YXIgVz1uZXcgVWludDhBcnJheShuLmouYnVmZmVyLDAsbi5KKSxEPUYkeChuKSxiPW4ucG9saWN5Lko7UHJvbWlzZS5hbGwobi5PKS50aGVuKCgpPT57dmFyIHY9dHgoYixuLmRILlBKLmluZm8seEMobiwhMCksRCxuLnBvbGljeS5iZCxuLlcsVyxuLmNyeXB0byk7THIobix2LCEwKX0pfWVsc2Uga0MobixuZXcgaDAoIldvZmZsZTogRXhwZWN0IGFsd2F5cyByZS1tYXJrIGN1cnJlbnRDaHVua09mZnNldCBhdCBFT1MiKSk7CmVsc2Uga0MobixuZXcgaDAoIldvZmZsZTogRXhwZWN0IGF0IEVPUyB0byBhbHdheXMgaGF2ZSBsYXN0U2xpY2Ugb3IgaW5kZXhSYW5nZSIpKX07Cmd1PWZ1bmN0aW9uKG4sVyl7aWYoIWVxKG4pJiYhbi5xTigpKXtpZighKG4udHd8fChuLnR3PSEwLG4uWD4wKSkpe3ZhciBEPXY2KG4pO0Q9dHgobi5wb2xpY3kuSixuLk4uaW5mbyx4QyhuKSxELG4ucG9saWN5LmJkKTtMcihuLEQpfWlmKFcuaW5mby50eXBlPT09MSl7aWYobi5kSCl7a0MobixFcnJvcigiV29mZmxlOiBFeHBlY3QgSU5JVCBzbGljZXMgdG8gYWx3YXlzIHN0YXJ0IHVzIG9mZiIpKTtyZXR1cm59bi5pbml0UmFuZ2U9V18oMCxXLkoudG90YWxMZW5ndGgpfWVsc2UgaWYoVy5pbmZvLnR5cGU9PT0yKW4uZEgmJm4uZEgudHlwZT09PTF8fGtDKG4sRXJyb3IoIldvZmZsZTogSW5kZXggYmVmb3JlIGluaXQiKSksbi5pbmRleFJhbmdlPVdfKG4uaW5pdFJhbmdlLmVuZCsxLFcuSi50b3RhbExlbmd0aCk7ZWxzZSBpZihXLmluZm8udHlwZT09PTMpe2lmKCFuLmRIKXtrQyhuLEVycm9yKCJXb2ZmbGU6IEV4cGVjdCBNRURJQSBzbGljZXMgdG8gYWx3YXlzIGhhdmUgbGFzdFNsaWNlIikpOwpyZXR1cm59aWYobi5kSC50eXBlPT09MyYmIWJUKG4uZEgsVy5pbmZvKSYmKG4uRD1bXSxXLmluZm8uaiQhPT1nayhuLmRIKXx8Vy5pbmZvLk4hPT0wKSlyZXR1cm47aWYoVy5pbmZvLmFaKXtmb3IobGV0IGIgb2Ygbi5EKUI3YihuLGIpO24uRD1bXX1lbHNle24uRC5wdXNoKFcpO24uZEg9Vy5pbmZvO3JldHVybn19ZWxzZXtrQyhuLEVycm9yKCJXb2ZmbGU6IFVuZXhwZWN0ZWQgc2xpY2UgdHlwZSIpKTtyZXR1cm59bi5kSD1XLmluZm87QjdiKG4sVyk7d1NVKG4pfX07CkYkeD1mdW5jdGlvbihuKXtyZXR1cm57ZG93bmxvYWRlZEVuZFRpbWU6LTEsbWF4S25vd25FbmRUaW1lOk1hdGgucm91bmQobi5OLmluZGV4LmJRKCkpLGF2ZXJhZ2VCeXRlUmF0ZTpNYXRoLnJvdW5kKG4uTi5pbmZvLlhuKX19OwpNdlM9ZnVuY3Rpb24obil7bj1nLmVQKG4sMTg4NjYxNDM3Nik7Zm9yKGxldCBXIG9mIG4pO3JldHVybiBnLmlfKG4sVz0+b3IoVykpfTsKUjdVPWZ1bmN0aW9uKG4pe3ZhciBXPWcudV8obiwoYix2KT0+Yit2Lmxlbmd0aCwwKTsKVz1uZXcgVWludDhBcnJheShXKTt2YXIgRD0wO2ZvcihsZXQgYiBvZiBuKVcuc2V0KGIsRCksRCs9Yi5sZW5ndGg7cmV0dXJuIFd9OwpWdnQ9ZnVuY3Rpb24obil7YTp7dmFyIFc9bi5pbml0RGF0YTt0cnl7dmFyIEQ9MDtsZXQgdj1uZXcgRGF0YVZpZXcoVy5idWZmZXIpO2Zvcig7RDx2LmJ5dGVMZW5ndGgtODspe2xldCBrPXYuZ2V0VWludDMyKEQpO2lmKGs8PTEpYnJlYWs7aWYodi5nZXRVaW50MzIoRCs0KSE9PTE4ODY2MTQzNzYpe0QrPWs7Y29udGludWV9bGV0IGg9MzI7aWYodi5nZXRVaW50OChEKzgpPjApe2xldCBMPXYuZ2V0VWludDMyKEQrMjgpO2grPUwqMTYrNH1sZXQgeD12LmdldFVpbnQzMihEK2gtNCk7dHJ5e2xldCBMPVFTeChXLnN1YmFycmF5KEQraCxEK2greCkpO2lmKEwhPT1udWxsKXt2YXIgYj1MO2JyZWFrIGF9fWNhdGNoKEwpe31EKz1rfWI9bnVsbDticmVhayBhfWNhdGNoKHYpe2I9bnVsbDticmVhayBhfWI9dm9pZCAwfWlmKGIhPW51bGwpe1c9dTQoaVcoYiw3LHZvaWQgMCxmbikpO1c9PW51bGx8fG4ucUh8fChuLmNyeXB0b1BlcmlvZEluZGV4PVcpO1c9dTQoaVcoYiwxMCx2b2lkIDAsZm4pKTsKVyE9bnVsbCYmVz4wJiYhbi5xSCYmKG4uTj1XKTtmb3IobGV0IHYgb2YgZy5CSChiLDIsTUUsdm9pZCAwPT09RyQ/Mjo0KSliPW4uSixXPWIucHVzaCxEPVZsKHYpLEQ9Zy5FQShELDQpLFcuY2FsbChiLEQpfX07CmNraj1mdW5jdGlvbihuKXtyZXR1cm4gaXNOYU4obi5jcnlwdG9QZXJpb2RJbmRleCk/Zy5FQShuLmluaXREYXRhKTpgJHtuLmNyeXB0b1BlcmlvZEluZGV4fWB9OwpYMD1mdW5jdGlvbihuKXtpZihuLm9mZnNldD49bi5KLnRvdGFsTGVuZ3RoKXRocm93IEVycm9yKCk7cmV0dXJuIHJkKG4uSixuLm9mZnNldCsrKX07CmFRUz1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPVgwKG4pO2lmKEQ9PT0xKXtXPS0xO2ZvcihEPTA7RDw3O0QrKyl7dmFyIGI9WDAobik7Vz09PS0xJiZiIT09MjU1JiYoVz0wKTtXPi0xJiYoVz1XKjI1NitiKX1yZXR1cm4gV31iPTEyODtmb3IobGV0IHY9MDt2PDYmJmI+RDt2KyspRD1EKjI1NitYMChuKSxiKj0xMjg7cmV0dXJuIFc/RDpELWJ9OwpuZng9ZnVuY3Rpb24obil7dHJ5e2xldCBXPWFRUyhuLCEwKSxEPWFRUyhuLCExKTtyZXR1cm57aWQ6VyxzaXplOkR9fWNhdGNoKFcpe3JldHVybntpZDotMSxzaXplOi0xfX19OwpETjE9ZnVuY3Rpb24obil7Zm9yKHZhciBXPW5ldyBXeWoobiksRD0tMSxiPTAsdj0wOyFifHwhdjspe2xldCB7aWQ6ayxzaXplOmh9PW5meChXKTtpZihrPDApcmV0dXJuO2lmKGs9PT0xNzYpe2lmKGghPT0yKXJldHVybjtiPVcuTigpfWVsc2UgaWYoaz09PTE4Nil7aWYoaCE9PTIpcmV0dXJuO3Y9Vy5OKCl9az09PTM3NDY0ODQyNz9EPVcuTigpK2g6ayE9PTQwODEyNTU0MyYmayE9PTE3NCYmayE9PTIyNCYmVy5za2lwKGgpfVc9JE0obiwwLEQpO0Q9bmV3IERhdGFWaWV3KFcuYnVmZmVyKTtELnNldFVpbnQxNihiLDM4NDApO0Quc2V0VWludDE2KHYsMjE2MCk7Yj1uZXcgUzUoW1ddKTtlNShiLG4pO3JldHVybiBifTsKYndDPWZ1bmN0aW9uKCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoMTY0RTQpO2ZvcihsZXQgVz0wO1c8bi5sZW5ndGg7Vys9NjU1MzYpY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuLnN1YmFycmF5KFcsTWF0aC5taW4oVys2NTUzNixuLmxlbmd0aCkpKTtuZXcgUzUoW25dKX07CnEyPWZ1bmN0aW9uKG4pe24uYm4/LmRpc3Bvc2UoKTtuLmJuPW51bGx9OwpHWj1mdW5jdGlvbihuLFcpe1c9e3JzdDRkaXNjOlcsY2Q6bi5UOC50b0ZpeGVkKDMpLHNxOm4ubTE/bi5tMS5qJDotMX07bi5acT1OYU47bi5UOD0wO24uc0w9LTE7bi5tMT1udWxsO24uaWg9TmFOO24uWXA9TmFOO24uU0Y9bnVsbDtuLmxvYWRlci5VKCJtZHN0bSIsVyl9Owp0MD1mdW5jdGlvbihuKXtuLmJSPW51bGw7bi5FZz0tMTtuLlZwPTA7bi5qaz1udWxsO24uTDE9TmFOO24uWUU9MDtuLkwyPW51bGx9OwokQz1mdW5jdGlvbihuLFcpe2lmKFcuaW5mby5hWil7bi5JOT1XLmluZm87aWYobi5qayl7dmFyIEQ9bi5qayxiPXZmdChuLCExKTtEPWtkVShEKTtuLmxvYWRlci5SMChuLlBKLGIsRCk7bi5wb2xpY3kuZUsmJlpKKFcuaW5mbyxiKTtuLkwyfHxuLnBvbGljeS5lVnx8bi5WaSgpO24uTDI9bnVsbH10MChuKX1uLmJuJiZndShuLmJuLFcpO2lmKGI9bi5XeCgpKWlmKGI9Yi5qKFcsbi5wb2xpY3kuQW0sbi5wb2xpY3kuZkIpKXtuLlZ3LnBvcCgpO24uVncucHVzaChiKTtyZXR1cm59bi5Wdy5wdXNoKFcpfTsKUUV3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5XUihXKTtpZihaTyhXLmluZm8uUEouaW5mbykmJlcuaW5mby5QSi5pbmZvLnZpZGVvLnByaW1hcmllcz09PSJidDIwMjAiKXt2YXIgYj1uZXcgdFkoRCk7JHgoYixbNDA4MTI1NTQzLDM3NDY0ODQyNywxNzQsMjI0LDIxOTM2LDIxOTM3XSkmJihiPWIuc3RhcnQrYi5wb3MsRC5nZXRVaW50OChiKT09PTEyOSYmRC5nZXRVaW50OChiKzEpPT09MSYmRC5zZXRVaW50OChiKzEsOSkpfWI9Vy5pbmZvLlBKLmluZm87Yi5YKCkmJiFaTyhiKSYmKGI9Zy5XUihXKSwobmV3IHRZKGIpKS5PSigpLFl4KFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyMjRdLDIxOTM2LGIpKTtXLmluZm8uUEouaW5mby5mWSgpJiZRZihXLmluZm8uUEosRCk7Vy5pbmZvLlBKLmluZm8ucUgoKSYmVy5pbmZvLmZZKCkmJihEPWcuV1IoVyksKG5ldyB0WShEKSkuT0ooKSxZeChbNDA4MTI1NTQzLDM3NDY0ODQyNywxNzQsMjI0XSwzMDMyMCxEKSYmWXgoWzQwODEyNTU0MywzNzQ2NDg0MjcsCjE3NCwyMjRdLDIxNDMyLEQpKTtpZihuLnBvbGljeS54MCYmVy5pbmZvLlBKLmluZm8ucUgoKSl7Yj1nLldSKFcpO3ZhciB2PW5ldyB0WShiKTtpZigkeCh2LFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyOTYzN10pKXtEPU5rKHYsITApO3Y9di5zdGFydCt2LnBvcztmb3IodmFyIGs9MDtrPEQtMTtrKyspYi5zZXRVaW50OCh2K2ssMCk7Yi5zZXRVaW50OCh2K0QtMSwxKX19aWYobi5lUygpJiZnLlJCKFcuaW5mby5QSi5pbmZvKSl7RD1nLldSKFcpO2I9Zy5ucyhELDAsMTcwMTYwNjI2MCk7RD1nLm5zKEQsMCwxODM2NDc2NTE2KTtpZihiJiZEKXtiLnNraXAoMik7dmFyIGg9VUQoYik7az1FRChiKTtsZXQgeD1bXTt2PVtdO2xldCBMPVtdLGU9W107aWYoaClmb3IoaD0wO2g8azsrK2gpeC5wdXNoKGkzKGIpKSx2LnB1c2goaTMoYikpLEwucHVzaChVRChiKSksZS5wdXNoKFVEKGIpKTtlbHNlIGZvcihoPTA7aDxrOysraCl4LnB1c2goeUwoYikpLHYucHVzaCh5TChiKSksTC5wdXNoKFVEKGIpKSwKZS5wdXNoKFVEKGIpKTtiPXg7RD1nLmJMKEQpO0Q9bmV3IFJlaCh2WzBdL0QsYlswXS9EKX1lbHNlIEQ9bnVsbDtpZih2PUQpe2lmKGcuUkIoVy5pbmZvLlBKLmluZm8pKWZvcihEPWcuV1IoVyksaz1nLm5zKEQsMCwxNzAxMDgyMjI3KTtrOyliPWssYi50eXBlPTE5MzY0MTkxODQsYi5kYXRhLnNldFVpbnQzMihiLm9mZnNldCs0LDE5MzY0MTkxODQpLGs9Zy5ucyhELGsub2Zmc2V0K2suc2l6ZSwxNzAxMDgyMjI3KTtuLmYwPSEwO1cuaW5mby5QSi5WPXZ9fVcuaW5mby5QSi5XKCl8fFcuaW5mby5QSi5KfHxXLmluZm8uUEouaW5kZXhSYW5nZXx8RE8oVyl9OwpWSHg9ZnVuY3Rpb24obixXKXtpZihuLmlzRHJtKCkpe2lmKFcuaW5mby5QSi5pbmZvLnFIKCkpe3ZhciBEPW5ldyB0WShnLldSKFcpKTtpZigkeChELFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyODAzMiwyNTE1MiwyMDUzMywxODQwMl0pKXt2YXIgYj1OayhELCEwKTtEPWIhPT0xNj9udWxsOlNQKEQsYil9ZWxzZSBEPW51bGw7Yj0id2VibSJ9ZWxzZSBXLmluZm8uTz1NdlMoZy5XUihXKSksRD1SN1UoVy5pbmZvLk8pLGI9ImNlbmMiO0QmJkQubGVuZ3RoJiYoRD1uZXcgcnUoRCxiKSxuLnBvbGljeS5QSCYmZy5SQihXLmluZm8uUEouaW5mbykmJihiPVpLWihnLldSKFcpKSkmJihELlVXPWIpLEQucUg9Vy5pbmZvLlBKLmluZm8ucUgoKSxXLk4mJlcuTi5jcnlwdG9QZXJpb2RJbmRleCYmKEQuY3J5cHRvUGVyaW9kSW5kZXg9Vy5OLmNyeXB0b1BlcmlvZEluZGV4KSxXLk4mJlcuTi5YJiYoRC5OPVcuTi5YKSxuLmxvYWRlci5XbihEKSl9fTsKY3JoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5iUjtXPU1hdGgubWluKFcsRC5KLnRvdGFsTGVuZ3RoKTtpZihXPT09RC5KLnRvdGFsTGVuZ3RoKXJldHVybiBuLmJSPW51bGwsRDtEPXZSKEQsVyk7bi5iUj1EWzFdO3JldHVybiBEWzBdfTsKRFgyPWZ1bmN0aW9uKG4sVyxEKXtpZihELmluZm8uUEouVygpKXtpZihuLmYwJiZhRXcoRCkpe1c9Zy5XUihEKTt2YXIgYj1nLm5zKFcsMCwxOTUzNjU4MjIyKTtpZihiKXtiLnNraXAoMSk7dmFyIHY9WmMoYik8PDE2fFVEKGIpLGs9diYxLGg9diY0O2lmKHYmMjU2KXtXPXYmNTEyO3ZhciB4PXYmMTAyNDt2Jj0yMDQ4O3ZhciBMPUVEKGIpO0w8Mnx8KGsmJmIuc2tpcCg0KSxoJiZiLnNraXAoNCksaz1FRChiKSxiLnNraXAoKEwtMSkqKDQrKFc/NDowKSsoeD80OjApKyh2PzQ6MCkpLTQpLGIuZGF0YS5zZXRVaW50MzIoYi5vZmZzZXQrYi5OLGspKX19fWlmKFc9bi5xOSYmbi5xOS5PNygpKWlmKFc9RC5pbmZvLmZZKCkpVz1YWihEKSx4PW4ucTksczQ/KGI9MS9XLFc9bi5WeihXKT49eC5WeigpK2IpOlc9bi5nZXREdXJhdGlvbigpPj14LmdldER1cmF0aW9uKCksVz0hVztXJiZhRXcoRCkmJihXPW4ucTksczQ/KGI9WFooRCkseD0xL2IsYj1uLlZ6KGIpLFc9Vy5WeigpK3gtYik6Vz1XLmdldER1cmF0aW9uKCktCm4uZ2V0RHVyYXRpb24oKSxXPTErVy9ELmluZm8uVyxXdyhnLldSKEQpLFcpKX1lbHNle2I9ITE7bi5qa3x8KEdpKEQpLEQuTiYmKG4uams9RC5OLGI9ITAsaz1ELmluZm8saD1ELk4uc2VnbWVudE51bWJlcixrLlk9InVwZGF0ZVdpdGhFbXNnIixrLmokPWgsaz1ELk4say5WJiZuLlBKLnR3KCFrLlYsImVtc2ciKSxrPUQuaW5mby5QSi5pbmZvLGg9Zy5XUihEKSxnLlJCKGspP0dqKGgsMTcwMTY3MTc4Myk6ay5xSCgpJiZZeChbNDA4MTI1NTQzXSwzMDc1NDQ5MzUsaCkpKTthOmlmKChrPWVHKEQsbi5wb2xpY3kuUFgpKSYmcSQoRCkpaD1uVHcobixEKSxuLlQ4Kz1oLGstPWgsbi5ZRSs9ayxuLlpxPW4ucG9saWN5LlNWP24uWnErazpOYU47ZWxzZXtpZihuLnBvbGljeS5Zcil7aWYoaD1MPW4ubG9hZGVyLnFhKGcua1goRCksMSksbi5acT49MCYmRC5pbmZvLnR5cGUhPT02KXtpZihuLnBvbGljeS5TViYmaXNOYU4obi5ZcCkpe2cuR3EobmV3IGcuUXgoIk1pc3NpbmcgZHVyYXRpb24gd2hpbGUgcHJvY2Vzc2luZyBwcmV2aW91cyBjaHVuayIsCkQuaW5mby5nYSgpKSk7bi5sb2FkZXIuaXNPZmZsaW5lKCkmJiFuLnBvbGljeS5UUXx8V2paKG4sRCxoKTtHWihuLCJtIik7YnJlYWsgYX12PUwtbi5acTt2YXIgZT12LW4uVDg7bGV0IEc9RC5pbmZvLmokLHI9bi5tMT9uLm0xLmokOi0xLE49bi5paCxIPW4uWXAsQT1uLnBvbGljeS5RJCYmdj5uLnBvbGljeS5RJCx5PU1hdGguYWJzKGUpPjEwLFQ9TWF0aC5hYnMobi5acS1oKTwxRS03O2lmKE1hdGguYWJzKGUpPjFFLTQpe24uSVMrPTE7bGV0IHo9bi5qaz8uSigpO2U9e2F1ZGlvOmAkeytuLmVTKCl9YCxzcTpHLnRvRml4ZWQoKSxzbGljZVN0YXJ0OkwsbGFzdFNxOnIudG9GaXhlZCgpLGxhc3RTbGljZVN0YXJ0Ok4sbGFzdFNsaWNlRHVyYXRpb246SCx0b3RhbERyaWZ0Oih2KjFFMykudG9GaXhlZCgpLHNlZ0RyaWZ0OihlKjFFMykudG9GaXhlZCgpLHNraXBSZXdyaXRlOmAkeysoQXx8eSl9YH07ej8ubGVuZ3RoJiYoZS5hZENwbj16WzBdKTtuLmxvYWRlci5oYW5kbGVFcnJvcigicW9lLmF2c3luYyIsCmUpO24uc0w9R31BfHx5fHxUfHwoaD1uLlpxKTtMPW5UdyhuLEQsTCk7ay09TDtuLlQ4PXYrTH19ZWxzZSBoPWlzTmFOKG4uWnEpP0QuaW5mby5zZWdtZW50U3RhcnRUaW1lOm4uWnE7V2paKG4sRCxoKSYmKG4uWUUrPWssbi5acT1oK2ssbi5wb2xpY3kuWmgmJm4uSVM+PW4ucG9saWN5LlpoJiYobi5JUz0wLG4ubG9hZGVyLkdtKHtyZXNldEZvclJld3JpdGVzOiJjb3VudCJ9KSkpfW4ubTE9RC5pbmZvO24uWXA9TE0oRCk7RC5XPj0wJiYobi5paD1ELlcpO2lmKGImJm4uamspe2I9dmZ0KG4sITApO1pKKEQuaW5mbyxiKTtuLmJSJiZaSihuLmJSLmluZm8sYik7Zm9yKHggb2YgVyluLnBvbGljeS5qJiZ4LmokIT09bi5qaz8uc2VnbWVudE51bWJlcnx8WkooeCxiKTsoRC5pbmZvLmFafHxuLmJSJiZuLmJSLmluZm8uYVopJiZELmluZm8udHlwZSE9PTZ8fChuLkwyPWIsbi5wb2xpY3kuVTE/KFc9a2RVKG4uamspLG4ubG9hZGVyLlIwKG4uUEosYixXKSk6KFc9bi5sb2FkZXIsVy5LdS5pc01hbmlmZXN0bGVzcyYmCk4yKFcsYixudWxsLCEhbi5QSi5pbmZvLnZpZGVvKSksbi5wb2xpY3kuZVZ8fG4uVmkoKSl9fVZIeChuLEQpO24udGltZXN0YW1wT2Zmc2V0JiZ4WChELG4udGltZXN0YW1wT2Zmc2V0KX07CnZmdD1mdW5jdGlvbihuLFcpe3ZhciBELGI9bi5qaztpZihEPVRfKGIpKUQuc3RhcnRTZWNzKz1uLkwxO3ZhciB2PW4uTDEsaz0wO24uUEogaW5zdGFuY2VvZiBkdCYmKGs9bi5QSi5yYik7cmV0dXJuIG5ldyBSNChiLnNlZ21lbnROdW1iZXIsdixXP2s6bi5ZRSxiLmluZ2VzdGlvblRpbWUsYHNxLyR7Yi5zZWdtZW50TnVtYmVyfWAsdm9pZCAwLHZvaWQgMCxXLEQsbi5wb2xpY3kueUg/Yi5OOm51bGwpfTsKa2RVPWZ1bmN0aW9uKG4pe3JldHVybiBuLmZLKCk/bmV3IHByKENnKG4pLG4uSigpLEJBKG4pLEZwKG4pLHdGKG4pLGcuTWQobiksZy5ScihuKSk6bnVsbH07Cm5Udz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9MDtpZihXLmluZm8uUEouaW5mby5xSCgpJiYhcSQoVykpcmV0dXJuIDA7aWYobi5xOSYmIW4uZVMoKSl7bGV0IGU9MDtEJiZnLlJCKFcuaW5mby5QSi5pbmZvKT9lPUQtbi5acTpXLmluZm8uUEouaW5mby5xSCgpJiYoZT1uLlQ4KTt2YXIgdj1XLmluZm8uaiQ7RD1lRyhXLG4ucG9saWN5LlBYKTtsZXQge1Y1OkcsVGo6cn09bi5xOS5iNCgpO3Y9dj09PUd8fHY+RyYmdj5uLnNMO3ZhciBrPU1hdGguYWJzKHItZSk+LjAyO2lmKG4ucG9saWN5LlJ0KXt2YXIgaD1NYXRoLmFicyhyLWUpO2lmKHYmJmg+bi5wb2xpY3kuUnQmJmg8MTApcmV0dXJuIG4ubG9hZGVyLkdtKHthdkRlc3luYzoiY291bnQifSksMH1pZihXLmluZm8uUEouaW5mby5xSCgpJiZuLnBvbGljeS5WZilyZXR1cm4gMDtpZih2JiZrKXtiPU1hdGgubWF4KC45NSxNYXRoLm1pbigxLjA1LChELShyLWUpKS9EKSk7aWYoZy5SQihXLmluZm8uUEouaW5mbykpV3coZy5XUihXKSxiKTsKZWxzZSBpZihXLmluZm8uUEouaW5mby5xSCgpJiYoaz1lLXIsIWcuUkIoVy5pbmZvLlBKLmluZm8pJiYoVy5pbmZvLlBKLmluZm8ucUgoKSxiPW5ldyB0WShnLldSKFcpKSx2PVcuVj9iOm5ldyB0WShuZXcgRGF0YVZpZXcoVy5pbmZvLlBKLkouYnVmZmVyKSksZUcoVywhMCkpKSl7dmFyIHg9ayoxRTMsTD1Lcyh2KTt2PWIucG9zO2IucG9zPTA7aWYoYi5OLmdldFVpbnQ4KGIucG9zKT09PTE2MHx8UHcoYikpaWYoc1koYiwxNjApKWlmKE5rKGIsITApLHNZKGIsMTU1KSl7aWYoaz1iLnBvcyxoPU5rKGIsITApLGIucG9zPWsseD14KjFFOS9MLEw9ZnMoYikseD1MK01hdGgubWF4KC1MKi43LE1hdGgubWluKEwseCkpLHg9TWF0aC5zaWduKHgpKk1hdGguZmxvb3IoTWF0aC5hYnMoeCkpLCEoTWF0aC5jZWlsKE1hdGgubG9nKHgpL01hdGgubG9nKDIpLzgpPmgpKXtiLnBvcz1rKzE7Zm9yKGs9aC0xO2s+PTA7ay0tKWIuTi5zZXRVaW50OChiLnBvcytrLHgmMjU1KSx4Pj4+PTg7Yi5wb3M9CnZ9fWVsc2UgYi5wb3M9djtlbHNlIGIucG9zPXY7ZWxzZSBiLnBvcz12fWI9ZUcoVyxuLnBvbGljeS5QWCk7Yj1ELWJ9YiYmVy5pbmZvLlBKLmluZm8ucUgoKSYmbi5sb2FkZXIuVSgid2VibUR1cmF0aW9uQWRqdXN0bWVudCIse2R1cmF0aW9uQWRqdXN0bWVudDpiLHZpZGVvRHJpZnQ6ZStiLGF1ZGlvRHJpZnQ6cn0pfXJldHVybiBifTsKV2paPWZ1bmN0aW9uKG4sVyxEKXtpZighaE0oVyxEKSlyZXR1cm4gVz1YeChXLmluZm8pLFcuc21zdD0iMSIsWUMobi5sb2FkZXIsV3x8e30pLCExO2lzTmFOKG4uTDEpJiYobi5MMT1EKTtyZXR1cm4hMH07CmFFdz1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmZvLlBKLlcoKSYmbi5pbmZvLmokPT09bi5pbmZvLlBKLmluZGV4LngkKCl9Owp2VFo9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwsZSl7dmFyIEc9Vy5leHBvcnRzLk1lZGlhU3RyZWFtX2dldEJhdGNoZWRTdHJlYW1FdmVudHMoRCk7aWYoRyl0cnl7dmFyIHI9Vy5tZW1vcnkuYnVmZmVyKEcsYio4OCk7bGV0IHk9bmV3IERhdGFWaWV3KHIuYnVmZmVyLHIuYnl0ZU9mZnNldCxiKjg4KSxUPVcubWVtb3J5LmhlYXAoKTtHPVtdO2ZvcihyPTA7cjxiO3IrKyl7bGV0IHo9bmV3IGIkQyh5LHIqODgsVyxUKTtHLnB1c2goe09mOnouT2YsYjM6ei5iMyxLOTp6Lks5LGx3OnoubHcsU2g6ei5TaCxnQzp6LmdDLHZXOnoudlcsR0s6ei5HSyxVVzp6LlVXLFckOnouVyQsZm9ybWF0SWQ6ei5mb3JtYXRJZCxyQzp6LnJDfSl9Yj12O2ZvcihsZXQgeiBvZiBHKXt6LmZvcm1hdElkJiZlJiYoYj1lKHouZm9ybWF0SWQpKTtsZXQgQz16Lk9mLFE9ei5iMyxWPXouSzksTHQ9ei5sdyx0aT16LlNoLEhaPXouZ0MsWjE9ei52VyxRaj16LkdLLE1pPXouVVcsTVU9ei5XJCxJQz16LmZvcm1hdElkLApJTT16LnJDO3N3aXRjaChIWil7Y2FzZSAxOmxldCBZbDt0cnl7bGV0IFVUPUpTT04ucGFyc2UoWjEpO1VUJiZ0eXBlb2YgVVQ9PT0ib2JqZWN0Ij9ZbD1VVDpZbD17cmVhc29uOlN0cmluZyhaMSl9fWNhdGNoKFVUKXtZbD17cmVhc29uOloxfX1ZQyhuLmxvYWRlcixZbCk7cmV0dXJuO2Nhc2UgMjpsZXQgajE7dHJ5e2xldCBVVD1KU09OLnBhcnNlKFoxKTtVVCYmdHlwZW9mIFVUPT09Im9iamVjdCI/ajE9VVQ6ajE9e3JlYXNvbjpTdHJpbmcoWjEpfX1jYXRjaChVVCl7ajE9e3JlYXNvbjpaMX19ajEuYXZEZXN5bmMhPT12b2lkIDA/bi5sb2FkZXIuR20oajEpOm4ubG9hZGVyLmhhbmRsZUVycm9yKCJxb2UuYXZzeW5jIixqMSk7YnJlYWs7Y2FzZSAzOmxldCBUej1uZXcgcnUoUWosWjEpO01pLmxlbmd0aD4wJiYoVHouVVc9TWkpO01VIT09NDI5NDk2NzI5NSYmKFR6LmNyeXB0b1BlcmlvZEluZGV4PU1VKTtRPj0wJiYoVHouTj1RKTtUei5xSD1iLmluZm8/LnFIKCk/PyExO24ubG9hZGVyLlduKFR6KTsKYnJlYWs7Y2FzZSA0OmxldCBmaD1wUihRaiksT0k9UUwoZmgpO2lmKE9JKXtsZXQgVVQ9bmV3IFg1KE9JLFoxKTtuLk49VVQ7VVQuViYmYi50dz8uKCFVVC5WLCJlbXNnIik7bGV0IFBLPVRfKFVUKTtQSyYmKFBLLnN0YXJ0U2Vjcys9QyxuLmxvYWRlci5NZShiLFBLLFVULnNlZ21lbnROdW1iZXIsVVQuZksoKSkpfWJyZWFrO2Nhc2UgNzpsZXQgcEs7dHJ5e2xldCBVVD1KU09OLnBhcnNlKFoxKTtVVCYmdHlwZW9mIFVUPT09Im9iamVjdCImJihwSz1VVCl9Y2F0Y2goVVQpe31pZihwSyYmcEsucmVzZXRGb3JSZXdyaXRlcyE9PXZvaWQgMCl7bi5sb2FkZXIuR20ocEspO2JyZWFrfWlmKFoxLnN0YXJ0c1dpdGgoImRpc2NvbnRpbnVpdHlfIikpe24ubG9hZGVyLlUoIm1kc3RtIix7cnN0NGRpc2M6WjEuc3Vic3RyaW5nKDE0KSxjZDpDLnRvRml4ZWQoMyksc3E6U3RyaW5nKElNKX0pO2JyZWFrfWxldCBPej1aMS5yZXBsYWNlKC9bXmEtekEtWjAtOTsuIV8tXS9nLCJfIik7bi5sb2FkZXIuVSgic2xpY2Vfbm90X2Z1bGx5X3Byb2Nlc3NlZCIsCnttc2c6T3p9KTticmVhaztjYXNlIDg6bGV0IEJXO3RyeXtCVz1KU09OLnBhcnNlKFoxKX1jYXRjaChVVCl7bi5sb2FkZXIuVSgid2FzbV9qc29uX3BhcnNlX2Vycm9yIix7ZXY6SFoudG9TdHJpbmcoKX0pO2NvbnRpbnVlfXgoQlcpO2IuTigpJiZrJiZaSChuLmxvYWRlci5LdSxiLG4uVyk7YnJlYWs7Y2FzZSA5OmxldCBZRTt0cnl7WUU9SlNPTi5wYXJzZShaMSl9Y2F0Y2goVVQpe24ubG9hZGVyLlUoIndhc21fanNvbl9wYXJzZV9lcnJvciIse2V2OkhaLnRvU3RyaW5nKCl9KTtjb250aW51ZX1MKFlFKTtiLk4oKSYmayYmWkgobi5sb2FkZXIuS3UsYixuLlcpO2JyZWFrO2Nhc2UgMTA6dj1aMTtuLlc9djtJQyYmZSYmKGI9ZShJQykpO2IuSj1RajtoPy5KKFFqLHYpO2IuTigpJiZrJiZaSChuLmxvYWRlci5LdSxiLHYpO2JyZWFrO2Nhc2UgMTE6Yi5WPW5ldyBSZWgodGksVik7YnJlYWs7Y2FzZSAxNDpsZXQgWmk9bmV3IFI0KElNLEMsVixMdCxgc3EvJHtJTX1gLHZvaWQgMCx2b2lkIDAsCiExLG4uSixuLk4/Lk4pO3Y9bnVsbDtuLk4mJm4uTi5mSygpJiYodj1uZXcgcHIoQ2cobi5OKSxuLk4uSigpLEJBKG4uTiksRnAobi5OKSx3RihuLk4pLGcuTWQobi5OKSxnLlJyKG4uTikpKTtuLmxvYWRlci5SMChiLFppLHYpO2JyZWFrO2Nhc2UgMTU6bGV0IFdJPU51bWJlcihaMSk7aXNOYU4oV0kpfHxuLmxvYWRlci5wWj8uKFdJKTticmVhaztjYXNlIDY6bGV0IERBPW5ldyBSNChJTSxDLFYsTHQsYHNxLyR7SU19YCx2b2lkIDAsdm9pZCAwLCEwLG4uSixuLk4/Lk4pO2lmKG4ucG9saWN5Py5VMT8/ITApdj1udWxsLG4uTiYmbi5OLmZLKCkmJih2PW5ldyBwcihDZyhuLk4pLG4uTi5KKCksQkEobi5OKSxGcChuLk4pLHdGKG4uTiksZy5NZChuLk4pLGcuUnIobi5OKSkpLG4ubG9hZGVyLlIwKGIsREEsdik7ZWxzZXt2YXIgTj1uLmxvYWRlcjtOLkt1LmlzTWFuaWZlc3RsZXNzJiZOMihOLERBLG51bGwsISFiLmluZm8udmlkZW8pfWJyZWFrO2Nhc2UgMTI6dmFyIEg9bi5sb2FkZXI7dj0KYjt2YXIgQT1uZXcgUjQoSU0sQyxWLEx0LGBzcS8ke0lNfWAsdm9pZCAwLHZvaWQgMCwhMCxuLkosbi5OPy5OKTtILkt1LmlzTWFuaWZlc3RsZXNzJiZUeChILkt1LEEuaiQsISF2LmluZm8udmlkZW8pO2JyZWFrO2Nhc2UgNTpsZXQgcFY7dHJ5e3BWPUpTT04ucGFyc2UoWjEpfWNhdGNoKFVUKXtuLmxvYWRlci5VKCJ3YXNtX2pzb25fcGFyc2VfZXJyb3IiLHtldjpIWi50b1N0cmluZygpfSk7Y29udGludWV9cFYuc3RhcnRTZWNzKz1DO24uSj1wVjtuLmxvYWRlci5NZShiLHBWLElNLG4uTj8uZksoKT8/ITEpO2JyZWFrO2Nhc2UgMTM6UWYoYixuZXcgRGF0YVZpZXcoUWouYnVmZmVyLFFqLmJ5dGVPZmZzZXQsUWouYnl0ZUxlbmd0aCkpO2JyZWFrO2RlZmF1bHQ6bi5sb2FkZXIuVSgid2FzbV91bmtub3duX2V2Iix7ZXY6SFoudG9TdHJpbmcoKX0pfX19ZmluYWxseXtXLmV4cG9ydHMuTWVkaWFTdHJlYW1fY2xlYXJQZW5kaW5nRXZlbnRzKEQpfWVsc2UgVy5leHBvcnRzLk1lZGlhU3RyZWFtX2NsZWFyUGVuZGluZ0V2ZW50cyhEKX07Ckg2PWZ1bmN0aW9uKG4pe24uVWwmJihuLlVsLmRpc3Bvc2UoKSxuLlVsPW51bGwpO24uU0s9dm9pZCAwO24uWFY9dm9pZCAwfTsKSjQ9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9V15uO3ZhciBMOyhufDIpPj0yNyYmbisyPDMzJiYoTD1iKHYsayxoKSk7aWYoISgobnw0KT4+NCkpZm9yKEQ9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dO0QtLTspYltJW3heNDM4NF1dKGJbSVt4XjQzODldXSgpKTtpZigobi0yfDU4KT49biYmKG4tOHwxNSk8bil7Zm9yKHZhciBlPXheNDY3NCxHPVtdOysrZS1HW0lbNV1dLSh4XjQ2NDIpOyl7c3dpdGNoKGUpe2Nhc2UgeF40Njk3OmU9eF40NjU0O2NvbnRpbnVlO2Nhc2UgeF40NzI5OmU9eF40Njc1O2JyZWFrO2Nhc2UgeF40Njc1OmUtPXheNDYyNDtjb250aW51ZTtjYXNlIHheNDY2NDplPXheNDcwNjtjb250aW51ZTtjYXNlIHheNDY1MjplPXheNDcwMX1HW0lbeF40NjI4XV0oU3RyaW5nW0lbeF40NjU2XV0oZSkpfUw9R31yZXR1cm4gTH07CmZyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5qXygpLGI9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0VHlwZShXKSx2PUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldFNlZ051bShXKSxrPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldFN0YXJ0VGltZShXKSxoPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldER1cmF0aW9uKFcpLHg9RC5leHBvcnRzLk1lZGlhU2xpY2VfaXNFbmRPZlNlZ21lbnQoVykhPT0wLEw9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0U2xpY2VPZmZzZXQoVyksZT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TG10KFcpLEc9RC5leHBvcnRzLk1lZGlhU2xpY2VfaXNGYXN0U2Vla2FibGUoVykhPT0wLHI9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Q2xpcElkKFcpLE49RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Q2xpcElkTGVuZ3RoKFcpLEg9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Rm9ybWF0SWQoVyksQT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRGb3JtYXRJZExlbmd0aChXKSwKeT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TWVkaWFTb3VyY2UoVyksVD1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRSZXF1ZXN0VG9rZW4oVyksej1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRSZXF1ZXN0VG9rZW5MZW5ndGgoVyksQz1ELm1lbW9yeS5oZWFwKCksUT0iIjtyJiZOPjAmJihRPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxyLE4pKS5yZXBsYWNlKC9cMC9nLCIiKSk7cj0iIjtIJiZBPjAmJihyPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxILEEpKS5yZXBsYWNlKC9cMC9nLCIiKSk7SD0iIjtUJiZ6PjAmJihIPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxULHopKS5yZXBsYWNlKC9cMC9nLCIiKSk7VD1yJiZuLkVlP24uRWUocik6bi5QSjtDPUQubWVtb3J5LmhlYXAoKTtBPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldERhdGEoVyk7ej1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRMZW5ndGgoVyk7Qz1uZXcgUzUoWyhuZXcgVWludDhBcnJheShDLEEseikpLnNsaWNlKCldKTtBPQpELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50Qnl0ZVJhbmdlU3RhcnQoVyk7RD1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TGVuZ3RoQnl0ZXMoVyk7Vz12b2lkIDA7RD4wJiZULlcoKSYmKFc9V18oQSxEKSk7aHx8dHlwZW9mIFQucmIhPT0ibnVtYmVyInx8KGg9VC5yYik7Yj1uZXcgcUkoYixULFcsIndhc20iLHYsayxoLEwseix4LGUsUSxHLHksSCk7eD1uZXcgYjgoYixDKTtpZihuLnBvbGljeS5Zcnx8bi5wb2xpY3kuUyQpYj0hIWIuTiYmdj09PW4ueHAseC5XPWI/bi5tOTprLHguWD1iP24uenI6aCxifHwobi54cD12LG4ubTk9eC5XLG4uenI9eC5YKTtyZXR1cm4geH07CnlrPWZ1bmN0aW9uKG4pe24uaj0hMDtuLlBEPSEwO24uWD0tMTtQdShuLEluZmluaXR5KX07Cm1pPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLkopSjAobixXKTtuLko9W107bi5OPW51bGx9OwpLdj1mdW5jdGlvbihuLFcsRD0hMSl7aWYobi5RRSl7bGV0IGI9bi5RRS5aRigpLHY9RlooYixXKSxrPU5hTixoPUkkKG4pO2gmJihrPUZaKGIsaC5QSi5pbmRleC5nZXRTdGFydFRpbWUoaC5qJCkpKTtpZih2PT09ayYmbi5OJiZuLk4uSiYma1F3KFNxKG4pLDApKXJldHVybiBXfW49QTAobixXLEQpO3JldHVybiBuPj0wP246TmFOfTsKUHU9ZnVuY3Rpb24obixXLEQpe24uUEouTigpO3ZhciBiPUEwKG4sVyk7aWYoYj49MClyZXR1cm4gYjtuLlY/LmNKKFcsRCk7Vz1NYXRoLm1pbihXLG4uVy5McygpKTtuLk49bi5wb2xpY3kudHc/bnVsbDpuLlBKLksoVykuQXdbMF07bWQobikmJihuLnBvbGljeS5YWSYmRD8uc2Vla1NvdXJjZT09PTYwfHxuLlFFJiZuLlFFLmFib3J0KCksbi5wb2xpY3kucG8mJm4uVj8uWSgpKTtuLlMkPTA7cmV0dXJuIG4uTj9uLk4uc2VnbWVudFN0YXJ0VGltZTpXfTsKaVk9ZnVuY3Rpb24obil7cmV0dXJuIG4uVy5XMigpfTsKS3I9ZnVuY3Rpb24obixXLEQ9ITEsYj0hMSl7VyYmczQmJm4uVy5CVyhXLml3KCkpO0R8fG4uVj8uVigpO24uUUU9VztuLlY/LnR3KG4uUUUsYil9OwpJJD1mdW5jdGlvbihuKXtyZXR1cm4gbi5wb2xpY3kuZkM/bi5WPy5iZCgpfHxudWxsOm4uUUUmJm4uUUUuWmcoKX07Cmhacj1mdW5jdGlvbihuKXt2YXIgVz17fTtmb3IobGV0IEQ9MDtEPG4uTy5sZW5ndGg7RCsrKVdbYHIke0R9YF09bi5PW0RdO3JldHVybiBXfTsKTzQ9ZnVuY3Rpb24obixXKXtpc05hTihuLlkpfHxuLlUoImFzd3IiLHtzcTpXLmluZm8uQXdbMF0uaiQsaWQ6Vy5pbmZvLkF3WzBdLlBKLmluZm8uaXRhZyx4dGFnOlcuaW5mby5Bd1swXS5QSi5pbmZvLkosZXA6RGF0ZS5ub3coKS1uLll9KTtuLkoucHVzaChXKTtuLk49Zy5VTShXLmluZm8uQXcpO24uTy5wdXNoKFcuZ2EoKSk7bi5PLmxlbmd0aD40JiZuLk8uc2hpZnQoKX07CnhYQz1mdW5jdGlvbihuLFcpe2lmKFcuUUEoKSl7bGV0IEQ9Vy54OSgpO2ZvcihsZXQgYiBvZiBEKW4ucG9saWN5LlcmJlcgaW5zdGFuY2VvZiBTbiYmbi5VKCJvbWJsc3MiLHtzOmIuaW5mby5nYSgpfSksbi5XZyhXLmluZm8uQXcsYixXLlh2KCkpfX07CkxqVT1mdW5jdGlvbihuKXtuLkoubGVuZ3RoP24uTj1nLlVNKGcuVU0obi5KKS5pbmZvLkF3KTpuLlcuUkMoKT9uLk49bi5XLld4KCkuaW5mbzpuLk49SSQobil9OwpQNj1mdW5jdGlvbihuLFcpe3ZhciBEPXtlVzpbXSxCaTpbXX07cmV0dXJuIG4uVj8uTyhXKT8/RH07CkEwPWZ1bmN0aW9uKG4sVyxEPSExKXtpZighbi5OfHwhbi5OLkopcmV0dXJuIE5hTjtuPVNxKG4pO1c9ZVp0KG4sVysuMDIsRCk7cmV0dXJuIFc8MD9OYU46a1F3KG4sRD9XOjApP25bV10uc2VnbWVudFN0YXJ0VGltZTpOYU59OwptZD1mdW5jdGlvbihuKXtpZihuLlBKLmluZm8uSUI9PT0iZiJ8fG4ucG9saWN5LkomJm4uVy5vQygpKXJldHVybiEwO3ZhciBXPUkkKG4pO2lmKCFXKXJldHVybiExO3ZhciBEPVpkKFcpJiZXLmFaO3JldHVybiBuLmlzTWFuaWZlc3RsZXNzJiZuLnR3PjA/RHx8Vy5qJD49bi50dzpEfTsKWmQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/bi5WKCk6ITF9OwpnVEM9ZnVuY3Rpb24obil7dmFyIFc9SSQobik7cmV0dXJuIFc/Vy5qLW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCk6MH07ClU0PWZ1bmN0aW9uKG4sVyxELGIpe2lmKCFuLlBKLmluZGV4Lk1JKFcsITApKXJldHVybiExO3RyeXttaShuKTtuLlcuSzgoVyk7aWYobi5wb2xpY3kuTilyZXR1cm4gbi5OPW51bGwsITA7Yj5EP1B1KG4sYik6bi5OPW4uUEouaihXLTEsITEpLkF3WzBdfWNhdGNoKHYpe3JldHVybiBXPUIkKHYpLFcuZGV0YWlscy5yZWFzb249InJvbGxia2VyciIsbi5sb2FkZXIuaGFuZGxlRXJyb3IoVy5lcnJvckNvZGUsVy5kZXRhaWxzLFcuc2V2ZXJpdHkpLCExfXJldHVybiEwfTsKSjA9ZnVuY3Rpb24obixXLEQ9ITEpe24uY3EoVyxEKTtXLmRpc3Bvc2UoKX07Cmc3PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XXm47aWYoISgobnw3KT4+NCkpe3ZhciB2PURbSVtiXjIzXV0oSVtiXjJdKSxrPXt9O2ZvcihsZXQgTD0wO0w8dltJWzVdXTtMKyspdmFyIGg9UjAoNixiXjczMjUsdixMLGspO3ZhciB4PWt9aWYoKG4tOV4yMSk8biYmbi03PDwxPj1uKWZvcih2PURbSVs1XV07djspRFtJW2JeNjMzM11dKERbSVszXV0oLS12LDEpWzBdKTtpZigobnw0MCk9PW4pe3Y9Yl45MDYyO2ZvcihrPVtdOysrdi1rW0lbNV1dLShiXjg5NjYpOyl7c3dpdGNoKHYpe2Nhc2UgYl44OTg4OnYtPWJeOUUzO2Nhc2UgYl45MDg1OmNhc2UgYl45MDgyOmNhc2UgYl45MDgzOmNvbnRpbnVlO2Nhc2UgYl45MDUzOnY9Yl44OTY5O2Nhc2UgYl45MDgwOmNhc2UgYl45MDgxOmNhc2UgYl45MDMwOmNvbnRpbnVlO2Nhc2UgYl44OTY4OnY9Yl45MDgxfWtbSVtiXjkwMDhdXShTdHJpbmdbSVtiXjg5ODBdXSh2KSl9eD1rfXJldHVybiB4fTsKeW89ZnVuY3Rpb24obil7dmFyIFc9bi5XLld4KCk7cmV0dXJuIFc/Vy5pbmZvOkkkKG4pfTsKRTQ9ZnVuY3Rpb24obixXKXt2YXIgRDtmb3IoRD0wO0Q8bi5KLmxlbmd0aCYmVyE9PW4uSltEXTtEKyspO2lmKEQ9PT1uLkoubGVuZ3RoKUowKG4sVyk7ZWxzZXtmb3IoO0Q8bi5KLmxlbmd0aDspSjAobixuLkoucG9wKCkpO3ZhciBiPXlvKG4pO2ImJmIuUEouRCgpJiZnLm9NKFcuaW5mby5Bdyx2PT4kTih2LGIpKT8obi5OPWIsbi5wb2xpY3kuVyYmbi5VKCJjZXIiLHtsc3I6ImxzcCIsCmxzcDpiLmdhKCl9KSk6KHhOKFcuaW5mby5Bd1swXSk/KG4uTj1XLldvJiZXLldvLlc/VEQxKFcuV28uVyk6bER4KFcuaW5mby5Bd1swXSksbi5wb2xpY3kuVyYmbi5VKCJjZXIiLHtsc3I6bi5OLmdhKCksbHNwOmI/LmdhKCl9KSk6KG4uTj1udWxsLG4ucG9saWN5LlcmJm4uVSgiY2VyIix7bHNyOiJudWxsIixsc3A6Yj8uZ2EoKX0pKSxuLmxvYWRlci5pc09mZmxpbmUoKSYmIW4ucG9saWN5LlRRfHxKMChuLFcsITApKX19OwppUz1mdW5jdGlvbihuKXtyZXR1cm4gbWQobil8fFpkKG4uVy5XeCgpPy5pbmZvKX07ClNxPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9SSQobik7RCYmVy5wdXNoKEQpO1c9Zy53eihXLG4uVy5mMygpKTtmb3IobGV0IGIgb2Ygbi5KKWZvcihsZXQgdiBvZiBiLmluZm8uQXcpYi5TMyYmKFc9Zy5FTShXLGs9PiF0SihrLHYpKSksKHhOKHYpfHx2LmNKKCkpJiZXLnB1c2godik7Cm4uTiYmIXpBMihuLk4sZy5VTShXKSxuLk4uUEouVygpKSYmVy5wdXNoKG4uTik7cmV0dXJuIFd9OwprUXc9ZnVuY3Rpb24obixXKXtpZighbi5sZW5ndGgpcmV0dXJuITE7Zm9yKFcrPTE7VzxuLmxlbmd0aDtXKyspaWYoIUx6KG5bVy0xXSxuW1ddKSlyZXR1cm4hMTtyZXR1cm4hMH07CmVadD1mdW5jdGlvbihuLFcsRD0hMSl7dmFyIGI9LTE7Zm9yKGxldCB2PTA7djxuLmxlbmd0aDsrK3Ype2xldCBrPW5bdl07aWYoay5YPD1XKWlmKEQpYj12O2Vsc2UgaWYoay5zZWdtZW50U3RhcnRUaW1lK2suVz49VylyZXR1cm4gdn1yZXR1cm4gYn07CnZhciBZalo9ZnVuY3Rpb24obixXKXtyZXR1cm4gTTNbSVsxMF1dKHRoaXMsMiw0OTA2LG4sVyl9Owp1Uz1mdW5jdGlvbihuKXtyZXR1cm4hKCFuLk58fG4uTi5QSj09PW4uUEopfTsKWDB0PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbi5wb2xpY3kuTj9uLnpzKCEwKTxEOihuPXlvKG4pKSYmIVpkKG4pP24uaj5XJiZuLmo8VytEOiExfTsKZy5vJD1mdW5jdGlvbihuKXtuLlY/LlYoKTtuLmtJKCl9Owpxemg9ZnVuY3Rpb24obil7cmV0dXJuISFuLk4mJm4uTi5qJCE9PS0xJiZuLk4uaiQ8bi5QSi5pbmRleC5aTygpfTsKR1FiPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTjtXJiZXLmokPT09LTEmJihuPW4uVy5XeCgpKSYmeE4obi5pbmZvKSYmKG49bi5pbmZvLmokLFcuWT0idXBkYXRlTGFzdFNsaWNlUmVxdWVzdGVkIixXLmokPW4pfTsKdGRqPWZ1bmN0aW9uKG4pe3JldHVybiBnLm9NKG4uSixXPT5XLmZKKX07CiRYMT1mdW5jdGlvbihuLFcpe3ZhciBEPWlZKG4pO3JldHVybiBEJiZELmluZm8udHlwZSE9PTY/IVcuTyhuLEQuaW5mby5qJCk6ITF9OwpyeUM9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2Ygbi5jSilpZihELnNlZ21lbnROdW1iZXI9PT1XKXJldHVybiBELnBWPzI6MTtyZXR1cm4gMH07Ck44Wj1mdW5jdGlvbih7aGFzU3ViZnJhZ21lbnRlZEZtcDQ6bj0hMSxJMjpXPSExfT17fSl7dmFyIEQ9bmV3IHNLaTtELnRJPW58fFc7cmV0dXJuIER9OwpkdT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OJiZuLkZlJiZuLnBsYXliYWNrU3RhcnRQb2xpY3l9OwpKa0M9ZnVuY3Rpb24obixXLEQ9ITEpe1cudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MCYmIW4uV0gmJihuLmUkPTM2NzAwMTYwLG4udko9NTI0Mjg4MCxuLkhKPU1hdGgubWF4KDQxOTQzMDQsbi5ISiksbi5XSD0hMCk7Vy52aWRlby5xdWFsaXR5T3JkaW5hbD4yMTYwJiYhbi5iZSYmKG4uZSQ9MTA0ODU3NjAwLG4uTnM9MTMxMDcyMDAsbi5iZT0hMCk7Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9zYW1zdW5nX2thbnRfbGltaXRfbWF4X2JpdHJhdGUiKSE9PTA/Vy5pc0VuY3J5cHRlZCgpJiZnLmQ4KCkmJmcudWIoInNhbXN1bmciKSYmKGcudWIoImthbnQiKXx8Zy51YigibXVzZSIpKSYmKG4uTnM9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9zYW1zdW5nX2thbnRfbGltaXRfbWF4X2JpdHJhdGUiKSk6Vy5pc0VuY3J5cHRlZCgpJiZnLmQ4KCkmJmcudWIoImthbnQiKSYmKG4uTnM9MTMxMDcyMCk7bi55UCE9PTAmJlcuaXNFbmNyeXB0ZWQoKSYmKG4uTnM9bi55UCk7bi5KRyE9PQowJiZXLmlzRW5jcnlwdGVkKCkmJkQmJihuLk5zPW4uSkcpO1cuTnMmJihuLlFIPU1hdGgubWF4KG4uWm0sTWF0aC5taW4obi5ISiw1KlcuTnMpKSl9Owp6Wj1mdW5jdGlvbihuLFcsRD0wKXtyZXR1cm4gZy5kTShuLnlRLmV4cGVyaW1lbnRzLFcpfHxEfTsKbFM9ZnVuY3Rpb24obixXLEQsYil7bi5GZSYmKG4ucGxheWJhY2tTdGFydFBvbGljeT1XLG4uTTU9RCxuLkRDPWIpfTsKUjY9ZnVuY3Rpb24obixXKXtpZihXPDApcmV0dXJuITA7dmFyIEQ9bi54JCgpO3JldHVybiBXPER8fFc9PT1EJiYhbi5zSnx8Vz09PUQmJihuPW4uT2coKSkmJlc9PT1uLmokPyEwOiExfTsKS2EyPWZ1bmN0aW9uKG4sVyxEKXtpZighUjYobixXKSlyZXR1cm4gMDtpZighbi50SXx8IWlzTmFOKEQpJiZEPjApcmV0dXJuIDI7aWYoVzwwKXJldHVybiAxO0Q9bi54JCgpO3JldHVybiBXPER8fFc9PT1EJiYobj1uLk9nKCkpJiZXPT09bi5qJCYmIW4ucGVuZGluZz8yOjF9OwpwMGI9ZnVuY3Rpb24obixXLEQpe2lmKCEoVy5YZiYmbi5pc0NvbXBsZXRlKCkmJm4uY2FuUmV0cnkoKSYmbi5pbmZvLlhiLnBTKFcsRCkpKXJldHVybiAwO3ZhciBiPW4uaW5mby5YYi5qO2lmKGImJiFXLmVuYWJsZVNhYnJQcm9iZU9uU2VydmVySW5pdGlhdGVkSG9zdEZhbGxiYWNrKXJldHVybiAwO249VVkoRCxGNShuLmluZm8uWGIsITEsVykpO3JldHVybiBiJiYoRD0oMCxnLlIpKCktbi5YLG4uWD4wJiZEPFcuc2FiclN1Y2Nlc3NmdWxQcm9iZVRpbWVvdXRNcyk/MDpuLmorVy5YZipsTChuLCEwLGIpPigwLGcuUikoKT8wOjF9OwpqcT1mdW5jdGlvbihuLFcsRCl7aWYobi5wb2xpY3kuem0pcmV0dXJuITE7dmFyIGI9bi5KQzt2YXIgdj1XLk4/LlRDKCl8fC0xO2IuSj09PTMmJnYrMT49Yi5YPyhiLlUoInNkYWkiLHtoYWx0cnE6disxLGVzdDpiLlh9KSxiPSExKTpiPWIuSiE9PTI7aWYoIWJ8fCEoVy5OP1cuTi5QSi5YYjpXLlBKLlhiKS5ZKG4ucG9saWN5LG4ubm4sbi5sb2FkZXIuSXcpfHxuLmxvYWRlci5pc1N1c3BlbmRlZCYmKCFUWihuLnNjaGVkdWxlKXx8bi5sb2FkZXIuT00pKXJldHVybiExO2lmKG4ucG9saWN5LkomJnFzPj01KXJldHVybiBnLkphKG4ubG9hZGVyLmoyKSwhMTtpZihuLkt1LmlzTWFuaWZlc3RsZXNzKXtpZihXLkoubGVuZ3RoPjAmJlcuTiYmVy5OLmokPT09LTF8fFcuSi5sZW5ndGg+PW4ucG9saWN5LndvfHwhbi5wb2xpY3kuWE0mJlcuSi5sZW5ndGg+MCYmIW4ucG9saWN5LlYudEkpcmV0dXJuITE7aWYoVy5qKXJldHVybiFuLkt1LmlzTGl2ZXx8IWlzTmFOKG4uWkEpfWlmKHRkaihXKSlyZXR1cm4hMTsKaWYoIVcuTil7aWYoIVcuUEouTigpKXJldHVybiExO1B1KFcsbi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKSl9aWYoaVkoVykmJihXLld4KCkhPT1pWShXKXx8bi5sb2FkZXIuaXNTdXNwZW5kZWQpKXJldHVybiExO3Y9KGI9bi5wb2xpY3kuc1MpJiYhVy5KLmxlbmd0aCYmVy56cyghMCk8TWF0aC5taW4oYixELnpzKCkpO2I9Vy5KLmxlbmd0aCtELkoubGVuZ3RoO3ZhciBrPShXLkoubGVuZ3RoP1cuSlswXS5ReSgpOiExKXx8KEQuSi5sZW5ndGg/RC5KWzBdLlF5KCk6ITEpfHxuLkt1LmlzTGl2ZTsodnx8aykmJi0tYjtpZihiKzE+PW4ucG9saWN5LkN5KXJldHVybiExO2I9Vy5OO2lmKCFiKXJldHVybiEwO2IuY0ooKSYmYi5QSi5OKCkmJihXLk49Zy5VTShiLlBKLlZRKGIpKSxiPVcuTik7aWYoIWIuVigpJiYhYi5QSi5YKGIpKXJldHVybiExO2s9bi5LdS5YZ3x8bi5LdS5pc1dpbmRvd2VkTGl2ZTtpZihuLkt1LmlzTWFuaWZlc3RsZXNzJiZrKXtrPVcuUEouaW5kZXgueCQoKTt2YXIgaD0KRC5QSi5pbmRleC54JCgpO2s9TWF0aC5taW4oayxoKTtpZihXLlBKLmluZGV4LlRYKCk+MCYmaz4wJiZiLmokPj1rKXJldHVybiBXLnR3PWssRC50dz1rLCExfWlmKGIuUEouaW5mby5hdWRpbyYmYi5jSigpfHxiLlYoKSlyZXR1cm4hMTtrPSFXLlBEJiYhRC5QRDtpZih2PSF2KXY9Yi5qLHY9ISEoRC5OJiYhWmQoRC5OKSYmRC5OLmo8dik7aD1XPT09bi52aWRlb1RyYWNrJiZuLnBvbGljeS5UQztyZXR1cm4gdiYmKCFuLkt1LmlzTWFuaWZlc3RsZXNzfHxELk4mJkQuTi5qJiZiLmopJiZrJiYhaHx8bi5wb2xpY3kuQlYmJiFXLlBEJiZELlBEPyExOnhOKGIpJiZiLmo+WXppKG4sVyk/KFl6aShuLFcpLCExKToobj1XLlFFKSYmbi5pc0xvY2tlZCgpPyExOiEwfTsKVm89ZnVuY3Rpb24obixXKXtIJGgobi5sb2FkZXIsVyk7dmFyIEQ9elAoVyksYj1uLmxvYWRlci5sdSgpO0Q9e2lqOm4uc2NoZWR1bGUsczQ6RCxCbDpmaXgobi5JZyxEKSxRbjpoSihXLkF3WzBdKSxkaXNhYmxlUmVjb3JkaW5nOmdaKDQwLDEyMTIsVy5YYi5OKSxORDpuLnBvbGljeS5XLEJlOih2LGspPT57bi5sb2FkZXIuS2EodixrKX19OwpuLnNjaGVkdWxlLkouViYmKEQucVk9KG4udmlkZW9UcmFjay5QSj8uaW5mby5Oc3x8MCkrKG4uYXVkaW9UcmFjay5QSj8uaW5mby5Oc3x8MCkpO24uaG4mJihELmokPVcuQXdbMF0uaiQsRC5aQT1XLlpBLEQuaG49bi5obik7Yj17Vzc6d0xVKFcsbi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKSksZTE6bi5wb2xpY3kuc1YmJnlzKFcpJiZXLkF3WzBdLlBKLmluZm8udmlkZW8/RWpaKG4uY1YpOnZvaWQgMCxTTjpuLnBvbGljeS5UQyxwb1Rva2VuOm4ubG9hZGVyLk1ZKCksVWo6bi5sb2FkZXIuVTQoKSxKTzppc05hTihuLkpPKT9udWxsOm4uSk8sYUk6bi5hSSxQbjpuLlBuLHEkOmJ9O3JldHVybiBuZXcgQUIobi5wb2xpY3ksVyxELG4ubm4sKHYsayk9Pnt0cnl7YTp7bGV0IE1pPXYuaW5mby5Bd1swXS5QSixNVT1NaS5pbmZvLnZpZGVvP24udmlkZW9UcmFjazpuLmF1ZGlvVHJhY2s7aWYoISh2LnN0YXRlPj0yKXx8di5pc0NvbXBsZXRlKCl8fHYuQWcoKXx8ISghbi5sb2FkZXIubWVkaWFTb3VyY2V8fApuLmxvYWRlci5pc1N1c3BlbmRlZHx8TVUuenMoKT4zKSl7e3ZhciBoPW4ucG9saWN5LHg9bi5ubjtsZXQgSUM9di5BZygpO2lmKHYuaXNDb21wbGV0ZSgpfHwhSUN8fHYuaW5mby5YYi5wUyhoLHgpKXZhciBMPTA7ZWxzZXt2YXIgZT1oLnpmO2lmKCFlfHxJQzxlKUw9MDtlbHNle3ZhciBHPVVZKHgsRjUodi5pbmZvLlhiLCEwLGgpKTtMPUcuTnx8Ry50aW1lZE91dHx8Ry5zdGFydGVkPzA6Mn19fUw9PT0xJiYobi5WPSEwKTtmckMobix2LEwpO2lmKHYuaXNDb21wbGV0ZSgpfHx2LnFOKCkmJms8Myl7aWYobi5wb2xpY3kuVyl7bGV0IElDPXYudGltaW5nLkQoKTtJQy5yc3Q9di5zdGF0ZTtJQy5zdHJtPXYueGhyLkdwKCk7SUMuY25jbD12LnhociYmdi50NS5YPzE6MDtuLmxvYWRlci5VKCJycXMiLElDKX12Lm9QJiZuLmxvYWRlci5VKCJzYndlMyIse30sITApfWlmKCFuLnFOKCkmJnYuc3RhdGU+PTIpe1hTaChuLnRpbWluZyx2LE1pKTt2YXIgcj1uLmxvYWRlcjtuLkpPJiZ2Lnp3JiYKciYmKG4uSk89TmFOLG4ubG9hZGVyLm45KHYuencpLG4ubG9hZGVyLk1qKCksbi5sb2FkZXIuVSgiY2FiclV0Y1NlZWsiLHttZWRpYVRpbWVTZWNvbmRzOnYuend9KSk7di50ViYmbi5KTyYmdi50ViYmIXYudFYuYWN0aW9uJiYobi5sb2FkZXIud1Iobi5KTyksbi5KTz1OYU4sbi5sb2FkZXIuVSgiY2FiclV0Y1NlZWtGYWxsYmFjayIse3RhcmdldFV0Y1RpbWVTZWNvbmRzOm4uSk99KSk7di5BaCYmbi5sb2FkZXIuc1codi5BaCk7bi5wb2xpY3kuTmQmJihuLlBuPXYuUG4pO2lmKHYuc3RhdGU9PT0zKXtFNChNVSx2KTt5cyh2LmluZm8pJiZDcihuLE1VLE1pLCEwKTtpZihuLnNVKXtsZXQgSUM9di5pbmZvLllsKCk7SUMmJm4uc1UuWjUodi5pbmZvLkF3WzBdLmokLE1pLmluZm8uaWQsSUMpfW4ubG9hZGVyLkJZKCl9ZWxzZSBpZih2LmlzQ29tcGxldGUoKSYmdi5pbmZvLkF3WzBdLnR5cGU9PT01KXtpZih2LnN0YXRlIT09NCl2LnRuKCkmJm4ubG9hZGVyLmhhbmRsZUVycm9yKHYuVkcoKSwKdi55MCgpKTtlbHNle3ZhciBOPSh2LmluZm8uQXdbMF0uUEouaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrKS5KWzBdfHxudWxsO04mJk4gaW5zdGFuY2VvZiBBQiYmTi5BZygpJiZOLk1CKCl9di5kaXNwb3NlKCl9ZWxzZXtpZighdi50bigpJiZ2LmZKJiZ2LnN0YXRlPj0yJiZ2LnN0YXRlIT09Myl7dmFyIEg9di54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVzcG9uc2UtSXRhZyIpO2lmKEgpe3ZhciBBPXlrcihuLmNWLEgpLHk9di5pbmZvLlc7aWYoeSl7dmFyIFQ9eS1BLkhKKCk7QS5jSj0hMDt2LmluZm8uQXdbMF0uUEouY0o9ITE7dmFyIHo9QS5ZKFQpO3YuaW5mbz16O2lmKHYuV28pe3ZhciBDPXYuV28sUT16LkF3OyhRLmxlbmd0aCE9PUMuQXcubGVuZ3RofHxRLmxlbmd0aDxDLmpTLmxlbmd0aCkmJmcuY18oImRhc2gvcmVxdWVzdCIsMjYwNTExMTE5LGAke1EubGVuZ3RofWAsYCR7Qy5Bdy5sZW5ndGh9YCxgJHtDLmpTLmxlbmd0aH1gKTtDLkF3PVE7bGV0IElDPQpRWzBdLnJhbmdlLElNPW5ldyBTNTtmb3Ioaz0wO2s8Qy5qUy5sZW5ndGg7aysrKWU1KElNLEMualNba10uSik7Zm9yKGs9MDtrPEMualMubGVuZ3RoO2srKyl7Qy5qU1trXS5pbmZvPVFba107bGV0IFlsPVFba10ucmFuZ2U7Qy5qU1trXS5KPWdkKElNLFlsLnN0YXJ0LUlDLnN0YXJ0LFlsLmxlbmd0aCl9fXYuZko9ITE7QjYobi5sb2FkZXIsbi52aWRlb1RyYWNrLEEpO3ZhciBWPW4udmlkZW9UcmFjaztWLk4mJihWLk4uUEo9QSk7bi5sb2FkZXIuWUooQS5pbmZvLnZpZGVvLnF1YWxpdHkpO3ZhciBMdD12Llh2KCk7THQmJkEuaW5mby5sYXN0TW9kaWZpZWQmJkEuaW5mby5sYXN0TW9kaWZpZWQhPT0rTHQmJkU0KG4udmlkZW9UcmFjayx2KX19ZWxzZSB2LmZKPSExfXYuWHQ/Lml0YWdEZW55bGlzdCYmbi5sb2FkZXIuV0Yodi5YdC5pdGFnRGVueWxpc3QpO2lmKHYuc3RhdGU9PT00KUYwKG4sdiksbi5KQyYmbi5KQy5TJCh2LmluZm8sbi5zVSk7ZWxzZSBpZihuLnBvbGljeS5lNCYmdi5RQSgpJiYKIXYuaXNDb21wbGV0ZSgpJiYhRjAobix2KSYmIXYudG4oKSlicmVhayBhO2lmKHYudG4oKSl7bGV0IElDPXYuaW5mby5Bd1swXS5QSixJTT12LlZHKCk7aWYoZ1ooMjQsMTE2NCxJQy5YYi5OKSl7bGV0IFR6PWcudXAodi5zOCgpLDMpO24ubG9hZGVyLlUoImRsZGJyZXJyIix7ZW06VHp8fCJub25lIn0pfWxldCBZbD12LmluZm8uQXdbMF0uaiQsajE9ekkobi5KQyx2LmluZm8uQXdbMF0uWCxZbCk7SU09PT0ibmV0LmJhZHN0YXR1cyImJihuLk4rPTEpO2lmKHYuY2FuUmV0cnkoKSYmd3Uobi5sb2FkZXIpKXtpZighKHYuaW5mby5YYi5KPj1uLnBvbGljeS5sTSYmbi5zVSYmdi5pbmZvLmlzRGVjb3JhdGVkKCkmJklNPT09Im5ldC5iYWRzdGF0dXMiJiZNMihuLnNVLGoxLFlsKSkpe3ZhciB0aT0oSUMuaW5mby52aWRlbyYmSUMuWGIuSj4xfHx2LmxOPT09NDEwfHx2LmxOPT09NTAwfHx2LmxOPT09NTAzKSYmISh3QyhuLmNWLmopLnNpemU+MCkmJiFnWig1NCwxMTg2LElDLlhiLk4pLEhaPQp2LnkwKCksWjE9SUMuaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrO3RpJiYoSFouc3R1bj0iMSIpO24ubG9hZGVyLmhhbmRsZUVycm9yKElNLEhaKTtuLnFOKCl8fCh0aSYmYXEobi5jVixJQyksRTQoWjEsdiksbi5sb2FkZXIuQlkoKSl9fWVsc2UgQT0xLG4uc1UmJnYuaW5mby5pc0RlY29yYXRlZCgpJiZJTT09PSJuZXQuYmFkc3RhdHVzIiYmTTIobi5zVSxqMSxZbCkmJihBPTApLG4uS3UuaXNMaXZlJiZ2LlZHKCk9PT0ibmV0LmJhZHN0YXR1cyImJm4uTjw9bi5wb2xpY3kueGgqMj8oajQobi5LdSksbi5LdS5YZ3x8bi5LdS5pc1ByZW1pZXJlP2RWKG4ubG9hZGVyLDAse3FkOiJiYWRTdGF0dXNXb3JrYXJvdW5kIn0pOm4uS3UuaXNXaW5kb3dlZExpdmU/ZFYobi5sb2FkZXIsbi5LdS5KVSx7cWQ6ImJhZFN0YXR1c1dvcmthcm91bmQiLHFhOiEwfSk6UiQobi5sb2FkZXIpKTpuLmxvYWRlci5oYW5kbGVFcnJvcihJTSx2LnkwKCksQSk7aXNOYU4obi5KTyl8fChuLmxvYWRlci53UihuLkpPKSwKbi5KTz1OYU4pfW4ucG9saWN5LkhEJiYhdi5pc0NvbXBsZXRlKCk/UW8obi5sb2FkZXIpOm4ubG9hZGVyLkJZKCk7dmFyIFFqPXAwYih2LG4ucG9saWN5LG4ubm4pO2ZyQyhuLHYsUWopfX19fX1jYXRjaChNaSl7UWo9bi5qPzE6MCxuLmo9ITAsdj1qMihRaiksUWo9QiQoTWksUWopLG4ubG9hZGVyLmhhbmRsZUVycm9yKFFqLmVycm9yQ29kZSxRai5kZXRhaWxzLFFqLnNldmVyaXR5KSx2fHxuLmxvYWRlci56aSgpfX0sYil9OwpJcmI9ZnVuY3Rpb24obixXLEQpe2lmKGpxKG4sVyxEKSl7RD1uLkooVyxEKTtpZihuLnNVKXt2YXIgYj1ELkF3WzBdLlBKLmluZm8uaWQ7dmFyIHY9bi5KQzt2YXIgaz1ELkF3WzBdLmokO3Y9azwwJiYhaXNOYU4odi5qKT92Lmo6aztrPXpJKG4uSkMsRC5Bd1swXS5YLHYpO2xldCBMPVc9PT1uLmF1ZGlvVHJhY2s/MToyLGU9RC5Bd1swXS5QSi5pbmZvLklCLEc9Yi5zcGxpdCgiOyIpWzBdO2E6e3ZhciBoPW4uSkM7aWYoaC5OKXt2YXIgeD1oLk4uZmYuZXZlbnQ7aWYoaC5OLmokPT09dil7aD14PT09InByZWRpY3RTdGFydCI/dm9pZCAwOmguTi5mZi5ldmVudDticmVhayBhfWlmKGguTi5qJD09PXYtMSl7aD14PT09InN0YXJ0Inx8eD09PSJjb250aW51ZSI/eDp2b2lkIDA7YnJlYWsgYX19aD12b2lkIDB9aWYobi5wb2xpY3kuVlEmJm4uSkMuSiE9PTApYj1nLkp5aShuLnNVLGssdixiLEwsZSxoKSx2PDAmJkw9PT0yJiZsdShuLkpDLDAsMCwhMCksYiYmKG4ubG9hZGVyLlUoInNkYWkiLAp7c3NkYWlpbmZvOiIxIixkczpiLk15Py5CZnx8IiIsc2tpcHNxOmIuTXk/LkRKfHwtMSxpdGFnOkcsZjplLHNnOnYsc3Q6ay50b0ZpeGVkKDMpfSksRC5YPWIpO2Vsc2UgaWYoYj1uLnNVLllsKGssdixiLEwsZSxoKSx2PDAmJkw9PT0yJiZsdShuLkpDLDAsMCwhMCksYil7az17ZGVjX3NxOnYsaXRhZzpHLHN0OmsudG9GaXhlZCgzKX07aWYobi5wb2xpY3kubiQmJlcuaXNSZXF1ZXN0UGVuZGluZyh2LTEpKXtuLmxvYWRlci5VKCJzZGFpIix7d3RfZGFpc3RhdGVfb25fc2c6di0xfSk7cmV0dXJufW4ubG9hZGVyLlUoInNkYWkiLGspO2ImJihELk49bmV3IGcud1ooYikpO24ucG9saWN5LlcmJih2PUQuWGIuVy5nZXQoImlkIil8fCIiLGI9RC5OPy5nZXQoImlkIil8fCIiLHYhPT1iJiZuLmxvYWRlci5VKCJzdG1pZG1pc21hdGNoIix7Y2lkOnYsYWlkOmJ9KSl9ZWxzZSBuLkpDLkohPT01JiZuLmxvYWRlci5VKCJzZGFpIix7bm9kZWNfc3E6dixpdGFnOkcsc3Q6ay50b0ZpeGVkKDMpfSl9bi5wb2xpY3kuQ20mJgpELkF3WzBdLmokIT09LTEmJkQuQXdbMF0uaiQ8bi5LdS5JdCYmKEQ9Vy5QSi5qKG4uS3UuSXQsITEpKTtPNChXLFZvKG4sRCkpO2l1KG4udGltaW5nKTtuLlc/Lk4oRC5YYil9fTsKWXppPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5KQztEPUQuTj9ELk4uZmY6bnVsbDtpZihuLnBvbGljeS5UQyYmRClyZXR1cm4gRC5zdGFydFNlY3MrRC5DZisxNTtXPU9iKG4ubG9hZGVyLFcpO24ucG9saWN5LmpXPjAmJihEPSgoMCxnLlIpKCktbi5sb2FkZXIucUcpLzFFMyxXPU1hdGgubWluKFcsbi5wb2xpY3kualcrbi5wb2xpY3kuTEsqRCkpO1c9bi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKStXO3JldHVybiBuLnBvbGljeS56NCYmKEQ9U3pNKG4ubG9hZGVyKStuLnBvbGljeS56NCxEPFcpPyhuLmxvYWRlci5VKCJtcmwiLHtvcmk6Vyxtb2Q6RH0sITApLG4ucG9saWN5LmxXJiZjNihuLmxvYWRlciksRCk6V307CmZyQz1mdW5jdGlvbihuLFcsRCl7aWYoRCE9PTApe2E6aWYoVz1XLmluZm8sRD1EPT09MixXLk4pVz1udWxsO2Vsc2V7dmFyIGI9Vy5Bd1swXTtpZihXLnJhbmdlKXZhciB2PVdfKFcucmFuZ2Uuc3RhcnQsTWF0aC5taW4oNDA5NixXLlcpKTtlbHNle2lmKFcuSiYmVy5KLmluZGV4T2YoIi9yYW5nZS8iKT49MHx8Vy5YYi5XLmdldCgiZGVmcmFnIik9PT0iMSJ8fFcuWGIuVy5nZXQoIm90ZiIpPT09IjEiKXtXPW51bGw7YnJlYWsgYX12PVdfKDAsNDA5Nil9dj1uZXcgd2soW25ldyBxSSg1LGIuUEosdiwiY3JlYXRlUHJvYmVSZXF1ZXN0SW5mbyIrYi5ZLGIuaiQpXSxXLkopO3YucFM9RDt2Lk49Vy5OO1c9dn1XJiZWbyhuLFcpfX07CkNyPWZ1bmN0aW9uKG4sVyxELGIpe2lmKCEoRC5OKCl8fEQuUyQoKXx8RC5jSnx8IUQuWGIuWShuLnBvbGljeSxuLm5uLG4ubG9hZGVyLkl3KXx8RC5pbmZvLklCPT09ImYifHxuLnBvbGljeS5OKSl7aWYoYil7Yj1uLklnO3ZhciB2PUQuaW5mbztiPXJWKGIsdi52aWRlbz9iLnBvbGljeS5SazpiLnBvbGljeS5JTSx2Lk5zKX1lbHNlIGI9MDtiPUQuWShiKTtuPVZvKG4sYik7VXYoYikmJk80KFcsbik7RC5jSj0hMH19OwpGMD1mdW5jdGlvbihuLFcpe2lmKFcucU4oKSlyZXR1cm4hMTt0cnl7dmFyIEQ9Vy5pbmZvLkF3WzBdLlBKO2xldCBoPUQuaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrO3ZhciBiPWg7aWYobi5LdS5pc01hbmlmZXN0bGVzcyYmYil7bi5OPTA7Yi5qJiYoVy5xTigpLFcuaXNDb21wbGV0ZSgpfHxXLlFBKCksYi5qPSExKTtXLkloKCkmJm4ubG9hZGVyLkxyLklJKDEsVy5JaCgpKTt2YXIgdj1XLlRYKCksaz1XLmgwKCk7QzYobi5LdSx2LGspfWlmKFcuaW5mby5RbigpJiYhVXYoVy5pbmZvKSlmb3IobGV0IEwgb2YgVy54OSgpKWgudksoTCk7Yj1oO2ZvcihuLmxvYWRlci5nZXRDdXJyZW50VGltZSgpO2IuSi5sZW5ndGgmJmIuSlswXS5zdGF0ZT09PTQ7KXtsZXQgTD1iLkouc2hpZnQoKTt4WEMoYixMKTtiLlZRPUwuekQoKX1iLkoubGVuZ3RoJiZ4WEMoYixiLkpbMF0pO2xldCB4PSEhaVkoaCk7eCYmVyBpbnN0YW5jZW9mIFNuJiYoRC5pbmZvLmVTKCk/Z2oxKG4udGltaW5nKToKZTdiKG4udGltaW5nKSk7cmV0dXJuIHh9Y2F0Y2goaCl7Vz1XLnkwKCk7Vy5vcmlnaW49ImhyaHMiO2E6e249bi5sb2FkZXI7RD1oO2lmKEQgaW5zdGFuY2VvZiBFcnJvcil7Vy5tc2d8fChXLm1zZz1gJHtELm1lc3NhZ2V9YCk7Vy5uYW1lfHwoVy5uYW1lPWAke0QubmFtZX1gKTtpZihEIGluc3RhbmNlb2YgZy5ReCYmRC5hcmdzKWZvcihsZXQgW3gsTF1vZiBPYmplY3QuZW50cmllcyhELmFyZ3MpKVdbYGFyZyR7eH1gXT1gJHtMfWA7Zy5HcShEKTtpZihELmxldmVsPT09IldBUk5JTkciKXtuLkwuR20oVyk7YnJlYWsgYX19bi5oYW5kbGVFcnJvcigiZm10LnVucGxheWFibGUiLFcsMSl9cmV0dXJuITF9fTsKbVhiPWZ1bmN0aW9uKG4pe3ZhciBXPW4udmlkZW9UcmFjay5QSi5pbmRleDtuLmhuPW5ldyBBeVooe3NKOm4ucG9saWN5LnNKLHRJOm4ucG9saWN5LlYudEksTzg6Vy5VYygpLHgkOigpPT5XLngkKCksCk9nOigpPT5XLk9nKCl9KX07CktqaT1mdW5jdGlvbihuKXtpZihuLko/LmlzTG9ja2VkKCkpcmV0dXJuIG4udmlkZW9JbmZvczt2YXIgVz13QyhuLk4pLEQ9Zy5FTShuLnZpZGVvSW5mb3MsYj0+Yi5Ocz5uLm9aLk5zPyExOiFXLmhhcyhiLmlkKSk7Cm4uTi5sbCgpJiYoRD1nLkVNKEQsYj0+Yi52aWRlby53aWR0aDw9ODU0JiZiLnZpZGVvLmhlaWdodDw9NDgwKSk7CnJldHVybiBEfTsKTyRpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIFcpRC5wdXNoKGcuVmYoYixuLkt1LnpXKSk7cmV0dXJuIER9OwpaJGk9ZnVuY3Rpb24obil7cmV0dXJuIG4uSj8ucmVhc29uPT09Im0iPyJtIjpuLko/LnJlYXNvbj09PSJzIj8icyI6bi5KJiZQYlUobixuLkopP24uSi5yZWFzb246ImEifTsKUGJVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ub1ouSHcmJlcucmVhc29uPT09ImwifHxuLm9aLnFqPyExOm4ub1ouWWo/ITA6Vy5yZWFzb249PT0ibCJ8fFcucmVhc29uPT09ImIifHxXLnJlYXNvbj09PSJvIn07ClVYWj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uTi5OO2lmKEQpe24udmlkZW9JbmZvcz1uLlY7dmFyIGI9Zy5sXyhuLnZpZGVvSW5mb3Msdj0+di5pZD09PUQpOwpiJiZiLnZpZGVvLnF1YWxpdHlPcmRpbmFsPT09Vz9uLnZpZGVvSW5mb3M9W2JdOihiPW4udmlkZW9JbmZvcy5tYXAodj0+di5pZCksbi5sb2FkZXIuVSgic2FicnBmIix7cGZpZDpgJHtEfWAsCnZmaWRzOmAke2Iuam9pbigiLiIpfWB9KSxhJChuLFcsVyksbi5OLkRlKCIiKSl9ZWxzZSBhJChuLFcsVyl9OwphJD1mdW5jdGlvbihuLFcsRCl7bi52aWRlb0luZm9zPW4uVjtuLnZpZGVvSW5mb3M9Zy5FTShuLnZpZGVvSW5mb3MsYj0+Yi52aWRlby5xdWFsaXR5T3JkaW5hbD49VyYmYi52aWRlby5xdWFsaXR5T3JkaW5hbDw9RCl9Owp5eXg9ZnVuY3Rpb24obixXKXtpZihuLlkpe3ZhciBEPWcuRU0obi5XLGI9PmIuaWQ9PT1uLlkpOwpyZXR1cm4gbkQobixEKS5pbmNsdWRlcyhXKX1EPWcuRU0obi5XLGI9PiEhYi5rWj8uaXNEZWZhdWx0KTsKcmV0dXJuIEQubGVuZ3RoPjA/bkQobixEKS5pbmNsdWRlcyhXKTpuRChuLG4uVykuaW5jbHVkZXMoVyl9OwpuRD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uS3Uuelc7cmV0dXJuIFcubWFwKGI9Pk1rKGcuVmYoYixEKSkpfTsKV2w9ZnVuY3Rpb24obixXLEQ9ITEpe0hlVShuLk4sVyxEKX07CmkkUz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1uLkt1LGs9bi5MLmdldFZpZGVvRGF0YSgpLGg9bi5Fdix4PWpGTSh7aWo6bi5paix5UTprLkcoKSxMOm4uTCxuUjpuLm5SLG9aOm4ub1oscHo6bi5weixrRTpuLmtFLFVtOm4uVW0sRzc6bi5HNyxKJDpuLkokLFNmOm4uU2Ysc2FickxpY2Vuc2VDb25zdHJhaW50Omsuc2FickxpY2Vuc2VDb25zdHJhaW50LGo0Om4uajQscjA6bi5yMCxZczpuLllzLGVxOm4uZXEsb0c6ISFoLGF1dGhvcml6ZWRGb3JtYXRzOmsuYXV0aG9yaXplZEZvcm1hdHMsSTg6bi5JOCxsbDpuLmxsLEN4Om4uQ3gsZ0Q6bi5nRH0pLEw9U1YoayxuLnEkLG4ubmV4dFJlcXVlc3RQb2xpY3ksbi5SQSxuLmROLG4uYkosbi5yOCk7RCYmVyYmKEQ9TC5ycT9MLnJxLm1hcChyPT5yLnR5cGUpOltdLFcoInNhYnIiLHtzdG1jdHh0OkQuam9pbigiXyIpLAp1bnNudGN0eHQ6TC51dD9MLnV0LmpvaW4oIl8iKToiIn0pKTtXPW4uR2g7RD1uLk0kO0Q9PT12b2lkIDAmJlc9PT12b2lkIDAmJihEPUVUaih2LnpXLG4uZGs/LnZpZGVvKSxXPUVUaih2LnpXLG4uZGs/LmF1ZGlvKSk7aWYoay5hSSl2YXIgZT1rLmFJO3ZhciBHOyhrPW4ub1o/LlNhKSYmaz4wJiYobi5DeHx8bi5IZSkmJihHPW5ldyBVaW50OEFycmF5KGspKTtoPXtDbjp4LEJpOm4uQmksR2g6VyxNJDpELEV2OmgsdmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZzplLG1IOkwsZFM6R307YiYmbi5iSz9uLmJLLmxlbmd0aD4wJiYoaC5iSz1uLmJLKTpuLk15JiYoaC5NeT1uLk15KTtuLm9aPy5EdCgpJiYhVlQoKSYmKG4udU0mJihoLnVNPW4udU0pLG4uckcmJihoLnJHPW4uckcpKTtoLmVXPW4uZVc7aC5jRT12LkdDO3JldHVybiBofTsKRVRqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc/W2cuVmYoVy5pbmZvLG4pXTpbXX07Cm9Uaj1mdW5jdGlvbihuLFcsRCl7Vz1CdyhuLlhiLHVuVShuLFcsRCksVyk7bi5ENSgpJiZXLnNldCgicHJvYmUiLCIxIik7bi5raCgpJiZXLnNldCgic2Jwcm9iZSIsIjEiKTtyZXR1cm4gV307CkRrPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9W10sYj1bXTtpZighbi5kYXRhKXJldHVybiBXO2Zvcih2YXIgdj0wO3Y8bi5kYXRhLmVXLmxlbmd0aDt2Kyspe3ZhciBrPW4uZGF0YS5lV1t2XTtELnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X2UuJHtrLnN0YXJ0VGltZU1zK2suZHVyYXRpb25Nc31fZC4ke2suZHVyYXRpb25Nc31fc24uJHtrLkFDfV9lbi4ke2suaTl9YCl9Zm9yKHY9MDt2PG4uZGF0YS5CaS5sZW5ndGg7disrKWs9bi5kYXRhLkJpW3ZdLGIucHVzaChgaS4ke2suZm9ybWF0SWQ/Lml0YWd9X3NuLiR7ay5zZXF1ZW5jZU51bWJlcn1fc2wuJHtrLnZEfHxOYU59X2xiLiR7ay5TMH1fdHIuc18ke2suaHg/LnN0YXJ0VGlja3N9X2RfJHtrLmh4Py5sOH1fdF8ke2suaHg/LnRpbWVzY2FsZX1fZWRfJHtrLnUzfWApO1cucHRpbWU9bi5OPy5Dbj8ublJ8fDA7Vy5ydHlwZT1uLnJlcXVlc3RUeXBlO1cuYnJsPUQuam9pbigiOyIpO1cucHM9Yi5qb2luKCI7Iik7CnJldHVybiBXfTsKdW5VPWZ1bmN0aW9uKG4sVyxEKXtuLnBTPT09dm9pZCAwJiYobi5wUz1uLlhiLnBTKFcsRCkpO3JldHVybiBuLnBTfTsKdmw9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5OPy5lbmNyeXB0KFcsRCk7cmV0dXJuIGI/YjoobmV3IGIxKG4uTi5KKSkuZW5jcnlwdChXLEQpfTsKelpqPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt7dmFyIGI9bi5OO2xldCB2PXRFKCk7Yj12P25ldyBkWE0oYi5KLHYpOnZvaWQgMH1pZihiKXRyeXtyZXR1cm4gYXdhaXQgYi5lbmNyeXB0KFcsRCl9Y2F0Y2godil7fXJldHVybiB2bChuLFcsRCl9OwpscjI9YXN5bmMgZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7cmV0dXJuIG4uTi5OP3paaihuLFcsbi5pdik6b24obi5OKS5lbmNyeXB0KFcsbi5pdil9OwpUOGg9ZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7cmV0dXJuIG4uTi5OPy5KKFcsbi5pdil9OwpDYnQ9YXN5bmMgZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7dmFyIEQ9bi5OO0Quanx8KEQuaj1uZXcgaksxKEQuVykpO3JldHVybiBMNFooRC5qLFcsbi5pdil9OwpCOGk9YXN5bmMgZnVuY3Rpb24obixXLEQpeygwLGcuUikoKTtyZXR1cm4gbi5OLk4/elpqKG4sVyxEKTpvbihuLk4pLmRlY3J5cHQoVyxEKX07CncwYj1mdW5jdGlvbihuLFcpe3ZhciBEPVc/LnByaW1hcnk7a3cobiwwLEQpO0Q9RD9GamooRCk6dm9pZCAwO2t3KG4sMixEKTtrdyhuLDEsVz8uc2Vjb25kYXJ5KX07CmhnPWZ1bmN0aW9uKG4sVyxEPSExKXtyZXR1cm4gbmV3IGcud1ooYCR7RD8iaHR0cCI6Imh0dHBzIn06Ly8ke1d9JHtuLkIuUFguYmFzZVVybH1gKX07Cmt3PWZ1bmN0aW9uKG4sVyxEKXtEPyhEPUQgaW5zdGFuY2VvZiBnLndaP0Q6aGcobixEKSxuLk4uZ2V0KFcpPy5OKCkhPT1SMCg5OCwzNTcwLEQpJiZuLk4uc2V0KFcsbmV3IE1kaihELFcpKSk6bi5OLmRlbGV0ZShXKX07CkZqaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5yZXBsYWNlKC8oXGQrKS0tLS9nLChXLEQpPT57Vz1OdW1iZXIoRCk7cmV0dXJuYCR7Vz09PTE/MjpXLTF9LS0tYH0pfTsKUlpoPWZ1bmN0aW9uKG4sVz0hMSxEKXt2YXIgYj1nLlloKG4uQi5leHBlcmltZW50cywiZGVidWdfYmFuZGFpZF9ob3N0bmFtZSIpO3JldHVybiBiPyhXPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJkZWJ1Z19iYW5kYWlkX3BvcnQiKSxiPVc+MD9gJHtifToke1d9YDpiLFc9bi5CLmV4cGVyaW1lbnRzLkVxKCJkZWJ1Z19iYW5kYWlkX2luc2VjdXJlX3NjaGVtZSIpLGhnKG4sYixXKSk6VyYmRD8udXJsJiYhbi5KPyhiPVIwKDY3LDM1MzksbmV3IGcud1ooRC51cmwpKSxoZyhuLGIpKTpuLk4uZ2V0KDApPy5sb2NhdGlvbi5jbG9uZSgpfTsKTEQ9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1oZyhuLCJyZWRpcmVjdG9yLmdvb2dsZXZpZGVvLmNvbSIpO0Quc2V0KCJhbHIiLCJ5ZXMiKTtELnNldCgiaWQiLGAke01hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxRTUpfWApO2lmKFc9PT0xfHxXPT09MilELnNldCgiY21vPXNlbnNpdGl2ZV9jb250ZW50IiwieWVzIiksRC5zZXQoInNjIiwieWVzIik7Vz09PTImJkQuc2V0KCJjbW89dGQiLCJjLnlvdXR1YmUuY29tIik7dmFyIGI9YXdhaXQgZy5yOChELldEKCkse2Zvcm1hdDoiUkFXIix0aW1lb3V0OjVFM30pO2lmKGIueGhyLnN0YXR1cyE9PTIwMHx8IWIueGhyLnJlc3BvbnNlVGV4dClyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuUXgoImIyMDQyNTgzNzFfbm9faG9zdCIsRC5XRCgpLGIueGhyLnN0YXR1cykpO3ZhciB2PW5ldyBnLndaKGIueGhyLnJlc3BvbnNlVGV4dCk7RD1SMCgzNCwzNTA2LHYpO2I9di5nZXQoIm1zIik7bj1oZyhuLEQpO3Y9di5nZXQoIm1tIik7bi5zZXQoIm1zIiwKYik7bi5zZXQoIm1tIix2KTtyZXR1cm4gRCYmUUt4KEQpP1chPT0yfHx4dyhEKT9uOlByb21pc2UucmVqZWN0KG5ldyBnLlF4KCJiMjA0MjU4MzcxX3VudHJ1c3RlZCIsRCxiKSk6UHJvbWlzZS5yZWplY3QobmV3IGcuUXgoImIyMDQyNTgzNzFfaW52YWxpZCIsRCxiKSl9Owp2YXIgSFd0PWZ1bmN0aW9uKG4pe3JldHVybiBSMFtJWzEwXV0odGhpcyw0MSw1ODQ5LG4pfTsKVmR0PWZ1bmN0aW9uKG4sVyl7bj1gaHR0cHM6Ly8ke1cuTigpfS9pbml0cGxheWJhY2s/Yz0ke2xvKG4uQil9Jm93Yz0xYDtxVyhuLCJwdyIsRD0+e0QuaHQ9Vy5KfSl9OwplUj1mdW5jdGlvbihuLFcsRCxiKXtxVyhgaHR0cHM6Ly8ke1d9L3ZpZGVvcGxheWJhY2s/cHJvYmU9MWAsRCx2PT57IWIuUygiaHRtbDVfb25lc2llX2hvc3RfcmFjaW5nIil8fGIudmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrfHxiLlMoImh0bWw1X29uZXNpZV9wcm9iZV9lY19ob3N0cyIpfHxiLldSfHxjeVooYik7bi5XLnB1c2godil9LHY9PntuLlcucHVzaCh2LmRldGFpbHMpfSl9OwpRS3g9ZnVuY3Rpb24obil7cmV0dXJuLy4qKFwuY1wueW91dHViZVwuY29tfC4qXC5nb29nbGV2aWRlb1wuY29tKS8udGVzdChuKX07Cnh3PWZ1bmN0aW9uKG4pe3ZhciBXPS9zbi1bXi5dKi0vO3JldHVybi8uKlwuY1wueW91dHViZVwuY29tLy50ZXN0KG4pJiYhVy50ZXN0KG4pfTsKZ2o9ZnVuY3Rpb24obil7Zm9yKDtuLk4ubGVuZ3RoJiYhbi5OWzBdLmlzRW5jcnlwdGVkOyl7bGV0IHt2aWRlb0lkOkQsYXU6Yixmb3JtYXRJZDp2LGJ1ZmZlcjprLGlFOmh9PW4uTi5zaGlmdCgpO2lmKGspbi5OSS5ZYS5uQT8uZ2V0KEQpPy5OKGIsdixrKTtlbHNlIGlmKGgpbi5OSS5ZYS5ZaChELGIsdik7ZWxzZXt2YXIgVz1uLk5JO1cuTlt2XS5TdT0hMDtXPVcuWWEubkE/LmdldChEKTtXPy5nRih2KSYmVz8uSih2KX19fTsKZy5EMHI9ZnVuY3Rpb24obil7Zm9yKDshbi5YJiYhbi5lcnJvcjspe3ZhciBXPW47Vy5YPSEhWEIoVywxKTtzd2l0Y2goWEIoVywyKSl7Y2FzZSAyOnZhciBEPXZvaWQgMCxiPVtdLHY9W107di5sZW5ndGg9MTk7di5maWxsKDApO3ZhciBrPVhCKFcsNSkrMjU3O0Q9WEIoVyw1KSsxO3ZhciBoPVhCKFcsNCkrNDtmb3IodmFyIHg9MDt4PGg7eCsrKXZbYXJ4W3hdXT1YQihXLDMpO3Y9cVAodik7Zm9yKGg9aytEO2IubGVuZ3RoPGg7KXt4PW5SdChXLHYpO2xldCBMO3N3aXRjaCh4KXtjYXNlIDE2Ong9YltiLmxlbmd0aC0xXTtMPVhCKFcsMikrMzticmVhaztjYXNlIDE3Ong9MDtMPVhCKFcsMykrMzticmVhaztjYXNlIDE4Ong9MDtMPVhCKFcsNykrMTE7YnJlYWs7ZGVmYXVsdDpMPTF9Zm9yKDtMPjA7TC0tKWIucHVzaCh4KX1iLmxlbmd0aCE9PWg/Vy5lcnJvcj0hMDooRD1iLnNsaWNlKC1EKSxiLmxlbmd0aD1rLFdZaChXLGIsRCkpO2JyZWFrO2Nhc2UgMTpXWWgoVyxHYyx0Zyk7YnJlYWs7CmNhc2UgMDokdyhXLFcuTiY3KTtiPVhCKFcsMTYpO2s9WEIoVywxNik7KGJeaykhPT02NTUzNSYmKFcuZXJyb3I9ITApO2s9Vy5kYXRhLnN1YmFycmF5KFcuSixXLkorYik7Vy5vdXRwdXQuc2V0KGssVy5XKTtXLkorPWI7Vy5XKz1iO2JyZWFrO2RlZmF1bHQ6Vy5lcnJvcj0hMH1uLlc+bi5vdXRwdXQubGVuZ3RoJiYobi5vdXRwdXQ9bmV3IFVpbnQ4QXJyYXkobi5XKjIpLG4uVz0wLG4uSj0wLG4uWD0hMSxuLk49MCxuLnJlZ2lzdGVyPTApfW4ub3V0cHV0Lmxlbmd0aCE9PW4uVyYmKG4ub3V0cHV0PW4ub3V0cHV0LnN1YmFycmF5KDAsbi5XKSk7cmV0dXJuIG4uZXJyb3I/bmV3IFVpbnQ4QXJyYXkoMCk6bi5vdXRwdXR9OwpYQj1mdW5jdGlvbihuLFcpe2Zvcig7bi5OPFc7KXtpZihuLko+PW4uZGF0YS5sZW5ndGgpcmV0dXJuIG4uZXJyb3I9ITAsMDtuLnJlZ2lzdGVyfD1uLmRhdGFbbi5KKytdPDxuLk47bi5OKz04fXZhciBEPW4ucmVnaXN0ZXImKDE8PFcpLTE7bi5yZWdpc3Rlcj4+PVc7bi5OLT1XO3JldHVybiBEfTsKV1loPWZ1bmN0aW9uKG4sVyxEKXtXPXFQKFcpO0Q9cVAoRCk7Zm9yKHZhciBiPW4uZGF0YSx2PW4ub3V0cHV0LGs9bi5XLGg9bi5yZWdpc3Rlcix4PW4uTixMPW4uSjs7KXtpZih4PDE1KXtpZihMPmIubGVuZ3RoKzEpe24uZXJyb3I9ITA7YnJlYWt9aHw9KGJbTCsxXTw8OCkrYltMXTw8eDtMKz0yO3grPTE2fXZhciBlPVdbaCYxMjddO2lmKGU8MClmb3IoaD4+PTc7ZTwwOyllPVdbKGgmMSktZV0saD4+PTE7ZWxzZSBoPj49ZSYxNTt4LT1lJjE1O2U+Pj00O2lmKGU8MjU2KXZbaysrXT1lO2Vsc2UgaWYobi5yZWdpc3Rlcj1oLG4uTj14LG4uSj1MLGU+MjU2KXtoPXJqW2VdO2grPVhCKG4sc3FbZV0pO0w9blJ0KG4sRCk7eD1OUFtMXTt4Kz1YQihuLHBEW0xdKTtpZihieVomJmg8eCl4PWsteCx2LmNvcHlXaXRoaW4oayx4LHgraCk7ZWxzZSBmb3IoTD1rK2gsZT1rO2U8TDtlKz00KXZbZV09dltlLXhdLHZbZSsxXT12W2UteCsxXSx2W2UrMl09dltlLXgrMl0sdltlKzNdPXZbZS14KzNdOwprKz1oO2g9bi5yZWdpc3Rlcjt4PW4uTjtMPW4uSn1lbHNlIGJyZWFrfW4uVz1rfTsKblJ0PWZ1bmN0aW9uKG4sVyl7aWYobi5OPDcpe3ZhciBEPW4uZGF0YTtsZXQgYj1uLko7Yj5ELmxlbmd0aCYmKG4uZXJyb3I9ITApO24ucmVnaXN0ZXJ8PShEW2IrMV08PDgpK0RbYl08PG4uTjtuLkorPTI7bi5OKz0xNn1EPVdbbi5yZWdpc3RlciYxMjddO2lmKEQ+PTApcmV0dXJuICR3KG4sRCYxNSksRD4+NDtmb3IoJHcobiw3KTtEPDA7KUQ9V1tYQihuLDEpLURdO3JldHVybiBEPj40fTsKJHc9ZnVuY3Rpb24obixXKXtuLk4tPVc7bi5yZWdpc3Rlcj4+PVd9OwpxUD1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IodmFyIEQgb2YgbilXW0RdfHwoV1tEXT0wKSxXW0RdKys7dmFyIGI9V1swXT0wO0Q9W107dmFyIHY9MCxrPTA7Zm9yKHZhciBoPTE7aDxXLmxlbmd0aDtoKyspV1toXT9rPWg6V1toXT0wLGI9YitXW2gtMV08PDEsRFtoXT1iLGg+NyYmKHYrPVdbaF0pO2ZvcihiPTE7Yjx2OyliPDw9MTtXPTEyODtrPW5ldyBJbnQxNkFycmF5KDEyOCsoYitrKSoyKTtmb3Iodj0wO3Y8bi5sZW5ndGg7disrKXtoPW5bdl07aWYoIWgpY29udGludWU7dmFyIHg9RFtoXSsrO2I9MDtmb3IodmFyIEw9MDtMPGg7TCsrKWI9Yjw8MXx4Pj5MJjE7eD12PDw0fGg7aWYoaDw9Nylmb3IoTD0xPDw3LWg7TC0tOylrW0w8PGh8Yl09eDtlbHNle0w9YiYxMjc7aC09Nztmb3IoYj4+PTc7aC0tOyl7a1tMXXx8KGtbTF09LVcsVys9Mik7bGV0IGU9YiYxO2I+Pj0xO0w9ZS1rW0xdfWtbTF09eH19cmV0dXJuIGt9OwpZdz1mdW5jdGlvbihuLFcpe24uVyhgZGNtcHJzXyR7bi5jb250ZXh0fV8ke24uTn1fZ3pfJHtXfWApfTsKdlJ3PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIE9vKG4sZnVuY3Rpb24oKXt2YXIgRD10aGlzO3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1EYXRlLm5vdygpO3RyeXtZdyhELCJzIik7dmFyIHY9eWllbGQqUFAoVygpKTtpZighdil0aHJvdyBFcnJvcigibm8gcmVzdWx0Iik7WXcoRCwiZSIpO3JldHVybiB2fWNhdGNoKGgpe1l3KEQsImYiKTt2YXIgaz1oO0QuSihrLCJneiIpO3Rocm93IGg7fWZpbmFsbHl7dj1EYXRlLm5vdygpLEQuYmooImd6Iix2LWIsayl9fSgpfSl9OwplU2o9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIE9vKHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgdj0oayxoKT0+dlJ3KG5ldyBrMWkoayxELGIpLCgpPT5IUChoKG4pKSk7CmlmKEhsKXRyeXtyZXR1cm4geWllbGQqUFAodigibiIsaFMxKSl9Y2F0Y2goayl7fWlmKFcpdHJ5e3JldHVybiB5aWVsZCpQUCh2KFcuaXNBc21qcz8iYSI6InciLGs9PngwQyhrLFcpKSl9Y2F0Y2goayl7fXJldHVybiB5aWVsZCpQUCh2KCJwIixMWTIpKX0oKX0pfTsKaFMxPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFIbCl0aHJvdyBFcnJvcigiRGVjb21wcmVzc2lvblN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIik7dmFyIFc9WksudFgoKSxEPW5ldyBEZWNvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYj1ELndyaXRhYmxlLmdldFdyaXRlcigpO2Iud3JpdGUobik7Yi5jbG9zZSgpO249RC5yZWFkYWJsZS5nZXRSZWFkZXIoKTtmb3IoRD1uZXcgUzUoW10pOzspe2xldCB7dmFsdWU6dixkb25lOmt9PWF3YWl0IG4ucmVhZCgpO2lmKGspYnJlYWs7RC5hcHBlbmQodil9bj10UihEKTtaSy5lVSgiZ3puYiIsVyxNYXRoLmNlaWwobi5ieXRlTGVuZ3RoLzE2KSk7cmV0dXJuIG59OwpMWTI9ZnVuY3Rpb24obil7dmFyIFc9WksudFgoKTtuPWcuRDByKG5ldyBnLmdSYihuKSk7WksuZVUoImd6amIiLFcsTWF0aC5jZWlsKG4uYnl0ZUxlbmd0aC8xNikpO3JldHVybiBufTsKeDBDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9WksudFgoKTtuPVcubWVtb3J5LmNvcHlJbihuKTt0cnl7bGV0IHY9bi5ieXRlT2Zmc2V0LGs9bi5ieXRlTGVuZ3RoLGg9Vy5leHBvcnRzLmdldEluZmxhdGVkU2l6ZSh2LGspO2lmKGg9PT0wKXRocm93IEVycm9yKCJ3YXNtX2d6OiBiYWQgaW5wdXQiKTtsZXQgeD1XLm1lbW9yeS5tYWxsb2MoaCksTD1XLmV4cG9ydHMuaW5mbGF0ZUd6aXAodixrLHgpO2lmKEwpdGhyb3cgVy5tZW1vcnkuZnJlZSh4KSxFcnJvcihgd2FzbV9nejogZmFpbCR7TH1gKTt2YXIgYj1XLm1lbW9yeS5idWZmZXIoeCxoKX1maW5hbGx5e1cubWVtb3J5LmZyZWUobi5ieXRlT2Zmc2V0KX1XPVcubWVtb3J5Lm1vdmVPdXQoYik7WksuZVUoImd6d2IiLEQsTWF0aC5jZWlsKFcuYnl0ZUxlbmd0aC8xNikpO3JldHVybiBXfTsKZkQ9ZnVuY3Rpb24obil7dmFyIFc9bi5xdWV1ZTtXLk4ubGVuZ3RoJiZXLk5bMF0uaXNFbmNyeXB0ZWQmJiFXLkomJihXLk4ubGVuZ3RoPTApO2ZvcihsZXQgRCBvZiBPYmplY3Qua2V5cyhuLk4pKXtsZXQgYj1uLk5bRF07Yi5TdXx8KFc9bi5xdWV1ZSxXLk4ucHVzaCh7dmlkZW9JZDpiLnZpZGVvSWQsZm9ybWF0SWQ6RCxpc0VuY3J5cHRlZDohMX0pLFcuSnx8Z2ooVykpfX07ClhCdz1mdW5jdGlvbihuLFcpe3ZhciBEPVcudG90YWxMZW5ndGgsYj0hMTtzd2l0Y2gobi5XKXtjYXNlIDA6bi5qcChXLG4uWCkudGhlbih2PT57dmFyIGs9bi5ZYTtrLkRrKCJvcHJyIik7ay5wbGF5ZXJSZXNwb25zZT12O2suVUl8fChrLkIyPSExKTtKZyhrKX0sdj0+e24uWWEuZmFpbCh2KX0pOwpicmVhaztjYXNlIDI6bi5Eaygib3JtayIpO1c9dFIoVyk7bi5xdWV1ZS5kZWNyeXB0KFcpO2JyZWFrO2RlZmF1bHQ6Yj0hMH1uLllhLnhHJiZuLllhLlUoIm9tYnVwIixgaWQuMTE7cHQuJHtuLld9O2xlbi4ke0R9JHtiPyI7aWdub3JlZC4xIjoiIn1gKTtuLlc9bnVsbH07CnFQaT1mdW5jdGlvbihuLFcpe24uWWEuRGsoIm9wcmd6Ml9zIik7Vz1lU2ooVyxuLllhLkcoKS5qXygpLG4uWWEueEc/bi5ZYS5VLmJpbmQobi5ZYSk6KCk9Pnt9LEQ9PntuLllhLkRrKEQpfSk7ClNrKFcsKCk9PntuLllhLkRrKCJvcHJnejJfZSIpfSwoKT0+e24uWWEuRGsoIm9wcmd6Ml9mIil9KTsKcmV0dXJuIFd9OwpHMVM9YXN5bmMgZnVuY3Rpb24obixXKXtuLllhLkRrKCJvcHJnel9zIik7aWYoSGwpdHJ5e3ZhciBEPWF3YWl0IGhTMShXKTtuLllhLkRrKCJvcHJnel9uIik7bi5ZYS5VKCJvcHJzZ3oiLHtpOiJuIn0pO3JldHVybiBEfWNhdGNoKGIpe24uWWEuVSgiZ3plcnIiLHtpbXBsOiJuYXRpdmUiLGVycjpgJHtifWB9KX1pZihEPW4uWWEuRygpLmpfKCkpdHJ5e2xldCBiPXgwQyhXLEQpO24uWWEuRGsoIm9wcmd6X3ciKTtuLllhLlUoIm9wcnNneiIse2k6IncifSk7cmV0dXJuIGJ9Y2F0Y2goYil7bi5ZYS5VKCJnemVyciIse2ltcGw6Indhc20iLGVycjpgJHtifWB9KX1XPUxZMihXKTtuLllhLkRrKCJvcHJnel9wIik7bi5ZYS5VKCJvcHJzZ3oiLHtpOiJqIn0pO3JldHVybiBXfTsKdF9oPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZShXPT57c2V0VGltZW91dChXLG4pfSl9OwokMGI9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkcoKTtEPW4uWVomJkQuUygiaHRtbDVfb25lc2llX3ByZWxvYWRfdXNlX2NvbnRlbnRfb3duZXIiKTtpZigoVz1SWmgoVyxELG4uUWEpKSYmbi52aWRlb0lkKXtuPWcuZDEobi52aWRlb0lkKTtEPVtdO2lmKG4pZm9yKGIgb2YgbilELnB1c2goYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTt2YXIgYj1ELmpvaW4oIiIpO1cuc2V0KCJpZCIsYik7cmV0dXJuIFd9fTsKck9oPWFzeW5jIGZ1bmN0aW9uKG4sVyxEPTApe3ZhciBiPVtdO2IucHVzaChXLmxvYWQoKSk7RD4wJiZiLnB1c2godF9oKEQpKTthd2FpdCBQcm9taXNlLnJhY2UoYik7cmV0dXJuICQwYihuLFcpfTsKczlDPWZ1bmN0aW9uKG4sVyxELGI9ITEpe24uc2V0KCJjcG4iLFcuY2xpZW50UGxheWJhY2tOb25jZSk7bi5zZXQoIm9wciIsIjEiKTt2YXIgdj1XLkcoKTtuLnNldCgicG9yIiwiMSIpO3RFKCl8fG4uc2V0KCJvbmVtIiwiMSIpO1cuc3RhcnRTZWNvbmRzPjAmJm4uc2V0KCJvc3RzIixgJHtXLnN0YXJ0U2Vjb25kc31gKTtifHwodi5TKCJodG1sNV9vbmVzaWVfZGlzYWJsZV9wYXJ0aWFsX3NlZ21lbnRzIikmJm4uc2V0KCJvc2VzIiwiMSIpLFc9di5TKCJodG1sNV9nYXBsZXNzX29uZXNpZV9ub19tZWRpYV9ieXRlcyIpJiZBSihXKSYmVy5ZWixEJiYhVz8oVz1ELmF1ZGlvLG4uc2V0KCJwdmkiLEQudmlkZW8uam9pbigiLCIpKSxuLnNldCgicGFpIixXLmpvaW4oIiwiKSksTnN8fG4uc2V0KCJvc2giLCIxIikpOihuLnNldCgib2FkIiwiMCIpLG4uc2V0KCJvdmQiLCIwIiksbi5zZXQoIm9hYWQiLCIwIiksbi5zZXQoIm9hdmQiLCIwIikpKX07Ck5KaT1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe3ZhciBrPWBodHRwczovL3lvdXR1YmVpLmdvb2dsZWFwaXMuY29tL3lvdXR1YmVpLyR7Vy5TVi5pbm5lcnR1YmVBcGlWZXJzaW9ufS9wbGF5ZXJgLGg9W3tuYW1lOiJDb250ZW50LVR5cGUiLHZhbHVlOiJhcHBsaWNhdGlvbi9qc29uIn1dO2ImJmgucHVzaCh7bmFtZToiQXV0aG9yaXphdGlvbiIsdmFsdWU6YEJlYXJlciAke2J9YH0pO2gucHVzaCh7bmFtZToiVXNlci1BZ2VudCIsdmFsdWU6Zy5YUSgpfSk7Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpP2gucHVzaCh7bmFtZToiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIix2YWx1ZTpnLkFyKCJFT01fVklTSVRPUl9EQVRBIil9KTooRD1ELnZpc2l0b3JEYXRhfHxnLkFyKCJWSVNJVE9SX0RBVEEiKSkmJmgucHVzaCh7bmFtZToiWC1Hb29nLVZpc2l0b3ItSWQiLHZhbHVlOkR9KTsoRD1nLkFyKCJTRVJJQUxJWkVEX0xBVkFfREVWSUNFX0NPTlRFWFQiKSkmJmgucHVzaCh7bmFtZToiWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiLAp2YWx1ZTpEfSk7KFc9Zy5ZaChXLmV4cGVyaW1lbnRzLCJkZWJ1Z19zaGVybG9nX3VzZXJuYW1lIikpJiZoLnB1c2goe25hbWU6IlgtWW91dHViZS1TaGVybG9nLVVzZXJuYW1lIix2YWx1ZTpXfSk7bj1JdyhKU09OLnN0cmluZ2lmeShuKSk7cmV0dXJue3VybDprLGUzOmgscG9zdEJvZHk6bixFYTp2LGU4OnZ9fTsKSWs9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwpe3ZhciBlPW4uWUMsRz1uLmRmO249bi5DVjt2YXIgcj1lIT09dm9pZCAwJiZHIT09dm9pZCAwLE49Yi5nZXRWaWRlb0RhdGEoKSxIPVcuTi5lbmNyeXB0ZWRDbGllbnRLZXk7Vz1yP1cuaXY6dm9pZCAwO3I9R0QoaywhMCk7dj12fHwhIXRFKCkmJnI+MTU3Mjg2NDtyZXR1cm57aW5uZXJ0dWJlUmVxdWVzdDp7d1M6bix2VTplLGRmOkcsZW5jcnlwdGVkQ2xpZW50S2V5OkgsaXY6VyxtdzohMCxGRDohMCxEWToiRGVjb21wcmVzc2lvblN0cmVhbSJpbiB3aW5kb3d8fCF2LHlKOiEwfSxDbjpqRk0oe2lqOmsseVE6RCxMOmIsblI6Ti5zdGFydFNlY29uZHMqMUUzLGhxOiEwfSksb25lc2llVXN0cmVhbWVyQ29uZmlnOmgsQng6eCxtSDpTVihOKSxyZWxvYWRQbGF5YmFja1BhcmFtczpOLmdUPy5yZWxvYWRQbGF5YmFja1BhcmFtcyxVazpMfX07CnBCeD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe3ZhciBMPWcubGgobixhZiksZTtpZighbi5lOClpZihlPVQ4aChXLEwpKXt2YXIgRz1lLkc0O2U9ZS5zaWduYXR1cmV9ZWxzZSBlPUc9Vy5lbmNyeXB0KEwpLCgwLGcuUikoKSxlPXBmKG5ldyBZJChXLk4uVyksZSxXLml2KTtyZXR1cm4gSWsoRyYmZT97WUM6RyxkZjplfTp7Q1Y6TH0sVyxELGIsISFuLmU4LHYsayxoLHgpfTsKWVBNPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCl7dmFyIEw9Zy5saChuLGFmKTtMPWF3YWl0IGxyMihXLEwpO3ZhciBlPWF3YWl0IENidChXLEwpO3JldHVybiBJayh7WUM6TCxkZjplfSxXLEQsYiwhIW4uZTgsdixrLGgseCl9OwpIeVU9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4KXt2YXIgTD1nLmxoKG4sYWYpO2lmKEw9VDhoKFcsTCkpcmV0dXJuIElrKHtZQzpMLkc0LGRmOkwuc2lnbmF0dXJlfSxXLEQsYiwhIW4uZTgsdixrLGgseCl9OwpKT3c9YXN5bmMgZnVuY3Rpb24obixXLEQpe24uRGsoIm9wcmRfcyIpO1c9Zkl0KG4pP2F3YWl0IEI4aShuLnlxLFcsRCk6bi55cS5kZWNyeXB0KFcsRCk7bi5Eaygib3ByZF9jIik7cmV0dXJuIFd9OwpmSXQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5TKCJodG1sNV9vbmVzaWVfc3luY19yZXF1ZXN0X2VuY3J5cHRpb24iKXx8Vz8uZTg/ITE6ISF0RSgpfTsKSUliPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X29uZXNpZV9ob3N0X3Byb2JpbmciKXx8bi54Rz9OczohMX07CkpnPWZ1bmN0aW9uKG4pe2lmKCFuLnBsYXllclJlc3BvbnNlKXJldHVybiExO2lmKG4uYmspcmV0dXJuITA7dmFyIFc9bi52aWRlb0RhdGEuUygiaHRtbDVfb25lc2llX2F1ZGlvX29ubHlfcGxheWJhY2siKSYmUlEobi52aWRlb0RhdGEpO2lmKG4ubkEmJm4uQjIpe2lmKCFuLm5BLmhhcyhuLkxjKSlyZXR1cm4hMTtsZXQgYj1uLm5BLmdldChuLkxjKTt2YXIgRDtpZihEPWIpe0Q9ITE7Zm9yKGxldCB2IG9mIGIudTkua2V5cygpKXtsZXQgaz1iLnU5LmdldCh2KTtpZihrKWZvcihsZXQgaCBvZiBrLkJ0KWguZUg+MCYmKGsuZVM/RD0hMDpXPSEwKX1EPSEoVyYmRCl9aWYoRClyZXR1cm4hMX1uLkRrKCJvZnIiKTtuLkNSLnJlc29sdmUobi5wbGF5ZXJSZXNwb25zZSk7cmV0dXJuIG4uYms9ITB9OwpBT009ZnVuY3Rpb24obil7aWYobi5uQSYmIW4uUygiaHRtbDVfb25lc2llX21lZGlhX2NhcGFiaWxpdGllcyIpKXtuLkRrKCJvZ3NmX3MiKTt2YXIgVz16eFMobi5MLmdldFZpZGVvRGF0YSgpLChiLHYpPT57bi5VKGIsdil9KSxEPVNQTShuLkwpOwpXLnZpZGVvPWlfYihELFcudmlkZW8pO24uRGsoIm9nc2ZfYyIpO2lmKFcudmlkZW8ubGVuZ3RoKXJldHVybiBXO24uVSgib21ic3BmIixgbC4ke0QuSn07dS4ke0QuTn07by4ke0QuV307ci4ke0QucmVhc29ufWApfX07ClNSPWZ1bmN0aW9uKG4pe2lmKCFuLm5mKXJldHVybnt9O3ZhciBXPW4ubmYuRCgpO1cuZD1uLm5mLkR0Py5iWSgpO1cuc2hvc3Q9bi56YztXLnR5PSJvIjtyZXR1cm4gV307CmN5Wj1mdW5jdGlvbihuKXtuLkIyPSExO2lmKCFKZyhuKSl7dmFyIFc9U1Iobik7Vy50aW1lb3V0PSIxIjtuLmZhaWwobmV3IGcuQ2koIm9uZXNpZS5yZXF1ZXN0IixXKSl9fTsKUGw9ZnVuY3Rpb24obixXKXtpZihXLnFOKCl8fG4ucU4oKSluLnBvbGljeS5QTHx8KG4ucG9saWN5Lmo/Zy5BZyhuLmxvYWRlcik6bi5sb2FkZXIuQlkoKSk7ZWxzZXtpZihuLnBvbGljeS5XJiZXLmlzQ29tcGxldGUoKSYmVyBpbnN0YW5jZW9mIHV1KXt2YXIgRD1uLmxvYWRlcixiPUQuVTt2YXIgdj1PYmplY3QuYXNzaWduKFcubmYuRCgpLHtyc3Q6Vy5zdGF0ZSxzdHJtOlcueGhyLkdwKCksZDpXLm5mLkR0Py5iWSgpLGNuY2w6Vy54aHImJlcudDUuWD8xOjAscnFiOlcuRUYsY3d0OlcudDUuVyxzd3Q6Vy5QcT8uS059KTt2PU9iamVjdC5hc3NpZ24oRGsoVy5pbmZvKSx2KTtiLmNhbGwoRCwicnFzIix2KX1pZihXLmlzQ29tcGxldGUoKSYmVy5ENSgpJiZXIGluc3RhbmNlb2YgdXUpVy5kaXNwb3NlKCksbi5sb2FkZXIuQlkoKTtlbHNle2lmKFcucVEoKSluLkhlPSEwLFcgaW5zdGFuY2VvZiB1dSYmWFNoKG4udGltaW5nLFcpLG0wTShuKSxtdihuKTtlbHNlIGlmKFcudG4oKSlEPW4uTC5lSigpLApXIGluc3RhbmNlb2YgdXUmJlcuaW5mby5OPy5Dbj8uajQmJkQmJihuLkIuWnQoKS5OLlFRKEtZeCl8fG4ubG9hZGVyLndSKEQpKSxXIGluc3RhbmNlb2YgdXUmJlcua2goKT8oVy5WRygpJiZuLmxvYWRlci5oYW5kbGVFcnJvcihXLlZHKCksVy55MCgpLDApLFcuZGlzcG9zZSgpKTpXIGluc3RhbmNlb2YgdXUmJng2dyhXKT9uLmxvYWRlci5ETz8uVygpOlcgaW5zdGFuY2VvZiBLRD9uLk4ucG9wKCk6KEQ9MSxXLmNhblJldHJ5KCkmJnd1KG4ubG9hZGVyKSYmKE95WihuLFcpLEQ9MCksYj1uLkwuZUooKSxXIGluc3RhbmNlb2YgdXUmJlcuaW5mby5OPy5Dbj8uajQmJmImJm4uQi5adCgpLk4uUVEoS1l4KSYmKFcuY2FuUmV0cnkoKSYmd3Uobi5sb2FkZXIpP24ubG9hZGVyLlUoInV0Y1NlZWtpbmdSZXRyeSIse3RhcmdldFV0Y1RpbWVTZWM6Yn0pOm4ubG9hZGVyLndSKGIpKSxuLmxvYWRlci5oYW5kbGVFcnJvcihXLlZHKCksVy55MCgpLEQpKTtlbHNle2lmKG4ubG9hZGVyLmlzU3VzcGVuZGVkJiYKIVcuaXNDb21wbGV0ZSgpKXJldHVybjttdihuKX1XLnFOKCl8fFcgaW5zdGFuY2VvZiBLRHx8KEQ9MCxXLmlzQ29tcGxldGUoKSYmKEQ9cDBiKFcsbi5wb2xpY3ksbi5ubikpLEQhPT0wJiYoVy5pbmZvLlhiLmo/KEQ9Vy5pbmZvLEQ9bmV3IE9xKDIsRC5YYixELllhKSxELnBTPSExKTooYj1uZXcgT3EoMSxXLmluZm8uWGIpLGIucFM9RD09PTIsRD1iKSxQT3QobixEKSkpO2lmKFcuaXNDb21wbGV0ZSgpKXtpZihuLnBvbGljeS5RciYmbi52aWRlb0RhdGEuaXNPdGYoKSYmbi5CLlY9PT0icHciJiYhbi5PJiYhVy5xUSgpJiYhVy50bigpJiYhUlEobi52aWRlb0RhdGEpJiYhbi52aWRlb1RyYWNrLlRDKXtuLkN4PSExO24uTz0hMDtuLmxvYWRlci5ncCh7cmVhc29uOiJzYWJyLm5vX3ZpZGVvX3JlY2VpdmVkX29uX3N0YXJ0IixhY3Rpb246MH0pO3JldHVybn1uLkN4PSExO1cucVEoKXx8KG4uTz0hMCxuLkhlPSExKTtuLkIuUygiaHRtbDVfdXNlX21lZGlhX2ZldGNoX2NvbnRyb2xsZXIiKSYmCm4ubG9hZGVyLkwuV0ooInJlcXVlc3Rjb21wbGV0ZWQiKX1uLnBvbGljeS5IRCYmIVcuaXNDb21wbGV0ZSgpP1FvKG4ubG9hZGVyKTpuLmxvYWRlci5CWSgpfX19OwpaeVM9ZnVuY3Rpb24obil7bi5wb2xpY3kuTEImJihuLlZRPXZvaWQgMCxuLkc3PTApfTsKaXlpPWZ1bmN0aW9uKG4pe2lmKG4ubG9hZGVyLkFiKXJldHVybiBaayhuLCJwcmVwYXJpbmduZXh0bG9vcCIpLCExO2lmKCFVMFoobixuLlMkKSlyZXR1cm4gWmsobiwicmF0ZWxpbWl0ZWQiKSwhMTtpZihpUyhuLmF1ZGlvVHJhY2spJiZpUyhuLnZpZGVvVHJhY2spKXJldHVybiBaayhuLCJlbmRvZnN0cmVhbSIpLCExO2lmKG4ucG9saWN5LlUxKWlmKG4ucG9saWN5Llgpe2lmKG4uVk8/LmNKKCkpcmV0dXJuIFprKG4sInNzZGFpYmxvY2tlZCIpLCExfWVsc2V7dmFyIFc9ITE7aWYobi5KQy5KPT09MilXPSEwO2Vsc2UgaWYobi5KQy5KPT09Myl7VXEobik7bi5sb2FkZXIuU1coKTt2YXIgRD1QNihuLmF1ZGlvVHJhY2ssbi5sb2FkZXIuaXNTZWVraW5nKCkpLmVXO3ZhciBiPVA2KG4udmlkZW9UcmFjayxuLmxvYWRlci5pc1NlZWtpbmcoKSkuZVc7dmFyIHY9bi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKXx8MDtEPXl1KG4sRCx2KTtiPXl1KG4sYix2KTtiPU1hdGgubWluKEQsYik7dj1uLkpDOwpiPj12Llc/KHYuVSgic2RhaSIse2hhbHRycTpiLGVzdDp2Lld9KSxiPSEwKTpiPSExO2ImJihXPSEwKX1pZihXKXJldHVybiBaayhuLCJ3YWl0aW5nZm9yYWRzIiksITF9bi5wb2xpY3kudTUmJihuLnR3PUVxKG4sbi5hdWRpb1RyYWNrKSxuLmJkPUVxKG4sbi52aWRlb1RyYWNrKSk7aWYoIW4uSilyZXR1cm4gaTEobix7bm9wb2xpY3k6MX0pLCEwO2lmKG4uTC5lSigpKXJldHVybiBpMShuLHt1dGM6MX0pLCEwO2lmKG4uazYuSylyZXR1cm4gaTEobix7YXVkaW86MX0pLCEwO2lmKG4ucG9saWN5LnNaJiZuLms2LkQpcmV0dXJuIGkxKG4se2NvbnN0cmFpbnQ6MX0pLCEwO2lmKCFuLkoudGFyZ2V0QXVkaW9SZWFkYWhlYWRNc3x8IW4uSi50YXJnZXRWaWRlb1JlYWRhaGVhZE1zKXJldHVybiBpMShuLHtub3JlYWRhaGVhZDoxfSksITA7aWYobi5wb2xpY3kuaiYmbi5sb2FkZXIuWFgoKSlyZXR1cm4gaTEobix7c2Vla1RvSGVhZDoxfSksITA7Vz1NYXRoLm1pbihPYihuLmxvYWRlcixuLmF1ZGlvVHJhY2spKgoxRTMsbi5KLnRhcmdldEF1ZGlvUmVhZGFoZWFkTXMpO2I9TWF0aC5taW4oT2Iobi5sb2FkZXIsbi52aWRlb1RyYWNrKSoxRTMsbi5KLnRhcmdldFZpZGVvUmVhZGFoZWFkTXMpO3Y9TWF0aC5taW4oVyxiKTt2YXIgaz1uLkwuZ2V0Q3VycmVudFRpbWUoKSoxRTMse0IxOmgsbDE6eCxjdjpMLGFrOmV9PXlPWihuLGspO0Q9aDx2O3ZhciBHPXg8djtpZih1MShuKSl7az1vayhuLlcsayk7dmFyIHI9azx2O24uTC5XWCgpJiZyJiYhRCYmIUcmJm4ubG9hZGVyLlUoInNhYnJjcm5tIix7Y3JhOmssbXByYTp2LGNicmw6bi5XLmxlbmd0aH0pfWlmKCEoRHx8R3x8dTEobikmJnIpKXJldHVybiBuLnBvbGljeS51NSYmbi5MLldYKCkmJihMPHZ8fGU8dikmJm4ubG9hZGVyLlUoInNhYnJuY3JxIix7Y2FyOmgsdmFjOngsYWJoOkwsdmJoOmUsbWFyOlcsbXZyOmJ9KSxaayhuLCJyZWFkYWhlYWRtZXQiKSwhMTtpZihuLnBvbGljeS5SVyYmRVJTKG4ubG9hZGVyKSYmbi52aWRlb0RhdGEuTlAoKSlyZXR1cm4gWmsobiwKInNob3J0c2J1ZmZlcmVkdG9lbmQiKSwhMTtpZihuLnBvbGljeS5XZCYmRVJTKG4ubG9hZGVyKSlyZXR1cm4gWmsobiwidm9kYnVmZmVyZWR0b2VuZCIpLCExO3I9bi5sb2FkZXIueXIoKTtyLmNhcj1oO3IudmFjPXg7ci5tYXI9VztyLm12cj1iO3IudGFyPW4uSi50YXJnZXRBdWRpb1JlYWRhaGVhZE1zO3IudHZyPW4uSi50YXJnZXRWaWRlb1JlYWRhaGVhZE1zO3IucGNsPW4uSi5wbGF5YmFja0Nvb2tpZT8ubGVuZ3RofHwwO3IudmJ1PXJrKG4uTC5oNSgpPy5KKCl8fG51bGwpO3IuYWJoPUw7ci52Ymg9ZTtpMShuLHIpO3JldHVybiEwfTsKdWtoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IE9xKDAsbi5LdS5ZLG4pO24uazYuRD0hMTtuLnBvbGljeS52WCYmbi5sb2FkZXIuVSgic2FicmNzYyIse3RvOm4ucG9saWN5LlRJLHJsOm4ucG9saWN5LnN6LHNidDpuLnBvbGljeS5DdT8xOjB9LCEwKTtuPVBPdChuLEQsVyk7bi5wb2xpY3kuRkYmJihuLlU4PW4ucG9saWN5LmpfKCkuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2NyZWF0ZSgpKTtyZXR1cm4gbn07Cm9SdD1mdW5jdGlvbihuLFcpe2l5aShuKSYmKFc9dWtoKG4sVyksbi5OLnB1c2goVyksbi5ZPy5OKG4uS3UuWSksbi5WPjAmJm4uUyQuRXkrKyl9OwpQT3Q9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXtpajpuLmlqLEJlOihrLGgpPT57bi5MLkthKGssaCl9LApORDpuLnBvbGljeS5XLEtwOm4ucG9saWN5LktwfTtuLmlqLkouViYmKGIucVk9KG4udmlkZW9UcmFjay5QSi5pbmZvLk5zfHwwKSsobi5hdWRpb1RyYWNrLlBKLmluZm8uTnN8fDApKTtuLnBvbGljeS5VVCYmKGIuTzg9bi5hdWRpb1RyYWNrLlBKLmluZGV4LlVjKCksYi5Rbj0hMSk7dmFyIHY9dW5VKFcsbi5wb2xpY3ksbi5ubik/MjoxO3YhPT1uLm51JiYobi5udT12LG0wTShuKSk7RD1kMGIobixEKTtpZihuLnBvbGljeS5ZJiZuLnBvbGljeS5XJiZELlJBKXtsZXQgaz12PSIiO2ZvcihsZXQgaCBvZiBELlJBKW4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5oYXMoaCl8fG4ucG9saWN5LlkmJkQuYkomJkQuYkoudHlwZT09PWg/dis9YF8ke2h9YDprKz1gXyR7aH1gO24ubG9hZGVyLlUoInNhYnJibGRycXMiLHtjdHh0czp2LG1pc2N0eHRzOmt9KX0hVy5zZXREYXRhKEQsbi5wb2xpY3ksbi5ubikmJm4ucG9saWN5LlkmJm4ubG9hZGVyLmhhbmRsZUVycm9yKCJwbGF5ZXIuZXhjZXB0aW9uIiwKe3JlYXNvbjoiYnVpbGRzYWJycmVxdWVzdGRhdGFmYWlsZWQifSwxKTtiPW5ldyB1dShuLnBvbGljeSxXLG4uS3Usbi5ubixuLGIsbi5sb2FkZXIuVTQoKSk7aXUobi50aW1pbmcpO24ucG9saWN5Lk1kJiZuLmxvYWRlci5VKCJzYWJyY3JxaW5mbyIse3JuOmIuY0EoKSxwcm9iZTpXLkQ1KCl9KTtyZXR1cm4gbi5GRj1ifTsKRXE9ZnVuY3Rpb24obixXKXtVcShuKTtuLmxvYWRlci5TVygpO3JldHVybiBQNihXLG4ubG9hZGVyLmlzU2Vla2luZygpKX07CnUxPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBvbGljeS55RSYmISFuLlh9Owp5dT1mdW5jdGlvbihuLFcsRCl7bj1uLmxvYWRlci5TVygpfHwwO3JldHVybiBvayhXLChEK24pKjFFMykvMUUzK0R9OwpkMGI9ZnVuY3Rpb24obixXKXt2YXIgRD1kaihuLmxvYWRlcikmJlcmJlcuU3MhPT12b2lkIDAmJiFXLmJNP01hdGguY2VpbCgoVy5Tcysobi5sb2FkZXIuU1coKXx8MCkpKjFFMyk6VXEobik7aWYobi5wb2xpY3kudTUpe3ZhciBiPW4udHc7dmFyIHY9bi5iZH1lbHNlIGI9RXEobixuLmF1ZGlvVHJhY2spLHY9RXEobixuLnZpZGVvVHJhY2spO3ZhciBrPVsuLi5iLmVXLC4uLnYuZVddO3UxKG4pJiZrLnB1c2goLi4ubi5XKTt2YXIgaD1bLi4uYi5CaSwuLi52LkJpXSx4PVtdO2Zvcih2YXIgTCBvZiBoKUwudkQhPT12b2lkIDAmJkwudkQ+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/bi5sb2FkZXIuVSgic2FicnBzZWdsbXQiLHtsbXQ6TC52RCxpdGFnOkwuZm9ybWF0SWQ/Lml0YWcsc3E6TC5zZXF1ZW5jZU51bWJlcn0pOngucHVzaChMKTtoPW4ubG9hZGVyLmx1KCk7bi5wb2xpY3kuWW4mJiFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKEw9bi52aWRlb0RhdGEubGVuZ3RoU2Vjb25kcyoKMUUzLEQ+PUwmJm4ubG9hZGVyLlUoImludmFsaWRTYWJyQ210Iix7Y210OkQsdmQ6TH0pKTtMPW4uaWo7dmFyIGU9bi5MLEc9bi5LdSxyPW4uSixOPW4udmlkZW9EYXRhLmJkLEg9bi5wb2xpY3ksQT1uLmxvYWRlci5xRyx5PW4uVlE/LmtFLFQ9bi5WUT8uVW0sej1uLkc3LEM9TnVtYmVyKG4uazYuWD8uaW5mby5pdGFnKXx8MCxRPU51bWJlcihuLms2Lmo/LmluZm8uaXRhZyl8fDAsVj1uLkwudzkoKTt2YXIgTHQ9Vz8uSiQ/Vy5KJDpuLmxvYWRlci5pc1N1c3BlbmRlZD80OnZvaWQgMDtEPXtpajpMLEw6ZSxLdTpHLGVXOmssQmk6eCxuUjpELG5leHRSZXF1ZXN0UG9saWN5OnIsUkE6TixvWjpILHB6OkEsa0U6eSxVbTpULEc3OnosdU06QyxyRzpRLHEkOmgscjg6VixKJDpMdCxDeDpuLkN4LGdEOm4uUFgsSGU6bi5IZX07az1uLmxvYWRlci5NWSgpO3g9Zy5kMShrKTtrJiYoRC5kTj14KTtpZihXPWRqKG4ubG9hZGVyKSYmVz8uYk0/Vy5TczpuLkwuZUooKSlELmo0PVcqMUUzO1c9bi5rNjsKaz1XLnR3O2lmKFcub1o/LkR0KCkmJiFrKWZvcih0aSBvZiBXLlcpaWYodGkua1ope2s9ITA7YnJlYWt9dmFyIHRpPVcub1ouRHQoKSYmIWs/W106TyRpKFcsVy5XKTtELkdoPXRpO3RpPW4uazY7dGkub1ouRHQoKSYmIXRpLmJkP3RpPVtdOihXPUtqaSh0aSksVy5sZW5ndGg9PT0wJiYoVz10aS5WKSx0aT1PJGkodGksVykpO0QuTSQ9dGk7RC5Fdj11MShuKT9bbi5YXTp2b2lkIDA7RC5JOD1BcnJheS5mcm9tKHdDKG4uazYuTikua2V5cygpLE51bWJlcik7RC5sbD1uLms2LmxsKCk7bi5wb2xpY3kuS0UmJihELllzPXpTMihuLmxvYWRlcixuLmF1ZGlvVHJhY2spLEQuZXE9elMyKG4ubG9hZGVyLG4udmlkZW9UcmFjaykpO3RpPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCk7Yj15dShuLGIuZVcsdGkpO3Y9eXUobix2LmVXLHRpKTt2PU1hdGgubWluKGIsdik7bi5UQz12O24ucG9saWN5LlUxJiYodTEobikmJihiPXl1KG4sbi5XLHRpKSxuLkwuV1goKSYmYjx2JiZuLmxvYWRlci5VKCJzYWJyY2ZiIiwKe21ldDp2LGNldDpiLGNicmw6bi5XLmxlbmd0aH0pLHY9TWF0aC5taW4odixiKSksIW4ucG9saWN5LlgmJihiPW4uc1U/LlNQKHYpKSkmJihELk15PWIsbi5sb2FkZXIuVSgic2RhaSIse3NzaW5mbzpiLmN1ZXBvaW50SWR9KSk7bi5wb2xpY3kuWCYmKGI9bi52aWRlb0RhdGEuYkJbbi52aWRlb0RhdGEuSj8uY29udGFpbmVyVHlwZXx8MF0sdis9bi5sb2FkZXIuU1coKSxELmJLPW4uVk8/LlkodixiKSxELmJLJiZuLmxvYWRlci5VKCJjbHNkYWkiLHtzc2luZm9zOkQuYksubGVuZ3RofSksbi5WTz8uTygpKTtuLnBvbGljeS5ZJiZuLk4ubGVuZ3RoPjAmJm4uTlswXS5ETCgpJiYoRC5iSj1uLk5bMF0ubWYoKSk7cmV0dXJuIER9OwpVcT1mdW5jdGlvbihuKXt2YXIgVz1uLnBvbGljeS5qJiZuLmxvYWRlcj8uWFgoKSxEPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCl8fDA7RD1sSWIobixEKTthOmlmKG4ucG9saWN5LmZtJiZuLmxvYWRlci5pc1NlZWtpbmcoKSl7dmFyIGI9QTAobi52aWRlb1RyYWNrLEQpO24ubG9hZGVyLlUoImFzbXRmbmN0diIse2I6RCxhOmJ9KTtpZighaXNOYU4oYikpe0Q9YjticmVhayBhfX1iPW4ubG9hZGVyLlNXKCl8fDA7RCs9YjtiPVlwKG4udmlkZW9EYXRhKXx8Zy5wQShuLnZpZGVvRGF0YSk7dmFyIHY9MDtXPyhiJiYodj1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUiksbi52aWRlb0RhdGEuUkkmJih2PU1hdGguY2VpbChuLnZpZGVvRGF0YS5KVSoxRTMpKSk6dj1NYXRoLmNlaWwoRCoxRTMpO3JldHVybiBNYXRoLm1pbihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUix2KX07CmxJYj1mdW5jdGlvbihuLFcpe2lmKG4ubG9hZGVyLmlzU2Vla2luZygpKXJldHVybiBXO3ZhciBEPW4uTC5oNSgpO2lmKCFEKXJldHVybiBXO0Q9RC5KKCk7aWYoRC5sZW5ndGg9PT0wfHxCUihELFcpKXJldHVybiBXO2lmKCFuLnZpZGVvVHJhY2suZnAoVykmJiFuLmF1ZGlvVHJhY2suZnAoVykpcmV0dXJuIG4ubG9hZGVyLlUoInN1bmRybiIse2I6MCxsdDpXfSksVzt2YXIgYj1XLHY9SW5maW5pdHk7Zm9yKGxldCBrPTA7azxELmxlbmd0aDtrKyspe2lmKEQuc3RhcnQoayk+Vyljb250aW51ZTtsZXQgaD1XLUQuZW5kKGspO2g8diYmKHY9aCxiPUQuZW5kKGspKX1yZXR1cm4gYiE9PVcmJihuLmxvYWRlci5VKCJzdW5kcm4iLHticmU6YixsdDpXfSksdj49MjApPyhuLmxvYWRlci5oYW5kbGVFcnJvcigicGxheWVyLmV4Y2VwdGlvbiIse3JlYXNvbjoiYnVmZmVydW5kZXJydW5leGNlZWRzbGltaXQifSksVyk6Yn07Cm9rPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MCxiPS0xO2ZvcihsZXQgdiBvZiBuKWlmKCEodi5zdGFydFRpbWVNcyt2LmR1cmF0aW9uTXM8Vykpe2lmKGI8MCYmdi5zdGFydFRpbWVNcz5XfHxiPj0wJiZ2LkFDPmIrMSlicmVhaztEPU1hdGgubWF4KEQsdi5zdGFydFRpbWVNcyt2LmR1cmF0aW9uTXMpO2I9TWF0aC5tYXgoYix2Lmk5KX1yZXR1cm4gTWF0aC5tYXgoMCxELVcpfTsKWms9ZnVuY3Rpb24obixXKXtuLkdDPVc7bi5wb2xpY3kuTWQmJm4ubG9hZGVyLlUoInNhYnJjcmIiLHtyZWFzb246V30pfTsKVTBaPWZ1bmN0aW9uKG4sVyl7YTp7aWYobi5WPjApe3ZhciBEPU1hdGguZmxvb3IoKDAsZy5SKSgpLzFFNCk7aWYoRD09PVcuWGope2lmKFcuRXk+PW4uVil7aWYoVy5FeT09PW4uVil7RD17cmVhc29uOiJ0b29tYW55cmVxdWVzdHMifTtELmxpbWl0PVcuRXk7aWYobi5GRil7bGV0IGI9RGsobi5GRi5pbmZvKTtELmxyX3B0aW1lPWIucHRpbWU7RC5scl9ydHlwZT1iLnJ0eXBlO0QubHJfYnJsPWIuYnJsO0QubHJfcHM9Yi5wc31uLmxvYWRlci5oYW5kbGVFcnJvcigicGxheWVyLmV4Y2VwdGlvbiIsRCk7Vy5FeSs9MX1XPSExO2JyZWFrIGF9fWVsc2UgVy5Yaj1ELFcuRXk9MH1XPSEwfXJldHVybiFXfHxuLmxvYWRlci5pc1N1c3BlbmRlZCYmbi5sb2FkZXIuT00/ITE6bi5qJiYoMCxnLlIpKCk8bi5qPyhnLkphKG4ubG9hZGVyLmoyKSwhMSk6bi5OLmxlbmd0aD4wJiYoIW4ucG9saWN5Lll8fG4uTi5sZW5ndGghPT0xfHwhbi5OWzBdLkRMKCkpfHwhbi5LdS5ZPy5ZKG4ucG9saWN5LG4ubm4sCm4ubG9hZGVyLkl3KXx8bi5EdD8hMTohMH07CmkxPWZ1bmN0aW9uKG4sVyl7bi5HQz12b2lkIDA7bi5ZWj0oMCxnLlIpKCk7bi5wb2xpY3kuTWQmJm4ubG9hZGVyLlUoInNhYnJjcnEiLFcpfTsKeU9aPWZ1bmN0aW9uKG4sVyl7dmFyIHtjdjpELGFrOmJ9PVRKYihuKTtpZihuLnBvbGljeS51NSl7dmFyIHY9b2sobi50dy5lVyxXKTtuPW9rKG4uYmQuZVcsVyl9ZWxzZSB2PUQsbj1iO3JldHVybntCMTp2LGwxOm4sY3Y6RCxhazpifX07Cm0wTT1mdW5jdGlvbihuKXtuLnZpZGVvRGF0YS5iZC5jbGVhcigpO2lmKG4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5zaXplPjApZm9yKHZhciBXIG9mIG4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5rZXlzKCkpbi52aWRlb0RhdGEuc2FickNvbnRleHRVcGRhdGVzLmdldChXKT8uc2VuZEJ5RGVmYXVsdCYmbi52aWRlb0RhdGEuYmQuYWRkKFcpO2lmKG4ucG9saWN5LlkmJm4uTi5sZW5ndGgpZm9yKGxldCBEIG9mIG4uTikoVz1ELm1mKCkpJiZXLnR5cGUmJlcuc2VuZEJ5RGVmYXVsdCYmbi52aWRlb0RhdGEuYmQuYWRkKFcudHlwZSl9Owptdj1mdW5jdGlvbihuKXtmb3IoO24uTi5sZW5ndGgmJm4uTlswXS5CNihuLkUxKCkpOyl7bGV0IFc9bi5OLnNoaWZ0KCk7ajlDKG4sVyl9bi5OLmxlbmd0aCYmajlDKG4sbi5OWzBdKX07Cmo5Qz1mdW5jdGlvbihuLFcpe1cgaW5zdGFuY2VvZiB1dSYmKG4uZSQ9Vyk7dmFyIEQ9bmV3IFNldChXLlNKKG4uRTEoKSkpO2ZvcihsZXQgaCBvZiBEKXtpZihEPVcgaW5zdGFuY2VvZiBLRCl7RD1uLms2O3ZhciBiPXl5eChELGgpLHY9bkQoRCxELnZpZGVvSW5mb3MpLmluY2x1ZGVzKGgpOyFELm9aLlRQfHxifHx2fHxELmxvYWRlci5VKCJzYWJyY3BmIix7ZmlkOmAke2h9YCx2ZmlkczpgJHtuRChELEQudmlkZW9JbmZvcykuam9pbigiLiIpfWAsc2FpZDpELll8fCIifSk7RD0hKGJ8fHYpfWlmKEQpY29udGludWU7RD1XIGluc3RhbmNlb2YgdXU/eUIoVyk6dm9pZCAwO2lmKEQhPT12b2lkIDApe2lmKCFXLlFBKGgsbi5FMSgpKSljb250aW51ZTtiPW4uS3UuSi5nZXQoaCk7aWYoIWIpY29udGludWU7bi5wb2xpY3kueUUmJmIuaW5mby5OKCl8fChiLmluZm8uZVMoKT9uLmF1ZGlvVHJhY2s6bi52aWRlb1RyYWNrKS5aYyhELGgpO2NvbnRpbnVlfUQ9Vy5mMyhoLG4uRTEoKSk7Yj1uLnBvbGljeS55RSYmCkQubGVuZ3RoPjAmJkRbMF0uUEouaW5mby5OKCk7aWYoIVcuUUEoaCxuLkUxKCkpKWNvbnRpbnVlO3Y9Vy54OShoLG4uRTEoKSk7Zm9yKGxldCB4IG9mIHYpe24ucG9saWN5LlcmJlcgaW5zdGFuY2VvZiBLRCYmbi5sb2FkZXIuVSgib21ibHNzIix7czp4LmluZm8uZ2EoKX0pO2lmKGIpe3Y9bi50aW1pbmc7di5EfHwodi5EPSgwLGcuUikoKSxnLkVHKCJmY2JfciIsdi5ELHYuelIpKTtpZihuLnBvbGljeS5rdSl7dj1nLlZmKHguaW5mby5QSi5pbmZvLG4uS3UuelcpO3ZhciBrPXguaW5mby5qJDtpZihuLksmJk1rKG4uSyk9PT1Nayh2KSYmazw9bi5jSiljb250aW51ZTt4LmluZm8uYVomJihuLks9dixuLmNKPWspfXY9bjt2LnZpZGVvRGF0YS56VygpJiZ2LlgmJk1rKHYuWCk9PT1NayhnLlZmKHguaW5mby5QSi5pbmZvLHYuS3UuelcpKSYmdi5MLldKKCJzYWJyQ2FwdGlvbnNEYXRhTG9hZGVkIix4LHYueUUuYmluZCh2KSk7Y29udGludWV9dj14LmluZm8uUEouaW5mby5lUygpO2s9eC5pbmZvLlBKOwpsZXQgTD1XIGluc3RhbmNlb2YgS0Q/MToyO2lmKHYpe2lmKG4uazYuWHIoayxMLFcuSmQobi5FMSgpKT8udG9rZW4pKWNvbnRpbnVlfWVsc2Ugbi5rNi5EUihrLEwsVy5KZChuLkUxKCkpPy50b2tlbik7az12P24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2s7VyBpbnN0YW5jZW9mIEtEJiYoay5qPSExLFcgaW5zdGFuY2VvZiBLRCYmKHY/Z2oxKG4udGltaW5nKTplN2Iobi50aW1pbmcpKSk7dHJ5e2suV2coRCx4KX1jYXRjaChlKXt2PUIkKGUpLG4ubG9hZGVyLmhhbmRsZUVycm9yKHYuZXJyb3JDb2RlLHYuZGV0YWlscyx2LnNldmVyaXR5KSxrLnppKCksbi5YJCghMSwicHVzaFNsaWNlIiksZy5BZyhuLmxvYWRlcil9fX19OwpPeVo9ZnVuY3Rpb24obixXKXtuLnBvbGljeS5ZP24uTi5zcGxpY2Uobi5OLmluZGV4T2YoVykpLmZvckVhY2goRD0+e0QuZGlzcG9zZSgpfSk6KG4uTi5wb3AoKSxXPy5kaXNwb3NlKCkpfTsKQ09qPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXTtmb3IobGV0IHY9MDt2PG4uTi5sZW5ndGg7disrKVcmJm4uTlt2XWluc3RhbmNlb2YgS0Q/Yi5wdXNoKG4uTlt2XSk6KG4ucG9saWN5Lk1kJiZuLmxvYWRlci5VKCJzYWJyZGlzIix7ZDpuLk5bdl0uY0EoKSxzcmM6RH0pLG4uTlt2XS5kaXNwb3NlKCkpO24uTj1ifTsKQkp0PWZ1bmN0aW9uKG4sVyl7aWYoVy50bigpfHxXLnFOKCkpe3ZhciBEPW4ubG9hZGVyLGI9RC5VLHY9Vy5zdGF0ZTtuPW4uRTEoKTtXPVcubkE/LmdldChuKT8uWSgpPz8tMTtiLmNhbGwoRCwic2Ficm9tYiIse3M6dix0Ynl0ZXM6V30pfWVsc2V7RD1XLlNKKG4uRTEoKSk7Yj0hMTtmb3IobGV0IGsgb2YgRClpZih2PW4uazYsbkQodix2LnZpZGVvSW5mb3MpLmluY2x1ZGVzKGspKXtiPSEwO2JyZWFrfWlmKEQubGVuZ3RoPT09MHx8YiluLlBYPSEwO24uTi5wdXNoKFcpO1cuWEwucHVzaChuKTtpdShuLnRpbWluZyk7bi5wb2xpY3kuclcmJlcuYlAmJm4udVEoVy5iUCxXLmNBKCkpfX07ClRKYj1mdW5jdGlvbihuKXt2YXIgVz1uLmF1ZGlvVHJhY2suenMoITApKjFFMztuPW4udmlkZW9UcmFjay56cyghMCkqMUUzO3JldHVybntjdjpXLGFrOm59fTsKRllDPWZ1bmN0aW9uKG4se1NzOlcsYk06RH0pe2lmKFc9PT12b2lkIDApcmV0dXJuITE7Vz1EP24uTC5sSyhXKTpXO2lmKFc9IW4ubG9hZGVyLmZwKFcpJiZVMFoobixuLkN1KSl7Vz1uLkwuZ2V0Q3VycmVudFRpbWUoKSoxRTM7bGV0IHtCMTpiLGwxOnZ9PXlPWihuLFcpO1c9Yj49N0UzJiZ2Pj03RTN9cmV0dXJuIFd9Owp3Qng9ZnVuY3Rpb24obixXKXtuLmRlbGF5Py5kaXNwb3NlKCk7bi5kZWxheT1udWxsO3ZhciBEPUFycmF5LmZyb20obi5OLnZhbHVlcygpKS5zb3J0KChiLHYpPT5iLm1lZGlhVGltZS12Lm1lZGlhVGltZSk7CkQubGVuZ3RoIT09MCYmKFc9KERbMF0ubWVkaWFUaW1lLVcpKjFFMy9uLkwuZ2V0UGxheWJhY2tSYXRlKCksbi5kZWxheT1uZXcgZy5mXygoKT0+e3pjKG4pfSxXPjUwMD9XLTUwMDpXKSxuLmRlbGF5LnN0YXJ0KCkpfTsKemM9ZnVuY3Rpb24obixXKXtpZihsMShuLkwuZ2V0UGxheWVyU3RhdGUoKSkmJm4uTi5zaXplIT09MCl7Vz1XPz9BcnJheS5mcm9tKG4uTi52YWx1ZXMoKSkuc29ydCgodixrKT0+di5tZWRpYVRpbWUtay5tZWRpYVRpbWUpOwp2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCksYj0oV1swXS5tZWRpYVRpbWUtRCkqMUUzL24uTC5nZXRQbGF5YmFja1JhdGUoKTtpZihiPDUwMCl7RD1iPjA/bi5MLmg1KCk/LmdldEN1cnJlbnRUaW1lKCk/P24uTC5nZXRDdXJyZW50VGltZSgpOkQ7Zm9yKGxldCB2IG9mIFcpaWYoRD49di5tZWRpYVRpbWUpdi5yZXNvbHZlKFt2Lm1lZGlhVGltZSx2LmlkXSksbi5OLmRlbGV0ZSh2LmlkKTtlbHNlIGJyZWFrfXdCeChuLEQpfX07Ck1fdz1mdW5jdGlvbihuLFcsRCl7bi5OLmRlbGV0ZShEKTtyZXR1cm4gbmV3IFByb21pc2UoYj0+e24uTi5zZXQoRCx7aWQ6RCxtZWRpYVRpbWU6VyxyZXNvbHZlOmJ9KTtiPUFycmF5LmZyb20obi5OLnZhbHVlcygpKS5zb3J0KCh2LGspPT52Lm1lZGlhVGltZS1rLm1lZGlhVGltZSk7CkQ9PT1iWzBdLmlkJiZ6YyhuLGIpfSl9OwpROWI9ZnVuY3Rpb24obil7dmFyIFc9bi5MLmg1KCk/LmdldEN1cnJlbnRUaW1lKCk/P24uTC5nZXRDdXJyZW50VGltZSgpLEQ9bi5YLlIzKFcpO1JTQyhuLEQsVyk7bi5pc1NlZWtpbmc9ITE7dmFyIGI9QXJyYXkuZnJvbShuLk4ua2V5cygpKS5maWx0ZXIodj0+dj49RCkuc29ydCgodixrKT0+di1rKTsKZm9yKGxldCB2IG9mIGIpYj12PT09RD9XLW4uWC5nZXRTdGFydFRpbWUoRCk6MCxuLksodixuLk4uZ2V0KHYpLGIpfTsKVl8yPWZ1bmN0aW9uKG4sVyxELGI9ITEpe1chPT1uLktZJiYobi5LWT1XLG4uTC5XSigicGxheWJhY2tzdGFydGVkIixXLEQrbi5MLlNXKCksYikpfTsKUlNDPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLk4uZ2V0KFcpLHY9bi5YLmdldFN0YXJ0VGltZShXKSxrPW4uWC5nZXREdXJhdGlvbihXKSxoPXY7KGI/Lk4/P1tuLmNwbl0pLmZvckVhY2goKHgsTCk9Pnt2YXIgZT1iPy5KW0xdPz9rO0Q+PWgmJkQ8aCtlJiYoTD14IT09bi5jcG4/aC0oYj8uWFtMXT8/MCk6aCxuLko9eCxWXzIobix4LEwsITApKTtoKz1lfSl9OwpjT3c9ZnVuY3Rpb24obixXKXsobi5XLmdldChXKT8/W10pLmZvckVhY2goRD0+e24uai5OLmRlbGV0ZShEKX0pOwpuLlcuZGVsZXRlKFcpfTsKYUlaPWZ1bmN0aW9uKG4sVyxELGIpe24uSj1EO0Q9YCR7V30uJHtEfWA7bi5XLmhhcyhXKT9uLlcuZ2V0KFcpLnB1c2goRCk6bi5XLnNldChXLFtEXSk7TV93KG4uaixiLEQpLnRoZW4oKFt2LGtdKT0+e3ZhciBbaCx4XT1rLnNwbGl0KCIuIik7WyxrXT1bTnVtYmVyKGgpLHhdO1ZfMihuLGssdil9KX07CldYaD1mdW5jdGlvbihuLFcsRCxiLHYsayl7cmV0dXJuIFcuVDcmJlcuRTUmJkQ9PT0zP25ldyBudTEobixXLGIsdixrKTpudWxsfTsKRExiPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kuRDIpe3ZhciBEPVcuaW5mby5OcyxiPUdEKG4uc2NoZWR1bGUpO1c9Vy5pbmRleC5VYygpO0Q9TWF0aC5tYXgoMSxiL0QpO24uWT1NYXRoLnJvdW5kKE1hdGgubWF4KCgoRC0xKSpXK24ucG9saWN5LndhKS9ELFctbi5wb2xpY3kuTWwpKjFFMyl9fTsKa25yPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9RGF0ZS5ub3coKS8xRTMsYj1ELW4uc3RhcnRUaW1lU2Vjcyx2PUQtbi5WLGs9dj49bi5wb2xpY3kuT04saD0hMTtpZihrKXtsZXQgeD0wOyFpc05hTihXKSYmVz5uLmomJih4PVctbi5qLG4uaj1XKTt4L3Y8bi5wb2xpY3kuSVcmJihoPSEwKTtuLlY9RH1EPWI+PW4ucG9saWN5Lk1sJiYhbi5XO2lmKCFrJiYhRCYmYkZqKG4sVykpcmV0dXJuIE5hTjtEJiYobi5XPSEwKTthOntiPWg7RD0oMCxnLlIpKCkvMUUzLShuLnF6LkxnKCl8fDApLW4uSy5XLW4ucG9saWN5LndhO2s9bi5KLnNlZ21lbnRTdGFydFRpbWU7RD1rK0Q7aWYoYil7aWYoaXNOYU4oVykpe1RjKG4sTmFOLCJuIixXKTtrPU5hTjticmVhayBhfWI9Vy1uLnBvbGljeS5FVDtiPEQmJihEPWIpfWVsc2Ugbi5XJiYoYj1EK24ucG9saWN5LndhLW4uTytuLnBvbGljeS5BTCxpc05hTihXKXx8KGI9TWF0aC5tYXgoYixNYXRoLm1pbihELFctbi5wb2xpY3kuRVQpKSksRD1iKTtrPUQ9TWF0aC5tYXgoRCwKayl9bi5OPWs7aWYoaXNOYU4obi5OKSlyZXR1cm4gbi5jbGVhcigpLE5hTjtpZighaCYmYkZqKG4sVykpcmV0dXJuIHZ1TShuLFcpLE5hTjtpZihuLk48PW4uSi5zZWdtZW50U3RhcnRUaW1lKXJldHVybiBUYyhuLE5hTiwieSIsVyksbi5jbGVhcigpLE5hTjtpZighbi5EKG4uTiwhMSkpcmV0dXJuIXZ1TShuLFcpJiZoJiYoVGMobixOYU4sInQiLFcpLG4uY2xlYXIoKSksTmFOO2g9bi5OO1RjKG4saCwicyIsVyk7bi5jbGVhcigpO3JldHVybiBofTsKYkZqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGlzTmFOKFcpPyEwOmlzTmFOKG4uTik/ITE6VzxuLk4rKG4uVz9uLnBvbGljeS5FVDpuLnBvbGljeS5neCl9Owp2dU09ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5EKG4uTiwhMCk/ITE6KFRjKG4sTmFOLCJucyIsVyksbi5jbGVhcigpLCEwKX07ClRjPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4uWC55MCgpO3Yuc3NyX3NrPShXKjFFMykudG9GaXhlZCgwKTt2LnNzcl90PShuLk4qMUUzKS50b0ZpeGVkKDApO3Yuc3NyX3I9RDt2LnNzcl9zdD0obi5zdGFydFRpbWVTZWNzKjFFMykudG9GaXhlZCgwKTt2LnNzcl9uPSgwLGcuUikoKS50b0ZpeGVkKDApO3Yuc3NyX2Y9KG4uSy5XKjFFMykudG9GaXhlZCgwKTt2LnNzcl9mYT1uLlc/IjEiOiIwIjt2LnNzcl9vPShuLnF6LkxnKCkqMUUzfHwwKS50b0ZpeGVkKDApO3Yuc3NyX3Y9KGIqMUUzKS50b0ZpeGVkKDApO1c9bi5KLlBKLmluZGV4O1cuTUkobi5KLmokLCEwKSYmKHYuc3NyX2lzdD0oVy5nZXRTdGFydFRpbWUobi5KLmokKSoxRTMpLnRvRml4ZWQoMCksdi5zc3JfaWQ9KFcuZ2V0RHVyYXRpb24obi5KLmokKSoxRTMpLnRvRml4ZWQoMCkpO24ubG9hZGVyLlUoInNzciIsdil9OwpoUXg9ZnVuY3Rpb24oKXt2YXIgbj17fSxXPXdpbmRvdy5wZXJmb3JtYW5jZTtpZihXKXtsZXQgRD1XLm1lbW9yeTtEJiYobi5qc1RvdGFsPUQudG90YWxKU0hlYXBTaXplLG4uanNVc2VkPUQudXNlZEpTSGVhcFNpemUsbi5qc0xpbWl0PUQuanNIZWFwU2l6ZUxpbWl0LG4ubXNUb3RhbD1ELmdldE1lZGlhU291cmNlVG90YWxBbGxvY2F0ZWRNZW1vcnk/LigpPz9ELnRvdGFsTWVkaWFTb3VyY2VTaXplLG4ubXNMaW1pdD1ELmdldE1lZGlhU291cmNlTWF4aW11bU1lbW9yeUNhcGFjaXR5Py4oKT8/RC5tZWRpYVNvdXJjZVNpemVMaW1pdCxuLm1zVXNlZD1ELmdldE1lZGlhU291cmNlQ3VycmVudE1lbW9yeUNhcGFjaXR5Py4oKT8/RC51c2VkTWVkaWFTb3VyY2VNZW1vcnlTaXplKTtXLm1lYXN1cmVBdmFpbGFibGVDcHVNZW1vcnkmJihuLmNiRnJlZT1XLm1lYXN1cmVBdmFpbGFibGVDcHVNZW1vcnkoKSk7Vy5tZWFzdXJlVXNlZENwdU1lbW9yeSYmKG4uY2JVc2VkPVcubWVhc3VyZVVzZWRDcHVNZW1vcnkoKSl9d2luZG93Lmg1dmNjPy5jVmFsJiYKKG4uY2JGcmVlPXdpbmRvdy5oNXZjYy5jVmFsLmdldFZhbHVlKCJNZW1vcnkuQ1BVLkZyZWUiKSxuLmNiVXNlZD13aW5kb3cuaDV2Y2MuY1ZhbC5nZXRWYWx1ZSgiTWVtb3J5LkNQVS5Vc2VkIiksbi5jYkpzPXdpbmRvdy5oNXZjYy5jVmFsLmdldFZhbHVlKCJNZW1vcnkuSlMiKSk7cmV0dXJuIG59Owp4THQ9ZnVuY3Rpb24obil7cmV0dXJuIHdpbmRvdy5QcmVzc3VyZU9ic2VydmVyJiZuZXcgd2luZG93LlByZXNzdXJlT2JzZXJ2ZXIobil9OwpMWHI9YXN5bmMgZnVuY3Rpb24obil7dHJ5e2F3YWl0IG4uan1jYXRjaHt9bi5XPy5kaXNjb25uZWN0KCl9OwpndUM9ZnVuY3Rpb24obixXKXtXP2VRai50ZXN0KG4pOihuPWcub0UobiksT2JqZWN0LmtleXMobikuaW5jbHVkZXMoImNwbiIpKX07CmpSPWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD17Zm9ybWF0OiJSQVcifSx4PXt9O2lmKGcuVGQobikmJmcuakgoKSl7bGV0IEw9Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpO0w/eFsiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIl09TDpiP3hbIlgtR29vZy1WaXNpdG9yLUlkIl09YjpnLkFyKCJWSVNJVE9SX0RBVEEiKSYmKHhbIlgtR29vZy1WaXNpdG9yLUlkIl09Zy5BcigiVklTSVRPUl9EQVRBIikpO0QmJih4WyJYLUdvb2ctUGFnZUlkIl09RCk7KGI9Vy5UQykmJiFnLnFGKFcpJiYoeFsiWC1Hb29nLUF1dGhVc2VyIl09Yik7diYmKHguQXV0aG9yaXphdGlvbj1gQmVhcmVyICR7dn1gKTtXLlMoImVuYWJsZV9kYXRhc3luY19pZF9oZWFkZXJfaW5fd2ViX3Zzc19waW5ncyIpJiZXLllyJiZXLmRhdGFzeW5jSWQmJih4WyJYLVlvdVR1YmUtRGF0YVN5bmMtSWQiXT1XLmRhdGFzeW5jSWQpO2lmKFcuUygiZW5hYmxlX3JvbGxvdXRfdG9rZW5faGVhZGVyIikpe2xldCBlPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik/LmNsaWVudD8ucm9sbG91dFRva2VuOwplJiYoeFsiWC1Zb3VUdWJlLVJvbGxvdXQtVG9rZW4iXT1lKX1MfHx4WyJYLUdvb2ctVmlzaXRvci1JZCJdfHx2fHxEfHxiP2gud2l0aENyZWRlbnRpYWxzPSEwOlcuUygiaHRtbDVfc2VuZF9jcG5fd2l0aF9vcHRpb25zIikmJmVRai50ZXN0KG4pJiYoaC53aXRoQ3JlZGVudGlhbHM9ITApfU9iamVjdC5rZXlzKHgpLmxlbmd0aD4wJiYoaC5oZWFkZXJzPXgpO2smJihoLm9uRmluaXNoPWspO3JldHVybiBPYmplY3Qua2V5cyhoKS5sZW5ndGg+MT9oOm51bGx9OwpDRD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe2cuakgoKSYmRC50b2tlbiYmKG49Zy56ZChuLHtjdHQ6RC50b2tlbixjdHR5cGU6RC55byxtZHhfZW52aXJvbm1lbnQ6RC5tZHhFbnZpcm9ubWVudH0pKTtiLlMoIm5ldF9waW5nc19sb3dfcHJpb3JpdHkiKSYmKFd8fChXPXt9KSxXLnByaW9yaXR5PSJsb3ciKTtrfHx4JiZiLlMoIm53bF9za2lwX3JldHJ5Iik/KFc9PW51bGw/Vz17fTpndUMobixiLlMoImh0bWw1X2Fzc2VydF9jcG5fd2l0aF9yZWdleCIpKSxoP2cuSFUoKS5zZW5kQW5kV3JpdGUobixXKTpnLkhVKCkuc2VuZFRoZW5Xcml0ZShuLFcseCkpOlc/KGd1QyhuLGIuUygiaHRtbDVfYXNzZXJ0X2Nwbl93aXRoX3JlZ2V4IikpLEJXaihuLFcpKTpnLmdvKG4sdil9OwpYTmk9ZnVuY3Rpb24obil7dmFyIFc9W107Zm9yKGxldCBEPTA7RDxuO0QrKyl7bGV0IGI9e30sdj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOSoxRTgpKzFFOCxrPSIiO2ZvcihsZXQgaD0wO2g8OTtoKyspays9ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MildO2IudmlkZW9EZWNvZGVyTmFtZT1rO2IuZWxhcHNlZFRpbWVNcz12O1cucHVzaChiKX1yZXR1cm4gV307CkJsPWZ1bmN0aW9uKG4sVyl7bj13aW5kb3cuaDV2Y2M/LnNldHRpbmdzPy5zZXQobixXKTtyZXR1cm4gWW8obik/U2soSFAobiksKCk9PiEwLCgpPT4hMSk6SFAoISFuKX07CnFScj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhU291cmNlLkVuYWJsZVVzaW5nTWVkaWFTb3VyY2VCdWZmZXJlZFJhbmdlIixuPzE6MCl9OwpHbnc9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJIVFRQMyIsbj8xOjApfTsKdEZ4PWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWFTb3VyY2UuRW5hYmxlVXNpbmdNZWRpYVNvdXJjZUF0dGFjaG1lbnRNZXRob2RzIixuPzE6MCl9OwokTEM9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJRVUlDIixuPzE6MCl9OwpyYzI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5BdWRpb1dyaXRlRHVyYXRpb25Mb2NhbCIsbil9OwpzZ3c9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5QbGF5ZXJDb25maWd1cmF0aW9uLkRlY29kZVRvVGV4dHVyZVByZWZlcnJlZCIsbj8xOjApfTsKTjBTPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuVmlkZW9EZWNvZGVySW5pdGlhbFByZXJvbGxDb3VudCIsbil9OwpwTnQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5WaWRlb1JlbmRlcmVyTWluSW5wdXRCdWZmZXJzIixuKX07CllSdz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlZpZGVvUmVuZGVyZXJNaW5EZWNvZGVkRnJhbWVzIixuKX07CkhGWj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkluY3JlbWVudGFsUGFyc2VMb29rQWhlYWQiLG4/MTowKX07CmZ5VT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZVJlc2V0QXVkaW9EZWNvZGVyIixuPzE6MCl9OwpKY2I9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5FbmFibGVGbHVzaER1cmluZ1NlZWsiLG4/MTowKX07Ckl5dz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIkRlY29kZXJCdWZmZXIuRW5hYmxlQ29uZmlndXJhYmxlRGVjb21taXRTdHJhdGVneSIsbil9OwpTUnQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJEZWNvZGVyQnVmZmVyLlJlbGVhc2VNZW1vcnlPbkJhY2tncm91bmQiLG4/MTowKX07CkFjWj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkRlY29kZWRBdWRpb0J1ZmZlclBvb2wiLG4/MTowKX07Cm1MMj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlZpZGVvRnJhbWVJbXBsUG9vbCIsbj8xOjApfTsKS1haPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuRXhwZXJpbWVudGFsTWF4UGVuZGluZ0J5dGVzUGVyUGFyc2UiLG4pfTsKdmFyIE9XdD1mdW5jdGlvbihuKXtyZXR1cm4gZVhbSVsxMF1dKHRoaXMsMTksNzA4NyxuKX07Ck9GQz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLk1heFNhbXBsZXNQZXJXcml0ZSIsbil9OwpQUXI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5NZWRpYUNvZGVjUmVzZXREZWxheU1zIixuKX07ClpGdD1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkRpc2FibGVMb3dQZXJmb3JtYW5jZVNvZnR3YXJlRGVjb2RlIixuPzE6MCl9OwpVTDI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5FbmFibGVBdjFTdGFydHVwT3B0aW1pemF0aW9uIixuPzE6MCl9Owp5YzI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Vc2VEdWFsVGhyZWFkc0ZvclZpZGVvIixuPzE6MCl9OwpFdXQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5WaWRlb0J1ZmZlclNpemVDbGFtcE1iIixuKX07CmlGVT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLjcyMHBWaWRlb0J1ZmZlclNpemVDbGFtcE1iIixuKX07CnVxdD1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkZvcmNlRGVjb2RlVG9UZXh0dXJlIixuPzE6MCl9OwpvdTI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Gb3JjZUNsZWFyU3VyZmFjZVZpZXciLG4/MTowKX07CmRMaT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZUxvd0xhdGVuY3kiLG4/MTowKX07CnpRUz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlNraXBGbHVzaE9uRGVjb2RlclRlYXJkb3duIixuPzE6MCl9OwpseTI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5BbGxvd0F1ZGlvV3JpdGluZ09uUGF1c2UiLG4/MTowKX07ClQwVT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZVZpZGVvUmVuZGVyZXJWc3BBZGp1c3RtZW50IixuPzE6MCl9OwpqZ2g9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Ta2lwVmlkZW9GcmFtZXNPdmVyNjBGcHMiLG4/MTowKX07CkNRQz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkZsdXNoQXVkaW9UcmFja0R1cmluZ1NlZWsiLG4/MTowKX07CkIwaj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkJ5cGFzc01vam9Gb3JNZWRpYSIsbj8xOjApfTsKRlgyPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuSWdub3JlTWVkaWFDb2RlY0NhbGxiYWNrc0R1cmluZ0ZsdXNoaW5nIixuPzE6MCl9OwpNRng9ZnVuY3Rpb24oKXt2YXIgbj13aW5kb3cuaDV2Y2M/LnNldHRpbmdzPy5nZXRQZXJzaXN0ZW50U2V0dGluZ0FzU3RyaW5nPy4oImNwdV91c2FnZV90cmFja2VyX2ludGVydmFscyIpO2lmKG4hPW51bGwpe249SlNPTi5wYXJzZShuKT8/W107dmFyIFc9bi5maWx0ZXIoRD0+RC50eXBlPT09InRvdGFsIikubWFwKEQ9PkQuc2Vjb25kcyk7CmZvcihsZXQgRCBvZiB3TjIpVy5pbmRleE9mKEQpPT09LTEmJm4ucHVzaCh7dHlwZToidG90YWwiLHNlY29uZHM6RH0pO3dpbmRvdy5oNXZjYz8uc2V0dGluZ3M/LnNldCgiY3B1X3VzYWdlX3RyYWNrZXJfaW50ZXJ2YWxzX2VuYWJsZWQiLDEpO3dpbmRvdy5oNXZjYz8uc2V0dGluZ3M/LnNldCgiY3B1X3VzYWdlX3RyYWNrZXJfaW50ZXJ2YWxzIixKU09OLnN0cmluZ2lmeShuKSl9fTsKUlFVPWZ1bmN0aW9uKCl7dmFyIG49d2luZG93Lkg1dmNjUGxhdGZvcm1TZXJ2aWNlLFc9IiI7aWYobiYmbi5oYXMoImRldi5jb2JhbHQuY29hdC5jbGllbnRsb2dpbmZvIikmJihuPW4ub3BlbigiZGV2LmNvYmFsdC5jb2F0LmNsaWVudGxvZ2luZm8iLCgpPT57fSkpKXtsZXQgRD1uLnNlbmQobmV3IEFycmF5QnVmZmVyKDApKTsKRCYmKFc9U3RyaW5nLmZyb21DaGFyQ29kZSguLi4obmV3IFVpbnQ4QXJyYXkoRCkpKSk7bi5jbG9zZSgpfXJldHVybiBXfTsKVkZTPWZ1bmN0aW9uKG4pe3ZhciBXPXdpbmRvdy5INXZjY1BsYXRmb3JtU2VydmljZTtpZihXKXt2YXIgRD1RZ2kuZmluZChiPT5XLmhhcyhiKSk7CkQmJihEPVcub3BlbihELCgpPT57fSkpJiYoRC5zZW5kKEl3KGBjcG46ICR7bn1gKS5idWZmZXIpLEQuY2xvc2UoKSl9fTsKZy53aj1mdW5jdGlvbihuLFcsRCxiKXtnLkZCKG4sRCxgJHtXLnRvRml4ZWQoMyl9OiR7Yi5qb2luKCI6Iil9YCl9OwpNUD1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucHJvdmlkZXIuZ2V0Q3VycmVudFRpbWUoKTtnLndqKG4sVywiY210IixbRC50b0ZpeGVkKDMpXSk7dmFyIGI9RD1uLnByb3ZpZGVyLm90KCk7aWYoKCFuLmp8fEFKKG4ucHJvdmlkZXIudmlkZW9EYXRhKT8wOmIqMUUzPm4uai52TysxMDApJiZuLmope2I9bi5qLmlzQWQ7RD1EKjFFMy1uLmoudk87bi5lST1XKjFFMy1uLmoudFMtRC1uLmouT2E7dmFyIHY9KDAsZy5SKSgpLUQ7Vz1uLmVJO0Q9bi5wcm92aWRlci52aWRlb0RhdGE7dmFyIGs9RC5pc0FkKCk7aWYoYnx8ayl7az1gJHtiPyJhZCI6InZpZGVvIn1fdG9fJHtrPyJhZCI6InZpZGVvIn1gO3ZhciBoPXt9O0Qua1cmJihoLmN0dEF1dGhJbmZvPXt0b2tlbjpELmtXLHZpZGVvSWQ6RC52aWRlb0lkfSk7aC5zdGFydFRpbWU9di1XO2cuYmQoayxoKTtnLm5sKHt0YXJnZXRWaWRlb0lkOkQudmlkZW9JZCx0YXJnZXRDcG46RC5jbGllbnRQbGF5YmFja05vbmNlfSxrKTtnLmFMKCJwYnMiLHYsCmspfWVsc2Ugdj1uLnByb3ZpZGVyLkwuZUcoKSx2LlYhPT1ELmNsaWVudFBsYXliYWNrTm9uY2U/KHYuaj1ELmNsaWVudFBsYXliYWNrTm9uY2Usdi5KPVcpOkQuTlAoKXx8Zy5HcShuZXcgZy5ReCgiQ1NJIHRpbWluZyBsb2dnZWQgYmVmb3JlIGdsbGF0Iix7Y3BuOkQuY2xpZW50UGxheWJhY2tOb25jZX0pKTtuLlUoImdsbGF0Iix7bDpuLmVJLnRvRml4ZWQoKSxwcmV2X2FkOitifSk7ZGVsZXRlIG4uan19OwpnLkZCPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkouZ2V0KFcpO2I/Yi5wdXNoKEQpOm4uSi5zZXQoVyxbRF0pfTsKUXU9ZnVuY3Rpb24obixXKXtuLmlzT2ZmbGluZT1XO2cud2oobixnLlJrKG4ucHJvdmlkZXIpLCJpc19vZmZsaW5lIixbbi5pc09mZmxpbmU/IjEiOiIwIl0pfTsKVnU9ZnVuY3Rpb24obixXLEQpe2lmKCFpc05hTihELlc3KSl7bGV0IGI9RC5XNztELko8YiYmKGI9RC5KKTtnLndqKG4sVywiYmgiLFtiLnRvRml4ZWQoMyldKX19OwpjbD1mdW5jdGlvbihuLFc9TmFOKXtXPVc+PTA/VzpnLlJrKG4ucHJvdmlkZXIpO3ZhciBEPW4ucHJvdmlkZXIuTC5ISygpLGI9RC5Fci0obi52Snx8MCk7Yj4wJiZnLndqKG4sVywiYndtIixbYiwoRC5vdy0obi5FNXx8MCkpLnRvRml4ZWQoMyldKTtpc05hTihuLnZKKSYmRC5FciYmbi5pc09mZmxpbmUmJlF1KG4sITEpO24udko9RC5FcjtuLkU1PUQub3c7aXNOYU4oRC5iYW5kd2lkdGhFc3RpbWF0ZSl8fGcud2oobixXLCJid2UiLFtELmJhbmR3aWR0aEVzdGltYXRlLnRvRml4ZWQoMCldKTtuLnByb3ZpZGVyLkIuV1goKSYmT2JqZWN0LmtleXMoRC5OKS5sZW5ndGghPT0wJiZuLlUoImJ3aW5mbyIsRC5OKTtpZihuLnByb3ZpZGVyLkIuV1goKXx8bi5wcm92aWRlci5CLlMoImh0bWw1X2xvZ19tZW1pbmZvIikpYj1oUXgoKSxPYmplY3QudmFsdWVzKGIpLnNvbWUodj0+diE9PXZvaWQgMCkmJm4uVSgibWVtaW5mbyIsYik7Cm4ucHJvdmlkZXIuQi5XWCgpJiYoYj1uLnlFPy5YKCkpJiZPYmplY3QudmFsdWVzKGIpLnNvbWUodj0+diE9bnVsbCkmJm4uVSgiY3B1aW5mbyIsYik7Cm4uVEMmJmcud2oobixXLCJiYXQiLFtuLlRDLmxldmVsLG4uVEMuY2hhcmdpbmc/IjEiOiIwIl0pO2I9bi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpO24uVTUhPT1iJiYoZy53aihuLFcsInZpcyIsW2JdKSxuLlU1PWIpO01QKG4sVyk7KGI9Y2NaKG4ucHJvdmlkZXIpKSYmYiE9PW4uWSQmJihnLndqKG4sVywiY29ubiIsW2JdKSxuLlkkPWIpO1Z1KG4sVyxEKX07Cm5PTT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5SayhuLnByb3ZpZGVyKTtheVoobixiLFcsMCxEKTtjbChuLGIpO2FrKG4pfTsKbkM9ZnVuY3Rpb24obixXKXtnLkZCKG4sImNhdCIsVyl9OwpXVGg9ZnVuY3Rpb24obixXKXtXPXtjcG46bi5wcm92aWRlci52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSxzZXF1ZW5jZU51bWJlcjpXLHNlcmlhbGl6ZWRXYXRjaEVuZHBvaW50TG9nZ2luZ0NvbnRleHQ6bi5wcm92aWRlci52aWRlb0RhdGEubTB9O24uc2VyaWFsaXplZEhvdXNlQnJhbmRQbGF5ZXJTZXJ2aWNlTG9nZ2luZ0NvbnRleHQmJihXLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0PWxwKG4uc2VyaWFsaXplZEhvdXNlQnJhbmRQbGF5ZXJTZXJ2aWNlTG9nZ2luZ0NvbnRleHQpfHx2b2lkIDApO24ucHJvdmlkZXIudmlkZW9EYXRhLnBsYXllclJlc3BvbnNlQ3BuJiYoVy5wbGF5ZXJSZXNwb25zZUNwbj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5wbGF5ZXJSZXNwb25zZUNwbik7V3IubGVuZ3RoJiYoVy5kZWNvZGVySW5mbz1Xcik7bi5yZW1vdGVDb250cm9sTW9kZSYmKFcucmVtb3RlQ29udHJvbE1vZGU9bi5yZW1vdGVDb250cm9sTW9kZSk7Cm4ucmVtb3RlQ29ubmVjdGVkRGV2aWNlcy5sZW5ndGgmJihXLnJlbW90ZUNvbm5lY3RlZERldmljZXM9bi5yZW1vdGVDb25uZWN0ZWREZXZpY2VzKTtpZihuLlBYPy5sZW5ndGgpe1cuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhPVtdO2Zvcih2YXIgRCBvZiBuLlBYKXtsZXQgYj1nLmQxKEQpO2ImJlcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhLnB1c2goYil9fSFuLmpXJiZuLnByb3ZpZGVyLnZpZGVvRGF0YS5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhJiYoVy5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhPVtdLEQ9Zy5kMShuLnByb3ZpZGVyLnZpZGVvRGF0YS5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhKSkmJihXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEucHVzaChEKSxuLmpXPSEwKTtuLlkuc2l6ZSYmKFcuZGFpQ3VlUG9pbnRFdmVudHM9QXJyYXkuZnJvbShuLlkudmFsdWVzKCkpKTtuLlkuY2xlYXIoKTtyZXR1cm4gV307CkRCaT1mdW5jdGlvbihuKXt2YXIgVz17Li4ubn07bi5zZXJpYWxpemVkUW9lQ29udGV4dERhdGEmJihXLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YT1uLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YS5tYXAoRD0+RCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Zy5FQShEKTpEKSk7Cm4uc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YSYmKFcuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YT1uLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEubWFwKEQ9PkQgaW5zdGFuY2VvZiBVaW50OEFycmF5P2cuRUEoRCk6RCkpOwpuLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0JiYobj1uLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0LG4gaW5zdGFuY2VvZiBVaW50OEFycmF5JiYoVy5zZXJpYWxpemVkSG91c2VCcmFuZFBsYXllclNlcnZpY2VMb2dnaW5nQ29udGV4dD1nLkVBKG4pKSk7cmV0dXJuIFd9OwpiUFM9ZnVuY3Rpb24obixXLEQpe2cuSEUobi5wcm92aWRlci5CLG4ucHJvdmlkZXIudmlkZW9EYXRhLlYoKSkudGhlbihiPT57dmFyIHY9ITE7Vy5pbmNsdWRlcygiJmR0PSIpfHxXLmluY2x1ZGVzKCImY290bj0iKT92PSEwOm4ucHJvdmlkZXIuQi5TKCJxb2Vfd2l0aF9uZXR3b3JrbGVzcyIpJiYodj0hMCk7dmFyIGs9bi5wcm92aWRlci5CLlMoInFvZV9zZW5kX2FuZF93cml0ZSIpLGg9bi5wcm92aWRlci5CO2I9alIoVyxoLG4ucHJvdmlkZXIuQi5wYWdlSWQsbi5wcm92aWRlci5CLnNlbmRWaXNpdG9ySWRIZWFkZXI/bi5wcm92aWRlci52aWRlb0RhdGEudmlzaXRvckRhdGE6dm9pZCAwLGIpO2guUygiaHRtbDVfc2ltcGxpZnlfcGluZ3MiKSYmKGI9Ynx8e30pO2I/KGIubWV0aG9kPSJQT1NUIixiLnBvc3RCb2R5PUQsQ0QoVyxiLHt0b2tlbjpuLnByb3ZpZGVyLnZpZGVvRGF0YS5rVyx5bzpuLnByb3ZpZGVyLnZpZGVvRGF0YS5RdixtZHhFbnZpcm9ubWVudDpuLnByb3ZpZGVyLnZpZGVvRGF0YS5tZHhFbnZpcm9ubWVudH0sCmgsdm9pZCAwLHYsayYmbi5TJCkpOnY/KHY9bi5wcm92aWRlci5CLlMoIm5ldHdvcmtsZXNzX2FqYXgiKSxoPXttZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkR9LGsmJm4uUyQ/Zy5IVSgpLnNlbmRBbmRXcml0ZShXLGgpOnY/Zy5lZChXLHttZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkR9KTpnLkhVKCkuc2VuZFRoZW5Xcml0ZShXLGgpKTpndncoVyxEKX0pfTsKYWs9ZnVuY3Rpb24obil7aWYoIW4ucHJvdmlkZXIuQi5TKCJodG1sNV9xb2Vfbm9fbGVuX2NoZWNrIikpe3ZhciBXPTA7Zm9yKGxldCBbRCxiXW9mIG4uSi5lbnRyaWVzKCkpVys9RC5sZW5ndGgrTnVtYmVyKGcudV8oYiwodixrKT0+ditrLmxlbmd0aCwwKSk7Clc+OTZFMyYmKG5ldyBnLmZfKG4ucmVwb3J0U3RhdHMsMCxuKSkuc3RhcnQoKX19Owp2TzI9ZnVuY3Rpb24obil7bi5wcm92aWRlci52aWRlb0RhdGEuWVomJm5DKG4sInByZWZldGNoIik7bi5wcm92aWRlci52aWRlb0RhdGEuUyQmJm4uVSgicmVsb2FkIix7cjpuLnByb3ZpZGVyLnZpZGVvRGF0YS5yZWxvYWRSZWFzb24sY3Q6bi5wcm92aWRlci52aWRlb0RhdGEuUyR9KTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5JUiYmbkMobiwibW9uaXRvciIpO24ucHJvdmlkZXIudmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZuQyhuLCJsaXZlIik7TnMmJm5DKG4sInN0cmVhbWluZyIpO24ucHJvdmlkZXIudmlkZW9EYXRhLmk1JiZuLlUoImN0cmwiLHttb2RlOm4ucHJvdmlkZXIudmlkZW9EYXRhLmk1fSwhMCk7aWYobi5wcm92aWRlci52aWRlb0RhdGEuVUspe3ZhciBXPW4ucHJvdmlkZXIudmlkZW9EYXRhLlVLLnJlcGxhY2UoLywvZywiXyIpO24uVSgieXRwIix7dHlwZTpXfSwhMCl9bi5wcm92aWRlci52aWRlb0RhdGEuVDQmJihXPW4ucHJvdmlkZXIudmlkZW9EYXRhLlQ0LnJlcGxhY2UoLywvZywKIi4iKSxuLlUoInl0cmV4cCIse2lkczpXfSwhMCkpO24ucHJvdmlkZXIuQi5XWCgpJiZuLlUoIm5vdyIse3d0OigwLGcuUikoKX0pO1c9bi5wcm92aWRlci52aWRlb0RhdGE7dmFyIEQ9bi5wcm92aWRlci5CLlMoImVuYWJsZV93aGl0ZV9ub2lzZSIpfHxuLnByb3ZpZGVyLkIuUygiZW5hYmxlX3dlYmdsX25vb3AiKSxiPWcua3AoVyl8fGcuSFQoVyl8fGcuZkEoVyl8fGcuSkQoVyk7KER8fGIpJiYoRD0oMCxnLkRWKSgpKSYmbi5KLnNldCgiZ3B1IixbRF0pO09TKG4ucHJvdmlkZXIudmlkZW9EYXRhKSYmZy53aihuLGcuUmsobi5wcm92aWRlciksImR0IixbIjEiXSk7Vy5jb3RuJiYhT1MoVykmJlF1KG4sITApO24ucHJvdmlkZXIuQi5XWCgpJiYoVz0oMCxnLlIpKCktbi5wcm92aWRlci5CLkN1LG4uVSgicGxheWVyYWdlIix7c2VjczooMS42KipNYXRoLnJvdW5kKE1hdGgubG9nKFcvMUUzKS9NYXRoLmxvZygxLjYpKSkudG9GaXhlZCgpfSkpO24uVj0hMDtuLks9VzAoKCk9PntuLnJlcG9ydFN0YXRzKCl9LAoxRTQpfTsKYXlaPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bi5wcm92aWRlci5CLk4uY2JydmVyO24ucHJvdmlkZXIuQi5OLmNicj09PSJDaHJvbWUiJiYvXjk2Wy5dLy50ZXN0KGspJiZEPT09Im5ldC5iYWRzdGF0dXMiJiYvcmNcLjUwMC8udGVzdCh2KSYmYm0obiwzKTsvYjI0ODE4MDI3OC8udGVzdCh2KSYmYm0obiw0KTtrPW4ucHJvdmlkZXIuZ2V0Q3VycmVudFRpbWUoKTtiPWI9PT0xPyJmYXRhbCI6IiI7RD1bRCxiLGsudG9GaXhlZCgzKV07YiYmKHYrPWA7YTZzLiR7TGMoKX1gKTt2JiZELnB1c2goa29yKHYpKTtnLndqKG4sVywiZXJyb3IiLEQpO24uVj0hMH07CmJtPWZ1bmN0aW9uKG4sVyl7bi5ZWnx8KGcuRkIobiwiZmNueiIsYCR7V31gKSxuLllaPSEwKX07CmhEMT1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKEQhPT1uLk4pe24uZSR8fFc8bi5XfHwobi5OPT09IlBMIj9uLnBsYXlUaW1lU2Vjcys9Vy1uLlc6bi5OPT09IkIiJiZuLmlzQnVmZmVyaW5nJiYobi5pc0J1ZmZlcmluZz0hMSxuLnJlYnVmZmVyVGltZVNlY3MrPVctbi5WUSwhbi5SYSYmbi5yZWJ1ZmZlclRpbWVTZWNzPj0xMCYmbi5wbGF5VGltZVNlY3M8PTE4MCYmKG4uSi5zZXQoInFvZWFsZXJ0IixbIjEiXSksbi5SYT0hMCkpLEQhPT0iQiJ8fG4uTiE9PSJQTCImJm4uTiE9PSJQQiJ8fChuLmlzQnVmZmVyaW5nPSEwKSxuLlc9Vyk7bi5OPT09IlBMIiYmKEQ9PT0iQiJ8fEQ9PT0iUyIpfHxuLnByb3ZpZGVyLkIuV1goKT9jbChuLFcpOihuLmZCfHxEIT09IlBMInx8KG4uZkI9ITAsVnUobixXLG4ucHJvdmlkZXIuTC5ISygpKSksTVAobixXKSk7RD09PSJQTCImJmcuSmEobi5NZCk7dmFyIGs9W0RdO0Q9PT0iUyImJmImJmsucHVzaChgc3MuJHtifWApO0Q9PT0iUEEiJiZ2JiZrLnB1c2goYHNyLiR7dn1gKTsKZy53aihuLFcsInZwcyIsayk7bi5OPUQ7bi5WUT1XO24uVz1XO24uVj0hMH19Owp4Qmg9ZnVuY3Rpb24obil7aWYoIShuLlg+PTApKWlmKG4ucHJvdmlkZXIuQi5OZHx8bi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpIT09Myl7dmFyIFc9bi5wcm92aWRlci5MLnpzKCExKSxEPW4ucHJvdmlkZXIuTC56cyghMCk7bi5VKCJ1c2VyX2ludGVudF9iaCIse2JoOlcudG9GaXhlZCgzKSx0aDpELnRvRml4ZWQoMyl9KTtuLlg9Zy5SayhuLnByb3ZpZGVyKX1lbHNlIG4uQ3U9ITB9OwpMVGI9ZnVuY3Rpb24obixXKXtpZihnLm1NKG4ucHJvdmlkZXIudmlkZW9EYXRhKSl7bj00O3ZhciBEPTF9ZWxzZSBuPVcuc291cmNlPz8wO249YHNtcy4ke259YDtEIT09dm9pZCAwJiYobis9YF8ke0R9YCk7cmV0dXJuIG59Owp2YXIgQTExPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEo0W0lbMTBdXSh0aGlzLDEsNDM2MixuLFcpfTsKdnI9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9Zy5SayhuLnByb3ZpZGVyKTtEIT09MSYmRCE9PTMmJkQhPT01fHxnLndqKG4seCwidnBzIixbbi5OXSk7Zy5GQihuLCJ4dnQiLGB0LiR7eC50b0ZpeGVkKDMpfTttLiR7aC50b0ZpeGVkKDMpfTtnLiR7V307dHQuJHtEfTtucC4ke2J9O2MuJHt2fTtkLiR7a31gKX07Cmtvcj1mdW5jdGlvbihuKXsvW15hLXpBLVowLTk7LiFfLV0vLnRlc3QobikmJihuPW4ucmVwbGFjZSgvWytdL2csIi0iKS5yZXBsYWNlKC9bXmEtekEtWjAtOTsuIV8tXS9nLCJfIikpO3JldHVybiBufTsKT2I9ZnVuY3Rpb24obixXKXtpZihuLlpEJiYhbi5PbilyZXR1cm4gMztpZihuLmlzU3VzcGVuZGVkKXJldHVybiAxO2lmKG4ubWVkaWFTb3VyY2U/LmJkKCkpcmV0dXJuIDQ7dmFyIEQ9KFcuUEouaW5mby5hdWRpbz9uLnBvbGljeS52SjpuLnBvbGljeS5lJCkvKFcuTnMqbi5wb2xpY3kud3kpO2lmKG4ucG9saWN5LmNIPjAmJm4ubWVkaWFTb3VyY2UmJm42KG4ubWVkaWFTb3VyY2UpJiYoVz1XLlBKLmluZm8udmlkZW8/bi5tZWRpYVNvdXJjZS5KOm4ubWVkaWFTb3VyY2UuTikmJiFXLnl1KCkpe1c9Vy5aRigpO2xldCBiPUNNKFcsbi5nZXRDdXJyZW50VGltZSgpKTtiPj0wJiYoVz1uLmdldEN1cnJlbnRUaW1lKCktVy5zdGFydChiKSxEKz1NYXRoLm1heCgwLE1hdGgubWluKFctbi5wb2xpY3kuY0gsbi5wb2xpY3kuQmQpKSl9bi5wb2xpY3kuTz4wJiYoRD1NYXRoLm1pbihELG4ucG9saWN5Lk8pKTtyZXR1cm4gRH07CmRWPWZ1bmN0aW9uKG4sVyxEKXtlRGIobixELnFkfHwidW5rbm93biIpO24uTC5zZWVrVG8oVyxEKX07CmcuZEM9ZnVuY3Rpb24obixXLEQsYix2KXtuLkwuZ2V0VmlkZW9EYXRhKCkuREYoKT92JiZuLnhXLlRDK3YvMUUzPkQmJihuLlUoInNkYWkiLHtzZWc6YixyYnQ6RC50b0ZpeGVkKDMpLGVuZDpuLnhXLlRDLnRvRml4ZWQoMyksc2Q6di50b0ZpeGVkKDMpfSksbi5YJCghMSwicm9sbGJhY2siKSk6bi5wb2xpY3kuVTEmJm4uWCQoITEsInJvbGxiYWNrIik7aWYobi5LdS5pc01hbmlmZXN0bGVzcyl7dj1VNChuLmF1ZGlvVHJhY2ssYixELFcpO3ZhciBrPVU0KG4udmlkZW9UcmFjayxiLEQsVyk7bi5wb2xpY3kuczV8fChrJiZUeChuLkt1LGIsITApLHYmJlR4KG4uS3UsYiwhMSkpO2smJm4udmlkZW9UcmFjay5rSSgpO3YmJm4uYXVkaW9UcmFjay5rSSgpO24uVSgic2RhaSIse3JvbGxiazJfc2VnOmIscmJ0OkQudG9GaXhlZCgzKSxsdDpXLnRvRml4ZWQoMyksYTp2LHY6a30pOyh2fHxrKSYmbi5wb2xpY3kuVTEmJmcuQWcobil9fTsKWUM9ZnVuY3Rpb24obixXKXtuLmhhbmRsZUVycm9yKCJmbXQudW5wYXJzZWFibGUiLFcsMSl9OwpnLkFnPWZ1bmN0aW9uKG4pe2cuSmEobi5uTil9OwpTek09ZnVuY3Rpb24obil7dmFyIFc9bi5qbCgpLmZpbHRlcihEPT5ELm5hbWVzcGFjZT09PSJhZCIpOwpmb3IobGV0IEQgb2YgVylpZihELnN0YXJ0LzFFMz5uLmdldEN1cnJlbnRUaW1lKCkpcmV0dXJuIEQuc3RhcnQvMUUzO3JldHVybiBJbmZpbml0eX07CmM2PWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKTtuLnFHPVd9OwpIJGg9ZnVuY3Rpb24obixXKXtpZih4TihXLkF3W1cuQXcubGVuZ3RoLTFdKSl7YTp7dmFyIEQ9bi5jVjtXPVcuQXdbMF0uUEo7aWYoVy5pbmZvLnZpZGVvKXtpZihELlchPT1XKXtELlc9VztEPVMkaChEKTticmVhayBhfX1lbHNlIEQuSEo9RC5WIT09VyxELlY9VztEPW51bGx9Z09DKG4sRCl9fTsKUW89ZnVuY3Rpb24obil7bi5wb2xpY3kuSEQmJm4ucG9saWN5LmU0JiZNYXRoLm1pbihnVEMobi52aWRlb1RyYWNrKSxnVEMobi5hdWRpb1RyYWNrKSkqMUUzPm4ucG9saWN5Lm0kP2cuSmEobi5aSyk6bi5oVCgpfTsKQjY9ZnVuY3Rpb24obixXLEQsYj0hMSl7YiYmIVcuVEMmJihWVCgpfHwoYj1XLlFFKSYmIWIudFooRC5pbmZvKSYmbi5MLkJvKCksVy5UQz0hMCk7Vy5QSiE9PUQmJihXLlBKPUQpfTsKd3U9ZnVuY3Rpb24obil7cmV0dXJuIG4uSXc8bi5peH07ClIkPWZ1bmN0aW9uKG4pe24uemkoKTtuLlhhLmlzU2Vla2luZygpO24uUXUmJkRMYihuLlF1LG4udmlkZW9UcmFjay5QSik7Zy5BZyhuKTtyZXR1cm4gRWIobi5YYSl9Owpkaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5MLmdldFZpZGVvRGF0YSgpLnpXKCl8fG4ucG9saWN5Lm1EfTsKelMyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKE9iKG4sVykrbi5wb2xpY3kualIpKlcuTnN9OwpFUlM9ZnVuY3Rpb24obil7aWYobi5MLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrKXJldHVybiExO3ZhciBXPW4uTC5oNSgpO2lmKCFXKXJldHVybiExO1c9Vy5nZXREdXJhdGlvbigpO2lmKG4ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuTiYmbi5tZWRpYVNvdXJjZS5KKXt2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCksYj1uLm1lZGlhU291cmNlLk4uWkYoKTtuPW4ubWVkaWFTb3VyY2UuSi5aRigpO2I9Yj9GWihiLEQpOkQ7RD1uP0ZaKG4sRCk6RDtEPU1hdGgubWluKGIsRCk7Vz1pc05hTihEKT8hMTpEPj1XLS4wMX1lbHNlIFc9ITE7cmV0dXJuIFd9OwpYemg9ZnVuY3Rpb24obixXLEQpe2lmKCEobi52aWRlb1RyYWNrLlBKLk4oKSYmbi5hdWRpb1RyYWNrLlBKLk4oKSYmbi5tZWRpYVNvdXJjZSYmbi5tZWRpYVNvdXJjZS5KJiZuLm1lZGlhU291cmNlLk4pKXJldHVybiExO2lmKEQmJm4uS3UuaXNNYW5pZmVzdGxlc3MmJihuLnZpZGVvVHJhY2suWD09PS0xfHxuLmF1ZGlvVHJhY2suWD09PS0xKSlyZXR1cm4hMDt2YXIgYj1LdihuLnZpZGVvVHJhY2ssVyxEKTtpZihpc05hTihiKSlyZXR1cm4hMTtuPUt2KG4uYXVkaW9UcmFjayxuLnBvbGljeS5FNT9XOmIsRCk7cmV0dXJuIGlzTmFOKG4pPyExOiEwfTsKcUoyPWZ1bmN0aW9uKG4pe24uUWo/Llh0Py5pdGFnRGVueWxpc3QmJm4uV0Yobi5Raj8uWHQuaXRhZ0RlbnlsaXN0KTtuLlFqPy5wbGF5YmFja1N0YXJ0UG9saWN5JiZsUyhuLnBvbGljeSxuLlFqPy5wbGF5YmFja1N0YXJ0UG9saWN5LDMsbi5Raj8uY0EoKSk7aWYobi5wb2xpY3kuY0wpe3ZhciBXPW4uRTEoKTsoVz1XP24uUWo/LkR3LmdldChXKTp2b2lkIDApJiZuLnhXLnN5KFcsLTEpfW4uS3UuT3x8bi5wb2xpY3kuV2l8fChXPW4uUWo/LlFXLFc/LndmJiZXPy52NyYmbi5LdS56VyYmQzYobi5LdSxXLndmLFcudjcpKTtpZihuLlFqPy5NUyl7Vz1uLlFqLk1TLmdldChuLkUxKCl8fCIiKTtpZighVylyZXR1cm47aWYobi5LdSYmVy5mb3JtYXRJZCl7bGV0IEQ9bi5LdS5KLmdldChNayhXLmZvcm1hdElkKSk7RCYmKEQuaW5mby5kZWJ1Z0luZm89Vy5kZWJ1Z0luZm8pfX1uLnBvbGljeS5EJiYobi5Raj8uckIoKS5mb3JFYWNoKEQ9PntuLmk4KEQpfSksbi5Raj8uRm8oKSl9Owp0OWg9ZnVuY3Rpb24obil7aWYoIW4uS3UuelcpcmV0dXJuITA7dmFyIFc9bi5MLmdldFZpZGVvRGF0YSgpO2lmKG4uTC5PUCgpKXJldHVybiBuLlUoIm9tYnBhIix7fSksITE7aWYoISFuLlFqPy5RVz8uWjMhPT1uLkt1LlhnKXJldHVybiBuLlUoIm9tYnBsbW0iLHt9KSwhMTt2YXIgRD1XLlRDfHxXLmxpdmVVdGNTdGFydFNlY29uZHN8fFcuVXI7aWYobi5LdS5YZyYmRClyZXR1cm4gbi5VKCJvbWJwbHN0Iix7fSksITE7aWYobi5LdS5PfHxuLnBvbGljeS5XaSlyZXR1cm4gbi5VKCJvbWJhYiIse30pLCExO0Q9RGF0ZS5ub3coKTtpZighVy5saXZlUHJlbG9hZCYmRnYobi5LdSkmJiFpc05hTihuLkNIKSYmRC1uLkNIPm4ucG9saWN5LkZVKjFFMylyZXR1cm4gbi5VKCJvbWJ0dGwiLHt9KSwhMTtpZih4cChXKSE9PTAmJiFuLnBvbGljeS5OfHxXLlMoImh0bWw1X2Rpc2FibGVfb25lc2llX21lZGlhX2Zvcl9tb3NhaWMiKSYmVy5aaCgpfHxXLlMoImh0bWw1X2Rpc2FibGVfb25lc2llX21lZGlhX2Zvcl9saWZhX2VsaWdpYmxlIikmJgpweihXKSlyZXR1cm4hMTtpZihuLkwuRygpLlp0KCkuTi5RUShHb00pJiYoVz1uLlFqPy5waygpPz8wLFc+PTAmJm4uS3UuaXNXaW5kb3dlZExpdmUmJihXPG4uS3UuSlUqMUUzfHxXPm4uS3Uub1IqMUUzKSkpcmV0dXJuIG4uVSgib21id25kIix7c3Q6VyxtaW46bi5LdS5KVSoxRTMsbWF4Om4uS3Uub1IqMUUzfSksITE7aWYobi5LdS5JdCYmbi5LdS5pc1dpbmRvd2VkTGl2ZSlpZihuLkwuRygpLlMoImh0bWw1X3VzZV9vbmVzaWVfd2luZG93ZWRfbGl2ZV9tZWRpYSIpKW4uVSgib21hbWluc3EiLHt9KTtlbHNlIHJldHVybiBuLlUoIm9tYm1pbnNxIix7fSksITE7cmV0dXJuITB9OwprYz1mdW5jdGlvbihuLFcpe3ZhciBEPWN3KFcuUEosbi5LdS56VyksYj1uLmhtPy5mMyhEKXx8W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBuLlUoIm9tYm1zaSIse30pLCExO2I9bmV3IHdrKGIpO2lmKCghbi5wb2xpY3kudHd8fGlzRmluaXRlKG4uZ2V0Q3VycmVudFRpbWUoKSl8fG4uTC5lSigpKSYmIWIua2Yobi5nZXRDdXJyZW50VGltZSgpKSYmIW4uTC5nZXRWaWRlb0RhdGEoKS5saXZlUHJlbG9hZClyZXR1cm4gbi5VKCJvc3RtZiIse2N0Om4uZ2V0Q3VycmVudFRpbWUoKSxhOlcuUEouaW5mby5lUygpfSksITE7bi5obT8uRVMoRCk7cmV0dXJuITB9OwokQmk9ZnVuY3Rpb24obixXKXt2YXIgRD1XLlBKLGI9bi5LdS56VztpZih0OWgobikpaWYobi5obSYmbi5obS5nRihjdyhELGIpKSl7aWYoYj1jdyhELGIpLGtjKG4sVykpe3ZhciB2PW5ldyB3ayhuLmhtLmYzKGIpKSxrPWg9Pnt0cnl7aC50bigpPyhuLmhhbmRsZUVycm9yKGguVkcoKSxoLnkwKCkpLEU0KFcsaCkseXMoaC5pbmZvKSYmQ3Iobi5OeSxXLEQsITApLG4uaFQoKSk6RjAobi5OeSxoKSYmKG4uSkM/LlMkKGguaW5mbyxuLnNVKSxuLmhUKCkpfWNhdGNoKHgpe2g9QiQoeCksbi5oYW5kbGVFcnJvcihoLmVycm9yQ29kZSxoLmRldGFpbHMsaC5zZXZlcml0eSksbi56aSgpfX07CkQuY0o9ITA7VXYodikmJihPNChXLG5ldyBTbihuLnBvbGljeSxiLHYsbi5obSxrKSksaXUobi50aW1pbmcpKX19ZWxzZSBuLlUoIm9tYmZtdCIse30pfTsKcjdoPWZ1bmN0aW9uKG4pe24ucG9saWN5LlgmJm4uUWomJihuLlFqLkd3LmZvckVhY2goVz0+e24uSm0oVywtMSl9KSxuLlFqLkd3PVtdKX07CmgyPWZ1bmN0aW9uKG4sVyl7Vz1XfHxuLnZpZGVvVHJhY2smJm4udmlkZW9UcmFjay5OJiZuLnZpZGVvVHJhY2suTi5zZWdtZW50U3RhcnRUaW1lfHxuLmdldEN1cnJlbnRUaW1lKCk7dmFyIEQ9QjYsYj1uLnZpZGVvVHJhY2ssdj1uLmNWO1c9di5uZXh0VmlkZW8mJnYubmV4dFZpZGVvLmluZGV4LlIzKFcpfHwwO3YuY0ohPT1XJiYodi5iZD17fSx2LmNKPVcsUnEodix2Lk4pKTtXPSF2Lk4uaXNMb2NrZWQoKSYmdi5ZPi0xJiYoMCxnLlIpKCktdi5ZPHYucG9saWN5LkFrKjFFMzt2YXIgaz12Lm5leHRWaWRlbyYmTXEodix2Lm5leHRWaWRlby5pbmZvKSozPE5XKHYuSWcpO2lmKCFXfHxrKVZCKHYpLGNwKHYpLHYuTz12Lk98fHYubmV4dFZpZGVvIT09di5XO3YubmV4dFZpZGVvJiYhdi5uZXh0VmlkZW8uaW5kZXguaXNMb2FkZWQoKSYmKHYuY0o9LTEpO0QobixiLHYubmV4dFZpZGVvKTtCNihuLG4uYXVkaW9UcmFjayxuLmNWLkopfTsKZURiPWZ1bmN0aW9uKG4sVyl7aWYoIWlzTmFOKG4uajApKXtsZXQgRD1EYXRlLm5vdygpLW4uajA7RDwxRTQmJm4uVSgiYmZhc3d0Y2giLHtlcDpELHNrOlchPT12b2lkIDA/IjEiOiIwIixzcjpXfHwiIn0pfX07ClhiPWZ1bmN0aW9uKG4pe2E6e2lmKG4uSGcoKSYmbWQobi52aWRlb1RyYWNrKSYmbWQobi5hdWRpb1RyYWNrKSYmbi5MLkhvKCkmJiFuLkwuVjAoKSYmIW4ubWVkaWFTb3VyY2U/Lk4/LmlRKCkmJiFuLm1lZGlhU291cmNlPy5KPy5pUSgpJiYhbi5BYil7dmFyIFc9bi5MLlhTPy5YKCk7aWYoIVcpYnJlYWsgYTtuLmF1ZGlvVHJhY2suSlgoKTtuLnZpZGVvVHJhY2suSlgoKTtuLkFiPVd9aWYoVz1uLkhnKCkmJm4uTC5IbygpJiYhbi5MLlYwKCkpaWYobi5BYiYmbi5BYi5KJiZuLkFiLk4mJm4udmlkZW9UcmFjay5EZygpJiZuLmF1ZGlvVHJhY2suRGcoKSl7dmFyIEQ9bi52aWRlb1RyYWNrLlcuYjcoKTtXPW4uYXVkaW9UcmFjay5XLmI3KCk7dmFyIGI9bi5BYj8uSi5aRigpLHY9bi5BYj8uTi5aRigpO0QmJlc/KEQ9QlIoYixrTihELmluZm8pLS4xKSxXPUJSKHYsa04oVy5pbmZvKS0uMSksVz1EJiZXKTpXPSExfWVsc2UgVz0hMTtXJiZuLkwuWFM/LlcoKX1pZihuLm1lZGlhU291cmNlKWlmKFc9Cm4uQWJ8fG4ubWVkaWFTb3VyY2Usdj1XLk4sRD1XLkosczdyKG4sbi5hdWRpb1RyYWNrKSxzN3IobixuLnZpZGVvVHJhY2spLGI9TjNDKG4pKXtpZihuLnBvbGljeS5lNCl7aWYoIXYuRDkoKSYmKFc9aVkobi5hdWRpb1RyYWNrKSkpe2lmKCF4YyhuLG4uYXVkaW9UcmFjayx2LFcuaW5mbykpcmV0dXJuO0xDKG4sbi5hdWRpb1RyYWNrLHYsVyl9aWYoIUQuRDkoKSYmKFc9aVkobi52aWRlb1RyYWNrKSkpe2lmKCF4YyhuLG4udmlkZW9UcmFjayxELFcuaW5mbykpcmV0dXJuO0xDKG4sbi52aWRlb1RyYWNrLEQsVyl9fW4ubXh8fChuLm14PSgwLGcuUikoKSxuLnBvbGljeS5XJiZuLlUoImFwZHBzIix7cjpifSkpfWVsc2V7aWYobi5teCl7Yj1uLm14O3ZhciBrPSgwLGcuUikoKS1iO2xldCBoPW4uYXVkaW9UcmFjay56cyghMCkqMUUzLHg9bi52aWRlb1RyYWNrLnpzKCEwKSoxRTM7bi5wb2xpY3kuVyYmKG4uVSgiYXBkcGUiLHtkdXI6ay50b0ZpeGVkKCksYWJ1ZjpoLnRvRml4ZWQoKSx2YnVmOngudG9GaXhlZCgpfSksCmR1KG4ucG9saWN5KSYmKGs9Tlcobi5JZyksbi5VKCJzZHBzIix7Y3Q6YixhaDpoLnRvRml4ZWQoKSx2aDp4LnRvRml4ZWQoKSxtcjpwdihuLklnLG4uT24sayksYnc6ay50b0ZpeGVkKCksanM6bi5pc1NlZWtpbmcoKSxyZTorbi5Pbixwczoobi5wb2xpY3kuTTV8fCIiKS50b1N0cmluZygpLHJuOihuLnBvbGljeS5EQ3x8IiIpLnRvU3RyaW5nKCl9KSkpO24ubXg9MH1uLlF1JiYoYj1uLlF1LmhUKG4uYXVkaW9UcmFjayxnLnd5KG4ubWVkaWFTb3VyY2UuSi5aRigpKSkpJiZuLkwuc2Vla1RvKGIse0E5OiEwLHFkOiJwb2xsU3Vic2VnbWVudFJlYWRhaGVhZCIscWE6ITB9KTtiPSExO3B6aChuLG4udmlkZW9UcmFjayxEKSYmKGI9ITAsRD1uLnRpbWluZyxELld8fChELlc9KDAsZy5SKSgpLGcuRUcoInZkYSIsRC5XLEQuelIpLEQuSiYmKGcuRHkoKSxiUSg0KSkpLEQ9bi50aW1pbmcsRC5WUXx8KEQuVlE9KDAsZy5SKSgpLGcuRUcoInZyYl9mIixELlZRLEQuelIpKSk7VyYmIVcuUEEoKSYmCihwemgobixuLmF1ZGlvVHJhY2ssdikmJihiPSEwLHY9bi50aW1pbmcsdi5KfHwodi5KPSgwLGcuUikoKSxnLkVHKCJhZGEiLHYuSix2LnpSKSx2LlcmJihnLkR5KCksYlEoNCkpKSx2PW4udGltaW5nLHYuWXx8KHYuWT0oMCxnLlIpKCksZy5FRygiYXJiX2YiLHYuWSx2LnpSKSkpLCFuLnFOKCkmJm4ubWVkaWFTb3VyY2UmJighbi5wb2xpY3kuVjYmJm1kKG4udmlkZW9UcmFjaykmJm1kKG4uYXVkaW9UcmFjaykmJm42KFcpJiYhVy55dSgpJiYodj1JJChuLmF1ZGlvVHJhY2spLlBKLHY9PT1uLkt1Lk5bdi5pbmZvLmlkXSYmKG4uTC5HKCkuV1goKSYmbi5MLlUoInNlcyIse2VvczoxfSksbjYoVykmJihXLm1lZGlhU291cmNlP1cubWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTpXLkVWLndlYmtpdFNvdXJjZUVuZE9mU3RyZWFtKFcuRVYuRU9TX05PX0VSUk9SKSksdj1uLnNjaGVkdWxlLHNuKGUwKHYpKSx2LmNKPSgwLGcuUikoKSx2Lk89ITAsdj0odj1uLnZpZGVvVHJhY2suUEopJiZ2LmluZGV4IGluc3RhbmNlb2YKZ1M/di5pbmRleC5LOnZvaWQgMCxuLkwuRygpLlp0KCkuTi5RUShZSmIpP3Y9PT0iZW1zZyImJm4ucG0oImUiKTpuLnBtKCJlIikpKSxiJiYoVy5OPyFXLk4uc3VwcG9ydHMoMCk6IWFkKCkpJiZnLkFnKG4pKSl9fTsKSFBiPWZ1bmN0aW9uKG4pe24ucG9saWN5LlY2PSExO3RyeXtYYihuKX1jYXRjaChXKXtnLlhqKFcpfX07CmZteD1mdW5jdGlvbihuLFc9ITEpe24ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuTiYmbi5tZWRpYVNvdXJjZS5KJiYobi5tZWRpYVNvdXJjZS5OLk05KG4uTEwsbiksbi5tZWRpYVNvdXJjZS5KLk05KG4uTEwsbikpO0tyKG4uYXVkaW9UcmFjayxudWxsLFcpO0tyKG4udmlkZW9UcmFjayxudWxsLFcpO24ubWVkaWFTb3VyY2UmJihuLm1lZGlhU291cmNlLlY9ITEpO24ubWVkaWFTb3VyY2U9bnVsbDtuLkFiPW51bGw7bi5MLlhTPy5yZXNldCgpfTsKSjdpPWZ1bmN0aW9uKG4sVyxEPSExLGI9ITEsdj0hMSl7S3Iobi52aWRlb1RyYWNrLFcuSnx8bnVsbCxiLHYpO0tyKG4uYXVkaW9UcmFjayxXLk58fG51bGwsYix2KTtuLm1lZGlhU291cmNlPVc7bi5tZWRpYVNvdXJjZS5WPSEwO0R8fG4ucmVzdW1lKCk7Vy5OLmgkKG4uTEwsbik7Vy5KLmgkKG4uTEwsbil9OwpJbWk9ZnVuY3Rpb24obixXLEQ9ITEsYj0hMSx2PSExKXtuLnBvbGljeS5UQyYmKG4ucG9saWN5LlZRJiZuLlUoImxvYWRlciIse3NldHNtYjowfSksbi56aSgpLG4ucG9saWN5LlRDPSExKTtmbXgobixiKTtpZighVy5YKCkpe3ZhciBrPWlZKG4udmlkZW9UcmFjayk7az1rP2suaW5mby5QSjpuLnZpZGVvVHJhY2suUEo7bGV0IGg9aVkobi5hdWRpb1RyYWNrKTtMS1UoVyxrLmluZm8sKGg/aC5pbmZvLlBKOm4uYXVkaW9UcmFjay5QSikuaW5mbyxuLnBvbGljeS5wUil9SjdpKG4sVyxELGIsdik7dHJ5e24uaFQoKX1jYXRjaChoKXtnLlhqKGgpfX07CnFtPWZ1bmN0aW9uKG4pe24ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuUEEoKSYmbi5LMSgpfTsKZ09DPWZ1bmN0aW9uKG4sVyl7VyYmR1gobi5MLG5ldyB0MihXLnZpZGVvLFcucmVhc29uKSk7bi5jVi5ISiYmKFc9WmV3KG4uY1YsImEiKSxuLkwuZ20obmV3IHQyKFcuYXVkaW8sVy5yZWFzb24pKSl9OwpBN3g9ZnVuY3Rpb24obil7bi5CdiYmIW4uaXNTdXNwZW5kZWQmJlRaKG4uc2NoZWR1bGUpJiYoU0paKG4sbi5Cdiksbi5Cdj0iIil9OwpzN3I9ZnVuY3Rpb24obixXKXtpWShXKT8uaXNMb2NrZWQmJm1CYihXKSYmKG4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7bXVubG9jazppWShXKT8uaW5mby5nYSgpfSksJGMobixXPT09bi5hdWRpb1RyYWNrKSl9OwpOM0M9ZnVuY3Rpb24obil7aWYodGRqKG4udmlkZW9UcmFjaykpcmV0dXJuInNzZiI7aWYobi5wb2xpY3kubnUmJmlZKG4udmlkZW9UcmFjayk/LmlzTG9ja2VkJiZpWShuLmF1ZGlvVHJhY2spPy5pc0xvY2tlZClyZXR1cm4idXBkYXRlRW5kIjtpZihpUyhuLmF1ZGlvVHJhY2spfHxpUyhuLnZpZGVvVHJhY2spJiZuLnZpZGVvVHJhY2suUEouaW5mby5JQiE9PSJmIilyZXR1cm4iIjtpZihuLlhhLmlzU2Vla2luZygpKXt2YXIgVz1uLklnO3ZhciBEPW4udmlkZW9UcmFjazt2YXIgYj1uLmF1ZGlvVHJhY2s7aWYoVy5wb2xpY3kuTil7dmFyIHY9Vy5wb2xpY3kuV2M7ZHUoVy5wb2xpY3kpJiYodj1wdihXLCExLE5XKFcpKSk7Vz12O0Q9Yi56cyghMCk+PVcmJkQuenMoITApPj1XfWVsc2UgRC5KLmxlbmd0aHx8Yi5KLmxlbmd0aD8odj1ELlBKLmluZm8uTnMrYi5QSi5pbmZvLk5zLHY9MTAqKDEtTlcoVykvdiksVz1NYXRoLm1heCh2LFcucG9saWN5LldjKSxEPWIuenMoITApPj1XJiZELnpzKCEwKT49ClcpOkQ9ITA7aWYoIUQpcmV0dXJuImFiciI7RD1uLnZpZGVvVHJhY2s7aWYoRC5KLmxlbmd0aD4wJiZELlcua2koKT09PTEmJkQuVy5XMigpLmluZm8uSzxELlZRKXJldHVybiJzZWVrIn1pZihuLnBvbGljeS5VMSYmJFgxKG4udmlkZW9UcmFjayxuLkpDKSYmJFgxKG4uYXVkaW9UcmFjayxuLkpDKSlyZXR1cm4ic3NkYWkiO0Q9IW4ucG9saWN5LnRNfHxuLmdldEN1cnJlbnRUaW1lKCk8MTA7bi5wb2xpY3kuTnx8KEQ9RHx8bi52aWRlb1RyYWNrLlBKLmluZm8udmlkZW8ucXVhbGl0eU9yZGluYWw+MzYwKTtpZighbi5Pbnx8RClyZXR1cm4iIjtEPW4ucG9saWN5LnRNO2R1KG4ucG9saWN5KSYmKEQ9cHYobi5JZyxuLk9uLE5XKG4uSWcpKSk7RD1YMHQobi52aWRlb1RyYWNrLG4uZ2V0Q3VycmVudFRpbWUoKSxEKXx8WDB0KG4uYXVkaW9UcmFjayxuLmdldEN1cnJlbnRUaW1lKCksRCk7cmV0dXJuIGR1KG4ucG9saWN5KT9EPyJtYm5tIjoiIjoobi52aWRlb1RyYWNrLkoubGVuZ3RoPjB8fApuLmF1ZGlvVHJhY2suSi5sZW5ndGg+MHx8anEobi5OeSxuLnZpZGVvVHJhY2ssbi5hdWRpb1RyYWNrKXx8anEobi5OeSxuLmF1ZGlvVHJhY2ssbi52aWRlb1RyYWNrKSkmJkQ/Im5vcmQiOiIifTsKeGM9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9SSQoVyk7IXZ8fHYuYVp8fGJUKHYsYil8fChELmFib3J0KCksbi5wb2xpY3kuZkMmJlcuVj8uWSgpLFcuSz8uVigpKTtpZighRC5LcygpfHxWVCgpKXRyeXtuLnBvbGljeS5Kaz9ELm5hKGIuUEouaW5mby5jb250YWluZXJUeXBlLGIuUEouaW5mby5JQikmJkQuVm8oYi5QSi5pbmZvLmNvbnRhaW5lclR5cGUsYi5QSi5pbmZvLklCLGIuUEouaW5mby5taW1lVHlwZSk6RC5qbihiLlBKLmluZm8uY29udGFpbmVyVHlwZSxiLlBKLmluZm8ubWltZVR5cGUpfWNhdGNoKGspe3JldHVybiBnLkdxKGspLG4uVSgiY3RleHAiLHtuYW1lOmsubmFtZSxtc2c6ay5tZXNzYWdlfSksITF9ZWxzZSBiLlBKLmluZm8uY29udGFpbmVyVHlwZSE9PUQuS3MoKSYmbi5VKCJjdHUiLHtjdDpWVCgpLHByZXZfYzpELktzKCksY3Vycl9jOmIuUEouaW5mby5jb250YWluZXJUeXBlfSk7Yj1iLlBKLlY7bi5wb2xpY3kuRFQmJmImJihXPTArYi5kdXJhdGlvbixiPS1iLk4sCjA9PT1ELk1yKCkmJlc9PT1ELktGKCl8fEQuZTcoMCxXKSxiIT09RC5TVygpJiYoRC55TyhiKSxzNCYmbi5hdWRpb1RyYWNrLlcuQlcoRC5pdygpKSkpO3JldHVybiEwfTsKTEM9ZnVuY3Rpb24obixXLEQsYil7Yi5pbmZvLlBKLk4oKTt2YXIgdj1iLmluZm8uUEouSjtpZighdnx8IUQuam8oKXx8RC5EOSgpPT09dilyZXR1cm4hMTt2YXIgaz12LGg9RC5MRigpO2lmKG4ucG9saWN5LktvJiZoJiZELmlzVmlldygpJiZnLlJCKGIuaW5mby5QSi5pbmZvKSl7bGV0IEw9bmV3IERhdGFWaWV3KHYuYnVmZmVyLHYuYnl0ZU9mZnNldCx2LmJ5dGVMZW5ndGgpOyhoPVBJQyhMLGgpKT9rPW5ldyBVaW50OEFycmF5KGguYnVmZmVyLGguYnl0ZU9mZnNldCxoLmJ5dGVMZW5ndGgpOm4uVSgiZmVuYyIse30pfW4ucG9saWN5LmtwJiYoaD1LVGkobixiLG5ldyBTNShba10pKSkmJihrPXRSKGgpKTt2YXIgeDsoaD1iLmluZm8uUEouWSgwLGIuaW5mby5jbGlwSWQpKSYmKHg9aC5Bd1swXSk7aWYoYj09PW4uaDcpe2lmKG4uQzErPTEsbi5MLmdldFZpZGVvRGF0YSgpLlMoImh0bWw1X3Nob3J0c19nYXBsZXNzX3Jlc3RhcnRfb25faW5pdF9zZWdfcmV0cmllcyIpJiZuLkMxPjUpcmV0dXJuIG4uQzE9CjAsbi5MLkdtKHtpbml0U2VnU3R1Y2s6MSxhczpiLmluZm8uZ2EoKX0pLCEwfWVsc2Ugbi5DMT0wLG4uaDc9YjtuLnBvbGljeS54aiYmKEQuYWJvcnQoKSxXLks/LlYoKSk7bi5BYiYmRC5pUSgpJiYoRC5hYm9ydCgpLFcuSz8uVigpKTt2PU9QMihuLEQsayx4LHYpO1cuSz8uRCh2LHgpO2lmKHYhPT0wKXJldHVybiBuLnBvbGljeS5aTiYmQUoobi5MLmdldFZpZGVvRGF0YSgpKT8obi5MLm9BKCl8fHJTKG4sInNlcEluaXQiLHYsYi5pbmZvKSxQOVUobi5MLCJzaWUiKSk6clMobiwic2VwSW5pdCIsdixiLmluZm8pLCEwO2IuaW5mby5mWSgpPyhXPW4udGltaW5nLFcuVEN8fChXLlRDPSgwLGcuUikoKSxnLkVHKCJ2aXNfYSIsVy5UQyxXLnpSKSkpOihXPW4udGltaW5nLFcuVnx8KFcuVj0oMCxnLlIpKCksZy5FRygiYWlzX2EiLFcuVixXLnpSKSkpOyhiPWIuaW5mby5QSi5TVSkmJm4uTC5XbihuZXcgcnUoYi5rZXksYi50eXBlKSk7cmV0dXJuIEQueXUoKX07CnB6aD1mdW5jdGlvbihuLFcsRCl7aWYobi5wb2xpY3kubnUmJmlZKFcpPy5pc0xvY2tlZClyZXR1cm4hMTtpZihELkRjKCkpcmV0dXJuITA7aWYoIUQuam8oKSlyZXR1cm4hMTt2YXIgYj1pWShXKTtpZighYnx8Yi5pbmZvLnR5cGU9PT02KXJldHVybiExO2lmKG4ucG9saWN5LmllfHxuLkpDPy5PKFcsYi5pbmZvLmokKSluLkxvPTA7ZWxzZSByZXR1cm4gbi5YYS5pc1NlZWtpbmcoKSYmZy5BZyhuKSxuLkxvPW4uTG98fCgwLGcuUikoKSwhMTtpZigheGMobixXLEQsYi5pbmZvKSlyZXR1cm4hMTtpZihuLkt1LlcmJmIuaW5mby5OPT09MCl7dmFyIHY7aWYoRC5EOSgpPT1udWxsKXt2YXIgaz1JJChXKTtpZighKHY9IWt8fGsuUEohPT1iLmluZm8uUEopKXtiOmlmKHY9ay5PLGs9Yi5pbmZvLk8sdi5sZW5ndGghPT1rLmxlbmd0aCl2PSExO2Vsc2V7Zm9yKGxldCBoPTA7aDx2Lmxlbmd0aDtoKyspaWYoIXY0KHZbaF0sa1toXSkpe3Y9ITE7YnJlYWsgYn12PSEwfXY9IXZ9fWVsc2Ugdj1ELkQ5KCksCmIuaW5mby5QSi5TJCgpJiZETyhiKSxrPWIuaW5mby5QSi5KLHY9diE9PWsmJiF2NCh2LGspO3YmJihrPUkkKFcpLG4uVSgiaW5pdGNoZyIse2l0OmIuaW5mby5QSi5pbmZvLmlkLHNyOiEhayYmay5QSj09PWIuaW5mby5QSix0eTpiLmluZm8udHlwZSxzZWc6Yi5pbmZvLmokfSkpO2s9Zy5SQihiLmluZm8uUEouaW5mbyk7bi5wb2xpY3kubWgmJmsmJiF2JiYoZy5SQihiLmluZm8uUEouaW5mbyk/KEdqKGcuV1IoYiksMTgzNjAxOTU3NCksR2ooZy5XUihiKSwxNzE4OTA5Mjk2KSk6KHY9bmV3IHRZKGcuV1IoYikpLE9ZKHYpLHNZKHYsNTI0NTMxMzE3LCEwKSxiLko9Yi5KLnNwbGl0KHYuc3RhcnQrdi5wb3MpLlk5KSxiLlY9ITEpfWs9bi5RdSYmISFuLlF1LlgmJlcuUEouaW5mby5hdWRpbzt2PW4uS3UuaXNNYW5pZmVzdGxlc3N8fGIuVjtpZighKG4uS3UuVyYmYi5pbmZvLk4hPT0wfHx2JiYhaykmJkxDKG4sVyxELGIpKXJldHVybiEwO2lmKGspcmV0dXJuITE7az1PYihuLFcpO2s9bi5nZXRDdXJyZW50VGltZSgpKwprO2lmKGIuaW5mby5YPmspcmV0dXJuIG4ucG9saWN5Lk4mJihXPT09bi52aWRlb1RyYWNrP24uYzc9bi5jN3x8KDAsZy5SKSgpOm4uTno9bi5Oenx8KDAsZy5SKSgpKSwhMTtXPT09bi52aWRlb1RyYWNrP24uYzc9MDpuLk56PTA7bi5wb2xpY3kuVTUmJkQ9PT1uLm1lZGlhU291cmNlPy5OJiZuLk9MJiYoRC5mRigpPT09MD8obi5PTD0hMSxuLnBvbGljeS5VNT0hMSk6bi5HSj1ELmZGKCkpO2lmKCFaUGoobixELGIsVykpcmV0dXJuITE7bi5wb2xpY3kubnUmJmIuaW5mby5WKCk/KG4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7bHM6Yi5pbmZvLmdhKCl9KSxiLmlzTG9ja2VkPSEwKTooVy5aJChiKSxQQzIobi5jVixiLmluZm8pKTt2JiYoVz1iLmluZm8uUEouU1UpJiZuLkwuV24obmV3IHJ1KFcua2V5LFcudHlwZSkpO3JldHVybiEwfTsKWlBqPWZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uTC5HKCkuWnQoKS5OLlFRKFVCYikmJkQuaW5mby5OJiYhVy5pUSgpKXJldHVybiBuLlUoImRyb3BfY2h1bmsiLHtzcTpELmluZm8uaiQsc3Q6RC5pbmZvLlh9KSwhMDt2YXIgdj1uLnBvbGljeS5SYT8oMCxnLlIpKCk6MCxrPUQuViYmRC5pbmZvLlBKLkp8fHZvaWQgMCxoPUQuSjtELlYmJihoPUtUaShuLEQsaCl8fGgpO3ZhciB4PXRSKGgpO2g9bi5wb2xpY3kuUmE/KDAsZy5SKSgpOjA7Vz1PUDIobixXLHgsRC5pbmZvLGspO2IuSz8uWShELmluZm8sVyxoLXYsKDAsZy5SKSgpLWgpO24uQzE9MDtpZihXPT09MClyZXR1cm4gbi5aRCYmKG4uWkQ9ITEsbi5xTz0hMSksbi5hQT0wLCEwO2lmKFc9PT0yfHxXPT09NSlyZXR1cm4gclMobiwiY2hlY2tlZCIsVyxELmluZm8pLCExO2lmKFc9PT0xKXtpZighbi5aRClyZXR1cm4gbi5aRD0hMCwhMTtpZighbi5xTylyZXR1cm4gbi5xTz0hMCxuLkwuc2Vla1RvKG4uZ2V0Q3VycmVudFRpbWUoKSx7cWQ6InF1b3RhRXhjZWVkZWQiLApxYTohMH0pLCExO0QuaW5mby5mWSgpPyhiPW4ucG9saWN5LGIuZSQ9TWF0aC5mbG9vcihiLmUkKi44KSxiLk89TWF0aC5mbG9vcihiLk8qLjgpKTooYj1uLnBvbGljeSxiLnZKPU1hdGguZmxvb3IoYi52SiouOCksYi5PPU1hdGguZmxvb3IoYi5PKi44KSk7bi5wb2xpY3kuTj9XbChuLms2LEQuaW5mby5QSik6YXEobi5jVixELmluZm8uUEopfW4uTC5HbSh7cmVhdHRhY2hPbkFwcGVuZDpXfSk7cmV0dXJuITF9OwpLVGk9ZnVuY3Rpb24obixXLEQpe3ZhciBiO2lmKGI9bi5wb2xpY3kua3AmJm4ubWVkaWFTb3VyY2UmJiFuLm1lZGlhU291cmNlLk8mJiFuLkwuUHAoKSlXPVcuaW5mby5QSi5pbmZvLGI9Vy5xSCgpJiZXLlgoKSYmVy52aWRlbyYmVy52aWRlby53aWR0aDwzODQwJiZXLnZpZGVvLndpZHRoPlcudmlkZW8uaGVpZ2h0O2lmKGImJihuLm1lZGlhU291cmNlLk89ITAsZHkoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMC41MC4wOC4wMS4wMS4wMS4wMS4wMCI7IHdpZHRoPTM4NDA7IGhlaWdodD0yMTYwJykpKXJldHVybiBEPUROMShEKSxuLnBvbGljeS5XJiZuLlUoInNwNGsiLHtzOiEhRH0pLER9OwpPUDI9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkFifHxuLm1lZGlhU291cmNlO3RyeXtsZXQgaD1XPT09ay5OP24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2s7aWYobi5wb2xpY3kubnUmJmI/LlYoKSl7aWYoYj8udHc+MSlyZXR1cm4gNjtoLmJkPW5ldyBnLmZfKCgpPT57dmFyIHg9aVkoaCk7bi5xTigpfHwheD8uaXNMb2NrZWQ/bi5MLkcoKS5XWCgpJiZuLlUoImVvc2wiLHtkZWxheUE6eD8uaW5mby5nYSgpfSk6bUJiKGgpPyhuLkwuRygpLldYKCkmJm4uVSgiZW9zbCIse2R1bmxvY2s6eD8uaW5mby5nYSgpfSksJGMobixoPT09bi5hdWRpb1RyYWNrKSk6KG4uVSgibnVlIix7bHM6eC5pbmZvLmdhKCl9KSx4LmluZm8udHcrPTEsbi5tZWRpYVNvdXJjZSYmWGIobikpfSwxRTQsbik7Cm4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7ZGVsYXlTOmIuZ2EoKX0pO2guYmQuc3RhcnQoKX1uLnBvbGljeS5zMyYmYj8uUEogaW5zdGFuY2VvZiBkdCYmYi5WKCkmJm4uVSgicG9zZW9zIix7aXRhZzpiLlBKLmluZm8uaXRhZyxzZWc6Yi5qJCxsc2VnOmIuUEouaW5kZXgueCQoKSxlczpiLlBKLmluZGV4Lkt9KTtXLmFwcGVuZEJ1ZmZlcihELGIsdil9Y2F0Y2goaCl7aWYoaCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbil7aWYoaC5uYW1lPT09IkludmFsaWRTdGF0ZUVycm9yInx8aC5jb2RlPT09MTEpcmV0dXJuIG4uTC5HKCkuV1goKSYmbi5VKCJhZWlzIix7bXNnOmcudXAoaC5tZXNzYWdlLDMpfSksMjtpZihoLm5hbWU9PT0iU3ludGF4RXJyb3IifHxoLmNvZGU9PT0xMilyZXR1cm4gNTtpZihoLm5hbWU9PT0iUXVvdGFFeGNlZWRlZEVycm9yInx8aC5jb2RlPT09MjJ8fGgubWVzc2FnZS5pbmRleE9mKCJOb3QgZW5vdWdoIHN0b3JhZ2UiKT09PTApcmV0dXJuIFc9T2JqZWN0LmFzc2lnbih7bmFtZToiUXVvdGFFeGNlZWRlZEVycm9yIiwKYnVmZmVyZWQ6cmsoVy5aRigpKS5yZXBsYWNlKC8sL2csIl8iKSx2aGVhcDpuLnZpZGVvVHJhY2suUnUoKSxhaGVhcDpuLmF1ZGlvVHJhY2suUnUoKSxtZXNzYWdlOmcudXAoaC5tZXNzYWdlLDMpLHRyYWNrOms/Vz09PWsuSj8idiI6ImEiOiJ1In0saFF4KCkpLG4uaGFuZGxlRXJyb3IoInBsYXllci5leGNlcHRpb24iLFcpLDE7Zy5YaihoKX1yZXR1cm4gNH1yZXR1cm4gay5QQSgpPzM6MH07CnJTPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PSJmbXQudW5wbGF5YWJsZSIsaz0xO0Q9PT01fHxEPT09Mz8odj0iZm10LnVucGFyc2VhYmxlIixuLnBvbGljeS5OPyFiLlBKLmluZm8udmlkZW98fHdDKG4uazYuTikuc2l6ZT4wfHxXbChuLms2LGIuUEopOiFiLlBKLmluZm8udmlkZW98fHdDKG4uY1Yuaikuc2l6ZT4wfHxhcShuLmNWLGIuUEopKTpEPT09MiYmKG4uYUE8MTU/KG4uYUErKyx2PSJodG1sNS5pbnZhbGlkc3RhdGUiLGs9MCk6dj0iZm10LnVucGxheWFibGUiKTtiPVh4KGIpO2IubXJzPW4ubWVkaWFTb3VyY2U/LlcoKTtiLm9yaWdpbj1XO2IucmVhc29uPUQ7Yi50cmc9ImFwcGVuZGVyciI7bi5oYW5kbGVFcnJvcih2LGIsayl9OwpOMj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uS3U7dmFyIGg9bi5wb2xpY3kuTix4PSExLEw9LTE7Zm9yKGxldCByIGluIGsuTil7dmFyIGU9ay5OW3JdLmluZm8uTigpfHxrLk5bcl0uaW5mby5mWSgpO2lmKGI9PT1lKWlmKGU9ay5OW3JdLmluZGV4LGUuTUkoVy5qJCkpe3t4PWU7dmFyIEc9VztsZXQgTj14LlcoRy5qJCk7TiYmTi5zdGFydFRpbWUhPT1HLnN0YXJ0VGltZT8oeC5zZWdtZW50cz1bXSx4LmooRykseD0hMCk6eD0hMX14P0w9Vy5qJDohVy5wZW5kaW5nJiZoJiYoRz1lLmdldER1cmF0aW9uKFcuaiQpLEchPT1XLmR1cmF0aW9uJiYoay5XSigiY2xpZW50dGVtcCIsIm1mbGR1clVwZGF0ZSIse2l0YWc6ay5OW3JdLmluZm8uaXRhZyxzZWc6Vy5qJCxvZDpHLG5kOlcuZHVyYXRpb259LCExKSxlLmooVykseD0hMCkpfWVsc2UgZS5qKFcpLHg9ITB9TD49MCYmay5XSigiY2xpZW50dGVtcCIsInJlc2V0TWZsSW5kZXgiLHtbYj8idiI6ImEiXTpMfSwhMSk7az14O0FhMihuLlhhLApXLGIsayk7bi5wb2xpY3kuRHx8bi5KQy5SMChXLEQsYix2KTtXLmokPT09bi5LdS5JdCYmayYmdUEobi5LdSkmJlcuc3RhcnRUaW1lPnVBKG4uS3UpJiYobi5LdS5KVT1XLnN0YXJ0VGltZSsoaXNOYU4obi50aW1lc3RhbXBPZmZzZXQpPzA6bi50aW1lc3RhbXBPZmZzZXQpLG4uWGEuaXNTZWVraW5nKCkmJm4uWGEudGFyZ2V0VGltZTxuLkt1LkxmKCkmJm4uWGEuc2VlayhuLkt1LkxmKCkse30pKX07CiRjPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kubnUmJm4ubWVkaWFTb3VyY2Upe3ZhciBEPVc/bi5tZWRpYVNvdXJjZT8uTjpuLm1lZGlhU291cmNlPy5KO2xldCBiPVc/bi5hdWRpb1RyYWNrOm4udmlkZW9UcmFjaztXPWlZKGIpO1c/LmlzTG9ja2VkJiYobi5MLkcoKS5XWCgpJiZuLlUoImVvc2wiLHt1bmxvY2s6Vy5pbmZvLmdhKCl9KSxiLmJkPy5zdG9wKCksVy5pc0xvY2tlZD0hMSxiLlokKFcpLFBDMihuLmNWLFcuaW5mbyksRD1EPy5aZygpLEQ/LmdhKCkhPT1XLmluZm8uZ2EoKSYmbi5VKCJvdWUiLHtibHM6RD8uZ2EoKSx0bHM6Vy5pbmZvLmdhKCl9KSl9fTsKU0paPWZ1bmN0aW9uKG4sVyl7cVcoVywiY21zIixEPT57bi5wb2xpY3kuVyYmbi5VKCJwYXRocHJvYmUiLEQpfSxEPT57bi5MLmhhbmRsZUVycm9yKEQpfSl9Owp5N2k9ZnVuY3Rpb24obixXKXtuLm1lZGlhU291cmNlJiZuLm1lZGlhU291cmNlLkomJihXLT1pc05hTihuLnRpbWVzdGFtcE9mZnNldCk/MDpuLnRpbWVzdGFtcE9mZnNldCxpc05hTihuLlE1KXx8bi5RNT09PVd8fG4ucmVzdW1lKCksbi5RNT1XKX07CkVPaD1mdW5jdGlvbihuLFcsRCxiKXtkaihuKSYmbi5ETyYmYiYmYj09PTk2JiYoYj1EP24uTC5sSyhXKTpXLG4uZnAoYil8fG4uRE8uTnx8bi5VKCJwcmVidWZmZXIiLHttaXNzOjEsdDpXLnRvRml4ZWQoMyksaXNVdGM6RH0pKX07CmlQUz1mdW5jdGlvbihuLFcpe3ZhciBEPVNxKG4udmlkZW9UcmFjaykuZmluZChiPT5iLnNlZ21lbnRTdGFydFRpbWU+PVcmJlh6aChuLGIuc2VnbWVudFN0YXJ0VGltZSwhMSkpOwpyZXR1cm4gRCYmRC5zZWdtZW50U3RhcnRUaW1lPFcrRC5XKjEuNT9ELnNlZ21lbnRTdGFydFRpbWUrLjE6MH07Cm1CYj1mdW5jdGlvbihuKXt2YXIgVz1pWShuKT8uaW5mbztyZXR1cm4hV3x8bi5mcChNYXRoLm1pbihXLlgrc1gsVy5qKSl9Owp1M3g9ZnVuY3Rpb24obil7aWYoIShuLmxlbmd0aDw9MjgpKWZvcih2YXIgVz0oMCxnLk5tKShbNjAsMCw3NSwwLDczLDAsNjgsMCw2MiwwXSksRD0yODtEPG4ubGVuZ3RoOyl7YTppZihuLmxlbmd0aC1EPFcubGVuZ3RoKXZhciBiPSExO2Vsc2V7Zm9yKGI9MDtiPFcubGVuZ3RoOysrYilpZihuW0QrYl0hPT1XW2JdKXtiPSExO2JyZWFrIGF9Yj0hMH1pZihiKXtEKz1XLmxlbmd0aDtpZihuLmxlbmd0aDw9RCs0OClicmVhaztXPW5ldyBVaW50OEFycmF5KDI0KTtmb3IoYj0wO2I8MjQ7KytiKVdbYl09bltEK2IqMl07bj1wUihXKTtuPWxwKG4pO2lmKCFuKWJyZWFrO0Q9blswXTtuWzBdPW5bM107blszXT1EO0Q9blsxXTtuWzFdPW5bMl07blsyXT1EO0Q9bls0XTtuWzRdPW5bNV07bls1XT1EO0Q9bls2XTtuWzZdPW5bN107bls3XT1EO3JldHVybiBufUQrK319OwpvT3g9ZnVuY3Rpb24obixXKXthOnt2YXIgRD1XLmNyeXB0b1BlcmlvZEluZGV4O2lmKGlzTmFOKEQpJiZuLlcuc2l6ZT4wKUQ9ITA7ZWxzZXtmb3IobGV0IGIgb2Ygbi5XLnZhbHVlcygpKWlmKGIuY3J5cHRvUGVyaW9kSW5kZXg9PT1EKXtEPSEwO2JyZWFrIGF9RD0hMX19bi5XSigibG9nX3FvZSIse3d2YWd0OiJyZXFuZXdzIixjYW5za2lwOkR9KTtEfHxuLldKKCJyb3RhdGVkX25lZWRfa2V5X2luZm9fcmVhZHkiLFcpfTsKZEJoPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJEUk1fVFJBQ0tfVFlQRV9BVURJTyI6cmV0dXJuIDE7Y2FzZSAiRFJNX1RSQUNLX1RZUEVfU0QiOnJldHVybiAyO2Nhc2UgIkRSTV9UUkFDS19UWVBFX0hEIjpyZXR1cm4gMztjYXNlICJEUk1fVFJBQ0tfVFlQRV9VSEQxIjpyZXR1cm4gNDtjYXNlICJEUk1fVFJBQ0tfVFlQRV9VSEQyIjpyZXR1cm4gNTtkZWZhdWx0OnJldHVybiAwfX07ClQzaD1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPW4uc3RhdHVzPT09IkxJQ0VOU0VfU1RBVFVTX09LIj8wOjk5OTksYj1udWxsO2lmKG4ubGljZW5zZSl0cnl7Yj1scChuLmxpY2Vuc2UpfWNhdGNoKHYpe2cuWGoodil9aWYoRD09PTAmJiFiKXJldHVybiBudWxsO2I9bmV3IHpEWihELGIpO0QhPT0wJiZuLnJlYXNvbiYmKGIuZXJyb3JNZXNzYWdlPW4ucmVhc29uKTtpZihuLmF1dGhvcml6ZWRGb3JtYXRzKXtEPXt9O2xldCB2PVtdLGs9e307Zm9yKGxldCBoIG9mIG4uYXV0aG9yaXplZEZvcm1hdHMpe2lmKCFoLnRyYWNrVHlwZXx8IWgua2V5SWQpY29udGludWU7VyYmYi5KLnB1c2goe3RyYWNrVHlwZTpkQmgoaC50cmFja1R5cGUpLGlzSGRyOiEhaC5pc0hkcn0pO2xldCB4PWxtVVtoLnRyYWNrVHlwZV07aWYoeCl7eD09PSJIRCImJm4uaXNIZDcyMCYmKHg9IkhENzIwIik7aC5pc0hkciYmKHgrPSJIRFIiKTtEW3hdfHwodi5wdXNoKHgpLERbeF09ITApO2xldCBMPW51bGw7dHJ5e0w9bHAoaC5rZXlJZCl9Y2F0Y2goZSl7Zy5YaihlKX1MJiYKKGtbZy5FQShMLDQpXT14KX19Yi5XPXY7Yi5OPWt9bi5uZXh0RmFpcnBsYXlLZXlJZCYmKGIubmV4dEZhaXJwbGF5S2V5SWQ9bi5uZXh0RmFpcnBsYXlLZXlJZCk7bi5zYWJyTGljZW5zZUNvbnN0cmFpbnQmJihiLnNhYnJMaWNlbnNlQ29uc3RyYWludD1scChuLnNhYnJMaWNlbnNlQ29uc3RyYWludCkpO3JldHVybiBifTsKajdqPWZ1bmN0aW9uKG4sVyxEKXtuLm9uU3VjY2Vzcz1XO24ub25FcnJvcj1EfTsKQzl4PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PXt0aW1lb3V0OjNFNCxvblN1Y2Nlc3M6az0+e2lmKCFuLnFOKCkpaWYoZy5hTCgiZHJtX25ldF9yIix2b2lkIDAsbi50aW1lciksaz1UM2goayxuLkopKW4ub25TdWNjZXNzKGssbi5yZXF1ZXN0TnVtYmVyKTtlbHNlIG4ub25FcnJvcihuLCJkcm0ubmV0IiwidC5wO3AuaSIpfSwKb25FcnJvcjprPT57aWYoIW4ucU4oKSlpZihrJiZrLmVycm9yKWs9ay5lcnJvcixuLm9uRXJyb3IobiwiZHJtLm5ldC5iYWRzdGF0dXMiLGB0LnI7cC5pO2MuJHtrLmNvZGV9O3MuJHtrLnN0YXR1c31gLGsuY29kZSk7ZWxzZSBuLm9uRXJyb3IobiwiZHJtLm5ldC5iYWRzdGF0dXMiLCJ0LnI7cC5pO2MubiIpfSwKb25UaW1lb3V0OigpPT57bi5vbkVycm9yKG4sImRybS5uZXQiLGBydC5yZXEuJHtuLnJlcXVlc3ROdW1iZXJ9YCl9fTsKYiYmKHYuUDE9YEJlYXJlciAke2J9YCk7Zy5JSShELCJwbGF5ZXIvZ2V0X2RybV9saWNlbnNlIixXLHYpfTsKcEM9ZnVuY3Rpb24obixXLEQ9ITEpe2cuVEMoVyk7KER8fG4uQi5XWCgpKSYmbi5XSigiY3RtcCIsImRybWxvZyIsVyl9OwpCM3g9ZnVuY3Rpb24obil7dmFyIFc9bi5iYXNlVXJsO2hBaShXKXx8bi5lcnJvcigiZHJtLm5ldCIsMiwidC54Iik7aWYoIWcubGYoVywiZmV4cCIpKXtsZXQgRD1bIjIzODk4MzA3IiwiMjM5MTQwNjIiLCIyMzkxNjEwNiIsIjIzODgzMDk4Il0uZmlsdGVyKGI9Pm4uQi5leHBlcmltZW50cy5leHBlcmltZW50c1tiXSk7CkQubGVuZ3RoPjAmJihuLmouZmV4cD1ELmpvaW4oKSl9Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKG4uaikpVz1LUzEoVyxELG4ualtEXSk7cmV0dXJuIFd9Owp3enI9ZnVuY3Rpb24obixXKXt2YXIgRD1udWxsO3RyeXtEPVcuY3JlYXRlU2Vzc2lvbihuLlksYj0+e3BDKG4se206Yn0pfSksRlR0KG4sRCl9Y2F0Y2goYil7Vz0idC5nIixiIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoVys9YDtjLiR7Yi5jb2RlfWApLG4uV0ooImxpY2Vuc2VlcnJvciIsImRybS51bmF2YWlsYWJsZSIsMSxXLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIpfXJldHVybiBEfTsKRlR0PWZ1bmN0aW9uKG4sVyl7TTliKFcsKEQsYik9PntSRGoobixELGIpfSwoRCxiLHYpPT57bi5xTigpfHwoYj12b2lkIDAsZy5YVihuLkopJiZnLkRmKG4uQikmJm4uQi5TKCJodG1sNV9lbmFibGVfc2FmYXJpX2ZhaXJwbGF5IikmJnY9PT0xMjEyNDMzMjMyJiYoYj0iRVJST1JfSERDUCIpLG4uZXJyb3IoImRybS5rZXllcnJvciIsMSxELGIpKX0sKCk9PntuLnFOKCl8fChwQyhuLHtvbmt5YWRkOjF9KSxuLmNKfHwobi5XSigic2Vzc2lvbnJlYWR5Iiksbi5jSj0hMCkpfSxEPT57bi5ZVihEKX0pfTsKUkRqPWZ1bmN0aW9uKG4sVyxEKXtpZighbi5xTigpKWlmKFcpe3BDKG4se29ua210eXA6RH0pO24uc3RhdHVzPSJrbSI7c3dpdGNoKEQpe2Nhc2UgImxpY2Vuc2UtcmVuZXdhbCI6Y2FzZSAibGljZW5zZS1yZXF1ZXN0IjpjYXNlICJsaWNlbnNlLXJlbGVhc2UiOmJyZWFrO2Nhc2UgImluZGl2aWR1YWxpemF0aW9uLXJlcXVlc3QiOlE3MihuLFcpO3JldHVybjtkZWZhdWx0Om4uV0ooImN0bXAiLCJtZXNzYWdlX3R5cGUiLHt0OkQsbDpXLmJ5dGVMZW5ndGh9KX1uLnR3fHwoZy5hTCgiZHJtX2drX2YiLHZvaWQgMCxuLnZpZGVvRGF0YS56Uiksbi50dz0hMCxuLldKKCJuZXdzZXNzaW9uIixuKSk7aWYoTE4obi5KKSYmKFc9VjlpKFcpLCFXKSlyZXR1cm47dmFyIGI9ITE7aWYobi5CLlp0KCkuTi5RUShZYykpdHJ5e2I9bWsoVyx3T1opLnR5cGU9PT00fWNhdGNoKHYpe3BDKG4se2NlcnRfY2hlY2tfZmFpbGVkOjF9LCEwKX1pZihiJiZuLmRoPy5jZXJ0aWZpY2F0ZSl7cEMobix7Y2VydF9jYWNoZV9oaXQ6MX0sCiEwKTsrK24ucmVxdWVzdE51bWJlcjtsZXQgdj1uLmRoLmNlcnRpZmljYXRlO1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntjN3IobixuZXcgekRaKDAsdiksYil9KX1lbHNlIFc9bmV3IGFtcihXLCsrbi5yZXF1ZXN0TnVtYmVyLG4udmlkZW9EYXRhLnpSLG4uQi5TKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5IikpLGo3aihXLHY9PntjN3Iobix2LGIpfSwodixrLGgpPT57aWYoIW4ucU4oKSl7dmFyIHg9MDsKdi5OLko+PTMmJih4PTEsaz0iZHJtLm5ldC5yZXRyeWV4aGF1c3RlZCIpO3BDKG4se29ubGNzcnFlcnI6ayxpbmZvOmh9KTtuLmVycm9yKGsseCxoKTtuLnNob3VsZFJldHJ5KGoyKHgpLHYpJiZuUXcobix2KX19KSxnLnUobixXKSxXZzIobixXKX1lbHNlIG4uZXJyb3IoImRybS51bmF2YWlsYWJsZSIsMSwia20uZW1wdHkiKX07ClE3Mj1mdW5jdGlvbihuLFcpe3BDKG4se3NkcHZycToxfSk7bi5WPXBlcmZvcm1hbmNlLm5vdygpO2lmKG4uSi5mbGF2b3IhPT0id2lkZXZpbmUiKW4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYGUuZmxhdm9yO2YuJHtuLkouZmxhdm9yfTtsLiR7Vy5ieXRlTGVuZ3RofWApO2Vsc2V7dmFyIEQ9e2NwbjpuLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlfTtPYmplY3QuYXNzaWduKEQsbi5CLk4pO0Q9Zy5FVCgiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY2VydGlmaWNhdGVwcm92aXNpb25pbmcvdjEvZGV2aWNlY2VydGlmaWNhdGVzL2NyZWF0ZT9rZXk9QUl6YVN5Qi01T0xLVHgyaVU1bWtvMThEZmR3SzU2MTFKSWpiVWhFIixEKTtXPXtmb3JtYXQ6IlJBVyIsaGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkpTT04uc3RyaW5naWZ5KHtzaWduZWRSZXF1ZXN0OlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwKVyl9KSxyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn07Zy5zeihELFcsMyw1MDApLnRoZW4oWXooYj0+e2I9Yi54aHI7aWYoIW4ucU4oKSl7Yj1uZXcgVWludDhBcnJheShiLnJlc3BvbnNlKTt2YXIgdj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYik7dHJ5e3ZhciBrPUpTT04ucGFyc2Uodil9Y2F0Y2goaCl7fWsmJmsuc2lnbmVkUmVzcG9uc2U/KG4uV0ooImN0bXAiLCJkcm1pbmZvIix7cHJvdmlzaW9uaW5nOjF9KSxrPShwZXJmb3JtYW5jZS5ub3coKS1uLlYpLzFFMyxuLlY9TmFOLG4uV0ooImN0bXAiLCJwcm92cyIse2V0OmsudG9GaXhlZCgzKX0pLG4uWCYmbi5YLnVwZGF0ZShiKSk6KGs9ayYmay5lcnJvciYmay5lcnJvci5tZXNzYWdlLGI9ImUucGFyc2UiLGsmJihiKz1gO20uJHtrfWApLG4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYikpfX0pLFl6KGI9PntuLnFOKCl8fG4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYGUuJHtiLmVycm9yQ29kZX07Yy4ke2IueGhyJiYKYi54aHIuc3RhdHVzfWApfSkpfX07CmM3cj1mdW5jdGlvbihuLFcsRCl7bi5xTigpfHwoKHBDKG4se29ubGNzcnNwOjF9KSxuLnN0YXR1cz0icnIiLFcuc3RhdHVzQ29kZSE9PTApP24uZXJyb3IoImRybS5hdXRoIiwxLGB0LmY7Yy4ke1cuc3RhdHVzQ29kZX1gLFcuZXJyb3JNZXNzYWdlfHx2b2lkIDApOihEJiZuLmRoJiZuLkIuWnQoKS5OLlFRKFljKSYmKG4uZGguY2VydGlmaWNhdGU9Vy5tZXNzYWdlKSxnLmFMKCJkcm1fa3JfcyIsdm9pZCAwLG4udmlkZW9EYXRhLnpSKSxXLmhlYXJ0YmVhdFBhcmFtcyYmVy5oZWFydGJlYXRQYXJhbXMudXJsJiZuLnZpZGVvRGF0YS5TKCJvdXRlcnR1YmVfc3RyZWFtaW5nX2RhdGFfYWx3YXlzX3VzZV9zdGFnaW5nX2xpY2Vuc2Vfc2VydmljZSIpJiYoRD1uLkouVy5tYXRjaCgvKC4qKXlvdXR1YmUuY29tL2cpKSYmKFcuaGVhcnRiZWF0UGFyYW1zLnVybD1EWzBdK1cuaGVhcnRiZWF0UGFyYW1zLnVybCksVy5oZWFydGJlYXRQYXJhbXMmJm4uV0ooIm5ld2xpY2Vuc2UiLFcuaGVhcnRiZWF0UGFyYW1zKSwKVy5XJiYobi5XPVcuVyxuLnZpZGVvRGF0YS5hTXx8bi5XSigibmV3bGljZW5zZSIsbmV3IERiaiksbi52aWRlb0RhdGEuYU09ITAsbi5LPWcub00obi5XLGI9PmIuaW5jbHVkZXMoIkhEUiIpKSksVy5KJiYobi5EPVcuSiksVy5OJiYobi5CLlMoImh0bWw1X2VuYWJsZV92cDlfZmFpcnBsYXkiKSYmbi5KLk4oKT8oRD1nLkVBKHhLKG4uZmFpcnBsYXlLZXlJZCksNCksbi5OW0RdPXt0eXBlOlcuTltEXSwKc3RhdHVzOiJ1bmtub3duIn0pOm4uTj1XeChXLk4sYj0+KHt0eXBlOmIsc3RhdHVzOiJ1bmtub3duIn0pKSksZzEobi5KKSYmKFcubWVzc2FnZT1hMjIoZy5FQShXLm1lc3NhZ2UpKSksbi5YJiYocEMobix7dXBkdGtzOjF9KSxuLnN0YXR1cz0ia3UiLG4uWC51cGRhdGUoVy5tZXNzYWdlKS50aGVuKCgpPT57Zy5hTCgiZHJtX2tyX2YiLHZvaWQgMCxuLnZpZGVvRGF0YS56Uik7CkhyKG4pfHwocEMobix7a3NBcGlVbnN1cDoxfSksbi5XSigia2V5c3RhdHVzZXNjaGFuZ2UiLG4pKX0sYj0+e2I9YG1zdWYucmVxLiR7bi5yZXF1ZXN0TnVtYmVyfTttc2cuJHtnLnVwKGIubWVzc2FnZSwzKX1gOwpuLmVycm9yKCJkcm0ua2V5ZXJyb3IiLDEsYil9KSksZy5YVihuLkopJiZuLldKKCJmYWlycGxheV9uZXh0X25lZWRfa2V5X2luZm8iLG4uYmFzZVVybCxXLm5leHRGYWlycGxheUtleUlkKSxuLkIuUygiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpJiZuLkouTigpJiZuLldKKCJxdWFsaXR5Y2hhbmdlIixibWgobi5XKSksVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQmJm4uV0ooInNhYnJsaWNlbnNlY29uc3RyYWludCIsVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQpKSl9OwpXZzI9ZnVuY3Rpb24obixXKXtuLnN0YXR1cz0ia20iO2cuYUwoImRybV9uZXRfcyIsdm9pZCAwLG4udmlkZW9EYXRhLnpSKTt2YXIgRD1uZXcgZy5kNChuLkIuU1YpLGI9e2NvbnRleHQ6Zy5VSihELmNvbmZpZ198fGcuUzkoKSl9O2IuZHJtU3lzdGVtPXZRQ1tuLkouZmxhdm9yXTtiLnZpZGVvSWQ9bi52aWRlb0RhdGEudmlkZW9JZDtiLmNwbj1uLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlO2Iuc2Vzc2lvbklkPW4uc2Vzc2lvbklkO2IubGljZW5zZVJlcXVlc3Q9Zy5FQShXLm1lc3NhZ2UpO2IuZHJtUGFyYW1zPW4udmlkZW9EYXRhLmRybVBhcmFtcztpc05hTihuLmNyeXB0b1BlcmlvZEluZGV4KXx8KGIuaXNLZXlSb3RhdGVkPSEwLGIuY3J5cHRvUGVyaW9kSW5kZXg9bi5jcnlwdG9QZXJpb2RJbmRleCk7dmFyIHY9ISFuLnZpZGVvRGF0YS5KPy5LKCk/LmlzSGRyKCk7Yi5kcm1WaWRlb0ZlYXR1cmU9dj8iRFJNX1ZJREVPX0ZFQVRVUkVfUFJFRkVSX0hEUiI6IkRSTV9WSURFT19GRUFUVVJFX1NEUiI7Cm4uQi5leHBlcmltZW50cy5adCgpLk4uUVEoa1RiKSYmKGIuY29udGV4dD1nLm9UKG4udmlkZW9EYXRhKSk7aWYoYi5jb250ZXh0JiZiLmNvbnRleHQuY2xpZW50KXtpZih2PW4uQi5OKWIuY29udGV4dC5jbGllbnQuZGV2aWNlTWFrZT12LmNicmFuZCxiLmNvbnRleHQuY2xpZW50LmRldmljZU1vZGVsPXYuY21vZGVsLGIuY29udGV4dC5jbGllbnQuYnJvd3Nlck5hbWU9di5jYnIsYi5jb250ZXh0LmNsaWVudC5icm93c2VyVmVyc2lvbj12LmNicnZlcixiLmNvbnRleHQuY2xpZW50Lm9zTmFtZT12LmNvcyxiLmNvbnRleHQuY2xpZW50Lm9zVmVyc2lvbj12LmNvc3ZlcjtuLkIuZXhwZXJpbWVudHMuWnQoKS5OLlFRKGtUYil8fChiLmNvbnRleHQudXNlcj1iLmNvbnRleHQudXNlcnx8e30sbi52aWRlb0RhdGEuRCYmKGIuY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOm4udmlkZW9EYXRhLkQsc2NvcGU6IlZJREVPIn1dKSxuLnZpZGVvRGF0YS5ISiYmKGIuY29udGV4dC51c2VyLmtpZHNQYXJlbnQ9CntvYXV0aFRva2VuOm4udmlkZW9EYXRhLkhKfSkpO2IuY29udGV4dC5yZXF1ZXN0PWIuY29udGV4dC5yZXF1ZXN0fHx7fTtiLmNvbnRleHQucmVxdWVzdC5tZHhFbnZpcm9ubWVudD1uLnZpZGVvRGF0YS5tZHhFbnZpcm9ubWVudHx8Yi5jb250ZXh0LnJlcXVlc3QubWR4RW52aXJvbm1lbnQ7Zy5YVihuLkopJiYoYi5mYWlycGxheUtleUlkPWcuRUEoeEsobi5mYWlycGxheUtleUlkKSkpO2cuSEUobi5CLG4udmlkZW9EYXRhLlYoKSkudGhlbihrPT57Qzl4KFcsYixELGspO24uc3RhdHVzPSJycyJ9KX1lbHNlIG4uZXJyb3IoImRybS5uZXQiLDIsInQucjtpYy4wIil9OwpoOE09ZnVuY3Rpb24obixXLEQpe3ZhciBiPXt9O2IuaXNIZHI9Vy5pbmNsdWRlcygiSERSIik7c3dpdGNoKFcucmVwbGFjZSgiSERSIiwiIikucmVwbGFjZSgiNzIwIiwiIikpe2Nhc2UgIkFVRElPIjpiLnRyYWNrVHlwZT0xO2JyZWFrO2Nhc2UgIlNEIjpiLnRyYWNrVHlwZT0yO2JyZWFrO2Nhc2UgIkhEIjpiLnRyYWNrVHlwZT0zO2JyZWFrO2Nhc2UgIlVIRDEiOmIudHJhY2tUeXBlPTQ7YnJlYWs7Y2FzZSAiVUhEMiI6Yi50cmFja1R5cGU9NTticmVhaztkZWZhdWx0OmIudHJhY2tUeXBlPTB9IWIudHJhY2tUeXBlfHxEW1ddfHxIcihuKSYmIWZDKG4sVyl8fChuLmF1dGhvcml6ZWRGb3JtYXRzLnB1c2goYiksRFtXXT0hMCl9Owp4Ymo9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMobi5OKSlELnB1c2goYCR7Yn1fJHtuLk5bYl0udHlwZX1fJHtuLk5bYl0uc3RhdHVzfWApO3JldHVybiBELmpvaW4oVyl9OwpIcj1mdW5jdGlvbihuKXt2YXIgVztpZihXPW4uTyYmbi5YIT1udWxsKW49bi5YLFc9ISghbi5OfHwhbi5OLmtleVN0YXR1c2VzKTtyZXR1cm4gV307Cm5Rdz1mdW5jdGlvbihuLFcpe3ZhciBEPVcuTi5nZXRWYWx1ZSgpO0Q9bmV3IGcuZl8oKCk9PntXZzIobixXKX0sRCk7CmcudShuLEQpO0Quc3RhcnQoKTtnLnhFKFcuTik7cEMobix7cnR5cnE6MX0pfTsKSjI9ZnVuY3Rpb24obil7dmFyIFc9e307V1tuLnN0YXR1c109SHIobik/eGJqKG4sIi4iKTpuLlcuam9pbigiLiIpO3JldHVybiBXfTsKZkM9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbi5OKWlmKG4uTltEXS5zdGF0dXM9PT0idXNhYmxlIiYmbi5OW0RdLnR5cGU9PT1XKXJldHVybiEwO3JldHVybiExfTsKTGd3PWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4uTilpZihuLk5bRF0udHlwZT09PVcpcmV0dXJuIG4uTltEXS5zdGF0dXN9OwplOHc9ZnVuY3Rpb24obil7dmFyIFc9blswXTtuWzBdPW5bM107blszXT1XO1c9blsxXTtuWzFdPW5bMl07blsyXT1XO1c9bls0XTtuWzRdPW5bNV07bls1XT1XO1c9bls2XTtuWzZdPW5bN107bls3XT1XfTsKYm1oPWZ1bmN0aW9uKG4pe3JldHVybiBnLmpqKG4sIlVIRDIiKXx8Zy5qaihuLCJVSEQySERSIik/ImhpZ2hyZXMiOmcuamoobiwiVUhEMSIpfHxnLmpqKG4sIlVIRDFIRFIiKT8iaGQyMTYwIjpnLmpqKG4sIkhEIil8fGcuamoobiwiSERIRFIiKT8iaGQxMDgwIjpnLmpqKG4sIkhENzIwIil8fGcuamoobiwiSEQ3MjBIRFIiKT8iaGQ3MjAiOiJsYXJnZSJ9OwpWOWk9ZnVuY3Rpb24obil7dmFyIFc9IiI7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKz0yKVcrPVN0cmluZy5mcm9tQ2hhckNvZGUobltEXSk7bj1nLmdUKG5ldyBET01QYXJzZXIsZy5ITShXKSwidGV4dC94bWwiKTtpZighbilyZXR1cm4gbnVsbDsoVz1uLnF1ZXJ5U2VsZWN0b3IoIkNoYWxsZW5nZSIpKSYmVy5jaGlsZE5vZGVzJiZXLmNoaWxkTm9kZXMubGVuZ3RoIT09MD8obj1VaW50OEFycmF5LFc9emgoVy5jaGlsZE5vZGVzWzBdLm5vZGVWYWx1ZSksVz0oMCxnLk5tKShXKS5idWZmZXIsbj1uZXcgbihXKSk6bj1udWxsO3JldHVybiBufTsKTTliPWZ1bmN0aW9uKG4sVyxELGIsdil7bi5qPVc7bi5XPUQ7bi5WPWI7bi5LPXZ9OwpnUXc9ZnVuY3Rpb24obil7bi5OPyhuLlguTk4obi5OLCJtZXNzYWdlIixuLmJkKSxuLlguTk4obi5OLCJrZXlzdGF0dXNlc2NoYW5nZSIsbi5ZViksbi5OLmNsb3NlZCYmbi5OLmNsb3NlZC50aGVuKFl6KCgpPT57bi5xTigpfHxnLnViKCJ4Ym94b25lIikmJm4uVyYmbi5XKCJjbG9zZWRTaG91bGROb3RSZXRyeSIpfSksbnVsbCkpOm4uSiYmKEt5KG4uWCxuLkosWyJtc2tleW1lc3NhZ2UiLAoid2Via2l0a2V5bWVzc2FnZSJdLG4uY0opLEt5KG4uWCxuLkosWyJtc2tleWVycm9yIiwid2Via2l0a2V5ZXJyb3IiXSxuLk8pLEt5KG4uWCxuLkosWyJtc2tleWFkZGVkIiwid2Via2l0a2V5YWRkZWQiXSxuLkQpKX07ClhVUz1mdW5jdGlvbihuLFcsRCl7Zy5YaihEKTtuLlcmJihEIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoVys9YDtuLiR7RC5uYW1lfTttLiR7RC5tZXNzYWdlfWApLG4uVyhXKSl9OwpxY1U9ZnVuY3Rpb24obil7S3kobi5YLG4uZWxlbWVudCxbImtleW1lc3NhZ2UiLCJ3ZWJraXRrZXltZXNzYWdlIl0sbi5PKTtLeShuLlgsbi5lbGVtZW50LFsia2V5ZXJyb3IiLCJ3ZWJraXRrZXllcnJvciJdLG4uRCk7S3kobi5YLG4uZWxlbWVudCxbImtleWFkZGVkIiwid2Via2l0a2V5YWRkZWQiXSxuLlkpfTsKR1RTPWZ1bmN0aW9uKG4sVz1udWxsKXtpZihuLk4ua2V5U3lzdGVtQWNjZXNzKXJldHVybiBuLks9bi5LLnRoZW4oKCk9Pm4ubWVkaWFLZXlzP1Byb21pc2UucmVzb2x2ZSgpOlc/Lm1lZGlhS2V5cyYmVy5ZYT8ucGcoKT8obi5tZWRpYUtleXM9Vz8ubWVkaWFLZXlzLFByb21pc2UucmVzb2x2ZSgpKTpuLk4ua2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpLnRoZW4oRD0+e24ucU4oKXx8KG4ubWVkaWFLZXlzPUQsVz8uWWE/LnBnKCkmJihXLm1lZGlhS2V5cz1EKSl9KSkudGhlbigoKT0+e3ZhciBEPVc/LmVfKCk7CnJldHVybiBuLmVsZW1lbnQmJm4uZWxlbWVudCE9PUQmJm4uZWxlbWVudC5tZWRpYUtleXM/bi5lbGVtZW50LnNldE1lZGlhS2V5cyhudWxsKTpQcm9taXNlLnJlc29sdmUoKX0pLnRoZW4oKCk9PntuLmVsZW1lbnQ9Vz8uZV8oKTsKcmV0dXJuIG4uZWxlbWVudCYmbi5lbGVtZW50Lm1lZGlhS2V5cyE9PW4ubWVkaWFLZXlzP24uZWxlbWVudC5zZXRNZWRpYUtleXMobi5tZWRpYUtleXMpOlByb21pc2UucmVzb2x2ZSgpfSksbi5LOwp4aChuLk4pP24uSj1uZXcgKHZYKCkpKG4uTi5rZXlTeXN0ZW0pOmVUKG4uTik/KG4uSj1uZXcgKHZYKCkpKG4uTi5rZXlTeXN0ZW0pLG4uZWxlbWVudD8ud2Via2l0U2V0TWVkaWFLZXlzKG4uSikpOnFjVShuKTtyZXR1cm4gbnVsbH07CnR3TT1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyBVaW50OEFycmF5KDI3MCk7Zm9yKGxldCBiPTA7YjwxMzU7YisrKURbYioyXT0nPFBsYXlSZWFkeUNETURhdGEgdHlwZT0iTGljZW5zZUFjcXVpc2l0aW9uIj48TGljZW5zZUFjcXVpc2l0aW9uIHZlcnNpb249IjEuMCIgUHJvYWN0aXZlPSJ0cnVlIj48L0xpY2Vuc2VBY3F1aXNpdGlvbj48L1BsYXlSZWFkeUNETURhdGE+Jy5jaGFyQ29kZUF0KGIpO249bi5KLmNyZWF0ZVNlc3Npb24oInZpZGVvL21wNCIsVyxEKTtyZXR1cm4gbmV3IEl1KG51bGwsbnVsbCxudWxsLG51bGwsbil9OwpySTE9ZnVuY3Rpb24obixXKXtXPSRiWihXLG4uTi5DaSk7Vz1uLkouY3JlYXRlU2Vzc2lvbigidmlkZW8vbXA0IixXKTtyZXR1cm4gbmV3IEl1KG51bGwsbnVsbCxudWxsLG51bGwsVyxuLlYpfTsKUzA9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmpbVy5zZXNzaW9uSWRdOyFEJiZuLlcmJihEPW4uVyxuLlc9bnVsbCxELnNlc3Npb25JZD1XLnNlc3Npb25JZCxuLmpbVy5zZXNzaW9uSWRdPUQpO3JldHVybiBEfTsKJGJaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5zdWJhcnJheSg0KTtEPW5ldyBVaW50MTZBcnJheShELmJ1ZmZlcixELmJ5dGVPZmZzZXQsRC5ieXRlTGVuZ3RoLzIpO0Q9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLEQpLm1hdGNoKC9laz0oWzAtOWEtZl0rKS8pWzFdO3ZhciBiPSIiO2Zvcih2YXIgdj0wO3Y8RC5sZW5ndGg7dis9MiliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KEQuc3Vic3RyaW5nKHYsdisyKSwxNikpO0Q9YjtiPW5ldyBBcnJheUJ1ZmZlcihELmxlbmd0aCoyKTt2PW5ldyBVaW50MTZBcnJheShiKTtmb3IodmFyIGs9MDtrPEQubGVuZ3RoO2srKyl2W2tdPUQuY2hhckNvZGVBdChrKTtEPW5ldyBVaW50OEFycmF5KGIpO2I9MDtrPW5ldyBBcnJheUJ1ZmZlcihuLmJ5dGVMZW5ndGgrNCtELmJ5dGVMZW5ndGgrNCtXLmJ5dGVMZW5ndGgpO3Y9bmV3IFVpbnQ4QXJyYXkoayk7az1uZXcgRGF0YVZpZXcoayk7di5zZXQobik7Yis9bi5ieXRlTGVuZ3RoOwprLnNldFVpbnQzMihiLEQubGVuZ3RoLCEwKTtiKz00O3Yuc2V0KEQsYik7Yis9RC5sZW5ndGg7ay5zZXRVaW50MzIoYixXLmJ5dGVMZW5ndGgsITApO3Yuc2V0KFcsYis0KTtyZXR1cm4gdn07Ck5vQz1mdW5jdGlvbihuKXt2YXIgVz1HVFMobi5tZWRpYUtleXMsbi5tZWRpYUVsZW1lbnQpO1c/Vy50aGVuKFl6KCgpPT57c0lNKG4pfSksWXooRD0+e2lmKCFuLnFOKCkpe2cuWGooRCk7CnZhciBiPSJ0LmEiO0QgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJihiKz0iO24uIitELm5hbWUrIjttLiIrRC5tZXNzYWdlKTtuLldKKCJsaWNlbnNlZXJyb3IiLCJkcm0udW5hdmFpbGFibGUiLDEsYiwiSFRNTDVfTk9fQVZBSUxBQkxFX0ZPUk1BVFNfRkFMTEJBQ0siKX19KSk6KG4uSih7bWRrcmR5OjF9KSxuLkQ9ITApOwpuLk8mJihXPUdUUyhuLk8sbi5tZWRpYUVsZW1lbnQpKX07CnNJTT1mdW5jdGlvbihuKXtpZighbi5xTigpKWlmKG4uQi5TKCJodG1sNV9kcm1fc2V0X3NlcnZlcl9jZXJ0Iil8fG4uTi5OKCkpe2xldCBXPW4ubWVkaWFLZXlzLnNldFNlcnZlckNlcnRpZmljYXRlKCk7Vz9XLnRoZW4oWXooRD0+e24uQi5XWCgpJiZuLldKKCJjdG1wIiwic3NjIix7c3VjY2VzczpEfSl9KSxZeihEPT57bi5XSigiY3RtcCIsInNzY2UiLHtuOkQubmFtZSwKbTpELm1lc3NhZ2V9KX0pKS50aGVuKFl6KCgpPT57QTIobil9KSk6QTIobil9ZWxzZSBBMihuKX07ClljMT1mdW5jdGlvbihuLFcsRCl7bi5QWD0hMDtEPW5ldyBydShXLEQpO24uQi5TKCJodG1sNV9lbWVfbG9hZGVyX3N5bmMiKSYmKG4uVi5nZXQoVyl8fG4uVi5zZXQoVyxEKSk7cFVqKG4sRCl9OwpwVWo9ZnVuY3Rpb24obixXKXtpZighbi5xTigpKXtuLkooe29uSW5pdERhdGE6MX0pO2lmKG4uQi5TKCJodG1sNV9lbWVfbG9hZGVyX3N5bmMiKSYmbi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCkpe3ZhciBEPW4uSy5nZXQoVy5pbml0RGF0YSk7Vz1uLlYuZ2V0KFcuaW5pdERhdGEpO2lmKCFEfHwhVylyZXR1cm47Vz1EO0Q9Vy5pbml0RGF0YTtuLlYucmVtb3ZlKEQpO24uSy5yZW1vdmUoRCl9bi5KKHtpbml0ZDpXLmluaXREYXRhLmxlbmd0aCxjdDpXLmNvbnRlbnRUeXBlfSk7aWYobi5OLmZsYXZvcj09PSJ3aWRldmluZSIpaWYobi5WUSYmIW4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrKW1uKG4pO2Vsc2V7aWYoIShuLkIuUygidnA5X2RybV9saXZlIikmJm4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZXLnFIKSl7bi5WUT0hMDtEPVcuY3J5cHRvUGVyaW9kSW5kZXg7dmFyIGI9Vy5OO1Z2dChXKTtXLnFIfHwoYiYmVy5OIT09Yj9uLldKKCJjdG1wIiwiY3BzbW0iLHtlbXNnOmIsCnBzc2g6Vy5OfSk6RCYmVy5jcnlwdG9QZXJpb2RJbmRleCE9PUQmJm4uV0ooImN0bXAiLCJjcGltbSIse2Vtc2c6RCxwc3NoOlcuY3J5cHRvUGVyaW9kSW5kZXh9KSk7bi5XSigid2lkZXZpbmVfc2V0X25lZWRfa2V5X2luZm8iLFcpfX1lbHNlIG4uUyQoVyl9fTsKbW49ZnVuY3Rpb24obil7aWYobi5QWCYmbi5EJiYhbi5iZCl7Zm9yKDtuLlgubGVuZ3RoOyl7bGV0IFc9bi5YWzBdLEQ9SG1TKG4pP2NraihXKTpnLkVBKFcuaW5pdERhdGEpO2lmKG4uTi5OKCkmJiFXLlVXKW4uWC5zaGlmdCgpO2Vsc2V7aWYobi5XLmdldChEKSlpZihuLk4uZmxhdm9yIT09ImZhaXJwbGF5Inx8bi5OLk4oKSl7bi5YLnNoaWZ0KCk7Y29udGludWV9ZWxzZSBuLlcuZGVsZXRlKEQpO1Z2dChXKTticmVha319bi5YLmxlbmd0aCYmbi5jcmVhdGVTZXNzaW9uKG4uWFswXSl9fTsKQTI9ZnVuY3Rpb24obil7bi5xTigpfHwobi5EPSEwLG4uSih7b25tZGtyZHk6MX0pLG1uKG4pKX07CkhtUz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmZsYXZvcj09PSJ3aWRldmluZSImJm4udmlkZW9EYXRhLlMoImh0bWw1X2RybV9jcGlfbGljZW5zZV9rZXkiKX07CmY1eD1hc3luYyBmdW5jdGlvbihuKXtpZihnLmQ4KCkmJm4ubWVkaWFLZXlzLm1lZGlhS2V5cz8uZ2V0TWV0cmljcyl7dmFyIFc9YXdhaXQgbi5tZWRpYUtleXMuZ2V0TWV0cmljcygpO1cmJigoMCxnLkc5KShXKXx8KFc9Zy5IRyhXKSksL15bQS1aYS16MC05Xy1dKz17MCwzfSQvLnRlc3QoVyl8fChXPWcudXAoVyx2b2lkIDAsITApKSxuLldKKCJjdG1wIiwiZHJtIix7bWV0cmljczpXfSkpfX07CkpJYj1mdW5jdGlvbihuLFcpe2lmKG4udmlkZW9EYXRhLlkpcmV0dXJuITE7bi55US5udSs9MTtpZihuLnlRLm51PD0xMClyZXR1cm4hMTtXLmV4aWxlZD1gJHtuLnlRLm51fWA7bi5HcygicW9lLnN0YXJ0MTVzIixXKTtuLkwuV0ooInBsYXliYWNrc3RhbGxlZGF0c3RhcnQiKTtyZXR1cm4hMH07Ckk1Mj1mdW5jdGlvbihuKXtpZighbi5KKXtuLko9ITA7dmFyIFc9bi5MLmdldFBsYXllclN0YXRlKCk7Vz1XLmlzUGF1c2VkKCl8fFcuaXNTdXNwZW5kZWQoKTtuLkwub0ooKTtXJiYhT1Mobi52aWRlb0RhdGEpfHxuLkwuV0ooInNpZ25hdHVyZWV4cGlyZWQiKX19OwpLQz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi52aWRlb0RhdGEuSix2PW4udmlkZW9EYXRhLlgsaz1uLnlRLlMoImh0bWw1X2Rpc2FibGVfY29kZWNfZmFsbGJhY2tfZm9yX2RybSIpJiZuLnZpZGVvRGF0YS5NaSgpO0FKKG4uTC5nZXRWaWRlb0RhdGEoKSkmJlA5VShuLkwsInBlIik7bi55US5adCgpLk4uUVEoU2N0KSYmKEQuYmtnPW4uTC5YTygpLmlzQmFja2dyb3VuZCgpPyIxIjoiMCIpO2lmKChXPT09InByb2dyZXNzaXZlLm5ldC5yZXRyeWV4aGF1c3RlZCJ8fFc9PT0iZm10LnVucGxheWFibGUifHxXPT09ImZtdC5kZWNvZGUiKSYmIW4uTC5oVS5qJiZiJiZiLml0YWc9PT0iMjIiKXJldHVybiBuLkwuaFUuaj0hMCxuLkdzKCJxb2UucmVzdGFydCIse3JlYXNvbjoiZm10LnVucGxheWFibGUuMjIifSksbi5MLlZ2KCksITA7dmFyIGg9ITE7aWYobi52aWRlb0RhdGEuaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdCl7aWYoaD1uLnZpZGVvRGF0YS5xdylELm1pbWVUeXBlPWgudHlwZSwKbi5VKCIzcHAiLHt1cmw6aC51cmx9KTtELm5zPSIzcHAiO24uTC5QVihXLDEsIlZJREVPX1VOQVZBSUxBQkxFIixnLlRDKChuZXcgZy5DaShXLEQsMSkpLmRldGFpbHMpKTtyZXR1cm4hMH12YXIgeD1uLmtzKzNFNDwoMCxnLlIpKCl8fG4uTi5pc0FjdGl2ZSgpO2lmKG4ueVEuUygiaHRtbDVfZW1wdHlfc3JjIikmJm4udmlkZW9EYXRhLmlzQWQoKSYmVz09PSJmbXQudW5wbGF5YWJsZSImJi9FbXB0eSBzcmMvLnRlc3QoYCR7RC5tc2d9YCkpcmV0dXJuIEQub3JpZ2luPSJlbXB0eXNyYyIsbi5HcygiYXV0aCIsRCksITA7dmFyIEw7aWYoTD0heClMPW4uTC5YTygpLEw9ISEoTC5CUCgpfHxMLmlzSW5saW5lKCl8fEwuaXNCYWNrZ3JvdW5kKCl8fEwuQW4oKXx8TC5qSSgpfHxMLlNJKCl8fEwuUTAoKSk7TCYmKEQubm9uZmc9InBhdXNlZCIseD0hMCxuLkwucGF1c2VWaWRlbygpKTtXIT09ImZtdC5kZWNvZGUiJiZXIT09ImZtdC51bnBsYXlhYmxlInx8IXY/LlYoKXx8KFNUKG4ueVEuVyx2LklCKSwKRC5hY2ZhbGxleHA9di5JQixoPXg9ITApOyF4JiZuLlc+MCYmKG4uTi5zdGFydCgpLHg9ITAsRC5kZWxheWVkPSIxIiwtLW4uVyk7dj1uLkwubG9hZGVyO3h8fCFiPy5NVygpJiYhYj8uWCgpfHxrfHwoU1Qobi55US5XLGIuSUIpLGg9eD0hMCxELmNmYWxsZXhwPWIuSUIpO2lmKCF4KXJldHVybiBKSWIobixEKTtrPSExO24uaj9uLmtzPSgwLGcuUikoKTprPW4uaj0hMDt4PW4udmlkZW9EYXRhO3guY0o/KHg9eC5jSi5qKCksTD1EYXRlLm5vdygpLzFFMysxODAwLHg9eDxMKTp4PSExO0QuZT1XO3gmJihELnN0YWxlcHJvZz0iMSIpO24uR3MoInFvZS5yZXN0YXJ0IixEKTtpZih4JiZuLlExKCkpcmV0dXJuIEk1MihuKSwhMDtpZighKCFnLnViKCJwaGlsaXBzIil8fFc9PT0iZm10LnVucGxheWFibGUiJiZ2JiZ2LkNIfHxuLnlRLk4uY3BsYXRmb3JtPT09IkdBTUVfQ09OU09MRSIpKXRyeXt3aW5kb3cuY2xvc2UoKX1jYXRjaHt9YiYmYi5NVygpJiYhbi55US5TKCJodG1sNV9hbGxvd19hdjFfcmV0cnlfaW5fc2Vzc2lvbiIpPwooaD1uLnlRLlcsaC5ZPSEwLGg9aC5OPSEwKTp2PyhXPW4ueVEuUygiaHRtbDVfZGlzYWJsZV9zdHVubmluZ19mb3Jfc2QiKSxEPW4udmlkZW9EYXRhLlcsRD1EPy52aWRlb0luZm9zPy5sZW5ndGg/RC52aWRlb0luZm9zW0QudmlkZW9JbmZvcy5sZW5ndGgtMV06bnVsbCxiPWImJkQmJmIudmlkZW8mJkQudmlkZW8mJmIudmlkZW8ucXVhbGl0eU9yZGluYWw9PT1ELnZpZGVvLnF1YWxpdHlPcmRpbmFsLGt8fFcmJmJ8fChiPShiPUkkKHYudmlkZW9UcmFjayl8fHYudmlkZW9UcmFjay5OKT9iLlBKOnYudmlkZW9UcmFjay5QSixiLkZGKz0xLHYucG9saWN5Lk4/V2wodi5rNixiLCEwKTphcSh2LmNWLGIsITApKSk6bi52aWRlb0RhdGEuY0omJm4udmlkZW9EYXRhLmNKLlgoKTtuLk4uaXNBY3RpdmUoKXx8bi5MLkJvKGgpO3JldHVybiEwfTsKQUlNPWZ1bmN0aW9uKG4sVyl7aWYoKG49bi5MLmg1KCkpJiYoVy5lcnJvckNvZGU9PT0iZm10LnVucGxheWFibGUifHxXLmVycm9yQ29kZT09PSJodG1sNS5pbnZhbGlkc3RhdGUiKSl7bGV0IEQ9bi5WRygpO1cuZGV0YWlscy5tZXJyPUQ/RC50b1N0cmluZygpOiIwIjtXLmRldGFpbHMubW1zZz1uLnM4KCl9fTsKbWJNPWZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yQ29kZT09PSJuZXQuYmFkc3RhdHVzIiYmKG4uc2V2ZXJpdHk9PT0xfHwhIW4uZGV0YWlscy5mbXRfdW5hdil9OwpLZ3g9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi55US5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIikmJlcuZGV0YWlscy5yYz09PTQwM3x8Vy5kZXRhaWxzLnJjPT09IjQwMyI/KG49Vy5lcnJvckNvZGUsbj09PSJuZXQuYmFkc3RhdHVzInx8bj09PSJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQiKTohMX07Ck9YPWZ1bmN0aW9uKG4sVyxEKXt0cnl7Vz17ZGV0YWlsOmBwci4ke1d9YH0sZy54NihuLnlRKXx8bG8obi55USk9PT0iVFZIVE1MNV9GT1JfS0lEUyI/bi5MLlBWKCJxb2UucmVzdGFydCIsRD8xOjIsdm9pZCAwLGcuVEMoVyksIjciKToobi5HcygicW9lLnJlc3RhcnQiLFcpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSl9Y2F0Y2h7fX07Ck9tMj1mdW5jdGlvbihuLFcpe2lmKCFLZ3gobixXKSYmIW4uSilyZXR1cm4hMTtXLmRldGFpbHMuc3RzPSIyMDY1NSI7aWYobi5RMSgpKXJldHVybiBqMihXLnNldmVyaXR5KSYmKFc9T2JqZWN0LmFzc2lnbih7ZTpXLmVycm9yQ29kZX0sVy5kZXRhaWxzKSxXPW5ldyBnLkNpKCJxb2UucmVzdGFydCIsVykpLG4uR3MoVy5lcnJvckNvZGUsVy5kZXRhaWxzKSxJNTIobiksITA7KDAsZy5SKSgpLW4ueVEuQ3U+NjA0OEU1JiZPWChuLCJzaWduYXR1cmUiLCEwKTtyZXR1cm4hMX07ClBNaj1mdW5jdGlvbihuKXtpZihuLnZpZGVvRGF0YS5lcnJvckRldGFpbD09PSI3IiYmZy5rNihuLnlRKSl7bGV0IFc9IW4udmlkZW9EYXRhLmlzSW5saW5lUGxheWJhY2tOb0FkO1cmJm4ueVEuVFErKztPWChuLCJpbm5lcnR1YmVfcGxheWVyX3JlbG9hZF9yZXF1aXJlZCIsVyYmbi55US5UUT4xKTtyZXR1cm4hMH1yZXR1cm4hMX07ClByPWZ1bmN0aW9uKG4sVz0iZm10Lm5vbmVhdmFpbGFibGUiKXt2YXIgRD1uLnlRLlc7RC5LPSExO0QuTj0hMDtuLkdzKCJxb2UucmVzdGFydCIse2U6VyxkZXRhaWw6ImhkciJ9KTtuLkwuQm8oITApfTsKWm1oPWZ1bmN0aW9uKG4pe2lmKG4uTC5YTygpLmlzSW5saW5lKCkpcmV0dXJuIFlaO249TGdbcDcoKV07cmV0dXJuIHZBKCJhdXRvIixuLCExLCJzIil9Owp5SXI9ZnVuY3Rpb24obixXKXt2YXIgRDthOmlmKChEPVcuTikmJkQudmlkZW9JbmZvcy5sZW5ndGgpe2Zvcih2YXIgYiBvZiBELnZpZGVvSW5mb3MpaWYoYi5qPy5zbW9vdGgpe0Q9Yi52aWRlby5xdWFsaXR5T3JkaW5hbDticmVhayBhfUQ9RC52aWRlb0luZm9zWzBdLnZpZGVvLnF1YWxpdHlPcmRpbmFsfWVsc2UgRD0wO2I9ITA7bi5CLlMoIndlYl9yZWxheF9hcm1fY2FwIikmJm5hdmlnYXRvci5KRiYmKGI9ITEpO2ImJihnLnViKCJhcm12NyIpfHxnLnViKCJhYXJjaDY0Iil8fGcudWIoImFuZHJvaWQiKSkmJiFnLms2KG4uQikmJlcuTi52aWRlb0luZm9zWzBdLlgoKSYmKEQ9TWF0aC5taW4oRCxORy5sYXJnZSkpO2I9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2NoaXBzZXRfc29mdF9jYXAiKTtiPjAmJihEPU1hdGgubWluKEQsYikpO2I9bi5CLncwKCkuTi5RUShVYlMpO2I+MCYmKEQ9TWF0aC5taW4oRCxiKSk7aWYoYj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfbWF4X3ZlcnRpY2FsX3Jlc29sdXRpb24iKSl7bGV0IGg9CjQzMjA7Zm9yKHZhciB2PTA7djxXLk4udmlkZW9JbmZvcy5sZW5ndGg7disrKXt2YXIgaz1XLk4udmlkZW9JbmZvc1t2XTtrLnZpZGVvLmhlaWdodD5iJiYoaD1NYXRoLm1pbihoLGsudmlkZW8ucXVhbGl0eU9yZGluYWwpKX1pZihoPDQzMjApe3Y9MDtmb3Ioaz0wO2s8Vy5OLnZpZGVvSW5mb3MubGVuZ3RoO2srKyl7bGV0IHg9Vy5OLnZpZGVvSW5mb3Nba10udmlkZW8ucXVhbGl0eU9yZGluYWw7eDxoJiYodj1NYXRoLm1heCh2LHgpKX12JiYoRD1NYXRoLm1pbih2LEQpKX1uLkwuVSgibXZyIix7aDpiLGNwOkR9KX1yZXR1cm4gbmV3IGIzKDAsRCwhMSwibyIpfTsKaW1yPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9NDMyMDshbi5CLmp8fGcuQ04obi5CKXx8bi5CLlMoImhsc19mb3Jfdm9kIil8fG4uQi5TKCJtd2ViX3JlbW92ZV8zNjBwX2NhcCIpfHwoRD1ORy5tZWRpdW0pO3ZhciBiPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9kZWZhdWx0X3F1YWxpdHlfY2FwIik7YiYmVy5OLk4oKSYmKG4uQi5TKCJodG1sNV9hbHdheXNfYXBwbHlfZGVmYXVsdF9xdWFsaXR5X2NhcCIpfHwhVy52aWRlb0RhdGEuaTUmJiFXLnZpZGVvRGF0YS5jb250ZW50UHJvdGVjdGlvbikmJihEPU1hdGgubWluKEQsYikpO2I9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X3JhbmRvbV9wbGF5YmFja19jYXAiKTt2YXIgdj0vW2EtaF0kLztiJiZ2LnRlc3QoVy52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSkmJihEPU1hdGgubWluKEQsYikpO2lmKHY9Yj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfaGZyX3F1YWxpdHlfY2FwIikpYTp7dj1XLk47aWYodi5OKCkpZm9yKHZhciBrIG9mIHYudmlkZW9JbmZvcylpZihrLnZpZGVvLkooKSl7dj0KITA7YnJlYWsgYX12PSExfXYmJihEPU1hdGgubWluKEQsYikpOyhrPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9saXZlX3F1YWxpdHlfY2FwIikpJiZXLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKEQ9TWF0aC5taW4oRCxrKSk7RD1FUU0obixXLEQpO249Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2J5dGVyYXRlX3NvZnRfY2FwIik7cmV0dXJuIG5ldyBiMygwLEQ9PT00MzIwPzA6RCwhMSwiZCIsbil9OwpaVj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uTC5YTygpO3JldHVybiBELmlzSW5saW5lKCkmJiFXLnVuY2FwSW5saW5lUXVhbGl0eT9uZXcgYjMoMCw0ODAsITEsInYiKTpnLllOKFcpP1laOkQuaXNCYWNrZ3JvdW5kKCkmJmcudkkoKS8xRTM+NjAmJiFnLms2KG4uQik/bmV3IGIzKDAsMzYwLCExLCJ2Iik6WVp9OwpVWD1mdW5jdGlvbihuLFcsRCl7aWYobi5CLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9kaXNhYmxlX2NsaWVudF9hdXRvbmF2X2NhcF9mb3Jfb25lc2llIikmJlcuaHEoKXx8Zy5rNihuLkIpJiYocDcoLTEpPj0xMDgwfHxXLm9zaWQpKXJldHVybiBZWjt2YXIgYj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfYXV0b25hdl9xdWFsaXR5X2NhcCIpLHY9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2F1dG9uYXZfY2FwX2lkbGVfc2VjcyIpO3JldHVybiBiJiZXLmlzQXV0b25hdiYmZy52SSgpLzFFMz52PyhEJiYoYj1FUU0obixELGIpKSxuZXcgYjMoMCxiLCExLCJlIikpOllafTsKeTM9ZnVuY3Rpb24obixXKXtpZighVy5OLk4oKSlyZXR1cm4gbi5qP25ldyBiMygwLDM2MCwhMSwiYiIpOllaO3ZhciBEPSExLGI9ITE7Zm9yKHZhciB2IG9mIFcuTi52aWRlb0luZm9zKXYuTVcoKT9EPSEwOmI9ITA7RD1EJiZiO2I9MDt2PWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9wZXJmb3JtYW5jZV9jYXBfZmxvb3IiKTt2PW4uQi5qPzI0MDp2O2ZvcihsZXQgayBvZiBXLk4udmlkZW9JbmZvcyl7aWYoRCYmay5NVygpKWNvbnRpbnVlO1c9VkMoay5JQixrLnZpZGVvLmZwcyxuLlcpO2xldCBoPWsudmlkZW8ucXVhbGl0eU9yZGluYWw7aWYoTWF0aC5tYXgoVyx2KT49aCl7Yj1oO2JyZWFrfX1yZXR1cm4gbmV3IGIzKDAsYiwhMSwiYiIpfTsKaW09ZnVuY3Rpb24obixXKXt2YXIgRD1FWChuLFcuTj8udmlkZW9JbmZvcyksYj1uLkwuZ2V0UGxheWJhY2tSYXRlKCk7cmV0dXJuIGI+MSYmRD8obj1KeihuLkIuVyxXLk4udmlkZW9JbmZvcyxiKSxuZXcgYjMoMCxuLCEwLCJvIikpOm5ldyBiMygwLDAsITEsIm8iKX07CnVtPWZ1bmN0aW9uKG4sVyxEKXtnLms2KG4uQikmJihEPUQuY29tcG9zZShuLk1oKFcpKSk7cmV0dXJuIER9OwpFWD1mdW5jdGlvbihuLFcpe3JldHVybiBXJiZnLms2KG4uQik/Vy5zb21lKEQ9PkQudmlkZW8uSigpKTohMX07CkVRTT1mdW5jdGlvbihuLFcsRCl7aWYobi5TKCJodG1sNV9vcHRpbWFsaXR5X2RlZmF1bHRzX2Nob29zZXNfbmV4dF9oaWdoZXIiKSYmRClmb3Iobj1XLk4udmlkZW9JbmZvcyxXPTE7VzxuLmxlbmd0aDtXKyspaWYobltXXS52aWRlby5xdWFsaXR5T3JkaW5hbDxEKXJldHVybiBuW1ctMV0udmlkZW8ucXVhbGl0eU9yZGluYWw7cmV0dXJuIER9Owp1aWo9YXN5bmMgZnVuY3Rpb24obil7aWYoIW4uTi5OKCl8fHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyE9PSJmdW5jdGlvbiIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2F3YWl0IFByb21pc2UucmVzb2x2ZSgpO2ZvcihsZXQgVyBvZiBuLk4udmlkZW9JbmZvcylhd2FpdCBrM3IoVyl9OwpvUTI9ZnVuY3Rpb24obixXKXt2YXIgRD1XLklCLGI9Vy52aWRlby5mcHMsdj1XLnZpZGVvLnF1YWxpdHlPcmRpbmFsLTEsaz1uLlc7Vz1gJHtEfSR7Yj40OT8icDYwIjpiPjMyPyJwNDgiOiIifWA7RD1WQyhELGIsayk7dj4wJiYoRD1NYXRoLm1pbihELHYpKTshY0YuaGFzKFcpJiZKcygpLmluY2x1ZGVzKFcpPyhiPWY3KCksK2JbV10+MCYmKEQ9TWF0aC5taW4oK2JbV10sRCkpLGJbV10hPT1EJiYoYltXXT1ELGcuUEIoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiLGIsMjU5MkUzKSkpOmNGLmhhcyhXKXx8az09bnVsbD8oYj1KcygpLnNsaWNlKCksYi5pbmNsdWRlcyhXKXx8KGIucHVzaChXKSxnLlBCKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwLWFjdGl2ZS1zZXQiLGIsMjU5MkUzKSksUUMuc2V0KFcsRCkpOihjRi5hZGQoVyksaz8uc2V0KFcsRCkpO24uTC5zVCgpfTsKZGJTPWZ1bmN0aW9uKCl7cmV0dXJuIFd4KGY3KCksbj0+YCR7bn1gKX07Cno4Mj1mdW5jdGlvbihuLFcsRCxiKXtpZighV3x8IUR8fCFXLnZpZGVvRGF0YS5KKXJldHVybiExO3ZhciB2PWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9kZl9kb3duZ3JhZGVfdGhyZXNoIiksaz1uLlMoImh0bWw1X2xvZ19tZWRpYV9wZXJmX2luZm8iKTtpZighKCgwLGcuUikoKS1uLlg8NUUzPzA6a3x8dj4wKSlyZXR1cm4hMTt2YXIgaD0oKDAsZy5SKSgpLW4uWCkvMUUzO24uWD0oMCxnLlIpKCk7RD1ELmdldFZpZGVvUGxheWJhY2tRdWFsaXR5KCk7aWYoIUQpcmV0dXJuITE7dmFyIHg9RC5kcm9wcGVkVmlkZW9GcmFtZXMtbi5WLEw9RC50b3RhbFZpZGVvRnJhbWVzLW4udG90YWxGcmFtZXM7bi5WPUQuZHJvcHBlZFZpZGVvRnJhbWVzO24udG90YWxGcmFtZXM9RC50b3RhbFZpZGVvRnJhbWVzO3ZhciBlPUQuZGlzcGxheUNvbXBvc2l0ZWRWaWRlb0ZyYW1lcz09PTA/MDpELmRpc3BsYXlDb21wb3NpdGVkVmlkZW9GcmFtZXN8fC0xO2smJm4uQi5XWCgpJiZuLkwuVSgiZGRmIiwKe2RyOkQuZHJvcHBlZFZpZGVvRnJhbWVzLGRlOkQudG90YWxWaWRlb0ZyYW1lcyxjb21wOmV9KTtpZihiKXJldHVybiBuLk49MCwhMTtpZigoTC14KS9oPm4uWXx8IXZ8fGcuazYobi5CKSlyZXR1cm4hMTtuLk49KEw+NjA/eC9MOjApPnY/bi5OKzE6MDtpZihuLk4hPT0zKXJldHVybiExO29RMihuLFcudmlkZW9EYXRhLkopO24uTC5VKCJkZmQiLE9iamVjdC5hc3NpZ24oe2RyOkQuZHJvcHBlZFZpZGVvRnJhbWVzLGRlOkQudG90YWxWaWRlb0ZyYW1lc30sZGJTKCkpKTtyZXR1cm4hMH07Cmw1VT1mdW5jdGlvbihuLFcpe24uUygiaHRtbDVfbG9nX21lZGlhX3BlcmZfaW5mbyIpJiYobi5MLlUoInBlcmZkYiIsZGJTKCkpLG4uTC5VKCJzZXNzaW9ucGVyZmRiIixPYmplY3QuZnJvbUVudHJpZXMoUUMuZW50cmllcygpKSksbi5MLlUoInBsYXliYWNrcGVyZmRiIixPYmplY3QuZnJvbUVudHJpZXMobi5XLmVudHJpZXMoKSkpLG4uTC5VKCJod2MiLHtuY2g6bmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3l9LCEwKSxXJiZuLkwuVSgibWNkYiIse2l0YWdzOlcuTi52aWRlb0luZm9zLmZpbHRlcihEPT5ELmo/LnNtb290aD09PSExKS5tYXAoRD0+RC5pdGFnKS5qb2luKCItIil9KSl9OwpiQT1mdW5jdGlvbihuLFcsRD0hMSl7bi5ZYT8uV1goKSYmbi5ZYS5VKCJybXMiLFcsRCl9OwpvdT1mdW5jdGlvbihuKXtuPW4uTygpO3JldHVybiBuLmxlbmd0aDwxP05hTjpuLmVuZChuLmxlbmd0aC0xKX07ClRvaT1mdW5jdGlvbihuLFcpe24uWGImJm4uWGIuZXF1YWxzKFcpfHwobi5YYiYmbi5YYi5kaXNwb3NlKCksbi5YYj1XKX07CmpJaj1mdW5jdGlvbihuKXshbi5XJiZjUigpJiYobi5qP24uai50aGVuKCgpPT5qSWoobikpOm4uWF8oKXx8KG4uVz1uLlV6KCkpKX07CkNNeD1mdW5jdGlvbihuLFcsRCl7bi5pc1BhdXNlZCgpfHxuLmdldEN1cnJlbnRUaW1lKCk+V3x8RD4xMHx8KG4ucGxheSgpLGcubiQoKCk9PntDTXgobixuLmdldEN1cnJlbnRUaW1lKCksRCsxKX0sNTAwKSl9OwpCb3Q9ZnVuY3Rpb24obixXKXtpZihuLlgoKT09PTB8fG4uaGFzRXJyb3IoKSlyZXR1cm4hMTt2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCk+MDtyZXR1cm4gVz49MCYmKG49bi5PKCksbi5sZW5ndGh8fCFEKT9CUihuLFcpOkR9OwpkUz1mdW5jdGlvbihuKXtpZihuLlhfKCl8fG4uVEMoKSluLllhJiZuLllhLkNjKCJyc19zIiksZy5NTCYmbi5nZXRDdXJyZW50VGltZSgpPjAmJm4uc2Vla1RvKDApLG4uVlEoKSxuLmUkKCksbi5sb2FkKCksVG9pKG4sbnVsbCk7ZGVsZXRlIG4uan07CkZnYj1mdW5jdGlvbihuKXt2YXIgVz1uLkooKTtyZXR1cm4gTSQoVykmJm4uZ2V0RHVyYXRpb24oKT9XLmVuZChXLmxlbmd0aC0xKTowfTsKelg9ZnVuY3Rpb24obil7c3dpdGNoKG4uVkcoKSl7Y2FzZSAyOnJldHVybiJwcm9ncmVzc2l2ZS5uZXQucmV0cnlleGhhdXN0ZWQiO2Nhc2UgMzpyZXR1cm4gbj1uLnM4KCksbj8uaW5jbHVkZXMoIk1FRElBX0VSUl9DQVBBQklMSVRZX0NIQU5HRUQiKXx8d1VNJiZuPy5pbmNsdWRlcygiYXVkaW9fb3V0cHV0X2NoYW5nZSIpPyJjYXBhYmlsaXR5LmNoYW5nZWQiOiJmbXQuZGVjb2RlIjtjYXNlIDQ6cmV0dXJuImZtdC51bnBsYXlhYmxlIjtjYXNlIDU6cmV0dXJuImRybS51bmF2YWlsYWJsZSI7Y2FzZSAxRTM6cmV0dXJuImNhcGFiaWxpdHkuY2hhbmdlZCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19OwpNd2g9ZnVuY3Rpb24obil7dmFyIFc9bnVsbDtuWzRdJiYoVz1uWzRdLFc9e2Vycm9yQ29kZTpXWzVdLGVycm9yRGV0YWlsOldbNl0sZXJyb3JNZXNzYWdlOldbN10saHk6V1s4XSxUaDpXWzldLHdpOldbMTBdLEp4OldbMTFdLGNwbjpXWzEyXX0pO3JldHVybiBuZXcgZy5sbShuWzFdLFcsblsyXSxuWzNdKX07CmwxPWZ1bmN0aW9uKG4pe3JldHVybiBuLmlzUGxheWluZygpJiYhbi5OKDE2KSYmIW4uTigzMil9OwpUWD1mdW5jdGlvbihuKXtyZXR1cm4gbi5OKDEyOCk/LTE6bi5OKDIpPzA6bi5OKDIwNDgpPzM6bi5OKDY0KT8tMTpuLk4oMSkmJiFuLk4oMzIpPzM6bi5OKDgpPzE6bi5OKDQpPzI6LTF9OwpqMD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKCEoVz09PW4uc3RhdGUmJkQ9PT1uLmhPJiZiPT09bi5zZWVrU291cmNlJiZ2PT09bi5zdG9wcGFnZVJlYXNvbnx8VyE9PXZvaWQgMCYmKFcmMTI4JiYhRHx8VyYyJiZXJjE2KSkpe3ZhciBrO2lmKGs9VylrPVd8fG4uc3RhdGUsaz0hIShrJjE2fHxrJjMyKTtuPW5ldyBnLmxtKFcsRCxrP2I/YjpuLnNlZWtTb3VyY2U6bnVsbCx2KX1yZXR1cm4gbn07CkNDPWZ1bmN0aW9uKG4sVyxEPSExKXtyZXR1cm4gUjhDKG4sVy5nZXRDdXJyZW50VGltZSgpLCgwLGcuUikoKSxXLnpzKCksRCl9OwpCcj1mdW5jdGlvbihuLFcsRD1udWxsLGI9bnVsbCl7cmV0dXJuIGowKG4sbi5zdGF0ZXxXLG51bGwsRCxiKX07CkZiPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGowKG4sbi5zdGF0ZSZ+VyxudWxsLG51bGwsbnVsbCl9Owp3Uz1mdW5jdGlvbihuLFcsRCxiPW51bGwsdj1udWxsKXtyZXR1cm4gajAobiwobi5zdGF0ZXxXKSZ+RCxudWxsLGIsdil9OwpRSVM9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5zdGF0ZT09PW4uc3RhdGUmJlcuaE89PT1uLmhPfTsKVndNPWZ1bmN0aW9uKG4pe3N3aXRjaChuLkIucGxheWVyQ2FuYXJ5U3RhZ2U/LnRvTG93ZXJDYXNlKCkpe2Nhc2UgInhzbWFsbCI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfWFNNQUxMIjtjYXNlICJzbWFsbCI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfU01BTEwiO2Nhc2UgIm1lZGl1bSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfTUVESVVNIjtjYXNlICJsYXJnZSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfTEFSR0UiO2Nhc2UgInhsYXJnZSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfWExBUkdFIjtkZWZhdWx0OnJldHVybiJIVE1MNV9QTEFZRVJfQ0FOQVJZX1NUQUdFX1VOU1BFQ0lGSUVEIn19OwpjSWo9ZnVuY3Rpb24obil7bi5OPj0wfHwobi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpPT09Mz9uLlY9ITA6KG4uTj1nLlJrKG4ucHJvdmlkZXIpLG4uZGVsYXkuc3RhcnQoKSkpfTsKYTVyPWZ1bmN0aW9uKG4pe2lmKCEobi5KPDApKXt2YXIgVz1nLlJrKG4ucHJvdmlkZXIpLEQ9Vy1uLmo7bi5qPVc7bi5wbGF5ZXJTdGF0ZS5KKCk/bi5wbGF5VGltZVNlY3MrPUQ6bi5wbGF5ZXJTdGF0ZS5pc0J1ZmZlcmluZygpJiYhbi5wbGF5ZXJTdGF0ZS5OKDE2KSYmKG4ucmVidWZmZXJUaW1lU2Vjcys9RCl9fTsKUnU9ZnVuY3Rpb24obixXPSExKXtuLk4uWD1XO24uTi5zdGFydFRpbWU9bi5XO24uTi5lbmRUaW1lPW4uSjtuLmpWPy5sZW5ndGgmJihuLk4ualY9bi5qVik7bi5yWD8ubGVuZ3RoJiYobi5OLnJYPW4uclgpO1c9ITE7dmFyIEQ9Zy5VTShuLnNlZ21lbnRzKTtuLnNlZ21lbnRzLmxlbmd0aCYmIUQ/LlgmJkQ/LmlzRW1wdHkoKT8obi5zZWdtZW50c1tuLnNlZ21lbnRzLmxlbmd0aC0xXS5wcmV2aW91c2x5RW5kZWQmJihuLk4ucHJldmlvdXNseUVuZGVkPSEwKSxuLnNlZ21lbnRzW24uc2VnbWVudHMubGVuZ3RoLTFdPW4uTixXPSEwKTpuLnNlZ21lbnRzLmxlbmd0aCYmbi5OLmlzRW1wdHkoKSYmIW4uTi5YfHwobi5zZWdtZW50cy5wdXNoKG4uTiksVz0hMCk7Vz8obi5OLmVuZFRpbWU9PT0wJiYobi5wcmV2aW91c2x5RW5kZWQ9ITEpLG4uTi5yWD8ubGVuZ3RoJiZuLnByb3ZpZGVyLkwuVSgic2RhaSIse2F0dGFjaF9tZXRhOjEsc3Q6bi5OLnN0YXJ0VGltZSxldDpuLk4uZW5kVGltZSxzZWdfaWR4Om4uc2VnbWVudHMubGVuZ3RoLQoxfSkpOm4uTi5wcmV2aW91c2x5RW5kZWQmJihuLnByZXZpb3VzbHlFbmRlZD0hMCk7bi5WKz1uLkotbi5XO24uTj1NbShuLnByb3ZpZGVyKTtuLk4ucHJldmlvdXNseUVuZGVkPW4ucHJldmlvdXNseUVuZGVkO24ucHJvdmlkZXIuQi5adCgpLk4uUVEobm9yKSYmKG4uais9SlNPTi5zdHJpbmdpZnkobi5OKS5sZW5ndGgpO24ucHJldmlvdXNseUVuZGVkPSExO24uVz1uLko7cmV0dXJuIFc/Zy5VTShuLnNlZ21lbnRzKTp2b2lkIDB9OwpXM1o9ZnVuY3Rpb24obil7RHIobi5LKTtuLks9TmFOfTsKRGoyPWZ1bmN0aW9uKG4pe1czWihuKTtuLks9VzAoKCk9PntuLnVwZGF0ZSgpfSwxMDApOwpuLnJ6PWcuUmsobi5wcm92aWRlcik7bi5OPU1tKG4ucHJvdmlkZXIpfTsKYlh0PWZ1bmN0aW9uKG4sVyxEKXtELT1uLnJ6O3JldHVybiBXPT09bi5KJiZEPi41fTsKZy5RMz1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc2VuZFZpc2l0b3JJZEhlYWRlcj9uLnZpc2l0b3JEYXRhOnZvaWQgMDtyZXR1cm4gZy5IRShuLkIsbi5hY2Nlc3NUb2tlbikudGhlbihiPT5qUihuLnVyaSxuLkIsbi5wYWdlSWQsRCxiLFcpKX07Cmcudm9qPWZ1bmN0aW9uKG4pe24uaW5kZXhPZigid2F0Y2h0aW1lIikhPT0tMSYmZy56VSgiZ2VsRGVidWdnaW5nRXZlbnQiLHt2c3MzZGVidWdnaW5nRXZlbnQ6e3ZzczJQaW5nOm59fSl9OwprcGk9ZnVuY3Rpb24obixXKXtuLmF0dGVzdGF0aW9uUmVzcG9uc2UmJmcuUTMobikudGhlbihEPT57RD1EfHx7fTtELm1ldGhvZD0iUE9TVCI7RC5wb3N0UGFyYW1zPXthdHI6bi5hdHRlc3RhdGlvblJlc3BvbnNlfTtuLlMkP24uVlE/Zy5IVSgpLnNlbmRBbmRXcml0ZShXLEQpOmcuSFUoKS5zZW5kVGhlbldyaXRlKFcsRCk6Zy5lZChXLEQpfSl9OwpoeWk9ZnVuY3Rpb24obil7dmFyIFc9e08zOltdfTtpZihnLm9NKG4uc2VnbWVudHMsRD0+ISFELmpWfHwhIUQuclgpKXtmb3IobGV0IEQgb2Ygbi5zZWdtZW50cylXLk8zLnB1c2goe2pWOkQualZ8fFtdLApyWDpELnJYfHxbXX0pO249Zy5saCh7Ykw6V30sUV8xKTtyZXR1cm4gZy5FQShuLDQpfX07CmJKPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuaV8oVyxuLkopLmpvaW4oIiwiKX07CnZ5TT1mdW5jdGlvbihuLFcpe2lmKFcmJm4uail7dmFyIEQ9bmV3IFNldChbInEiLCJmZWF0dXJlIiwibW9zIl0pLGI9bmV3IFNldCgiYXV0b3BsYXkgY2wgbGVuIGZleHAgZGVsYXkgZWwgbnMgYWRmb3JtYXQiLnNwbGl0KCIgIikpLHY9bmV3IFNldChbImFxaSIsImF1dG9uYXYiLCJsaXN0Iiwic3NydCIsInVwdCJdKTtuLmoubnM9PT0iM3BwIiYmKFcubnM9IjNwcCIpO2ZvcihsZXQgayBvZiBPYmplY3Qua2V5cyhuLmopKWIuaGFzKGspfHxELmhhcyhrKXx8di5oYXMoaykmJiFuLmpba118fChXW2tdPW4ualtrXSl9fTsKeGpqPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJwbGF5aW5nIjpyZXR1cm4iUExBWUVSX1BMQVlCQUNLX1NUQVRFX1BMQVlJTkciO2Nhc2UgInBhdXNlZCI6cmV0dXJuIlBMQVlFUl9QTEFZQkFDS19TVEFURV9QQVVTRUQiO2Nhc2UgImJ1ZmZlcmluZyI6cmV0dXJuIlBMQVlFUl9QTEFZQkFDS19TVEFURV9CVUZGRVJJTkciO2Nhc2UgInNlZWtpbmciOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfU0VFS0lORyI7Y2FzZSAiZW5kZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfRU5ERUQiO2Nhc2UgImVycm9yIjpyZXR1cm4iUExBWUVSX1BMQVlCQUNLX1NUQVRFX0VSUk9SIjtjYXNlICJzdXNwZW5kZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfU1VTUEVOREVEIjtjYXNlICJ1bnN0YXJ0ZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfVU5TVEFSVEVEIjtkZWZhdWx0OnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfVU5LTk9XTiJ9fTsKTDN4PWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDE6cmV0dXJuIlZJU19NSU5JTUlaRUQiO2Nhc2UgMjpyZXR1cm4iVklTX0ZVTExTQ1JFRU4iO2Nhc2UgMzpyZXR1cm4iVklTX0JBQ0tHUk9VTkQiO2Nhc2UgNDpyZXR1cm4iVklTX0FJUlBMQVkiO2Nhc2UgNTpyZXR1cm4iVklTX0lOTElORSI7Y2FzZSA2OnJldHVybiJWSVNfVlIiO2Nhc2UgNzpyZXR1cm4iVklTX1BJQ1RVUkVfSU5fUElDVFVSRSI7Y2FzZSA4OnJldHVybiJWSVNfSU1NRVJTSVZFX1BSRVZJRVciO2Nhc2UgOTpyZXR1cm4iVklTX1NRVUVFWkVCQUNLIjtjYXNlIDEwOnJldHVybiJWSVNfVEhFQVRFUiI7Y2FzZSAzMTpyZXR1cm4iVklTX0lOVkFMSUQiO2RlZmF1bHQ6cmV0dXJuIlZJU19ERUZBVUxUIn19OwpleWo9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4iQ09OTl9VTktOT1dOIjtjYXNlIDI6cmV0dXJuIkNPTk5fTk9ORSI7Y2FzZSAzOnJldHVybiJDT05OX1dJRkkiO2Nhc2UgNDpyZXR1cm4iQ09OTl9DRUxMVUxBUl8yRyI7Y2FzZSA1OnJldHVybiJDT05OX0NFTExVTEFSXzNHIjtjYXNlIDY6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNEciO2Nhc2UgNzpyZXR1cm4iQ09OTl9DRUxMVUxBUl9VTktOT1dOIjtjYXNlIDg6cmV0dXJuIkNPTk5fRElTQ08iO2Nhc2UgOTpyZXR1cm4iQ09OTl9DRUxMVUxBUl81RyI7Y2FzZSAxMDpyZXR1cm4iQ09OTl9XSUZJX01FVEVSRUQiO2Nhc2UgMTE6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNUdfU0EiO2Nhc2UgMTI6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNUdfTlNBIjtjYXNlIDMwOnJldHVybiJDT05OX1dJUkVEIjtjYXNlIDMxOnJldHVybiJDT05OX0lOVkFMSUQiO2RlZmF1bHQ6cmV0dXJuIkNPTk5fREVGQVVMVCJ9fTsKZy5jcj1mdW5jdGlvbihuLFcpe3ZhciBEPVYzKG4ucHJvdmlkZXIpO09iamVjdC5hc3NpZ24oRCx7c3RhdGU6bi5YfSk7Vz1uZXcgZ29oKG4ucHJvdmlkZXIudmlkZW9EYXRhLG4ucHJvdmlkZXIuQixXLEQpO1cuTj1uLnByb3ZpZGVyLkwub3QoKTtEPW4ucHJvdmlkZXIudmlkZW9EYXRhLmNsaWVudFBsYXliYWNrTm9uY2U7Vy5OPW4ucHJvdmlkZXIuTC5vaChEKTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8KFcuZSQ9bi5wcm92aWRlci5MLmdldER1cmF0aW9uKEQpKTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5OJiYoRD1uLnByb3ZpZGVyLnZpZGVvRGF0YS5OLmhDKFcuTikpJiYoVy5ZPUQtVy5OKTtEPW4ucHJvdmlkZXIuTC5TVygpO1cuTis9RDtXLlkhPW51bGwmJihXLlktPUQpO1cud2E9Zy5SayhuLnByb3ZpZGVyKTtXLnNlZ21lbnRzPVtNbShuLnByb3ZpZGVyKV07cmV0dXJuIFd9OwpYSVo9ZnVuY3Rpb24obil7dmFyIFc9bi5wcm92aWRlci52aWRlb0RhdGEubFEsRD1uLnByb3ZpZGVyLnZpZGVvRGF0YS5IWSxiPVsxMCtXLDEwLDEwLDQwK0QtVyw0MF0sdj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5nZXRQbGF5ZXJSZXNwb25zZSgpPy5wbGF5YmFja1RyYWNraW5nLGs9dj8udmlkZW9zdGF0c1NjaGVkdWxlZEZsdXNoV2FsbHRpbWVTZWNvbmRzO3Y9dj8udmlkZW9zdGF0c0RlZmF1bHRGbHVzaEludGVydmFsU2Vjb25kcztpZighKGsmJmsubGVuZ3RoPjAmJnYpKXJldHVybiBiO1c9W2tbMF0rVywuLi5rLnNsaWNlKDEpLm1hcCgoaCx4KT0+aC1rW3hdKSwKditELVcsdl07cmV0dXJuIFcuc29tZShoPT5oPDApPyhnLmNfKG4ubG9nZ2VyLDM0NzExMTg1NSxgTmVnIHZzcyBzY2hlZHVsZWQgcGluZ3MgJHtrfSAke3Z9YCksYik6V307CmF1PWZ1bmN0aW9uKG4sVz1OYU4pe3ZhciBEPWcuUmsobi5wcm92aWRlcik7Vz1pc05hTihXKT9EOlc7Vz1NYXRoLmNlaWwoVyk7dmFyIGI9bi5lJFtuLnR3XTtuLnR3KzE8bi5lJC5sZW5ndGgmJm4udHcrKzt2YXIgdj1XK2I7bi5ZPWcubiQoKCk9PntpZighbi5xTigpKXtuLlk9TmFOO3ZhciBrPW4uUyQoKSxoPXE5MShuLGspO2guTz12O3ZhciB4PW4ubnU+MUUzOyEoay5sZW5ndGg+MSkmJmtbMF0uaXNFbXB0eSgpfHx4fHwoaC5LPWF1KG4sdikpO2lmKG4uY0ope2s9a1trLmxlbmd0aC0xXTtpZih4PW4uVEMpe3g9azt2YXIgTD1uLlRDO3g9eC5zdGFydFRpbWU9PT1MLnN0YXJ0VGltZSYmeC5lbmRUaW1lPT09TC5lbmRUaW1lfXh8fG51KG4sW2tdKX1oLnNlbmQoKTtuLm51Kyt9fSwodi1EKSoxRTMpOwpyZXR1cm4gbi5KPXZ9OwpXZD1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucHJvdmlkZXIuQjtnLkhFKG4ucHJvdmlkZXIuQixuLnByb3ZpZGVyLnZpZGVvRGF0YS5WKCkpLnRoZW4oYj0+e3ZhciB2PW4ucHJvdmlkZXIuQi5wYWdlSWQsaz1uLnByb3ZpZGVyLkIuc2VuZFZpc2l0b3JJZEhlYWRlcj9uLnByb3ZpZGVyLnZpZGVvRGF0YS52aXNpdG9yRGF0YTp2b2lkIDAsaD1uLnByb3ZpZGVyLkIuUygidnNzX3BpbmdzX3VzaW5nX25ldHdvcmtsZXNzIil8fG4ucHJvdmlkZXIuQi5TKCJrZXZsYXJfd29mZmxlIikseD1uLnByb3ZpZGVyLkIuUygiYWxsb3dfc2tpcF9uZXR3b3JrbGVzcyIpO2I9alIoVyxELHYsayxiKTtDRChXLGIse3Rva2VuOm4ucHJvdmlkZXIudmlkZW9EYXRhLmtXLHlvOm4ucHJvdmlkZXIudmlkZW9EYXRhLlF2LG1keEVudmlyb25tZW50Om4ucHJvdmlkZXIudmlkZW9EYXRhLm1keEVudmlyb25tZW50fSxELHZvaWQgMCxoJiYheCwhMSwhMCl9KX07CnE5MT1mdW5jdGlvbihuLFcpe3ZhciBEPWcuY3Iobiwid2F0Y2h0aW1lIik7RDcobikmJihELmRlbGF5VGhyZXNob2xkTWV0PSEwLG4uRHQ9ITApO2lmKG4uaj4wKXtsZXQgYj1uLnByb3ZpZGVyLkwuU1coKTtmb3IobGV0IHYgb2YgVyl2LnN0YXJ0VGltZS09bi5qK2Isdi5lbmRUaW1lLT1uLmorYjtELk4tPW4uaitifWVsc2UgRC5OPW4uTi5KO0Quc2VnbWVudHM9VztyZXR1cm4gRH07Cm51PWZ1bmN0aW9uKG4sVyxEPSExKXtmb3IobGV0IFt4LExdb2YgVy5lbnRyaWVzKCkpe2xldCBlPXgsRz1MO3ZhciBiPW4sdj1WMyhiLnByb3ZpZGVyKTtPYmplY3QuYXNzaWduKHYse3N0YXRlOmIuWH0pO09iamVjdC5hc3NpZ24odix7c2VxdWVuY2VJZDpiLnNlcXVlbmNlSWR9KTtiLnByb3ZpZGVyLkIuUygid2ViX3NlbmRfdnNzM19pc29sYXRlZF9wYXlsb2FkIikmJk9iamVjdC5hc3NpZ24odix7c2VuZElzb2xhdGVkUGF5bG9hZDohMH0pO3ZhciBrPWIsaD1rLnByb3ZpZGVyLnZpZGVvRGF0YS5nZXRQbGF5ZXJSZXNwb25zZSgpPy5wbGF5YmFja1RyYWNraW5nPy52c3MzQ29uZmlnPy52c3MzU2NoZWR1bGluZ0NvbmZpZztoJiYoaD1oLmVhcmx5U2VnbWVudFRocmVzaG9sZFNlY3MmJihEYXRlLm5vdygpLWsuR0MpLzFFMzxoLmVhcmx5U2VnbWVudFRocmVzaG9sZFNlY3M/aC5lYXJseVNlZ21lbnRNYXhpbXVtTGVuZ3RoU2VjczpoLmRlZmF1bHRTZWdtZW50TWF4aW11bUxlbmd0aFNlY3MsCkcuc2NoZWR1bGVkU2VnbWVudE1heGltdW1MZW5ndGhTZWNzPWsuVEM/Lm5leHRTY2hlZHVsZWRTZWdtZW50TWF4aW11bUxlbmd0aFNlY3M/P2gsRy5uZXh0U2NoZWR1bGVkU2VnbWVudE1heGltdW1MZW5ndGhTZWNzPWgpO2s9bmV3IEdwYihHLGIucHJvdmlkZXIudmlkZW9EYXRhLHYpO2IuSEomJihrLmlzRG91YmxlTG9nZ2VkPSExKTt2PWs7Yi5wcm92aWRlci52aWRlb0RhdGEuaXNMaXZlUGxheWJhY2t8fCh2Lm1lZGlhTGVuZ3RoU2VjPWIucHJvdmlkZXIuTC5nZXREdXJhdGlvbihiLnByb3ZpZGVyLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlKSk7aWYoYi5wcm92aWRlci52aWRlb0RhdGEuTil7aD1iLnByb3ZpZGVyLkwub3QoKTtsZXQgcj1iLnByb3ZpZGVyLnZpZGVvRGF0YS5OLmhDKGgpO3ImJih2LmxpdmVJbmdlc3Rpb25PZmZzZXRVc2VjPShyLWgpKjFFNil9RDcoYikmJih2LmRlbGF5VGhyZXNob2xkTWV0PSEwLGIuRHQ9ITApO0QmJmU9PT1XLmxlbmd0aC0xJiYoay5pc0ZpbmFsPQohMCxuLkZGPSEwKTtrLnNlbmQoKTtuLnNlcXVlbmNlSWQrKztuLlRDPUd9fTsKRDc9ZnVuY3Rpb24obil7dmFyIFc7aWYoVz1uLnByb3ZpZGVyLnZpZGVvRGF0YS5pc0xvYWRlZCgpJiZuLnByb3ZpZGVyLnZpZGVvRGF0YS5vRCYmbi5XJiYhbi5EdClXPW4uTixXPVcuVitXLm90KCktVy5XPj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5vRDtyZXR1cm4hIVd9OwpiVj1mdW5jdGlvbihuLFcsRD0hMSl7RD1uLksoIWlzTmFOKG4uSiksITEsRCk7VyYmKG4uSj1OYU4pO3JldHVybiBEfTsKdFpNPWZ1bmN0aW9uKG4pe24ucHJvdmlkZXIudmlkZW9EYXRhLnlvdXR1YmVSZW1hcmtldGluZ1VybCYmIW4uQ3UmJihXZChuLG4ucHJvdmlkZXIudmlkZW9EYXRhLnlvdXR1YmVSZW1hcmtldGluZ1VybCksbi5DdT0hMCl9Owokalo9ZnVuY3Rpb24obil7bi5wcm92aWRlci52aWRlb0RhdGEuZ29vZ2xlUmVtYXJrZXRpbmdVcmwmJiFuLlBYJiYoV2QobixuLnByb3ZpZGVyLnZpZGVvRGF0YS5nb29nbGVSZW1hcmtldGluZ1VybCksbi5QWD0hMCl9Owp2ZD1mdW5jdGlvbihuKXtpZighbi5xTigpJiZuLlcpe24uWD0icGF1c2VkIjt2YXIgVz1iVihuLCExLCEwKTtXLmlzRmluYWw9ITA7Vy5zZW5kKCk7bi5kaXNwb3NlKCl9fTsKcnB0PWZ1bmN0aW9uKG4sVyxEKXtpZighbi52Sil7RHx8KEQ9Zy5jcihuLCJhdHIiKSk7RC5hdHRlc3RhdGlvblJlc3BvbnNlPVc7dHJ5e0Quc2VuZCgpfWNhdGNoKGIpe2lmKGIubWVzc2FnZSE9PSJVbmtub3duIEVycm9yIil0aHJvdyBiO31uLnZKPSEwfX07CmcuUms9ZnVuY3Rpb24obil7cmV0dXJuIGcuc2JyKG4pKCl9OwpjY1o9ZnVuY3Rpb24obil7dmFyIFc9bmF2aWdhdG9yLmNvbm5lY3Rpb24/LnR5cGV8fCIiO2lmKFcpcmV0dXJuIE5FcltXXXx8TkVyLm90aGVyO2lmKGcuazYobi5CKSl7bj1uYXZpZ2F0b3IudXNlckFnZW50O2lmKC9bV3ddaXJlbGVzc1spXS8udGVzdChuKSlyZXR1cm4gMztpZigvW1d3XWlyZWRbKV0vLnRlc3QobikpcmV0dXJuIDMwfXJldHVybiAwfTsKTW09ZnVuY3Rpb24obil7dmFyIFc9bmV3IHBJMjtXLko9VjMobikuY2M/LnRvU3RyaW5nKCl8fCItIjtXLnBsYXliYWNrUmF0ZT1uLkwuZ2V0UGxheWJhY2tSYXRlKCk7dmFyIEQ9bi5MLmdldFZpc2liaWxpdHlTdGF0ZSgpO0QhPT0wJiYoVy52aXNpYmlsaXR5U3RhdGU9RCk7bi5CLkR0JiYoVy5XPTEpO1cuaj1uLnZpZGVvRGF0YS5wUjtXLmNvbXBvc2l0ZUxpdmVTdGF0dXNUb2tlbj1uLnZpZGVvRGF0YS5jb21wb3NpdGVMaXZlU3RhdHVzVG9rZW47Vy5oZWFydGJlYXRMb2dnaW5nVG9rZW49bi52aWRlb0RhdGEuaGVhcnRiZWF0TG9nZ2luZ1Rva2VuO0Q9bi5MLmdldEF1ZGlvVHJhY2soKTtELmtaJiZELmtaLmlkJiZELmtaLmlkIT09InVuZCImJihXLmF1ZGlvSWQ9RC5rWi5pZCk7Vy5jb25uZWN0aW9uVHlwZT1jY1oobik7Vy52b2x1bWU9bi5MLmdldFZvbHVtZSgpO1cubXV0ZWQ9bi5MLmlzTXV0ZWQoKTtXLmNsaXBJZD1uLkwuRm4oKXx8Ii0iO1cuTj1uLnZpZGVvRGF0YS5WZnx8CiItIjtyZXR1cm4gV307ClYzPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTC5oaCgpfHx7fTtXLmZzPW4uTC52MygpO1cudm9sdW1lPW4uTC5nZXRWb2x1bWUoKTtXLm11dGVkPW4uTC5pc011dGVkKCk/MTowO1cubW9zPVcubXV0ZWQ7Vy5jbGlwaWQ9bi5MLkZuKCk7Vy5wbGF5ZXJoZWlnaHQ9bi5MLmdldFBsYXllclNpemUoKT8uaGVpZ2h0fHwwO1cucGxheWVyd2lkdGg9bi5MLmdldFBsYXllclNpemUoKT8ud2lkdGh8fDA7bj1uLnZpZGVvRGF0YTt2YXIgRD17fTtuLkomJihELmZtdD1uLkouaXRhZyxuLlgmJihuLlZRP24uWC5pdGFnIT09bi5KLml0YWc6bi5YLml0YWchPW4uSi5pdGFnKSYmKEQuYWZtdD1uLlguaXRhZykpO0QuZWk9bi5ldmVudElkO0QubGlzdD1uLnBsYXlsaXN0SWQ7RC5jcG49bi5jbGllbnRQbGF5YmFja05vbmNlO24udmlkZW9JZCYmKEQudj1uLnZpZGVvSWQpO24ueWwmJihELmluZnJpbmdlPTEpOyhuLmZCPzA6bi5QWCkmJihELnNwbGF5PTEpO3ZhciBiPXJsKG4pO2ImJihELmxpdmU9Yik7bi5WVCYmCihELnNhdXRvcGxheT0xKTtuLkd1JiYoRC5hdXRvcGxheT0xKTtuLnd1JiYoRC5zZGV0YWlsPW4ud3UpO24ucGFydG5lcklkJiYoRC5wYXJ0bmVyaWQ9bi5wYXJ0bmVySWQpO24ub3NpZCYmKEQub3NpZD1uLm9zaWQpO24uWm0mJihELmNjPWcubmcobi5abSkpO3JldHVybiBPYmplY3QuYXNzaWduKFcsRCl9OwpnLnNicj1mdW5jdGlvbihuKXtpZighbi5OKXtsZXQgVz0oMCxnLlIpKCk7bi5OPSgpPT5NYXRoLnJvdW5kKCgwLGcuUikoKS1XKS8xRTM7Cm4uTC5RYigpfXJldHVybiBuLk59OwpnLmswPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uc3RhdGUuTihXKSYmIW4ub2xkU3RhdGUuTihXKT8xOiFuLnN0YXRlLk4oVykmJm4ub2xkU3RhdGUuTihXKT8tMTowfTsKaEM9ZnVuY3Rpb24obil7bi5KJiZjSWoobi5KKTtuLnFvZSYmeEJoKG4ucW9lKX07CkhYMj1mdW5jdGlvbihuLFcsRCxiKXtELmFkRm9ybWF0PUQuRkY7dmFyIHY9Vy5MO1c9bmV3IGcueDAobmV3IFk5UyhELFcuQix7Z2V0RHVyYXRpb246KCk9PkQubGVuZ3RoU2Vjb25kcywKZ2V0Q3VycmVudFRpbWU6KCk9PnYuZ2V0Q3VycmVudFRpbWUoKSwKb3Q6KCk9PnYub3QoKSwKb2g6KCk9PnYub2goKSwKSEs6KCk9PnYuSEsoKSwKZ2V0UGxheWVyU2l6ZTooKT0+di5nZXRQbGF5ZXJTaXplKCksCmdldEF1ZGlvVHJhY2s6KCk9PkQuZ2V0QXVkaW9UcmFjaygpLApnZXRQbGF5YmFja1JhdGU6KCk9PnYuZ2V0UGxheWJhY2tSYXRlKCksCkVjOigpPT52LkVjKCksCmdldFZpc2liaWxpdHlTdGF0ZTooKT0+di5nZXRWaXNpYmlsaXR5U3RhdGUoKSwKZUc6KCk9PnYuZUcoKSwKaGg6KCk9PnYuaGgoKSwKZ2V0Vm9sdW1lOigpPT52LmdldFZvbHVtZSgpLAppc011dGVkOigpPT52LmlzTXV0ZWQoKSwKdjM6KCk9PnYudjMoKSwKRm46KCk9PnYuRm4oKSwKZ2V0UHJveGltYUxhdGVuY3lQcmVmZXJlbmNlOigpPT52LmdldFByb3hpbWFMYXRlbmN5UHJlZmVyZW5jZSgpLApRYigpe3YuUWIoKX0sVShrLGgpe3YuVShrLGgpfSxPMDooKT0+di5PMCgpLApTVzooKT0+di5TVygpLAp6czprPT52LnpzKGspfSkpOwpXLmo9YjtnLnUobixXKTtyZXR1cm4gV307CmZBdD1mdW5jdGlvbihuKXtuLkomJm4uSi5zZW5kKCk7aWYobi5xb2Upe3ZhciBXPW4ucW9lO2lmKFcuVil7Vy5OPT09IlBMIiYmKFcuTj0iTiIpO3ZhciBEPWcuUmsoVy5wcm92aWRlcik7Zy53aihXLEQsInZwcyIsW1cuTl0pO1cuRHx8KFcuWD49MCYmVy5KLnNldCgidXNlcl9pbnRlbnQiLFtXLlgudG9TdHJpbmcoKV0pLFcuRD0hMCk7Vy5wcm92aWRlci5CLldYKCkmJlcuVSgiZmluYWxpemVkIix7fSk7Vy5TJD0hMDtXLnJlcG9ydFN0YXRzKEQpfX1pZihuLnByb3ZpZGVyLnZpZGVvRGF0YS5lbmFibGVTZXJ2ZXJTdGl0Y2hlZERhaSlmb3IobGV0IGIgb2Ygbi5XLnZhbHVlcygpKXZkKGIpO2Vsc2Ugbi5OJiZ2ZChuLk4pO24uZGlzcG9zZSgpfTsKSnBVPWZ1bmN0aW9uKG4pe2lmKCFuLk4pcmV0dXJuIG51bGw7dmFyIFc9Zy5jcihuLk4sImF0ciIpO3JldHVybiBEPT57bi5OJiZycHQobi5OLEQsVyl9fTsKSUFoPWZ1bmN0aW9uKG4sVyl7bj1EZShuLmFycmF5LEQ9PlctRC5zdGFydHx8MSk7CnJldHVybiBuPDA/LShuKzEpOm59OwpTOWI9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO2ZvcihXPUlBaChuLFcpO1c8bi5hcnJheS5sZW5ndGg7KytXKXtsZXQgdj1uLmFycmF5W1ddOyh2LmVuZDw9RHx8di5jb250YWlucyhEKSkmJmIucHVzaCh2KTtpZih2LnN0YXJ0PkQpYnJlYWt9cmV0dXJuIGJ9OwpnLkx1PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIG4uYXJyYXkpaWYoYi5jb250YWlucyhXKSYmRC5wdXNoKGIpLGIuc3RhcnQ+VylicmVhaztyZXR1cm4gRH07CkFwaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5hcnJheS5zbGljZShJQWgobiwweDdmZmZmZmZmZmZmZmYpLG4uYXJyYXkubGVuZ3RoKX07Cm1qdD1mdW5jdGlvbihuLFcpe3ZhciBEPU5hTjtmb3IobGV0IGIgb2Ygbi5hcnJheSlpZihiLmNvbnRhaW5zKFcpJiYoaXNOYU4oRCl8fGIuZW5kPEQpJiYoRD1iLmVuZCksYi5zdGFydD5XJiYoaXNOYU4oRCl8fGIuc3RhcnQ8RCkpe0Q9Yi5zdGFydDticmVha31yZXR1cm4gRH07CkszVT1mdW5jdGlvbihuLFcpe24uYXJyYXk9bi5hcnJheS5maWx0ZXIoRD0+IVcuaGFzKEQpKX07Ck9YMj1mdW5jdGlvbihuKXtyZXR1cm4gbi5MLmdldFBsYXllclN0YXRlKCkuTigyKT8weDgwMDAwMDAwMDAwMDA6bi5MLmdldEN1cnJlbnRUaW1lKCkqMUUzfTsKZWg9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtpZighVy5sZW5ndGgpcmV0dXJuIEQ7Zm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspe2xldCB2PVdbYl07di5hY3RpdmUmJm4uVy5pbmRleE9mKHYpPT09LTEmJihuLlcucHVzaCh2KSxELnB1c2goWzEsdl0pKX1yZXR1cm4gRH07CmdzPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpVz1EWzFdLERbMF09PT0xP24uTC5DSihnLm95KFcubmFtZXNwYWNlKSxXKTpuLkwuQ0ooZy5kdihXLm5hbWVzcGFjZSksVyl9OwpYSj1mdW5jdGlvbihuLFcpe3ZhciBEPVtdO2lmKCFXLmxlbmd0aClyZXR1cm4gRDtXLnNvcnQoZy51NSk7Zm9yKGxldCBiIG9mIFcpbi5XLnNwbGljZShuLlcuaW5kZXhPZihiKSwxKSxELnB1c2goWzIsYl0pO3JldHVybiBEfTsKUHlDPWZ1bmN0aW9uKG4pe2lmKG4uc3RhcnRlZCYmIW4ucU4oKSl7bi5qLnN0b3AoKTt2YXIgVz1uLkwuZ2V0UGxheWVyU3RhdGUoKTtXLk4oMzIpJiZuLlkuc3RhcnQoKTt2YXIgRD1PWDIobiksYj1uLmlzRW5kZWQoVyxEKSx2PVtdLGs9W107Zm9yKHZhciBoIG9mIG4uVyloLmFjdGl2ZSYmKGI/aC5lbmQ8MHg4MDAwMDAwMDAwMDAwOiFoLmNvbnRhaW5zKEQpKSYmay5wdXNoKGgpO3Y9di5jb25jYXQoWEoobixrKSk7aD1rPW51bGw7Yj8oVz1nLkx1KG4uTiwweDdmZmZmZmZmZmZmZmYpLGs9Vy5maWx0ZXIoeD0+eC5lbmQ8MHg4MDAwMDAwMDAwMDAwKSxoPUFwaihuLk4pKTpXPW4uWDw9RCYmbDEoVyk/UzliKG4uTixuLlgsRCk6Zy5MdShuLk4sRCk7CnY9di5jb25jYXQoZWgobixXKSk7ayYmKHY9di5jb25jYXQoWEoobixrKSkpO2gmJih2PXYuY29uY2F0KGVoKG4saCkpKTtuLlg9RDtncyhuLHYpfX07CnE5PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc+bi5tZWRpYVRpbWUrbi5YJiZXPG4ubWVkaWFUaW1lKzV9OwpSOEM9ZnVuY3Rpb24obixXLEQsYix2PSExKXtpZihuLmxuJiYhaXNGaW5pdGUoVykpcmV0dXJuITE7aWYoYj1iPjEpbi5XPSEwO2lmKHZ8fGlzTmFOKG4uTikpbi5OPVc7aWYobi5zZWVraW5nKVchPT1uLm1lZGlhVGltZSYmKG4uc2Vla2luZz0hMSk7ZWxzZSBpZihXPjAmJm4ubWVkaWFUaW1lPT09Vyl7dj0xNTAwO2lmKG4uQi5TKCJodG1sNV9idWZmZXJfdW5kZXJydW5fdHJhbnNpdGlvbl9maXgiKSl7dj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfbWluX3BsYXliYWNrX2FkdmFuY2VfZm9yX3N0ZWFkeV9zdGF0ZV9zZWNzIik7bGV0IGs9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X21pbl91bmRlcnJ1bl9idWZmZXJlZF9wcmVfc3RlYWR5X3N0YXRlX21zIik7dj12PjAmJms+MCYmTWF0aC5hYnMoVy1uLk4pPHY/azoxNTAwfXJldHVybiBELW4uSj4oYnx8IW4uVz92OjQwMCl9bi5tZWRpYVRpbWU9VztuLko9RDtyZXR1cm4hMX07ClVqdz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFcudEEoRCkudGhlbigoKT0+Zy5IMChuZXcgWlhoKFcsVy5XKSksYj0+e2IgaW5zdGFuY2VvZiBFcnJvciYmZy5HcShiKTsKdmFyIHY9dTgoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyMDAxRSwgbXA0YS40MC4yIicpLGs9ZHkoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyksaD12fHxrLHg9Vy5pc0xpdmVQbGF5YmFjayYmIWcuSW4obi5XLCEwKTtiPSJmbXQubm9uZWF2YWlsYWJsZSI7eD9iPSJodG1sNS51bnN1cHBvcnRlZGxpdmUiOmh8fChiPSJodG1sNS5taXNzaW5nYXBpIik7aD14fHwhaD8yOjE7dj17YnVpbGRSZWo6IjEiLGE6Vy5JcCgpLGQ6ISFXLlRmLGRybTpXLk1pKCksZjE4OlcuY2YuaW5kZXhPZigiaXRhZz0xOCIpPj0wLGMxODp2fTtXLk4mJihXLk1pKCk/KHYuZjE0Mj0hIVcuTi5OWyIxNDIiXSx2LmYxNDk9ISFXLk4uTlsiMTQ5Il0sdi5mMjc5PSEhVy5OLk5bIjI3OSJdKToodi5mMTMzPSEhVy5OLk5bIjEzMyJdLHYuZjE0MD0hIVcuTi5OWyIxNDAiXSx2LmYyNDI9ISFXLk4uTlsiMjQyIl0pLHYuY0FBQz1rLHYuY0FWQz1keSgndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDIwMDFFIicpLAp2LmNWUDk9ZHkoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5IicpKTtXLmomJih2LmRybXN5cz1XLmoua2V5U3lzdGVtLGs9MCxXLmouSiYmKGs9T2JqZWN0LmtleXMoVy5qLkopLmxlbmd0aCksdi5kcm1zdD1rKTtyZXR1cm4gbmV3IGcuQ2koYix2LGgpfSl9Owp0Qz1mdW5jdGlvbihuLFcpe1c9TWF0aC5tYXgoTWF0aC5tYXgoMSxNYXRoLmNlaWwobi5wb2xpY3kuWC9HWShuKSkpLFcpO3JldHVybiBNYXRoLm1pbihNYXRoLm1pbig4LE1hdGguZmxvb3Iobi5wb2xpY3kuRC9HWShuKSkpLFcpfTsKR1k9ZnVuY3Rpb24obil7cmV0dXJuIG4udmlkZW9EYXRhLk4/b28obi52aWRlb0RhdGEuTil8fDU6NX07CiQwPWZ1bmN0aW9uKG4pe3JldHVybiBHWShuKSpuLk59OwpFb2k9ZnVuY3Rpb24obixXKXtpZihXKXJldHVybiBXPW4udmlkZW9EYXRhLFc9eXBiKG4saXNOYU4oVy5saXZlQ2h1bmtSZWFkYWhlYWQpPzM6Vy5saXZlQ2h1bmtSZWFkYWhlYWQsVyksdEMobixXKTtpZihuLkoubGVuZ3RoKXtpZihNYXRoLm1pbi5hcHBseShudWxsLG4uSik+MSlyZXR1cm4gdEMobixuLk4tMSk7aWYobi5wb2xpY3kuWSlyZXR1cm4gdEMobixuLk4rMSl9cmV0dXJuIG4uTn07CmlYUz1mdW5jdGlvbihuLFc9ITEpe2lmKCFuLkoubGVuZ3RoKXJldHVybiExO3ZhciBEPW4uTjtuLk49RW9pKG4sVyk7aWYoVz1EIT09bi5OKW4uSj1bXSxuLmp4PTA7cmV0dXJuIFd9Owpycz1mdW5jdGlvbihuKXt2YXIgVz1uLnBvbGljeS5OO24uWHx8KFc9TWF0aC5tYXgoVy0xLDApKTtyZXR1cm4gVypHWShuKX07CnNCPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc+PW4uTlcoKS1ycyhuKX07CnlwYj1mdW5jdGlvbihuLFcsRCl7RC5JUiYmVy0tO2hEKEQpJiYoVz0xKTt4cChEKSE9PTAmJihuPWcuZE0obi5leHBlcmltZW50cywiaHRtbDVfbGl2ZV9jaHVua19yZWFkYWhlYWRfcHJveGltYV9vdmVycmlkZSIpKSYmKFc9bixELk4/Lm51KCkmJlcrKyk7cmV0dXJuIFd9OwpwdT1mdW5jdGlvbihuLFcsRD1udWxsKXtyZXR1cm4gbmV3IE45KGcuZE0obi5CLmV4cGVyaW1lbnRzLFcpfHwwLEQ/bi5CLlMoRCk6ITEpfTsKdTRiPWZ1bmN0aW9uKG4sVyl7bi5OPVd9OwpZMD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe1c/Vy50ZXN0KEQpPyhuLkdzKHYsVyxoKSxXLlZ8fGsoKSk6KCFXLkp8fFcuWD9EPSExOihEPSgwLGcuUikoKSxiP1cuTnx8KFcuTj1EKTpXLk49MCxrPSFiJiZELVcuSj4zRTQsRD1XLk4mJkQtVy5OPjFFM3x8az9XLlg9ITA6ITEpLEQmJih4PXsuLi5uLnlyKFcpLC4uLnh9LHgud249aCx4LndlPXYseC53c3VjPWIsbi5MLlUoIndvcmthcm91bmRSZXBvcnQiLHgpLGImJihXLnJlc2V0KCksbi5YW3ZdPSExKSkpOm4uTC5QVigiYXV0aCIsMiwiQlJPV1NFUl9PUl9FWFRFTlNJT05fRVJST1IiLGcuVEMoe3NvdXJjZToid2F0Y2hkb2ciLG5hbWU6aH0pKX07Cm9veD1mdW5jdGlvbihuLFcpe2lmKG4uTil7dmFyIEQ9bi5OO3ZhciBiPW4uZ2V0Q3VycmVudFRpbWUoKSx2PUQuTlcoKTt2YXIgaz1ELnBvbGljeS5KO0QuWHx8KGs9TWF0aC5tYXgoay0xLDApKTtrKj1HWShEKTtiPj12LWt8fCFELmpYKCk/RD1iPEQudmlkZW9EYXRhLkxmKCk/TWF0aC5taW4oRC52aWRlb0RhdGEuTGYoKSsxMCxELk5XKCkpOk5hTjooRC5wb2xpY3kuaiYmKEQucG9saWN5Lk8/KEQucG9saWN5Lko9TWF0aC5taW4oRC5wb2xpY3kuSitELnBvbGljeS5LLEQucG9saWN5LlYpLEQucG9saWN5Lk49TWF0aC5taW4oRC5wb2xpY3kuTisxLDEwKSk6KEQucG9saWN5Lko9TWF0aC5tYXgoRC5wb2xpY3kuSisxLEQucG9saWN5LlYpLEQucG9saWN5Lk49TWF0aC5tYXgoRC5wb2xpY3kuTisxLDEwKSkpLEQ9SW5maW5pdHkpO2lmKCFpc05hTihEKSl7aWYobi5sb2FkZXImJlcmJihXPW4uUyQuaXNBY3RpdmUoKSxiPW4uTi5OVygpLChiPWlQUyhuLmxvYWRlcixiLW4uU1coKSkpJiYKIVcpKXtuLlMkLnN0YXJ0KCk7bi5MLlUoImluQnVmZmVyUHRsIix7Y210Om4uZ2V0Q3VycmVudFRpbWUoKSxzZWVrVG86YituLlNXKCl9KTtuLnNlZWtUbyhiK24uU1coKSx7cWQ6InNlZWt0aW1lbGluZV9pbkJ1ZmZlclNlZWsiLHNlZWtTb3VyY2U6MzR9KTtyZXR1cm59bi5zZWVrVG8oRCx7cWQ6InNlZWt0aW1lbGluZV9wZWdUb0xpdmUiLHNlZWtTb3VyY2U6MzR9KX19fTsKZnU9ZnVuY3Rpb24obixXKXtpZihuLlgpe24udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZuLnZpZGVvRGF0YS5XJiYhbi52aWRlb0RhdGEuVy5OKCkmJm4ubWVkaWFFbGVtZW50JiZuLm1lZGlhRWxlbWVudC5YKCk+MCYmb3Uobi5tZWRpYUVsZW1lbnQpPjAmJihuLko9SGQobixuLkosITEpKTt2YXIgRD1uLlMoImh0bWw1X3BzZXVkb2dhcGxlc3Nfc2hvcnRzX3NlZWtfdG9fbmV4dF9zdGFydCIpJiZXPy5zZWVrU291cmNlPT09NjA7aWYoIW4ubWVkaWFFbGVtZW50fHwhZGpyKG4sRCkpbi5SYS5zdGFydCg3NTApO2Vsc2UgaWYoIWlzTmFOKG4uSikmJmlzRmluaXRlKG4uSikmJihEPW4uSEotKG4uSi1uLnRpbWVzdGFtcE9mZnNldCksIShEPT09MHx8TWF0aC5hYnMoRCk8LjAwNSkpKWlmKEQ9bi5tZWRpYUVsZW1lbnQuZ2V0Q3VycmVudFRpbWUoKS1uLkosTWF0aC5hYnMoRCk8PW4uRHR8fE1hdGguYWJzKEQpPC4wMDUpenkxKG4pO2Vsc2V7aWYobi52aWRlb0RhdGEuTWwpbi52aWRlb0RhdGEuTWw9CiExO2Vsc2UgaWYoIWcuRFAobi52aWRlb0RhdGEpJiZuLko+PW4uckkoKS0uMSYmKG4uckkoKSE9PTB8fFc/LnFkIT09InNlZWt0aW1lbGluZV9zZXR1cE1lZGlhRWxlbWVudCIpKXtuLko9bi5ySSgpO24uWC5yZXNvbHZlKG4uckkoKSk7bi5CLldYKCkmJm4uTC5VKCJzZXRFbmRlZEluU2VlayIse3RndDpgJHtuLkp9YCxtYXhzdDpgJHtuLnJJKCl9YH0pO24uTC5rTigpO3JldHVybn10cnl7bGV0IGI9bi5KLW4udGltZXN0YW1wT2Zmc2V0O24ubWVkaWFFbGVtZW50LnNlZWtUbyhiKTtuLk8uTj1iO24uSEo9YjtuLlc9bi5KO24uY0o9ITF9Y2F0Y2goYil7fX19fTsKVEUyPWZ1bmN0aW9uKG4sVyl7bi5UQz0hMDtuLmxuKCkmJihuLko9bi5WLG4uVz1uLkosbi5WPU5hTik7bEF0KG4sVyl9OwpqYjI9ZnVuY3Rpb24obil7dmFyIFc9MCxEPU5hTixiPSIiO2lmKCFuLkQpcmV0dXJue3N0YXJ0U2Vjb25kczpXLE12OkQsc291cmNlOmJ9O24udmlkZW9EYXRhLlJJP1c9bi52aWRlb0RhdGEuSlU6Zy5EUChuLnZpZGVvRGF0YSkmJihXPUluZmluaXR5KTtpZihnLnBBKG4udmlkZW9EYXRhKSlyZXR1cm57c3RhcnRTZWNvbmRzOlcsTXY6RCxzb3VyY2U6Yn07bi52aWRlb0RhdGEuc3RhcnRTZWNvbmRzPyhiPSJzcyIsVz1uLnZpZGVvRGF0YS5zdGFydFNlY29uZHMpOm4udmlkZW9EYXRhLlVyJiYoYj0ic3RzcyIsVz1uLnZpZGVvRGF0YS5Vcik7bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcyYmKEQ9bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcyk7aWYoaXNGaW5pdGUoVykmJihXPm4uckkoKXx8VzxuLkxmKCkpKXtsZXQgdj17fTt2Lm1pblNlZWthYmxlVGltZT1uLkxmKCk7di5tYXhTZWVrYWJsZVRpbWU9bi5ySSgpO3YuY210PW4uZ2V0Q3VycmVudFRpbWUoKTt2LnNzPQpXO3YudXRjPUQ7di5zcmM9YjtuLkwuVSgic3RhcnRTZWNvbmRzT3V0T2ZCb3VuZHMiLHYpO24udmlkZW9EYXRhLnpXKCkmJihXPUhkKG4sVywhMSkpfXJldHVybntzdGFydFNlY29uZHM6VyxNdjpELHNvdXJjZTpifX07CkpDPWZ1bmN0aW9uKG4pe3JldHVybiEhbi52aWRlb0RhdGEuc3RhcnRTZWNvbmRzJiZpc0Zpbml0ZShuLnZpZGVvRGF0YS5zdGFydFNlY29uZHMpJiZuLnZpZGVvRGF0YS5zdGFydFNlY29uZHM+MUU5fTsKRjNiPWZ1bmN0aW9uKG4sVyl7bi5wbGF5YmFja0RhdGE9VztuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKG4uWT1uZXcgQ3laKCgpPT57YTp7aWYobi5wbGF5YmFja0RhdGEmJm4ucGxheWJhY2tEYXRhLk4uTigpKXtpZihJNChuLnZpZGVvRGF0YSkmJm4ubG9hZGVyKXt2YXIgRD1uLmxvYWRlci5xaCgpO2JyZWFrIGF9aWYobi52aWRlb0RhdGEuTil7RD1uLnZpZGVvRGF0YS5OLnFoKCk7YnJlYWsgYX19RD0wfXJldHVybiBEfSksbi5OPW5ldyBCRWIobi52aWRlb0RhdGEsbi5CLmV4cGVyaW1lbnRzLCgpPT5uLnJJKCEwKSkpOwpJYyhuLkwpPyhuLnZpZGVvRGF0YS5nVD8uQWp8fChXPWpiMihuKSxXLk12PyhnLllOKG4udmlkZW9EYXRhKSYmbi5odShXLk12LFcuc3RhcnRTZWNvbmRzKSxuLlc9Vy5zdGFydFNlY29uZHMpOlcuc3RhcnRTZWNvbmRzPjAmJm4uc2Vla1RvKFcuc3RhcnRTZWNvbmRzLHtxZDoic2Vla3RpbWVsaW5lX3N0YXJ0UGxheWJhY2siLHNlZWtTb3VyY2U6MTUsQU06ITB9KSksbi5EPSExKTpKQyhuKXx8KG4uVz1uLld8fG4udmlkZW9EYXRhLnN0YXJ0U2Vjb25kc3x8MCxuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8KFc9bi5MLnZpZGVvRGF0YS5ySSgpLG4uVz5XJiYobi5TKCJodG1sNV9zYWJyX2xvZ19pbnZhbGlkX3NhYnJfY3VycmVudF90aW1lIikmJm4uTC5VKCJpbnZhbGlkU2FickNtdFN0YXJ0Iix7cnQ6bi5XLG1zdDpXfSksbi5TKCJodG1sNV9zYWJyX3ZvZF9pbnZhbGlkX3N0YXJ0X3RpbWVfZmFsbGJhY2siKSYmKG4uVz0wKSkpKX07ClNoPWZ1bmN0aW9uKG4sVyl7aWYobi5OJiZuLmxvYWRlcil7dmFyIEQ9ITE7Vz9EPSEwOlN4KG4udmlkZW9EYXRhKT9EPWlYUyhuLk4pOm4uQ3UmJihuLkN1PSExLEQ9aVhTKG4uTiwhMCkpO0QmJihEPW4uTC5CWCxXPSQwKG4uTiksRC5xb2UmJihEPUQucW9lLGcud2ooRCxnLlJrKEQucHJvdmlkZXIpLCJscmEiLFtXXSksRC5VKCJsaXZlLXJlYWRhaGVhZC1zZWNvbmRzIix7djpXfSkpKTtXPW4ubG9hZGVyO0Q9bi5OLk47bj1uLk47bj0obi5OLTErbi5wb2xpY3kuTikqR1kobik7dmFyIGI9TmFOO3ZhciB2PVcuVHI7dj09PTJ8fHY9PT0tMT8odj1ELGhEKFcuTC5nZXRWaWRlb0RhdGEoKSkmJihiPVcucG9saWN5LnpQKSk6dj1ELTE7dj1NYXRoLm1heCh2LDApO0Q9Vy5OeTtELlpBPXY7RC5YPWI7Vy5RdSYmKFcuUXUuTz1uKX19Owptbz1mdW5jdGlvbihuLFcpeyhuLmxvYWRlcj1XKT9TaChuLCEwKTpnLkFDKG4pfTsKZGpyPWZ1bmN0aW9uKG4sVz0hMSl7aWYoIW4ubWVkaWFFbGVtZW50fHxuLm1lZGlhRWxlbWVudC5YKCk9PT0wfHxuLm1lZGlhRWxlbWVudC5oYXNFcnJvcigpKXJldHVybiExO3ZhciBEPW4ubWVkaWFFbGVtZW50LmdldEN1cnJlbnRUaW1lKCk+MDtyZXR1cm4gbi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCl8fG4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrfHwhbi52aWRlb0RhdGEuTWkoKT9uLko+PTAmJiFXJiYoVz1uLm1lZGlhRWxlbWVudC5PKCksVy5sZW5ndGh8fCFEKT9CUihXLG4uSi1uLnRpbWVzdGFtcE9mZnNldCk6RDpEfTsKTVoxPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5nZXRDdXJyZW50VGltZSgpLGI9bi5pc0F0TGl2ZUhlYWQoRCk7aWYobi5ZJiZiKXt2YXIgdj1uLlk7aWYodi5OJiYhKEQ+PXYuSiYmRDx2LlgpKXt2YXIgaz12Lk4uUjMoRCk7ayE9PS0xJiYodi5KPXYuTi5nZXRTdGFydFRpbWUoayksdi5YPXYuSit2Lk4uZ2V0RHVyYXRpb24oayksaz0oMCxnLlIpKCkvMUUzLXYuTi5oQyhrKSxrLT12LmooKSx2LlcuYWRkKGspKX19bi5OJiYoYiYmKHY9bi5OLGs9bi56cygpLHYuangrKyx2Lmp4PDN8fERhdGUubm93KCktdi5WPDNFM3x8KHYuVj1EYXRlLm5vdygpLHYuSi5wdXNoKGspLHYuSi5sZW5ndGg+NTAmJnYuSi5zaGlmdCgpKSksbi5OLlUzKEQsVyksVyYmb294KG4sITApKTtiIT09bi5QWCYmKG4uQi5adCgpLk4uUVEod0kxKSYmbi52aWRlb0RhdGEuUkk/bi5QWD1iOihXPShuLkIuWnQoKS5OLlFRKHdJMSk/KG4uZ2V0Q3VycmVudFRpbWUoKS1uLkdDKSoxRTM6bi5nZXRDdXJyZW50VGltZSgpLQpuLkdDKTw9NTAwLEQ9bi5ZWj49MUUzLFd8fER8fChXPW4uTC5CWCxXLnFvZSYmKFc9Vy5xb2UsRD1nLlJrKFcucHJvdmlkZXIpLGcud2ooVyxELCJsaCIsW2I/IjEiOiIwIl0pKSxuLlBYPWIsbi5ZWisrLG4uR0M9bi5nZXRDdXJyZW50VGltZSgpKSkpfTsKZy5LdT1mdW5jdGlvbihuLFcpe3ZhciBEPW4uWDtEfHwobi5YPW5ldyBZNixEPW4uWCxmdShuLFcpKTtyZXR1cm4gRH07CkhkPWZ1bmN0aW9uKG4sVyxEKXtpZihpc05hTihXKSlyZXR1cm4gTmFOO3ZhciBiPW4uTGYoKTtEPW4uckkoRCk7cmV0dXJuIG4uUygiaHRtbDVfY2xhbXBfaW52YWxpZF9zZWVrX3RvX21pbl9zZWVrYWJsZV90aW1lIikmJiFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmVz5EKzEmJlc8SW5maW5pdHk/KG4uQi5XWCgpJiZuLkwuVSgiY2xhbXBJbnZhbGlkU2VlayIse3RndDpgJHtXfWAsbWF4c3Q6YCR7RH1gfSksYik6Zy5GZihXLGIsRCl9OwpSeWk9ZnVuY3Rpb24obixXKXtuLlc9V307ClFidz1mdW5jdGlvbihuLFc9ITEpe24uanx8IShuLlc+MCl8fG4ubWVkaWFFbGVtZW50JiZuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpPjB8fChXPXtxZDoic2Vla3RpbWVsaW5lX3Jlc3VtZVRpbWUiLEFNOld9LG4udmlkZW9EYXRhLll8fChXLnNlZWtTb3VyY2U9MTUpLG4uc2Vla1RvKG4uVyxXKSl9OwpsQXQ9ZnVuY3Rpb24obixXKXtWWmkobixXKS50aGVuKHZvaWQgMCwoKT0+e2cuQUMobil9KTsKZy5LdShuLFcpLnRoZW4oRD0+e2cuT0IobixEKX0sKCk9PntnLkFDKG4pfSk7Cm4uTC53WShXKTtuLkIuV1goKSYmKFc9bi55cigpLFdbIm5hdGl2ZSJdPWAkeytuLmNKfWAsVy50Z3Q9YCR7bi5KfWAsVy5vdGd0PWAke24uSituLnRpbWVzdGFtcE9mZnNldH1gLFcubWF4c3Q9YCR7bi5ySSgpfWAsbi5OJiZuLlMoImh0bWw1X2hpZ2hfcmVzX3NlZWtfbG9nZ2luZyIpJiYoVy50aHQ9YCR7bi5OLmooKX1gLFcuaHQ9YCR7bi5OLk5XKCl9YCxXLmFkZnQ9YCR7cnMobi5OKX1gKSxuLlMoImh0bWw1X3NhYnJfcGFyc2VfbGl2ZV9tZXRhZGF0YV9wbGF5YmFja19ib3VuZGFyaWVzIikmJm4udmlkZW9EYXRhLk4mJmcuWU4obi52aWRlb0RhdGEpJiYoVy5taW5zdD1gJHtuLnZpZGVvRGF0YS5OLkgyfWAsVy5jbWluc3Q9YCR7bi52aWRlb0RhdGEuTi5MZigpK24udGltZXN0YW1wT2Zmc2V0fWAsVy5tYXhzdD1gJHtuLnZpZGVvRGF0YS5OLldNfWAsVy5odHM9YCR7bi52aWRlb0RhdGEuTi50d31gLFcuY21heHN0PWAke24udmlkZW9EYXRhLk4uckkoKStuLnRpbWVzdGFtcE9mZnNldH1gKSwKbi5MLlUoInN0YXJ0U2VlayIsVykpfTsKVlppPWZ1bmN0aW9uKG4sVyl7bi50d3x8KG4ubG9hZGVyP2lzRmluaXRlKG4uSik/bi50dz1uLmxvYWRlci5zZWVrKG4uSi1uLnRpbWVzdGFtcE9mZnNldCxXKTooZy5EUChuLnZpZGVvRGF0YSksbi5MLmhhPTAsbi50dz1SJChuLmxvYWRlcikscEwobi52aWRlb0RhdGEpfHwobi5KPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCkrbi50aW1lc3RhbXBPZmZzZXQpKTpuLnR3PSRHKG4uSi1uLnRpbWVzdGFtcE9mZnNldCkpO3JldHVybiBuLnR3fTsKZy5PQj1mdW5jdGlvbihuLFcpe24uaiYmKG4uai5yZXNvbHZlKFcpLG4uTC5LdCgpLG4uQi5XWCgpJiYoVz1uLnlyKCksV1sibmF0aXZlIl09YCR7K24uY0p9YCxXLm90Z3Q9YCR7bi5KK24udGltZXN0YW1wT2Zmc2V0fWAsbi5MLlUoInNlZWtFbmQiLFcpKSk7Zy5BQyhuKX07Cnp5MT1mdW5jdGlvbihuKXtuLlgmJihuLlgucmVzb2x2ZShuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpKSxuLk8uSj1udWxsKX07CmcuQUM9ZnVuY3Rpb24obil7bi5KPU5hTjtuLlY9TmFOO24uSEo9TmFOO24uWD1udWxsO24udHc9bnVsbDtuLmo9bnVsbDtuLlRDPSExO24uY0o9ITE7bi5EdD0wO24uUyQuc3RvcCgpO24ubnUuc3RvcCgpfTsKYUF3PWZ1bmN0aW9uKG4pe2lmKG4uRClpZihuLnZpZGVvRGF0YS5nVD8uQWopbi5EPSExO2Vsc2UgaWYoZy5wQShuLnZpZGVvRGF0YSkpbi5EPSExO2Vsc2V7dmFyIFc9InNzIixEPTA7bi52aWRlb0RhdGEuTj8uaXNNYW5pZmVzdGxlc3MmJm4udmlkZW9EYXRhLlRDJiYhSkMobikmJihXPSJtc3MiLEQ9bi52aWRlb0RhdGEuVEMpOyhuLnZpZGVvRGF0YS5SST9uLlMoImh0bWw1X3ByaW9yaXRpemVfd2luZG93ZWRfc3Rfc3RhcnRfc2Vjb25kcyIpOm4uUygiaHRtbDVfcHJpb3JpdGl6ZV9zdF9zdGFydF9zZWNvbmRzIikpJiYhRCYmbi52aWRlb0RhdGEuVXImJihXPSJzdHNzIixEPW4udmlkZW9EYXRhLlVyKTshRCYmY3B0KG4pJiYoRD1uLnZpZGVvRGF0YS5saXZlVXRjU3RhcnRTZWNvbmRzfHxuLnZpZGVvRGF0YS5UQyxXPSJ1dGMiLEQ9bi5ySSgpLW4uaEMobi5ySSgpKStEKTshRCYmbi52aWRlb0RhdGEuelcoKSYmbi52aWRlb0RhdGEuVXImJihXPSJzdHNzIixEPW4udmlkZW9EYXRhLlVyKTsKdmFyIGI9e307aWYoRCl7aWYoRD5uLnJJKCl8fEQ8bi5MZigpKWIubWluU2Vla2FibGVUaW1lPW4uTGYoKSxiLm1heFNlZWthYmxlVGltZT1uLnJJKCksYi5jbXQ9bi5nZXRDdXJyZW50VGltZSgpLGIuaXQ9bi5oQyhuLmdldEN1cnJlbnRUaW1lKCkpLGIuc3M9RCxiLnV0Yz1jcHQobik/bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kc3x8bi52aWRlb0RhdGEuVEM6MCxuLkwuVSgic3RhcnRTZWNvbmRzT3V0T2ZCb3VuZHMiLGIpLG4udmlkZW9EYXRhLnpXKCkmJihEPUhkKG4sRCwhMSkpO24uc2Vla1RvKEQse3FkOiJzZWVrdGltZWxpbmVfc3RhcnRTZWNvbmRzIn0pO2JbV109RDtuLkwuVSgic3RhcnRTZWNvbmRzIixiKTtuLkQ9ITF9ZWxzZSBuLnZpZGVvRGF0YS5UQyYmKGJbV109bi52aWRlb0RhdGEuVEMrbi5TVygpLG4uTC5VKCJzdGFydFNlY29uZHMiLGIpKX19OwpuQXg9ZnVuY3Rpb24obixXKXt2YXIgRD1uLm1lZGlhRWxlbWVudCxiPVcudHlwZTtzd2l0Y2goYil7Y2FzZSAic2Vla2luZyI6bGV0IHY9RC5nZXRDdXJyZW50VGltZSgpK24udGltZXN0YW1wT2Zmc2V0O2lmKCFuLlh8fG4uY0omJnYhPT1uLkopbi5YPW5ldyBZNixuLlgudGhlbihrPT57Zy5PQihuLGspfSwoKT0+e2cuQUMobil9KSxuLnZpZGVvRGF0YS5pc0FkKCkmJm5uMSh7YWRDcG46bi52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSwKY29udGVudENwbjpuLnZpZGVvRGF0YS5ob3N0Q3BuPz8iIn0sVy5OKSxuLkhKPXYsdTRiKG4uTyxELmdldEN1cnJlbnRUaW1lKCkpLG4uc2Vla1RvKHYse3NlZWtTb3VyY2U6MTA0LHFkOiJzZWVrdGltZWxpbmVfbWVkaWFFbGVtZW50RXZlbnQifSksbi5jSj0hMDticmVhaztjYXNlICJzZWVrZWQiOnp5MShuKTticmVhaztjYXNlICJsb2FkZWRtZXRhZGF0YSI6SWMobi5MKXx8YUF3KG4pO2Z1KG4pO2JyZWFrO2Nhc2UgInByb2dyZXNzIjpmdShuKTticmVhaztjYXNlICJwYXVzZSI6bi5LPW4uZ2V0Q3VycmVudFRpbWUoKX1uLksmJigoYj09PSJwbGF5Inx8Yj09PSJwbGF5aW5nInx8Yj09PSJ0aW1ldXBkYXRlInx8Yj09PSJwcm9ncmVzcyIpJiZuLmdldEN1cnJlbnRUaW1lKCktbi5LPjEwJiYobi5TKCJodG1sNV9za3lfc2tpcF9wYXVzZV9qdW1wIik/bi5MLlUoInNraXBQYXVzZUp1bXAiLHtldnQ6YixjbXQ6bi5nZXRDdXJyZW50VGltZSgpLGxwdDpuLkt9KTpuLnNlZWtUbyhuLkssCntxZDoicGF1c2VKdW1wIn0pKSxiIT09InBhdXNlIiYmYiE9PSJwbGF5IiYmYiE9PSJwbGF5aW5nIiYmYiE9PSJwcm9ncmVzcyImJihuLks9MCkpfTsKY3B0PWZ1bmN0aW9uKG4pe3JldHVybihZcChuLnZpZGVvRGF0YSl8fCEhbi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcykmJighIW4udmlkZW9EYXRhLmxpdmVVdGNTdGFydFNlY29uZHN8fEpDKG4pKSYmISFuLnZpZGVvRGF0YS5OfTsKUGQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLmdldChXKT8uYnVmZmVyLlcoKXx8W119OwpaNz1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4uZ2V0KFcpPy5idWZmZXIuWCgpfHwwfTsKTHIxPWZ1bmN0aW9uKG4sVyl7ZnVuY3Rpb24gRChrKXtyZXR1cm4gYi5WIT09Inl0IiYmKHYucGFydG5lcklkPT09MzgmJmIucGxheWVyU3R5bGU9PT0iYm9va3MifHx2LnBhcnRuZXJJZD09PTMwJiZiLnBsYXllclN0eWxlPT09ImRvY3MifHx2LnBhcnRuZXJJZD09PTMzJiZiLnBsYXllclN0eWxlPT09Imdvb2dsZS1saXZlIik/V3JoKG4sdixrKTpEMXQobix2KS50aGVuKCgpPT57Yi5TKCJlbWJlZHNfZW5hYmxlX3Nob3J0cyIpJiZuLkcoKS5UNyYmdi5pc0VtYmVkc1Nob3J0c01vZGUobmV3IGcuUWUoMCwwKSwhIXYucGxheWxpc3RJZCk/YlVVKG4sdik6VUIobix2KX0saD0+e1VCKG4sdiwhMCk7CnRocm93IGg7fSl9CnZhciBiPW4uRygpLHY9bi5nZXRWaWRlb0RhdGEoKTt2LnFOKCk7di5sb2FkaW5nPSEwO3JldHVybiB2QWoobik/a1VpKG4sdixXKS50aGVuKCgpPT57VUIobix2KX0saz0+e2s9QiQoayk7CmlmKGoyKGsuc2V2ZXJpdHkpKXJldHVybiBVQihuLHYsITApLFByb21pc2UucmVqZWN0KGspO2suZXJyb3JDb2RlPT09Im9uZXNpZS5yZXNwb25zZS5iYWRwcm94eXN0YXR1cyImJmAke2suZGV0YWlscy5zdH1gPT09IjMiJiYoaHBTPSEwKTtuLmhhbmRsZUVycm9yKGspO3JldHVybiBEKCJvbmVzaWUiKX0pOmIuUygiZW1iZWRzX2VuYWJsZV9zaG9ydHMiKSYmYi5UNz94MVUobix2KS50aGVuKCgpPT5EKCJndmkiKSk6RCgiZ3ZpIil9Owp2QWo9ZnVuY3Rpb24obil7dmFyIFc9bi5HKCk7aWYoVy5TKCJodG1sNV9kaXNhYmxlX29uZXNpZSIpfHwhVy5TKCJodG1sNV9vbmVzaWUiKXx8IVcuUygiaHRtbDVfb25lc2llX2lubGluZSIpJiZuLmdldFZpc2liaWxpdHlTdGF0ZSgpPT09NXx8Vy5WIT09Inl0IilyZXR1cm4hMTt2YXIgRD1XLlBYO2lmKCFEfHwhRC5OKXJldHVybiBuLmhhbmRsZUVycm9yKG5ldyBnLkNpKCJvbmVzaWUudW5hdmFpbGFibGUuaG90Y29uZmlnIix7a2V5OiIwIn0pKSwhMTtpZihELk4uSzwoMCxnLlIpKCkmJihuLlUoIm9rZXhwIiwiMSIpLChEPW4uVTQoKSkmJlcuUygiaHRtbDVfcHJlZmVyX3RydXN0ZWRfaG9zdF9vbl9rZXlfZXhwaXJhdGlvbiIpKSl7RC5KPSEwO2xldCBiPUQuTi5nZXQoMCk/Lk4oKTtiJiYheHcoYikmJkQuTi5kZWxldGUoMCl9aWYoaHBTKXJldHVybiBuLlUoIm9zdDMiLCIxIiksITE7RD17fTtyZXR1cm4gT2JqZWN0LmtleXMoRCkubGVuZ3RoPjA/KEQub25lc2llPSIwIixuLmhhbmRsZUVycm9yKG5ldyBnLkNpKCJodG1sNS5taXNzaW5nYXBpIiwKRCkpLCExKTpuLmdldFZpZGVvRGF0YSgpLmxpdmVQcmVsb2FkJiZXLlp0KCkuTi5RUShIcCk/ITE6ITB9Owp5YT1mdW5jdGlvbihuLFcpe3ZhciBEPWcucDIoKTtnLllGKEQsVyk7cmV0dXJuIG5jKEQsaVooKSx7b1M6bi5KLGNsaWVudEludGVyZmFjZTpsbyhuKX0pfTsKZXBaPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuazYobi5HKCkpJiZXLnZKKCk/YCR7bi5nZXRQbGF5ZXJUeXBlKCl9XyR7Vy52aWRlb0lkfV8ke1cuS2Z9YDpgJHtuLmdldFBsYXllclR5cGUoKX1fJHtXLnZpZGVvSWR9XyR7Vy5LZn1fJHsrVy5pc0F1dG9uYXZ9JHsrVy5WVH1gfTsKa1VpPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXtXLmZldGNoVHlwZT0ib25lc2llIjt2YXIgYj12b2lkIDA7aWYoeVUoVykpaWYoYj1uLmk3KXt2YXIgdj1lcFoobixXKTtiPWIuZ2V0KHYpfWVsc2UgYj12b2lkIDA7dj1uLnRiLlFwO2lmKGIpe2lmKFcubG9hZGluZz0hMSxXLk5WPSEwLHpmKFcse3BsYXllcl9yZXNwb25zZTpifSwhMCksVy5sb2FkaW5nfHxIaihXKSlyZXR1cm4gbi5VKCJwcnIiLCIxIiksUHJvbWlzZS5yZXNvbHZlKCl9ZWxzZXtiPWxGKFcsbi5nZXRQbGF5ZXJTaXplKCksbi5nZXRWaXNpYmlsaXR5U3RhdGUoKSk7RD1uZXcgS0QobixiLEQpO2I9YXdhaXQgRC5mZXRjaCgpO2xldCBoPXtwbGF5ZXJfcmVzcG9uc2U6Yn07Vy5sb2FkaW5nPSExO2lmKEQubkEpe2ZvcihsZXQgW3gsTF1vZiBELm5BLmVudHJpZXMoKSl7dmFyIGs9eDtsZXQgZT1MO3YuTi5zZXQoayxlLDE4MCk7az09PVcudmlkZW9JZCYmKGs9ZS5TSigpLFcub009ayl9di5VZz1EfWZvcihsZXQgW3gsTF1vZiBELnQwLmVudHJpZXMoKSl2Lkouc2V0KHgsCkwsMTgwKTt6ZihXLGgsITApO2lmKFcubG9hZGluZ3x8SGooVykpcmV0dXJuIHlVKFcpJiYodj1lcFoobixXKSxXPVcuZ2V0UGxheWVyUmVzcG9uc2UoKSkmJihXPVcucmVzcG9uc2VDb250ZXh0Py5jYWNoZUluc3RydWN0aW9uPy5tYXhBZ2VTZWNvbmRzPz9XLnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcz8/dm9pZCAwLG4uaTc/LnB1dCh2LGIsVykpLFByb21pc2UucmVzb2x2ZSgpfXYuTi5UaSgpO3YuSi5UaSgpO1cub009W107bj17fTt2PSJvbmVzaWUucmVzcG9uc2UiO0Q9MDtXLmVycm9yQ29kZT8odj0iYXV0aCIsbi5lYz1XLmVycm9yQ29kZSxuLmVkPVcuZXJyb3JEZXRhaWwsbi5lcz1XLndpfHwiIixEPTIpOihuLnN1Y2Nlc3NCdXRVbnBsYXlhYmxlPSIxIixuLmRpc3Bvc2VkPWAkeytXLnFOKCl9YCxuLmFmbXRzPWAkeysvYWRhcHRpdmVGb3JtYXRzLy50ZXN0KGIpfWAsbi5jcG49Vy5jbGllbnRQbGF5YmFja05vbmNlKTtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2kodiwKbixEKSl9OwpEMXQ9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1XLmlzQWQoKSxiPSFELHY9RD8xOjM7Zm9yKGxldCBoPTA7aDx2O2grKyl7aWYoaD4wKXthd2FpdCBnLlV1KDVFMyk7dmFyIGs9bmV3IGcuUXgoIlJldHJ5aW5nIE9uZVBsYXRmb3JtIHJlcXVlc3QiLHthdHRlbXB0Omh9KTtnLkdxKGspfXRyeXthd2FpdCBnQWkobixXKTtyZXR1cm59Y2F0Y2goeCl7bGV0IEw9QiQoeCk7az1MLmVycm9yQ29kZTtsZXQgZT1uLkcoKS5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIik/NDAxOiI0MDEiO2ImJms9PT0ibWFuaWZlc3QubmV0LmJhZHN0YXR1cyImJkwuZGV0YWlscy5yYz09PWUmJihiPSExLGg9PT12LTEmJih2Kz0xKSk7aWYoaD09PXYtMSlyZXR1cm4gbj1Yc2koRCxMLmRldGFpbHMpLG4uZGV0YWlscy5iYWNrZW5kPSJvcCIsbi5kZXRhaWxzLm9yaWdpbmVjPWssUHJvbWlzZS5yZWplY3Qobik7aWYoaz09PSJhdXRoInx8az09PSJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQifHwKZy5DTihuLkcoKSkpcmV0dXJuIFByb21pc2UucmVqZWN0KEwpO24uaGFuZGxlRXJyb3IoTCk7aWYoajIoTC5zZXZlcml0eSkpYnJlYWt9fXJldHVybiBQcm9taXNlLnJlamVjdChYc2koRCx7YmFja2VuZDoib3AifSkpfTsKZ0FpPWFzeW5jIGZ1bmN0aW9uKG4sVyl7Vy5mZXRjaFR5cGU9ImdwIjt2YXIgRD1uLkcoKSxiPWcuSEUoRCxXLlYoKSk7Yj1iLk4/YXdhaXQgYi5OOmIuZ2V0VmFsdWUoKTt2YXIgdj15YShELGIpLGs9bEYoVyxuLmdldFBsYXllclNpemUoKSxuLmdldFZpc2liaWxpdHlTdGF0ZSgpKSxoPUxCKHF5aikseD1XLlYoKSxMPSgwLGcuUikoKSxlPSExLEc9ImVtcHR5IjtiPTA7bi5EaygicHNucyIpO3ZhciByPXtsZzpmdW5jdGlvbihOKXtOLnJlYWR5U3RhdGU9PT0yJiZuLkRrKCJwc19jIil9fTsKaWYoRC5KKXtsZXQgTj17dmlkZW9JZDpTdHJpbmcoVy52aWRlb0lkKX0sSD1kbChXLmdldFJlc29sdmVVcmxSZXNwb25zZSgpKTtIJiYoTi5wYXJhbXM9SCk7Vy5wbGF5bGlzdElkJiYoTi5wbGF5bGlzdElkPVN0cmluZyhXLnBsYXlsaXN0SWQpKTtyLkhuPXtSTDp5SCgicGxheWVyIixOKX19dj1hd2FpdCBnLnJfKHYsayxoLHZvaWQgMCxyKTtuLkRrKCJwc25yIik7aWYoIVcucU4oKSl7dj8iZXJyb3IiaW4gdiYmdi5lcnJvcj8oZT0hMCxHPWBlc2Y6JHt2LmVycm9yLm1lc3NhZ2V9YCxiPXYuZXJyb3IuY29kZSk6di5lcnJvck1ldGFkYXRhJiYoZT0hMCxHPSJpdHMiLGI9di5lcnJvck1ldGFkYXRhLnN0YXR1cyk6ZT0hMDtpZihlKXJldHVybiBlPTAsdj0oKDAsZy5SKSgpLUwpLnRvRml4ZWQoKSxMPXt9LEw9RC5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIik/e2JhY2tlbmQ6Im9wIixyYzpiLHJ0OnYscmVhc29uOkcsaGFzX2twdDpXLkhKPyIxIjoiMCIsaGFzX21keF9lbnY6Vy5tZHhFbnZpcm9ubWVudD8KIjEiOiIwIixoYXNfb21pdF9rZXlfZmxhZzpnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIpPyIxIjoiMCIsaGFzX3BhZ2VfaWQ6RC5wYWdlSWQ/IjEiOiIwIixoYXNfdG9rZW46eD8iMSI6IjAiLGhhc192dnQ6Vy5EPyIxIjoiMCIsaXNfbWR4OlcuaXNNZHhQbGF5YmFjaz8iMSI6IjAiLG1keF9jdHJsOlcuaTV8fCIiLHRva2VuX2VxOng9PT1XLlYoKT8iMSI6IjAifTp7YmFja2VuZDoib3AiLHJjOmAke2J9YCxydDp2LHJlYXNvbjpHLGhhc19rcHQ6Vy5ISj8iMSI6IjAiLGhhc19tZHhfZW52OlcubWR4RW52aXJvbm1lbnQ/IjEiOiIwIixoYXNfb21pdF9rZXlfZmxhZzpnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIpPyIxIjoiMCIsaGFzX3BhZ2VfaWQ6RC5wYWdlSWQ/IjEiOiIwIixoYXNfdG9rZW46eD8iMSI6IjAiLGhhc192dnQ6Vy5EPyIxIjoiMCIsaXNfbWR4OlcuaXNNZHhQbGF5YmFjaz8KIjEiOiIwIixtZHhfY3RybDpXLmk1fHwiIix0b2tlbl9lcTp4PT09Vy5WKCk/IjEiOiIwIn0sVz0ibWFuaWZlc3QubmV0LmNvbm5lY3QiLGI9PT00Mjk/KFc9ImF1dGgiLGU9Mik6Yj4yMDAmJihXPSJtYW5pZmVzdC5uZXQuYmFkc3RhdHVzIixiPT09NDAwJiYoZT0yKSksUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koVyxMLGUpKTtXLmxvYWRpbmc9ITE7emYoVyx7cmF3X3BsYXllcl9yZXNwb25zZTp2fSwhMCk7Zy5DTihXLkcoKSkmJnYmJnYudHJhY2tpbmdQYXJhbXMmJmcueXIodi50cmFja2luZ1BhcmFtcyk7aWYoVy5lcnJvckNvZGUpcmV0dXJuIEQ9e2VjOlcuZXJyb3JDb2RlLGVkOlcuZXJyb3JEZXRhaWwsZXM6Vy53aXx8IiJ9LGI9ImF1dGgiLGcuQ04oVy5HKCkpJiZXLmVycm9yQ29kZSYmKGI9Vy5lcnJvckNvZGUpLFByb21pc2UucmVqZWN0KG5ldyBnLkNpKGIsRCwyKSk7aWYoIVcubG9hZGluZyYmIUhqKFcpKXJldHVybiBEPVcuaXNBZCgpPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIiwKUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koRCx7c3VjY2Vzc0J1dFVucGxheWFibGU6IjEiLGhhc01lZGlhOmcuWUwoVyk/IjEiOiIwIn0sMikpfX07CldyaD1hc3luYyBmdW5jdGlvbihuLFcsRCl7ZnVuY3Rpb24gYigpe3JldHVybiEwfQpmdW5jdGlvbiB2KGUpe2U9QiQoZSk7aWYoajIoZS5zZXZlcml0eSkpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO24uaGFuZGxlRXJyb3IoZSk7cmV0dXJuITF9CnZhciBrPXNfMihuLkcoKSxXLG4uZ2V0UGxheWVyU2l6ZSgpLG4uZ2V0VmlzaWJpbGl0eVN0YXRlKCksbi5pc0Z1bGxzY3JlZW4oKSksaD1XLmlzQWQoKSx4PWg/MTozO2ZvcihsZXQgZT0wO2U8eDtlKyspe3ZhciBMPWs7ZT4wJiYoYXdhaXQgZy5VdSg1RTMpLEw9e3BsYXllcnJldHJ5OmUscGxheWVycmV0cnlzcmM6RH0saHx8KEwucmVjb3Zlcj0iZW1iZWRkZWQiKSxMPWcubHcoayxMKSk7aWYoYXdhaXQgR1UxKFcsTCkudGhlbihiLHYpKXJldHVybn1XPWg/ImF1dGgiOiJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQiO0Q9aD8yOjE7aWYoIWgmJk1hdGgucmFuZG9tKCk8MUUtNCl0cnl7Zy5HcShuZXcgZy5ReCgiYi8xNTIxMzE1NzEiLGJ0b2EoaykpKX1jYXRjaHt9cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBnLkNpKFcse2JhY2tlbmQ6Imd2aSJ9LEQpKX07CkdVMT1hc3luYyBmdW5jdGlvbihuLFcpe2Z1bmN0aW9uIEQoTCl7aWYoIW4ucU4oKSl7TD1MP0wuc3RhdHVzOi0xO3ZhciBlPTAsRz0oKDAsZy5SKSgpLXgpLnRvRml4ZWQoKTtHPWIuUygiaHRtbDVfdXNlX25ldHdvcmtfZXJyb3JfY29kZV9lbnVtcyIpP3tiYWNrZW5kOiJndmkiLHJjOkwscnQ6R306e2JhY2tlbmQ6Imd2aSIscmM6YCR7TH1gLHJ0Okd9O3ZhciByPSJtYW5pZmVzdC5uZXQuY29ubmVjdCI7TD09PTQyOT8ocj0iYXV0aCIsZT0yKTpMPjIwMCYmKHI9Im1hbmlmZXN0Lm5ldC5iYWRzdGF0dXMiLEw9PT00MDAmJihlPTIpKTtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2kocixHLGUpKX19Cm4uZmV0Y2hUeXBlPSJndmkiO3ZhciBiPW4uRygpLHY7KHY9TlFpKG4pKT8odj17Zm9ybWF0OiJSQVciLG1ldGhvZDoiUE9TVCIsd2l0aENyZWRlbnRpYWxzOiEwLHRpbWVvdXQ6M0U0LHBvc3RQYXJhbXM6dn0sVz1nLmx3KFcse2FjdGlvbl9kaXNwbGF5X3Bvc3Q6MX0pKTp2PXtmb3JtYXQ6IlJBVyIsbWV0aG9kOiJHRVQiLHdpdGhDcmVkZW50aWFsczohMCx0aW1lb3V0OjNFNH07dmFyIGs9e307Yi5zZW5kVmlzaXRvcklkSGVhZGVyJiZuLnZpc2l0b3JEYXRhJiYoa1siWC1Hb29nLVZpc2l0b3ItSWQiXT1uLnZpc2l0b3JEYXRhKTt2YXIgaD1nLlloKGIuZXhwZXJpbWVudHMsImRlYnVnX3NoZXJsb2dfdXNlcm5hbWUiKTtoJiYoa1siWC1Zb3V0dWJlLVNoZXJsb2ctVXNlcm5hbWUiXT1oKTtPYmplY3Qua2V5cyhrKS5sZW5ndGg+MCYmKHYuaGVhZGVycz1rKTt2YXIgeD0oMCxnLlIpKCk7dj1hd2FpdCBlNChnLnI4LFcsdikudGhlbih2b2lkIDAsZnVuY3Rpb24oTCl7cmV0dXJuIEQoTC54aHIpfSk7CmlmKCF2fHwhdi5yZXNwb25zZVRleHQpcmV0dXJuIEQodik7bi5sb2FkaW5nPSExO3Y9Zy5pdyh2LnJlc3BvbnNlVGV4dCk7emYobix2LCEwKTtpZihuLmVycm9yQ29kZSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koImF1dGgiLHtlYzpuLmVycm9yQ29kZSxlZDpuLmVycm9yRGV0YWlsLGVzOm4ud2l8fCIifSwyKSk7aWYoIW4ubG9hZGluZyYmIUhqKG4pKXJldHVybiB2PW4uaXNBZCgpPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIixQcm9taXNlLnJlamVjdChuZXcgZy5DaSh2LHtzdWNjZXNzQnV0VW5wbGF5YWJsZToiMSJ9LDIpKX07ClhzaT1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgZy5DaShuPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIixXLG4/MjoxKX07ClVCPWFzeW5jIGZ1bmN0aW9uKG4sVyxEPSExKXt2YXIgYj1uLkcoKTtEJiYoIWcuJDYoYil8fElUKFcpIT09ImVtYmVkZGVkIil8fFcuZkN8fElUKFcpIT09ImFkdW5pdCImJihnLms2KGIpfHxnLlhDKGIpfHxnLk1WKGIpfHx0dShiKXx8Zy5EZihiKXx8bG8oYik9PT0iV0VCX0NSRUFUT1IiKXx8KEQ9Zy5IRShiLFcuVigpKSxEPUQuTj9hd2FpdCBELk46RC5nZXRWYWx1ZSgpLHR5MihuLFcsRCkpfTsKdHkyPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt0cnl7bGV0IGs9bi5HKCksaD15YShrLEQpO3ZhciBiPVcuRygpO2xldCB4PWcubzkoKSxMPXtjb250ZXh0Omcub1QoVyksdmlkZW9JZDpXLnZpZGVvSWQscmFjeUNoZWNrT2s6Vy5yYWN5Q2hlY2tPayxjb250ZW50Q2hlY2tPazpXLmNvbnRlbnRDaGVja09rLGF1dG9uYXZTdGF0ZToiU1RBVEVfTk9ORSJ9O0lUKFcpPT09ImFkdW5pdCImJihMLmlzQWRQbGF5YmFjaz0hMCk7Yi5lbWJlZENvbmZpZyYmKEwuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1iLmVtYmVkQ29uZmlnKTtiLlluJiYoTC5zaG93Q29udGVudE93bmVyT25seT0hMCk7Vy5TYSYmKEwuc2hvd1Nob3J0c09ubHk9ITApO3guUVEoMTQxKSYmKEwuYXV0b25hdlN0YXRlPXguUVEoMTQwKT8iU1RBVEVfT0ZGIjoiU1RBVEVfT04iKTtpZihnLmVNKGIpKXtsZXQgTj14LlFRKDY1KTtEPU4hPW51bGw/IU46ITE7bGV0IEg9ISFnLlpJKCJ5dC1wbGF5ZXItc3RpY2t5LWNhcHRpb24iKTsKTC5jYXB0aW9uc1JlcXVlc3RlZD1EJiZIfWxldCBlPWIuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpPy5lbmNyeXB0ZWRIb3N0RmxhZ3M7ZSYmKEwucGxheWJhY2tDb250ZXh0PXtlbmNyeXB0ZWRIb3N0RmxhZ3M6ZX0pO3ZhciB2PUw7bGV0IEc9TEIoJDFDKTtuLkRrKCJ3bl9zIik7Yj17fTtrLkomJihiLkhuPXtSTDp5SCgibmV4dCIse3ZpZGVvSWQ6U3RyaW5nKFcudmlkZW9JZCl9KX0pO2xldCByPWF3YWl0IGcucl8oaCx2LEcsdm9pZCAwLGIpO24uRGsoInduX3IiKTshcnx8ImVycm9yImluIHImJnIuZXJyb3J8fChnLkNOKFcuRygpKSYmci50cmFja2luZ1BhcmFtcyYmZy55cihyLnRyYWNraW5nUGFyYW1zKSx6ZihXLHtyYXdfd2F0Y2hfbmV4dF9yZXNwb25zZTpyfSwhMSkpfWNhdGNoKGspe319OwpiVVU9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1nLkhFKG4uRygpLFcuVigpKTtEPUQuTj9hd2FpdCBELk46RC5nZXRWYWx1ZSgpO3I2dyhuLFcsRCl9OwpyNnc9YXN5bmMgZnVuY3Rpb24obixXLEQpe249bi5HKCk7dHJ5e2xldCBoPXlhKG4sRCk7bGV0IHg9e2NvbnRleHQ6Zy5vVChXKSxwbGF5ZXJSZXF1ZXN0Ont2aWRlb0lkOlcudmlkZW9JZH0sZGlzYWJsZVBsYXllclJlc3BvbnNlOiEwfSxMPVcuZ2V0UmVzb2x2ZVVybFJlc3BvbnNlKCk7aWYoTCl7bGV0IHI9ZGwoTCk7ciYmKHgucGxheWVyUmVxdWVzdC5wYXJhbXM9cik7bGV0IE49ajcoTCk/LnBhcmFtcztOJiYoeC5wYXJhbXM9Til9dmFyIGI9eDtsZXQgZT1MQihzdjIpO0Q9e307aWYobi5KKXtsZXQgcj17dmlkZW9JZDpTdHJpbmcoVy52aWRlb0lkKX07dmFyIHYsaz1XLmdldFJlc29sdmVVcmxSZXNwb25zZSgpOyh2PWo3KGspPy5wYXJhbXMpJiYoci5wYXJhbXM9dik7RC5Ibj17Ukw6eUgoInJlZWxfaXRlbV93YXRjaCIscil9fWxldCBHPWF3YWl0IGcucl8oaCxiLGUsdm9pZCAwLEQpOyFHfHwiZXJyb3IiaW4gRyYmRy5lcnJvcnx8emYoVyx7cmF3X3JlZWxfaXRlbV93YXRjaF9yZXNwb25zZTpHfSl9Y2F0Y2goaCl7fX07CngxVT1hc3luYyBmdW5jdGlvbihuLFcpe3RyeXtsZXQgaz1uLkcoKSxoPWcuSEUoayxXLlYoKSkseD1oLk4/YXdhaXQgaC5OOmguZ2V0VmFsdWUoKSxMPXlhKGsseCk7dmFyIEQ9bi5nZXRQbGF5ZXJTaXplKCksYj1uLmdldFZpc2liaWxpdHlTdGF0ZSgpO3ZhciB2PXtjb250ZXh0Omcub1QoVyksdXJsOmBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke1cudmlkZW9JZH1gLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDpkayhXLEQsYil9fTtsZXQgZT1MQihONGgpLEc9YXdhaXQgZy5yXyhMLHYsZSk7Vy5xTigpfHxHJiZ6ZihXLHtyYXdfcmVzb2x2ZV91cmxfcmVzcG9uc2U6R30sITApfWNhdGNoKGspe319Owpwc3I9ZnVuY3Rpb24obixXKXtuLkRrKCJ2aXIiKTtuLkRrKCJwc19zIik7Zy5nXygidmlyIix2b2lkIDAsInZpZGVvX3RvX2FkIik7Vz1McjEobixXKTtXLnRoZW4oZnVuY3Rpb24oKXtuLkRrKCJ2aXJjIik7Zy5nXygidmlyYyIsdm9pZCAwLCJ2aWRlb190b19hZCIpO24uRGsoInBzX3IiKTtnLmdfKCJwc19yIix2b2lkIDAsInZpZGVvX3RvX2FkIil9LGZ1bmN0aW9uKCl7bi5EaygidmlyYyIpOwpnLmdfKCJ2aXJjIix2b2lkIDAsInZpZGVvX3RvX2FkIil9KTsKcmV0dXJuIFd9OwpFQj1mdW5jdGlvbigpe3ZhciBuPUcxKCk7cmV0dXJuISghbnx8bj09PSJ2aXNpYmxlIil9OwpIVWk9ZnVuY3Rpb24obil7dmFyIFc9WXlpKCk7VyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihXLG4sITEpfTsKZnZpPWZ1bmN0aW9uKG4pe3ZhciBXPVl5aSgpO1cmJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoVyxuLCExKX07Cll5aT1mdW5jdGlvbigpe2lmKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSl2YXIgbj0idmlzaWJpbGl0eWNoYW5nZSI7ZWxzZXtpZighZG9jdW1lbnRbcTArIlZpc2liaWxpdHlTdGF0ZSJdKXJldHVybiIiO249cTArInZpc2liaWxpdHljaGFuZ2UifXJldHVybiBufTsKSXZoPWZ1bmN0aW9uKG4pe0o2cj1ufTsKU3lyPWZ1bmN0aW9uKG4pe2lWPW59OwpTUE09ZnVuY3Rpb24obil7dmFyIFc9bi5oVTtuPW4udmlkZW9EYXRhO3ZhciBEPVpWKFcsbik7Vy5TKCJodG1sNV9kaXNhYmxlX2NsaWVudF9hdXRvbmF2X2NhcF9mb3Jfb25lc2llIil8fEQuY29tcG9zZShVWChXLG4pKTtyZXR1cm4gRH07CkdYPWZ1bmN0aW9uKG4sVyl7dVYobixXLnJlYXNvbixXLk4uaW5mbyxXLnNvdXJjZSxXLnRva2VuKX07Cm9jPWZ1bmN0aW9uKG4sVyl7bi5XSigibG9jYWxtZWRpYWNoYW5nZSIsVyl9OwpQOVU9ZnVuY3Rpb24obixXKXtuLnRiLmRUKCl8fChuLlUoInNnYXAiLHtmOld9KSxuLnRiLmNsZWFyUXVldWUoITEsVz09PSJwZSIpKX07Cm0xVT1mdW5jdGlvbihuKXtuLm1lZGlhRWxlbWVudCYmKG4ubWVkaWFTb3VyY2U/KGRzKG4pLG4ubXkoKSxBNmoobiwhMSkpOihuLnZpZGVvRGF0YS5jSiYmbi52aWRlb0RhdGEuY0ouWCgpLG4ubWVkaWFFbGVtZW50LnN0b3BWaWRlbygpKSxuLnBsYXlWaWRlbygpKX07CkljPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X2Rpc2FibGVfdmlkZW9fcGxheWVyX2luaXRpYXRlZF9zZWVrcyIpJiZnLllOKG4udmlkZW9EYXRhKX07CmxWPWZ1bmN0aW9uKG4sVyl7bi54byYmelkobik7bi54bz1uZXcgZy5sNShXKjFFMywweDdmZmZmZmZmZmZmZmYpO24ueG8ubmFtZXNwYWNlPSJlbmRjciI7bi5hZGRDdWVSYW5nZShuLnhvKX07CnpZPWZ1bmN0aW9uKG4pe24ucmVtb3ZlQ3VlUmFuZ2Uobi54byk7bi54bz1udWxsfTsKamg9ZnVuY3Rpb24obil7aWYobi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCkpe3ZhciBXPVRZKG4pO24ubG9hZGVyJiZuLmxvYWRlci5tbyhXKX19OwpCZD1mdW5jdGlvbihuLFc9ITApe24uQi5BbSYmIW4udmlkZW9EYXRhLmJhY2tncm91bmRhYmxlJiZuLm1lZGlhRWxlbWVudCYmIW4uRTgoKSYmKG4uaXNCYWNrZ3JvdW5kKCkmJm4ubWVkaWFFbGVtZW50LkdDKCk/KG4uVSgiYmdtb2JpbGUiLHtzdXNwZW5kOjF9KSxuLm9KKCEwLCEwKSk6IW4uaXNCYWNrZ3JvdW5kKCkmJlcmJkN1KG4pJiZuLlUoImJnbW9iaWxlIix7cmVzdW1lOjF9KSl9OwpGSj1mdW5jdGlvbihuKXtpZighZy5EUChuLnZpZGVvRGF0YSkpcmV0dXJuIE5hTjt2YXIgVz0wO24ubG9hZGVyJiZuLnZpZGVvRGF0YS5OJiYoVz1JNChuLnZpZGVvRGF0YSk/bi5sb2FkZXIucWgoKTpuLnZpZGVvRGF0YS5OLnFoKCkpO3JldHVybigwLGcuUikoKS8xRTMtbi5oQygpLVd9OwpLcmI9ZnVuY3Rpb24obixXKXtpZihuLnBsYXllclR5cGU9PT0yfHxuLkIuQ20pVy5vYz0hMDt2YXIgRD1UbChXLkZGLFcuRncsbi5CLkosbi5CLkspO0QmJihXLmFkRm9ybWF0PUQpO24ucGxheWVyVHlwZT09PTImJihXLkd1PSEwKTtpZihuLmlzRnVsbHNjcmVlbigpfHxuLkIuSilEPWcuWkkoInl0LXBsYXllci1hdXRvbmF2c3RhdGUiKSxXLmF1dG9uYXZTdGF0ZT1EfHwobi5CLko/MjpuLnZpZGVvRGF0YS5hdXRvbmF2U3RhdGUpO1cuZW5kU2Vjb25kcyYmVy5lbmRTZWNvbmRzPlcuc3RhcnRTZWNvbmRzJiZsVihuLFcuZW5kU2Vjb25kcyl9Owp3cz1mdW5jdGlvbihuKXtuLmxvYWRlciYmKG4ubG9hZGVyLmRpc3Bvc2UoKSxuLmxvYWRlcj1udWxsLG1vKG4uZGEsbnVsbCkpO24ucGcoKT9PVWgobik6bi5teSgpfTsKVTFpPWZ1bmN0aW9uKG4pe2lmKCFuLnBsYXllclN0YXRlLk4oMTI4KSlpZihuLnZpZGVvRGF0YS5pc0xvYWRlZCgpLG4uaWw9Zy5STShuLnZpZGVvRGF0YS5JSiksZy5ZTChuLnZpZGVvRGF0YSkpe24ubVEudGljaygiYnBkX3MiKTtNOShuKS50aGVuKCgpPT57bi5tUS50aWNrKCJicGRfYyIpO2lmKCFuLnFOKCkpe24uTkwmJihuLkJOKEJyKEJyKG4ucGxheWVyU3RhdGUsNTEyKSwxKSksQ3UobikpO3ZhciBEPW4udmlkZW9EYXRhO0QuZW5kU2Vjb25kcyYmRC5lbmRTZWNvbmRzPkQuc3RhcnRTZWNvbmRzJiZsVihuLEQuZW5kU2Vjb25kcyk7bi5MUi5maW5pc2hlZD0hMDtSYyhuLCJkYXRhbG9hZGVkIik7bi5qSC5zdGFydGVkJiZRYShuKTtsNVUobi5oVSxuLkRoKX19KTsKbi5TKCJodG1sNV9sb2dfbWVkaWFfcGVyZl9pbmZvIikmJm4uVSgibG91ZG5lc3MiLHt2Om4udmlkZW9EYXRhLllLLnRvRml4ZWQoMyl9LCEwKTt2YXIgVz1uLm1lZGlhRWxlbWVudD8uZV8oKTtpZihXJiYiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiaW4gVyYmbi5CLkh4KXRyeXtXLmRpc2FibGVQaWN0dXJlSW5QaWN0dXJlPW4uQi5MQiYmIW4udmlkZW9EYXRhLmJhY2tncm91bmRhYmxlfWNhdGNoKEQpe2cuR3EoRCl9UFJiKG4pO24uQkg9bmV3IFpVcihuLnZpZGVvRGF0YSl9ZWxzZSBSYyhuLCJkYXRhbG9hZGVkIil9Owp5Nlo9ZnVuY3Rpb24obil7dmFyIFc9bi52aWRlb0RhdGE7cHNyKG4sbi5paikudGhlbih2b2lkIDAsRD0+e24udmlkZW9EYXRhIT09V3x8Vy5xTigpfHwoRD1CJChEKSxELmVycm9yQ29kZT09PSJhdXRoIiYmbi52aWRlb0RhdGEuZXJyb3JEZXRhaWwmJm4udmlkZW9EYXRhLmVycm9yRGV0YWlsIT09IjciP24uUFYoRC5lcnJvckNvZGUsMix1bmVzY2FwZShuLnZpZGVvRGF0YS5lcnJvclJlYXNvbiksZy5UQyhELmRldGFpbHMpLG4udmlkZW9EYXRhLmVycm9yRGV0YWlsLG4udmlkZW9EYXRhLndpfHx2b2lkIDApOm4uaGFuZGxlRXJyb3IoRCkpfSl9OwpFQUM9ZnVuY3Rpb24obil7cmV0dXJuIGcuazYobi5CKSYmbi52aWRlb0RhdGEuaXNMaXZlUGxheWJhY2smJighbi5CLlMoImh0bWw1X2FsbG93X211bHRpdmlld190aWxlX3ByZWxvYWQiKXx8IW4udmlkZW9EYXRhLmxpdmVQcmVsb2FkKX07Ck05PWZ1bmN0aW9uKG4pe3dzKG4pO24uRGg9bnVsbDt2YXIgVz1Vancobi5CLG4udmlkZW9EYXRhLG4uRTgoKSk7bi50Uj1XO24udFIudGhlbihEPT57aVV0KG4sRCl9LEQ9PntuLnFOKCl8fChEPUIkKEQpLG4udmlzaWJpbGl0eS5pc0JhY2tncm91bmQoKT8oVmEobiwidnBfbm9uZV9hdmFpbCIpLG4udFI9bnVsbCxuLkxSLnJlc2V0KCkpOihuLkxSLmZpbmlzaGVkPSEwLG4uUFYoRC5lcnJvckNvZGUsRC5zZXZlcml0eSwiSFRNTDVfTk9fQVZBSUxBQkxFX0ZPUk1BVFNfRkFMTEJBQ0siLGcuVEMoRC5kZXRhaWxzKSkpKX0pOwpyZXR1cm4gV307ClBSYj1mdW5jdGlvbihuKXtpZihLeihuLnZpZGVvRGF0YSwiaHRtbDVfc2V0X2RlYnVnZ2luZ19vcHRfaW4iKSl7bGV0IFc9Zy5vOSgpO2lmKCFXLlFRKDE4Mykpe249YGYke01hdGguZmxvb3IoMTgzLzMxKSsxfWA7bGV0IEQ9VDEobil8fDA7RHw9MjY4NDM1NDU2O0Q9PT0wP2RlbGV0ZSBsT1tuXTpsT1tuXT1ELnRvU3RyaW5nKDE2KS50b1N0cmluZygpO1cuc2F2ZSgpfX19OwpSYz1mdW5jdGlvbihuLFc9ImRhdGF1cGRhdGVkIil7bi5XSigiaW50ZXJuYWx2aWRlb2RhdGFjaGFuZ2UiLFcsbi52aWRlb0RhdGEpfTsKaVV0PWZ1bmN0aW9uKG4sVyl7aWYoIW4ucU4oKSYmIVcudmlkZW9EYXRhLnFOKCkpe24uRGg9VztGM2Iobi5kYSxuLkRoKTtpZihuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayl7dmFyIEQ9dVJyKG4udGIuUXAsbi52aWRlb0RhdGEudmlkZW9JZCl8fG4ubG9hZGVyJiYhaXNOYU4obi5sb2FkZXIuQ0gpO0Q9bi5TKCJodG1sNV9vbmVzaWVfbGl2ZSIpJiZEO0ljKG4pfHxuLnZpZGVvRGF0YS5UQz4wJiYhSTQobi52aWRlb0RhdGEpfHxEfHxuLnNlZWtUbyhuLnJJKCkse3FkOiJ2aWRlb3BsYXllcl9wbGF5YmFja0RhdGEiLHNlZWtTb3VyY2U6MTh9KX1pZihuLnZpZGVvRGF0YS5XLk4oKSl7aWYoVGhpKG4udmlkZW9EYXRhKSl7bi5QVigiZm10Lm1pc3NpbmciLDIsIkJST1dTRVJfT1JfRVhURU5TSU9OX0VSUk9SIixnLlRDKHttaXNzYWJydXJsOjF9KSk7cmV0dXJufWlmKG4ubG9hZGVyKWcuR3EoRXJyb3IoIkR1cGxpY2F0ZWQgTG9hZGVyIikpO2Vsc2V7RD1nLmRNKG4uQi5leHBlcmltZW50cywKImh0bWw1X29uZXNpZV9kZWZlcl9jb250ZW50X2xvYWRlcl9tcyIpO2xldCBiPSgpPT57Y2QobiwoKT0+e24ucU4oKXx8bi5sb2FkZXJ8fG9BdChuKX0pfTsKRCYmbi5PUCgpJiZ1UnIobi50Yi5RcCxuLnZpZGVvRGF0YS5Xaik/Zy5uJChiLEQpOmIoKX19ZWxzZSFuLnZpZGVvRGF0YS5XLk4oKSYmT1Mobi52aWRlb0RhdGEpJiZvYyhuLG5ldyBhYyhuLnZpZGVvRGF0YS52aWRlb0lkfHwiIiw0KSk7bi51digpO3VpaihXKS50aGVuKCgpPT57dmFyIGI9e307bi5zVChiKTtuLkIuV1goKSYmbi5TKCJodG1sNV9sb2dfbWVkaWFfcGVyZl9pbmZvIikmJm4uVSgiYXYxSW5mbyIsYik7amgobil9KX19OwpDdT1mdW5jdGlvbihuLFc9ITEpe2lmKCFuLm1lZGlhRWxlbWVudHx8IW4udmlkZW9EYXRhLlcpcmV0dXJuITE7dmFyIEQ9ZDEyKG4sVyksYj1uLm1lZGlhRWxlbWVudC5HQygpLHY9ITE7YiYmYi5lcXVhbHMoRCl8fCh6cGkobixEKSx2PSEwKTtuLnBsYXllclN0YXRlLk4oMil8fFFidyhuLmRhLFcpO2E6e1c9djtpZihnLllOKG4udmlkZW9EYXRhKSl7aWYoIW4udmlkZW9EYXRhLk1pKCkpYnJlYWsgYX1lbHNlIGlmKCFnLnF1KG4udmlkZW9EYXRhKSlicmVhayBhO2lmKG4ubWVkaWFFbGVtZW50KWlmKChEPW4udmlkZW9EYXRhLmopJiZuLm1lZGlhRWxlbWVudC5LKCkpe2I9bi5tZWRpYUVsZW1lbnQuZV8oKTtpZihuLkxBKWlmKGIhPT1uLkxBLmVsZW1lbnQpZHMobik7ZWxzZSBpZihXJiZELmZsYXZvcj09PSJmYWlycGxheSImJiF6USgpKWRzKG4pO2Vsc2UgYnJlYWsgYTtpZihuLlMoImh0bWw1X3JlcG9ydF9lcnJvcl9mb3JfdW5zdXBwb3J0ZWRfdHZvc193aWRldmluZSIpJiZ6USgpJiYKRC5mbGF2b3I9PT0id2lkZXZpbmUiKW4uUFYoImZtdC51bnBsYXlhYmxlIiwxLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsInRyZy51bnNwdHR2b3N3aWRldmluZSIpO2Vsc2V7bi5MQT1uZXcgbHZ3KGIsbi52aWRlb0RhdGEsbi5CLG4ubWVkaWFFbGVtZW50LG4uZGgpO24uTEEuc3Vic2NyaWJlKCJsaWNlbnNlZXJyb3IiLG4uYm8sbik7bi5MQS5zdWJzY3JpYmUoInF1YWxpdHljaGFuZ2UiLG4uVzQsbik7bi5MQS5zdWJzY3JpYmUoImhlYXJ0YmVhdHBhcmFtcyIsbi5iWixuKTtuLkxBLnN1YnNjcmliZSgia2V5c3RhdHVzZXNjaGFuZ2UiLG4uWVYsbik7bi5MQS5zdWJzY3JpYmUoImN0bXAiLG4uVSxuKTtmb3IobGV0IGsgb2Ygbi5EYi5rZXlzKVc9bi5EYi5nZXQoayksbi5MQS5XbihXKTtuLlMoImh0bWw1X2VtZV9sb2FkZXJfc3luYyIpfHxuLkRiLlRpKCl9fWVsc2Ugbi5QVigiZm10LnVucGxheWFibGUiLDEsIkhUTUw1X05PX0FWQUlMQUJMRV9GT1JNQVRTX0ZBTExCQUNLIiwKInRyZy51cGRhdGVkcm0iKX1yZXR1cm4gdn07CmNkPWZ1bmN0aW9uKG4sVyl7bi5CLmVCJiZuLkIuWnQoKS5OLlFRKG5hKT9TayhuLkIuZUIsVywoKT0+e0p1KG4uQik7bi5CLmVCPXZvaWQgMDtXKCl9KTpXKCl9OwpvQXQ9ZnVuY3Rpb24obil7dmFyIFc9bi52aWRlb0RhdGEuTixEPXtjcG46bi52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSxjOm4uQi5OLmMsY3ZlcjpuLkIuTi5jdmVyfTtmb3IobGV0IFtoLHhdb2YgT2JqZWN0LmVudHJpZXMoRCkpe0Q9aDt2YXIgYj14O2Zvcih2YXIgdiBvZiBPYmplY3QudmFsdWVzKFcuTikpdi5YYi5jSihELGIpO1cuWT8uY0ooRCxiKX12PW4uQjtEPW4udmlkZW9EYXRhO2I9bi5pajtXPW5ldyBnLlQ0Mih2KTt2YXIgaz1OOFooe2hhc1N1YmZyYWdtZW50ZWRGbXA0OkQuaGFzU3ViZnJhZ21lbnRlZEZtcDQsSTI6RC5JMn0pO1cuVj1rO1cuTz1ELm1heFJlYWRBaGVhZE1lZGlhVGltZU1zLzFFM3x8Vy5PO2IuWC5MZygpPT09Yi5wb2xpY3kuTj9XLmpXPTEwOlcualc9RC5taW5SZWFkQWhlYWRNZWRpYVRpbWVNcy8xRTN8fFcualc7Vy5MSz1ELnJlYWRBaGVhZEdyb3d0aFJhdGVNcy8xRTN8fFcuTEs7RC5RNiYmKFcuWD0hMCk7Vy5OZj0hYWQoKTtnLms2KHYpfHwKIWFkKCk/KFcuZSQ9ODM4ODYwOCxXLnZKPTUyNDI4OCxXLklNPTUsVy5ISj0xMDQ4NTc2LFcuVDQ9MS41LFcuTnM9NDU4NzUyMCxsYigpJiYoVy5Ocz03ODY0MzIpLFcuSyo9MS4xLFcuY0oqPTEuMSxXLm1oPSEwKTp2LmomJihXLksqPTEuMyxXLmNKKj0xLjMpO2cub2QmJmcudWIoImNya2V5IikmJihrPXYuTi5jbW9kZWw9PT0iQ0hST01FQ0FTVC9BTkNIT1ZZIixXLmUkPTIwOTcxNTIwLFcudko9MTU3Mjg2NCxrJiYoVy5Ocz04MTI1MDAsVy5iTj0xRTMsVy5Saz01LFcuSEo9MjA5NzE1MikpO2cuYW8mJihXLm1oPSEwKTt2LnN1cHBvcnRzR2FwbGVzc0F1ZGlvKCl8fChXLkRUPSExKTtnLldYJiYoVy5ZJD0hMCk7Vy5zVj12LlMoImh0bWw1X3BlYWtfc2hhdmUiKTtELmhxKCkmJnYuUygiaHRtbDVfZGlzYWJsZV9wZWFrX3NoYXZlX2Zvcl9vbmVzaWUiKSYmKFcuc1Y9ITEpO2s9RC5OPy5YKCk7aWYoSTQoRCkpe1cuZVY9ITA7Vy5VVHx8KFcuZlI9ITApO1cuUFg9ITA7Vy5TVj0hMDtXLllyPQohMDtpZihELmxhdGVuY3lDbGFzcz09PSJVTFRSQUxPVyJ8fEQubGF0ZW5jeUNsYXNzPT09IkxPVyImJiF2LlMoImh0bWw1X2Rpc2FibGVfbG93X3BpcGVsaW5lIikpVy53bz0yLFcuQ3k9NDtXLnNKPUQuZGVmcmFnZ2VkRnJvbVN1YmZyYWdtZW50cztnLnBBKEQpJiYoVy5CVj0hMSk7Vy5DbT1nLkdsKHYpfUQuaXNBZCgpJiYoVy50TT0wLFcuSFk9MCk7Vy5UNz12LlMoImh0bWw1X3VsdHJhX2xvd19sYXRlbmN5X3N1YnNlZ21lbnRfcmVhZGFoZWFkIikmJkQubGF0ZW5jeUNsYXNzPT09IlVMVFJBTE9XIjtXLlc9di5XWCgpO2IuSi5YPUk0KEQpPy41OjA7RC5pc0xpdmVQbGF5YmFjayYmKFcuV2M9Zy5kTSh2LmV4cGVyaW1lbnRzLCJodG1sNV9taW5fc3RhcnR1cF9idWZmZXJlZF9tZWRpYV9kdXJhdGlvbl9mb3JfbGl2ZV9zZWNzIil8fC4yNSxXLm51PSExKTtELk1pKCkmJihXLm51PSExKTtXLnFqPSF2LlMoImh0bWw1X3NhYnJfa2VlcF9hbGxfcXVhbGl0eV9jb25zdHJhaW50cyIpO1cuQjM9CkxBKEQpO2hEKEQpJiYoVy5UNz0hMCxELmxhdGVuY3lDbGFzcz09PSJMT1ciP1cud2E9Zy5kTSh2LmV4cGVyaW1lbnRzLCJodG1sNV9qdW1ib19tb2JpbGVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0Iik6RC5sYXRlbmN5Q2xhc3M9PT0iVUxUUkFMT1ciJiYoVy53YT1nLmRNKHYuZXhwZXJpbWVudHMsImh0bWw1X2p1bWJvX3VsbF9zdWJzZWdtZW50X3JlYWRhaGVhZF90YXJnZXQiKSksVy5iQj0hMCk7RC56VygpJiYoVy53eT0xLjMpO1cuWSQ9Vy5ZJHx8RC5mUjtXLkhpPShXLkhpfHxELkhpKSYmdi5LO1cuVjY9RC5LO3YuV1goKSYmKFcuUmE9ITApO0QuSyYmIWsmJihXLktvPSEwKTtELksmJkQuaXNBZCgpJiYoVy5LKj0xLjYsVy5jSio9MS42KTtPUyhEKSYmKFcuSj1ELnZpZGVvSWQsVy52bj0hMCxXLnN6PTEwMCxELnhoJiZELnhoLmxlbmd0aD4wJiYoVy5iVj1ELnhoKSk7Vy5lQj1ELlo5O1cublM9REsodix7fSxELld8fHZvaWQgMCxReihEKSk7Vy5iZD1SUShEKSYmKGcuTVYodil8fAp0dSh2KSk7Zy5ZTihEKSYmKFcuaj0hMCxXLkU1PWcuazYodikmJiFnLmQ4KCk/ITE6ITAsIVcuZTQmJnYuUygiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl9jbGllbnRfcmVxdWVzdF9jYW5jZWxsYXRpb24iKSYmKFcudlg9ITAsVy5DdT0hMCxXLlRJPWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl9yZXF1ZXN0X2NhbmNlbGxhdGlvbl90aW1lb3V0X21zIil8fDhFMyxXLnN6PWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl90aW1lb3V0X3JldHJ5X2xpbWl0Iil8fDMpLHYuUygiaHRtbDVfc2Ficl9yZXBvcnRfcGFydGlhbF9zZWdtZW50X2VzdGltYXRlZF9kdXJhdGlvbiIpJiYoVy5SRD0hMCksVy5OPSEwLFcudkY9di5TKCJodG1sNV90cmlnZ2VyX2xvYWRlcl93aGVuX2lkbGVfbmV0d29yayIpLFcuSjg9di5TKCJodG1sNV9zYWJyX3BhcnNlX2xpdmVfbWV0YWRhdGFfcGxheWJhY2tfYm91bmRhcmllcyIpLApXLmNMPXYuUygiaHRtbDVfY29uc3VtZV9vbmVzaWVfbmV4dF9yZXF1ZXN0X3BvbGljeV9mb3Jfc2FiciIpLFcuQVY9di5TKCJodG1sNV9sb2dfaGlnaF9yZXNfYnVmZmVyX3RpbWVsaW5lIikmJnYuV1goKSxXLmZDPXYuUygiaHRtbDVfZ2FwbGVzc19zYWJyX2J0bF9sYXN0X3NsaWNlIikmJkFKKEQpLFcucG89di5TKCJodG1sNV9yZXNldF9sYXN0X2FwcGVuZGVkX3NsaWNlX29uX3NlZWsiKSYmQUooRCksSTQoRCkmJihXLlZIPSEwLFcuUyQ9ITAsdi5TKCJodG1sNV9zaW1wbGlmaWVkX2JhY2t1cF90aW1lb3V0X3NhYnJfbGl2ZSIpJiYoVy5DdT0hMCxXLmJOPVcuZlopKSxXLmg4PXYuUygiaHRtbDVfc2VydmVfc3RhcnRfc2Vjb25kc19zZWVrX2Zvcl9wb3N0X2xpdmVfc2FiciIpLFcuczU9di5TKCJodG1sNV9mbHVzaF9pbmRleF9vbl91cGRhdGVkX3RpbWVzdGFtcF9vZmZzZXQiKSxXLlk9Zy5ZTihEKSxXLm9UPXYuUygiaHRtbDVfaWdub3JlX3BhcnRpYWxfc2VnbWVudF9mcm9tX2xpdmVfcmVhZGFoZWFkIiksCnYuUygiaHRtbDVfaW5jbHVkZV9wYXJ0aWFsX3NlZ21lbnRfZm9yX2p1bWJvX2xsIikmJmhEKEQpJiYoVy5vVD0hMSksVy5zMz12LlMoImh0bWw1X3VzZV9ub25fYWN0aXZlX2Jyb2FkY2FzdF9mb3JfcG9zdF9saXZlIiksVy5sbj12LlMoImh0bWw1X2NlbnRyYWxpemVkX3BsYXllcl90aW1lX2xpdmUiKSYmZy5ZTihEKSYmRC5pc0xpdmVQbGF5YmFja3x8di5TKCJodG1sNV91c2VfY2VudHJhbGl6ZWRfcGxheWVyX3RpbWUiKSYmZy5ZTihEKSxXLkdDPXYuUygiaHRtbDVfbG9nX2NlbnRyYWxpemVkX3BsYXllcl90aW1lIiksVy5BeD12LlMoImh0bWw1X3VzZV9jZW50cmFsaXplZF9wbGF5ZXJfdGltZV9maXhlcyIpJiZnLllOKEQpLFcuclc9di5TKCJodG1sNV9jb25zdW1lX29uZXNpZV9zYWJyX3NlZWsiKSxXLnR3PXYuUygiaHRtbDVfZW5hYmxlX3NhYnJfc2Vla19sb2FkZXJfcmVmYWN0b3IiKSxELmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiYoVy5VMT0hMCxXLldLPXYuUygiaHRtbDVfcmVzZXRfc2VydmVyX3N0aXRjaF9zdGF0ZV9mb3Jfbm9uX3NhYnJfc2VlayIpLApXLmllPXYuUygiaHRtbDVfcmVtb3ZlX3NzZGFpX2FwcGVuZF9wYXVzZSIpJiYhRC5ERigpLFcueXc9di5TKCJodG1sNV9zc2RhaV9sb2dfc3NldnRfaW5fbG9hZGVyX3RpbWVycyIpKSxXLkVaPXYuV1goKSxXLmxhdGVuY3lDbGFzcz1ELmxhdGVuY3lDbGFzcyxXLm1EPSFELnpXKCkmJnYuUygiaHRtbDVfcHJlYnVmZmVyX2luc3RyZWFtX21lZGlhX3ZvZCIpKTtXLnlFPWcubU8oRCk7Vy5Rcj12LlMoImh0bWw1X2VuYWJsZV9zYWJyX290Zl9pbl9jbGllbnQiKTtpZihELk5QKCl8fEQuaXNBZCgpKVcuZ089ITE7RC56VygpJiZ2LmV4cGVyaW1lbnRzLlp0KCkuTi5RUShqdk0pJiYoYj1ELmxDPy5nZXQoImlkIikpJiZiLmluY2x1ZGVzKCIlN0UiKSYmKFcuV2k9ITApO1NKKHYuVyxBVC5CSVRSQVRFKSYmKFcuTnM9TmFOKTtpZihiPWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfcmVxdWVzdF9zaXplX21heF9rYiIpKVcuSEo9YioxMDI0O2lmKHYuVy5KKVcucFI9IjsgIitBVC5FWFBFUklNRU5UQUwubmFtZSsKIj1hbGxvd2VkIjtlbHNlIGlmKHYuZXhwZXJpbWVudHMudzAoKS5OLlFRKENSaSkmJmcuZDgoKSl7bGV0IHtuYW1lOmgsdmFsaWQ6eH09QVQuVFVOTkVMTU9ERTtXLnBSPWA7ICR7aH09JHt4fWB9dj1ELnNlcnZlclBsYXliYWNrU3RhcnRDb25maWc7dj8uZW5hYmxlJiZ2Py5wbGF5YmFja1N0YXJ0UG9saWN5JiYoVy5GZT0hMCxsUyhXLHYucGxheWJhY2tTdGFydFBvbGljeSwyKSk7dj1CNFUobik7bi5EYi5UaSgpO2E6e0Q9bi50Yi5RcDtpZihiPW4udmlkZW9EYXRhLnZpZGVvSWQpaWYoaz1ELk4uZ2V0KGIpKXtELk4ucmVtb3ZlKGIpO0Q9azticmVhayBhfUQ9dm9pZCAwfW4ubG9hZGVyPW5ldyBnLlc4KG4sbi5paixXLG4udmlkZW9EYXRhLk4sbi52aWRlb0RhdGEuVyxUWShuKSx2LG4udmlkZW9EYXRhLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpLEQsbi52aWRlb0RhdGEuelIpO2lmKG4udmlkZW9EYXRhLlMoImh0bWw1X2Rpc2FibGVfcHJlbG9hZF9mb3Jfc3NkYWlfd2l0aF9wcmVyb2xsIikmJgpuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmbi5PUCgpKVc9ITA7ZWxzZSBpZihXPW4uTkwpVz1nLms2KG4uQikmJm4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiYoIW4uQi5TKCJodG1sNV9hbGxvd19tdWx0aXZpZXdfdGlsZV9wcmVsb2FkIil8fCFuLnZpZGVvRGF0YS5saXZlUHJlbG9hZHx8bi5CLlp0KCkuTi5RUShIcCkpO24ubG9hZGVyLmluaXRpYWxpemUobi5nZXRDdXJyZW50VGltZSgpLFRZKG4pLFcpO24udmlkZW9EYXRhLnByb2JlVXJsJiYobi5sb2FkZXIuQnY9bi52aWRlb0RhdGEucHJvYmVVcmwpO2lmKG4uaWwubGVuZ3RofHxuLk5MKW4udmlkZW9EYXRhLmNvdG58fG4ucEMoITEpO21vKG4uZGEsbi5sb2FkZXIpO24uc1UmJihuLmxvYWRlci5FVyhuLnNVKSxuLlUoInNkYWkiLHtzZGw6MX0pKTtnLm1NKG4udmlkZW9EYXRhKSYmKG49bi5sb2FkZXIsbi5wb2xpY3kueGg9bi5wb2xpY3kuVnMpfTsKUWE9ZnVuY3Rpb24obil7bi5xTigpO2lmKCFuLmpILmZpbmlzaGVkJiZuLkxSLmZpbmlzaGVkJiYhbi5wbGF5ZXJTdGF0ZS5OKDEyOCkmJiFuLmlsLmxlbmd0aCl7aWYoIW4ud0kuc3RhcnRlZCl7dmFyIFc9bi53STtXLnN0YXJ0ZWQ9ITA7Vy5KKCl9aWYoIW4uSm4oKSl7bi5sb2FkZXImJihuLm5VPW4ubG9hZGVyLnpzKCEwKT4wKTtuLmpILmZpbmlzaGVkfHwobi5qSC5maW5pc2hlZD0hMCk7Vz1uLlMoImh0bWw1X29uZXNpZV9saXZlIikmJm4ubG9hZGVyJiYhaXNOYU4obi5sb2FkZXIuQ0gpOyFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8bi52aWRlb0RhdGEuVEM+MCYmIUk0KG4udmlkZW9EYXRhKXx8V3x8SWMobil8fChuLnNlZWtUbyhuLnJJKCkse3FkOiJ2aWRlb3BsYXllcl9yZWFkeWluZyIsc2Vla1NvdXJjZToxOH0pLG4uaXNCYWNrZ3JvdW5kKCkmJihuLlRsPSEwKSk7Vz1uLkJYO2lmKFcucW9lKXtXPVcucW9lO2xldCBiPVcucHJvdmlkZXIudmlkZW9EYXRhLHY9Vy5wcm92aWRlci5COwpmb3IodmFyIEQgb2Ygdi5reSluQyhXLEQpO2lmKFcucHJvdmlkZXIuUygiaHRtbDVfZW5hYmxlX3FvZV9jYXRfbGlzdCIpKWZvcihsZXQgayBvZiBiLmtLKW5DKFcsayk7ZWxzZSBiLmt5JiZuQyhXLFcucHJvdmlkZXIudmlkZW9EYXRhLmt5KTtiLnpXKCkmJihEPWIuTixJNChiKSYmbkMoVywibWFuaWZlc3RsZXNzIiksRCYmb28oRCkmJm5DKFcsYGxpdmUtc2VnbWVudC0ke29vKEQpLnRvRml4ZWQoMSl9YCkpO2cuWU4oYik/bkMoVywic2FiciIpOlcueiQoeHAoYikpO2lmKHB6KGIpfHxiLkRGKCkpYi5ERigpJiZuQyhXLCJzc2EiKSxuQyhXLCJsaWZhIik7TkkoYikmJm5DKFcsImNkbSIpO2IuZ2F0ZXdheUV4cGVyaW1lbnRHcm91cCYmKEQ9Yi5nYXRld2F5RXhwZXJpbWVudEdyb3VwLEQ9PT0iRVhQRVJJTUVOVF9HUk9VUF9TUElLWV9BRF9CUkVBS19FWFBFUklNRU5UIj9EPSJzcGthZHRydCI6RD09PSJFWFBFUklNRU5UX0dST1VQX1NQSUtZX0FEX0JSRUFLX0NPTlRST0wiJiYoRD0KInNwa2FkY3RybCIpLG5DKFcsRCkpO3YuViE9PSJ5dCImJlcuSi5zZXQoImxlbiIsW2IubGVuZ3RoU2Vjb25kcy50b0ZpeGVkKDIpXSk7Yi5jb3RuJiYhT1MoYikmJlF1KFcsITApO3YuV1goKSYmKEQ9UlFVKCkpJiZXLlUoImNibHQiLHttOkR9KTt2LlMoImh0bWw1X2xvZ19zY3JlZW5fZGlhZ29uYWwiKSYmVy5VKCJjYmx0ZGlhZyIse3Y6d2luZG93Lkg1dmNjU2NyZWVuPy5HZXREaWFnb25hbD93aW5kb3cuSDV2Y2NTY3JlZW4uR2V0RGlhZ29uYWwoKTowfSl9bi5XSigicGxheWJhY2tyZWFkeSIpO2cudlAoInBsX2MiLG4ubVEudGltZXJOYW1lKXx8KG4ubVEudGljaygicGxfYyIpLGcuZ18oInBsX2MiLHZvaWQgMCwidmlkZW9fdG9fYWQiKSk7Zy52UCgicGJyIixuLm1RLnRpbWVyTmFtZSl8fChuLm1RLnRpY2soInBiciIpLGcuZ18oInBiciIsdm9pZCAwLCJ2aWRlb190b19hZCIpKX19fTsKVmE9ZnVuY3Rpb24obixXKXtuLnBsYXllclN0YXRlLk4oMTI4KXx8KG4uQk4od1Mobi5wbGF5ZXJTdGF0ZSwxMDI4LDkpKSxuLlUoImRvbXBhdXNlZCIse3I6V30pLG4uV0ooIm9uQXV0b3BsYXlCbG9ja2VkIikpfTsKZy5EVD1mdW5jdGlvbihuKXt2YXIgVz1UWShuKTtyZXR1cm4geEooVyl8fCFuLkRoP251bGw6Zy5sXyhuLkRoLk4udmlkZW9JbmZvcyxEPT5XLlgoRCkpfTsKdVY9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkJYLGg9bi52aWRlb0RhdGE7aC5KPUQ7dmFyIHg9Zy5EVChuKTtEPW5ldyBGck0oRCxXLHg/eC5pdGFnOiIiLGIsdik7aWYoay5xb2Upe2s9ay5xb2U7Yj12PWcuUmsoay5wcm92aWRlcik7eD1bRC5OLmlkLEQuSixrLnM1LEQucmVhc29uXTtrLkR0fHx4LnB1c2goTFRiKGssRCkpO0QudG9rZW4mJngucHVzaChELnRva2VuKTtnLndqKGssYiwidmZzIix4KTtrLnM1PUQuTi5pZDt4PWsucHJvdmlkZXIuTC5nZXRQbGF5ZXJTaXplKCk7aWYoeC53aWR0aD4wJiZ4LmhlaWdodD4wKXt4PVtNYXRoLnJvdW5kKHgud2lkdGgpLE1hdGgucm91bmQoeC5oZWlnaHQpXTtsZXQgTD1nLkhfKCk7TD4xJiZ4LnB1c2goTCk7Zy53aihrLGIsInZpZXciLHgpfWsuRHR8fChrLnByb3ZpZGVyLkIuV1goKSYmKG5DKGssInJxcyIpLG5DKGssInJxczIiKSksay5wcm92aWRlci52aWRlb0RhdGEuTiYmR18oay5wcm92aWRlci52aWRlb0RhdGEuTikmJmsuSi5zZXQoInByZWxvYWQiLApbIjEiXSkpO2suRHQ9ITA7ay5WPSEwO0QucmVhc29uPT09Im0iJiYrK2suc1Y9PT0xMDAmJmJtKGssMik7Zy53aihrLHYsInZwcyIsW2suTl0pO2suZSR8fGsucmVwb3J0U3RhdHModil9RD1uLmhVO0QuSj0wO0QuTj0wO24uV0ooImludGVybmFsdmlkZW9mb3JtYXRjaGFuZ2UiLGgsVz09PSJtIil9OwpUWT1mdW5jdGlvbihuKXtpZihuLkRoKXt2YXIgVz1uLmhVO3ZhciBEPW4uRGg7bj1uLmcwKCk7dmFyIGI9Wm1oKFcpO2lmKHhKKGIpKXtpZihiPVcuTWgoRCkuY29tcG9zZSh5SXIoVyxEKSkuY29tcG9zZShpbXIoVyxEKSkuY29tcG9zZShaVihXLEQudmlkZW9EYXRhKSkuY29tcG9zZShVWChXLEQudmlkZW9EYXRhLEQpKS5jb21wb3NlKHkzKFcsRCkpLmNvbXBvc2UoaW0oVyxEKSkseEoobil8fFcuUygiaHRtbDVfYXBwbHlfcGJyX2NhcF9mb3JfZHJtIikpe3ZhciB2PWIuY29tcG9zZTtpZihXLlMoImh0bWw1X2Rpc2FibGVfdXN0cmVhbWVyX2NvbnN0cmFpbnRfZm9yX3NhYnIiKSYmZy5ZTihELnZpZGVvRGF0YSkpdmFyIGs9WVo7ZWxzZSBrPVcuTC51dSgpLFcuUygiaHRtbDVfdXNlX3ZpZGVvX3F1YWxpdHlfY2FwX2Zvcl91c3RyZWFtZXJfY29uc3RyYWludCIpJiZrJiZrLlFvPjAmJnhKKEQudmlkZW9EYXRhLkIzKSYmKGs9ay5RbyxELnZpZGVvRGF0YS5CMz1uZXcgYjMoMCxrLCExLAoidSIpKSxrPUQudmlkZW9EYXRhLkIzO2I9di5jYWxsKGIsayl9fWVsc2UgVy5TKCJodG1sNV9wZXJmX2NhcF9vdmVycmlkZV9zdGlja3kiKSYmKGI9Yi5jb21wb3NlKHkzKFcsRCkpKTtiPWIuY29tcG9zZShpbShXLEQpKTtXPUQudmlkZW9EYXRhLkxLLmNvbXBvc2UoYikuY29tcG9zZShELnZpZGVvRGF0YS5MSCkuY29tcG9zZShuKX1lbHNlIFc9WVo7cmV0dXJuIFd9Owp3c2k9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkJYLGg9bi52aWRlb0RhdGE7aWYoRCE9PWguWCl7dmFyIHg9IWguWDtoLlg9RDt2YXIgTD1XPT09Im0ifHxXPT09InQiO0x8fChXPXg/ImkiOiJhIik7Vz1uZXcgRnJNKEQsVywiIixiLHYpO2lmKGsucW9lKXtrPWsucW9lO0Q9Zy5SayhrLnByb3ZpZGVyKTtsZXQgRz1bXTtpZihXLk4uaWQhPT1rLkZGKXtiPVtXLk4uaWQsay5GRixXLnJlYXNvbl07dj1HO3ZhciBlPXYucHVzaDtsZXQgcj1bXSxOPWsucHJvdmlkZXIudmlkZW9EYXRhLmhnLk4sSD1XLk4uYXVkaW8/Lko/P04/LlFPO0g9PW51bGx8fGlzTmFOKEgpfHxyLnB1c2goYGZsLiR7SH1gKTtOJiYoTi5mb3JtYXRJZCYmTi5mb3JtYXRJZCE9PVcuTi5pZCYmay5VKCJhZ2MiLHtxb2VtaXNtYXRjaDoiMSIsYWdjX2ZtdDpOLmZvcm1hdElkLGFmbXQ6Vy5OLmlkfSksTi5weT09bnVsbHx8aXNOYU4oTi5weSl8fHIucHVzaChgdGwuJHtOLnB5fWApLE4uRHk9PW51bGx8fGlzTmFOKE4uRHkpfHwKci5wdXNoKGB2Zy4ke04uRHl9YCksTi53RyE9PTAmJnIucHVzaChgbm0uJHtOLndHfWApKTtlLmNhbGwodiwuLi5yKTtXLnJlYXNvbj09PSJpIiYmRy5wdXNoKExUYihrLFcpKTtHLmxlbmd0aD4wJiZiLnB1c2goRy5qb2luKCI7IikpO1cudG9rZW4mJmIucHVzaChXLnRva2VuKTtnLndqKGssRCwiYWZzIixiKTtrLkZGPVcuTi5pZH19bi5XSigiaW50ZXJuYWxhdWRpb2Zvcm1hdGNoYW5nZSIsaCwheCYmTCl9fTsKTXl4PWZ1bmN0aW9uKG4pe3ZhciBXPSJsb2Fkc3RhcnQgbG9hZGVkbWV0YWRhdGEgcGxheSBwbGF5aW5nIHByb2dyZXNzIHBhdXNlIGVuZGVkIHN1c3BlbmQgc2Vla2luZyBzZWVrZWQgdGltZXVwZGF0ZSBkdXJhdGlvbmNoYW5nZSByYXRlY2hhbmdlIGVycm9yIHdhaXRpbmcgcmVzaXplIi5zcGxpdCgiICIpO2ZvcihsZXQgRCBvZiBXKW4uczkuTk4obi5tZWRpYUVsZW1lbnQsRCxuLmlVLG4pO24uQi5EVCYmbi5tZWRpYUVsZW1lbnQuSygpJiYobi5zOS5OTihuLm1lZGlhRWxlbWVudCwid2Via2l0cGxheWJhY2t0YXJnZXRhdmFpbGFiaWxpdHljaGFuZ2VkIixuLnZrLG4pLG4uczkuTk4obi5tZWRpYUVsZW1lbnQsIndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkIixuLk9rLG4pKX07Ck9VaD1mdW5jdGlvbihuKXtpZihuLm1lZGlhU291cmNlKWlmKG4uSzEoKSxuLm1lZGlhU291cmNlLkspdHJ5e24uQi5XWCgpJiZuLlUoInJtcyIse2w6InZwcm1zIixzcjpuLnBnKCkscnM6bi5tZWRpYVNvdXJjZS5XKCl9KSxuLm1lZGlhU291cmNlLmNsZWFyKCksbi5tZWRpYUVsZW1lbnQ/LkhKKG4ubWVkaWFTb3VyY2UpLG4ubWVkaWFTb3VyY2U9bnVsbH1jYXRjaChEKXt2YXIgVz1uZXcgZy5ReChgRXJyb3Igd2hpbGUgY2xlYXJpbmcgTWVkaWEgU291cmNlIGluIFZpZGVvUGxheWVyOiAke0QubmFtZX0sICR7RC5tZXNzYWdlfWApO1c9QiQoVyk7bi5oYW5kbGVFcnJvcihXKTtuLm15KCl9ZWxzZSBuLm15KCl9Owpkcz1mdW5jdGlvbihuKXtuLkxBJiYobi5MQS5kaXNwb3NlKCksbi5MQT1udWxsKX07ClJwVT1mdW5jdGlvbihuKXtuLm1lZGlhRWxlbWVudCYmbi5tZWRpYUVsZW1lbnQuRTgoKSYmKG4uVFY9KDAsZy5SKSgpKTtuLkIudEc/Zy5uJCgoKT0+e2J2KG4pfSwwKTpidihuKX07CmJ2PWZ1bmN0aW9uKG4pe2lmKCFuLm1lZGlhU291cmNlPy5nWCgpKXtpZihuLm1lZGlhRWxlbWVudCl0cnl7bi5Mdz1uLm1lZGlhRWxlbWVudC5wbGF5VmlkZW8oKX1jYXRjaChXKXtWYShuLGBlcnIuJHtXfWApfWlmKG4uTHcpe2xldCBXPW4uTHc7Vy50aGVuKHZvaWQgMCxEPT57aWYoIShuLnBsYXllclN0YXRlLk4oNCl8fG4ucGxheWVyU3RhdGUuTigyNTYpfHxuLkx3IT09V3x8RCYmRC5uYW1lPT09IkFib3J0RXJyb3IiJiZELm1lc3NhZ2UmJkQubWVzc2FnZS5pbmNsdWRlcygibG9hZCIpKSl7bGV0IGI9InByb21pc2UiO0QmJkQubmFtZSYmKGIrPWA7bS4ke0QubmFtZX1gKTtWYShuLGIpO24uVzE9ITA7bi52aWRlb0RhdGEuZkI9ITB9fSl9fX07CkE2aj1mdW5jdGlvbihuLFc9ITEpe2lmKG4ubWVkaWFTb3VyY2UpcmV0dXJuIG4ubWVkaWFTb3VyY2UuajtRdmkobixXKTtyZXR1cm4gbi5VeigpPy50dygpfHxudWxsfTsKZDEyPWZ1bmN0aW9uKG4sVz0hMSl7dmFyIEQ9bnVsbDtuLnZpZGVvRGF0YS5XPy5OKCk/KEQ9QTZqKG4sVyksbi5sb2FkZXI/LnJlc3VtZSgpKTood3Mobiksbi52aWRlb0RhdGEuY0omJihEPW4udmlkZW9EYXRhLmNKLkooKSkpO3JldHVybiBEfTsKYXZaPWZ1bmN0aW9uKG4sVyl7aWYoVy5OLnZpZGVvLnF1YWxpdHk9PT0iYXV0byImJlcua0woKS5XKCkpaWYobi5TKCJodG1sNV9obHNfcmVwb3J0X3BzZXVkb19pdGFnIikmJm4udmlkZW9EYXRhLmhsc3ZwKXt2YXIgRD1uLlVKKCk7aWYoRCYmRC52aWRlb0hlaWdodD4wJiZELnZpZGVvV2lkdGg+MCl7dmFyIGI9RC52aWRlb0hlaWdodDtEPUQudmlkZW9XaWR0aDthOntuPW4uTEE/Lk4uZmxhdm9yPT09ImZhaXJwbGF5Ij9WeVU6YzZaO2Zvcih2IG9mIG4paWYoYj49di5taW5IZWlnaHQpe3ZhciB2PXYuaXRhZzticmVhayBhfXY9IiJ9aWYodilyZXR1cm4gbmV3IG11KHYsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse3ZpZGVvOm5ldyBIUihELGIpfSl9fWVsc2UgaWYobi52aWRlb0RhdGEubnUpZm9yKGIgb2Ygbi52aWRlb0RhdGEubnUpaWYoYi5nZXRIZWlnaHQoKT09PW4uejEmJmIuTi52aWRlby5xdWFsaXR5IT09ImF1dG8iKXJldHVybiBiLmtMKCk7cmV0dXJuIFcua0woKX07Cm5CQz1mdW5jdGlvbihuKXtyZXR1cm4hIShuLlMoImh0bWw1X25hdGl2ZV9hdWRpb190cmFja19zd2l0Y2hpbmciKSYmZy5HbiYmbi52aWRlb0RhdGEuSj8uVygpKX07ClcxaT1mdW5jdGlvbihuKXtpZighbkJDKG4pKXJldHVybiExO249bi5tZWRpYUVsZW1lbnQ/LmF1ZGlvVHJhY2tzKCk7cmV0dXJuISEobiYmbi5sZW5ndGg+MSl9OwpiNHQ9ZnVuY3Rpb24obil7dmFyIFc9RGdDKG4pO2lmKFcpe3ZhciBEPXY4W1ddfHxXO3JldHVybiBuLnZpZGVvRGF0YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpLmZpbmQoYj0+Yi5rWi5nZXROYW1lKCk9PT1EKX19OwpEZ0M9ZnVuY3Rpb24obil7aWYobj1uLm1lZGlhRWxlbWVudD8uYXVkaW9UcmFja3MoKSlmb3IobGV0IFc9MDtXPG4ubGVuZ3RoOysrVyl7bGV0IEQ9bltXXTtpZihELmVuYWJsZWQpcmV0dXJuIEQubGFiZWx9fTsKdkIyPWZ1bmN0aW9uKG4pe3ZhciBXPW4ubWVkaWFFbGVtZW50Py5hdWRpb1RyYWNrcygpO2lmKFcpe3ZhciBEPVtdO2ZvcihsZXQgdj0wO3Y8Vy5sZW5ndGg7Kyt2KXt2YXIgYj1XW3ZdO2I9bmV3IFdBKGIubGFiZWwsbmV3IHdQKHY4W2IubGFiZWxdfHxiLmxhYmVsLGIubGFiZWwsITEpKTtELnB1c2goYil9bi52aWRlb0RhdGEudm49RH19OwpCNFU9ZnVuY3Rpb24obil7dmFyIFcsRD1uLnZpZGVvRGF0YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpLGI9bi5CLkhKO2ImJihXPUQuZmluZCh2PT52LmdldExhbmd1YWdlSW5mbygpLmlkPT09YikpOwppZihuLkIuZXhwZXJpbWVudHMuRXEoImVuYWJsZV9hdWRpb19kZXNjcmlwdGlvbl9zZXR0aW5nIikmJmcubzkoKS5RUSgxOTgpKWZvcihsZXQgdiBvZiBEKWlmKHYuail7Vz12O2JyZWFrfW4uWnQoKS5OLlFRKGtxTSkmJm4udmlkZW9EYXRhLmNvdG4mJihXPUQuZmluZCh2PT4hIXYuVikpOwpXfHwobj1uLmdldEF1ZGlvVHJhY2soKSxXPW4ua1ouaXNEZWZhdWx0P3ZvaWQgMDpuKTtyZXR1cm4gV307ClF2aT1mdW5jdGlvbihuLFc9ITEpe3RyeXtnLmQ4KCkmJm4udmlkZW9EYXRhLm1WKCkmJm4ubWVkaWFFbGVtZW50LlBYKCk7bGV0IGI9bi5veSgpLHY9bi5DZCgpO2lmKG4ubWVkaWFFbGVtZW50LmlzVmlldygpJiZuLm1lZGlhRWxlbWVudC5NZCYmKCFuLkZTKCl8fCFuLm1lZGlhRWxlbWVudC5ZJChiLHYpKSl7bi5CLldYKCkmJm4uVSgidXNtIix7ZmFsbGJhY2s6ITAscmVhc29uOm4uRlMoKT8iY29kZWMiOiJwb2xpY3kifSk7bGV0IGs9bi5tZWRpYUVsZW1lbnQubWVkaWFFbGVtZW50O2s/LlBYKCk7az8uc3RvcFZpZGVvKCk7bi5kYS5zZXRNZWRpYUVsZW1lbnQobnVsbCk7bi5zZXRNZWRpYUVsZW1lbnQoaywhMCl9dmFyIEQ9bi5tZWRpYUVsZW1lbnQuVXooYix2KX1jYXRjaChiKXtpZihLQyhuLkFJLCJodG1sNS5taXNzaW5nYXBpIix7dXBkYXRlTXM6IjEifSkpcmV0dXJuO2NvbnNvbGUuZXJyb3IoIndpbmRvdy5VUkwgb2JqZWN0IG92ZXJ3cml0dGVuIGJ5IGV4dGVybmFsIGNvZGUiLApiKTtuLlBWKCJodG1sNS5taXNzaW5nYXBpIiwyLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsInVwZGF0ZU1zLjEiKTtyZXR1cm59bi5ubShELCExLCExLFcpfTsKaExaPWZ1bmN0aW9uKG4sVz0hMSl7aWYobi5sb2FkZXIpe24udmlkZW9EYXRhLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiZuLmxvYWRlci5rSSgpO2xldCBEPW4uZ2V0Q3VycmVudFRpbWUoKS1uLlNXKCk7bi5sb2FkZXIuc2VlayhELHtBTTpXfSkuc1AoKCk9Pnt9KX1lbHNlIGNkKG4sKCk9PntuLnFOKCl8fG4ubG9hZGVyfHxvQXQobil9KX07CkwxYj1mdW5jdGlvbihuLFcsRD0hMSxiPSExLHY9ITEpeyFuLm1lZGlhU291cmNlfHxXJiZuLm1lZGlhU291cmNlIT09V3x8KFc9bi5nZXREdXJhdGlvbigpLCFXJiZJNChuLnZpZGVvRGF0YSkmJihXPTI1MjAwLG4ubG4oKSYmKFc9NDY4MDApKSxuLm1lZGlhU291cmNlLmlzVmlldz9XPm4ubWVkaWFTb3VyY2UuZ2V0RHVyYXRpb24oKSYmeGdaKG4sVyk6eGdaKG4sVyksVz0oKT0+e24ucU4oKXx8KEltaShuLmxvYWRlcixuLm1lZGlhU291cmNlLEQsYix2KSxuLldKKCJtZWRpYXNvdXJjZWF0dGFjaGVkIikpfSxuLmxvYWRlcj9XKCk6Y2QobixXKSl9Owp4Z1o9ZnVuY3Rpb24obixXKXtuLm1lZGlhU291cmNlJiYobi5tZWRpYVNvdXJjZS5hVChXKSxuLmxvYWRlcj8uaFcoVykpfTsKZUxoPWZ1bmN0aW9uKG4sVyl7aWYobi5CLldYKCkmJm4ubWVkaWFFbGVtZW50KXtsZXQgRD1uLm1lZGlhRWxlbWVudC55cigpO0Qub210PShuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpK24uU1coKSkudG9GaXhlZCgzKTtELnBzPW4ucGxheWVyU3RhdGUuc3RhdGUudG9TdHJpbmcoMTYpO0QucnQ9KGcuUmsobi5CWC5wcm92aWRlcikqMUUzKS50b0ZpeGVkKCk7RC5lPVc7bi5CRltuLmtRKyslNV09RH19OwpnQnI9ZnVuY3Rpb24obil7aWYoZy51YigiY29iYWx0IikmJmcudWIoIm5pbnRlbmRvIHN3aXRjaCIpKXt2YXIgVz0hd2luZG93Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDcyMHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyMDBkcGkpIikubWF0Y2hlcztuLlUoIm54ZG9jayIse2Q6V30pfX07ClhhUz1mdW5jdGlvbihuKXtEcihuLm53KTtrUChuKXx8KG4ubnc9VzAoKCk9PmtQKG4pLDEwMCkpfTsKa1A9ZnVuY3Rpb24obil7dmFyIFc9bi5tZWRpYUVsZW1lbnQ7VyYmbi5BbCYmIW4udmlkZW9EYXRhLlkmJiFnLnZQKCJ2ZnAiLG4ubVEudGltZXJOYW1lKSYmVy5YKCk+PTImJiFXLmlzRW5kZWQoKSYmTSQoVy5KKCkpJiZuLm1RLnRpY2soInZmcCIpO3JldHVybihXPW4ubWVkaWFFbGVtZW50KSYmIW4udmlkZW9EYXRhLlkmJlcuZ2V0RHVyYXRpb24oKT4wJiYoVy5pc1BhdXNlZCgpJiZXLlgoKT49MiYmTSQoVy5KKCkpJiYoZy52UCgicGJwIixuLm1RLnRpbWVyTmFtZSl8fG4ubVEudGljaygicGJwIiksIW4udmlkZW9EYXRhLkR0fHxuLlZ0fHxXLmlzU2Vla2luZygpfHwobi5WdD0hMCxuLldKKCJvblBsYXliYWNrUGF1c2VBdFN0YXJ0IikpKSxXPVcuZ2V0Q3VycmVudFRpbWUoKSxxOShuLlZlLFcpJiYoIW4udmlkZW9EYXRhLlJvfHwhbi5wbGF5ZXJTdGF0ZS5OKDE2KSkpPyhuLmUyKCksITApOiExfTsKaDU9ZnVuY3Rpb24obixXKXtuLkIuUygiaHRtbDVfbG9nX3JlYnVmZmVyX3JlYXNvbiIpJiYoVz17cjpXLGxhY3Q6Zy52SSgpfSxuLm1lZGlhRWxlbWVudCYmKFcuYmg9bi5tZWRpYUVsZW1lbnQuenMoKSksbi5VKCJidWZyZWFzb24iLFcpKX07CnFhVT1mdW5jdGlvbihuKXtuLkJYLm9uUHJvZ3Jlc3MoKTtpZihnLkRQKG4udmlkZW9EYXRhKSYmRGF0ZS5ub3coKT5uLmhhKzYyODMpe2lmKG4udmlkZW9EYXRhLk4mJiFFayhuLnZpZGVvRGF0YS5OKSl7dmFyIFc9bi5CWDtpZihXLnFvZSl7Vz1XLnFvZTt2YXIgRD1XLnByb3ZpZGVyLkwuSEsoKSxiPWcuUmsoVy5wcm92aWRlcik7VnUoVyxiLEQpO2xldCB2PUQuVztEPUQuWDtpc05hTih2KXx8KCFpc05hTihEKSYmRD9nLndqKFcsYiwiZTJlbCIsW3YudG9GaXhlZCgzKSxELnRvRml4ZWQoMyldKTpnLndqKFcsYiwiZTJlbCIsW3YudG9GaXhlZCgzKV0pKX19Vz1nLkdsKG4uQik7Yj1uLlMoImh0bWw1X2Fsd2F5c19sb2dfcmF3bGF0Iik7KFd8fGIpJiZuLlUoInJhd2xhdCIse2w6Wjcobi5GNSwicmF3bGl2ZWxhdGVuY3kiKS50b0ZpeGVkKDMpfSk7bi5oYT1EYXRlLm5vdygpfW4udmlkZW9EYXRhLkomJm4udmlkZW9EYXRhLkouVygpJiYoVz1uLlVKKCkpJiZXLnZpZGVvSGVpZ2h0IT09Cm4uejEmJihuLnoxPVcudmlkZW9IZWlnaHQsdVYobiwiYSIsYXZaKG4sbi52aWRlb0RhdGEuY0opKSl9OwpHcU09ZnVuY3Rpb24obil7aWYobi5CLldYKCkpe24uQkYuc29ydCgoVyxEKT0+K1cucnQtK0QucnQpOwpmb3IobGV0IFcgb2Ygbi5CRiluLlUoInZwZSIsT2JqZWN0LmFzc2lnbih7dDpXLnJ0fSxXKSk7bi5CRj1bXTtuLmtRPTB9fTsKenBpPWZ1bmN0aW9uKG4sVyl7bi5tUS50aWNrKCJ2dGEiKTtnLmdfKCJ2dGEiLHZvaWQgMCwidmlkZW9fdG9fYWQiKTtuLmdldEN1cnJlbnRUaW1lKCk+MCYmUnlpKG4uZGEsbi5nZXRDdXJyZW50VGltZSgpKTtuLm1lZGlhRWxlbWVudC5EKFcpO24ubWVkaWFTb3VyY2UmJmJRKDQpOyFuLnZpZGVvRGF0YS5ZJiZuLnBsYXllclN0YXRlLmlzT3JXaWxsQmVQbGF5aW5nKCkmJm4uQl8uc3RhcnQoKTtuQkMobikmJihXPW4ubWVkaWFFbGVtZW50Py5hdWRpb1RyYWNrcygpKSYmKFcub25hZGR0cmFjaz0oKT0+e3ZCMihuKX0sVy5vbnJlbW92ZXRyYWNrPSgpPT57dkIyKG4pfSxXLm9uY2hhbmdlPSgpPT57bi5XSigiaW50ZXJuYWxhdWRpb2Zvcm1hdGNoYW5nZSIsbi52aWRlb0RhdGEsITApfSl9Owp0aVM9ZnVuY3Rpb24obil7bj1uLmFwaS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpO249bi5pc0N1ZWQoKXx8bi5pc0Vycm9yKCk/Im5vbmUiOm4uaXNPcldpbGxCZVBsYXlpbmcoKT8icGxheWluZyI6InBhdXNlZCI7bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlPW59OwokZ0M9ZnVuY3Rpb24obil7aWYobi5OKWlmKG4uYXBpLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrKXRyeXt4UCh7ZHVyYXRpb246SW5maW5pdHl9KX1jYXRjaChXKXt4UCgpfWVsc2V7aWYobi5hcGkuZ2V0VmlkZW9EYXRhKCk/LnpLKCkpe2xldCBXPW4uYXBpLmdldFByb2dyZXNzU3RhdGUoKS5zZWVrYWJsZUVuZCxEPU1hdGgubWluKG4uYXBpLmdldEN1cnJlbnRUaW1lKCksVyk7aWYoVyYmTnVtYmVyLmlzRmluaXRlKEQpKXt4UCh7ZHVyYXRpb246VyxwbGF5YmFja1JhdGU6bi5hcGkuZ2V0UGxheWJhY2tSYXRlKCkscG9zaXRpb246RH0pO3JldHVybn19eFAoKX19OwpMYT1mdW5jdGlvbihuLFcpe3RyeXtuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFjdGlvbkhhbmRsZXIobixXKX1jYXRjaChEKXt9fTsKclBoPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2lmKCFufHwhbi50aHVtYm5haWxzKXJldHVybiBXO2ZvcihsZXQgRCBvZiBuLnRodW1ibmFpbHMpRC51cmwmJighRC53aWR0aHx8RC53aWR0aDw9MHx8IUQuaGVpZ2h0fHxELmhlaWdodDw9MHx8Zy5qSShELnVybCkmJlcucHVzaCh7c3JjOkQudXJsfHwiIixzaXplczpgJHtELndpZHRofXgke0QuaGVpZ2h0fWAsdHlwZToiaW1hZ2UvanBlZyJ9KSk7cmV0dXJuIFd9OwpzVVM9ZnVuY3Rpb24obil7TGEoInBsYXkiLCgpPT57bi5hcGkucGxheVZpZGVvKCk7ZWwobil9KTsKTGEoInBhdXNlIiwoKT0+e24uYXBpLnBhdXNlVmlkZW8oKTtlbChuKX0pOwpMYSgic2Vla2JhY2t3YXJkIiwoKT0+e24uYXBpLnNlZWtCeSgtNSpuLmFwaS5nZXRQbGF5YmFja1JhdGUoKSk7ZWwobil9KTsKTGEoInNlZWtmb3J3YXJkIiwoKT0+e24uYXBpLnNlZWtCeSg1Km4uYXBpLmdldFBsYXliYWNrUmF0ZSgpKTtlbChuKX0pOwpMYSgic2Vla3RvIixXPT57Vz1XLnNlZWtUaW1lO1chPW51bGwmJm4uYXBpLnNlZWtUbyhXKTtlbChuKX0pfTsKZWw9ZnVuY3Rpb24obil7bi5hcGkuUygid2ViX3Jlc2V0X2xhY3Rfb25fbWVkaWFfYWN0aW9ucyIpJiZuLmFwaS51cGRhdGVMYXN0QWN0aXZlVGltZSgpfTsKeFA9ZnVuY3Rpb24obil7bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKG4pfTsKcGFNPWZ1bmN0aW9uKG4pe2lmKG49bi5hcGkuZ2V0VmlkZW9EYXRhKCk/LmdldFBsYXllclJlc3BvbnNlKCk/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyKWlmKG49Zy53KG4uY29tcG9zaXRlVmlkZW9PdmVybGF5LE5LeCksbj8uc291cmNlcz8ubGVuZ3RoKWZvcihsZXQgVyBvZiBuPy5zb3VyY2VzKWlmKFcuaXNBY3RpdmUpcmV0dXJuIFd9OwpnOT1mdW5jdGlvbihuKXtuLk49dm9pZCAwO24uVy5jbGVhcigpO24uYXBpLk5wKCJjb21wb3NpdGVlbWJhcmdvIiwxKX07ClhZPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9TnVtYmVyKEQucGxheWJhY2tSZWxhdGl2ZVBvc2l0aW9uPy51dGNUaW1lTXMpLzFFMztsZXQgYj1XK051bWJlcihELmR1cmF0aW9uPy5zZWNvbmRzKSx2PWBjb21wb3NpdGVfZW1iYXJnb18ke1d9YDtpZihELm9uRW50ZXIpe2xldCBrPUQub25FbnRlci5maWx0ZXIobi5WKTtrLmxlbmd0aCYmKG4uVy5zZXQodixrKSxuLmFwaS5hZGRVdGNDdWVSYW5nZSh2LFcsYiwiY29tcG9zaXRlZW1iYXJnbyIsITEpKX19fTsKSDR0PWZ1bmN0aW9uKG4sVyl7aWYobi5OPy5pZCE9PVcuaWQmJihuLmFwaS5xVyghMCksbi5XLmhhcyhXLmlkKSkpe3ZhciBEPW4uVy5nZXQoVy5pZCksYj1uLmFwaS5nZXRWaWRlb0RhdGEoKTtmb3IobGV0IHYgb2YgRClEPXYuY29tcG9zaXRlRW1iYXJnbz8uZW1iYXJnb1N0YXR1c1Rva2VuLGIucFIhPT1EJiYoYi5wUj1ELG4uYXBpLm5DKCkpLFlhVShuLFcpfX07CmZwaT1mdW5jdGlvbihuLFcpe2lmKG4uTj8uaWQ9PT1XLmlkJiYobi5hcGkucVcoITEpLG4uVy5oYXMoVy5pZCkpKXtpZihXPW4uYXBpLmdldFZpZGVvRGF0YSgpKVcucFI9dm9pZCAwO24uYXBpLm5DKCk7WWFVKG4pfX07CkpQTT1mdW5jdGlvbihuLFcpe24uY29tcG9zaXRlVmlkZW9TdGF0ZSE9PW51bGwmJihXLnBsYXliYWNrU3RhdGV8fChXLnBsYXliYWNrU3RhdGU9e30pLFcucGxheWJhY2tTdGF0ZS5jb21wb3NpdGVWaWRlb1N0YXRlPW4uY29tcG9zaXRlVmlkZW9TdGF0ZSl9OwpJcEM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uYXBpLmdldFZpZGVvRGF0YSh7dm86ITF9KTtiPy5VKCJhdHJrY2hnIix7aWQ6VyxtOkR9KTtpZihiJiYhYi5JTSgpKXtEPW4uYXBpLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7Zm9yKGxldCB2IG9mIEQpaWYodi5nZXRMYW5ndWFnZUluZm8oKS5nZXRJZCgpPT09Vyl7bi5hcGkuRygpLkhKPVc7YnJlYWt9fX07ClNhTT1mdW5jdGlvbihuLFcpe1chPT1uLksmJihuLks9VyxuLkouSigpLFcmJihuLkouTk4obi5hcGksIm1vZHVsZWNyZWF0ZWQiLEQ9Pnt2YXIgYj1wYU0obik7RD09PSJjYXB0aW9ucyImJmI/LnRvcExlZnRDb3JuZXJYIT09dm9pZCAwJiZiPy50b3BMZWZ0Q29ybmVyWSE9PXZvaWQgMCYmYj8ud2lkdGghPT12b2lkIDAmJmI/LmhlaWdodCE9PXZvaWQgMCYmbi5hcGkuVG4oe3RvcDpiLnRvcExlZnRDb3JuZXJZLHJpZ2h0OjEtYi50b3BMZWZ0Q29ybmVyWC1iLndpZHRoLGJvdHRvbToxLWIudG9wTGVmdENvcm5lclktYi5oZWlnaHQsbGVmdDpiLnRvcExlZnRDb3JuZXJYfSl9KSxuLkouTk4obi5hcGksZy5veSgiY29tcG9zaXRlZW1iYXJnbyIpLEQ9PntINHQobixEKX0pLG4uSi5OTihuLmFwaSxnLmR2KCJjb21wb3NpdGVlbWJhcmdvIiksRD0+e2ZwaShuLEQpfSksbi5KLk5OKG4uYXBpLCJoZWFydGJlYXRSZXF1ZXN0IixEPT57SlBNKG4sRCl9KSxuLkouTk4obi5hcGksImludGVybmFsYXVkaW9mb3JtYXRjaGFuZ2UiLAooRCxiKT0+e0lwQyhuLEQsYil9KSxuLkouTk4obi5hcGksIm9uUGxheWJhY2tBdWRpb0NoYW5nZSIsKCk9PntuLmFwaS5uQygpfSkpKX07CllhVT1mdW5jdGlvbihuLFcpe24uTj8uaWQhPT1XPy5pZCYmKG4uTiYmKG4uVy5kZWxldGUobi5OLmlkKSxuLmFwaS5VTyhbbi5OXSwxKSksbi5OPVcpfTsKQVAyPWZ1bmN0aW9uKG4pe249bj8ucXVhbGl0eURldGFpbHN8fFtdO3JldHVybiBnLmZ0KG4pJiYhQXJyYXkuaXNBcnJheShuKT9uOm4ucmVkdWNlKChXLHtrZXk6RCx2YWx1ZTpifSk9PntEJiZiJiYoV1tEXT1iKTtyZXR1cm4gV30se30pfTsKbWdoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXSx2PVc/MTU2NTk1OjE1MTg3NDtmb3IobGV0IGggb2Ygbil7dmFyIGs9aC52aWRlbztuPXtmb3JtYXRJZDpoLmlkLHF1YWxpdHlMYWJlbDprLnF1YWxpdHlMYWJlbCxxdWFsaXR5OmsucXVhbGl0eSxpc1BsYXlhYmxlOld9O2lmKGs9RFtrLnF1YWxpdHlMYWJlbF0pbi5wYXlnYXRlZFF1YWxpdHlEZXRhaWxzPXtwYXlnYXRlZEluZGljYXRvclRleHQ6ay5wYXlnYXRlZEluZGljYXRvclRleHQsZW5kcG9pbnQ6ay5lbmRwb2ludCx2ZVR5cGU6dix0cmFja2luZ1BhcmFtczprLnRyYWNraW5nUGFyYW1zfTtiLnB1c2gobil9cmV0dXJuIGJ9OwpPNEM9ZnVuY3Rpb24obil7cVQoKSYmKG4ubVE9bi5hcGkuZUcoKSxuLk49bmV3IFk2LG4uVz0yLG4ubVEuU2woInB0X3Bpc2giKSx3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz93aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+e0sxVShuKX0pOksxVShuKSl9OwpxVD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYW5kcm9pZCYmd2luZG93LmFuZHJvaWQud2VidmlldyYmd2luZG93LmFuZHJvaWQud2Vidmlldy5nZXRFeHBlcmltZW50YWxNZWRpYUludGVncml0eVRva2VuUHJvdmlkZXJ9OwpLMVU9ZnVuY3Rpb24obil7aWYocVQoKSl7bi5tUT1uLmFwaS5lRygpO24ubVEuU2woInB0X3BpcyIpO3RyeXt3aW5kb3cuYW5kcm9pZC53ZWJ2aWV3LmdldEV4cGVyaW1lbnRhbE1lZGlhSW50ZWdyaXR5VG9rZW5Qcm92aWRlcih7Y2xvdWRQcm9qZWN0TnVtYmVyOjg2ODYxODY3Njk1Mn0pLnRoZW4oVz0+e24uSj1XO24uTj8ucmVzb2x2ZSgpO24ubVEuU2woInB0X3BpZiIpfSkuY2F0Y2goVz0+e0dHKFcsInBsYXllcl9zdGFydCIpOwpuLm1RLlNsKCJwdF9waWUiKTtuLk4/LnJlamVjdChXKX0pfWNhdGNoKFcpe0dHKFcsInBsYXllcl9zdGFydF9jYXRjaCIpLG4uYXBpLlUoInBmZXMiLHt9KSxuLk4/LnJlamVjdChXKX19fTsKR0c9ZnVuY3Rpb24obixXKXtuLm1lc3NhZ2UmJmcuR3EoRXJyb3IoYCR7V31fJHtuLm1lc3NhZ2V9YCkpfTsKUGd4PWZ1bmN0aW9uKG4sVyl7aWYobi5KKXt2YXIgRD1XLnZpZGVvSWQ7bi5XPTM7bi5tUS5TbCgicHRfbXMiKTt0cnl7bi5KLnJlcXVlc3RUb2tlbihEKS50aGVuKGI9PntuLm1RLlNsKCJwdF9tZiIpO2lmKGI9Zy5kMShiKSlXLnpmPXtZdDpifX0pLmNhdGNoKGI9PntuLm1RLlNsKCJwdF9tZSIpOwpHRyhiLCJwbGF5ZXJfZ2VuZXJhdGUiKTtuLmhhbmRsZUVycm9yKGIsVyl9KX1jYXRjaChiKXtHRyhiLCJwbGF5ZXJfZ2VuZXJhdGVfY2F0Y2giKSxuLmhhbmRsZUVycm9yKGIsVyl9fX07Clo0eD1mdW5jdGlvbihuLFcpe2cueDYobi5hcGkuRygpKSYmKFc/bi5qLnNob3coKTpuLmouaGlkZSgpKX07CnlQaj1mdW5jdGlvbihuKXtuLlg8bi5KLmxlbmd0aD9VZzIobik6KG4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KDEpLk4oMikmJihuLlY9ITApLG4uTj0hMCxuLlg9MCxuLkoubGVuZ3RoPTAsbi5hcGkuWDkoKSxuLk49ITEpfTsKRUJDPWZ1bmN0aW9uKG4pe3ZhciB7aW50ZXJzdGl0aWFsczpXfT1uLmFwaS5nZXRWaWRlb0RhdGEoKSxEPVtdO2ZvcihsZXQgTCBvZiBXKXtXPUQ7dmFyIGI9Vy5wdXNoLHY9bixrPUwucGxheWVyVmFycyxoPUwua3EseD1MLnRpbWU7bGV0IGU9YHl0by0ke3YuWSsrfWA7eD1uZXcgZy5sNSh4LHgse2lkOmUscHJpb3JpdHk6NyxuYW1lc3BhY2U6Inl0byJ9KTt2LktbZV09e3BsYXllclZhcnM6ayxwbGF5ZXJUeXBlOmh9O2IuY2FsbChXLHgpO1c9bi5hcGkuZ2V0VmlkZW9EYXRhKHtwbGF5ZXJUeXBlOjF9KTtXPU9iamVjdC5hc3NpZ24oe29hdXRoX3Rva2VuOlcub2F1dGhUb2tlbn0sTC5wbGF5ZXJWYXJzKTtuLmFwaS5wcmVsb2FkVmlkZW9CeVBsYXllclZhcnMoVyxMLmtxKX1uLmFwaS5naChELDEpfTsKVWcyPWZ1bmN0aW9uKG4pe3ZhciBXPW4uSltuLlhdO2lmKFcpe3ZhciB7cGxheWVyVmFyczpELHBsYXllclR5cGU6Yn09bi5LW1ddO24uTj0hMDtuLlgrKztXPW4uYXBpLmdldFZpZGVvRGF0YSh7cGxheWVyVHlwZToxfSk7Vz1PYmplY3QuYXNzaWduKHtvYXV0aF90b2tlbjpXLm9hdXRoVG9rZW59LEQpO24uYXBpLmxvYWRWaWRlb0J5UGxheWVyVmFycyhXLCEwLGIsITApO24uTj0hMX19OwpvQnI9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7aWYoYXdhaXQgaTRVKG4pKXRyeXtsZXQgdj17a2V5Om5mKFcsInZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eSIpLHZpZGVvSWQ6VyxsYXN0UGxheWJhY2tQb3NpdGlvblNlY29uZHM6RC50b1N0cmluZygpLGxhc3RVcGRhdGVkQ2xpZW50VGltZXN0YW1wTXM6Yi50b1N0cmluZygpfTthd2FpdCBweXQobi5OLHYpO24uSiE9PVcmJihhd2FpdCB1angobiksbi5KPVcpfWNhdGNoKHYpe24uaGFuZGxlRXJyb3IoIkZhaWxlZCB0byBhZGQgb3IgdXBkYXRlIHBsYXliYWNrIHBvc2l0aW9uIix2KX1lbHNlIG4uYXBpLlUoInZwcGUiLHtwdToiYXUifSl9OwpkZ3c9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCk/LnZpZGVvSWQ7aWYoVyl7dmFyIEQ9bi5hcGkuZ2V0Q3VycmVudFRpbWUoKSxiPURhdGUubm93KCk7b0JyKG4sVyxELGIpfX07Cmk0VT1hc3luYyBmdW5jdGlvbihuKXtpZighbi5OKXt0NXx8KHQ1PUk5MigpKTtsZXQgVz1hd2FpdCB0NTtpZighVylyZXR1cm4hMTtuLk49V31yZXR1cm4hMH07CnVqeD1hc3luYyBmdW5jdGlvbihuKXtpZihuLk4pdHJ5e3ZhciBXPWF3YWl0IFVlKG4uTiwidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5IiksRD1hd2FpdCBVZShuLk4sIm1haW5WaWRlb0VudGl0eSIpO2xldCBiPW5ldyBTZXQoRC5tYXAoaD0+aC52aWRlb0lkKSksdj1XLmZpbHRlcihoPT4hYi5oYXMoaC52aWRlb0lkKSk7CnYuc29ydCgoaCx4KT0+TnVtYmVyKHgubGFzdFVwZGF0ZWRDbGllbnRUaW1lc3RhbXBNcyktTnVtYmVyKGgubGFzdFVwZGF0ZWRDbGllbnRUaW1lc3RhbXBNcykpOwpsZXQgaz1EYXRlLm5vdygpLTg2NEU1O1c9W107Zm9yKEQ9MDtEPHYubGVuZ3RoO0QrKyl7bGV0IGg9dltEXTsoRD49bi5XfHxOdW1iZXIoaC5sYXN0VXBkYXRlZENsaWVudFRpbWVzdGFtcE1zKTxrKSYmaC5rZXkmJlcucHVzaChoLmtleSl9Vy5sZW5ndGg+MCYmKG4uYXBpLlUoInZwcGUiLHtleHA6Vy5sZW5ndGh9KSxhd2FpdCBIaHcobi5OLFcpKX1jYXRjaChiKXtuLmhhbmRsZUVycm9yKCJGYWlsZWQgdG8gZXhwaXJlIHBsYXliYWNrIHBvc2l0aW9uIixiKX19Owp6TFo9ZnVuY3Rpb24obil7L1teYS16QS1aMC05Oy4hXy1dLy50ZXN0KG4pJiYobj1uLnJlcGxhY2UoL1srXS9nLCItIikucmVwbGFjZSgvW15hLXpBLVowLTk7LiFfLV0vZywiXyIpKTtyZXR1cm4gbn07CmxwMj1mdW5jdGlvbihuKXtyZXR1cm4gd2luZG93LlByb2ZpbGVyJiZuZXcgd2luZG93LlByb2ZpbGVyKG4pfTsKalVVPWZ1bmN0aW9uKG4pe3ZhciBXPW4uc2FtcGxlSW50ZXJ2YWwsRD1uLm1heEJ1ZmZlclNpemU7aWYoIW4ucU4oKSYmVz4wJiZEPjAmJiFuLk4mJm4uVzwxRTcpdHJ5e24uWD1scDIoe3NhbXBsZUludGVydmFsOlcsbWF4QnVmZmVyU2l6ZTpEfSksbi5YPy5hZGRFdmVudExpc3RlbmVyKCJzYW1wbGVidWZmZXJmdWxsIixhc3luYygpPT57YXdhaXQgVEt3KG4pO2pVVShuKX0pfWNhdGNoKGIpe24uTj16TFooYi5tZXNzYWdlKSxuLkooKX19OwpUS3c9YXN5bmMgZnVuY3Rpb24obil7dHJ5e2xldCBXPWF3YWl0IG4uWD8uc3RvcCgpO1cmJm4ubG9nVHJhY2UoVyl9Y2F0Y2goVyl7bi5OPXpMWihXLm1lc3NhZ2UpLG4uSigpfX07ClJMdD1mdW5jdGlvbihuLFcsRCl7aWYoRCl7dmFyIGI9IiI7Q2d0KG4sVykmJihiPVcsbi5hcGkuRygpLkhKPVcpO2ImJkJLQyhuLGIpJiYodnRDKG4uYXBpLGIpLFNrKGZFKG4uYXBpLkcoKSxuLmFwaS5nZXRWaWRlb0RhdGEoKT8uVigpKSx2PT57dmFyIGs9YjtGMXcodikhPT1rJiZ3YVMobixNaWkodikse3N0cmluZ1ZhbHVlOmt9KX0pKX19OwpRVVo9ZnVuY3Rpb24obil7QXMoKT8uc2l6ZSYmU2soZkUobi5hcGkuRygpLG4uYXBpLmdldFZpZGVvRGF0YSgpPy5WKCkpLFc9PnsoVz1GMXcoVykpJiZCS0MobixXKSYmKG4uYXBpLkcoKS5ISj1XKX0pfTsKQ2d0PWZ1bmN0aW9uKG4sVyl7bj1uLmFwaS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpO2ZvcihsZXQgRCBvZiBuKWlmKEQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0SWQoKT09PVcpcmV0dXJuIEQ7cmV0dXJuIG51bGx9OwpCS0M9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5zcGxpdCgiLiIpWzBdIT09IiImJm4uYXBpLmdldFZpZGVvRGF0YSgpPy5JTSgpfTsKRjF3PWZ1bmN0aW9uKG4pe3tuPU1paShuKTtsZXQgVz1BcygpO249Vz9XLmdldChuKTp2b2lkIDB9cmV0dXJuIG4mJm4uc3RyaW5nVmFsdWU/bi5zdHJpbmdWYWx1ZToiIn07CndhUz1mdW5jdGlvbihuLFcsRCl7VmliKFt7c2V0dGluZ0l0ZW1JZDpXLHNldHRpbmdPcHRpb25WYWx1ZTpEfV0pO1NrKG4uWW8oKSxiPT57QkdNKGIsVyxEKX0pfTsKTWlpPWZ1bmN0aW9uKG4pe3ZhciBXPSg0ODQpLnRvU3RyaW5nKCk7biYmKFc9KDQ4MykudG9TdHJpbmcoKSk7cmV0dXJuIFd9OwpWaWI9ZnVuY3Rpb24obil7dmFyIFc9QXMoKTtXfHwoVz1uZXcgTWFwKTtmb3IobGV0IEQgb2YgbilXLnNldChELnNldHRpbmdJdGVtSWQsRC5zZXR0aW5nT3B0aW9uVmFsdWUpO249SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKFcpKTtnLlBCKCJ5dC1wbGF5ZXItdXNlci1zZXR0aW5ncyIsbiwyNTkyRTMpfTsKcjk9ZnVuY3Rpb24obil7bi5qPW51bGw7bi5LPW51bGw7bi5OTigkUCgib3ZlciIpLG4uWjEpO24uTk4oInRvdWNoc3RhcnQiLG4uWSk7bi5OJiZuLk5OKCRQKCJkb3duIiksbi5WUSl9Owpzcj1mdW5jdGlvbihuKXtuLlguSighbi5OKX07CiRQPWZ1bmN0aW9uKG4pe3JldHVybiB3aW5kb3cubmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQ/YE1TUG9pbnRlciR7bi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke24uc3Vic3RyaW5nKDEpfWA6YG1vdXNlJHtufWB9OwpOVD1mdW5jdGlvbihuKXtyZXR1cm4gbiYmY1BiP2cuSksobil8fGRvY3VtZW50OmRvY3VtZW50fTsKYXB4PWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEPTA7RDxXLmNoYW5nZWRUb3VjaGVzLmxlbmd0aDtEKyspe2xldCBiPVcuY2hhbmdlZFRvdWNoZXNbRF07aWYoYi5pZGVudGlmaWVyPT09bi5LKXJldHVybiBifXJldHVybiBudWxsfTsKblZyPWZ1bmN0aW9uKG4pe2NQYj1ufTsKV3F4PWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgVyl7Vz1OdW1iZXIoYi5wbGF5YmFja1JlbGF0aXZlUG9zaXRpb24/LnV0Y1RpbWVNcykvMUUzO2xldCB2PVcrTnVtYmVyKGIuZHVyYXRpb24/LnNlY29uZHMpLGs9YHN0YXRpb25zOiR7RH06JHtXfWA7bi5KLmhhcyhrKXx8KG4uSi5hZGQoayksYi5vbkVudGVyJiYobi5OW2tdPWIub25FbnRlciksbi5hcGkuYWRkVXRjQ3VlUmFuZ2UoayxXLHYsRCwhMSkpfX07CkpKPWZ1bmN0aW9uKG4pe3ZhciBXPS9jb2RlY3M9IihbXiJdKikiLy5leGVjKG4ubWltZVR5cGUpO3JldHVybiBXJiZXWzFdP1dbMV0rIiAoIituLml0YWcrIikiOm4uaXRhZ307CnBhPWZ1bmN0aW9uKG4sVyl7aWYobi5oZWlnaHRQeD09PS0xKXt2YXIgRD1udWxsO3RyeXtEPWcuekYoIkNBTlZBUyIpLG4uVz1ELmdldENvbnRleHQoIjJkIil9Y2F0Y2goaCl7fWlmKG4uVyl7dmFyIGI9bi5OKm4uc2FtcGxlQ291bnQ7bi5qPUQ7bi5qLndpZHRoPWI7bi5qLnN0eWxlLndpZHRoPWAke2J9cHhgO24uZWxlbWVudC5hcHBlbmRDaGlsZChuLmopfWVsc2UgZm9yKG4uc2FtcGxlQ291bnQ9TWF0aC5mbG9vcihuLnNhbXBsZUNvdW50LzQpLG4uTio9NCxEPTA7RDxuLnNhbXBsZUNvdW50O0QrKyliPWcuekYoIlNQQU4iKSxiLnN0eWxlLndpZHRoPWAke24uTn1weGAsYi5zdHlsZS5sZWZ0PWAke24uTipEfXB4YCxuLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYil9RD1uLmVsZW1lbnQuY2xpZW50SGVpZ2h0fHwyNDtEIT09bi5oZWlnaHRQeCYmKG4uaGVpZ2h0UHg9RCxuLlcmJihEPSh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSk+MT8yOjEsbi5qLmhlaWdodD1uLmhlaWdodFB4KgpELG4uai5zdHlsZS5oZWlnaHQ9YCR7bi5oZWlnaHRQeH1weGAsbi5XLnNjYWxlKDEsRCkpKTtmb3IodmFyIHYgb2YgVyl7Vz1uO3ZhciBrPW4uaW5kZXg7Zm9yKEQ9MDtEKzI8Vy5WLmxlbmd0aCYmVy5WW0QrMV08djspRCsrO2I9TWF0aC5taW4oMSwodi1XLlZbRF0pLyhXLlZbRCsxXS1XLlZbRF0pKTtpZihXLlcpVy5XLmZpbGxTdHlsZT1XLktbRF0sVy5XLmZpbGxSZWN0KGsqVy5OLDAsVy5OLFcuaGVpZ2h0UHgpLFcuVy5maWxsU3R5bGU9Vy5LW0QrMV0sVy5XLmZpbGxSZWN0KGsqVy5OLFcuaGVpZ2h0UHgqKDEtYiksVy5OLFcuaGVpZ2h0UHgpO2Vsc2V7az1XLmVsZW1lbnQuY2hpbGRyZW5ba107bGV0IGg9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7Yj1NYXRoLm1pbihXLmhlaWdodFB4LE1hdGgucm91bmQoVy5oZWlnaHRQeCpiKmgpL2gpfHwwO2suc3R5bGUuaGVpZ2h0PWAke2J9cHhgO2suc3R5bGUuYmFja2dyb3VuZENvbG9yPVcuS1tEKzFdO2suc3R5bGUuYm9yZGVyVG9wPQpgc29saWQgJHtXLmhlaWdodFB4LWJ9cHggJHtXLktbRF19YH1uLmluZGV4PShuLmluZGV4KzEpJW4uc2FtcGxlQ291bnR9dj1uLmluZGV4O24uVz9uLlcuY2xlYXJSZWN0KHYqbi5OLDAsbi5OLG4uaGVpZ2h0UHgpOihuPW4uZWxlbWVudC5jaGlsZHJlblt2XSxuLnN0eWxlLmhlaWdodD0iMHB4IixuLnN0eWxlLmJvcmRlclRvcD0iIil9OwpiQng9ZnVuY3Rpb24obixXKXt2YXIgRD0hIW4uTj8uRTUoKTtuLk58fChuLk49bmV3IERRTShuLmFwaSksZy51KG4sbi5OKSxnLnJ2KG4uYXBpLG4uTi5lbGVtZW50LDQpKTtuLk4uTUwoVyk7dmFyIGI9R3Uobi5hcGkuSjUoKSk7YiYmYi5sb2FkZWQmJkQhPT1XJiZiLm5HKCk7VyYmbi5hcGkuVSgic2ZuIix7fSwhMCl9Owp2VjI9ZnVuY3Rpb24obixXKXtpZihuLlc9PT12b2lkIDApcmV0dXJuITE7aWYoVy5zZWVrRGlyZWN0aW9uPT09IlRJTUVMWV9BQ1RJT05fVFJJR0dFUl9ESVJFQ1RJT05fRk9SV0FSRCImJk51bWJlcihXLnNlZWtMZW5ndGhNaWxsaXNlY29uZHMpPT09NUUzKXtpZihXPW4uVz09PTcyKW4uWD0iVElNRUxZX0FDVElPTl9UUklHR0VSX1NPVVJDRV9LRVlCT0FSRF9GT1JXQVJEX1NFRUtfRklWRV9TRUNPTkRTIjtyZXR1cm4gV31pZihXLnNlZWtEaXJlY3Rpb249PT0iVElNRUxZX0FDVElPTl9UUklHR0VSX0RJUkVDVElPTl9GT1JXQVJEIiYmTnVtYmVyKFcuc2Vla0xlbmd0aE1pbGxpc2Vjb25kcyk9PT0xRTQpe2lmKFc9bi5XPT09NzQpbi5YPSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfU09VUkNFX0tFWUJPQVJEX0ZPUldBUkRfU0VFS19URU5fU0VDT05EUyI7cmV0dXJuIFd9cmV0dXJuIFcuc2Vla0RpcmVjdGlvbj09PSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfRElSRUNUSU9OX0JBQ0tXQVJEIiYmCk51bWJlcihXLnNlZWtMZW5ndGhNaWxsaXNlY29uZHMpPT09NUUzP24uVz09PTcxOlcuc2Vla0RpcmVjdGlvbj09PSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfRElSRUNUSU9OX0JBQ0tXQVJEIiYmTnVtYmVyKFcuc2Vla0xlbmd0aE1pbGxpc2Vjb25kcyk9PT0xRTQ/bi5XPT09NzM6ITF9Owprd3c9ZnVuY3Rpb24obil7bi50aW1lbHlBY3Rpb25zJiYobi5qPW4udGltZWx5QWN0aW9ucy5yZWR1Y2UoKFcsRCk9PntpZihELmN1ZVJhbmdlSWQ9PT12b2lkIDApcmV0dXJuIFc7V1tELmN1ZVJhbmdlSWRdPTA7cmV0dXJuIFd9LHt9KSl9OwpZUD1mdW5jdGlvbihuKXtuLmNKJiZjbGVhclRpbWVvdXQobi5jSik7bi5jSj12b2lkIDA7bi5PPSExfTsKZmE9ZnVuY3Rpb24obil7aWYobi5OIT09dm9pZCAwKXt2YXIgVz0oVz1IOChuLG4uTikpJiZXLm9uQ3VlUmFuZ2VFbnRlcj9nLk40KFcub25DdWVSYW5nZUVudGVyKTp2b2lkIDA7dmFyIEQ9SDgobixuLk4pO2E6aWYoRCYmRC5hZGRpdGlvbmFsVHJpZ2dlcil7Zm9yKGIgb2YgRC5hZGRpdGlvbmFsVHJpZ2dlcilpZihiLnR5cGUmJigwLG4uYmRbYi50eXBlXSk/LihiLmFyZ3M/P3t9KSl7dmFyIGI9ITA7YnJlYWsgYX1iPSExfWVsc2UgYj0hMDtXJiZiJiYoZy5SVChuLmFwaSwiaW5uZXJ0dWJlQ29tbWFuZCIsVyksaGJqKG4sRCksbi5qW24uTl0hPT12b2lkIDAmJm4ualtuLk5dKyssbi5PPSEwKX19OwpIOD1mdW5jdGlvbihuLFcpe2lmKG4udGltZWx5QWN0aW9ucylmb3IobGV0IEQgb2Ygbi50aW1lbHlBY3Rpb25zKWlmKEQuY3VlUmFuZ2VJZD09PVcpcmV0dXJuIER9Owp4UXc9ZnVuY3Rpb24obixXKXtpZigobj1IOChuLFcpKSYmbi5vbkN1ZVJhbmdlRXhpdClyZXR1cm4gZy5ONChuLm9uQ3VlUmFuZ2VFeGl0KX07Cmhiaj1mdW5jdGlvbihuLFcpe3ZhciBEPU51bWJlcihXPy5tYXhWaXNpYmxlRHVyYXRpb25NaWxsaXNlY29uZHMpO0QmJihZUChuKSxuLmNKPXNldFRpbWVvdXQoKCk9PntpZihuLk4hPT12b2lkIDAmJlc/LmN1ZVJhbmdlSWQ9PT1uLk4pe24uTz0hMTtuLlg9dm9pZCAwO3ZhciBiPXhRdyhuLG4uTik7YiYmZy5SVChuLmFwaSwiaW5uZXJ0dWJlQ29tbWFuZCIsYil9fSxEKSl9Owp2YXIgZmFpPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtyZXR1cm4gaXBbSVsxMF1dKHRoaXMsNCw1ODg5LG4sVyxELGIsdixrKX07CmdWaD1mdW5jdGlvbihuKXtpZihuPW4uZ2V0V2F0Y2hOZXh0UmVzcG9uc2UoKSlpZihuPWcudyhuLnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LnRpbWVseUFjdGlvbnNPdmVybGF5Vmlld01vZGVsLExxQyksbj8udGltZWx5QWN0aW9ucylyZXR1cm4gbj8udGltZWx5QWN0aW9ucy5tYXAoVz0+Zy53KFcsZWJyKSkuZmlsdGVyKFc9PiEhVyl9OwpKNT1mdW5jdGlvbihuKXtuLk4hPT1udWxsJiYoY2xlYXJUaW1lb3V0KG4uTiksbi5OPW51bGwpfTsKUjA9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1XXm47KG48PDEmMTUpPT0yJiZEW0lbMjVdXSgpO2lmKChuLTh8MTcpPG4mJihuLTZeMjIpPj1uKXt2YXIgaD1EW2JdLHg9aFtJW2teNzM1NF1dKElba143MzA5XSk7eD4wP0VjKGteNzM1NSxrXjEyOTAsdixoW0lba143MzU5XV0oMCx4KSxoW0lba143MzU5XV0oeCsxKSk6aCYmKHZbaF09SVtrXjczNTddKTt2YXIgTD1bXX1pZigobiYyNyk9PW4pe2lmKCEoZ1goRFtJW2teNzUzMl1dKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc0OTBdKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc0NzZdKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc1MzNdKSkpdGhyb3cgbmV3IGcuUXgoSVtrXjc0ODBdLERbSVtrXjc1MzJdXSk7aD1scihEW0lba143NTMyXV0pO0RbSVtrXjc1MjddXT1oW0lba143NTQwXV07RFtJW2teNzUxNF1dPWhbSVsxXV0rKGhbSVtrXjc1MDhdXSE9bnVsbD9gOiR7aFtJW2teNzUwOF1dfWA6Cklba143NTI4XSk7eD1oW0lba143NTMyXV07eFtJW2teNzUxOF1dKElba143NTM4XSk/KERbSVtrXjc1MjFdXT1JW2teNzUzOF0seD14W0lba143NTMwXV0oa143NTM5KSk6eFtJW2teNzUxOF1dKElba143NTIzXSk/KERbSVtrXjc1MjFdXT1JW2teNzUyM10seD14W0lba143NTMwXV0oa143NTM2KSk6eFtJW2teNzUxOF1dKElba143NDc1XSk/KHg9aXAoa143NTI5LGteODgwLHgsRCkseD14WzBdKTooRFtJW2teNzUyMV1dPXgseD1JW2teNzUyOF0pO3ZhciBlPURbSVsxXV07RFtJWzFdXT1pcChrXjc1MzMsa143NzcxLHgpO09iamVjdFtJW2teNzUzOV1dKERbSVsxXV0sZzcoMixrXjc1MDAsaFtJW2teNzUxNF1dW0lbMF1dKCkpKTtPYmplY3RbSVtrXjc1MzldXShEW0lbMV1dLGUpO0RbSVsxXV1bSVtrXjc0NzNdXT09PUlba143NTAxXSYmKGRlbGV0ZSBEW0lbMV1dW0lba143NDczXV0sRFtJW2teNzUyMV1dKz1JW2teNzQ4N10pO0RbSVtrXjc1MzJdXT1JW2teNzUyOF07RFtJW2teNzUyMF1dPQpJW2teNzUyOF07RFtJW2teNzU0MF1dJiYoaD1YRChrXjc0OTIsa14zMjg1LEQpKTtMPVtdfShuJjk5KT09biYmKGVYKGteMzQ4NSxrXjQ1NDIsRCksTD1EW0lba14zNTExXV0pO24rMyYxNXx8KEw9ZW5jb2RlVVJJQ29tcG9uZW50KEQpKTtyZXR1cm4gTH07ClhiaD1mdW5jdGlvbihuKXtKNShuKTtuLk49c2V0VGltZW91dCgoKT0+e24uaGlkZSgpfSwzRTMpfTsKSUc9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuVUooKTtpZihXKXtsZXQgRD1uLmFwaS5nZXRQbGF5ZXJTaXplKCk7Vy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke24uTipELndpZHRoKigxLW4uc2NhbGUpfXB4LCAke24uSipELmhlaWdodCooMS1uLnNjYWxlKX1weCkgc2NhbGUoJHtuLnNjYWxlfSlgO1cuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSIwIDAiO1c9bi5pbmRpY2F0b3I7Vy5XLnRleHRDb250ZW50PWAke051bWJlcihuLnNjYWxlLnRvRml4ZWQoMSkpfXhgO1cuTj09PW51bGwmJlhiaChXKTtuLnNjYWxlPjE/bi5pbmRpY2F0b3Iuc2hvdygpOm4uaW5kaWNhdG9yLmhpZGUoKTtXPW4uc2NhbGU+MT8iWk9PTV9TVEFURV9GUkVFIjoiWk9PTV9TVEFURV9PUklHSU5BTCI7VyE9PW4uem9vbVN0YXRlJiYobi56b29tU3RhdGU9VyxnLnpVKCJ3YXRjaFpvb21TdGF0ZUNoYW5nZSIse3pvb21TdGF0ZTpuLnpvb21TdGF0ZX0pKX19OwpxSDE9ZnVuY3Rpb24obil7bj1uLldEKCk7aWYoIW4pcmV0dXJuITE7bj1nLm9FKG4pLmV4cHx8IiI7cmV0dXJuIG4uaW5jbHVkZXMoInhwdiIpfHxuLmluY2x1ZGVzKCJ4cGUiKX07Ckd3VT1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2Ygbi5OKCEwKSlpZihxSDEoVykpcmV0dXJuITA7cmV0dXJuITF9Owp0THg9ZnVuY3Rpb24obixXKXtmb3IobGV0IGIgb2Ygbi5OKCEwKSlpZihxSDEoYikpe249Yjt2YXIgRD17cG90YzoiMSIscG90Old9O24udXJsJiYobi51cmw9Zy56ZChuLnVybCxEKSl9fTsKJFF4PWFzeW5jIGZ1bmN0aW9uKG4pe3RyeXthd2FpdCBufWNhdGNoKFcpe319OwpybU09ZnVuY3Rpb24obil7dmFyIFc9bmV3IHF3LEQ9e1siWC1Hb29nLUFwaS1LZXkiXToiQUl6YVN5RHlUNVcwSmg0OUYzMFBxcXR5ZmRmN3BETEZLTEpvQW53In07cmV0dXJuIG5ldyBmVihXLG4sKCk9PkQpfTsKc0xiPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgVEgobil9OwpOYmI9ZnVuY3Rpb24obil7bi5KJiYobi5YPW5ldyBZNixuLmoucHJvbWlzZS50aGVuKCgpPT57bi5tUS5TbCgicG90X2lmIik7U2wobil9KSl9OwpIQnc9ZnVuY3Rpb24obil7dmFyIFc9KG4uUygiaHRtbDVfZ2VuZXJhdGVfc2Vzc2lvbl9wb190b2tlbiIpfHxuLlMoImh0bWw1X2dlbmVyYXRlX2NvbnRlbnRfcG9fdG9rZW4iKSkmJiFuLnVzZUxpdmluZ1Jvb21Qb1Rva2VuO3RyeXtpZihuLlMoImh0bWw1X3VzZV9zaGFyZWRfb3dsX2luc3RhbmNlIil8fG4uYXBpLkcoKS5adCgpLk4uUVEocGJNKSlZSGkobik7ZWxzZSBpZihXKXtuLm1RLlNsKCJwb3RfaXNjIik7bGV0IEQ9Zy5kTShuLmFwaS5HKCkuZXhwZXJpbWVudHMsImh0bWw1X3dlYnBvX2thaW9zX2RlZmVyX3RpbWVvdXRfbXMiKTtEPyhBNShuKSxnLm4kKCgpPT57bUEobil9LEQpKTpuLlMoImh0bWw1X3dlYnBvX2lkbGVfcHJpb3JpdHlfam9iIik/KEE1KG4pLGcuY0IoZy5EeSgpLCgpPT57bUEobil9KSk6bUEobil9fWNhdGNoKEQpe0QgaW5zdGFuY2VvZiBFcnJvciYmZy5HcShEKX19OwpZSGk9YXN5bmMgZnVuY3Rpb24obil7S2Eobiwic3dwb19pIik7QTUobik7U2wobik7dmFyIFc9YXdhaXQgZy5NaChnLkQ2KCkpO0thKG4sInN3cG9fY28iKTtXPWF3YWl0IFp0WihXKTtuLlMoImh0bWw1X3dlYl9wb190b2tlbl9kaXNhYmxlX2NhY2hpbmciKXx8Vy55aCgxNTApO24uSj1XO0thKG4sInN3cG9fY2MiKTskUXgoVy5IJCgpKS50aGVuKCgpPT57bi5OPSEwO24uai5yZXNvbHZlKCk7S2Eobiwic3dwb19yZSIpfSk7CmcubiQoKCk9PnttQShuKTtLYShuLCJzd3BvX3NpIil9LDApfTsKQTU9ZnVuY3Rpb24obil7bi5XfHwobi5XPW5XKCkpfTsKbUE9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuRygpO24ubVEuU2woInBvdF9pc3QiKTtuLkp8fGZNMShuKTtuLlMoImh0bWw1X2JhbmRhaWRfYXR0YWNoX2NvbnRlbnRfcG9fdG9rZW4iKXx8KG4uUygiaHRtbDVfZ2VuZXJhdGVfc2Vzc2lvbl9wb190b2tlbiIpJiYoU2wobiksTmJiKG4pKSxXPWcuZE0oVy5leHBlcmltZW50cywiaHRtbDVfc2Vzc2lvbl9wb190b2tlbl9pbnRlcnZhbF90aW1lX21zIil8fDAsVz4wJiYobi5ZPVcwKCgpPT57U2wobil9LFcpKSxuLks9ITApfTsKSm14PWZ1bmN0aW9uKG4pe3ZhciBXPWcuWWgobi5leHBlcmltZW50cywiaHRtbDVfd2ViX3BvX3JlcXVlc3Rfa2V5Iik7cmV0dXJuIFc/VzpnLms2KG4pPyJaMWVsTmtBS0xwU1Izb1BPVU1TTiI6Ik80M3owZHBqaGdYMjBTQ3g0S0FvIn07CkthPWZ1bmN0aW9uKG4sVyl7bi5TKCJodG1sNV93ZWJwb19iZ2VfY3RtcCIpJiZuLmFwaS5VKFcse2h3cG86ISFuLkosaHdwb3I6bi5OfSl9OwpTbD1hc3luYyBmdW5jdGlvbihuKXtpZihuLlMoImh0bWw1X2dlbmVyYXRlX3Nlc3Npb25fcG9fdG9rZW4iKSYmIW4udXNlTGl2aW5nUm9vbVBvVG9rZW4pe3ZhciBXPW4uYXBpLkcoKSxEPWcuQXIoIkVPTV9WSVNJVE9SX0RBVEEiKXx8Zy5BcigiVklTSVRPUl9EQVRBIik7RD1XLllyP1cuZGF0YXN5bmNJZDpEO0Q9Zy5ZaChXLmV4cGVyaW1lbnRzLCJodG1sNV9tb2NrX2NvbnRlbnRfYmluZGluZ19mb3Jfc2Vzc2lvbl90b2tlbiIpfHxXLmxpdmluZ1Jvb21Qb1Rva2VuSWR8fEQ7Vy5qVz1PcihuLEQpfX07CmZNMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5HKCksRD1KbXgoVyk7RD1ybU0oRCk7dmFyIGI9RC5aai5iaW5kKEQpO0QuWmo9YXN5bmMgaz0+e2s9YXdhaXQgYihrKTtuLmFwaS5VKCJpdHIiLHt9KTtyZXR1cm4ga307CnRyeXt2YXIgdj1zTGIoe1VnOkQsa2Q6e21heEF0dGVtcHRzOjV9LHgzOntWajoiQ0xFbiIsZGlzYWJsZTpXLmV4cGVyaW1lbnRzLkVxKCJodG1sNV93ZWJfcG9fZGlzYWJsZV9yZW1vdGVfbG9nZ2luZyIpLEpwOlRwYihXLmV4cGVyaW1lbnRzKSxybzpoPT57dmFyIHg9SU0yLmdldChoKTt4fHwoeD1uZXcgU0hpKGgpLHg9bmV3IGhxKHgpLElNMi5zZXQoaCx4KSk7cmV0dXJuIHh9LApSaTpuLlMoIndwb19kaXNfbGZkbXMiKT8wOjFFM30sdDY6Zy5HcX0pO2xldCBrPW5ldyBBbXQoe08xOnYsVWc6RCxvbkVycm9yOmcuR3F9KTskUXgoay5IJCgpKS50aGVuKCgpPT57bi5OPSEwO24uai5yZXNvbHZlKCl9KTsKbi5TKCJodG1sNV93ZWJfcG9fdG9rZW5fZGlzYWJsZV9jYWNoaW5nIil8fGsueWgoMTUwKTtnLnUobix2KTtnLnUobixrKTtuLko9a31jYXRjaChrKXtnLkdxKGspLHY/LmRpc3Bvc2UoKX19OwpPcj1mdW5jdGlvbihuLFcpe2lmKCFuLkope2lmKG4uVyl0cnl7cmV0dXJuIG4uVyhXKX1jYXRjaChEKXtnLkdxKEQpfXJldHVybiIifXRyeXtuLm1RLlNsKG4uTj8icG90X2NtcyI6InBvdF9jc21zIik7bGV0IEQ9e0dyOiEwLEVSOiEwLHdfOld9O24uUygiaHRtbDVfd2ViX3BvX3Rva2VuX2Rpc2FibGVfY2FjaGluZyIpfHwoRC5oRz17YW06VyxBQjohMCxyMzohMH0pO2xldCBiPW4uSi5aUihEKTtuLm1RLlNsKG4uTj8icG90X2NtZiI6InBvdF9jc21mIik7bi5OJiYobi5YPy5yZXNvbHZlKCksbi5YPW51bGwsbi5WJiYobi5WPSExLG4uYXBpLmFwcC5NTigpLmpEKCExKSkpO3JldHVybiBifWNhdGNoKEQpe3JldHVybiBnLkdxKEQpLCIifX07Cktxcj1mdW5jdGlvbihuKXt2YXIgVz1nLnFqKCk7bi5KJiZnLnhvKFcse05IOlFXLFlMOm1RU30pfTsKZy5QOD1mdW5jdGlvbihuLFcsRCl7Zy5hTCgicGJzIixXPz8oMCxnLlIpKCksRD8/bi50aW1lck5hbWUpfTsKZy5PQk09ZnVuY3Rpb24obixXLEQpe3ZhciBiPWcuQ04oVy55USkmJiFXLnlRLlg7aWYoVy55US5lViYmKEZWKFcueVEpfHxXLnlRLlk9PT0ic2hvcnRzcGFnZSJ8fFcueVEuWT09PSJsZWFuYmFjayJ8fGIpJiYhbi5XKXtuLlc9ITA7bi5WPVcuY2xpZW50UGxheWJhY2tOb25jZTtnLkFyKCJUSU1JTkdfQUNUSU9OIil8fGcuU0goIlRJTUlOR19BQ1RJT04iLG4uQi5jc2lQYWdlVHlwZSk7bi5CLmNzaVNlcnZpY2VOYW1lJiZnLlNIKCJDU0lfU0VSVklDRV9OQU1FIixuLkIuY3NpU2VydmljZU5hbWUpO2lmKG4uTil7Yj1uLk4uZUcoKTtmb3IodmFyIHYgb2YgT2JqZWN0LmtleXMoYikpZy5hTCh2LGJbdl0sbi50aW1lck5hbWUpO3Y9UFYoQ0IpKG4uTi5Idik7Zy5ubCh2LG4udGltZXJOYW1lKTt2PW4uTjt2Lko9e307di5Idj17fX1nLm5sKHtwbGF5ZXJJbmZvOnt2aXNpYmlsaXR5U3RhdGU6UFYoakwpKCl9LHBsYXllclR5cGU6IkxBVEVOQ1lfUExBWUVSX0hUTUw1In0sbi50aW1lck5hbWUpOwpuLmohPT1XLmNsaWVudFBsYXliYWNrTm9uY2V8fE51bWJlci5pc05hTihuLkopfHwoZy52UCgiX3N0YXJ0IixuLnRpbWVyTmFtZSk/RD1QVihvTCkoIl9zdGFydCIsbi50aW1lck5hbWUpK24uSjpnLkdxKG5ldyBnLlF4KCJhdHRlbXB0ZWQgdG8gbG9nIGdhcGxlc3MgcGJzIGJlZm9yZSBDU0kgdGltZWxpbmUgc3RhcnRlZCIse2NwbjpXLmNsaWVudFBsYXliYWNrTm9uY2V9KSkpOyFEfHxnLnZQKCJwYnMiLG4udGltZXJOYW1lKXx8Vy5HU3x8Zy5QOChuLEQpfX07ClAkQz1mdW5jdGlvbihuKXtXUCgpO2NiKCJ3YXRjaCIsWyJwYnMiLCJwYnUiXSk7bi50aW1lck5hbWU9IiJ9OwpaQmo9ZnVuY3Rpb24obil7aWYobi5OKXt2YXIgVz1uLk47Vy5KPXt9O1cuSHY9e319bi5XPSExO24uaj12b2lkIDA7bi5KPU5hTn07ClVRaT1mdW5jdGlvbihuLFcpe3ZhciBEPSExLGI9bi5xdWV1ZS5maW5kSW5kZXgodj0+di5ncz09PVcpOwpiPj0wJiYobi5xdWV1ZS5zcGxpY2UoYiwxKSxEPSEwLFcucU4oKXx8Vy51bnN1YnNjcmliZSgicmVxdWVzdGNvbXBsZXRlZCIsbi5XLG4pLG4uVShXLCJkZXFfcXVldWUiLHt0Y3BuOlcuV04oKXx8Im5vbmUifSkpO2I9bi5KLmZpbmRJbmRleCh2PT52LmdzPT09Vyk7CmI+PTAmJihuLkouc3BsaWNlKGIsMSksRD0hMCxXLnFOKCl8fFcudW5zdWJzY3JpYmUoInJlcXVlc3Rjb21wbGV0ZWQiLG4uVyxuKSxuLlUoVywiZGVxX3dhaXQiLHt0Y3BuOlcuV04oKXx8Im5vbmUifSkpO3JldHVybiBEfTsKeW1pPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLnF1ZXVlKVcuZ3MucU4oKXx8bi51bnN1YnNjcmliZShXLmdzKTtmb3IobGV0IFcgb2Ygbi5KKVcuZ3MucU4oKXx8bi51bnN1YnNjcmliZShXLmdzKTtuLnF1ZXVlPVtdO24uSj1bXX07CkVWYj1mdW5jdGlvbihuLFcpe24uVShXLCJyZXFfbG9hZCIse3RjcG46Vy5XTigpfHwibm9uZSIsdHlwZToicHJlIn0pO2lmKCFuLnF1ZXVlLnNvbWUoYj0+Yi5ncz09PVcpJiYhbi5KLnNvbWUoYj0+Yi5ncz09PVcpKXt2YXIgRD17Z3M6VywKc3RhcnRlZDohMX07bi5xdWV1ZS5sZW5ndGg8bi5wb2xpY3kuTj9uLnF1ZXVlLnB1c2goRCk6KG4uSi5wdXNoKEQpLG4uVShXLCJ3YWl0Iix7dGNwbjpXLldOKCl8fCJub25lIn0pKTtuLlcoKX19OwppQlM9ZnVuY3Rpb24obil7dmFyIFc9bi5OP24uTi5XTigpfHwibm9uZSI6Im5vbmUiLEQ9bi5xdWV1ZS5tYXAoYj0+Yi5ncy5XTigpfHwibm9uZSIpLmpvaW4oIiwiKTsKcmV0dXJue3BjcG46Vyx3czpuLkoubGVuZ3RoLGNwbnM6RH19OwpaVD1mdW5jdGlvbihuKXtyZXR1cm4hIShuLnBsYXlsaXN0fHxuLmxpc3R8fG4uYXBpKX07Cml2PWZ1bmN0aW9uKG4sVyxELGIpe1c9VyE9PXZvaWQgMD9XOm4uaW5kZXg7Vz1uLml0ZW1zJiZXIGluIG4uaXRlbXM/bi5pdGVtc1tuLm9yZGVyW1ddXTpudWxsO3ZhciB2PW51bGw7VyYmKEQmJihXLmF1dG9wbGF5PSIxIiksYiYmKFcuYXV0b25hdj0iMSIpLHY9bmV3IGcuVXIobi55USxXKSxnLnUobix2KSx2Lk1kPSEwLHYuc3RhcnRTZWNvbmRzPW4uc3RhcnRTZWNvbmRzfHx2LmNsaXBTdGFydHx8MCxuLmxpc3RJZCYmKHYucGxheWxpc3RJZD1uLmxpc3RJZC50b1N0cmluZygpKSk7cmV0dXJuIHZ9Owp1QXQ9ZnVuY3Rpb24obixXKXtpZihXLnZpZGVvJiZXLnZpZGVvLmxlbmd0aCl7bi50aXRsZT1XLnRpdGxlfHwiIjtuLmRlc2NyaXB0aW9uPVcuZGVzY3JpcHRpb247bi52aWV3cz1XLnZpZXdzO24ubGlrZXM9Vy5saWtlcztuLmRpc2xpa2VzPVcuZGlzbGlrZXM7bi5hdXRob3I9Vy5hdXRob3J8fCIiO3ZhciBEPVcubG9vcDtEJiYobi5sb29wPUQpO0Q9aXYobik7bi5pdGVtcz1bXTtmb3IobGV0IGIgb2YgVy52aWRlbyliJiYoYi52aWRlb19pZD1iLmVuY3J5cHRlZF9pZCxuLml0ZW1zLnB1c2goYikpO24ubGVuZ3RoPW4uaXRlbXMubGVuZ3RoOyhXPVcuaW5kZXgpP24uaW5kZXg9VzpuLmZpbmRJbmRleChEKTtuLnNldFNodWZmbGUoITEpO24ubG9hZGVkPSEwO24uTiYmbi5OKCl9fTsKdXY9ZnVuY3Rpb24obixXKXtuLmluZGV4PWcuRmYoVywwLG4ubGVuZ3RoLTEpO24uc3RhcnRTZWNvbmRzPTB9Owp6YnI9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uYygpLGI9bi5HKCksdj17Y29udGV4dDpnLm9UKG4pLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDp7YW5jZXN0b3JPcmlnaW5zOmIuYW5jZXN0b3JPcmlnaW5zfX19LGs9Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk7az8uZW5jcnlwdGVkSG9zdEZsYWdzJiYodi5wbGF5YmFja0NvbnRleHQuY29udGVudFBsYXliYWNrQ29udGV4dC5lbmNyeXB0ZWRIb3N0RmxhZ3M9ay5lbmNyeXB0ZWRIb3N0RmxhZ3MpO2s/LmhpZGVJbmZvJiYodi5wbGF5ZXJQYXJhbXM9e3Nob3dpbmZvOiExfSk7Yj1iLmVtYmVkQ29uZmlnO2s9bi5OZDt2YXIgaD1XLmRvY2lkfHxXLnZpZGVvX2lkfHxXLnZpZGVvSWR8fFcuaWQ7aWYoIWgpe2g9Vy5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlO2lmKCFoKXt2YXIgeD1XLmVtYmVkZGVkX3BsYXllcl9yZXNwb25zZTt4JiYoaD1KU09OLnBhcnNlKHgpKX1oPWg/Zy53KGg/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5wbGF5QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50LApnLklRKT8udmlkZW9JZHx8bnVsbDpudWxsfWg9aD9oOnZvaWQgMDt4PW4ucGxheWxpc3RJZD9uLnBsYXlsaXN0SWQ6Vy5saXN0O3ZhciBMPVcubGlzdFR5cGU7aWYoeCl7dmFyIGU7TD09PSJ1c2VyX3VwbG9hZHMiP2U9e3VzZXJuYW1lOnh9OmU9e3BsYXlsaXN0SWQ6eH07b1YyKGIsayxoLFcsZSk7di5wbGF5bGlzdFJlcXVlc3Q9ZX1lbHNlIFcucGxheWxpc3Q/KGU9e3RlbXBsaXN0VmlkZW9JZHM6Vy5wbGF5bGlzdC50b1N0cmluZygpLnNwbGl0KCIsIil9LG9WMihiLGssaCxXLGUpLHYucGxheWxpc3RSZXF1ZXN0PWUpOmgmJihlPXt2aWRlb0lkOmh9LGs/ZS5zZXJpYWxpemVkVGhpcmRQYXJ0eUVtYmVkQ29uZmlnPWs6YiYmKGUuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1iKSx2LnNpbmdsZVZpZGVvUmVxdWVzdD1lKTtiPUxCKGRRWik7dHJ5e2xldCBHPWF3YWl0IGcucl8oRCx2LGIpLHI9bi5HKCk7Vy5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlPUc7ci5jSj0KaE8oVyxnLm80KHIpKTtyLkQ9ci5jSj09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiO0cmJkcudHJhY2tpbmdQYXJhbXMmJmcueXIoRy50cmFja2luZ1BhcmFtcyk7cmV0dXJuIG5ldyBnLlVyKHIsVyl9Y2F0Y2goRyl7cmV0dXJuIEcgaW5zdGFuY2VvZiBFcnJvcnx8KEc9RXJyb3IoImIyNTk4MDI3NDgiKSksZy5YaihHKSxufX07Cm9WMj1mdW5jdGlvbihuLFcsRCxiLHYpe2IuaW5kZXgmJih2LnBsYXlsaXN0SW5kZXg9U3RyaW5nKE51bWJlcihiLmluZGV4KSsxKSk7di52aWRlb0lkPUQ/RDoiIjtXP3Yuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1XOm4mJih2LnNlcmlhbGl6ZWRUaGlyZFBhcnR5RW1iZWRDb25maWc9bil9OwpnLmQ5PWZ1bmN0aW9uKG4sVyl7b0cuZ2V0KG4pO29HLnNldChuLFcpfTsKZy5sTVU9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5HKCkuUygiaHRtbDVfdXNlX2hsc19uYXRpdmVfY2FwdGlvbnMiKSYmZy5HbiYmbi56VygpJiYhIW4uSj8uVygpfTsKZy56Rz1mdW5jdGlvbihuLFcpe3JldHVybiBuLkcoKS5TKCJzYWZhcmlfbGl2ZV9kcm1fY2FwdGlvbnNfZml4IikmJm4uZ2V0VmlkZW9EYXRhKCk/Lk1pKCk/ITE6Zy5HbChuLkcoKSkmJiFXLmlzTWFuaWZlc3RsZXNzfTsKZy5sdj1mdW5jdGlvbihuLFcpe3JldHVybiBuLmluZm8uTigpP1c/bi5pbmZvLml0YWc9PT1XOiEwOiExfTsKZy5UYmk9ZnVuY3Rpb24obixXKXtpZihuLk4hPW51bGwmJmcuekcoVyxuLk4pJiZuLk4uTi5yYXdjYyE9bnVsbClyZXR1cm4hMDtpZighbi56VygpKXJldHVybiExO1c9ISFuLk4mJm4uTi5pc01hbmlmZXN0bGVzcyYmT2JqZWN0LnZhbHVlcyhuLk4uTikuc29tZShEPT5nLmx2KEQsIjM4NiIpKTsKbj0hIW4uTiYmIW4uTi5pc01hbmlmZXN0bGVzcyYmZy5tSChuLk4pO3JldHVybiBXfHxufTsKRCQ9ZnVuY3Rpb24obil7aWYobi5BLkcoKS5lJClyZXR1cm4gbi5OaS5nZXQoInV4Iil9OwpURz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImFkIil9OwpqbD1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImNhcHRpb25zIil9OwpDYT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImFubm90YXRpb25zX21vZHVsZSIpfTsKR3U9ZnVuY3Rpb24obil7aWYobi5BLkcoKS5GZSlyZXR1cm4gbi5OaS5nZXQoInJlbW90ZSIpfTsKQjg9ZnVuY3Rpb24obil7cmV0dXJuIG4uTmkuZ2V0KCJjcmVhdG9yZW5kc2NyZWVuIil9OwpGWT1mdW5jdGlvbihuKXtpZihnLlhDKG4uQS5HKCkpKXJldHVybiBuLk5pLmdldCgia2lkcyIpfTsKZy4kRj1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoIndlYmdsIil9OwpqTGo9ZnVuY3Rpb24obixXKXtuLlc9V307CkMkdz1mdW5jdGlvbihuKXt2YXIgVz1uLkEuZ2V0VmlkZW9EYXRhKCk7cmV0dXJuIGcubE1VKFcsbi5BKXx8ISFXLndhfHwhIVcuY2FwdGlvblRyYWNrcy5sZW5ndGh8fGcuVGJpKFcsbi5BKX07Cnc5PWZ1bmN0aW9uKG4sVyxEPSExLGI9ITEsdil7dmFyIGssaD1uLk5pLmdldChXKTtpZighaHx8YilpZih2fHwodj0oKT0+e3c5KG4sVyxELGIpfSksa3x8KGs9KCk9PntNVChuLFcpfSksaD1ofHxCYmgobixXLEZxTShuLFcpLHYsaykpbi5OaS5zZXQoVyxoKSxoLmNyZWF0ZSgpLG4uQS5XSigibW9kdWxlY3JlYXRlZCIsVyksRCYmZy5WVShuLkEsIm9uQXBpQ2hhbmdlIil9OwpSRz1mdW5jdGlvbihuKXtpZihuLkEuRygpLkQpcmV0dXJuITE7aWYobj1uLkEuZ2V0VmlkZW9EYXRhKHtwbGF5ZXJUeXBlOjF9KS5nZXRQbGF5ZXJSZXNwb25zZSgpKXtsZXQgVz1uLmFkUGxhY2VtZW50cztpZihXKWZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKWlmKFdbRF0uYWRQbGFjZW1lbnRSZW5kZXJlcilyZXR1cm4hMDtpZihuLmFkU2xvdHMpcmV0dXJuITB9cmV0dXJuITF9OwpRWT1mdW5jdGlvbihuKXtyZXR1cm4gbi5BLkcoKS5TKCJodG1sNV9hbGxvd19hc21qcyIpfHxuLkEuRygpLlp0KCkuTi5RUSh3YlMpfTsKRnFNPWZ1bmN0aW9uKG4sVyl7c3dpdGNoKFcpe2Nhc2UgImFkIjpyZXR1cm4gUkcobik7Y2FzZSAiYW5ub3RhdGlvbnNfbW9kdWxlIjpyZXR1cm4hMTtjYXNlICJhc21qcyI6cmV0dXJuIFFZKG4pO2Nhc2UgImNyZWF0b3JlbmRzY3JlZW4iOnJldHVybiExO2Nhc2UgImVtYmVkIjpyZXR1cm4gZy5vNChuLkEuRygpKTtjYXNlICJlbmRzY3JlZW4iOnJldHVybiExO2Nhc2UgImhlYXJ0YmVhdCI6cmV0dXJuIG4ueVAoKTtjYXNlICJraWRzIjpyZXR1cm4gZy5YQyhuLkEuRygpKTtjYXNlICJyZW1vdGUiOnJldHVybiBuLkEuRygpLkZlO2Nhc2UgIm1pbmlwbGF5ZXIiOnJldHVybiBuLkEuRygpLnNob3dNaW5pcGxheWVyVWlXaGVuTWluaW1pemVkO2Nhc2UgIm9mZmxpbmUiOnJldHVybiBuLkEuRygpLlpoO2Nhc2UgImNhcHRpb25zIjpyZXR1cm4gQyR3KG4pO2Nhc2UgInVucGx1Z2dlZCI6cmV0dXJuIGcuRGYobi5BLkcoKSk7Y2FzZSAidXgiOnJldHVybiBuLkEuRygpLmUkO2Nhc2UgIndlYmdsIjpXPQpuLkEuZ2V0VmlkZW9EYXRhKCk7dmFyIEQ9bi5BLkcoKTtuPWcuamQoKTtsZXQgYj1nLm5OKEQpLHY9Vy5KPy52aWRlbz8uaXNIZHIoKTtEPSFnLnF1KFcpJiYhdiYmRC5TKCJlbmFibGVfd2ViZ2xfbm9vcCIpO3JldHVybiBnLkpEKFcpfHxnLkhUKFcpfHxnLmZBKFcpP258fGI6Zy5rcChXKT9iOkQ/YjohMTtjYXNlICJ5cGMiOnJldHVybiBuLklWKCk7ZGVmYXVsdDpyZXR1cm4gZy5YaihFcnJvcihgTW9kdWxlIGRlc2NyaXB0b3IgJHtXfSBkb2VzIG5vdCBtYXRjaGApKSwhMX19OwpNVD1mdW5jdGlvbihuLFcpe1c9TUxiW1ddO2ZvcihsZXQgRCBvZiBXKW4uQS5HaShEKX07CkJiaD1mdW5jdGlvbihuLFcsRCxiLHYpe3RyeXtpZihEKXtsZXQgaz1vRy5nZXQoVyk7aWYoaylyZXR1cm4gbmV3IGsobi5BKTtSYngobixXLGIsdil9ZWxzZSBNVChuLFcpfWNhdGNoKGspe01UKG4sVyksZy5YaihrKX1yZXR1cm4gbnVsbH07ClJieD1mdW5jdGlvbihuLFcsRCxiKXtpZihuLkQpe3ZhciB2PVFMaVtXXTtXPW4uRCt2O24uSyYmKFcrPWA/Y2I9JHtuLkt9YCk7VkxNKG4sVywoKT0+e24uai5hZGQodik7RC5jYWxsKG4pfSxiKX19OwpjbWI9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9bi5OaS5nZXQoImFzbWpzIik7aWYoVylyZXR1cm4gVztXPW9HLmdldCgiYXNtanMiKT8/YXdhaXQgbmV3IFByb21pc2UoKEQsYik9PntSYngobiwiYXNtanMiLCgpPT57dmFyIHY9b0cuZ2V0KCJhc21qcyIpO3Y/RCh2KTpiKCJjYW5ub3QgbG9hZCBtb2R1bGUgYXNtanMiKX0sYil9KTsKaWYoIVcpcmV0dXJuIFByb21pc2UucmVqZWN0KCJjYW5ub3QgbG9hZCBtb2R1bGUgYXNtanMiKTtXPW5ldyBXKG4uQSk7bi5OaS5zZXQoImFzbWpzIixXKTtXLmNyZWF0ZSgpO3JldHVybiBXfTsKVlk9ZnVuY3Rpb24obil7dmFyIFc9bi5BLmdldFZpZGVvRGF0YSgpO2lmKG49Vy5TKCJ3ZWJfcGxheWVyX2RlZmVyX2FkIikpe2lmKGcuamooVy5JSiwiYWQiKXx8dzYoVyl8fFcuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkpdmFyIEQ9ITE7ZWxzZXtuPVcuc3RhcnRTZWNvbmRzO3ZhciBiPVcucGxheWVyUmVzcG9uc2U/LmFkUGxhY2VtZW50cztpZihXPWIpe1c9TnVtYmVyLk1BWF9WQUxVRTtmb3IoRCBvZiBiKWlmKGI9RC5hZFBsYWNlbWVudFJlbmRlcmVyKXtsZXQgdj1iLmNvbmZpZz8uYWRQbGFjZW1lbnRDb25maWc7dj8ua2luZD09PSJBRF9QTEFDRU1FTlRfS0lORF9NSUxMSVNFQ09ORFMiJiYoYj0oTnVtYmVyKHY/LmFkVGltZU9mZnNldD8ub2Zmc2V0U3RhcnRNaWxsaXNlY29uZHMpfHwwKS1OdW1iZXIoYi5yZW5kZXJlcj8uYWRCcmVha1NlcnZpY2VSZW5kZXJlcj8ucHJlZmV0Y2hNaWxsaXNlY29uZHN8fDApLGI8VyYmKFc9YikpfVc9Vy01RTM8PW4qMUUzfUQ9Vz8hMTohMH1uPQpEfXJldHVybiBufTsKYU1VPWFzeW5jIGZ1bmN0aW9uKG4pe3JldHVybiBhd2FpdCBjbWIobil9OwpuRGo9ZnVuY3Rpb24obil7dmFyIFc9bi5BLmdldFZpZGVvRGF0YSgpLEQ9bi5PJiYhVy5pc0lubGluZVBsYXliYWNrTm9BZDtuLkEuUygiaHRtbDVfZGVmZXJfbW9kdWxlc19vbl9hZHNfb25seSIpJiYhVy5pc0FkKCkmJihEPSExKTtyZXR1cm4gRH07CmcuYzg9ZnVuY3Rpb24obil7VlkobikmJm4uWCgpO25EaihuKSYmKHc5KG4sImNhcHRpb25zIiwhMCksdzkobiwiZW5kc2NyZWVuIiksbi5OKCksdzkobiwiY3JlYXRvcmVuZHNjcmVlbiIsITApKX07CmFHPWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgV0VpKXtsZXQgdj1uLk5pLmdldChiKTt2JiYoRHx8di5oVihXKSkmJihnLkNwKHYpLG4uTmkuZGVsZXRlKGIpKX1uLkEuV0ooIm1vZHVsZXNEZXN0cm95ZWQiLFcpfTsKRHJaPWZ1bmN0aW9uKG4pe3JldHVybiBKZSgoKT0+bi5OaS5nZXQoImFzbWpzIik/P2FNVShuKSl9OwpWTE09ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNDUklQVCIpLGs9ITE7Zm9yKGxldCBIPTA7SDx2Lmxlbmd0aDtIKyspe2xldCBBPXZbSF07aWYoQS5zcmM9PT1XfHxBLmdldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zcmMiKT09PVcpdmFyIGg9QX1ofHwoaD1nLnpGKCJTQ1JJUFQiKSxoLnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zcmMiLFcpLGs9ITApO3ZhciB4PSgpPT57bi5xTigpfHxELmNhbGwobil9LEw9KCk9PntuLnFOKCl8fGIuY2FsbChuKX0sZT1oLm9ubG9hZDsKaC5vbmxvYWQ9SD0+e2cuVDcoeCk7ZSYmZS5hcHBseSh3aW5kb3csW0hdKX07CnZhciBHPWgub25lcnJvcjtoLm9uZXJyb3I9SD0+e2lmKE1hdGgucmFuZG9tKCk8LjAxKXtsZXQgQT1uZXcgZy5ReCgiVW5hYmxlIHRvIGxvYWQgcGxheWVyIG1vZHVsZSIsVyxkb2N1bWVudC5sb2NhdGlvbiYmZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKTtnLlhqKEEpfWcuVDcoTCk7RyYmRyhIKX07CnZhciByPWgsTj1yLm9ucmVhZHlzdGF0ZWNoYW5nZTtyLm9ucmVhZHlzdGF0ZWNoYW5nZT1IPT57c3dpdGNoKHIucmVhZHlTdGF0ZSl7Y2FzZSAibG9hZGVkIjpjYXNlICJjb21wbGV0ZSI6Zy5UNyh4KX1OJiZOKEgpfTsKayYmKCh2PW4uQS5HKCkuY3NwTm9uY2UpJiZoLnNldEF0dHJpYnV0ZSgibm9uY2UiLHYpLGcuUE0oaCxmdyhXKSksdj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdfHxkb2N1bWVudC5ib2R5LHYuaW5zZXJ0QmVmb3JlKGgsdi5maXJzdENoaWxkKSxuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57aC5wYXJlbnROb2RlJiZoLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaCl9KSl9OwpXYz1mdW5jdGlvbihuLFcsRCl7bi5xTigpO3ZhciBiPW5PKG4pO0Q/KG4uSnw9VyxXJjEmJm4uRC5zdGFydCgpLFcmMiYmbi5PLnN0YXJ0KCksVyYyMDQ4JiZuLmNKLnN0YXJ0KCkpOihuLkomPX5XLFcmMSYmbi5ELnN0b3AoKSxXJjImJm4uTy5zdG9wKCksVyYyMDQ4JiZuLmNKLnN0b3AoKSxXJjUxMiYmbi50dy5zdG9wKCkpO24uSiY1MTImJiEobi5KJjEyOCkmJmcuSmEobi50dyxuLlZRKTtXPW5PKG4pO2IhPT1XJiZuLldKKCJhdXRvaGlkZXVwZGF0ZSIsVyl9OwpibFo9ZnVuY3Rpb24obil7V2Mobiw0LCExKTtuLksmJihuLk4ud0gobi5LKSxuLks9bnVsbCxuLlc9bi5OLk5OKG4udGFyZ2V0LCJtb3VzZW92ZXIiLG4uWjEpKTtuLlcmJihuLk4ud0gobi5XKSxuLlc9bi5OLk5OKG4udGFyZ2V0LCJtb3VzZW92ZXIiLG4uWjEpKX07Cm5PPWZ1bmN0aW9uKG4pe3ZhciBXPW4uSjtuLmFwaS5HKCkuZlImJihXJj0tMTI5KTtuLmFwaS5TKCJ3ZWJfcGxheWVyX2RlZmF1bHRfYXV0b2hpZGUiKSYmKFcmPS01MTMpO3JldHVybiFXfTsKdkQxPWZ1bmN0aW9uKG4sLi4uVyl7dmFyIEQ9bi5hcGkuRygpO2ZvcihsZXQgayBvZiBXKXtpZigha3x8ayBpbnN0YW5jZW9mIGcuVXImJiFrLnZpZGVvSWQpY29udGludWU7dmFyIGI9bi5hcGkubGooKS5nZXRQbGF5ZXJTaXplKCk7dmFyIHY9Zy5IXygpO1c9Yi53aWR0aCp2O3YqPWIuaGVpZ2h0O2lmKFc+MTI4MHx8dj43MjApaWYoYj1rLkdCKCJtYXhyZXNkZWZhdWx0LmpwZyIpKWJyZWFrO2lmKFc+NjQwfHx2PjQ4MClpZihiPWsuR0IoIm1heHJlc2RlZmF1bHQuanBnIikpYnJlYWs7aWYoVz4zMjB8fHY+MTgwKWlmKGI9ay5HQigic2RkZWZhdWx0LmpwZyIpfHxrLkdCKCJocWRlZmF1bHQuanBnIil8fGsuR0IoIm1xZGVmYXVsdC5qcGciKSlicmVhaztpZihiPWsuR0IoImRlZmF1bHQuanBnIikpYnJlYWt9Zy4kNihEKSYmKEQ9bmV3IEltYWdlLEQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt5U2goKX0pLEQuc3JjPWI/YjoiIixuLmFwaS5lRygpLnRpY2soImZ0ciIpKTsKbi5ZLnN0eWxlLmJhY2tncm91bmRJbWFnZT1iP2B1cmwoJHtifSlgOiIifTsKa1cxPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wO1c8bi5rZXlzLmxlbmd0aDtXKyspbi53SChuLmtleXNbV10pO24ua2V5cz1bXX07CmJzPWZ1bmN0aW9uKG4sVyxELGI9ITEsdj0hMSxrLGg9ITApe3Z8fCh2PW4uYXBpLkcoKS5KKTt2YXIgeD1uLmFwaS5nZXRWaWRlb0RhdGEoKTtXPWVCKGcuRHVbV118fCIiLGI/e0NQTjp4LmNsaWVudFBsYXliYWNrTm9uY2V9Ont9KS5zcGxpdCgvXCQoQkVHSU58RU5EKV9MSU5LLyk7Yj1bXTtrJiZiLnB1c2goe1o6ImgyIixPcTprfSk7Yi5wdXNoKFdbMF0pO2gmJmIucHVzaCh7WjoiYnIifSk7Yi5wdXNoKHtaOiJhIix4YTp7aHJlZjpELHRhcmdldDp2PyJfYmxhbmsiOm51bGx9LEp3OiJ5dHAtZXJyb3ItbGluayIsT3E6V1syXX0pO24uaj0hMDtiLnB1c2goV1s0XSk7cmV0dXJue1o6InNwYW4iLFhGOmJ9fTsKdmM9ZnVuY3Rpb24obil7bj1uLnNwbGl0KGgwWik7dmFyIFc9W107Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKz0zKXtsZXQgYj1uW0QrK10uc3BsaXQoIlxuIik7Vy5wdXNoKGJbMF0pO2ZvcihsZXQgdj0xO3Y8Yi5sZW5ndGg7disrKVcucHVzaCh7WjoiYnIifSksVy5wdXNoKGJbdl0pO0Q8bi5sZW5ndGgmJlcucHVzaCh7WjoiYSIseGE6e2hyZWY6bltEXSx0YXJnZXQ6bltEKzFdfSxPcTpuW0QrMl19KX1yZXR1cm57Wjoic3BhbiIsWEY6V319Owp4cnQ9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKTtmb3IobGV0IGI9MDtiPEQubGVuZ3RoO2IrKyl7bGV0IHY9bi5OTihEW2JdLCJjbGljayIsVyk7bi5rZXlzLnB1c2godil9fTsKa0k9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9TnVtYmVyKFcuZ2V0QXR0cmlidXRlKCJkYXRhLW92ZXJsYXktb3JkZXIiKSl8fDAsaz0wLGg9bnVsbDtmb3IobGV0IHggb2YgRC5jaGlsZHJlbil7aWYoYiYmeC5jbGFzc0xpc3QuY29udGFpbnMoInl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXIiKSl7aD14O2JyZWFrfWlmKHY8KE51bWJlcih4LmdldEF0dHJpYnV0ZSgiZGF0YS1vdmVybGF5LW9yZGVyIikpfHwwKSlicmVhaztrKyt9aD9rSShuLFcsaCwhMSk6Yj8obj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuLmNsYXNzTGlzdC5hZGQoInl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXIiKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1vdmVybGF5LW9yZGVyIixgJHt2fWApLGg9bixoLmFwcGVuZENoaWxkKFcpLGcuanAoRCxoLGspKTpnLmpwKEQsVyxrKX07CmUwQz1mdW5jdGlvbihuLFcpe3ZhciBEPXREKFcpLGI9JHAoVyk7Vy5EbCYmbi5BLkpuKCl8fChuLk58fG4uQS5TKCJlbmFibGVfcGFpZF9jb250ZW50X292ZXJsYXlfYnVnZml4Iik/Vy52aWRlb0lkJiZXLnZpZGVvSWQhPT1uLnZpZGVvSWQmJihuLk4/LmplKCksIW4uQS5TKCJlbmFibGVfcGFpZF9jb250ZW50X292ZXJsYXlfYnVnZml4Iil8fEQmJmI/KG4udmlkZW9JZD1XLnZpZGVvSWQsbi5LPSEhYixuLksmJkQmJkxFcihuLGIsRCxXKSk6bi5LPSExKTpEJiZiJiYhbi5BLlMoImVuYWJsZV9wYWlkX2NvbnRlbnRfb3ZlcmxheV9idWdmaXgiKSYmTEVyKG4sYixELFcpKX07CmdEeD1mdW5jdGlvbihuLFcpe24uTiYmKFcuTig4KSYmbi5LPyhuLks9ITEsbi5XP24uVy5zdGFydCgpOm4uaigpKTooVy5OKDIpfHxXLk4oNjQpKSYmbi52aWRlb0lkJiYobi52aWRlb0lkPW51bGwsbi5XJiZuLlcuc3RvcCgpKSl9OwpMRXI9ZnVuY3Rpb24obixXLEQsYil7bi5OJiZuLk4uZGlzcG9zZSgpO24uTj1uZXcgZy5mXyhuLnV5LFcsbik7Zy51KG4sbi5OKTtiPUdlKGIpO1c9Yj8ubmF2aWdhdGlvbkVuZHBvaW50O2I9Yj8uaWNvbj8uaWNvblR5cGU7dmFyIHY9Zy53KFcsZy5Qaik/LnVybDtuLkEuc2V0VHJhY2tpbmdQYXJhbXMobi5lbGVtZW50LFc/LmNsaWNrVHJhY2tpbmdQYXJhbXN8fG51bGwpO1cmJiF2PyhuLmlubmVydHViZUNvbW1hbmQ9Vyx2PSIjISIpOm4uaW5uZXJ0dWJlQ29tbWFuZD1udWxsO24uVi51cGRhdGUoe2hyZWY6dj8/IiMiLHRleHQ6RCxpY29uOmI9PT0iTU9ORVlfSEFORCI/e1o6InN2ZyIseGE6e2ZpbGw6Im5vbmUiLGhlaWdodDoiMTAwJSIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMTAwJSJ9LFhGOlt7WjoicGF0aCIseGE6e2Q6Ik02IDlINVY1VjRINkgxOVY1SDZWOVpNMjEuNzIgMTYuMDRDMjEuNTYgMTYuOCAyMS4xNSAxNy41IDIwLjU1IDE4LjA1QzIwLjQ3IDE4LjEzIDE4LjQyIDIwLjAxIDE0LjAzIDIwLjAxQzEzLjg1IDIwLjAxIDEzLjY3IDIwLjAxIDEzLjQ4IDIwQzExLjMgMTkuOTIgOC41MSAxOS4yMyA1LjQgMThIMlYxMEg1SDZIN1Y2SDIxVjEzSDE2LjcyQzE2LjM3IDEzLjU5IDE1Ljc0IDE0IDE1IDE0SDEyLjdDMTMuMDEgMTQuNDYgMTMuNTYgMTUgMTQuNSAxNUgxNS4wMkMxNi4wNyAxNSAxNy4xIDE0LjY0IDE3LjkyIDEzLjk4QzE4LjgyIDEzLjI2IDIwLjAzIDEzLjIyIDIwLjkxIDEzLjg0QzIxLjU4IDE0LjMyIDIxLjkgMTUuMTkgMjEuNzIgMTYuMDRaTTE1IDEwQzE1IDkuNDUgMTQuNTUgOSAxNCA5QzEzLjQ1IDkgMTMgOS40NSAxMyAxMEgxNVpNMjAgMTFDMTkuNDUgMTEgMTkgMTEuNDUgMTkgMTJIMjBWMTFaTTE5IDdDMTkgNy41NSAxOS40NSA4IDIwIDhWN0gxOVpNOCA4QzguNTUgOCA5IDcuNTUgOSA3SDhWOFpNOCAxMEgxMkMxMiA4LjkgMTIuOSA4IDE0IDhDMTUuMSA4IDE2IDguOSAxNiAxMFYxMC4yOEMxNi41OSAxMC42MyAxNyAxMS4yNiAxNyAxMkgxOEMxOCAxMC45IDE4LjkgMTAgMjAgMTBWOUMxOC45IDkgMTggOC4xIDE4IDdIMTBDMTAgOC4xIDkuMSA5IDggOVYxMFpNNSAxMy41VjExSDNWMTdINVYxMy41Wk0yMC4zMyAxNC42NkMxOS44MSAxNC4yOSAxOS4xIDE0LjMxIDE4LjYgMTQuNzFDMTcuNTUgMTUuNTYgMTYuMjkgMTYgMTUuMDIgMTZIMTQuNUMxMi42MiAxNiAxMS42NyAxNC40NiAxMS40MyAxMy42NEwxMS4yNCAxM0gxNUMxNS41NSAxMyAxNiAxMi41NSAxNiAxMkMxNiAxMS40NSAxNS41NSAxMSAxNSAxMUg2VjEzLjVWMTcuMTZDOC45IDE4LjI5IDExLjUgMTguOTMgMTMuNTIgMTlDMTcuODUgMTkuMTUgMTkuODUgMTcuMzQgMTkuODcgMTcuMzJDMjAuMzMgMTYuOSAyMC42MiAxNi40IDIwLjc0IDE1Ljg0QzIwLjg0IDE1LjM3IDIwLjY4IDE0LjkxIDIwLjMzIDE0LjY2WiIsCmZpbGw6IndoaXRlIn19XX06bnVsbCxjaGV2cm9uOnZ8fG4uaW5uZXJ0dWJlQ29tbWFuZD9nLk9GKCk6bnVsbH0pfTsKWFBpPWZ1bmN0aW9uKG4pe24uVnx8KG4uVj0hMCxuLmFwaS5sb2dWaXNpYmlsaXR5KG4uZWxlbWVudCwhMCkpfTsKcW8yPWZ1bmN0aW9uKG4pe3ZhciBXPW9LKCkmJkV6KCk+PTY3JiYhbi5hcGkuRygpLnR3O249bi5hcGkuRygpLmRpc2FibGVPcmdhbmljVWk7cmV0dXJuIWcudWIoInRpemVuIikmJiFnLldYJiYhVyYmIW59OwpoaD1mdW5jdGlvbihuKXt2YXIgVz0hIW4uVjImJiFYeihuLmFwaSkmJiFuLmt0O3ZhciBEPW4uYXBpLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0yLGI9bi5hcGkuRygpO0Q/KGI9VEcobi5hcGkuSjUoKSksVz1XJiZiLmpRKCkpOihEPWIuUygid2ViX3BsYXllcl9pbWF4X3RoZWF0ZXJfbW9kZSIpJiZuLmFwaS5RMCgpJiYhbi5hcGkuaXNJbmxpbmUoKSxXPVcmJihiLnNafHxEfHxuLmFwaS5pc0Z1bGxzY3JlZW4oKXx8Yi5neSkpO24uQTAhPT1XJiYobi5BMD1XLGcuaUgobi5hcGkuZ2V0Um9vdE5vZGUoKSwieXRwLWhpZGUtaW5mby1iYXIiLCFXKSl9OwpHV2I9ZnVuY3Rpb24obixXKXtpZighVylyZXR1cm4hMTt2YXIgRD1uLmFwaS5oNSgpO2lmKEQuSygpJiYoRD1ELmVfKCkpJiZnLkJ4KEQsVykpcmV0dXJuIEQuY29udHJvbHM7Zm9yKEQ9MDtEPG4uSW4ubGVuZ3RoO0QrKylpZihnLkJ4KG4uSW5bRF0sVykpcmV0dXJuITE7Zm9yKGxldCBiIG9mIG4ua1gpaWYoZy5LXyhXLGIpKXJldHVybiExO3JldHVybiBXPT09bi5hcGkuZ2V0Um9vdE5vZGUoKT8hMTohMH07CnRrMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5nZXRQcmVzZW50aW5nUGxheWVyVHlwZSgpPT09MiYmKG4uYXBpLmxqKCkud0Z8fG4uYXBpLkcoKS5kaXNhYmxlT3JnYW5pY1VpKSYmbi5hcGkuRygpLmomJnhJJiZ2aj49MTE7bj1uLmFwaS5HKCkudHcmJnhJO3JldHVybiEoIVcmJiFuKX07CkxPPWZ1bmN0aW9uKG4sVyl7bi5qSi5MaigpO2lmKG4uYlcmJm4uUCQpbi5QJD0hMTtlbHNlIGlmKCFuLmFwaS5HKCkuc1YmJiFuLmVoKCkpe2xldCBEPW4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KCk7RC5OKDIpJiZxcChuLmFwaSl8fG4uc2hvd1BsYXliYWNrSWNvbihEKTtXJiYkck0obixXKT9yZVMobik6IW4uYXBpLkcoKS5SdHx8RC5pc0N1ZWQoKXx8RC5OKDEwMjQpP24uUGIoKTpuLmVOLmlzQWN0aXZlKCk/bi5lTi5zdG9wKCk6bi5lTi5zdGFydCgpfX07CmVzPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIW4uYXBpLmlzSW5saW5lKCkmJiFHV2IobixBTyhXKSkmJmYyKFcpfTsKZ2Y9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5hcGkuZ2V0VmlkZW9EYXRhKCk/Lm11dGVkQXV0b3BsYXkmJlcudGFyZ2V0Py5jbGFzc05hbWU/LmluY2x1ZGVzKCJ5dHAtaW5mby1wYW5lbCIpPyExOmYyKFcpJiZuLmFwaS5pc011dGVkQnlNdXRlZEF1dG9wbGF5KCk/KG4uYXBpLnVuTXV0ZSgpLG4uYXBpLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0yJiZuLmFwaS5wbGF5VmlkZW8oKSxXPW4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KCksIVcuTig0KXx8Vy5OKDgpfHxXLk4oMil8fG4uUGIoKSwhMCk6ITF9Owokck09ZnVuY3Rpb24obixXKXtpZighbi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfaW52aXNpYmxlX2Z1bGxzY3JlZW5fYnV0dG9uIikpcmV0dXJuITE7dmFyIEQ9bi5hcGkuZ2V0Um9vdE5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihXLnRhcmdldFRvdWNoZXMmJlcudGFyZ2V0VG91Y2hlcy5sZW5ndGgpe3ZhciBiPVcudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYO3ZhciB2PVcudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZfWVsc2UgVy5jbGllbnRYIT09dm9pZCAwJiYoYj1XLmNsaWVudFgsdj1XLmNsaWVudFkpO3JldHVybiBiIT09dm9pZCAwJiZ2IT09dm9pZCAwJiYoVz1iLUQubGVmdCxEPXYtRC50b3Asbj1uLmFwaS5nZXRQbGF5ZXJTaXplKCksRD49bi5oZWlnaHQtNDAmJlc+PW4ud2lkdGgtNDApPyEwOiExfTsKcmVTPWZ1bmN0aW9uKG4pe2lmKG4uYXBpLkcoKS5SdCYmbi5hcGkuZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKSE9PTMpdHJ5e24uYXBpLnRvZ2dsZUZ1bGxzY3JlZW4oKS5jYXRjaChXPT57c2pTKFcpfSksbi5hcGkuUygid2ViX3BsYXllcl9mdWxsc2NyZWVuX2RvdWJsZV9jbGlja192ZSIpJiZuLmFwaS5sb2dDbGljayhuLmFwaS5saigpLmVsZW1lbnQpfWNhdGNoKFcpe3NqUyhXKX19OwpzalM9ZnVuY3Rpb24obil7U3RyaW5nKG4pLmluY2x1ZGVzKCJmdWxsc2NyZWVuIGVycm9yIik/Zy5HcShuKTpnLlhqKG4pfTsKTl9oPWZ1bmN0aW9uKG4sVyxEKXtuLmFwaS5pc0Z1bGxzY3JlZW4oKT9EPDEtVyYmbi5hcGkudG9nZ2xlRnVsbHNjcmVlbigpOkQ+MStXJiZuLmFwaS50b2dnbGVGdWxsc2NyZWVuKCl9OwpZb0M9ZnVuY3Rpb24oKXtwUGp8fCh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihYdz8idG91Y2hzdGFydCI6ImNsaWNrIiwoKT0+e2ZvcihsZXQgbj1xSy5sZW5ndGg7bjw0O24rKyl7bGV0IFc9Zy56RigiVklERU8iKTtXLmxvYWQoKTtxSy5wdXNoKG5ldyBnLkdWKFcpKX19LHtjYXB0dXJlOiEwLApwYXNzaXZlOiEwfSkscFBqPSEwKX07CnRoPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQuZ2V0VmlkZW9EYXRhKCksaz1XLmdldFZpZGVvRGF0YSgpO2lmKEQuZ2V0UGxheWVyU3RhdGUoKS5pc0Vycm9yKCkpcmV0dXJue21zZzoicGxheWVyLWVycm9yIn07dmFyIGg9ay5XO2lmKFcub3QoKT5iLzFFMysxKXJldHVybnttc2c6ImluLXRoZS1wYXN0In07aWYoay5pc0xpdmVQbGF5YmFjayYmIWlzRmluaXRlKGIpKXJldHVybnttc2c6ImxpdmUtaW5maW5pdGUifTtiPVcuaDUoKTt2YXIgeD1udWxsO2ImJih4PWIuaXNWaWV3KCk/Yi5tZWRpYUVsZW1lbnQuVigpOmIuVigpKTtpZih4JiZ4Lmxlbmd0aD4xMiYmZy5xdSh2KSlyZXR1cm57bXNnOiJwbGF5ZWQtcmFuZ2VzIn07aWYoIXYuVylyZXR1cm4gbnVsbDtpZighaClyZXR1cm57bXNnOiJuby1wdmQtZm9ybWF0cyJ9O2lmKCF2LlcuTigpfHwhaC5OKCkpcmV0dXJue21zZzoibm9uLWRhc2gifTtiPWgudmlkZW9JbmZvc1swXTt4PXYuVy52aWRlb0luZm9zWzBdO24uVEMmJkFKKGspJiYKKGI9Vy5veSgpLHg9RC5veSgpKTtpZighYnx8IXgpcmV0dXJue21zZzoibm8tdmlkZW8taW5mbyJ9O2lmKG4uTyYmKGIuTVcoKXx8eC5NVygpKSlyZXR1cm57bXNnOiJhdjEifTtXPW4uWSYmay5OUCgpJiZWVCgpO2lmKHguY29udGFpbmVyVHlwZSE9PWIuY29udGFpbmVyVHlwZSlpZihXKWsuVSgic2dhcCIse2llcnI6ImNvbnRhaW5lciJ9KTtlbHNlIHJldHVybnttc2c6ImNvbnRhaW5lciJ9O2lmKG4uRCYmIVcmJih4LklCIT09Yi5JQnx8eC5JQj09PSIifHxiLklCPT09IiIpKXJldHVybnttc2c6ImNvZGVjIn07aWYobi5jSiYmeC52aWRlbyYmYi52aWRlbyYmTWF0aC5hYnMoeC52aWRlby53aWR0aC94LnZpZGVvLmhlaWdodC1iLnZpZGVvLndpZHRoL2IudmlkZW8uaGVpZ2h0KT4uMDEpcmV0dXJue21zZzoicmF0aW8ifTtpZihnLnF1KGspJiZnLnF1KHYpKXJldHVybnttc2c6ImNvbnRlbnQtcHJvdGVjdGlvbiJ9O2g9aC5KWzBdO3Y9di5XLkpbMF07RD1oLmF1ZGlvO3ZhciBMPXYuYXVkaW87CmlmKEQuc2FtcGxlUmF0ZSE9PUwuc2FtcGxlUmF0ZSYmIWcub2QpaWYoVylrLlUoInNnYXAiLHtpZXJyOiJzcmF0ZSJ9KTtlbHNlIHJldHVybnttc2c6InNhbXBsZS1yYXRlIixjaTpoLml0YWcsY3I6RC5zYW1wbGVSYXRlLG5pOnYuaXRhZyxucjpMLnNhbXBsZVJhdGV9O3JldHVybihELm51bUNoYW5uZWxzfHwyKSE9PShMLm51bUNoYW5uZWxzfHwyKT97bXNnOiJjaGFubmVsLWNvdW50In06bi50dyYmay5OUCgpJiZiLnZpZGVvLmZwcyE9PXgudmlkZW8uZnBzP3ttc2c6ImZwcyJ9Om51bGx9OwpIbEM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uZ2V0VmlkZW9EYXRhKCksdj1XLmdldFZpZGVvRGF0YSgpO2lmKCFiLkcoKS5zdXBwb3J0c0dhcGxlc3NTaG9ydHMoKSlyZXR1cm57bnE6ImVudiJ9O2lmKCEoRC5iZCYmIShiLkd1JiYhYi5pc0FkKCl8fHYuR3UmJiF2LmlzQWQoKSl8fEQuViYmKCFiLkd1fHxiLmlzQWQoKSkmJiF2Lkd1fHxELksmJighdi5HdXx8di5pc0FkKCkpJiYhYi5HdXx8Yi52SigpJiZ2LnZKKCkmJiFiLmlzQWQoKXx8IWIuR3UmJiF2Lkd1KSlyZXR1cm57bnE6ImF1dG9wbGF5In07aWYoYi5lbmRTZWNvbmRzPjApcmV0dXJue25xOiJlbmRjciJ9O2lmKCFiLkspcmV0dXJue25xOiJjbGllbnQifTtpZighbi5kVCgpKXJldHVybntucToibm8tZW1wdHkifTtuPXRoKEQsbixXLEluZmluaXR5KTtyZXR1cm4gbiE9bnVsbD97bnE6bi5tc2d9Om51bGx9OwokST1mdW5jdGlvbihuKXtuLkomJm4uTiYmKG4uSi51bnN1YnNjcmliZSgiaW50ZXJuYWx2aWRlb2Zvcm1hdGNoYW5nZSIsbi5YLG4pLG4uTi51bnN1YnNjcmliZSgiZGF0YWxvYWRlZCIsbi5YLG4pKX07CkFldD1mdW5jdGlvbihuKXt2YXIgVz1uZXcgZlloO1cuWT1uLlMoImg1X2dhcGxlc3Nfc3VwcG9ydF90eXBlc19kaWZmIik7Vy50dz0hMTtXLlRDPW4uUygiaHRtbDVfZ2FwbGVzc191c2VfZm9ybWF0X2luZm9fZml4Iik7Vy5PPW4uUygiaHRtbDVfZ2FwbGVzc19kaXNhYmxlX29uX2F2MSIpJiYhbi5TKCJodG1sNV9nYXBsZXNzX2VuYWJsZV9vbl9hdjEiKTtXLkQ9bi5TKCJodG1sNV9nYXBsZXNzX2NoZWNrX2NvZGVjX2RpZmZfc3RyaWN0bHkiKTtXLmJkPW4uUygiaHRtbDVfZ2FwbGVzc19vbl9hZF9hdXRvcGxheSIpO1cuY0o9bi5TKCJodG1sNV9nYXBsZXNzX2Rpc2FibGVfZGlmZl9hc3BlY3RfcmFkaW8iKTtXLlY9bi5TKCJodG1sNV9nYXBsZXNzX2FkX2F1dG9wbGF5X29uX2FkX3RvX3ZpZGVvX29ubHkiKSYmIW4uUygiaHRtbDVfZGlzYWJsZV9sb29wX3JhbmdlX2Zvcl9zaG9ydHNfYWRzIik7Vy5XPW4uUygiaHRtbDVfcHNldWRvZ2FwbGVzc19zaG9ydHNfc2Vla190b19uZXh0X3N0YXJ0Iik7Clcuaj1uLlp0KCkuTi5RUShKZTEpO1cuSz1uLlMoImh0bWw1X2dhcGxlc3NfYWRfYXV0b3BsYXlfb25fdmlkZW9fdG9fYWRfb25seSIpO1cuTj1OdW1iZXIobi5adCgpLk4uUVEoSVlpKSk7Vy5KPWcuZE0obi5leHBlcmltZW50cywiaHRtbDVfc2hvcnRzX2dhcGxlc3NfbmV4dF9idWZmZXJfaW5fc2Vjb25kcyIpPz9XLko7Vy5YPU51bWJlcihuLlp0KCkuTi5RUShTb1MpPz9XLlgpO3JldHVybiBXfTsKcmY9ZnVuY3Rpb24obixXKXtXPD1uLnN0YXR1cy5zdGF0dXN8fChuLnN0YXR1cz17c3RhdHVzOlcsZXJyb3I6bnVsbH0sVz09PTUmJm4uQ1IucmVzb2x2ZSgpKX07Cm1yaj1mdW5jdGlvbihuLFcsRCxiKXtuPW4uaXNWaWV3KCk/bi5tZWRpYUVsZW1lbnQ6bjtyZXR1cm4gbmV3IGcuc2cobixXLEQsYil9OwpLRWg9YXN5bmMgZnVuY3Rpb24obil7aWYobi5xTigpKXJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcihuLnN0YXR1cy5lcnJvcnx8ImRpc3Bvc2VkIikpO24udGltZW91dC5zdGFydCgpO2F3YWl0IG4uQ1I7dmFyIFc9bi5OLmg1KCk7aWYoVy5pc0VuZGVkKCkpcmV0dXJuIG4uS2coImVuZGVkX2luX2ZpbmlzaFRyYW5zaXRpb24iKSxQcm9taXNlLnJlamVjdChFcnJvcihuLnN0YXR1cy5lcnJvcnx8IiIpKTtpZighbi5BYnx8IW42KG4uQWIpKXJldHVybiBuLlYmJm4uTi5VKCJubWMiLHtubXM6ISFuLkFiLG5tcnM6bi5BYj8uVygpfSksbi5LZygibmV4dF9tc2VfY2xvc2VkIiksUHJvbWlzZS5yZWplY3QoRXJyb3Iobi5zdGF0dXMuZXJyb3J8fCIiKSk7aWYobi5KLlV6KCkhPT1uLkFiKXJldHVybiBuLktnKCJuZXh0X21zZV9taXNtYXRjaCIpLFByb21pc2UucmVqZWN0KEVycm9yKG4uc3RhdHVzLmVycm9yfHwiIikpO3ZhciB7SF86RCxSOTpiLEYzOnZ9PW4uSygpO24uTi5jUCghMSwKITApO2lmKG4uVil7dmFyIGs9bi5BYi5OLGg9bi5BYi5KO2suVnUoITApO2guVnUoITApO2lmKGsuaVEoKSl7dmFyIHg9ay5aZygpO2xldCBMPWsuayQuTXIoKTt4JiZ4LnNlZ21lbnRTdGFydFRpbWUrTDxEJiZrLmFib3J0KCl9aC5pUSgpJiYoaz1oLlpnKCkseD1oLmskLk1yKCksayYmay5zZWdtZW50U3RhcnRUaW1lK3g8RCYmaC5hYm9ydCgpKX1uLnBvbGljeS5OPjAmJihuLlZ1KG4uQWIsITApLG4uSi51bCgpKTtoPW1yaihXLEQsdiwhbi5KLmdldFZpZGVvRGF0YSgpLmlzQWQoKSk7bi5KLnNldE1lZGlhRWxlbWVudChoKTsoaz1uLk4uTHAoKSkmJm4uSi5CbihrLkFvLGsud08pO24udHcmJihuLnBvbGljeS5XfHxuLkouc2Vla1RvKG4uSi5nZXRDdXJyZW50VGltZSgpKy4wMDEse0E5OiEwLFpVOjMscWQ6ImdhcGxlc3NfcHNldWRvIn0pLGgucGxheSgpKTtXPVcueXIoKTtXLmNwbj1uLk4uZ2V0VmlkZW9EYXRhKCkuY2xpZW50UGxheWJhY2tOb25jZTtXLnN0PWAke0R9YDtXLmV0PQpgJHt2fWA7bi5KLlUoImdhcGxlc3MiLFcpO24uTi5VKCJnYXBsZXNzVG8iLHtjcG46bi5KLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2V9KTtXPW4uTi5nZXRQbGF5ZXJUeXBlKCk9PT1uLkouZ2V0UGxheWVyVHlwZSgpO24uTi5OMihiLCEwLCExLFcsbi5KLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2Usbi5KLmdldFZpZGVvRGF0YSgpLnZpZGVvSWQpO24uSi5OMihuLkouZ2V0Q3VycmVudFRpbWUoKSwhMCwhMCxXLG4uTi5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlLG4uTi5nZXRWaWRlb0RhdGEoKS52aWRlb0lkKTtuLkouUDIoKTtnLm1LKCgpPT57IW4uSi5nZXRWaWRlb0RhdGEoKS5ZJiZuLkouZ2V0UGxheWVyU3RhdGUoKS5pc09yV2lsbEJlUGxheWluZygpJiZuLkouZTIoKX0pOwpyZihuLDYpO24uZGlzcG9zZSgpO3JldHVybiBQcm9taXNlLnJlc29sdmUoKX07ClBkWj1mdW5jdGlvbihuKXtpZihuLkouZ2V0VmlkZW9EYXRhKCkuVyl7dmFyIFc9bi50Yi5HKCkuUygiaHRtbDVfZ2FwbGVzc19zdXNwZW5kX25leHRfbG9hZGVyIikmJm4uaj09PTE7bi5KLm5tKG4uQWIsVyxuLmo9PT0xJiZnLllOKG4uTi5nZXRWaWRlb0RhdGEoKSkpO3JmKG4sMyk7T2xNKG4pO3ZhciB7Z2Q6RCxUYzpifT1OSyhuKTtELnN1YnNjcmliZSgidXBkYXRlZW5kIixuLmVYLG4pO2Iuc3Vic2NyaWJlKCJ1cGRhdGVlbmQiLG4uZVgsbik7bi5lWChEKTtuLmVYKGIpfX07Ck9sTT1mdW5jdGlvbihuKXtuLk4udW5zdWJzY3JpYmUoImludGVybmFsdmlkZW9kYXRhY2hhbmdlIixuLlgsbik7bi5KLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZGF0YWNoYW5nZSIsbi5YLG4pO24udGIuRygpLlMoImh0bWw1X2dhcGxlc3NfdXNlX2Zvcm1hdF9pbmZvX2ZpeCIpJiYobi5OLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixuLlgsbiksbi5KLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixuLlgsbikpO24uTi51bnN1YnNjcmliZSgibWVkaWFzb3VyY2VhdHRhY2hlZCIsbi5YLG4pO24uSi51bnN1YnNjcmliZSgic3RhdGVjaGFuZ2UiLG4uVEMsbil9OwpOSz1mdW5jdGlvbihuKXtyZXR1cm57Z2Q6bi5XLk4uayQsVGM6bi5XLkouayR9fTsKcE89ZnVuY3Rpb24obixXKXtpZighbilyZXR1cm4hMTt2YXIgRD1uLko7cmV0dXJuIEJSKG4uTj8uWkYoKSxXKSYmQlIoRD8uWkYoKSxXKX07ClpsaT1mdW5jdGlvbihuKXtpZighbilyZXR1cm4hMTt2YXIgVz1uLko7cmV0dXJuIG4uTj8uaVEoKXx8Vz8uaVEoKX07CkVEaj1hc3luYyBmdW5jdGlvbihuKXtpZighbi5xTigpJiZuLlgmJm4uTil7bi5PJiZuLmFwcC5NTigpLmtOKCEwLCExKTt2YXIgVz1udWxsO2lmKG4uVyl0cnl7YXdhaXQgS0VoKG4uVyl9Y2F0Y2goYil7Vz1ifWlmKG4uTiYmKFVydy5jVygidnFzcCIsKCk9PntuLmFwcC5RVChuLk4pfSksbi5OKSl7dmFyIEQ9bi5OLmg1KCk7Cm4uYXBwLkcoKS5TKCJodG1sNV9nYXBsZXNzX3NlZWtfb25fbmVnYXRpdmVfdGltZSIpJiZEJiZELmdldEN1cnJlbnRUaW1lKCk8LS4wMSYmbi5OLnNlZWtUbygwKTtVcncuY1coInZxcHYiLCgpPT57bi5hcHAucGxheVZpZGVvKCl9KTsKVyYmKG4uTj8oVz1XP1cubWVzc2FnZToiZm9yY2VkIixuLko/LlUoImdhcGZ1bGZiayIse3I6V30pLG4uYXBwLkcoKS5adCgpLk4uUVEoeWVpKSYmKG4uTi5nZXRWaWRlb0RhdGEoKS5HUz0hMSksbi5OLk9jKFcpKTpuLko/LlUoImdhcHNwIix7fSkpO1c9bi5YO1lJKG4pO1cmJlcucmVzb2x2ZSgpO1Byb21pc2UucmVzb2x2ZSgpfX19OwpIYz1mdW5jdGlvbihuKXtuLkQmJm4uaiYmbi5ELnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLG4uaik7bi5qPW51bGw7bi5EPW51bGx9OwpZST1mdW5jdGlvbihuLFc9ITEpe2lmKG4uSil7aWYobi5WKXt2YXIgRD1uLko7bi5hcHAuUkIucmVtb3ZlRXZlbnRMaXN0ZW5lcihnLm95KCJ2cXVldWVkIiksbi5ZKTtELnJlbW92ZUN1ZVJhbmdlKG4uVil9bi5KPW51bGw7bi5WPW51bGx9bi5XJiYobi5XLnN0YXR1cy5zdGF0dXMhPT02JiYoRD1uLlcsRC5zdGF0dXMuc3RhdHVzIT09SW5maW5pdHkmJkQuaiE9PTEmJkQuS2coIkNhbmNlbGVkIikpLG4uVz1udWxsKTtuLlg9bnVsbDtuLk4mJiFXJiZuLk4hPT1uLmFwcC5jWCgpJiZuLk4hPT1uLmFwcC5NTigpJiZuLk4uZGlzcG9zZSgpO24uTiYmVyYmbi5OLm15KCk7bi5OPW51bGw7bi5PPSExfTsKdTd0PWZ1bmN0aW9uKG4sVyxEPSEwKXt2YXIgYj1uLmFwcC5NTigpLHY9Yi5nZXRWaWRlb0RhdGEoKS5pc0xpdmVQbGF5YmFjaz9JbmZpbml0eTpiLlBHKCEwKSoxRTM7Vz52JiYoVz12LTIwMCwhbi5hcHAuRygpLlp0KCkuTi5RUShpbGkpfHxEKSYmKG4uTz0hMCk7RCYmYi5nZXRDdXJyZW50VGltZSgpPj1XLzFFMz9uLlkoKToobi5KPWIsRCYmKEQ9VyxXPW4uSixuLmFwcC5SQi5hZGRFdmVudExpc3RlbmVyKGcub3koInZxdWV1ZWQiKSxuLlkpLEQ9aXNGaW5pdGUoRCl8fEQvMUUzPlcuZ2V0RHVyYXRpb24oKT9EOjB4ODAwMDAwMDAwMDAwMCxuLlY9bmV3IGcubDUoRCwweDgwMDAwMDAwMDAwMDAse25hbWVzcGFjZToidnF1ZXVlZCJ9KSxXLmFkZEN1ZVJhbmdlKG4uVikpKX07CmRyTT1mdW5jdGlvbihuLFcsRCxiPTAsdj0wKXtuLmRUKCl8fChIYyhuKSxZSShuKSk7bi5YPW5ldyBZNjtuLk49Vzt1N3QobixELHY9PT0wKTt2YXIgaz1iLz0xRTMsaD1XLmdldFZpZGVvRGF0YSgpLk47aWYoYiYmaCYmbi5KKXtsZXQgeD1iLEw9MDtXLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrJiYoaz1NYXRoLm1pbihELzFFMyxuLkouUEcoITApKSxMPU1hdGgubWF4KDAsay1uLkouZ2V0Q3VycmVudFRpbWUoKSkseD1NYXRoLm1pbihiLFcuUEcoKStMKSk7az1tOHQoaCx4KXx8YjtrIT09YiYmbi5OLlUoInF2YWxuIix7c3Q6YixhdDprLHJtOkwsY3Q6eH0pfVc9aztiPW4uTjtiLmdldFZpZGVvRGF0YSgpLllaPSEwO2IuZ2V0VmlkZW9EYXRhKCkuSz0hMDtiLmd6KCEwKTtoPXt9O24uSiYmKGg9bi5KLmw1KCksaz1uLkouZ2V0VmlkZW9EYXRhKCkuY2xpZW50UGxheWJhY2tOb25jZSxoPXtjcnQ6KGgqMUUzKS50b0ZpeGVkKCksY3BuOmt9KTtiLlUoInF1ZXVlZCIsaCk7VyE9PQowJiZiLnNlZWtUbyhXKy4wMSx7QTk6ITAsWlU6MyxxZDoidmlkZW9xdWV1ZXJfcXVldWVkIn0pO24uVz1uZXcgb0RiKG4uSyxuLmFwcC5NTigpLG4uTixELG4uYXBwLHYpO0Q9bi5XO0Quc3RhdHVzLnN0YXR1cyE9PUluZmluaXR5JiYocmYoRCwxKSxELk4uc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZGF0YWNoYW5nZSIsRC5YLEQpLEQuSi5zdWJzY3JpYmUoImludGVybmFsdmlkZW9kYXRhY2hhbmdlIixELlgsRCksRC50Yi5HKCkuUygiaHRtbDVfZ2FwbGVzc191c2VfZm9ybWF0X2luZm9fZml4IikmJihELk4uc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixELlgsRCksRC5KLnN1YnNjcmliZSgiaW50ZXJuYWx2aWRlb2Zvcm1hdGNoYW5nZSIsRC5YLEQpKSxELk4uc3Vic2NyaWJlKCJtZWRpYXNvdXJjZWF0dGFjaGVkIixELlgsRCksRC5KLnN1YnNjcmliZSgic3RhdGVjaGFuZ2UiLEQuVEMsRCksRC5OLnN1YnNjcmliZSgibmV3ZWxlbWVudHJlcXVpcmVkIixELlZRLApEKSxELlgoKSk7cmV0dXJuIG4uWH07CmpqeD1mdW5jdGlvbihuLFcpe2lmKG4uYXBwLkcoKS5adCgpLk4uUVEoejBpKSl7dmFyIEQ9bi5hcHAuRygpLlp0KCkuTi5RUShsWWgpO2lmKCEoRDw9MCkpe0hjKG4pO3ZhciBiPW4uYXBwLk1OKCk/Lmg1KCk7YiYmbi5OJiYobi5hcHAuRygpLlp0KCkuTi5RUShUX0MpP24uTi5nZXRWaWRlb0RhdGEoKS5Sbz0hMDpuLk4uZ2V0VmlkZW9EYXRhKCkuR1M9ITAsbi5qPSgpPT57dmFyIHY9Yi5nZXRDdXJyZW50VGltZSgpO3Y+PVcrRC8xRTMmJih2PURhdGUubm93KCktKHYtVykqMUUzLG4uYXBwLmVHKCkudGljaygicGJzIix2KSxIYyhuKSl9LG4uRD1iLGIuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsbi5qKSl9fX07CkNkaj1mdW5jdGlvbihuLFcsRCl7aWYobi5kVCgpKXJldHVybiJxaWUiO2lmKG4uTj09bnVsbHx8bi5OLnFOKCl8fG4uTi5nZXRWaWRlb0RhdGEoKT09bnVsbClyZXR1cm4icXBkIjtpZihXLnZpZGVvSWQhPT1uLk4uRTEoKSlyZXR1cm4idmlubSI7aWYoKG4uVz8uYmQoKXx8LTEpPD0wKXJldHVybiJpdmQiO2lmKEQhPT0xKXJldHVybiJ1cHQiO249bi5XPy5lJCgpO3JldHVybiBuIT1udWxsP246bnVsbH07CkpoPWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKTtuLmRhdGEuZm9yRWFjaChEPT57RC5leHBpcmU8VyYmZk8obixELCEwKX0pOwpuLmRhdGE9Zy5FTShuLmRhdGEsRD0+IShELmV4cGlyZTxXKSl9OwpJZT1mdW5jdGlvbihuKXtuLk4uc3RvcCgpO3ZhciBXPUluZmluaXR5O2ZvcihsZXQgRCBvZiBuLmRhdGEpRC5leHBpcmU8VyYmKFc9RC5leHBpcmUpO1cmJmlzRmluaXRlKFcpJiYoVz1NYXRoLm1heChXLURhdGUubm93KCksMTAwKSxuLk4uc3RhcnQoVykpfTsKQl9DPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLmRhdGEuZmluZCh2PT52LmtleT09PVcpOwpiJiYoRCo9MUUzLGIuZXhwaXJlPSgwLGcuUikoKStELEllKG4pKX07CnNGPWZ1bmN0aW9uKG4pe0poKG4pO3JldHVybiBuLmRhdGEubWFwKFc9PlcudmFsdWUpfTsKZk89ZnVuY3Rpb24obixXLEQpe0QmJm4uSiYmbi5KKFcudmFsdWUpfTsKRkVaPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTj9bbi5OXTpbXTtmb3IobGV0IEQgb2YgT2JqZWN0LnZhbHVlcyhuLmopKUQuZGlzcG9zZSgpLG4uS3x8ZGVsZXRlIG4uVltELldOKCldO24uaj17fTtuLk49bnVsbDtuLlk9bnVsbDtuLkQuY2xlYXIoKTtTcyhuLFtdLFcpfTsKU3M9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtuLkpdO24uTiYmYi5wdXNoKG4uTik7bi5hcGkuV0ooInBsYXliYWNrQ2hhbmdlIix7YWN0aXZlOmIuZmlsdGVyKHY9PnYuZ2V0UGxheWVyVHlwZSgpIT09MCkubWFwKHY9Pih7Y3BuOnYuV04oKX0pKSwKc3RhcnRlZDpXLmZpbHRlcih2PT52LmdldFBsYXllclR5cGUoKSE9PTApLm1hcCh2PT4oe2Nwbjp2LldOKCl9KSksCmVuZGVkOkQuZmlsdGVyKHY9PnYuZ2V0UGxheWVyVHlwZSgpIT09MCkubWFwKHY9Pih7Y3BuOnYuV04oKX0pKX0pfTsKd1AxPWZ1bmN0aW9uKG4sVyl7aWYobi5LKXtmb3IobGV0IEQgb2YgT2JqZWN0LnZhbHVlcyhuLlcpKWlmKEQuV04oKT09PVcpcmV0dXJuIEQ7aWYobi5PPy5XTigpPT09VylyZXR1cm4gbi5PO2lmKHZvaWQgMD09PVcpcmV0dXJuIG51bGw7aWYobi5qW1ddKXJldHVybiBuLmpbV107Zm9yKGxldCBEIG9mIHNGKG4uWCkpaWYoRC5XTigpPT09VylyZXR1cm4gRDtyZXR1cm4gbnVsbH1pZihuLmFwaS5HKCkuWnQoKS5OLlFRKGcuQWgpKXJldHVybiBuLlZbV118fG51bGw7Zm9yKGxldCBEIG9mIE9iamVjdC52YWx1ZXMobi5XKSlpZihELldOKCk9PT1XKXJldHVybiBEO3JldHVybiBuLmpbV118fG51bGx9OwpNa009ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9RC5nZXRWaWRlb0RhdGEoKTtpZighdi5saXZlUHJlbG9hZCl7dmFyIGs9KCk9PntpZihuLlguZ2V0KFcpPT09RCl7dmFyIGg9di5nZXRQbGF5ZXJSZXNwb25zZSgpO2gmJihoPWgucmVzcG9uc2VDb250ZXh0Py5jYWNoZUluc3RydWN0aW9uPy5tYXhBZ2VTZWNvbmRzPz9oLnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcz8/dm9pZCAwLGghPT12b2lkIDAmJihoPGImJkQuVSgidHRsZCIse3ByZXY6Yi50b1N0cmluZygpLCJuZXciOmgudG9TdHJpbmcoKX0pLGg9PT0wP24uWC5yZW1vdmUoVywhMCk6Ql9DKG4uWCxXLGgpKSl9fTsKaWYodi5pc0xvYWRlZCgpKWsoKTtlbHNle2xldCBoPSgpPT57aygpO3YudW5zdWJzY3JpYmUoImRhdGFsb2FkZWQiLGgpfTsKdi5zdWJzY3JpYmUoImRhdGFsb2FkZWQiLGgpfX19OwptUj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W1ddLHY9bi5OP1tuLk5dOltdO24ualtXLldOKCldPVc7bi5LfHwobi5WW1cuV04oKV09Vyk7bi5OPVc7RCYmKG4uWT1XKTtuLkQuc2V0KCIiLFcpO1NzKG4sYix2KX07CmNlYj1mdW5jdGlvbihuKXt2YXIgVz1uLmV4cGVyaW1lbnRzLEQ9Vy5FcS5iaW5kKFcpO0tPPUQoImh0bWw1X3VzZV9hc3luY19zdG9wVmlkZW8iKTtSMGk9RCgiaHRtbDVfcGF1c2VfZm9yX2FzeW5jX3N0b3BWaWRlbyIpO09nPUQoImh0bWw1X25vdF9yZXNldF9tZWRpYV9zb3VyY2UiKXx8RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZV9ub25fZHJtX3ZvZCIpO0QoImh0bWw1X2xpc3Rlbl9mb3JfYXVkaW9fb3V0cHV0X2NoYW5nZWQiKSYmKHdVTT0hMCk7REg9RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZSIpfHxEKCJodG1sNV9ub3RfcmVzZXRfbWVkaWFfc291cmNlX25vbl9kcm1fdm9kIik7UWpaPUQoImh0bWw1X25vdF9yZXNldF9tZWRpYV9zb3VyY2UiKXx8RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZV9ub25fZHJtX3ZvZCIpO1BjPUQoImh0bWw1X3JldGFpbl9zb3VyY2VfYnVmZmVyX2FwcGVuZHNfZm9yX2RlYnVnZ2luZyIpO25WcihEKCJ3ZWJfd2F0Y2hfcGlwIil8fApEKCJ3ZWJfc2hvcnRzX3BpcCIpKTtJdmgoRCgibG9nX2ZvcmVncm91bmRfbm90X2ZvY3VzZWRfYXNfYmFja2dyb3VuZCIpKTtTeXIoRCgid2ViX3BsYXllcl9waXBfbG9nZ2luZ19maXgiKSk7RCgiaHRtbDVfbWVkaWFzdHJlYW1fYXBwbGllc190aW1lc3RhbXBfb2Zmc2V0IikmJihzND0hMCk7bi5XWCgpJiZNRngoKTtFcnJvci5zdGFja1RyYWNlTGltaXQ9NTA7dmFyIGI9Zy5kTShXLCJodG1sNV9pZGxlX3JhdGVfbGltaXRfbXMiKTtiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJyZXF1ZXN0SWRsZUNhbGxiYWNrIix7dmFsdWU6dj0+d2luZG93LnNldFRpbWVvdXQodixiKX0pOwp3Sngobi5XKTthaU0oRCgiaHRtbDVfdXNlX3VtcF9yZXF1ZXN0X3NsaWNlciIpKTtEKCJodG1sNV9kaXNhYmxlX3N0cmVhbWluZ194aHIiKSYmKE5zPSExKTtEKCJodG1sNV9ieXRlcmF0ZV9jb25zdHJhaW50cyIpJiYoaFQ9ITApO0QoImh0bWw1X3VzZV9ub25fYWN0aXZlX2Jyb2FkY2FzdF9mb3JfcG9zdF9saXZlIikmJihadT0hMCk7RCgiaHRtbDVfZW5hYmxlX2VuY3J5cHRlZF9hdjEiKSYmKFBSPSEwKTtXLlp0KCkuTi5RUShWa3cpJiYoRU49ITApO01wQyhnLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X3N0aWNreV9kdXJhdGlvbl9tb3MiKSl9Owp5UjE9ZnVuY3Rpb24obil7dmFyIFc9e30sRD1uLmV4cGVyaW1lbnRzLncwKCksYj1bXTtuPShrLGgseCk9PntiLnB1c2goU2soaCh4KSxMPT57V1trXT1MfSkpfTsKdmFyIHY9RC5OLlFRKGFZeCk7diYmbigiTWVkaWFTb3VyY2UuRW5hYmxlVXNpbmdNZWRpYVNvdXJjZUJ1ZmZlcmVkUmFuZ2UiLHFScix2PT09MSk7KHY9RC5OLlFRKG5NdykpJiZuKCJIVFRQMyIsR253LHY9PT0xKTsodj1ELk4uUVEoV2t0KSkmJm4oIk1lZGlhU291cmNlLkVuYWJsZVVzaW5nTWVkaWFTb3VyY2VBdHRhY2htZW50TWV0aG9kcyIsdEZ4LHY9PT0xKTsodj1ELk4uUVEoRERaKSkmJm4oIlFVSUMiLCRMQyx2PT09MSk7KHY9RC5OLlFRKGJSdykpJiZuKCJNZWRpYS5QbGF5ZXJDb25maWd1cmF0aW9uLkRlY29kZVRvVGV4dHVyZVByZWZlcnJlZCIsc2d3LHY9PT0xKTsodj1ELk4uUVEodk1TKSkmJm4oIk1lZGlhLkF1ZGlvV3JpdGVEdXJhdGlvbkxvY2FsIixyYzIsTnVtYmVyKHYpKTsodj1ELk4uUVEoazZ3KSkmJm4oIk1lZGlhLkV4cGVyaW1lbnRhbE1heFBlbmRpbmdCeXRlc1BlclBhcnNlIixLWFosTnVtYmVyKHYpKTsodj1ELk4uUVEoaFVpKSkmJm4oIk1lZGlhLkVuYWJsZUZsdXNoRHVyaW5nU2VlayIsCkpjYixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoeERaKSkmJm4oIkRlY29kZXJCdWZmZXIuRW5hYmxlQ29uZmlndXJhYmxlRGVjb21taXRTdHJhdGVneSIsSXl3LE51bWJlcih2KSk7KHY9RC5OLlFRKExrQykpJiZuKCJEZWNvZGVyQnVmZmVyLlJlbGVhc2VNZW1vcnlPbkJhY2tncm91bmQiLFNSdCxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZVVVKSkmJm4oIk1lZGlhLkRlY29kZWRBdWRpb0J1ZmZlclBvb2wiLEFjWixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZ014KSkmJm4oIk1lZGlhLlZpZGVvRnJhbWVJbXBsUG9vbCIsbUwyLE51bWJlcih2KT09PTEpOyh2PUQuTi5RUShYR1UpKSYmbigiTWVkaWEuRW5hYmxlUmVzZXRBdWRpb0RlY29kZXIiLGZ5VSxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEocXhoKSkmJm4oIk1lZGlhLkluY3JlbWVudGFsUGFyc2VMb29rQWhlYWQiLEhGWixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoRzYyKSkmJm4oIk1lZGlhLk1heFNhbXBsZXNQZXJXcml0ZSIsCk9GQyxOdW1iZXIodikpOyh2PUQuTi5RUSh0NWkpKSYmbigiTWVkaWEuVmlkZW9EZWNvZGVySW5pdGlhbFByZXJvbGxDb3VudCIsTjBTLHYpOyh2PUQuTi5RUSgkRDEpKSYmbigiTWVkaWEuTWVkaWFDb2RlY1Jlc2V0RGVsYXlNcyIsUFFyLHYpOyh2PUQuTi5RUShyUmkpKSYmbigiTWVkaWEuVmlkZW9SZW5kZXJlck1pbklucHV0QnVmZmVycyIscE50LHYpOyh2PUQuTi5RUShzd2kpKSYmbigiTWVkaWEuVmlkZW9SZW5kZXJlck1pbkRlY29kZWRGcmFtZXMiLFlSdyx2KTsodj1ELk4uUVEoTmRTKSkmJm4oIk1lZGlhLlVzZUR1YWxUaHJlYWRzRm9yVmlkZW8iLHljMixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEocEcxKSkmJm4oIk1lZGlhLlZpZGVvQnVmZmVyU2l6ZUNsYW1wTWIiLEV1dCx2KTsodj1ELk4uUVEoWXhyKSkmJm4oIk1lZGlhLjcyMHBWaWRlb0J1ZmZlclNpemVDbGFtcE1iIixpRlUsdik7KHY9RC5OLlFRKEhScikpJiZuKCJNZWRpYS5EaXNhYmxlTG93UGVyZm9ybWFuY2VTb2Z0d2FyZURlY29kZSIsClpGdCxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZndqKSkmJm4oIk1lZGlhLkVuYWJsZUF2MVN0YXJ0dXBPcHRpbWl6YXRpb24iLFVMMixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoSlIxKSkmJm4oIk1lZGlhLkVuYWJsZUxvd0xhdGVuY3kiLGRMaSxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoSXd4KSkmJm4oIk1lZGlhLkZvcmNlRGVjb2RlVG9UZXh0dXJlIix1cXQsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFN4aSkpJiZuKCJNZWRpYS5Gb3JjZUNsZWFyU3VyZmFjZVZpZXciLG91MixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoQVJNKSkmJm4oIk1lZGlhLlNraXBGbHVzaE9uRGVjb2RlclRlYXJkb3duIix6UVMsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKG1EaCkpJiZuKCJNZWRpYS5BbGxvd0F1ZGlvV3JpdGluZ09uUGF1c2UiLGx5MixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoS2tpKSkmJm4oIk1lZGlhLkVuYWJsZVZpZGVvUmVuZGVyZXJWc3BBZGp1c3RtZW50IixUMFUsTnVtYmVyKHYpPT09CjEpOyh2PUQuTi5RUShPUlUpKSYmbigiTWVkaWEuU2tpcFZpZGVvRnJhbWVzT3ZlcjYwRnBzIixqZ2gsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFBoaikpJiZuKCJNZWRpYS5GbHVzaEF1ZGlvVHJhY2tEdXJpbmdTZWVrIixDUUMsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFpSeCkpJiZuKCJNZWRpYS5CeXBhc3NNb2pvRm9yTWVkaWEiLEIwaixOdW1iZXIodik9PT0xKTsoRD1ELk4uUVEoVUQyKSkmJm4oIk1lZGlhLklnbm9yZU1lZGlhQ29kZWNDYWxsYmFja3NEdXJpbmdGbHVzaGluZyIsRlgyLE51bWJlcihEKT09PTEpO3JldHVybiBTayhGTngoYiksKCk9PlcpfTsKR0Q9ZnVuY3Rpb24obixXPSExLEQ9MTA0ODU3Nil7dmFyIGI9VWcobik7Yj0xLygobi5LLkxnKCl8fDApKm4ucG9saWN5LkQrMS9iKTt2YXIgdj1uLlMkLkxnKCk7dj12PjA/djoxO3ZhciBrPU1hdGgubWF4KGIsdik7bi5wb2xpY3kuWD4wJiZ2PGImJihrPU1hdGgubWluKG4ucG9saWN5LlgsMSksaz0oMS1rKSpiK2sqdik7aWYoIVcpcmV0dXJuIGs7Vz0xRS05KyRzKG4pO0Q9aypNYXRoLm1pbigxLEQvKGsqVykpO24ucG9saWN5Lkp8fChuPSgobi5ELnBlcmNlbnRpbGUoLjk4KXx8MCktMSkvMixuPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksRCo9MS0uNSpuKTtyZXR1cm4gRH07CiRzPWZ1bmN0aW9uKG4pe3ZhciBXPW4uWS5MZygpK24uVEMuTGcoKXx8MDtXPWlzTmFOKFcpPy41Olc7bi5wb2xpY3kuVDY+PTAmJihXPU1hdGgubWluKFcsbi5wb2xpY3kuVDYpKTtyZXR1cm4gV307CmUwPWZ1bmN0aW9uKG4pe3ZhciBXPXtkZWxheTokcyhuKSxzdGFsbDpuLksuTGcoKXx8MCxieXRlcmF0ZTpVZyhuKSxpbml0Om4uVlF9LEQ9bi5XWzBdO0Quc3RhbXA9TWF0aC5yb3VuZChuLlYvMzZFNSkqMzZFNTtELm5ldD1NYXRoLmNlaWwobi5iZCk7RC5tYXg9bi5pbnRlcnJ1cHRpb25zWzBdfHwwO1cuaW50ZXJydXB0aW9ucz1uLlc7cmV0dXJuIFd9Owp6RD1mdW5jdGlvbihuLFcpe2lmKG4uail7bGV0IEQ9Vy1uLmo7aWYoRDw2RTQpe2lmKEQ+MUUzKXtsZXQgYj1uLmludGVycnVwdGlvbnM7Yi5wdXNoKE1hdGguY2VpbChEKSk7Yi5zb3J0KCh2LGspPT5rLXYpOwpiLmxlbmd0aD4xNiYmYi5wb3AoKX1uLmJkKz1EfX1uLmo9V307CnlTPWZ1bmN0aW9uKG4sVyxEKXtpc05hTihEKXx8KG4udHcrPUQpO2lzTmFOKFcpfHwobi5EdCs9Vyl9OwpCdT1mdW5jdGlvbihuLFcsRCxiPVcpe24uWC5JSShiLEQvVyk7bi5WPSgwLGcuUikoKX07CkVnPWZ1bmN0aW9uKG4sVyxEKXtXPU1hdGgubWF4KFcsbi5KLk4pO24uSy5JSSgxLEQvVyl9Owppcz1mdW5jdGlvbihuLFcsRCxiLHYsaz0hMSl7bi5TJC5JSShXLEQvVyk7bi5WPSgwLGcuUikoKTt2fHxuLkQuSUkoMSxXLWIpO2t8fChuLmo9MCk7bi5jSj4tMSYmKDAsZy5SKSgpLW4uY0o+M0U0JiYoc24oZTAobikpLG4uY0o9KDAsZy5SKSgpLG4uTz0hMCl9OwpUWj1mdW5jdGlvbihuKXtyZXR1cm4oMCxnLlIpKCktbi5WPj00RTN9OwpVZz1mdW5jdGlvbihuKXtuPW4uWC5MZygpO3JldHVybiBuPjA/bjoxfTsKaVJaPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uZXcgRU1NKEQpO24mJihiLlc9ITAsYi5qPS4xKTtELkVxKCJodG1sNV9tZWRpYV90aW1lX3dlaWdodCIpJiYoYi5XPSExKTtXJiYoYi5OPVcvOCk7Yi5KPXA3KCk+PTQ4MDtyZXR1cm4gYn07CnVzPWZ1bmN0aW9uKG4pe24uTi5jbGVhcigpO24uVy5jbGVhcigpO24uSi5jbGVhcigpfTsKdWFVPWZ1bmN0aW9uKG4sVyxEKXtuPW4uSjt2YXIgYj1nLlc0KG4se29hOld9LCh2LGspPT52Lm9hLWsub2EpOwpiPWI8MD8oYisyKSotMTpiO2lmKGI+PTApZm9yKGxldCB2PWI7djw9YisxJiZ2PG4ubGVuZ3RoO3YrKyl7bGV0IGs9blt2XTtpZihXPj1rLm9hLUQmJlc8PWsuZEkrRClyZXR1cm4ga319OwpvTWg9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5nZXQoVyk7Yj8oYi5wdXNoKEQpLGcuYmYoYiwodixrKT0+di5vYS1rLm9hKSk6bi5OLnNldChXLFtEXSl9OwpkRGI9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtmb3IobGV0IGIgb2Ygbi5KKVcoYil8fEQucHVzaChiKTtpZihuLkIuUygiaHRtbDVfc3N0bV9maXhlcyIpKWZvcihsZXQgYiBvZiBuLkopVyhiKSYmbi5XLmRlbGV0ZShiLmNwbik7bi5KPUR9Owp6VWg9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkouaW5kZXhPZihXKTtEPj0wJiZuLkouc3BsaWNlKEQsMSk7bi5XLmRlbGV0ZShXLmNwbil9Owp0dmk9ZnVuY3Rpb24obixXKXtpZihuLnVLfHxXLmlkZW50aWZpZXImJm4ueXcuaGFzKFcuaWRlbnRpZmllcikpbi5iaih7c3RhcnRub2FkOlcuaWRlbnRpZmllcn0pLGcub2Uobik7ZWxzZSBpZihnLm9NKG4uY0osRD0+RC5pZGVudGlmaWVyPT09Vy5pZGVudGlmaWVyKSluLmJqKHt0aW1lZG91dGNwOjF9KSxuLlkuc3RhcnQoMCk7CmVsc2UgaWYoZy5vTShuLkR0LEQ9PkQuaWRlbnRpZmllcj09PVcuaWRlbnRpZmllcikpbi5iaih7ZmV0Y2hlZGNwOjF9KSxnLm9lKG4pOwplbHNlIGlmKG4uWS5pc0FjdGl2ZSgpKW4uYmooe3JhY2luZ2NwOmAke24uVj8uaWRlbnRpZmllcn1fJHtXLmlkZW50aWZpZXJ9YH0pO2Vsc2V7bi5DdT0obmV3IERhdGUpLmdldFRpbWUoKS8xRTM7bi5iaih7YWRmOjF9KTtsZXQgRD01RTM7RCYmVy5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYoRC09Vy5OKTtuLnZKPU1hdGgubWF4KEQsMTVFMyk7bi5EPSExO24uWS5zdGFydChuLnZKKTtuLlY9Vzt1cyhuLlRDKTtuLkZGPVtdfX07CmcuSnlpPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgpe3ZhciB4PXY9PT0zLEw9bHdaKG4sVyxELHYsYixoKTtpZighTClyZXR1cm4gZGYobixELHgpLEw9Zy56VihuLEQpPyJ1bmRlYyI6Im5jcCIsbi5iaih7Z3ZwcnA6TCxtdDpXLHNlZzpELHR0OnYsaXRhZzpiLGNlOmh9KSxudWxsO3h8fG4uWXEuc2V0KEQsTCk7aD1MLnZQO3Y9bi5HTShELTEsdixrKT8uQmZ8fCIiO3Y9PT0iIiYmbi5iaih7ZWRzOjF9KTtrPVRkaihuLEwuc3NkYWlBZHNDb25maWcpO3g9bi5ncy5nZXRWaWRlb0RhdGEoKTt4PXguYkJbeC5KPy5jb250YWluZXJUeXBlfHwwXTtMPUwubUYmJkQ+PUwubUY/TC5tRjp2b2lkIDA7dj17YUQ6aD9scyhuLGgpOltdLGFkc0NvbmZpZzprLEJmOnYsREo6TCxvdjpnLk5oKHguc3BsaXQoIjsiKVswXSksZDM6eC5zcGxpdCgiOyIpWzFdfHwiIn07TD17TXk6dn07bi5HQyYmKFc9e2d2cHJwcm86InYiLHNxOkQsbXQ6Vy50b0ZpeGVkKDMpLGl0YWc6YixhY3Buczp2LmFEPy5qb2luKCJfIil8fAoibm9uZSIsYWJpZDpofSxuLmJqKFcpKTtyZXR1cm4gTH07Ck0yPWZ1bmN0aW9uKG4sVyxELGIsdil7Yj1ifHx7cmVhc29uOiJkaXNhYmxlc3NkYWkifTtpZihXJiZEKXtpZighZy5UVihuLFcsRCkpcmV0dXJuITE7Yi5zcT1EfWlmKG4udUspcmV0dXJuITE7bi51Sz0hMDtuLnVmPjAmJihuLnVmPTAsbi51Tj0iIixqcyhuLG4uZ3MuV04oKSwwKSxuLmFwaS5XSigic2VydmVyc3RpdGNoZWR2aWRlb2NoYW5nZSIpKTtuLmdzLmRuKGIsdik7cmV0dXJuITB9Owpqd2o9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uald8fG4uYXBwLk1OKCkuZ2V0UGxheWVyU3RhdGUoKTtDTyhuLCEwKTtuLmdzLnNlZWtUbyhXLEQpO249bi5hcHAuTU4oKTtXPW4uZ2V0UGxheWVyU3RhdGUoKTtiLmlzT3JXaWxsQmVQbGF5aW5nKCkmJiFXLmlzT3JXaWxsQmVQbGF5aW5nKCk/bi5wbGF5VmlkZW8oKTpiLmlzUGF1c2VkKCkmJiFXLmlzUGF1c2VkKCkmJm4ucGF1c2VWaWRlbygpfTsKZy5CYz1mdW5jdGlvbihuKXtuLkdDJiZuLmJqKHthZGY6YDBfJHsobmV3IERhdGUpLmdldFRpbWUoKS8xRTMtbi5DdX1faXNUaW1lb3V0XyR7bi5EfWB9KX07Cmcub2U9ZnVuY3Rpb24obil7bi5EPSExO24uWS5pc0FjdGl2ZSgpJiZnLkJjKG4pO24uWS5zdG9wKCk7bi5SZighMSl9OwpGdz1mdW5jdGlvbihuLFcsRCl7cmV0dXJue3NzdmM6VyxjcG46RD8uY3BufHwiIix2aWQ6RD8udmlkZW9EYXRhLnZpZGVvSWR8fCIiLGN0OihuLmdzLmdldEN1cnJlbnRUaW1lKCl8fDApLnRvRml4ZWQoMyksY210OihuLmdzLm90KCl8fDApLnRvRml4ZWQoMyl9fTsKQ2gxPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbmV3IGcubDUobixXLHtpZDpELG5hbWVzcGFjZToic2VydmVyc3RpdGNoZWRjdWVyYW5nZSIscHJpb3JpdHk6OX0pfTsKZy53Zj1mdW5jdGlvbihuKXtyZXR1cm57Y3BuOm4uZ3MuV04oKSxkdXJhdGlvbk1zOjAsb2E6MCxwbGF5ZXJUeXBlOjEsZEk6MCx2aWRlb0RhdGE6bi5ncy5nZXRWaWRlb0RhdGEoKSxlcnJvckNvdW50OjAsdlA6IiJ9fTsKTUs9ZnVuY3Rpb24obixXLEQsYil7bi5CLlMoImh0bWw1X3NzZGFpX2xvZ19zc2V2dF9pbl9sb2FkZXJfdGltZXJzIikmJihiPW4uYmQ/MDpNYXRoLnJvdW5kKChiLUQpKjFFMyksbi5ncy5VKCJzc2V2dCIse3RhZzoic3N0bWUiLGFkOlchPT1uLmdzLldOKCksY3BuOlcsc3Q6RC1uLmdzLkgzKCksbGF0ZTpifSkpfTsKZy5RUz1mdW5jdGlvbihuLFcpe24uanx8bi5iZHx8Zy5SZShuLG4udU4pO3ZhciBEPVcucUQsYj1XLnpZO2lmKGIuY3BuPT09bi51TiluLmJqKHtpZ3RyYW5zc2FtZToxLGVudGVyOmIuY3BuLGV4aXQ6RC5jcG59KTtlbHNle3ZhciB2PW4uYmQsaz0hIW4uajtuLmo9IiI7dmFyIGg9Vy5tNyx4PUQucGxheWVyVHlwZT09PTI/RC5vYS8xRTMrRC52aWRlb0RhdGEuR0M6Zy53ZihuKS52aWRlb0RhdGEuR0M7bi5hcGkuUygiaHRtbDVfc3NkYWlfZW5hYmxlX21lZGlhX2VuZF9jdWVfcmFuZ2UiKSYmKGt8fHZ8fEQucGxheWVyVHlwZSE9PTI/KHZ8fGspJiZuLmJqKHttZWNyOjAsc2Vlazp2LHNraXA6a30pOm4uYXBpLk5hKEQuY3BuKSk7aWYoRC5wbGF5ZXJUeXBlPT09MiYmYi5wbGF5ZXJUeXBlPT09MilrP24uYmooe2lndHJhbnNza2lwOjEsZW50ZXI6Yi5jcG4sZXhpdDpELmNwbixzZWVrOnYsc2tpcDpuLmp9KTpnLkJkdChuLEQsYix4LGgsdixrKTtlbHNle24udU49Yi5jcG47anMobixiLmNwbiwKYi5zdGFydFRpbWVTZWNzfHxoKTtXPVcuUXg7aWYoRC5wbGF5ZXJUeXBlPT09MSYmYi5wbGF5ZXJUeXBlPT09Mil7bi5TJD0wO0ZraihuLGIpO3ZhciBMPUZ3KG4sImMyYSIsYik7bi5iaihMKTtuLnVmKyt9ZWxzZSBpZihELnBsYXllclR5cGU9PT0yJiZiLnBsYXllclR5cGU9PT0xKXtuLmFwaS5XSigic2VydmVyc3RpdGNoZWR2aWRlb2NoYW5nZSIpO0w9RncobiwiYTJjIik7bi5iaihMKTtuLnVmPTA7bi5TJD14O0w9RC5jcG47dmFyIGU9bi5TJDtpZihMIT09bi5ncy5XTigpKXtsZXQgRz1uLnR3LmdldChMKTtHP0cuTj1lOm4uYmooe25vcF9lOkx9KX1nLndHMShuLEQudlApfUw9TTVpKG4pO24uZ3MuY00oRCxiLHgsaCx2LGssVyxMKX1nLlJVaShuKX19OwppcD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe3ZhciBMPVdebjtpZigobi0xXjI3KT49biYmKG4rMV4yNCk8bil7dmFyIGU9RFtJW0xeNzg2XV0oSVtMXjgxN10pLEc9MDtlWzBdfHxHKys7bGV0IE49e307Zm9yKDtHPGVbSVs1XV07Rys9MillW0ddJiZFYyg1LExeNjc4NixOLGVbR10sZVtHKzFdKTt2YXIgcj1OfShuXjEzKTwyNiYmbi0yPj0xOCYmKGU9RFtJW0xeNzY5MV1dKElbTF43NzEwXSxMXjc3MDEpLEc9RFtJW0xeNzY5MV1dKElbTF43NzEwXSxlKzEpLGU+MCYmRz4wPyhiW0lbTF43Njg1XV09RFtJW0xeNzY5NF1dKDAsRyksRD1EW0lbTF43Njk0XV0oRysxKSk6KGJbSVtMXjc2ODVdXT1ELEQ9SVtMXjc2OTJdKSxyPVtEXSk7bi0zPj4zfHwocj1iKGssaCx4KSk7bj4+MiY3fHwoRD0oRCViW0lbNV1dK2JbSVs1XV0pJWJbSVs1XV0sYltJWzNdXSgtRClbSVtMXjE3MTZdXSgpW0lbTF4xNjgxXV0oZnVuY3Rpb24oTil7YltJW0xeMTY3MF1dKE4pfSkpOwpyZXR1cm4gcn07CmpzPWZ1bmN0aW9uKG4sVyxEKXtpZihXPT09bi5ncy5XTigpKW1SKG4uYXBwLlZyLG4uZ3MsITEpO2Vsc2V7bGV0IGI9bi50dy5nZXQoVyk7Yj8oVz1iLFcuTj0wLFcuc3RhcnRUaW1lU2Vjcz1ELG1SKG4uYXBwLlZyLGIsITApKTpuLmJqKHtub3BfczpXfSl9fTsKRmtqPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5hcHA7UFQoVlMoRCkpJiZELlZyLldbMl0mJmcuY18obi5sb2dnZXIsMzYwNzE3ODA2LCJTU1RNIGxpbmdlcmluZyBwbGF5YmFjayIpO24uYXBpLlNvKCk7bi5hcGkuV0ooInNlcnZlcnN0aXRjaGVkdmlkZW9jaGFuZ2UiLFcuY3BuLFcuTDMpfTsKY2M9ZnVuY3Rpb24obixXLEQ9MCl7cmV0dXJue0lEOnVhVShuLk4sVyoxRTMsRCoxRTMpLEJFOld9fTsKZy5SZT1mdW5jdGlvbihuLFcpe3ZhciBEPVd8fG4udU4sYj1uLk4uVkUoRCk7Yj8oVz1iLnZpZGVvRGF0YSxEPWIuTDN8fChuLlcuZ2V0KEQpPy5zdGFydD8/MCkvMUUzLG49bi5ncy5nZXRDdXJyZW50VGltZSgpLUQsVy5HQz1uPjA/bjowKTpnLndmKG4pLnZpZGVvRGF0YS5HQz1uLmdzLmdldEN1cnJlbnRUaW1lKCl9OwpnLlF3aT1mdW5jdGlvbihuLFcsRCl7bi5ncy5CbygpO24uZ3Muc2Vla1RvKFcsRCk7bi5ncy5wbGF5VmlkZW8oKX07CkNPPWZ1bmN0aW9uKG4sVyl7bi5MQj1OYU47bi5mQj1udWxsO24uUmEuc3RvcCgpO24uZSQmJlcmJm4uZSQuR18oKTtuLmpXPW51bGw7bi5lJD1udWxsfTsKbko9ZnVuY3Rpb24obil7VjVoKG4pO2Zvcih2YXIgVyBvZiBuLlcudmFsdWVzKCkpVy5zdGFydD49LTEmJlcuZW5kPD1JbmZpbml0eSYmKG4uZ3MucmVtb3ZlQ3VlUmFuZ2UoVyksbi5XLmRlbGV0ZShXLmdldElkKCkpLG4uYmooe3JtQWRDUjoxfSkpO3ZhciB7SUQ6RCxCRTpifT1jYyhuLC0uMDAxKTtEJiYoVz1iKjFFMy1ELm9hLGcuYWUobixELFcsRC5vYStXKSxXPW4uVy5nZXQoRC5jcG4pKSYmKFcuc3RhcnQ9RC5vYSxXLmVuZD1ELm9hK0QuZHVyYXRpb25Ncyk7KHtJRDpXfT1jYyhuLEluZmluaXR5KSk7VyYmbi5KKGBJbnZhbGlkX2NsZWFyRW5kVGltZU1zXyR7SW5maW5pdHl9X3RoYXRfZmFsbHNfZHVyaW5nXyR7YHBsYXliYWNrX2Nwbl8ke1cuY3BufV92aWRlb19pZF8ke1cudmlkZW9EYXRhPy52aWRlb0lkfV9kdXJhdGlvbk1zXyR7Vy5kdXJhdGlvbk1zfV9lbnRlclRpbWVNc18ke1cub2F9X3BhcmVudFJldHVyblRpbWVNc18ke1cuZEl9YH0uX0NoaWxkX3BsYXliYWNrc19jYW5fb25seV9oYXZlX2R1cmF0aW9uX3VwZGF0ZWRfbm90X3RoZWlyX3N0YXJ0LmApfTsKY1JiPWZ1bmN0aW9uKG4pe3VzKG4uVEMpO24uVy5jbGVhcigpO24uTi5jbGVhcigpO24uWXEuY2xlYXIoKTtuLkZGPVtdO24uVj1udWxsO24ueXcuY2xlYXIoKTtuLm51LmNsZWFyKCk7bi5jSj1bXTtuLkR0PVtdO24uczU9W107bi5FNT1bXTtuLlFyLmNsZWFyKCk7bi5NZC5jbGVhcigpO24uVTUuY2xlYXIoKTtuLnlFLmNsZWFyKCk7bi5EPSExO24uUyQ9MDtuLmJkPSExO24uWVo9ITE7bi51Zj0wO24uQ3U9MDtuLlkkPSExO24udUs9ITE7bi5qPSIiO0ZFWihuLmFwcC5Wcik7bVIobi5hcHAuVnIsbi5ncywhMSk7aWYobi5CLlp0KCk/LkooKSlmb3IobGV0IFcgb2Ygbi50dy52YWx1ZXMoKSlXLmRpc3Bvc2UoKTtuLnR3LmNsZWFyKCk7bi5ZLmlzQWN0aXZlKCkmJmcub2Uobil9OwpWNWg9ZnVuY3Rpb24obil7ZERiKG4uTixXPT5XLm9hPj0tMSYmVy5kSTw9SW5maW5pdHkpfTsKZy5hZT1mdW5jdGlvbihuLFcsRCxiKXtXLmR1cmF0aW9uTXM9RDtXLmRJPWI7KGI9bi50dy5nZXQoVy5jcG4pKT9iLmFUKEQvMUUzKTpuLmJqKHtub3BfZDpXLmNwbn0pfTsKZy56Vj1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBuLkZGKWlmKFc+PUQuc3RhcnQmJlc8PUQuZW5kKXJldHVybiEwO3JldHVybiExfTsKZy5UVj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uWXEuZ2V0KEQpO2lmKCFrKXtpZihrPVdmKG4sVykpcmV0dXJuIGs7Vz1uLkdNKEQtMSxiPz8yKTtpZih2KXJldHVybiBuLmJqKHttaXNzY3VlOnYsc3E6RCx0eXBlOmIscHJldnNzdGF0ZTpXPy5zbCxwcmV2cmVjb3JkOm4uWXEuaGFzKEQtMSl9KSxuLllxLmdldChELTEpO2lmKFc/LnNsPT09MilyZXR1cm4gbi5iaih7YWRuZjoxLHNxOkQsdHlwZTpiLHByZXZyZWNvcmQ6bi5ZcS5oYXMoRC0xKX0pLG4uWXEuZ2V0KEQtMSl9cmV0dXJuIGt9Owpsd1o9ZnVuY3Rpb24obixXLEQsYix2LGspe2lmKCFuLnVLKWlmKGcuelYobixEKSluLmJqKHtnZHU6InVuZGVjIixzZWc6RCxpdGFnOnZ9KTtlbHNlIGlmKFc9Zy5UVihuLFcsRCxiLGspLCFuLmdzLmdldFZpZGVvRGF0YSgpLkRGKCl8fCFXPy5QTylyZXR1cm4gV307CldmPWZ1bmN0aW9uKG4sVyl7Vys9bi5IMygpO2lmKG4uZ3MuZ2V0VmlkZW9EYXRhKCkuREYoKSl7YTp7dmFyIEQ9bi5OO249VyoxRTM7Zm9yKGIgb2YgRC5KKWlmKEQ9Yi5MMz9iLkwzKjFFMzpiLm9hLG4+PWIub2EtMUUzJiZuPD1EK2IuZHVyYXRpb25NcysxRTMpYnJlYWsgYTt2YXIgYj12b2lkIDB9Yj17SUQ6YixCRTpXfX1lbHNlIGI9Y2MobixXKSxiPy5JRHx8KGI9Y2MobixXLDEpKTtyZXR1cm4gYj8uSUR9OwpkZj1mdW5jdGlvbihuLFcsRD0hMSl7aWYoIUQpe2ZvcihsZXQgYiBvZiBuLkZGKXtpZihXPj1iLnN0YXJ0JiZXPD1iLmVuZClyZXR1cm47aWYoVz09PWIuZW5kKzEpe2IuZW5kKz0xO3JldHVybn19bi5GRi5wdXNoKG5ldyBhd1MoVykpfX07ClRkaj1mdW5jdGlvbihuLFc9IiIpe3ZhciBEPWcuZDEoVyl8fHZvaWQgMDtXJiZEfHxuLmJqKHthZGNmZzpXPy5sZW5ndGgsZGNmZzpEPy5sZW5ndGh9KTtyZXR1cm4gRH07CmxzPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107bj1uLk4uTi5nZXQoVyk7aWYoIW4pcmV0dXJuW107Zm9yKGxldCBiIG9mIG4pYi5jcG4mJkQucHVzaChiLmNwbik7cmV0dXJuIER9OwpuJE09ZnVuY3Rpb24obixXLEQpe3ZhciBiPSExO2lmKEQ9bi5OLk4uZ2V0KEQpKWZvcihsZXQgdiBvZiBEKXYuZHVyYXRpb25NcyE9PTAmJnYuZEkhPT12Lm9hJiYoRD12LmNwbixXPT09RCYmKGI9ITApLGImJiFuLk1kLmhhcyhEKSYmKG4uYmooe2RlY29yYXRlZEFkOkR9KSxuLk1kLmFkZChEKSkpfTsKdmFyIElhMj1mdW5jdGlvbihuLFcpe3JldHVybiBvU1tJWzEwXV0odGhpcywyLDQ0MzksbixXKX07CldMcj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9MDtuPW4uTi5OLmdldChEKTtpZighbilyZXR1cm4tMTtmb3IobGV0IHYgb2Ygbil7aWYodi5jcG49PT1XKXJldHVybiBiO2IrK31yZXR1cm4tMX07CkRhcj1mdW5jdGlvbihuLFcpe3ZhciBEPTA7bj1uLk4uTi5nZXQoVyk7aWYoIW4pcmV0dXJuIDA7Zm9yKGxldCBiIG9mIG4pYi5kdXJhdGlvbk1zIT09MCYmYi5kSSE9PWIub2EmJkQrKztyZXR1cm4gRH07CmcuYmZ4PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLlcudmFsdWVzKCkpbi5ncy5yZW1vdmVDdWVSYW5nZShXKTtuLlcuY2xlYXIoKTt1cyhuLlRDKX07Ck01aT1mdW5jdGlvbihuKXt2YXIgVz1BcnJheS5mcm9tKG4uYXBwLlZyLkQudmFsdWVzKCkpLEQ9W10sYj1bXSx2PVtdLGs9W10saD1bXSx4PVtdO2Zvcih2YXIgTCBvZiBXKWlmKFc9bi5OLlZFKEwuV04oKSkpbi5iaih7YXR0YWNoX3RyYW5zX21ldGE6Vy5jcG4saGFzX3ZfbWV0YTpXLnNmPzE6MCxoYXNfYV9tZXRhOlcuWU0/MTowLGhhc19jdHhfbWV0YTpXLmpWPzE6MH0pLFcualYmJkQucHVzaChXLmpWKSxXLnNmJiZiLnB1c2goVy5zZiksVy5ZTSYmYi5wdXNoKFcuWU0pLGsucHVzaChXLmNwbiksaC5wdXNoKFcudmlkZW9EYXRhLnZpZGVvSWR8fCIiKSx4LnB1c2goVy52aWRlb0RhdGEuYWRGb3JtYXR8fFcudmlkZW9EYXRhLkZGKSxXLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YSE9bnVsbCYmdi5wdXNoKFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhKTtMPXZvaWQgMDtuLnZYJiYobi5iaih7aGFzX2N0eF9saXN0OkQubGVuZ3RoPzE6MCxoYXNfY2xpcF9saXN0OmIubGVuZ3RoPwoxOjB9KSxMPXtqVjpELHJYOmJ9KTtyZXR1cm57UHc6TCxSUDp7YUQ6ayxhcTpoLGFkRm9ybWF0czp4LHNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YTp2fX19OwpnLkJkdD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXtpZihXJiZEKXtuLnVOPUQuY3BuO2pzKG4sRC5jcG4sRC5zdGFydFRpbWVTZWNzfHx2KTtGa2oobixEKTt2YXIgeD1GdyhuLCJhMmEiLEQpO24uYmooeCk7bi51ZisrO3g9TTVpKG4pO24uZ3MuY00oVyxELGJ8fDAsdnx8MCwhIWssISFoLHZvaWQgMCx4KX1lbHNlIG4uYmooe21pc3NwYmtvbmFkdHJhbnM6MSxlbnRlcjpEPy5jcG58fCIiLGV4aXQ6Vz8uY3BufHwiIixzZWVrOmssc2tpcDpofSl9OwpnLlJVaT1mdW5jdGlvbihuKXtuLnlFLmFkZChuLmopO24uaj0iIjtuLmJkPSExfTsKdiRoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYjtpZihiPW4uZ3MuZ2V0VmlkZW9EYXRhKCkuREYoKSliPShiPW4uTi5WRShXKSkmJmIudlA/KG49bi5OLk4uZ2V0KGI/LnZQKSkmJm4uc2xpY2UoLTEpWzBdLmNwbj09PVc6ITE7cmV0dXJuIGImJkQ9PT0yPzFFMzowfTsKZy53RzE9ZnVuY3Rpb24obixXKXtpZihuLmdzLmdldFZpZGVvRGF0YSgpLkRGKCkpe3ZhciBEPW4uTi5OLmdldChXKTtpZihEKXtmb3IodmFyIGIgb2YgRCl7bi5iaih7cmVtX21ldGE6Yi5jcG59KTtEPW47bGV0IHY9RC5XLmdldChiLmNwbik7RC5XLmRlbGV0ZShiLmNwbik7diYmRC5ncy5yZW1vdmVDdWVSYW5nZSh2KTt6VWgoRC5OLGIpfW4uWXEuY2xlYXIoKTtiPW4uTjtEPWIuTi5nZXQoVyk/P1tdO2ZvcihsZXQgdiBvZiBEKXpVaChiLHYpO2IuTi5kZWxldGUoVyk7KFc9bi5aaC5nZXQoVykpJiZuLlJ0JiZuLmdzLll5KFcpfX19OwpodnI9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPW4uVnx8bi5hcHAuTU4oKS5nZXRQbGF5ZXJTdGF0ZSgpO0RMKG4sITApO1c9aXNGaW5pdGUoVyk/VzpuLk4uTlcoKTt2YXIge0lEOnYsQkU6a309YmwobixXKTtXPXYmJiF2ZihuLHYpfHwhdiYmbi5OIT09bi5hcHAuTU4oKTt2YXIgaD1rKjFFMztoPW4uVyYmbi5XLnN0YXJ0PD1oJiZoPD1uLlcuZW5kOyFXJiZofHxrcihuKTt2P2cua3JaKG4sdixrLEQsYik6eHIobixrLEQsYiwiX2V4ZWN1dGUiKX07CmcuTEo9ZnVuY3Rpb24obixXLEQsYil7bi5OLlUoInRpbWVsaW5lZXJyb3IiLHtlOlcsY3BuOkQ/RDp2b2lkIDAsdmlkZW9JZDpiP2I6dm9pZCAwfSl9OwpnLmVhPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5ldyBnLmw1KE1hdGgubWF4KDAsbi01RTMpLFc/MHg4MDAwMDAwMDAwMDAwOm4tMSx7bmFtZXNwYWNlOiJjaGlsZHBsYXliYWNrIixwcmlvcml0eTo5fSl9OwpnLnhhaT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5MeDtXLkx4PUQ7dmYobixXKSYmKEQ9bi5hcHAuTU4oKSxiLm9JPT09bi5XJiZrcihuKSxELnJlbW92ZUN1ZVJhbmdlKGIub0kpLEQuYWRkQ3VlUmFuZ2UoVy5MeC5vSSkpfTsKZy5rclo9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz12ZihuLFcpO2lmKCFrKXtXLnBsYXllclZhcnMucHJlZmVyX2dhcGxlc3M9ITA7dmFyIGg9bmV3IGcuVXIobi5CLFcucGxheWVyVmFycyk7aC5LZj1XLktmO24uYXBpLnoyKGgsVy5wbGF5ZXJUeXBlKX1oPW4uYXBwLk1OKCk7a3x8aC5hZGRDdWVSYW5nZShXLkx4Lm9JKTtoLnNlZWtUbyhELHtxZDoiYXBwbGljYXRpb25fdGltZWxpbmVtYW5hZ2VyIiwuLi5ifSk7TEwyKG4sdil9OwpldnQ9ZnVuY3Rpb24obixXLEQsYil7bi5XPWI7Yj1XLktmO3ZhciB2PVcucGxheWVyVmFycyxrPVcucGxheWVyVHlwZTtuLks9Vzt2JiZuLmFwaS5lbnF1ZXVlVmlkZW9CeVBsYXllclZhcnModixrLEQsYil9OwpnJFM9ZnVuY3Rpb24obixXLEQsYil7bi5XPWI7bi5hcGkuV3Aobi5OLEQsVyl9Owprcj1mdW5jdGlvbihuKXtuLks9bnVsbDtuLlc9bnVsbDtuLmFwaS5kVCgpfHxuLmFwaS5jbGVhclF1ZXVlKCl9Owp2Zj1mdW5jdGlvbihuLFcpe249bi5hcHAuTU4oKTtyZXR1cm4hIW4mJm4uZ2V0VmlkZW9EYXRhKCkuS2Y9PT1XLktmfTsKWGVqPWZ1bmN0aW9uKG4sVyl7dmYobixXKXx8Zy5MSihuLCJjaGlsZFBsYXliYWNrSXNOb3RQcmVzZW50aW5nIik7cmV0dXJuIFcuZEk9PT1XLm9hK1cuZHVyYXRpb25Ncz9XLm9hK24uYXBwLk1OKCkuZ2V0Q3VycmVudFRpbWUoKSoxRTM6Vy5kSX07CmJsPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtmb3IobGV0IGIgb2Ygbi5KKXtuPWIub2EvMUUzK0Q7bGV0IHY9bitiLmR1cmF0aW9uTXMvMUUzO2lmKG4+VylicmVhaztpZih2PlcpcmV0dXJue0lEOmIsQkU6Vy1ufTtEPXYtYi5kSS8xRTN9cmV0dXJue0lEOm51bGwsQkU6Vy1EfX07CkRMPWZ1bmN0aW9uKG4sVyl7bi5PPU5hTjtuLkQ9bnVsbDtuLlkuc3RvcCgpO24uWCYmVyYmbi5YLkdfKCk7bi5WPW51bGw7bi5YPW51bGx9Owp4cj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uTjtrIT09bi5hcHAuTU4oKSYmbi5hcHAuWDkoKTtuLkIuUygiaHRtbDVfc2Ficl9jc2RhaV9zZWVrX2xvZyIpfHwodj0iIik7ay5zZWVrVG8oVyx7cWQ6ImFwcGxpY2F0aW9uX3RpbWVsaW5lbWFuYWdlciIrKHY/PyIiKSwuLi5EfSk7TEwyKG4sYil9OwpMTDI9ZnVuY3Rpb24obixXKXtuPW4uYXBwLk1OKCk7dmFyIEQ9bi5nZXRQbGF5ZXJTdGF0ZSgpO1cuaXNPcldpbGxCZVBsYXlpbmcoKSYmIUQuaXNPcldpbGxCZVBsYXlpbmcoKT9uLnBsYXlWaWRlbygpOlcuaXNQYXVzZWQoKSYmIUQuaXNQYXVzZWQoKSYmbi5wYXVzZVZpZGVvKCl9OwpxZWk9ZnVuY3Rpb24obil7dmFyIFc9bi5KLmZpbmQoRD0+dmYobixEKSk7CmlmKFcpe2xldCBEPW4uYXBwLk1OKCk7a3Iobik7bGV0IGI9bmV3IGcubG0oOCk7Vz1YZWoobixXKS8xRTM7eHIobixXLHt9LGIsIl9mb3JjZSIpO0QuVSgiZm9yY2VQYXJlbnRUcmFuc2l0aW9uIix7Y2hpbGRQbGF5YmFjazoxfSk7bi5OLlUoImZvcmNlUGFyZW50VHJhbnNpdGlvbiIse3BhcmVudFBsYXliYWNrOjF9KX19OwpnLmc1PWZ1bmN0aW9uKG4sVz0tMSxEPUluZmluaXR5KXtmb3IobGV0IFt4LExdb2Ygbi5qKXt2YXIgYj14LHY9TDt2LnFJPj1XJiZ2LnRhcmdldCYmdi50YXJnZXQuZEk8PUQmJihuLk4ucmVtb3ZlQ3VlUmFuZ2UoYiksbi5qLmRlbGV0ZShiKSl9Yj1bXTtmb3IobGV0IHggb2Ygbi5KKXgub2E+PVcmJnguZEk8PUQ/KHY9bix2Lks9PT14JiZrcih2KSx2Zih2LHgpJiZ2LmFwcC5YOSgpKTpiLnB1c2goeCk7bi5KPWI7dmFyIHtJRDprLEJFOmh9PWJsKG4sVy8xRTMpO2smJihXPWgqMUUzLGcuR3IxKG4sayxXLGsuZEk9PT1rLm9hK2suZHVyYXRpb25Ncz9rLm9hK1c6ay5kSSkpOyh7SUQ6V309YmwobixELzFFMykpO1cmJmcuTEoobixgSW52YWxpZCBjbGVhckVuZFRpbWVNcz0ke0R9IHRoYXQgZmFsbHMgZHVyaW5nICR7YHBsYXliYWNrPXt0aW1lbGluZVBsYXliYWNrSWQ9JHtXLktmfSB2aWRlb19pZD0ke1cucGxheWVyVmFycy52aWRlb19pZH0gZHVyYXRpb25Ncz0ke1cuZHVyYXRpb25Nc30gZW50ZXJUaW1lTXM9JHtXLm9hfSBwYXJlbnRSZXR1cm5UaW1lTXM9JHtXLmRJfX1gfS5DaGlsZCBwbGF5YmFja3MgY2FuIG9ubHkgaGF2ZSBkdXJhdGlvbiB1cGRhdGVkIG5vdCB0aGVpciBzdGFydC5gKX07CmcuR3IxPWZ1bmN0aW9uKG4sVyxELGIpe1cuZHVyYXRpb25Ncz1EO1cuZEk9YjtiPXtvSTpnLmVhKEQsITApLHFJOkQsdGFyZ2V0Om51bGx9O2cueGFpKG4sVyxiKTt2ZihuLFcpJiZuLmFwcC5NTigpLmdldEN1cnJlbnRUaW1lKCkqMUUzPkQmJihXPVhlaihuLFcpLzFFMyxEPW4uYXBwLk1OKCkuZ2V0UGxheWVyU3RhdGUoKSx4cihuLFcse30sRCwiX3VwZGF0ZSIpKX07CiRhcj1mdW5jdGlvbihuKXtuJiZuIT09IndlYiImJnRZaS5pbmNsdWRlcyhuKX07CnVScj1mdW5jdGlvbihuLFcpe3JldHVybiBXPyEhbi5OLmdldChXKTohMX07CnJFUz1mdW5jdGlvbihuLFcpe24uZGF0YXNldC52ZXJzaW9uPVd9OwpzOHI9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuUkIsRD0oKT0+e24uRU49bmV3IGcuYnIoMCwwLDAsMCk7bi5JMD1uZXcgZy5icigwLDAsMCwwKX0sYj1oPT57aC5nZXRWaWRlb0RhdGEoKSYmbi51cGRhdGVWaWRlb0RhdGEoaC5nZXRWaWRlb0RhdGEoKSl9LHY9KGgseCk9PntuLmYxKGgseCl9LGs9aD0+e24ubkImJlhTKG4pOwpxNyhuKSE9PW4uUDAmJm4ucmVzaXplKCk7bi5hcHAuRygpLlMoIndlYl9lbmFibGVfc21hcnRfem9vbSIpJiZuLm04JiYoaC5zdGF0ZS5pc1BhdXNlZCgpP24ubTgucGF1c2UoKTpoLlhRKDgpJiZuLm04LnBsYXlTdGF0ZT09PSJwYXVzZWQiJiZuLm04LnBsYXkoKSl9OwpXLmFkZEV2ZW50TGlzdGVuZXIoImluaXRpYWxpemluZ21vZGUiLEQpO1cuYWRkRXZlbnRMaXN0ZW5lcigidmlkZW9wbGF5ZXJyZXNldCIsYik7Vy5hZGRFdmVudExpc3RlbmVyKCJ2aWRlb2RhdGFjaGFuZ2UiLHYpO1cuYWRkRXZlbnRMaXN0ZW5lcigicHJlc2VudGluZ3BsYXllcnN0YXRlY2hhbmdlIixrKTtuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57Vy5yZW1vdmVFdmVudExpc3RlbmVyKCJpbml0aWFsaXppbmdtb2RlIixEKTtXLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpZGVvcGxheWVycmVzZXQiLGIpO1cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlkZW9kYXRhY2hhbmdlIix2KTtXLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByZXNlbnRpbmdwbGF5ZXJzdGF0ZWNoYW5nZSIsayl9KX07ClllaT1mdW5jdGlvbihuKXt2YXIgVz1uLkV6KCksRD0xLGI9ITEsdj1OTncobixXLG4uZ2V0VmlkZW9Bc3BlY3RSYXRpbygpKSxrPW4uYXBwLkcoKSxoPWsuUygiZW5hYmxlX2Rlc2t0b3BfcGxheWVyX3VuZGVybGF5IikseD1GbigpLEw9Zy5kTShrLmV4cGVyaW1lbnRzLCJwbGF5ZXJfdW5kZXJsYXlfbWluX3BsYXllcl93aWR0aCIpO0w9aCYmbi5hSCYmbi5nZXRQbGF5ZXJTaXplKCkud2lkdGg+TDtpZihxNyhuKSl7dmFyIGU9cGVVKG4pO3ZhciBHPWlzTmFOKGUpfHxnLlJnfHxuciYmZy5Hbnx8TDtnLk1MJiYhZy5aWCg2MDEpP2U9di5hc3BlY3RSYXRpbzpHPUd8fGsuY29udHJvbHNUeXBlPT09IjMiO0c/TD8oRz1rLlMoInBsYWNlX3NocnVua2VuX3ZpZGVvX29uX2xlZnRfb2ZfcGxheWVyIik/MTY6bi5nZXRQbGF5ZXJTaXplKCkud2lkdGgtVy53aWR0aC0xNixlPU1hdGgubWF4KChuLmdldFBsYXllclNpemUoKS5oZWlnaHQtVy5oZWlnaHQpLzIsMCksRz1uZXcgZy5icihHLGUsVy53aWR0aCwKVy5oZWlnaHQpLG4ubkIuc3R5bGUuc2V0UHJvcGVydHkoImJvcmRlci1yYWRpdXMiLCIxMnB4IikpOkc9bmV3IGcuYnIoMCwwLFcud2lkdGgsVy5oZWlnaHQpOihEPXYuYXNwZWN0UmF0aW8vZSxHPW5ldyBnLmJyKChXLndpZHRoLXYud2lkdGgvRCkvMiwoVy5oZWlnaHQtdi5oZWlnaHQpLzIsdi53aWR0aC9ELHYuaGVpZ2h0KSxEPT09MSYmZy5HbiYmKGU9Ry53aWR0aC1XLmhlaWdodCplLGU+MCYmKEcud2lkdGgrPWUsRy5oZWlnaHQrPWUpKSk7Zy5pSChuLmVsZW1lbnQsInl0cC1maXQtY292ZXItdmlkZW8iLE1hdGgubWF4KEcud2lkdGgtdi53aWR0aCxHLmhlaWdodC12LmhlaWdodCk8MSk7aWYoeHx8bi5jSSluLm5CLnN0eWxlLmRpc3BsYXk9IiI7bi5QMD0hMH1lbHNle0c9LVcuaGVpZ2h0O2cuTUw/Ryo9d2luZG93LmRldmljZVBpeGVsUmF0aW86Zy5zbSYmKEctPXdpbmRvdy5zY3JlZW4uaGVpZ2h0KTtHPW5ldyBnLmJyKDAsRyxXLndpZHRoLFcuaGVpZ2h0KTtpZih4fHxuLmNJKW4ubkIuc3R5bGUuZGlzcGxheT0KIm5vbmUiO24uUDA9ITF9dlkobi5FTixHKXx8KG4uRU49RyxnLkRmKGspPyhuLm5CLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsRy53aWR0aCsicHgiLCJpbXBvcnRhbnQiKSxuLm5CLnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLEcuaGVpZ2h0KyJweCIsImltcG9ydGFudCIpKTpOdChuLm5CLEcuZ2V0U2l6ZSgpKSxHPW5ldyBnLk1ZKEcubGVmdCxHLnRvcCksYj1uLm5CLHg9TWF0aC5yb3VuZChHLngpLHggaW5zdGFuY2VvZiBnLk1ZPyhrPXgueCx4PXgueSk6KGs9eCx4PU1hdGgucm91bmQoRy55KSksYi5zdHlsZS5sZWZ0PXNqKGssITEpLGIuc3R5bGUudG9wPXNqKHgsITEpLGI9ITApO1c9bmV3IGcuYnIoKFcud2lkdGgtdi53aWR0aCkvMiwoVy5oZWlnaHQtdi5oZWlnaHQpLzIsdi53aWR0aCx2LmhlaWdodCk7dlkobi5JMCxXKXx8KG4uSTA9VyxiPSEwKTtnLmgxKG4ubkIsInRyYW5zZm9ybSIsRD09PTE/IiI6YHNjYWxlWCgke0R9KWApO2gmJkwhPT1uLlp4JiYoTCYmKG4ubkIuYWRkRXZlbnRMaXN0ZW5lcihHQSwKbi5reiksbi5uQi5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uY2FuY2VsIixuLmt6KSxuLm5CLmNsYXNzTGlzdC5hZGQoZy5Pbi5WSURFT19DT05UQUlORVJfVFJBTlNJVElPTklORykpLG4uWng9TCxuLmFwcC5SQi5XSigicGxheWVyVW5kZXJsYXlWaXNpYmlsaXR5Q2hhbmdlIixuLlp4PyJ0cmFuc2l0aW9uaW5nIjoiaGlkZGVuIikpO3JldHVybiBifTsKWFM9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuRygpLmNvbnRyb2xzVHlwZT09PSIzIiYmIW4ud0YmJnE3KG4pJiYhbi5hcHAuc2p8fCExO24ubkIuY29udHJvbHM9VztuLm5CLnRhYkluZGV4PVc/MDotMTtuLmFwcC5HKCkuSiYmKG4ubkIuYXJpYUhpZGRlbj0idHJ1ZSIpO1c/bi5uQi5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsbi5KdCk6bi5uQi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbi5KdCl9OwpwZVU9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuTU4oKTtpZihXPVc/Vy5nZXRWaWRlb0RhdGEoKTpudWxsKXtpZihnLkhUKFcpfHxnLmZBKFcpfHxnLkpEKFcpKXJldHVybiAxNi85O2lmKE1zKFcpJiZXLlcuTigpKXJldHVybiBuPVcuVy52aWRlb0luZm9zWzBdLnZpZGVvLHRiKG4ud2lkdGgsbi5oZWlnaHQpfXJldHVybihuPW4ubkIpP3RiKG4udmlkZW9XaWR0aCxuLnZpZGVvSGVpZ2h0KToxNi85fTsKdGI9ZnVuY3Rpb24obixXKXtyZXR1cm4gTWF0aC5hYnMoJHIqVy1uKTwxfHxNYXRoLmFicygkci9uLVcpPDE/JHI6bi9XfTsKTk53PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQsaz10YihXLndpZHRoLFcuaGVpZ2h0KTtuLnJVP3Y9RDxrP0luZmluaXR5OjA6aXNOYU4obi5WUik/aXNOYU4obi5mVCl8fCh2PW4uZlQpOnY9bi5WUjtpc0Zpbml0ZSh2KT92PT09MCYmbi5hcHAuRygpLlp0KCkuTi5RUShIZngpJiYodj1NYXRoLm1pbihELGspKTp2PU1hdGgubWF4KEQsayk7bj12Pms/e3dpZHRoOlcud2lkdGgsaGVpZ2h0Olcud2lkdGgvdixhc3BlY3RSYXRpbzp2fTp2PGs/e3dpZHRoOlcuaGVpZ2h0KnYsaGVpZ2h0OlcuaGVpZ2h0LGFzcGVjdFJhdGlvOnZ9Ont3aWR0aDpXLndpZHRoLGhlaWdodDpXLmhlaWdodCxhc3BlY3RSYXRpbzprfTtifHxpc05hTihEKXx8KEQ+dj9uLndpZHRoPW4uaGVpZ2h0KkQ6RDx2JiYobi5oZWlnaHQ9bi53aWR0aC9EKSxuLmFzcGVjdFJhdGlvPUQpO3JldHVybiBufTsKcTc9ZnVuY3Rpb24obil7aWYobi5hcHAuZ2V0QXBwU3RhdGUoKT09PTEpcmV0dXJuITE7aWYobi5hcHAuZ2V0QXBwU3RhdGUoKT09PTYpcmV0dXJuITA7dmFyIFc9bi5hcHAuTU4oKTtpZighV3x8Vy5KbigpKXJldHVybiExO249bi5hcHAuUkIuZ2V0UGxheWVyU3RhdGVPYmplY3QoKTtXPSFuLk4oMil8fFcmJlcuZ2V0VmlkZW9EYXRhKCkuSzt2YXIgRD1uLk4oMTAyNCk7cmV0dXJuIG4mJlcmJiFEJiYhbi5pc0N1ZWQoKX07CmZHUz1mdW5jdGlvbihuKXtpZihuLmNzbiE9PWcuUnYoKSlpZihuLmNzbj09PSJVTkRFRklORURfQ1NOIiluLmNzbj1nLlJ2KCk7ZWxzZXt2YXIgVz1nLlJ2KCksRD13NCgpO2lmKFcmJkQpe24uY3NuPVc7Zm9yKGxldCBiIG9mIG4uZWxlbWVudHMpe2xldCB2PWIudmlzdWFsRWxlbWVudDt2JiZ2LmlzQ2xpZW50VmUoKSYmVyYmRCYmKGcubCgiY29tYmluZV92ZV9ncmFmdHMiKT9PMyhJZigpLHYsRCk6UFYodWcpKHZvaWQgMCxXLEQsdikpfX1pZihXKWZvcihsZXQgYiBvZiBuLk4pKG49Yi52aXN1YWxFbGVtZW50KSYmbi5pc0NsaWVudFZlKCkmJkZqKFcsbil9fTsKSkViPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLlk2KXtuLlk2PW4uRChuLlkpO3RyeXtsZXQgRD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt2YXIgVz1zZXRUaW1lb3V0KCgpPT57RC5yZWplY3QoInRpbWVvdXQiKX0sMUU0KTsKbi5ZNi5vbmVycm9yPSgpPT57RC5yZWplY3QoImVycm9yIil9OwpuLlk2Lm9ubWVzc2FnZT0oKT0+e0QucmVzb2x2ZSgpO2NsZWFyVGltZW91dChXKX07CmF3YWl0IEQucHJvbWlzZTtuLlk2Lm9ubWVzc2FnZT1udWxsO24uWTYub25lcnJvcj1udWxsO24uWTYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYj0+dm9pZCBuLnJlY2VpdmUoYikpOwpuLlUoIndvcmtlckN0b3IiLHt9KX1jYXRjaChEKXtjbGVhclRpbWVvdXQoVyksbi5ZNj8udGVybWluYXRlKCksbi5ZNi5vbm1lc3NhZ2U9bnVsbCxuLlk2Lm9uZXJyb3I9bnVsbCxuLlk2PXZvaWQgMCxuLlUoIndvcmtlckVyciIse2U6YCR7RH1gfSl9fX07CklHdz1mdW5jdGlvbihuLFcpe2lmKG4uTiYmbi5OLmJ5dGVMZW5ndGg9PT1XKXJldHVybiBuLk47Zm9yKHZhciBEPW5ldyBVaW50OEFycmF5KFcpLGI9MDtXPjA7KXtsZXQgdj1uZXcgVWludDhBcnJheShNYXRoLm1pbihXLDY1NTM2KSk7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2KTtELnNldCh2LGIpO1ctPXYubGVuZ3RoO2IrPXYubGVuZ3RofXJldHVybiBuLk49RH07ClNlMT1mdW5jdGlvbihuLFcpe24uWTYmJihXPUlHdyhuLFcpLFcubGVuZ3RoPjAmJldbMF0rKyxXPXtxTDpwZXJmb3JtYW5jZS5ub3coKSx0eXBlOjEsYTk6e2RhdGE6V319LG4ucmVxdWVzdChXKSl9OwpBRWk9YXN5bmMgZnVuY3Rpb24obil7bi5KIT09dm9pZCAwfHxuLld8fChuLlc9ITAsYXdhaXQgSkViKG4pLG4uVz0hMSxuLlk2JiYoU2UxKG4sbi5LKSxuLko9c2V0SW50ZXJ2YWwoKCk9Pnt2YXIgVz1bMSwyLDMsNF07bi5CQiYmKFcucHVzaCg1KSxuLlgmJlcucHVzaCg2KSk7c3dpdGNoKFdbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKlcubGVuZ3RoKV0pe2Nhc2UgMTpTZTEobixuLmopO2JyZWFrO2Nhc2UgMjpuLlk2JiYoVz17cUw6cGVyZm9ybWFuY2Uubm93KCksdHlwZToyLGx4OntwbGFjZWhvbGRlcjohMH19LG4ucmVxdWVzdChXKSk7YnJlYWs7Y2FzZSAzOlc9bi5NdztuLlk2JiYoVz17cUw6cGVyZm9ybWFuY2Uubm93KCksdHlwZTozLHEwOntNdzpXfX0sbi5yZXF1ZXN0KFcpKTticmVhaztjYXNlIDQ6bi5ZNiYmKFc9e3FMOnBlcmZvcm1hbmNlLm5vdygpLHR5cGU6NCxpc1R5cGVTdXBwb3J0ZWQ6e3BsYWNlaG9sZGVyOiEwfX0sbi5yZXF1ZXN0KFcpKTticmVhaztjYXNlIDU6bi5CQiYmCihXPXtxTDpwZXJmb3JtYW5jZS5ub3coKSx0eXBlOjUseTg6e0JCOm4uQkJ9fSxuLnJlcXVlc3QoVykpO2JyZWFrO2Nhc2UgNjp2YXIgRD1uLmo7Vz1uLlM3O24uWTYmJihEPUlHdyhuLEQpLFc9e3FMOnBlcmZvcm1hbmNlLm5vdygpLHR5cGU6NixKTDp7ZGF0YTpELFM3Old9fSxuLnJlcXVlc3QoVykpfX0sbi5pbnRlcnZhbE1zKSkpfTsKcjU9ZnVuY3Rpb24obixXLEQpe24uc2VuZE1lc3NhZ2Uoe1sxNjFdOjIsWzExNl06VyxbMTM5XTpEfSl9OwpaZnc9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9bi50Yi5HKCksRD1XLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKS50cnVzdGVkUGxheWJhY2tXb3JrZXJVcmw7aWYoRD1wdyhEfHxudWxsKSluLlk2PVhNKEQpLG4uTj1uZXcgbWFVKG4uWTYpLG4uWTYuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGI9PntnLlhqKGIuZXJyb3IpfSksbi5ZNi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixiPT57dmFyIHY9Yi5kYXRhOwpiPXZbMTE4XTt2YXIgaz12WzE4MF07aWYoaylmb3IodmFyIGggb2Yga1sxMjJdKShrPW4uVy5nZXQoaFsxMTldKSkmJktMWihrLGhbMTUxXSk7c3dpdGNoKGJbMTYxXSl7Y2FzZSAxOmxldCB7WzEwM106ZSxbM106R309YlsxN107c3dpdGNoKGUpe2Nhc2UgMTpsZXQgW3IsTl09RztuLnRiLmNsZWFyUXVldWUocixOKTticmVhaztjYXNlIDI6W2JdPUc7bi50Yi5vblBsYXllclJlcXVlc3RTZW50KGIpO2JyZWFrO2Nhc2UgMzpsZXQgW0gsQSx5XT1HO2lmKGI9eT9uLkouZ2V0KHkpOm51bGwpYj1iLmdldFZpZGVvRGF0YSgpLG4udGIuVmEoSCxBLGIpO2JyZWFrO2Nhc2UgNDpsZXQgW1QseixDXT1HO2I9bi5YLmdldCh6KTtpZighYil0aHJvdyBFcnJvcihgVW5rbm93biBtaXJyb3JlZCBDdWVSYW5nZTogJHt6fWApO24udGIuQ0ooVCxiLEMpO2JyZWFrO2Nhc2UgNTpbYl09RzsoYj1uLkouZ2V0KGIpKSYmbi50Yi5ueShiLmdldFZpZGVvRGF0YSgpKTticmVhaztjYXNlIDY6W2JdPUc7KGI9Cm4uSi5nZXQoYikpJiZuLnRiLmZMKGIuZ2V0VmlkZW9EYXRhKCkpO2JyZWFrO2Nhc2UgNzpuLnRiLkdjKCk7YnJlYWs7ZGVmYXVsdDpnLnBiKGUsdm9pZCAwKX1icmVhaztjYXNlIDI6dj1uLk47aD1iWzExNl07Yj1iWzEzOV07az12Lk4uZ2V0KGgpO3RyeXtrJiZrLnJlamVjdChiKX1maW5hbGx5e3YuTi5kZWxldGUoaCl9YnJlYWs7Y2FzZSAzOnY9bi5OO2g9YlsxMTZdO2I9YlsxMzldO2s9di5OLmdldChoKTt0cnl7ayYmay5yZXNvbHZlKGIpfWZpbmFsbHl7di5OLmRlbGV0ZShoKX1icmVhaztjYXNlIDQ6T2Z0KG4sdik7YnJlYWs7Y2FzZSA1OmJyZWFrO2Nhc2UgNjpiPXZbMTE4XTtoPW4uSy5nZXQoYls5OF0pO3Y9dlsxMzhdO2lmKGgpe2xldCB7WzEwM106cixbM106Tn09YlsxN107c3dpdGNoKHIpe2Nhc2UgImxvYWQiOmgubG9hZCguLi5OKTt2JiZyNShuLk4sdik7YnJlYWs7Y2FzZSAicGxheSI6Yj1oLnBsYXkoLi4uTik7diYmc1oobix2LGJ8fHZvaWQgMCk7YnJlYWs7Y2FzZSAicGF1c2UiOmgucGF1c2UoLi4uTiksCnYmJnI1KG4uTix2KX19YnJlYWs7Y2FzZSA3OmlmKHY9bi5LLmdldChiWzk4XSkpe3ZhciB7WzEzNV06eCxbMTY1XTpMfT1iWzE0NF07Yj12LmVfKCk7c3dpdGNoKHgpe2Nhc2UgImN1cnJlbnRUaW1lIjpiLmN1cnJlbnRUaW1lPUw7YnJlYWs7Y2FzZSAiZGVmYXVsdFBsYXliYWNrUmF0ZSI6Yi5kZWZhdWx0UGxheWJhY2tSYXRlPUw7YnJlYWs7Y2FzZSAibG9vcCI6Yi5sb29wPUw7YnJlYWs7Y2FzZSAibXV0ZWQiOmIubXV0ZWQ9TDticmVhaztjYXNlICJwbGF5YmFja1JhdGUiOmIucGxheWJhY2tSYXRlPUw7YnJlYWs7Y2FzZSAic3JjIjpMPyhiPW4uRC5nZXQoTCkpJiZ2LnM1KGIpOih2LlZRKCksdi5lJCgpKTticmVhaztkZWZhdWx0OmcucGIoeCx2b2lkIDApfX1icmVhaztjYXNlIDg6aWYodj1uLlcuZ2V0KGJbMTE5XSkpe2xldCB7dHlwZTpyLGFyZ3M6TixsVDpIfT17dHlwZTpiWzQ3XVsxNjFdLGFyZ3M6Yls0N11bM10sbFQ6Wy4uLmJbNDddWzNdXX07c3dpdGNoKHIpe2Nhc2UgImludGVybmFsYXVkaW9mb3JtYXRjaGFuZ2UiOmI9Ck5bMF1bNV07di52aWRlb0RhdGEuWD1iP09OKGIpOm51bGw7SFswXT12LnZpZGVvRGF0YTticmVhaztjYXNlICJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIjpiPU5bMF1bNDhdO3YudmlkZW9EYXRhLko9Yj9PTihiKTpudWxsO0hbMF09di52aWRlb0RhdGE7YnJlYWs7Y2FzZSAiaW50ZXJuYWx2aWRlb2RhdGFjaGFuZ2UiOmI9TlsxXTtoPSEhdi52aWRlb0RhdGEuZ2V0UGxheWVyUmVzcG9uc2UoKTt6Zih2LnZpZGVvRGF0YSx7cmF3X3BsYXllcl9yZXNwb25zZTpiWzEyNV18fHZvaWQgMH0sIWgsITEpO0hbMV09di52aWRlb0RhdGE7YnJlYWs7Y2FzZSAiaGVhcnRiZWF0cGFyYW1zIjpiPU5bMF07SFswXT17dXJsOmJbMTYyXSxpbnRlcnZhbDpiWzU2XSxyZXRyaWVzOmJbMTQwXX07YnJlYWs7Y2FzZSAibm9uZmF0YWxlcnJvciI6Yj1OWzBdO0hbMF09bmV3IGcuQ2koYls0NV0sYlszOF0sYlsxNDVdKTticmVhaztjYXNlICJzdGF0ZWNoYW5nZSI6Yj1OWzBdO2g9TXdoKGJbMTUxXSk7SFswXT0KbmV3IGcuTjcoaCxNd2goYlsxMTNdKSk7di5wbGF5ZXJTdGF0ZT1oO2JyZWFrO2Nhc2UgInZpZGVvZWxlbWVudGV2ZW50IjpIWzBdPW5ldyBQQlModi5tZWRpYUVsZW1lbnQsTlswXVsxNjFdKX12LmV2ZW50cy5XSihyLC4uLkgpfWJyZWFrO2Nhc2UgOTpuLkQuc2V0KGJbMTAxXSxiWzEwMF0pO2JyZWFrO2RlZmF1bHQ6Zy5wYihiLHZvaWQgMCl9fSksbi5ZNi5wb3N0TWVzc2FnZSh7dHlwZToiQk9PVFNUUkFQIiwKZGF0YTp7aG9zdG5hbWU6d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGhyZWY6d2luZG93LmxvY2F0aW9uLmhyZWYscHJvdG9jb2w6d2luZG93LmxvY2F0aW9uLnByb3RvY29sLHNlYXJjaDp3aW5kb3cubG9jYXRpb24uc2VhcmNoLHl0Q29uZmlnOntJTk5FUlRVQkVfSE9TVF9PVkVSUklERTp3aW5kb3cubG9jYXRpb24ub3JpZ2luLC4uLmcucWkueXQuY29uZmlnX319fSksbi5zZW5kTWVzc2FnZSh7WzE2MV06MyxbMTc1XTpXLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKX0pfTsKc1o9ZnVuY3Rpb24obixXLEQpe0Q/RC50aGVuKGI9PntyNShuLk4sVyxiKX0sYj0+e24uTi5zZW5kTWVzc2FnZSh7WzE2MV06MSwKWzExNl06VyxbMTM5XTpifSl9KTpyNShuLk4sVyxudWxsKX07Ck9mdD1mdW5jdGlvbihuLFcpe3ZhciBEPVdbMTE4XTtzd2l0Y2goRFsxMDNdKXtjYXNlIDE6bGV0IFtiLHYsa109RFszXTtEPW4udGIuZFEoYix2LGspOyhXPVdbMTM4XSkmJnNaKG4sVyxEKTticmVhaztjYXNlIDI6bGV0IFtoLHhdPURbM107RD1VYWgoeCxoKTsoVz1XWzEzOF0pJiZzWihuLFcsQWUoU2soRCxMPT4oe1sxNl06Zy5sWihMKSxbMTQ2XToiYzFhImluIEwuUlI/IWcudVouaXNJbml0aWFsaXplZCgpOiExfSkpKSk7CmJyZWFrO2Nhc2UgMzpEPW4udGIueWYoKTsoVz1XWzEzOF0pJiZzWihuLFcsRCk7YnJlYWs7ZGVmYXVsdDpnLnBiKERbMTAzXSx2b2lkIDApfX07CnlFMj1mdW5jdGlvbihuKXt2YXIgVz1uLnRiLkcoKSxEPW4udGIubGooKSxiPW4udGIuaGgoKSx2PUQuZ2V0UGxheWVyU2l6ZSgpO0Q9RC5FeigpO1c9e1syM106bi50Yi5GbigpLFs0NF06e1sxXTpXLlMkLFsxMjRdOlcuQ3UsWzEzMV06Vy55RSxbMTQzXTpXLmpXLFsxNTVdOlcuRVp9LFs1OV06bi50Yi5FOCgpLFs2MV06bi50Yi52MygpLFs2Nl06bi50Yi5pc0Z1bGxzY3JlZW4oKSxbNjddOiExLFs3MF06bi50Yi5qSSgpLFs3MV06bi50Yi5pc0lubGluZSgpLFs3Ml06bi50Yi5CUCgpLFs3M106bi50Yi5pc011dGVkKCksWzc1XTpuLnRiLmlzT3JjaGVzdHJhdGlvbkxlYWRlcigpLFs3N106bi50Yi5BbigpLFs4MF06ITEsWzgyXTohMSxbODNdOm4udGIuU0koKSxbODRdOm4udGIuUTAoKSxbMTA2XTpuLnRiLmlzTXV0ZWQoKSxbMTI2XTp7WzE3OV06di53aWR0aCxbNTNdOnYuaGVpZ2h0fSxbMTMzXTpuLnRiLk1OKCkuSEwoKSxbMTM0XTpuLnRiLk1OKCkuVXUoKSxbMTY2XTp7WzE3OV06RC53aWR0aCwKWzUzXTpELmhlaWdodH0sWzE3MV06YixbMTc0XTpuLnRiLmdldFZvbHVtZSgpfTtiPVtdO2ZvcihsZXQgW2ssaF1vZiBuLlcuZW50cmllcygpKXY9ayxEPWguZ2V0VmlkZW9EYXRhKCksYi5wdXNoKHtbMTE5XTp2LFsxNTFdOntbMTY3XTp7WzI1XTpELlJEfX19KTtuLlkmJk9iamVjdC5hc3NpZ24oVyx7WzY3XTpuLnRiLkhvKCksWzgwXTpuLnRiLmdXKCksWzgyXTpuLnRiLmRUKCl9KTtyZXR1cm57WzJdOlcsWzEyMl06Yn19OwpFJE09ZnVuY3Rpb24obixXKXt2YXIgRD1gbWFpbi5jdWVSYW5nZToke24uTysrfWA7aWYobi5YLmdldChEKSlyZXR1cm4gRDtuLlguc2V0KEQsVyk7bi5qLnNldChXLEQpO3JldHVybiBEfTsKaWZDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5qLmdldChXKTtpZihEKXJldHVybiBuLmouZGVsZXRlKFcpLG4uWC5kZWxldGUoRCksRH07CktMWj1mdW5jdGlvbihuLFcpe1cmJihPYmplY3QuYXNzaWduKG4uTixXKSxuLmF1ZGlvVHJhY2s9RGMoV1s3XSksbi5YPVhMUyhXWzE0N10pLFc9V1sxNjddKSYmKG4udmlkZW9EYXRhLlR3PVdbMThdLG4udmlkZW9EYXRhLmNhcHRpb25UcmFja3M9V1syMF0ubWFwKEQ9PlZ3KEQpKSxuLnZpZGVvRGF0YS53YT1XWzIxXSxuLnZpZGVvRGF0YS5PJD1XWzE5XSxuLnZpZGVvRGF0YS5HQz1XWzMwXSxuLnZpZGVvRGF0YS52WD1EYyhXWzM1XSksbi52aWRlb0RhdGEuU3c9V1sxNzZdKX07CnU4Yj1hc3luYyBmdW5jdGlvbihuLFcsRCl7Vz17WzEwM106VyxbM106RH07RD1uLmZnLk5lLmdldChuKTtyZXR1cm4gbi5mYSh7WzE2MV06OSxbMTddOlcsWzExOV06RH0pfTsKZy5wSj1mdW5jdGlvbihuLFcsRCl7Vz17WzEwM106VyxbM106RH07RD1uLmZnLk5lLmdldChuKTtuLnNlbmRNZXNzYWdlKHtbMTYxXTo5LFsxN106VyxbMTE5XTpEfSl9OwpZcj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2goe1sxNTBdOm4uc3RhcnQoRCksWzQyXTpuLmVuZChEKX0pO3JldHVybiBXfTsKbyRVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uZ2V0VmlkZW9EYXRhKCkuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkmJlc9PT0yPyhuLkIuWnQoKS5OLlFRKEhmKT9uLlZyLk4/LmlzQWQoKT8/ITE6bi5Rdz8uTmQobi5nZXRDdXJyZW50VGltZSgpKSk/bi5pdTotMTpXIT09Mnx8bi5MWSgpP24uaXU6bi5CJH07CnY3PWZ1bmN0aW9uKG4pe3JldHVybiBuLnNqJiZuLmdldFZpZGVvRGF0YSgpLm11dGVkQXV0b3BsYXl9Owp2YXIgbXR4PWZ1bmN0aW9uKG4pe3JldHVybiBYRFtJWzEwXV0odGhpcywxNiw0MDI5LG4pfTsKZko9ZnVuY3Rpb24obixXLEQpe1cmJihXPW4uVkUoe3BsYXllclR5cGU6RH0pLFc9PT1uLmNYKCkmJihXLmdldFZpZGVvRGF0YSgpLlBYPSEwKSl9OwpKYj1mdW5jdGlvbihuLFcsRD0hMCxiLHYsayl7dmFyIGg9bi5WRSh7cGxheWVyVHlwZTp2fSkseD1oLmdldFZpZGVvRGF0YSgpO2guZ2V0UGxheWVyVHlwZSgpPT09MiYmIW4uTFkoaCkmJiF4LmlzU2Vla2FibGV8fGcucEEoeCl8fChoJiZoPT09bi5jWCgpJiZuLkhOJiYhZGF0KG4sVykmJm4uc2V0TG9vcFJhbmdlKG51bGwpLG4uc2Vla1RvKFcsRCxiLHYsaywiX3JlcXVlc3QiKSl9OwpBYj1mdW5jdGlvbihuLFcpe1c9bi5WRSh7cGxheWVyVHlwZTpXfSk7Vz1nLklYKG4sVyk7cmV0dXJuIFNhKG4sVy5QRygpLFcpfTsKUGY9ZnVuY3Rpb24obixXLEQpe24uQi5iTiYmKG4uRl89VyxXLm11dGVkfHxLSihuLCExKSxEJiZuLkIuc3RvcmVVc2VyVm9sdW1lJiYhbi5CLnM1JiYoRD17dm9sdW1lOk1hdGguZmxvb3IoVy52b2x1bWUpLG11dGVkOlcubXV0ZWR9LEQudW5zdG9yYWJsZXx8KGcuUEIoInl0LXBsYXllci12b2x1bWUiLEQpLGcuUEIoInl0LXBsYXllci12b2x1bWUiLEQsMjU5MkUzKSkpLE9aKG4pLEQ9Zy5vZCYmbi5tZWRpYUVsZW1lbnQmJiFuLm1lZGlhRWxlbWVudC5YXygpJiYhbi5tZWRpYUVsZW1lbnQuVEMoKSxuLkIuczUmJiFEfHxnLlZVKG4uUkIsIm9uVm9sdW1lQ2hhbmdlIix7bXV0ZWQ6Vy5tdXRlZCx2b2x1bWU6Vy52b2x1bWUsdW5zdG9yYWJsZTohbi5CLnN0b3JlVXNlclZvbHVtZX0pKX07ClZTPWZ1bmN0aW9uKG4pe3JldHVybiBuLmNYKCkuZ2V0VmlkZW9EYXRhKCl9Owp6djI9ZnVuY3Rpb24obixXPSExKXt2YXIgRD0hMTtuLkIuR0MmJihuLlJCLldKKCJwYWdlVHJhbnNpdGlvbiIpLEQ9ITApO24uc3RvcFZpZGVvKEQsVyl9OwpVWj1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXtXPXtpZDpXLG5hbWVzcGFjZTpoPz8iYXBwYXBpIn07az09PSJjaGFwdGVyIj8oVy5zdHlsZT1aTC5DSEFQVEVSX01BUktFUixXLnZpc2libGU9ITApOmlzTmFOKHYpfHwoaz09PSJhZCI/Vy5zdHlsZT1aTC5BRF9NQVJLRVI6KFcuc3R5bGU9WkwuVElNRV9NQVJLRVIsVy5jb2xvcj12KSxXLnZpc2libGU9ITApO24uWEgoW25ldyBnLmw1KEQqMUUzLGIqMUUzLFcpXSwxKTtyZXR1cm4hMH07CmxHdz1mdW5jdGlvbihuLFcsRD0hMCxiLHYpe3ZhciBrPW4uVkUoe3BsYXllclR5cGU6MX0pLGg9MDtrLmdldFN0cmVhbVRpbWVPZmZzZXQoKSYmIWsuU1coKSYmKGg9ay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpO0piKG4sVy1oLEQsYiwxLHYpfTsKajgyPWZ1bmN0aW9uKG4pe2lmKG4uQi5zdG9yZVVzZXJWb2x1bWUpcmV0dXJuIHJQKCk7dmFyIFc9bi5pc0lubGluZSgpfHxuLndlYlBsYXllckNvbnRleHRDb25maWcuY29udGV4dElkPT09IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX0lOTElORV9QUkVWSUVXIjtyZXR1cm4gbi5adCgpLk4uUVEoVE5DKSYmVz97dm9sdW1lOnJQKCkudm9sdW1lLG11dGVkOm4uQi5tdXRlfTp7dm9sdW1lOjEwMCxtdXRlZDpuLkIubXV0ZX19OwpDQlM9ZnVuY3Rpb24obixXLEQsYix2LGs9ITApe3ZhciBoPW4uaEMoKTtpZighaClyZXR1cm4gayYmbi5nZXRWaWRlb0RhdGEoKS5pc0xpdmVQbGF5YmFjayYmbi5KVi5wdXNoKHtpZDpXLFd1OkQsdHY6Yn0pLCExO2s9aC1uLmdldEN1cnJlbnRUaW1lKCk7cmV0dXJuIFVaKG4sVyxELWssYi1rLHZvaWQgMCx2b2lkIDAsdil9Owp5Wj1mdW5jdGlvbihuLFcpe24ucGxheWxpc3QmJihnLkNwKG4ucGxheWxpc3QpLG4ucGxheWxpc3Q9bnVsbCk7VyYmKG4uWlYmJihXLmZldGNoPTApLG4ucGxheWxpc3Q9bmV3IEJOYihuLkIsVykpfTsKaWw9ZnVuY3Rpb24obixXLEQpe1c9bi5WRSh7cGxheWVyVHlwZTpEfSkuTnAoVyk7RCYmbi5nZXRQcmVzZW50aW5nUGxheWVyVHlwZSgpIT09RHx8RVoobiwiY3VlcmFuZ2VzcmVtb3ZlZCIsVyl9OwpVYWg9ZnVuY3Rpb24obixXKXtyZXR1cm4gSFAobmV3IGcuRkxVKHtwSzpXLGNsaWVudFBsYXliYWNrTm9uY2U6bn0pKX07CndlVT1mdW5jdGlvbihuLFcsRCxiPUluZmluaXR5LHY9MCl7dmFyIGs9bi5NTigpO0Q9RHx8ay5nZXRQbGF5ZXJUeXBlKCk7KGs9dWwobixELFcsITApKXx8KGs9b1gobixELFcsITApKTtXPW4uY1goKTtEPT09MiYmVyYmKEQ9ay5nZXRWaWRlb0RhdGEoKSxXLlV5KEQuY2xpZW50UGxheWJhY2tOb25jZSxELkZGfHwiIixELmJyZWFrVHlwZXx8MCxELllLLEQudmlkZW9JZHx8IiIpKTtuLldwKGssYiwwLHYpfTsKTVlNPWZ1bmN0aW9uKG4pe3ZhciBXPW4ud2ViUGxheWVyQ29udGV4dENvbmZpZy50cnVzdGVkSnNVcmw7cmV0dXJuIFc/cHcoVykudG9TdHJpbmcoKTpuLndlYlBsYXllckNvbnRleHRDb25maWcuanNVcmx9OwpSdlo9ZnVuY3Rpb24obil7dmFyIFc9IiIsRD0iIixiPU1ZTShuKSx2PWcubGYoYiwiY2IiKTt2JiYvXltcdy1dKyQvLnRlc3QodikmJihEPXYpO2IuaW5kZXhPZigiLy8iKT09PTAmJihiPW4uQi5wcm90b2NvbCsiOiIrYik7dj1iLmxhc3RJbmRleE9mKCIvYmFzZS5qcyIpO3YhPT0tMSYmKFc9Yi5zdWJzdHJpbmcoMCx2KzEpKTtpZihiPUVycm9yKCkuc3RhY2spaWYoYj1iLm1hdGNoKC9cKCguKj9cLyhkZWJ1Zy0pP3BsYXllci0uKj8pOlxkKzpcZCtcKS8pKWI9YlsxXSxiLmluY2x1ZGVzKFcpfHxnLkdxKEVycm9yKGBQbGF5ZXIgbW9kdWxlIFVSTCBtaXNtYXRjaDogJHtifSB2cyAke1d9LmApKTtXPW5ldyBnLmQ1KG4uUkIsVyxEKTtqTGooVyx7ZGVzdHJveWVkOigpPT57bi5vbkFwaUNoYW5nZSgpfX0pOwpyZXR1cm4gV307ClE4eD1mdW5jdGlvbihuKXtpZihuLkIuWnQoKS5OLlFRKG5hKSl7bi5tUS50aWNrKCJ3YXNtX3MiKTtsZXQgVz1FZChuLndlYlBsYXllckNvbnRleHRDb25maWcud2FzbU1vZHVsZVVybCx2b2lkIDAsbi5JbC5iaW5kKG4pKTtuLkIuZUI9U2soVyxEPT57bi5tUS50aWNrKEQuaXNBc21qcz8id2FzbV9mYSI6Indhc21fZnciKTtKdShuLkIsRCk7cmV0dXJuIER9LEQ9PntuLm1RLnRpY2soIndhc21fZmVyciIpOwp0aHJvdyBEO30pfWVsc2UgT28obixmdW5jdGlvbigpe3ZhciBXPXRoaXM7CnJldHVybiBmdW5jdGlvbiooKXtXLm1RLnRpY2soIndhc21fcyIpO3ZhciBEPVFZKFcueDYpP2I9PlNrKERyWihXLng2KSx2PT52LmdCKGIpKTp2b2lkIDA7CnRyeXtsZXQgYj1FZChXLndlYlBsYXllckNvbnRleHRDb25maWcud2FzbU1vZHVsZVVybCxELFcuSWwuYmluZChXKSksdj15aWVsZCpQUChiKTtXLm1RLnRpY2sodi5pc0FzbWpzPyJ3YXNtX2ZhIjoid2FzbV9mdyIpO0p1KFcuQix2KX1jYXRjaChiKXtXLm1RLnRpY2soIndhc21fZmVyciIpfX0oKX0pfTsKVll4PWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBnLlVyKG4uQixuLk5RKTtuLlJCLldKKCJpbml0aWFsdmlkZW9kYXRhY3JlYXRlZCIsVyk7cmV0dXJuIG9YKG4sMSxXLCExKX07CmFHMT1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7Vy5zZXRQbGF5YmFja1JhdGUobi5CLko/MTpjRXIobixOdW1iZXIoZy5aSSgieXQtcGxheWVyLXBsYXliYWNrLXJhdGUiKSl8fDEpKTtXLmgkKG4uWkwsbik7Vy5zbSgpfTsKVzJ3PWZ1bmN0aW9uKG4pe24uamgoKTt2YXIgVz1uLk5RO3pBKG4pO24uZXZlbnRzLk5OKHdpbmRvdywicmVzaXplIixuLkE2KTt2YXIgRD1WUyhuKTtnLlZVKG4uUkIsIm9uVm9sdW1lQ2hhbmdlIixuLkZfKTtpZihXJiZaVChXKSl7bGV0IGI9dkUobi5CKTtiJiYhbi5aViYmKFcuZmV0Y2g9MCk7bGV0IHY9Zy5vNChuLkIpO3YmJiFuLlpWJiYoVy5mZXRjaD0wKTt5WihuLFcpO2cubzQobi5CKSYmbi5tUS50aWNrKCJlcF9wcl9zIik7aWYoIWJ8fG4uWlYpaWYodiYmIW4uWlYpbGwobik7ZWxzZSBpZighRC5PVigpKW4ucGxheWxpc3Qub25SZWFkeSgoKT0+e1RBKG4pfSl9bi5RVChuLmNYKCksITEsITApOwpuLmNYKCkuZ2V0UGxheWVyU3RhdGUoKS5OKDEyOCl8fChXPWhnUyghbi5CLmRldmljZUlzQXVkaW9Pbmx5KSxXPT09ImZtdC5ub25lYXZhaWxhYmxlIj9uLktnKCJodG1sNS5taXNzaW5nYXBpIiwyLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsIm5vY29kZWNzLjEiKTpXPT09Imh0bWw1Lm1pc3NpbmdhcGkiP24uS2coVywyLCJVTlNVUFBPUlRFRF9ERVZJQ0UiLCJub2NhbnBsYXltZWRpYS4xIik6RCYmRC5PVigpJiZDSihuKSYmKG4uQi5VNXx8bi5CLk1kKT9CZihuKTpELkpHP24uUkIubXV0ZWRBdXRvcGxheSh7ZHVyYXRpb25Nb2RlOkQubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZX0pOmcuWkkoInl0LXBsYXllci1wbGF5YmFjay1vbi1yZWxvYWQiKT8oZy56VSgiZW1iZWRzSXRwUGxheWVkT25SZWxvYWQiLHtwbGF5ZWRPblJlbG9hZDohMCxpc0xvZ2dlZEluOiEhbi5CLlRDfSksZy5QQigieXQtcGxheWVyLXBsYXliYWNrLW9uLXJlbG9hZCIsITEpLEJmKG4pKToKbi5CLlk9PT0ibGVhbmJhY2sifHxuNWoobiksZy5lTShuLkIpfHxnLnNkKG4uQik/KGcuY0IoZy5EeSgpLCgpPT57RlMobil9KSxnLmNCKGcuRHkoKSwoKT0+e3g1KCl9KSk6KEZTKG4pLHg1KCkpKX07CkRlYj1mdW5jdGlvbihuKXt2YXIgVz1EPT57RC5zdGFjayYmRC5zdGFjay5pbmRleE9mKCJwbGF5ZXIiKSE9PS0xJiZuLk1OKCkuVWUoRCl9OwpTaS5zdWJzY3JpYmUoImhhbmRsZUVycm9yIixXKTtLdy5wdXNoKFcpO3JldHVybigpPT57U2kudW5zdWJzY3JpYmUoImhhbmRsZUVycm9yIixXKTt2YXIgRD1Ldy5pbmRleE9mKFcpO0QhPT0tMSYmS3cuc3BsaWNlKEQsMSl9fTsKb1g9ZnVuY3Rpb24obixXLEQsYix2KXtpZihuLmZnJiZELk9WKCkpbj1uZXcgZy53NShuLkIsbi5mZyxXLEQpO2Vsc2V7bGV0IGs9bi5tUTtXPT09MiYmKGs9bmV3IGJjUyhuLkIpKTtXPW5ldyBnLk03KG4sbi5CLFcsayxuLnRlbXBsYXRlLG4udmlzaWJpbGl0eSxuLmlqLEQsdixuLmRoLG4uaTcpO24uQi5adCgpLk4uUVEodjVpKSYmbi5uVChELmNsaWVudFBsYXliYWNrTm9uY2UpO249bmV3IGcuUlgoVyl9YiYmbi5zbSgpO3JldHVybiBufTsKY0VyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5SQi5nZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzKCk7Vz1OdW1iZXIoVy50b0ZpeGVkKDIpKTtuPURbMF07RD1EW0QubGVuZ3RoLTFdO1c8PW4/Vz1uOlc+PUQ/Vz1EOihuPU1hdGguZmxvb3IoVyoxMDArLjAwMSklNSxuIT09MCYmKFctPW4qLjAxLFc9TWF0aC5mbG9vcihXKjEwMCsuMDAxKS8xMDApKTtyZXR1cm4gV307ClZaPWZ1bmN0aW9uKG4pe1FaKG4pO24uc2V0TG9vcFZpZGVvKCExKTtuLnNldExvb3BSYW5nZShudWxsKTtuLlJCLldKKCJsZWdhY3lhZHRyYWNraW5ncGluZ3Jlc2V0Iik7bi5hbD17fTtuLkpWPVtdO1pCaihuLm1RKTtpZihuLlF3KXt2YXIgVz1uLlF3LEQ9bi5jWCgpO0QuZ2V0UGxheWVyVHlwZSgpO0NPKFcsITEpO25KKFcpO2NSYihXKTtXLmdzPUR9Vz1uLnNVO249bi5jWCgpO24uZ2V0UGxheWVyVHlwZSgpIT09MSYmZy5MSihXLCJpbnZhbGlkUGFyZW50VmlkZW9QbGF5ZXJUeXBlIik7REwoVywhMSk7Zy5nNShXKTtXLk49bn07Cmswaj1mdW5jdGlvbihuKXt2YXIgVz1uLm1lZGlhRWxlbWVudDt6aSgpP24ua1YuTk4oVywid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLG4udFcpOndpbmRvdy5kb2N1bWVudC5waWN0dXJlSW5QaWN0dXJlRW5hYmxlZCYmKG4ua1YuTk4oVywiZW50ZXJwaWN0dXJlaW5waWN0dXJlIiwoKT0+e24ucEwoITApfSksbi5rVi5OTihXLCJsZWF2ZXBpY3R1cmVpbnBpY3R1cmUiLCgpPT57bi5wTCghMSl9KSk7Cnc4JiYobi5rVi5OTihXLCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iLCgpPT57bi5GTygzKX0pLG4ua1YuTk4oVywid2Via2l0ZW5kZnVsbHNjcmVlbiIsKCk9PntuLkZPKDApfSkpfTsKekE9ZnVuY3Rpb24obil7bi5tZWRpYUVsZW1lbnQ9bi5CLmRldmljZUlzQXVkaW9Pbmx5P25ldyBnLkdWKGcuekYoIkFVRElPIikpOnFLLnBvcCgpfHxuZXcgZy5HVihnLnpGKCJWSURFTyIpKTtuLkIuWnQoKS5OLlFRKGNmKXx8Zy51KG4sbi5tZWRpYUVsZW1lbnQpO24uTU4oKS5zZXRNZWRpYUVsZW1lbnQobi5tZWRpYUVsZW1lbnQpO3RyeXtuLkIuczU/KG4uR3YmJm4uZXZlbnRzLndIKG4uR3YpLG4uR3Y9bi5ldmVudHMuTk4obi5tZWRpYUVsZW1lbnQsInZvbHVtZWNoYW5nZSIsbi56ZCkpOihuLm1lZGlhRWxlbWVudC5jSihuLkZfLm11dGVkKSxuLm1lZGlhRWxlbWVudC5zZXRWb2x1bWUobi5GXy52b2x1bWUvMTAwKSl9Y2F0Y2godil7bi5LZygiaHRtbDUubWlzc2luZ2FwaSIsMiwiVU5TVVBQT1JURURfREVWSUNFIixgc2V0dm9sdW1lLjE7ZW1zZy4ke3YmJnR5cGVvZiB2PT09Im9iamVjdCImJiJtZXNzYWdlImluIHYmJnR5cGVvZiB2Lm1lc3NhZ2U9PT0ic3RyaW5nIiYmdi5tZXNzYWdlLnJlcGxhY2UoL1s7OixdL2csCiJfIil9YCk7cmV0dXJufW4ua1YuSigpO2swaihuKTt2YXIgVz1uLnRlbXBsYXRlLEQ9bi5tZWRpYUVsZW1lbnQuZV8oKTtXLm5CPUQ7Vy53Rj0hMTtXLm5CLnBhcmVudE5vZGV8fGcuanAoVy5WUCxXLm5CLDApO1cuRU49bmV3IGcuYnIoMCwwLDAsMCk7WWVpKFcpO1hTKFcpO0Q9Vy5uQjtnLlVJKEQsInZpZGVvLXN0cmVhbSIpO2cuVUkoRCxnLk9uLk1BSU5fVklERU8pO3ZhciBiPVcuYXBwLkcoKTtiLmxRJiZELnNldEF0dHJpYnV0ZSgiZGF0YS1uby1mdWxsc2NyZWVuIiwidHJ1ZSIpO2IueGgmJihELnNldEF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwiIiksRC5zZXRBdHRyaWJ1dGUoInBsYXlzaW5saW5lIiwiIikpO2IuSkcmJlcubkImJlcuTk4oRCwiY2xpY2siLEQucGxheSxEKTt0cnl7bi5tZWRpYUVsZW1lbnQuRCgpfWNhdGNoKHYpe24uS2coImh0bWw1Lm1pc3NpbmdhcGkiLDIsIlVOU1VQUE9SVEVEX0RFVklDRSIsYGFjdGl2YXRlLjE7ZW1zZy4ke3YmJnR5cGVvZiB2PT09CiJvYmplY3QiJiYibWVzc2FnZSJpbiB2JiZ0eXBlb2Ygdi5tZXNzYWdlPT09InN0cmluZyImJnYubWVzc2FnZS5yZXBsYWNlKC9bOzosXS9nLCJfIil9YCl9fTsKRVo9ZnVuY3Rpb24obixXLEQpe24uUkIuV0ooVyxEKTt2YXIgYj1nLms2KG4uQil8fGcuRGYobi5CKXx8Zy5NVihuLkIpO2lmKEQmJmIpe2xldCB2O3N3aXRjaChXKXtjYXNlICJjdWVyYW5nZW1hcmtlcnN1cGRhdGVkIjp2PSJvbkN1ZVJhbmdlTWFya2Vyc1VwZGF0ZWQiO2JyZWFrO2Nhc2UgImN1ZXJhbmdlc2FkZGVkIjp2PSJvbkN1ZVJhbmdlc0FkZGVkIjticmVhaztjYXNlICJjdWVyYW5nZXNyZW1vdmVkIjp2PSJvbkN1ZVJhbmdlc1JlbW92ZWQifXYmJmcuUlQobi5SQix2LEQubWFwKGs9Pih7Z2V0SWQoKXtyZXR1cm4gdGhpcy5pZH0sZW5kOmsuZW5kLGlkOmsuZ2V0SWQoKSxuYW1lc3BhY2U6ay5uYW1lc3BhY2U9PT0iYWQiPyJhZCI6IiIsc3RhcnQ6ay5zdGFydCxzdHlsZTprLnN0eWxlLHZpc2libGU6ay52aXNpYmxlLG1hcmtlclBvc2l0aW9uTXM6ay5tYXJrZXJQb3NpdGlvbk1zfSkpKX19OwpoZDE9ZnVuY3Rpb24obixXPSEwKXt2YXIgRDtpZihEPW4uckgpe0Q9bi5ySDt2YXIgYj1uLm1lZGlhRWxlbWVudDtEPSEhYiYmYj09PUQubWVkaWFFbGVtZW50fUQmJihuLmNQKCksekEobikpO0Q9bi5NTigpO0QuY1AoIVcpO0QuTTkobi5zRixuKTtELmdldFBsYXllclR5cGUoKSE9PTEmJkQuZGlzcG9zZSgpO249bi5WcjtXPVtuLkpdO24uSj1uLmNKO1NzKG4sW10sVyl9OwpueD1mdW5jdGlvbihuLFcsRCxiKXtEJiYobi5jUCgpLHpBKG4pKTtEPW4uTU4oKTtELnhLKFcpO3ZhciB2PW4uZ2V0VmlkZW9EYXRhKCksaz17fTtrLnZpZGVvX2lkPXYudmlkZW9JZDtrLmFkZm9ybWF0PXYuYWRGb3JtYXQ7di5pc0xpdmVQbGF5YmFja3x8KGsuc3RhcnQ9RC5nZXRDdXJyZW50VGltZSgpLGsucmVzdW1lPSIxIik7di5pc0xpdmVQbGF5YmFjayYmSTQodikmJmcuR2wobi5CKSYmKGsubGl2ZV91dGNfc3RhcnQ9RC5oQygpLGsucmVzdW1lPSIxIik7di5EJiYoay52dnQ9di5EKTt2LmtXJiYoay52c3NfY3JlZGVudGlhbHNfdG9rZW49di5rVyxrLnZzc19jcmVkZW50aWFsc190b2tlbl90eXBlPXYuUXYpO3Yub2F1dGhUb2tlbiYmKGsub2F1dGhfdG9rZW49di5vYXV0aFRva2VuKTtrLmF1dG9wbGF5PTE7ay5yZWxvYWRfY291bnQ9di5TJCsxO2sucmVsb2FkX3JlYXNvbj1XO3Yub1QmJihrLnVucGx1Z2dlZF9wYXJ0bmVyX29wdF9vdXQ9di5vVCk7di5MQiYmKGsueXBjX2lzX3ByZW1pZXJlX3RyYWlsZXI9CnYuTEIpO3YucGxheWVyUGFyYW1zJiYoay5wbGF5ZXJfcGFyYW1zPXYucGxheWVyUGFyYW1zKTt2LnR3JiYoay5pdGN0PXYudHcpO24ubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKGssdm9pZCAwLCEwLHZvaWQgMCx2b2lkIDAsYik7Vz09PSJzaWduYXR1cmUiJiZuLlF3JiZhWChuKX07CkwyTT1mdW5jdGlvbihuKXtpZigheGVyKG4pKXt2YXIgVz1uLmNYKCkuaDUoKTtXJiYoVz1XLmJkKCksVyBpbnN0YW5jZW9mIFByb21pc2UmJlcuY2F0Y2goKCk9Pnt9KSk7CldxKG4sVFgobi5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpKSl9fTsKeGVyPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXlsaXN0JiYoZy5DTihuLkIpfHxuLkIuWT09PSJiYWNrZ3JvdW5kX2F1ZGlvX3BsYXliYWNrIikmJm4ueGwoKT8obi5uZXh0VmlkZW8oITEsITApLCEwKTohMX07CldxPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5NTigpLGI9RC5nZXRQbGF5ZXJUeXBlKCk7aWYoYiE9PTJ8fG4uTFkoKSl7aWYoYj09PTImJm4uTFkoKXx8Yj09PTV8fGI9PT02fHxiPT09NylpZihXPT09LTF8fFc9PT0wfHxXPT09NSlyZXR1cm47aWYoVz09PTApe2lmKG4uSE4pcmV0dXJuO2lmKEQuY0coKSYmZy5rNihuLkIpKXtuLnBsYXlWaWRlbygpO3JldHVybn19bi5pdSE9PVcmJihuLml1PVcsZy5WVShuLlJCLCJvblN0YXRlQ2hhbmdlIixXKSl9ZWxzZSBuLkIkIT09VyYmKG4uQiQ9VyxnLlZVKG4uUkIsIm9uQWRTdGF0ZUNoYW5nZSIsVykpfTsKREY9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5Wci5WRShXKX07CmcuSVg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5MWShXKT9uLmNYKCk6V307CmJVPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5NTigpO3JldHVybiBXPT09bi5jWCgpJiZuLkxZKFcpJiZuLkxZKEQpP0Q6V307CnZxPWZ1bmN0aW9uKG4pe249R3Uobi54Nik7cmV0dXJuISFuJiZuLmxvYWRlZH07CmVkUz1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFZpZGVvRGF0YSgpLEQ9bi54NjtWWShEKXx8RC5YKCk7IVVkJiZRWShEKSYmYU1VKEQpO3c5KEQsImVtYmVkIik7dzkoRCwia2lkcyIpO3c5KEQsInJlbW90ZSIpO3c5KEQsIm1pbmlwbGF5ZXIiKTt3OShELCJvZmZsaW5lIik7dzkoRCwidW5wbHVnZ2VkIik7dzkoRCwieXBjIiwhMSwhMCk7dzkoRCwid2ViZ2wiLCExLCEwKTtuRGooRCl8fCh3OShELCJjYXB0aW9ucyIsITApLHc5KEQsImVuZHNjcmVlbiIpLEQuTigpLHc5KEQsImNyZWF0b3JlbmRzY3JlZW4iLCEwKSk7RC5ZKCk7RC5BLldKKCJtb2R1bGVzQ3JlYXRlZCIpO24uUkIuV0ooInZpZGVvcmVhZHkiLFcpfTsKYVg9ZnVuY3Rpb24obil7aWYoIXZxKG4pKXtsZXQgVz1URyhuLng2KTtXJiYhVy5jcmVhdGVkJiZSRyhuLng2KSYmVy5jcmVhdGUoKX19OwpPWj1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFZpZGVvRGF0YSgpO2lmKCFXLnlsKXt2YXIgRDtuLkIuZXhwZXJpbWVudHMuRXEoImh0bWw1X3N0YXRlZnVsX2F1ZGlvX25vcm1hbGl6YXRpb24iKSYmVy5ob3N0Q3BuJiYoRD1raShuLFcuaG9zdENwbik/LmdldFZpZGVvRGF0YSgpLmhnLmooKSk7Vz1uLkIuczU/MTpyNihXLmhnLEQpO0Q9bi5tZWRpYUVsZW1lbnQ7RC5jSihuLkZfLm11dGVkKTt0cnl7RC5zZXRWb2x1bWUobi5GXy52b2x1bWUqVy8xMDApfWNhdGNoe2cuR3EobmV3IGcuUXgoImIxODM3NDIzMDciLGBtdWx0aXBsaWVyOiAke1d9LCB2b2x1bWU6ICR7bi5GXy52b2x1bWV9YCkpfX19Owp2YXIgSjFaPWZ1bmN0aW9uKCl7cmV0dXJuIGVYW0lbMTBdXSh0aGlzLDY3LDQ4NDkpfTsKQ0o9ZnVuY3Rpb24obil7bj1WUyhuKTtuLk9WKCk7cmV0dXJuIEFEKG4pfTsKbGw9ZnVuY3Rpb24obixXKXt2YXIgRD0oVz9XOlZTKG4pKS5RNztuLm1RLnRpY2soImVwX3ByX3IiKTtpZihEIT1udWxsJiYodUF0KG4ucGxheWxpc3QsRCksbi5sSikpbi5wbGF5bGlzdC5vblJlYWR5KCgpPT57VEEobixXKX0pfTsKVEE9ZnVuY3Rpb24obixXKXt2YXIgRD1nLm80KG4uQikmJiFuLkIuTyxiPUQmJlc/VzppdihuLnBsYXlsaXN0KTtXPUQmJlc/VzpuLmdldFZpZGVvRGF0YSgpO2ImJihXLkd1JiYobi5CLlU1fHxuLkIuTWQpfHwhbi5LSD8oVz1XLlBYLGI9bi56MihiLDEpLFcmJmZKKG4sYikpOmhWKG4sYiwxKSk7Zy5vNChuLkIpJiZuLm1RLnRpY2soImVwX3BfbCIpO24ubEo9ITE7Zy5RVShuLlJCLCJvblBsYXlsaXN0VXBkYXRlIil9OwpCZj1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7aWYoVy5nZXRQbGF5ZXJTdGF0ZSgpLk4oMTI4KSlyZXR1cm4hMTtXPVcuZ2V0VmlkZW9EYXRhKCk7Q0oobikmJm4uQi5NZCYmKHFLLmxlbmd0aCYmbi5zaj8oUGYobix7bXV0ZWQ6ITEsdm9sdW1lOm4uRl8udm9sdW1lfSwhMSksS0oobiwhMSkpOnFLLmxlbmd0aHx8bi5GXy5tdXRlZHx8KFBmKG4se211dGVkOiEwLHZvbHVtZTpuLkZfLnZvbHVtZX0sITEpLEtKKG4sITApKSk7Q0oobikmJmcubzQobi5CKSYmVy5tdXRlZEF1dG9wbGF5JiYoUGYobix7bXV0ZWQ6ITAsdm9sdW1lOm4uRl8udm9sdW1lfSwhMSksS0oobiwhMCkpO1cuTjAmJlBmKG4se211dGVkOiEwLHZvbHVtZTpuLkZfLnZvbHVtZX0sITEpO3VsKG4sMSxXLCExKTt2YXIgRD1uLmNYKCk7bi5SQi5XSigiaW5pdGlhbGl6aW5nbW9kZSIpO24uUVQoRCk7bi5HMigzKTt2YXIgYjtpZighKGI9IW4uQi5HUykpe2lmKGI9bi5ySCl7Yj1uLnJIO3ZhciB2PW4ubWVkaWFFbGVtZW50OwpiPSEhdiYmdj09PWIubWVkaWFFbGVtZW50fWI9YiYmbi5hQ31iJiYobi5jUCgpLHpBKG4pLEQuc2V0TWVkaWFFbGVtZW50KG4ubWVkaWFFbGVtZW50KSk7RC5uTCgpO2lmKEQuZ2V0UGxheWVyU3RhdGUoKS5OKDEyOCkpcmV0dXJuITE7Vy5EdHx8V3EobiwzKTtyZXR1cm4gbi5hQz0hMH07Cm41aj1mdW5jdGlvbihuKXtuLlJCLldKKCJpbml0aWFsaXppbmdtb2RlIik7bi5HMigyKTt3OShuLng2LCJyZW1vdGUiKTt3OShuLng2LCJtaW5pcGxheWVyIil9OwpGUz1mdW5jdGlvbihuKXtpZighbi5TKCJ1c2VfcnRhX2Zvcl9wbGF5ZXIiKSlpZihuLlMoImZldGNoX2F0dF9pbmRlcGVuZGVudGx5IikpZy5KYShuLkNOKTtlbHNle3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCkuYm90Z3VhcmREYXRhO1cmJmcuekMoVyxuLkIsbi5nZXRWaWRlb0RhdGEoKS5wS3x8IiIpfX07CktKPWZ1bmN0aW9uKG4sVyl7VyE9PW4uc2omJihuLnNqPVcsZy5RVShuLlJCLCJvbk11dGVkQXV0b3BsYXlDaGFuZ2UiLFcpKX07CnVsPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PXhpKG4sVyxEKSxrPW4uVnIuWC5nZXQodil8fG51bGw7aWYoIWspcmV0dXJuIG51bGw7bi5Wci5YLnJlbW92ZSh2KTtpZihrLnFOKCkpcmV0dXJuIG51bGw7aWYoay5nZXRQbGF5ZXJTdGF0ZSgpLk4oMTI4KSlyZXR1cm4gay5kaXNwb3NlKCksbnVsbDtpZihrPT09REYobix7cGxheWVyVHlwZTpXfSkpcmV0dXJuIG4ubVEuaW5mb0dlbCh7aXNDYWNoZUhpdDohMH0pLGs7aWYoKGsuZ2V0VmlkZW9EYXRhKCkub2F1dGhUb2tlbnx8RC5vYXV0aFRva2VuKSYmay5nZXRWaWRlb0RhdGEoKS5vYXV0aFRva2VuIT09RC5vYXV0aFRva2VuKXJldHVybiBudWxsO1c9PT0xJiYoVz1uLk1OKCkuZ2V0VmlkZW9EYXRhKCksQUooVykmJlcuaXNBZCgpJiZifHxRWihuKSk7Ynx8bi5RVChrLCEwKTtuLm1RLmluZm9HZWwoe2lzQ2FjaGVIaXQ6ITB9KTtyZXR1cm4ga307CmcuZzVoPWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKSxEPW4uZ2V0Q3VycmVudFRpbWUoKTtuPW4uZ2V0VmlkZW9EYXRhKCk7RD0xRTMqKEQtbi5zdGFydFNlY29uZHMpO24uaXNMaXZlUGxheWJhY2smJihEPTApO3JldHVybiBXLU1hdGgubWF4KEQsMCl9OwpkYXQ9ZnVuY3Rpb24obixXKXtpZighbi5ITilyZXR1cm4hMTt2YXIgRD1uLkhOLnN0YXJ0VGltZU1zKi4wMDEtMSxiPW4uSE4uZW5kVGltZU1zKi4wMDE7bi5ITi50eXBlPT09InJlcGVhdENoYXB0ZXIiJiZiLS07cmV0dXJuIE1hdGguYWJzKFctRCk8PTFFLTZ8fE1hdGguYWJzKFctYik8PTFFLTZ8fFc+PUQmJlc8PWJ9OwpYUXg9ZnVuY3Rpb24obil7dmFyIFc9bi5NTigpO2lmKG4uUygiaHRtbDVfZGlzYWJsZV9sb29wX3JhbmdlX2Zvcl9zaG9ydHNfYWRzIikmJlcuZ2V0VmlkZW9EYXRhKCkuaXNBZCgpPzA6QUooVy5nZXRWaWRlb0RhdGEoKSkmJiFXLklLKCkpVz1BYihuKSoxRTMtbi5nZXRWaWRlb0RhdGEoKS5QTCxuPW4uVGUsaWwobi5hcHAsImdhcGxlc3NzaG9ydHNsb29wcmFuZ2UiKSxXPW5ldyBnLmw1KDAsVyx7aWQ6ImdhcGxlc3Nsb29wcmFuZ2UiLG5hbWVzcGFjZToiZ2FwbGVzc3Nob3J0c2xvb3ByYW5nZSJ9KSwobj1uLmFwcC5NTigpKSYmbi5hZGRDdWVSYW5nZShXKX07Ckcwaj1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7aWYoIShXLmdldFBsYXllclN0YXRlKCkuTig2NCkmJlZTKG4pLmlzTGl2ZVBsYXliYWNrJiZuLkhOLnN0YXJ0VGltZU1zPDVFMykpe2lmKG4uSE4udHlwZT09PSJyZXBlYXRDaGFwdGVyIil7dmFyIEQ9RCQobi5KNSgpKT8uQjcoKTtsZXQgYj1uLmdldFZpZGVvRGF0YSgpPy5iJDtpZihEIGluc3RhbmNlb2YgcWhTJiZiKXtsZXQgdj0wO2ZvcihsZXQgayBvZiBiKXtpZihrLnN0YXJ0VGltZT5uLkhOLnN0YXJ0VGltZU1zKWJyZWFrO3YrK31ELnJlbmRlckNoYXB0ZXJTZWVraW5nQW5pbWF0aW9uKDAsYlt2PT09MD92OnYtMV0udGl0bGUpfWlzTmFOKE51bWJlcihuLkhOLmxvb3BDb3VudCkpP24uSE4ubG9vcENvdW50PTA6bi5ITi5sb29wQ291bnQrKztuLkhOLmxvb3BDb3VudD09PTEmJmcuUlQobi5SQiwiaW5uZXJ0dWJlQ29tbWFuZCIsbi5nZXRWaWRlb0RhdGEoKS5aTil9RD17cWQ6ImFwcGxpY2F0aW9uX2xvb3BSYW5nZVN0YXJ0In07CmlmKG4uSE4udHlwZT09PSJjbGlwcyJ8fG4uSE4udHlwZT09PSJzaG9ydHNMb29wIilELnNlZWtTb3VyY2U9NTg7Vy5zZWVrVG8obi5ITi5zdGFydFRpbWVNcyouMDAxLEQpfX07ClNhPWZ1bmN0aW9uKG4sVyxEKXtpZihuLkxZKEQpJiYoRD1ELmdldFZpZGVvRGF0YSgpLCFnLkx4KG4pKSl7bj1uLnNVO2Zvcih2YXIgYiBvZiBuLkopaWYoRC5LZj09PWIuS2Ype1crPWIub2EvMUUzO2JyZWFrfWI9Vztmb3IobGV0IHYgb2Ygbi5KKXtpZihELktmPT09di5LZilicmVhaztuPXYub2EvMUUzO2lmKG48VyliKz12LmR1cmF0aW9uTXMvMUUzK24tdi5kSS8xRTM7ZWxzZSBicmVha31yZXR1cm4gYn1yZXR1cm4gV307CmcuTHg9ZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VmlkZW9EYXRhKCkuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkmJiEhbi5Rd307ClFaPWZ1bmN0aW9uKG4peyhuPVRHKG4uSjUoKSkpJiZuLmNyZWF0ZWQmJm4uZGVzdHJveSgpfTsKdHR3PWZ1bmN0aW9uKG4pe3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCkueWwsRD1uLkIuRHQsYj1uLmlzSW5saW5lKCkmJiFuLmdldFZpZGVvRGF0YSgpLnYxLHY9bi5tZWRpYUVsZW1lbnQ7V3x8RHx8Yj92LmZCKCk6KHYuTEIoKSxQZihuLG4uRl8pKX07CiRlVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5TKCJ3ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSYmZy5lTShuLkIpfHxuLlMoIm13ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSYmZy5zZChuLkIpfTsKeGk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBnLms2KG4uQikmJkQudkooKT9gJHtXfV8ke0QudmlkZW9JZH1fJHtELktmfWA6YCR7V31fJHtELnZpZGVvSWR9XyR7RC5LZn1fJHsrRC5pc0F1dG9uYXZ9JHsrRC5WVH1gfTsKcmpqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcmJm4uQi5MQiYmIW4uZ2V0VmlkZW9EYXRhKCk/LmJhY2tncm91bmRhYmxlPyhuLkZqP24uRmouc3RhcnQoKTpuLlZLKCksITApOiExfTsKc2FpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtpZihXKXRyeXtsZXQgaz1kZWNvZGVVUklDb21wb25lbnQoVyksaD1scChrKTt2YXIgYj1uZXcgQVIobmV3IFM1KFtoXSkpO3ZhciB2PVBHKGIsMzIpO0Q9TnVtYmVyKHZ8fDApfWNhdGNoKGspe24uY1goKS5VKCJnZXRfbHVzdHNfZXJyIix7fSl9cmV0dXJuIER9OwpoVj1mdW5jdGlvbihuLFcsRD0xKXtpZihXLk9WKCkpe3ZhciBiPW9YKG4sRCxXLCExKTtuLmNhbmNlbFBsYXliYWNrKDQsRCk7bi5RVChiKTtiLnNtKCk7RD09PTEmJihuLkcyKDEpLGcubzQobi5CKSYmIVpQKFcpPyhXLmRpc3Bvc2UoKSxuLmNYKCkuZGlzcG9zZSgpKTpuNWoobikpfWVsc2UgVy5kaXNwb3NlKCksKFc9REYobix7cGxheWVyVHlwZTpEfSkpJiZXLmRpc3Bvc2UoKSxQVChWUyhuKSkmJkQ9PT0yJiZuLlNvKCl9OwpOYWI9ZnVuY3Rpb24obixXLEQsYix2KXtXPVFzUyhXLEQsYix2KTsoRD1nLm80KG4uQikmJiFuLkIuTykmJiFuLlpWJiYoVy5mZXRjaD0wKTt5WihuLFcpO2cubzQobi5CKSYmbi5tUS50aWNrKCJlcF9hX3ByX3MiKTtpZihEJiYhbi5aVilEPVZTKG4pLHpicihELFcpLnRoZW4oaz0+e24ubEo9ITA7bGwobixrKX0pOwplbHNlIG4ucGxheWxpc3Qub25SZWFkeSgoKT0+e1RBKG4pfSk7CmcubzQobi5CKSYmbi5tUS50aWNrKCJlcF9hX3ByX3IiKX07CmtpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9REYobix7cGxheWVyVHlwZToxfSk7aWYoRCl7aWYoRC5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlPT09VylyZXR1cm4gRDtpZigobj1uLlNHLk4pJiZuLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2U9PT1XKXJldHVybiBufXJldHVybiBudWxsfTsKZW89ZnVuY3Rpb24obil7dmFyIFc9c1AoITApO3JldHVybiBXJiYoVz09PW4udGVtcGxhdGUuZWxlbWVudHx8bi5tZWRpYUVsZW1lbnQmJlc9PT1uLm1lZGlhRWxlbWVudC5lXygpKT9XOm51bGx9OwpZaGk9ZnVuY3Rpb24obixXKXt2YXIgRD13aW5kb3cuc2NyZWVuPy5vcmllbnRhdGlvbjtpZihuLkIudHcmJkQmJkQubG9jayYmKCFnLm9kfHwhcFFqKSlpZihXKXtXPUQudHlwZS5pbmRleE9mKCJwb3J0cmFpdCIpPT09MDtsZXQgYj1uLnRlbXBsYXRlLmdldFZpZGVvQXNwZWN0UmF0aW8oKSx2PVc7YjwxP3Y9ITA6Yj4xJiYodj0hMSk7bi5KUiYmdj09PVd8fChEPUQubG9jayh2PyJwb3J0cmFpdCI6ImxhbmRzY2FwZSIpLEQhPW51bGwmJkQuY2F0Y2goKCk9Pnt9KSxuLkpSPSEwKX1lbHNlIG4uSlImJihuLkpSPSExLEQudW5sb2NrKCkpfTsKSGN0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5VeigpLGI9Vy5oNSgpO2lmKEQmJmImJm42KEQpKXt2YXIgdj1iLmlzVmlldygpP2IubWVkaWFFbGVtZW50OmI7bGV0IGg9Yi5pc1ZpZXcoKT9iLnN0YXJ0OjA7Yj1GZ2IoYikraDt2YXIgaz1MNihELGgsYiwhMCk7bGV0IHg9bmV3IGcuc2codixoLGIsITApO1cubm0oaywhMSwhMCwhMSk7Vy5zZXRNZWRpYUVsZW1lbnQoeCk7az1iKzEwO0Q9TDYoRCxrLEluZmluaXR5LCEwKTt2PW5ldyBnLnNnKHYsayxJbmZpbml0eSwhMSwhMCk7di5ISihEKTtuLlZxPXY7bi5CLldYKCkmJlcuVSgidXNtIix7cG1lOiEwLGNzOmgsY2U6YixuczprfSk7cmV0dXJuITB9cmV0dXJuITF9OwpmNmg9ZnVuY3Rpb24obixXKXtXLmJvdW5kcz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBEPVsiZGlzcGxheSIsIm9wYWNpdHkiLCJ2aXNpYmlsaXR5IiwiekluZGV4Il07Zm9yKGxldCBiIG9mIEQpV1tiXT1YbShuLGIpO1cuaGlkZGVuPSEhbi5oaWRkZW59Owp2YXIgU2pVPWZ1bmN0aW9uKCl7cmV0dXJuIFhEW0lbMTBdXSh0aGlzLDQsMzA5NCl9Owp2YXIgSmoyPWZ1bmN0aW9uKG4pe3JldHVybiBuLm5hbWU9PT0iVHlwZUVycm9yIiYmbi5zdGFjay5pbmNsdWRlcygiL3MvcGxheWVyLyIpJiZFeigpPD0xMDV9LGdxPWZ1bmN0aW9uKG4sVyl7aWYobi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciBEPU1hdGguZmxvb3IoLW4uc2Nyb2xsUG9zaXRpb24vKG4uaituLlcpKTsKbGV0IGI9TWF0aC5taW4oRCtuLmNvbHVtbnMsbi5zdWdnZXN0aW9uRGF0YS5sZW5ndGgpLTE7Zm9yKDtEPD1iO0QrKyluLmFwaS5sb2dWaXNpYmlsaXR5KG4uTltEXS5lbGVtZW50LFcpfX0sWFA9ZnVuY3Rpb24obil7bi5uZXh0LmVsZW1lbnQuc3R5bGUuYm90dG9tPWAke24uS31weGA7Cm4ucHJldmlvdXMuZWxlbWVudC5zdHlsZS5ib3R0b209YCR7bi5LfXB4YDt2YXIgVz1uLnNjcm9sbFBvc2l0aW9uLEQ9bi5jb250YWluZXJXaWR0aC1uLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aCoobi5qK24uVyk7Zy5pSChuLmVsZW1lbnQsInl0cC1zY3JvbGwtbWluIixXPj0wKTtnLmlIKG4uZWxlbWVudCwieXRwLXNjcm9sbC1tYXgiLFc8PUQpfSxJNlo9ZnVuY3Rpb24obil7Zm9yKHZhciBXPTA7VzxuLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aDtXKyspe3ZhciBEPW4uc3VnZ2VzdGlvbkRhdGFbV107CmxldCBrPW4uTltXXTt2YXIgYj1ELnNob3J0Vmlld0NvdW50P0Quc2hvcnRWaWV3Q291bnQ6RC5hdXRob3I7bGV0IGg9RC5NZigpLHg9bi5hcGkuRygpO2lmKGcubzQoeCkmJiF4LlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciB2PXt9O011KG4uYXBpLFt2XSk7aD1nLkVUKGgsdil9ay5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiI7dj1rLkJKKCJ5dHAtc3VnZ2VzdGlvbi10aXRsZSIpO3FsLnRlc3QuY2FsbChxbCxELnRpdGxlKT92LmRpcj0icnRsIjpHZy50ZXN0LmNhbGwoR2csRC50aXRsZSkmJih2LmRpcj0ibHRyIik7dj1rLkJKKCJ5dHAtc3VnZ2VzdGlvbi1hdXRob3IiKTtxbC50ZXN0LmNhbGwocWwsYik/di5kaXI9InJ0bCI6R2cudGVzdC5jYWxsKEdnLGIpJiYodi5kaXI9Imx0ciIpO2sudXBkYXRlKHt2aWV3c19vcl9hdXRob3I6YixkdXJhdGlvbjpELmlzTGl2ZVBsYXliYWNrPyJMaXZlIjpELmxlbmd0aFNlY29uZHM/CmcuSDcoRC5sZW5ndGhTZWNvbmRzKToiIixsaW5rOmgsaG92ZXJfdGl0bGU6RC50aXRsZSx0aXRsZTpELnRpdGxlLGFyaWFfbGFiZWw6RC5hcmlhTGFiZWx8fG51bGwsaXNfbGl2ZTpELmlzTGl2ZVBsYXliYWNrfSk7Yj1ELkdCKCk7ay5CSigieXRwLXN1Z2dlc3Rpb24taW1hZ2UiKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9Yj9gdXJsKCR7Yn0pYDoiIjt4LlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikmJihuLmFwaS5jcmVhdGVTZXJ2ZXJWZShrLmVsZW1lbnQsayksKEQ9KEQ9RC5zZXNzaW9uRGF0YSkmJkQuaXRjdCkmJm4uYXBpLnNldFRyYWNraW5nUGFyYW1zKGsuZWxlbWVudCxEKSl9Zm9yKDtXPG4uTi5sZW5ndGg7VysrKW4uTltXXS5lbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiO1hQKG4pfSxTaFU9ZnVuY3Rpb24obixXLEQpe1cucHJldmVudERlZmF1bHQoKTsKbi5hcGkubG9nQ2xpY2soRCk7Vz1ELmdldEF0dHJpYnV0ZSgiaHJlZiIpO0Q9e307TXUobi5hcGksW0RdKTtXPWcuR0YoRCk/VzpnLkVUKFcsRCk7SkYoVyl9LEFqTT1mdW5jdGlvbihuLFcpe24uQkooInl0cC1lcnJvci1jb250ZW50Iikuc3R5bGUucGFkZGluZ1RvcD0iMHB4IjsKdmFyIEQ9bi5CSigieXRwLWVycm9yLWNvbnRlbnQiKSxiPUQuY2xpZW50SGVpZ2h0O24uTiYmbi5OLnJlc2l6ZShXLFcuaGVpZ2h0LWIpO0Quc3R5bGUucGFkZGluZ1RvcD1gJHsoVy5oZWlnaHQtKG4uTj9uLk4uZWxlbWVudC5jbGllbnRIZWlnaHQ6MCkpLzItYi8yfXB4YH0sSzJVPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5hcGkuRygpLGI7ClcucmVhc29uJiYodFYoVy5yZWFzb24pP2I9Zy5iZyhXLnJlYXNvbik6Yj12YyhnLkRwKFcucmVhc29uKSksbi5YKGIsImNvbnRlbnQiKSk7dmFyIHY7Vy5zdWJyZWFzb24mJih0VihXLnN1YnJlYXNvbik/dj1nLmJnKFcuc3VicmVhc29uKTp2PXZjKGcuRHAoVy5zdWJyZWFzb24pKSxuLlgodiwic3VicmVhc29uIikpO2lmKFcucHJvY2VlZEJ1dHRvbiYmVy5wcm9jZWVkQnV0dG9uLmJ1dHRvblJlbmRlcmVyKXtiPW4uQkooInl0cC1lcnJvci1jb250ZW50LXdyYXAtc3VicmVhc29uIik7Vz1XLnByb2NlZWRCdXR0b24uYnV0dG9uUmVuZGVyZXI7bGV0IGs9Zy56RigiQSIpO1cudGV4dCYmVy50ZXh0LnNpbXBsZVRleHQmJih2PVcudGV4dC5zaW1wbGVUZXh0LGsudGV4dENvbnRlbnQ9dixtZVUoYix2KXx8RC5EJiYhRC5lbWJlZHNFcnJvckxpbmtzfHwoRD1nLncoVz8ubmF2aWdhdGlvbkVuZHBvaW50LGcuUGopPy51cmwsVz1nLncoVz8ubmF2aWdhdGlvbkVuZHBvaW50LGcuUGopPy50YXJnZXQsCkQmJihrLnNldEF0dHJpYnV0ZSgiaHJlZiIsRCksbi5hcGkuY3JlYXRlQ2xpZW50VmUoayxuLDE3ODQyNCksbi5OTihrLCJjbGljayIsaD0+e1NoVShuLGgsayl9KSksVyYmay5zZXRBdHRyaWJ1dGUoInRhcmdldCIsVyksRD1nLnpGKCJESVYiKSxELmFwcGVuZENoaWxkKGspLGIuYXBwZW5kQ2hpbGQoRCkpKX19LHRWPWZ1bmN0aW9uKG4pe2lmKG4ucnVucylmb3IobGV0IFc9MDtXPG4ucnVucy5sZW5ndGg7VysrKWlmKG4ucnVuc1tXXS5uYXZpZ2F0aW9uRW5kcG9pbnQpcmV0dXJuITA7CnJldHVybiExfSxtZVU9ZnVuY3Rpb24obixXKXtuPShufHxkb2N1bWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkEiKTsKZm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspaWYobltEXS50ZXh0Q29udGVudD09PVcpcmV0dXJuITA7cmV0dXJuITF9LE9jYj1mdW5jdGlvbihuKXt2YXIgVz17fTsKTXUobi5hcGksW1ddKTtuPW4uYXBpLmdldFZpZGVvVXJsKCk7cmV0dXJuIG49Zy5FVChuLFcpfSxQMHQ9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCksRD1uLmFwaS5HKCkuYlYmJiFuLnN0YXRlLk4oMikmJiFuLmFwaS5nZXRWaWRlb0RhdGEoe3BsYXllclR5cGU6MX0pLmlOOwpXLm11dGVkQXV0b3BsYXl8fG4uTUwoRCk7bi5hcGkubG9nVmlzaWJpbGl0eShuLmVsZW1lbnQsRCl9LFVlaj1mdW5jdGlvbihuKXtuLndhdGVybWFya3x8KG4ud2F0ZXJtYXJrPW5ldyBaY3Iobi5hcGkpLGcudShuLG4ud2F0ZXJtYXJrKSxuLndhdGVybWFyay5MdShuLmJvdHRvbUJ1dHRvbnMsMCksZy5pSChuLndhdGVybWFyay5lbGVtZW50LCJ5dHAtbXV0ZWQtYXV0b3BsYXktd2F0ZXJtYXJrIiwhMCksbi5OPW5ldyBnLiRpKG4ud2F0ZXJtYXJrLDAsITAsMTAwKSxnLnUobixuLk4pKX0seWpqPWZ1bmN0aW9uKG4pe24uSiYmbi5OJiYobi5OLnNob3coKSxuLlYuc3RhcnQoKSl9LEU1VT1mdW5jdGlvbihuKXtmb3IobGV0IFc9MDtXPDE2OysrVyl7bGV0IEQ9bmV3IGcucnEoe1o6ImEiLApKdzoieXRwLXN1Z2dlc3Rpb24tbGluayIseGE6e2hyZWY6Int7bGlua319Iix0YXJnZXQ6bi5hcGkuRygpLllaLCJhcmlhLWxhYmVsIjoie3thcmlhX2xhYmVsfX0ifSxYRjpbe1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLWltYWdlIn0se1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLW92ZXJsYXkiLHhhOntzdHlsZToie3tibGlua19yZW5kZXJpbmdfaGFja319IiwiYXJpYS1oaWRkZW4iOiJ7e2FyaWFfaGlkZGVufX0ifSxYRjpbe1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLXRpdGxlIixPcToie3t0aXRsZX19In0se1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLWF1dGhvciIsT3E6Int7YXV0aG9yX2FuZF92aWV3c319In0se1o6ImRpdiIseGE6eyJkYXRhLWlzLWxpdmUiOiJ7e2lzX2xpdmV9fSJ9LEp3OiJ5dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbiIsT3E6Int7ZHVyYXRpb259fSJ9XX1dfSk7Zy51KG4sRCk7bGV0IGI9RC5CSigieXRwLXN1Z2dlc3Rpb24tbGluayIpO2cuaDEoYiwKInRyYW5zaXRpb25EZWxheSIsYCR7Vy8yMH1zYCk7bi5qLk5OKGIsImNsaWNrIix2PT57dmFyIGs9VztpZihuLlcpe3ZhciBoPW4uc3VnZ2VzdGlvbkRhdGFba10seD1oLnNlc3Npb25EYXRhO24uSyYmbi5hcGkuUygid2ViX3BsYXllcl9sb2dfY2xpY2tfYmVmb3JlX2dlbmVyYXRpbmdfdmVfY29udmVyc2lvbl9wYXJhbXMiKT8obi5hcGkubG9nQ2xpY2sobi5OW2tdLmVsZW1lbnQpLGs9aC5NZigpLGg9e30sTXUobi5hcGksW2hdKSxrPWcuRVQoayxoKSxSeShrLG4uYXBpLHYpKTpNcCh2LG4uYXBpLG4uSyx4fHx2b2lkIDApJiZuLmFwaS5NMihoLnZpZGVvSWQseCxoLnBsYXlsaXN0SWQpfWVsc2Ugdi5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpfSk7CkQuTHUobi5zdWdnZXN0aW9ucy5lbGVtZW50KTtuLk4ucHVzaChEKTtuLmFwaS5jcmVhdGVTZXJ2ZXJWZShELmVsZW1lbnQsRCl9fSxpY3I9ZnVuY3Rpb24obil7aWYobi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciBXPU1hdGguZmxvb3IoLW4uc2Nyb2xsUG9zaXRpb24vKG4uVis4KSk7CmxldCBEPU1hdGgubWluKFcrbi5jb2x1bW5zLG4uc3VnZ2VzdGlvbkRhdGEubGVuZ3RoKS0xO2Zvcig7Vzw9RDtXKyspbi5hcGkubG9nVmlzaWJpbGl0eShuLk5bV10uZWxlbWVudCwhMCl9fSxzNj1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS55WigpPzMyOjE2OwpXPW4uRC8yK1c7bi5uZXh0LmVsZW1lbnQuc3R5bGUuYm90dG9tPWAke1d9cHhgO24ucHJldmlvdXMuZWxlbWVudC5zdHlsZS5ib3R0b209YCR7V31weGA7Vz1uLnNjcm9sbFBvc2l0aW9uO3ZhciBEPW4uY29udGFpbmVyV2lkdGgtbi5zdWdnZXN0aW9uRGF0YS5sZW5ndGgqKG4uVis4KTtnLmlIKG4uZWxlbWVudCwieXRwLXNjcm9sbC1taW4iLFc+PTApO2cuaUgobi5lbGVtZW50LCJ5dHAtc2Nyb2xsLW1heCIsVzw9RCl9LG81dz1mdW5jdGlvbihuKXt2YXIgVz1uLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aDsKZm9yKGxldCBrPTA7azxXOysrayl7dmFyIEQ9dm9pZCAwLGI9dm9pZCAwO2xldCBoPXZvaWQgMDtEPW47dmFyIHY9RC5hcGkuRygpO2xldCB4PUQuc3VnZ2VzdGlvbkRhdGFba10sTD1ELk5ba107aD1ELmFwaS5pc0VtYmVkc1Nob3J0c01vZGUoKT94LnNob3J0Vmlld0NvdW50fHwiIjp4LnNob3J0Vmlld0NvdW50P2Ake3guYXV0aG9yfSBcdTIwMjIgJHt4LnNob3J0Vmlld0NvdW50fWA6eC5hdXRob3I7TC5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiI7Zy5oMShMLkJKKCJ5dHAtc3VnZ2VzdGlvbi1saW5rIiksImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKTt1eWkudGVzdCh4LnRpdGxlKSYmKEwuQkooInl0cC1zdWdnZXN0aW9uLXRpdGxlIikuZGlyPSJydGwiKTt1eWkudGVzdChoKSYmKEwuQkooInl0cC1zdWdnZXN0aW9uLWF1dGhvciIpLmRpcj0icnRsIik7Yj14LmlzTGl2ZVBsYXliYWNrPyJMaXZlIjp4Lmxlbmd0aFNlY29uZHM/Zy5INyh4Lmxlbmd0aFNlY29uZHMpOiIiO2xldCBlPQp4Lk1mKEQuYXBpLmlzRW1iZWRzU2hvcnRzTW9kZSgpKTtpZihnLm80KHYpJiYhdi5TKCJ3ZWJfcGxheWVyX2xvZ19jbGlja19iZWZvcmVfZ2VuZXJhdGluZ192ZV9jb252ZXJzaW9uX3BhcmFtcyIpKXtsZXQgRz17fTtNdShELmFwaSxbR10pO2U9Zy5FVChlLEcpfXYuUygid2ViX3BsYXllcl9sb2dfY2xpY2tfYmVmb3JlX2dlbmVyYXRpbmdfdmVfY29udmVyc2lvbl9wYXJhbXMiKSYmKHY9KHY9eC5zZXNzaW9uRGF0YSkmJnYuaXRjdCkmJkQuYXBpLnNldFRyYWNraW5nUGFyYW1zKEwuZWxlbWVudCx2KTtMLnVwZGF0ZSh7YXV0aG9yX2FuZF92aWV3czpoLGR1cmF0aW9uOmIsbGluazplLHRpdGxlOngudGl0bGUsYXJpYV9sYWJlbDp4LmFyaWFMYWJlbHx8eC50aXRsZSxpc19saXZlOnguaXNMaXZlUGxheWJhY2ssYXJpYV9oaWRkZW46ISF4LmFyaWFMYWJlbCxibGlua19yZW5kZXJpbmdfaGFjazpnLm9kfHxyYz8id2lsbC1jaGFuZ2U6IG9wYWNpdHkiOnZvaWQgMH0pO2I9TC5CSigieXRwLXN1Z2dlc3Rpb24taW1hZ2UiKTsKRD1ELmFwaS5pc0VtYmVkc1Nob3J0c01vZGUoKT94LkdCKCJocTIuanBnIik6eC5HQigpO2Iuc3R5bGUuYmFja2dyb3VuZEltYWdlPUQ/YHVybCgke0R9KWA6IiJ9aWYoVzwxNilmb3IoO1c8MTY7KytXKWcuaDEobi5OW1ddLkJKKCJ5dHAtc3VnZ2VzdGlvbi1saW5rIiksImRpc3BsYXkiLCJub25lIik7czYobil9LE5sPWZ1bmN0aW9uKG4pe2lmKCFuLlcpe3ZhciBXPU1hdGgubWluKCgwLGcuUikoKS1uLlYsbi5qKTsKdmFyIEQ9bi5qLVc7Vz1uLmo9PT0wPzA6TWF0aC5tYXgoRC9uLmosMCk7RD1NYXRoLnJvdW5kKEQvMUUzKTtuLlkuc2V0QXR0cmlidXRlKCJzdHJva2UtZGFzaG9mZnNldCIsYCR7LTIxMSooVysxKX1gKTtuLnVwZGF0ZVZhbHVlKCJkdXJhdGlvbiIsRCk7Vzw9MCYmbi5OP24uc3RvcFRpbWVyKCk6bi5OJiZuLk4uc3RhcnQoKX19LGRleD1mdW5jdGlvbihuKXtuLk58fChuLmo9NUUzLG4uVj0oMCxnLlIpKCksbi5OPW5ldyBnLnBfKCgpPT57Tmwobil9LG51bGwpLE5sKG4pKX0scHg9ZnVuY3Rpb24obil7dmFyIFc9bi5BOwpuPSEhVy5pc0VtYmVkc1Nob3J0c01vZGUoKTtnLmlIKFcuZ2V0Um9vdE5vZGUoKSwieXRwLXNob3J0cy1tb2RlIixuKTtpZihXPVcuZ2V0VmlkZW9EYXRhKCkpVy5TYT1ufSxUYXg9ZnVuY3Rpb24obil7e3ZhciBXPW4uQTsKbGV0IEQ9Vy5HKCk7RC5XaSYmIUQuRCYmZy5vNChEKT9XLmlzRW1iZWRzU2hvcnRzTW9kZSgpPyhXPVcuRTQoKSxXPU1hdGgubWluKFcud2lkdGgsVy5oZWlnaHQpPj0zMTUpOlc9IVcuejYoKTpXPSExfVchPT1uLkQmJihuLkQ9VyxuLmomJihuLmouZGlzcG9zZSgpLG4uaj1udWxsKSxuLlcmJihuLlcuZGlzcG9zZSgpLG4uVz1udWxsKSxuLlgmJihuLlguZGlzcG9zZSgpLG4uWD1udWxsKSxuLkomJihuLkouc3RvcCgpLG4uSi5kaXNwb3NlKCksbi5KPW51bGwpLFcmJihnLmI1KG4uQSksbi5BLmlzRW1iZWRzU2hvcnRzTW9kZSgpJiYobi5YPW5ldyBnLnJxKHtaOiJkaXYiLEp3OiJ5dHAtcGF1c2Utb3ZlcmxheS1iYWNrZHJvcCIseGE6e3RhYkluZGV4OiItMSJ9fSksZy51KG4sbi5YKSxnLnJ2KG4uQSxuLlguZWxlbWVudCw0KSxuLko9bmV3IGcuJGkobi5YLDFFMywhMSwxMDApLGcudShuLG4uSiksbi5YLmhpZGUoKSksbi5qPW5ldyBnLnJxKHtaOiJkaXYiLEp3OiJ5dHAtcGF1c2Utb3ZlcmxheS1jb250YWluZXIiLAp4YTp7dGFiSW5kZXg6Ii0xIn19KSxnLnUobixuLmopLG4uVz1uZXcgemRVKG4uQSksZy51KG4sbi5XKSxuLlcuTHUobi5qLmVsZW1lbnQpLGcucnYobi5BLG4uai5lbGVtZW50LDQpLGw2QyhuLG4uQS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpKSkpfSxsNkM9ZnVuY3Rpb24obixXKXtuLkomJighVy5OKDQpJiYhVy5OKDIpfHxXLk4oMTAyNCk/bi5KLmhpZGUoKTpuLkouc2hvdygpKX0sWWk9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkEuRygpOwpuPXthZFNvdXJjZToiRU1CRURTX0FEX1NPVVJDRV9ZT1VUVUJFIixicmVha1R5cGU6bi5BLmdldEN1cnJlbnRUaW1lKCk9PT0wPyJFTUJFRFNfQURfQlJFQUtfVFlQRV9QUkVfUk9MTCI6bi5BLmdldFBsYXllclN0YXRlKCk9PT0wPyJFTUJFRFNfQURfQlJFQUtfVFlQRV9QT1NUX1JPTEwiOiJFTUJFRFNfQURfQlJFQUtfVFlQRV9NSURfUk9MTCIsZW1iZWRVcmw6QUEobi5BLkcoKS5sb2FkZXJVcmwpLGV2ZW50VHlwZTpXLHlvdXR1YmVIb3N0OmcuSVAobi5BLkcoKS5EYSl8fCIifTtuLmVtYmVkZGVkUGxheWVyTW9kZT1ELmNKO2cuelUoImVtYmVkc0FkRXZlbnQiLG4pfSxudD1bXSxEaXg9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihuKXtmdW5jdGlvbiBXKCl7fQpXLnByb3RvdHlwZT1uO3JldHVybiBuZXcgV30sV1NDPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24obixXLEQpe2lmKG49PUFycmF5LnByb3RvdHlwZXx8bj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gbjsKbltXXT1ELnZhbHVlO3JldHVybiBufSx4Mj1nbG9iYWxUaGlzLHZaPSJJbnQ4IFVpbnQ4IFVpbnQ4Q2xhbXBlZCBJbnQxNiBVaW50MTYgSW50MzIgVWludDMyIEZsb2F0MzIgRmxvYXQ2NCIuc3BsaXQoIiAiKTsKeDIuQmlnSW50NjRBcnJheSYmKHZaLnB1c2goIkJpZ0ludDY0IiksdloucHVzaCgiQmlnVWludDY0IikpO3ZhciBidFM9T2JqZWN0LnNldFByb3RvdHlwZU9mO2hpKCJTeW1ib2wuZGlzcG9zZSIsZnVuY3Rpb24obil7cmV0dXJuIG4/bjpTeW1ib2woIlN5bWJvbC5kaXNwb3NlIil9KTsKaGkoIlN1cHByZXNzZWRFcnJvciIsZnVuY3Rpb24obil7ZnVuY3Rpb24gVyhELGIsdil7aWYoISh0aGlzIGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKEQsYix2KTt2PUVycm9yKHYpOyJzdGFjayJpbiB2JiYodGhpcy5zdGFjaz12LnN0YWNrKTt0aGlzLm1lc3NhZ2U9di5tZXNzYWdlO3RoaXMuZXJyb3I9RDt0aGlzLnN1cHByZXNzZWQ9Yn0KaWYobilyZXR1cm4gbjt2MkMoVyxFcnJvcik7Vy5wcm90b3R5cGUubmFtZT0iU3VwcHJlc3NlZEVycm9yIjtyZXR1cm4gV30pOwpoaSgiU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmZ1bmN0aW9uKFcsRCl7aWYoVyBpbnN0YW5jZW9mIFJlZ0V4cCYmIVcuZ2xvYmFsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCBjYWxsZWQgd2l0aCBhIG5vbi1nbG9iYWwgUmVnRXhwIGFyZ3VtZW50LiIpO3JldHVybiBXIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMucmVwbGFjZShXLEQpOnRoaXMucmVwbGFjZShuZXcgUmVnRXhwKFN0cmluZyhXKS5yZXBsYWNlKC8oWy0oKVxbXF17fSs/Ki4kXF58LDojPCFcXF0pL2csIlxcJDEiKS5yZXBsYWNlKC9ceDA4L2csIlxceDA4IiksImciKSxEKX19KTsKaGkoIkFycmF5LnByb3RvdHlwZS5hdCIsZnVuY3Rpb24obil7cmV0dXJuIG4/bjplVX0pOwpuMncoImF0IixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmVVfSk7CmhpKCJTdHJpbmcucHJvdG90eXBlLmF0IixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmVVfSk7CmhpKCJQcm9taXNlLndpdGhSZXNvbHZlcnMiLGZ1bmN0aW9uKG4pe3JldHVybiBuP246ZnVuY3Rpb24oKXt2YXIgVyxEO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGIsdil7Vz1iO0Q9dn0pLApyZXNvbHZlOlcscmVqZWN0OkR9fX0pO3ZhciBjSixTVSxrYnQ7Y0o9Y0p8fHt9O2cucWk9dGhpc3x8c2VsZjtTVT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtrYnQ9MDt2YXIgZV93PWNsYXNze2NvbnN0cnVjdG9yKHt1cmw6bixadjpXfSl7dGhpcy5KPW47dGhpcy5YPVc7dGhpcy5XPShuZXcgRGF0ZSkuZ2V0VGltZSgpLTE3MDQwNjcyRTU7dGhpcy5OPXt9O2Zvcih2YXIgRD0vWz8mXShbXiY9XSspPShbXiZdKikvZztXPUQuZXhlYyhuKTspdGhpcy5OW1dbMV1dPVdbMl19fTtnLml4KGcuVGIsRXJyb3IpO2cuVGIucHJvdG90eXBlLm5hbWU9IkN1c3RvbUVycm9yIjt2YXIgSWg7dmFyIE5yaD0vJi9nLHBadz0vPC9nLFl3aT0vPi9nLEh0VT0vIi9nLGYxUz0vJy9nLEppWj0vXHgwMC9nLHNDaD0vW1x4MDAmPD4iJ10vO3ZhciBuYj1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxXTTt2YXIgYl89Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5OKyIifX07Zy5laj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn10b1N0cmluZygpe3JldHVybiB0aGlzLk59fTtnLlY1PW5ldyBnLmVqKCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIpO3ZhciBYSSxnMmo7WEk9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5PVj1ufX07Zy5HND1bcVUoImRhdGEiKSxxVSgiaHR0cCIpLHFVKCJodHRwcyIpLHFVKCJtYWlsdG8iKSxxVSgiZnRwIiksbmV3IFhJKG49Pi9eW146XSooWy8/I118JCkvLnRlc3QobikpXTsKZzJqPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7Zy5ZMz1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn10b1N0cmluZygpe3JldHVybiB0aGlzLk4rIiJ9fTt2YXIgQUY9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5OKyIifX07dmFyIFo0PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuTn19O3ZhciBMcD17fTt2YXIgQWlyLG1pMTtBaXI9UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtnLno1PS8jfCQvO21pMT0vWz8mXSgkfCMpLzt2YXIgUUc9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihuLFcsRD1FcnJvcigpKXtzdXBlcigpO3RoaXMuY29kZT1uO1crPSI6IjtEIGluc3RhbmNlb2YgRXJyb3I/KHRoaXMubWVzc2FnZT1XK0QubWVzc2FnZSx0aGlzLnN0YWNrPUQuc3RhY2t8fCIiKToodGhpcy5tZXNzYWdlPVcrU3RyaW5nKEQpLHRoaXMuc3RhY2s9IiIpO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O2cuRk0ucHJvdG90eXBlLkhEPSExO2cuRk0ucHJvdG90eXBlLnFOPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSER9OwpnLkZNLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5IRHx8KHRoaXMuSEQ9ITAsdGhpcy5tQSgpKX07CmcuRk0ucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTsKZy5GTS5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24obixXKXt0aGlzLkhEP1chPT12b2lkIDA/bi5jYWxsKFcpOm4oKToodGhpcy5CVnx8KHRoaXMuQlY9W10pLFcmJihuPW4uYmluZChXKSksdGhpcy5CVi5wdXNoKG4pKX07CmcuRk0ucHJvdG90eXBlLm1BPWZ1bmN0aW9uKCl7aWYodGhpcy5CVilmb3IoO3RoaXMuQlYubGVuZ3RoOyl0aGlzLkJWLnNoaWZ0KCkoKX07dmFyIFB4Uz1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLndwYz1ufUgkKCl7cmV0dXJuIHRoaXMud3BjLmYoKX15aChuKXt0aGlzLndwYy5jKG4pfVcobil7cmV0dXJuIHRoaXMud3BjLm0oUlAobikpfVpSKG4pe3JldHVybiB0aGlzLndwYy5td3MoUlAobikpfX0sd1Q9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5PMT1uO3RoaXMuVz0ia2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCBmb2N1c2luIGZvY3Vzb3V0IHNlbGVjdCBjb3B5IGN1dCBwYXN0ZSBjaGFuZ2UgY2xpY2sgZGJsY2xpY2sgYXV4Y2xpY2sgcG9pbnRlcm92ZXIgcG9pbnRlcmRvd24gcG9pbnRlcnVwIHBvaW50ZXJtb3ZlIHBvaW50ZXJvdXQgZHJhZ2VudGVyIGRyYWdsZWF2ZSBkcmFnIGRyYWdlbmQgbW91c2VvdmVyIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW91dCB0b3VjaHN0YXJ0IHRvdWNoZW5kIHRvdWNobW92ZSB3aGVlbCIuc3BsaXQoIiAiKTsKdGhpcy5KPXZvaWQgMDt0aGlzLk92PXRoaXMuTzEucDt0aGlzLlg9dGhpcy5TMS5iaW5kKHRoaXMpO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgT3RpKHRoaXMpKX1zbmFwc2hvdChuKXtyZXR1cm4gdGhpcy5PMS5zKHsuLi4obi53XyYme2M6bi53X30pLAouLi4obi5HbCYme3M6bi5HbH0pLC4uLihuLk1PIT09dm9pZCAwJiZ7cDpuLk1PfSl9KX1TMShuKXt0aGlzLk8xLmUobil9UUQoKXtyZXR1cm4gdGhpcy5PMS5sKCl9fTt2YXIgamExPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7dGhpcy5iZD0xfXNoYXJlKCl7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJFOkFEIik7dGhpcy5iZCsrO3JldHVybiB0aGlzfWRpc3Bvc2UoKXstLXRoaXMuYmR8fHN1cGVyLmRpc3Bvc2UoKX19O3ZhciBDMHg9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIsYnAoIm1rIikpfWRFKG4sVyl7dGhpcy5KLmRFKCIvY2xpZW50X3N0cmVhbXovYmcvZnJzIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9mcnMiKX19LEJhaT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLko9bjtFdShuLCIvY2xpZW50X3N0cmVhbXovYmcvd3JsIixicCgibW4iKSxEWCgiYWMiKSxEWCgic2MiKSxicCgicmsiKSxicCgibWsiKSl9ZEUobixXLEQsYix2LGspe3RoaXMuSi5kRSgiL2NsaWVudF9zdHJlYW16L2JnL3dybCIsbixXLEQsYix2LGspfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy93cmwiKX19LEYyWj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvZWMiLGJwKCJlbiIpLGJwKCJtayIpKX1KKG4sVyl7ZHAodGhpcy5XLCIvY2xpZW50X3N0cmVhbXovYmcvZWMiLApuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9lYyIpfX0sd1FyPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuSj1uO0V1KG4sIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsYnAoImVuIiksYnAoIm1rIikpfWRFKG4sVyxEKXt0aGlzLkouZEUoIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsbixXLEQpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9lbCIpfX0sTXQxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuVz1uO3VlKG4sIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiLERYKCJlYyIpLGJwKCJtayIpKX1KKG4sVyl7ZHAodGhpcy5XLCIvY2xpZW50X3N0cmVhbXovYmcvY2VjIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiKX19LFJkYj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3NjIixEWCgiY3MiKSxicCgibWsiKSl9SihuLFcpe2RwKHRoaXMuVywKIi9jbGllbnRfc3RyZWFtei9iZy9wby9jc2MiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2NzYyIpfX0sUWF4PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuVz1uO3VlKG4sIi9jbGllbnRfc3RyZWFtei9iZy9wby9jdGF2IixicCgiYXYiKSxicCgibWsiKSl9SihuLFcpe2RwKHRoaXMuVywiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiKX19LFZ0aT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3dzYyIsYnAoInN1IiksYnAoIm1rIikpfUoobixXKXtkcCh0aGlzLlcsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIil9fSxjang9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwKIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixicCgibWsiKSl9ZEUobixXKXt0aGlzLkouZEUoIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIil9fSxhNnc9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwiL2NsaWVudF9zdHJlYW16L2JnL29kL24iLGJwKCJldCIpLGJwKCJtayIpKX1kRShuLFcsRCl7dGhpcy5KLmRFKCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIsbixXLEQpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9vZC9uIil9fTt2YXIgY1c9ITAsVjEsdjI7dmFyIEhxO0hxPU5pKDEsITApO2cucXg9TmkoNjEwNDAxMzAxLCExKTtOaSg4OTk1ODg0MzcsITEpO05pKDc3MjY1Nzc2OCwhMCk7TmkoNTEzNjU5NTIzLCExKTtOaSg1NjgzMzM5NDUsITApO05pKDEzMzE3NjE0MDMsITApO05pKDY1MTE3NTgyOCwhMSk7TmkoNzIyNzY0NTQyLCExKTtOaSg3NDg0MDIxNDUsITEpO05pKDc0ODQwMjE0NiwhMSk7dmFyIEF2PU5pKDc0ODQwMjE0NywhMCk7TmkoMTYwMjYxMzE4NSwhMSk7TmkoODYxMzc3NzIzLCExKTtOaSg4NjEzNzc3MjQsSHEpO05pKDg2OTMzNjkwMywhMSk7TmkoODgyNjc0NTA3LCExKTtOaSg4NjkzMzY5MDQsSHEpO05pKDg2OTMzNjkwNSxIcSk7TmkoMjgzOTUzMTU1LCExKTtOaSg5MTk0NDQ4MjQsITEpO05pKDkzMTQ2ODA0NywhMSk7TmkoOTI4ODc1Mzk4LCExKTtOaSg2ODM3NDkyMDEsITEpO05pKDIxNDc0ODM2NDQsITEpO05pKDIxNDc0ODM2NDUsITEpO05pKDIxNDc0ODM2NDYsSHEpO05pKDIxNDc0ODM2NDcsITApO2cuR2g9ISFnLnJyKCJ5dC5jb25maWdfLkVYUEVSSU1FTlRTX0ZMQUdTLmh0bWw1X2VuYWJsZV9jbGllbnRfaGludHNfb3ZlcnJpZGUiKTt2YXIgbnpiO256Yj1nLnFpLm5hdmlnYXRvcjtnLnQ0PW56Yj9uemIudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2cuT0FbIiAiXT1mdW5jdGlvbigpe307dmFyIHJjLG5yLHBRaixXVVosRDRpLGJpVSxYdyxmeDtyYz1OeCgpO2cua2g9c0EoKT8hMTpnLnJXKCJUcmlkZW50Iil8fGcuclcoIk1TSUUiKTtnLlJnPWcuclcoIkVkZ2UiKTtnLnNtPWcuUmd8fGcua2g7Zy5lUz1nLnJXKCJHZWNrbyIpJiYhKGcud3IoZy5YUSgpLCJXZWJLaXQiKSYmIWcuclcoIkVkZ2UiKSkmJiEoZy5yVygiVHJpZGVudCIpfHxnLnJXKCJNU0lFIikpJiYhZy5yVygiRWRnZSIpO2cuWmw9Zy53cihnLlhRKCksIldlYktpdCIpJiYhZy5yVygiRWRnZSIpO25yPWcubXgoKTtwUWo9Zy5LMCgpO2cuUUg9Zy5JMigpO1dVWj1TdSgpO0Q0aT1nLnJXKCJpUGFkIik7YmlVPWcuclcoImlQb2QiKTtYdz1nLkE0KCk7Zy5XWD1nLndyKGcuWFEoKSwiS2FpT1MiKTsKYTp7bGV0IG49IiIsVz1mdW5jdGlvbigpe3ZhciBEPWcuWFEoKTtpZihnLmVTKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoRCk7aWYoZy5SZylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKEQpO2lmKGcua2gpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKEQpO2lmKGcuWmwpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoRCk7aWYocmMpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoRCl9KCk7ClcmJihuPVc/V1sxXToiIik7aWYoZy5raCl7dmFyIEpWO2xldCBEPWcucWkuZG9jdW1lbnQ7SlY9RD9ELmRvY3VtZW50TW9kZTp2b2lkIDA7aWYoSlYhPW51bGwmJkpWPnBhcnNlRmxvYXQobikpe2Z4PVN0cmluZyhKVik7YnJlYWsgYX19Zng9bn12YXIgUDI9ZngsaXR4PXt9O3ZhciB3OCxNWDtnLmFvPXAwKCk7dzg9U3UoKXx8Zy5yVygiaVBvZCIpO01YPWcuclcoImlQYWQiKTtnLkltPWcuclcoIkFuZHJvaWQiKSYmIShZSygpfHxwMCgpfHxOeCgpfHxnLnJXKCJTaWxrIikpO2cub2Q9WUsoKTtnLkduPWcuSDIoKSYmIWcuQTQoKTt2YXIgeWw9e30sVGg9bnVsbDt2YXIganU9L1stXy5dL2csZGlVPXsiLSI6IisiLF86Ii8iLCIuIjoiPSJ9LHdXPXt9O3ZhciBGUT1jbGFzc3tpc0VtcHR5KCl7cmV0dXJuIHRoaXMuTj09bnVsbH1zaXplQnl0ZXMoKXt2YXIgbj1RbCh0aGlzKTtyZXR1cm4gbj9uLmxlbmd0aDowfWNvbnN0cnVjdG9yKG4sVyl7UjIoVyk7dGhpcy5OPW47aWYobiE9bnVsbCYmbi5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJCeXRlU3RyaW5nIHNob3VsZCBiZSBjb25zdHJ1Y3RlZCB3aXRoIG5vbi1lbXB0eSB2YWx1ZXMiKTt9fSxCMjt2YXIgYTI9dm9pZCAwO3ZhciBiND1XOSgiamFzIiwhMCksTG49VzkoKSxrOT1XOSgpLExHPVc5KCksUk1iPVc5KCksUUNpPVc5KCksRzRTPVc5KCksRFVpPVc5KCksdkg9VzkoIm1fbSIsITApLGNpVT1XOSgpLHFFPVc5KCk7Wy4uLk9iamVjdC52YWx1ZXMoe014OjEsRVk6MixHTDo0LFltOjgsalo6MTYsVFQ6MzIsUFE6NjQsTng6MTI4LGZoOjI1NixhTjo1MTIsYVU6MTAyNCxQbToyMDQ4LHI0OjQwOTYsYU86ODE5Mn0pXTt2YXIgenosdnp4PVtdO3Z6eFtiNF09Nzt6ej1PYmplY3QuZnJlZXplKHZ6eCk7dmFyIGt2PXt9LERCPXt9LEckPU9iamVjdC5mcmVlemUoe30pLFNvPXt9LHhVPXt9O3ZhciBZbyx3V2osa0N4O2cudF89cTMobj0+dHlwZW9mIG49PT0ibnVtYmVyIik7CmcuRzk9cTMobj0+dHlwZW9mIG49PT0ic3RyaW5nIik7CllvPXEzKG49Pm4hPW51bGwmJnR5cGVvZiBuPT09Im9iamVjdCImJnR5cGVvZiBuLnRoZW49PT0iZnVuY3Rpb24iKTsKd1dqPXEzKG49PnR5cGVvZiBuPT09ImZ1bmN0aW9uIik7CmtDeD1xMyhuPT4hIW4mJih0eXBlb2Ygbj09PSJvYmplY3QifHx0eXBlb2Ygbj09PSJmdW5jdGlvbiIpKTt2YXIgc0s9cTMobj0+bj49aDNqJiZuPD14NGopLGgzaj1CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLHg0aj1CaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO3ZhciByWj0wLHNfPTAsR3Y7dmFyIGRaPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwLEJyaD10eXBlb2YgQmlnSW50PT09ImZ1bmN0aW9uIj9CaWdJbnQuYXNVaW50Tjp2b2lkIDAsalg9TnVtYmVyLmlzU2FmZUludGVnZXIsUDk9TnVtYmVyLmlzRmluaXRlLFQ5PU1hdGgudHJ1bmMsbDEyPS9eLT8oWzEtOV1bMC05XSp8MCkoXC5bMC05XSspPyQvO3ZhciBhMVU9e307dmFyIFhGPWNsYXNze30sTVVpPXtKUzohMH07dmFyICR2O3ZhciBISCxmRzt2YXIgdjNpPWcuJFUoMCksZm49e307dmFyIE9WPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmJ1ZmZlcj1uO2lmKEQmJiFXKXRocm93IEVycm9yKCk7dGhpcy5OPVd9fTt2YXIgTFVyPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIpe3RoaXMuSj1udWxsO3RoaXMuVj0hMTt0aGlzLmo9bnVsbDt0aGlzLk49dGhpcy5XPXRoaXMuWD0wO3RoaXMuaW5pdChuLFcsRCxiKX1pbml0KG4sVyxELHtuXzpiPSExLGhCOnY9ITF9PXt9KXt0aGlzLm5fPWI7dGhpcy5oQj12O24mJihuPVBXKG4sdGhpcy5oQiksdGhpcy5KPW4uYnVmZmVyLHRoaXMuVj1uLk4sdGhpcy5qPW51bGwsdGhpcy5YPVd8fDAsdGhpcy5XPUQhPT12b2lkIDA/dGhpcy5YK0Q6dGhpcy5KLmxlbmd0aCx0aGlzLk49dGhpcy5YKX1mcmVlKCl7dGhpcy5jbGVhcigpO0FWLmxlbmd0aDwxMDAmJkFWLnB1c2godGhpcyl9Y2xlYXIoKXt0aGlzLko9bnVsbDt0aGlzLlY9ITE7dGhpcy5qPW51bGw7dGhpcy5OPXRoaXMuVz10aGlzLlg9MDt0aGlzLm5fPSExfXJlc2V0KCl7dGhpcy5OPXRoaXMuWH19LEFWPVtdO3ZhciBSWT0wLGhCUz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiKXtpZihBVi5sZW5ndGgpe2xldCB2PUFWLnBvcCgpO3YuaW5pdChuLFcsRCxiKTtuPXZ9ZWxzZSBuPW5ldyBMVXIobixXLEQsYik7dGhpcy5OPW47dGhpcy5YPXRoaXMuTi5OO3RoaXMuSj10aGlzLlc9LTE7akUodGhpcyxiKX1mcmVlKCl7dGhpcy5OLmNsZWFyKCk7dGhpcy5KPXRoaXMuVz0tMTtUJC5sZW5ndGg8MTAwJiZUJC5wdXNoKHRoaXMpfXJlc2V0KCl7dGhpcy5OLnJlc2V0KCk7dGhpcy5YPXRoaXMuTi5OO3RoaXMuSj10aGlzLlc9LTF9fSxUJD1bXTt2YXIgZTNyPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYoU28hPT1Tbyl0aHJvdyBFcnJvcigpO319O3ZhciB2eT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuSj1uPj4+MDt0aGlzLk49Vz4+PjB9fSxoMyxlQz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuSj1uPj4+MDt0aGlzLk49Vz4+PjB9fSxnRyxyRyxOZixwaCwkbSx0MyxxZixHUzt2YXIgZ3pNPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPVtdfWxlbmd0aCgpe3JldHVybiB0aGlzLk4ubGVuZ3RofWVuZCgpe3ZhciBuPXRoaXMuTjt0aGlzLk49W107cmV0dXJuIG59fTt2YXIgWCQyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5XPVtdO3RoaXMuSj0wO3RoaXMuTj1uZXcgZ3pNfX07dmFyIGxHLHEzWixtNyxHQzIsdDJoLCQ0aSxyWEMsUHEsc2YyLE5NVSxwJFU7bEc9b3goKTtxM1o9b3goKTttNz1veCgpO2cuS3g9b3goKTtHQzI9b3goKTt0Mmg9b3goKTskNGk9b3goKTtnLk82PW94KCk7clhDPW94KCk7UHE9b3goKTtzZjI9b3goKTtnLlpGPW94KCk7Tk1VPW94KCk7cCRVPW94KCk7Zy5RbT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5sOT1KdihuLFcsRCwyMDQ4KX10b0pTT04oKXtyZXR1cm4gWXYodGhpcyl9Ylkobil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFl2KHRoaXMsbikpfWNsb25lKCl7dmFyIG49dGhpcy5sOSxXPW5bYjRdfDA7cmV0dXJuIEtHKHRoaXMsbixXKT9PSyh0aGlzLG4sITApOm5ldyB0aGlzLmNvbnN0cnVjdG9yKG1fKG4sVywhMSkpfX07Zy5RbS5wcm90b3R5cGVbdkhdPWt2O2cuUW0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubDkudG9TdHJpbmcoKX07dmFyIHpTPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmNqPW47dGhpcy5Qaj1XO249RXcobEcpO3RoaXMuTj0hIW4mJkQ9PT1ufHwhMX19LExjdD1UUyhmdW5jdGlvbihuLFcsRCxiLHYpe2lmKG4uSiE9PTIpcmV0dXJuITE7UTEobixoUyhXLGIsRCksdik7cmV0dXJuITB9LENoKSxlQnQ9VFMoZnVuY3Rpb24obixXLEQsYix2KXtpZihuLkohPT0yKXJldHVybiExOwpRMShuLGhTKFcsYixEKSx2KTtyZXR1cm4hMH0sQ2gpLHZPPVN5bWJvbCgpLGN5PVN5bWJvbCgpLFdPPVN5bWJvbCgpLHhuPVN5bWJvbCgpLEQ4PVN5bWJvbCgpLEJ5LEZ0O3ZhciBTNixVNix5cCxZM0MsaVUsSGl3LGZxdyx1VSx6ZyxsVSxUZyxqbyxKWFMsSXFqO1M2PShuLFcpPT57dmFyIEQ9bmV3IFgkMjtMOChuLmw5LEQsd0codk8sYjYsa24sVykpO0EzKEQsRC5OLmVuZCgpKTtuPW5ldyBVaW50OEFycmF5KEQuSik7Vz1ELlc7dmFyIGI9Vy5sZW5ndGgsdj0wO2ZvcihsZXQgaz0wO2s8YjtrKyspe2xldCBoPVdba107bi5zZXQoaCx2KTt2Kz1oLmxlbmd0aH1ELlc9W25dO3JldHVybiBufTsKVTY9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MSlyZXR1cm4hMTtnLnFZKFcsRCxnLmRlKG4uTikpO3JldHVybiEwfSxnLnQ5LGcuWkYpOwp5cD1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT01KXJldHVybiExO3ZhciBiPXVhKG4uTik7bj0oYj4+MzEpKjIrMTt2YXIgdj1iPj4+MjMmMjU1O2ImPTgzODg2MDc7Zy5xWShXLEQsdj09MjU1P2I/TmFOOm4qSW5maW5pdHk6dj09MD9uKjEuNDAxMjk4NDY0MzI0ODE3RS00NSpiOm4qTWF0aC5wb3coMix2LTE1MCkqKGIrODM4ODYwOCkpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz1tMChXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxuPW4uTixEPUd2fHwoR3Y9bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkpLEQuc2V0RmxvYXQzMigwLCtXLCEwKSxzXz0wLHJaPUQuZ2V0VWludDMyKDAsITApLEozKG4sclopKX0sc2YyKTsKZy5FNj1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtuLkohPT0wP249ITE6KGcucVkoVyxELGcuVVYobi5OLGcuSl8pKSxuPSEwKTtyZXR1cm4gbn0sZy4kbixnLk82KTsKWTNDPWcuZ1EoZnVuY3Rpb24obixXLEQpe24uSiE9PTA/bj0hMTooZy5xWShXLEQsZy5VVihuLk4sZjUpKSxuPSEwKTtyZXR1cm4gbn0sZnVuY3Rpb24obixXLEQpe1c9YTAoVyk7CmlmKFchPW51bGwmJihQeShXKSxXIT1udWxsKSlzd2l0Y2gobTQobixELDApLHR5cGVvZiBXKXtjYXNlICJudW1iZXIiOm49bi5OO3A1KFcpO0h5KG4sclosc18pO2JyZWFrO2Nhc2UgImJpZ2ludCI6RD1ZbShXLHZ5LGttKTtIeShuLk4sRC5KLEQuTik7YnJlYWs7ZGVmYXVsdDpEPXhtKFcpLEh5KG4uTixELkosRC5OKX19LHJYQyk7CmlVPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTApcmV0dXJuITE7Zy5xWShXLEQsZy5FVihuLk4pKTtyZXR1cm4hMH0sZy5yUSxnLkt4KTsKSGl3PWcuZ1EoZnVuY3Rpb24obixXLEQpe3JldHVybiBKOShuLFcsRCl9LGZ1bmN0aW9uKG4sVyxEKXtXPWEwKFcpOwppZihXIT1udWxsKXN3aXRjaCh1RyhXKSxtNChuLEQsMSksbj1uLk4sdUcoVyksdHlwZW9mIFcpe2Nhc2UgIm51bWJlciI6VzwwPyhXPUxoKGttKC1XKSksRD1XLk4sSjMobixXLkopLEozKG4sRCkpOihOMyhXKSxKMyhuLHJaKSxKMyhuLHNfKSk7YnJlYWs7Y2FzZSAiYmlnaW50IjpXPVc8QmlnSW50KDApP0xoKFltKC1XLHZ5LGttKSk6WW0oVyx2eSxrbSk7RD1XLk47SjMobixXLkopO0ozKG4sRCk7YnJlYWs7ZGVmYXVsdDpXPVcubGVuZ3RoJiZXWzBdPT09Ii0iP0xoKHhtKFcuc3Vic3RyaW5nKDEpKSk6eG0oVyksRD1XLk4sSjMobixXLkopLEozKG4sRCl9fSxQcSk7CmZxdz1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT01KXJldHVybiExO2cucVkoVyxELHVhKG4uTikpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz11NChXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxKMyhuLk4sVykpfSx0MmgpOwp1VT1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT0wKXJldHVybiExO2cucVkoVyxELHkxKG4uTikpO3JldHVybiEwfSxzZixxM1opOwpnLm9tPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7Zy5xWShXLEQsYVkobikpO3JldHVybiEwfSxOWSxtNyk7CmcuZHE9ZnVuY3Rpb24obixXLEQ9bEcpe3JldHVybiBuZXcgelMobixXLEQpfShmdW5jdGlvbihuLFcsRCxiLHYpe2lmKG4uSiE9PTIpcmV0dXJuITE7CmI9U1codm9pZCAwLGIpO2NIKFcsV1tiNF18MCxEKS5wdXNoKGIpO1ExKG4sYix2KTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQsYix2KXtpZihBcnJheS5pc0FycmF5KFcpKXtmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKylwOChuLFdba10sRCxiLHYpOwpuPVdbYjRdfDA7biYxfHwoV1tiNF09bnwxKX19KTsKemc9VFMoZnVuY3Rpb24obixXLEQsYix2LGspe2lmKG4uSiE9PTIpcmV0dXJuITE7dmFyIGg9V1tiNF18MDtXVyhXLGgsayxELEw1KGgpKTtXPWhTKFcsYixEKTtRMShuLFcsdik7cmV0dXJuITB9LHA4KTsKbFU9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MilyZXR1cm4hMTtnLnFZKFcsRCxEOShuKSk7cmV0dXJuITB9LGZ1bmN0aW9uKG4sVyxEKXtXPW5HKFcpOwpXIT1udWxsJiZpRyhuLEQsUFcoVywhMCkuYnVmZmVyKX0sTk1VKTsKVGc9WGYoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7bj1EOShuKTtjSChXLFdbYjRdfDAsRCkucHVzaChuKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYobkcsVywhMSk7CmlmKFchPW51bGwpZm9yKGxldCBoPTA7aDxXLmxlbmd0aDtoKyspe3ZhciBiPW4sdj1ELGs9V1toXTtrIT1udWxsJiZpRyhiLHYsUFcoaywhMCkuYnVmZmVyKX19LE5NVSk7CmpvPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTApcmV0dXJuITE7Zy5xWShXLEQsZy5FVihuLk4pPj4+MCk7cmV0dXJuITB9LGZ1bmN0aW9uKG4sVyxEKXtXPXU0KFcpOwpXIT1udWxsJiZXIT1udWxsJiYobTQobixELDApLEl4KG4uTixXKSl9LEdDMik7CmcuQ3g9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MClyZXR1cm4hMTtnLnFZKFcsRCxnLkVWKG4uTikpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7RXMobixELEVfKFcpKX0scCRVKTsKSlhTPVhmKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT0wJiZuLkohPT0yKXJldHVybiExO1c9Y0goVyxXW2I0XXwwLEQpO24uSj09Mj9iRyhuLGs0MixXKTpXLnB1c2goZy5FVihuLk4pKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYoRV8sVywhMCk7CmlmKFchPW51bGwpZm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspRXMobixELFdbYl0pfSxwJFUpOwpJcWo9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09NSlyZXR1cm4hMTtuPW4uTjt2YXIgYj1uLkosdj1uLk4saz1iW3YrMF0saD1iW3YrMV0seD1iW3YrMl07Yj1iW3YrM107aWEobiw0KTtnLnFZKFcsRCxrPDwwfGg8PDh8eDw8MTZ8Yjw8MjQpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz1FXyhXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxuPW4uTixuLk4ucHVzaChXPj4+MCYyNTUpLG4uTi5wdXNoKFc+Pj44JjI1NSksbi5OLnB1c2goVz4+PjE2JjI1NSksbi5OLnB1c2goVz4+PjI0JjI1NSkpfSwkNGkpO3ZhciBTMzE9bmV3IE1hcCxBWHg9Y2xhc3MgZXh0ZW5kcyBlM3J7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMudHlwZU5hbWU9bjt0aGlzLk49VztpZihTbyE9PVNvKXRocm93IEVycm9yKCk7UzMxLnNldChuLHRoaXMpfX07dmFyIG00Wj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5OPW47dGhpcy5KPUQ7dGhpcy5pc1JlcGVhdGVkPTA7dGhpcy5YPWdlO3RoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMDt0aGlzLlc9Vy5tZXNzYWdlSWQhPW51bGw/eFU6dm9pZCAwfXJlZ2lzdGVyKCl7Zy5PQSh0aGlzKX19O3ZhciBjRlo9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEVmPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGk2PVsxLDIsM107dmFyIFo4PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LFVmPVsxLDIsM107dmFyIHllPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBLVUM9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIE9peD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fSxQWmg9WzEsMiwzXTtnLk9mPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O2cuT2YucHJvdG90eXBlLkpoPVdaKDApO2cuT2YucHJvdG90eXBlLko9Zy5tRChbMCxnLm9tLFswLFBaaCx6ZyxbMCxnLm9tLC0xLHVVXSx6ZyxbMCxnLm9tLC0xLGlVLHVVXSx6ZyxbMCxnLm9tXV0sWGYoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7bj1hWShuKTtjSChXLFdbYjRdfDAsRCkucHVzaChuKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYoZy5EUixXLCEwKTsKaWYoVyE9bnVsbClmb3IobGV0IGg9MDtoPFcubGVuZ3RoO2grKyl7dmFyIGI9bix2PUQsaz1XW2hdO2shPW51bGwmJmlHKGIsdixrSyhrKSl9fSxtNyksCmcuZHEsWzAsZy5kcSxbMCxpNixnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTIpcmV0dXJuITE7YmEoVyxELGIsYVkobikpO3JldHVybiEwfSxOWSxtNyksCmcuZ1EoZnVuY3Rpb24obixXLEQsYil7aWYobi5KIT09MClyZXR1cm4hMTtiYShXLEQsYixnLkVWKG4uTikpO3JldHVybiEwfSxnLnJRLGcuS3gpLApnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTApcmV0dXJuITE7YmEoVyxELGIseTEobi5OKSk7cmV0dXJuITB9LHNmLHEzWildLApbMCxVZixnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe24uSiE9PTA/bj0hMTooYmEoVyxELGIsZy5VVihuLk4sZy5KXykpLG49ITApO3JldHVybiBufSxnLiRuLGcuTzYpLApnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTEpcmV0dXJuITE7YmEoVyxELGIsZy5kZShuLk4pKTtyZXR1cm4hMH0sZy50OSxnLlpGKSwKemcsWzAsZy5kcSxbMCxVNixnLkU2XV1dXSxnLmdRKGZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gSjkobixXLEQpfSxmdW5jdGlvbihuLFcsRCl7eW0obixELGEwKFcpKX0sUHEpLApYZihmdW5jdGlvbihuLFcsRCl7bi5KIT09MSYmbi5KIT09Mj9uPSExOihXPWNIKFcsV1tiNF18MCxEKSxuLko9PTI/YkcobixvWSxXKTpXLnB1c2gob1kobi5OKSksbj0hMCk7cmV0dXJuIG59LGZ1bmN0aW9uKG4sVyxEKXtXPWU2KGEwLFcsITEpOwppZihXIT1udWxsKWZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKXltKG4sRCxXW2JdKX0sUHEpXSk7dmFyIFppeD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTtnLkU9bDYucHJvdG90eXBlO2cuRS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtpZighZy5xaS5uYXZpZ2F0b3IuY29va2llRW5hYmxlZClyZXR1cm4hMTtpZighdGhpcy5pc0VtcHR5KCkpcmV0dXJuITA7dGhpcy5zZXQoIlRFU1RDT09LSUVTRU5BQkxFRCIsIjEiLHtuejo2MH0pO2lmKHRoaXMuZ2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiKSE9PSIxIilyZXR1cm4hMTt0aGlzLnJlbW92ZSgiVEVTVENPT0tJRVNFTkFCTEVEIik7cmV0dXJuITB9OwpnLkUuc2V0PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj0hMTtpZih0eXBlb2YgRD09PSJvYmplY3QiKXt2YXIgdj1ELnNhbWVTaXRlO2I9RC5zZWN1cmV8fCExO3ZhciBrPUQuZG9tYWlufHx2b2lkIDA7dmFyIGg9RC5wYXRofHx2b2lkIDA7dmFyIHg9RC5uen1pZigvWzs9XHNdLy50ZXN0KG4pKXRocm93IEVycm9yKCdJbnZhbGlkIGNvb2tpZSBuYW1lICInK24rJyInKTtpZigvWztcclxuXS8udGVzdChXKSl0aHJvdyBFcnJvcignSW52YWxpZCBjb29raWUgdmFsdWUgIicrVysnIicpO3g9PT12b2lkIDAmJih4PS0xKTtEPWs/Ijtkb21haW49IitrOiIiO2g9aD8iO3BhdGg9IitoOiIiO2I9Yj8iO3NlY3VyZSI6IiI7eD14PDA/IiI6eD09MD8iO2V4cGlyZXM9IisobmV3IERhdGUoMTk3MCwxLDEpKS50b1VUQ1N0cmluZygpOiI7ZXhwaXJlcz0iKyhuZXcgRGF0ZShEYXRlLm5vdygpK3gqMUUzKSkudG9VVENTdHJpbmcoKTt0aGlzLk4uY29va2llPW4rIj0iK1crRCtoK3grYisodiE9bnVsbD8KIjtzYW1lc2l0ZT0iK3Y6IiIpfTsKZy5FLmdldD1mdW5jdGlvbihuLFcpe3ZhciBEPW4rIj0iLGI9KHRoaXMuTi5jb29raWV8fCIiKS5zcGxpdCgiOyIpO2ZvcihsZXQgdj0wLGs7djxiLmxlbmd0aDt2Kyspe2s9Ylt2XS50cmltKCk7aWYoay5sYXN0SW5kZXhPZihELDApPT0wKXJldHVybiBrLnNsaWNlKEQubGVuZ3RoKTtpZihrPT1uKXJldHVybiIifXJldHVybiBXfTsKZy5FLnJlbW92ZT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9dGhpcy5nZXQobikhPT12b2lkIDA7dGhpcy5zZXQobiwiIix7bno6MCxwYXRoOlcsZG9tYWluOkR9KTtyZXR1cm4gYn07CmcuRS51Qj1mdW5jdGlvbigpe3JldHVybiBUdih0aGlzKS5rZXlzfTsKZy5FLno3PWZ1bmN0aW9uKCl7cmV0dXJuIFR2KHRoaXMpLnZhbHVlc307CmcuRS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuTi5jb29raWV9OwpnLkUuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgbj1Udih0aGlzKS5rZXlzO2ZvcihsZXQgVz1uLmxlbmd0aC0xO1c+PTA7Vy0tKXRoaXMucmVtb3ZlKG5bV10pfTsKdmFyIEp5PW5ldyBsNih0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpO3ZhciBVNHg9Y2xhc3N7YXN5bmMgY29tcHJlc3Mobil7dmFyIFc9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksRD0obmV3IFJlc3BvbnNlKFcucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpO1c9Vy53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCBXLndyaXRlKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShuKSk7YXdhaXQgVy5jbG9zZSgpO3JldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBEKX1pc1N1cHBvcnRlZChuKXtyZXR1cm4gbjwxMDI0PyExOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQifX07dmFyIHlYTT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgRXppPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5pbnRlcnZhbE1zPW47dGhpcy5jYWxsYmFjaz1XO3RoaXMuZW5hYmxlZD0hMTt0aGlzLk49KCk9PmcuVXcoKTsKdGhpcy5KPXRoaXMuTigpfXNldEludGVydmFsKG4pe3RoaXMuaW50ZXJ2YWxNcz1uO3RoaXMudGltZXImJnRoaXMuZW5hYmxlZD8odGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTp0aGlzLnRpbWVyJiZ0aGlzLnN0b3AoKX1zdGFydCgpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50aWNrKCl9LHRoaXMuaW50ZXJ2YWxNcyksdGhpcy5KPXRoaXMuTigpKX1zdG9wKCl7dGhpcy5lbmFibGVkPSExOwp0aGlzLnRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dm9pZCAwKX10aWNrKCl7aWYodGhpcy5lbmFibGVkKXtsZXQgbj1NYXRoLm1heCh0aGlzLk4oKS10aGlzLkosMCk7bjx0aGlzLmludGVydmFsTXMqLjg/dGhpcy50aW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50aWNrKCl9LHRoaXMuaW50ZXJ2YWxNcy1uKToodGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCksdGhpcy5jYWxsYmFjaygpLHRoaXMuZW5hYmxlZCYmKHRoaXMuc3RvcCgpLHRoaXMuc3RhcnQoKSkpfWVsc2UgdGhpcy50aW1lcj12b2lkIDB9fTt2YXIgaWl4PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciB1R2I9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07Zy5FPWcuTVkucHJvdG90eXBlO2cuRS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZy5NWSh0aGlzLngsdGhpcy55KX07CmcuRS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBnLk1ZJiZSXyh0aGlzLG4pfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5jZWlsKHRoaXMueCk7dGhpcy55PU1hdGguY2VpbCh0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGgucm91bmQodGhpcy54KTt0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLnNjYWxlPWZ1bmN0aW9uKG4sVyl7dGhpcy54Kj1uO3RoaXMueSo9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47cmV0dXJuIHRoaXN9O2cuRT1nLlFlLnByb3RvdHlwZTtnLkUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGcuUWUodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9OwpnLkUuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07CmcuRS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWNPKHRoaXMpfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLnJvdW5kKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGgucm91bmQodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLnNjYWxlPWZ1bmN0aW9uKG4sVyl7dGhpcy53aWR0aCo9bjt0aGlzLmhlaWdodCo9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47cmV0dXJuIHRoaXN9O3ZhciBwVD0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO3ZhciAkQj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uPT09cksmJld8fCIifXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuTn19LHJLPXt9O25ldyAkQihySywiIik7dmFyIE8wPXtjZWxscGFkZGluZzoiY2VsbFBhZGRpbmciLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIsY29sc3BhbjoiY29sU3BhbiIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIixoZWlnaHQ6ImhlaWdodCIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLG5vbmNlOiJub25jZSIscm9sZToicm9sZSIscm93c3Bhbjoicm93U3BhbiIsdHlwZToidHlwZSIsdXNlbWFwOiJ1c2VNYXAiLHZhbGlnbjoidkFsaWduIix3aWR0aDoid2lkdGgifTtnLkU9ZlQucHJvdG90eXBlO2cuRS5lXz1mdW5jdGlvbigpe3JldHVybiBBSyh0aGlzLk4pfTsKZy5FLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKFd8fHRoaXMuTikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKG4pKX07CmcuRS5CSj1mdW5jdGlvbihuKXtyZXR1cm4gZy5LVChuLHRoaXMuTil9OwpnLkUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihuKXtyZXR1cm4gdWsodGhpcy5OLG4pfTsKZy5FLmFwcGVuZENoaWxkPWZ1bmN0aW9uKG4sVyl7bi5hcHBlbmRDaGlsZChXKX07CmcuRS5hcHBlbmQ9ZnVuY3Rpb24obixXKXtvaChnLkpLKG4pLG4sYXJndW1lbnRzLDEpfTsKZy5FLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihuKXtpZihuLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChuLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07CmcuRS5yZW1vdmVOb2RlPWcuQ1Q7Zy5FLmNvbnRhaW5zPWcuQng7Zy5FLmlzRm9jdXNhYmxlPU1jO3ZhciBvek09Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfUdZKCl7cmV0dXJuIEhXKHRoaXMsMSl9fTt2YXIgVlE9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIGJJPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGY0Mj1LOChiSSk7dmFyIGtFPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBjeD1bInBsYXRmb3JtIiwicGxhdGZvcm1WZXJzaW9uIiwiYXJjaGl0ZWN0dXJlIiwibW9kZWwiLCJ1YUZ1bGxWZXJzaW9uIl0sUVE9bmV3IGJJLGFoPW51bGw7dmFyIFdMPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBkNGg9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHozdD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiw0KX19O3ZhciBCcT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiwzNyl9Uygpe3ZhciBuPXRoaXMubDk7cmV0dXJuIHg5KG4sbltiNF18MCxkNGgsNykhPT12b2lkIDB9fTt2YXIgbHF0PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDE5KX1hVihuKXtyZXR1cm4gS24odGhpcywyLG4pfX07dmFyIFRNQz1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9ITEpe3RoaXMuZ1I9Vzt0aGlzLnVhY2g9dGhpcy5sb2NhbGU9bnVsbDt0aGlzLko9MDt0aGlzLmlzRmluYWw9ITE7dGhpcy5OPW5ldyBscXQ7TnVtYmVyLmlzSW50ZWdlcihuKSYmdGhpcy5OLmFWKG4pO1d8fCh0aGlzLmxvY2FsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJsYW5nIikpO3ZMKHRoaXMsbmV3IFdMKX1hVihuKXt0aGlzLk4uYVYobik7cmV0dXJuIHRoaXN9YnVpbGQobixXPTAsRD0wLGI9bnVsbCx2PTAsaz0wKXtpZighdGhpcy5nUil7dmFyIGg9REQodGhpcyk7dmFyIHg9bmV3IG96TTt4PUtuKHgsMSx0aGlzLkopO3g9b3ooeCwyLE9fKHRoaXMuaXNGaW5hbCkpO0Q9b3ooeCwzLGcueVAoRD4wP0Q6dm9pZCAwKSk7dj1veihELDQsZy55UCh2PjA/djp2b2lkIDApKTtrPW96KHYsNSxnLnlQKGs+MD9rOnZvaWQgMCkpO3Y9ay5sOTtEPXZbYjRdfDA7az12OShrLEQpP2s6S0coayx2LEQpP09LKGssCnYpOm5ldyBrLmNvbnN0cnVjdG9yKG1fKHYsRCwhMCkpOyQ5KGgsb3pNLDEwLGspfWg9dGhpcy5OLmNsb25lKCk7az1EYXRlLm5vdygpLnRvU3RyaW5nKCk7aD1veihoLDQsZy5sNChrKSk7bj1uLnNsaWNlKCk7bj1zVihoLEJxLDMsbik7YiYmKGg9bmV3IGlpeCxiPW96KGgsMTMsZy55UChiKSksaD1uZXcgdUdiLGI9JDkoaCxpaXgsMixiKSxoPW5ldyB6M3QsYj0kOShoLHVHYiwxLGIpLGI9S24oYiwyLDkpLCQ5KG4sejN0LDE4LGIpKTtXJiZJWShuLDE0LFcpO3JldHVybiBufX07dmFyIEdBO0dBPWcuWmw/IndlYmtpdFRyYW5zaXRpb25FbmQiOiJ0cmFuc2l0aW9uZW5kIjtnLmhILnByb3RvdHlwZS5KPTA7Zy5oSC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLk49dGhpcy5XPXRoaXMuWDt0aGlzLko9MH07CmcuaEgucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuV307dmFyIGpmdz1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiw4KX19LENaaD1LOChqZncpO3ZhciBGUDtGUD1uZXcgbTRaKDE3NTIzNzM3NSxqZncsY2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX0pO3ZhciBCTVo9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5jb21wb25lbnRJZD0iIjt0aGlzLk49W107dGhpcy5WUT0iIjt0aGlzLnBhZ2VJZD1udWxsO3RoaXMuZSQ9dGhpcy50dz0tMTt0aGlzLks9dGhpcy5leHBlcmltZW50SWRzPW51bGw7dGhpcy5PPXRoaXMuY0o9dGhpcy5WPXRoaXMuWD0wO3RoaXMuSEo9MTt0aGlzLnRpbWVvdXRNaWxsaXM9MDt0aGlzLmJkPSExO3RoaXMubG9nU291cmNlPW4ubG9nU291cmNlO3RoaXMubjE9bi5uMXx8KCgpPT57fSk7CnRoaXMuVz1uZXcgVE1DKG4ubG9nU291cmNlLG4uZ1IpO3RoaXMubmV0d29yaz1uLm5ldHdvcmt8fG51bGw7dGhpcy5QZz1uLlBnfHxudWxsO3RoaXMuWT1uLmN1fHxudWxsO3RoaXMuc2Vzc2lvbkluZGV4PW4uc2Vzc2lvbkluZGV4fHxudWxsO3RoaXMub3g9bi5veHx8ITE7dGhpcy5sb2dnZXI9bnVsbDt0aGlzLndpdGhDcmVkZW50aWFscz0hbi5rQzt0aGlzLmdSPW4uZ1J8fCExO3RoaXMuRD0hdGhpcy5nUiYmISFnLmlrKCkmJiEhZy5paygpLm5hdmlnYXRvciYmZy5paygpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuUyQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKExLKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoTEsoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIFc9bksobmV3IFdMKTt2TCh0aGlzLlcsVyk7dGhpcy5qPW5ldyBnLmhIKDFFNCwzRTUsLjEpO249STRTKHRoaXMsbi5iMSk7dGhpcy5KPW5ldyBFemkodGhpcy5qLmdldFZhbHVlKCksCm4pO3RoaXMuVEM9bmV3IEV6aSg2RTUsbik7dGhpcy5veHx8dGhpcy5UQy5zdGFydCgpO3RoaXMuZ1J8fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iJiZlZyh0aGlzKX0pLGcuaWsoKT8uYWRkRXZlbnRMaXN0ZW5lcj8uKCJwYWdlaGlkZSIsKCk9PntlZyh0aGlzKX0pKX1tQSgpe2VnKHRoaXMpOwp0aGlzLkouc3RvcCgpO3RoaXMuVEMuc3RvcCgpO3N1cGVyLm1BKCl9ZGlzcGF0Y2gobil7aWYobiBpbnN0YW5jZW9mIEJxKXRoaXMubG9nKG4pO2Vsc2UgdHJ5e3ZhciBXPW5ldyBCcSxEPW4uYlkoKTt2YXIgYj1nLlNFKFcsOCxEKTt0aGlzLmxvZyhiKX1jYXRjaHt9fWxvZyhuKXtpZih0aGlzLlMkKXtuPW4uY2xvbmUoKTt2YXIgVz10aGlzLkhKKys7bj1JWShuLDIxLFcpO3RoaXMuY29tcG9uZW50SWQmJmcuU0UobiwyNix0aGlzLmNvbXBvbmVudElkKTtXPW47e3ZhciBEPWlXKFcsMSk7bGV0IGI9dHlwZW9mIEQ7RD1EPT1udWxsP0Q6Yj09PSJiaWdpbnQiP1N0cmluZyhkWig2NCxEKSk6WkIoRCk/Yj09PSJzdHJpbmciP0I5KEQpOkM1KEQpOnZvaWQgMH1EPT1udWxsJiYoRD1EYXRlLm5vdygpLEQ9TnVtYmVyLmlzRmluaXRlKEQpP0QudG9TdHJpbmcoKToiMCIsb3ooVywxLGcubDQoRCkpKTtEPWlXKFcsMTUsdm9pZCAwLHZvaWQgMCxGRCk7RCE9bnVsbCYmKHR5cGVvZiBEPT09ImJpZ2ludCI/CnNLKEQpP0Q9TnVtYmVyKEQpOihEPWRaKDY0LEQpLEQ9c0soRCk/TnVtYmVyKEQpOlN0cmluZyhEKSk6RD1aQihEKT90eXBlb2YgRD09PSJudW1iZXIiP0M1KEQpOkI5KEQpOnZvaWQgMCk7RCE9bnVsbHx8SVkoVywxNSwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkqNjApO3RoaXMuZXhwZXJpbWVudElkcyYmKEQ9dGhpcy5leHBlcmltZW50SWRzLmNsb25lKCksJDkoVyx5WE0sMTYsRCkpO1c9dGhpcy5OLmxlbmd0aC0xRTMrMTtXPjAmJih0aGlzLk4uc3BsaWNlKDAsVyksdGhpcy5YKz1XKTt0aGlzLk4ucHVzaChuKTt0aGlzLm94fHx0aGlzLkouZW5hYmxlZHx8dGhpcy5KLnN0YXJ0KCl9fWZsdXNoKG4sVyl7aWYodGhpcy5OLmxlbmd0aD09PTApbiYmbigpO2Vsc2UgaWYodGhpcy5iZCYmdGhpcy5EKXRoaXMuVy5KPTMsQUZaKHRoaXMpO2Vsc2V7dmFyIEQ9RGF0ZS5ub3coKTtpZih0aGlzLmUkPkQmJnRoaXMudHc8RClXJiZXKCJ0aHJvdHRsZWQiKTtlbHNle3RoaXMubmV0d29yayYmCih0eXBlb2YgdGhpcy5uZXR3b3JrLkdZPT09ImZ1bmN0aW9uIj9IYlModGhpcy5XLHRoaXMubmV0d29yay5HWSgpKTp0aGlzLlcuSj0wKTt2YXIgYj10aGlzLlcuYnVpbGQodGhpcy5OLHRoaXMuWCx0aGlzLlYsdGhpcy5QZyx0aGlzLmNKLHRoaXMuTyksdj10aGlzLm4xKCk7aWYodiYmdGhpcy5WUT09PXYpVyYmVygic3RhbGUtYXV0aC10b2tlbiIpO2Vsc2V7dGhpcy5OPVtdO3RoaXMuSi5lbmFibGVkJiZ0aGlzLkouc3RvcCgpO3RoaXMuWD0wO0Q9Yi5iWSgpO2xldCBrO3RoaXMuSyYmdGhpcy5LLmlzU3VwcG9ydGVkKEQubGVuZ3RoKSYmKGs9dGhpcy5LLmNvbXByZXNzKEQpKTtsZXQgaD1tVXcodGhpcyxELHYpLHg9Rz0+e3RoaXMuai5yZXNldCgpO3RoaXMuSi5zZXRJbnRlcnZhbCh0aGlzLmouZ2V0VmFsdWUoKSk7aWYoRyl7dmFyIHI9bnVsbDt0cnl7bGV0IE49SlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShHLnJlcGxhY2UoIildfSdcbiIsIiIpKSk7cj1DWmgoTil9Y2F0Y2goTil7fXImJgooRz1OdW1iZXIocG4ociwxLGcuJFUoIi0xIikpKSxHPjAmJih0aGlzLnR3PURhdGUubm93KCksdGhpcy5lJD10aGlzLnR3K0cpLHR2KHIubDksRlAuTiksR3oocixGUC5OKSxyPUZQLko/RlAuWChyLEZQLkosRlAuTixGUC5XKTpGUC5YKHIsRlAuTixudWxsLEZQLlcpLHI9cj09PW51bGw/dm9pZCAwOnIpJiYocj1hUChyLDEsLTEpLHIhPT0tMSYmKHRoaXMuaj1uZXcgZy5oSChyPDE/MTpyLDNFNSwuMSksdGhpcy5KLnNldEludGVydmFsKHRoaXMuai5nZXRWYWx1ZSgpKSkpfW4mJm4oKTt0aGlzLlY9MH0sTD0oRyxyKT0+e3ZhciBOPVZHKGIsQnEsMyk7CnZhciBIPU51bWJlcihwbihiLDE0KSk7Zy54RSh0aGlzLmopO3RoaXMuSi5zZXRJbnRlcnZhbCh0aGlzLmouZ2V0VmFsdWUoKSk7Rz09PTQwMSYmdiYmKHRoaXMuVlE9dik7SCYmKHRoaXMuWCs9SCk7cj09PXZvaWQgMCYmKHI9dGhpcy5pc1JldHJ5YWJsZShHKSk7ciYmKHRoaXMuTj1OLmNvbmNhdCh0aGlzLk4pLHRoaXMub3h8fHRoaXMuSi5lbmFibGVkfHx0aGlzLkouc3RhcnQoKSk7VyYmVygibmV0LXNlbmQtZmFpbGVkIixHKTsrK3RoaXMuVn0sZT0oKT0+e3RoaXMubmV0d29yayYmdGhpcy5uZXR3b3JrLnNlbmQoaCx4LEwpfTsKaz9rLnRoZW4oRz0+e2guWkpbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7aC5aSlsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7aC5ib2R5PUc7aC5vJD0yO2UoKX0sKCk9PntlKCl9KTplKCl9fX19aXNSZXRyeWFibGUobil7cmV0dXJuIDUwMDw9biYmbjw2MDB8fG49PT00MDF8fG49PT0wfX07dmFyIEZVaj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuUiQ9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQifWFzeW5jIHNlbmQobixXLEQpe3ZhciBiPXRoaXMuUiQ/bmV3IEFib3J0Q29udHJvbGxlcjp2b2lkIDAsdj1iJiZuLnRpbWVvdXRNaWxsaXM+MD9zZXRUaW1lb3V0KCgpPT57Yi5hYm9ydCgpfSxuLnRpbWVvdXRNaWxsaXMpOnZvaWQgMDsKdHJ5e2xldCBrPWF3YWl0IGZldGNoKG4udXJsLHttZXRob2Q6bi5yZXF1ZXN0VHlwZSxoZWFkZXJzOnsuLi5uLlpKfSwuLi4obi5ib2R5JiZ7Ym9keTpuLmJvZHl9KSwuLi4obi53aXRoQ3JlZGVudGlhbHMmJntjcmVkZW50aWFsczoiaW5jbHVkZSJ9KSxzaWduYWw6bi50aW1lb3V0TWlsbGlzJiZiP2Iuc2lnbmFsOm51bGx9KTtrLnN0YXR1cz09PTIwMD9XPy4oYXdhaXQgay50ZXh0KCkpOkQ/LihrLnN0YXR1cyl9Y2F0Y2goayl7c3dpdGNoKGs/Lm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOkQ/Lig0MDgpO2JyZWFrO2RlZmF1bHQ6RD8uKDQwMCl9fWZpbmFsbHl7Y2xlYXJUaW1lb3V0KHYpfX1HWSgpe3JldHVybiA0fX07dmFyIGtZPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5sb2dTb3VyY2U9MTgyODt0aGlzLnNlc3Npb25JbmRleD0iMCI7dGhpcy5Saj0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSI7dGhpcy5uZXR3b3JrPXRoaXMuYnVpbGRMYWJlbD1udWxsO3RoaXMuY29tcG9uZW50SWQ9IiI7dGhpcy5OPXRoaXMuUGc9bnVsbDt0aGlzLko9ITE7dGhpcy5sb2dnZXI9dGhpcy5wYWdlSWQ9bnVsbH1rQygpe3RoaXMuVz0hMDtyZXR1cm4gdGhpc31idWlsZCgpe3RoaXMubmV0d29ya3x8KHRoaXMubmV0d29yaz1uZXcgRlVqKTt2YXIgbj1uZXcgQk1aKHtsb2dTb3VyY2U6dGhpcy5sb2dTb3VyY2UsbjE6dGhpcy5uMT90aGlzLm4xOkJPLHNlc3Npb25JbmRleDp0aGlzLnNlc3Npb25JbmRleCxjdTp0aGlzLlJqLGdSOiExLG94OiExLGtDOnRoaXMuVyxiMTp0aGlzLmIxLG5ldHdvcms6dGhpcy5uZXR3b3JrfSk7Zy51KHRoaXMsCm4pO2lmKHRoaXMuYnVpbGRMYWJlbCl7dmFyIFc9dGhpcy5idWlsZExhYmVsLEQ9REQobi5XKTtnLlNFKEQsNyxXKX1uLks9bmV3IFU0eDt0aGlzLmNvbXBvbmVudElkJiYobi5jb21wb25lbnRJZD10aGlzLmNvbXBvbmVudElkKTt0aGlzLlBnJiYobi5QZz10aGlzLlBnKTt0aGlzLnBhZ2VJZCYmKG4ucGFnZUlkPXRoaXMucGFnZUlkKTt0aGlzLk4mJigoRD10aGlzLk4pPyhuLmV4cGVyaW1lbnRJZHN8fChuLmV4cGVyaW1lbnRJZHM9bmV3IHlYTSksVz1uLmV4cGVyaW1lbnRJZHMsRD1ELmJZKCksZy5TRShXLDQsRCkpOm4uZXhwZXJpbWVudElkcyYmb3oobi5leHBlcmltZW50SWRzLDQpKTt0aGlzLkomJihuLmJkPW4uRCk7SkZaKG4uVyk7dGhpcy5uZXR3b3JrLmFWJiZ0aGlzLm5ldHdvcmsuYVYodGhpcy5sb2dTb3VyY2UpO3RoaXMubmV0d29yay5oUyYmdGhpcy5uZXR3b3JrLmhTKG4pO3JldHVybiBufX07dmFyIGE0aj1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmxvZ1NvdXJjZT0xODI4O3RoaXMuY29tcG9uZW50SWQ9IiI7bnx8KG49bmV3IGtZLG4uY29tcG9uZW50SWQ9IiIsZy51KHRoaXMsbiksbj1uLmJ1aWxkKCkpO3RoaXMuTj1ufWZsdXNoKG4pe249bnx8W107aWYobi5sZW5ndGgpe2xldCBXPW5ldyBaaXgsRD1bXTtmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl7bGV0IHY9bltiXSxrPXU2KHYpO0QucHVzaChrKTt2LmNsZWFyKCl9c1YoVyxnLk9mLDEsRCk7dGhpcy5OLmRpc3BhdGNoKFcpO3RoaXMuTi5mbHVzaCgpfX19O3ZhciBxNT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19O3ZhciB3JGI9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMuSj1uO3RoaXMuVz1XO3RoaXMuZmllbGRzPUR8fFtdO3RoaXMuTj1uZXcgTWFwfWNsZWFyKCl7dGhpcy5OLmNsZWFyKCl9fTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyB3JGJ7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLDMsVyl9fTt2YXIgeTg9Y2xhc3MgZXh0ZW5kcyB3JGJ7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLDIsVyl9ZEUobiwuLi5XKXt5RloodGhpcyxuLC4uLlcpfX07JEUucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuSj0hMH07CiRFLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07Zy5peChyRCwkRSk7CnJELnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9dGhpcy50eXBlPW4udHlwZSxiPW4uY2hhbmdlZFRvdWNoZXMmJm4uY2hhbmdlZFRvdWNoZXMubGVuZ3RoP24uY2hhbmdlZFRvdWNoZXNbMF06bnVsbDt0aGlzLnRhcmdldD1uLnRhcmdldHx8bi5zcmNFbGVtZW50O3RoaXMuY3VycmVudFRhcmdldD1XO1c9bi5yZWxhdGVkVGFyZ2V0O1d8fChEPT0ibW91c2VvdmVyIj9XPW4uZnJvbUVsZW1lbnQ6RD09Im1vdXNlb3V0IiYmKFc9bi50b0VsZW1lbnQpKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9VztiPyh0aGlzLmNsaWVudFg9Yi5jbGllbnRYIT09dm9pZCAwP2IuY2xpZW50WDpiLnBhZ2VYLHRoaXMuY2xpZW50WT1iLmNsaWVudFkhPT12b2lkIDA/Yi5jbGllbnRZOmIucGFnZVksdGhpcy5zY3JlZW5YPWIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9Yi5zY3JlZW5ZfHwwKToodGhpcy5jbGllbnRYPW4uY2xpZW50WCE9PXZvaWQgMD9uLmNsaWVudFg6bi5wYWdlWCx0aGlzLmNsaWVudFk9Cm4uY2xpZW50WSE9PXZvaWQgMD9uLmNsaWVudFk6bi5wYWdlWSx0aGlzLnNjcmVlblg9bi5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1uLnNjcmVlbll8fDApO3RoaXMuYnV0dG9uPW4uYnV0dG9uO3RoaXMua2V5Q29kZT1uLmtleUNvZGV8fDA7dGhpcy5rZXk9bi5rZXl8fCIiO3RoaXMuY2hhckNvZGU9bi5jaGFyQ29kZXx8KEQ9PSJrZXlwcmVzcyI/bi5rZXlDb2RlOjApO3RoaXMuY3RybEtleT1uLmN0cmxLZXk7dGhpcy5hbHRLZXk9bi5hbHRLZXk7dGhpcy5zaGlmdEtleT1uLnNoaWZ0S2V5O3RoaXMubWV0YUtleT1uLm1ldGFLZXk7dGhpcy5wb2ludGVySWQ9bi5wb2ludGVySWR8fDA7dGhpcy5wb2ludGVyVHlwZT1uLnBvaW50ZXJUeXBlO3RoaXMuc3RhdGU9bi5zdGF0ZTt0aGlzLk49bjtuLmRlZmF1bHRQcmV2ZW50ZWQmJnJELlRCLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9OwpyRC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7ckQuVEIuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyk7dGhpcy5OLnN0b3BQcm9wYWdhdGlvbj90aGlzLk4uc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5OLmNhbmNlbEJ1YmJsZT0hMH07CnJELnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3JELlRCLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIG49dGhpcy5OO24ucHJldmVudERlZmF1bHQ/bi5wcmV2ZW50RGVmYXVsdCgpOm4ucmV0dXJuVmFsdWU9ITF9O3ZhciBzMj0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApO3ZhciB1SWg9MDtnLkU9ZksucHJvdG90eXBlO2cuRS5hZGQ9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLnRvU3RyaW5nKCk7bj10aGlzLmxpc3RlbmVyc1trXTtufHwobj10aGlzLmxpc3RlbmVyc1trXT1bXSx0aGlzLk4rKyk7dmFyIGg9SVcobixXLGIsdik7aD4tMT8oVz1uW2hdLER8fChXLnFfPSExKSk6KFc9bmV3IG8zYihXLHRoaXMuc3JjLGssISFiLHYpLFcucV89RCxuLnB1c2goVykpO3JldHVybiBXfTsKZy5FLnJlbW92ZT1mdW5jdGlvbihuLFcsRCxiKXtuPW4udG9TdHJpbmcoKTtpZighKG4gaW4gdGhpcy5saXN0ZW5lcnMpKXJldHVybiExO3ZhciB2PXRoaXMubGlzdGVuZXJzW25dO1c9SVcodixXLEQsYik7cmV0dXJuIFc+LTE/KEhMKHZbV10pLGcuQk0odixXKSx2Lmxlbmd0aD09MCYmKGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1tuXSx0aGlzLk4tLSksITApOiExfTsKZy5FLlRpPWZ1bmN0aW9uKCl7dmFyIG49MDtmb3IobGV0IFcgaW4gdGhpcy5saXN0ZW5lcnMpe2xldCBEPXRoaXMubGlzdGVuZXJzW1ddO2ZvcihsZXQgYj0wO2I8RC5sZW5ndGg7YisrKSsrbixITChEW2JdKTtkZWxldGUgdGhpcy5saXN0ZW5lcnNbV107dGhpcy5OLS19fTsKZy5FLnNjPWZ1bmN0aW9uKG4sVyxELGIpe249dGhpcy5saXN0ZW5lcnNbbi50b1N0cmluZygpXTt2YXIgdj0tMTtuJiYodj1JVyhuLFcsRCxiKSk7cmV0dXJuIHY+LTE/blt2XTpudWxsfTsKZy5FLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9biE9PXZvaWQgMCxiPUQ/bi50b1N0cmluZygpOiIiLHY9VyE9PXZvaWQgMDtyZXR1cm4gZy5EbCh0aGlzLmxpc3RlbmVycyxmdW5jdGlvbihrKXtmb3IobGV0IGg9MDtoPGsubGVuZ3RoOysraClpZighKEQmJmtbaF0udHlwZSE9Ynx8diYma1toXS5jYXB0dXJlIT1XKSlyZXR1cm4hMDtyZXR1cm4hMX0pfTt2YXIgUEw9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCksaUk9e30sVTI9MCx1ST0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO2cuaXgoZy5vVyxnLkZNKTtnLm9XLnByb3RvdHlwZVtzMl09ITA7Zy5FPWcub1cucHJvdG90eXBlO2cuRS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKG4sVyxELGIpe0FIKHRoaXMsbixXLEQsYil9OwpnLkUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihuLFcsRCxiKXt5Nyh0aGlzLG4sVyxELGIpfTsKZy5FLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24obil7dmFyIFc9dGhpcy5sWjtpZihXKXt2YXIgRD1bXTtmb3IodmFyIGI9MTtXO1c9Vy5sWilELnB1c2goVyksKytifVc9dGhpcy5IZDtiPW4udHlwZXx8bjtpZih0eXBlb2Ygbj09PSJzdHJpbmciKW49bmV3ICRFKG4sVyk7ZWxzZSBpZihuIGluc3RhbmNlb2YgJEUpbi50YXJnZXQ9bi50YXJnZXR8fFc7ZWxzZXt2YXIgdj1uO249bmV3ICRFKGIsVyk7Zy5ZeShuLHYpfXY9ITA7dmFyIGs7aWYoRClmb3Ioaz1ELmxlbmd0aC0xOyFuLkomJms+PTA7ay0tKXt2YXIgaD1uLmN1cnJlbnRUYXJnZXQ9RFtrXTt2PWREKGgsYiwhMCxuKSYmdn1uLkp8fChoPW4uY3VycmVudFRhcmdldD1XLHY9ZEQoaCxiLCEwLG4pJiZ2LG4uSnx8KHY9ZEQoaCxiLCExLG4pJiZ2KSk7aWYoRClmb3Ioaz0wOyFuLkomJms8RC5sZW5ndGg7aysrKWg9bi5jdXJyZW50VGFyZ2V0PURba10sdj1kRChoLGIsITEsbikmJnY7cmV0dXJuIHZ9OwpnLkUubUE9ZnVuY3Rpb24oKXtnLm9XLlRCLm1BLmNhbGwodGhpcyk7dGhpcy5kXyYmdGhpcy5kXy5UaSgpO3RoaXMubFo9bnVsbH07CmcuRS5TXz1mdW5jdGlvbihuLFcsRCxiKXtyZXR1cm4gdGhpcy5kXy5hZGQoU3RyaW5nKG4pLFcsITEsRCxiKX07CmcuRS5lRj1mdW5jdGlvbihuLFcsRCxiKXtyZXR1cm4gdGhpcy5kXy5hZGQoU3RyaW5nKG4pLFcsITAsRCxiKX07CmcuRS53SD1mdW5jdGlvbihuLFcsRCxiKXt0aGlzLmRfLnJlbW92ZShTdHJpbmcobiksVyxELGIpfTsKZy5FLnNjPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiB0aGlzLmRfLnNjKFN0cmluZyhuKSxXLEQsYil9OwpnLkUuaGFzTGlzdGVuZXI9ZnVuY3Rpb24obixXKXtyZXR1cm4gdGhpcy5kXy5oYXNMaXN0ZW5lcihuIT09dm9pZCAwP1N0cmluZyhuKTp2b2lkIDAsVyl9O2cuejc9dHlwZW9mIEFzeW5jQ29udGV4dCE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgQXN5bmNDb250ZXh0LlNuYXBzaG90PT09ImZ1bmN0aW9uIj9uPT5uJiZBc3luY0NvbnRleHQuU25hcHNob3Qud3JhcChuKTpuPT5uO3ZhciBNMlM9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLlc9bjt0aGlzLlg9Vzt0aGlzLko9MDt0aGlzLk49bnVsbH1nZXQoKXtpZih0aGlzLko+MCl7dGhpcy5KLS07dmFyIG49dGhpcy5OO3RoaXMuTj1uLm5leHQ7bi5uZXh0PW51bGx9ZWxzZSBuPXRoaXMuVygpO3JldHVybiBufXB1dChuKXt0aGlzLlgobik7dGhpcy5KPDEwMCYmKHRoaXMuSisrLG4ubmV4dD10aGlzLk4sdGhpcy5OPW4pfX07dmFyIGxJO3ZhciBSM2I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9dGhpcy5OPW51bGx9YWRkKG4sVyl7dmFyIEQ9Q0suZ2V0KCk7RC5zZXQobixXKTt0aGlzLko/dGhpcy5KLm5leHQ9RDp0aGlzLk49RDt0aGlzLko9RH1yZW1vdmUoKXt2YXIgbj1udWxsO3RoaXMuTiYmKG49dGhpcy5OLHRoaXMuTj10aGlzLk4ubmV4dCx0aGlzLk58fCh0aGlzLko9bnVsbCksbi5uZXh0PW51bGwpO3JldHVybiBufX0sQ0s9bmV3IE0yUygoKT0+bmV3IFFmMSxuPT5uLnJlc2V0KCkpLFFmMT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuTj1udWxsfXNldChuLFcpe3RoaXMuTj1uOwp0aGlzLnNjb3BlPVc7dGhpcy5uZXh0PW51bGx9cmVzZXQoKXt0aGlzLm5leHQ9dGhpcy5zY29wZT10aGlzLk49bnVsbH19O3ZhciB3cSxCTCxqZyxWMng7Qkw9ITE7amc9bmV3IFIzYjtnLm1LPShuLFcpPT57d3F8fFYyeCgpO0JMfHwod3EoKSxCTD0hMCk7amcuYWRkKG4sVyl9OwpWMng9KCk9Pnt2YXIgbj1Qcm9taXNlLnJlc29sdmUodm9pZCAwKTt3cT0oKT0+e24udGhlbihUenIpfX07cTgucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0PXRoaXMuSj10aGlzLlc9dGhpcy5OPW51bGw7dGhpcy5YPSExfTsKdmFyIEczPW5ldyBNMlMoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHE4fSxmdW5jdGlvbihuKXtuLnJlc2V0KCl9KTsKZy5YMS5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFNPKHRoaXMsKDAsZy56NykodHlwZW9mIG49PT0iZnVuY3Rpb24iP246bnVsbCksKDAsZy56NykodHlwZW9mIFc9PT0iZnVuY3Rpb24iP1c6bnVsbCksRCl9OwpnLlgxLnByb3RvdHlwZS4kZ29vZ19UaGVuYWJsZT0hMDtnLkU9Zy5YMS5wcm90b3R5cGU7Zy5FLmZpbmFsbHk9ZnVuY3Rpb24obil7bj0oMCxnLno3KShuKTtyZXR1cm4gbmV3IGcuWDEoKFcsRCk9PntwcSh0aGlzLGI9PntuKCk7VyhiKX0sYj0+e24oKTsKRChiKX0pfSl9OwpnLkUuc1A9ZnVuY3Rpb24obixXKXtyZXR1cm4gU08odGhpcyxudWxsLCgwLGcuejcpKG4pLFcpfTsKZy5FLmNhdGNoPWcuWDEucHJvdG90eXBlLnNQO2cuRS5jYW5jZWw9ZnVuY3Rpb24obil7aWYodGhpcy5OPT0wKXtsZXQgVz1uZXcgZy5JNShuKTtnLm1LKGZ1bmN0aW9uKCl7WUcodGhpcyxXKX0sdGhpcyl9fTsKZy5FLklRPWZ1bmN0aW9uKG4pe3RoaXMuTj0wO2dwKHRoaXMsMixuKX07CmcuRS5BUz1mdW5jdGlvbihuKXt0aGlzLk49MDtncCh0aGlzLDMsbil9OwpnLkUueXM9ZnVuY3Rpb24oKXtmb3IodmFyIG47bj1ISih0aGlzKTspZnEodGhpcyxuLHRoaXMuTix0aGlzLkspO3RoaXMuVj0hMX07CnZhciBPdT1oNDtnLml4KGcuSTUsZy5UYik7Zy5JNS5wcm90b3R5cGUubmFtZT0iY2FuY2VsIjtnLml4KGcuUEosZy5vVyk7Zy5FPWcuUEoucHJvdG90eXBlO2cuRS5lbmFibGVkPSExO2cuRS5aNj1udWxsO2cuRS5zZXRJbnRlcnZhbD1mdW5jdGlvbihuKXt0aGlzLmd0PW47dGhpcy5aNiYmdGhpcy5lbmFibGVkPyh0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpOnRoaXMuWjYmJnRoaXMuc3RvcCgpfTsKZy5FLlJRPWZ1bmN0aW9uKCl7aWYodGhpcy5lbmFibGVkKXtsZXQgbj1nLlV3KCktdGhpcy5qYjtuPjAmJm48dGhpcy5ndCouOD90aGlzLlo2PXRoaXMuVjcuc2V0VGltZW91dCh0aGlzLmhFLHRoaXMuZ3Qtbik6KHRoaXMuWjYmJih0aGlzLlY3LmNsZWFyVGltZW91dCh0aGlzLlo2KSx0aGlzLlo2PW51bGwpLHRoaXMuZGlzcGF0Y2hFdmVudCgidGljayIpLHRoaXMuZW5hYmxlZCYmKHRoaXMuc3RvcCgpLHRoaXMuc3RhcnQoKSkpfX07CmcuRS5zdGFydD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLlo2fHwodGhpcy5aNj10aGlzLlY3LnNldFRpbWVvdXQodGhpcy5oRSx0aGlzLmd0KSx0aGlzLmpiPWcuVXcoKSl9OwpnLkUuc3RvcD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMTt0aGlzLlo2JiYodGhpcy5WNy5jbGVhclRpbWVvdXQodGhpcy5aNiksdGhpcy5aNj1udWxsKX07CmcuRS5tQT1mdW5jdGlvbigpe2cuUEouVEIubUEuY2FsbCh0aGlzKTt0aGlzLnN0b3AoKTtkZWxldGUgdGhpcy5WN307dmFyIGhxPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuRD1uO3RoaXMuVj0wO3RoaXMuWD0xMDA7dGhpcy5LPSExO3RoaXMuVz1uZXcgTWFwO3RoaXMuWT1uZXcgU2V0O3RoaXMuZmx1c2hJbnRlcnZhbD0zRTQ7dGhpcy5KPW5ldyBnLlBKKHRoaXMuZmx1c2hJbnRlcnZhbCk7dGhpcy5KLlNfKCJ0aWNrIix0aGlzLmosITEsdGhpcyk7Zy51KHRoaXMsdGhpcy5KKX1zZW5kSXNvbGF0ZWRQYXlsb2FkKG4pe3RoaXMuSz1uO3RoaXMuWD0xfWooKXt2YXIgbj1bLi4udGhpcy5XLnZhbHVlcygpXS5maWx0ZXIoVz0+Vy5OLnNpemUpOwpuLmxlbmd0aCYmdGhpcy5ELmZsdXNoKG4sdGhpcy5LKTtGY2Iobik7dGhpcy5WPTA7dGhpcy5KLmVuYWJsZWQmJnRoaXMuSi5zdG9wKCl9TihuKXtyZXR1cm4gdGhpcy5ZLmhhcyhuKT92b2lkIDA6dGhpcy5XLmdldChuKX1kRShuLFcsLi4uRCl7KG49dGhpcy5OKG4pKSYmbiBpbnN0YW5jZW9mIHk4JiYobi5kRShXLC4uLkQpLG81KHRoaXMpKX19O3ZhciBDVj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sVyxEPXt9KXtzdXBlcihXKTt0aGlzLmNvZGU9bjt0aGlzLm1ldGFkYXRhPUQ7dGhpcy5uYW1lPSJScGNFcnJvciI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbmV3LnRhcmdldC5wcm90b3R5cGUpfXRvU3RyaW5nKCl7dmFyIG49YFJwY0Vycm9yKCR7d01TKHRoaXMuY29kZSl8fFN0cmluZyh0aGlzLmNvZGUpfSlgO3RoaXMubWVzc2FnZSYmKG4rPSI6ICIrdGhpcy5tZXNzYWdlKTtyZXR1cm4gbn19O2xlLnByb3RvdHlwZS5iWT1mdW5jdGlvbihuKXt2YXIgVz1bXTtUMyh0aGlzLG4sVyk7cmV0dXJuIFcuam9pbigiIil9Owp2YXIgQ3E9eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6IlxcLyIsIlxiIjoiXFxiIiwiXGYiOiJcXGYiLCJcbiI6IlxcbiIsIlxyIjoiXFxyIiwiXHQiOiJcXHQiLCJcdiI6IlxcdTAwMGIifSxNalo9L1x1ZmZmZi8udGVzdCgiXHVmZmZmIik/L1tcXCJceDAwLVx4MWZceDdmLVx1ZmZmZl0vZzovW1xcIlx4MDAtXHgxZlx4N2YtXHhmZl0vZzt2YXIgY1hDO2cuaXgoRjEsQkopO0YxLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH07CmNYQz1uZXcgRjE7Zy5peCh3cCxnLm9XKTt2YXIgYXEyPS9eaHR0cHM/JC9pLG5kTT1bIlBPU1QiLCJQVVQiXSxNOD1bXTtnLkU9d3AucHJvdG90eXBlO2cuRS5XVT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpO2cuRkkoTTgsdGhpcyl9OwpnLkUuc2VuZD1mdW5jdGlvbihuLFcsRCxiKXtpZih0aGlzLk4pdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuSysiOyBuZXdVcmk9IituKTtXPVc/Vy50b1VwcGVyQ2FzZSgpOiJHRVQiO3RoaXMuSz1uO3RoaXMuaj0iIjt0aGlzLlc9MDt0aGlzLmNKPSExO3RoaXMuSj0hMDt0aGlzLk49dGhpcy5UQz90aGlzLlRDLk4oKTpjWEMuTigpO3RoaXMuTi5vbnJlYWR5c3RhdGVjaGFuZ2U9KDAsZy56NykoKDAsZy5LdCkodGhpcy5OOCx0aGlzKSk7dHJ5e3RoaXMuZ2V0U3RhdHVzKCksdGhpcy50dz0hMCx0aGlzLk4ub3BlbihXLFN0cmluZyhuKSwhMCksdGhpcy50dz0hMX1jYXRjaChrKXt0aGlzLmdldFN0YXR1cygpO1Y4KHRoaXMsayk7cmV0dXJufW49RHx8IiI7RD1uZXcgTWFwKHRoaXMuaGVhZGVycyk7aWYoYilpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoYik9PT1PYmplY3QucHJvdG90eXBlKWZvcih2YXIgdiBpbiBiKUQuc2V0KHYsCmJbdl0pO2Vsc2UgaWYodHlwZW9mIGIua2V5cz09PSJmdW5jdGlvbiImJnR5cGVvZiBiLmdldD09PSJmdW5jdGlvbiIpZm9yKGxldCBrIG9mIGIua2V5cygpKUQuc2V0KGssYi5nZXQoaykpO2Vsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gaW5wdXQgdHlwZSBmb3Igb3B0X2hlYWRlcnM6ICIrU3RyaW5nKGIpKTtiPUFycmF5LmZyb20oRC5rZXlzKCkpLmZpbmQoaz0+ImNvbnRlbnQtdHlwZSI9PWsudG9Mb3dlckNhc2UoKSk7CnY9Zy5xaS5Gb3JtRGF0YSYmbiBpbnN0YW5jZW9mIGcucWkuRm9ybURhdGE7IWcuamoobmRNLFcpfHxifHx2fHxELnNldCgiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKTtmb3IobGV0IFtrLGhdb2YgRCl0aGlzLk4uc2V0UmVxdWVzdEhlYWRlcihrLGgpO3RoaXMuYmQmJih0aGlzLk4ucmVzcG9uc2VUeXBlPXRoaXMuYmQpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5OJiZ0aGlzLk4ud2l0aENyZWRlbnRpYWxzIT09dGhpcy5PJiYodGhpcy5OLndpdGhDcmVkZW50aWFscz10aGlzLk8pO3RyeXt0aGlzLlYmJihjbGVhclRpbWVvdXQodGhpcy5WKSx0aGlzLlY9bnVsbCksdGhpcy5EPjAmJih0aGlzLmdldFN0YXR1cygpLHRoaXMuVj1zZXRUaW1lb3V0KHRoaXMuVTIuYmluZCh0aGlzKSx0aGlzLkQpKSx0aGlzLmdldFN0YXR1cygpLHRoaXMuWT0hMCx0aGlzLk4uc2VuZChuKSx0aGlzLlk9ITF9Y2F0Y2goayl7dGhpcy5nZXRTdGF0dXMoKSwKVjgodGhpcyxrKX19OwpnLkUuVTI9ZnVuY3Rpb24oKXt0eXBlb2YgY0ohPSJ1bmRlZmluZWQiJiZ0aGlzLk4mJih0aGlzLmo9IlRpbWVkIG91dCBhZnRlciAiK3RoaXMuRCsibXMsIGFib3J0aW5nIix0aGlzLlc9OCx0aGlzLmdldFN0YXR1cygpLHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTsKZy5FLmFib3J0PWZ1bmN0aW9uKG4pe3RoaXMuTiYmdGhpcy5KJiYodGhpcy5nZXRTdGF0dXMoKSx0aGlzLko9ITEsdGhpcy5YPSEwLHRoaXMuTi5hYm9ydCgpLHRoaXMuWD0hMSx0aGlzLlc9bnx8Nyx0aGlzLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksdGhpcy5kaXNwYXRjaEV2ZW50KCJhYm9ydCIpLFE4KHRoaXMpKX07CmcuRS5tQT1mdW5jdGlvbigpe3RoaXMuTiYmKHRoaXMuSiYmKHRoaXMuSj0hMSx0aGlzLlg9ITAsdGhpcy5OLmFib3J0KCksdGhpcy5YPSExKSxROCh0aGlzLCEwKSk7d3AuVEIubUEuY2FsbCh0aGlzKX07CmcuRS5OOD1mdW5jdGlvbigpe3RoaXMucU4oKXx8KHRoaXMudHd8fHRoaXMuWXx8dGhpcy5YP25WKHRoaXMpOnRoaXMuZ0soKSl9OwpnLkUuZ0s9ZnVuY3Rpb24oKXtuVih0aGlzKX07CmcuRS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5OfTsKZy5FLmlzQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gYTUodGhpcyk9PTR9OwpnLkUuaXNTdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5nZXRTdGF0dXMoKTthOnN3aXRjaChuKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwNDpjYXNlIDIwNjpjYXNlIDMwNDpjYXNlIDEyMjM6dmFyIFc9ITA7YnJlYWsgYTtkZWZhdWx0Olc9ITF9aWYoIVcpe2lmKG49bj09PTApbj1nLmZwKFN0cmluZyh0aGlzLkspKVsxXXx8bnVsbCwhbiYmZy5xaS5zZWxmJiZnLnFpLnNlbGYubG9jYXRpb24mJihuPWcucWkuc2VsZi5sb2NhdGlvbi5wcm90b2NvbC5zbGljZSgwLC0xKSksbj0hYXEyLnRlc3Qobj9uLnRvTG93ZXJDYXNlKCk6IiIpO1c9bn1yZXR1cm4gV307CmcuRS5nZXRTdGF0dXM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGE1KHRoaXMpPjI/dGhpcy5OLnN0YXR1czotMX1jYXRjaChuKXtyZXR1cm4tMX19OwpnLkUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24obil7aWYodGhpcy5OJiZ0aGlzLmlzQ29tcGxldGUoKSlyZXR1cm4gbj10aGlzLk4uZ2V0UmVzcG9uc2VIZWFkZXIobiksbj09PW51bGw/dm9pZCAwOm59OwpnLkUuZ2V0TGFzdEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiB0aGlzLmo9PT0ic3RyaW5nIj90aGlzLmo6U3RyaW5nKHRoaXMuail9O3ZhciBPYjE9Y2xhc3N7c2VuZChuLFc9KCk9Pnt9LEQ9KCk9Pnt9KXtRTVUobi51cmwsYj0+e2I9Yi50YXJnZXQ7CmIuaXNTdWNjZXNzKCk/VyhXMyhiKSk6RChiLmdldFN0YXR1cygpKX0sbi5yZXF1ZXN0VHlwZSxuLmJvZHksbi5aSixuLnRpbWVvdXRNaWxsaXMsbi53aXRoQ3JlZGVudGlhbHMpfUdZKCl7cmV0dXJuIDF9fTt2YXIgTWw9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmxvZ2dlcj1uO3RoaXMuZXZlbnQ9Vzt0aGlzLnN0YXJ0VGltZT1ibigpfWRvbmUoKXt0aGlzLmxvZ2dlci5YKHRoaXMuZXZlbnQsYm4oKS10aGlzLnN0YXJ0VGltZSl9fSxSbT1jbGFzcyBleHRlbmRzIGphMXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyl9fSx4WT1jbGFzcyBleHRlbmRzIFJte2ooKXt9Tigpe31YKCl7fUooKXt9RCgpe31ZKCl7fVcoKXt9VihuLFcsRCxiKXtyZXR1cm4gYn1jSigpe31LKCl7fU8oKXt9fSxXNTE9Y2xhc3MgZXh0ZW5kcyBSbXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMubG9nZ2VyPW47dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCB0aGlzLmxvZ2dlci5kaXNwb3NlKCkpfXVwZGF0ZShuKXt0aGlzLmxvZ2dlci5kaXNwb3NlKCk7CnRoaXMubG9nZ2VyPW59TihuKXt0aGlzLmxvZ2dlci5OKG4pfVgobixXKXt0aGlzLmxvZ2dlci5YKG4sVyl9SihuKXt0aGlzLmxvZ2dlci5KKG4pfUQobil7dGhpcy5sb2dnZXIuRChuKX1ZKG4sVyl7dGhpcy5sb2dnZXIuWShuLFcpfVcoKXt0aGlzLmxvZ2dlci5XKCl9VihuLFcsRCxiKXtyZXR1cm4gdGhpcy5sb2dnZXIuVihuLFcsRCxiKX1jSihuKXt0aGlzLmxvZ2dlci5jSihuKX1LKG4pe3RoaXMubG9nZ2VyLksobil9TyhuKXt0aGlzLmxvZ2dlci5PKG4pfWoobil7dGhpcy5sb2dnZXIuaihuKX19LERHUz1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuY2FsbGJhY2s9bjt0aGlzLko9Vzt0aGlzLk49LVc7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBjbGVhclRpbWVvdXQodGhpcy50aW1lcikpfX0sYjdpPWNsYXNzIGV4dGVuZHMgUm17Y29uc3RydWN0b3IobixXKXtzdXBlcigpOwp0aGlzLm1ldHJpY3M9bjt0aGlzLlZqPVd9aihuKXt0aGlzLm1ldHJpY3MuVGsuZEUobix0aGlzLlZqKX1OKG4pe3RoaXMubWV0cmljcy5ldmVudENvdW50Lkoobix0aGlzLlZqKX1YKG4sVyl7dGhpcy5tZXRyaWNzLlBULmRFKFcsbix0aGlzLlZqKX1KKG4pe3RoaXMubWV0cmljcy5lcnJvckNvdW50Lkoobix0aGlzLlZqKX1WKG4sVyxELGIpe3ZhciB2PWJuKCksaz1oPT57aWYoIXRoaXMucU4oKSl7dmFyIHg9Ym4oKS12O3RoaXMubWV0cmljcy5pTC5kRSh4LG4sRCxoLFcsdGhpcy5Wail9fTsKYi50aGVuKCgpPT52b2lkIGsoMCksaD0+dm9pZCBrKGggaW5zdGFuY2VvZiBDVj9oLmNvZGU6LTEpKTsKcmV0dXJuIGJ9Y0oobil7dGhpcy5tZXRyaWNzLlZKLkoobix0aGlzLlZqKX1LKG4pe3RoaXMubWV0cmljcy5jVS5KKG4sdGhpcy5Wail9TyhuKXt0aGlzLm1ldHJpY3MuakMuSihuLHRoaXMuVmopfUQobil7dGhpcy5tZXRyaWNzLnBheWxvYWRTaXplLmRFKG4sdGhpcy5Wail9WShuLFcpe3RoaXMubWV0cmljcy5mNi5kRShXLG4sdGhpcy5Wail9fSxEaHg9Y2xhc3MgZXh0ZW5kcyBiN2l7Y29uc3RydWN0b3IobixXPVtdKXt2YXIgRD17Vmo6bi5Wanx8Il8iLFJoOm4uUmh8fFtdLExUOm4uTFR8MCxSajpuLlJqLHREOm4udER8fCgoKT0+e30pLApybzpuLnJvfHwoKHYsayk9Pm5sMSh2LGssRC50RCxELlJqKSl9LGI9RC5ybygiNTMiLEQuUmguY29uY2F0KFcpKTsKc3VwZXIoe1RrOm5ldyBDMHgoYiksZXJyb3JDb3VudDpuZXcgTXQxKGIpLGV2ZW50Q291bnQ6bmV3IEYyWihiKSxQVDpuZXcgd1FyKGIpLGlMOm5ldyBCYWkoYiksVko6bmV3IFJkYihiKSxjVTpuZXcgUWF4KGIpLGpDOm5ldyBWdGkoYikscGF5bG9hZFNpemU6bmV3IGNqeChiKSxmNjpuZXcgYTZ3KGIpfSxELlZqKTt0aGlzLm9wdGlvbnM9RDt0aGlzLnNlcnZpY2U9Yjt0aGlzLlRDPSFuLnJvO3RoaXMudHc9bmV3IERHUygoKT0+dm9pZCB0aGlzLnNlcnZpY2UuaigpLEQuTFQpOwp0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy50dy5kaXNwb3NlKCk7dGhpcy5UQyYmdGhpcy5zZXJ2aWNlLmRpc3Bvc2UoKX0pOwpnLmJmKFcuc2xpY2UoKSl9Vygpe1dXcih0aGlzLnR3KX19O3ZhciBxdj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgR0g9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHIkPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDAsciQubWVzc2FnZUlkKX19LFg0Wj1LOChyJCksdmRiPWZ1bmN0aW9uKG4pe3JldHVybiBxMyhXPT5XIGluc3RhbmNlb2YgbiYmIXY5KFcpKX0ociQpOwpyJC5tZXNzYWdlSWQ9ImJma2oiO3ZhciBjND1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIga0VpPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGhZWj1LOChrRWkpO2cuS1Y9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKG4sVyk9Pnt0aGlzLnJlc29sdmU9bjt0aGlzLnJlamVjdD1XfSl9fTt2YXIgQXE9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5KPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMDApO3RoaXMuTj1uZXcga0VpO2lmKCJjaGFsbGVuZ2UiaW4gbiYmdmRiKG4uY2hhbGxlbmdlKSl7dmFyIFc9WTkobi5jaGFsbGVuZ2UsNCx2b2lkIDAseFUpO3ZhciBEPVk5KG4uY2hhbGxlbmdlLDUsdm9pZCAwLHhVKTtZOShuLmNoYWxsZW5nZSw3LHZvaWQgMCx4VSkmJih0aGlzLk49aFlaKFk5KG4uY2hhbGxlbmdlLDcsdm9pZCAwLHhVKSkpfWVsc2Uoe3Byb2dyYW06VyxnbG9iYWxOYW1lOkR9PW4pO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soYXN5bmMoKT0+e3ZhciB7Vng6R309YXdhaXQgdGhpcy5XO0c/LigpfSk7CnRoaXMubG9nZ2VyPUxWKG4ueDN8fHt9LHRoaXMuTik7Zy51KHRoaXMsdGhpcy5sb2dnZXIpO3ZhciBiPW5ldyBnLktWO3RoaXMuVz1iLnByb21pc2U7dGhpcy5sb2dnZXIuTigidCIpO3ZhciB2PXRoaXMubG9nZ2VyLnNoYXJlKCksaz1uZXcgTWwodiwidCIpLGg9KEcscixOLEgpPT57aWYoIXRoaXMubG9nZ2VyLnFOKCkpe3ZhciBBPSJrIjtyP0E9ImgiOk4mJihBPSJ1Iik7QSE9PSJrIj9IIT09MCYmKHRoaXMubG9nZ2VyLk4oQSksdGhpcy5sb2dnZXIuWChBLEcpKTp0aGlzLko8PTA/KHRoaXMubG9nZ2VyLk4oQSksdGhpcy5sb2dnZXIuWChBLEcpLHRoaXMuSj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjAwKSk6dGhpcy5KLS19fSx4PShHLHIsTixIKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntrLmRvbmUoKTsKdi5XKCk7di5kaXNwb3NlKCk7Yi5yZXNvbHZlKHtGeTpHLFZ4OnIscDU6Tix4VTpIfSl9KX0sTD1bKEcscik9Pnt0aGlzLmxvZ2dlci5YKEcscil9LApHPT57dGhpcy5sb2dnZXIuSihHKX0sCkc9Pnt0aGlzLmxvZ2dlci5EKEcpfSwKKEcscik9Pnt0aGlzLmxvZ2dlci5ZKEcscil9XTsKaWYoIWcucWlbRF0pdGhyb3cgdGhpcy5sb2dnZXIuSigyNSksRXJyb3IoIkVHT1UiKTtpZighZy5xaVtEXS5hKXRocm93IHRoaXMubG9nZ2VyLkooMjYpLEVycm9yKCJFTElVIik7dHJ5e2xldCBHPWcucWlbRF0uYTtEPVtdO2xldCByPVtdO3ZhciBlPW4wKHRoaXMuTik7Zm9yKGxldCBBPTA7QTxlLmxlbmd0aDtBKyspRC5wdXNoKGVbQV0pLHIucHVzaCgxKTtsZXQgTj1VaXcodGhpcy5OKTtmb3IoZT0wO2U8Ti5sZW5ndGg7ZSsrKUQucHVzaChOW2VdKSxyLnB1c2goMik7bGV0IFtIXT1HKFcseCwhMCxuLnczLGgsW0Qscl0sWTkodGhpcy5OLDUpLCExLEwpO3RoaXMuWD1IO3RoaXMuT3Y9Yi5wcm9taXNlLnRoZW4oKCk9Pnt9KX1jYXRjaChHKXt0aHJvdyB0aGlzLmxvZ2dlci5KKDI4KSxHOwp9fXNuYXBzaG90KG4pe2lmKHRoaXMucU4oKSl0aHJvdyBFcnJvcigiQWxyZWFkeSBkaXNwb3NlZCIpO3RoaXMubG9nZ2VyLk4oIm4iKTt2YXIgVz10aGlzLmxvZ2dlci5zaGFyZSgpO3JldHVybiB0aGlzLlcudGhlbigoe0Z5OkR9KT0+bmV3IFByb21pc2UoYj0+e3ZhciB2PW5ldyBNbChXLCJuIik7RChrPT57di5kb25lKCk7Vy5qKGsubGVuZ3RoKTtXLlcoKTtXLmRpc3Bvc2UoKTtiKGspfSxbbi53XywKbi5HbCxuLnRMLG4uTU9dKX0pKX1tNShuKXtpZih0aGlzLnFOKCkpdGhyb3cgRXJyb3IoIkFscmVhZHkgZGlzcG9zZWQiKTsKdGhpcy5sb2dnZXIuTigibiIpO3ZhciBXPXYzKHRoaXMubG9nZ2VyLCgpPT50aGlzLlgoW24ud18sbi5HbCxuLnRMLG4uTU9dKSwibiIpOwp0aGlzLmxvZ2dlci5qKFcubGVuZ3RoKTt0aGlzLmxvZ2dlci5XKCk7cmV0dXJuIFd9UzEobil7dGhpcy5XLnRoZW4oKHtwNTpXfSk9PntXPy4obil9KX1RRCgpe3JldHVybiB0aGlzLmxvZ2dlci5zaGFyZSgpfX07dmFyIGVtPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5KPXt9O3RoaXMuTj1udWxsfX07dmFyICRZPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBOdj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgZlY9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMuY2xpZW50PW47dGhpcy5yZXF1ZXN0S2V5PVc7dGhpcy5OPUR9Wmoobil7cmV0dXJuIEgzKHRoaXMsbixuZXcgeFksMCl9fTt2YXIgVEg9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5vcHRpb25zPW47dGhpcy5WPW5ldyBnLktWO3RoaXMuT3Y9dGhpcy5WLnByb21pc2U7dGhpcy5qPW5ldyBnLktWO3RoaXMuWT0xO3RoaXMuSj1uZXcgZy5LVjt0aGlzLlg9W107dGhpcy5pc1BhdXNlZD0hMTt0aGlzLnFKPW4ucUp8fCgoKT0+e30pOwp0aGlzLmxvZ2dlcj1uZXcgVzUxKExWKG4ueDN8fHt9KSk7ckFiKHRoaXMsbi5VZyxuLnFULG4ucVUsbi5USCx7Li4ueEdqLC4uLihuLmtkfHx7fSl9KTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIHNQMih0aGlzKSl9YXN5bmMgc25hcHNob3Qobil7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJBbHJlYWR5IGRpc3Bvc2VkIik7CnRoaXMuV3x8dGhpcy5LfHxhd2FpdCB0aGlzLmoucHJvbWlzZTtpZih0aGlzLlcpcmV0dXJuIGF3YWl0IHRoaXMuVy5zbmFwc2hvdChuKTt0aHJvdyB0aGlzLks7fXBhdXNlKCl7dGhpcy5xTigpfHx0aGlzLmlzUGF1c2VkfHwodGhpcy5pc1BhdXNlZD0hMCx0aGlzLk4mJnRoaXMuTi5wYXVzZSgpKX1yZXN1bWUoKXshdGhpcy5xTigpJiZ0aGlzLmlzUGF1c2VkJiYodGhpcy5pc1BhdXNlZD0hMSx0aGlzLk4mJnRoaXMuTi5yZXN1bWUoKSl9YXN5bmMgY2hlY2tGb3JSZWZyZXNoKCl7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJBbHJlYWR5IGRpc3Bvc2VkIik7aWYodGhpcy5OKXt2YXIgbj10aGlzLk47bi5pc0V4cGlyZWQoKT8oT2wobiksbi5RNCgwKSxuPSEwKTpuPSExO24mJmF3YWl0IHRoaXMuSi5wcm9taXNlfWVsc2UgYXdhaXQgdGhpcy5KLnByb21pc2V9UzEobil7dGhpcy5XPy5TMT8uKG4pfWhhbmRsZUVycm9yKG4pe3RoaXMucU4oKXx8KHRoaXMuSz1uLHRoaXMuai5yZXNvbHZlKCksCnRoaXMub3B0aW9ucy50Nj8uKG4pKX1RRCgpe3JldHVybiB0aGlzLmxvZ2dlci5zaGFyZSgpfX0seEdqPXtGWjo0MzJFNSx1bTozRTUsbmI6MTAsamQ6MUU0LGhwOjNFNCxRWDozRTQscUs6NkU0LENxOjFFMyx3ODo2RTQsb3o6NkU1LGQ4Oi4yNSxBaToyLG1heEF0dGVtcHRzOjEwfSxTbT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5lbmRUaW1lTXM9MDt0aGlzLk49bnVsbDt0aGlzLmlzUGF1c2VkPSExO3RoaXMudGljaz0oKT0+e2lmKCF0aGlzLmlzUGF1c2VkKXt2YXIgYj10aGlzLmVuZFRpbWVNcy1EYXRlLm5vdygpO2I8PXRoaXMuVz8odGhpcy5OPW51bGwsdGhpcy5RNCgwKSk6dGhpcy5OPXNldFRpbWVvdXQodGhpcy50aWNrLE1hdGgubWluKGIsdGhpcy51bSkpfX07CnRoaXMudW09Vzt0aGlzLlc9RDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoYj0+e3RoaXMuUTQ9Yn0pOwpZVFUodGhpcyxuKX1wYXVzZSgpe3RoaXMuaXNQYXVzZWR8fCh0aGlzLmlzUGF1c2VkPSEwLE9sKHRoaXMpKX1yZXN1bWUoKXt0aGlzLmlzUGF1c2VkJiYodGhpcy5pc1BhdXNlZD0hMSx0aGlzLnRpY2soKSl9Sigpe09sKHRoaXMpO3RoaXMuZW5kVGltZU1zPTA7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLlE0KDEpfWlzRXhwaXJlZCgpe3JldHVybiBEYXRlLm5vdygpPnRoaXMuZW5kVGltZU1zfX07dmFyIEhwaT1NYXRoLmltdWw/PygobixXKT0+bipXfDApLFVsPVsxOTYsCjIwMCwyMjQsMThdLHVuPWNsYXNze2NvbnN0cnVjdG9yKG4sVz0wLEQ9W10pe3RoaXMubWF4SXRlbXM9bjt0aGlzLk49Vzt0aGlzLko9RH1iWSgpe3JldHVybiBTdHJpbmcodGhpcy5OKSsiLCIrdGhpcy5KLmpvaW4oKX1xcChuLFcpe3ZhciBEPXZvaWQgMDtpZih0aGlzLkpbdGhpcy5OXSE9PW4pe2xldCBiPXRoaXMuSi5pbmRleE9mKG4pO2IhPT0tMT8odGhpcy5KLnNwbGljZShiLDEpLGI8dGhpcy5OJiZ0aGlzLk4tLSx0aGlzLkouc3BsaWNlKHRoaXMuTiwwLG4pKTooRD10aGlzLkpbdGhpcy5OXSx0aGlzLkpbdGhpcy5OXT1uKX10aGlzLk49KHRoaXMuTisxKSV0aGlzLm1heEl0ZW1zO249UDMoImlVNXEtIU85QCQiLHRoaXMuYlkoKSk7RCYmbiYmVyhEKTtyZXR1cm4gbn19LEw1Uz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMubG9nZ2VyPVc7dHJ5e3ZhciBEPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UmJiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtJiYhIWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSYmCiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtfWNhdGNoKGIpe0Q9ITF9RCYmKHRoaXMuaW5kZXg9SWV3KG4pKX1OKG4sVyxELGIpe3ZhciB2PXRoaXMuaW5kZXg/djModGhpcy5sb2dnZXIsKCk9PmZlYih0aGlzLmluZGV4LHlpKG4pLFcsRCxiKSwiVyIpOiJ1IjsKdGhpcy5sb2dnZXIuTyh2KX1KKG4sVyl7dmFyIFtELGJdPXRoaXMuaW5kZXg/djModGhpcy5sb2dnZXIsKCk9PkpBdyh5aShuKSxXKSwiUiIpOlsidSJdOwp0aGlzLmxvZ2dlci5LKEQpO3JldHVybiBifX07dmFyIEFBUz17dG9TdHJpbmc6ZnVuY3Rpb24obil7dmFyIFc9W10sRD0wO24tPS0yMTQ3NDgzNjQ4O1dbRCsrXT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KG4lNTIpO2ZvcihuPU1hdGguZmxvb3Iobi81Mik7bj4wOylXW0QrK109ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5Ii5jaGFyQXQobiU2Miksbj1NYXRoLmZsb29yKG4vNjIpO3JldHVybiBXLmpvaW4oIiIpfX07dmFyIFFwPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMubG9nZ2VyPW47dGhpcy5YPW5ldyBnLktWfVpSKG4sVyl7dmFyIEQ9dGhpcy5XKG4pO1c/LihEKTtyZXR1cm4gdjModGhpcy5sb2dnZXIsKCk9PmcuRUEoRCwyKSx0aGlzLkopfUZwKG4sVyxEKXtyZXR1cm4gdjModGhpcy5sb2dnZXIsKCk9Plc/dGhpcy5aUihuLEQpOnRoaXMuVyhuLEQpLHRoaXMuTil9fSxGNj1jbGFzcyBleHRlbmRzIFFwe2NvbnN0cnVjdG9yKG4sVyxELGIpe3N1cGVyKG4pOwp0aGlzLmo9Vzt0aGlzLks9RDt0aGlzLk49Im0iO3RoaXMuSj0ieCI7dGhpcy5WPTA7ZCQodGhpcyxiKX1XKG4sVyl7dGhpcy5sb2dnZXIuTih0aGlzLk4pOysrdGhpcy5WPj10aGlzLksmJnRoaXMuWC5yZXNvbHZlKCk7dmFyIEQ9bigpO249djModGhpcy5sb2dnZXIsKCk9PnRoaXMuaihEKSwiQyIpOwppZihuPT09dm9pZCAwKXRocm93IG5ldyBRRygxNywiWU5KOlVuZGVmaW5lZCIpO2lmKCEobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBRRygxOCwiT0RNOkludmFsaWQiKTtXPy4obik7cmV0dXJuIG59fSxVaGo9Y2xhc3MgZXh0ZW5kcyBRcHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIobik7dGhpcy5qPVc7dGhpcy5OPSJmIjt0aGlzLko9InoiO2QkKHRoaXMsRCl9Vygpe3JldHVybiB0aGlzLmp9fSxacHQ9Y2xhc3MgZXh0ZW5kcyBRcHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIobik7dGhpcy5qPVc7dGhpcy5OPSJ3Ijt0aGlzLko9InoiO2QkKHRoaXMsRCl9Vygpe3JldHVybiB2Myh0aGlzLmxvZ2dlciwoKT0+bHAodGhpcy5qKSwiZCIpfVpSKCl7cmV0dXJuIHRoaXMuan19LG9sdz1jbGFzcyBleHRlbmRzIFFwe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIobik7CnRoaXMuZXJyb3I9Vzt0aGlzLk49ImUiO3RoaXMuSj0ieSJ9Vygpe2lmKHRoaXMuailyZXR1cm4gdGhpcy5qO3RoaXMuaj1sbih0aGlzLG49PiJfIittaHcobikpOwpyZXR1cm4gbG4odGhpcyxuPT5uKX19LFFpPWNsYXNzIGV4dGVuZHMgUXB7Y29uc3RydWN0b3IobixXLEQpe3N1cGVyKG4pOwp0aGlzLmo9Vzt0aGlzLmNsaWVudFN0YXRlPUQ7dGhpcy5OPSJTIjt0aGlzLko9InEifVcoKXt2YXIgbj1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxXPVtNYXRoLnJhbmRvbSgpKjI1NSxNYXRoLnJhbmRvbSgpKjI1NV0sRD1XLmNvbmNhdChbdGhpcy5qJjI1NSx0aGlzLmNsaWVudFN0YXRlXSxbbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV0pO249bmV3IFVpbnQ4QXJyYXkoMitELmxlbmd0aCk7blswXT0zNDtuWzFdPUQubGVuZ3RoO24uc2V0KEQsMik7RD1uLnN1YmFycmF5KDIpO1c9Vy5sZW5ndGg7Zm9yKGxldCBiPVc7YjxELmxlbmd0aDsrK2IpRFtiXV49RFtiJVddO3RoaXMubG9nZ2VyLmNKKHRoaXMuY2xpZW50U3RhdGUpO3JldHVybiBufX07dmFyIGVZaT17WFU6M0U0LHJTOjJFNH0sQW10PWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuWD1uZXcgZy5LVjt0aGlzLmo9MDt0aGlzLko9dm9pZCAwO3RoaXMuc3RhdGU9Mjt0aGlzLk8xPW4uTzE7dGhpcy5VZz1uLlVnO3RoaXMua2Q9ey4uLmVZaSwuLi4obi5rZHx8e30pfTt0aGlzLmxvZ2dlcj1uLk8xLlFEKCk7dGhpcy5vbkVycm9yPW4ub25FcnJvcj8/KCgpPT57fSk7CnRoaXMuWGw9bi5YbHx8ITE7aWYoZ2R0KG4pKXtsZXQgYj10aGlzLk8xO3RoaXMuVj0oKT0+TlR0KGIpLmNhdGNoKHY9Pnt0aGlzLko9dj10aGlzLnJlcG9ydEVycm9yKG5ldyBRRyh0aGlzLk4/MjA6MzIsIlRSRzpEaXNwb3NlZCIsdikpO3RoaXMuTj8uZGlzcG9zZSgpO3RoaXMuTj12b2lkIDA7dGhpcy5YLnJlamVjdCh2KX0pOwpwNGkoYiwoKT0+dm9pZCBCMyh0aGlzKSk7CmIuWT09PTImJkIzKHRoaXMpfWVsc2UgdGhpcy5WPW4uRTYsQjModGhpcyk7dmFyIFc9dGhpcy5sb2dnZXIuc2hhcmUoKTtXLk4oIm8iKTt2YXIgRD1uZXcgTWwoVywibyIpO3RoaXMuWC5wcm9taXNlLnRoZW4oKCk9PntELmRvbmUoKTtXLlcoKTtXLmRpc3Bvc2UoKX0sKCk9PnZvaWQgVy5kaXNwb3NlKCkpOwp0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy5OPyh0aGlzLk4uZGlzcG9zZSgpLHRoaXMuTj12b2lkIDApOnRoaXMuSj90aGlzLmxvZ2dlci5XKCk6KHRoaXMuSj10aGlzLnJlcG9ydEVycm9yKG5ldyBRRygzMiwiVE5QOkRpc3Bvc2VkIikpLHRoaXMubG9nZ2VyLlcoKSx0aGlzLlgucmVqZWN0KHRoaXMuSikpfSk7CmcudSh0aGlzLHRoaXMubG9nZ2VyKX1IJCgpe3JldHVybiB0aGlzLlgucHJvbWlzZX1XKG4pe3JldHVybiBNdih0aGlzLHsuLi5ufSwhMSl9WlIobil7cmV0dXJuIE12KHRoaXMsey4uLm59LCEwKX15aChuKXtpZighKG4+MTUwKSl0cnl7dGhpcy5jYWNoZT1uZXcgTDVTKG4sdGhpcy5sb2dnZXIpfWNhdGNoKFcpe3RoaXMucmVwb3J0RXJyb3IobmV3IFFHKDIyLCJHQko6aW5pdCIsVykpfX1yZXBvcnRFcnJvcihuKXt0aGlzLmxvZ2dlci5KKG4uY29kZSk7dGhpcy5vbkVycm9yKG4pO3JldHVybiBufX0sZ2R0PWZ1bmN0aW9uKG4pe3JldHVybiBxMyhXPT57aWYoIWtDeChXKSlyZXR1cm4hMTtmb3IobGV0IFtELGJdb2YgT2JqZWN0LmVudHJpZXMobikpe2xldCB2PUQsaz1iO2lmKCEodiBpbiBXKSl7aWYoay5LUD09PSEwKWNvbnRpbnVlO3JldHVybiExfWlmKCFrKFdbdl0pKXJldHVybiExfXJldHVybiEwfSl9KHtPMTpxMyhuPT5uIGluc3RhbmNlb2YgVEgpfSwiIik7dmFyIHFuaT1jbGFzc3tjb25zdHJ1Y3Rvcigpe2lmKCFWcCl7VnA9bmV3IGhxKG5ldyBYbkMpO3ZhciBuPXYwKCJjbGllbnRfc3RyZWFtel93ZWJfZmx1c2hfY291bnQiLC0xKTtuIT09LTEmJihWcC5YPW4pfXRoaXMuVz1uPVZwO3VlKG4sIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiLERYKCJ0eXBlIiksRFgoInNlcXVlbmNlIikpfUoobixXKXtkcCh0aGlzLlcsIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L3lvdXR1YmUvYWJhL2dhYyIpfX07Zy5jcT1kb2N1bWVudDtnLncyPXdpbmRvdzt2YXIgZGhaPXtIdToiYWxsb3ctZm9ybXMiLFVpOiJhbGxvdy1tb2RhbHMiLEdvOiJhbGxvdy1vcmllbnRhdGlvbi1sb2NrIixFaToiYWxsb3ctcG9pbnRlci1sb2NrIixNTToiYWxsb3ctcG9wdXBzIixmRToiYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IixGODoiYWxsb3ctcHJlc2VudGF0aW9uIixEczoiYWxsb3ctc2FtZS1vcmlnaW4iLHZ1OiJhbGxvdy1zY3JpcHRzIixPaToiYWxsb3ctdG9wLW5hdmlnYXRpb24iLGdNOiJhbGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24ifSxsZVM9Zy53RCgoKT0+ekhpKCkpO2cuRT1nLmJyLnByb3RvdHlwZTtnLkUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGcuYnIodGhpcy5sZWZ0LHRoaXMudG9wLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKZy5FLmNvbnRhaW5zPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgZy5NWT9uLng+PXRoaXMubGVmdCYmbi54PD10aGlzLmxlZnQrdGhpcy53aWR0aCYmbi55Pj10aGlzLnRvcCYmbi55PD10aGlzLnRvcCt0aGlzLmhlaWdodDp0aGlzLmxlZnQ8PW4ubGVmdCYmdGhpcy5sZWZ0K3RoaXMud2lkdGg+PW4ubGVmdCtuLndpZHRoJiZ0aGlzLnRvcDw9bi50b3AmJnRoaXMudG9wK3RoaXMuaGVpZ2h0Pj1uLnRvcCtuLmhlaWdodH07CmcuRS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnLlFlKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5jZWlsKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGguZmxvb3IodGhpcy5sZWZ0KTt0aGlzLnRvcD1NYXRoLmZsb29yKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguZmxvb3IodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9OwpnLkUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307CmcuRS5zY2FsZT1mdW5jdGlvbihuLFcpe1c9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47dGhpcy5sZWZ0Kj1uO3RoaXMud2lkdGgqPW47dGhpcy50b3AqPVc7dGhpcy5oZWlnaHQqPVc7cmV0dXJuIHRoaXN9O3ZhciBqUEM9L14tLS4rLyxMVz17fTtnLkdFMj1nLndEKCgpPT57dmFyIG49ITE7dHJ5e2xldCBXPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldCgpe249ITB9fSk7Zy5xaS5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFcpfWNhdGNoKFcpe31yZXR1cm4gbn0pO3ZhciB6Q3c9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIHRJdD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgJEcxPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmZ2PW47dGhpcy5sMD1XO3RoaXMubWV0YWRhdGE9RH1nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfX07dmFyIEJUdD1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9e30pe3RoaXMuUHo9bjt0aGlzLm1ldGFkYXRhPVc7dGhpcy5zdGF0dXM9bnVsbH1nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfWdldFN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c319O3ZhciByc3c9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLm5hbWU9bjt0aGlzLm1ldGhvZFR5cGU9InVuYXJ5Ijt0aGlzLnJlcXVlc3RUeXBlPVc7dGhpcy5yZXNwb25zZVR5cGU9RDt0aGlzLk49Yjt0aGlzLlc9dn1KKG4sVz17fSl7cmV0dXJuIG5ldyAkRzEobix0aGlzLFcpfWdldE5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lfX07dmFyIHNPTT1uZXcgcnN3KCIvZ29vZ2xlLmludGVybmFsLndhYS52MS5XYWEvQ3JlYXRlIiwkWSx0SXQsbj0+bi5iWSgpLEs4KHRJdCkpO3ZhciBOUDI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHFUUz1uZXcgcnN3KCIvZ29vZ2xlLmludGVybmFsLndhYS52MS5XYWEvR2VuZXJhdGVJVCIsTnYsTlAyLG49Pm4uYlkoKSxLOChOUDIpKTt2YXIgWDJyPW5ldyBTZXQoWyJTQVBJU0lESEFTSCIsIkFQSVNJREhBU0giXSk7dmFyIFJIaT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Z2V0VmFsdWUoKXt2YXIgbj1pVyh0aGlzLDIpO2lmKEFycmF5LmlzQXJyYXkobil8fG4gaW5zdGFuY2VvZiBnLlFtKXRocm93IEVycm9yKCJDYW5ub3QgYWNjZXNzIHRoZSBBbnkudmFsdWUgZmllbGQgb24gQW55IHByb3RvcyBlbmNvZGVkIHVzaW5nIHRoZSBqc3BiIGZvcm1hdCwgY2FsbCB1bnBhY2tKc3BiIGluc3RlYWQiKTtyZXR1cm4gUnoodGhpcywyKX19O3ZhciBNMWI9SzgoY2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfWdldE1lc3NhZ2UoKXtyZXR1cm4gWTkodGhpcywyKX19KTt2YXIgdHUxPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5KPVtdO3RoaXMuWD1bXTt0aGlzLmo9W107dGhpcy5XPVtdO3RoaXMuTj1bXTt0aGlzLlY9bi5NRTt0aGlzLks9Vzt0aGlzLnhocj1uLnhocjt0aGlzLlYmJnc0cih0aGlzKX14VihuLFcpe249PT0iZGF0YSI/dGhpcy5KLnB1c2goVyk6bj09PSJtZXRhZGF0YSI/dGhpcy5YLnB1c2goVyk6bj09PSJzdGF0dXMiP3RoaXMuai5wdXNoKFcpOm49PT0iZW5kIj90aGlzLlcucHVzaChXKTpuPT09ImVycm9yIiYmdGhpcy5OLnB1c2goVyl9cmVtb3ZlTGlzdGVuZXIobixXKXtuPT09ImRhdGEiP0ExKHRoaXMuSixXKTpuPT09Im1ldGFkYXRhIj9BMSh0aGlzLlgsVyk6bj09PSJzdGF0dXMiP0ExKHRoaXMuaixXKTpuPT09ImVuZCI/QTEodGhpcy5XLFcpOm49PT0iZXJyb3IiJiZBMSh0aGlzLk4sVyk7cmV0dXJuIHRoaXN9Y2FuY2VsKCl7dGhpcy54aHIuYWJvcnQoKX19LFFQUz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKTsKdGhpcy5uYW1lPSJBc3luY1N0YWNrIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTtnLml4KG1HLEJKKTttRy5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3ZhciBuPW5ldyBLVyh0aGlzLlgsdGhpcy5XKTt0aGlzLkomJm4uc2V0Q3JlZGVudGlhbHNNb2RlKHRoaXMuSik7cmV0dXJuIG59OwptRy5wcm90b3R5cGUuc2V0Q3JlZGVudGlhbHNNb2RlPWZ1bmN0aW9uKG4pe3RoaXMuSj1ufTsKZy5peChLVyxnLm9XKTtnLkU9S1cucHJvdG90eXBlO2cuRS5vcGVuPWZ1bmN0aW9uKG4sVyl7aWYodGhpcy5yZWFkeVN0YXRlIT0wKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO3RoaXMuY0o9bjt0aGlzLk89Vzt0aGlzLnJlYWR5U3RhdGU9MTtQWSh0aGlzKX07CmcuRS5zZW5kPWZ1bmN0aW9uKG4pe2lmKHRoaXMucmVhZHlTdGF0ZSE9MSl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIm5lZWQgdG8gY2FsbCBvcGVuKCkgZmlyc3QuICIpO2lmKHRoaXMuWS5zaWduYWwuYWJvcnRlZCl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIik7dGhpcy5OPSEwO3ZhciBXPXtoZWFkZXJzOnRoaXMuRCxtZXRob2Q6dGhpcy5jSixjcmVkZW50aWFsczp0aGlzLmosY2FjaGU6dm9pZCAwLHNpZ25hbDp0aGlzLlkuc2lnbmFsfTtuJiYoVy5ib2R5PW4pOyh0aGlzLnR3fHxnLnFpKS5mZXRjaChuZXcgUmVxdWVzdCh0aGlzLk8sVykpLnRoZW4odGhpcy5HRS5iaW5kKHRoaXMpLHRoaXMuRFAuYmluZCh0aGlzKSl9OwpnLkUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PSIiO3RoaXMuRD1uZXcgSGVhZGVyczt0aGlzLnN0YXR1cz0wO3RoaXMuWS5hYm9ydCgiUmVxdWVzdCB3YXMgYWJvcnRlZC4iKTt0aGlzLlcmJnRoaXMuVy5jYW5jZWwoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIikuY2F0Y2goKCk9Pnt9KTsKdGhpcy5yZWFkeVN0YXRlPj0xJiZ0aGlzLk4mJnRoaXMucmVhZHlTdGF0ZSE9NCYmKHRoaXMuTj0hMSxaYSh0aGlzKSk7dGhpcy5yZWFkeVN0YXRlPTB9OwpnLkUuR0U9ZnVuY3Rpb24obil7aWYodGhpcy5OJiYodGhpcy5YPW4sdGhpcy5KfHwodGhpcy5zdGF0dXM9dGhpcy5YLnN0YXR1cyx0aGlzLnN0YXR1c1RleHQ9dGhpcy5YLnN0YXR1c1RleHQsdGhpcy5KPW4uaGVhZGVycyx0aGlzLnJlYWR5U3RhdGU9MixQWSh0aGlzKSksdGhpcy5OJiYodGhpcy5yZWFkeVN0YXRlPTMsUFkodGhpcyksdGhpcy5OKSkpaWYodGhpcy5yZXNwb25zZVR5cGU9PT0iYXJyYXlidWZmZXIiKW4uYXJyYXlCdWZmZXIoKS50aGVuKHRoaXMuSFQuYmluZCh0aGlzKSx0aGlzLkRQLmJpbmQodGhpcykpO2Vsc2UgaWYodHlwZW9mIGcucWkuUmVhZGFibGVTdHJlYW0hPT0idW5kZWZpbmVkIiYmImJvZHkiaW4gbil7dGhpcy5XPW4uYm9keS5nZXRSZWFkZXIoKTtpZih0aGlzLlYpe2lmKHRoaXMucmVzcG9uc2VUeXBlKXRocm93IEVycm9yKCdyZXNwb25zZVR5cGUgbXVzdCBiZSBlbXB0eSBmb3IgInN0cmVhbUJpbmFyeUNodW5rcyIgbW9kZSByZXNwb25zZXMuJyk7dGhpcy5yZXNwb25zZT0KW119ZWxzZSB0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PSIiLHRoaXMuSz1uZXcgVGV4dERlY29kZXI7T2oodGhpcyl9ZWxzZSBuLnRleHQoKS50aGVuKHRoaXMuVUQuYmluZCh0aGlzKSx0aGlzLkRQLmJpbmQodGhpcykpfTsKZy5FLmxFPWZ1bmN0aW9uKG4pe2lmKHRoaXMuTil7aWYodGhpcy5WJiZuLnZhbHVlKXRoaXMucmVzcG9uc2UucHVzaChuLnZhbHVlKTtlbHNlIGlmKCF0aGlzLlYpe3ZhciBXPW4udmFsdWU/bi52YWx1ZTpuZXcgVWludDhBcnJheSgwKTtpZihXPXRoaXMuSy5kZWNvZGUoVyx7c3RyZWFtOiFuLmRvbmV9KSl0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1XfW4uZG9uZT9aYSh0aGlzKTpQWSh0aGlzKTt0aGlzLnJlYWR5U3RhdGU9PTMmJk9qKHRoaXMpfX07CmcuRS5VRD1mdW5jdGlvbihuKXt0aGlzLk4mJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PW4sWmEodGhpcykpfTsKZy5FLkhUPWZ1bmN0aW9uKG4pe3RoaXMuTiYmKHRoaXMucmVzcG9uc2U9bixaYSh0aGlzKSl9OwpnLkUuRFA9ZnVuY3Rpb24oKXt0aGlzLk4mJlphKHRoaXMpfTsKZy5FLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24obixXKXt0aGlzLkQuYXBwZW5kKG4sVyl9OwpnLkUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuSj90aGlzLkouZ2V0KG4udG9Mb3dlckNhc2UoKSl8fCIiOiIifTsKZy5FLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe2lmKCF0aGlzLkopcmV0dXJuIiI7Zm9yKHZhciBuPVtdLFc9dGhpcy5KLmVudHJpZXMoKSxEPVcubmV4dCgpOyFELmRvbmU7KUQ9RC52YWx1ZSxuLnB1c2goRFswXSsiOiAiK0RbMV0pLEQ9Vy5uZXh0KCk7cmV0dXJuIG4uam9pbigiXHJcbiIpfTsKZy5FLnNldENyZWRlbnRpYWxzTW9kZT1mdW5jdGlvbihuKXt0aGlzLmo9bn07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShLVy5wcm90b3R5cGUsIndpdGhDcmVkZW50aWFscyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT0iaW5jbHVkZSJ9LApzZXQ6ZnVuY3Rpb24obil7dGhpcy5zZXRDcmVkZW50aWFsc01vZGUobj8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIil9fSk7Zy5Vai5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgbj1bXSxXPXRoaXMuWDtXJiZuLnB1c2goek4oVyxwbngsITApLCI6Iik7dmFyIEQ9dGhpcy5OO2lmKER8fFc9PSJmaWxlIiluLnB1c2goIi8vIiksKFc9dGhpcy5ZKSYmbi5wdXNoKHpOKFcscG54LCEwKSwiQCIpLG4ucHVzaChxaChEKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxEPXRoaXMuVixEIT1udWxsJiZuLnB1c2goIjoiLFN0cmluZyhEKSk7aWYoRD10aGlzLkopdGhpcy5OJiZELmNoYXJBdCgwKSE9Ii8iJiZuLnB1c2goIi8iKSxuLnB1c2goek4oRCxELmNoYXJBdCgwKT09Ii8iP1luTTpIN2osITApKTsoRD10aGlzLlcudG9TdHJpbmcoKSkmJm4ucHVzaCgiPyIsRCk7KEQ9dGhpcy5qKSYmbi5wdXNoKCIjIix6TihELGZVYikpO3JldHVybiBuLmpvaW4oIiIpfTsKZy5Vai5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihuKXt2YXIgVz10aGlzLmNsb25lKCksRD0hIW4uWDtEP3lOKFcsbi5YKTpEPSEhbi5ZO0Q/Vy5ZPW4uWTpEPSEhbi5OO0Q/RWooVyxuLk4pOkQ9bi5WIT1udWxsO3ZhciBiPW4uSjtpZihEKWlyKFcsbi5WKTtlbHNlIGlmKEQ9ISFuLkope2lmKGIuY2hhckF0KDApIT0iLyIpaWYodGhpcy5OJiYhdGhpcy5KKWI9Ii8iK2I7ZWxzZXt2YXIgdj1XLkoubGFzdEluZGV4T2YoIi8iKTt2IT0tMSYmKGI9Vy5KLnNsaWNlKDAsdisxKStiKX12PWI7aWYodj09Ii4uInx8dj09Ii4iKWI9IiI7ZWxzZSBpZih2LmluZGV4T2YoIi4vIikhPS0xfHx2LmluZGV4T2YoIi8uIikhPS0xKXtiPWcualUodiwiLyIpO3Y9di5zcGxpdCgiLyIpO2xldCBrPVtdO2ZvcihsZXQgaD0wO2g8di5sZW5ndGg7KXtsZXQgeD12W2grK107eD09Ii4iP2ImJmg9PXYubGVuZ3RoJiZrLnB1c2goIiIpOng9PSIuLiI/KChrLmxlbmd0aD4xfHxrLmxlbmd0aD09MSYma1swXSE9CiIiKSYmay5wb3AoKSxiJiZoPT12Lmxlbmd0aCYmay5wdXNoKCIiKSk6KGsucHVzaCh4KSxiPSEwKX1iPWsuam9pbigiLyIpfWVsc2UgYj12fUQ/Vy5KPWI6RD1uLlcudG9TdHJpbmcoKSE9PSIiO0Q/dXIoVyxuLlcuY2xvbmUoKSk6RD0hIW4uajtEJiYoVy5qPW4uaik7cmV0dXJuIFd9OwpnLlVqLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZy5Vaih0aGlzKX07CnZhciBwbng9L1sjXC9cP0BdL2csSDdqPS9bI1w/Ol0vZyxZbk09L1sjXD9dL2csRHhTPS9bI1w/QF0vZyxmVWI9LyMvZztnLkU9ZGgucHJvdG90eXBlO2cuRS5hZGQ9ZnVuY3Rpb24obixXKXtUTih0aGlzKTt0aGlzLlc9bnVsbDtuPWpTKHRoaXMsbik7dmFyIEQ9dGhpcy5OLmdldChuKTtEfHx0aGlzLk4uc2V0KG4sRD1bXSk7RC5wdXNoKFcpO3RoaXMuSj10aGlzLkorMTtyZXR1cm4gdGhpc307CmcuRS5yZW1vdmU9ZnVuY3Rpb24obil7VE4odGhpcyk7bj1qUyh0aGlzLG4pO3JldHVybiB0aGlzLk4uaGFzKG4pPyh0aGlzLlc9bnVsbCx0aGlzLko9dGhpcy5KLXRoaXMuTi5nZXQobikubGVuZ3RoLHRoaXMuTi5kZWxldGUobikpOiExfTsKZy5FLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5OPXRoaXMuVz1udWxsO3RoaXMuSj0wfTsKZy5FLmlzRW1wdHk9ZnVuY3Rpb24oKXtUTih0aGlzKTtyZXR1cm4gdGhpcy5KPT0wfTsKZy5FLmZvckVhY2g9ZnVuY3Rpb24obixXKXtUTih0aGlzKTt0aGlzLk4uZm9yRWFjaChmdW5jdGlvbihELGIpe0QuZm9yRWFjaChmdW5jdGlvbih2KXtuLmNhbGwoVyx2LGIsdGhpcyl9LHRoaXMpfSx0aGlzKX07CmcuRS51Qj1mdW5jdGlvbigpe1ROKHRoaXMpO3ZhciBuPUFycmF5LmZyb20odGhpcy5OLnZhbHVlcygpKSxXPUFycmF5LmZyb20odGhpcy5OLmtleXMoKSksRD1bXTtmb3IobGV0IGI9MDtiPFcubGVuZ3RoO2IrKyl7bGV0IHY9bltiXTtmb3IobGV0IGs9MDtrPHYubGVuZ3RoO2srKylELnB1c2goV1tiXSl9cmV0dXJuIER9OwpnLkUuejc9ZnVuY3Rpb24obil7VE4odGhpcyk7dmFyIFc9W107aWYodHlwZW9mIG49PT0ic3RyaW5nIilDVyh0aGlzLG4pJiYoVz1XLmNvbmNhdCh0aGlzLk4uZ2V0KGpTKHRoaXMsbikpKSk7ZWxzZXtuPUFycmF5LmZyb20odGhpcy5OLnZhbHVlcygpKTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXPVcuY29uY2F0KG5bRF0pfXJldHVybiBXfTsKZy5FLnNldD1mdW5jdGlvbihuLFcpe1ROKHRoaXMpO3RoaXMuVz1udWxsO249alModGhpcyxuKTtDVyh0aGlzLG4pJiYodGhpcy5KPXRoaXMuSi10aGlzLk4uZ2V0KG4pLmxlbmd0aCk7dGhpcy5OLnNldChuLFtXXSk7dGhpcy5KPXRoaXMuSisxO3JldHVybiB0aGlzfTsKZy5FLmdldD1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybiBXO249dGhpcy56NyhuKTtyZXR1cm4gbi5sZW5ndGg+MD9TdHJpbmcoblswXSk6V307CmcuRS50b1N0cmluZz1mdW5jdGlvbigpe2lmKHRoaXMuVylyZXR1cm4gdGhpcy5XO2lmKCF0aGlzLk4pcmV0dXJuIiI7dmFyIG49W10sVz1BcnJheS5mcm9tKHRoaXMuTi5rZXlzKCkpO2ZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKXt2YXIgRD1XW2JdO2xldCB2PXFoKEQpO0Q9dGhpcy56NyhEKTtmb3IobGV0IGs9MDtrPEQubGVuZ3RoO2srKyl7bGV0IGg9djtEW2tdIT09IiImJihoKz0iPSIrcWgoRFtrXSkpO24ucHVzaChoKX19cmV0dXJuIHRoaXMuVz1uLmpvaW4oIiYiKX07CmcuRS5jbG9uZT1mdW5jdGlvbigpe3ZhciBuPW5ldyBkaDtuLlc9dGhpcy5XO3RoaXMuTiYmKG4uTj1uZXcgTWFwKHRoaXMuTiksbi5KPXRoaXMuSik7cmV0dXJuIG59OwpnLkUuZXh0ZW5kPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wO1c8YXJndW1lbnRzLmxlbmd0aDtXKyspbktpKGFyZ3VtZW50c1tXXSxmdW5jdGlvbihELGIpe3RoaXMuYWRkKGIsRCl9LHRoaXMpfTtnLml4KEJZLGcuRk0pO3ZhciBKc2o9W107Zy5FPUJZLnByb3RvdHlwZTtnLkUuU189ZnVuY3Rpb24obixXLEQsYil7QXJyYXkuaXNBcnJheShXKXx8KFcmJihKc2pbMF09Vy50b1N0cmluZygpKSxXPUpzaik7Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPUFIKG4sV1t2XSxEfHx0aGlzLmhhbmRsZUV2ZW50LGJ8fCExLHRoaXMuSnx8dGhpcyk7aWYoIWspYnJlYWs7dGhpcy5OW2sua2V5XT1rfXJldHVybiB0aGlzfTsKZy5FLmVGPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiBGbSh0aGlzLG4sVyxELGIpfTsKZy5FLndIPWZ1bmN0aW9uKG4sVyxELGIsdil7aWYoQXJyYXkuaXNBcnJheShXKSlmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKyl0aGlzLndIKG4sV1trXSxELGIsdik7ZWxzZSBEPUR8fHRoaXMuaGFuZGxlRXZlbnQsYj1nLmZ0KGIpPyEhYi5jYXB0dXJlOiEhYix2PXZ8fHRoaXMuSnx8dGhpcyxEPW1oKEQpLGI9ISFiLFc9TjUobik/bi5zYyhXLEQsYix2KTpuPyhuPU8yKG4pKT9uLnNjKFcsRCxiLHYpOm51bGw6bnVsbCxXJiYoRTIoVyksZGVsZXRlIHRoaXMuTltXLmtleV0pfTsKZy5FLlRpPWZ1bmN0aW9uKCl7Zy5hXyh0aGlzLk4sZnVuY3Rpb24obixXKXt0aGlzLk4uaGFzT3duUHJvcGVydHkoVykmJkUyKG4pfSx0aGlzKTsKdGhpcy5OPXt9fTsKZy5FLm1BPWZ1bmN0aW9uKCl7QlkuVEIubUEuY2FsbCh0aGlzKTt0aGlzLlRpKCl9OwpnLkUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRXZlbnRIYW5kbGVyLmhhbmRsZUV2ZW50IG5vdCBpbXBsZW1lbnRlZCIpO307dmFyIGtoUz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuVz0hMDt0aGlzLko9MDt0aGlzLk49IiJ9aXNJbnB1dFZhbGlkKCl7cmV0dXJuIHRoaXMuV319O010LnByb3RvdHlwZS5pc0lucHV0VmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OIT0zfTsKTXQucHJvdG90eXBlLnM4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVn07Ck10LnByb3RvdHlwZS5hbz1mdW5jdGlvbigpe3JldHVybiEwfTsKTXQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoTCl7TCYxMjgmJlJzKGssaCx4LCJpbnZhbGlkIHRhZyIpOyhMJjcpIT0yJiZScyhrLGgseCwiaW52YWxpZCB3aXJlIHR5cGUiKTtrLlc9TD4+PjM7ay5XIT0xJiZrLlchPTImJmsuVyE9MTUmJlJzKGssaCx4LCJ1bmV4cGVjdGVkIHRhZyIpO2suTj0xO2suSj0wO2suWD0wfQpmdW5jdGlvbiBEKEwpe2suWCsrO2suWD09NSYmTCYyNDAmJlJzKGssaCx4LCJtZXNzYWdlIGxlbmd0aCB0b28gbG9uZyIpO2suSnw9KEwmMTI3KTw8KGsuWC0xKSo3O0wmMTI4fHwoay5OPTIsay5ZPTAsdHlwZW9mIFVpbnQ4QXJyYXkhPT0idW5kZWZpbmVkIj9rLmo9bmV3IFVpbnQ4QXJyYXkoay5KKTprLmo9QXJyYXkoay5KKSxrLko9PTAmJnYoKSl9CmZ1bmN0aW9uIGIoTCl7ay5qW2suWSsrXT1MO2suWT09ay5KJiZ2KCl9CmZ1bmN0aW9uIHYoKXtpZihrLlc8MTUpe2xldCBMPXt9O0xbay5XXT1rLmo7ay5LLnB1c2goTCl9ay5OPTB9CmZvcih2YXIgaz10aGlzLGg9biBpbnN0YW5jZW9mIEFycmF5P246bmV3IFVpbnQ4QXJyYXkobikseD0wO3g8aC5sZW5ndGg7KXtzd2l0Y2goay5OKXtjYXNlIDM6UnMoayxoLHgsInN0cmVhbSBhbHJlYWR5IGJyb2tlbiIpO2JyZWFrO2Nhc2UgMDpXKGhbeF0pO2JyZWFrO2Nhc2UgMTpEKGhbeF0pO2JyZWFrO2Nhc2UgMjpiKGhbeF0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlOiAiK2suTik7fWsuRCsrO3grK31uPWsuSztrLks9W107cmV0dXJuIG4ubGVuZ3RoPjA/bjpudWxsfTtRTi5wcm90b3R5cGUuaXNJbnB1dFZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTj09PW51bGx9OwpRTi5wcm90b3R5cGUuczg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTsKUU4ucHJvdG90eXBlLmFvPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwpRTi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24obil7dGhpcy5OIT09bnVsbCYmVk4odGhpcyxuLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTt2YXIgVz1udWxsO3RyeXt7dmFyIEQ9dGhpcy5XO0QuV3x8d2goRCxuLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTtELk4rPW47bGV0IGs9TWF0aC5mbG9vcihELk4ubGVuZ3RoLzQpO2lmKGs9PTApdmFyIGI9bnVsbDtlbHNle3RyeXt2YXIgdj16aChELk4uc2xpY2UoMCxrKjQpKX1jYXRjaChoKXt3aChELEQuTixoLm1lc3NhZ2UpfUQuSis9ayo0O0QuTj1ELk4uc2xpY2Uoayo0KTtiPXZ9fVc9Yj09PW51bGw/bnVsbDp0aGlzLlgucGFyc2UoYil9Y2F0Y2goayl7Vk4odGhpcyxuLGsubWVzc2FnZSl9dGhpcy5KKz1uLmxlbmd0aDtyZXR1cm4gV307Zy5FPWFzLnByb3RvdHlwZTtnLkUuaXNJbnB1dFZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaiE9M307CmcuRS5zOD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkR9OwpnLkUuZG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT0yfTsKZy5FLmFvPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwpnLkUucGFyc2U9ZnVuY3Rpb24obil7ZnVuY3Rpb24gVygpe2Zvcig7cjxuLmxlbmd0aDspaWYoY1kobltyXSkpcisrLGsuVysrO2Vsc2UgYnJlYWs7cmV0dXJuIHI8TH0KZnVuY3Rpb24gRCgpe2Zvcih2YXIgSDs7KXtIPW5bcisrXTtpZighSClicmVhaztrLlcrKztzd2l0Y2goay5OKXtjYXNlIDA6SD09PSJ7Ij9rLk49MjpIPT09IlsiP2suTj00OmNZKEgpfHxuXyhrLG4scik7Y29udGludWU7Y2FzZSA3OmNhc2UgMjppZihjWShIKSljb250aW51ZTtpZihrLk49PT03KWgucHVzaCg4KTtlbHNlIGlmKEg9PT0ifSIpe3YoInt9Iik7ay5OPWIoKTtjb250aW51ZX1lbHNlIGgucHVzaCgzKTtIPT09JyInP2suTj02Om5fKGssbixyKTtjb250aW51ZTtjYXNlIDg6Y2FzZSAzOmlmKGNZKEgpKWNvbnRpbnVlO0g9PT0iOiI/KGsuTj09PTMmJihoLnB1c2goMyksay5KKyspLGsuTj0xKTpIPT09In0iPyhrLkotLSx2KCksay5OPWIoKSk6SD09PSIsIj8oay5OPT09MyYmaC5wdXNoKDMpLGsuTj03KTpuXyhrLG4scik7Y29udGludWU7Y2FzZSA0OmNhc2UgMTppZihjWShIKSljb250aW51ZTtpZihrLk49PT00KWlmKGsuSisrLGsuTj0xLEg9PT0iXSIpe2suSi0tO2lmKGsuSj09PQowKXtrLk49NTtyZXR1cm59digiW10iKTtrLk49YigpO2NvbnRpbnVlfWVsc2UgaC5wdXNoKDUpO0g9PT0nIic/ay5OPTY6SD09PSJ7Ij9rLk49MjpIPT09IlsiP2suTj00Okg9PT0idCI/ay5OPTk6SD09PSJmIj9rLk49MTI6SD09PSJuIj9rLk49MTY6SCE9PSItIiYmKCIwMTIzNDU2Nzg5Ii5pbmRleE9mKEgpIT09LTE/ay5OPTIwOm5fKGssbixyKSk7Y29udGludWU7Y2FzZSA1OmlmKEg9PT0iLCIpaC5wdXNoKDUpLGsuTj0xLGsuSj09PTEmJihHPXIpO2Vsc2UgaWYoSD09PSJdIil7ay5KLS07aWYoay5KPT09MClyZXR1cm47digpO2suTj1iKCl9ZWxzZSBpZihjWShIKSljb250aW51ZTtlbHNlIG5fKGssbixyKTtjb250aW51ZTtjYXNlIDY6bGV0IEE9cjthOmZvcig7Oyl7Zm9yKDtrLlk+MDspaWYoSD1uW3IrK10say5ZPT09ND9rLlk9MDprLlkrKywhSClicmVhayBhO2lmKEg9PT0nIicmJiFrLkspe2suTj1iKCk7YnJlYWt9aWYoSD09PSJcXCImJiFrLksmJihrLks9ITAsSD1uW3IrK10sCiFIKSlicmVhaztpZihrLkspaWYoay5LPSExLEg9PT0idSImJihrLlk9MSksSD1uW3IrK10pY29udGludWU7ZWxzZSBicmVhazt4Lmxhc3RJbmRleD1yO0g9eC5leGVjKG4pO2lmKCFIKXtyPW4ubGVuZ3RoKzE7YnJlYWt9cj1ILmluZGV4KzE7SD1uW0guaW5kZXhdO2lmKCFIKWJyZWFrfWsuVys9ci1BO2NvbnRpbnVlO2Nhc2UgOTppZighSCljb250aW51ZTtIPT09InIiP2suTj0xMDpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxMDppZighSCljb250aW51ZTtIPT09InUiP2suTj0xMTpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxMTppZighSCljb250aW51ZTtIPT09ImUiP2suTj1iKCk6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTI6aWYoIUgpY29udGludWU7SD09PSJhIj9rLk49MTM6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTM6aWYoIUgpY29udGludWU7SD09PSJsIj9rLk49MTQ6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTQ6aWYoIUgpY29udGludWU7SD09PSJzIj9rLk49MTU6Cm5fKGssbixyKTtjb250aW51ZTtjYXNlIDE1OmlmKCFIKWNvbnRpbnVlO0g9PT0iZSI/ay5OPWIoKTpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxNjppZighSCljb250aW51ZTtIPT09InUiP2suTj0xNzpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxNzppZighSCljb250aW51ZTtIPT09ImwiP2suTj0xODpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxODppZighSCljb250aW51ZTtIPT09ImwiP2suTj1iKCk6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTk6SD09PSIuIj9rLk49MjA6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMjA6aWYoIjAxMjM0NTY3ODkuZUUrLSIuaW5kZXhPZihIKSE9PS0xKWNvbnRpbnVlO2Vsc2Ugci0tLGsuVy0tLGsuTj1iKCk7Y29udGludWU7ZGVmYXVsdDpuXyhrLG4scil9fX0KZnVuY3Rpb24gYigpe3ZhciBIPWgucG9wKCk7cmV0dXJuIEghPW51bGw/SDoxfQpmdW5jdGlvbiB2KEgpe2suSj4xfHwoSHx8KEg9Rz09PS0xP2suWCtuLnN1YnN0cmluZyhlLHIpOm4uc3Vic3RyaW5nKEcscikpLGsuTz9rLlYucHVzaChIKTprLlYucHVzaChKU09OLnBhcnNlKEgpKSxHPXIpfQpmb3IodmFyIGs9dGhpcyxoPWsuY0oseD1rLnR3LEw9bi5sZW5ndGgsZT0wLEc9LTEscj0wO3I8TDspc3dpdGNoKGsuail7Y2FzZSAzOnJldHVybiBuXyhrLG4sciksbnVsbDtjYXNlIDI6cmV0dXJuIFcoKSYmbl8oayxuLHIpLG51bGw7Y2FzZSAwOmlmKFcoKSl7dmFyIE49bltyKytdO2suVysrO2lmKE49PT0iWyIpe2suaj0xO2U9cjtrLk49NDtjb250aW51ZX1lbHNlIG5fKGssbixyKX1yZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIEQoKSxrLko9PT0wJiZrLk49PTU/KGsuaj0yLGsuWD1uLnN1YnN0cmluZyhyKSk6ay5YPUc9PT0tMT9rLlgrbi5zdWJzdHJpbmcoZSk6bi5zdWJzdHJpbmcoRyksay5WLmxlbmd0aD4wPyhOPWsuVixrLlY9W10sTik6bnVsbH1yZXR1cm4gbnVsbH07V0sucHJvdG90eXBlLmlzSW5wdXRWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT1udWxsfTsKV0sucHJvdG90eXBlLnM4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07CldLLnByb3RvdHlwZS5hbz1mdW5jdGlvbigpe3JldHVybiExfTsKV0sucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoTCl7ay5KPTY7ay5qPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIitrLk4rIi8iK2grIi4gRXJyb3I6ICIrTCsiLiBXaXRoIGlucHV0OlxuIjt0aHJvdyBFcnJvcihrLmopO30KZnVuY3Rpb24gRCgpe2suVz1uZXcgYXMoe1ZMOiEwLFpIOiEwfSl9CmZ1bmN0aW9uIGIoTCl7aWYoTClmb3IobGV0IGU9MDtlPEwubGVuZ3RoO2UrKyl7bGV0IEc9e307R1sxXT1MW2VdO2suWC5wdXNoKEcpfX0KZnVuY3Rpb24gdihMKXtpZihMKXsoay5WfHxMLmxlbmd0aD4xKSYmVygiZXh0cmEgc3RhdHVzOiAiK0wpO2suVj0hMDtsZXQgZT17fTtlWzJdPUxbMF07ay5YLnB1c2goZSl9fQpmb3IodmFyIGs9dGhpcyxoPTA7aDxuLmxlbmd0aDspe3ZhciB4O2lmKHg9ay5KIT09Mil7YTp7Zm9yKDtoPG4ubGVuZ3RoOyl7aWYoIWNZKG5baF0pKXt4PSEwO2JyZWFrIGF9aCsrO2suTisrfXg9ITF9eD0heH1pZih4KXJldHVybiBudWxsO3N3aXRjaChrLkope2Nhc2UgNjpXKCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTticmVhaztjYXNlIDA6bltoXT09PSJbIj8oay5KPTEsaCsrLGsuTisrKTpXKCJ1bmV4cGVjdGVkIGlucHV0IHRva2VuIik7YnJlYWs7Y2FzZSAxOm5baF09PT0iWyI/KGsuSj0yLEQoKSk6bltoXT09PSIsInx8bi5zbGljZShoLGgrNSk9PSJudWxsLCI/ay5KPTM6bltoXT09PSJdIj8oay5KPTUsaCsrLGsuTisrKTpXKCJ1bmV4cGVjdGVkIGlucHV0IHRva2VuIik7YnJlYWs7Y2FzZSAyOng9ay5XLnBhcnNlKG4uc3Vic3RyaW5nKGgpKTtiKHgpO2suVy5kb25lKCk/KGsuSj0zLHg9ay5XLlgsay5OKz1uLmxlbmd0aC1oLXgubGVuZ3RoLG49eCxoPTApOihrLk4rPW4ubGVuZ3RoLQpoLGg9bi5sZW5ndGgpO2JyZWFrO2Nhc2UgMzpuW2hdPT09IiwifHxuLnNsaWNlKGgsaCs1KT09Im51bGwsIj8oay5KPTQsRCgpLGsuVy5wYXJzZSgiWyIpLGgrPW5baF09PT0iLCI/MTo1LGsuTisrKTpuW2hdPT09Il0iJiYoay5KPTUsaCsrLGsuTisrKTticmVhaztjYXNlIDQ6eD1rLlcucGFyc2Uobi5zdWJzdHJpbmcoaCkpO3YoeCk7ay5XLmRvbmUoKT8oay5KPTUseD1rLlcuWCxrLk4rPW4ubGVuZ3RoLWgteC5sZW5ndGgsbj14LGg9MCk6KGsuTis9bi5sZW5ndGgtaCxoPW4ubGVuZ3RoKTticmVhaztjYXNlIDU6VygiZXh0cmEgaW5wdXQgYWZ0ZXIgc3RyZWFtIGVuZCIpfX1yZXR1cm4gay5YLmxlbmd0aD4wPyhuPWsuWCxrLlg9W10sbik6bnVsbH07dmFyIHFBdD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bjt0aGlzLko9bnVsbDt0aGlzLmo9dGhpcy5XPTA7dGhpcy5EPSExO3RoaXMuWD10aGlzLks9dGhpcy5WPW51bGw7dGhpcy5ZPW5ldyBCWSh0aGlzKTt0aGlzLlkuU18odGhpcy5OLCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLk8pfWdldFN0YXR1cygpe3JldHVybiB0aGlzLmp9TyhuKXtuPW4udGFyZ2V0O3RyeXtpZihuPT10aGlzLk4pYTp7bGV0IGs9YTUodGhpcy5OKTt2YXIgVz10aGlzLk4uVyxEPXRoaXMuTi5nZXRTdGF0dXMoKTtsZXQgaD1XMyh0aGlzLk4pO249W107aWYoRG8odGhpcy5OKWluc3RhbmNlb2YgQXJyYXkpe2xldCB4PURvKHRoaXMuTik7eC5sZW5ndGg+MCYmeFswXWluc3RhbmNlb2YgVWludDhBcnJheSYmKHRoaXMuRD0hMCxuPXgpfWlmKCEoazwzfHxrPT0zJiYhaCYmbi5sZW5ndGg9PTApKWlmKEQ9RD09MjAwfHxEPT0yMDYsaz09NCYmKFc9PTg/RGkodGhpcyw3KTpXPT03P0RpKHRoaXMsOCk6RHx8CkRpKHRoaXMsMykpLHRoaXMuSnx8KHRoaXMuSj1oQ3godGhpcy5OKSx0aGlzLko9PW51bGwmJkRpKHRoaXMsNSkpLHRoaXMuaj4yKWJIKHRoaXMpO2Vsc2V7aWYobi5sZW5ndGg+dGhpcy5XKXtsZXQgeD1uLmxlbmd0aDtXPVtdO3RyeXtpZih0aGlzLkouYW8oKSlmb3IodmFyIGI9MDtiPHg7YisrKXt2YXIgdj10aGlzLkoucGFyc2UoQXJyYXkuZnJvbShuW2JdKSk7diYmKFc9Vy5jb25jYXQodikpfWVsc2V7dj0iIjtpZighdGhpcy5WKXtpZih0eXBlb2YgVGV4dERlY29kZXI9PT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcigiVGV4dERlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIik7dGhpcy5WPW5ldyBUZXh0RGVjb2Rlcn1mb3IoYj0wO2I8eDtiKyspdis9dGhpcy5WLmRlY29kZShuW2JdLHtzdHJlYW06az09NCYmYj09eC0xfSk7Vz10aGlzLkoucGFyc2Uodil9bi5zcGxpY2UoMCx4KTtXJiZ0aGlzLlgoVyl9Y2F0Y2goTCl7RGkodGhpcyw1KTtiSCh0aGlzKTsKYnJlYWsgYX19ZWxzZSBpZihoLmxlbmd0aD50aGlzLlcpe2I9aC5zbGljZSh0aGlzLlcpO3RoaXMuVz1oLmxlbmd0aDt0cnl7bGV0IHg9dGhpcy5KLnBhcnNlKGIpO3ghPW51bGwmJnRoaXMuWCYmdGhpcy5YKHgpfWNhdGNoKHgpe0RpKHRoaXMsNSk7YkgodGhpcyk7YnJlYWsgYX19az09ND8oaC5sZW5ndGghPTB8fHRoaXMuRD9EaSh0aGlzLDIpOkRpKHRoaXMsNCksYkgodGhpcykpOkRpKHRoaXMsMSl9fX1jYXRjaChrKXtEaSh0aGlzLDYpLGJIKHRoaXMpfX19O3ZhciBHaGk9Y2xhc3N7Y29uc3RydWN0b3Iobil7bj10aGlzLlc9bjt2YXIgVz0oMCxnLkt0KSh0aGlzLlgsdGhpcyk7bi5YPVc7bj10aGlzLlc7Vz0oMCxnLkt0KSh0aGlzLmosdGhpcyk7bi5LPVc7dGhpcy5KPXt9O3RoaXMuTj17fX14VihuLFcpe3ZhciBEPXRoaXMuSltuXTtEfHwoRD1bXSx0aGlzLkpbbl09RCk7RC5wdXNoKFcpfWFkZExpc3RlbmVyKG4sVyl7dGhpcy54VihuLFcpO3JldHVybiB0aGlzfXJlbW92ZUxpc3RlbmVyKG4sVyl7dmFyIEQ9dGhpcy5KW25dO0QmJmcuRkkoRCxXKTsobj10aGlzLk5bbl0pJiZnLkZJKG4sVyk7cmV0dXJuIHRoaXN9b25jZShuLFcpe3ZhciBEPXRoaXMuTltuXTtEfHwoRD1bXSx0aGlzLk5bbl09RCk7RC5wdXNoKFcpO3JldHVybiB0aGlzfVgobil7dmFyIFc9dGhpcy5KLmRhdGE7VyYmdksobixXKTsoVz10aGlzLk4uZGF0YSkmJnZLKG4sVyk7dGhpcy5OLmRhdGE9W119aigpe3N3aXRjaCh0aGlzLlcuZ2V0U3RhdHVzKCkpe2Nhc2UgMTprdCh0aGlzLAoicmVhZGFibGUiKTticmVhaztjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDc6Y2FzZSAzOmt0KHRoaXMsImVycm9yIik7YnJlYWs7Y2FzZSA4Omt0KHRoaXMsImNsb3NlIik7YnJlYWs7Y2FzZSAyOmt0KHRoaXMsImVuZCIpfX19O3ZhciAkeGg9Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgbj17Zm9ybWF0OiJqc3BiIn07dGhpcy5ZTz1uLllPfHxnLnJyKCJzdXBwcmVzc0NvcnNQcmVmbGlnaHQiLG4pfHwhMTt0aGlzLndpdGhDcmVkZW50aWFscz1uLndpdGhDcmVkZW50aWFsc3x8Zy5ycigid2l0aENyZWRlbnRpYWxzIixuKXx8ITE7dGhpcy5LYj1uLktifHxbXTt0aGlzLkZOPW4uRk58fFtdO3RoaXMuU249bi5Tbjt0aGlzLk49bi5sSXx8ITF9c2VydmVyU3RyZWFtaW5nKG4sVyxELGIpe3ZhciB2PW4uc3Vic3RyaW5nKDAsbi5sZW5ndGgtYi5uYW1lLmxlbmd0aCk7cmV0dXJuIHh4aihrPT57dmFyIGg9ay5sMCx4PWsuZ2V0TWV0YWRhdGEoKSxMPWhhKHRoaXMsITEpO3g9eHQodGhpcyx4LEwsditoLmdldE5hbWUoKSk7dmFyIGU9TF8oTCxoLlcsITApO2s9aC5OKGsuZnYpO0wuc2VuZCh4LCJQT1NUIixrKTtyZXR1cm4gZX0sdGhpcy5LYikuY2FsbCh0aGlzLGIuSihXLEQpKX19O3F3LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBZWSh0aGlzLk4sdGhpcy5KKyIvJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUiLG4sV3x8e30sc09NLEQpfTt2YXIgYW09Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmQ1PTM7dGhpcy5ueD1uO3RoaXMuZGVmYXVsdFZhbHVlPVc7dGhpcy5VMD0iYm9vbCJ9fSxuaj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuZDU9Mzt0aGlzLm54PW47dGhpcy5kZWZhdWx0VmFsdWU9Vzt0aGlzLlUwPSJpbnQifX0sV0M9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmQ1PTM7dGhpcy5ueD1uO3RoaXMuZGVmYXVsdFZhbHVlPVc7dGhpcy5VMD0iZG91YmxlIn19O3ZhciBTY3QsSVV3LFljLEFzVSxub3IsV0lNLG1HWixLNVUsTzcxLEhwLFo3VSxVR0MsUHJpLHlzeCxFZGksaTdDLHVOYixVQmIsZEd0LHpZaSxsVXIsVFBVLGpPaSxDSmksa3FNLERaLEY1aSxjZix3bjIsSGZ4LFNvUyxJWWksTUl4LHowaSxsWWgsVE5DLEJwdCxSWXcsUU94LFZJaixpbGksa1RiLFZrdyxjc3IsYVVNLGJELG5KaSxXRlMsbmEsRGRTLGJnaSx2NWksdkpDLFRfQyx0UzIsa19pLGhGaix4ZGgsZUZVLGdKMSxYQU0scURTLEdfcix0SlMsJGQyLHJUaixzcjIsanNaLE5GVSxHb00seSRqLHllaSxwQXQsanZNLEtZeCxZRFosSGdaLHZDLEplMSxmY3Qsa05qLEpUeCxJY2ksSGYsaldTLFNEUyxZSmIsQVRaLG1kdyxsaVosS0ZyLE9nMixwYk0sd2JTLFpnTSx5VDIsRUpNLHdJMTtTY3Q9bmV3IGFtKDQ1NzU5NTgwLCExKTtJVXc9bmV3IGFtKDQ1NzY2MjczLCExKTtnLlNuaj1uZXcgYW0oNDU3NTc4NzgsITEpO1ljPW5ldyBhbSg0NTc0OTM5NiwhMSk7CkFzVT1uZXcgYW0oNDU4MDg1MjgsITEpO25vcj1uZXcgYW0oNDU3NDIxMTksITEpO1dJTT1uZXcgYW0oNDU3ODQxNjgsITEpO21HWj1uZXcgYW0oNDU4MDEwNjgsITEpO0s1VT1uZXcgYW0oNDU3Nzg2OTYsITEpO083MT1uZXcgYW0oNDU3NTY0NDYsITEpO2cuUEpNPW5ldyBhbSg0NTgwODE1MCwhMSk7SHA9bmV3IGFtKDQ1ODA3NzY0LCExKTtaN1U9bmV3IGFtKDQ1Nzk3NzIxLCExKTtVR0M9bmV3IGFtKDQ1Nzk4OTMyLCExKTtQcmk9bmV3IGFtKDQ1NzYwMDE4LCExKTt5c3g9bmV3IGFtKDQ1NzM5MTk2LCExKTtFZGk9bmV3IGFtKDQ1Nzk0ODY4LCExKTtpN0M9bmV3IGFtKDQ1NzM5MTk4LCExKTt1TmI9bmV3IGFtKDQ1Nzk0ODY3LCExKTtVQmI9bmV3IGFtKDQ1Nzc3MzU2LCExKTtnLm9kWj1uZXcgbmooNDU3NTA5NDcsZy4kVSgiMCIpKTtkR3Q9bmV3IGFtKDQ1Nzk5OTEyLCExKTt6WWk9bmV3IFdDKDQ1NzQ2OTY2LDApO2xVcj1uZXcgV0MoNDU3NDY5NjcsMCk7ClRQVT1uZXcgV0MoNDU3Mzc0ODgsMCk7ak9pPW5ldyBXQyg0NTczNzQ4OSwwKTtDSmk9bmV3IGFtKDQ1Nzk1NTczLCExKTtnLkJQUz1uZXcgYW0oNDU3NjU2ODAsITEpO2txTT1uZXcgYW0oNDU3MzI3OTEsITApO0RaPW5ldyBhbSg0NTc4MTExMiwhMSk7RjVpPW5ldyBhbSg0NTgwODY1MCwhMSk7Y2Y9bmV3IGFtKDQ1ODExODU3LCExKTt3bjI9bmV3IGFtKDQ1ODA1OTY4LCExKTtIZng9bmV3IGFtKDQ1NzY5MTE5LCEwKTtTb1M9bmV3IG5qKDQ1ODA2NTU1LGcuJFUoIjIiKSk7SVlpPW5ldyBuaig0NTc4NDQzOSxnLiRVKCIwIikpO01JeD1uZXcgYW0oNDU4MTc0MDksITEpO3owaT1uZXcgYW0oNDU3Mzc0ODIsITEpO2xZaD1uZXcgV0MoNDU3NDE3NzMsMCk7VE5DPW5ldyBhbSg0NTgwNTg0OCwhMSk7QnB0PW5ldyBhbSg0NTc3MzY3MywhMSk7Ull3PW5ldyBhbSg0NTgwMDYzMywhMSk7UU94PW5ldyBhbSg0NTc5ODA3OCwhMSk7VklqPW5ldyBhbSg0NTczMTA4MywhMSk7CmlsaT1uZXcgYW0oNDU3OTcyNzksITEpO2tUYj1uZXcgYW0oNDU3Mjg1NTMsITEpO1Zrdz1uZXcgYW0oNDU3OTY3NTAsITEpO2Nzcj1uZXcgYW0oNDU3OTQ2ODAsITEpO2FVTT1uZXcgYW0oNDU4MTMwMjcsITEpO2JEPW5ldyBhbSg0NTczNDE5MSwhMSk7bkppPW5ldyBhbSg0NTc5Njc3NywhMSk7V0ZTPW5ldyBhbSg0NTc5Njc3OCwhMSk7bmE9bmV3IGFtKDQ1ODEwNjYxLCExKTtnLkFoPW5ldyBhbSg0NTc0NTYxMCwhMSk7RGRTPW5ldyBhbSg0NTgxNjU3MSwhMSk7YmdpPW5ldyBhbSg0NTc3MzI3MywhMSk7djVpPW5ldyBhbSg0NTc1NjYxOSwhMSk7dkpDPW5ldyBhbSg0NTc1ODI5MCwhMSk7VF9DPW5ldyBhbSg0NTgxMzgzMSwhMSk7dFMyPW5ldyBhbSg0NTczNTUyMywhMSk7a19pPW5ldyBXQyg0NTc3MTg5MCwwKTtoRmo9bmV3IFdDKDQ1ODA3NzczLDApO3hkaD1uZXcgV0MoNDU3MzU0MjgsNEUzKTtnLkxGaT1uZXcgYW0oNDU3ODkwNzcsITEpO2VGVT1uZXcgYW0oNDU3NDgwMDksITEpOwpnSjE9bmV3IGFtKDQ1NzUyNjA0LCExKTtYQU09bmV3IFdDKDQ1NzY5MjE0LDApO3FEUz1uZXcgYW0oNDU3MzU0NjIsITEpO0dfcj1uZXcgYW0oNDU4MTUwNzMsITEpO3RKUz1uZXcgYW0oNDU3NTE5NDMsITEpOyRkMj1uZXcgYW0oNDU3NTE5NDQsITEpO3JUaj1uZXcgYW0oNDU3NTE5NDUsITEpO3NyMj1uZXcgbmooNDU4MDg3NjIsZy4kVSgiMCIpKTtqc1o9bmV3IGFtKDQ1NzY0NTkyLCExKTtORlU9bmV3IFdDKDQ1NzY0NTkzLDApO0dvTT1uZXcgYW0oNDU3NjY1MTEsITEpO3kkaj1uZXcgYW0oNDU4MDYzODgsITEpO3llaT1uZXcgYW0oNDU4MDYzNjMsITEpO3BBdD1uZXcgYW0oNDU4MTU1OTIsITEpO2p2TT1uZXcgYW0oNDU4MTQ0ODAsITEpO0tZeD1uZXcgYW0oNDU4MTA0NjcsITEpO1lEWj1uZXcgYW0oNDU3OTEzMjYsITEpO0hnWj1uZXcgYW0oNDU3ODc3NzEsITEpO3ZDPW5ldyBhbSg0NTc5MTA4NywhMSk7SmUxPW5ldyBhbSg0NTc3Mjg5MSwhMSk7CmZjdD1uZXcgYW0oNDU3OTU4NDQsITEpO2tOaj1uZXcgYW0oNDU3ODM4NzUsITApO0pUeD1uZXcgYW0oNDU3OTU1NzQsITEpO0ljaT1uZXcgYW0oNDU3NzE4OTEsITEpO0hmPW5ldyBhbSg0NTcyODE4MSwhMSk7aldTPW5ldyBhbSg0NTc1NjU0MywhMSk7U0RTPW5ldyBhbSg0NTc1NjYyMCwhMSk7WUpiPW5ldyBhbSg0NTgwODc1NCwhMSk7QVRaPW5ldyBuaig0NTc2MTc2MCxnLiRVKCIyMDAiKSk7bWR3PW5ldyBhbSg0NTc3NjgzMiwhMSk7bGlaPW5ldyBXQyg0NTc2ODQzMCwwKTtLRnI9bmV3IGFtKDQ1Nzc2NTgwLCExKTtPZzI9bmV3IGFtKDQ1NzU1NzYwLCExKTtwYk09bmV3IGFtKDQ1NzYwMDE3LCExKTt3YlM9bmV3IGFtKDQ1NzMyNzc1LCExKTtnLlAzMT1uZXcgYW0oNDU3ODc5NDgsITEpO1pnTT1uZXcgYW0oNDU3NjU4MTgsITEpO2cuVWRDPW5ldyBhbSg0NTczNDc3NiwhMSk7eVQyPW5ldyBhbSg0NTgxNjgxMSwhMSk7RUpNPW5ldyBhbSg0NTc2MDEyMCwhMSk7Cmcua0g9bmV3IGFtKDQ1NzcwNDc2LCExKTt3STE9bmV3IGFtKDQ1ODA4MDUzLCExKTt2YXIgWXhyPW5ldyBXQyg0NTgwMzc1NCwwKSxtRGg9bmV3IFdDKDQ1NzkxMTE3LDApLHZNUz1uZXcgV0MoNDU3MjU1NDIsMCksWlJ4PW5ldyBXQyg0NTc5NDQ0MSwwKSxlVVU9bmV3IFdDKDQ1ODA3NzcxLDApLEhScj1uZXcgV0MoNDU3NzM2MDMsMCksZndqPW5ldyBXQyg0NTc3MzYwNCwwKSx4RFo9bmV3IFdDKDQ1Nzk3OTYzLDApLGJSdz1uZXcgV0MoNDU3MjU1NDMsMCksUGhqPW5ldyBXQyg0NTc5MzcxMCwwKSxoVWk9bmV3IFdDKDQ1NzU3NDI2LDApLG5Ndz1uZXcgV0MoNDU3MjU1MzksMCksSlIxPW5ldyBXQyg0NTgwNTY5NSwwKSxERFo9bmV3IFdDKDQ1NzI1NTQxLDApLFhHVT1uZXcgV0MoNDU3NTc0MjcsMCksQ1JpPW5ldyBhbSg0NTc5MTIwNiwhMSksV2t0PW5ldyBXQyg0NTcyNTU0MCwwKSxhWXg9bmV3IFdDKDQ1NzI1NTM4LDApLEtraT1uZXcgV0MoNDU3OTExMTgsMCksazZ3PW5ldyBXQyg0NTc2NDUyMywwKSxTeGk9bmV3IFdDKDQ1ODA0NzcxLDApLEl3eD1uZXcgV0MoNDU3ODY0NDMsCjApLFVEMj1uZXcgV0MoNDU4MDIxMjMsMCkscXhoPW5ldyBXQyg0NTc2NDIxNywwKSxHNjI9bmV3IFdDKDQ1NzY0NTI0LDApLCREMT1uZXcgV0MoNDU3NjU2MDIsMCksTGtDPW5ldyBXQyg0NTgwNzQzMiwwKSxBUk09bmV3IFdDKDQ1Nzc2MTkwLDApLE9SVT1uZXcgV0MoNDU3OTExMTksMCksVWJTPW5ldyBXQyg0NTgxNTAxMSwwKSxOZFM9bmV3IFdDKDQ1Nzc4NjcxLDApLHBHMT1uZXcgV0MoNDU3NDEzMzksMCksdDVpPW5ldyBXQyg0NTc2Nzc2MywwKSxnTXg9bmV3IFdDKDQ1ODA3NzcyLDApLHN3aT1uZXcgV0MoNDU3NzAwMDIsMCksclJpPW5ldyBXQyg0NTc3MDAwMSwwKTt2YXIgaWd0PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufX07dmFyIHVwMj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1KKCl7cmV0dXJuIHRoaXMuTi5RUShHX3IpfX07dmFyIHI0Mj0vKD86XFt8JTVCKShbYS16QS1aMC05X10rKSg/OlxdfCU1RCkvZzt2YXIgb0pVPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDUwMCl9fTt2YXIgaEw9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4sNTAwKX19O3ZhciBkZFM9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfWdldE5hbWUoKXtyZXR1cm4gWTkodGhpcywxKX1nZXRPcHRpb25zKCl7cmV0dXJuIGdlKHRoaXMsaEwsMyl9Y2xlYXJPcHRpb25zKCl7cmV0dXJuIG96KHRoaXMsMyl9fTt2YXIgekZpPWZ1bmN0aW9uKG4pe3JldHVybiBXPT57Vz1KU09OLnBhcnNlKFcpO2lmKCFBcnJheS5pc0FycmF5KFcpKXRocm93IEVycm9yKCJFeHBlY3RlZCBqc3BiIGRhdGEgdG8gYmUgYW4gYXJyYXksIGdvdCAiK3B0KFcpKyI6ICIrVyk7V1tiNF18PTM0O3JldHVybiBuZXcgbihXKX19KGNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXROYW1lKCl7cmV0dXJuIFk5KHRoaXMsMSl9Z2V0T3B0aW9ucygpe3JldHVybiBnZSh0aGlzLG9KVSwzKX1jbGVhck9wdGlvbnMoKXtyZXR1cm4gb3oodGhpcywzKX1YTygpe3JldHVybiBIVyh0aGlzLDYpfU1MKG4pe0tuKHRoaXMsNixuKX19KTt2YXIgbGNyPVN5bWJvbCgpO3ZhciBURnI7VEZyPW5ldyBtNFooOTk4LGhMLGNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19KTt2YXIgeEg9U3ltYm9sKCk7dmFyICR0PWNsYXNzIGV4dGVuZHMgZy5vV3tjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuWD10aGlzLk49MDt0aGlzLkEkPW4/P3tMUzooVyxEKT0+c2V0VGltZW91dChXLEQpLApzTzpXPT57Y2xlYXJUaW1lb3V0KFcpfX07CnRoaXMuaXNPbmxpbmU9d2luZG93Lm5hdmlnYXRvcj8ub25MaW5lPz8hMDt0aGlzLko9YXN5bmMoKT0+e2F3YWl0IHJYKHRoaXMpfTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuSik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5KKTt0aGlzLlh8fHRoaXMuaFQoKX1kaXNwb3NlKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuSik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5KKTt0aGlzLkEkLnNPKHRoaXMuWCk7ZGVsZXRlICR0Lmluc3RhbmNlfVdHKCl7cmV0dXJuIHRoaXMuaXNPbmxpbmV9aFQoKXt0aGlzLlg9dGhpcy5BJC5MUyhhc3luYygpPT57dGhpcy5pc09ubGluZT93aW5kb3cubmF2aWdhdG9yPy5vbkxpbmV8fGF3YWl0IHJYKHRoaXMpOmF3YWl0IHJYKHRoaXMpO3RoaXMuaFQoKX0sM0U0KX19O3ZhciBqcjI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEMzcj1bMCxJcWosLTFdO3ZhciBMaj1bMCxIaXcsLTFdO3ZhciBCRnQ9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEZGaT1nLkE5KFswLGcuQ3gsLTEsZy5FNixnLm9tLEMzciwtMSx5cCxpVSxnLkN4LExqLGcub20sZy5DeCwtMSxbMCxDM3IsLTFdLGlVLFkzQyxMaix5cCxbMCwxLGlVLC00LFU2LFswLHlwLC0xLGlVXSxnLm9tLHlwLGcuZHEsWzAsZy5DeCxpVV0saVUsLTEsZy5DeCwtMix5cCwtMSxnLkN4LHlwLGcuQ3gsaVUsWzAsMyxpVSwtMSw0LFRnXSxVNixqbyxbMCxnLkN4LC0xLGcub21dLHVVXSxnLm9tLEpYUyxnLmRxLFswLExqLGcuZHEsWzAsZy5vbSxnLkN4XSx5cCxnLkN4LC0xXSwxLGcuZHEsWzAsWTNDLC0xLGpvXSxnLkN4LExqXSk7dmFyIFV2Mj1JXyhjbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Sigpe3JldHVybiBIVyh0aGlzLDUpfX0sWzAsZy5DeCxbMCxnLkU2LGZxdywtMV0saVUsZy5DeCwtMixpVSxnLkU2XSk7dmFyIGxYcj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YT1bXTt0aGlzLk49LTF9c2V0KG4sVz0hMCl7MDw9biYmbjw1MiYmTnVtYmVyLmlzSW50ZWdlcihuKSYmdGhpcy5kYXRhW25dIT09VyYmKHRoaXMuZGF0YVtuXT1XLHRoaXMuTj0tMSl9Z2V0KG4pe3JldHVybiEhdGhpcy5kYXRhW25dfX07Zy5peChnLnBfLGcuRk0pO2cuRT1nLnBfLnByb3RvdHlwZTtnLkUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKTt0aGlzLlg9ITE7dmFyIG49WXQodGhpcyksVz1ISyh0aGlzKTtuJiYhVyYmdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZT8odGhpcy5OPUFIKHRoaXMuSiwiTW96QmVmb3JlUGFpbnQiLHRoaXMuVyksdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZShudWxsKSx0aGlzLlg9ITApOnRoaXMuTj1uJiZXP24uY2FsbCh0aGlzLkosdGhpcy5XKTp0aGlzLkouc2V0VGltZW91dChqTWgodGhpcy5XKSwyMCl9OwpnLkUuc3RvcD1mdW5jdGlvbigpe2lmKHRoaXMuaXNBY3RpdmUoKSl7bGV0IG49WXQodGhpcyksVz1ISyh0aGlzKTtuJiYhVyYmdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZT9FMih0aGlzLk4pOm4mJlc/Vy5jYWxsKHRoaXMuSix0aGlzLk4pOnRoaXMuSi5jbGVhclRpbWVvdXQodGhpcy5OKX10aGlzLk49bnVsbH07CmcuRS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4hPW51bGx9OwpnLkUuT3Q9ZnVuY3Rpb24oKXt0aGlzLlgmJnRoaXMuTiYmRTIodGhpcy5OKTt0aGlzLk49bnVsbDt0aGlzLlYuY2FsbCh0aGlzLmosZy5VdygpKX07CmcuRS5tQT1mdW5jdGlvbigpe3RoaXMuc3RvcCgpO2cucF8uVEIubUEuY2FsbCh0aGlzKX07Zy5peChnLmZfLGcuRk0pO2cuRT1nLmZfLnByb3RvdHlwZTtnLkUudDg9MDtnLkUubUE9ZnVuY3Rpb24oKXtnLmZfLlRCLm1BLmNhbGwodGhpcyk7dGhpcy5zdG9wKCk7ZGVsZXRlIHRoaXMuTjtkZWxldGUgdGhpcy5KfTsKZy5FLnN0YXJ0PWZ1bmN0aW9uKG4pe3RoaXMuc3RvcCgpO3RoaXMudDg9Zy5adCh0aGlzLlcsbiE9PXZvaWQgMD9uOnRoaXMuZ3QpfTsKZy5FLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmlzQWN0aXZlKCkmJmcucWkuY2xlYXJUaW1lb3V0KHRoaXMudDgpO3RoaXMudDg9MH07CmcuRS5qZT1mdW5jdGlvbigpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuc3RvcCgpLHRoaXMuaSQoKSl9OwpnLkUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50OCE9MH07CmcuRS5pJD1mdW5jdGlvbigpe3RoaXMudDg9MDt0aGlzLk4mJnRoaXMuTi5jYWxsKHRoaXMuSil9O3ZhciB3QWk9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLlg9VyE9bnVsbD9uLmJpbmQoVyk6bjt0aGlzLmd0PTM1MDt0aGlzLlc9bnVsbDt0aGlzLk49ITE7dGhpcy5KPTA7dGhpcy5aNj1udWxsfWoobil7dGhpcy5XPWFyZ3VtZW50czt0aGlzLlo2fHx0aGlzLko/dGhpcy5OPSEwOklGKHRoaXMpfXN0b3AoKXt0aGlzLlo2JiYoZy5xaS5jbGVhclRpbWVvdXQodGhpcy5aNiksdGhpcy5aNj1udWxsLHRoaXMuTj0hMSx0aGlzLlc9bnVsbCl9cGF1c2UoKXt0aGlzLkorK31yZXN1bWUoKXt0aGlzLkotLTt0aGlzLkp8fCF0aGlzLk58fHRoaXMuWjZ8fCh0aGlzLk49ITEsSUYodGhpcykpfW1BKCl7c3VwZXIubUEoKTt0aGlzLnN0b3AoKX19O3ZhciB1eWksR2cscWw7dXlpPVJlZ0V4cCgiXltcdTA1OTEtXHUwNmVmXHUwNmZhLVx1MDhmZlx1MjAwZlx1ZDgwMi1cdWQ4MDNcdWQ4M2EtXHVkODNiXHVmYjFkLVx1ZmRmZlx1ZmU3MC1cdWZlZmNdIik7R2c9UmVnRXhwKCJeW15cdTA1OTEtXHUwNmVmXHUwNmZhLVx1MDhmZlx1MjAwZlx1ZDgwMi1cdWQ4MDNcdWQ4M2EtXHVkODNiXHVmYjFkLVx1ZmRmZlx1ZmU3MC1cdWZlZmNdKltBLVphLXpcdTAwYzAtXHUwMGQ2XHUwMGQ4LVx1MDBmNlx1MDBmOC1cdTAyYjhcdTAzMDAtXHUwNTkwXHUwOTAwLVx1MWZmZlx1MjAwZVx1MmMwMC1cdWQ4MDFcdWQ4MDQtXHVkODM5XHVkODNjLVx1ZGJmZlx1ZjkwMC1cdWZiMWNcdWZlMDAtXHVmZTZmXHVmZWZkLVx1ZmZmZl0iKTtxbD1SZWdFeHAoIl5bXkEtWmEtelx1MDBjMC1cdTAwZDZcdTAwZDgtXHUwMGY2XHUwMGY4LVx1MDJiOFx1MDMwMC1cdTA1OTBcdTA5MDAtXHUxZmZmXHUyMDBlXHUyYzAwLVx1ZDgwMVx1ZDgwNC1cdWQ4MzlcdWQ4M2MtXHVkYmZmXHVmOTAwLVx1ZmIxY1x1ZmUwMC1cdWZlNmZcdWZlZmQtXHVmZmZmXSpbXHUwNTkxLVx1MDZlZlx1MDZmYS1cdTA4ZmZcdTIwMGZcdWQ4MDItXHVkODAzXHVkODNhLVx1ZDgzYlx1ZmIxZC1cdWZkZmZcdWZlNzAtXHVmZWZjXSIpOwpnLk1KaT1SZWdFeHAoIl4oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pIiwiaSIpO0ludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihbImVuIi5yZXBsYWNlKCJfIiwiLSIpXSk7dUgucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gUkZNfTsKdmFyIFJGTT17ZG9uZTohMCx2YWx1ZTp2b2lkIDB9O3VILnByb3RvdHlwZS5ncT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt2YXIgb0Y9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59Z3EoKXtyZXR1cm4gbmV3IGRYKHRoaXMuTigpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBuZXcgeksodGhpcy5OKCkpfUooKXtyZXR1cm4gbmV3IHpLKHRoaXMuTigpKX19LGRYPWNsYXNzIGV4dGVuZHMgdUh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1uZXh0KCl7cmV0dXJuIHRoaXMuTi5uZXh0KCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHpLKHRoaXMuTil9Sigpe3JldHVybiBuZXcgeksodGhpcy5OKX19LHpLPWNsYXNzIGV4dGVuZHMgb0Z7Y29uc3RydWN0b3Iobil7c3VwZXIoKCk9Pm4pOwp0aGlzLlc9bn1uZXh0KCl7cmV0dXJuIHRoaXMuVy5uZXh0KCl9fTtsSC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxIKHRoaXMuTix0aGlzLkssdGhpcy5XLHRoaXMuaix0aGlzLlgsdGhpcy5WLHRoaXMuSix0aGlzLlkpfTsKbEgucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5OPT1uLk4mJnRoaXMuSz09bi5LJiZ0aGlzLlc9PW4uVyYmdGhpcy5qPT1uLmomJnRoaXMuWD09bi5YJiZ0aGlzLlY9PW4uViYmdGhpcy5KPT1uLkomJnRoaXMuWT09bi5ZfTsoZnVuY3Rpb24oKXtpZihwUWope3ZhciBuPS9XaW5kb3dzIE5UIChbMC05Ll0rKS87cmV0dXJuKG49bi5leGVjKGcuWFEoKSkpP25bMV06IjAifXJldHVybiBucj8obj0vMVswfDFdW18uXVswLTlfLl0rLywobj1uLmV4ZWMoZy5YUSgpKSk/blswXS5yZXBsYWNlKC9fL2csIi4iKToiMTAiKTpnLlFIPyhuPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLywobj1uLmV4ZWMoZy5YUSgpKSk/blsxXToiIik6V1VafHxENGl8fGJpVT8obj0vKD86aVBob25lfENQVSlccytPU1xzKyhcUyspLywobj1uLmV4ZWMoZy5YUSgpKSk/blsxXS5yZXBsYWNlKC9fL2csIi4iKToiIik6IiJ9KSgpO3ZhciBmWDI9ZnVuY3Rpb24oKXtpZihnLmFvKXJldHVybiBqQSgvRmlyZWZveFwvKFswLTkuXSspLyk7aWYoZy5raHx8Zy5SZ3x8cmMpcmV0dXJuIFAyO2lmKGcub2Qpe2lmKGcuQTQoKXx8Zy5teCgpKXt2YXIgbj1qQSgvQ3JpT1NcLyhbMC05Ll0rKS8pO2lmKG4pcmV0dXJuIG59cmV0dXJuIGpBKC9DaHJvbWVcLyhbMC05Ll0rKS8pfWlmKGcuR24mJiFnLkE0KCkpcmV0dXJuIGpBKC9WZXJzaW9uXC8oWzAtOS5dKykvKTtpZih3OHx8TVgpe2lmKG49L1ZlcnNpb25cLyhcUyspLipNb2JpbGVcLyhcUyspLy5leGVjKGcuWFEoKSkpcmV0dXJuIG5bMV0rIi4iK25bMl19ZWxzZSBpZihnLkltKXJldHVybihuPWpBKC9BbmRyb2lkXHMrKFswLTkuXSspLykpP246akEoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSgpO2cuaXgoQkssZy5GTSk7Zy5FPUJLLnByb3RvdHlwZTtnLkUuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj10aGlzLkpbbl07Ynx8KGI9dGhpcy5KW25dPVtdKTt2YXIgdj10aGlzLlY7dGhpcy5OW3ZdPW47dGhpcy5OW3YrMV09Vzt0aGlzLk5bdisyXT1EO3RoaXMuVj12KzM7Yi5wdXNoKHYpO3JldHVybiB2fTsKZy5FLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtpZihuPXRoaXMuSltuXSl7bGV0IGI9dGhpcy5OO2lmKG49bi5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiBiW3YrMV09PVcmJmJbdisyXT09RH0pKXJldHVybiB0aGlzLmpLKG4pfXJldHVybiExfTsKZy5FLmpLPWZ1bmN0aW9uKG4pe3ZhciBXPXRoaXMuTltuXTtpZihXKXtsZXQgRD10aGlzLkpbV107dGhpcy5YIT0wPyh0aGlzLlcucHVzaChuKSx0aGlzLk5bbisxXT0oKT0+e30pOihEJiZnLkZJKEQsbiksZGVsZXRlIHRoaXMuTltuXSxkZWxldGUgdGhpcy5OW24rMV0sZGVsZXRlIHRoaXMuTltuKzJdKX1yZXR1cm4hIVd9OwpnLkUuV0o9ZnVuY3Rpb24obixXKXt2YXIgRD10aGlzLkpbbl07aWYoRCl7bGV0IHY9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTt2YXIgYj1hcmd1bWVudHMubGVuZ3RoO2xldCBrO2ZvcihrPTE7azxiO2srKyl2W2stMV09YXJndW1lbnRzW2tdO2lmKHRoaXMuSylmb3Ioaz0wO2s8RC5sZW5ndGg7aysrKWI9RFtrXSxKNHIodGhpcy5OW2IrMV0sdGhpcy5OW2IrMl0sdik7ZWxzZXt0aGlzLlgrKzt0cnl7Zm9yKGs9MCxiPUQubGVuZ3RoO2s8YiYmIXRoaXMucU4oKTtrKyspe2xldCBoPURba107dGhpcy5OW2grMV0uYXBwbHkodGhpcy5OW2grMl0sdil9fWZpbmFsbHl7aWYodGhpcy5YLS0sdGhpcy5XLmxlbmd0aD4wJiZ0aGlzLlg9PTApZm9yKDtEPXRoaXMuVy5wb3AoKTspdGhpcy5qSyhEKX19cmV0dXJuIGshPTB9cmV0dXJuITF9OwpnLkUuY2xlYXI9ZnVuY3Rpb24obil7aWYobil7bGV0IFc9dGhpcy5KW25dO1cmJihXLmZvckVhY2godGhpcy5qSyx0aGlzKSxkZWxldGUgdGhpcy5KW25dKX1lbHNlIHRoaXMuTi5sZW5ndGg9MCx0aGlzLko9e319OwpnLkUubUE9ZnVuY3Rpb24oKXtCSy5UQi5tQS5jYWxsKHRoaXMpO3RoaXMuY2xlYXIoKTt0aGlzLlcubGVuZ3RoPTB9O2cuRmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihuLFcpe1c9PT12b2lkIDA/dGhpcy5OLnJlbW92ZShuKTp0aGlzLk4uc2V0KG4sKG5ldyBsZSkuYlkoVykpfTsKZy5GZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKG4pe3RyeXt2YXIgVz10aGlzLk4uZ2V0KG4pfWNhdGNoKEQpe3JldHVybn1pZihXIT09bnVsbCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoVyl9Y2F0Y2goRCl7dGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO319OwpnLkZkLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24obil7dGhpcy5OLnJlbW92ZShuKX07Zy5peCh3WCxnLkZkKTt3WC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKG4sVyl7d1guVEIuc2V0LmNhbGwodGhpcyxuLFJGKFcpKX07CndYLnByb3RvdHlwZS5NRD1mdW5jdGlvbihuKXtuPXdYLlRCLmdldC5jYWxsKHRoaXMsbik7aWYobj09PXZvaWQgMHx8biBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gbjt0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fTsKd1gucHJvdG90eXBlLmdldD1mdW5jdGlvbihuKXtpZihuPXRoaXMuTUQobikpe2lmKG49bi5kYXRhLG49PT12b2lkIDApdGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO31lbHNlIG49dm9pZCAwO3JldHVybiBufTtnLml4KFFLLHdYKTtRSy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKG4sVyxEKXtpZihXPVJGKFcpKXtpZihEKXtpZihEPGcuVXcoKSl7UUsucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsbik7cmV0dXJufVcuZXhwaXJhdGlvbj1EfVcuY3JlYXRpb249Zy5VdygpfVFLLlRCLnNldC5jYWxsKHRoaXMsbixXKX07ClFLLnByb3RvdHlwZS5NRD1mdW5jdGlvbihuKXt2YXIgVz1RSy5UQi5NRC5jYWxsKHRoaXMsbik7aWYoVyl7bGV0IEQ9Vy5jcmVhdGlvbixiPVcuZXhwaXJhdGlvbjtpZihiJiZiPGcuVXcoKXx8RCYmRD5nLlV3KCkpUUsucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsbik7ZWxzZSByZXR1cm4gV319O2cuaXgoVkssUUspO2cuaXgoY0ssSVgxKTtjSy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBZQTEodGhpcy5ncSghMCkpLkooKX07CmNLLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBuPUFycmF5LmZyb20odGhpcyk7Zm9yKGxldCBXIG9mIG4pdGhpcy5yZW1vdmUoVyl9O2cuaXgoYUYsY0spO2cuRT1hRi5wcm90b3R5cGU7Zy5FLmlzQXZhaWxhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5KPT09bnVsbCl7dmFyIG49dGhpcy5OO2lmKG4pdHJ5e24uc2V0SXRlbSgiX19zYWsiLCIxIik7bi5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBXPSEwfWNhdGNoKEQpe1c9RCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKEQubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxELmNvZGU9PT0yMnx8RC5jb2RlPT09MTAxNHx8RC5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJm4mJm4ubGVuZ3RoIT09MH1lbHNlIFc9ITE7dGhpcy5KPVd9cmV0dXJuIHRoaXMuSn07CmcuRS5zZXQ9ZnVuY3Rpb24obixXKXtuZSh0aGlzKTt0cnl7dGhpcy5OLnNldEl0ZW0obixXKX1jYXRjaChEKXtpZih0aGlzLk4ubGVuZ3RoPT0wKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIGRpc2FibGVkIjt0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogUXVvdGEgZXhjZWVkZWQiO319OwpnLkUuZ2V0PWZ1bmN0aW9uKG4pe25lKHRoaXMpO249dGhpcy5OLmdldEl0ZW0obik7aWYodHlwZW9mIG4hPT0ic3RyaW5nIiYmbiE9PW51bGwpdGhyb3ciU3RvcmFnZSBtZWNoYW5pc206IEludmFsaWQgdmFsdWUgd2FzIGVuY291bnRlcmVkIjtyZXR1cm4gbn07CmcuRS5yZW1vdmU9ZnVuY3Rpb24obil7bmUodGhpcyk7dGhpcy5OLnJlbW92ZUl0ZW0obil9OwpnLkUuZ3E9ZnVuY3Rpb24obil7bmUodGhpcyk7dmFyIFc9MCxEPXRoaXMuTixiPW5ldyB1SDtiLm5leHQ9ZnVuY3Rpb24oKXtpZihXPj1ELmxlbmd0aClyZXR1cm4gUkZNO3ZhciB2PUQua2V5KFcrKyk7aWYobilyZXR1cm57dmFsdWU6dixkb25lOiExfTt2PUQuZ2V0SXRlbSh2KTtpZih0eXBlb2YgdiE9PSJzdHJpbmciKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJue3ZhbHVlOnYsZG9uZTohMX19OwpyZXR1cm4gYn07CmcuRS5jbGVhcj1mdW5jdGlvbigpe25lKHRoaXMpO3RoaXMuTi5jbGVhcigpfTsKZy5FLmtleT1mdW5jdGlvbihuKXtuZSh0aGlzKTtyZXR1cm4gdGhpcy5OLmtleShuKX07Zy5peChXUyxhRik7Zy5peChEUSxhRik7Zy5peChiQyxjSyk7YkMucHJvdG90eXBlLnNldD1mdW5jdGlvbihuLFcpe3RoaXMuSi5zZXQodGhpcy5OK24sVyl9OwpiQy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLkouZ2V0KHRoaXMuTituKX07CmJDLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24obil7dGhpcy5KLnJlbW92ZSh0aGlzLk4rbil9OwpiQy5wcm90b3R5cGUuZ3E9ZnVuY3Rpb24obil7dmFyIFc9dGhpcy5KW1N5bWJvbC5pdGVyYXRvcl0oKSxEPXRoaXMsYj1uZXcgdUg7Yi5uZXh0PWZ1bmN0aW9uKCl7dmFyIHY9Vy5uZXh0KCk7aWYodi5kb25lKXJldHVybiB2O2Zvcih2PXYudmFsdWU7di5zbGljZSgwLEQuTi5sZW5ndGgpIT1ELk47KXt2PVcubmV4dCgpO2lmKHYuZG9uZSlyZXR1cm4gdjt2PXYudmFsdWV9cmV0dXJue3ZhbHVlOm4/di5zbGljZShELk4ubGVuZ3RoKTpELkouZ2V0KHYpLGRvbmU6ITF9fTsKcmV0dXJuIGJ9O2tqLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkp9Owprai5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGtqKHRoaXMuTix0aGlzLkopfTt2YXIgZWM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPVtdO2lmKG4pYTp7bGV0IEQ7aWYobiBpbnN0YW5jZW9mIGVjKXtpZihEPW4udUIoKSxuPW4uejcoKSx0aGlzLk4ubGVuZ3RoPD0wKXt2YXIgVz10aGlzLk47Zm9yKGxldCBiPTA7YjxELmxlbmd0aDtiKyspVy5wdXNoKG5ldyBraihEW2JdLG5bYl0pKTticmVhayBhfX1lbHNlIEQ9Zy5MVChuKSxuPWhLKG4pO2ZvcihXPTA7VzxELmxlbmd0aDtXKyspdGhpcy5xcChEW1ddLG5bV10pfX1xcChuLFcpe3ZhciBEPXRoaXMuTjtELnB1c2gobmV3IGtqKG4sVykpO249RC5sZW5ndGgtMTtXPXRoaXMuTjtmb3IoRD1XW25dO24+MDspe2xldCBiPW4tMT4+MTtpZihXW2JdLk4+RC5OKVdbbl09V1tiXSxuPWI7ZWxzZSBicmVha31XW25dPUR9cmVtb3ZlKCl7dmFyIG49dGhpcy5OLFc9bi5sZW5ndGgsRD1uWzBdO2lmKCEoVzw9MCkpe2lmKFc9PTEpbi5sZW5ndGg9MDtlbHNle25bMF09bi5wb3AoKTtuPTA7Vz10aGlzLk47bGV0IHY9Vy5sZW5ndGgsCms9V1tuXTtmb3IoO248dj4+MTspe3ZhciBiPW4qMisxO2xldCBoPW4qMisyO2I9aDx2JiZXW2hdLk48V1tiXS5OP2g6YjtpZihXW2JdLk4+ay5OKWJyZWFrO1dbbl09V1tiXTtuPWJ9V1tuXT1rfXJldHVybiBELmdldFZhbHVlKCl9fXo3KCl7dmFyIG49dGhpcy5OLFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdLmdldFZhbHVlKCkpO3JldHVybiBXfXVCKCl7dmFyIG49dGhpcy5OLFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdLk4pO3JldHVybiBXfWNsb25lKCl7cmV0dXJuIG5ldyBlYyh0aGlzKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuTi5sZW5ndGg9PT0wfWNsZWFyKCl7dGhpcy5OLmxlbmd0aD0wfX07dmFyIFFyaD1jbGFzcyBleHRlbmRzIGVje307dmFyIGhrPXt9LFZKaT10eXBlb2YgVWludDhBcnJheSE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgVWludDE2QXJyYXkhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEludDMyQXJyYXkhPT0idW5kZWZpbmVkIjtoay5hc3NpZ249ZnVuY3Rpb24obil7Zm9yKHZhciBXPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtXLmxlbmd0aDspe3ZhciBEPVcuc2hpZnQoKTtpZihEKXtpZih0eXBlb2YgRCE9PSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoRCsibXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKHZhciBiIGluIEQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEQsYikmJihuW2JdPURbYl0pfX1yZXR1cm4gbn07CmhrLlVmPWZ1bmN0aW9uKG4sVyl7aWYobi5sZW5ndGg9PT1XKXJldHVybiBuO2lmKG4uc3ViYXJyYXkpcmV0dXJuIG4uc3ViYXJyYXkoMCxXKTtuLmxlbmd0aD1XO3JldHVybiBufTsKdmFyIGNUMj17UDc6ZnVuY3Rpb24obixXLEQsYix2KXtpZihXLnN1YmFycmF5JiZuLnN1YmFycmF5KW4uc2V0KFcuc3ViYXJyYXkoRCxEK2IpLHYpO2Vsc2UgZm9yKHZhciBrPTA7azxiO2srKyluW3Yra109V1tEK2tdfSwKUDY6ZnVuY3Rpb24obil7dmFyIFcsRDt2YXIgYj1EPTA7Zm9yKFc9bi5sZW5ndGg7YjxXO2IrKylEKz1uW2JdLmxlbmd0aDt2YXIgdj1uZXcgVWludDhBcnJheShEKTtiPUQ9MDtmb3IoVz1uLmxlbmd0aDtiPFc7YisrKXt2YXIgaz1uW2JdO3Yuc2V0KGssRCk7RCs9ay5sZW5ndGh9cmV0dXJuIHZ9fSxhY0M9e1A3OmZ1bmN0aW9uKG4sVyxELGIsdil7Zm9yKHZhciBrPTA7azxiO2srKyluW3Yra109V1tEK2tdfSwKUDY6ZnVuY3Rpb24obil7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLG4pfX07CmhrLlhHPWZ1bmN0aW9uKCl7VkppPyhoay5PbT1VaW50OEFycmF5LGhrLm1LPVVpbnQxNkFycmF5LGhrLlN2PUludDMyQXJyYXksaGsuYXNzaWduKGhrLGNUMikpOihoay5PbT1BcnJheSxoay5tSz1BcnJheSxoay5Tdj1BcnJheSxoay5hc3NpZ24oaGssYWNDKSl9Owpoay5YRygpO3ZhciBueGk9ITA7dHJ5e25ldyBVaW50OEFycmF5KDEpfWNhdGNoKG4pe254aT0hMX07dmFyIFZ0PXt9O1Z0PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4mNjU1MzV8MDtuPW4+Pj4xNiY2NTUzNXwwO2Zvcih2YXIgaztEIT09MDspe2s9RD4yRTM/MkUzOkQ7RC09aztkbyB2PXYrV1tiKytdfDAsbj1uK3Z8MDt3aGlsZSgtLWspO3YlPTY1NTIxO24lPTY1NTIxfXJldHVybiB2fG48PDE2fDB9O2Zvcih2YXIgY1M9e30sZ24sV3RyPVtdLFhzPTA7WHM8MjU2O1hzKyspe2duPVhzO2Zvcih2YXIgRGtaPTA7RGtaPDg7RGtaKyspZ249Z24mMT8zOTg4MjkyMzg0XmduPj4+MTpnbj4+PjE7V3RyW1hzXT1nbn1jUz1mdW5jdGlvbihuLFcsRCxiKXtEPWIrRDtmb3Iobl49LTE7YjxEO2IrKyluPW4+Pj44Xld0clsobl5XW2JdKSYyNTVdO3JldHVybiBuXi0xfTt2YXIgekI9e307ekI9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifTt2YXIgbSQ9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sUFM9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLFowdz1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10sQ2U9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLEJTPUFycmF5KDU3Nik7TGUoQlMpO3ZhciBGOT1BcnJheSg2MCk7TGUoRjkpO3ZhciBPJD1BcnJheSg1MTIpO0xlKE8kKTt2YXIgQWs9QXJyYXkoMjU2KTtMZShBayk7dmFyIEtlPUFycmF5KDI5KTtMZShLZSk7dmFyIFpRPUFycmF5KDMwKTtMZShaUSk7dmFyIHhmLEx3LGVILGhyPSExO3ZhciBidztidz1bbmV3IERFKDAsMCwwLDAsZnVuY3Rpb24obixXKXt2YXIgRD02NTUzNTtmb3IoRD5uLnl2LTUmJihEPW4ueXYtNSk7Oyl7aWYobi5HVzw9MSl7YVMobik7aWYobi5HVz09PTAmJlc9PT0wKXJldHVybiAxO2lmKG4uR1c9PT0wKWJyZWFrfW4ucXMrPW4uR1c7bi5HVz0wO3ZhciBiPW4uT0srRDtpZihuLnFzPT09MHx8bi5xcz49YilpZihuLkdXPW4ucXMtYixuLnFzPWIsdzcobiwhMSksbi5UUi51Uj09PTApcmV0dXJuIDE7aWYobi5xcy1uLk9LPj1uLnhyLTI2MiYmKHc3KG4sITEpLG4uVFIudVI9PT0wKSlyZXR1cm4gMX1uLnFwPTA7aWYoVz09PTQpcmV0dXJuIHc3KG4sITApLG4uVFIudVI9PT0wPzM6NDtuLnFzPm4uT0smJnc3KG4sITEpO3JldHVybiAxfSksCm5ldyBERSg0LDQsOCw0LG53KSxuZXcgREUoNCw1LDE2LDgsbncpLG5ldyBERSg0LDYsMzIsMzIsbncpLG5ldyBERSg0LDQsMTYsMTYsV1YpLG5ldyBERSg4LDE2LDMyLDMyLFdWKSxuZXcgREUoOCwxNiwxMjgsMTI4LFdWKSxuZXcgREUoOCwzMiwxMjgsMjU2LFdWKSxuZXcgREUoMzIsMTI4LDI1OCwxMDI0LFdWKSxuZXcgREUoMzIsMjU4LDI1OCw0MDk2LFdWKV07dmFyIGtmPXt9O2tmPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dD1udWxsO3RoaXMuRW09dGhpcy5CQT10aGlzLlVaPTA7dGhpcy5vdXRwdXQ9bnVsbDt0aGlzLnRCPXRoaXMudVI9dGhpcy51Zz0wO3RoaXMubXNnPSIiO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnFTPTI7dGhpcy5nST0wfTt2YXIgZzI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKdlYucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24obixXKXt2YXIgRD10aGlzLlRSLGI9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO3ZhciB2PVc9PT1+flc/VzpXPT09ITA/NDowO3R5cGVvZiBuPT09InN0cmluZyI/RC5pbnB1dD14aihuKTpnMi5jYWxsKG4pPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIj9ELmlucHV0PW5ldyBVaW50OEFycmF5KG4pOkQuaW5wdXQ9bjtELlVaPTA7RC5CQT1ELmlucHV0Lmxlbmd0aDtkb3tELnVSPT09MCYmKEQub3V0cHV0PW5ldyBoay5PbShiKSxELnVnPTAsRC51Uj1iKTtuPVBwMShELHYpO2lmKG4hPT0xJiZuIT09MClyZXR1cm4gdGhpcy5IdChuKSx0aGlzLmVuZGVkPSEwLCExO2lmKEQudVI9PT0wfHxELkJBPT09MCYmKHY9PT00fHx2PT09MikpaWYodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyIpe3ZhciBrPWhrLlVmKEQub3V0cHV0LEQudWcpO1c9aztrPWsubGVuZ3RoO2lmKGs8NjU1MzcmJihXLnN1YmFycmF5JiYKbnhpfHwhVy5zdWJhcnJheSkpVz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaGsuVWYoVyxrKSk7ZWxzZXtmb3IodmFyIGg9IiIseD0wO3g8azt4KyspaCs9U3RyaW5nLmZyb21DaGFyQ29kZShXW3hdKTtXPWh9dGhpcy5jaHVua3MucHVzaChXKX1lbHNlIFc9aGsuVWYoRC5vdXRwdXQsRC51ZyksdGhpcy5jaHVua3MucHVzaChXKX13aGlsZSgoRC5CQT4wfHxELnVSPT09MCkmJm4hPT0xKTtpZih2PT09NClyZXR1cm4oRD10aGlzLlRSKSYmRC5zdGF0ZT8oYj1ELnN0YXRlLnN0YXR1cyxiIT09NDImJmIhPT02OSYmYiE9PTczJiZiIT09OTEmJmIhPT0xMDMmJmIhPT0xMTMmJmIhPT02NjY/bj1sQyhELC0yKTooRC5zdGF0ZT1udWxsLG49Yj09PTExMz9sQyhELC0zKTowKSk6bj0tMix0aGlzLkh0KG4pLHRoaXMuZW5kZWQ9ITAsbj09PTA7dj09PTImJih0aGlzLkh0KDApLEQudVI9MCk7cmV0dXJuITB9Owp2Vi5wcm90b3R5cGUuSHQ9ZnVuY3Rpb24obil7bj09PTAmJih0aGlzLnJlc3VsdD10aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj90aGlzLmNodW5rcy5qb2luKCIiKTpoay5QNih0aGlzLmNodW5rcykpO3RoaXMuY2h1bmtzPVtdO3RoaXMuZXJyPW47dGhpcy5tc2c9dGhpcy5UUi5tc2d9O3ZhciB0cj0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpLnNwbGl0KCIiKS5qb2luKCIuIiksR2Q9YEBAcmVkdXgvSU5JVCR7dHIoKX1gLEVLQz1gQEByZWR1eC9SRVBMQUNFJHt0cigpfWA7dmFyIHIyPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7dmFyIFFTeD1JXyhjbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fSxbMCxnLkN4LFRnLGcub20sbFUsZy5vbSwtMSxqbyxsVSxqbywtMSxnLkN4LGpvLFRnLGcuZHEsWzAsbFUsLTMsam9dLGcub20sLTEsam9dKTt2YXIgS0d0PS0zMDE3MTcyMTc7dmFyIGJzdD1mdW5jdGlvbihuLFcpe3JldHVybigoKT0+e3ZhciBEPW5ldyBBWHgobixXKTtyZXR1cm4oKT0+RH0pKCl9KCJ5b3V0dWJlLmFwaS5pbm5lcnR1YmUuQXR0ZXN0YXRpb25FcnJvciIsJ1tudWxsLFtbIkFUVEVTVEFUSU9OX0VSUk9SX1VOS05PV04iLDBdLFsiQVRURVNUQVRJT05fRVJST1JfVk1fTk9UX0lOSVRJQUxJWkVEIiwxXSxbIkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PX1JFU1BPTlNFIiwyXSxbIkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiLDNdLFsiQVRURVNUQVRJT05fRVJST1JfVk1fSU5URVJOQUxfRVJST1IiLDRdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX0lOVkFMSUQiLDVdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX05FVFdPUktfRVJST1IiLDZdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX09GRkxJTkUiLDddLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX0lOVEVSTkFMX0VSUk9SIiw4XSxbIkFUVEVTVEFUSU9OX0VSUk9SX0FQSV9OT1RfUkVBRFkiLDldLFsiQVRURVNUQVRJT05fRVJST1JfREVWSUNFX09GRkxJTkUiLDEwXSxbIkFUVEVTVEFUSU9OX0VSUk9SX0tFWV9QQUlSX0lOSVRfRkFJTEVEIiwxMl0sWyJBVFRFU1RBVElPTl9FUlJPUl9TSUdOSU5HX0RBVEFfTUlTU0lORyIsMTNdLFsiQVRURVNUQVRJT05fRVJST1JfU0lHTklOR19GQUlMRUQiLDE0XSxbIkFUVEVTVEFUSU9OX0VSUk9SX0NFUlRfQ0hBSU5fUkVUUklFVkFMX0ZBSUxFRCIsMTVdXSxudWxsLFtbMTEsMTFdXV0nKTtnLnFNPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMubmFtZT1ufX07Zy5TdD1uZXcgZy5xTSgiYWN0aW9uQ29tcGFuaW9uQWRSZW5kZXJlciIpO2cuVWg9bmV3IGcucU0oImFkQWN0aW9uSW50ZXJzdGl0aWFsUmVuZGVyZXIiKTtnLm0yPW5ldyBnLnFNKCJhZHNFbmdhZ2VtZW50UGFuZWxSZW5kZXJlciIpO2cuVyQ9bmV3IGcucU0oImRpc21pc3NhYmxlUGFuZWxUZXh0UG9ydHJhaXRJbWFnZVJlbmRlcmVyIik7Zy5vYT1uZXcgZy5xTSgiYWRzRW5nYWdlbWVudFBhbmVsU2VjdGlvbkxpc3RWaWV3TW9kZWwiKTtnLkFqPW5ldyBnLnFNKCJpbWFnZUNvbXBhbmlvbkFkUmVuZGVyZXIiKTtnLkVoPW5ldyBnLnFNKCJpbnN0cmVhbUFkUGxheWVyT3ZlcmxheVJlbmRlcmVyIik7Zy5GeT1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZFJlbmRlcmVyIik7Zy5HOD1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZFNpbmdsZVNlbGVjdFF1ZXN0aW9uUmVuZGVyZXIiKTtnLnRMPW5ldyBnLnFNKCJpbnN0cmVhbVN1cnZleUFkTXVsdGlTZWxlY3RRdWVzdGlvblJlbmRlcmVyIik7Zy4kSD1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZEFuc3dlclJlbmRlcmVyIik7Zy52eHg9bmV3IGcucU0oImluc3RyZWFtU3VydmV5QWRBbnN3ZXJOb25lT2ZUaGVBYm92ZVJlbmRlcmVyIik7Zy5DYz1uZXcgZy5xTSgiaW5zdHJlYW1WaWRlb0FkUmVuZGVyZXIiKTtnLmkwPW5ldyBnLnFNKCJwbGF5ZXJPdmVybGF5TGF5b3V0UmVuZGVyZXIiKTtnLnlWPW5ldyBnLnFNKCJ2aWRlb0ludGVyc3RpdGlhbEJ1dHRvbmVkQ2VudGVyZWRMYXlvdXRSZW5kZXJlciIpO2cuaFg9bmV3IGcucU0oImFib3ZlRmVlZEFkTGF5b3V0UmVuZGVyZXIiKTtnLnh6PW5ldyBnLnFNKCJiZWxvd1BsYXllckFkTGF5b3V0UmVuZGVyZXIiKTtnLmt6PW5ldyBnLnFNKCJpblBsYXllckFkTGF5b3V0UmVuZGVyZXIiKTtnLmUyPW5ldyBnLnFNKCJpblBsYXllck9yZ2FuaWNPdmVybGF5QWRMYXlvdXRSZW5kZXJlciIpO2cuUmE9bmV3IGcucU0oInBsYXllckJ5dGVzQWRMYXlvdXRSZW5kZXJlciIpO2cuTGk9bmV3IGcucU0oInBsYXllckJ5dGVzU2VxdWVuY2VJdGVtQWRMYXlvdXRSZW5kZXJlciIpO2cudiQ9bmV3IGcucU0oInBsYXllclVuZGVybGF5QWRMYXlvdXRSZW5kZXJlciIpO2cuQlE9bmV3IGcucU0oImFkSW50cm9SZW5kZXJlciIpO2cuVDA9bmV3IGcucU0oInBsYXllckJ5dGVzU2VxdWVudGlhbExheW91dFJlbmRlcmVyIik7Zy53YT1uZXcgZy5xTSgic3VydmV5VGV4dEludGVyc3RpdGlhbFJlbmRlcmVyIik7Zy5RVj1uZXcgZy5xTSgidmlkZW9BZFRyYWNraW5nUmVuZGVyZXIiKTt2YXIgUXhNPW5ldyBnLnFNKCJ2aWRlb0ludGVyc3RpdGlhbENlbnRlcmVkTGF5b3V0Vmlld01vZGVsIik7Zy5kYT1uZXcgZy5xTSgicGxheWVyT3JnYW5pY1RyYW5zaXRpb25PdmVybGF5UmVuZGVyZXIiKTtnLlhHPW5ldyBnLnFNKCJhZFNsb3RSZW5kZXJlciIpO2cuYWE9bmV3IGcucU0oInNxdWVlemViYWNrUGxheWVyU2lkZVBhbmVsUmVuZGVyZXIiKTtnLktjPW5ldyBnLnFNKCJiYW5uZXJJbWFnZUxheW91dFZpZXdNb2RlbCIpO2cuT2g9bmV3IGcucU0oInRvcEJhbm5lckltYWdlVGV4dEljb25CdXR0b25lZExheW91dFZpZXdNb2RlbCIpO2cuUFE9bmV3IGcucU0oImFkc0VuZ2FnZW1lbnRQYW5lbExheW91dFZpZXdNb2RlbCIpO2cubmk9bmV3IGcucU0oImRpc3BsYXlVbmRlcmxheVRleHRHcmlkQ2FyZHNMYXlvdXRWaWV3TW9kZWwiKTt2YXIgcm49Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59fSxzQz1jbGFzcyBleHRlbmRzIHJue2dldCBlbnRpdHlNZXRhZGF0YSgpe3JldHVybiB0aGlzLk4uZW50aXR5TWV0YWRhdGF9c2V0IGVudGl0eU1ldGFkYXRhKG4pe3RoaXMuTi5lbnRpdHlNZXRhZGF0YT1ufX07dmFyIGtqTT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBoNGo9bmV3IGcucU0oImNvbW1hbmRDb250ZXh0Iik7dmFyIHhrdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBMdHc9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgZEUyPW5ldyBnLnFNKCJyYXdDb2xkQ29uZmlnR3JvdXAiKTt2YXIgb3Z0PW5ldyBnLnFNKCJyYXdIb3RDb25maWdHcm91cCIpO2cuTk09bmV3IGcucU0oImNvbW1hbmRFeGVjdXRvckNvbW1hbmQiKTt2YXIgZTR3PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBneHQ9e1ZDOjAsZVo6MSxFcDozMixPcDo2MSxkNzo2NyxBSzoxMDMsSVg6ODYsR0E6NDIsTVg6NjAsTEk6NjIsRGk6NzMsYVg6NzYsdzc6ODgsQ0k6OTAsTjY6OTksSHI6OTgsb1g6MTAwLEZBOjEwMixjODo0MSxQODo2OSx5TDo3MCxKcjo3MSx5TToyLEs0OjI3LEFORFJPSUQ6MyxBdjo1NCx3TToxNCx6ejo5MSxDRTo1NSxkTToyNCxOdToxMDUsYzk6MjAsUDk6MTgsSkg6MjEsdEg6MTA0LFg2OjMwLGpMOjI5LFYzOjI4LHBJOjEwMSxtQjoxMDcsa0Q6MzQsaEg6MzYseTM6MzgsSU9TOjUsVEw6MTUsblE6OTIscmo6NDAscFE6MjUseDc6MTA2LFNBOjE3LFk3OjE5LHNZOjY0LHVPOjY2LGVBOjI2LFpwOjIyLGxPOjMzLEhtOjY4LFVZOjM1LExROjUzLEJtOjEwOCxSTzozNyxLUTozOSxkMjo3LFByOjU3LHlDOjQzLHRLOjU5LEpLOjkzLGlwOjc0LFdyOjc1LGJGOjg1LHpBOjY1LGhLOjgwLFhBOjgsQ006MTAsaUY6NTgscVg6NjMsbVU6NzIscXU6MjMsYkE6MTEselU6MTMsd0o6MTIsCm9OOjE2LFVwOjU2LGc3OjMxLGttOjc3LEFROjg0LGZJOjg3LENoOjg5LHdMOjk0LHpUOjk1LGxMOjEwOX07dmFyIGk5PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1XKG4pe2cuU0UodGhpcyw1LG4pfX07dmFyIHlkPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBYd1U9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEhzPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXRQbGF5ZXJUeXBlKCl7cmV0dXJuIEhXKHRoaXMsMzYpfXNldEhvbWVHcm91cEluZm8obil7cmV0dXJuICQ5KHRoaXMsWHdVLDgxLG4pfWNsZWFyTG9jYXRpb25QbGF5YWJpbGl0eVRva2VuKCl7cmV0dXJuIG96KHRoaXMsODkpfX07dmFyIEo2PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXRWYWx1ZSgpe3JldHVybiBZOSh0aGlzLHZXKHRoaXMsSXYsMikpfX0sSXY9WzIsMyw0LDUsNl07dmFyIHFZUz1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9c2V0VHJhY2tpbmdQYXJhbXMobil7cmV0dXJuIG96KHRoaXMsMSxrVShuLCExKSl9fTt2YXIgZlU9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEVKPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBBNj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9c2V0VG9rZW4obil7cmV0dXJuIGcuU0UodGhpcywyLG4pfX07dmFyIFN5PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1zZXRTYWZldHlNb2RlKG4pe3JldHVybiBLbih0aGlzLDUsbil9fTt2YXIgWUE9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfVcobil7cmV0dXJuICQ5KHRoaXMsSHMsMSxuKX19O3ZhciBHajE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgdFBVPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyICRrYj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBSVGg9bmV3IGcucU0oImNvbnRpbnVhdGlvbkNvbW1hbmQiKTtnLmNFPW5ldyBnLnFNKCJzaWduYWxBY3Rpb24iKTt2YXIgcGo9bmV3IGcucU0oIndlYkNvbW1hbmRNZXRhZGF0YSIpO3ZhciBoazI9bmV3IGcucU0oIm1ldGFkYXRhQmFkZ2VSZW5kZXJlciIpO3ZhciBRWU09bmV3IGcucU0oInNpZ25hbFNlcnZpY2VFbmRwb2ludCIpO3ZhciAkej1uZXcgZy5xTSgiaW5uZXJ0dWJlQ29tbWFuZCIpO3ZhciBEMzE9e1NUOiJFTUJFRERFRF9QTEFZRVJfTU9ERV9VTktOT1dOIixyTDoiRU1CRURERURfUExBWUVSX01PREVfREVGQVVMVCIseHc6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGUCIsS2g6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGTCJ9O3ZhciAkdE09bmV3IGcucU0oImNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCIpO3ZhciBEdEM9bmV3IGcucU0oImVtYmVkZGVkUGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXIiKTt2YXIgYW9VPW5ldyBnLnFNKCJlbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlciIpLHIxcj1uZXcgZy5xTSgiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzQ29sbGFwc2VkUmVuZGVyZXIiKSxzc0M9bmV3IGcucU0oImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc0V4cGFuZGVkUmVuZGVyZXIiKTt2YXIgUyQ9bmV3IGcucU0oImVtYmVkc0luZm9QYW5lbFJlbmRlcmVyIik7dmFyIHJZcj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBzQng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTkEyPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHB3Qz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbCYmbi5wdXNoKHRoaXMuTi5hbHRlcm5hdGVDaGFubmVsKTt0aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbExpc3QmJm4ucHVzaCguLi50aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbExpc3QpO3RoaXMuTi5vbmVvZkNoYW5uZWxFbnRpdHkmJm4ucHVzaCh0aGlzLk4ub25lb2ZDaGFubmVsRW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBZWXI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmVudHJ5Q29sbGVjdGlvbiYmbi5wdXNoKHRoaXMuTi5lbnRyeUNvbGxlY3Rpb24pO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sZl94PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRQbGF5bGlzdCYmbi5wdXNoKHRoaXMuTi5wYXJlbnRQbGF5bGlzdCk7aWYodGhpcy5OLmVudHJpZXMpZm9yKGxldCBXIG9mIHRoaXMuTi5lbnRyaWVzKW4ucHVzaCguLi4obmV3IEhzaChXKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LEhzaD1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4udmlkZW8mJm4ucHVzaCh0aGlzLk4udmlkZW8pO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIEpZYj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZGVzY3JpcHRpb25FbnRpdHkmJm4ucHVzaCh0aGlzLk4uZGVzY3JpcHRpb25FbnRpdHkpO3RoaXMuTi5jcmVhdG9ycyYmbi5wdXNoKC4uLnRoaXMuTi5jcmVhdG9ycyk7dGhpcy5OLnRoZUJpZ2dlc3RGYW4mJm4ucHVzaCh0aGlzLk4udGhlQmlnZ2VzdEZhbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxJX3c9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgU1l3PW5ldyBnLnFNKCJmZWVkYmFja0VuZHBvaW50Iik7dmFyIEFZeD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBta2g9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgS3R4PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIE9zaT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBQTHI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgWnNyPW5ldyBnLnFNKCJpbnRlcmFjdGlvbkxvZ2dpbmdDb21tYW5kTWV0YWRhdGEiKTt2YXIgZDNqPXtsRjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIixuSToiV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIixSWDoiV0VCX0RJU1BMQVlfTU9ERV9NSU5JTUFMX1VJIixaaToiV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIixCcjoiV0VCX0RJU1BMQVlfTU9ERV9GVUxMU0NSRUVOIn07dmFyIFVrcj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Z2V0UGxheWVyVHlwZSgpe3JldHVybiBIVyh0aGlzLDcpfUUxKCl7cmV0dXJuIFk5KHRoaXMsMTkpfXNldFZpZGVvSWQobil7cmV0dXJuIGcuU0UodGhpcywxOSxuKX19O3ZhciBBbT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgU0w9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIFp2PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDUwMCl9fSx5WTE9WzIsMyw1LDYsNywxMSwxMywyMCwyMSwyMiwyMywyNCwyOCwzMiwzNyw0NSw1OSw3Miw3Myw3NCw3Niw3OCw3OSw4MCw4NSw5MSw5NywxMDAsMTAyLDEwNSwxMTEsMTE3LDExOSwxMjYsMTI3LDEzNiwxNDYsMTQ4LDE1MSwxNTYsMTU3LDE1OCwxNTksMTYzLDE2NCwxNjgsMTc2LDE3NywxNzgsMTc5LDE4NCwxODgsMTg5LDE5MCwxOTEsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDgsMjA5LDIxNSwyMTksMjIyLDIyNSwyMjYsMjI3LDIyOSwyMzIsMjMzLDIzNCwyNDAsMjQxLDI0NCwyNDcsMjQ4LDI0OSwyNTEsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjYsMjcwLDI3MiwyNzgsMjg4LDI5MSwyOTMsMzAwLDMwNCwzMDgsMzA5LDMxMCwzMTEsMzEzLDMxNCwzMTksMzIwLDMyMSwzMjMsMzI0LDMyNywzMjgsCjMzMCwzMzEsMzMyLDMzNCwzMzcsMzM4LDM0MCwzNDQsMzQ4LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM2MSwzNjMsMzY0LDM2OCwzNjksMzcwLDM3MywzNzQsMzc1LDM3OCwzODAsMzgxLDM4MywzODgsMzg5LDM5OSw0MDIsNDAzLDQxMCw0MTEsNDEyLDQxMyw0MTQsNDE1LDQxNiw0MTcsNDE4LDQyMyw0MjQsNDI1LDQyNiw0MjcsNDI5LDQzMCw0MzEsNDM5LDQ0MSw0NDQsNDQ4LDQ1OCw0NjksNDcxLDQ3Myw0NzQsNDgwLDQ4MSw0ODIsNDg0LDQ4NSw0ODYsNDkxLDQ5NSw0OTYsNTA2LDUwNyw1MDksNTExLDUxMiw1MTMsNTE0LDUxNSw1MTYsNTE3LDUxOCw1MTksNTIwLDUyMiw1MjMsNTI0LDUyNSw1MjYsNTI3LDUyOCw1MjksNTMwLDUzMSw1MzYsNTM3LDUzOCw1MzksNTQxLDU0NSw1NDcsNTQ4LDU0OSw1NTAsNTUxLDU1Miw1NTMsNTU0LDU1N107Zy5FeGk9bmV3IGcucU0oImxvZ2dpbmdDb250ZXh0Iik7dmFyIE95PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBoNj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9RTEoKXtyZXR1cm4gSlModGhpcyx2Vyh0aGlzLHhBLDEpKX1zZXRWaWRlb0lkKG4pe3JldHVybiBEMih0aGlzLDEseEEsV0gobikpfWdldFBsYXlsaXN0SWQoKXtyZXR1cm4gSlModGhpcyx2Vyh0aGlzLHhBLDIpKX19LHhBPVsxLDJdO3ZhciB1RjI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIGlzWj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB1NXQ9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgb3hoPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGRrdD1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZG93bmxvYWRzTGlzdCYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZHNMaXN0KTt0aGlzLk4uc21hcnREb3dubG9hZHNMaXN0JiZuLnB1c2godGhpcy5OLnNtYXJ0RG93bmxvYWRzTGlzdCk7dGhpcy5OLnJlY29tbWVuZGVkRG93bmxvYWRzTGlzdCYmbi5wdXNoKHRoaXMuTi5yZWNvbW1lbmRlZERvd25sb2Fkc0xpc3QpO3RoaXMuTi5yZWZyZXNoJiZuLnB1c2godGhpcy5OLnJlZnJlc2gpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIGxfWj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucmVmcmVzaCYmbi5wdXNoKHRoaXMuTi5yZWZyZXNoKTtpZih0aGlzLk4uZG93bmxvYWRzKWZvcihsZXQgVyBvZiB0aGlzLk4uZG93bmxvYWRzKW4ucHVzaCguLi4obmV3IHo0dyhXKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LHo0dz1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4udmlkZW8mJm4ucHVzaCh0aGlzLk4udmlkZW8pO3RoaXMuTi5wbGF5bGlzdCYmbi5wdXNoKHRoaXMuTi5wbGF5bGlzdCk7dGhpcy5OLnZpZGVvSXRlbSYmbi5wdXNoKHRoaXMuTi52aWRlb0l0ZW0pO3RoaXMuTi5wbGF5bGlzdEl0ZW0mJm4ucHVzaCh0aGlzLk4ucGxheWxpc3RJdGVtKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBUQTE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIGpCaT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGxheWJhY2tEYXRhJiZuLnB1c2godGhpcy5OLnBsYXliYWNrRGF0YSk7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmbi5wdXNoKHRoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgQ0xpPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEJBVT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZmFrZUNoaWxkcmVuJiZuLnB1c2goLi4udGhpcy5OLmZha2VDaGlsZHJlbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgRnRoPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi52aWRlbyYmbi5wdXNoKHRoaXMuTi52aWRlbyk7dGhpcy5OLnBsYXliYWNrRGF0YSYmbi5wdXNoKHRoaXMuTi5wbGF5YmFja0RhdGEpO3RoaXMuTi5vZmZsaW5lVmlkZW9Qb2xpY3kmJm4ucHVzaCh0aGlzLk4ub2ZmbGluZVZpZGVvUG9saWN5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciB3d1M9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTVB3PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5jaGFubmVsT3duZXImJm4ucHVzaCh0aGlzLk4uY2hhbm5lbE93bmVyKTt0aGlzLk4udmlkZW9zJiZuLnB1c2goLi4udGhpcy5OLnZpZGVvcyk7dGhpcy5OLmNvbGxhYm9yYXRvckNoYW5uZWxzJiZuLnB1c2goLi4udGhpcy5OLmNvbGxhYm9yYXRvckNoYW5uZWxzKTt0aGlzLk4uZG93bmxvYWRTdGF0ZSYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZFN0YXRlKTt0aGlzLk4ucmVmcmVzaCYmbi5wdXNoKHRoaXMuTi5yZWZyZXNoKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBSNGk9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnZpZGVvJiZuLnB1c2godGhpcy5OLnZpZGVvKTt0aGlzLk4uY2hhbm5lbENvbnRyaWJ1dG9yJiZuLnB1c2godGhpcy5OLmNoYW5uZWxDb250cmlidXRvcik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgVlBVPWNsYXNzIGV4dGVuZHMgcm57Sigpe3ZhciBuPVtdO3RoaXMuTi5yZWNvbW1lbmRlZFZpZGVvTWV0YWRhdGEmJm4ucHVzaCguLi4obmV3IFFCcih0aGlzLk4ucmVjb21tZW5kZWRWaWRlb01ldGFkYXRhKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LFFCcj1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4ubG9jYWxJbWFnZUVudGl0aWVzJiZuLnB1c2goLi4udGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZuLnB1c2godGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBjWWk9Y2xhc3MgZXh0ZW5kcyBybntKKCl7dmFyIG49W107dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgYV9qPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5vd25lciYmbi5wdXNoKHRoaXMuTi5vd25lcik7dGhpcy5OLmRvd25sb2FkU3RhdGUmJm4ucHVzaCh0aGlzLk4uZG93bmxvYWRTdGF0ZSk7dGhpcy5OLnVzZXJTdGF0ZSYmbi5wdXNoKC4uLihuZXcgY1lpKHRoaXMuTi51c2VyU3RhdGUpKS5KKCkpO3RoaXMuTi5hZGRpdGlvbmFsTWV0YWRhdGEmJm4ucHVzaCguLi4obmV3IFZQVSh0aGlzLk4uYWRkaXRpb25hbE1ldGFkYXRhKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBuTjI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnVzZXJDaGFubmVsRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyQ2hhbm5lbERldGFpbHMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFdNWj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uY2hhbm5lbE93bmVyJiZuLnB1c2godGhpcy5OLmNoYW5uZWxPd25lcik7dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi5kb3dubG9hZFN0YXR1cyYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZFN0YXR1cyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgREkxPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGJ6dD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB2TnQ9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIga1ByPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGhPdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB4SVo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTE13PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGVPcj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBnTnI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgVVU9bmV3IGcucU0oImNoYW5nZUtleWVkTWFya2Vyc1Zpc2liaWxpdHlDb21tYW5kIik7dmFyIHh0TT1uZXcgZy5xTSgibG9hZE1hcmtlcnNDb21tYW5kIik7dmFyIGVicj1uZXcgZy5xTSgidGltZWx5QWN0aW9uVmlld01vZGVsIik7dmFyIExxQz1uZXcgZy5xTSgidGltZWx5QWN0aW9uc092ZXJsYXlWaWV3TW9kZWwiKTt2YXIgWF9TPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHF2Qz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBHUE09Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgdHhqPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyICRJTT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBySmI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmNvbXBvc2l0ZVNvdXJjZUtleXMmJm4ucHVzaCguLi50aGlzLk4uY29tcG9zaXRlU291cmNlS2V5cyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgczR0PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIE5rUz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZG93bmxvYWRlZFRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkVHJhY2tzKTt0aGlzLk4uc21hcnREb3dubG9hZGVkVHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLnNtYXJ0RG93bmxvYWRlZFRyYWNrcyk7dGhpcy5OLmRvd25sb2FkZWRFcGlzb2RlcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkRXBpc29kZXMpO3RoaXMuTi5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5OLnNtYXJ0RG93bmxvYWRlZEFsYnVtUmVsZWFzZXMmJm4ucHVzaCguLi50aGlzLk4uc21hcnREb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5OLmRvd25sb2FkZWRQbGF5bGlzdHMmJm4ucHVzaCguLi50aGlzLk4uZG93bmxvYWRlZFBsYXlsaXN0cyk7dGhpcy5OLnNtYXJ0RG93bmxvYWRlZFBsYXlsaXN0cyYmbi5wdXNoKC4uLnRoaXMuTi5zbWFydERvd25sb2FkZWRQbGF5bGlzdHMpOwp0aGlzLk4ubWV0YWRhdGFPbmx5VHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLm1ldGFkYXRhT25seVRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgcF9yPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFl2dD1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGxheWJhY2tEYXRhJiZuLnB1c2godGhpcy5OLnBsYXliYWNrRGF0YSk7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmbi5wdXNoKHRoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgSHppPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJm4ucHVzaCh0aGlzLk4ubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTt0aGlzLk4ucHJpbWFyeUFydGlzdHMmJm4ucHVzaCguLi50aGlzLk4ucHJpbWFyeUFydGlzdHMpO3RoaXMuTi5kZXRhaWxzJiZuLnB1c2godGhpcy5OLmRldGFpbHMpO3RoaXMuTi51c2VyRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyRGV0YWlscyk7dGhpcy5OLnRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi50cmFja3MpO3RoaXMuTi5zaGFyZSYmbi5wdXNoKHRoaXMuTi5zaGFyZSk7dGhpcy5OLmRvd25sb2FkTWV0YWRhdGEmJm4ucHVzaCh0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5OLnJlZnJlc2gmJm4ucHVzaCh0aGlzLk4ucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxmSlU9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmFsYnVtUmVsZWFzZSYmCm4ucHVzaCh0aGlzLk4uYWxidW1SZWxlYXNlKTt0aGlzLk4udHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxKSjE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmFsYnVtUmVsZWFzZSYmbi5wdXNoKHRoaXMuTi5hbGJ1bVJlbGVhc2UpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIElKVT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZGV0YWlscyYmbi5wdXNoKHRoaXMuTi5kZXRhaWxzKTt0aGlzLk4udXNlckRldGFpbHMmJm4ucHVzaCh0aGlzLk4udXNlckRldGFpbHMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sU3ZaPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRBcnRpc3QmJm4ucHVzaCh0aGlzLk4ucGFyZW50QXJ0aXN0KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LEFKaT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGFyZW50QXJ0aXN0JiZuLnB1c2godGhpcy5OLnBhcmVudEFydGlzdCk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgbUliPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEtNdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBQVHg9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi50cmFja3MpO3RoaXMuTi5yZWZyZXNoJiZuLnB1c2godGhpcy5OLnJlZnJlc2gpO3RoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJm4ucHVzaCh0aGlzLk4ubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTt0aGlzLk4uZGV0YWlscyYmbi5wdXNoKHRoaXMuTi5kZXRhaWxzKTt0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZE1ldGFkYXRhKTt0aGlzLk4uc2lkZWxvYWRNZXRhZGF0YSYmbi5wdXNoKHRoaXMuTi5zaWRlbG9hZE1ldGFkYXRhKTt0aGlzLk4udXNlckRldGFpbHMmJm4ucHVzaCh0aGlzLk4udXNlckRldGFpbHMpO3RoaXMuTi5lbnRyeUNvbGxlY3Rpb24mJm4ucHVzaCh0aGlzLk4uZW50cnlDb2xsZWN0aW9uKTt0aGlzLk4uc2hhcmUmJm4ucHVzaCh0aGlzLk4uc2hhcmUpO3RoaXMuTi5wb2RjYXN0U2hvd0FkZGl0aW9uYWxNZXRhZGF0YSYmCm4ucHVzaCguLi4obmV3IE96aSh0aGlzLk4ucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEpKS5KKCkpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sT3ppPWNsYXNzIGV4dGVuZHMgcm57Sigpe3ZhciBuPVtdO3RoaXMuTi5jcmVhdG9yRW50aXR5JiZuLnB1c2godGhpcy5OLmNyZWF0b3JFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFp6aT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBVSVo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSYmbi5wdXNoKHRoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkpO3RoaXMuTi5hcnRpc3RzJiZuLnB1c2goLi4udGhpcy5OLmFydGlzdHMpO3RoaXMuTi5hdWRpb01vZGVWZXJzaW9uJiZuLnB1c2godGhpcy5OLmF1ZGlvTW9kZVZlcnNpb24pO3RoaXMuTi52aWRlb01vZGVWZXJzaW9uJiZuLnB1c2godGhpcy5OLnZpZGVvTW9kZVZlcnNpb24pO3RoaXMuTi51c2VyRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyRGV0YWlscyk7dGhpcy5OLmRldGFpbHMmJm4ucHVzaCh0aGlzLk4uZGV0YWlscyk7dGhpcy5OLmFsYnVtUmVsZWFzZSYmbi5wdXNoKHRoaXMuTi5hbGJ1bVJlbGVhc2UpO3RoaXMuTi5zaGFyZSYmbi5wdXNoKHRoaXMuTi5zaGFyZSk7dGhpcy5OLmxpYnJhcnlFZGl0JiZuLnB1c2godGhpcy5OLmxpYnJhcnlFZGl0KTt0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSYmCm4ucHVzaCh0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7dGhpcy5OLmx5cmljcyYmbi5wdXNoKHRoaXMuTi5seXJpY3MpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0seUpTPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRUcmFjayYmbi5wdXNoKHRoaXMuTi5wYXJlbnRUcmFjayk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxFTng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnBhcmVudFRyYWNrJiZuLnB1c2godGhpcy5OLnBhcmVudFRyYWNrKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBucU09bmV3IGcucU0oIm11c2ljRW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXIiKTt2YXIgaXpTPW5ldyBnLnFNKCJzaGFyZUVuZHBvaW50IiksdXhDPW5ldyBnLnFNKCJzaGFyZUVudGl0eUVuZHBvaW50Iiksb05pPW5ldyBnLnFNKCJzaGFyZUVudGl0eVNlcnZpY2VFbmRwb2ludCIpLGRJeD1uZXcgZy5xTSgid2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQiKTtnLlBqPW5ldyBnLnFNKCJ1cmxFbmRwb2ludCIpO2cuSVE9bmV3IGcucU0oIndhdGNoRW5kcG9pbnQiKTt2YXIgek93PW5ldyBnLnFNKCJ3YXRjaFBsYXlsaXN0RW5kcG9pbnQiKTt2YXIgbEoyPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFRrdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBqNFo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgQ1R3PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEJrdz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4udHJhbnNmZXImJm4ucHVzaCh0aGlzLk4udHJhbnNmZXIpO3RoaXMuTi5hZHNQbGF5YmFja0RhdGEmJm4ucHVzaCguLi50aGlzLk4uYWRzUGxheWJhY2tEYXRhKTt0aGlzLk4uZHJtTGljZW5zZSYmbi5wdXNoKHRoaXMuTi5kcm1MaWNlbnNlKTt0aGlzLk4ub2ZmbGluZVZpZGVvUG9saWN5JiZuLnB1c2godGhpcy5OLm9mZmxpbmVWaWRlb1BvbGljeSk7dGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZuLnB1c2godGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBGTXc9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgd19NPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5vZmZsaW5lVmlkZW9TdHJlYW1zJiZuLnB1c2goLi4udGhpcy5OLm9mZmxpbmVWaWRlb1N0cmVhbXMpO3RoaXMuTi5jYXB0aW9uVHJhY2smJm4ucHVzaCguLi50aGlzLk4uY2FwdGlvblRyYWNrKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBNeFM9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgUk8xPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFE0cj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBWeGI9bmV3IGcucU0oInByZWZldGNoV2F0Y2hDb21tYW5kIik7dmFyIGNKWj1uZXcgZy5xTSgidXBkYXRlUHJvZ3Jlc3NCYXJDb21tYW5kIik7dmFyIE5LeD1uZXcgZy5xTSgiY29tcG9zaXRlVmlkZW9PdmVybGF5UmVuZGVyZXIiKTt2YXIgbGFTPW5ldyBnLnFNKCJwYWlkQ29udGVudE92ZXJsYXlSZW5kZXJlciIpO3ZhciBLSTE9bmV3IGcucU0oInBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXIiKSxPVng9bmV3IGcucU0oInBsYXllck11dGVkQXV0b3BsYXlFbmRTY3JlZW5SZW5kZXJlciIpO3ZhciBJb2I9bmV3IGcucU0oInVuc2VyaWFsaXplZFBsYXllclJlc3BvbnNlIiksRHo9bmV3IGcucU0oInVuc2VyaWFsaXplZFBsYXllclJlc3BvbnNlIiksYUp3PW5ldyBnLnFNKCJwbGF5ZXJSZXNwb25zZSIpO3ZhciBuWEM9bmV3IGcucU0oInBsYXlsaXN0RWRpdEVuZHBvaW50Iik7dmFyIFd1Wj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBUZT1uZXcgZy5xTSgicmVlbFdhdGNoRW5kcG9pbnQiKTt2YXIgRCRyPW5ldyBnLnFNKCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiKTtnLllIPW5ldyBnLnFNKCJidXR0b25SZW5kZXJlciIpO2cuSEM9bmV3IGcucU0oInRvZ2dsZUJ1dHRvblJlbmRlcmVyIik7Zy5jUT1uZXcgZy5xTSgiY291bnRlcmZhY3R1YWxSZW5kZXJlciIpO3ZhciBiTXI9bmV3IGcucU0oInJlc29sdmVVcmxDb21tYW5kTWV0YWRhdGEiKTt2YXIgdlhqPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGtpdz1uZXcgZy5xTSgibW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludCIpO3ZhciBoblU9bmV3IGcucU0oInVuc3Vic2NyaWJlRW5kcG9pbnQiKTt2YXIgeCRaPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIE5oMT1uZXcgZy5xTSgic3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIiKTt2YXIgTHUxPW5ldyBnLnFNKCJzdWJzY3JpYmVFbmRwb2ludCIpO3ZhciBlbmk9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgZ1hVPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFhSUz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBxTlo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgR2lNPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHRHdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciAkJDI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgck0xPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHNkaT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBOeTE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgcFJ0PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFZDMj1uZXcgZy5xTSgicXJDb2RlUmVuZGVyZXIiKTt2YXIgWU5aPXtkajoiTElWSU5HX1JPT01fQVBQX01PREVfVU5TUEVDSUZJRUQiLHdqOiJMSVZJTkdfUk9PTV9BUFBfTU9ERV9NQUlOIixBXzoiTElWSU5HX1JPT01fQVBQX01PREVfS0lEUyIsQ1E6IkxJVklOR19ST09NX0FQUF9NT0RFX01VU0lDIixvTzoiTElWSU5HX1JPT01fQVBQX01PREVfVU5QTFVHR0VEIixJTzoiTElWSU5HX1JPT01fQVBQX01PREVfR0FNSU5HIn07dmFyIEhNdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBmTzI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgSk0yPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGJXWj1uZXcgZy5xTSgiYXV0b3BsYXlTd2l0Y2hCdXR0b25SZW5kZXJlciIpO3ZhciB2cXQ9bmV3IGcucU0oImRlc2t0b3BPdmVybGF5Q29uZmlnUmVuZGVyZXIiKTt2YXIgYzNoPW5ldyBnLnFNKCJlbmdhZ2VtZW50UGFuZWxTZWN0aW9uTGlzdFJlbmRlcmVyIik7dmFyIFdHaT1uZXcgZy5xTSgicGxheWxpc3RQYW5lbFJlbmRlcmVyIik7dmFyIElPdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBTTng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgQU14PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIG0kUz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBLdWo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgT01qPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFA4dz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBaTWo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgcFlaPW5ldyBnLnFNKCJjaXBoZXIiKTt2YXIgU2xNPW5ldyBnLnFNKCJwbGF5ZXJWYXJzIik7dmFyIGR2aT1uZXcgZy5xTSgicGxheWVyVmFycyIpO3ZhciBVJFU9Zy5xaS53aW5kb3csSUU9VSRVPy55dD8uY29uZmlnX3x8VSRVPy55dGNmZz8uZGF0YV98fHt9O2cuR2IoInl0LmNvbmZpZ18iLElFKTt2YXIgS3c9W107dmFyIGR4aT0vXltcdy5dKiQvLG9LaT17cTohMCxzZWFyY2hfcXVlcnk6ITB9LHVRaD1TdHJpbmcoeUYpO2cuUkU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5OPW47dGhpcy5KPVd9fSh3aW5kb3csd2luZG93LmRvY3VtZW50KTtnLkdiKCJ5dC5hZHNfLnNpZ25hbHNfLmdldEFkU2lnbmFsc1N0cmluZyIsZnVuY3Rpb24obil7cmV0dXJuIGcuRXQoZy5RRihuKSl9KTtnLlV3KCk7dmFyIFZGPSJYTUxIdHRwUmVxdWVzdCJpbiBnLnFpPygpPT5uZXcgWE1MSHR0cFJlcXVlc3Q6bnVsbDt2YXIgeU1TPSJhYnNvbHV0ZV9leHBlcmltZW50cyBjbGllbnRfZGV2X2RvbWFpbiBjbGllbnRfZGV2X2V4cGZsYWcgY2xpZW50X2Rldl9yZWdleF9tYXAgY2xpZW50X2Rldl9yb290X3VybCBjbGllbnRfcm9sbG91dF9vdmVycmlkZSBleHBmbGFnIGZvcmNlZENhcGFiaWxpdHkganNmZWF0IGpzbW9kZSBtb2RzIHRoZW1lIi5zcGxpdCgiICIpO1suLi55TVNdO3ZhciBMJD17QXV0aG9yaXphdGlvbjoiQVVUSE9SSVpBVElPTiIsIlgtR29vZy1FT00tVmlzaXRvci1JZCI6IkVPTV9WSVNJVE9SX0RBVEEiLCJYLUdvb2ctVmlzaXRvci1JZCI6IlNBTkRCT1hFRF9WSVNJVE9SX0lEIiwiWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSI6IkRPTUFJTl9BRE1JTl9TVEFURSIsIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIjoiQ0hST01FX0NPTk5FQ1RFRF9IRUFERVIiLCJYLVlvdVR1YmUtQ2xpZW50LU5hbWUiOiJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsIlgtWW91VHViZS1DbGllbnQtVmVyc2lvbiI6IklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiwiWC1Zb3VUdWJlLURlbGVnYXRpb24tQ29udGV4dCI6IklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIiwiWC1Zb3VUdWJlLURldmljZSI6IkRFVklDRSIsIlgtWW91dHViZS1JZGVudGl0eS1Ub2tlbiI6IklEX1RPS0VOIiwiWC1Zb3VUdWJlLVBhZ2UtQ0wiOiJQQUdFX0NMIiwKIlgtWW91VHViZS1QYWdlLUxhYmVsIjoiUEFHRV9CVUlMRF9MQUJFTCIsIlgtR29vZy1BdXRoVXNlciI6IlNFU1NJT05fSU5ERVgiLCJYLUdvb2ctUGFnZUlkIjoiREVMRUdBVEVEX1NFU1NJT05fSUQifSxWdWI9WyJhcHAiLCJkZWJ1Z2NzcyIsImRlYnVnanMiLCJleHBmbGFnIiwiZm9yY2VfYWRfcGFyYW1zIiwiZm9yY2VfYWRfZW5jcnlwdGVkIiwiZm9yY2VfdmlyYWxfYWRfcmVzcG9uc2VfcGFyYW1zIiwiZm9yY2VkX2V4cGVyaW1lbnRzIiwiaW5uZXJ0dWJlX3NuYXBzaG90cyIsImlubmVydHViZV9nb2xkZW5zIiwiaW50ZXJuYWxjb3VudHJ5Y29kZSIsImludGVybmFsaXBvdmVycmlkZSIsImFic29sdXRlX2V4cGVyaW1lbnRzIiwiY29uZGl0aW9uYWxfZXhwZXJpbWVudHMiLCJzYmIiLCJzcl9ibnNfYWRkcmVzcyIsLi4ueU1TXSxHUT0hMSxGeDE9eFQ7dmFyIGM0VTtnLiRUPWNsYXNzIGV4dGVuZHMgZy5UYntjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIoYCR7bn0sIGVycm9yQ29kZT0ke1d9YCk7dGhpcy5lcnJvckNvZGU9Vzt0aGlzLnhocj1EO3RoaXMubmFtZT0iUHJvbWlzZUFqYXhFcnJvciJ9fTtjNFU9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy54aHI9bn19O3ZhciBOWD1jbGFzc3tjb25zdHJ1Y3RvcihuPW51bGwpe3RoaXMuTj1uO3RoaXMuVz0wO3RoaXMuSj1udWxsfXRoZW4obixXLEQpe3JldHVybiB0aGlzLk4/dGhpcy5OLnRoZW4obixXLEQpOnRoaXMuVz09PTEmJm4/KG49bi5jYWxsKEQsdGhpcy5KKSkmJnR5cGVvZiBuLnRoZW49PT0iZnVuY3Rpb24iP246Zy5IMChuKTp0aGlzLlc9PT0yJiZXPyhuPVcuY2FsbChELHRoaXMuSikpJiZ0eXBlb2Ygbi50aGVuPT09ImZ1bmN0aW9uIj9uOmcucCQobik6dGhpc31nZXRWYWx1ZSgpe3JldHVybiB0aGlzLkp9fTtOWC5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7dmFyIGYkPSExO2cuTUw9dzh8fE1YO3ZhciBXMDE9L14oWzAtOVwuXSspOihbMC05XC5dKykkLzt2YXIgWGs9e307dmFyIEVYaD0wLHEwPWcuWmw/IndlYmtpdCI6Zy5lUz8ibW96IjpnLmtoPyJtcyI6cmM/Im8iOiIiLGlNeD1nLnJyKCJ5dERvbURvbUdldE5leHRJZCIpfHwoKCk9PisrRVhoKTsKZy5HYigieXREb21Eb21HZXROZXh0SWQiLGlNeCk7dmFyIHVaYj17c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOjEsc3RvcFByb3BhZ2F0aW9uOjEscHJldmVudE1vdXNlRXZlbnQ6MSxwcmV2ZW50TWFuaXB1bGF0aW9uOjEscHJldmVudERlZmF1bHQ6MSxsYXllclg6MSxsYXllclk6MSxzY3JlZW5YOjEsc2NyZWVuWToxLHNjYWxlOjEscm90YXRpb246MSx3ZWJraXRNb3ZlbWVudFg6MSx3ZWJraXRNb3ZlbWVudFk6MX0sZnk9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50eXBlPSIiO3RoaXMuc3RhdGU9dGhpcy5zb3VyY2U9dGhpcy5kYXRhPXRoaXMuY3VycmVudFRhcmdldD10aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wO3RoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuY3RybEtleT10aGlzLmFsdEtleT0hMTt0aGlzLnJvdGF0aW9uPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9MDt0aGlzLnNjYWxlPTE7dGhpcy5jaGFuZ2VkVG91Y2hlcz10aGlzLnRvdWNoZXM9Cm51bGw7dHJ5e2lmKG49bnx8d2luZG93LmV2ZW50KXt0aGlzLmV2ZW50PW47Zm9yKGxldCBiIGluIG4pYiBpbiB1WmJ8fCh0aGlzW2JdPW5bYl0pO3RoaXMuc2NhbGU9bi5zY2FsZTt0aGlzLnJvdGF0aW9uPW4ucm90YXRpb247dmFyIFc9bi50YXJnZXR8fG4uc3JjRWxlbWVudDtXJiZXLm5vZGVUeXBlPT0zJiYoVz1XLnBhcmVudE5vZGUpO3RoaXMudGFyZ2V0PVc7dmFyIEQ9bi5yZWxhdGVkVGFyZ2V0O2lmKEQpdHJ5e0Q9RC5ub2RlTmFtZT9EOm51bGx9Y2F0Y2goYil7RD1udWxsfWVsc2UgdGhpcy50eXBlPT0ibW91c2VvdmVyIj9EPW4uZnJvbUVsZW1lbnQ6dGhpcy50eXBlPT0ibW91c2VvdXQiJiYoRD1uLnRvRWxlbWVudCk7dGhpcy5yZWxhdGVkVGFyZ2V0PUQ7dGhpcy5jbGllbnRYPW4uY2xpZW50WCE9dm9pZCAwP24uY2xpZW50WDpuLnBhZ2VYO3RoaXMuY2xpZW50WT1uLmNsaWVudFkhPXZvaWQgMD9uLmNsaWVudFk6bi5wYWdlWTt0aGlzLmtleUNvZGU9bi5rZXlDb2RlP24ua2V5Q29kZToKbi53aGljaDt0aGlzLmNoYXJDb2RlPW4uY2hhckNvZGV8fCh0aGlzLnR5cGU9PSJrZXlwcmVzcyI/dGhpcy5rZXlDb2RlOjApO3RoaXMuYWx0S2V5PW4uYWx0S2V5O3RoaXMuY3RybEtleT1uLmN0cmxLZXk7dGhpcy5zaGlmdEtleT1uLnNoaWZ0S2V5O3RoaXMubWV0YUtleT1uLm1ldGFLZXk7dGhpcy5OPW4ucGFnZVg7dGhpcy5KPW4ucGFnZVl9fWNhdGNoKGIpe319cHJldmVudERlZmF1bHQoKXt0aGlzLmV2ZW50JiYodGhpcy5ldmVudC5yZXR1cm5WYWx1ZT0hMSx0aGlzLmV2ZW50LnByZXZlbnREZWZhdWx0JiZ0aGlzLmV2ZW50LnByZXZlbnREZWZhdWx0KCkpfXN0b3BQcm9wYWdhdGlvbigpe3RoaXMuZXZlbnQmJih0aGlzLmV2ZW50LmNhbmNlbEJ1YmJsZT0hMCx0aGlzLmV2ZW50LnN0b3BQcm9wYWdhdGlvbiYmdGhpcy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSl9c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl7dGhpcy5ldmVudCYmKHRoaXMuZXZlbnQuY2FuY2VsQnViYmxlPSEwLAp0aGlzLmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmdGhpcy5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9fTtnLllSPWcucWkueXRFdmVudHNFdmVudHNMaXN0ZW5lcnN8fHt9O2cuR2IoInl0RXZlbnRzRXZlbnRzTGlzdGVuZXJzIixnLllSKTt2YXIgSEI9Zy5xaS55dEV2ZW50c0V2ZW50c0NvdW50ZXJ8fHtjb3VudDowfTtnLkdiKCJ5dEV2ZW50c0V2ZW50c0NvdW50ZXIiLEhCKTt2YXIgb1hoPWcud0QoZnVuY3Rpb24oKXt2YXIgbj0hMTt0cnl7bGV0IFc9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7bj0hMH19KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsVyl9Y2F0Y2goVyl7fXJldHVybiBufSksSk89Zy53RChmdW5jdGlvbigpe3ZhciBuPSExOwp0cnl7bGV0IFc9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJjYXB0dXJlIix7Z2V0OmZ1bmN0aW9uKCl7bj0hMH19KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsVyl9Y2F0Y2goVyl7fXJldHVybiBufSk7dmFyIGZqO2ZqPXdpbmRvdztnLlI9ZmoueXRjc2kmJmZqLnl0Y3NpLm5vdz9mai55dGNzaS5ub3c6ZmoucGVyZm9ybWFuY2UmJmZqLnBlcmZvcm1hbmNlLnRpbWluZyYmZmoucGVyZm9ybWFuY2Uubm93JiZmai5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0PygpPT5mai5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0K2ZqLnBlcmZvcm1hbmNlLm5vdygpOigpPT4obmV3IERhdGUpLmdldFRpbWUoKTtnLml4KG1ZLGcuRk0pO21ZLnByb3RvdHlwZS5EPWZ1bmN0aW9uKG4pe24uTj09PXZvaWQgMCYmcHkobik7dmFyIFc9bi5OO24uSj09PXZvaWQgMCYmcHkobik7dGhpcy5OPW5ldyBnLk1ZKFcsbi5KKX07Cm1ZLnByb3RvdHlwZS5FdT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk58fG5ldyBnLk1ZfTsKbVkucHJvdG90eXBlLk89ZnVuY3Rpb24oKXtpZih0aGlzLk4pe3ZhciBuPSgwLGcuUikoKTtpZih0aGlzLlghPTApe3ZhciBXPXRoaXMuVixEPXRoaXMuTixiPVcueC1ELng7Vz1XLnktRC55O2I9TWF0aC5zcXJ0KGIqYitXKlcpLyhuLXRoaXMuWCk7dGhpcy5KW3RoaXMuV109TWF0aC5hYnMoKGItdGhpcy5qKS90aGlzLmopPi41PzE6MDtXPTA7Zm9yKEQ9MDtEPDQ7RCsrKVcrPXRoaXMuSltEXXx8MDtXPj0zJiZ0aGlzLksoKTt0aGlzLmo9Yn10aGlzLlg9bjt0aGlzLlY9dGhpcy5OO3RoaXMuVz0odGhpcy5XKzEpJTR9fTsKbVkucHJvdG90eXBlLm1BPWZ1bmN0aW9uKCl7RHIodGhpcy5ZKTtnLlNfKHRoaXMuY0opfTtnLkpMPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuVz1bXTt0aGlzLks9bnx8dGhpc31OTihuLFcsRCxiLHYpe0Q9UFYoKDAsZy5LdCkoRCxifHx0aGlzLkspKTtEPXt0YXJnZXQ6bixuYW1lOlcsY2FsbGJhY2s6RH07dmFyIGs7diYmb1hoKCkmJihrPXtwYXNzaXZlOiEwfSk7bi5hZGRFdmVudExpc3RlbmVyKFcsRC5jYWxsYmFjayxrKTt0aGlzLlcucHVzaChEKTtyZXR1cm4gRH13SChuKXtmb3IobGV0IFc9MDtXPHRoaXMuVy5sZW5ndGg7VysrKWlmKHRoaXMuV1tXXT09bil7dGhpcy5XLnNwbGljZShXLDEpO24udGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIobi5uYW1lLG4uY2FsbGJhY2spO2JyZWFrfX1KKG4pe2Zvcig7dGhpcy5XLmxlbmd0aDspe2xldCBXPXRoaXMuVy5wb3AoKSxEO24mJm9YaCgpJiYoRD17cGFzc2l2ZTohMH0pO1cudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoVy5uYW1lLFcuY2FsbGJhY2ssRCl9fW1BKCl7dGhpcy5KKCk7CnN1cGVyLm1BKCl9fTt2YXIgd1laPVsiYXR0L2dldCJdLGRRWj1bImVtYmVkZGVkX3BsYXllciJdLGQkUz1bInNoYXJlL2dldF9zaGFyZV9wYW5lbCJdLHpudD1bInNoYXJlL2dldF93ZWJfcGxheWVyX3NoYXJlX3BhbmVsIl0sbE9NPVsiZmVlZGJhY2siXSxUeXc9WyJub3RpZmljYXRpb24vbW9kaWZ5X2NoYW5uZWxfcHJlZmVyZW5jZSJdLHF5aj1bInBsYXllciJdLGpkeD1bImJyb3dzZS9lZGl0X3BsYXlsaXN0Il0sc3YyPVsicmVlbC9yZWVsX2l0ZW1fd2F0Y2giXSxONGg9WyJuYXZpZ2F0aW9uL3Jlc29sdmVfdXJsIl0sQ0diPVsiYWNjb3VudC9zZXRfc2V0dGluZyJdLEM4Yj1bInN1YnNjcmlwdGlvbi9zdWJzY3JpYmUiXSxCeWk9WyJzdWJzY3JpcHRpb24vdW5zdWJzY3JpYmUiXSwkMUM9WyJuZXh0IiwidW5wbHVnZ2VkL3dhdGNoX25leHQiXTt2YXIgT1A9e0JwOmcud0QoZnVuY3Rpb24oKXt0cnl7bGV0IFc9bmV3IFdTO3ZhciBuPVcuaXNBdmFpbGFibGUoKT9XOm51bGx9Y2F0Y2goVyl7cmV0dXJuIG51bGx9cmV0dXJuIG4/bmV3IFZLKG4pOm51bGx9KSwKcWI6Zy53RChmdW5jdGlvbigpe3ZhciBuPW5ldyBEUTtyZXR1cm4gbi5pc0F2YWlsYWJsZSgpP25ldyBWSyhuKTpudWxsfSl9O2cuSVY9d2luZG93Lnl0JiZ3aW5kb3cueXQubXNnc198fHdpbmRvdy55dGNmZyYmd2luZG93Lnl0Y2ZnLm1zZ3N8fHt9O2cuR2IoInl0Lm1zZ3NfIixnLklWKTt2YXIgV2I9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPXZvaWQgMDt0aGlzLk49ITE7bi5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0IixXPT57Vy5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuSj1XfSk7Cm4uYWRkRXZlbnRMaXN0ZW5lcigiYXBwaW5zdGFsbGVkIiwoKT0+e3RoaXMuTj0hMH0se29uY2U6ITB9KX19O3ZhciBFUD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc0I9ITB9YWoobixXKXtuPXt9O3ZhciBEPVtdOyJVU0VSX1NFU1NJT05fSUQiaW4gSUUmJkQucHVzaCh7a2V5OiJ1Iix2YWx1ZTpnLkFyKCJVU0VSX1NFU1NJT05fSUQiKX0pO2lmKEQ9Qk8oRCkpbi5BdXRob3JpemF0aW9uPUQsRD1XPVc/LnNlc3Npb25JbmRleCxEPT09dm9pZCAwJiYoRD1OdW1iZXIoZy5BcigiU0VTU0lPTl9JTkRFWCIsMCkpLEQ9aXNOYU4oRCk/MDpEKSxnLmwoInZvaWNlX3NlYXJjaF9hdXRoX2hlYWRlcl9yZW1vdmFsIil8fChuWyJYLUdvb2ctQXV0aFVzZXIiXT1ELnRvU3RyaW5nKCkpLCJJTk5FUlRVQkVfSE9TVF9PVkVSUklERSJpbiBJRXx8KG5bIlgtT3JpZ2luIl09d2luZG93LmxvY2F0aW9uLm9yaWdpbiksVz09PXZvaWQgMCYmIkRFTEVHQVRFRF9TRVNTSU9OX0lEImluIElFJiYoblsiWC1Hb29nLVBhZ2VJZCJdPWcuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikpO3JldHVybiBufX07dmFyIHU5PXtpZGVudGl0eVR5cGU6IlVOQVVUSEVOVElDQVRFRF9JREVOVElUWV9UWVBFX1VOS05PV04ifTt2YXIgbE89Zy5ycigieXRnbG9iYWwucHJlZnNVc2VyUHJlZnNQcmVmc18iKXx8e307Zy5HYigieXRnbG9iYWwucHJlZnNVc2VyUHJlZnNQcmVmc18iLGxPKTsKdmFyIHgzYj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj1nLkFyKCJBTFRfUFJFRl9DT09LSUVfTkFNRSIsIlBSRUYiKTt0aGlzLko9Zy5BcigiQUxUX1BSRUZfQ09PS0lFX0RPTUFJTiIsInlvdXR1YmUuY29tIik7dmFyIG49Zy5TZCh0aGlzLk4pO24mJnRoaXMucGFyc2Uobil9Z2V0KG4sVyl7ejEobik7ZEoobik7bj1sT1tuXSE9PXZvaWQgMD9sT1tuXS50b1N0cmluZygpOm51bGw7cmV0dXJuIG4hPW51bGw/bjpXP1c6IiJ9c2V0KG4sVyl7ejEobik7ZEoobik7aWYoVz09bnVsbCl0aHJvdyBFcnJvcigiRXhwZWN0ZWROb3ROdWxsIik7bE9bbl09Vy50b1N0cmluZygpfVFRKG4pe3JldHVybiEhKChUMShgZiR7TWF0aC5mbG9vcihuLzMxKSsxfWApfHwwKSYxPDxuJTMxKX1yZW1vdmUobil7ejEobik7ZEoobik7ZGVsZXRlIGxPW25dfXNhdmUoKXtJSyh0aGlzLk4sdGhpcy5kdW1wKCksNjMwNzJFMyx0aGlzLkosITApfWNsZWFyKCl7Zy50SyhsTyl9ZHVtcCgpe3ZhciBuPVtdO2ZvcihsZXQgVyBpbiBsTylsTy5oYXNPd25Qcm9wZXJ0eShXKSYmCm4ucHVzaChgJHtXfT1gK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcobE9bV10pKSk7cmV0dXJuIG4uam9pbigiJiIpfXBhcnNlKG4pe249ZGVjb2RlVVJJQ29tcG9uZW50KG4pLnNwbGl0KCImIik7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspe3ZhciBXPW5bRF0uc3BsaXQoIj0iKTtsZXQgYj1XWzBdOyhXPVdbMV0pJiYobE9bYl09Vy50b1N0cmluZygpKX19fSx1Tzt2YXIgQ3k9e2JsdWV0b290aDoiQ09OTl9ESVNDTyIsY2VsbHVsYXI6IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiIsZXRoZXJuZXQ6IkNPTk5fV0lGSSIsbm9uZToiQ09OTl9OT05FIix3aWZpOiJDT05OX1dJRkkiLHdpbWF4OiJDT05OX0NFTExVTEFSXzRHIixvdGhlcjoiQ09OTl9VTktOT1dOIix1bmtub3duOiJDT05OX1VOS05PV04iLCJzbG93LTJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjNnIjoiQ09OTl9DRUxMVUxBUl8zRyIsIjRnIjoiQ09OTl9DRUxMVUxBUl80RyJ9LHpxdz17Q09OTl9ERUZBVUxUOjAsQ09OTl9VTktOT1dOOjEsQ09OTl9OT05FOjIsQ09OTl9XSUZJOjMsQ09OTl9DRUxMVUxBUl8yRzo0LENPTk5fQ0VMTFVMQVJfM0c6NSxDT05OX0NFTExVTEFSXzRHOjYsQ09OTl9DRUxMVUxBUl9VTktOT1dOOjcsQ09OTl9ESVNDTzo4LENPTk5fQ0VMTFVMQVJfNUc6OSxDT05OX1dJRklfTUVURVJFRDoxMCxDT05OX0NFTExVTEFSXzVHX1NBOjExLApDT05OX0NFTExVTEFSXzVHX05TQToxMixDT05OX1dJUkVEOjMwLENPTk5fSU5WQUxJRDozMX0sbEJyPXtFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX1VOS05PV046MCxFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX09GRkxJTkU6MSxFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX1NMT1dfMkc6MixFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzJHOjMsRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8zRzo0LEVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfNEc6NX0sRms9eyJzbG93LTJnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV9TTE9XXzJHIiwiMmciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzJHIiwiM2ciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzNHIiwiNGciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzRHIn07Zy5ReD1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sLi4uVyl7c3VwZXIobik7dGhpcy5hcmdzPVsuLi5XXTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgRnVNPWNsYXNze0xTKG4sVyl7cmV0dXJuIGcuVngoMCxuLDEsVyl9fTtnLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UudGltZXJJZE1hcF8iKTt2YXIgV049Y2xhc3MgZXh0ZW5kcyBGdU17c08obil7aWYobj09PXZvaWQgMHx8IU51bWJlci5pc05hTihOdW1iZXIobikpKXt2YXIgVz1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2FuY2VsSm9iIik7Vz9XKG4pOndpbmRvdy5jbGVhclRpbWVvdXQobil9fXN0YXJ0KCl7dmFyIG49Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlLnN0YXJ0Iik7biYmbigpfXBhdXNlKCl7dmFyIG49Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlLnBhdXNlIik7biYmbigpfX0sdGE9Zy5EeSgpO3ZhciB0ST1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49KG49Zy52UyhuKSk/bmV3IFFLKG4pOm51bGw7dGhpcy5XPWRvY3VtZW50LmRvbWFpbnx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfUooKXtyZXR1cm4hIXRoaXMuTn1zZXQobixXLEQsYil7RD1EfHwzMTEwNEUzO3RoaXMucmVtb3ZlKG4pO2lmKHRoaXMuSigpKXRyeXt0aGlzLk4uc2V0KG4sVyxEYXRlLm5vdygpK0QqMUUzKTtyZXR1cm59Y2F0Y2goayl7fXZhciB2PSIiO2lmKGIpdHJ5e3Y9ZXNjYXBlKChuZXcgbGUpLmJZKFcpKX1jYXRjaChrKXtyZXR1cm59ZWxzZSB2PWVzY2FwZShXKTtJSyhuLHYsRCx0aGlzLlcpfWdldChuLFcpe3ZhciBEPXZvaWQgMCxiPSF0aGlzLkooKTtpZighYil0cnl7RD10aGlzLk4uZ2V0KG4pfWNhdGNoKHYpe2I9ITB9aWYoYiYmKEQ9Zy5TZChuKSkmJihEPXVuZXNjYXBlKEQpLFcpKXRyeXtEPUpTT04ucGFyc2UoRCl9Y2F0Y2godil7dGhpcy5yZW1vdmUobiksRD12b2lkIDB9cmV0dXJuIER9cmVtb3ZlKG4pe3RoaXMuSigpJiYKdGhpcy5OLnJlbW92ZShuKTtBeShuLCIvIix0aGlzLlcpfX07dmFyIHZOPSgoKT0+e3ZhciBuO3JldHVybigpPT57bnx8KG49bmV3IHRJKCJ5dGlkYiIpKTtyZXR1cm4gbn19KSgpO3ZhciB4dT1bXSxoYz0hMTt2YXIgd1JNPXtBVVRIX0lOVkFMSUQ6Ik5vIHVzZXIgaWRlbnRpZmllciBzcGVjaWZpZWQuIixFWFBMSUNJVF9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGV4cGxpY2l0bHkgYWJvcnRlZC4iLElEQl9OT1RfU1VQUE9SVEVEOiJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZC4iLE1JU1NJTkdfSU5ERVg6IkluZGV4IG5vdCBjcmVhdGVkLiIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJPYmplY3Qgc3RvcmVzIG5vdCBjcmVhdGVkLiIsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIGRlbGV0ZWQgYmVjYXVzZSBleHBlY3RlZCBvYmplY3Qgc3RvcmVzIHdlcmUgbm90IGNyZWF0ZWQuIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIHJlb3BlbmVkIGJlY2F1c2UgZXhwZWN0ZWQgb2JqZWN0IHN0b3JlcyB3ZXJlIG5vdCBjcmVhdGVkLiIsVU5LTk9XTl9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQgZm9yIHVua25vd24gcmVhc29ucy4iLApRVU9UQV9FWENFRURFRDoiVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gZXhjZWVkZWQgaXRzIHF1b3RhIGxpbWl0YXRpb25zLiIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IlRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG1heSBoYXZlIGZhaWxlZCBiZWNhdXNlIG9mIGV4Y2VlZGluZyBxdW90YSBsaW1pdGF0aW9ucy4iLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiJDYW4ndCBzdGFydCBhIHRyYW5zYWN0aW9uIG9uIGEgY2xvc2VkIGRhdGFiYXNlIixJTkNPTVBBVElCTEVfREJfVkVSU0lPTjoiVGhlIGJpbmFyeSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZGF0YWJhc2UgdmVyc2lvbiJ9LE1HUz17QVVUSF9JTlZBTElEOiJFUlJPUiIsRVhFQ1VURV9UUkFOU0FDVElPTl9PTl9DTE9TRURfREI6IldBUk5JTkciLEVYUExJQ0lUX0FCT1JUOiJJR05PUkVEIixJREJfTk9UX1NVUFBPUlRFRDoiRVJST1IiLE1JU1NJTkdfSU5ERVg6IldBUk5JTkciLE1JU1NJTkdfT0JKRUNUX1NUT1JFUzoiRVJST1IiLApEQl9ERUxFVEVEX0JZX01JU1NJTkdfT0JKRUNUX1NUT1JFUzoiV0FSTklORyIsREJfUkVPUEVORURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJXQVJOSU5HIixRVU9UQV9FWENFRURFRDoiV0FSTklORyIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IldBUk5JTkciLFVOS05PV05fQUJPUlQ6IldBUk5JTkciLElOQ09NUEFUSUJMRV9EQl9WRVJTSU9OOiJXQVJOSU5HIn0sUm5pPXtBVVRIX0lOVkFMSUQ6ITEsRVhFQ1VURV9UUkFOU0FDVElPTl9PTl9DTE9TRURfREI6ITEsRVhQTElDSVRfQUJPUlQ6ITEsSURCX05PVF9TVVBQT1JURUQ6ITEsTUlTU0lOR19JTkRFWDohMSxNSVNTSU5HX09CSkVDVF9TVE9SRVM6ITEsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6ITEsREJfUkVPUEVORURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLFFVT1RBX0VYQ0VFREVEOiExLFFVT1RBX01BWUJFX0VYQ0VFREVEOiEwLFVOS05PV05fQUJPUlQ6ITAsSU5DT01QQVRJQkxFX0RCX1ZFUlNJT046ITF9LApxTD1jbGFzcyBleHRlbmRzIGcuUXh7Y29uc3RydWN0b3IobixXPXt9LEQ9d1JNW25dLGI9TUdTW25dLHY9Um5pW25dKXtzdXBlcihELHtuYW1lOiJZdElkYktub3duRXJyb3IiLGlzU3c6c2VsZi5kb2N1bWVudD09PXZvaWQgMCxpc0lmcmFtZTpzZWxmIT09c2VsZi50b3AsdHlwZTpuLC4uLld9KTt0aGlzLnR5cGU9bjt0aGlzLm1lc3NhZ2U9RDt0aGlzLmxldmVsPWI7dGhpcy5OPXY7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMscUwucHJvdG90eXBlKX19LFFkUz1jbGFzcyBleHRlbmRzIHFMe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoIk1JU1NJTkdfT0JKRUNUX1NUT1JFUyIse2V4cGVjdGVkT2JqZWN0U3RvcmVzOlcsZm91bmRPYmplY3RTdG9yZXM6bn0sd1JNLk1JU1NJTkdfT0JKRUNUX1NUT1JFUyk7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsUWRTLnByb3RvdHlwZSl9fSx0Yz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLmluZGV4PQpuO3RoaXMub2JqZWN0U3RvcmU9VztPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0Yy5wcm90b3R5cGUpfX0sTDBpPVsiVGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZyIsIkNhbid0IHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBjbG9zZWQgZGF0YWJhc2UiLCJBIG11dGF0aW9uIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZGF0YWJhc2UgdGhhdCBkaWQgbm90IGFsbG93IG11dGF0aW9ucyJdO3ZhciBmRj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19LHNSPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuc3RhdGU9e3N0YXR1czoiUEVORElORyJ9O3RoaXMuTj1bXTt0aGlzLko9W107bj1uLk47dmFyIFc9Yj0+e2lmKHRoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciKXt0aGlzLnN0YXRlPXtzdGF0dXM6IkZVTEZJTExFRCIsdmFsdWU6Yn07Zm9yKGxldCB2IG9mIHRoaXMuTil2KCl9fSxEPWI9PntpZih0aGlzLnN0YXRlLnN0YXR1cz09PSJQRU5ESU5HIil7dGhpcy5zdGF0ZT17c3RhdHVzOiJSRUpFQ1RFRCIsCnJlYXNvbjpifTtmb3IobGV0IHYgb2YgdGhpcy5KKXYoKX19Owp0cnl7bihXLEQpfWNhdGNoKGIpe0QoYil9fXN0YXRpYyBhbGwobil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9Pnt2YXIgYj1bXSx2PW4ubGVuZ3RoO3Y9PT0wJiZXKGIpO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7KytrKXNSLnJlc29sdmUobltrXSkudGhlbihoPT57YltrXT1oO3YtLTt2PT09MCYmVyhiKX0pLmNhdGNoKGg9PntEKGgpfSl9KSl9c3RhdGljIHJlc29sdmUobil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9PntuIGluc3RhbmNlb2Ygc1I/bi50aGVuKFcsRCk6VyhuKX0pKX1zdGF0aWMgcmVqZWN0KG4pe3JldHVybiBuZXcgc1IobmV3IGZGKChXLEQpPT57RChuKX0pKX10aGVuKG4sVyl7dmFyIEQ9bj8/Z1VyLGI9Vz8/ZXExOwpyZXR1cm4gbmV3IHNSKG5ldyBmRigodixrKT0+e3RoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciPyh0aGlzLk4ucHVzaCgoKT0+e3BGKHRoaXMsdGhpcyxELHYsayl9KSx0aGlzLkoucHVzaCgoKT0+e1l1KHRoaXMsdGhpcyxiLHYsayl9KSk6dGhpcy5zdGF0ZS5zdGF0dXM9PT0iRlVMRklMTEVEIj9wRih0aGlzLHRoaXMsRCx2LGspOnRoaXMuc3RhdGUuc3RhdHVzPT09IlJFSkVDVEVEIiYmWXUodGhpcyx0aGlzLGIsdixrKX0pKX1jYXRjaChuKXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCxuKX19O3ZhciBxXzI9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLnJlcXVlc3Q9bjt0aGlzLmN1cnNvcj1XfX07dmFyIFlfcj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMub3B0aW9ucz1XO3RoaXMudHJhbnNhY3Rpb25Db3VudD0wO3RoaXMuVz1NYXRoLnJvdW5kKCgwLGcuUikoKSk7dGhpcy5KPSExfWFkZChuLFcsRCl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLEdROiEwLGNvbW1pdDpBYygpfSxiPT5iLm9iamVjdFN0b3JlKG4pLmFkZChXLEQpKX1jbGVhcihuKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWR3cml0ZSIsCkdROiEwfSxXPT5XLm9iamVjdFN0b3JlKG4pLmNsZWFyKCkpfWNsb3NlKCl7dGhpcy5OLmNsb3NlKCk7CnRoaXMub3B0aW9ucz8uY2xvc2VkJiZ0aGlzLm9wdGlvbnMuY2xvc2VkKCl9Y291bnQobixXKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWRvbmx5IixHUTohMCxjb21taXQ6QWMoKX0sRD0+RC5vYmplY3RTdG9yZShuKS5jb3VudChXKSl9ZGVsZXRlKG4sVyl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLApHUTohMCxjb21taXQ6QWMoKSYmIShXIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UpfSxEPT5ELm9iamVjdFN0b3JlKG4pLmRlbGV0ZShXKSl9Z2V0KG4sVyl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkb25seSIsCkdROiEwLGNvbW1pdDpBYygpfSxEPT5ELm9iamVjdFN0b3JlKG4pLmdldChXKSl9Z2V0QWxsKG4sVyxEKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWRvbmx5IiwKR1E6ITB9LGI9PmIub2JqZWN0U3RvcmUobikuZ2V0QWxsKFcsRCkpfXB1dChuLFcsRCl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLApHUTohMCxjb21taXQ6QWMoKX0sYj0+Yi5vYmplY3RTdG9yZShuKS5wdXQoVyxEKSl9b2JqZWN0U3RvcmVOYW1lcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuTi5vYmplY3RTdG9yZU5hbWVzKX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuTi5uYW1lfX0sUE49Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59YWRkKG4sVyl7cmV0dXJuIEpjKHRoaXMuTi5hZGQobixXKSl9YXV0b0luY3JlbWVudCgpe3JldHVybiB0aGlzLk4uYXV0b0luY3JlbWVudH1jbGVhcigpe3JldHVybiBKYyh0aGlzLk4uY2xlYXIoKSkudGhlbigoKT0+e30pfWNvdW50KG4pe3JldHVybiBKYyh0aGlzLk4uY291bnQobikpfWRlbGV0ZShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIElEQktleVJhbmdlP3RYVSh0aGlzLG4pOkpjKHRoaXMuTi5kZWxldGUobikpfWdldChuKXtyZXR1cm4gSmModGhpcy5OLmdldChuKSl9Z2V0QWxsKG4sVyl7cmV0dXJuImdldEFsbCJpbiBJREJPYmplY3RTdG9yZS5wcm90b3R5cGU/SmModGhpcy5OLmdldEFsbChuLApXKSk6JDN4KHRoaXMsbixXKX1pbmRleChuKXt0cnl7cmV0dXJuIG5ldyBWR2godGhpcy5OLmluZGV4KG4pKX1jYXRjaChXKXtpZihXIGluc3RhbmNlb2YgRXJyb3ImJlcubmFtZT09PSJOb3RGb3VuZEVycm9yIil0aHJvdyBuZXcgdGMobix0aGlzLk4ubmFtZSk7CnRocm93IFc7fX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuTi5uYW1lfWtleVBhdGgoKXtyZXR1cm4gdGhpcy5OLmtleVBhdGh9cHV0KG4sVyl7cmV0dXJuIEpjKHRoaXMuTi5wdXQobixXKSl9fSxtWD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bjt0aGlzLko9bmV3IE1hcDt0aGlzLmFib3J0ZWQ9ITE7dGhpcy5kb25lPW5ldyBQcm9taXNlKChXLEQpPT57dGhpcy5OLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIiwoKT0+e1coKX0pOwp0aGlzLk4uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGI9PntiLmN1cnJlbnRUYXJnZXQ9PT1iLnRhcmdldCYmRCh0aGlzLk4uZXJyb3IpfSk7CnRoaXMuTi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCk9Pnt2YXIgYj10aGlzLk4uZXJyb3I7aWYoYilEKGIpO2Vsc2UgaWYoIXRoaXMuYWJvcnRlZCl7Yj1xTDt2YXIgdj10aGlzLk4ub2JqZWN0U3RvcmVOYW1lcztsZXQgaz1bXTtmb3IobGV0IGg9MDtoPHYubGVuZ3RoO2grKyl7bGV0IHg9di5pdGVtKGgpO2lmKHg9PT1udWxsKXRocm93IEVycm9yKCJJbnZhcmlhbnQ6IGl0ZW0gaW4gRE9NU3RyaW5nTGlzdCBpcyBudWxsIik7ay5wdXNoKHgpfWI9bmV3IGIoIlVOS05PV05fQUJPUlQiLHtvYmplY3RTdG9yZU5hbWVzOmsuam9pbigpLGRiTmFtZTp0aGlzLk4uZGIubmFtZSxtb2RlOnRoaXMuTi5tb2RlfSk7RChiKX19KX0pfWFib3J0KCl7dGhpcy5OLmFib3J0KCk7CnRoaXMuYWJvcnRlZD0hMDt0aHJvdyBuZXcgcUwoIkVYUExJQ0lUX0FCT1JUIik7fWNvbW1pdCgpe3RoaXMuYWJvcnRlZHx8dGhpcy5OLmNvbW1pdD8uKCl9b2JqZWN0U3RvcmUobil7bj10aGlzLk4ub2JqZWN0U3RvcmUobik7dmFyIFc9dGhpcy5KLmdldChuKTtXfHwoVz1uZXcgUE4obiksdGhpcy5KLnNldChuLFcpKTtyZXR1cm4gV319LFZHaD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1jb3VudChuKXtyZXR1cm4gSmModGhpcy5OLmNvdW50KG4pKX1kZWxldGUobil7cmV0dXJuIHpuKHRoaXMse3F1ZXJ5Om59LFc9PlcuZGVsZXRlKCkudGhlbigoKT0+b2coVykpKX1nZXQobil7cmV0dXJuIEpjKHRoaXMuTi5nZXQobikpfWdldEFsbChuLFcpe3JldHVybiJnZXRBbGwiaW4gSURCSW5kZXgucHJvdG90eXBlP0pjKHRoaXMuTi5nZXRBbGwobixXKSk6TlppKHRoaXMsbixXKX1rZXlQYXRoKCl7cmV0dXJuIHRoaXMuTi5rZXlQYXRofXVuaXF1ZSgpe3JldHVybiB0aGlzLk4udW5pcXVlfX0sCnA5eD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMucmVxdWVzdD1uOwp0aGlzLmN1cnNvcj1XfWRlbGV0ZSgpe3JldHVybiBKYyh0aGlzLmN1cnNvci5kZWxldGUoKSkudGhlbigoKT0+e30pfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yLnZhbHVlfXVwZGF0ZShuKXtyZXR1cm4gSmModGhpcy5jdXJzb3IudXBkYXRlKG4pKX19O3ZhciBjTTE9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLm5hbWU9bjt0aGlzLm9wdGlvbnM9Vzt0aGlzLlc9ITA7dGhpcy5qPXRoaXMuWD0wfUoobixXLEQ9e30pe3JldHVybiBsUShuLFcsRCl9ZGVsZXRlKG49e30pe3JldHVybiBUbih0aGlzLm5hbWUsbil9b3Blbigpe2lmKCF0aGlzLlcpdGhyb3cgakYodGhpcyk7aWYodGhpcy5OKXJldHVybiB0aGlzLk47dmFyIG4sVz0oKT0+e3RoaXMuTj09PW4mJih0aGlzLk49dm9pZCAwKX0sRD17YmxvY2tpbmc6dj0+e3YuY2xvc2UoKX0sCmNsb3NlZDpXLEJ6OlcsdXBncmFkZTp0aGlzLm9wdGlvbnMudXBncmFkZX0sYj1hc3luYygpPT57dmFyIHY9RXJyb3IoKS5zdGFjaz8/IiI7dHJ5e2xldCB4PWF3YWl0IHRoaXMuSih0aGlzLm5hbWUsdGhpcy5vcHRpb25zLnZlcnNpb24sRCk7dmFyIGs9eCxoPXRoaXMub3B0aW9ucztsZXQgTD1bXTtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoaC5LYykpe2xldCB7dng6RyxtUjpyPU51bWJlci5NQVhfVkFMVUV9PWguS2NbZV07IShrLk4udmVyc2lvbj49Ryl8fGsuTi52ZXJzaW9uPj1yfHxrLk4ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhlKXx8TC5wdXNoKGUpfWlmKEwubGVuZ3RoIT09MCl7bGV0IGU9T2JqZWN0LmtleXModGhpcy5vcHRpb25zLktjKSxHPXgub2JqZWN0U3RvcmVOYW1lcygpO2lmKHRoaXMuajx2MCgieXRpZGJfcmVvcGVuX2RiX3JldHJpZXMiLDApKXJldHVybiB0aGlzLmorKyx4LmNsb3NlKCksTEYobmV3IHFMKCJEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLAp7ZGJOYW1lOnRoaXMubmFtZSxleHBlY3RlZE9iamVjdFN0b3JlczplLGZvdW5kT2JqZWN0U3RvcmVzOkd9KSksYigpO2lmKHRoaXMuWDx2MCgieXRpZGJfcmVtYWtlX2RiX3JldHJpZXMiLDEpKXJldHVybiB0aGlzLlgrKyxhd2FpdCB0aGlzLmRlbGV0ZSgpLExGKG5ldyBxTCgiREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOmUsZm91bmRPYmplY3RTdG9yZXM6R30pKSxiKCk7dGhyb3cgbmV3IFFkUyhHLGUpO31yZXR1cm4geH1jYXRjaCh4KXtpZih4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uP3gubmFtZT09PSJWZXJzaW9uRXJyb3IiOiJET01FcnJvciJpbiBzZWxmJiZ4IGluc3RhbmNlb2YgRE9NRXJyb3I/eC5uYW1lPT09IlZlcnNpb25FcnJvciI6eCBpbnN0YW5jZW9mIE9iamVjdCYmIm1lc3NhZ2UiaW4geCYmeC5tZXNzYWdlPT09IkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpe3Y9CmF3YWl0IHRoaXMuSih0aGlzLm5hbWUsdm9pZCAwLHsuLi5ELHVwZ3JhZGU6dm9pZCAwfSk7az12Lk4udmVyc2lvbjtpZih0aGlzLm9wdGlvbnMudmVyc2lvbiE9PXZvaWQgMCYmaz50aGlzLm9wdGlvbnMudmVyc2lvbisxKXRocm93IHYuY2xvc2UoKSx0aGlzLlc9ITEsakYodGhpcyxrKTtyZXR1cm4gdn1XKCk7eCBpbnN0YW5jZW9mIEVycm9yJiYhZy5sKCJ5dGlkYl9hc3luY19zdGFja19raWxsc3dpdGNoIikmJih4LnN0YWNrPWAke3guc3RhY2t9XG4ke3Yuc3Vic3RyaW5nKHYuaW5kZXhPZigiXG4iKSsxKX1gKTt0aHJvdyAkdSh4LHRoaXMubmFtZSwiIix0aGlzLm9wdGlvbnMudmVyc2lvbj8/LTEpO319OwpyZXR1cm4gdGhpcy5OPW49YigpfX07dmFyIEJOPW5ldyBjTTEoIll0SWRiTWV0YSIse0tjOntkYXRhYmFzZXM6e3Z4OjF9fSx1cGdyYWRlKG4sVyl7VygxKSYmWnkobiwiZGF0YWJhc2VzIix7a2V5UGF0aDoiYWN0dWFsTmFtZSJ9KX19KTt2YXIgVmMsUWM9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7fX0obmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7fX0pO25ldyBnLktWO3ZhciBPNXQ9Y2xhc3MgZXh0ZW5kcyBjTTF7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLFcpO3RoaXMub3B0aW9ucz1XO2cwKG4pfUoobixXLEQ9e30pe3JldHVybih0aGlzLm9wdGlvbnMuc2hhcmVkP0FfcjpTX1opKG4sVyx7Li4uRH0pfWRlbGV0ZShuPXt9KXtyZXR1cm4odGhpcy5vcHRpb25zLnNoYXJlZD92ejptM3cpKHRoaXMubmFtZSxuKX19O3ZhciBaNUM9a08oInl0R2NmQ29uZmlnIix7S2M6e2NvbGRDb25maWdTdG9yZTp7dng6MX0saG90Q29uZmlnU3RvcmU6e3Z4OjF9fSxzaGFyZWQ6ITEsdXBncmFkZShuLFcpe1coMSkmJihFUihaeShuLCJob3RDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJob3RUaW1lc3RhbXBJbmRleCIsInRpbWVzdGFtcCIpLEVSKFp5KG4sImNvbGRDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJjb2xkVGltZXN0YW1wSW5kZXgiLCJ0aW1lc3RhbXAiKSl9LHZlcnNpb246MX0pO3ZhciBhTzE9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLko9W107dGhpcy5OPVtdO3ZhciBuPWcucnIoInl0LmdjZi5jb25maWcuaG90VXBkYXRlQ2FsbGJhY2tzIik7bj8odGhpcy5KPVsuLi5uXSx0aGlzLk49bik6KHRoaXMuTj1bXSxnLkdiKCJ5dC5nY2YuY29uZmlnLmhvdFVwZGF0ZUNhbGxiYWNrcyIsdGhpcy5OKSl9bUEoKXtmb3IobGV0IFcgb2YgdGhpcy5KKXt2YXIgbj10aGlzLk47bGV0IEQ9bi5pbmRleE9mKFcpO0Q+PTAmJm4uc3BsaWNlKEQsMSl9dGhpcy5KLmxlbmd0aD0wO3N1cGVyLm1BKCl9fTtnLlgzPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5WPSExO3RoaXMuaj10aGlzLlg9MDt0aGlzLks9bmV3IGFPMX1MWCgpe3JldHVybiAkTygpPz9nLkFyKCJSQVdfSE9UX0NPTkZJR19HUk9VUCIpfVcobil7dGhpcy5ob3RIYXNoRGF0YT1uO2cuR2IoInl0LmdjZi5jb25maWcuaG90SGFzaERhdGEiLHRoaXMuaG90SGFzaERhdGF8fG51bGwpfX07dmFyIG5naD10eXBlb2YgVGV4dEVuY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dEVuY29kZXI6bnVsbCxRZD1uZ2g/bj0+bmdoLmVuY29kZShuKTpuPT57bj1MMChuKTsKdmFyIFc9bmV3IFVpbnQ4QXJyYXkobi5sZW5ndGgpO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKVdbRF09bltEXTtyZXR1cm4gV307dmFyIGhlPXtuZXh0OiJ3bl9zIixicm93c2U6ImJyX3MiLHNlYXJjaDoic3JfcyIscmVlbDoicl93cnMiLHBsYXllcjoicHNfcyJ9LFVITT17bmV4dDoid25fciIsYnJvd3NlOiJicl9yIixzZWFyY2g6InNyX3IiLHJlZWw6InJfd3JyIixwbGF5ZXI6InBzX3IifTtvNy5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oKXtyZXR1cm57dmVyc2lvbjp0aGlzLnZlcnNpb24sYXJnczp0aGlzLmFyZ3N9fTtkMy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b3BpY307dmFyIFdIUz1nLnJyKCJ5dFB1YnN1YjJQdWJzdWIySW5zdGFuY2UiKXx8bmV3IEJLO0JLLnByb3RvdHlwZS5zdWJzY3JpYmU9QksucHJvdG90eXBlLnN1YnNjcmliZTtCSy5wcm90b3R5cGUudW5zdWJzY3JpYmVCeUtleT1CSy5wcm90b3R5cGUuaks7QksucHJvdG90eXBlLnB1Ymxpc2g9QksucHJvdG90eXBlLldKO0JLLnByb3RvdHlwZS5jbGVhcj1CSy5wcm90b3R5cGUuY2xlYXI7Zy5HYigieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIixXSFMpO3ZhciBqOT1nLnJyKCJ5dFB1YnN1YjJQdWJzdWIyU3Vic2NyaWJlZEtleXMiKXx8e307Zy5HYigieXRQdWJzdWIyUHVic3ViMlN1YnNjcmliZWRLZXlzIixqOSk7dmFyIEJ6PWcucnIoInl0UHVic3ViMlB1YnN1YjJUb3BpY1RvS2V5cyIpfHx7fTtnLkdiKCJ5dFB1YnN1YjJQdWJzdWIyVG9waWNUb0tleXMiLEJ6KTt2YXIgQ1A9Zy5ycigieXRQdWJzdWIyUHVic3ViMklzQXN5bmMiKXx8e307CmcuR2IoInl0UHVic3ViMlB1YnN1YjJJc0FzeW5jIixDUCk7Zy5HYigieXRQdWJzdWIyUHVic3ViMlNraXBTdWJLZXkiLG51bGwpO3ZhciBNQj12MCgibWF4X2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNUU1KSxSNz12MCgibWluX2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNTAwKSx3OWo9MDt2YXIgRHoxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuV3Y9dGhpcy5OPSExO3RoaXMucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPXRoaXMuSj0wO3RoaXMuaGFuZGxlRXJyb3I9KCk9Pnt9Owp0aGlzLkYyPSgpPT57fTsKdGhpcy5ub3c9RGF0ZS5ub3c7dGhpcy5OaD0hMTt0aGlzLnV4PW4udXg/PzEwMDt0aGlzLkExPW4uQTE/PzE7dGhpcy5HeT1uLkd5Pz8yNTkyRTY7dGhpcy5aND1uLlo0Pz8xMkU0O3RoaXMuSVA9bi5JUD8/NUUzO3RoaXMuWVc9bi5ZVz8/dm9pZCAwO3RoaXMuQ3I9ISFuLkNyO3RoaXMuS3I9bi5Lcj8/LjE7dGhpcy5IRj1uLkhGPz8xMDtuLmhhbmRsZUVycm9yJiYodGhpcy5oYW5kbGVFcnJvcj1uLmhhbmRsZUVycm9yKTtuLkYyJiYodGhpcy5GMj1uLkYyKTtuLk5oJiYodGhpcy5OaD1uLk5oKTtuLld2JiYodGhpcy5Xdj1uLld2KTt0aGlzLkVxPW4uRXE7dGhpcy5BJD1uLkEkO3RoaXMuZ0U9bi5nRTt0aGlzLnlHPW4ueUc7dGhpcy5MbT1uLkxtO3RoaXMudVo9bi51Wjt0aGlzLk5BPW4uTkE7Y3oodGhpcykmJighdGhpcy5FcXx8dGhpcy5FcSgibmV0d29ya2xlc3NfbG9nZ2luZyIpKSYmbm0odGhpcyl9d3JpdGVUaGVuU2VuZChuLFc9e30pe2lmKGN6KHRoaXMpJiZ0aGlzLk4pe2xldCBEPQp7dXJsOm4sb3B0aW9uczpXLHRpbWVzdGFtcDp0aGlzLm5vdygpLHN0YXR1czoiTkVXIixzZW5kQ291bnQ6MH07dGhpcy5nRS5zZXQoRCx0aGlzLllXKS50aGVuKGI9PntELmlkPWI7dGhpcy55Ry5XRygpJiZENSh0aGlzLEQpfSkuY2F0Y2goYj0+e0Q1KHRoaXMsRCk7CmJNKHRoaXMsYil9KX1lbHNlIHRoaXMuTG0obixXKX1zZW5kVGhlbldyaXRlKG4sVz17fSxEKXtpZihjeih0aGlzKSYmdGhpcy5OKXtsZXQgYj17dXJsOm4sCm9wdGlvbnM6Vyx0aW1lc3RhbXA6dGhpcy5ub3coKSxzdGF0dXM6Ik5FVyIsc2VuZENvdW50OjB9O3RoaXMuRXEmJnRoaXMuRXEoIm53bF9za2lwX3JldHJ5IikmJihiLnNraXBSZXRyeT1EKTtpZih0aGlzLnlHLldHKCl8fHRoaXMuRXEmJnRoaXMuRXEoIm53bF9hZ2dyZXNzaXZlX3NlbmRfdGhlbl93cml0ZSIpJiYhYi5za2lwUmV0cnkpe2lmKCFiLnNraXBSZXRyeSl7bGV0IHY9Vy5vbkVycm9yP1cub25FcnJvcjooKT0+e307Clcub25FcnJvcj1hc3luYyhrLGgpPT57YXdhaXQgdGhpcy5nRS5zZXQoYix0aGlzLllXKS5jYXRjaCh4PT57Yk0odGhpcyx4KX0pOwp2KGssaCl9fXRoaXMuTG0obixXLGIuc2tpcFJldHJ5KX1lbHNlIHRoaXMuZ0Uuc2V0KGIsdGhpcy5ZVykuY2F0Y2godj0+e3RoaXMuTG0obixXLGIuc2tpcFJldHJ5KTsKYk0odGhpcyx2KX0pfWVsc2UgRD10aGlzLkVxJiZ0aGlzLkVxKCJud2xfc2tpcF9yZXRyeSIpJiZELHRoaXMuTG0obixXLEQpfXNlbmRBbmRXcml0ZShuLFc9e30pe2lmKGN6KHRoaXMpJiZ0aGlzLk4pe2xldCBEPXt1cmw6biwKb3B0aW9uczpXLHRpbWVzdGFtcDp0aGlzLm5vdygpLHN0YXR1czoiTkVXIixzZW5kQ291bnQ6MH0sYj0hMSx2PVcub25TdWNjZXNzP1cub25TdWNjZXNzOigpPT57fTsKRC5vcHRpb25zLm9uU3VjY2Vzcz0oayxoKT0+e0QuaWQhPT12b2lkIDA/dGhpcy5nRS5UTShELmlkLHRoaXMuWVcpOmI9ITA7dGhpcy55Ry5sYyYmdGhpcy5FcSYmdGhpcy5FcSgidnNzX25ldHdvcmtfaGludCIpJiZ0aGlzLnlHLmxjKCEwKTt2KGssaCl9Owp0aGlzLkxtKEQudXJsLEQub3B0aW9ucyx2b2lkIDAsITApO3RoaXMuZ0Uuc2V0KEQsdGhpcy5ZVykudGhlbihrPT57RC5pZD1rO2ImJnRoaXMuZ0UuVE0oRC5pZCx0aGlzLllXKX0pLmNhdGNoKGs9PntiTSh0aGlzLGspfSl9ZWxzZSB0aGlzLkxtKG4sVyx2b2lkIDAsITApfVcoKXtpZighY3oodGhpcykpdGhyb3cgRXJyb3IoIkluZGV4ZWREQiBpcyBub3Qgc3VwcG9ydGVkOiB0aHJvdHRsZVNlbmQiKTsKdGhpcy5KfHwodGhpcy5KPXRoaXMuQSQuTFMoYXN5bmMoKT0+e3ZhciBuPWF3YWl0IHRoaXMuZ0UuaTQoIk5FVyIsdGhpcy5ZVyk7bj8oYXdhaXQgRDUodGhpcyxuKSx0aGlzLkomJih0aGlzLko9MCx0aGlzLlcoKSkpOnRoaXMuWCgpfSx0aGlzLnV4KSl9WCgpe3RoaXMuQSQuc08odGhpcy5KKTsKdGhpcy5KPTB9fTt2YXIgdlU7dmFyIHk0PXthY2NvdW50U3RhdGVDaGFuZ2VTaWduZWRJbjoyMyxhY2NvdW50U3RhdGVDaGFuZ2VTaWduZWRPdXQ6MjQsZGVsYXllZEV2ZW50TWV0cmljQ2FwdHVyZWQ6MTEsbGF0ZW5jeUFjdGlvbkJhc2VsaW5lZDo2LGxhdGVuY3lBY3Rpb25JbmZvOjcsbGF0ZW5jeUFjdGlvblRpY2tlZDo1LG9mZmxpbmVUcmFuc2ZlclN0YXR1c0NoYW5nZWQ6MixvZmZsaW5lSW1hZ2VEb3dubG9hZDozMzUscGxheWJhY2tTdGFydFN0YXRlQ2hhbmdlZDo5LHN5c3RlbUhlYWx0aENhcHR1cmVkOjMsbWFuZ29PbmJvYXJkaW5nQ29tcGxldGVkOjEwLG1hbmdvUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkOjIzMCxtYW5nb1VuZm9ya0RiTWlncmF0aW9uRXJyb3I6MTIxLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25TdW1tYXJ5OjEyMixtYW5nb1VuZm9ya0RiTWlncmF0aW9uUHJldW5mb3JrRGJWZXJzaW9uTnVtYmVyOjEzMyxtYW5nb1VuZm9ya0RiTWlncmF0aW9uUGhvbmVNZXRhZGF0YToxMzQsbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblBob25lU3RvcmFnZToxMzUsCm1hbmdvVW5mb3JrRGJNaWdyYXRpb25TdGVwOjE0MixtYW5nb0FzeW5jQXBpTWlncmF0aW9uRXZlbnQ6MjIzLG1hbmdvRG93bmxvYWRWaWRlb1Jlc3VsdDoyMjQsbWFuZ29Ib21lcGFnZVZpZGVvQ291bnQ6Mjc5LG1hbmdvSG9tZVYzU3RhdGU6Mjk1LG1hbmdvSW1hZ2VDbGllbnRDYWNoZUhpdEV2ZW50OjI3MyxzZENhcmRTdGF0dXNDaGFuZ2VkOjk4LGZyYW1lc0Ryb3BwZWQ6MTIsdGh1bWJuYWlsSG92ZXJlZDoxMyxkZXZpY2VSZXRlbnRpb25JbmZvQ2FwdHVyZWQ6MTQsdGh1bWJuYWlsTG9hZGVkOjE1LGJhY2tUb0FwcEV2ZW50OjMxOCxzdHJlYW1pbmdTdGF0c0NhcHR1cmVkOjE3LG9mZmxpbmVWaWRlb1NoYXJlZDoxOSxhcHBDcmFzaGVkOjIwLHlvdVRoZXJlOjIxLG9mZmxpbmVTdGF0ZVNuYXBzaG90OjIyLG1keFNlc3Npb25TdGFydGVkOjI1LG1keFNlc3Npb25Db25uZWN0ZWQ6MjYsbWR4U2Vzc2lvbkRpc2Nvbm5lY3RlZDoyNyxiZWRyb2NrUmVzb3VyY2VDb25zdW1wdGlvblNuYXBzaG90OjI4LApuZXh0R2VuV2F0Y2hXYXRjaFN3aXBlZDoyOSxraWRzQWNjb3VudHNTbmFwc2hvdDozMCx6ZXJvU3RlcENoYW5uZWxDcmVhdGVkOjMxLHR2aHRtbDVTZWFyY2hDb21wbGV0ZWQ6MzIsb2ZmbGluZVNoYXJlUGFpcmluZzozNCxvZmZsaW5lU2hhcmVVbmxvY2s6MzUsbWR4Um91dGVEaXN0cmlidXRpb25TbmFwc2hvdDozNixiZWRyb2NrUmVwZXRpdGl2ZUFjdGlvblRpbWVkOjM3LHVucGx1Z2dlZERlZ3JhZGF0aW9uSW5mbzoyMjksdXBsb2FkTXA0SGVhZGVyTW92ZWQ6MzgsdXBsb2FkVmlkZW9UcmFuc2NvZGVkOjM5LHVwbG9hZFByb2Nlc3NvclN0YXJ0ZWQ6NDYsdXBsb2FkUHJvY2Vzc29yRW5kZWQ6NDcsdXBsb2FkUHJvY2Vzc29yUmVhZHk6OTQsdXBsb2FkUHJvY2Vzc29yUmVxdWlyZW1lbnRQZW5kaW5nOjk1LHVwbG9hZFByb2Nlc3NvckludGVycnVwdGVkOjk2LHVwbG9hZEZyb250ZW5kRXZlbnQ6MjQxLGFzc2V0UGFja0Rvd25sb2FkU3RhcnRlZDo0MSxhc3NldFBhY2tEb3dubG9hZGVkOjQyLAphc3NldFBhY2tBcHBsaWVkOjQzLGFzc2V0UGFja0RlbGV0ZWQ6NDQsYXBwSW5zdGFsbEF0dHJpYnV0aW9uRXZlbnQ6NDU5LHBsYXliYWNrU2Vzc2lvblN0b3BwZWQ6NDUsYWRCbG9ja2VyTWVzc2FnaW5nU2hvd246NDgsZGlzdHJpYnV0aW9uQ2hhbm5lbENhcHR1cmVkOjQ5LGRhdGFQbGFuQ3BpZFJlcXVlc3RlZDo1MSxkZXRhaWxlZE5ldHdvcmtUeXBlQ2FwdHVyZWQ6NTIsc2VuZFN0YXRlVXBkYXRlZDo1MyxyZWNlaXZlU3RhdGVVcGRhdGVkOjU0LHNlbmREZWJ1Z1N0YXRlVXBkYXRlZDo1NSxyZWNlaXZlRGVidWdTdGF0ZVVwZGF0ZWQ6NTYsa2lkc0Vycm9yZWQ6NTcsbWR4TXNuU2Vzc2lvblN0YXRzRmluaXNoZWQ6NTgsYXBwU2V0dGluZ3NDYXB0dXJlZDo1OSxtZHhXZWJTb2NrZXRTZXJ2ZXJIdHRwRXJyb3I6NjAsbWR4V2ViU29ja2V0U2VydmVyOjYxLHN0YXJ0dXBDcmFzaGVzRGV0ZWN0ZWQ6NjIsY29sZFN0YXJ0SW5mbzo0MzUsb2ZmbGluZVBsYXliYWNrU3RhcnRlZDo2MyxsaXZlQ2hhdE1lc3NhZ2VTZW50OjIyNSwKbGl2ZUNoYXRVc2VyUHJlc2VudDo0MzQsbGl2ZUNoYXRCZWluZ01vZGVyYXRlZDo0NTcsbGl2ZUNoYXRHaWZ0QnV0dG9uSW1wcmVzc2VkOjU1OCxsaXZlQ3JlYXRpb25DYW1lcmFVcGRhdGVkOjY0LGxpdmVDcmVhdGlvbkVuY29kaW5nQ2FwdHVyZWQ6NjUsbGl2ZUNyZWF0aW9uRXJyb3I6NjYsbGl2ZUNyZWF0aW9uSGVhbHRoVXBkYXRlZDo2NyxsaXZlQ3JlYXRpb25WaWRlb0VmZmVjdHNDYXB0dXJlZDo2OCxsaXZlQ3JlYXRpb25TdGFnZU9jY3VyZWQ6NzUsb2ZmbGluZVN5c3RlbUZhaWx1cmU6NTQ2LGxpdmVDcmVhdGlvbkJyb2FkY2FzdFNjaGVkdWxlZDoxMjMsbGl2ZUNyZWF0aW9uQXJjaGl2ZVJlcGxhY2VtZW50OjE0OSxsaXZlQ3JlYXRpb25Db3N0cmVhbWluZ0Nvbm5lY3Rpb246NDIxLGxpdmVDcmVhdGlvblBsYXlhYmxlc01ldHJpY3M6NTMzLGxpdmVDcmVhdGlvblN0cmVhbVdlYnJ0Y1N0YXRzOjI4OCxsaXZlQ3JlYXRpb25XZWJydGNFcnJvcjo1MjYsbWR4U2Vzc2lvblJlY292ZXJ5U3RhcnRlZDo2OSwKbWR4U2Vzc2lvblJlY292ZXJ5Q29tcGxldGVkOjcwLG1keFNlc3Npb25SZWNvdmVyeVN0b3BwZWQ6NzEsdmlzdWFsRWxlbWVudFNob3duOjcyLHZpc3VhbEVsZW1lbnRIaWRkZW46NzMsdmlzdWFsRWxlbWVudEdlc3R1cmVkOjc4LHZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQ6MjA4LHNjcmVlbkNyZWF0ZWQ6MTU2LHBsYXliYWNrQXNzb2NpYXRlZDoyMDIsdmlzdWFsRWxlbWVudEF0dGFjaGVkOjIxNSxwbGF5YmFja0NvbnRleHRFdmVudDoyMTQsY2xvdWRDYXN0aW5nUGxheWJhY2tTdGFydGVkOjc0LHdlYlBsYXllckFwaUNhbGxlZDo3Nix0dmh0bWw1QWNjb3VudERpYWxvZ09wZW5lZDo3OSxmb3JlZ3JvdW5kSGVhcnRiZWF0OjgwLGZvcmVncm91bmRIZWFydGJlYXRTY3JlZW5Bc3NvY2lhdGVkOjExMSxraWRzT2ZmbGluZVNuYXBzaG90OjgxLG1keEVuY3J5cHRpb25TZXNzaW9uU3RhdHNGaW5pc2hlZDo4MixwbGF5ZXJSZXF1ZXN0Q29tcGxldGVkOjgzLGxpdGVTY2hlZHVsZXJTdGF0aXN0aWNzOjg0LAptZHhTaWduSW46ODUsc3BhY2VjYXN0TWV0YWRhdGFMb29rdXBSZXF1ZXN0ZWQ6ODYsc3BhY2VjYXN0QmF0Y2hMb29rdXBSZXF1ZXN0ZWQ6ODcsc3BhY2VjYXN0U3VtbWFyeVJlcXVlc3RlZDo4OCxzcGFjZWNhc3RQbGF5YmFjazo4OSxzcGFjZWNhc3REaXNjb3Zlcnk6OTAsdHZodG1sNUxhdW5jaFVybENvbXBvbmVudENoYW5nZWQ6OTEsbWR4QmFja2dyb3VuZFBsYXliYWNrUmVxdWVzdENvbXBsZXRlZDo5MixtZHhCcm9rZW5BZGRpdGlvbmFsRGF0YURldmljZURldGVjdGVkOjkzLHR2aHRtbDVMb2NhbFN0b3JhZ2U6OTcsdHZodG1sNURldmljZVN0b3JhZ2VTdGF0dXM6MTQ3LGF1dG9DYXB0aW9uc0F2YWlsYWJsZTo5OSxwbGF5YmFja1NjcnViYmluZ0V2ZW50OjMzOSxmbGV4eVN0YXRlOjEwMCxpbnRlcmZhY2VPcmllbnRhdGlvbkNhcHR1cmVkOjEwMSxtYWluQXBwQnJvd3NlRnJhZ21lbnRDYWNoZToxMDIsb2ZmbGluZUNhY2hlVmVyaWZpY2F0aW9uRmFpbHVyZToxMDMsb2ZmbGluZVBsYXliYWNrRXhjZXB0aW9uRGlnZXN0OjIxNywKdnJDb3ByZXNlbmNlU3RhdHM6MTA0LHZyQ29wcmVzZW5jZVN5bmNTdGF0czoxMzAsdnJDb3ByZXNlbmNlQ29tbXNTdGF0czoxMzcsdnJDb3ByZXNlbmNlUGFydHlTdGF0czoxNTMsdnJDb3ByZXNlbmNlRW1vamlTdGF0czoyMTMsdnJDb3ByZXNlbmNlRXZlbnQ6MTQxLHZyQ29wcmVzZW5jZUZsb3dUcmFuc2l0RXZlbnQ6MTYwLHZyQ293YXRjaFBhcnR5RXZlbnQ6NDkyLHZyQ293YXRjaFVzZXJTdGFydE9ySm9pbkV2ZW50OjUwNCx2clBsYXliYWNrRXZlbnQ6MzQ1LGtpZHNBZ2VHYXRlVHJhY2tpbmc6MTA1LG9mZmxpbmVEZWxheUFsbG93ZWRUcmFja2luZzoxMDYsbWFpbkFwcEF1dG9PZmZsaW5lU3RhdGU6MTA3LHZpZGVvQXNUaHVtYm5haWxEb3dubG9hZDoxMDgsdmlkZW9Bc1RodW1ibmFpbFBsYXliYWNrOjEwOSxsaXRlU2hvd01vcmU6MTEwLHJlbmRlcmluZ0Vycm9yOjExOCxraWRzUHJvZmlsZVBpbkdhdGVUcmFja2luZzoxMTksYWJyVHJhamVjdG9yeToxMjQsc2Nyb2xsRXZlbnQ6MTI1LApzdHJlYW16SW5jcmVtZW50ZWQ6MTI2LGtpZHNQcm9maWxlU3dpdGNoZXJUcmFja2luZzoxMjcsa2lkc1Byb2ZpbGVDcmVhdGlvblRyYWNraW5nOjEyOSxidXlGbG93U3RhcnRlZDoxMzYsaW50ZWdyYXRpb25BdHRyaWJ1dGlvbkV2ZW50OjU1NixtYnNDb25uZWN0aW9uSW5pdGlhdGVkOjEzOCxtYnNQbGF5YmFja0luaXRpYXRlZDoxMzksbWJzTG9hZENoaWxkcmVuOjE0MCxsaXRlUHJvZmlsZUZldGNoZXI6MTQ0LG1keFJlbW90ZVRyYW5zYWN0aW9uOjE0NixyZWVsUGxheWJhY2tFcnJvcjoxNDgscmVhY2hhYmlsaXR5RGV0ZWN0aW9uRXZlbnQ6MTUwLG1vYmlsZVBsYXliYWNrRXZlbnQ6MTUxLGNvdXJ0c2lkZVBsYXllclN0YXRlQ2hhbmdlZDoxNTIsbXVzaWNQZXJzaXN0ZW50Q2FjaGVDaGVja2VkOjE1NCxtdXNpY1BlcnNpc3RlbnRDYWNoZUNsZWFyZWQ6MTU1LHBsYXliYWNrSW50ZXJydXB0ZWQ6MTU3LHBsYXliYWNrSW50ZXJydXB0aW9uUmVzb2x2ZWQ6MTU4LGZpeEZvcEZsb3c6MTU5LAphbnJEZXRlY3Rpb246MTYxLGJhY2tzdGFnZVBvc3RDcmVhdGlvbkZsb3dFbmRlZDoxNjIsY2xpZW50RXJyb3I6MTYzLGdhbWluZ0FjY291bnRMaW5rU3RhdHVzQ2hhbmdlZDoxNjQsbGl0ZUhvdXNld2FybWluZzoxNjUsYnV5Rmxvd0V2ZW50OjE2NyxraWRzUGFyZW50YWxHYXRlVHJhY2tpbmc6MTY4LGtpZHNTaWduZWRPdXRTZXR0aW5nc1N0YXR1czo0Mzcsa2lkc1NpZ25lZE91dFBhdXNlSGlzdG9yeUZpeFN0YXR1czo0MzgsdHZodG1sNVdhdGNoZG9nVmlvbGF0aW9uOjQ0NCx5cGNVcGdyYWRlRmxvdzoxNjkseW9uZ2xlU3R1ZHk6MTcwLHlwY1VwZGF0ZUZsb3dTdGFydGVkOjE3MSx5cGNVcGRhdGVGbG93Q2FuY2VsbGVkOjE3Mix5cGNVcGRhdGVGbG93U3VjY2VlZGVkOjE3Myx5cGNVcGRhdGVGbG93RmFpbGVkOjE3NCxsaXRlR3Jvd3Roa2l0UHJvbW86MTc1LHBheW1lbnRGbG93U3RhcnRlZDozNDEsdHJhbnNhY3Rpb25GbG93U2hvd1BheW1lbnREaWFsb2c6NDA1LHRyYW5zYWN0aW9uRmxvd1N0YXJ0ZWQ6MTc2LAp0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTdGFydGVkOjIyMix0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTaWduZWRPdXRTdGFydGVkOjM4Myx0cmFuc2FjdGlvbkZsb3dDYW5jZWxsZWQ6MTc3LHRyYW5zYWN0aW9uRmxvd1BheW1lbnRDYWxsQmFja1JlY2VpdmVkOjM4Nyx0cmFuc2FjdGlvbkZsb3dQYXltZW50U3VibWl0dGVkOjQ2MCx0cmFuc2FjdGlvbkZsb3dQYXltZW50U3VjY2VlZGVkOjMyOSx0cmFuc2FjdGlvbkZsb3dTdWNjZWVkZWQ6MTc4LHRyYW5zYWN0aW9uRmxvd0ZhaWxlZDoxNzksdHJhbnNhY3Rpb25GbG93UGxheUJpbGxpbmdDb25uZWN0aW9uU3RhcnRFdmVudDo0MjgsdHJhbnNhY3Rpb25GbG93U2Vjb25kYXJ5RGV2aWNlU3VjY2Vzczo0NTgsdHJhbnNhY3Rpb25GbG93RXJyb3JFdmVudDo0MTEsbGl0ZVZpZGVvUXVhbGl0eUNoYW5nZWQ6MTgwLHdhdGNoQnJlYWtFbmFibGVtZW50U2V0dGluZ0V2ZW50OjE4MSx3YXRjaEJyZWFrRnJlcXVlbmN5U2V0dGluZ0V2ZW50OjE4MiwKdmlkZW9FZmZlY3RzQ2FtZXJhUGVyZm9ybWFuY2VNZXRyaWNzOjE4MyxhZE5vdGlmeToxODQsc3RhcnR1cFRlbGVtZXRyeToxODUscGxheWJhY2tPZmZsaW5lRmFsbGJhY2tVc2VkOjE4NixvdXRPZk1lbW9yeToxODcseXBjUGF1c2VGbG93U3RhcnRlZDoxODgseXBjUGF1c2VGbG93Q2FuY2VsbGVkOjE4OSx5cGNQYXVzZUZsb3dTdWNjZWVkZWQ6MTkwLHlwY1BhdXNlRmxvd0ZhaWxlZDoxOTEsdXBsb2FkRmlsZVNlbGVjdGVkOjE5Mix5cGNSZXN1bWVGbG93U3RhcnRlZDoxOTMseXBjUmVzdW1lRmxvd0NhbmNlbGxlZDoxOTQseXBjUmVzdW1lRmxvd1N1Y2NlZWRlZDoxOTUseXBjUmVzdW1lRmxvd0ZhaWxlZDoxOTYsYWRzQ2xpZW50U3RhdGVDaGFuZ2U6MTk3LHlwY0NhbmNlbEZsb3dTdGFydGVkOjE5OCx5cGNDYW5jZWxGbG93Q2FuY2VsbGVkOjE5OSx5cGNDYW5jZWxGbG93U3VjY2VlZGVkOjIwMCx5cGNDYW5jZWxGbG93RmFpbGVkOjIwMSx5cGNDYW5jZWxGbG93R29Ub1BheW1lbnRQcm9jZXNzb3I6NDAyLAp5cGNEZWFjdGl2YXRlRmxvd1N0YXJ0ZWQ6MzIwLHlwY1JlZGVlbUZsb3dTdGFydGVkOjIwMyx5cGNSZWRlZW1GbG93Q2FuY2VsbGVkOjIwNCx5cGNSZWRlZW1GbG93U3VjY2VlZGVkOjIwNSx5cGNSZWRlZW1GbG93RmFpbGVkOjIwNix5cGNGYW1pbHlDcmVhdGVGbG93U3RhcnRlZDoyNTgseXBjRmFtaWx5Q3JlYXRlRmxvd0NhbmNlbGxlZDoyNTkseXBjRmFtaWx5Q3JlYXRlRmxvd1N1Y2NlZWRlZDoyNjAseXBjRmFtaWx5Q3JlYXRlRmxvd0ZhaWxlZDoyNjEseXBjRmFtaWx5TWFuYWdlRmxvd1N0YXJ0ZWQ6MjYyLHlwY0ZhbWlseU1hbmFnZUZsb3dDYW5jZWxsZWQ6MjYzLHlwY0ZhbWlseU1hbmFnZUZsb3dTdWNjZWVkZWQ6MjY0LHlwY0ZhbWlseU1hbmFnZUZsb3dGYWlsZWQ6MjY1LHJlc3RvcmVDb250ZXh0RXZlbnQ6MjA3LGVtYmVkc0FkRXZlbnQ6MzI3LGF1dG9wbGF5VHJpZ2dlcmVkOjIwOSxjbGllbnREYXRhRXJyb3JFdmVudDoyMTAsZXhwZXJpbWVudGFsVnNzVmFsaWRhdGlvbjoyMTEsCnR2aHRtbDVUcmlnZ2VyZWRFdmVudDoyMTIsdHZodG1sNUZyYW1ld29ya3NGaWVsZFRyaWFsUmVzdWx0OjIxNix0dmh0bWw1RnJhbWV3b3Jrc0ZpZWxkVHJpYWxTdGFydDoyMjAsbXVzaWNPZmZsaW5lUHJlZmVyZW5jZXM6MjE4LHdhdGNoVGltZVNlZ21lbnQ6MjE5LGFwcFdpZHRoTGF5b3V0RXJyb3I6MjIxLGFjY291bnRSZWdpc3RyeUNoYW5nZToyMjYsdXNlck1lbnRpb25BdXRvQ29tcGxldGVCb3hFdmVudDoyMjcsZG93bmxvYWRSZWNvbW1lbmRhdGlvbkVuYWJsZW1lbnRTZXR0aW5nRXZlbnQ6MjI4LG11c2ljUGxheWJhY2tDb250ZW50TW9kZUNoYW5nZUV2ZW50OjIzMSxvZmZsaW5lRGJPcGVuQ29tcGxldGVkOjIzMixraWRzRmxvd0V2ZW50OjIzMyxraWRzRmxvd0NvcnB1c1NlbGVjdGVkRXZlbnQ6MjM0LHZpZGVvRWZmZWN0c0V2ZW50OjIzNSx1bnBsdWdnZWRPcHNFb2dBbmFseXRpY3NFdmVudDoyMzYscGxheWJhY2tBdWRpb1JvdXRlRXZlbnQ6MjM3LGludGVyYWN0aW9uTG9nZ2luZ0RlYnVnTW9kZUVycm9yOjIzOCwKb2ZmbGluZVl0YlJlZnJlc2hlZDoyMzksa2lkc0Zsb3dFcnJvcjoyNDAsbXVzaWNBdXRvcGxheU9uTGF1bmNoQXR0ZW1wdGVkOjI0MixkZXZpY2VDb250ZXh0QWN0aXZpdHlFdmVudDoyNDMsZGV2aWNlQ29udGV4dEV2ZW50OjI0NCx0ZW1wbGF0ZVJlc29sdXRpb25FeGNlcHRpb246MjQ1LG11c2ljU2lkZWxvYWRlZFBsYXlsaXN0U2VydmljZUNhbGxlZDoyNDYsZW1iZWRzU3RvcmFnZUFjY2Vzc05vdENoZWNrZWQ6MjQ3LGVtYmVkc0hhc1N0b3JhZ2VBY2Nlc3NSZXN1bHQ6MjQ4LGVtYmVkc0l0cFBsYXllZE9uUmVsb2FkOjI0OSxlbWJlZHNSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNTAsZW1iZWRzU2hvdWxkUmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQ6MjUxLGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzU3RhdGU6MjU2LGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzRmFpbGVkU3RhdGU6MjU3LGVtYmVkc0l0cFdhdGNoTGF0ZXJSZXN1bHQ6MjY2LHNlYXJjaFN1Z2dlc3REZWNvZGluZ1BheWxvYWRGYWlsdXJlOjI1MiwKc2lyaVNob3J0Y3V0QWN0aXZhdGVkOjI1Myx0dmh0bWw1S2V5Ym9hcmRQZXJmb3JtYW5jZToyNTQsbGF0ZW5jeUFjdGlvblNwYW46MjU1LGVsZW1lbnRzTG9nOjI2Nyx5dGJGaWxlT3BlbmVkOjI2OCx0ZmxpdGVNb2RlbEVycm9yOjI2OSxhcGlUZXN0OjI3MCx5b25nbGVVc2JTZXR1cDoyNzEsdG91U3RyaWtlSW50ZXJzdGl0aWFsRXZlbnQ6MjcyLGxpdGVTdHJlYW1Ub1NhdmU6Mjc0LGFwcEJ1bmRsZUNsaWVudEV2ZW50OjI3NSx5dGJGaWxlQ3JlYXRpb25GYWlsZWQ6Mjc2LGFkTm90aWZ5RmFpbHVyZToyNzgseXRiVHJhbnNmZXJGYWlsZWQ6MjgwLGJsb2NraW5nUmVxdWVzdEZhaWxlZDoyODEsbGl0ZUFjY291bnRTZWxlY3RvcjoyODIsbGl0ZUFjY291bnRVaUNhbGxiYWNrczoyODMsZHVtbXlQYXlsb2FkOjI4NCxicm93c2VSZXNwb25zZVZhbGlkYXRpb25FdmVudDoyODUsZW50aXRpZXNFcnJvcjoyODYsbXVzaWNJb3NCYWNrZ3JvdW5kRmV0Y2g6Mjg3LG1keE5vdGlmaWNhdGlvbkV2ZW50OjI4OSwKbGF5ZXJzVmFsaWRhdGlvbkVycm9yOjI5MCxtdXNpY1B3YUluc3RhbGxlZDoyOTEsbGl0ZUFjY291bnRDbGVhbnVwOjI5MixodG1sNVBsYXllckhlYWx0aEV2ZW50OjI5Myx3YXRjaFJlc3RvcmVBdHRlbXB0OjI5NCxsaXRlQWNjb3VudFNpZ25JbjoyOTYsbm90YWlyZUV2ZW50OjI5OCxraWRzVm9pY2VTZWFyY2hFdmVudDoyOTksYWROb3RpZnlGaWxsZWQ6MzAwLGRlbGF5ZWRFdmVudERyb3BwZWQ6MzAxLGFuYWx5dGljc1NlYXJjaEV2ZW50OjMwMixzeXN0ZW1EYXJrVGhlbWVPcHRPdXRFdmVudDozMDMsZmxvd0V2ZW50OjMwNCxuZXR3b3JrQ29ubmVjdGl2aXR5QmFzZWxpbmVFdmVudDozMDUseXRiRmlsZUltcG9ydGVkOjMwNixkb3dubG9hZFN0cmVhbVVybEV4cGlyZWQ6MzA3LGRpcmVjdFNpZ25JbkV2ZW50OjMwOCxseXJpY0ltcHJlc3Npb25FdmVudDozMDksYWNjZXNzaWJpbGl0eVN0YXRlRXZlbnQ6MzEwLHRva2VuUmVmcmVzaEV2ZW50OjMxMSxnZW5lcmljQXR0ZXN0YXRpb25FeGVjdXRpb246MzEyLAp0dmh0bWw1VmlkZW9TZWVrOjMxMyx1bnBsdWdnZWRBdXRvUGF1c2U6MzE0LHNjcnViYmluZ0V2ZW50OjMxNSxiZWR0aW1lUmVtaW5kZXJFdmVudDozMTcsdHZodG1sNVVuZXhwZWN0ZWRSZXN0YXJ0OjMxOSx0dmh0bWw1RGV2aWNlU3RvcmFnZVN0YXRzOjUzNSx0dmh0bWw1U3RhYmlsaXR5VHJhY2VFdmVudDo0NzgsdHZodG1sNU9wZXJhdGlvbkhlYWx0aDo0NjcsdHZodG1sNVdhdGNoS2V5RXZlbnQ6MzIxLHZvaWNlTGFuZ3VhZ2VDaGFuZ2VkOjMyMix0dmh0bWw1TGl2ZUNoYXRTdGF0dXM6MzIzLHBhcmVudFRvb2xzQ29ycHVzU2VsZWN0ZWRFdmVudDozMjQsb2ZmZXJBZHNFbnJvbGxtZW50SW5pdGlhdGVkOjMyNSxuZXR3b3JrUXVhbGl0eUludGVydmFsRXZlbnQ6MzI2LGRldmljZVN0YXJ0dXBNZXRyaWNzOjMyOCxoZWFydGJlYXRBY3Rpb25QbGF5ZXJUcmFuc2l0aW9uZWQ6MzMwLHR2aHRtbDVMaWZlY3ljbGU6MzMxLGhlYXJ0YmVhdEFjdGlvblBsYXllckhhbHRlZDozMzIsYWRhcHRpdmVJbmxpbmVNdXRlZFNldHRpbmdFdmVudDozMzMsCm1haW5BcHBMaWJyYXJ5TG9hZGluZ1N0YXRlOjMzNCx0aGlyZFBhcnR5TG9nTW9uaXRvcmluZ0V2ZW50OjMzNixhcHBTaGVsbEFzc2V0TG9hZFJlcG9ydDozMzcsdHZodG1sNUFuZHJvaWRBdHRlc3RhdGlvbjozMzgsdHZodG1sNVN0YXJ0dXBTb3VuZEV2ZW50OjM0MCxpb3NCYWNrZ3JvdW5kUmVmcmVzaFRhc2s6MzQyLGlvc0JhY2tncm91bmRQcm9jZXNzaW5nVGFzazozNDMsc2xpRXZlbnRCYXRjaDozNDQscG9zdEltcHJlc3Npb25FdmVudDozNDYsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RFeHBvcnQ6MzQ3LGlkYlVuZXhwZWN0ZWRseUNsb3NlZDozNDgsdm9pY2VTZWFyY2hFdmVudDozNDksbWR4U2Vzc2lvbkNhc3RFdmVudDozNTAsaWRiUXVvdGFFeGNlZWRlZDozNTEsaWRiVHJhbnNhY3Rpb25FbmRlZDozNTIsaWRiVHJhbnNhY3Rpb25BYm9ydGVkOjM1Myx0dmh0bWw1S2V5Ym9hcmRMb2dnaW5nOjM1NCxpZGJJc1N1cHBvcnRlZENvbXBsZXRlZDozNTUsY3JlYXRvclN0dWRpb01vYmlsZUV2ZW50OjM1NiwKaWRiRGF0YUNvcnJ1cHRlZDozNTcscGFyZW50VG9vbHNBcHBDaG9zZW5FdmVudDozNTgsd2ViVmlld0JvdHRvbVNoZWV0UmVzaXplZDozNTksYWN0aXZlU3RhdGVDb250cm9sbGVyU2Nyb2xsUGVyZm9ybWFuY2VTdW1tYXJ5OjM2MCxuYXZpZ2F0b3JWYWxpZGF0aW9uOjM2MSxtZHhTZXNzaW9uSGVhcnRiZWF0OjM2MixjbGllbnRIaW50c1BvbHlmaWxsRGlhZ25vc3RpY3M6MzYzLGNsaWVudEhpbnRzUG9seWZpbGxFdmVudDozNjQscHJvb2ZPZk9yaWdpblRva2VuRXJyb3I6MzY1LGtpZHNBZGRlZEFjY291bnRTdW1tYXJ5OjM2NixtdXNpY1dlYXJhYmxlRGV2aWNlOjM2Nyx5cGNSZWZ1bmRGbG93RXZlbnQ6MzY4LHR2aHRtbDVQbGF5YmFja01lYXN1cmVtZW50RXZlbnQ6MzY5LHR2aHRtbDVXYXRlcm1hcmtNZWFzdXJlbWVudEV2ZW50OjM3MCxjbGllbnRFeHBHY2ZQcm9wYWdhdGlvbkV2ZW50OjM3MSxtYWluQXBwUmVmZXJyZXJJbnRlbnQ6MzcyLGxlYWRlckxvY2tFbmRlZDozNzMsbGVhZGVyTG9ja0FjcXVpcmVkOjM3NCwKZ29vZ2xlSGF0c0V2ZW50OjM3NSxwZXJzaXN0ZW50TGVuc0xhdW5jaEV2ZW50OjM3NixwYXJlbnRUb29sc0NoaWxkV2VsY29tZUNob3NlbkV2ZW50OjM3OCxicm93c2VUaHVtYm5haWxQcmVsb2FkRXZlbnQ6Mzc5LGZpbmFsUGF5bG9hZDozODAsbWR4RGlhbEFkZGl0aW9uYWxEYXRhVXBkYXRlRXZlbnQ6MzgxLHdlYk9yY2hlc3RyYXRpb25UYXNrTGlmZWN5Y2xlUmVjb3JkOjM4MixzdGFydHVwU2lnbmFsRXZlbnQ6Mzg0LGFjY291bnRFcnJvcjozODUsZ21zRGV2aWNlQ2hlY2tFdmVudDozODYsYWNjb3VudFNlbGVjdG9yRXZlbnQ6Mzg4LGFjY291bnRVaUNhbGxiYWNrczozODksbWR4RGlhbEFkZGl0aW9uYWxEYXRhUHJvYmVFdmVudDozOTAsZG93bmxvYWRzU2VhcmNoSWNpbmdBcGlTdGF0czozOTEsZG93bmxvYWRzU2VhcmNoSW5kZXhVcGRhdGVkRXZlbnQ6Mzk3LGRvd25sb2Fkc1NlYXJjaEluZGV4U25hcHNob3Q6Mzk4LGRhdGFQdXNoQ2xpZW50RXZlbnQ6MzkyLGtpZHNDYXRlZ29yeVNlbGVjdGVkRXZlbnQ6MzkzLAptZHhEZXZpY2VNYW5hZ2VtZW50U25hcHNob3RFdmVudDozOTQscHJlZmV0Y2hSZXF1ZXN0ZWQ6Mzk1LHByZWZldGNoYWJsZUNvbW1hbmRFeGVjdXRlZDozOTYsZ2VsRGVidWdnaW5nRXZlbnQ6Mzk5LHdlYkxpbmtUdHNQbGF5RW5kOjQwMCxjbGlwVmlld0ludmFsaWQ6NDAxLHBlcnNpc3RlbnRTdG9yYWdlU3RhdGVDaGVja2VkOjQwMyxjYWNoZVdpcGVvdXRFdmVudDo0MDQscGxheWVyRXZlbnQ6NDEwLHNmdkVmZmVjdFBpcGVsaW5lU3RhcnRlZEV2ZW50OjQxMixzZnZFZmZlY3RQaXBlbGluZVBhdXNlZEV2ZW50OjQyOSxzZnZFZmZlY3RQaXBlbGluZUVuZGVkRXZlbnQ6NDEzLHNmdkVmZmVjdENob3NlbkV2ZW50OjQxNCxzZnZFZmZlY3RMb2FkZWRFdmVudDo0MTUsc2Z2RWZmZWN0VXNlckludGVyYWN0aW9uRXZlbnQ6NDY1LHNmdkVmZmVjdEZpcnN0RnJhbWVQcm9jZXNzZWRMYXRlbmN5RXZlbnQ6NDE2LHNmdkVmZmVjdEFnZ3JlZ2F0ZWRGcmFtZXNQcm9jZXNzZWRMYXRlbmN5RXZlbnQ6NDE3LApzZnZFZmZlY3RBZ2dyZWdhdGVkRnJhbWVzRHJvcHBlZEV2ZW50OjQxOCxzZnZFZmZlY3RQaXBlbGluZUVycm9yRXZlbnQ6NDMwLHNmdkVmZmVjdEdyYXBoRnJvemVuRXZlbnQ6NDE5LHNmdkVmZmVjdEdsVGhyZWFkQmxvY2tlZEV2ZW50OjQyMCxtZGVRb3NFdmVudDo1MTAsbWRlVmlkZW9DaGFuZ2VkRXZlbnQ6NDQyLG1kZVBsYXllclBlcmZvcm1hbmNlTWV0cmljczo0NzIsbWRlRXhwb3J0ZXJFdmVudDo0OTcsZ2VuZXJpY0NsaWVudEV4cGVyaW1lbnRFdmVudDo0MjMsaG9tZVByZWxvYWRUYXNrU2NoZWR1bGVkOjQyNCxob21lUHJlbG9hZFRhc2tFeGVjdXRlZDo0MjUsaG9tZVByZWxvYWRDYWNoZUhpdDo0MjYscG9seW1lclByb3BlcnR5Q2hhbmdlZEluT2JzZXJ2ZXI6NDI3LGFwcGxpY2F0aW9uU3RhcnRlZDo0MzEsbmV0d29ya0Nyb25ldFJ0dEJhdGNoOjQzMixuZXR3b3JrQ3JvbmV0UnR0U3VtbWFyeTo0MzMscmVwZWF0Q2hhcHRlckxvb3BFdmVudDo0MzYsc2Vla0NhbmNlbGxhdGlvbkV2ZW50OjQ2MiwKbG9ja01vZGVUaW1lb3V0RXZlbnQ6NDgzLGV4dGVybmFsVmlkZW9TaGFyZVRvWW91dHViZUF0dGVtcHQ6NTAxLHBhcmVudENvZGVFdmVudDo1MDIsb2ZmbGluZVRyYW5zZmVyU3RhcnRlZDo0LG11c2ljT2ZmbGluZU1peHRhcGVQcmVmZXJlbmNlc0NoYW5nZWQ6MTYsbWFuZ29EYWlseU5ld1ZpZGVvc05vdGlmaWNhdGlvbkF0dGVtcHQ6NDAsbWFuZ29EYWlseU5ld1ZpZGVvc05vdGlmaWNhdGlvbkVycm9yOjc3LGR0d3NQbGF5YmFja1N0YXJ0ZWQ6MTEyLGR0d3NUaWxlRmV0Y2hTdGFydGVkOjExMyxkdHdzVGlsZUZldGNoQ29tcGxldGVkOjExNCxkdHdzVGlsZUZldGNoU3RhdHVzQ2hhbmdlZDoxNDUsZHR3c0tleWZyYW1lRGVjb2RlckJ1ZmZlclNlbnQ6MTE1LGR0d3NUaWxlVW5kZXJmbG93ZWRPbk5vbmtleWZyYW1lOjExNixkdHdzQmFja2ZpbGxGZXRjaFN0YXR1c0NoYW5nZWQ6MTQzLGR0d3NCYWNrZmlsbFVuZGVyZmxvd2VkOjExNyxkdHdzQWRhcHRpdmVMZXZlbENoYW5nZWQ6MTI4LApibG9ja2luZ1Zpc2l0b3JJZFRpbWVvdXQ6Mjc3LGxpdGVTb2NpYWw6MTgsbW9iaWxlSnNJbnZvY2F0aW9uOjI5NyxiaXNjb3R0aUJhc2VkRGV0ZWN0aW9uOjQzOSxjb1dhdGNoU3RhdGVDaGFuZ2U6NDQwLGVtYmVkc1ZpZGVvRGF0YURpZENoYW5nZTo0NDEsc2hvcnRzRmlyc3Q6NDQzLGNydWlzZUNvbnRyb2xFdmVudDo0NDUscW9lQ2xpZW50TG9nZ2luZ0NvbnRleHQ6NDQ2LGF0dlJlY29tbWVuZGF0aW9uSm9iRXhlY3V0ZWQ6NDQ3LHR2aHRtbDVVc2VyRmVlZGJhY2s6NDQ4LHByb2R1Y2VyUHJvamVjdENyZWF0ZWQ6NDQ5LHByb2R1Y2VyUHJvamVjdE9wZW5lZDo0NTAscHJvZHVjZXJQcm9qZWN0RGVsZXRlZDo0NTEscHJvZHVjZXJQcm9qZWN0RWxlbWVudEFkZGVkOjQ1Myxwcm9kdWNlclByb2plY3RFbGVtZW50UmVtb3ZlZDo0NTQscHJvZHVjZXJBcHBTdGF0ZUNoYW5nZTo1MDkscHJvZHVjZXJQcm9qZWN0RGlza0luc3VmZmljaWVudEV4cG9ydEZhaWx1cmU6NTE2LHByb2R1Y2VyTWVkaWFTZXJ2aWNlc1Jlc2V0RGV0YWlsczo1MjIsCnR2aHRtbDVTaG93Q2xvY2tFdmVudDo0NTUsZGV2aWNlQ2FwYWJpbGl0eUNoZWNrTWV0cmljczo0NTYseW91dHViZUNsZWFyY3V0RXZlbnQ6NDYxLG9mZmxpbmVCcm93c2VGYWxsYmFja0V2ZW50OjQ2MyxnZXRDdHZUb2tlbkV2ZW50OjQ2NCxzdGFydHVwRHJvcHBlZEZyYW1lc1N1bW1hcnk6NDY2LHNjcmVlbnNob3RFdmVudDo0NjgsbWluaUFwcFBsYXlFdmVudDo0NjksZWxlbWVudHNEZWJ1Z0NvdW50ZXJzOjQ3MCxmb250TG9hZEV2ZW50OjQ3MSx3ZWJLaWxsc3dpdGNoUmVjZWl2ZWQ6NDczLHdlYktpbGxzd2l0Y2hFeGVjdXRlZDo0NzQsY2FtZXJhT3BlbkV2ZW50OjQ3NSxtYW51YWxTbW9vdGhuZXNzTWVhc3VyZW1lbnQ6NDc2LHR2aHRtbDVBcHBRdWFsaXR5RXZlbnQ6NDc3LHBvbHltZXJQcm9wZXJ0eUFjY2Vzc0V2ZW50OjQ3OSxtaW5pQXBwU2RrVXNhZ2U6NDgwLGNvYmFsdFRlbGVtZXRyeUV2ZW50OjQ4MSxjcm9zc0RldmljZVBsYXliYWNrOjQ4MixjaGFubmVsQ3JlYXRlZFdpdGhPYmFrZUltYWdlOjQ4NCwKY2hhbm5lbEVkaXRlZFdpdGhPYmFrZUltYWdlOjQ4NSxvZmZsaW5lRGVsZXRlRXZlbnQ6NDg2LGNyb3NzRGV2aWNlTm90aWZpY2F0aW9uVHJhbnNmZXI6NDg3LGFuZHJvaWRJbnRlbnRFdmVudDo0ODgsdW5wbHVnZ2VkQW1iaWVudEludGVybHVkZXNDb3VudGVyZmFjdHVhbEV2ZW50OjQ4OSxrZXlQbGF5c1BsYXliYWNrOjQ5MCxzaG9ydHNDcmVhdGlvbkZhbGxiYWNrRXZlbnQ6NDkzLHZzc0RhdGE6NDkxLGNhc3RNYXRjaDo0OTQsbWluaUFwcFBlcmZvcm1hbmNlTWV0cmljczo0OTUsdXNlckZlZWRiYWNrRXZlbnQ6NDk2LGtpZHNHdWVzdFNlc3Npb25NaXNtYXRjaDo0OTgsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RNaWdyYXRpb25FdmVudDo0OTksc2xlZXBUaW1lclNlc3Npb25GaW5pc2hFdmVudDo1MDAsd2F0Y2hFcFByb21vQ29uZmxpY3Q6NTAzLGlubmVydHViZVJlc3BvbnNlQ2FjaGVNZXRyaWNzOjUwNSxtaW5pQXBwQWRFdmVudDo1MDYsZGF0YVBsYW5VcHNlbGxFdmVudDo1MDcsCnByb2R1Y2VyUHJvamVjdFJlbmFtZWQ6NTA4LHByb2R1Y2VyTWVkaWFTZWxlY3Rpb25FdmVudDo1MTEsZW1iZWRzQXV0b3BsYXlTdGF0dXNDaGFuZ2VkOjUxMixyZW1vdGVDb25uZWN0RXZlbnQ6NTEzLGNvbm5lY3RlZFNlc3Npb25NaXNhdHRyaWJ1dGlvbkV2ZW50OjUxNCxwcm9kdWNlclByb2plY3RFbGVtZW50TW9kaWZpZWQ6NTE1LGFkc1NlZW5DbGllbnRMb2dnaW5nOjUxNyxwcm9kdWNlckV2ZW50OjUxOCx0dmh0bWw1Q2xlYW5TdGFydDo1MTksZGV2aWNlQWNjb3VudE1ldHJpY3NFdmVudDo1MjAsZGVycExvZ0V2ZW50OjUyMSxwbGF5YWJsZXNQb3J0YWxFdmVudDo1MjMsaXBWYWxpZGF0aW9uU3RhcnRlZDo1MjQsaXBWYWxpZGF0aW9uUmVjZWl2ZWQ6NTI1LHJlZWxzU2VxdWVuY2VNdXRhdGlvbkV2ZW50OjUyNyx3YXRjaFpvb21TdGF0ZUNoYW5nZTo1MjgsbWV0YWRhdGFFZGl0b3JFdmVudDo1Mjksa2lkc1ByaXNtYURlZXBsaW5rc0V2ZW50OjUzMCxjcmVhdGlvbk9yY2hlc3RyYXRpb25FdmVudDo1MzEsCmNvb3JkaW5hdGVkU2FtcGxpbmdUcmlnZ2VyZWQ6NTMyLHJlY2FwU2NyZWVuc2hvdEV2ZW50OjUzNCxtZHhMb2NhbE5ldHdvcmtQZXJtaXNzaW9uUmVxdWVzdEV2ZW50OjUzNixtZHhMb2NhbE5ldHdvcmtQZXJtaXNzaW9uUmVzcG9uc2VFdmVudDo1Mzcsc2Vzc2lvblJlcGxheUV2ZW50OjUzOCxzZXNzaW9uUmVwbGF5U3RhdHVzRXZlbnQ6NTM5LGxvZ2dpbmdSZWxpYWJpbGl0eVByb2JlOjU0MCxrZXlWYWx1ZVN0b3JlU3RhdHNFdmVudDo1NDEsZGV2aWNlTG9jYXRpb25QZXJtaXNzaW9uRXZlbnQ6NTQyLHJlbW90ZUNvbnRyb2xTdGFydGVkOjU0MyxyZW1vdGVDb250cm9sQ29tcGxldGVkOjU0NCxyZWVsc0Fkc0V2ZW50czo1NDUseXRsckxvYWRlclRlc3RIYXJuZXNzRXZlbnQ6NTQ3LGJpb21ldHJpY0F1dGhlbnRpY2F0aW9uRXZlbnQ6NTQ4LG1haW5BcHBMaWZlY3ljbGVFdmVudDo1NDksbXVzaWNEb3dubG9hZEJhY2tncm91bmRDb250aW51ZWRQcm9jZXNzaW5nVGFzazo1NTAsbXVzaWNNZXRhZGF0YU1pc21hdGNoRXZlbnQ6NTUxLApzY3JvbGxUb0NvbXBvbmVudENvbXBsZXRlZDo1NTIsZW50aXR5U3RvcmVUZWxlbWV0cnk6NTUzLHN0cmVhbWluZ0RhcmtMYXVuY2hFdmVudDo1NTQsY2hpbGRBY2NvdW50c0Rpc3BsYXlFdmVudDo1NTUsdHZmYXNQbGF5YmFja0NvbnRleHQ6NTU3LG1kZUMyUGFFdmVudDo1NTl9O3ZhciBoX3g9a08oIlNlcnZpY2VXb3JrZXJMb2dzRGF0YWJhc2UiLHtLYzp7U1dIZWFsdGhMb2c6e3Z4OjF9fSxzaGFyZWQ6ITAsdXBncmFkZToobixXKT0+e1coMSkmJkVSKFp5KG4sIlNXSGVhbHRoTG9nIix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KSwic3dIZWFsdGhOZXdSZXF1ZXN0IixbImludGVyZmFjZSIsInRpbWVzdGFtcCJdKX0sCnZlcnNpb246MX0pO3ZhciBYaT17fSxYSHc9MDt2YXIgR1Q7dmFyIHJvPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPW5ldyBNYXA7dGhpcy5KPSExfXJlcXVlc3RDb21wbGV0ZShuLFcpe1cmJih0aGlzLko9ITApO249dGhpcy5yZW1vdmVQYXJhbXMobik7dGhpcy5OLmdldChuKXx8dGhpcy5OLnNldChuLFcpfWlzRW5kcG9pbnRDRlIobil7bj10aGlzLnJlbW92ZVBhcmFtcyhuKTtyZXR1cm4obj10aGlzLk4uZ2V0KG4pKT8hMTpuPT09ITEmJnRoaXMuSj8hMDpudWxsfXJlbW92ZVBhcmFtcyhuKXtyZXR1cm4gbi5zcGxpdCgiPyIpWzBdfX07cm8ucHJvdG90eXBlLnJlbW92ZVBhcmFtcz1yby5wcm90b3R5cGUucmVtb3ZlUGFyYW1zO3JvLnByb3RvdHlwZS5pc0VuZHBvaW50Q0ZSPXJvLnByb3RvdHlwZS5pc0VuZHBvaW50Q0ZSO3JvLnByb3RvdHlwZS5yZXF1ZXN0Q29tcGxldGU9cm8ucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZTtyby5nZXRJbnN0YW5jZT1zYzt2YXIgTmI9Y2xhc3MgZXh0ZW5kcyBnLm9Xe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLko9ITE7dGhpcy5OPXMydygpO3RoaXMuTi5TXygibmV0d29ya3N0YXR1cy1vbmxpbmUiLCgpPT57aWYodGhpcy5KJiZnLmwoIm9mZmxpbmVfZXJyb3JfaGFuZGxpbmciKSl7dmFyIG49JFEoKS5nZXQoImVycm9ycyIsITApO2lmKG4pe2ZvcihsZXQgVyBpbiBuKWlmKG5bV10pe2xldCBEPW5ldyBnLlF4KFcsInNlbnQgdmlhIG9mZmxpbmVfZXJyb3JzIik7RC5uYW1lPW5bV10ubmFtZTtELnN0YWNrPW5bV10uc3RhY2s7RC5sZXZlbD1uW1ddLmxldmVsO090KEQpfSRRKCkuc2V0KCJlcnJvcnMiLHt9LDI1OTJFMywhMCl9fX0pfVdHKCl7cmV0dXJuIHRoaXMuTi5XRygpfWxjKG4pe3RoaXMuTi5pc09ubGluZT1ufUxrKCl7dmFyIG49d2luZG93Lm5hdmlnYXRvci5vbkxpbmU7CnJldHVybiBuPT09dm9pZCAwPyEwOm59REgoKXt0aGlzLko9ITB9U18obixXKXtyZXR1cm4gdGhpcy5OLlNfKG4sVyl9aEoobil7cmV0dXJuIHJYKHRoaXMuTixuKX19O05iLnByb3RvdHlwZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdD1OYi5wcm90b3R5cGUuaEo7TmIucHJvdG90eXBlLmxpc3Rlbj1OYi5wcm90b3R5cGUuU187TmIucHJvdG90eXBlLmVuYWJsZUVycm9yRmx1c2hpbmc9TmIucHJvdG90eXBlLkRIO05iLnByb3RvdHlwZS5nZXRXaW5kb3dTdGF0dXM9TmIucHJvdG90eXBlLkxrO05iLnByb3RvdHlwZS5uZXR3b3JrU3RhdHVzSGludD1OYi5wcm90b3R5cGUubGM7TmIucHJvdG90eXBlLmlzTmV0d29ya0F2YWlsYWJsZT1OYi5wcm90b3R5cGUuV0c7TmIuZ2V0SW5zdGFuY2U9cG07dmFyIGI2Wj1jbGFzcyBleHRlbmRzIGcub1d7Y29uc3RydWN0b3IoKXt2YXIgbj17dTI6ITAsRW86ITB9O3N1cGVyKCk7dGhpcy5OPXRoaXMuWD0wO3RoaXMuSj1wbSgpO3ZhciBXPWcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmxpc3RlbiIpLmJpbmQodGhpcy5KKTtXJiYobi5yYXRlTGltaXQ/KHRoaXMucmF0ZUxpbWl0PW4ucmF0ZUxpbWl0LFcoIm5ldHdvcmtzdGF0dXMtb25saW5lIiwoKT0+e1lRKHRoaXMsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLFcoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9PntZUSh0aGlzLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpfSkpOihXKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLFcoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIil9KSkpfVdHKCl7dmFyIG49CmcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmlzTmV0d29ya0F2YWlsYWJsZSIpOwpyZXR1cm4gbj9uLmJpbmQodGhpcy5KKSgpOiEwfWxjKG4pe3ZhciBXPWcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLm5ldHdvcmtTdGF0dXNIaW50IikuYmluZCh0aGlzLkopO1cmJlcobil9YXN5bmMgaEoobil7dmFyIFc9Zy5ycigieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2Uuc2VuZE5ldHdvcmtDaGVja1JlcXVlc3QiKS5iaW5kKHRoaXMuSik7cmV0dXJuIGcubCgic2tpcF9uZXR3b3JrX2NoZWNrX2lmX2NmciIpJiZzYygpLmlzRW5kcG9pbnRDRlIoImdlbmVyYXRlXzIwNCIpP25ldyBQcm9taXNlKEQ9Pnt0aGlzLmxjKHdpbmRvdy5uYXZpZ2F0b3I/Lm9uTGluZXx8ITApO0QodGhpcy5XRygpKX0pOlc/VyhuKTohMH19O3ZhciBTYyxHemg9Y2xhc3MgZXh0ZW5kcyBEejF7Y29uc3RydWN0b3IoKXtTY3x8KFNjPW5ldyBiNlopO3N1cGVyKHtnRTp7dGk6dnZpLFRNOmJHQyxpNDpudjIsSzY6V19DLGhZOkRFeCxzZXQ6YUJTfSx5RzpTYyxoYW5kbGVFcnJvcjoobixXLEQpPT57dmFyIGI9RD8uZXJyb3I/LmNvZGU7Yj09PTQwMHx8Yj09PTQxNT8obj1uZXcgZy5ReChuLm1lc3NhZ2UsVyxEPy5lcnJvcj8uY29kZSksWkUobix2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMCkpOk90KG4pfSwKRjI6WkUsTG06JEV0LG5vdzpnLlIsaEw6cUt3LEEkOmcuRHkoKSx1WjoicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9ubGluZSIsTkE6InB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIixDcjohMCxLcjouMSxIRjp2MCgicG90ZW50aWFsX2VzZl9lcnJvcl9saW1pdCIsMTApLEVxOmcubCxOaDohKFI5KCkmJmcuSVAoZG9jdW1lbnQubG9jYXRpb24udG9TdHJpbmcoKSkhPT0id3d3LnlvdXR1YmUtbm9jb29raWUuY29tIil9KTt0aGlzLmo9bmV3IGcuS1Y7Zy5sKCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX2FsbF9yZXF1ZXN0cyIpJiZremkoKTt2eigiTG9nc0RhdGFiYXNlVjIiKX13cml0ZVRoZW5TZW5kKG4sVyl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci53cml0ZVRoZW5TZW5kKG4sVyl9c2VuZFRoZW5Xcml0ZShuLFcsRCl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci5zZW5kVGhlbldyaXRlKG4sVyxEKX1zZW5kQW5kV3JpdGUobiwKVyl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci5zZW5kQW5kV3JpdGUobixXKX1hd2FpdEluaXRpYWxpemF0aW9uKCl7cmV0dXJuIHRoaXMuai5wcm9taXNlfX07dmFyIEpJPWcucWkueXROZXR3b3JrbGVzc0xvZ2dpbmdJbml0aWFsaXphdGlvbk9wdGlvbnN8fHtpc053bEluaXRpYWxpemVkOiExfTtnLkdiKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIsSkkpO2cuZDQ9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5jb25maWdfPW51bGw7bj90aGlzLmNvbmZpZ189bjpJNygpJiYodGhpcy5jb25maWdfPWcuUzkoKSl9aXNSZWFkeSgpeyF0aGlzLmNvbmZpZ18mJkk3KCkmJih0aGlzLmNvbmZpZ189Zy5TOSgpKTtyZXR1cm4hIXRoaXMuY29uZmlnX319O3ZhciB2Z3c9Zy5xaS55dFB1YnN1YlB1YnN1Ykluc3RhbmNlfHxuZXcgQkssQUk9Zy5xaS55dFB1YnN1YlB1YnN1YlN1YnNjcmliZWRLZXlzfHx7fSxLbT1nLnFpLnl0UHVic3ViUHVic3ViVG9waWNUb0tleXN8fHt9LG1nPWcucWkueXRQdWJzdWJQdWJzdWJJc1N5bmNocm9ub3VzfHx7fTtCSy5wcm90b3R5cGUuc3Vic2NyaWJlPUJLLnByb3RvdHlwZS5zdWJzY3JpYmU7QksucHJvdG90eXBlLnVuc3Vic2NyaWJlQnlLZXk9QksucHJvdG90eXBlLmpLO0JLLnByb3RvdHlwZS5wdWJsaXNoPUJLLnByb3RvdHlwZS5XSjtCSy5wcm90b3R5cGUuY2xlYXI9QksucHJvdG90eXBlLmNsZWFyO2cuR2IoInl0UHVic3ViUHVic3ViSW5zdGFuY2UiLHZndyk7Zy5HYigieXRQdWJzdWJQdWJzdWJUb3BpY1RvS2V5cyIsS20pO2cuR2IoInl0UHVic3ViUHVic3ViSXNTeW5jaHJvbm91cyIsbWcpO2cuR2IoInl0UHVic3ViUHVic3ViU3Vic2NyaWJlZEtleXMiLEFJKTt2YXIgb0k9e307Zy5peChnLkZpLGcuRk0pO2cuRT1nLkZpLnByb3RvdHlwZTtnLkUuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdGhpcy5xTigpPzA6dGhpcy5ZJC5zdWJzY3JpYmUobixXLEQpfTsKZy5FLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdGhpcy5xTigpPyExOnRoaXMuWSQudW5zdWJzY3JpYmUobixXLEQpfTsKZy5FLmpLPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnFOKCk/ITE6dGhpcy5ZJC5qSyhuKX07CmcuRS5XSj1mdW5jdGlvbihuLFcpe3JldHVybiB0aGlzLnFOKCk/ITE6dGhpcy5ZJC5XSi5hcHBseSh0aGlzLlkkLGFyZ3VtZW50cyl9OwpnLkUuaCQ9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbil0aGlzLnN1YnNjcmliZShELG5bRF0sVyl9OwpnLkUuTTk9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbil0aGlzLnVuc3Vic2NyaWJlKEQsbltEXSxXKX07dmFyIHdvPURhdGUubm93KCkudG9TdHJpbmcoKTt2YXIgYnk9e307Zy5MWD1TeW1ib2woImluamVjdGlvbkRlcHMiKTt2YXIga289Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5rZXk9bn19O3ZhciBwSHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9bmV3IE1hcDt0aGlzLlc9bmV3IE1hcDt0aGlzLk49bmV3IE1hcH1yZXNvbHZlKG4pe3JldHVybiBuIGluc3RhbmNlb2Yga28/Z0UodGhpcyxuLmtleSxbXSwhMCk6Z0UodGhpcyxuLFtdKX19O2cuQUw9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5uYW1lPW59dG9TdHJpbmcoKXtyZXR1cm5gSW5qZWN0aW9uVG9rZW4oJHt0aGlzLm5hbWV9KWB9fTt2YXIgWDQ7dmFyIEdwPXdpbmRvdzt2YXIgZlg9Zy5sKCJ3ZWJfZW5hYmxlX2xpZmVjeWNsZV9tb25pdG9yaW5nIikmJnRwKCkhPT0wLEhHdD1nLmwoIndlYl9lbmFibGVfbGlmZWN5Y2xlX21vbml0b3JpbmciKTt2YXIgQXZqPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuc2NoZWR1bGVyPWcuRHkoKTt0aGlzLko9bmV3IGcuS1Y7dGhpcy5OPW47Zm9yKGxldCBXPTA7Vzx0aGlzLk4ubGVuZ3RoO1crKyl7bGV0IEQ9dGhpcy5OW1ddO249KCk9PntELkphKCk7dGhpcy5OW1ddLk1KPSEwO3RoaXMuTi5ldmVyeSh2PT52Lk1KPT09ITApJiZ0aGlzLkoucmVzb2x2ZSgpfTsKbGV0IGI9Zy5WeCgwLG4sRC5wcmlvcml0eT8/MCk7dGhpcy5OW1ddPXsuLi5ELEphOm4sam9iSWQ6Yn19fWNhbmNlbCgpe2ZvcihsZXQgbiBvZiB0aGlzLk4pbi5qb2JJZD09PXZvaWQgMHx8bi5NSnx8dGhpcy5zY2hlZHVsZXIuc08obi5qb2JJZCksbi5NSj0hMDt0aGlzLkoucmVzb2x2ZSgpfX07dmFyIGt4aD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGU9Im5vbmUiO3RoaXMucGx1Z2lucz1bXTt0aGlzLko9dm9pZCAwO3RoaXMuWD17fTtmWCYmJG8odGhpcy5zdGF0ZSl9Z2V0IGN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlfWluc3RhbGwobil7dGhpcy5wbHVnaW5zLnB1c2gobik7cmV0dXJuIHRoaXN9dW5pbnN0YWxsKC4uLm4pe24uZm9yRWFjaChXPT57Vz10aGlzLnBsdWdpbnMuaW5kZXhPZihXKTtXPi0xJiZ0aGlzLnBsdWdpbnMuc3BsaWNlKFcsMSl9KX10cmFuc2l0aW9uKG4sVyl7ZlgmJnJFKHRoaXMuc3RhdGUpOwp2YXIgRD10aGlzLnRyYW5zaXRpb25zLmZpbmQoYj0+QXJyYXkuaXNBcnJheShiLmZyb20pP2IuZnJvbS5maW5kKHY9PnY9PT10aGlzLnN0YXRlJiZiLnRvPT09bik6Yi5mcm9tPT09dGhpcy5zdGF0ZSYmYi50bz09PW4pOwppZihEKXt0aGlzLlcmJihZS2oodGhpcy5XKSx0aGlzLlc9dm9pZCAwKTtmUjIodGhpcyxuLFcpO3RoaXMuc3RhdGU9bjtmWCYmJG8odGhpcy5zdGF0ZSk7RD1ELmFjdGlvbi5iaW5kKHRoaXMpO2xldCBiPXRoaXMucGx1Z2lucy5maWx0ZXIodj0+dltuXSkubWFwKHY9PnZbbl0pOwpEKFNLQyh0aGlzLGIpLFcpfWVsc2UgdGhyb3cgRXJyb3IoYG5vIHRyYW5zaXRpb24gc3BlY2lmaWVkIGZyb20gJHt0aGlzLnN0YXRlfSB0byAke259YCk7fX07dmFyIG1Fdz1jbGFzcyBleHRlbmRzIGt4aHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5OPW51bGw7dGhpcy5KPTEwO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJub25lIix0bzoiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsYWN0aW9uOnRoaXMuan0se2Zyb206ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciLHRvOiJub25lIixhY3Rpb246dGhpcy5WfSx7ZnJvbToiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsdG86ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciLGFjdGlvbjooKT0+e319LAp7ZnJvbToibm9uZSIsdG86Im5vbmUiLGFjdGlvbjooKT0+e319XX1qKG4sVyl7dGhpcy5OPWcuY0IoMCwoKT0+e3RoaXMuY3VycmVudFN0YXRlPT09ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciJiZ0aGlzLnRyYW5zaXRpb24oIm5vbmUiKX0sNUUzKTsKbihXPy5ldmVudCl9VihuLFcpe3RoaXMuTiYmKHRhLnNPKHRoaXMuTiksdGhpcy5OPW51bGwpO24oVz8uZXZlbnQpfX0sSnA7dmFyIFV5PVtdO2cuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmdldFNjcmFwZWRHZWxQYXlsb2FkcyIsZnVuY3Rpb24oKXtyZXR1cm4gVXl9KTt2YXIgbTM9dm9pZCAwLFNaPXZvaWQgMDt2YXIgb2I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0b3JlPXt9O3RoaXMuTj17fX1zdG9yZVBheWxvYWQobixXKXtuPU85KG4pO3RoaXMuc3RvcmVbbl0/dGhpcy5zdG9yZVtuXS5wdXNoKFcpOih0aGlzLk49e30sdGhpcy5zdG9yZVtuXT1bV10pO2cubCgibW9yZV9hY2N1cmF0ZV9nZWxfcGFyc2VyIikmJihXPW5ldyBDdXN0b21FdmVudCgiVFJBTlNQT1JUSU5HX05FV19FVkVOVCIpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KFcpKTtyZXR1cm4gbn1zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMobil7aWYoIW4ua2V5cy5sZW5ndGgpcmV0dXJuW107dmFyIFc9WkEodGhpcyxuLmtleXMuc3BsaWNlKDAsMSlbMF0pLEQ9W107Zm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspdGhpcy5zdG9yZVtXW2JdXSYmbi5zaXplTGltaXQmJih0aGlzLnN0b3JlW1dbYl1dLmxlbmd0aDw9bi5zaXplTGltaXQ/KEQucHVzaCguLi50aGlzLnN0b3JlW1dbYl1dKSxkZWxldGUgdGhpcy5zdG9yZVtXW2JdXSk6CkQucHVzaCguLi50aGlzLnN0b3JlW1dbYl1dLnNwbGljZSgwLG4uc2l6ZUxpbWl0KSkpO24/LnNpemVMaW1pdCYmRC5sZW5ndGg8bj8uc2l6ZUxpbWl0JiYobi5zaXplTGltaXQtPUQubGVuZ3RoLEQucHVzaCguLi50aGlzLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcyhuKSkpO3JldHVybiBEfWV4dHJhY3RNYXRjaGluZ0VudHJpZXMobil7bj1aQSh0aGlzLG4pO3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKXRoaXMuc3RvcmVbbltEXV0mJihXLnB1c2goLi4udGhpcy5zdG9yZVtuW0RdXSksZGVsZXRlIHRoaXMuc3RvcmVbbltEXV0pO3JldHVybiBXfWdldFNlcXVlbmNlQ291bnQobil7bj1aQSh0aGlzLG4pO3ZhciBXPTA7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspVys9dGhpcy5zdG9yZVtuW0RdXT8ubGVuZ3RofHwwO3JldHVybiBXfX07b2IucHJvdG90eXBlLmdldFNlcXVlbmNlQ291bnQ9b2IucHJvdG90eXBlLmdldFNlcXVlbmNlQ291bnQ7Cm9iLnByb3RvdHlwZS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzPW9iLnByb3RvdHlwZS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzO29iLnByb3RvdHlwZS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXM9b2IucHJvdG90eXBlLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcztvYi5wcm90b3R5cGUuc3RvcmVQYXlsb2FkPW9iLnByb3RvdHlwZS5zdG9yZVBheWxvYWQ7dmFyIHpfdD1uZXcgZy5BTCgiRmluY2hDb25maWdNYW5hZ2VyU2VydmljZSIpO3ZhciBVRXc9djAoImluaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiLDJFMyksWkdaPXYwKCJnZWxfcXVldWVfdGltZW91dF9tYXhfbXMiLDZFNCkseXZTPXYwKCJnZWxfbWluX2JhdGNoX3NpemUiLDUpLEU5PXZvaWQgMCx5Uj1udWxsLG1zPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPXRoaXMuSj10aGlzLlc9MDt0aGlzLk49ITF9fSxUZ2k9bmV3IG1zLGxSQz1uZXcgbXMsdDY9bmV3IG1zLEdVPW5ldyBtcyxXcywkQT0hMCxQcz0xLGx5PW5ldyBNYXAsZXk9Zy5xaS55dExvZ2dpbmdUcmFuc3BvcnRUb2tlbnNUb0N0dFRhcmdldElkc198fHt9O2cuR2IoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvQ3R0VGFyZ2V0SWRzXyIsZXkpO3ZhciBMVT1nLnFpLnl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvSnNwYkN0dFRhcmdldElkc198fHt9O2cuR2IoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvSnNwYkN0dFRhcmdldElkc18iLExVKTt2YXIgUmI9e30senA9ITE7dmFyIGlSPWcucWkueXRMb2dnaW5nR2VsU2VxdWVuY2VJZE9ial98fHt9O2cuR2IoInl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpfIixpUik7dmFyIG0xPVtdO3ZhciBWNCxLaj1nLnFpLnl0TG9nZ2luZ0RvY0RvY3VtZW50Tm9uY2VfO0tqfHwoS2o9Zy5SSSgxNiksZy5HYigieXRMb2dnaW5nRG9jRG9jdW1lbnROb25jZV8iLEtqKSk7VjQ9S2o7dmFyIEZfVT17Qnc6MCxGNjoxLFdROjIsTjM6MyxxdDo0LFlTOjUsUWM6NixMTTo3LEk2Ojgsc0M6OSxaTToxMCxiUzoxMSwwOiJERUZBVUxUIiwxOiJDSEFUIiwyOiJDT05WRVJTQVRJT05TIiwzOiJNSU5JUExBWUVSIiw0OiJESUFMT0ciLDU6IlZPWiIsNjoiTVVTSUNfV0FUQ0hfVEFCUyIsNzoiU0hBUkUiLDg6IlBVU0hfTk9USUZJQ0FUSU9OUyIsOToiUklDSF9HUklEX1dBVENIIiwxMDoiUElDVFVSRV9JTl9QSUNUVVJFIiwxMToiTUVESUFfQ0xJRU5UIn07dmFyIGp6Wj0xLGxSPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufWdldEFzSnNvbigpe3ZhciBuPXt9O3RoaXMuTi50cmFja2luZ1BhcmFtcyE9PXZvaWQgMD9uLnRyYWNraW5nUGFyYW1zPXRoaXMuTi50cmFja2luZ1BhcmFtczoobi52ZVR5cGU9dGhpcy5OLnZlVHlwZSx0aGlzLk4udmVDb3VudGVyIT09dm9pZCAwJiYobi52ZUNvdW50ZXI9dGhpcy5OLnZlQ291bnRlciksdGhpcy5OLmVsZW1lbnRJbmRleCE9PXZvaWQgMCYmKG4uZWxlbWVudEluZGV4PXRoaXMuTi5lbGVtZW50SW5kZXgpKTt0aGlzLk4uZGF0YUVsZW1lbnQhPT12b2lkIDAmJihuLmRhdGFFbGVtZW50PXRoaXMuTi5kYXRhRWxlbWVudC5nZXRBc0pzb24oKSk7dGhpcy5OLnlvdXR1YmVEYXRhIT09dm9pZCAwJiYobi55b3V0dWJlRGF0YT10aGlzLk4ueW91dHViZURhdGEpO3RoaXMuTi5pc0NvdW50ZXJmYWN0dWFsJiYobi5pc0NvdW50ZXJmYWN0dWFsPSEwKTtyZXR1cm4gbn1nZXRBc0pzcGIoKXt2YXIgbj1uZXcgcVlTOwp0aGlzLk4udHJhY2tpbmdQYXJhbXMhPT12b2lkIDA/bi5zZXRUcmFja2luZ1BhcmFtcyh0aGlzLk4udHJhY2tpbmdQYXJhbXMpOih0aGlzLk4udmVUeXBlIT09dm9pZCAwJiZveihuLDIsZy55UCh0aGlzLk4udmVUeXBlKSksdGhpcy5OLnZlQ291bnRlciE9PXZvaWQgMCYmb3oobiw2LGcueVAodGhpcy5OLnZlQ291bnRlcikpLHRoaXMuTi5lbGVtZW50SW5kZXghPT12b2lkIDAmJm96KG4sMyxnLnlQKHRoaXMuTi5lbGVtZW50SW5kZXgpKSx0aGlzLk4uaXNDb3VudGVyZmFjdHVhbCYmb3oobiw1LE9fKCEwKSkpO2lmKHRoaXMuTi5kYXRhRWxlbWVudCE9PXZvaWQgMCl7dmFyIFc9dGhpcy5OLmRhdGFFbGVtZW50LmdldEFzSnNwYigpOyQ5KG4scVlTLDcsVyl9dGhpcy5OLnlvdXR1YmVEYXRhIT09dm9pZCAwJiYkOShuLGU0dyw4LHRoaXMuTi5qc3BiWW91dHViZURhdGEpO3JldHVybiBufXRvU3RyaW5nKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QXNKc29uKCkpfWlzQ2xpZW50VmUoKXtyZXR1cm4hdGhpcy5OLnRyYWNraW5nUGFyYW1zJiYKISF0aGlzLk4udmVUeXBlfWdldExvZ2dpbmdEaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMuTi5sb2dnaW5nRGlyZWN0aXZlc319O2cuR2IoInl0X2xvZ2dpbmdfc2NyZWVuLmdldFJvb3RWZVR5cGUiLEZSKTtnLkdiKCJ5dF9sb2dnaW5nX3NjcmVlbi5nZXRDdXJyZW50Q3NuIixnLlJ2KTtnLkdiKCJ5dF9sb2dnaW5nX3NjcmVlbi5nZXRDdHRBdXRoSW5mbyIsUTQpO2cuR2IoInl0X2xvZ2dpbmdfc2NyZWVuLnNldEN1cnJlbnRTY3JlZW4iLGNzKTt2YXIgUl9NPSJhYnNvbHV0ZV9leHBlcmltZW50cyBhcHAgY29uZGl0aW9uYWxfZXhwZXJpbWVudHMgZGVidWdjc3MgZGVidWdqcyBleHBmbGFnIGZvcmNlZF9leHBlcmltZW50cyBwYmogcGJqcmVsb2FkIHNiYiBzcGYgc3BmcmVsb2FkIHNyX2Juc19hZGRyZXNzIHN0dGljayIuc3BsaXQoIiAiKTt2YXIgayRiPVt7RzE6bj0+YENhbm5vdCByZWFkIHByb3BlcnR5ICcke24ua2V5fSdgLApZejp7RXJyb3I6W3t3YjovKFBlcm1pc3Npb24gZGVuaWVkKSB0byBhY2Nlc3MgcHJvcGVydHkgIihbXiddKykiLyxncm91cHM6WyJyZWFzb24iLCJrZXkiXX1dLFR5cGVFcnJvcjpbe3diOi9DYW5ub3QgcmVhZCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKG51bGx8dW5kZWZpbmVkKS8sZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3diOi9cdTY1ZTBcdTZjZDVcdTgzYjdcdTUzZDZcdTY3MmFcdTViOWFcdTRlNDlcdTYyMTYgKG51bGx8dW5kZWZpbmVkKSBcdTVmMTVcdTc1MjhcdTc2ODRcdTVjNWVcdTYwMjdcdTIwMWMoW15cdTIwMWRdKylcdTIwMWQvLGdyb3VwczpbInZhbHVlIiwia2V5Il19LHt3YjovXHVjODE1XHVjNzU4XHViNDE4XHVjOWMwIFx1YzU0YVx1Yzc0YyBcdWI2MTBcdWIyOTQgKG51bGx8dW5kZWZpbmVkKSBcdWNjMzhcdWM4NzBcdWM3NzggJyhbXiddKyknIFx1YzE4ZFx1YzEzMVx1Yzc0NCBcdWFjMDBcdWM4MzhcdWM2MmMgXHVjMjE4IFx1YzVjNlx1YzJiNVx1YjJjOFx1YjJlNC4vLApncm91cHM6WyJ2YWx1ZSIsImtleSJdfSx7d2I6L05vIHNlIHB1ZWRlIG9idGVuZXIgbGEgcHJvcGllZGFkICcoW14nXSspJyBkZSByZWZlcmVuY2lhIG51bGEgbyBzaW4gZGVmaW5pci8sZ3JvdXBzOlsia2V5Il19LHt3YjovVW5hYmxlIHRvIGdldCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKHVuZGVmaW5lZCBvciBudWxsKSByZWZlcmVuY2UvLGdyb3VwczpbImtleSIsInZhbHVlIl19LHt3YjovKG51bGwpIGlzIG5vdCBhbiBvYmplY3QgXChldmFsdWF0aW5nICcoPzooW14uXSspXC4pPyhbXiddKyknXCkvLGdyb3VwczpbInZhbHVlIiwiYmFzZSIsImtleSJdfV19fSx7RzE6bj0+YENhbm5vdCBjYWxsICcke24ua2V5fSdgLApZejp7VHlwZUVycm9yOlt7d2I6Lyg/OihbXiBdKyk/XC4pPyhbXiBdKykgaXMgbm90IGEgZnVuY3Rpb24vLGdyb3VwczpbImJhc2UiLCJrZXkiXX0se3diOi8oW14gXSspIGNhbGxlZCBvbiAobnVsbCBvciB1bmRlZmluZWQpLyxncm91cHM6WyJrZXkiLCJ2YWx1ZSJdfSx7d2I6L09iamVjdCAoLiopIGhhcyBubyBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJiYXNlIiwia2V5Il19LHt3YjovT2JqZWN0IGRvZXNuJ3Qgc3VwcG9ydCBwcm9wZXJ0eSBvciBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJrZXkiXX0se3diOi9cdTMwYWFcdTMwZDZcdTMwYjhcdTMwYTdcdTMwYWZcdTMwYzhcdTMwNmYgJyhbXiddKyknIFx1MzBkN1x1MzBlZFx1MzBkMVx1MzBjNlx1MzBhM1x1MzA3ZVx1MzA1Zlx1MzA2Zlx1MzBlMVx1MzBiZFx1MzBjM1x1MzBjOVx1MzA5Mlx1MzBiNVx1MzBkZFx1MzBmY1x1MzBjOFx1MzA1N1x1MzA2Nlx1MzA0NFx1MzA3ZVx1MzA1Ylx1MzA5My8sZ3JvdXBzOlsia2V5Il19LAp7d2I6L1x1YWMxY1x1Y2NiNFx1YWMwMCAnKFteJ10rKScgXHVjMThkXHVjMTMxXHVjNzc0XHViMDk4IFx1YmE1NFx1YzExY1x1YjRkY1x1Yjk3YyBcdWM5YzBcdWM2ZDBcdWQ1NThcdWM5YzAgXHVjNTRhXHVjMmI1XHViMmM4XHViMmU0Li8sZ3JvdXBzOlsia2V5Il19XX19LHtHMTpuPT5gJHtuLmtleX0gaXMgbm90IGRlZmluZWRgLApZejp7UmVmZXJlbmNlRXJyb3I6W3t3YjovKC4qKSBpcyBub3QgZGVmaW5lZC8sZ3JvdXBzOlsia2V5Il19LHt3YjovQ2FuJ3QgZmluZCB2YXJpYWJsZTogKC4qKS8sZ3JvdXBzOlsia2V5Il19XX19XTt2YXIgYVJTPXtOOTpbXSxrbzpbe2NhbGxiYWNrOlF6MSx3ZWlnaHQ6NTAwfSx7Y2FsbGJhY2s6Vld4LHdlaWdodDo1MDB9XX07dmFyIGN2aD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMua289W107dGhpcy5OOT1bXX19LHZhO3ZhciBTaT1uZXcgQks7dmFyIElVPW5ldyBTZXQsdFA9MCx4SE09MCxBUD0wLHY5Mj1bXSxibjI9W10sTE5DPVsiUGhhbnRvbUpTIiwiR29vZ2xlYm90IiwiVE8gU1RPUCBUSElTIFNFQ1VSSVRZIFNDQU4gZ28vc2NhbiJdO0RhdGUubm93KCk7dmFyIFpwPWNsYXNzIGV4dGVuZHMgbzd7Y29uc3RydWN0b3Iobil7c3VwZXIoYXJndW1lbnRzKTt0aGlzLmNzbj1ufX0sVG89bmV3IGQzKCJzY3JlZW4tY3JlYXRlZCIsWnApLEM0PVtdLGVUaD1HJGosQmE9MCxVYT1uZXcgTWFwLHk1PW5ldyBNYXAsRWE9bmV3IE1hcDt2YXIgaHIyPWNsYXNze2ZsdXNoKG49W10sVz0hMSl7aWYoZy5sKCJlbmFibGVfY2xpZW50X3N0cmVhbXpfd2ViIikpZm9yKGxldCBEIG9mIG4pbj11NihEKSx0aGlzLk4mJiQ5KG4sT2l4LDIsdGhpcy5OKSxuPXtzZXJpYWxpemVkSW5jcmVtZW50QmF0Y2g6Zy5FQShuLkooKSl9LGcuelUoInN0cmVhbXpJbmNyZW1lbnRlZCIsbix7c2VuZElzb2xhdGVkUGF5bG9hZDpXfSl9fSxYbkM9Y2xhc3MgZXh0ZW5kcyBocjJ7Y29uc3RydWN0b3IoKXtzdXBlcigpfX0sU0hpPWNsYXNzIGV4dGVuZHMgaHIye2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dmFyIFc9bmV3IE9peDt2YXIgRD1uZXcgS1VDO0Q9Zy5TRShELDEsImJvdGd1YXJkIik7bj1nLlNFKEQsMixuKTt0aGlzLk49cmUoVyxLVUMsMSxQWmgsbil9fTt2YXIgVnAsSU0yPW5ldyBNYXA7dmFyIFQkYj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bmV3IFFLKG4pfXNldChuLFcsRCl7RD1EIT09dm9pZCAwP0RhdGUubm93KCkrRDp2b2lkIDA7dGhpcy5OLnNldChuLFcsRCl9Z2V0KG4pe3JldHVybiB0aGlzLk4uZ2V0KG4pfXJlbW92ZShuKXt0aGlzLk4ucmVtb3ZlKG4pfX07dmFyIHJTaD1udWxsO3ZhciBzbz0idG9rZW5zIGNvbnNpc3RlbmN5IHNlcnZpY2VfcGFyYW1zIG1zcyBjbGllbnRfbG9jYXRpb24gZW50aXRpZXMgYWRibG9ja19kZXRlY3Rpb24gcmVzcG9uc2VfcmVjZWl2ZWRfY29tbWFuZHMgc3RvcmUgbWFuaWZlc3QgcGxheWVyX3ByZWxvYWQgc2hvcnRzX3ByZWZldGNoIHJlc29sdmVfdXJsX3ByZWZldGNoIi5zcGxpdCgiICIpO3ZhciBzWVU9bmV3IE1hcChbWyJkYXJrIiwiVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyJdLFsibGlnaHQiLCJVU0VSX0lOVEVSRkFDRV9USEVNRV9MSUdIVCJdXSk7dmFyIERNPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPXt9O2lmKHRoaXMuSj1nLm1qKCkpe2xldCBuPWcuU2QoIkNPTlNJU1RFTkNZIik7biYmYVUodGhpcyx7ZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50czpufSl9fWhhbmRsZVJlc3BvbnNlKG4sVyl7aWYoIVcpdGhyb3cgRXJyb3IoInJlcXVlc3QgbmVlZHMgdG8gYmUgcGFzc2VkIGludG8gQ29uc2lzdGVuY3lTZXJ2aWNlIik7Vz1XLmlubmVyVHViZVJlcXVlc3QuY29udGV4dD8ucmVxdWVzdD8uY29uc2lzdGVuY3lUb2tlbkphcnN8fFtdOyhuPW4ucmVzcG9uc2VDb250ZXh0Py5jb25zaXN0ZW5jeVRva2VuSmFyKSYmdGhpcy5yZXBsYWNlKFcsbil9cmVwbGFjZShuLFcpe2ZvcihsZXQgRCBvZiBuKWRlbGV0ZSB0aGlzLk5bRC5lbmNyeXB0ZWRUb2tlbkphckNvbnRlbnRzXTthVSh0aGlzLFcpfX07dmFyIHh6cj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpLGIkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5XPS0xO3ZhciBuPWcuQXIoIkxPQ0FUSU9OX1BMQVlBQklMSVRZX1RPS0VOIik7Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iVFZIVE1MNSImJih0aGlzLmxvY2FsU3RvcmFnZT1uQih0aGlzKSkmJihuPXRoaXMubG9jYWxTdG9yYWdlLmdldCgieXQtbG9jYXRpb24tcGxheWFiaWxpdHktdG9rZW4iKSk7biYmKHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPW4sdGhpcy5KPXRoaXMuTj12b2lkIDApfXN0YXRpYyBnZXRJbnN0YW5jZSgpe09DPWcucnIoInl0LmNsaWVudExvY2F0aW9uU2VydmljZS5pbnN0YW5jZSIpO09DfHwoT0M9bmV3IGIkLGcuR2IoInl0LmNsaWVudExvY2F0aW9uU2VydmljZS5pbnN0YW5jZSIsT0MpKTtyZXR1cm4gT0N9c2V0TG9jYXRpb25PbklubmVyVHViZUNvbnRleHQobil7bi5jbGllbnR8fAoobi5jbGllbnQ9e30pO2lmKHRoaXMuTiluLmNsaWVudC5sb2NhdGlvbkluZm98fChuLmNsaWVudC5sb2NhdGlvbkluZm89e30pLG4uY2xpZW50LmxvY2F0aW9uSW5mby5sYXRpdHVkZUU3PU1hdGguZmxvb3IodGhpcy5OLmNvb3Jkcy5sYXRpdHVkZSoxRTcpLG4uY2xpZW50LmxvY2F0aW9uSW5mby5sb25naXR1ZGVFNz1NYXRoLmZsb29yKHRoaXMuTi5jb29yZHMubG9uZ2l0dWRlKjFFNyksbi5jbGllbnQubG9jYXRpb25JbmZvLmhvcml6b250YWxBY2N1cmFjeU1ldGVycz1NYXRoLnJvdW5kKHRoaXMuTi5jb29yZHMuYWNjdXJhY3kpLG4uY2xpZW50LmxvY2F0aW9uSW5mby5mb3JjZUxvY2F0aW9uUGxheWFiaWxpdHlUb2tlblJlZnJlc2g9ITA7ZWxzZSBpZih0aGlzLlh8fHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuKW4uY2xpZW50LmxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbj10aGlzLlh8fHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VufWdldFhHZW9IZWFkZXIoKXtpZih0aGlzLkope3ZhciBuPQp0aGlzLko7dmFyIFc9TWF0aC5mbG9vcihuLmNvb3Jkcy5sb25naXR1ZGUqMUU3KTt2YXIgRD1NYXRoLmZsb29yKG4uY29vcmRzLmxhdGl0dWRlKjFFNyk7dmFyIGI9bmV3IGpyMjtEPW96KGIsMSxnLnlQKEQpKTtXPW96KEQsMixnLnlQKFcpKTtEPW5ldyBCRnQ7RD1LbihELDEsMSk7RD1LbihELDIsMTIpO0Q9S24oRCw5LDgpO0Q9SVkoRCwzLG4udGltZXN0YW1wKjFFMyk7bj1veihELDcsZy5BXyhuLmNvb3Jkcy5hY2N1cmFjeSoxRTMpKTtuPUtuKG4sMjUsMik7bj0kOShuLGpyMiw1LFcpO249YHcgJHtnLkVBKEZGaShuKSw0KX1gfWVsc2Ugbj1udWxsO3JldHVybiBufWhhbmRsZVJlc3BvbnNlKG4pe249bi5yZXNwb25zZUNvbnRleHQ/LmxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbjtuIT09dm9pZCAwJiYodGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW49bix0aGlzLko9dGhpcy5OPXZvaWQgMCxnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1Ij8odGhpcy5sb2NhbFN0b3JhZ2U9Cm5CKHRoaXMpKSYmdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIsbiwxNTU1MkUzKTpJSygiWVRfQ0wiLEpTT04uc3RyaW5naWZ5KHtsb2N0b2s6bn0pLDE1NTUyRTMseHpyLCEwKSl9Y2xlYXJMb2NhdGlvblBsYXlhYmlsaXR5VG9rZW4obil7bj09PSJUVkhUTUw1Ij8odGhpcy5sb2NhbFN0b3JhZ2U9bkIodGhpcykpJiZ0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmUoInl0LWxvY2F0aW9uLXBsYXlhYmlsaXR5LXRva2VuIik6QXkoIllUX0NMIik7dGhpcy5YPXZvaWQgMDt0aGlzLlchPT0tMSYmKGNsZWFyVGltZW91dCh0aGlzLlcpLHRoaXMuVz0tMSl9Y2xlYXJDdXJyZW50UG9zaXRpb24oKXt0aGlzLko9dGhpcy5OPXZvaWQgMH1nZXRDdXJyZW50UG9zaXRpb25Gcm9tR2VvbG9jYXRpb24obil7aWYoIShuYXZpZ2F0b3ImJm5hdmlnYXRvci5nZW9sb2NhdGlvbiYmbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbikpcmV0dXJuIFByb21pc2UucmVqZWN0KEVycm9yKCJHZW9sb2NhdGlvbiB1bnN1cHBvcnRlZCIpKTsKdmFyIFc9ITEsRD0xRTQ7Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iTVdFQiImJihXPSEwLEQ9MTVFMyk7cmV0dXJuIG5ldyBQcm9taXNlKChiLHYpPT57bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihrPT57dGhpcy5KPW4/LmFkZFRvSGVhZGVycz9rOnZvaWQgMDt0aGlzLk49aztiKGspfSxrPT57dihrKX0se2VuYWJsZUhpZ2hBY2N1cmFjeTpXLAptYXhpbXVtQWdlOjAsdGltZW91dDpEfSl9KX1jcmVhdGVVbnBsdWdnZWRMb2NhdGlvbkluZm8obil7dmFyIFc9e307Cm49bi5jb29yZHM7bj8ubGF0aXR1ZGUmJihXLmxhdGl0dWRlRTc9TWF0aC5mbG9vcihuLmxhdGl0dWRlKjFFNykpO24/LmxvbmdpdHVkZSYmKFcubG9uZ2l0dWRlRTc9TWF0aC5mbG9vcihuLmxvbmdpdHVkZSoxRTcpKTtuPy5hY2N1cmFjeSYmKFcubG9jYXRpb25SYWRpdXNNZXRlcnM9TWF0aC5yb3VuZChuLmFjY3VyYWN5KSk7cmV0dXJuIFd9Y3JlYXRlTG9jYXRpb25JbmZvKG4pe3ZhciBXPXt9O249bi5jb29yZHM7bj8ubGF0aXR1ZGUmJihXLmxhdGl0dWRlRTc9TWF0aC5mbG9vcihuLmxhdGl0dWRlKjFFNykpO24/LmxvbmdpdHVkZSYmKFcubG9uZ2l0dWRlRTc9TWF0aC5mbG9vcihuLmxvbmdpdHVkZSoxRTcpKTtyZXR1cm4gV319LE9DO3ZhciBMSHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk49e319Y29udGFpbnMobil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLk4sbil9Z2V0KG4pe2lmKHRoaXMuY29udGFpbnMobikpcmV0dXJuIHRoaXMuTltuXX1zZXQobixXKXt0aGlzLk5bbl09V311Qigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLk4pfXJlbW92ZShuKXtkZWxldGUgdGhpcy5OW25dfX07bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXBwaW5ncz1uZXcgTEhyfWdldChuKXthOnt2YXIgVz10aGlzLm1hcHBpbmdzLmdldChuLnRvU3RyaW5nKCkpO3N3aXRjaChXLnR5cGUpe2Nhc2UgIm1hcHBpbmciOm49Vy52YWx1ZTticmVhayBhO2Nhc2UgImZhY3RvcnkiOlc9Vy52YWx1ZSgpO3RoaXMubWFwcGluZ3Muc2V0KG4udG9TdHJpbmcoKSx7dHlwZToibWFwcGluZyIsdmFsdWU6V30pO249VzticmVhayBhO2RlZmF1bHQ6bj1nLnBiKFcsdm9pZCAwKX19cmV0dXJuIG59fTt2YXIgeFY9e1dFQl9VTlBMVUdHRUQ6Il51bnBsdWdnZWQvIixXRUJfVU5QTFVHR0VEX09OQk9BUkRJTkc6Il51bnBsdWdnZWQvIixXRUJfVU5QTFVHR0VEX09QUzoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfUFVCTElDOiJedW5wbHVnZ2VkLyIsV0VCX0NSRUFUT1I6Il5jcmVhdG9yLyIsV0VCX0tJRFM6Il5raWRzLyIsV0VCX0VYUEVSSU1FTlRTOiJeZXhwZXJpbWVudHMvIixXRUJfTVVTSUM6Il5tdXNpYy8iLFdFQl9SRU1JWDoiXm11c2ljLyIsV0VCX01VU0lDX0VNQkVEREVEX1BMQVlFUjoiXm11c2ljLyIsV0VCX01VU0lDX0VNQkVEREVEX1BMQVlFUjoiXm1haW5fYXBwL3xec2Z2LyJ9O3ZhciBlcjE9Y2xhc3N7RChuLFc9e30sRD11OSl7dmFyIGI9e2NvbnRleHQ6dGhpcy5PKCk/Zy52YihuLmNsaWNrVHJhY2tpbmdQYXJhbXMsITAsITEsZy53KG4/LmNvbW1hbmRNZXRhZGF0YSxwaik/LnVybCx0aGlzLksoVykpOmcudmIobi5jbGlja1RyYWNraW5nUGFyYW1zLCExLHRoaXMuail9O3ZhciB2PXRoaXMuTihuKTtpZih2KXt0aGlzLkooYix2LFcpO3Y9TEIodGhpcy5XKCkpO3ZhciBrPWcudyhuLmNvbW1hbmRNZXRhZGF0YSxwaik/LmFwaVVybDtrJiYodj1rKTt2PVpyKEskKHYpKTtrPXtjb21tYW5kOm4sLi4udGhpcy5WKG4pfTtiPXtpbnB1dDp2LFBpOlV6KHYpLGlubmVyVHViZVJlcXVlc3Q6Yixjb25maWc6a307Yi5jb25maWcuQkc/Yi5jb25maWcuQkcuaWRlbnRpdHk9RDpiLmNvbmZpZy5CRz17aWRlbnRpdHk6RH07KG49dGhpcy5ZKG4pKSYmIWIuY29uZmlnLnJlcXVlc3RLZXkmJihiLmNvbmZpZy5yZXF1ZXN0S2V5PW4pO1cuYWJvcnRTaWduYWwmJihiLlBpLnNpZ25hbD0KVy5hYm9ydFNpZ25hbCk7cmV0dXJuIGJ9Vz1uZXcgZy5ReCgiRXJyb3I6IEZhaWxlZCB0byBjcmVhdGUgUmVxdWVzdCBmcm9tIENvbW1hbmQuIixuKTtnLlhqKFcpfU8oKXtyZXR1cm4hMX1nZXQgaigpe3JldHVybiExfUsoKXt9WSgpe31WKCl7fX0sUEM9Y2xhc3MgZXh0ZW5kcyBlcjF7WCgpe31ZKG4pe2cubCgid2ViX2VuYWJsZV9yZXF1ZXN0X2tleV9raWxsc3dpdGNoIikmJnRoaXMuWChuKTtyZXR1cm4gZy53KG4uY29tbWFuZE1ldGFkYXRhLHBqKT8ucmVxdWVzdEtleT8/dGhpcy5YKG4pfX07dmFyIGdnMT17R0VUX0RBVEFTWU5DX0lEUzpobShjbGFzcyBleHRlbmRzIFBDe0QoKXtyZXR1cm57aW5wdXQ6Ii9nZXREYXRhc3luY0lkc0VuZHBvaW50IixQaTpVeigiL2dldERhdGFzeW5jSWRzRW5kcG9pbnQiLCJHRVQiKSxpbm5lclR1YmVSZXF1ZXN0Ont9fX1XKCl7cmV0dXJuW119Tigpe31KKCl7fX0pfTt2YXIgd189bmV3IGcuQUwoIlJFUVVFU1RfTUFDSElORV9SRUdJU1RSWV9UT0tFTiIpLCREPW5ldyBnLkFMKCJSRVFVRVNUX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpLGlkPW5ldyBnLkFMKCJJTkZMSUdIVF9SRVFVRVNUX01BUF9UT0tFTiIpO3ZhciBOUT12MCgieXRjc2lfZGVidWdfbWF4X3NpemUiLDEwMCk7dmFyIEptPXthdXRvX3NlYXJjaDoiTEFURU5DWV9BQ1RJT05fQVVUT19TRUFSQ0giLGFkX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9BRF9UT19BRCIsYWRfdG9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0FEX1RPX1ZJREVPIixhcHBfc3RhcnR1cDoiTEFURU5DWV9BQ1RJT05fQVBQX1NUQVJUVVAiLGJyb3dzZToiTEFURU5DWV9BQ1RJT05fQlJPV1NFIixjYXN0X3NwbGFzaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9TUExBU0giLGNhbGxfdG9fY2FzdDoiTEFURU5DWV9BQ1RJT05fQ0FMTF9UT19DQVNUIixjaGFubmVsX2FjdGl2aXR5OiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX0NIQU5ORUxfQUNUSVZJVFkiLGNoYW5uZWxzOiJMQVRFTkNZX0FDVElPTl9DSEFOTkVMUyIsY2hpcHM6IkxBVEVOQ1lfQUNUSU9OX0NISVBTIixjb21tZXJjZV90cmFuc2FjdGlvbjoiTEFURU5DWV9BQ1RJT05fQ09NTUVSQ0VfVFJBTlNBQ1RJT04iLGRpcmVjdF9wbGF5YmFjazoiTEFURU5DWV9BQ1RJT05fRElSRUNUX1BMQVlCQUNLIiwKZWRpdG9yOiJMQVRFTkNZX0FDVElPTl9FRElUT1IiLGVtYmVkOiJMQVRFTkNZX0FDVElPTl9FTUJFRCIsZW1iZWRfbm9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0VNQkVEX05PX1ZJREVPIixlbnRpdHlfa2V5X3NlcmlhbGl6YXRpb25fcGVyZjoiTEFURU5DWV9BQ1RJT05fRU5USVRZX0tFWV9TRVJJQUxJWkFUSU9OX1BFUkYiLGVudGl0eV9rZXlfZGVzZXJpYWxpemF0aW9uX3BlcmY6IkxBVEVOQ1lfQUNUSU9OX0VOVElUWV9LRVlfREVTRVJJQUxJWkFUSU9OX1BFUkYiLGV4cGxvcmU6IkxBVEVOQ1lfQUNUSU9OX0VYUExPUkUiLGZhdm9yaXRlczoiTEFURU5DWV9BQ1RJT05fRkFWT1JJVEVTIixob21lOiJMQVRFTkNZX0FDVElPTl9IT01FIixpbmJvYXJkaW5nOiJMQVRFTkNZX0FDVElPTl9JTkJPQVJESU5HIixsYW5kaW5nOiJMQVRFTkNZX0FDVElPTl9MQU5ESU5HIixsZWFybmluZzoiTEFURU5DWV9BQ1RJT05fTEVBUk5JTkciLGxlYXJuaW5nX2pvdXJuZXlfYnJvd3NlOiJMQVRFTkNZX0FDVElPTl9MRUFSTklOR19KT1VSTkVZX0JST1dTRSIsCmxlYXJuaW5nX2pvdXJuZXlfd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX0xFQVJOSU5HX0pPVVJORVlfV0FUQ0giLGxpYnJhcnk6IkxBVEVOQ1lfQUNUSU9OX0xJQlJBUlkiLGxpdmU6IkxBVEVOQ1lfQUNUSU9OX0xJVkUiLGxpdmVfcGFnaW5hdGlvbjoiTEFURU5DWV9BQ1RJT05fTElWRV9QQUdJTkFUSU9OIixtYW5hZ2VtZW50OiJMQVRFTkNZX0FDVElPTl9NQU5BR0VNRU5UIixtaW5pX2FwcDoiTEFURU5DWV9BQ1RJT05fTUlOSV9BUFBfUExBWSIsbm90aWZpY2F0aW9uX3NldHRpbmdzOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX05PVElGSUNBVElPTl9TRVRUSU5HUyIsb25ib2FyZGluZzoiTEFURU5DWV9BQ1RJT05fT05CT0FSRElORyIscGFyZW50X3Byb2ZpbGVfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0tJRFNfUEFSRU5UX1BST0ZJTEVfU0VUVElOR1MiLHBhcmVudF90b29sc19jb2xsZWN0aW9uOiJMQVRFTkNZX0FDVElPTl9QQVJFTlRfVE9PTFNfQ09MTEVDVElPTiIscGFyZW50X3Rvb2xzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fUEFSRU5UX1RPT0xTX0RBU0hCT0FSRCIsCnBsYXllcl9hdHQ6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9BVFRFU1RBVElPTiIscHJlYnVmZmVyOiJMQVRFTkNZX0FDVElPTl9QUkVCVUZGRVIiLHByZWZldGNoOiJMQVRFTkNZX0FDVElPTl9QUkVGRVRDSCIscHJvZmlsZV9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fS0lEU19QUk9GSUxFX1NFVFRJTkdTIixwcm9maWxlX3N3aXRjaGVyOiJMQVRFTkNZX0FDVElPTl9MT0dJTiIscHJvamVjdHM6IkxBVEVOQ1lfQUNUSU9OX1BST0pFQ1RTIixyZWVsX3dhdGNoOiJMQVRFTkNZX0FDVElPTl9SRUVMX1dBVENIIixyZXN1bHRzOiJMQVRFTkNZX0FDVElPTl9SRVNVTFRTIixyZWQ6IkxBVEVOQ1lfQUNUSU9OX1BSRU1JVU1fUEFHRV9HRVRfQlJPV1NFIixwcmVtaXVtOiJMQVRFTkNZX0FDVElPTl9QUkVNSVVNX1BBR0VfR0VUX0JST1dTRSIscHJlbWl1bV9saXRlX3Vwc2VsbDoiTEFURU5DWV9BQ1RJT05fUFJFTUlVTV9MSVRFX1VQU0VMTCIscHJpdmFjeV9wb2xpY3k6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9QT0xJQ1kiLApyZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1JFVklFVyIsc2VhcmNoX292ZXJ2aWV3X2Fuc3dlcjoiTEFURU5DWV9BQ1RJT05fU0VBUkNIX09WRVJWSUVXX0FOU1dFUiIsc2VhcmNoX3VpOiJMQVRFTkNZX0FDVElPTl9TRUFSQ0hfVUkiLHNlYXJjaF9zdWdnZXN0OiJMQVRFTkNZX0FDVElPTl9TVUdHRVNUIixzZWFyY2hfemVyb19zdGF0ZToiTEFURU5DWV9BQ1RJT05fU0VBUkNIX1pFUk9fU1RBVEUiLHNlY3JldF9jb2RlOiJMQVRFTkNZX0FDVElPTl9LSURTX1NFQ1JFVF9DT0RFIixzd2l0Y2hwbGFuOiJMQVRFTkNZX0FDVElPTl9VTlBMVUdHRURfU1dJVENIX1BMQU4iLHNlZWs6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9TRUVLIixzZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fU0VUVElOR1MiLHN0b3JlOiJMQVRFTkNZX0FDVElPTl9TVE9SRSIsc3VwZXJ2aXNpb25fZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1NVUEVSVklTSU9OX0RBU0hCT0FSRCIsYmVkdGltZV9yZW1pbmRlcl9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9CRURUSU1FX1JFTUlOREVSX1NFVFRJTkdTIiwKYnJlYWtfcmVtaW5kZXJfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfQlJFQUtfUkVNSU5ERVJfU0VUVElOR1MiLHN1cGVydmlzaW9uX3NldHRpbmdzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TVVBFUlZJU0lPTl9TRVRUSU5HU19EQVNIQk9BUkQiLHRpbWVfbWFuYWdlbWVudDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9USU1FX01BTkFHRU1FTlQiLHVwZGF0ZV9wcm9maWxlOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1VQREFURV9QUk9GSUxFIix2aWV3aW5nX3Blcm1pc3Npb25zOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1ZJRVdJTkdfUEVSTUlTU0lPTlMiLHNob3J0c19zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TSE9SVFNfU0VUVElOR1MiLHByaXZhY3lfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9TRVRUSU5HUyIsdGVueDoiTEFURU5DWV9BQ1RJT05fVEVOWCIsCnZpZGVvX3ByZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1ZJREVPX1BSRVZJRVciLHZpZGVvX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9WSURFT19UT19BRCIsd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIix3YXRjaF9pdF9hZ2FpbjoiTEFURU5DWV9BQ1RJT05fS0lEU19XQVRDSF9JVF9BR0FJTiIsIndhdGNoLHdhdGNoNyI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3X2h0bWw1IjoiTEFURU5DWV9BQ1RJT05fV0FUQ0giLCJ3YXRjaCx3YXRjaDdhZCI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3YWRfaHRtbDUiOiJMQVRFTkNZX0FDVElPTl9XQVRDSCIsd25fY29tbWVudHM6IkxBVEVOQ1lfQUNUSU9OX0xPQURfQ09NTUVOVFMiLHd3X3JxczoiTEFURU5DWV9BQ1RJT05fV0hPX0lTX1dBVENISU5HIix2b2ljZV9hc3Npc3RhbnQ6IkxBVEVOQ1lfQUNUSU9OX1ZPSUNFX0FTU0lTVEFOVCIsY2FzdF9sb2FkX2J5X2VudGl0eV90b193YXRjaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9MT0FEX0JZX0VOVElUWV9UT19XQVRDSCIsCm5ldHdvcmtsZXNzX3BlcmZvcm1hbmNlOiJMQVRFTkNZX0FDVElPTl9ORVRXT1JLTEVTU19QRVJGT1JNQU5DRSIsZ2VsX2NvbXByZXNzaW9uOiJMQVRFTkNZX0FDVElPTl9HRUxfQ09NUFJFU1NJT04iLGdlbF9qc3BiX3NlcmlhbGl6ZToiTEFURU5DWV9BQ1RJT05fR0VMX0pTUEJfU0VSSUFMSVpFIixhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2g6IkxBVEVOQ1lfQUNUSU9OX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV9GRVRDSCJ9OwpPYmplY3QuYXNzaWduKEptLHsiYW5hbHl0aWNzLmV4cGxvcmUiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0FOQUxZVElDU19FWFBMT1JFIiwiYXJ0aXN0LmFuYWx5dGljcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQVJUSVNUX0FOQUxZVElDUyIsImFydGlzdC5ldmVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0FSVElTVF9DT05DRVJUUyIsImFydGlzdC5wcmVzc2tpdCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQVJUSVNUX1BST0ZJTEUiLCJhc3NldC5jbGFpbWVkX3ZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NMQUlNRURfVklERU9TIiwiYXNzZXQuY29tcG9zaXRpb24iOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9DT01QT1NJVElPTiIsImFzc2V0LmNvbXBvc2l0aW9uX293bmVyc2hpcCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NPTVBPU0lUSU9OX09XTkVSU0hJUCIsImFzc2V0LmNvbXBvc2l0aW9uX3BvbGljeSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NPTVBPU0lUSU9OX1BPTElDWSIsCiJhc3NldC5lbWJlZHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9FTUJFRFMiLCJhc3NldC5oaXN0b3J5IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfSElTVE9SWSIsImFzc2V0Lmlzc3VlcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0lTU1VFUyIsImFzc2V0LmxpY2Vuc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfTElDRU5TRVMiLCJhc3NldC5tZXRhZGF0YSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX01FVEFEQVRBIiwiYXNzZXQub3duZXJzaGlwIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfT1dORVJTSElQIiwiYXNzZXQucG90ZW50aWFsX2VtYmVkcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX1BPVEVOVElBTF9FTUJFRFMiLCJhc3NldC5wb2xpY3kiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9QT0xJQ1kiLCJhc3NldC5yZWZlcmVuY2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfUkVGRVJFTkNFUyIsCiJhc3NldC5zaGFyZXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9TSEFSRVMiLCJhc3NldC5zb3VuZF9yZWNvcmRpbmdzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfU09VTkRfUkVDT1JESU5HUyIsImFzc2V0X2dyb3VwLmFzc2V0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX0FTU0VUUyIsImFzc2V0X2dyb3VwLmNhbXBhaWducyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX0NBTVBBSUdOUyIsImFzc2V0X2dyb3VwLmNsYWltZWRfdmlkZW9zIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfR1JPVVBfQ0xBSU1FRF9WSURFT1MiLCJhc3NldF9ncm91cC5tZXRhZGF0YSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX01FVEFEQVRBIiwic29uZy5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1NPTkdfQU5BTFlUSUNTIixjcmVhdG9yX2NoYW5uZWxfZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NIQU5ORUxfREFTSEJPQVJEIiwKImNoYW5uZWwuYW5hbHl0aWNzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX0FOQUxZVElDUyIsY2hhbm5lbF9hcHBlYWw6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9BUFBFQUwiLCJjaGFubmVsLmNvbW1lbnRzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX0NPTU1FTlRTIiwiY2hhbm5lbC5jb250ZW50IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DT05URU5UIiwiY2hhbm5lbC5jb250ZW50LnBvc3RzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9QT1NUX0xJU1QiLCJjaGFubmVsLmNvbnRlbnQucHJvbW90aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfUFJPTU9USU9OX0xJU1QiLCJjaGFubmVsLmNvcHlyaWdodCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9DT1BZUklHSFQiLCJjaGFubmVsLmVkaXRpbmciOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NIQU5ORUxfRURJVElORyIsImNoYW5uZWwubW9uZXRpemF0aW9uIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01PTkVUSVpBVElPTiIsCiJjaGFubmVsLm11c2ljIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01VU0lDIiwiY2hhbm5lbC5tdXNpY19zdG9yZWZyb250IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01VU0lDX1NUT1JFRlJPTlQiLCJjaGFubmVsLnBsYXlsaXN0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9QTEFZTElTVFMiLCJjaGFubmVsLnRyYW5zbGF0aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9UUkFOU0xBVElPTlMiLCJjaGFubmVsLnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9WSURFT1MiLCJjaGFubmVsLmxpdmVfc3RyZWFtaW5nIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9MSVZFX1NUUkVBTUlORyIsImRpYWxvZy5jb3B5cmlnaHRfc3RyaWtlcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX0NPUFlSSUdIVF9TVFJJS0VTIiwiZGlhbG9nLnZpZGVvX2NvcHlyaWdodCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX1ZJREVPX0NPUFlSSUdIVCIsCiJkaWFsb2cudXBsb2FkcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX1VQTE9BRFMiLG93bmVyOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19EQVNIQk9BUkQiLCJvd25lci5hbGxvd2xpc3QiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BTExPV0xJU1QiLCJvd25lci5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BTkFMWVRJQ1MiLCJvd25lci5hcnRfdHJhY2tzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVJUX1RSQUNLUyIsIm93bmVyLmFzc2V0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUUyIsIm93bmVyLmFzc2V0X2dyb3VwcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQUyIsIm93bmVyLmJ1bGsiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19CVUxLX0hJU1RPUlkiLCJvd25lci5jYW1wYWlnbnMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DQU1QQUlHTlMiLAoib3duZXIuY2hhbm5lbF9pbnZpdGVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQ0hBTk5FTF9JTlZJVEVTIiwib3duZXIuY2hhbm5lbHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DSEFOTkVMUyIsIm93bmVyLmNsYWltZWRfdmlkZW9zIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQ0xBSU1FRF9WSURFT1MiLCJvd25lci5jbGFpbXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19NQU5VQUxfQ0xBSU1JTkciLCJvd25lci5jbGFpbXMubWFudWFsIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfTUFOVUFMX0NMQUlNSU5HIiwib3duZXIuZGVsaXZlcnkiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DT05URU5UX0RFTElWRVJZIiwib3duZXIuZGVsaXZlcnlfdGVtcGxhdGVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfREVMSVZFUllfVEVNUExBVEVTIiwib3duZXIuaXNzdWVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfSVNTVUVTIiwKIm93bmVyLmxpY2Vuc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfTElDRU5TRVMiLCJvd25lci5waXRjaF9tdXNpYyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX1BJVENIX01VU0lDIiwib3duZXIucG9saWNpZXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19QT0xJQ0lFUyIsIm93bmVyLnJlbGVhc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfUkVMRUFTRVMiLCJvd25lci5yZXBvcnRzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfUkVQT1JUUyIsIm93bmVyLnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX1ZJREVPUyIsInBsYXlsaXN0LnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfUExBWUxJU1RfVklERU9fTElTVCIsInBvc3QuY29tbWVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1BPU1RfQ09NTUVOVFMiLCJwb3N0LmVkaXQiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1BPU1RfRURJVCIsInByb21vdGlvbi5lZGl0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9QUk9NT1RJT05fRURJVCIsCiJ2aWRlby5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0FOQUxZVElDUyIsInZpZGVvLmNsYWltcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fQ0xBSU1TIiwidmlkZW8uY29tbWVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0NPTU1FTlRTIiwidmlkZW8uY29weXJpZ2h0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19DT1BZUklHSFQiLCJ2aWRlby5lZGl0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19FRElUIiwidmlkZW8uZWRpdG9yIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19FRElUT1IiLCJ2aWRlby5lZGl0b3JfYXN5bmMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0VESVRPUl9BU1lOQyIsInZpZGVvLmxpdmVfc2V0dGluZ3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0xJVkVfU0VUVElOR1MiLCJ2aWRlby5saXZlX3N0cmVhbWluZyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fTElWRV9TVFJFQU1JTkciLAoidmlkZW8ubW9uZXRpemF0aW9uIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19NT05FVElaQVRJT04iLCJ2aWRlby5wb2xpY3kiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX1BPTElDWSIsInZpZGVvLnJpZ2h0c19tYW5hZ2VtZW50IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19SSUdIVFNfTUFOQUdFTUVOVCIsInZpZGVvLnRyYW5zbGF0aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fVFJBTlNMQVRJT05TIn0pO3ZhciBNUT1jbGFzcyBleHRlbmRzIG83e2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoYXJndW1lbnRzKTt0aGlzLk49bjt0aGlzLnRpbWVyPVd9fSxPbnQ9bmV3IGQzKCJhZnQtcmVjb3JkZWQiLE1RKTt2YXIgWEZ0PXthX2JpZF9mOjQ4MixhX2JpZF9zOjQ4MSxhYToyLGFhY2k6NDMzLGFhY3I6NDM0LGFiX3I6MTEsYWJfczoxMCxhYmM6NTc5LGFjOjE5MyxhY2M6NTExLGFjaTo1MTIsYWRfMF9lOjEzLGFkXzBfczoxMixhZF9ibDoxNCxhZF9pOjE1LGFkX21iczoxNixhZF9wcjo1NjIsYWRfdmk6MTcsYWRfdmlyOjE4LGFkYToxOTQsYWRiY19mOjU3NixhZGM6MTk1LGFkZmxfZjoxOSxhZGZsX3M6MjAsYWRsOjE5NixhZG5zOjE5NyxhZHNfZToyMixhZHNfczoyMSxhZmI6NTEzLGFmYzoxOTgsYWZsOjE5OSxhZnQ6MSxhaGI6NTE0LGFpOjIwMCxhaXNfYTo1MDMsYWlzX3I6NTAyLGFpc2Y6MjMsYWlzaToyNCxhaXNyOjI1LGFpc3M6MjYsYW1sOjIwMSxhcGFfYToyMDMsYXBhX2I6MjAyLGFwYnM6MjA0LGFwcF9sOjMsYXBwX3NpOjYxMixhcHBfc2llOjY2MSxhcHBkZWxfaToyNyxhcHBpX2U6NjE2LGFwcGlfczo2MTUsYXByOjIwNSxhcHJlczo0MzYsYXBzdXM6NDM1LGFyOjIwNixhcjQwazoyOCwKYXJiX2Y6NTA0LGFyYzoyMDcsYXJlcToyMDgsYXJmYjoyOSxhcmk6NCxhcnI6MjA5LGFycmg6MzAsYXNjZTo3ODgsYXNjZjo3ODksYXNjczo3ODcsYXNpc2ZiOjMxLGFzaXNyOjMyLGFzaXNyaDozMyxhc2lzczozNCxhc3I6MjEwLGFzeW5jX29yY2hfdF9hY3Q6NzEyLGFzeW5jX29yY2hfdF9ub3RpZnk6NzExLGF0cnI6NTE1LGF0cnM6NTE2LGF0dF9lOjIxMSxhdHRfZjoyMTIsYXR0X2ZjOjc5NyxhdHRfZnJyOjc5NixhdHRfZnM6NzkzLGF0dF9mc3I6Nzk1LGF0dF9wbmE6Nzk0LGF0dF9zOjIxMyxhdHRfd2I6MjE0LGF3ZmxfZjo1NTcsYXdmbF9zOjU1OCxiYXNlX2pzX3I6NDQxLGJjcDoyMTUsYmY6MjE2LGJnX2U6MjE3LGJnX2k6MjE4LGJnX2w6MjIwLGJnX3M6MjIxLGJnX3Y6MjE5LGJwZF9jOjQ4NCxicGRfczo0ODMsYnB0OjIyMyxicl9lOjM3LGJyX2xkOjM4LGJyX2xycHI6MzksYnJfbHJyOjQwLGJyX2x3bTo1NzcsYnJfcjo0MSxicl9zOjQyLGJyZXI6MzUsYnJlczozNixicm5yOjQzLApicm5zOjQ0LGJycGU6NDUsYnJwczo0NixicnJfZTo0NyxicnJfaTo0OCxicnJfaXVzOjQ5LGJzOjIyMixjX2M6NTAsY19jczo1MSxjX2NzZnM6NTIsY19kOjUzLGNfbGFmOjU5LGNfbGFzOjU4LGNfcm5mOjQzOCxjX3Juczo0MzcsY2M6NDY3LGNjX2M6NTQsY2NfY2Y6NTYsY2NfY3NhbGE6NTUsY2NfbGE6NTcsY2ZnOjIyNCxjaGxzOjIyNSxjaHBzOjIyNixjbDo0ODAsY21jOjIyNyxjbWRfaDo2MjksY21obDoyMjksY21pOjIyOCxjbWw6MjMwLGNtcDo3NzksY212OjIzMSxjcHQ6MjMyLGNyOjM2NCxjcl9lcnI6NjY5LGNyX3I6NjcwLGNyX3M6NjY4LGNzbDoyMzMsY3NyX3Q6NjMxLGN0OjUsY3RfbGk6NjAsZF9sOjYxLGRfbGFmOjYyLGRfbGFyOjYzLGRfbGFzOjY0LGRfbGY6NjUsZF9sczo2NixkX2x3OjY3LGRfbHdmOjY4LGRfbHdzOjY5LGRhc19jOjM2NixkYXNfczozNjUsZGNwOjIzNCxkZ19wYl9jOjIzNixkZ19wYl9yOjIzNyxkZ19wYl9zOjIzNSxkaGljOjIzOCxkbDoyMzksZG5zXzoyNDAsCmRybV9na19mOjM4OCxkcm1fZ2tfczozODcsZHJtX2tyX3I6MzkyLGRybV9rcl9zOjM5MSxkcm1fbmV0X3I6MzkwLGRybV9uZXRfczozODksZHJtX3BiX2Y6Mzg2LGRybV9wYl9zOjM4NSxkc19hYzo3MzYsZHNfYXM6NzM1LGRzX2NsYzo3NDAsZHNfY3M6NzM3LGRzX2RjOjczOSxkc19kczo3MzgsZW1wYTo0MzIsZW1wdTo0MzEsZW5wX2Vycjo2ODUsZW5wX2ZpOjY4NCxlbnBfc3Q6NjgzLGVvcHJfcjo2NzMsZXBfYV9wcl9yOjUzMixlcF9hX3ByX3M6NTMxLGVwX2hhdl9lbmQ6NTI2LGVwX2hhdl9zdGFydDo1MjUsZXBfaW5pdF9hcjo2OTksZXBfaW5pdF9jdWU6NjM1LGVwX2luaXRfY3VzOjYzNCxlcF9pbml0X2VwZTo2MzcsZXBfaW5pdF9lcHM6NjM2LGVwX2luaXRfaWplOjYzOSxlcF9pbml0X2lqczo2MzgsZXBfaW5pdF9wcjo1MjcsZXBfaW5pdF9yZTo2NDEsZXBfaW5pdF9yczo2NDAsZXBfaW5pdF93ZWU6NjQzLGVwX2luaXRfd2VzOjY0MixlcF9tYV9yZXByOjU0MyxlcF9tYV9ycjo1MzMsCmVwX21hX3NlcHI6NTQyLGVwX21hX3Nwcjo1MzQsZXBfcF9sOjUzMCxlcF9wcl9yOjUyOSxlcF9wcl9zOjUyOCxlcF9yX3ByZV9yOjU0MSxlcF9yX3JyOjUzNSxlcF9yX3NtYXI6NTM2LGVwX3JlY19lbmQ6NTM4LGVwX3JlY19zdGFydDo1MzcsZXBfcmVwc19lbmQ6NTQwLGVwX3JlcHNfc3RhcnQ6NTM5LGVwZTo2MTgsZXBzOjYxNyxlcl9jbDo2NTMsZXJfbnM6NjUyLGVyX3BlOjY1MCxlcl9wczo2NDksZXJfczo2NDgsZXJfc19ucjo3OTAsZXJfc19uczo3ODQsZXJfdDo2NTEsZmFiX3I6MjQ2LGZjYl9yOjUwNixmaXJlOjcwLGZpcnM6NzEsZm10aDoyNDEsZm9vdF9qczoyNDIsZnB0OjI0Myxmcl9zOjU2MSxmczoyNDQsZnNjOjI0NSxmc3NiMF9hOjc1LGZzc2IwX2ZyOjc0LGZzc2IwX25yOjczLGZzc2IwX25zOjcyLGZ0Xzo0MzksZnRsOjcsZnRyOjQ3NSxmdmJfcjoyNDcsZnZmOjI0OCxmeWRfZ2Y6NzY3LGZ5ZF9nczo3NjYsZ2NjOjI0OSxnY2ZsOjI1MCxnY3NyOjc2LGdlcF9lcnI6ODAwLApnZXBfcmVxOjc5OCxnZXBfcmVzOjc5OSxnZ3NyOjc3LGdpd2FfYTo2MjcsZ2l3YV9kOjYyOCxnbGM6NTkzLGdsZToyNTEsZ2xzOjI1MixncGU6MjUzLGdyYzoyNTQsZ3Jpd19ucjo3ODYsZ3Jpd19uczo3ODUsZ3Nfcjo3MzQsZ3Nfczo3MzMsZ3NtZDo1ODYsZ3Vfcjo2MjAsZ3Y6NDg1LGd3X2FpZXI6NzcxLGd3X2FyZjo3NzIsZ3dfYXJuYWY6Nzc1LGd3X2Fybm5hZjo3NzYsZ3dfYXJuczo3NzcsZ3dfYXJuc3U6Nzc4LGd3X2Fyczo3NzQsZ3dfYXJzdTo3NzMsZ3dfbWFhZjo2MzMsZ3dfbWFhczo2MzIsaGJmZzo2NzcsaGdjcjoyNTUsaHI6MjU2LGhyZTozNjMsaHJzOjM2MixoczozNzMsaHRtbF9mYl9yOjc1NSxodG1sX2ZlOjc0OCxodG1sX2ZzOjc0NyxodG1sX2Z3ZTo3NTIsaHRtbF9md3M6NzUxLGh0bWxfamNlOjc1NCxodG1sX2pjczo3NTMsaHRtbF9sYl9yOjc1NixodG1sX3NlOjc1MCxodG1sX3NzOjc0OSxpX3JwOjQ3NyxpX3JxOjQ3NixpcF9zOjY0NixpcGM6MjU3LGlwczoyNTgsCmlzbXBfYTo4MzYsaXNtcF9jOjgzOCxpc21wX2Q6ODM5LGlzbXBfaTo4MzUsaXNtcF9wOjg0MCxpc21wX3JjOjgzNyxpdF9ncDo3OCxpdl9zOjUwNSxqc3A6MjU5LGpzcjoyNjAsa1lUTGF0ZW5jeU1ERVByb2R1Y3RTdGlja2VyRWRpdG9yQ2FuY2VsbGVkOjgwMSxrWVRMYXRlbmN5TURFUHJvZHVjdFN0aWNrZXJFZGl0b3JGaW5pc2hlZDo4MDIsbDJzOjI2MSxsY19mcnI6NjYwLGxjX3Nfczo2NTksbGNfc191OjY1OCxsY3A6MjYyLGxkX3M6NDQwLGxpbToyNjMsbHBjZjoyNjQsbHBjczoyNjUsbHBzOjI2Nixsc19jOjM2OCxsc19zOjM2Nyxsc3M6MjY3LGx2OjI2OCxtYV9jbDo1NTEsbWFfZmZyOjU1MixtYV9mdWE6NTU0LG1hX2dyOjU1MyxtYV9pbDo1NzMsbWFpbjo3OSxtYWluX2pzX3I6NDQyLG1haW5fanNfcnE6NDQzLG1iX3M6NTA3LG1iYXBfYzozODQsbWJjX2FsYzo3MzIsbWJjX2FzbDo3MzEsbWJjX2M6Mzc1LG1iY19zOjM3NCxtYmdjaGlkX3JyOjc0NCxtYmdjaGlkX3JzOjc0NiwKbWJncl9yZjo2NTcsbWJncl9ycjozNzksbWJncl9yczozNzgsbWJsY19jOjM3NyxtYmxjX3M6Mzc2LG1ibGNoaWRfYzo3NDUsbWJsY2hpZF9zOjc0MyxtYmxjcmlkX2M6NzQyLG1ibGNyaWRfczo3NDEsbWJzX2M6MzgxLG1ic19ycjozODMsbWJzX3JzOjM4MixtYnNfczozODAsbWR4X2NjcDo4MCxtZHhfY2NzOjgxLG1keF9jY3N0OjgyLG1keF9jcjo4MyxtZHhfY3M6ODQsbWR4X2xzOjg1LG1keF9vZmY6ODYsbWR4X3NjOjg3LG1lX2I6NTU1LG1lX2M6Njg3LG1lX2Y6NTU2LG1lX2ZhOjY4OCxtZXN2X3M6NTA5LG1tX2llOjcyMCxtbV9pczo3MTksbXJjOjI2OSxtcnM6MjcwLG1zYToyNzEsbXN0aTo4OCxtc3RyOjg5LG5fY3Q6NzAyLG5fc3I6Njk3LG5fc3c6Njk4LCJuY1swLTldIjoyNzIsbmNsOjI3MyxuY3Q6Mjc0LG5kOjI3NSxuZG5zZToyNzYsbmRuc3M6Mjc3LCJucFswLTldIjoyNzgsbnI6Mjc5LG5yZToyODAsbnJlcXM6MjgxLG5yZXNlOjI4MixucmVzczoyODMsbnJycHM6OTAsCm5yczoyODQsbnN0Y3BzOjI4NSxudGNwZToyODYsbnRjcHM6Mjg3LG53cDoyODgsb2FkMnM6NDI1LG9hZnNfcjo0MDcsb2Fmc19ycDo0MDksb2Fpc3I6NDA1LG9hcjJzOjQxMixvYXJwMnM6NDI3LG9jc2lfejo5MSxvY3RrOjYyMSxvY3RwOjYyMixvZmFycDo0MjMsb2Zkbzo0MDAsb2Zkb3M6Mzk4LG9mcjo0MTcsb2Z2cnA6NDI0LG9nc2ZfYzozOTUsb2dzZl9zOjM5NCxvaHJfcjo3NjUsb2hyX3M6NzY0LG9sOjYsb2xfaTo4LG9sb2NfZTo4MzAsb2xvY19zYTo4Mjksb2xvY19zczo4Mjgsb21kX2M6NDIyLG9tZF9zOjQyMSxvbXBfYzo0MTksb21wX3I6NDE4LG9wZmM6NjgwLG9wcl9yOjQxNCxvcHJkX3M6NDE1LG9wcmd6Ml9lOjg0MixvcHJnejJfZjo4NDMsb3ByZ3oyX3M6ODQxLG9wcmd6X3M6Njg5LG9wcnI6NDE2LG9yMTAwazo0MTEsb3JfZmU6NDI5LG9yX2ZzOjQzMCxvcl9pOjM5Myxvcl9wOjM5NyxvcmNoX3JfZDo2OTQsb3JjaF9yX3M6Njk1LG9yY2hfdF9wbWQ6NzcwLG9yY2hfdF9wbXM6NzY5LApvcmNoX3RfdGNlZDo3MDgsb3JjaF90X3RjZXM6NzA1LG9yY2hfdF90ZDo2OTIsb3JjaF90X3RtZDo4MDQsb3JjaF90X3Rtczo4MDMsb3JjaF90X3VkOjY5MyxvcmNoX3RfdXM6Njk2LG9yZmI6NDA0LG9yaF9yOjQwMyxvcm1rOjQyMCxvcnFwYl9hOjgzMSxvcnFwYl9lOjgzNCxvcnFwYl9zOjgzMixvcnFwYl93OjgzMyxvc2RvOjQwMSxvc2RvZjo0MDIsb3Nkb3M6Mzk5LG9zb3I6Mzk2LG92ZDJzOjQyNixvdmZzX3I6NDA4LG92ZnNfcnA6NDEwLG92aXNyOjQwNixvdnIyczo0MTMsb3ZycDJzOjQyOCxwYWM6Mjg5LHBhcmk6NTE3LHBhdDoyOTAscGIwX3M6NjExLHBiX3JxX2F1dGh6OjQ0NixwYl9ycV9jdHRfY2ZtOjQ0NyxwYmNfZTo2NjMscGJjX3M6NjYyLHBiZl9jOjkyLHBicDo0ODYscGJyZXN1bWU6MjkyLHBiczo0ODcscGJ1OjI5MyxwYzo0ODgscGNjOjU0NixwY2U6NTQ3LHBjcTo1NDQscGNyOjU0NSxwY3VfYXA6ODA5LHBjdV9jZTo1ODEscGN1X2NzOjU4MCxwY3VfcmU6ODA4LHBjdV9yczo4MDcsCnBjdV9zOjgwNSxwY3Vfc2U6ODA2LHBkYToyOTQscGRjOjI5NSxwZHI6Mjk2LHBlOjI5NyxwZW1fcjo0NDQscGVtX3JxOjQ0NSxwZmplOjMwOSxwZnJyOjMwNSxwZnJzOjMwNixwZnM6MzA3LHBmdDozMDgscGZ0X2k6OTMscGxfYzoyOTEscGxfaTo0ODkscGxfaW50OjQ5MCxwbF9yOjQ5MSxwbF9yYzo3MDMscGxfczo0OTIscGxfc3M6NDkzLHBsZXY6MzEwLHBsanNfcjo0NDgscGxqc19ycTo0NDkscGx2czo3MjMscG90X2FmOjk3LHBvdF9hczo5Nixwb3RfY21lOjU2OSxwb3RfY21mOjI5OSxwb3RfY21zOjI5OCxwb3RfY3NtZTo1NzAscG90X2NzbWY6MzAxLHBvdF9jc21zOjMwMCxwb3RfaWY6MzA0LHBvdF9pbml0Zjo5NSxwb3RfaXNjOjMwMixwb3RfaXN0OjMwMyxwb3Rfc2U6NTY1LHBvdF9zZjo1NjQscG90X3NzOjU2Myxwb3RfeGU6NTY4LHBvdF94Zjo1NjcscG90X3hzOjU2Nixwb3RwZTo5NCxwcHU6OTgscHJvY19rOjYxMyxwcm9jX2tfbDo2MTQscHM6MzExLHBzX2JzOjY0Nyxwc19jOjQ5NCwKcHNfZXM6OTkscHNfcGE6NjgxLHBzX3BpaGY6NTk3LHBzX3BpaHM6NTk2LHBzX3I6MzYwLHBzX3M6MzYxLHBzX3NnZjo1OTUscHNfc2dzOjU5NCxwc25yOjQ5NSxwc25zOjQ5Nixwc3BlOjEwMCxwc3BzOjEwMSxwdF9tZTo4MTUscHRfbWY6ODE0LHB0X21zOjgxMyxwdF9waWU6ODEyLHB0X3BpZjo4MTEscHRfcGlzOjgxMCxwdF9waXNoOjYwNixwdnJpOjUxOCxwd2M6MzEyLHFvZXM6MzEzLHJfY19zbGQ6NDUwLHJfY19zcnE6NDUxLHJfY29ubmVjdF9iYWNrZW5kOjQ1MixyX2Nvbm5lY3RfYmFja2VuZF9zdWNjZXNzOjQ1MyxyX2Nvbm5lY3RlZDo0NTQscl9jb25zdHJ1Y3Rpb246NDU1LHJfZGlzY29ubmVjdGVkOjQ1NixyX2ViaTo2NjQscl9lb2Q6NTg1LHJfZjo0NTcscl9vcjo3MTMscl9wbDoxMDUscl9wczoxMDYscl9ycV9wbHk6NDU4LHJfc19wbHlsc3Q6NDU5LHJfc192aWQ6NDYwLHJfc3RhdHVzX3VwZGF0ZTo0NjEscl90cjoxMDcscl92dGM6MTA0LHJfd2lwYmM6NTg0LHJfd25yOjc5MiwKcl93bnM6NzkxLHJfd3JyOjEwMyxyX3dyczoxMDIscl93c3JwOjYwOSxyX3dzcnI6NjA4LHJfd3Nyczo2MDcscmN2XzozMTQscmVtb3ZlX3NwbGFzaDo0NjIscmVxXzozMTUscmZnOjMxNixyZ3JfbnJmOjYwMCxyZ3Jfczo1OTkscnBlOjgxNixycGx5X3JxZDo0NjMscnBzOjgxNyxyc19zOjUwOCxyc2FlX3BjOjMzMixyc2FlX3BlajozMzQscnNhZV9wajozMzMscnNiZV9wYzozMjMscnNiZV9wZWo6MzI1LHJzYmVfcGo6MzI0LHJzZV9wYzozMjAscnNlX3BlajozMjIscnNlX3BqOjMyMSxyc2VmX3BjOjMyOSxyc2VmX3BlajozMzEscnNlZl9wajozMzAscnNlc19wYzozMjYscnNlc19wZWo6MzI4LHJzZXNfcGo6MzI3LHJzZl9wYzozMTcscnNmX3BlajozMTkscnNmX3BqOjMxOCxydGltZV86MzM1LHJ1cmxfZToxMDgscnVybF9yOjEwOSxydXJsX3M6MTEwLHJ1cmxwZToxMTEscnVybHBzOjExMixzM3Rfcjo0NzIsc2FfZjo2MjQsc2FfZm86NjI1LHNhX3M6NjIzLHNhZl9mcDo2NjUsc2FmX3I6NjY2LApzYWZfcmU6NjY3LHNhc19pOjYyNixzY2dhdF9mZnM6NTYwLHNjZ2F0X2ZzOjU1OSxzZGFfZjo2MDUsc2RhX2k6NjA0LHNkYV9yZWNwOjYwMSxzZGFfcnNwcDo2MDMsc2RhX3JzcHI6NjAyLHNkbF9lOjY1NSxzZGxfczo2NTQsc2RsX3Q6NjU2LHNmX2k6MTEzLHNnc2Nfcjo3ODEsc2dzY19zOjc4MCxzaG93X2NhbGxfdG9fY2FzdDo0NjQsc2hyYl9jOjE2NSxzaHJvX2M6MTcwLHNocm9fcjoxNjcsc2hycF9jOjE2OSxzaHJwX2xkOjE2NixzaHJwX3A6MTY4LHNvX3I6MTE5LHNvX3JlOjExOCxzb19ycToxMjAsc3BhOjExNCxzcGQ6MTE1LHNwZjoxMTYsc3Bucl9oOjY3MixzcG5yX3M6NjcxLHNwcjo2Nzgsc3JfZToxMTcsc3JfcDoxMjEsc3JfcGE6MTIyLHNyX3I6MTIzLHNyX3JlOjEyNCxzcl9zOjEyNSxzcl91aToxMjYsc3J0OjMzNixzc19yOjQ2OSxzc19zOjQ2OCxzc19zZl9zOjcyNCxzc19zZl93OjcyNSxzc25yOjEyNyxzc25zOjEyOCxzdGNwXzozMzcsc3RlX2FsZjo1ODksc3RlX2M6NTkyLApzdGVfZWxmOjU5MCxzdGVfZjo1OTEsc3RlX2Z0bDo1ODgsc3RlX2w6NTg3LHN0dHNfYjo1ODIsc3R0c19mOjU4MyxzdHZzX2Y6NjkxLHN0dnNfczo2OTAsc3ZlOjQ2NixzdnM6NDY1LHN3X2ZiOjUxMCxzd19pOjc4Myxzd19yOjQ5Nyxzd19zOjQ5OCxzd3Nucjo4MTksc3dzbnM6ODE4LHN3c3BlOjgyMSxzd3Nwczo4MjAsdGNwXzozMzgsdGVueF9sOjQ3MSx0ZW54X3I6NDcwLHRoMF9oOjYxMCx0aDBfbmM6Njc1LHRoMF9uZTo2NzYsdGgwX25yOjEyOSx0aDBfbnM6Njc0LHRoX2NfMTo3MDksdGhfZF8xOjcxMCx0aF9sXzE6MTMwLHRoX3NfMTo1NzgsdGhzYjBfZnI6MTM0LHRoc2IwX25lOjEzMSx0aHNiMF9ucjoxMzIsdGhzYjBfbnM6MTMzLHR0YzozMzksdHRjcjozNDAsdWlfbDoxMzUsdWliZl9jOjE0MSx1aWJmX3I6MTQzLHVpYmZfczoxNDIsdWlzZl9yOjE0NCx1aXd3YV9iYzo2MTksdWl3d2FfYzoxMzYsdWl3d2FfZToxNDAsdWl3d2FfcHI6MTM5LHVpd3dhX3I6MTM4LHVpd3dhX3M6MTM3LAp1bHJzX2M6MzcwLHVscnNfczozNjksdW5rbm93bjowLHVyOjM0MSx2Yzo2ODIsdmNjOjUxOSx2Y2k6NTIwLHZkYTozNDIsdmRldWM6MzQzLHZkZXVyOjM0NCx2ZGV1czozNDUsdmRuczozNDYsdmZiOjUyMSx2ZnA6MzQ3LHZoYjo1MjIsdmlyOjM0OCx2aXJjOjM0OSx2aXNfYTo1MDAsdmlzX3I6NDk5LHZpc2Y6MTQ1LHZpc2k6MTQ2LHZpc3I6MTQ3LHZpc3M6MTQ4LHZvel9jeDoxNzksdm96X2VvdToxODcsdm96X2VycjoxODQsdm96X2Vycl9tczoxODAsdm96X2Vycl9ubXA6MTgxLHZvel9lcnJfb2ZmOjE4Myx2b3pfZXJyX3VhcjoxODIsdm96X2Z0cjoxODgsdm96X2Z2YzoxODksdm96X2xyX2xzbzoxODUsdm96X2xyX21kOjE4Nix2b3pfbWY6MTcyLHZvel9tczoxNzEsdm96X3JxZjoxNzQsdm96X3JxczoxNzMsdm96X3NmOjE3OCx2b3pfc3M6MTc3LHZvel92cDoxNzUsdm96X3Z0OjE3Nix2cGw6MzUwLHZyOjM1MSx2cjEwMGs6MTQ5LHZyYl9mOjUwMSx2cmM6MzUyLHZyZXE6MzUzLHZyZmI6MTUwLAp2cmk6OSx2cnI6MzU0LHZycl9yOjQ3NCx2cnJfczo0NzMsdnJyaDoxNTEsdnNpc2ZiOjE1Mix2c2lzcjoxNTMsdnNpc3JoOjE1NCx2c2lzczoxNTUsdnRhOjM1NSx2dHJyOjUyMyx2dHJzOjUyNCx3X3N0OjE1Nix3YXNtX2ZhOjgyNix3YXNtX2ZlcnI6ODI3LHdhc21fZnc6ODI1LHdhc21fczo4MjQsd2M6MzcyLHdjcjozNTYsd2ViZmVfZTo3Mjgsd2ViZmVfZ2JtX3I6NzU4LHdlYmZlX2dibV9zOjc1Nyx3ZWJmZV9nbF9yOjc2Mix3ZWJmZV9nbF9zOjc2MSx3ZWJmZV9nc19yOjc2MCx3ZWJmZV9nc19zOjc1OSx3ZWJmZV9ndXNfcjo3MzAsd2ViZmVfZ3VzX3M6NzI5LHdlYmZlX2d2bV9zOjc2Myx3ZWJmZV9zOjcyNyx3ZmZlOjM1Nyx3ZmZzOjM1OCx3Zmc6MzU5LHduX2U6MTYyLHduX2w6MzcxLHduX3I6MTU5LHduX3JwOjQ3OCx3bl9zOjE2MCx3bl9zbDoxNjEsd25sOjE1OCx3bmxfZDo4MjMsd25sX21wOjU3MSx3bmxfcGQ6ODIyLHdubHI6NTcyLHdubHM6MTU3LHducGU6MTYzLHducHM6MTY0LAp3cDo0Nzksd3NfY2U6MTkwLHdzX3NzOjE5MSx3c19zc3I6MTkyLHljZWM6NTQ5LHljZWY6NTQ4LHljZnRyOjY0NSx5Y2lmOjU1MCx5Y21zZjo2NDQseWNyYzo3MTgseWNyZjo3MTcseWNyczo3MTQseWNyc2M6NzE1LHljcnVlYTo3MTZ9O3ZhciBtcT1nLnFpLnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fTtnLkdiKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsbXEpO3ZhciBQYj1nLnFpLnl0TG9nZ2luZ0xhdGVuY3lVc2FnZVN0YXRzX3x8e307Zy5HYigieXRMb2dnaW5nTGF0ZW5jeVVzYWdlU3RhdHNfIixQYik7CnZhciBLQj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj0wfXRpY2sobixXLEQsYil7Wk0odGhpcyxgdGlja18ke259XyR7V31gKXx8KEQ9e3RpbWVzdGFtcDpELGN0dEF1dGhJbmZvOmJ9LFc9e3RpY2tOYW1lOm4sY2xpZW50QWN0aW9uTm9uY2U6V30sZy5sKCJ5b3V0dWJlX3dlYl9jc2lfdGlja3NfbWlncmF0aW9uIikmJihuPVhGdFtuXSxuIT09dm9pZCAwJiYoVy50aWNrPW4sZGVsZXRlIFcudGlja05hbWUpKSxnLnpVKCJsYXRlbmN5QWN0aW9uVGlja2VkIixXLEQpKX1pbmZvKG4sVyxEKXt2YXIgYj1PYmplY3Qua2V5cyhuKS5qb2luKCIiKTtaTSh0aGlzLGBpbmZvXyR7Yn1fJHtXfWApfHwobj1PYmplY3QuYXNzaWduKHt9LG4pLG4uY2xpZW50QWN0aW9uTm9uY2U9VyxnLnpVKCJsYXRlbmN5QWN0aW9uSW5mbyIsbix7Y3R0QXV0aEluZm86RH0pKX1qc3BiSW5mbyhuLFcsRCl7dmFyIGI9IiI7Zm9yKGxldCB2PTA7djxZdihuKS5sZW5ndGg7disrKVl2KG4pW3ZdIT09dm9pZCAwJiYKKGI9dj09PTA/Yi5jb25jYXQoYCR7dn1gKTpiLmNvbmNhdChgXyR7dn1gKSk7Wk0odGhpcyxgaW5mb18ke2J9XyR7V31gKXx8KGcuU0UobiwyLFcpLFc9e2N0dEF1dGhJbmZvOkR9LEQ9Zy5sKCJqc3BiX3NwYXJzZV9lbmNvZGVkX3Bpdm90Iik/bmV3IFp2KFt7fV0pOm5ldyBadixyZShELFVrciw3LHlZMSxuKSxmMmooRCxXKSl9c3BhbihuLFcsRCxiKXt2YXIgdj1PYmplY3Qua2V5cyhuKS5qb2luKCIiKTtpZihifHwhWk0odGhpcyxgc3Bhbl8ke3Z9XyR7V31gKSluLmNsaWVudEFjdGlvbk5vbmNlPVcsZy56VSgibGF0ZW5jeUFjdGlvblNwYW4iLG4se2N0dEF1dGhJbmZvOkR9KX19O3ZhciBaWj13aW5kb3cscWtyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy50aW1pbmc9e307dGhpcy5jbGVhclJlc291cmNlVGltaW5ncz0oKT0+e307CnRoaXMud2Via2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9Owp0aGlzLm1vekNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTsKdGhpcy5tc0NsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTsKdGhpcy5vQ2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9fX0sVUg9WloucGVyZm9ybWFuY2V8fFpaLm1velBlcmZvcm1hbmNlfHxaWi5tc1BlcmZvcm1hbmNlfHxaWi53ZWJraXRQZXJmb3JtYW5jZXx8bmV3IHFrcjt2YXIgd2I9ITEsbCQ9ITEsUXY9eydzY3JpcHRbbmFtZT0ic2NoZWR1bGVyL3NjaGVkdWxlciJdJzoic2oiLCdzY3JpcHRbbmFtZT0icGxheWVyL2Jhc2UiXSc6InBqIiwnbGlua1tyZWw9InByZWxvYWQiXVtuYW1lPSJwbGF5ZXIvZW1iZWQiXSc6InBlaiIsJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0id3d3LXBsYXllciJdJzoicGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9InBsYXllci93d3ctcGxheWVyIl0nOiJwYyIsJ3NjcmlwdFtuYW1lPSJkZXNrdG9wX3BvbHltZXIvZGVza3RvcF9wb2x5bWVyIl0nOiJkcGoiLCdsaW5rW3JlbD0iaW1wb3J0Il1bbmFtZT0iZGVza3RvcF9wb2x5bWVyIl0nOiJkcGgiLCdzY3JpcHRbbmFtZT0ibW9iaWxlLWMzIl0nOiJtY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1jMyJdJzoibWNjIiwnc2NyaXB0W25hbWU9InBsYXllci1wbGFzbWEtaWFzLXBob25lL2Jhc2UiXSc6Im1jcHBqIiwnc2NyaXB0W25hbWU9InBsYXllci1wbGFzbWEtaWFzLXRhYmxldC9iYXNlIl0nOiJtY3B0aiIsCidsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1pYXMiXSc6Im1jcGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1zdmctaWFzIl0nOiJtY3BzYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2NvcmVfbW9kIl0nOiJtYmNqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGVfYmxhemVyX2NzcyJdJzoibWJjIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfbG9nZ2VkX2luX3VzZXJzX21vZCJdJzoibWJsaXVqIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfbG9nZ2VkX291dF91c2Vyc19tb2QiXSc6Im1ibG91aiIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX25vbmNvcmVfbW9kIl0nOiJtYm5qIiwiI3BsYXllcl9jc3MiOiJtYnBjIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfZGVza3RvcHBsYXllcl9tb2QiXSc6Im1icGoiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZV9ibGF6ZXJfdGFibGV0X2NzcyJdJzoibWJ0YyIsCidzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl93YXRjaF9tb2QiXSc6Im1id2oiLCdzY3JpcHRbbmFtZT0iZW1iZWRfY2xpZW50Il0nOiJlY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9ImVtYmVkLXVpIl0nOiJlY2MifSxabmk9KDAsZy5LdCkoVUguY2xlYXJSZXNvdXJjZVRpbWluZ3N8fFVILndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzfHxVSC5tb3pDbGVhclJlc291cmNlVGltaW5nc3x8VUgubXNDbGVhclJlc291cmNlVGltaW5nc3x8VUgub0NsZWFyUmVzb3VyY2VUaW1pbmdzfHxnLkZULFVIKTt2YXIgVUM9d2luZG93O1VDLnl0Y3NpJiYoVUMueXRjc2kuaW5mb0dlbD1nLm5sLFVDLnl0Y3NpLnRpY2s9Zy5hTCk7dmFyIG85aj1bInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuQnJvd3NlUmVzcG9uc2UiLCJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLlBsYXllclJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QYW5lbFJlc3BvbnNlIl0sWDc9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLmo9bjt0aGlzLnlHPVc7dGhpcy5XPUQ7dGhpcy5YPWI7dGhpcy5KPXY7dGhpcy5OPW5ldyBNYXA7bi53ZHx8KG4ud2Q9e30pO24ud2Q9ey4uLmdnMSwuLi5uLndkfX19O3ZhciBhOD1uZXcgZy5BTCgiSU5ORVJUVUJFX1RSQU5TUE9SVF9UT0tFTiIpLFZXPW5ldyBnLkFMKCJSRVNQT05TRV9QUk9DRVNTT1JfTUFQX1RPS0VOIik7dmFyIE1hPW5ldyBnLkFMKCJFTkRQT0lOVF9NQVAiKTt2YXIgeVg9Y2xhc3N7fTt2YXIgTnI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPSJwZW5kaW5nIjt0aGlzLko9W107dGhpcy5XPVtdO3RyeXtuKHRoaXMuWC5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpfWNhdGNoKFcpe3RoaXMucmVqZWN0KFcpfX1zdGF0ZSgpe3JldHVybiB0aGlzLk49PT0iZnVsZmlsbGVkIj97c3RhdGU6ImZ1bGZpbGxlZCIsdmFsdWU6dGhpcy5yZXN1bHR9OnRoaXMuTj09PSJyZWplY3RlZCI/e3N0YXRlOiJyZWplY3RlZCIscmVhc29uOnRoaXMuZXJyb3J9OntzdGF0ZToicGVuZGluZyJ9fVgobil7WW8obil8fFlEKG4pP1NrKEhQKG4pLHRoaXMuWC5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpOih0aGlzLk49ImZ1bGZpbGxlZCIsdGhpcy5yZXN1bHQ9bixtRSh0aGlzKSl9cmVqZWN0KG4pe3RoaXMuTj0icmVqZWN0ZWQiO3RoaXMuZXJyb3I9bjttRSh0aGlzKX19LFlEPXEzKG49PmtDeChuKT9uIGluc3RhbmNlb2YgTnI6ITEpO3ZhciBjZT1uZXcgZy5BTCgiQVVUSF9TRVJWSUNFX1RPS0VOIik7dmFyIHVkPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIFc9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIEQ9bi55dFJlcXVlc3Q7Zy5SVShELmlucHV0KTt2YXIgYj1ELlBpPy5tb2RlPT09ImNvcnMiPyJjb3JzIjp2b2lkIDA7aWYoVy5OLnNCKXt2YXIgdj1ELmNvbmZpZzt2PVcuTi5haih2Py5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6dj8uQkc/LnNlc3Npb25JbmRleH0pO2I9ey4uLmtWKGIpLC4uLnZ9fWVsc2UgYj15aWVsZCpQUChNRXcoVyxELmNvbmZpZyxiKSk7RC5QaT17Li4uRC5QaSxoZWFkZXJzOnsuLi4oRC5QaT8uaGVhZGVycz8/e30pLC4uLmJ9fTtyZXR1cm57bmV4dFN0YXRlOiJERURVUEUiLHBhcmFtczpufX0oKX0pfX07CnVkW2cuTFhdPVtjZV07dmFyIGFqPW5ldyBnLkFMKCJSRVNQT05TRV9NQUNISU5FX1JFR0lTVFJZX1RPS0VOIiksblI9bmV3IGcuQUwoIlJFU1BPTlNFX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpO3ZhciBCZT1uZXcgZy5BTCgiRVBIRU1FUkFMX1NUT1JFX1RPS0VOIik7dmFyIG9qPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuTj1uO3RoaXMuSj1XfWV4ZWN1dGUobil7dmFyIFc9dGhpcy5KLEQ9dGhpcy5OO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPW4ueXRSZXF1ZXN0LHY9Yi5jb25maWc/LkhuPy5STDtpZih2JiZXJiZXLmhhcyh2KSYmIWIuY29uZmlnPy5Ibj8uZGlzYWJsZUNhY2hlKXt2YXIgaz15aWVsZCpQUChIUChXLmdldCh2KSkpO2lmKGsmJiFrLmlzRXhwaXJlZCgpKXJldHVybiBiPXFyKGspLGcubCgid2ViX3Byb2Nlc3NfcmVzcG9uc2Vfc3RvcmVfcmVzcG9uc2VzIikmJiFrLmlzUHJvY2Vzc2VkKCk/KGs9RCgpLGI9eWllbGQqUFAoeXEoayx7d2lyZVJlc3BvbnNlOmIseXRSZXF1ZXN0Om4ueXRSZXF1ZXN0LGNodW5rQ2FsbGJhY2s6bi5jaHVua0NhbGxiYWNrLHJlc3BvbnNlUGF5bG9hZDp7dHlwZToiUEFHRV9DT05UUkFDVCJ9LGV4dHJhY3RlZFJlc3BvbnNlOmJ9KSksCnlpZWxkKlBQKEhQKHRlKFcsdikpKSx7bmV4dFN0YXRlOiJET05FIix2YWx1ZTpifSk6e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6Yn19cmV0dXJue25leHRTdGF0ZToiTE9DQUxfUk9VVEVSIixwYXJhbXM6bn19KCl9KX19OwpvaltnLkxYXT1bblIsZy5ocChCZSldO3ZhciBkXz1jbGFzcyBleHRlbmRzIHlYe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLko9bjt0aGlzLk49V31leGVjdXRlKG4pe3ZhciBXPXRoaXMuSixEPXRoaXMuTixiPW4ueXRSZXF1ZXN0LHY9Yj8uaW5uZXJUdWJlUmVxdWVzdD8uY29udGV4dDtpZighdilyZXR1cm4gSFAoe25leHRTdGF0ZToiQVVUSCIscGFyYW1zOm59KTt2YXIgaz1bXTtpZihEJiZELmxlbmd0aD4wKWZvcihsZXQgaCBvZiBEKUQ9aC5CcyhiKSxELk4mJmsucHVzaChELk4pO2ZvcihsZXQgaCBvZiBXfHxbXSloLkJzKHYpO3JldHVybiBrLmxlbmd0aD4wP09vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7eWllbGQqUFAoSFAoUHJvbWlzZS5hbGwoaykpKTtyZXR1cm57bmV4dFN0YXRlOiJBVVRIIixwYXJhbXM6bn19KCl9KTpIUCh7bmV4dFN0YXRlOiJBVVRIIiwKcGFyYW1zOm59KX19O2RfW2cuTFhdPVtnLmhwKG5ldyBnLkFMKCJDT05URVhUX1BST0NFU1NPUl9NQVAiKSksZy5ocChuZXcgZy5BTCgiQVNZTkNfQ09OVEVYVF9QUk9DRVNTT1JfTUFQIikpXTt2YXIgelc9Y2xhc3MgZXh0ZW5kcyB5WHtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuTj1ufWV4ZWN1dGUobil7dmFyIFc9dGhpcy5OO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBEPW4ueXRSZXF1ZXN0LmNvbmZpZz8ucmVxdWVzdEtleTtyZXR1cm4gRCYmVy5oYXMoRCkmJihEPVcuZ2V0KEQpLEQ9eWllbGQqUFAoSFAoRCkpKT97bmV4dFN0YXRlOiJET05FIix2YWx1ZTpEfTp7bmV4dFN0YXRlOiJGRVRDSCIscGFyYW1zOm59fSgpfSl9fTsKeldbZy5MWF09W2lkXTt2YXIgR3h0PW5ldyBnLkFMKCJMT0NBTF9JTk5FUlRVQkVfUk9VVEVSX1RPS0VOIik7dmFyIGxkPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuSj1uO3RoaXMuTj1XfWV4ZWN1dGUobil7dmFyIFc9dGhpcy5OLEQ9dGhpcy5KO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPW4ueXRSZXF1ZXN0LHY9bi5jaHVua0NhbGxiYWNrLGs9e3R5cGU6IlBBR0VfQ09OVFJBQ1QifTtpZihXPy5yNihiLmlucHV0LGIuaW5uZXJUdWJlUmVxdWVzdCkpe2xldCB4PXlpZWxkKlBQKEhQKFcuWVIoYi5pbnB1dCxiLmlubmVyVHViZVJlcXVlc3QpKSk7aWYoeCl7bGV0IEw9ITE7dmFyIGg9ZnVuY3Rpb24oZSxHKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHI9RCgpO3lpZWxkKlBQKHlxKHIse3dpcmVSZXNwb25zZTpHLHl0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6dixyZXNwb25zZVBheWxvYWQ6a30pKTtMPSEwfSgpfTsKeC5wbGF5ZXJSZXNwb25zZSYmKHlpZWxkKmgoeC5wbGF5ZXJSZXNwb25zZSx7cGxheWVyUmVzcG9uc2U6eC5wbGF5ZXJSZXNwb25zZX0pKTt4LndhdGNoTmV4dFJlc3BvbnNlJiYoeWllbGQqaCh4LndhdGNoTmV4dFJlc3BvbnNlLHt3YXRjaE5leHRSZXNwb25zZTp4LndhdGNoTmV4dFJlc3BvbnNlfSkpO0x8fChoPUQoKSx5aWVsZCpQUCh5cShoLHt3aXJlUmVzcG9uc2U6eCx5dFJlcXVlc3Q6YixjaHVua0NhbGxiYWNrOnYscmVzcG9uc2VQYXlsb2FkOmt9KSkpO2lmKHYpcmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6a307aD1rLmNvbnRlbnR8fGsucGxheWVyfHxrLnlCO3JldHVybiBrLnR5cGU9PT0iUEFHRV9DT05UUkFDVCImJmg/e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6aH06e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6eH19fXJldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIkZhbGxiYWNrTm9kZSBmYWlsZWQgdG8gcHJvZHVjZSBhIHZhbGlkIHJlc3BvbnNlIil9fSgpfSl9fTsKbGRbZy5MWF09W25SLGcuaHAoR3h0KV07dmFyIEVDPWNsYXNzIGV4dGVuZHMgZy5ReHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIoVyx7c3RhdHVzOkQsLi4uW119KTt0aGlzLnR5cGU9bjt0aGlzLnN0YXR1cz1EO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciBsQj1uZXcgZy5BTCgiTkVUV09SS19NQU5BR0VSX1RPS0VOIik7dmFyIFRXPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXLEQsYil7c3VwZXIoKTt0aGlzLnlHPW47dGhpcy5OPVc7dGhpcy5XPUQ7dGhpcy5KPWJ9ZXhlY3V0ZShuKXt2YXIgVz10aGlzLnlHLEQ9dGhpcy5OLGI9dGhpcy5XLHY9dGhpcy5KO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBrPW4ueXRSZXF1ZXN0LGg9bi5jaHVua0NhbGxiYWNrLHg9ay5jb25maWc/LnJlcXVlc3RLZXksTD1KU09OLnN0cmluZ2lmeShrLmlubmVyVHViZVJlcXVlc3QpLGU9ey4uLmsuUGksYm9keTprLlBpLm1ldGhvZD09PSJQT1NUIj9MOnZvaWQgMH07ay5jb25maWc/LkxhJiZnLmFMKGsuY29uZmlnLkxhKTt2YXIgRz17dHlwZToiUEFHRV9DT05UUkFDVCJ9LHI9MCxOPXk9PntFbyhiKCkse3dpcmVSZXNwb25zZTp5LHl0UmVxdWVzdDprLGNodW5rQ2FsbGJhY2s6aCxyZXNwb25zZVBheWxvYWQ6R30scisrKX07Ckw9KCk9Pmg/Vy5mZXRjaChrLmlucHV0LGUsay5jb25maWcsTik6Vy5mZXRjaChrLmlucHV0LGUsay5jb25maWcpOwp0cnl7dmFyIEg9dj92LlFOKGssTCk6TCgpfWNhdGNoKHkpe0g9UHJvbWlzZS5yZWplY3QoeSl9eCYmRCYmRC5zZXQoeCxIKTt0cnl7dmFyIEE9eWllbGQqUFAoSFAoSCkpfWNhdGNoKHkpe3JldHVybiBnLmwoIndlYl9lbmFibGVfcmV0cmllcyIpJiYoQT15IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ5Lm1lc3NhZ2U9PT0iRmFpbGVkIHRvIGZldGNoIj8xOjAsVW8oQSkpP3tuZXh0U3RhdGU6IlJFVFJZIixwYXJhbXM6ey4uLm4sZXJyb3I6bmV3IEVDKEEseS5tZXNzYWdlKSxhdHRlbXB0OihuLmF0dGVtcHR8fDApKzF9fTp7bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnsuLi5ufX19eCYmRCYmRC5kZWxldGUoeCk7ZWsoeEQoay5pbnB1dCkpKCk7ay5jb25maWc/LlJWJiZnLmFMKGsuY29uZmlnLlJWKTtpZighQSlyZXR1cm57bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnsuLi5ufX07aWYoQSYmdHlwZW9mIEE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoQSkmJih4PUEseC5lcnJvck1ldGFkYXRhPy5zdGF0dXMmJgooeD14LmVycm9yTWV0YWRhdGEuc3RhdHVzLEg9eD09PTUwM3x8eD09PTUwNHx8eD09PTQyOT8yOng+PTQwMCYmeDw1MDB8fHg+PTUwMD8zOjAsVW8oSCkmJmcubCgid2ViX2VuYWJsZV9yZXRyaWVzIikpKSlyZXR1cm57bmV4dFN0YXRlOiJSRVRSWSIscGFyYW1zOnsuLi5uLGVycm9yOm5ldyBFQyhILGBIVFRQIFN0YXR1cyAke3h9YCx4KSxhdHRlbXB0OihuLmF0dGVtcHR8fDApKzF9fTshaCYmQSYmKHg9YigpLHg9eWllbGQqUFAoRW8oeCx7d2lyZVJlc3BvbnNlOkEseXRSZXF1ZXN0OmsscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn19KSksSD14LmNvbnRlbnR8fHgucGxheWVyfHx4LnlCLHgudHlwZT09PSJQQUdFX0NPTlRSQUNUIiYmSCYmKEE9SCkpO3g9QTtpZihBcnJheS5pc0FycmF5KEEpKWlmKEE9QS5maWx0ZXIoeT0+ISh5LnBsYXllclJlc3BvbnNlfHx5LndhdGNoTmV4dFJlc3BvbnNlfHx5KS5yZXNwb25zZUNvbnRleHQ/LmZyYW1ld29ya09ubHkpLEEubGVuZ3RoPT09CjEpeD1BWzBdOwplbHNlIGlmKEEubGVuZ3RoPjEpeD1BLmZpbmQoeT0+eS53YXRjaE5leHRSZXNwb25zZSl8fEFbMF07CmVsc2UgcmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiRmV0Y2hOb2RlIHByb2R1Y2VkIG9ubHkgZnJhbWV3b3JrLW9ubHkgcmVzcG9uc2VzIil9O3JldHVybntuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmgmJiFnLmwoIndlYl9ubV9mZXRjaF9jaHVua19jYWxsYmFja19rcyIpP0c6eH19KCl9KX19OwpUV1tnLkxYXT1bbEIsaWQsblIsZy5ocChuZXcgZy5BTCgiUkVRVUVTVF9TRVFVRU5DSU5HIikpXTt2YXIgams9Y2xhc3MgZXh0ZW5kcyB5WHtjb25zdHJ1Y3RvcihuLFcpe3N1cGVyKCk7dGhpcy5KPW47dGhpcy5OPVd9ZXhlY3V0ZShuKXt2YXIgVz10aGlzLk4sRD10aGlzLkosYj1uLnl0UmVxdWVzdDtyZXR1cm4gVz8uckEoYi5pbnB1dCxiLmlubmVyVHViZVJlcXVlc3QpP09vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHY9eWllbGQqUFAoSFAoVy5zNihiLmlucHV0LGIuaW5uZXJUdWJlUmVxdWVzdCkpKTt2YXIgaz1EKCk7di5wbGF5ZXJSZXNwb25zZSYmdi53YXRjaE5leHRSZXNwb25zZT8oeWllbGQqUFAoeXEoayx7d2lyZVJlc3BvbnNlOntwbGF5ZXJSZXNwb25zZTp2LnBsYXllclJlc3BvbnNlfSx5dFJlcXVlc3Q6bi55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazpuLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6di5wbGF5ZXJSZXNwb25zZX0pKSxrPXlpZWxkKlBQKHlxKGssCnt3aXJlUmVzcG9uc2U6e3dhdGNoTmV4dFJlc3BvbnNlOnYud2F0Y2hOZXh0UmVzcG9uc2V9LHl0UmVxdWVzdDpuLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOm4uY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTp2LndhdGNoTmV4dFJlc3BvbnNlfSkpKTprPXlpZWxkKlBQKHlxKGsse3dpcmVSZXNwb25zZTp2LHl0UmVxdWVzdDpuLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOm4uY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTp2fSkpO3ZhciBoPWsuY29udGVudHx8ay5wbGF5ZXJ8fGsueUI7ay50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZoJiYodj1oKTtyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTp2fX0oKX0pOkhQKHtuZXh0U3RhdGU6IkNPTlRFWFQiLApwYXJhbXM6bn0pfX07amtbZy5MWF09W25SLGcuaHAoR3h0KV07dmFyIENsPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIFc9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7dHJ5e3ZhciBEPXlpZWxkKlBQKFZFMihXLG4uY29tbWFuZCwhIW4uY2h1bmtDYWxsYmFjaykpfWNhdGNoKGIpe3JldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6Yn19cmV0dXJuKEQ9RC5EKG4uY29tbWFuZCxuLmZvcm0sbi5pZGVudGl0eSkpP3tuZXh0U3RhdGU6IkNBQ0hFIixwYXJhbXM6e3l0UmVxdWVzdDpELGNodW5rQ2FsbGJhY2s6bi5jaHVua0NhbGxiYWNrfX06e25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiRmFpbGVkIHRvIGJ1aWxkIHJlcXVlc3QgZm9yIGNvbW1hbmQiKX19KCl9KX19OwpDbFtnLkxYXT1bTWFdO3ZhciBCUD1jbGFzcyBleHRlbmRzIHlYe2V4ZWN1dGUobil7cmV0dXJuIE9vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHtpbm5lclR1YmVSZXF1ZXN0OlcsYXBpUGF0aDpELGNsaWNrVHJhY2tpbmdQYXJhbXM6Yixjb25maWc6dj17Qkc6e2lkZW50aXR5OnU5fX0saW5jbHVkZUN1cnJlbnRTY3JlZW5Ob25jZTprPSEwLGNodW5rQ2FsbGJhY2s6aH09bjtXLmNvbnRleHR8fChXLmNvbnRleHQ9Zy52YihiLGspKTt2YXIgeD1acihLJChEKSk7cmV0dXJue25leHRTdGF0ZToiQ0FDSEUiLHBhcmFtczp7eXRSZXF1ZXN0OntpbnB1dDp4LFBpOlV6KHgpLGlubmVyVHViZVJlcXVlc3Q6Vyxjb25maWc6dn0sY2h1bmtDYWxsYmFjazpofX19KCl9KX19O3ZhciB0NE09Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50ZT1ufXJ1bihuLFcpe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIEQ9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKHZhciBiPW4sdj1XLGs9W107Oyl7ay5wdXNoKFN0cmluZyhiKSk7dj15aWVsZCpQUChELnRlW2JdLmV4ZWN1dGUodikpO2lmKHYubmV4dFN0YXRlPT09IkRPTkUiKXJldHVybiBrLnB1c2goIkRPTkUiKSx2LnZhbHVlO2lmKHYubmV4dFN0YXRlPT09IkZBSUxFRCIpdGhyb3cgay5wdXNoKGBGQUlMRUQoJHt2LmVycm9yLm1lc3NhZ2V8fCJlcnJvciJ9KWApLHYuZXJyb3I7Yj12Lm5leHRTdGF0ZTt2PXYucGFyYW1zfX0oKX0pfX07Zy5Ncj1jbGFzcyBleHRlbmRzIHQ0TXt9O2cuTXIucHJvdG90eXBlLkQ9V1ooMSk7Zy5NcltnLkxYXT1bd19dO3ZhciBGNz1jbGFzcyBleHRlbmRzIHlYe2V4ZWN1dGUobil7cmV0dXJuIE9vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIFc9bi55dFJlcXVlc3QsRD1uLmVycm9yLGI9bi5hdHRlbXB0LHY9bi5jaHVua0NhbGxiYWNrLGs9Vy5jb25maWc/Llh4O2lmKCEoayYmRCBpbnN0YW5jZW9mIEVDJiZVbyhELnR5cGUpKXx8Yj4oay5tYXhSZXRyaWVzPz8wKSlyZXR1cm57bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnt5dFJlcXVlc3Q6VyxjaHVua0NhbGxiYWNrOnZ9fTt2YXIgaD0oRD1rLmtVKT9ELlBaKGIpOi0xO2g9PT0tMSYmKGg9MUUzKTtrLlQ2IT09dm9pZCAwJiYoaD1NYXRoLm1pbihoLGsuVDYpKTt5aWVsZCpQUChIUChuZXcgUHJvbWlzZSh4PT57Zy5WeCgwLHgsNCxoKX0pKSk7CnJldHVybntuZXh0U3RhdGU6IkZFVENIIixwYXJhbXM6e3l0UmVxdWVzdDpXLGNodW5rQ2FsbGJhY2s6dixhdHRlbXB0OmJ9fX0oKX0pfX07dmFyIFJqPWNsYXNzIGV4dGVuZHMgeVh7ZXhlY3V0ZShuKXtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgVz1uLmNodW5rQ2FsbGJhY2ssRD1uLnJlc3BvbnNlUGF5bG9hZCxiPW4ud2lyZVJlc3BvbnNlO1cmJihXKEQpLCJwbGF5ZXJSZXNwb25zZSJpbiBiJiZiLnBsYXllclJlc3BvbnNlJiYoZy5EeSgpLGJRKDQpKSk7cmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6RH19KCl9KX19O3ZhciAkejI9WyJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLkJyb3dzZVJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QbGF5ZXJSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGFuZWxSZXNwb25zZSJdLFFxPWNsYXNzIGV4dGVuZHMgeVh7ZXhlY3V0ZShuKXtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgVz1uLm9uZVBsYXRmb3JtRXJyb3I7aWYoVyYmImRldGFpbHMiaW4gVyYmVy5kZXRhaWxzKXtXPVcuZGV0YWlscztmb3IobGV0IEQgb2YgVylpZigoVz1EWyJAdHlwZSJdKSYmJHoyLmluZGV4T2YoVyk+LTEpcmV0dXJuIGRlbGV0ZSBEWyJAdHlwZSJdLHtuZXh0U3RhdGU6IlBST0NFU1NfUkVTUE9OU0UiLApwYXJhbXM6ey4uLm4sZXh0cmFjdGVkUmVzcG9uc2U6RH19fXJldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIkVycm9yIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSB1bnBhY2tlZCIpfX0oKX0pfX07dmFyIFZxPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3ZhciBXPXRoaXMuTjtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgRD1uLmV4dHJhY3RlZFJlc3BvbnNlLGI9bi55dFJlcXVlc3Qsdj1uLnJlc3BvbnNlUGF5bG9hZCxrPW4ud2lyZVJlc3BvbnNlO2lmKEQmJiEoImNvZGUiaW4gRHx8ImVycm9yImluIEQpJiYhRC5zZXF1ZW5jZU1ldGFEYXRhPy5za2lwUHJvY2Vzc2luZylmb3IobGV0IGggb2Ygc28pV1toXSYmV1toXS5oYW5kbGVSZXNwb25zZShELGIpO2sud2F0Y2hOZXh0UmVzcG9uc2V8fGsucmVlbEl0ZW1XYXRjaFJlc3BvbnNlP2sud2F0Y2hOZXh0UmVzcG9uc2U/di5jb250ZW50PWsud2F0Y2hOZXh0UmVzcG9uc2U6di5jb250ZW50PWsucmVlbEl0ZW1XYXRjaFJlc3BvbnNlOmsucGxheWVyUmVzcG9uc2U/di5wbGF5ZXI9ay5wbGF5ZXJSZXNwb25zZTprLnJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2U/CnYueUI9ay5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOnYuY29udGVudD1rO3JldHVybntuZXh0U3RhdGU6IkNBTExCQUNLX0RJU1BBVENIRVIiLHBhcmFtczpufX0oKX0pfX07ClZxW2cuTFhdPVtWV107dmFyIFdHPWNsYXNzIGV4dGVuZHMgdDRNe307V0dbZy5MWF09W2FqXTt2YXIgY1A9Y2xhc3MgZXh0ZW5kcyB5WHtleGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBXPW4ud2lyZVJlc3BvbnNlLEQ7QXJyYXkuaXNBcnJheShXKT9EPVdbMF06dHlwZW9mIFc9PT0ib2JqZWN0IiYmVyE9PW51bGwmJigicGxheWVyUmVzcG9uc2UiaW4gV3x8IndhdGNoTmV4dFJlc3BvbnNlImluIFd8fCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiaW4gV3x8InJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2UiaW4gVyk/RD1XLnBsYXllclJlc3BvbnNlfHxXLndhdGNoTmV4dFJlc3BvbnNlfHxXLnJlZWxJdGVtV2F0Y2hSZXNwb25zZXx8Vy5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOkQ9VztyZXR1cm4gRCYmImVycm9yImluIEQ/e25leHRTdGF0ZToiRVJST1JfVU5QQUNLRVIiLHBhcmFtczp7Li4ubixvbmVQbGF0Zm9ybUVycm9yOkQuZXJyb3J9fTp7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIixwYXJhbXM6ey4uLm4sZXh0cmFjdGVkUmVzcG9uc2U6RH19fSgpfSl9fTt2YXIgUEd4PWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBDOGJ9Z2V0IGooKXtyZXR1cm4hMH1OKG4pe3JldHVybiBnLncobixMdTEpfHx2b2lkIDB9SihuLFcsRD17fSl7Vy5jaGFubmVsSWRzJiYobi5jaGFubmVsSWRzPVcuY2hhbm5lbElkcyk7Vy5zaWxvTmFtZSYmKG4uc2lsb05hbWU9Vy5zaWxvTmFtZSk7Vy5wYXJhbXMmJihuLnBhcmFtcz1XLnBhcmFtcyk7RC5ib3RndWFyZFJlc3BvbnNlJiYobi5ib3RndWFyZFJlc3BvbnNlPUQuYm90Z3VhcmRSZXNwb25zZSk7RC5mZWF0dXJlJiYobi5jbGllbnRGZWF0dXJlPUQuZmVhdHVyZSl9fTt2YXIgWmh0PWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBCeWl9Z2V0IGooKXtyZXR1cm4hMH1OKG4pe3JldHVybiBnLncobixoblUpfHx2b2lkIDB9SihuLFcpe1cuY2hhbm5lbElkcyYmKG4uY2hhbm5lbElkcz1XLmNoYW5uZWxJZHMpO1cuc2lsb05hbWUmJihuLnNpbG9OYW1lPVcuc2lsb05hbWUpO1cucGFyYW1zJiYobi5wYXJhbXM9Vy5wYXJhbXMpfX07dmFyIFI4PWNsYXNzIGV4dGVuZHMgUEN7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmNKPW59Vygpe3JldHVybiBkJFN9TihuKXtyZXR1cm4gZy53KG4sdXhDKXx8Zy53KG4sb05pKXx8Zy53KG4saXpTKX1KKG4sVyl7Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkmJihuLnNlcmlhbGl6ZWRTaGFyZWRFbnRpdHk9Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkpO1cuY2xpZW50UGFyYW1JZGVudGlmaWVyJiZ0aGlzLmNKPy5OKFcuY2xpZW50UGFyYW1JZGVudGlmaWVyKSYmKG4uY2xpZW50UGFyYW1zPXRoaXMuY0ouSihXLmNsaWVudFBhcmFtSWRlbnRpZmllcikpfX07UjhbZy5MWF09W25ldyBnLkFMKCJTSEFSRV9DTElFTlRfUEFSQU1TX1BST1ZJREVSX1RPS0VOIildO3ZhciBtZlM9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIGxPTX1nZXQgaigpe3JldHVybiEwfU4obil7cmV0dXJuIGcudyhuLFNZdyl8fHZvaWQgMH1KKG4sVyxEKXtuLmZlZWRiYWNrVG9rZW5zPVtdO1cuZmVlZGJhY2tUb2tlbiYmbi5mZWVkYmFja1Rva2Vucy5wdXNoKFcuZmVlZGJhY2tUb2tlbik7aWYoVz1XLmNwbnx8RC5jcG4pbi5mZWVkYmFja0NvbnRleHQ9e2NwbjpXfTtuLmlzRmVlZGJhY2tUb2tlblVuZW5jcnlwdGVkPSEhRC5pc19mZWVkYmFja190b2tlbl91bmVuY3J5cHRlZDtuLnNob3VsZE1lcmdlPSExO0QuZXh0cmFfZmVlZGJhY2tfdG9rZW5zJiYobi5zaG91bGRNZXJnZT0hMCxuLmZlZWRiYWNrVG9rZW5zPW4uZmVlZGJhY2tUb2tlbnMuY29uY2F0KEQuZXh0cmFfZmVlZGJhY2tfdG9rZW5zKSl9fTt2YXIgSzRpPWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBUeXd9TihuKXtyZXR1cm4gZy53KG4sa2l3KXx8dm9pZCAwfUoobixXKXtXLnBhcmFtcyYmKG4ucGFyYW1zPVcucGFyYW1zKTtXLnNlY29uZGFyeVBhcmFtcyYmKG4uc2Vjb25kYXJ5UGFyYW1zPVcuc2Vjb25kYXJ5UGFyYW1zKX19O3ZhciBPaHI9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIGpkeH1OKG4pe3JldHVybiBnLncobixuWEMpfHx2b2lkIDB9SihuLFcpe1cuYWN0aW9ucyYmKG4uYWN0aW9ucz1XLmFjdGlvbnMpO1cucGFyYW1zJiYobi5wYXJhbXM9Vy5wYXJhbXMpO1cucGxheWxpc3RJZCYmKG4ucGxheWxpc3RJZD1XLnBsYXlsaXN0SWQpfX07dmFyIFVmWj1jbGFzcyBleHRlbmRzIFBDe1coKXtyZXR1cm4gem50fU4obil7cmV0dXJuIGcudyhuLGRJeCl9SihuLFcsRD17fSl7Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkmJihuLnNlcmlhbGl6ZWRTaGFyZWRFbnRpdHk9Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkpO0QuaW5jbHVkZUxpc3RJZCYmKG4uaW5jbHVkZUxpc3RJZD0hMCl9fTt2YXIgUVc9bmV3IGcuQUwoIlJFU09MVkVfVVJMX1BSRUZFVENIX1RPS0VOIik7dmFyIGpZPW5ldyBnLkFMKCJDTElFTlRfTkFNRV9UT0tFTiIpO3ZhciBDZj1uZXcgZy5BTCgiREVGQVVMVF9TVE9SRV9FWFBJUkFUSU9OX1RPS0VOIik7dmFyIHJaaD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuY2xpZW50TmFtZT1uO3RoaXMuSj1XfWFzeW5jIHB1dChuLFcpe1c9ey4uLlcuZGF0YX07Vy5rZXk9bjtXLmNsaWVudE5hbWU9dGhpcy5jbGllbnROYW1lO1cuZXhwaXJlVGltZXN0YW1wTXM9PT12b2lkIDAmJihXLmV4cGlyZVRpbWVzdGFtcE1zPShNYXRoLnJvdW5kKCgwLGcuUikoKSkrdGhpcy5KKS50b1N0cmluZygpKTtyZXR1cm4gRHcodGhpcyxuLFcpfX07clpoW2cuTFhdPVtqWSxDZl07dmFyIGJoPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuZGF0YT17Li4ubn07ZGVsZXRlIHRoaXMuZGF0YS5pbm5lcnR1YmVSZXNwb25zZT8uZnJhbWV3b3JrVXBkYXRlc31pc0V4cGlyZWQoKXtyZXR1cm4gTnVtYmVyKHRoaXMuZGF0YS5leHBpcmVUaW1lc3RhbXBNc3x8MCk8KDAsZy5SKSgpfWlzUHJvY2Vzc2VkKCl7cmV0dXJuISF0aGlzLmRhdGEuaXNQcm9jZXNzZWR9fTt2YXIgQTNqPWNsYXNzIGV4dGVuZHMgclpoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLk49bmV3IE1hcH1hc3luYyBnZXQobil7cmV0dXJuIHZHKHRoaXMsbil9YXN5bmMgcmVtb3ZlKG4pe2tNKHRoaXMsbil9YXN5bmMgVGkoKXt0aGlzLk4uZm9yRWFjaChuPT57Y2xlYXJUaW1lb3V0KG4udGltZXIpfSk7CnRoaXMuTi5jbGVhcigpfWhhcyhuKXtyZXR1cm4hIXRoaXMuTi5nZXQobil9dUIoKXtyZXR1cm4gdGhpcy5OLmtleXMoKX19O3ZhciBzb2I9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIHN2Mn1OKG4pe3JldHVybiBnLncobixUZSl9SihuLFcpe1cudmlkZW9JZCYmKG4ucGxheWVyUmVxdWVzdD17dmlkZW9JZDpXLnZpZGVvSWR9LFcucGxheWVyUGFyYW1zJiYobi5wbGF5ZXJSZXF1ZXN0LnBhcmFtcz1XLnBsYXllclBhcmFtcyksVy5yYWN5Q2hlY2tPayYmKG4ucGxheWVyUmVxdWVzdC5yYWN5Q2hlY2tPaz0hIVcucmFjeUNoZWNrT2spLFcuY29udGVudENoZWNrT2smJihuLnBsYXllclJlcXVlc3QuY29udGVudENoZWNrT2s9ISFXLmNvbnRlbnRDaGVja09rKSk7Vy5wYXJhbXMmJihuLnBhcmFtcz1XLnBhcmFtcyk7Vy5pbnB1dFR5cGUmJihuLmlucHV0VHlwZT1XLmlucHV0VHlwZSk7bi5kaXNhYmxlUGxheWVyUmVzcG9uc2U9ITB9VihuKXt2YXIgVzsobj10aGlzLlgobikpJiYoVz17SG46e1JMOm59fSk7Zy5sKCJ3ZWJfbG9nX3JlZWxzX3RpY2tzIikmJihXPVd8fHt9LFcuTGE9InJfd3JzIixXLlJWPSJyX3dyciIpOwpyZXR1cm4gV31YKG4pe249dGhpcy5OKG4pO2lmKG4/LnZpZGVvSWQpe3ZhciBXPXt2aWRlb0lkOm4udmlkZW9JZH07bi5wYXJhbXMmJihXLnBhcmFtcz1uLnBhcmFtcyk7cmV0dXJuIHlIKCJyZWVsX2l0ZW1fd2F0Y2giLFcpfX19O3ZhciBOdE09bmV3IGcuQUwoIkVOVElUWV9TVEFURV9UT0tFTiIpO3ZhciBZa1M9Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgbj1wRmksVz1xTihVeGooKSk7dGhpcy5zdG9yZT0kZihuLHZvaWQgMCxXKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0b3JlLmdldFN0YXRlKCl9ZGlzcGF0Y2gobil7cmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobil9c3Vic2NyaWJlKG4pe3JldHVybiB0aGlzLnN0b3JlLnN1YnNjcmliZShuKX1yZXBsYWNlUmVkdWNlcihuKXtyZXR1cm4gdGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihuKX1bU3ltYm9sLm9ic2VydmFibGVdKCl7cmV0dXJuIHRoaXMuc3RvcmVbU3ltYm9sLm9ic2VydmFibGVdKCl9fTt2YXIgUzU9Y2xhc3N7Y29uc3RydWN0b3Iobj1bXSl7dGhpcy5OPVtdO3RoaXMuVz10aGlzLko9MDt0aGlzLlg9dm9pZCAwO3RoaXMudG90YWxMZW5ndGg9MDtuLmZvckVhY2goVz0+e3RoaXMuYXBwZW5kKFcpfSl9aigpe3JldHVybiB0aGlzLnRvdGFsTGVuZ3RofWFwcGVuZChuKXtpZih4TSh0aGlzLG4pKXtsZXQgVz10aGlzLk5bdGhpcy5OLmxlbmd0aC0xXTsKdGhpcy5OW3RoaXMuTi5sZW5ndGgtMV09bmV3IFVpbnQ4QXJyYXkoVy5idWZmZXIsVy5ieXRlT2Zmc2V0LFcubGVuZ3RoK24ubGVuZ3RoKTtMUih0aGlzKX1lbHNlIHRoaXMuTi5wdXNoKG4pO3RoaXMudG90YWxMZW5ndGgrPW4ubGVuZ3RofXNwbGl0KG4pe3ZhciBXPW5ldyBTNSxEPW5ldyBTNTtmb3IobGV0IGIgb2YgdGhpcy5OKW4+PWIubGVuZ3RoPyhXLmFwcGVuZChiKSxuLT1iLmxlbmd0aCk6bj8oVy5hcHBlbmQobmV3IFVpbnQ4QXJyYXkoYi5idWZmZXIsYi5ieXRlT2Zmc2V0LG4pKSxELmFwcGVuZChuZXcgVWludDhBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQrbixiLmxlbmd0aC1uKSksbj0wKTpELmFwcGVuZChiKTtyZXR1cm57Q3M6VyxZOTpEfX1pc0ZvY3VzZWQobil7cmV0dXJuIG4+PXRoaXMuVyYmbjx0aGlzLlcrdGhpcy5OW3RoaXMuSl0ubGVuZ3RofWZvY3VzKG4pe2lmKCF0aGlzLmlzRm9jdXNlZChuKSl7Zm9yKG48dGhpcy5XJiZMUih0aGlzKTt0aGlzLlcrdGhpcy5OW3RoaXMuSl0ubGVuZ3RoPD0KbiYmdGhpcy5KPHRoaXMuTi5sZW5ndGg7KXRoaXMuVys9dGhpcy5OW3RoaXMuSl0ubGVuZ3RoLHRoaXMuSis9MTt0aGlzLlg9dm9pZCAwfX19O3ZhciBZTSxORCxmUjtnLk5tPSgoKT0+e3ZhciBuPWI9Pm5ldyBVaW50OEFycmF5KGIpLFc9Yj0+e3ZhciB2PW5ldyBVaW50OEFycmF5KGIubGVuZ3RoKTsKZm9yKGxldCBrPTA7azxiLmxlbmd0aDtrKyspdltrXT1iW2tdO3JldHVybiB2fSxEPW5ldyBVaW50OEFycmF5KFsxXSk7CnJldHVybiBELmxlbmd0aD09PTEmJkRbMF09PT0xP246V30pKCk7CllNPUFycmF5KDEwMjQpO05EPXR5cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRlZmluZWQiP25ldyBUZXh0RGVjb2Rlcjp2b2lkIDA7ZlI9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOnZvaWQgMDt2YXIgQVI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW47dGhpcy5wb3M9MDt0aGlzLko9LTF9fTt2YXIgejY9Y2xhc3N7Y29uc3RydWN0b3Iobj00MDk2KXt0aGlzLldWPXZvaWQgMDt0aGlzLnBvcz0wO3RoaXMuSj1bXTt0aGlzLk49ZGQobik7dGhpcy52aWV3PW5ldyBEYXRhVmlldyh0aGlzLk4uYnVmZmVyLHRoaXMuTi5ieXRlT2Zmc2V0LHRoaXMuTi5ieXRlTGVuZ3RoKX19O3ZhciBhdz17YW5pbWF0aW9uRW50aXR5OjMwMixhY2NvdW50TGlua1N0YXR1c0VudGl0eToxMjIsYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTo2MzAsYm9vbGVhbkVudGl0eTozMDcsYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eTo2MzcsYnV0dG9uRW50aXR5OjM1OCxjYXB0aW9uVHJhY2s6MjI1LGNoYW5uZWxIYW5kbGU6Mjc1LGNoaXBFbnRpdHk6NDk4LGNvbW1lcmNlQWNxdWlzaXRpb25DbGllbnRQYXlsb2FkRW50aXR5OjI3Nixjb21tZXJjZUNhcnRMaXN0RW50aXR5OjIzNixjb21tZXJjZVRva2VuQmFsYW5jZUVudGl0eTo1MzIsY29tcG9zaXRlU291cmNlRW50aXR5OjU5NCxjb250ZXh0Tm90ZUZlZWRFbnRpdHlQYXlsb2FkOjQ4Myxjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkOjU3Nixjb250aW51YXRpb25Ub2tlbkVudGl0eTo0MDYsZG93bmxvYWRRdWFsaXR5UGlja2VyRW50aXR5OjIwMixkb3dubG9hZHNQYWdlUmVmcmVzaFRva2VuRW50aXR5OjI5OSwKZG93bmxvYWRzUGFnZVZpZXdDb25maWd1cmF0aW9uRW50aXR5OjI2NCxkb3dubG9hZFN0YXR1c0VudGl0eToxNDEsZGlzbWlzc1N0YXRlOjU0MCxzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5OjE4NixlbW9qaUZvdW50YWluRGF0YUVudGl0eTozOTMsZW1vamlDdXN0b21pemF0aW9uU2V0RW50aXR5OjQ5NixmYWtlQ2hhbm5lbDoyLGZha2VQbGF5bGlzdDoyNzksZmFrZVBsYXlsaXN0RW50cnlDb2xsZWN0aW9uOjI4MCxmYWtlVmlkZW86MTgyLGZha2VWaWRlb0Rlc2NyaXB0aW9uOjI3OCxmZWF0dXJlZFByb2R1Y3RzRW50aXR5OjM5MixzYXZlZFByb2R1Y3RzU3RhdGVFbnRpdHk6NTk4LGZsb3dTdGF0ZUVudGl0eToyNTIsaWNvbkJhZGdlRW50aXR5OjIyOSxpbnRlcnN0aXRpYWxJbnRlcmFjdGlvblN0YXRlRW50aXR5OjQ0MyxsaWtlQnV0dG9uQW5pbWF0aW9uRW50aXR5OjU2NyxsaXZlQ2hhdFBvbGxTdGF0ZUVudGl0eToyMTcsbGl2ZVZpZXdlckxlYWRlcmJvYXJkQ2hhdEVudHJ5UG9pbnRTdGF0ZUVudGl0eTo1NjMsCmxpdmVWaWV3ZXJMZWFkZXJib2FyZFBvaW50c0VudGl0eTo1NjQsbGl2ZVJlYWN0aW9uc0RhdGFFbnRpdHk6NTAzLGxvZ29FbnRpdHk6MjQ1LG1hY3JvTWFya2VyRW50aXR5OjMyOSxtYWluRG93bmxvYWRzTGlicmFyeUVudGl0eToxNTgsbWFpbkRvd25sb2Fkc0xpc3RFbnRpdHk6MTY0LG1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHk6MzczLG1haW5QbGF5bGlzdEVudGl0eTozMDYsbWFpblBsYXlsaXN0VmlkZW9FbnRpdHk6MzY4LG1haW5WaWRlb0Rvd25sb2FkU3RhdGVFbnRpdHk6MjYyLG1haW5WaWRlb0VudGl0eToyNjEsbWFya2Vyc0VuZ2FnZW1lbnRQYW5lbFN5bmNFbnRpdHk6MTk2LG1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHk6MzEyLG11c2ljQWxidW1SZWxlYXNlRGV0YWlsOjE4LG11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eToyNTksbXVzaWNBbGJ1bVJlbGVhc2U6MTcsbXVzaWNBbGJ1bVJlbGVhc2VVc2VyRGV0YWlsOjE5LG11c2ljQXJ0aXN0RGV0YWlsOjIxLAptdXNpY0FydGlzdDoyMCxtdXNpY0FydGlzdFVzZXJEZXRhaWw6MjIsbXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5OjI1NyxtdXNpY0xpYnJhcnlFZGl0OjEyMSxtdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHk6MzE4LG11c2ljUGxheWxpc3Q6MjQsbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6MjQ4LG11c2ljU2hhcmU6MTAwLG11c2ljVHJhY2tEZXRhaWw6MjksbXVzaWNUcmFja0Rvd25sb2FkTWV0YWRhdGFFbnRpdHk6MjM0LG11c2ljVHJhY2s6MjgsbXVzaWNUcmFja1VzZXJEZXRhaWw6MzAsb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OjE2OSxvZmZsaW5lVmlkZW9Qb2xpY3k6MTMwLG9mZmxpbmVWaWRlb1N0cmVhbXM6MTk4LG9mZmxpbmVhYmlsaXR5RW50aXR5OjI0NixvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6MjQyLHBhZ2VIZWFkZXJFbnRpdHk6NDk1LHBhcnR5R2FtZVBhbmVsRW50aXR5OjYxOCxzbGlkZXJHYW1lUGFuZWxFbnRpdHk6NjMzLApwZHBTdGF0ZUVudGl0eTo1MjQscGlubmVkUHJvZHVjdEVudGl0eToyNzMscGxheWJhY2tEYXRhOjExOSxwbGF5ZXJTdGF0ZUVudGl0eTozMjMscGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eTo1MzkscXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTozNTYscmVmcmVzaDoxNDgsc2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5OjIzMSxzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQ6NDc5LHNlbGVjdGlvblZhbHVlTGlzdEVudGl0eTo2MzQsc2V0dGluZ0VudGl0eToyOTcsc3RyaW5nRW50aXR5OjM4MixzdWdnZXN0ZWRGZWVkYmFja0NoaXBTdGF0ZUVudGl0eTo0ODUsdHJhbnNmZXI6MTIwLHRyZW5kaW5nT2ZmZXJFbnRpdHk6NDY5LHVucGx1Z2dlZFNpZGVzaGVldEhlYWRlclN0YXRlRW50aXR5OjYzNSx2aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eTo0NjEsdmlkZW9PdmVydmlld0FzeW5jRGF0YUVudGl0eTo1NDUsdmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5Ojc2LHZvdGluZ0VudGl0eTo1NjEsCnl0TWFpbkNoYW5uZWxFbnRpdHk6MTUyLHlvdWNoYXRQZW5kaW5nUmVzcG9uc2VFbnRpdHk6NTUzLHl0TWFpbkRvd25sb2FkZWRWaWRlb0VudGl0eToxNTUseXRNYWluVmlkZW9FbnRpdHk6MTUxfSxWQT17fTtmb3IobGV0IFtuLFddb2YgT2JqZWN0LmVudHJpZXMoYXcpKXtsZXQgRD1uLGI9VztiJiYoVkFbYl09RCl9O3ZhciB2ZTt2YXIgSDZ0PSExLGdOLGhFLHgkLExmLGVZLGZIYj1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmNvdW50ZXI9WzAsMCwwLDBdO3RoaXMuSj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5OPTE2O2lmKCFINnQpe3ZhciBXLEQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxiPW5ldyBVaW50OEFycmF5KDI1Nik7dmFyIHY9MTtmb3IoVz0wO1c8MjU2O1crKylEW3ZdPVcsYltXXT12LHZePXY8PDFeKHY+PjcmJjI4Myk7Z049bmV3IFVpbnQ4QXJyYXkoMjU2KTtoRT1rJCgyNTYpO3gkPWskKDI1Nik7TGY9ayQoMjU2KTtlWT1rJCgyNTYpO2ZvcihsZXQgaD0wO2g8MjU2O2grKyl7dj1oP2JbMjU1XkRbaF1dOjA7dl49djw8MV52PDwyXnY8PDNedjw8NDt2PXYmMjU1XnY+Pj44Xjk5O2dOW2hdPXY7Vz12PDwxXih2Pj43JiYyODMpO3ZhciBrPVdedjtoRVtoXT1XPDwyNHx2PDwxNnx2PDw4fGs7eCRbaF09azw8MjR8aEVbaF0+Pj44O0xmW2hdPXY8PDI0fHgkW2hdPj4+Cjg7ZVlbaF09djw8MjR8TGZbaF0+Pj44fUg2dD0hMH12PWskKDQ0KTtmb3IoRD0wO0Q8NDtEKyspdltEXT1uWzQqRF08PDI0fG5bNCpEKzFdPDwxNnxuWzQqRCsyXTw8OHxuWzQqRCszXTtmb3IoYj0xO0Q8NDQ7RCsrKW49dltELTFdLEQlNHx8KG49KGdOW24+PjE2JjI1NV1eYik8PDI0fGdOW24+PjgmMjU1XTw8MTZ8Z05bbiYyNTVdPDw4fGdOW24+Pj4yNF0sYj1iPDwxXihiPj43JiYyODMpKSx2W0RdPXZbRC00XV5uO3RoaXMua2V5PXZ9ZW5jcnlwdChuKXt2YXIgVz1uLmxlbmd0aDtuPW5ldyBVaW50OEFycmF5KG4uYnVmZmVyLnNsaWNlKG4uYnl0ZU9mZnNldCxuLmJ5dGVPZmZzZXQrVykpO2Zvcih2YXIgRD10aGlzLkosYj0wO2I8VyYmdGhpcy5OPDE2OyluW2IrK11ePURbdGhpcy5OKytdO2Zvcih2YXIgdj1XLShXLWIpJTE2O2I8djspWDgodGhpcyksbltiKytdXj1EWzBdLG5bYisrXV49RFsxXSxuW2IrK11ePURbMl0sbltiKytdXj1EWzNdLG5bYisrXV49RFs0XSxuW2IrK11ePQpEWzVdLG5bYisrXV49RFs2XSxuW2IrK11ePURbN10sbltiKytdXj1EWzhdLG5bYisrXV49RFs5XSxuW2IrK11ePURbMTBdLG5bYisrXV49RFsxMV0sbltiKytdXj1EWzEyXSxuW2IrK11ePURbMTNdLG5bYisrXV49RFsxNF0sbltiKytdXj1EWzE1XTtpZihiPFcpZm9yKFg4KHRoaXMpLHRoaXMuTj0wO2I8VzspbltiKytdXj1EW3RoaXMuTisrXTtyZXR1cm4gbn19O3ZhciBxYT0hMTsoKCk9Pnt2YXIgbj1iPT5uZXcgVWludDhBcnJheShiKSxXPWI9Pnt2YXIgdj1uZXcgVWludDhBcnJheShiLmxlbmd0aCk7CmZvcihsZXQgaz0wO2s8Yi5sZW5ndGg7aysrKXZba109YltrXTtyZXR1cm4gdn0sRD1uZXcgVWludDhBcnJheShbMV0pOwpyZXR1cm4gRC5sZW5ndGg9PT0xJiZEWzBdPT09MT9uOld9KSgpOwp2YXIgR3I7dmFyIHVvPWNsYXNze2NvbnN0cnVjdG9yKG4pe3ZhciBXPXRFKCk7VyYmKHRoaXMuTj1uZXcgZFhNKG4sVykpO3RoaXMuSj1uZXcgYjEobil9YXN5bmMgZW5jcnlwdChuLFcpe2lmKHRoaXMuTil0cnl7cmV0dXJuIGF3YWl0IHRoaXMuTi5lbmNyeXB0KG4sVyl9Y2F0Y2goRCl7Zy5HcShEKSxxYT0hMCx0aGlzLk49dm9pZCAwfXJldHVybiB0aGlzLkouZW5jcnlwdChuLFcpfWRlY3J5cHQobixXKXtyZXR1cm4gdGhpcy5lbmNyeXB0KG4sVyl9fSxkWE09Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLlc9bjt0aGlzLko9V31hc3luYyBlbmNyeXB0KG4sVyl7dHJ5e3JldHVybiBhd2FpdCBiaDEodGhpcyxuLFcpfWNhdGNoKEQpe3Rocm93IGcuR3EoRCkscWE9ITAsRDt9fX0sYjE9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW59ZW5jcnlwdChuLFcpe3RoaXMuTnx8KHRoaXMuTj1uZXcgZkhiKHRoaXMuSikpO3ZhciBEPXRoaXMuTjtmb3IobGV0IGI9MDtiPDQ7YisrKUQuY291bnRlcltiXT0KV1tiKjRdPDwyNHxXW2IqNCsxXTw8MTZ8V1tiKjQrMl08PDh8V1tiKjQrM107RC5OPTE2O3JldHVybiB0aGlzLk4uZW5jcnlwdChuKX1kZWNyeXB0KG4sVyl7cmV0dXJuIHRoaXMuZW5jcnlwdChuLFcpfX07dmFyIHZtaT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLmo9bmV3IFVpbnQ4QXJyYXkoNjQpO3RoaXMuVz1uZXcgVWludDhBcnJheSg2NCk7dGhpcy5YPTA7dGhpcy5WPW5ldyBVaW50OEFycmF5KDY0KTt0aGlzLko9MDt0aGlzLmouc2V0KG4pO3RoaXMuVy5zZXQobik7Zm9yKG49MDtuPDY0O24rKyl0aGlzLmpbbl1ePTkyLHRoaXMuV1tuXV49NTQ7dGhpcy5yZXNldCgpfXJlc2V0KCl7JCQodGhpcyk7dGhpcy51cGRhdGUodGhpcy5XKX11cGRhdGUobil7dmFyIFc9MCxEPW4ubGVuZ3RoO3RoaXMuWCs9RDt0aGlzLkomJnRoaXMuSitEPj02NCYmKHRoaXMuVi5zZXQobi5zdWJhcnJheSgwLDY0LXRoaXMuSiksdGhpcy5KKSxXPTY0LXRoaXMuSix0aGlzLko9MCxzZSh0aGlzLHRoaXMuViwwKSk7Zm9yKDtXKzY0PD1EO1crPTY0KXNlKHRoaXMsbixXKTtXPEQmJihuPW4uc3ViYXJyYXkoVyksdGhpcy5WLnNldChuLHRoaXMuSiksdGhpcy5KKz1uLmxlbmd0aCl9fSxyTj1bMTExNjM1MjQwOCwKMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCwKNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO3ZhciBZJD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19LGhhdz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuVz1uO3RoaXMuSj1XfX0saksxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufX07dmFyIEpacj17SU5WQUxJRF9FTkNPREVSX1ZFUlNJT046IkludmFsaWQgZW5jb2RlciB2ZXJzaW9uIixLRVlfQ1JFQVRJT05fRkFJTEVEOiJGYWlsZWQgdG8gY3JlYXRlIGVuY29kZXIga2V5IixVTktOT1dOX0RFQ09ERV9FUlJPUjoiRmFpbGVkIHRvIGRlY29kZSBQRVMgZGF0YSIsVU5LTk9XTl9FTkNPREVfRVJST1I6IkZhaWxlZCB0byBlbmNvZGUgUEVTIGRhdGEiLFdST05HX0RBVEFfVFlQRToiRW5jb2RlciBjYW5ub3QgcHJvY2VzcyB0aGUgZGF0YSB0eXBlIn0sZmY9Y2xhc3MgZXh0ZW5kcyBnLlF4e2NvbnN0cnVjdG9yKG4sVz17fSl7c3VwZXIoSlpyW25dLHtuYW1lOiJQRVNFbmNvZGVyRXJyb3IiLHR5cGU6biwuLi5XfSk7dGhpcy50eXBlPW47dGhpcy5sZXZlbD0iV0FSTklORyI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZmYucHJvdG90eXBlKX19O3ZhciBJSGk9Y2xhc3N7fTt2YXIgU2t0PWNsYXNzIGV4dGVuZHMgSUhpe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5OPW59VyhuLFcpe1c9STgoVyk7bj0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkobikpO3JldHVybiB0aGlzLk4uZW5jcnlwdChuLFcpfUoobixXKXtpZighKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgZmYoIldST05HX0RBVEFfVFlQRSIse09BOjF9KTt2YXIgRD1uZXcgVGV4dERlY29kZXI7Vz1JOChXKTtuPXRoaXMuTi5kZWNyeXB0KG4sVyk7cmV0dXJuIEpTT04ucGFyc2UoRC5kZWNvZGUobikpfX07dmFyIFh5VT17YW5pbWF0aW9uRW50aXR5OmVuaSxhY2NvdW50TGlua1N0YXR1c0VudGl0eTpta2gsYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTp0UFUsYm9vbGVhbkVudGl0eTpyWXIsYnV0dG9uRW50aXR5OkhNdCxjYXB0aW9uVHJhY2s6bEoyLGNoYW5uZWxIYW5kbGU6a2pNLGNoYXRMb2FkaW5nU3RhdGVFbnRpdHk6SU93LGFza1N0dWRpb0NvbnZlcnNhdGlvblN1bW1hcnlFbnRpdHk6R2oxLGNoaXBFbnRpdHk6Z1hVLGNvbW1lcmNlQWNxdWlzaXRpb25DbGllbnRQYXlsb2FkRW50aXR5OlNOeCxjb21tZXJjZUNhcnRMaXN0RW50aXR5OkFNeCxjb21tZXJjZVRva2VuQmFsYW5jZUVudGl0eTptJFMsY29tcG9zaXRlU291cmNlRW50aXR5OiRJTSxtdWx0aXZpZXdTdGFnaW5nRW50aXR5OnJKYixjb250ZXh0Tm90ZUZlZWRFbnRpdHlQYXlsb2FkOnhrdCxjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkOkx0dyxjb250aW51YXRpb25Ub2tlbkVudGl0eTp3d1MsZG93bmxvYWRRdWFsaXR5UGlja2VyRW50aXR5OmlzWiwKZG93bmxvYWRzUGFnZVJlZnJlc2hUb2tlbkVudGl0eTpveGgsZG93bmxvYWRzUGFnZVZpZXdDb25maWd1cmF0aW9uRW50aXR5OkRJMSxkb3dubG9hZFN0YXR1c0VudGl0eTp1NXQsZGlzbWlzc1N0YXRlOlhSUyxzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5Old1WixlbW9qaUZvdW50YWluRGF0YUVudGl0eTpyTTEsZW1vamlDdXN0b21pemF0aW9uU2V0RW50aXR5OiQkMixmYWtlQ2hhbm5lbDpwd0MsZmFrZVBsYXlsaXN0OllZcixmYWtlUGxheWxpc3RFbnRyeUNvbGxlY3Rpb246Zl94LGZha2VWaWRlbzpKWWIsZmFrZVZpZGVvRGVzY3JpcHRpb246SV93LGZlYXR1cmVkUHJvZHVjdHNFbnRpdHk6cXZDLHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTpYX1MsZmxvd1N0YXRlRW50aXR5OkFZeCxpY29uQmFkZ2VFbnRpdHk6S3VqLGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6T3NpLGxpa2VCdXR0b25BbmltYXRpb25FbnRpdHk6Ynp0LGxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OlBMciwKZGF0YUZyZXNobmVzc0VudGl0eTp0R3QsbGl2ZVZpZXdlckxlYWRlcmJvYXJkQ2hhdEVudHJ5UG9pbnRTdGF0ZUVudGl0eTpSTzEsbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OlE0cixsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTpzZGksbG9nb0VudGl0eTpLdHgsbWFjcm9NYXJrZXJFbnRpdHk6dk50LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OmRrdCxtYWluRG93bmxvYWRzTGlzdEVudGl0eTpsX1osbWFpblBsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTpUQTEsbWFpblBsYXlsaXN0RW50aXR5Ok1QdyxtYWluUGxheWxpc3RWaWRlb0VudGl0eTpSNGksbWFpblZpZGVvRG93bmxvYWRTdGF0ZUVudGl0eTpqQmksbWFpblZpZGVvRW50aXR5OmFfaixtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eTprUHIsbWFya2Vyc1Zpc2liaWxpdHlPdmVycmlkZUVudGl0eTpoT3QsbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6ZkpVLG11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eTpzNHQsCm11c2ljQWxidW1SZWxlYXNlOkh6aSxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6SkoxLG11c2ljQXJ0aXN0RGV0YWlsOlN2WixtdXNpY0FydGlzdDpJSlUsbXVzaWNBcnRpc3RVc2VyRGV0YWlsOkFKaSxtdXNpY0Rvd25sb2Fkc0xpYnJhcnlFbnRpdHk6TmtTLG11c2ljTGlicmFyeUVkaXQ6bUliLG11c2ljTGlicmFyeVN0YXR1c0VudGl0eTpLTXcsbXVzaWNQbGF5bGlzdDpQVHgsbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6cF9yLG11c2ljU2hhcmU6WnppLG11c2ljVHJhY2tEZXRhaWw6eUpTLG11c2ljVHJhY2tEb3dubG9hZE1ldGFkYXRhRW50aXR5Oll2dCxtdXNpY1RyYWNrOlVJWixtdXNpY1RyYWNrVXNlckRldGFpbDpFTngsb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OlRrdyxvZmZsaW5lVmlkZW9Qb2xpY3k6ajRaLG9mZmxpbmVWaWRlb1N0cmVhbXM6Q1R3LG9mZmxpbmVhYmlsaXR5RW50aXR5OkNMaSxvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6QkFVLApwYWdlSGVhZGVyRW50aXR5OnFOWixwYXJ0eUdhbWVQYW5lbEVudGl0eTpwUnQsc2xpZGVyR2FtZVBhbmVsRW50aXR5Ok55MSxwZHBTdGF0ZUVudGl0eTpPTWoscGlubmVkUHJvZHVjdEVudGl0eTpHUE0scGxheWJhY2tEYXRhOkJrdyxwbGF5ZXJTdGF0ZUVudGl0eTp4SVoscGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eToka2IscXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTpQOHcscmVmcmVzaDpGTXcsc2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5OnZYaixzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQ6TE13LHNlbGVjdGlvblZhbHVlTGlzdEVudGl0eTpzQngsc2V0dGluZ0VudGl0eTp4JFosc3RyaW5nRW50aXR5Ok5BMixzdWdnZXN0ZWRGZWVkYmFja0NoaXBTdGF0ZUVudGl0eTplT3IsdHJhbnNmZXI6d19NLHRyZW5kaW5nT2ZmZXJFbnRpdHk6dHhqLHVucGx1Z2dlZFNpZGVzaGVldEhlYWRlclN0YXRlRW50aXR5OmZPMix2aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eTpNeFMsCnZpZGVvT3ZlcnZpZXdBc3luY0RhdGFFbnRpdHk6Wk1qLHZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTpKTTIsdm90aW5nRW50aXR5OkdpTSx5dE1haW5DaGFubmVsRW50aXR5Om5OMix5b3VjaGF0UGVuZGluZ1Jlc3BvbnNlRW50aXR5OmdOcix5dE1haW5Eb3dubG9hZGVkVmlkZW9FbnRpdHk6RnRoLHl0TWFpblZpZGVvRW50aXR5OldNWn07dmFyIE5Hdz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMuVz1XO3RoaXMuSj17fX19O3ZhciBBWlo9Y2xhc3MgZXh0ZW5kcyBJSGl7VyhuKXtyZXR1cm4gbn1KKG4pe2lmKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KXRocm93IG5ldyBmZigiV1JPTkdfREFUQV9UWVBFIix7T0E6MH0pO3JldHVybiBufX07dmFyIGY5aT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj17fTt0aGlzLk5bMF09bmV3IEFaWjtpZighZy5sKCJhZXNfcGVzX2VuY29kZXJfa2lsbHN3aXRjaCIpKXt2YXIgbj10aGlzLk47dHJ5e2xldCBiPU0wKCk7dmFyIFc9STgoYik7dmFyIEQ9bmV3IFNrdChuZXcgYjEoVyksbmV3IHVvKFcpKX1jYXRjaChiKXt0aHJvdyBuPWIgaW5zdGFuY2VvZiBFcnJvcj9uZXcgZmYoIktFWV9DUkVBVElPTl9GQUlMRUQiLHtvcmlnaW5hbE1lc3NhZ2U6Yi5tZXNzYWdlfSk6bmV3IGZmKCJLRVlfQ1JFQVRJT05fRkFJTEVEIiksZy5YaihuKSxuO31uWzFdPUR9fX07dmFyIEozaT1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMudG9rZW49bjt0aGlzLk49Vzt0aGlzLm9ic2VydmVycz1bXTtuPW5ldyBnLnFpLkJyb2FkY2FzdENoYW5uZWwoYFBFUlNJU1RFTlRfRU5USVRZX1NUT1JFX1NZTkM6JHtNMCgpfWApO24ub25tZXNzYWdlPXRoaXMuSi5iaW5kKHRoaXMpO3RoaXMuY2hhbm5lbD1ufW9ic2VydmUobil7dGhpcy5vYnNlcnZlcnMucHVzaChuKTtyZXR1cm4oKT0+e3ZhciBXPXRoaXMub2JzZXJ2ZXJzLmluZGV4T2Yobik7Vz49MCYmdGhpcy5vYnNlcnZlcnMuc3BsaWNlKFcsMSl9fUoobil7UGUodGhpcyxuLmRhdGEpfW1BKCl7dGhpcy5jaGFubmVsLmNsb3NlKCl9fSx0NTt2YXIgbXpiPWcud0QoKCk9PntpZih3aW5kb3cuTWVkaWFTb3VyY2UmJnR5cGVvZiB3aW5kb3cuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkPT09ImZ1bmN0aW9uIilyZXR1cm4gd2luZG93Lk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDA5LjAwLjUxLjA4LjAxLjAxLjAxLjAxLjAwIicpO2lmKHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2UmJnR5cGVvZiB3aW5kb3cuTWFuYWdlZE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZD09PSJmdW5jdGlvbiIpcmV0dXJuIHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCd2aWRlby93ZWJtOyBjb2RlY3M9InZwMDkuMDAuNTEuMDguMDEuMDEuMDEuMDEuMDAiJyk7dmFyIG49Zy5ycigieXQud2ViLmNvbnRyaWIuaW5uZXJ0dWJlLnJlcXVlc3RzLndhdGNoX3VpLnV0aWxzLnZpZGVvRWxlbWVudF8iKTtufHwobj1nLnpGKCJWSURFTyIpLGcuR2IoInl0LndlYi5jb250cmliLmlubmVydHViZS5yZXF1ZXN0cy53YXRjaF91aS51dGlscy52aWRlb0VsZW1lbnRfIiwKbikpO3JldHVybiEhKG4mJm4uY2FuUGxheVR5cGUmJm4uY2FuUGxheVR5cGUoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMC41MS4wOC4wMS4wMS4wMS4wMS4wMCInKSl9KTt2YXIgTnM9eVcoKT8hMDp0eXBlb2Ygd2luZG93LmZldGNoPT09ImZ1bmN0aW9uIiYmd2luZG93LlJlYWRhYmxlU3RyZWFtJiZ3aW5kb3cuQWJvcnRDb250cm9sbGVyJiYhZy5SZz8hMDohMTt2YXIgS0hTPWNsYXNzIGV4dGVuZHMgUEN7Y29uc3RydWN0b3IoKXtzdXBlcigpfVcoKXtyZXR1cm4gcXlqfU4obil7cmV0dXJuIGcudyhuLGcuSVEpfHxnLncobixUZSl8fGcudyhuLFZ4Yil9Tygpe3JldHVybiEwfVgobil7aWYoKGcubCgia2V2bGFyX2NhY2hlX29uX3R0bF9wbGF5ZXIiKXx8Zy5sKCJtd2ViX2VuYWJsZV9zaG9ydHNfaW5uZXJ0dWJlX3BsYXllcl9wcmVmZXRjaCIpfHxnLmwoIndlYl9zaG9ydHNfcHJlZmV0Y2hfc2VydmljZV9lbmFibGVkIil8fGcubCgiZW1iZWRzX2VuYWJsZV9wcmVmZXRjaF92aWFfcmVzb2x2ZV91cmwiKSkmJihuPXRoaXMuTihuKSkmJm4udmlkZW9JZCl7dmFyIFc9e3ZpZGVvSWQ6bi52aWRlb0lkfTtuLnBsYXlsaXN0SWQmJihXLnBsYXlsaXN0SWQ9bi5wbGF5bGlzdElkKTtuLnBsYXllclBhcmFtcyYmKFcucGFyYW1zPW4ucGxheWVyUGFyYW1zKTtyZXR1cm4geUgoInBsYXllciIsVyl9fUsobil7cmV0dXJuIG4uY29udGVudFBsYXliYWNrQ29udGV4dD8udmlzPT09CjI/IldBVENIX0ZVTExfU0NSRUVOIjoiV0FUQ0gifUoobixXLEQpe2lmKGcubCgiZW5hYmxlX2ludGVyc3RpdGlhbF9lbnRpdHlfY2hlY2siKSYmVy52aWRlb0lkKWZvcih2YXIgYiBvZlsiQ09OVEVOVF9DSEVDS19SRVFVSVJFRCIsIkFHRV9DSEVDS19SRVFVSVJFRCJdKTtXLnZpZGVvSWQmJihuLnZpZGVvSWQ9Vy52aWRlb0lkKTtXLnBsYXlsaXN0SWQmJihuLnBsYXlsaXN0SWQ9Vy5wbGF5bGlzdElkKTtXLmluZGV4IT09dm9pZCAwJiYobi5wbGF5bGlzdEluZGV4PVcuaW5kZXgrMSk7Vy5wbGF5ZXJQYXJhbXMmJihuLnBhcmFtcz1XLnBsYXllclBhcmFtcyk7InN0YXJ0VGltZVNlY29uZHMiaW4gVyYmVy5zdGFydFRpbWVTZWNvbmRzJiYoZy5sKCJlbmFibGVfcGxheWVyX3JlcXVlc3RfYnVpbGRlcl9zdGFydF90aW1lX2Zsb29yIik/bi5zdGFydFRpbWVTZWNzPU1hdGguZmxvb3IoVy5zdGFydFRpbWVTZWNvbmRzKTpuLnN0YXJ0VGltZVNlY3M9Vy5zdGFydFRpbWVTZWNvbmRzKTtELmNvbnRlbnRQbGF5YmFja0NvbnRleHQmJgoobi5wbGF5YmFja0NvbnRleHQ9e2NvbnRlbnRQbGF5YmFja0NvbnRleHQ6RC5jb250ZW50UGxheWJhY2tDb250ZXh0fSk7RC5wcmVmZXRjaFBsYXliYWNrQ29udGV4dCYmKG4ucGxheWJhY2tDb250ZXh0PXsuLi5uLnBsYXliYWNrQ29udGV4dCxwcmVmZXRjaFBsYXliYWNrQ29udGV4dDpELnByZWZldGNoUGxheWJhY2tDb250ZXh0fSxuLmNvbnRleHQucmVxdWVzdHx8KG4uY29udGV4dC5yZXF1ZXN0PXt9KSxuLmNvbnRleHQucmVxdWVzdC5pc1ByZWZldGNoPSEwKTtuLnBsYXliYWNrQ29udGV4dHx8KG4ucGxheWJhY2tDb250ZXh0PXt9KTtiPW16YigpO24ucGxheWJhY2tDb250ZXh0LmRldmljZVBsYXliYWNrQ2FwYWJpbGl0aWVzPXtzdXBwb3J0c1ZwOUVuY29kaW5nOiEhYixzdXBwb3J0WGhyOk5zfTtELm92ZXJyaWRlTXV0ZWRBdFN0YXJ0JiYobi5vdmVycmlkZU11dGVkQXRTdGFydD1ELm92ZXJyaWRlTXV0ZWRBdFN0YXJ0KTtuLnJhY3lDaGVja09rPSEhVy5yYWN5Q2hlY2tPazsKbi5jb250ZW50Q2hlY2tPaz0hIVcuY29udGVudENoZWNrT2s7Zy5sKCJjYXB0aW9uc19wcmVmc19raWxsc3dpdGNoIil8fChEPShEPWcuWkkoInl0LXBsYXllci1jYXB0aW9uLWxhbmd1YWdlLXByZWZlcmVuY2VzIikpP0Q6W10sVz1nLmwoIndlYl9lbmFibGVfcGxheWVyX3JlcXVlc3RfY2FwdGlvbnNfbGFzdF9sYW5ndWFnZV9vbmx5IiksRD8ubGVuZ3RoJiYoRD1XP1tELmF0KC0xKV06RCxuLmNhcHRpb25QYXJhbXM9e3ZpZXdlclNlbGVjdGVkQ2FwdGlvbkxhbmdzOkR9KSl9VihuKXtuPXRoaXMuWChuKTt2YXIgVztuJiYoVz17SG46e1JMOm59fSk7Zy5sKCJ3ZWJfbG9nX3BsYXllcl93YXRjaF9uZXh0X3RpY2tzIikmJihXPVd8fHt9LFcuTGE9InBzX3MiLFcuUlY9InBzX3IiKTtyZXR1cm4gV319O0tIU1tnLkxYXT1bTnRNXTt2YXIgaUI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW4ucmVzcG9uc2VDb250ZXh0Py5zdGF0ZVRhZ3N9fTt2YXIgd049Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59aGFuZGxlUmVzcG9uc2UobixXKXtpZighVyl0aHJvdyBFcnJvcigicmVxdWVzdCBuZWVkcyB0byBiZSBwYXNzZWQgaW50byBTdG9yZVJlc3BvbnNlUHJvY2Vzc29yU2VydmljZSIpO3VCKHRoaXMsbixXLmNvbmZpZz8uSG4/LlJMKX19O3dOW2cuTFhdPVtCZV07dmFyIEY4PW5ldyBnLkFMKCJTVE9SRV9SRVNQT05TRV9QUk9DRVNTT1JfVE9LRU4iKTt2YXIgbzg9Y2xhc3MgZXh0ZW5kcyBnLlF4e2NvbnN0cnVjdG9yKG4sLi4uVyl7c3VwZXIobixXKTt0aGlzLmVycm9yVHlwZT0xO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciBUcj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1hc3luYyBmZXRjaChuLFcsRCxiKXtuPVNzWih0aGlzLG4sVyk7dHJ5e2xldCB2PWF3YWl0IGZldGNoKG4pO2lmKGImJnYub2smJnYuYm9keSYmdHlwZW9mIHYuYm9keS5nZXRSZWFkZXI9PT0iZnVuY3Rpb24iKXtsZXQgaz12LmNsb25lKCkuYm9keS5nZXRSZWFkZXIoKSx7dmFsdWU6aH09YXdhaXQgay5yZWFkKCk7ay5jYW5jZWwoKS5jYXRjaCgoKT0+e30pOwppZihoJiZoWzBdPT09OTEpe2xldCB4PXYuYm9keS5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO3JldHVybiBkTih0aGlzLHgsbmV3IGFzLFtdLGIpfX1yZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVSZXNwb25zZSh2LEQpfWNhdGNoKHYpe2lmKGcuR3EodiksRD8uTGQmJnYgaW5zdGFuY2VvZiBvOCYmdi5lcnJvclR5cGU9PT0xKXRocm93IHY7fX1oYW5kbGVSZXNwb25zZShuLFcpe3ZhciBEPW4udGV4dCgpLnRoZW4oYj0+e2lmKFc/LmhQJiZuLm9rKXJldHVybiBkRyhXLmhQLGIpO2I9Yi5yZXBsYWNlKCIpXX0nIiwiIik7aWYoVz8uTGQmJmIpdHJ5e3ZhciB2PUpTT04ucGFyc2UoYil9Y2F0Y2goayl7dGhyb3cgbmV3IG84KCJKU09OIHBhcnNpbmcgZmFpbGVkIGFmdGVyIGZldGNoIik7fXJldHVybiB2Pz9KU09OLnBhcnNlKGIpfSk7Cm4ucmVkaXJlY3RlZHx8bi5vaz90aGlzLk4mJnRoaXMuTi5zdWNjZXNzKCk6KHRoaXMuTiYmdGhpcy5OLm9ZKCksRD1ELnRoZW4oYj0+e2cuR3EobmV3IGcuUXgoIkVycm9yOiBBUEkgZmV0Y2ggZmFpbGVkIixuLnN0YXR1cyxuLnVybCxiKSk7cmV0dXJuey4uLmIsZXJyb3JNZXRhZGF0YTp7c3RhdHVzOm4uc3RhdHVzfX19KSk7CnJldHVybiBEfX07VHJbZy5MWF09W2cuaHAobmV3IGcuQUwoIk5FVFdPUktfU0xJX1RPS0VOIikpXTt2YXIgenI7dmFyIERZcj1uZXcgZy5xTSgicGFyYWxsZWxDb21tYW5kIik7dmFyIHZuTT1uZXcgZy5xTSgicGVyZm9ybU9uY2VDb21tYW5kIik7dmFyIGI4Yj1uZXcgZy5xTSgic2VyaWFsQ29tbWFuZCIpO3ZhciB2UT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1iaW5kSW5uZXJ0dWJlQ2hhbGxlbmdlRmV0Y2hlcihuKXt0aGlzLk4uYmljZihuKX1yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhuKXt0aGlzLk4uYmNyKG4pfWdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCl7cmV0dXJuIHRoaXMuTi5ibGMoKX19O3ZhciBpaEM9W10saGo9KDAsZy5IeClgaHR0cHM6Ly9zdGF0aWMuZG91YmxlY2xpY2submV0L2luc3RyZWFtL2FkX3N0YXR1cy5qc2AsazU9ITE7dmFyIGlEPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5KPW47dGhpcy5OPVd9fSxXREM9W25ldyBpRCgiYi5mXyIsMCksbmV3IGlEKCJqLnNfIiwyKSxuZXcgaUQoInIuc18iLDQpLG5ldyBpRCgiZS5oXyIsNiksbmV3IGlEKCJpLnNfIiw4KSxuZXcgaUQoInMudF8iLDEwKSxuZXcgaUQoInAuaF8iLDEyKSxuZXcgaUQoInMuaV8iLDE0KSxuZXcgaUQoImYuaV8iLDE2KSxuZXcgaUQoImEuYl8iLDE4KSxuZXcgaUQoImEub18iKSxuZXcgaUQoImcub18iLDIyKSxuZXcgaUQoInAuaV8iLDI0KSxuZXcgaUQoInAubV8iKSxuZXcgaUQoIm4ua18iLDIwKSxuZXcgaUQoImkuZl8iKSxuZXcgaUQoImEuc18iKSxuZXcgaUQoIm0uY18iKSxuZXcgaUQoIm4uaF8iLDI2KSxuZXcgaUQoIm8ucF8iKSxuZXcgaUQoIm0ucF8iLDI4KSxuZXcgaUQoIm8uYV8iKSxuZXcgaUQoImQucF8iKSxuZXcgaUQoImUuaV8iKV0ucmVkdWNlKChuLFcpPT57bltXLkpdPVc7cmV0dXJuIG59LHt9KTt2YXIgTmU9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMubmV0d29yaz1uO3RoaXMub3B0aW9ucz1XO3RoaXMuWD1EO3RoaXMuVz0wO3RoaXMuTj1udWxsO3RoaXMuSj1uZXcgcW5pO1cuUHU/ZXQodGhpcyxvbU0odGhpcykpOlcucHJlbG9hZCYmZXQodGhpcyxuZXcgUHJvbWlzZShiPT57Zy5jQigwLCgpPT57Yih0aih0aGlzKSl9LDApfSkpfWFzeW5jIHlmKCl7cmV0dXJuISFhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuTiwKbnVsbF0pfWFzeW5jIGRRKG4sVyxEKXt0aGlzLk49PT1udWxsJiZldCh0aGlzLHRqKHRoaXMpKTt2YXIgYj0hMSx2PXt9O3JldHVybiBQcm9taXNlLnJhY2UoWyhhc3luYygpPT57dGhpcy5vcHRpb25zLkZoJiZ0aGlzLm9wdGlvbnMuUHUmJmF3YWl0IChhd2FpdCB5M3IoKSk/LmNoZWNrRm9yUmVmcmVzaCgpO3ZhciBrPWF3YWl0IHRoaXMuTjt2LmNoYWxsZW5nZT1rLmNoYWxsZW5nZTtpZihrLk8xKXt2YXIgaD17YzprLmNoYWxsZW5nZSxlOm4sLi4uV307dHJ5e2I9ITA7bGV0IHg7KHg9YXdhaXQgay5PMS5zbmFwc2hvdCh7d186aH0pKT92LndlYlJlc3BvbnNlPXg6di5lcnJvcj0iQVRURVNUQVRJT05fRVJST1JfVk1fTk9fUkVTUE9OU0UifWNhdGNoe3YuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX0lOVEVSTkFMX0VSUk9SIn19ZWxzZSJjMWEiaW4gay5SUiYmKHYuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PVF9JTklUSUFMSVpFRCIpO249PT0iRU5HQUdFTUVOVF9UWVBFX1BMQVlCQUNLIiYmCihrPWsuUlIsaD17fSxrLmM2YSYmKGgucmVwb3J0aW5nU3RhdHVzPVN0cmluZyhOdW1iZXIoay5jKV5MYygpKSksay5jNmImJihoLmJyb2FkU3BlY3RydW1EZXRlY3Rpb25SZXN1bHQ9U3RyaW5nKE51bWJlcihrLmMpXk51bWJlcihnLkFyKCJDQVRTVEFUIiwwKSkpKSx2LmFkYmxvY2tSZXBvcnRpbmc9aCk7cmV0dXJuIHZ9KSgpLApUR2goRCwoKT0+e3ZhciBrPU9iamVjdC5hc3NpZ24oe30sdik7YiYmKGsuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiKTtyZXR1cm4ga30pXSl9fTt2YXIganhTPVsiQVBQX1NUQVRFIiwiUEkiXTt2YXIga3ZNPVszNjExLDI3Njg2LDIyMTA1OCw4NTAxMywyMzQ2MiwyNDExODcsMTU3NTU3LDQyMDE2LDI2OTI2LDUxMjM2LDc5MTQ4LDUwMTYwLDc3NTA0LDMxMDI4MSwxNTM1ODcsODc5MDcsMTg2MzAsMTc3MDE4LDE3NzAyMyw1NDQ0NSwzMjE2NjYsMzI2MzUzLDMyNjM1NCw4MDkzNSwxNTIxNzIsMTg0NTUzLDEwNTY3NSwxNTA3MjMsMzc1MjEsMTQ3Mjg1LDQ3Nzg2LDIzMTI1NSwyMzEyNTQsMjMxMjU4LDIzMTI1OSw5ODM0OSwyMzcyOTksMTY4MjcxLDE2ODk1NCwxNjgyNzcsMTY4MjczLDE2ODI3MCwxMjM2OTUsMjcyMDE4LDMzODQ5NywyMjY5ODcsMjI2OTkwLDIyNjk4OCw2ODI3LDI5NDM0LDI1NTAxMCwxNzEzODgsMjQ0MTg5LDIzNjIwOCw3MjgyLDEyNDQ0OCwyOTk5MDMsMjk5ODk3LDI5OTkwNCwyOTk5MDEsMjk5ODk5LDI5OTkwMiwyOTk5MDAsMjk5ODk4LDE5NjA4OCwyNTA4OTcsMTk4MTA0LDMyMjc2LDE5NTExNSwxOTUxMTQsNzYyNzgsMjAwNjM1LDIzMDU5NCwxNDc4NjgsCjE0Nzg2OSwyNzYyNDMsOTM5MTEsMjc0MTg4LDI3NjY1MSwzMTM2ODAsMTA2NTMxLDI1NzIzNCwyNTI1OTgsMjUyNTk3LDI1MjYwMCwyNTI1OTksMjUyNTk2LDIyNTAzMSwxNzc4NDMsMjcyNTksMjcyNjIsMjcyNjMsMjE3NTksMjgzNjcwLDE2MDg2NiwyMDQyNDksMjIyOTAwLDIwNDI1MCwxODA2MjYsMTc3OTU5LDE3Nzk1NywxODA2MjgsMjA1NzE2LDE5Nzg3OCwyNzM3NjYsMTcxMjQzLDE2MDc4OSwxNzEyNDQsMTcxMjQxLDE3MTI0NSwxNzEyNDIsMjI1NTYwLDE4MDYyNywxNzc5NjAsMjMxNTg5LDE3Nzk1OCwxODA2MjksMjA1NzE3LDE5Nzg3OSwxNzc1NjUsMjEyNTczLDIxMDcwOSw5OTQ0MTIsMjMwNjg0LDIyOTgwMSwyMzA2ODUsMzM0MzEwLDMzNDMxMSwzMzQzMTIsMTk3MzM3LDIwOTAxMCwxOTczMzYsMTk3MzM4LDE5ODYxOCwzMDA4ODQsMTc1NDkyLDE5ODA1MiwxOTgwNTEsMTk3ODUyLDE5Nzk3NiwzMTczNzcsMTc1NDkzLDE3NTQ5NCwxNzU0OTUsMTg5MjU0LDE3NTQ5NiwxNzU0OTcsCjM4NDA4LDE3NTQ5OCwxNzU1MDMsMTc1NTA0LDE3NTUwNSwxNzU1MDYsMTc1NTA3LDE3NTUwOCw4MDYzNyw2ODcyNywyMDY5MzMsMjA3OTQ0LDIwNjkzNCwzMDMxMjMsMjA2OTI5LDIyMTU3NSw2ODcyOCwyMjE1NzYsODAzNTMsODAzNTYsMzA4MDMzLDI0OTEwNywxODA2MzUsNzQ2MTAsNDU3MDcsODM5NjIsODM5NzAsNDY3MTMsMTY2NTkxLDg5NzExLDc0NjEyLDIxMzgwOSwxNzk2MDcsMjQ1MDA2LDE1NTc5Miw5MzI2NSw3NDYxMSwxMzEzODAsMTI4OTc5LDEzOTMxMSwxMjg5NzgsMTMxMzkxLDEwNTM1MCwxMzkzMTIsMzMzNjM3LDEzNDgwMCwxMzEzOTIsMTEzNTMzLDIyOTI5OCw5MzI1Miw5OTM1Nyw5NDUyMSwxMTQyNTIsMTEzNTMyLDk0NTIyLDk0NTgzLDIwMjM3MSw4OEUzLDEzOTU4MCw5MzI1Myw5MzI1NCw5NDM4Nyw5NDM4OCw5MzI1NSw5NzQyNCw3MjUwMiwyMTk4NjgsMjEyOTkxLDExMDExMSw3NjAxOSwxMTcwOTIsMTE3MDkzLDg5NDMxLDE5MTgzMSwxMTA0NjYsMjMxMzQ2LAo3NzI0MCw2MDUwOCwxODYwOTEsMTQ4MTIzLDE0ODEyNCwxMzc0MDEsMTM3NDAyLDEzNzA0Niw3MzM5MywyNDY3NzYsMTEzNTM0LDI3NjIwMCw5MjA5OCwxMzEzODEsODQ1MTcsODM3NTksMzA5NTgwLDIzMDY3NiwyNDkxODMsMjMwNjc5LDIzMDY3OCwyMzA2NzcsMjMwNjgxLDIzMDY4MCwxNjI3MTEsMjM1MjM0LDE2MjcxMiw4MDM1Nyw5OTQ0MTEsMjQzMzE1LDMxMzUwNiwzMjE5NjQsODYxMTMsNzI1OTgsMTY4NDEzLDcyNzMzLDEwNzM0OSwxMjQyNzUsMTE4MjAzLDIwMDQxMCwxMzMyNzUsMTYwMTU3LDE1MjU2OSwxNTY2NTEsMTMzMjc0LDE2MDE1OSwxNjAxNTgsMTMzMjcyLDEzMzI3MywxMzMyNzYsMTQ0NTA3LDE0MzI0NywxNzU5OTQsMTU2NjUyLDE0MzI0OCwxNDMyNDksMTQzMjUwLDE0MzI1MSwxODk4OTIsMTg5ODk0LDE4OTg5MywxNTY2NTMsMjE0MjM2LDE0NDQwMSwxMTc0MzEsMTMzNzk3LDIyNTEzNywyNzM5MDUsMjIyNjEyLDIyMjYxMywxNTM5NjQsMjAxMTMzLDIwMTEzNCwKMjAxMTM1LDIwMTEzNiwyMDExMzcsMTI4NTcyLDIwMDQxMSwyMDA0MTIsMTkwMzM3LDEzMzQwNSwxMTc0MjksMTE3NDMwLDE3Nzk1MCwxNzQ3MzQsMTc3OTUxLDIwMTEzOCwyMDExMzksMjAxMTQwLDIwMTE0MSwyMDExNDIsMTE3NDMyLDE3Mzk5NiwxNzM5OTUsMTc0OTUzLDE3Mzk5NCwxNzM5OTcsMTIwMDgwLDExNzI1OSwxNzg1NDYsMjk3NzUyLDE5Nzg5MSwxNTY2NTUsMTU2NjU0LDEyMTY5MiwyMTE0MTQsMjExNDExLDIxMTQxMiwyMTE0MTMsMjExNDAzLDE4NDg0NiwxODU5OTMsMzM1MDQ4LDE0NTY1NiwxNTY2NTYsMTQ1NjU1LDE0NTY1MywxNDU2NTQsMTQ1NjU3LDEzMjk3MiwxMzMwNTEsMTMzNjU4LDEzMjk3MSwzMzY3MjgsOTc2MTUsMTgxMjYyLDE5MDc2MiwyNTAzNDQsMjU0MDI3LDE0MzM1OSwxNDMzNTYsMTQzMzYxLDE0MzM1OCwxNDMzNjAsMTQzMzU3LDE0MjMwMywxNDMzNTMsMjgyMTU5LDE3Mjg1OSwxNDMzNTQsMTQ0NDc5LDE0MzM1NSwzMTQwMiwxODE1OTAsMTMzNjI0LAoxNDY0NzcsMTMzNjIzLDEzMzYyMiwxMzM2MjEsMTkyNDE4LDg0Nzc0LDMwNDc3NiwxOTc5OTMsMjQxNDYwLDE2MDgwMSwxOTc5OTUsOTUxMTcsMTcyNzIxLDE1MDQ5Nyw5ODkzMCw5ODkzMSw5ODkzMiwzMzg1NzAsMzM4NDc0LDMzODQ3OCwzMzg0NzMsMTUzMzIwLDE1MzMyMSw0MzM0NywzMDUyNjgsMjQ5Mjk1LDIxMDAxNiwyMTAwMTcsMjYyNjg2LDIxMTg1MSwyMTE4NTIsMzA3MjE5LDIxMTg1MywzMjc4MTAsMTI5ODg5LDE5Nzg4OCwxOTc4ODksMTQ5MTIzLDIyMTk1OSwyMjE2MjcsMjIxOTU4LDQ1NDc0LDEwMDM1Miw5ODQ0MywxMTc5ODUsMzMzNzA4LDc0NjEzLDE1NTkxMSw3NDYxNCw2NDUwMiwxMzYwMzIsNzQ2MTUsNzQ2MTYsMTIyMjI0LDc0NjE3LDc3ODIwLDc0NjE4LDI2Mjk4OCwyNjI5ODksMjI2OTgxLDkzMjc4LDkzMjc0LDkzMjc1LDkzMjc2LDIwMDY4OCwyMDA2ODYsMjAwNjg3LDE5OTg0MSwyMjExMCwyOTQzMywxMzM3OTgsMTMyMjk1LDI4MTMzMiwxMjA1NDEsMjIyMTEyLAo4MjA0NywxMTM1NTAsNzU4MzYsNzU4MzcsMzAzODgyLDE5MjQwOSwyMDMyMjEsNDIzNTIsODQ1MTIsNzYwNjUsNzU5ODksMjA1OTExLDIwNTkxMiwyNTI2NDksMjA1OTEzLDI1MjY1MCwyNTI2NTEsNTE4NzksMTY2MjMsMzI1OTQsMjcyNDAsMzM4MTA5LDI5MzMyNCwzMjYzMyw3NDg1OCwzMDQxNTAsMjk3MDQ1LDI3NTE5OCwyNzE4ODQsMjIyOTMyLDI3OTExOSwzMTI1ODEsMjcxODg2LDIxMzkxNSwyNzUxOTksMzEwNzQ4LDIyNTIxNiwyNTEyNDQsMjU4MjUxLDIxODY3NCwyNTEyNjYsMjU4MjUwLDI1MTI2NSwzMDE2NjIsMjUxMjQ1LDI3MTg4NSwzMTU4MTgsMTU2OTk5LDM5NDUsMTY5ODksNDU1MjAsMjU0ODgsMjU0OTIsMjU0OTQsMjMyMTEzLDU1NzYwLDE0MDU3LDE4NDUxLDU3MjA0LDU3MjAzLDE3ODk3LDE4MTk4LDE3ODk4LDE3OTA5LDQzOTgwLDIyMTA1MywxOTU1MjksMTg5NjYwLDMwODA4OCwzMDY0NDgsMzA2NDQ3LDMwODA4NywzMDgwODYsNDYyMjAsMTE3MjEsMTQ3OTk0LDQ5OTU0LAo5NjM2OSwzODU0LDIxNzY0MCwxNTE2MzMsNTYyNTEsMjA1MTkyLDIxNjc5NywxNTkxMDgsMTgxNTY4LDIzNDc4OSwyNTYyNCwxNTIwMzYsMTY5MDYsOTk5OTksNjgxNzIsNDc5NzMsNzI3NzMsMjY5NzAsMjY5NzEsOTY4MDUsMTc3NTIsMjgyMTgxLDI3ODkyNiw3MzIzMywyMDU5MjMsMTA5NTEyLDIyMjU2LDE0MTE1LDIyNjk2LDIzNDQwOSwyMzQ0MDgsODkyNzgsODkyNzcsMTk1NzQ1LDEwOTUxMyw0MzI3OCw0MzQ1OSw0MzQ2NCw4OTI3OSw0MzcxNyw1NTc2NCwyMjI1NSwxNDc5MTIsODkyODEsNDA5NjMsNDMyNzcsNDM0NDIsOTE4MjQsMjgzODk4LDEyMDEzNywxODYzNTAsMTg2MzUxLDI1NjY5MCwyNjQzNDksMjY0MzUxLDI2NDM1MCwyNjQzNTIsMjExMDI2LDI1MDg5Niw5NjM2NywzNjg1MCw3MjY5NCwzNzQxNCwzNjg1MSwxMjQ4NjMsMTIxMzQzLDczNDkxLDU0NDczLDE2Njg2MSw0MzM3NSw0NjY3NCwzMDI2MzEsMzMxNDczLDI0MjUyOCwxNDM4MTUsMTM5MDk1LDE0NDQwMiwxNDk5NjgsCjE0OTk2OSwzMjQ3Myw3MjkwMSw3MjkwNiw1MDYxMiw1MDYxMyw1MDk0Miw4NDkzOCw4NDk0Myw4NDkzOSw4NDk0MSw4NDk0NCw4NDk0MCw4NDk0MiwzNTU4NSw1MTkyNiw3OTk4MywxODkyMSw1Nzg5Myw0MTE4MiwxMzU3MzIsMzM0MjQsMjIyMDcsMzYyMjksMjIyMDYsMjIyMDUsNDQ3NjMsMzM0MjcsNjc3OTMsMjIxODIsMzcwOTEsMzQ2NTAsNTA2MTcsMjIyODcsMjUxNDQsOTc5MTcsMjIwMTIyLDYyMzk3LDE1MDg3MSwxNTA4NzQsMTI1NTk4LDEzNzkzNSwzNjk2MSwxMDgwMzUsMzIzNDkzLDI3NDI2LDI3ODU3LDI3ODQ2LDI3ODU0LDY5NjkyLDYxNDExLDM5Mjk5LDM4Njk2LDYyNTIwLDM2MzgyLDEwODcwMSwxOTI2ODIsMjc5NTMxLDUwNjYzLDM2Mzg3LDE0OTA4LDM3NTMzLDEwNTQ0Myw2MTYzNSw2MjI3NCwxNjE2NzAsMTMzODE4LDE4MjExOSw2NTcwMiw2NTcwMyw2NTcwMSwzMjA0NjQsNzYyNTYsMjk4MTU3LDI2Mzg0MywzMTUyMzQsMTk2MDc1LDE5NDc2OCwyNTIyMDEsMTk0NzY5LAoxOTE4ODUsMjgxNDgwLDIzMzYzNCwyNjU4MTAsMTk0NzcwLDI5NjkzMywxOTUzNTAsMzI3Mzg1LDMyNDU4NiwzMDE2MDcsMTk1MzQ5LDE5NDc3MSwyOTMwNDEsMzAxMTIxLDI5MzA0MiwyOTMwNDMsMzAxMTE2LDE2NjM4MiwzNzY3MSw0OTk1MywyMjA2NjksNjAwMDAxLDYwMDAwMiw2RTUsMzM1MTM0LDI0OTIyOSwyMTM3NzQsMjA0NTcyLDE5MTM4OSwyNzIyNTQsMjcyMjUzLDI1MzgzMCwyNTM4MzEsMjUzODMyLDI3MjI1MiwyNTM4MzMsMjUzODM0LDIwNDU3NCwxOTEzOTAsMTc5NTU2LDIzODU5NiwyMTI2NjEsMTkxMzkyLDE5NzgyNiwxOTEzOTMsMjA0NTczLDM2MjE2LDI4MjM3LDI0MTIxMiwyNzIwNDksMTczNzE4LDM5NTUzLDE5MjU0NywyOTIyMiwzMDQ4NDUsMjYxMDcsMjQxMjExLDM4MDUwLDI2MTA4LDI3NTgxMCwxMjA3NDUsMjYxMDksMjYxMTAsNjY4ODEsMjgyMzYsMTQ1ODYsMjk3NjcyLDE2MDU5OCw1NzkyOSwyMjY3MzYsNzQ3MjMsNDQwOTgsMTczNjg5LDQ0MDk5LDIzNTI4LAo2MTY5OSwxMzQxMDQsMTM0MTAzLDE5ODMxMyw1OTE0OSwxODEwMTMsMjc4MzA2LDI4MjQ3MiwyNzc4NDgsMTczMTkxLDE3MzE5MiwxNzMxOTMsMTAxOTUxLDE3MTUwMiwxOTYwNDMsMTk4MzA1LDk3MzQ2LDExODA1MSw5NTEwMiw2NDg4MiwxMTk1MDUsNjM1OTUsMjk0MTE5LDI1NzI2OCw2MzM0OSwyODExMjcsMjQwNTUzLDk1MTAxLDc1MjQwLDI3MDM5LDY4ODIzLDIxNTM3LDgzNDY0LDc1NzA3LDI1MjkwNCwxNzAyMTUsMjIzMDMzLDgzMTEzLDEwMTk1MiwxMDE5NTMsNzk2MTAsMTI1NzU1LDI0NDAyLDI0NDAwLDMyOTI1LDE5MzQwNiw1NzE3MywxODMzNTEsMTU2NDIxLDEyMjUwMiwxNDUyNjgsMTM4NDgwLDY0NDIzLDY0NDI0LDMzOTg2LDEwMDgyOCwxMjkwODksMjk5NTQxLDIxNDA5LDI4MjIxOCwyOTk1MDYsMzMzOTU2LDI5OTU0MCwyOTk1MDcsMjk5NTA5LDI5OTUzOSwyOTk1MDgsMjk5NTEwLDE4NTYxMiwyMjI4MjUsMzIzMzMxLDI0NTM2NiwxMzUxNTUsMTM1MTU2LDEzNTE1NywKMTM1MTU4LDE1ODIyNSwxMzUxNTksMTM1MTYwLDE2NzY1MSwxMzUxNjEsMTM1MTYyLDEzNTE2MywxNTgyMjYsMTU4MjI3LDEzNTE2NCwxMzUxNjUsMTM1MTY2LDExMDcwLDExMDc0LDE3ODgwLDI3MDU2MCwzMDcwOSwzMDcwNywzMDcxMSwzMDcxMCwzMDcwOCwxODUyMTMsMTg1MjczLDE0NjE0Myw2MzY0OCw2MzY0OSwyMjEwNTYsMjY0NDkwLDIxMTE4OSwxMTEwNTksMjExMTg4LDU3NTQsMjY0NDkxLDIwNDQ1LDIzMzQ3MSwxNTEzMDgsMzEzNzUwLDE1MTE1MiwyMjgwNjcsMTMwOTc1LDEzMDk3NiwyNDcyNDQsMjcxNjIyLDI3MTgxMywyNjEyMTAsMjEwODE1LDI5NTA2OSwyNDYxMjcsMzE2ODU4LDI0NTI1NiwyNDQ5NTAsMTkxOTI1LDE2NzYzNywyMzQ1NDUsMTk3MTk2LDMwMjczNSwyMTQyOTUsMTEwMzg2LDIyMTA1NCwyNzM5NjAsMjgyMTExLDMxMjI5MCwxMTM3NDYsMzI1NTkzLDI2ODg4Niw2NjU1NywxODMyMTUsMTczMTAsMjg2MzEsMjAxOTM1LDIxNTg5LDI0MjAzNiwyMzgzNTEsCjE2NDgxNywxNjgwMTEsMTU0OTQ2LDY4MDEyLDE2MjYxNyw2MDQ4MCwxODQ0MzEsMTM4NjY0LDI5NDA4OSwyNDk4MjcsMTk0RTMsMTQxMTIxLDE2NDUwMiwzMTU3MSwxOTUwMDIsMjA2NzkzLDE0MTk3OCwyMzM5ODUsMjUwODk1LDI1NDA1MiwyNTQwNTMsMjU0MDU0LDI1NDA1MSwyNTQwNTAsMjU0MDU1LDE1MDEwNSwzMDQxNjksMTUwMTA2LDE1MDEwNywxNTAxMDgsNzY5ODAsNDE1NzcsNDU0NjksMzg2NjksMTM3NjgsMTM3NzcsMTQxODQyLDYyOTg1LDIxMzE5MCw0NzI0LDIyMzA1Miw1OTM2OSw0MzkyNyw0MzkyOCwxMjkyNCwxOTc4NTMsMTAwMzU1LDU2MjE5LDI3NjY5LDIwOTkyOCwxMDMzNywyMDM2NDgsMjAzNjQ5LDQ3ODk2LDMyNjkzNywxMjI2MjksMTg2MjA0LDIyMjgyNCwyNzU4NjksMzEyMjk1LDI3MTY3MywyNzQ2MzcsMzE3NDYyLDEzOTcyMywxMzk3MjIsMTIxMjU4LDI1Mzc4OSwyNTM3ODcsMjUzNzg2LDI1Mzc4OCwyNTM3OTAsMTA3NTk4LDEyNzk5MSw5NjYzOSwxMDc1MzYsCjEzMDE2OSwyMTY1MjIsMjk2MzE2LDk2NjYxLDE0NTE4OCwzMjA0MjgsMjEzOTA0LDI2OTM0Miw5NjY1OCwxMTY2NDYsMTU5NDI4LDE2ODYxMSwxNjg2MTIsMTIxMTIyLDIxOTg2Miw5NjY2MCwyODIyMDgsMTI3NzM4LDEyNzA4MywxNTUyODEsMTYyOTU5LDIyMDg4NiwyMjczNTYsMjQ4MDA3LDE2MzU2NiwzMDc2NDYsMTg2NjQxLDE0Nzg0MiwyNzM2NDYsMjczNjQ3LDIxNzkzMiwxMDQ0NDMsOTY2NTksMTQ3NTk1LDEwNjQ0MiwyNDcxNjIsMjMxNDkzLDIxMzQyNywyOTY4MTMsMjQ2NTc1LDE4MjQyMywxNjI3NzYsMjI4OTA4LDEzNDg0MCw2MzY2Nyw2MzY2OCw2MzY2OSwxMzA2ODYsMjQ4MzgxLDE0NzAzNiwyMzkwOTQsMjYyNzQzLDE4OTgxMCwyMzkwOTUsNzgzMTQsMTQ3Nzk5LDMwNTkxOSwzMDU5MjQsMjM3MTQ2LDE3NDA0OSwxNDg2NDksNTU3NjEsMTI3MDk4LDEzNDg0MSw5NjM2OCw2NzM3NCw0ODk5MiwxNDYxNzYsMTc2MTA1LDMyMzMyMSwzMjMzMjIsMjMzMDM1LDQ5OTU2LDI2NzY0NSwKMjc1NzgyLDE5MDE5MCwyMjU3MzksMzE5NjEsMjYzODgsMjM4MTEsNUU0LDEyNjI1MCw5NjM3MCwyMTA1NDksMzI5NDkwLDQ3MzU1LDQ3MzU2LDM3OTM1LDQ1NTIxLDMzMTUzNiwzMzE1MzQsMzMxNTM1LDMzMTUzMywyMTc2MCw4Mzc2OSw0OTk3Nyw0OTk3NCw5MzQ5Nyw5MzQ5OCwzNDMyNSwxNDA3NTksMTE1ODAzLDEyMzcwNywxMDAwODEsMzUzMDksMjM3NzA2LDY4MzE0LDI1NjAyLDEwMDMzOSwxNzA4NzMsMTQzNTE2LDI5OTI0NywxNzg5MjEsMjY4NTc0LDI1NDg4NCwyNTgyMzIsNTkwMTgsMTgyNDgsNTA2MjUsOTcyOSwzNzE2OCwzNzE2OSwyMTY2NywxNjc0OSwxODYzNSwzOTMwNSwxODA0NiwyMjEwNTcsMzAxODk3LDMwMTkwMCwyNjk5OTAsNTM5NjksODIxMyw5MzkyNiwyMjEwNTUsMjEwNTQyLDIxMjU1MiwxMDI4NTIsMTEwMDk5LDIyNjc4LDY5MDc2LDEzNzU3NSwxMzkyMjQsMTAwODU2LDIzNTc3MCwxNTQ0MzAsMjM1ODYxLDIwOTc1NywxNzczNiwzODMyLDE0NzExMSw1NTc1OSwKNjQwMzEsMjM0NzQ2LDkzMDQ0LDkzMDQ1LDI4MTMwMiwxNzA3MDEsMTcwNzAyLDE5NDc5NiwzNDM4OCwxNjc4NDEsMTcwNDE5LDE3NjU3LDE3NjU1LDM5NTc5LDM5NTc4LDE3MDQxMiw3NzQ0OCw4MTk2LDExMzU3LDY5ODc3LDgxOTcsMTY4NTAxLDE1NjUxMiwxNjE2MTMsMTU2NTA5LDIwODI3NCwxNjE2MTIsMTYxNjE0LDI2NzY5MiwyNjc4NTEsMjY3NTc3LDI3OTc1NSwyNjc2OTMsMjY3Njk0LDI2NzU3OCwyNjI4MDEsMzM0NDk2LDMzNTg0NCwyNzEyMTgsMjY2MTMxLDI2NjEzMiwyNjc5NzcsMjY3NTc5LDI2MjgwMCwyNjI3OTksMjYyODAyLDI2NzU4MCwyNjI3OTgsMjY3Njk1LDI2NzU4MSwyNzMyMzIsODIwMzldO3ZhciBtUVM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59aGFuZGxlUmVzcG9uc2UobixXKXtpZihXLmlucHV0Lm1hdGNoKExCKE40aCkpKXt2YXIgRD1uPy5lbmRwb2ludDtXPWcudyhELFRlKT8udW5zZXJpYWxpemVkUHJlZmV0Y2hEYXRhO2lmKEQmJlcpe249dGhpcy5OO3ZhciBiPShuZXcgc29iKS5YKEQpLHY9Zy53KFcsRCRyKTtsZXQgaz12Py5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMmJk51bWJlcih2Py5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMpPjA/TnVtYmVyKHY/LnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcyk6NjAwO3YmJmImJms+MCYmKHY9RWUodixrKSxuLnB1dChiLG5ldyBiaCh2KSkpO0Q9KG5ldyBLSFMpLlgoRCk7Vz1nLncoVyxhSncpO2I9Vz8ucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzJiZOdW1iZXIoVz8ucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzKT4wP051bWJlcihXPy5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMpOgo2MDA7VyYmRCYmYj4wJiYoVz1FZShXLGIpLG4ucHV0KEQsbmV3IGJoKFcpKSl9fX19O21RU1tnLkxYXT1bQmVdO25mKCIiLCJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkiKTtuZigiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX01BTlVBTF9ET1dOTE9BRFMiLCJtYWluRG93bmxvYWRzTGlzdEVudGl0eSIpO25mKCJET1dOTE9BRFNfTElTVF9FTlRJVFlfSURfU01BUlRfRE9XTkxPQURTIiwibWFpbkRvd25sb2Fkc0xpc3RFbnRpdHkiKTtuZigiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsInJlZnJlc2giKTtuZigiU01BUlRfRE9XTkxPQURTX0VOQUJMRUQiLCJzZXR0aW5nRW50aXR5Iik7dmFyIHd5aD1bInd3dy55b3V0dWJlLW5vY29va2llLmNvbSIsInd3dy55b3V0dWJlZWR1Y2F0aW9uLmNvbSIsInlvdXR1YmUuZ29vZ2xlYXBpcy5jb20iXSxPNng9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlPTE7dGhpcy5PMT1udWxsO3RoaXMuRGE9dm9pZCAwfWluaXRpYWxpemUobixXLEQsYil7dGhpcy5EYT1iO2lmKG4ucHJvZ3JhbSl7dmFyIHY7Yj1uLmludGVycHJldGVyVXJsPz9udWxsO24uaW50ZXJwcmV0ZXJTYWZlU2NyaXB0P3Y9Tk4obi5pbnRlcnByZXRlclNhZmVTY3JpcHQpOnY9bi5pbnRlcnByZXRlclNjcmlwdD8/bnVsbDtuLmludGVycHJldGVyU2FmZVVybCYmKGI9cHcobi5pbnRlcnByZXRlclNhZmVVcmwpLnRvU3RyaW5nKCkpO0Y0Yih0aGlzLHYsYixuLnByb2dyYW0sVyxEKX1lbHNlIGcuR3EoRXJyb3IoIkJMOkNJUCIpKX1pc0luaXRpYWxpemVkKCl7cmV0dXJuIHRoaXMuSigpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuc3RhdGV9aXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT0KMn1pbnZva2Uobj17fSl7cmV0dXJuIHRoaXMuSigpP3RoaXMuVyh7d186bn0pOm51bGx9ZGlzcG9zZSgpe3RoaXMuTihudWxsKTt0aGlzLnZWKDgpfUooKXtyZXR1cm4hIXRoaXMuTzF9VyhuKXtyZXR1cm4gdGhpcy5PMS5tNShuKX1OKG4pe2cuQ3AodGhpcy5PMSk7dGhpcy5PMT1ufXZWKG4pe3RoaXMuc3RhdGU9bn19O3ZhciBQQU09Y2xhc3MgZXh0ZW5kcyBPNnh7TihuKXtKaigpPy5iZ3ZtYSgpO2lmKG4pe2xldCBXPXtiZ3ZtYTpuLmRpc3Bvc2UuYmluZChuKSxiZ3ZtYjpuLnNuYXBzaG90LmJpbmQobiksYmd2bWM6bi5tNS5iaW5kKG4pfTtnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLFcpO2cueWooRD0+bi5zbmFwc2hvdChEKSl9ZWxzZSBnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLG51bGwpLGcuR2IoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsbnVsbCl9Sigpe3JldHVybiEhSmooKX1XKG4pe3JldHVybiBKaigpLmJndm1jKG4pfX07dmFyIFpMPXtBRF9NQVJLRVI6Inl0cC1hZC1wcm9ncmVzcyIsQ0hBUFRFUl9NQVJLRVI6Inl0cC1jaGFwdGVyLW1hcmtlciIsVElNRV9NQVJLRVI6Inl0cC10aW1lLW1hcmtlciJ9O3ZhciBzMz12b2lkIDA7dmFyIEgkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPW5ldyBTZXQ7dGhpcy5KPW5ldyBTZXQ7dGhpcy5qPW5ldyBNYXA7dGhpcy5jbGllbnQ9dm9pZCAwO3RoaXMuY3NuPW51bGx9VyhuKXt0aGlzLmNsaWVudD1ufU4oKXt0aGlzLmNsZWFyKCk7dGhpcy5jc249Zy5SdigpfWNsZWFyKCl7dGhpcy5YLmNsZWFyKCk7dGhpcy5KLmNsZWFyKCk7dGhpcy5qLmNsZWFyKCk7dGhpcy5jc249bnVsbH19O3ZhciBVMz1jbGFzc3tXKG4pe1BWKGZpKCkuVykuYmluZChmaSgpKShuKX1jbGVhcigpe1BWKGZpKCkuY2xlYXIpLmJpbmQoZmkoKSkoKX19O3ZhciBKWD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD1bXTt0aGlzLk89W107dGhpcy5LPW5ldyBNYXA7dGhpcy5UQz1uZXcgTWFwO3RoaXMuVj1bXTt0aGlzLmNKPVtdO3RoaXMuWD1uZXcgTWFwO3RoaXMuWT1uZXcgTWFwO3RoaXMuSj1uZXcgTWFwO3RoaXMuTj1uZXcgU2V0O3RoaXMuUyQ9bmV3IE1hcH1XKG4pe3RoaXMuY2xpZW50PW59YmQobixXPXt9KXtQVigoKT0+e3ZhciBEPWcudyhuPy5jb21tYW5kTWV0YWRhdGEscGopPy5yb290VmV8fGcudyhuPy5jb21tYW5kTWV0YWRhdGEsWnNyKT8uc2NyZWVuVmlzdWFsRWxlbWVudD8udWlUeXBlO2lmKEQpe3ZhciBiPWcudyhuPy5jb21tYW5kTWV0YWRhdGEsYk1yKTtpZihiPy5wYXJlbnRUcmFja2luZ1BhcmFtcyl7dmFyIHY9VFUoYi5wYXJlbnRUcmFja2luZ1BhcmFtcyk7aWYoYi5wYXJlbnRDc24pdmFyIGs9Yi5wYXJlbnRDc259ZWxzZSBXLmNsaWNrZWRWaXN1YWxFbGVtZW50P3Y9Vy5jbGlja2VkVmlzdWFsRWxlbWVudDpuLmNsaWNrVHJhY2tpbmdQYXJhbXMmJgoodj1UVShuLmNsaWNrVHJhY2tpbmdQYXJhbXMpKTthOntiPWcudyhuLGcuSVEpO3ZhciBoPWcudyhuLHpPdyk7aWYoYil7aWYoaD10WChiLCJWSURFTyIpKXtiPXt0b2tlbjpoLHZpZGVvSWQ6Yi52aWRlb0lkfTticmVhayBhfX1lbHNlIGlmKGgmJihiPXRYKGgsIlBMQVlMSVNUIikpKXtiPXt0b2tlbjpiLHBsYXlsaXN0SWQ6aC5wbGF5bGlzdElkfTticmVhayBhfWI9dm9pZCAwfVc9e2N0dEF1dGhJbmZvOmIscGFyZW50Q3NuOmssLi4uV307Zy5sKCJleHBlY3RhdGlvbl9sb2dnaW5nIikmJihXLmxvZ2dpbmdFeHBlY3RhdGlvbnM9Zy53KG4/LmNvbW1hbmRNZXRhZGF0YSxac3IpPy5sb2dnaW5nRXhwZWN0YXRpb25zfHx2b2lkIDApO21VKHRoaXMsRCx2LFcpfWVsc2UgZy5HcShuZXcgZy5ReCgiRXJyb3I6IFRyeWluZyB0byBjcmVhdGUgYSBuZXcgc2NyZWVuIHdpdGhvdXQgYSByb290VmVUeXBlIixuKSl9KSgpfWNsaWNrQ29tbWFuZChuLFcsRD0wKXtyZXR1cm4gZ25aKHRoaXMsbi5jbGlja1RyYWNraW5nUGFyYW1zLApXLEQpfXN0YXRlQ2hhbmdlZChuLFcsRD0wKXt0aGlzLnZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQoVFUobiksVyxEKX12aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkKG4sVyxEPTApe0Q9PT0wJiZ0aGlzLk4uaGFzKEQpP3RoaXMuTy5wdXNoKFtuLApXXSk6UCQodGhpcyxuLFcsRCl9blQobil7dmFyIFc9bi5jcG4sRD1TMih0aGlzLDApO2lmKEQubGVuZ3RoJiZEW0QubGVuZ3RoLTJdPy5jcG4hPT1XJiYoRD1nLlJ2KCksVyYmRCYmRCE9PSJVTkRFRklORURfQ1NOIikpe3ZhciBiO24uaXRjdCYmKGI9VFUobi5pdGN0fHwiIikpO2xldCB2PXt9O2cubCgid2ViX3BsYXliYWNrX2Fzc29jaWF0ZWRfbG9nX2N0dCIpJiZuLmtXJiYodi5jdHRBdXRoSW5mbz17dG9rZW46bi5rVyx2aWRlb0lkOm4udmlkZW9JZH0pO249e2NwbjpXLGNzbjpEfTtnLmwoIndlYl9wbGF5YmFja19hc3NvY2lhdGVkX3ZlIikmJmImJihGaihELGIpLG4ucGxheWJhY2tWZT1iLmdldEFzSnNvbigpKTtnLnpVKCJwbGF5YmFja0Fzc29jaWF0ZWQiLG4sdik7Yj1TMih0aGlzLDApO2JbYi5sZW5ndGgtMV0uY3BuPVd9fX07dmFyIEUzPWNsYXNze2ZldGNoKG4sVyxEKXt2YXIgYj1YT2IobixXLEQpO3JldHVybiBuZXcgUHJvbWlzZSgodixrKT0+e3ZhciBoPSgpPT57aWYoRD8uTGQpdHJ5e2xldCB4PXRoaXMuaGFuZGxlUmVzcG9uc2UobixiLnN0YXR1cyxiLnJlc3BvbnNlLEQpO3YoeCl9Y2F0Y2goeCl7ayh4KX1lbHNlIHYodGhpcy5oYW5kbGVSZXNwb25zZShuLGIuc3RhdHVzLGIucmVzcG9uc2UsRCkpfTsKYi5vbmVycm9yPWg7Yi5vbmxvYWQ9aDtiLnNlbmQoVy5ib2R5Pz9udWxsKX0pfWhhbmRsZVJlc3BvbnNlKG4sVyxELGIpe0Q9KER8fCIiKS5yZXBsYWNlKCIpXX0nIiwiIik7CnRyeXt2YXIgdj1KU09OLnBhcnNlKEQpfWNhdGNoKGspe2cuR3EobmV3IGcuUXgoIkpTT04gcGFyc2luZyBmYWlsZWQgYWZ0ZXIgWEhSIGZldGNoIixuLFcsRCkpO2lmKGI/LkxkJiZEKXRocm93IG5ldyBvOCgiSlNPTiBwYXJzaW5nIGZhaWxlZCBhZnRlciBYSFIgZmV0Y2giKTt2PXt9fVchPT0yMDAmJihnLkdxKG5ldyBnLlF4KCJYSFIgQVBJIGZldGNoIGZhaWxlZCIsbixXLEQpKSx2PXsuLi52LGVycm9yTWV0YWRhdGE6e3N0YXR1czpXfX0pO3JldHVybiB2fX07dmFyIFo2aj1jbGFzc3tzdGF0aWMgZ2V0SW5zdGFuY2UoKXt2YXIgbj1nLnJyKCJ5dGdsb2JhbC5zdG9yYWdlXyIpO258fChuPW5ldyBaNmosZy5HYigieXRnbG9iYWwuc3RvcmFnZV8iLG4pKTtyZXR1cm4gbn1hc3luYyBlc3RpbWF0ZSgpe3ZhciBuPW5hdmlnYXRvcjtpZihuLnN0b3JhZ2U/LmVzdGltYXRlKXJldHVybiBuLnN0b3JhZ2UuZXN0aW1hdGUoKTtpZihuLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2U/LnF1ZXJ5VXNhZ2VBbmRRdW90YSlyZXR1cm4gcWZTKCl9fTtnLkdiKCJ5dGdsb2JhbC5zdG9yYWdlQ2xhc3NfIixaNmopO3ZhciBqaVU9a08oInl0LXBsYXllci1sb2NhbC1tZWRpYSIse0tjOntpbmRleDp7dng6Mn0sbWVkaWE6e3Z4OjJ9LGNhcHRpb25zOnt2eDo1fX0sc2hhcmVkOiExLHVwZ3JhZGUobixXKXtXKDIpJiYoWnkobiwiaW5kZXgiKSxaeShuLCJtZWRpYSIpKTtXKDUpJiZaeShuLCJjYXB0aW9ucyIpO1coNikmJihVUihuLCJtZXRhZGF0YSIpLFVSKG4sInBsYXllcmRhdGEiKSl9LHZlcnNpb246NX0pO3ZhciBVeng9e2N1cGNha2U6MS41LGRvbnV0OjEuNixlY2xhaXI6Mixmcm95bzoyLjIsZ2luZ2VyYnJlYWQ6Mi4zLGhvbmV5Y29tYjozLCJpY2UgY3JlYW0gc2FuZHdpY2giOjQsamVsbHliZWFuOjQuMSxraXRrYXQ6NC40LGxvbGxpcG9wOjUuMSxtYXJzaG1hbGxvdzo2LG5vdWdhdDo3LjF9LHVEO2E6e3ZhciBvVj1nLlhRKCk7b1Y9b1YudG9Mb3dlckNhc2UoKTtpZihvVi5pbmRleE9mKCJhbmRyb2lkIikhPS0xKXt2YXIgeVpoPW9WLm1hdGNoKC9hbmRyb2lkXHMqKFxkKyhcLlxkKyk/KVteO3wpXSpbOyldLyk7aWYoeVpoKXtsZXQgbj1wYXJzZUZsb2F0KHlaaFsxXSk7aWYobjwxMDApe3VEPW47YnJlYWsgYX19dmFyIEVnYj1vVi5tYXRjaCgiKCIrT2JqZWN0LmtleXMoVXp4KS5qb2luKCJ8IikrIikiKTt1RD1FZ2I/VXp4W0VnYlswXV06MH1lbHNlIHVEPXZvaWQgMH12YXIgZG49dUQsTkY9ZG4+PTA7dmFyIHo4O3t2YXIgaTZoPWcuWFEoKTtsZXQgbj1pNmgubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsvKTtpZighbnx8bi5sZW5ndGg8Mil6OD12b2lkIDA7ZWxzZXt2YXIgbEQ9aTZoLm1hdGNoKC9cKChpUGFkfGlQaG9uZXxpUG9kKSggU2ltdWxhdG9yKT87IChVOyApP0NQVSAoaVBob25lICk/T1MgKFxkK19cZClbXyBdLyk7ejg9bEQmJmxELmxlbmd0aD09PTY/TnVtYmVyKGxEWzVdLnJlcGxhY2UoIl8iLCIuIikpOjB9fXZhciB2aj16OCx4ST12aj49MDt2YXIgb2Y7Zy51Wj1uZXcgUEFNO29mPTA7Zy5GTFU9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy52aWRlb0RhdGE9bjt0aGlzLk49e2MxYTooKT0+e3ZhciBXPVtdO2lmKGcudVouaXNJbml0aWFsaXplZCgpKXt2YXIgRD0iIjt0aGlzLnZpZGVvRGF0YSYmdGhpcy52aWRlb0RhdGEucEsmJihEPXRoaXMudmlkZW9EYXRhLnBLK2AmcjFiPSR7dGhpcy52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZX1gKTtEPXthdHJfY2hhbGxlbmdlOkR9O2cuZ18oImJnX3YiLHZvaWQgMCwicGxheWVyX2F0dCIpOyhEPXI5UyhEKSk/KGcuZ18oImJnX3MiLHZvaWQgMCwicGxheWVyX2F0dCIpLFcucHVzaChgcjFhPSR7RH1gKSk6KGcuZ18oImJnX2UiLHZvaWQgMCwicGxheWVyX2F0dCIpLFcucHVzaCgicjFjPTIiKSl9ZWxzZSBnLmdfKCJiZ19lIix2b2lkIDAsInBsYXllcl9hdHQiKSx3aW5kb3cudHJheXJpZGV8fHdpbmRvdy5ib3RndWFyZD9XLnB1c2goInIxYz0xIik6Vy5wdXNoKCJyMWM9NCIpO1cucHVzaChgcjFkPSR7Zy51Wi5nZXRTdGF0ZSgpfWApOwpyZXR1cm4gVy5qb2luKCImIil9LApjNmE6Vz0+InI2YT0iKyhOdW1iZXIoVy5jKV5MYygpKSwKYzZiOlc9PmByNmI9JHtOdW1iZXIoVy5jKV5OdW1iZXIoZy5BcigiQ0FUU1RBVCIsMCkpfWB9Owp0aGlzLnZpZGVvRGF0YSYmdGhpcy52aWRlb0RhdGEucEs/dGhpcy5SUj1nLml3KHRoaXMudmlkZW9EYXRhLnBLKTp0aGlzLlJSPXt9fX07Zy5DaT1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9e30sRD0wKXt0aGlzLmVycm9yQ29kZT1uO3RoaXMuZGV0YWlscz1XO3RoaXMuc2V2ZXJpdHk9RH19O3ZhciB0SD17RUk6ZnVuY3Rpb24obixXKXt2YXIgRD1uWzBdO25bMF09bltXJW5bSVs1XV1dO25bVyVuW0lbNV1dXT1EfSwKT1c6ZnVuY3Rpb24obixXKXtuW0lbM11dKDAsVyl9LApHRzpmdW5jdGlvbihuKXtuW0lbMjVdXSgpfX07dmFyIHV2TT17UmQ6ImFkdW5pdCIsaFE6ImRldGFpbHBhZ2UiLGt3OiJlZGl0cGFnZSIsVE86ImVtYmVkZGVkIixEcDoibGVhbmJhY2siLEY3OiJwcmV2aWV3cGFnZSIsRE06InByb2ZpbGVwYWdlIixrUzoidW5wbHVnZ2VkIixNbjoicGxheWxpc3RvdmVydmlldyIsVUM6InNwb25zb3JzaGlwc29mZmVyIixCYToic2hvcnRzcGFnZSIsZEw6ImhhbmRsZXNjbGFpbWluZyIsaF86ImltbWVyc2l2ZWxpdmVwYWdlIix6TzoiY3JlYXRvcm11c2ljIixYSjoiaW1tZXJzaXZlbGl2ZXByZXZpZXdwYWdlIixZWDoiYWRtaW50b29seXVydCIsbk06InNob3J0c2F1ZGlvcGl2b3QiLHlfOiJjb25zdW1wdGlvbiIsZUw6ImJhY2tncm91bmRfYXVkaW9fcGxheWJhY2siLFVfOiJmYW1pbHlfY2VudGVyX3N1cGVydmlzZWVfaW50ZXJlc3RzX3BhZ2UiLEdPOiJmYW1pbHlfY2VudGVyX3N1cGVydmlzZWVfaW50ZXJlc3RfZGV0YWlsc19wYWdlIn07dmFyIG9nMj1bImgiLCJIIl0sZHppPVsiOSIsIigiXSx6cmg9WyI5aCIsIihoIl0sbEhoPVsiOCIsIioiXSxUdGk9WyJhIiwiQSJdLGpvaT1bIm8iLCJPIl0sQ0FiPVsibSIsIk0iXSxCdGk9WyJtYWMzIiwiTUFDMyJdLEZIdz1bIm1lYWMzIiwiTUVBQzMiXSxibz17aDpvZzIsSDpvZzIsWyI5Il06ZHppLFsiKCJdOmR6aSxbIjloIl06enJoLFsiKGgiXTp6cmgsWyI4Il06bEhoLFsiKiJdOmxIaCxhOlR0aSxBOlR0aSxvOmpvaSxPOmpvaSxtOkNBYixNOkNBYixtYWMzOkJ0aSxNQUMzOkJ0aSxtZWFjMzpGSHcsTUVBQzM6Rkh3fSx3Rlo9bmV3IFNldCgibyBPIGEgYWggQSBtIE0gbWFjMyBNQUMzIG1lYWMzIE1FQUMzIHNvIHNhIi5zcGxpdCgiICIpKSxwTGo9bmV3IFNldCgibSBNIG1hYzMgTUFDMyBtZWFjMyBNRUFDMyIuc3BsaXQoIiAiKSk7dmFyIEZCVT17ak06MCxObToxMjQsZDQ6MTQ0LEp6OjIyMCx5VjoyNDAsYjY6MzQwLFdhOjM2MCx6NTo0ODAsaHo6NTg4LG1wOjYwOCxYczo3MjAscW06NzQwLHc0OjEwODAsQzQ6MTEwMCxvNjoxNDQwLFBhOjIxNjAsaTY6OTk5OSwwOiJRVUFMSVRZX09SRElOQUxfVU5LTk9XTiIsMTI0OiJRVUFMSVRZX09SRElOQUxfMTQ0UF9TQVZFUiIsMTQ0OiJRVUFMSVRZX09SRElOQUxfMTQ0UCIsMjIwOiJRVUFMSVRZX09SRElOQUxfMjQwUF9TQVZFUiIsMjQwOiJRVUFMSVRZX09SRElOQUxfMjQwUCIsMzQwOiJRVUFMSVRZX09SRElOQUxfMzYwUF9TQVZFUiIsMzYwOiJRVUFMSVRZX09SRElOQUxfMzYwUCIsNDgwOiJRVUFMSVRZX09SRElOQUxfNDgwUCIsNTg4OiJRVUFMSVRZX09SRElOQUxfNjA4UF9TQVZFUiIsNjA4OiJRVUFMSVRZX09SRElOQUxfNjA4UCIsNzIwOiJRVUFMSVRZX09SRElOQUxfNzIwUCIsNzQwOiJRVUFMSVRZX09SRElOQUxfNzIwUF9FTkhBTkNFRCIsMTA4MDoiUVVBTElUWV9PUkRJTkFMXzEwODBQIiwKMTEwMDoiUVVBTElUWV9PUkRJTkFMXzEwODBQX0VOSEFOQ0VEIiwxNDQwOiJRVUFMSVRZX09SRElOQUxfMTQ0MFAiLDIxNjA6IlFVQUxJVFlfT1JESU5BTF8yMTYwUCIsOTk5OToiUVVBTElUWV9PUkRJTkFMX0hJR0hSRVMifTt2YXIgTkc9e2F1dG86MCx0aW55OjE0NCxsaWdodDoxNDQsc21hbGw6MjQwLG1lZGl1bTozNjAsbGFyZ2U6NDgwLGhkNzIwOjcyMCxoZDEwODA6MTA4MCxoZDE0NDA6MTQ0MCxoZDIxNjA6MjE2MCxoZDI4ODA6Mjg4MCxoaWdocmVzOjQzMjB9LExnPXswOiJhdXRvIiwxNDQ6InRpbnkiLDI0MDoic21hbGwiLDM2MDoibWVkaXVtIiw0ODA6ImxhcmdlIiw3MjA6ImhkNzIwIiwxMDgwOiJoZDEwODAiLDE0NDA6ImhkMTQ0MCIsMjE2MDoiaGQyMTYwIiwyODgwOiJoZDI4ODAiLDQzMjA6ImhpZ2hyZXMifSxOej17UVVBTElUWV9PUkRJTkFMX1VOS05PV046MCxRVUFMSVRZX09SRElOQUxfMTQ0UF9TQVZFUjoxMjQsUVVBTElUWV9PUkRJTkFMXzE0NFA6MTQ0LFFVQUxJVFlfT1JESU5BTF8yNDBQX1NBVkVSOjIyMCxRVUFMSVRZX09SRElOQUxfMjQwUDoyNDAsUVVBTElUWV9PUkRJTkFMXzM2MFBfU0FWRVI6MzQwLFFVQUxJVFlfT1JESU5BTF8zNjBQOjM2MCxRVUFMSVRZX09SRElOQUxfNDgwUDo0ODAsClFVQUxJVFlfT1JESU5BTF82MDhQX1NBVkVSOjU4OCxRVUFMSVRZX09SRElOQUxfNjA4UDo2MDgsUVVBTElUWV9PUkRJTkFMXzcyMFA6NzIwLFFVQUxJVFlfT1JESU5BTF83MjBQX0VOSEFOQ0VEOjc0MCxRVUFMSVRZX09SRElOQUxfMTA4MFA6MTA4MCxRVUFMSVRZX09SRElOQUxfMTA4MFBfRU5IQU5DRUQ6MTEwMCxRVUFMSVRZX09SRElOQUxfMTQ0MFA6MTQ0MCxRVUFMSVRZX09SRElOQUxfMjE2MFA6MjE2MCxRVUFMSVRZX09SRElOQUxfSElHSFJFUzo5OTk5fTt2YXIgJGQ9MjU5MkUzO2cuT249e1NUT1BfRVZFTlRfUFJPUEFHQVRJT046Imh0bWw1LXN0b3AtcHJvcGFnYXRpb24iLElWX0RSQVdFUl9FTkFCTEVEOiJ5dHAtaXYtZHJhd2VyLWVuYWJsZWQiLElWX0RSQVdFUl9PUEVOOiJ5dHAtaXYtZHJhd2VyLW9wZW4iLE1BSU5fVklERU86Imh0bWw1LW1haW4tdmlkZW8iLFZJREVPX0NPTlRBSU5FUjoiaHRtbDUtdmlkZW8tY29udGFpbmVyIixWSURFT19DT05UQUlORVJfVFJBTlNJVElPTklORzoiaHRtbDUtdmlkZW8tY29udGFpbmVyLXRyYW5zaXRpb25pbmciLEhPVVNFX0JSQU5EOiJob3VzZS1icmFuZCJ9O3ZhciBQbj17YWxsb3dlZDoiQVVUT1BMQVlfQlJPV1NFUl9QT0xJQ1lfQUxMT1dFRCIsImFsbG93ZWQtbXV0ZWQiOiJBVVRPUExBWV9CUk9XU0VSX1BPTElDWV9BTExPV0VEX01VVEVEIixkaXNhbGxvd2VkOiJBVVRPUExBWV9CUk9XU0VSX1BPTElDWV9ESVNBTExPV0VEIn07dmFyIGNLTT17QU5EUk9JRDozLEFORFJPSURfS0lEUzoxOCxBTkRST0lEX01VU0lDOjIxLEFORFJPSURfVU5QTFVHR0VEOjI5LFdFQjoxLFdFQl9SRU1JWDo2NyxXRUJfVU5QTFVHR0VEOjQxLElPUzo1LElPU19LSURTOjE5LElPU19NVVNJQzoyNixJT1NfVU5QTFVHR0VEOjMzfSx1Sj17YW5kcm9pZDoiQU5EUk9JRCIsImFuZHJvaWQuayI6IkFORFJPSURfS0lEUyIsImFuZHJvaWQubSI6IkFORFJPSURfTVVTSUMiLCJhbmRyb2lkLnVwIjoiQU5EUk9JRF9VTlBMVUdHRUQiLHlvdXR1YmU6IldFQiIsInlvdXR1YmUubSI6IldFQl9SRU1JWCIsInlvdXR1YmUudXAiOiJXRUJfVU5QTFVHR0VEIix5dGlvczoiSU9TIiwieXRpb3MuayI6IklPU19LSURTIiwieXRpb3MubSI6IklPU19NVVNJQyIsInl0aW9zLnVwIjoiSU9TX1VOUExVR0dFRCJ9LE00Uz17Im1keC1wYWlyIjoxLCJtZHgtZGlhbCI6MiwibWR4LWNhc3QiOjMsIm1keC12b2ljZSI6NCwibWR4LWluYXBwZGlhbCI6NX07dmFyIExHMT17aV86MSxZdzoyLFBBVVNFRDozLDE6IkRJU0FCTEVEIiwyOiJFTkFCTEVEIiwzOiJQQVVTRUQifTt2YXIgZXh4PVJlZ0V4cCgiXmh0dHBzPzovLyhbXi5dKlxcLm1vYXRhZHNcXC5jb20vfGVbMC05XStcXC55dFxcLnNyc1xcLmRvdWJsZXZlcmlmeVxcLmNvbXxwYWdlYWQyXFwuZ29vZ2xlc3luZGljYXRpb25cXC5jb20vcGFnZWFkL2dlbl8yMDRcXD9pZD15dDNwJnNyPTEmfHBtXFwuYWRzYWZlcHJvdGVjdGVkXFwuY29tL3lvdXR1YmV8cG1cXC50ZXN0LWFkc2FmZXByb3RlY3RlZFxcLmNvbS95b3V0dWJlfHlvdXR1YmVbMC05XStcXC5tb2F0cGl4ZWxcXC5jb20vKSIpLGxKPVJlZ0V4cCgiXmh0dHBzOi8vKFthLXpdK1xcLik/WzAtOWEtZl17MSw2M31cXC5zc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20vfF5odHRwczovLyhbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuZGVtb3NcXC5jb3JwXFwuZ29vZ2xlXFwuY29tL3xeaHR0cHM6Ly9bMC05YS1mXXsxLDYzfVxcLnByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbS98Xmh0dHBzPzovLygoWy1cXHddKnd3d1stXFx3XSpcXC58Wy1cXHddKndlYlstXFx3XSpcXC58Wy1cXHddKmNhbmFyeVstXFx3XSpcXC58Wy1cXHddKmRldlstXFx3XSpcXC58Wy1cXHddezEsM31cXC4pKyhjb3JwXFwuKT95b3V0dWJlKC1ub2Nvb2tpZXxraWRzfGVkdWNhdGlvbik/XFwuY29tL3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooeW91dHViZVxcLmdvb2dsZWFwaXNcXC5jb20pWy5dPyg6WzAtOV0rKT8vfChbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuKFthLXpdezN9fGkpXFwuY29ycFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8vfChbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuY1xcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPy98KGRvY3N8ZHJpdmUpXFwuZ29vZ2xlXFwuY29tLyhhL1teL1xcXFwlXSsvfCl8KG11c2ljfG11c2ljLWdyZWVuLXFhfG11c2ljLXJlbGVhc2UtcWF8eXQtbXVzaWMtZ3JlZW5cXC5jb3JwKVxcLnlvdXR1YmVcXC5jb20vfCh0dnx0di1ncmVlbi1xYXx0di1ncmVlbi1xYVxcLmNvcnB8dHYtcmVsZWFzZS1xYXx0di1yZWxlYXNlLXFhXFwuY29ycHx0di1pbnRlZ3JhdGlvbi1xYXx0di1pbnRlZ3JhdGlvbi1xYVxcLmNvcnB8eXQtdHYtYXV0b3B1c2hcXC5jb3JwfHl0LXR2LWludGVncmF0aW9uXFwuY29ycHx5dC10di1zdGFnaW5nXFwuY29ycClcXC55b3V0dWJlXFwuY29tL3xbQS1aYS16MC05LV0rXFwucHJvZFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8vKSIpLApndGo9UmVnRXhwKCJeaHR0cHM/Oi8vKHd3d1xcLmdvb2dsZVxcLmNvbS9wYWdlYWQveHN1bHx3d3dcXC55b3V0dWJlXFwuY29tL3BhZ2VhZC9zbGF2KSIpLHg1cj1SZWdFeHAoIl5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvKD8hdXJsXFxiKXwkKXxeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStzc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20oL3wkKXxeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxkb2NzXFwuZ29vZ2xlXFwuY29tfGRyaXZlXFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218bWFpbFxcLmdvb2dsZVxcLmNvbXx5b3V0dWJlXFwuY29tfHlvdXR1YmVlZHVjYXRpb25cXC5jb218eW91dHViZVxcLW5vY29va2llXFwuY29tfHlvdXR1YmVraWRzXFwuY29tKVsuXT8oOlswLTldKyk/L3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpKSIpLApMaHQ9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLGs3cj1SZWdFeHAoIl5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvKD8hdXJsXFxiKXwkKXxeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStzc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20oL3wkKXxeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxib3JnXFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218eW91dHViZVxcLmNvbXx5b3V0dWJla2lkc1xcLmNvbSlbLl0/KDpbMC05XSspPy98KFtBLVphLXowLTktXXsxLDYzfVxcLikqKHNhbmRib3hcXC5nb29nbGVcXC5jb20pKDpbMC05XSspPygvKD8hdXJsXFxiKXwkKSkiKSwKRDVVPVJlZ0V4cCgiXigoaHR0cChzKT8pOik/XFwvXFwvKCgoKGxoWzMtNl0oLXR0fC1kW2EtZyx6XSk/XFwuKChnZ3BodCl8KGdvb2dsZXVzZXJjb250ZW50KXwoZ29vZ2xlKXwoc2FuZGJveFxcLmdvb2dsZSkpKXwobGg3XFwtKGV1fHVzfHF3fHJ0fHh4KVxcLigoZ29vZ2xldXNlcmNvbnRlbnQpfChnb29nbGUpKSl8KChwaG90b3N8dGVzdG9ubHl8d29yaylcXC5maWZlXFwudXNlcmNvbnRlbnRcXC5nb29nbGUpfChbXFx3XFwtXStcXC5maWZlXFwudXNlcmNvbnRlbnRcXC5nb29nbGUpfCgoWzEtNF1cXC5icFxcLmJsb2dzcG90KXwoYnBbMC0zXVxcLmJsb2dnZXIpKXwoY2NwLWxoXFwuZ29vZ2xldXNlcmNvbnRlbnQpfCgoKChjcHxjaXxncClbMy02XSl8KGFwWzEtMl0pKVxcLihnZ3BodHxnb29nbGV1c2VyY29udGVudCkpfChnbVsxLTRdXFwuZ2dwaHQpfChwbGF5LSh0aS0pP2xoXFwuZ29vZ2xldXNlcmNvbnRlbnQpfChnelswLTFdXFwuZ29vZ2xldXNlcmNvbnRlbnQpfChsaDNcXC1nbVxcLmdvb2dsZSl8KCgoeXRbMy00XSl8KHNwWzEtM10pKVxcLihnZ3BodHxnb29nbGV1c2VyY29udGVudCkpKVxcLmNvbSl8KGRyaXZlXFwuZ29vZ2xlXFwuY29tXFwvZHJpdmVcXC0odXNlcmNvbnRlbnR8dmlld2VyKSl8KGRwWzMtNl1cXC5nb29nbGV1c2VyY29udGVudFxcLmNuKXwoZHA0XFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20pfCgocGhvdG9zfGRyaXZlfGNvbnRyaWJ1dGlvbilcXC1pbWFnZVxcLShkZXZ8cWEpKC11c3wtZXUpPygtYXV0aHwtY29va2llKT9cXC5jb3JwXFwuZ29vZ2xlXFwuY29tKXwocGhvdG9zXFwtaW1hZ2VcXC1kZXZcXC1kbFxcLShhdXRofGV1fHVzKVxcLmNvcnBcXC5nb29nbGVcXC5jb20pfCgoZGV2fGRldjJ8ZGV2M3xxYXxxYTJ8cWEzfHFhLXJlZHxxYS1ibHVlfGNhbmFyeSlbLS5dbGlnaHRob3VzZVxcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC9pbWFnZSl8KGltYWdlXFwtKGRldnxxYSlcXC1saWdodGhvdXNlKC1hdXRoKT9cXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tKFxcL2ltYWdlKT8pfChkcml2ZVxcLXFhXFwuY29ycFxcLmdvb2dsZVxcLmNvbVxcL2RyaXZlXFwtKHVzZXJjb250ZW50fHZpZXdlcikpfChkb2NzKFxcLShkZXZ8cWEpXFwuY29ycCk/XFwuZ29vZ2xlXFwuY29tXFwvKHVcXC9bMC05XStcXC8pPyhkb2NzfHNoZWV0c3xzbGlkZXN8ZHJhd2luZ3N8Zm9ybXN8dmlkZW9zfHBpY3R1cmVzKVxcLWltYWdlc1xcLShydHxxdykpfChkb2NzXFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT8oZG9jc3xzaGVldHN8c2xpZGVzfGRyYXdpbmdzfGZvcm1zfHZpZGVvc3xwaWN0dXJlcylcXC1pbWFnZXMpfChzaXRlc1xcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT9zaXRlcyh2KT9cXC1pbWFnZXNcXC0ocnR8cXcpKXwoYXRhcmktZ3JlZW4tdGVzdFxcLmNvcnBcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzXFwtKHJ0fHF3KSl8KHNpdGVzXFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT9zaXRlcyh2KT9cXC1pbWFnZXMpKVxcL3xeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStkZW1vc1xcLmNvcnBcXC5nb29nbGVcXC5jb20oLyg/IXVybFxcYil8JCl8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC98JCl8Xmh0dHBzPzovLygoW0EtWmEtejAtOS1dezEsNjN9XFwuKSooY29ycFxcLmdvb2dsZVxcLmNvbXxwcm94eVxcLmdvb2dsZXByb2RcXC5jb218Y1xcLmdvb2dsZXJzXFwuY29tfHByb3h5XFwuZ29vZ2xlcnNcXC5jb218Ym9yZ1xcLmdvb2dsZVxcLmNvbXxkb2NzXFwuZ29vZ2xlXFwuY29tfGRyaXZlXFwuZ29vZ2xlXFwuY29tfGdvb2dsZXBsZXhcXC5jb218cGxheVxcLmdvb2dsZVxcLmNvbXxwcm9kXFwuZ29vZ2xlXFwuY29tfHZpZGVvXFwuZ29vZ2xlXFwuY29tfHlvdXR1YmVcXC5jb218eXRpbWdcXC5jb218eXRpbWdcXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tfGNoYXRcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8vfChbQS1aYS16MC05LV17MSw2M31cXC4pKihzYW5kYm94XFwuZ29vZ2xlXFwuY29tKSg6WzAtOV0rKT8oLyg/IXVybFxcYil8JCl8czJcXC5nb29nbGV1c2VyY29udGVudFxcLmNvbS9zMi9mYXZpY29uc1xcP3x5dFszLTRdXFwuZ2dwaHRcXC5jb20vKSIpLApiS1o9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLFhLMj1SZWdFeHAoIl5odHRwcz8uKiNvY3IkfF5odHRwcz86Ly8oYWtzZWN1cmVcXC5pbXJ3b3JsZHdpZGVcXC5jb20vfGNkblxcLmltcndvcmxkd2lkZVxcLmNvbS98c2VjdXJlXFwtLi5cXC5pbXJ3b3JsZHdpZGVcXC5jb20vKSIpLHZFaD1SZWdFeHAoIl5odHRwcz86Ly8oZ29vZ2xlYWRzXFwuZ1xcLmRvdWJsZWNsaWNrXFwubmV0LyhhY2xrfHBhZ2VhZC9jb252ZXJzaW9uKXx3d3dcXC5nb29nbGVcXC5jb20vKGFjbGt8cGFnZWFkL2NvbnZlcnNpb24pfHd3d1xcLmdvb2dsZWFkc2VydmljZXNcXC5jb20vKGFjbGt8cGFnZWFkLyhhY2xrfGNvbnZlcnNpb24pKXx3d3dcXC55b3V0dWJlXFwuY29tL3BhZ2VhZC9jb252ZXJzaW9uKSIpLG5Fdz1SZWdFeHAoIl4oKGh0dHAocyk/KTopP1xcL1xcLygoKChsaFszLTZdKC10dHwtZFthLWcsel0pP1xcLigoZ2dwaHQpfChnb29nbGV1c2VyY29udGVudCl8KGdvb2dsZSl8KHNhbmRib3hcXC5nb29nbGUpKSl8KGxoN1xcLShldXx1c3xxd3xydHx4eClcXC4oKGdvb2dsZXVzZXJjb250ZW50KXwoZ29vZ2xlKSkpfCgocGhvdG9zfHRlc3Rvbmx5fHdvcmspXFwuZmlmZVxcLnVzZXJjb250ZW50XFwuZ29vZ2xlKXwoW1xcd1xcLV0rXFwuZmlmZVxcLnVzZXJjb250ZW50XFwuZ29vZ2xlKXwoKFsxLTRdXFwuYnBcXC5ibG9nc3BvdCl8KGJwWzAtM11cXC5ibG9nZ2VyKSl8KGNjcC1saFxcLmdvb2dsZXVzZXJjb250ZW50KXwoKCgoY3B8Y2l8Z3ApWzMtNl0pfChhcFsxLTJdKSlcXC4oZ2dwaHR8Z29vZ2xldXNlcmNvbnRlbnQpKXwoZ21bMS00XVxcLmdncGh0KXwocGxheS0odGktKT9saFxcLmdvb2dsZXVzZXJjb250ZW50KXwoZ3pbMC0xXVxcLmdvb2dsZXVzZXJjb250ZW50KXwobGgzXFwtZ21cXC5nb29nbGUpfCgoKHl0WzMtNF0pfChzcFsxLTNdKSlcXC4oZ2dwaHR8Z29vZ2xldXNlcmNvbnRlbnQpKSlcXC5jb20pfChkcml2ZVxcLmdvb2dsZVxcLmNvbVxcL2RyaXZlXFwtKHVzZXJjb250ZW50fHZpZXdlcikpfChkcFszLTZdXFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jbil8KGRwNFxcLmdvb2dsZXVzZXJjb250ZW50XFwuY29tKXwoKHBob3Rvc3xkcml2ZXxjb250cmlidXRpb24pXFwtaW1hZ2VcXC0oZGV2fHFhKSgtdXN8LWV1KT8oLWF1dGh8LWNvb2tpZSk/XFwuY29ycFxcLmdvb2dsZVxcLmNvbSl8KHBob3Rvc1xcLWltYWdlXFwtZGV2XFwtZGxcXC0oYXV0aHxldXx1cylcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKXwoKGRldnxkZXYyfGRldjN8cWF8cWEyfHFhM3xxYS1yZWR8cWEtYmx1ZXxjYW5hcnkpWy0uXWxpZ2h0aG91c2VcXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tXFwvaW1hZ2UpfChpbWFnZVxcLShkZXZ8cWEpXFwtbGlnaHRob3VzZSgtYXV0aCk/XFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbShcXC9pbWFnZSk/KXwoZHJpdmVcXC1xYVxcLmNvcnBcXC5nb29nbGVcXC5jb21cXC9kcml2ZVxcLSh1c2VyY29udGVudHx2aWV3ZXIpKXwoZG9jcyhcXC0oZGV2fHFhKVxcLmNvcnApP1xcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT8oZG9jc3xzaGVldHN8c2xpZGVzfGRyYXdpbmdzfGZvcm1zfHZpZGVvc3xwaWN0dXJlcylcXC1pbWFnZXNcXC0ocnR8cXcpKXwoZG9jc1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/KGRvY3N8c2hlZXRzfHNsaWRlc3xkcmF3aW5nc3xmb3Jtc3x2aWRlb3N8cGljdHVyZXMpXFwtaW1hZ2VzKXwoc2l0ZXNcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzXFwtKHJ0fHF3KSl8KGF0YXJpLWdyZWVuLXRlc3RcXC5jb3JwXFwuZ29vZ2xlXFwuY29tXFwvKHVcXC9bMC05XStcXC8pP3NpdGVzKHYpP1xcLWltYWdlc1xcLShydHxxdykpfChzaXRlc1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzKSlcXC98Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrZGVtb3NcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC8oPyF1cmxcXGIpfCQpfF5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK3NzbHByb3h5XFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvfCQpfF5odHRwcz86Ly8oKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGNvcnBcXC5nb29nbGVcXC5jb218cHJveHlcXC5nb29nbGVwcm9kXFwuY29tfGNcXC5nb29nbGVyc1xcLmNvbXxwcm94eVxcLmdvb2dsZXJzXFwuY29tfGJvcmdcXC5nb29nbGVcXC5jb218ZG9jc1xcLmdvb2dsZVxcLmNvbXxkcml2ZVxcLmdvb2dsZVxcLmNvbXxnb29nbGVwbGV4XFwuY29tfGdvb2dsZXZpZGVvXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218bGgzXFwucGhvdG9zXFwuZ29vZ2xlXFwuY29tfG1haWxcXC5nb29nbGVcXC5jb218eW91dHViZVxcLmNvbXx5dFxcLmFrYW1haXplZFxcLm5ldHxjaGF0XFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/L3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpfChbQS1aYS16MC05LV17MSw2M31cXC4pKmNcXC5saDMoLWRbYS1neXpdfC10ZXN0b25seSk/XFwuKGdvb2dsZXVzZXJjb250ZW50fHBob3Rvc1xcLmdvb2dsZSlcXC5jb20vLiokKSIpLApXaFo9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLFJyaT1SZWdFeHAoIl5odHRwcz86Ly8oKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGltYXNka1xcLmdvb2dsZWFwaXNcXC5jb218Mm1kblxcLm5ldHxnb29nbGVzeW5kaWNhdGlvblxcLmNvbXxjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxib3JnXFwuZ29vZ2xlXFwuY29tfGdvb2dsZWFkc1xcLmdcXC5kb3VibGVjbGlja1xcLm5ldHxwcm9kXFwuZ29vZ2xlXFwuY29tfHN0YXRpY1xcLmRvdWJsZWNsaWNrXFwubmV0fHN0YXRpY1xcLmdvb2dsZWFkc3NlcnZpbmdcXC5jbnxzdHVkaW9hcGlcXC5kb3VibGVjbGlja1xcLm5ldHx5b3V0dWJlXFwuY29tfHlvdXR1YmVcXC5nb29nbGVhcGlzXFwuY29tfHlvdXR1YmVcXC1ub2Nvb2tpZVxcLmNvbXx5b3V0dWJla2lkc1xcLmNvbXx5dGltZ1xcLmNvbXx5dGltZ1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8vfGxpZ2h0Ym94LShkZW1vc3xidWlsZGVyKVxcLmFwcHNwb3RcXC5jb20vfHNbMDFdKHFhKT9cXC4ybWRuXFwubmV0L2Fkcy9yaWNobWVkaWEvc3R1ZGlvL211L3RlbXBsYXRlcy90ZXRyaXN8d3d3XFwuZ3N0YXRpY1xcLmNvbS9kb3VibGVjbGljay9zdHVkaW8vaW5ub3ZhdGlvbi9oNS9sYXlvdXRzL3RldHJpc3x3d3dcXC5nc3RhdGljXFwuY29tL2RvdWJsZWNsaWNrL3N0dWRpby9pbm5vdmF0aW9uL3l0cGxheWVyKSIpLApRb009UmVnRXhwKCJeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKSooY3Jvd2Rzb3VyY2V8ZGF0YWNvbXB1dGUpXFwuZ29vZ2xlXFwuY29tL3xeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStkZW1vc1xcLmNvcnBcXC5nb29nbGVcXC5jb20oLyg/IXVybFxcYil8JCl8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC98JCl8Xmh0dHBzOi8vKGFkc3xhZHdvcmRzXFwuY29ycClcXC5nb29nbGVcXC5jb20vKGF3Lyhhc3NldGdyb3VwLyhlZGl0fG5ldyl8Y2FtcGFpZ25zLyhuZXcvKHBlcmZvcm1hbmNlbWF4fGRlbWFuZGdlbil8ZWRpdC9kZW1hbmRnZW4pKXwkKXxeaHR0cHM6Ly8oYWR3b3Jkcy0pP2NhbmFyeVxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tLyhhdy8oYXNzZXRncm91cC8oZWRpdHxuZXcpfGNhbXBhaWducy8obmV3LyhwZXJmb3JtYW5jZW1heHxkZW1hbmRnZW4pfGVkaXQvZGVtYW5kZ2VuKSl8JCl8Xmh0dHBzOi8vKGJvb2tzfHBsYXktYm9va3MtKGF1dG9wdXNofGludGVybmFsfHByZXByb2R8c3RhZ2luZykoLXNhbmRib3h8XFwuY29ycCkpXFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20oL3wkKXxeaHR0cHM6Ly9hZHMoLWV4dGVybmFsKT8tcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tLyhhdy8oYXNzZXRncm91cC8oZWRpdHxuZXcpfGNhbXBhaWducy8obmV3LyhwZXJmb3JtYW5jZW1heHxkZW1hbmRnZW4pfGVkaXQvZGVtYW5kZ2VuKSl8JCl8Xmh0dHBzOi8vY2FudmFzdGVzdGVyLTNmZDBiXFwuYXBwc3BvdFxcLmNvbSgvfCQpfF5odHRwczovL2xvY2FsaG9zdFxcLmdvb2dsZXVzZXJjb250ZW50XFwuY29tKDpcXGQrKT8oL3wkKXxeaHR0cHM6Ly9uYXJyYXRpdmUtbmV3cy1jYXN0LXJlY2VpdmVyLWRcXC5hcHBzcG90XFwuY29tKC98JCl8Xmh0dHBzOi8vbmFycmF0aXZlLW5ld3MtY2FzdC1yZWNlaXZlci1mXFwuYXBwc3BvdFxcLmNvbSgvfCQpfF5odHRwczovL29uZVxcLmdvb2dsZVxcLmNvbSgvfCQpfF5odHRwczovL3d3d1xcLmdvb2dsZVxcLmNvbS9jdWx0dXJhbGluc3RpdHV0ZS9tYW5hZ2UvLiokfF5odHRwczovL3d3d1xcLmdzdGF0aWNcXC5jb20vYW9nX2hvd3RvfF5odHRwczovL3d3d1xcLmdzdGF0aWNcXC5jb20vbmFycmF0aXZlX2Nhc3RfcmVjZWl2ZXIvbmV3c3xeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihpbWFzZGtcXC5nb29nbGVhcGlzXFwuY29tfGNvcnBcXC5nb29nbGVcXC5jb218cHJveHlcXC5nb29nbGVwcm9kXFwuY29tfGNcXC5nb29nbGVyc1xcLmNvbXxwcm94eVxcLmdvb2dsZXJzXFwuY29tfGJvcmdcXC5nb29nbGVcXC5jb218ZG9jc1xcLmdvb2dsZVxcLmNvbXxkcml2ZVxcLmdvb2dsZVxcLmNvbXxnb29nbGVhZHNcXC5nXFwuZG91YmxlY2xpY2tcXC5uZXR8Z29vZ2xlcGxleFxcLmNvbXxwbGF5XFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218cGhvdG9zXFwuZ29vZ2xlXFwuY29tfGdldFxcLmdvb2dsZVxcLmNvbXxibG9nZ2VyXFwuY29tfG1haWxcXC5nb29nbGVcXC5jb218c3VydmV5XFwuZ1xcLmRvdWJsZWNsaWNrXFwubmV0fHlvdXR1YmVcXC5jb218eW91dHViZVxcLmdvb2dsZWFwaXNcXC5jb218eW91dHViZWVkdWNhdGlvblxcLmNvbXx5b3V0dWJlXFwtbm9jb29raWVcXC5jb218eXRcXC13ZWJcXC1lbWJlZGRlZFxcLXBsYXllclxcLmFwcHNwb3RcXC5jb218eW91dHViZWtpZHNcXC5jb218dmV2b1xcLmNvbXxjaGF0XFwuZ29vZ2xlXFwuY29tfG1lZXRcXC5nb29nbGVcXC5jb218YXJ0c2FuZGN1bHR1cmVcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8oL3wkKXwoW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpfCh3d3dcXC58ZW5jcnlwdGVkXFwuKT9nb29nbGVcXC4oY2F0fGNvbShcXC4oYVtmZ2lydV18YltkaG5vcnpdfGNbb3V5XXxkb3xlW2NndF18Zmp8Z1toaXRdfGhrfGptfGtofGt3fGxbYmN5XXxtW210eHldfG5bYWZnaXBdfG9tfHBbYWVnaGtyeV18cWF8c1thYmdsdl18dFtqbnJ3XXx1YXx1eXx2Y3x2bikpP3xhW2NkZWxtc3R6XXxjW2FjZGZnaGlsbW52el18YlthZWZnaWpzdHldfGVlfGVzfGRbZWprbXpdfGdbYWVmZ2xtcHJ5XXxmW2ltcl18aVtlbW9xcnN0XXxoW25ydHVdfGtbZ2l6XXxqZXxqb3xtW2RlZ2tsbnN1dnddfGxbYWlrdHV2XXxuW2Vsb3J1XXxwW2xuc3RdfHNbY2VoaWttbm9ydF18cltvc3V3XXx1c3x0W2Rna2xtbm90XXx3c3x2Z3x2dXxjb1xcLihhb3xid3xja3xjcnxpW2Rsbl18anB8a2V8a3J8bHN8bWF8bXp8bnp8dGh8dHp8dVtna3pdfHZlfHZpfHpbYW13XSkpLyhzZWFyY2h8d2ViaHApXFw/fCh3d3dcXC58ZW5jcnlwdGVkXFwuKWdvb2dsZVxcLihjYXR8Y29tKFxcLihhW2ZnaXJ1XXxiW2Robm9yel18Y1tvdXldfGRvfGVbY2d0XXxmanxnW2hpdF18aGt8am18a2h8a3d8bFtiY3ldfG1bbXR4eV18blthZmdpcF18b218cFthZWdoa3J5XXxxYXxzW2FiZ2x2XXx0W2pucnddfHVhfHV5fHZjfHZuKSk/fGFbY2RlbG1zdHpdfGNbYWNkZmdoaWxtbnZ6XXxiW2FlZmdpanN0eV18ZWV8ZXN8ZFtlamttel18Z1thZWZnbG1wcnldfGZbaW1yXXxpW2Vtb3Fyc3RdfGhbbnJ0dV18a1tnaXpdfGplfGpvfG1bZGVna2xuc3V2d118bFthaWt0dXZdfG5bZWxvcnVdfHBbbG5zdF18c1tjZWhpa21ub3J0XXxyW29zdXddfHVzfHRbZGdrbG1ub3RdfHdzfHZnfHZ1fGNvXFwuKGFvfGJ3fGNrfGNyfGlbZGxuXXxqcHxrZXxrcnxsc3xtYXxtenxuenx0aHx0enx1W2drel18dmV8dml8elthbXddKSkvPyR8bGlnaHRib3gtKGRlbW9zfGJ1aWxkZXIpXFwuYXBwc3BvdFxcLmNvbS98czBcXC4ybWRuXFwubmV0L2luc3RyZWFtL2h0bWw1L25hdGl2ZS98c1swMV0ocWEpP1xcLjJtZG5cXC5uZXQvYWRzL3JpY2htZWRpYS9zdHVkaW8vbXUvdGVtcGxhdGVzL3RldHJpc3x3d3dcXC5nc3RhdGljXFwuY29tL2RvdWJsZWNsaWNrL3N0dWRpby9pbm5vdmF0aW9uL2g1L2xheW91dHMvdGV0cmlzKSIpLApWNGk9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/KC98JCkiKSxjWlM9UmVnRXhwKCJeKGh0dHBzOi8vcGxheVxcLmdvb2dsZVxcLmNvbXxodHRwczovL3Bob3Rvc1xcLmdvb2dsZVxcLmNvbXxodHRwczovL2dldFxcLmdvb2dsZVxcLmNvbXxodHRwczovL21haWxcXC5nb29nbGVcXC5jb218aHR0cHM6Ly95dFxcLXdlYlxcLWVtYmVkZGVkXFwtcGxheWVyXFwuYXBwc3BvdFxcLmNvbXxodHRwOi8veXRcXC13ZWJcXC1lbWJlZGRlZFxcLXBsYXllclxcLmFwcHNwb3RcXC5jb218aHR0cHM6Ly9jaGF0XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vb25lXFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYXJ0c2FuZGN1bHR1cmVcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHN0cmFuc3BhcmVuY3lcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHNcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHdvcmRzXFwuY29ycFxcLmdvb2dsZVxcLmNvbXxodHRwczovL2Fkc1xcLWV4dGVybmFsXFwtcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYWRzXFwtcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYWR3b3Jkc1xcLWNhbmFyeVxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vY2FuYXJ5XFwucWFcXC5hZHpcXC5nb29nbGVcXC5jb20pJHxeaHR0cDovL1swLTldK1xcLlthLXowLTlcXC1fXStcXC5bYS16MC05XFwtX10rXFwuW2EtejAtOVxcLV9dK1xcLihbYS16XXsyfXxpKVxcLmJvcmdcXC5nb29nbGVcXC5jb20oOlswLTldKyk/JHxeaHR0cHM6Ly8oKGF1dG9wdXNofGJldGEtbG9va3VwfGRhaWx5LVswLTZdfG1hbnVhbC1xdWFsfHByZXByb2R8c3RyZWFtKVxcLik/bWVldFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGNyb3dkc291cmNlfGRhdGFjb21wdXRlKVxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKHlvdXR1YmV8eW91dHViZWtpZHN8eW91dHViZWVkdWNhdGlvbilcXC5jb20kfF5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc2FuZGJveFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tJHxeaHR0cHM6Ly8oYm9va3N8cGxheS1ib29rcy0oYXV0b3B1c2h8aW50ZXJuYWx8cHJlcHJvZHxzdGFnaW5nKSgtc2FuZGJveHxcXC5jb3JwKSlcXC5nb29nbGV1c2VyY29udGVudFxcLmNvbSR8Xmh0dHBzOi8vKGRyYWZ0fHd3d3wod3d3XFwuKT9kZXZcXC5zYW5kYm94fCh3d3dcXC4pP2F1dG9wdXNoXFwuc2FuZGJveHwod3d3XFwuKT9zdGFnaW5nXFwuc2FuZGJveHwod3d3XFwuKT9yZXN0b3JlXFwuc2FuZGJveClcXC5ibG9nZ2VyXFwuY29tJHxeaHR0cHM6Ly9bMC05YS1mXXsxLDYzfVxcLnByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbSR8Xmh0dHBzOi8vbG9jYWxob3N0XFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20oOlxcZCspPyR8Xmh0dHBzPzovLygoKGRvY3N8bXxzaW5nfHNzfHNzc3x3d3cpXFwuKT9kcml2ZVxcLmdvb2dsZVxcLmNvbSR8KFtBLVphLXowLTktXXsxLDYzfVxcLikqY1xcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPyR8KFtBLVphLXowLTktXXsxLDYzfVxcLikqY29ycFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8kfChbQS1aYS16MC05LV17MSw2M31cXC4pKmdvb2dsZXBsZXhcXC5jb20oOlswLTldKyk/JHwoW0EtWmEtejAtOS1dezEsNjN9XFwuKSpwcm94eVxcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPyR8KHd3d1xcLnxlbmNyeXB0ZWRcXC4pZ29vZ2xlXFwuKGNhdHxjb20oXFwuKGFbZmdpcnVdfGJbZGhub3J6XXxjW291eV18ZG98ZVtjZ3RdfGZqfGdbaGl0XXxoa3xqbXxraHxrd3xsW2JjeV18bVttdHh5XXxuW2FmZ2lwXXxvbXxwW2FlZ2hrcnldfHFhfHNbYWJnbHZdfHRbam5yd118dWF8dXl8dmN8dm4pKT98YVtjZGVsbXN0el18Y1thY2RmZ2hpbG1udnpdfGJbYWVmZ2lqc3R5XXxlZXxlc3xkW2Vqa216XXxnW2FlZmdsbXByeV18ZltpbXJdfGlbZW1vcXJzdF18aFtucnR1XXxrW2dpel18amV8am98bVtkZWdrbG5zdXZ3XXxsW2Fpa3R1dl18bltlbG9ydV18cFtsbnN0XXxzW2NlaGlrbW5vcnRdfHJbb3N1d118dXN8dFtkZ2tsbW5vdF18d3N8dmd8dnV8Y29cXC4oYW98Ynd8Y2t8Y3J8aVtkbG5dfGpwfGtlfGtyfGxzfG1hfG16fG56fHRofHR6fHVbZ2t6XXx2ZXx2aXx6W2Ftd10pKS8/JHxbQS1aYS16MC05LV0rXFwucHJvZFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8kfGRvY3NcXC5nb29nbGVcXC5jb20kKSIpLAphSFU9UmVnRXhwKCJeKGh0dHBzOi8vY3VycmVudHNcXC5nb29nbGVcXC5jb20pJCIpO3ZhciBkUD0hMTtnLndaPWNsYXNze2NvbnN0cnVjdG9yKG4sVz0hMSl7dGhpc1tJWzE3XV09bjt0aGlzW0lbOV1dPVc7dGhpc1tJWzM5XV09dGhpc1tJWzI4XV09dGhpc1tJWzI2XV09SVsyMV07dGhpc1tJWzFdXT17fTt0aGlzW0lbMjldXT1JWzIxXX1zZXQobixXKXt0aGlzW0lbMV1dW25dIT09VyYmKHRoaXNbSVsxXV1bbl09Vyx0aGlzW0lbMjldXT1JWzIxXSl9Z2V0KG4pe2VYKDE0LDcyMTMsdGhpcyk7cmV0dXJuIHRoaXNbSVsxXV1bbl18fG51bGx9V0QoKXt0aGlzW0lbMjldXXx8KHRoaXNbSVsyOV1dPUVjKDYsMjk5OCx0aGlzKSk7cmV0dXJuIHRoaXNbSVsyOV1dfWNsb25lKCl7dmFyIG49bmV3IGcud1oodGhpc1tJWzE3XV0sdGhpc1tJWzldXSk7bltJWzI2XV09dGhpc1tJWzI2XV07bltJWzI4XV09dGhpc1tJWzI4XV07bltJWzM5XV09dGhpc1tJWzM5XV07bltJWzFdXT1nLnMwKHRoaXNbSVsxXV0pO25bSVsyOV1dPXRoaXNbSVsyOV1dO3JldHVybiBufX07dmFyIEpaPXtGQUlSUExBWToiZmFpcnBsYXkiLFBMQVlSRUFEWToicGxheXJlYWR5IixXSURFVklORToid2lkZXZpbmUiLENMRUFSS0VZOm51bGwsRkxBU0hBQ0NFU1M6bnVsbCxVTktOT1dOOm51bGwsV0lERVZJTkVfQ0xBU1NJQzpudWxsfTt2YXIgd1A9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYj0hMSl7dGhpcy5uYW1lPW47dGhpcy5pZD1XO3RoaXMuaXNEZWZhdWx0PUQ7dGhpcy5pc0F1dG9EdWJiZWQ9Yn1nZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1nZXRJZCgpe3JldHVybiB0aGlzLmlkfWdldElzRGVmYXVsdCgpe3JldHVybiB0aGlzLmlzRGVmYXVsdH1nZXRJc0F1dG9EdWJiZWQoKXtyZXR1cm4gdGhpcy5pc0F1dG9EdWJiZWR9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5uYW1lfX07d1AucHJvdG90eXBlLmdldE5hbWU9d1AucHJvdG90eXBlLmdldE5hbWU7d1AucHJvdG90eXBlLmdldElkPXdQLnByb3RvdHlwZS5nZXRJZDt3UC5wcm90b3R5cGUuZ2V0SXNEZWZhdWx0PXdQLnByb3RvdHlwZS5nZXRJc0RlZmF1bHQ7d1AucHJvdG90eXBlLmdldElzQXV0b0R1YmJlZD13UC5wcm90b3R5cGUuZ2V0SXNBdXRvRHViYmVkO2cuUXc9Y2xhc3N7Y29uc3RydWN0b3Iobj17fSl7dGhpcy5sYW5ndWFnZUNvZGU9bi5sYW5ndWFnZUNvZGV8fCIiO3RoaXMubGFuZ3VhZ2VOYW1lPW4ubGFuZ3VhZ2VOYW1lfHxudWxsO3RoaXMua2luZD1uLmtpbmR8fCIiO3RoaXMubmFtZT1uLm5hbWU9PT12b2lkIDA/bnVsbDpuLm5hbWU7dGhpcy5kaXNwbGF5TmFtZT1uLmRpc3BsYXlOYW1lfHxudWxsO3RoaXMuaWQ9bi5pZHx8bnVsbDt0aGlzLk49bi5pc19zZXJ2YWJsZXx8ITE7dGhpcy5pc1RyYW5zbGF0ZWFibGU9bi5pc190cmFuc2xhdGVhYmxlfHwhMTt0aGlzLnVybD1uLnVybHx8bnVsbDt0aGlzLnZzc0lkPW4udnNzX2lkfHwiIjt0aGlzLmlzRGVmYXVsdD1uLmlzX2RlZmF1bHR8fCExO3RoaXMudHJhbnNsYXRpb25MYW5ndWFnZT1uLnRyYW5zbGF0aW9uTGFuZ3VhZ2V8fG51bGw7dGhpcy54dGFncz1uLnh0YWdzfHwiIjt0aGlzLmNhcHRpb25JZD1uLmNhcHRpb25JZHx8IiJ9Z2V0SWQoKXtyZXR1cm4gdGhpcy5pZH1nZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1pc1NlcnZhYmxlKCl7cmV0dXJuIHRoaXMuTn1XRCgpe3JldHVybiB0aGlzLnVybH1nZXRYdGFncygpe3JldHVybiB0aGlzLnh0YWdzfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubGFuZ3VhZ2VDb2RlKwoiOiAiK2cuY24odGhpcykrIiAtICIrdGhpcy52c3NJZCsiIC0gIisodGhpcy5jYXB0aW9uSWR8fCIiKX1lcXVhbHMobil7cmV0dXJuIG4/dGhpcy50b1N0cmluZygpPT09bi50b1N0cmluZygpOiExfU9WKCl7cmV0dXJuISghdGhpcy5sYW5ndWFnZUNvZGV8fHRoaXMudHJhbnNsYXRpb25MYW5ndWFnZSYmIXRoaXMudHJhbnNsYXRpb25MYW5ndWFnZS5sYW5ndWFnZUNvZGUpfX07dmFyIFdBPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5pZD1uO3RoaXMua1o9Vzt0aGlzLmNhcHRpb25UcmFja3M9W107dGhpcy5XPXRoaXMuWD1udWxsO3RoaXMueHRhZ3M9IiI7dGhpcy5WPXRoaXMuaj0hMTt0aGlzLk49bnVsbDt0aGlzLko9IlVOS05PV04iO3RoaXMuY2FwdGlvbnNJbml0aWFsU3RhdGU9IkNBUFRJT05TX0lOSVRJQUxfU1RBVEVfVU5LTk9XTiI7bj10aGlzLmtaLmlkLnNwbGl0KCIuIik7bi5sZW5ndGg+MSYmKHRoaXMuaj1uWzFdPT09IjIiLHRoaXMuVj1uWzFdPT09IjQiKX1nZXRMYW5ndWFnZUluZm8oKXtyZXR1cm4gdGhpcy5rWn1nZXRYdGFncygpe2lmKCF0aGlzLnh0YWdzKXtsZXQgbj10aGlzLmlkLnNwbGl0KCI7Iik7bi5sZW5ndGg+MSYmKHRoaXMueHRhZ3M9blsxXSl9cmV0dXJuIHRoaXMueHRhZ3N9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5rWi5uYW1lfWlzQXV0b0R1YmJlZCgpe3JldHVybiB0aGlzLmtaLmdldElzQXV0b0R1YmJlZCgpfX07CldBLnByb3RvdHlwZS5nZXRMYW5ndWFnZUluZm89V0EucHJvdG90eXBlLmdldExhbmd1YWdlSW5mbztXQS5wcm90b3R5cGUuaXNBdXRvRHViYmVkPVdBLnByb3RvdHlwZS5pc0F1dG9EdWJiZWQ7dmFyIGIzPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIsdj0wKXt0aGlzLko9bjt0aGlzLk49Vzt0aGlzLlc9RDt0aGlzLnJlYXNvbj1iO3RoaXMuTnM9dn1lcXVhbHMobil7cmV0dXJuIHRoaXMuSj09PW4uSiYmdGhpcy5OPT09bi5OJiZ0aGlzLlc9PT1uLlcmJnRoaXMucmVhc29uPT09bi5yZWFzb24mJighaFR8fHRoaXMuTnM9PT1uLk5zKX1pc0xvY2tlZCgpe3JldHVybiB0aGlzLlcmJiEhdGhpcy5KJiZ0aGlzLko9PT10aGlzLk59Y29tcG9zZShuKXtpZihuLlcmJnhKKG4pKXJldHVybiBZWjtpZihuLld8fHhKKHRoaXMpKXJldHVybiBuO2lmKHRoaXMuV3x8eEoobikpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy5KJiZuLko/TWF0aC5tYXgodGhpcy5KLG4uSik6dGhpcy5KfHxuLkosRD10aGlzLk4mJm4uTj9NYXRoLm1pbih0aGlzLk4sbi5OKTp0aGlzLk58fG4uTjtXPU1hdGgubWluKFcsRCk7dmFyIGI9MDtoVCYmKGI9dGhpcy5OcyE9PTAmJm4uTnMhPT0wP01hdGgubWluKHRoaXMuTnMsCm4uTnMpOnRoaXMuTnM9PT0wP24uTnM6dGhpcy5Ocyk7cmV0dXJuIGhUJiZXPT09dGhpcy5KJiZEPT09dGhpcy5OJiZiPT09dGhpcy5Oc3x8IWhUJiZXPT09dGhpcy5KJiZEPT09dGhpcy5OP3RoaXM6aFQ/bmV3IGIzKFcsRCwhMSxEPT09dGhpcy5OJiZiPT09dGhpcy5Ocz90aGlzLnJlYXNvbjpuLnJlYXNvbixiKTpuZXcgYjMoVyxELCExLEQ9PT10aGlzLk4/dGhpcy5yZWFzb246bi5yZWFzb24pfVgobil7cmV0dXJuIW4udmlkZW98fGhUJiZ0aGlzLk5zIT09MCYmdGhpcy5OczxuLk5zPyExOmdGKHRoaXMsbi52aWRlby5xdWFsaXR5KX19LG5oVT12QSgiYXV0byIsImhkMTA4MCIsITEsImwiKSxUOD12QSgiYXV0byIsImxhcmdlIiwhMSwibCIpLFlaPXZBKCJhdXRvIiwiYXV0byIsITEsInAiKSxoVD0hMTt2YXIgcGc9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy52aWRlb0luZm9zPW47dGhpcy5KPVc7dGhpcy5hdWRpb1RyYWNrcz1bXTt0aGlzLlc9Ynx8W107aWYodGhpcy5KKXtuPW5ldyBTZXQ7RD8uKHthaW5mb2xlbjp0aGlzLkoubGVuZ3RofSk7Zm9yKGxldCB2IG9mIHRoaXMuSil7aWYoIXYua1p8fG4uaGFzKHYua1ouaWQpKXtEPy4oe2F0a2VycjohIXYua1osaXRhZzp2Lml0YWcseHRhZzp2LkosbGFuZzp2LmtaPy5uYW1lfHwiIixsYW5naWQ6di5rWj8uaWR8fCIifSk7Y29udGludWV9Vz1uZXcgV0Eodi5pZCx2LmtaKTtuLmFkZCh2LmtaLmlkKTt0aGlzLmF1ZGlvVHJhY2tzLnB1c2goVyl9RD8uKHthdGtsZW46dGhpcy5hdWRpb1RyYWNrcy5sZW5ndGh9KX19Y1kobil7bj1ufHxZWjt2YXIgVz1nLkVNKHRoaXMudmlkZW9JbmZvcyx2PT5uLlgodikpLEQ9W10sYj17fTsKZm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPVdbdl0udmlkZW87YltrLnF1YWxpdHldfHwoRC5wdXNoKGspLGJbay5xdWFsaXR5XT0hMCl9cmV0dXJuIER9TnEobil7bj1ufHxZWjtyZXR1cm4gZy5FTSh0aGlzLnZpZGVvSW5mb3MsVz0+bi5YKFcpKX1nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpe3JldHVybiB0aGlzLmF1ZGlvVHJhY2tzfU4oKXtyZXR1cm4hIXRoaXMuSn19O3ZhciBBSFM9bmV3IFNldChbIjM1NiIsIjcyMSJdKSxXVnI9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLko9bnVsbDt0aGlzLk49bmV3IE1hcH1tQSgpe3N1cGVyLm1BKCl9fTt2YXIgUjQ9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2LGssaCx4LEwsZSl7dGhpcy5qJD1uO3RoaXMuc3RhcnRUaW1lPVc7dGhpcy5kdXJhdGlvbj1EO3RoaXMuaW5nZXN0aW9uVGltZT1iO3RoaXMuc291cmNlVVJMPXY7dGhpcy5mZj1MO3RoaXMuUU89ZTt0aGlzLmVuZFRpbWU9VytEO3RoaXMuTj1ofHwwO3RoaXMucmFuZ2U9a3x8bnVsbDt0aGlzLnBlbmRpbmc9eHx8ITE7dGhpcy5mZj1MfHxudWxsfX07Zy5qYz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2VnbWVudHM9W107dGhpcy5KPW51bGw7dGhpcy5ZPSEwO3RoaXMuSz0iIn1qKG4pe3RoaXMuc2VnbWVudHMucHVzaChuKX1NSShuKXtyZXR1cm4hIXRoaXMuVyhuKX1nZXREdXJhdGlvbihuKXtyZXR1cm4obj10aGlzLlcobikpP24uZHVyYXRpb246MH1EKG4pe3JldHVybiB0aGlzLmdldER1cmF0aW9uKG4pfVVjKCl7cmV0dXJuIDB9Wk8oKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy5zZWdtZW50c1swXS5qJDotMX1oQyhuKXtyZXR1cm4obj10aGlzLlcobikpP24uaW5nZXN0aW9uVGltZTpOYU59eCQoKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXS5qJDotMX1xZShuKXtyZXR1cm4gdGhpcy54JCgpPT09biYmIXRoaXMuWSYmbj49MH1iUSgpe3ZhciBuPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07cmV0dXJuIG4/bi5lbmRUaW1lOgpOYU59TGYoKXtyZXR1cm4gdGhpcy5zZWdtZW50c1swXS5zdGFydFRpbWV9SDcoKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGh9Tigpe3JldHVybiAwfVIzKG4pe3JldHVybihuPXRoaXMuWChuKSk/bi5qJDotMX1WKG4pe3JldHVybihuPXRoaXMuVyhuKSk/bi5zb3VyY2VVUkw6IiJ9Z2V0U3RhcnRUaW1lKG4pe3JldHVybihuPXRoaXMuVyhuKSk/bi5zdGFydFRpbWU6MH1qRShuKXtyZXR1cm4gdGhpcy5nZXRTdGFydFRpbWUobikrdGhpcy5nZXREdXJhdGlvbihuKX1pc0xvYWRlZCgpe3JldHVybiB0aGlzLnNlZ21lbnRzLmxlbmd0aD4wfVcobil7aWYodGhpcy5KJiZ0aGlzLkouaiQ9PT1uKXJldHVybiB0aGlzLko7bj1nLlc0KHRoaXMuc2VnbWVudHMsbmV3IFI0KG4sMCwwLDAsIiIpLChXLEQpPT5XLmokLUQuaiQpOwpyZXR1cm4gdGhpcy5KPW4+PTA/dGhpcy5zZWdtZW50c1tuXTpudWxsfVgobil7aWYodGhpcy5KJiZ0aGlzLkouc3RhcnRUaW1lPD1uJiZuPHRoaXMuSi5zdGFydFRpbWUrdGhpcy5KLmR1cmF0aW9uKXJldHVybiB0aGlzLko7bj1nLlc0KHRoaXMuc2VnbWVudHMse3N0YXJ0VGltZTpufSwoVyxEKT0+Vy5zdGFydFRpbWUtRC5zdGFydFRpbWUpOwpyZXR1cm4gdGhpcy5KPW4+PTA/dGhpcy5zZWdtZW50c1tuXTp0aGlzLnNlZ21lbnRzW01hdGgubWF4KDAsLW4tMildfWFwcGVuZChuKXtpZihuLmxlbmd0aClpZihuPWcuUk0obiksdGhpcy5zZWdtZW50cy5sZW5ndGgpe3ZhciBXPXRoaXMuc2VnbWVudHMubGVuZ3RoP2cuVU0odGhpcy5zZWdtZW50cykuZW5kVGltZTowLEQ9blswXS5qJC10aGlzLngkKCk7RD4xJiZnLkNiKHRoaXMuc2VnbWVudHMpO0Q9RD4wPzA6LUQrMTtmb3IobGV0IGI9RDtiPG4ubGVuZ3RoO2IrKylEPW5bYl0sRC5zdGFydFRpbWU9VyxELmVuZFRpbWU9RC5zdGFydFRpbWUrRC5kdXJhdGlvbixXKz1uW2JdLmR1cmF0aW9uLHRoaXMuc2VnbWVudHMucHVzaChuW2JdKX1lbHNlIHRoaXMuc2VnbWVudHM9bn1YZCgpe3JldHVybiAwfXR3KG4sVyl7dGhpcy5ZPW47dGhpcy5LPVd9fTtnLmpjLnByb3RvdHlwZS5VNz1XWigzKTt2YXIgRF89Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2PSExKXt0aGlzLmRhdGE9bjt0aGlzLm9mZnNldD1XO3RoaXMuc2l6ZT1EO3RoaXMudHlwZT1iO3RoaXMuTj0odGhpcy5KPXYpPzA6ODt0aGlzLmRhdGFPZmZzZXQ9dGhpcy5vZmZzZXQrdGhpcy5OfXNraXAobil7dGhpcy5OKz1ufX07dmFyIE9LdD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLm9mZnNldD0wO3RoaXMuZGF0YT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKG4pKX19O3ZhciBEVmk7Zy5sMz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiLHYsayxoKXt0aGlzLnN0YXJ0U2Vjcz1uO3RoaXMuQ2Y9Vzt0aGlzLmNvbnRleHQ9RDt0aGlzLmlkZW50aWZpZXI9Yjt0aGlzLmV2ZW50PXY7dGhpcy5OPWs7dGhpcy50aWxlQ29udGV4dD1ofX07RFZpPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLlBCPW47dGhpcy5vcHBvcnR1bml0eUlkPVc7dGhpcy5zZXJpYWxpemVkUHJlZmV0Y2hDb250ZXh0PUR9fTt2YXIgYk5VPXtwcmVkaWN0U3RhcnQ6InByZWRpY3RTdGFydCIsc3RhcnQ6InN0YXJ0IixbImNvbnRpbnVlIl06ImNvbnRpbnVlIixzdG9wOiJzdG9wIixwcmVmZXRjaDoicHJlZmV0Y2gifSxtNWo9e0VWRU5UX1BSRURJQ1RfU1RBUlQ6InByZWRpY3RTdGFydCIsRVZFTlRfU1RBUlQ6InN0YXJ0IixFVkVOVF9DT05USU5VRToiY29udGludWUiLEVWRU5UX1NUT1A6InN0b3AiLEVWRU5UX1BSRUZFVENIOiJwcmVmZXRjaCJ9O3ZhciBYNT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuZGF0YT1uO3RoaXMudXJpPVd8fCJodHRwOi8veW91dHViZS5jb20vc3RyZWFtaW5nL21ldGFkYXRhL3NlZ21lbnQvMTAyMDE1Ijt0aGlzLnNlZ21lbnROdW1iZXI9el8odGhpcywiU2VxdWVuY2UtTnVtYmVyIik7dGhpcy5qPXpfKHRoaXMsIlNlZ21lbnQtQ291bnQiKTt0aGlzLks9dGhpcy5kYXRhWyJTZWdtZW50LUR1cmF0aW9ucy1NcyJdfHwiIjt0aGlzLmluZ2VzdGlvblRpbWU9el8odGhpcywiSW5nZXN0aW9uLVdhbGx0aW1lLVVzIikvMUU2O3RoaXMuVz0oel8odGhpcywiRmlyc3QtRnJhbWUtVGltZS1VcyIpK3pfKHRoaXMsIkZpcnN0LUZyYW1lLVVuY2VydGFpbnR5LVVzIikpLzFFNjt0aGlzLnJiPXpfKHRoaXMsIlRhcmdldC1EdXJhdGlvbi1VcyIpLzFFNjt0aGlzLlY9dGhpcy5kYXRhWyJTdHJlYW0tRmluaXNoZWQiXT09PSJUIjt0aGlzLmlzU3RyZWFtaW5nPXRoaXMuZGF0YS5TdHJlYW1hYmxlPT09IlQiO3RoaXMuY3J5cHRvUGVyaW9kSW5kZXg9CnpfKHRoaXMsIkNyeXB0by1QZXJpb2QtSW5kZXgiKTt0aGlzLlg9el8odGhpcywiQ3J5cHRvLVBlcmlvZC1TZWNvbmRzIik7dGhpcy5OPSJDdXJyZW50LUFic29sdXRlLUxvdWRuZXNzLUxrZnMiaW4gdGhpcy5kYXRhP051bWJlcih0aGlzLmRhdGFbIkN1cnJlbnQtQWJzb2x1dGUtTG91ZG5lc3MtTGtmcyJdKXx8MDpudWxsfUooKXtyZXR1cm4gdGhpcy5kYXRhWyJTdGl0Y2hlZC1WaWRlby1DcG4iXT90aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUNwbiJdLnNwbGl0KCIsIikuc2xpY2UoMCwtMSk6W119ZksoKXtyZXR1cm4hISh0aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUlkIl18fHRoaXMuZGF0YVsiU3RpdGNoZWQtVmlkZW8tQ3BuIl18fHRoaXMuZGF0YVsiU3RpdGNoZWQtVmlkZW8tRHVyYXRpb24tVXMiXXx8dGhpcy5kYXRhWyJTdGl0Y2hlZC1WaWRlby1TdGFydC1GcmFtZS1JbmRleCJdfHx0aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUFic29sdXRlLUxvdWRuZXNzLUxrZnMiXXx8CnRoaXMuZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdfHx0aGlzLmRhdGFbIklzLUFkLUJyZWFrLUZpbmlzaGVkIl0pfX07dmFyIFJlaD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMuZHVyYXRpb249V319O3ZhciAkOHg9e1NURVJFT19MQVlPVVRfVU5LTk9XTjowLFNURVJFT19MQVlPVVRfTEVGVF9SSUdIVDoxLFNURVJFT19MQVlPVVRfVE9QX0JPVFRPTToyfTt2YXIgaFk9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLko9djt0aGlzLk49bnx8MDt0aGlzLnBpdGNoPVd8fDA7dGhpcy55YXc9RHx8MDt0aGlzLnJvbGw9Ynx8MDt2LmdldFVpbnQzMig0KX19O3ZhciB0WT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMucG9zPTA7dGhpcy5zdGFydD1XfHwwfU9KKCl7dmFyIG49dGhpcy5wb3M7dGhpcy5wb3M9MDt2YXIgVz0hMTt0cnl7c1kodGhpcyw0NDA3ODY4NTEpJiYodGhpcy5wb3M9MCxzWSh0aGlzLDQwODEyNTU0MykmJihXPSEwKSl9Y2F0Y2goRCl7aWYoRCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhpcy5wb3M9MCxXPSExLGcuR3EoRCk7ZWxzZSB0aHJvdyBEO310aGlzLnBvcz1uO3JldHVybiBXfX07dmFyIENzPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuQU89bjt0aGlzLk49e307dGhpcy51cmw9IiJ9c2V0KG4sVyl7dGhpcy5BTy5nZXQobik7dGhpcy5OW25dPVc7dGhpcy51cmw9IiJ9Z2V0KG4pe3JldHVybiB0aGlzLk5bbl18fHRoaXMuQU8uZ2V0KG4pfVdEKCl7dGhpcy51cmx8fCh0aGlzLnVybD1pS1UodGhpcykpO3JldHVybiB0aGlzLnVybH19O3ZhciB1VGk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9dGhpcy5YPXRoaXMuVz10aGlzLk49dGhpcy50aW1lZE91dD10aGlzLnN0YXJ0ZWQ9dGhpcy5WPXRoaXMuaj0wfX07dmFyIHZUPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTz10aGlzLkQ9dGhpcy5WPXRoaXMuSj0wO3RoaXMuaj10aGlzLks9ITE7dGhpcy5OPW47dGhpcy5XPW4uY2xvbmUoKX1wUyhuLFcpe3JldHVybiBuLllaP3RoaXMuaj90aGlzLks9ITA6dGhpcy5LPWpQKHRoaXMsbixXKTpqUCh0aGlzLG4sVyl9WShuLFcsRD0wKXtEPjE/bj1uLk1jOihXPVVZKFcsRjUodGhpcyx0aGlzLnBTKG4sVyksbikpLG49TWF0aC5tYXgodGhpcy5WLFcudGltZWRPdXQpK24uVFoqKHRoaXMuSi10aGlzLlYpKy4yNSp0aGlzLkQsbj1uPjM/MUUzKjEuNioqKG4tMyk6MCk7cmV0dXJuIG49PT0wPyEwOnRoaXMuTytuPCgwLGcuUikoKX1jSihuLFcpe3RoaXMuTi5zZXQobixXKTt0aGlzLlcuc2V0KG4sVyk7dGhpcy5YJiZ0aGlzLlguc2V0KG4sVyl9V04oKXtyZXR1cm4gdGhpcy5XLmdldCgiY3BuIil8fCIifVo1KG4sVyl7bi5BTz09PXRoaXMuTiYmKHRoaXMuTj1uWChuLFcpKTtuLkFPPT09dGhpcy5YJiYodGhpcy5YPQpuWChuLFcpKX10dygpe3RoaXMuaj0hMH1yMCgpe3JldHVybiB0aGlzLk4hPT10aGlzLlgmJiF0aGlzLkt9fTt2YXIgQ2o9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy5pbml0UmFuZ2U9RDt0aGlzLmluZGV4UmFuZ2U9Yjt0aGlzLko9bnVsbDt0aGlzLmNKPSExO3RoaXMuRkY9MDt0aGlzLlY9dGhpcy5TVT10aGlzLk89bnVsbDt0aGlzLmluZm89Vzt0aGlzLlhiPW5ldyB2VChuKX1OKCl7cmV0dXJuISF0aGlzLkomJnRoaXMuaW5kZXguaXNMb2FkZWQoKX1TJCgpe3JldHVybiExfUdDKG4pe3JldHVybltuXX1WUShuKXtyZXR1cm5bbl19fTt2YXIgYUI9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLnN0YXJ0PW47dGhpcy5lbmQ9Vzt0aGlzLmxlbmd0aD1XLW4rMX10b1N0cmluZygpe3JldHVybiB0aGlzLnN0YXJ0KyItIisodGhpcy5lbmQ9PW51bGw/IiI6dGhpcy5lbmQpfU4oKXtyZXR1cm4gdGhpcy5lbmQ9PW51bGw/e3N0YXJ0OlN0cmluZyh0aGlzLnN0YXJ0KX06e3N0YXJ0OlN0cmluZyh0aGlzLnN0YXJ0KSxlbmQ6U3RyaW5nKHRoaXMuZW5kKX19fTt2YXIgcUk9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYj0iIix2LGssaCx4LEwsZSxHLHI9IiIsTixILEEpe3RoaXMudHlwZT1uO3RoaXMuUEo9Vzt0aGlzLnJhbmdlPUQ7dGhpcy5zb3VyY2U9Yjt0aGlzLnZEPUc7dGhpcy5jbGlwSWQ9cjt0aGlzLkQ9Tjt0aGlzLmJkPUg7dGhpcy5yZXF1ZXN0VG9rZW49QTt0aGlzLk89W107dGhpcy5ZPSIiO3RoaXMuaiQ9LTE7dGhpcy50dz0wO3RoaXMuWT1iO3RoaXMuaiQ9dj49MD92Oi0xO3RoaXMuc2VnbWVudFN0YXJ0VGltZT1rfHwwO3RoaXMuVz1ofHwwO3RoaXMuTj14fHwwO3RoaXMuSj1MPj0wP0w6dGhpcy5yYW5nZT90aGlzLnJhbmdlLmxlbmd0aDpOYU47dGhpcy5yYW5nZT8obj10aGlzLk4rdGhpcy5KPT09dGhpcy5yYW5nZS5sZW5ndGgsZT10aGlzLnNvdXJjZT09PSJ3YXNtIj9lPz9uOm4pOmU9ZT09PXZvaWQgMD8hIXRoaXMuSjplO3RoaXMuYVo9ZTt0aGlzLnJhbmdlPyh0aGlzLlg9dGhpcy5zZWdtZW50U3RhcnRUaW1lK3RoaXMuVyoKdGhpcy5OL3RoaXMucmFuZ2UubGVuZ3RoLHRoaXMuSz10aGlzLlcqdGhpcy5KL3RoaXMucmFuZ2UubGVuZ3RoLHRoaXMuaj10aGlzLlgrdGhpcy5LKTp2Xyh0aGlzKX1WKCl7cmV0dXJuIHRoaXMuYVomJnRoaXMuUEouaW5kZXgucWUodGhpcy5qJCl9a2Yobil7cmV0dXJuIG4+PXRoaXMuWCYmbjw9dGhpcy5qfWlzRW5jcnlwdGVkKCl7cmV0dXJuIHRoaXMuUEouaW5mby5pc0VuY3J5cHRlZCgpfWVxdWFscyhuKXtyZXR1cm4hKCFufHxuLlBKIT09dGhpcy5QSnx8bi50eXBlIT09dGhpcy50eXBlfHwodGhpcy5yYW5nZSYmbi5yYW5nZT9uLnJhbmdlLnN0YXJ0IT09dGhpcy5yYW5nZS5zdGFydHx8bi5yYW5nZS5lbmQhPT10aGlzLnJhbmdlLmVuZDpuLnJhbmdlIT09dGhpcy5yYW5nZSl8fG4uaiQhPT10aGlzLmokfHxuLk4hPT10aGlzLk58fG4uSiE9PXRoaXMuSil9Y0ooKXtyZXR1cm4gdGhpcy50eXBlPT09NH1mWSgpe3JldHVybiEhdGhpcy5QSi5pbmZvLnZpZGVvfVRDKCl7cmV0dXJuIHRoaXMuaiR9Z2EoKXt2YXIgbj0KWHgodGhpcyksVz0iIjtnLmFfKG4sKEQsYik9PntXKz1gJHtifV8ke0R9X2B9KTsKcmV0dXJuIFcuc2xpY2UoMCwtMSl9Y2xvbmUoKXt2YXIgbj1uZXcgcUkodGhpcy50eXBlLHRoaXMuUEosdGhpcy5yYW5nZSx0aGlzLnNvdXJjZSx0aGlzLmokLHRoaXMuc2VnbWVudFN0YXJ0VGltZSx0aGlzLlcsdGhpcy5OLHRoaXMuSix0aGlzLmFaLHRoaXMudkQsdGhpcy5jbGlwSWQsdGhpcy5ELHRoaXMuYmQsdGhpcy5yZXF1ZXN0VG9rZW4pO24uWT10aGlzLlk7dGhpcy5PLmxlbmd0aD4wJiYobi5PPVsuLi50aGlzLk9dKTtuLlg9dGhpcy5YO24uSz10aGlzLks7bi5qPXRoaXMuajtuLnR3PXRoaXMudHc7cmV0dXJuIG59fTt2YXIgd2s9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLkF3PW47dGhpcy5YPXRoaXMuTj1udWxsO3RoaXMuaj10aGlzLlpBPU5hTjt0aGlzLnBTPXRoaXMucmVxdWVzdElkPW51bGw7dGhpcy5YYj1uWzBdLlBKLlhiO3RoaXMuSj1XfHwiIjtpZih0aGlzLkF3WzBdLnJhbmdlJiZ0aGlzLkF3WzBdLko+MCl7YTp7Zm9yKFc9MTtXPG4ubGVuZ3RoO1crKylpZighYlQobltXLTFdLG5bV10pKXtXPSExO2JyZWFrIGF9Vz0hMH1pZihXKXRoaXMucmFuZ2U9ZDV3KG4pLHRoaXMuVz10aGlzLnJhbmdlLmxlbmd0aDtlbHNle3RoaXMucmFuZ2U9dGhpcy5Bd1t0aGlzLkF3Lmxlbmd0aC0xXS5yYW5nZTtXPTA7Zm9yKGxldCBEIG9mIG4pVys9RC5yYW5nZS5sZW5ndGg7dGhpcy5XPVd9fX1ZbCgpe3JldHVybiB0aGlzLk4/dGhpcy5OLldEKCk6IiJ9aXNEZWNvcmF0ZWQoKXtyZXR1cm4hISh0aGlzLk58fHRoaXMuWCYmdGhpcy5YLk15KX1Rbigpe3JldHVybiBoSih0aGlzLkF3WzBdKX1rZihuKXtmb3IobGV0IFcgb2YgdGhpcy5BdylpZihXLnR5cGU9PT0KMyYmVy5rZihuKSlyZXR1cm4hMDtyZXR1cm4hMX1aNShuLFcpe3RoaXMuWGIuWjUobixXKTtpZih0aGlzLk4pe3RoaXMuTj1uWChuLFcpO2ZvcihsZXQgRCBvZlsiYWNwbnMiLCJjcG4iLCJkYWlzdGF0ZSIsInNraXBzcSJdKXRoaXMuTlsic2V0Il0oRCxudWxsKX10aGlzLnJlcXVlc3RJZD1uLmdldCgicmVxX2lkIil9fTt2YXIgZHQ9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcsRCxiLHYsaz0wKXtzdXBlcihuLFcsYik7dGhpcy52Sj1EO3RoaXMucmI9azt0aGlzLmluZGV4PXZ8fG5ldyBnLmpjfVcoKXtyZXR1cm4hMX1EKCl7cmV0dXJuITB9VEMoKXtyZXR1cm4hMX1TJCgpe3JldHVybiF0aGlzLnZKfVkoKXtyZXR1cm4gbmV3IHdrKFtuZXcgcUkoMSx0aGlzLHRoaXMuaW5pdFJhbmdlLCJnZXRNZXRhZGF0YVJlcXVlc3RJbmZvIildLHRoaXMudkopfWJkKCl7cmV0dXJuIG51bGx9ZSQobil7dGhpcy5YKG4pO3JldHVybiB0aGlzLkQoKSYmbi5KJiYhbi5hWj9uZXcgd2soW25ldyBxSShuLnR5cGUsbi5QSixuLnJhbmdlLCJsaXZlR2V0TmV4dFJlcXVlc3RJbmZvQnlTZWdtZW50IixuLmokLG4uc2VnbWVudFN0YXJ0VGltZSxuLlcsbi5OK24uSixOYU4sITApXSx0aGlzLmluZGV4LlYobi5qJCkpOnRoaXMuaihnayhuKSwhMSl9SyhuLFc9ITEpe249dGhpcy5pbmRleC5SMyhuKTtXJiYobj1NYXRoLm1pbih0aGlzLmluZGV4LngkKCksCm4rMSkpO3JldHVybiB0aGlzLmoobiwhMCl9RHQobil7RE8obil9WChuKXtyZXR1cm4gbi5KPT09MD8hMDp0aGlzLmluZGV4LngkKCk+bi5qJCYmdGhpcy5pbmRleC5aTygpPD1uLmokKzF9dXBkYXRlKG4sVyxEKXt0aGlzLmluZGV4LmFwcGVuZChuKTtQQSh0aGlzLmluZGV4LEQpO3RoaXMudHcoVywidXBkYXRlIil9Tigpe3JldHVybiB0aGlzLlMkKCk/ITA6c3VwZXIuTigpfWoobixXKXt2YXIgRD10aGlzLmluZGV4LlYobiksYj10aGlzLmluZGV4LmdldFN0YXJ0VGltZShuKSx2PXRoaXMuaW5kZXguZ2V0RHVyYXRpb24obiksaztXP3Y9az0wOms9dGhpcy5pbmZvLk5zPjA/dGhpcy5pbmZvLk5zKnY6MUUzO3JldHVybiBuZXcgd2soW25ldyBxSSgzLHRoaXMsdm9pZCAwLCJsaXZlQ3JlYXRlUmVxdWVzdEluZm9Gb3JTZWdtZW50IixuLGIsdiwwLGssIVcpXSxEKX1ISigpe3JldHVybiB0aGlzLlMkKCk/MDp0aGlzLmluaXRSYW5nZS5sZW5ndGh9bnUoKXtyZXR1cm4hMX10dyhuLFcpe3RoaXMuaW5kZXgudHcobiwKVyl9fTt2YXIgdmhiPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIsdil7dGhpcy5qJD1uO3RoaXMuc3RhcnRTZWNzPVc7dGhpcy5DZj1EO3RoaXMuTj1ifHxOYU47dGhpcy5KPXZ8fE5hTn19O3ZhciBCXz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj1bXTt0aGlzLko9bnVsbDt0aGlzLlY9MDt0aGlzLlc9W107dGhpcy5qPSExO3RoaXMuSz0iIjt0aGlzLlg9LTF9dXBkYXRlKG4pe3ZhciBXPXZvaWQgMDt0aGlzLkomJihXPXRoaXMuSik7e2xldCBBPW5ldyBCXzt2YXIgRD1BcnJheS5mcm9tKG4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlMiKSk7aWYoRC5sZW5ndGgpe3ZhciBiPStsVChuLCJ0aW1lc2NhbGUiKXx8MSx2PSgrRFswXS5nZXRBdHRyaWJ1dGUoInQiKXx8MCkvYixrPStsVChuLCJzdGFydE51bWJlciIpfHwwO0EuWD12O3ZhciBoPVc/Vy5zdGFydFNlY3MrVy5DZjowLHg9RGF0ZS5wYXJzZShDeihsVChuLCJ5dDpzZWdtZW50SW5nZXN0VGltZSIpKSkvMUUzO0Euaj1uLnBhcmVudEVsZW1lbnQudGFnTmFtZT09PSJTZWdtZW50VGVtcGxhdGUiO0EuaiYmKEEuSz1sVChuLCJtZWRpYSIpKTtuPVc/ay1XLmokOjE7QS5WPW4+MD8wOi1uKzE7Zm9yKEggb2YgRCl7bj0rSC5nZXRBdHRyaWJ1dGUoImQiKS8KYjtEPSgrSC5nZXRBdHRyaWJ1dGUoInl0OnNpZCIpfHwwKS9iO2xldCB5PStILmdldEF0dHJpYnV0ZSgiciIpfHwwO2ZvcihsZXQgVD0wO1Q8PXk7VCsrKXtpZihXJiZrPD1XLmokKXtrKys7Y29udGludWV9dmFyIEw9bmV3IHZoYihrLGgsbix4K0Qsdik7QS5OLnB1c2goTCk7Yjp7dmFyIGU9SDt2YXIgRz1iLHI9TC5zdGFydFNlY3M7TD1lLmdldEF0dHJpYnV0ZSgieXQ6Y3VlcG9pbnRUaW1lT2Zmc2V0Iik7dmFyIE49ZS5nZXRBdHRyaWJ1dGUoInl0OmN1ZXBvaW50RHVyYXRpb24iKTtpZighTHx8IU4pe2U9bnVsbDticmVhayBifUw9TnVtYmVyKEwpO3I9LUwvRytyO0c9TnVtYmVyKE4pL0c7Tj1lLmdldEF0dHJpYnV0ZSgieXQ6Y3VlcG9pbnRDb250ZXh0Iil8fG51bGw7bGV0IHo9ZS5nZXRBdHRyaWJ1dGUoInl0OmN1ZXBvaW50SWRlbnRpZmllciIpfHwiIjtlPWUuZ2V0QXR0cmlidXRlKCJ5dDpjdWVwb2ludEV2ZW50Iil8fCIiO2U9bmV3IGcubDMocixHLE4seixiTlVbZV18fCJ1bmtub3duIiwKTCl9ZSYmQS5XLnB1c2goZSk7aysrO2grPW47dis9bjt4Kz1uK0R9fUEuTi5sZW5ndGgmJihBLko9Zy5VTShBLk4pKX12YXIgSD1BfXRoaXMuVj1ILlY7dGhpcy5KPUguSnx8dGhpcy5KO2cuUTIodGhpcy5OLEguTik7Zy5RMih0aGlzLlcsSC5XKTt0aGlzLmo9SC5qO3RoaXMuSz1ILks7dGhpcy5YPT09LTEmJih0aGlzLlg9SC5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpfWdldFN0cmVhbVRpbWVPZmZzZXQoKXtyZXR1cm4gdGhpcy5YPT09LTE/MDp0aGlzLlh9fTt2YXIga0xDPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPVtdO3RoaXMuTj1udWxsO3RoaXMuSj17fTt0aGlzLlc9e319fTt2YXIgZ1M9Y2xhc3MgZXh0ZW5kcyBnLmpje2NvbnN0cnVjdG9yKHtyYjpuPTAsT1Q6Vz0hMSx1YjpEPTAsSXQ6Yj0wLEhQOnY9SW5maW5pdHksdWs6az0wLFhnOmg9ITEsRTM6eD0hMX09e30pe3N1cGVyKCk7dGhpcy5Ebj10aGlzLnFxPS0xO3RoaXMuTzg9bjt0aGlzLnViPUQ7dGhpcy5PVD1XO3RoaXMuSXQ9Yjt0aGlzLkhQPXY7dGhpcy51az1rOygodGhpcy5YZz1oKXx8aXNGaW5pdGUodikmJnRoaXMuSFA+MCkmJlcmJlp1JiZ0aGlzLnR3KCExLCJwb3N0TGl2ZSIpO3RoaXMuRTM9eH1VYygpe3JldHVybiB0aGlzLk84fU1JKG4sVyl7bj1GeCh0aGlzLG4pO3JldHVybiBuPj0wJiYoV3x8IXRoaXMuc2VnbWVudHNbbl0ucGVuZGluZyl9Wk8oKXtyZXR1cm4gdGhpcy5PVD90aGlzLnNlZ21lbnRzLmxlbmd0aD90aGlzLlgodGhpcy5MZigpKS5qJDotMTpzdXBlci5aTygpfUxmKCl7aWYodGhpcy5YZylyZXR1cm4gMDtpZighdGhpcy5PVClyZXR1cm4gc3VwZXIuTGYoKTtpZighdGhpcy5zZWdtZW50cy5sZW5ndGgpcmV0dXJuIDA7CnZhciBuPU1hdGgubWF4KGcuVU0odGhpcy5zZWdtZW50cykuZW5kVGltZS10aGlzLnViLDApO3JldHVybiB0aGlzLkl0PjAmJnRoaXMuWChuKS5qJDx0aGlzLkl0P3RoaXMuVyh0aGlzLkl0KS5zdGFydFRpbWU6bn1iUSgpe2lmKHRoaXMuRTMmJnRoaXMuRG4mJnRoaXMuRG4+MClyZXR1cm4gdGhpcy5Ebi8xRTM7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBzdXBlci5iUSgpO3ZhciBuPXRoaXMueCQoKTtpZighdGhpcy5PVHx8bjw9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXS5qJCluPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07ZWxzZXt2YXIgVz10aGlzLnNlZ21lbnRzW3RoaXMuc2VnbWVudHMubGVuZ3RoLTFdO249bmV3IFI0KG4sTWF0aC5tYXgoMCxXLnN0YXJ0VGltZS0oVy5qJC1uKSp0aGlzLk84KSx0aGlzLk84LDAsYHNxLyR7bn1gLHZvaWQgMCx2b2lkIDAsITApfXJldHVybiB0aGlzLlhnP01hdGgubWluKHRoaXMudWIsCm4uZW5kVGltZSk6bi5lbmRUaW1lfUg3KCl7cmV0dXJuIHRoaXMuT1Q/dGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy54JCgpLXRoaXMuWk8oKSsxOjA6c3VwZXIuSDcoKX14JCgpe3ZhciBuPU1hdGgubWluKHRoaXMuSFAsTWF0aC5tYXgoc3VwZXIueCQoKSx0aGlzLnFxKSksVz10aGlzLnViKjFFMztXPXRoaXMuRG4+MCYmdGhpcy5EbjxXO3RoaXMuWGcmJnRoaXMudWI+MCYmdGhpcy5xcT4wJiYhVyYmKFc9dGhpcy5YKHRoaXMudWIpKSYmKG49TWF0aC5taW4oVy5qJC0xLG4pKTtyZXR1cm4gbn1PZygpe3JldHVybiB0aGlzLnNlZ21lbnRzLmxlbmd0aD90aGlzLnNlZ21lbnRzW3RoaXMuc2VnbWVudHMubGVuZ3RoLTFdOm51bGx9aihuKXt2YXIgVz1GeCh0aGlzLG4uaiQpO2lmKFc+PTApdGhpcy5zZWdtZW50c1tXXT1uO2Vsc2UgaWYodGhpcy5zZWdtZW50cy5zcGxpY2UoLShXKzEpLDAsbiksdGhpcy51ayYmbi5qJCUoMzAwL3RoaXMuTzgpPT09MCl7dmFyIEQ9dGhpcy5zZWdtZW50c1swXS5qJCwKYj1NYXRoLmZsb29yKHRoaXMudWsvdGhpcy5POCk7bj1uLmokLWI7Vz0tKFcrMSktYjtXPjAmJm4+RCYmKHRoaXMuc2VnbWVudHM9dGhpcy5zZWdtZW50cy5zbGljZShXKSl9fU8obil7bj1GeCh0aGlzLG4pO24+PTAmJnRoaXMuc2VnbWVudHMuc3BsaWNlKG4sMSl9VFgoKXtyZXR1cm4gdGhpcy5xcX1xZShuKXtyZXR1cm4gWnU/IXRoaXMuWSYmbj49MCYmdGhpcy54JCgpPD1uOnN1cGVyLnFlKG4pfVgobil7aWYoIXRoaXMuT1QpcmV0dXJuIHN1cGVyLlgobik7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBXPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07aWYobjx0aGlzLnNlZ21lbnRzWzBdLnN0YXJ0VGltZSlXPU1hdGgubWF4KDAsdGhpcy5zZWdtZW50c1swXS5qJC1NYXRoLmNlaWwoKHRoaXMuc2VnbWVudHNbMF0uc3RhcnRUaW1lLW4pL3RoaXMuTzgpKTtlbHNlIGlmKG4+PVcuZW5kVGltZSlXPVcuaiQrTWF0aC5mbG9vcigobi1XLmVuZFRpbWUpLwp0aGlzLk84KzEpO2Vsc2V7Vz1EZSh0aGlzLnNlZ21lbnRzLGI9Pm48Yi5zdGFydFRpbWU/LTE6bj49Yi5lbmRUaW1lPzE6MCk7CmlmKFc+PTApcmV0dXJuIHRoaXMuc2VnbWVudHNbV107dmFyIEQ9LShXKzEpO1c9dGhpcy5zZWdtZW50c1tELTFdO0Q9dGhpcy5zZWdtZW50c1tEXTtXPU1hdGguZmxvb3IoKG4tVy5lbmRUaW1lKS8oKEQuc3RhcnRUaW1lLVcuZW5kVGltZSkvKEQuaiQtVy5qJC0xKSkrMSkrVy5qJH1yZXR1cm4gdGhpcy5XKFcpfVcobil7aWYoIXRoaXMuT1QpcmV0dXJuIHN1cGVyLlcobik7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBXPUZ4KHRoaXMsbik7aWYoVz49MClyZXR1cm4gdGhpcy5zZWdtZW50c1tXXTt2YXIgRD0tKFcrMSk7Vz10aGlzLk84O2lmKEQ9PT0wKXZhciBiPU1hdGgubWF4KDAsdGhpcy5zZWdtZW50c1swXS5zdGFydFRpbWUtKHRoaXMuc2VnbWVudHNbMF0uaiQtbikqVyk7ZWxzZSBEPT09dGhpcy5zZWdtZW50cy5sZW5ndGg/KGI9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXSxiPWIuZW5kVGltZSsobi1iLmokLTEpKlcpOihiPQp0aGlzLnNlZ21lbnRzW0QtMV0sVz10aGlzLnNlZ21lbnRzW0RdLFc9KFcuc3RhcnRUaW1lLWIuZW5kVGltZSkvKFcuaiQtYi5qJC0xKSxiPWIuZW5kVGltZSsobi1iLmokLTEpKlcpO3JldHVybiBuZXcgUjQobixiLFcsMCxgc3EvJHtufWAsdm9pZCAwLHZvaWQgMCwhMCl9fSxadT0hMTt2YXIgV1Q9Y2xhc3MgZXh0ZW5kcyBkdHtjb25zdHJ1Y3RvcihuLFcsRD17fSl7c3VwZXIobixXLCIiLHZvaWQgMCx2b2lkIDAsRC5yYnx8MCk7dGhpcy5pbmRleD1uZXcgZ1MoRCl9VEMoKXtyZXR1cm4hMH1OKCl7cmV0dXJuITB9WChuKXtyZXR1cm4gdGhpcy5EKCkmJm4uSiYmIW4uYVp8fCFuLlBKLmluZGV4LnFlKG4uaiQpfVkoKXt9SyhuLFc9ITEpe3JldHVybiB0eXBlb2YgbiE9PSJudW1iZXIifHxpc0Zpbml0ZShuKT9zdXBlci5LKG4sVyk6bmV3IHdrKFtuZXcgcUkoMyx0aGlzLHZvaWQgMCwibWxMaXZlR2V0UmVxSW5mb1N0dWJGb3JUaW1lIiwtMSx2b2lkIDAsdGhpcy5yYix2b2lkIDAsdGhpcy5yYip0aGlzLmluZm8uTnMpXSwiIil9aihuLFcpe2lmKHRoaXMuaW5kZXguTUkobikpcmV0dXJuIHN1cGVyLmoobixXKTt2YXIgRD10aGlzLmluZGV4LmdldFN0YXJ0VGltZShuKSxiPU1hdGgucm91bmQodGhpcy5yYip0aGlzLmluZm8uTnMpLHY9dGhpcy5yYjtXJiYodj1iPTApO3JldHVybiBuZXcgd2soW25ldyBxSSgzLAp0aGlzLHZvaWQgMCwibWxMaXZlQ3JlYXRlUmVxSW5mb0ZvclNlZyIsbixELHYsdm9pZCAwLGIsIVcpXSxuPj0wP2BzcS8ke259YDoiIil9fTt2YXIgcnQ9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcpe3N1cGVyKG4sVyk7dGhpcy5pbmRleD1uZXcgZy5qYzt0aGlzLmluZGV4LnR3KCExLCJkIil9Vygpe3JldHVybiExfUQoKXtyZXR1cm4hMX1UQygpe3JldHVybiExfVkoKXtyZXR1cm4gbmV3IHdrKFtuZXcgcUkoMSx0aGlzLHZvaWQgMCwib3RmSW5pdCIpXSwic3EvMCIpfWJkKCl7cmV0dXJuIG51bGx9ZSQobil7dGhpcy5YKG4pO3JldHVybiBNSSh0aGlzLGdrKG4pLCExKX1LKG4sVz0hMSl7bj10aGlzLmluZGV4LlIzKG4pO1cmJihuPU1hdGgubWluKHRoaXMuaW5kZXgueCQoKSxuKzEpKTtyZXR1cm4gTUkodGhpcyxuLCEwKX1EdChuKXtuLmluZm8udHlwZT09PTEmJih0aGlzLkp8fCh0aGlzLko9JE0obi5KKSksbi5OJiZuLk4udXJpPT09Imh0dHA6Ly95b3V0dWJlLmNvbS9zdHJlYW1pbmcvb3RmL2R1cmF0aW9ucy8xMTIwMTUiJiZuR1ModGhpcyxuLk4pKX1YKG4pe3JldHVybiBuLko9PT0wPyEwOnRoaXMuaW5kZXgueCQoKT4Kbi5qJCYmdGhpcy5pbmRleC5aTygpPD1uLmokKzF9SEooKXtyZXR1cm4gMH1udSgpe3JldHVybiExfX07dmFyIGE0LGhoYixEODIsbk0sV0t3O2cuVnM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50YWc9bn19O2E0PW5ldyBNYXA7aGhiPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPW5ldyBNYXB9fTtEODI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk49MTA7dGhpcy5KPURhdGUubm93KCl9fTtuTT1uZXcgTWFwO1dLdz1uZXcgaGhiO3ZhciBiOD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuaW5mbz1uO3RoaXMuSj1XO3RoaXMuTj1udWxsO3RoaXMuWD10aGlzLlc9LTE7dGhpcy50aW1lc3RhbXBPZmZzZXQ9MDt0aGlzLmlzTG9ja2VkPXRoaXMuSz0hMTt0aGlzLlY9dGhpcy5pbmZvLlBKLlMkKCkmJiF0aGlzLmluZm8uTn1qKG4sVz0hMSxEPTApe2lmKHRoaXMuaXNMb2NrZWR8fG4uaXNMb2NrZWR8fCFiVCh0aGlzLmluZm8sbi5pbmZvKXx8dGhpcy5pbmZvLmFaKXJldHVybiBudWxsO2lmKEQpe2lmKHRoaXMuSi50b3RhbExlbmd0aCtuLkoudG90YWxMZW5ndGg+RClyZXR1cm4gbnVsbH1lbHNlIGlmKFcmJihXPXRoaXMuSixEPW4uSixXPSEoRC5OLmxlbmd0aD94TShXLEQuTlswXSk6MSkpLFcpcmV0dXJuIG51bGw7Vz1uZXcgcUkodGhpcy5pbmZvLnR5cGUsdGhpcy5pbmZvLlBKLHRoaXMuaW5mby5yYW5nZSx0aGlzLmluZm8uWSx0aGlzLmluZm8uaiQsdGhpcy5pbmZvLnNlZ21lbnRTdGFydFRpbWUsdGhpcy5pbmZvLlcsCnRoaXMuaW5mby5OLHRoaXMuaW5mby5KLHRoaXMuaW5mby5hWix0aGlzLmluZm8udkQsdGhpcy5pbmZvLmNsaXBJZCx0aGlzLmluZm8uRCk7UF8oVyxuLmluZm8pO0Q9bmV3IFM1O2U1KEQsdGhpcy5KKTtlNShELG4uSik7Vz1uZXcgYjgoVyxEKTtXLk4hPW51bGwmJm4uTiE9bnVsbCYmZy5jXygiZGFzaCIsNDE0NjI3OTU3LGBtZXJnZWQgc2xpY2UgZW1zZyBvdmVycmlkZGVuOyBwcmV2OiAke1cuTi5mSygpfSBuZXh0OiAke24uTi5mSygpfWApO1cuTj1uLk58fHRoaXMuTjtXLlc9dGhpcy5XIT09LTE/dGhpcy5XOm4uVztXLlg9dGhpcy5YIT09LTE/dGhpcy5YOm4uWDtyZXR1cm4gV319O2cuQkM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmNvdW50PTA7dGhpcy5KPTE7dGhpcy5XPSExO3RoaXMub2Zmc2V0cz1uZXcgRmxvYXQ2NEFycmF5KDEyOCk7dGhpcy5zdGFydFRpY2tzPW5ldyBGbG9hdDY0QXJyYXkoMTI4KX1NSShuKXtyZXR1cm4gbjw9dGhpcy54JCgpfU4obil7cmV0dXJuIHRoaXMub2Zmc2V0c1tuXX1nZXRTdGFydFRpbWUobil7cmV0dXJuIHRoaXMuc3RhcnRUaWNrc1tuXS90aGlzLkp9akUobil7cmV0dXJuIHRoaXMuZ2V0U3RhcnRUaW1lKG4pK3RoaXMuZ2V0RHVyYXRpb24obil9aEMoKXtyZXR1cm4gTmFOfWdldER1cmF0aW9uKG4pe249dGhpcy5EKG4pO3JldHVybiBuPj0wP24vdGhpcy5KOi0xfUQobil7cmV0dXJuIG4rMTx0aGlzLmNvdW50fHx0aGlzLlc/dGhpcy5zdGFydFRpY2tzW24rMV0tdGhpcy5zdGFydFRpY2tzW25dOi0xfVVjKCl7cmV0dXJuIDB9Wk8oKXtyZXR1cm4gMH14JCgpe3JldHVybiB0aGlzLmNvdW50LTF9cWUobil7cmV0dXJuIHRoaXMueCQoKT09PQpuJiZuPj0wfWJRKCl7cmV0dXJuIHRoaXMuVz90aGlzLnN0YXJ0VGlja3NbdGhpcy5jb3VudF0vdGhpcy5KOk5hTn1MZigpe3JldHVybiAwfUg3KCl7cmV0dXJuIHRoaXMuY291bnR9Vigpe3JldHVybiIifVIzKG4pe24qPXRoaXMuSjtuPWcuVzQodGhpcy5zdGFydFRpY2tzLnN1YmFycmF5KDAsdGhpcy5jb3VudCksbik7cmV0dXJuIG4+PTA/bjpNYXRoLm1heCgwLC1uLTIpfWlzTG9hZGVkKCl7cmV0dXJuIHRoaXMueCQoKT49MH1YZChuLFcpe2lmKG4+PXRoaXMueCQoKSlyZXR1cm4gMDt2YXIgRD0wO2ZvcihXPXRoaXMuZ2V0U3RhcnRUaW1lKG4pK1c7bjx0aGlzLngkKCkmJlc+dGhpcy5nZXRTdGFydFRpbWUobik7bisrKUQ9TWF0aC5tYXgoRCx0TSh0aGlzLG4pL3RoaXMuZ2V0RHVyYXRpb24obikpO3JldHVybiBEfXJlc2l6ZShuKXtuKz0yO3ZhciBXPXRoaXMub2Zmc2V0czt0aGlzLm9mZnNldHM9bmV3IEZsb2F0NjRBcnJheShuKzEpO3ZhciBEPXRoaXMuc3RhcnRUaWNrczt0aGlzLnN0YXJ0VGlja3M9Cm5ldyBGbG9hdDY0QXJyYXkobisxKTtmb3Iobj0wO248dGhpcy5jb3VudCsxO24rKyl0aGlzLm9mZnNldHNbbl09V1tuXSx0aGlzLnN0YXJ0VGlja3Nbbl09RFtuXX1jYXAobixXKXskWCh0aGlzKTt0aGlzLlc9ITA7dGhpcy5zdGFydFRpY2tzW3RoaXMuY291bnRdPVc7dGhpcy5vZmZzZXRzW3RoaXMuY291bnRdPW59fTtnLkJDLnByb3RvdHlwZS5VNz1XWigyKTt2YXIgc2s9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcsRCxiKXtzdXBlcihuLFcsRCxiKTt0aGlzLmo9bnVsbDt0aGlzLmluZGV4PW5ldyBnLkJDfVkobixXKXt2YXIgRD1uZXcgcUkoMix0aGlzLHRoaXMuaW5kZXhSYW5nZSwiaW5kZXhJbmZvIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsVyksYj1bbmV3IHFJKDEsdGhpcyx0aGlzLmluaXRSYW5nZSwiaW5pdEluZm8iLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxXKSxEXTt0aGlzLmluZm8uY29udGVudExlbmd0aD4wJiZuJiYoRD1ELnJhbmdlLmVuZCsxLG49TWF0aC5taW4obix0aGlzLmluZm8uY29udGVudExlbmd0aC1EKSxuPjAmJmIucHVzaChuZXcgcUkoNCx0aGlzLFdfKEQsbiksInRiZFJhbmdlIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsVykpKTtyZXR1cm4gbmV3IHdrKGIpfUR0KG4pe2lmKG4uaW5mby50eXBlPT09CjEpe2lmKHRoaXMuSilyZXR1cm47dGhpcy5KPSRNKG4uSil9ZWxzZSBpZihuLmluZm8udHlwZT09PTIpe2lmKHRoaXMuanx8dGhpcy5pbmRleC54JCgpPj0wKXJldHVybjtpZihnLlJCKHRoaXMuaW5mbykpe3ZhciBXPXRoaXMuaW5kZXgsRD1nLldSKG4pO249bi5pbmZvLnJhbmdlLnN0YXJ0O3ZhciBiPWcubnMoRCwwLDE5MzYyODY4NDApO0Q9THMoYik7Vy5KPUQudGltZXNjYWxlO3ZhciB2PUQuZjg7Vy5vZmZzZXRzWzBdPUQuTm8rbitiLnNpemU7Vy5zdGFydFRpY2tzWzBdPXY7Vy5XPSEwO249RC5xZy5sZW5ndGg7Zm9yKHY9MDt2PG47disrKXJ5KFcsRC5Ic1t2XSxELnFnW3ZdKX1lbHNlIHRoaXMuaj1nLldSKG4pfWlmKHRoaXMuaW5mby5xSCgpJiZ0aGlzLkomJnRoaXMuail7bj1uZXcgRGF0YVZpZXcodGhpcy5KLmJ1ZmZlcik7Vz10aGlzLmluZGV4O3Y9dGhpcy5qO0Q9dGhpcy5pbmRleFJhbmdlLmVuZDtiPW5ldyB0WShuKTtuPWI7Yj1uLnBvczt2YXIgaz17Qzk6MUU2LG84OjFFOSwKZHVyYXRpb246MCx4TTowLGJtOjB9O2lmKHNZKG4sNDA4MTI1NTQzKSlpZihrLnhNPU5rKG4sITApLGsuYm09bi5zdGFydCtuLnBvcyxzWShuLDM1NzE0OTAzMCkpe2Zvcih2YXIgaD1yQShuKTshSHcoaCk7KXt2YXIgeD1OayhoLCExKTt4PT09MjgwNzcyOT9rLkM5PWZzKGgpOng9PT0yODA3NzMwP2subzg9ZnMoaCk6eD09PTE3NTQ1P2suZHVyYXRpb249SUIoaCk6SlkoaCl9bi5wb3M9YjtuPWt9ZWxzZSBuLnBvcz1iLG49bnVsbDtlbHNlIG4ucG9zPWIsbj1udWxsO2lmKG4hPT1udWxsKXtXLko9bi5vOC9uLkM5O2I9bmV3IHRZKHYpO3Y9YjtoPW4uYm07Yj12LnBvcztrPVtdO2lmKHNZKHYsNDc1MjQ5NTE1KSl7Zm9yKHg9ckEodik7c1koeCwxODcpOyl7bGV0IEw9ckEoeCk7aWYoIXNZKEwsMTc5KSljb250aW51ZTtsZXQgZT1mcyhMKTtpZighc1koTCwxODMpKWNvbnRpbnVlO0w9ckEoTCk7bGV0IEc9aDtmb3IoO3NZKEwsMjQxKTspRz1mcyhMKStoO2sucHVzaCh7Zm86RyxuODplfSl9aWYoay5sZW5ndGg+CjAmJkQ9PT1rWzBdLmZvKWZvcihEPTA7RDxrLmxlbmd0aDtEKyspa1tEXS5mbys9MTt2LnBvcz1iO0Q9a31lbHNlIHYucG9zPWIsRD1udWxsO2lmKEQhPT1udWxsKXtmb3IobGV0IEwgb2YgRClEPVcsdj1MLmZvLGI9TC5uOCwkWChEKSxELm9mZnNldHNbRC5jb3VudF09dixELnN0YXJ0VGlja3NbRC5jb3VudF09YixELmNvdW50Kys7Vy5jYXAobi54TStuLmJtLG4uZHVyYXRpb24pfX10aGlzLmo9bnVsbH19R0Mobil7dmFyIFc9dGhpcy5WUShuLmluZm8pLEQ9bi5pbmZvLnJhbmdlLnN0YXJ0K24uaW5mby5OLGI9W107Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPWdkKG4uSixXW3ZdLnJhbmdlLnN0YXJ0K1dbdl0uTi1ELFdbdl0uSik7Yi5wdXNoKG5ldyBiOChXW3ZdLGspKX1yZXR1cm4gYn1WUShuKXtmb3IodmFyIFc9bi5yYW5nZS5zdGFydCtuLk4sRD0wO0Q8dGhpcy5pbmRleC54JCgpJiZXPj10aGlzLmluZGV4Lk4oRCsxKTspRCsrO3JldHVybiBzTih0aGlzLEQsVywKbi5KKS5Bd31YKG4pe24uVigpO3JldHVybiB0aGlzLk4oKT8hMDpuLnJhbmdlLmVuZCsxPHRoaXMuaW5mby5jb250ZW50TGVuZ3RofWJkKG4sVyl7dGhpcy5YKG4pO2lmKCF0aGlzLk4oKSlyZXR1cm4gVz1XXyhuLnJhbmdlLmVuZCsxLFcpLFcuZW5kKzE+dGhpcy5pbmZvLmNvbnRlbnRMZW5ndGgmJihXPW5ldyBhQihXLnN0YXJ0LHRoaXMuaW5mby5jb250ZW50TGVuZ3RoLTEpKSxuZXcgd2soW25ldyBxSSg0LG4uUEosVywiZ2V0TmV4dFJlcXVlc3RJbmZvQnlMZW5ndGgiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxuLmNsaXBJZCldKTtuLnR5cGU9PT00JiYobj10aGlzLlZRKG4pLG49bltuLmxlbmd0aC0xXSk7dmFyIEQ9MCxiPW4ucmFuZ2Uuc3RhcnQrbi5OK24uSjtuLnR5cGU9PT0zJiYobi5WKCksRD1uLmokLGI9PT1uLnJhbmdlLmVuZCsxJiYoRCs9MSkpO3JldHVybiBzTih0aGlzLEQsYixXKX1lJCgpe3JldHVybiBudWxsfUsobixXPQohMSl7bj10aGlzLmluZGV4LlIzKG4pO1cmJihuPU1hdGgubWluKHRoaXMuaW5kZXgueCQoKSxuKzEpKTtyZXR1cm4gc04odGhpcyxuLHRoaXMuaW5kZXguTihuKSwwKX1XKCl7cmV0dXJuITB9RCgpe3JldHVybiEwfVRDKCl7cmV0dXJuITF9SEooKXtyZXR1cm4gdGhpcy5pbmRleFJhbmdlLmxlbmd0aCt0aGlzLmluaXRSYW5nZS5sZW5ndGh9bnUoKXtyZXR1cm4gdGhpcy5pbmRleFJhbmdlJiZ0aGlzLmluaXRSYW5nZSYmdGhpcy5pbml0UmFuZ2UuZW5kKzE9PT10aGlzLmluZGV4UmFuZ2Uuc3RhcnQ/ITA6ITF9fTt2YXIgQU09Y2xhc3N7Y29uc3RydWN0b3Iobj0wLFc9MCxEPSJTUEFUSUFMX0FVRElPX1RZUEVfTk9ORSIsYj0hMSx2LGssaD0iQVVESU9fUVVBTElUWV9VTktOT1dOIix4PSExKXt0aGlzLnNhbXBsZVJhdGU9bjt0aGlzLm51bUNoYW5uZWxzPVc7dGhpcy5zcGF0aWFsQXVkaW9UeXBlPUQ7dGhpcy5XPWI7dGhpcy5YPXY7dGhpcy5KPWs7dGhpcy5hdWRpb1F1YWxpdHk9aDt0aGlzLk49eH1pc011bHRpQ2hhbm5lbEF1ZGlvKCl7cmV0dXJuIHRoaXMubnVtQ2hhbm5lbHM+Mn19O3ZhciBLTT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiPSIiLHY9IiIsaz0iIil7dGhpcy5kaXNwbGF5TmFtZT1uO3RoaXMudnNzSWQ9Vzt0aGlzLmxhbmd1YWdlQ29kZT1EO3RoaXMua2luZD1iO3RoaXMueHRhZ3M9djt0aGlzLmlkPWt9fTt2YXIgciR4PXtDT0xPUl9QUklNQVJJRVNfQlQ3MDk6ImJ0NzA5IixDT0xPUl9QUklNQVJJRVNfQlQyMDIwOiJidDIwMjAiLENPTE9SX1BSSU1BUklFU19VTktOT1dOOm51bGwsQ09MT1JfUFJJTUFSSUVTX1VOU1BFQ0lGSUVEOm51bGx9LGJxVT17Q09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0JUNzA5OiJidDcwOSIsQ09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0JUMjAyMF8xMDoiYnQyMDIwIixDT0xPUl9UUkFOU0ZFUl9DSEFSQUNURVJJU1RJQ1NfU01QVEVTVDIwODQ6InNtcHRlMjA4NCIsQ09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0FSSUJfU1REX0I2NzoiYXJpYi1zdGQtYjY3IixDT0xPUl9UUkFOU0ZFUl9DSEFSQUNURVJJU1RJQ1NfVU5LTk9XTjpudWxsLENPTE9SX1RSQU5TRkVSX0NIQVJBQ1RFUklTVElDU19VTlNQRUNJRklFRDpudWxsfTt2YXIgQVQ9e1dJRFRIOntuYW1lOiJ3aWR0aCIsdmlkZW86ITAsdmFsaWQ6NjQwLHZHOjk5OTk5fSxIRUlHSFQ6e25hbWU6ImhlaWdodCIsdmlkZW86ITAsdmFsaWQ6MzYwLHZHOjk5OTk5fSxGUkFNRVJBVEU6e25hbWU6ImZyYW1lcmF0ZSIsdmlkZW86ITAsdmFsaWQ6MzAsdkc6OTk5OX0sQklUUkFURTp7bmFtZToiYml0cmF0ZSIsdmlkZW86ITAsdmFsaWQ6M0U1LHZHOjJFOX0sRU9URjp7bmFtZToiZW90ZiIsdmlkZW86ITAsdmFsaWQ6ImJ0NzA5Iix2RzoiY2F0YXZpc2lvbiJ9LENIQU5ORUxTOntuYW1lOiJjaGFubmVscyIsdmlkZW86ITEsdmFsaWQ6Mix2Rzo5OX0sQ1JZUFRPQkxPQ0tGT1JNQVQ6e25hbWU6ImNyeXB0b2Jsb2NrZm9ybWF0Iix2aWRlbzohMCx2YWxpZDoic3Vic2FtcGxlIix2RzoiaW52YWxpZGZvcm1hdCJ9LERFQ09ERVRPVEVYVFVSRTp7bmFtZToiZGVjb2RlLXRvLXRleHR1cmUiLHZpZGVvOiEwLHZhbGlkOiJmYWxzZSIsdkc6Im5vcGUifSxBVjFfQ09ERUNTOntuYW1lOiJjb2RlY3MiLAp2aWRlbzohMCx2YWxpZDoiYXYwMS4wLjA1TS4wOCIsdkc6ImF2OTkuMC4wNU0uMDgifSxFWFBFUklNRU5UQUw6e25hbWU6ImV4cGVyaW1lbnRhbCIsdmlkZW86ITAsdmFsaWQ6ImFsbG93ZWQiLHZHOiJpbnZhbGlkIn0sVFVOTkVMTU9ERTp7bmFtZToidHVubmVsbW9kZSIsdmlkZW86ITAsdmFsaWQ6InRydWUiLHZHOiJmYWxzZSJ9fTt2YXIgWWc9e1siMCJdOiJmIixbIjE2MCJdOiJoIixbIjEzMyJdOiJoIixbIjEzNCJdOiJoIixbIjEzNSJdOiJoIixbIjEzNiJdOiJoIixbIjEzNyJdOiJoIixbIjI2NCJdOiJoIixbIjI2NiJdOiJoIixbIjEzOCJdOiJoIixbIjI5OCJdOiJoIixbIjI5OSJdOiJoIixbIjMwNCJdOiJoIixbIjMwNSJdOiJoIixbIjIxNCJdOiJoIixbIjIxNiJdOiJoIixbIjM3NCJdOiJoIixbIjM3NSJdOiJoIixbIjE0MCJdOiJhIixbIjE0MSJdOiJhIixbIjMyNyJdOiJzYSIsWyIyNTgiXToibSIsWyIzODAiXToibWFjMyIsWyIzMjgiXToibWVhYzMiLFsiMTYxIl06IkgiLFsiMTQyIl06IkgiLFsiMTQzIl06IkgiLFsiMTQ0Il06IkgiLFsiMjIyIl06IkgiLFsiMjIzIl06IkgiLFsiMTQ1Il06IkgiLFsiMjI0Il06IkgiLFsiMjI1Il06IkgiLFsiMTQ2Il06IkgiLFsiMjI2Il06IkgiLFsiMjI3Il06IkgiLFsiMTQ3Il06IkgiLFsiMzg0Il06IkgiLFsiMzc2Il06IkgiLFsiMzg1Il06IkgiLFsiMzc3Il06IkgiLApbIjE0OSJdOiJBIixbIjI2MSJdOiJNIixbIjM4MSJdOiJNQUMzIixbIjMyOSJdOiJNRUFDMyIsWyI1OTgiXToiOSIsWyIyNzgiXToiOSIsWyIyNDIiXToiOSIsWyIyNDMiXToiOSIsWyIyNDQiXToiOSIsWyI3NzUiXToiOSIsWyI3NzYiXToiOSIsWyI3NzciXToiOSIsWyI3NzgiXToiOSIsWyI3NzkiXToiOSIsWyI3ODAiXToiOSIsWyI3ODEiXToiOSIsWyI3ODIiXToiOSIsWyI3ODMiXToiOSIsWyIyNDciXToiOSIsWyIyNDgiXToiOSIsWyIzNTMiXToiOSIsWyIzNTUiXToiOSIsWyIzNTYiXToiOSIsWyIyNzEiXToiOSIsWyI1NzciXToiOSIsWyIzMTMiXToiOSIsWyI1NzkiXToiOSIsWyIyNzIiXToiOSIsWyIzMDIiXToiOSIsWyIzMDMiXToiOSIsWyI0MDciXToiOSIsWyI0MDgiXToiOSIsWyIzMDgiXToiOSIsWyIzMTUiXToiOSIsWyIzMzAiXToiOWgiLFsiMzMxIl06IjloIixbIjMzMiJdOiI5aCIsWyIzMzMiXToiOWgiLFsiMzM0Il06IjloIixbIjMzNSJdOiI5aCIsWyIzMzYiXToiOWgiLApbIjMzNyJdOiI5aCIsWyIzMzgiXToic28iLFsiNjAwIl06Im8iLFsiMjUwIl06Im8iLFsiMjUxIl06Im8iLFsiNzc0Il06Im8iLFsiMTk0Il06IioiLFsiMTk1Il06IioiLFsiMjIwIl06IioiLFsiMjIxIl06IioiLFsiMTk2Il06IioiLFsiMTk3Il06IioiLFsiMjc5Il06IigiLFsiMjgwIl06IigiLFsiMzE3Il06IigiLFsiMzE4Il06IigiLFsiMjczIl06IigiLFsiMjc0Il06IigiLFsiMzU3Il06IigiLFsiMzU4Il06IigiLFsiMjc1Il06IigiLFsiMzU5Il06IigiLFsiMzYwIl06IigiLFsiMjc2Il06IigiLFsiNTgzIl06IigiLFsiNTg0Il06IigiLFsiMzE0Il06IigiLFsiNTg1Il06IigiLFsiNTYxIl06IigiLFsiMjc3Il06IigiLFsiMzYxIl06IihoIixbIjM2MiJdOiIoaCIsWyIzNjMiXToiKGgiLFsiMzY0Il06IihoIixbIjM2NSJdOiIoaCIsWyIzNjYiXToiKGgiLFsiNTkxIl06IihoIixbIjU5MiJdOiIoaCIsWyIzNjciXToiKGgiLFsiNTg2Il06IihoIixbIjU4NyJdOiIoaCIsClsiMzY4Il06IihoIixbIjU4OCJdOiIoaCIsWyI1NjIiXToiKGgiLFsiNDA5Il06IigiLFsiNDEwIl06IigiLFsiNDExIl06IigiLFsiNDEyIl06IigiLFsiNTU3Il06IigiLFsiNTU4Il06IigiLFsiMzk0Il06IjEiLFsiMzk1Il06IjEiLFsiMzk2Il06IjEiLFsiMzk3Il06IjEiLFsiMzk4Il06IjEiLFsiMzk5Il06IjEiLFsiNzIwIl06IjEiLFsiNzIxIl06IjEiLFsiNDAwIl06IjEiLFsiNDAxIl06IjEiLFsiNTcxIl06IjEiLFsiNDAyIl06IjEiLFsiNjk0Il06IjFoIixbIjY5NSJdOiIxaCIsWyI2OTYiXToiMWgiLFsiNjk3Il06IjFoIixbIjY5OCJdOiIxaCIsWyI2OTkiXToiMWgiLFsiNzAwIl06IjFoIixbIjcwMSJdOiIxaCIsWyI3MDIiXToiMWgiLFsiNzAzIl06IjFoIixbIjM4NiJdOiIzIixbIjM4NyJdOiJ3IixbIjQwNiJdOiI2IixbIjc4NyJdOiIxIixbIjc4OCJdOiIxIixbIjU0OCJdOiIxZSIsWyI1NDkiXToiMWUiLFsiNTUwIl06IjFlIixbIjU1MSJdOiIxZSIsWyI4MDkiXToiMWUiLApbIjgxMCJdOiIxZSIsWyI1NTIiXToiMWUiLFsiODExIl06IjFlIixbIjgxMiJdOiIxZSIsWyI1NTMiXToiMWUiLFsiODEzIl06IjFlIixbIjgxNCJdOiIxZSIsWyI1NTQiXToiMWUiLFsiODE1Il06IjFlIixbIjgxNiJdOiIxZSIsWyI1NTUiXToiMWUiLFsiODE3Il06IjFlIixbIjgxOCJdOiIxZSIsWyI1NzIiXToiMWUiLFsiNTU2Il06IjFlIixbIjY0NSJdOiIoIixbIjY0NiJdOiIoIixbIjY0NyJdOiIoIixbIjY0OCJdOiIoIixbIjY0OSJdOiIoIixbIjY1MCJdOiIoIixbIjY1MSJdOiIoIixbIjY1MiJdOiIoIixbIjY1MyJdOiIoIixbIjY1NCJdOiIoIixbIjY1NSJdOiIoIixbIjY1NiJdOiIoIixbIjY1NyJdOiIoIixbIjY1OCJdOiIoIixbIjY1OSJdOiIoIixbIjY2MCJdOiIoIixbIjY2MSJdOiIoIixbIjY2MiJdOiIoIixbIjY2MyJdOiIoIixbIjY2NCJdOiIoIixbIjY2NSJdOiIoIixbIjY2NiJdOiIoIixbIjY2NyJdOiIoIixbIjY2OCJdOiIoIixbIjY2OSJdOiIoIixbIjY3MCJdOiIoIiwKWyI2NzEiXToiKCIsWyI2NzIiXToiKCIsWyI2NzMiXToiKCIsWyI2NzQiXToiKGgiLFsiNjc1Il06IihoIixbIjY3NiJdOiIoaCIsWyI2NzciXToiKGgiLFsiNjc4Il06IihoIixbIjY3OSJdOiIoaCIsWyI2ODAiXToiKGgiLFsiNjgxIl06IihoIixbIjY4MiJdOiIoaCIsWyI2ODMiXToiKGgiLFsiNjg0Il06IihoIixbIjY4NSJdOiIoaCIsWyI2ODYiXToiKGgiLFsiNjg3Il06IihoIixbIjY4OCJdOiJBIixbIjY4OSJdOiJBIixbIjY5MCJdOiJBIixbIjY5MSJdOiJNRUFDMyIsWyI3NzMiXToiaSIsWyI4MDYiXToiSSIsWyI4MDUiXToiSSIsWyI4MjkiXToiOSIsWyI4MzAiXToiOSIsWyI4MzEiXToiOSIsWyI4MzIiXToiOSIsWyI4MzMiXToiOSIsWyI4MzQiXToiOSIsWyI4MzUiXToiOSIsWyI4MzYiXToiOSIsWyI4OTIiXToiOSIsWyI4OTMiXToiOSIsWyI4MzciXToiOSIsWyI4MzgiXToiOSIsWyI4MzkiXToiOSIsWyI4NDAiXToiOSIsWyI4NDEiXToiKCIsWyI4NDIiXToiKCIsWyI4NDMiXToiKCIsClsiODQ0Il06IigiLFsiODQ1Il06IigiLFsiODQ2Il06IigiLFsiODQ3Il06IigiLFsiODQ4Il06IigiLFsiODk0Il06IigiLFsiODk1Il06IigiLFsiODQ5Il06IigiLFsiODUwIl06IigiLFsiODUxIl06IigiLFsiODUyIl06IigiLFsiODY1Il06IjkiLFsiODY2Il06IjkiLFsiODY3Il06IjkiLFsiODY4Il06IjkiLFsiODY5Il06IjkiLFsiODcwIl06IjkiLFsiODcxIl06IjkiLFsiODcyIl06IjkiLFsiODk2Il06IjkiLFsiODk3Il06IjkiLFsiODczIl06IjkiLFsiODc0Il06IjkiLFsiODc1Il06IjkiLFsiODc2Il06IjkiLFsiODc3Il06IigiLFsiODc4Il06IigiLFsiODc5Il06IigiLFsiODgwIl06IigiLFsiODgxIl06IigiLFsiODgyIl06IigiLFsiODgzIl06IigiLFsiODg0Il06IigiLFsiODk4Il06IigiLFsiODk5Il06IigiLFsiODg1Il06IigiLFsiODg2Il06IigiLFsiODg3Il06IigiLFsiODg4Il06IigiLFsiOTAwIl06IjIiLFsiOTAxIl06IjIiLFsiOTAyIl06IjIiLApbIjkwMyJdOiIyIixbIjkwNCJdOiIyIixbIjkwNSJdOiIyIixbIjkwNiJdOiIyIixbIjkwNyJdOiIyIixbIjkwOCJdOiIyIn07dmFyIHBNPSJoaWdocmVzIGhkMjg4MCBoZDIxNjAgaGQxNDQwIGhkMTA4MCBoZDcyMCBsYXJnZSBtZWRpdW0gc21hbGwgdGlueSIuc3BsaXQoIiAiKTt2YXIgSFI9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2LGssaCx4LEwsZSxHKXt0aGlzLndpZHRoPW47dGhpcy5oZWlnaHQ9Vzt0aGlzLlc9eDt0aGlzLnF1YWxpdHk9a3x8WVgobixXKTt0aGlzLnF1YWxpdHlPcmRpbmFsPU5HW3RoaXMucXVhbGl0eV07dGhpcy5mcHM9RHx8MDt0aGlzLnN0ZXJlb0xheW91dD0hdnx8YiE9bnVsbCYmYiE9PSJVTktOT1dOIiYmYiE9PSJSRUNUQU5HVUxBUiI/MDp2O3RoaXMucHJvamVjdGlvblR5cGU9Yj9iPT09IkVRVUlSRUNUQU5HVUxBUiImJnY9PT0yPyJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iOmI6IlVOS05PV04iOyhuPWgpfHwoRD1OR1t0aGlzLnF1YWxpdHldLEQ9PT0wP249IkF1dG8iOihuPXRoaXMucHJvamVjdGlvblR5cGUsVz10aGlzLmZwcyxuPUQudG9TdHJpbmcoKSsobj09PSJFUVVJUkVDVEFOR1VMQVIifHxuPT09IkVRVUlSRUNUQU5HVUxBUl9USFJFRURfVE9QX0JPVFRPTSJ8fG49PT0iTUVTSCI/InMiOiJwIikrCihXPjU1PyI2MCI6Vz40OT8iNTAiOlc+Mzk/IjQ4IjoiIikpKTt0aGlzLnF1YWxpdHlMYWJlbD1uO3RoaXMuTj1MfHwiIjt0aGlzLnByaW1hcmllcz1lfHwiIjt0aGlzLlg9Rz8/ITB9Sigpe3JldHVybiB0aGlzLmZwcz4zMn1pc0hkcigpe3JldHVybiB0aGlzLk49PT0ic21wdGUyMDg0Inx8dGhpcy5OPT09ImFyaWItc3RkLWI2NyJ9fTt2YXIgbXU9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQ9e30pe3RoaXMuaWQ9bjt0aGlzLm1pbWVUeXBlPVc7RC5Ocz4wfHwoRC5Ocz0xNkUzKTtPYmplY3QuYXNzaWduKHRoaXMsRCk7W3RoaXMuaXRhZyx0aGlzLkpdPXRoaXMuaWQuc3BsaXQoIjsiKTt0aGlzLmNvbnRhaW5lclR5cGU9Sk0oVyk7dGhpcy5JQj1ZZ1t0aGlzLml0YWddfHwiIn1LKCl7cmV0dXJuIHRoaXMudmlkZW99WSgpe3JldHVybiB0aGlzLmF1ZGlvfXFIKCl7cmV0dXJuIHRoaXMuY29udGFpbmVyVHlwZT09PTJ9WCgpe3JldHVybiB0aGlzLklCPT09IjkifHx0aGlzLklCPT09IigifHx0aGlzLklCPT09IjloInx8dGhpcy5JQj09PSIoaCJ9TVcoKXtyZXR1cm4gdGhpcy5JQj09PSIxInx8dGhpcy5JQj09PSIxaCJ8fFBSJiZ0aGlzLklCPT09IjFlIn1WKCl7cmV0dXJuIHRoaXMuSUI9PT0ibWFjMyJ8fHRoaXMuSUI9PT0ibWVhYzMifHx0aGlzLklCPT09Im0ifHx0aGlzLklCPT09ImkifHxtRih0aGlzKX1EKCl7cmV0dXJuIHRoaXMuSUI9PT0KIk1BQzMifHx0aGlzLklCPT09Im1hYzMifHx0aGlzLklCPT09Ik1FQUMzInx8dGhpcy5JQj09PSJtZWFjMyJ9aXNFbmNyeXB0ZWQoKXtyZXR1cm4hIXRoaXMuY29udGVudFByb3RlY3Rpb259ZVMoKXtyZXR1cm4hIXRoaXMuYXVkaW99ZlkoKXtyZXR1cm4hIXRoaXMudmlkZW99Vygpe3JldHVybiB0aGlzLm1pbWVUeXBlPT09ImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCJ9Tigpe3ZhciBuPXRoaXMubWltZVR5cGU7cmV0dXJuIG4uaW5jbHVkZXMoInZ0dCIpfHxuLmluY2x1ZGVzKCJ0ZXh0L21wNCIpfWlzVmVydGljYWwoKXtyZXR1cm4hIXRoaXMudmlkZW8mJnRoaXMudmlkZW8ud2lkdGg8dGhpcy52aWRlby5oZWlnaHR9fSxQUj0hMSxFTj0hMTtnLkZzPWNsYXNzIGV4dGVuZHMgZy5KTHtOTihuLFcsRCxiLHYpe3JldHVybiBzdXBlci5OTihuLFcsRCxiLHYpfX07dmFyIHhnPWNsYXNzIGV4dGVuZHMgZy5GaXtjb25zdHJ1Y3RvcihuLFcsRCxiKXtzdXBlcigpO3RoaXMuayQ9bjt0aGlzLnN0YXJ0PVc7dGhpcy5lbmQ9RDt0aGlzLmlzQWN0aXZlPWI7dGhpcy5hcHBlbmRXaW5kb3dTdGFydD0wO3RoaXMuYXBwZW5kV2luZG93RW5kPUluZmluaXR5O3RoaXMudGltZXN0YW1wT2Zmc2V0PTA7dGhpcy5LVT17ZXJyb3I6KCk9PnshdGhpcy5xTigpJiZ0aGlzLmlzQWN0aXZlJiZ0aGlzLldKKCJlcnJvciIsdGhpcyl9LAp1cGRhdGVlbmQ6KCk9PnshdGhpcy5xTigpJiZ0aGlzLmlzQWN0aXZlJiZ0aGlzLldKKCJ1cGRhdGVlbmQiLHRoaXMpfX07CnRoaXMuayQuaCQodGhpcy5LVSk7dGhpcy5wTj10aGlzLmlzQWN0aXZlfWFwcGVuZEJ1ZmZlcihuLFcsRCl7aWYodGhpcy5rJC5NcigpIT09dGhpcy5hcHBlbmRXaW5kb3dTdGFydCt0aGlzLnN0YXJ0fHx0aGlzLmskLktGKCkhPT10aGlzLmFwcGVuZFdpbmRvd0VuZCt0aGlzLnN0YXJ0fHx0aGlzLmskLlNXKCkhPT10aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0KXRoaXMuayQuc3VwcG9ydHMoMSksdGhpcy5rJC5lNyh0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0K3RoaXMuc3RhcnQsdGhpcy5hcHBlbmRXaW5kb3dFbmQrdGhpcy5zdGFydCksdGhpcy5rJC55Tyh0aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0KTt0aGlzLmskLmFwcGVuZEJ1ZmZlcihuLFcsRCl9YWJvcnQoKXt0aGlzLmskLmFib3J0KCl9cmVtb3ZlKG4sVyl7dGhpcy5rJC5yZW1vdmUobit0aGlzLnN0YXJ0LFcrdGhpcy5zdGFydCl9VGkoKXt0aGlzLnJlbW92ZSh0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0LHRoaXMuYXBwZW5kV2luZG93RW5kKX1jbGVhcigpe3RoaXMuayQuY2xlYXIoKX1lNyhuLApXKXt0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0PW47dGhpcy5hcHBlbmRXaW5kb3dFbmQ9V31pdygpe3JldHVybiB0aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0fU1yKCl7cmV0dXJuIHRoaXMuYXBwZW5kV2luZG93U3RhcnR9S0YoKXtyZXR1cm4gdGhpcy5hcHBlbmRXaW5kb3dFbmR9eU8obil7dGhpcy50aW1lc3RhbXBPZmZzZXQ9bn1TVygpe3JldHVybiB0aGlzLnRpbWVzdGFtcE9mZnNldH1aRihuPSExKXtuPXRoaXMuayQuWkYobik7cmV0dXJuIFFUKG4sdGhpcy5zdGFydCx0aGlzLmVuZCl9eXUoKXtyZXR1cm4gdGhpcy5rJC55dSgpfWZGKCl7cmV0dXJuIHRoaXMuayQuZkYoKX1nWCgpe3JldHVybiB0aGlzLmskLmdYKCl9RGMoKXtyZXR1cm4gdGhpcy5rJC5EYygpfWg5KCl7dGhpcy5rJC5oOSgpfXRaKG4pe3JldHVybiB0aGlzLmskLnRaKG4pfUQ5KCl7cmV0dXJuIHRoaXMuayQuRDkoKX1MRigpe3JldHVybiB0aGlzLmskLkxGKCl9am4obixXLEQpe3RoaXMuayQuam4obiwKVyxEKX1WbyhuLFcsRCl7dGhpcy5rJC5WbyhuLFcsRCl9bmEobixXKXtyZXR1cm4gdGhpcy5rJC5uYShuLFcpfXN1cHBvcnRzKG4pe3JldHVybiB0aGlzLmskLnN1cHBvcnRzKG4pfVpnKCl7cmV0dXJuIHRoaXMuayQuWmcoKX1pUSgpe3JldHVybiB0aGlzLmskLmlRKCl9aXNWaWV3KCl7cmV0dXJuITB9am8oKXtyZXR1cm4gdGhpcy5rJC5qbygpP3RoaXMuaXNBY3RpdmU6ITF9aXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5wTiYmIXRoaXMuaXNBY3RpdmV9eXIobil7bj10aGlzLmskLnlyKG4pO24udnc9YCR7dGhpcy5zdGFydH0tJHt0aGlzLmVuZH1gO3JldHVybiBufW5GKCl7cmV0dXJuIHRoaXMuayQubkYoKX1Lcygpe3JldHVybiB0aGlzLmskLktzKCl9ejAoKXtyZXR1cm4gdGhpcy5rJC56MCgpfW1BKCl7dGhpcy5rJC5NOSh0aGlzLktVKTtzdXBlci5tQSgpfUtpKCl7cmV0dXJuIHRoaXMuaXNBY3RpdmV9VnUobil7dGhpcy5pc0FjdGl2ZT1uO3RoaXMucE49dGhpcy5wTnx8dGhpcy5pc0FjdGl2ZX19O3ZhciBzND0hMTt2YXIga2c9Y2xhc3MgZXh0ZW5kcyBnLkZpe2NvbnN0cnVjdG9yKG4sVyxELGIsdixrKXtzdXBlcigpO3RoaXMuUUU9bjt0aGlzLkVWPVc7dGhpcy5pZD1EO3RoaXMuY29udGFpbmVyVHlwZT1iO3RoaXMuSUI9djt0aGlzLmZZPWs7dGhpcy5tTz10aGlzLmpxPXRoaXMuZEg9bnVsbDt0aGlzLmVvPSExO3RoaXMuYXBwZW5kV2luZG93U3RhcnQ9dGhpcy50aW1lc3RhbXBPZmZzZXQ9MDt0aGlzLkY0PVRpKFtdLFtdKTt0aGlzLkhIPSExO3RoaXMuaWs9W107dGhpcy55Nj1QYz9bXTp2b2lkIDA7dGhpcy5oYW5kbGVyPWg9PnRoaXMuV0ooaC50eXBlLHRoaXMpOwp0aGlzLlFFPy5hZGRFdmVudExpc3RlbmVyJiYodGhpcy5RRS5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVlbmQiLHRoaXMuaGFuZGxlciksdGhpcy5RRS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdGhpcy5oYW5kbGVyKSl9YXBwZW5kQnVmZmVyKG4sVyxEKXt0aGlzLkhIPSExO0QmJih0aGlzLmpxPUQpO24ubGVuZ3RoJiYodGhpcy5RRT8uYXBwZW5kQnVmZmVyP3RoaXMuUUUuYXBwZW5kQnVmZmVyKG4pOnRoaXMuUUU/dGhpcy5RRS5hcHBlbmQobik6dGhpcy5FViYmdGhpcy5FVi53ZWJraXRTb3VyY2VBcHBlbmQodGhpcy5pZCxuKSk7VyYmKFcuaXNFbmNyeXB0ZWQoKSYmKHRoaXMubU89dGhpcy5qcSksVy50eXBlPT09MyYmKHRoaXMuZEg9VyksdGhpcy5pay5wdXNoKFcuZ2EoKSksdGhpcy5pay5sZW5ndGg+NCYmdGhpcy5pay5zaGlmdCgpKTt0aGlzLnk2JiYodGhpcy55Ni5sZW5ndGg+PTJ8fG4ubGVuZ3RoPjEwNDg1NzY/ZGVsZXRlIHRoaXMueTY6dGhpcy55Ni5wdXNoKG4pKX1hYm9ydCgpe3RyeXt0aGlzLlFFPwp0aGlzLlFFLmFib3J0KCk6dGhpcy5FViYmdGhpcy5FVi53ZWJraXRTb3VyY2VBYm9ydCh0aGlzLmlkKX1jYXRjaChuKXtRalomJmcuR3EobmV3IGcuUXgoYEVycm9yIHdoaWxlIGFib3J0IHRoZSBzb3VyY2UgYnVmZmVyOiAke24ubmFtZX0sICR7bi5tZXNzYWdlfWApKX10aGlzLmpxPXRoaXMuZEg9bnVsbH1yZW1vdmUobixXLEQpe3RoaXMuSEg9ITE7dGhpcy5RRT8ucmVtb3ZlJiYoRCYmRCh7Yjpyayh0aGlzLlpGKCkpLHM6bixlOld9KSx0aGlzLlFFLnJlbW92ZShuLFcpKX1UaSgpe3RoaXMucmVtb3ZlKHRoaXMuTXIoKSx0aGlzLktGKCkpfWNsZWFyKCl7dGhpcy5nWCgpfHwodGhpcy5hYm9ydCgpLHRoaXMuVGkoKSx0aGlzLm1PPXRoaXMuanE9dGhpcy5kSD1udWxsLHRoaXMuYXBwZW5kV2luZG93U3RhcnQ9dGhpcy50aW1lc3RhbXBPZmZzZXQ9MCx0aGlzLkY0PVRpKFtdLFtdKSx0aGlzLkhIPSExLHRoaXMueTY9UGM/W106dm9pZCAwLHRoaXMuZW89ITApfU1yKCl7cmV0dXJuIHM0JiYKdGhpcy5mWT90aGlzLmFwcGVuZFdpbmRvd1N0YXJ0OnRoaXMuUUU/LmFwcGVuZFdpbmRvd1N0YXJ0fHwwfUtGKCl7cmV0dXJuIHRoaXMuUUU/LmFwcGVuZFdpbmRvd0VuZHx8MH1lNyhuLFcpe3RoaXMuUUUmJihzNCYmdGhpcy5mWT8odGhpcy5hcHBlbmRXaW5kb3dTdGFydD1uLHRoaXMuUUUuYXBwZW5kV2luZG93RW5kPVcpOm4+dGhpcy5NcigpPyh0aGlzLlFFLmFwcGVuZFdpbmRvd0VuZD1XLHRoaXMuUUUuYXBwZW5kV2luZG93U3RhcnQ9bik6KHRoaXMuUUUuYXBwZW5kV2luZG93U3RhcnQ9bix0aGlzLlFFLmFwcGVuZFdpbmRvd0VuZD1XKSl9aXcoKXtyZXR1cm4gdGhpcy50aW1lc3RhbXBPZmZzZXR9eU8obil7czQ/dGhpcy50aW1lc3RhbXBPZmZzZXQ9bjp0aGlzLnN1cHBvcnRzKDEpJiYodGhpcy5RRS50aW1lc3RhbXBPZmZzZXQ9bil9U1coKXtyZXR1cm4gczQ/dGhpcy50aW1lc3RhbXBPZmZzZXQ6dGhpcy5zdXBwb3J0cygxKT90aGlzLlFFLnRpbWVzdGFtcE9mZnNldDowfVpGKG49CiExKXtpZihuKXJldHVybiB0aGlzLkhIfHx0aGlzLnl1KCl8fCh0aGlzLkY0PXRoaXMuWkYoITEpLHRoaXMuSEg9ITApLHRoaXMuRjQ7dHJ5e3JldHVybiB0aGlzLlFFP3RoaXMuUUUuYnVmZmVyZWQ6dGhpcy5FVj90aGlzLkVWLndlYmtpdFNvdXJjZUJ1ZmZlcmVkKHRoaXMuaWQpOlRpKFswXSxbSW5maW5pdHldKX1jYXRjaChXKXtyZXR1cm4gVGkoW10sW10pfX15dSgpe3JldHVybiB0aGlzLlFFPy51cGRhdGluZ3x8ITF9Z1goKXtyZXR1cm4gdGhpcy5lb31EYygpe3JldHVybiF0aGlzLmVvJiZ0aGlzLnl1KCl9aDkoKXt0aGlzLmVvPSExfXRaKG4pe3ZhciBXPW4/LklCO249bj8uY29udGFpbmVyVHlwZTtyZXR1cm4hVyYmIW58fFc9PT10aGlzLklCJiZuPT09dGhpcy5jb250YWluZXJUeXBlfUQ5KCl7cmV0dXJuIHRoaXMuanF9TEYoKXtyZXR1cm4gdGhpcy5tT31uYShuLFcpe3JldHVybiB0aGlzLmNvbnRhaW5lclR5cGUhPT1ufHx0aGlzLklCIT09V31qbihuLFcsRCl7aWYodGhpcy5jb250YWluZXJUeXBlIT09Cm58fEQmJnRoaXMubmEobixEKSl0aGlzLnN1cHBvcnRzKDQpLFZUKCkmJnRoaXMuUUUuY2hhbmdlVHlwZShXKSxEJiYodGhpcy5JQj1EKTt0aGlzLmNvbnRhaW5lclR5cGU9bn1WbyhuLFcsRCl7dGhpcy5jb250YWluZXJUeXBlJiZ0aGlzLm5hKG4sVykmJlZUKCkmJnRoaXMuUUUuY2hhbmdlVHlwZShEKTt0aGlzLmNvbnRhaW5lclR5cGU9bjt0aGlzLklCPVd9WmcoKXtyZXR1cm4gdGhpcy5kSH1pUSgpe3JldHVybiEhdGhpcy5kSCYmIXRoaXMuZEguYVp9aXNWaWV3KCl7cmV0dXJuITF9c3VwcG9ydHMobil7c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4gdGhpcy5RRT8udGltZXN0YW1wT2Zmc2V0IT09dm9pZCAwO2Nhc2UgMDpyZXR1cm4hIXRoaXMuUUU/LmFwcGVuZEJ1ZmZlcjtjYXNlIDI6cmV0dXJuISF0aGlzLlFFPy5yZW1vdmU7Y2FzZSAzOnJldHVybiEoIXRoaXMuUUU/LmFkZEV2ZW50TGlzdGVuZXJ8fCF0aGlzLlFFPy5yZW1vdmVFdmVudExpc3RlbmVyKTtjYXNlIDQ6cmV0dXJuISghdGhpcy5RRXx8CiF0aGlzLlFFLmNoYW5nZVR5cGUpO2RlZmF1bHQ6cmV0dXJuITF9fWpvKCl7cmV0dXJuIXRoaXMueXUoKX1pc0xvY2tlZCgpe3JldHVybiExfXlyKG4pe24udG89dGhpcy5TVygpO24udXA9dGhpcy55dSgpO24uYXc9YCR7KHRoaXMuUUU/LmFwcGVuZFdpbmRvd1N0YXJ0fHwwKS50b0ZpeGVkKDMpfS0keyh0aGlzLlFFPy5hcHBlbmRXaW5kb3dFbmR8fEluZmluaXR5KS50b0ZpeGVkKDMpfWA7cmV0dXJuIG59ZkYoKXtyZXR1cm4gdGhpcy5RRT8ud3JpdGVIZWFkfHwwfW5GKCl7dmFyIG49e307Zm9yKGxldCBXPTA7Vzx0aGlzLmlrLmxlbmd0aDtXKyspbltgcyR7V31gXT10aGlzLmlrW1ddO3JldHVybiBufW1BKCl7dGhpcy5zdXBwb3J0cygzKSYmKHRoaXMuUUUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidXBkYXRlZW5kIix0aGlzLmhhbmRsZXIpLHRoaXMuUUUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHRoaXMuaGFuZGxlcikpO3N1cGVyLm1BKCl9S3MoKXtyZXR1cm4gdGhpcy5jb250YWluZXJUeXBlfXowKCl7cmV0dXJuIHRoaXMueTZ9fSwKUGM9ITEsUWpaPSExO3ZhciB3bj1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9ITEpe3RoaXMuWGI9bjt0aGlzLk49Vzt0aGlzLko9ITF9ZGlzcG9zZSgpe2lmKCF0aGlzLnFOKCkpe2lmKHRoaXMuTil0cnl7VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLlhiKX1jYXRjaChuKXt9dGhpcy5KPSEwfX1xTigpe3JldHVybiB0aGlzLkp9Vygpe3JldHVybiB0aGlzLk59ZXF1YWxzKG4pe3JldHVybiBuIT09bnVsbCYmbi5YYj09PXRoaXMuWGJ9dG9TdHJpbmcoKXtyZXR1cm5gTWVkaWFSZXNvdXJjZSB7JHt0aGlzLlhifX1gfX07dmFyIGhaPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuLFcsRD0hMSl7c3VwZXIoKTt0aGlzLm1lZGlhRWxlbWVudD1uO3RoaXMubWVkaWFTb3VyY2U9Vzt0aGlzLmlzVmlldz1EO3RoaXMuWT0wO3RoaXMuVj0hMTt0aGlzLks9ITA7dGhpcy5jSj0wO3RoaXMuY2FsbGJhY2s9bnVsbDt0aGlzLk89ITE7dGhpcy5tZWRpYVNvdXJjZXx8KHRoaXMuRVY9dGhpcy5tZWRpYUVsZW1lbnQuZV8oKSk7dGhpcy5ldmVudHM9bmV3IGcuRnModGhpcyk7Zy51KHRoaXMsdGhpcy5ldmVudHMpO3RoaXMuaj1uZXcgd24odGhpcy5tZWRpYVNvdXJjZT93aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLm1lZGlhU291cmNlKTp0aGlzLkVWLndlYmtpdE1lZGlhU291cmNlVVJMLCEwKTtuPXRoaXMubWVkaWFTb3VyY2V8fHRoaXMuRVY7S3kodGhpcy5ldmVudHMsbixbInNvdXJjZW9wZW4iLCJ3ZWJraXRzb3VyY2VvcGVuIl0sdGhpcy5TJCk7S3kodGhpcy5ldmVudHMsbixbInNvdXJjZWNsb3NlIiwKIndlYmtpdHNvdXJjZWNsb3NlIl0sdGhpcy5UQyk7dGhpcy5MTD17dXBkYXRlZW5kOnRoaXMuZVh9fXR3KCl7cmV0dXJuIHRoaXMuan1nZXREdXJhdGlvbigpe3JldHVybiB0aGlzLm1lZGlhU291cmNlPy5kdXJhdGlvbnx8dGhpcy5jSn1hVChuKXt0cnl7dGhpcy5tZWRpYVNvdXJjZT90aGlzLm1lZGlhU291cmNlLmR1cmF0aW9uPW46KHRoaXMuY0o9bix0aGlzLkVWLndlYmtpdFNvdXJjZVNldER1cmF0aW9uKG4pKX1jYXRjaChXKXt9fVgoKXtyZXR1cm4hIXRoaXMuTnx8ISF0aGlzLkp9UEEoKXt0cnl7cmV0dXJuIHRoaXMuVygpPT09ImNsb3NlZCJ9Y2F0Y2gobil7cmV0dXJuITB9fVcoKXtpZih0aGlzLm1lZGlhU291cmNlKXJldHVybiB0aGlzLm1lZGlhU291cmNlLnJlYWR5U3RhdGU7c3dpdGNoKHRoaXMuRVYud2Via2l0U291cmNlU3RhdGUpe2Nhc2UgdGhpcy5FVi5TT1VSQ0VfT1BFTjpyZXR1cm4ib3BlbiI7Y2FzZSB0aGlzLkVWLlNPVVJDRV9FTkRFRDpyZXR1cm4iZW5kZWQiOwpkZWZhdWx0OnJldHVybiJjbG9zZWQifX15dSgpe3JldHVybiEhKHRoaXMuTiYmdGhpcy5OLnl1KCl8fHRoaXMuSiYmdGhpcy5KLnl1KCkpfVMkKCl7IXRoaXMucU4oKSYmbjYodGhpcykmJnRoaXMuY2FsbGJhY2smJih0aGlzLmNhbGxiYWNrKHRoaXMpLHRoaXMuY2FsbGJhY2s9bnVsbCl9VEMoKXt0aGlzLmRpc3Bvc2UoKX1lWChuKXtESCYmIXRoaXMuViYmbi5nWCgpJiZuLlpGKCkubGVuZ3RoPT09MCYmKGJBKHRoaXMubWVkaWFFbGVtZW50LHtsOiJtc3dvdWUiLHNyOnRoaXMubWVkaWFFbGVtZW50LllhPy5wZygpfSwhMSksbi5oOSgpLHRoaXMuZ1goKXx8KHRoaXMubWVkaWFFbGVtZW50LkNGPSEwLHRoaXMubWVkaWFFbGVtZW50LnNldEN1cnJlbnRUaW1lKDApKSl9Y2xlYXIoKXtXRih0aGlzLCgpPT57fSk7CnRoaXMuTj8uY2xlYXIoKTt0aGlzLko/LmNsZWFyKCl9RCgpe3RoaXMuTj8uaDkoKTt0aGlzLko/Lmg5KCk7dGhpcy5LPSExfWdYKCl7cmV0dXJuIHRoaXMuSj8uZ1goKXx8dGhpcy5OPy5nWCgpfXRaKG4sVyl7cmV0dXJuISF0aGlzLk4mJiEhdGhpcy5KJiZ0aGlzLk4udFooVykmJnRoaXMuSi50WihuKX1iZCgpe3JldHVybiEhdGhpcy5tZWRpYVNvdXJjZSYmdGhpcy5tZWRpYVNvdXJjZS5zdHJlYW1pbmc9PT0hMX19LERIPSExO3ZhciBnR3I9L2FjdGlvbl9kaXNwbGF5X3Bvc3QvO2cuR3g9Y2xhc3MgZXh0ZW5kcyBnLkZpe2NvbnN0cnVjdG9yKG49IiIsVz1udWxsLEQ9ITEpe3N1cGVyKCk7dGhpcy5zb3VyY2VVcmw9bjt0aGlzLmlzTGl2ZVBsYXliYWNrPUQ7dGhpcy5ISj10aGlzLmR1cmF0aW9uPTA7dGhpcy5pc1ByZW1pZXJlPXRoaXMuWGc9dGhpcy5pc1dpbmRvd2VkTGl2ZT10aGlzLmlzTGl2ZUhlYWRQbGF5YWJsZT10aGlzLmlzTGl2ZT10aGlzLlc9ITE7dGhpcy5IUD10aGlzLkl0PTA7dGhpcy5pc090Zj10aGlzLnpXPSExO3RoaXMuUyQ9KDAsZy5SKSgpO3RoaXMuY0o9SW5maW5pdHk7dGhpcy5OPXt9O3RoaXMuSj1uZXcgTWFwO3RoaXMuc3RhdGU9dGhpcy5sTj0wO3RoaXMuVj1udWxsO3RoaXMuaXNNYW5pZmVzdGxlc3M9ITE7dGhpcy5iZD1bXTt0aGlzLks9bnVsbDt0aGlzLmUkPTA7dGhpcy5qPSIiO3RoaXMuVEM9TmFOO3RoaXMuSlU9dGhpcy5vUj10aGlzLnRpbWVzdGFtcE9mZnNldD10aGlzLkQ9MDt0aGlzLldNPXRoaXMuSDI9TmFOO3RoaXMuSVQ9MDsKdGhpcy5WUT10aGlzLk89ITE7dGhpcy5HQz1bXTt0aGlzLnZKPXt9O3RoaXMuUFg9dGhpcy50dz1OYU47dGhpcy5DdT1XPy5FcSgiaHRtbDVfdXNlX25ldHdvcmtfZXJyb3JfY29kZV9lbnVtcyIpO016PSEhVyYmVy5FcSgiaHRtbDVfbW9kZXJuX3ZwOV9taW1lX3R5cGUiKTtIRj0hIVc/LkVxKCJodG1sNV9lbmFibGVfZmx1c2hfZHVyaW5nX3NlZWsiKSYmZy5kOCgpO2Y2PSEhVz8uRXEoImh0bWw1X2VuYWJsZV9yZXNldF9hdWRpb19kZWNvZGVyIikmJmcuZDgoKX1pc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTF9dG4oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTN9bnUoKXtyZXR1cm4gZy5EbCh0aGlzLk4sbj0+ISFuLmluZm8udmlkZW8mJm4uaW5mby52aWRlby5xdWFsaXR5T3JkaW5hbD49MjE2MCl9WCgpe3JldHVybiBnLkRsKHRoaXMuTixuPT4hIW4uaW5mby5jb250ZW50UHJvdGVjdGlvbil9eUUobil7dmFyIFc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUmVwcmVzZW50YXRpb24iKTsKaWYobi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudExpc3QiKS5sZW5ndGg+MHx8bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRlbXBsYXRlIikubGVuZ3RoPjApe3RoaXMuelc9dGhpcy5XPSEwO3RoaXMuVnx8KHRoaXMuVj1uZXcga0xDKTtjSGoodGhpcy5WLG4pO3RoaXMuV0ooInJlZnJlc2giKTtmb3Iobj0wO248Vy5sZW5ndGg7bisrKXt2YXIgRD15Qyh0aGlzLFdbbl0pO2lmKCF0aGlzLk5bRC5pZF0pe3ZhciBiPVJ4KFRQKFdbbl0sIkJhc2VVUkwiKS50ZXh0Q29udGVudCksdj1UUChXW25dLCJJbml0aWFsaXphdGlvbiIpLGs9bFQodiwic291cmNlVVJMIik7dj1ueihsVCh2LCJyYW5nZSIpKTt0aGlzLk5bRC5pZF09bmV3IGR0KGIsRCxrLHYpfUQ9dGhpcy5OW0QuaWRdO2s9bFQoV1tuXSwiaWQiLCJBZGFwdGF0aW9uU2V0Iik7az1rIT09IiI/azpsVChXW25dLCJtaW1ldHlwZSIsIkFkYXB0YXRpb25TZXQiKTtiPXRoaXMuVjtrPWIuV1tELmluZm8uaWRdfHxiLkpba118fApiLk58fG51bGw7Yj1rLk47IXRoaXMuRCYmay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkmJih0aGlzLkQ9ay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpO2lmKGsuail7dj1bXTtmb3IodmFyIGggb2YgYil7Yj1ELmluZm8uaWQ7dmFyIHg9RC5pbmZvLk5zKjgsTD1oLmokLGU9aC5zdGFydFNlY3MsRz1rLksuc3BsaXQoIiQkIik7Zm9yKHZhciByPTA7cjxHLmxlbmd0aDtyKyspR1tyXT1HW3JdLnJlcGxhY2UoIiRSZXByZXNlbnRhdGlvbklEJCIsYiksR1tyXT1HW3JdLnJlcGxhY2UoIiROdW1iZXIkIixMLnRvU3RyaW5nKCkpLEdbcl09R1tyXS5yZXBsYWNlKCIkQmFuZHdpZHRoJCIseC50b1N0cmluZygpKSxHW3JdPUdbcl0ucmVwbGFjZSgiJFRpbWUkIixlLnRvU3RyaW5nKCkpO2I9Ry5qb2luKCIkIik7di5wdXNoKG5ldyBSNChoLmokLGguc3RhcnRTZWNzLGguQ2YsaC5OLGIsbnVsbCxoLkopKX1iPXZ9ZWxzZXtMPVYyKFRQKFdbbl0sIlNlZ21lbnRMaXN0IikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNlZ21lbnRVUkwiKSwKay5WKTtlPVtdO2ZvcihHPTA7RzxMLmxlbmd0aDtHKyspe2s9ZTt2PWsucHVzaDtyPXZvaWQgMDt2YXIgTj1MW0ddO3g9YltHXTtsZXQgSD1OLmdldEF0dHJpYnV0ZSgibWVkaWEiKTtpZihOPU4uZ2V0QXR0cmlidXRlKCJtZWRpYVJhbmdlIikpe2xldCBBPU4uc3BsaXQoIi0iKTtBWzFdJiZOdW1iZXIoQVsxXSk+PTA/cj1ueihOKTpIPWAke0h9P3JhbmdlPSR7Tn1gfXYuY2FsbChrLG5ldyBSNCh4LmokLHguc3RhcnRTZWNzLHguQ2YseC5OLEgscix4LkopKX1iPWV9RC51cGRhdGUoYix0aGlzLmlzTGl2ZSx0aGlzLkhKKX1hRFUodGhpcy5WKTtyZXR1cm4hMH10aGlzLmR1cmF0aW9uPWp4KGxUKG4sIm1lZGlhUHJlc2VudGF0aW9uRHVyYXRpb24iKSk7YTp7Zm9yKGg9MDtoPFcubGVuZ3RoO2grKyl7Yj1XW2hdO249eUModGhpcyxiKTtEPVJ4KFRQKGIsIkJhc2VVUkwiKS50ZXh0Q29udGVudCk7az1UUChiLCJTZWdtZW50QmFzZSIpO2I9bnooay5hdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgiaW5kZXhSYW5nZSIpLnZhbHVlKTsKaz1ueihrLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJbml0aWFsaXphdGlvbiIpWzBdLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCJyYW5nZSIpLnZhbHVlKTtuPW5ldyBzayhELG4sayxiKTtpZighbil7Vz0hMTticmVhayBhfSRnKHRoaXMsbil9Vz0hMH1yZXR1cm4gV31EdChuKXtyZXR1cm4gdGhpcy5WP1YyKHRoaXMuVi5YLG4pOnRoaXMuYmQubGVuZ3RoP1YyKHRoaXMuYmQsbik6W119cmVmcmVzaCgpe2lmKCF0aGlzLmlzTG9hZGluZygpJiYhdGhpcy5xTigpKXt2YXIgbj1nLkVUKHRoaXMuc291cmNlVXJsLHtzdGFydF9zZXE6QSRpKHRoaXMpLnRvU3RyaW5nKCl9KTtTNCh0aGlzLG4pLnNQKCgpPT57fSl9fXN1c3BlbmQoKXt0aGlzLksmJnRoaXMuSy5zdG9wKCl9cmVzdW1lKCl7QVoodGhpcyl9ckkoKXtpZih0aGlzLmlzTWFuaWZlc3RsZXNzJiZ0aGlzLmlzV2luZG93ZWRMaXZlJiZpQSh0aGlzKSlyZXR1cm4gaUEodGhpcyk7CnZhciBuPXRoaXMuTixXPSExLEQ9TmFOLGI9TmFOO2ZvcihsZXQgayBpbiBuKXtsZXQgaD1uW2tdO3ZhciB2PWguaW5kZXg7aWYoIXYuaXNMb2FkZWQoKXx8aC5pbmZvLk4oKSljb250aW51ZTtoLlYmJihXPSEwKTt2PXYuYlEoKTtoLmluZm8uZVMoKSYmKGlzTmFOKEQpfHx2PEQpP0Q9djpoLmluZm8uZlkoKSYmKGlzTmFOKGIpfHx2PGIpJiYoYj12KX1yZXR1cm4gV3x8aXNOYU4oYik/RDpNYXRoLm1pbihELGIpfUxmKCl7aWYodGhpcy5pc01hbmlmZXN0bGVzcyl7aWYodUEodGhpcykpcmV0dXJuIHVBKHRoaXMpO2lmKHRoaXMuSVQpe3ZhciBuPXRoaXMuaEModGhpcy5ySSgpKTtpZihuJiYobi09dGhpcy5JVCxuPjApKXJldHVybiB0aGlzLnJJKCktbn19bj10aGlzLk47Zm9yKGxldCBXIGluIG4pe2xldCBEPW5bV10uaW5kZXg7aWYoRC5pc0xvYWRlZCgpJiYhbltXXS5pbmZvLk4oKSlyZXR1cm4gRC5MZigpfXJldHVybiAwfWdldFN0cmVhbVRpbWVPZmZzZXQoKXtyZXR1cm4gdGhpcy5EfWhDKG4pe2ZvcihsZXQgVyBpbiB0aGlzLk4pe2xldCBEPQp0aGlzLk5bV10uaW5kZXg7aWYoRC5pc0xvYWRlZCgpKXtsZXQgYj1ELlIzKG4pLHY9RC5oQyhiKTtpZih2KXJldHVybiB2K24tRC5nZXRTdGFydFRpbWUoYil9fXJldHVybiBOYU59cWgoKXtyZXR1cm4gdGhpcy5lJH1qVygpe2ZvcihsZXQgbiBpbiB0aGlzLk4pdGhpcy5OLmhhc093blByb3BlcnR5KG4pJiYodGhpcy5OW25dLko9bnVsbCx0aGlzLk5bbl0uY0o9ITEpfX07Zy5HeC5wcm90b3R5cGUuRkY9V1ooNCk7dmFyIE16LEhGLGY2LHd0PW51bGwsUm89ISFuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyxVaz17Y29tbWVudGFyeToxLGFsdGVybmF0ZToyLGR1YjozLG1haW46NH07dmFyIGNGPW5ldyBTZXQsUUM9bmV3IE1hcDt2YXIgUGVNPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMueVE9bjt0aGlzLk5kPXRoaXMuYnY9dGhpcy5ISj10aGlzLlY9dGhpcy5qPXRoaXMuSGk9dGhpcy5HQz10aGlzLmNKPSExO3RoaXMuWT10aGlzLks9MDt0aGlzLkN1PSExO3RoaXMudHc9ITA7dGhpcy5QWD0hMTt0aGlzLm5TPTA7dGhpcy5GRj10aGlzLm51PXRoaXMub0w9dGhpcy5lJD0hMTt0aGlzLk49e307dGhpcy5qVz10aGlzLlJhPXRoaXMudlg9dGhpcy5kaXNhYmxlQXYxPXRoaXMuYmQ9dGhpcy5Rcj10aGlzLnlFPXRoaXMuWVo9dGhpcy5CVj10aGlzLko9dGhpcy5XPXRoaXMuRD0hMTt0aGlzLlMkPTA7dGhpcy5UQz0hMTt0aGlzLnM1PXRoaXMueVEuUygiaHRtbDVfZGlzYWJsZV9hYWNfcHJlZmVyZW5jZSIpO3RoaXMud2E9SW5maW5pdHk7dGhpcy54ZD0wO3RoaXMuTEI9dGhpcy55US5XWCgpO3RoaXMuSEQ9dGhpcy55US5leHBlcmltZW50cy5FcSgiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpO3RoaXMuTWQ9dGhpcy55US5TKCJodG1sNV9mb3JjZV9hdjFfZm9yX3Rlc3RpbmciKTsKdGhpcy55dz10aGlzLnlRLlp0KCkuTi5RUShWSWopO3RoaXMudko9Zy5kTSh0aGlzLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9hdjFfb3JkaW5hbF9jYXAiKTt0aGlzLlU1PXRoaXMueVEuUygiaHRtbDVfZGlzYWJsZV9oZnJfd2hlbl92cDlfZW5jcnlwdGVkXzJrNGtfdW5zdXBwb3J0ZWQiKTt0aGlzLkU1PXRoaXMueVEuUygiaHRtbDVfYWNjb3VudF9vbmVzaWVfZm9ybWF0X3NlbGVjdGlvbl9kdXJpbmdfZm9ybWF0X2ZpbHRlciIpO3RoaXMuTnM9Zy5kTSh0aGlzLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9tYXhfYnl0ZXJhdGUiKTt0aGlzLlZRPXRoaXMueVEuUygiaHRtbDVfZW5hYmxlX2lhbWZfYXVkaW8iKTt0aGlzLmZCPXRoaXMueVEuWnQoKS5OLlFRKFFPeCk7dGhpcy5EdD10aGlzLnlRLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9hbGxvd19jYXBhYmlsaXR5X21lcmdlIik7dGhpcy5ZJD10aGlzLnlRLlMoImh0bWw1X2VuYWJsZV9lbmNyeXB0ZWRfYXYxIik7dGhpcy5ZWj10aGlzLnlRLlp0KCkuTi5RUShaN1UpfHwKdGhpcy55US5TKCJkaXNhYmxlX3ByZWZlcl9oYnJfdnA5Iil9fTt2YXIgcjE9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy5mbGF2b3I9bjt0aGlzLmtleVN5c3RlbT1XO3RoaXMuVz1EO3RoaXMuZXhwZXJpbWVudHM9Yjt0aGlzLko9e307dGhpcy5DaT10aGlzLmtleVN5c3RlbUFjY2Vzcz1udWxsO3RoaXMuamk9dGhpcy5WOT0tMTt0aGlzLkZjPW51bGw7dGhpcy5YPSEhYiYmYi5FcSgiZWRnZV9ub25wcmVmaXhlZF9lbWUiKTtiJiZiLkVxKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5Iil9Y2xvbmUobil7cmV0dXJuIG5ldyByMSh0aGlzLmZsYXZvcixuLHRoaXMuVyx0aGlzLmV4cGVyaW1lbnRzKX1OKCl7cmV0dXJuIHRoaXMua2V5U3lzdGVtPT09ImNvbS55b3V0dWJlLmZhaXJwbGF5LnNiZGwifXlyKCl7cmV0dXJue2ZsYXZvcjp0aGlzLmZsYXZvcixrZXlTeXN0ZW06dGhpcy5rZXlTeXN0ZW19fWtMKCl7c3dpdGNoKHRoaXMua2V5U3lzdGVtKXtjYXNlICJjb20ueW91dHViZS5wbGF5cmVhZHkiOnJldHVybiJQUlkiO2Nhc2UgImNvbS5taWNyb3NvZnQucGxheXJlYWR5IjpyZXR1cm4iUFJNIjsKY2FzZSAiY29tLndpZGV2aW5lLmFscGhhIjpyZXR1cm4iV1ZBIjtjYXNlICJjb20ueW91dHViZS53aWRldmluZS5sMyI6cmV0dXJuIldWWSI7Y2FzZSAiY29tLnlvdXR1YmUuZmFpcnBsYXkiOnJldHVybiJGUFkiO2Nhc2UgImNvbS55b3V0dWJlLmZhaXJwbGF5LnNiZGwiOnJldHVybiJGUEMiO2Nhc2UgImNvbS5hcHBsZS5mcHMuMV8wIjpyZXR1cm4iRlBBIjtkZWZhdWx0OnJldHVybiB0aGlzLmtleVN5c3RlbX19fSxxVj17cGxheXJlYWR5OlsiY29tLnlvdXR1YmUucGxheXJlYWR5IiwiY29tLm1pY3Jvc29mdC5wbGF5cmVhZHkiXSx3aWRldmluZTpbImNvbS55b3V0dWJlLndpZGV2aW5lLmwzIiwiY29tLndpZGV2aW5lLmFscGhhIl19LHZRQz17d2lkZXZpbmU6IkRSTV9TWVNURU1fV0lERVZJTkUiLGZhaXJwbGF5OiJEUk1fU1lTVEVNX0ZBSVJQTEFZIixwbGF5cmVhZHk6IkRSTV9TWVNURU1fUExBWVJFQURZIn0seFZpPXt3aWRldmluZToxLGZhaXJwbGF5OjIscGxheXJlYWR5OjN9O3ZhciBaV1M9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4sVyxELGI9ITEsdil7c3VwZXIoKTt0aGlzLnlRPVc7dGhpcy51c2VDb2JhbHRXaWRldmluZT1iO3RoaXMuVT12O3RoaXMuSj1bXTt0aGlzLlc9e307dGhpcy5OPXt9O3RoaXMuY2FsbGJhY2s9bnVsbDt0aGlzLmo9ITE7dGhpcy5YPVtdO3RoaXMuaW5pdGlhbGl6ZShuLCFEKX1pbml0aWFsaXplKG4sVyl7Zm9yKGxldCBiIG9mIE9iamVjdC5rZXlzKG4pKXt2YXIgRD1iO2ZvcihsZXQgdiBvZiBuW0RdKWlmKHYuY29udGVudFByb3RlY3Rpb24pZm9yKGxldCBrIG9mIE9iamVjdC5rZXlzKHYuY29udGVudFByb3RlY3Rpb24pKXtEPWs7bGV0IGg9cVZba107IWgmJnRoaXMuUygiaHRtbA=="}},"time_used":44,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":28,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/javascripts/insert.js","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:47.337Z","timestamp":1785126647337,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /javascripts/insert.js HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\ncontent-type: application/javascript\r\nserver: cloudflare\r\nlast-modified: Tue, 26 May 2026 10:54:49 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: public, max-age=315360000\r\naccess-control-allow-origin: *\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=A67Plnh4mLUsulKkrKHpsVTsim7ReyCDxAV2uG2GQ%2Bzla2u7tOOydqs8w%2FblPOQWyRE7XUons0VbKh83ePMNRX3RO6JjNJR9IeNVCPph1F%2BpzYd6adt3S4cdVRqQ%2Fd0ZHg%3D%3D\"}]}\r\nage: 4068611\r\ncf-cache-status: HIT\r\netag: W/\"6a157bf9-3e6\"\r\ncontent-encoding: br\r\ncf-ray: a218e929fee2b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":998,"size_decoded":1312,"mime_type":"application/javascript","magic":"ASCII text, with very long lines (998), with no line terminators","md5":"29d2e99d5fcb02404184a538c82b6254","sha1":"ef4318b50add95249beac94e8433544a180f3960","sha256":"27b579092e300cf8d2457274b442dc87db8a173d97c72e19b41ba1d90c613c31","sha512":"76aa1c05f8bd676ec62cdd147fddd7c472b5e8241806ce2a4b0e6d72590237969e3652c442ec06fa7fd84be60c1a0f41d7167f37a1bf8cefaecbf23f89feadb6","ssdeep":"","tlshash":"5211be11a565905b0db92176bb2b730eb4bff7168a4c9a44291df6003b038d3a826cf9","first_seen":"2025-03-16T17:07:37.611527Z","last_seen":"2026-07-27T08:03:47.394598Z","times_seen":1770,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7d2luZG93LmNoYXBvcnRJbml0UmVzdWx0PSIiO3ZhciB0PXdpbmRvdy5jaGFwb3J0Q29uZmlnJiYod2luZG93LmNoYXBvcnRDb25maWcuYXBwSWR8fHdpbmRvdy5jaGFwb3J0Q29uZmlnLmFwcF9pZCl8fHdpbmRvdy5jaGFwb3J0JiYod2luZG93LmNoYXBvcnQuYXBwX2lkfHx3aW5kb3cuY2hhcG9ydC5hcHBJZCl8fCIiO2Z1bmN0aW9uIG8odCxvKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtuLm9ubG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKSxvJiZvKCl9LG4ub25lcnJvcj1lLG4uc3JjPXQsaShuKX1mdW5jdGlvbiBpKHQpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07bz9vLmFwcGVuZENoaWxkKHQpOnNldFRpbWVvdXQoaS5iaW5kKHZvaWQgMCx0KSwxMDApfWZ1bmN0aW9uIGUoKXtjb25zb2xlLmVycm9yKCJjaGFwb3J0OiBjYW4ndCBnZXQgbGF0ZXN0IHZlcnNpb24iKX1vKCJodHRwczovL2FwcC5jaGFwb3J0LmNvbS9pbmZvL3dpZGdldC1hc3NldHM/anNvbnBDYWxsYmFjaz10cnVlJmlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpLGZ1bmN0aW9uKCl7d2luZG93LmNoYXBvcnRJbml0UmVzdWx0Pyh3aW5kb3cuY2hhcG9ydC5fX2Fzc2V0cz13aW5kb3cuY2hhcG9ydEluaXRSZXN1bHQsd2luZG93LmNoYXBvcnRJbml0UmVzdWx0LmpzJiZ3aW5kb3cuY2hhcG9ydEluaXRSZXN1bHQuanMuYm9vdHN0cmFwP3dpbmRvdy5jaGFwb3J0SW5pdFJlc3VsdC5yb290P28od2luZG93LmNoYXBvcnRJbml0UmVzdWx0LnJvb3Qrd2luZG93LmNoYXBvcnRJbml0UmVzdWx0LmpzLmJvb3RzdHJhcCk6bygiaHR0cHM6Ly9hc3NldHMuY2hhcG9ydC5jb20iK3dpbmRvdy5jaGFwb3J0SW5pdFJlc3VsdC5qcy5ib290c3RyYXApOmUoKSxkZWxldGUgd2luZG93LmNoYXBvcnRJbml0UmVzdWx0KTplKCl9KX0od2luZG93KTs="}},"time_used":19,"timings":{"blocked":-1,"dns":3,"connect":1,"send":0,"wait":6,"receive":0,"ssl":8},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/api/public/v1/stats/trigger-views","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:54.173Z","timestamp":1785126654173,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"POST /api/public/v1/stats/trigger-views HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nCP-App-Id: 6a506dba4dab3ead5e8ea2e6\r\nContent-Type: application/json\r\nContent-Length: 40\r\nOrigin: https://www.bitifinex.live\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":40,"data":"{\"triggerId\":\"6a65f44bf0900d0ddf9a04e8\"}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:54 GMT\r\ncontent-type: application/json; charset=utf-8\r\ncontent-length: 16\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nx-powered-by: Express\r\naccess-control-allow-credentials: true\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-allow-headers: Content-Type, cp-app-id\r\netag: W/\"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA\"\r\nx-frame-options: sameorigin\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\ncf-cache-status: DYNAMIC\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=HNnuHrajPpfGfrrF%2FG6XM%2FiFjMHKa39myakFTbRD3sOTjEp%2FpY%2BOXDIHzE9YniedhPsjqaI8hT0LBIQQhcLj8xSzafOvr84L9%2F5VNNlNGbC6AOZ2t3bQG4sIqVit%2BvOcIw%3D%3D\"}]}\r\ncf-ray: a218e954de3cb1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":16,"size_decoded":906,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"7363e85fe9edee6f053a4b319588c086","sha1":"a15e2127145548437173fc17f3e980e3f3dee2d0","sha256":"c955e57777ec0d73639dca6748560d00aa5eb8e12f13ebb2ed9656add3908f97","sha512":"a2fd24056e3ec2f1628f89eb2f1b36a9fc2437ae58d34190630fe065df2bbedaf9bd8aee5f8949a002070052ca68cc6c0167214dd55df289783cff682b808d85","ssdeep":"","tlshash":"f0600003000000a2c000220002382e202080002280000008800c20088a20000208300a","first_seen":"2023-04-05T04:17:27Z","last_seen":"2026-07-27T08:08:23.843946Z","times_seen":178285,"resource_available":false,"data":"eyJzdWNjZXNzIjp0cnVlfQ=="}},"time_used":273,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":273,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/css/ion.rangeSlider.skinFlat.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.622Z","timestamp":1785126645622,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/css/ion.rangeSlider.skinFlat.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 659\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2245,"size_decoded":906,"mime_type":"text/css","magic":"Unicode text, UTF-8 text","md5":"4f740eac4029ad310927795fb8cfdf9a","sha1":"cc6ffaba037221112b494ede708f8271d863ebe3","sha256":"6b92b6a1fd691cee26488bb8dd0c04622d5ebb511670cd71465ee79cf9565856","sha512":"9dc762a09b2c4cd196dd164838c604e86ebfd2e5e6c90e151123498b0d61633f456e6eaab81cdcfd812e8eadfc51324806dfb21985d77c3b914e89e5dd6c3152","ssdeep":"","tlshash":"2b41d0a2dbb21c457862d5a02b649f8f232a390bc01bc96cbbdd361c4f417d074f2a94","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T06:24:38.601043Z","times_seen":26,"resource_available":false,"data":"LyogSW9uLlJhbmdlU2xpZGVyLCBGbGF0IFVJIFNraW4KLy8gY3NzIHZlcnNpb24gMi4wLjMKLy8gwqkgRGVuaXMgSW5lc2hpbiwgMjAxNCAgICBodHRwczovL2dpdGh1Yi5jb20vSW9uRGVuCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIFNraW4gZGV0YWlscyAqLwoKLmlycy1saW5lLW1pZCwKLmlycy1saW5lLWxlZnQsCi5pcnMtbGluZS1yaWdodCwKLmlycy1iYXIsCi5pcnMtYmFyLWVkZ2UsCi5pcnMtc2xpZGVyIHsKICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvc3ByaXRlLXNraW4tZmxhdC5wbmcpIHJlcGVhdC14Owp9CgouaXJzIHsKICAgIGhlaWdodDogNDBweDsKfQouaXJzLXdpdGgtZ3JpZCB7CiAgICBoZWlnaHQ6IDYwcHg7Cn0KLmlycy1saW5lIHsKICAgIGhlaWdodDogMTJweDsgdG9wOiAyNXB4Owp9CiAgICAuaXJzLWxpbmUtbGVmdCB7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTMwcHg7CiAgICB9CiAgICAuaXJzLWxpbmUtbWlkIHsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOwogICAgfQogICAgLmlycy1saW5lLXJpZ2h0IHsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMzBweDsKICAgIH0KCi5pcnMtYmFyIHsKICAgIGhlaWdodDogMTJweDsgdG9wOiAyNXB4OwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweCAwcHggMHB4IDVweDsKfQogICAgLmlycy1iYXItZWRnZSB7CiAgICAgICAgdG9wOiAyNXB4OwogICAgICAgIGhlaWdodDogMTJweDsgd2lkdGg6IDlweDsKICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05MHB4OwogICAgfQoKLmlycy1zaGFkb3cgewogICAgaGVpZ2h0OiAzcHg7IHRvcDogMzRweDsKICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICBvcGFjaXR5OiAwLjI1Owp9Ci5sdC1pZTkgLmlycy1zaGFkb3cgewogICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTI1KTsKfQoKLmlycy1zbGlkZXIgewogICAgd2lkdGg6IDE2cHg7IGhlaWdodDogMThweDsKICAgIHRvcDogMjJweDsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyMHB4Owp9Ci5pcnMtc2xpZGVyLnN0YXRlX2hvdmVyLCAuaXJzLXNsaWRlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNTBweDsKfQoKLmlycy1taW4sIC5pcnMtbWF4IHsKICAgIGNvbG9yOiAjOTk5OwogICAgZm9udC1zaXplOiAxMHB4OyBsaW5lLWhlaWdodDogMS4zMzM7CiAgICB0ZXh0LXNoYWRvdzogbm9uZTsKICAgIHRvcDogMDsgcGFkZGluZzogMXB4IDNweDsKICAgIGJhY2tncm91bmQ6ICNlMWU0ZTk7CiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKfQoKLmlycy1mcm9tLCAuaXJzLXRvLCAuaXJzLXNpbmdsZSB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTBweDsgbGluZS1oZWlnaHQ6IDEuMzMzOwogICAgdGV4dC1zaGFkb3c6IG5vbmU7CiAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgYmFja2dyb3VuZDogI2VkNTU2NTsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci5pcnMtZnJvbTphZnRlciwgLmlycy10bzphZnRlciwgLmlycy1zaW5nbGU6YWZ0ZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgY29udGVudDogIiI7CiAgICBib3R0b206IC02cHg7IGxlZnQ6IDUwJTsKICAgIHdpZHRoOiAwOyBoZWlnaHQ6IDA7CiAgICBtYXJnaW4tbGVmdDogLTNweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci10b3AtY29sb3I6ICNlZDU1NjU7Cn0KCgouaXJzLWdyaWQtcG9sIHsKICAgIGJhY2tncm91bmQ6ICNlMWU0ZTk7Cn0KLmlycy1ncmlkLXRleHQgewogICAgY29sb3I6ICM5OTk7Cn0KCi5pcnMtZGlzYWJsZWQgewp9Cg=="}},"time_used":59,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":54,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/#","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.871Z","timestamp":1785126645871,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\ncache-control: no-store, no-cache, must-revalidate\r\npragma: no-cache\r\ncontent-type: text/html; charset=UTF-8\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Google Maps","description":"Google Maps is a web mapping service. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bicycle and air, or public transportation.","website":"https://maps.google.com","common_platform_enumeration":"","icon":"Google Maps.svg","categories":["Maps"]},{"name":"Swiper","description":"Swiper is a JavaScript library that creates modern touch sliders with hardware-accelerated transitions.","website":"https://swiperjs.com","common_platform_enumeration":"","icon":"Swiper.svg","categories":["JavaScript libraries"]},{"name":"cdnjs","description":"cdnjs is a free distributed JS library delivery service.","website":"https://cdnjs.com","common_platform_enumeration":"","icon":"cdnjs.svg","categories":["CDN"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"particles.js","description":"Particles.js is a JavaScript library for creating particles.","website":"https://github.com/VincentGarreau/particles.js","common_platform_enumeration":"","icon":"","categories":["JavaScript graphics"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Highlight.js","description":"","website":"https://highlightjs.org/","common_platform_enumeration":"","icon":"Highlight.js.png","categories":["JavaScript libraries"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"Slick","description":"","website":"https://kenwheeler.github.io/slick","common_platform_enumeration":"","icon":"Slick.svg","categories":["JavaScript libraries"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]}],"data":{"size":36842,"size_decoded":8221,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, ASCII text, with very long lines (1904)","md5":"0bc8214355a6d77eb02a719607883b7b","sha1":"3241a24581043f9b891a3555b4a7a2744f7e4bca","sha256":"2b88afc94d637b79ad1b602bc6f084ce0336d1062ef1e9819a842a36ebff95a7","sha512":"969db3e67a8477f2ea57db9acf222a23a81a5ae6d486ad6ca849a7541f8ce4061f511cb09716352c1435ae7de5745ef0137a72133ef982818b52b2db72cdcf41","ssdeep":"384:39PUuUGneTcqhuOev5A8h6b9oMqkjCLsVgMOM3wuasx2MgbGYBjmu1:pUuUmHDG8KCMq21VgMOM3w/9mu","tlshash":"c0f24229a8f110230097a0d67a616f5f6fb1ea0bda1b9a1432fc4bd85fd3d99cd0365c","first_seen":"2026-07-27T03:51:33.503345Z","last_seen":"2026-07-27T04:32:40.438285Z","times_seen":3,"resource_available":false,"data":"ICAKPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbiI+CgoKCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MTo0MyBHTVQgLS0+CjwhLS0gQWRkZWQgYnkgSFRUcmFjayAtLT48bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiAvPjwhLS0gL0FkZGVkIGJ5IEhUVHJhY2sgLS0+CjxoZWFkPgogICAgCgogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDx0aXRsZT5DcnlwdG9wbGMgfHwgSG9tZTwvdGl0bGU+CiAgICA8IS0tRmF2aWNvbiBhZGQtLT4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJhc3NldHMvaW1hZ2VzL2xvZ28vbG9nbzEuaHRtbCI+CiAgICA8IS0tYm9vdHN0cmFwIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1mb250LWF3ZXNvbWUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLSBMaWdodGNhc2UgIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9saWdodGNhc2UuY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLVdPVyBDc3MtLT4KICAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2FuaW1hdGUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBTbGlkZXIgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBOYXYgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrbmF2Lm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3dpcGVyICBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3Mvc3dpcGVyLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3R5bGUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS0gVGhlYW0gQ29sb3IgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvY3NzL2NvbG9yYmEzNmJhMzZiYTM2LmNzcz9jb2xvcj0yZWNjNzEiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tUmVzcG9uc2l2ZSBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3MvcmVzcG9uc2l2ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgoKCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9pb24ucmFuZ2VTbGlkZXIuY3NzIj4KICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJhc3NldHMvY3NzL3Jhbmdlci1zdHlsZS5jc3MiPgogICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImFzc2V0cy9jc3MvaW9uLnJhbmdlU2xpZGVyLnNraW5GbGF0LmNzcyI+CiAgICA8c3R5bGU+CiAgICAgICAucHJpY2UtdGFibGUgewogICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7CiAgICAgICB9CiAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Zyb250LzIvY3NzL3N0eWxlLmNzcyI+CiAgICAKICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tb2Rlcm5penIuanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zd2VldGFsZXJ0LzEuMS4zL3N3ZWV0YWxlcnQubWluLmh0bWwiPgoKICAgIDxzY3JpcHQgc3JjPSIuLi9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvc3dlZXRhbGVydC8xLjEuMy9zd2VldGFsZXJ0Lm1pbi0yLmh0bWwiPjwvc2NyaXB0PgogICAgCgogICAgCiAKPC9oZWFkPgo8Ym9keSAgZGF0YS1zcHk9InNjcm9sbCI+CiAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MzBweDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IHdpZHRoOiAxMDAlOyI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2lkZ2V0LmNvaW5saWIuaW8vd2lkZ2V0P3R5cGU9aG9yaXpvbnRhbF92MiZhbXA7dGhlbWU9bGlnaHQmYW1wO3ByZWZfY29pbl9pZD0xNTA1JmFtcDtpbnZlcnRfaG92ZXI9IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIzNnB4IiBzY3JvbGxpbmc9ImF1dG8iIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVyPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjA7Ij48L2lmcmFtZT4KICAgIDwvZGl2Pgo8IS0tIFN0YXJ0IFByZS1Mb2FkZXItLT4KCjxkaXYgaWQ9InByZWxvYWRlciI+CiAgICA8ZGl2IGRhdGEtbG9hZGVyPSJjaXJjbGUtc2lkZSI+PC9kaXY+CjwvZGl2Pgo8IS0tIEVuZCBQcmVsb2FkIC0tPgo8ZGl2IGNsYXNzPSJhbmltYXRpb24tZWxlbWVudCI+CjwhLS0gRW5kIFByZS1Mb2FkZXIgLS0+CjwhLS1zdXBwb3J0IGJhciAgdG9wIHN0YXJ0LS0+CjxkaXYgY2xhc3M9InN1cHBvcnQtYmFyLXRvcCB3b3cgc2xpZGVJbkxlZnQiIGRhdGEtd293LWR1cmF0aW9uPSIycyIgaWQ9InJhaW5kcm9wcy1ncmVlbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAYml0aWZpbmV4LmxpdmUiPiA8aSBjbGFzcz0iZmEgZmEtZW52ZWxvcGUgZW1haWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+IHN1cHBvcnRAYml0aWZpbmV4LmxpdmU8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+IDxpIGNsYXNzPSJmYSBmYS1waG9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4gKzEzMzAyNjUwMDQ1PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB0ZXh0LXJpZ2h0IGJvdW5jZUluIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtYWRtaW4iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxvZ2luLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXIiPjwvaT4gTE9HSU4gPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXItcGx1cyI+PC9pPiBSRUdJU1RFUjwvYT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdXBwb3J0LWJhci1zb2NpYWwtbGlua3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPCEtLXN1cHBvcnQgYmFyICB0b3AgZW5kLS0+CjwhLS1tYWluIG1lbnUgc2VjdGlvbiBzdGFydC0tPgo8bmF2IGNsYXNzPSJtYWluLW1lbnUgd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyIgPgogIDxwIHN0eWxlPSJmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSI+CiAgICAgIAogICAgICAgICAgICAgICAgYml0aWZpbmV4ICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05IHRleHQtcmlnaHQiPgogICAgICAgICAgICAgICAgPHVsIGlkPSJoZWFkZXItbWVudSIgY2xhc3M9ImhlYWRlci1uYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgucGhwIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imhvdy1pdC13b3Jrcy5waHAiPkhvdyBpdCBXb3JrczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJ0ZXJtLW9mLXVzZS5waHAiPlRlcm1zIG9mIHVzZTwvYT48L2xpPjxsaT48YSBocmVmPSIyLnBocCI+UGxhbnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29udGFjdC5waHAiPkNvbnRhY3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSIjIj5BY2NvdW50IDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZWdhLW1lbnUgbWVnYS1tZW51MSBtZWdhLW1lbnUyIG1lbnUtcG9zdGlvbi00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lZ2EtbGlzdCBtZWdhLWxpc3QxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSJsb2dpbi5waHAiPkxvZ2luPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icGFnZS1zY3JvbGwiIGhyZWY9InJlZ2lzdGVyLnBocCI+UmVnaXN0ZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvbmF2PgoKPCEtLW1haW4gbWVudSBzZWN0aW9uIGVuZC0tPgoKICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBzdGFydC0tPgogICAgPHNlY3Rpb24gaWQ9InBhcnRpY2xlcy1qcyIgY2xhc3M9ImhlYWRlci1hcmVhIGhlYWRlci1iZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ltYWdlcy9zbGlkZXIvbG9nbzQuanBnJykiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbi10b3AtcGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWZpcnN0IHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48aDEgY2xhc3M9ImZyb250aGVhZCIgYWxpZ249ImNlbnRlciI+PGJyPjwvaDE+PGgxIGNsYXNzPSJmcm9udGhlYWQiIGFsaWduPSJjZW50ZXIiPjxicj48L2gxPjxoMSBjbGFzcz0iZnJvbnRoZWFkIiBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0iIzY2RkYzMyI+PGZvbnQgY29sb3I9IiNGRkZGRkYiPjxiPmJpdGlmaW5leDxiPjxicj48Yj5DUllQVE9DVVJSRU5DWSBJTlZFU1RNRU5UIDwvYj48L2ZvbnQ+PC9mb250PjwvaDE+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAxLjVlbTsiIGNsYXNzPSIgd293IHNsaWRlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxkaXYgYWxpZ249ImNlbnRlciI+PGg0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgY29sb3I9IiNGRkZGRkYiPlNpZ24gdXAgYW5kIFN0YXJ0IEludmVzdGluZywgYW5kIGdldCBhbWF6aW5nIG9mZmVycyBhbmQgYm9udXNlcyB3ZWVrbHkgb24geW91ciBBY2NvdW50PC9mb250PjwvaDQ+PC9kaXY+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24tYm90dG9tLXBhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLXNlYXJjaC1mcm9tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBlbmQtLT4KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBzdGFydCAtLT4KICAgIDxkaXYgY2xhc3M9ImFkbWluLXNlY3Rpb24gd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIGNvbnRlbnQgc3RhcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HZXQgYWNjZXNzIHRvIFlvdXIgYWNjb3VudDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBlbmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdXNlciBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJsb2dpbi5waHAiPjxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiI+c2lnbiBpbjwvYnV0dG9uPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InJlZ2lzdGVyIj5yZWdpc3RlciBub3c8L2J1dHRvbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIHVzZXIgZW5kIC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4tY29udGVudCBlbmQgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBlbmQgLS0+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBTdGFydCAtLT4KICAgIDxzZWN0aW9uICBjbGFzcz0iY2lyY2xlLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHNlY3Rpb24tYmFja2dyb3VuZCB3b3cgc2xpZGVJblVwIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPldIQVQgSVMgPHNwYW4+Yml0aWZpbmV4Pzwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkyODBmMmE0LnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNSWVBUTyBJbnZlc3RtZW50PC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc2VydmljZSBtYWtlcyBJbnZlc3RpbmcgaW4gQ3J5cHRvY3VycmVuY3kgYWNjZXNzaWJsZSB0byBldmVyeW9uZS4gTm8gbG9uZ2VyIGlzIGl0IHJlcXVpcmVkIHRvIGJ1eSBleHBlbnNpdmUgZXF1aXBtZW50IGFuZCB3YXN0ZSB5b3VyIHRpbWUgb24gc2V0dGluZyBpdCB1cC4gU2ltcGx5IHNlbGVjdCB5b3VyIGRlc2lyZWQgcGxhbiBhbmQgZ2VuZXJhdGUgcmV2ZW51ZSE8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkzMWRjYmRjLnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkVBU1kgSU5WRVNUSU5HPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5JbnZlc3RpbmcgaXMgbWFkZSBzaW1wbGUgd2l0aCBiaXRpZmluZXguIERlcG9zaXQgdG8gc3RhcnQgZWFybmluZy4gV2l0aGRyYXcgd2l0aGluIGRheXMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5M2Q1MzI1NS5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5QUklWQVRFPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc3lzdGVtcyBhcmUgc2VjdXJlIGFuZCBzYWZlLiBObyBJbnRydXNpb24uIFdlIGhhdmUgdGhlIGJlc3QgVGVhbSEgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5NDY2N2U1My5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TRUNVUklUWTwvaDY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WW91ciB3YWxsZXQgaXMgc2VjdXJlIHdpdGggb3VyIDIgZmFjdG9yIHNlY3VyaXR5IHN5c3RlbS4gV2UgYWxlcnQgeW91IGlmIHRoZXJlIGlzIGEgbG9naW4gYXR0ZW1wdDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBFbmQgLS0+CjxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KCjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBTdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbi1wYWRkaW5nIHNhbGUtc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWhlYWRlciB3b3cgc2xpZGVJbkRvd24iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5hYm91dCA8c3Bhbj4gYml0aWZpbmV4IDwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgd2lkdGg9IjMxNSIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvR21PemloNkkxenMiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHAgY2xhc3M9ImFib3V0LWNvbW11bml0eS10ZXh0Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDxhIGhyZWY9ImF2Lmh0bWwiPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgIDxpbWcgc3JjPSJhdi5qcGciIGhlaWdodD0iMzE1IiB3aWR0aD0iMzE1Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDwvYT4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPC9wPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCB0ZXh0LWp1c3RpZnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iICJzZWdvZT0iIiB1aT0iIiBhcmlhbD0iIiB2ZXJkYW5hPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWE9IiIgc2Fucy1zZXJpZj0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweD0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+TGV0IHlvdXIgY29tcHV0ZXIgcmVsYXguIE91ciBDbG91ZCBzb2x1dGlvbiB3aWxsIG1pbmUgYW5kIGhhc2ggd2hhdGV2ZXIgY3J5cHRvY3VycmVuY3kgeW91IG5lZWQuIEdldCBzdGFydGVkIHdpdGggaW1tZWRpYXRlIG1pbmluZyBhbmQgaW52ZXN0bWVudCByZXN1bHRzLjwvZm9udD48L3NwYW4+PGRpdj48c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iInNlZ29lPSIiIHVpPSIiIGFyaWFsLD0iIiB2ZXJkYW5hLD0iIiBzYW5zPSIiIHVuaWNvZGU9IiIgdGFob21hLD0iIiBzYW5zLXNlcmlmOz0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweDs9IiI+PGRpdiBhbGlnbj0ibGVmdCIgc3R5bGU9IiIgb3Blbj0iIiBzYW5zPSIiIGx1Y2lkYT0iIiBncmFuZGU9IiIgc2Vnb2U9IiIgdWk9IiIgYXJpYWwsPSIiIHZlcmRhbmEsPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWEsPSIiIHNhbnMtc2VyaWY7PSIiIGZvbnQtc2l6ZTo9IiIgbWVkaXVtID0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+KkNyeXB0b2N1cnJlbmN5IEludmVzdG1lbnRzIHNob3VsZCBiZSBvbmUgb2YgdGhlIGJlc3QgYW5kIGZhc3QgZ3Jvd2luZyBzb3VyY2Ugb2YgaW5jb21lIG9yIGludmVzdG1lbnQuIFRoZSBhYm92ZSBudW1iZXJzIHJlZmxlY3Qgbm8gZGlmZmljdWx0eSBpbmNyZWFzZS4gSW52ZXN0aW5nIGludm9sdmVzIHJpc2ssIGluY2x1ZGluZyBwb3NzaWJsZSBsb3NzIG9mIHByaW5jaXBhbC4gQnV0IGhlcmUgYXQgYml0aWZpbmV4IHdlIGhhdmUgYSAxMDAlIGNhc2gtYmFjayBwb2xpY3kgaW4gc3VjaCBjYXNlcy4mbmJzcDs8YnI+PGJyPkluIGFkZGl0aW9uIHRvIHRoZSBub3JtYWwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGludmVzdGluZywgY3J5cHRvY3VycmVuY3kgaW52ZXN0bWVudHMgYW5kIHJlbGF0ZWQgaW5zdHJ1bWVudHMgbWF5IGludm9sdmUgcmlzayBvZiBjYXBpdGFsIGxvc3MgZnJvbSB1bmZhdm9yYWJsZSBmbHVjdHVhdGlvbiBpbiBjcnlwdG9jdXJyZW5jeSB2YWx1ZXMsIGV4Y2hhbmdlLXJlbGF0ZWQgcmlza3MsIHBvbGljeSByaXNrcywgbGlxdWlkaXR5LCBhbmQgbWFya2V0IHByaWNlIGZsdWN0dWF0aW9uIGFuZCBkZW1hbmQuJm5ic3A7PGJyPjxicj5UaGUgc3RyYXRlZ2llcyBkaXNjdXNzZWQgYXJlIHN0cmljdGx5IGZvciBpbGx1c3RyYXRpdmUgYW5kIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCBzaG91bGQgbm90IGJlIGNvbnN0cnVlZCBhcyBhIHJlY29tbWVuZGF0aW9uIHRvIHB1cmNoYXNlLiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbnkgc3RyYXRlZ2llcyBkaXNjdXNzZWQgd2lsbCBiZSBlZmZlY3RpdmUuIFRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBjb21wbGV0ZSBhbmFseXNpcyBvZiBldmVyeSBtYXRlcmlhbCBmYWN0IHJlc3BlY3RpbmcgYW55IHN0cmF0ZWd5LiBUaGUgZXhhbXBsZXMgcHJlc2VudGVkIGRvIG5vdCB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBjb21taXNzaW9ucywgdGF4IGltcGxpY2F0aW9ucywgb3Igb3RoZXIgdHJhbnNhY3Rpb25zIGNvc3RzLCB3aGljaCBtYXkgc2lnbmlmaWNhbnRseSBhZmZlY3QgdGhlIGVjb25vbWljIGNvbnNlcXVlbmNlcyBvZiBhIGdpdmVuIHN0cmF0ZWd5LjwvZm9udD48L2Rpdj48ZGl2PjxiPjxicj48L2I+PC9kaXY+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBlbmQtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc2VydmljZSBzZWN0aW9uIHN0YXJ0LS0+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uLXBhZGRpbmcgc2VydmljZS1zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUgdGV4dC1jZW50ZXIgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPk91ciA8c3Bhbj4gU2VydmljZXMgPC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSIjIiBhbHQ9IiI+PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwPldlIG9mZmVyIGV2ZXJ5b25lIHRoZSBjaGFuY2UgdG8gZWFybiBwcm9maXRzIGZyb20gaW52ZXN0aW5nIHRoZSBtb3N0IHByb2ZpdGFibGUgZS1jdXJyZW5jaWVzLiBXZSBoYXZlIHRoZSBiZXN0IG5ldHdvcmsgYW5kIHRlY2hub2xvZ3kgdG8gZW5zdXJlIHRoaXMhPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcm9ja2V0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD51cHBlciBGYXN0IFJlcGVhdDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXdyZW5jaCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+RUFTWSBTRVRVUDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1vbmV5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5JTlZFU1RNRU5UPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbW9uZXkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPldJVEhEUkFXPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkZVTExZIERZTkFNSUM8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2Utd3JhcHBlciB0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+QURNSU4gREFTSEJPQVJEPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBMQU5TPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtd3JlbmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5BRE1JTiBUT09MUzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1zZXJ2aWNlIHNlY3Rpb24gZW5kLS0+Cgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+CjwhLS0gU2FsZSBTZWN0aW9uIFN0YXJ0IC0tPgo8c2VjdGlvbiBjbGFzcz0ic2FsZS1zZWN0aW9uIHNlY3Rpb24tcGFkZGluZyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8IS0tIFNhbGUgSGVhZGVyIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5OZXcgPHNwYW4+Q3VzdG9tZXI/PC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gU2FsZSBoZWFkZXIgRW5kIC0tPgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIENvbnRlbnQgU3RhcnQgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIiBzdHlsZT0icGFkZGluZzogOHB4IDIwcHg7IiBocmVmPSJob3ctaXQtd29ya3MuaHRtbCI+SG93IEl0IFdvcmtzPzwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIGNvbnRlbnQgZW5kIC0tPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS0gU2FsZSBTZWN0aW9uIEVuZCAtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc3RhcnQgaW52ZXN0bWVudCBwbGFuLS0+CjxTZWN0aW9uIGNsYXNzPSJwcmljaW5nMi1zZWN0aW9uIHNlY3Rpb24tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIHNlY3Rpb24tcGFkZGluZyBwYWRkaW5nLWJvdHRvbS0wIHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PdXIgYXdlc29tZTxzcGFuPiBwbGFuczwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5DaGVjayBvdXQgb3VyIGFmZm9yZGFibGUgYW5kIGVmZmljaWVudCBwbGFucy4gWW91IGNhbiBhbHdheXMgdXBncmFkZSB5b3VyIHBhY2thZ2VzLiZuYnNwOzwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgIExpc3QxIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctbGlzdDEgcHJpY2luZy1saXN0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctdGh1bWIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWNlbnRlciIgc3R5bGU9ImNvbG9yOiAjZmZmO3BhZGRpbmctdG9wOiAyMHB4OyI+UGxhbnM8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNlcnZlciIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctaGVhZGVyMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+U1RBUlRFUjwvaDU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UcmFkaW5nPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1hbW91bnQxIj48cD4kPC9wPjxzcGFuPiAzMDAwPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWluZm8xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkludmVzdCBXZWVrbHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPldlZWtseSBXaXRoZHJhd2FsczwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+UGF5b3V0cyBQcm9jZXNzZWQgV2l0aGluIDcyIEhvdXJzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4yNCBIb3VycyBTZXJ2aWNlPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HdWFyYW50ZWVkIFBheW91dHM8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJyZWdpc3Rlci5waHAiPk1vcmUgUGxhbnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcmljaW5nIExpc3QxIEVuZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBFbmQgLS0+CgoKCgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KPCEtLWVuZCBzdGFydCBpbnZlc3RtZW50IHBsYW4tLT4KCgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+Cgo8IS0tcGF5bWVudCBtZXRob2Qgc2VjdGlvbiBzdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0iY2xpZW50LXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIHdvdyB6b29tSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxoMj5QQVlNRU5UIDxzcGFuPiBXRSBBQ0NFUFQ8L3NwYW4+PC9oMj4KICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gc2VjdGlvbi1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGllbnQtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dpcGVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItY29udGFpbmVyIGNsaWVudC1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzU5ZjgwOWM5MzFjYjAucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjY1NjBoNC5wbmciIGFsdD0iY2xpZW50Ij48L2E+PC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvMTUwODgyNjU3Nmg1LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvY29pbm1hbWEucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSI+PGRpdiBjbGFzcz0ib3VyLWNsaWVudCB3b3cgcm90YXRlSW4iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+PGEgaHJlZj0iIyI+PGltZyBjbGFzcz0iaW1nLXJlc3BvbnNpdmUiIHNyYz0iYXNzZXRzL2ltYWdlcy8xNTA4NzQwNzcwaDYucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjgyMjg2MGg4LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBZGQgQXJyb3dzIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLWJ1dHRvbi1uZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItYnV0dG9uLXByZXYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3VibGUtbGVmdCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIGNsaWVudCBjb250YWluZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBjbGllbnQgbGlzdC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBzd2lwZXIgd3JhcHBlciAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+PCEtLSByb3cgLS0+CiAgICA8L2Rpdj48IS0tIGNvbnRhaW5lciAtLT4KPC9zZWN0aW9uPgo8IS0tZW5kIHBheW1lbnQgbWV0aG9kIHNlY3Rpb24gc3RhcnQtLT4KPCEtLWZvb3RlciBhcmVhIHN0YXJ0LS0+Cjxmb290ZXIgaWQ9ImNvbnRhY3QiIGNsYXNzPSJmb290ZXItYXJlYSI+CiAgICA8IS0tZm9vdGVyIGFyZWEgc3RhcnQtLT4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zdXBwb3J0LWJhciI+CiAgICAgICAgICAgIDwhLS0gRm9vdGVyIFN1cHBvcnQgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXN1cHBvcnQtbGlzdCI+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIxcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWhlYWRwaG9uZXMiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MjQvNyBDdXN0b21lciBTdXBwb3J0PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0id293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjFzIiBkYXRhLXdvdy1kZWxheT0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItdGh1bWIiPjxpIGNsYXNzPSJmYSBmYS1lbnZlbG9wZSI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJjb250YWN0LnBocCI+c3VwcG9ydEBiaXRpZmluZXgubGl2ZTwvYT48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWNvbW1lbnRzLW8iPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+RnJpZW5kbHkgU3VwcG9ydCBUaWNrZXQ8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSI0cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLXBob25lIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisxMzMwMjY1MDA0NTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIEZvb3RlciBTdXBwb3J0IEVuZCAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgY29sLXNtLTEyIHdvdyBmYWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIChjKSAyMDEzIGJpdGlmaW5leCAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtc20tMTIgd293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjNzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1zbS0xMiB3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InRlcm0tb2YtdXNlLnBocCIgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5UZXJtIE9mIFVzZTwvYT4gfAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJwcml2YWN5LXBvbGljeS5waHAiIGNsYXNzPSJ0ZXh0LXJpZ2h0IiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5Qcml2YWN5IFBvbGljeTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJiYWNrLXRvLXRvcCIgY2xhc3M9InNjcm9sbC10b3AgYmFjay10by10b3AiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IiIgdGl0bGU9IiIgPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtdXAiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgbGkuZXhwb3J0LW1haW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KPC9zdHlsZT4KPCEtLUdvb2dsZSBNYXAgQVBpIEtleS0tPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT1BSXphU3lBSHpQU1YyanNoYmpJOGZxbkNfQzRMMDhmZm5qNUVOM0EiPjwvc2NyaXB0Pgo8IS0tanF1ZXJ5IHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4gCgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tIEdtYXAgTG9hZCBIZXJlIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2dtYXBzLmpzIj48L3NjcmlwdD4KPCEtLSBNYXAgSnMgRmlsZSBMb2FkIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL21hcC1zY3JpcHRiYTM2YmEzNmJhMzYuaHRtbD9jb2xvcj0yZWNjNzEiPjwvc2NyaXB0Pgo8IS0tIEhpZ2hsaWdodCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2hpZ2hsaWdodC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tSnF1ZXJ5IFVpIFNsaWRlciBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS11aS1zbGlkZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLUNpcmNsZWZ1bCBKcyBGaWxlIExvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9qcXVlcnkuY2lyY2xpZnVsLmpzIj48L3NjcmlwdD4KPCEtLUNvdW50ZXJVcCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5jb3VudGVydXAubWluLmpzIj48L3NjcmlwdD4KPCEtLSBSaXBwbGVzICBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5yaXBwbGVzLW1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1TbGljayBOYXYgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LnNsaWNrbmF2Lm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1MaWdodGNhc2UgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbGlnaHRjYXNlLmpzIj48L3NjcmlwdD4KPCEtLXBhcnRpY2xlIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tcGFydGljbGUgY3VzdG9tIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy1jdXN0b20uanMiPjwvc2NyaXB0Pgo8IS0tUmFpbkRyb3BzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvcmFpbmRyb3BzLmpzIj48L3NjcmlwdD4KPCEtLUVhc2luZyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Vhc2luZy1taW4uanMiPjwvc2NyaXB0Pgo8IS0tU2xpY2sgU2xpZGVyIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3NsaWNrLm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1Td2lwZXIgc2NyaXB0IGxvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9zd2lwZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLVdPVyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3dvdy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tV2F5UG9pbnRzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvd2F5cG9pbnRzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iYXNzZXRzL2pzL2lvbi5yYW5nZVNsaWRlci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgJCh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB3b3cgPSBuZXcgV09XKHsKICAgICAgICAgICAgICAgIGJveENsYXNzOiAnd293JywKICAgICAgICAgICAgICAgIGFuaW1hdGVDbGFzczogJ2FuaW1hdGVkJywKICAgICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSwKICAgICAgICAgICAgICAgIGxpdmU6IHRydWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHdvdy5pbml0KCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxzY3JpcHQ+CiAgICAgICAgJC5lYWNoKCQoJy5zbGlkZXItaW5wdXQnKSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkdCA9ICQodGhpcyksCgogICAgICAgICAgICAgICAgICAgIGZyb20gPSAkdC5kYXRhKCdmcm9tJyksCiAgICAgICAgICAgICAgICAgICAgdG8gPSAkdC5kYXRhKCd0bycpLAoKICAgICAgICAgICAgICAgICAgICAkZGFpbHlQcm9maXQgPSAkKCR0LmRhdGEoJ2RhaWx5cHJvZml0JykpLAogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdCA9ICQoJHQuZGF0YSgndG90YWxwcm9maXQnKSksCgogICAgICAgICAgICAgICAgICAgICR2YWwgPSAkKCR0LmRhdGEoJ3ZhbHVldGFnJykpLAoKICAgICAgICAgICAgICAgICAgICBwZXJEYXkgPSAkdC5kYXRhKCdwZXJkYXknKSwKICAgICAgICAgICAgICAgICAgICBwZXJZZWFyID0gJHQuZGF0YSgncGVyeWVhcicpOwoKCiAgICAgICAgICAgICR0LmlvblJhbmdlU2xpZGVyKHsKICAgICAgICAgICAgICAgIGlucHV0X3ZhbHVlc19zZXBhcmF0b3I6ICI7CiAgICAgICAgICAgICAgICBwcmVmaXg6ICckICcsCiAgICAgICAgICAgICAgICBoaWRlX21pbl9tYXg6IHRydWUsCiAgICAgICAgICAgICAgICBmb3JjZV9lZGdlczogdHJ1ZSwKICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAkdmFsLnZhbCggJyQgJyArIHZhbC5mcm9tKTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIHByb2ZpdCA9ICh2YWwuZnJvbSAqIHBlckRheSAvIDEwMCkudG9GaXhlZCgxKTsKICAgICAgICAgICAgICAgICAgICBwcm9maXQgID0gJyQgJyArIHByb2ZpdC5yZXBsYWNlKCcuJywgJy4nKSA7CiAgICAgICAgICAgICAgICAgICAgJGRhaWx5UHJvZml0LnRleHQocHJvZml0KSA7CgogICAgICAgICAgICAgICAgICAgIHByb2ZpdCA9ICggKHZhbC5mcm9tICogcGVyRGF5IC8gMTAwKSogcGVyWWVhciApLnRvRml4ZWQoMSk7CiAgICAgICAgICAgICAgICAgICAgcHJvZml0ICA9ICAnJCAnICsgcHJvZml0LnJlcGxhY2UoJy4nLCAnLicpOwogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdC50ZXh0KHByb2ZpdCk7CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICAkKCcuaW52ZXN0LXR5cGVfX3Byb2ZpdC0tdmFsJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKCiAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKCQodGhpcykuZGF0YSgnc2xpZGVyJykpLmRhdGEoImlvblJhbmdlU2xpZGVyIik7CgogICAgICAgICAgICBzbGlkZXIudXBkYXRlKHsKICAgICAgICAgICAgICAgIGZyb206ICQodGhpcykudmFsKCkucmVwbGFjZSgnJCAnLCAiIikKICAgICAgICAgICAgfSk7CiAgICAgICAgfSkgICAgICAKICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS1NYWluIGpzIGZpbGUgbG9hZC0tPgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbWFpbi5qcyI+PC9zY3JpcHQ+CgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tYWluLmpzIj48L3NjcmlwdD4KCiAgICAgICAgPCEtLXN3YWwgYWxlcnQgbWVzc2FnZS0tPgoKICAgICAgICA8IS0tZW5kIHN3YWwgYWxlcnQgbWVzc2FnZS0tPgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIG1vYmlsZSA9ICgvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpOwoKICAgICAgICBobGpzLmluaXRIaWdobGlnaHRpbmdPbkxvYWQoKTsKICAgICAgICBobGpzLmNvbmZpZ3VyZSh7dXNlQlI6IHRydWV9KTsKICAgICAgICBqUXVlcnkoJyNyYWluZHJvcHMnKS5yYWluZHJvcHMoe2NvbG9yOicjZmZmJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIGpRdWVyeSgnI3JhaW5kcm9wcy1ncmVlbicpLnJhaW5kcm9wcyh7Y29sb3I6JyMyZWNjNzEgJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIDwvc2NyaXB0PgoKICAgICAgICAgICAgPCEtLSBHZXRCdXR0b24uaW8gd2lkZ2V0IC0tPgogICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgICAgIC8vIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vICAgICB2YXIgb3B0aW9ucyA9IHsKICAgICAgICAgICAgLy8gICAgICAgICB3aGF0c2FwcDogIisxMzMwMjY1MDA0NSIsIC8vIFdoYXRzQXBwIG51bWJlcgogICAgICAgICAgICAvLyAgICAgICAgIGNhbGxfdG9fYWN0aW9uOiAiTWVzc2FnZSB1cyBOb3ciLCAvLyBDYWxsIHRvIGFjdGlvbgogICAgICAgICAgICAvLyAgICAgICAgIHBvc2l0aW9uOiAibGVmdCIsIC8vIFBvc2l0aW9uIG1heSBiZSAncmlnaHQnIG9yICdsZWZ0JwogICAgICAgICAgICAvLyAgICAgfTsKICAgICAgICAgICAgLy8gICAgIHZhciBwcm90byA9IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLCBob3N0ID0gImdldGJ1dHRvbi5pbyIsIHVybCA9IHByb3RvICsgIi8vc3RhdGljLiIgKyBob3N0OwogICAgICAgICAgICAvLyAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHMuYXN5bmMgPSB0cnVlOyBzLnNyYyA9IHVybCArICcvd2lkZ2V0LXNlbmQtYnV0dG9uL2pzL2luaXQuanMnOwogICAgICAgICAgICAvLyAgICAgcy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IFdoV2lkZ2V0U2VuZEJ1dHRvbi5pbml0KGhvc3QsIHByb3RvLCBvcHRpb25zKTsgfTsKICAgICAgICAgICAgLy8gICAgIHZhciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyB4LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsIHgpOwogICAgICAgICAgICAvLyB9KSgpOwogICAgICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS0gL0dldEJ1dHRvbi5pbyB3aWRnZXQgLS0+CiAgICAgICAgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubWdtIHsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgIHotaW5kZXg6IDkwOwogICAgICAgICAgICAgICAgYm90dG9tOiAyMHB4OwogICAgICAgICAgICAgICAgcmlnaHQ6IDQwJTsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZDk2MWE7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDI3cHg7CiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEzcHggMHB4IHJnYmEoMCwgMCwgMCwgLjMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubWdtIGEgewogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5tZ20gYSwKICAgICAgICAgICAgLm1nbSBhOmFjdGl2ZSB7CiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgfQoKICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9Im1nbSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHh0IiBzdHlsZT0iY29sb3I6YmxhY2s7Ij5JbnZlc3RvciBmcm9tIDxiPjwvYj4ganVzdCBlYXJuZWQgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+PC9hPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgdmFyIGxpc3RDb3VudHJpZXMgPSBbJ1VuaXRlZCBLaW5nZG9tJywgJ0luZGlhJywgJ1BoaWxpcHBpbmUnLCAnVVNBJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0l0YWx5JywgJ1NvdXRoIEtvcmVhJywgJ0F1c3RyYWxpYScsICdOb3J3YXknLCAnQ2FuYWRhJywgJ0FyZ2VudGluYScsICdTYXVkaSBBcmFiaWEnLCAnTWV4aWNvJywgJ1NwYWluJywgJ0F1c3RyaWEnLCAnVmVuZXp1ZWxhJywgJ1NvdXRoIEFmcmljYScsICdTd2VkZW4nLCAnU291dGggS29yZWEnLCAnQ2hpbmEnLCAnSXRhbHknLCAnR2VybWFueScsICdVbml0ZWQgS2luZ2RvbScsICdCYWhyYWluJywgJ0dyZWVjZScsICdDdWJhJywgJ0J1bGdhcmlhJywgJ1BvcnR1Z2FsJywgJ0F1c3RyaWEnLCAnQ3lwcnVzJywgJ1BhbmFtYScsICdBc2lhJywgJ05vcndheScsICdOZXRoZXJsYW5kcycsICdTd2l0emVybGFuZCcsICdCZWxnaXVtJywgJ0lzcmFlbCcsICdDeXBydXMnLCAnU3BhaW4nLCAnTm9yd2F5J107CiAgICAgICAgdmFyIGxpc3RQbGFucyA9IFsnJDIwMDAnLCAnJDEwMDAnLCAnJDUwMDAwJywgJyQxNTAwMCcsICckMTAwMDAnLCAnJDEwMDAwMCcsICckMjAwMDAnLCAnJDE1MDAnLCAnJDMwMDAwJywgJyQ0MDAwMCcsICckMTIwMCcsICckNjAwMDAnLCAnJDM0MDAnLCAnJDcwMDAnLCAnJDI1MDAwJywgJyQyNTAwMCcsICckMzUwMDAnLCAnJDUwMDAnLCAnJDcwMDAnLCAnJDQ1MDAwJywgJyQzNTAwJywgJyQ1MDAwJywgJyQxMjUwMCcsICckOTUwMCddOwogICAgICAgIGludGVydmFsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDQwMDAwIC0gODAwMCArIDEpICsgODAwMCk7CiAgICAgICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICAgICAgZnVuY3Rpb24gcmVxdWVzdCgpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChydW4pOwogICAgICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgICAgICAgICB2YXIgY291bnRyeSA9IGxpc3RDb3VudHJpZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdENvdW50cmllcy5sZW5ndGgpXTsKICAgICAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgICAgICB2YXIgbXNnID0gJ1NvbWVvbmUgZnJvbSA8Yj4nICsgY291bnRyeSArICc8L2I+IGp1c3QgZWFybmVkICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij4nICsgcGxhbiArICcgLjwvYT4nOwogICAgICAgICAgICAkKCIubWdtIC50eHQiKS5odG1sKG1zZyk7CiAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVJbigzMDApOwogICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVPdXQoMzAwKTsKICAgICAgICAgICAgfSwgNjAwMCk7CiAgICAgICAgICAgIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKICAgICAgICB9CgogICAgPC9zY3JpcHQ+CiAgICAgICAgCiA8IS0tIEJlZ2luIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gQmVnaW4gb2YgQ2hhcG9ydCBMaXZlIENoYXQgY29kZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgooZnVuY3Rpb24odyxkLHYzKXsKdy5jaGFwb3J0Q29uZmlnID0gewogIGFwcElkIDogJzZhNTA2ZGJhNGRhYjNlYWQ1ZThlYTJlNicsCn07CgppZih3LmNoYXBvcnQpcmV0dXJuO3YzPXcuY2hhcG9ydD17fTt2My5fcT1bXTt2My5fbD17fTt2My5xPWZ1bmN0aW9uKCl7djMuX3EucHVzaChhcmd1bWVudHMpfTt2My5vbj1mdW5jdGlvbihlLGZuKXtpZighdjMuX2xbZV0pdjMuX2xbZV09W107djMuX2xbZV0ucHVzaChmbil9O3ZhciBzPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO3MuYXN5bmM9dHJ1ZTtzLnNyYz0naHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20vamF2YXNjcmlwdHMvaW5zZXJ0LmpzJzt2YXIgc3M9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07c3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxzcyl9KSh3aW5kb3csIGRvY3VtZW50KTsKPC9zY3JpcHQ+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CiAgICA8L2JvZHk+CgoKPCEtLSBNaXJyb3JlZCBmcm9tIENyeXB0b3BsYy5vcmcvZW4vaG9tZS5waHAgYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUaHUsIDI1IEF1ZyAyMDIyIDAwOjU2OjA4IEdNVCAtLT4KCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MzozNSBHTVQgLS0+CjwvaHRtbD4="}},"time_used":39,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":38,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/features/5a4269280f2a4.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.872Z","timestamp":1785126645872,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/features/5a4269280f2a4.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 25221\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":25221,"size_decoded":25466,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"be1ccd79a46f8a7767a6f6476fe1207c","sha1":"34c31da1e171950bc41470bd4522543d2356d2c8","sha256":"de0030bfa776359b0ae4bd5a6572bd53b180f474422c6f8845d5c5e30b8cf29b","sha512":"17d1b149576bc2b031442b2980731d2dbea9a7fe9b0e1bb51483bed2274fd133e6383641a4960b0357d33ffbc167a27af7d46bd3aa02dc72df8dd1f921bcc156","ssdeep":"384:rf64nSVKGpIA7AifU+1qVhFGaRJTqN26tB0X:j64nSVTv/qVhokTqNXBK","tlshash":"c4b28d19f4e1b2546aad91312ccb65089c3746832ad68f0678cdcc99bf71bc69e1f8c3","first_seen":"2025-03-17T20:39:33.083263Z","last_seen":"2026-07-27T04:32:40.41564Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjA3KzA2OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTItMjZUMjE6MjE6MzErMDY6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjMxKzA2OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjUxZmJkZTdjLTAxNzAtMWY0OS1hNWQwLTc3M2Y2MDZhYWY3NjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QTI4Mzc0MUQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDo1QTI4MzczRUQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDo1QTI4MzczRkQ0RkMxMUU3QTk3NDg3QkM0OEVCMzFENjwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjVBMjgzNzQxRDRGQzExRTdBOTc0ODdCQzQ4RUIzMUQ2PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1MWZiZGU3Yy0wMTcwLTFmNDktYTVkMC03NzNmNjA2YWFmNzY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjZUMjE6MjE6MzErMDY6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+5fsF5QAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAoX0lEQVR42uzdaXRU553n8d+9JSEJtKB9R+ybDQLEZuO9A8bGIabt2InjbseZTG9zpvt0+pw582Jmzmwv+sWMkz7JdE/mOO2O49gxgSbGBhMJYzCrhCRUIFYhtG+lpbSjpereeaFgg1UCCVRQy/dzchLHgir43+e5v+d57r3PNWzbFgAAU2VSAgAAAQIAIEAAAAQIAIAAAQCAAAEAECAAAAIEAECAAAAIEAAACBAAAAECACBAAAAECACAAAEAgAABABAgAAACBABAgAAACBAAAAgQAAABAgAgQAAABAgAgAABAIAAAQAQIAAAAgQAQIAAAAgQAAAIEAAAAQIAIEAAAAQIAIAAAQBgqiIC7Q+UX/Yjjgr8rWPsfwzDkIwb/yxJsm/8/wkYssf+wbZv/Ct77D/22D8qlfLCX5wFbxEggJ/YU/3l9td/q3Hf/gwGhwvMQICADomg+3sQLCBAAMKCYAEBAhAWgVcfAgUECDghgkABAQIQGgQKCBCAwAih2hMmIEBAaIAwAQECQgOECQgQcDICYQICBCA0wv24EiQgQEBwgFkJCBAQGmBWAgIEBAeYlYAA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"}},"time_used":973,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":963,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/4815a758657d4bae.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.420Z","timestamp":1785126646420,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/4815a758657d4bae.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 3814162\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"4815a758657d4bae.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"9b4f6d29f92ea43b7c7ef4770fbed76a\"\r\nlast-modified: Sat, 13 Jun 2026 00:50:11 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/4815a758657d4bae.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::98lrq-1781312483644-7e3fe14e464a\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8bJiTjBK6cvWS9dWKqLDO546tQTokX7C7kbxTOJX4h1TgnHd52mZjVgVaXJEc0NR25Xr1P0IAa0En4LlV%2B1DJbWXl7evaRkkSXGq1Vx10CNboGB%2FFQ7A8%2FrDSFVi\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9242ff92efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":49883,"size_decoded":17720,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (49883), with no line terminators","md5":"9b4f6d29f92ea43b7c7ef4770fbed76a","sha1":"bdad2044ced7e4c0208e62e5650f99140e88aeb6","sha256":"6fb06a5d29509dddf687974e467d8274ef9ef0f6bec7c841fd8336543c9a3f74","sha512":"06ec26c380efdf73315dfc21639732033b79b7869acaed6d4a6697c4d441500bb21f57311b543ee176e2b31b775cff20bc5e611dfff3cca3a3a5c30c8338262f","ssdeep":"1536:UIYGGTQpo7UFYEpzussak11xgaAF+j/G7qWF:UIYGKO+UFZaJgaUt7/","tlshash":"f023d4c971e5b4900bb395b1803f000bf23e1d76185d98a0d3a2dde9b8b45aed233f99","first_seen":"2026-06-13T02:21:16.211868Z","last_seen":"2026-07-27T08:07:37.441746Z","times_seen":1340,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDkzMDYzLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJSZWRpcmVjdFN0YXR1c0NvZGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByLG89KChyPXt9KVtyLlNlZU90aGVyPTMwM109IlNlZU90aGVyIixyW3IuVGVtcG9yYXJ5UmVkaXJlY3Q9MzA3XT0iVGVtcG9yYXJ5UmVkaXJlY3QiLHJbci5QZXJtYW5lbnRSZWRpcmVjdD0zMDhdPSJQZXJtYW5lbnRSZWRpcmVjdCIscik7KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sOTA4NjIsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHIsbz17UkVESVJFQ1RfRVJST1JfQ09ERTpmdW5jdGlvbigpe3JldHVybiBhfSxSZWRpcmVjdFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gbH0saXNSZWRpcmVjdEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIHUgaW4gbylPYmplY3QuZGVmaW5lUHJvcGVydHkobix1LHtlbnVtZXJhYmxlOiEwLGdldDpvW3VdfSk7bGV0IGk9ZS5yKDkzMDYzKSxhPSJORVhUX1JFRElSRUNUIjt2YXIgbD0oKHI9e30pLnB1c2g9InB1c2giLHIucmVwbGFjZT0icmVwbGFjZSIscik7ZnVuY3Rpb24gcyhlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwhKCJkaWdlc3QiaW4gZSl8fCJzdHJpbmciIT10eXBlb2YgZS5kaWdlc3QpcmV0dXJuITE7bGV0IHQ9ZS5kaWdlc3Quc3BsaXQoIjsiKSxbbixyXT10LG89dC5zbGljZSgyLC0yKS5qb2luKCI7IiksdT1OdW1iZXIodC5hdCgtMikpO3JldHVybiBuPT09YSYmKCJyZXBsYWNlIj09PXJ8fCJwdXNoIj09PXIpJiYic3RyaW5nIj09dHlwZW9mIG8mJiFpc05hTih1KSYmdSBpbiBpLlJlZGlyZWN0U3RhdHVzQ29kZX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwzNDY0MSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj17QUNUSU9OX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBpfSxGTElHSFRfSEVBREVSUzpmdW5jdGlvbigpe3JldHVybiB5fSxORVhUX0FDVElPTl9OT1RfRk9VTkRfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LE5FWFRfQUNUSU9OX1JFVkFMSURBVEVEX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBPfSxORVhUX0RJRF9QT1NUUE9ORV9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gX30sTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRTpmdW5jdGlvbigpe3JldHVybiBmfSxORVhUX0hNUl9SRUZSRVNIX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBjfSxORVhUX0hUTUxfUkVRVUVTVF9JRF9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gUn0sTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIG19LE5FWFRfUkVRVUVTVF9JRF9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gU30sTkVYVF9SRVdSSVRURU5fUEFUSF9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sTkVYVF9SRVdSSVRURU5fUVVFUllfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBsfSxORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBzfSxORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBofSxORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBhfSxORVhUX1JTQ19VTklPTl9RVUVSWTpmdW5jdGlvbigpe3JldHVybiB2fSxORVhUX1VSTDpmdW5jdGlvbigpe3JldHVybiBkfSxSU0NfQ09OVEVOVF9UWVBFX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBwfSxSU0NfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIG8gaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixvLHtlbnVtZXJhYmxlOiEwLGdldDpyW29dfSk7bGV0IHU9InJzYyIsaT0ibmV4dC1hY3Rpb24iLGE9Im5leHQtcm91dGVyLXN0YXRlLXRyZWUiLGw9Im5leHQtcm91dGVyLXByZWZldGNoIixzPSJuZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoIixjPSJuZXh0LWhtci1yZWZyZXNoIixmPSJfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fIixkPSJuZXh0LXVybCIscD0idGV4dC94LWNvbXBvbmVudCIseT1bdSxhLGwsYyxzXSx2PSJfcnNjIixoPSJ4LW5leHRqcy1zdGFsZS10aW1lIixfPSJ4LW5leHRqcy1wb3N0cG9uZWQiLGI9IngtbmV4dGpzLXJld3JpdHRlbi1wYXRoIixnPSJ4LW5leHRqcy1yZXdyaXR0ZW4tcXVlcnkiLG09IngtbmV4dGpzLXByZXJlbmRlciIsRT0ieC1uZXh0anMtYWN0aW9uLW5vdC1mb3VuZCIsUz0ieC1uZXh0anMtcmVxdWVzdC1pZCIsUj0ieC1uZXh0anMtaHRtbC1yZXF1ZXN0LWlkIixPPSJ4LWFjdGlvbi1yZXZhbGlkYXRlZCI7KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sMjc0NTQsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e0RFRkFVTFRfU0VHTUVOVF9LRVk6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sTk9UX0ZPVU5EX1NFR01FTlRfS0VZOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFBBR0VfU0VHTUVOVF9LRVk6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudDpmdW5jdGlvbigpe3JldHVybiBsfSxjb21wdXRlU2VsZWN0ZWRMYXlvdXRTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGdldFNlZ21lbnRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB1fSxnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCxuLHI9ITAsbz1bXSl7bGV0IGk7aWYocilpPXRbMV1bbl07ZWxzZXtsZXQgZT10WzFdO2k9ZS5jaGlsZHJlbj8/T2JqZWN0LnZhbHVlcyhlKVswXX1pZighaSlyZXR1cm4gbztsZXQgYT11KGlbMF0pO3JldHVybiFhfHxhLnN0YXJ0c1dpdGgoYyk/bzooby5wdXNoKGEpLGUoaSxuLCExLG8pKX19LGlzR3JvdXBTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtmdW5jdGlvbiB1KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2VbMV06ZX1mdW5jdGlvbiBpKGUpe3JldHVybiIoIj09PWVbMF0mJmUuZW5kc1dpdGgoIikiKX1mdW5jdGlvbiBhKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoIkAiKSYmIkBjaGlsZHJlbiIhPT1lfWZ1bmN0aW9uIGwoZSx0KXtpZihlLmluY2x1ZGVzKGMpKXtsZXQgZT1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4ie30iIT09ZT9jKyI/IitlOmN9cmV0dXJuIGV9ZnVuY3Rpb24gcyhlLHQpe2lmKCFlfHwwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IG49ImNoaWxkcmVuIj09PXQ/ZVswXTplW2UubGVuZ3RoLTFdO3JldHVybiBuPT09Zj9udWxsOm59bGV0IGM9Il9fUEFHRV9fIixmPSJfX0RFRkFVTFRfXyIsZD0iL19ub3QtZm91bmQifSw3NTA1MSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj17VW5yZWNvZ25pemVkQWN0aW9uRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcjpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIHIpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sbyx7ZW51bWVyYWJsZTohMCxnZXQ6cltvXX0pO2NsYXNzIHUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLm5hbWU9IlVucmVjb2duaXplZEFjdGlvbkVycm9yIn19ZnVuY3Rpb24gaShlKXtyZXR1cm4hIShlJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUgaW5zdGFuY2VvZiB1KX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw5NzA4OCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiYWN0aW9uQXN5bmNTdG9yYWdlSW5zdGFuY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByfX0pO2xldCByPSgwLGUucig0OTIxMSkuY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UpKCl9LDIzNzA4LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJhY3Rpb25Bc3luY1N0b3JhZ2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLmFjdGlvbkFzeW5jU3RvcmFnZUluc3RhbmNlfX0pO2xldCByPWUucig5NzA4OCl9LDQxNzIxLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtnZXRSZWRpcmVjdEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvcjpmdW5jdGlvbigpe3JldHVybiBwfSxnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZn0scGVybWFuZW50UmVkaXJlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY30scmVkaXJlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtsZXQgdT1lLnIoOTMwNjMpLGk9ZS5yKDkwODYyKSxhPSJ1Ijx0eXBlb2Ygd2luZG93P2UucigyMzcwOCkuYWN0aW9uQXN5bmNTdG9yYWdlOnZvaWQgMDtmdW5jdGlvbiBsKGUsdCxuPXUuUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KXtsZXQgcj1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoaS5SRURJUkVDVF9FUlJPUl9DT0RFKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTM5NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gci5kaWdlc3Q9YCR7aS5SRURJUkVDVF9FUlJPUl9DT0RFfTske3R9OyR7ZX07JHtufTtgLHJ9ZnVuY3Rpb24gcyhlLHQpe3Rocm93IGwoZSx0Pz89YT8uZ2V0U3RvcmUoKT8uaXNBY3Rpb24/aS5SZWRpcmVjdFR5cGUucHVzaDppLlJlZGlyZWN0VHlwZS5yZXBsYWNlLHUuUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KX1mdW5jdGlvbiBjKGUsdD1pLlJlZGlyZWN0VHlwZS5yZXBsYWNlKXt0aHJvdyBsKGUsdCx1LlJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCl9ZnVuY3Rpb24gZihlKXtyZXR1cm4oMCxpLmlzUmVkaXJlY3RFcnJvcikoZSk/ZS5kaWdlc3Quc3BsaXQoIjsiKS5zbGljZSgyLC0yKS5qb2luKCI7Iik6bnVsbH1mdW5jdGlvbiBkKGUpe2lmKCEoMCxpLmlzUmVkaXJlY3RFcnJvcikoZSkpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJOb3QgYSByZWRpcmVjdCBlcnJvciIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjYwIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBlLmRpZ2VzdC5zcGxpdCgiOyIsMilbMV19ZnVuY3Rpb24gcChlKXtpZighKDAsaS5pc1JlZGlyZWN0RXJyb3IpKGUpKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiTm90IGEgcmVkaXJlY3QgZXJyb3IiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTI2MCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gTnVtYmVyKGUuZGlnZXN0LnNwbGl0KCI7IikuYXQoLTIpKX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwxNjg3MiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj17QXBwUm91dGVyQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBpfSxHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LExheW91dFJvdXRlckNvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sTWlzc2luZ1Nsb3RDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFRlbXBsYXRlQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBzfX07Zm9yKHZhciBvIGluIHIpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sbyx7ZW51bWVyYWJsZTohMCxnZXQ6cltvXX0pO2xldCB1PWUucig4MTI1OCkuXyhlLnIoNzUyMDEpKSxpPXUuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpLGE9dS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCksbD11LmRlZmF1bHQuY3JlYXRlQ29udGV4dChudWxsKSxzPXUuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpLGM9dS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobmV3IFNldCl9LDYzMTY1LChlLHQsbik9Pnt2YXIgcj17MjI5OmZ1bmN0aW9uKGUpe3ZhciB0LG4scixvPWUuZXhwb3J0cz17fTtmdW5jdGlvbiB1KCl7dGhyb3cgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBpKCl7dGhyb3cgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfXRyeXt0PSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dX1jYXRjaChlKXt0PXV9dHJ5e249ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6aX1jYXRjaChlKXtuPWl9ZnVuY3Rpb24gYShlKXtpZih0PT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChlLDApO2lmKCh0PT09dXx8IXQpJiZzZXRUaW1lb3V0KXJldHVybiB0PXNldFRpbWVvdXQsc2V0VGltZW91dChlLDApO3RyeXtyZXR1cm4gdChlLDApfWNhdGNoKG4pe3RyeXtyZXR1cm4gdC5jYWxsKG51bGwsZSwwKX1jYXRjaChuKXtyZXR1cm4gdC5jYWxsKHRoaXMsZSwwKX19fXZhciBsPVtdLHM9ITEsYz0tMTtmdW5jdGlvbiBmKCl7cyYmciYmKHM9ITEsci5sZW5ndGg/bD1yLmNvbmNhdChsKTpjPS0xLGwubGVuZ3RoJiZkKCkpfWZ1bmN0aW9uIGQoKXtpZighcyl7dmFyIGU9YShmKTtzPSEwO2Zvcih2YXIgdD1sLmxlbmd0aDt0Oyl7Zm9yKHI9bCxsPVtdOysrYzx0OylyJiZyW2NdLnJ1bigpO2M9LTEsdD1sLmxlbmd0aH1yPW51bGwscz0hMSxmdW5jdGlvbihlKXtpZihuPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKG49PT1pfHwhbikmJmNsZWFyVGltZW91dClyZXR1cm4gbj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtuKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIG4uY2FsbCh0aGlzLGUpfX19KGUpfX1mdW5jdGlvbiBwKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9ZnVuY3Rpb24geSgpe31vLm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtsLnB1c2gobmV3IHAoZSx0KSksMSE9PWwubGVuZ3RofHxzfHxhKGQpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxvLnRpdGxlPSJicm93c2VyIixvLmJyb3dzZXI9ITAsby5lbnY9e30sby5hcmd2PVtdLG8udmVyc2lvbj0iIixvLnZlcnNpb25zPXt9LG8ub249eSxvLmFkZExpc3RlbmVyPXksby5vbmNlPXksby5vZmY9eSxvLnJlbW92ZUxpc3RlbmVyPXksby5yZW1vdmVBbGxMaXN0ZW5lcnM9eSxvLmVtaXQ9eSxvLnByZXBlbmRMaXN0ZW5lcj15LG8ucHJlcGVuZE9uY2VMaXN0ZW5lcj15LG8ubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSxvLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LG8uY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxvLmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sby51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX19LG89e307ZnVuY3Rpb24gdShlKXt2YXIgdD1vW2VdO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQuZXhwb3J0czt2YXIgbj1vW2VdPXtleHBvcnRzOnt9fSxpPSEwO3RyeXtyW2VdKG4sbi5leHBvcnRzLHUpLGk9ITF9ZmluYWxseXtpJiZkZWxldGUgb1tlXX1yZXR1cm4gbi5leHBvcnRzfXUuYWI9Ii9ST09UL25vZGVfbW9kdWxlcy8ucG5wbS9uZXh0QDE2LjEuNl9AYmFiZWwrY29yZUA3LjI5LjBfcmVhY3QtZG9tQDE5LjIuM19yZWFjdEAxOS4yLjNfX3JlYWN0QDE5LjIuMy9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Byb2Nlc3MvIix0LmV4cG9ydHM9dSgyMjkpfSw4MjYzNywoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLG87dC5leHBvcnRzPShudWxsPT0ocj1lLmcucHJvY2Vzcyk/dm9pZCAwOnIuZW52KSYmIm9iamVjdCI9PXR5cGVvZihudWxsPT0obz1lLmcucHJvY2Vzcyk/dm9pZCAwOm8uZW52KT9lLmcucHJvY2VzczplLnIoNjMxNjUpfSw5OTI5MywoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50Iik7ZnVuY3Rpb24gbyhlLHQsbil7dmFyIG89bnVsbDtpZih2b2lkIDAhPT1uJiYobz0iIituKSx2b2lkIDAhPT10LmtleSYmKG89IiIrdC5rZXkpLCJrZXkiaW4gdClmb3IodmFyIHUgaW4gbj17fSx0KSJrZXkiIT09dSYmKG5bdV09dFt1XSk7ZWxzZSBuPXQ7cmV0dXJueyQkdHlwZW9mOnIsdHlwZTplLGtleTpvLHJlZjp2b2lkIDAhPT0odD1uLnJlZik/dDpudWxsLHByb3BzOm59fW4uRnJhZ21lbnQ9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxuLmpzeD1vLG4uanN4cz1vfSw5ODEzNCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1lLnIoOTkyOTMpfSw2MzQxNywoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPWUuaSg4MjYzNyksbz1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLHU9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxsPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikscz1TeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLGM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGY9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxkPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIikscD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikseT1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iiksdj1TeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLGg9U3ltYm9sLmZvcigicmVhY3Qudmlld190cmFuc2l0aW9uIiksXz1TeW1ib2wuaXRlcmF0b3IsYj17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sZz1PYmplY3QuYXNzaWduLG09e307ZnVuY3Rpb24gRShlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj1ufHxifWZ1bmN0aW9uIFMoKXt9ZnVuY3Rpb24gUihlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj1ufHxifUUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sRS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKCJ0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LCJzZXRTdGF0ZSIpfSxFLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsZSwiZm9yY2VVcGRhdGUiKX0sUy5wcm90b3R5cGU9RS5wcm90b3R5cGU7dmFyIE89Ui5wcm90b3R5cGU9bmV3IFM7Ty5jb25zdHJ1Y3Rvcj1SLGcoTyxFLnByb3RvdHlwZSksTy5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgdz1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIFQoKXt9dmFyIGo9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbH0sQT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGsoZSx0LG4pe3ZhciByPW4ucmVmO3JldHVybnskJHR5cGVvZjpvLHR5cGU6ZSxrZXk6dCxyZWY6dm9pZCAwIT09cj9yOm51bGwscHJvcHM6bn19ZnVuY3Rpb24gQyhlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09b312YXIgTj0vXC8rL2c7ZnVuY3Rpb24gUChlLHQpe3ZhciBuLHI7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/KG49IiIrZS5rZXkscj17Ij0iOiI9MCIsIjoiOiI9MiJ9LCIkIituLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihlKXtyZXR1cm4gcltlXX0pKTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiB4KGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciByPVtdLGk9MDtyZXR1cm4hZnVuY3Rpb24gZSh0LG4scixpLGEpe3ZhciBsLHMsYyxmPXR5cGVvZiB0OygidW5kZWZpbmVkIj09PWZ8fCJib29sZWFuIj09PWYpJiYodD1udWxsKTt2YXIgZD0hMTtpZihudWxsPT09dClkPSEwO2Vsc2Ugc3dpdGNoKGYpe2Nhc2UiYmlnaW50IjpjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmQ9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIG86Y2FzZSB1OmQ9ITA7YnJlYWs7Y2FzZSB5OnJldHVybiBlKChkPXQuX2luaXQpKHQuX3BheWxvYWQpLG4scixpLGEpfX1pZihkKXJldHVybiBhPWEodCksZD0iIj09PWk/Ii4iK1AodCwwKTppLHcoYSk/KHI9IiIsbnVsbCE9ZCYmKHI9ZC5yZXBsYWNlKE4sIiQmLyIpKyIvIiksZShhLG4sciwiIixmdW5jdGlvbihlKXtyZXR1cm4gZX0pKTpudWxsIT1hJiYoQyhhKSYmKGw9YSxzPXIrKG51bGw9PWEua2V5fHx0JiZ0LmtleT09PWEua2V5PyIiOigiIithLmtleSkucmVwbGFjZShOLCIkJi8iKSsiLyIpK2QsYT1rKGwudHlwZSxzLGwucHJvcHMpKSxuLnB1c2goYSkpLDE7ZD0wO3ZhciBwPSIiPT09aT8iLiI6aSsiOiI7aWYodyh0KSlmb3IodmFyIHY9MDt2PHQubGVuZ3RoO3YrKylmPXArUChpPXRbdl0sdiksZCs9ZShpLG4scixmLGEpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mKHY9bnVsbD09PShjPXQpfHwib2JqZWN0IiE9dHlwZW9mIGM/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoYz1fJiZjW19dfHxjWyJAQGl0ZXJhdG9yIl0pP2M6bnVsbCkpZm9yKHQ9di5jYWxsKHQpLHY9MDshKGk9dC5uZXh0KCkpLmRvbmU7KWY9cCtQKGk9aS52YWx1ZSx2KyspLGQrPWUoaSxuLHIsZixhKTtlbHNlIGlmKCJvYmplY3QiPT09Zil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbilyZXR1cm4gZShmdW5jdGlvbihlKXtzd2l0Y2goZS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gZS52YWx1ZTtjYXNlInJlamVjdGVkIjp0aHJvdyBlLnJlYXNvbjtkZWZhdWx0OnN3aXRjaCgic3RyaW5nIj09dHlwZW9mIGUuc3RhdHVzP2UudGhlbihULFQpOihlLnN0YXR1cz0icGVuZGluZyIsZS50aGVuKGZ1bmN0aW9uKHQpeyJwZW5kaW5nIj09PWUuc3RhdHVzJiYoZS5zdGF0dXM9ImZ1bGZpbGxlZCIsZS52YWx1ZT10KX0sZnVuY3Rpb24odCl7InBlbmRpbmciPT09ZS5zdGF0dXMmJihlLnN0YXR1cz0icmVqZWN0ZWQiLGUucmVhc29uPXQpfSkpLGUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGUudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KHQpLG4scixpLGEpO3Rocm93IEVycm9yKCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICIrKCJbb2JqZWN0IE9iamVjdF0iPT09KG49U3RyaW5nKHQpKT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyh0KS5qb2luKCIsICIpKyJ9IjpuKSsiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIpfXJldHVybiBkfShlLHIsIiIsIiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQuY2FsbChuLGUsaSsrKX0pLHJ9ZnVuY3Rpb24gRChlKXtpZigtMT09PWUuX3N0YXR1cyl7dmFyIHQ9ZS5fcmVzdWx0Oyh0PXQoKSkudGhlbihmdW5jdGlvbih0KXsoMD09PWUuX3N0YXR1c3x8LTE9PT1lLl9zdGF0dXMpJiYoZS5fc3RhdHVzPTEsZS5fcmVzdWx0PXQpfSxmdW5jdGlvbih0KXsoMD09PWUuX3N0YXR1c3x8LTE9PT1lLl9zdGF0dXMpJiYoZS5fc3RhdHVzPTIsZS5fcmVzdWx0PXQpfSksLTE9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MCxlLl9yZXN1bHQ9dCl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZS5fcmVzdWx0fXZhciBNPSJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoImVycm9yIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmInN0cmluZyI9PXR5cGVvZiBlLm1lc3NhZ2U/U3RyaW5nKGUubWVzc2FnZSk6U3RyaW5nKGUpLGVycm9yOmV9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQodCkpcmV0dXJufWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJiJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHQuZW1pdClyZXR1cm4gdm9pZCByLmRlZmF1bHQuZW1pdCgidW5jYXVnaHRFeGNlcHRpb24iLGUpO2NvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uICQoZSl7dmFyIHQ9ai5ULG49e307bi50eXBlcz1udWxsIT09dD90LnR5cGVzOm51bGwsai5UPW47dHJ5e3ZhciByPWUoKSxvPWouUztudWxsIT09byYmbyhuLHIpLCJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXImJiJmdW5jdGlvbiI9PXR5cGVvZiByLnRoZW4mJnIudGhlbihULE0pfWNhdGNoKGUpe00oZSl9ZmluYWxseXtudWxsIT09dCYmbnVsbCE9PW4udHlwZXMmJih0LnR5cGVzPW4udHlwZXMpLGouVD10fX1mdW5jdGlvbiBJKGUpe3ZhciB0PWouVDtpZihudWxsIT09dCl7dmFyIG49dC50eXBlcztudWxsPT09bj90LnR5cGVzPVtlXTotMT09PW4uaW5kZXhPZihlKSYmbi5wdXNoKGUpfWVsc2UgJChJLmJpbmQobnVsbCxlKSl9bi5BY3Rpdml0eT12LG4uQ2hpbGRyZW49e21hcDp4LGZvckVhY2g6ZnVuY3Rpb24oZSx0LG4pe3goZSxmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4geChlLGZ1bmN0aW9uKCl7dCsrfSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4geChlLGZ1bmN0aW9uKGUpe3JldHVybiBlfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGUpe2lmKCFDKGUpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gZX19LG4uQ29tcG9uZW50PUUsbi5GcmFnbWVudD1pLG4uUHJvZmlsZXI9bCxuLlB1cmVDb21wb25lbnQ9UixuLlN0cmljdE1vZGU9YSxuLlN1c3BlbnNlPWQsbi5WaWV3VHJhbnNpdGlvbj1oLG4uX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWosbi5fX0NPTVBJTEVSX1JVTlRJTUU9e19fcHJvdG9fXzpudWxsLGM6ZnVuY3Rpb24oZSl7cmV0dXJuIGouSC51c2VNZW1vQ2FjaGUoZSl9fSxuLmFkZFRyYW5zaXRpb25UeXBlPUksbi5jYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShudWxsLGFyZ3VtZW50cyl9fSxuLmNhY2hlU2lnbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LG4uY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT1lKXRocm93IEVycm9yKCJUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrZSsiLiIpO3ZhciByPWcoe30sZS5wcm9wcyksbz1lLmtleTtpZihudWxsIT10KWZvcih1IGluIHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksdClBLmNhbGwodCx1KSYmImtleSIhPT11JiYiX19zZWxmIiE9PXUmJiJfX3NvdXJjZSIhPT11JiYoInJlZiIhPT11fHx2b2lkIDAhPT10LnJlZikmJihyW3VdPXRbdV0pO3ZhciB1PWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09dSlyLmNoaWxkcmVuPW47ZWxzZSBpZigxPHUpe2Zvcih2YXIgaT1BcnJheSh1KSxhPTA7YTx1O2ErKylpW2FdPWFyZ3VtZW50c1thKzJdO3IuY2hpbGRyZW49aX1yZXR1cm4gayhlLnR5cGUsbyxyKX0sbi5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpjLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPWUsZS5Db25zdW1lcj17JCR0eXBlb2Y6cyxfY29udGV4dDplfSxlfSxuLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89e30sdT1udWxsO2lmKG51bGwhPXQpZm9yKHIgaW4gdm9pZCAwIT09dC5rZXkmJih1PSIiK3Qua2V5KSx0KUEuY2FsbCh0LHIpJiYia2V5IiE9PXImJiJfX3NlbGYiIT09ciYmIl9fc291cmNlIiE9PXImJihvW3JdPXRbcl0pO3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09aSlvLmNoaWxkcmVuPW47ZWxzZSBpZigxPGkpe2Zvcih2YXIgYT1BcnJheShpKSxsPTA7bDxpO2wrKylhW2xdPWFyZ3VtZW50c1tsKzJdO28uY2hpbGRyZW49YX1pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBpPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9bcl0mJihvW3JdPWlbcl0pO3JldHVybiBrKGUsdSxvKX0sbi5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sbi5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpmLHJlbmRlcjplfX0sbi5pc1ZhbGlkRWxlbWVudD1DLG4ubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6eSxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0OkR9fSxuLm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LG4uc3RhcnRUcmFuc2l0aW9uPSQsbi51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gai5ILnVzZUNhY2hlUmVmcmVzaCgpfSxuLnVzZT1mdW5jdGlvbihlKXtyZXR1cm4gai5ILnVzZShlKX0sbi51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGouSC51c2VBY3Rpb25TdGF0ZShlLHQsbil9LG4udXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gai5ILnVzZUNhbGxiYWNrKGUsdCl9LG4udXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gai5ILnVzZUNvbnRleHQoZSl9LG4udXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sbi51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGouSC51c2VEZWZlcnJlZFZhbHVlKGUsdCl9LG4udXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGouSC51c2VFZmZlY3QoZSx0KX0sbi51c2VFZmZlY3RFdmVudD1mdW5jdGlvbihlKXtyZXR1cm4gai5ILnVzZUVmZmVjdEV2ZW50KGUpfSxuLnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIGouSC51c2VJZCgpfSxuLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqLkgudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LG4udXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGouSC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sbi51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gai5ILnVzZUxheW91dEVmZmVjdChlLHQpfSxuLnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gai5ILnVzZU1lbW8oZSx0KX0sbi51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGouSC51c2VPcHRpbWlzdGljKGUsdCl9LG4udXNlUmVkdWNlcj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGouSC51c2VSZWR1Y2VyKGUsdCxuKX0sbi51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIGouSC51c2VSZWYoZSl9LG4udXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGouSC51c2VTdGF0ZShlKX0sbi51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGouSC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLHQsbil9LG4udXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBqLkgudXNlVHJhbnNpdGlvbigpfSxuLnZlcnNpb249IjE5LjMuMC1jYW5hcnktZjkzYjlmZDQtMjAyNTEyMTcifSw3NTIwMSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1lLnIoNjM0MTcpfSw0NDA2NiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIHQ9bmV3IFdlYWtNYXAsbj1uZXcgV2Vha01hcDtyZXR1cm4ocj1mdW5jdGlvbihlKXtyZXR1cm4gZT9uOnR9KShlKX1uLl89ZnVuY3Rpb24oZSx0KXtpZighdCYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciBuPXIodCk7aWYobiYmbi5oYXMoZSkpcmV0dXJuIG4uZ2V0KGUpO3ZhciBvPXtfX3Byb3RvX186bnVsbH0sdT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBpIGluIGUpaWYoImRlZmF1bHQiIT09aSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkpe3ZhciBhPXU/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KG8saSxhKTpvW2ldPWVbaV19cmV0dXJuIG8uZGVmYXVsdD1lLG4mJm4uc2V0KGUsbyksb319LDgxMjU4LChlLHQsbik9PnsidXNlIHN0cmljdCI7bi5fPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX19LDQ5MjExLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtiaW5kU25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gc30sY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sY3JlYXRlU25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtsZXQgdT1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludmFyaWFudDogQXN5bmNMb2NhbFN0b3JhZ2UgYWNjZXNzZWQgaW4gcnVudGltZSB3aGVyZSBpdCBpcyBub3QgYXZhaWxhYmxlIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1MDQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2xhc3MgaXtkaXNhYmxlKCl7dGhyb3cgdX1nZXRTdG9yZSgpe31ydW4oKXt0aHJvdyB1fWV4aXQoKXt0aHJvdyB1fWVudGVyV2l0aCgpe3Rocm93IHV9c3RhdGljIGJpbmQoZSl7cmV0dXJuIGV9fWxldCBhPSJ1Ij50eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcy5Bc3luY0xvY2FsU3RvcmFnZTtmdW5jdGlvbiBsKCl7cmV0dXJuIGE/bmV3IGE6bmV3IGl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gYT9hLmJpbmQoZSk6aS5iaW5kKGUpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gYT9hLnNuYXBzaG90KCk6ZnVuY3Rpb24oZSwuLi50KXtyZXR1cm4gZSguLi50KX19fSw1NjU0OSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPWUucig3NTIwMSk7ZnVuY3Rpb24gbyhlKXt2YXIgdD0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe3QrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbl0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIHUoKXt9dmFyIGk9e2Q6e2Y6dSxyOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3Iobyg1MjIpKX0sRDp1LEM6dSxMOnUsbTp1LFg6dSxTOnUsTTp1fSxwOjAsZmluZERPTU5vZGU6bnVsbH0sYT1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxsPVN5bWJvbC5mb3IoInJlYWN0Lm9wdGltaXN0aWNfa2V5Iikscz1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBjKGUsdCl7cmV0dXJuImZvbnQiPT09ZT8iIjoic3RyaW5nIj09dHlwZW9mIHQ/InVzZS1jcmVkZW50aWFscyI9PT10P3Q6IiI6dm9pZCAwfW4uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWksbi5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oZSx0KXt2YXIgbj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighdHx8MSE9PXQubm9kZVR5cGUmJjkhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGUpdGhyb3cgRXJyb3IobygyOTkpKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjphLGtleTpudWxsPT1yP251bGw6cj09PWw/bDoiIityLGNoaWxkcmVuOmUsY29udGFpbmVySW5mbzp0LGltcGxlbWVudGF0aW9uOm59fShlLHQsbnVsbCxuKX0sbi5mbHVzaFN5bmM9ZnVuY3Rpb24oZSl7dmFyIHQ9cy5ULG49aS5wO3RyeXtpZihzLlQ9bnVsbCxpLnA9MixlKXJldHVybiBlKCl9ZmluYWxseXtzLlQ9dCxpLnA9bixpLmQuZigpfX0sbi5wcmVjb25uZWN0PWZ1bmN0aW9uKGUsdCl7InN0cmluZyI9PXR5cGVvZiBlJiYodD10PyJzdHJpbmciPT10eXBlb2YodD10LmNyb3NzT3JpZ2luKT8idXNlLWNyZWRlbnRpYWxzIj09PXQ/dDoiIjp2b2lkIDA6bnVsbCxpLmQuQyhlLHQpKX0sbi5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUmJmkuZC5EKGUpfSxuLnByZWluaXQ9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIGUmJnQmJiJzdHJpbmciPT10eXBlb2YgdC5hcyl7dmFyIG49dC5hcyxyPWMobix0LmNyb3NzT3JpZ2luKSxvPSJzdHJpbmciPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwLHU9InN0cmluZyI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMDsic3R5bGUiPT09bj9pLmQuUyhlLCJzdHJpbmciPT10eXBlb2YgdC5wcmVjZWRlbmNlP3QucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOnIsaW50ZWdyaXR5Om8sZmV0Y2hQcmlvcml0eTp1fSk6InNjcmlwdCI9PT1uJiZpLmQuWChlLHtjcm9zc09yaWdpbjpyLGludGVncml0eTpvLGZldGNoUHJpb3JpdHk6dSxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19LG4ucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXtpZihudWxsPT10LmFzfHwic2NyaXB0Ij09PXQuYXMpe3ZhciBuPWModC5hcyx0LmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjpuLGludGVncml0eToic3RyaW5nIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19ZWxzZSBudWxsPT10JiZpLmQuTShlKX0sbi5wcmVsb2FkPWZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYic3RyaW5nIj09dHlwZW9mIHQuYXMpe3ZhciBuPXQuYXMscj1jKG4sdC5jcm9zc09yaWdpbik7aS5kLkwoZSxuLHtjcm9zc09yaWdpbjpyLGludGVncml0eToic3RyaW5nIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDAsdHlwZToic3RyaW5nIj09dHlwZW9mIHQudHlwZT90LnR5cGU6dm9pZCAwLGZldGNoUHJpb3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeToic3RyaW5nIj09dHlwZW9mIHQucmVmZXJyZXJQb2xpY3k/dC5yZWZlcnJlclBvbGljeTp2b2lkIDAsaW1hZ2VTcmNTZXQ6InN0cmluZyI9PXR5cGVvZiB0LmltYWdlU3JjU2V0P3QuaW1hZ2VTcmNTZXQ6dm9pZCAwLGltYWdlU2l6ZXM6InN0cmluZyI9PXR5cGVvZiB0LmltYWdlU2l6ZXM/dC5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYToic3RyaW5nIj09dHlwZW9mIHQubWVkaWE/dC5tZWRpYTp2b2lkIDB9KX19LG4ucHJlbG9hZE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZih0KXt2YXIgbj1jKHQuYXMsdC5jcm9zc09yaWdpbik7aS5kLm0oZSx7YXM6InN0cmluZyI9PXR5cGVvZiB0LmFzJiYic2NyaXB0IiE9PXQuYXM/dC5hczp2b2lkIDAsY3Jvc3NPcmlnaW46bixpbnRlZ3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDB9KX1lbHNlIGkuZC5tKGUpfSxuLnJlcXVlc3RGb3JtUmVzZXQ9ZnVuY3Rpb24oZSl7aS5kLnIoZSl9LG4udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSh0KX0sbi51c2VGb3JtU3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBzLkgudXNlRm9ybVN0YXRlKGUsdCxuKX0sbi51c2VGb3JtU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIHMuSC51c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpfSxuLnZlcnNpb249IjE5LjMuMC1jYW5hcnktZjkzYjlmZDQtMjAyNTEyMTcifSwyOTA4MCwoZSx0LG4pPT57InVzZSBzdHJpY3QiOyFmdW5jdGlvbiBlKCl7aWYoInUiPnR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJiJmdW5jdGlvbiI9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0oKSx0LmV4cG9ydHM9ZS5yKDU2NTQ5KX0sODg3NzQsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e2dldERlcGxveW1lbnRJZDpmdW5jdGlvbigpe3JldHVybiB1fSxnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaX19O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtmdW5jdGlvbiB1KCl7cmV0dXJuITF9ZnVuY3Rpb24gaSgpe3JldHVybiIifX0sNDk3MDYsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lLnIoMjkwODApLG89e3N0cmVhbTohMH0sdT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGkodCl7dmFyIG49ZS5yKHQpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBuLnRoZW58fCJmdWxmaWxsZWQiPT09bi5zdGF0dXM/bnVsbDoobi50aGVuKGZ1bmN0aW9uKGUpe24uc3RhdHVzPSJmdWxmaWxsZWQiLG4udmFsdWU9ZX0sZnVuY3Rpb24oZSl7bi5zdGF0dXM9InJlamVjdGVkIixuLnJlYXNvbj1lfSksbil9dmFyIGE9bmV3IFdlYWtTZXQsbD1uZXcgV2Vha1NldDtmdW5jdGlvbiBzKCl7fWZ1bmN0aW9uIGModCl7Zm9yKHZhciBuPXRbMV0scj1bXSxvPTA7bzxuLmxlbmd0aDtvKyspe3ZhciB1PWUuTChuW29dKTtpZihsLmhhcyh1KXx8ci5wdXNoKHUpLCFhLmhhcyh1KSl7dmFyIGM9bC5hZGQuYmluZChsLHUpO3UudGhlbihjLHMpLGEuYWRkKHUpfX1yZXR1cm4gND09PXQubGVuZ3RoPzA9PT1yLmxlbmd0aD9pKHRbMF0pOlByb21pc2UuYWxsKHIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaSh0WzBdKX0pOjA8ci5sZW5ndGg/UHJvbWlzZS5hbGwocik6bnVsbH1mdW5jdGlvbiBmKHQpe3ZhciBuPWUucih0WzBdKTtpZig0PT09dC5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuLnRoZW4paWYoImZ1bGZpbGxlZCI9PT1uLnN0YXR1cyluPW4udmFsdWU7ZWxzZSB0aHJvdyBuLnJlYXNvbjtyZXR1cm4iKiI9PT10WzJdP246IiI9PT10WzJdP24uX19lc01vZHVsZT9uLmRlZmF1bHQ6bjp1LmNhbGwobix0WzJdKT9uW3RbMl1dOnZvaWQgMH12YXIgZD1yLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxwPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IikseT1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iiksdj1TeW1ib2wuaXRlcmF0b3IsaD1TeW1ib2wuYXN5bmNJdGVyYXRvcixfPUFycmF5LmlzQXJyYXksYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsZz1PYmplY3QucHJvdG90eXBlLG09bmV3IFdlYWtNYXA7ZnVuY3Rpb24gRShlLHQsbil7bS5oYXMoZSl8fG0uc2V0KGUse2lkOnQsb3JpZ2luYWxCaW5kOmUuYmluZCxib3VuZDpufSl9ZnVuY3Rpb24gUyhlLHQsbil7dGhpcy5zdGF0dXM9ZSx0aGlzLnZhbHVlPXQsdGhpcy5yZWFzb249bn1mdW5jdGlvbiBSKGUpe3N3aXRjaChlLnN0YXR1cyl7Y2FzZSJyZXNvbHZlZF9tb2RlbCI6RChlKTticmVhaztjYXNlInJlc29sdmVkX21vZHVsZSI6TShlKX1zd2l0Y2goZS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gZS52YWx1ZTtjYXNlInBlbmRpbmciOmNhc2UiYmxvY2tlZCI6Y2FzZSJoYWx0ZWQiOnRocm93IGU7ZGVmYXVsdDp0aHJvdyBlLnJlYXNvbn19ZnVuY3Rpb24gTyhlLHQsbixyKXtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHU9dFtvXTsiZnVuY3Rpb24iPT10eXBlb2YgdT91KG4pOkwoZSx1LG4scil9fWZ1bmN0aW9uIHcoZSx0LG4pe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdOyJmdW5jdGlvbiI9PXR5cGVvZiBvP28obik6VShlLG8uaGFuZGxlcixuKX19ZnVuY3Rpb24gVChlLHQpe3ZhciBuPXQuaGFuZGxlci5jaHVuaztpZihudWxsPT09bilyZXR1cm4gbnVsbDtpZihuPT09ZSlyZXR1cm4gdC5oYW5kbGVyO2lmKG51bGwhPT0odD1uLnZhbHVlKSlmb3Iobj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByJiZudWxsIT09KHI9VChlLHIpKSlyZXR1cm4gcn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBqKGUsdCxuLHIpe3N3aXRjaCh0LnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOk8oZSxuLHQudmFsdWUsdCk7YnJlYWs7Y2FzZSJibG9ja2VkIjpmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIHU9bltvXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdSl7dmFyIGk9VCh0LHUpO2lmKG51bGwhPT1pKXN3aXRjaChMKGUsdSxpLnZhbHVlLHQpLG4uc3BsaWNlKG8sMSksby0tLG51bGwhPT1yJiYtMSE9PSh1PXIuaW5kZXhPZih1KSkmJnIuc3BsaWNlKHUsMSksdC5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpPKGUsbix0LnZhbHVlLHQpO3JldHVybjtjYXNlInJlamVjdGVkIjpudWxsIT09ciYmdyhlLHIsdC5yZWFzb24pO3JldHVybn19fWNhc2UicGVuZGluZyI6aWYodC52YWx1ZSlmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKXQudmFsdWUucHVzaChuW2VdKTtlbHNlIHQudmFsdWU9bjtpZih0LnJlYXNvbil7aWYocilmb3Iobj0wO248ci5sZW5ndGg7bisrKXQucmVhc29uLnB1c2gocltuXSl9ZWxzZSB0LnJlYXNvbj1yO2JyZWFrO2Nhc2UicmVqZWN0ZWQiOnImJncoZSxyLHQucmVhc29uKX19ZnVuY3Rpb24gQShlLHQsbil7aWYoInBlbmRpbmciIT09dC5zdGF0dXMmJiJibG9ja2VkIiE9PXQuc3RhdHVzKXQucmVhc29uLmVycm9yKG4pO2Vsc2V7dmFyIHI9dC5yZWFzb247dC5zdGF0dXM9InJlamVjdGVkIix0LnJlYXNvbj1uLG51bGwhPT1yJiZ3KGUscixuKX19ZnVuY3Rpb24gayhlLHQsbil7cmV0dXJuIG5ldyBTKCJyZXNvbHZlZF9tb2RlbCIsKG4/J3siZG9uZSI6dHJ1ZSwidmFsdWUiOic6J3siZG9uZSI6ZmFsc2UsInZhbHVlIjonKSt0KyJ9IixlKX1mdW5jdGlvbiBDKGUsdCxuLHIpe04oZSx0LChyPyd7ImRvbmUiOnRydWUsInZhbHVlIjonOid7ImRvbmUiOmZhbHNlLCJ2YWx1ZSI6JykrbisifSIpfWZ1bmN0aW9uIE4oZSx0LG4pe2lmKCJwZW5kaW5nIiE9PXQuc3RhdHVzKXQucmVhc29uLmVucXVldWVNb2RlbChuKTtlbHNle3ZhciByPXQudmFsdWUsbz10LnJlYXNvbjt0LnN0YXR1cz0icmVzb2x2ZWRfbW9kZWwiLHQudmFsdWU9bix0LnJlYXNvbj1lLG51bGwhPT1yJiYoRCh0KSxqKGUsdCxyLG8pKX19ZnVuY3Rpb24gUChlLHQsbil7aWYoInBlbmRpbmciPT09dC5zdGF0dXN8fCJibG9ja2VkIj09PXQuc3RhdHVzKXt2YXIgcj10LnZhbHVlLG89dC5yZWFzb247dC5zdGF0dXM9InJlc29sdmVkX21vZHVsZSIsdC52YWx1ZT1uLHQucmVhc29uPW51bGwsbnVsbCE9PXImJihNKHQpLGooZSx0LHIsbykpfX1TLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFByb21pc2UucHJvdG90eXBlKSxTLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHRoaXMuc3RhdHVzKXtjYXNlInJlc29sdmVkX21vZGVsIjpEKHRoaXMpO2JyZWFrO2Nhc2UicmVzb2x2ZWRfbW9kdWxlIjpNKHRoaXMpfXN3aXRjaCh0aGlzLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKHRoaXMudmFsdWUpO2JyZWFrO2Nhc2UicGVuZGluZyI6Y2FzZSJibG9ja2VkIjoiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG51bGw9PT10aGlzLnZhbHVlJiYodGhpcy52YWx1ZT1bXSksdGhpcy52YWx1ZS5wdXNoKGUpKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmKG51bGw9PT10aGlzLnJlYXNvbiYmKHRoaXMucmVhc29uPVtdKSx0aGlzLnJlYXNvbi5wdXNoKHQpKTticmVhaztjYXNlImhhbHRlZCI6YnJlYWs7ZGVmYXVsdDoiZnVuY3Rpb24iPT10eXBlb2YgdCYmdCh0aGlzLnJlYXNvbil9fTt2YXIgeD1udWxsO2Z1bmN0aW9uIEQoZSl7dmFyIHQ9eDt4PW51bGw7dmFyIG49ZS52YWx1ZSxyPWUucmVhc29uO2Uuc3RhdHVzPSJibG9ja2VkIixlLnZhbHVlPW51bGwsZS5yZWFzb249bnVsbDt0cnl7dmFyIG89SlNPTi5wYXJzZShuLHIuX2Zyb21KU09OKSx1PWUudmFsdWU7aWYobnVsbCE9PXUpZm9yKGUudmFsdWU9bnVsbCxlLnJlYXNvbj1udWxsLG49MDtuPHUubGVuZ3RoO24rKyl7dmFyIGk9dVtuXTsiZnVuY3Rpb24iPT10eXBlb2YgaT9pKG8pOkwocixpLG8sZSl9aWYobnVsbCE9PXgpe2lmKHguZXJyb3JlZCl0aHJvdyB4LnJlYXNvbjtpZigwPHguZGVwcyl7eC52YWx1ZT1vLHguY2h1bms9ZTtyZXR1cm59fWUuc3RhdHVzPSJmdWxmaWxsZWQiLGUudmFsdWU9b31jYXRjaCh0KXtlLnN0YXR1cz0icmVqZWN0ZWQiLGUucmVhc29uPXR9ZmluYWxseXt4PXR9fWZ1bmN0aW9uIE0oZSl7dHJ5e3ZhciB0PWYoZS52YWx1ZSk7ZS5zdGF0dXM9ImZ1bGZpbGxlZCIsZS52YWx1ZT10fWNhdGNoKHQpe2Uuc3RhdHVzPSJyZWplY3RlZCIsZS5yZWFzb249dH19ZnVuY3Rpb24gJChlLHQpe2UuX2Nsb3NlZD0hMCxlLl9jbG9zZWRSZWFzb249dCxlLl9jaHVua3MuZm9yRWFjaChmdW5jdGlvbihuKXsicGVuZGluZyI9PT1uLnN0YXR1cz9BKGUsbix0KToiZnVsZmlsbGVkIj09PW4uc3RhdHVzJiZudWxsIT09bi5yZWFzb24mJm4ucmVhc29uLmVycm9yKHQpfSl9ZnVuY3Rpb24gSShlKXtyZXR1cm57JCR0eXBlb2Y6eSxfcGF5bG9hZDplLF9pbml0OlJ9fWZ1bmN0aW9uIEgoZSx0KXt2YXIgbj1lLl9jaHVua3Mscj1uLmdldCh0KTtyZXR1cm4gcnx8KHI9ZS5fY2xvc2VkP25ldyBTKCJyZWplY3RlZCIsbnVsbCxlLl9jbG9zZWRSZWFzb24pOm5ldyBTKCJwZW5kaW5nIixudWxsLG51bGwpLG4uc2V0KHQscikpLHJ9ZnVuY3Rpb24gTChlLHQsbil7dmFyIHI9dC5oYW5kbGVyLG89dC5wYXJlbnRPYmplY3QsaT10LmtleSxhPXQubWFwLGw9dC5wYXRoO3RyeXtmb3IodmFyIHM9MTtzPGwubGVuZ3RoO3MrKyl7Zm9yKDsib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uJiZuLiQkdHlwZW9mPT09eTspe3ZhciBjPW4uX3BheWxvYWQ7aWYoYz09PXIuY2h1bmspbj1yLnZhbHVlO2Vsc2V7c3dpdGNoKGMuc3RhdHVzKXtjYXNlInJlc29sdmVkX21vZGVsIjpEKGMpO2JyZWFrO2Nhc2UicmVzb2x2ZWRfbW9kdWxlIjpNKGMpfXN3aXRjaChjLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOm49Yy52YWx1ZTtjb250aW51ZTtjYXNlImJsb2NrZWQiOnZhciBmPVQoYyx0KTtpZihudWxsIT09Zil7bj1mLnZhbHVlO2NvbnRpbnVlfWNhc2UicGVuZGluZyI6bC5zcGxpY2UoMCxzLTEpLG51bGw9PT1jLnZhbHVlP2MudmFsdWU9W3RdOmMudmFsdWUucHVzaCh0KSxudWxsPT09Yy5yZWFzb24/Yy5yZWFzb249W3RdOmMucmVhc29uLnB1c2godCk7cmV0dXJuO2Nhc2UiaGFsdGVkIjpyZXR1cm47ZGVmYXVsdDpVKGUsdC5oYW5kbGVyLGMucmVhc29uKTtyZXR1cm59fX12YXIgZD1sW3NdO2lmKCJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJnUuY2FsbChuLGQpKW49bltkXTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIHJlZmVyZW5jZS4iKX1mb3IoOyJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJm4uJCR0eXBlb2Y9PT15Oyl7dmFyIHY9bi5fcGF5bG9hZDtpZih2PT09ci5jaHVuayluPXIudmFsdWU7ZWxzZXtzd2l0Y2godi5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOkQodik7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOk0odil9aWYoImZ1bGZpbGxlZCI9PT12LnN0YXR1cyl7bj12LnZhbHVlO2NvbnRpbnVlfWJyZWFrfX12YXIgaD1hKGUsbixvLGkpO2lmKCJfX3Byb3RvX18iIT09aSYmKG9baV09aCksIiI9PT1pJiZudWxsPT09ci52YWx1ZSYmKHIudmFsdWU9aCksb1swXT09PXAmJiJvYmplY3QiPT10eXBlb2Ygci52YWx1ZSYmbnVsbCE9PXIudmFsdWUmJnIudmFsdWUuJCR0eXBlb2Y9PT1wKXt2YXIgXz1yLnZhbHVlOyIzIj09PWkmJihfLnByb3BzPWgpfX1jYXRjaChuKXtVKGUsdC5oYW5kbGVyLG4pO3JldHVybn1yLmRlcHMtLSwwPT09ci5kZXBzJiZudWxsIT09KHQ9ci5jaHVuaykmJiJibG9ja2VkIj09PXQuc3RhdHVzJiYobj10LnZhbHVlLHQuc3RhdHVzPSJmdWxmaWxsZWQiLHQudmFsdWU9ci52YWx1ZSx0LnJlYXNvbj1yLnJlYXNvbixudWxsIT09biYmTyhlLG4sci52YWx1ZSx0KSl9ZnVuY3Rpb24gVShlLHQsbil7dC5lcnJvcmVkfHwodC5lcnJvcmVkPSEwLHQudmFsdWU9bnVsbCx0LnJlYXNvbj1uLG51bGwhPT0odD10LmNodW5rKSYmImJsb2NrZWQiPT09dC5zdGF0dXMmJkEoZSx0LG4pKX1mdW5jdGlvbiBGKGUsdCxuLHIsbyx1KXtyZXR1cm4geD8ocj14LHIuZGVwcysrKTpyPXg9e3BhcmVudDpudWxsLGNodW5rOm51bGwsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxkZXBzOjEsZXJyb3JlZDohMX0sdD17aGFuZGxlcjpyLHBhcmVudE9iamVjdDp0LGtleTpuLG1hcDpvLHBhdGg6dX0sbnVsbD09PWUudmFsdWU/ZS52YWx1ZT1bdF06ZS52YWx1ZS5wdXNoKHQpLG51bGw9PT1lLnJlYXNvbj9lLnJlYXNvbj1bdF06ZS5yZWFzb24ucHVzaCh0KSxudWxsfWZ1bmN0aW9uIFgoZSx0LG4scil7aWYoIWUuX3NlcnZlclJlZmVyZW5jZUNvbmZpZylyZXR1cm4gZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gbz8iZnVsZmlsbGVkIj09PW8uc3RhdHVzP3QocixvLnZhbHVlLmNvbmNhdChlKSk6UHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQocixuLmNvbmNhdChlKSl9KTp0KHIsZSl9dmFyIHI9ZS5pZCxvPWUuYm91bmQ7cmV0dXJuIEUobixyLG8pLG59KHQsZS5fY2FsbFNlcnZlcik7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj0iIixyPWVbdF07aWYociluPXIubmFtZTtlbHNle3ZhciBvPXQubGFzdEluZGV4T2YoIiMiKTtpZigtMSE9PW8mJihuPXQuc2xpY2UobysxKSxyPWVbdC5zbGljZSgwLG8pXSksIXIpdGhyb3cgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHRoZSBtb2R1bGUgIicrdCsnIiBpbiB0aGUgUmVhY3QgU2VydmVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLicpfXJldHVybiByLmFzeW5jP1tyLmlkLHIuY2h1bmtzLG4sMV06W3IuaWQsci5jaHVua3Msbl19KGUuX3NlcnZlclJlZmVyZW5jZUNvbmZpZyx0LmlkKSx1PWMobyk7aWYodSl0LmJvdW5kJiYodT1Qcm9taXNlLmFsbChbdSx0LmJvdW5kXSkpO2Vsc2V7aWYoIXQuYm91bmQpcmV0dXJuIEUodT1mKG8pLHQuaWQsdC5ib3VuZCksdTt1PVByb21pc2UucmVzb2x2ZSh0LmJvdW5kKX1pZih4KXt2YXIgaT14O2kuZGVwcysrfWVsc2UgaT14PXtwYXJlbnQ6bnVsbCxjaHVuazpudWxsLHZhbHVlOm51bGwscmVhc29uOm51bGwsZGVwczoxLGVycm9yZWQ6ITF9O3JldHVybiB1LnRoZW4oZnVuY3Rpb24oKXt2YXIgdT1mKG8pO2lmKHQuYm91bmQpe3ZhciBhPXQuYm91bmQudmFsdWUuc2xpY2UoMCk7YS51bnNoaWZ0KG51bGwpLHU9dS5iaW5kLmFwcGx5KHUsYSl9RSh1LHQuaWQsdC5ib3VuZCksIl9fcHJvdG9fXyIhPT1yJiYobltyXT11KSwiIj09PXImJm51bGw9PT1pLnZhbHVlJiYoaS52YWx1ZT11KSxuWzBdPT09cCYmIm9iamVjdCI9PXR5cGVvZiBpLnZhbHVlJiZudWxsIT09aS52YWx1ZSYmaS52YWx1ZS4kJHR5cGVvZj09PXAmJihhPWkudmFsdWUsIjMiPT09cikmJihhLnByb3BzPXUpLGkuZGVwcy0tLDA9PT1pLmRlcHMmJm51bGwhPT0odT1pLmNodW5rKSYmImJsb2NrZWQiPT09dS5zdGF0dXMmJihhPXUudmFsdWUsdS5zdGF0dXM9ImZ1bGZpbGxlZCIsdS52YWx1ZT1pLnZhbHVlLHUucmVhc29uPW51bGwsbnVsbCE9PWEmJk8oZSxhLGkudmFsdWUsdSkpfSxmdW5jdGlvbih0KXtpZighaS5lcnJvcmVkKXtpLmVycm9yZWQ9ITAsaS52YWx1ZT1udWxsLGkucmVhc29uPXQ7dmFyIG49aS5jaHVuaztudWxsIT09biYmImJsb2NrZWQiPT09bi5zdGF0dXMmJkEoZSxuLHQpfX0pLG51bGx9ZnVuY3Rpb24gVihlLHQsbixyLG8pe3ZhciB1PXBhcnNlSW50KCh0PXQuc3BsaXQoIjoiKSlbMF0sMTYpO3N3aXRjaCgodT1IKGUsdSkpLnN0YXR1cyl7Y2FzZSJyZXNvbHZlZF9tb2RlbCI6RCh1KTticmVhaztjYXNlInJlc29sdmVkX21vZHVsZSI6TSh1KX1zd2l0Y2godS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjp1PXUudmFsdWU7Zm9yKHZhciBpPTE7aTx0Lmxlbmd0aDtpKyspe2Zvcig7Im9iamVjdCI9PXR5cGVvZiB1JiZudWxsIT09dSYmdS4kJHR5cGVvZj09PXk7KXtzd2l0Y2goKHU9dS5fcGF5bG9hZCkuc3RhdHVzKXtjYXNlInJlc29sdmVkX21vZGVsIjpEKHUpO2JyZWFrO2Nhc2UicmVzb2x2ZWRfbW9kdWxlIjpNKHUpfXN3aXRjaCh1LnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnU9dS52YWx1ZTticmVhaztjYXNlImJsb2NrZWQiOmNhc2UicGVuZGluZyI6cmV0dXJuIEYodSxuLHIsZSxvLHQuc2xpY2UoaS0xKSk7Y2FzZSJoYWx0ZWQiOnJldHVybiB4PyhlPXgsZS5kZXBzKyspOng9e3BhcmVudDpudWxsLGNodW5rOm51bGwsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxkZXBzOjEsZXJyb3JlZDohMX0sbnVsbDtkZWZhdWx0OnJldHVybiB4Pyh4LmVycm9yZWQ9ITAseC52YWx1ZT1udWxsLHgucmVhc29uPXUucmVhc29uKTp4PXtwYXJlbnQ6bnVsbCxjaHVuazpudWxsLHZhbHVlOm51bGwscmVhc29uOnUucmVhc29uLGRlcHM6MCxlcnJvcmVkOiEwfSxudWxsfX11PXVbdFtpXV19Zm9yKDsib2JqZWN0Ij09dHlwZW9mIHUmJm51bGwhPT11JiZ1LiQkdHlwZW9mPT09eTspe3N3aXRjaCgodD11Ll9wYXlsb2FkKS5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOkQodCk7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOk0odCl9aWYoImZ1bGZpbGxlZCI9PT10LnN0YXR1cyl7dT10LnZhbHVlO2NvbnRpbnVlfWJyZWFrfXJldHVybiBvKGUsdSxuLHIpO2Nhc2UicGVuZGluZyI6Y2FzZSJibG9ja2VkIjpyZXR1cm4gRih1LG4scixlLG8sdCk7Y2FzZSJoYWx0ZWQiOnJldHVybiB4PyhlPXgsZS5kZXBzKyspOng9e3BhcmVudDpudWxsLGNodW5rOm51bGwsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxkZXBzOjEsZXJyb3JlZDohMX0sbnVsbDtkZWZhdWx0OnJldHVybiB4Pyh4LmVycm9yZWQ9ITAseC52YWx1ZT1udWxsLHgucmVhc29uPXUucmVhc29uKTp4PXtwYXJlbnQ6bnVsbCxjaHVuazpudWxsLHZhbHVlOm51bGwscmVhc29uOnUucmVhc29uLGRlcHM6MCxlcnJvcmVkOiEwfSxudWxsfX1mdW5jdGlvbiBxKGUsdCl7cmV0dXJuIG5ldyBNYXAodCl9ZnVuY3Rpb24gQihlLHQpe3JldHVybiBuZXcgU2V0KHQpfWZ1bmN0aW9uIFcoZSx0KXtyZXR1cm4gbmV3IEJsb2IodC5zbGljZSgxKSx7dHlwZTp0WzBdfSl9ZnVuY3Rpb24gRyhlLHQpe2U9bmV3IEZvcm1EYXRhO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWUuYXBwZW5kKHRbbl1bMF0sdFtuXVsxXSk7cmV0dXJuIGV9ZnVuY3Rpb24gSihlLHQpe3JldHVybiB0W1N5bWJvbC5pdGVyYXRvcl0oKX1mdW5jdGlvbiBLKGUsdCl7cmV0dXJuIHR9ZnVuY3Rpb24geigpe3Rocm93IEVycm9yKCdUcnlpbmcgdG8gY2FsbCBhIGZ1bmN0aW9uIGZyb20gInVzZSBzZXJ2ZXIiIGJ1dCB0aGUgY2FsbFNlcnZlciBvcHRpb24gd2FzIG5vdCBpbXBsZW1lbnRlZCBpbiB5b3VyIHJvdXRlciBydW50aW1lLicpfWZ1bmN0aW9uIFkoZSx0LG4scixvLHUsaSl7dmFyIGEsbD1uZXcgTWFwO3RoaXMuX2J1bmRsZXJDb25maWc9ZSx0aGlzLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWc9dCx0aGlzLl9tb2R1bGVMb2FkaW5nPW4sdGhpcy5fY2FsbFNlcnZlcj12b2lkIDAhPT1yP3I6eix0aGlzLl9lbmNvZGVGb3JtQWN0aW9uPW8sdGhpcy5fbm9uY2U9dSx0aGlzLl9jaHVua3M9bCx0aGlzLl9zdHJpbmdEZWNvZGVyPW5ldyBUZXh0RGVjb2Rlcix0aGlzLl9mcm9tSlNPTj1udWxsLHRoaXMuX2Nsb3NlZD0hMSx0aGlzLl9jbG9zZWRSZWFzb249bnVsbCx0aGlzLl90ZW1wUmVmcz1pLHRoaXMuX2Zyb21KU09OPShhPXRoaXMsZnVuY3Rpb24oZSx0KXtpZigiX19wcm90b19fIiE9PWUpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIG49YSxyPXRoaXMsbz1lLHU9dDtpZigiJCI9PT11WzBdKXtpZigiJCI9PT11KXJldHVybiBudWxsIT09eCYmIjAiPT09byYmKHg9e3BhcmVudDp4LGNodW5rOm51bGwsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxkZXBzOjAsZXJyb3JlZDohMX0pLHA7c3dpdGNoKHVbMV0pe2Nhc2UiJCI6cmV0dXJuIHUuc2xpY2UoMSk7Y2FzZSJMIjpyZXR1cm4gSShuPUgobixyPXBhcnNlSW50KHUuc2xpY2UoMiksMTYpKSk7Y2FzZSJAIjpyZXR1cm4gSChuLHI9cGFyc2VJbnQodS5zbGljZSgyKSwxNikpO2Nhc2UiUyI6cmV0dXJuIFN5bWJvbC5mb3IodS5zbGljZSgyKSk7Y2FzZSJoIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8sWCk7Y2FzZSJUIjppZihyPSIkIit1LnNsaWNlKDIpLG51bGw9PShuPW4uX3RlbXBSZWZzKSl0aHJvdyBFcnJvcigiTWlzc2luZyBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0IGJ1dCB0aGUgUlNDIHJlc3BvbnNlIHJldHVybmVkIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4gUGFzcyBhIHRlbXBvcmFyeVJlZmVyZW5jZSBvcHRpb24gd2l0aCB0aGUgc2V0IHRoYXQgd2FzIHVzZWQgd2l0aCB0aGUgcmVwbHkuIik7cmV0dXJuIG4uZ2V0KHIpO2Nhc2UiUSI6cmV0dXJuIFYobix1PXUuc2xpY2UoMikscixvLHEpO2Nhc2UiVyI6cmV0dXJuIFYobix1PXUuc2xpY2UoMikscixvLEIpO2Nhc2UiQiI6cmV0dXJuIFYobix1PXUuc2xpY2UoMikscixvLFcpO2Nhc2UiSyI6cmV0dXJuIFYobix1PXUuc2xpY2UoMikscixvLEcpO2Nhc2UiWiI6cmV0dXJuIGVyKCk7Y2FzZSJpIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8sSik7Y2FzZSJJIjpyZXR1cm4gMS8wO2Nhc2UiLSI6cmV0dXJuIiQtMCI9PT11Py0wOi0xLzA7Y2FzZSJOIjpyZXR1cm4gTmFOO2Nhc2UidSI6cmV0dXJuO2Nhc2UiRCI6cmV0dXJuIG5ldyBEYXRlKERhdGUucGFyc2UodS5zbGljZSgyKSkpO2Nhc2UibiI6cmV0dXJuIEJpZ0ludCh1LnNsaWNlKDIpKTtkZWZhdWx0OnJldHVybiBWKG4sdT11LnNsaWNlKDEpLHIsbyxLKX19cmV0dXJuIHV9aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCl7aWYodFswXT09PXApe2lmKGU9eyQkdHlwZW9mOnAsdHlwZTp0WzFdLGtleTp0WzJdLHJlZjpudWxsLHByb3BzOnRbM119LG51bGwhPT14KXtpZih4PSh0PXgpLnBhcmVudCx0LmVycm9yZWQpZT1JKGU9bmV3IFMoInJlamVjdGVkIixudWxsLHQucmVhc29uKSk7ZWxzZSBpZigwPHQuZGVwcyl7dmFyIGk9bmV3IFMoImJsb2NrZWQiLG51bGwsbnVsbCk7dC52YWx1ZT1lLHQuY2h1bms9aSxlPUkoaSl9fX1lbHNlIGU9dDtyZXR1cm4gZX1yZXR1cm4gdH19KX1mdW5jdGlvbiBRKGUsdCxuKXt2YXIgcj0oZT1lLl9jaHVua3MpLmdldCh0KTtyJiYicGVuZGluZyIhPT1yLnN0YXR1cz9yLnJlYXNvbi5lbnF1ZXVlVmFsdWUobik6KG49bmV3IFMoImZ1bGZpbGxlZCIsbixudWxsKSxlLnNldCh0LG4pKX1mdW5jdGlvbiBaKGUsdCxuLHIpe3ZhciBvPWUuX2NodW5rcyx1PW8uZ2V0KHQpO3U/InBlbmRpbmciPT09dS5zdGF0dXMmJih0PXUudmFsdWUsdS5zdGF0dXM9ImZ1bGZpbGxlZCIsdS52YWx1ZT1uLHUucmVhc29uPXIsbnVsbCE9PXQmJk8oZSx0LHUudmFsdWUsdSkpOihlPW5ldyBTKCJmdWxmaWxsZWQiLG4sciksby5zZXQodCxlKSl9ZnVuY3Rpb24gZWUoZSx0LG4pe3ZhciByPW51bGwsbz0hMTtuPW5ldyBSZWFkYWJsZVN0cmVhbSh7dHlwZTpuLHN0YXJ0OmZ1bmN0aW9uKGUpe3I9ZX19KTt2YXIgdT1udWxsO1ooZSx0LG4se2VucXVldWVWYWx1ZTpmdW5jdGlvbihlKXtudWxsPT09dT9yLmVucXVldWUoZSk6dS50aGVuKGZ1bmN0aW9uKCl7ci5lbnF1ZXVlKGUpfSl9LGVucXVldWVNb2RlbDpmdW5jdGlvbih0KXtpZihudWxsPT09dSl7dmFyIG49bmV3IFMoInJlc29sdmVkX21vZGVsIix0LGUpO0QobiksImZ1bGZpbGxlZCI9PT1uLnN0YXR1cz9yLmVucXVldWUobi52YWx1ZSk6KG4udGhlbihmdW5jdGlvbihlKXtyZXR1cm4gci5lbnF1ZXVlKGUpfSxmdW5jdGlvbihlKXtyZXR1cm4gci5lcnJvcihlKX0pLHU9bil9ZWxzZXtuPXU7dmFyIG89bmV3IFMoInBlbmRpbmciLG51bGwsbnVsbCk7by50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiByLmVucXVldWUoZSl9LGZ1bmN0aW9uKGUpe3JldHVybiByLmVycm9yKGUpfSksdT1vLG4udGhlbihmdW5jdGlvbigpe3U9PT1vJiYodT1udWxsKSxOKGUsbyx0KX0pfX0sY2xvc2U6ZnVuY3Rpb24oKXtpZighbylpZihvPSEwLG51bGw9PT11KXIuY2xvc2UoKTtlbHNle3ZhciBlPXU7dT1udWxsLGUudGhlbihmdW5jdGlvbigpe3JldHVybiByLmNsb3NlKCl9KX19LGVycm9yOmZ1bmN0aW9uKGUpe2lmKCFvKWlmKG89ITAsbnVsbD09PXUpci5lcnJvcihlKTtlbHNle3ZhciB0PXU7dT1udWxsLHQudGhlbihmdW5jdGlvbigpe3JldHVybiByLmVycm9yKGUpfSl9fX0pfWZ1bmN0aW9uIGV0KCl7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gZW4oZSx0LG4pe3ZhciByPVtdLG89ITEsdT0wLGk9e307aVtoXT1mdW5jdGlvbigpe3ZhciBlLHQ9MDtyZXR1cm4oZT17bmV4dDplPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PWUpdGhyb3cgRXJyb3IoIlZhbHVlcyBjYW5ub3QgYmUgcGFzc2VkIHRvIG5leHQoKSBvZiBBc3luY0l0ZXJhYmxlcyBwYXNzZWQgdG8gQ2xpZW50IENvbXBvbmVudHMuIik7aWYodD09PXIubGVuZ3RoKXtpZihvKXJldHVybiBuZXcgUygiZnVsZmlsbGVkIix7ZG9uZTohMCx2YWx1ZTp2b2lkIDB9LG51bGwpO3JbdF09bmV3IFMoInBlbmRpbmciLG51bGwsbnVsbCl9cmV0dXJuIHJbdCsrXX19KVtoXT1ldCxlfSxaKGUsdCxuP2lbaF0oKTppLHtlbnF1ZXVlVmFsdWU6ZnVuY3Rpb24odCl7aWYodT09PXIubGVuZ3RoKXJbdV09bmV3IFMoImZ1bGZpbGxlZCIse2RvbmU6ITEsdmFsdWU6dH0sbnVsbCk7ZWxzZXt2YXIgbj1yW3VdLG89bi52YWx1ZSxpPW4ucmVhc29uO24uc3RhdHVzPSJmdWxmaWxsZWQiLG4udmFsdWU9e2RvbmU6ITEsdmFsdWU6dH0sbi5yZWFzb249bnVsbCxudWxsIT09byYmaihlLG4sbyxpKX11Kyt9LGVucXVldWVNb2RlbDpmdW5jdGlvbih0KXt1PT09ci5sZW5ndGg/clt1XT1rKGUsdCwhMSk6QyhlLHJbdV0sdCwhMSksdSsrfSxjbG9zZTpmdW5jdGlvbih0KXtpZighbylmb3Iobz0hMCx1PT09ci5sZW5ndGg/clt1XT1rKGUsdCwhMCk6QyhlLHJbdV0sdCwhMCksdSsrO3U8ci5sZW5ndGg7KUMoZSxyW3UrK10sJyIkdW5kZWZpbmVkIicsITApfSxlcnJvcjpmdW5jdGlvbih0KXtpZighbylmb3Iobz0hMCx1PT09ci5sZW5ndGgmJihyW3VdPW5ldyBTKCJwZW5kaW5nIixudWxsLG51bGwpKTt1PHIubGVuZ3RoOylBKGUsclt1KytdLHQpfX0pfWZ1bmN0aW9uIGVyKCl7dmFyIGU9RXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIGluIHRoZSBTZXJ2ZXIgQ29tcG9uZW50cyByZW5kZXIuIFRoZSBzcGVjaWZpYyBtZXNzYWdlIGlzIG9taXR0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgdG8gYXZvaWQgbGVha2luZyBzZW5zaXRpdmUgZGV0YWlscy4gQSBkaWdlc3QgcHJvcGVydHkgaXMgaW5jbHVkZWQgb24gdGhpcyBlcnJvciBpbnN0YW5jZSB3aGljaCBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgYWJvdXQgdGhlIG5hdHVyZSBvZiB0aGUgZXJyb3IuIik7cmV0dXJuIGUuc3RhY2s9IkVycm9yOiAiK2UubWVzc2FnZSxlfWZ1bmN0aW9uIGVvKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dC5sZW5ndGgsbz0wO288bjtvKyspcis9ZVtvXS5ieXRlTGVuZ3RoO3I9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKHZhciB1PW89MDt1PG47dSsrKXt2YXIgaT1lW3VdO3Iuc2V0KGksbyksbys9aS5ieXRlTGVuZ3RofXJldHVybiByLnNldCh0LG8pLHJ9ZnVuY3Rpb24gZXUoZSx0LG4scixvLHUpe1EoZSx0LG89bmV3IG8oKG49MD09PW4ubGVuZ3RoJiYwPT1yLmJ5dGVPZmZzZXQldT9yOmVvKG4scikpLmJ1ZmZlcixuLmJ5dGVPZmZzZXQsbi5ieXRlTGVuZ3RoL3UpKX1mdW5jdGlvbiBlaShlKXskKGUsRXJyb3IoIkNvbm5lY3Rpb24gY2xvc2VkLiIpKX1mdW5jdGlvbiBlYShlKXtyZXR1cm4gbmV3IFkobnVsbCxudWxsLG51bGwsZSYmZS5jYWxsU2VydmVyP2UuY2FsbFNlcnZlcjp2b2lkIDAsdm9pZCAwLHZvaWQgMCxlJiZlLnRlbXBvcmFyeVJlZmVyZW5jZXM/ZS50ZW1wb3JhcnlSZWZlcmVuY2VzOnZvaWQgMCl9ZnVuY3Rpb24gZWwoZSx0LG4pe2Z1bmN0aW9uIHIodCl7JChlLHQpfXZhciB1PXtfcm93U3RhdGU6MCxfcm93SUQ6MCxfcm93VGFnOjAsX3Jvd0xlbmd0aDowLF9idWZmZXI6W119LGk9dC5nZXRSZWFkZXIoKTtpLnJlYWQoKS50aGVuKGZ1bmN0aW9uIHQoYSl7dmFyIGw9YS52YWx1ZTtpZihhLmRvbmUpcmV0dXJuIG4oKTt2YXIgcz0wLGY9dS5fcm93U3RhdGU7YT11Ll9yb3dJRDtmb3IodmFyIHA9dS5fcm93VGFnLHk9dS5fcm93TGVuZ3RoLHY9dS5fYnVmZmVyLGg9bC5sZW5ndGg7czxoOyl7dmFyIF89LTE7c3dpdGNoKGYpe2Nhc2UgMDo1OD09PShfPWxbcysrXSk/Zj0xOmE9YTw8NHwoOTY8Xz9fLTg3Ol8tNDgpO2NvbnRpbnVlO2Nhc2UgMTo4ND09PShmPWxbc10pfHw2NT09PWZ8fDc5PT09Znx8MTExPT09Znx8OTg9PT1mfHw4NT09PWZ8fDgzPT09Znx8MTE1PT09Znx8NzY9PT1mfHwxMDg9PT1mfHw3MT09PWZ8fDEwMz09PWZ8fDc3PT09Znx8MTA5PT09Znx8ODY9PT1mPyhwPWYsZj0yLHMrKyk6NjQ8ZiYmOTE+Znx8MzU9PT1mfHwxMTQ9PT1mfHwxMjA9PT1mPyhwPWYsZj0zLHMrKyk6KHA9MCxmPTMpO2NvbnRpbnVlO2Nhc2UgMjo0ND09PShfPWxbcysrXSk/Zj00Onk9eTw8NHwoOTY8Xz9fLTg3Ol8tNDgpO2NvbnRpbnVlO2Nhc2UgMzpfPWwuaW5kZXhPZigxMCxzKTticmVhaztjYXNlIDQ6KF89cyt5KT5sLmxlbmd0aCYmKF89LTEpfXZhciBiPWwuYnl0ZU9mZnNldCtzO2lmKC0xPF8peT1uZXcgVWludDhBcnJheShsLmJ1ZmZlcixiLF8tcyksOTg9PT1wP1EoZSxhLF89PT1oP3k6eS5zbGljZSgpKTpmdW5jdGlvbihlLHQsbixyLHUsaSl7c3dpdGNoKHIpe2Nhc2UgNjU6UShlLG4sZW8odSxpKS5idWZmZXIpO3JldHVybjtjYXNlIDc5OmV1KGUsbix1LGksSW50OEFycmF5LDEpO3JldHVybjtjYXNlIDExMTpRKGUsbiwwPT09dS5sZW5ndGg/aTplbyh1LGkpKTtyZXR1cm47Y2FzZSA4NTpldShlLG4sdSxpLFVpbnQ4Q2xhbXBlZEFycmF5LDEpO3JldHVybjtjYXNlIDgzOmV1KGUsbix1LGksSW50MTZBcnJheSwyKTtyZXR1cm47Y2FzZSAxMTU6ZXUoZSxuLHUsaSxVaW50MTZBcnJheSwyKTtyZXR1cm47Y2FzZSA3NjpldShlLG4sdSxpLEludDMyQXJyYXksNCk7cmV0dXJuO2Nhc2UgMTA4OmV1KGUsbix1LGksVWludDMyQXJyYXksNCk7cmV0dXJuO2Nhc2UgNzE6ZXUoZSxuLHUsaSxGbG9hdDMyQXJyYXksNCk7cmV0dXJuO2Nhc2UgMTAzOmV1KGUsbix1LGksRmxvYXQ2NEFycmF5LDgpO3JldHVybjtjYXNlIDc3OmV1KGUsbix1LGksQmlnSW50NjRBcnJheSw4KTtyZXR1cm47Y2FzZSAxMDk6ZXUoZSxuLHUsaSxCaWdVaW50NjRBcnJheSw4KTtyZXR1cm47Y2FzZSA4NjpldShlLG4sdSxpLERhdGFWaWV3LDEpO3JldHVybn10PWUuX3N0cmluZ0RlY29kZXI7Zm9yKHZhciBhPSIiLGw9MDtsPHUubGVuZ3RoO2wrKylhKz10LmRlY29kZSh1W2xdLG8pO3N3aXRjaCh1PWErPXQuZGVjb2RlKGkpLHIpe2Nhc2UgNzM6dmFyIHM9ZSxmPW4scD11LHk9cy5fY2h1bmtzLHY9eS5nZXQoZik7cD1KU09OLnBhcnNlKHAscy5fZnJvbUpTT04pO3ZhciBoPWZ1bmN0aW9uKGUsdCl7aWYoZSl7dmFyIG49ZVt0WzBdXTtpZihlPW4mJm5bdFsyXV0pbj1lLm5hbWU7ZWxzZXtpZighKGU9biYmblsiKiJdKSl0aHJvdyBFcnJvcignQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSAiJyt0WzBdKyciIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29uc3VtZXIgTWFuaWZlc3QuIFRoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIGJ1bmRsZXIuJyk7bj10WzJdfXJldHVybiA0PT09dC5sZW5ndGg/W2UuaWQsZS5jaHVua3MsbiwxXTpbZS5pZCxlLmNodW5rcyxuXX1yZXR1cm4gdH0ocy5fYnVuZGxlckNvbmZpZyxwKTtpZihwPWMoaCkpe2lmKHYpe3ZhciBfPXY7Xy5zdGF0dXM9ImJsb2NrZWQifWVsc2UgXz1uZXcgUygiYmxvY2tlZCIsbnVsbCxudWxsKSx5LnNldChmLF8pO3AudGhlbihmdW5jdGlvbigpe3JldHVybiBQKHMsXyxoKX0sZnVuY3Rpb24oZSl7cmV0dXJuIEEocyxfLGUpfSl9ZWxzZSB2P1Aocyx2LGgpOih2PW5ldyBTKCJyZXNvbHZlZF9tb2R1bGUiLGgsbnVsbCkseS5zZXQoZix2KSk7YnJlYWs7Y2FzZSA3Mjpzd2l0Y2gobj11WzBdLGU9SlNPTi5wYXJzZSh1PXUuc2xpY2UoMSksZS5fZnJvbUpTT04pLHU9ZC5kLG4pe2Nhc2UiRCI6dS5EKGUpO2JyZWFrO2Nhc2UiQyI6InN0cmluZyI9PXR5cGVvZiBlP3UuQyhlKTp1LkMoZVswXSxlWzFdKTticmVhaztjYXNlIkwiOm49ZVswXSxyPWVbMV0sMz09PWUubGVuZ3RoP3UuTChuLHIsZVsyXSk6dS5MKG4scik7YnJlYWs7Y2FzZSJtIjoic3RyaW5nIj09dHlwZW9mIGU/dS5tKGUpOnUubShlWzBdLGVbMV0pO2JyZWFrO2Nhc2UiWCI6InN0cmluZyI9PXR5cGVvZiBlP3UuWChlKTp1LlgoZVswXSxlWzFdKTticmVhaztjYXNlIlMiOiJzdHJpbmciPT10eXBlb2YgZT91LlMoZSk6dS5TKGVbMF0sMD09PWVbMV0/dm9pZCAwOmVbMV0sMz09PWUubGVuZ3RoP2VbMl06dm9pZCAwKTticmVhaztjYXNlIk0iOiJzdHJpbmciPT10eXBlb2YgZT91Lk0oZSk6dS5NKGVbMF0sZVsxXSl9YnJlYWs7Y2FzZSA2OTppPShyPWUuX2NodW5rcykuZ2V0KG4pLHU9SlNPTi5wYXJzZSh1KSwodD1lcigpKS5kaWdlc3Q9dS5kaWdlc3QsaT9BKGUsaSx0KTooZT1uZXcgUygicmVqZWN0ZWQiLG51bGwsdCksci5zZXQobixlKSk7YnJlYWs7Y2FzZSA4NDoocj0oZT1lLl9jaHVua3MpLmdldChuKSkmJiJwZW5kaW5nIiE9PXIuc3RhdHVzP3IucmVhc29uLmVucXVldWVWYWx1ZSh1KToodT1uZXcgUygiZnVsZmlsbGVkIix1LG51bGwpLGUuc2V0KG4sdSkpO2JyZWFrO2Nhc2UgNzg6Y2FzZSA2ODpjYXNlIDc0OmNhc2UgODc6dGhyb3cgRXJyb3IoIkZhaWxlZCB0byByZWFkIGEgUlNDIHBheWxvYWQgY3JlYXRlZCBieSBhIGRldmVsb3BtZW50IHZlcnNpb24gb2YgUmVhY3Qgb24gdGhlIHNlcnZlciB3aGlsZSB1c2luZyBhIHByb2R1Y3Rpb24gdmVyc2lvbiBvbiB0aGUgY2xpZW50LiBBbHdheXMgdXNlIG1hdGNoaW5nIHZlcnNpb25zIG9uIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQuIik7Y2FzZSA4MjplZShlLG4sdm9pZCAwKTticmVhaztjYXNlIDExNDplZShlLG4sImJ5dGVzIik7YnJlYWs7Y2FzZSA4ODplbihlLG4sITEpO2JyZWFrO2Nhc2UgMTIwOmVuKGUsbiwhMCk7YnJlYWs7Y2FzZSA2Nzoobj1lLl9jaHVua3MuZ2V0KG4pKSYmImZ1bGZpbGxlZCI9PT1uLnN0YXR1cyYmbi5yZWFzb24uY2xvc2UoIiI9PT11PyciJHVuZGVmaW5lZCInOnUpO2JyZWFrO2RlZmF1bHQ6KGk9KHI9ZS5fY2h1bmtzKS5nZXQobikpP04oZSxpLHUpOihlPW5ldyBTKCJyZXNvbHZlZF9tb2RlbCIsdSxlKSxyLnNldChuLGUpKX19KGUsdSxhLHAsdix5KSxzPV8sMz09PWYmJnMrKyx5PWE9cD1mPTAsdi5sZW5ndGg9MDtlbHNle2w9bmV3IFVpbnQ4QXJyYXkobC5idWZmZXIsYixsLmJ5dGVMZW5ndGgtcyksOTg9PT1wPyh5LT1sLmJ5dGVMZW5ndGgsUShlLGEsbCkpOih2LnB1c2gobCkseS09bC5ieXRlTGVuZ3RoKTticmVha319cmV0dXJuIHUuX3Jvd1N0YXRlPWYsdS5fcm93SUQ9YSx1Ll9yb3dUYWc9cCx1Ll9yb3dMZW5ndGg9eSxpLnJlYWQoKS50aGVuKHQpLmNhdGNoKHIpfSkuY2F0Y2gocil9bi5jcmVhdGVGcm9tRmV0Y2g9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lYSh0KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe2VsKG4sZS5ib2R5LGVpLmJpbmQobnVsbCxuKSl9LGZ1bmN0aW9uKGUpeyQobixlKX0pLEgobiwwKX0sbi5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZWwodD1lYSh0KSxlLGVpLmJpbmQobnVsbCx0KSksSCh0LDApfSxuLmNyZWF0ZVNlcnZlclJlZmVyZW5jZT1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiB0KGUsbil9cmV0dXJuIEUobixlLG51bGwpLG59LG4uY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9LG4uZW5jb2RlUmVwbHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt2YXIgbz1mdW5jdGlvbihlLHQsbixyLG8pe2Z1bmN0aW9uIHUoZSx0KXt0PW5ldyBCbG9iKFtuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKV0pO3ZhciBuPWwrKztyZXR1cm4gbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksYy5hcHBlbmQoIiIrbix0KSwiJCIrZStuLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBpKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBwOmlmKHZvaWQgMCE9PW4mJi0xPT09ZS5pbmRleE9mKCI6Iikpe3ZhciBFLFMsUixPLHcsVD1mLmdldCh0aGlzKTtpZih2b2lkIDAhPT1UKXJldHVybiBuLnNldChUKyI6IitlLHQpLCIkVCJ9dGhyb3cgRXJyb3IoIlJlYWN0IEVsZW1lbnQgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudCB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuIik7Y2FzZSB5OlQ9dC5fcGF5bG9hZDt2YXIgaj10Ll9pbml0O251bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLHMrKzt0cnl7dmFyIEE9aihUKSxrPWwrKyxDPWEoQSxrKTtyZXR1cm4gYy5hcHBlbmQoIiIrayxDKSwiJCIray50b1N0cmluZygxNil9Y2F0Y2goZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbil7cysrO3ZhciBOPWwrKztyZXR1cm4gVD1mdW5jdGlvbigpe3RyeXt2YXIgZT1hKHQsTiksbj1jO24uYXBwZW5kKCIiK04sZSkscy0tLDA9PT1zJiZyKG4pfWNhdGNoKGUpe28oZSl9fSxlLnRoZW4oVCxUKSwiJCIrTi50b1N0cmluZygxNil9cmV0dXJuIG8oZSksbnVsbH1maW5hbGx5e3MtLX19aWYoVD1mLmdldCh0KSwiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuKXtpZih2b2lkIDAhPT1UKWlmKGQhPT10KXJldHVybiBUO2Vsc2UgZD1udWxsO251bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLHMrKzt2YXIgUD1sKys7cmV0dXJuIGU9IiRAIitQLnRvU3RyaW5nKDE2KSxmLnNldCh0LGUpLHQudGhlbihmdW5jdGlvbihlKXt0cnl7dmFyIHQ9Zi5nZXQoZSksbj12b2lkIDAhPT10P0pTT04uc3RyaW5naWZ5KHQpOmEoZSxQKTsoZT1jKS5hcHBlbmQoIiIrUCxuKSxzLS0sMD09PXMmJnIoZSl9Y2F0Y2goZSl7byhlKX19LG8pLGV9aWYodm9pZCAwIT09VClpZihkIT09dClyZXR1cm4gVDtlbHNlIGQ9bnVsbDtlbHNlIC0xPT09ZS5pbmRleE9mKCI6IikmJnZvaWQgMCE9PShUPWYuZ2V0KHRoaXMpKSYmKGU9VCsiOiIrZSxmLnNldCh0LGUpLHZvaWQgMCE9PW4mJm4uc2V0KGUsdCkpO2lmKF8odCkpcmV0dXJuIHQ7aWYodCBpbnN0YW5jZW9mIEZvcm1EYXRhKXtudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKTt2YXIgeD1jLEQ9IiIrKGU9bCsrKSsiXyI7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlLHQpe3guYXBwZW5kKEQrdCxlKX0pLCIkSyIrZS50b1N0cmluZygxNil9aWYodCBpbnN0YW5jZW9mIE1hcClyZXR1cm4gZT1sKyssVD1hKEFycmF5LmZyb20odCksZSksbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksYy5hcHBlbmQoIiIrZSxUKSwiJFEiK2UudG9TdHJpbmcoMTYpO2lmKHQgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIGU9bCsrLFQ9YShBcnJheS5mcm9tKHQpLGUpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGMuYXBwZW5kKCIiK2UsVCksIiRXIitlLnRvU3RyaW5nKDE2KTtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIGU9bmV3IEJsb2IoW3RdKSxUPWwrKyxudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKSxjLmFwcGVuZCgiIitULGUpLCIkQSIrVC50b1N0cmluZygxNik7aWYodCBpbnN0YW5jZW9mIEludDhBcnJheSlyZXR1cm4gdSgiTyIsdCk7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIHUoIm8iLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlyZXR1cm4gdSgiVSIsdCk7aWYodCBpbnN0YW5jZW9mIEludDE2QXJyYXkpcmV0dXJuIHUoIlMiLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheSlyZXR1cm4gdSgicyIsdCk7aWYodCBpbnN0YW5jZW9mIEludDMyQXJyYXkpcmV0dXJuIHUoIkwiLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheSlyZXR1cm4gdSgibCIsdCk7aWYodCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSlyZXR1cm4gdSgiRyIsdCk7aWYodCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSlyZXR1cm4gdSgiZyIsdCk7aWYodCBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXkpcmV0dXJuIHUoIk0iLHQpO2lmKHQgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSlyZXR1cm4gdSgibSIsdCk7aWYodCBpbnN0YW5jZW9mIERhdGFWaWV3KXJldHVybiB1KCJWIix0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQmxvYiYmdCBpbnN0YW5jZW9mIEJsb2IpcmV0dXJuIG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGU9bCsrLGMuYXBwZW5kKCIiK2UsdCksIiRCIitlLnRvU3RyaW5nKDE2KTtpZihlPW51bGw9PT0oRT10KXx8Im9iamVjdCIhPXR5cGVvZiBFP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKEU9diYmRVt2XXx8RVsiQEBpdGVyYXRvciJdKT9FOm51bGwpcmV0dXJuKFQ9ZS5jYWxsKHQpKT09PXQ/KGU9bCsrLFQ9YShBcnJheS5mcm9tKFQpLGUpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGMuYXBwZW5kKCIiK2UsVCksIiRpIitlLnRvU3RyaW5nKDE2KSk6QXJyYXkuZnJvbShUKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUmVhZGFibGVTdHJlYW0mJnQgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSlyZXR1cm4gZnVuY3Rpb24oZSl7dHJ5e3ZhciB0LG4sdSxhLGYsZCxwLHk9ZS5nZXRSZWFkZXIoe21vZGU6ImJ5b2IifSl9Y2F0Y2goYSl7cmV0dXJuIHQ9ZS5nZXRSZWFkZXIoKSxudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKSxuPWMscysrLHU9bCsrLHQucmVhZCgpLnRoZW4oZnVuY3Rpb24gZShhKXtpZihhLmRvbmUpbi5hcHBlbmQoIiIrdSwiQyIpLDA9PS0tcyYmcihuKTtlbHNlIHRyeXt2YXIgbD1KU09OLnN0cmluZ2lmeShhLnZhbHVlLGkpO24uYXBwZW5kKCIiK3UsbCksdC5yZWFkKCkudGhlbihlLG8pfWNhdGNoKGUpe28oZSl9fSxvKSwiJFIiK3UudG9TdHJpbmcoMTYpfXJldHVybiBhPXksbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksZj1jLHMrKyxkPWwrKyxwPVtdLGEucmVhZChuZXcgVWludDhBcnJheSgxMDI0KSkudGhlbihmdW5jdGlvbiBlKHQpe3QuZG9uZT8odD1sKyssZi5hcHBlbmQoIiIrdCxuZXcgQmxvYihwKSksZi5hcHBlbmQoIiIrZCwnIiRvJyt0LnRvU3RyaW5nKDE2KSsnIicpLGYuYXBwZW5kKCIiK2QsIkMiKSwwPT0tLXMmJnIoZikpOihwLnB1c2godC52YWx1ZSksYS5yZWFkKG5ldyBVaW50OEFycmF5KDEwMjQpKS50aGVuKGUsbykpfSxvKSwiJHIiK2QudG9TdHJpbmcoMTYpfSh0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YoZT10W2hdKSlyZXR1cm4gUz10LFI9ZS5jYWxsKHQpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLE89YyxzKyssdz1sKyssUz1TPT09UixSLm5leHQoKS50aGVuKGZ1bmN0aW9uIGUodCl7aWYodC5kb25lKXtpZih2b2lkIDA9PT10LnZhbHVlKU8uYXBwZW5kKCIiK3csIkMiKTtlbHNlIHRyeXt2YXIgbj1KU09OLnN0cmluZ2lmeSh0LnZhbHVlLGkpO08uYXBwZW5kKCIiK3csIkMiK24pfWNhdGNoKGUpe28oZSk7cmV0dXJufTA9PS0tcyYmcihPKX1lbHNlIHRyeXt2YXIgdT1KU09OLnN0cmluZ2lmeSh0LnZhbHVlLGkpO08uYXBwZW5kKCIiK3csdSksUi5uZXh0KCkudGhlbihlLG8pfWNhdGNoKGUpe28oZSl9fSxvKSwiJCIrKFM/IngiOiJYIikrdy50b1N0cmluZygxNik7aWYoKGU9Yih0KSkhPT1nJiYobnVsbD09PWV8fG51bGwhPT1iKGUpKSl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcigiT25seSBwbGFpbiBvYmplY3RzLCBhbmQgYSBmZXcgYnVpbHQtaW5zLCBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMuIENsYXNzZXMgb3IgbnVsbCBwcm90b3R5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLiIpO3JldHVybiIkVCJ9cmV0dXJuIHR9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJaIj09PXRbdC5sZW5ndGgtMV0mJnRoaXNbZV1pbnN0YW5jZW9mIERhdGU/IiREIit0OmU9IiQiPT09dFswXT8iJCIrdDp0O2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiBOdW1iZXIuaXNGaW5pdGUodCk/MD09PXQmJi0xLzA9PTEvdD8iJC0wIjp0OjEvMD09PXQ/IiRJbmZpbml0eSI6LTEvMD09PXQ/IiQtSW5maW5pdHkiOiIkTmFOIjtpZih2b2lkIDA9PT10KXJldHVybiIkdW5kZWZpbmVkIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7aWYodm9pZCAwIT09KFQ9bS5nZXQodCkpKXJldHVybiB2b2lkIDAhPT0oZT1mLmdldCh0KSl8fChlPUpTT04uc3RyaW5naWZ5KHtpZDpULmlkLGJvdW5kOlQuYm91bmR9LGkpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLFQ9bCsrLGMuc2V0KCIiK1QsZSksZT0iJGgiK1QudG9TdHJpbmcoMTYpLGYuc2V0KHQsZSkpLGU7aWYodm9pZCAwIT09biYmLTE9PT1lLmluZGV4T2YoIjoiKSYmdm9pZCAwIT09KFQ9Zi5nZXQodGhpcykpKXJldHVybiBuLnNldChUKyI6IitlLHQpLCIkVCI7dGhyb3cgRXJyb3IoIkNsaWVudCBGdW5jdGlvbnMgY2Fubm90IGJlIHBhc3NlZCBkaXJlY3RseSB0byBTZXJ2ZXIgRnVuY3Rpb25zLiBPbmx5IEZ1bmN0aW9ucyBwYXNzZWQgZnJvbSB0aGUgU2VydmVyIGNhbiBiZSBwYXNzZWQgYmFjayBhZ2Fpbi4iKX1pZigic3ltYm9sIj09dHlwZW9mIHQpe2lmKHZvaWQgMCE9PW4mJi0xPT09ZS5pbmRleE9mKCI6IikmJnZvaWQgMCE9PShUPWYuZ2V0KHRoaXMpKSlyZXR1cm4gbi5zZXQoVCsiOiIrZSx0KSwiJFQiO3Rocm93IEVycm9yKCJTeW1ib2xzIGNhbm5vdCBiZSBwYXNzZWQgdG8gYSBTZXJ2ZXIgRnVuY3Rpb24gd2l0aG91dCBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0LiBQYXNzIGEgVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IHRvIHRoZSBvcHRpb25zLiIpfWlmKCJiaWdpbnQiPT10eXBlb2YgdClyZXR1cm4iJG4iK3QudG9TdHJpbmcoMTApO3Rocm93IEVycm9yKCJUeXBlICIrdHlwZW9mIHQrIiBpcyBub3Qgc3VwcG9ydGVkIGFzIGFuIGFyZ3VtZW50IHRvIGEgU2VydmVyIEZ1bmN0aW9uLiIpfWZ1bmN0aW9uIGEoZSx0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYodD0iJCIrdC50b1N0cmluZygxNiksZi5zZXQoZSx0KSx2b2lkIDAhPT1uJiZuLnNldCh0LGUpKSxkPWUsSlNPTi5zdHJpbmdpZnkoZSxpKX12YXIgbD0xLHM9MCxjPW51bGwsZj1uZXcgV2Vha01hcCxkPWUsRT1hKGUsMCk7cmV0dXJuIG51bGw9PT1jP3IoRSk6KGMuc2V0KCIwIixFKSwwPT09cyYmcihjKSksZnVuY3Rpb24oKXswPHMmJihzPTAsbnVsbD09PWM/cihFKTpyKGMpKX19KGUsMCx0JiZ0LnRlbXBvcmFyeVJlZmVyZW5jZXM/dC50ZW1wb3JhcnlSZWZlcmVuY2VzOnZvaWQgMCxuLHIpO2lmKHQmJnQuc2lnbmFsKXt2YXIgdT10LnNpZ25hbDtpZih1LmFib3J0ZWQpbyh1LnJlYXNvbik7ZWxzZXt2YXIgaT1mdW5jdGlvbigpe28odS5yZWFzb24pLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpfTt1LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpKX19fSl9LG4ucmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRShlLHQsbnVsbCksZX19LDkxNTk4LChlLHQsbik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPWUucig0OTcwNil9LDc1MDQ1LChlLHQsbik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPWUucig5MTU5OCl9LDU5NDMwLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByLG89e0FDVElPTl9ITVJfUkVGUkVTSDpmdW5jdGlvbigpe3JldHVybiBjfSxBQ1RJT05fTkFWSUdBVEU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sQUNUSU9OX1JFRlJFU0g6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sQUNUSU9OX1JFU1RPUkU6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sQUNUSU9OX1NFUlZFUl9BQ1RJT046ZnVuY3Rpb24oKXtyZXR1cm4gZn0sQUNUSU9OX1NFUlZFUl9QQVRDSDpmdW5jdGlvbigpe3JldHVybiBzfSxQcmVmZXRjaEtpbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19O2Zvcih2YXIgdSBpbiBvKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHUse2VudW1lcmFibGU6ITAsZ2V0Om9bdV19KTtsZXQgaT0icmVmcmVzaCIsYT0ibmF2aWdhdGUiLGw9InJlc3RvcmUiLHM9InNlcnZlci1wYXRjaCIsYz0iaG1yLXJlZnJlc2giLGY9InNlcnZlci1hY3Rpb24iO3ZhciBkPSgocj17fSkuQVVUTz0iYXV0byIsci5GVUxMPSJmdWxsIixyKTsoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw5MTc2OCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJ0aGVuImluIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRoZW59T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJpc1RoZW5hYmxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KX0sOTQ4NzksKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e2Rpc3BhdGNoQXBwUm91dGVyQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHVzZUFjdGlvblF1ZXVlOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIG8gaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixvLHtlbnVtZXJhYmxlOiEwLGdldDpyW29dfSk7bGV0IHU9ZS5yKDQ0MDY2KS5fKGUucig3NTIwMSkpLGk9ZS5yKDkxNzY4KSxhPW51bGw7ZnVuY3Rpb24gbChlKXtpZihudWxsPT09YSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU2NjgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7YShlKX1mdW5jdGlvbiBzKGUpe2xldFt0LG5dPXUuZGVmYXVsdC51c2VTdGF0ZShlLnN0YXRlKTthPXQ9PmUuZGlzcGF0Y2godCxuKTtsZXQgcj0oMCx1LnVzZU1lbW8pKCgpPT50LFt0XSk7cmV0dXJuKDAsaS5pc1RoZW5hYmxlKShyKT8oMCx1LnVzZSkocik6cn0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwzMDkzMSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiY2FsbFNlcnZlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7bGV0IHI9ZS5yKDc1MjAxKSxvPWUucig1OTQzMCksdT1lLnIoOTQ4NzkpO2FzeW5jIGZ1bmN0aW9uIGkoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKG4saSk9PnsoMCxyLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCx1LmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTpvLkFDVElPTl9TRVJWRVJfQUNUSU9OLGFjdGlvbklkOmUsYWN0aW9uQXJnczp0LHJlc29sdmU6bixyZWplY3Q6aX0pfSl9KX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw4OTU5NCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO2xldCByO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiZmluZFNvdXJjZU1hcFVSTCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/assets/insert-main-2c12d9cc3ded20e8cf09a901b86f5c68.js","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:47.510Z","timestamp":1785126647510,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /assets/insert-main-2c12d9cc3ded20e8cf09a901b86f5c68.js HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\ncontent-type: application/javascript\r\ncontent-length: 27314\r\nserver: cloudflare\r\nlast-modified: Thu, 15 Jan 2026 08:47:26 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\netag: \"6968a99e-6ab2\"\r\ncontent-encoding: gzip\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\nage: 2153916\r\naccept-ranges: bytes\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=QfaOMnGJSWo5qXfOYt5dKtV9ZnEe4n2F6pSeyOcKUU9%2BqrWOh1dGCdjSbPyn0qu8nL%2BV1pz%2B2MOqzN7P45375FlpbQIEARk4KJqMf2EqZugSz1xkFM6G19W%2F8YoFvmMpu2%2Bkgw%3D%3D\"}]}\r\ncf-ray: a218e92af8a9b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":83491,"size_decoded":28278,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65533), with no line terminators","md5":"9b47be60a9205427afaa3db67511ed3a","sha1":"13aba22e343283634526ffa15ffb2ec1e770502b","sha256":"4b15578d1c420a58c1c41c4a88728a887af2540cedcd064f058f92b64299d677","sha512":"7493fe9f50f66a520da4224a3514ee9f8030fae1d79708d17be392c168604c530cf7551f4d8d56659e6d3d59844f053e5b48bfc788962e2f1babc627a54a9d77","ssdeep":"1536:a6VmkhM1hDaYGcvezlk5c6w8N6Od9T2KBjtrEjv4SpkHBKlqWfw2:ZQc4yk5HKp5ffL","tlshash":"898329897040343b0aeb21b6357f310a213fe2696e495460b53ad7d07e7ae5b621bf7c","first_seen":"2026-01-15T11:14:47.62677Z","last_seen":"2026-07-27T08:03:47.472513Z","times_seen":795,"resource_available":true,"data":"IWZ1bmN0aW9uKGUpe25ldyBEYXRlO3ZhciBEPSExO3RyeXt2YXIgTD1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtEPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0UGFzc2l2ZSIsbnVsbCxMKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmUiLG51bGwsTCl9Y2F0Y2goZSl7fXZhciBXLHEsaj0vKFxiKGh0dHBzP3xmdHApOlwvXC9bLUEtWjAtOVx1MDQwMC1cdTA0RkYrJkAkI1wvJVxbXF0/PX5ffCE6LC47XSpbLUEtWjAtOVx1MDQwMC1cdTA0RkYrJkAkI1wvJVxbXF09fl98XSkvZ2ltLHo9LygoW2EtekEtWjAtOVx1MDQwMC1cdTA0RkZcLVxfXC5dKStAW2EtekEtWlx1MDQwMC1cdTA0RkZcX10rPyhcLlthLXpBLVpcdTA0MDAtXHUwNEZGXXsyLDZ9KSspL2dpbSx3PXttRW1wdHlGcmFnbWVudDpmdW5jdGlvbihlKXtyZXR1cm4gZT93Lm0oKS5mcmFnbWVudCh7a2V5OmV9LFtdKTp2b2lkIDB9LG06ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm0mJm0ucmVkcmF3P3dpbmRvdy5tOndpbmRvdy5fX21fX30sbVJlZHJhdzpmdW5jdGlvbigpe3dpbmRvdy5jaGFwb3J0LmdldENoYXRNYW5hZ2VyKCkucmVkcmF3QWxsJiZ3aW5kb3cuY2hhcG9ydC5nZXRDaGF0TWFuYWdlcigpLnJlZHJhd0FsbCgpLHcubSgpLnJlZHJhdygpfSxjbGFzc01hcFRvU3RyaW5nOmZ1bmN0aW9uKGUpe3ZhciB0LG49W107Zm9yKHQgaW4gZSllLmhhc093blByb3BlcnR5KHQpJiZlW3RdJiZuLnB1c2godCk7cmV0dXJuIG4uam9pbigiICIpfSxpc0RldmljZUlPUzpmdW5jdGlvbigpe3JldHVybiF3aW5kb3cuTVNTdHJlYW0mJigvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8LTEhPT1bIk1hY0ludGVsIiwiaVBob25lIl0uaW5kZXhPZihuYXZpZ2F0b3IucGxhdGZvcm0pJiYxPG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyl9LGlzRGV2aWNlQW5kcm9pZDpmdW5jdGlvbigpe3JldHVybi9BbmRyb2lkLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhd2luZG93Lk1TU3RyZWFtfSxpc1dpbmRvd3NPUzpmdW5jdGlvbigpe3JldHVybi9XaW4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LGlzTWFjT1M6ZnVuY3Rpb24oKXtyZXR1cm4vTWFjLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfSxlc2NhcGVIdG1sOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/IiI6KGU9U3RyaW5nKGUpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMwMzk7IiksdD9lOmUucmVwbGFjZSgvPi9nLCImZ3Q7IikpfSx1bkVzY2FwZUh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6U3RyaW5nKGUpLnJlcGxhY2UoLyZhbXA7L2csIiYiKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mcXVvdDsvZywnIicpLnJlcGxhY2UoLyYjMD8zOTsvZywiJyIpfSxkZWVwR2V0OmZ1bmN0aW9uKGUsdCl7aWYodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO2Zvcih2YXIgbj1lLG89MCxhPXQubGVuZ3RoO288YTtvKyspe2lmKCFuKXJldHVybjtuPW5bdFtvXV19cmV0dXJuIG59fSxkZWVwU2V0OmZ1bmN0aW9uKGUsdCxuKXtpZighZXx8Im9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiZGVlcFNldCByZXF1aXJlcyBhbiBvYmplY3QiKTtpZihlJiZ0JiYwIT09dC5sZW5ndGgpe2Zvcih2YXIgbyxhPSh0PXQuY29uY2F0KFtdKSkucG9wKCksaT0wLHM9dC5sZW5ndGg7aTxzO2krKyl2b2lkIDAhPT1lW289dFtpXV0mJm51bGwhPT1lW29dfHwoZVtvXT17fSksZT1lW29dO3JldHVybiBlW2FdPW59fSxnZXRUcmFuc2xhdGVkVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5P3dpbmRvdy5pMThuLnRyYW5zbGF0ZS5hcHBseShudWxsLGUpOlN0cmluZyhlKX0sZW5zdXJlUHJvdG9jb2w6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgZT8wPT09ZS5pbmRleE9mKCJodHRwIik/ZToiaHR0cDovLyIrZTpudWxsfSxiclRvTmw6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6U3RyaW5nKGUpLnJlcGxhY2UoLzxicj4vZywiXG4iKX0sbmxUb0JyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOlN0cmluZyhlKS5yZXBsYWNlKC9cbi9nLCI8YnI+Iil9LG5sTmxUb1A6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6KCI8cD4iK1N0cmluZyhlKS5yZXBsYWNlKC9cblxuL2csIjwvcD48cD4iKSsiPC9wPiIpLnJlcGxhY2UoLzxwPjxcL3A+L2csIlxuXG4iKX0sb246ZnVuY3Rpb24oZSx0LG4sbyl7ZS5hZGRFdmVudExpc3RlbmVyP2UuYWRkRXZlbnRMaXN0ZW5lcih0LG4sRCYmb3x8ITEpOmUuYXR0YWNoRXZlbnQoIm9uIit0LG4pfSxvZmY6ZnVuY3Rpb24oZSx0LG4sbyl7ZS5yZW1vdmVFdmVudExpc3RlbmVyP2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sRCYmb3x8ITEpOmUuZGV0YWNoRXZlbnQmJmUuZGV0YWNoRXZlbnQoIm9uIit0LG4pfSxvbmNlOmZ1bmN0aW9uKHQsbixvKXt3Lm9uKHQsbixmdW5jdGlvbiBlKCl7dy5vZmYodCxuLGUpO28uYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LGhhc0Nzc0NsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuISF0JiYtMSE9dy5fZ2V0Q3NzQ2xhc3NOYW1lcyhlKS5pbmRleE9mKHQpfSxhZGRDc3NDbGFzczpmdW5jdGlvbihlLHQpe3cuaGFzQ3NzQ2xhc3MoZSx0KXx8KGUuY2xhc3NOYW1lKz0oZS5jbGFzc05hbWUubGVuZ3RoPyIgIjoiIikrdCl9LHJlbW92ZUNzc0NsYXNzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dy5fZ2V0Q3NzQ2xhc3NOYW1lcyhlKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSk7dy5fc2V0Q3NzQ2xhc3NOYW1lcyhlLG4pfSxyZXBsYWNlQ3NzQ2xhc3M6ZnVuY3Rpb24oZSx0LG4sbyl7dmFyIGE9dy5fZ2V0Q3NzQ2xhc3NOYW1lcyhlKSx0PWEuaW5kZXhPZih0KSxpPWEuaW5kZXhPZihuKTstMSE9PXQ/KGFbdF09bix3Ll9zZXRDc3NDbGFzc05hbWVzKGUsYSkpOm8mJi0xPT09aSYmKGEucHVzaChuKSx3Ll9zZXRDc3NDbGFzc05hbWVzKGUsYSkpfSx0b2dnbGVDc3NDbGFzczpmdW5jdGlvbihlLHQsbil7dmFyIG89Im9iamVjdCI9PXR5cGVvZiB0P3Q6e307Zm9yKHQgaW4ib2JqZWN0IiE9dHlwZW9mIHQmJihvW3RdPW4pLG8pby5oYXNPd25Qcm9wZXJ0eSh0KSYmKHZvaWQgMD09PShuPSJmdW5jdGlvbiI9PXR5cGVvZihuPW9bdF0pP24oKTpuKT93Lmhhc0Nzc0NsYXNzKGUsdCk/dy5yZW1vdmVDc3NDbGFzcyhlLHQpOncuYWRkQ3NzQ2xhc3MoZSx0KTpuP3cuYWRkQ3NzQ2xhc3MoZSx0KTp3LnJlbW92ZUNzc0NsYXNzKGUsdCkpfSxjc3NIaWRlOmZ1bmN0aW9uKGUpe3cuaGFzQ3NzQ2xhc3MoZSwiY2hhcG9ydC1zaG93Iik/dy5yZXBsYWNlQ3NzQ2xhc3MoZSwiY2hhcG9ydC1zaG93IiwiY2hhcG9ydC1oaWRlIik6dy5hZGRDc3NDbGFzcyhlLCJjaGFwb3J0LWhpZGUiKX0sY3NzU2hvdzpmdW5jdGlvbihlKXt3Lmhhc0Nzc0NsYXNzKGUsImNoYXBvcnQtaGlkZSIpP3cucmVwbGFjZUNzc0NsYXNzKGUsImNoYXBvcnQtaGlkZSIsImNoYXBvcnQtc2hvdyIpOncuYWRkQ3NzQ2xhc3MoZSwiY2hhcG9ydC1zaG93Iil9LF9nZXRDc3NDbGFzc05hbWVzOmZ1bmN0aW9uKGUpe3JldHVybiBlLmNsYXNzTmFtZSYmZS5jbGFzc05hbWUuc3BsaXQ/ZS5jbGFzc05hbWUuc3BsaXQoIiAiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIiIhPT1lfSk6W119LF9zZXRDc3NDbGFzc05hbWVzOmZ1bmN0aW9uKGUsdCl7ZS5jbGFzc05hbWU9dC5qb2luKCIgIil9LF9nZXRDc3NDbGFzc0luZGV4OmZ1bmN0aW9uKGUsdCl7cmV0dXJuKCIgIitlLmNsYXNzTmFtZSkuaW5kZXhPZigiICIrdCl9LF9pc0lmcmFtZTpudWxsLGlzSWZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLl9pc0lmcmFtZSYmKHRoaXMuX2lzSWZyYW1lPXdpbmRvdy5wYXJlbnQhPT13aW5kb3cmJi0xPT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiZGlyZWN0PTEiKSksdGhpcy5faXNJZnJhbWV9LHBvc3RNZXNzYWdlVG9wSWZJZnJhbWU6ZnVuY3Rpb24oZSl7dy5pc0lmcmFtZSgpJiZ3LmRvV2hlbldpbmRvd1JlYWR5KGZ1bmN0aW9uKCl7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShlLCIqIil9KX0sZG9XaGVuV2luZG93UmVhZHk6ZnVuY3Rpb24odCl7dmFyIG47ZnVuY3Rpb24gZShlKXtufHwobj0hMCx0KGUpKX0ibG9hZGluZyIhPT13aW5kb3cuZG9jdW1lbnQucmVhZHlTdGF0ZT93LmRvTmV4dFRpY2sodCk6KG49ITEsdy5vbih3aW5kb3csIkRPTUNvbnRlbnRMb2FkZWQiLGUpLHcub24od2luZG93LCJsb2FkIixlKSl9LGRvTmV4dFRpY2s6ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDApfSxjcmVhdGVFdmVudDpmdW5jdGlvbihlLHQsbil7dmFyIG87cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEV2ZW50P289bmV3IEV2ZW50KGUse2J1YmJsZXM6dCxjYW5jZWxhYmxlOm59KToobz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSkuaW5pdEV2ZW50KGUsdCxuKSxvfSx0cmlnZ2VyUmVzaXplOmZ1bmN0aW9uKGUpe3ZhciB0PXcuY3JlYXRlRXZlbnQoImF1dG9zaXplOnVwZGF0ZSIsITAsITEpO2UuZGlzcGF0Y2hFdmVudCh0KX0sc2V0Q3Vyc29yVG9FbmQ6ZnVuY3Rpb24oZSl7ZS5zZXRTZWxlY3Rpb25SYW5nZShlLnZhbHVlLmxlbmd0aCxlLnZhbHVlLmxlbmd0aCl9LGNsZWFyOmZ1bmN0aW9uKGUpe2lmKHcuaXNJRSgpKWZvcig7ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQoZS5sYXN0Q2hpbGQpO2Vsc2UgZS5pbm5lckhUTUw9IiJ9LHNlbmRYbWxIdHRwUmVxdWVzdDpmdW5jdGlvbihlLHQpe3ZhciBuLG89bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKG8ub3Blbih0PyJQT1NUIjoiR0VUIixlLCEwKSwib2JqZWN0Ij09dHlwZW9mIHQmJnQuY29uc3RydWN0b3IhPT1BcnJheSl7Zm9yKHZhciBhIGluIG49W10sdCl0Lmhhc093blByb3BlcnR5KGEpJiZuLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQodFthXSkpO3Q9bn10JiZ0LmNvbnN0cnVjdG9yPT09QXJyYXkmJih0PXQuam9pbigiJiIpKSxvLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLG8uc2VuZCgic3RyaW5nIj09dHlwZW9mIHQ/dDp2b2lkIDApfSxyZWdpc3RlckVycm9yOmZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGksczt3aW5kb3cuY2hhcG9ydCYmKGE9d2luZG93LmNoYXBvcnQuaXNXaWRnZXQ/IndpZGdldCI6d2luZG93LmNoYXBvcnQuX19pbmNsdWRlZD8iaW5zZXJ0IjoiYXBwIixlPShvPSJjb2xubyJpbiBlP2U6bnVsbCk/by5lcnJvcjplLHM9byYmby5maWxlbmFtZXx8ZSYmZS5maWxlTmFtZXx8IiIsdD1vJiZvLmxpbmVub3x8ZSYmZS5saW5lTnVtYmVyfHwiIixuPW8mJm8uY29sbm98fGUmJmUuY29sdW1uTnVtYmVyfHwiIixvPW8mJm8ubWVzc2FnZXx8ZSYmZS5tZXNzYWdlfHwiIixlPWUmJmUuc3RhY2t8fCIiLHMmJigwPT09cy5pbmRleE9mKCJjaHJvbWU6Ly8iKXx8MD09PXMuaW5kZXhPZigibW96LWV4dGVuc2lvbjovLyIpfHwwPT09cy5pbmRleE9mKCJjaHJvbWUtZXh0ZW5zaW9uOi8vIikpfHwoYT1bInNvdXJjZT0iK2EsInVhPSIrZW5jb2RlVVJJQ29tcG9uZW50KG5hdmlnYXRvci51c2VyQWdlbnQuc3Vic3RyaW5nKDAsMjUwKSksInVybD0iK2VuY29kZVVSSUNvbXBvbmVudChzLnN1YnN0cmluZygwLDUwKSksImxuPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh0KS5zdWJzdHJpbmcoMCwyMCkpLCJjb2w9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pLnN1YnN0cmluZygwLDIwKSksIm1lc3NhZ2U9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG8pLnN1YnN0cmluZygwLDEwMCkpLCJzdGFjaz0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZSkuc3Vic3RyaW5nKDAsMWUzKSldLHdpbmRvdy5jaGFwb3J0LmlzV2lkZ2V0JiZ3aW5kb3cuY2hhcG9ydC5nZXRDaGF0TWFuYWdlcigpJiYod2luZG93LmNoYXBvcnQuZ2V0Q2hhdE1hbmFnZXIoKSYmKGk9d2luZG93LmNoYXBvcnQuZ2V0Q2hhdE1hbmFnZXIoKS5nZXRMb2NhdGlvbigpKSYmaS5ocmVmJiZhLnB1c2goImh1cmw9IitlbmNvZGVVUklDb21wb25lbnQoaS5ocmVmLnN1YnN0cmluZygwLDUwKSkpLHdpbmRvdy5jaGFwb3J0LmdldEF1dGhNYW5hZ2VyKCkmJihzPXdpbmRvdy5jaGFwb3J0LmdldEF1dGhNYW5hZ2VyKCkuc2l0ZUlkKSYmYS5wdXNoKCJhcHBpZD0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcocykuc3Vic3RyaW5nKDAsNTApKSksdy5pc0lmcmFtZSgpfHxhLnB1c2goImRpcmVjdD10cnVlIiksMCE9PShpPWRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLmluZGV4T2YoImh0dHBzOi8vYXBwLmNoYXBvcnQuY29tIikpJiZhLnB1c2goImxvY2F0aW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkuc3Vic3RyaW5nKDAsMTAwKSkpLHcuc2VuZFhtbEh0dHBSZXF1ZXN0KCJodHRwczovL2FwcC5jaGFwb3J0LmNvbS9lcnJvci1yZXBvcnQiLGEpKSl9LGlzSUU6ZnVuY3Rpb24oKXt2YXIgZSx0O3JldHVybiB2b2lkIDA9PT13Ll9pZSYmKHcuX2llPShlPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LDA8KHQ9ZS5pbmRleE9mKCJNU0lFICIpKT9wYXJzZUludChlLnN1YnN0cmluZyh0KzUsZS5pbmRleE9mKCIuIix0KSksMTApOjA8ZS5pbmRleE9mKCJUcmlkZW50LyIpPyh0PWUuaW5kZXhPZigicnY6IikscGFyc2VJbnQoZS5zdWJzdHJpbmcodCszLGUuaW5kZXhPZigiLiIsdCkpLDEwKSk6MDwodD1lLmluZGV4T2YoIkVkZ2UvIikpJiZwYXJzZUludChlLnN1YnN0cmluZyh0KzUsZS5pbmRleE9mKCIuIix0KSksMTApKSksdy5faWV9LHJlbmRlcjoocT1bXSxILmZsdXNoPWZ1bmN0aW9uKCl7VyYmVGUoVyksVigpfSxIKSx0UmVuZGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIGZ1bmN0aW9uKCl7bj1ufHx3LnJlbmRlcihlLG8pfTtmdW5jdGlvbiBvKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj12b2lkIDB9fSxpbnNlcnRBdEN1cnNvcjpmdW5jdGlvbihlLHQpe3ZhciBuLG87ZG9jdW1lbnQuc2VsZWN0aW9uPyhlLmZvY3VzKCksZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4dD10KTplLnNlbGVjdGlvblN0YXJ0fHwiMCI9PWUuc2VsZWN0aW9uU3RhcnQ/ZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJpbnNlcnRUZXh0Iik/ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImluc2VydFRleHQiLCExLHQpOihuPWUuc2VsZWN0aW9uU3RhcnQsbz1lLnNlbGVjdGlvbkVuZCxlLnZhbHVlPWUudmFsdWUuc3Vic3RyaW5nKDAsbikrdCtlLnZhbHVlLnN1YnN0cmluZyhvLGUudmFsdWUubGVuZ3RoKSxlLnNlbGVjdGlvblN0YXJ0PW4rdC5sZW5ndGgsZS5zZWxlY3Rpb25FbmQ9bit0Lmxlbmd0aCk6ZS52YWx1ZSs9dH0sZ2V0VGV4dEFmdGVySW5zZXJ0OmZ1bmN0aW9uKGUsdCl7ZT12b2lkIDAhPT1lLnNlbGVjdGlvblN0YXJ0P2UudmFsdWUuc3Vic3RyaW5nKDAsZS5zZWxlY3Rpb25TdGFydCkrdCtlLnZhbHVlLnN1YnN0cmluZyhlLnNlbGVjdGlvbkVuZCxlLnZhbHVlLmxlbmd0aCk6ZS52YWx1ZSt0O3JldHVybiBlfSxvblRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oZSx0LG4pe3cub24oZSwidHJhbnNpdGlvbmVuZCIsaSksdy5vbihlLCJ3ZWJraXRUcmFuc2l0aW9uRW5kIixpKSx3Lm9uKGUsIm1zVHJhbnNpdGlvbkVuZCIsaSksdy5vbihlLCJvVHJhbnNpdGlvbkVuZCIsaSksbiYmKG89c2V0VGltZW91dChpLG4pKTt2YXIgbyxhPSExO2Z1bmN0aW9uIGkoKXthfHwoYT0hMCx0KCkscygpKX1mdW5jdGlvbiBzKCl7dy5vZmYoZSwidHJhbnNpdGlvbmVuZCIsaSksdy5vZmYoZSwid2Via2l0VHJhbnNpdGlvbkVuZCIsaSksdy5vZmYoZSwibXNUcmFuc2l0aW9uRW5kIixpKSx3Lm9mZihlLCJvVHJhbnNpdGlvbkVuZCIsaSksbyYmY2xlYXJUaW1lb3V0KG8pfXJldHVybiBzfSxvbkFuaW1hdGlvbkVuZDpmdW5jdGlvbihlLHQsbil7dy5vbihlLCJhbmltYXRpb25lbmQiLGkpLHcub24oZSwid2Via2l0QW5pbWF0aW9uRW5kIixpKSx3Lm9uKGUsIk1TQW5pbWF0aW9uRW5kIixpKSx3Lm9uKGUsIm9hbmltYXRpb25lbmQiLGkpLG4mJihvPXNldFRpbWVvdXQoaSxuKSk7dmFyIG8sYT0hMTtmdW5jdGlvbiBpKCl7YXx8KGE9ITAsdCgpLHMoKSl9ZnVuY3Rpb24gcygpe3cub2ZmKGUsImFuaW1hdGlvbmVuZCIsaSksdy5vZmYoZSwid2Via2l0QW5pbWF0aW9uRW5kIixpKSx3Lm9mZihlLCJNU0FuaW1hdGlvbkVuZCIsaSksdy5vZmYoZSwib2FuaW1hdGlvbmVuZCIsaSksbyYmY2xlYXJUaW1lb3V0KG8pfXJldHVybiBzfSxpc092ZXJsYXlTaG93bjohMSxvdmVybGF5OmZ1bmN0aW9uKG8pe289b3x8e307dmFyIGUsdCxuPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpPW8uYnV0dG9uc3x8e307cmV0dXJuIHZvaWQgMD09PWkudG9wTGVmdCYmKGkudG9wTGVmdD17Y2xhc3M6ImNoYXBvcnQtY2xvc2UgdmlzaWJsZSIsZm46c30pLGEuY2xhc3NOYW1lPW8uY2xhc3NOYW1lfHwiY2hhcG9ydC1vdmVybGF5IixhLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iY2hhcG9ydC1vdmVybGF5LWNvbnRlbnRzLXdyYXBwZXIiPjxkaXYgY2xhc3M9ImNoYXBvcnQtb3ZlcmxheS1jb250ZW50cyI+PC9kaXY+PC9kaXY+JyxvLmNvbnRlbnRzJiYodD1hLnF1ZXJ5U2VsZWN0b3IoIi5jaGFwb3J0LW92ZXJsYXktY29udGVudHMiKSxvLmNvbnRlbnRzIGluc3RhbmNlb2YgTm9kZT90LmFwcGVuZENoaWxkKG8uY29udGVudHMpOnQuaW5uZXJIVE1MPW8uY29udGVudHMpLGkudG9wTGVmdCYmKChlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc05hbWU9KGkudG9wTGVmdC5jbGFzc3x8IiIpKyIgY2hhcG9ydC1vdmVybGF5LXRvcCBjaGFwb3J0LW92ZXJsYXktbGVmdCIsdy5vbihlLCJjbGljayIsaS50b3BMZWZ0LmZuLmJpbmQobnVsbCxzKSksaS50b3BMZWZ0LmNvbnRlbnRzJiYoZS5pbm5lckhUTUw9aS50b3BMZWZ0LmNvbnRlbnRzKSxhLmFwcGVuZENoaWxkKGUpKSxpLmJvdHRvbVJpZ2h0JiYoKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmNsYXNzTmFtZT0oaS5ib3R0b21SaWdodC5jbGFzc3x8IiIpKyIgY2hhcG9ydC1vdmVybGF5LWJvdHRvbSBjaGFwb3J0LW92ZXJsYXktcmlnaHQiLHcub24oZSwiY2xpY2siLGkuYm90dG9tUmlnaHQuZm4uYmluZChudWxsLHMpKSxpLmJvdHRvbVJpZ2h0LmNvbnRlbnRzJiYoZS5pbm5lckhUTUw9aS5ib3R0b21SaWdodC5jb250ZW50cyksYS5hcHBlbmRDaGlsZChlKSksbi5hcHBlbmRDaGlsZChhKSwhMSE9PW8ub3ZlcmxheUNsaWNrSGlkZSYmdy5vbmNlKGEsImNsaWNrIixzKSx3LmlzT3ZlcmxheVNob3duPSEwLHcucmVuZGVyKG51bGwsZnVuY3Rpb24oKXt3LmFkZENzc0NsYXNzKGEsInNob3ciKX0pLG8ua2V5cyYmdy5vbih3aW5kb3csImtleWRvd24iLHIpLHM7ZnVuY3Rpb24gcygpe3cuaXNPdmVybGF5U2hvd249ITEsdy5yZW5kZXIobnVsbCxmdW5jdGlvbigpe3cub25UcmFuc2l0aW9uRW5kKGEsZnVuY3Rpb24oKXthLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKX0sMWUzKSx3LnJlbW92ZUNzc0NsYXNzKGEsInNob3ciKX0pLG8ua2V5cyYmdy5vZmYod2luZG93LCJrZXlkb3duIixyKSxvLm9uSGlkZSYmby5vbkhpZGUoKX1mdW5jdGlvbiByKGUpe3ZhciB0PXdpbmRvdy5ldmVudD9lLmtleUNvZGU6ZS53aGljaCxuPSExO2lmKC0xIT09WzEzLDI3XS5pbmRleE9mKHQpKXN3aXRjaCh0KXtjYXNlIDEzOm8ua2V5cyYmby5rZXlzLmVudGVyJiYobj0hMCxvLmtleXMuZW50ZXIocykpO2JyZWFrO2Nhc2UgMjc6by5rZXlzJiZvLmtleXMuZXNjJiYobj0hMCxvLmtleXMuZXNjKHMpKX1uJiZlLnByZXZlbnREZWZhdWx0KCl9fSxnZXRSb290RG9tYWluOmZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKX0sZ2V0Q3JlZHM6ZnVuY3Rpb24oZSx0KXt2YXIgbixvPSJjaGFwb3J0LSIrZSxvPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoPzpefDsgKSIrby5yZXBsYWNlKC8oW1wuJD8qfHt9XChcKVxbXF1cXFwvXCteXSkvZywiXFwkMSIpKyI9KFteO10qKSIpKSxvPW8/ZGVjb2RlVVJJQ29tcG9uZW50KG9bMV0pOnZvaWQgMDtyZXR1cm4gbj0hKG49byYmMj09PShvPW8uc3BsaXQoIi8iKSkubGVuZ3RoP3tpZDpvWzBdLHRva2VuOm9bMV19Om4pJiZ0P3cuY3JlYXRlTmV3Q3JlZHMoZSk6bn0sY3JlYXRlTmV3Q3JlZHM6ZnVuY3Rpb24oZSx0LG4sbyl7dmFyIGU9ImNoYXBvcnQtIitlLGE9KHZvaWQgMD09PW4mJihuPSEwKSwodD10fHx7fSkuaWR8fCh0LmlkPXcuZ2V0SWQoKSksdC50b2tlbnx8KHQudG9rZW49dy5nZXRUb2tlbigpKSxbdC5pZCx0LnRva2VuXS5qb2luKCIvIikpLGk9bmV3IERhdGUoKG5ldyBEYXRlKS5nZXRUaW1lKCkrMzExMDRlNik7cmV0dXJuIG98fChkb2N1bWVudC5jb29raWU9ZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI7cGF0aD0vIisobj8iO2V4cGlyZXM9IitpLnRvVVRDU3RyaW5nKCk6IiIpLCExIT09byYmKG89dy5nZXRSb290RG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpKSxvJiYoZG9jdW1lbnQuY29va2llPWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChhKSsiO2RvbWFpbj0iK28rIjtwYXRoPS8iKyhuPyI7ZXhwaXJlcz0iK2kudG9VVENTdHJpbmcoKToiIikpLHR9LGNsZWFyQ3JlZHM6ZnVuY3Rpb24oZSx0KXtlPSJjaGFwb3J0LSIrZTt0fHwoZG9jdW1lbnQuY29va2llPWUrIj07cGF0aD0vO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQiLCExIT09dCYmKHQ9dy5nZXRSb290RG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpKSx0JiYoZG9jdW1lbnQuY29va2llPWUrIj07ZG9tYWluPSIrdCsiO3BhdGg9LztleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UIil9LGdldElkOmZ1bmN0aW9uKCl7cmV0dXJuInh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLGZ1bmN0aW9uKGUpe3ZhciB0PTE2Kk1hdGgucmFuZG9tKCl8MDtyZXR1cm4oIngiPT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pfSxnZXRUb2tlbjpmdW5jdGlvbigpe2Zvcih2YXIgZT1pKDM1LDQ1KSx0PSIiLG49IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IixvPW4ubGVuZ3RoLGE9MDthPGU7KythKXQrPW5baSgwLG8tMSldO3JldHVybiB0O2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0LWUrMSkpK2V9fSx1cmxzVG9MaW5rczpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjpTdHJpbmcoZSkucmVwbGFjZShqLGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybic8YSBocmVmPSInK2UrJyIgdGl0bGU9IicrZSsnIiB0YXJnZXQ9Il9ibGFuayI+JysoNDc8dD9lLnN1YnN0cmluZygwLDM1KSsiLi4uIitlLnN1YnN0cmluZyh0LTEwKTplKSsiPC9hPiJ9KS5yZXBsYWNlKHosJzxhIGhyZWY9Im1haWx0bzokMSIgdGFyZ2V0PSJfYmxhbmsiPiQxPC9hPicpfSxpc0NvbG9yTGlnaHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9cGFyc2VJbnQoZS5zbGljZSgxLDMpLDE2KSxuPXBhcnNlSW50KGUuc2xpY2UoMyw1KSwxNiksZT1wYXJzZUludChlLnNsaWNlKDUsNyksMTYpO3JldHVybiA0NTMwMDx0KnQqLjI5OStuKm4qLjU4NytlKmUqLjExNH0saGV4VG9SR0JBOmZ1bmN0aW9uKGUsdCl7dmFyIG49cGFyc2VJbnQoZS5zbGljZSgxLDMpLDE2KSxvPXBhcnNlSW50KGUuc2xpY2UoMyw1KSwxNiksZT1wYXJzZUludChlLnNsaWNlKDUsNyksMTYpO3JldHVybiB0PyJyZ2JhKCIrbisiLCIrbysiLCIrZSsiLCIrdCsiKSI6InJnYigiK24rIiwiK28rIiwiK2UrIikifSx3cmFwV2l0aFNwYW46ZnVuY3Rpb24oZSl7cmV0dXJuJzxzcGFuIGNsYXNzPSJ0YWciPicrZSsiPC9zcGFuPiJ9LGdldFBvc3RmaXhlZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ/ZSsobnx8Il8iKSt0OmV9LGNhcGl0YWxpemU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0sZGVib3VuY2U6ZnVuY3Rpb24obixvKXtmdW5jdGlvbiBlKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gY2xlYXJUaW1lb3V0KGEpLGE9c2V0VGltZW91dChmdW5jdGlvbigpe2E9bnVsbCxpPW4uYXBwbHkoZSx0KX0sbyksaX12YXIgYSxpO3JldHVybiBlLmltbWVkaWF0ZT1mdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQoYSksbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGV9LGdldFRyYW5zZmVyVXJsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZ2V0VXBsb2FkVXJsKGUsIi90cmFuc2ZlcnMvIit0KX0sZ2V0RmF2aWNvblVybDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXRVcGxvYWRVcmwoZSwiL3NpdGUtZmF2aWNvbiIpfSxnZXRMb2dvVXJsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldFVwbG9hZFVybChlLCIvc2l0ZS1sb2dvL3g2MCIpfSxnZXRPcGVyYXRvckltYWdlVG1wVXJsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldFVwbG9hZFVybChlLCIvb3BlcmF0b3ItaW1hZ2VzL3RtcCIpfSxnZXRPcGVyYXRvckltYWdlVXJsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldFVwbG9hZFVybChlLCIvb3BlcmF0b3ItaW1hZ2VzIil9LGdldFVwbG9hZFVybDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmdldEJhc2VVcGxvYWRVcmwoKSt0KyIvIitlbmNvZGVVUklDb21wb25lbnQoZSl9LGdldEJhc2VVcGxvYWRVcmw6ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20vdXBsb2FkcyJ9fTtmdW5jdGlvbiBIKGUsdCl7cmV0dXJuIHEucHVzaCh7aW5pdDplLHVwZGF0ZTp0fSksVz1XfHxSZShWKX1mdW5jdGlvbiBWKCl7Vz12b2lkIDA7dmFyIGU9cTtxPVtdO2Zvcih2YXIgdD1lLmxlbmd0aCxuPVtdLG89MDtvPHQ7bysrKW4ucHVzaChlW29dLmluaXQ/ZVtvXS5pbml0KCk6bnVsbCk7Zm9yKG89MDtvPHQ7bysrKWVbb10udXBkYXRlKG5bb10pfXcubVJlZHJhd0FzeW5jPXcudFJlbmRlcihudWxsLHcubVJlZHJhdyk7dmFyIHY9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZS5jaGFwb3J0Q29uZmlnJiYoZS5jaGFwb3J0Q29uZmlnPWZ1bmN0aW9uKHQpe3ZhciBuPXt9O3JldHVyblsiYW5hbHl0aWNzIiwiYXBwZWFyYW5jZSIsImFwcF9pZCIsImFwcElkIiwiYXNzaWdubWVudHMiLCJjbG9zZUJ1dHRvbiIsImNvdW50cmllcyIsImRldmljZXMiLCJoaXN0b3J5IiwiaW5pdCIsImludGVncmF0aW9uIiwibGFuZyIsImxhbmd1YWdlIiwibGF1bmNoZXIiLCJvcGVuSW4iLCJvcGVyYXRvcnMiLCJyZXNwb25zaXZlIiwic2Vzc2lvbiIsInNlcnZlciIsInNvY2tldCIsInRpdGxlIiwidHJpZ2dlcnMiLCJ1bnJlYWRzIiwidXNlSHRtbExhbmciLCJ2aXNpdG9yIiwidmlzaXRvckludGVncml0eUhhc2giXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZV09dFtlXX0pLG59KGUuY2hhcG9ydHx8InVuZGVmaW5lZCIhPXR5cGVvZiBfcHdzJiZfcHdzfHx7fSkpO3ZvaWQgMD09PWUuY2hhcG9ydENvbmZpZy5hcHBJZCYmdm9pZCAwIT09ZS5jaGFwb3J0Q29uZmlnLmFwcF9pZCYmKGUuY2hhcG9ydENvbmZpZy5hcHBJZD1lLmNoYXBvcnRDb25maWcuYXBwX2lkKTtyZXR1cm4gZS5jaGFwb3J0Q29uZmlnfShlKTtpZih2b2lkIDAhPT12LmFwcElkKXtMPWU7dmFyIGM9KGU9dikuX19nbG9iYWxOYW1lP0xbZS5fX2dsb2JhbE5hbWVdOkwuY2hhcG9ydDtpZih2b2lkIDAhPT1jJiYoZT1jKSYmIWUuX19pbmNsdWRlZCl7Yy5fX2Fzc2V0cyYmKGw9Yy5fX2Fzc2V0cyxkZWxldGUgYy5fX2Fzc2V0cyksYy5fX2luY2x1ZGVkPSEwO3ZhciBsLEcsRixKPSExLG89bnVsbCxkPW51bGwsWD13LmlzRGV2aWNlSU9TKCksJD13LmlzRGV2aWNlQW5kcm9pZCgpLHk9WHx8JCxZPSEwLGI9e30sWj1uZXcgRGF0ZSxLPW51bGwsUT0hMSxlZT0hMSxhPVtdLHRlPSExLG5lPSExLG9lPXtsZWZ0Om51bGwsdG9wOm51bGx9O2lmKG1uKHYuZGV2aWNlcyx3bigpKSl7dmFyIGFlPXY7aWYoYWUuZGV2aWNlcyYmYWUuZGV2aWNlcy5jb25maWdzKWZvcih2YXIgaWUsc2U9YWUuZGV2aWNlcy5jb25maWdzLHJlPXduKCksY2U9MCxsZT1yZS5sZW5ndGg7Y2U8bGU7KytjZSkoaWU9c2VbcmVbY2VdXSkmJiFmdW5jdGlvbiBlKHQsbil7Zm9yKHZhciBvIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShvKSYmKHRbb10mJiJvYmplY3QiPT10eXBlb2YgbltvXSYmIm9iamVjdCI9PXR5cGVvZiB0W29dP2UodFtvXSxuW29dKTp0W29dPW5bb10pfShhZSxpZSk7Y24odik7dmFyIFk9ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT12LnJlc3BvbnNpdmUpcmV0dXJuIHYucmVzcG9uc2l2ZTtmb3IodmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0YSIpLHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe3ZhciBvPWVbdF07aWYoInZpZXdwb3J0Ij09PW8uZ2V0QXR0cmlidXRlKCJuYW1lIikpe289by5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKTtpZihvJiYvd2lkdGhccyo9XHMqZGV2aWNlLXdpZHRoLy50ZXN0KG8pKXJldHVybiEwfX1yZXR1cm4hMX0oKSx1PXtsaXN0ZW5lcnM6e30sc3RhdGVzOnt9LHNldFN0YXRlOmZ1bmN0aW9uKGUpe2UuY29uc3RydWN0b3I9PT1BcnJheT9lLmZvckVhY2goZnVuY3Rpb24oZSl7dS5zZXRTdGF0ZShlKX0pOnZvaWQgMCE9PXRoaXMuc3RhdGVzW2VdJiYodGhpcy5zdGF0ZXNbZV09ITAsdGhpcy5lbWl0KGUpKX0saXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RhdGVzW2VdfSxleHBlY3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixvLGEsZT0oZT1lLmNvbnN0cnVjdG9yIT09QXJyYXk/W2VdOmUpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hdS5zdGF0ZXNbZV19KTswPT09ZS5sZW5ndGg/c2V0VGltZW91dCh0LDApOihuPXQsbz1bXS5jb25jYXQoZSksYT0hMSxvLmZvckVhY2goZnVuY3Rpb24odCl7dS5vbmNlKHQsZnVuY3Rpb24oKXt2YXIgZT1vLmluZGV4T2YodCk7LTEhPT1lJiZvLnNwbGljZShlLDEpLDAhPT1vLmxlbmd0aHx8YXx8KGE9ITAsbigpKX0pfSkpfSxyZXNldEdsb2JhbDpmdW5jdGlvbigpe3RoaXMuc3RhdGVzLnN0b3JhZ2VSZWFkeT0hMSx0aGlzLnN0YXRlcy5hcGlJbml0PSExLHRoaXMuc3RhdGVzLmdsb2JhbEluaXQ9ITEsdGhpcy5zdGF0ZXMuZGF0YVJlYWR5PSExLHRoaXMuc3RhdGVzLmRvbVJlYWR5PSExLHRoaXMuc3RhdGVzLmNzc1JlYWR5PSExLHRoaXMuc3RhdGVzLmFwcGVhcmFuY2VSZWFkeT0hMX0scmVzZXRTZXNzaW9uOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZXMuaW5pdGlhbFBhZ2VWaWV3UmVhZHk9ITEsdGhpcy5zdGF0ZXMuaWZyYW1lUmVhZHk9ITEsdGhpcy5zdGF0ZXMuaWZyYW1lTG9hZGluZz0hMSx0aGlzLnN0YXRlcy5jb25uZWN0aW9uUmVhZHk9ITEsdGhpcy5zdGF0ZXMuY29ubmVjdGluZz0hMSx0aGlzLnN0YXRlcy52aXNpdG9yUmVhZHk9ITEsdGhpcy5zdGF0ZXMudHJpZ2dlcnNSZWFkeT0hMSx0aGlzLnN0YXRlcy53aWRnZXRSZWFkeT0hMSx0aGlzLnN0YXRlcy5jaGF0UmVhZHk9ITEsdGhpcy5zdGF0ZXMuc2Vzc2lvbkluaXQ9ITEsdGhpcy5zdGF0ZXMuY2hhdFN0YXJ0ZWQ9ITF9fSxwPSh5byh1KSx1LnJlc2V0R2xvYmFsKCksdS5yZXNldFNlc3Npb24oKSx7bGlzdGVuZXJzOnt9LGlzVGFyZ2V0TWVzc2FnZTpmdW5jdGlvbihlKXtyZXR1cm4hKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUuZGF0YXx8MCE9PShlPWUuZGF0YSkuaW5kZXhPZigiOjpjcDoiKSYmMCE9PWUuaW5kZXhPZigiOjp3c2M6IikpfSxkaXNwYXRjaE1lc3NhZ2VzOmZ1bmN0aW9uKCl7dy5vbih3aW5kb3csIm1lc3NhZ2UiLFIodGhpcy5oYW5kbGVNZXNzYWdlLHRoaXMpKX0saGFuZGxlTWVzc2FnZTpmdW5jdGlvbihlKXt0cnl7aWYodGhpcy5pc1RhcmdldE1lc3NhZ2UoZSkmJmZ1bmN0aW9uKHQpeyJodHRwczovL2FwcC5jaGFwb3J0LmNvbSIhPT10Lm9yaWdpbiYmIWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiaWZyYW1lIG1lc3NhZ2UgaXMgaW52YWxpZDogIitlKyI7ICIrdC5kYXRhKX0oJ29yaWdpbiAiJyt0Lm9yaWdpbisnIiBpcyBub3QgYWxsb3dlZCcpO2lmKCF4KXJldHVybjt0LnNvdXJjZT09PXguY29udGVudFdpbmRvd3x8eC5zcmMmJjA9PT14LnNyYy5pbmRleE9mKHQub3JpZ2luKXx8dy5yZWdpc3RlckVycm9yKG5ldyBFcnJvcigibWVzc2FnZSBzb3VyY2UgZG9lcyBub3QgbWF0Y2ggaWZyYW1lLCBzb3VyY2U9Iit0Lm9yaWdpbisiLCBpZnJhbWU9Iit4LnNyYykpO3JldHVybiAxfShlKSl7dmFyIHQsbixvPWUuZGF0YSxhPTA9PT1vLmluZGV4T2YoIjo6Y3A6IiksaT0wPT09by5pbmRleE9mKCI6OmNwOnJlcXVlc3Q6Iikscz1udWxsO2lmKGkpcmV0dXJuLTE9PT0obj0obz1vLnJlcGxhY2UoIjo6Y3A6cmVxdWVzdDoiLCIiKSkuaW5kZXhPZigiOiIpKT90PW86KHQ9by5zdWJzdHIoMCxuKSxzPUpTT04ucGFyc2Uoby5zbGljZShuKzEpKSksTigicmVzcG9uc2U6Iit0LHRoaXMuZW1pdEFuZFdhaXQodCxzKSk7aWYoYSktMT09PShuPShvPW8uc2xpY2UoNSkpLmluZGV4T2YoIjoiKSk/dD1vOih0PW8uc3Vic3RyKDAsbikscz1KU09OLnBhcnNlKG8uc2xpY2UobisxKSkpO2Vsc2UgaWYoLTEhPT1vLmluZGV4T2YoIjo6d3NjOnN0eWxlczoiKSl0PSJzdHlsZXMiLHM9ZGVjb2RlVVJJQ29tcG9uZW50KG8ucmVwbGFjZSgiOjp3c2M6c3R5bGVzOiIsIiIpKTtlbHNlIGlmKC0xIT09by5pbmRleE9mKCI6OndzYzp1cGRhdGU6YWN0aXZpdHkiKSl0PSJ1cGRhdGUtYWN0aXZpdHkiO2Vsc2UgaWYoLTEhPT1vLmluZGV4T2YoIjo6d3NjOndpZGdldC1yZWFkeSIpKXQ9IndpZGdldC1yZWFkeSI7ZWxzZXtpZigtMSE9PW8uaW5kZXhPZigiOjp3c2M6dW5yZWFkOiIpKXJldHVybjstMSE9PW8uaW5kZXhPZigiOjp3c2M6dHJpZ2dlcnM6Iik/KHQ9InRyaWdnZXJzIixzPWRlY29kZVVSSUNvbXBvbmVudChvLnJlcGxhY2UoIjo6d3NjOnRyaWdnZXJzOiIsIiIpKSk6Ijo6d3NjOmNoZWNrOmV4cGFuZGVkIj09PW8/dD0iY2hlY2stZXhwYW5kZWQiOi0xIT09by5pbmRleE9mKCI6OndzYzpzZXNzaW9uOiIpPyh0PSJzZXNzaW9uIixzPWUuZGF0YS5yZXBsYWNlKCI6OndzYzpzZXNzaW9uOiIsIiIpKTotMSE9PW8uaW5kZXhPZigiOjp3c2M6dmlzaXRvci1pZDoiKT8odD0idmlzaXRvci1pZCIscz1vLnJlcGxhY2UoIjo6d3NjOnZpc2l0b3ItaWQ6IiwiIikpOiI6OndzYzp3aWRnZXQ6Y2xvc2UiPT09bz90PSJ3aWRnZXQtY2xvc2UiOi0xIT09by5pbmRleE9mKCI6OndzYzppbWFnZS1vdmVybGF5OiIpPyh0PSJpbWFnZS1vdmVybGF5IixzPW8ucmVwbGFjZSgiOjp3c2M6aW1hZ2Utb3ZlcmxheToiLCIiKSk6Ijo6d3NjOnRyYWNrOmFjdGl2aXR5Ij09PW8/dD0idHJhY2stYWN0aXZpdHkiOi0xIT09by5pbmRleE9mKCI6OndzYzptZXNzYWdlOiIpJiYodD0ibWVzc2FnZSIscz1KU09OLnBhcnNlKG8ucmVwbGFjZSgiOjp3c2M6bWVzc2FnZToiLCIiKSkpfXQmJnRoaXMuZmlyZUV2ZW50KHQscyl9fWNhdGNoKGUpe3cucmVnaXN0ZXJFcnJvcihlKX19fSksZGU9KHlvKHApLCExKSxpPXtpc1N1cHBvcnRlZDohMSxsaXN0ZW5lcjohMSx3YXRjaDp7fX0scz17aXNTdXBwb3J0ZWQ6ITEsbGlzdGVuZXI6ITEsd2F0Y2g6e319LHVlPXt9O3RyeXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJjcF90ZXN0IiwxKSxzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJjcF90ZXN0IiksaS5pc1N1cHBvcnRlZD0hMH1jYXRjaChlKXtpLmlzU3VwcG9ydGVkPSExfXRyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiY3BfdGVzdCIsIjEyMyIpLCIxMjMiPT09bG9jYWxTdG9yYWdlLmdldEl0ZW0oImNwX3Rlc3QiKT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImNwX3Rlc3QiKSxzLmlzU3VwcG9ydGVkPSEwKTpzLmlzU3VwcG9ydGVkPSExfWNhdGNoKGUpe3MuaXNTdXBwb3J0ZWQ9ITF9Zm9yKHZhciBwZT1bImNvbm5lY3RlZF9vbmNlIiwiYWN0aXZlX3RyaWdnZXIiLHcuZ2V0UG9zdGZpeGVkKCJhY3RpdmVfdHJpZ2dlciIsdi5hcHBJZCksInBhZ2Vfdmlld3MiLCJwYWdlcyIsInV0bSIsInJlZmVycmVyIl0saGU9KHAub24oImNoYXQtc3RhcnRlZCIsSXQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtUKCJ1bnJlYWRfY291bnQiKSxUKCJsYXN0X2ludGVybG9jdXRvcl9pbWFnZSIpLFQoInRyaWdnZXJlZF9tZXNzYWdlIiksVCgidHJpZ2dlcnNfZmlyZWQiKX0sNWUzKSx7Z2V0VXJsOmZ1bmN0aW9uKGUpe3JldHVybiJodHRwczovL20ubWUvIitlLmlkfX0pLGdlPXtnZXRVcmw6ZnVuY3Rpb24oZSl7aWYoZS5leHRyYVBhcmFtcyYmZS5leHRyYVBhcmFtcy5zbHVnKXJldHVybiBYPyJpbnN0YWdyYW06Ly91c2VyP3VzZXJuYW1lPSIrZS5leHRyYVBhcmFtcy5zbHVnOiJodHRwczovL2luc3RhZ3JhbS5jb20vIitlLmV4dHJhUGFyYW1zLnNsdWd9fSxmZT17Z2V0VXJsOmZ1bmN0aW9uKGUpe3JldHVybiJodHRwczovL3QubWUvIitlLmlkfX0sbWU9e2dldFVybDpmdW5jdGlvbihlKXtyZXR1cm4idmliZXI6Ly9wYT9jaGF0VVJJPSIrZS5pZH19LHdlPXtnZXRVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuImh0dHBzOi8vdmsuY29tL2ltP3NlbD0tIitlLmlkfX0sdmU9e29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbW8oITEpLHRuKCl9fSx5ZT0hMSxoPXtsaXN0OltdLGxvYWQ6ZnVuY3Rpb24obil7cm4odi5hcHBJZCwiL2NoYW5uZWxzIiwiR0VUIixmdW5jdGlvbihlLHQpe2gubGlzdD0odCYmdC5jb25zdHJ1Y3Rvcj09PUFycmF5P3Q6W10pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gUnQoZS5wbGF0Zm9ybSl9KSxuJiZuKCl9KX0sZmluZDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPWgubGlzdC5sZW5ndGg7dDxuO3QrKylpZihoLmxpc3RbdF0ucGxhdGZvcm09PT1lKXJldHVybiBoLmxpc3RbdF19LHVzZTpmdW5jdGlvbihlLHQpe2U9UnQoZSk7aWYoZSYmZS5vbkNsaWNrKXJldHVybiBlLm9uQ2xpY2sodCl9fSxiZT0ocC5vbigiY2hhdC1hY3RpdmUiLGZ1bmN0aW9uKGUpe2UmJih5ZT0hMCl9KSx7bG9hZEFjY291bnRFc3NlbnRpYWxzOmZ1bmN0aW9uKGUscil7cm4oZSwiL2FjY291bnRzLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUrKGwmJmwuc2V0dGluZ3M/Ii0iK2wuc2V0dGluZ3M6IiIpKSwiR0VUIixmdW5jdGlvbihlLHQpe2lmKGUpcmV0dXJuIHcucmVnaXN0ZXJFcnJvcihlKTt2YXIgbixvLGEsaSxzOyF0fHx0JiYhMT09PXQuY2hhdHx8KHQuYXBwSWQmJih2LmFwcElkPXQuYXBwSWQpLHQuZmVhdHVyZXMmJihlPXQuZmVhdHVyZXMsUz1lLHYpJiYodi5hbmFseXRpY3MmJiFXdCgpJiZkZWxldGUgdi5hbmFseXRpY3Msdi52aXNpdG9yJiYhTHQoKSYmKGRlbGV0ZSB2LnZpc2l0b3IsZGVsZXRlIHYudmlzaXRvckludGVncml0eUhhc2gpLHYudHJpZ2dlcnMmJiFCdCgpJiZkZWxldGUgdi50cmlnZ2Vycyx2LmFwcGVhcmFuY2UmJiFEdCgpJiZkZWxldGUgdi5hcHBlYXJhbmNlLHYuY291bnRyaWVzJiYhUy5jb3VudHJ5RmlsdGVyJiZkZWxldGUgdi5jb3VudHJpZXMsdi5hc3NpZ25tZW50cyYmIU10KCkmJmRlbGV0ZSB2LmFzc2lnbm1lbnRzLHF0KCl8fChkZWxldGUgdi5hc3NpZ25tZW50cyxkZWxldGUgdi5vcGVyYXRvcnMsZGVsZXRlIHYuc2Vzc2lvbixjbih2KSxqdCgpKXx8KGRlbGV0ZSB2LmxhbmcsZGVsZXRlIHYubGFuZ3VhZ2UsZGVsZXRlIHYudXNlSHRtbExhbmcsZGVsZXRlIHYub3BlbkluLGRlbGV0ZSB2LmxhdW5jaGVyLGRlbGV0ZSB2LmRldmljZXMpKSxlPXYsTXQoKSYmKGUub3BlcmF0b3JzJiZlLmFzc2lnbm1lbnRzPyhjb25zb2xlLndhcm4oImNoYXBvcnQ6IGJvdGggJ29wZXJhdG9ycycgYW5kICdhc3NpZ25tZW50cycgY29uZmlnIG9wdGlvbnMgYXJlIHByZXNlbnQsIGlnbm9yaW5nICdvcGVyYXRvcnMnIiksZGVsZXRlIGUub3BlcmF0b3JzKTplLm9wZXJhdG9ycyYmKG49ZS5vcGVyYXRvcnMsZS5hc3NpZ25tZW50cz17cmVzb2x2ZTpmdW5jdGlvbigpe3JldHVybiBufX0sZGVsZXRlIGUub3BlcmF0b3JzKSksenQoe3Jlc29sdmU6di5hc3NpZ25tZW50cyYmdi5hc3NpZ25tZW50cy5yZXNvbHZlLHJ1bGVzOnYuYXNzaWdubWVudHMmJnYuYXNzaWdubWVudHMucnVsZXMsZGVmYXVsdFJ1bGVzOnYuYXNzaWdubWVudHMmJnYuYXNzaWdubWVudHMuZGVmYXVsdFJ1bGVzfHx0LmFzc2lnbm1lbnRSdWxlc30pLGgubGlzdD10LmNoYW5uZWxzJiZ0LmNoYW5uZWxzLmNvbnN0cnVjdG9yPT09QXJyYXk/dC5jaGFubmVsczpbXSx0LnNldHRpbmdzJiYhMT09PXQuc2V0dGluZ3MuYXV0b0ludml0YXRpb25Tb3VuZCYmKGx0PSExKSx0LnNldHRpbmdzJiZ0LnNldHRpbmdzLm11bHRpRG9tYWluVmlzaXRvcnM/KHYuc2Vzc2lvbnx8KHYuc2Vzc2lvbj17fSksdi5zZXNzaW9uLmNvb2tpZURvbWFpbnx8KHYuc2Vzc2lvbi5jb29raWVEb21haW49ITA9PT10LnNldHRpbmdzLm11bHRpRG9tYWluVmlzaXRvcnM/bnVsbDp0LnNldHRpbmdzLm11bHRpRG9tYWluVmlzaXRvcnMpKTp2LnNlc3Npb24uY29va2llRG9tYWlufHwodi5zZXNzaW9uLmNvb2tpZURvbWFpbj0hMSksZT12LmFwcGVhcmFuY2UmJnYuYXBwZWFyYW5jZS53aW5kb3dDb2xvcnx8dC5hcHBlYXJhbmNlJiZ0LmFwcGVhcmFuY2Uud2luZG93Q29sb3IsaT12LmFwcGVhcmFuY2UmJnYuYXBwZWFyYW5jZS5wb3NpdGlvbnx8dC5hcHBlYXJhbmNlJiZ0LmFwcGVhcmFuY2UucG9zaXRpb24sIiMiPT09ZVswXXx8LTEhPT1bInJnYiIsImhzbCJdLmluZGV4T2YoZS5zdWJzdHJpbmcoMCwzKSk/KHM9ImNoYXBvcnQtd2luZG93LWN1c3RvbSIsbz1lLGE9ITApOihzPSJjaGFwb3J0LXdpbmRvdy0iK2Usbz0iIiksQz17cHJpbWFyeUNvbG9yQ2xhc3M6cyxjb2xvcjpvLHBvc2l0aW9uOmksY29sb3JDb250cmFzdDphJiZ3LmlzQ29sb3JMaWdodChlKT8iIzMzMzgzYSI6b30sYSYmIiMiPT09ZVswXSYmdy5pc0NvbG9yTGlnaHQoZSkmJncuYWRkQ3NzQ2xhc3MoZG9jdW1lbnQuYm9keSwiY2hhcG9ydC1jb2xvci1saWdodCIpLHUuZXhwZWN0KFsiZG9tUmVhZHkiXSxmdW5jdGlvbigpe3ZhciBlLHQsbjt3LmFkZENzc0NsYXNzKGQsQy5wcmltYXJ5Q29sb3JDbGFzcyksYSYmKGU9Qy5jb2xvckNvbnRyYXN0LHQ9Qy5jb2xvcixuPVVuKCksdm9pZCAwPT09QmUmJihCZT1uLmNzc1J1bGVzLmxlbmd0aCksbi5pbnNlcnRSdWxlKCIuY2hhcG9ydC13aW5kb3ctY3VzdG9tIC5jaGFwb3J0LW1lc3NhZ2Utd2l0aC1yZXBsaWVzIC5yZXBseS1vcHRpb246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAiK2UrIiAhaW1wb3J0YW50OyBjb2xvcjogI2ZmZiAhaW1wb3J0YW50fSIsQmUpLG4uaW5zZXJ0UnVsZSgiLmNoYXBvcnQtd2luZG93LWN1c3RvbSAuY2hhcG9ydC1tZXNzYWdlLXdpdGgtcmVwbGllcyAucmVwbHktb3B0aW9uOmFjdGl2ZSB7IGJhY2tncm91bmQtY29sb3I6ICIrZSsiICFpbXBvcnRhbnQ7IGNvbG9yOiAjZmZmICFpbXBvcnRhbnR9IixCZSsxKSxuLmluc2VydFJ1bGUoIi5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCB7IGZpbGw6ICIrZSsiICFpbXBvcnRhbnQ7IH0iLEJlKzIpLG4uaW5zZXJ0UnVsZSgiLmNoYXBvcnQtaW5uZXItaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogIit0KyIgIWltcG9ydGFudDt9IixCZSszKSl9KSxDbihDLnBvc2l0aW9uKSx1LnNldFN0YXRlKCJhcHBlYXJhbmNlUmVhZHkiKSx0LmludGVncmF0aW9uJiYodi5pbnRlZ3JhdGlvbj10LmludGVncmF0aW9uKSwocz12LmFwcGVhcmFuY2UmJnYuYXBwZWFyYW5jZS53aWRnZXRTb3VuZHx8dC5hcHBlYXJhbmNlJiZ0LmFwcGVhcmFuY2Uud2lkZ2V0U291bmQpJiZtdC5zZXREZWZhdWx0U291bmQocywhMSksdC50cmlnZ2VycyYmKG5vKHQudHJpZ2dlcnMpLElvKCkpLHUuc2V0U3RhdGUoImRhdGFSZWFkeSIpLHImJnIoKSl9KX0sbG9hZFZpc2l0b3JFc3NlbnRpYWxzOmZ1bmN0aW9uKGUsdCxuLG8sYSl7dmFyIGk9XygidmlzaXRvci1kYXRhIiwhMSk7aWYoaSl0cnl7aWYoKGk9SlNPTi5wYXJzZShpKSkmJmkuaWQ9PT1uLmlkJiYhbi5pc0N1c3RvbSYmaS5kYXRhJiYhaS5kYXRhLmV4aXN0cyYmaS50cyYmKG5ldyBEYXRlKS5nZXRUaW1lKCktaS50czwzZTUpcmV0dXJuIGkuZGF0YSYmITEhPT1pLmRhdGEuY2hhdCYmcm4oZSwiL2FjY291bnRzLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvdmlldz9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSwiR0VUIixmdW5jdGlvbihlLHQpe2UmJncucmVnaXN0ZXJFcnJvcihlKX0pLFR0KGkuZGF0YSxhKX1jYXRjaChlKXtpPW51bGx9aT1bImlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KG4uaWQpLCJ0b2tlbj0iK2VuY29kZVVSSUNvbXBvbmVudChuLnRva2VuKV07bi5pc0N1c3RvbSYmaS5wdXNoKCJjdXN0b209MSIpO28mJmkucHVzaCgibm9Db29raWU9MSIpO3QmJmkucHVzaCgibGFuZ3VhZ2U9IitlbmNvZGVVUklDb21wb25lbnQodCkpO3JuKGUsIi9hY2NvdW50cy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL2luaXQ/IitpLmpvaW4oIiYiKSwiR0VUIixmdW5jdGlvbihlLHQpe2U/dy5yZWdpc3RlckVycm9yKGUpOih0LmV4aXN0c3x8bi5pc0N1c3RvbXx8aygidmlzaXRvci1kYXRhIixKU09OLnN0cmluZ2lmeSh7aWQ6bi5pZCx0czpEYXRlLm5vdygpLGRhdGE6dH0pLCExKSxUdCh0LGEpKX0pfX0pLENlPShwLm9uKCJldmVudE5vdGlmaWNhdGlvbiIsZnVuY3Rpb24oZSl7ImNoYXQuc3RhcnRlZCI9PT1lLmV2ZW50JiZUKCJ2aXNpdG9yLWRhdGEiLCExKX0pLHcudFJlbmRlcihmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHR9LGZ1bmN0aW9uKGUpe3ZhciB0PTExOCt4bigpO0c9TWF0aC5taW4oZS10LDY2NyksST09PVUuZXhwYW5kZWQmJl90KCl9KSkseGU9ITEsSWU9ITEsU2U9dy5kZWJvdW5jZShmdW5jdGlvbigpe3ZvaWQgMCE9PXYuY2xvc2VCdXR0b24/SWU9di5jbG9zZUJ1dHRvbjooSWU9ITEsZWU/SWU9ITA6Yi53aWRnZXRXaW5kb3c/MD09PXBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIud2lkZ2V0V2luZG93KS5ib3JkZXJSYWRpdXMpJiYoSWU9ITApOkllPXkpLHhlfHwoeGU9ITAsQShmdW5jdGlvbigpe3hlPSExLE4oImFwaTpzZXRDbG9zZSIsSWUpfSkpfSwxMDApLFJlPSh1LmV4cGVjdCgiY3NzUmVhZHkiLFNlKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSxUZT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUsX2U9MCxrZT1bIndlYmtpdCIsIm1veiJdLE9lPTA7T2U8a2UubGVuZ3RoJiYhUmU7KytPZSlSZT13aW5kb3dba2VbT2VdKyJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSxUZT13aW5kb3dba2VbT2VdKyJDYW5jZWxBbmltYXRpb25GcmFtZSJdfHx3aW5kb3dba2VbT2VdKyJDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXTtSZT1SZXx8ZnVuY3Rpb24oZSl7dmFyIHQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksbj1NYXRoLm1heCgwLDE2LSh0LV9lKSksbz13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2UodCtuKX0sbik7cmV0dXJuIF9lPXQrbixvfSxUZT1UZXx8ZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KGUpfTt2YXIgZz17d2Vic2l0ZUNoYW5uZWw6IkNoYXQiLGNhbmNlbDoiQ2FuY2VsIixpbnB1dDoiIix1bnJlYWRUaXRsZVBhdHRlcm46IihfX0NPVU5UX18pIixkZWZhdWx0Qm90TmFtZToiQm90Iixwb3dlcmVkQnk6IkZyZWUgbGl2ZSBjaGF0IixkZWZhdWx0QXV0b0ludml0YXRpb246IkhlbGxvISBDYW4gSSBoZWxwIHlvdT8ifTtpZihHbigpLChlPXYpLnZpc2l0b3ImJmMucSgic2V0VmlzaXRvckRhdGEiLFtlLnZpc2l0b3IsZS52aXNpdG9ySW50ZWdyaXR5SGFzaF0pLGU9ZnVuY3Rpb24oZSl7dmFyIHQsbixvLGEsaSxzOyh0PWUuc2VhcmNoLm1hdGNoKC91dG1fc291cmNlPShbXiZdKykvaSkpJiYobj1kZWNvZGVVUklDb21wb25lbnQodFsxXS5yZXBsYWNlKC9cKy9nLCIlMjAiKSkpOyh0PWUuc2VhcmNoLm1hdGNoKC91dG1fbWVkaXVtPShbXiZdKykvaSkpJiYobz1kZWNvZGVVUklDb21wb25lbnQodFsxXS5yZXBsYWNlKC9cKy9nLCIlMjAiKSkpOyh0PWUuc2VhcmNoLm1hdGNoKC91dG1fdGVybT0oW14mXSspL2kpKSYmKGE9ZGVjb2RlVVJJQ29tcG9uZW50KHRbMV0ucmVwbGFjZSgvXCsvZywiJTIwIikpKTsodD1lLnNlYXJjaC5tYXRjaCgvdXRtX2NhbXBhaWduPShbXiZdKykvaSkpJiYoaT1kZWNvZGVVUklDb21wb25lbnQodFsxXS5yZXBsYWNlKC9cKy9nLCIlMjAiKSkpOyh0PWUuc2VhcmNoLm1hdGNoKC91dG1fY29udGVudD0oW14mXSspL2kpKSYmKHM9ZGVjb2RlVVJJQ29tcG9uZW50KHRbMV0ucmVwbGFjZSgvXCsvZywiJTIwIikpKTtyZXR1cm4gbnx8b3x8YXx8aXx8cz97c291cmNlOm4sbWVkaXVtOm8sdGVybTphLGNhbXBhaWduOmksY29udGVudDpzfTp2b2lkIDB9KHdpbmRvdy5sb2NhdGlvbikpaygidXRtIixKU09OLnN0cmluZ2lmeShlKSksYm8oInV0bSIsZSksdS5pcygiaWZyYW1lUmVhZHkiKSYmX24oZSk7dmFyIHQ9ZG9jdW1lbnQucmVmZXJyZXIsZT10LmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3QpO2lmKCh0PS0xPGUmJmU8MTB8fDAhPT10LmluZGV4T2YoImh0dHAiKT8iIjp0KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVUkwpdHJ5e25ldyBVUkwodCl9Y2F0Y2goZSl7dD0iIn11LmV4cGVjdChbInN0b3JhZ2VSZWFkeSJdLGZ1bmN0aW9uKCl7dmFyIGU9RG4oKTtlfHwiIj09PXR8fChrKCJyZWZlcnJlciIsRGU9dCksYm8oInJlZmVycmVyIix0KSksKGV8fHQpJiZ1LmV4cGVjdChbImlmcmFtZVJlYWR5Il0sTG4pfSksITEhPT12Lmhpc3RvcnkmJnkmJih3Lm9uKHdpbmRvdywicG9wc3RhdGUiLGZ1bmN0aW9uKGUpe2U9TW4oZS5zdGF0ZSk7ZSYmST09PVUuY29sbGFwc2VkP2MucSgib3BlbiIpOmV8fEkhPT1VLmV4cGFuZGVkfHxjLnEoImNsb3NlIil9KSxNbih3aW5kb3cuaGlzdG9yeS5zdGF0ZSkmJmMucSgib3BlbiIpLGMub24oIndpZGdldC5zdGF0ZUNoYW5nZSIsZnVuY3Rpb24oZSl7aWYoIWV8fCFlLnBheWxvYWR8fGUucGF5bG9hZC5oaXN0b3J5KXRyeXt2YXIgdD1Nbih3aW5kb3cuaGlzdG9yeS5zdGF0ZSk7dCYmImNvbGxhcHNlZCI9PT1lLnRvU3RhdGUmJiJleHBhbmRlZCI9PT1lLmZyb21TdGF0ZT93aW5kb3cuaGlzdG9yeS5nbygtMSk6dHx8ImV4cGFuZGVkIiE9PWUudG9TdGF0ZXx8d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKEJuKCksIiIpfWNhdGNoKGUpe3cucmVnaXN0ZXJFcnJvcihlKX19KSk7ZnVuY3Rpb24gRWUoZSx0KXt0aGlzLm5hbWU9ZS5uYW1lLHRoaXMucGFyYW1zPWUucGFyYW1zLHRoaXMudHJpZ2dlcj10fXZhciBmLE5lLEFlLFBlLEMsVWUsQmUsTWUsRGUseCxMZSxXZSxxZSxJLGplLHplLEhlLFZlLEdlLEZlLEplLFhlLCRlLFllPSExLFM9KHZvaWQgMD09PXYuaW5pdCYmKHYuaW5pdD17bWF4RGVsYXk6NWUzLGV2ZW50OiJsb2FkIixkZWxheUFmdGVyRXZlbnQ6NTAwfSksdi5pbml0Pyhpc0xvYWRJZnJhbWVEZWxheWVkPSEwLHYuaW5pdC5ldmVudCYmKCJsb2FkIj09PXYuaW5pdC5ldmVudCYmImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/UHQodi5pbml0LmRlbGF5QWZ0ZXJFdmVudCk6dy5vbmNlKHYuaW5pdC5ldmVudFRhcmdldHx8d2luZG93LHYuaW5pdC5ldmVudCxmdW5jdGlvbigpe1B0KHYuaW5pdC5kZWxheUFmdGVyRXZlbnQpfSkpLCJudW1iZXIiPT10eXBlb2Ygdi5pbml0Lm1heERlbGF5JiZzZXRUaW1lb3V0KFV0LHYuaW5pdC5tYXhEZWxheSkpOlV0KCkse30pLFplPSh1LmV4cGVjdChbImFwaUluaXQiLCJpbml0aWFsUGFnZVZpZXdSZWFkeSJdLEh0KSxwLm9uKCJhcHBseUFzc2lnbm1lbnRSdWxlcyIsZnVuY3Rpb24oZSl7aWYoZSYmIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgdCBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZibyh0LGVbdF0pO3JldHVybiBIdCghMCl9KSwhMSkscj0ocC5vbigiZmFpbGVkSWRlbnRpdHkiLGZ1bmN0aW9uKGUpe3ZhciB0O2UmJmUuaXNDdXN0b20/KGNvbnNvbGUuZXJyb3IoIml0IHNlZW1zIHRoYXQgdGhlIHByb3ZpZGVkIGNyZWRlbnRpYWxzIGFyZSBub3QgdmFsaWQiKSx0PWYuaWQsZG4oITEsZnVuY3Rpb24oKXtzbigiYXV0aC5mYWlsZWQiLHt2aXNpdG9ySWQ6dH0pfSkpOihaZT1udWxsLHcuY2xlYXJDcmVkcyh2LmFwcElkLHYuc2Vzc2lvbiYmdi5zZXNzaW9uLmNvb2tpZURvbWFpbiksbG4oe2ZvcmNlTmV3OiEwfSkpfSkscC5vbigidmlzaXRvci1pZCIsZnVuY3Rpb24oZSl7bnVsbD09PWUmJncuY2xlYXJDcmVkcyh2LmFwcElkLHYuc2Vzc2lvbiYmdi5zZXNzaW9uLmNvb2tpZURvbWFpbil9KSx7bGlzdDpudWxsLG9ubGluZTpudWxsLHNpbmNlOm51bGx9KSxLZT1udWxsLFFlPShwLm9uKCJzdHlsZXMiLGZ1bmN0aW9uKGUpe3ZuKGUpfSksITEpLGV0PSh1LmV4cGVjdChbImlmcmFtZVJlYWR5Iiwic3RvcmFnZVJlYWR5Il0sZnVuY3Rpb24oKXt2YXIgZT1UbigpO2UmJl9uKGUpfSksdS5leHBlY3QoWyJpZnJhbWVSZWFkeSIsInN0b3JhZ2VSZWFkeSJdLGZ1bmN0aW9uKCl7QW4oKX0pLHUuZXhwZWN0KFsic3RvcmFnZVJlYWR5Il0sZnVuY3Rpb24oKXtidCgicGFnZXMiLGZ1bmN0aW9uKGUpe0FuKCl9KSx1LmV4cGVjdChbImlmcmFtZVJlYWR5Il0sQW4pfSksdS5leHBlY3QoWyJjb25uZWN0aW9uUmVhZHkiXSxmdW5jdGlvbigpe1QoInBhZ2VzIiksQW4oKX0pLHsiY2hhdC5zdGFydGVkIjp7Y2F0ZWdvcnk6ImNoYXBvcnRfY2hhdHMiLGV2ZW50OiJjaGF0X3N0YXJ0In0sImNoYXQuYXV0b0ludml0YXRpb24iOntjYXRlZ29yeToiY2hhcG9ydF9jaGF0cyIsZXZlbnQ6ImF1dG9faW52aXRhdGlvbl92aWV3In0sImNoYXQuYm90U2VudCI6e2NhdGVnb3J5OiJjaGFwb3J0X2NoYXRzIixldmVudDoiY2hhdGJvdF92aWV3In19KSx0dD1bXSxudD0ocC5vbigiY29ubmVjdGVkIixmdW5jdGlvbigpe3Uuc2V0U3RhdGUoImNvbm5lY3Rpb25SZWFkeSIpLF8oImNvbm5lY3RlZF9vbmNlIil8fGsoImNvbm5lY3RlZF9vbmNlIiwiMSIpfSkscC5vbigicmVhZHkiLGZ1bmN0aW9uKCl7dS5zZXRTdGF0ZSgiaWZyYW1lUmVhZHkiKX0pLHUuZXhwZWN0KFsic3RvcmFnZVJlYWR5IiwidmlzaXRvclJlYWR5Il0sZnVuY3Rpb24oKXtfKCJjb25uZWN0ZWRfb25jZSIpP0Eoam4pOmJ0KCJjb25uZWN0ZWRfb25jZSIsZnVuY3Rpb24oZSl7ZSYmQShqbil9KX0pLCExKSxvdD0ocC5vbigidXBkYXRlLWFjdGl2aXR5IixmdW5jdGlvbigpe1ZuKCl9KSxwLm9uKCJ0cmFjay1hY3Rpdml0eSIsZnVuY3Rpb24oZSl7R24oZSl9KSxwLm9uKCJ1cGRhdGUtYWN0aXZpdHkiLGZ1bmN0aW9uKCl7Vm4oKX0pLDApLGF0PSExLGl0PWRvY3VtZW50LnRpdGxlLHN0PXtoYW5kbGVFdmVudDpmdW5jdGlvbihlLHQpe3NuKGUsdCksdD1lLFd0KCkmJk1lJiYodD1ldFt0XSkmJk1lLnNlbmRFdmVudCh0LmV2ZW50LHQuY2F0ZWdvcnkpfX0scnQ9KHAub24oImV2ZW50Tm90aWZpY2F0aW9uIixmdW5jdGlvbihlKXtzdC5oYW5kbGVFdmVudChlLmV2ZW50LGUucGF5bG9hZCl9KSxVLmNsYXNzR3JvdXBzPXt2aXNpYmlsaXR5OltbImNoYXBvcnQtYW5pbS1oaWRlIiwiY2hhcG9ydC1hbmltLXNob3ciXSxbMTAwLDBdXSxzaXplOltbImNoYXBvcnQtY29sbGFwc2VkIiwiY2hhcG9ydC1jb2xsYXBzZWQtbWVzc2FnZSIsImNoYXBvcnQtc2VtaS1leHBhbmRlZCIsImNoYXBvcnQtZXhwYW5kZWQiLCJjaGFwb3J0LXNob3ctY2hhbm5lbHMiXSxbMCwxMDAsMTAwLDEwMCwwLDEwMCwxMDAsMTAwLDAsMCwxMDAsMTAwLDAsMCwwLDEwMCwwLDAsMCwwXV19LFUuY29sbGFwc2VkPW5ldyBVKHt3aWRnZXRXaW5kb3c6ITEsbWVzc2FnZTohMSxsYXVuY2hlckJ1dHRvbjohMCxjaGFubmVsczohMSxyb290Olsic2l6ZSIsImNoYXBvcnQtY29sbGFwc2VkIl19LHthZnRlckluOmZ1bmN0aW9uKCl7cm8oKX19KSxVLmV4cGFuZGVkPW5ldyBVKHt3aWRnZXRXaW5kb3c6ITAsbWVzc2FnZTohMSxsYXVuY2hlckJ1dHRvbjohMCxjaGFubmVsczohMSxyb290Olsic2l6ZSIsImNoYXBvcnQtZXhwYW5kZWQiXX0se2JlZm9yZUluOmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIHZvaWQgMD09PWUuYW5pbWF0ZSYmKGUuYW5pbWF0ZT1RKSx5PyhsYXN0UGFnZVNjcm9sbFBvc2l0aW9uPXdpbmRvdy5wYWdlWU9mZnNldCx3LmFkZENzc0NsYXNzKG8sImNoYXBvcnQtbW9iaWxlIiksdy5hZGRDc3NDbGFzcyhvLCJjaGFwb3J0LW1vYmlsZS1tYXhpbWl6ZWQtaGlkZSIpLHQ9MCk6KHcudG9nZ2xlQ3NzQ2xhc3MoYi5tZXNzYWdlLCJjaGFwb3J0LXdpbmRvdy1hbmltIiwhMSE9PWUuYW5pbWF0ZSksdy50b2dnbGVDc3NDbGFzcyhiLndpZGdldFdpbmRvdywiY2hhcG9ydC13aW5kb3ctYW5pbSIsITEhPT1lLmFuaW1hdGUpKSxxZSYmKGNsZWFyVGltZW91dChxZSkscWU9bnVsbCksSW8oKSxfdCgpLEluKCksem4oIjo6d3NjOmJlZm9yZTpleHBhbmQiKSx0fSxhZnRlckluOmZ1bmN0aW9uKGUpeyRuKCkseSYmWSYmKHdpbmRvdy5zY3JvbGxUbygwLDApLHcuYWRkQ3NzQ2xhc3MobywiY2hhcG9ydC1tb2JpbGUtbWF4aW1pemVkIiksdy5yZW5kZXIobnVsbCxmdW5jdGlvbigpe3cucmVtb3ZlQ3NzQ2xhc3MobywiY2hhcG9ydC1tb2JpbGUtbWF4aW1pemVkLWhpZGUiKX0pKSxybygpLEtuKCksem4oIjo6d3NjOmV4cGFuZGVkIisoITEhPT1lLmF1dG9Gb2N1cz8iOmZvY3VzIjoiIikpfSxiZWZvcmVPdXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gdm9pZCAwPT09ZS5hbmltYXRlJiYoZS5hbmltYXRlPVEpLHkmJih3LnJlbW92ZUNzc0NsYXNzKG8sImNoYXBvcnQtbW9iaWxlLW1heGltaXplZCIpLHcuYWRkQ3NzQ2xhc3MobywiY2hhcG9ydC1tb2JpbGUtbWF4aW1pemVkLWhpZGUiKSx3aW5kb3cuc2Nyb2xsVG8oMCxsYXN0UGFnZVNjcm9sbFBvc2l0aW9uKSxsYXN0UGFnZVNjcm9sbFBvc2l0aW9uPW51bGwsdD0wKSx3LnRvZ2dsZUNzc0NsYXNzKGIubWVzc2FnZSwiY2hhcG9ydC13aW5kb3ctYW5pbSIsITEhPT1lLmFuaW1hdGUpLHcudG9nZ2xlQ3NzQ2xhc3MoYi53aWRnZXRXaW5kb3csImNoYXBvcnQtd2luZG93LWFuaW0iLCExIT09ZS5hbmltYXRlKSx0fSxhZnRlck91dDpmdW5jdGlvbigpe3puKCI6OndzYzpjb2xsYXBzZWQiKSxrKCJ3aWRnZXRfbGFzdF9jbG9zZWQiLChuZXcgRGF0ZSkuZ2V0VGltZSgpKSx5JiYody5yZW1vdmVDc3NDbGFzcyhvLCJjaGFwb3J0LW1vYmlsZS1tYXhpbWl6ZWQtaGlkZSIpLHcucmVtb3ZlQ3NzQ2xhc3MobywiY2hhcG9ydC1tb2JpbGUiKSkscWUmJmNsZWFyVGltZW91dChxZSkscWU9c2V0VGltZW91dChrdCwyMDApfX0pLFUudW5yZWFkTWVzc2FnZT1uZXcgVSh7d2lkZ2V0V2luZG93OiExLG1lc3NhZ2U6ITAsbGF1bmNoZXJCdXR0b246ITAsY2hhbm5lbHM6ITEscm9vdDpbInNpemUiLCJjaGFwb3J0LXNlbWktZXhwYW5kZWQiXX0pLFUuY2hhbm5lbHM9bmV3IFUoe3dpZGdldFdpbmRvdzohMSxtZXNzYWdlOiExLGxhdW5jaGVyQnV0dG9uOiExLGNoYW5uZWxzOiEwLHJvb3Q6WyJzaXplIiwiY2hhcG9ydC1zaG93LWNoYW5uZWxzIl19KSxVLmhpZGRlbj1uZXcgVSh7d2lkZ2V0V2luZG93OiExLG1lc3NhZ2U6ITEsbGF1bmNoZXJCdXR0b246ITEsY2hhbm5lbHM6ITF9KSwhMSksY3Q9W10sbHQ9KHAub24oImNoZWNrLWV4cGFuZGVkIixmdW5jdGlvbigpe0k9PT1VLmV4cGFuZGVkJiZ6bigiOjp3c2M6ZXhwYW5kZWQiKX0pLHAub24oIndpZGdldC1jbG9zZSIsZnVuY3Rpb24oKXtubigpfSkscC5vbigiaW1hZ2Utb3ZlcmxheSIsZnVuY3Rpb24oZSl7dy5vdmVybGF5KHtjb250ZW50czplLG92ZXJsYXlDbGlja0hpZGU6ITAsa2V5czp7ZXNjOmZ1bmN0aW9uKGUpe3cuaXNPdmVybGF5U2hvd24mJmUoKX19fSl9KSxwLm9uKCJtZXNzYWdlIixmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIGU7b3Q/KGU9IigiK290KyIpICIraXQsbighMT09PVEmJldlPT09ZT9nLnVucmVhZFRpdGxlUGF0dGVybi5yZXBsYWNlKCJfX0NPVU5UX18iLG90KTplKSk6KGNsZWFySW50ZXJ2YWwoTGUpLExlPXZvaWQgMCxuKGl0KSl9ZnVuY3Rpb24gbihlKXtXZSE9PWUmJihkb2N1bWVudC50aXRsZT1XZT1lKX1vdCsrLEduKCksdi50aXRsZSYmITE9PT12LnRpdGxlLm1lc3NhZ2VOb3RpZmljYXRpb258fExlfHwoTGU9c2V0SW50ZXJ2YWwodCwxZTMpLHQoKSksSSE9PVUuZXhwYW5kZWQmJlpuKGUpfSkscC5vbigidW5yZWFkIixmdW5jdGlvbihlKXt2YXIgdCxuO2UmJmUuY291bnQ/KHQ9ZS5sYXN0TWVzc2FnZSkmJihuPXQuYXV0aG9yLFpuKHt0ZXh0OnQudGV4dCxvcGVyYXRvcnM6W3tpbWFnZTpuJiZuLmltYWdlfV0sbmFtZTpuJiZuLm5hbWUsdHlwZTpudWxsfSxlLmNvdW50KSk6JG4oKX0pLCEwKSxuPXtpc0VuYWJsZWQ6ITAsZXhjZXB0aW9uczpbXX0sZHQ9ITEsdXQ9KHUuZXhwZWN0KFsic3RvcmFnZVJlYWR5Iiwic2Vzc2lvbkluaXQiXSxmdW5jdGlvbigpe3RlPSEwLEYmJm5vKEYpfSkscC5vbigidHJpZ2dlcnMiLGZ1bmN0aW9uKGUpe3RlP25vKGUpOkY9ZX0pLFtdKSxwdD1udWxsLGh0PSh1LmV4cGVjdChbInN0b3JhZ2VSZWFkeSJdLGZ1bmN0aW9uKCl7bG8oKT92bygpOmJ0KHcuZ2V0UG9zdGZpeGVkKCJhY3RpdmVfdHJpZ2dlciIsdi5hcHBJZCksZnVuY3Rpb24oZSl7ZSYmKE0oKSx2bygpKX0pfSksbnVsbCksZ3Q9bnVsbCxmdD1udWxsLG10PShKZT1GZT1HZT1udWxsLFhlPSExLHtpbml0OmZ1bmN0aW9uKCl7d2luZG93LmNoYXBvcnQuaXNXaWRnZXQmJncuaXNJZnJhbWUoKSYmKFhlPSEwKX0scGxheTpmdW5jdGlvbih0KXtpZigibm9uZSIhPT10KXtpZihYZSlyZXR1cm4gdy5wb3N0TWVzc2FnZVRvcElmSWZyYW1lKCI6OmNwOmF1ZGlvOiIrSlNPTi5zdHJpbmdpZnkoW3RdKSk7aWYoIUdlKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LmNoYXBvcnQuZ2V0TW9iaWxlTWFuYWdlcil7dmFyIGU9d2luZG93LmNoYXBvcnQuZ2V0TW9iaWxlTWFuYWdlcigpO2lmKGUuaXNNb2JpbGVBcHAmJmUuaXNQYXVzZWQoKSlyZXR1cm59R2U9c2V0VGltZW91dChmdW5jdGlvbigpe0dlPW51bGx9LDFlMykseG8oZnVuY3Rpb24oZSl7ZS5wbGF5KHR8fEplfHwiYmVlcCIpfSl9fX0sbG9hZDpDbyxnZXRQbGF5ZXI6eG8sc2V0UGxheWVyQXNzZXRQYXRoOmZ1bmN0aW9uKGUpe0ZlPWV9LHNldERlZmF1bHRTb3VuZDpmdW5jdGlvbihlLHQpe0plPWV8fCJiZWVwIiwhMSE9PXQmJkNvKEplKX19KSx3dD0ocC5vbigiYXVkaW8iLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUubWV0aG9kP2UubWV0aG9kOiJwbGF5IixlPWUmJmUuYXJnczttdFt0XS5hcHBseShtdCxlKX0pLCExKSx2dD0oU28ucHJvdG90eXBlLmdldFNoYWxsb3dEYXRhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hY3Rpb25DaGFpbi5hY3Rpb25zWzBdO3JldHVybnt0cmlnZ2VySWQ6dGhpcy5pZCxpc0JvdDp0aGlzLmlzQm90LGludGVycnVwdGFibGU6dGhpcy5pbnRlcnJ1cHRhYmxlLG1lc3NhZ2U6ZS5wYXJhbXMubWVzc2FnZSxyZXBseU9wdGlvbnM6ZS5wYXJhbXMucmVwbHlPcHRpb25zLGJyYW5kZWQ6dGhpcy5icmFuZGVkLG9wZXJhdG9ySWQ6dGhpcy5vcGVyYXRvcklkfX0sU28ucHJvdG90eXBlLnVud2F0Y2g9ZnVuY3Rpb24oKXt0aGlzLnRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KSx0aGlzLnRpbWVvdXQ9bnVsbCksdGhpcy5pbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCksdGhpcy5pbnRlcnZhbD1udWxsKX0sU28ucHJvdG90eXBlLndhdGNoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPXQuY29uZGl0aW9uLmdldFRpbWVvdXREdXJhdGlvbigpO3QudGltZW91dHx8dC5pbnRlcnZhbHx8blswXSE9PTEvMCYmKHQudGltZW91dD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlO3QudW53YXRjaCgpLHQuY29uZGl0aW9uLmNoZWNrKCk/dC50cnlSdW5uaW5nKCk6blsxXT09PTEvMD90LmludGVydmFsPXdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpe3QuY29uZGl0aW9uLmNoZWNrKCkmJih0LnRyeVJ1bm5pbmcoKSx0LnVud2F0Y2goKSl9LDFlNCk6MWU1PD0oZT1NYXRoLm1heChuWzFdLW5bMF0sMWU0KSk/dC5pbnRlcnZhbD13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0LmNvbmRpdGlvbi5jaGVjaygpJiYodC50cnlSdW5uaW5nKCksdC51bndhdGNoKCkpLChlLT0xZTQpPD0wJiZ0LnVud2F0Y2goKX0sMWU0KTp0LnRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnVud2F0Y2goKSx0LmNvbmRpdGlvbi5jaGVjaygpJiZ0LnRyeVJ1bm5pbmcoKX0sZSl9LE1hdGgubWF4KDAsblswXSkpKX0sU28ucHJvdG90eXBlLnRyeVJ1bm5pbmc9ZnVuY3Rpb24oKXt2YXIgZTtlPXRoaXMsLTE9PT11dC5pbmRleE9mKGUpJiZ1dC5wdXNoKGUpLHB0PXB0fHxzZXRUaW1lb3V0KGNvLDUwMCl9LFNvLnByb3RvdHlwZS5hcHBseUFjdGlvbnM9ZnVuY3Rpb24oZSl7dGhpcy5hY3Rpb25DaGFpbi5ydW4oZSl9LEVlLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oZSx0KXt2YXIgbixvOyJwcm9hY3RpdmUiPT09dGhpcy5uYW1lJiYobj0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLnRyaWdnZXIuaXNCb3Q/cm4odi5hcHBJZCwiL3N0YXRzL2JvdC12aWV3cyIsIlBPU1QiLGZ1bmN0aW9uKGUsdCl7fSx7Ym90SWQ6dGhpcy50cmlnZ2VyLmlkfSk6cm4odi5hcHBJZCwiL3N0YXRzL3RyaWdnZXItdmlld3MiLCJQT1NUIixmdW5jdGlvbihlLHQpe30se3RyaWdnZXJJZDp0aGlzLnRyaWdnZXIuaWR9KSwobz10aGlzLnRyaWdnZXIuZ2V0U2hhbGxvd0RhdGEoKSkudGltZXN0YW1wPW4sby5kaXNtaXNzZWQ9ITEsby5vcGVyYXRvcnM9ZSx1byhvKSYmbHQmJm10LnBsYXkoKSx0KSYmdCgpfSxmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7bi5hY3Rpb25zPVtdLG4udHJpZ2dlcj10LGUuZm9yRWFjaChmdW5jdGlvbihlKXtuLmFjdGlvbnMucHVzaChlLmNvbnN0cnVjdG9yPT09RWU/ZTpuZXcgRWUoZSx0KSl9KX0pO3Z0LnByb3RvdHlwZS5ydW49ZnVuY3Rpb24obixvKXt2YXIgYT10aGlzOyFmdW5jdGlvbiBlKHQpe2EuYWN0aW9uc1t0XT9hLmFjdGlvbnNbdF0ucnVuKG4sUihlLG51bGwsW3QrMV0pKTpvJiZvKCl9KDApfSwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBleHBvcnRzJiYobW9kdWxlLmV4cG9ydHM9Um8pLCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9VG86JGU9VG8oe2NvbXBhcmU6Um8sZ2V0UGFyYW1ldGVyVmFsdWU6Sm59KX19fWZ1bmN0aW9uIFIodCxuLG8pe3JldHVybiBvP28uY29uc3RydWN0b3IhPT1BcnJheSYmKG89W29dKTpvPVtdLGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KG4sby5jb25jYXQoZSkpfX1mdW5jdGlvbiB5dCgpe3ZhciBlPUhuKCksdD0obmV3IERhdGUpLmdldFRpbWUoKSxuPV8oInNlc3Npb25fc3RhcnRlZF9hdCIpO2U/biYmKGU9TWF0aC5tYXgobixlKSk6ZT1uO2lmKGUmJjIxNmU1PHQtZSl7Zm9yKHZhciBvPTAsYT1wZS5sZW5ndGg7bzxhO28rKylUKHBlW29dLCExLCEwKTtrKCJzZXNzaW9uX3N0YXJ0ZWRfYXQiLFouZ2V0VGltZSgpKX1lbHNlIG58fGsoInNlc3Npb25fc3RhcnRlZF9hdCIsWi5nZXRUaW1lKCkpO2lmKCFKKXtmb3IodmFyIGk9W3ttYXA6dWUsaXNTZXNzaW9uOiEoSj0hMCl9XSxzPTAscj1pLmxlbmd0aDtzPHI7cysrKSFmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJihudWxsPT09ZVtuXT9UKG4sdCk6ayhuLGVbbl0sdCkpfShpW3NdLm1hcCxpW3NdLmlzU2Vzc2lvbik7dS5zZXRTdGF0ZSgic3RvcmFnZVJlYWR5Iil9fWZ1bmN0aW9uIFQoZSx0LG4pe2lmKCFKJiYhbiYmLTEhPT1wZS5pbmRleE9mKGUpKXJldHVybiB0P2RlbGF5ZWRTZXNzaW9uU3RvcmFnZUNoYW5nZXNbZV09bnVsbDp1ZVtlXT1udWxsO2U9eHQoZSksdCYmaS5pc1N1cHBvcnRlZHx8cy5pc1N1cHBvcnRlZCYmIXQ/KHQ/d2luZG93LnNlc3Npb25TdG9yYWdlOndpbmRvdy5sb2NhbFN0b3JhZ2UpLnJlbW92ZUl0ZW0oZSk6ZG9jdW1lbnQuY29va2llPWUrIj07IHBhdGg9LzsgZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDsifWZ1bmN0aW9uIF8oZSx0LG4pe2lmKEp8fG58fC0xPT09cGUuaW5kZXhPZihlKSlyZXR1cm4gZT14dChlKSx0JiZpLmlzU3VwcG9ydGVkfHxzLmlzU3VwcG9ydGVkJiYhdD8odD93aW5kb3cuc2Vzc2lvblN0b3JhZ2U6d2luZG93LmxvY2FsU3RvcmFnZSkuZ2V0SXRlbShlKToobj1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKD86Xnw7ICkiK2UucmVwbGFjZSgvKFtcLiQ/Knx7fVwoXClcW1xdXFxcL1wrXl0pL2csIlxcJDEiKSsiPShbXjtdKikiKSkpP2RlY29kZVVSSUNvbXBvbmVudChuWzFdKTp2b2lkIDB9ZnVuY3Rpb24gayhlLHQsbixvKXtpZighSiYmIW8mJi0xIT09cGUuaW5kZXhPZihlKSlyZXR1cm4gbj9kZWxheWVkU2Vzc2lvblN0b3JhZ2VDaGFuZ2VzW2VdPXQ6dWVbZV09dDtlPXh0KGUpLG4mJmkuaXNTdXBwb3J0ZWR8fHMuaXNTdXBwb3J0ZWQmJiFuPyhuP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTp3aW5kb3cubG9jYWxTdG9yYWdlKS5zZXRJdGVtKGUsdCk6KG89bj9uZXcgRGF0ZTpuZXcgRGF0ZSgobmV3IERhdGUpLmdldFRpbWUoKSsyNTkyZTYpLGRvY3VtZW50LmNvb2tpZT1lKyI9Iit0KyI7IHBhdGg9LzsgZXhwaXJlcz0iK28udG9VVENTdHJpbmcoKSl9ZnVuY3Rpb24gYnQoZSx0LG4pe2RlfHwoZGU9ITAsdy5vbih3aW5kb3csInN0b3JhZ2UiLEN0KSksbiYmaS5pc1N1cHBvcnRlZD8oaS53YXRjaFtlXXx8KGkud2F0Y2hbZV09W10pLGkud2F0Y2hbZV0ucHVzaCh0KSk6IW4mJnMuaXNTdXBwb3J0ZWQmJihzLndhdGNoW2VdfHwocy53YXRjaFtlXT1bXSkscy53YXRjaFtlXS5wdXNoKHQpKX1mdW5jdGlvbiBDdChlKXt2YXIgdCxuPWUuc3RvcmFnZUFyZWE9PT13aW5kb3cuc2Vzc2lvblN0b3JhZ2Usbz1uP2k6cztvLmlzU3VwcG9ydGVkJiYodD0oZT1lLmtleSkmJjA9PT1lLmluZGV4T2YoIndzY18iKT9lLnN1YnN0cmluZyg0KTpudWxsKSYmby53YXRjaFt0XSYmby53YXRjaFt0XS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UoXyh0LG4pKX0pfWZ1bmN0aW9uIHh0KGUpe3JldHVybiJ3c2NfIitlfWZ1bmN0aW9uIEl0KGUpe2U/KE0oKSxmbygpLFQoInV0bSIpLFQoInBhZ2VzIiksdS5zZXRTdGF0ZSgiY2hhdFN0YXJ0ZWQiKSk6bnVsbD09PUsmJnUuZXhwZWN0KFsidHJpZ2dlcnNSZWFkeSJdLGVvKSxLPWUsdS5zZXRTdGF0ZSgiY2hhdFJlYWR5Iil9ZnVuY3Rpb24gU3QoZSl7dmFyIHQ9UnQoZS5wbGF0Zm9ybSk7cmV0dXJuIHQmJnQuZ2V0VXJsJiZ0LmdldFVybChlKX1mdW5jdGlvbiBSdChlKXtzd2l0Y2goZSl7Y2FzZSJmYWNlYm9vayI6cmV0dXJuIGhlO2Nhc2UiaW5zdGFncmFtIjpyZXR1cm4gZ2U7Y2FzZSJ0ZWxlZ3JhbSI6cmV0dXJuIGZlO2Nhc2UidmliZXIiOnJldHVybiBtZTtjYXNlInZrIjpyZXR1cm4gd2U7ZGVmYXVsdDppZihlJiYid2Vic2l0ZSIhPT1lKXJldHVybiBudWxsfXJldHVybiB2ZX1mdW5jdGlvbiBUdChlLHQpe2lmKCghZXx8ITEhPT1lLmNoYXQpJiYoIXYuY291bnRyaWVzfHwhZS5jb3VudHJ5fHxtbih2LmNvdW50cmllcyxlLmNvdW50cnkpKSl7dmFyIG4sbyxhO2lmKGJvKCJjb3VudHJ5IixlLmNvdW50cnkpLGUubGFuZ3VhZ2UmJmJvKCJsYW5ndWFnZSIsZS5sYW5ndWFnZSksZS5zZXJ2ZXJVcmwmJihhPWUuc2VydmVyVXJsLHNlcnZlclVybD1hKSxlLnRleHRzKXtpZihlLnRleHRzLmlucHV0TGFiZWwmJihhPWUudGV4dHMuaW5wdXRMYWJlbCxnLmlucHV0PWEsYikmJmIubWVzc2FnZUlucHV0JiYoYi5tZXNzYWdlSW5wdXQudGV4dENvbnRlbnQ9YSksZS50ZXh0cy5jaGF0TGFiZWwpe3ZhciBpPWUudGV4dHMuY2hhdExhYmVsO2cud2Vic2l0ZUNoYW5uZWw9aSxiJiZiLmNoYW5uZWxzTGlzdCYmKHM9UCgiY2hhcG9ydC1jaGFubmVsLXdlYnNpdGUiLGIuY2hhbm5lbHNMaXN0KSkmJihzLnRleHRDb250ZW50PWkpfWlmKGUudGV4dHMuY2FuY2VsTGFiZWwpe3ZhciBzPWUudGV4dHMuY2FuY2VsTGFiZWw7Zy5jYW5jZWw9cyxiJiZiLmNoYW5uZWxzJiYoaT1QKCJjaGFwb3J0LWNoYW5uZWxzLWNhbmNlbCIsYi5jaGFubmVscykpJiYoaS50ZXh0Q29udGVudD1zKX1pZihlLnRleHRzLnVucmVhZFRpdGxlUGF0dGVybiYmKG89ZS50ZXh0cy51bnJlYWRUaXRsZVBhdHRlcm4sZy51bnJlYWRUaXRsZVBhdHRlcm49byksZS50ZXh0cy5kZWZhdWx0Qm90TmFtZSYmKG89ZS50ZXh0cy5kZWZhdWx0Qm90TmFtZSxnLmRlZmF1bHRCb3ROYW1lPW8pLGUudGV4dHMudHJpZ2dlclBvd2VyZWRCeUxhYmVsKXt2YXIgcj1lLnRleHRzLnRyaWdnZXJQb3dlcmVkQnlMYWJlbDtnLnBvd2VyZWRCeT1yLGImJmIubWVzc2FnZVBvd2VyZWRCeSYmKChuPWIubWVzc2FnZVBvd2VyZWRCeS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpWzBdKT9uLnRleHRDb250ZW50PXI6Yi5tZXNzYWdlUG93ZXJlZEJ5LnRleHRDb250ZW50PXIpfWUudGV4dHMuZGVmYXVsdEF1dG9JbnZpdGF0aW9uVGV4dCYmKG49ZS50ZXh0cy5kZWZhdWx0QXV0b0ludml0YXRpb25UZXh0LGcuZGVmYXVsdEF1dG9JbnZpdGF0aW9uPW4pfWIubWVzc2FnZVBvd2VyZWRCeSYmKHI9UCgiY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnktaW5uZXIiLGIubWVzc2FnZVBvd2VyZWRCeSkpJiYoci5zZXRBdHRyaWJ1dGUoImhyZWYiLCJodHRwczovL3d3dy5jaGFwb3J0LmNvbS9wb3dlcmVkLWJ5LWNoYXBvcnQ/dXRtX3NvdXJjZT0iK2VuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ob3N0KSsiJnV0bV9tZWRpdW09d2lkZ2V0Iiksci5zZXRBdHRyaWJ1dGUoInRhcmdldCIsIl9ibGFuayIpKSx2bihsJiZsLmNzcyYmbC5jc3Mud2lkZ2V0fHxlLmNzc1VybCksKGwmJmwuanMmJmwuanMuYXVkaW98fGUuYXVkaW9QbGF5ZXJVcmwpJiZ2b2lkIDAhPT1tdCYmbXQuc2V0UGxheWVyQXNzZXRQYXRoKGUuYXVkaW9QbGF5ZXJVcmwpLGUudW5yZWFkJiZlLnVucmVhZC5jb3VudHx8ZS5pc0NoYXRTdGFydGVkP3FuKHYsZiwhMCk6SXQoITEpLHUuc2V0U3RhdGUoInZpc2l0b3JSZWFkeSIpLHQmJnQoZSl9fWZ1bmN0aW9uIF90KCl7RyYmYi53aWRnZXRXaW5kb3cmJmIuaW5uZXImJihiLndpZGdldFdpbmRvdy5zdHlsZS5oZWlnaHQ9RysicHgiLGIuaW5uZXIuc3R5bGUuaGVpZ2h0PUcrInB4Iil9ZnVuY3Rpb24ga3QoKXtiLndpZGdldFdpbmRvdyYmYi5pbm5lciYmKGIud2lkZ2V0V2luZG93LnN0eWxlLmhlaWdodD0iIixiLmlubmVyLnN0eWxlLmhlaWdodD0iIil9ZnVuY3Rpb24gT3QoZSx0KXtudWxsPT1lP2Quc3R5bGUubGVmdD0iIjpkLnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IixlKyJweCIsImltcG9ydGFudCIpLG51bGw9PXQ/ZC5zdHlsZS50b3A9IiI6ZC5zdHlsZS5zZXRQcm9wZXJ0eSgidG9wIix0KyJweCIsImltcG9ydGFudCIpfWZ1bmN0aW9uIEV0KGUpe2Z1bmN0aW9uIHQoKXtPdCgtMWU0LC0xZTQpLGQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixkLnN0eWxlLm9wYWNpdHk9MCxkLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZC5zdHlsZS5kaXNwbGF5PSJub25lIn1uZT0hMSxiLmxhdW5jaGVyQnV0dG9uLnN0eWxlLm9wYWNpdHk9MCxlP3QoKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dy5yZW5kZXIobnVsbCxmdW5jdGlvbigpe25lfHx0KCl9KX0sNTAwKX1mdW5jdGlvbiBOdCgpe25lPSEwLE90KG9lLmxlZnQsb2UudG9wKSxkLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixkLnN0eWxlLnBvc2l0aW9uPSIiLGQuc3R5bGUub3BhY2l0eT0iIixkLnN0eWxlLnZpc2liaWxpdHk9IiIsYi5sYXVuY2hlckJ1dHRvbi5zdHlsZS5vcGFjaXR5PSIiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZTt3LnJlbW92ZUNzc0NsYXNzKGIuYmlnRmF0U2hhZG93LCJjaGFwb3J0LXNoYWRvdy1oaWRlIiksZT0hMCx3LnRvZ2dsZUNzc0NsYXNzKGIud2lkZ2V0V2luZG93LCJjaGFwb3J0LXdpbmRvdy1hbmltIixlKSx3LnRvZ2dsZUNzc0NsYXNzKGIubWVzc2FnZSwiY2hhcG9ydC13aW5kb3ctYW5pbSIsZSksdy50b2dnbGVDc3NDbGFzcyhiLmxhdW5jaGVyQnV0dG9uLCJjaGFwb3J0LWxhdW5jaGVyLWFuaW0iLGUpLGIuY2hhbm5lbHMmJncudG9nZ2xlQ3NzQ2xhc3MoYi5jaGFubmVscywiY2hhcG9ydC1jaGFubmVscy1hbmltIixlKX0sMzAwKX1mdW5jdGlvbiBBdCgpe3ZhciBlPVsiY2hhcG9ydC1jb250YWluZXIiLCJjaGFwb3J0LWNvbnRhaW5lci1wb3NpdGlvbmVkIiwiY2hhcG9ydC1jb2xsYXBzZWQiXSx0PXkmJjA8aC5saXN0LmZpbHRlcihTdCkubGVuZ3RoO2Z1bmN0aW9uIG4oZSl7Vm4oKSxtbyghMSksdG4oKSxGbigpLGUuc3RvcFByb3BhZ2F0aW9uKCl9bz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksWCYmZS5wdXNoKCJjaGFwb3J0LWRldmljZS1pb3MiKSwkJiZlLnB1c2goImNoYXBvcnQtZGV2aWNlLWFuZHJvaWQiKSx5JiYoZS5wdXNoKCJjaGFwb3J0LWRldmljZS1tb2JpbGUiKSxZfHxlLnB1c2goImNoYXBvcnQtbm9uLXJlc3BvbnNpdmUtbGF5b3V0IikpLGQuY2xhc3NOYW1lPWUuam9pbigiICIpLGQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjaGFwb3J0LWxhdW5jaGVyIj48ZGl2IGNsYXNzPSJjaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiBjaGFwb3J0LWFuaW0taGlkZSBuby1waG90byI+PGRpdiBjbGFzcz0iY2hhcG9ydC1sYXVuY2hlci1jaGF0LWljb24iPjwvZGl2PjxkaXYgY2xhc3M9ImNoYXBvcnQtbGF1bmNoZXItY2xvc2UtaWNvbiI+PC9kaXY+PGRpdiBjbGFzcz0iY2hhcG9ydC1sYXVuY2hlci1vcGVyYXRvci1waG90byI+PC9kaXY+PGRpdiBjbGFzcz0iY2hhcG9ydC1sYXVuY2hlci1iYWRnZSBjaGFwb3J0LWJhZGdlLWhpZGUiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNoYXBvcnQtd2luZG93IGNoYXBvcnQtYW5pbS1oaWRlIj48ZGl2IGNsYXNzPSJjaGFwb3J0LWlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJjaGFwb3J0LWxvYWRpbmctb3ZlcmxheSBjaGFwb3J0LWFuaW0taGlkZSI+PGRpdiBjbGFzcz0iY2hhcG9ydC1pbm5lci1oZWFkZXIgaGVhZGVyLWV4cGFuZGVkIj48L2Rpdj48ZGl2IGNsYXNzPSJjaGFwb3J0LWlubmVyLWJvZHkiPjxkaXYgY2xhc3M9ImNoYXBvcnQtbG9hZGVyIGNoYXBvcnQtY2VudGVyIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nKyh0Pyc8ZGl2IGNsYXNzPSJjaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgY2hhcG9ydC1hbmltLWhpZGUiPjxkaXYgY2xhc3M9ImNoYXBvcnQtY2hhbm5lbHMtb3ZlcmxheSI+PC9kaXY+PGRpdiBjbGFzcz0iY2hhcG9ydC1jaGFubmVscy1ibG9ja3MiPjxkaXYgY2xhc3M9ImNoYXBvcnQtY2hhbm5lbHMtbGlzdCBjaGFwb3J0LWNoYW5uZWxzLWJsb2NrIj48YSBocmVmPSJqYXZhc2NyaXB0OiB2b2lkKDApOyIgZGF0YS1jaGFubmVsPSJ3ZWJzaXRlIiBjbGFzcz0iY2hhcG9ydC1jaGFubmVsIGNoYXBvcnQtY2hhbm5lbC13ZWJzaXRlIj4nK2cud2Vic2l0ZUNoYW5uZWwrIjwvYT4iK2gubGlzdC5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGF0Zm9ybSxuPWUuZGlzcGxheU5hbWV8fHRbMF0udG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKSxlPVN0KGUpO3JldHVybiBlPyc8YSBocmVmPSInK2VuY29kZVVSSShlKSsnIiBkYXRhLWNoYW5uZWw9IicrdCsnIiBjbGFzcz0iY2hhcG9ydC1jaGFubmVsIGNoYXBvcnQtY2hhbm5lbC0nK3QrJyI+JytuKyI8L2E+IjoiIn0pLmpvaW4oIiIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJjaGFwb3J0LWNoYW5uZWxzLWJsb2NrIGNoYXBvcnQtY2hhbm5lbHMtYWN0aW9ucyI+PGEgaHJlZj0iamF2YXNjcmlwdDogdm9pZCgwKTsiIGNsYXNzPSJjaGFwb3J0LWNoYW5uZWxzLWNhbmNlbCI+JytnLmNhbmNlbCsiPC9hPjwvZGl2PjwvZGl2PjwvZGl2PiI6IiIpKyc8ZGl2IGNsYXNzPSJjaGFwb3J0LW1lc3NhZ2UgY2hhcG9ydC1tZXNzYWdlLXdpdGgtcmVwbGllcyBjaGFwb3J0LWFuaW0taGlkZSI+PGRpdiBjbGFzcz0iY2hhcG9ydC1tZXNzYWdlLXBvcHVwIj48ZGl2IGNsYXNzPSJjaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSI+PGRpdiBjbGFzcz0ib3BlcmF0b3ItZmFjZSI+PGRpdiBjbGFzcz0icGhvdG8iPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im9wZXJhdG9yLW5hbWUiPjwvZGl2PjxkaXYgY2xhc3M9Im1lc3NhZ2UtdGV4dCI+PC9kaXY+PGRpdiBjbGFzcz0iY2hhcG9ydC1jbG9zZSB2aXNpYmxlIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyI+PC9kaXY+PGRpdiBjbGFzcz0iY2hhcG9ydC1tZXNzYWdlLWlucHV0Ij4nK2cuaW5wdXQrIjwvZGl2PiIrKFMudHJpZ2dlcnM/JzxkaXYgY2xhc3M9ImNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IGNoYXBvcnQtaGlkZSI+PGEgY2xhc3M9ImNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5LWlubmVyIj48c3BhbiBjbGFzcz0iY2hhcG9ydC1mdWxsLWxhYmVsIj4nK2cucG93ZXJlZEJ5Kyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXBvcnQtc2hvcnQtbGFiZWwiPuKaoSBieTwvc3Bhbj48ZGl2IGNsYXNzPSJjaGFwb3J0LXNlcCI+wrc8L2Rpdj48P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+IDwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMjAwMTA5MDQvL0VOIiAgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4gPHN2ZyB2ZXJzaW9uPSIxLjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHdpZHRoPSIxNzAyLjAwMDAwMHB0IiBoZWlnaHQ9IjUxMi4wMDAwMDBwdCIgdmlld0JveD0iMCAwIDE3MDIuMDAwMDAwIDUxMi4wMDAwMDAiICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4gIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDUxMi4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiIGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0ibm9uZSI+IDxwYXRoIGQ9Ik02MjUwIDI4NDAgbDAgLTEyMDAgMTg1IDAgMTg1IDAgMCA2MTEgMCA2MTEgNTggNTcgYzY3IDY0IDE0MiAxMTEgMjI4IDE0MyA0OCAxOCA4MSAyMiAxNzQgMjMgMTExIDAgMTE4IC0xIDE4MyAtMzMgNzcgLTM4IDExNyAtODQgMTQ0IC0xNjYgMTUgLTQ1IDE3IC0xMjMgMjEgLTY0OCBsNCAtNTk4IDE4NCAwIDE4NSAwIC00IDY4MyBjLTQgNzQ0IC0yIDcyMCAtNjMgODQ2IC01NCAxMTAgLTE3MiAxOTcgLTMxNCAyMzIgLTkyIDIzIC0yOTAgMTggLTM4NSAtMTAgLTE0MiAtNDAgLTI2MSAtMTA4IC0zNjcgLTIxMCBsLTQ4IC00NSAwIDQ1MiAwIDQ1MiAtMTg1IDAgLTE4NSAwIDAgLTEyMDB6Ii8+IDxwYXRoIGQ9Ik0yMzM1IDM5MjYgYy0xNzEgLTMzIC0zMzkgLTk0IC00NzMgLTE3NCAtMTEyIC02NyAtMTUyIC0xMDAgLTE1MiAtMTI1IDAgLTI4IDQzNiAtNDY3IDQ2NCAtNDY3IDEwIDAgNTAgMTUgODkgMzQgMTMwIDYyIDI2MyA4NCAzOTYgNjYgOTAgLTEyIDIwMiAtNDggMjY3IC04NiAyMiAtMTMgNDggLTI0IDU3IC0yNCAxNyAwIDQ1MSA0MjAgNDY5IDQ1NCA5IDE3IDUgMjUgLTI5IDU2IC0xMDQgOTEgLTMxNiAxOTMgLTUwMyAyNDMgLTEwNiAyNyAtMTMwIDMwIC0zMTUgMzMgLTEzOCAyIC0yMjIgLTEgLTI3MCAtMTB6Ii8+IDxwYXRoIGQ9Ik0xNTA2MCAzNjE1IGwwIC0yMzUgLTEzMCAwIGMtMTA5IDAgLTEzMCAyIC0xMzAgMTUgMCAyMiAtNjkgMTkgLTE1OSAtNSAtMTMwIC0zNyAtMjI3IC05NCAtMzM4IC0yMDQgbC03MyAtNzAgMCAxMzIgMCAxMzIgLTE4NSAwIC0xODUgMCAwIC04NzAgMCAtODcwIDE4NSAwIDE4NSAwIDAgNTkyIDAgNTkxIDI1IDMzIGMzMyA0MyAxMzcgMTE3IDIwOCAxNDggOTkgNDQgMTczIDUzIDM5NCA0OCBsMjAyIC01IDMgLTU2NiBjMyAtNTUxIDQgLTU2OCAyNCAtNjIzIDY2IC0xNzMgMjA1IC0yNTggNDIxIC0yNTggMTM2IDAgMzA1IDUxIDMzNiAxMDEgNyAxMiAtMSA1MSAtMzIgMTQ4IGwtNDIgMTMxIC00MiAtMjEgYy0yMyAtMTIgLTY5IC0yNCAtMTAzIC0yNyAtODEgLTYgLTEyNSAxNSAtMTYyIDc3IGwtMjcgNDYgLTMgNDk4IC0zIDQ5NyAxNzYgMCAxNzUgMCAwIDE2NSAwIDE2NSAtMTc1IDAgLTE3NSAwIDAgMjM1IDAgMjM1IC0xODUgMCAtMTg1IDAgMCAtMjM1eiIvPiA8cGF0aCBkPSJNMTQ4MyAzNDIzIGMtNDMgLTQ2IC0xMzIgLTE4NyAtMTczIC0yNzYgLTg1IC0xODMgLTExOSAtMzI2IC0xMjcgLTUzNyAtOSAtMjQzIDI5IC00MzMgMTI4IC02MzkgNTUgLTExNiAxNTIgLTI2NiAxODEgLTI4MiAxNiAtOSA0NSAxNCAyMDYgMTY5IDIxOCAyMDkgMjgyIDI3NiAyODIgMjk0IDAgOCAtMTUgNDMgLTM0IDc4IC01OCAxMTAgLTgwIDE5OSAtODEgMzI1IDAgMTMxIDE0IDE5MSA2OCAzMDUgMjIgNDcgNDUgOTQgNDkgMTA0IDcgMTYgLTI5IDU3IC0yMjQgMjUzIC0xMjggMTI4IC0yMzYgMjMzIC0yNDEgMjMzIC00IDAgLTIwIC0xMiAtMzQgLTI3eiIvPiA8cGF0aCBkPSJNMzM5NyAzMjAyIGMtMTI1IC0xMjUgLTIyNyAtMjMyIC0yMjcgLTIzOCAwIC03IDE4IC00NyAzOSAtOTAgNTIgLTEwNiA3NCAtMTk3IDc0IC0zMTQgMCAtMTE1IC0xOSAtMTk1IC03NCAtMzExIC0zMiAtNjggLTM5IC05MCAtMzEgLTEwNSA2IC0xMSAxMTIgLTEyMCAyMzUgLTI0MiAyMDIgLTIwMSAyMjcgLTIyMyAyNDUgLTIxMyAyOCAxNSAxMzQgMTc1IDE4MSAyNzQgODkgMTg4IDEzMSAzNzggMTMxIDU5OCAwIDE2MSAtMTkgMjgzIC02NiA0MjggLTYwIDE4NCAtMjExIDQ0MSAtMjU5IDQ0MSAtMTMgMCAtOTggLTc4IC0yNDggLTIyOHoiLz4gPHBhdGggZD0iTTUyMzYgMzQxMCBjLTM2NyAtNTggLTYzNCAtMjk2IC03MjcgLTY0NSAtMzIgLTEyMCAtMzcgLTMzMCAtMTEgLTQ1NSA0NSAtMjE5IDE1NSAtNDA1IDMxMSAtNTI0IDEwMiAtNzkgMTk0IC0xMjMgMzQxIC0xNjMgOTMgLTI1IDM1NyAtMjUgNDU1IDEgMTQ5IDM4IDMxMCAxMzYgMzk4IDI0MSBsMzQgNDAgLTEyMSAxMTIgLTEyMSAxMTEgLTU3IC01NyBjLTk4IC05OCAtMjA0IC0xNDEgLTM0OCAtMTQxIC0yMDUgMCAtMzczIDEwNCAtNDU5IDI4MiAtMjIgNDYgLTQ1IDExMCAtNTIgMTQzIC0xNyA4MyAtMTUgMjQ2IDUgMzI5IDY1IDI3NCAzMDggNDM5IDU4NiAzOTggMTA2IC0xNSAxODEgLTUyIDI2MCAtMTI4IGw2NiAtNjMgMTE0IDEwNSBjNjMgNTggMTE2IDExMSAxMTggMTE4IDIgNyAtMzUgNDkgLTgyIDkzIC05NyA5MiAtMjAxIDE1MCAtMzMxIDE4MyAtOTIgMjQgLTI4NyAzNCAtMzc5IDIweiIvPiA8cGF0aCBkPSJNODY5OCAzNDA1IGMtMTExIC0xOCAtMjIyIC01NSAtMzI1IC0xMTAgLTg2IC00NiAtMjAxIC0xMjggLTIxMCAtMTUwIC0yIC04IDI4IC02OSA2OSAtMTM4IGw3MyAtMTI1IDQ4IDQzIGM2OCA2MCAxNTkgMTExIDI1MiAxNDIgNzAgMjMgOTYgMjcgMjEwIDI3IDE0NSAwIDIwNCAtMTUgMjg3IC03MiAxMDEgLTcwIDEyOCAtMTQ1IDEyOCAtMzYwIGwwIC0xNTQgLTU2IDUxIGMtNjEgNTYgLTE4NyAxMjIgLTI3OSAxNDcgLTkyIDI0IC0zMDQgMzAgLTM5MCAxMCAtMTY5IC00MCAtMzE1IC0xNDcgLTM4MCAtMjgwIC0xMTYgLTIzNSAtNjYgLTUxOSAxMTkgLTY4MiA2NiAtNTggMTkyIC0xMjAgMjgxIC0xMzkgMjMyIC00OCA1MDQgMjUgNjYzIDE3OCBsNDIgNDEgMCAtOTcgMCAtOTcgMTg1IDAgMTg1IDAgMCA2MTUgYzAgNjg2IC0yIDcwOCAtNjYgODQyIC0xMTYgMjQzIC00NTIgMzY3IC04MzYgMzA4eiBtMjQ2IC05NDAgYzk0IC0yMCAxODQgLTY0IDI0MCAtMTE3IGw0NiAtNDUgMCAtMTM3IDAgLTEzNyAtNDYgLTQ0IGMtODUgLTgzIC0yMTUgLTEyOSAtMzY5IC0xMjkgLTEwOCAwIC0xODEgMjAgLTI0OSA2OCAtOTIgNjUgLTEzMiAxNTEgLTEyNCAyNjcgNiA3NSA0MyAxNTQgOTEgMTk1IDk5IDg0IDI1MiAxMTMgNDExIDc5eiIvPiA8cGF0aCBkPSJNMTA3NzAgMzQwNSBjLTE0MCAtMjggLTI2MSAtOTUgLTM2NyAtMjA0IGwtNjMgLTY0IDAgMTIyIDAgMTIxIC0xODUgMCAtMTg1IDAgMCAtMTIwMCAwIC0xMjAwIDE4NSAwIDE4NSAwIDAgNDUyIDAgNDUyIDY1IC02OCBjMTUzIC0xNTYgMzMwIC0yMjYgNTQ0IC0yMTMgMTIwIDcgMTk0IDI2IDI5NyA3NyAxODcgOTEgMzI0IDI3NSAzOTEgNTI1IDI1IDkzIDI3IDExNCAyNyAzMDUgMCAxOTEgLTIgMjEyIC0yNyAzMDUgLTkwIDMzNCAtMjk1IDUzOCAtNTkzIDU5MCAtMTAzIDE4IC0xODUgMTggLTI3NCAweiBtMTIxIC0zMjUgYzEyOCAtMjQgMjUzIC0xMTggMzE3IC0yMzkgOTggLTE4MyA5OCAtNDgwIDAgLTY2NCAtMTU2IC0yOTIgLTU0OCAtMzMyIC04MDUgLTgyIGwtNjMgNjEgMCAzNTEgMCAzNTAgNDIgNDggYzEyMCAxMzcgMzMwIDIwOCA1MDkgMTc1eiIvPiA8cGF0aCBkPSJNMTI2MDAgMzQxNCBjLTE0IC0yIC01MiAtOSAtODUgLTE1IC0yNjAgLTQ3IC00NzUgLTIxMSAtNTk2IC00NTQgLTc4IC0xNTggLTkzIC0yMjcgLTkzIC00MzUgMCAtMjAxIDE1IC0yNzMgODQgLTQxOSAxMTUgLTIzOSAyOTkgLTM5MyA1NTUgLTQ2MiAxMTkgLTMzIDM2NSAtMzMgNDg1IC0xIDMxMSA4NCA1MzIgMzA4IDYxNyA2MjggMzYgMTM2IDM4IDM1NCA1IDQ4NiAtODUgMzQwIC0zMDIgNTY0IC02MzEgNjQ5IC03MyAxOSAtMjg0IDMzIC0zNDEgMjN6IG0yNzAgLTM1MCBjMTk5IC02NiAzMjYgLTI2MiAzMzggLTUyMSAxNSAtMzYxIC0xOTEgLTYxMyAtNTAzIC02MTMgLTE0MSAwIC0yNTQgNDkgLTM0OSAxNTAgLTk5IDEwNyAtMTQ4IDI1MSAtMTQ5IDQzMCAwIDI0MSAxMDUgNDQwIDI3NiA1MjUgNDAgMTkgOTIgNDAgMTE3IDQ1IDY1IDEzIDIwNiA1IDI3MCAtMTZ6Ii8+IDxwYXRoIGQ9Ik0xOTEyIDE3MjcgYy0xNTAgLTE1MSAtMjQyIC0yNTAgLTI0MiAtMjYyIDAgLTExIC03IC05MiAtMTUgLTE4MCAtMTkgLTIwNSAtMTkgLTIzNSAwIC0yMzUgOCAwIDk0IDQ3IDE5MiAxMDUgMTc5IDEwNSAyMDUgMTE1IDI1OCA5NSA2MSAtMjMgMTg3IC01MiAyODUgLTY1IDI5MiAtNDAgNjAzIDE2IDg1NSAxNTUgMTA1IDU4IDIxNSAxMzggMjE1IDE1NyAwIDIzIC00NTAgNDczIC00NzMgNDczIC0xMCAwIC01NSAtMTggLTEwMCAtNDAgLTEwNyAtNTEgLTE4OSAtNzAgLTMxMyAtNzAgLTEyMSAwIC0yMjAgMjMgLTMyMyA3NCAtMzkgMjAgLTc2IDM2IC04NCAzNiAtNyAwIC0xMjIgLTEwOSAtMjU1IC0yNDN6Ii8+IDwvZz4gPC9zdmc+PC9hPjwvZGl2Pic6IiIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJjaGFwb3J0LWJpZy1zaGFkb3cgY2hhcG9ydC1zaGFkb3ctaGlkZSI+PC9kaXY+JyxiLnJvb3Q9ZCxiLmJpZ0ZhdFNoYWRvdz1QKCJjaGFwb3J0LWJpZy1zaGFkb3ciKSxiLmlubmVyPVAoImNoYXBvcnQtaW5uZXIiKSxiLmxvYWRpbmdPdmVybGF5PVAoImNoYXBvcnQtbG9hZGluZy1vdmVybGF5IiksYi5tZXNzYWdlPVAoImNoYXBvcnQtbWVzc2FnZSIpLGIubWVzc2FnZUJvZHk9UCgiY2hhcG9ydC1tZXNzYWdlLXBvcHVwIiksYi5tZXNzYWdlUmVwbGllcz1QKCJjaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyIpLGIubWVzc2FnZUlucHV0PVAoImNoYXBvcnQtbWVzc2FnZS1pbnB1dCIpLGIubWVzc2FnZVBvd2VyZWRCeT1QKCJjaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSIpLGIubWVzc2FnZVBob3RvPVAoInBob3RvIixiLm1lc3NhZ2VCb2R5KSxiLm1lc3NhZ2VTZW5kZXJOYW1lPVAoIm9wZXJhdG9yLW5hbWUiLGIubWVzc2FnZUJvZHkpLGIubWVzc2FnZVRleHQ9UCgibWVzc2FnZS10ZXh0IixiLm1lc3NhZ2VCb2R5KSxiLm1lc3NhZ2VDbG9zZT1QKCJjaGFwb3J0LWNsb3NlIixiLm1lc3NhZ2VCb2R5KSxiLmxhdW5jaGVyUm9vdD1QKCJjaGFwb3J0LWxhdW5jaGVyIiksYi5sYXVuY2hlckJ1dHRvbj1QKCJjaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiIsYi5sYXVuY2hlclJvb3QpLGIubGF1bmNoZXJJY29uPVAoImNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29uIiksYi5sYXVuY2hlclVucmVhZD1QKCJjaGFwb3J0LWxhdW5jaGVyLWJhZGdlIiksYi5jaGFubmVscz1QKCJjaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIiKSxiLmNoYW5uZWxzTGlzdD1QKCJjaGFwb3J0LWNoYW5uZWxzLWxpc3QiLGIuY2hhbm5lbHMpLGIud2lkZ2V0V2luZG93PVAoImNoYXBvcnQtd2luZG93Iiksdy5vbihiLm1lc3NhZ2VDbG9zZSwiY2xpY2siLGZ1bmN0aW9uKGUpe1ZuKCksbW8oITApLCRuKCksRm4oKSxlLnN0b3BQcm9wYWdhdGlvbigpfSksdy5vbihiLm1lc3NhZ2VJbnB1dCwiY2xpY2siLG4pLHcub24oYi5tZXNzYWdlQm9keSwiY2xpY2siLG4pLHQ/KHcub24oYi5sYXVuY2hlckJ1dHRvbiwiY2xpY2siLGZ1bmN0aW9uKGUpe0k9PT1VLmV4cGFuZGVkP25uKCk6eWU/KG1vKCExKSx0bigpKTpCKFUuY2hhbm5lbHMpLGUuc3RvcFByb3BhZ2F0aW9uKCl9KSx3Lm9uKGIuY2hhbm5lbHMsImNsaWNrIixmdW5jdGlvbihlKXtJPT09VS5jaGFubmVscyYmQihVLmNvbGxhcHNlZCl9KSx3Lm9uKGIuY2hhbm5lbHNMaXN0LCJjbGljayIsZnVuY3Rpb24oZSl7ST09PVUuY2hhbm5lbHMmJmUuc3RvcFByb3BhZ2F0aW9uKCl9KSxiLmNoYW5uZWxzTGlzdC5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhcG9ydC1jaGFubmVsIikuZm9yRWFjaChmdW5jdGlvbihlKXt3Lm9uKGUsImNsaWNrIixmdW5jdGlvbihlKXtoLnVzZSh0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1jaGFubmVsIiksZSl9KX0pLHcub24oUCgiY2hhcG9ydC1jaGFubmVscy1jYW5jZWwiKSwiY2xpY2siLGZ1bmN0aW9uKCl7QihVLmNvbGxhcHNlZCl9KSk6dy5vbihiLmxhdW5jaGVyQnV0dG9uLCJjbGljayIsZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxWbigpLChJPT09VS5leHBhbmRlZD9ubjp0bikoKX0pLHcub24od2luZG93LCJwYWdlaGlkZSIsZnVuY3Rpb24oKXtJPT09VS5leHBhbmRlZCYmaygid2lkZ2V0X2xhc3RfY2xvc2VkIiwobmV3IERhdGUpLmdldFRpbWUoKSl9KSxFdCghMCksby5hcHBlbmRDaGlsZChkKSxDbihDLnBvc2l0aW9uKSxJbigpLHcub24od2luZG93LCJyZXNpemUiLGZ1bmN0aW9uKCl7Q2UoKSxTZSgpfSksQ2UoKSx1LnNldFN0YXRlKCJkb21SZWFkeSIpfWZ1bmN0aW9uIFB0KGUpe3NldFRpbWVvdXQoVXQsIm51bWJlciI9PXR5cGVvZiBlP01hdGgubWF4KGUsMCk6MCl9ZnVuY3Rpb24gVXQoKXt2YXIgdCxlO2Z1bmN0aW9uIG4oKXtiZS5sb2FkQWNjb3VudEVzc2VudGlhbHModi5hcHBJZCxmdW5jdGlvbigpe3cuZG9XaGVuV2luZG93UmVhZHkoZnVuY3Rpb24oKXt2YXIgdCxuLGUsbztmdW5jdGlvbiBhKCl7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSl8fHt9O3JldHVybntzY3JlZW5XaWR0aDpzY3JlZW4ud2lkdGgsbGF5b3V0Vmlld3BvcnRXaWR0aDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsYm9keU1hcmdpblRvcDotMSE9PVsicmVsYXRpdmUiLCJhYnNvbHV0ZSIsImZpeGVkIl0uaW5kZXhPZihlLnBvc2l0aW9uKT9lLm1hcmdpblRvcDoiMCIsdmlzdWFsVmlld3BvcnRXaWR0aDp3aW5kb3cuaW5uZXJXaWR0aCx2aXN1YWxWaWV3cG9ydEhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHQscGFnZVhPZmZzZXQ6d2luZG93LnBhZ2VYT2Zmc2V0LHBhZ2VZT2Zmc2V0OndpbmRvdy5wYWdlWU9mZnNldH19QXQoKSxCKFUuaGlkZGVuKSx5JiYhWSYmc2NyZWVuJiYoaT13LnRSZW5kZXIoYSxmdW5jdGlvbihlKXtlLnNjcmVlbldpZHRoJiZlLnZpc3VhbFZpZXdwb3J0V2lkdGgmJih0JiZjbGVhclRpbWVvdXQodCksdD1zZXRUaW1lb3V0KG4sNTApKX0pLG49dy50UmVuZGVyKGEsZnVuY3Rpb24oZSl7ZS5zY3JlZW5XaWR0aCYmZS52aXN1YWxWaWV3cG9ydFdpZHRoJiYodD0xLyhzY3JlZW4ud2lkdGgvZS52aXN1YWxWaWV3cG9ydFdpZHRoKSxkLnN0eWxlLmZvbnRTaXplPTE0KnQrInB4IixiLmxhdW5jaGVyUm9vdC5zdHlsZS5mb250U2l6ZT0xNCp0KyJweCIsNDI2PD1lLnNjcmVlbldpZHRoPyhiLm1lc3NhZ2VCb2R5LnN0eWxlWyJtYXgtd2lkdGgiXT0iMjMuMjFlbSIsYi5tZXNzYWdlUmVwbGllcy5zdHlsZVsibWF4LXdpZHRoIl09IjIzLjIxZW0iLGIubWVzc2FnZS5zdHlsZVsibWF4LXdpZHRoIl09IjIzLjIxZW0iKTozNzA8PWUuc2NyZWVuV2lkdGg/KGIubWVzc2FnZUJvZHkuc3R5bGVbIm1heC13aWR0aCJdPSIxOS4yOWVtIixiLm1lc3NhZ2VSZXBsaWVzLnN0eWxlWyJtYXgtd2lkdGgiXT0iMTkuMjllbSIsYi5tZXNzYWdlLnN0eWxlWyJtYXgtd2lkdGgiXT0iMTkuMjllbSIpOih0PShlLnNjcmVlbldpZHRoLTEwMCkvMTQsYi5tZXNzYWdlQm9keS5zdHlsZVsibWF4LXdpZHRoIl09dCsiZW0iLGIubWVzc2FnZVJlcGxpZXMuc3R5bGVbIm1heC13aWR0aCJdPXQrImVtIixiLm1lc3NhZ2Uuc3R5bGVbIm1heC13aWR0aCJdPXQrImVtIikpO3ZhciB0O3Q9KHQ9cGFyc2VJbnQoZS5ib2R5TWFyZ2luVG9wLnJlcGxhY2UoInB4IiwiIikpKXx8MCxmdW5jdGlvbihlLHQpe29lLmxlZnQ9ZSxvZS50b3A9dCxuZSYmT3QoZSx0KX0oZS5wYWdlWE9mZnNldCxlLnBhZ2VZT2Zmc2V0K2UudmlzdWFsVmlld3BvcnRIZWlnaHQtdC0xKSxkLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsZS52aXN1YWxWaWV3cG9ydFdpZHRoLTErInB4IiwiaW1wb3J0YW50Iil9KSx3Lm9uKHdpbmRvdywic2Nyb2xsIixpKSx3Lm9uKHdpbmRvdywicmVzaXplIixpKSx4JiZ3Lm9uKHguY29udGVudFdpbmRvdywicmVzaXplIixpKSxvPVVuKCksYi5tZXNzYWdlUmVwbGllcy5zdHlsZVsibWFyZ2luLXRvcCJdPSIwLjg2ZW0iLGIubWVzc2FnZS5zdHlsZS5yaWdodD0iMS40M2VtIixiLm1lc3NhZ2Uuc3R5bGUuYm90dG9tPSI3LjE0ZW0iLGIubWVzc2FnZS5zdHlsZVsibWFyZ2luLWxlZnQiXT0iNS43MWVtIixiLm1lc3NhZ2VQaG90by5zdHlsZS53aWR0aD0iMi4xNGVtIixiLm1lc3NhZ2VQaG90by5zdHlsZS5oZWlnaHQ9IjIuMTRlbSIsYi5tZXNzYWdlU2VuZGVyTmFtZS5zdHlsZVsibWFyZ2luLWJvdHRvbSJdPSIwLjM1N2VtIixiLm1lc3NhZ2VTZW5kZXJOYW1lLnN0eWxlWyJtYXJnaW4tcmlnaHQiXT0iMS40M2VtIixiLm1lc3NhZ2VTZW5kZXJOYW1lLnN0eWxlWyJmb250LXNpemUiXT0iMC45NmVtIixiLm1lc3NhZ2VUZXh0LnN0eWxlWyJtYXgtaGVpZ2h0Il09IjIwLjgzZW0iLGIubWVzc2FnZVRleHQuc3R5bGVbImZvbnQtc2l6ZSJdPSIxLjAzZW0iLGIubWVzc2FnZUNsb3NlLnN0eWxlLmhlaWdodD0iMi45M2VtIixiLm1lc3NhZ2VDbG9zZS5zdHlsZS53aWR0aD0iMy41N2VtIixiLm1lc3NhZ2VSZXBsaWVzLnN0eWxlWyJtYXJnaW4tdG9wIl09IjAuODZlbSIsYi5tZXNzYWdlSW5wdXQuc3R5bGVbIm1heC13aWR0aCJdPSIyMS42N2VtIixiLm1lc3NhZ2VJbnB1dC5zdHlsZS5oZWlnaHQ9IjMuMzNlbSIsYi5tZXNzYWdlSW5wdXQuc3R5bGUucGFkZGluZz0iMWVtIDEuMzNlbSAxZW0gMS4zM2VtIixiLm1lc3NhZ2VJbnB1dC5zdHlsZVsiZm9udC1zaXplIl09IjEuMDdlbSIsYi5tZXNzYWdlUG93ZXJlZEJ5LnN0eWxlWyJtYXJnaW4tdG9wIl09IjAuNzFlbSIsYi5tZXNzYWdlUG93ZXJlZEJ5LnN0eWxlWyJtYXJnaW4tYm90dG9tIl09Ii0yLjcxZW0iLGIubGF1bmNoZXJVbnJlYWQuc3R5bGVbImZvbnQtc2l6ZSJdPSIwLjg2ZW0iLGIubGF1bmNoZXJVbnJlYWQuc3R5bGVbImxpbmUtaGVpZ2h0Il09IjEuMjEiLGIubGF1bmNoZXJVbnJlYWQuc3R5bGVbIm1pbi13aWR0aCJdPSIxLjIxZW0iLGIubGF1bmNoZXJVbnJlYWQuc3R5bGUuaGVpZ2h0PSIxLjIxZW0iLGIubGF1bmNoZXJVbnJlYWQuc3R5bGUudG9wPSIwLjA4ZW0iLGIubGF1bmNoZXJVbnJlYWQuc3R5bGUucmlnaHQ9Ii0wLjMzZW0iLChlPVAoIm9wZXJhdG9yLWZhY2UiLGIubWVzc2FnZUJvZHkpKSYmKGUuc3R5bGUubGVmdD0iLTIuOTNlbSIsZS5zdHlsZS5ib3R0b209IjAuNWVtIiksKGU9UCgiY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkiLGIubWVzc2FnZUJvZHkpKSYmKGUuc3R5bGUucGFkZGluZz0iMWVtIDEuNDNlbSAxLjA3ZW0gMS40M2VtIixlLnN0eWxlWyJib3JkZXItcmFkaXVzIl09IjAuNzFlbSIpLChlPVAoImNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5LWlubmVyIixiLm1lc3NhZ2VQb3dlcmVkQnkpKSYmKGUuc3R5bGVbImZvbnQtc2l6ZSJdPSIwLjkzZW0iLGUuc3R5bGVbImJvcmRlci1yYWRpdXMiXT0iMy44NWVtIixlLnN0eWxlLmhlaWdodD0iMi4xNWVtIixlLnN0eWxlLnBhZGRpbmc9IjAgMS4xNWVtIixlPVAoImNoYXBvcnQtc2VwIixlKSkmJihlLnN0eWxlWyJtYXJnaW4tbGVmdCJdPSIwLjM4ZW0iKSxvLmluc2VydFJ1bGUoIi5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5ib3QtcGhvdG8gaW1nIHsgd2lkdGg6IDEuMjFlbSAhaW1wb3J0YW50OyBoZWlnaHQ6IDEuMjFlbSAhaW1wb3J0YW50OyB0b3A6IDAuMzZlbSAhaW1wb3J0YW50OyBsZWZ0OiAwLjQ2NWVtICFpbXBvcnRhbnQ7IH0iLG8uY3NzUnVsZXMubGVuZ3RoKSxvLmluc2VydFJ1bGUoIi5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtY2xvc2U6YmVmb3JlLCAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LWNsb3NlOmFmdGVyIHsgdG9wOiAwLjkzZW0gIWltcG9ydGFudDsgcmlnaHQ6IDEuNWVtICFpbXBvcnRhbnQ7IHdpZHRoOiAwLjA3ZW0gIWltcG9ydGFudDsgaGVpZ2h0OiAxLjI5ZW0gIWltcG9ydGFudDsgfSIsby5jc3NSdWxlcy5sZW5ndGgpLG8uaW5zZXJ0UnVsZSgiLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb24geyBtYXgtd2lkdGg6IDE2LjY3ZW0gIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czogMC41NmVtICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMS4wM2VtICFpbXBvcnRhbnQ7IG1hcmdpbjogMC42OTRlbSAwLjY5NGVtIDAgMCAhaW1wb3J0YW50OyB9IixvLmNzc1J1bGVzLmxlbmd0aCksby5pbnNlcnRSdWxlKCIuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgLmNoYXBvcnQtZnVsbC1sYWJlbCwgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LXNlcCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSIsby5jc3NSdWxlcy5sZW5ndGgpLG8uaW5zZXJ0UnVsZSgiLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LXNob3J0LWxhYmVsIHsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH0iLG8uY3NzUnVsZXMubGVuZ3RoKSxvLmluc2VydFJ1bGUoIi5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnktaW5uZXIgc3ZnIHsgaGVpZ2h0OiAxLjg1ZW0gIWltcG9ydGFudDsgfSIsby5jc3NSdWxlcy5sZW5ndGgpLG8uaW5zZXJ0UnVsZSgiLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIHsgbWFyZ2luLXRvcDogLTAuNzFlbSAhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6IC0wLjcxZW0gIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6IDMuNzFlbSAhaW1wb3J0YW50OyB9IixvLmNzc1J1bGVzLmxlbmd0aCksby5pbnNlcnRSdWxlKCIuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YmVmb3JlLCAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YWZ0ZXIgeyB3aWR0aDogMi4xNGVtICFpbXBvcnRhbnQ7IGhlaWdodDogMi4xNGVtICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlICFpbXBvcnRhbnQ7IH0iLG8uY3NzUnVsZXMubGVuZ3RoKSxpKCkpLHAuZGlzcGF0Y2hNZXNzYWdlcygpLGU9cXQoKSxvPUJ0KCksYy5kaXNhYmxlVHJpZ2dlcnM9ZSYmbz9NOkUsYy5lbmFibGVUcmlnZ2Vycz1lJiZvP29vOkUsYy5pc09ubGluZT1lP2huOkUsYy5zdGFydFNlc3Npb249ZT9sbjpFLGMuc3RvcFNlc3Npb249ZT9kbjpFLGMucT1GdCwkdCgpLHUuZXhwZWN0KFsic2Vzc2lvbkluaXQiXSxYdCk7dmFyIGk9di5sYXVuY2hlcixzPSgoaT1pfHx7c2hvdzohMH0pLnNob3d8fHluKCksdikscj1zLnRyaWdnZXJzOyhyPSExIT09KHI9dm9pZCAwPT09cj97fTpyKSYmITAhPT1yP3I6e2VuYWJsZWQ6cn0pLmtlZXA9ITEhPT1yLmtlZXAsciYmKCEwPT09ci5lbmFibGVkfHwhMT09PXIuZGlzYWJsZWQ/b28oKTohMT09PXIuZW5hYmxlZHx8ITA9PT1yLmRpc2FibGVkP00oKTpyLmVuYWJsZWQmJnIuZW5hYmxlZC5jb25zdHJ1Y3Rvcj09PUFycmF5PyhNKCksb28oci5lbmFibGVkKSk6ci5kaXNhYmxlZCYmci5kaXNhYmxlZC5jb25zdHJ1Y3Rvcj09PUFycmF5JiZNKHIuZGlzYWJsZWQpKSxzLnRyaWdnZXJzPXIsZnVuY3Rpb24oZSl7aWYoV3QoKSl7dmFyIHQ9ZS5hbmFseXRpY3M7aWYodD90LmdhVHJhY2tlck5hbWUmJih0PXtnb29nbGU6e2lkOnQuZ2FUcmFja2VyTmFtZX19KTp0PXtnb29nbGU6e319LHQmJnQuZ29vZ2xlJiYhMSE9PXQuZ29vZ2xlLmVuYWJsZWQpe2lmKCF0Lmdvb2dsZS5hcGkpe2lmKHQuZ29vZ2xlLmFwaU9iamVjdClyZXR1cm4gY29uc29sZS5lcnJvcigiY2hhcG9ydDogYW5hbHl0aWNzLmdvb2dsZS5hcGkgaXMgcmVxdWlyZWQgaWYgeW91IHBhc3MgYW5hbHl0aWNzLmdvb2dsZS5hcGlPYmplY3QiKTt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgZ3RhZz8iZ3RhZyI6d2luZG93LmRhdGFMYXllciYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5kYXRhTGF5ZXIucHVzaD8iZ3RtIjp3aW5kb3cuR29vZ2xlQW5hbHl0aWNzT2JqZWN0JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93W3dpbmRvdy5Hb29nbGVBbmFseXRpY3NPYmplY3RdfHwiZnVuY3Rpb24iPT10eXBlb2YgZ2E/ImdhIjoidW5kZWZpbmVkIiE9dHlwZW9mIF9nYXE/ImdhcSI6dm9pZCAwO24mJih0Lmdvb2dsZS5hcGk9bil9aWYoIXQuZ29vZ2xlLmFwaSlyZXR1cm4gdC5nb29nbGU9e2VuYWJsZWQ6ITEsYXBpTm90Rm91bmQ6ITB9O01lPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciBuPWUuaWQ7c3dpdGNoKGUuYXBpKXtjYXNlImd0YWciOnZhciB0PWUuYXBpT2JqZWN0fHx3aW5kb3cuZ3RhZztyZXR1cm4gdD97Z3RhZzp0LHNlbmRFdmVudDpmdW5jdGlvbihlKXt0aGlzLmd0YWcoImV2ZW50IixlLG4/e3NlbmRfdG86bn06dm9pZCAwKX19OnZvaWQgY29uc29sZS5lcnJvcigiY2hhcG9ydDogZ3RhZyBpcyBub3QgZm91bmQgb24gcGFnZSIpO2Nhc2UiZ3RtIjp2YXIgbz1lLmFwaU9iamVjdHx8d2luZG93LmRhdGFMYXllcjtyZXR1cm4gbz97Z3RhZzpmdW5jdGlvbigpe28ucHVzaChhcmd1bWVudHMpfSxzZW5kRXZlbnQ6ZnVuY3Rpb24oZSl7dGhpcy5ndGFnKCJldmVudCIsZSxuP3tzZW5kX3RvOm59OnZvaWQgMCl9fTp2b2lkIGNvbnNvbGUuZXJyb3IoImNoYXBvcnQ6IGd0bSBpcyBub3QgZm91bmQgb24gcGFnZSIpO2Nhc2UiZ2EiOnZhciBhPWUuYXBpT2JqZWN0fHwod2luZG93Lkdvb2dsZUFuYWx5dGljc09iamVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvd1t3aW5kb3cuR29vZ2xlQW5hbHl0aWNzT2JqZWN0XT93aW5kb3dbd2luZG93Lkdvb2dsZUFuYWx5dGljc09iamVjdF06d2luZG93LmdhKTtyZXR1cm4gYT8obnx8YShmdW5jdGlvbigpe3ZhciBlPWEuZ2V0QWxsKCk7MDxlLmxlbmd0aCYmKG49ZVswXS5nZXQoIm5hbWUiKSl9KSx7Z2E6YSxzZW5kRXZlbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLmdhKG4/bisiLnNlbmQiOiJzZW5kIiwiZXZlbnQiLHQsZSl9fSk6dm9pZCBjb25zb2xlLmVycm9yKCJjaGFwb3J0OiBnYSBpcyBub3QgZm91bmQgb24gcGFnZSIpO2Nhc2UiZ2FxIjpyZXR1cm57Z2FxOmUuYXBpT2JqZWN0fHx3aW5kb3cuX2dhcSxzZW5kRXZlbnQ6ZnVuY3Rpb24oZSx0KXt0aGlzLmdhcS5wdXNoKFsiX3RyYWNrRXZlbnQiLHQsZV0pfX07ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJjaGFwb3J0OiB1bmtub3duIGFuYWx5dGljcy5nb29nbGUuYXBpIHZhbHVlIGlzIHBhc3NlZCwgc2hvdWxkIGJlIG9uZSBvZiIsWyJndGFnIiwiZ3RtIiwiZ2EiLCJnYXEiXSl9fX0odC5nb29nbGUpfWUuYW5hbHl0aWNzPXR9fSh2KSx2LnNlc3Npb24mJnYuc2Vzc2lvbi5hdXRvU3RhcnQmJmxuKHYuc2Vzc2lvbi51c2VyKX0pfSl9WWV8fChZZT0hMCxsP24oKToodD1mdW5jdGlvbigpe3dpbmRvdy5jaGFwb3J0SW5pdFJlc3VsdCYmKGw9d2luZG93LmNoYXBvcnRJbml0UmVzdWx0LGRlbGV0ZSB3aW5kb3cuY2hhcG9ydEluaXRSZXN1bHQpLG4oKX0sKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpLm9ubG9hZD1mdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKSx0JiZ0KCl9LGUuc3JjPSJodHRwczovL2FwcC5jaGFwb3J0LmNvbS9pbmZvL3dpZGdldC1hc3NldHM/anNvbnBDYWxsYmFjaz10cnVlJmlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KHYuYXBwSWQpLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uYXBwZW5kQ2hpbGQoZSkpKX1mdW5jdGlvbiBCdCgpe3JldHVybiEwPT09Uy50cmlnZ2Vyc31mdW5jdGlvbiBNdCgpe3JldHVybiBTLmFzc2lnbm1lbnRSdWxlc31mdW5jdGlvbiBEdCgpe3JldHVybiBTLmFsbEFwcGVhcmFuY2V9ZnVuY3Rpb24gTHQoKXtyZXR1cm4gUy5qc1Zpc2l0b3J9ZnVuY3Rpb24gV3QoKXtyZXR1cm4gUy53aWRnZXRBbmFseXRpY3N9ZnVuY3Rpb24gcXQoKXtyZXR1cm4hMD09PVMuanNBcGl9ZnVuY3Rpb24ganQoKXt2YXIgZT1TLmpzQXBpO3JldHVybiEwPT09ZXx8MTw9ZX1mdW5jdGlvbiB6dChlKXtNdCgpPyh2LmFzc2lnbm1lbnRzfHwodi5hc3NpZ25tZW50cz17fSksZS5yZXNvbHZlJiYodi5hc3NpZ25tZW50cy5yZXNvbHZlPWUucmVzb2x2ZSksZS5ydWxlcyYmKHYuYXNzaWdubWVudHMucnVsZXM9VnQoZS5ydWxlcykpLGUuZGVmYXVsdFJ1bGVzJiYodi5hc3NpZ25tZW50cy5kZWZhdWx0UnVsZXM9VnQoZS5kZWZhdWx0UnVsZXMpKSx1LmlzKCJhcGlJbml0IikmJnUuaXMoImluaXRpYWxQYWdlVmlld1JlYWR5IikmJkh0KCkpOnYuYXNzaWdubWVudHM9dm9pZCAwfWZ1bmN0aW9uIEh0KGUpe2lmKE10KCkpe3ZhciB0LG49di5hc3NpZ25tZW50cztpZihuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5yZXNvbHZlKXRyeXt0PW4ucmVzb2x2ZSh3aW5kb3cuY2hhcG9ydCl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigiY2hhcG9ydDogYXNzaWdubWVudC5yZXNvbHZlIGZhaWxlZCBkdWUgdG8gYW4gZXJyb3IiKSxjb25zb2xlLmVycm9yKGUpfXJldHVybiJzdHJpbmciPT10eXBlb2YodD12b2lkIDA9PT0odD12b2lkIDA9PT10JiZuJiZuLnJ1bGVzP0d0KG4ucnVsZXMpOnQpJiZuJiZuLmRlZmF1bHRSdWxlcz9HdChuLmRlZmF1bHRSdWxlcyk6dCk/dD1bdF06dCYmdC5jb25zdHJ1Y3Rvcj09PUFycmF5JiYwPT09dC5sZW5ndGgmJih0PW51bGwpLHYub3BlcmF0b3JzPXR8fHZvaWQgMCxlfHx4JiZOKCJzZXRPcGVyYXRvcnMiLHYub3BlcmF0b3JzfHxudWxsKSx2Lm9wZXJhdG9yc319ZnVuY3Rpb24gVnQoZSl7cmV0dXJuIGU/KGU9ZS5jb25zdHJ1Y3RvciE9PUFycmF5P1tlXTplKS5tYXAoZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXt2YXIgbixvLGEsZTtpZih0LmFjdGlvbilyZXR1cm4iYXNzaWduIj09PXQuYWN0aW9uPyhuPXQuY29uZGl0aW9uJiZuZXcgJGUodC5jb25kaXRpb24pLGZ1bmN0aW9uKCl7dmFyIGU9dC5hY3Rpb25QYXJhbXMmJnQuYWN0aW9uUGFyYW1zLmFzc2lnbmVlSWR8fG51bGw7aWYoIW58fG4uY2hlY2soKSlyZXR1cm4gZX0pOnZvaWQgMDtmb3IoZSBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKXthPXRbbz1lXTticmVha31pZih2b2lkIDAhPT1hKXtpZigibnVsbCI9PT1vJiYobz1udWxsKSwiYm9vbGVhbiI9PXR5cGVvZiBhKXJldHVybiBmdW5jdGlvbigpe2lmKGEpcmV0dXJuIG99O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXJldHVybiBmdW5jdGlvbihlKXt0cnl7aWYoYShlKSlyZXR1cm4gb31jYXRjaChlKXtjb25zb2xlLmVycm9yKCJjaGFwb3J0OiBmYWlsZWQgdG8gcHJvY2VzcyBhbiBhc3NpZ25tZW50IHJ1bGUgZHVlIHRvIGFuIGVycm9yIiksY29uc29sZS5lcnJvcihlKX19O2lmKGEmJmEuY29uc3RydWN0b3I9PT1BcnJheSYmMz09PWEubGVuZ3RoKXJldHVybiBmdW5jdGlvbihlKXtpZihlLmNvbXBhcmUoZS5nZXRQYXJhbWV0ZXJWYWx1ZShhWzBdKSxhWzFdLGFbMl0pKXJldHVybiBvfTtjb25zb2xlLmVycm9yKCJjaGFwb3J0OiBmYWlsZWQgdG8gcHJvY2VzcyBhbiBhc3NpZ25tZW50IHJ1bGUgZHVlIHRvIHVua25vd24gZm9ybWF0IiksY29uc29sZS5lcnJvcihhKX19ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gdH0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pOltdfWZ1bmN0aW9uIEd0KGUpe3ZhciBuO3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dHJ5e3ZhciB0PWUoYyk7aWYodHx8bnVsbD09PXQpcmV0dXJuIG49dCwhMH1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJjaGFwb3J0OiBmYWlsZWQgdG8gcHJvY2VzcyBhbiBhc3NpZ25tZW50IHJ1bGUgZHVlIHRvIGFuIGVycm9yIiksY29uc29sZS5lcnJvcihlKX19KSxufWZ1bmN0aW9uIEZ0KGUsdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbZV0pcmV0dXJuIEp0KGUsdCk7Yy5fcS5wdXNoKGFyZ3VtZW50cyl9ZnVuY3Rpb24gSnQoZSx0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgY1tlXT9jb25zb2xlLmVycm9yKG5ldyBFcnJvcigiQ2hhcG9ydDogbWV0aG9kICciK2UrIicgaXMgbm90IGRlZmluZWQiKSk6dm9pZCAwPT09dD9jW2VdLmNhbGwoYyk6KHQmJnQuY29uc3RydWN0b3IhPT1BcnJheSYmKHQ9W3RdKSxjW2VdLmFwcGx5KGMsdCkpfWZ1bmN0aW9uIFh0KCl7dmFyIGU9cXQoKSx0PUJ0KCksbj1qdCgpLG89RHQoKSxhPUx0KCksaT0oYy5jbG9zZT1uP08obm4pOkUsYy5jb21wYXJlPWU/TyhSbyk6RSxjLmdldEFjdGl2ZVRyaWdnZXI9ZSYmdD9PKGxvKTpFLGMuZ2V0UGFyYW1ldGVyVmFsdWU9ZT9PKEpuKTpFLGMuZ2V0VHJpZ2dlckJ5SWQ9ZSYmdD9PKFl0KTpFLGMuZ2V0V2lkZ2V0U3RhdGU9bj9PKEt0KTpFLGMuaGlkZUxhdW5jaGVyPW4/Tyh5bik6RSxjLm5ld1BhZ2VWaWV3PWU/Tyhlbik6RSxjLnNlbmQ9ZT9PKGFuKTpFLGMub3Blbj1uP08odG4pOkUsYy5vcGVuSW49bj9PKFF0KTpFLGMuc2hvd0xhdW5jaGVyPW4/Tyhibik6RSxjLnNldEFjdGl2ZVRyaWdnZXI9ZSYmdD9PKFp0KTpFLGMuc2V0QXNzaWdubWVudFJ1bGVzPWU/Tyh6dCk6RSxjLnNldFZpc2l0b3JEYXRhPWE/TyhSbik6RSxjLnRvZ2dsZT1uP08ob24pOkUsYy51cGRhdGVQb3NpdGlvbj1lJiZvP08oUG4pOkUsYy5xPUp0LCR0KCksYy5vbik7Yy5vbj1mdW5jdGlvbihlLHQpeyJjaGF0Lm9ubGluZUNoYW5nZSI9PT1lJiZ1LmlzKCJzZXNzaW9uSW5pdCIpJiYiNWE4YjI4MjhjZDFkNWQzMWJjMTdmMGFjIj09PXYuYXBwSWQmJmpuKCksInJlYWR5Ij09PWUmJmMuX19yZWFkeT9zZXRUaW1lb3V0KFIodCxudWxsLFt7dmlzaXRvcklkOmYmJmYuaWR9XSksMCk6aS5hcHBseShjLGFyZ3VtZW50cyl9LHUuc2V0U3RhdGUoImFwaUluaXQiKX1mdW5jdGlvbiAkdCh0KXt2YXIgbjsodD10fHxjLl9xKSYmMDx0Lmxlbmd0aCYmKG49W10sdC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7Y1tlWzBdXSYmKGMucS5hcHBseShjLGUpLG4udW5zaGlmdCh0KSl9KSxuLmZvckVhY2goZnVuY3Rpb24oZSl7dC5zcGxpY2UoZSwxKX0pKX1mdW5jdGlvbiBZdChlKXtlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49YS5sZW5ndGg7dDxuO3QrKylpZihhW3RdLmlkPT09ZSlyZXR1cm4gYVt0XX0oZSk7aWYoZSlyZXR1cm4gZS5nZXRTaGFsbG93RGF0YSgpfWZ1bmN0aW9uIFp0KGUpe2lmKCF1LmlzKCJjaGF0U3RhcnRlZCIpJiYhaG8oKSl7dmFyIHQsbj1lIGluc3RhbmNlb2YgU28/ZS5nZXRTaGFsbG93RGF0YSgpOmU7aWYoIW4ubWVzc2FnZSl7aWYoIW4uaWQpdGhyb3cgbmV3IEVycm9yKCJzZXRBY3RpdmVUcmlnZ2VyIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvZjogbWVzc2FnZSwgaWQiKTtpZighKHQ9WXQobi5pZCkpKXRocm93IG5ldyBFcnJvcigic2V0QWN0aXZlVHJpZ2dlciB3aXRob3V0IG1lc3NhZ2UgcmVxdWlyZXMgaWQgdG8gYmUgdGhhdCBvZiBhbiBleGlzdGluZyB0cmlnZ2VyIik7bi5tZXNzYWdlPXQubWVzc2FnZX1uLm9wZXJhdG9ycz9vKCk6Z24obi5vcGVyYXRvcklkLHQsZnVuY3Rpb24oZSl7bi5vcGVyYXRvcnM9ZT9bZV06bnVsbCxvKCl9KX1mdW5jdGlvbiBvKCl7bi5kYXRlJiYobi50aW1lc3RhbXA9bi5kYXRlLmdldFRpbWUoKSxkZWxldGUgbi5kYXRlKSxuLnRpbWVzdGFtcHx8KG4udGltZXN0YW1wPShuZXcgRGF0ZSkuZ2V0VGltZSgpKSxuLmRpc21pc3NlZD0hMSx1byhuKX19ZnVuY3Rpb24gS3QoKXtyZXR1cm4gWG4oSSl9ZnVuY3Rpb24gUXQoZSl7dmFyIHQ7ZSYmIm9iamVjdCI9PXR5cGVvZiBlP2Uuc2VsZWN0b3ImJih0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZS5zZWxlY3RvcikpJiZxbih2LGYsITEsdCk6InN0cmluZyI9PXR5cGVvZiBlJiYoUWUmJmpuKCksIl9zZWxmIj09PWU/d2luZG93LmxvY2F0aW9uLmhyZWY9V24odixmKTp3aW5kb3cub3BlbihXbih2LGYpLGUpKX1mdW5jdGlvbiBlbihlKXtFbihlJiZlLnRpdGxlfHxkb2N1bWVudC50aXRsZSxlJiZlLnVybHx8bG9jYXRpb24uaHJlZiwhMCl9ZnVuY3Rpb24gdG4oZSl7cmV0dXJuIHYub3BlbkluPygkbigpLFF0KHYub3BlbkluKSk6eSYmIVk/KCRuKCksUXQoIl9zZWxmIikpOih1LmlzKCJpZnJhbWVMb2FkaW5nIil8fHFuKHYsZiksbW8oITEpLHZvaWQgQihVLmV4cGFuZGVkLHthdXRvRm9jdXM6IXksaGlzdG9yeTohZX0pKX1mdW5jdGlvbiBubihlKXttbyghMSksQihVLmNvbGxhcHNlZCx7aGlzdG9yeTohZX0pfWZ1bmN0aW9uIG9uKCl7KEk9PT1VLmV4cGFuZGVkP25uOnRuKSgpfWZ1bmN0aW9uIE8oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoZilyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGFuKGUsdCl7QShmdW5jdGlvbigpe3puKFsiOjp3c2M6dGhyb3VnaCIsZS50b1N0cmluZygpLEpTT04uc3RyaW5naWZ5KHQpXS5qb2luKCI6IikpfSl9ZnVuY3Rpb24gc24oZSx0LG4pe3ZhciBvPW4mJm4uY2FuY2VsbGFibGUsYT0hMDtyZXR1cm4gYy5fbCYmYy5fbFtlXSYmYy5fbFtlXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe28mJiExPT09YXx8KGE9ZSh0KSl9KSxhfWZ1bmN0aW9uIEUoKXtjb25zb2xlLndhcm4oIkNoYXBvcnQgSlMgQVBJIGlzIG5vdCBhdmFpbGFibGUgb24gYSBmcmVlIHBsYW4iKX1mdW5jdGlvbiBybihlLHQsbixvLGEpe3ZhciBpLHM9Imh0dHBzOi8vYXBwLmNoYXBvcnQuY29tL2FwaS9wdWJsaWMvdjEiK3QsdD1uLHI9byxuPWE7dy5pc0lFKCk8MTAmJiExIT09dy5pc0lFKCk/KGk9bmV3IFhEb21haW5SZXF1ZXN0LC0xIT09cy5pbmRleE9mKCIvYWNjb3VudHMvIik/aS5vcGVuKHR8fCJHRVQiLHMpOmkub3Blbih0fHwiR0VUIixzKyImYXBwSWQ9IitlKSxpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlO2lmKCFpLnJlc3BvbnNlVGV4dClyZXR1cm4gcihuZXcgRXJyb3IoImFwaSByZXF1ZXN0IGZhaWxlZDogaWUgLSAiK3MpKTt0cnl7ZT1KU09OLnBhcnNlKGkucmVzcG9uc2VUZXh0KX1jYXRjaChlKXtyZXR1cm4gcihuZXcgRXJyb3IoInJlY2VpdmVkIG1hbGZvcm1lZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXI6ICIraS5yZXNwb25zZVRleHQpKX1yKG51bGwsZSYmZS5yZXN1bHQpfSk6KChpPW5ldyBYTUxIdHRwUmVxdWVzdCkub3Blbih0fHwiR0VUIixzLCEwKSxpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT1pLnJlYWR5U3RhdGUpe3ZhciBlO2lmKCFpLnJlc3BvbnNlVGV4dHx8LTE9PT1bMCwyMDBdLmluZGV4T2YoaS5zdGF0dXMpKXJldHVybiA0MDQ9PT1pLnN0YXR1c3x8MD09PWkuc3RhdHVzfHw0MDA9PT1pJiZzJiYtMSE9PXMuaW5kZXhPZigiNjQ5MTAxMDVlMDkxMDIxNzk4ZTJmNGU3Iik/cihudWxsLG51bGwpOnIobmV3IEVycm9yKCJhcGkgcmVxdWVzdCBmYWlsZWQ6ICIraS5zdGF0dXMrIjoiK3MpKTt0cnl7ZT1KU09OLnBhcnNlKGkucmVzcG9uc2VUZXh0KX1jYXRjaChlKXtyZXR1cm4gcihuZXcgRXJyb3IoInJlY2VpdmVkIG1hbGZvcm1lZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXI6ICIraS5yZXNwb25zZVRleHQpKX1yKG51bGwsZSYmZS5yZXN1bHQpfX0saS53aXRoQ3JlZGVudGlhbHM9ITAsLTE9PT1zLmluZGV4T2YoIi9hY2NvdW50cy8iKSYmaS5zZXRSZXF1ZXN0SGVhZGVyKCJDUC1BcHAtSWQiLGUpLG4mJmkuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbiIpKSxpLnNlbmQobiYmSlNPTi5zdHJpbmdpZnkobikpfWZ1bmN0aW9uIGNuKGUpe2Uuc2Vzc2lvbnx8KGUuc2Vzc2lvbj17fSk7ZT1lLnNlc3Npb247dm9pZCAwIT09ZS5hdXRvc3RhcnQmJihlLmF1dG9TdGFydD1lLmF1dG9zdGFydCksdm9pZCAwPT09ZS5hdXRvU3RhcnQmJihlLmF1dG9TdGFydD0hMCksdm9pZCAwPT09ZS5hbGxvd01lcmdlJiYoZS5hbGxvd01lcmdlPSExKSx2b2lkIDA9PT1lLnBlcnNpc3QmJihlLnBlcnNpc3Q9ITApfWZ1bmN0aW9uIGxuKGUsdCl7dmFyIG49ITEsbz0hMTtpZihlP2UuZm9yY2VOZXc/KG49ITAsWmU9ZT13LmNyZWF0ZU5ld0NyZWRzKHYuYXBwSWQsbnVsbCx2LnNlc3Npb24ucGVyc2lzdCx2LnNlc3Npb24uY29va2llRG9tYWluKSk6bz0hMDooZT1aZT0hMT09PVplP3cuZ2V0Q3JlZHModi5hcHBJZCk6WmUpfHwoWmU9ZT13LmNyZWF0ZU5ld0NyZWRzKHYuYXBwSWQse2lkOl8oIndzc2lkIiksdG9rZW46XygiY3Rva2VuIil9LHYuc2Vzc2lvbi5wZXJzaXN0LHYuc2Vzc2lvbi5jb29raWVEb21haW4pKSwhZS5pZCYmZS52aXNpdG9ySWQmJihlLmlkPWUudmlzaXRvcklkKSxmKXJldHVybiBkbihmLmlkIT09ZS5pZCxSKGxuLG51bGwsW2UsdF0pKTtmPXtpZDplLmlkLHRva2VuOmUudG9rZW4saXNDdXN0b206byxpc0ZvcmNlZE5ldzpufSxaPW5ldyBEYXRlLHl0KCksdS5leHBlY3QoWyJzdG9yYWdlUmVhZHkiLCJhcHBlYXJhbmNlUmVhZHkiLCJkYXRhUmVhZHkiXSxmdW5jdGlvbigpe2lmKGYpe2lmKCFmLmlkfHwhZi50b2tlbilyZXR1cm4gY29uc29sZS5lcnJvcigidW5hYmxlIHRvIHN0YXJ0IGEgY2hhdCBzZXNzaW9uIHdpdGhvdXQgdXNlciBpZCBkZXRhaWxzIiksZG4oITApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt3LnJlbmRlcihudWxsLGZ1bmN0aW9uKCl7aWYoZil7aWYoIWYuaWR8fCFmLnRva2VuKXJldHVybiBjb25zb2xlLmVycm9yKCJ1bmFibGUgdG8gc3RhcnQgYSBjaGF0IHNlc3Npb24gd2l0aG91dCB1c2VyIGlkIGRldGFpbHMiKSxkbighMCk7YmUubG9hZFZpc2l0b3JFc3NlbnRpYWxzKHYuYXBwSWQsU24odiksZiwhdi5zZXNzaW9uLnBlcnNpc3QsZnVuY3Rpb24odCl7dmFyIG47ZnVuY3Rpb24gbygpe3ZhciBlO3QmJnQudW5yZWFkJiZ0LnVucmVhZC5sYXN0TWVzc2FnZT8oTSgpLGZvKCkpOnYudHJpZ2dlcnMua2VlcD8oZT1sbygpKSYmZS50aW1lc3RhbXAmJjIxNmU1PChuZXcgRGF0ZSkuZ2V0VGltZSgpLWUudGltZXN0YW1wP2ZvKCk6cG8oZSk6bW8oITApLHUuc2V0U3RhdGUoInRyaWdnZXJzUmVhZHkiKX1Fbihkb2N1bWVudC50aXRsZSxsb2NhdGlvbi5ocmVmLCExKSx1LnNldFN0YXRlKCJpbml0aWFsUGFnZVZpZXdSZWFkeSIpLHQmJnQuY29tcGxldGVkVHJpZ2dlcnMmJihuPXQuY29tcGxldGVkVHJpZ2dlcnMpJiYwPG4ubGVuZ3RoJiZhLmZvckVhY2goZnVuY3Rpb24oZSl7LTEhPT1uLmluZGV4T2YoZS5pZCkmJmUub25jZSYmTShbZS5pZF0pfSksdS5leHBlY3QoWyJjc3NSZWFkeSJdLGZ1bmN0aW9uKCl7dmFyIHQ7ZiYmKE50KCksdD0obmV3IERhdGUpLmdldFRpbWUoKSszMDAsc2V0VGltZW91dChmdW5jdGlvbigpe0kmJiJoaWRkZW4iIT09WG4oSSl8fEIoVS5jb2xsYXBzZWQpLHUuc2V0U3RhdGUoInNlc3Npb25Jbml0IiksdS5leHBlY3QoWyJjaGF0UmVhZHkiXSxmdW5jdGlvbigpe3ZhciBlPXQtKG5ldyBEYXRlKS5nZXRUaW1lKCk7c2V0VGltZW91dChvLE1hdGgubWF4KGUsMCkpfSl9LDMwMCkpfSl9KSx1LmV4cGVjdChbImFwaUluaXQiXSxmdW5jdGlvbigpe2YmJihjLl9fcmVhZHk9ITAsc24oInJlYWR5Iix7dmlzaXRvcklkOmYuaWR9KSl9KSxjLl9sJiZjLl9sWyJjaGF0Lm9ubGluZUNoYW5nZSJdJiYwPGMuX2xbImNoYXQub25saW5lQ2hhbmdlIl0ubGVuZ3RoJiYiNWE4YjI4MjhjZDFkNWQzMWJjMTdmMGFjIj09PXYuYXBwSWQmJmpuKCl9fSl9LDApfX0pLHQmJnUuZXhwZWN0KFsic2Vzc2lvbkluaXQiXSx0KSxObigpLGR8fEF0KCksZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGQucGFyZW50Tm9kZSE9PWUmJmUuYXBwZW5kQ2hpbGQoZCl9ZnVuY3Rpb24gZG4oZSx0KXt2YXIgbixvO2Z1bmN0aW9uIGEoKXtvfHwobz0hMCxuJiZuKCkpfWY9ZiYmbnVsbCxjLl9fcmVhZHk9ITEsZT8obj1SKGRuLG51bGwsWyExLHRdKSxUKCJhY3RpdmVfdHJpZ2dlciIpLFQody5nZXRQb3N0Zml4ZWQoImFjdGl2ZV90cmlnZ2VyIix2LmFwcElkKSksVCgid2lkZ2V0X2xhc3RfY2xvc2VkIiksVCgic2Vzc2lvbl9zdGFydGVkX2F0IiksVCgicGFnZV92aWV3cyIpLFQoInBhZ2VzIiksVCgidXRtIiksVCgiY29ubmVjdGVkX29uY2UiKSxUKCJyZWZlcnJlciIpLFQoIndzc2lkIiksVCgiY3Rva2VuIiksVCgibGFzdF9hY3Rpdml0eV9hdCIpLFplPW51bGwsdy5jbGVhckNyZWRzKHYuYXBwSWQsdi5zZXNzaW9uJiZ2LnNlc3Npb24uY29va2llRG9tYWluKSxybih2LmFwcElkLCIvY2xlYXIiLCJHRVQiLGZ1bmN0aW9uKGUsdCl7eCYmeC5sb2FkZWQmJnguY29udGVudFdpbmRvdz8ocC5vbmNlKCJyQ2xlYXJTdG9yYWdlIixhKSxOKCJjbGVhclN0b3JhZ2UiKSk6YSgpfSksc2V0VGltZW91dChhLDdlMyksbz0hMSk6KHUucmVzZXRTZXNzaW9uKCksdG8oKSxCKFUuY29sbGFwc2VkKSxFdCgpLHgmJih4LnBhcmVudE5vZGUmJngucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4KSx4LnNyYz0iYWJvdXQ6YmxhbmsiLHg9bnVsbCksWW4oMCksdCYmdCgpKX1mdW5jdGlvbiB1bigpe3ZhciBlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiBudWxsPT09ci5saXN0fHxudWxsPT09ci5zaW5jZXx8NmU0PGUtci5zaW5jZX1mdW5jdGlvbiBwbihuKXt2YXIgZTtpZih1bigpKXJldHVybiBlPSIvb3BlcmF0b3JzIisodi5vcGVyYXRvcnM/Ij9pZHM9IitKU09OLnN0cmluZ2lmeSh2Lm9wZXJhdG9ycyk6IiIpLHJuKHYuYXBwSWQsZSwiR0VUIixmdW5jdGlvbihlLHQpe2V8fCF0fHx0LmNvbnN0cnVjdG9yIT09QXJyYXk/ci5saXN0PVtdOnIubGlzdD10LHIuc2luY2U9KG5ldyBEYXRlKS5nZXRUaW1lKCk7ZT1yLmxpc3Quc29tZShmdW5jdGlvbihlKXtyZXR1cm4hZS5pc0JvdCYmIm9ubGluZSI9PT1lLnJlYWxTdGF0dXN9KTtyLm9ubGluZSE9PWUmJm51bGwhPT1yLm9ubGluZSYmKHNuKCJjaGF0Lm9ubGluZUNoYW5nZSIsZSkseCkmJk4oInJlZnJlc2hPcGVyYXRvcnNEYXRhU3RvcmFnZSIpLHIub25saW5lPWUsbiYmbihyLmxpc3QpfSk7biYmbihyLmxpc3QpfWZ1bmN0aW9uIGhuKHQpe3ZhciBuPSExO2Z1bmN0aW9uIG8oZSl7bnx8KG49ITAsImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQoZSkpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIWUuaXNCb3QmJiJvbmxpbmUiPT09ZS5yZWFsU3RhdHVzfWYmJiF1bigpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnx8KHAub25jZSgiaXNPbmxpbmUiLG8pLE4oImFwaTpnZXRJc09ubGluZSIpKX0sMCksc2V0VGltZW91dChmdW5jdGlvbigpe258fHBuKGZ1bmN0aW9uKGUpe28oZS5zb21lKGEpKX0pfSw1MDApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtvKHZvaWQgMCl9LDNlMyl9ZnVuY3Rpb24gZ24ocyxyLGMpe3g/KHAub25jZSgidHJpZ2dlck9wZXJhdG9yIixjKSxOKCJnZXRUcmlnZ2VyT3BlcmF0b3IiLHMpKTpwbihmdW5jdGlvbihlKXt2YXIgdD1bXSxuPVtdLG89W10sYT1bXSxpPXM/W3NdOmZuKCksZT0oZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kmJi0xPT09aS5pbmRleE9mKGUuaWQpfHxyJiZyLmlzQm90JiYhZS5pc0JvdHx8ciYmIXIuaXNCb3QmJmUuaXNCb3R8fCgib25saW5lIj09PWUucmVhbFN0YXR1cyYmKHQucHVzaChlKSxlLmhpZGVJbldpZGdldHx8YS5wdXNoKGUpKSxuLnB1c2goZSksZS5oaWRlSW5XaWRnZXQpfHxvLnB1c2goZSl9KSwwPGEubGVuZ3RoP249YTowPG8ubGVuZ3RoP249bzowPHQubGVuZ3RoJiYobj10KSxuW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpuLmxlbmd0aCldKTtjKGUpfSl9ZnVuY3Rpb24gZm4oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh2Lm9wZXJhdG9ycykmJjA8di5vcGVyYXRvcnMubGVuZ3RoP3Yub3BlcmF0b3JzOm51bGx9ZnVuY3Rpb24gbW4oZSx0KXtmb3IodmFyIG49ZSYmZS5leGNsdWRlfHxlJiZlLmluY2x1ZGV8fFtdLGU9IWV8fCFlLmluY2x1ZGV8fG4hPT1lLmluY2x1ZGUsbz0hMSxhPTAsaT0odD10JiZ0LmNvbnN0cnVjdG9yPT09QXJyYXk/dDpbdF0pLmxlbmd0aDthPGk7KythKS0xIT09bi5pbmRleE9mKHRbYV0pJiYobz0hMCk7cmV0dXJuIG8mJiFlfHwhbyYmZX1mdW5jdGlvbiB3bigpe3JldHVybiB5P1g/WyJtb2JpbGUiLCJpb3MiXTpbIm1vYmlsZSIsImFuZHJvaWQiXTpbImRlc2t0b3AiXX1mdW5jdGlvbiB2bihlKXt2YXIgdDtlIT09S2U/KHQ9TmUsKE5lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSkucmVsPSJzdHlsZXNoZWV0IixOZS5ocmVmPWV8fCJodHRwczovL2Fzc2V0cy5jaGFwb3J0LmNvbS9zdHlsZXNoZWV0cy93aWRnZXQuY3NzIixOZS5vbmxvYWQ9ZnVuY3Rpb24oKXtLZT1lLHQmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHUuc2V0U3RhdGUoImNzc1JlYWR5Iil9LGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoTmUpKTp1LnNldFN0YXRlKCJjc3NSZWFkeSIpfWZ1bmN0aW9uIHluKCl7dy5hZGRDc3NDbGFzcyhiLnJvb3QsImhpZGUtbGF1bmNoZXIiKSxlZT0hMCxTZSgpfWZ1bmN0aW9uIGJuKCl7dy5yZW1vdmVDc3NDbGFzcyhiLnJvb3QsImhpZGUtbGF1bmNoZXIiKSxlZT0hMSxTZSgpfWZ1bmN0aW9uIENuKGUpe2Iucm9vdCYmKGU9KChBZT1lfHxbInJpZ2h0Il0pWzFdfHwwKSsicHgiLCJyaWdodCI9PT1BZVswXT8ody5yZW1vdmVDc3NDbGFzcyhiLnJvb3QsImNoYXBvcnQtcG9zaXRpb24tbGVmdCIpLGIucm9vdC5zdHlsZS5sZWZ0PSIwIixiLnJvb3Quc3R5bGUucmlnaHQ9ZSk6KHcuYWRkQ3NzQ2xhc3MoYi5yb290LCJjaGFwb3J0LXBvc2l0aW9uLWxlZnQiKSxiLnJvb3Quc3R5bGUucmlnaHQ9IjAiLG5lP2Iucm9vdC5zdHlsZS5sZWZ0PWU6b2UubGVmdD1wYXJzZUludChlKSksYi5yb290LnN0eWxlLmJvdHRvbT14bigpKyJweCIsQ2UoKSl9ZnVuY3Rpb24geG4oKXtyZXR1cm4gQWUmJkFlWzJdfHwwfWZ1bmN0aW9uIEluKCl7YiYmYi5sYXVuY2hlckJ1dHRvbiYmQyYmKGIubGF1bmNoZXJCdXR0b24uc3R5bGUuYmFja2dyb3VuZENvbG9yPUMuY29sb3IpfWZ1bmN0aW9uIFNuKGUpe2lmKGUubGFuZ3VhZ2Upe2lmKGUubGFuZ3VhZ2UudXNlKXJldHVybiBlLmxhbmd1YWdlLnVzZTtpZigiaHRtbCI9PT1lLmxhbmd1YWdlLnNvdXJjZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgibGFuZyIpfXJldHVybiBlLmxhbmd8fChlLnVzZUh0bWxMYW5nP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImxhbmciKTp2b2lkIDApfWZ1bmN0aW9uIFJuKGUsdCl7UWU9ITAsQShmdW5jdGlvbigpe3puKFsiOjp3c2M6YXBpOnNldFZpc2l0b3JEYXRhIix0fHwiIixKU09OLnN0cmluZ2lmeShlKV0uam9pbigiOiIpKX0pfWZ1bmN0aW9uIFRuKCl7dmFyIGU9XygidXRtIik7cmV0dXJuIGU/SlNPTi5wYXJzZShlKTpudWxsfWZ1bmN0aW9uIF9uKGUpe04oInNldFV0bSIsZSl9ZnVuY3Rpb24ga24odCxuKXt1LmV4cGVjdChbInN0b3JhZ2VSZWFkeSJdLGZ1bmN0aW9uKCl7dmFyIGU9T24oKTtlLnB1c2goe3RpdGxlOnQsdXJsOm4sdGltZXN0YW1wOihuZXcgRGF0ZSkuZ2V0VGltZSgpfSksaygicGFnZXMiLEpTT04uc3RyaW5naWZ5KGUpKSx1LmlzKCJpZnJhbWVSZWFkeSIpJiZBbigpfSl9ZnVuY3Rpb24gT24oKXt2YXIgZT1fKCJwYWdlcyIpO3JldHVybiBlPWU/SlNPTi5wYXJzZShlKTpbXX1mdW5jdGlvbiBFbihlLHQsbil7biYmdG8oKSx1LmlzKCJjb25uZWN0aW5nIil8fHUuaXMoImNvbm5lY3Rpb25SZWFkeSIpP2FuKCJuZXctcGFnZS12aWV3Iix7dGl0bGU6ZSx1cmw6dH0pOmtuKGUsdCk7ZT1fKCJwYWdlX3ZpZXdzIik7aygicGFnZV92aWV3cyIsZT9wYXJzZUludChlKSsxOjEpLG4mJihObigpLGVvKCkpLG4mJkh0KCl9ZnVuY3Rpb24gTm4oKXtQZT0obmV3IERhdGUpLmdldFRpbWUoKX1mdW5jdGlvbiBBbigpe04oInNldFBhZ2VWaWV3cyIsT24oKXx8W10pfWZ1bmN0aW9uIFBuKGUsdCl7dmFyIG47ZSYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5JiYwPGUubGVuZ3RoJiYoZT1lLnNsaWNlKDAsMyksQy5wb3NpdGlvbj1lLG49SSxCKFUuaGlkZGVuLG51bGwsZnVuY3Rpb24oKXtDbihlKSxCKG4sbnVsbCx0KX0pKX1mdW5jdGlvbiBVbigpe3ZhciBlO3JldHVybiBVZXx8KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpLFVlPWUuc2hlZXQpLFVlfWZ1bmN0aW9uIEJuKCl7cmV0dXJue2NoYXBvcnQ6e2V4cGFuZGVkOiEwfX19ZnVuY3Rpb24gTW4oZSl7cmV0dXJuISFlJiZKU09OLnN0cmluZ2lmeShlKT09PUpTT04uc3RyaW5naWZ5KEJuKCkpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIERlfHxfKCJyZWZlcnJlciIpfWZ1bmN0aW9uIExuKCl7dmFyIGU9RG4oKTtlJiZOKCJyZWZlcnJlciIse3ZhbHVlOmUuc3BsaXQoIi8iKS5zbGljZSgwLDMpLmpvaW4oIi8iKX0pfWZ1bmN0aW9uIFduKGUsdCxuKXtyZXR1cm4iaHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20vd2lkZ2V0L3Nob3cuaHRtbCIrZnVuY3Rpb24oZSx0LG4pe3ZhciBvLGE9U24oZSksaT1IbigpLHM9dCYmdC5pZCxyPXQmJnQudG9rZW4sYz10JiZ0LmlzQ3VzdG9tLGw9Zm4oKTt2b2lkIDAhPT1lLmNsb3NlQnV0dG9uJiYobz1lLmNsb3NlQnV0dG9uKTt2b2lkIDA9PT1vJiZlZSYmKG89ITApO3JldHVybiI/YXBwaWQ9IitlbmNvZGVVUklDb21wb25lbnQoZS5hcHBJZCkrKGUuaW50ZWdyYXRpb24/IiZpbnRlZ3JhdGlvbj0iK2VuY29kZVVSSUNvbXBvbmVudChlLmludGVncmF0aW9uKToiIikrKGE/IiZsYW5nPSIrYToiIikrKHM/IiZjaWQ9IitlbmNvZGVVUklDb21wb25lbnQocyk6IiIpKyhyPyImY3Rva2VuPSIrZW5jb2RlVVJJQ29tcG9uZW50KHIpOiIiKSsoYz8iJmNjdXN0b209MSI6IiIpKyhlLnNlcnZlcj8iJnNlcnZlcj0iK2VuY29kZVVSSUNvbXBvbmVudChlLnNlcnZlcik6IiIpKyhpPyImbGFzdEFjdGl2aXR5PSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpOiIiKSsiJnI9IitNYXRoLnJhbmRvbSgpKyhlLmFwcGVhcmFuY2U/IiZhcHBlYXJhbmNlPSIrZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGUuYXBwZWFyYW5jZSkpOiIiKSsoZS5zZXNzaW9uLnBlcnNpc3Q/IiI6IiZub1BlcnNpc3Q9MSIpKyh2b2lkIDAhPT1vPyImY2xvc2U9IitOdW1iZXIobyk6IiIpKyhsPyImb3BzPSIrZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGwpKToiIikrKHQmJnQuaXNGb3JjZWROZXc/IiZpZ25vcmVTdG9yZWQ9MSI6IiIpKyhuPyImY29ubmVjdD0xIjoiIikrIiZvdT0iK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ub3JpZ2lufHx3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCl9KGUsdCxuKX1mdW5jdGlvbiBxbihlLHQsbixvKXtvPW98fGIuaW5uZXIseD9uJiZqbigpOigoeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSkuY2xhc3NOYW1lPSJjaGFwb3J0LWlubmVyLWlmcmFtZSIseC5zcmM9V24oZSx0LG4pLHcub24oeCwibG9hZCIsZnVuY3Rpb24oKXt2YXIgZTtlPXR0LHR0PVtdLGUuZm9yRWFjaChmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGUsMCl9KSx0aGlzLmxvYWRlZD0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dS5zZXRTdGF0ZSgiaWZyYW1lUmVhZHkiKX0sNWUzKX0pLHUuc2V0U3RhdGUoImlmcmFtZUxvYWRpbmciKSwobnx8ZS5zb2NrZXQmJmUuc29ja2V0LmNvbm5lY3QpJiZqbigpLHguZnJhbWVCb3JkZXI9MCx4LnNjcm9sbGluZz0ibm8iLGIubG9hZGluZ092ZXJsYXkmJncucmVwbGFjZUNzc0NsYXNzKGIubG9hZGluZ092ZXJsYXksImNoYXBvcnQtYW5pbS1oaWRlIiwiY2hhcG9ydC1hbmltLXNob3ciKSx1LmV4cGVjdChbImlmcmFtZVJlYWR5Il0sZnVuY3Rpb24oKXtiLmxvYWRpbmdPdmVybGF5JiZ3LnJlcGxhY2VDc3NDbGFzcyhiLmxvYWRpbmdPdmVybGF5LCJjaGFwb3J0LWFuaW0tc2hvdyIsImNoYXBvcnQtYW5pbS1oaWRlIil9KSksbyE9PXgucGFyZW50Tm9kZSYmby5hcHBlbmRDaGlsZCh4KX1mdW5jdGlvbiBqbigpe3UuaXMoImlmcmFtZUxvYWRpbmciKT91LmlzKCJjb25uZWN0aW5nIil8fCh1LnNldFN0YXRlKCJjb25uZWN0aW5nIiksdS5pcygiY29ubmVjdGlvblJlYWR5IikpfHxOKCJjb25uZWN0Iik6cW4odixmLCEwKX1mdW5jdGlvbiBOKHQsbil7QShmdW5jdGlvbigpe3ZhciBlPVsiOjpjcCIsdF07dm9pZCAwIT09biYmZS5wdXNoKEpTT04uc3RyaW5naWZ5KG4pKSx4LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoZS5qb2luKCI6IiksImh0dHBzOi8vYXBwLmNoYXBvcnQuY29tIil9KX1mdW5jdGlvbiB6bihlKXtBKGZ1bmN0aW9uKCl7eC5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKGUsImh0dHBzOi8vYXBwLmNoYXBvcnQuY29tIil9KX1mdW5jdGlvbiBBKGUpe3cuZG9XaGVuV2luZG93UmVhZHkoZnVuY3Rpb24oKXt4JiZ4LmxvYWRlZD9lLmNhbGwoeCx4KTp0dC5wdXNoKGUpfSl9ZnVuY3Rpb24gSG4oKXtyZXR1cm4gXygibGFzdF9hY3Rpdml0eV9hdCIpfWZ1bmN0aW9uIFZuKCl7aygibGFzdF9hY3Rpdml0eV9hdCIsKG5ldyBEYXRlKS5nZXRUaW1lKCkpfWZ1bmN0aW9uIEduKGUpe2lmKGUmJnZvaWQgMCE9PWUudW5yZWFkcyYmKG90PWUudW5yZWFkcyksZSYmZS5jYW5jZWwpcmV0dXJuIG4oKTtmdW5jdGlvbiB0KCl7UT0hMCwoST09PVUuZXhwYW5kZWR8fHYmJnYudW5yZWFkcyYmITA9PT12LnVucmVhZHMucmVzZXRPblVzZXJBY3Rpdml0eSkmJkZuKCksbigpfWZ1bmN0aW9uIG4oKXthdD0hMSx3Lm9mZih3aW5kb3cuZG9jdW1lbnQsIm1vdXNlbW92ZSIsdCksdy5vZmYod2luZG93LmRvY3VtZW50LCJ0b3VjaHN0YXJ0Iix0KSx3Lm9mZih3aW5kb3cuZG9jdW1lbnQsImtleWRvd24iLHQpfWZ1bmN0aW9uIG8oZSl7dmFyIHQ9e2ZvY3VzOiEwLGZvY3VzaW46ITAscGFnZXNob3c6ITAsYmx1cjohMSxmb2N1c291dDohMSxwYWdlaGlkZTohMX07KGU9ZXx8d2luZG93LmV2ZW50KS50eXBlIGluIHQmJihRPXRbZS50eXBlXSl9YXR8fChhdD0hMCxudHx8KHcub24od2luZG93LCJwYWdlc2hvdyIsbyksdy5vbih3aW5kb3csInBhZ2VoaWRlIixvKSx3Lm9uKHdpbmRvdywiZm9jdXMiLG8pLHcub24od2luZG93LCJibHVyIixvKSxudD0hMCksdy5vbih3aW5kb3cuZG9jdW1lbnQsIm1vdXNlbW92ZSIsdCksdy5vbih3aW5kb3cuZG9jdW1lbnQsInRvdWNoc3RhcnQiLHQpLHcub24od2luZG93LmRvY3VtZW50LCJrZXlkb3duIix0KSl9ZnVuY3Rpb24gRm4oKXtvdD0wLHpuKCI6OndzYzp1c2VyOmFjdGl2ZSIpfWZ1bmN0aW9uIFAoZSx0KXt2YXIgbj1udWxsO2lmKCh0PXR8fGQpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpMDwobz10LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZSkpLmxlbmd0aCYmKG49b1swXSk7ZWxzZSBpZih0LnF1ZXJ5U2VsZWN0b3Ipbj10LnF1ZXJ5U2VsZWN0b3IoIi4iK2UpO2Vsc2UgZm9yKHZhciBvPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxhPTA7YTxvLmxlbmd0aDthKyspaWYoLTE8KCIgIitvW2FdLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK2UrIiAiKSl7bj1vW2FdO2JyZWFrfXJldHVybiBufWZ1bmN0aW9uIEpuKGUpe3ZhciB0PWZ1bmN0aW9uKCl7bnVsbD09PWh0JiYoaHQ9e2NvdW50cnk6Z3QsbGFuZ3VhZ2U6ZnQscmVmZXJyZXI6RG4oKSx1dG06VG4oKX0pO3JldHVybiBodH0oKTtzd2l0Y2goZSl7Y2FzZSJjaGFubmVsIjpvPSJ3ZWJzaXRlIjticmVhaztjYXNlInRpbWVfb25fcGFnZSI6bz1QZT8obmV3IERhdGUpLmdldFRpbWUoKS1QZTowO2JyZWFrO2Nhc2UidGltZV9vbl9zaXRlIjp2YXIgbj1OdW1iZXIoXygic2Vzc2lvbl9zdGFydGVkX2F0IikpLG89KG5ldyBEYXRlKS5nZXRUaW1lKCktbjticmVhaztjYXNlInRpbWVfYWZ0ZXJfY2xvc2UiOm49TnVtYmVyKF8oIndpZGdldF9sYXN0X2Nsb3NlZCIpKTtvPShuZXcgRGF0ZSkuZ2V0VGltZSgpLW47YnJlYWs7Y2FzZSJwYWdlX3VybCI6bz13aW5kb3cubG9jYXRpb24uaHJlZjticmVhaztjYXNlIndpZGdldF9zdGF0ZSI6bz1YbihJKTticmVhaztjYXNlInBhZ2Vfdmlld3MiOm89cGFyc2VJbnQoXygicGFnZV92aWV3cyIpKTticmVhaztjYXNlIm1lc3NhZ2VfdGV4dCI6bz10JiZ0Lm1lc3NhZ2VUZXh0O2JyZWFrO2Nhc2UiY291bnRyeSI6bz10JiZ0LmNvdW50cnk7YnJlYWs7Y2FzZSJsYW5ndWFnZSI6bz10JiZ0Lmxhbmd1YWdlO2JyZWFrO2Nhc2UicmVmZXJyZXJfdXJsIjpvPXQmJnQucmVmZXJyZXI7YnJlYWs7Y2FzZSJ1dG1fc291cmNlIjpvPXQmJnQudXRtJiZ0LnV0bS5zb3VyY2U7YnJlYWs7Y2FzZSJ1dG1fbWVkaXVtIjpvPXQmJnQudXRtJiZ0LnV0bS5tZWRpdW07YnJlYWs7Y2FzZSJ1dG1fdGVybSI6bz10JiZ0LnV0bSYmdC51dG0udGVybTticmVhaztjYXNlInV0bV9jYW1wYWlnbiI6bz10JiZ0LnV0bSYmdC51dG0uY2FtcGFpZ247YnJlYWs7Y2FzZSJ1dG1fY29udGVudCI6bz10JiZ0LnV0bSYmdC51dG0uY29udGVudDticmVhaztkZWZhdWx0OnRocm93InVua25vd24gdHJpZ2dlciBwYXJhbWV0ZXIgIitlfXJldHVybiBvfWZ1bmN0aW9uIFUoZSx0KXt0aGlzLmVsZW1lbnRTdGF0ZXM9ZSx0aGlzLmhvb2tzPXR8fHt9fWZ1bmN0aW9uIFhuKGUpe2lmKGUgaW5zdGFuY2VvZiBVKWZvcih2YXIgdCBpbiBVKWlmKFUuaGFzT3duUHJvcGVydHkodCkmJlVbdF1pbnN0YW5jZW9mIFUmJmU9PT1VW3RdKXJldHVybiB0fWZ1bmN0aW9uIEIoZSx0LG4pe2lmKHJ0KWN0LnB1c2goe3N0YXRlOmUscGF5bG9hZDp0LGNhbGxiYWNrOm59KTtlbHNlIGlmKEk9PT1lKSJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuKCkscCgpO2Vsc2UgaWYoITE9PT1zbigid2lkZ2V0LmJlZm9yZVN0YXRlQ2hhbmdlIix7ZnJvbVN0YXRlOlhuKEkpLHRvU3RhdGU6WG4oZSkscGF5bG9hZDp0fSx7Y2FuY2VsbGFibGU6ITB9KSkiZnVuY3Rpb24iPT10eXBlb2YgbiYmbigpLHAoKTtlbHNle2lmKHJ0PSEwLHNuKCJ3aWRnZXQuc3RhdGVDaGFuZ2UiLHtmcm9tU3RhdGU6WG4oSSksdG9TdGF0ZTpYbihlKSxwYXlsb2FkOnR9KSxVLmV4cGFuZGVkPT09ZSYmKHYub3BlbklufHx5JiYhWSkpcmV0dXJuICRuKCksUXQodi5vcGVuSW58fCJfc2VsZiIpO3Q9dHx8e30samU9amV8fGZ1bmN0aW9uKCl7dmFyIGUsdCxuLG89W107Zm9yKGUgaW4gVS5jbGFzc0dyb3VwcylpZihVLmNsYXNzR3JvdXBzLmhhc093blByb3BlcnR5KGUpKWZvcih0PTAsbj1VLmNsYXNzR3JvdXBzW2VdWzFdO3Q8bi5sZW5ndGg7dCsrKS0xPT09by5pbmRleE9mKG5bdF0pJiZvLnB1c2goblt0XSk7cmV0dXJuIG8uc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9KSxvfSgpO3ZhciBvLGEsaSxzLHIsYyxsLGQ9SSx1PShJPWUsW10pO2ZvcigoZCYmZC5ob29rcy5iZWZvcmVPdXR8fGUuaG9va3MuYmVmb3JlSW4pJiYobz1bXSxkJiZkLmhvb2tzLmJlZm9yZU91dCYmby5wdXNoKGQuaG9va3MuYmVmb3JlT3V0KSxlLmhvb2tzLmJlZm9yZUluJiZvLnB1c2goZS5ob29rcy5iZWZvcmVJbiksdS5wdXNoKFIoZyx2b2lkIDAsW28sdF0pKSksYT0wO2E8amUubGVuZ3RoO2ErKyl7Zm9yKGkgaW4gcz1bXSxlLmVsZW1lbnRTdGF0ZXMpYltpXSYmKHI9KGM9aChlLmVsZW1lbnRTdGF0ZXNbaV0pKVswXSxsPWNbMV0sKGM9IWR8fHZvaWQgMD09PWQuZWxlbWVudFN0YXRlc1tpXXx8KGM9aChkLmVsZW1lbnRTdGF0ZXNbaV0pKVswXSE9PXI/clswXVswXTpjWzFdKSE9PWwpJiZmdW5jdGlvbihlLHQsbil7dD1lWzBdLmluZGV4T2YodCksbj1lWzBdLmluZGV4T2Yobik7cmV0dXJuIGVbMV1bdCooZVswXS5sZW5ndGgtMSkrbi1OdW1iZXIodDxuKV19KHIsYyxsKT09PWplW2FdJiYoKGM9clswXS5zbGljZSgwKSkuc3BsaWNlKGMuaW5kZXhPZihsKSwxKSxzLnB1c2goezA6YltpXSwxOmMsMjpsfSkpOzA8cy5sZW5ndGgmJnUucHVzaChSKGYsdm9pZCAwLFtzXSkpfShkJiZkLmhvb2tzLmFmdGVyT3V0fHxlLmhvb2tzLmFmdGVySW4pJiYobz1bXSxkJiZkLmhvb2tzLmFmdGVyT3V0JiZvLnB1c2goZC5ob29rcy5hZnRlck91dCksZS5ob29rcy5hZnRlckluJiZvLnB1c2goZS5ob29rcy5hZnRlckluKSx1LnB1c2goUihnLHZvaWQgMCxbbyx0XSkpKSwhZnVuY3Rpb24gZSh0KXtpZighdFswXSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbiYmbigpLHJ0PSExLHZvaWQgcCgpO3Quc2hpZnQoKShmdW5jdGlvbigpe2UodCl9KX0odSl9ZnVuY3Rpb24gcCgpe3ZhciBlOzA8Y3QubGVuZ3RoJiZCKChlPWN0LnNoaWZ0KCkpLnN0YXRlLGUucGF5bG9hZCxlLmNhbGxiYWNrKX1mdW5jdGlvbiBoKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/W1UuY2xhc3NHcm91cHMudmlzaWJpbGl0eSxVLmNsYXNzR3JvdXBzLnZpc2liaWxpdHlbMF1bTnVtYmVyKGUpXV06W1UuY2xhc3NHcm91cHNbZVswXV0sZVsxXV19ZnVuY3Rpb24gZyhuLG8sYSl7dy5yZW5kZXIobnVsbCxmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHQ9MDt0PG4ubGVuZ3RoO3QrKyllPU1hdGgubWF4KGUsblt0XShvKXx8MCk7c2V0VGltZW91dChmdW5jdGlvbigpe2EoKX0sZSl9KX1mdW5jdGlvbiBmKHIsYyl7dy5yZW5kZXIobnVsbCxmdW5jdGlvbigpe2Zvcih2YXIgZSx0LG4sbyxhPSExLGk9MCxzPXIubGVuZ3RoO2k8cztpKyspe2Zvcih0PXJbaV1bMF0sbj1yW2ldWzFdLG89cltpXVsyXSxlPTA7ZTxuLmxlbmd0aDtlKyspdy5yZW1vdmVDc3NDbGFzcyh0LG5bZV0pO3cuYWRkQ3NzQ2xhc3ModCxvKSx3Lm9uVHJhbnNpdGlvbkVuZCh0LGZ1bmN0aW9uKCl7YXx8KGE9ITAsYygpKX0sMjUwKX19KX19ZnVuY3Rpb24gJG4oKXtJIT09VS5leHBhbmRlZCYmQihVLmNvbGxhcHNlZCksWW4oMCl9ZnVuY3Rpb24gWW4oZSl7dmFyIHQ7dD1WZT1lLHcucmVuZGVyKG51bGwsZnVuY3Rpb24oKXt0PyhiLmxhdW5jaGVyVW5yZWFkLnRleHRDb250ZW50PXQsdy5yZXBsYWNlQ3NzQ2xhc3MoYi5sYXVuY2hlclVucmVhZCwiY2hhcG9ydC1iYWRnZS1oaWRlIiwiY2hhcG9ydC1iYWRnZS1zaG93IikpOncucmVwbGFjZUNzc0NsYXNzKGIubGF1bmNoZXJVbnJlYWQsImNoYXBvcnQtYmFkZ2Utc2hvdyIsImNoYXBvcnQtYmFkZ2UtaGlkZSIpfSl9ZnVuY3Rpb24gWm4oZSx0KXt2YXIgbixsOyFlLmNvbG9ySWQmJmUub3BlcmF0b3JzJiZlLm9wZXJhdG9yc1swXSYmZS5vcGVyYXRvcnNbMF0uY29sb3JJZCYmKGUuY29sb3JJZD1lLm9wZXJhdG9yc1swXS5jb2xvcklkKSwhZS5uYW1lJiZlLm9wZXJhdG9ycyYmZS5vcGVyYXRvcnNbMF0mJmUub3BlcmF0b3JzWzBdLm5hbWUmJihlLm5hbWU9ZS5vcGVyYXRvcnNbMF0ubmFtZSxlLm5hbWUpJiZlLm5hbWUuY29uc3RydWN0b3I9PT1BcnJheSYmKGUubmFtZT1nLmRlZmF1bHRCb3ROYW1lKSxuPWUub3BlcmF0b3JzJiZlLm9wZXJhdG9yc1swXSxIZT17Im5vLXBob3RvIjohbnx8IW4uaXNCb3QmJiFuLmltYWdlfHwhMSwiYm90LXBob3RvIjpuJiZuLmlzQm90fHwhMSwid2l0aC1waG90byI6biYmIW4uaXNCb3QmJm4uaW1hZ2V8fCExfSxuJiZuLmlzQm90P3plPSIvaW1hZ2VzL2NoYXRib3QtaWNvbi5zdmciOm4mJm4uaW1hZ2U/emU9Ii91cGxvYWRzL29wZXJhdG9yLWltYWdlcy8iK24uaW1hZ2U6S24oKSxZbih0fHwoVmV8fDApKzEpLGw9ZSx3LnJlbmRlcihudWxsLGZ1bmN0aW9uKCl7dmFyIG4sdCxlLG89emUsYT1IZSxpPWIubWVzc2FnZVBob3RvLHM9Yi5tZXNzYWdlVGV4dCxyPWIubWVzc2FnZVNlbmRlck5hbWUsYz1iLm1lc3NhZ2VQb3dlcmVkQnk7YVsiYm90LXBob3RvIl07aS5jbGFzc05hbWU9aS5jbGFzc05hbWUucmVwbGFjZSgvdXNlci1jb2xvci1cZCsvZywiIiksIW8mJmwuY29sb3JJZCYmdy5hZGRDc3NDbGFzcyhpLCJ1c2VyLWNvbG9yLSIrbC5jb2xvcklkKSxpLnN0eWxlLmRpc3BsYXk9b3x8bC5jb2xvcklkPyJibG9jayI6Im5vbmUiLG8hPT1pLmxhc3RJbWFnZURpc3BsYXllZCYmKGkuaW5uZXJIVE1MPW8/JzxpbWcgYWx0PSInK3cuZXNjYXBlSHRtbChsLm5hbWUpKyciIHNyYz0iaHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20nK28rJyIgLz4nOiIiKSxpLmxhc3RJbWFnZURpc3BsYXllZD1vLHcudG9nZ2xlQ3NzQ2xhc3MoaSxhKSxyJiYoci50ZXh0Q29udGVudD1sLm5hbWV8fCIiLHIuc3R5bGUuZGlzcGxheT1sLm5hbWU/ImJsb2NrIjoibm9uZSIpLHMuaW5uZXJIVE1MPShvPWwudGV4dCx3Lm5sVG9Ccih3Lm5sTmxUb1Aody51cmxzVG9MaW5rcyh3LmVzY2FwZUh0bWwody5iclRvTmwobykpKSkpKSxjJiZ3LnRvZ2dsZUNzc0NsYXNzKGMsImNoYXBvcnQtaGlkZSIsIWwuYnJhbmRlZCksbnVsbCE9PWwucmVwbHlPcHRpb25zJiYoaT1sLnJlcGx5T3B0aW9ucyxhPWIubWVzc2FnZVJlcGxpZXMsbj0hMSwwPT09KGk9aXx8W10pLmxlbmd0aD9hLmlubmVySFRNTD0iIjoocj1DJiZDLmNvbG9yQ29udHJhc3R8fCIiLHQ9cj8nc3R5bGU9ImNvbG9yOicrcisiOyBib3JkZXI6IDFweCBzb2xpZCAiK3cuaGV4VG9SR0JBKHIsLjgpKyciJzoiIixyPWkubWFwKGZ1bmN0aW9uKGUpe3JldHVybic8ZGl2IGNsYXNzPSJyZXBseS1vcHRpb24iIGRhdGEtcmVwbHktaWQ9IicrZS5pZCsnIicrdCsnPjxzcGFuIGNsYXNzPSJyZXBseS1vcHRpb24tdGV4dCI+Jyt3LmVzY2FwZUh0bWwoZS50ZXh0KSsiPC9zcGFuPjwvZGl2PiJ9KSxhLmlubmVySFRNTD0nPGRpdiBjbGFzcz0icmVwbHktb3B0aW9ucyI+JytyLmpvaW4oIiIpKyI8L2Rpdj4iLChlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEucXVlcnlTZWxlY3RvckFsbCgiLnJlcGx5LW9wdGlvbiIpKSkuZm9yRWFjaChmdW5jdGlvbihlKXs0MDxlLm9mZnNldEhlaWdodCYmKGUuc3R5bGUud2lkdGg9UW4oZSkpLHcub24oZSwiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGUsdDtufHwobj0hMCxlPXRoaXMudGV4dENvbnRlbnQsdD10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1yZXBseS1pZCIpLHRuKCksQShmdW5jdGlvbigpe04oInNlbmRNZXNzYWdlIix7dGV4dDplLGlkOnR9KX0pKX0pfSksdy5vbih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7NDA8ZS5vZmZzZXRIZWlnaHQmJihlLnN0eWxlLndpZHRoPSIiLGUuc3R5bGUud2lkdGg9UW4oZSkpfSl9KSksdy50b2dnbGVDc3NDbGFzcyhhLCJjaGFwb3J0LWhpZGUiLDA9PT1pLmxlbmd0aCksdy50b2dnbGVDc3NDbGFzcyhiLm1lc3NhZ2VJbnB1dCwiY2hhcG9ydC1oaWRlIiwwPGkubGVuZ3RofHx5KSksQihVLnVucmVhZE1lc3NhZ2UpfSl9ZnVuY3Rpb24gS24oKXtudWxsIT09emUmJih6ZT1udWxsKSxIZT17Im5vLXBob3RvIjohMCwiYm90LXBob3RvIjohMSwid2l0aC1waG90byI6ITF9fWZ1bmN0aW9uIFFuKGUpe3ZhciB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1lLmZpcnN0RWxlbWVudENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LndpZHRoLSh0LndpZHRoLW4ud2lkdGgpKzIqcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGUpLnBhZGRpbmdMZWZ0fHwiMTMuNCIpKzIqcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGUpLmJvcmRlcldpZHRofHwiMSIpKyJweCJ9ZnVuY3Rpb24gZW8oKXthLmZvckVhY2goZnVuY3Rpb24oZSl7c28oZS5pZCkmJmUud2F0Y2goKX0pLGR0PSEwfWZ1bmN0aW9uIHRvKCl7YS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudW53YXRjaCgpfSksZHQ9ITF9ZnVuY3Rpb24gbm8oZSl7aWYoZSl0cnl7aWYoKGU9InN0cmluZyI9PXR5cGVvZiBlP0pTT04ucGFyc2UoZSk6ZSkuY29uc3RydWN0b3IhPT1BcnJheSl0aHJvdyBuZXcgRXJyb3IoImNoYXBvcnQ6IHRyaWdnZXJzIGhhcyB0byBiZSBhbiBBcnJheSIpO2E9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBTbyhlLmlkLGUuYnJhbmRlZCxlLmludGVycnVwdGFibGUsZS5vbmNlLGUub3BlcmF0b3JJZCxlLmlzQm90LGUuY29uZGl0aW9uLGUuYWN0aW9ucyl9KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1mdW5jdGlvbiBNKGUpe2U/bi5pc0VuYWJsZWQ/bi5leGNlcHRpb25zPWFvKG4uZXhjZXB0aW9ucyxlKTpuLmV4Y2VwdGlvbnM9aW8obi5leGNlcHRpb25zLGUpOm49e2lzRW5hYmxlZDohMSxleGNlcHRpb25zOltdfSxkdCYmYS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3NvKGUuaWQpfHxlLnVud2F0Y2goKX0pfWZ1bmN0aW9uIG9vKGUpe2U/bi5pc0VuYWJsZWQ/bi5leGNlcHRpb25zPWlvKG4uZXhjZXB0aW9ucyxlKTpuLmV4Y2VwdGlvbnM9YW8obi5leGNlcHRpb25zLGUpOm49e2lzRW5hYmxlZDohMCxleGNlcHRpb25zOltdfSxkdCYmZW8oKX1mdW5jdGlvbiBhbyh0LGUpe3JldHVybiBlJiYoZT1lLmNvbnN0cnVjdG9yIT09QXJyYXk/W2VdOmUpLmZvckVhY2goZnVuY3Rpb24oZSl7LTE9PT10LmluZGV4T2YoZSkmJnQucHVzaChlKX0pLHR9ZnVuY3Rpb24gaW8odCxlKXtyZXR1cm4gZSYmKGU9ZS5jb25zdHJ1Y3RvciE9PUFycmF5P1tlXTplKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9dC5pbmRleE9mKGUpOy0xIT09ZSYmdC5zcGxpY2UoZSwxKX0pLHR9ZnVuY3Rpb24gc28oZSl7cmV0dXJuIG4uaXNFbmFibGVkJiYtMT09PW4uZXhjZXB0aW9ucy5pbmRleE9mKGUpfHwhbi5pc0VuYWJsZWQmJi0xIT09bi5leGNlcHRpb25zLmluZGV4T2YoZSl9ZnVuY3Rpb24gcm8oKXt1LmlzKCJjaGF0UmVhZHkiKSYmdS5pcygidHJpZ2dlcnNSZWFkeSIpJiZhLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5jb25kaXRpb24uZ2V0VGltZW91dER1cmF0aW9uKClbMF08PTAmJmUuY29uZGl0aW9uLmNoZWNrKCkmJmUudHJ5UnVubmluZygpfSl9ZnVuY3Rpb24gY28oKXt2YXIgZSxhO3UuaXMoImNoYXRTdGFydGVkIil8fGhvKCl8fCh0bygpLGU9dXQsdXQ9W10sKGE9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue21pbldhaXQ6ZS5jb25kaXRpb24uZ2V0VGltZW91dER1cmF0aW9uKClbMF0sdHJpZ2dlcjplfX0pKS5zb3J0KGZ1bmN0aW9uKGUsdCl7ZT1lLm1pbldhaXQtdC5taW5XYWl0O3JldHVybiBlPD0tMWUzPy0xOmU8PTA/MDoxfSksci5zaW5jZT1udWxsLGZ1bmN0aW9uIHQoKXt2YXIgZT1hLnNoaWZ0KCk7e3ZhciBuLG87ZT8obj1lLnRyaWdnZXIsdm9pZCAwIT09KG89bi5jb25kaXRpb24uY2hlY2tSZXF1aXJlZE9ubGluZVBhcmFtZXRlclZhbHVlKCkpP2huKGZ1bmN0aW9uKGUpe2U9PT1vP2dvKG4pOihNKG4uaWQpLHQoKSl9KTpnbyhuKSk6KHB0PW51bGwsZW8oKSl9fSgpKX1mdW5jdGlvbiBsbygpe3ZhciBlPV8ody5nZXRQb3N0Zml4ZWQoImFjdGl2ZV90cmlnZ2VyIix2LmFwcElkKSk7aWYoZT1lfHxfKCJhY3RpdmVfdHJpZ2dlciIpKXJldHVybiBKU09OLnBhcnNlKGUpfWZ1bmN0aW9uIHVvKGUpe2lmKCFlKXJldHVybiBmbygpO2UuYnJhbmRlZCYmKGUubWVzc2FnZT1nLmRlZmF1bHRBdXRvSW52aXRhdGlvbik7dmFyIHQ9e2lkOmUudHJpZ2dlcklkLGlzQm90OmUuaXNCb3QsbWVzc2FnZTplLm1lc3NhZ2UsYnJhbmRlZDplLmJyYW5kZWQscmVwbHlPcHRpb25zOmUucmVwbHlPcHRpb25zLG9wZXJhdG9yczplLm9wZXJhdG9ycyxkYXRlOm5ldyBEYXRlKGUudGltZXN0YW1wKX07cmV0dXJuIGUuaXNCb3QmJnN0LmhhbmRsZUV2ZW50KCJjaGF0LmJvdFNlbnQiLHQpLHN0LmhhbmRsZUV2ZW50KCJjaGF0LmF1dG9JbnZpdGF0aW9uIix0KSxrKHcuZ2V0UG9zdGZpeGVkKCJhY3RpdmVfdHJpZ2dlciIsdi5hcHBJZCksSlNPTi5zdHJpbmdpZnkoZSkpLEEoZnVuY3Rpb24oKXt3byhlKX0pLHBvKGUpfWZ1bmN0aW9uIHBvKGUpe3JldHVybiEoIWV8fGUuZGlzbWlzc2VkfHxJJiZJIT09VS5jb2xsYXBzZWR8fChabih7b3BlcmF0b3JzOmUub3BlcmF0b3JzLHRleHQ6ZS5tZXNzYWdlLHJlcGx5T3B0aW9uczplLnJlcGx5T3B0aW9ucyxicmFuZGVkOmUuYnJhbmRlZCx0eXBlOiJmbGFzaHkifSksMCkpfWZ1bmN0aW9uIGhvKCl7cmV0dXJuIF8ody5nZXRQb3N0Zml4ZWQoImFjdGl2ZV90cmlnZ2VyIix2LmFwcElkKSl8fF8oImFjdGl2ZV90cmlnZ2VyIil9ZnVuY3Rpb24gZ28odCl7dD9nbih0Lm9wZXJhdG9ySWQsdCxmdW5jdGlvbihlKXt0LmFwcGx5QWN0aW9ucyhlP1tlXTpudWxsKX0pOmZvKCl9ZnVuY3Rpb24gZm8oKXtUKHcuZ2V0UG9zdGZpeGVkKCJhY3RpdmVfdHJpZ2dlciIsdi5hcHBJZCkpLFQoImFjdGl2ZV90cmlnZ2VyIil9ZnVuY3Rpb24gbW8oZSl7dmFyIHQ9bG8oKTt0JiYodC5kaXNtaXNzZWQ9ITAsayh3LmdldFBvc3RmaXhlZCgiYWN0aXZlX3RyaWdnZXIiLHYuYXBwSWQpLEpTT04uc3RyaW5naWZ5KHQpKSksZSYmSSE9PVUuZXhwYW5kZWQmJkIoVS5jb2xsYXBzZWQpfWZ1bmN0aW9uIHdvKGUpe04oInNldEF1dG9JbnZpdGF0aW9uIixlKX1mdW5jdGlvbiB2bygpe3ZhciBlPWxvKCk7ZSYmQShmdW5jdGlvbigpe3dvKGUpfSl9ZnVuY3Rpb24geW8oZSl7ZS5vbj1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIEZ1bmN0aW9uIik7dGhpcy5saXN0ZW5lcnNbZV18fCh0aGlzLmxpc3RlbmVyc1tlXT1bXSksdGhpcy5saXN0ZW5lcnNbZV0ucHVzaCh0KX0sZS5vbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztuLm9uKGUsZnVuY3Rpb24oKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLm9mZihlLGFyZ3VtZW50cy5jYWxsZWUpfSl9LGUub2ZmPWZ1bmN0aW9uKGUsdCl7dGhpcy5saXN0ZW5lcnNbZV0mJi0xIT09KHQ9dGhpcy5saXN0ZW5lcnNbZV0uaW5kZXhPZih0KSkmJnRoaXMubGlzdGVuZXJzW2VdLnNwbGljZSh0LDEpfSxlLmVtaXRBbmRXYWl0PWZ1bmN0aW9uKGUsdCl7dmFyIG4sbz10aGlzLmxpc3RlbmVyc1tlXTtyZXR1cm4gbyYmKDE8dGhpcy5saXN0ZW5lcnNbZV0ubGVuZ3RoJiZjb25zb2xlLmVycm9yKCJlbWl0QW5kV2FpdCBoYXMgbW9yZSB0aGFuIDEgbGlzdGVuZXIiKSxvLmZvckVhY2goZnVuY3Rpb24oZSl7bj1lKHQpfSkpLG59LGUuZmlyZUV2ZW50PWUuZW1pdD1mdW5jdGlvbihlLHQpe2U9dGhpcy5saXN0ZW5lcnNbZV07ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHQpfSwwKX0pfX1mdW5jdGlvbiBibyhlLHQpe3N3aXRjaChodCYmKGh0W2VdPXQpLGUpe2Nhc2UiY291bnRyeSI6Z3Q9dDticmVhaztjYXNlImxhbmd1YWdlIjpmdD10fX1mdW5jdGlvbiBDbyh0KXtpZigibm9uZSIhPT10JiYhWGUpcmV0dXJuIHhvKGZ1bmN0aW9uKGUpe2UubG9hZCh0fHxKZXx8ImJlZXAiKX0pfWZ1bmN0aW9uIHhvKGUpe3ZhciB0LG47ZnVuY3Rpb24gbygpe3JldHVybiB3aW5kb3cuY2hhcG9ydC5hdWRpbyYmKGUod2luZG93LmNoYXBvcnQuYXVkaW8pLDEpfVhlfHxvKCl8fCh0PSJodHRwczovL2Fzc2V0cy5jaGFwb3J0LmNvbSIrKEZlfHwiL2phdmFzY3JpcHRzL2F1ZGlvLXBsYXllci5qcyIpLChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5vbmxvYWQ9ZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcyksbygpfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bygpfSwxMDApfSxuLnNyYz10LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobikpfWZ1bmN0aW9uIElvKCl7d3R8fG10LmxvYWQoKX1mdW5jdGlvbiBTbyhlLHQsbixvLGEsaSxzLHIpe3RoaXMuaWQ9ZSx0aGlzLmlzQm90PWksdGhpcy5vcGVyYXRvcklkPWEsdGhpcy5vbmNlPW8sdGhpcy5pbnRlcnJ1cHRhYmxlPW4sdGhpcy5icmFuZGVkPXQsdGhpcy5jb25kaXRpb249cy5jb25zdHJ1Y3RvciE9JGU/bmV3ICRlKHMpOnMsdGhpcy5hY3Rpb25DaGFpbj1yLmNvbnN0cnVjdG9yIT12dD9uZXcgdnQocix0aGlzKTpyLHRoaXMudGltZW91dD1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbH1mdW5jdGlvbiBSbyhlLHQsbil7dmFyIG89ITE7c3dpdGNoKHQpe2Nhc2UiZXF1YWxfdG8iOmNhc2UiZXF1YWwiOmNhc2UiPSI6bz1hKGUpPT1hKG4pO2JyZWFrO2Nhc2Uibm90X2VxdWFsX3RvIjpjYXNlIiFlcXVhbCI6Y2FzZSIhPSI6Y2FzZSI8PiI6bz1hKGUpIT1hKG4pO2JyZWFrO2Nhc2UiY29udGFpbnMiOm89LTEhPT1hKFN0cmluZyhlKSkuaW5kZXhPZihhKFN0cmluZyhuKSkpO2JyZWFrO2Nhc2UiZG9lc19ub3RfY29udGFpbiI6Y2FzZSIhY29udGFpbnMiOm89LTE9PT1hKFN0cmluZyhlKSkuaW5kZXhPZihhKFN0cmluZyhuKSkpO2JyZWFrO2Nhc2UiZ3JlYXRlcl90aGFuIjpjYXNlImd0IjpjYXNlIj4iOm89bjxlO2JyZWFrO2Nhc2UibGVzc190aGFuIjpjYXNlImx0IjpjYXNlIjwiOm89ZTxuO2JyZWFrO2Nhc2UibHRlIjpjYXNlIjw9IjpvPWU8PW47YnJlYWs7Y2FzZSJndGUiOmNhc2UiPj0iOm89bjw9ZTticmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoInVua25vd24gbWF0Y2hlciBhcmd1bWVudCIsdCl9cmV0dXJuIG87ZnVuY3Rpb24gYShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZS50b0xvd2VyQ2FzZSgpOmV9fWZ1bmN0aW9uIFRvKGUpe2Z1bmN0aW9uIGEoZSx0LG4pe3ZhciBvPXRoaXM7dGhpcy5jb21wYXJlPW4mJm4uY29tcGFyZXx8aSx0aGlzLmdldFBhcmFtZXRlclZhbHVlPW4mJm4uZ2V0UGFyYW1ldGVyVmFsdWV8fHMsdCYmKHRoaXMucGFyZW50PXQpLHRoaXMubWF0Y2hlcj1lLm1hdGNoZXJ8fCJlcXVhbCIsImFsbCI9PT10aGlzLm1hdGNoZXJ8fCJhbnkiPT09dGhpcy5tYXRjaGVyPyh0aGlzLnN1YkNvbmRpdGlvbnM9W10sZS5zdWJDb25kaXRpb25zLmZvckVhY2goZnVuY3Rpb24oZSl7by5zdWJDb25kaXRpb25zLnB1c2gobmV3IGEoZSxvLG4pKX0pKToodGhpcy5wYXJhbWV0ZXI9ZS5wYXJhbWV0ZXIsdGhpcy52YWx1ZT1lLnZhbHVlKX12YXIgaT1lLmNvbXBhcmUscz1lLmdldFBhcmFtZXRlclZhbHVlO3JldHVybiBhLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3ZhciB0PSExO2lmKC0xIT09WyJ0aW1lX29uX3BhZ2UiLCJ0aW1lX29uX3NpdGUiLCJvbmxpbmUiXS5pbmRleE9mKHRoaXMucGFyYW1ldGVyKSlyZXR1cm4hMDtzd2l0Y2godGhpcy5tYXRjaGVyKXtjYXNlImFsbCI6dD0hMCx0aGlzLnN1YkNvbmRpdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt0Jj1lLmNoZWNrKCl9KTticmVhaztjYXNlImFueSI6dD0hMSx0aGlzLnN1YkNvbmRpdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt0fD1lLmNoZWNrKCl9KTticmVhaztkZWZhdWx0OnQ9InBhZ2VfdXJsIj09PXRoaXMucGFyYW1ldGVyP3RoaXMuY29tcGFyZShlKHRoaXMuZ2V0UGFyYW1ldGVyVmFsdWUodGhpcy5wYXJhbWV0ZXIpKSx0aGlzLm1hdGNoZXIsZShTdHJpbmcodGhpcy52YWx1ZSkpKTp0aGlzLmNvbXBhcmUodGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZSh0aGlzLnBhcmFtZXRlciksdGhpcy5tYXRjaGVyLHRoaXMudmFsdWUpfXJldHVybiB0O2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGUucmVwbGFjZSgvXmh0dHBzPzpcL1wvfFwvJC9nLCIiKX19LGEucHJvdG90eXBlLmdldFRpbWVvdXREdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBvLGUsYT10aGlzO3JldHVybiJhbGwiPT09dGhpcy5tYXRjaGVyfHwiYW55Ij09PXRoaXMubWF0Y2hlcj8odGhpcy5zdWJDb25kaXRpb25zLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbixlPWUuZ2V0VGltZW91dER1cmF0aW9uKCk7aWYoZSlyZXR1cm4gbz8odD0iYWxsIj09PWEubWF0Y2hlcj9NYXRoLm1heDpNYXRoLm1pbixuPSJhbGwiPT09YS5tYXRjaGVyP01hdGgubWluOk1hdGgubWF4LCJhbGwiPT09YS5tYXRjaGVyJiYob1swXT5lWzFdfHxvWzFdPGVbMF0pP289WzEvMCwxLzBdOihvWzBdPXQob1swXSxlWzBdKSx2b2lkKG9bMV09bihvWzFdLGVbMV0pKSkpOm89ZX0pLG89b3x8WzAsMS8wXSk6InRpbWVfb25fcGFnZSIhPT10aGlzLnBhcmFtZXRlciYmInRpbWVfb25fc2l0ZSIhPT10aGlzLnBhcmFtZXRlciYmInRpbWVfYWZ0ZXJfY2xvc2UiIT09dGhpcy5wYXJhbWV0ZXJ8fChlPXBhcnNlSW50KHRoaXMudmFsdWUtdGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZSh0aGlzLnBhcmFtZXRlcikvMWUzKSxvPSJncmVhdGVyX3RoYW4iPT09dGhpcy5tYXRjaGVyP1sxZTMqKGUrMSksMS8wXToibGVzc190aGFuIj09PXRoaXMubWF0Y2hlcj9bMCwxZTMqKGUtMSldOltlLGVdKSxvfSxhLnByb3RvdHlwZS5jaGVja1JlcXVpcmVkT25saW5lUGFyYW1ldGVyVmFsdWU9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4tMSE9PVsiYWxsIiwiYW55Il0uaW5kZXhPZih0aGlzLm1hdGNoZXIpP3RoaXMuc3ViQ29uZGl0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9ZS5jaGVja1JlcXVpcmVkT25saW5lUGFyYW1ldGVyVmFsdWUoKTt2b2lkIDAhPT1lJiYodD1lKX0pOiJvbmxpbmUiPT09dGhpcy5wYXJhbWV0ZXImJih0PXRoaXMudmFsdWUpLHR9LGF9fSh3aW5kb3cpOw=="}},"time_used":9,"timings":{"blocked":0,"dns":4,"connect":1,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/bootstrap.min.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.601Z","timestamp":1785126645601,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/bootstrap.min.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 18284\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":121210,"size_decoded":18711,"mime_type":"text/css","magic":"ASCII text, with very long lines (65371)","md5":"caff26d27280ee640bd40de0656f968e","sha1":"ee4e58e63d03cdaf15c4f7266986ed0a32c1de1a","sha256":"0fefe7d9ac0cbb2950d386a34ab2eeabf44f3ffb2416b2e589b30668fb3182c8","sha512":"21229f076d14546941f76b209c02ebf4c1f3e667a248094699dab9c70fcf0116e8a511ee29e89f1d9134932aac2454408e9a77e94ed1e5114a2ee109ac783e65","ssdeep":"768:VykGxw/Vc/QWlJxtQOIuiHlq5mzI4X8OAduFKbv2ctF2Bd8JP7ecQXvH1FS:Ww/a1fIuiHlq5mN8lDbYmPbp","tlshash":"87c3c7a0f21031ea7333c55a75d0ed872219a153e56a4fb7f22f25d88f845ca16b3f1a","first_seen":"2023-11-30T19:44:02Z","last_seen":"2026-07-27T04:47:12.468861Z","times_seen":7,"resource_available":false,"data":"LyohCiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE2IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSkKICovLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlfWJvZHl7bWFyZ2luOjB9YXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbWVudSxuYXYsc2VjdGlvbixzdW1tYXJ5e2Rpc3BsYXk6YmxvY2t9YXVkaW8sY2FudmFzLHByb2dyZXNzLHZpZGVve2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfWF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5Om5vbmU7aGVpZ2h0OjB9W2hpZGRlbl0sdGVtcGxhdGV7ZGlzcGxheTpub25lfWF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1hOmFjdGl2ZSxhOmhvdmVye291dGxpbmU6MH1hYmJyW3RpdGxlXXtib3JkZXItYm90dG9tOjFweCBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfWRmbntmb250LXN0eWxlOml0YWxpY31oMXttYXJnaW46LjY3ZW0gMDtmb250LXNpemU6MmVtfW1hcmt7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZjB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdXB7dG9wOi0uNWVtfXN1Yntib3R0b206LS4yNWVtfWltZ3tib3JkZXI6MH1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocntoZWlnaHQ6MDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjA7Zm9udDppbmhlcml0O2NvbG9yOmluaGVyaXR9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBlPXJlc2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntwYWRkaW5nOjA7Ym9yZGVyOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9dey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGR9aW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1maWVsZHNldHtwYWRkaW5nOi4zNWVtIC42MjVlbSAuNzVlbTttYXJnaW46MCAycHg7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXJ9bGVnZW5ke3BhZGRpbmc6MDtib3JkZXI6MH10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfW9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OjcwMH10YWJsZXtib3JkZXItc3BhY2luZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX10ZCx0aHtwYWRkaW5nOjB9LyohIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyAqL0BtZWRpYSBwcmludHsqLDphZnRlciw6YmVmb3Jle2NvbG9yOiMwMDAhaW1wb3J0YW50O3RleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudH1hLGE6dmlzaXRlZHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWFbaHJlZl06YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIoaHJlZikgIikifWFiYnJbdGl0bGVdOmFmdGVye2NvbnRlbnQ6IiAoIiBhdHRyKHRpdGxlKSAiKSJ9YVtocmVmXj0iamF2YXNjcmlwdDoiXTphZnRlcixhW2hyZWZePSIjIl06YWZ0ZXJ7Y29udGVudDoiIn1ibG9ja3F1b3RlLHByZXtib3JkZXI6MXB4IHNvbGlkICM5OTk7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9dGhlYWR7ZGlzcGxheTp0YWJsZS1oZWFkZXItZ3JvdXB9aW1nLHRye3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfWltZ3ttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnR9aDIsaDMscHtvcnBoYW5zOjM7d2lkb3dzOjN9aDIsaDN7cGFnZS1icmVhay1hZnRlcjphdm9pZH0ubmF2YmFye2Rpc3BsYXk6bm9uZX0uYnRuPi5jYXJldCwuZHJvcHVwPi5idG4+LmNhcmV0e2JvcmRlci10b3AtY29sb3I6IzAwMCFpbXBvcnRhbnR9LmxhYmVse2JvcmRlcjoxcHggc29saWQgIzAwMH0udGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIWltcG9ydGFudH0udGFibGUgdGQsLnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9LnRhYmxlLWJvcmRlcmVkIHRkLC50YWJsZS1ib3JkZXJlZCB0aHtib3JkZXI6MXB4IHNvbGlkICNkZGQhaW1wb3J0YW50fX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7c3JjOnVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCk7c3JjOnVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyZDQxZGQ0MWRkNDFkLmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYpIGZvcm1hdCgnd29mZicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZyNnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIpIGZvcm1hdCgnc3ZnJyl9LmdseXBoaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmdseXBoaWNvbi1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXDAwMmEifS5nbHlwaGljb24tcGx1czpiZWZvcmV7Y29udGVudDoiXDAwMmIifS5nbHlwaGljb24tZXVyOmJlZm9yZSwuZ2x5cGhpY29uLWV1cm86YmVmb3Jle2NvbnRlbnQ6IlwyMGFjIn0uZ2x5cGhpY29uLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcMjIxMiJ9LmdseXBoaWNvbi1jbG91ZDpiZWZvcmV7Y29udGVudDoiXDI2MDEifS5nbHlwaGljb24tZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlwyNzA5In0uZ2x5cGhpY29uLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXDI3MGYifS5nbHlwaGljb24tZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDAxIn0uZ2x5cGhpY29uLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZTAwMiJ9LmdseXBoaWNvbi1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxlMDAzIn0uZ2x5cGhpY29uLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZTAwNSJ9LmdseXBoaWNvbi1zdGFyOmJlZm9yZXtjb250ZW50OiJcZTAwNiJ9LmdseXBoaWNvbi1zdGFyLWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZTAwNyJ9LmdseXBoaWNvbi11c2VyOmJlZm9yZXtjb250ZW50OiJcZTAwOCJ9LmdseXBoaWNvbi1maWxtOmJlZm9yZXtjb250ZW50OiJcZTAwOSJ9LmdseXBoaWNvbi10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGUwMTAifS5nbHlwaGljb24tdGg6YmVmb3Jle2NvbnRlbnQ6IlxlMDExIn0uZ2x5cGhpY29uLXRoLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxlMDEyIn0uZ2x5cGhpY29uLW9rOmJlZm9yZXtjb250ZW50OiJcZTAxMyJ9LmdseXBoaWNvbi1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDE0In0uZ2x5cGhpY29uLXpvb20taW46YmVmb3Jle2NvbnRlbnQ6IlxlMDE1In0uZ2x5cGhpY29uLXpvb20tb3V0OmJlZm9yZXtjb250ZW50OiJcZTAxNiJ9LmdseXBoaWNvbi1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxlMDE3In0uZ2x5cGhpY29uLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGUwMTgifS5nbHlwaGljb24tY29nOmJlZm9yZXtjb250ZW50OiJcZTAxOSJ9LmdseXBoaWNvbi10cmFzaDpiZWZvcmV7Y29udGVudDoiXGUwMjAifS5nbHlwaGljb24taG9tZTpiZWZvcmV7Y29udGVudDoiXGUwMjEifS5nbHlwaGljb24tZmlsZTpiZWZvcmV7Y29udGVudDoiXGUwMjIifS5nbHlwaGljb24tdGltZTpiZWZvcmV7Y29udGVudDoiXGUwMjMifS5nbHlwaGljb24tcm9hZDpiZWZvcmV7Y29udGVudDoiXGUwMjQifS5nbHlwaGljb24tZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZTAyNSJ9LmdseXBoaWNvbi1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGUwMjYifS5nbHlwaGljb24tdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZTAyNyJ9LmdseXBoaWNvbi1pbmJveDpiZWZvcmV7Y29udGVudDoiXGUwMjgifS5nbHlwaGljb24tcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDI5In0uZ2x5cGhpY29uLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGUwMzAifS5nbHlwaGljb24tcmVmcmVzaDpiZWZvcmV7Y29udGVudDoiXGUwMzEifS5nbHlwaGljb24tbGlzdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDMyIn0uZ2x5cGhpY29uLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDMzIn0uZ2x5cGhpY29uLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxlMDM0In0uZ2x5cGhpY29uLWhlYWRwaG9uZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMDM1In0uZ2x5cGhpY29uLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxlMDM2In0uZ2x5cGhpY29uLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTAzNyJ9LmdseXBoaWNvbi12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDM4In0uZ2x5cGhpY29uLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGUwMzkifS5nbHlwaGljb24tYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGUwNDAifS5nbHlwaGljb24tdGFnOmJlZm9yZXtjb250ZW50OiJcZTA0MSJ9LmdseXBoaWNvbi10YWdzOmJlZm9yZXtjb250ZW50OiJcZTA0MiJ9LmdseXBoaWNvbi1ib29rOmJlZm9yZXtjb250ZW50OiJcZTA0MyJ9LmdseXBoaWNvbi1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGUwNDQifS5nbHlwaGljb24tcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDQ1In0uZ2x5cGhpY29uLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGUwNDYifS5nbHlwaGljb24tZm9udDpiZWZvcmV7Y29udGVudDoiXGUwNDcifS5nbHlwaGljb24tYm9sZDpiZWZvcmV7Y29udGVudDoiXGUwNDgifS5nbHlwaGljb24taXRhbGljOmJlZm9yZXtjb250ZW50OiJcZTA0OSJ9LmdseXBoaWNvbi10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGUwNTAifS5nbHlwaGljb24tdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGUwNTEifS5nbHlwaGljb24tYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGUwNTIifS5nbHlwaGljb24tYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZTA1MyJ9LmdseXBoaWNvbi1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUwNTQifS5nbHlwaGljb24tYWxpZ24tanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGUwNTUifS5nbHlwaGljb24tbGlzdDpiZWZvcmV7Y29udGVudDoiXGUwNTYifS5nbHlwaGljb24taW5kZW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDU3In0uZ2x5cGhpY29uLWluZGVudC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUwNTgifS5nbHlwaGljb24tZmFjZXRpbWUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxlMDU5In0uZ2x5cGhpY29uLXBpY3R1cmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDYwIn0uZ2x5cGhpY29uLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDYyIn0uZ2x5cGhpY29uLWFkanVzdDpiZWZvcmV7Y29udGVudDoiXGUwNjMifS5nbHlwaGljb24tdGludDpiZWZvcmV7Y29udGVudDoiXGUwNjQifS5nbHlwaGljb24tZWRpdDpiZWZvcmV7Y29udGVudDoiXGUwNjUifS5nbHlwaGljb24tc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDY2In0uZ2x5cGhpY29uLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTA2NyJ9LmdseXBoaWNvbi1tb3ZlOmJlZm9yZXtjb250ZW50OiJcZTA2OCJ9LmdseXBoaWNvbi1zdGVwLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA2OSJ9LmdseXBoaWNvbi1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3MCJ9LmdseXBoaWNvbi1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGUwNzEifS5nbHlwaGljb24tcGxheTpiZWZvcmV7Y29udGVudDoiXGUwNzIifS5nbHlwaGljb24tcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDczIn0uZ2x5cGhpY29uLXN0b3A6YmVmb3Jle2NvbnRlbnQ6IlxlMDc0In0uZ2x5cGhpY29uLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDc1In0uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGUwNzYifS5nbHlwaGljb24tc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3NyJ9LmdseXBoaWNvbi1lamVjdDpiZWZvcmV7Y29udGVudDoiXGUwNzgifS5nbHlwaGljb24tY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTA3OSJ9LmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA4MCJ9LmdseXBoaWNvbi1wbHVzLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDgxIn0uZ2x5cGhpY29uLW1pbnVzLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDgyIn0uZ2x5cGhpY29uLXJlbW92ZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZTA4MyJ9LmdseXBoaWNvbi1vay1zaWduOmJlZm9yZXtjb250ZW50OiJcZTA4NCJ9LmdseXBoaWNvbi1xdWVzdGlvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZTA4NSJ9LmdseXBoaWNvbi1pbmZvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg2In0uZ2x5cGhpY29uLXNjcmVlbnNob3Q6YmVmb3Jle2NvbnRlbnQ6IlxlMDg3In0uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDg4In0uZ2x5cGhpY29uLW9rLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwODkifS5nbHlwaGljb24tYmFuLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwOTAifS5nbHlwaGljb24tYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGUwOTEifS5nbHlwaGljb24tYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDkyIn0uZ2x5cGhpY29uLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZTA5MyJ9LmdseXBoaWNvbi1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZTA5NCJ9LmdseXBoaWNvbi1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDk1In0uZ2x5cGhpY29uLXJlc2l6ZS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZTA5NiJ9LmdseXBoaWNvbi1yZXNpemUtc21hbGw6YmVmb3Jle2NvbnRlbnQ6IlxlMDk3In0uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMTAxIn0uZ2x5cGhpY29uLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTAyIn0uZ2x5cGhpY29uLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxlMTAzIn0uZ2x5cGhpY29uLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTA0In0uZ2x5cGhpY29uLWV5ZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTEwNSJ9LmdseXBoaWNvbi1leWUtY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxlMTA2In0uZ2x5cGhpY29uLXdhcm5pbmctc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxMDcifS5nbHlwaGljb24tcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTA4In0uZ2x5cGhpY29uLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZTEwOSJ9LmdseXBoaWNvbi1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxlMTEwIn0uZ2x5cGhpY29uLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTExIn0uZ2x5cGhpY29uLW1hZ25ldDpiZWZvcmV7Y29udGVudDoiXGUxMTIifS5nbHlwaGljb24tY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGUxMTMifS5nbHlwaGljb24tY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZTExNCJ9LmdseXBoaWNvbi1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZTExNSJ9LmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZTExNiJ9LmdseXBoaWNvbi1mb2xkZXItY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxlMTE3In0uZ2x5cGhpY29uLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTExOCJ9LmdseXBoaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxlMTE5In0uZ2x5cGhpY29uLXJlc2l6ZS1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZTEyMCJ9LmdseXBoaWNvbi1oZGQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTIxIn0uZ2x5cGhpY29uLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZTEyMiJ9LmdseXBoaWNvbi1iZWxsOmJlZm9yZXtjb250ZW50OiJcZTEyMyJ9LmdseXBoaWNvbi1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGUxMjQifS5nbHlwaGljb24tdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZTEyNSJ9LmdseXBoaWNvbi10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGUxMjYifS5nbHlwaGljb24taGFuZC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUxMjcifS5nbHlwaGljb24taGFuZC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTEyOCJ9LmdseXBoaWNvbi1oYW5kLXVwOmJlZm9yZXtjb250ZW50OiJcZTEyOSJ9LmdseXBoaWNvbi1oYW5kLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMTMwIn0uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUxMzEifS5nbHlwaGljb24tY2lyY2xlLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTMyIn0uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGUxMzMifS5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMTM0In0uZ2x5cGhpY29uLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZTEzNSJ9LmdseXBoaWNvbi13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxlMTM2In0uZ2x5cGhpY29uLXRhc2tzOmJlZm9yZXtjb250ZW50OiJcZTEzNyJ9LmdseXBoaWNvbi1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTM4In0uZ2x5cGhpY29uLWJyaWVmY2FzZTpiZWZvcmV7Y29udGVudDoiXGUxMzkifS5nbHlwaGljb24tZnVsbHNjcmVlbjpiZWZvcmV7Y29udGVudDoiXGUxNDAifS5nbHlwaGljb24tZGFzaGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZTE0MSJ9LmdseXBoaWNvbi1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTQyIn0uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZTE0MyJ9LmdseXBoaWNvbi1saW5rOmJlZm9yZXtjb250ZW50OiJcZTE0NCJ9LmdseXBoaWNvbi1waG9uZTpiZWZvcmV7Y29udGVudDoiXGUxNDUifS5nbHlwaGljb24tcHVzaHBpbjpiZWZvcmV7Y29udGVudDoiXGUxNDYifS5nbHlwaGljb24tdXNkOmJlZm9yZXtjb250ZW50OiJcZTE0OCJ9LmdseXBoaWNvbi1nYnA6YmVmb3Jle2NvbnRlbnQ6IlxlMTQ5In0uZ2x5cGhpY29uLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTUwIn0uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTUxIn0uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZTE1MiJ9LmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZTE1MyJ9LmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGUxNTQifS5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzOmJlZm9yZXtjb250ZW50OiJcZTE1NSJ9LmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZXtjb250ZW50OiJcZTE1NiJ9LmdseXBoaWNvbi11bmNoZWNrZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTU3In0uZ2x5cGhpY29uLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGUxNTgifS5nbHlwaGljb24tY29sbGFwc2UtZG93bjpiZWZvcmV7Y29udGVudDoiXGUxNTkifS5nbHlwaGljb24tY29sbGFwc2UtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTYwIn0uZ2x5cGhpY29uLWxvZy1pbjpiZWZvcmV7Y29udGVudDoiXGUxNjEifS5nbHlwaGljb24tZmxhc2g6YmVmb3Jle2NvbnRlbnQ6IlxlMTYyIn0uZ2x5cGhpY29uLWxvZy1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTYzIn0uZ2x5cGhpY29uLW5ldy13aW5kb3c6YmVmb3Jle2NvbnRlbnQ6IlxlMTY0In0uZ2x5cGhpY29uLXJlY29yZDpiZWZvcmV7Y29udGVudDoiXGUxNjUifS5nbHlwaGljb24tc2F2ZTpiZWZvcmV7Y29udGVudDoiXGUxNjYifS5nbHlwaGljb24tb3BlbjpiZWZvcmV7Y29udGVudDoiXGUxNjcifS5nbHlwaGljb24tc2F2ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTY4In0uZ2x5cGhpY29uLWltcG9ydDpiZWZvcmV7Y29udGVudDoiXGUxNjkifS5nbHlwaGljb24tZXhwb3J0OmJlZm9yZXtjb250ZW50OiJcZTE3MCJ9LmdseXBoaWNvbi1zZW5kOmJlZm9yZXtjb250ZW50OiJcZTE3MSJ9LmdseXBoaWNvbi1mbG9wcHktZGlzazpiZWZvcmV7Y29udGVudDoiXGUxNzIifS5nbHlwaGljb24tZmxvcHB5LXNhdmVkOmJlZm9yZXtjb250ZW50OiJcZTE3MyJ9LmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlOmJlZm9yZXtjb250ZW50OiJcZTE3NCJ9LmdseXBoaWNvbi1mbG9wcHktc2F2ZTpiZWZvcmV7Y29udGVudDoiXGUxNzUifS5nbHlwaGljb24tZmxvcHB5LW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTc2In0uZ2x5cGhpY29uLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZTE3NyJ9LmdseXBoaWNvbi10cmFuc2ZlcjpiZWZvcmV7Y29udGVudDoiXGUxNzgifS5nbHlwaGljb24tY3V0bGVyeTpiZWZvcmV7Y29udGVudDoiXGUxNzkifS5nbHlwaGljb24taGVhZGVyOmJlZm9yZXtjb250ZW50OiJcZTE4MCJ9LmdseXBoaWNvbi1jb21wcmVzc2VkOmJlZm9yZXtjb250ZW50OiJcZTE4MSJ9LmdseXBoaWNvbi1lYXJwaG9uZTpiZWZvcmV7Y29udGVudDoiXGUxODIifS5nbHlwaGljb24tcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZTE4MyJ9LmdseXBoaWNvbi10b3dlcjpiZWZvcmV7Y29udGVudDoiXGUxODQifS5nbHlwaGljb24tc3RhdHM6YmVmb3Jle2NvbnRlbnQ6IlxlMTg1In0uZ2x5cGhpY29uLXNkLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZTE4NiJ9LmdseXBoaWNvbi1oZC12aWRlbzpiZWZvcmV7Y29udGVudDoiXGUxODcifS5nbHlwaGljb24tc3VidGl0bGVzOmJlZm9yZXtjb250ZW50OiJcZTE4OCJ9LmdseXBoaWNvbi1zb3VuZC1zdGVyZW86YmVmb3Jle2NvbnRlbnQ6IlxlMTg5In0uZ2x5cGhpY29uLXNvdW5kLWRvbGJ5OmJlZm9yZXtjb250ZW50OiJcZTE5MCJ9LmdseXBoaWNvbi1zb3VuZC01LTE6YmVmb3Jle2NvbnRlbnQ6IlxlMTkxIn0uZ2x5cGhpY29uLXNvdW5kLTYtMTpiZWZvcmV7Y29udGVudDoiXGUxOTIifS5nbHlwaGljb24tc291bmQtNy0xOmJlZm9yZXtjb250ZW50OiJcZTE5MyJ9LmdseXBoaWNvbi1jb3B5cmlnaHQtbWFyazpiZWZvcmV7Y29udGVudDoiXGUxOTQifS5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlMTk1In0uZ2x5cGhpY29uLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTE5NyJ9LmdseXBoaWNvbi1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTk4In0uZ2x5cGhpY29uLXRyZWUtY29uaWZlcjpiZWZvcmV7Y29udGVudDoiXGUxOTkifS5nbHlwaGljb24tdHJlZS1kZWNpZHVvdXM6YmVmb3Jle2NvbnRlbnQ6IlxlMjAwIn0uZ2x5cGhpY29uLWNkOmJlZm9yZXtjb250ZW50OiJcZTIwMSJ9LmdseXBoaWNvbi1zYXZlLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjAyIn0uZ2x5cGhpY29uLW9wZW4tZmlsZTpiZWZvcmV7Y29udGVudDoiXGUyMDMifS5nbHlwaGljb24tbGV2ZWwtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMjA0In0uZ2x5cGhpY29uLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxlMjA1In0uZ2x5cGhpY29uLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZTIwNiJ9LmdseXBoaWNvbi1hbGVydDpiZWZvcmV7Y29udGVudDoiXGUyMDkifS5nbHlwaGljb24tZXF1YWxpemVyOmJlZm9yZXtjb250ZW50OiJcZTIxMCJ9LmdseXBoaWNvbi1raW5nOmJlZm9yZXtjb250ZW50OiJcZTIxMSJ9LmdseXBoaWNvbi1xdWVlbjpiZWZvcmV7Y29udGVudDoiXGUyMTIifS5nbHlwaGljb24tcGF3bjpiZWZvcmV7Y29udGVudDoiXGUyMTMifS5nbHlwaGljb24tYmlzaG9wOmJlZm9yZXtjb250ZW50OiJcZTIxNCJ9LmdseXBoaWNvbi1rbmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjE1In0uZ2x5cGhpY29uLWJhYnktZm9ybXVsYTpiZWZvcmV7Y29udGVudDoiXGUyMTYifS5nbHlwaGljb24tdGVudDpiZWZvcmV7Y29udGVudDoiXDI2ZmEifS5nbHlwaGljb24tYmxhY2tib2FyZDpiZWZvcmV7Y29udGVudDoiXGUyMTgifS5nbHlwaGljb24tYmVkOmJlZm9yZXtjb250ZW50OiJcZTIxOSJ9LmdseXBoaWNvbi1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGY4ZmYifS5nbHlwaGljb24tZXJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxlMjIxIn0uZ2x5cGhpY29uLWhvdXJnbGFzczpiZWZvcmV7Y29udGVudDoiXDIzMWIifS5nbHlwaGljb24tbGFtcDpiZWZvcmV7Y29udGVudDoiXGUyMjMifS5nbHlwaGljb24tZHVwbGljYXRlOmJlZm9yZXtjb250ZW50OiJcZTIyNCJ9LmdseXBoaWNvbi1waWdneS1iYW5rOmJlZm9yZXtjb250ZW50OiJcZTIyNSJ9LmdseXBoaWNvbi1zY2lzc29yczpiZWZvcmV7Y29udGVudDoiXGUyMjYifS5nbHlwaGljb24tYml0Y29pbjpiZWZvcmV7Y29udGVudDoiXGUyMjcifS5nbHlwaGljb24tYnRjOmJlZm9yZXtjb250ZW50OiJcZTIyNyJ9LmdseXBoaWNvbi14YnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjI3In0uZ2x5cGhpY29uLXllbjpiZWZvcmV7Y29udGVudDoiXDAwYTUifS5nbHlwaGljb24tanB5OmJlZm9yZXtjb250ZW50OiJcMDBhNSJ9LmdseXBoaWNvbi1ydWJsZTpiZWZvcmV7Y29udGVudDoiXDIwYmQifS5nbHlwaGljb24tcnViOmJlZm9yZXtjb250ZW50OiJcMjBiZCJ9LmdseXBoaWNvbi1zY2FsZTpiZWZvcmV7Y29udGVudDoiXGUyMzAifS5nbHlwaGljb24taWNlLWxvbGx5OmJlZm9yZXtjb250ZW50OiJcZTIzMSJ9LmdseXBoaWNvbi1pY2UtbG9sbHktdGFzdGVkOmJlZm9yZXtjb250ZW50OiJcZTIzMiJ9LmdseXBoaWNvbi1lZHVjYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlMjMzIn0uZ2x5cGhpY29uLW9wdGlvbi1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZTIzNCJ9LmdseXBoaWNvbi1vcHRpb24tdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxlMjM1In0uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyOmJlZm9yZXtjb250ZW50OiJcZTIzNiJ9LmdseXBoaWNvbi1tb2RhbC13aW5kb3c6YmVmb3Jle2NvbnRlbnQ6IlxlMjM3In0uZ2x5cGhpY29uLW9pbDpiZWZvcmV7Y29udGVudDoiXGUyMzgifS5nbHlwaGljb24tZ3JhaW46YmVmb3Jle2NvbnRlbnQ6IlxlMjM5In0uZ2x5cGhpY29uLXN1bmdsYXNzZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMjQwIn0uZ2x5cGhpY29uLXRleHQtc2l6ZTpiZWZvcmV7Y29udGVudDoiXGUyNDEifS5nbHlwaGljb24tdGV4dC1jb2xvcjpiZWZvcmV7Y29udGVudDoiXGUyNDIifS5nbHlwaGljb24tdGV4dC1iYWNrZ3JvdW5kOmJlZm9yZXtjb250ZW50OiJcZTI0MyJ9LmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdG9wOmJlZm9yZXtjb250ZW50OiJcZTI0NCJ9LmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZTI0NSJ9LmdseXBoaWNvbi1vYmplY3QtYWxpZ24taG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGUyNDYifS5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ3In0uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUyNDgifS5nbHlwaGljb24tb2JqZWN0LWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI0OSJ9LmdseXBoaWNvbi10cmlhbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUyNTAifS5nbHlwaGljb24tdHJpYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGUyNTEifS5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZTI1MiJ9LmdseXBoaWNvbi10cmlhbmdsZS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxlMjUzIn0uZ2x5cGhpY29uLWNvbnNvbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjU0In0uZ2x5cGhpY29uLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZTI1NSJ9LmdseXBoaWNvbi1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjU2In0uZ2x5cGhpY29uLW1lbnUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGUyNTcifS5nbHlwaGljb24tbWVudS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUyNTgifS5nbHlwaGljb24tbWVudS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTI1OSJ9LmdseXBoaWNvbi1tZW51LXVwOmJlZm9yZXtjb250ZW50OiJcZTI2MCJ9Knstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9OmFmdGVyLDpiZWZvcmV7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fWh0bWx7Zm9udC1zaXplOjEwcHg7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9Ym9keXtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9YnV0dG9uLGlucHV0LHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9YXtjb2xvcjojMzM3YWI3O3RleHQtZGVjb3JhdGlvbjpub25lfWE6Zm9jdXMsYTpob3Zlcntjb2xvcjojMjM1MjdjO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YTpmb2N1c3tvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDotMnB4fWZpZ3VyZXttYXJnaW46MH1pbWd7dmVydGljYWwtYWxpZ246bWlkZGxlfS5jYXJvdXNlbC1pbm5lcj4uaXRlbT5hPmltZywuY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+aW1nLC5pbWctcmVzcG9uc2l2ZSwudGh1bWJuYWlsIGE+aW1nLC50aHVtYm5haWw+aW1ne2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99LmltZy1yb3VuZGVke2JvcmRlci1yYWRpdXM6NnB4fS5pbWctdGh1bWJuYWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvO3BhZGRpbmc6NHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS5pbWctY2lyY2xle2JvcmRlci1yYWRpdXM6NTAlfWhye21hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VlZX0uc3Itb25seXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwYWRkaW5nOjA7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwLDAsMCwwKTtib3JkZXI6MH0uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLC5zci1vbmx5LWZvY3VzYWJsZTpmb2N1c3twb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO2NsaXA6YXV0b31bcm9sZT1idXR0b25de2N1cnNvcjpwb2ludGVyfS5oMSwuaDIsLmgzLC5oNCwuaDUsLmg2LGgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjppbmhlcml0fS5oMSAuc21hbGwsLmgxIHNtYWxsLC5oMiAuc21hbGwsLmgyIHNtYWxsLC5oMyAuc21hbGwsLmgzIHNtYWxsLC5oNCAuc21hbGwsLmg0IHNtYWxsLC5oNSAuc21hbGwsLmg1IHNtYWxsLC5oNiAuc21hbGwsLmg2IHNtYWxsLGgxIC5zbWFsbCxoMSBzbWFsbCxoMiAuc21hbGwsaDIgc21hbGwsaDMgLnNtYWxsLGgzIHNtYWxsLGg0IC5zbWFsbCxoNCBzbWFsbCxoNSAuc21hbGwsaDUgc21hbGwsaDYgLnNtYWxsLGg2IHNtYWxse2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxO2NvbG9yOiM3Nzd9LmgxLC5oMiwuaDMsaDEsaDIsaDN7bWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MTBweH0uaDEgLnNtYWxsLC5oMSBzbWFsbCwuaDIgLnNtYWxsLC5oMiBzbWFsbCwuaDMgLnNtYWxsLC5oMyBzbWFsbCxoMSAuc21hbGwsaDEgc21hbGwsaDIgLnNtYWxsLGgyIHNtYWxsLGgzIC5zbWFsbCxoMyBzbWFsbHtmb250LXNpemU6NjUlfS5oNCwuaDUsLmg2LGg0LGg1LGg2e21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHh9Lmg0IC5zbWFsbCwuaDQgc21hbGwsLmg1IC5zbWFsbCwuaDUgc21hbGwsLmg2IC5zbWFsbCwuaDYgc21hbGwsaDQgLnNtYWxsLGg0IHNtYWxsLGg1IC5zbWFsbCxoNSBzbWFsbCxoNiAuc21hbGwsaDYgc21hbGx7Zm9udC1zaXplOjc1JX0uaDEsaDF7Zm9udC1zaXplOjM2cHh9LmgyLGgye2ZvbnQtc2l6ZTozMHB4fS5oMyxoM3tmb250LXNpemU6MjRweH0uaDQsaDR7Zm9udC1zaXplOjE4cHh9Lmg1LGg1e2ZvbnQtc2l6ZToxNHB4fS5oNixoNntmb250LXNpemU6MTJweH1we21hcmdpbjowIDAgMTBweH0ubGVhZHttYXJnaW4tYm90dG9tOjIwcHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjEuNH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmxlYWR7Zm9udC1zaXplOjIxcHh9fS5zbWFsbCxzbWFsbHtmb250LXNpemU6ODUlfS5tYXJrLG1hcmt7cGFkZGluZzouMmVtO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlM30udGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdH0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0udGV4dC1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeX0udGV4dC1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS50ZXh0LWxvd2VyY2FzZXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LnRleHQtdXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0udGV4dC1jYXBpdGFsaXple3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9LnRleHQtbXV0ZWR7Y29sb3I6Izc3N30udGV4dC1wcmltYXJ5e2NvbG9yOiMzMzdhYjd9YS50ZXh0LXByaW1hcnk6Zm9jdXMsYS50ZXh0LXByaW1hcnk6aG92ZXJ7Y29sb3I6IzI4NjA5MH0udGV4dC1zdWNjZXNze2NvbG9yOiMzYzc2M2R9YS50ZXh0LXN1Y2Nlc3M6Zm9jdXMsYS50ZXh0LXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6IzJiNTQyY30udGV4dC1pbmZve2NvbG9yOiMzMTcwOGZ9YS50ZXh0LWluZm86Zm9jdXMsYS50ZXh0LWluZm86aG92ZXJ7Y29sb3I6IzI0NTI2OX0udGV4dC13YXJuaW5ne2NvbG9yOiM4YTZkM2J9YS50ZXh0LXdhcm5pbmc6Zm9jdXMsYS50ZXh0LXdhcm5pbmc6aG92ZXJ7Y29sb3I6IzY2NTEyY30udGV4dC1kYW5nZXJ7Y29sb3I6I2E5NDQ0Mn1hLnRleHQtZGFuZ2VyOmZvY3VzLGEudGV4dC1kYW5nZXI6aG92ZXJ7Y29sb3I6Izg0MzUzNH0uYmctcHJpbWFyeXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMzN2FiN31hLmJnLXByaW1hcnk6Zm9jdXMsYS5iZy1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzI4NjA5MH0uYmctc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDh9YS5iZy1zdWNjZXNzOmZvY3VzLGEuYmctc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjMWUyYjN9LmJnLWluZm97YmFja2dyb3VuZC1jb2xvcjojZDllZGY3fWEuYmctaW5mbzpmb2N1cyxhLmJnLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYWZkOWVlfS5iZy13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2ZjZjhlM31hLmJnLXdhcm5pbmc6Zm9jdXMsYS5iZy13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y3ZWNiNX0uYmctZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YyZGVkZX1hLmJnLWRhbmdlcjpmb2N1cyxhLmJnLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNGI5Yjl9LnBhZ2UtaGVhZGVye3BhZGRpbmctYm90dG9tOjlweDttYXJnaW46NDBweCAwIDIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2VlZX1vbCx1bHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxMHB4fW9sIG9sLG9sIHVsLHVsIG9sLHVsIHVse21hcmdpbi1ib3R0b206MH0ubGlzdC11bnN0eWxlZHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9Lmxpc3QtaW5saW5le3BhZGRpbmctbGVmdDowO21hcmdpbi1sZWZ0Oi01cHg7bGlzdC1zdHlsZTpub25lfS5saXN0LWlubGluZT5saXtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLWxlZnQ6NXB4fWRse21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjIwcHh9ZGQsZHR7bGluZS1oZWlnaHQ6MS40Mjg1NzE0M31kdHtmb250LXdlaWdodDo3MDB9ZGR7bWFyZ2luLWxlZnQ6MH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmRsLWhvcml6b250YWwgZHR7ZmxvYXQ6bGVmdDt3aWR0aDoxNjBweDtvdmVyZmxvdzpoaWRkZW47Y2xlYXI6bGVmdDt0ZXh0LWFsaWduOnJpZ2h0O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5kbC1ob3Jpem9udGFsIGRke21hcmdpbi1sZWZ0OjE4MHB4fX1hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdLGFiYnJbdGl0bGVde2N1cnNvcjpoZWxwO2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjNzc3fS5pbml0aWFsaXNte2ZvbnQtc2l6ZTo5MCU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWJsb2NrcXVvdGV7cGFkZGluZzoxMHB4IDIwcHg7bWFyZ2luOjAgMCAyMHB4O2ZvbnQtc2l6ZToxNy41cHg7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkICNlZWV9YmxvY2txdW90ZSBvbDpsYXN0LWNoaWxkLGJsb2NrcXVvdGUgcDpsYXN0LWNoaWxkLGJsb2NrcXVvdGUgdWw6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9YmxvY2txdW90ZSAuc21hbGwsYmxvY2txdW90ZSBmb290ZXIsYmxvY2txdW90ZSBzbWFsbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTo4MCU7bGluZS1oZWlnaHQ6MS40Mjg1NzE0Mztjb2xvcjojNzc3fWJsb2NrcXVvdGUgLnNtYWxsOmJlZm9yZSxibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsYmxvY2txdW90ZSBzbWFsbDpiZWZvcmV7Y29udGVudDonXDIwMTQgXDAwQTAnfS5ibG9ja3F1b3RlLXJldmVyc2UsYmxvY2txdW90ZS5wdWxsLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LWFsaWduOnJpZ2h0O2JvcmRlci1yaWdodDo1cHggc29saWQgI2VlZTtib3JkZXItbGVmdDowfS5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmJlZm9yZSwuYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjpiZWZvcmUsLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDpiZWZvcmUsYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDpiZWZvcmUsYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjpiZWZvcmUsYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmJlZm9yZXtjb250ZW50OicnfS5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmFmdGVyLC5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmFmdGVyLC5ibG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YWZ0ZXIsYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDphZnRlcixibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmFmdGVyLGJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDphZnRlcntjb250ZW50OidcMDBBMCBcMjAxNCd9YWRkcmVzc3ttYXJnaW4tYm90dG9tOjIwcHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MS40Mjg1NzE0M31jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTpNZW5sbyxNb25hY28sQ29uc29sYXMsIkNvdXJpZXIgTmV3Iixtb25vc3BhY2V9Y29kZXtwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjkwJTtjb2xvcjojYzcyNTRlO2JhY2tncm91bmQtY29sb3I6I2Y5ZjJmNDtib3JkZXItcmFkaXVzOjRweH1rYmR7cGFkZGluZzoycHggNHB4O2ZvbnQtc2l6ZTo5MCU7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjI1KTtib3gtc2hhZG93Omluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjI1KX1rYmQga2Jke3BhZGRpbmc6MDtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfXByZXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6OS41cHg7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzMzMzt3b3JkLWJyZWFrOmJyZWFrLWFsbDt3b3JkLXdyYXA6YnJlYWstd29yZDtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6NHB4fXByZSBjb2Rle3BhZGRpbmc6MDtmb250LXNpemU6aW5oZXJpdDtjb2xvcjppbmhlcml0O3doaXRlLXNwYWNlOnByZS13cmFwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowfS5wcmUtc2Nyb2xsYWJsZXttYXgtaGVpZ2h0OjM0MHB4O292ZXJmbG93LXk6c2Nyb2xsfS5jb250YWluZXJ7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4O21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXJ7d2lkdGg6NzUwcHh9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY29udGFpbmVye3dpZHRoOjk3MHB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jb250YWluZXJ7d2lkdGg6MTE3MHB4fX0uY29udGFpbmVyLWZsdWlke3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvfS5yb3d7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0Oi0xNXB4fS5jb2wtbGctMSwuY29sLWxnLTEwLC5jb2wtbGctMTEsLmNvbC1sZy0xMiwuY29sLWxnLTIsLmNvbC1sZy0zLC5jb2wtbGctNCwuY29sLWxnLTUsLmNvbC1sZy02LC5jb2wtbGctNywuY29sLWxnLTgsLmNvbC1sZy05LC5jb2wtbWQtMSwuY29sLW1kLTEwLC5jb2wtbWQtMTEsLmNvbC1tZC0xMiwuY29sLW1kLTIsLmNvbC1tZC0zLC5jb2wtbWQtNCwuY29sLW1kLTUsLmNvbC1tZC02LC5jb2wtbWQtNywuY29sLW1kLTgsLmNvbC1tZC05LC5jb2wtc20tMSwuY29sLXNtLTEwLC5jb2wtc20tMTEsLmNvbC1zbS0xMiwuY29sLXNtLTIsLmNvbC1zbS0zLC5jb2wtc20tNCwuY29sLXNtLTUsLmNvbC1zbS02LC5jb2wtc20tNywuY29sLXNtLTgsLmNvbC1zbS05LC5jb2wteHMtMSwuY29sLXhzLTEwLC5jb2wteHMtMTEsLmNvbC14cy0xMiwuY29sLXhzLTIsLmNvbC14cy0zLC5jb2wteHMtNCwuY29sLXhzLTUsLmNvbC14cy02LC5jb2wteHMtNywuY29sLXhzLTgsLmNvbC14cy05e3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6MXB4O3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweH0uY29sLXhzLTEsLmNvbC14cy0xMCwuY29sLXhzLTExLC5jb2wteHMtMTIsLmNvbC14cy0yLC5jb2wteHMtMywuY29sLXhzLTQsLmNvbC14cy01LC5jb2wteHMtNiwuY29sLXhzLTcsLmNvbC14cy04LC5jb2wteHMtOXtmbG9hdDpsZWZ0fS5jb2wteHMtMTJ7d2lkdGg6MTAwJX0uY29sLXhzLTExe3dpZHRoOjkxLjY2NjY2NjY3JX0uY29sLXhzLTEwe3dpZHRoOjgzLjMzMzMzMzMzJX0uY29sLXhzLTl7d2lkdGg6NzUlfS5jb2wteHMtOHt3aWR0aDo2Ni42NjY2NjY2NyV9LmNvbC14cy03e3dpZHRoOjU4LjMzMzMzMzMzJX0uY29sLXhzLTZ7d2lkdGg6NTAlfS5jb2wteHMtNXt3aWR0aDo0MS42NjY2NjY2NyV9LmNvbC14cy00e3dpZHRoOjMzLjMzMzMzMzMzJX0uY29sLXhzLTN7d2lkdGg6MjUlfS5jb2wteHMtMnt3aWR0aDoxNi42NjY2NjY2NyV9LmNvbC14cy0xe3dpZHRoOjguMzMzMzMzMzMlfS5jb2wteHMtcHVsbC0xMntyaWdodDoxMDAlfS5jb2wteHMtcHVsbC0xMXtyaWdodDo5MS42NjY2NjY2NyV9LmNvbC14cy1wdWxsLTEwe3JpZ2h0OjgzLjMzMzMzMzMzJX0uY29sLXhzLXB1bGwtOXtyaWdodDo3NSV9LmNvbC14cy1wdWxsLTh7cmlnaHQ6NjYuNjY2NjY2NjclfS5jb2wteHMtcHVsbC03e3JpZ2h0OjU4LjMzMzMzMzMzJX0uY29sLXhzLXB1bGwtNntyaWdodDo1MCV9LmNvbC14cy1wdWxsLTV7cmlnaHQ6NDEuNjY2NjY2NjclfS5jb2wteHMtcHVsbC00e3JpZ2h0OjMzLjMzMzMzMzMzJX0uY29sLXhzLXB1bGwtM3tyaWdodDoyNSV9LmNvbC14cy1wdWxsLTJ7cmlnaHQ6MTYuNjY2NjY2NjclfS5jb2wteHMtcHVsbC0xe3JpZ2h0OjguMzMzMzMzMzMlfS5jb2wteHMtcHVsbC0we3JpZ2h0OmF1dG99LmNvbC14cy1wdXNoLTEye2xlZnQ6MTAwJX0uY29sLXhzLXB1c2gtMTF7bGVmdDo5MS42NjY2NjY2NyV9LmNvbC14cy1wdXNoLTEwe2xlZnQ6ODMuMzMzMzMzMzMlfS5jb2wteHMtcHVzaC05e2xlZnQ6NzUlfS5jb2wteHMtcHVzaC04e2xlZnQ6NjYuNjY2NjY2NjclfS5jb2wteHMtcHVzaC03e2xlZnQ6NTguMzMzMzMzMzMlfS5jb2wteHMtcHVzaC02e2xlZnQ6NTAlfS5jb2wteHMtcHVzaC01e2xlZnQ6NDEuNjY2NjY2NjclfS5jb2wteHMtcHVzaC00e2xlZnQ6MzMuMzMzMzMzMzMlfS5jb2wteHMtcHVzaC0ze2xlZnQ6MjUlfS5jb2wteHMtcHVzaC0ye2xlZnQ6MTYuNjY2NjY2NjclfS5jb2wteHMtcHVzaC0xe2xlZnQ6OC4zMzMzMzMzMyV9LmNvbC14cy1wdXNoLTB7bGVmdDphdXRvfS5jb2wteHMtb2Zmc2V0LTEye21hcmdpbi1sZWZ0OjEwMCV9LmNvbC14cy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5jb2wteHMtb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sLXhzLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sLXhzLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sLXhzLW9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5jb2wteHMtb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbC1zbS0xLC5jb2wtc20tMTAsLmNvbC1zbS0xMSwuY29sLXNtLTEyLC5jb2wtc20tMiwuY29sLXNtLTMsLmNvbC1zbS00LC5jb2wtc20tNSwuY29sLXNtLTYsLmNvbC1zbS03LC5jb2wtc20tOCwuY29sLXNtLTl7ZmxvYXQ6bGVmdH0uY29sLXNtLTEye3dpZHRoOjEwMCV9LmNvbC1zbS0xMXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1zbS0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1zbS05e3dpZHRoOjc1JX0uY29sLXNtLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtc20tN3t3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1zbS02e3dpZHRoOjUwJX0uY29sLXNtLTV7d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtc20tNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1zbS0ze3dpZHRoOjI1JX0uY29sLXNtLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtc20tMXt3aWR0aDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLXNtLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2NjclfS5jb2wtc20tcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTl7cmlnaHQ6NzUlfS5jb2wtc20tcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtN3tyaWdodDo1OC4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtc20tcHVsbC01e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtc20tcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1bGwtMHtyaWdodDphdXRvfS5jb2wtc20tcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1zbS1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2NjclfS5jb2wtc20tcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtOXtsZWZ0Ojc1JX0uY29sLXNtLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtN3tsZWZ0OjU4LjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtNntsZWZ0OjUwJX0uY29sLXNtLXB1c2gtNXtsZWZ0OjQxLjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtM3tsZWZ0OjI1JX0uY29sLXNtLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtc20tcHVzaC0we2xlZnQ6YXV0b30uY29sLXNtLW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtc20tb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uY29sLXNtLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1zbS1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1zbS1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1zbS1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0uY29sLXNtLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY29sLW1kLTEsLmNvbC1tZC0xMCwuY29sLW1kLTExLC5jb2wtbWQtMTIsLmNvbC1tZC0yLC5jb2wtbWQtMywuY29sLW1kLTQsLmNvbC1tZC01LC5jb2wtbWQtNiwuY29sLW1kLTcsLmNvbC1tZC04LC5jb2wtbWQtOXtmbG9hdDpsZWZ0fS5jb2wtbWQtMTJ7d2lkdGg6MTAwJX0uY29sLW1kLTExe3dpZHRoOjkxLjY2NjY2NjY3JX0uY29sLW1kLTEwe3dpZHRoOjgzLjMzMzMzMzMzJX0uY29sLW1kLTl7d2lkdGg6NzUlfS5jb2wtbWQtOHt3aWR0aDo2Ni42NjY2NjY2NyV9LmNvbC1tZC03e3dpZHRoOjU4LjMzMzMzMzMzJX0uY29sLW1kLTZ7d2lkdGg6NTAlfS5jb2wtbWQtNXt3aWR0aDo0MS42NjY2NjY2NyV9LmNvbC1tZC00e3dpZHRoOjMzLjMzMzMzMzMzJX0uY29sLW1kLTN7d2lkdGg6MjUlfS5jb2wtbWQtMnt3aWR0aDoxNi42NjY2NjY2NyV9LmNvbC1tZC0xe3dpZHRoOjguMzMzMzMzMzMlfS5jb2wtbWQtcHVsbC0xMntyaWdodDoxMDAlfS5jb2wtbWQtcHVsbC0xMXtyaWdodDo5MS42NjY2NjY2NyV9LmNvbC1tZC1wdWxsLTEwe3JpZ2h0OjgzLjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtOXtyaWdodDo3NSV9LmNvbC1tZC1wdWxsLTh7cmlnaHQ6NjYuNjY2NjY2NjclfS5jb2wtbWQtcHVsbC03e3JpZ2h0OjU4LjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtNntyaWdodDo1MCV9LmNvbC1tZC1wdWxsLTV7cmlnaHQ6NDEuNjY2NjY2NjclfS5jb2wtbWQtcHVsbC00e3JpZ2h0OjMzLjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtM3tyaWdodDoyNSV9LmNvbC1tZC1wdWxsLTJ7cmlnaHQ6MTYuNjY2NjY2NjclfS5jb2wtbWQtcHVsbC0xe3JpZ2h0OjguMzMzMzMzMzMlfS5jb2wtbWQtcHVsbC0we3JpZ2h0OmF1dG99LmNvbC1tZC1wdXNoLTEye2xlZnQ6MTAwJX0uY29sLW1kLXB1c2gtMTF7bGVmdDo5MS42NjY2NjY2NyV9LmNvbC1tZC1wdXNoLTEwe2xlZnQ6ODMuMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC05e2xlZnQ6NzUlfS5jb2wtbWQtcHVzaC04e2xlZnQ6NjYuNjY2NjY2NjclfS5jb2wtbWQtcHVzaC03e2xlZnQ6NTguMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC02e2xlZnQ6NTAlfS5jb2wtbWQtcHVzaC01e2xlZnQ6NDEuNjY2NjY2NjclfS5jb2wtbWQtcHVzaC00e2xlZnQ6MzMuMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC0ze2xlZnQ6MjUlfS5jb2wtbWQtcHVzaC0ye2xlZnQ6MTYuNjY2NjY2NjclfS5jb2wtbWQtcHVzaC0xe2xlZnQ6OC4zMzMzMzMzMyV9LmNvbC1tZC1wdXNoLTB7bGVmdDphdXRvfS5jb2wtbWQtb2Zmc2V0LTEye21hcmdpbi1sZWZ0OjEwMCV9LmNvbC1tZC1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5jb2wtbWQtb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0uY29sLW1kLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sLW1kLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0uY29sLW1kLW9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0uY29sLW1kLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sLW1kLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0uY29sLW1kLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0uY29sLW1kLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sLW1kLW9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0uY29sLW1kLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5jb2wtbWQtb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY29sLWxnLTEsLmNvbC1sZy0xMCwuY29sLWxnLTExLC5jb2wtbGctMTIsLmNvbC1sZy0yLC5jb2wtbGctMywuY29sLWxnLTQsLmNvbC1sZy01LC5jb2wtbGctNiwuY29sLWxnLTcsLmNvbC1sZy04LC5jb2wtbGctOXtmbG9hdDpsZWZ0fS5jb2wtbGctMTJ7d2lkdGg6MTAwJX0uY29sLWxnLTExe3dpZHRoOjkxLjY2NjY2NjY3JX0uY29sLWxnLTEwe3dpZHRoOjgzLjMzMzMzMzMzJX0uY29sLWxnLTl7d2lkdGg6NzUlfS5jb2wtbGctOHt3aWR0aDo2Ni42NjY2NjY2NyV9LmNvbC1sZy03e3dpZHRoOjU4LjMzMzMzMzMzJX0uY29sLWxnLTZ7d2lkdGg6NTAlfS5jb2wtbGctNXt3aWR0aDo0MS42NjY2NjY2NyV9LmNvbC1sZy00e3dpZHRoOjMzLjMzMzMzMzMzJX0uY29sLWxnLTN7d2lkdGg6MjUlfS5jb2wtbGctMnt3aWR0aDoxNi42NjY2NjY2NyV9LmNvbC1sZy0xe3dpZHRoOjguMzMzMzMzMzMlfS5jb2wtbGctcHVsbC0xMntyaWdodDoxMDAlfS5jb2wtbGctcHVsbC0xMXtyaWdodDo5MS42NjY2NjY2NyV9LmNvbC1sZy1wdWxsLTEwe3JpZ2h0OjgzLjMzMzMzMzMzJX0uY29sLWxnLXB1bGwtOXtyaWdodDo3NSV9LmNvbC1sZy1wdWxsLTh7cmlnaHQ6NjYuNjY2NjY2NjclfS5jb2wtbGctcHVsbC03e3JpZ2h0OjU4LjMzMzMzMzMzJX0uY29sLWxnLXB1bGwtNntyaWdodDo1MCV9LmNvbC1sZy1wdWxsLTV7cmlnaHQ6NDEuNjY2NjY2NjclfS5jb2wtbGctcHVsbC00e3JpZ2h0OjMzLjMzMzMzMzMzJX0uY29sLWxnLXB1bGwtM3tyaWdodDoyNSV9LmNvbC1sZy1wdWxsLTJ7cmlnaHQ6MTYuNjY2NjY2NjclfS5jb2wtbGctcHVsbC0xe3JpZ2h0OjguMzMzMzMzMzMlfS5jb2wtbGctcHVsbC0we3JpZ2h0OmF1dG99LmNvbC1sZy1wdXNoLTEye2xlZnQ6MTAwJX0uY29sLWxnLXB1c2gtMTF7bGVmdDo5MS42NjY2NjY2NyV9LmNvbC1sZy1wdXNoLTEwe2xlZnQ6ODMuMzMzMzMzMzMlfS5jb2wtbGctcHVzaC05e2xlZnQ6NzUlfS5jb2wtbGctcHVzaC04e2xlZnQ6NjYuNjY2NjY2NjclfS5jb2wtbGctcHVzaC03e2xlZnQ6NTguMzMzMzMzMzMlfS5jb2wtbGctcHVzaC02e2xlZnQ6NTAlfS5jb2wtbGctcHVzaC01e2xlZnQ6NDEuNjY2NjY2NjclfS5jb2wtbGctcHVzaC00e2xlZnQ6MzMuMzMzMzMzMzMlfS5jb2wtbGctcHVzaC0ze2xlZnQ6MjUlfS5jb2wtbGctcHVzaC0ye2xlZnQ6MTYuNjY2NjY2NjclfS5jb2wtbGctcHVzaC0xe2xlZnQ6OC4zMzMzMzMzMyV9LmNvbC1sZy1wdXNoLTB7bGVmdDphdXRvfS5jb2wtbGctb2Zmc2V0LTEye21hcmdpbi1sZWZ0OjEwMCV9LmNvbC1sZy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5jb2wtbGctb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sLWxnLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sLWxnLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sLWxnLW9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5jb2wtbGctb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH19dGFibGV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1jYXB0aW9ue3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHg7Y29sb3I6Izc3Nzt0ZXh0LWFsaWduOmxlZnR9dGh7dGV4dC1hbGlnbjpsZWZ0fS50YWJsZXt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21hcmdpbi1ib3R0b206MjBweH0udGFibGU+dGJvZHk+dHI+dGQsLnRhYmxlPnRib2R5PnRyPnRoLC50YWJsZT50Zm9vdD50cj50ZCwudGFibGU+dGZvb3Q+dHI+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLC50YWJsZT50aGVhZD50cj50aHtwYWRkaW5nOjhweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkfS50YWJsZT50aGVhZD50cj50aHt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2RkZH0udGFibGU+Y2FwdGlvbit0aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwudGFibGU+Y2FwdGlvbit0aGVhZD50cjpmaXJzdC1jaGlsZD50aCwudGFibGU+Y29sZ3JvdXArdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnRhYmxlPmNvbGdyb3VwK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLC50YWJsZT50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZD50ZCwudGFibGU+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGh7Ym9yZGVyLXRvcDowfS50YWJsZT50Ym9keSt0Ym9keXtib3JkZXItdG9wOjJweCBzb2xpZCAjZGRkfS50YWJsZSAudGFibGV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS50YWJsZS1jb25kZW5zZWQ+dGJvZHk+dHI+dGQsLnRhYmxlLWNvbmRlbnNlZD50Ym9keT50cj50aCwudGFibGUtY29uZGVuc2VkPnRmb290PnRyPnRkLC50YWJsZS1jb25kZW5zZWQ+dGZvb3Q+dHI+dGgsLnRhYmxlLWNvbmRlbnNlZD50aGVhZD50cj50ZCwudGFibGUtY29uZGVuc2VkPnRoZWFkPnRyPnRoe3BhZGRpbmc6NXB4fS50YWJsZS1ib3JkZXJlZHtib3JkZXI6MXB4IHNvbGlkICNkZGR9LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkLC50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aCwudGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQsLnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoLC50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGh7Ym9yZGVyOjFweCBzb2xpZCAjZGRkfS50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGh7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LnRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLW9mLXR5cGUob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjl9LnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX10YWJsZSBjb2xbY2xhc3MqPWNvbC1de3Bvc2l0aW9uOnN0YXRpYztkaXNwbGF5OnRhYmxlLWNvbHVtbjtmbG9hdDpub25lfXRhYmxlIHRkW2NsYXNzKj1jb2wtXSx0YWJsZSB0aFtjbGFzcyo9Y29sLV17cG9zaXRpb246c3RhdGljO2Rpc3BsYXk6dGFibGUtY2VsbDtmbG9hdDpub25lfS50YWJsZT50Ym9keT50ci5hY3RpdmU+dGQsLnRhYmxlPnRib2R5PnRyLmFjdGl2ZT50aCwudGFibGU+dGJvZHk+dHI+dGQuYWN0aXZlLC50YWJsZT50Ym9keT50cj50aC5hY3RpdmUsLnRhYmxlPnRmb290PnRyLmFjdGl2ZT50ZCwudGFibGU+dGZvb3Q+dHIuYWN0aXZlPnRoLC50YWJsZT50Zm9vdD50cj50ZC5hY3RpdmUsLnRhYmxlPnRmb290PnRyPnRoLmFjdGl2ZSwudGFibGU+dGhlYWQ+dHIuYWN0aXZlPnRkLC50YWJsZT50aGVhZD50ci5hY3RpdmU+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLmFjdGl2ZSwudGFibGU+dGhlYWQ+dHI+dGguYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX0udGFibGUtaG92ZXI+dGJvZHk+dHIuYWN0aXZlOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci5hY3RpdmU6aG92ZXI+dGgsLnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVyPi5hY3RpdmUsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRkLmFjdGl2ZTpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguYWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U4ZThlOH0udGFibGU+dGJvZHk+dHIuc3VjY2Vzcz50ZCwudGFibGU+dGJvZHk+dHIuc3VjY2Vzcz50aCwudGFibGU+dGJvZHk+dHI+dGQuc3VjY2VzcywudGFibGU+dGJvZHk+dHI+dGguc3VjY2VzcywudGFibGU+dGZvb3Q+dHIuc3VjY2Vzcz50ZCwudGFibGU+dGZvb3Q+dHIuc3VjY2Vzcz50aCwudGFibGU+dGZvb3Q+dHI+dGQuc3VjY2VzcywudGFibGU+dGZvb3Q+dHI+dGguc3VjY2VzcywudGFibGU+dGhlYWQ+dHIuc3VjY2Vzcz50ZCwudGFibGU+dGhlYWQ+dHIuc3VjY2Vzcz50aCwudGFibGU+dGhlYWQ+dHI+dGQuc3VjY2VzcywudGFibGU+dGhlYWQ+dHI+dGguc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDh9LnRhYmxlLWhvdmVyPnRib2R5PnRyLnN1Y2Nlc3M6aG92ZXI+dGQsLnRhYmxlLWhvdmVyPnRib2R5PnRyLnN1Y2Nlc3M6aG92ZXI+dGgsLnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVyPi5zdWNjZXNzLC50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5zdWNjZXNzOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC5zdWNjZXNzOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QwZTljNn0udGFibGU+dGJvZHk+dHIuaW5mbz50ZCwudGFibGU+dGJvZHk+dHIuaW5mbz50aCwudGFibGU+dGJvZHk+dHI+dGQuaW5mbywudGFibGU+dGJvZHk+dHI+dGguaW5mbywudGFibGU+dGZvb3Q+dHIuaW5mbz50ZCwudGFibGU+dGZvb3Q+dHIuaW5mbz50aCwudGFibGU+dGZvb3Q+dHI+dGQuaW5mbywudGFibGU+dGZvb3Q+dHI+dGguaW5mbywudGFibGU+dGhlYWQ+dHIuaW5mbz50ZCwudGFibGU+dGhlYWQ+dHIuaW5mbz50aCwudGFibGU+dGhlYWQ+dHI+dGQuaW5mbywudGFibGU+dGhlYWQ+dHI+dGguaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNkOWVkZjd9LnRhYmxlLWhvdmVyPnRib2R5PnRyLmluZm86aG92ZXI+dGQsLnRhYmxlLWhvdmVyPnRib2R5PnRyLmluZm86aG92ZXI+dGgsLnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVyPi5pbmZvLC50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5pbmZvOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC5pbmZvOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2M0ZTNmM30udGFibGU+dGJvZHk+dHIud2FybmluZz50ZCwudGFibGU+dGJvZHk+dHIud2FybmluZz50aCwudGFibGU+dGJvZHk+dHI+dGQud2FybmluZywudGFibGU+dGJvZHk+dHI+dGgud2FybmluZywudGFibGU+dGZvb3Q+dHIud2FybmluZz50ZCwudGFibGU+dGZvb3Q+dHIud2FybmluZz50aCwudGFibGU+dGZvb3Q+dHI+dGQud2FybmluZywudGFibGU+dGZvb3Q+dHI+dGgud2FybmluZywudGFibGU+dGhlYWQ+dHIud2FybmluZz50ZCwudGFibGU+dGhlYWQ+dHIud2FybmluZz50aCwudGFibGU+dGhlYWQ+dHI+dGQud2FybmluZywudGFibGU+dGhlYWQ+dHI+dGgud2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTN9LnRhYmxlLWhvdmVyPnRib2R5PnRyLndhcm5pbmc6aG92ZXI+dGQsLnRhYmxlLWhvdmVyPnRib2R5PnRyLndhcm5pbmc6aG92ZXI+dGgsLnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVyPi53YXJuaW5nLC50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC53YXJuaW5nOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC53YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZhZjJjY30udGFibGU+dGJvZHk+dHIuZGFuZ2VyPnRkLC50YWJsZT50Ym9keT50ci5kYW5nZXI+dGgsLnRhYmxlPnRib2R5PnRyPnRkLmRhbmdlciwudGFibGU+dGJvZHk+dHI+dGguZGFuZ2VyLC50YWJsZT50Zm9vdD50ci5kYW5nZXI+dGQsLnRhYmxlPnRmb290PnRyLmRhbmdlcj50aCwudGFibGU+dGZvb3Q+dHI+dGQuZGFuZ2VyLC50YWJsZT50Zm9vdD50cj50aC5kYW5nZXIsLnRhYmxlPnRoZWFkPnRyLmRhbmdlcj50ZCwudGFibGU+dGhlYWQ+dHIuZGFuZ2VyPnRoLC50YWJsZT50aGVhZD50cj50ZC5kYW5nZXIsLnRhYmxlPnRoZWFkPnRyPnRoLmRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGV9LnRhYmxlLWhvdmVyPnRib2R5PnRyLmRhbmdlcjpob3Zlcj50ZCwudGFibGUtaG92ZXI+dGJvZHk+dHIuZGFuZ2VyOmhvdmVyPnRoLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uZGFuZ2VyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5kYW5nZXI6aG92ZXIsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRoLmRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlYmNjY2N9LnRhYmxlLXJlc3BvbnNpdmV7bWluLWhlaWdodDouMDElO292ZXJmbG93LXg6YXV0b31AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2N3B4KXsudGFibGUtcmVzcG9uc2l2ZXt3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206MTVweDtvdmVyZmxvdy15OmhpZGRlbjstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO2JvcmRlcjoxcHggc29saWQgI2RkZH0udGFibGUtcmVzcG9uc2l2ZT4udGFibGV7bWFyZ2luLWJvdHRvbTowfS50YWJsZS1yZXNwb25zaXZlPi50YWJsZT50Ym9keT50cj50ZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGU+dGJvZHk+dHI+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRmb290PnRyPnRkLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZT50Zm9vdD50cj50aCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGU+dGhlYWQ+dHI+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRoZWFkPnRyPnRoe3doaXRlLXNwYWNlOm5vd3JhcH0udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmZpcnN0LWNoaWxkLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmZpcnN0LWNoaWxkLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MH0udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGQ6bGFzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6bGFzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6bGFzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50ZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50aCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50ZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50aHtib3JkZXItYm90dG9tOjB9fWZpZWxkc2V0e21pbi13aWR0aDowO3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MH1sZWdlbmR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MDttYXJnaW4tYm90dG9tOjIwcHg7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzMzO2JvcmRlcjowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTV9bGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTo1cHg7Zm9udC13ZWlnaHQ6NzAwfWlucHV0W3R5cGU9c2VhcmNoXXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9aW5wdXRbdHlwZT1jaGVja2JveF0saW5wdXRbdHlwZT1yYWRpb117bWFyZ2luOjRweCAwIDA7bWFyZ2luLXRvcDoxcHhcOTtsaW5lLWhlaWdodDpub3JtYWx9aW5wdXRbdHlwZT1maWxlXXtkaXNwbGF5OmJsb2NrfWlucHV0W3R5cGU9cmFuZ2Vde2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdFtzaXplXXtoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPWZpbGVdOmZvY3VzLGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLGlucHV0W3R5cGU9cmFkaW9dOmZvY3Vze291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHh9b3V0cHV0e2Rpc3BsYXk6YmxvY2s7cGFkZGluZy10b3A6N3B4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NX0uZm9ybS1jb250cm9se2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MzRweDtwYWRkaW5nOjZweCAxMnB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7LW8tdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXN9LmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzY2YWZlOTtvdXRsaW5lOjA7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA4cHggcmdiYSgxMDIsMTc1LDIzMywuNik7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwwIDAgOHB4IHJnYmEoMTAyLDE3NSwyMzMsLjYpfS5mb3JtLWNvbnRyb2w6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6Izk5OTtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6Izk5OX0uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM5OTl9LmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfS5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLC5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLGZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jb250cm9se2JhY2tncm91bmQtY29sb3I6I2VlZTtvcGFjaXR5OjF9LmZvcm0tY29udHJvbFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2x7Y3Vyc29yOm5vdC1hbGxvd2VkfXRleHRhcmVhLmZvcm0tY29udHJvbHtoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKXtpbnB1dFt0eXBlPWRhdGVdLmZvcm0tY29udHJvbCxpbnB1dFt0eXBlPXRpbWVdLmZvcm0tY29udHJvbCxpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5mb3JtLWNvbnRyb2wsaW5wdXRbdHlwZT1tb250aF0uZm9ybS1jb250cm9se2xpbmUtaGVpZ2h0OjM0cHh9LmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9ZGF0ZV0sLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9dGltZV0sLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPW1vbnRoXSxpbnB1dFt0eXBlPWRhdGVdLmlucHV0LXNtLGlucHV0W3R5cGU9dGltZV0uaW5wdXQtc20saW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0uaW5wdXQtc20saW5wdXRbdHlwZT1tb250aF0uaW5wdXQtc217bGluZS1oZWlnaHQ6MzBweH0uaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1kYXRlXSwuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT10aW1lXSwuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9bW9udGhdLGlucHV0W3R5cGU9ZGF0ZV0uaW5wdXQtbGcsaW5wdXRbdHlwZT10aW1lXS5pbnB1dC1sZyxpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5pbnB1dC1sZyxpbnB1dFt0eXBlPW1vbnRoXS5pbnB1dC1sZ3tsaW5lLWhlaWdodDo0NnB4fX0uZm9ybS1ncm91cHttYXJnaW4tYm90dG9tOjE1cHh9LmNoZWNrYm94LC5yYWRpb3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHh9LmNoZWNrYm94IGxhYmVsLC5yYWRpbyBsYWJlbHttaW4taGVpZ2h0OjIwcHg7cGFkZGluZy1sZWZ0OjIwcHg7bWFyZ2luLWJvdHRvbTowO2ZvbnQtd2VpZ2h0OjQwMDtjdXJzb3I6cG9pbnRlcn0uY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0sLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XSwucmFkaW8gaW5wdXRbdHlwZT1yYWRpb10sLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tdG9wOjRweFw5O21hcmdpbi1sZWZ0Oi0yMHB4fS5jaGVja2JveCsuY2hlY2tib3gsLnJhZGlvKy5yYWRpb3ttYXJnaW4tdG9wOi01cHh9LmNoZWNrYm94LWlubGluZSwucmFkaW8taW5saW5le3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctbGVmdDoyMHB4O21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo0MDA7dmVydGljYWwtYWxpZ246bWlkZGxlO2N1cnNvcjpwb2ludGVyfS5jaGVja2JveC1pbmxpbmUrLmNoZWNrYm94LWlubGluZSwucmFkaW8taW5saW5lKy5yYWRpby1pbmxpbmV7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjEwcHh9ZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9Y2hlY2tib3hdLGZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPXJhZGlvXSxpbnB1dFt0eXBlPWNoZWNrYm94XS5kaXNhYmxlZCxpbnB1dFt0eXBlPWNoZWNrYm94XVtkaXNhYmxlZF0saW5wdXRbdHlwZT1yYWRpb10uZGlzYWJsZWQsaW5wdXRbdHlwZT1yYWRpb11bZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZH0uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLC5yYWRpby1pbmxpbmUuZGlzYWJsZWQsZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUsZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpby1pbmxpbmV7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jaGVja2JveC5kaXNhYmxlZCBsYWJlbCwucmFkaW8uZGlzYWJsZWQgbGFiZWwsZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCxmaWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uZm9ybS1jb250cm9sLXN0YXRpY3ttaW4taGVpZ2h0OjM0cHg7cGFkZGluZy10b3A6N3B4O3BhZGRpbmctYm90dG9tOjdweDttYXJnaW4tYm90dG9tOjB9LmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtc217cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5pbnB1dC1zbXtoZWlnaHQ6MzBweDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOjNweH1zZWxlY3QuaW5wdXQtc217aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzBweH1zZWxlY3RbbXVsdGlwbGVdLmlucHV0LXNtLHRleHRhcmVhLmlucHV0LXNte2hlaWdodDphdXRvfS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjMwcHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czozcHh9LmZvcm0tZ3JvdXAtc20gc2VsZWN0LmZvcm0tY29udHJvbHtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fS5mb3JtLWdyb3VwLXNtIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sLC5mb3JtLWdyb3VwLXNtIHRleHRhcmVhLmZvcm0tY29udHJvbHtoZWlnaHQ6YXV0b30uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sLXN0YXRpY3toZWlnaHQ6MzBweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzo2cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjV9LmlucHV0LWxne2hlaWdodDo0NnB4O3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzMztib3JkZXItcmFkaXVzOjZweH1zZWxlY3QuaW5wdXQtbGd7aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweH1zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWxnLHRleHRhcmVhLmlucHV0LWxne2hlaWdodDphdXRvfS5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjQ2cHg7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MS4zMzMzMzMzO2JvcmRlci1yYWRpdXM6NnB4fS5mb3JtLWdyb3VwLWxnIHNlbGVjdC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweH0uZm9ybS1ncm91cC1sZyBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCwuZm9ybS1ncm91cC1sZyB0ZXh0YXJlYS5mb3JtLWNvbnRyb2x7aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbC1zdGF0aWN7aGVpZ2h0OjQ2cHg7bWluLWhlaWdodDozOHB4O3BhZGRpbmc6MTFweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzM30uaGFzLWZlZWRiYWNre3Bvc2l0aW9uOnJlbGF0aXZlfS5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbHtwYWRkaW5nLXJpZ2h0OjQyLjVweH0uZm9ybS1jb250cm9sLWZlZWRiYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7ei1pbmRleDoyO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtsaW5lLWhlaWdodDozNHB4O3RleHQtYWxpZ246Y2VudGVyO3BvaW50ZXItZXZlbnRzOm5vbmV9LmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCsuZm9ybS1jb250cm9sLWZlZWRiYWNrLC5pbnB1dC1ncm91cC1sZysuZm9ybS1jb250cm9sLWZlZWRiYWNrLC5pbnB1dC1sZysuZm9ybS1jb250cm9sLWZlZWRiYWNre3dpZHRoOjQ2cHg7aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweH0uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmlucHV0LWdyb3VwLXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmlucHV0LXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fS5oYXMtc3VjY2VzcyAuY2hlY2tib3gsLmhhcy1zdWNjZXNzIC5jaGVja2JveC1pbmxpbmUsLmhhcy1zdWNjZXNzIC5jb250cm9sLWxhYmVsLC5oYXMtc3VjY2VzcyAuaGVscC1ibG9jaywuaGFzLXN1Y2Nlc3MgLnJhZGlvLC5oYXMtc3VjY2VzcyAucmFkaW8taW5saW5lLC5oYXMtc3VjY2Vzcy5jaGVja2JveCBsYWJlbCwuaGFzLXN1Y2Nlc3MuY2hlY2tib3gtaW5saW5lIGxhYmVsLC5oYXMtc3VjY2Vzcy5yYWRpbyBsYWJlbCwuaGFzLXN1Y2Nlc3MucmFkaW8taW5saW5lIGxhYmVse2NvbG9yOiMzYzc2M2R9Lmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2x7Ym9yZGVyLWNvbG9yOiMzYzc2M2Q7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSl9Lmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMyYjU0MmM7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHggIzY3YjE2ODtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHggIzY3YjE2OH0uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9ue2NvbG9yOiMzYzc2M2Q7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1jb2xvcjojM2M3NjNkfS5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNre2NvbG9yOiMzYzc2M2R9Lmhhcy13YXJuaW5nIC5jaGVja2JveCwuaGFzLXdhcm5pbmcgLmNoZWNrYm94LWlubGluZSwuaGFzLXdhcm5pbmcgLmNvbnRyb2wtbGFiZWwsLmhhcy13YXJuaW5nIC5oZWxwLWJsb2NrLC5oYXMtd2FybmluZyAucmFkaW8sLmhhcy13YXJuaW5nIC5yYWRpby1pbmxpbmUsLmhhcy13YXJuaW5nLmNoZWNrYm94IGxhYmVsLC5oYXMtd2FybmluZy5jaGVja2JveC1pbmxpbmUgbGFiZWwsLmhhcy13YXJuaW5nLnJhZGlvIGxhYmVsLC5oYXMtd2FybmluZy5yYWRpby1pbmxpbmUgbGFiZWx7Y29sb3I6IzhhNmQzYn0uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbHtib3JkZXItY29sb3I6IzhhNmQzYjstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KX0uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzY2NTEyYzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjYzBhMTZiO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjYzBhMTZifS5oYXMtd2FybmluZyAuaW5wdXQtZ3JvdXAtYWRkb257Y29sb3I6IzhhNmQzYjtiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTM7Ym9yZGVyLWNvbG9yOiM4YTZkM2J9Lmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7Y29sb3I6IzhhNmQzYn0uaGFzLWVycm9yIC5jaGVja2JveCwuaGFzLWVycm9yIC5jaGVja2JveC1pbmxpbmUsLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCwuaGFzLWVycm9yIC5oZWxwLWJsb2NrLC5oYXMtZXJyb3IgLnJhZGlvLC5oYXMtZXJyb3IgLnJhZGlvLWlubGluZSwuaGFzLWVycm9yLmNoZWNrYm94IGxhYmVsLC5oYXMtZXJyb3IuY2hlY2tib3gtaW5saW5lIGxhYmVsLC5oYXMtZXJyb3IucmFkaW8gbGFiZWwsLmhhcy1lcnJvci5yYWRpby1pbmxpbmUgbGFiZWx7Y29sb3I6I2E5NDQ0Mn0uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2x7Ym9yZGVyLWNvbG9yOiNhOTQ0NDI7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSl9Lmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1jb2xvcjojODQzNTM0Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwwIDAgNnB4ICNjZTg0ODM7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwwIDAgNnB4ICNjZTg0ODN9Lmhhcy1lcnJvciAuaW5wdXQtZ3JvdXAtYWRkb257Y29sb3I6I2E5NDQ0MjtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWNvbG9yOiNhOTQ0NDJ9Lmhhcy1lcnJvciAuZm9ybS1jb250cm9sLWZlZWRiYWNre2NvbG9yOiNhOTQ0NDJ9Lmhhcy1mZWVkYmFjayBsYWJlbH4uZm9ybS1jb250cm9sLWZlZWRiYWNre3RvcDoyNXB4fS5oYXMtZmVlZGJhY2sgbGFiZWwuc3Itb25seX4uZm9ybS1jb250cm9sLWZlZWRiYWNre3RvcDowfS5oZWxwLWJsb2Nre2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2NvbG9yOiM3MzczNzN9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5mb3JtLWlubGluZSAuZm9ybS1ncm91cHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuZm9ybS1jb250cm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sLXN0YXRpY3tkaXNwbGF5OmlubGluZS1ibG9ja30uZm9ybS1pbmxpbmUgLmlucHV0LWdyb3Vwe2Rpc3BsYXk6aW5saW5lLXRhYmxlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wsLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRue3dpZHRoOmF1dG99LmZvcm0taW5saW5lIC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9se3dpZHRoOjEwMCV9LmZvcm0taW5saW5lIC5jb250cm9sLWxhYmVse21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5lIC5jaGVja2JveCwuZm9ybS1pbmxpbmUgLnJhZGlve2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuY2hlY2tib3ggbGFiZWwsLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbHtwYWRkaW5nLWxlZnQ6MH0uZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5mb3JtLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1yYWRpb117cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6MH0uZm9ybS1pbmxpbmUgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNre3RvcDowfX0uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCwuZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveC1pbmxpbmUsLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sLmZvcm0taG9yaXpvbnRhbCAucmFkaW8taW5saW5le3BhZGRpbmctdG9wOjdweDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LC5mb3JtLWhvcml6b250YWwgLnJhZGlve21pbi1oZWlnaHQ6MjdweH0uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3Vwe21hcmdpbi1yaWdodDotMTVweDttYXJnaW4tbGVmdDotMTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDo3cHg7bWFyZ2luLWJvdHRvbTowO3RleHQtYWxpZ246cmlnaHR9fS5mb3JtLWhvcml6b250YWwgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNre3JpZ2h0OjE1cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtbGcgLmNvbnRyb2wtbGFiZWx7cGFkZGluZy10b3A6MTFweDtmb250LXNpemU6MThweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtc20gLmNvbnRyb2wtbGFiZWx7cGFkZGluZy10b3A6NnB4O2ZvbnQtc2l6ZToxMnB4fX0uYnRue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NnB4IDEycHg7bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHh9LmJ0bi5hY3RpdmUuZm9jdXMsLmJ0bi5hY3RpdmU6Zm9jdXMsLmJ0bi5mb2N1cywuYnRuOmFjdGl2ZS5mb2N1cywuYnRuOmFjdGl2ZTpmb2N1cywuYnRuOmZvY3Vze291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHh9LmJ0bi5mb2N1cywuYnRuOmZvY3VzLC5idG46aG92ZXJ7Y29sb3I6IzMzMzt0ZXh0LWRlY29yYXRpb246bm9uZX0uYnRuLmFjdGl2ZSwuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7b3V0bGluZTowOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KTtib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpfS5idG4uZGlzYWJsZWQsLmJ0bltkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idG57Y3Vyc29yOm5vdC1hbGxvd2VkO2ZpbHRlcjphbHBoYShvcGFjaXR5PTY1KTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7b3BhY2l0eTouNjV9YS5idG4uZGlzYWJsZWQsZmllbGRzZXRbZGlzYWJsZWRdIGEuYnRue3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ0bi1kZWZhdWx0e2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojY2NjfS5idG4tZGVmYXVsdC5mb2N1cywuYnRuLWRlZmF1bHQ6Zm9jdXN7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOiM4YzhjOGN9LmJ0bi1kZWZhdWx0OmhvdmVye2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2JvcmRlci1jb2xvcjojYWRhZGFkfS5idG4tZGVmYXVsdC5hY3RpdmUsLmJ0bi1kZWZhdWx0OmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0e2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2JvcmRlci1jb2xvcjojYWRhZGFkfS5idG4tZGVmYXVsdC5hY3RpdmUuZm9jdXMsLmJ0bi1kZWZhdWx0LmFjdGl2ZTpmb2N1cywuYnRuLWRlZmF1bHQuYWN0aXZlOmhvdmVyLC5idG4tZGVmYXVsdDphY3RpdmUuZm9jdXMsLmJ0bi1kZWZhdWx0OmFjdGl2ZTpmb2N1cywuYnRuLWRlZmF1bHQ6YWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQuZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmhvdmVye2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZDRkNGQ0O2JvcmRlci1jb2xvcjojOGM4YzhjfS5idG4tZGVmYXVsdC5hY3RpdmUsLmJ0bi1kZWZhdWx0OmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0e2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWRlZmF1bHQuZGlzYWJsZWQuZm9jdXMsLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLC5idG4tZGVmYXVsdC5kaXNhYmxlZDpob3ZlciwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmZvY3VzLC5idG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNjY2N9LmJ0bi1kZWZhdWx0IC5iYWRnZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMzM30uYnRuLXByaW1hcnl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMyZTZkYTR9LmJ0bi1wcmltYXJ5LmZvY3VzLC5idG4tcHJpbWFyeTpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI4NjA5MDtib3JkZXItY29sb3I6IzEyMmI0MH0uYnRuLXByaW1hcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyODYwOTA7Ym9yZGVyLWNvbG9yOiMyMDRkNzR9LmJ0bi1wcmltYXJ5LmFjdGl2ZSwuYnRuLXByaW1hcnk6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyODYwOTA7Ym9yZGVyLWNvbG9yOiMyMDRkNzR9LmJ0bi1wcmltYXJ5LmFjdGl2ZS5mb2N1cywuYnRuLXByaW1hcnkuYWN0aXZlOmZvY3VzLC5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsLmJ0bi1wcmltYXJ5OmFjdGl2ZS5mb2N1cywuYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLC5idG4tcHJpbWFyeTphY3RpdmU6aG92ZXIsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeS5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5OmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMDRkNzQ7Ym9yZGVyLWNvbG9yOiMxMjJiNDB9LmJ0bi1wcmltYXJ5LmFjdGl2ZSwuYnRuLXByaW1hcnk6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnl7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tcHJpbWFyeS5kaXNhYmxlZC5mb2N1cywuYnRuLXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5idG4tcHJpbWFyeVtkaXNhYmxlZF0uZm9jdXMsLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnkuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzMzN2FiNztib3JkZXItY29sb3I6IzJlNmRhNH0uYnRuLXByaW1hcnkgLmJhZGdle2NvbG9yOiMzMzdhYjc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tc3VjY2Vzc3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzVjYjg1Yztib3JkZXItY29sb3I6IzRjYWU0Y30uYnRuLXN1Y2Nlc3MuZm9jdXMsLmJ0bi1zdWNjZXNzOmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNDQ5ZDQ0O2JvcmRlci1jb2xvcjojMjU1NjI1fS5idG4tc3VjY2Vzczpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0OWQ0NDtib3JkZXItY29sb3I6IzM5ODQzOX0uYnRuLXN1Y2Nlc3MuYWN0aXZlLC5idG4tc3VjY2VzczphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzc3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0OWQ0NDtib3JkZXItY29sb3I6IzM5ODQzOX0uYnRuLXN1Y2Nlc3MuYWN0aXZlLmZvY3VzLC5idG4tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsLmJ0bi1zdWNjZXNzLmFjdGl2ZTpob3ZlciwuYnRuLXN1Y2Nlc3M6YWN0aXZlLmZvY3VzLC5idG4tc3VjY2VzczphY3RpdmU6Zm9jdXMsLmJ0bi1zdWNjZXNzOmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzLmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzczpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM5ODQzOTtib3JkZXItY29sb3I6IzI1NTYyNX0uYnRuLXN1Y2Nlc3MuYWN0aXZlLC5idG4tc3VjY2VzczphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzc3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXS5mb2N1cywuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWNiODVjO2JvcmRlci1jb2xvcjojNGNhZTRjfS5idG4tc3VjY2VzcyAuYmFkZ2V7Y29sb3I6IzVjYjg1YztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi1pbmZve2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNWJjMGRlO2JvcmRlci1jb2xvcjojNDZiOGRhfS5idG4taW5mby5mb2N1cywuYnRuLWluZm86Zm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMWIwZDU7Ym9yZGVyLWNvbG9yOiMxYjZkODV9LmJ0bi1pbmZvOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzFiMGQ1O2JvcmRlci1jb2xvcjojMjY5YWJjfS5idG4taW5mby5hY3RpdmUsLmJ0bi1pbmZvOmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZve2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzFiMGQ1O2JvcmRlci1jb2xvcjojMjY5YWJjfS5idG4taW5mby5hY3RpdmUuZm9jdXMsLmJ0bi1pbmZvLmFjdGl2ZTpmb2N1cywuYnRuLWluZm8uYWN0aXZlOmhvdmVyLC5idG4taW5mbzphY3RpdmUuZm9jdXMsLmJ0bi1pbmZvOmFjdGl2ZTpmb2N1cywuYnRuLWluZm86YWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8uZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjY5YWJjO2JvcmRlci1jb2xvcjojMWI2ZDg1fS5idG4taW5mby5hY3RpdmUsLmJ0bi1pbmZvOmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZve2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWluZm8uZGlzYWJsZWQuZm9jdXMsLmJ0bi1pbmZvLmRpc2FibGVkOmZvY3VzLC5idG4taW5mby5kaXNhYmxlZDpob3ZlciwuYnRuLWluZm9bZGlzYWJsZWRdLmZvY3VzLC5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsLmJ0bi1pbmZvW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1YmMwZGU7Ym9yZGVyLWNvbG9yOiM0NmI4ZGF9LmJ0bi1pbmZvIC5iYWRnZXtjb2xvcjojNWJjMGRlO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLXdhcm5pbmd7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmMGFkNGU7Ym9yZGVyLWNvbG9yOiNlZWEyMzZ9LmJ0bi13YXJuaW5nLmZvY3VzLC5idG4td2FybmluZzpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2VjOTcxZjtib3JkZXItY29sb3I6Izk4NWYwZH0uYnRuLXdhcm5pbmc6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlYzk3MWY7Ym9yZGVyLWNvbG9yOiNkNTg1MTJ9LmJ0bi13YXJuaW5nLmFjdGl2ZSwuYnRuLXdhcm5pbmc6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmd7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlYzk3MWY7Ym9yZGVyLWNvbG9yOiNkNTg1MTJ9LmJ0bi13YXJuaW5nLmFjdGl2ZS5mb2N1cywuYnRuLXdhcm5pbmcuYWN0aXZlOmZvY3VzLC5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsLmJ0bi13YXJuaW5nOmFjdGl2ZS5mb2N1cywuYnRuLXdhcm5pbmc6YWN0aXZlOmZvY3VzLC5idG4td2FybmluZzphY3RpdmU6aG92ZXIsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZy5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmc6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkNTg1MTI7Ym9yZGVyLWNvbG9yOiM5ODVmMGR9LmJ0bi13YXJuaW5nLmFjdGl2ZSwuYnRuLXdhcm5pbmc6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4td2FybmluZy5kaXNhYmxlZC5mb2N1cywuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVyLC5idG4td2FybmluZ1tkaXNhYmxlZF0uZm9jdXMsLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpmb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmcuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2YwYWQ0ZTtib3JkZXItY29sb3I6I2VlYTIzNn0uYnRuLXdhcm5pbmcgLmJhZGdle2NvbG9yOiNmMGFkNGU7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tZGFuZ2Vye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZDk1MzRmO2JvcmRlci1jb2xvcjojZDQzZjNhfS5idG4tZGFuZ2VyLmZvY3VzLC5idG4tZGFuZ2VyOmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzkzMDJjO2JvcmRlci1jb2xvcjojNzYxYzE5fS5idG4tZGFuZ2VyOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzkzMDJjO2JvcmRlci1jb2xvcjojYWMyOTI1fS5idG4tZGFuZ2VyLmFjdGl2ZSwuYnRuLWRhbmdlcjphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2Vye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzkzMDJjO2JvcmRlci1jb2xvcjojYWMyOTI1fS5idG4tZGFuZ2VyLmFjdGl2ZS5mb2N1cywuYnRuLWRhbmdlci5hY3RpdmU6Zm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLC5idG4tZGFuZ2VyOmFjdGl2ZS5mb2N1cywuYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlci5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXI6Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYWMyOTI1O2JvcmRlci1jb2xvcjojNzYxYzE5fS5idG4tZGFuZ2VyLmFjdGl2ZSwuYnRuLWRhbmdlcjphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2Vye2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cywuYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cywuYnRuLWRhbmdlci5kaXNhYmxlZDpob3ZlciwuYnRuLWRhbmdlcltkaXNhYmxlZF0uZm9jdXMsLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOTUzNGY7Ym9yZGVyLWNvbG9yOiNkNDNmM2F9LmJ0bi1kYW5nZXIgLmJhZGdle2NvbG9yOiNkOTUzNGY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tbGlua3tmb250LXdlaWdodDo0MDA7Y29sb3I6IzMzN2FiNztib3JkZXItcmFkaXVzOjB9LmJ0bi1saW5rLC5idG4tbGluay5hY3RpdmUsLmJ0bi1saW5rOmFjdGl2ZSwuYnRuLWxpbmtbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbmt7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9LmJ0bi1saW5rLC5idG4tbGluazphY3RpdmUsLmJ0bi1saW5rOmZvY3VzLC5idG4tbGluazpob3Zlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1saW5rOmZvY3VzLC5idG4tbGluazpob3Zlcntjb2xvcjojMjM1MjdjO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmhvdmVye2NvbG9yOiM3Nzc7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJ0bi1ncm91cC1sZz4uYnRuLC5idG4tbGd7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MS4zMzMzMzMzO2JvcmRlci1yYWRpdXM6NnB4fS5idG4tZ3JvdXAtc20+LmJ0biwuYnRuLXNte3BhZGRpbmc6NXB4IDEwcHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fS5idG4tZ3JvdXAteHM+LmJ0biwuYnRuLXhze3BhZGRpbmc6MXB4IDVweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czozcHh9LmJ0bi1ibG9ja3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LmJ0bi1ibG9jaysuYnRuLWJsb2Nre21hcmdpbi10b3A6NXB4fWlucHV0W3R5cGU9YnV0dG9uXS5idG4tYmxvY2ssaW5wdXRbdHlwZT1yZXNldF0uYnRuLWJsb2NrLGlucHV0W3R5cGU9c3VibWl0XS5idG4tYmxvY2t7d2lkdGg6MTAwJX0uZmFkZXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXI7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGxpbmVhcn0uZmFkZS5pbntvcGFjaXR5OjF9LmNvbGxhcHNle2Rpc3BsYXk6bm9uZX0uY29sbGFwc2UuaW57ZGlzcGxheTpibG9ja310ci5jb2xsYXBzZS5pbntkaXNwbGF5OnRhYmxlLXJvd310Ym9keS5jb2xsYXBzZS5pbntkaXNwbGF5OnRhYmxlLXJvdy1ncm91cH0uY29sbGFwc2luZ3twb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlOy1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2U7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZTstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjM1czstby10cmFuc2l0aW9uLWR1cmF0aW9uOi4zNXM7dHJhbnNpdGlvbi1kdXJhdGlvbjouMzVzOy13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTpoZWlnaHQsdmlzaWJpbGl0eTstby10cmFuc2l0aW9uLXByb3BlcnR5OmhlaWdodCx2aXNpYmlsaXR5O3RyYW5zaXRpb24tcHJvcGVydHk6aGVpZ2h0LHZpc2liaWxpdHl9LmNhcmV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLWxlZnQ6MnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItdG9wOjRweCBkYXNoZWQ7Ym9yZGVyLXRvcDo0cHggc29saWRcOTtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudH0uZHJvcGRvd24sLmRyb3B1cHtwb3NpdGlvbjpyZWxhdGl2ZX0uZHJvcGRvd24tdG9nZ2xlOmZvY3Vze291dGxpbmU6MH0uZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7ei1pbmRleDoxMDAwO2Rpc3BsYXk6bm9uZTtmbG9hdDpsZWZ0O21pbi13aWR0aDoxNjBweDtwYWRkaW5nOjVweCAwO21hcmdpbjoycHggMCAwO2ZvbnQtc2l6ZToxNHB4O3RleHQtYWxpZ246bGVmdDtsaXN0LXN0eWxlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xNSk7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTtib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KX0uZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0e3JpZ2h0OjA7bGVmdDphdXRvfS5kcm9wZG93bi1tZW51IC5kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjlweCAwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTV9LmRyb3Bkb3duLW1lbnU+bGk+YXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDIwcHg7Y2xlYXI6Ym90aDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS40Mjg1NzE0Mztjb2xvcjojMzMzO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXJ7Y29sb3I6IzI2MjYyNjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hLC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpmb2N1cywuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7b3V0bGluZTowfS5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hLC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmhvdmVye2NvbG9yOiM3Nzd9LmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6Zm9jdXMsLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSl9Lm9wZW4+LmRyb3Bkb3duLW1lbnV7ZGlzcGxheTpibG9ja30ub3Blbj5he291dGxpbmU6MH0uZHJvcGRvd24tbWVudS1yaWdodHtyaWdodDowO2xlZnQ6YXV0b30uZHJvcGRvd24tbWVudS1sZWZ0e3JpZ2h0OmF1dG87bGVmdDowfS5kcm9wZG93bi1oZWFkZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOjNweCAyMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6Izc3Nzt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6OTkwfS5wdWxsLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3JpZ2h0OjA7bGVmdDphdXRvfS5kcm9wdXAgLmNhcmV0LC5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuY2FyZXR7Y29udGVudDoiIjtib3JkZXItdG9wOjA7Ym9yZGVyLWJvdHRvbTo0cHggZGFzaGVkO2JvcmRlci1ib3R0b206NHB4IHNvbGlkXDl9LmRyb3B1cCAuZHJvcGRvd24tbWVudSwubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luLWJvdHRvbToycHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99Lm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0e3JpZ2h0OmF1dG87bGVmdDowfX0uYnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0biwuYnRuLWdyb3VwPi5idG57cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4uYWN0aXZlLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjphY3RpdmUsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmZvY3VzLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpob3ZlciwuYnRuLWdyb3VwPi5idG4uYWN0aXZlLC5idG4tZ3JvdXA+LmJ0bjphY3RpdmUsLmJ0bi1ncm91cD4uYnRuOmZvY3VzLC5idG4tZ3JvdXA+LmJ0bjpob3Zlcnt6LWluZGV4OjJ9LmJ0bi1ncm91cCAuYnRuKy5idG4sLmJ0bi1ncm91cCAuYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4tZ3JvdXB7bWFyZ2luLWxlZnQ6LTFweH0uYnRuLXRvb2xiYXJ7bWFyZ2luLWxlZnQ6LTVweH0uYnRuLXRvb2xiYXIgLmJ0biwuYnRuLXRvb2xiYXIgLmJ0bi1ncm91cCwuYnRuLXRvb2xiYXIgLmlucHV0LWdyb3Vwe2Zsb2F0OmxlZnR9LmJ0bi10b29sYmFyPi5idG4sLmJ0bi10b29sYmFyPi5idG4tZ3JvdXAsLmJ0bi10b29sYmFyPi5pbnB1dC1ncm91cHttYXJnaW4tbGVmdDo1cHh9LmJ0bi1ncm91cD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpe2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG46Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MH0uYnRuLWdyb3VwPi5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLC5idG4tZ3JvdXA+LmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cHtmbG9hdDpsZWZ0fS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpPi5idG57Ym9yZGVyLXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpPi5idG46bGFzdC1jaGlsZCwuYnRuLWdyb3VwPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uZHJvcGRvd24tdG9nZ2xle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSwuYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZXtvdXRsaW5lOjB9LmJ0bi1ncm91cD4uYnRuKy5kcm9wZG93bi10b2dnbGV7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjhweH0uYnRuLWdyb3VwPi5idG4tbGcrLmRyb3Bkb3duLXRvZ2dsZXtwYWRkaW5nLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjEycHh9LmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGV7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpO2JveC1zaGFkb3c6aW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSl9LmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmt7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5idG4gLmNhcmV0e21hcmdpbi1sZWZ0OjB9LmJ0bi1sZyAuY2FyZXR7Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItYm90dG9tLXdpZHRoOjB9LmRyb3B1cCAuYnRuLWxnIC5jYXJldHtib3JkZXItd2lkdGg6MCA1cHggNXB4fS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwPi5idG57ZGlzcGxheTpibG9jaztmbG9hdDpub25lO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwPi5idG57ZmxvYXQ6bm9uZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0bi1ncm91cHttYXJnaW4tdG9wOi0xcHg7bWFyZ2luLWxlZnQ6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3QtY2hpbGQsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+LmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAtanVzdGlmaWVke2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5idG4tZ3JvdXAtanVzdGlmaWVkPi5idG4sLmJ0bi1ncm91cC1qdXN0aWZpZWQ+LmJ0bi1ncm91cHtkaXNwbGF5OnRhYmxlLWNlbGw7ZmxvYXQ6bm9uZTt3aWR0aDoxJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5idG57d2lkdGg6MTAwJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51e2xlZnQ6YXV0b31bZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XSxbZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBlPXJhZGlvXSxbZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdLFtkYXRhLXRvZ2dsZT1idXR0b25zXT4uYnRuLWdyb3VwPi5idG4gaW5wdXRbdHlwZT1yYWRpb117cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmV9LmlucHV0LWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6dGFibGU7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5pbnB1dC1ncm91cFtjbGFzcyo9Y29sLV17ZmxvYXQ6bm9uZTtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2x7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zm9jdXN7ei1pbmRleDozfS5pbnB1dC1ncm91cC1sZz4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6NDZweDtwYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxLjMzMzMzMzM7Ym9yZGVyLXJhZGl1czo2cHh9c2VsZWN0LmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsc2VsZWN0LmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3QuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDo0NnB4O2xpbmUtaGVpZ2h0OjQ2cHh9c2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1sZz4uZm9ybS1jb250cm9sLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRuLHRleHRhcmVhLmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsdGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFkZG9uLHRleHRhcmVhLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6YXV0b30uaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjMwcHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czozcHh9c2VsZWN0LmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wsc2VsZWN0LmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3QuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OjMwcHh9c2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRuLHRleHRhcmVhLmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wsdGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLHRleHRhcmVhLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6YXV0b30uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtYWRkb24sLmlucHV0LWdyb3VwLWJ0bntkaXNwbGF5OnRhYmxlLWNlbGx9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSwuaW5wdXQtZ3JvdXAtYWRkb246bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSwuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXJhZGl1czowfS5pbnB1dC1ncm91cC1hZGRvbiwuaW5wdXQtZ3JvdXAtYnRue3dpZHRoOjElO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmlucHV0LWdyb3VwLWFkZG9ue3BhZGRpbmc6NnB4IDEycHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzU1NTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6NHB4fS5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1zbXtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yYWRpdXM6M3B4fS5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1sZ3twYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MThweDtib3JkZXItcmFkaXVzOjZweH0uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1jaGVja2JveF0sLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9cmFkaW9de21hcmdpbi10b3A6MH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCwuaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cD4uYnRuLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmRyb3Bkb3duLXRvZ2dsZSwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLC5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bjpub3QoOmZpcnN0LWNoaWxkKSwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0biwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bi1ncm91cD4uYnRuLC5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uZHJvcGRvd24tdG9nZ2xle2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MH0uaW5wdXQtZ3JvdXAtYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTowO3doaXRlLXNwYWNlOm5vd3JhcH0uaW5wdXQtZ3JvdXAtYnRuPi5idG57cG9zaXRpb246cmVsYXRpdmV9LmlucHV0LWdyb3VwLWJ0bj4uYnRuKy5idG57bWFyZ2luLWxlZnQ6LTFweH0uaW5wdXQtZ3JvdXAtYnRuPi5idG46YWN0aXZlLC5pbnB1dC1ncm91cC1idG4+LmJ0bjpmb2N1cywuaW5wdXQtZ3JvdXAtYnRuPi5idG46aG92ZXJ7ei1pbmRleDoyfS5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0biwuaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkPi5idG4tZ3JvdXB7bWFyZ2luLXJpZ2h0Oi0xcHh9LmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5idG4tZ3JvdXB7ei1pbmRleDoyO21hcmdpbi1sZWZ0Oi0xcHh9Lm5hdntwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7bGlzdC1zdHlsZTpub25lfS5uYXY+bGl7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9ja30ubmF2PmxpPmF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHggMTVweH0ubmF2PmxpPmE6Zm9jdXMsLm5hdj5saT5hOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2VlZX0ubmF2PmxpLmRpc2FibGVkPmF7Y29sb3I6Izc3N30ubmF2PmxpLmRpc2FibGVkPmE6Zm9jdXMsLm5hdj5saS5kaXNhYmxlZD5hOmhvdmVye2NvbG9yOiM3Nzc7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdiAub3Blbj5hLC5uYXYgLm9wZW4+YTpmb2N1cywubmF2IC5vcGVuPmE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWVlO2JvcmRlci1jb2xvcjojMzM3YWI3fS5uYXYgLm5hdi1kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjlweCAwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTV9Lm5hdj5saT5hPmltZ3ttYXgtd2lkdGg6bm9uZX0ubmF2LXRhYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZH0ubmF2LXRhYnM+bGl7ZmxvYXQ6bGVmdDttYXJnaW4tYm90dG9tOi0xcHh9Lm5hdi10YWJzPmxpPmF7bWFyZ2luLXJpZ2h0OjJweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHggNHB4IDAgMH0ubmF2LXRhYnM+bGk+YTpob3Zlcntib3JkZXItY29sb3I6I2VlZSAjZWVlICNkZGR9Lm5hdi10YWJzPmxpLmFjdGl2ZT5hLC5uYXYtdGFicz5saS5hY3RpdmU+YTpmb2N1cywubmF2LXRhYnM+bGkuYWN0aXZlPmE6aG92ZXJ7Y29sb3I6IzU1NTtjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnR9Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWR7d2lkdGg6MTAwJTtib3JkZXItYm90dG9tOjB9Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGl7ZmxvYXQ6bm9uZX0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saT5he21hcmdpbi1ib3R0b206NXB4O3RleHQtYWxpZ246Y2VudGVyfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5kcm9wZG93biAuZHJvcGRvd24tbWVudXt0b3A6YXV0bztsZWZ0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpe2Rpc3BsYXk6dGFibGUtY2VsbDt3aWR0aDoxJX0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saT5he21hcmdpbi1ib3R0b206MH19Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGk+YXttYXJnaW4tcmlnaHQ6MDtib3JkZXItcmFkaXVzOjRweH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmEsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmZvY3VzLC5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5hY3RpdmU+YTpob3Zlcntib3JkZXI6MXB4IHNvbGlkICNkZGR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXMsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVye2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn19Lm5hdi1waWxscz5saXtmbG9hdDpsZWZ0fS5uYXYtcGlsbHM+bGk+YXtib3JkZXItcmFkaXVzOjRweH0ubmF2LXBpbGxzPmxpK2xpe21hcmdpbi1sZWZ0OjJweH0ubmF2LXBpbGxzPmxpLmFjdGl2ZT5hLC5uYXYtcGlsbHM+bGkuYWN0aXZlPmE6Zm9jdXMsLm5hdi1waWxscz5saS5hY3RpdmU+YTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMzN2FiN30ubmF2LXN0YWNrZWQ+bGl7ZmxvYXQ6bm9uZX0ubmF2LXN0YWNrZWQ+bGkrbGl7bWFyZ2luLXRvcDoycHg7bWFyZ2luLWxlZnQ6MH0ubmF2LWp1c3RpZmllZHt3aWR0aDoxMDAlfS5uYXYtanVzdGlmaWVkPmxpe2Zsb2F0Om5vbmV9Lm5hdi1qdXN0aWZpZWQ+bGk+YXttYXJnaW4tYm90dG9tOjVweDt0ZXh0LWFsaWduOmNlbnRlcn0ubmF2LWp1c3RpZmllZD4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87bGVmdDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2LWp1c3RpZmllZD5saXtkaXNwbGF5OnRhYmxlLWNlbGw7d2lkdGg6MSV9Lm5hdi1qdXN0aWZpZWQ+bGk+YXttYXJnaW4tYm90dG9tOjB9fS5uYXYtdGFicy1qdXN0aWZpZWR7Ym9yZGVyLWJvdHRvbTowfS5uYXYtdGFicy1qdXN0aWZpZWQ+bGk+YXttYXJnaW4tcmlnaHQ6MDtib3JkZXItcmFkaXVzOjRweH0ubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YTpmb2N1cywubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YTpob3Zlcntib3JkZXI6MXB4IHNvbGlkICNkZGR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtdGFicy1qdXN0aWZpZWQ+bGk+YXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9Lm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmEsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXMsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfX0udGFiLWNvbnRlbnQ+LnRhYi1wYW5le2Rpc3BsYXk6bm9uZX0udGFiLWNvbnRlbnQ+LmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5uYXYtdGFicyAuZHJvcGRvd24tbWVudXttYXJnaW4tdG9wOi0xcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lm5hdmJhcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjUwcHg7bWFyZ2luLWJvdHRvbToyMHB4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXJ7Ym9yZGVyLXJhZGl1czo0cHh9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWhlYWRlcntmbG9hdDpsZWZ0fX0ubmF2YmFyLWNvbGxhcHNle3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDtvdmVyZmxvdy14OnZpc2libGU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7Ym9yZGVyLXRvcDoxcHggc29saWQgdHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpfS5uYXZiYXItY29sbGFwc2UuaW57b3ZlcmZsb3cteTphdXRvfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWNvbGxhcHNle3dpZHRoOmF1dG87Ym9yZGVyLXRvcDowOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ubmF2YmFyLWNvbGxhcHNlLmNvbGxhcHNle2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O2hlaWdodDphdXRvIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowO292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fS5uYXZiYXItY29sbGFwc2UuaW57b3ZlcmZsb3cteTp2aXNpYmxlfS5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLXN0YXRpYy10b3AgLm5hdmJhci1jb2xsYXBzZXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9fS5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZXttYXgtaGVpZ2h0OjM0MHB4fUBtZWRpYSAobWF4LWRldmljZS13aWR0aDo0ODBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZXttYXgtaGVpZ2h0OjIwMHB4fX0uY29udGFpbmVyLWZsdWlkPi5uYXZiYXItY29sbGFwc2UsLmNvbnRhaW5lci1mbHVpZD4ubmF2YmFyLWhlYWRlciwuY29udGFpbmVyPi5uYXZiYXItY29sbGFwc2UsLmNvbnRhaW5lcj4ubmF2YmFyLWhlYWRlcnttYXJnaW4tcmlnaHQ6LTE1cHg7bWFyZ2luLWxlZnQ6LTE1cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1jb2xsYXBzZSwuY29udGFpbmVyLWZsdWlkPi5uYXZiYXItaGVhZGVyLC5jb250YWluZXI+Lm5hdmJhci1jb2xsYXBzZSwuY29udGFpbmVyPi5uYXZiYXItaGVhZGVye21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9fS5uYXZiYXItc3RhdGljLXRvcHt6LWluZGV4OjEwMDA7Ym9yZGVyLXdpZHRoOjAgMCAxcHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItc3RhdGljLXRvcHtib3JkZXItcmFkaXVzOjB9fS5uYXZiYXItZml4ZWQtYm90dG9tLC5uYXZiYXItZml4ZWQtdG9we3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjA7bGVmdDowO3otaW5kZXg6MTAzMH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1maXhlZC1ib3R0b20sLm5hdmJhci1maXhlZC10b3B7Ym9yZGVyLXJhZGl1czowfX0ubmF2YmFyLWZpeGVkLXRvcHt0b3A6MDtib3JkZXItd2lkdGg6MCAwIDFweH0ubmF2YmFyLWZpeGVkLWJvdHRvbXtib3R0b206MDttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXdpZHRoOjFweCAwIDB9Lm5hdmJhci1icmFuZHtmbG9hdDpsZWZ0O2hlaWdodDo1MHB4O3BhZGRpbmc6MTVweCAxNXB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIwcHh9Lm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWJyYW5kOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZiYXItYnJhbmQ+aW1ne2Rpc3BsYXk6YmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXI+LmNvbnRhaW5lciAubmF2YmFyLWJyYW5kLC5uYXZiYXI+LmNvbnRhaW5lci1mbHVpZCAubmF2YmFyLWJyYW5ke21hcmdpbi1sZWZ0Oi0xNXB4fX0ubmF2YmFyLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDtwYWRkaW5nOjlweCAxMHB4O21hcmdpbi10b3A6OHB4O21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1ib3R0b206OHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHh9Lm5hdmJhci10b2dnbGU6Zm9jdXN7b3V0bGluZTowfS5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcntkaXNwbGF5OmJsb2NrO3dpZHRoOjIycHg7aGVpZ2h0OjJweDtib3JkZXItcmFkaXVzOjFweH0ubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIrLmljb24tYmFye21hcmdpbi10b3A6NHB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLXRvZ2dsZXtkaXNwbGF5Om5vbmV9fS5uYXZiYXItbmF2e21hcmdpbjo3LjVweCAtMTVweH0ubmF2YmFyLW5hdj5saT5he3BhZGRpbmctdG9wOjEwcHg7cGFkZGluZy1ib3R0b206MTBweDtsaW5lLWhlaWdodDoyMHB4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjpzdGF0aWM7ZmxvYXQ6bm9uZTt3aWR0aDphdXRvO21hcmdpbi10b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVyLC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmF7cGFkZGluZzo1cHggMTVweCA1cHggMjVweH0ubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5he2xpbmUtaGVpZ2h0OjIwcHh9Lm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YTpmb2N1cywubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmhvdmVye2JhY2tncm91bmQtaW1hZ2U6bm9uZX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItbmF2e2Zsb2F0OmxlZnQ7bWFyZ2luOjB9Lm5hdmJhci1uYXY+bGl7ZmxvYXQ6bGVmdH0ubmF2YmFyLW5hdj5saT5he3BhZGRpbmctdG9wOjE1cHg7cGFkZGluZy1ib3R0b206MTVweH19Lm5hdmJhci1mb3Jte3BhZGRpbmc6MTBweCAxNXB4O21hcmdpbi10b3A6OHB4O21hcmdpbi1yaWdodDotMTVweDttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tbGVmdDotMTVweDtib3JkZXItdG9wOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKSwwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKSwwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXB7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDphdXRvO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbC1zdGF0aWN7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cHtkaXNwbGF5OmlubGluZS10YWJsZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sLC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ0bnt3aWR0aDphdXRvfS5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbHt3aWR0aDoxMDAlfS5uYXZiYXItZm9ybSAuY29udHJvbC1sYWJlbHttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAuY2hlY2tib3gsLm5hdmJhci1mb3JtIC5yYWRpb3tkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmNoZWNrYm94IGxhYmVsLC5uYXZiYXItZm9ybSAucmFkaW8gbGFiZWx7cGFkZGluZy1sZWZ0OjB9Lm5hdmJhci1mb3JtIC5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSwubmF2YmFyLWZvcm0gLnJhZGlvIGlucHV0W3R5cGU9cmFkaW9de3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1sZWZ0OjB9Lm5hdmJhci1mb3JtIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFja3t0b3A6MH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5uYXZiYXItZm9ybSAuZm9ybS1ncm91cHttYXJnaW4tYm90dG9tOjVweH0ubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWZvcm17d2lkdGg6YXV0bztwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDtib3JkZXI6MDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9fS5uYXZiYXItbmF2PmxpPi5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdj5saT4uZHJvcGRvd24tbWVudXttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5uYXZiYXItYnRue21hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206OHB4fS5uYXZiYXItYnRuLmJ0bi1zbXttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS5uYXZiYXItYnRuLmJ0bi14c3ttYXJnaW4tdG9wOjE0cHg7bWFyZ2luLWJvdHRvbToxNHB4fS5uYXZiYXItdGV4dHttYXJnaW4tdG9wOjE1cHg7bWFyZ2luLWJvdHRvbToxNXB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLXRleHR7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tbGVmdDoxNXB4fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5uYXZiYXItcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50O21hcmdpbi1yaWdodDotMTVweH0ubmF2YmFyLXJpZ2h0fi5uYXZiYXItcmlnaHR7bWFyZ2luLXJpZ2h0OjB9fS5uYXZiYXItZGVmYXVsdHtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Ym9yZGVyLWNvbG9yOiNlN2U3ZTd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmR7Y29sb3I6Izc3N30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjojNWU1ZTVlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdGV4dHtjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj5saT5he2NvbG9yOiM3Nzd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2PmxpPmE6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2PmxpPmE6aG92ZXJ7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4uYWN0aXZlPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5hY3RpdmU+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hOmhvdmVye2NvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojZTdlN2U3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+LmRpc2FibGVkPmE6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hOmhvdmVye2NvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGV7Ym9yZGVyLWNvbG9yOiNkZGR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZGR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM4ODh9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItZm9ybXtib3JkZXItY29sb3I6I2U3ZTdlN30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+Lm9wZW4+YSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+Lm9wZW4+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+Lm9wZW4+YTpob3Zlcntjb2xvcjojNTU1O2JhY2tncm91bmQtY29sb3I6I2U3ZTdlN31AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmF7Y29sb3I6Izc3N30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YTpob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6IzU1NTtiYWNrZ3JvdW5kLWNvbG9yOiNlN2U3ZTd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6aG92ZXJ7Y29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fX0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5re2NvbG9yOiM3Nzd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbGluazpob3Zlcntjb2xvcjojMzMzfS5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmt7Y29sb3I6Izc3N30ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzMzM30ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcntjb2xvcjojY2NjfS5uYXZiYXItaW52ZXJzZXtiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7Ym9yZGVyLWNvbG9yOiMwODA4MDh9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmR7Y29sb3I6IzlkOWQ5ZH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdGV4dHtjb2xvcjojOWQ5ZDlkfS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj5saT5he2NvbG9yOiM5ZDlkOWR9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2PmxpPmE6Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2PmxpPmE6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uYWN0aXZlPmEsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5hY3RpdmU+YTpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmFjdGl2ZT5hOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDgwODA4fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmRpc2FibGVkPmE6Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hOmhvdmVye2NvbG9yOiM0NDQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGV7Ym9yZGVyLWNvbG9yOiMzMzN9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybXtib3JkZXItY29sb3I6IzEwMTAxMH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+Lm9wZW4+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+Lm9wZW4+YTpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+Lm9wZW4+YTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzA4MDgwOH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kcm9wZG93bi1oZWFkZXJ7Ym9yZGVyLWNvbG9yOiMwODA4MDh9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kaXZpZGVye2JhY2tncm91bmQtY29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YXtjb2xvcjojOWQ5ZDlkfS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmEsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3Zlcntjb2xvcjojNDQ0O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWxpbmt7Y29sb3I6IzlkOWQ5ZH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5rOmhvdmVye2NvbG9yOiNmZmZ9Lm5hdmJhci1pbnZlcnNlIC5idG4tbGlua3tjb2xvcjojOWQ5ZDlkfS5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcntjb2xvcjojZmZmfS5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmhvdmVye2NvbG9yOiM0NDR9LmJyZWFkY3J1bWJ7cGFkZGluZzo4cHggMTVweDttYXJnaW4tYm90dG9tOjIwcHg7bGlzdC1zdHlsZTpub25lO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXItcmFkaXVzOjRweH0uYnJlYWRjcnVtYj5saXtkaXNwbGF5OmlubGluZS1ibG9ja30uYnJlYWRjcnVtYj5saStsaTpiZWZvcmV7cGFkZGluZzowIDVweDtjb2xvcjojY2NjO2NvbnRlbnQ6Ii9cMDBhMCJ9LmJyZWFkY3J1bWI+LmFjdGl2ZXtjb2xvcjojNzc3fS5wYWdpbmF0aW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctbGVmdDowO21hcmdpbjoyMHB4IDA7Ym9yZGVyLXJhZGl1czo0cHh9LnBhZ2luYXRpb24+bGl7ZGlzcGxheTppbmxpbmV9LnBhZ2luYXRpb24+bGk+YSwucGFnaW5hdGlvbj5saT5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7cGFkZGluZzo2cHggMTJweDttYXJnaW4tbGVmdDotMXB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7MjogIzMzN2FiN3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7fS5wYWdpbmF0aW9uPmxpOmZpcnN0LWNoaWxkPmEsLnBhZ2luYXRpb24+bGk6Zmlyc3QtY2hpbGQ+c3BhbnttYXJnaW4tbGVmdDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fS5wYWdpbmF0aW9uPmxpOmxhc3QtY2hpbGQ+YSwucGFnaW5hdGlvbj5saTpsYXN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweH0ucGFnaW5hdGlvbj5saT5hOmZvY3VzLC5wYWdpbmF0aW9uPmxpPmE6aG92ZXIsLnBhZ2luYXRpb24+bGk+c3Bhbjpmb2N1cywucGFnaW5hdGlvbj5saT5zcGFuOmhvdmVye3otaW5kZXg6Mjtjb2xvcjojMjM1MjdjO2JhY2tncm91bmQtY29sb3I6I2VlZTtib3JkZXItY29sb3I6I2RkZH0ucGFnaW5hdGlvbj4uYWN0aXZlPmEsLnBhZ2luYXRpb24+LmFjdGl2ZT5hOmZvY3VzLC5wYWdpbmF0aW9uPi5hY3RpdmU+YTpob3ZlciwucGFnaW5hdGlvbj4uYWN0aXZlPnNwYW4sLnBhZ2luYXRpb24+LmFjdGl2ZT5zcGFuOmZvY3VzLC5wYWdpbmF0aW9uPi5hY3RpdmU+c3Bhbjpob3Zlcnt6LWluZGV4OjM7Y29sb3I6I2ZmZjtjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMzMzdhYjd9LnBhZ2luYXRpb24+LmRpc2FibGVkPmEsLnBhZ2luYXRpb24+LmRpc2FibGVkPmE6Zm9jdXMsLnBhZ2luYXRpb24+LmRpc2FibGVkPmE6aG92ZXIsLnBhZ2luYXRpb24+LmRpc2FibGVkPnNwYW4sLnBhZ2luYXRpb24+LmRpc2FibGVkPnNwYW46Zm9jdXMsLnBhZ2luYXRpb24+LmRpc2FibGVkPnNwYW46aG92ZXJ7Y29sb3I6Izc3NztjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZGRkfS5wYWdpbmF0aW9uLWxnPmxpPmEsLnBhZ2luYXRpb24tbGc+bGk+c3BhbntwYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxLjMzMzMzMzN9LnBhZ2luYXRpb24tbGc+bGk6Zmlyc3QtY2hpbGQ+YSwucGFnaW5hdGlvbi1sZz5saTpmaXJzdC1jaGlsZD5zcGFue2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4fS5wYWdpbmF0aW9uLWxnPmxpOmxhc3QtY2hpbGQ+YSwucGFnaW5hdGlvbi1sZz5saTpsYXN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweH0ucGFnaW5hdGlvbi1zbT5saT5hLC5wYWdpbmF0aW9uLXNtPmxpPnNwYW57cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjV9LnBhZ2luYXRpb24tc20+bGk6Zmlyc3QtY2hpbGQ+YSwucGFnaW5hdGlvbi1zbT5saTpmaXJzdC1jaGlsZD5zcGFue2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS5wYWdpbmF0aW9uLXNtPmxpOmxhc3QtY2hpbGQ+YSwucGFnaW5hdGlvbi1zbT5saTpsYXN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweH0ucGFnZXJ7cGFkZGluZy1sZWZ0OjA7bWFyZ2luOjIwcHggMDt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmV9LnBhZ2VyIGxpe2Rpc3BsYXk6aW5saW5lfS5wYWdlciBsaT5hLC5wYWdlciBsaT5zcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NXB4IDE0cHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjE1cHh9LnBhZ2VyIGxpPmE6Zm9jdXMsLnBhZ2VyIGxpPmE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5wYWdlciAubmV4dD5hLC5wYWdlciAubmV4dD5zcGFue2Zsb2F0OnJpZ2h0fS5wYWdlciAucHJldmlvdXM+YSwucGFnZXIgLnByZXZpb3VzPnNwYW57ZmxvYXQ6bGVmdH0ucGFnZXIgLmRpc2FibGVkPmEsLnBhZ2VyIC5kaXNhYmxlZD5hOmZvY3VzLC5wYWdlciAuZGlzYWJsZWQ+YTpob3ZlciwucGFnZXIgLmRpc2FibGVkPnNwYW57Y29sb3I6Izc3NztjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5sYWJlbHtkaXNwbGF5OmlubGluZTtwYWRkaW5nOi4yZW0gLjZlbSAuM2VtO2ZvbnQtc2l6ZTo3NSU7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Ym9yZGVyLXJhZGl1czouMjVlbX1hLmxhYmVsOmZvY3VzLGEubGFiZWw6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcn0ubGFiZWw6ZW1wdHl7ZGlzcGxheTpub25lfS5idG4gLmxhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4fS5sYWJlbC1kZWZhdWx0e2JhY2tncm91bmQtY29sb3I6Izc3N30ubGFiZWwtZGVmYXVsdFtocmVmXTpmb2N1cywubGFiZWwtZGVmYXVsdFtocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZTVlNWV9LmxhYmVsLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3fS5sYWJlbC1wcmltYXJ5W2hyZWZdOmZvY3VzLC5sYWJlbC1wcmltYXJ5W2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzI4NjA5MH0ubGFiZWwtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1Y2I4NWN9LmxhYmVsLXN1Y2Nlc3NbaHJlZl06Zm9jdXMsLmxhYmVsLXN1Y2Nlc3NbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDQ5ZDQ0fS5sYWJlbC1pbmZve2JhY2tncm91bmQtY29sb3I6IzViYzBkZX0ubGFiZWwtaW5mb1tocmVmXTpmb2N1cywubGFiZWwtaW5mb1tocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMWIwZDV9LmxhYmVsLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjBhZDRlfS5sYWJlbC13YXJuaW5nW2hyZWZdOmZvY3VzLC5sYWJlbC13YXJuaW5nW2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2VjOTcxZn0ubGFiZWwtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2Q5NTM0Zn0ubGFiZWwtZGFuZ2VyW2hyZWZdOmZvY3VzLC5sYWJlbC1kYW5nZXJbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYzkzMDJjfS5iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6MTBweDtwYWRkaW5nOjNweCA3cHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7dmVydGljYWwtYWxpZ246bWlkZGxlO2JhY2tncm91bmQtY29sb3I6Izc3Nztib3JkZXItcmFkaXVzOjEwcHh9LmJhZGdlOmVtcHR5e2Rpc3BsYXk6bm9uZX0uYnRuIC5iYWRnZXtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTFweH0uYnRuLWdyb3VwLXhzPi5idG4gLmJhZGdlLC5idG4teHMgLmJhZGdle3RvcDowO3BhZGRpbmc6MXB4IDVweH1hLmJhZGdlOmZvY3VzLGEuYmFkZ2U6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcn0ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZT4uYmFkZ2UsLm5hdi1waWxscz4uYWN0aXZlPmE+LmJhZGdle2NvbG9yOiMzMzdhYjc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5saXN0LWdyb3VwLWl0ZW0+LmJhZGdle2Zsb2F0OnJpZ2h0fS5saXN0LWdyb3VwLWl0ZW0+LmJhZGdlKy5iYWRnZXttYXJnaW4tcmlnaHQ6NXB4fS5uYXYtcGlsbHM+bGk+YT4uYmFkZ2V7bWFyZ2luLWxlZnQ6M3B4fS5qdW1ib3Ryb257cGFkZGluZy10b3A6MzBweDtwYWRkaW5nLWJvdHRvbTozMHB4O21hcmdpbi1ib3R0b206MzBweDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQtY29sb3I6I2VlZX0uanVtYm90cm9uIC5oMSwuanVtYm90cm9uIGgxe2NvbG9yOmluaGVyaXR9Lmp1bWJvdHJvbiBwe21hcmdpbi1ib3R0b206MTVweDtmb250LXNpemU6MjFweDtmb250LXdlaWdodDoyMDB9Lmp1bWJvdHJvbj5ocntib3JkZXItdG9wLWNvbG9yOiNkNWQ1ZDV9LmNvbnRhaW5lciAuanVtYm90cm9uLC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbntwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHg7Ym9yZGVyLXJhZGl1czo2cHh9Lmp1bWJvdHJvbiAuY29udGFpbmVye21heC13aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzY4cHgpey5qdW1ib3Ryb257cGFkZGluZy10b3A6NDhweDtwYWRkaW5nLWJvdHRvbTo0OHB4fS5jb250YWluZXIgLmp1bWJvdHJvbiwuY29udGFpbmVyLWZsdWlkIC5qdW1ib3Ryb257cGFkZGluZy1yaWdodDo2MHB4O3BhZGRpbmctbGVmdDo2MHB4fS5qdW1ib3Ryb24gLmgxLC5qdW1ib3Ryb24gaDF7Zm9udC1zaXplOjYzcHh9fS50aHVtYm5haWx7ZGlzcGxheTpibG9jaztwYWRkaW5nOjRweDttYXJnaW4tYm90dG9tOjIwcHg7bGluZS1oZWlnaHQ6MS40Mjg1NzE0MztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIgLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246Ym9yZGVyIC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOmJvcmRlciAuMnMgZWFzZS1pbi1vdXR9LnRodW1ibmFpbCBhPmltZywudGh1bWJuYWlsPmltZ3ttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvfWEudGh1bWJuYWlsLmFjdGl2ZSxhLnRodW1ibmFpbDpmb2N1cyxhLnRodW1ibmFpbDpob3Zlcntib3JkZXItY29sb3I6IzMzN2FiN30udGh1bWJuYWlsIC5jYXB0aW9ue3BhZGRpbmc6OXB4O2NvbG9yOiMzMzN9LmFsZXJ0e3BhZGRpbmc6MTVweDttYXJnaW4tYm90dG9tOjIwcHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweH0uYWxlcnQgaDR7bWFyZ2luLXRvcDowO2NvbG9yOmluaGVyaXR9LmFsZXJ0IC5hbGVydC1saW5re2ZvbnQtd2VpZ2h0OjcwMH0uYWxlcnQ+cCwuYWxlcnQ+dWx7bWFyZ2luLWJvdHRvbTowfS5hbGVydD5wK3B7bWFyZ2luLXRvcDo1cHh9LmFsZXJ0LWRpc21pc3NhYmxlLC5hbGVydC1kaXNtaXNzaWJsZXtwYWRkaW5nLXJpZ2h0OjM1cHh9LmFsZXJ0LWRpc21pc3NhYmxlIC5jbG9zZSwuYWxlcnQtZGlzbWlzc2libGUgLmNsb3Nle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4O3JpZ2h0Oi0yMXB4O2NvbG9yOmluaGVyaXR9LmFsZXJ0LXN1Y2Nlc3N7Y29sb3I6IzNjNzYzZDtiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDg7Ym9yZGVyLWNvbG9yOiNkNmU5YzZ9LmFsZXJ0LXN1Y2Nlc3MgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYzllMmIzfS5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5re2NvbG9yOiMyYjU0MmN9LmFsZXJ0LWluZm97Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9yOiNkOWVkZjc7Ym9yZGVyLWNvbG9yOiNiY2U4ZjF9LmFsZXJ0LWluZm8gaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYTZlMWVjfS5hbGVydC1pbmZvIC5hbGVydC1saW5re2NvbG9yOiMyNDUyNjl9LmFsZXJ0LXdhcm5pbmd7Y29sb3I6IzhhNmQzYjtiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTM7Ym9yZGVyLWNvbG9yOiNmYWViY2N9LmFsZXJ0LXdhcm5pbmcgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojZjdlMWI1fS5hbGVydC13YXJuaW5nIC5hbGVydC1saW5re2NvbG9yOiM2NjUxMmN9LmFsZXJ0LWRhbmdlcntjb2xvcjojYTk0NDQyO2JhY2tncm91bmQtY29sb3I6I2YyZGVkZTtib3JkZXItY29sb3I6I2ViY2NkMX0uYWxlcnQtZGFuZ2VyIGhye2JvcmRlci10b3AtY29sb3I6I2U0YjljMH0uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5re2NvbG9yOiM4NDM1MzR9QC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVze2Zyb217YmFja2dyb3VuZC1wb3NpdGlvbjo0MHB4IDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9fUAtby1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjQwcHggMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19QGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlc3tmcm9te2JhY2tncm91bmQtcG9zaXRpb246NDBweCAwfXRve2JhY2tncm91bmQtcG9zaXRpb246MCAwfX0ucHJvZ3Jlc3N7aGVpZ2h0OjIwcHg7bWFyZ2luLWJvdHRvbToyMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKX0ucHJvZ3Jlc3MtYmFye2Zsb2F0OmxlZnQ7d2lkdGg6MDtoZWlnaHQ6MTAwJTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSk7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC42cyBlYXNlOy1vLXRyYW5zaXRpb246d2lkdGggLjZzIGVhc2U7dHJhbnNpdGlvbjp3aWR0aCAuNnMgZWFzZX0ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQsLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjQwcHggNDBweDtiYWNrZ3JvdW5kLXNpemU6NDBweCA0MHB4fS5wcm9ncmVzcy1iYXIuYWN0aXZlLC5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcnstd2Via2l0LWFuaW1hdGlvbjpwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7LW8tYW5pbWF0aW9uOnByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246cHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlfS5wcm9ncmVzcy1iYXItc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1Y2I4NWN9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci1pbmZve2JhY2tncm91bmQtY29sb3I6IzViYzBkZX0ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWluZm97YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MtYmFyLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjBhZDRlfS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItd2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy1iYXItZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2Q5NTM0Zn0ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWRhbmdlcntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5tZWRpYXttYXJnaW4tdG9wOjE1cHh9Lm1lZGlhOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ubWVkaWEsLm1lZGlhLWJvZHl7b3ZlcmZsb3c6aGlkZGVuO3pvb206MX0ubWVkaWEtYm9keXt3aWR0aDoxMDAwMHB4fS5tZWRpYS1vYmplY3R7ZGlzcGxheTpibG9ja30ubWVkaWEtb2JqZWN0LmltZy10aHVtYm5haWx7bWF4LXdpZHRoOm5vbmV9Lm1lZGlhLXJpZ2h0LC5tZWRpYT4ucHVsbC1yaWdodHtwYWRkaW5nLWxlZnQ6MTBweH0ubWVkaWEtbGVmdCwubWVkaWE+LnB1bGwtbGVmdHtwYWRkaW5nLXJpZ2h0OjEwcHh9Lm1lZGlhLWJvZHksLm1lZGlhLWxlZnQsLm1lZGlhLXJpZ2h0e2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lm1lZGlhLW1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1lZGlhLWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lm1lZGlhLWhlYWRpbmd7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206NXB4fS5tZWRpYS1saXN0e3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0ubGlzdC1ncm91cHtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjIwcHh9Lmxpc3QtZ3JvdXAtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTBweCAxNXB4O21hcmdpbi1ib3R0b206LTFweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkfS5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NHB4fS5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4fWEubGlzdC1ncm91cC1pdGVtLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW17Y29sb3I6IzU1NX1hLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6IzMzM31hLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXJ7Y29sb3I6IzU1NTt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9YnV0dG9uLmxpc3QtZ3JvdXAtaXRlbXt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdH0ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3Zlcntjb2xvcjojNzc3O2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dHtjb2xvcjojNzc3fS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVye3otaW5kZXg6Mjtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMzN2FiNztib3JkZXItY29sb3I6IzMzN2FiN30ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPi5zbWFsbCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+c21hbGwsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz4uc21hbGwsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPnNtYWxsLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+LnNtYWxsLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz5zbWFsbHtjb2xvcjppbmhlcml0fS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0e2NvbG9yOiNjN2RkZWZ9Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNze2NvbG9yOiMzYzc2M2Q7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4fWEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNze2NvbG9yOiMzYzc2M2R9YS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZ3tjb2xvcjppbmhlcml0fWEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVye2NvbG9yOiMzYzc2M2Q7YmFja2dyb3VuZC1jb2xvcjojZDBlOWM2fWEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojM2M3NjNkO2JvcmRlci1jb2xvcjojM2M3NjNkfS5saXN0LWdyb3VwLWl0ZW0taW5mb3tjb2xvcjojMzE3MDhmO2JhY2tncm91bmQtY29sb3I6I2Q5ZWRmN31hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mb3tjb2xvcjojMzE3MDhmfWEubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH1hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzLGEubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3Zlcntjb2xvcjojMzE3MDhmO2JhY2tncm91bmQtY29sb3I6I2M0ZTNmM31hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxhLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMxNzA4Zjtib3JkZXItY29sb3I6IzMxNzA4Zn0ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmd7Y29sb3I6IzhhNmQzYjtiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTN9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmd7Y29sb3I6IzhhNmQzYn1hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2NvbG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6aG92ZXJ7Y29sb3I6IzhhNmQzYjtiYWNrZ3JvdW5kLWNvbG9yOiNmYWYyY2N9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXIsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM4YTZkM2I7Ym9yZGVyLWNvbG9yOiM4YTZkM2J9Lmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXJ7Y29sb3I6I2E5NDQ0MjtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGV9YS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2Vye2NvbG9yOiNhOTQ0NDJ9YS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH1hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVye2NvbG9yOiNhOTQ0NDI7YmFja2dyb3VuZC1jb2xvcjojZWJjY2NjfWEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYTk0NDQyO2JvcmRlci1jb2xvcjojYTk0NDQyfS5saXN0LWdyb3VwLWl0ZW0taGVhZGluZ3ttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTo1cHh9Lmxpc3QtZ3JvdXAtaXRlbS10ZXh0e21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjN9LnBhbmVse21hcmdpbi1ib3R0b206MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSl9LnBhbmVsLWJvZHl7cGFkZGluZzoxNXB4fS5wYW5lbC1oZWFkaW5ne3BhZGRpbmc6MTBweCAxNXB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0ucGFuZWwtaGVhZGluZz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjppbmhlcml0fS5wYW5lbC10aXRsZXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOmluaGVyaXR9LnBhbmVsLXRpdGxlPi5zbWFsbCwucGFuZWwtdGl0bGU+LnNtYWxsPmEsLnBhbmVsLXRpdGxlPmEsLnBhbmVsLXRpdGxlPnNtYWxsLC5wYW5lbC10aXRsZT5zbWFsbD5he2NvbG9yOmluaGVyaXR9LnBhbmVsLWZvb3RlcntwYWRkaW5nOjEwcHggMTVweDtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhbmVsPi5saXN0LWdyb3VwLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+Lmxpc3QtZ3JvdXB7bWFyZ2luLWJvdHRvbTowfS5wYW5lbD4ubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+Lmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbXtib3JkZXItd2lkdGg6MXB4IDA7Ym9yZGVyLXJhZGl1czowfS5wYW5lbD4ubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+Lmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS5wYW5lbD4ubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCwucGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhbmVsPi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5wYW5lbC1oZWFkaW5nKy5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowfS5saXN0LWdyb3VwKy5wYW5lbC1mb290ZXJ7Ym9yZGVyLXRvcC13aWR0aDowfS5wYW5lbD4ucGFuZWwtY29sbGFwc2U+LnRhYmxlLC5wYW5lbD4udGFibGUsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZXttYXJnaW4tYm90dG9tOjB9LnBhbmVsPi5wYW5lbC1jb2xsYXBzZT4udGFibGUgY2FwdGlvbiwucGFuZWw+LnRhYmxlIGNhcHRpb24sLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZSBjYXB0aW9ue3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkPi50YWJsZTpsYXN0LWNoaWxkPnRmb290Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRmb290Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYW5lbD4ucGFuZWwtYm9keSsudGFibGUsLnBhbmVsPi5wYW5lbC1ib2R5Ky50YWJsZS1yZXNwb25zaXZlLC5wYW5lbD4udGFibGUrLnBhbmVsLWJvZHksLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlKy5wYW5lbC1ib2R5e2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGR9LnBhbmVsPi50YWJsZT50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZCwucGFuZWw+LnRhYmxlPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoe2JvcmRlci10b3A6MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpmaXJzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyOmZpcnN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGh7Ym9yZGVyLWJvdHRvbTowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cjpsYXN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRoLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGh7Ym9yZGVyLWJvdHRvbTowfS5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZXttYXJnaW4tYm90dG9tOjA7Ym9yZGVyOjB9LnBhbmVsLWdyb3Vwe21hcmdpbi1ib3R0b206MjBweH0ucGFuZWwtZ3JvdXAgLnBhbmVse21hcmdpbi1ib3R0b206MDtib3JkZXItcmFkaXVzOjRweH0ucGFuZWwtZ3JvdXAgLnBhbmVsKy5wYW5lbHttYXJnaW4tdG9wOjVweH0ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmd7Ym9yZGVyLWJvdHRvbTowfS5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+Lmxpc3QtZ3JvdXAsLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkfS5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVye2JvcmRlci10b3A6MH0ucGFuZWwtZ3JvdXAgLnBhbmVsLWZvb3RlcisucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZH0ucGFuZWwtZGVmYXVsdHtib3JkZXItY29sb3I6I2RkZH0ucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZ3tjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXItY29sb3I6I2RkZH0ucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjojZGRkfS5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZjVmNWY1O2JhY2tncm91bmQtY29sb3I6IzMzM30ucGFuZWwtZGVmYXVsdD4ucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNkZGR9LnBhbmVsLXByaW1hcnl7Ym9yZGVyLWNvbG9yOiMzMzdhYjd9LnBhbmVsLXByaW1hcnk+LnBhbmVsLWhlYWRpbmd7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMzMzdhYjd9LnBhbmVsLXByaW1hcnk+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci10b3AtY29sb3I6IzMzN2FiN30ucGFuZWwtcHJpbWFyeT4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7Y29sb3I6IzMzN2FiNztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnBhbmVsLXByaW1hcnk+LnBhbmVsLWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMzM3YWI3fS5wYW5lbC1zdWNjZXNze2JvcmRlci1jb2xvcjojZDZlOWM2fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFkaW5ne2NvbG9yOiMzYzc2M2Q7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1jb2xvcjojZDZlOWM2fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNkNmU5YzZ9LnBhbmVsLXN1Y2Nlc3M+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiNkZmYwZDg7YmFja2dyb3VuZC1jb2xvcjojM2M3NjNkfS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2Q2ZTljNn0ucGFuZWwtaW5mb3tib3JkZXItY29sb3I6I2JjZThmMX0ucGFuZWwtaW5mbz4ucGFuZWwtaGVhZGluZ3tjb2xvcjojMzE3MDhmO2JhY2tncm91bmQtY29sb3I6I2Q5ZWRmNztib3JkZXItY29sb3I6I2JjZThmMX0ucGFuZWwtaW5mbz4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjojYmNlOGYxfS5wYW5lbC1pbmZvPi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZDllZGY3O2JhY2tncm91bmQtY29sb3I6IzMxNzA4Zn0ucGFuZWwtaW5mbz4ucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNiY2U4ZjF9LnBhbmVsLXdhcm5pbmd7Ym9yZGVyLWNvbG9yOiNmYWViY2N9LnBhbmVsLXdhcm5pbmc+LnBhbmVsLWhlYWRpbmd7Y29sb3I6IzhhNmQzYjtiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTM7Ym9yZGVyLWNvbG9yOiNmYWViY2N9LnBhbmVsLXdhcm5pbmc+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci10b3AtY29sb3I6I2ZhZWJjY30ucGFuZWwtd2FybmluZz4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7Y29sb3I6I2ZjZjhlMztiYWNrZ3JvdW5kLWNvbG9yOiM4YTZkM2J9LnBhbmVsLXdhcm5pbmc+LnBhbmVsLWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmFlYmNjfS5wYW5lbC1kYW5nZXJ7Ym9yZGVyLWNvbG9yOiNlYmNjZDF9LnBhbmVsLWRhbmdlcj4ucGFuZWwtaGVhZGluZ3tjb2xvcjojYTk0NDQyO2JhY2tncm91bmQtY29sb3I6I2YyZGVkZTtib3JkZXItY29sb3I6I2ViY2NkMX0ucGFuZWwtZGFuZ2VyPi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNlYmNjZDF9LnBhbmVsLWRhbmdlcj4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7Y29sb3I6I2YyZGVkZTtiYWNrZ3JvdW5kLWNvbG9yOiNhOTQ0NDJ9LnBhbmVsLWRhbmdlcj4ucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNlYmNjZDF9LmVtYmVkLXJlc3BvbnNpdmV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufS5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsLmVtYmVkLXJlc3BvbnNpdmUgaWZyYW1lLC5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCwuZW1iZWQtcmVzcG9uc2l2ZSB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MH0uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OXtwYWRkaW5nLWJvdHRvbTo1Ni4yNSV9LmVtYmVkLXJlc3BvbnNpdmUtNGJ5M3twYWRkaW5nLWJvdHRvbTo3NSV9LndlbGx7bWluLWhlaWdodDoyMHB4O3BhZGRpbmc6MTlweDttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlcjoxcHggc29saWQgI2UzZTNlMztib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSl9LndlbGwgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2RkZDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTUpfS53ZWxsLWxne3BhZGRpbmc6MjRweDtib3JkZXItcmFkaXVzOjZweH0ud2VsbC1zbXtwYWRkaW5nOjlweDtib3JkZXItcmFkaXVzOjNweH0uY2xvc2V7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjIxcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MjApO29wYWNpdHk6LjJ9LmNsb3NlOmZvY3VzLC5jbG9zZTpob3Zlcntjb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5Oi41fWJ1dHRvbi5jbG9zZXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjB9Lm1vZGFsLW9wZW57b3ZlcmZsb3c6aGlkZGVufS5tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OjEwNTA7ZGlzcGxheTpub25lO292ZXJmbG93OmhpZGRlbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdXRsaW5lOjB9Lm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZ3std2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2Utb3V0Oy1vLXRyYW5zaXRpb246LW8tdHJhbnNmb3JtIC4zcyBlYXNlLW91dDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMjUlKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0yNSUpfS5tb2RhbC5pbiAubW9kYWwtZGlhbG9ney13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKX0ubW9kYWwtb3BlbiAubW9kYWx7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvfS5tb2RhbC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6YXV0bzttYXJnaW46MTBweH0ubW9kYWwtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgIzk5OTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2JvcmRlci1yYWRpdXM6NnB4O291dGxpbmU6MDstd2Via2l0LWJveC1zaGFkb3c6MCAzcHggOXB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6MCAzcHggOXB4IHJnYmEoMCwwLDAsLjUpfS5tb2RhbC1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OjEwNDA7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tb2RhbC1iYWNrZHJvcC5mYWRle2ZpbHRlcjphbHBoYShvcGFjaXR5PTApO29wYWNpdHk6MH0ubW9kYWwtYmFja2Ryb3AuaW57ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApO29wYWNpdHk6LjV9Lm1vZGFsLWhlYWRlcntwYWRkaW5nOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNX0ubW9kYWwtaGVhZGVyIC5jbG9zZXttYXJnaW4tdG9wOi0ycHh9Lm1vZGFsLXRpdGxle21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDN9Lm1vZGFsLWJvZHl7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxNXB4fS5tb2RhbC1mb290ZXJ7cGFkZGluZzoxNXB4O3RleHQtYWxpZ246cmlnaHQ7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U1ZTVlNX0ubW9kYWwtZm9vdGVyIC5idG4rLmJ0bnttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWxlZnQ6NXB4fS5tb2RhbC1mb290ZXIgLmJ0bi1ncm91cCAuYnRuKy5idG57bWFyZ2luLWxlZnQ6LTFweH0ubW9kYWwtZm9vdGVyIC5idG4tYmxvY2srLmJ0bi1ibG9ja3ttYXJnaW4tbGVmdDowfS5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O292ZXJmbG93OnNjcm9sbH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm1vZGFsLWRpYWxvZ3t3aWR0aDo2MDBweDttYXJnaW46MzBweCBhdXRvfS5tb2RhbC1jb250ZW50ey13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxNXB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6MCA1cHggMTVweCByZ2JhKDAsMCwwLC41KX0ubW9kYWwtc217d2lkdGg6MzAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubW9kYWwtbGd7d2lkdGg6OTAwcHh9fS50b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MDtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OiJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsO2ZpbHRlcjphbHBoYShvcGFjaXR5PTApO29wYWNpdHk6MDtsaW5lLWJyZWFrOmF1dG99LnRvb2x0aXAuaW57ZmlsdGVyOmFscGhhKG9wYWNpdHk9OTApO29wYWNpdHk6Ljl9LnRvb2x0aXAudG9we3BhZGRpbmc6NXB4IDA7bWFyZ2luLXRvcDotM3B4fS50b29sdGlwLnJpZ2h0e3BhZGRpbmc6MCA1cHg7bWFyZ2luLWxlZnQ6M3B4fS50b29sdGlwLmJvdHRvbXtwYWRkaW5nOjVweCAwO21hcmdpbi10b3A6M3B4fS50b29sdGlwLmxlZnR7cGFkZGluZzowIDVweDttYXJnaW4tbGVmdDotM3B4fS50b29sdGlwLWlubmVye21heC13aWR0aDoyMDBweDtwYWRkaW5nOjNweCA4cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czo0cHh9LnRvb2x0aXAtYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkfS50b29sdGlwLnRvcCAudG9vbHRpcC1hcnJvd3tib3R0b206MDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNXB4O2JvcmRlci13aWR0aDo1cHggNXB4IDA7Ym9yZGVyLXRvcC1jb2xvcjojMDAwfS50b29sdGlwLnRvcC1sZWZ0IC50b29sdGlwLWFycm93e3JpZ2h0OjVweDtib3R0b206MDttYXJnaW4tYm90dG9tOi01cHg7Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItdG9wLWNvbG9yOiMwMDB9LnRvb2x0aXAudG9wLXJpZ2h0IC50b29sdGlwLWFycm93e2JvdHRvbTowO2xlZnQ6NXB4O21hcmdpbi1ib3R0b206LTVweDtib3JkZXItd2lkdGg6NXB4IDVweCAwO2JvcmRlci10b3AtY29sb3I6IzAwMH0udG9vbHRpcC5yaWdodCAudG9vbHRpcC1hcnJvd3t0b3A6NTAlO2xlZnQ6MDttYXJnaW4tdG9wOi01cHg7Ym9yZGVyLXdpZHRoOjVweCA1cHggNXB4IDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOiMwMDB9LnRvb2x0aXAubGVmdCAudG9vbHRpcC1hcnJvd3t0b3A6NTAlO3JpZ2h0OjA7bWFyZ2luLXRvcDotNXB4O2JvcmRlci13aWR0aDo1cHggMCA1cHggNXB4O2JvcmRlci1sZWZ0LWNvbG9yOiMwMDB9LnRvb2x0aXAuYm90dG9tIC50b29sdGlwLWFycm93e3RvcDowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01cHg7Ym9yZGVyLXdpZHRoOjAgNXB4IDVweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMDB9LnRvb2x0aXAuYm90dG9tLWxlZnQgLnRvb2x0aXAtYXJyb3d7dG9wOjA7cmlnaHQ6NXB4O21hcmdpbi10b3A6LTVweDtib3JkZXItd2lkdGg6MCA1cHggNXB4O2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0udG9vbHRpcC5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3d7dG9wOjA7bGVmdDo1cHg7bWFyZ2luLXRvcDotNXB4O2JvcmRlci13aWR0aDowIDVweCA1cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwfS5wb3BvdmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwNjA7ZGlzcGxheTpub25lO21heC13aWR0aDoyNzZweDtwYWRkaW5nOjFweDtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO3RleHQtYWxpZ246bGVmdDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93Om5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3BhY2luZzpub3JtYWw7d29yZC1icmVhazpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2JvcmRlci1yYWRpdXM6NnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsMCwwLC4yKTtsaW5lLWJyZWFrOmF1dG99LnBvcG92ZXIudG9we21hcmdpbi10b3A6LTEwcHh9LnBvcG92ZXIucmlnaHR7bWFyZ2luLWxlZnQ6MTBweH0ucG9wb3Zlci5ib3R0b217bWFyZ2luLXRvcDoxMHB4fS5wb3BvdmVyLmxlZnR7bWFyZ2luLWxlZnQ6LTEwcHh9LnBvcG92ZXItdGl0bGV7cGFkZGluZzo4cHggMTRweDttYXJnaW46MDtmb250LXNpemU6MTRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtib3JkZXItcmFkaXVzOjVweCA1cHggMCAwfS5wb3BvdmVyLWNvbnRlbnR7cGFkZGluZzo5cHggMTRweH0ucG9wb3Zlcj4uYXJyb3csLnBvcG92ZXI+LmFycm93OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkfS5wb3BvdmVyPi5hcnJvd3tib3JkZXItd2lkdGg6MTFweH0ucG9wb3Zlcj4uYXJyb3c6YWZ0ZXJ7Y29udGVudDoiIjtib3JkZXItd2lkdGg6MTBweH0ucG9wb3Zlci50b3A+LmFycm93e2JvdHRvbTotMTFweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTFweDtib3JkZXItdG9wLWNvbG9yOiM5OTk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5wb3BvdmVyLnRvcD4uYXJyb3c6YWZ0ZXJ7Ym90dG9tOjFweDttYXJnaW4tbGVmdDotMTBweDtjb250ZW50OiIgIjtib3JkZXItdG9wLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5wb3BvdmVyLnJpZ2h0Pi5hcnJvd3t0b3A6NTAlO2xlZnQ6LTExcHg7bWFyZ2luLXRvcDotMTFweDtib3JkZXItcmlnaHQtY29sb3I6Izk5OTtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwuMjUpO2JvcmRlci1sZWZ0LXdpZHRoOjB9LnBvcG92ZXIucmlnaHQ+LmFycm93OmFmdGVye2JvdHRvbTotMTBweDtsZWZ0OjFweDtjb250ZW50OiIgIjtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjtib3JkZXItbGVmdC13aWR0aDowfS5wb3BvdmVyLmJvdHRvbT4uYXJyb3d7dG9wOi0xMXB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMXB4O2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLWNvbG9yOiM5OTk7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LnBvcG92ZXIuYm90dG9tPi5hcnJvdzphZnRlcnt0b3A6MXB4O21hcmdpbi1sZWZ0Oi0xMHB4O2NvbnRlbnQ6IiAiO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LnBvcG92ZXIubGVmdD4uYXJyb3d7dG9wOjUwJTtyaWdodDotMTFweDttYXJnaW4tdG9wOi0xMXB4O2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0LWNvbG9yOiM5OTk7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5wb3BvdmVyLmxlZnQ+LmFycm93OmFmdGVye3JpZ2h0OjFweDtib3R0b206LTEwcHg7Y29udGVudDoiICI7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWxlZnQtY29sb3I6I2ZmZn0uY2Fyb3VzZWx7cG9zaXRpb246cmVsYXRpdmV9LmNhcm91c2VsLWlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5jYXJvdXNlbC1pbm5lcj4uaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi42cyBlYXNlLWluLW91dCBsZWZ0Oy1vLXRyYW5zaXRpb246LjZzIGVhc2UtaW4tb3V0IGxlZnQ7dHJhbnNpdGlvbjouNnMgZWFzZS1pbi1vdXQgbGVmdH0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+YT5pbWcsLmNhcm91c2VsLWlubmVyPi5pdGVtPmltZ3tsaW5lLWhlaWdodDoxfUBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCgtd2Via2l0LXRyYW5zZm9ybS0zZCl7LmNhcm91c2VsLWlubmVyPi5pdGVtey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuNnMgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjotby10cmFuc2Zvcm0gLjZzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlLWluLW91dDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtcGVyc3BlY3RpdmU6MTAwMHB4O3BlcnNwZWN0aXZlOjEwMDBweH0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0uYWN0aXZlLnJpZ2h0LC5jYXJvdXNlbC1pbm5lcj4uaXRlbS5uZXh0e2xlZnQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0uYWN0aXZlLmxlZnQsLmNhcm91c2VsLWlubmVyPi5pdGVtLnByZXZ7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9LmNhcm91c2VsLWlubmVyPi5pdGVtLmFjdGl2ZSwuY2Fyb3VzZWwtaW5uZXI+Lml0ZW0ubmV4dC5sZWZ0LC5jYXJvdXNlbC1pbm5lcj4uaXRlbS5wcmV2LnJpZ2h0e2xlZnQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19LmNhcm91c2VsLWlubmVyPi5hY3RpdmUsLmNhcm91c2VsLWlubmVyPi5uZXh0LC5jYXJvdXNlbC1pbm5lcj4ucHJldntkaXNwbGF5OmJsb2NrfS5jYXJvdXNlbC1pbm5lcj4uYWN0aXZle2xlZnQ6MH0uY2Fyb3VzZWwtaW5uZXI+Lm5leHQsLmNhcm91c2VsLWlubmVyPi5wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LmNhcm91c2VsLWlubmVyPi5uZXh0e2xlZnQ6MTAwJX0uY2Fyb3VzZWwtaW5uZXI+LnByZXZ7bGVmdDotMTAwJX0uY2Fyb3VzZWwtaW5uZXI+Lm5leHQubGVmdCwuY2Fyb3VzZWwtaW5uZXI+LnByZXYucmlnaHR7bGVmdDowfS5jYXJvdXNlbC1pbm5lcj4uYWN0aXZlLmxlZnR7bGVmdDotMTAwJX0uY2Fyb3VzZWwtaW5uZXI+LmFjdGl2ZS5yaWdodHtsZWZ0OjEwMCV9LmNhcm91c2VsLWNvbnRyb2x7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjE1JTtmb250LXNpemU6MjBweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3RleHQtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC42KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApO29wYWNpdHk6LjV9LmNhcm91c2VsLWNvbnRyb2wubGVmdHtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgwLDAsMCwuNSkgMCxyZ2JhKDAsMCwwLC4wMDAxKSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMCwwLDAsLjUpIDAscmdiYSgwLDAsMCwuMDAwMSkgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbShyZ2JhKDAsMCwwLC41KSksdG8ocmdiYSgwLDAsMCwuMDAwMSkpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC41KSAwLHJnYmEoMCwwLDAsLjAwMDEpIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0uY2Fyb3VzZWwtY29udHJvbC5yaWdodHtyaWdodDowO2xlZnQ6YXV0bztiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgwLDAsMCwuMDAwMSkgMCxyZ2JhKDAsMCwwLC41KSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMCwwLDAsLjAwMDEpIDAscmdiYSgwLDAsMCwuNSkgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbShyZ2JhKDAsMCwwLC4wMDAxKSksdG8ocmdiYSgwLDAsMCwuNSkpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC4wMDAxKSAwLHJnYmEoMCwwLDAsLjUpIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0uY2Fyb3VzZWwtY29udHJvbDpmb2N1cywuY2Fyb3VzZWwtY29udHJvbDpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2ZpbHRlcjphbHBoYShvcGFjaXR5PTkwKTtvdXRsaW5lOjA7b3BhY2l0eTouOX0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCwuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCwuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7ei1pbmRleDo1O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6LTEwcHh9LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldntsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTBweH0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dHtyaWdodDo1MCU7bWFyZ2luLXJpZ2h0Oi0xMHB4fS5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZvbnQtZmFtaWx5OnNlcmlmO2xpbmUtaGVpZ2h0OjF9LmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldjpiZWZvcmV7Y29udGVudDonXDIwMzknfS5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQ6YmVmb3Jle2NvbnRlbnQ6J1wyMDNhJ30uY2Fyb3VzZWwtaW5kaWNhdG9yc3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTBweDtsZWZ0OjUwJTt6LWluZGV4OjE1O3dpZHRoOjYwJTtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tbGVmdDotMzAlO3RleHQtYWxpZ246Y2VudGVyO2xpc3Qtc3R5bGU6bm9uZX0uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O21hcmdpbjoxcHg7dGV4dC1pbmRlbnQ6LTk5OXB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6IzAwMFw5O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czoxMHB4fS5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmV7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNhcm91c2VsLWNhcHRpb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTUlO2JvdHRvbToyMHB4O2xlZnQ6MTUlO3otaW5kZXg6MTA7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbToyMHB4O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjYpfS5jYXJvdXNlbC1jYXB0aW9uIC5idG57dGV4dC1zaGFkb3c6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCl7LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldnt3aWR0aDozMHB4O2hlaWdodDozMHB4O21hcmdpbi10b3A6LTEwcHg7Zm9udC1zaXplOjMwcHh9LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldnttYXJnaW4tbGVmdDotMTBweH0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dHttYXJnaW4tcmlnaHQ6LTEwcHh9LmNhcm91c2VsLWNhcHRpb257cmlnaHQ6MjAlO2xlZnQ6MjAlO3BhZGRpbmctYm90dG9tOjMwcHh9LmNhcm91c2VsLWluZGljYXRvcnN7Ym90dG9tOjIwcHh9fS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91cDphZnRlciwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6YmVmb3JlLC5idG4tdG9vbGJhcjphZnRlciwuYnRuLXRvb2xiYXI6YmVmb3JlLC5jbGVhcmZpeDphZnRlciwuY2xlYXJmaXg6YmVmb3JlLC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsLmNvbnRhaW5lcjphZnRlciwuY29udGFpbmVyOmJlZm9yZSwuZGwtaG9yaXpvbnRhbCBkZDphZnRlciwuZGwtaG9yaXpvbnRhbCBkZDpiZWZvcmUsLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlciwuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSwubW9kYWwtZm9vdGVyOmFmdGVyLC5tb2RhbC1mb290ZXI6YmVmb3JlLC5tb2RhbC1oZWFkZXI6YWZ0ZXIsLm1vZGFsLWhlYWRlcjpiZWZvcmUsLm5hdjphZnRlciwubmF2OmJlZm9yZSwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5uYXZiYXItY29sbGFwc2U6YmVmb3JlLC5uYXZiYXItaGVhZGVyOmFmdGVyLC5uYXZiYXItaGVhZGVyOmJlZm9yZSwubmF2YmFyOmFmdGVyLC5uYXZiYXI6YmVmb3JlLC5wYWdlcjphZnRlciwucGFnZXI6YmVmb3JlLC5wYW5lbC1ib2R5OmFmdGVyLC5wYW5lbC1ib2R5OmJlZm9yZSwucm93OmFmdGVyLC5yb3c6YmVmb3Jle2Rpc3BsYXk6dGFibGU7Y29udGVudDoiICJ9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmFmdGVyLC5idG4tdG9vbGJhcjphZnRlciwuY2xlYXJmaXg6YWZ0ZXIsLmNvbnRhaW5lci1mbHVpZDphZnRlciwuY29udGFpbmVyOmFmdGVyLC5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsLm1vZGFsLWZvb3RlcjphZnRlciwubW9kYWwtaGVhZGVyOmFmdGVyLC5uYXY6YWZ0ZXIsLm5hdmJhci1jb2xsYXBzZTphZnRlciwubmF2YmFyLWhlYWRlcjphZnRlciwubmF2YmFyOmFmdGVyLC5wYWdlcjphZnRlciwucGFuZWwtYm9keTphZnRlciwucm93OmFmdGVye2NsZWFyOmJvdGh9LmNlbnRlci1ibG9ja3tkaXNwbGF5OmJsb2NrO21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99LnB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5wdWxsLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc2hvd3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVufS50ZXh0LWhpZGV7Zm9udDowLzAgYTtjb2xvcjp0cmFuc3BhcmVudDt0ZXh0LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LmhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5hZmZpeHtwb3NpdGlvbjpmaXhlZH1ALW1zLXZpZXdwb3J0e3dpZHRoOmRldmljZS13aWR0aH0udmlzaWJsZS1sZywudmlzaWJsZS1tZCwudmlzaWJsZS1zbSwudmlzaWJsZS14c3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS52aXNpYmxlLWxnLWJsb2NrLC52aXNpYmxlLWxnLWlubGluZSwudmlzaWJsZS1sZy1pbmxpbmUtYmxvY2ssLnZpc2libGUtbWQtYmxvY2ssLnZpc2libGUtbWQtaW5saW5lLC52aXNpYmxlLW1kLWlubGluZS1ibG9jaywudmlzaWJsZS1zbS1ibG9jaywudmlzaWJsZS1zbS1pbmxpbmUsLnZpc2libGUtc20taW5saW5lLWJsb2NrLC52aXNpYmxlLXhzLWJsb2NrLC52aXNpYmxlLXhzLWlubGluZSwudmlzaWJsZS14cy1pbmxpbmUtYmxvY2t7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHN7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9dGFibGUudmlzaWJsZS14c3tkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxlLXhze2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH10ZC52aXNpYmxlLXhzLHRoLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey52aXNpYmxlLXhzLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHMtaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey52aXNpYmxlLXhzLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFweCl7LnZpc2libGUtc217ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9dGFibGUudmlzaWJsZS1zbXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH10ZC52aXNpYmxlLXNtLHRoLnZpc2libGUtc217ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbS1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbS1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey52aXNpYmxlLXNtLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1ke2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fXRhYmxlLnZpc2libGUtbWR7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9dHIudmlzaWJsZS1tZHtkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9dGQudmlzaWJsZS1tZCx0aC52aXNpYmxlLW1ke2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1kLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkgYW5kIChtYXgtd2lkdGg6MTE5OXB4KXsudmlzaWJsZS1tZC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkgYW5kIChtYXgtd2lkdGg6MTE5OXB4KXsudmlzaWJsZS1tZC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey52aXNpYmxlLWxne2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fXRhYmxlLnZpc2libGUtbGd7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9dHIudmlzaWJsZS1sZ3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9dGQudmlzaWJsZS1sZyx0aC52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LnZpc2libGUtbGctYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LnZpc2libGUtbGctaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJsZS1sZy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LmhpZGRlbi14c3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey5oaWRkZW4tc217ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LmhpZGRlbi1tZHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5oaWRkZW4tbGd7ZGlzcGxheTpub25lIWltcG9ydGFudH19LnZpc2libGUtcHJpbnR7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnR7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9dGFibGUudmlzaWJsZS1wcmludHtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxlLXByaW50e2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH10ZC52aXNpYmxlLXByaW50LHRoLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH19LnZpc2libGUtcHJpbnQtYmxvY2t7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9fS52aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX0udmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2t7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIHByaW50ey5oaWRkZW4tcHJpbnR7ZGlzcGxheTpub25lIWltcG9ydGFudH19Ci8qIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5taW4uY3NzLm1hcCAqLw=="}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":35,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps/api/js?key=AIzaSyAHzPSV2jshbjI8fqnC_C4L08ffnj5EN3A","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.837Z","timestamp":1785126645837,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /maps/api/js?key=AIzaSyAHzPSV2jshbjI8fqnC_C4L08ffnj5EN3A HTTP/1.1\r\nHost: maps.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/javascript; charset=UTF-8\r\netag: 9347b43f\r\ncross-origin-resource-policy: cross-origin\r\ncache-control: public, max-age=1800, stale-while-revalidate=12600\r\ntiming-allow-origin: *\r\nvary: Accept-Language, Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 102521\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nserver-timing: gfet4t7; dur=244\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":311454,"size_decoded":103097,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (12271)","md5":"09a677a23d8a83275f4825e2f89dc817","sha1":"82bc070c9763a1196aa1aed0729f5b60eb049e5a","sha256":"73c910ab74811847f25160cd3333185b0f83e6b12b0a99411fb310d58c186441","sha512":"fcd0665ff2dd81b0b6cea4c048c0285c2889683295c38e7b084b49f761b2da1ce819ef5eb14d0817a1bf5d59b23e1c3619c792c58d08117da130f48e64f19ca4","ssdeep":"3072:qfzHovwhh+hNI8cMS9xlgb7HBrT+kQqbdhfDnT8tSsZ95urOHLNeM6NGPbQ7RpYc:mzuHI8cMGcbBrykCh5ucLNbLPMRWc","tlshash":"56643d947362746287b2e4b4502b0007f17ea49af00c89acf69cddf2aef994945b7f74","first_seen":"2026-07-27T03:51:33.479598Z","last_seen":"2026-07-27T04:32:40.451551Z","times_seen":3,"resource_available":true,"data":"Cgp3aW5kb3cuZ29vZ2xlID0gd2luZG93Lmdvb2dsZSB8fCB7fTsKZ29vZ2xlLm1hcHMgPSBnb29nbGUubWFwcyB8fCB7fTsKKGZ1bmN0aW9uKCkgewogIAogIHZhciBtb2R1bGVzID0gZ29vZ2xlLm1hcHMubW9kdWxlcyA9IHt9OwogIGdvb2dsZS5tYXBzLl9fZ2pzbG9hZF9fID0gZnVuY3Rpb24obmFtZSwgdGV4dCkgewogICAgbW9kdWxlc1tuYW1lXSA9IHRleHQ7CiAgfTsKICAKICBnb29nbGUubWFwcy5Mb2FkID0gZnVuY3Rpb24oYXBpTG9hZCkgewogICAgZGVsZXRlIGdvb2dsZS5tYXBzLkxvYWQ7CiAgICBhcGlMb2FkKFswLjAwOTk5OTk5OTc3NjQ4MjU4MixbbnVsbCxbWyJodHRwczovL2tobXMwLmdvb2dsZWFwaXMuY29tL2toP3Y9MTAxMlx1MDAyNmhsPWVuLVVTXHUwMDI2Z2w9VVNcdTAwMjYiLCJodHRwczovL2tobXMxLmdvb2dsZWFwaXMuY29tL2toP3Y9MTAxMlx1MDAyNmhsPWVuLVVTXHUwMDI2Z2w9VVNcdTAwMjYiXSxudWxsLG51bGwsbnVsbCwxLCIxMDEyIixbImh0dHBzOi8va2htczAuZ29vZ2xlLmNvbS9raD92PTEwMTJcdTAwMjZobD1lbi1VU1x1MDAyNmdsPVVTXHUwMDI2IiwiaHR0cHM6Ly9raG1zMS5nb29nbGUuY29tL2toP3Y9MTAxMlx1MDAyNmhsPWVuLVVTXHUwMDI2Z2w9VVNcdTAwMjYiXV0sbnVsbCxudWxsLG51bGwsbnVsbCxbWyJodHRwczovL2Nia3MwLmdvb2dsZWFwaXMuY29tL2Niaz8iLCJodHRwczovL2Nia3MxLmdvb2dsZWFwaXMuY29tL2Niaz8iXV0sW1siaHR0cHM6Ly9raG1zMC5nb29nbGVhcGlzLmNvbS9raD92PTE2OVx1MDAyNmhsPWVuLVVTXHUwMDI2Z2w9VVNcdTAwMjYiLCJodHRwczovL2tobXMxLmdvb2dsZWFwaXMuY29tL2toP3Y9MTY5XHUwMDI2aGw9ZW4tVVNcdTAwMjZnbD1VU1x1MDAyNiJdLG51bGwsbnVsbCxudWxsLG51bGwsIjE2OSIsWyJodHRwczovL2tobXMwLmdvb2dsZS5jb20va2g/dj0xNjlcdTAwMjZobD1lbi1VU1x1MDAyNmdsPVVTXHUwMDI2IiwiaHR0cHM6Ly9raG1zMS5nb29nbGUuY29tL2toP3Y9MTY5XHUwMDI2aGw9ZW4tVVNcdTAwMjZnbD1VU1x1MDAyNiJdXSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFtbImh0dHBzOi8vc3RyZWV0dmlld3BpeGVscy1wYS5nb29nbGVhcGlzLmNvbS92MS90aHVtYm5haWw/aGw9ZW4tVVNcdTAwMjZnbD1VU1x1MDAyNiIsImh0dHBzOi8vc3RyZWV0dmlld3BpeGVscy1wYS5nb29nbGVhcGlzLmNvbS92MS90aHVtYm5haWw/aGw9ZW4tVVNcdTAwMjZnbD1VU1x1MDAyNiJdXV0sWyJlbi1VUyIsIlVTIixudWxsLDAsbnVsbCxudWxsLCJodHRwczovL21hcHMuZ3N0YXRpYy5jb20vbWFwZmlsZXMvIixudWxsLCJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20iLCJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20iLG51bGwsImh0dHBzOi8vbWFwcy5nb29nbGUuY29tIixudWxsLCJodHRwczovL21hcHMuZ3N0YXRpYy5jb20vbWFwcy1hcGktdjMvYXBpL2ltYWdlcy8iLCJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMiLG51bGwsImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iLDEsImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzX2FwaV9qc19zbG8vbG9nP2hhc2Zhc3Q9dHJ1ZSIsMCwxXSxbImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzLWFwaS12My9hcGkvanMvNjUvMTBhIiwiMy42NS4xMGEiXSxbMjk5MDUwNTcwMl0sbnVsbCxudWxsLG51bGwsWzExMl0sbnVsbCxudWxsLCIiLG51bGwsbnVsbCwxLCJodHRwczovL2tobXMuZ29vZ2xlYXBpcy5jb20vbXo/dj0xMDEyXHUwMDI2IiwiQUl6YVN5QUh6UFNWMmpzaGJqSThmcW5DX0M0TDA4ZmZuajVFTjNBIiwiaHR0cHM6Ly9lYXJ0aGJ1aWxkZXIuZ29vZ2xlYXBpcy5jb20iLCJodHRwczovL2VhcnRoYnVpbGRlci5nb29nbGVhcGlzLmNvbSIsbnVsbCwiaHR0cHM6Ly9tdHMuZ29vZ2xlYXBpcy5jb20vbWFwcy92dC9pY29uIixbWyJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy92dCJdLFsiaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvdnQiXSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLFsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL3Z0Il0sIi9tYXBzL3Z0Iiw3ODcwMDAwMDAsNzg3LDc4NzU1MzcxMV0sMiw1MDAsW251bGwsbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9wcmV2aWV3L2xvZzIwNCIsIiIsImh0dHBzOi8vc3RhdGljLnBhbm9yYW1pby5jb20uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9waG90b3MvIixbImh0dHBzOi8vZ2VvMC5nZ3BodC5jb20vY2JrIiwiaHR0cHM6Ly9nZW8xLmdncGh0LmNvbS9jYmsiLCJodHRwczovL2dlbzIuZ2dwaHQuY29tL2NiayIsImh0dHBzOi8vZ2VvMy5nZ3BodC5jb20vY2JrIl0sImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcy9HZW9QaG90b1NlcnZpY2UuR2V0TWV0YWRhdGEiLCJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanMvR2VvUGhvdG9TZXJ2aWNlLlNpbmdsZUltYWdlU2VhcmNoIixbImh0dHBzOi8vbGgzLmdncGh0LmNvbS9qc2FwaTIvYS9iL2MvIiwiaHR0cHM6Ly9saDQuZ2dwaHQuY29tL2pzYXBpMi9hL2IvYy8iLCJodHRwczovL2xoNS5nZ3BodC5jb20vanNhcGkyL2EvYi9jLyIsImh0dHBzOi8vbGg2LmdncGh0LmNvbS9qc2FwaTIvYS9iL2MvIl0sImh0dHBzOi8vc3RyZWV0dmlld3BpeGVscy1wYS5nb29nbGVhcGlzLmNvbS92MS90aWxlIixbImh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS8iLCJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vIiwiaHR0cHM6Ly9saDUuZ29vZ2xldXNlcmNvbnRlbnQuY29tLyIsImh0dHBzOi8vbGg2Lmdvb2dsZXVzZXJjb250ZW50LmNvbS8iXV0sbnVsbCxudWxsLG51bGwsbnVsbCwiL21hcHMvYXBpL2pzL0FwcGxpY2F0aW9uU2VydmljZS5HZXRFbnRpdHlEZXRhaWxzIiwwLG51bGwsbnVsbCxudWxsLG51bGwsW10sWyI2NS4xMGEiXSwxLDAsWzFdLCJDZ0FTbGpjSWt3WVNmQWdCRW5ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQlRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmQWdDRW5ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQlRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmQWdERW5ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQlRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NkZ2dFRW5Kb2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVTVoZG1sbllYUnBiMjR0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTZmdnRkVucG9kSFJ3Y3pvdkwzZDNkeTVuYzNSaGRHbGpMbU52YlM5dFlYQnpMM0psY3k5RGIyMXdZV04wVEdWblpXNWtVMlJyTFU1aGRtbG5ZWFJwYjI1TWIzZE1hV2RvZEMxR1pYUmphR0ZpYkdWVGRIbHNaVk5sZEZOa2F5MDRZalZpTTJZek1UZzVNREEyTVRNNVpUa3daVFl3TUdJek1EYzFaRFV3T1JKL0NBWVNlMmgwZEhCek9pOHZkM2QzTG1kemRHRjBhV011WTI5dEwyMWhjSE12Y21WekwwTnZiWEJoWTNSTVpXZGxibVJUWkdzdFRtRjJhV2RoZEdsdmJsTmhkR1ZzYkdsMFpTMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SSnpDQWNTYjJoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RVbTloWkcxaGNDMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SSnpDQWdTYjJoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RVbTloWkcxaGNDMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SSjlDQWtTZVdoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RVbTloWkcxaGNFRnRZbWxoWTNScGRtVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1Njd2dLRW05b2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmQWdMRW5ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQlRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1Njd2dNRW05b2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVlJsY25KaGFXNHRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NkZ2dORW5Kb2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVTVoZG1sbllYUnBiMjR0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTZGdnT0VuSm9kSFJ3Y3pvdkwzZDNkeTVuYzNSaGRHbGpMbU52YlM5dFlYQnpMM0psY3k5RGIyMXdZV04wVEdWblpXNWtVMlJyTFU1aGRtbG5ZWFJwYjI0dFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2ZRZ1BFbmxvZEhSd2N6b3ZMM2QzZHk1bmMzUmhkR2xqTG1OdmJTOXRZWEJ6TDNKbGN5OURiMjF3WVdOMFRHVm5aVzVrVTJSckxWSnZZV1J0WVhCQmJXSnBZV04wYVhabExVWmxkR05vWVdKc1pWTjBlV3hsVTJWMFUyUnJMVGhpTldJelpqTXhPRGt3TURZeE16bGxPVEJsTmpBd1lqTXdOelZrTlRBNUVvTUJDQkFTZjJoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RVbTloWkcxaGNFRnRZbWxoWTNScGRtVk1iM2RDYVhRdFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2ZnZ1JFbnBvZEhSd2N6b3ZMM2QzZHk1bmMzUmhkR2xqTG1OdmJTOXRZWEJ6TDNKbGN5OURiMjF3WVdOMFRHVm5aVzVrVTJSckxVNWhkbWxuWVhScGIyNU1iM2RNYVdkb2RDMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SSjZDQklTZG1oMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RWSEpoYm5OcGRFWnZZM1Z6WldRdFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2N3Z1RFbTlvZEhSd2N6b3ZMM2QzZHk1bmMzUmhkR2xqTG1OdmJTOXRZWEJ6TDNKbGN5OURiMjF3WVdOMFRHVm5aVzVrVTJSckxWSnZZV1J0WVhBdFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2VRZ1VFblZvZEhSd2N6b3ZMM2QzZHk1bmMzUmhkR2xqTG1OdmJTOXRZWEJ6TDNKbGN5OURiMjF3WVdOMFRHVm5aVzVrVTJSckxWSnZkWFJsVDNabGNuWnBaWGN0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTY3dnVkVtOW9kSFJ3Y3pvdkwzZDNkeTVuYzNSaGRHbGpMbU52YlM5dFlYQnpMM0psY3k5RGIyMXdZV04wVEdWblpXNWtVMlJyTFZKdllXUnRZWEF0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTZlFnV0VubG9kSFJ3Y3pvdkwzZDNkeTVuYzNSaGRHbGpMbU52YlM5dFlYQnpMM0psY3k5RGIyMXdZV04wVEdWblpXNWtVMlJyTFU1aGRtbG5ZWFJwYjI1QmJXSnBaVzUwTFVabGRHTm9ZV0pzWlZOMGVXeGxVMlYwVTJSckxUaGlOV0l6WmpNeE9Ea3dNRFl4TXpsbE9UQmxOakF3WWpNd056VmtOVEE1RW9FQkNCY1NmV2gwZEhCek9pOHZkM2QzTG1kemRHRjBhV011WTI5dEwyMWhjSE12Y21WekwwTnZiWEJoWTNSTVpXZGxibVJUWkdzdFRtRjJhV2RoZEdsdmJrRnRZbWxsYm5SRVlYSnJMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFb01CQ0JrU2YyaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0UW1GelpXMWhjRVZrYVhScGJtZFRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1Njd2dhRW05b2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1Nkd2diRW5Ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVkp2WVdSdFlYQkVZWEpyTFVabGRHTm9ZV0pzWlZOMGVXeGxVMlYwVTJSckxUaGlOV0l6WmpNeE9Ea3dNRFl4TXpsbE9UQmxOakF3WWpNd056VmtOVEE1RW4wSUhCSjVhSFIwY0hNNkx5OTNkM2N1WjNOMFlYUnBZeTVqYjIwdmJXRndjeTl5WlhNdlEyOXRjR0ZqZEV4bFoyVnVaRk5rYXkxU2IzVjBaVTkyWlhKMmFXVjNSR0Z5YXkxR1pYUmphR0ZpYkdWVGRIbHNaVk5sZEZOa2F5MDRZalZpTTJZek1UZzVNREEyTVRNNVpUa3daVFl3TUdJek1EYzFaRFV3T1JKM0NCMFNjMmgwZEhCek9pOHZkM2QzTG1kemRHRjBhV011WTI5dEwyMWhjSE12Y21WekwwTnZiWEJoWTNSTVpXZGxibVJUWkdzdFZHVnljbUZwYmtSaGNtc3RSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmZ2dlRW5wb2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVlJ5WVc1emFYUkdiMk4xYzJWa1JHRnlheTFHWlhSamFHRmliR1ZUZEhsc1pWTmxkRk5rYXkwNFlqVmlNMll6TVRnNU1EQTJNVE01WlRrd1pUWXdNR0l6TURjMVpEVXdPUkp6Q0I4U2IyaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VW05aFpHMWhjQzFHWlhSamFHRmliR1ZUZEhsc1pWTmxkRk5rYXkwNFlqVmlNMll6TVRnNU1EQTJNVE01WlRrd1pUWXdNR0l6TURjMVpEVXdPUkozQ0NBU2MyaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VW05aFpHMWhjRVJoY21zdFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2R3Z2hFbk5vZEhSd2N6b3ZMM2QzZHk1bmMzUmhkR2xqTG1OdmJTOXRZWEJ6TDNKbGN5OURiMjF3WVdOMFRHVm5aVzVrVTJSckxWSnZZV1J0WVhCRVlYSnJMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFb0FCQ0NVU2ZHaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VG1GMmFXZGhkR2x2YmtocFoyaEVaWFJoYVd3dFJtVjBZMmhoWW14bFUzUjViR1ZUWlhSVFpHc3RPR0kxWWpObU16RTRPVEF3TmpFek9XVTVNR1UyTURCaU16QTNOV1ExTURrU2lRRUlKaEtFQVdoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RUbUYyYVdkaGRHbHZia2hwWjJoRVpYUmhhV3hNYjNkTWFXZG9kQzFHWlhSamFHRmliR1ZUZEhsc1pWTmxkRk5rYXkwNFlqVmlNMll6TVRnNU1EQTJNVE01WlRrd1pUWXdNR0l6TURjMVpEVXdPUkp5Q0NrU2JtaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VkhKaGRtVnNMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFbllJS2hKeWFIUjBjSE02THk5M2QzY3VaM04wWVhScFl5NWpiMjB2YldGd2N5OXlaWE12UTI5dGNHRmpkRXhsWjJWdVpGTmtheTFVY21GMlpXeEVZWEpyTFVabGRHTm9ZV0pzWlZOMGVXeGxVMlYwVTJSckxUaGlOV0l6WmpNeE9Ea3dNRFl4TXpsbE9UQmxOakF3WWpNd056VmtOVEE1RW44SUt4SjdhSFIwY0hNNkx5OTNkM2N1WjNOMFlYUnBZeTVqYjIwdmJXRndjeTl5WlhNdlEyOXRjR0ZqZEV4bFoyVnVaRk5rYXkxT1lYWnBaMkYwYVc5dVUyRjBaV3hzYVhSbExVWmxkR05vWVdKc1pWTjBlV3hsVTJWMFUyUnJMVGhpTldJelpqTXhPRGt3TURZeE16bGxPVEJsTmpBd1lqTXdOelZrTlRBNUVuOElMQko3YUhSMGNITTZMeTkzZDNjdVozTjBZWFJwWXk1amIyMHZiV0Z3Y3k5eVpYTXZRMjl0Y0dGamRFeGxaMlZ1WkZOa2F5MVVaWEp5WVdsdVZtVmpkRzl5UTJ4cFpXNTBMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFb01CQ0MwU2YyaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VkdWeWNtRnBibFpsWTNSdmNrTnNhV1Z1ZEVSaGNtc3RSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmUWd1RW5sb2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVTVoZG1sbllYUnBiMjVCYldKcFpXNTBMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFb0VCQ0M4U2ZXaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VG1GMmFXZGhkR2x2YmtGdFltbGxiblJFWVhKckxVWmxkR05vWVdKc1pWTjBlV3hsVTJWMFUyUnJMVGhpTldJelpqTXhPRGt3TURZeE16bGxPVEJsTmpBd1lqTXdOelZrTlRBNUVuMElNQko1YUhSMGNITTZMeTkzZDNjdVozTjBZWFJwWXk1amIyMHZiV0Z3Y3k5eVpYTXZRMjl0Y0dGamRFeGxaMlZ1WkZOa2F5MUJhWEpSZFdGc2FYUjVTR1ZoZEcxaGNDMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SS0JBUWd4RW4xb2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVUZwY2xGMVlXeHBkSGxJWldGMGJXRndSR0Z5YXkxR1pYUmphR0ZpYkdWVGRIbHNaVk5sZEZOa2F5MDRZalZpTTJZek1UZzVNREEyTVRNNVpUa3daVFl3TUdJek1EYzFaRFV3T1JKNkNESVNkbWgwZEhCek9pOHZkM2QzTG1kemRHRjBhV011WTI5dEwyMWhjSE12Y21WekwwTnZiWEJoWTNSTVpXZGxibVJUWkdzdFRtRjJhV2RoZEdsdmJrVm5iVzB0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTZ2dFSU14SithSFIwY0hNNkx5OTNkM2N1WjNOMFlYUnBZeTVqYjIwdmJXRndjeTl5WlhNdlEyOXRjR0ZqZEV4bFoyVnVaRk5rYXkxT1lYWnBaMkYwYVc5dVJXZHRiVXh2ZDB4cFoyaDBMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFb01CQ0RRU2YyaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VG1GMmFXZGhkR2x2YmtWbmJXMVRZWFJsYkd4cGRHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NmQWcxRW5ob2RIUndjem92TDNkM2R5NW5jM1JoZEdsakxtTnZiUzl0WVhCekwzSmxjeTlEYjIxd1lXTjBUR1ZuWlc1a1UyUnJMVTVoZG1sbllYUnBiMjVVZFc1dVpXd3RSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1NoUUVJTmhLQUFXaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0VG1GMmFXZGhkR2x2YmxSMWJtNWxiRXh2ZDB4cFoyaDBMVVpsZEdOb1lXSnNaVk4wZVd4bFUyVjBVMlJyTFRoaU5XSXpaak14T0Rrd01EWXhNemxsT1RCbE5qQXdZak13TnpWa05UQTVFbjBJTnhKNWFIUjBjSE02THk5M2QzY3VaM04wWVhScFl5NWpiMjB2YldGd2N5OXlaWE12UTI5dGNHRmpkRXhsWjJWdVpGTmtheTFPWVhacFoyRjBhVzl1UjJ4aGMzTmxjeTFHWlhSamFHRmliR1ZUZEhsc1pWTmxkRk5rYXkwNFlqVmlNMll6TVRnNU1EQTJNVE01WlRrd1pUWXdNR0l6TURjMVpEVXdPUko1Q0RnU2RXaDBkSEJ6T2k4dmQzZDNMbWR6ZEdGMGFXTXVZMjl0TDIxaGNITXZjbVZ6TDBOdmJYQmhZM1JNWldkbGJtUlRaR3N0U1cxdFpYSnphWFpsVm1sbGR5MUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SSjlDRGtTZVdoMGRIQnpPaTh2ZDNkM0xtZHpkR0YwYVdNdVkyOXRMMjFoY0hNdmNtVnpMME52YlhCaFkzUk1aV2RsYm1SVFpHc3RUbUYyYVdkaGRHbHZiazFwYmsxdlpHVXRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea1Nnd0VJT2hKL2FIUjBjSE02THk5M2QzY3VaM04wWVhScFl5NWpiMjB2YldGd2N5OXlaWE12UTI5dGNHRmpkRXhsWjJWdVpGTmtheTFPWVhacFoyRjBhVzl1UVcxaWFXVnVkRlIxYm01bGJDMUdaWFJqYUdGaWJHVlRkSGxzWlZObGRGTmtheTA0WWpWaU0yWXpNVGc1TURBMk1UTTVaVGt3WlRZd01HSXpNRGMxWkRVd09SS0lBUWc3RW9NQmFIUjBjSE02THk5M2QzY3VaM04wWVhScFl5NWpiMjB2YldGd2N5OXlaWE12UTI5dGNHRmpkRXhsWjJWdVpGTmtheTFPWVhacFoyRjBhVzl1UVcxaWFXVnVkRVJoY210VWRXNXVaV3d0Um1WMFkyaGhZbXhsVTNSNWJHVlRaWFJUWkdzdE9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGtTZ1FFSVBCSjlhSFIwY0hNNkx5OTNkM2N1WjNOMFlYUnBZeTVqYjIwdmJXRndjeTl5WlhNdlEyOXRjR0ZqZEV4bFoyVnVaRk5rYXkxT1lYWnBaMkYwYVc5dVRXbHVUVzlrWlVGMWRHOHRSbVYwWTJoaFlteGxVM1I1YkdWVFpYUlRaR3N0T0dJMVlqTm1NekU0T1RBd05qRXpPV1U1TUdVMk1EQmlNekEzTldRMU1Ea2lJRGhpTldJelpqTXhPRGt3TURZeE16bGxPVEJsTmpBd1lqTXdOelZrTlRBNUtBRXljbWgwZEhCek9pOHZkM2QzTG1kdmIyZHNaUzVqYjIwdmJXRndjeTkyZEM5emVHWnZjbTF6UDNZOU9HSTFZak5tTXpFNE9UQXdOakV6T1dVNU1HVTJNREJpTXpBM05XUTFNRGttYzNSNWJHVnlYM04xWW5SNWNHVTlVMVJaVEVWU1gweEZSMFZPUkY5VFZVSlVXVkJGWDFORVN6cGdDaTZBZklCNGdIU0FjSUJzZ0dpQVpJQmdnRnlBV0lCVWdGQ0FUSUJJZ0VTQVFJQThnRGlBTklBd2dDeUFLSUFrRWdRSUFCQUFFZ1FJQVJBQkVnUUlBaEFDRWcwSUF4RC8vLy8vLy8vLy8vOEJFZzBJQkJEKy8vLy8vLy8vLy84QlFnTnpaR3M0Nlk2MEZqanJpTGdXT083ZnVSWTQ2cER6SWc9PSIsbnVsbCwxLDAuMDA5OTk5OTk5Nzc2NDgyNTgyLG51bGwsW1tbNiwiMTc4NDgwMjk4NiJdXV0sbnVsbCwiIixudWxsLDEsMF0sIGxvYWRTY3JpcHRUaW1lKTsKICB9OwogIHZhciBsb2FkU2NyaXB0VGltZSA9IChuZXcgRGF0ZSkuZ2V0VGltZSgpOwp9KSgpOwovLyBpbmxpbmVkCihmdW5jdGlvbihfKXsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKKi8KLyoKCiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiovCi8qCgpNYXRoLnV1aWQuanMgKHYxLjQpCmh0dHA6Ly93d3cuYnJvb2ZhLmNvbQptYWlsdG86cm9iZXJ0QGJyb29mYS5jb20KQ29weXJpZ2h0IChjKSAyMDEwIFJvYmVydCBLaWVmZmVyCkR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgoqLwovKgoKIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKKi8KdmFyIGFhYSxyYSxxYSxCYSxEYSxIYSxKYSxTYSxSYSxYYSxjYWEsZGFhLHViLHpiLGtjLGxjLEZjLEdjLGZhYSxtZCxwZCxnYWEsc2QseWQsRmQsSGQsWmQsb2Usd2UsTWUsTmUsT2UsZWYsaGYsamYsa2FhLG9hYSxzZix1Zix2ZixDZixyYWEsdGFhLEhmLGlnLGRnLGZnLGtnLG9nLHBnLHFnLERnLGhnLHZhYSxvaCxYaCxiaSxjaSxnaSxoaSxuaSxBYWEsQmFhLHVpLENhYSxEYWEsVWksVmksSGFhLElhYSx2aixKYWEsTGFhLEhqLE1hYSxOYWEsT2FhLFBhYSxRYWEsUmFhLEpqLFNhYSxXYWEsWGFhLGFiYSxkYmEsVGosU2osbGJhLG1iYSxwYmEscWsscmssc2ssdGsscmJhLHNiYSx3YmEsdGJhLHZiYSx3ayx4YmEseWJhLEhrLHpiYSxKayxCYmEsQWJhLENiYSxMayxFYmEsRmJhLEpiYSxNYmEsUWssU2ssVGssS2JhLExiYSxRYmEsVmssVWssV2ssWGssUmJhLFprLFlrLFRiYSxjbCxkbCxlbCxWYmEsZmwsZ2wsaGwsaWwsV2JhLGpsLGtsLFhiYSxsbCxZYmEsYmNhLGhjYSxtY2EsbmNhLAp2bCxwY2EscWNhLHJjYSx1Y2EsdGNhLHZjYSx3Y2EsRmwsc2NhLHhjYSxVbCx6Y2EsQWNhLEJjYSxxbSxFY2EseW0sSGNhLEljYSxRbSxSbSxLY2EsTWNhLGNuLFBjYSxTY2Esbm4sQW4sQ24sem4sUW4sWW4sWmNhLCRjYSxhZGEsY2RhLGNvLGlvLGpvLGRkYSxnZGEsaWRhLGhkYSxqZGEsb28sa2RhLHJvLHNvLERvLE1vLE5vLHJkYSxzZGEsT28sUG8sdGRhLHVkYSxWbyx2ZGEsWW8sQWRhLGJwLENkYSxFZGEsRmRhLGZwLElkYSxscCxKZGEscHAsS2RhLHNwLE5kYSxPZGEsUGRhLFJkYSxTZGEsV2RhLFhkYSx2cCxZZGEsVmRhLFRkYSxVZGEsJGRhLFpkYSx4cCxiZWEsZWVhLGZlYSxoZWEsS3AsTXAsa2VhLG1lYSxuZWEscGVhLHJlYSxzZWEsdGVhLHVlYSx2ZWEsd2VhLHhlYSx5ZWEsemVhLEFlYSxCZWEsRGVhLEZlYSxHZWEsSGVhLExlYSxNZWEsYXEsYnEsY3EsUGVhLFFlYSxSZWEsU2VhLFhlYSxWZWEsYmZhLGNmYSx6cSx5cSxDcSxwZmEsc2ZhLHRmYSx2ZmEseGZhLENmYSxHZmEsCkJmYSxJZmEsSGZhLExmYSxNZmEsTmZhLE9mYSxacSxRZmEsVWZhLFZmYSxYZmEsWWZhLGlnYSxoZ2EsJGZhLGFnYSxmZ2EsaHIsdW8sZWEsemEseGEseWEsdGEsbGEsbmE7Xy5oYT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZWFbYV0uYXBwbHkodGhpcyxhcmd1bWVudHMpfX07Xy5rYT1mdW5jdGlvbihhLGIpe3JldHVybiBlYVthXT1ifTtfLm1hPWZ1bmN0aW9uKGEsYixjKXtpZighY3x8YSE9bnVsbCl7Yz1sYVtiXTtpZihjPT1udWxsKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gYyE9PXZvaWQgMD9jOmFbYl19fTthYWE9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpZm9yKHZhciBkPTA7ZDxuYS5sZW5ndGg7ZCsrKXFhKG5hW2RdKyJBcnJheS5wcm90b3R5cGUuIithLGIsYyl9O3JhPWZ1bmN0aW9uKGEsYixjKXtiJiZxYShhLGIsYyl9OwpxYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5zcGxpdCgiLiIpO2E9ZC5sZW5ndGg9PT0xO3ZhciBlPWRbMF0sZjshYSYmZSBpbiB0YT9mPXRhOmY9eGE7Zm9yKGU9MDtlPGQubGVuZ3RoLTE7ZSsrKXt2YXIgZz1kW2VdO2lmKCEoZyBpbiBmKSlyZXR1cm47Zj1mW2ddfWQ9ZFtkLmxlbmd0aC0xXTtjPXlhJiZjPT09ImVzNiI/ZltkXTpudWxsO2I9YihjKTtiIT1udWxsJiYoYT96YSh0YSxkLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYobGFbZF09PT12b2lkIDAmJihhPU1hdGgucmFuZG9tKCkqMUU5Pj4+MCxsYVtkXT15YT94YS5TeW1ib2woZCk6IiRqc2NwJCIrYSsiJCIrZCksemEoZixsYVtkXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTtCYT1mdW5jdGlvbihhKXthPU1hdGgudHJ1bmMoYSl8fDA7YTwwJiYoYSs9dGhpcy5sZW5ndGgpO2lmKCEoYTwwfHxhPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXNbYV19OwpEYT1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbHx8dHlwZW9mIGEuc2l6ZSE9PSJudW1iZXIifHxhLnNpemU8MHx8dHlwZW9mIGEua2V5cyE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBhLmhhcyE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBzZXQtbGlrZSIpO307SGE9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGx8fHR5cGVvZiBhLm5leHQhPT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgaXRlcmF0b3IuIik7cmV0dXJuIGF9O0phPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIFNldCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiTWV0aG9kIG11c3QgYmUgY2FsbGVkIG9uIGFuIGluc3RhbmNlIG9mIFNldC4iKTt9O1NhPWZ1bmN0aW9uKGEsYil7dmFyIGM9UmEoIkNMT1NVUkVfRkxBR1MiKTthPWMmJmNbYV07cmV0dXJuIGEhPW51bGw/YTpifTsKUmE9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8uVWE7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYj1iW2FbY11dLGI9PW51bGwpcmV0dXJuIG51bGw7cmV0dXJuIGJ9O1hhPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiBiIT0ib2JqZWN0Ij9iOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmI6Im51bGwifTtfLllhPWZ1bmN0aW9uKGEpe3ZhciBiPVhhKGEpO3JldHVybiBiPT0iYXJyYXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn07Xy5aYT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4gYj09Im9iamVjdCImJmEhPW51bGx8fGI9PSJmdW5jdGlvbiJ9O18uaGI9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGJiKSYmYVtiYl18fChhW2JiXT0rK2JhYSl9OwpjYWE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLGFyZ3VtZW50cyl9O2RhYT1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Xy5pYj1mdW5jdGlvbihhLGIsYyl7Xy5pYj1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQudG9TdHJpbmcoKS5pbmRleE9mKCJuYXRpdmUgY29kZSIpIT0tMT9jYWE6ZGFhO3JldHVybiBfLmliLmFwcGx5KG51bGwsYXJndW1lbnRzKX07Xy5tYj1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTsKXy5uYj1mdW5jdGlvbihhLGIpe2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgYz1fLlVhLGQ7YS5sZW5ndGgmJihkPWEuc2hpZnQoKSk7KWEubGVuZ3RofHxiPT09dm9pZCAwP2NbZF0mJmNbZF0hPT1PYmplY3QucHJvdG90eXBlW2RdP2M9Y1tkXTpjPWNbZF09e306Y1tkXT1ifTtfLnBiPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtfLnFiPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLmlyPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5oQT1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19OwpfLkQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aCxmPWU8Mz9iOmQ9PT1udWxsP2Q9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpOmQsZztpZihSZWZsZWN0JiZ0eXBlb2YgUmVmbGVjdD09PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09PSJmdW5jdGlvbiIpZj1SZWZsZWN0LmRlY29yYXRlKGEsYixjLGQpO2Vsc2UgZm9yKHZhciBoPWEubGVuZ3RoLTE7aD49MDtoLS0paWYoZz1hW2hdKWY9KGU8Mz9nKGYpOmU+Mz9nKGIsYyxmKTpnKGIsYykpfHxmO2U+MyYmZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGIsYyxmKX07Xy5GPWZ1bmN0aW9uKGEsYil7aWYoUmVmbGVjdCYmdHlwZW9mIFJlZmxlY3Q9PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PT0iZnVuY3Rpb24iKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGEsYil9OwpfLnRiPWZ1bmN0aW9uKGEsYil7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxfLnRiKTtlbHNle2xldCBjPUVycm9yKCkuc3RhY2s7YyYmKHRoaXMuc3RhY2s9Yyl9YSYmKHRoaXMubWVzc2FnZT1TdHJpbmcoYSkpO2IhPT12b2lkIDAmJih0aGlzLmNhdXNlPWIpfTt1Yj1mdW5jdGlvbihhLGIpe3ZhciBjPV8udGIuY2FsbDthPWEuc3BsaXQoIiVzIik7dmFyIGQ9IiIsZT1hLmxlbmd0aC0xO2ZvcihsZXQgZj0wO2Y8ZTtmKyspZCs9YVtmXSsoZjxiLmxlbmd0aD9iW2ZdOiIlcyIpO2MuY2FsbChfLnRiLHRoaXMsZCthW2VdKX07emI9ZnVuY3Rpb24oYSl7cmV0dXJuKHlifHwoeWI9bmV3IFRleHRFbmNvZGVyKSkuZW5jb2RlKGEpfTtfLkJiPWZ1bmN0aW9uKGEpe18uVWEuc2V0VGltZW91dCgoKT0+e3Rocm93IGE7fSwwKX07Xy5FYj1mdW5jdGlvbihhLGIpe3JldHVybiBhLmxhc3RJbmRleE9mKGIsMCk9PTB9OwpfLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIF8uRmIoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMX07Xy5GYj1mdW5jdGlvbigpe3ZhciBhPV8uVWEubmF2aWdhdG9yO3JldHVybiBhJiYoYT1hLnVzZXJBZ2VudCk/YToiIn07Xy5LYj1mdW5jdGlvbihhKXtpZighSWJ8fCFfLkpiKXJldHVybiExO2ZvcihsZXQgYj0wO2I8Xy5KYi5icmFuZHMubGVuZ3RoO2IrKyl7bGV0IHticmFuZDpjfT1fLkpiLmJyYW5kc1tiXTtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfTtfLlJiPWZ1bmN0aW9uKGEpe3JldHVybiBfLkZiKCkuaW5kZXhPZihhKSE9LTF9O18uVGI9ZnVuY3Rpb24oKXtyZXR1cm4gSWI/ISFfLkpiJiZfLkpiLmJyYW5kcy5sZW5ndGg+MDohMX07Xy5VYj1mdW5jdGlvbigpe3JldHVybiBfLlRiKCk/ITE6Xy5SYigiT3BlcmEiKX07Xy5YYj1mdW5jdGlvbigpe3JldHVybiBfLlRiKCk/ITE6Xy5SYigiVHJpZGVudCIpfHxfLlJiKCJNU0lFIil9OwpfLiRiPWZ1bmN0aW9uKCl7cmV0dXJuIF8uVGIoKT9fLktiKCJNaWNyb3NvZnQgRWRnZSIpOl8uUmIoIkVkZy8iKX07Xy5kYz1mdW5jdGlvbigpe3JldHVybiBfLlJiKCJGaXJlZm94Iil8fF8uUmIoIkZ4aU9TIil9O18uamM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5SYigiU2FmYXJpIikmJiEoXy5oYygpfHwoXy5UYigpPzA6Xy5SYigiQ29hc3QiKSl8fF8uVWIoKXx8KF8uVGIoKT8wOl8uUmIoIkVkZ2UiKSl8fF8uJGIoKXx8KF8uVGIoKT9fLktiKCJPcGVyYSIpOl8uUmIoIk9QUiIpKXx8Xy5kYygpfHxfLlJiKCJTaWxrIil8fF8uUmIoIkFuZHJvaWQiKSl9O18uaGM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5UYigpP18uS2IoIkNocm9taXVtIik6KF8uUmIoIkNocm9tZSIpfHxfLlJiKCJDcmlPUyIpKSYmIShfLlRiKCk/MDpfLlJiKCJFZGdlIikpfHxfLlJiKCJTaWxrIil9O2tjPWZ1bmN0aW9uKCl7cmV0dXJuIEliPyEhXy5KYiYmISFfLkpiLnBsYXRmb3JtOiExfTsKbGM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5SYigiaVBob25lIikmJiFfLlJiKCJpUG9kIikmJiFfLlJiKCJpUGFkIil9O18ubWM9ZnVuY3Rpb24oKXtyZXR1cm4ga2MoKT9fLkpiLnBsYXRmb3JtPT09Im1hY09TIjpfLlJiKCJNYWNpbnRvc2giKX07Xy5uYz1mdW5jdGlvbigpe3JldHVybiBrYygpP18uSmIucGxhdGZvcm09PT0iV2luZG93cyI6Xy5SYigiV2luZG93cyIpfTtfLnFjPWZ1bmN0aW9uKGEsYixjKXtjPWM9PW51bGw/MDpjPDA/TWF0aC5tYXgoMCxhLmxlbmd0aCtjKTpjO2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHR5cGVvZiBiIT09InN0cmluZyJ8fGIubGVuZ3RoIT0xPy0xOmEuaW5kZXhPZihiLGMpO2Zvcig7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07Cl8ucmM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoLGU9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnNwbGl0KCIiKTphO2ZvcihsZXQgZj0wO2Y8ZDtmKyspZiBpbiBlJiZiLmNhbGwoYyxlW2ZdLGYsYSl9O18udmM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xYyhhLGIpPj0wfTtfLnljPWZ1bmN0aW9uKGEsYil7Yj1fLnFjKGEsYik7dmFyIGM7KGM9Yj49MCkmJl8ueGMoYSxiKTtyZXR1cm4gY307Xy54Yz1mdW5jdGlvbihhLGIpe0FycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhLGIsMSl9O18uQmM9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYj4wKXtsZXQgYz1BcnJheShiKTtmb3IobGV0IGQ9MDtkPGI7ZCsrKWNbZF09YVtkXTtyZXR1cm4gY31yZXR1cm5bXX07RmM9ZnVuY3Rpb24oYSl7RmNbIiAiXShhKTtyZXR1cm4gYX07Cl8uVWM9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj0wKTtHYygpO2I9SGNbYl07Zm9yKHZhciBjPUFycmF5KE1hdGguZmxvb3IoYS5sZW5ndGgvMykpLGQ9Yls2NF18fCIiLGU9MCxmPTA7ZTxhLmxlbmd0aC0yO2UrPTMpe3ZhciBnPWFbZV0saD1hW2UrMV0saz1hW2UrMl0sbT1iW2c+PjJdO2c9YlsoZyYzKTw8NHxoPj40XTtoPWJbKGgmMTUpPDwyfGs+PjZdO2s9YltrJjYzXTtjW2YrK109IiIrbStnK2gra31tPTA7az1kO3N3aXRjaChhLmxlbmd0aC1lKXtjYXNlIDI6bT1hW2UrMV0saz1iWyhtJjE1KTw8Ml18fGQ7Y2FzZSAxOmE9YVtlXSxjW2ZdPSIiK2JbYT4+Ml0rYlsoYSYzKTw8NHxtPj40XStrK2R9cmV0dXJuIGMuam9pbigiIil9O18uV2M9ZnVuY3Rpb24oYSl7dmFyIGI9W107Xy5WYyhhLGZ1bmN0aW9uKGMpe2IucHVzaChjKX0pO3JldHVybiBifTsKXy5WYz1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoZSl7Zm9yKDtkPGEubGVuZ3RoOyl7bGV0IGY9YS5jaGFyQXQoZCsrKSxnPVhjW2ZdO2lmKGchPW51bGwpcmV0dXJuIGc7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChmKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIitmKTt9cmV0dXJuIGV9R2MoKTtmb3IodmFyIGQ9MDs7KXtsZXQgZT1jKC0xKSxmPWMoMCksZz1jKDY0KSxoPWMoNjQpO2lmKGg9PT02NCYmZT09PS0xKWJyZWFrO2IoZTw8MnxmPj40KTtnIT02NCYmKGIoZjw8NCYyNDB8Zz4+MiksaCE9NjQmJmIoZzw8NiYxOTJ8aCkpfX07CkdjPWZ1bmN0aW9uKCl7aWYoIVhjKXtYYz17fTt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxiPVsiKy89IiwiKy8iLCItXz0iLCItXy4iLCItXyJdO2ZvcihsZXQgYz0wO2M8NTtjKyspe2xldCBkPWEuY29uY2F0KGJbY10uc3BsaXQoIiIpKTtIY1tjXT1kO2ZvcihsZXQgZT0wO2U8ZC5sZW5ndGg7ZSsrKXtsZXQgZj1kW2VdO1hjW2ZdPT09dm9pZCAwJiYoWGNbZl09ZSl9fX19O2ZhYT1mdW5jdGlvbihhKXtyZXR1cm4gZWFhW2FdfHwiIn07Xy5hZD1mdW5jdGlvbihhKXthPSRjLnRlc3QoYSk/YS5yZXBsYWNlKCRjLGZhYSk6YTthPWF0b2IoYSk7dmFyIGI9bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifTtfLmJkPWZ1bmN0aW9uKGEpe3JldHVybiBhIT1udWxsJiZhIGluc3RhbmNlb2YgVWludDhBcnJheX07Cl8ubGQ9ZnVuY3Rpb24oKXtyZXR1cm4gY2R8fChjZD1uZXcgXy5mZChudWxsLF8uaGQpKX07bWQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5xaDtpZihiPT1udWxsKWE9IiI7ZWxzZSBpZih0eXBlb2YgYj09PSJzdHJpbmciKWE9YjtlbHNle2xldCBjPSIiLGQ9MCxlPWIubGVuZ3RoLTEwMjQwO2Zvcig7ZDxlOyljKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYi5zdWJhcnJheShkLGQrPTEwMjQwKSk7Yys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGQ/Yi5zdWJhcnJheShkKTpiKTtiPWJ0b2EoYyk7YT1hLnFoPWJ9cmV0dXJuIGF9O18ucWQ9ZnVuY3Rpb24oYSl7cGQoXy5oZCk7dmFyIGI9YS5xaDtiPWI9PW51bGx8fF8uYmQoYik/Yjp0eXBlb2YgYj09PSJzdHJpbmciP18uYWQoYik6bnVsbDtyZXR1cm4gYj09bnVsbD9iOmEucWg9Yn07cGQ9ZnVuY3Rpb24oYSl7aWYoYSE9PV8uaGQpdGhyb3cgRXJyb3IoImlsbGVnYWwgZXh0ZXJuYWwgY2FsbGVyIik7fTsKZ2FhPWFzeW5jIGZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQcm9taXNlKChjLGQpPT57dmFyIGU9bmV3IE1lc3NhZ2VDaGFubmVsO2UucG9ydDIub25tZXNzYWdlPWY9PntjKGYuZGF0YSl9O3RyeXtlLnBvcnQxLnBvc3RNZXNzYWdlKGEsYil9Y2F0Y2goZil7ZChmKX19KX07Xy5yZD1mdW5jdGlvbihhLGIsYyl7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODJ8fChhLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mj17fSk7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODJbYl09Y307c2Q9ZnVuY3Rpb24oKXt2YXIgYT1FcnJvcigpO18ucmQoYSwic2V2ZXJpdHkiLCJpbmNpZGVudCIpO18uQmIoYSl9O18udGQ9ZnVuY3Rpb24oYSl7YT1FcnJvcihhKTtfLnJkKGEsInNldmVyaXR5Iiwid2FybmluZyIpO3JldHVybiBhfTsKXy54ZD1mdW5jdGlvbihhLGIpe2lmKGEhPW51bGwpe3ZhciBjPXVkPz8odWQ9e30pO3ZhciBkPWNbYV18fDA7ZD49Ynx8KGNbYV09ZCsxLHNkKCkpfX07eWQ9ZnVuY3Rpb24oYSxiPSExKXtyZXR1cm4gYiYmU3ltYm9sLmZvciYmYT9TeW1ib2wuZm9yKGEpOmEhPW51bGw/U3ltYm9sKGEpOlN5bWJvbCgpfTtfLkRkPWZ1bmN0aW9uKGEsYil7YVtfLkNkXXw9Yn07RmQ9ZnVuY3Rpb24oYSl7aWYoNCZhKXJldHVybiA1MTImYT81MTI6MTAyNCZhPzEwMjQ6MH07Xy5HZD1mdW5jdGlvbihhKXtfLkRkKGEsMzQpO3JldHVybiBhfTtIZD1mdW5jdGlvbihhKXtfLkRkKGEsMzIpO3JldHVybiBhfTtfLklkPWZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aD09MD9fLmxkKCk6bmV3IF8uZmQoYSxfLmhkKX07Xy5RZD1mdW5jdGlvbihhKXtyZXR1cm4gYVtMZF09PT1NZH07Cl8uU2Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PXZvaWQgMD9hLkFoIT09Xy5SZCYmISEoMiYoYS5MaVtfLkNkXXwwKSk6ISEoMiZiKSYmYS5BaCE9PV8uUmR9O18uVmQ9ZnVuY3Rpb24oYSxiKXthLkFoPWI/Xy5SZDp2b2lkIDB9O18uV2Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9O18uWGQ9ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsKWlmKHR5cGVvZiBhPT09InN0cmluZyIpYT1hP25ldyBfLmZkKGEsXy5oZCk6Xy5sZCgpO2Vsc2UgaWYoYS5jb25zdHJ1Y3RvciE9PV8uZmQpaWYoXy5iZChhKSlhPWEubGVuZ3RoP25ldyBfLmZkKG5ldyBVaW50OEFycmF5KGEpLF8uaGQpOl8ubGQoKTtlbHNle2lmKCFiKXRocm93IEVycm9yKCk7YT12b2lkIDB9cmV0dXJuIGF9O18uWWQ9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYiE9PSJudW1iZXIifHxiPDB8fGI+PWEubGVuZ3RoKXRocm93IEVycm9yKCk7fTsKWmQ9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYiE9PSJudW1iZXIifHxiPDB8fGI+YS5sZW5ndGgpdGhyb3cgRXJyb3IoKTt9O18uJGQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWImMTI4PzA6LTEsZT1hLmxlbmd0aCxmO2lmKGY9ISFlKWY9YVtlLTFdLGY9ZiE9bnVsbCYmdHlwZW9mIGY9PT0ib2JqZWN0IiYmZi5jb25zdHJ1Y3Rvcj09PU9iamVjdDt2YXIgZz1lKyhmPy0xOjApO2ZvcihiPWImMTI4PzE6MDtiPGc7YisrKWMoYi1kLGFbYl0pO2lmKGYpe2E9YVtlLTFdO2ZvcihsZXQgaCBpbiBhKV8uV2QoYSxoKSYmIWlzTmFOKGgpJiZjKCtoLGFbaF0pfX07Xy5iZT1mdW5jdGlvbihhKXtyZXR1cm4gYSYxMjg/YWU6dm9pZCAwfTtfLmNlPWZ1bmN0aW9uKGEpe2EuaFQ9ITA7cmV0dXJuIGF9OwpfLmRlPWZ1bmN0aW9uKGEpe2lmKGhhYShhKSl7aWYoIS9eXHMqKD86LT9bMS05XVxkKnwwKT9ccyokLy50ZXN0KGEpKXRocm93IEVycm9yKFN0cmluZyhhKSk7fWVsc2UgaWYoaWFhKGEpJiYhTnVtYmVyLmlzU2FmZUludGVnZXIoYSkpdGhyb3cgRXJyb3IoU3RyaW5nKGEpKTtyZXR1cm4gQmlnSW50KGEpfTtfLmhlPWZ1bmN0aW9uKGEpe3ZhciBiPWE+Pj4wO18uZWU9YjtfLmdlPShhLWIpLzQyOTQ5NjcyOTY+Pj4wfTtfLmtlPWZ1bmN0aW9uKGEpe2lmKGE8MCl7Xy5oZSgwLWEpO2E9Xy5lZTt2YXIgYj1fLmdlO2I9fmI7YT9hPX5hKzE6Yis9MTtsZXQgW2MsZF09W2EsYl07Xy5lZT1jPj4+MDtfLmdlPWQ+Pj4wfWVsc2UgXy5oZShhKX07Xy5tZT1mdW5jdGlvbihhKXt2YXIgYj1fLmxlfHwoXy5sZT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKSk7Yi5zZXRGbG9hdDY0KDAsK2EsITApO18uZWU9Yi5nZXRVaW50MzIoMCwhMCk7Xy5nZT1iLmdldFVpbnQzMig0LCEwKX07Cm9lPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yio0Mjk0OTY3Mjk2KyhhPj4+MCk7cmV0dXJuIE51bWJlci5pc1NhZmVJbnRlZ2VyKGMpP2M6Xy5uZShhLGIpfTtfLnFlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uZGUoQmlnSW50LmFzSW50Tig2NCwoQmlnSW50LmFzVWludE4oMzIsQmlnSW50KGIpKTw8QmlnSW50KDMyKSkrQmlnSW50LmFzVWludE4oMzIsQmlnSW50KGEpKSkpfTtfLm5lPWZ1bmN0aW9uKGEsYil7Yj4+Pj0wO2E+Pj49MDt2YXIgYztiPD0yMDk3MTUxP2M9IiIrKDQyOTQ5NjcyOTYqYithKTpjPSIiKyhCaWdJbnQoYik8PEJpZ0ludCgzMil8QmlnSW50KGEpKTtyZXR1cm4gY307Xy5yZT1mdW5jdGlvbihhLGIpe3ZhciBjO2ImMjE0NzQ4MzY0OD9jPSIiKyhCaWdJbnQoYnwwKTw8QmlnSW50KDMyKXxCaWdJbnQoYT4+PjApKTpjPV8ubmUoYSxiKTtyZXR1cm4gY307Cl8uc2U9ZnVuY3Rpb24oYSl7YS5sZW5ndGg8MTY/Xy5rZShOdW1iZXIoYSkpOihhPUJpZ0ludChhKSxfLmVlPU51bWJlcihhJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj4wLF8uZ2U9TnVtYmVyKGE+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKSl9O18udGU9ZnVuY3Rpb24oYSxiPWB1bmV4cGVjdGVkIHZhbHVlICR7YX0hYCl7dGhyb3cgRXJyb3IoYik7fTtfLnVlPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciIpdGhyb3cgRXJyb3IoYFZhbHVlIG9mIGZsb2F0L2RvdWJsZSBmaWVsZCBtdXN0IGJlIGEgbnVtYmVyLCBmb3VuZCAke3R5cGVvZiBhfTogJHthfWApO3JldHVybiBhfTtfLnZlPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuIGE7aWYoYT09PSJOYU4ifHxhPT09IkluZmluaXR5Inx8YT09PSItSW5maW5pdHkiKXJldHVybiBOdW1iZXIoYSl9Owp3ZT1mdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHwidW5rbm93biB0eXBlIG5hbWUifTtfLnplPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09ImJvb2xlYW4iKXRocm93IEVycm9yKGBFeHBlY3RlZCBib29sZWFuIGJ1dCBnb3QgJHtYYShhKX06ICR7YX1gKTtyZXR1cm4gYX07Xy5BZT1mdW5jdGlvbihhKXtpZihhPT1udWxsfHx0eXBlb2YgYT09PSJib29sZWFuIilyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiEhYX07Xy5DZT1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJpZ2ludCI6cmV0dXJuITA7Y2FzZSAibnVtYmVyIjpyZXR1cm4gQmUoYSk7Y2FzZSAic3RyaW5nIjpyZXR1cm4gamFhLnRlc3QoYSk7ZGVmYXVsdDpyZXR1cm4hMX19O18uRGU9ZnVuY3Rpb24oYSl7aWYoIUJlKGEpKXRocm93IF8udGQoImVudW0iKTtyZXR1cm4gYXwwfTsKXy5FZT1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD9hOkJlKGEpP2F8MDp2b2lkIDB9O18uRmU9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ibnVtYmVyIil0aHJvdyBfLnRkKCJpbnQzMiIpO2lmKCFCZShhKSl0aHJvdyBfLnRkKCJpbnQzMiIpO3JldHVybiBhfDB9O18uR2U9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJzdHJpbmciJiZhKWE9K2E7ZWxzZSBpZih0eXBlb2YgYSE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4gQmUoYSk/YXwwOnZvaWQgMH07Xy5IZT1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJudW1iZXIiKXRocm93IF8udGQoInVpbnQzMiIpO2lmKCFCZShhKSl0aHJvdyBfLnRkKCJ1aW50MzIiKTtyZXR1cm4gYT4+PjB9OwpfLkplPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIiYmYSlhPSthO2Vsc2UgaWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm47cmV0dXJuIEJlKGEpP2E+Pj4wOnZvaWQgMH07Cl8uUWU9ZnVuY3Rpb24oYSxiKXtiPz8oYj0xMDI0KTtpZighXy5DZShhKSl0aHJvdyBfLnRkKCJpbnQ2NCIpO3ZhciBjPXR5cGVvZiBhO3N3aXRjaChiKXtjYXNlIDUxMjpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gXy5LZShhKTtjYXNlICJiaWdpbnQiOnJldHVybiBTdHJpbmcoKDAsXy5MZSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIE1lKGEpfWNhc2UgMTAyNDpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gTmUoYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gXy5kZSgoMCxfLkxlKSg2NCxhKSk7ZGVmYXVsdDpyZXR1cm4gT2UoYSl9Y2FzZSAwOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiBfLktlKGEpO2Nhc2UgImJpZ2ludCI6cmV0dXJuIF8uZGUoKDAsXy5MZSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIF8uUGUoYSl9ZGVmYXVsdDpyZXR1cm4gXy50ZShiLCJVbmtub3duIGZvcm1hdCByZXF1ZXN0ZWQgdHlwZSBmb3IgaW50NjQiKX19OwpfLlBlPWZ1bmN0aW9uKGEpe18uQ2UoYSk7YT0oMCxfLlJlKShhKTtpZighKDAsXy5VZSkoYSkpe18ua2UoYSk7dmFyIGI9Xy5lZSxjPV8uZ2U7aWYoYT1jJjIxNDc0ODM2NDgpYj1+YisxPj4+MCxjPX5jPj4+MCxiPT0wJiYoYz1jKzE+Pj4wKTtiPW9lKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9O18uVmU9ZnVuY3Rpb24oYSl7Xy5DZShhKTthPSgwLF8uUmUpKGEpO2E+PTAmJigwLF8uVWUpKGEpfHwoXy5rZShhKSxhPW9lKF8uZWUsXy5nZSkpO3JldHVybiBhfTtNZT1mdW5jdGlvbihhKXtfLkNlKGEpO2E9KDAsXy5SZSkoYSk7KDAsXy5VZSkoYSk/YT1TdHJpbmcoYSk6KF8ua2UoYSksYT1fLnJlKF8uZWUsXy5nZSkpO3JldHVybiBhfTsKXy5LZT1mdW5jdGlvbihhKXtfLkNlKGEpO3ZhciBiPSgwLF8uUmUpKE51bWJlcihhKSk7aWYoKDAsXy5VZSkoYikpcmV0dXJuIFN0cmluZyhiKTtiPWEuaW5kZXhPZigiLiIpO2IhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxiKSk7Yj1hLmxlbmd0aDsoYVswXT09PSItIj9iPDIwfHxiPT09MjAmJmE8PSItOTIyMzM3MjAzNjg1NDc3NTgwOCI6YjwxOXx8Yj09PTE5JiZhPD0iOTIyMzM3MjAzNjg1NDc3NTgwNyIpfHwoXy5zZShhKSxhPV8ucmUoXy5lZSxfLmdlKSk7cmV0dXJuIGF9O05lPWZ1bmN0aW9uKGEpe3ZhciBiPSgwLF8uUmUpKE51bWJlcihhKSk7aWYoKDAsXy5VZSkoYikpcmV0dXJuIF8uZGUoYik7Yj1hLmluZGV4T2YoIi4iKTtiIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYikpO3JldHVybiBfLmRlKCgwLF8uTGUpKDY0LEJpZ0ludChhKSkpfTtPZT1mdW5jdGlvbihhKXtyZXR1cm4oMCxfLlVlKShhKT9fLmRlKF8uUGUoYSkpOl8uZGUoTWUoYSkpfTsKXy5XZT1mdW5jdGlvbihhKXtfLkNlKGEpO3ZhciBiPSgwLF8uUmUpKE51bWJlcihhKSk7aWYoKDAsXy5VZSkoYikmJmI+PTApcmV0dXJuIFN0cmluZyhiKTtiPWEuaW5kZXhPZigiLiIpO2IhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxiKSk7YVswXT09PSItIj9iPSExOihiPWEubGVuZ3RoLGI9YjwyMD8hMDpiPT09MjAmJmE8PSIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpO2J8fChfLnNlKGEpLGE9Xy5uZShfLmVlLF8uZ2UpKTtyZXR1cm4gYX07Xy5YZT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtpZihhPT1udWxsKXJldHVybiBhO2lmKGI9PT0iYmlnaW50IilyZXR1cm4gU3RyaW5nKCgwLF8uTGUpKDY0LGEpKTtpZihfLkNlKGEpKXJldHVybiBiPT09InN0cmluZyI/Xy5LZShhKTpfLlBlKGEpfTsKXy5ZZT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtpZihhPT1udWxsKXJldHVybiBhO2lmKGI9PT0iYmlnaW50IilyZXR1cm4gXy5kZSgoMCxfLkxlKSg2NCxhKSk7aWYoXy5DZShhKSlyZXR1cm4gYj09PSJzdHJpbmciP05lKGEpOk9lKGEpfTtfLiRlPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO2lmKGE9PW51bGwpcmV0dXJuIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoKDAsXy5aZSkoNjQsYSkpO2lmKF8uQ2UoYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj9fLldlKGEpOl8uVmUoYSl9O18uYWY9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTt2YXIgYj10eXBlb2YgYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIFN0cmluZygoMCxfLkxlKSg2NCxhKSk7aWYoXy5DZShhKSl7aWYoYj09PSJzdHJpbmciKXJldHVybiBfLktlKGEpO2lmKGI9PT0ibnVtYmVyIilyZXR1cm4gXy5QZShhKX19OwpfLmJmPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoKTtyZXR1cm4gYX07Xy5jZj1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIGF9O18uZGY9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGx8fHR5cGVvZiBhPT09InN0cmluZyI/YTp2b2lkIDB9O2VmPWZ1bmN0aW9uKGEsYil7aWYoIShhIGluc3RhbmNlb2YgYikpdGhyb3cgRXJyb3IoYEV4cGVjdGVkIGluc3RhbmNlb2YgJHt3ZShiKX0gYnV0IGdvdCAke2EmJndlKGEuY29uc3RydWN0b3IpfWApO3JldHVybiBhfTtoZj1mdW5jdGlvbihhLGIsYyxkKXtpZihhIT1udWxsJiZfLlFkKGEpKXJldHVybiBhO2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBjP2QmMj9iW18uZmZdfHwoYltfLmZmXT1fLmdmKGIpKTpuZXcgYjp2b2lkIDA7Yz1hW18uQ2RdfDA7ZD1jfGQmMzJ8ZCYyO2QhPT1jJiYoYVtfLkNkXT1kKTtyZXR1cm4gbmV3IGIoYSl9OwpfLmdmPWZ1bmN0aW9uKGEpe2E9bmV3IGE7Xy5HZChhLkxpKTtyZXR1cm4gYX07amY9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O18ubGY9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5wYihfLmtmKTtyZXR1cm4gYj9hW2JdOnZvaWQgMH07Xy5tZj1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYyBpbiBhKV8uV2QoYSxjKSYmIWlzTmFOKGMpJiZiKGEsK2MsYVtjXSl9O2thYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5uZjtfLm1mKGEsKGMsZCxlKT0+e2JbZF09Wy4uLmVdfSk7Yi5PQj1hLk9CO3JldHVybiBifTtfLnBmPWZ1bmN0aW9uKGEsYixjKXtpZihfLnBiKF8ub2YpJiZfLnBiKF8ua2YpJiZjPT09Xy5vZiYmKGE9YS5MaSxjPWFbXy5rZl0pJiYoYz1jLk9CKSl0cnl7YyhhLGIsbGFhKX1jYXRjaChkKXtfLkJiKGQpfX07Xy5xZj1mdW5jdGlvbihhLGIpe3ZhciBjPV8ucGIoXy5rZik7YyYmYVtjXT8uW2JdIT1udWxsJiZfLnhkKG1hYSwzKX07Cm9hYT1mdW5jdGlvbihhLGIpe2I8MTAwfHxfLnhkKG5hYSwxKX07CnNmPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQhPT12b2lkIDA7ZD0hIWQ7dmFyIGY9Xy5wYihfLmtmKSxnOyFlJiZmJiYoZz1hW2ZdKSYmXy5tZihnLG9hYSk7Zj1bXTt2YXIgaD1hLmxlbmd0aDtnPTQyOTQ5NjcyOTU7dmFyIGs9ITEsbT0hIShiJjY0KSxwPW0/YiYxMjg/MDotMTp2b2lkIDA7aWYoIShiJjEpKXt2YXIgcT1oJiZhW2gtMV07cSE9bnVsbCYmdHlwZW9mIHE9PT0ib2JqZWN0IiYmcS5jb25zdHJ1Y3Rvcj09PU9iamVjdD8oaC0tLGc9aCk6cT12b2lkIDA7IW18fGImMTI4fHxlfHwoaz0hMCxnPShyZj8/amYpKGctcCxwLGEscSx2b2lkIDApK3ApfWI9dm9pZCAwO2Zvcih2YXIgdT0wO3U8aDt1Kyspe2xldCB4PWFbdV07aWYoeCE9bnVsbCYmKHg9Yyh4LGQpKSE9bnVsbClpZihtJiZ1Pj1nKXtsZXQgej11LXA7KGI/PyhiPXt9KSlbel09eH1lbHNlIGZbdV09eH1pZihxKWZvcihsZXQgeCBpbiBxKXtpZighXy5XZChxLHgpKWNvbnRpbnVlO2g9cVt4XTtpZihoPT1udWxsfHwKKGg9YyhoLGQpKT09bnVsbCljb250aW51ZTt1PSt4O2xldCB6O20mJiFOdW1iZXIuaXNOYU4odSkmJih6PXUrcCk8Zz9mW3pdPWg6KGI/PyhiPXt9KSlbeF09aH1iJiYoaz9mLnB1c2goYik6ZltnXT1iKTtlJiZfLnBiKF8ua2YpJiYoYT1fLmxmKGEpKSYmYSBpbnN0YW5jZW9mIF8ubmYmJihmW18ua2ZdPWthYShhKSk7cmV0dXJuIGZ9Owp1Zj1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLnRmKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXtsZXQgYj1hW18uQ2RdfDA7cmV0dXJuIGEubGVuZ3RoPT09MCYmYiYxP3ZvaWQgMDpzZihhLGIsdWYpfWlmKGEhPW51bGwmJl8uUWQoYSkpcmV0dXJuIHZmKGEpO2lmKGEgaW5zdGFuY2VvZiBfLmZkKXJldHVybiBtZChhKTtyZXR1cm59cmV0dXJuIGF9O18ud2Y9ZnVuY3Rpb24oYSxiKXtpZihiKXtyZj1iPT1udWxsfHxiPT09amZ8fGJbcGFhXSE9PXFhYT9qZjpiO3RyeXtyZXR1cm4gdmYoYSl9ZmluYWxseXtyZj12b2lkIDB9fXJldHVybiB2ZihhKX07dmY9ZnVuY3Rpb24oYSl7YT1hLkxpO3JldHVybiBzZihhLGFbXy5DZF18MCx1Zil9OwpfLnpmPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIF8ueGZ8fChfLnhmPVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIGE+MD92b2lkIDA6YT09PTA/eWZ8fCh5Zj1bMCx2b2lkIDBdKTpbLWEsdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLGFdO2Nhc2UgIm9iamVjdCI6cmV0dXJuIGF9fTtfLkRmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIENmKGEsYlswXSxiWzFdKX07CkNmPWZ1bmN0aW9uKGEsYixjLGQ9MCl7aWYoYT09bnVsbCl7dmFyIGU9MzI7Yz8oYT1bY10sZXw9MTI4KTphPVtdO2ImJihlPWUmLTE2NzYwODMzfChiJjEwMjMpPDwxNCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShhKSl0aHJvdyBFcnJvcigibmFyciIpO2U9YVtfLkNkXXwwO2lmKEVmJiYxJmUpdGhyb3cgRXJyb3IoInJmYXJyIik7MjA0OCZlJiYhKDImZSkmJnJhYSgpO2lmKGUmMjU2KXRocm93IEVycm9yKCJmYXJyIik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJihhW18uQ2RdPWV8ZCksYTtpZihjJiYoZXw9MTI4LGMhPT1hWzBdKSl0aHJvdyBFcnJvcigibWlkIik7YTp7Yz1hO2V8PTY0O3ZhciBmPWMubGVuZ3RoO2lmKGYpe3ZhciBnPWYtMTtsZXQgaz1jW2ddO2lmKGshPW51bGwmJnR5cGVvZiBrPT09Im9iamVjdCImJmsuY29uc3RydWN0b3I9PT1PYmplY3Qpe2I9ZSYxMjg/MDotMTtnLT1iO2lmKGc+PTEwMjQpdGhyb3cgRXJyb3IoInB2dGxtdCIpO2Zvcih2YXIgaCBpbiBrKXtpZighXy5XZChrLApoKSljb250aW51ZTtmPStoO2lmKGY8ZyljW2YrYl09a1toXSxkZWxldGUga1toXTtlbHNlIGJyZWFrfWU9ZSYtMTY3NjA4MzN8KGcmMTAyMyk8PDE0O2JyZWFrIGF9fWlmKGIpe2g9TWF0aC5tYXgoYixmLShlJjEyOD8wOi0xKSk7aWYoaD4xMDI0KXRocm93IEVycm9yKCJzcHZ0Iik7ZT1lJi0xNjc2MDgzM3woaCYxMDIzKTw8MTR9fX1hW18uQ2RdPWV8NjR8ZDtyZXR1cm4gYX07cmFhPWZ1bmN0aW9uKCl7aWYoRWYpdGhyb3cgRXJyb3IoImNhcnIiKTtfLnhkKHNhYSw1KX07CnRhYT1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGM9YVtfLkNkXXwwO2EubGVuZ3RoPT09MCYmYyYxP2E9dm9pZCAwOmMmMnx8KCFifHw0MDk2JmN8fDE2JmM/YT1fLkZmKGEsYywhMSxiJiYhKGMmMTYpKTooXy5EZChhLDM0KSxjJjQmJk9iamVjdC5mcmVlemUoYSkpKTtyZXR1cm4gYX1pZihhIT1udWxsJiZfLlFkKGEpKXJldHVybiBiPWEuTGksYz1iW18uQ2RdfDAsXy5TZChhLGMpP2E6Xy5HZihhLGIsYyk/SGYoYSxiKTpfLkZmKGIsYyk7aWYoYSBpbnN0YW5jZW9mIF8uZmQpcmV0dXJuIGF9O0hmPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJl8uVmQoYSwhMCk7YS54Qj1fLlJkO3JldHVybiBhfTtfLkZmPWZ1bmN0aW9uKGEsYixjLGQpe2Q/PyhkPSEhKDM0JmIpKTthPXNmKGEsYix0YWEsZCk7ZD0zMjtjJiYoZHw9Mik7Yj1iJjE2NzY5MjE3fGQ7YVtfLkNkXT1iO3JldHVybiBhfTsKXy5JZj1mdW5jdGlvbihhKXt2YXIgYj1hLkxpLGM9YltfLkNkXXwwO3JldHVybiBfLlNkKGEsYyk/Xy5HZihhLGIsYyk/SGYoYSxiLCEwKTpuZXcgYS5jb25zdHJ1Y3RvcihfLkZmKGIsYywhMSkpOmF9O18uSmY9ZnVuY3Rpb24oYSl7aWYoYS5BaCE9PV8uUmQpcmV0dXJuITE7dmFyIGI9YS5MaTtiPV8uRmYoYixiW18uQ2RdfDApO18uRGQoYiwyMDQ4KTthLkxpPWI7Xy5WZChhLCExKTthLnhCPXZvaWQgMDtyZXR1cm4hMH07Xy5MZj1mdW5jdGlvbihhKXtpZighXy5KZihhKSYmXy5TZChhLGEuTGlbXy5DZF18MCkpdGhyb3cgRXJyb3IoKTt9O18uTWY9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uQ2RdfDApO2ImMzImJiEoYiY0MDk2KSYmKGFbXy5DZF09Ynw0MDk2KX07Xy5HZj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGMmMj8hMDpjJjMyJiYhKGMmNDA5Nik/KGJbXy5DZF09Y3wyLF8uVmQoYSwhMCksITApOiExfTsKXy5PZj1mdW5jdGlvbihhLGIsYyxkLGUpe09iamVjdC5pc0V4dGVuc2libGUoYSk7Yj1fLk5mKGEuTGksYixjLGUpO2lmKGIhPT1udWxsfHxkJiZhLnhCIT09Xy5SZClyZXR1cm4gYn07Xy5OZj1mdW5jdGlvbihhLGIsYyxkKXtpZihiPT09LTEpcmV0dXJuIG51bGw7dmFyIGU9YisoYz8wOi0xKSxmPWEubGVuZ3RoLTE7aWYoIShmPDErKGM/MDotMSkpKXtpZihlPj1mKXt2YXIgZz1hW2ZdO2lmKGchPW51bGwmJnR5cGVvZiBnPT09Im9iamVjdCImJmcuY29uc3RydWN0b3I9PT1PYmplY3Qpe2M9Z1tiXTt2YXIgaD0hMH1lbHNlIGlmKGU9PT1mKWM9ZztlbHNlIHJldHVybn1lbHNlIGM9YVtlXTtpZihkJiZjIT1udWxsKXtkPWQoYyk7aWYoZD09bnVsbClyZXR1cm4gZDtpZighT2JqZWN0LmlzKGQsYykpcmV0dXJuIGg/Z1tiXT1kOmFbZV09ZCxkfXJldHVybiBjfX07Xy5RZj1mdW5jdGlvbihhLGIsYyxkKXtfLkxmKGEpO3ZhciBlPWEuTGk7Xy5QZihlLGVbXy5DZF18MCxiLGMsZCk7cmV0dXJuIGF9OwpfLlBmPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YysoZT8wOi0xKSxnPWEubGVuZ3RoLTE7aWYoZz49MSsoZT8wOi0xKSYmZj49Zyl7bGV0IGg9YVtnXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXJldHVybiBoW2NdPWQsYn1pZihmPD1nKXJldHVybiBhW2ZdPWQsYjtkIT09dm9pZCAwJiYoZz0oYj8/KGI9YVtfLkNkXXwwKSk+PjE0JjEwMjN8fDUzNjg3MDkxMixjPj1nP2QhPW51bGwmJihhW2crKGU/MDotMSldPXtbY106ZH0pOmFbZl09ZCk7cmV0dXJuIGJ9O18uU2Y9ZnVuY3Rpb24oYSxiLGMsZCl7YT1hLkxpO3JldHVybiBfLlJmKGEsYVtfLkNkXXwwLGIsYyxkKSE9PXZvaWQgMH07Xy5XZj1mdW5jdGlvbihhLGIpe3JldHVybiBfLlZmKGEsYVtfLkNkXXwwLGIpfTtfLllmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkxpO3JldHVybiBfLlhmKGEsZCxkW18uQ2RdfDAsYixjLDMpLmxlbmd0aH07Cl8uJGY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtfLlpmKGEsYixjLHZvaWQgMCxlLGQsMSk7cmV0dXJuIGF9O18uY2c9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dWFhPzI6NH07Cl8uamc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9YS5MaSxrPWhbXy5DZF18MDtkPV8uU2QoYSxrKT8xOmQ7ZT0hIWV8fGQ9PT0zO2Q9PT0yJiZfLkpmKGEpJiYoaD1hLkxpLGs9aFtfLkNkXXwwKTt2YXIgbT1kZyhoLGIsZykscD1tPT09Xy5lZz83Om1bXy5DZF18MCxxPWZnKHAsayk7dmFyIHU9cTs0JnU/Zj09bnVsbD9hPSExOighZSYmZj09PTAmJig1MTImdXx8MTAyNCZ1KSYmKGEuY29uc3RydWN0b3JbZ2ddPShhLmNvbnN0cnVjdG9yW2dnXXwwKSsxKTw1JiZzZCgpLGE9Zj09PTA/ITE6IShmJnUpKTphPSEwO2lmKGEpezQmcSYmKG09Wy4uLm1dLHA9MCxxPWhnKHEsayksaz1fLlBmKGgsayxiLG0sZykpO2xldCB4PXU9MDtmb3IoO3U8bS5sZW5ndGg7dSsrKXtsZXQgej1jKG1bdV0pO3ohPW51bGwmJihtW3grK109eil9eDx1JiYobS5sZW5ndGg9eCk7Yz0ocXw0KSYtNTEzO3E9YyY9LTEwMjU7ZiYmKHF8PWYpO3EmPS00MDk3fXEhPT1wJiYobVtfLkNkXT1xLDImcSYmT2JqZWN0LmZyZWV6ZShtKSk7CnJldHVybiBtPWlnKG0scSxoLGssYixnLGQsYSxlKX07aWc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGspe3ZhciBtPWI7Zz09PTF8fChnIT09ND8wOjImYnx8ISgxNiZiKSYmMzImZCk/a2coYil8fChifD0hYS5sZW5ndGh8fGgmJiEoNDA5NiZiKXx8MzImZCYmISg0MDk2JmJ8fDE2JmIpPzI6MjU2LGIhPT1tJiYoYVtfLkNkXT1iKSxPYmplY3QuZnJlZXplKGEpKTooZz09PTImJmtnKGIpJiYoYT1bLi4uYV0sbT0wLGI9aGcoYixkKSxkPV8uUGYoYyxkLGUsYSxmKSksa2coYil8fChrfHwoYnw9MTYpLGIhPT1tJiYoYVtfLkNkXT1iKSkpOzImYnx8ISg0MDk2JmJ8fDE2JmIpfHxfLk1mKGMsZCk7cmV0dXJuIGF9O2RnPWZ1bmN0aW9uKGEsYixjKXthPV8uTmYoYSxiLGMpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6Xy5lZ307Zmc9ZnVuY3Rpb24oYSxiKXsyJmImJihhfD0yKTtyZXR1cm4gYXwxfTtrZz1mdW5jdGlvbihhKXtyZXR1cm4hISgyJmEpJiYhISg0JmEpfHwhISgyNTYmYSl9OwpfLmxnPWZ1bmN0aW9uKGEpe3JldHVybiBfLlhkKGEsITApfTtfLm1nPWZ1bmN0aW9uKGEsYil7YT1fLk9mKGEsYix2b2lkIDAsdm9pZCAwLF8ubGcpO3JldHVybiBhPT1udWxsP18ubGQoKTphfTsKXy5uZz1mdW5jdGlvbihhLGIsYyxkKXtfLkxmKGEpO3ZhciBlPWEuTGksZj1lW18uQ2RdfDA7aWYoYz09bnVsbClyZXR1cm4gXy5QZihlLGYsYiksYTtpZighQXJyYXkuaXNBcnJheShjKSl0aHJvdyBfLnRkKCk7dmFyIGc9Yz09PV8uZWc/NzpjW18uQ2RdfDAsaD1nLGs9a2coZyksbT1rfHxPYmplY3QuaXNGcm96ZW4oYyk7a3x8KGc9MCk7bXx8KGM9Wy4uLmNdLGg9MCxnPWhnKGcsZiksbT0hMSk7Z3w9NTtrPUZkKGcpPz8xMDI0O2d8PWs7Zm9yKGxldCBwPTA7cDxjLmxlbmd0aDtwKyspe2xldCBxPWNbcF0sdT1kKHEsayk7T2JqZWN0LmlzKHEsdSl8fChtJiYoYz1bLi4uY10saD0wLGc9aGcoZyxmKSxtPSExKSxjW3BdPXUpfWchPT1oJiYobSYmKGM9Wy4uLmNdLGc9aGcoZyxmKSksY1tfLkNkXT1nKTtfLlBmKGUsZixiLGMpO3JldHVybiBhfTsKb2c9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5MZihhKTt2YXIgZT1hLkxpO18uUGYoZSxlW18uQ2RdfDAsYiwoZD09PSIwIj9OdW1iZXIoYyk9PT0wOmM9PT1kKT92b2lkIDA6Yyk7cmV0dXJuIGF9O18uVmY9ZnVuY3Rpb24oYSxiLGMpe2lmKGImMil0aHJvdyBFcnJvcigpO3ZhciBkPV8uYmUoYiksZT1kZyhhLGMsZCksZj1lPT09Xy5lZz83OmVbXy5DZF18MCxnPWZnKGYsYik7aWYoMiZnfHxrZyhnKXx8MTYmZylnPT09Znx8a2coZyl8fChlW18uQ2RdPWcpLGU9Wy4uLmVdLGY9MCxnPWhnKGcsYiksXy5QZihhLGIsYyxlLGQpO2cmPS0xMztnIT09ZiYmKGVbXy5DZF09Zyk7cmV0dXJuIGV9O18uc2c9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5MZihhKTthPWEuTGk7dmFyIGU9YVtfLkNkXXwwO2lmKGQ9PW51bGwpe2xldCBmPXBnKGEpO2lmKHFnKGYsYSxlLGMpPT09YilmLnNldChjLDApO2Vsc2UgcmV0dXJufWVsc2UgZT1fLnJnKGEsZSxjLGIpO18uUGYoYSxlLGIsZCl9OwpfLnRnPWZ1bmN0aW9uKGEsYixjKXthPWEuTGk7cmV0dXJuIHFnKHBnKGEpLGEsdm9pZCAwLGIpPT09Yz9jOi0xfTtwZz1mdW5jdGlvbihhKXtyZXR1cm4gYVt1Z10/PyhhW3VnXT1uZXcgTWFwKX07Xy5yZz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9PT0wfHxjLmluY2x1ZGVzKGQpO3ZhciBmPXBnKGEpLGc9cWcoZixhLGIsYyxlKTtnIT09ZCYmKGcmJihiPV8uUGYoYSxiLGcsdm9pZCAwLGUpKSxmLnNldChjLGQpKTtyZXR1cm4gYn07cWc9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLmdldChkKTtpZihmIT1udWxsKXJldHVybiBmO2Y9MDtmb3IobGV0IGc9MDtnPGQubGVuZ3RoO2crKyl7bGV0IGg9ZFtnXTtfLk5mKGIsaCxlKSE9bnVsbCYmKGYhPT0wJiYoYz1fLlBmKGIsYyxmLHZvaWQgMCxlKSksZj1oKX1hLnNldChkLGYpO3JldHVybiBmfTsKXy53Zz1mdW5jdGlvbihhLGIsYyxkLGUpe18uTGYoYSk7YT1hLkxpO3ZhciBmPWFbXy5DZF18MCxnPV8uTmYoYSxjLGUpO2Q9ZD09PV8udmc7Yj1oZihnLGIsIWQsZik7aWYoIWR8fGIpcmV0dXJuIGI9Xy5JZihiKSxnIT09YiYmKGY9Xy5QZihhLGYsYyxiLGUpLF8uTWYoYSxmKSksYn07Xy56Zz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVtfLkNkXXwwLGU9Xy5iZShkKSxmPV8uTmYoYSxjLGUpO2lmKGYhPW51bGwmJl8uUWQoZikpe2lmKCFfLlNkKGYpKXJldHVybiBfLkpmKGYpLGYuTGk7dmFyIGc9Zi5MaX1lbHNlIEFycmF5LmlzQXJyYXkoZikmJihnPWYpO2lmKGcpe2xldCBoPWdbXy5DZF18MDtoJjImJihnPV8uRmYoZyxoKSl9Zz1fLkRmKGcsYik7ZyE9PWYmJl8uUGYoYSxkLGMsZyxlKTtyZXR1cm4gZ307Cl8uUmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0hMTtkPV8uTmYoYSxkLGUsZz0+e3ZhciBoPWhmKGcsYywhMSxiKTtmPWghPT1nJiZoIT1udWxsO3JldHVybiBofSk7aWYoZCE9bnVsbClyZXR1cm4gZiYmIV8uU2QoZCkmJl8uTWYoYSxiKSxkfTtfLkc9ZnVuY3Rpb24oYSxiLGMsZCl7YT1hLkxpO3JldHVybiBfLlJmKGEsYVtfLkNkXXwwLGIsYyxkKXx8YltfLmZmXXx8KGJbXy5mZl09Xy5nZihiKSl9O18uQWc9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5MaSxmPWVbXy5DZF18MDtiPV8uUmYoZSxmLGIsYyxkKTtpZihiPT1udWxsKXJldHVybiBiO2Y9ZVtfLkNkXXwwO2lmKCFfLlNkKGEsZikpe2xldCBnPV8uSWYoYik7ZyE9PWImJihfLkpmKGEpJiYoZT1hLkxpLGY9ZVtfLkNkXXwwKSxiPWcsZj1fLlBmKGUsZixjLGIsZCksXy5NZihlLGYpKX1yZXR1cm4gYn07Cl8uQmc9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5MaTtyZXR1cm4gXy5YZihhLGUsZVtfLkNkXXwwLGIsYywxLGQpfTsKXy5YZj1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsayl7dmFyIG09Xy5TZChhLGMpO2Y9bT8xOmY7aD0hIWh8fGY9PT0zO209ayYmIW07KGY9PT0yfHxtKSYmXy5KZihhKSYmKGI9YS5MaSxjPWJbXy5DZF18MCk7YT1kZyhiLGUsZyk7dmFyIHA9YT09PV8uZWc/NzphW18uQ2RdfDAscT1mZyhwLGMpO2lmKGs9ISg0JnEpKXt2YXIgdT1hLHg9YztsZXQgej0hISgyJnEpO3omJih4fD0yKTtsZXQgQj0heixLPSEwLE89MCxBPTA7Zm9yKDtPPHUubGVuZ3RoO08rKyl7bGV0IFE9aGYodVtPXSxkLCExLHgpO2lmKFEgaW5zdGFuY2VvZiBkKXtpZigheil7bGV0IGNhPV8uU2QoUSk7QiYmKEI9IWNhKTtLJiYoSz1jYSl9dVtBKytdPVF9fUE8TyYmKHUubGVuZ3RoPUEpO3F8PTQ7cT1LP3EmLTQwOTc6cXw0MDk2O3E9Qj9xfDg6cSYtOX1xIT09cCYmKGFbXy5DZF09cSwyJnEmJk9iamVjdC5mcmVlemUoYSkpO2lmKG0mJiEoOCZxfHwhYS5sZW5ndGgmJihmPT09MXx8KGYhPT00PzA6MiZxfHwhKDE2JgpxKSYmMzImYykpKSl7a2cocSkmJihhPVsuLi5hXSxxPWhnKHEsYyksYz1fLlBmKGIsYyxlLGEsZykpO2Q9YTttPXE7Zm9yKHA9MDtwPGQubGVuZ3RoO3ArKyl1PWRbcF0scT1fLklmKHUpLHUhPT1xJiYoZFtwXT1xKTttfD04O3E9bT1kLmxlbmd0aD9tfDQwOTY6bSYtNDA5NzthW18uQ2RdPXF9cmV0dXJuIGE9aWcoYSxxLGIsYyxlLGcsZixrLGgpfTtfLkNnPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkxpO3JldHVybiBfLlhmKGEsZCxkW18uQ2RdfDAsYixjLF8uY2coKSx2b2lkIDAsITEsITApfTtEZz1mdW5jdGlvbihhLGIpe2EhPW51bGw/ZWYoYSxiKTphPXZvaWQgMDtyZXR1cm4gYX07Xy5FZz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9RGcoZCxiKTtfLlFmKGEsYyxkLGUpO2QmJiFfLlNkKGQpJiZfLk1mKGEuTGkpO3JldHVybiBhfTtfLkZnPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1EZyhlLGIpO18uc2coYSxjLGQsZSk7ZSYmIV8uU2QoZSkmJl8uTWYoYS5MaSk7cmV0dXJuIGF9OwpfLkdnPWZ1bmN0aW9uKGEsYixjLGQpe18uTGYoYSk7dmFyIGU9YS5MaSxmPWVbXy5DZF18MDtpZihkPT1udWxsKXJldHVybiBfLlBmKGUsZixjKSxhO2lmKCFBcnJheS5pc0FycmF5KGQpKXRocm93IF8udGQoKTt2YXIgZz1kPT09Xy5lZz83OmRbXy5DZF18MCxoPWcsaz1rZyhnKSxtPWt8fE9iamVjdC5pc0Zyb3plbihkKSxwPSEwLHE9ITA7Zm9yKGxldCB4PTA7eDxkLmxlbmd0aDt4Kyspe3ZhciB1PWRbeF07ZWYodSxiKTtrfHwodT1fLlNkKHUpLHAmJihwPSF1KSxxJiYocT11KSl9a3x8KGc9cD8xMzo1LGc9cT9nJi00MDk3Omd8NDA5Nik7bSYmZz09PWh8fChkPVsuLi5kXSxoPTAsZz1oZyhnLGYpKTtnIT09aCYmKGRbXy5DZF09Zyk7Zj1fLlBmKGUsZixjLGQpOzImZ3x8ISg0MDk2Jmd8fDE2JmcpfHxfLk1mKGUsZik7cmV0dXJuIGF9O2hnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9KDImYj9hfDI6YSYtMykmLTI3M307Cl8uSGc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGssbSl7Xy5MZihhKTtiPV8uamcoYSxiLGYsMiwhMCx2b2lkIDAsZyk7Zj1GZChiPT09Xy5lZz83OmJbXy5DZF18MCk/PzEwMjQ7aWYoaylpZihBcnJheS5pc0FycmF5KGQpKWZvcihlPWQubGVuZ3RoLGg9MDtoPGU7aCsrKWIucHVzaChjKGRbaF0sZikpO2Vsc2UgZm9yKGxldCBwIG9mIGQpYi5wdXNoKGMocCxmKSk7ZWxzZSBoJiZtPyhlPz8oZT1iLmxlbmd0aC0xKSxfLllkKGIsZSksYi5zcGxpY2UoZSxoKSk6KGgmJlpkKGIsZSksZSE9dm9pZCAwP2Iuc3BsaWNlKGUsaCxjKGQsZikpOmIucHVzaChjKGQsZikpKTtyZXR1cm4gYX07Cl8uWmY9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXtfLkxmKGEpO3ZhciBrPWEuTGk7YT1fLlhmKGEsayxrW18uQ2RdfDAsYyxiLDIsZCwhMCk7aWYoZyYmaClmPz8oZj1hLmxlbmd0aC0xKSxfLllkKGEsZiksYS5zcGxpY2UoZixnKSxhLmxlbmd0aHx8KGFbXy5DZF0mPS00MDk3KTtlbHNlIHJldHVybiBnPyhaZChhLGYpLGVmKGUsYykpOmU9ZSE9bnVsbD9lZihlLGMpOm5ldyBjLGYhPXZvaWQgMD9hLnNwbGljZShmLGcsZSk6YS5wdXNoKGUpLGY9Yz1hPT09Xy5lZz83OmFbXy5DZF18MCwoZz1fLlNkKGUpKT8oYyY9LTksYS5sZW5ndGg9PT0xJiYoYyY9LTQwOTcpKTpjfD00MDk2LGMhPT1mJiYoYVtfLkNkXT1jKSxnfHxfLk1mKGspLGV9O18uSWc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5FZShfLk9mKGEsYikpfTtfLkpnPWZ1bmN0aW9uKGEsYixjPSExKXtyZXR1cm4gXy5BZShfLk9mKGEsYikpPz9jfTsKXy5LZz1mdW5jdGlvbihhLGIsYz0wKXtyZXR1cm4gXy5HZShfLk9mKGEsYikpPz9jfTtfLkxnPWZ1bmN0aW9uKGEsYixjPTApe3JldHVybiBfLkplKF8uT2YoYSxiKSk/P2N9O18uTmc9ZnVuY3Rpb24oYSxiLGM9Xy5NZyl7cmV0dXJuIF8uT2YoYSxiLHZvaWQgMCx2b2lkIDAsXy5ZZSk/P2N9O18uT2c9ZnVuY3Rpb24oYSxiLGM9MCl7cmV0dXJuIF8uT2YoYSxiLHZvaWQgMCx2b2lkIDAsXy52ZSk/P2N9O18uSD1mdW5jdGlvbihhLGIpe3JldHVybiBfLmRmKF8uT2YoYSxiKSk/PyIifTtfLlBnPWZ1bmN0aW9uKGEsYixjPTApe3JldHVybiBfLklnKGEsYik/P2N9O18uUWc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uWGUoXy5PZihhLDEsdm9pZCAwLHZvaWQgMCxfLlllKSk/PyIwIn07Xy5SZz1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBfLmpnKGEsYixfLkdlLGMsZSx2b2lkIDAsZCl9O18uU2c9ZnVuY3Rpb24oYSxiLGMpe2E9Xy5SZyhhLGIsMyx2b2lkIDAsITApO18uWWQoYSxjKTtyZXR1cm4gYVtjXX07Cl8uVGc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5SZyhhLGIsMyx2b2lkIDAsITApLmxlbmd0aH07Xy5VZz1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBfLmpnKGEsYixfLmRmLGMsZSx2b2lkIDAsZCl9O18uVmc9ZnVuY3Rpb24oYSxiLGMpe2E9Xy5VZyhhLGIsMyx2b2lkIDAsITApO18uWWQoYSxjKTtyZXR1cm4gYVtjXX07Xy5XZz1mdW5jdGlvbihhLGIpe3JldHVybiBfLlVnKGEsYiwzLHZvaWQgMCwhMCkubGVuZ3RofTtfLlhnPWZ1bmN0aW9uKGEsYixjKXthPV8uamcoYSxiLF8uRWUsMywhMCk7Xy5ZZChhLGMpO3JldHVybiBhW2NdfTtfLllnPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBfLkFnKGEsYixfLnRnKGEsZCxjKSx2b2lkIDApfTtfLlpnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uZGYoXy5PZihhLGIpKX07Xy4kZz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uUWYoYSxiLGM9PW51bGw/YzpfLnplKGMpKX07Cl8uYWg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBvZyhhLGIsYz09bnVsbD9jOl8uemUoYyksITEpfTtfLmJoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5RZihhLGIsYz09bnVsbD9jOl8uRmUoYykpfTtfLmNoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gb2coYSxiLGM9PW51bGw/YzpfLkZlKGMpLDApfTtfLmRoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5RZihhLGIsYz09bnVsbD9jOl8uSGUoYykpfTtfLmVoPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG9nKGEsMSxiPT1udWxsP2I6Xy5RZShiLHZvaWQgMCksIjAiKX07Xy5oaD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIG9nKGEsYixjPT1udWxsP2M6Xy51ZShjKSwwKX07Xy5paD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uUWYoYSxiLF8uY2YoYykpfTtfLmpoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gb2coYSxiLF8uY2YoYyksIiIpfTtfLmtoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5RZihhLGIsYz09bnVsbD9jOl8uRGUoYykpfTsKXy5saD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIG9nKGEsYixjPT1udWxsP2M6Xy5EZShjKSwwKX07Xy5taD1mdW5jdGlvbihhLGIsYyl7Xy5IZyhhLGIsXy5GZSxjLHZvaWQgMCxfLkdlKX07Xy5uaD1mdW5jdGlvbihhLGIpe3JldHVybiBfLkdlKF8uT2YoYSxiKSkhPW51bGx9O18ucGg9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wLGQ9MCxlPTAsZj1hLnJoLGc9YS5xaDtkb3t2YXIgaD1mW2crK107Y3w9KGgmMTI3KTw8ZTtlKz03fXdoaWxlKGU8MzImJmgmMTI4KTtpZihlPjMyKWZvcihkfD0oaCYxMjcpPj40LGU9MztlPDMyJiZoJjEyODtlKz03KWg9ZltnKytdLGR8PShoJjEyNyk8PGU7b2goYSxnKTtpZighKGgmMTI4KSlyZXR1cm4gYihjPj4+MCxkPj4+MCk7dGhyb3cgRXJyb3IoKTt9OwpfLnFoPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9YS5xaCxkPWMrMTAsZT1hLnJoO2M8ZDspe2xldCBmPWVbYysrXTtifD1mO2lmKChmJjEyOCk9PT0wKXJldHVybiBvaChhLGMpLCEhKGImMTI3KX10aHJvdyBFcnJvcigpO307Xy5yaD1mdW5jdGlvbihhKXt2YXIgYj1hLnJoLGM9YS5xaCxkPWJbYysrXSxlPWQmMTI3O2lmKGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8NyxkJjEyOCYmKGQ9YltjKytdLGV8PShkJjEyNyk8PDE0LGQmMTI4JiYoZD1iW2MrK10sZXw9KGQmMTI3KTw8MjEsZCYxMjgmJihkPWJbYysrXSxlfD1kPDwyOCxkJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCYmYltjKytdJjEyOCkpKSkpdGhyb3cgRXJyb3IoKTtvaChhLGMpO3JldHVybiBlfTtfLnNoPWZ1bmN0aW9uKGEpe3JldHVybiBfLnJoKGEpPj4+MH07Xy50aD1mdW5jdGlvbihhKXtyZXR1cm4gXy5waChhLF8ucWUpfTsKXy52aD1mdW5jdGlvbihhKXt2YXIgYj1hLnhoO2J8fChiPWEucmgsYj1hLnhoPW5ldyBEYXRhVmlldyhiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQsYi5ieXRlTGVuZ3RoKSk7Yj1iLmdldEZsb2F0NjQoYS5xaCwhMCk7Xy51aChhLDgpO3JldHVybiBifTt2YWE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ucmgoYSl9O29oPWZ1bmN0aW9uKGEsYil7YS5xaD1iO2lmKGI+YS5zaCl0aHJvdyBFcnJvcigpO307Xy51aD1mdW5jdGlvbihhLGIpe29oKGEsYS5xaCtiKX07Xy53aD1mdW5jdGlvbihhLGIpe2lmKGI8MCl0aHJvdyBFcnJvcigpO3ZhciBjPWEucWg7Yj1jK2I7aWYoYj5hLnNoKXRocm93IEVycm9yKCk7YS5xaD1iO3JldHVybiBjfTsKXy56aD1mdW5jdGlvbihhLGIpe3ZhciBjPV8ud2goYSxiKTt2YXIgZD1hLnJoOyhhPXhoKXx8KGE9eGg9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIse2ZhdGFsOiEwfSkpO2I9YytiO2Q9Yz09PTAmJmI9PT1kLmxlbmd0aD9kOmQuc3ViYXJyYXkoYyxiKTt0cnl7dmFyIGU9YS5kZWNvZGUoZCl9Y2F0Y2goZil7aWYoeWg9PT12b2lkIDApe3RyeXthLmRlY29kZShuZXcgVWludDhBcnJheShbMTI4XSkpfWNhdGNoKGcpe310cnl7YS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzk3XSkpLHloPSEwfWNhdGNoKGcpe3loPSExfX0heWgmJih4aD12b2lkIDApO3Rocm93IGY7fXJldHVybiBlfTsKXy5BaD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5yaC5zaCxlPV8uc2goYS5yaCk7ZT1hLnJoLmdldEN1cnNvcigpK2U7dmFyIGY9ZS1kO2Y8PTAmJihhLnJoLnNoPWUsYyhiLGEsdm9pZCAwLHZvaWQgMCx2b2lkIDApLGY9ZS1hLnJoLmdldEN1cnNvcigpKTtpZihmKXRocm93IEVycm9yKCk7YS5yaC5zZXRDdXJzb3IoZSk7YS5yaC5zaD1kO3JldHVybiBifTtfLkNoPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2goYS5yaCk7cmV0dXJuIF8uemgoYS5yaCxiKX07Xy5EaD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy5zaChhLnJoKTtmb3IoZD1hLnJoLmdldEN1cnNvcigpK2Q7YS5yaC5nZXRDdXJzb3IoKTxkOyljLnB1c2goYihhLnJoKSl9O18uRmg9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLkVoKGEmNDI5NDk2NzI5NSxNYXRoLmZsb29yKGEvNDI5NDk2NzI5NikpfTsKXy5IaD1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gR2h8fChHaD1uZXcgXy5FaCgwLDApKTtpZighL14tP1xkKyQvLnRlc3QoYSkpcmV0dXJuIG51bGw7Xy5zZShhKTtyZXR1cm4gbmV3IF8uRWgoXy5lZSxfLmdlKX07Cl8uUGg9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBCaWdJbnQ2NEFycmF5IT09InVuZGVmaW5lZCIpcmV0dXJuIElofHwoSWg9bmV3IEJpZ0ludDY0QXJyYXkoMSksSmg9bmV3IFVpbnQzMkFycmF5KEloLmJ1ZmZlciksSWhbMF09QmlnSW50KDEpLEtoPUpoWzBdPT09MSksSWhbMF09YSxhPUtoPzA6MSxuZXcgYihKaFthXSxKaFsxLWFdKTtMaHx8KE1oPUJpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiksTmg9QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSxPaD1CaWdJbnQoNDI5NDk2NzI5NSksTGg9QmlnSW50KDMyKSk7aWYoYT49TWgmJmE8PU5oKXJldHVybiBjKE51bWJlcihhKSk7YT1CaWdJbnQuYXNVaW50Tig2NCxhKTtyZXR1cm4gbmV3IGIoTnVtYmVyKGEmT2gpLE51bWJlcihhPj5MaCkpfTtfLlFoPWZ1bmN0aW9uKGEsYixjKXtmb3IoO2M+MHx8Yj4xMjc7KWEucWgucHVzaChiJjEyN3wxMjgpLGI9KGI+Pj43fGM8PDI1KT4+PjAsYz4+Pj03O2EucWgucHVzaChiKX07Cl8uUmg9ZnVuY3Rpb24oYSxiKXthLnFoLnB1c2goYj4+PjAmMjU1KTthLnFoLnB1c2goYj4+PjgmMjU1KTthLnFoLnB1c2goYj4+PjE2JjI1NSk7YS5xaC5wdXNoKGI+Pj4yNCYyNTUpfTtfLlNoPWZ1bmN0aW9uKGEsYil7Zm9yKDtiPjEyNzspYS5xaC5wdXNoKGImMTI3fDEyOCksYj4+Pj03O2EucWgucHVzaChiKX07Xy5UaD1mdW5jdGlvbihhLGIpe2lmKGI+PTApXy5TaChhLGIpO2Vsc2V7Zm9yKGxldCBjPTA7Yzw5O2MrKylhLnFoLnB1c2goYiYxMjd8MTI4KSxiPj49NzthLnFoLnB1c2goMSl9fTtYaD1mdW5jdGlvbihhLGIpe2IubGVuZ3RoIT09MCYmKGEuc2gucHVzaChiKSxhLnJoKz1iLmxlbmd0aCl9O18uWWg9ZnVuY3Rpb24oYSxiLGMpe18uU2goYS5xaCxiKjgrYyl9O18uWmg9ZnVuY3Rpb24oYSxiKXtfLlloKGEsYiwyKTtiPWEucWguZW5kKCk7WGgoYSxiKTtiLnB1c2goYS5yaCk7cmV0dXJuIGJ9OwpfLiRoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wb3AoKTtmb3IoYz1hLnJoK2EucWgubGVuZ3RoKCktYztjPjEyNzspYi5wdXNoKGMmMTI3fDEyOCksYz4+Pj03LGEucmgrKztiLnB1c2goYyk7YS5yaCsrfTtfLmFpPWZ1bmN0aW9uKGEpe1hoKGEsYS5xaC5lbmQoKSk7dmFyIGI9bmV3IFVpbnQ4QXJyYXkoYS5yaCksYz1hLnNoLGQ9Yy5sZW5ndGgsZT0wO2ZvcihsZXQgZj0wO2Y8ZDtmKyspe2xldCBnPWNbZl07Yi5zZXQoZyxlKTtlKz1nLmxlbmd0aH1hLnNoPVtiXTtyZXR1cm4gYn07Ymk9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpc3dpdGNoKF8uWWgoYSxiLDApLHR5cGVvZiBjKXtjYXNlICJudW1iZXIiOmE9YS5xaDtfLmtlKGMpO18uUWgoYSxfLmVlLF8uZ2UpO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1fLlBoKGMsXy5FaCxfLkZoKTtfLlFoKGEucWgsYy5sbyxjLmhpKTticmVhaztkZWZhdWx0OmM9Xy5IaChjKSxfLlFoKGEucWgsYy5sbyxjLmhpKX19OwpjaT1mdW5jdGlvbihhLGIsYyl7YyE9bnVsbCYmKGM9cGFyc2VJbnQoYywxMCksXy5ZaChhLGIsMCksXy5UaChhLnFoLGMpKX07Xy5kaT1mdW5jdGlvbihhLGIsYyl7Xy5ZaChhLGIsMik7Xy5TaChhLnFoLGMubGVuZ3RoKTtYaChhLGEucWguZW5kKCkpO1hoKGEsYyl9O18uZWk9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9bnVsbCYmKGI9Xy5aaChhLGIpLGQoYyxhKSxfLiRoKGEsYikpfTtfLmZpPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjpfLkhoKGEpfX07Z2k9ZnVuY3Rpb24oKXt2YXIgYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3Rocm93IEVycm9yKCk7fX07T2JqZWN0LnNldFByb3RvdHlwZU9mKGEsYS5wcm90b3R5cGUpO3JldHVybiBhfTtoaT1mdW5jdGlvbihhKXt2YXIgYj13YWE7Xy5xZihhLkxpLGIucWgpO18ucGYoYSxiLnFoLGIudGgpO3JldHVybiBiLmd3P18uQmcoYSxiLlduLGIucWgsYi5yaCk6Xy5HKGEsYi5XbixiLnFoLGIucmgpfTsKXy5paT1mdW5jdGlvbihhLGIpe2lmKGI9PW51bGwpcmV0dXJuIG5ldyBhO2lmKCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCk7aWYoT2JqZWN0LmlzRnJvemVuKGIpfHxPYmplY3QuaXNTZWFsZWQoYil8fCFPYmplY3QuaXNFeHRlbnNpYmxlKGIpKXRocm93IEVycm9yKCk7cmV0dXJuIG5ldyBhKEhkKGIpKX07Xy5saT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgamkoYSxiLCExLGtpKX07bmk9ZnVuY3Rpb24oYSxiLGMsZCxlKXtfLmVpKGEsYyxfLm1pKGIsZCksZSl9OwpfLnJpPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9ZVthXTtpZihmKXJldHVybiBmO2I9Yj9iKCk6e307Yi5pQT1lO2IuZnE9Xy56ZihlWzBdKTt2YXIgZz1lWzFdO2Y9MTtnJiZnLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoYi5vbD1nLGc9ZVsrK2ZdLHR5cGVvZiBnPT09ImZ1bmN0aW9uIiYmKGIuckk9ITAsXy5vaT8/KF8ub2k9ZykscGk/PyhwaT1lW2YrMV0pLGc9ZVtmKz0yXSkpO2Zvcih2YXIgaD17fTtnJiZBcnJheS5pc0FycmF5KGcpJiZnLmxlbmd0aCYmdHlwZW9mIGdbMF09PT0ibnVtYmVyIiYmZ1swXT4wOyl7Zm9yKHZhciBrPTA7azxnLmxlbmd0aDtrKyspaFtnW2tdXT1nO2c9ZVsrK2ZdfWZvcihrPTE7ZyE9PXZvaWQgMDspe3R5cGVvZiBnPT09Im51bWJlciImJihrKz1nLGc9ZVsrK2ZdKTtsZXQgcTt2YXIgbT12b2lkIDA7ZyBpbnN0YW5jZW9mIGppP3E9ZzoocT14YWEsZi0tKTtpZihxPy5yaCl7Zz1lWysrZl07bT1lO3ZhciBwPWY7dHlwZW9mIGc9PT0iZnVuY3Rpb24iJiYKKGc9ZygpLG1bcF09Zyk7bT1nfWc9ZVsrK2ZdO3A9aysxO3R5cGVvZiBnPT09Im51bWJlciImJmc8MCYmKHAtPWcsZz1lWysrZl0pO2Zvcig7azxwO2srKyl7bGV0IHU9aFtrXTttP2QoYixrLHEsbSx1KTpjKGIsayxxLHUpfX1yZXR1cm4gZVthXT1ifTtfLnNpPWZ1bmN0aW9uKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2FbMF1pbnN0YW5jZW9mIGppP2E6W3lhYSxhXTpbYSx2b2lkIDBdfTtfLm1pPWZ1bmN0aW9uKGEsYil7aWYoYSBpbnN0YW5jZW9mIF8uSSlyZXR1cm4gYS5MaTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBfLkRmKGEsYil9O18udGk9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ucmkoemFhLHZvaWQgMCxBYWEsQmFhLGEpfTtBYWE9ZnVuY3Rpb24oYSxiLGMpe2FbYl09Yy52Q307QmFhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz1jLnZDO2FbYl09KGgsayxtKT0+ZyhoLGssbSxmfHwoZj1fLnRpKGQpLmZxKSxlfHwoZT11aShkKSkpfTsKdWk9ZnVuY3Rpb24oYSl7dmFyIGI9YVt2aV07aWYoIWIpe2xldCBjPV8udGkoYSk7Yj0oZCxlKT0+Xy53aShkLGUsYyk7YVt2aV09Yn1yZXR1cm4gYn07Xy53aT1mdW5jdGlvbihhLGIsYyl7Xy4kZChhLGFbXy5DZF18MCwoZCxlKT0+e2lmKGUhPW51bGwpe3ZhciBmPUNhYShjLGQpO2Y/ZihiLGUsZCk6ZDw1MDB8fF8ueGQoXy54aSwzKX19KTsoYT1fLmxmKGEpKSYmXy5tZihhLChkLGUsZik9PntYaChiLGIucWguZW5kKCkpO2ZvcihkPTA7ZDxmLmxlbmd0aDtkKyspWGgoYixfLnFkKGZbZF0pfHxuZXcgVWludDhBcnJheSgwKSl9KX07Q2FhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjKXJldHVybiBjO2lmKGM9YS5vbClpZihjPWNbYl0pe2M9Xy5zaShjKTt2YXIgZD1jWzBdLnZDO2lmKGM9Y1sxXSl7bGV0IGU9dWkoYyksZj1fLnRpKGMpLmZxO2M9YS5yST9waShmLGUpOihnLGgsayk9PmQoZyxoLGssZixlKX1lbHNlIGM9ZDtyZXR1cm4gYVtiXT1jfX07Cl8ueWk9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpe3ZhciBkPWJbXy5DZF18MDtpZihkJjQpcmV0dXJuIGI7Zm9yKHZhciBlPTAsZj0wO2U8Yi5sZW5ndGg7ZSsrKXtsZXQgZz1hKGJbZV0pO2chPW51bGwmJihiW2YrK109Zyl9ZjxlJiYoYi5sZW5ndGg9Zik7YT1kfDE7YyYmKGE9KGF8NCkmLTE1MzcpO2EhPT1kJiYoYltfLkNkXT1hKTtjJiZhJjImJk9iamVjdC5mcmVlemUoYik7cmV0dXJuIGJ9fTtfLnppPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGc9MDtnPGIubGVuZ3RoO2crKylmKGEsYltnXSxjLGQsZSk7YT1iW18uQ2RdfDA7YSYxfHwoYltfLkNkXT1hfDEpfX07Xy5BaT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIG5ldyBqaShhLGIsITEsYyl9O18uQ2k9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgamkoYSxiLEJpLGMpfTtfLkRpPWZ1bmN0aW9uKGEsYixjPWtpKXtyZXR1cm4gbmV3IGppKGEsYixCaSxjKX07Cl8uRWk9ZnVuY3Rpb24oYSxiLGMpe18uUGYoYSxhW18uQ2RdfDAsYixjLF8uYmUoYVtfLkNkXXwwKSl9O18uRmk9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5EZih2b2lkIDAsYik7Xy5WZihhLGFbXy5DZF18MCxjKS5wdXNoKGIpO3JldHVybiBifTtfLkdpPWZ1bmN0aW9uKGEsYixjKXtiPV8udmUoYik7YiE9bnVsbCYmKF8uWWgoYSxjLDEpLGE9YS5xaCxfLm1lKGIpLF8uUmgoYSxfLmVlKSxfLlJoKGEsXy5nZSkpfTtfLkhpPWZ1bmN0aW9uKGEsYixjKXtiPV8uYWYoYik7YiE9bnVsbCYmKF8uZmkoYiksYmkoYSxjLGIpKX07Xy5JaT1mdW5jdGlvbihhLGIsYyl7Yj1fLkdlKGIpO2IhPW51bGwmJmIhPW51bGwmJihfLlloKGEsYywwKSxfLlRoKGEucWgsYikpfTtfLkppPWZ1bmN0aW9uKGEsYixjKXtiPV8uQWUoYik7YiE9bnVsbCYmKF8uWWgoYSxjLDApLGEucWgucWgucHVzaChiPzE6MCkpfTtfLktpPWZ1bmN0aW9uKGEsYixjKXtiPV8uZGYoYik7YiE9bnVsbCYmXy5kaShhLGMsemIoYikpfTsKXy5MaT1mdW5jdGlvbihhLGIsYyxkLGUpe18uZWkoYSxjLF8ubWkoYixkKSxlKX07Xy5NaT1mdW5jdGlvbihhLGIsYyl7Yj1fLkplKGIpO2IhPW51bGwmJmIhPW51bGwmJihfLlloKGEsYywwKSxfLlNoKGEucWgsYikpfTtfLk5pPWZ1bmN0aW9uKGEsYixjKXtjaShhLGMsXy5HZShiKSl9O18uT2k9ZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO18uRWkoYixjLF8udGgoYS5yaCkpO3JldHVybiEwfTtfLlBpPWZ1bmN0aW9uKGEsYixjKXthLnFoIT09MCYmYS5xaCE9PTI/YT0hMTooYj1fLldmKGIsYyksYS5xaD09Mj9fLkRoKGEsXy50aCxiKTpiLnB1c2goXy50aChhLnJoKSksYT0hMCk7cmV0dXJuIGF9O18uUWk9ZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wJiZhLnFoIT09MilyZXR1cm4hMTtiPV8uV2YoYixjKTthLnFoPT0yP18uRGgoYSxfLnJoLGIpOmIucHVzaChfLnJoKGEucmgpKTtyZXR1cm4hMH07Cl8uUmk9ZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wJiZhLnFoIT09MilyZXR1cm4hMTtiPV8uV2YoYixjKTthLnFoPT0yP18uRGgoYSx2YWEsYik6Yi5wdXNoKF8ucmgoYS5yaCkpO3JldHVybiEwfTtEYWE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMgaW4gYSlpc05hTihjKXx8YigrYyxhW2NdLCExKTtjPWEud0g/PyhhLndIPXt9KTtmb3IodmFyIGQgaW4gYS5vbCl7bGV0IGU9K2Q7aWYoaXNOYU4oZSkpY29udGludWU7aWYoY1tlXSljb250aW51ZTtsZXQgW2YsZ109Xy5zaShhLm9sW2VdKSxoPWc7aCYmdHlwZW9mIGg9PT0iZnVuY3Rpb24iJiYoaD1oKCkpO2NbZV09aD9uZXcgU2koaCxmLnFoLGYuWHQsITEsaCk6bmV3IFRpKGYucWgsZi5YdCl9YT1hLndIO2ZvcihsZXQgZSBpbiBhKWQ9K2UsaXNOYU4oZCl8fGIoZCxhW2RdLCEwKX07VWk9ZnVuY3Rpb24oYSxiLGMpe2FbYl09bmV3IFRpKGMucWgsYy5YdCl9OwpWaT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1fLnpmKGRbMF0pO2U9ZT9lPT09Xy54ZjohMTthW2JdPW5ldyBTaShkLGMucWgsZT9CaTpjLlh0LGU/RWFhOiExLGQpfTtfLldpPWZ1bmN0aW9uKGEsYil7cmV0dXJuKCgpPT57dmFyIGM9bmV3IEZhYShhLGIpO3JldHVybigpPT5jfSkoKX07Xy5YaT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gbmV3IEdhYShhLGIsYyxkKX07Xy4kaT1mdW5jdGlvbihhLGIpe3ZhciBjO3JldHVybigpPT57dmFyIGQ7aWYoKGQ9Yyk9PW51bGwpe2lmKCEoYT8ucHJvdG90eXBlIGluc3RhbmNlb2YgXy5JKSl0aHJvdyBFcnJvcigpO2FbXy5mZl18fChhW18uZmZdPV8uZ2YoYSkpO25ldyBhO2Q9Yz17W1lpXTpiLFtaaV06YX19cmV0dXJuIGR9fTsKXy5haj1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e2I9SlNPTi5wYXJzZShiKTtpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBFcnJvcigiRXhwZWN0ZWQganNwYiBkYXRhIHRvIGJlIGFuIGFycmF5LCBnb3QgIitYYShiKSsiOiAiK2IpO18uR2QoYik7cmV0dXJuIG5ldyBhKGIpfX07Xy5iaj1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e2lmKGI9PW51bGx8fGI9PSIiKWI9bmV3IGE7ZWxzZXtiPUpTT04ucGFyc2UoYik7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoImRuYXJyIik7Yj1uZXcgYShIZChiKSl9cmV0dXJuIGJ9fTtfLmNqPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uaGgoYSwxLGIpfTtfLmRqPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uaGgoYSwyLGIpfTtfLmVqPWZ1bmN0aW9uKGEsYil7TnVtYmVyLmlzRmluaXRlKGIpfHwoYj0wKTthPV8uZWgoYSxNYXRoLmZsb29yKGIvMUUzKSk7cmV0dXJuIF8uY2goYSwyLChiJTFFMysxRTMpJTFFMyoxRTYpfTsKXy5maj1mdW5jdGlvbihhLGIsYyl7Zm9yKGxldCBkIGluIGEpYi5jYWxsKGMsYVtkXSxkLGEpfTtIYWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtmb3IobGV0IGQgaW4gYSljW2RdPWIuY2FsbCh2b2lkIDAsYVtkXSxkLGEpO3JldHVybiBjfTtfLmlqPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9MDtmb3IobGV0IGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07Xy5qaj1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5saj1mdW5jdGlvbihhLGIpe2ZvcihsZXQgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBjPWFyZ3VtZW50c1tlXTtmb3IoZCBpbiBjKWFbZF09Y1tkXTtmb3IobGV0IGY9MDtmPGtqLmxlbmd0aDtmKyspe3ZhciBkPWtqW2ZdO09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGQpJiYoYVtkXT1jW2RdKX19fTsKSWFhPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDtpZighbWopcmV0dXJuIGE7dHJ5e2xldCBiPWM9PmM7YT1tai5jcmVhdGVQb2xpY3koImdvb2dsZS1tYXBzLWFwaSNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYil7fXJldHVybiBhfTtfLm9qPWZ1bmN0aW9uKCl7bmo9PT12b2lkIDAmJihuaj1JYWEoKSk7cmV0dXJuIG5qfTtfLnFqPWZ1bmN0aW9uKGEpe3ZhciBiPV8ub2ooKTthPWI/Yi5jcmVhdGVTY3JpcHRVUkwoYSk6YTtyZXR1cm4gbmV3IF8ucGooYSl9O18ucmo9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8ucGopcmV0dXJuIGEucWg7dGhyb3cgRXJyb3IoIiIpO307Xy50aj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uc2ooYSl9O3ZqPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy51aihiPT5iLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6Iil9OwpfLnhqPWZ1bmN0aW9uKGEpe3ZhciBiPV8ub2ooKTthPWI/Yi5jcmVhdGVIVE1MKGEpOmE7cmV0dXJuIG5ldyB3aihhKX07Xy55aj1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2Ygd2opcmV0dXJuIGEucWg7dGhyb3cgRXJyb3IoIiIpO307SmFhPWZ1bmN0aW9uKGEsYj1kb2N1bWVudCl7YT1iLnF1ZXJ5U2VsZWN0b3I/LihgJHthfVtub25jZV1gKTtyZXR1cm4gYT09bnVsbD8iIjphLm5vbmNlfHxhLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18uS2FhPWZ1bmN0aW9uKGEpe3ZhciBiPUphYSgic2NyaXB0IixhLm93bmVyRG9jdW1lbnQpO2ImJmEuc2V0QXR0cmlidXRlKCJub25jZSIsYil9O18uemo9ZnVuY3Rpb24oYSxiKXtpZihhLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGEudGFnTmFtZSkpdGhyb3cgRXJyb3IoIiIpO2EuaW5uZXJIVE1MPV8ueWooYil9OwpfLkJqPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkFqKXJldHVybiBhLnFoO3Rocm93IEVycm9yKCIiKTt9O18uQ2o9ZnVuY3Rpb24oYSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfTtMYWE9ZnVuY3Rpb24oYSl7dmFyIGI9MTthPWEuc3BsaXQoIjoiKTtmb3IodmFyIGM9W107Yj4wJiZhLmxlbmd0aDspYy5wdXNoKGEuc2hpZnQoKSksYi0tO2EubGVuZ3RoJiZjLnB1c2goYS5qb2luKCI6IikpO3JldHVybiBjfTtfLkVqPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIubWF0Y2goXy5EailbYV18fG51bGx9OwpfLkZqPWZ1bmN0aW9uKGEsYixjKXtjPWMhPW51bGw/Ij0iK18uQ2ooYyk6IiI7aWYoYis9Yyl7Yz1hLmluZGV4T2YoIiMiKTtjPDAmJihjPWEubGVuZ3RoKTtsZXQgZD1hLmluZGV4T2YoIj8iKSxlO2Q8MHx8ZD5jPyhkPWMsZT0iIik6ZT1hLnN1YnN0cmluZyhkKzEsYyk7YT1bYS5zbGljZSgwLGQpLGUsYS5zbGljZShjKV07Yz1hWzFdO2FbMV09Yj9jP2MrIiYiK2I6YjpjO2E9YVswXSsoYVsxXT8iPyIrYVsxXToiIikrYVsyXX1yZXR1cm4gYX07Xy5Haj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uQWooYVswXSl9O0hqPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gbmV3IFVSTChhLHdpbmRvdy5kb2N1bWVudC5iYXNlVVJJKX1jYXRjaChiKXtyZXR1cm4gbmV3IFVSTCgiYWJvdXQ6aW52YWxpZCIpfX07TWFhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5jcmVhdGVSYW5nZSgpO2Muc2VsZWN0Tm9kZShiLmJvZHkpO2E9Xy54aihhKTtyZXR1cm4gYy5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoXy55aihhKSl9OwpOYWE9ZnVuY3Rpb24oYSl7YT1hLm5vZGVOYW1lO3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciP2E6IkZPUk0ifTtPYWE9ZnVuY3Rpb24oYSl7YT1hLm5vZGVUeXBlO3JldHVybiBhPT09MXx8dHlwZW9mIGEhPT0ibnVtYmVyIn07UGFhPWZ1bmN0aW9uKGEsYixjKXtjPWEucWguZ2V0KGMpO3JldHVybiBjPy5oYXMoYik/Yy5nZXQoYik6YS50aC5oYXMoYik/e09tOjF9OihjPWEud2guZ2V0KGIpKT9jOmEucmgmJlsuLi5hLnJoXS5zb21lKGQ9PmIuaW5kZXhPZihkKT09PTApP3tPbToxfTp7T206MH19O18uSWo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO2E9UWFhKGEsYixjKTtjPWMuYm9keTtjLmFwcGVuZENoaWxkKGEpO2M9KG5ldyBYTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyhjKTtjPWMuc2xpY2UoYy5pbmRleE9mKCI+IikrMSxjLmxhc3RJbmRleE9mKCI8LyIpKTtyZXR1cm4gXy54aihjKX07ClFhYT1mdW5jdGlvbihhLGIsYyl7Yj1NYWEoYixjKTtiPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoYiw1LGc9PntpZihnLm5vZGVUeXBlPT09MylnPTE7ZWxzZSBpZihPYWEoZykpaWYoZz1OYWEoZyksZz09PW51bGwpZz0yO2Vsc2V7dmFyIGg9YS5zaDtnPWchPT0iRk9STSImJihoLnNoLmhhcyhnKXx8aC5xaC5oYXMoZykpPzE6Mn1lbHNlIGc9MjtyZXR1cm4gZ30pO2Zvcih2YXIgZD1iLm5leHROb2RlKCksZT1jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxmPWU7ZCE9PW51bGw7KXtsZXQgZztpZihkLm5vZGVUeXBlPT09MylhLndoJiZmLm5vZGVOYW1lPT09IlNUWUxFIj8oZD1hLndoKGQuZGF0YSksZz1hLmNyZWF0ZVRleHROb2RlKGQpKTpnPWEuY3JlYXRlVGV4dE5vZGUoZC5kYXRhKTtlbHNlIGlmKE9hYShkKSlnPVJhYShhLGQsYyk7ZWxzZSB0aHJvdyBFcnJvcigiIik7Zi5hcHBlbmRDaGlsZChnKTtpZihkPWIuZmlyc3RDaGlsZCgpKWY9ZztlbHNlIGZvcig7IShkPWIubmV4dFNpYmxpbmcoKSkmJgooZD1iLnBhcmVudE5vZGUoKSk7KWY9Zi5wYXJlbnROb2RlfXJldHVybiBlfTsKUmFhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1OYWEoYik7Yz1jLmNyZWF0ZUVsZW1lbnQoZCk7Yj1iLmF0dHJpYnV0ZXM7Zm9yKGxldCB7bmFtZTpoLHZhbHVlOmt9b2YgYil7dmFyIGU9UGFhKGEuc2gsaCxkKSxmO2E6e2lmKGY9ZS5jb25kaXRpb25zKWZvcihsZXQgW20scF1vZiBmKXtmPXA7dmFyIGc9Yi5nZXROYW1lZEl0ZW0obSk/LnZhbHVlO2lmKGcmJiFmLmhhcyhnKSl7Zj0hMTticmVhayBhfX1mPSEwfWlmKGYpc3dpdGNoKGUuT20pe2Nhc2UgMTpKaihjLGgsayk7YnJlYWs7Y2FzZSAyOnRocm93IEVycm9yKCk7Y2FzZSAzOkpqKGMsaCxrLnRvTG93ZXJDYXNlKCkpO2JyZWFrO2Nhc2UgNDphLnRoPyhlPWEudGgoayksSmooYyxoLGUpKTpKaihjLGgsayk7YnJlYWs7Y2FzZSA1OmEucWg/KGU9e3R5cGU6MixhdHRyaWJ1dGVOYW1lOmgscUg6ZH0sZj1IaihrKSwoZT1hLnFoKGYsZSkpJiZKaihjLGgsZS50b1N0cmluZygpKSk6SmooYyxoLGspO2JyZWFrO2Nhc2UgNjppZihhLnFoKXtlPQp7dHlwZToyLGF0dHJpYnV0ZU5hbWU6aCxxSDpkfTtmPVtdO2ZvcihsZXQgbSBvZiBrLnNwbGl0KCIsIikpe2xldCBbcCxxXT1tLnRyaW0oKS5zcGxpdCgvXHMrLywyKTtmLnB1c2goe3VybDpwLFZoOnF9KX1nPWY7Zj17Y3o6W119O2ZvcihsZXQgbSBvZiBnKWc9SGoobS51cmwpLChnPWEucWgoZyxlKSkmJmYuY3oucHVzaCh7dXJsOmcudG9TdHJpbmcoKSxWaDptLlZofSk7SmooYyxoLFNhYShmKSl9ZWxzZSBKaihjLGgsayk7YnJlYWs7Y2FzZSA3OmU9aztpZihhLnJoKXtlPXt0eXBlOjIsYXR0cmlidXRlTmFtZTpoLHFIOmR9O2Y9SGooayk7ZT1hLnJoKGYsZSk7aWYoZT09PW51bGwpYnJlYWs7ZT1lLnRvU3RyaW5nKCl9YTp7Zz12b2lkIDA7Zj1lO3RyeXtnPW5ldyBVUkwoZil9Y2F0Y2gobSl7Zj0iaHR0cHM6IjticmVhayBhfWY9Zy5wcm90b2NvbH1lPWYhPT12b2lkIDAmJlRhYS5pbmRleE9mKGYudG9Mb3dlckNhc2UoKSkhPT0tMT9lOiJhYm91dDppbnZhbGlkI3pDbG9zdXJleiI7CkpqKGMsaCxlKX19cmV0dXJuIGN9O0pqPWZ1bmN0aW9uKGEsYixjKXthLnNldEF0dHJpYnV0ZShiLGMpfTtTYWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3oubWFwKGI9Pnt2YXIgYz1iLlZoO3JldHVybmAke2IudXJsfSR7Yz9gICR7Y31gOiIifWB9KS5qb2luKCIgLCAiKX07V2FhPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKChiPWFbVWFhXSkhPW51bGwpYT1iO2Vsc2V7aWYoS2ohPT1Lail0aHJvdyBFcnJvcigpO2E9YVtVYWFdPVZhYShhLnFoKX1yZXR1cm4gYX07Xy5Paj1mdW5jdGlvbihhKXtpZihhW0xqXSlyZXR1cm4gYVtMal07dmFyIGI9bmV3IE1hcCxjPVdhYShhKTtmb3IobGV0IGUgb2YgXy5CZyhjLE1qLDIpKXtjPV8uS2coZSwyKTt2YXIgZD1lLmdldE5hbWUoKTtiLnNldChkLGMpO2Q9aGkoXy5HKGUsTmosMykpO2Q9Xy5kZihfLk9mKGQsMSkpO2QhPT12b2lkIDAmJmIuc2V0KGQsYyl9cmV0dXJuIGFbTGpdPWJ9OwpYYWE9ZnVuY3Rpb24oYSl7aWYoYVtQal0pcmV0dXJuIGFbUGpdO3ZhciBiPW5ldyBNYXAsYz1XYWEoYSk7Zm9yKGxldCBlIG9mIF8uQmcoYyxNaiwyKSl7Yz1fLktnKGUsMik7dmFyIGQ9aGkoXy5HKGUsTmosMykpO2Q9Xy5kZihfLk9mKGQsMSkpPz9lLmdldE5hbWUoKTtsZXQgZj1iLmdldChjKTtmfHwoZj1bXSxiLnNldChjLGYpKTtmLnB1c2goZCl9cmV0dXJuIGFbUGpdPWJ9O18uUWo9ZnVuY3Rpb24oYSl7cmV0dXJuIGFbWWFhXT8/KGFbWWFhXT1uZXcgTWFwKFsuLi5YYWEoYSkuZW50cmllcygpXS5tYXAoKFtiLGNdKT0+W2IsXy5tYShjLCJhdCIpLmNhbGwoYywtMSldKSkpfTtfLiRhYT1mdW5jdGlvbihhKXsoMCxfLlphYSkoYSk7KDAsXy50ZikoYSk7cmV0dXJuKDAsXy50ZikoYSk/TnVtYmVyKGEpOlN0cmluZyhhKX07YWJhPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09IisiPyItIjoiXyJ9O18uUmo9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5iYmEoYSwxLGIpfTsKXy5iYmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciB7W1lpXTpkLFtaaV06ZX09YztjPV8ucmkoY2JhLHZvaWQgMCxVaSxWaSxkKTtjLm1lc3NhZ2VUeXBlPz8oYy5tZXNzYWdlVHlwZT1lKTt2YXIgZj1TaihhKTthPUFycmF5KDc2OCk7Yz1kYmEoZixjLGIsYSwwKTtpZihiPT09MHx8IWMpcmV0dXJuIGEuam9pbigiIik7YS5zaGlmdCgpO3JldHVybiBhLmpvaW4oIiIpLnJlcGxhY2UoZWJhLCIlMjciKX07CmRiYT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPShhW18uQ2RdfDApJjY0P2E6Xy5EZihhLGIuZnEpLGc9ZltfLkNkXXwwO0RhYShiLChoLGspPT57dmFyIG09Xy5OZihmLGgsXy5iZShnKSk7aWYobSE9bnVsbClpZihrLmlzTWFwJiZtIGluc3RhbmNlb2YgTWFwKW0uZm9yRWFjaCgocCxxKT0+e2U9VGooYyxoLGssW3EscF0sZCxlKX0pO2Vsc2UgaWYoay5ndylmb3IobGV0IHA9MDtwPG0ubGVuZ3RoOysrcCllPVRqKGMsaCxrLG1bcF0sZCxlKTtlbHNlIGU9VGooYyxoLGssbSxkLGUpfSk7cmV0dXJuIGV9OwpUaj1mdW5jdGlvbihhLGIsYyxkLGUsZil7ZVtmKytdPWE9PT0wPyIhIjoiJiI7ZVtmKytdPWI7aWYoYy5kQyBpbnN0YW5jZW9mIGtpfHxjLmRDIGluc3RhbmNlb2YgXy5VailiPVNqKGQpLGQ9Yy5jUT8/KGMuY1E9Xy5yaShjYmEsdm9pZCAwLFVpLFZpLGMuYlEpKSxlW2YrK109Im0iLGVbZisrXT0wLGM9ZixmPWRiYShTaihiKSxkLGEsZSxmKSxlW2MtMV09Zi1jPj4yO2Vsc2V7Yz1jLmRDO2I9Yy5BbTtpZihjIGluc3RhbmNlb2YgXy5XailpZihhPT09MSlkPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpO2Vsc2V7YT10eXBlb2YgZD09PSJzdHJpbmciP2Q6YCR7ZH1gO2ZiYS50ZXN0KGEpP2Q9ITE6KGQ9ZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoLyUyMC9nLCIrIiksYz1kLm1hdGNoKC8lWzg5QUJdL2dpKSxjPWEubGVuZ3RoKyhjP2MubGVuZ3RoOjApLGQ9NCpNYXRoLmNlaWwoYy8zKS0oMy1jJTMpJTM8ZC5sZW5ndGgpO2QmJihiPSJ6Iik7aWYoYj09PSJ6Iil7ZD0KW107Yz0wO2ZvcihsZXQgZz0wO2c8YS5sZW5ndGg7ZysrKXtsZXQgaD1hLmNoYXJDb2RlQXQoZyk7aDwxMjg/ZFtjKytdPWg6KGg8MjA0OD9kW2MrK109aD4+NnwxOTI6KChoJjY0NTEyKT09NTUyOTYmJmcrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChnKzEpJjY0NTEyKT09NTYzMjA/KGg9NjU1MzYrKChoJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2cpJjEwMjMpLGRbYysrXT1oPj4xOHwyNDAsZFtjKytdPWg+PjEyJjYzfDEyOCk6ZFtjKytdPWg+PjEyfDIyNCxkW2MrK109aD4+NiY2M3wxMjgpLGRbYysrXT1oJjYzfDEyOCl9YT1fLlVjKGQsNCl9ZWxzZSBhLmluZGV4T2YoIioiKSE9PS0xJiYoYT1hLnJlcGxhY2UoZ2JhLCIqMkEiKSksYS5pbmRleE9mKCIhIikhPT0tMSYmKGE9YS5yZXBsYWNlKGhiYSwiKjIxIikpO2Q9YX1lbHNle2E9ZDtpZighKGMgaW5zdGFuY2VvZiBfLlhqfHxjIGluc3RhbmNlb2YgXy5ZaikpaWYoYyBpbnN0YW5jZW9mIF8uWmopYT1hPzE6MDtlbHNlIGlmKGMgaW5zdGFuY2VvZgpfLldqKWE9U3RyaW5nKGEpO2Vsc2UgaWYoYyBpbnN0YW5jZW9mIF8uYWspe2EgaW5zdGFuY2VvZiBfLmZkfHxhPT1udWxsfHxhIGluc3RhbmNlb2YgXy5mZHx8KGE9dHlwZW9mIGE9PT0ic3RyaW5nIj9hP25ldyBfLmZkKGEsXy5oZCk6Xy5sZCgpOnZvaWQgMCk7aWYoYT09bnVsbCl0aHJvdyBFcnJvcigpO2E9bWQoYSkucmVwbGFjZShpYmEsYWJhKS5yZXBsYWNlKGpiYSwiIil9ZWxzZSBhPWMgaW5zdGFuY2VvZiBfLmJrfHxjIGluc3RhbmNlb2YgXy5jaz9fLkplKGEpOmMgaW5zdGFuY2VvZiBfLmRrfHxjIGluc3RhbmNlb2YgXy5la3x8YyBpbnN0YW5jZW9mIF8uZmt8fGMgaW5zdGFuY2VvZiBfLmdrP18uR2UoYSk6YyBpbnN0YW5jZW9mIF8uaGt8fGMgaW5zdGFuY2VvZiBfLmlrfHxjIGluc3RhbmNlb2Yga2JhP18uWGUoYSk6YyBpbnN0YW5jZW9mIF8uamt8fGMgaW5zdGFuY2VvZiBfLmtrP18uJGUoYSk6YTtkPWF9ZVtmKytdPWI7ZVtmKytdPWR9cmV0dXJuIGZ9OwpTaj1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5JKXJldHVybiBhLkxpO2lmKGEgaW5zdGFuY2VvZiBNYXApcmV0dXJuWy4uLmFdO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dGhyb3cgRXJyb3IoKTt9O2xiYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAyMDA6cmV0dXJuIDA7Y2FzZSA0MDA6cmV0dXJuIDM7Y2FzZSA0MDE6cmV0dXJuIDE2O2Nhc2UgNDAzOnJldHVybiA3O2Nhc2UgNDA0OnJldHVybiA1O2Nhc2UgNDA5OnJldHVybiAxMDtjYXNlIDQxMjpyZXR1cm4gOTtjYXNlIDQyOTpyZXR1cm4gODtjYXNlIDQ5OTpyZXR1cm4gMTtjYXNlIDUwMDpyZXR1cm4gMjtjYXNlIDUwMTpyZXR1cm4gMTI7Y2FzZSA1MDM6cmV0dXJuIDE0O2Nhc2UgNTA0OnJldHVybiA0O2RlZmF1bHQ6cmV0dXJuIDJ9fTsKbWJhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIDIwMDtjYXNlIDM6Y2FzZSAxMTpyZXR1cm4gNDAwO2Nhc2UgMTY6cmV0dXJuIDQwMTtjYXNlIDc6cmV0dXJuIDQwMztjYXNlIDU6cmV0dXJuIDQwNDtjYXNlIDY6Y2FzZSAxMDpyZXR1cm4gNDA5O2Nhc2UgOTpyZXR1cm4gNDEyO2Nhc2UgODpyZXR1cm4gNDI5O2Nhc2UgMTpyZXR1cm4gNDk5O2Nhc2UgMTU6Y2FzZSAxMzpjYXNlIDI6cmV0dXJuIDUwMDtjYXNlIDEyOnJldHVybiA1MDE7Y2FzZSAxNDpyZXR1cm4gNTAzO2Nhc2UgNDpyZXR1cm4gNTA0O2RlZmF1bHQ6cmV0dXJuIDB9fTsKXy5saz1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiJPSyI7Y2FzZSAxOnJldHVybiJDQU5DRUxMRUQiO2Nhc2UgMjpyZXR1cm4iVU5LTk9XTiI7Y2FzZSAzOnJldHVybiJJTlZBTElEX0FSR1VNRU5UIjtjYXNlIDQ6cmV0dXJuIkRFQURMSU5FX0VYQ0VFREVEIjtjYXNlIDU6cmV0dXJuIk5PVF9GT1VORCI7Y2FzZSA2OnJldHVybiJBTFJFQURZX0VYSVNUUyI7Y2FzZSA3OnJldHVybiJQRVJNSVNTSU9OX0RFTklFRCI7Y2FzZSAxNjpyZXR1cm4iVU5BVVRIRU5USUNBVEVEIjtjYXNlIDg6cmV0dXJuIlJFU09VUkNFX0VYSEFVU1RFRCI7Y2FzZSA5OnJldHVybiJGQUlMRURfUFJFQ09ORElUSU9OIjtjYXNlIDEwOnJldHVybiJBQk9SVEVEIjtjYXNlIDExOnJldHVybiJPVVRfT0ZfUkFOR0UiO2Nhc2UgMTI6cmV0dXJuIlVOSU1QTEVNRU5URUQiO2Nhc2UgMTM6cmV0dXJuIklOVEVSTkFMIjtjYXNlIDE0OnJldHVybiJVTkFWQUlMQUJMRSI7Y2FzZSAxNTpyZXR1cm4iREFUQV9MT1NTIjsKZGVmYXVsdDpyZXR1cm4iIn19O18ubWs9ZnVuY3Rpb24oKXt0aGlzLkxoPXRoaXMuTGg7dGhpcy5KaD10aGlzLkpofTtfLm5rPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMucmg9ITF9OwpfLm9rPWZ1bmN0aW9uKGEsYil7Xy5uay5jYWxsKHRoaXMsYT9hLnR5cGU6IiIpO3RoaXMucmVsYXRlZFRhcmdldD10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9dGhpcy5vZmZzZXRZPXRoaXMub2Zmc2V0WD0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy50aW1lU3RhbXA9MDt0aGlzLnFoPW51bGw7YSYmdGhpcy5pbml0KGEsYil9O18ucGs9ZnVuY3Rpb24oYSl7cmV0dXJuISghYXx8IWFbbmJhXSl9OwpwYmE9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmxpc3RlbmVyPWE7dGhpcy5wcm94eT1udWxsO3RoaXMuc3JjPWI7dGhpcy50eXBlPWM7dGhpcy5jYXB0dXJlPSEhZDt0aGlzLm9wPWU7dGhpcy5rZXk9KytvYmE7dGhpcy5xcT10aGlzLmpBPSExfTtxaz1mdW5jdGlvbihhKXthLnFxPSEwO2EubGlzdGVuZXI9bnVsbDthLnByb3h5PW51bGw7YS5zcmM9bnVsbDthLm9wPW51bGx9O3JrPWZ1bmN0aW9uKGEpe3RoaXMuc3JjPWE7dGhpcy5haT17fTt0aGlzLnFoPTB9O3NrPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi50eXBlO2lmKCEoYyBpbiBhLmFpKSlyZXR1cm4hMTt2YXIgZD1fLnljKGEuYWlbY10sYik7ZCYmKHFrKGIpLGEuYWlbY10ubGVuZ3RoPT0wJiYoZGVsZXRlIGEuYWlbY10sYS5xaC0tKSk7cmV0dXJuIGR9OwpfLnFiYT1mdW5jdGlvbihhKXt2YXIgYj0wO2ZvcihsZXQgYyBpbiBhLmFpKXtsZXQgZD1hLmFpW2NdO2ZvcihsZXQgZT0wO2U8ZC5sZW5ndGg7ZSsrKSsrYixxayhkW2VdKTtkZWxldGUgYS5haVtjXTthLnFoLS19fTt0az1mdW5jdGlvbihhLGIsYyxkKXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoOysrZSl7bGV0IGY9YVtlXTtpZighZi5xcSYmZi5saXN0ZW5lcj09YiYmZi5jYXB0dXJlPT0hIWMmJmYub3A9PWQpcmV0dXJuIGV9cmV0dXJuLTF9O18udms9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8udWsoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKylfLnZrKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz13ayhjKTtyZXR1cm4gXy5wayhhKT9fLnhrKGEsYixjLF8uWmEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOnJiYShhLGIsYywhMSxkLGUpfTsKcmJhPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZighYil0aHJvdyBFcnJvcigiSW52YWxpZCBldmVudCB0eXBlIik7dmFyIGc9Xy5aYShlKT8hIWUuY2FwdHVyZTohIWUsaD1fLnlrKGEpO2h8fChhW3prXT1oPW5ldyByayhhKSk7Yz1oLmFkZChiLGMsZCxnLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1zYmEoKTtjLnByb3h5PWQ7ZC5zcmM9YTtkLmxpc3RlbmVyPWM7aWYoYS5hZGRFdmVudExpc3RlbmVyKWU9PT12b2lkIDAmJihlPSExKSxhLmFkZEV2ZW50TGlzdGVuZXIoYi50b1N0cmluZygpLGQsZSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQodGJhKGIudG9TdHJpbmcoKSksZCk7ZWxzZSBpZihhLmFkZExpc3RlbmVyJiZhLnJlbW92ZUxpc3RlbmVyKWEuYWRkTGlzdGVuZXIoZCk7ZWxzZSB0aHJvdyBFcnJvcigiYWRkRXZlbnRMaXN0ZW5lciBhbmQgYXR0YWNoRXZlbnQgYXJlIHVuYXZhaWxhYmxlLiIpO3ViYSsrO3JldHVybiBjfTsKc2JhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXtyZXR1cm4gYi5jYWxsKGEuc3JjLGEubGlzdGVuZXIsYyl9dmFyIGI9dmJhO3JldHVybiBhfTtfLnVrPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKGxldCBmPTA7ZjxiLmxlbmd0aDtmKyspXy51ayhhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9d2soYyk7cmV0dXJuIF8ucGsoYSk/YS5TcC5hZGQoU3RyaW5nKGIpLGMsITAsXy5aYShkKT8hIWQuY2FwdHVyZTohIWQsZSk6cmJhKGEsYixjLCEwLGQsZSl9Owp3YmE9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcihsZXQgZj0wO2Y8Yi5sZW5ndGg7ZisrKXdiYShhLGJbZl0sYyxkLGUpO2Vsc2UoZD1fLlphKGQpPyEhZC5jYXB0dXJlOiEhZCxjPXdrKGMpLF8ucGsoYSkpP2EuU3AucmVtb3ZlKFN0cmluZyhiKSxjLGQsZSk6YSYmKGE9Xy55ayhhKSkmJihiPWEuYWlbYi50b1N0cmluZygpXSxhPS0xLGImJihhPXRrKGIsYyxkLGUpKSwoYz1hPi0xP2JbYV06bnVsbCkmJl8uQWsoYykpfTsKXy5Baz1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJudW1iZXIifHwhYXx8YS5xcSlyZXR1cm4hMTt2YXIgYj1hLnNyYztpZihfLnBrKGIpKXJldHVybiBzayhiLlNwLGEpO3ZhciBjPWEudHlwZSxkPWEucHJveHk7Yi5yZW1vdmVFdmVudExpc3RlbmVyP2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLGQsYS5jYXB0dXJlKTpiLmRldGFjaEV2ZW50P2IuZGV0YWNoRXZlbnQodGJhKGMpLGQpOmIuYWRkTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXIoZCk7dWJhLS07KGM9Xy55ayhiKSk/KHNrKGMsYSksYy5xaD09MCYmKGMuc3JjPW51bGwsYlt6a109bnVsbCkpOnFrKGEpO3JldHVybiEwfTt0YmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gQ2s/Q2tbYV06Q2tbYV09Im9uIithfTsKdmJhPWZ1bmN0aW9uKGEsYil7aWYoYS5xcSlhPSEwO2Vsc2V7Yj1uZXcgXy5vayhiLHRoaXMpO2xldCBjPWEubGlzdGVuZXIsZD1hLm9wfHxhLnNyYzthLmpBJiZfLkFrKGEpO2E9Yy5jYWxsKGQsYil9cmV0dXJuIGF9O18ueWs9ZnVuY3Rpb24oYSl7YT1hW3prXTtyZXR1cm4gYSBpbnN0YW5jZW9mIHJrP2E6bnVsbH07d2s9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbRGtdfHwoYVtEa109ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtEa119Owp4YmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4iTm8gRXJyb3IiO2Nhc2UgMTpyZXR1cm4iQWNjZXNzIGRlbmllZCB0byBjb250ZW50IGRvY3VtZW50IjtjYXNlIDI6cmV0dXJuIkZpbGUgbm90IGZvdW5kIjtjYXNlIDM6cmV0dXJuIkZpcmVmb3ggc2lsZW50bHkgZXJyb3JlZCI7Y2FzZSA0OnJldHVybiJBcHBsaWNhdGlvbiBjdXN0b20gZXJyb3IiO2Nhc2UgNTpyZXR1cm4iQW4gZXhjZXB0aW9uIG9jY3VycmVkIjtjYXNlIDY6cmV0dXJuIkh0dHAgcmVzcG9uc2UgYXQgNDAwIG9yIDUwMCBsZXZlbCI7Y2FzZSA3OnJldHVybiJSZXF1ZXN0IHdhcyBhYm9ydGVkIjtjYXNlIDg6cmV0dXJuIlJlcXVlc3QgdGltZWQgb3V0IjtjYXNlIDk6cmV0dXJuIlRoZSByZXNvdXJjZSBpcyBub3QgYXZhaWxhYmxlIG9mZmxpbmUiO2RlZmF1bHQ6cmV0dXJuIlVucmVjb2duaXplZCBlcnJvciBjb2RlIn19OwpfLkVrPWZ1bmN0aW9uKGEpe2lmKGEuSm0mJnR5cGVvZiBhLkptPT0iZnVuY3Rpb24iKXJldHVybiBhLkptKCk7aWYodHlwZW9mIE1hcCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgTWFwfHx0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20oYS52YWx1ZXMoKSk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gYS5zcGxpdCgiIik7aWYoXy5ZYShhKSl7bGV0IGI9W10sYz1hLmxlbmd0aDtmb3IobGV0IGQ9MDtkPGM7ZCsrKWIucHVzaChhW2RdKTtyZXR1cm4gYn1yZXR1cm4gXy5paihhKX07Cl8uRms9ZnVuY3Rpb24oYSl7aWYoYS5ScyYmdHlwZW9mIGEuUnM9PSJmdW5jdGlvbiIpcmV0dXJuIGEuUnMoKTtpZighYS5KbXx8dHlwZW9mIGEuSm0hPSJmdW5jdGlvbiIpe2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIE1hcClyZXR1cm4gQXJyYXkuZnJvbShhLmtleXMoKSk7aWYoISh0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBTZXQpKXtpZihfLllhKGEpfHx0eXBlb2YgYT09PSJzdHJpbmciKXt2YXIgYj1bXTthPWEubGVuZ3RoO2Zvcih2YXIgYz0wO2M8YTtjKyspYi5wdXNoKGMpO3JldHVybiBifWI9W107Yz0wO2ZvcihsZXQgZCBpbiBhKWJbYysrXT1kO3JldHVybiBifX19O3liYT1mdW5jdGlvbihhKXt2YXIgYj0iIjtfLmZqKGEsZnVuY3Rpb24oYyxkKXtiKz1kO2IrPSI6IjtiKz1jO2IrPSJcclxuIn0pO3JldHVybiBifTsKXy5Haz1mdW5jdGlvbigpe18ubWsuY2FsbCh0aGlzKTt0aGlzLlNwPW5ldyByayh0aGlzKTt0aGlzLnp2PXRoaXM7dGhpcy53az1udWxsfTtfLnhrPWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGEuU3AuYWRkKFN0cmluZyhiKSxjLCExLGQsZSl9O0hrPWZ1bmN0aW9uKGEsYixjLGQpe2I9YS5TcC5haVtTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTt2YXIgZT0hMDtmb3IobGV0IGY9MDtmPGIubGVuZ3RoOysrZil7bGV0IGc9YltmXTtpZihnJiYhZy5xcSYmZy5jYXB0dXJlPT1jKXtsZXQgaD1nLmxpc3RlbmVyLGs9Zy5vcHx8Zy5zcmM7Zy5qQSYmc2soYS5TcCxnKTtlPWguY2FsbChrLGQpIT09ITEmJmV9fXJldHVybiBlJiYhZC5kZWZhdWx0UHJldmVudGVkfTtfLklrPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwNDpjYXNlIDIwNjpjYXNlIDMwNDpjYXNlIDEyMjM6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19Owp6YmE9ZnVuY3Rpb24oKXt9O0prPWZ1bmN0aW9uKCl7fTtfLktrPWZ1bmN0aW9uKGEpe18uR2suY2FsbCh0aGlzKTt0aGlzLmhlYWRlcnM9bmV3IE1hcDt0aGlzLkloPWF8fG51bGw7dGhpcy5yaD0hMTt0aGlzLnFoPW51bGw7dGhpcy5BaD0iIjt0aGlzLnNoPTA7dGhpcy54aD0iIjt0aGlzLndoPXRoaXMuR2g9dGhpcy5DaD10aGlzLkZoPSExO3RoaXMuQmg9MDt0aGlzLnRoPW51bGw7dGhpcy5EaD0iIjt0aGlzLnloPSExfTtCYmE9ZnVuY3Rpb24oYSxiKXthLnJoPSExO2EucWgmJihhLndoPSEwLGEucWguYWJvcnQoKSxhLndoPSExKTthLnhoPWI7YS5zaD01O0FiYShhKTtMayhhKX07QWJhPWZ1bmN0aW9uKGEpe2EuRmh8fChhLkZoPSEwLGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoImVycm9yIikpfTsKQ2JhPWZ1bmN0aW9uKGEpe2lmKGEucmgmJnR5cGVvZiBNayE9InVuZGVmaW5lZCIpaWYoYS5DaCYmXy5OayhhKT09NClzZXRUaW1lb3V0KGEuWUkuYmluZChhKSwwKTtlbHNlIGlmKGEuZGlzcGF0Y2hFdmVudCgicmVhZHlzdGF0ZWNoYW5nZSIpLGEuTW0oKSl7YS5nZXRTdGF0dXMoKTthLnJoPSExO3RyeXtpZihfLk9rKGEpKWEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKTtlbHNle2Euc2g9Njt0cnl7dmFyIGI9Xy5OayhhKT4yP2EucWguc3RhdHVzVGV4dDoiIn1jYXRjaChjKXtiPSIifWEueGg9YisiIFsiK2EuZ2V0U3RhdHVzKCkrIl0iO0FiYShhKX19ZmluYWxseXtMayhhKX19fTtMaz1mdW5jdGlvbihhLGIpe2lmKGEucWgpe2EudGgmJihjbGVhclRpbWVvdXQoYS50aCksYS50aD1udWxsKTtsZXQgYz1hLnFoO2EucWg9bnVsbDtifHxhLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e2Mub25yZWFkeXN0YXRlY2hhbmdlPW51bGx9Y2F0Y2goZCl7fX19OwpfLk9rPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZ2V0U3RhdHVzKCksYztpZighKGM9Xy5JayhiKSkpe2lmKGI9Yj09PTApYT1fLkVqKDEsU3RyaW5nKGEuQWgpKSwhYSYmXy5VYS5zZWxmJiZfLlVhLnNlbGYubG9jYXRpb24mJihhPV8uVWEuc2VsZi5sb2NhdGlvbi5wcm90b2NvbC5zbGljZSgwLC0xKSksYj0hRGJhLnRlc3QoYT9hLnRvTG93ZXJDYXNlKCk6IiIpO2M9Yn1yZXR1cm4gY307Xy5Oaz1mdW5jdGlvbihhKXtyZXR1cm4gYS5xaD9hLnFoLnJlYWR5U3RhdGU6MH07Xy5Qaz1mdW5jdGlvbihhKXt0cnl7aWYoIWEucWgpcmV0dXJuIG51bGw7aWYoInJlc3BvbnNlImluIGEucWgpcmV0dXJuIGEucWgucmVzcG9uc2U7c3dpdGNoKGEuRGgpe2Nhc2UgIiI6Y2FzZSAidGV4dCI6cmV0dXJuIGEucWgucmVzcG9uc2VUZXh0O2Nhc2UgImFycmF5YnVmZmVyIjppZigibW96UmVzcG9uc2VBcnJheUJ1ZmZlciJpbiBhLnFoKXJldHVybiBhLnFoLm1velJlc3BvbnNlQXJyYXlCdWZmZXJ9cmV0dXJuIG51bGx9Y2F0Y2goYil7cmV0dXJuIG51bGx9fTsKRWJhPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2E9YS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKS5zcGxpdCgiXHJcbiIpO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtpZigvXltcc1x4YTBdKiQvLnRlc3QoYVtkXSkpY29udGludWU7dmFyIGM9TGFhKGFbZF0pO2xldCBlPWNbMF07Yz1jWzFdO2lmKHR5cGVvZiBjIT09InN0cmluZyIpY29udGludWU7Yz1jLnRyaW0oKTtsZXQgZj1iW2VdfHxbXTtiW2VdPWY7Zi5wdXNoKGMpfXJldHVybiBIYWEoYixmdW5jdGlvbihkKXtyZXR1cm4gZC5qb2luKCIsICIpfSl9O0ZiYT1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEueGg9PT0ic3RyaW5nIj9hLnhoOlN0cmluZyhhLnhoKX07Xy5IYmE9ZnVuY3Rpb24oYSxiLGM9e30pe3JldHVybiBuZXcgR2JhKGIsYSxjKX07SmJhPWZ1bmN0aW9uKGEsYj17fSl7cmV0dXJuIG5ldyBJYmEoYSxiKX07Ck1iYT1mdW5jdGlvbihhKXthLnhoLnJwKCJkYXRhIixiPT57aWYoIjEiaW4gYil7dmFyIGM9YlsiMSJdO2xldCBkO3RyeXtkPWEuemgoYyl9Y2F0Y2goZSl7UWsoYSxuZXcgXy5SaygxMyxgRXJyb3Igd2hlbiBkZXNlcmlhbGl6aW5nIHJlc3BvbnNlIGRhdGE7IGVycm9yOiAke2V9LCByZXNwb25zZTogJHtjfWApKX1kJiZLYmEoYSxkKX1pZigiMiJpbiBiKWZvcihiPUxiYShhLGJbIjIiXSksYz0wO2M8YS53aC5sZW5ndGg7YysrKWEud2hbY10oYil9KTthLnhoLnJwKCJlbmQiLCgpPT57U2soYSxUayhhKSk7Zm9yKGxldCBiPTA7YjxhLnNoLmxlbmd0aDtiKyspYS5zaFtiXSgpfSk7YS54aC5ycCgiZXJyb3IiLCgpPT57aWYoYS5xaC5sZW5ndGghPT0wKXt2YXIgYj1hLlRpLnNoO2IhPT0wfHxfLk9rKGEuVGkpfHwoYj02KTt2YXIgYz0tMTtzd2l0Y2goYil7Y2FzZSAwOnZhciBkPTI7YnJlYWs7Y2FzZSA3OmQ9MTA7YnJlYWs7Y2FzZSA4OmQ9NDticmVhaztjYXNlIDY6Yz1hLlRpLmdldFN0YXR1cygpOwpkPWxiYShjKTticmVhaztkZWZhdWx0OmQ9MTR9U2soYSxUayhhKSk7Yj14YmEoYikrIiwgZXJyb3I6ICIrRmJhKGEuVGkpO2MhPT0tMSYmKGIrPWAsIGh0dHAgc3RhdHVzIGNvZGU6ICR7Y31gKTtRayhhLG5ldyBfLlJrKGQsYikpfX0pfTtRaz1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYz0wO2M8YS5xaC5sZW5ndGg7YysrKWEucWhbY10oYil9O1NrPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPTA7YzxhLnRoLmxlbmd0aDtjKyspYS50aFtjXShiKX07VGs9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz1FYmEoYS5UaSk7T2JqZWN0LmtleXMoYykuZm9yRWFjaChkPT57YltkXT1jW2RdfSk7cmV0dXJuIGJ9O0tiYT1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYz0wO2M8YS5yaC5sZW5ndGg7YysrKWEucmhbY10oYil9OwpMYmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz0yLGQ9e307dHJ5e2xldCBmO2Y9TmJhKGIpO2M9Xy5LZyhmLDEpO3ZhciBlPWYuZ2V0TWVzc2FnZSgpO18uQ2coZixPYmEsMykubGVuZ3RoJiYoZFsiZ3JwYy13ZWItc3RhdHVzLWRldGFpbHMtYmluIl09Yil9Y2F0Y2goZil7YS5UaSYmYS5UaS5nZXRTdGF0dXMoKT09PTQwND8oYz01LGU9Ik5vdCBGb3VuZDogIitTdHJpbmcoYS5UaS5BaCkpOihjPTE0LGU9YFVuYWJsZSB0byBwYXJzZSBScGNTdGF0dXM6ICR7Zn1gKX1yZXR1cm57Y29kZTpjLGRldGFpbHM6ZSxtZXRhZGF0YTpkfX07ClFiYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBQYmE7Xy52ayhhLlRpLCJjb21wbGV0ZSIsKCk9PntpZihfLk9rKGEuVGkpKXt2YXIgZD1hLlRpLlJyKCk7dmFyIGU7aWYoZT1iKWU9YS5UaSxlLnFoJiZlLk1tKCk/KGU9ZS5xaC5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIiksZT1lPT09bnVsbD92b2lkIDA6ZSk6ZT12b2lkIDAsZT1lPT09InRleHQvcGxhaW4iO2lmKGUpe2lmKCFhdG9iKXRocm93IEVycm9yKCJDYW5ub3QgZGVjb2RlIEJhc2U2NCByZXNwb25zZSIpO2Q9YXRvYihkKX10cnl7dmFyIGY9YS56aChkKX1jYXRjaChoKXtRayhhLFVrKG5ldyBfLlJrKDEzLGBFcnJvciB3aGVuIGRlc2VyaWFsaXppbmcgcmVzcG9uc2UgZGF0YTsgZXJyb3I6ICR7aH0sIHJlc3BvbnNlOiAke2R9YCksYykpO3JldHVybn1kPWxiYShhLlRpLmdldFN0YXR1cygpKTtTayhhLFRrKGEpKTtkPT09MD9LYmEoYSxmKTpRayhhLFVrKG5ldyBfLlJrKGQsIlhociBzdWNjZWVkZWQgYnV0IHRoZSBzdGF0dXMgY29kZSBpcyBub3QgMjAwIiksCmMpKX1lbHNle2Q9YS5UaS5ScigpO2Y9VGsoYSk7aWYoZCl7dmFyIGc9TGJhKGEsZCk7ZD1nLmNvZGU7ZT1nLmRldGFpbHM7Zz1nLm1ldGFkYXRhfWVsc2UgZD0yLGU9YFJwYyBmYWlsZWQgZHVlIHRvIHhociBlcnJvci4gdXJpOiAke1N0cmluZyhhLlRpLkFoKX0sIGVycm9yIGNvZGU6ICR7YS5UaS5zaH0sIGVycm9yOiAke0ZiYShhLlRpKX1gLGc9ZjtTayhhLGYpO1FrKGEsVWsobmV3IF8uUmsoZCxlLGcpLGMpKX19KX07Vms9ZnVuY3Rpb24oYSxiKXtiPWEuaW5kZXhPZihiKTtiPi0xJiZhLnNwbGljZShiLDEpfTtVaz1mdW5jdGlvbihhLGIpe2Iuc3RhY2smJihhLnN0YWNrKz0iXG4iK2Iuc3RhY2spO3JldHVybiBhfTtXaz1mdW5jdGlvbihhKXt0aGlzLnNoPWEuRHB8fG51bGw7dGhpcy5yaD1hLllQfHwhMX07ClhrPWZ1bmN0aW9uKGEsYil7Xy5Hay5jYWxsKHRoaXMpO3RoaXMuRmg9YTt0aGlzLnloPWI7dGhpcy54aD12b2lkIDA7dGhpcy5zdGF0dXM9dGhpcy5yZWFkeVN0YXRlPTA7dGhpcy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVRleHQ9dGhpcy5yZXNwb25zZT10aGlzLnN0YXR1c1RleHQ9IiI7dGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDt0aGlzLkNoPW5ldyBIZWFkZXJzO3RoaXMucmg9bnVsbDt0aGlzLkRoPSJHRVQiO3RoaXMudGg9IiI7dGhpcy5xaD0hMTt0aGlzLkFoPXRoaXMuc2g9dGhpcy53aD1udWxsO3RoaXMuQmg9bmV3IEFib3J0Q29udHJvbGxlcn07UmJhPWZ1bmN0aW9uKGEpe2Euc2gucmVhZCgpLnRoZW4oYS5uTi5iaW5kKGEpKS5jYXRjaChhLlZBLmJpbmQoYSkpfTtaaz1mdW5jdGlvbihhKXthLnJlYWR5U3RhdGU9NDthLndoPW51bGw7YS5zaD1udWxsO2EuQWg9bnVsbDtZayhhKX07WWs9ZnVuY3Rpb24oYSl7YS5vbnJlYWR5c3RhdGVjaGFuZ2UmJmEub25yZWFkeXN0YXRlY2hhbmdlLmNhbGwoYSl9OwpfLiRrPWZ1bmN0aW9uKGEpe18ubWsuY2FsbCh0aGlzKTt0aGlzLndoPWE7dGhpcy5xaD17fX07Xy5hbD1mdW5jdGlvbihhLGIsYyxkLGUsZil7QXJyYXkuaXNBcnJheShjKXx8KGMmJihTYmFbMF09Yy50b1N0cmluZygpKSxjPVNiYSk7Zm9yKGxldCBnPTA7ZzxjLmxlbmd0aDtnKyspe2xldCBoPV8udmsoYixjW2ddLGR8fGEuaGFuZGxlRXZlbnQsZXx8ITEsZnx8YS53aHx8YSk7aWYoIWgpYnJlYWs7YS5xaFtoLmtleV09aH19O18uYmw9ZnVuY3Rpb24oYSl7Xy5maihhLnFoLGZ1bmN0aW9uKGIsYyl7dGhpcy5xaC5oYXNPd25Qcm9wZXJ0eShjKSYmXy5BayhiKX0sYSk7YS5xaD17fX07VGJhPWZ1bmN0aW9uKGEsYixjKXthLnNoPSExO3Rocm93IEVycm9yKCJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIithLnJoKyIuIEVycm9yOiAiK2MrIi4gV2l0aCBpbnB1dDpcbiIrYik7fTsKY2w9ZnVuY3Rpb24oKXt0aGlzLkFoPW51bGw7dGhpcy56aD1bXTt0aGlzLndoPXRoaXMucWg9dGhpcy50aD10aGlzLnJoPXRoaXMuQ2g9MDt0aGlzLnhoPW51bGw7dGhpcy55aD0wfTtkbD1mdW5jdGlvbihhLGIsYyxkKXthLnJoPTM7YS5BaD0iVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrYS5DaCsiLyIrYysiLiBFcnJvcjogIitkKyIuIFdpdGggaW5wdXQ6XG4iK2I7dGhyb3cgRXJyb3IoYS5BaCk7fTtlbD1mdW5jdGlvbigpe3RoaXMucWg9bnVsbDt0aGlzLnJoPTA7dGhpcy50aD1uZXcgVWJhO3RoaXMud2g9bmV3IGNsfTtWYmE9ZnVuY3Rpb24oYSxiLGMpe2EucWg9IlRoZSBzdHJlYW0gaXMgYnJva2VuIEAiK2EucmgrIi4gRXJyb3I6ICIrYysiLiBXaXRoIGlucHV0OlxuIitiO3Rocm93IEVycm9yKGEucWgpO307Zmw9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PSJcciJ8fGE9PSJcbiJ8fGE9PSIgInx8YT09Ilx0In07CmdsPWZ1bmN0aW9uKGEpe3RoaXMuQ2g9bnVsbDt0aGlzLnhoPVtdO3RoaXMud2g9IiI7dGhpcy5GaD1bXTt0aGlzLnRoPXRoaXMucmg9MDt0aGlzLnpoPSExO3RoaXMuQWg9MDt0aGlzLkdoPS9bXFwiXS9nO3RoaXMucWg9dGhpcy55aD0wO3RoaXMuRGg9ISghYXx8IWEuak0pfTtobD1mdW5jdGlvbihhLGIsYyl7YS55aD0zO2EuQ2g9IlRoZSBzdHJlYW0gaXMgYnJva2VuIEAiK2EudGgrIi8iK2MrIi4gV2l0aCBpbnB1dDpcbiIrYjt0aHJvdyBFcnJvcihhLkNoKTt9O2lsPWZ1bmN0aW9uKCl7dGhpcy54aD10aGlzLnRoPW51bGw7dGhpcy5yaD10aGlzLnFoPTA7dGhpcy53aD1bXTt0aGlzLnpoPSExfTsKV2JhPWZ1bmN0aW9uKGEpe3ZhciBiPWEucWg/YS5xaC5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIik6bnVsbDtpZighYilyZXR1cm4gbnVsbDtiPWIudG9Mb3dlckNhc2UoKTtyZXR1cm4gYi5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi9qc29uIik/Yi5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi9qc29uK3Byb3RvYnVmIik/bmV3IGlsOm5ldyBnbDpiLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3gtcHJvdG9idWYiKT8oYT1hLnFoP2EucWguZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmciKTpudWxsKT9hLnRvTG93ZXJDYXNlKCk9PSJiYXNlNjQiP25ldyBlbDpudWxsOm5ldyBjbDpudWxsfTtqbD1mdW5jdGlvbihhLGIpe2Eud2ghPWImJihhLndoPWIsYS56aCYmYS56aCgpKX07a2w9ZnVuY3Rpb24oYSl7Xy5ibChhLnloKTtpZihhLnFoKXtsZXQgYj1hLnFoO2EucWg9bnVsbDtiLmFib3J0KCk7Yi5kaXNwb3NlKCl9fTsKWGJhPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspe2xldCBkPWFbY107Yi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RyeXtlKGQpfWNhdGNoKGYpe319KX19O2xsPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5yaFtiXTtjJiZjLmZvckVhY2goZnVuY3Rpb24oZCl7dHJ5e2QoKX1jYXRjaChlKXt9fSk7KGM9YS5xaFtiXSkmJmMuZm9yRWFjaChmdW5jdGlvbihkKXtkKCl9KTthLnFoW2JdPVtdfTtZYmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5yZWR1Y2UoKGMsZCk9PmU9PmQuaW50ZXJjZXB0KGUsYyksYSl9OwpiY2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuT0ksZT1iLmdldE1ldGFkYXRhKCksZj1fLlpiYShhLCEwKTthPV8uJGJhKGEsZSxmLGMrZC5nZXROYW1lKCkpO2M9Xy5hY2EoZixkLnFoLCExKTtRYmEoYyxlWyJYLUdvb2ctRW5jb2RlLVJlc3BvbnNlLUlmLUV4ZWN1dGFibGUiXT09PSJiYXNlNjQiKTtiPWQucmgoYi5YRSk7Zi5zZW5kKGEsIlBPU1QiLGIpO3JldHVybiBjfTtfLlpiYT1mdW5jdGlvbihhLGIpe2I9YS5zaCYmIWI7cmV0dXJuIGEuVEZ8fGI/bmV3IF8uS2sobmV3IFdrKHtEcDphLlRGLFlQOmJ9KSk6bmV3IF8uS2t9OwpfLiRiYT1mdW5jdGlvbihhLGIsYyxkKXtiWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbitwcm90b2J1ZiI7YlsiWC1Vc2VyLUFnZW50Il09ImdycGMtd2ViLWphdmFzY3JpcHQvMC4xIjt2YXIgZT1iLkF1dGhvcml6YXRpb247aWYoZSYmY2NhLmhhcyhlLnNwbGl0KCIgIilbMF0pfHxhLndpdGhDcmVkZW50aWFscyljLnloPSEwO2lmKGEueEYpYT1kLF8uamooYik/ZD1hOihiPXliYShiKSx0eXBlb2YgYT09PSJzdHJpbmciP2Q9Xy5GaihhLF8uQ2ooIiRodHRwSGVhZGVycyIpLGIpOihhLmh2KCIkaHR0cEhlYWRlcnMiLGIpLGQ9YSkpO2Vsc2UgZm9yKGxldCBmIG9mIE9iamVjdC5rZXlzKGIpKWMuaGVhZGVycy5zZXQoZixiW2ZdKTtyZXR1cm4gZH07Xy5hY2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGMpe2EuaXNBY3RpdmUoKTtjPW5ldyBkY2EoYSk7dmFyIGQ9bmV3IGVjYShjKX1yZXR1cm4gbmV3IGZjYSh7VGk6YSx6TzpkfSxiKX07Cl8ubWw9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uSChhLDEwKX07Xy5nY2E9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uSChhLDE5KX07Xy5ybD1mdW5jdGlvbihhKXtyZXR1cm4gXy5IKGEsMSl9O2hjYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5MZyhhLDEpfTtfLnNsPWZ1bmN0aW9uKGEpe3JldHVybiBfLkcoYSxpY2EsNCl9O18ua2NhPWZ1bmN0aW9uKGEpe2E9YT8/IkZPTExPV19TWVNURU0iO3JldHVybiBhPT09IkRBUksifHxhPT09IkZPTExPV19TWVNURU0iJiZqY2EubWF0Y2hlc307Xy50bD1mdW5jdGlvbihhKXtyZXR1cm4gYSpNYXRoLlBJLzE4MH07Xy51bD1mdW5jdGlvbihhKXtyZXR1cm4gYSoxODAvTWF0aC5QSX07Cm1jYT1mdW5jdGlvbihhLGIpe18uZmooYixmdW5jdGlvbihjLGQpe2Q9PSJzdHlsZSI/YS5zdHlsZS5jc3NUZXh0PWM6ZD09ImNsYXNzIj9hLmNsYXNzTmFtZT1jOmQ9PSJmb3IiP2EuaHRtbEZvcj1jOmxjYS5oYXNPd25Qcm9wZXJ0eShkKT9hLnNldEF0dHJpYnV0ZShsY2FbZF0sYyk6Xy5FYihkLCJhcmlhLSIpfHxfLkViKGQsImRhdGEtIik/YS5zZXRBdHRyaWJ1dGUoZCxjKTphW2RdPWN9KX07Xy5vY2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWFyZ3VtZW50cyxlPWRvY3VtZW50LGY9ZFsxXSxnPXZsKGUsU3RyaW5nKGRbMF0pKTtmJiYodHlwZW9mIGY9PT0ic3RyaW5nIj9nLmNsYXNzTmFtZT1mOkFycmF5LmlzQXJyYXkoZik/Zy5jbGFzc05hbWU9Zi5qb2luKCIgIik6bWNhKGcsZikpO2QubGVuZ3RoPjImJm5jYShlLGcsZCwyKTtyZXR1cm4gZ307Cm5jYT1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGYpe2YmJmIuYXBwZW5kQ2hpbGQodHlwZW9mIGY9PT0ic3RyaW5nIj9hLmNyZWF0ZVRleHROb2RlKGYpOmYpfWZvcig7ZDxjLmxlbmd0aDtkKyspe2xldCBmPWNbZF07IV8uWWEoZil8fF8uWmEoZikmJmYubm9kZVR5cGU+MD9lKGYpOl8ucmMoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIj9fLkJjKGYpOmYsZSl9fTtfLndsPWZ1bmN0aW9uKGEpe3JldHVybiB2bChkb2N1bWVudCxhKX07dmw9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiKX07Xy54bD1mdW5jdGlvbihhLGIpe2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIubmV4dFNpYmxpbmcpfTsKXy55bD1mdW5jdGlvbihhKXthJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKX07Xy56bD1mdW5jdGlvbihhLGIpe3JldHVybiBhJiZiP2E9PWJ8fGEuY29udGFpbnMoYik6ITF9O18uQWw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZVR5cGU9PTk/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnR9O18uQmw9ZnVuY3Rpb24oYSl7dGhpcy5xaD1hfHxfLlVhLmRvY3VtZW50fHxkb2N1bWVudH07Xy5EbD1mdW5jdGlvbihhKXthPV8uQ2woYSk7cmV0dXJuIF8ueGooYSl9O18uRWw9ZnVuY3Rpb24oYSl7YT1fLkNsKGEpO3JldHVybiBfLnFqKGEpfTtfLkNsPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphfTsKcGNhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuaGVhZDthPShuZXcgXy5CbChhKSkuY3JlYXRlRWxlbWVudCgiU0NSSVBUIik7YS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2EuY2hhcnNldD0iVVRGLTgiO2EuYXN5bmM9ITE7YS5kZWZlcj0hMTtjJiYoYS5vbmVycm9yPWMpO2QmJihhLm9ubG9hZD1kKTthLnNyYz1fLnJqKGIpO18uS2FhKGEpO2UuYXBwZW5kQ2hpbGQoYSl9O3FjYT1mdW5jdGlvbihhLGIpe3ZhciBjPSIiO2ZvcihsZXQgZCBvZiBhKWQubGVuZ3RoJiZkWzBdPT09Ii8iP2M9ZDooYyYmY1tjLmxlbmd0aC0xXSE9PSIvIiYmKGMrPSIvIiksYys9ZCk7cmV0dXJuIGMrIi4iK2J9O3JjYT1mdW5jdGlvbihhLGIpe2Eud2hbYl09YS53aFtiXXx8e2lNOiFhLnlofTtyZXR1cm4gYS53aFtiXX07CnVjYT1mdW5jdGlvbihhLGIpe3ZhciBjPXJjYShhLGIpLGQ9Yy5zTztpZihkJiZjLmlNJiYoZGVsZXRlIGEud2hbYl0sIWEucWhbYl0pKXt2YXIgZT1hLnhoO0ZsKGEuc2gsZj0+e3ZhciBnPWYucWhbYl18fFtdLGg9ZVtiXT1zY2EoZy5sZW5ndGgsKCk9PntkZWxldGUgZVtiXTtkKGYucmgpO2EudGgmJmEudGgoYik7YS56aC5kZWxldGUoYik7dGNhKGEsYil9KTtmb3IobGV0IGsgb2YgZylhLnFoW2tdJiZoKCl9KX19O3RjYT1mdW5jdGlvbihhLGIpe0ZsKGEuc2gsYz0+e2M9Yy50aFtiXXx8W107dmFyIGQ9YS5yaFtiXTtkZWxldGUgYS5yaFtiXTt2YXIgZT1kP2QubGVuZ3RoOjA7Zm9yKGxldCBmPTA7ZjxlOysrZil0cnl7ZFtmXS5OaShhLnFoW2JdKX1jYXRjaChnKXtzZXRUaW1lb3V0KCgpPT57dGhyb3cgZzt9KX1mb3IobGV0IGYgb2YgYylhLnhoW2ZdJiZhLnhoW2ZdKCl9KX07CnZjYT1mdW5jdGlvbihhLGIpe2EucmVxdWVzdGVkTW9kdWxlc1tiXXx8KGEucmVxdWVzdGVkTW9kdWxlc1tiXT0hMCxGbChhLnNoLGM9Pnt2YXIgZD1jLnFoW2JdLGU9ZD9kLmxlbmd0aDowO2ZvcihsZXQgZj0wO2Y8ZTsrK2Ype2xldCBnPWRbZl07YS5xaFtnXXx8dmNhKGEsZyl9Yy5zaC5QQShiLGY9Pnt2YXIgZz1hLnJoW2JdfHxbXTtmb3IobGV0IGggb2YgZykoZz1oLmJwKSYmZyhmJiZmLmVycm9yfHxFcnJvcihgQ291bGQgbm90IGxvYWQgIiR7Yn0iLmApKTtkZWxldGUgYS5yaFtiXTthLk1zJiZhLk1zKGIsZil9LCgpPT57YS56aC5oYXMoYil8fHRjYShhLGIpfSl9KSl9O3djYT1mdW5jdGlvbihhLGIsYyxkKXthLnFoW2JdP2MoYS5xaFtiXSk6KChhLnJoW2JdPWEucmhbYl18fFtdKS5wdXNoKHtOaTpjLGJwOmR9KSx2Y2EoYSxiKSl9O0ZsPWZ1bmN0aW9uKGEsYil7YS5jb25maWc/YihhLmNvbmZpZyk6YS5xaC5wdXNoKGIpfTsKc2NhPWZ1bmN0aW9uKGEsYil7aWYoYSlyZXR1cm4oKT0+ey0tYXx8YigpfTtiKCk7cmV0dXJuKCk9Pnt9fTtfLkhsPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e3djYShHbC5nZXRJbnN0YW5jZSgpLGAke2F9YCxkPT57YihkKX0sYyl9KX07Xy5JbD1mdW5jdGlvbihhLGIpe3ZhciBjPUdsLmdldEluc3RhbmNlKCk7YT1gJHthfWA7aWYoYy5xaFthXSl0aHJvdyBFcnJvcihgTW9kdWxlICR7YX0gaGFzIGJlZW4gcHJvdmlkZWQgbW9yZSB0aGFuIG9uY2UuYCk7Yy5xaFthXT1ifTtfLkxsPWZ1bmN0aW9uKCl7dmFyIGE9Xy5KbCxiOyhiPSFhKXx8KGI9YS5yaCgpLGI9IV8uSmcoYiwxOCkpO2lmKGIpcmV0dXJuITE7Yj1fLmdjYShhLnJoKCkpO2lmKCFifHwhYi5zdGFydHNXaXRoKCJodHRwIikpcmV0dXJuITE7YT1fLk9nKGEsNDQsMSk7cmV0dXJuIEtsPT09dm9pZCAwPyExOktsPGF9OwpfLk5sPWFzeW5jIGZ1bmN0aW9uKGEsYil7dHJ5e2lmKF8uTWw/MDpfLkxsKCkpcmV0dXJuKGF3YWl0IF8uSGwoImxvZyIpKS5Idy5odShhLGIpfWNhdGNoKGMpe31yZXR1cm4gbnVsbH07Xy5PbD1hc3luYyBmdW5jdGlvbihhLGIsYyl7aWYoKF8uTWw/MDpfLkxsKCkpJiZhKXRyeXtsZXQgZD1hd2FpdCBhO2QmJihhd2FpdCBfLkhsKCJsb2ciKSkuSHcuWm4oZCxiLGMpfWNhdGNoKGQpe319O18uUGw9YXN5bmMgZnVuY3Rpb24oYSl7aWYoKF8uTWw/MDpfLkxsKCkpJiZhKXRyeXtsZXQgYj1hd2FpdCBhO2ImJihhd2FpdCBfLkhsKCJsb2ciKSkuSHcuanUoYil9Y2F0Y2goYil7fX07Xy5RbD1mdW5jdGlvbigpe3ZhciBhO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPXBlcmZvcm1hbmNlLm5vdygpO2lmKGEmJmItYTw2RTQpcmV0dXJuITA7YT1iO3JldHVybiExfX07Cl8uTT1hc3luYyBmdW5jdGlvbihhLGIsYz17fSl7aWYoXy5MbCgpfHxjJiZjLmZvcmNlMTAwUGVyY2VudFNhbXBsZWRMb2c9PT0hMCl0cnl7KGF3YWl0IF8uSGwoImxvZyIpKS54SC54aChhLGIsYyl9Y2F0Y2goZCl7fX07eGNhPWFzeW5jIGZ1bmN0aW9uKCl7cmV0dXJuKGF3YWl0IF8uSGwoImxvZyIpKS54Sn07Xy5SbD1mdW5jdGlvbigpe307Xy5TbD1mdW5jdGlvbihhKXtyZXR1cm4gYX07Xy5UbD1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319O1VsPWZ1bmN0aW9uKCl7fTsKemNhPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBWbHx8YSBpbnN0YW5jZW9mIHljYXx8YSBpbnN0YW5jZW9mIFdsKXJldHVybiBhO2lmKHR5cGVvZiBhLm5leHQ9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBWbCgoKT0+YSk7aWYodHlwZW9mIGFbU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IFZsKCgpPT5hW1N5bWJvbC5pdGVyYXRvcl0oKSk7aWYodHlwZW9mIGEueHg9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBWbCgoKT0+YS54eCgpKTt0aHJvdyBFcnJvcigiTm90IGFuIGl0ZXJhdG9yIG9yIGl0ZXJhYmxlLiIpO307QWNhPWZ1bmN0aW9uKCl7fTtfLlhsPWZ1bmN0aW9uKCl7fTtfLllsPWZ1bmN0aW9uKGEpe3RoaXMucWg9YTt0aGlzLnJoPW51bGx9O18uWmw9ZnVuY3Rpb24oYSl7aWYoYS5xaD09bnVsbCl0aHJvdyBFcnJvcigiU3RvcmFnZSBtZWNoYW5pc206IFN0b3JhZ2UgdW5hdmFpbGFibGUiKTthLmlzQXZhaWxhYmxlKCl8fF8uQmIoRXJyb3IoIlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIHVuYXZhaWxhYmxlIikpfTsKQmNhPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDt0cnl7YT1fLlVhLnNlc3Npb25TdG9yYWdlfHxudWxsfWNhdGNoKGIpe31fLllsLmNhbGwodGhpcyxhKX07Xy4kbD1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLmxlbmd0aDowfTtfLmJtPWZ1bmN0aW9uKGEsYil7YiYmXy5hbShiLGM9PnthW2NdPWJbY119KX07Xy5jbT1mdW5jdGlvbihhLGIsYyl7YiE9bnVsbCYmKGE9TWF0aC5tYXgoYSxiKSk7YyE9bnVsbCYmKGE9TWF0aC5taW4oYSxjKSk7cmV0dXJuIGF9O18uZG09ZnVuY3Rpb24oYSxiLGMpe2E+PWImJmE8Y3x8KGMtPWIsYT0oKGEtYiklYytjKSVjK2IpO3JldHVybiBhfTtfLmltPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWF0aC5hYnMoYS1iKTw9KGN8fDFFLTkpfTtfLmptPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifTtfLmttPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJvYmplY3QifTsKXy5sbT1mdW5jdGlvbihhLGIpe3JldHVybiBhPT1udWxsP2I6YX07Xy5tbT1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn07Xy5ubT1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSEhYX07Xy5hbT1mdW5jdGlvbihhLGIpe2lmKGEpZm9yKGxldCBjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmYihjLGFbY10pfTtfLm9tPWZ1bmN0aW9uKGEsYil7YSYmXy5DY2EoYSxjPT5iPT09Yyl9O18uQ2NhPWZ1bmN0aW9uKGEsYixjKXtpZihhKXt2YXIgZD0wO2M9Y3x8Xy4kbChhKTtmb3IobGV0IGU9MCxmPV8uJGwoYSk7ZTxmJiYoYihhW2VdKSYmKGEuc3BsaWNlKGUtLSwxKSxkKyspLGQhPT1jKTsrK2UpO319O18ucG09ZnVuY3Rpb24oYSl7cmV0dXJuYCR7TWF0aC5yb3VuZChhKX1weGB9O3FtPWZ1bmN0aW9uKGEsYil7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYikpcmV0dXJuIGFbYl19OwpfLnJtPWZ1bmN0aW9uKC4uLmEpe18uVWEuY29uc29sZSYmXy5VYS5jb25zb2xlLmVycm9yJiZfLlVhLmNvbnNvbGUuZXJyb3IoLi4uYSl9O18uc209ZnVuY3Rpb24oYSl7Zm9yKGxldCBbYixjXW9mIE9iamVjdC5lbnRyaWVzKGEpKXtsZXQgZD1iO2M9PT12b2lkIDAmJmRlbGV0ZSBhW2RdfX07Xy50bT1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYyBvZiBiKWI9UmVmbGVjdC5nZXQoYSxjKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLHt2YWx1ZTpiLGVudW1lcmFibGU6ITF9KX07Cl8uRGNhPWZ1bmN0aW9uKGEpe2lmKHVtW2FdKXJldHVybiB1bVthXTt2YXIgYj1NYXRoLmNlaWwoYS5sZW5ndGgvNiksYz0iIjtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrPWIpe2xldCBlPTA7Zm9yKGxldCBmPWQ7Zi1kPGImJmY8YS5sZW5ndGg7ZisrKWUrPWEuY2hhckNvZGVBdChmKTtlJT01MjtjKz1lPDI2P1N0cmluZy5mcm9tQ2hhckNvZGUoNjUrZSk6U3RyaW5nLmZyb21DaGFyQ29kZSg3MStlKX1yZXR1cm4gdW1bYV09Y307Xy52bT1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKG5ldyBCY2EpLmdldChhKT8/bnVsbH1jYXRjaChiKXtyZXR1cm4gbnVsbH19OwpFY2E9ZnVuY3Rpb24oYSl7aWYoYSYmYS5wcm90b3R5cGUpZm9yKGxldCBiIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEucHJvdG90eXBlKSl7bGV0IGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLnByb3RvdHlwZSxiKTtjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsYix7Li4uYyxlbnVtZXJhYmxlOiEwfSl9fTsKXy53bT1mdW5jdGlvbihhKXtpZihhJiZhLnByb3RvdHlwZSl7dmFyIGI9KGMsZCk9Pnt2YXIgZT1hLnByb3RvdHlwZS5ubDtpZih0eXBlb2YgZT09PSJmdW5jdGlvbiIpcmV0dXJuIGUuYXBwbHkoYyxkKTt0aHJvdyBFcnJvcigieW91IG11c3QgZGVmaW5lIGEgY29uc3RydWN0b3JfIik7fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY2FsbCIse3ZhbHVlKGMsLi4uZCl7cmV0dXJuIHRoaXMhPT1hP0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmFwcGx5KHRoaXMsW2MsLi4uZF0pOmIoYyxkKX0sZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiYXBwbHkiLHt2YWx1ZShjLGQpe3JldHVybiB0aGlzIT09YT9GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuYXBwbHkodGhpcyxbYyxkXSk6YihjLGQpfSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLAoiYmluZCIse3ZhbHVlKGMsLi4uZCl7ZnVuY3Rpb24gZSguLi5nKXtnPWQuY29uY2F0KGcpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgZT9uZXcgZiguLi5nKTpiKGMsZyl9aWYodGhpcyE9PWEpcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KHRoaXMsW2MsLi4uZF0pO3ZhciBmPXRoaXM7Zi5wcm90b3R5cGUmJihlLnByb3RvdHlwZT1mLnByb3RvdHlwZSk7cmV0dXJuIGV9LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7RWNhKGEpfX07Xy54bT1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIG5ldyBVUkwoYS5zdGFydHNXaXRoKCIvLyIpP2BodHRwczoke2F9YDphKX1jYXRjaChiKXtyZXR1cm4gbnVsbH19OwpfLkFtPWZ1bmN0aW9uKGEsYil7dmFyIGM9IiI7aWYoYiE9bnVsbCl7aWYoIXltKGIpKXJldHVybiBiIGluc3RhbmNlb2YgRXJyb3I/YjpFcnJvcihTdHJpbmcoYikpO2M9IjogIitiLm1lc3NhZ2V9cmV0dXJuIHptP25ldyBGY2EoYStjKTpuZXcgR2NhKGErYyl9O18uQm09ZnVuY3Rpb24oYSl7aWYoIXltKGEpKXRocm93IGE7Xy5ybShhLm5hbWUrIjogIithLm1lc3NhZ2UpfTt5bT1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEZjYXx8YSBpbnN0YW5jZW9mIEdjYX07Cl8uQ209ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWM/YysiOiAiOiIiO3JldHVybiBlPT57aWYoIWV8fHR5cGVvZiBlIT09Im9iamVjdCIpdGhyb3cgXy5BbShkKyJub3QgYW4gT2JqZWN0Iik7dmFyIGY9e307Zm9yKGxldCBnIGluIGUpe2lmKCEoYnx8ZyBpbiBhKSl0aHJvdyBfLkFtKGAke2R9dW5rbm93biBwcm9wZXJ0eSAke2d9YCk7ZltnXT1lW2ddfWZvcihsZXQgZyBpbiBhKXRyeXtsZXQgaD1hW2ddKGZbZ10pO2lmKGghPT12b2lkIDB8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGcpKWZbZ109aH1jYXRjaChoKXt0aHJvdyBfLkFtKGAke2R9aW4gcHJvcGVydHkgJHtnfWAsaCk7fXJldHVybiBmfX07Xy5EbT1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIHR5cGVvZiBhPT09Im9iamVjdCImJmEhPW51bGwmJiEhKCJjbG9uZU5vZGUiaW4gYSl9Y2F0Y2goYil7cmV0dXJuITF9fTsKXy5FbT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/ZD0+e2lmKGQgaW5zdGFuY2VvZiBhKXJldHVybiBkO3RyeXtyZXR1cm4gbmV3IGEoZCl9Y2F0Y2goZSl7dGhyb3cgXy5BbSgid2hlbiBjYWxsaW5nIG5ldyAiK2IsZSk7fX06ZD0+e2lmKGQgaW5zdGFuY2VvZiBhKXJldHVybiBkO3Rocm93IF8uQW0oIm5vdCBhbiBpbnN0YW5jZSBvZiAiK2IpO319O18uRm09ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pntmb3IobGV0IGMgaW4gYSlpZihhW2NdPT09YilyZXR1cm4gYjt0aHJvdyBfLkFtKGAke2J9IGlzIG5vdCBhbiBhY2NlcHRlZCB2YWx1ZWApO319O18uR209ZnVuY3Rpb24oYSl7cmV0dXJuIGI9PntpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBfLkFtKCJub3QgYW4gQXJyYXkiKTtyZXR1cm4gYi5tYXAoKGMsZCk9Pnt0cnl7cmV0dXJuIGEoYyl9Y2F0Y2goZSl7dGhyb3cgXy5BbShgYXQgaW5kZXggJHtkfWAsZSk7fX0pfX07Cl8uSG09ZnVuY3Rpb24oYSxiPTAsYz0hMSl7cmV0dXJuIGQ9PntpZihkPT1udWxsfHx0eXBlb2YgZFtTeW1ib2wuaXRlcmF0b3JdIT09ImZ1bmN0aW9uIil0aHJvdyBfLkFtKCJub3QgaXRlcmFibGUiKTtpZih0eXBlb2YgZD09PSJzdHJpbmciJiYhYyl0aHJvdyBfLkFtKCJhIHN0cmluZyBpcyBub3QgYWNjZXB0ZWQiKTtkPUFycmF5LmZyb20oZCwoZSxmKT0+e3RyeXtyZXR1cm4gYShlKX1jYXRjaChnKXt0aHJvdyBfLkFtKGBhdCBpbmRleCAke2Z9YCxnKTt9fSk7aWYoYj4wJiZkLmxlbmd0aDxiKXtpZihkLmxlbmd0aD09PTApdGhyb3cgXy5BbSgiZW1wdHkgaXRlcmFibGUiKTt0aHJvdyBfLkFtKGBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJHtifSBpdGVtc2ApO31yZXR1cm4gZH19O18uSW09ZnVuY3Rpb24oYSxiPSIiKXtyZXR1cm4gYz0+e2lmKGEoYykpcmV0dXJuIGM7dGhyb3cgXy5BbShifHxgJHtjfWApO319OwpfLkptPWZ1bmN0aW9uKGEsYj0iIil7cmV0dXJuIGM9PntpZihhKGMpKXJldHVybiBjO3Rocm93IF8uQW0oYnx8YCR7Y31gKTt9fTtfLkttPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9W107Zm9yKGxldCBkPTAsZT1hLmxlbmd0aDtkPGU7KytkKXtsZXQgZj1hW2RdO3RyeXt6bT0hMSwoZi5pQ3x8ZikoYil9Y2F0Y2goZyl7aWYoIXltKGcpKXRocm93IGc7Yy5wdXNoKGcubWVzc2FnZSk7Y29udGludWV9ZmluYWxseXt6bT0hMH1yZXR1cm4oZi50aGVufHxmKShiKX10aHJvdyBfLkFtKGMuam9pbigiOyBhbmQgIikpO319O18uTG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYz0+YihhKGMpKX07Xy5NbT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+Yj09bnVsbD9iOmEoYil9O18uTm09ZnVuY3Rpb24oYSl7cmV0dXJuIGI9PntpZihiJiZiW2FdIT1udWxsKXJldHVybiBiO3Rocm93IF8uQW0oIm5vICIrYSsiIHByb3BlcnR5Iik7fX07CkhjYT1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhO3Rocm93IF8uQW0oIm11c3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTt9O0ljYT1mdW5jdGlvbihhKXtpZihpc05hTihhKSl0aHJvdyBfLkFtKCJOYU4gaXMgbm90IGFuIGFjY2VwdGVkIHZhbHVlIik7fTtfLlBtPWZ1bmN0aW9uKGEsYj0wKXtyZXR1cm4gXy5MbShfLk9tLGM9PntpZihjPj1hKXJldHVybiBjO2lmKGI+MCYmYz49YS1iKXJldHVybiBhO3Rocm93IF8uQW0oYCR7Y30gaXMgbm90IGdyZWF0ZXIgdGhhbiAke2F9YCk7fSl9O1FtPWZ1bmN0aW9uKGEsYixjKXt0cnl7cmV0dXJuIGMoKX1jYXRjaChkKXt0aHJvdyBfLkFtKGAke2F9OiBcYCR7Yn1cYCBpbnZhbGlkYCxkKTt9fTtSbT1mdW5jdGlvbihhLGIsYyl7Zm9yKGxldCBkIGluIGEpaWYoIShkIGluIGIpKXRocm93IF8uQW0oYFVua25vd24gcHJvcGVydHkgJyR7ZH0nIG9mICR7Y31gKTt9O0tjYT1mdW5jdGlvbigpe3JldHVybiBKY2F8fChKY2E9bmV3IFNtKX07Cl8uVG09ZnVuY3Rpb24oYSxiLGM9ITEpe3ZhciBkO2EgaW5zdGFuY2VvZiBfLlRtP2Q9YS50b0pTT04oKTpkPWE7dmFyIGU9TmFOLGY9TmFOO2lmKCFkfHxkLmxhdD09PXZvaWQgMCYmZC5sbmc9PT12b2lkIDApZT1kLGY9YjtlbHNle2FyZ3VtZW50cy5sZW5ndGg+Mj9jb25zb2xlLndhcm4oIkV4cGVjdGVkIDEgb3IgMiBhcmd1bWVudHMgaW4gbmV3IExhdExuZygpIHdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgTGF0TG5nIGluc3RhbmNlIG9yIExhdExuZ0xpdGVyYWwgb2JqZWN0LCBidXQgZ290IG1vcmUgdGhhbiAyLiIpOl8ubm0oYXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdPT1udWxsfHxjb25zb2xlLndhcm4oIkV4cGVjdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgaW4gbmV3IExhdExuZygpIHRvIGJlIGJvb2xlYW4sIG51bGwsIG9yIHVuZGVmaW5lZCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIExhdExuZyBpbnN0YW5jZSBvciBMYXRMbmdMaXRlcmFsIG9iamVjdC4iKTsKdHJ5e0xjYShkKSxjPWN8fCEhYixmPWQubG5nLGU9ZC5sYXR9Y2F0Y2goZyl7Xy5CbShnKX19ZT1OdW1iZXIoZSk7Zj1OdW1iZXIoZik7Y3x8KGU9Xy5jbShlLC05MCw5MCksZiE9MTgwJiYoZj1fLmRtKGYsLTE4MCwxODApKSk7dGhpcy5sYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dGhpcy5sbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZn19O18uVW09ZnVuY3Rpb24oYSl7cmV0dXJuIF8udGwoYS5sYXQoKSl9O18uVm09ZnVuY3Rpb24oYSl7cmV0dXJuIF8udGwoYS5sbmcoKSl9O01jYT1mdW5jdGlvbihhLGIpe2I9TWF0aC5wb3coMTAsYik7cmV0dXJuIE1hdGgucm91bmQoYSpiKS9ifTsKXy5ZbT1mdW5jdGlvbihhKXt2YXIgYj1hO18uV20oYSkmJihiPXtsYXQ6YS5sYXQoKSxsbmc6YS5sbmcoKX0pO3RyeXtsZXQgYz1OY2EoYik7cmV0dXJuIF8uV20oYSk/YTpfLlhtKGMpfWNhdGNoKGMpe3Rocm93IF8uQW0oIm5vdCBhIExhdExuZyBvciBMYXRMbmdMaXRlcmFsIHdpdGggZmluaXRlIGNvb3JkaW5hdGVzIixjKTt9fTtfLldtPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgXy5UbX07Xy5YbT1mdW5jdGlvbihhKXt0cnl7aWYoXy5XbShhKSlyZXR1cm4gYTtsZXQgYj1MY2EoYSk7cmV0dXJuIG5ldyBfLlRtKGIubGF0LGIubG5nKX1jYXRjaChiKXt0aHJvdyBfLkFtKCJub3QgYSBMYXRMbmcgb3IgTGF0TG5nTGl0ZXJhbCIsYik7fX07CmNuPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBabSlyZXR1cm4gYTt0cnl7cmV0dXJuIG5ldyBfLiRtKF8uWG0oYSkpfWNhdGNoKGIpe310aHJvdyBfLkFtKCJub3QgYSBHZW9tZXRyeSBvciBMYXRMbmcgb3IgTGF0TG5nTGl0ZXJhbCBvYmplY3QiKTt9O18uZG49ZnVuY3Rpb24oYSl7T2NhLmhhcyhhKXx8KGNvbnNvbGUud2FybihhKSxPY2EuYWRkKGEpKX07Xy5nbj1mdW5jdGlvbihhKXthPWF8fHdpbmRvdy5ldmVudDtfLmVuKGEpO18uZm4oYSl9O18uZW49ZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX07Xy5mbj1mdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCl9O18uaG49ZnVuY3Rpb24oYSl7YS5oYW5kbGVkPSEwfTtfLmtuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbmV3IF8uam4oYSxiLGMsMCl9O18ubG49ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4hMTtiPShhPWEuX19lM18pJiZhW2JdO3JldHVybiEhYiYmIV8uamooYil9OwpfLm1uPWZ1bmN0aW9uKGEpe2EmJmEucmVtb3ZlKCl9O18ub249ZnVuY3Rpb24oYSxiKXtfLmFtKG5uKGEsYiksKGMsZCk9PntkJiZkLnJlbW92ZSgpfSl9O18ucG49ZnVuY3Rpb24oYSl7Xy5hbShubihhKSwoYixjKT0+e2MmJmMucmVtb3ZlKCl9KX07UGNhPWZ1bmN0aW9uKGEpe2lmKCJfX2UzXyJpbiBhKXRocm93IEVycm9yKCJzZXRVcE5vbkVudW1lcmFibGVFdmVudExpc3RlbmluZygpIHdhcyBpbnZva2VkIGFmdGVyIGFuIGV2ZW50IHdhcyByZWdpc3RlcmVkLiIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2UzXyIse3ZhbHVlOnt9fSl9O18ucW49ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1kPzQ6MTthLmFkZEV2ZW50TGlzdGVuZXImJihkPXtjYXB0dXJlOiEhZH0sdHlwZW9mIGU9PT0iYm9vbGVhbiI/ZC5wYXNzaXZlPWU6UWNhLmhhcyhiKSYmKGQucGFzc2l2ZT0hMSksYS5hZGRFdmVudExpc3RlbmVyKGIsYyxkKSk7cmV0dXJuIG5ldyBfLmpuKGEsYixjLGYpfTsKXy5ybj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1fLnFuKGEsYixmdW5jdGlvbigpe2UucmVtb3ZlKCk7cmV0dXJuIGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxkKTtyZXR1cm4gZX07Xy5zbj1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gXy5rbihhLGIsKDAsXy5pYikoZCxjKSl9O18udG49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPV8ua24oYSxiLGZ1bmN0aW9uKCl7ZC5yZW1vdmUoKTtyZXR1cm4gYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTtyZXR1cm4gZH07Xy51bj1mdW5jdGlvbihhLGIsYyl7Yj1fLmtuKGEsYixjKTtjLmNhbGwoYSk7cmV0dXJuIGJ9O18udm49ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLmtuKGEsYixfLlJjYShiLGMpKX07Xy53bj1mdW5jdGlvbihhLGIsLi4uYyl7aWYoXy5sbihhLGIpKXthPW5uKGEsYik7Zm9yKGxldCBkIG9mIE9iamVjdC5rZXlzKGEpKShiPWFbZF0pJiZiLm9wLmFwcGx5KGIuaW5zdGFuY2UsYyl9fTsKU2NhPWZ1bmN0aW9uKGEsYil7YS5fX2UzX3x8KGEuX19lM189e30pO2E9YS5fX2UzXzthW2JdfHwoYVtiXT17fSk7cmV0dXJuIGFbYl19O25uPWZ1bmN0aW9uKGEsYil7YT1hLl9fZTNffHx7fTtpZihiKWI9YVtiXXx8e307ZWxzZXtiPXt9O2ZvcihsZXQgYyBvZiBPYmplY3QudmFsdWVzKGEpKV8uYm0oYixjKX1yZXR1cm4gYn07Xy5SY2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1bYixhLC4uLmFyZ3VtZW50c107Xy53bi5hcHBseSh0aGlzLGUpO2MmJl8uaG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfX07Xy54bj1mdW5jdGlvbihhKXtyZXR1cm4iIisoXy5aYShhKT9fLmhiKGEpOmEpfTtfLnluPWZ1bmN0aW9uKCl7fTsKQW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJfY2hhbmdlZCI7aWYoYVtjXSlhW2NdKCk7ZWxzZSBhLmNoYW5nZWQoYik7Yz16bihhLGIpO2ZvcihsZXQgZCBpbiBjKXtsZXQgZT1jW2RdO0FuKGUubHcsZS5ocSl9Xy53bihhLGIudG9Mb3dlckNhc2UoKSsiX2NoYW5nZWQiKX07Xy5Cbj1mdW5jdGlvbihhKXtyZXR1cm4gVGNhW2FdfHwoVGNhW2FdPWEuc3Vic3RyaW5nKDAsMSkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKSl9O0NuPWZ1bmN0aW9uKGEpe2EuZ21fYWNjZXNzb3JzX3x8KGEuZ21fYWNjZXNzb3JzXz17fSk7cmV0dXJuIGEuZ21fYWNjZXNzb3JzX307em49ZnVuY3Rpb24oYSxiKXthLmdtX2JpbmRpbmdzX3x8KGEuZ21fYmluZGluZ3NfPXt9KTthLmdtX2JpbmRpbmdzXy5oYXNPd25Qcm9wZXJ0eShiKXx8KGEuZ21fYmluZGluZ3NfW2JdPXt9KTtyZXR1cm4gYS5nbV9iaW5kaW5nc19bYl19OwpfLlVjYT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChCKXtCPWsoQik7cmV0dXJuIF8uWG0oe2xhdDpCWzFdLGxuZzpCWzBdfSl9ZnVuY3Rpb24gZShCKXtyZXR1cm4gbmV3IF8uRG4obShCKSl9ZnVuY3Rpb24gZihCKXtyZXR1cm4gbmV3IF8uRW4ocShCKSl9ZnVuY3Rpb24gZyhCKXtpZihCPT1udWxsKXRocm93IF8uQW0oImlzIG51bGwiKTt2YXIgSz1TdHJpbmcoQi50eXBlKS50b0xvd2VyQ2FzZSgpLE89Qi5jb29yZGluYXRlczt0cnl7c3dpdGNoKEspe2Nhc2UgInBvaW50IjpyZXR1cm4gbmV3IF8uJG0oZChPKSk7Y2FzZSAibXVsdGlwb2ludCI6cmV0dXJuIG5ldyBfLkZuKG0oTykpO2Nhc2UgImxpbmVzdHJpbmciOnJldHVybiBlKE8pO2Nhc2UgIm11bHRpbGluZXN0cmluZyI6cmV0dXJuIG5ldyBfLkduKHAoTykpO2Nhc2UgInBvbHlnb24iOnJldHVybiBmKE8pO2Nhc2UgIm11bHRpcG9seWdvbiI6cmV0dXJuIG5ldyBfLkhuKHUoTykpfX1jYXRjaChBKXt0aHJvdyBfLkFtKCdpbiBwcm9wZXJ0eSAiY29vcmRpbmF0ZXMiJywKQSk7fWlmKEs9PT0iZ2VvbWV0cnljb2xsZWN0aW9uIil0cnl7cmV0dXJuIG5ldyBfLkluKHgoQi5nZW9tZXRyaWVzKSl9Y2F0Y2goQSl7dGhyb3cgXy5BbSgnaW4gcHJvcGVydHkgImdlb21ldHJpZXMiJyxBKTt9dGhyb3cgXy5BbSgiaW52YWxpZCB0eXBlIik7fWZ1bmN0aW9uIGgoQil7aWYoIUIpdGhyb3cgXy5BbSgibm90IGEgRmVhdHVyZSIpO2lmKEIudHlwZSE9PSJGZWF0dXJlIil0aHJvdyBfLkFtKCd0eXBlICE9ICJGZWF0dXJlIicpO3ZhciBLPW51bGw7dHJ5e0IuZ2VvbWV0cnkmJihLPWcoQi5nZW9tZXRyeSkpfWNhdGNoKFEpe3Rocm93IF8uQW0oJ2luIHByb3BlcnR5ICJnZW9tZXRyeSInLFEpO312YXIgTz1CLnByb3BlcnRpZXN8fHt9O2lmKCFfLmttKE8pKXRocm93IF8uQW0oInByb3BlcnRpZXMgaXMgbm90IGFuIE9iamVjdCIpO3ZhciBBPWMuaWRQcm9wZXJ0eU5hbWU7Qj1BP09bQV06Qi5pZDtpZihCIT1udWxsJiYhXy5qbShCKSYmIV8ubW0oQikpdGhyb3cgXy5BbShgJHtBfHwKImlkIn0gaXMgbm90IGEgc3RyaW5nIG9yIG51bWJlcmApO3JldHVybntpZDpCLGdlb21ldHJ5OksscHJvcGVydGllczpPfX1pZighYilyZXR1cm5bXTtjPWN8fHt9O3ZhciBrPV8uR20oXy5PbSksbT1fLkdtKGQpLHA9Xy5HbShlKSxxPV8uR20oZnVuY3Rpb24oQil7Qj1tKEIpO2lmKCFCLmxlbmd0aCl0aHJvdyBfLkFtKCJjb250YWlucyBubyBlbGVtZW50cyIpO2lmKCFCWzBdLmVxdWFscyhCW0IubGVuZ3RoLTFdKSl0aHJvdyBfLkFtKCJmaXJzdCBhbmQgbGFzdCBwb3NpdGlvbnMgYXJlIG5vdCBlcXVhbCIpO3JldHVybiBuZXcgXy5KbihCLnNsaWNlKDAsLTEpKX0pLHU9Xy5HbShmKSx4PV8uR20oQj0+ZyhCKSksej1fLkdtKEI9PmgoQikpO2lmKGIudHlwZT09PSJGZWF0dXJlQ29sbGVjdGlvbiIpe2I9Yi5mZWF0dXJlczt0cnl7cmV0dXJuIHooYikubWFwKEI9PmEuYWRkKEIpKX1jYXRjaChCKXt0aHJvdyBfLkFtKCdpbiBwcm9wZXJ0eSAiZmVhdHVyZXMiJyxCKTt9fWlmKGIudHlwZT09PQoiRmVhdHVyZSIpcmV0dXJuW2EuYWRkKGgoYikpXTt0aHJvdyBfLkFtKCJub3QgYSBGZWF0dXJlIG9yIEZlYXR1cmVDb2xsZWN0aW9uIik7fTtfLktuPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPUFycmF5KDM2KSxiPTAsYyxkPTA7ZDwzNjtkKyspZD09OHx8ZD09MTN8fGQ9PTE4fHxkPT0yMz9hW2RdPSItIjpkPT0xND9hW2RdPSI0IjooYjw9MiYmKGI9MzM1NTQ0MzIrTWF0aC5yYW5kb20oKSoxNjc3NzIxNnwwKSxjPWImMTUsYj4+PTQsYVtkXT1WY2FbZD09MTk/YyYzfDg6Y10pO3JldHVybiBhLmpvaW4oIiIpfTtfLkxuPWZ1bmN0aW9uKGEpe3RoaXMuSVA9dGhpczt0aGlzLl9fZ209YX07Cl8uTW49ZnVuY3Rpb24oYSl7YT1hLmdldERpdigpO3ZhciBiPWEuZ2V0Um9vdE5vZGUoKTtiIGluc3RhbmNlb2YgU2hhZG93Um9vdCYmYj09PWEucGFyZW50Tm9kZT8oYT1iLmhvc3QsYT1hIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmEubG9jYWxOYW1lPT09ImdtcC1tYXAiP2E6bnVsbCk6YT1udWxsO3JldHVybiBhfTtfLk5uPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi1hO3JldHVybiBjPj0wP2M6YisxODAtKGEtMTgwKX07Xy5Pbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5sbz5hLmhpfTtfLlBuPWZ1bmN0aW9uKGEpe3JldHVybiBhLmhpLWEubG89PT0zNjB9O1FuPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sbyxkPWEuaGk7cmV0dXJuIF8uT24oYSk/Xy5PbihiKT9iLmxvPj1jJiZiLmhpPD1kOihiLmxvPj1jfHxiLmhpPD1kKSYmIWEuaXNFbXB0eSgpOl8uT24oYik/Xy5QbihhKXx8Yi5pc0VtcHR5KCk6Yi5sbz49YyYmYi5oaTw9ZH07Cl8uU249ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIG5ldyBfLlJuKG5ldyBfLlRtKGEsYiwhMCksbmV3IF8uVG0oYyxkLCEwKSl9O18uVG49ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8uUm4pcmV0dXJuIGE7dHJ5e2xldCBiPVdjYShhKTtyZXR1cm4gXy5TbihiLnNvdXRoLGIud2VzdCxiLm5vcnRoLGIuZWFzdCl9Y2F0Y2goYil7dGhyb3cgXy5BbSgibm90IGEgTGF0TG5nQm91bmRzIG9yIExhdExuZ0JvdW5kc0xpdGVyYWwiLGIpO319O18uVW49ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KGEpfX07Xy5Wbj1mdW5jdGlvbihhLGIpe3JldHVybiBiP2Z1bmN0aW9uKGMpe3RyeXt0aGlzLnNldChhLGIoYykpfWNhdGNoKGQpe18uQm0oXy5BbSgic2V0IitfLkJuKGEpLGQpKX19OmZ1bmN0aW9uKGMpe3RoaXMuc2V0KGEsYyl9fTsKXy5Xbj1mdW5jdGlvbihhLGIpe18uYW0oYiwoYyxkKT0+e3ZhciBlPV8uVW4oYyk7YVsiZ2V0IitfLkJuKGMpXT1lO2QmJihkPV8uVm4oYyxkKSxhWyJzZXQiK18uQm4oYyldPWQpfSl9O1luPWZ1bmN0aW9uKGEpe2E9YXx8e307dGhpcy5zZXRWYWx1ZXMoYSk7dGhpcy5xaD1uZXcgWGNhO18udm4odGhpcy5xaCwiYWRkZmVhdHVyZSIsdGhpcyk7Xy52bih0aGlzLnFoLCJyZW1vdmVmZWF0dXJlIix0aGlzKTtfLnZuKHRoaXMucWgsInNldGdlb21ldHJ5Iix0aGlzKTtfLnZuKHRoaXMucWgsInNldHByb3BlcnR5Iix0aGlzKTtfLnZuKHRoaXMucWgsInJlbW92ZXByb3BlcnR5Iix0aGlzKTt0aGlzLnJoPW5ldyBZY2EodGhpcy5xaCk7dGhpcy5yaC5iaW5kVG8oIm1hcCIsdGhpcyk7dGhpcy5yaC5iaW5kVG8oInN0eWxlIix0aGlzKTtfLlhuLmZvckVhY2goYj0+e18udm4odGhpcy5yaCxiLHRoaXMpfSk7dGhpcy5zaD0hMX07ClpjYT1mdW5jdGlvbihhKXthLnNofHwoYS5zaD0hMCxfLkhsKCJkcmF3aW5nX2ltcGwiKS50aGVuKGI9PntiLklOKGEpfSkpfTtfLiRuPWZ1bmN0aW9uKGEpe18uWm4mJmEmJl8uWm4ucHVzaChhKX07Cl8uYW89ZnVuY3Rpb24oYSl7Y29uc29sZS53YXJuKCJnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVuZGVyZXIgaXMgZGVwcmVjYXRlZCBhcyBvZiBGZWJydWFyeSAyNXRoLCAyMDI2LiBBdCB0aGlzIHRpbWUsIGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNSZW5kZXJlciBpcyBub3Qgc2NoZWR1bGVkIHRvIGJlIGRpc2NvbnRpbnVlZC4gV2hpbGUgZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1JlbmRlcmVyIHdpbGwgY29udGludWUgdG8gcmVjZWl2ZSBidWcgZml4ZXMgZm9yIGFueSBtYWpvciByZWdyZXNzaW9ucywgZXhpc3RpbmcgYnVncyBpbiBnb29nbGUubWFwcy5EaXJlY3Rpb25zUmVuZGVyZXIgd2lsbCBub3QgYmUgYWRkcmVzc2VkLiBBdCBsZWFzdCAxMiBtb250aHMgbm90aWNlIHdpbGwgYmUgZ2l2ZW4gYmVmb3JlIHN1cHBvcnQgaXMgZGlzY29udGludWVkLiBQbGVhc2Ugc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvbGVnYWN5IGZvciBhZGRpdGlvbmFsIGRldGFpbHMgYW5kIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JvdXRlcy9yb3V0ZXMtbWlncmF0ZS1yZW5kZXJpbmcgZm9yIHRoZSBtaWdyYXRpb24gZ3VpZGUuIik7dGhpcy5zZXRWYWx1ZXMoYSl9OwokY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkhsKCJlbGV2YXRpb24iKS50aGVuKGQ9PmQuZ2V0RWxldmF0aW9uQWxvbmdQYXRoKGEsYix2b2lkIDApKTtiJiZjLmNhdGNoKCgpPT57fSk7cmV0dXJuIGN9O2FkYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uSGwoImVsZXZhdGlvbiIpLnRoZW4oZD0+ZC5nZXRFbGV2YXRpb25Gb3JMb2NhdGlvbnMoYSxiLHZvaWQgMCkpO2ImJmMuY2F0Y2goKCk9Pnt9KTtyZXR1cm4gY307Y2RhPWZ1bmN0aW9uKGEsYil7dmFyIGM7YmRhKCl8fChjPV8uTmwoMTQ1NTcwKSk7dmFyIGQ9Xy5IbCgiZ2VvY29kZXIiKS50aGVuKGU9PmUuZ2VvY29kZShhLGIsYyx2b2lkIDApLCgpPT57YyYmXy5PbChjLDEzKX0pO2ImJmQuY2F0Y2goKCk9Pnt9KTtyZXR1cm4gZH07CmNvPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmJvKXJldHVybiBhO3RyeXtsZXQgYj1fLkNtKHt4Ol8uT20seTpfLk9tfSwhMCkoYSk7cmV0dXJuIG5ldyBfLmJvKGIueCxiLnkpfWNhdGNoKGIpe3Rocm93IF8uQW0oIm5vdCBhIFBvaW50IixiKTt9fTtfLmVvPWZ1bmN0aW9uKGEpe3JldHVybmAke2Eud2lkdGh9JHthLnJofHwicHgifWB9O18uZm89ZnVuY3Rpb24oYSl7cmV0dXJuYCR7YS5oZWlnaHR9JHthLnFofHwicHgifWB9O2lvPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmdvKXJldHVybiBhO3RyeXt2YXIgYj1fLkNtKHtoZWlnaHQ6aG8sd2lkdGg6aG99LCEwKShhKX1jYXRjaChjKXt0aHJvdyBfLkFtKCJub3QgYSBTaXplIixjKTt9cmV0dXJuIG5ldyBfLmdvKGIud2lkdGgsYi5oZWlnaHQpfTtqbz1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLmNvIGluc3RhbmNlb2YgXy55bjohMX07CmRkYT1mdW5jdGlvbihhLGIpe2EudGgoYik7YS5yaDwxMDAmJihhLnJoKyssYi5uZXh0PWEucWgsYS5xaD1iKX07Z2RhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9ZWRhLnJlbW92ZSgpOyl7dHJ5e2EuVHYuY2FsbChhLnNjb3BlKX1jYXRjaChiKXtfLkJiKGIpfWRkYShmZGEsYSl9a289ITF9O2lkYT1mdW5jdGlvbihhLGIsYyxkKXtkPWQ/e0VHOiExfTpudWxsO3ZhciBlPSFhLmFpLmxlbmd0aCxmPWEuYWkuZmluZChoZGEoYixjKSk7Zj9mLm9uY2U9Zi5vbmNlJiZkOmEuYWkucHVzaCh7VHY6Yixjb250ZXh0OmN8fG51bGwsb25jZTpkfSk7ZSYmYS5zdCgpfTtoZGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYz0+Yy5Udj09PWEmJmMuY29udGV4dD09PShifHxudWxsKX07Xy5tbz1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgXy5sbyhhLGIpfTtfLm5vPWZ1bmN0aW9uKCl7dGhpcy5fX2dtPW5ldyBfLnluO3RoaXMucmg9bnVsbH07CmpkYT1mdW5jdGlvbihhKXthLl9fZ218fChhLl9fZ209e3NldDpudWxsLGNCOm51bGwseHQ6e21hcDpudWxsLHN0cmVldFZpZXc6bnVsbH0sTHI6bnVsbCx6QTpudWxsLFhwOiExfSl9O29vPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yz9hLmJpbmRUbyhiLGMsZCxlKTooYS51bmJpbmQoYiksYS5zZXQoYix2b2lkIDApKX07a2RhPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZ2V0KCJpbnRlcm5hbEFuY2hvclBvaW50Iil8fF8ucG8sYz1hLmdldCgiaW50ZXJuYWxQaXhlbE9mZnNldCIpfHxfLnFvO2Euc2V0KCJwaXhlbE9mZnNldCIsbmV3IF8uZ28oYy53aWR0aCtNYXRoLnJvdW5kKGIueCksYy5oZWlnaHQrTWF0aC5yb3VuZChiLnkpKSl9O3JvPWZ1bmN0aW9uKGE9bnVsbCl7cmV0dXJuIGpvKGEpP2EuY298fG51bGw6YSBpbnN0YW5jZW9mIF8ueW4/YTpudWxsfTsKc289ZnVuY3Rpb24oYSl7Y29uc29sZS53YXJuKCJBcyBvZiB2ZXJzaW9uIDMuNjUsIGdvb2dsZS5tYXBzLkttbExheWVyIGlzIGRlcHJlY2F0ZWQuIEZvciBhbHRlcm5hdGl2ZSBtZXRob2RzIG9mIGRpc3BsYXlpbmcgS01MIGRhdGEgb24gdGhlIG1hcCwgc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5kZXZzaXRlLmNvcnAuZ29vZ2xlLmNvbS9tYXBzL2RlcHJlY2F0aW9ucyNrbWxfbGF5ZXJfZGVwcmVjYXRlZF9hc19vZl9hcHJpbF8zMF8yMDI2Iik7Xy5tbShhKT8odGhpcy5zZXQoInVybCIsYSksdGhpcy5zZXRWYWx1ZXMoYXJndW1lbnRzWzFdKSk6dGhpcy5zZXRWYWx1ZXMoYSl9O18udG89ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaCgvXnBsYWNlc1wvKC4rKSQvKTtyZXR1cm4gYj9iWzFdOmF9OwpfLmxkYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8ubWEoYS50b1VwcGVyQ2FzZSgpLCJyZXBsYWNlQWxsIikuY2FsbChhLnRvVXBwZXJDYXNlKCksIi0iLCJfIik7cmV0dXJuIGMgaW4gYj9iW2NdOihjb25zb2xlLmVycm9yKCJJbnZhbGlkIHZhbHVlOiAiK2EpLG51bGwpfTtfLm1kYT1mdW5jdGlvbihhLGIpe3JldHVybiBTdHJpbmcoKHVvPXZvLmdldChhKS5nZXQoYik/LnRvTG93ZXJDYXNlKCksXy5tYSh1bywicmVwbGFjZUFsbCIsITApKT8uY2FsbCh1bywiXyIsIi0iKXx8Yil9O18ubmRhPWZ1bmN0aW9uKGEpe2lmKCF2by5oYXMoYSkpe2xldCBiPW5ldyBNYXA7Zm9yKGxldCBbYyxkXW9mIE9iamVjdC5lbnRyaWVzKGEpKWIuc2V0KGQsYyk7dm8uc2V0KGEsYil9fTtfLndvPWZ1bmN0aW9uKGEpe18ubmRhKGEpO3JldHVybnthazpiPT5iPT09bnVsbD9udWxsOl8ubGRhKGIsYSksTGo6Yj0+Yj09PW51bGw/bnVsbDpfLm1kYShhLGIpfX07Cl8ueG89ZnVuY3Rpb24oYSxiKXt2YXIgYz1hO2lmKGN1c3RvbUVsZW1lbnRzLmdldChjKSl7bGV0IGQ9MTtmb3IoO2N1c3RvbUVsZW1lbnRzLmdldChjKTspe2lmKGN1c3RvbUVsZW1lbnRzLmdldChjKT09PWIpcmV0dXJuO2M9YCR7YX0tbm9uZGV0ZXJtaW5pc3RpYy1kdXBsaWNhdGUke2QrK31gfWNvbnNvbGUud2FybihgRWxlbWVudCB3aXRoIG5hbWUgIiR7YX0iIGFscmVhZHkgZGVmaW5lZC5gKX1jdXN0b21FbGVtZW50cy5kZWZpbmUoYyxiLHZvaWQgMCl9O18uem89ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IF8ueW87ZS5taW5YPWE7ZS5taW5ZPWI7ZS5tYXhYPWM7ZS5tYXhZPWQ7cmV0dXJuIGV9O18uQW89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5taW5YPj1iLm1heFh8fGIubWluWD49YS5tYXhYfHxhLm1pblk+PWIubWF4WXx8Yi5taW5ZPj1hLm1heFk/ITE6ITB9OwpfLkJvPWZ1bmN0aW9uKGEsYixjKXtpZihhPWEuZnJvbUxhdExuZ1RvUG9pbnQoYikpYz1NYXRoLnBvdygyLGMpLGEueCo9YyxhLnkqPWM7cmV0dXJuIGF9O18uQ289ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxhdCgpK18udWwoYik7Yz45MCYmKGM9OTApO3ZhciBkPWEubGF0KCktXy51bChiKTtkPC05MCYmKGQ9LTkwKTtiPU1hdGguc2luKGIpO3ZhciBlPU1hdGguY29zKF8udGwoYS5sYXQoKSkpO2lmKGM9PT05MHx8ZD09PS05MHx8ZTwxRS02KXJldHVybiBuZXcgXy5SbihuZXcgXy5UbShkLC0xODApLG5ldyBfLlRtKGMsMTgwKSk7Yj1fLnVsKE1hdGguYXNpbihiL2UpKTtyZXR1cm4gbmV3IF8uUm4obmV3IF8uVG0oZCxhLmxuZygpLWIpLG5ldyBfLlRtKGMsYS5sbmcoKStiKSl9O18uRW89ZnVuY3Rpb24oYSl7dGhpcy5xaD1hfHxbXTtEbyh0aGlzKX07RG89ZnVuY3Rpb24oYSl7YS5zZXQoImxlbmd0aCIsYS5xaC5sZW5ndGgpfTsKTW89ZnVuY3Rpb24oYSl7YT8/KGE9e30pO2EudmlzaWJsZT1fLmxtKGEudmlzaWJsZSwhMCk7cmV0dXJuIGF9O18ub2RhPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnJhZGl1c3x8NjM3ODEzN307Tm89ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLkVvP3BkYShhKTpuZXcgXy5FbyhxZGEoYSkpfTtyZGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe2lmKCEoYiBpbnN0YW5jZW9mIF8uRW8pKXRocm93IF8uQW0oIm5vdCBhbiBNVkNBcnJheSIpO2IuZm9yRWFjaCgoYyxkKT0+e3RyeXthKGMpfWNhdGNoKGUpe3Rocm93IF8uQW0oYGF0IGluZGV4ICR7ZH1gLGUpO319KTtyZXR1cm4gYn19O3NkYT1mdW5jdGlvbihhKXtfLkhsKCJwb2x5IikudGhlbihiPT57Yi52TChhKX0pfTsKT289ZnVuY3Rpb24oYSl7YT1hLnRyaW0oKTtpZighYSl0aHJvdyBFcnJvcigibWlzc2luZyB2YWx1ZSIpO3ZhciBiPU51bWJlcihhKTtpZihpc05hTihiKXx8IWlzRmluaXRlKGIpKXRocm93IEVycm9yKGAiJHthfSIgaXMgbm90IGEgbnVtYmVyYCk7cmV0dXJuIGJ9O1BvPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dHJ5e3JldHVybiBhKGIpfWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmVycm9yKGMgaW5zdGFuY2VvZiBFcnJvcj9jLm1lc3NhZ2U6YCR7Y31gKSxudWxsfX19OwpfLlJvPWZ1bmN0aW9uKGEpe3RyeXtsZXQgYj1hLnNwbGl0KCIsIikubWFwKE9vKTtpZihiLmxlbmd0aDwyKXRocm93IEVycm9yKCJ0b28gZmV3IHZhbHVlcyIpO2lmKGIubGVuZ3RoPjMpdGhyb3cgRXJyb3IoInRvbyBtYW55IHZhbHVlcyIpO2xldCBbYyxkLGVdPWI7cmV0dXJuIG5ldyBfLlFvKHtsYXQ6Yyxsbmc6ZCxhbHRpdHVkZTplfSl9Y2F0Y2goYil7dGhyb3cgRXJyb3IoYENvdWxkIG5vdCBpbnRlcnByZXQgIiR7YX0iIGFzIGEgTGF0TG5nQWx0aXR1ZGU6IGArKGIgaW5zdGFuY2VvZiBFcnJvcj9iLm1lc3NhZ2U6YCR7Yn1gKSk7fX07CnRkYT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gbnVsbDt0cnl7bGV0IGI9YS5zcGxpdCgiQCIpO2lmKGIubGVuZ3RoIT09Mil0aHJvdyBFcnJvcigiaW52YWxpZCBjaXJjbGUgZm9ybWF0Iik7bGV0IFtjLGRdPWIsZT1PbyhjKSxmPV8uUm8oZCk7cmV0dXJuIG5ldyBfLlNvKHtjZW50ZXI6ZixyYWRpdXM6ZX0pfWNhdGNoKGIpe3Rocm93IEVycm9yKGBDb3VsZCBub3QgaW50ZXJwcmV0ICIke2F9IiBhcyBhIENpcmNsZTogYCsoYiBpbnN0YW5jZW9mIEVycm9yP2IubWVzc2FnZTpgJHtifWApKTt9fTtfLlRvPWZ1bmN0aW9uKGEpe2lmKGEpe2lmKGEgaW5zdGFuY2VvZiBfLlRtKXJldHVybmAke2EubGF0KCl9LCR7YS5sbmcoKX1gO2xldCBiPWAke2EubGF0fSwke2EubG5nfWA7YS5hbHRpdHVkZSE9PXZvaWQgMCYmYS5hbHRpdHVkZSE9PTAmJihiKz1gLCR7YS5hbHRpdHVkZX1gKTtyZXR1cm4gYn1yZXR1cm4gbnVsbH07Cl8uVW89ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS5tYXAoXy5Ubykuam9pbigiICIpOm51bGx9O3VkYT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5nZXRDZW50ZXIoKT9gJHthLmdldFJhZGl1cygpfUAke1ZvKGEuZ2V0Q2VudGVyKCkpfWA6bnVsbH07Vm89ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YSBpbnN0YW5jZW9mIF8uVG0/YCR7YS5sYXQoKX0sJHthLmxuZygpfWA6YCR7YS5sYXR9LCR7YS5sbmd9YDpudWxsfTt2ZGE9ZnVuY3Rpb24oKXshV28mJl8uVWEuZG9jdW1lbnQ/LmNyZWF0ZUVsZW1lbnQmJihXbz1fLlVhLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQsXy5VYS5kb2N1bWVudC5jcmVhdGVFbGVtZW50PSguLi5hKT0+e1hvPWFbMF07dHJ5e3ZhciBiPVdvLmFwcGx5KGRvY3VtZW50LGEpfWZpbmFsbHl7WG89dm9pZCAwfXJldHVybiBifSl9OwpZbz1mdW5jdGlvbihhLGIsYyl7aWYoYS5ub2RlVHlwZSE9PTEpcmV0dXJuIHdkYTtiPWIudG9Mb3dlckNhc2UoKTtpZihiPT09ImlubmVyaHRtbCJ8fGI9PT0iaW5uZXJ0ZXh0Inx8Yj09PSJ0ZXh0Y29udGVudCJ8fGI9PT0ib3V0ZXJodG1sIilyZXR1cm4oKT0+Xy55aih4ZGEpO3ZhciBkPXlkYS5nZXQoYCR7YS50YWdOYW1lfSAke2J9YCk7cmV0dXJuIGQhPT12b2lkIDA/ZDovXm9uLy50ZXN0KGIpJiZjPT09ImF0dHJpYnV0ZSImJihhPWEudGFnTmFtZS5pbmNsdWRlcygiLSIpP0hUTUxFbGVtZW50LnByb3RvdHlwZTphLGIgaW4gYSk/KCk9Pnt0aHJvdyBFcnJvcigiaW52YWxpZCBiaW5kaW5nIik7fTp3ZGF9O0FkYT1mdW5jdGlvbihhLGIpe2lmKCFabyhhKXx8IWEuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gemRhIT09dm9pZCAwP3pkYS5jcmVhdGVIVE1MKGIpOmJ9OwpicD1mdW5jdGlvbihhLGIsYz1hLGQpe2lmKGI9PT0kbylyZXR1cm4gYjt2YXIgZT1kIT09dm9pZCAwP2Mucmg/LltkXTpjLkZoLGY9YXAoYik/dm9pZCAwOmIuXyRsaXREaXJlY3RpdmUkO2U/LmNvbnN0cnVjdG9yIT09ZiYmKGU/Ll8kbm90aWZ5RGlyZWN0aXZlQ29ubmVjdGlvbkNoYW5nZWQ/LighMSksZj09PXZvaWQgMD9lPXZvaWQgMDooZT1uZXcgZihhKSxlLmZMKGEsYyxkKSksZCE9PXZvaWQgMD8oYy5yaD8/KGMucmg9W10pKVtkXT1lOmMuRmg9ZSk7ZSE9PXZvaWQgMCYmKGI9YnAoYSxlLmdMKGEsYi52YWx1ZXMpLGUsZCkpO3JldHVybiBifTsKQ2RhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1TeW1ib2woKSx7Z2V0OmUsc2V0OmZ9PUJkYShhLnByb3RvdHlwZSxiKT8/e2dldCgpe3JldHVybiB0aGlzW2RdfSxzZXQoZyl7dGhpc1tkXT1nfX07cmV0dXJue2dldDplLHNldChnKXt2YXIgaD1lPy5jYWxsKHRoaXMpO2Y/LmNhbGwodGhpcyxnKTtfLmNwKHRoaXMsYixoLGMpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19O0VkYT1mdW5jdGlvbihhLGIsYz1kcCl7Yy5zdGF0ZSYmKGMuS2g9ITEpO2EucmgoKTthLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShiKSYmKGM9T2JqZWN0LmNyZWF0ZShjKSxjLld6PSEwKTthLlJwLnNldChiLGMpO2MuQVR8fChjPUNkYShhLGIsYyksYyE9PXZvaWQgMCYmRGRhKGEucHJvdG90eXBlLGIsYykpfTsKXy5jcD1mdW5jdGlvbihhLGIsYyxkLGU9ITEsZil7aWYoYiE9PXZvaWQgMCl7bGV0IGc9YS5jb25zdHJ1Y3RvcjtlPT09ITEmJihmPWFbYl0pO2Q/PyhkPWcuUnAuZ2V0KGIpPz9kcCk7aWYoKGQubmo/P2VwKShmLGMpfHxkLm9LJiZkLk5oJiZmPT09YS5XaD8uZ2V0KGIpJiYhYS5oYXNBdHRyaWJ1dGUoZy5HQyhiLGQpKSlhLldrKGIsYyxkKTtlbHNlIHJldHVybn1hLk9oPT09ITEmJihhLmFsPWEucXgoKSl9OwpGZGE9ZnVuY3Rpb24oYSl7aWYoYS5PaCl7aWYoIWEuTWgpe2EuUGs/PyhhLlBrPWEuc2koKSk7aWYoYS5aaCl7Zm9yKGxldCBbZCxlXW9mIGEuWmgpYVtkXT1lO2EuWmg9dm9pZCAwfXZhciBiPWEuY29uc3RydWN0b3IuUnA7aWYoYi5zaXplPjApZm9yKGxldCBbZCxlXW9mIGIpe2I9ZDt2YXIgYz1lO2xldCBmPWFbYl07Yy5XeiE9PSEwfHxhLkpoLmhhcyhiKXx8Zj09PXZvaWQgMHx8YS5XayhiLHZvaWQgMCxjLGYpfX1iPSExO2M9YS5KaDt0cnl7Yj0hMCxhLmhtKGMpLGEuSWg/LmZvckVhY2goZD0+ZC5kVD8uKCkpLGEudXBkYXRlKGMpfWNhdGNoKGQpe3Rocm93IGI9ITEsYS5zcigpLGQ7fWImJmEub3goYyl9fTtmcD1mdW5jdGlvbigpe3JldHVybiEwfTtfLmdwPWZ1bmN0aW9uKGEsYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTohMCx3cml0YWJsZTohMX0pfTtfLmhwPWZ1bmN0aW9uKGEsYil7cmV0dXJuYDwke2EuY0x9PjogJHtifWB9OwpfLmlwPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBfLkFtKF8uaHAoYSxgQ2Fubm90IHNldCBwcm9wZXJ0eSAiJHtifSIgdG8gJHtjfWApLGQpfTtfLkdkYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBfLmpwO2NvbnNvbGUuZXJyb3IoXy5ocChhLGBFbmNvdW50ZXJlZCBhIG5ldHdvcmsgcmVxdWVzdCBlcnJvcjogJHtiIGluc3RhbmNlb2YgRXJyb3I/Yi5tZXNzYWdlOlN0cmluZyhiKX1gKSk7YS5kaXNwYXRjaEV2ZW50KGMpfTtfLmtwPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXtyZXR1cm4gYyhkKX1jYXRjaChlKXt0aHJvdyBfLkFtKF8uaHAoYSxgQ2Fubm90IHNldCBwcm9wZXJ0eSAiJHtifSIgdG8gJHtkfWApLGUpO319OwpJZGE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXQoIm1hcElkIik7Yj1uZXcgSGRhKGIsYS5tYXBUeXBlcyk7Yi5iaW5kVG8oIm1hcEhhc0JlZW5BYmxlVG9CZURyYXduIixhLl9fZ20pO2IuYmluZFRvKCJtYXBJZCIsYSwibWFwSWQiLCEwKTtiLmJpbmRUbygic3R5bGVzIixhKTtiLmJpbmRUbygibWFwVHlwZUlkIixhKX07bHA9ZnVuY3Rpb24oYSxiKXthLmlzQXZhaWxhYmxlPSExO2EucWgucHVzaChiKX07Cl8ubnA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLm1wKGEuX19nbS5xaCwiREFUQV9EUklWRU5fU1RZTElORyIpO2lmKCFiKXJldHVybiBjO3ZhciBkPVsiVGhlIG1hcCBpcyBpbml0aWFsaXplZCB3aXRob3V0IGEgdmFsaWQgbWFwIElELCB0aGF0IHdpbGwgcHJldmVudCB1c2Ugb2YgZGF0YS1kcml2ZW4gc3R5bGluZy4iLCJUaGUgTWFwIFN0eWxlIGRvZXMgbm90IGhhdmUgYW55IEZlYXR1cmVMYXllcnMgY29uZmlndXJlZCBmb3IgZGF0YS1kcml2ZW4gc3R5bGluZy4iLCJUaGUgTWFwIFN0eWxlIGRvZXMgbm90IGhhdmUgYW55IERhdGFzZXRzIG9yIEZlYXR1cmVMYXllcnMgY29uZmlndXJlZCBmb3IgZGF0YS1kcml2ZW4gc3R5bGluZy4iXSxlPWMucWgubWFwKGY9PmYuR3EpO2U9ZSYmZS5zb21lKGY9PmQuaW5jbHVkZXMoZikpOyhjLmlzQXZhaWxhYmxlfHwhZSkmJihhPWEuX19nbS5xaC5ZdigpKSYmKGI9SmRhKGIsYSkpJiZscChjLHtHcTpifSk7cmV0dXJuIGN9OwpKZGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmZlYXR1cmVUeXBlO2lmKGM9PT0iREFUQVNFVCIpe2lmKCFiLnRoKCkubWFwKGQ9Pl8uSChkLDIpKS5pbmNsdWRlcyhhLmRhdGFzZXRJZCkpcmV0dXJuIlRoZSBNYXAgU3R5bGUgZG9lcyBub3QgaGF2ZSB0aGUgZm9sbG93aW5nIERhdGFzZXQgSUQgYXNzb2NpYXRlZCB3aXRoIGl0OiAiK2EuZGF0YXNldElkfWVsc2UgaWYoIWIuc2goKS5pbmNsdWRlcyhjKSlyZXR1cm4iVGhlIE1hcCBTdHlsZSBkb2VzIG5vdCBoYXZlIHRoZSBmb2xsb3dpbmcgRmVhdHVyZUxheWVyIGNvbmZpZ3VyZWQgZm9yIGRhdGEtZHJpdmVuIHN0eWxpbmc6ICIrYztyZXR1cm4gbnVsbH07cHA9ZnVuY3Rpb24oYSxiPSIiLGMpe2M9Xy5ucChhLGMpO2MuaXNBdmFpbGFibGV8fF8ub3AoYSxiLGMpfTtLZGE9ZnVuY3Rpb24oYSl7YT1hLl9fZ207Zm9yKGxldCBiIG9mIGEudGgua2V5cygpKWEudGguZ2V0KGIpLmlzRW5hYmxlZHx8Xy5ybShgVGhlIE1hcCBTdHlsZSBkb2VzIG5vdCBoYXZlIHRoZSBmb2xsb3dpbmcgRmVhdHVyZUxheWVyIGNvbmZpZ3VyZWQgZm9yIGRhdGEtZHJpdmVuIHN0eWxpbmc6ICAke2J9YCl9OwpfLkxkYT1mdW5jdGlvbihhLGI9ITEpe3ZhciBjPWEuX19nbTtjLnRoLnNpemU+MCYmcHAoYSk7YiYmS2RhKGEpO2MudGguZm9yRWFjaChkPT57ZC5jSSgpfSl9O18ub3A9ZnVuY3Rpb24oYSxiLGMpe2lmKGMucWgubGVuZ3RoIT09MCl7dmFyIGQ9Yj9iKyI6ICI6IiIsZT1hLl9fZ20ucWg7Yy5xaC5mb3JFYWNoKGY9PntlLmxvZyhmLGQpfSl9fTtfLnFwPWZ1bmN0aW9uKCl7fTtfLm1wPWZ1bmN0aW9uKGEsYil7YS5sb2coTWRhW2JdKTthOnN3aXRjaChiKXtjYXNlICJBRFZBTkNFRF9NQVJLRVJTIjphPWEuY2FjaGUuckc7YnJlYWsgYTtjYXNlICJEQVRBX0RSSVZFTl9TVFlMSU5HIjphPWEuY2FjaGUuYUg7YnJlYWsgYTtjYXNlICJXRUJHTF9PVkVSTEFZX1ZJRVciOmE9YS5jYWNoZS55cTticmVhayBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYE5vIGNhcGFiaWxpdHkgaW5mb3JtYXRpb24gZm9yOiAke2J9YCk7fXJldHVybiBhLmNsb25lKCl9OwpzcD1mdW5jdGlvbihhKXt2YXIgYj1hLmNhY2hlLGM9bmV3IHJwO2EuZW8oKXx8bHAoYyx7R3E6IlRoZSBtYXAgaXMgaW5pdGlhbGl6ZWQgd2l0aG91dCBhIHZhbGlkIE1hcCBJRCwgd2hpY2ggd2lsbCBwcmV2ZW50IHVzZSBvZiBBZHZhbmNlZCBNYXJrZXJzLiJ9KTtiLnJHPWM7Yj1hLmNhY2hlO2M9bmV3IHJwO2lmKGEuZW8oKSl7dmFyIGQ9YS5ZdigpO2lmKGQpe2xldCBlPWQuc2goKTtkPWQudGgoKTtlLmxlbmd0aHx8ZC5sZW5ndGh8fGxwKGMse0dxOiJUaGUgTWFwIFN0eWxlIGRvZXMgbm90IGhhdmUgYW55IERhdGFzZXRzIG9yIEZlYXR1cmVMYXllcnMgY29uZmlndXJlZCBmb3IgZGF0YS1kcml2ZW4gc3R5bGluZy4ifSl9YS5qdyE9PSJVTktOT1dOIiYmYS5qdyE9PSJUUlVFIiYmbHAoYyx7R3E6IlRoZSBtYXAgaXMgbm90IGEgdmVjdG9yIG1hcC4gVGhhdCB3aWxsIHByZXZlbnQgdXNlIG9mIGRhdGEtZHJpdmVuIHN0eWxpbmcuIn0pfWVsc2UgbHAoYyx7R3E6IlRoZSBtYXAgaXMgaW5pdGlhbGl6ZWQgd2l0aG91dCBhIHZhbGlkIG1hcCBJRCwgdGhhdCB3aWxsIHByZXZlbnQgdXNlIG9mIGRhdGEtZHJpdmVuIHN0eWxpbmcuIn0pOwpiLmFIPWM7Yj1hLmNhY2hlO2M9bmV3IHJwO2EuZW8oKT9hLmp3IT09IlVOS05PV04iJiZhLmp3IT09IlRSVUUiJiZscChjLHtHcToiVGhlIG1hcCBpcyBub3QgYSB2ZWN0b3IgbWFwLCB3aGljaCB3aWxsIHByZXZlbnQgdXNlIG9mIFdlYkdMT3ZlcmxheVZpZXcuIn0pOmxwKGMse0dxOiJUaGUgbWFwIGlzIGluaXRpYWxpemVkIHdpdGhvdXQgYSB2YWxpZCBtYXAgSUQsIHdoaWNoIHdpbGwgcHJldmVudCB1c2Ugb2YgV2ViR0xPdmVybGF5Vmlldy4ifSk7Yi55cT1jO05kYShhKX07TmRhPWZ1bmN0aW9uKGEpe2EucWg9ITA7dHJ5e2Euc2V0KCJtYXBDYXBhYmlsaXRpZXMiLGEuZ2V0TWFwQ2FwYWJpbGl0aWVzKCkpfWZpbmFsbHl7YS5xaD0hMX19O09kYT1mdW5jdGlvbihhLGIpe3ZhciBjPWEub3B0aW9ucy5oRC5NQVBfSU5JVElBTElaQVRJT047aWYoYylmb3IobGV0IGQgb2YgYylhLmh1KGQsYil9OwpfLnRwPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm9wdGlvbnMuaEQuTUFQX0lOSVRJQUxJWkFUSU9OO2lmKGQpZm9yKGxldCBlIG9mIGQpYS5abihlLGIsYyl9O18udXA9ZnVuY3Rpb24oYSxiKXtpZihiPWEub3B0aW9ucy5oRFtiXSlmb3IobGV0IGMgb2YgYilhLmp1KGMpfTtfLndwPWZ1bmN0aW9uKGEpe3RoaXMucWg9MDt0aGlzLnpoPXZvaWQgMDt0aGlzLnRoPXRoaXMucmg9dGhpcy5zaD1udWxsO3RoaXMud2g9dGhpcy54aD0hMTtpZihhIT1fLlJsKXRyeXtsZXQgYj10aGlzO2EuY2FsbCh2b2lkIDAsZnVuY3Rpb24oYyl7dnAoYiwyLGMpfSxmdW5jdGlvbihjKXt2cChiLDMsYyl9KX1jYXRjaChiKXt2cCh0aGlzLDMsYil9fTtQZGE9ZnVuY3Rpb24oKXt0aGlzLm5leHQ9dGhpcy5jb250ZXh0PXRoaXMucmg9dGhpcy5zaD10aGlzLnFoPW51bGw7dGhpcy50aD0hMX07UmRhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1RZGEuZ2V0KCk7ZC5zaD1hO2Qucmg9YjtkLmNvbnRleHQ9YztyZXR1cm4gZH07ClNkYT1mdW5jdGlvbihhLGIpe2lmKGEucWg9PTApaWYoYS5zaCl7dmFyIGM9YS5zaDtpZihjLnJoKXt2YXIgZD0wLGU9bnVsbCxmPW51bGw7Zm9yKGxldCBnPWMucmg7ZyYmKGcudGh8fChkKyssZy5xaD09YSYmKGU9ZyksIShlJiZkPjEpKSk7Zz1nLm5leHQpZXx8KGY9Zyk7ZSYmKGMucWg9PTAmJmQ9PTE/U2RhKGMsYik6KGY/KGQ9ZixkLm5leHQ9PWMudGgmJihjLnRoPWQpLGQubmV4dD1kLm5leHQubmV4dCk6VGRhKGMpLFVkYShjLGUsMyxiKSkpfWEuc2g9bnVsbH1lbHNlIHZwKGEsMyxiKX07V2RhPWZ1bmN0aW9uKGEsYil7YS5yaHx8YS5xaCE9MiYmYS5xaCE9M3x8VmRhKGEpO2EudGg/YS50aC5uZXh0PWI6YS5yaD1iO2EudGg9Yn07ClhkYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1SZGEobnVsbCxudWxsLG51bGwpO2UucWg9bmV3IF8ud3AoZnVuY3Rpb24oZixnKXtlLnNoPWI/ZnVuY3Rpb24oaCl7dHJ5e2xldCBrPWIuY2FsbChkLGgpO2Yoayl9Y2F0Y2goayl7ZyhrKX19OmY7ZS5yaD1jP2Z1bmN0aW9uKGgpe3RyeXtsZXQgaz1jLmNhbGwoZCxoKTtrPT09dm9pZCAwJiZoIGluc3RhbmNlb2YgeHA/ZyhoKTpmKGspfWNhdGNoKGspe2coayl9fTpnfSk7ZS5xaC5zaD1hO1dkYShhLGUpO3JldHVybiBlLnFofTsKdnA9ZnVuY3Rpb24oYSxiLGMpe2lmKGEucWg9PTApe2E9PT1jJiYoYj0zLGM9bmV3IFR5cGVFcnJvcigiUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7YS5xaD0xO2E6e3ZhciBkPWMsZT1hLm1RLGY9YS5uUTtpZihkIGluc3RhbmNlb2YgXy53cCl7V2RhKGQsUmRhKGV8fF8uUmwsZnx8bnVsbCxhKSk7dmFyIGc9ITB9ZWxzZXtpZihkKXRyeXt2YXIgaD0hIWQuJGdvb2dfVGhlbmFibGV9Y2F0Y2goayl7aD0hMX1lbHNlIGg9ITE7aWYoaClkLnRoZW4oZSxmLGEpLGc9ITA7ZWxzZXtpZihfLlphKGQpKXRyeXtsZXQgaz1kLnRoZW47aWYodHlwZW9mIGs9PT0iZnVuY3Rpb24iKXtZZGEoZCxrLGUsZixhKTtnPSEwO2JyZWFrIGF9fWNhdGNoKGspe2YuY2FsbChhLGspO2c9ITA7YnJlYWsgYX1nPSExfX19Z3x8KGEuemg9YyxhLnFoPWIsYS5zaD1udWxsLFZkYShhKSxiIT0zfHxjIGluc3RhbmNlb2YgeHB8fFpkYShhLGMpKX19OwpZZGE9ZnVuY3Rpb24oYSxiLGMsZCxlKXtmdW5jdGlvbiBmKGspe2h8fChoPSEwLGQuY2FsbChlLGspKX1mdW5jdGlvbiBnKGspe2h8fChoPSEwLGMuY2FsbChlLGspKX12YXIgaD0hMTt0cnl7Yi5jYWxsKGEsZyxmKX1jYXRjaChrKXtmKGspfX07VmRhPWZ1bmN0aW9uKGEpe2EueGh8fChhLnhoPSEwLF8ueXAoYS5CTSxhKSl9O1RkYT1mdW5jdGlvbihhKXt2YXIgYj1udWxsO2EucmgmJihiPWEucmgsYS5yaD1iLm5leHQsYi5uZXh0PW51bGwpO2Eucmh8fChhLnRoPW51bGwpO3JldHVybiBifTtVZGE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYz09MyYmYi5yaCYmIWIudGgpZm9yKDthJiZhLndoO2E9YS5zaClhLndoPSExO2lmKGIucWgpYi5xaC5zaD1udWxsLCRkYShiLGMsZCk7ZWxzZSB0cnl7Yi50aD9iLnNoLmNhbGwoYi5jb250ZXh0KTokZGEoYixjLGQpfWNhdGNoKGUpe2FlYS5jYWxsKG51bGwsZSl9ZGRhKFFkYSxiKX07CiRkYT1mdW5jdGlvbihhLGIsYyl7Yj09Mj9hLnNoLmNhbGwoYS5jb250ZXh0LGMpOmEucmgmJmEucmguY2FsbChhLmNvbnRleHQsYyl9O1pkYT1mdW5jdGlvbihhLGIpe2Eud2g9ITA7Xy55cChmdW5jdGlvbigpe2Eud2gmJmFlYS5jYWxsKG51bGwsYil9KX07eHA9ZnVuY3Rpb24oYSl7Xy50Yi5jYWxsKHRoaXMsYSl9O18uenA9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYSE9PSJmdW5jdGlvbiIpaWYoYSYmdHlwZW9mIGEuaGFuZGxlRXZlbnQ9PSJmdW5jdGlvbiIpYT0oMCxfLmliKShhLmhhbmRsZUV2ZW50LGEpO2Vsc2UgdGhyb3cgRXJyb3IoIkludmFsaWQgbGlzdGVuZXIgYXJndW1lbnQiKTtyZXR1cm4gTnVtYmVyKGIpPjIxNDc0ODM2NDc/LTE6Xy5VYS5zZXRUaW1lb3V0KGEsYnx8MCl9O18uQXA9ZnVuY3Rpb24oYSxiLGMpe18ubWsuY2FsbCh0aGlzKTt0aGlzLnFoPWE7dGhpcy50aD1ifHwwO3RoaXMucmg9Yzt0aGlzLnNoPSgwLF8uaWIpKHRoaXMuZ0csdGhpcyl9OwpfLkJwPWZ1bmN0aW9uKGEpe2Euc3RvcCgpO2EuZ0coKX07YmVhPWZ1bmN0aW9uKGEpe2EucWgmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntpZihhLnFoKXtsZXQgYj1bLi4uYS5yaC52YWx1ZXMoKV0uZmxhdCgpO2EucWgoYil9fSl9O18uY2VhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5OQSgpO2MmJihhLnJoLnNldChfLmhiKGIpLGMpLGEuc2guRGkoKSl9O18uZGVhPWZ1bmN0aW9uKGEsYil7Yj1fLmhiKGIpO2EucmguaGFzKGIpJiYoYS5yaC5kZWxldGUoYiksYS5zaC5EaSgpKX07ZWVhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS56SW5kZXgsZD1iLnpJbmRleCxlPV8uam0oYyksZj1fLmptKGQpLGc9YS50bCxoPWIudGw7aWYoZSYmZiYmYyE9PWQpcmV0dXJuIGM+ZD8tMToxO2lmKGUhPT1mKXJldHVybiBlPy0xOjE7aWYoZy55IT09aC55KXJldHVybiBoLnktZy55O2E9Xy5oYihhKTtiPV8uaGIoYik7cmV0dXJuIGE+Yj8tMToxfTsKZmVhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuc29tZShjPT5fLkFvKGMsYSkpfTtfLkNwPWZ1bmN0aW9uKGEsYixjKXtfLm1rLmNhbGwodGhpcyk7dGhpcy5BaD1jIT1udWxsPygwLF8uaWIpKGEsYyk6YTt0aGlzLnloPWI7dGhpcy54aD0oMCxfLmliKSh0aGlzLlFLLHRoaXMpO3RoaXMucmg9ITE7dGhpcy5zaD0wO3RoaXMudGg9dGhpcy5xaD1udWxsO3RoaXMud2g9W119O18uRHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnhuKGIpO2EuZWxlbWVudHNbY118fChhLmVsZW1lbnRzW2NdPWIsKythLnNpemUsXy53bihhLCJpbnNlcnQiLGIpLGEucWgmJmEucWgoYikpfTtfLmdlYT1mdW5jdGlvbihhLGIpe3ZhciBjPWIuV3AoKTtyZXR1cm4gYS5laS5maWx0ZXIoZD0+e2Q9ZC5XcCgpO3JldHVybiBjIT09ZH0pfTtfLkVwPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGEubWF0Y2hlc3x8YS5tc01hdGNoZXNTZWxlY3Rvcnx8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3IpLmNhbGwoYSxiKX07CmhlYT1mdW5jdGlvbihhKXthLmN1cnJlbnRUYXJnZXQuc3R5bGUub3V0bGluZT0iIn07Cl8uSXA9ZnVuY3Rpb24oYSl7aWYoXy5FcChhLCdzZWxlY3QsdGV4dGFyZWEsaW5wdXRbdHlwZT0iZGF0ZSJdLGlucHV0W3R5cGU9ImRhdGV0aW1lLWxvY2FsIl0saW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJtb250aCJdLGlucHV0W3R5cGU9Im51bWJlciJdLGlucHV0W3R5cGU9InBhc3N3b3JkIl0saW5wdXRbdHlwZT0ic2VhcmNoIl0saW5wdXRbdHlwZT0idGVsIl0saW5wdXRbdHlwZT0idGV4dCJdLGlucHV0W3R5cGU9InRpbWUiXSxpbnB1dFt0eXBlPSJ1cmwiXSxpbnB1dFt0eXBlPSJ3ZWVrIl0saW5wdXQ6bm90KFt0eXBlXSknKSlyZXR1cm5bXTt2YXIgYj1bXTtiLnB1c2gobmV3IF8uRnAoYSwiZm9jdXMiLGM9PnshXy5HcCYmXy5IcCYmXy5IcCE9PSJLRVlCT0FSRCImJihjLmN1cnJlbnRUYXJnZXQuc3R5bGUub3V0bGluZT0ibm9uZSIpfSkpO2IucHVzaChuZXcgXy5GcChhLCJmb2N1c291dCIsaGVhKSk7cmV0dXJuIGJ9OwpLcD1mdW5jdGlvbigpe3JldHVybiBKcD9KcDpKcD1uZXcgaWVhfTtNcD1mdW5jdGlvbihhKXtyZXR1cm4gXy5McFs0M10/ITE6YS5BaD8hMDohXy5VYS5kZXZpY2VQaXhlbFJhdGlvfHwhXy5VYS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV9O18uamVhPWZ1bmN0aW9uKCl7dmFyIGE9Xy5OcDtyZXR1cm4gXy5McFs0M10/ITE6YS5BaHx8TXAoYSl9O2tlYT1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYz0wLGQ7ZD1iW2NdOysrYylpZih0eXBlb2YgYS5kb2N1bWVudEVsZW1lbnQuc3R5bGVbZF09PT0ic3RyaW5nIilyZXR1cm4gZDtyZXR1cm4gbnVsbH07Xy5QcD1mdW5jdGlvbigpe09wfHwoT3A9bmV3IGxlYSk7cmV0dXJuIE9wfTtfLlFwPWZ1bmN0aW9uKGEsYil7YSE9PW51bGwmJihhPWEuc3R5bGUsYS53aWR0aD1fLmVvKGIpLGEuaGVpZ2h0PV8uZm8oYikpfTtfLlJwPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5nbyhhLm9mZnNldFdpZHRoLGEub2Zmc2V0SGVpZ2h0KX07Cl8uVHA9ZnVuY3Rpb24oYSl7dmFyIGI9ITE7Xy5TcC5yaCgpP2EuZHJhZ2dhYmxlPSExOmI9ITA7dmFyIGM9Xy5QcCgpLnJoO2M/YS5zdHlsZVtjXT0ibm9uZSI6Yj0hMDtiJiZhLnNldEF0dHJpYnV0ZSgidW5zZWxlY3RhYmxlIiwib24iKTthLm9uc2VsZWN0c3RhcnQ9ZD0+e18uZ24oZCk7Xy5obihkKX19OwpfLlVwPWZ1bmN0aW9uKGEsYj0hMSl7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEpcmV0dXJuITA7aWYoIShhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXJldHVybiExO3ZhciBjPSExO18uSXAoYSk7Y3VzdG9tRWxlbWVudHMuZ2V0KGEubG9jYWxOYW1lKXx8KGEudGFiSW5kZXg9YS50YWJJbmRleCk7dmFyIGQ9KCk9PntjPSEwO2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZCl9LGU9KCk9PntjPSEwO2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGUpfTthLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixlKTthLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGQpO2EuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ISFifSk7cmV0dXJuIGN9OwptZWE9ZnVuY3Rpb24oYSxiKXtiJiYoYS5zaD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LF8udG4oYS5fX2dtLCJwYW5vcmFtYWhpZGRlbiIsKCk9PntpZihhLnJoPy5ncz8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpe3ZhciBjPWEuc2g/Lm5vZGVOYW1lPT09IkJPRFkiLGQ9YS5fX2dtLmdldCgiZm9jdXNGYWxsYmFja0VsZW1lbnQiKTthLnNoJiYhYz8hXy5VcChhLnNoKSYmZCYmXy5VcChkKTpkJiZfLlVwKGQpfX0pKX07Xy5vZWE9ZnVuY3Rpb24oYSxiPWRvY3VtZW50KXtyZXR1cm4gbmVhKGEsYil9O25lYT1mdW5jdGlvbihhLGIpe3JldHVybihiPWImJihiLmZ1bGxzY3JlZW5FbGVtZW50fHxiLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHxiLm1vekZ1bGxTY3JlZW5FbGVtZW50fHxiLm1zRnVsbHNjcmVlbkVsZW1lbnQpKT9iPT09YT8hMDpuZWEoYSxiLnNoYWRvd1Jvb3QpOiExfTsKcGVhPWZ1bmN0aW9uKGEpe2EucWg9ITA7dHJ5e2Euc2V0KCJyZW5kZXJpbmdUeXBlIixhLnJoKX1maW5hbGx5e2EucWg9ITF9fTtfLnFlYT1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Xy5VYS5nb29nbGUmJl8uVWEuZ29vZ2xlLm1hcHMmJl8uVWEuZ29vZ2xlLm1hcHMuZmlzZmV0c3o7YiYmQXJyYXkuaXNBcnJheShiKSYmXy5McFsxNV0mJmIuZm9yRWFjaChjPT57Xy5qbShjKSYmYS5wdXNoKGMpfSk7cmV0dXJuIGF9O3JlYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5raChhLDEsMzMpfTtzZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ua2goYSwyLDMpfTt0ZWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5raChhLDEsYil9O3VlYT1mdW5jdGlvbihhKXt2YXIgYj1fLkpsLnJoKCkucmgoKTtyZXR1cm4gXy5paChhLDUsYil9O3ZlYT1mdW5jdGlvbihhKXt2YXIgYj1fLkpsLnJoKCkudGgoKS50b0xvd2VyQ2FzZSgpO3JldHVybiBfLmloKGEsNixiKX07CndlYT1mdW5jdGlvbihhKXtyZXR1cm4gXy4kZyhhLDEwLCEwKX07eGVhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uYmgoYSwxLGIpfTt5ZWE9ZnVuY3Rpb24oYSxiKXtfLmJoKGEsMixiKX07emVhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uZGgoYSwxLGIpfTtBZWE9ZnVuY3Rpb24oYSxiKXtfLmRoKGEsMixiKX07QmVhPWZ1bmN0aW9uKGEsYil7Xy5raChhLDgsYil9O18uVnA9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9TWF0aC5wb3coMixNYXRoLnJvdW5kKGEpKS8yNTY7cmV0dXJuIG5ldyBDZWEoTWF0aC5yb3VuZChNYXRoLnBvdygyLGEpL2UpKmUsYixjLGQpfTtfLlhwPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBfLldwKChhLm0yMipiLlhoLWEubTEyKmIuWWgpL2Euc2gsKC1hLm0yMSpiLlhoK2EubTExKmIuWWgpL2Euc2gpfTtEZWE9ZnVuY3Rpb24oYSl7YT1hLmdldCgiem9vbSIpO3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiP01hdGguZmxvb3IoYSk6YX07CkZlYT1mdW5jdGlvbihhKXt2YXIgYj1hLmdldCgidGlsdCIpfHwhYS53aCYmXy4kbChhLmdldCgic3R5bGVzIikpO2E9YS5nZXQoIm1hcFR5cGVJZCIpO3JldHVybiBiP251bGw6RWVhW2FdfTtHZWE9ZnVuY3Rpb24oYSxiKXthLnFoLm9ubG9hZD1udWxsO2EucWgub25lcnJvcj1udWxsO3ZhciBjPWEueGgoKTtjJiYoYiYmKGEucWgucGFyZW50Tm9kZXx8YS5yaC5hcHBlbmRDaGlsZChhLnFoKSxhLnNofHxfLlFwKGEucWgsYykpLGEuc2V0KCJsb2FkaW5nIiwhMSkpfTtIZWE9ZnVuY3Rpb24oYSxiKXtiIT09YS5xaC5zcmM/KGEuc2h8fGEucWg/LnJlbW92ZSgpLGEucWgub25sb2FkPSgpPT57R2VhKGEsITApfSxhLnFoLm9uZXJyb3I9KCk9PntHZWEoYSwhMSl9LGEucWguc3JjPWIpOiFhLnFoLnBhcmVudE5vZGUmJmImJmEucmguYXBwZW5kQ2hpbGQoYS5xaCl9OwpMZWE9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1uZXcgSWVhO3llYSh4ZWEoXy53ZyhmLEplYSwxKSxiLm1pblgpLGIubWluWSk7Xy5raChmLDIsZSkuc2V0Wm9vbShjKTtBZWEoemVhKF8ud2coZixfLllwLDQpLGIubWF4WC1iLm1pblgpLGIubWF4WS1iLm1pblkpO3ZhciBnPXdlYSh2ZWEodWVhKHRlYShfLndnKGYsXy5acCw1KSxkKSkpKTtiPV8ucWVhKCk7YS53aHx8Yi5wdXNoKDQ3MDgzNTAyKTtiLmZvckVhY2goaD0+e3ZhciBrPSExO2ZvcihsZXQgbT0wLHA9Xy5UZyhnLDE0KTttPHA7bSsrKWlmKF8uU2coZywxNCxtKT09PWgpe2s9ITA7YnJlYWt9a3x8Xy5taChnLDE0LGgpfSk7Xy4kZyhnLDEyLCEwKTtfLkxwWzEzXSYmc2VhKHJlYShfLlpmKGcsOCxfLiRwKSkpLk9sKDEpO2Eud2gmJl8uaWgoZiw3LGEud2gpO0JlYShmLGEuZ2V0KCJjb2xvclRoZW1lIikpO2Y9YS50aCt1bmVzY2FwZSgiJTNGIikrXy5SaihmLEtlYSgpKTtyZXR1cm4gYS5KaChmKX07Ck1lYT1mdW5jdGlvbihhKXt2YXIgYj1fLm5wKGEubWFwLHtmZWF0dXJlVHlwZTphLmZlYXR1cmVUeXBlLGRhdGFzZXRJZDphLmRhdGFzZXRJZCxEczphLkRzfSk7aWYoIWIuaXNBdmFpbGFibGUmJmIucWgubGVuZ3RoPjApe2xldCBjPWIucWgubWFwKGQ9PmQuR3EpO2MuaW5jbHVkZXMoIlRoZSBtYXAgaXMgaW5pdGlhbGl6ZWQgd2l0aG91dCBhIHZhbGlkIG1hcCBJRCwgdGhhdCB3aWxsIHByZXZlbnQgdXNlIG9mIGRhdGEtZHJpdmVuIHN0eWxpbmcuIikmJihhLmZlYXR1cmVUeXBlPT09IkRBVEFTRVQiP18uTShhLm1hcCwxNzczMTEpOl8uTShhLm1hcCwxNDg4NDQpKTsoYy5pbmNsdWRlcygiVGhlIE1hcCBTdHlsZSBkb2VzIG5vdCBoYXZlIGFueSBGZWF0dXJlTGF5ZXJzIGNvbmZpZ3VyZWQgZm9yIGRhdGEtZHJpdmVuIHN0eWxpbmcuIil8fGMuaW5jbHVkZXMoIlRoZSBNYXAgU3R5bGUgZG9lcyBub3QgaGF2ZSB0aGUgZm9sbG93aW5nIEZlYXR1cmVMYXllciBjb25maWd1cmVkIGZvciBkYXRhLWRyaXZlbiBzdHlsaW5nOiAiKwphLmZlYXR1cmVUeXBlKSkmJl8uTShhLm1hcCwxNDg4NDYpO2MuaW5jbHVkZXMoIlRoZSBtYXAgaXMgbm90IGEgdmVjdG9yIG1hcC4gVGhhdCB3aWxsIHByZXZlbnQgdXNlIG9mIGRhdGEtZHJpdmVuIHN0eWxpbmcuIikmJihhLmZlYXR1cmVUeXBlPT09IkRBVEFTRVQiP18uTShhLm1hcCwxNzczMTUpOl8uTShhLm1hcCwxNDg4NDUpKTtjLmluY2x1ZGVzKCJUaGUgTWFwIFN0eWxlIGRvZXMgbm90IGhhdmUgdGhlIGZvbGxvd2luZyBEYXRhc2V0IElEIGFzc29jaWF0ZWQgd2l0aCBpdDogIikmJl8uTShhLm1hcCwxNzgyODEpfXJldHVybiBifTthcT1mdW5jdGlvbihhLGIpe3ZhciBjPU1lYShhKTtfLm9wKGEubWFwLGIsYyk7cmV0dXJuIGN9OwpicT1mdW5jdGlvbihhLGIpe3ZhciBjPW51bGw7dHlwZW9mIGI9PT0iZnVuY3Rpb24iP2M9YjpiJiYoYz0oKT0+Yik7UHJvbWlzZS5hbGwoW18uSGwoIndlYmdsIiksYS5tYXAuX19nbS5zaV0pLnRoZW4oKFtkXSk9PntkLnpoKGEubWFwLHtmZWF0dXJlVHlwZTphLmZlYXR1cmVUeXBlLGRhdGFzZXRJZDphLmRhdGFzZXRJZCxEczphLkRzfSxjKTthLnNoPWJ9KX07Y3E9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnFoPSEhYjt0aGlzLm5vZGU9bnVsbDt0aGlzLnJoPTA7dGhpcy50aD0hMTt0aGlzLnNoPSFjO2EmJnRoaXMuc2V0UG9zaXRpb24oYSxkKTt0aGlzLmRlcHRoPWUhPXZvaWQgMD9lOnRoaXMucmh8fDA7dGhpcy5xaCYmKHRoaXMuZGVwdGgqPS0xKX07Xy5pcT1mdW5jdGlvbihhLGI9ITApe2J8fF8uZHEoYSk7Zm9yKGI9YS5maXJzdENoaWxkO2I7KV8uZHEoYiksYS5yZW1vdmVDaGlsZChiKSxiPWEuZmlyc3RDaGlsZH07Cl8uZHE9ZnVuY3Rpb24oYSl7Zm9yKGE9bmV3IE5lYShhKTs7KXt2YXIgYj1hLm5leHQoKTtpZihiLmRvbmUpYnJlYWs7KGI9Yi52YWx1ZSkmJl8ucG4oYil9fTtfLmpxPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1BcnJheShiLmxlbmd0aCk7Zm9yKGxldCBlPTAsZj1iLmxlbmd0aDtlPGY7KytlKWRbZV09Yi5jaGFyQ29kZUF0KGUpO2QudW5zaGlmdChjKTtyZXR1cm4gYS5oYXNoKGQpfTsKUGVhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBfLmtxKDEzMTA3MSksZj11bmVzY2FwZSgiJTI2JTc0JTZGJTZCJTY1JTZFJTNEIiksZz11bmVzY2FwZSgiJTI2JTZCJTY1JTc5JTNEIiksaD11bmVzY2FwZSgiJTI2JTYzJTZDJTY5JTY1JTZFJTc0JTNEIiksaz11bmVzY2FwZSgiJTI2JTYzJTY4JTYxJTZFJTZFJTY1JTZDJTNEIik7cmV0dXJuKG0scCk9Pnt2YXIgcT0iIix1PXA/P2I7dSYmKHErPWcrZW5jb2RlVVJJQ29tcG9uZW50KHUpKTtwfHwoYyYmKHErPWgrZW5jb2RlVVJJQ29tcG9uZW50KGMpKSxkJiYocSs9aytlbmNvZGVVUklDb21wb25lbnQoZCkpKTttPW0ucmVwbGFjZShPZWEsIiUyNyIpK3E7cD1tK2Y7cT1TdHJpbmc7bHF8fChscT1SZWdFeHAoIig/Omh0dHBzPzovL1teL10rKT8oLiopIikpO209bHEuZXhlYyhtKTtpZighbSl0aHJvdyBFcnJvcigiSW52YWxpZCBVUkwgdG8gc2lnbi4iKTtyZXR1cm4gcCtxKF8uanEoZSxtWzFdLGEpKX19OwpRZWE9ZnVuY3Rpb24oYSl7YT1BcnJheShhLnRvU3RyaW5nKCkubGVuZ3RoKTtmb3IobGV0IGI9MDtiPGEubGVuZ3RoOysrYilhW2JdPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo2MikpO3JldHVybiBhLmpvaW4oIiIpfTtSZWE9ZnVuY3Rpb24oYSxiPVFlYShhKSl7dmFyIGM9bmV3IF8ua3EoMTMxMDcxKTtyZXR1cm4oKT0+W2IsXy5qcShjLGIsYSkudG9TdHJpbmcoKV19O1NlYT1mdW5jdGlvbigpe3ZhciBhPW5ldyBfLmtxKDIxNDc0ODM2NDcpO3JldHVybiBiPT5fLmpxKGEsYiwwKX07Cl8ucnE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7dmFyIFE9eyI0ZyI6MjUwMCwiM2ciOjM1MDAsIjJnIjo2RTMsdW5rbm93bjo0RTN9O3JldHVybiBfLlVhLm5hdmlnYXRvciYmXy5VYS5uYXZpZ2F0b3IuY29ubmVjdGlvbiYmXy5VYS5uYXZpZ2F0b3IuY29ubmVjdGlvbi5lZmZlY3RpdmVUeXBlP1FbXy5VYS5uYXZpZ2F0b3IuY29ubmVjdGlvbi5lZmZlY3RpdmVUeXBlXXx8US51bmtub3duOlEudW5rbm93bn12YXIgZD1wZXJmb3JtYW5jZS5ub3coKTtpZighYSl0aHJvdyBfLkFtKGBNYXA6IEV4cGVjdGVkIG1hcERpdiBvZiB0eXBlIEhUTUxFbGVtZW50IGJ1dCB3YXMgcGFzc2VkICR7YX0uYCk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIil0aHJvdyBfLkFtKGBNYXA6IEV4cGVjdGVkIG1hcERpdiBvZiB0eXBlIEhUTUxFbGVtZW50IGJ1dCB3YXMgcGFzc2VkIHN0cmluZyAnJHthfScuYCk7dmFyIGU9Ynx8e307ZS5ub0NsZWFyfHxfLmlxKGEsITEpO3ZhciBmPXR5cGVvZiBkb2N1bWVudD09CiJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZiYmYS5hcHBlbmRDaGlsZCYmKGEuYXBwZW5kQ2hpbGQoZiksZi5zdHlsZS53aWR0aD1mLnN0eWxlLmhlaWdodD0iMTAwJSIpO18ubXEuc2V0KGYsdGhpcyk7aWYoTXAoXy5OcCkpdGhyb3cgXy5IbCgiY29udHJvbHMiKS50aGVuKFE9PntRLm9GKGEpfSksRXJyb3IoIlRoZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYnJvd3Nlci4iKTtfLkhsKCJ1dGlsIikudGhlbihRPT57Xy5McFszNV0mJmImJmIuZEUmJlEuZXIudGgobmV3IF8ubnEoYi5kRSkpO1EuZXIucWgoY2E9PntfLkhsKCJjb250cm9scyIpLnRoZW4oaWE9Pnt2YXIgR2E9Xy5IKGNhLDIpfHwiaHR0cDovL2cuY28vZGV2L21hcHMtbm8tYWNjb3VudCI7aWEuS0ooYSxHYSl9KX0pfSk7dmFyIGcsaD1uZXcgUHJvbWlzZShRPT57Zz1RfSk7Xy5Mbi5jYWxsKHRoaXMsbmV3IFRlYSh0aGlzLGEsZixoKSk7CnZhciBrPXRoaXMuX19nbTtoPXRoaXMuX19nbS5xaDt0aGlzLnNldCgibWFwQ2FwYWJpbGl0aWVzIixoLmdldE1hcENhcGFiaWxpdGllcygpKTtoLmJpbmRUbygibWFwQ2FwYWJpbGl0aWVzIix0aGlzLCJtYXBDYXBhYmlsaXRpZXMiLCEwKTtlLm1hcFR5cGVJZD09PXZvaWQgMCYmKGUubWFwVHlwZUlkPSJyb2FkbWFwIik7ay5jb2xvclNjaGVtZT1lLmNvbG9yU2NoZW1lfHwiTElHSFQiO2suc2V0KCJjbG91ZFN0eWxpbmdGb3JUZXJyYWluVmVjdG9yTWFwQmFzZVRpbGVzRGlzYWJsZWQiLCEhZS5jbG91ZFN0eWxpbmdGb3JUZXJyYWluVmVjdG9yTWFwQmFzZVRpbGVzRGlzYWJsZWQpO2suRmg9ZS5iYWNrZ3JvdW5kQ29sb3I7IWsuRmgmJmsuTXImJihrLkZoPWsuY29sb3JTY2hlbWU9PT0iREFSSyI/IiMyMDIxMjQiOiIjZTVlM2RmIik7dmFyIG09bmV3IFVlYTt0aGlzLnNldCgicmVuZGVyaW5nVHlwZSIsIlVOSU5JVElBTElaRUQiKTttLmJpbmRUbygicmVuZGVyaW5nVHlwZSIsdGhpcywKInJlbmRlcmluZ1R5cGUiLCEwKTttLmJpbmRUbygibWFwSGFzQmVlbkFibGVUb0JlRHJhd24iLGssIm1hcEhhc0JlZW5BYmxlVG9CZURyYXduIiwhMCk7dGhpcy5fX2dtLnNoLnRoZW4oUT0+e20ucmg9UT8iVkVDVE9SIjoiUkFTVEVSIjtwZWEobSl9KTt0aGlzLnNldFZhbHVlcyhlKTtoPWUubWFwVHlwZUlkO3ZhciBwPWsuY29sb3JTY2hlbWU9PT0iREFSSyI7aWYoXy5McFsxNzBdKXN3aXRjaChrLnNldCgic3R5bGVUYWJsZUJ5dGVzIixlLnN0eWxlVGFibGVCeXRlcyksaCl7Y2FzZSAiaHlicmlkIjpjYXNlICJzYXRlbGxpdGUiOmsuc2V0KCJjb25maWdTZXQiLDExKTticmVhaztjYXNlICJ0ZXJyYWluIjprLnNldCgiY29uZmlnU2V0IixwPzI5OjEyKTticmVhaztkZWZhdWx0Omsuc2V0KCJjb25maWdTZXQiLHA/Mjc6OCl9dmFyIHE9ay5CaDtPZGEocSx7VkI6ZH0pO1ZlYShiKXx8Xy51cChxLCJNQVBfSU5JVElBTElaQVRJT04iKTt0aGlzLnZFPV8uTHBbMTVdJiZlLm5vQ29udHJvbHNPckxvZ2dpbmc7CnRoaXMubWFwVHlwZXM9bmV3IG9xO0lkYSh0aGlzKTt0aGlzLmZlYXR1cmVzPW5ldyBXZWE7Xy4kbihmKTt0aGlzLm5vdGlmeSgic3RyZWV0VmlldyIpO2g9Xy5ScChmKTt2YXIgdT1udWxsO1hlYShlLnVzZVN0YXRpY01hcCxoKSYmKHU9bmV3IFllYShmKSx1LnNldCgic2l6ZSIsaCksdS5zZXQoImNvbG9yVGhlbWUiLGsuY29sb3JTY2hlbWU9PT0iREFSSyI/MjoxKSx1LmJpbmRUbygibWFwSWQiLHRoaXMpLHUuYmluZFRvKCJjZW50ZXIiLHRoaXMpLHUuYmluZFRvKCJ6b29tIix0aGlzKSx1LmJpbmRUbygibWFwVHlwZUlkIix0aGlzKSx1LmJpbmRUbygic3R5bGVzIix0aGlzKSk7dGhpcy5vdmVybGF5TWFwVHlwZXM9bmV3IF8uRW87dmFyIHg9dGhpcy5jb250cm9scz1bXTtfLmFtKF8ucHEsKFEsY2EpPT57eFtjYV09bmV3IF8uRW87eFtjYV0uYWRkTGlzdGVuZXIoImluc2VydF9hdCIsKCk9PntfLk0odGhpcywxODIxMTEpfSl9KTt2YXIgej0hMSxCPV8uVWEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXImJgpuZXcgUHJvbWlzZShRPT57dmFyIGNhPWMoKSxpYT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoR2E9Pntmb3IobGV0IExhPTA7TGE8R2EubGVuZ3RoO0xhKyspR2FbTGFdLmlzSW50ZXJzZWN0aW5nPyhpYS5kaXNjb25uZWN0KCksUSgpKTp6PSEwfSx7cm9vdE1hcmdpbjpgJHtjYX1weCAke2NhfXB4ICR7Y2F9cHggJHtjYX1weGB9KTtpYS5vYnNlcnZlKHRoaXMuZ2V0RGl2KCkpfSk7Xy5IbCgibWFwIikudGhlbihhc3luYyBRPT57cXE9UTtpZih0aGlzLmdldERpdigpJiZmKXtpZihCKXtfLnVwKHEsIk1BUF9JTklUSUFMSVpBVElPTiIpO2xldCBpYT1wZXJmb3JtYW5jZS5ub3coKS1kO3ZhciBjYT1zZXRUaW1lb3V0KCgpPT57Xy5NKHRoaXMsMTY5MTA4KX0sMUUzKTthd2FpdCBCO2NsZWFyVGltZW91dChjYSk7Y2E9dm9pZCAwO3p8fChjYT17VkI6cGVyZm9ybWFuY2Uubm93KCktaWF9KTtWZWEoYikmJk9kYShxLGNhKX1RLk1QKHRoaXMsZSxmLHUsZyl9ZWxzZSBfLnVwKHEsIk1BUF9JTklUSUFMSVpBVElPTiIpfSwKKCk9Pnt0aGlzLmdldERpdigpJiZmP18udHAocSw4KTpfLnVwKHEsIk1BUF9JTklUSUFMSVpBVElPTiIpfSk7dGhpcy5kYXRhPW5ldyBZbih7bWFwOnRoaXN9KTt0aGlzLmFkZExpc3RlbmVyKCJyZW5kZXJpbmd0eXBlX2NoYW5nZWQiLCgpPT57Xy5MZGEodGhpcyl9KTt2YXIgSz10aGlzLmFkZExpc3RlbmVyKCJ6b29tX2NoYW5nZWQiLCgpPT57Xy5tbihLKTtfLnVwKHEsIk1BUF9JTklUSUFMSVpBVElPTiIpfSksTz10aGlzLmFkZExpc3RlbmVyKCJkcmFnc3RhcnQiLCgpPT57Xy5tbihPKTtfLnVwKHEsIk1BUF9JTklUSUFMSVpBVElPTiIpfSk7Xy5xbihhLCJzY3JvbGwiLCgpPT57YS5zY3JvbGxMZWZ0PWEuc2Nyb2xsVG9wPTB9KTtfLlVhLk11dGF0aW9uT2JzZXJ2ZXImJnRoaXMuZ2V0RGl2KCkmJigoaD1aZWEuZ2V0KHRoaXMuZ2V0RGl2KCkpKSYmaC5kaXNjb25uZWN0KCksaD1uZXcgTXV0YXRpb25PYnNlcnZlcihRPT57Zm9yKGxldCBjYSBvZiBRKWNhLmF0dHJpYnV0ZU5hbWU9PT0KImRpciImJl8ud24odGhpcywic2hvdWxkVXNlUlRMQ29udHJvbHNDaGFuZ2UiKX0pLFplYS5zZXQodGhpcy5nZXREaXYoKSxoKSxoLm9ic2VydmUodGhpcy5nZXREaXYoKSx7YXR0cmlidXRlczohMH0pKTtCJiYoXy51bih0aGlzLCJyZW5kZXJpbmd0eXBlX2NoYW5nZWQiLGFzeW5jKCk9Pnt0aGlzLmdldCgicmVuZGVyaW5nVHlwZSIpPT09IlZFQ1RPUiImJihhd2FpdCBCLF8uSGwoIndlYmdsIikpfSksXy5rbihrLCJtYXBoYXNiZWVuYWJsZXRvYmVkcmF3bl9jaGFuZ2VkIixhc3luYygpPT57ay5nZXQoIm1hcEhhc0JlZW5BYmxlVG9CZURyYXduIikmJl8uTW4odGhpcykmJnRoaXMuZ2V0KCJyZW5kZXJpbmdUeXBlIik9PT0iVU5JTklUSUFMSVpFRCImJihhd2FpdCBCLF8uSGwoIndlYmdsIikpfSkpO3ZhciBBO18ua24oaywibWFwaGFzYmVlbmFibGV0b2JlZHJhd25fY2hhbmdlZCIsYXN5bmMoKT0+e2lmKGsuZ2V0KCJtYXBIYXNCZWVuQWJsZVRvQmVEcmF3biIpKXtBPXBlcmZvcm1hbmNlLm5vdygpOwp2YXIgUT10aGlzLmdldEludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcygpPz9udWxsO1EmJl8uTSh0aGlzLDEyMjQ0Nyx7aW50ZXJuYWxVc2FnZUF0dHJpYnV0aW9uSWRzOkFycmF5LmZyb20obmV3IFNldChRKSl9KX19KTtoPSgpPT57dGhpcy5nZXQoInJlbmRlcmluZ1R5cGUiKT09PSJWRUNUT1IiJiZ0aGlzLmdldCgic3R5bGVzIikmJih0aGlzLnNldCgic3R5bGVzIix2b2lkIDApLGNvbnNvbGUud2FybigiR29vZ2xlIE1hcHMgSmF2YVNjcmlwdCBBUEk6IEEgTWFwJ3Mgc3R5bGVzIHByb3BlcnR5IGNhbm5vdCBiZSBzZXQgd2hlbiB0aGUgbWFwIGlzIGEgdmVjdG9yIG1hcC4gUGxlYXNlIHNlZSBkb2N1bWVudGF0aW9uIGF0IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3N0eWxpbmcjY2xvdWRfdG9vbGluZyIpKX07dGhpcy5hZGRMaXN0ZW5lcigic3R5bGVzX2NoYW5nZWQiLGgpO3RoaXMuYWRkTGlzdGVuZXIoInJlbmRlcmluZ3R5cGVfY2hhbmdlZCIsCmgpO3RoaXMuYWRkTGlzdGVuZXIoImJvdW5kc19jaGFuZ2VkIiwoKT0+e0EmJnRoaXMuZ2V0UmVuZGVyaW5nVHlwZSgpIT09IlZFQ1RPUiImJnBlcmZvcm1hbmNlLm5vdygpLUE+ODY0RTUmJl8uTSh3aW5kb3csMjU2NzE3KX0pO2goKX07WGVhPWZ1bmN0aW9uKGEsYil7aWYoIV8uSmx8fF8uRyhfLkpsLF8ubnEsNDApLmdldFN0YXR1cygpPT0yKXJldHVybiExO2lmKGEhPT12b2lkIDApcmV0dXJuISFhO2E9Yi53aWR0aDtiPWIuaGVpZ2h0O3JldHVybiBhKmI8PTM4NEUzJiZhPD04MDAmJmI8PTgwMH07VmVhPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPU9iamVjdC5rZXlzKHNxKTtmb3IobGV0IGMgb2YgYil0cnl7aWYodHlwZW9mIHNxW2NdPT09ImZ1bmN0aW9uIiYmYVtjXSlzcVtjXShhW2NdKX1jYXRjaChkKXtyZXR1cm4hMX1yZXR1cm4gYS5jZW50ZXImJmEuem9vbT8hMDohMX07Cl8udHE9ZnVuY3Rpb24oYSl7cmV0dXJuKGIsYyk9PntpZih0eXBlb2YgYz09PSJvYmplY3QiKWI9JGVhKGEsYixjKTtlbHNle2xldCBkPWIuaGFzT3duUHJvcGVydHkoYyk7RWRhKGIuY29uc3RydWN0b3IsYyxhKTtiPWQ/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpOnZvaWQgMH1yZXR1cm4gYn19O18udXE9ZnVuY3Rpb24oYSl7cmV0dXJuKGIsYyk9Pl8uYWZhKGIsYyx7Z2V0KCl7cmV0dXJuIHRoaXMuUGs/LnF1ZXJ5U2VsZWN0b3IoYSk/P251bGx9fSl9O18udnE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8udHEoey4uLmEsc3RhdGU6ITAsS2g6ITF9KX07YmZhPWZ1bmN0aW9uKGEpe18uSGwoInBvbHkiKS50aGVuKGI9PntiLnlMKGEpfSl9O2NmYT1mdW5jdGlvbihhKXtfLkhsKCJwb2x5IikudGhlbihiPT57Yi56TChhKX0pfTsKXy53cT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnFofHx2b2lkIDA7YT1fLkhsKCJzdHJlZXR2aWV3IikudGhlbihmPT5fLkhsKCJnZW9tZXRyeSIpLnRoZW4oZz0+Zi5kTihiLGN8fG51bGwsZy5zcGhlcmljYWwuY29tcHV0ZUhlYWRpbmcsZy5zcGhlcmljYWwuY29tcHV0ZU9mZnNldCxlLGQpKSk7YyYmYS5jYXRjaCgoKT0+e30pO3JldHVybiBhfTsKenE9ZnVuY3Rpb24oYSl7YT1hfHx7fTt0aGlzLnRpbGVTaXplPWEudGlsZVNpemV8fG5ldyBfLmdvKDI1NiwyNTYpO3RoaXMubmFtZT1hLm5hbWU7dGhpcy5hbHQ9YS5hbHQ7dGhpcy5taW5ab29tPWEubWluWm9vbTt0aGlzLm1heFpvb209YS5tYXhab29tO3RoaXMuc2g9KDAsXy5pYikoYS5nZXRUaWxlVXJsLGEpO3RoaXMucWg9bmV3IF8ueHE7dGhpcy5yaD1udWxsO3RoaXMuc2V0KCJvcGFjaXR5IixhLm9wYWNpdHkpO18uSGwoIm1hcCIpLnRoZW4oYj0+e3ZhciBjPXRoaXMucmg9Yi5vTy5iaW5kKGIpLGQ9dGhpcy50aWxlU2l6ZXx8bmV3IF8uZ28oMjU2LDI1Nik7dGhpcy5xaC5mb3JFYWNoKGU9Pnt2YXIgZj1lLl9fZ21pbXQsZz1mLnJqLGg9Zi56b29tLGs9dGhpcy5zaChnLGgpOyhmLkRqPWMoe2tpOmcueCxsaTpnLnksdWk6aH0sZCxlLGssKCk9Pl8ud24oZSwibG9hZCIpKSkuc2V0T3BhY2l0eSh5cSh0aGlzKSl9KX0pfTsKeXE9ZnVuY3Rpb24oYSl7YT1hLmdldCgib3BhY2l0eSIpO3JldHVybiB0eXBlb2YgYT09Im51bWJlciI/YToxfTtfLkFxPWZ1bmN0aW9uKCl7fTtfLkJxPWZ1bmN0aW9uKGEsYil7dGhpcy5zZXQoInN0eWxlcyIsYSk7YT1ifHx7fTt0aGlzLnJoPWEuYmFzZU1hcFR5cGVJZHx8InJvYWRtYXAiO3RoaXMubWluWm9vbT1hLm1pblpvb207dGhpcy5tYXhab29tPWEubWF4Wm9vbXx8MjA7dGhpcy5uYW1lPWEubmFtZTt0aGlzLmFsdD1hLmFsdDt0aGlzLnByb2plY3Rpb249bnVsbDt0aGlzLnRpbGVTaXplPW5ldyBfLmdvKDI1NiwyNTYpfTtDcT1mdW5jdGlvbihhLGIpe3RoaXMuc2V0VmFsdWVzKGIpfTsKcGZhPWZ1bmN0aW9uKCl7dmFyIGE9T2JqZWN0LmFzc2lnbih7RGlyZWN0aW9uc1RyYXZlbE1vZGU6Xy5EcSxEaXJlY3Rpb25zVW5pdFN5c3RlbTpfLkVxLEZ1c2lvblRhYmxlc0xheWVyOmRmYSxNYXJrZXJJbWFnZTplZmEsTmF2aWdhdGlvbkNvbnRyb2xTdHlsZTpmZmEsU2F2ZVdpZGdldDpDcSxTY2FsZUNvbnRyb2xTdHlsZTpnZmEsWm9vbUNvbnRyb2xTdHlsZTpoZmF9LGlmYSxqZmEsa2ZhLGxmYSxtZmEsbmZhLG9mYSk7Xy5ibShZbix7RmVhdHVyZTpfLkZxLEdlb21ldHJ5OlptLEdlb21ldHJ5Q29sbGVjdGlvbjpfLkluLExpbmVTdHJpbmc6Xy5EbixMaW5lYXJSaW5nOl8uSm4sTXVsdGlMaW5lU3RyaW5nOl8uR24sTXVsdGlQb2ludDpfLkZuLE11bHRpUG9seWdvbjpfLkhuLFBvaW50Ol8uJG0sUG9seWdvbjpfLkVufSk7Xy5zbShhKTtyZXR1cm4gYX07CnNmYT1hc3luYyBmdW5jdGlvbihhLGI9ITEsYz0hMSl7dmFyIGQ9e2NvcmU6aWZhLG1hcHM6amZhLGdlb2NvZGluZzptZmEsc3RyZWV0VmlldzpuZmF9W2FdO2lmKGQpZm9yKGxldCBbZSxmXW9mIE9iamVjdC5lbnRyaWVzKGQpKWY9PT12b2lkIDAmJmRlbGV0ZSBkW2VdO2lmKGQpYiYmXy5NKF8uVWEsMTU4NTMwKTtlbHNle2ImJl8uTShfLlVhLDE1NzU4NCk7aWYoIXFmYS5oYXMoYSkmJiFyZmEuaGFzKGEpKXtiPWBUaGUgbGlicmFyeSAke2F9IGlzIHVua25vd24uIFBsZWFzZSBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvbGlicmFyaWVzYDtpZihjKXRocm93IEVycm9yKGIpO2NvbnNvbGUuZXJyb3IoYil9ZD1hd2FpdCBfLkhsKGEpfXN3aXRjaChhKXtjYXNlICJhZGRyZXNzVmFsaWRhdGlvbiI6ZC5jb25uZWN0Rm9yRXhwbGljaXRUaGlyZFBhcnR5TG9hZCgpO2JyZWFrO2Nhc2UgIm1hcHMiOl8uSGwoIm1hcCIpOwpicmVhaztjYXNlICJlbGV2YXRpb24iOmQuY29ubmVjdEZvckV4cGxpY2l0VGhpcmRQYXJ0eUxvYWQoKTticmVhaztjYXNlICJhaXJRdWFsaXR5IjpkLmNvbm5lY3RGb3JFeHBsaWNpdFRoaXJkUGFydHlMb2FkKCk7YnJlYWs7Y2FzZSAiZ2VvY29kaW5nIjpfLkhsKCJnZW9jb2RlciIpO2JyZWFrO2Nhc2UgInN0cmVldFZpZXciOl8uSGwoInN0cmVldHZpZXciKTticmVhaztjYXNlICJtYXBzM2QiOmQuY29ubmVjdEZvckV4cGxpY2l0VGhpcmRQYXJ0eUxvYWQoKTticmVhaztjYXNlICJtYXJrZXIiOmQuY29ubmVjdEZvckV4cGxpY2l0VGhpcmRQYXJ0eUxvYWQoKTticmVhaztjYXNlICJwbGFjZXMiOmQuY29ubmVjdEZvckV4cGxpY2l0VGhpcmRQYXJ0eUxvYWQoKTticmVhaztjYXNlICJyb3V0ZXMiOmQuY29ubmVjdEZvckV4cGxpY2l0VGhpcmRQYXJ0eUxvYWQoKTticmVhaztjYXNlICJ3ZWF0aGVyIjpkLmNvbm5lY3RGb3JFeHBsaWNpdFRoaXJkUGFydHlMb2FkKCl9cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmR9KX07Cl8udWZhPWFzeW5jIGZ1bmN0aW9uKGEpe2F3YWl0IG5ldyBQcm9taXNlKGI9Pnt2YXIgYz1uZXcgUmVzaXplT2JzZXJ2ZXIoZD0+e2EuaXNWaXNpYmxlKGRbMF0pPyhjLmRpc2Nvbm5lY3QoKSxiKCkpOmEucWgucmVzb2x2ZSghMSl9KTtjLm9ic2VydmUoYS5ob3N0KX0pO2F3YWl0IG5ldyBQcm9taXNlKGI9Pnt2YXIgYz1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZD0+e2lmKGQ9ZC5zb21lKGU9PmUuaXNJbnRlcnNlY3RpbmcpKWMuZGlzY29ubmVjdCgpLGIoKTthLnFoLnJlc29sdmUoZCl9LHtyb290OmRvY3VtZW50LHJvb3RNYXJnaW46YCR7dGZhKCl9cHhgfSk7Yy5vYnNlcnZlKGEuaG9zdCl9KX07CnRmYT1mdW5jdGlvbigpe3ZhciBhPW5ldyBNYXAoW1siNGciLDI1MDBdLFsiM2ciLDM1MDBdLFsiMmciLDZFM10sWyJzbG93LTJnIiw4RTNdLFsidW5rbm93biIsNEUzXV0pLGI9d2luZG93Lm5hdmlnYXRvcj8uY29ubmVjdGlvbj8uZWZmZWN0aXZlVHlwZTtyZXR1cm4oYiYmYS5nZXQoYikpPz9hLmdldCgidW5rbm93biIpfTt2ZmE9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz0rK2EucWgsZD1iLlpJLGU9Yi5vbkVycm9yO2I9Yi5PTzt2YXIgZj1nPT57aWYoYS5xaCE9PWMpdGhyb3cgbmV3IEdxO3JldHVybiBnfTt0cnl7dHJ5e2YoYXdhaXQgMCksZihhd2FpdCBkKGYpKX1jYXRjaChnKXtpZihnIGluc3RhbmNlb2YgR3F8fCFlKXRocm93IGc7Zihhd2FpdCBlKGcsZikpfX1jYXRjaChnKXtpZighKGcgaW5zdGFuY2VvZiBHcSkpdGhyb3cgZztiPy4oKX19O18uSHE9ZnVuY3Rpb24oYSl7dmZhKGEuYkgse1pJOmFzeW5jIGI9PnthLnRrPTA7Yihhd2FpdCBhLkNwKX19KX07Cl8uSXE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiB2ZmEoYS5iSCx7Wkk6YXN5bmMgZT0+e2EudGs9MTthLlpEfHxlKGF3YWl0IF8udWZhKGEuelEpKTtjJiYoZD1fLk5sKGMpKTtlKGF3YWl0IGIoZSkpO2EudGs9MjtlKGF3YWl0IGEuQ3ApO2EuZGlzcGF0Y2hFdmVudChuZXcgXy53ZmEpO18uT2woZCwwKX0sb25FcnJvcjphc3luYyhlLGYpPT57YS50az0zO18uT2woZCwxMyk7Zihhd2FpdCBhLkNwKTtfLkdkYShhLGUpfSxPTzooKT0+e18uUGwoZCl9fSl9O18uS3E9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLlFvP2E6bmV3IF8uUW8oKDAsXy5KcSkoYSkpfTt4ZmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLngsZD1hLnk7c3dpdGNoKGIpe2Nhc2UgOTA6YS54PWQ7YS55PTI1Ni1jO2JyZWFrO2Nhc2UgMTgwOmEueD0yNTYtYzthLnk9MjU2LWQ7YnJlYWs7Y2FzZSAyNzA6YS54PTI1Ni1kLGEueT1jfX07Cl8uTXE9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fGEgaW5zdGFuY2VvZiBfLkxxP3lmYTphfTtfLk5xPWZ1bmN0aW9uKGEsYixjPSExKXtyZXR1cm4gXy5NcShiKS5mcm9tUG9pbnRUb0xhdExuZyhuZXcgXy5ibyhhLnFoLGEucmgpLGMpfTtDZmE9ZnVuY3Rpb24oYSl7dmFyIGI9emZhLGM9QWZhLGQ9QmZhO0dsLmdldEluc3RhbmNlKCkuaW5pdChhLGIsYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCxkKX07CkdmYT1mdW5jdGlvbigpe3ZhciBhPURmYXx8KERmYT1FZmEoJ1tbWyJhZGRyZXNzVmFsaWRhdGlvbiIsWyJtYWluIl1dLFsiYWlyUXVhbGl0eSIsWyJtYWluIl1dLFsiYWRzZW5zZSIsWyJtYWluIl1dLFsiY29tbW9uIixbIm1haW4iXV0sWyJjb250cm9scyIsWyJ1dGlsIl1dLFsiZGF0YSIsWyJ1dGlsIl1dLFsiZGlyZWN0aW9ucyIsWyJ1dGlsIiwiZ2VvbWV0cnkiXV0sWyJkaXN0YW5jZV9tYXRyaXgiLFsidXRpbCJdXSxbImRyYXdpbmciLFsibWFpbiJdXSxbImRyYXdpbmdfaW1wbCIsWyJjb250cm9scyJdXSxbImVsZXZhdGlvbiIsWyJ1dGlsIiwiZ2VvbWV0cnkiXV0sWyJnZW9jb2RlciIsWyJ1dGlsIl1dLFsiZ2VvbWV0cnkiLFsibWFpbiJdXSxbImltYWdlcnlfdmlld2VyIixbIm1haW4iXV0sWyJpbmZvd2luZG93IixbInV0aWwiXV0sWyJqb3VybmV5U2hhcmluZyIsWyJtYWluIl1dLFsia21sIixbIm9uaW9uIiwidXRpbCIsIm1hcCJdXSxbImxheWVycyIsWyJtYXAiXV0sWyJsb2ciLFsidXRpbCJdXSxbIm1haW4iXSxbIm1hcCIsWyJjb21tb24iXV0sWyJtYXAzZF9saXRlX3dhc20iLFsibWFpbiJdXSxbIm1hcDNkX3dhc20iLFsibWFpbiJdXSxbIm1hcDNkX3dhc21fZ2VveHAiLFsibWFpbiJdXSxbIm1hcHMzZCIsWyJ1dGlsIl1dLFsibWFya2VyIixbInV0aWwiXV0sWyJtYXh6b29tIixbInV0aWwiXV0sWyJvbmlvbiIsWyJ1dGlsIiwibWFwIl1dLFsib3ZlcmxheSIsWyJjb21tb24iXV0sWyJwYW5vcmFtaW8iLFsibWFpbiJdXSxbInBsYWNlcyIsWyJwbGFjZXNfaW1wbCJdXSxbInBsYWNlc19pbXBsIixbImNvbnRyb2xzIl1dLFsicG9seSIsWyJ1dGlsIiwibWFwIiwiZ2VvbWV0cnkiXV0sWyJyb3V0ZXMiLFsibWFpbiJdXSxbInNlYXJjaCIsWyJtYWluIl1dLFsic2VhcmNoX2ltcGwiLFsib25pb24iXV0sWyJzdHJlZXR2aWV3IixbInV0aWwiLCJnZW9tZXRyeSJdXSxbInN0eWxlRWRpdG9yIixbImNvbW1vbiJdXSxbInV0aWwiLFsiY29tbW9uIl1dLFsidmlzdWFsaXphdGlvbiIsWyJtYWluIl1dLFsidmlzdWFsaXphdGlvbl9pbXBsIixbIm9uaW9uIl1dLFsid2VhdGhlciIsWyJtYWluIl1dLFsid2ViZ2wiLFsidXRpbCIsIm1hcCJdXV1dJykpO3JldHVybiBfLkNnKGEsCkZmYSwxKX07Xy5PcT1mdW5jdGlvbihhKXt2YXIgYj1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpO2lmKCFiLmxlbmd0aClyZXR1cm4gMjtiPWIuZmluZChkPT5kLm5hbWUuaW5jbHVkZXMoYSkpO2lmKCFiKXJldHVybiAyO2lmKGIuZGVsaXZlcnlUeXBlPT09ImNhY2hlIilyZXR1cm4gMTt2YXIgYz1iLmRlY29kZWRCb2R5U2l6ZTtyZXR1cm4gYi50cmFuc2ZlclNpemU9PT0wJiZjPjA/MTpiLmR1cmF0aW9uPDMwPzE6MH07QmZhPWZ1bmN0aW9uKGEpe3ZhciBiPVBxLmdldChhKTtpZihiKXt2YXIgYz1fLkpsO2MmJihjPV8ucmwoXy5zbChjKSksYz1jLmVuZHNXaXRoKCIvIik/YzpgJHtjfS9gLGM9YCR7Y30ke2F9LmpzYCxhPV8uT3EoYyksYSE9PTImJihjPV8uTmwoYi5paix7Snc6Y30pLF8uT2woYywwKSksYT09PTE/Xy5NKF8uVWEsYi5maik6YT09PTAmJl8uTShfLlVhLGIuZ2opKX19OwpJZmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPVswLDBdO2ZvcihsZXQgZj0wLGc9Xy4kbChhKTtmPGc7KytmKXt2YXIgZT1iP2IoYVtmXSk6W2FbZl0ubGF0KCksYVtmXS5sbmcoKV07SGZhKGVbMF0tZFswXSxjKTtIZmEoZVsxXS1kWzFdLGMpO2Q9ZX1yZXR1cm4gYy5qb2luKCIiKX07SGZhPWZ1bmN0aW9uKGEsYil7Zm9yKGE9YTwwP34oYTw8MSk6YTw8MTthPj0zMjspYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoKDMyfGEmMzEpKzYzKSksYT4+PTU7Yi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSs2MykpfTsKXy5KZmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy4kbChhKSxjPUFycmF5KE1hdGguZmxvb3IoYS5sZW5ndGgvMikpLGQ9MCxlPTAsZj0wLGc7Zm9yKGc9MDtkPGI7KytnKXtsZXQgaD0xLGs9MCxtO2RvIG09YS5jaGFyQ29kZUF0KGQrKyktNjMtMSxoKz1tPDxrLGsrPTU7d2hpbGUobT49MzEpO2UrPWgmMT9+KGg+PjEpOmg+PjE7aD0xO2s9MDtkbyBtPWEuY2hhckNvZGVBdChkKyspLTYzLTEsaCs9bTw8ayxrKz01O3doaWxlKG0+PTMxKTtmKz1oJjE/fihoPj4xKTpoPj4xO2NbZ109bmV3IF8uVG0oZSoxRS01LGYqMUUtNSwhMCl9Yy5sZW5ndGg9ZztyZXR1cm4gY307Xy5RcT1mdW5jdGlvbihhPSIiKXtyZXR1cm4gYSsiIChvcGVucyBpbiBuZXcgdGFiKSJ9OwpfLlJxPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2Iuc3R5bGUuYmFja2dyb3VuZD0ibm9uZSI7Yi5zdHlsZS5kaXNwbGF5PSJibG9jayI7Yi5zdHlsZS5wYWRkaW5nPWIuc3R5bGUubWFyZ2luPWIuc3R5bGUuYm9yZGVyPSIwIjtiLnN0eWxlLnRleHRUcmFuc2Zvcm09Im5vbmUiO2Iuc3R5bGUud2Via2l0QXBwZWFyYW5jZT0ibm9uZSI7Yi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO2Iuc3R5bGUuY3Vyc29yPSJwb2ludGVyIjtfLlRwKGIpO2Iuc3R5bGUub3V0bGluZT0iIjtiLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYSk7Yi50aXRsZT1hO2IudHlwZT0iYnV0dG9uIjtuZXcgXy5GcChiLCJjb250ZXh0bWVudSIsYz0+e18uZ24oYyk7Xy5obihjKX0pO18uSXAoYik7cmV0dXJuIGJ9O18uVHE9ZnVuY3Rpb24oYSwuLi5iKXthLmNsYXNzTGlzdC5hZGQoLi4uYi5tYXAoXy5TcSkpfTsKXy5TcT1mdW5jdGlvbihhKXtyZXR1cm4gS2ZhLmhhcyhhKT9hOmAke18uRGNhKGEpfS0ke2F9YH07TGZhPWZ1bmN0aW9uKGEpe2EucmgucHJlcGVuZChhLnFoKTt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57YS5xaC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSl9O01mYT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMiIpLGM9e1pzOm5ldyBfLmJvKDAsMCksSXU6bmV3IF8uZ28oMjQsMjQpLGxhYmVsOiJDbG9zZSBkaWFsb2ciLG93bmVyRWxlbWVudDphfTtjPW5ldyBfLlVxKGMpO2IudGV4dENvbnRlbnQ9YS5vcHRpb25zLnRpdGxlO2IudHJhbnNsYXRlPWEub3B0aW9ucy5mSz8/ITA7Yy5lbGVtZW50LnN0eWxlLnBvc2l0aW9uPSJzdGF0aWMiO2MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnZvaWQgYS5iai5jbG9zZSgpKTthLnJoLmFwcGVuZENoaWxkKGIpO2EucmguYXBwZW5kQ2hpbGQoYy5lbGVtZW50KTtyZXR1cm4gYS5yaH07Cl8uVnE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGM9dHlwZW9mIGI9PT0iZnVuY3Rpb24iO2lmKGEhPT12b2lkIDApe2xldCBkPS0xO2ZvcihsZXQgZSBvZiBhKWQ+LTEmJih5aWVsZCBjP2IoZCk6YiksZCsrLHlpZWxkIGV9fSgpfTtOZmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlua3MubGVuZ3RoPT09MD9udWxsOigwLF8uV3EpYAogICAgICAke18uVnEoYS5saW5rcy5tYXAoKHt0ZXh0OmIsaHJlZjpjfSk9PigwLF8uV3EpYDxkaXYgY2xhc3M9ImxpbmstaXRlbSI+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIC5ocmVmPSR7Y30KICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke18uUXEoYil9CiAgICAgICAgICAgICAgICA+JHtifTxkaXYgY2xhc3M9Imljb24tY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgJHtfLlhxKHtjbGFzc05hbWU6IiIsYXJpYUxhYmVsOiIifSl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PmApLCIiKX0KICAgIGB9O09mYT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZChhLnJoKTtiPW5ldyBfLllxKHt0aXRsZToiR29vZ2xlIE1hcHMiLGZLOiExLGNvbnRlbnQ6Yn0pO2IuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT57YS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZ21wLWludGVybmFsLWNsb3NlIikpfSk7cmV0dXJuIGJ9O1pxPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09IiMwMDAifHxhPT09IiM1ZTVlNWUiPyIjZmZmIjoiIzQ3NDc0NyJ9OwpRZmE9ZnVuY3Rpb24oYSxiKXtpZighYS5zaG93SW5mb0J1dHRvbilyZXR1cm4oMCxfLldxKWBgO3ZhciBjPWEubG9nb0NvbG9yT3B0aW9ucy5KeXx8IiM1ZTVlNWUiLGQ9YS5sb2dvQ29sb3JPcHRpb25zLkt4fHwiI2ZmZiIsZT1acShjKSxmPVpxKGQpO2M9YS5hdHRyaWJ1dGlvblR5cGU9PT0iTE9HT19PVVRMSU5FIj9QZmEoe2ZpbGw6YGxpZ2h0LWRhcmsoJHtjfSwgJHtkfSlgLG91dGxpbmU6YGxpZ2h0LWRhcmsoJHtlfSwgJHtmfSlgfSk6Xy4kcSh7ZmlsbDpgbGlnaHQtZGFyaygke2N9LCAke2R9KWB9KTtyZXR1cm4oMCxfLldxKWAgPGJ1dHRvbgogICAgICBjbGFzcz0keygwLF8uYXIpKHsiaW5mby1idXR0b24iOiEwLCJ0YXAtYXJlYS1leHBhbmRlZCI6YS5pbmZvQnV0dG9uVGFwQXJlYUV4cGFuZGVkfSl9CiAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgYXJpYS1oYXNwb3B1cD0iZGlhbG9nIgogICAgICB0aXRsZT0ke2EubW9yZUluZm9CdXR0b25UaXRsZX0KICAgICAgYXJpYS1sYWJlbD0ke2EubW9yZUluZm9CdXR0b25UaXRsZX0KICAgICAgQGNsaWNrPSR7Zz0+e2cuc3RvcFByb3BhZ2F0aW9uKCk7Yi5iai5zaG93TW9kYWwoKX19PgogICAgICA8ZGl2IGNsYXNzPSJ0YXAtYXJlYSI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImluZm8taWNvbi1jb250YWluZXIiPiR7Y308L2Rpdj4KICAgIDwvYnV0dG9uPmB9O1VmYT1mdW5jdGlvbihhLGIsYyxkPVtdLGU9W10pe3ZhciBmPW5ldyBSZmE7YT1fLmloKGYsNSxhKTtiP18ua2goYSwxLDkpOl8ua2goYSwxLDIpO2I9bmV3IF8uYnI7Yz1fLmVqKGIsYy5nZXRUaW1lKCkpO2I9Xy53ZyhhLFNmYSwxMSk7Xy5FZyhiLF8uYnIsMixjKTtfLm5nKGEsMTMsZCxfLlFlKTtlLmxlbmd0aD4wJiZfLm5nKGEsNixlLF8uYmYpO3JldHVybiBtZChUZmEoYSkpfTsKVmZhPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBbZSxmXW9mIE9iamVjdC5lbnRyaWVzKGEuaGVhZGVycykpYT1mLGEhPT0iIiYmKGIubWV0YWRhdGFbZV09YSk7YT1iLmdldE1ldGFkYXRhKCk7dmFyIGM9YVsiWC1Hb29nLU1hcHMtLVRtcC1JbnRlcm5hbC1Vc2FnZS1BdHRyaWJ1dGlvbi1JZHMiXSxkPVtdO2MmJihkPWMuc3BsaXQoIiwiKSk7ZGVsZXRlIGFbIlgtR29vZy1NYXBzLS1UbXAtSW50ZXJuYWwtVXNhZ2UtQXR0cmlidXRpb24tSWRzIl07Yz1VZmEoXy5KbD8uQ2goKT8ucmgoKXx8IiIsISFfLkxwWzM1XSxuZXcgRGF0ZSxfLkpsPy56aCgpfHxbXSxkKTtiLm1ldGFkYXRhWyJYLUdvb2ctR21wLUNsaWVudC1TaWduYWxzIl09YzthLkF1dGhvcml6YXRpb24mJihiLm1ldGFkYXRhWyJYLUdvb2ctQXBpLUtleSJdPSIiKX07ClhmYT1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj1hd2FpdCBfLldmYSgpO2ZvcihsZXQgW2MsZF1vZiBPYmplY3QuZW50cmllcyhiKSliPWQsYiE9PSIiJiYoYS5tZXRhZGF0YVtjXT1iKX07Xy5XZmE9YXN5bmMgZnVuY3Rpb24oKXt2YXIgYT17fSxbYixjXT1hd2FpdCBQcm9taXNlLmFsbChbWWZhKCkseGNhKCldKTtiJiYoYVsiWC1GaXJlYmFzZS1BcHBDaGVjayJdPWIpO2FbIlgtR29vZy1NYXBzLVNlc3Npb24tSWQiXT1jLnRvU3RyaW5nKCk7cmV0dXJuIGF9O1lmYT1hc3luYyBmdW5jdGlvbigpe3RyeXt2YXIgYT1hd2FpdCBLY2EoKS5mZXRjaEFwcENoZWNrVG9rZW4oKTthPV8uQ20oe3Rva2VuOl8uY3J9KShhKX1jYXRjaChiKXtyZXR1cm4gY29uc29sZS5lcnJvcihiKSxhd2FpdCBfLk0od2luZG93LDIyODQ1MSksImV5Smxjbkp2Y2lJNklsVk9TMDVQVjA1ZlJWSlNUMUlpZlE9PSJ9cmV0dXJuIGE/LnRva2VuPyhhd2FpdCBfLk0od2luZG93LDIyODQ1MyksYS50b2tlbik6IiJ9OwpfLlpmYT1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbiooKXtpZihhIT09dm9pZCAwKXtsZXQgYz0wO2ZvcihsZXQgZCBvZiBhKXlpZWxkIGIoZCxjKyspfX0oKX07CmlnYT1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj1fLlVhLmdvb2dsZS5tYXBzLGM9ISFiLl9faWJfXyxkPSRmYSgpLGU9YWdhKGIpLGY9Xy5KbD1fLmlpKGJnYSwoMCxfLmNnYSkoYXx8W10pKTtLbD1NYXRoLnJhbmRvbSgpO2QmJihfLk1sPSEwKTtfLk0od2luZG93LDIxODgzOCk7Zi56aCgpLmxlbmd0aD4wJiZjb25zb2xlLmxvZygiUnVubmluZyB3aXRoIGV4cGVyaW1lbnQgSURzOiIsZi56aCgpLm1hcChOdW1iZXIpKTtfLkgoZiw0OCk9PT0iYXN5bmMifHxjPyhhd2FpdCBuZXcgUHJvbWlzZShwPT5zZXRUaW1lb3V0KHApKSxfLk0oXy5VYSwyMjExOTEpKTpjb25zb2xlLndhcm4oIkdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJIGhhcyBiZWVuIGxvYWRlZCBkaXJlY3RseSB3aXRob3V0IGxvYWRpbmc9YXN5bmMuIFRoaXMgY2FuIHJlc3VsdCBpbiBzdWJvcHRpbWFsIHBlcmZvcm1hbmNlLiBGb3IgYmVzdC1wcmFjdGljZSBsb2FkaW5nIHBhdHRlcm5zIHBsZWFzZSBzZWUgaHR0cHM6Ly9nb28uZ2xlL2pzLWFwaS1sb2FkaW5nIik7Xy5IKGYsCjQ4KSYmXy5IKGYsNDgpIT09ImFzeW5jIiYmY29uc29sZS53YXJuKGBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSBoYXMgYmVlbiBsb2FkZWQgd2l0aCBsb2FkaW5nPSR7Xy5IKGYsNDgpfS4gIiR7Xy5IKGYsNDgpfSIgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGxvYWRpbmcgaW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSBBUEkuYCk7dmFyIGc7Xy5XZyhmLDEzKT09PTAmJihnPV8uTmwoMTUzMTU3LHtKdzoibWFwcy9hcGkvanM/In0pKTt2YXIgaD1fLk5sKDIxODgyNCx7Snc6Im1hcHMvYXBpL2pzPyJ9KTtzd2l0Y2goXy5PcSgibWFwcy9hcGkvanM/Iikpe2Nhc2UgMTpfLk0oXy5VYSwyMzMxNzYpO2JyZWFrO2Nhc2UgMDpfLk0oXy5VYSwyMzMxNzgpfV8uZHI9UGVhKGhjYShfLkcoZixkZ2EsNSkpLGYudGgoKSxmLnhoKCksZi55aCgpKTtfLmVnYT1SZWEoaGNhKF8uRyhmLGRnYSw1KSkpO18uZXI9U2VhKCk7ZmdhKGYscD0+e3AuYmxvY2tlZFVSSSYmcC5ibG9ja2VkVVJJLmluY2x1ZGVzKCIvbWFwcy9hcGkvbWFwc2pzL2dlbl8yMDQ/Y3NwX3Rlc3Q9dHJ1ZSIpJiYKXy5NKF8uVWEsMTQ5NTk2KX0pO2ZvcihhPTA7YTxfLmpnKGYsOSxfLkVlLDMsITApLmxlbmd0aDsrK2EpXy5McFtfLlhnKGYsOSxhKV09ITA7YT1fLnNsKGYpO0NmYShfLnJsKGEpKTtkPXBmYSgpO18uYW0oZCwocCxxKT0+e2JbcF09cX0pO2IudmVyc2lvbj1hLnJoKCk7Z2dhfHwoZ2dhPSEwLF8ueG8oImdtcC1tYXAiLGZyKSk7Xy5MbCgpJiZ2ZGEoKTtzZXRUaW1lb3V0KCgpPT57Xy5IbCgidXRpbCIpLnRoZW4ocD0+e18uSmcoZiw0Myl8fHAuTUoucWgoKTtwLldMKCk7ZSYmXy5NKHdpbmRvdywxNTU4NDYpO3N3aXRjaChfLlVhLm5hdmlnYXRvci5jb25uZWN0aW9uPy5lZmZlY3RpdmVUeXBlKXtjYXNlICJzbG93LTJnIjpfLk0oXy5VYSwxNjY0NzMpO2JyZWFrO2Nhc2UgIjJnIjpfLk0oXy5VYSwxNjY0NzQpO2JyZWFrO2Nhc2UgIjNnIjpfLk0oXy5VYSwxNjY0NzUpO2JyZWFrO2Nhc2UgIjRnIjpfLk0oXy5VYSwxNjY0NzYpfX0pfSw1RTMpO01wKF8uTnApP2NvbnNvbGUuZXJyb3IoIlRoZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYnJvd3Nlci4gU2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Vycm9yLW1lc3NhZ2VzI3Vuc3VwcG9ydGVkLWJyb3dzZXJzIik6Cl8uamVhKCkmJmNvbnNvbGUuZXJyb3IoIlRoZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSBoYXMgZGVwcmVjYXRlZCBzdXBwb3J0IGZvciB0aGlzIGJyb3dzZXIuIFNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9lcnJvci1tZXNzYWdlcyN1bnN1cHBvcnRlZC1icm93c2VycyIpO2MmJl8uTShfLlVhLDE1NzU4NSk7Yi5pbXBvcnRMaWJyYXJ5PXA9PnNmYShwLCEwLCEwKTtfLkxwWzM1XSYmKGIubG9nZ2VyPXtiZWdpbkF2YWlsYWJpbGl0eUV2ZW50Ol8uTmwsY2FuY2VsQXZhaWxhYmlsaXR5RXZlbnQ6Xy5QbCxlbmRBdmFpbGFiaWxpdHlFdmVudDpfLk9sLG1heWJlUmVwb3J0RmVhdHVyZU9uY2U6Xy5NfSxiLmVtYmVkRmVhdHVyZXM9e2lzVmVydGljYWxQbGFjZUNhcmRMYXlvdXRFbmFibGVkOigpPT4hIV8uSmw/LkJoKCksaXNFeHBlcmltZW50YXRpb25Mb2dnaW5nRW5hYmxlZDooKT0+KF8uSmw/LnpoKCk/Lmxlbmd0aD8/CjApPjB9KTthPVtdO2lmKCFjKWZvcihjPV8uV2coZiwxMyksZD0wO2Q8YztkKyspYS5wdXNoKHNmYShfLlZnKGYsMTMsZCkpKTt2YXIgaz1fLkgoZiwxMik7az9Qcm9taXNlLmFsbChhKS50aGVuKCgpPT57ZyYmXy5PbChnLDApO18uT2woaCwwKTtoZ2EoaykoKX0pOihnJiZfLk9sKGcsMCksXy5PbChoLDApKTt2YXIgbT0oKT0+e2RvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsbSksc2V0VGltZW91dCgoKT0+e1suLi4obmV3IFNldChbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpXS5tYXAocD0+cC5sb2NhbE5hbWUpKSldLnNvbWUocD0+cC5pbmNsdWRlcygiLSIpJiYhcC5tYXRjaCgvXmdtcHg/LS8pKSYmXy5NKF8uVWEsMTc5MTE3KX0sMUUzKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLG0pO20oKX07CmhnYT1mdW5jdGlvbihhKXt2YXIgYj1hLnNwbGl0KCIuIiksYz1fLlVhLGQ9Xy5VYTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKylpZihkPWMsYz1jW2JbZV1dLCFjKXRocm93IF8uQW0oYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIGZ1bmN0aW9uKCl7Yy5hcHBseShkKX19OwokZmE9ZnVuY3Rpb24oKXt2YXIgYT0hMSxiPWQ9PntzZXRUaW1lb3V0KCgpPT57Xy5NKF8uVWEsZCl9LDApfTtmb3IodmFyIGMgaW4gT2JqZWN0LnByb3RvdHlwZSlfLlVhLmNvbnNvbGUmJl8uVWEuY29uc29sZS5lcnJvcigiVGhpcyBzaXRlIGFkZHMgcHJvcGVydHkgYCIrYysiYCB0byBPYmplY3QucHJvdG90eXBlLiBFeHRlbmRpbmcgT2JqZWN0LnByb3RvdHlwZSBicmVha3MgSmF2YVNjcmlwdCBmb3IuLmluIGxvb3BzLCB3aGljaCBhcmUgdXNlZCBoZWF2aWx5IGluIEdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJIHYzLiIpLGE9ITAsYigxNDk1OTQpO0FycmF5LmZyb20obmV3IFNldChbNDJdKSlbMF0hPT00MiYmKF8uVWEuY29uc29sZSYmXy5VYS5jb25zb2xlLmVycm9yKCJUaGlzIHNpdGUgb3ZlcnJpZGVzIEFycmF5LmZyb20oKSB3aXRoIGFuIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lc24ndCBzdXBwb3J0IGl0ZXJhYmxlcywgd2hpY2ggY291bGQgY2F1c2UgR29vZ2xlIE1hcHMgSmF2YVNjcmlwdCBBUEkgdjMgdG8gbm90IHdvcmsgY29ycmVjdGx5LiIpLAphPSEwLGIoMTQ5NTkwKSk7Xy5VYS5Qcm90b3R5cGUmJihiKDE0OTU5NSksYT0hMCk7Xy5VYS5Nb29Ub29scyYmKGIoMTQ5NTkzKSxhPSEwKTtbMSwyXS52YWx1ZXMoKVtTeW1ib2wuaXRlcmF0b3JdfHwoYigxNDk1OTEpLGE9ITApO3R5cGVvZiBEYXRlLm5vdygpIT09Im51bWJlciImJihfLlVhLmNvbnNvbGUmJl8uVWEuY29uc29sZS5lcnJvcigiVGhpcyBzaXRlIG92ZXJyaWRlcyBEYXRlLm5vdygpIHdpdGggYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IHJldHVybiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgVVRDLCB3aGljaCBjb3VsZCBjYXVzZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSB2MyB0byBub3Qgd29yayBjb3JyZWN0bHkuIiksYT0hMCxiKDE0OTU5MikpO3RyeXtjPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7fSxfLnhvKCJnbXAtaW50ZXJuYWwtZWxlbWVudC1zdXBwb3J0LXZlcmlmaWNhdGlvbiIsCmMpLG5ldyBjfWNhdGNoKGQpe18uVWEuY29uc29sZSYmXy5VYS5jb25zb2xlLmVycm9yKCJUaGlzIHNpdGUgY2Fubm90IGluc3RhbnRpYXRlIGN1c3RvbSBIVE1MRWxlbWVudCBzdWJjbGFzc2VzLCB3aGljaCBjb3VsZCBjYXVzZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSB2MyB0byBub3Qgd29yayBjb3JyZWN0bHkuIiksYT0hMCxiKDIxOTk5NSl9cmV0dXJuIGF9O2FnYT1mdW5jdGlvbihhKXsoYT0idmVyc2lvbiJpbiBhKSYmXy5VYS5jb25zb2xlJiZfLlVhLmNvbnNvbGUuZXJyb3IoIllvdSBoYXZlIGluY2x1ZGVkIHRoZSBHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSSBtdWx0aXBsZSB0aW1lcyBvbiB0aGlzIHBhZ2UuIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgZXJyb3JzLiIpO3JldHVybiBhfTsKZmdhPWZ1bmN0aW9uKGEsYil7aWYoYS5yaCgpJiZfLm1sKGEucmgoKSkpdHJ5e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIixiKSxqZ2Euc2VuZChfLm1sKGEucmgoKSkrIi9tYXBzL2FwaS9tYXBzanMvZ2VuXzIwND9jc3BfdGVzdD10cnVlIil9Y2F0Y2goYyl7fX07Xy5rcj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKG1iYShjLmNvZGUpLnRvU3RyaW5nKClbMF0pe2Nhc2UgIjIiOnJldHVybiBudWxsO2Nhc2UgIjMiOnJldHVybiBuZXcgZ3IoYSxiLGhyKGMpKTtjYXNlICI0IjpyZXR1cm4gbmV3IF8uaXIoYSxiLGhyKGMpKTtjYXNlICI1IjpyZXR1cm4gbmV3IF8uanIoYSxiLGhyKGMpKTtkZWZhdWx0OnJldHVybiBuZXcgXy5qcihhLGIsaHIoYykpfX07CmhyPWZ1bmN0aW9uKGEpe3N3aXRjaChhLmNvZGUpe2Nhc2UgMDpyZXR1cm4iT0siO2Nhc2UgMTpyZXR1cm4iQ0FOQ0VMTEVEIjtjYXNlIDI6cmV0dXJuIlVOS05PV04iO2Nhc2UgMzpyZXR1cm4iSU5WQUxJRF9BUkdVTUVOVCI7Y2FzZSA0OnJldHVybiJERUFETElORV9FWENFRURFRCI7Y2FzZSA1OnJldHVybiJOT1RfRk9VTkQiO2Nhc2UgNjpyZXR1cm4iQUxSRUFEWV9FWElTVFMiO2Nhc2UgNzpyZXR1cm4iUEVSTUlTU0lPTl9ERU5JRUQiO2Nhc2UgMTY6cmV0dXJuIlVOQVVUSEVOVElDQVRFRCI7Y2FzZSA4OnJldHVybiJSRVNPVVJDRV9FWEhBVVNURUQiO2Nhc2UgOTpyZXR1cm4iRkFJTEVEX1BSRUNPTkRJVElPTiI7Y2FzZSAxMDpyZXR1cm4iQUJPUlRFRCI7Y2FzZSAxMTpyZXR1cm4iT1VUX09GX1JBTkdFIjtjYXNlIDEyOnJldHVybiJVTklNUExFTUVOVEVEIjtjYXNlIDEzOnJldHVybiJJTlRFUk5BTCI7Y2FzZSAxNDpyZXR1cm4iVU5BVkFJTEFCTEUiO2Nhc2UgMTU6cmV0dXJuIkRBVEFfTE9TUyI7CmRlZmF1bHQ6cmV0dXJuIlVOS05PV04ifX07Xy5rZ2E9ZnVuY3Rpb24oYSxiPXt9KXt2YXIgYz1fLkpsPy5yaCgpLGQ9Yi5sYW5ndWFnZT8/Yz8ucmgoKTtkJiZhLnNlYXJjaFBhcmFtcy5zZXQoImhsIixkKTsoZD1iLnJlZ2lvbik/YS5zZWFyY2hQYXJhbXMuc2V0KCJnbCIsZCk6KGQ9Yz8udGgoKSxjPWM/LnhoKCksZCYmIWMmJmEuc2VhcmNoUGFyYW1zLnNldCgiZ2wiLGQpKTthLnNlYXJjaFBhcmFtcy5zZXQoInNvdXJjZSIsYi5zb3VyY2U/PyEhXy5McFszNV0/ImVtYmVkIjoiYXBpdjMiKTtyZXR1cm4gYX07ZWE9W107emE9T2JqZWN0LmRlZmluZVByb3BlcnR5O3hhPWdsb2JhbFRoaXM7eWE9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09PSJzeW1ib2wiO3RhPXt9O2xhPXt9O25hPSJJbnQ4IFVpbnQ4IFVpbnQ4Q2xhbXBlZCBJbnQxNiBVaW50MTYgSW50MzIgVWludDMyIEZsb2F0MzIgRmxvYXQ2NCIuc3BsaXQoIiAiKTsKeGEuQmlnSW50NjRBcnJheSYmKG5hLnB1c2goIkJpZ0ludDY0IiksbmEucHVzaCgiQmlnVWludDY0IikpO3JhKCJTeW1ib2wuZGlzcG9zZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpTeW1ib2woIlN5bWJvbC5kaXNwb3NlIil9LCJlc19uZXh0Iik7cmEoIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2lmKGIgaW5zdGFuY2VvZiBSZWdFeHAmJiFiLmdsb2JhbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwgY2FsbGVkIHdpdGggYSBub24tZ2xvYmFsIFJlZ0V4cCBhcmd1bWVudC4iKTtyZXR1cm4gYiBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLnJlcGxhY2UoYixjKTp0aGlzLnJlcGxhY2UobmV3IFJlZ0V4cChTdHJpbmcoYikucmVwbGFjZSgvKFstKClcW1xde30rPyouJFxefCw6IzwhXFxdKS9nLCJcXCQxIikucmVwbGFjZSgvXHgwOC9nLCJcXHgwOCIpLCJnIiksYyl9fSwiZXNfMjAyMSIpOwpyYSgiQXJyYXkucHJvdG90eXBlLmF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOkJhfSwiZXNfbmV4dCIpO2FhYSgiYXQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6QmF9LCJlc19uZXh0Iik7cmEoIlN0cmluZy5wcm90b3R5cGUuYXQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6QmF9LCJlc19uZXh0Iik7cmEoIlNldC5wcm90b3R5cGUudW5pb24iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7SmEodGhpcyk7RGEoYik7dmFyIGM9bmV3IFNldCh0aGlzKTtiPUhhKGIua2V5cygpKTtmb3IodmFyIGQ9Yi5uZXh0KCk7IWQuZG9uZTspYy5hZGQoZC52YWx1ZSksZD1iLm5leHQoKTtyZXR1cm4gY319LCJlc19uZXh0Iik7CnJhKCJTZXQucHJvdG90eXBlLmlzRGlzam9pbnRGcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe0phKHRoaXMpO0RhKGIpO3ZhciBjPXRoaXMuc2l6ZTw9Yi5zaXplP3tOSjp0aGlzLmtleXMoKSx2STpifTp7Tko6SGEoYi5rZXlzKCkpLHZJOnRoaXN9O2I9Yy5OSjtjPWMudkk7Zm9yKHZhciBkPWIubmV4dCgpOyFkLmRvbmU7KXtpZihjLmhhcyhkLnZhbHVlKSlyZXR1cm4hMTtkPWIubmV4dCgpfXJldHVybiEwfX0sImVzX25leHQiKTtyYSgiUHJvbWlzZS53aXRoUmVzb2x2ZXJzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7dmFyIGIsYztyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2I9ZDtjPWV9KSxyZXNvbHZlOmIscmVqZWN0OmN9fX0sImVzX25leHQiKTt2YXIgTWssYmIsYmFhO01rPU1rfHx7fTtfLlVhPXRoaXN8fHNlbGY7YmI9ImNsb3N1cmVfdWlkXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7YmFhPTA7Xy5xYihfLnRiLEVycm9yKTtfLnRiLnByb3RvdHlwZS5uYW1lPSJDdXN0b21FcnJvciI7Xy5xYih1YixfLnRiKTt1Yi5wcm90b3R5cGUubmFtZT0iQXNzZXJ0aW9uRXJyb3IiO3ZhciB5aD0hMCx4aCx5Yjt2YXIgbHI9U2EoMSwhMCksSWI9U2EoNjEwNDAxMzAxLCExKTtTYSg4OTk1ODg0MzcsITEpO1NhKDc3MjY1Nzc2OCwhMCk7U2EoNTEzNjU5NTIzLCExKTtTYSg1NjgzMzM5NDUsITApO1NhKDEzMzE3NjE0MDMsITApO1NhKDY1MTE3NTgyOCwhMSk7U2EoNzIyNzY0NTQyLCExKTtTYSg3NDg0MDIxNDUsITEpO1NhKDc0ODQwMjE0NiwhMSk7dmFyIEVmPVNhKDc0ODQwMjE0NywhMCk7U2EoMTYwMjYxMzE4NSwhMSk7U2EoODYxMzc3NzIzLCExKTtTYSg4NjEzNzc3MjQsbHIpO1NhKDg2OTMzNjkwMywhMSk7U2EoODgyNjc0NTA3LCExKTtTYSg4NjkzMzY5MDQsbHIpO1NhKDg2OTMzNjkwNSxscik7U2EoMjgzOTUzMTU1LCExKTtTYSg5MTk0NDQ4MjQsITEpO1NhKDkzMTQ2ODA0NywhMSk7U2EoOTI4ODc1Mzk4LCExKTtTYSg2ODM3NDkyMDEsITEpO1NhKDIxNDc0ODM2NDQsITEpO1NhKDIxNDc0ODM2NDUsITEpO1NhKDIxNDc0ODM2NDYsbHIpO1NhKDIxNDc0ODM2NDcsITApO3ZhciBsZ2E7bGdhPV8uVWEubmF2aWdhdG9yO18uSmI9bGdhP2xnYS51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7RmNbIiAiXT1mdW5jdGlvbigpe307dmFyIG5nYSxwcjtfLm1nYT1fLlViKCk7Xy5tcj1fLlhiKCk7bmdhPV8uUmIoIkVkZ2UiKTtfLm9nYT1fLlJiKCJHZWNrbyIpJiYhKF8uSGIoKSYmIV8uUmIoIkVkZ2UiKSkmJiEoXy5SYigiVHJpZGVudCIpfHxfLlJiKCJNU0lFIikpJiYhXy5SYigiRWRnZSIpO18ubnI9Xy5IYigpJiYhXy5SYigiRWRnZSIpO18ucGdhPV8ubWMoKTtfLm9yPV8ubmMoKTtfLnFnYT1rYygpP18uSmIucGxhdGZvcm09PT0iQW5kcm9pZCI6Xy5SYigiQW5kcm9pZCIpO18ucmdhPWxjKCk7Xy5zZ2E9Xy5SYigiaVBhZCIpO18udGdhPV8uUmIoImlQb2QiKTsKYTp7bGV0IGE9IiIsYj1mdW5jdGlvbigpe3ZhciBjPV8uRmIoKTtpZihfLm9nYSlyZXR1cm4vcnY6KFteXCk7XSspKFwpfDspLy5leGVjKGMpO2lmKG5nYSlyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGMpO2lmKF8ubXIpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGMpO2lmKF8ubnIpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYyk7aWYoXy5tZ2EpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoYyl9KCk7YiYmKGE9Yj9iWzFdOiIiKTtpZihfLm1yKXt2YXIgcXI7bGV0IGM9Xy5VYS5kb2N1bWVudDtxcj1jP2MuZG9jdW1lbnRNb2RlOnZvaWQgMDtpZihxciE9bnVsbCYmcXI+cGFyc2VGbG9hdChhKSl7cHI9U3RyaW5nKHFyKTticmVhayBhfX1wcj1hfV8udWdhPXByO18udmdhPV8uZGMoKTtfLndnYT1sYygpfHxfLlJiKCJpUG9kIik7Xy54Z2E9Xy5SYigiaVBhZCIpO18ueWdhPV8uaGMoKTtfLnpnYT1fLmpjKCkmJiEobGMoKXx8Xy5SYigiaVBhZCIpfHxfLlJiKCJpUG9kIikpO3ZhciBIYz17fSxYYz1udWxsO3ZhciAkYyxlYWEsQWdhOyRjPS9bLV8uXS9nO2VhYT17Ii0iOiIrIixfOiIvIiwiLiI6Ij0ifTtfLmhkPXt9O0FnYT10eXBlb2Ygc3RydWN0dXJlZENsb25lIT0idW5kZWZpbmVkIjt2YXIgY2Q7Xy5mZD1jbGFzc3tpc0VtcHR5KCl7cmV0dXJuIHRoaXMucWg9PW51bGx9Y29uc3RydWN0b3IoYSxiKXtwZChiKTt0aGlzLnFoPWE7aWYoYSE9bnVsbCYmYS5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJCeXRlU3RyaW5nIHNob3VsZCBiZSBjb25zdHJ1Y3RlZCB3aXRoIG5vbi1lbXB0eSB2YWx1ZXMiKTt9fTtfLkJnYT1BZ2E/KGEsYik9PlByb21pc2UucmVzb2x2ZShzdHJ1Y3R1cmVkQ2xvbmUoYSx7dHJhbnNmZXI6Yn0pKTpnYWE7dmFyIHVkPXZvaWQgMDt2YXIgdWcsZ2csbWFhLG5hYSxzYWEsTGQscGFhO18uQ2Q9eWQoImphcyIsITApO18uZmY9eWQoKTt1Zz15ZCgpO2dnPXlkKCk7Xy5DZ2E9eWQoKTtfLmtmPXlkKCk7bWFhPXlkKCk7bmFhPXlkKCk7Xy54aT15ZCgpO3NhYT15ZCgpO0xkPXlkKCJtX20iLCEwKTtwYWE9eWQoKTtfLm9mPXlkKCk7dmFyIERnYTtbLi4uT2JqZWN0LnZhbHVlcyh7clI6MSxxUjoyLHBSOjQsRFI6OCxhUzoxNix5UjozMixNUTo2NCxrUjoxMjgsZ1I6MjU2LFRSOjUxMixoUjoxMDI0LGxSOjIwNDgselI6NDA5Nix1Ujo4MTkyfSldO0RnYT1bXTtEZ2FbXy5DZF09NztfLmVnPU9iamVjdC5mcmVlemUoRGdhKTt2YXIgTWQsdWFhLEtqLGFlO01kPXt9O18uUmQ9e307dWFhPU9iamVjdC5mcmVlemUoe30pO18udmc9T2JqZWN0LmZyZWV6ZSh7fSk7S2o9e307YWU9e307dmFyIGlhYSxoYWEsRWdhO2lhYT1fLmNlKGE9PnR5cGVvZiBhPT09Im51bWJlciIpO2hhYT1fLmNlKGE9PnR5cGVvZiBhPT09InN0cmluZyIpO0VnYT1fLmNlKGE9PnR5cGVvZiBhPT09ImJpZ2ludCIpO18ucnI9Xy5jZShhPT5hIT1udWxsJiZ0eXBlb2YgYT09PSJvYmplY3QiJiZ0eXBlb2YgYS50aGVuPT09ImZ1bmN0aW9uIik7Xy5GZ2E9Xy5jZShhPT50eXBlb2YgYT09PSJmdW5jdGlvbiIpO3ZhciBHZ2EsSGdhO18uWmFhPV8uY2UoYT0+RWdhKGEpKTtfLnRmPV8uY2UoYT0+YT49R2dhJiZhPD1IZ2EpO0dnYT1CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO0hnYT1CaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO18uZWU9MDtfLmdlPTA7dmFyIEJlLGphYTtfLkxlPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwO18uWmU9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzVWludE46dm9pZCAwO18uVWU9TnVtYmVyLmlzU2FmZUludGVnZXI7QmU9TnVtYmVyLmlzRmluaXRlO18uUmU9TWF0aC50cnVuYztqYWE9L14tPyhbMS05XVswLTldKnwwKShcLlswLTldKyk/JC87dmFyIHFhYT17fTtfLnNyPV8ucGIoXy5DZ2EpO3ZhciBsYWE7Xy5uZj1jbGFzc3t9O2xhYT17clA6ITB9O3ZhciByZjtfLmNnYT1BZ2E/c3RydWN0dXJlZENsb25lOmE9PnNmKGEsMCx1Zik7dmFyIHlmO18uTWc9Xy5kZSgwKTt2YXIgSWdhPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYoS2ohPT1Lail0aHJvdyBFcnJvcigpO319O3ZhciBHaCxNaCxOaCxPaCxMaCxLaCxJaCxKaDtfLkVoPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5sbz1hPj4+MDt0aGlzLmhpPWI+Pj4wfX07Xy5KZ2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnFoPVtdfWxlbmd0aCgpe3JldHVybiB0aGlzLnFoLmxlbmd0aH1lbmQoKXt2YXIgYT10aGlzLnFoO3RoaXMucWg9W107cmV0dXJuIGF9fTtfLktnYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9W107dGhpcy5yaD0wO3RoaXMucWg9bmV3IF8uSmdhfX07dmFyIEJpLEVhYSxraSxrYmE7Qmk9Z2koKTtFYWE9Z2koKTtraT1naSgpO18uVWo9Z2koKTtfLlpqPWdpKCk7Xy5Xaj1naSgpO18uZGs9Z2koKTtfLmJrPWdpKCk7Xy5maz1naSgpO18uY2s9Z2koKTtfLmVrPWdpKCk7Xy5oaz1naSgpO18uams9Z2koKTtfLmlrPWdpKCk7Xy5raz1naSgpO2tiYT1naSgpO18uWWo9Z2koKTtfLlhqPWdpKCk7Xy5haz1naSgpO18uZ2s9Z2koKTtfLkk9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLkxpPUNmKGEsYix2b2lkIDAsMjA0OCl9dG9KU09OKCl7cmV0dXJuIF8ud2YodGhpcyl9amooYSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KF8ud2YodGhpcyxhKSl9Z2V0RXh0ZW5zaW9uKGEpe18ucWYodGhpcy5MaSxhLnFoKTtfLnBmKHRoaXMsYS5xaCxhLnRoKTtyZXR1cm4gYS5Xbj9hLmd3P2Euc2godGhpcyxhLlduLGEucWgsXy5jZygpLGEucmgpOmEuc2godGhpcyxhLlduLGEucWgsYS5yaCk6YS5ndz9hLnNoKHRoaXMsYS5xaCxfLmNnKCksYS5yaCk6YS5zaCh0aGlzLGEucWgsYS5kZWZhdWx0VmFsdWUsYS5yaCl9Y2xvbmUoKXt2YXIgYT10aGlzLkxpLGI9YVtfLkNkXXwwO3JldHVybiBfLkdmKHRoaXMsYSxiKT9IZih0aGlzLGEsITApOm5ldyB0aGlzLmNvbnN0cnVjdG9yKF8uRmYoYSxiLCExKSl9d2goKXt2YXIgYT10aGlzLkxpLGI9YVtfLkNkXXwwO3JldHVybiBfLlNkKHRoaXMsYik/dGhpczpfLkdmKHRoaXMsYSxiKT8KSGYodGhpcyxhKTpuZXcgdGhpcy5jb25zdHJ1Y3RvcihfLkZmKGEsYiwhMCkpfX07Xy5JLnByb3RvdHlwZS5zaD1fLmhhKDEpO18uSS5wcm90b3R5cGUucWg9Xy5oYSgwKTtfLkkucHJvdG90eXBlW0xkXT1NZDtfLkkucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTGkudG9TdHJpbmcoKX07dmFyIGppLHhhYSx5YWEsemFhLHZpLGNiYSxwaTtqaT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyxkKXt0aGlzLnVDPWE7dGhpcy52Qz1iO3RoaXMuWHQ9Yzt0aGlzLnFoPWQ7YT1fLnBiKGtpKTsoYT0hIWEmJmQ9PT1hKXx8KGE9Xy5wYihfLlVqKSxhPSEhYSYmZD09PWEpO3RoaXMucmg9YX19O3hhYT1fLmxpKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5xaCE9PTIpcmV0dXJuITE7Xy5BaChhLF8uemcoYixkLGMpLGUpO3JldHVybiEwfSxuaSk7eWFhPV8ubGkoZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihhLnFoIT09MilyZXR1cm4hMTtfLkFoKGEsXy56ZyhiLGQsYyksZSk7cmV0dXJuITB9LG5pKTt6YWE9U3ltYm9sKCk7dmk9U3ltYm9sKCk7Y2JhPVN5bWJvbCgpO18udHI9U3ltYm9sKCk7dmFyIExnYTtMZ2E9Xy5kZSgwKTtfLk1nYT1TeW1ib2woKTtfLnVyPV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0xKXJldHVybiExO18uRWkoYixjLF8udmgoYS5yaCkpO3JldHVybiEwfSxfLkdpLF8uWGopO18udnI9Xy5BaShmdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uT2koYSxiLGMpfSxfLkhpLF8uaGspO18ud3I9Xy5DaShfLlBpLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5hZixiLCExKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWJpKGEsYyxiW2RdKX0sXy5oayk7Xy54cj1fLkFpKGZ1bmN0aW9uKGEsYixjKXthLnFoIT09MD9iPSExOihhPV8udGgoYS5yaCksXy5FaShiLGMsYT09PUxnYT92b2lkIDA6YSksYj0hMCk7cmV0dXJuIGJ9LF8uSGksXy5oayk7Xy5QPV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO18uRWkoYixjLF8ucmgoYS5yaCkpO3JldHVybiEwfSxfLklpLF8uZGspOwpfLnlyPV8uQ2koXy5RaSxmdW5jdGlvbihhLGIsYyl7Yj1fLnlpKF8uR2UsYiwhMCk7aWYoYiE9bnVsbCYmYi5sZW5ndGgpe2M9Xy5aaChhLGMpO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKV8uVGgoYS5xaCxiW2RdKTtfLiRoKGEsYyl9fSxfLmRrKTtfLnpyPV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO2E9Xy5yaChhLnJoKTtfLkVpKGIsYyxhPT09MD92b2lkIDA6YSk7cmV0dXJuITB9LF8uSWksXy5kayk7Xy5SPV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO18uRWkoYixjLF8ucWgoYS5yaCkpO3JldHVybiEwfSxfLkppLF8uWmopO18uVT1fLkFpKGZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MilyZXR1cm4hMTtfLkVpKGIsYyxfLkNoKGEpKTtyZXR1cm4hMH0sXy5LaSxfLldqKTsKXy5Bcj1fLkNpKGZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MilyZXR1cm4hMTthPV8uQ2goYSk7Xy5WZihiLGJbXy5DZF18MCxjKS5wdXNoKGEpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyl7Yj1fLnlpKF8uZGYsYiwhMCk7aWYoYiE9bnVsbClmb3IobGV0IGc9MDtnPGIubGVuZ3RoO2crKyl7dmFyIGQ9YSxlPWMsZj1iW2ddO2YhPW51bGwmJl8uZGkoZCxlLHpiKGYpKX19LF8uV2opO18uWT1fLkRpKGZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoYS5xaCE9PTIpcmV0dXJuITE7Xy5BaChhLF8uRmkoYixkLGMpLGUpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyxkLGUpe18uemkoYSxiLGMsZCxlLF8uTGkpfSk7Xy5Ccj1fLkFpKGZ1bmN0aW9uKGEsYixjKXtpZihhLnFoIT09MClyZXR1cm4hMTtfLkVpKGIsYyxfLnNoKGEucmgpKTtyZXR1cm4hMH0sXy5NaSxfLmJrKTsKXy5aPV8uQWkoZnVuY3Rpb24oYSxiLGMpe2lmKGEucWghPT0wKXJldHVybiExO18uRWkoYixjLF8ucmgoYS5yaCkpO3JldHVybiEwfSxfLk5pLF8uZ2spO18uQ3I9Xy5DaShfLlJpLGZ1bmN0aW9uKGEsYixjKXtiPV8ueWkoXy5HZSxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWNpKGEsYyxiW2RdKX0sXy5nayk7dmFyIFlpPVN5bWJvbCgpLFppPVN5bWJvbCgpLFRpPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5kQz1hO3RoaXMuZ3c9Yjt0aGlzLmlzTWFwPSExfX0sU2k9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXt0aGlzLmlBPWE7dGhpcy5kQz1iO3RoaXMuZ3c9Yzt0aGlzLmlzTWFwPWQ7dGhpcy5iUT1lfX07dmFyIE5nYT1uZXcgTWFwLEZhYT1jbGFzcyBleHRlbmRzIElnYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5xaD1iO2lmKEtqIT09S2opdGhyb3cgRXJyb3IoKTtOZ2Euc2V0KGEsdGhpcyl9fTt2YXIgR2FhPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMucWg9YTt0aGlzLlduPWM7dGhpcy5ndz0wO3RoaXMuc2g9Xy5BZzt0aGlzLndoPV8uRWc7dGhpcy5kZWZhdWx0VmFsdWU9dm9pZCAwO3RoaXMucmg9Yi52VCE9bnVsbD9hZTp2b2lkIDA7dGhpcy50aD1kfXJlZ2lzdGVyKCl7RmModGhpcyl9fTtfLkRyPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXJoKCl7cmV0dXJuIF8uT2codGhpcywxKX10aCgpe3JldHVybiBfLk9nKHRoaXMsMil9fTtfLkVyPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXRoKCl7cmV0dXJuIF8uQWcodGhpcyxfLkRyLDEpfXJoKCl7cmV0dXJuIF8uQWcodGhpcyxfLkRyLDIpfX07dmFyIE9iYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRWYWx1ZSgpe3ZhciBhPV8uT2YodGhpcywyKTtpZihBcnJheS5pc0FycmF5KGEpfHxhIGluc3RhbmNlb2YgXy5JKXRocm93IEVycm9yKCJDYW5ub3QgYWNjZXNzIHRoZSBBbnkudmFsdWUgZmllbGQgb24gQW55IHByb3RvcyBlbmNvZGVkIHVzaW5nIHRoZSBqc3BiIGZvcm1hdCwgY2FsbCB1bnBhY2tKc3BiIGluc3RlYWQiKTtyZXR1cm4gXy5tZyh0aGlzLDIpfXNldFZhbHVlKGEpe2lmKGE9PW51bGwpYT10aGlzO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSlhPV8uUWYodGhpcywyLHNmKGEsMCx1ZikpO2Vsc2UgaWYodHlwZW9mIGE9PT0ic3RyaW5nInx8YSBpbnN0YW5jZW9mIF8uZmR8fF8uYmQoYSkpYT1vZyh0aGlzLDIsXy5YZChhLCExKSxfLmxkKCkpO2Vsc2UgdGhyb3cgRXJyb3IoImludmFsaWQgdmFsdWUgaW4gQW55LnZhbHVlIGZpZWxkOiAiK2ErIiBleHBlY3RlZCBhIEJ5dGVTdHJpbmcsIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nLCBhIFVpbnQ4QXJyYXkgb3IgYSBqc3BiIGFycmF5Iik7CnJldHVybiBhfX07Xy5Gcj1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uRnIucHJvdG90eXBlLnJoPV8uaGEoMik7Xy5icj1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1yaCgpe3ZhciBhPU51bWJlcihfLlFnKHRoaXMpKSxiPV8uS2codGhpcywyKTtyZXR1cm4gbmV3IERhdGUoYSoxRTMrYi8xRTYpfX07Xy5Hcj1bMCxfLnhyLF8uenJdO3ZhciBOYmE7Xy5Icj1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRNZXNzYWdlKCl7cmV0dXJuIF8uSCh0aGlzLDIpfX07TmJhPV8uYmooXy5Icik7Xy5Jcj1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1jaSgpe3JldHVybiBfLkgodGhpcywxKX1yaCgpe3JldHVybiBfLkgodGhpcywyKX19O18uSnI9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLktyPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIGtqPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7dmFyIExyPWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLG1qPUxyLG5qO18ucGo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMucWgrIiJ9fTtfLnNqPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YX10b1N0cmluZygpe3JldHVybiB0aGlzLnFofX07Xy5Ncj1fLnRqKCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIpO3ZhciBUYWE7Xy51aj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLkFqPWF9fTtfLk9nYT1bdmooImRhdGEiKSx2aigiaHR0cCIpLHZqKCJodHRwcyIpLHZqKCJtYWlsdG8iKSx2aigiZnRwIiksbmV3IF8udWooYT0+L15bXjpdKihbLz8jXXwkKS8udGVzdChhKSldO1RhYT1bImRhdGE6IiwiaHR0cDoiLCJodHRwczoiLCJtYWlsdG86IiwiZnRwOiJdO3ZhciB3aj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnFoPWF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5xaCsiIn19LHhkYT1uZXcgd2ooTHI/THIuZW1wdHlIVE1MOiIiKTtfLkFqPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YX10b1N0cmluZygpe3JldHVybiB0aGlzLnFofX07Xy5Eaj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO18uTnI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXt0aGlzLnNoPWE7dGhpcy5xaD1iO3RoaXMudGg9Yzt0aGlzLndoPWQ7dGhpcy5yaD1lfX07Xy5QZ2E9bmV3IF8uTnIobmV3IFNldCgiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpKSwKbmV3IE1hcChbWyJBIixuZXcgTWFwKFtbImhyZWYiLHtPbTo3fV1dKV0sWyJBUkVBIixuZXcgTWFwKFtbImhyZWYiLHtPbTo3fV1dKV0sWyJMSU5LIixuZXcgTWFwKFtbImhyZWYiLHtPbTo1LGNvbmRpdGlvbnM6bmV3IE1hcChbWyJyZWwiLG5ldyBTZXQoImFsdGVybmF0ZSBhdXRob3IgYm9va21hcmsgY2Fub25pY2FsIGNpdGUgaGVscCBpY29uIGxpY2Vuc2UgbmV4dCBwcmVmZXRjaCBkbnMtcHJlZmV0Y2ggcHJlcmVuZGVyIHByZWNvbm5lY3QgcHJlbG9hZCBwcmV2IHNlYXJjaCBzdWJyZXNvdXJjZSIuc3BsaXQoIiAiKSldXSl9XV0pXSxbIlNPVVJDRSIsbmV3IE1hcChbWyJzcmMiLHtPbTo1fV0sWyJzcmNzZXQiLHtPbTo2fV1dKV0sWyJJTUciLG5ldyBNYXAoW1sic3JjIix7T206NX1dLFsic3Jjc2V0Iix7T206Nn1dXSldLFsiVklERU8iLG5ldyBNYXAoW1sic3JjIix7T206NX1dXSldLFsiQVVESU8iLG5ldyBNYXAoW1sic3JjIix7T206NX1dXSldXSksbmV3IFNldCgidGl0bGUgYXJpYS1hdG9taWMgYXJpYS1hdXRvY29tcGxldGUgYXJpYS1idXN5IGFyaWEtY2hlY2tlZCBhcmlhLWN1cnJlbnQgYXJpYS1kaXNhYmxlZCBhcmlhLWRyb3BlZmZlY3QgYXJpYS1leHBhbmRlZCBhcmlhLWhhc3BvcHVwIGFyaWEtaGlkZGVuIGFyaWEtaW52YWxpZCBhcmlhLWxhYmVsIGFyaWEtbGV2ZWwgYXJpYS1saXZlIGFyaWEtbXVsdGlsaW5lIGFyaWEtbXVsdGlzZWxlY3RhYmxlIGFyaWEtb3JpZW50YXRpb24gYXJpYS1wb3NpbnNldCBhcmlhLXByZXNzZWQgYXJpYS1yZWFkb25seSBhcmlhLXJlbGV2YW50IGFyaWEtcmVxdWlyZWQgYXJpYS1zZWxlY3RlZCBhcmlhLXNldHNpemUgYXJpYS1zb3J0IGFyaWEtdmFsdWVtYXggYXJpYS12YWx1ZW1pbiBhcmlhLXZhbHVlbm93IGFyaWEtdmFsdWV0ZXh0IGFsdCBhbGlnbiBhdXRvY2FwaXRhbGl6ZSBhdXRvY29tcGxldGUgYXV0b2NvcnJlY3QgYXV0b2ZvY3VzIGF1dG9wbGF5IGJnY29sb3IgYm9yZGVyIGNlbGxwYWRkaW5nIGNlbGxzcGFjaW5nIGNoZWNrZWQgY2l0ZSBjb2xvciBjb2xzIGNvbHNwYW4gY29udHJvbHMgY29udHJvbHNsaXN0IGNvb3JkcyBjcm9zc29yaWdpbiBkYXRldGltZSBkaXNhYmxlZCBkb3dubG9hZCBkcmFnZ2FibGUgZW5jdHlwZSBmYWNlIGZvcm1lbmN0eXBlIGZyYW1lYm9yZGVyIGhlaWdodCBocmVmbGFuZyBoaWRkZW4gaW5lcnQgaXNtYXAgbGFiZWwgbGFuZyBsb29wIG1heCBtYXhsZW5ndGggbWVkaWEgbWlubGVuZ3RoIG1pbiBtdWx0aXBsZSBtdXRlZCBub25jZSBvcGVuIHBsYXlzaW5saW5lIHBsYWNlaG9sZGVyIHByZWxvYWQgcmVsIHJlcXVpcmVkIHJldmVyc2VkIHJvbGUgcm93cyByb3dzcGFuIHNlbGVjdGVkIHNoYXBlIHNpemUgc2l6ZXMgc2xvdCBzcGFuIHNwZWxsY2hlY2sgc3RhcnQgc3RlcCBzdW1tYXJ5IHRyYW5zbGF0ZSB0eXBlIHVzZW1hcCB2YWxpZ24gdmFsdWUgd2lkdGggd3JhcCBpdGVtc2NvcGUgaXRlbXR5cGUgaXRlbWlkIGl0ZW1wcm9wIGl0ZW1yZWYiLnNwbGl0KCIgIikpLApuZXcgTWFwKFtbImRpciIse09tOjMsY29uZGl0aW9uczpuZXcgTWFwKFtbImRpciIsbmV3IFNldChbImF1dG8iLCJsdHIiLCJydGwiXSldXSl9XSxbImFzeW5jIix7T206Myxjb25kaXRpb25zOm5ldyBNYXAoW1siYXN5bmMiLG5ldyBTZXQoWyJhc3luYyJdKV1dKX1dLFsibG9hZGluZyIse09tOjMsY29uZGl0aW9uczpuZXcgTWFwKFtbImxvYWRpbmciLG5ldyBTZXQoWyJlYWdlciIsImxhenkiXSldXSl9XSxbInBvc3RlciIse09tOjV9XSxbInRhcmdldCIse09tOjMsY29uZGl0aW9uczpuZXcgTWFwKFtbInRhcmdldCIsbmV3IFNldChbIl9zZWxmIiwiX2JsYW5rIl0pXV0pfV1dKSk7Xy5RZ2E9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXt0aGlzLnNoPWE7dGhpcy53aD1iO3RoaXMudGg9Yzt0aGlzLnFoPWQ7dGhpcy5yaD1lfXNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKGEpe3JldHVybiBfLklqKHRoaXMsYSl9Y3JlYXRlVGV4dE5vZGUoYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGEpfX07Xy5Pcj1uZXcgXy5RZ2EoXy5QZ2EpO3ZhciBSZ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSw1MDApfX07dmFyIE5qPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsNTAwKX19O3ZhciBNaj1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXROYW1lKCl7cmV0dXJuIF8uSCh0aGlzLDEpfXNldE9wdGlvbnMoYSl7cmV0dXJuIF8uRWcodGhpcyxOaiwzLGEpfX07dmFyIFZhYT1fLmFqKGNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldE5hbWUoKXtyZXR1cm4gXy5IKHRoaXMsMSl9c2V0VmFsdWUoYSxiKXtyZXR1cm4gXy4kZih0aGlzLDIsTWosYSxiKX1zZXRPcHRpb25zKGEpe3JldHVybiBfLkVnKHRoaXMsUmdhLDMsYSl9cmgoKXtyZXR1cm4gXy5QZyh0aGlzLDYpfU9sKGEpe3JldHVybiBfLmtoKHRoaXMsNixhKX19KTt2YXIgVWFhPVN5bWJvbCgpO3ZhciB3YWE9Xy5YaSg5OTgsTmosY2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSk7dmFyIExqPVN5bWJvbCgpLFlhYT1TeW1ib2woKSxQaj1TeW1ib2woKTtfLlhqLkFtPSJkIjtfLllqLkFtPSJmIjtfLmRrLkFtPSJpIjtfLmhrLkFtPSJqIjtfLmJrLkFtPSJ1IjtfLmprLkFtPSJ2IjtfLlpqLkFtPSJiIjtfLmdrLkFtPSJlIjtfLldqLkFtPSJzIjtfLmFrLkFtPSJCIjtraS5BbT0ibSI7Xy5Vai5BbT0ibSI7Xy5jay5BbT0ieCI7Xy5ray5BbT0ieSI7Xy5lay5BbT0iZyI7a2JhLkFtPSJoIjtfLmZrLkFtPSJuIjtfLmlrLkFtPSJvIjt2YXIgaWJhPVJlZ0V4cCgiWysvXSIsImciKSxqYmE9UmVnRXhwKCJbLj1dKyQiKSxnYmE9UmVnRXhwKCIoXFwqKSIsImciKSxoYmE9UmVnRXhwKCIoISkiLCJnIiksZmJhPVJlZ0V4cCgiXlstQS1aYS16MC05Xy4hfiooKSBdKiQiKTt2YXIgZWJhPVJlZ0V4cCgiJyIsImciKTtfLlByPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/YT0+YSYmQXN5bmNDb250ZXh0LlNuYXBzaG90LndyYXAoYSk6YT0+YTt2YXIgY2NhPW5ldyBTZXQoWyJTQVBJU0lESEFTSCIsIkFQSVNJREhBU0giXSk7Xy5Saz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGEsYixjPXt9KXtzdXBlcihiKTt0aGlzLmNvZGU9YTt0aGlzLm1ldGFkYXRhPWM7dGhpcy5uYW1lPSJScGNFcnJvciI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbmV3LnRhcmdldC5wcm90b3R5cGUpfXRvU3RyaW5nKCl7dmFyIGE9YFJwY0Vycm9yKCR7Xy5sayh0aGlzLmNvZGUpfHxTdHJpbmcodGhpcy5jb2RlKX0pYDt0aGlzLm1lc3NhZ2UmJihhKz0iOiAiK3RoaXMubWVzc2FnZSk7cmV0dXJuIGF9fTtfLm1rLnByb3RvdHlwZS5MaD0hMTtfLm1rLnByb3RvdHlwZS56aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkxofTtfLm1rLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5MaHx8KHRoaXMuTGg9ITAsdGhpcy5CaygpKX07Xy5tay5wcm90b3R5cGVbXy5tYShTeW1ib2wsImRpc3Bvc2UiKV09ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKX07Xy5tay5wcm90b3R5cGUuQms9ZnVuY3Rpb24oKXtpZih0aGlzLkpoKWZvcig7dGhpcy5KaC5sZW5ndGg7KXRoaXMuSmguc2hpZnQoKSgpfTtfLm5rLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLnJoPSEwfTtfLm5rLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07Xy5xYihfLm9rLF8ubmspOwpfLm9rLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy50eXBlPWEudHlwZSxkPWEuY2hhbmdlZFRvdWNoZXMmJmEuY2hhbmdlZFRvdWNoZXMubGVuZ3RoP2EuY2hhbmdlZFRvdWNoZXNbMF06bnVsbDt0aGlzLnRhcmdldD1hLnRhcmdldHx8YS5zcmNFbGVtZW50O3RoaXMuY3VycmVudFRhcmdldD1iO2I9YS5yZWxhdGVkVGFyZ2V0O2J8fChjPT0ibW91c2VvdmVyIj9iPWEuZnJvbUVsZW1lbnQ6Yz09Im1vdXNlb3V0IiYmKGI9YS50b0VsZW1lbnQpKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9YjtkPyh0aGlzLmNsaWVudFg9ZC5jbGllbnRYIT09dm9pZCAwP2QuY2xpZW50WDpkLnBhZ2VYLHRoaXMuY2xpZW50WT1kLmNsaWVudFkhPT12b2lkIDA/ZC5jbGllbnRZOmQucGFnZVksdGhpcy5zY3JlZW5YPWQuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ZC5zY3JlZW5ZfHwwKToodGhpcy5vZmZzZXRYPV8ubnJ8fGEub2Zmc2V0WCE9PXZvaWQgMD9hLm9mZnNldFg6YS5sYXllclgsCnRoaXMub2Zmc2V0WT1fLm5yfHxhLm9mZnNldFkhPT12b2lkIDA/YS5vZmZzZXRZOmEubGF5ZXJZLHRoaXMuY2xpZW50WD1hLmNsaWVudFghPT12b2lkIDA/YS5jbGllbnRYOmEucGFnZVgsdGhpcy5jbGllbnRZPWEuY2xpZW50WSE9PXZvaWQgMD9hLmNsaWVudFk6YS5wYWdlWSx0aGlzLnNjcmVlblg9YS5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1hLnNjcmVlbll8fDApO3RoaXMuYnV0dG9uPWEuYnV0dG9uO3RoaXMua2V5Q29kZT1hLmtleUNvZGV8fDA7dGhpcy5rZXk9YS5rZXl8fCIiO3RoaXMuY2hhckNvZGU9YS5jaGFyQ29kZXx8KGM9PSJrZXlwcmVzcyI/YS5rZXlDb2RlOjApO3RoaXMuY3RybEtleT1hLmN0cmxLZXk7dGhpcy5hbHRLZXk9YS5hbHRLZXk7dGhpcy5zaGlmdEtleT1hLnNoaWZ0S2V5O3RoaXMubWV0YUtleT1hLm1ldGFLZXk7dGhpcy5wb2ludGVySWQ9YS5wb2ludGVySWR8fDA7dGhpcy5wb2ludGVyVHlwZT1hLnBvaW50ZXJUeXBlO3RoaXMuc3RhdGU9YS5zdGF0ZTsKdGhpcy50aW1lU3RhbXA9YS50aW1lU3RhbXA7dGhpcy5xaD1hO2EuZGVmYXVsdFByZXZlbnRlZCYmXy5vay5pci5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTtfLm9rLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtfLm9rLmlyLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMucWguc3RvcFByb3BhZ2F0aW9uP3RoaXMucWguc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5xaC5jYW5jZWxCdWJibGU9ITB9O18ub2sucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7Xy5vay5pci5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMucWg7YS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6YS5yZXR1cm5WYWx1ZT0hMX07dmFyIG5iYT0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApO3ZhciBvYmE9MDtyay5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5haVtmXTthfHwoYT10aGlzLmFpW2ZdPVtdLHRoaXMucWgrKyk7dmFyIGc9dGsoYSxiLGQsZSk7Zz4tMT8oYj1hW2ddLGN8fChiLmpBPSExKSk6KGI9bmV3IHBiYShiLHRoaXMuc3JjLGYsISFkLGUpLGIuakE9YyxhLnB1c2goYikpO3JldHVybiBifTtyay5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEsYixjLGQpe2E9YS50b1N0cmluZygpO2lmKCEoYSBpbiB0aGlzLmFpKSlyZXR1cm4hMTt2YXIgZT10aGlzLmFpW2FdO2I9dGsoZSxiLGMsZCk7cmV0dXJuIGI+LTE/KHFrKGVbYl0pLF8ueGMoZSxiKSxlLmxlbmd0aD09MCYmKGRlbGV0ZSB0aGlzLmFpW2FdLHRoaXMucWgtLSksITApOiExfTt2YXIgems9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCksQ2s9e30sdWJhPTAsRGs9Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtfLnFiKF8uR2ssXy5tayk7Xy5Hay5wcm90b3R5cGVbbmJhXT0hMDtfLkdrLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe18udmsodGhpcyxhLGIsYyxkKX07Xy5Hay5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXt3YmEodGhpcyxhLGIsYyxkKX07Cl8uR2sucHJvdG90eXBlLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy53aztpZihiKXt2YXIgYz1bXTtmb3IodmFyIGQ9MTtiO2I9Yi53ayljLnB1c2goYiksKytkfWI9dGhpcy56djtkPWEudHlwZXx8YTtpZih0eXBlb2YgYT09PSJzdHJpbmciKWE9bmV3IF8ubmsoYSxiKTtlbHNlIGlmKGEgaW5zdGFuY2VvZiBfLm5rKWEudGFyZ2V0PWEudGFyZ2V0fHxiO2Vsc2V7dmFyIGU9YTthPW5ldyBfLm5rKGQsYik7Xy5saihhLGUpfWU9ITA7dmFyIGY7aWYoYylmb3IoZj1jLmxlbmd0aC0xOyFhLnJoJiZmPj0wO2YtLSl7dmFyIGc9YS5jdXJyZW50VGFyZ2V0PWNbZl07ZT1IayhnLGQsITAsYSkmJmV9YS5yaHx8KGc9YS5jdXJyZW50VGFyZ2V0PWIsZT1IayhnLGQsITAsYSkmJmUsYS5yaHx8KGU9SGsoZyxkLCExLGEpJiZlKSk7aWYoYylmb3IoZj0wOyFhLnJoJiZmPGMubGVuZ3RoO2YrKylnPWEuY3VycmVudFRhcmdldD1jW2ZdLGU9SGsoZyxkLCExLGEpJiZlO3JldHVybiBlfTsKXy5Hay5wcm90b3R5cGUuQms9ZnVuY3Rpb24oKXtfLkdrLmlyLkJrLmNhbGwodGhpcyk7dGhpcy5TcCYmXy5xYmEodGhpcy5TcCk7dGhpcy53az1udWxsfTt2YXIgU2dhO18ucWIoSmssemJhKTtKay5wcm90b3R5cGUucWg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fTtTZ2E9bmV3IEprO18ucWIoXy5LayxfLkdrKTt2YXIgRGJhPS9eaHR0cHM/JC9pLFRnYT1bIlBPU1QiLCJQVVQiXTtfLmFhPV8uS2sucHJvdG90eXBlO18uYWEuSUc9Xy5oYSg2KTsKXy5hYS5zZW5kPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHRoaXMucWgpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuQWgrIjsgbmV3VXJpPSIrYSk7Yj1iP2IudG9VcHBlckNhc2UoKToiR0VUIjt0aGlzLkFoPWE7dGhpcy54aD0iIjt0aGlzLnNoPTA7dGhpcy5GaD0hMTt0aGlzLnJoPSEwO3RoaXMucWg9dGhpcy5JaD90aGlzLkloLnFoKCk6U2dhLnFoKCk7dGhpcy5xaC5vbnJlYWR5c3RhdGVjaGFuZ2U9KDAsXy5QcikoKDAsXy5pYikodGhpcy5ZSSx0aGlzKSk7dHJ5e3RoaXMuZ2V0U3RhdHVzKCksdGhpcy5HaD0hMCx0aGlzLnFoLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuR2g9ITF9Y2F0Y2goZil7dGhpcy5nZXRTdGF0dXMoKTtCYmEodGhpcyxmKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSwKZFtlXSk7ZWxzZSBpZih0eXBlb2YgZC5rZXlzPT09ImZ1bmN0aW9uIiYmdHlwZW9mIGQuZ2V0PT09ImZ1bmN0aW9uIilmb3IobGV0IGYgb2YgZC5rZXlzKCkpYy5zZXQoZixkLmdldChmKSk7ZWxzZSB0aHJvdyBFcnJvcigiVW5rbm93biBpbnB1dCB0eXBlIGZvciBvcHRfaGVhZGVyczogIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmPT4iY29udGVudC10eXBlIj09Zi50b0xvd2VyQ2FzZSgpKTtlPV8uVWEuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLlVhLkZvcm1EYXRhOyFfLnZjKFRnYSxiKXx8ZHx8ZXx8Yy5zZXQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04Iik7Zm9yKGxldCBbZixnXW9mIGMpdGhpcy5xaC5zZXRSZXF1ZXN0SGVhZGVyKGYsZyk7dGhpcy5EaCYmKHRoaXMucWgucmVzcG9uc2VUeXBlPXRoaXMuRGgpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5xaCYmdGhpcy5xaC53aXRoQ3JlZGVudGlhbHMhPT0KdGhpcy55aCYmKHRoaXMucWgud2l0aENyZWRlbnRpYWxzPXRoaXMueWgpO3RyeXt0aGlzLnRoJiYoY2xlYXJUaW1lb3V0KHRoaXMudGgpLHRoaXMudGg9bnVsbCksdGhpcy5CaD4wJiYodGhpcy5nZXRTdGF0dXMoKSx0aGlzLnRoPXNldFRpbWVvdXQodGhpcy50di5iaW5kKHRoaXMpLHRoaXMuQmgpKSx0aGlzLmdldFN0YXR1cygpLHRoaXMuQ2g9ITAsdGhpcy5xaC5zZW5kKGEpLHRoaXMuQ2g9ITF9Y2F0Y2goZil7dGhpcy5nZXRTdGF0dXMoKSxCYmEodGhpcyxmKX19O18uYWEudHY9ZnVuY3Rpb24oKXt0eXBlb2YgTWshPSJ1bmRlZmluZWQiJiZ0aGlzLnFoJiYodGhpcy54aD0iVGltZWQgb3V0IGFmdGVyICIrdGhpcy5CaCsibXMsIGFib3J0aW5nIix0aGlzLnNoPTgsdGhpcy5nZXRTdGF0dXMoKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpbWVvdXQiKSx0aGlzLmFib3J0KDgpKX07Cl8uYWEuYWJvcnQ9ZnVuY3Rpb24oYSl7dGhpcy5xaCYmdGhpcy5yaCYmKHRoaXMuZ2V0U3RhdHVzKCksdGhpcy5yaD0hMSx0aGlzLndoPSEwLHRoaXMucWguYWJvcnQoKSx0aGlzLndoPSExLHRoaXMuc2g9YXx8Nyx0aGlzLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksdGhpcy5kaXNwYXRjaEV2ZW50KCJhYm9ydCIpLExrKHRoaXMpKX07Xy5hYS5Caz1mdW5jdGlvbigpe3RoaXMucWgmJih0aGlzLnJoJiYodGhpcy5yaD0hMSx0aGlzLndoPSEwLHRoaXMucWguYWJvcnQoKSx0aGlzLndoPSExKSxMayh0aGlzLCEwKSk7Xy5Lay5pci5Cay5jYWxsKHRoaXMpfTtfLmFhLllJPWZ1bmN0aW9uKCl7dGhpcy56aCgpfHwodGhpcy5HaHx8dGhpcy5DaHx8dGhpcy53aD9DYmEodGhpcyk6dGhpcy5RTygpKX07Xy5hYS5RTz1mdW5jdGlvbigpe0NiYSh0aGlzKX07Xy5hYS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5xaH07Cl8uYWEuTW09ZnVuY3Rpb24oKXtyZXR1cm4gXy5Oayh0aGlzKT09NH07Xy5hYS5nZXRTdGF0dXM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIF8uTmsodGhpcyk+Mj90aGlzLnFoLnN0YXR1czotMX1jYXRjaChhKXtyZXR1cm4tMX19O18uYWEuUnI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHRoaXMucWg/dGhpcy5xaC5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goYSl7cmV0dXJuIiJ9fTtfLmFhLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnFoJiZfLk5rKHRoaXMpPj0yP3RoaXMucWguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiOiIifTt2YXIgR2JhPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLlhFPWE7dGhpcy5PST1iO3RoaXMubWV0YWRhdGE9Y31nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfX07dmFyIEliYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9e30pe3RoaXMucFA9YTt0aGlzLm1ldGFkYXRhPWI7dGhpcy5zdGF0dXM9bnVsbH1nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfWdldFN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c319O18uUXI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5uYW1lPWE7dGhpcy5Bdz1iO3RoaXMucmg9Yzt0aGlzLnFoPWR9Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9fTt2YXIgZmNhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5yaD1bXTt0aGlzLnRoPVtdO3RoaXMud2g9W107dGhpcy5zaD1bXTt0aGlzLnFoPVtdO3RoaXMueGg9YS56Tzt0aGlzLnpoPWI7dGhpcy5UaT1hLlRpO3RoaXMueGgmJk1iYSh0aGlzKX1ycChhLGIpe2E9PT0iZGF0YSI/dGhpcy5yaC5wdXNoKGIpOmE9PT0ibWV0YWRhdGEiP3RoaXMudGgucHVzaChiKTphPT09InN0YXR1cyI/dGhpcy53aC5wdXNoKGIpOmE9PT0iZW5kIj90aGlzLnNoLnB1c2goYik6YT09PSJlcnJvciImJnRoaXMucWgucHVzaChiKX1yZW1vdmVMaXN0ZW5lcihhLGIpe2E9PT0iZGF0YSI/VmsodGhpcy5yaCxiKTphPT09Im1ldGFkYXRhIj9Wayh0aGlzLnRoLGIpOmE9PT0ic3RhdHVzIj9Wayh0aGlzLndoLGIpOmE9PT0iZW5kIj9Wayh0aGlzLnNoLGIpOmE9PT0iZXJyb3IiJiZWayh0aGlzLnFoLGIpO3JldHVybiB0aGlzfWNhbmNlbCgpe3RoaXMuVGkuYWJvcnQoKX19LFBiYT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKTsKdGhpcy5uYW1lPSJBc3luY1N0YWNrIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTtfLnFiKFdrLHpiYSk7V2sucHJvdG90eXBlLnFoPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYayh0aGlzLnNoLHRoaXMucmgpfTtfLnFiKFhrLF8uR2spO18uYWE9WGsucHJvdG90eXBlO18uYWEub3Blbj1mdW5jdGlvbihhLGIpe2lmKHRoaXMucmVhZHlTdGF0ZSE9MCl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIkVycm9yIHJlb3BlbmluZyBhIGNvbm5lY3Rpb24iKTt0aGlzLkRoPWE7dGhpcy50aD1iO3RoaXMucmVhZHlTdGF0ZT0xO1lrKHRoaXMpfTsKXy5hYS5zZW5kPWZ1bmN0aW9uKGEpe2lmKHRoaXMucmVhZHlTdGF0ZSE9MSl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIm5lZWQgdG8gY2FsbCBvcGVuKCkgZmlyc3QuICIpO2lmKHRoaXMuQmguc2lnbmFsLmFib3J0ZWQpdGhyb3cgdGhpcy5hYm9ydCgpLEVycm9yKCJSZXF1ZXN0IHdhcyBhYm9ydGVkLiIpO3RoaXMucWg9ITA7dmFyIGI9e2hlYWRlcnM6dGhpcy5DaCxtZXRob2Q6dGhpcy5EaCxjcmVkZW50aWFsczp0aGlzLnhoLGNhY2hlOnZvaWQgMCxzaWduYWw6dGhpcy5CaC5zaWduYWx9O2EmJihiLmJvZHk9YSk7KHRoaXMuRmh8fF8uVWEpLmZldGNoKG5ldyBSZXF1ZXN0KHRoaXMudGgsYikpLnRoZW4odGhpcy5xTi5iaW5kKHRoaXMpLHRoaXMuVkEuYmluZCh0aGlzKSl9OwpfLmFhLmFib3J0PWZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIjt0aGlzLkNoPW5ldyBIZWFkZXJzO3RoaXMuc3RhdHVzPTA7dGhpcy5CaC5hYm9ydCgiUmVxdWVzdCB3YXMgYWJvcnRlZC4iKTt0aGlzLnNoJiZ0aGlzLnNoLmNhbmNlbCgiUmVxdWVzdCB3YXMgYWJvcnRlZC4iKS5jYXRjaCgoKT0+e30pO3RoaXMucmVhZHlTdGF0ZT49MSYmdGhpcy5xaCYmdGhpcy5yZWFkeVN0YXRlIT00JiYodGhpcy5xaD0hMSxaayh0aGlzKSk7dGhpcy5yZWFkeVN0YXRlPTB9OwpfLmFhLnFOPWZ1bmN0aW9uKGEpe2lmKHRoaXMucWgmJih0aGlzLndoPWEsdGhpcy5yaHx8KHRoaXMuc3RhdHVzPXRoaXMud2guc3RhdHVzLHRoaXMuc3RhdHVzVGV4dD10aGlzLndoLnN0YXR1c1RleHQsdGhpcy5yaD1hLmhlYWRlcnMsdGhpcy5yZWFkeVN0YXRlPTIsWWsodGhpcykpLHRoaXMucWgmJih0aGlzLnJlYWR5U3RhdGU9MyxZayh0aGlzKSx0aGlzLnFoKSkpaWYodGhpcy5yZXNwb25zZVR5cGU9PT0iYXJyYXlidWZmZXIiKWEuYXJyYXlCdWZmZXIoKS50aGVuKHRoaXMub04uYmluZCh0aGlzKSx0aGlzLlZBLmJpbmQodGhpcykpO2Vsc2UgaWYodHlwZW9mIF8uVWEuUmVhZGFibGVTdHJlYW0hPT0idW5kZWZpbmVkIiYmImJvZHkiaW4gYSl7dGhpcy5zaD1hLmJvZHkuZ2V0UmVhZGVyKCk7aWYodGhpcy55aCl7aWYodGhpcy5yZXNwb25zZVR5cGUpdGhyb3cgRXJyb3IoJ3Jlc3BvbnNlVHlwZSBtdXN0IGJlIGVtcHR5IGZvciAic3RyZWFtQmluYXJ5Q2h1bmtzIiBtb2RlIHJlc3BvbnNlcy4nKTsKdGhpcy5yZXNwb25zZT1bXX1lbHNlIHRoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQ9IiIsdGhpcy5BaD1uZXcgVGV4dERlY29kZXI7UmJhKHRoaXMpfWVsc2UgYS50ZXh0KCkudGhlbih0aGlzLnBOLmJpbmQodGhpcyksdGhpcy5WQS5iaW5kKHRoaXMpKX07Xy5hYS5uTj1mdW5jdGlvbihhKXtpZih0aGlzLnFoKXtpZih0aGlzLnloJiZhLnZhbHVlKXRoaXMucmVzcG9uc2UucHVzaChhLnZhbHVlKTtlbHNlIGlmKCF0aGlzLnloKXt2YXIgYj1hLnZhbHVlP2EudmFsdWU6bmV3IFVpbnQ4QXJyYXkoMCk7aWYoYj10aGlzLkFoLmRlY29kZShiLHtzdHJlYW06IWEuZG9uZX0pKXRoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQrPWJ9YS5kb25lP1prKHRoaXMpOllrKHRoaXMpO3RoaXMucmVhZHlTdGF0ZT09MyYmUmJhKHRoaXMpfX07Xy5hYS5wTj1mdW5jdGlvbihhKXt0aGlzLnFoJiYodGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD1hLFprKHRoaXMpKX07Cl8uYWEub049ZnVuY3Rpb24oYSl7dGhpcy5xaCYmKHRoaXMucmVzcG9uc2U9YSxaayh0aGlzKSl9O18uYWEuVkE9ZnVuY3Rpb24oKXt0aGlzLnFoJiZaayh0aGlzKX07Xy5hYS5zZXRSZXF1ZXN0SGVhZGVyPWZ1bmN0aW9uKGEsYil7dGhpcy5DaC5hcHBlbmQoYSxiKX07Xy5hYS5nZXRSZXNwb25zZUhlYWRlcj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yaD90aGlzLnJoLmdldChhLnRvTG93ZXJDYXNlKCkpfHwiIjoiIn07Xy5hYS5nZXRBbGxSZXNwb25zZUhlYWRlcnM9ZnVuY3Rpb24oKXtpZighdGhpcy5yaClyZXR1cm4iIjtmb3IodmFyIGE9W10sYj10aGlzLnJoLmVudHJpZXMoKSxjPWIubmV4dCgpOyFjLmRvbmU7KWM9Yy52YWx1ZSxhLnB1c2goY1swXSsiOiAiK2NbMV0pLGM9Yi5uZXh0KCk7cmV0dXJuIGEuam9pbigiXHJcbiIpfTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KFhrLnByb3RvdHlwZSwid2l0aENyZWRlbnRpYWxzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGg9PT0iaW5jbHVkZSJ9LHNldDpmdW5jdGlvbihhKXt0aGlzLnhoPWE/ImluY2x1ZGUiOiJzYW1lLW9yaWdpbiJ9fSk7Xy5xYihfLiRrLF8ubWspO3ZhciBTYmE9W107Xy4kay5wcm90b3R5cGUuQms9ZnVuY3Rpb24oKXtfLiRrLmlyLkJrLmNhbGwodGhpcyk7Xy5ibCh0aGlzKX07Xy4kay5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRXZlbnRIYW5kbGVyLmhhbmRsZUV2ZW50IG5vdCBpbXBsZW1lbnRlZCIpO307dmFyIFViYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9ITA7dGhpcy5yaD0wO3RoaXMucWg9IiJ9fTtjbC5wcm90b3R5cGUuQmg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07CmNsLnByb3RvdHlwZS5zaD1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGspe2smMTI4JiZkbChmLGcsaCwiaW52YWxpZCB0YWciKTsoayY3KSE9MiYmZGwoZixnLGgsImludmFsaWQgd2lyZSB0eXBlIik7Zi50aD1rPj4+MztmLnRoIT0xJiZmLnRoIT0yJiZmLnRoIT0xNSYmZGwoZixnLGgsInVuZXhwZWN0ZWQgdGFnIik7Zi5yaD0xO2YucWg9MDtmLndoPTB9ZnVuY3Rpb24gYyhrKXtmLndoKys7Zi53aD09NSYmayYyNDAmJmRsKGYsZyxoLCJtZXNzYWdlIGxlbmd0aCB0b28gbG9uZyIpO2YucWh8PShrJjEyNyk8PChmLndoLTEpKjc7ayYxMjh8fChmLnJoPTIsZi55aD0wLHR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCI/Zi54aD1uZXcgVWludDhBcnJheShmLnFoKTpmLnhoPUFycmF5KGYucWgpLGYucWg9PTAmJmUoKSl9ZnVuY3Rpb24gZChrKXtmLnhoW2YueWgrK109aztmLnloPT1mLnFoJiZlKCl9ZnVuY3Rpb24gZSgpe2lmKGYudGg8MTUpe2xldCBrPXt9O2tbZi50aF09Zi54aDsKZi56aC5wdXNoKGspfWYucmg9MH1mb3IodmFyIGY9dGhpcyxnPWEgaW5zdGFuY2VvZiBBcnJheT9hOm5ldyBVaW50OEFycmF5KGEpLGg9MDtoPGcubGVuZ3RoOyl7c3dpdGNoKGYucmgpe2Nhc2UgMzpkbChmLGcsaCwic3RyZWFtIGFscmVhZHkgYnJva2VuIik7YnJlYWs7Y2FzZSAwOmIoZ1toXSk7YnJlYWs7Y2FzZSAxOmMoZ1toXSk7YnJlYWs7Y2FzZSAyOmQoZ1toXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigidW5leHBlY3RlZCBwYXJzZXIgc3RhdGU6ICIrZi5yaCk7fWYuQ2grKztoKyt9YT1mLnpoO2Yuemg9W107cmV0dXJuIGEubGVuZ3RoPjA/YTpudWxsfTtlbC5wcm90b3R5cGUuQmg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07ZWwucHJvdG90eXBlLnNoPWZ1bmN0aW9uKGEpe3RoaXMucWghPT1udWxsJiZWYmEodGhpcyxhLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTt2YXIgYj1udWxsO3RyeXt7dmFyIGM9dGhpcy50aDtjLnNofHxUYmEoYyxhLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTtjLnFoKz1hO2xldCBmPU1hdGguZmxvb3IoYy5xaC5sZW5ndGgvNCk7aWYoZj09MCl2YXIgZD1udWxsO2Vsc2V7dHJ5e3ZhciBlPV8uV2MoYy5xaC5zbGljZSgwLGYqNCkpfWNhdGNoKGcpe1RiYShjLGMucWgsZy5tZXNzYWdlKX1jLnJoKz1mKjQ7Yy5xaD1jLnFoLnNsaWNlKGYqNCk7ZD1lfX1iPWQ9PT1udWxsP251bGw6dGhpcy53aC5zaChkKX1jYXRjaChmKXtWYmEodGhpcyxhLGYubWVzc2FnZSl9dGhpcy5yaCs9YS5sZW5ndGg7cmV0dXJuIGJ9O2dsLnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueWg9PT0yfTtnbC5wcm90b3R5cGUuQmg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07CmdsLnByb3RvdHlwZS5zaD1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7Zm9yKDtxPGEubGVuZ3RoOylpZihmbChhW3FdKSlxKyssZi50aCsrO2Vsc2UgYnJlYWs7cmV0dXJuIHE8a31mdW5jdGlvbiBjKCl7Zm9yKHZhciB4Ozspe3g9YVtxKytdO2lmKCF4KWJyZWFrO2YudGgrKztzd2l0Y2goZi5xaCl7Y2FzZSAwOng9PT0ieyI/Zi5xaD0yOng9PT0iWyI/Zi5xaD00OmZsKHgpfHxobChmLGEscSk7Y29udGludWU7Y2FzZSA3OmNhc2UgMjppZihmbCh4KSljb250aW51ZTtpZihmLnFoPT09NylnLnB1c2goOCk7ZWxzZSBpZih4PT09In0iKXtlKCJ7fSIpO2YucWg9ZCgpO2NvbnRpbnVlfWVsc2UgZy5wdXNoKDMpO3g9PT0nIic/Zi5xaD02OmhsKGYsYSxxKTtjb250aW51ZTtjYXNlIDg6Y2FzZSAzOmlmKGZsKHgpKWNvbnRpbnVlO3g9PT0iOiI/KGYucWg9PT0zJiYoZy5wdXNoKDMpLGYucmgrKyksZi5xaD0xKTp4PT09In0iPyhmLnJoLS0sZSgpLGYucWg9ZCgpKTp4PT09IiwiPyhmLnFoPT09CjMmJmcucHVzaCgzKSxmLnFoPTcpOmhsKGYsYSxxKTtjb250aW51ZTtjYXNlIDQ6Y2FzZSAxOmlmKGZsKHgpKWNvbnRpbnVlO2lmKGYucWg9PT00KWlmKGYucmgrKyxmLnFoPTEseD09PSJdIil7Zi5yaC0tO2lmKGYucmg9PT0wKXtmLnFoPTU7cmV0dXJufWUoIltdIik7Zi5xaD1kKCk7Y29udGludWV9ZWxzZSBnLnB1c2goNSk7eD09PSciJz9mLnFoPTY6eD09PSJ7Ij9mLnFoPTI6eD09PSJbIj9mLnFoPTQ6eD09PSJ0Ij9mLnFoPTk6eD09PSJmIj9mLnFoPTEyOng9PT0ibiI/Zi5xaD0xNjp4IT09Ii0iJiYoIjAxMjM0NTY3ODkiLmluZGV4T2YoeCkhPT0tMT9mLnFoPTIwOmhsKGYsYSxxKSk7Y29udGludWU7Y2FzZSA1OmlmKHg9PT0iLCIpZy5wdXNoKDUpLGYucWg9MSxmLnJoPT09MSYmKHA9cSk7ZWxzZSBpZih4PT09Il0iKXtmLnJoLS07aWYoZi5yaD09PTApcmV0dXJuO2UoKTtmLnFoPWQoKX1lbHNlIGlmKGZsKHgpKWNvbnRpbnVlO2Vsc2UgaGwoZixhLHEpO2NvbnRpbnVlO2Nhc2UgNjpsZXQgej0KcTthOmZvcig7Oyl7Zm9yKDtmLkFoPjA7KWlmKHg9YVtxKytdLGYuQWg9PT00P2YuQWg9MDpmLkFoKyssIXgpYnJlYWsgYTtpZih4PT09JyInJiYhZi56aCl7Zi5xaD1kKCk7YnJlYWt9aWYoeD09PSJcXCImJiFmLnpoJiYoZi56aD0hMCx4PWFbcSsrXSwheCkpYnJlYWs7aWYoZi56aClpZihmLnpoPSExLHg9PT0idSImJihmLkFoPTEpLHg9YVtxKytdKWNvbnRpbnVlO2Vsc2UgYnJlYWs7aC5sYXN0SW5kZXg9cTt4PWguZXhlYyhhKTtpZigheCl7cT1hLmxlbmd0aCsxO2JyZWFrfXE9eC5pbmRleCsxO3g9YVt4LmluZGV4XTtpZigheClicmVha31mLnRoKz1xLXo7Y29udGludWU7Y2FzZSA5OmlmKCF4KWNvbnRpbnVlO3g9PT0iciI/Zi5xaD0xMDpobChmLGEscSk7Y29udGludWU7Y2FzZSAxMDppZigheCljb250aW51ZTt4PT09InUiP2YucWg9MTE6aGwoZixhLHEpO2NvbnRpbnVlO2Nhc2UgMTE6aWYoIXgpY29udGludWU7eD09PSJlIj9mLnFoPWQoKTpobChmLGEscSk7Y29udGludWU7CmNhc2UgMTI6aWYoIXgpY29udGludWU7eD09PSJhIj9mLnFoPTEzOmhsKGYsYSxxKTtjb250aW51ZTtjYXNlIDEzOmlmKCF4KWNvbnRpbnVlO3g9PT0ibCI/Zi5xaD0xNDpobChmLGEscSk7Y29udGludWU7Y2FzZSAxNDppZigheCljb250aW51ZTt4PT09InMiP2YucWg9MTU6aGwoZixhLHEpO2NvbnRpbnVlO2Nhc2UgMTU6aWYoIXgpY29udGludWU7eD09PSJlIj9mLnFoPWQoKTpobChmLGEscSk7Y29udGludWU7Y2FzZSAxNjppZigheCljb250aW51ZTt4PT09InUiP2YucWg9MTc6aGwoZixhLHEpO2NvbnRpbnVlO2Nhc2UgMTc6aWYoIXgpY29udGludWU7eD09PSJsIj9mLnFoPTE4OmhsKGYsYSxxKTtjb250aW51ZTtjYXNlIDE4OmlmKCF4KWNvbnRpbnVlO3g9PT0ibCI/Zi5xaD1kKCk6aGwoZixhLHEpO2NvbnRpbnVlO2Nhc2UgMTk6eD09PSIuIj9mLnFoPTIwOmhsKGYsYSxxKTtjb250aW51ZTtjYXNlIDIwOmlmKCIwMTIzNDU2Nzg5LmVFKy0iLmluZGV4T2YoeCkhPT0tMSljb250aW51ZTsKZWxzZSBxLS0sZi50aC0tLGYucWg9ZCgpO2NvbnRpbnVlO2RlZmF1bHQ6aGwoZixhLHEpfX19ZnVuY3Rpb24gZCgpe3ZhciB4PWcucG9wKCk7cmV0dXJuIHghPW51bGw/eDoxfWZ1bmN0aW9uIGUoeCl7Zi5yaD4xfHwoeHx8KHg9cD09PS0xP2Yud2grYS5zdWJzdHJpbmcobSxxKTphLnN1YnN0cmluZyhwLHEpKSxmLkRoP2YueGgucHVzaCh4KTpmLnhoLnB1c2goSlNPTi5wYXJzZSh4KSkscD1xKX1mb3IodmFyIGY9dGhpcyxnPWYuRmgsaD1mLkdoLGs9YS5sZW5ndGgsbT0wLHA9LTEscT0wO3E8azspc3dpdGNoKGYueWgpe2Nhc2UgMzpyZXR1cm4gaGwoZixhLHEpLG51bGw7Y2FzZSAyOnJldHVybiBiKCkmJmhsKGYsYSxxKSxudWxsO2Nhc2UgMDppZihiKCkpe3ZhciB1PWFbcSsrXTtmLnRoKys7aWYodT09PSJbIil7Zi55aD0xO209cTtmLnFoPTQ7Y29udGludWV9ZWxzZSBobChmLGEscSl9cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiBjKCksZi5yaD09PTAmJmYucWg9PTU/KGYueWg9CjIsZi53aD1hLnN1YnN0cmluZyhxKSk6Zi53aD1wPT09LTE/Zi53aCthLnN1YnN0cmluZyhtKTphLnN1YnN0cmluZyhwKSxmLnhoLmxlbmd0aD4wPyh1PWYueGgsZi54aD1bXSx1KTpudWxsfXJldHVybiBudWxsfTtpbC5wcm90b3R5cGUuQmg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07CmlsLnByb3RvdHlwZS5zaD1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGspe2Yucmg9NjtmLnhoPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIitmLnFoKyIvIitnKyIuIEVycm9yOiAiK2srIi4gV2l0aCBpbnB1dDpcbiI7dGhyb3cgRXJyb3IoZi54aCk7fWZ1bmN0aW9uIGMoKXtmLnRoPW5ldyBnbCh7cVM6ITAsak06ITB9KX1mdW5jdGlvbiBkKGspe2lmKGspZm9yKGxldCBtPTA7bTxrLmxlbmd0aDttKyspe2xldCBwPXt9O3BbMV09a1ttXTtmLndoLnB1c2gocCl9fWZ1bmN0aW9uIGUoayl7aWYoayl7KGYuemh8fGsubGVuZ3RoPjEpJiZiKCJleHRyYSBzdGF0dXM6ICIrayk7Zi56aD0hMDtsZXQgbT17fTttWzJdPWtbMF07Zi53aC5wdXNoKG0pfX1mb3IodmFyIGY9dGhpcyxnPTA7ZzxhLmxlbmd0aDspe3ZhciBoO2lmKGg9Zi5yaCE9PTIpe2E6e2Zvcig7ZzxhLmxlbmd0aDspe2lmKCFmbChhW2ddKSl7aD0hMDticmVhayBhfWcrKztmLnFoKyt9aD0hMX1oPSFofWlmKGgpcmV0dXJuIG51bGw7CnN3aXRjaChmLnJoKXtjYXNlIDY6Yigic3RyZWFtIGFscmVhZHkgYnJva2VuIik7YnJlYWs7Y2FzZSAwOmFbZ109PT0iWyI/KGYucmg9MSxnKyssZi5xaCsrKTpiKCJ1bmV4cGVjdGVkIGlucHV0IHRva2VuIik7YnJlYWs7Y2FzZSAxOmFbZ109PT0iWyI/KGYucmg9MixjKCkpOmFbZ109PT0iLCJ8fGEuc2xpY2UoZyxnKzUpPT0ibnVsbCwiP2Yucmg9MzphW2ddPT09Il0iPyhmLnJoPTUsZysrLGYucWgrKyk6YigidW5leHBlY3RlZCBpbnB1dCB0b2tlbiIpO2JyZWFrO2Nhc2UgMjpoPWYudGguc2goYS5zdWJzdHJpbmcoZykpO2QoaCk7Zi50aC5kb25lKCk/KGYucmg9MyxoPWYudGgud2gsZi5xaCs9YS5sZW5ndGgtZy1oLmxlbmd0aCxhPWgsZz0wKTooZi5xaCs9YS5sZW5ndGgtZyxnPWEubGVuZ3RoKTticmVhaztjYXNlIDM6YVtnXT09PSIsInx8YS5zbGljZShnLGcrNSk9PSJudWxsLCI/KGYucmg9NCxjKCksZi50aC5zaCgiWyIpLGcrPWFbZ109PT0iLCI/MTo1LGYucWgrKyk6YVtnXT09PQoiXSImJihmLnJoPTUsZysrLGYucWgrKyk7YnJlYWs7Y2FzZSA0Omg9Zi50aC5zaChhLnN1YnN0cmluZyhnKSk7ZShoKTtmLnRoLmRvbmUoKT8oZi5yaD01LGg9Zi50aC53aCxmLnFoKz1hLmxlbmd0aC1nLWgubGVuZ3RoLGE9aCxnPTApOihmLnFoKz1hLmxlbmd0aC1nLGc9YS5sZW5ndGgpO2JyZWFrO2Nhc2UgNTpiKCJleHRyYSBpbnB1dCBhZnRlciBzdHJlYW0gZW5kIil9fXJldHVybiBmLndoLmxlbmd0aD4wPyhhPWYud2gsZi53aD1bXSxhKTpudWxsfTt2YXIgZGNhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YTt0aGlzLnJoPW51bGw7dGhpcy53aD10aGlzLnNoPTA7dGhpcy5BaD0hMTt0aGlzLnRoPXRoaXMuemg9dGhpcy54aD1udWxsO3RoaXMueWg9bmV3IF8uJGsodGhpcyk7Xy5hbCh0aGlzLnloLHRoaXMucWgsInJlYWR5c3RhdGVjaGFuZ2UiLHRoaXMuQmgpfWdldFN0YXR1cygpe3JldHVybiB0aGlzLndofUJoKGEpe2E9YS50YXJnZXQ7dHJ5e2lmKGE9PXRoaXMucWgpYTp7bGV0IGY9Xy5Oayh0aGlzLnFoKTt2YXIgYj10aGlzLnFoLnNoLGM9dGhpcy5xaC5nZXRTdGF0dXMoKTtsZXQgZz10aGlzLnFoLlJyKCk7YT1bXTtpZihfLlBrKHRoaXMucWgpaW5zdGFuY2VvZiBBcnJheSl7bGV0IGg9Xy5Qayh0aGlzLnFoKTtoLmxlbmd0aD4wJiZoWzBdaW5zdGFuY2VvZiBVaW50OEFycmF5JiYodGhpcy5BaD0hMCxhPWgpfWlmKCEoZjwzfHxmPT0zJiYhZyYmYS5sZW5ndGg9PTApKWlmKGM9Yz09MjAwfHxjPT0yMDYsZj09NCYmKGI9PQo4P2psKHRoaXMsNyk6Yj09Nz9qbCh0aGlzLDgpOmN8fGpsKHRoaXMsMykpLHRoaXMucmh8fCh0aGlzLnJoPVdiYSh0aGlzLnFoKSx0aGlzLnJoPT1udWxsJiZqbCh0aGlzLDUpKSx0aGlzLndoPjIpa2wodGhpcyk7ZWxzZXtpZihhLmxlbmd0aD50aGlzLnNoKXtsZXQgaD1hLmxlbmd0aDtiPVtdO3RyeXtpZih0aGlzLnJoLkJoKCkpZm9yKHZhciBkPTA7ZDxoO2QrKyl7dmFyIGU9dGhpcy5yaC5zaChBcnJheS5mcm9tKGFbZF0pKTtlJiYoYj1iLmNvbmNhdChlKSl9ZWxzZXtlPSIiO2lmKCF0aGlzLnhoKXtpZih0eXBlb2YgVGV4dERlY29kZXI9PT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcigiVGV4dERlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIik7dGhpcy54aD1uZXcgVGV4dERlY29kZXJ9Zm9yKGQ9MDtkPGg7ZCsrKWUrPXRoaXMueGguZGVjb2RlKGFbZF0se3N0cmVhbTpmPT00JiZkPT1oLTF9KTtiPXRoaXMucmguc2goZSl9YS5zcGxpY2UoMCxoKTtiJiYKdGhpcy50aChiKX1jYXRjaChrKXtqbCh0aGlzLDUpO2tsKHRoaXMpO2JyZWFrIGF9fWVsc2UgaWYoZy5sZW5ndGg+dGhpcy5zaCl7ZD1nLnNsaWNlKHRoaXMuc2gpO3RoaXMuc2g9Zy5sZW5ndGg7dHJ5e2xldCBoPXRoaXMucmguc2goZCk7aCE9bnVsbCYmdGhpcy50aCYmdGhpcy50aChoKX1jYXRjaChoKXtqbCh0aGlzLDUpO2tsKHRoaXMpO2JyZWFrIGF9fWY9PTQ/KGcubGVuZ3RoIT0wfHx0aGlzLkFoP2psKHRoaXMsMik6amwodGhpcyw0KSxrbCh0aGlzKSk6amwodGhpcywxKX19fWNhdGNoKGYpe2psKHRoaXMsNiksa2wodGhpcyl9fX07dmFyIGVjYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXthPXRoaXMuc2g9YTt2YXIgYj0oMCxfLmliKSh0aGlzLnRoLHRoaXMpO2EudGg9YjthPXRoaXMuc2g7Yj0oMCxfLmliKSh0aGlzLndoLHRoaXMpO2Euemg9Yjt0aGlzLnJoPXt9O3RoaXMucWg9e319cnAoYSxiKXt2YXIgYz10aGlzLnJoW2FdO2N8fChjPVtdLHRoaXMucmhbYV09Yyk7Yy5wdXNoKGIpfWFkZExpc3RlbmVyKGEsYil7dGhpcy5ycChhLGIpO3JldHVybiB0aGlzfXJlbW92ZUxpc3RlbmVyKGEsYil7dmFyIGM9dGhpcy5yaFthXTtjJiZfLnljKGMsYik7KGE9dGhpcy5xaFthXSkmJl8ueWMoYSxiKTtyZXR1cm4gdGhpc31vbmNlKGEsYil7dmFyIGM9dGhpcy5xaFthXTtjfHwoYz1bXSx0aGlzLnFoW2FdPWMpO2MucHVzaChiKTtyZXR1cm4gdGhpc310aChhKXt2YXIgYj10aGlzLnJoLmRhdGE7YiYmWGJhKGEsYik7KGI9dGhpcy5xaC5kYXRhKSYmWGJhKGEsYik7dGhpcy5xaC5kYXRhPVtdfXdoKCl7c3dpdGNoKHRoaXMuc2guZ2V0U3RhdHVzKCkpe2Nhc2UgMTpsbCh0aGlzLAoicmVhZGFibGUiKTticmVhaztjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDc6Y2FzZSAzOmxsKHRoaXMsImVycm9yIik7YnJlYWs7Y2FzZSA4OmxsKHRoaXMsImNsb3NlIik7YnJlYWs7Y2FzZSAyOmxsKHRoaXMsImVuZCIpfX19O18uUnI9Y2xhc3N7Y29uc3RydWN0b3IoYT17fSl7dGhpcy54Rj1hLnhGfHxSYSgic3VwcHJlc3NDb3JzUHJlZmxpZ2h0IixhKXx8ITE7dGhpcy53aXRoQ3JlZGVudGlhbHM9YS53aXRoQ3JlZGVudGlhbHN8fFJhKCJ3aXRoQ3JlZGVudGlhbHMiLGEpfHwhMTt0aGlzLnZGPWEudkZ8fFtdO3RoaXMuSEY9YS5IRnx8W107dGhpcy5URj1hLlRGO3RoaXMuc2g9YS5XVHx8ITF9dGgoYSxiLGMsZCxlPXt9KXt2YXIgZj1hLnN1YnN0cmluZygwLGEubGVuZ3RoLWQubmFtZS5sZW5ndGgpLGc9ZT8uc2lnbmFsO3JldHVybiBZYmEoaD0+bmV3IFByb21pc2UoKGssbSk9PntpZihnPy5hYm9ydGVkKXtsZXQgdT1uZXcgXy5SaygxLCJBYm9ydGVkIik7dS5jYXVzZT1nLnJlYXNvbjttKHUpfWVsc2V7dmFyIHA9e30scT1iY2EodGhpcyxoLGYpO3EucnAoImVycm9yIix1PT52b2lkIG0odSkpO3EucnAoIm1ldGFkYXRhIix1PT57cD11fSk7cS5ycCgiZGF0YSIsdT0+e2soSmJhKHUscCkpfSk7ZyYmZy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsCigpPT57cS5jYW5jZWwoKTt2YXIgdT1uZXcgXy5SaygxLCJBYm9ydGVkIik7dS5jYXVzZT1nLnJlYXNvbjttKHUpfSl9fSksdGhpcy5IRikuY2FsbCh0aGlzLF8uSGJhKGQsYixjKSkudGhlbihoPT5oLnBQKX1xaChhLGIsYyxkLGU9e30pe3JldHVybiB0aGlzLnRoKGEsYixjLGQsZSl9fTtfLlJyLnByb3RvdHlwZS5yaD1fLmhhKDcpO18uVWdhPUV2ZW50O18uU3I9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9cmgoKXtyZXR1cm4gXy5IKHRoaXMsMSl9dGgoKXtyZXR1cm4gXy5IKHRoaXMsMil9eGgoKXtyZXR1cm4gXy5KZyh0aGlzLDIxKX19O18uU3IucHJvdG90eXBlLnBsPV8uaGEoMTMpO18uU3IucHJvdG90eXBlLmtqPV8uaGEoOCk7dmFyIGljYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1yaCgpe3JldHVybiBfLkgodGhpcywyKX19O3ZhciBkZ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLm5xPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFN0YXR1cygpe3JldHVybiBfLlBnKHRoaXMsMSl9fTtfLm5xLnByb3RvdHlwZS5yaD1fLmhhKDE0KTt2YXIgYmdhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXJoKCl7cmV0dXJuIF8uRyh0aGlzLF8uU3IsMyl9Q2goKXtyZXR1cm4gXy5BZyh0aGlzLGljYSw0KX14aCgpe3JldHVybiBfLkgodGhpcyw3KX15aCgpe3JldHVybiBfLkgodGhpcywxNCl9dGgoKXtyZXR1cm4gXy5IKHRoaXMsMTcpfUJoKCl7cmV0dXJuIF8uSmcodGhpcyw1MSl9emgoKXtyZXR1cm4gXy5qZyh0aGlzLDUyLF8uWWUsMSx2b2lkIDAsMTAyNCl9fTt2YXIgU2ZhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIFJmYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBWZ2E9WzAsXy5aLC0xLF8uVSwtMixfLkFyLFswLF8udnJdLFswLF8uVSwtNF0sWzAsXy5aXSxfLlosWzAsXy5VLF8uR3IsXy5SXSxfLlUsXy53cl07Xy5Ucj17fTt2YXIgVGZhPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9bmV3IF8uS2dhO18ud2koYi5MaSxjLF8udGkoYSkpO3JldHVybiBfLklkKF8uYWkoYykpfX0oVmdhKTtfLlRyWzUyNTAwNDE4MF09VmdhO3ZhciBqY2E9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7Xy5Vcj17Uk9BRE1BUDoicm9hZG1hcCIsU0FURUxMSVRFOiJzYXRlbGxpdGUiLEhZQlJJRDoiaHlicmlkIixURVJSQUlOOiJ0ZXJyYWluIn07dmFyIGdyO2dyPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKGAke2J9OiAke2N9OiAke2F9YCk7dGhpcy5lbmRwb2ludD1iO3RoaXMuY29kZT1jO3RoaXMubmFtZT0iTWFwc05ldHdvcmtFcnJvciJ9fTtfLmpyPWNsYXNzIGV4dGVuZHMgZ3J7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKGEsYixjKTt0aGlzLm5hbWU9Ik1hcHNTZXJ2ZXJFcnJvciJ9fTtfLmlyPWNsYXNzIGV4dGVuZHMgZ3J7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKGEsYixjKTt0aGlzLm5hbWU9Ik1hcHNSZXF1ZXN0RXJyb3IifX07dmFyIGxjYT17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixub25jZToibm9uY2UiLHJvbGU6InJvbGUiLHJvd3NwYW46InJvd1NwYW4iLHR5cGU6InR5cGUiLHVzZW1hcDoidXNlTWFwIix2YWxpZ246InZBbGlnbiIsd2lkdGg6IndpZHRoIn07Xy5hYT1fLkJsLnByb3RvdHlwZTtfLmFhLm5rPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucWg7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/Yi5nZXRFbGVtZW50QnlJZChhKTphfTtfLmFhLiQ9Xy5CbC5wcm90b3R5cGUubms7Xy5hYS5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLnFoKS5nZXRFbGVtZW50c0J5VGFnTmFtZShTdHJpbmcoYSkpfTsKXy5hYS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVybiB2bCh0aGlzLnFoLGEpfTtfLmFhLmNyZWF0ZVRleHROb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnFoLmNyZWF0ZVRleHROb2RlKFN0cmluZyhhKSl9O18uYWEuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtfLmFhLmFwcGVuZD1mdW5jdGlvbihhLGIpe25jYShfLkFsKGEpLGEsYXJndW1lbnRzLDEpfTtfLmFhLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8uYWEuY29udGFpbnM9Xy56bDt2YXIgV2dhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5xaD1fLlVhLmRvY3VtZW50O3RoaXMuc2g9YS5pbmNsdWRlcygiJXMiKT9hOnFjYShbYSwiJXMiXSwianMiKTt0aGlzLnJoPSFifHxiLmluY2x1ZGVzKCIlcyIpP2I6cWNhKFtiLCIlcyJdLCJjc3MuanMiKX1QQShhLGIsYyl7aWYodGhpcy5yaCl7bGV0IGQ9Xy5FbCh0aGlzLnJoLnJlcGxhY2UoIiVzIixhKSk7cGNhKHRoaXMucWgsZCl9YT1fLkVsKHRoaXMuc2gucmVwbGFjZSgiJXMiLGEpKTtwY2EodGhpcy5xaCxhLGIsYyl9fTtfLlZyPWE9Pnt2YXIgYj0iZUIiO2lmKGEuZUImJmEuaGFzT3duUHJvcGVydHkoYikpcmV0dXJuIGEuZUI7dmFyIGM9bmV3IGE7YS5lQj1jO2EuaGFzT3duUHJvcGVydHkoYik7cmV0dXJuIGN9O3ZhciBHbD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdGVkTW9kdWxlcz17fTt0aGlzLnJoPXt9O3RoaXMueGg9e307dGhpcy5xaD17fTt0aGlzLnpoPW5ldyBTZXQ7dGhpcy5zaD1uZXcgWGdhO3RoaXMueWg9ITE7dGhpcy53aD17fX1pbml0KGEsYixjLGQ9bnVsbCxlPSgpPT57fSxmPW5ldyBXZ2EoYSxkKSxnKXt0aGlzLk1zPWU7dGhpcy55aD0hIWQ7dGhpcy5zaC5pbml0KGIsYyxmKTtpZih0aGlzLnRoPWcpe2E9T2JqZWN0LmtleXModGhpcy5xaCk7Zm9yKGxldCBoIG9mIGEpdGhpcy50aChoKX19bG4oYSxiKXtyY2EodGhpcyxhKS5zTz1iO3RoaXMuemguYWRkKGEpO3VjYSh0aGlzLGEpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiBfLlZyKEdsKX19LFlnYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5zaD1hO3RoaXMucWg9Yjt0aGlzLnJoPWM7YT17fTtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYikpe2M9YltkXTtsZXQgZT1jLmxlbmd0aDtmb3IobGV0IGY9CjA7ZjxlOysrZil7bGV0IGc9Y1tmXTthW2ddfHwoYVtnXT1bXSk7YVtnXS5wdXNoKGQpfX10aGlzLnRoPWF9fSxYZ2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnFoPVtdfWluaXQoYSxiLGMpe2E9dGhpcy5jb25maWc9bmV3IFlnYShjLGEsYik7Yj10aGlzLnFoLmxlbmd0aDtmb3IoYz0wO2M8YjsrK2MpdGhpcy5xaFtjXShhKTt0aGlzLnFoLmxlbmd0aD0wfX07Xy5McD17fTt2YXIgS2w7Xy5aZ2E9SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKFsiZW4iLnJlcGxhY2UoIl8iLCItIildKS5sZW5ndGg+MDtfLiRnYT0iMCIuY29kZVBvaW50QXQoMCk7dmFyIGFoYTthaGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGElMTA9PTEmJmElMTAwIT0xMT8ib25lIjphJTEwPT0yJiZhJTEwMCE9MTI/InR3byI6YSUxMD09MyYmYSUxMDAhPTEzPyJmZXciOiJvdGhlciJ9O18uYmhhPWFoYT1mdW5jdGlvbigpe3ZhciBhPXt6ZXJvOiJ6ZXJvIixvbmU6Im9uZSIsdHdvOiJ0d28iLGZldzoiZmV3IixtYW55OiJtYW55IixvdGhlcjoib3RoZXIifSxiPW51bGwsYz1udWxsO3JldHVybiBmdW5jdGlvbihkLGUpe3ZhciBmPWU9PT12b2lkIDA/LTE6ZTtjPT09bnVsbCYmKGM9bmV3IE1hcCk7Yj1jLmdldChmKTtpZighYil7bGV0IGc9IiI7Zz0iZW4iLnJlcGxhY2UoIl8iLCItIik7Yj1mPT09LTE/bmV3IEludGwuUGx1cmFsUnVsZXMoZyx7dHlwZToib3JkaW5hbCJ9KTpuZXcgSW50bC5QbHVyYWxSdWxlcyhnLHt0eXBlOiJvcmRpbmFsIixtaW5pbXVtRnJhY3Rpb25EaWdpdHM6ZX0pO2Muc2V0KGYsYil9ZD1iLnNlbGVjdChkKTtyZXR1cm4gYVtkXX19KCk7dmFyIGNoYTtjaGE9ZnVuY3Rpb24oYSxiKXtpZih2b2lkIDA9PT1iKXtiPWErIiI7dmFyIGM9Yi5pbmRleE9mKCIuIik7Yj1NYXRoLm1pbihjPT09LTE/MDpiLmxlbmd0aC1jLTEsMyl9Yz1NYXRoLnBvdygxMCxiKTtiPXt2OmIsZjooYSpjfDApJWN9O3JldHVybihhfDApPT0xJiZiLnY9PTA/Im9uZSI6Im90aGVyIn07Cl8uZGhhPWNoYT1mdW5jdGlvbigpe3ZhciBhPXt6ZXJvOiJ6ZXJvIixvbmU6Im9uZSIsdHdvOiJ0d28iLGZldzoiZmV3IixtYW55OiJtYW55IixvdGhlcjoib3RoZXIifSxiPW51bGwsYz1udWxsO3JldHVybiBmdW5jdGlvbihkLGUpe3ZhciBmPWU9PT12b2lkIDA/LTE6ZTtjPT09bnVsbCYmKGM9bmV3IE1hcCk7Yj1jLmdldChmKTtpZighYil7bGV0IGc9IiI7Zz0iZW4iLnJlcGxhY2UoIl8iLCItIik7Yj1mPT09LTE/bmV3IEludGwuUGx1cmFsUnVsZXMoZyk6bmV3IEludGwuUGx1cmFsUnVsZXMoZyx7bWluaW11bUZyYWN0aW9uRGlnaXRzOmV9KTtjLnNldChmLGIpfWQ9Yi5zZWxlY3QoZCk7cmV0dXJuIGFbZF19fSgpO18uZWhhPVJlZ0V4cCgiJyhbe30jXS4qPyknIiwiZyIpO18uZmhhPVJlZ0V4cCgiJyciLCJnIik7VWwucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gV3J9O3ZhciBXcj17ZG9uZTohMCx2YWx1ZTp2b2lkIDB9O1VsLnByb3RvdHlwZS54eD1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt2YXIgVmw9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfXh4KCl7cmV0dXJuIG5ldyB5Y2EodGhpcy5xaCgpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBuZXcgV2wodGhpcy5xaCgpKX1yaCgpe3JldHVybiBuZXcgV2wodGhpcy5xaCgpKX19LHljYT1jbGFzcyBleHRlbmRzIFVse2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5xaD1hfW5leHQoKXtyZXR1cm4gdGhpcy5xaC5uZXh0KCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IFdsKHRoaXMucWgpfXJoKCl7cmV0dXJuIG5ldyBXbCh0aGlzLnFoKX19LFdsPWNsYXNzIGV4dGVuZHMgVmx7Y29uc3RydWN0b3IoYSl7c3VwZXIoKCk9PmEpO3RoaXMuc2g9YX1uZXh0KCl7cmV0dXJuIHRoaXMuc2gubmV4dCgpfX07Xy5xYihfLlhsLEFjYSk7Xy5YbC5wcm90b3R5cGUubGs9Xy5oYSgxNyk7Xy5YbC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB6Y2EodGhpcy54eCghMCkpLnJoKCl9O18uWGwucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkuZnJvbSh0aGlzKTtmb3IobGV0IGIgb2YgYSl0aGlzLnJlbW92ZShiKX07Xy5xYihfLllsLF8uWGwpO18uYWE9Xy5ZbC5wcm90b3R5cGU7Xy5hYS5pc0F2YWlsYWJsZT1mdW5jdGlvbigpe2lmKHRoaXMucmg9PT1udWxsKXt2YXIgYT10aGlzLnFoO2lmKGEpdHJ5e2Euc2V0SXRlbSgiX19zYWsiLCIxIik7YS5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBiPSEwfWNhdGNoKGMpe2I9YyBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKGMubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxjLmNvZGU9PT0yMnx8Yy5jb2RlPT09MTAxNHx8Yy5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJmEmJmEubGVuZ3RoIT09MH1lbHNlIGI9ITE7dGhpcy5yaD1ifXJldHVybiB0aGlzLnJofTsKXy5hYS5zZXQ9ZnVuY3Rpb24oYSxiKXtfLlpsKHRoaXMpO3RyeXt0aGlzLnFoLnNldEl0ZW0oYSxiKX1jYXRjaChjKXtpZih0aGlzLnFoLmxlbmd0aD09MCl0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogU3RvcmFnZSBkaXNhYmxlZCI7dGhyb3ciU3RvcmFnZSBtZWNoYW5pc206IFF1b3RhIGV4Y2VlZGVkIjt9fTtfLmFhLmdldD1mdW5jdGlvbihhKXtfLlpsKHRoaXMpO2E9dGhpcy5xaC5nZXRJdGVtKGEpO2lmKHR5cGVvZiBhIT09InN0cmluZyImJmEhPT1udWxsKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJuIGF9O18uYWEucmVtb3ZlPWZ1bmN0aW9uKGEpe18uWmwodGhpcyk7dGhpcy5xaC5yZW1vdmVJdGVtKGEpfTtfLmFhLmxrPV8uaGEoMTYpOwpfLmFhLnh4PWZ1bmN0aW9uKGEpe18uWmwodGhpcyk7dmFyIGI9MCxjPXRoaXMucWgsZD1uZXcgVWw7ZC5uZXh0PWZ1bmN0aW9uKCl7aWYoYj49Yy5sZW5ndGgpcmV0dXJuIFdyO3ZhciBlPWMua2V5KGIrKyk7aWYoYSlyZXR1cm57dmFsdWU6ZSxkb25lOiExfTtlPWMuZ2V0SXRlbShlKTtpZih0eXBlb2YgZSE9PSJzdHJpbmciKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJue3ZhbHVlOmUsZG9uZTohMX19O3JldHVybiBkfTtfLmFhLmNsZWFyPWZ1bmN0aW9uKCl7Xy5abCh0aGlzKTt0aGlzLnFoLmNsZWFyKCl9O18uYWEua2V5PWZ1bmN0aW9uKGEpe18uWmwodGhpcyk7cmV0dXJuIHRoaXMucWgua2V5KGEpfTtfLnFiKEJjYSxfLllsKTt2YXIgdW09e307dmFyIEZjYT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5tZXNzYWdlPWE7dGhpcy5uYW1lPSJJbnZhbGlkVmFsdWVFcnJvciJ9fSxHY2E9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5tZXNzYWdlPWE7dGhpcy5uYW1lPSJMaWdodHdlaWdodEludmFsaWRWYWx1ZUVycm9yIn19LHptPSEwO3ZhciBobywkcixpaGE7Xy5PbT1fLkptKF8uam0sIm5vdCBhIG51bWJlciIpO18uZ2hhPV8uTG0oXy5PbSxhPT57aWYoIU51bWJlci5pc0ludGVnZXIoYSkpdGhyb3cgXy5BbShgJHthfSBpcyBub3QgYW4gaW50ZWdlcmApO3JldHVybiBhfSk7Xy5oaGE9Xy5MbShfLmdoYSxhPT57aWYoYTw9MCl0aHJvdyBfLkFtKGAke2F9IGlzIG5vdCBhIHBvc2l0aXZlIGludGVnZXJgKTtyZXR1cm4gYX0pO2hvPV8uTG0oXy5PbSxhPT57SWNhKGEpO3JldHVybiBhfSk7Xy5Ycj1fLkxtKF8uT20sYT0+e2lmKGlzRmluaXRlKGEpKXJldHVybiBhO3Rocm93IF8uQW0oYCR7YX0gaXMgbm90IGFuIGFjY2VwdGVkIHZhbHVlYCk7fSk7Xy5Zcj1fLkxtKF8uT20sYT0+e2lmKGE+PTApcmV0dXJuIGE7SWNhKGEpO3Rocm93IF8uQW0oYCR7YX0gaXMgYSBuZWdhdGl2ZSBudW1iZXIgdmFsdWVgKTt9KTtfLlpyPV8uTG0oXy5ZcixfLlhyKTtfLmNyPV8uSm0oXy5tbSwibm90IGEgc3RyaW5nIik7CiRyPV8uSm0oXy5ubSwibm90IGEgYm9vbGVhbiIpO2loYT1fLkptKGE9PnR5cGVvZiBhPT09ImZ1bmN0aW9uIiwibm90IGEgZnVuY3Rpb24iKTtfLmFzPV8uTW0oXy5PbSk7Xy5icz1fLk1tKF8uY3IpO18uY3M9Xy5NbSgkcik7Xy5kcz1fLkxtKF8uY3IsYT0+e2lmKGEubGVuZ3RoPjApcmV0dXJuIGE7dGhyb3cgXy5BbSgiZW1wdHkgc3RyaW5nIGlzIG5vdCBhbiBhY2NlcHRlZCB2YWx1ZSIpO30pO18uamhhPV8uTG0oXy5FbShEYXRlLCJEYXRlIiksYT0+e2lmKGlzTmFOKGEuZ2V0VGltZSgpKSl0aHJvdyBfLkFtKCJpbnZhbGlkIGRhdGUiKTtyZXR1cm4gYX0pO3ZhciBKY2E9bnVsbCxTbT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucWg9bmV3IFNldDt0aGlzLnJoPW51bGx9Z2V0IGV4cGVyaWVuY2VJZHMoKXtyZXR1cm4gbmV3IFNldCh0aGlzLnFoKX1zZXQgZXhwZXJpZW5jZUlkcyhhKXtpZih0eXBlb2YgYVtTeW1ib2wuaXRlcmF0b3JdIT09ImZ1bmN0aW9uInx8dHlwZW9mIGE9PT0ic3RyaW5nIil0aHJvdyBfLkFtKCJleHBlcmllbmNlSWRzIG11c3QgYmUgc2V0IHRvIGFuIGluc3RhbmNlIG9mIEl0ZXJhYmxlPHN0cmluZz4uIik7Zm9yKGxldCBjIG9mIGEpdHJ5eygwLF8uZHMpKGMpO2E6e2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGgrMTtkKyspe2xldCBlO2Rve2lmKGQ9PT1jLmxlbmd0aCl7dmFyIGI9ITA7YnJlYWsgYX1lPWMuY2hhckF0KGQrKyl9d2hpbGUoZTwiXHVkODAwInx8ZT4iXHVkZmZmIik7aWYoZT49Ilx1ZGMwMCJ8fGQ9PT1jLmxlbmd0aHx8IShjLmNoYXJBdChkKT49Ilx1ZGMwMCImJmMuY2hhckF0KGQpPCJcdWUwMDAiKSl7Yj0KITE7YnJlYWsgYX19Yj0hMH1pZighYil0aHJvdyBfLkFtKCJtdXN0IGJlIGEgd2VsbC1mb3JtZWQgVVRGLTE2IHN0cmluZy4iKTtpZihbLi4uY10ubGVuZ3RoPjY0KXRocm93IF8uQW0oIm11c3QgYmUgNjQgY29kZSBwb2ludHMgb3Igc2hvcnRlci4iKTtpZigvWy86PyNdLy50ZXN0KGMpKXRocm93IF8uQW0oJ211c3Qgbm90IGNvbnRhaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgQVNDSUkgY2hhcmFjdGVyczogIi8iLCAiOiIsICI/IiBvciAiIyInKTt9Y2F0Y2goZCl7dGhyb3cgZC5tZXNzYWdlPWBFeHBlcmllbmNlIElEICIke2N9IiAke2QubWVzc2FnZX1gLGQ7fXRoaXMucWguY2xlYXIoKTtmb3IobGV0IGMgb2YgYSl0aGlzLnFoLmFkZChjKX1nZXQgZmV0Y2hBcHBDaGVja1Rva2VuKCl7cmV0dXJuIHRoaXMucmg9PW51bGw/KCk9PlByb21pc2UucmVzb2x2ZSh7dG9rZW46IiJ9KTp0aGlzLnJofXNldCBmZXRjaEFwcENoZWNrVG9rZW4oYSl7Xy5NKHdpbmRvdywyMjg0NTIpO3RoaXMucmg9CmF9fTtTbS5nZXRJbnN0YW5jZT1LY2E7Xy5wcT17VE9QX0xFRlQ6MSxUT1BfQ0VOVEVSOjIsVE9QOjIsVE9QX1JJR0hUOjMsTEVGVF9DRU5URVI6NCxMRUZUX1RPUDo1LExFRlQ6NSxMRUZUX0JPVFRPTTo2LFJJR0hUX1RPUDo3LFJJR0hUOjcsUklHSFRfQ0VOVEVSOjgsUklHSFRfQk9UVE9NOjksQk9UVE9NX0xFRlQ6MTAsQk9UVE9NX0NFTlRFUjoxMSxCT1RUT006MTEsQk9UVE9NX1JJR0hUOjEyLENFTlRFUjoxMyxCTE9DS19TVEFSVF9JTkxJTkVfU1RBUlQ6MTQsQkxPQ0tfU1RBUlRfSU5MSU5FX0NFTlRFUjoxNSxCTE9DS19TVEFSVF9JTkxJTkVfRU5EOjE2LElOTElORV9TVEFSVF9CTE9DS19DRU5URVI6MTcsSU5MSU5FX1NUQVJUX0JMT0NLX1NUQVJUOjE4LElOTElORV9TVEFSVF9CTE9DS19FTkQ6MTksSU5MSU5FX0VORF9CTE9DS19TVEFSVDoyMCxJTkxJTkVfRU5EX0JMT0NLX0NFTlRFUjoyMSxJTkxJTkVfRU5EX0JMT0NLX0VORDoyMixCTE9DS19FTkRfSU5MSU5FX1NUQVJUOjIzLEJMT0NLX0VORF9JTkxJTkVfQ0VOVEVSOjI0LApCTE9DS19FTkRfSU5MSU5FX0VORDoyNSwxOiJUT1BfTEVGVCIsMjoiVE9QIiwzOiJUT1BfUklHSFQiLDQ6IkxFRlRfQ0VOVEVSIiw1OiJMRUZUIiw2OiJMRUZUX0JPVFRPTSIsNzoiUklHSFQiLDg6IlJJR0hUX0NFTlRFUiIsOToiUklHSFRfQk9UVE9NIiwxMDoiQk9UVE9NX0xFRlQiLDExOiJCT1RUT00iLDEyOiJCT1RUT01fUklHSFQiLDEzOiJDRU5URVIiLDE0OiJCTE9DS19TVEFSVF9JTkxJTkVfU1RBUlQiLDE1OiJCTE9DS19TVEFSVF9JTkxJTkVfQ0VOVEVSIiwxNjoiQkxPQ0tfU1RBUlRfSU5MSU5FX0VORCIsMTc6IklOTElORV9TVEFSVF9CTE9DS19DRU5URVIiLDE4OiJJTkxJTkVfU1RBUlRfQkxPQ0tfU1RBUlQiLDE5OiJJTkxJTkVfU1RBUlRfQkxPQ0tfRU5EIiwyMDoiSU5MSU5FX0VORF9CTE9DS19TVEFSVCIsMjE6IklOTElORV9FTkRfQkxPQ0tfQ0VOVEVSIiwyMjoiSU5MSU5FX0VORF9CTE9DS19FTkQiLDIzOiJCTE9DS19FTkRfSU5MSU5FX1NUQVJUIiwyNDoiQkxPQ0tfRU5EX0lOTElORV9DRU5URVIiLAoyNToiQkxPQ0tfRU5EX0lOTElORV9FTkQifTt2YXIgZmZhPXtERUZBVUxUOjAsU01BTEw6MSxBTkRST0lEOjIsWk9PTV9QQU46MyxQUjo0LGFMOjUsMDoiREVGQVVMVCIsMToiU01BTEwiLDI6IkFORFJPSUQiLDM6IlpPT01fUEFOIiw0OiJST1RBVEVfT05MWSIsNToiVE9VQ0gifTt2YXIgZ2ZhPXtERUZBVUxUOjB9O3ZhciBoZmE9e0RFRkFVTFQ6MCxTTUFMTDoxLExBUkdFOjIsYUw6MywwOiJERUZBVUxUIiwxOiJTTUFMTCIsMjoiTEFSR0UiLDM6IlRPVUNIIn07dmFyIFptPWNsYXNze307dmFyIGtoYT17SVI6IlBvaW50Iix2UjoiTGluZVN0cmluZyIsUE9MWUdPTjoiUG9seWdvbiJ9O3ZhciBMY2E9Xy5DbSh7bGF0Ol8uT20sbG5nOl8uT219LCEwKSxOY2E9Xy5DbSh7bGF0Ol8uWHIsbG5nOl8uWHJ9LCEwKTtfLlRtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLmxhdCgpKyIsICIrdGhpcy5sbmcoKSsiKSJ9O18uVG0ucHJvdG90eXBlLnRvU3RyaW5nPV8uVG0ucHJvdG90eXBlLnRvU3RyaW5nO18uVG0ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybntsYXQ6dGhpcy5sYXQoKSxsbmc6dGhpcy5sbmcoKX19O18uVG0ucHJvdG90eXBlLnRvSlNPTj1fLlRtLnByb3RvdHlwZS50b0pTT047Xy5UbS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPWEgaW5zdGFuY2VvZiBfLlRtP2EubGF0KCk6YS5sYXQ7YT1hIGluc3RhbmNlb2YgXy5UbT9hLmxuZygpOmEubG5nO3JldHVybiB0eXBlb2YgYiE9PSJudW1iZXIifHx0eXBlb2YgYSE9PSJudW1iZXIiPyExOl8uaW0odGhpcy5sYXQoKSxiKSYmXy5pbSh0aGlzLmxuZygpLGEpfTtfLlRtLnByb3RvdHlwZS5lcXVhbHM9Xy5UbS5wcm90b3R5cGUuZXF1YWxzOwpfLlRtLnByb3RvdHlwZS5lcXVhbHM9Xy5UbS5wcm90b3R5cGUuZXF1YWxzO18uVG0ucHJvdG90eXBlLnRvVXJsVmFsdWU9ZnVuY3Rpb24oYSl7YT1hIT09dm9pZCAwP2E6NjtyZXR1cm4gTWNhKHRoaXMubGF0KCksYSkrIiwiK01jYSh0aGlzLmxuZygpLGEpfTtfLlRtLnByb3RvdHlwZS50b1VybFZhbHVlPV8uVG0ucHJvdG90eXBlLnRvVXJsVmFsdWU7dmFyIHFkYTtfLmVzPV8uR20oXy5YbSk7cWRhPV8uR20oXy5ZbSk7Xy4kbT1jbGFzcyBleHRlbmRzIFpte2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5lbGVtZW50cz1fLlhtKGEpfWdldFR5cGUoKXtyZXR1cm4iUG9pbnQifWZvckVhY2hMYXRMbmcoYSl7YSh0aGlzLmVsZW1lbnRzKX1nZXQoKXtyZXR1cm4gdGhpcy5lbGVtZW50c319O18uJG0ucHJvdG90eXBlLmdldD1fLiRtLnByb3RvdHlwZS5nZXQ7Xy4kbS5wcm90b3R5cGUuZm9yRWFjaExhdExuZz1fLiRtLnByb3RvdHlwZS5mb3JFYWNoTGF0TG5nO18uJG0ucHJvdG90eXBlLmdldFR5cGU9Xy4kbS5wcm90b3R5cGUuZ2V0VHlwZTtfLiRtLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLiRtLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcjt2YXIgbGhhPV8uR20oY24pO3ZhciBPY2E9bmV3IFNldDt2YXIgUWNhLG1oYTtRY2E9bmV3IFNldChbInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ3aGVlbCIsIm1vdXNld2hlZWwiXSk7Xy5mcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3Rocm93IG5ldyBUeXBlRXJyb3IoImdvb2dsZS5tYXBzLmV2ZW50IGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7fX07Xy5mcy50cmlnZ2VyPV8ud247Xy5mcy5hZGRMaXN0ZW5lck9uY2U9Xy50bjsKXy5mcy5hZGREb21MaXN0ZW5lck9uY2U9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5kbigiZ29vZ2xlLm1hcHMuZXZlbnQuYWRkRG9tTGlzdGVuZXJPbmNlKCkgaXMgZGVwcmVjYXRlZCwgdXNlIHRoZVxuc3RhbmRhcmQgYWRkRXZlbnRMaXN0ZW5lcigpIG1ldGhvZCBpbnN0ZWFkOlxuaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L2FkZEV2ZW50TGlzdGVuZXJcblRoZSBmZWF0dXJlIHdpbGwgY29udGludWUgdG8gd29yayBhbmQgdGhlcmUgaXMgbm8gcGxhbiB0byBkZWNvbW1pc3Npb25cbml0LiIpO3JldHVybiBfLnJuKGEsYixjLGQpfTsKXy5mcy5hZGREb21MaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLmRuKCJnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcigpIGlzIGRlcHJlY2F0ZWQsIHVzZSB0aGUgc3RhbmRhcmRcbmFkZEV2ZW50TGlzdGVuZXIoKSBtZXRob2QgaW5zdGVhZDpcbmh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9hZGRFdmVudExpc3RlbmVyXG5UaGUgZmVhdHVyZSB3aWxsIGNvbnRpbnVlIHRvIHdvcmsgYW5kIHRoZXJlIGlzIG5vIHBsYW4gdG8gZGVjb21taXNzaW9uXG5pdC4iKTtyZXR1cm4gXy5xbihhLGIsYyxkKX07Xy5mcy5jbGVhckluc3RhbmNlTGlzdGVuZXJzPV8ucG47Xy5mcy5jbGVhckxpc3RlbmVycz1fLm9uO18uZnMucmVtb3ZlTGlzdGVuZXI9Xy5tbjtfLmZzLmhhc0xpc3RlbmVycz1fLmxuO18uZnMuYWRkTGlzdGVuZXI9Xy5rbjsKXy5qbj1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyxkLGU9ITApe3RoaXMubkY9ZTt0aGlzLmluc3RhbmNlPWE7dGhpcy5xaD1iO3RoaXMub3A9Yzt0aGlzLnJoPWQ7dGhpcy5pZD0rK21oYTtTY2EoYSxiKVt0aGlzLmlkXT10aGlzO3RoaXMubkYmJl8ud24odGhpcy5pbnN0YW5jZSxgJHt0aGlzLnFofV9hZGRlZGApfXJlbW92ZSgpe2lmKHRoaXMuaW5zdGFuY2Upe2lmKHRoaXMuaW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmKHRoaXMucmg9PT0xfHx0aGlzLnJoPT09NCkpe2xldCBhPXtjYXB0dXJlOnRoaXMucmg9PT00fTtRY2EuaGFzKHRoaXMucWgpJiYoYS5wYXNzaXZlPSExKTt0aGlzLmluc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5xaCx0aGlzLm9wLGEpfWRlbGV0ZSBTY2EodGhpcy5pbnN0YW5jZSx0aGlzLnFoKVt0aGlzLmlkXTt0aGlzLm5GJiZfLnduKHRoaXMuaW5zdGFuY2UsYCR7dGhpcy5xaH1fcmVtb3ZlZGApO3RoaXMub3A9dGhpcy5pbnN0YW5jZT1udWxsfX19OwptaGE9MDtfLkZxPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9bnVsbDt0aGlzLm5sKGEpfW5sKGEpe2E9YXx8e307dGhpcy5zaD1hLmlkO3RyeXt0aGlzLnFoPWEuZ2VvbWV0cnk/Y24oYS5nZW9tZXRyeSk6bnVsbH1jYXRjaChiKXtfLkJtKGIpfXRoaXMucmg9YS5wcm9wZXJ0aWVzfHx7fX1nZXRJZCgpe3JldHVybiB0aGlzLnNofWdldEdlb21ldHJ5KCl7cmV0dXJuIHRoaXMucWh9c2V0R2VvbWV0cnkoYSl7dmFyIGI9dGhpcy5xaDt0cnl7dGhpcy5xaD1hP2NuKGEpOm51bGx9Y2F0Y2goYyl7Xy5CbShjKTtyZXR1cm59Xy53bih0aGlzLCJzZXRnZW9tZXRyeSIse2ZlYXR1cmU6dGhpcyxuZXdHZW9tZXRyeTp0aGlzLnFoLG9sZEdlb21ldHJ5OmJ9KX1nZXRQcm9wZXJ0eShhKXtyZXR1cm4gcW0odGhpcy5yaCxhKX1zZXRQcm9wZXJ0eShhLGIpe2lmKGI9PT12b2lkIDApdGhpcy5yZW1vdmVQcm9wZXJ0eShhKTtlbHNle3ZhciBjPXRoaXMuZ2V0UHJvcGVydHkoYSk7dGhpcy5yaFthXT1iO18ud24odGhpcywKInNldHByb3BlcnR5Iix7ZmVhdHVyZTp0aGlzLG5hbWU6YSxuZXdWYWx1ZTpiLG9sZFZhbHVlOmN9KX19cmVtb3ZlUHJvcGVydHkoYSl7dmFyIGI9dGhpcy5nZXRQcm9wZXJ0eShhKTtkZWxldGUgdGhpcy5yaFthXTtfLnduKHRoaXMsInJlbW92ZXByb3BlcnR5Iix7ZmVhdHVyZTp0aGlzLG5hbWU6YSxvbGRWYWx1ZTpifSl9Zm9yRWFjaFByb3BlcnR5KGEpe2ZvcihsZXQgYiBpbiB0aGlzLnJoKWEodGhpcy5nZXRQcm9wZXJ0eShiKSxiKX10b0dlb0pzb24oYSl7dmFyIGI9dGhpcztfLkhsKCJkYXRhIikudGhlbihjPT57Yy5FTShiLGEpfSl9fTtfLkZxLnByb3RvdHlwZS50b0dlb0pzb249Xy5GcS5wcm90b3R5cGUudG9HZW9Kc29uO18uRnEucHJvdG90eXBlLmZvckVhY2hQcm9wZXJ0eT1fLkZxLnByb3RvdHlwZS5mb3JFYWNoUHJvcGVydHk7Xy5GcS5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHk9Xy5GcS5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHk7Cl8uRnEucHJvdG90eXBlLnNldFByb3BlcnR5PV8uRnEucHJvdG90eXBlLnNldFByb3BlcnR5O18uRnEucHJvdG90eXBlLmdldFByb3BlcnR5PV8uRnEucHJvdG90eXBlLmdldFByb3BlcnR5O18uRnEucHJvdG90eXBlLnNldEdlb21ldHJ5PV8uRnEucHJvdG90eXBlLnNldEdlb21ldHJ5O18uRnEucHJvdG90eXBlLmdldEdlb21ldHJ5PV8uRnEucHJvdG90eXBlLmdldEdlb21ldHJ5O18uRnEucHJvdG90eXBlLmdldElkPV8uRnEucHJvdG90eXBlLmdldElkO18uRnEucHJvdG90eXBlLmNvbnN0cnVjdG9yPV8uRnEucHJvdG90eXBlLmNvbnN0cnVjdG9yO18ud20oXy5GcSk7dmFyIFhjYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZmVhdHVyZXM9e307dGhpcy51bnJlZ2lzdGVyPXt9O3RoaXMucWg9e319Y29udGFpbnMoYSl7cmV0dXJuIHRoaXMuZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoXy54bihhKSl9Z2V0RmVhdHVyZUJ5SWQoYSl7cmV0dXJuIHFtKHRoaXMucWgsYSl9YWRkKGEpe2E9YXx8e307YT1hIGluc3RhbmNlb2YgXy5GcT9hOm5ldyBfLkZxKGEpO2lmKCF0aGlzLmNvbnRhaW5zKGEpKXtsZXQgYz1hLmdldElkKCk7aWYoY3x8Yz09PTApe3ZhciBiPXRoaXMuZ2V0RmVhdHVyZUJ5SWQoYyk7YiYmdGhpcy5yZW1vdmUoYil9Yj1fLnhuKGEpO3RoaXMuZmVhdHVyZXNbYl09YTtpZihjfHxjPT09MCl0aGlzLnFoW2NdPWE7bGV0IGQ9Xy52bihhLCJzZXRnZW9tZXRyeSIsdGhpcyksZT1fLnZuKGEsInNldHByb3BlcnR5Iix0aGlzKSxmPV8udm4oYSwicmVtb3ZlcHJvcGVydHkiLHRoaXMpO3RoaXMudW5yZWdpc3RlcltiXT0oKT0+e18ubW4oZCk7Xy5tbihlKTsKXy5tbihmKX07Xy53bih0aGlzLCJhZGRmZWF0dXJlIix7ZmVhdHVyZTphfSl9cmV0dXJuIGF9cmVtb3ZlKGEpe3ZhciBiPV8ueG4oYSksYz1hLmdldElkKCk7aWYodGhpcy5mZWF0dXJlc1tiXSl7ZGVsZXRlIHRoaXMuZmVhdHVyZXNbYl07YyYmZGVsZXRlIHRoaXMucWhbY107aWYoYz10aGlzLnVucmVnaXN0ZXJbYl0pZGVsZXRlIHRoaXMudW5yZWdpc3RlcltiXSxjKCk7Xy53bih0aGlzLCJyZW1vdmVmZWF0dXJlIix7ZmVhdHVyZTphfSl9fWZvckVhY2goYSl7Zm9yKGxldCBiIGluIHRoaXMuZmVhdHVyZXMpdGhpcy5mZWF0dXJlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYSh0aGlzLmZlYXR1cmVzW2JdKX19O18uWG49ImNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZW1vdmUgbW91c2VvdXQgbW91c2VvdmVyIG1vdXNldXAgcmlnaHRjbGljayBjb250ZXh0bWVudSIuc3BsaXQoIiAiKTt2YXIgbmhhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD17fX10cmlnZ2VyKGEpe18ud24odGhpcywiY2hhbmdlZCIsYSl9Z2V0KGEpe3JldHVybiB0aGlzLnFoW2FdfXNldChhLGIpe3ZhciBjPXRoaXMucWg7Y1thXXx8KGNbYV09e30pO18uYm0oY1thXSxiKTt0aGlzLnRyaWdnZXIoYSl9cmVzZXQoYSl7ZGVsZXRlIHRoaXMucWhbYV07dGhpcy50cmlnZ2VyKGEpfWZvckVhY2goYSl7Xy5hbSh0aGlzLnFoLGEpfX07Xy55bi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPUNuKHRoaXMpO2ErPSIiO2I9cW0oYixhKTtpZihiIT09dm9pZCAwKXtpZihiKXthPWIuaHE7Yj1iLmx3O2xldCBjPSJnZXQiK18uQm4oYSk7cmV0dXJuIGJbY10/YltjXSgpOmIuZ2V0KGEpfXJldHVybiB0aGlzW2FdfX07Xy55bi5wcm90b3R5cGUuZ2V0PV8ueW4ucHJvdG90eXBlLmdldDtfLnluLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1Dbih0aGlzKTthKz0iIjt2YXIgZD1xbShjLGEpO2lmKGQpaWYoYT1kLmhxLGQ9ZC5sdyxjPSJzZXQiK18uQm4oYSksZFtjXSlkW2NdKGIpO2Vsc2UgZC5zZXQoYSxiKTtlbHNlIHRoaXNbYV09YixjW2FdPW51bGwsQW4odGhpcyxhKX07Xy55bi5wcm90b3R5cGUuc2V0PV8ueW4ucHJvdG90eXBlLnNldDsKXy55bi5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKGEpe3ZhciBiPUNuKHRoaXMpO2ErPSIiOyhiPXFtKGIsYSkpP2IubHcubm90aWZ5KGIuaHEpOkFuKHRoaXMsYSl9O18ueW4ucHJvdG90eXBlLm5vdGlmeT1fLnluLnByb3RvdHlwZS5ub3RpZnk7Xy55bi5wcm90b3R5cGUuc2V0VmFsdWVzPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYiBpbiBhKXtsZXQgYz1hW2JdLGQ9InNldCIrXy5CbihiKTtpZih0aGlzW2RdKXRoaXNbZF0oYyk7ZWxzZSB0aGlzLnNldChiLGMpfX07Xy55bi5wcm90b3R5cGUuc2V0VmFsdWVzPV8ueW4ucHJvdG90eXBlLnNldFZhbHVlcztfLnluLnByb3RvdHlwZS5zZXRPcHRpb25zPV8ueW4ucHJvdG90eXBlLnNldFZhbHVlcztfLnluLnByb3RvdHlwZS5jaGFuZ2VkPWZ1bmN0aW9uKCl7fTt2YXIgVGNhPXt9OwpfLnluLnByb3RvdHlwZS5iaW5kVG89ZnVuY3Rpb24oYSxiLGMsZCl7YSs9IiI7Yz0oY3x8YSkrIiI7dGhpcy51bmJpbmQoYSk7dmFyIGU9e2x3OnRoaXMsaHE6YX0sZj17bHc6YixocTpjLHpHOmV9O0NuKHRoaXMpW2FdPWY7em4oYixjKVtfLnhuKGUpXT1lO2R8fEFuKHRoaXMsYSl9O18ueW4ucHJvdG90eXBlLmJpbmRUbz1fLnluLnByb3RvdHlwZS5iaW5kVG87Xy55bi5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKGEpe3ZhciBiPUNuKHRoaXMpLGM9YlthXTtjJiYoYy56RyYmZGVsZXRlIHpuKGMubHcsYy5ocSlbXy54bihjLnpHKV0sdGhpc1thXT10aGlzLmdldChhKSxiW2FdPW51bGwpfTtfLnluLnByb3RvdHlwZS51bmJpbmQ9Xy55bi5wcm90b3R5cGUudW5iaW5kO18ueW4ucHJvdG90eXBlLnVuYmluZEFsbD1mdW5jdGlvbigpe3ZhciBhPSgwLF8uaWIpKHRoaXMudW5iaW5kLHRoaXMpLGI9Q24odGhpcyk7Zm9yKGxldCBjIGluIGIpYShjKX07Cl8ueW4ucHJvdG90eXBlLnVuYmluZEFsbD1fLnluLnByb3RvdHlwZS51bmJpbmRBbGw7Xy55bi5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5rbih0aGlzLGEsYil9O18ueW4ucHJvdG90eXBlLmFkZExpc3RlbmVyPV8ueW4ucHJvdG90eXBlLmFkZExpc3RlbmVyO3ZhciBZY2E9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5xaD1uZXcgbmhhO18udG4oYSwiYWRkZmVhdHVyZSIsKCk9PntfLkhsKCJkYXRhIikudGhlbihiPT57Yi5RTCh0aGlzLGEsdGhpcy5xaCl9KX0pfW92ZXJyaWRlU3R5bGUoYSxiKXt0aGlzLnFoLnNldChfLnhuKGEpLGIpfXJldmVydFN0eWxlKGEpe2E/dGhpcy5xaC5yZXNldChfLnhuKGEpKTp0aGlzLnFoLmZvckVhY2godGhpcy5xaC5yZXNldC5iaW5kKHRoaXMucWgpKX19O18uSW49Y2xhc3MgZXh0ZW5kcyBabXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuZWxlbWVudHM9W107dHJ5e3RoaXMuZWxlbWVudHM9bGhhKGEpfWNhdGNoKGIpe18uQm0oYil9fWdldFR5cGUoKXtyZXR1cm4iR2VvbWV0cnlDb2xsZWN0aW9uIn1nZXRMZW5ndGgoKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5sZW5ndGh9Z2V0QXQoYSl7cmV0dXJuIHRoaXMuZWxlbWVudHNbYV19Z2V0QXJyYXkoKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5zbGljZSgpfWZvckVhY2hMYXRMbmcoYSl7dGhpcy5lbGVtZW50cy5mb3JFYWNoKGI9PntiLmZvckVhY2hMYXRMbmcoYSl9KX19O18uSW4ucHJvdG90eXBlLmZvckVhY2hMYXRMbmc9Xy5Jbi5wcm90b3R5cGUuZm9yRWFjaExhdExuZztfLkluLnByb3RvdHlwZS5nZXRBcnJheT1fLkluLnByb3RvdHlwZS5nZXRBcnJheTtfLkluLnByb3RvdHlwZS5nZXRBdD1fLkluLnByb3RvdHlwZS5nZXRBdDtfLkluLnByb3RvdHlwZS5nZXRMZW5ndGg9Xy5Jbi5wcm90b3R5cGUuZ2V0TGVuZ3RoOwpfLkluLnByb3RvdHlwZS5nZXRUeXBlPV8uSW4ucHJvdG90eXBlLmdldFR5cGU7Xy5Jbi5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5Jbi5wcm90b3R5cGUuY29uc3RydWN0b3I7Xy5Ebj1jbGFzcyBleHRlbmRzIFpte2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5xaD0oMCxfLmVzKShhKX1nZXRUeXBlKCl7cmV0dXJuIkxpbmVTdHJpbmcifWdldExlbmd0aCgpe3JldHVybiB0aGlzLnFoLmxlbmd0aH1nZXRBdChhKXtyZXR1cm4gdGhpcy5xaFthXX1nZXRBcnJheSgpe3JldHVybiB0aGlzLnFoLnNsaWNlKCl9Zm9yRWFjaExhdExuZyhhKXt0aGlzLnFoLmZvckVhY2goYSl9fTtfLkRuLnByb3RvdHlwZS5mb3JFYWNoTGF0TG5nPV8uRG4ucHJvdG90eXBlLmZvckVhY2hMYXRMbmc7Xy5Ebi5wcm90b3R5cGUuZ2V0QXJyYXk9Xy5Ebi5wcm90b3R5cGUuZ2V0QXJyYXk7Xy5Ebi5wcm90b3R5cGUuZ2V0QXQ9Xy5Ebi5wcm90b3R5cGUuZ2V0QXQ7Xy5Ebi5wcm90b3R5cGUuZ2V0TGVuZ3RoPV8uRG4ucHJvdG90eXBlLmdldExlbmd0aDtfLkRuLnByb3RvdHlwZS5nZXRUeXBlPV8uRG4ucHJvdG90eXBlLmdldFR5cGU7Xy5Ebi5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5Ebi5wcm90b3R5cGUuY29uc3RydWN0b3I7CnZhciBvaGE9Xy5HbShfLkVtKF8uRG4sImdvb2dsZS5tYXBzLkRhdGEuTGluZVN0cmluZyIsITApKTtfLkpuPWNsYXNzIGV4dGVuZHMgWm17Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnFoPSgwLF8uZXMpKGEpfWdldFR5cGUoKXtyZXR1cm4iTGluZWFyUmluZyJ9Z2V0TGVuZ3RoKCl7cmV0dXJuIHRoaXMucWgubGVuZ3RofWdldEF0KGEpe3JldHVybiB0aGlzLnFoW2FdfWdldEFycmF5KCl7cmV0dXJuIHRoaXMucWguc2xpY2UoKX1mb3JFYWNoTGF0TG5nKGEpe3RoaXMucWguZm9yRWFjaChhKX19O18uSm4ucHJvdG90eXBlLmZvckVhY2hMYXRMbmc9Xy5Kbi5wcm90b3R5cGUuZm9yRWFjaExhdExuZztfLkpuLnByb3RvdHlwZS5nZXRBcnJheT1fLkpuLnByb3RvdHlwZS5nZXRBcnJheTtfLkpuLnByb3RvdHlwZS5nZXRBdD1fLkpuLnByb3RvdHlwZS5nZXRBdDtfLkpuLnByb3RvdHlwZS5nZXRMZW5ndGg9Xy5Kbi5wcm90b3R5cGUuZ2V0TGVuZ3RoO18uSm4ucHJvdG90eXBlLmdldFR5cGU9Xy5Kbi5wcm90b3R5cGUuZ2V0VHlwZTtfLkpuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLkpuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjsKdmFyIHBoYT1fLkdtKF8uRW0oXy5KbiwiZ29vZ2xlLm1hcHMuRGF0YS5MaW5lYXJSaW5nIiwhMCkpO18uR249Y2xhc3MgZXh0ZW5kcyBabXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMucWg9b2hhKGEpfWdldFR5cGUoKXtyZXR1cm4iTXVsdGlMaW5lU3RyaW5nIn1nZXRMZW5ndGgoKXtyZXR1cm4gdGhpcy5xaC5sZW5ndGh9Z2V0QXQoYSl7cmV0dXJuIHRoaXMucWhbYV19Z2V0QXJyYXkoKXtyZXR1cm4gdGhpcy5xaC5zbGljZSgpfWZvckVhY2hMYXRMbmcoYSl7dGhpcy5xaC5mb3JFYWNoKGI9PntiLmZvckVhY2hMYXRMbmcoYSl9KX19O18uR24ucHJvdG90eXBlLmZvckVhY2hMYXRMbmc9Xy5Hbi5wcm90b3R5cGUuZm9yRWFjaExhdExuZztfLkduLnByb3RvdHlwZS5nZXRBcnJheT1fLkduLnByb3RvdHlwZS5nZXRBcnJheTtfLkduLnByb3RvdHlwZS5nZXRBdD1fLkduLnByb3RvdHlwZS5nZXRBdDtfLkduLnByb3RvdHlwZS5nZXRMZW5ndGg9Xy5Hbi5wcm90b3R5cGUuZ2V0TGVuZ3RoO18uR24ucHJvdG90eXBlLmdldFR5cGU9Xy5Hbi5wcm90b3R5cGUuZ2V0VHlwZTtfLkZuPWNsYXNzIGV4dGVuZHMgWm17Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnFoPSgwLF8uZXMpKGEpfWdldFR5cGUoKXtyZXR1cm4iTXVsdGlQb2ludCJ9Z2V0TGVuZ3RoKCl7cmV0dXJuIHRoaXMucWgubGVuZ3RofWdldEF0KGEpe3JldHVybiB0aGlzLnFoW2FdfWdldEFycmF5KCl7cmV0dXJuIHRoaXMucWguc2xpY2UoKX1mb3JFYWNoTGF0TG5nKGEpe3RoaXMucWguZm9yRWFjaChhKX19O18uRm4ucHJvdG90eXBlLmZvckVhY2hMYXRMbmc9Xy5Gbi5wcm90b3R5cGUuZm9yRWFjaExhdExuZztfLkZuLnByb3RvdHlwZS5nZXRBcnJheT1fLkZuLnByb3RvdHlwZS5nZXRBcnJheTtfLkZuLnByb3RvdHlwZS5nZXRBdD1fLkZuLnByb3RvdHlwZS5nZXRBdDtfLkZuLnByb3RvdHlwZS5nZXRMZW5ndGg9Xy5Gbi5wcm90b3R5cGUuZ2V0TGVuZ3RoO18uRm4ucHJvdG90eXBlLmdldFR5cGU9Xy5Gbi5wcm90b3R5cGUuZ2V0VHlwZTtfLkZuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLkZuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtfLkVuPWNsYXNzIGV4dGVuZHMgWm17Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnFoPXBoYShhKX1nZXRUeXBlKCl7cmV0dXJuIlBvbHlnb24ifWdldExlbmd0aCgpe3JldHVybiB0aGlzLnFoLmxlbmd0aH1nZXRBdChhKXtyZXR1cm4gdGhpcy5xaFthXX1nZXRBcnJheSgpe3JldHVybiB0aGlzLnFoLnNsaWNlKCl9Zm9yRWFjaExhdExuZyhhKXt0aGlzLnFoLmZvckVhY2goYj0+e2IuZm9yRWFjaExhdExuZyhhKX0pfX07Xy5Fbi5wcm90b3R5cGUuZm9yRWFjaExhdExuZz1fLkVuLnByb3RvdHlwZS5mb3JFYWNoTGF0TG5nO18uRW4ucHJvdG90eXBlLmdldEFycmF5PV8uRW4ucHJvdG90eXBlLmdldEFycmF5O18uRW4ucHJvdG90eXBlLmdldEF0PV8uRW4ucHJvdG90eXBlLmdldEF0O18uRW4ucHJvdG90eXBlLmdldExlbmd0aD1fLkVuLnByb3RvdHlwZS5nZXRMZW5ndGg7Xy5Fbi5wcm90b3R5cGUuZ2V0VHlwZT1fLkVuLnByb3RvdHlwZS5nZXRUeXBlOwp2YXIgcWhhPV8uR20oXy5FbShfLkVuLCJnb29nbGUubWFwcy5EYXRhLlBvbHlnb24iLCEwKSk7Xy5Ibj1jbGFzcyBleHRlbmRzIFpte2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5xaD1xaGEoYSl9Z2V0VHlwZSgpe3JldHVybiJNdWx0aVBvbHlnb24ifWdldExlbmd0aCgpe3JldHVybiB0aGlzLnFoLmxlbmd0aH1nZXRBdChhKXtyZXR1cm4gdGhpcy5xaFthXX1nZXRBcnJheSgpe3JldHVybiB0aGlzLnFoLnNsaWNlKCl9Zm9yRWFjaExhdExuZyhhKXt0aGlzLnFoLmZvckVhY2goYj0+e2IuZm9yRWFjaExhdExuZyhhKX0pfX07Xy5Ibi5wcm90b3R5cGUuZm9yRWFjaExhdExuZz1fLkhuLnByb3RvdHlwZS5mb3JFYWNoTGF0TG5nO18uSG4ucHJvdG90eXBlLmdldEFycmF5PV8uSG4ucHJvdG90eXBlLmdldEFycmF5O18uSG4ucHJvdG90eXBlLmdldEF0PV8uSG4ucHJvdG90eXBlLmdldEF0O18uSG4ucHJvdG90eXBlLmdldExlbmd0aD1fLkhuLnByb3RvdHlwZS5nZXRMZW5ndGg7Xy5Ibi5wcm90b3R5cGUuZ2V0VHlwZT1fLkhuLnByb3RvdHlwZS5nZXRUeXBlOwpfLkhuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLkhuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcjt2YXIgVmNhPSIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIuc3BsaXQoIiIpO18ubXE9bmV3IFdlYWtNYXA7Xy5xYihfLkxuLF8ueW4pO18uTG4ucHJvdG90eXBlLlFyPV8uaGEoMjApO18ucmhhPV8uTG4uREVNT19NQVBfSUQ9IkRFTU9fTUFQX0lEIjt2YXIgZ3M9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXthPT09LTE4MCYmYiE9PTE4MCYmKGE9MTgwKTtiPT09LTE4MCYmYSE9PTE4MCYmKGI9MTgwKTt0aGlzLmxvPWE7dGhpcy5oaT1ifWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5sby10aGlzLmhpPT09MzYwfWludGVyc2VjdHMoYSl7dmFyIGI9dGhpcy5sbyxjPXRoaXMuaGk7cmV0dXJuIHRoaXMuaXNFbXB0eSgpfHxhLmlzRW1wdHkoKT8hMTpfLk9uKHRoaXMpP18uT24oYSl8fGEubG88PXRoaXMuaGl8fGEuaGk+PWI6Xy5PbihhKT9hLmxvPD1jfHxhLmhpPj1iOmEubG88PWMmJmEuaGk+PWJ9Y29udGFpbnMoYSl7YT09PS0xODAmJihhPTE4MCk7dmFyIGI9dGhpcy5sbyxjPXRoaXMuaGk7cmV0dXJuIF8uT24odGhpcyk/KGE+PWJ8fGE8PWMpJiYhdGhpcy5pc0VtcHR5KCk6YT49YiYmYTw9Y31leHRlbmQoYSl7dGhpcy5jb250YWlucyhhKXx8KHRoaXMuaXNFbXB0eSgpP3RoaXMubG89dGhpcy5oaT1hOl8uTm4oYSx0aGlzLmxvKTxfLk5uKHRoaXMuaGksCmEpP3RoaXMubG89YTp0aGlzLmhpPWEpfWVxdWFscyhhKXtyZXR1cm4gTWF0aC5hYnMoYS5sby10aGlzLmxvKSUzNjArTWF0aC5hYnMoYS5zcGFuKCktdGhpcy5zcGFuKCkpPD0xRS05fXNwYW4oKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/MDpfLk9uKHRoaXMpPzM2MC0odGhpcy5sby10aGlzLmhpKTp0aGlzLmhpLXRoaXMubG99Y2VudGVyKCl7dmFyIGE9KHRoaXMubG8rdGhpcy5oaSkvMjtfLk9uKHRoaXMpJiYoYT1fLmRtKGErMTgwLC0xODAsMTgwKSk7cmV0dXJuIGF9fSxzaGE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLmxvPWE7dGhpcy5oaT1ifWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5sbz50aGlzLmhpfWludGVyc2VjdHMoYSl7dmFyIGI9dGhpcy5sbyxjPXRoaXMuaGk7cmV0dXJuIGI8PWEubG8/YS5sbzw9YyYmYS5sbzw9YS5oaTpiPD1hLmhpJiZiPD1jfWNvbnRhaW5zKGEpe3JldHVybiBhPj10aGlzLmxvJiZhPD10aGlzLmhpfWV4dGVuZChhKXt0aGlzLmlzRW1wdHkoKT8KdGhpcy5oaT10aGlzLmxvPWE6YTx0aGlzLmxvP3RoaXMubG89YTphPnRoaXMuaGkmJih0aGlzLmhpPWEpfWVxdWFscyhhKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/YS5pc0VtcHR5KCk6TWF0aC5hYnMoYS5sby10aGlzLmxvKStNYXRoLmFicyh0aGlzLmhpLWEuaGkpPD0xRS05fXNwYW4oKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/MDp0aGlzLmhpLXRoaXMubG99Y2VudGVyKCl7cmV0dXJuKHRoaXMuaGkrdGhpcy5sbykvMn19O18uUm49Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm5sKGEsYil9bmwoYSxiKXt2YXIgYztpZigoYz1hKSYmdHlwZW9mIGM9PT0ib2JqZWN0IiYmInNvdXRoImluIGMmJiJ3ZXN0ImluIGMmJiJub3J0aCJpbiBjJiYiZWFzdCJpbiBjKXRyeXthPV8uVG4oYSl9Y2F0Y2goZCl7fWEgaW5zdGFuY2VvZiBfLlJuPyhjPWEuZ2V0U291dGhXZXN0KCksYj1hLmdldE5vcnRoRWFzdCgpKTooYz1hJiZfLlhtKGEpLGI9YiYmXy5YbShiKSk7aWYoYyl7Yj1ifHxjO2E9Xy5jbShjLmxhdCgpLC05MCw5MCk7bGV0IGQ9Xy5jbShiLmxhdCgpLC05MCw5MCk7dGhpcy5sYXQ9bmV3IHNoYShhLGQpO2M9Yy5sbmcoKTtiPWIubG5nKCk7Yi1jPj0zNjA/dGhpcy5sbmc9bmV3IGdzKC0xODAsMTgwKTooYz1fLmRtKGMsLTE4MCwxODApLGI9Xy5kbShiLC0xODAsMTgwKSx0aGlzLmxuZz1uZXcgZ3MoYyxiKSl9ZWxzZSB0aGlzLmxhdD1uZXcgc2hhKDEsLTEpLHRoaXMubG5nPW5ldyBncygxODAsLTE4MCl9Z2V0Q2VudGVyKCl7cmV0dXJuIG5ldyBfLlRtKHRoaXMubGF0LmNlbnRlcigpLAp0aGlzLmxuZy5jZW50ZXIoKSl9dG9TdHJpbmcoKXtyZXR1cm5gKCR7dGhpcy5nZXRTb3V0aFdlc3QoKS50b1N0cmluZygpfSwgJHt0aGlzLmdldE5vcnRoRWFzdCgpLnRvU3RyaW5nKCl9KWB9dG9KU09OKCl7cmV0dXJue3NvdXRoOnRoaXMubGF0LmxvLHdlc3Q6dGhpcy5sbmcubG8sbm9ydGg6dGhpcy5sYXQuaGksZWFzdDp0aGlzLmxuZy5oaX19dG9VcmxWYWx1ZShhKXt2YXIgYj10aGlzLmdldFNvdXRoV2VzdCgpLGM9dGhpcy5nZXROb3J0aEVhc3QoKTtyZXR1cm5bYi50b1VybFZhbHVlKGEpLGMudG9VcmxWYWx1ZShhKV0uam9pbigpfWVxdWFscyhhKXtpZighYSlyZXR1cm4hMTthPV8uVG4oYSk7cmV0dXJuIHRoaXMubGF0LmVxdWFscyhhLmxhdCkmJnRoaXMubG5nLmVxdWFscyhhLmxuZyl9Y29udGFpbnMoYSl7YT1fLlhtKGEpO3JldHVybiB0aGlzLmxhdC5jb250YWlucyhhLmxhdCgpKSYmdGhpcy5sbmcuY29udGFpbnMoYS5sbmcoKSl9aW50ZXJzZWN0cyhhKXthPV8uVG4oYSk7CnJldHVybiB0aGlzLmxhdC5pbnRlcnNlY3RzKGEubGF0KSYmdGhpcy5sbmcuaW50ZXJzZWN0cyhhLmxuZyl9Y29udGFpbnNCb3VuZHMoYSl7YT1fLlRuKGEpO3ZhciBiPXRoaXMubGF0LGM9YS5sYXQ7cmV0dXJuKGMuaXNFbXB0eSgpPyEwOmMubG8+PWIubG8mJmMuaGk8PWIuaGkpJiZRbih0aGlzLmxuZyxhLmxuZyl9ZXh0ZW5kKGEpe2E9Xy5YbShhKTt0aGlzLmxhdC5leHRlbmQoYS5sYXQoKSk7dGhpcy5sbmcuZXh0ZW5kKGEubG5nKCkpO3JldHVybiB0aGlzfXVuaW9uKGEpe2E9Xy5UbihhKTtpZighYXx8YS5pc0VtcHR5KCkpcmV0dXJuIHRoaXM7dGhpcy5sYXQuZXh0ZW5kKGEuZ2V0U291dGhXZXN0KCkubGF0KCkpO3RoaXMubGF0LmV4dGVuZChhLmdldE5vcnRoRWFzdCgpLmxhdCgpKTthPWEubG5nO3ZhciBiPV8uTm4odGhpcy5sbmcubG8sYS5oaSksYz1fLk5uKGEubG8sdGhpcy5sbmcuaGkpO2lmKFFuKHRoaXMubG5nLGEpKXJldHVybiB0aGlzO2lmKFFuKGEsdGhpcy5sbmcpKXJldHVybiB0aGlzLmxuZz0KbmV3IGdzKGEubG8sYS5oaSksdGhpczt0aGlzLmxuZy5pbnRlcnNlY3RzKGEpP3RoaXMubG5nPWI+PWM/bmV3IGdzKHRoaXMubG5nLmxvLGEuaGkpOm5ldyBncyhhLmxvLHRoaXMubG5nLmhpKTp0aGlzLmxuZz1iPD1jP25ldyBncyh0aGlzLmxuZy5sbyxhLmhpKTpuZXcgZ3MoYS5sbyx0aGlzLmxuZy5oaSk7cmV0dXJuIHRoaXN9Z2V0U291dGhXZXN0KCl7cmV0dXJuIG5ldyBfLlRtKHRoaXMubGF0LmxvLHRoaXMubG5nLmxvLCEwKX1nZXROb3J0aEVhc3QoKXtyZXR1cm4gbmV3IF8uVG0odGhpcy5sYXQuaGksdGhpcy5sbmcuaGksITApfXRvU3Bhbigpe3JldHVybiBuZXcgXy5UbSh0aGlzLmxhdC5zcGFuKCksdGhpcy5sbmcuc3BhbigpLCEwKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMubGF0LmlzRW1wdHkoKXx8dGhpcy5sbmcuaXNFbXB0eSgpfX07Xy5Sbi5wcm90b3R5cGUuaXNFbXB0eT1fLlJuLnByb3RvdHlwZS5pc0VtcHR5O18uUm4ucHJvdG90eXBlLnRvU3Bhbj1fLlJuLnByb3RvdHlwZS50b1NwYW47Cl8uUm4ucHJvdG90eXBlLmdldE5vcnRoRWFzdD1fLlJuLnByb3RvdHlwZS5nZXROb3J0aEVhc3Q7Xy5Sbi5wcm90b3R5cGUuZ2V0U291dGhXZXN0PV8uUm4ucHJvdG90eXBlLmdldFNvdXRoV2VzdDtfLlJuLnByb3RvdHlwZS51bmlvbj1fLm1hKF8uUm4ucHJvdG90eXBlLCJ1bmlvbiIpO18uUm4ucHJvdG90eXBlLmV4dGVuZD1fLlJuLnByb3RvdHlwZS5leHRlbmQ7Xy5Sbi5wcm90b3R5cGUuaW50ZXJzZWN0cz1fLlJuLnByb3RvdHlwZS5pbnRlcnNlY3RzO18uUm4ucHJvdG90eXBlLmNvbnRhaW5zPV8uUm4ucHJvdG90eXBlLmNvbnRhaW5zO18uUm4ucHJvdG90eXBlLmVxdWFscz1fLlJuLnByb3RvdHlwZS5lcXVhbHM7Xy5Sbi5wcm90b3R5cGUudG9VcmxWYWx1ZT1fLlJuLnByb3RvdHlwZS50b1VybFZhbHVlO18uUm4ucHJvdG90eXBlLnRvSlNPTj1fLlJuLnByb3RvdHlwZS50b0pTT047Xy5Sbi5wcm90b3R5cGUudG9TdHJpbmc9Xy5Sbi5wcm90b3R5cGUudG9TdHJpbmc7Cl8uUm4ucHJvdG90eXBlLmdldENlbnRlcj1fLlJuLnByb3RvdHlwZS5nZXRDZW50ZXI7dmFyIHRoYT1fLlNuKC05MCwtMTgwLDkwLDE4MCk7Xy5uYigibW9kdWxlJGV4cG9ydHMkZ29vZ2xlMyRtYXBzJGFwaSRqYXZhc2NyaXB0JGdlb21ldHJ5JGxhdF9sbmdfYm91bmRzLkxhdExuZ0JvdW5kcy5NQVhfQk9VTkRTIix0aGEpO18uUm4ucHJvdG90eXBlLmVxdWFscz1fLlJuLnByb3RvdHlwZS5lcXVhbHM7Xy53bShfLlJuKTt2YXIgV2NhPV8uQ20oe3NvdXRoOl8uT20sd2VzdDpfLk9tLG5vcnRoOl8uT20sZWFzdDpfLk9tfSwhMSk7Xy5Sbi5NQVhfQk9VTkRTPXRoYTtfLnVoYT1fLkVtKF8uUm4sIkxhdExuZ0JvdW5kcyIpO18uaHM9Xy5NbShfLkVtKF8uTG4sIk1hcCIpKTtfLnFiKFluLF8ueW4pO1luLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xaC5jb250YWlucyhhKX07WW4ucHJvdG90eXBlLmNvbnRhaW5zPVluLnByb3RvdHlwZS5jb250YWlucztZbi5wcm90b3R5cGUuZ2V0RmVhdHVyZUJ5SWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucWguZ2V0RmVhdHVyZUJ5SWQoYSl9O1luLnByb3RvdHlwZS5nZXRGZWF0dXJlQnlJZD1Zbi5wcm90b3R5cGUuZ2V0RmVhdHVyZUJ5SWQ7WW4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xaC5hZGQoYSl9O1luLnByb3RvdHlwZS5hZGQ9WW4ucHJvdG90eXBlLmFkZDtZbi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMucWgucmVtb3ZlKGEpfTtZbi5wcm90b3R5cGUucmVtb3ZlPVluLnByb3RvdHlwZS5yZW1vdmU7WW4ucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYSl7dGhpcy5xaC5mb3JFYWNoKGEpfTsKWW4ucHJvdG90eXBlLmZvckVhY2g9WW4ucHJvdG90eXBlLmZvckVhY2g7WW4ucHJvdG90eXBlLmFkZEdlb0pzb249ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5VY2EodGhpcy5xaCxhLGIpfTtZbi5wcm90b3R5cGUuYWRkR2VvSnNvbj1Zbi5wcm90b3R5cGUuYWRkR2VvSnNvbjtZbi5wcm90b3R5cGUubG9hZEdlb0pzb249ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMucWg7Xy5IbCgiZGF0YSIpLnRoZW4oZT0+e2UuSE0oZCxhLGIsYyl9KX07WW4ucHJvdG90eXBlLmxvYWRHZW9Kc29uPVluLnByb3RvdHlwZS5sb2FkR2VvSnNvbjtZbi5wcm90b3R5cGUudG9HZW9Kc29uPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucWg7Xy5IbCgiZGF0YSIpLnRoZW4oYz0+e2MuRE0oYixhKX0pfTtZbi5wcm90b3R5cGUudG9HZW9Kc29uPVluLnByb3RvdHlwZS50b0dlb0pzb247WW4ucHJvdG90eXBlLm92ZXJyaWRlU3R5bGU9ZnVuY3Rpb24oYSxiKXt0aGlzLnJoLm92ZXJyaWRlU3R5bGUoYSxiKX07ClluLnByb3RvdHlwZS5vdmVycmlkZVN0eWxlPVluLnByb3RvdHlwZS5vdmVycmlkZVN0eWxlO1luLnByb3RvdHlwZS5yZXZlcnRTdHlsZT1mdW5jdGlvbihhKXt0aGlzLnJoLnJldmVydFN0eWxlKGEpfTtZbi5wcm90b3R5cGUucmV2ZXJ0U3R5bGU9WW4ucHJvdG90eXBlLnJldmVydFN0eWxlO1luLnByb3RvdHlwZS5jb250cm9sc19jaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy5nZXQoImNvbnRyb2xzIikmJlpjYSh0aGlzKX07WW4ucHJvdG90eXBlLmRyYXdpbmdNb2RlX2NoYW5nZWQ9ZnVuY3Rpb24oKXt0aGlzLmdldCgiZHJhd2luZ01vZGUiKSYmWmNhKHRoaXMpfTtfLlduKFluLnByb3RvdHlwZSx7bWFwOl8uaHMsc3R5bGU6Xy5TbCxjb250cm9sczpfLk1tKF8uR20oXy5GbShraGEpKSksY29udHJvbFBvc2l0aW9uOl8uTW0oXy5GbShfLnBxKSksZHJhd2luZ01vZGU6Xy5NbShfLkZtKGtoYSkpfSk7Xy5FcT17TUVUUklDOjAsSU1QRVJJQUw6MSwwOiJNRVRSSUMiLDE6IklNUEVSSUFMIn07Xy5EcT17RFJJVklORzoiRFJJVklORyIsV0FMS0lORzoiV0FMS0lORyIsQklDWUNMSU5HOiJCSUNZQ0xJTkciLFRSQU5TSVQ6IlRSQU5TSVQiLFRXT19XSEVFTEVSOiJUV09fV0hFRUxFUiJ9O18uaXM9Y2xhc3N7Y29uc3RydWN0b3IoKXtjb25zb2xlLndhcm4oImdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTZXJ2aWNlIGlzIGRlcHJlY2F0ZWQgYXMgb2YgRmVicnVhcnkgMjV0aCwgMjAyNi4gUGxlYXNlIHVzZSBnb29nbGUubWFwcy5yb3V0ZXMuUm91dGUuY29tcHV0ZVJvdXRlcyBpbnN0ZWFkLiBBdCB0aGlzIHRpbWUsIGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTZXJ2aWNlIGlzIG5vdCBzY2hlZHVsZWQgdG8gYmUgZGlzY29udGludWVkLCBidXQgZ29vZ2xlLm1hcHMucm91dGVzLlJvdXRlLmNvbXB1dGVSb3V0ZXMgaXMgcmVjb21tZW5kZWQgb3ZlciBnb29nbGUubWFwcy5EaXJlY3Rpb25zU2VydmljZS5yb3V0ZS4gV2hpbGUgZ29vZ2xlLm1hcHMuRGlyZWN0aW9uc1NlcnZpY2Ugd2lsbCBjb250aW51ZSB0byByZWNlaXZlIGJ1ZyBmaXhlcyBmb3IgYW55IG1ham9yIHJlZ3Jlc3Npb25zLCBleGlzdGluZyBidWdzIGluIGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNTZXJ2aWNlIHdpbGwgbm90IGJlIGFkZHJlc3NlZC4gQXQgbGVhc3QgMTIgbW9udGhzIG5vdGljZSB3aWxsIGJlIGdpdmVuIGJlZm9yZSBzdXBwb3J0IGlzIGRpc2NvbnRpbnVlZC4gUGxlYXNlIHNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2xlZ2FjeSBmb3IgYWRkaXRpb25hbCBkZXRhaWxzIGFuZCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yb3V0ZXMvcm91dGVzLWpzLW1pZ3JhdGlvbiBmb3IgdGhlIG1pZ3JhdGlvbiBndWlkZS4iKTsKdGhpcy5ubCgpfW5sKCl7fXJvdXRlKGEsYil7dmFyIGM9dm9pZCAwO3ZoYSgpfHwoYz1fLk5sKDE1ODA5NCkpO18uTSh3aW5kb3csMTU0MzQyKTt2YXIgZD1fLkhsKCJkaXJlY3Rpb25zIikudGhlbihlPT5lLnJvdXRlKGEsYiwhMCxjKSwoKT0+e2MmJl8uT2woYyw4KX0pO2ImJmQuY2F0Y2goKCk9Pnt9KTtyZXR1cm4gZH19O18uaXMucHJvdG90eXBlLnJvdXRlPV8uaXMucHJvdG90eXBlLnJvdXRlO18uaXMucHJvdG90eXBlLmNvbnN0cnVjdG9yPV8uaXMucHJvdG90eXBlLmNvbnN0cnVjdG9yO3ZhciB2aGE9Xy5RbCgpO18ud20oXy5pcyk7Xy53aGE9e09LOiJPSyIsVU5LTk9XTl9FUlJPUjoiVU5LTk9XTl9FUlJPUiIsT1ZFUl9RVUVSWV9MSU1JVDoiT1ZFUl9RVUVSWV9MSU1JVCIsUkVRVUVTVF9ERU5JRUQ6IlJFUVVFU1RfREVOSUVEIixJTlZBTElEX1JFUVVFU1Q6IklOVkFMSURfUkVRVUVTVCIsWkVST19SRVNVTFRTOiJaRVJPX1JFU1VMVFMiLE1BWF9XQVlQT0lOVFNfRVhDRUVERUQ6Ik1BWF9XQVlQT0lOVFNfRVhDRUVERUQiLE5PVF9GT1VORDoiTk9UX0ZPVU5EIn07Xy5qcz17QkVTVF9HVUVTUzoiYmVzdGd1ZXNzIixPUFRJTUlTVElDOiJvcHRpbWlzdGljIixQRVNTSU1JU1RJQzoicGVzc2ltaXN0aWMifTtfLmtzPXtCVVM6IkJVUyIsUkFJTDoiUkFJTCIsU1VCV0FZOiJTVUJXQVkiLFRSQUlOOiJUUkFJTiIsVFJBTToiVFJBTSIsTElHSFRfUkFJTDoiTElHSFRfUkFJTCJ9O18ubHM9e0xFU1NfV0FMS0lORzoiTEVTU19XQUxLSU5HIixGRVdFUl9UUkFOU0ZFUlM6IkZFV0VSX1RSQU5TRkVSUyJ9O18ueGhhPXtSQUlMOiJSQUlMIixNRVRST19SQUlMOiJNRVRST19SQUlMIixTVUJXQVk6IlNVQldBWSIsVFJBTToiVFJBTSIsTU9OT1JBSUw6Ik1PTk9SQUlMIixIRUFWWV9SQUlMOiJIRUFWWV9SQUlMIixDT01NVVRFUl9UUkFJTjoiQ09NTVVURVJfVFJBSU4iLEhJR0hfU1BFRURfVFJBSU46IkhJR0hfU1BFRURfVFJBSU4iLEJVUzoiQlVTIixJTlRFUkNJVFlfQlVTOiJJTlRFUkNJVFlfQlVTIixUUk9MTEVZQlVTOiJUUk9MTEVZQlVTIixTSEFSRV9UQVhJOiJTSEFSRV9UQVhJIixGRVJSWToiRkVSUlkiLENBQkxFX0NBUjoiQ0FCTEVfQ0FSIixHT05ET0xBX0xJRlQ6IkdPTkRPTEFfTElGVCIsRlVOSUNVTEFSOiJGVU5JQ1VMQVIiLE9USEVSOiJPVEhFUiJ9O18uWm49W107Xy5xYihfLmFvLF8ueW4pO18uYW8ucHJvdG90eXBlLmNoYW5nZWQ9ZnVuY3Rpb24oYSl7YSE9Im1hcCImJmEhPSJwYW5lbCJ8fF8uSGwoImRpcmVjdGlvbnMiKS50aGVuKGI9PntiLkpOKHRoaXMsYSl9KTthPT0icGFuZWwiJiZfLiRuKHRoaXMuZ2V0UGFuZWwoKSl9O18uV24oXy5hby5wcm90b3R5cGUse2RpcmVjdGlvbnM6ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ20oe3JvdXRlczpfLkdtKF8uSW0oXy5rbSkpfSwhMCkoYSl9LG1hcDpfLmhzLHBhbmVsOl8uTW0oXy5JbShfLkRtKSkscm91dGVJbmRleDpfLmFzfSk7Xy55aGE9e09LOiJPSyIsTk9UX0ZPVU5EOiJOT1RfRk9VTkQiLFpFUk9fUkVTVUxUUzoiWkVST19SRVNVTFRTIn07Xy5tcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe2NvbnNvbGUud2FybigiZ29vZ2xlLm1hcHMuRGlzdGFuY2VNYXRyaXggaXMgZGVwcmVjYXRlZCBhcyBvZiBGZWJydWFyeSAyNXRoLCAyMDI2LiBQbGVhc2UgdXNlIGdvb2dsZS5tYXBzLnJvdXRlcy5Sb3V0ZU1hdHJpeC5jb21wdXRlUm91dGVNYXRyaXggaW5zdGVhZC4gQXQgdGhpcyB0aW1lLCBnb29nbGUubWFwcy5EaXN0YW5jZU1hdHJpeCBpcyBub3Qgc2NoZWR1bGVkIHRvIGJlIGRpc2NvbnRpbnVlZCwgYnV0IGdvb2dsZS5tYXBzLnJvdXRlcy5Sb3V0ZU1hdHJpeC5jb21wdXRlUm91dGVNYXRyaXggaXMgcmVjb21tZW5kZWQgb3ZlciBnb29nbGUubWFwcy5EaXN0YW5jZU1hdHJpeC5nZXREaXN0YW5jZU1hdHJpeC4gV2hpbGUgZ29vZ2xlLm1hcHMuRGlzdGFuY2VNYXRyaXggd2lsbCBjb250aW51ZSB0byByZWNlaXZlIGJ1ZyBmaXhlcyBmb3IgYW55IG1ham9yIHJlZ3Jlc3Npb25zLCBleGlzdGluZyBidWdzIGluIGdvb2dsZS5tYXBzLkRpc3RhbmNlTWF0cml4IHdpbGwgbm90IGJlIGFkZHJlc3NlZC4gQXQgbGVhc3QgMTIgbW9udGhzIG5vdGljZSB3aWxsIGJlIGdpdmVuIGJlZm9yZSBzdXBwb3J0IGlzIGRpc2NvbnRpbnVlZC4gUGxlYXNlIHNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2xlZ2FjeSBmb3IgYWRkaXRpb25hbCBkZXRhaWxzIGFuZCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yb3V0ZXMvcm91dGUtbWF0cml4LWpzLW1pZ3JhdGlvbiBmb3IgdGhlIG1pZ3JhdGlvbiBndWlkZS4iKTsKdGhpcy5ubCgpfW5sKCl7fWdldERpc3RhbmNlTWF0cml4KGEsYil7Xy5NKHdpbmRvdywxNTQzNDQpO3ZhciBjPV8uSGwoImRpc3RhbmNlX21hdHJpeCIpLnRoZW4oZD0+ZC5nZXREaXN0YW5jZU1hdHJpeChhLGIpKTtiJiZjLmNhdGNoKCgpPT57fSk7cmV0dXJuIGN9fTtfLm1zLnByb3RvdHlwZS5nZXREaXN0YW5jZU1hdHJpeD1fLm1zLnByb3RvdHlwZS5nZXREaXN0YW5jZU1hdHJpeDtfLm1zLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLm1zLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtfLndtKF8ubXMpO18uemhhPXtPSzoiT0siLElOVkFMSURfUkVRVUVTVDoiSU5WQUxJRF9SRVFVRVNUIixPVkVSX1FVRVJZX0xJTUlUOiJPVkVSX1FVRVJZX0xJTUlUIixSRVFVRVNUX0RFTklFRDoiUkVRVUVTVF9ERU5JRUQiLFVOS05PV05fRVJST1I6IlVOS05PV05fRVJST1IiLE1BWF9FTEVNRU5UU19FWENFRURFRDoiTUFYX0VMRU1FTlRTX0VYQ0VFREVEIixNQVhfRElNRU5TSU9OU19FWENFRURFRDoiTUFYX0RJTUVOU0lPTlNfRVhDRUVERUQifTtfLm5zPWNsYXNze2dldEVsZXZhdGlvbkFsb25nUGF0aChhLGIpe3JldHVybiAkY2EoYSxiKX1nZXRFbGV2YXRpb25Gb3JMb2NhdGlvbnMoYSxiKXtyZXR1cm4gYWRhKGEsYil9fTtfLm5zLnByb3RvdHlwZS5nZXRFbGV2YXRpb25Gb3JMb2NhdGlvbnM9Xy5ucy5wcm90b3R5cGUuZ2V0RWxldmF0aW9uRm9yTG9jYXRpb25zO18ubnMucHJvdG90eXBlLmdldEVsZXZhdGlvbkFsb25nUGF0aD1fLm5zLnByb3RvdHlwZS5nZXRFbGV2YXRpb25BbG9uZ1BhdGg7Xy5ucy5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5ucy5wcm90b3R5cGUuY29uc3RydWN0b3I7Xy5BaGE9e09LOiJPSyIsVU5LTk9XTl9FUlJPUjoiVU5LTk9XTl9FUlJPUiIsT1ZFUl9RVUVSWV9MSU1JVDoiT1ZFUl9RVUVSWV9MSU1JVCIsUkVRVUVTVF9ERU5JRUQ6IlJFUVVFU1RfREVOSUVEIixJTlZBTElEX1JFUVVFU1Q6IklOVkFMSURfUkVRVUVTVCIsT1E6IkRBVEFfTk9UX0FWQUlMQUJMRSJ9O3ZhciBvcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe18uSGwoImdlb2NvZGVyIil9Z2VvY29kZShhLGIpe18uTSh3aW5kb3csMTU1NDY4KTtyZXR1cm4gY2RhKGEsYil9fTtvcy5wcm90b3R5cGUuZ2VvY29kZT1vcy5wcm90b3R5cGUuZ2VvY29kZTtvcy5wcm90b3R5cGUuY29uc3RydWN0b3I9b3MucHJvdG90eXBlLmNvbnN0cnVjdG9yO3ZhciBiZGE9Xy5RbCgpO18uQmhhPXtST09GVE9QOiJST09GVE9QIixSQU5HRV9JTlRFUlBPTEFURUQ6IlJBTkdFX0lOVEVSUE9MQVRFRCIsR0VPTUVUUklDX0NFTlRFUjoiR0VPTUVUUklDX0NFTlRFUiIsQVBQUk9YSU1BVEU6IkFQUFJPWElNQVRFIn07Xy5Rbz1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9ITEpe3ZhciBjPWY9PlFtKCJMYXRMbmdBbHRpdHVkZSIsImxhdCIsKCk9PigwLF8uWHIpKGYpKSxkPXR5cGVvZiBhLmxhdD09PSJmdW5jdGlvbiI/YS5sYXQoKTphLmxhdDtjPWQmJmI/YyhkKTpfLmNtKGMoZCksLTkwLDkwKTtkPWY9PlFtKCJMYXRMbmdBbHRpdHVkZSIsImxuZyIsKCk9PigwLF8uWHIpKGYpKTt2YXIgZT10eXBlb2YgYS5sbmc9PT0iZnVuY3Rpb24iP2EubG5nKCk6YS5sbmc7Yj1lJiZiP2QoZSk6Xy5kbShkKGUpLC0xODAsMTgwKTtkPWY9PlFtKCJMYXRMbmdBbHRpdHVkZSIsImFsdGl0dWRlIiwoKT0+KDAsXy5hcykoZikpO2E9YS5hbHRpdHVkZSE9PXZvaWQgMD9kKGEuYWx0aXR1ZGUpfHwwOjA7dGhpcy5ORD1jO3RoaXMuT0Q9Yjt0aGlzLk1EPWF9Z2V0IGxhdCgpe3JldHVybiB0aGlzLk5EfWdldCBsbmcoKXtyZXR1cm4gdGhpcy5PRH1nZXQgYWx0aXR1ZGUoKXtyZXR1cm4gdGhpcy5NRH1lcXVhbHMoYSl7cmV0dXJuIGE/Cl8uaW0odGhpcy5ORCxhLmxhdCkmJl8uaW0odGhpcy5PRCxhLmxuZykmJl8uaW0odGhpcy5NRCxhLmFsdGl0dWRlKTohMX10b0pTT04oKXtyZXR1cm57bGF0OnRoaXMuTkQsbG5nOnRoaXMuT0QsYWx0aXR1ZGU6dGhpcy5NRH19fTtfLlFvLmZyb21Qcm90bz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uUW8oe2xhdDphLnJoKCksbG5nOmEudGgoKX0pfTtfLlFvLnByb3RvdHlwZS50b0pTT049Xy5Rby5wcm90b3R5cGUudG9KU09OO18uUW8ucHJvdG90eXBlLmVxdWFscz1fLlFvLnByb3RvdHlwZS5lcXVhbHM7Xy5Rby5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5Rby5wcm90b3R5cGUuY29uc3RydWN0b3I7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoXy5Rby5wcm90b3R5cGUse2xhdDp7ZW51bWVyYWJsZTohMH0sbG5nOntlbnVtZXJhYmxlOiEwfSxhbHRpdHVkZTp7ZW51bWVyYWJsZTohMH19KTtfLkNoYT1fLkNtKHtoZWFkaW5nOl8uTW0oXy5YciksdGlsdDpfLk1tKF8uWHIpLHJvbGw6Xy5NbShfLlhyKX0sITEpO18ucHM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dmFyIGI9KGMsZCk9PlFtKCJPcmllbnRhdGlvbjNEIixjLCgpPT4oMCxfLlhyKShkKSk7dGhpcy5xaD1hLmhlYWRpbmchPW51bGw/Xy5kbShiKCJoZWFkaW5nIixhLmhlYWRpbmcpLDAsMzYwKTowO3RoaXMucmg9YS50aWx0IT1udWxsP18uZG0oYigidGlsdCIsYS50aWx0KSwwLDM2MCk6MDt0aGlzLnNoPWEucm9sbCE9bnVsbD9fLmRtKGIoInJvbGwiLGEucm9sbCksMCwzNjApOjA7YSBpbnN0YW5jZW9mIF8ucHN8fFJtKGEsdGhpcywiT3JpZW50YXRpb24zRCIpfWdldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMucWh9Z2V0IHRpbHQoKXtyZXR1cm4gdGhpcy5yaH1nZXQgcm9sbCgpe3JldHVybiB0aGlzLnNofWVxdWFscyhhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hO2lmKGIgaW5zdGFuY2VvZiBfLnBzKWE9YjtlbHNlIHRyeXtiPSgwLF8uQ2hhKShiKSxhPW5ldyBfLnBzKGIpfWNhdGNoKGMpe3Rocm93IF8uQW0oIm5vdCBhbiBPcmllbnRhdGlvbjNEIG9yIE9yaWVudGF0aW9uM0RMaXRlcmFsIiwKYyk7fXJldHVybiBfLmltKHRoaXMuaGVhZGluZyxhLmhlYWRpbmcpJiZfLmltKHRoaXMudGlsdCxhLnRpbHQpJiZfLmltKHRoaXMucm9sbCxhLnJvbGwpfXRvSlNPTigpe3JldHVybntoZWFkaW5nOnRoaXMuaGVhZGluZyx0aWx0OnRoaXMudGlsdCxyb2xsOnRoaXMucm9sbH19fTtfLnBzLnByb3RvdHlwZS50b0pTT049Xy5wcy5wcm90b3R5cGUudG9KU09OO18ucHMucHJvdG90eXBlLmVxdWFscz1fLnBzLnByb3RvdHlwZS5lcXVhbHM7Xy5wcy5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5wcy5wcm90b3R5cGUuY29uc3RydWN0b3I7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoXy5wcy5wcm90b3R5cGUse2hlYWRpbmc6e2VudW1lcmFibGU6ITB9LHRpbHQ6e2VudW1lcmFibGU6ITB9LHJvbGw6e2VudW1lcmFibGU6ITB9fSk7Xy5ibz1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMueD1hO3RoaXMueT1ifXRvU3RyaW5nKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSlgfWVxdWFscyhhKXtyZXR1cm4gYT9hLng9PXRoaXMueCYmYS55PT10aGlzLnk6ITF9cm91bmQoKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSl9fTtfLmJvLnByb3RvdHlwZS50Qj1fLmhhKDIxKTtfLmJvLnByb3RvdHlwZS5lcXVhbHM9Xy5iby5wcm90b3R5cGUuZXF1YWxzO18uYm8ucHJvdG90eXBlLnRvU3RyaW5nPV8uYm8ucHJvdG90eXBlLnRvU3RyaW5nO18ucG89bmV3IF8uYm8oMCwwKTtfLmJvLnByb3RvdHlwZS5lcXVhbHM9Xy5iby5wcm90b3R5cGUuZXF1YWxzO18uZ289Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5ubChhLGIsYyxkKX1ubChhLGIsYyxkKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yjt0aGlzLnJoPWM7dGhpcy5xaD1kfXRvU3RyaW5nKCl7cmV0dXJuYCgke3RoaXMud2lkdGh9LCAke3RoaXMuaGVpZ2h0fSlgfWVxdWFscyhhKXtyZXR1cm4gYT9hLndpZHRoPT09dGhpcy53aWR0aCYmYS5oZWlnaHQ9PT10aGlzLmhlaWdodDohMX19O18uZ28ucHJvdG90eXBlLmVxdWFscz1fLmdvLnByb3RvdHlwZS5lcXVhbHM7Xy5nby5wcm90b3R5cGUudG9TdHJpbmc9Xy5nby5wcm90b3R5cGUudG9TdHJpbmc7Xy5nby5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5nby5wcm90b3R5cGUuY29uc3RydWN0b3I7Xy5xbz1uZXcgXy5nbygwLDApO18ud20oXy5nbyk7Xy5EaGE9Xy5DbSh7eDpfLlhyLHk6Xy5Ycix6Ol8uWHJ9LCExKTtfLnFzPWNsYXNze2NvbnN0cnVjdG9yKGEpe3ZhciBiPShjLGQpPT5RbSgiVmVjdG9yM0QiLGMsKCk9PigwLF8uWHIpKGQpKTt0aGlzLnFoPWIoIngiLGEueCk7dGhpcy5yaD1iKCJ5IixhLnkpO3RoaXMuc2g9YigieiIsYS56KTthIGluc3RhbmNlb2YgXy5xc3x8Um0oYSx0aGlzLCJWZWN0b3IzRCIpfWdldCB4KCl7cmV0dXJuIHRoaXMucWh9Z2V0IHkoKXtyZXR1cm4gdGhpcy5yaH1nZXQgeigpe3JldHVybiB0aGlzLnNofWVxdWFscyhhKXtpZighYSlyZXR1cm4hMTtpZighKGEgaW5zdGFuY2VvZiBfLnFzKSl0cnl7bGV0IGI9KDAsXy5EaGEpKGEpO2E9bmV3IF8ucXMoYil9Y2F0Y2goYil7dGhyb3cgXy5BbSgibm90IGEgVmVjdG9yM0Qgb3IgVmVjdG9yM0RMaXRlcmFsIixiKTt9cmV0dXJuIF8uaW0odGhpcy5xaCxhLngpJiZfLmltKHRoaXMucmgsYS55KSYmXy5pbSh0aGlzLnNoLGEueil9dG9KU09OKCl7cmV0dXJue3g6dGhpcy54LHk6dGhpcy55LHo6dGhpcy56fX19OwpfLnFzLnByb3RvdHlwZS50b0pTT049Xy5xcy5wcm90b3R5cGUudG9KU09OO18ucXMucHJvdG90eXBlLmVxdWFscz1fLnFzLnByb3RvdHlwZS5lcXVhbHM7Xy5xcy5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy5xcy5wcm90b3R5cGUuY29uc3RydWN0b3I7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoXy5xcy5wcm90b3R5cGUse3g6e2VudW1lcmFibGU6ITB9LHk6e2VudW1lcmFibGU6ITB9LHo6e2VudW1lcmFibGU6ITB9fSk7dmFyIEVoYT1fLkptKGpvLCJub3QgYSB2YWxpZCBJbmZvV2luZG93IGFuY2hvciIpO18ucnM9e1JFUVVJUkVEOiJSRVFVSVJFRCIsUkVRVUlSRURfQU5EX0hJREVTX09QVElPTkFMOiJSRVFVSVJFRF9BTkRfSElERVNfT1BUSU9OQUwiLE9QVElPTkFMX0FORF9ISURFU19MT1dFUl9QUklPUklUWToiT1BUSU9OQUxfQU5EX0hJREVTX0xPV0VSX1BSSU9SSVRZIn07dmFyIEZoYT17Q0lSQ0xFOjAsRk9SV0FSRF9DTE9TRURfQVJST1c6MSxGT1JXQVJEX09QRU5fQVJST1c6MixCQUNLV0FSRF9DTE9TRURfQVJST1c6MyxCQUNLV0FSRF9PUEVOX0FSUk9XOjQsMDoiQ0lSQ0xFIiwxOiJGT1JXQVJEX0NMT1NFRF9BUlJPVyIsMjoiRk9SV0FSRF9PUEVOX0FSUk9XIiwzOiJCQUNLV0FSRF9DTE9TRURfQVJST1ciLDQ6IkJBQ0tXQVJEX09QRU5fQVJST1cifTt2YXIgc3M9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5ubChhKX1ubChhKXthPWF8fHt9O2EuY2xpY2thYmxlPV8ubG0oYS5jbGlja2FibGUsITApO2EudmlzaWJsZT1fLmxtKGEudmlzaWJsZSwhMCk7dGhpcy5zZXRWYWx1ZXMoYSk7Xy5IbCgibWFya2VyIil9fTsKXy5Xbihzcy5wcm90b3R5cGUse3Bvc2l0aW9uOl8uTW0oXy5YbSksdGl0bGU6Xy5icyxpY29uOl8uTW0oXy5LbShbXy5jcixfLkltKGE9PmEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmYS5sb2NhbE5hbWU9PT0iZ21wLXBpbiIsInNob3VsZCBiZSBhIFBpblZpZXciKSx7aUM6Xy5ObSgidXJsIiksdGhlbjpfLkNtKHt1cmw6Xy5jcixzY2FsZWRTaXplOl8uTW0oaW8pLHNpemU6Xy5NbShpbyksb3JpZ2luOl8uTW0oY28pLGFuY2hvcjpfLk1tKGNvKSxsYWJlbE9yaWdpbjpfLk1tKGNvKSxwYXRoOl8uSW0oYT0+YT09bnVsbCl9LCEwKX0se2lDOl8uTm0oInBhdGgiKSx0aGVuOl8uQ20oe3BhdGg6Xy5LbShbXy5jcixfLkZtKEZoYSldKSxhbmNob3I6Xy5NbShjbyksbGFiZWxPcmlnaW46Xy5NbShjbyksZmlsbENvbG9yOl8uYnMsZmlsbE9wYWNpdHk6Xy5hcyxyb3RhdGlvbjpfLmFzLHNjYWxlOl8uYXMsc3Ryb2tlQ29sb3I6Xy5icyxzdHJva2VPcGFjaXR5Ol8uYXMsc3Ryb2tlV2VpZ2h0Ol8uYXMsCnVybDpfLkltKGE9PmE9PW51bGwpfSwhMCl9XSkpLGxhYmVsOl8uTW0oXy5LbShbXy5jcix7aUM6Xy5ObSgidGV4dCIpLHRoZW46Xy5DbSh7dGV4dDpfLmNyLGZvbnRTaXplOl8uYnMsZm9udFdlaWdodDpfLmJzLGZvbnRGYW1pbHk6Xy5icyxjbGFzc05hbWU6Xy5ic30sITApfV0pKSxzaGFkb3c6Xy5TbCxzaGFwZTpfLlNsLGN1cnNvcjpfLmJzLGNsaWNrYWJsZTpfLmNzLGFuaW1hdGlvbjpfLlNsLGRyYWdnYWJsZTpfLmNzLHZpc2libGU6Xy5jcyxmbGF0Ol8uU2wsekluZGV4Ol8uYXMsb3BhY2l0eTpfLmFzLHBsYWNlOl8uTW0oXy5MbShfLkNtKHtwbGFjZUlkOl8uYnMscXVlcnk6Xy5icyxsb2NhdGlvbjpfLlhtfSksZnVuY3Rpb24oYSl7aWYoYS5wbGFjZUlkJiZhLnF1ZXJ5KXRocm93IF8uQW0oImNhbm5vdCBzZXQgYm90aCBwbGFjZUlkIGFuZCBxdWVyeSIpO2lmKCFhLnBsYWNlSWQmJiFhLnF1ZXJ5KXRocm93IF8uQW0oIm11c3Qgc2V0IG9uZSBvZiBwbGFjZUlkIG9yIHF1ZXJ5Iik7CnJldHVybiBhfSkpLGF0dHJpYnV0aW9uOl8uTW0oXy5DbSh7c291cmNlOl8uY3Isd2ViVXJsOl8uYnMsaW9zRGVlcExpbmtJZDpfLmJzfSkpfSk7Xy53bShzcyk7dmFyIEdoYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuc2g9YTt0aGlzLnRoPWI7dGhpcy5yaD0wO3RoaXMucWg9bnVsbH1nZXQoKXtpZih0aGlzLnJoPjApe3RoaXMucmgtLTt2YXIgYT10aGlzLnFoO3RoaXMucWg9YS5uZXh0O2EubmV4dD1udWxsfWVsc2UgYT10aGlzLnNoKCk7cmV0dXJuIGF9fTt2YXIgSGhhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yaD10aGlzLnFoPW51bGx9YWRkKGEsYil7dmFyIGM9ZmRhLmdldCgpO2Muc2V0KGEsYik7dGhpcy5yaD90aGlzLnJoLm5leHQ9Yzp0aGlzLnFoPWM7dGhpcy5yaD1jfXJlbW92ZSgpe3ZhciBhPW51bGw7dGhpcy5xaCYmKGE9dGhpcy5xaCx0aGlzLnFoPXRoaXMucWgubmV4dCx0aGlzLnFofHwodGhpcy5yaD1udWxsKSxhLm5leHQ9bnVsbCk7cmV0dXJuIGF9fSxmZGE9bmV3IEdoYSgoKT0+bmV3IEloYSxhPT5hLnJlc2V0KCkpLEloYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuVHY9bnVsbH1zZXQoYSxiKXt0aGlzLlR2PWE7dGhpcy5zY29wZT1iO3RoaXMubmV4dD1udWxsfXJlc2V0KCl7dGhpcy5uZXh0PXRoaXMuc2NvcGU9dGhpcy5Udj1udWxsfX07dmFyIHZzLGtvLGVkYSxKaGE7a289ITE7ZWRhPW5ldyBIaGE7Xy55cD0oYSxiKT0+e3ZzfHxKaGEoKTtrb3x8KHZzKCksa289ITApO2VkYS5hZGQoYSxiKX07SmhhPSgpPT57dmFyIGE9UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk7dnM9KCk9PnthLnRoZW4oZ2RhKX19O3ZhciBLaGE7Cl8uTGhhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuYWk9W107dGhpcy5kcz1hJiZhLmRzP2EuZHM6KCk9Pnt9O3RoaXMuc3Q9YSYmYS5zdD9hLnN0OigpPT57fX1hZGRMaXN0ZW5lcihhLGIpe2lkYSh0aGlzLGEsYiwhMSl9YWRkTGlzdGVuZXJPbmNlKGEsYil7aWRhKHRoaXMsYSxiLCEwKX1yZW1vdmVMaXN0ZW5lcihhLGIpe3RoaXMuYWkubGVuZ3RoJiYoKGE9dGhpcy5haS5maW5kKGhkYShhLGIpKSkmJnRoaXMuYWkuc3BsaWNlKHRoaXMuYWkuaW5kZXhPZihhKSwxKSx0aGlzLmFpLmxlbmd0aHx8dGhpcy5kcygpKX10dShhLGIpe3ZhciBjPXRoaXMuYWkuc2xpY2UoMCksZD0oKT0+e2ZvcihsZXQgZSBvZiBjKWEoZj0+e2lmKGUub25jZSl7aWYoZS5vbmNlLkVHKXJldHVybjtlLm9uY2UuRUc9ITA7dGhpcy5haS5zcGxpY2UodGhpcy5haS5pbmRleE9mKGUpLDEpO3RoaXMuYWkubGVuZ3RofHx0aGlzLmRzKCl9ZS5Udi5jYWxsKGUuY29udGV4dCxmKX0pfTtiJiZiLnN5bmM/ZCgpOgooS2hhfHxfLnlwKShkKX19O0toYT1udWxsO18uTWhhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5haT1uZXcgXy5MaGEoe2RzOigpPT57dGhpcy5kcygpfSxzdDooKT0+e3RoaXMuc3QoKX19KX1zdCgpe31kcygpe31hZGRMaXN0ZW5lcihhLGIpe3RoaXMuYWkuYWRkTGlzdGVuZXIoYSxiKX1hZGRMaXN0ZW5lck9uY2UoYSxiKXt0aGlzLmFpLmFkZExpc3RlbmVyT25jZShhLGIpfXJlbW92ZUxpc3RlbmVyKGEsYil7dGhpcy5haS5yZW1vdmVMaXN0ZW5lcihhLGIpfW5vdGlmeShhKXt0aGlzLmFpLnR1KGI9PntiKHRoaXMuZ2V0KCkpfSxhKX19O18uTmhhPWNsYXNzIGV4dGVuZHMgXy5NaGF7Y29uc3RydWN0b3IoYT0hMSl7c3VwZXIoKTt0aGlzLnNoPWF9c2V0KGEpe3RoaXMuc2gmJnRoaXMuZ2V0KCk9PT1hfHwodGhpcy5yaChhKSx0aGlzLm5vdGlmeSgpKX19O18ubG89Y2xhc3MgZXh0ZW5kcyBfLk5oYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGIpO3RoaXMudmFsdWU9YX1nZXQoKXtyZXR1cm4gdGhpcy52YWx1ZX1yaChhKXt0aGlzLnZhbHVlPWF9fTtfLnFiKF8ubm8sXy55bik7dmFyIHdzPV8uTW0oXy5FbShfLm5vLCJTdHJlZXRWaWV3UGFub3JhbWEiKSk7dmFyIE9oYTtPaGE9ITE7Cl8ueHM9Y2xhc3MgZXh0ZW5kcyBzc3tnZXRNYXAoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcCIpfXNldE1hcChhKXt0aGlzLnNldCgibWFwIixhKX1zZXRPcHRpb25zKGEpe3RoaXMuc2V0VmFsdWVzKGEpfWNvbnN0cnVjdG9yKGEpe3N1cGVyKGEpO3RoaXMubmwoYSl9bmwoYSl7dmFyIGI9YT9hLmludGVybmFsTWFya2VyOiExO09oYXx8Ynx8KE9oYT0hMCxjb25zb2xlLndhcm4oIkFzIG9mIEZlYnJ1YXJ5IDIxc3QsIDIwMjQsIGdvb2dsZS5tYXBzLk1hcmtlciBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGdvb2dsZS5tYXBzLm1hcmtlci5BZHZhbmNlZE1hcmtlckVsZW1lbnQgaW5zdGVhZC4gQXQgdGhpcyB0aW1lLCBnb29nbGUubWFwcy5NYXJrZXIgaXMgbm90IHNjaGVkdWxlZCB0byBiZSBkaXNjb250aW51ZWQsIGJ1dCBnb29nbGUubWFwcy5tYXJrZXIuQWR2YW5jZWRNYXJrZXJFbGVtZW50IGlzIHJlY29tbWVuZGVkIG92ZXIgZ29vZ2xlLm1hcHMuTWFya2VyLiBXaGlsZSBnb29nbGUubWFwcy5NYXJrZXIgd2lsbCBjb250aW51ZSB0byByZWNlaXZlIGJ1ZyBmaXhlcyBmb3IgYW55IG1ham9yIHJlZ3Jlc3Npb25zLCBleGlzdGluZyBidWdzIGluIGdvb2dsZS5tYXBzLk1hcmtlciB3aWxsIG5vdCBiZSBhZGRyZXNzZWQuIEF0IGxlYXN0IDEyIG1vbnRocyBub3RpY2Ugd2lsbCBiZSBnaXZlbiBiZWZvcmUgc3VwcG9ydCBpcyBkaXNjb250aW51ZWQuIFBsZWFzZSBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kZXByZWNhdGlvbnMgZm9yIGFkZGl0aW9uYWwgZGV0YWlscyBhbmQgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvYWR2YW5jZWQtbWFya2Vycy9taWdyYXRpb24gZm9yIHRoZSBtaWdyYXRpb24gZ3VpZGUuIikpO2pkYSh0aGlzKTsKc3MuY2FsbCh0aGlzLGEpfW1hcF9jaGFuZ2VkKCl7amRhKHRoaXMpO3ZhciBhPXRoaXMuZ2V0KCJtYXAiKTthPWEmJmEuX19nbS5tYXJrZXJzO3RoaXMuX19nbSYmdGhpcy5fX2dtLnNldD09PWF8fCh0aGlzLl9fZ20mJnRoaXMuX19nbS5zZXQmJnRoaXMuX19nbS5zZXQucmVtb3ZlKHRoaXMpLCh0aGlzLl9fZ20uc2V0PWEpJiZfLkRwKGEsdGhpcykpfX07Xy54cy5wcm90b3R5cGUuY29uc3RydWN0b3I9Xy54cy5wcm90b3R5cGUuY29uc3RydWN0b3I7Xy54cy5wcm90b3R5cGUuc2V0T3B0aW9ucz1fLnhzLnByb3RvdHlwZS5zZXRPcHRpb25zO18ueHMucHJvdG90eXBlLnNldE1hcD1fLnhzLnByb3RvdHlwZS5zZXRNYXA7Xy54cy5wcm90b3R5cGUuZ2V0TWFwPV8ueHMucHJvdG90eXBlLmdldE1hcDtfLnhzLk1BWF9aSU5ERVg9MUU2O18ubmIoIm1vZHVsZSRleHBvcnRzJGdvb2dsZTMkbWFwcyRhcGkkamF2YXNjcmlwdCRtYXJrZXIkbWFya2VyLk1hcmtlci5NQVhfWklOREVYIixfLnhzLk1BWF9aSU5ERVgpOwpfLlduKF8ueHMucHJvdG90eXBlLHttYXA6Xy5LbShbXy5ocyx3c10pfSk7Xy53bShfLnhzKTt2YXIgUGhhPWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5pbmZvV2luZG93PWE7dGhpcy5mdD1iO3RoaXMuaW5mb1dpbmRvdy5hZGRMaXN0ZW5lcigibWFwX2NoYW5nZWQiLCgpPT57dmFyIGM9dGhpcy5nZXQoImludGVybmFsQW5jaG9yIiksZD1ybyhjKTtqbyhjKSYmZCYmZC5zZXQoImlzT3BlbiIsISF0aGlzLmluZm9XaW5kb3cuZ2V0KCJtYXAiKSk7IXRoaXMuaW5mb1dpbmRvdy5nZXQoIm1hcCIpJiZkJiZkLmdldCgibWFwIikmJnRoaXMuc2V0KCJpbnRlcm5hbEFuY2hvciIsbnVsbCl9KTt0aGlzLmJpbmRUbygicGVuZGluZ0ZvY3VzIix0aGlzLmluZm9XaW5kb3cpO3RoaXMuYmluZFRvKCJtYXAiLHRoaXMuaW5mb1dpbmRvdyk7dGhpcy5iaW5kVG8oImRpc2FibGVBdXRvUGFuIix0aGlzLmluZm9XaW5kb3cpO3RoaXMuYmluZFRvKCJoZWFkZXJEaXNhYmxlZCIsdGhpcy5pbmZvV2luZG93KTt0aGlzLmJpbmRUbygibWF4V2lkdGgiLHRoaXMuaW5mb1dpbmRvdyk7CnRoaXMuYmluZFRvKCJtaW5XaWR0aCIsdGhpcy5pbmZvV2luZG93KTt0aGlzLmJpbmRUbygicG9zaXRpb24iLHRoaXMuaW5mb1dpbmRvdyk7dGhpcy5iaW5kVG8oInpJbmRleCIsdGhpcy5pbmZvV2luZG93KTt0aGlzLmJpbmRUbygiYXJpYUxhYmVsIix0aGlzLmluZm9XaW5kb3cpO3RoaXMuYmluZFRvKCJpbnRlcm5hbEFuY2hvciIsdGhpcy5pbmZvV2luZG93LCJhbmNob3IiKTt0aGlzLmJpbmRUbygiaW50ZXJuYWxIZWFkZXJDb250ZW50Iix0aGlzLmluZm9XaW5kb3csImhlYWRlckNvbnRlbnQiKTt0aGlzLmJpbmRUbygiaW50ZXJuYWxDb250ZW50Iix0aGlzLmluZm9XaW5kb3csImNvbnRlbnQiKTt0aGlzLmJpbmRUbygiaW50ZXJuYWxQaXhlbE9mZnNldCIsdGhpcy5pbmZvV2luZG93LCJwaXhlbE9mZnNldCIpO3RoaXMuYmluZFRvKCJzaG91bGRGb2N1cyIsdGhpcy5pbmZvV2luZG93KX1pbnRlcm5hbEFuY2hvcl9jaGFuZ2VkKCl7dmFyIGE9cm8odGhpcy5nZXQoImludGVybmFsQW5jaG9yIikpOwpvbyh0aGlzLCJhdHRyaWJ1dGlvbiIsYSk7b28odGhpcywicGxhY2UiLGEpO29vKHRoaXMsInBpeGVsUG9zaXRpb24iLGEpO29vKHRoaXMsImludGVybmFsQW5jaG9yTWFwIixhLCJtYXAiLCEwKTt0aGlzLmludGVybmFsQW5jaG9yTWFwX2NoYW5nZWQoITApO29vKHRoaXMsImludGVybmFsQW5jaG9yUG9pbnQiLGEsImFuY2hvclBvaW50Iik7YSBpbnN0YW5jZW9mIF8ueHM/b28odGhpcywiaW50ZXJuYWxBbmNob3JQb3NpdGlvbiIsYSwiaW50ZXJuYWxQb3NpdGlvbiIpOm9vKHRoaXMsImludGVybmFsQW5jaG9yUG9zaXRpb24iLGEsInBvc2l0aW9uIil9aW50ZXJuYWxBbmNob3JQb2ludF9jaGFuZ2VkKCl7a2RhKHRoaXMpfWludGVybmFsUGl4ZWxPZmZzZXRfY2hhbmdlZCgpe2tkYSh0aGlzKX1pbnRlcm5hbEFuY2hvclBvc2l0aW9uX2NoYW5nZWQoKXt2YXIgYT10aGlzLmdldCgiaW50ZXJuYWxBbmNob3JQb3NpdGlvbiIpO2EmJnRoaXMuc2V0KCJwb3NpdGlvbiIsYSl9aW50ZXJuYWxBbmNob3JNYXBfY2hhbmdlZChhPQohMSl7dGhpcy5nZXQoImludGVybmFsQW5jaG9yIikmJihhfHx0aGlzLmdldCgiaW50ZXJuYWxBbmNob3JNYXAiKSE9PXRoaXMuaW5mb1dpbmRvdy5nZXQoIm1hcCIpKSYmdGhpcy5pbmZvV2luZG93LnNldCgibWFwIix0aGlzLmdldCgiaW50ZXJuYWxBbmNob3JNYXAiKSl9aW50ZXJuYWxIZWFkZXJDb250ZW50X2NoYW5nZWQoKXt2YXIgYT10aGlzLmdldCgiaW50ZXJuYWxIZWFkZXJDb250ZW50Iik7aWYodHlwZW9mIGE9PT0ic3RyaW5nIil7bGV0IGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2IudGV4dENvbnRlbnQ9YTthPWJ9dGhpcy5zZXQoImhlYWRlckNvbnRlbnQiLGEpfWludGVybmFsQ29udGVudF9jaGFuZ2VkKCl7dmFyIGE9dGhpcy5zZXQsYjtpZihiPXRoaXMuZ2V0KCJpbnRlcm5hbENvbnRlbnQiKSl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Xy56aihjLF8uRGwoYikpfWVsc2UgYi5ub2RlVHlwZT09PQpOb2RlLlRFWFRfTk9ERT8oYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxjLmFwcGVuZENoaWxkKGIpKTpjPWI7Yj1jfWVsc2UgYj1udWxsO2EuY2FsbCh0aGlzLCJjb250ZW50IixiKX10cmlnZ2VyKGEpe18ud24odGhpcy5pbmZvV2luZG93LGEpfWNsb3NlKCl7dGhpcy5pbmZvV2luZG93LnNldCgibWFwIixudWxsKX19O18ueXM9Y2xhc3MgZXh0ZW5kcyBfLnlue3NldE9wdGlvbnMoYSl7dGhpcy5zZXRWYWx1ZXMoYSl9c2V0SGVhZGVyQ29udGVudChhKXt0aGlzLnNldCgiaGVhZGVyQ29udGVudCIsYSl9Z2V0SGVhZGVyQ29udGVudCgpe3JldHVybiB0aGlzLmdldCgiaGVhZGVyQ29udGVudCIpfXNldEhlYWRlckRpc2FibGVkKGEpe3RoaXMuc2V0KCJoZWFkZXJEaXNhYmxlZCIsYSl9Z2V0SGVhZGVyRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5nZXQoImhlYWRlckRpc2FibGVkIil9c2V0Q29udGVudChhKXt0aGlzLnNldCgiY29udGVudCIsYSl9Z2V0Q29udGVudCgpe3JldHVybiB0aGlzLmdldCgiY29udGVudCIpfXNldFBvc2l0aW9uKGEpe3RoaXMuc2V0KCJwb3NpdGlvbiIsYSl9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5nZXQoInBvc2l0aW9uIil9c2V0WkluZGV4KGEpe3RoaXMuc2V0KCJ6SW5kZXgiLGEpfWdldFpJbmRleCgpe3JldHVybiB0aGlzLmdldCgiekluZGV4Iil9c2V0TWFwKGEpe3RoaXMuc2V0KCJtYXAiLAphKX1nZXRNYXAoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcCIpfXNldEFuY2hvcihhKXt0aGlzLnNldCgiYW5jaG9yIixhKX1nZXRBbmNob3IoKXtyZXR1cm4gdGhpcy5nZXQoImFuY2hvciIpfWNvbnN0cnVjdG9yKGEpe2Z1bmN0aW9uIGIoKXtlfHwoZT0hMCxfLkhsKCJpbmZvd2luZG93IikudGhlbihmPT57Zi51TChkKX0pKX1zdXBlcigpO3dpbmRvdy5zZXRUaW1lb3V0KCgpPT57Xy5IbCgiaW5mb3dpbmRvdyIpfSwxMDApO2E9YXx8e307dmFyIGM9ISFhLmZ0O2RlbGV0ZSBhLmZ0O3ZhciBkPW5ldyBQaGEodGhpcyxjKSxlPSExO18udG4odGhpcywiYW5jaG9yX2NoYW5nZWQiLGIpO18udG4odGhpcywibWFwX2NoYW5nZWQiLGIpO3RoaXMuc2V0VmFsdWVzKGEpfW9wZW4oYSxiKXt2YXIgYz1iO2I9e307dHlwZW9mIGEhPT0ib2JqZWN0Inx8IWF8fGEgaW5zdGFuY2VvZiBfLm5vfHxhIGluc3RhbmNlb2YgXy5Mbj8oYi5tYXA9YSxiLmFuY2hvcj1jKTooYi5tYXA9YS5tYXAsYi5zaG91bGRGb2N1cz0KYS5zaG91bGRGb2N1cyxiLmFuY2hvcj1jfHxhLmFuY2hvcik7YT0oYT1ybyhiLmFuY2hvcikpJiZhLmdldCgibWFwIik7YT1hIGluc3RhbmNlb2YgXy5Mbnx8YSBpbnN0YW5jZW9mIF8ubm87Yi5tYXB8fGF8fGNvbnNvbGUud2FybigiSW5mb1dpbmRvdy5vcGVuKCkgd2FzIGNhbGxlZCB3aXRob3V0IGFuIGFzc29jaWF0ZWQgTWFwIG9yIFN0cmVldFZpZXdQYW5vcmFtYSBpbnN0YW5jZS4iKTt2YXIgZD17Li4uYn07YT1kLm1hcDtiPWQuYW5jaG9yO2M9dGhpcy5zZXQ7e3ZhciBlPWQubWFwO2xldCBmPWQuc2hvdWxkRm9jdXM7ZT10eXBlb2YgZj09PSJib29sZWFuIj9mOihlPShkPXJvKGQuYW5jaG9yKSkmJmQuZ2V0KCJtYXAiKXx8ZSk/ZS5fX2dtLmdldCgiaXNJbml0aWFsaXplZCIpOiExfWMuY2FsbCh0aGlzLCJzaG91bGRGb2N1cyIsZSk7dGhpcy5zZXQoImFuY2hvciIsYik7Yj8hdGhpcy5nZXQoIm1hcCIpJiZhJiZ0aGlzLnNldCgibWFwIixhKTp0aGlzLnNldCgibWFwIixhKX1nZXQgaXNPcGVuKCl7cmV0dXJuISF0aGlzLmdldCgibWFwIil9Y2xvc2UoKXt0aGlzLnNldCgibWFwIiwKbnVsbCl9Zm9jdXMoKXt0aGlzLmdldCgibWFwIikmJiF0aGlzLmdldCgicGVuZGluZ0ZvY3VzIikmJnRoaXMuc2V0KCJwZW5kaW5nRm9jdXMiLCEwKX19O18ueXMucHJvdG90eXBlLmZvY3VzPV8ueXMucHJvdG90eXBlLmZvY3VzO18ueXMucHJvdG90eXBlLmNsb3NlPV8ueXMucHJvdG90eXBlLmNsb3NlO18ueXMucHJvdG90eXBlLm9wZW49Xy55cy5wcm90b3R5cGUub3BlbjtfLnlzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1fLnlzLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtfLnlzLnByb3RvdHlwZS5nZXRBbmNob3I9Xy55cy5wcm90b3R5cGUuZ2V0QW5jaG9yO18ueXMucHJvdG90eXBlLnNldEFuY2hvcj1fLnlzLnByb3RvdHlwZS5zZXRBbmNob3I7Xy55cy5wcm90b3R5cGUuZ2V0TWFwPV8ueXMucHJvdG90eXBlLmdldE1hcDtfLnlzLnByb3RvdHlwZS5zZXRNYXA9Xy55cy5wcm90b3R5cGUuc2V0TWFwO18ueXMucHJvdG90eXBlLmdldFpJbmRleD1fLnlzLnByb3RvdHlwZS5nZXRaSW5kZXg7Cl8ueXMucHJvdG90eXBlLnNldFpJbmRleD1fLnlzLnByb3RvdHlwZS5zZXRaSW5kZXg7Xy55cy5wcm90b3R5cGUuZ2V0UG9zaXRpb249Xy55cy5wcm90b3R5cGUuZ2V0UG9zaXRpb247Xy55cy5wcm90b3R5cGUuc2V0UG9zaXRpb249Xy55cy5wcm90b3R5cGUuc2V0UG9zaXRpb247Xy55cy5wcm90b3R5cGUuZ2V0Q29udGVudD1fLnlzLnByb3RvdHlwZS5nZXRDb250ZW50O18ueXMucHJvdG90eXBlLnNldENvbnRlbnQ9Xy55cy5wcm90b3R5cGUuc2V0Q29udGVudDtfLnlzLnByb3RvdHlwZS5nZXRIZWFkZXJEaXNhYmxlZD1fLnlzLnByb3RvdHlwZS5nZXRIZWFkZXJEaXNhYmxlZDtfLnlzLnByb3RvdHlwZS5zZXRIZWFkZXJEaXNhYmxlZD1fLnlzLnByb3RvdHlwZS5zZXRIZWFkZXJEaXNhYmxlZDtfLnlzLnByb3RvdHlwZS5nZXRIZWFkZXJDb250ZW50PV8ueXMucHJvdG90eXBlLmdldEhlYWRlckNvbnRlbnQ7Xy55cy5wcm90b3R5cGUuc2V0SGVhZGVyQ29udGVudD1fLnlzLnByb3RvdHlwZS5zZXRIZWFkZXJDb250ZW50OwpfLnlzLnByb3RvdHlwZS5zZXRPcHRpb25zPV8ueXMucHJvdG90eXBlLnNldE9wdGlvbnM7Xy5XbihfLnlzLnByb3RvdHlwZSx7aGVhZGVyQ29udGVudDpfLkttKFtfLmJzLF8uSW0oXy5EbSldKSxoZWFkZXJEaXNhYmxlZDpfLk1tKCRyKSxjb250ZW50Ol8uS20oW18uYnMsXy5JbShfLkRtKV0pLHBvc2l0aW9uOl8uTW0oXy5YbSksc2l6ZTpfLk1tKGlvKSxtYXA6Xy5LbShbXy5ocyx3c10pLGFuY2hvcjpfLk1tKF8uS20oW18uRW0oXy55biwiTVZDT2JqZWN0IiksRWhhXSkpLHpJbmRleDpfLmFzfSk7Xy56cz1jbGFzcyBleHRlbmRzIF8ueW57Z2V0TWFwKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXAiKX1zZXRNYXAoYSl7dGhpcy5zZXQoIm1hcCIsYSl9Z2V0VXJsKCl7cmV0dXJuIHRoaXMuZ2V0KCJ1cmwiKX1nZXRCb3VuZHMoKXtyZXR1cm4gdGhpcy5nZXQoImJvdW5kcyIpfXNldE9wdGlvbnMoYSl7dGhpcy5zZXRWYWx1ZXMoYSl9Z2V0T3BhY2l0eSgpe3JldHVybiB0aGlzLmdldCgib3BhY2l0eSIpfXNldE9wYWNpdHkoYSl7dGhpcy5zZXQoIm9wYWNpdHkiLGEpfWNvbnN0cnVjdG9yKGEsYixjKXtzdXBlcigpO3RoaXMubmwoYSxiLGMpfW5sKGEsYixjKXt0aGlzLnNldCgidXJsIixhKTt0aGlzLnNldCgiYm91bmRzIixfLk1tKF8uVG4pKGIpKTt0aGlzLnNldFZhbHVlcyhjKX1tYXBfY2hhbmdlZCgpe18uSGwoImttbCIpLnRoZW4oYT0+e3RoaXMuZ2V0KCJtYXAiKT90aGlzLmdldCgibWFwIikuX19nbS5HaC50aGVuKCgpPT57YS5wRyh0aGlzKX0pOmEucEcodGhpcyl9KX19OwpfLnpzLnByb3RvdHlwZS5zZXRPcGFjaXR5PV8uenMucHJvdG90eXBlLnNldE9wYWNpdHk7Xy56cy5wcm90b3R5cGUuZ2V0T3BhY2l0eT1fLnpzLnByb3RvdHlwZS5nZXRPcGFjaXR5O18uenMucHJvdG90eXBlLmdldEJvdW5kcz1fLnpzLnByb3RvdHlwZS5nZXRCb3VuZHM7Xy56cy5wcm90b3R5cGUuZ2V0VXJsPV8uenMucHJvdG90eXBlLmdldFVybDtfLnpzLnByb3RvdHlwZS5zZXRNYXA9Xy56cy5wcm90b3R5cGUuc2V0TWFwO18uenMucHJvdG90eXBlLmdldE1hcD1fLnpzLnByb3RvdHlwZS5nZXRNYXA7Xy53bShfLnpzKTtfLlduKF8uenMucHJvdG90eXBlLHttYXA6Xy5ocyx1cmw6bnVsbCxib3VuZHM6bnVsbCxvcGFjaXR5Ol8uYXN9KTtfLnFiKHNvLF8ueW4pO3NvLnByb3RvdHlwZS54aD1mdW5jdGlvbigpe18uSGwoImttbCIpLnRoZW4oYT0+e2EueEwodGhpcyl9KX07c28ucHJvdG90eXBlLnVybF9jaGFuZ2VkPXNvLnByb3RvdHlwZS54aDtzby5wcm90b3R5cGUubWFwX2NoYW5nZWQ9c28ucHJvdG90eXBlLnhoO3NvLnByb3RvdHlwZS56SW5kZXhfY2hhbmdlZD1zby5wcm90b3R5cGUueGg7Xy5Xbihzby5wcm90b3R5cGUse21hcDpfLmhzLGRlZmF1bHRWaWV3cG9ydDpudWxsLG1ldGFkYXRhOm51bGwsc3RhdHVzOm51bGwsdXJsOl8uYnMsc2NyZWVuT3ZlcmxheXM6Xy5jcyx6SW5kZXg6Xy5hc30pO18uQXM9Y2xhc3MgZXh0ZW5kcyBfLnlue2dldE1hcCgpe3JldHVybiB0aGlzLmdldCgibWFwIil9c2V0TWFwKGEpe3RoaXMuc2V0KCJtYXAiLGEpfWNvbnN0cnVjdG9yKCl7c3VwZXIoKTtfLkhsKCJsYXllcnMiKS50aGVuKGE9PnthLnRMKHRoaXMpfSl9fTtfLkFzLnByb3RvdHlwZS5zZXRNYXA9Xy5Bcy5wcm90b3R5cGUuc2V0TWFwO18uQXMucHJvdG90eXBlLmdldE1hcD1fLkFzLnByb3RvdHlwZS5nZXRNYXA7Xy5XbihfLkFzLnByb3RvdHlwZSx7bWFwOl8uaHN9KTt2YXIgQnM9Y2xhc3MgZXh0ZW5kcyBfLnlue3NldE9wdGlvbnMoYSl7dGhpcy5zZXRWYWx1ZXMoYSl9Z2V0TWFwKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXAiKX1zZXRNYXAoYSl7dGhpcy5zZXQoIm1hcCIsYSl9Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnNldFZhbHVlcyhhKTtfLkhsKCJsYXllcnMiKS50aGVuKGI9PntiLkFMKHRoaXMpfSl9fTtCcy5wcm90b3R5cGUuc2V0TWFwPUJzLnByb3RvdHlwZS5zZXRNYXA7QnMucHJvdG90eXBlLmdldE1hcD1Ccy5wcm90b3R5cGUuZ2V0TWFwO0JzLnByb3RvdHlwZS5zZXRPcHRpb25zPUJzLnByb3RvdHlwZS5zZXRPcHRpb25zO18uV24oQnMucHJvdG90eXBlLHttYXA6Xy5oc30pO3ZhciBDcz1jbGFzcyBleHRlbmRzIF8ueW57Z2V0TWFwKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXAiKX1zZXRNYXAoYSl7dGhpcy5zZXQoIm1hcCIsYSl9Y29uc3RydWN0b3IoKXtzdXBlcigpO18uSGwoImxheWVycyIpLnRoZW4oYT0+e2EuQkwodGhpcyl9KX19O0NzLnByb3RvdHlwZS5zZXRNYXA9Q3MucHJvdG90eXBlLnNldE1hcDtDcy5wcm90b3R5cGUuZ2V0TWFwPUNzLnByb3RvdHlwZS5nZXRNYXA7Xy5XbihDcy5wcm90b3R5cGUse21hcDpfLmhzfSk7dmFyIHZvO18uRHM9e2FrOmE9PmE/LnNwbGl0KC9ccysvKS5maWx0ZXIoQm9vbGVhbik/P251bGwsTGo6YT0+YT8uam9pbigiICIpPz9udWxsfTt2bz1uZXcgTWFwO18ueW89Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5taW5ZPXRoaXMubWluWD1JbmZpbml0eTt0aGlzLm1heFk9dGhpcy5tYXhYPS1JbmZpbml0eTsoYXx8W10pLmZvckVhY2goYj0+dm9pZCB0aGlzLmV4dGVuZChiKSl9aXNFbXB0eSgpe3JldHVybiEodGhpcy5taW5YPHRoaXMubWF4WCYmdGhpcy5taW5ZPHRoaXMubWF4WSl9dG9TdHJpbmcoKXtyZXR1cm5gKCR7dGhpcy5taW5YfSwgJHt0aGlzLm1pbll9LCAke3RoaXMubWF4WH0sICR7dGhpcy5tYXhZfSlgfWV4dGVuZChhKXthJiYodGhpcy5taW5YPU1hdGgubWluKHRoaXMubWluWCxhLngpLHRoaXMubWF4WD1NYXRoLm1heCh0aGlzLm1heFgsYS54KSx0aGlzLm1pblk9TWF0aC5taW4odGhpcy5taW5ZLGEueSksdGhpcy5tYXhZPU1hdGgubWF4KHRoaXMubWF4WSxhLnkpKX1leHRlbmRCeUJvdW5kcyhhKXthJiYodGhpcy5taW5YPU1hdGgubWluKHRoaXMubWluWCxhLm1pblgpLHRoaXMubWF4WD1NYXRoLm1heCh0aGlzLm1heFgsYS5tYXhYKSwKdGhpcy5taW5ZPU1hdGgubWluKHRoaXMubWluWSxhLm1pblkpLHRoaXMubWF4WT1NYXRoLm1heCh0aGlzLm1heFksYS5tYXhZKSl9Z2V0U2l6ZSgpe3JldHVybiBuZXcgXy5nbyh0aGlzLm1heFgtdGhpcy5taW5YLHRoaXMubWF4WS10aGlzLm1pblkpfWdldENlbnRlcigpe3JldHVybiBuZXcgXy5ibygodGhpcy5taW5YK3RoaXMubWF4WCkvMiwodGhpcy5taW5ZK3RoaXMubWF4WSkvMil9ZXF1YWxzKGEpe3JldHVybiBhP3RoaXMubWluWD09PWEubWluWCYmdGhpcy5taW5ZPT09YS5taW5ZJiZ0aGlzLm1heFg9PT1hLm1heFgmJnRoaXMubWF4WT09PWEubWF4WTohMX1jb250YWluc1BvaW50KGEpe3JldHVybiB0aGlzLm1pblg8PWEueCYmYS54PHRoaXMubWF4WCYmdGhpcy5taW5ZPD1hLnkmJmEueTx0aGlzLm1heFl9Y29udGFpbnNCb3VuZHMoYSl7cmV0dXJuIHRoaXMubWluWDw9YS5taW5YJiZ0aGlzLm1heFg+PWEubWF4WCYmdGhpcy5taW5ZPD1hLm1pblkmJnRoaXMubWF4WT49YS5tYXhZfX07Cl8uRXM9Xy56bygtSW5maW5pdHksLUluZmluaXR5LEluZmluaXR5LEluZmluaXR5KTtfLnpvKDAsMCwwLDApO18ucWIoXy5FbyxfLnluKTtfLkVvLnByb3RvdHlwZS5nZXRBdD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xaFthXX07Xy5Fby5wcm90b3R5cGUuZ2V0QXQ9Xy5Fby5wcm90b3R5cGUuZ2V0QXQ7Xy5Fby5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhKXtmb3IobGV0IGI9MCxjPXRoaXMucWgubGVuZ3RoO2I8YzsrK2IpaWYoYT09PXRoaXMucWhbYl0pcmV0dXJuIGI7cmV0dXJuLTF9O18uRW8ucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYSl7Zm9yKGxldCBiPTAsYz10aGlzLnFoLmxlbmd0aDtiPGM7KytiKWEodGhpcy5xaFtiXSxiKX07Xy5Fby5wcm90b3R5cGUuZm9yRWFjaD1fLkVvLnByb3RvdHlwZS5mb3JFYWNoOwpfLkVvLnByb3RvdHlwZS5zZXRBdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucWhbYV0sZD10aGlzLnFoLmxlbmd0aDtpZihhPGQpdGhpcy5xaFthXT1iLF8ud24odGhpcywic2V0X2F0IixhLGMpLHRoaXMudGgmJnRoaXMudGgoYSxjKTtlbHNle2ZvcihjPWQ7YzxhOysrYyl0aGlzLmluc2VydEF0KGMsdm9pZCAwKTt0aGlzLmluc2VydEF0KGEsYil9fTtfLkVvLnByb3RvdHlwZS5zZXRBdD1fLkVvLnByb3RvdHlwZS5zZXRBdDtfLkVvLnByb3RvdHlwZS5pbnNlcnRBdD1mdW5jdGlvbihhLGIpe3RoaXMucWguc3BsaWNlKGEsMCxiKTtEbyh0aGlzKTtfLnduKHRoaXMsImluc2VydF9hdCIsYSk7dGhpcy5yaCYmdGhpcy5yaChhKX07Xy5Fby5wcm90b3R5cGUuaW5zZXJ0QXQ9Xy5Fby5wcm90b3R5cGUuaW5zZXJ0QXQ7Cl8uRW8ucHJvdG90eXBlLnJlbW92ZUF0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucWhbYV07dGhpcy5xaC5zcGxpY2UoYSwxKTtEbyh0aGlzKTtfLnduKHRoaXMsInJlbW92ZV9hdCIsYSxiKTt0aGlzLnNoJiZ0aGlzLnNoKGEsYik7cmV0dXJuIGJ9O18uRW8ucHJvdG90eXBlLnJlbW92ZUF0PV8uRW8ucHJvdG90eXBlLnJlbW92ZUF0O18uRW8ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7dGhpcy5pbnNlcnRBdCh0aGlzLnFoLmxlbmd0aCxhKTtyZXR1cm4gdGhpcy5xaC5sZW5ndGh9O18uRW8ucHJvdG90eXBlLnB1c2g9Xy5Fby5wcm90b3R5cGUucHVzaDtfLkVvLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW1vdmVBdCh0aGlzLnFoLmxlbmd0aC0xKX07Xy5Fby5wcm90b3R5cGUucG9wPV8uRW8ucHJvdG90eXBlLnBvcDtfLkVvLnByb3RvdHlwZS5nZXRBcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnFofTtfLkVvLnByb3RvdHlwZS5nZXRBcnJheT1fLkVvLnByb3RvdHlwZS5nZXRBcnJheTsKXy5Fby5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZ2V0KCJsZW5ndGgiKTspdGhpcy5wb3AoKX07Xy5Fby5wcm90b3R5cGUuY2xlYXI9Xy5Fby5wcm90b3R5cGUuY2xlYXI7Xy5XbihfLkVvLnByb3RvdHlwZSx7bGVuZ3RoOm51bGx9KTt2YXIgcGRhPXJkYShfLkVtKF8uVG0sIkxhdExuZyIpKTtfLlNvPWNsYXNzIGV4dGVuZHMgXy55bntnZXRSYWRpdXMoKXtyZXR1cm4gdGhpcy5nZXQoInJhZGl1cyIpfXNldFJhZGl1cyhhKXt0aGlzLnNldCgicmFkaXVzIixhKX1nZXRDZW50ZXIoKXtyZXR1cm4gdGhpcy5nZXQoImNlbnRlciIpfXNldENlbnRlcihhKXt0aGlzLnNldCgiY2VudGVyIixhKX1nZXRNYXAoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcCIpfXNldE1hcChhKXt0aGlzLnNldCgibWFwIixhKX1nZXREcmFnZ2FibGUoKXtyZXR1cm4gdGhpcy5nZXQoImRyYWdnYWJsZSIpfXNldERyYWdnYWJsZShhKXt0aGlzLnNldCgiZHJhZ2dhYmxlIixhKX1nZXRFZGl0YWJsZSgpe3JldHVybiB0aGlzLmdldCgiZWRpdGFibGUiKX1zZXRFZGl0YWJsZShhKXt0aGlzLnNldCgiZWRpdGFibGUiLGEpfXNldFZpc2libGUoYSl7dGhpcy5zZXQoInZpc2libGUiLGEpfWdldFZpc2libGUoKXtyZXR1cm4gdGhpcy5nZXQoInZpc2libGUiKX1zZXRPcHRpb25zKGEpe3RoaXMuc2V0VmFsdWVzKGEpfWNvbnN0cnVjdG9yKGEpe3N1cGVyKCk7CmlmKGEgaW5zdGFuY2VvZiBfLlNvKXtsZXQgYj17fSxjPSJtYXAgcmFkaXVzIGNlbnRlciBzdHJva2VDb2xvciBzdHJva2VPcGFjaXR5IHN0cm9rZVdlaWdodCBzdHJva2VQb3NpdGlvbiBmaWxsQ29sb3IgZmlsbE9wYWNpdHkgekluZGV4IGNsaWNrYWJsZSBlZGl0YWJsZSBkcmFnZ2FibGUgdmlzaWJsZSIuc3BsaXQoIiAiKTtmb3IobGV0IGQgb2YgYyliW2RdPWEuZ2V0KGQpO2E9Yn10aGlzLnNldFZhbHVlcyhNbyhhKSk7Xy5IbCgicG9seSIpfWdldEJvdW5kcygpe3ZhciBhPXRoaXMuZ2V0KCJyYWRpdXMiKSxiPXRoaXMuZ2V0KCJjZW50ZXIiKTtpZihiJiZfLmptKGEpKXt2YXIgYz10aGlzLmdldCgibWFwIik7Yz1jJiZjLl9fZ20uZ2V0KCJiYXNlTWFwVHlwZSIpO3JldHVybiBfLkNvKGIsYS9fLm9kYShjKSl9cmV0dXJuIG51bGx9bWFwX2NoYW5nZWQoKXtzZGEodGhpcyl9dmlzaWJsZV9jaGFuZ2VkKCl7c2RhKHRoaXMpfWNlbnRlcl9jaGFuZ2VkKCl7Xy53bih0aGlzLCJib3VuZHNfY2hhbmdlZCIpfXJhZGl1c19jaGFuZ2VkKCl7Xy53bih0aGlzLAoiYm91bmRzX2NoYW5nZWQiKX1lcXVhbHMoYSl7aWYodGhpcz09PWEpcmV0dXJuITA7aWYoIWEpcmV0dXJuITE7dmFyIGI9dGhpcy5nZXRDZW50ZXIoKSxjPWEuZ2V0Q2VudGVyKCk7cmV0dXJuIGImJmM/dGhpcy5nZXRSYWRpdXMoKT09PWEuZ2V0UmFkaXVzKCkmJmIuZXF1YWxzKGMpOiFiJiYhYyYmdGhpcy5nZXRSYWRpdXMoKT09PWEuZ2V0UmFkaXVzKCl9fTtfLlNvLnByb3RvdHlwZS5nZXRCb3VuZHM9Xy5Tby5wcm90b3R5cGUuZ2V0Qm91bmRzO18uU28ucHJvdG90eXBlLnNldE9wdGlvbnM9Xy5Tby5wcm90b3R5cGUuc2V0T3B0aW9ucztfLlNvLnByb3RvdHlwZS5nZXRWaXNpYmxlPV8uU28ucHJvdG90eXBlLmdldFZpc2libGU7Xy5Tby5wcm90b3R5cGUuc2V0VmlzaWJsZT1fLlNvLnByb3RvdHlwZS5zZXRWaXNpYmxlO18uU28ucHJvdG90eXBlLnNldEVkaXRhYmxlPV8uU28ucHJvdG90eXBlLnNldEVkaXRhYmxlO18uU28ucHJvdG90eXBlLmdldEVkaXRhYmxlPV8uU28ucHJvdG90eXBlLmdldEVkaXRhYmxlOwpfLlNvLnByb3RvdHlwZS5zZXREcmFnZ2FibGU9Xy5Tby5wcm90b3R5cGUuc2V0RHJhZ2dhYmxlO18uU28ucHJvdG90eXBlLmdldERyYWdnYWJsZT1fLlNvLnByb3RvdHlwZS5nZXREcmFnZ2FibGU7Xy5Tby5wcm90b3R5cGUuc2V0TWFwPV8uU28ucHJvdG90eXBlLnNldE1hcDtfLlNvLnByb3RvdHlwZS5nZXRNYXA9Xy5Tby5wcm90b3R5cGUuZ2V0TWFwO18uU28ucHJvdG90eXBlLnNldENlbnRlcj1fLlNvLnByb3RvdHlwZS5zZXRDZW50ZXI7Xy5Tby5wcm90b3R5cGUuZ2V0Q2VudGVyPV8uU28ucHJvdG90eXBlLmdldENlbnRlcjtfLlNvLnByb3RvdHlwZS5zZXRSYWRpdXM9Xy5Tby5wcm90b3R5cGUuc2V0UmFkaXVzO18uU28ucHJvdG90eXBlLmdldFJhZGl1cz1fLlNvLnByb3RvdHlwZS5nZXRSYWRpdXM7Xy5XbihfLlNvLnByb3RvdHlwZSx7Y2VudGVyOl8uTW0oXy5YbSksZHJhZ2dhYmxlOl8uY3MsZWRpdGFibGU6Xy5jcyxtYXA6Xy5ocyxyYWRpdXM6Xy5hcyx2aXNpYmxlOl8uY3N9KTt2YXIgUmhhOwpfLkZzPXthazpQbyhmdW5jdGlvbihhKXtyZXR1cm4gYj0+e2lmKCFiKXJldHVybiBudWxsO2lmKGEuaGFzKF8uUm4pJiZiLmluY2x1ZGVzKCJ8Iikpe2E6aWYoYil7dHJ5e2xldCBkPWIuc3BsaXQoInwiKTtpZihkLmxlbmd0aDwyKXRocm93IEVycm9yKCJ0b28gZmV3IHBvaW50cyIpO2lmKGQubGVuZ3RoPjIpdGhyb3cgRXJyb3IoInRvbyBtYW55IHBvaW50cyIpO2xldCBbZSxmXT1kLm1hcChfLlJvKTt2YXIgYz1uZXcgXy5SbihlLGYpO2JyZWFrIGF9Y2F0Y2goZCl7dGhyb3cgRXJyb3IoYENvdWxkIG5vdCBpbnRlcnByZXQgIiR7Yn0iIGFzIGEgTGF0TG5nQm91bmRzOiBgKyhkIGluc3RhbmNlb2YgRXJyb3I/ZC5tZXNzYWdlOmAke2R9YCkpO31jPXZvaWQgMH1lbHNlIGM9bnVsbDtyZXR1cm4gY31pZihhLmhhcyhfLlNvKSYmYi5pbmNsdWRlcygiQCIpKXJldHVybiB0ZGEoYik7aWYoYS5oYXMoXy5Rbyl8fGEuaGFzKF8uVG0pKXJldHVybiBfLlJvKGIpO3Rocm93IEVycm9yKCJVbnN1cHBvcnRlZCBsb2NhdGlvbiBiaWFzL3Jlc3RyaWN0aW9uIHR5cGUuIik7fX0obmV3IFNldChbXy5UbSwKXy5RbyxfLlJuLF8uU29dKSkpLExqOmZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLlFvKXZhciBiPV8uVG8oYSk7ZWxzZSBhIGluc3RhbmNlb2YgXy5UbT9iPVZvKGEpOmEgaW5zdGFuY2VvZiBfLlJuP2E/KGI9YS5nZXRTb3V0aFdlc3QoKSxhPWEuZ2V0Tm9ydGhFYXN0KCksYj1gJHtWbyhiKX18JHtWbyhhKX1gKTpiPW51bGw6Yj1hIGluc3RhbmNlb2YgXy5Tbz91ZGEoYSk6bnVsbDtyZXR1cm4gYn19O18uUWhhPXthazpQbyh0ZGEpLExqOnVkYX07Xy5Hcz17YWs6UG8oZnVuY3Rpb24oYSl7cmV0dXJuIGE/Xy5SbyhhKTpudWxsfSksTGo6Xy5Ub307Xy5Icz17YWs6UG8oZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS50cmltKCkucmVwbGFjZSgvXHMqLFxzKi9nLCIsIikuc3BsaXQoL1xzKy9nKS5tYXAoXy5Sbyk6bnVsbH0pLExqOl8uVW99OwpSaGE9e2FrOlBvKGZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBudWxsO3RyeXtsZXQgYj1hLnNwbGl0KCIsIikubWFwKE9vKTtpZihiLmxlbmd0aDwyKXRocm93IEVycm9yKCJ0b28gZmV3IHZhbHVlcyIpO2lmKGIubGVuZ3RoPjIpdGhyb3cgRXJyb3IoInRvbyBtYW55IHZhbHVlcyIpO2xldCBbYyxkXT1iO3JldHVybiBfLlltKHtsYXQ6Yyxsbmc6ZH0pfWNhdGNoKGIpe3Rocm93IEVycm9yKGBDb3VsZCBub3QgaW50ZXJwcmV0ICIke2F9IiBhcyBhIExhdExuZzogYCsoYiBpbnN0YW5jZW9mIEVycm9yP2IubWVzc2FnZTpgJHtifWApKTt9fSksTGo6Vm99O3ZhciBYbz12b2lkIDAsV289dm9pZCAwO3ZhciBTaGE9L14oPyFqYXZhc2NyaXB0OikoPzpbYS16MC05Ky4tXSs6fFteJjpcLz8jXSooPzpbXC8/I118JCkpL2ksSXM9Xy5yaihmdW5jdGlvbihhLC4uLmIpe2lmKGIubGVuZ3RoPT09MClyZXR1cm4gXy5xaihhWzBdKTt2YXIgYz1hWzBdO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIF8ucWooYyl9YGFib3V0OmludmFsaWQjekNsb3N1cmV6YCksd2RhPWE9PmEsSnM9YT0+U2hhLnRlc3QoU3RyaW5nKGEpKT9hOklzLEtzPSgpPT5JcyxMcz1hPT5hIGluc3RhbmNlb2YgXy5waj9fLnJqKGEpOklzLHlkYT1uZXcgTWFwKFtbIkEgaHJlZiIsSnNdLFsiQVJFQSBocmVmIixKc10sWyJCQVNFIGhyZWYiLEtzXSxbIkJVVFRPTiBmb3JtYWN0aW9uIixKc10sWyJFTUJFRCBzcmMiLEtzXSxbIkZPUk0gYWN0aW9uIixKc10sWyJGUkFNRSBzcmMiLEtzXSxbIklGUkFNRSBzcmMiLExzXSxbIklGUkFNRSBzcmNkb2MiLAphPT5hIGluc3RhbmNlb2Ygd2o/Xy55aihhKTpfLnlqKHhkYSldLFsiSU5QVVQgZm9ybWFjdGlvbiIsSnNdLFsiTElOSyBocmVmIixMc10sWyJPQkpFQ1QgY29kZWJhc2UiLEtzXSxbIk9CSkVDVCBkYXRhIixLc10sWyJTQ1JJUFQgaHJlZiIsTHNdLFsiU0NSSVBUIHNyYyIsTHNdLFsiU0NSSVBUIHRleHQiLEtzXSxbIlVTRSBocmVmIixMc11dKTt2YXIgTXMsTnMsemRhLFRoYSxVaGEsT3MsVmhhLFdoYSxQcyxhcCxabyxRcyxYaGEsWWhhLFJzLFpoYSwkaGEsYWlhLCRvLGJpYSxUcyxVcyxnaWEsV3MsVnMsY2lhLGRpYSxlaWEsZmlhO01zPSFfLlVhLlNoYWR5RE9NPy5pblVzZXx8Xy5VYS5TaGFkeURPTT8ubm9QYXRjaCE9PSEwJiZfLlVhLlNoYWR5RE9NPy5ub1BhdGNoIT09Im9uLWRlbWFuZCI/YT0+YTpfLlVhLlNoYWR5RE9NLndyYXA7TnM9Xy5VYS50cnVzdGVkVHlwZXM7emRhPU5zP05zLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmE9PmF9KTp2b2lkIDA7VGhhPWE9PmE7VWhhPSgpPT5UaGE7T3M9YGxpdCQke01hdGgucmFuZG9tKCkudG9GaXhlZCg5KS5zbGljZSgyKX0kYDtWaGE9Ij8iK09zO1doYT1gPCR7VmhhfT5gO1BzPWRvY3VtZW50O2FwPWE9PmE9PT1udWxsfHx0eXBlb2YgYSE9Im9iamVjdCImJnR5cGVvZiBhIT0iZnVuY3Rpb24ifHwhMTtabz1BcnJheS5pc0FycmF5O1FzPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nOwpYaGE9Ly0tXHgzZS9nO1loYT0vPi9nO1JzPVJlZ0V4cCgiPnxbIFx0XG5cZlxyXSg/OihbXlxcc1wiJz49L10rKShbIFx0XG5cZlxyXSo9WyBcdFxuXGZccl0qKD86W14gXHRcblxmXHJcIidgPD49XXwoXCJ8Jyl8KSl8JCkiLCJnIik7WmhhPS8nL2c7JGhhPS8iL2c7YWlhPS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaTtfLldxPShhLC4uLmIpPT4oe18kbGl0VHlwZSQ6MSx3bDphLHZhbHVlczpifSk7JG89U3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKTpTeW1ib2woImxpdC1ub0NoYW5nZSIpO18uU3M9U3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpOlN5bWJvbCgibGl0LW5vdGhpbmciKTtiaWE9bmV3IFdlYWtNYXA7VHM9UHMuY3JlYXRlVHJlZVdhbGtlcihQcywxMjkpOwpVcz1jbGFzc3tjb25zdHJ1Y3Rvcih7d2w6YSxfJGxpdFR5cGUkOmJ9LGMpe3RoaXMuY3o9W107dmFyIGQ9MCxlPTAsZj1hLmxlbmd0aC0xLGc9dGhpcy5jeixoPWEubGVuZ3RoLTEsaz1bXSxtPWI9PT0yPyI8c3ZnPiI6Yj09PTM/IjxtYXRoPiI6IiIscCxxPVFzO2ZvcihsZXQgQj0wO0I8aDtCKyspe2xldCBLPWFbQl0sTz0tMSxBO3ZhciB1PTA7bGV0IFE7Zm9yKDt1PEsubGVuZ3RoOyl7cS5sYXN0SW5kZXg9dTtRPXEuZXhlYyhLKTtpZihRPT09bnVsbClicmVhazt1PXEubGFzdEluZGV4O3E9PT1Rcz9RWzFdPT09IiEtLSI/cT1YaGE6UVsxXSE9PXZvaWQgMD9xPVloYTpRWzJdIT09dm9pZCAwPyhhaWEudGVzdChRWzJdKSYmKHA9bmV3IFJlZ0V4cChgPC8ke1FbMl19YCwiZyIpKSxxPVJzKTpRWzNdIT09dm9pZCAwJiYocT1Scyk6cT09PVJzP1FbMF09PT0iPiI/KHE9cD8/UXMsTz0tMSk6UVsxXT09PXZvaWQgMD9PPS0yOihPPXEubGFzdEluZGV4LVFbMl0ubGVuZ3RoLEE9UVsxXSwKcT1RWzNdPT09dm9pZCAwP1JzOlFbM109PT0nIic/JGhhOlpoYSk6cT09PSRoYXx8cT09PVpoYT9xPVJzOnE9PT1YaGF8fHE9PT1ZaGE/cT1RczoocT1ScyxwPXZvaWQgMCl9dT1xPT09UnMmJmFbQisxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjttKz1xPT09UXM/SytXaGE6Tz49MD8oay5wdXNoKEEpLEsuc2xpY2UoMCxPKSsiJGxpdCQiK0suc2xpY2UoTykpK09zK3U6SytPcysoTz09PS0yP0I6dSl9YT1bQWRhKGEsbSsoYVtoXXx8Ijw/PiIpKyhiPT09Mj8iPC9zdmc+IjpiPT09Mz8iPC9tYXRoPiI6IiIpKSxrXTt2YXIgW3gsel09YTt0aGlzLmVsPVVzLmNyZWF0ZUVsZW1lbnQoeCxjKTtUcy5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQ7aWYoYj09PTJ8fGI9PT0zKWI9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQsYi5yZXBsYWNlV2l0aCguLi5iLmNoaWxkTm9kZXMpO2Zvcig7KGI9VHMubmV4dE5vZGUoKSkhPT1udWxsJiZnLmxlbmd0aDxmOyl7aWYoYi5ub2RlVHlwZT09PQoxKXtpZihiLmhhc0F0dHJpYnV0ZXMoKSlmb3IobGV0IEIgb2YgYi5nZXRBdHRyaWJ1dGVOYW1lcygpKUIuZW5kc1dpdGgoIiRsaXQkIik/KGE9eltlKytdLGM9Yi5nZXRBdHRyaWJ1dGUoQikuc3BsaXQoT3MpLGE9LyhbLj9AXSk/KC4qKS8uZXhlYyhhKSxnLnB1c2goe3R5cGU6MSxpbmRleDpkLG5hbWU6YVsyXSx3bDpjLFduOmFbMV09PT0iLiI/Y2lhOmFbMV09PT0iPyI/ZGlhOmFbMV09PT0iQCI/ZWlhOlZzfSksYi5yZW1vdmVBdHRyaWJ1dGUoQikpOkIuc3RhcnRzV2l0aChPcykmJihnLnB1c2goe3R5cGU6NixpbmRleDpkfSksYi5yZW1vdmVBdHRyaWJ1dGUoQikpO2lmKGFpYS50ZXN0KGIudGFnTmFtZSkmJihjPWIudGV4dENvbnRlbnQuc3BsaXQoT3MpLGE9Yy5sZW5ndGgtMSxhPjApKXtiLnRleHRDb250ZW50PU5zP05zLmVtcHR5U2NyaXB0OiIiO2ZvcihoPTA7aDxhO2grKyliLmFwcGVuZChjW2hdLFBzLmNyZWF0ZUNvbW1lbnQoIiIpKSxUcy5uZXh0Tm9kZSgpLGcucHVzaCh7dHlwZToyLAppbmRleDorK2R9KTtiLmFwcGVuZChjW2FdLFBzLmNyZWF0ZUNvbW1lbnQoIiIpKX19ZWxzZSBpZihiLm5vZGVUeXBlPT09OClpZihiLmRhdGE9PT1WaGEpZy5wdXNoKHt0eXBlOjIsaW5kZXg6ZH0pO2Vsc2UgZm9yKGM9LTE7KGM9Yi5kYXRhLmluZGV4T2YoT3MsYysxKSkhPT0tMTspZy5wdXNoKHt0eXBlOjcsaW5kZXg6ZH0pLGMrPU9zLmxlbmd0aC0xO2QrK319c3RhdGljIGNyZWF0ZUVsZW1lbnQoYSl7dmFyIGI9UHMuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtiLmlubmVySFRNTD1hO3JldHVybiBifX07CmdpYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuc2g9W107dGhpcy53aD12b2lkIDA7dGhpcy5yaD1hO3RoaXMucWg9Yn1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLnFoLnBhcmVudE5vZGV9Z2V0IHlyKCl7cmV0dXJuIHRoaXMucWgueXJ9eGgoYSl7dmFyIGI9dGhpcy5yaC5jeixjPShhPy5DUz8/UHMpLmltcG9ydE5vZGUodGhpcy5yaC5lbC5jb250ZW50LCEwKTtUcy5jdXJyZW50Tm9kZT1jO2Zvcih2YXIgZD1Ucy5uZXh0Tm9kZSgpLGU9MCxmPTAsZz1iWzBdO2chPT12b2lkIDA7KXtpZihlPT09Zy5pbmRleCl7bGV0IGg7Zy50eXBlPT09Mj9oPW5ldyBXcyhkLGQubmV4dFNpYmxpbmcsdGhpcyxhKTpnLnR5cGU9PT0xP2g9bmV3IGcuV24oZCxnLm5hbWUsZy53bCx0aGlzLGEpOmcudHlwZT09PTYmJihoPW5ldyBmaWEoZCx0aGlzLGEpKTt0aGlzLnNoLnB1c2goaCk7Zz1iWysrZl19ZSE9PWc/LmluZGV4JiYoZD1Ucy5uZXh0Tm9kZSgpLGUrKyl9VHMuY3VycmVudE5vZGU9ClBzO3JldHVybiBjfXRoKGEpe3ZhciBiPTA7Zm9yKGxldCBjIG9mIHRoaXMuc2gpYyE9PXZvaWQgMCYmKGMud2whPT12b2lkIDA/KGMuZXUoYSxjLGIpLGIrPWMud2wubGVuZ3RoLTIpOmMuZXUoYVtiXSkpLGIrK319OwpXcz1jbGFzc3tnZXQgeXIoKXtyZXR1cm4gdGhpcy5xaD8ueXI/P3RoaXMuQWh9Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy50eXBlPTI7dGhpcy5raz1fLlNzO3RoaXMud2g9dm9pZCAwO3RoaXMuc2g9YTt0aGlzLnhoPWI7dGhpcy5xaD1jO3RoaXMub3B0aW9ucz1kO3RoaXMuQWg9ZD8uaXNDb25uZWN0ZWQ/PyEwO3RoaXMucmg9dm9pZCAwfWdldCBwYXJlbnROb2RlKCl7dmFyIGE9TXModGhpcy5zaCkucGFyZW50Tm9kZSxiPXRoaXMucWg7YiE9PXZvaWQgMCYmYT8ubm9kZVR5cGU9PT0xMSYmKGE9Yi5wYXJlbnROb2RlKTtyZXR1cm4gYX1ldShhLGI9dGhpcyl7YT1icCh0aGlzLGEsYik7YXAoYSk/YT09PV8uU3N8fGE9PW51bGx8fGE9PT0iIj8odGhpcy5rayE9PV8uU3MmJnRoaXMudGgoKSx0aGlzLmtrPV8uU3MpOmEhPT10aGlzLmtrJiZhIT09JG8mJnRoaXMuQmgoYSk6YS5fJGxpdFR5cGUkIT09dm9pZCAwP3RoaXMuSmgoYSk6YS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLnpoKGEpOgpabyhhKXx8dHlwZW9mIGE/LltTeW1ib2wuaXRlcmF0b3JdPT09ImZ1bmN0aW9uIj90aGlzLkdoKGEpOnRoaXMuQmgoYSl9eWgoYSl7cmV0dXJuIE1zKE1zKHRoaXMuc2gpLnBhcmVudE5vZGUpLmluc2VydEJlZm9yZShhLHRoaXMueGgpfXpoKGEpe2lmKHRoaXMua2shPT1hKXt0aGlzLnRoKCk7aWYoWW8hPT1VaGEpe2xldCBiPXRoaXMuc2gucGFyZW50Tm9kZT8ubm9kZU5hbWU7aWYoYj09PSJTVFlMRSJ8fGI9PT0iU0NSSVBUIil0aHJvdyBFcnJvcigiRm9yYmlkZGVuIik7fXRoaXMua2s9dGhpcy55aChhKX19QmgoYSl7aWYodGhpcy5rayE9PV8uU3MmJmFwKHRoaXMua2spKXt2YXIgYj1Ncyh0aGlzLnNoKS5uZXh0U2libGluZzt0aGlzLnJoPT09dm9pZCAwJiYodGhpcy5yaD1ZbyhiLCJkYXRhIiwicHJvcGVydHkiKSk7YT10aGlzLnJoKGEpO2IuZGF0YT1hfWVsc2UgYj1Qcy5jcmVhdGVUZXh0Tm9kZSgiIiksdGhpcy56aChiKSx0aGlzLnJoPT09dm9pZCAwJiYodGhpcy5yaD1ZbyhiLAoiZGF0YSIsInByb3BlcnR5IikpLGE9dGhpcy5yaChhKSxiLmRhdGE9YTt0aGlzLmtrPWF9SmgoYSl7dmFyIHt2YWx1ZXM6YixfJGxpdFR5cGUkOmN9PWE7YT10eXBlb2YgYz09PSJudW1iZXIiP3RoaXMuQ2goYSk6KGMuZWw9PT12b2lkIDAmJihjLmVsPVVzLmNyZWF0ZUVsZW1lbnQoQWRhKGMuaCxjLmhbMF0pLHRoaXMub3B0aW9ucykpLGMpO2lmKHRoaXMua2s/LnJoPT09YSl0aGlzLmtrLnRoKGIpO2Vsc2V7YT1uZXcgZ2lhKGEsdGhpcyk7bGV0IGQ9YS54aCh0aGlzLm9wdGlvbnMpO2EudGgoYik7dGhpcy56aChkKTt0aGlzLmtrPWF9fUNoKGEpe3ZhciBiPWJpYS5nZXQoYS53bCk7Yj09PXZvaWQgMCYmYmlhLnNldChhLndsLGI9bmV3IFVzKGEpKTtyZXR1cm4gYn1HaChhKXtabyh0aGlzLmtrKXx8KHRoaXMua2s9W10sdGhpcy50aCgpKTt2YXIgYj10aGlzLmtrLGM9MCxkO2ZvcihsZXQgZSBvZiBhKWM9PT1iLmxlbmd0aD9iLnB1c2goZD1uZXcgV3ModGhpcy55aChQcy5jcmVhdGVDb21tZW50KCIiKSksCnRoaXMueWgoUHMuY3JlYXRlQ29tbWVudCgiIikpLHRoaXMsdGhpcy5vcHRpb25zKSk6ZD1iW2NdLGQuZXUoZSksYysrO2M8Yi5sZW5ndGgmJih0aGlzLnRoKGQmJk1zKGQueGgpLm5leHRTaWJsaW5nLGMpLGIubGVuZ3RoPWMpfXRoKGE9TXModGhpcy5zaCkubmV4dFNpYmxpbmcsYil7Zm9yKHRoaXMuRGg/LighMSwhMCxiKTthIT09dGhpcy54aDspYj1NcyhhKS5uZXh0U2libGluZyxNcyhhKS5yZW1vdmUoKSxhPWJ9RkooYSl7dGhpcy5xaD09PXZvaWQgMCYmKHRoaXMuQWg9YSx0aGlzLkRoPy4oYSkpfX07ClZzPWNsYXNze2dldCB0YWdOYW1lKCl7cmV0dXJuIHRoaXMuZWxlbWVudC50YWdOYW1lfWdldCB5cigpe3JldHVybiB0aGlzLnFoLnlyfWNvbnN0cnVjdG9yKGEsYixjLGQsZSl7dGhpcy50eXBlPTE7dGhpcy5raz1fLlNzO3RoaXMud2g9dm9pZCAwO3RoaXMuZWxlbWVudD1hO3RoaXMubmFtZT1iO3RoaXMucWg9ZDt0aGlzLm9wdGlvbnM9ZTtjLmxlbmd0aD4yfHxjWzBdIT09IiJ8fGNbMV0hPT0iIj8odGhpcy5raz1BcnJheShjLmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMud2w9Yyk6dGhpcy5raz1fLlNzO3RoaXMuQ3Y9dm9pZCAwfWV1KGEsYj10aGlzLGMsZCl7dmFyIGU9dGhpcy53bCxmPSExO2lmKGU9PT12b2lkIDApe2lmKGE9YnAodGhpcyxhLGIsMCksZj0hYXAoYSl8fGEhPT10aGlzLmtrJiZhIT09JG8pdGhpcy5raz1hfWVsc2V7bGV0IGc9YTthPWVbMF07bGV0IGgsaztmb3IoaD0wO2g8ZS5sZW5ndGgtMTtoKyspaz1icCh0aGlzLGdbYytoXSxiLGgpLGs9PT0kbyYmCihrPXRoaXMua2tbaF0pLGZ8fChmPSFhcChrKXx8ayE9PXRoaXMua2tbaF0pLGs9PT1fLlNzP2E9Xy5TczphIT09Xy5TcyYmKGErPShrPz8iIikrZVtoKzFdKSx0aGlzLmtrW2hdPWt9ZiYmIWQmJnRoaXMuSUMoYSl9SUMoYSl7YT09PV8uU3M/TXModGhpcy5lbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKToodGhpcy5Ddj09PXZvaWQgMCYmKHRoaXMuQ3Y9WW8odGhpcy5lbGVtZW50LHRoaXMubmFtZSwiYXR0cmlidXRlIikpLGE9dGhpcy5DdihhPz8iIiksTXModGhpcy5lbGVtZW50KS5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGE/PyIiKSl9fTsKY2lhPWNsYXNzIGV4dGVuZHMgVnN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpO3RoaXMudHlwZT0zfUlDKGEpe3RoaXMuQ3Y9PT12b2lkIDAmJih0aGlzLkN2PVlvKHRoaXMuZWxlbWVudCx0aGlzLm5hbWUsInByb3BlcnR5IikpO2E9dGhpcy5DdihhKTt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1hPT09Xy5Tcz92b2lkIDA6YX19O2RpYT1jbGFzcyBleHRlbmRzIFZze2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLnR5cGU9NH1JQyhhKXtNcyh0aGlzLmVsZW1lbnQpLnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISFhJiZhIT09Xy5Tcyl9fTsKZWlhPWNsYXNzIGV4dGVuZHMgVnN7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXtzdXBlcihhLGIsYyxkLGUpO3RoaXMudHlwZT01fWV1KGEsYj10aGlzKXthPWJwKHRoaXMsYSxiLDApPz9fLlNzO2lmKGEhPT0kbyl7Yj10aGlzLmtrO3ZhciBjPWE9PT1fLlNzJiZiIT09Xy5Tc3x8YS5jYXB0dXJlIT09Yi5jYXB0dXJlfHxhLm9uY2UhPT1iLm9uY2V8fGEucGFzc2l2ZSE9PWIucGFzc2l2ZSxkPWEhPT1fLlNzJiYoYj09PV8uU3N8fGMpO2MmJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGIpO2QmJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGEpO3RoaXMua2s9YX19aGFuZGxlRXZlbnQoYSl7dHlwZW9mIHRoaXMua2s9PT0iZnVuY3Rpb24iP3RoaXMua2suY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCxhKTp0aGlzLmtrLmhhbmRsZUV2ZW50KGEpfX07CmZpYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5lbGVtZW50PWE7dGhpcy50eXBlPTY7dGhpcy53aD12b2lkIDA7dGhpcy5xaD1iO3RoaXMub3B0aW9ucz1jfWdldCB5cigpe3JldHVybiB0aGlzLnFoLnlyfWV1KGEpe2JwKHRoaXMsYSl9fTsoXy5VYS5saXRIdG1sVmVyc2lvbnM/PyhfLlVhLmxpdEh0bWxWZXJzaW9ucz1bXSkpLnB1c2goIjMuMy4zIik7Xy5Ycz0oYSxiLGMpPT57dmFyIGQ9Yz8uV0U/P2IsZT1kLl8kbGl0UGFydCQ7ZT09PXZvaWQgMCYmKGU9Yz8uV0U/P251bGwsZC5fJGxpdFBhcnQkPWU9bmV3IFdzKGIuaW5zZXJ0QmVmb3JlKFBzLmNyZWF0ZUNvbW1lbnQoIiIpLGUpLGUsdm9pZCAwLGM/P3t9KSk7ZS5ldShhKTtyZXR1cm4gZX07dmFyIFlzLGhpYSxpaWEsamlhLGtpYTtZcz1fLlVhLlNoYWRvd1Jvb3QmJihfLlVhLlNoYWR5Q1NTPT09dm9pZCAwfHxfLlVhLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZTtoaWE9U3ltYm9sKCk7aWlhPW5ldyBXZWFrTWFwOwpfLlpzPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5fJGNzc1Jlc3VsdCQ9ITA7aWYoaGlhIT09aGlhKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1hO3RoaXMucWg9Yn1nZXQgc3R5bGVTaGVldCgpe3ZhciBhPXRoaXMucmgsYj10aGlzLnFoO2lmKFlzJiZhPT09dm9pZCAwKXtsZXQgYz1iIT09dm9pZCAwJiZiLmxlbmd0aD09PTE7YyYmKGE9aWlhLmdldChiKSk7YT09PXZvaWQgMCYmKCh0aGlzLnJoPWE9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksYyYmaWlhLnNldChiLGEpKX1yZXR1cm4gYX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fTsKXy4kcz0oYSwuLi5iKT0+ZnVuY3Rpb24oKXt2YXIgYz1hLmxlbmd0aD09PTE/YVswXTpiLnJlZHVjZSgoZCxlLGYpPT57aWYoZS5fJGNzc1Jlc3VsdCQ9PT0hMCllPWUuY3NzVGV4dDtlbHNlIGlmKHR5cGVvZiBlIT09Im51bWJlciIpdGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAke2V9LiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCk7cmV0dXJuIGQrZSthW2YrMV19LGFbMF0pO3JldHVybiBuZXcgXy5acyhjLGEpfSgpOwpqaWE9KGEsYik9PntpZihZcylhLmFkb3B0ZWRTdHlsZVNoZWV0cz1iLm1hcChjPT5jIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9jOmMuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IGMgb2YgYil7Yj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2xldCBkPV8uVWEubGl0Tm9uY2U7ZCE9PXZvaWQgMCYmYi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixkKTtiLnRleHRDb250ZW50PWMuY3NzVGV4dDthLmFwcGVuZENoaWxkKGIpfX07a2lhPVlzP2E9PmE6YT0+e2lmKGEgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0KXtsZXQgYj0iIjtmb3IobGV0IGMgb2YgYS5jc3NSdWxlcyliKz1jLmNzc1RleHQ7YT1uZXcgXy5acyh0eXBlb2YgYj09PSJzdHJpbmciP2I6U3RyaW5nKGIpKX1yZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgMjAxNiBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiovCnZhciBsaWE9SFRNTEVsZW1lbnQsbWlhPU9iamVjdC5pcyxEZGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LEJkYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG5pYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxvaWE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxwaWE9T2JqZWN0LmdldFByb3RvdHlwZU9mLHFpYT1fLlVhLnRydXN0ZWRUeXBlcyxyaWE9cWlhP3FpYS5lbXB0eVNjcmlwdDoiIixhdD17TGooYSxiKXtzd2l0Y2goYil7Y2FzZSBCb29sZWFuOmE9YT9yaWE6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmE9YT09bnVsbD9hOkpTT04uc3RyaW5naWZ5KGEpfXJldHVybiBhfSxhayhhLGIpe3ZhciBjPWE7c3dpdGNoKGIpe2Nhc2UgQm9vbGVhbjpjPWEhPT1udWxsO2JyZWFrO2Nhc2UgTnVtYmVyOmM9YT09PW51bGw/bnVsbDpOdW1iZXIoYSk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7Yz1KU09OLnBhcnNlKGEpfWNhdGNoKGQpe2M9Cm51bGx9fXJldHVybiBjfX0sZXA9KGEsYik9PiFtaWEoYSxiKSxkcD17S2g6ITAsdHlwZTpTdHJpbmcsZmk6YXQsTmg6ITEsb0s6ITEsbmo6ZXB9LHNpYSxidDtTeW1ib2wubWV0YWRhdGE9PW51bGwmJihTeW1ib2wubWV0YWRhdGE9U3ltYm9sKCJtZXRhZGF0YSIpKTtzaWE9U3ltYm9sLm1ldGFkYXRhO2J0PW5ldyBXZWFrTWFwOwpfLmN0PWNsYXNzIGV4dGVuZHMgbGlhe3N0YXRpYyBhZGRJbml0aWFsaXplcihhKXt0aGlzLnJoKCk7KHRoaXMueXg/Pyh0aGlzLnl4PVtdKSkucHVzaChhKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3RoaXMuZXAoKTtyZXR1cm4gdGhpcy5hQSYmWy4uLnRoaXMuYUEua2V5cygpXX1zdGF0aWMgcmgoKXtpZighdGhpcy5oYXNPd25Qcm9wZXJ0eSgiUnAiKSl7dmFyIGE9cGlhKHRoaXMpO2EuZXAoKTthLnl4IT09dm9pZCAwJiYodGhpcy55eD1bLi4uYS55eF0pO3RoaXMuUnA9bmV3IE1hcChhLlJwKX19c3RhdGljIGVwKCl7dGlhKCk7aWYoIXRoaXMuaGFzT3duUHJvcGVydHkoImtEIikpe3RoaXMua0Q9ITA7dGhpcy5yaCgpO2lmKHRoaXMuaGFzT3duUHJvcGVydHkoInByb3BlcnRpZXMiKSl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzLGI9Wy4uLm5pYShhKSwuLi5vaWEoYSldO2ZvcihsZXQgYyBvZiBiKUVkYSh0aGlzLGMsYVtjXSl9YT10aGlzW3NpYV07aWYoYSE9PW51bGwmJgooYT1idC5nZXQoYSksYSE9PXZvaWQgMCkpZm9yKGxldCBbYyxkXW9mIGEpdGhpcy5ScC5zZXQoYyxkKTt0aGlzLmFBPW5ldyBNYXA7Zm9yKGxldCBbYyxkXW9mIHRoaXMuUnApYT1jLGI9dGhpcy5HQyhhLGQpLGIhPT12b2lkIDAmJnRoaXMuYUEuc2V0KGIsYSk7Yj10aGlzLnN0eWxlczthPVtdO2lmKEFycmF5LmlzQXJyYXkoYikpe2I9bmV3IFNldChiLmZsYXQoSW5maW5pdHkpLnJldmVyc2UoKSk7Zm9yKGxldCBjIG9mIGIpYS51bnNoaWZ0KGtpYShjKSl9ZWxzZSBiIT09dm9pZCAwJiZhLnB1c2goa2lhKGIpKTt0aGlzLnJIPWF9fXN0YXRpYyBHQyhhLGIpe2I9Yi5LaDtyZXR1cm4gYj09PSExP3ZvaWQgMDp0eXBlb2YgYj09PSJzdHJpbmciP2I6dHlwZW9mIGE9PT0ic3RyaW5nIj9hLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLlpoPXZvaWQgMDt0aGlzLk1oPXRoaXMuT2g9ITE7dGhpcy5BaD1udWxsO3RoaXMuREMoKX1EQygpe3RoaXMuYWw9Cm5ldyBQcm9taXNlKGE9PnRoaXMudnI9YSk7dGhpcy5KaD1uZXcgTWFwO3RoaXMuRkMoKTtfLmNwKHRoaXMpO3RoaXMuY29uc3RydWN0b3IueXg/LmZvckVhY2goYT0+YSh0aGlzKSl9RkMoKXt2YXIgYT1uZXcgTWFwLGI9dGhpcy5jb25zdHJ1Y3Rvci5ScDtmb3IobGV0IGMgb2YgYi5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShjKSYmKGEuc2V0KGMsdGhpc1tjXSksZGVsZXRlIHRoaXNbY10pO2Euc2l6ZT4wJiYodGhpcy5aaD1hKX1zaSgpe3ZhciBhPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5QbSk7amlhKGEsdGhpcy5jb25zdHJ1Y3Rvci5ySCk7cmV0dXJuIGF9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLlBrPz8odGhpcy5Qaz10aGlzLnNpKCkpO3RoaXMudnIoITApO3RoaXMuSWg/LmZvckVhY2goYT0+YS51eT8uKCkpfXZyKCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5JaD8uZm9yRWFjaChhPT5hLkZEPy4oKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGEsCmIsYyl7dGhpcy5ueChhLGMpfUVDKGEsYil7dmFyIGM9dGhpcy5jb25zdHJ1Y3Rvci5ScC5nZXQoYSksZD10aGlzLmNvbnN0cnVjdG9yLkdDKGEsYyk7ZCE9PXZvaWQgMCYmYy5OaD09PSEwJiYoYj0oYy5maT8uTGohPT12b2lkIDA/Yy5maTphdCkuTGooYixjLnR5cGUpLHRoaXMuQWg9YSxiPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGQpOnRoaXMuc2V0QXR0cmlidXRlKGQsYiksdGhpcy5BaD1udWxsKX1ueChhLGIpe3ZhciBjPXRoaXMuY29uc3RydWN0b3I7YT1jLmFBLmdldChhKTtpZihhIT09dm9pZCAwJiZ0aGlzLkFoIT09YSl7Yz1jLlJwLmdldChhKT8/ZHA7bGV0IGQ9dHlwZW9mIGMuZmk9PT0iZnVuY3Rpb24iP3thazpjLmZpfTpjLmZpPy5hayE9PXZvaWQgMD9jLmZpOmF0O3RoaXMuQWg9YTtiPWQuYWsoYixjLnR5cGUpO3RoaXNbYV09Yj8/dGhpcy5XaD8uZ2V0KGEpPz9iO3RoaXMuQWg9bnVsbH19V2soYSxiLHtvSzpjLE5oOmQsV3o6ZX0sZil7aWYoYyYmISh0aGlzLldoPz8KKHRoaXMuV2g9bmV3IE1hcCkpLmhhcyhhKSYmKHRoaXMuV2guc2V0KGEsZj8/Yj8/dGhpc1thXSksZSE9PSEwfHxmIT09dm9pZCAwKSlyZXR1cm47dGhpcy5KaC5oYXMoYSl8fCh0aGlzLk1ofHxjfHwoYj12b2lkIDApLHRoaXMuSmguc2V0KGEsYikpO2Q9PT0hMCYmdGhpcy5BaCE9PWEmJih0aGlzLmJpPz8odGhpcy5iaT1uZXcgU2V0KSkuYWRkKGEpfWFzeW5jIHF4KCl7dGhpcy5PaD0hMDt0cnl7YXdhaXQgdGhpcy5hbH1jYXRjaChiKXt0aGlzLmxTfHxQcm9taXNlLnJlamVjdChiKX12YXIgYT1GZGEodGhpcyk7YSE9bnVsbCYmYXdhaXQgYTtyZXR1cm4hdGhpcy5PaH1obSgpe31veChhKXt0aGlzLkloPy5mb3JFYWNoKGI9PmIud04/LigpKTt0aGlzLk1ofHwodGhpcy5NaD0hMCx0aGlzLnpoKCkpO3RoaXMuU2ooYSl9c3IoKXt0aGlzLkpoPW5ldyBNYXA7dGhpcy5PaD0hMX1nZXQgQ3AoKXtyZXR1cm4gdGhpcy5hbH11cGRhdGUoKXt0aGlzLmJpJiYodGhpcy5iaT10aGlzLmJpLmZvckVhY2goYT0+CnRoaXMuRUMoYSx0aGlzW2FdKSkpO3RoaXMuc3IoKX1Taigpe316aCgpe319O18uY3QucHJvdG90eXBlLnp4PV8uaGEoMjIpO18uY3Quckg9W107Xy5jdC5QbT17bW9kZToib3BlbiJ9O18uY3QuUnA9bmV3IE1hcDtfLmN0LmtEPW5ldyBNYXA7dmFyIHRpYT0oKT0+eyhfLlVhLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zPz8oXy5VYS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz1bXSkpLnB1c2goIjIuMS4yIik7dGlhPSgpPT57fX07Xy5kdD1jbGFzcyBleHRlbmRzIF8uY3R7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpO3RoaXMuUG49e2hvc3Q6dGhpc307dGhpcy5Paz12b2lkIDB9c2koKXt2YXIgYT1zdXBlci5zaSgpLGI7KGI9dGhpcy5QbikuV0U/PyhiLldFPWEuZmlyc3RDaGlsZCk7cmV0dXJuIGF9dXBkYXRlKGEpe3ZhciBiPXRoaXMudGkoKTt0aGlzLk1ofHwodGhpcy5Qbi5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKTtzdXBlci51cGRhdGUoYSk7dGhpcy5Paz1fLlhzKGIsdGhpcy5Qayx0aGlzLlBuKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7dGhpcy5Paz8uRkooITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTt0aGlzLk9rPy5GSighMSl9dGkoKXtyZXR1cm4gJG99c3RhdGljIGVwKCl7dWlhKCk7cmV0dXJuIF8uY3QuZXAuY2FsbCh0aGlzKX19O18uZHQuXyRsaXRFbGVtZW50JD0hMDsKXy5kdC5rRD0hMDt2YXIgdWlhPSgpPT57KF8uVWEubGl0RWxlbWVudFZlcnNpb25zPz8oXy5VYS5saXRFbGVtZW50VmVyc2lvbnM9W10pKS5wdXNoKCI0LjIuMiIpO3VpYT0oKT0+e319O18uZXQ9Y2xhc3MgZXh0ZW5kcyBfLmR0e3N0YXRpYyBnZXQgUG0oKXtyZXR1cm57Li4uXy5kdC5QbSxtb2RlOl8uTHBbMTY2XT8ib3BlbiI6ImNsb3NlZCJ9fWNvbnN0cnVjdG9yKGE9e30pe3N1cGVyKCk7dGhpcy53az0hMTt0aGlzLkJ2PW5ldyBTZXQ7dGhpcy5jTD10aGlzLmxvY2FsTmFtZTt2YXIgYj10aGlzLmNvbnN0cnVjdG9yLklpLGM9d2luZG93LGQ9dGhpcy5nZXRSb290Tm9kZSgpIT09dGhpcyxlPSFkb2N1bWVudC5jdXJyZW50U2NyaXB0JiZkb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciOyhkPWR8fGUpfHwoZD1YbyYmdGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1Yby50b0xvd2VyQ2FzZSgpLFhvPXZvaWQgMCxkPSEhZCk7Xy5NKGMsZD9iLktpOmIuSmkpO1BjYSh0aGlzKTt0aGlzLnhpKGEsXy5ldCwiV2ViQ29tcG9uZW50VmlldyIpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhLGIsYyl7dGhpcy53az0hMDtzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soYSwKYixjKTt0aGlzLndrPSExfWFkZEV2ZW50TGlzdGVuZXIoYSxiLGMpe3N1cGVyLmFkZEV2ZW50TGlzdGVuZXIoYSxiLGMpfXJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpe3N1cGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpfXhpKGEsYixjKXt0aGlzLmNvbnN0cnVjdG9yPT09YiYmUm0oYSx0aGlzLGMpfWVycm9yKGEpe2NvbnNvbGUuZXJyb3IoXy5ocCh0aGlzLGEpKX19O18uZXQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9Xy5ldC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcjtfLmV0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPV8uZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI7Xy5ldC5zdHlsZXM9W107dmFyIHZpYT1fLkNtKHtjZW50ZXI6Xy5NbShfLlltKSx6b29tOl8uYXMsaGVhZGluZzpfLmFzLHRpbHQ6Xy5hc30pO3ZhciBXZWE9Y2xhc3MgZXh0ZW5kcyBfLnlue2dldChhKXtyZXR1cm4gc3VwZXIuZ2V0KGEpfX07dmFyIEhkYT1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubWFwSWQ9YTt0aGlzLm1hcFR5cGVzPWI7dGhpcy5xaD0hMX1tYXBJZF9jaGFuZ2VkKCl7aWYoIXRoaXMucWgmJnRoaXMuZ2V0KCJtYXBJZCIpIT09dGhpcy5tYXBJZClpZih0aGlzLmdldCgibWFwSGFzQmVlbkFibGVUb0JlRHJhd24iKSl7dGhpcy5xaD0hMDt0cnl7dGhpcy5zZXQoIm1hcElkIix0aGlzLm1hcElkKX1maW5hbGx5e3RoaXMucWg9ITF9Y29uc29sZS53YXJuKCJHb29nbGUgTWFwcyBKYXZhU2NyaXB0IEFQSTogQSBNYXAncyBtYXBJZCBwcm9wZXJ0eSBjYW5ub3QgYmUgY2hhbmdlZCBhZnRlciBpbml0aWFsIE1hcCByZW5kZXIuIik7Xy5NKHdpbmRvdywxNDk3MjkpfWVsc2UgdGhpcy5tYXBJZD10aGlzLmdldCgibWFwSWQiKSx0aGlzLnN0eWxlc19jaGFuZ2VkKCksdGhpcy5tYXBUeXBlSWRfY2hhbmdlZCgpfXN0eWxlc19jaGFuZ2VkKCl7dmFyIGE9dGhpcy5nZXQoInN0eWxlcyIpOwp0aGlzLm1hcElkJiZhJiYodGhpcy5zZXQoInN0eWxlcyIsdm9pZCAwKSxjb25zb2xlLndhcm4oIkdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJOiBBIE1hcCdzIHN0eWxlcyBwcm9wZXJ0eSBjYW5ub3QgYmUgc2V0IHdoZW4gYSBtYXBJZCBpcyBwcmVzZW50LiBXaGVuIGEgbWFwSWQgaXMgcHJlc2VudCwgbWFwIHN0eWxlcyBhcmUgY29udHJvbGxlZCB2aWEgdGhlIGNsb3VkIGNvbnNvbGUuIFBsZWFzZSBzZWUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9zdHlsaW5nI2Nsb3VkX3Rvb2xpbmciKSxfLk0od2luZG93LDE0OTczMSksYS5sZW5ndGh8fF8uTSh3aW5kb3csMTQ5NzMwKSl9bWFwVHlwZUlkX2NoYW5nZWQoKXt2YXIgYT10aGlzLmdldCgibWFwVHlwZUlkIik7dGhpcy5tYXBJZCYmYSYmdGhpcy5tYXBUeXBlcyYmdGhpcy5tYXBUeXBlcy5nZXQoYSkmJihPYmplY3QudmFsdWVzKF8uVXIpLmluY2x1ZGVzKGEpPwphPT09InNhdGVsbGl0ZSImJihjb25zb2xlLndhcm4oIkdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJOiBBIE1hcCdzIHByZXJlZ2lzdGVyZWQgbWFwIHR5cGUgbWF5IG5vdCBhcHBseSBhbGwgY3VzdG9tIHN0eWxlcyB3aGVuIGEgbWFwSWQgaXMgcHJlc2VudC4gV2hlbiBhIG1hcElkIGlzIHByZXNlbnQsIG1hcCBzdHlsZXMgYXJlIGNvbnRyb2xsZWQgdmlhIHRoZSBjbG91ZCBjb25zb2xlIGZvciBhbGwgZGVmYXVsdCBtYXAgdHlwZXMgZXhjZXB0IGZvciBzYXRlbGxpdGUuIFBsZWFzZSBzZWUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9zdHlsaW5nI2Nsb3VkX3Rvb2xpbmciKSxfLk0od2luZG93LDE0OTczMSkpOihjb25zb2xlLndhcm4oIkdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJOiBBIE1hcCdzIGN1c3RvbSBtYXAgdHlwZXMgY2Fubm90IGJlIHNldCB3aGVuIGEgbWFwSWQgaXMgcHJlc2VudC4gV2hlbiBhIG1hcElkIGlzIHByZXNlbnQsIG1hcCBzdHlsZXMgYXJlIGNvbnRyb2xsZWQgdmlhIHRoZSBjbG91ZCBjb25zb2xlLiBQbGVhc2Ugc2VlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvc3R5bGluZyNjbG91ZF90b29saW5nIiksCl8uTSh3aW5kb3csMTQ5NzMxKSkpfX07dmFyIHJwPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5pc0F2YWlsYWJsZT0hMDt0aGlzLnFoPVtdfWNsb25lKCl7dmFyIGE9bmV3IHJwO2EuaXNBdmFpbGFibGU9dGhpcy5pc0F2YWlsYWJsZTt0aGlzLnFoLmZvckVhY2goYj0+e2xwKGEsYil9KTtyZXR1cm4gYX19O3ZhciB3aWE9e2JSOiJGRUFUVVJFX1RZUEVfVU5TUEVDSUZJRUQiLEFETUlOSVNUUkFUSVZFX0FSRUFfTEVWRUxfMToiQURNSU5JU1RSQVRJVkVfQVJFQV9MRVZFTF8xIixBRE1JTklTVFJBVElWRV9BUkVBX0xFVkVMXzI6IkFETUlOSVNUUkFUSVZFX0FSRUFfTEVWRUxfMiIsQ09VTlRSWToiQ09VTlRSWSIsTE9DQUxJVFk6IkxPQ0FMSVRZIixQT1NUQUxfQ09ERToiUE9TVEFMX0NPREUiLERBVEFTRVQ6IkRBVEFTRVQiLE9SOiJST0FEX1BJTE9UIixCUjoiTkVJR0hCT1JIT09EX1BJTE9UIixLUToiQlVJTERJTkciLFNDSE9PTF9ESVNUUklDVDoiU0NIT09MX0RJU1RSSUNUIn07dmFyIGZ0PW51bGw7Xy5xYihfLnFwLF8ueW4pO18ucXAucHJvdG90eXBlLm1hcF9jaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIGE9YXN5bmMoKT0+e3ZhciBiPXRoaXMuZ2V0TWFwKCk7aWYoYilpZihmdC5GcCh0aGlzLGIpLF8uZ3QuaGFzKHRoaXMpKV8uZ3QuZGVsZXRlKHRoaXMpO2Vsc2V7bGV0IGM9Yi5fX2dtLnFoO2F3YWl0IGMuc0o7YXdhaXQgYy5rRTtsZXQgZD1fLm1wKGMsIldFQkdMX09WRVJMQVlfVklFVyIpO2lmKCFkLmlzQXZhaWxhYmxlJiZ0aGlzLmdldE1hcCgpPT09Yil7Zm9yKGxldCBlIG9mIGQucWgpYy5sb2coZSk7ZnQucHEodGhpcyl9fWVsc2UgZnQucHEodGhpcyl9O2Z0P2EoKTpfLkhsKCJ3ZWJnbCIpLnRoZW4oYj0+e2Z0PWI7YSgpfSl9O18ucXAucHJvdG90eXBlLlhJPWZ1bmN0aW9uKGEsYil7dGhpcy5zaD0hMDt0aGlzLm9uRHJhdyh7Z2w6YSx0cmFuc2Zvcm1lcjpifSk7dGhpcy5zaD0hMX07Xy5xcC5wcm90b3R5cGUub25EcmF3V3JhcHBlcj1fLnFwLnByb3RvdHlwZS5YSTsKXy5xcC5wcm90b3R5cGUucmVxdWVzdFJlZHJhdz1mdW5jdGlvbigpe3RoaXMucWg9ITA7aWYoIXRoaXMuc2gmJmZ0KXtsZXQgYT10aGlzLmdldE1hcCgpO2EmJmZ0LnJlcXVlc3RSZWRyYXcoYSl9fTtfLnFwLnByb3RvdHlwZS5yZXF1ZXN0UmVkcmF3PV8ucXAucHJvdG90eXBlLnJlcXVlc3RSZWRyYXc7Xy5xcC5wcm90b3R5cGUucmVxdWVzdFN0YXRlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy50aD0hMDtpZihmdCl7bGV0IGE9dGhpcy5nZXRNYXAoKTthJiZmdC54aChhKX19O18ucXAucHJvdG90eXBlLnJlcXVlc3RTdGF0ZVVwZGF0ZT1fLnFwLnByb3RvdHlwZS5yZXF1ZXN0U3RhdGVVcGRhdGU7Xy5xcC5wcm90b3R5cGUucmg9LTE7Xy5xcC5wcm90b3R5cGUucWg9ITE7Xy5xcC5wcm90b3R5cGUudGg9ITE7Xy5xcC5wcm90b3R5cGUuc2g9ITE7Xy5XbihfLnFwLnByb3RvdHlwZSx7bWFwOl8uaHN9KTtfLmd0PW5ldyBTZXQ7Xy5odD1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubWFwPWE7dGhpcy5xaD0hMTt0aGlzLndoPW51bGw7dGhpcy5jYWNoZT17fTt0aGlzLmp3PXRoaXMucmg9IlVOS05PV04iO3RoaXMuc2g9bmV3IFByb21pc2UoYz0+e3RoaXMudGg9Y30pO3RoaXMua0U9Yi53aC50aGVuKGM9Pnt0aGlzLndoPWM7dGhpcy5yaD1jLmVvKCk/IlRSVUUiOiJGQUxTRSI7c3AodGhpcyl9KTt0aGlzLnNKPXRoaXMuc2gudGhlbihjPT57dGhpcy5qdz1jPyJUUlVFIjoiRkFMU0UiO3NwKHRoaXMpfSk7c3AodGhpcyl9bG9nKGEsYj0iIil7YS5HcSYmY29uc29sZS5lcnJvcihiK2EuR3EpO2EuRnQmJl8uTSh0aGlzLm1hcCxhLkZ0KX1lbygpe3JldHVybiB0aGlzLnJoPT09IlRSVUUifHx0aGlzLnJoPT09IlVOS05PV04ifVl2KCl7cmV0dXJuIHRoaXMud2h9QnooYSl7dGhpcy50aChhKX1nZXRNYXBDYXBhYmlsaXRpZXMoYT0hMSl7dmFyIGI9e307Yi5pc0FkdmFuY2VkTWFya2Vyc0F2YWlsYWJsZT0KdGhpcy5jYWNoZS5yRy5pc0F2YWlsYWJsZTtiLmlzRGF0YURyaXZlblN0eWxpbmdBdmFpbGFibGU9dGhpcy5jYWNoZS5hSC5pc0F2YWlsYWJsZTtiLmlzV2ViR0xPdmVybGF5Vmlld0F2YWlsYWJsZT10aGlzLmNhY2hlLnlxLmlzQXZhaWxhYmxlO2I9T2JqZWN0LmZyZWV6ZShiKTthJiZ0aGlzLmxvZyh7RnQ6MTUzMDI3fSk7cmV0dXJuIGJ9bWFwQ2FwYWJpbGl0aWVzX2NoYW5nZWQoKXtpZighdGhpcy5xaCl0aHJvdyBOZGEodGhpcyksRXJyb3IoIkF0dGVtcHRlZCB0byBzZXQgcmVhZC1vbmx5IGtleTogbWFwQ2FwYWJpbGl0aWVzIik7fX07Xy5odC5wcm90b3R5cGUuVkQ9Xy5oYSgyMyk7dmFyIE1kYT17QURWQU5DRURfTUFSS0VSUzp7RnQ6MTUzMDI1fSxEQVRBX0RSSVZFTl9TVFlMSU5HOntGdDoxNTMwMjZ9LFdFQkdMX09WRVJMQVlfVklFVzp7RnQ6MjA5MTEyfX07dmFyIHhpYT1jbGFzcyBleHRlbmRzIF8ueW57fTt2YXIgeWlhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMub3B0aW9ucz1hO3RoaXMucWg9bmV3IE1hcH1odShhLGIpe2E9dHlwZW9mIGE9PT0ibnVtYmVyIj9bYV06YTtmb3IobGV0IGMgb2YgYSl0aGlzLnFoLmdldChjKSxhPXRoaXMub3B0aW9ucy5odShjLGIpLHRoaXMucWguc2V0KGMsYSl9Wm4oYSxiLGMpe2E9dHlwZW9mIGE9PT0ibnVtYmVyIj9bYV06YTtmb3IobGV0IGQgb2YgYSlpZihhPXRoaXMucWguZ2V0KGQpKXRoaXMub3B0aW9ucy5abihhLGIsYyksdGhpcy5xaC5kZWxldGUoZCl9anUoYSl7YT10eXBlb2YgYT09PSJudW1iZXIiP1thXTphO2ZvcihsZXQgYiBvZiBhKWlmKGE9dGhpcy5xaC5nZXQoYikpdGhpcy5vcHRpb25zLmp1KGEpLHRoaXMucWguZGVsZXRlKGIpfX07UGRhLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuY29udGV4dD10aGlzLnJoPXRoaXMuc2g9dGhpcy5xaD1udWxsO3RoaXMudGg9ITF9O3ZhciBRZGE9bmV3IEdoYShmdW5jdGlvbigpe3JldHVybiBuZXcgUGRhfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KTtfLndwLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gWGRhKHRoaXMsKDAsXy5QcikodHlwZW9mIGE9PT0iZnVuY3Rpb24iP2E6bnVsbCksKDAsXy5QcikodHlwZW9mIGI9PT0iZnVuY3Rpb24iP2I6bnVsbCksYyl9O18ud3AucHJvdG90eXBlLiRnb29nX1RoZW5hYmxlPSEwO18uYWE9Xy53cC5wcm90b3R5cGU7Xy5hYS5pUT1mdW5jdGlvbihhLGIpe3JldHVybiBYZGEodGhpcyxudWxsLCgwLF8uUHIpKGEpLGIpfTtfLmFhLmNhdGNoPV8ud3AucHJvdG90eXBlLmlROwpfLmFhLmNhbmNlbD1mdW5jdGlvbihhKXtpZih0aGlzLnFoPT0wKXtsZXQgYj1uZXcgeHAoYSk7Xy55cChmdW5jdGlvbigpe1NkYSh0aGlzLGIpfSx0aGlzKX19O18uYWEubVE9ZnVuY3Rpb24oYSl7dGhpcy5xaD0wO3ZwKHRoaXMsMixhKX07Xy5hYS5uUT1mdW5jdGlvbihhKXt0aGlzLnFoPTA7dnAodGhpcywzLGEpfTtfLmFhLkJNPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9VGRhKHRoaXMpOylVZGEodGhpcyxhLHRoaXMucWgsdGhpcy56aCk7dGhpcy54aD0hMX07dmFyIGFlYT1fLkJiO18ucWIoeHAsXy50Yik7eHAucHJvdG90eXBlLm5hbWU9ImNhbmNlbCI7Xy5xYihfLkFwLF8ubWspO18uYWE9Xy5BcC5wcm90b3R5cGU7Xy5hYS5reD0wO18uYWEuQms9ZnVuY3Rpb24oKXtfLkFwLmlyLkJrLmNhbGwodGhpcyk7dGhpcy5zdG9wKCk7ZGVsZXRlIHRoaXMucWg7ZGVsZXRlIHRoaXMucmh9O18uYWEuc3RhcnQ9ZnVuY3Rpb24oYSl7dGhpcy5zdG9wKCk7dGhpcy5reD1fLnpwKHRoaXMuc2gsYSE9PXZvaWQgMD9hOnRoaXMudGgpfTtfLmFhLkRpPWZ1bmN0aW9uKCl7dGhpcy5pc0FjdGl2ZSgpfHx0aGlzLnN0YXJ0KHZvaWQgMCl9O18uYWEuc3RvcD1mdW5jdGlvbigpe3RoaXMuaXNBY3RpdmUoKSYmXy5VYS5jbGVhclRpbWVvdXQodGhpcy5reCk7dGhpcy5reD0wfTtfLmFhLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMua3ghPTB9O18uYWEuZ0c9ZnVuY3Rpb24oKXt0aGlzLmt4PTA7dGhpcy5xaCYmdGhpcy5xaC5jYWxsKHRoaXMucmgpfTt2YXIgemlhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD1udWxsO3RoaXMucmg9bmV3IE1hcDt0aGlzLnNoPW5ldyBfLkFwKCgpPT57YmVhKHRoaXMpfSl9fTt2YXIgQWlhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD1uZXcgTWFwO3RoaXMucmg9bmV3IF8uQXAoKCk9Pnt2YXIgYT1bXSxiPVtdO2ZvcihsZXQgYyBvZiB0aGlzLnFoLnZhbHVlcygpKXtsZXQgZD1jLmt5KCk7ZCYmIWQuZ2V0U2l6ZSgpLmVxdWFscyhfLnFvKSYmYy50bCYmKGMuY29sbGlzaW9uQmVoYXZpb3I9PT0iUkVRVUlSRURfQU5EX0hJREVTX09QVElPTkFMIj8oYS5wdXNoKGMua3koKSksYy5YcD0hMSk6Yi5wdXNoKGMpKX1iLnNvcnQoZWVhKTtmb3IobGV0IGMgb2YgYilmZWEoYy5reSgpLGEpP2MuWHA9ITA6KGEucHVzaChjLmt5KCkpLGMuWHA9ITEpfSwwKX19O18ucWIoXy5DcCxfLm1rKTtfLmFhPV8uQ3AucHJvdG90eXBlO18uYWEueXY9Xy5oYSgyNCk7Xy5hYS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5xaCYmKF8uVWEuY2xlYXJUaW1lb3V0KHRoaXMucWgpLHRoaXMucWg9bnVsbCk7dGhpcy50aD1udWxsO3RoaXMucmg9ITE7dGhpcy53aD1bXX07Xy5hYS5wYXVzZT1mdW5jdGlvbigpeysrdGhpcy5zaH07Xy5hYS5yZXN1bWU9ZnVuY3Rpb24oKXt0aGlzLnNoJiYoLS10aGlzLnNoLCF0aGlzLnNoJiZ0aGlzLnJoJiYodGhpcy5yaD0hMSx0aGlzLkFoLmFwcGx5KG51bGwsdGhpcy53aCkpKX07Xy5hYS5Caz1mdW5jdGlvbigpe3RoaXMuc3RvcCgpO18uQ3AuaXIuQmsuY2FsbCh0aGlzKX07Cl8uYWEuUUs9ZnVuY3Rpb24oKXt0aGlzLnFoJiYoXy5VYS5jbGVhclRpbWVvdXQodGhpcy5xaCksdGhpcy5xaD1udWxsKTt0aGlzLnRoPyh0aGlzLnFoPV8uenAodGhpcy54aCx0aGlzLnRoLV8ubWIoKSksdGhpcy50aD1udWxsKTp0aGlzLnNoP3RoaXMucmg9ITA6KHRoaXMucmg9ITEsdGhpcy5BaC5hcHBseShudWxsLHRoaXMud2gpKX07dmFyIEJpYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9bmV3IEFpYTt0aGlzLnFoPW5ldyB6aWE7dGhpcy50aD1uZXcgU2V0O3RoaXMud2g9bmV3IF8uQ3AoKCk9Pnt0aGlzLnNoLnJoLkRpKCk7dmFyIGE9dGhpcy5xaCxiPW5ldyBTZXQodGhpcy50aCk7Zm9yKGxldCBjIG9mIGIpYy5YcD9fLmRlYShhLGMpOl8uY2VhKGEsYyk7dGhpcy50aC5jbGVhcigpfSw1MCk7dGhpcy5yaD1uZXcgU2V0fX07Xy54cT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZWxlbWVudHM9e307dGhpcy5zaXplPTB9cmVtb3ZlKGEpe3ZhciBiPV8ueG4oYSk7dGhpcy5lbGVtZW50c1tiXSYmKGRlbGV0ZSB0aGlzLmVsZW1lbnRzW2JdLC0tdGhpcy5zaXplLF8ud24odGhpcywicmVtb3ZlIixhKSx0aGlzLm9uUmVtb3ZlJiZ0aGlzLm9uUmVtb3ZlKGEpKX1jb250YWlucyhhKXtyZXR1cm4hIXRoaXMuZWxlbWVudHNbXy54bihhKV19Zm9yRWFjaChhKXt2YXIgYj10aGlzLmVsZW1lbnRzO2ZvcihsZXQgYyBpbiBiKWEuY2FsbCh0aGlzLGJbY10pfWdldFNpemUoKXtyZXR1cm4gdGhpcy5zaXplfX07Xy5qdD1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmVpPWF9cXEoYSl7YT1fLmdlYSh0aGlzLGEpO3JldHVybiBhLmxlbmd0aDx0aGlzLmVpLmxlbmd0aD9uZXcgXy5qdChhKTp0aGlzfWZvckVhY2goYSxiKXt0aGlzLmVpLmZvckVhY2goKGMsZCk9PnthLmNhbGwoYixjLGQpfSl9c29tZShhLGIpe3JldHVybiB0aGlzLmVpLnNvbWUoKGMsZCk9PmEuY2FsbChiLGMsZCkpfXNpemUoKXtyZXR1cm4gdGhpcy5laS5sZW5ndGh9fTtfLkNpYT17amFwYW5fcHJlcXVha2U6MjAsamFwYW5fcG9zdHF1YWtlMjAxMDoyNH07dmFyIERpYT1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLm1hcmtlcnM9YXx8bmV3IF8ueHF9fTt2YXIgRWlhO18ua3Q9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuaGVhZGluZz1hO3RoaXMucGl0Y2g9Xy5jbShiLC05MCw5MCk7dGhpcy56b29tPU1hdGgubWF4KDAsYyl9fTtFaWE9Xy5DbSh7em9vbTpfLk1tKGhvKSxoZWFkaW5nOmhvLHBpdGNoOmhvfSk7Xy5GaWE9bmV3IF8uZ28oNjYsMjYpO3ZhciBHaWE7Xy5GcD1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyx7QW46ZD0hMSxwYXNzaXZlOmU9ITF9PXt9KXt0aGlzLnFoPWE7dGhpcy5zaD1iO3RoaXMucmg9Yzt0aGlzLnRoPUdpYT97cGFzc2l2ZTplLGNhcHR1cmU6ZH06ZDthLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx0aGlzLnRoKTphLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrYixjKX1yZW1vdmUoKXtpZih0aGlzLnFoLnJlbW92ZUV2ZW50TGlzdGVuZXIpdGhpcy5xaC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuc2gsdGhpcy5yaCx0aGlzLnRoKTtlbHNle2xldCBhPXRoaXMucWg7YS5kZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK3RoaXMuc2gsdGhpcy5yaCl9fX07R2lhPSExO3RyeXtfLlVhLmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsbmV3IGNsYXNze2dldCBwYXNzaXZlKCl7R2lhPSEwfX0pfWNhdGNoKGEpe307dmFyIEhpYSxJaWE7SGlhPVsibW91c2Vkb3duIiwidG91Y2hzdGFydCIsInBvaW50ZXJkb3duIiwiTVNQb2ludGVyRG93biJdO0lpYT1bIndoZWVsIiwibW91c2V3aGVlbCJdO18uSHA9dm9pZCAwO18uR3A9ITE7dHJ5e18uRXAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksIjpmb2N1cy12aXNpYmxlIiksXy5HcD0hMH1jYXRjaChhKXt9aWYodHlwZW9mIGRvY3VtZW50IT09InVuZGVmaW5lZCIpe18ucW4oZG9jdW1lbnQsImtleWRvd24iLCgpPT57Xy5IcD0iS0VZQk9BUkQifSwhMCk7Zm9yKGxldCBhIG9mIEhpYSlfLnFuKGRvY3VtZW50LGEsKCk9PntfLkhwPSJQT0lOVEVSIn0sITAsITApO2ZvcihsZXQgYSBvZiBJaWEpXy5xbihkb2N1bWVudCxhLCgpPT57Xy5IcD0iV0hFRUwifSwhMCwhMCl9O3ZhciBsdD1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9MCl7dGhpcy5tYWpvcj1hO3RoaXMubWlub3I9Yn19O3ZhciBKaWEsS2lhLExpYSxNaWEsSnAsaWVhO0ppYT1uZXcgTWFwKFtbMywiR29vZ2xlIENocm9tZSJdLFsyLCJNaWNyb3NvZnQgRWRnZSJdXSk7S2lhPW5ldyBNYXAoW1sxLFsibXNpZSJdXSxbMixbImVkZ2UiXV0sWzMsWyJjaHJvbWUiLCJjcmlvcyJdXSxbNSxbImZpcmVmb3giLCJmeGlvcyJdXSxbNCxbImFwcGxld2Via2l0Il1dLFs2LFsidHJpZGVudCJdXSxbNyxbIm1vemlsbGEiXV1dKTtMaWE9bmV3IE1hcChbWzEsIngxMSJdLFsyLCJtYWNpbnRvc2giXSxbMywid2luZG93cyJdLFs0LCJhbmRyb2lkIl0sWzYsImlwaG9uZSJdLFs1LCJpcGFkIl1dKTtNaWE9WzEsMiwzLDQsNSw2XTtKcD1udWxsOwppZWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgYT1uYXZpZ2F0b3IudXNlckFnZW50O3RoaXMucWg9dGhpcy50eXBlPTA7dGhpcy52ZXJzaW9uPW5ldyBsdCgwKTt0aGlzLnRoPW5ldyBsdCgwKTt2YXIgYj1hLnRvTG93ZXJDYXNlKCk7Zm9yKGxldCBbZSxmXW9mIEtpYS5lbnRyaWVzKCkpe3ZhciBjPWU7bGV0IGc9Zi5maW5kKGg9PmIuaW5jbHVkZXMoaCkpO2lmKGcpe3RoaXMudHlwZT1jO2lmKGM9KG5ldyBSZWdFeHAoZysiWyAvXT8oWzAtOV0rKS4/KFswLTldKyk/IikpLmV4ZWMoYikpdGhpcy52ZXJzaW9uPW5ldyBsdChNYXRoLnRydW5jKE51bWJlcihjWzFdKSksTWF0aC50cnVuYyhOdW1iZXIoY1syXXx8IjAiKSkpO2JyZWFrfX10aGlzLnR5cGU9PT03JiYoYz1SZWdFeHAoIl5Nb3ppbGxhLy4qR2Vja28vLipbTWluZWZpZWxkfFNoaXJldG9rb11bIC9dPyhbMC05XSspLj8oWzAtOV0rKT8iKS5leGVjKGEpKSYmKHRoaXMudHlwZT01LHRoaXMudmVyc2lvbj1uZXcgbHQoTWF0aC50cnVuYyhOdW1iZXIoY1sxXSkpLApNYXRoLnRydW5jKE51bWJlcihjWzJdfHwiMCIpKSkpO3RoaXMudHlwZT09PTYmJihjPVJlZ0V4cCgicnY6KFswLTldezIsfS4/WzAtOV0rKSIpLmV4ZWMoYSkpJiYodGhpcy50eXBlPTEsdGhpcy52ZXJzaW9uPW5ldyBsdChNYXRoLnRydW5jKE51bWJlcihjWzFdKSkpKTtmb3IodmFyIGQgb2YgTWlhKWlmKChjPUxpYS5nZXQoZCkpJiZiLmluY2x1ZGVzKGMpKXt0aGlzLnFoPWQ7YnJlYWt9aWYodGhpcy5xaD09PTZ8fHRoaXMucWg9PT01fHx0aGlzLnFoPT09MilpZihkPS9PUyAoPzpYICk/KFxkKylbXy5dPyhcZCspLy5leGVjKGEpKXRoaXMudGg9bmV3IGx0KE1hdGgudHJ1bmMoTnVtYmVyKGRbMV0pKSxNYXRoLnRydW5jKE51bWJlcihkWzJdfHwiMCIpKSk7dGhpcy5xaD09PTQmJihhPS9BbmRyb2lkIChcZCspXC4/KFxkKyk/Ly5leGVjKGEpKSYmKHRoaXMudGg9bmV3IGx0KE1hdGgudHJ1bmMoTnVtYmVyKGFbMV0pKSxNYXRoLnRydW5jKE51bWJlcihhWzJdfHwiMCIpKSkpO3RoaXMucmg9CnRoaXMucWg9PT0xfHx0aGlzLnFoPT09Mnx8dGhpcy5xaD09PTMmJiFiLmluY2x1ZGVzKCJtb2JpbGUiKX19OwpfLk5wPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9dGhpcy5yaD1udWxsfWdldCB2ZXJzaW9uKCl7aWYodGhpcy5zaClyZXR1cm4gdGhpcy5zaDtpZihuYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuYnJhbmRzKWZvcihsZXQgYSBvZiBuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5icmFuZHMpaWYoYS5icmFuZD09PUppYS5nZXQodGhpcy50eXBlKSlyZXR1cm4gdGhpcy5zaD1uZXcgbHQoK2EudmVyc2lvbiwwKTtyZXR1cm4gdGhpcy5zaD1LcCgpLnZlcnNpb259Z2V0IHRoKCl7cmV0dXJuIEtwKCkudGh9Z2V0IHR5cGUoKXtpZih0aGlzLnJoKXJldHVybiB0aGlzLnJoO2lmKG5hdmlnYXRvci51c2VyQWdlbnREYXRhJiZuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5icmFuZHMpe2xldCBhPW5hdmlnYXRvci51c2VyQWdlbnREYXRhLmJyYW5kcy5tYXAoYj0+Yi5icmFuZCk7Zm9yKGxldCBbYixjXW9mIEppYSl7bGV0IGQ9YjtpZihhLmluY2x1ZGVzKGMpKXJldHVybiB0aGlzLnJoPQpkfX1yZXR1cm4gdGhpcy5yaD1LcCgpLnR5cGV9Z2V0IHdoKCl7cmV0dXJuIHRoaXMudHlwZT09PTV8fHRoaXMudHlwZT09PTd9Z2V0IHFoKCl7cmV0dXJuIHRoaXMudHlwZT09PTR8fHRoaXMudHlwZT09PTN9Z2V0IHloKCl7cmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnREYXRhJiYibW9iaWxlImluIG5hdmlnYXRvci51c2VyQWdlbnREYXRhPyFuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5tb2JpbGU6S3AoKS5yaH1nZXQgQWgoKXtyZXR1cm4gdGhpcy50eXBlPT09MX1nZXQgRmgoKXtyZXR1cm4gdGhpcy50eXBlPT09NX1nZXQgeGgoKXtyZXR1cm4gdGhpcy50eXBlPT09M31nZXQgQmgoKXtyZXR1cm4gdGhpcy50eXBlPT09NH1nZXQgemgoKXtpZihuYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEucGxhdGZvcm0pcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtPT09ImlPUyI7dmFyIGE9S3AoKTtyZXR1cm4gYS5xaD09PTZ8fGEucWg9PT0KNX1nZXQgRGgoKXtyZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEmJm5hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtP25hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtPT09Im1hY09TIjpLcCgpLnFoPT09Mn1nZXQgQ2goKXtyZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEmJm5hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtP25hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtPT09IkFuZHJvaWQiOktwKCkucWg9PT00fX07Xy5OaWE9bmV3IFNldChbIlVTIiwiTFIiLCJNTSJdKTt2YXIgbGVhPWNsYXNze2NvbnN0cnVjdG9yKCl7dmFyIGE9ZG9jdW1lbnQ7dGhpcy5xaD1fLk5wO3RoaXMudHJhbnNmb3JtPWtlYShhLFsidHJhbnNmb3JtIiwiV2Via2l0VHJhbnNmb3JtIiwiTW96VHJhbnNmb3JtIiwibXNUcmFuc2Zvcm0iXSk7dGhpcy5yaD1rZWEoYSxbIldlYmtpdFVzZXJTZWxlY3QiLCJNb3pVc2VyU2VsZWN0IiwibXNVc2VyU2VsZWN0Il0pfX0sT3A7Xy5TcD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hO3RoaXMucmg9Xy5UbCgoKT0+ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLmRyYWdnYWJsZSE9PXZvaWQgMCl9fShfLk5wKTt2YXIgT2lhO09pYT1uZXcgV2Vha01hcDsKXy5tdD1jbGFzcyBleHRlbmRzIF8ubm97Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuSXo9dGhpcy53aD1udWxsO3RoaXMudGg9ITE7dGhpcy5zaD1udWxsO3RoaXMubmwoYSxiKX1ubChhLGIpe18uJG4oYSk7dGhpcy5fX2dtPW5ldyBEaWEoYiYmYi5tYXJrZXJzKTt0aGlzLl9fZ20uc2V0KCJpc0luaXRpYWxpemVkIiwhMSk7dGhpcy5xaD1fLm1vKCExLCEwKTt0aGlzLnFoLmFkZExpc3RlbmVyKGU9PntpZih0aGlzLmdldCgidmlzaWJsZSIpIT09ZSl7aWYodGhpcy50aCl7bGV0IGY9dGhpcy5fX2dtO2Yuc2V0KCJzaG91bGRBdXRvRm9jdXMiLGUmJmYuZ2V0KCJpc01hcEluaXRpYWxpemVkIikpfW1lYSh0aGlzLGUpO3RoaXMuc2V0KCJ2aXNpYmxlIixlKX19KTtiJiZiLmNsaWVudCYmKHRoaXMuSXo9Xy5DaWFbYi5jbGllbnRdfHxudWxsKTt2YXIgYz10aGlzLmNvbnRyb2xzPVtdO18uYW0oXy5wcSwoZSxmKT0+e2NbZl09bmV3IF8uRW87Y1tmXS5hZGRMaXN0ZW5lcigiaW5zZXJ0X2F0IiwKKCk9PntfLk0odGhpcywxODIxMTIpfSl9KTt0aGlzLmduPWImJmIuZ258fF8ubW8oITEpO3RoaXMuY29udGFpbmVyPWE7dGhpcy5QcD1iJiZiLlBwfHx0aGlzLmNvbnRhaW5lcjt0aGlzLl9fZ20uc2V0KCJkZXZlbG9wZXJQcm92aWRlZERpdiIsdGhpcy5QcCk7Xy5VYS5NdXRhdGlvbk9ic2VydmVyJiZ0aGlzLlBwJiYoKGE9T2lhLmdldCh0aGlzLlBwKSkmJmEuZGlzY29ubmVjdCgpLGE9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgZiBvZiBlKWYuYXR0cmlidXRlTmFtZT09PSJkaXIiJiZfLnduKHRoaXMsInNob3VsZFVzZVJUTENvbnRyb2xzQ2hhbmdlIil9KSxPaWEuc2V0KHRoaXMuUHAsYSksYS5vYnNlcnZlKHRoaXMuUHAse2F0dHJpYnV0ZXM6ITB9KSk7dGhpcy5zZXQoInN0YW5kQWxvbmUiLCEwKTt0aGlzLnNldFBvdihuZXcgXy5rdCgwLDAsMSkpO2ImJmIucG92JiYoYT1iLnBvdixfLmptKGEuem9vbSl8fChhLnpvb209dHlwZW9mIGIuem9vbT09PSJudW1iZXIiPwpiLnpvb206MSkpO3RoaXMuc2V0VmFsdWVzKGIpO3RoaXMuZ2V0VmlzaWJsZSgpPT09dm9pZCAwJiZ0aGlzLnNldFZpc2libGUoITApO3ZhciBkPXRoaXMuX19nbS5tYXJrZXJzO18udG4odGhpcywicGFub19jaGFuZ2VkIiwoKT0+e18uSGwoIm1hcmtlciIpLnRoZW4oZT0+e2UuTUMoZCx0aGlzLCExKX0pfSk7Xy5McFszNV0mJmImJmIuZEUmJl8uSGwoInV0aWwiKS50aGVuKGU9PntlLmVyLnRoKG5ldyBfLm5xKGIuZEUpKX0pO18uc24odGhpcywia2V5ZG93biIsdGhpcyx0aGlzLnhoKX12aXNpYmxlX2NoYW5nZWQoKXt2YXIgYT0hIXRoaXMuZ2V0KCJ2aXNpYmxlIiksYj0hMTt0aGlzLnFoLmdldCgpIT09YSYmKHRoaXMudGgmJihiPXRoaXMuX19nbSxiLnNldCgic2hvdWxkQXV0b0ZvY3VzIixhJiZiLmdldCgiaXNNYXBJbml0aWFsaXplZCIpKSksbWVhKHRoaXMsYSksdGhpcy5xaC5zZXQoYSksYj1hKTthJiYodGhpcy53aD10aGlzLndofHxuZXcgUHJvbWlzZShjPT57Xy5IbCgic3RyZWV0dmlldyIpLnRoZW4oZD0+CntpZih0aGlzLkl6KXZhciBlPXRoaXMuSXo7dGhpcy5fX2dtLnNldCgiaXNJbml0aWFsaXplZCIsITApO2MoZC5WTyh0aGlzLHRoaXMucWgsdGhpcy50aCxlKSl9LCgpPT57Xy5PbCh0aGlzLl9fZ20uZ2V0KCJzbG9UcmFja2luZ0lkIiksMTMpfSl9KSxiJiZ0aGlzLndoLnRoZW4oYz0+e2MuSlAoKX0pKX14aChhKXthLmtleT09PSJFc2NhcGUiJiZ0aGlzLnJoPy5ncz8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkmJnRoaXMuZ2V0KCJlbmFibGVDbG9zZUJ1dHRvbiIpJiZ0aGlzLmdldCgidmlzaWJsZSIpJiYoYS5zdG9wUHJvcGFnYXRpb24oKSxfLnduKHRoaXMsImNsb3NlY2xpY2siKSx0aGlzLnNldCgidmlzaWJsZSIsITEpKX1yZWdpc3RlclBhbm9Qcm92aWRlcihhLGIpe3RoaXMuc2V0KCJwYW5vUHJvdmlkZXIiLHtwcm92aWRlcjphLG9wdGlvbnM6Ynx8e319KX1mb2N1cygpe3ZhciBhPXRoaXMuX19nbTt0aGlzLmdldFZpc2libGUoKSYmIWEuZ2V0KCJwZW5kaW5nRm9jdXMiKSYmCmEuc2V0KCJwZW5kaW5nRm9jdXMiLCEwKX1nZXRQYW5vKCl7cmV0dXJuIHRoaXMuZ2V0KCJwYW5vIil9Z2V0U3RhdHVzKCl7cmV0dXJuIHRoaXMuZ2V0KCJzdGF0dXMiKX1zZXRQYW5vKGEpe3RoaXMuc2V0KCJwYW5vIixhKX1nZXRQaG90b2dyYXBoZXJQb3YoKXtyZXR1cm4gdGhpcy5nZXQoInBob3RvZ3JhcGhlclBvdiIpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJwb3NpdGlvbiIpfXNldFBvc2l0aW9uKGEpe3RoaXMuc2V0KCJwb3NpdGlvbiIsYSl9Z2V0UG92KCl7cmV0dXJuIHRoaXMuZ2V0KCJwb3YiKX1zZXRQb3YoYSl7dGhpcy5zZXQoInBvdiIsYSl9Z2V0TG9jYXRpb24oKXtyZXR1cm4gdGhpcy5nZXQoImxvY2F0aW9uIil9Z2V0TGlua3MoKXtyZXR1cm4gdGhpcy5nZXQoImxpbmtzIil9c2V0TGlua3MoYSl7dGhpcy5zZXQoImxpbmtzIixhKX1nZXRNb3Rpb25UcmFja2luZygpe3JldHVybiB0aGlzLmdldCgibW90aW9uVHJhY2tpbmciKX1zZXRNb3Rpb25UcmFja2luZyhhKXt0aGlzLnNldCgibW90aW9uVHJhY2tpbmciLAphKX1nZXRWaXNpYmxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ2aXNpYmxlIil9c2V0VmlzaWJsZShhKXt0aGlzLnNldCgidmlzaWJsZSIsYSl9Z2V0Wm9vbSgpe3JldHVybiB0aGlzLmdldCgiem9vbSIpfXNldFpvb20oYSl7dGhpcy5zZXQoInpvb20iLGEpfXNldE9wdGlvbnMoYSl7dGhpcy5zZXRWYWx1ZXMoYSl9fTtfLm10LnByb3RvdHlwZS5IdD1fLmhhKDI3KTtfLm10LnByb3RvdHlwZS5Fbj1fLmhhKDI1KTtfLm10LnByb3RvdHlwZS5zZXRPcHRpb25zPV8ubXQucHJvdG90eXBlLnNldE9wdGlvbnM7Xy5tdC5wcm90b3R5cGUuc2V0Wm9vbT1fLm10LnByb3RvdHlwZS5zZXRab29tO18ubXQucHJvdG90eXBlLmdldFpvb209Xy5tdC5wcm90b3R5cGUuZ2V0Wm9vbTtfLm10LnByb3RvdHlwZS5zZXRWaXNpYmxlPV8ubXQucHJvdG90eXBlLnNldFZpc2libGU7Xy5tdC5wcm90b3R5cGUuZ2V0VmlzaWJsZT1fLm10LnByb3RvdHlwZS5nZXRWaXNpYmxlOwpfLm10LnByb3RvdHlwZS5zZXRNb3Rpb25UcmFja2luZz1fLm10LnByb3RvdHlwZS5zZXRNb3Rpb25UcmFja2luZztfLm10LnByb3RvdHlwZS5nZXRNb3Rpb25UcmFja2luZz1fLm10LnByb3RvdHlwZS5nZXRNb3Rpb25UcmFja2luZztfLm10LnByb3RvdHlwZS5zZXRMaW5rcz1fLm10LnByb3RvdHlwZS5zZXRMaW5rcztfLm10LnByb3RvdHlwZS5nZXRMaW5rcz1fLm10LnByb3RvdHlwZS5nZXRMaW5rcztfLm10LnByb3RvdHlwZS5nZXRMb2NhdGlvbj1fLm10LnByb3RvdHlwZS5nZXRMb2NhdGlvbjtfLm10LnByb3RvdHlwZS5zZXRQb3Y9Xy5tdC5wcm90b3R5cGUuc2V0UG92O18ubXQucHJvdG90eXBlLmdldFBvdj1fLm10LnByb3RvdHlwZS5nZXRQb3Y7Xy5tdC5wcm90b3R5cGUuc2V0UG9zaXRpb249Xy5tdC5wcm90b3R5cGUuc2V0UG9zaXRpb247Xy5tdC5wcm90b3R5cGUuZ2V0UG9zaXRpb249Xy5tdC5wcm90b3R5cGUuZ2V0UG9zaXRpb247Cl8ubXQucHJvdG90eXBlLmdldFBob3RvZ3JhcGhlclBvdj1fLm10LnByb3RvdHlwZS5nZXRQaG90b2dyYXBoZXJQb3Y7Xy5tdC5wcm90b3R5cGUuc2V0UGFubz1fLm10LnByb3RvdHlwZS5zZXRQYW5vO18ubXQucHJvdG90eXBlLmdldFN0YXR1cz1fLm10LnByb3RvdHlwZS5nZXRTdGF0dXM7Xy5tdC5wcm90b3R5cGUuZ2V0UGFubz1fLm10LnByb3RvdHlwZS5nZXRQYW5vO18ubXQucHJvdG90eXBlLmZvY3VzPV8ubXQucHJvdG90eXBlLmZvY3VzO18ubXQucHJvdG90eXBlLnJlZ2lzdGVyUGFub1Byb3ZpZGVyPV8ubXQucHJvdG90eXBlLnJlZ2lzdGVyUGFub1Byb3ZpZGVyO18ubXQucHJvdG90eXBlLmNvbnN0cnVjdG9yPV8ubXQucHJvdG90eXBlLmNvbnN0cnVjdG9yOwpfLlduKF8ubXQucHJvdG90eXBlLHt2aXNpYmxlOl8uY3MscGFubzpfLmJzLHBvc2l0aW9uOl8uTW0oXy5YbSkscG92Ol8uTW0oRWlhKSxtb3Rpb25UcmFja2luZzokcixwaG90b2dyYXBoZXJQb3Y6bnVsbCxsb2NhdGlvbjpudWxsLGxpbmtzOl8uR20oXy5JbShfLmttKSksc3RhdHVzOm51bGwsem9vbTpfLmFzLGVuYWJsZUNsb3NlQnV0dG9uOl8uY3N9KTtfLndtKF8ubXQpO18ubnQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnlsPVtdO3RoaXMucmg9dGhpcy5xaD10aGlzLnNoPW51bGx9cmVnaXN0ZXIoYSl7dmFyIGI9dGhpcy55bDt2YXIgYz1iLmxlbmd0aDtpZighY3x8YS56SW5kZXg+PWJbMF0uekluZGV4KXZhciBkPTA7ZWxzZSBpZihhLnpJbmRleD49YltjLTFdLnpJbmRleCl7Zm9yKGQ9MDtjLWQ+MTspe2xldCBlPWQrYz4+MTthLnpJbmRleD49YltlXS56SW5kZXg/Yz1lOmQ9ZX1kPWN9ZWxzZSBkPWM7Yi5zcGxpY2UoZCwwLGEpfXVucmVnaXN0ZXIoYSl7Xy5vbSh0aGlzLnlsLGEpfXNldENhcHR1cmUoYSxiKXt0aGlzLnFoPWE7dGhpcy5yaD1ifXJlbGVhc2VDYXB0dXJlKGEsYil7dGhpcy5xaD09PWEmJnRoaXMucmg9PT1iJiYodGhpcy5yaD10aGlzLnFoPW51bGwpfX07Xy5udC5wcm90b3R5cGUudEE9Xy5oYSgyOCk7Xy5QaWE9T2JqZWN0LmZyZWV6ZShbImV4aXRGdWxsc2NyZWVuIiwid2Via2l0RXhpdEZ1bGxzY3JlZW4iLCJtb3pDYW5jZWxGdWxsU2NyZWVuIiwibXNFeGl0RnVsbHNjcmVlbiJdKTtfLlFpYT1PYmplY3QuZnJlZXplKFsiZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwiTVNGdWxsc2NyZWVuQ2hhbmdlIl0pO18uUmlhPU9iamVjdC5mcmVlemUoWyJmdWxsc2NyZWVuRW5hYmxlZCIsIndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkIiwibW96RnVsbFNjcmVlbkVuYWJsZWQiLCJtc0Z1bGxzY3JlZW5FbmFibGVkIl0pO18uU2lhPU9iamVjdC5mcmVlemUoWyJyZXF1ZXN0RnVsbHNjcmVlbiIsIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuIiwibW96UmVxdWVzdEZ1bGxTY3JlZW4iLCJtc1JlcXVlc3RGdWxsc2NyZWVuIl0pO3ZhciBUZWE9Y2xhc3MgZXh0ZW5kcyB4aWF7Y29uc3RydWN0b3IoYSxiLGMsZCl7c3VwZXIoKTt0aGlzLk1yPWM7dGhpcy5yaD1kO3RoaXMuSmg9dGhpcy5Idj10aGlzLmprPXRoaXMub3ZlcmxheUxheWVyPW51bGw7dGhpcy5JaD0hMTt0aGlzLmRpdj1iO3RoaXMuc2V0KCJkZXZlbG9wZXJQcm92aWRlZERpdiIsdGhpcy5kaXYpO3RoaXMuUmw9Xy5tbyhuZXcgXy5qdChbXSkpO3RoaXMuTGg9bmV3IF8ueHE7dGhpcy5jb3B5cmlnaHRzPW5ldyBfLkVvO3RoaXMuQWg9bmV3IF8ueHE7dGhpcy5EaD1uZXcgXy54cTt0aGlzLkNoPW5ldyBfLnhxO3RoaXMuZ249Xy5tbyhfLm9lYShjLHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpKTt0aGlzLllyPW5ldyBfLmxvKG51bGwpO3ZhciBlPXRoaXMubWFya2Vycz1uZXcgXy54cTtlLnFoPSgpPT57ZS5xaD0oKT0+e307UHJvbWlzZS5hbGwoW18uSGwoIm1hcmtlciIpLHRoaXMuc2hdKS50aGVuKChbZixnXSk9PntmLk1DKGUsCmEsZyl9KX07dGhpcy54aD1uZXcgXy5tdChjLHt2aXNpYmxlOiExLGVuYWJsZUNsb3NlQnV0dG9uOiEwLG1hcmtlcnM6ZSxnbjp0aGlzLmduLFBwOnRoaXMuZGl2fSk7dGhpcy54aC5iaW5kVG8oImNvbnRyb2xTaXplIixhKTt0aGlzLnhoLmJpbmRUbygicmVwb3J0RXJyb3JDb250cm9sIixhKTt0aGlzLnhoLnRoPSEwO3RoaXMuemg9bmV3IF8ubnQ7dGhpcy53aD1uZXcgUHJvbWlzZShmPT57dGhpcy5XaD1mfSk7dGhpcy5zaT1uZXcgUHJvbWlzZShmPT57dGhpcy5kaT1mfSk7dGhpcy5xaD1uZXcgXy5odChhLHRoaXMpO3RoaXMuUGg9bmV3IF8uRW87dGhpcy5zaD10aGlzLnFoLnNKLnRoZW4oKCk9PnRoaXMucWguanc9PT0iVFJVRSIpO3RoaXMuQno9ZnVuY3Rpb24oZil7dGhpcy5xaC5CeihmKX07dGhpcy5zZXQoImlzSW5pdGlhbGl6ZWQiLCExKTt0aGlzLnhoLl9fZ20uYmluZFRvKCJpc01hcEluaXRpYWxpemVkIix0aGlzLCJpc0luaXRpYWxpemVkIik7dGhpcy5yaC50aGVuKCgpPT4Ke3RoaXMuc2V0KCJpc0luaXRpYWxpemVkIiwhMCl9KTt0aGlzLnNldCgiaXNNYXBCaW5kaW5nQ29tcGxldGUiLCExKTt0aGlzLkdoPW5ldyBQcm9taXNlKGY9PntfLnRuKHRoaXMsIm1hcGJpbmRpbmdjb21wbGV0ZSIsKCk9Pnt0aGlzLnNldCgiaXNNYXBCaW5kaW5nQ29tcGxldGUiLCEwKTtmKCl9KX0pO3RoaXMuT2g9bmV3IEJpYTt0aGlzLnNoLnRoZW4oZj0+e2YmJnRoaXMuamsmJnRoaXMuamsuQ2godGhpcy5PaC5xaCl9KTt0aGlzLnRoPW5ldyBNYXA7dGhpcy55aD1uZXcgTWFwO2I9WzIxMzMzNywyMTEyNDIsMjEzMzM4LDIxMTI0M107Yz1bMTIyNDQ3LC4uLmJdO3RoaXMuQmg9bmV3IHlpYSh7aHU6Xy5ObCxqdTpfLlBsLFpuOl8uT2wsaEQ6e01BUF9JTklUSUFMSVpBVElPTjpuZXcgU2V0KGMpLFZFQ1RPUl9NQVBfSU5JVElBTElaQVRJT046bmV3IFNldChiKX19KX19O3ZhciBvdD17VU5JTklUSUFMSVpFRDoiVU5JTklUSUFMSVpFRCIsUkFTVEVSOiJSQVNURVIiLFZFQ1RPUjoiVkVDVE9SIn07dmFyIG9xPWNsYXNzIGV4dGVuZHMgXy55bntzZXQoYSxiKXtpZihiIT1udWxsJiYhKGImJl8uam0oYi5tYXhab29tKSYmYi50aWxlU2l6ZSYmYi50aWxlU2l6ZS53aWR0aCYmYi50aWxlU2l6ZS5oZWlnaHQmJmIuZ2V0VGlsZSYmYi5nZXRUaWxlLmFwcGx5KSl0aHJvdyBFcnJvcigiRXhwZWN0ZWQgdmFsdWUgaW1wbGVtZW50aW5nIGdvb2dsZS5tYXBzLk1hcFR5cGUiKTtzdXBlci5zZXQoYSxiKX19O29xLnByb3RvdHlwZS5zZXQ9b3EucHJvdG90eXBlLnNldDtvcS5wcm90b3R5cGUuY29uc3RydWN0b3I9b3EucHJvdG90eXBlLmNvbnN0cnVjdG9yO3ZhciBVZWE9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLnFoPSExO3RoaXMucmg9IlVOSU5JVElBTElaRUQifXJlbmRlcmluZ1R5cGVfY2hhbmdlZCgpe2lmKCF0aGlzLnFoJiZ0aGlzLmdldCgibWFwSGFzQmVlbkFibGVUb0JlRHJhd24iKSl0aHJvdyBwZWEodGhpcyksRXJyb3IoIlNldHRpbmcgbWFwICdyZW5kZXJpbmdUeXBlJyBhZnRlciBpbnN0YW50aWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIik7fX07Xy5wdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9bmV3IF8uYm8oMTI4LDEyOCk7dGhpcy5xaD0yNTYvMzYwO3RoaXMucmg9MjU2LygyKk1hdGguUEkpO3RoaXMud0Y9ITB9ZnJvbUxhdExuZ1RvUG9pbnQoYSxiPW5ldyBfLmJvKDAsMCkpe2E9Xy5YbShhKTt2YXIgYz10aGlzLnNoO2IueD1jLngrYS5sbmcoKSp0aGlzLnFoO2E9Xy5jbShNYXRoLnNpbihfLnRsKGEubGF0KCkpKSwtKDEtMUUtMTUpLDEtMUUtMTUpO2IueT1jLnkrLjUqTWF0aC5sb2coKDErYSkvKDEtYSkpKi10aGlzLnJoO3JldHVybiBifWZyb21Qb2ludFRvTGF0TG5nKGEsYj0hMSl7dmFyIGM9dGhpcy5zaDtyZXR1cm4gbmV3IF8uVG0oXy51bCgyKk1hdGguYXRhbihNYXRoLmV4cCgoYS55LWMueSkvLXRoaXMucmgpKS1NYXRoLlBJLzIpLChhLngtYy54KS90aGlzLnFoLGIpfX07dmFyIFRpYT1bMCxfLkJyLC0zXTtfLiRwPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfU9sKGEpe3JldHVybiBfLmtoKHRoaXMsOCxhKX1jbGVhckNvbG9yKCl7cmV0dXJuIF8uUWYodGhpcyw5KX19O18uJHAucHJvdG90eXBlLmtwPV8uaGEoMjkpO18uJHAucHJvdG90eXBlLnJoPV8uaGEoNSk7Xy5acD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uWnAucHJvdG90eXBlLnFrPV8uaGEoMzIpO3ZhciBKZWE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLllwPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5ZcC5wcm90b3R5cGUuQmk9Xy5oYSgzNCk7Xy5ZcC5wcm90b3R5cGUuRmk9Xy5oYSgzMyk7dmFyIEllYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRab29tKCl7cmV0dXJuIF8uTGcodGhpcywzKX1zZXRab29tKGEpe3JldHVybiBfLmRoKHRoaXMsMyxhKX19O3ZhciBLZWE9Xy4kaShJZWEsWzAsWzAsXy5QLC0xXSxfLlosXy5CcixbMCxfLkJyLC0xLF8uWl0sWzAsXy5aLF8uUiwtMSwxLF8uVSwtMSwxLF8uWSxbMCxfLlosLTEsXy51cixUaWEsXy5SLF8udXIsLTEsXy5aLFRpYSxfLnVyXSxbMCxfLkNyLF8uUl0sXy5SLC0yLF8uQ3IsXy55ciwyLF8uUiw4MixfLlJdLDEsXy5VLF8uWl0pO18uV3A9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnFoPWE7dGhpcy5yaD1ifWVxdWFscyhhKXtyZXR1cm4gYT90aGlzLnFoPT09YS5xaCYmdGhpcy5yaD09PWEucmg6ITF9fTtfLlVpYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm1pbj0wO3RoaXMubWF4PWE7dGhpcy5sZW5ndGg9YS0wfXdyYXAoYSl7cmV0dXJuIGEtTWF0aC5mbG9vcigoYS10aGlzLm1pbikvdGhpcy5sZW5ndGgpKnRoaXMubGVuZ3RofX07Xy5WaWE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy53dj1hLnd2fHxudWxsO3RoaXMuWXc9YS5Zd3x8bnVsbH13cmFwKGEpe3JldHVybiBuZXcgXy5XcCh0aGlzLnd2P3RoaXMud3Yud3JhcChhLnFoKTphLnFoLHRoaXMuWXc/dGhpcy5Zdy53cmFwKGEucmgpOmEucmgpfX07Xy5XaWE9bmV3IF8uVmlhKHt3djpuZXcgXy5VaWEoMjU2KX0pO3ZhciBDZWE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCl7dGhpcy5yaD1hO3RoaXMudGlsdD1iO3RoaXMuaGVhZGluZz1jO3RoaXMucWg9ZDthPU1hdGguY29zKGIqTWF0aC5QSS8xODApO2I9TWF0aC5jb3MoYypNYXRoLlBJLzE4MCk7Yz1NYXRoLnNpbihjKk1hdGguUEkvMTgwKTt0aGlzLm0xMT10aGlzLnJoKmI7dGhpcy5tMTI9dGhpcy5yaCpjO3RoaXMubTIxPS10aGlzLnJoKmEqYzt0aGlzLm0yMj10aGlzLnJoKmEqYjt0aGlzLnNoPXRoaXMubTExKnRoaXMubTIyLXRoaXMubTEyKnRoaXMubTIxfWVxdWFscyhhKXtyZXR1cm4gYT90aGlzLm0xMT09PWEubTExJiZ0aGlzLm0xMj09PWEubTEyJiZ0aGlzLm0yMT09PWEubTIxJiZ0aGlzLm0yMj09PWEubTIyJiZ0aGlzLnFoPT09YS5xaDohMX19O3ZhciBZZWE9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEpe3ZhciBiPV8uZHIsYz1fLm1sKF8uSmwucmgoKSk7c3VwZXIoKTt0aGlzLkFoPV8uVW4oImNlbnRlciIpO3RoaXMueGg9Xy5Vbigic2l6ZSIpO3RoaXMueWg9dGhpcy5xaD10aGlzLnJoPXRoaXMud2g9bnVsbDt0aGlzLkJoPXRoaXMuQ2g9ITE7dGhpcy56aD1uZXcgXy5BcCgoKT0+e3ZhciBkPUZlYSh0aGlzKTtpZih0aGlzLnNoJiZ0aGlzLkNoKXRoaXMueWghPT1kJiZ0aGlzLnFoPy5yZW1vdmUoKTtlbHNle3ZhciBlPSIiLGY9dGhpcy5BaCgpLGc9RGVhKHRoaXMpLGg9dGhpcy54aCgpO2lmKGgpe2lmKGYmJmlzRmluaXRlKGYubGF0KCkpJiZpc0Zpbml0ZShmLmxuZygpKSYmZz4xJiZkIT1udWxsJiZoJiZoLndpZHRoJiZoLmhlaWdodCYmdGhpcy5yaCl7Xy5RcCh0aGlzLnJoLGgpO2lmKGY9Xy5Cbyh0aGlzLkdoLGYsZykpe3ZhciBrPW5ldyBfLnlvO2subWluWD1NYXRoLnJvdW5kKGYueC1oLndpZHRoLzIpOwprLm1heFg9ay5taW5YK2gud2lkdGg7ay5taW5ZPU1hdGgucm91bmQoZi55LWguaGVpZ2h0LzIpO2subWF4WT1rLm1pblkraC5oZWlnaHQ7Zj1rfWVsc2UgZj1udWxsO2s9WGlhW2RdO2YmJih0aGlzLkNoPSEwLHRoaXMueWg9ZCx0aGlzLnNoJiZ0aGlzLnFoJiYoZT1fLlZwKGcsMCwwKSx0aGlzLnNoLnNldCh7aW1hZ2U6dGhpcy5xaCxib3VuZHM6e21pbjpfLlhwKGUse1hoOmYubWluWCxZaDpmLm1pbll9KSxtYXg6Xy5YcChlLHtYaDpmLm1heFgsWWg6Zi5tYXhZfSl9LHNpemU6e3dpZHRoOmgud2lkdGgsaGVpZ2h0OmguaGVpZ2h0fX0pKSxlPUxlYSh0aGlzLGYsZyxkLGspKX10aGlzLnFoJiYoXy5RcCh0aGlzLnFoLGgpLEhlYSh0aGlzLGUpKX19fSwwKTt0aGlzLkpoPWI7dGhpcy5HaD1uZXcgXy5wdDt0aGlzLnRoPWMrIi9tYXBzL2FwaS9qcy9TdGF0aWNNYXBTZXJ2aWNlLkdldE1hcEltYWdlIjt0aGlzLnNoPW5ldyBfLmxvKG51bGwpO3RoaXMuc2V0KCJkaXYiLGEpO3RoaXMuc2V0KCJsb2FkaW5nIiwKITApO3RoaXMuc2V0KCJjb2xvclRoZW1lIiwxKX1nZXREaXYoKXtyZXR1cm4gbnVsbH1jaGFuZ2VkKCl7dmFyIGE9dGhpcy5BaCgpLGI9RGVhKHRoaXMpLGM9RmVhKHRoaXMpLGQ9ISF0aGlzLnhoKCksZT10aGlzLmdldCgibWFwSWQiKTtpZihhJiYhYS5lcXVhbHModGhpcy5EaCl8fHRoaXMuSWghPT1ifHx0aGlzLkZoIT09Y3x8dGhpcy5CaCE9PWR8fHRoaXMud2ghPT1lKXRoaXMuSWg9Yix0aGlzLkZoPWMsdGhpcy5CaD1kLHRoaXMud2g9ZSx0aGlzLnNofHx0aGlzLnFoPy5yZW1vdmUoKSx0aGlzLnpoLkRpKCk7dGhpcy5EaD1hfWRpdl9jaGFuZ2VkKCl7dmFyIGE9dGhpcy5nZXQoImRpdiIpLGI9dGhpcy5yaDtpZihhKWlmKGIpYS5hcHBlbmRDaGlsZChiKTtlbHNle2I9dGhpcy5yaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2xldCBjPXRoaXMucWg9Xy53bCgiSU1HIik7Xy5xbihiLCJjb250ZXh0bWVudSIsZD0+e18uZm4oZCk7Cl8uaG4oZCl9KTtjLm9udG91Y2hzdGFydD1jLm9udG91Y2htb3ZlPWMub250b3VjaGVuZD1jLm9udG91Y2hjYW5jZWw9ZD0+e18uZ24oZCk7Xy5obihkKX07Yy5hbHQ9IiI7Xy5RcChjLF8ucW8pO2EuYXBwZW5kQ2hpbGQoYik7Xy5CcCh0aGlzLnpoKX1lbHNlIGImJihiLnJlbW92ZSgpLHRoaXMucmg9bnVsbCl9fSxFZWE9e3JvYWRtYXA6MCxzYXRlbGxpdGU6MixoeWJyaWQ6Myx0ZXJyYWluOjR9LFhpYT17MDoxLDI6MiwzOjIsNDoyfTt2YXIgWWlhPWNsYXNze2NvbnN0cnVjdG9yKCl7UGNhKHRoaXMpfWFkZExpc3RlbmVyKGEsYil7cmV0dXJuIF8ua24odGhpcyxhLGIpfXhpKGEsYixjKXt0aGlzLmNvbnN0cnVjdG9yPT09YiYmUm0oYSx0aGlzLGMpfX07Xy5aaWE9Xy5DbSh7ZmlsbENvbG9yOl8uTW0oXy5kcyksZmlsbE9wYWNpdHk6Xy5NbShfLlpyKSxzdHJva2VDb2xvcjpfLk1tKF8uZHMpLHN0cm9rZU9wYWNpdHk6Xy5NbShfLlpyKSxzdHJva2VXZWlnaHQ6Xy5NbShfLlpyKSxwb2ludFJhZGl1czpfLk1tKF8uTG0oXy5ZcixhPT57aWYoYTw9MTI4KXJldHVybiBhO3Rocm93IF8uQW0oIlRoZSBtYXggYWxsb3dlZCBwb2ludFJhZGl1cyB2YWx1ZSBpcyAxMjhweC4iKTt9KSl9LCExLCJGZWF0dXJlU3R5bGVPcHRpb25zIik7Xy5xdD1jbGFzcyBleHRlbmRzIFlpYXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuc2g9dGhpcy5xaD1udWxsO3RoaXMucmg9ITA7dGhpcy5tYXA9YS5tYXA7dGhpcy53aD1hLmZlYXR1cmVUeXBlO3RoaXMueGg9YS5kYXRhc2V0SWQ7dGhpcy50aD1hLkRzfWdldCBmZWF0dXJlVHlwZSgpe3JldHVybiB0aGlzLndofXNldCBmZWF0dXJlVHlwZShhKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdnb29nbGUubWFwcy5GZWF0dXJlTGF5ZXIgImZlYXR1cmVUeXBlIiBpcyByZWFkLW9ubHkuJyk7fWdldCBpc0F2YWlsYWJsZSgpe3JldHVybiBNZWEodGhpcykuaXNBdmFpbGFibGV9c2V0IGlzQXZhaWxhYmxlKGEpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ2dvb2dsZS5tYXBzLkZlYXR1cmVMYXllciAiaXNBdmFpbGFibGUiIGlzIHJlYWQtb25seS4nKTt9Z2V0IHN0eWxlKCl7YXEodGhpcywiZ29vZ2xlLm1hcHMuRmVhdHVyZUxheWVyLnN0eWxlIik7cmV0dXJuIHRoaXMucWh9c2V0IHN0eWxlKGEpe2lmKGEpdHJ5e3ZhciBiPQpfLkttKFtpaGEsXy5aaWFdKShhKX1jYXRjaChjKXt0aHJvdyBfLkFtKCJnb29nbGUubWFwcy5GZWF0dXJlTGF5ZXIuc3R5bGUiLGMpO31lbHNlIGI9bnVsbDt0aGlzLnFoPWI7YXEodGhpcywiZ29vZ2xlLm1hcHMuRmVhdHVyZUxheWVyLnN0eWxlIikuaXNBdmFpbGFibGUmJihicSh0aGlzLHRoaXMucWgpLHRoaXMuZmVhdHVyZVR5cGU9PT0iREFUQVNFVCI/Xy5NKHRoaXMubWFwLDE3NzI5NCk6Xy5NKHRoaXMubWFwLDE1MTU1NSkpfWdldCBpc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5yaH1zZXQgaXNFbmFibGVkKGEpe3RoaXMucmghPT1hJiYodGhpcy5yaD1hLHRoaXMuY0koKSl9Z2V0IGRhdGFzZXRJZCgpe3JldHVybiB0aGlzLnhofXNldCBkYXRhc2V0SWQoYSl7dGhyb3cgbmV3IFR5cGVFcnJvcignZ29vZ2xlLm1hcHMuRmVhdHVyZUxheWVyICJkYXRhc2V0SWQiIGlzIHJlYWQtb25seS4nKTt9Z2V0IERzKCl7cmV0dXJuIHRoaXMudGh9c2V0IERzKGEpe3RoaXMudGg9YX1hZGRMaXN0ZW5lcihhLApiKXthcSh0aGlzLCJnb29nbGUubWFwcy5GZWF0dXJlTGF5ZXIuYWRkTGlzdGVuZXIiKTthPT09ImNsaWNrIj90aGlzLmZlYXR1cmVUeXBlPT09IkRBVEFTRVQiP18uTSh0aGlzLm1hcCwxNzc4MjEpOl8uTSh0aGlzLm1hcCwxNDg4MzYpOmE9PT0ibW91c2Vtb3ZlIiYmKHRoaXMuZmVhdHVyZVR5cGU9PT0iREFUQVNFVCI/Xy5NKHRoaXMubWFwLDE4NjM5MSk6Xy5NKHRoaXMubWFwLDE4NjM5MCkpO3JldHVybiBzdXBlci5hZGRMaXN0ZW5lcihhLGIpfWNJKCl7dGhpcy5pc0F2YWlsYWJsZT90aGlzLnNoIT09dGhpcy5xaCYmYnEodGhpcyx0aGlzLnFoKTp0aGlzLnNoIT09bnVsbCYmYnEodGhpcyxudWxsKX19O18ucWIoY3EsVWwpO18uYWE9Y3EucHJvdG90eXBlO18uYWEuc2V0UG9zaXRpb249ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMubm9kZT1hKXRoaXMucmg9dHlwZW9mIGI9PT0ibnVtYmVyIj9iOnRoaXMubm9kZS5ub2RlVHlwZSE9MT8wOnRoaXMucWg/LTE6MTt0eXBlb2YgYz09PSJudW1iZXIiJiYodGhpcy5kZXB0aD1jKX07Xy5hYS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgY3EodGhpcy5ub2RlLHRoaXMucWgsIXRoaXMuc2gsdGhpcy5yaCx0aGlzLmRlcHRoKX07Cl8uYWEubmV4dD1mdW5jdGlvbigpe2lmKHRoaXMudGgpe2lmKCF0aGlzLm5vZGV8fHRoaXMuc2gmJnRoaXMuZGVwdGg9PTApcmV0dXJuIFdyO3ZhciBhPXRoaXMubm9kZTtsZXQgYz10aGlzLnFoPy0xOjE7aWYodGhpcy5yaD09Yyl7dmFyIGI9dGhpcy5xaD9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQ7Yj90aGlzLnNldFBvc2l0aW9uKGIpOnRoaXMuc2V0UG9zaXRpb24oYSxjKi0xKX1lbHNlKGI9dGhpcy5xaD9hLnByZXZpb3VzU2libGluZzphLm5leHRTaWJsaW5nKT90aGlzLnNldFBvc2l0aW9uKGIpOnRoaXMuc2V0UG9zaXRpb24oYS5wYXJlbnROb2RlLGMqLTEpO3RoaXMuZGVwdGgrPXRoaXMucmgqKHRoaXMucWg/LTE6MSl9ZWxzZSB0aGlzLnRoPSEwO3JldHVybihhPXRoaXMubm9kZSk/e3ZhbHVlOmEsZG9uZTohMX06V3J9O18uYWEuZXF1YWxzPWZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGU9PXRoaXMubm9kZSYmKCF0aGlzLm5vZGV8fGEucmg9PXRoaXMucmgpfTsKXy5hYS5zcGxpY2U9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ub2RlLGM9dGhpcy5xaD8xOi0xO3RoaXMucmg9PWMmJih0aGlzLnJoPWMqLTEsdGhpcy5kZXB0aCs9dGhpcy5yaCoodGhpcy5xaD8tMToxKSk7dGhpcy5xaD0hdGhpcy5xaDtjcS5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMpO3RoaXMucWg9IXRoaXMucWg7Yz1fLllhKGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztmb3IobGV0IGQ9Yy5sZW5ndGgtMTtkPj0wO2QtLSlfLnhsKGNbZF0sYik7Xy55bChiKX07dmFyIE5lYT1jbGFzcyBleHRlbmRzIGNxe2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsdm9pZCAwLHZvaWQgMCxudWxsLHZvaWQgMCl9bmV4dCgpe2Rve2xldCBhPXN1cGVyLm5leHQoKTtpZihhLmRvbmUpcmV0dXJuIGF9d2hpbGUodGhpcy5yaD09LTEpO3JldHVybnt2YWx1ZTp0aGlzLm5vZGUsZG9uZTohMX19fTtfLmtxPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuYT0xNzI5O3RoaXMubT1hfWhhc2goYSl7dmFyIGI9dGhpcy5hLGM9dGhpcy5tLGQ9MDtmb3IobGV0IGU9MCxmPWEubGVuZ3RoO2U8ZjsrK2UpZCo9YixkKz1hW2VdLGQlPWM7cmV0dXJuIGR9fTt2YXIgT2VhPVJlZ0V4cCgiJyIsImciKSxscT1udWxsO3ZhciBxcT1udWxsLFplYT1uZXcgV2Vha01hcDtfLnFiKF8ucnEsXy5Mbik7T2JqZWN0LmZyZWV6ZSh7bGF0TG5nQm91bmRzOm5ldyBfLlJuKG5ldyBfLlRtKC04NSwtMTgwKSxuZXcgXy5UbSg4NSwxODApKSxzdHJpY3RCb3VuZHM6ITB9KTtfLnJxLnByb3RvdHlwZS5zdHJlZXRWaWV3X2NoYW5nZWQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldCgic3RyZWV0VmlldyIpO2E/YS5zZXQoInN0YW5kQWxvbmUiLCExKTp0aGlzLnNldCgic3RyZWV0VmlldyIsdGhpcy5fX2dtLnhoKX07Xy5ycS5wcm90b3R5cGUuZ2V0RGl2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nbS5kaXZ9O18ucnEucHJvdG90eXBlLmdldERpdj1fLnJxLnByb3RvdHlwZS5nZXREaXY7Xy5ycS5wcm90b3R5cGUucGFuQnk9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9fZ207cXE/Xy53bihjLCJwYW5ieSIsYSxiKTpfLkhsKCJtYXAiKS50aGVuKCgpPT57Xy53bihjLCJwYW5ieSIsYSxiKX0pfTsKXy5ycS5wcm90b3R5cGUucGFuQnk9Xy5ycS5wcm90b3R5cGUucGFuQnk7Xy5ycS5wcm90b3R5cGUubW92ZUNhbWVyYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLl9fZ207dHJ5e2E9dmlhKGEpfWNhdGNoKGMpe3Rocm93IF8uQW0oImludmFsaWQgQ2FtZXJhT3B0aW9ucyIsYyk7fWIuZ2V0KCJpc01hcEJpbmRpbmdDb21wbGV0ZSIpP18ud24oYiwibW92ZWNhbWVyYSIsYSk6Yi5HaC50aGVuKCgpPT57Xy53bihiLCJtb3ZlY2FtZXJhIixhKX0pfTtfLnJxLnByb3RvdHlwZS5tb3ZlQ2FtZXJhPV8ucnEucHJvdG90eXBlLm1vdmVDYW1lcmE7Cl8ucnEucHJvdG90eXBlLmdldEZlYXR1cmVMYXllcj1mdW5jdGlvbihhKXt0cnl7YT1fLkZtKHdpYSkoYSl9Y2F0Y2goZCl7dGhyb3cgZC5tZXNzYWdlPWBnb29nbGUubWFwcy5NYXAuZ2V0RmVhdHVyZUxheWVyOiBFeHBlY3RlZCB2YWxpZCBnb29nbGUubWFwcy5GZWF0dXJlVHlwZSwgYnV0IGdvdCAnJHthfSdgLGQ7fWlmKGE9PT0iUk9BRF9QSUxPVCIpdGhyb3cgXy5BbSgiZ29vZ2xlLm1hcHMuTWFwLmdldEZlYXR1cmVMYXllcjogRXhwZWN0ZWQgdmFsaWQgZ29vZ2xlLm1hcHMuRmVhdHVyZVR5cGUsIGJ1dCBnb3QgJ1JPQURfUElMT1QnIik7aWYoYT09PSJEQVRBU0VUIil0aHJvdyBfLkFtKCJnb29nbGUubWFwcy5NYXAuZ2V0RmVhdHVyZUxheWVyOiBBIGRhdGFzZXQgSUQgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIEZlYXR1cmVMYXllcnMgdGhhdCBoYXZlIGZlYXR1cmVUeXBlIERBVEFTRVQuIFBsZWFzZSB1c2UgZ29vZ2xlLm1hcHMuTWFwLmdldERhdGFzZXRGZWF0dXJlTGF5ZXIoKSBpbnN0ZWFkLiIpOwpwcCh0aGlzLCJnb29nbGUubWFwcy5NYXAuZ2V0RmVhdHVyZUxheWVyIix7ZmVhdHVyZVR5cGU6YX0pO3N3aXRjaChhKXtjYXNlICJBRE1JTklTVFJBVElWRV9BUkVBX0xFVkVMXzEiOl8uTSh0aGlzLDE0ODkzNik7YnJlYWs7Y2FzZSAiQURNSU5JU1RSQVRJVkVfQVJFQV9MRVZFTF8yIjpfLk0odGhpcywxNDg5MzcpO2JyZWFrO2Nhc2UgIkNPVU5UUlkiOl8uTSh0aGlzLDE0ODkzOCk7YnJlYWs7Y2FzZSAiTE9DQUxJVFkiOl8uTSh0aGlzLDE0ODkzOSk7YnJlYWs7Y2FzZSAiUE9TVEFMX0NPREUiOl8uTSh0aGlzLDE0ODk0MSk7YnJlYWs7Y2FzZSAiUk9BRF9QSUxPVCI6Xy5NKHRoaXMsMTc4OTE0KTticmVhaztjYXNlICJTQ0hPT0xfRElTVFJJQ1QiOl8uTSh0aGlzLDE0ODk0Mil9dmFyIGI9dGhpcy5fX2dtO2lmKGIudGguaGFzKGEpKXJldHVybiBiLnRoLmdldChhKTt2YXIgYz1uZXcgXy5xdCh7bWFwOnRoaXMsZmVhdHVyZVR5cGU6YX0pO2MuaXNFbmFibGVkPSFiLkloO2IudGguc2V0KGEsCmMpO3JldHVybiBjfTtfLnJxLnByb3RvdHlwZS5nZXREYXRhc2V0RmVhdHVyZUxheWVyPWZ1bmN0aW9uKGEpe3RyeXsoMCxfLmRzKShhKX1jYXRjaChkKXt0aHJvdyBkLm1lc3NhZ2U9YGdvb2dsZS5tYXBzLk1hcC5nZXREYXRhc2V0RmVhdHVyZUxheWVyOiBFeHBlY3RlZCBub24tZW1wdHkgc3RyaW5nIGZvciBkYXRhc2V0SWQsIGJ1dCBnb3QgJHthfWAsZDt9cHAodGhpcywiZ29vZ2xlLm1hcHMuTWFwLmdldERhdGFzZXRGZWF0dXJlTGF5ZXIiLHtmZWF0dXJlVHlwZToiREFUQVNFVCIsZGF0YXNldElkOmF9KTt2YXIgYj10aGlzLl9fZ207aWYoYi55aC5oYXMoYSkpcmV0dXJuIGIueWguZ2V0KGEpO3ZhciBjPW5ldyBfLnF0KHttYXA6dGhpcyxmZWF0dXJlVHlwZToiREFUQVNFVCIsZGF0YXNldElkOmF9KTtjLmlzRW5hYmxlZD0hYi5JaDtiLnloLnNldChhLGMpO3JldHVybiBjfTsKXy5ycS5wcm90b3R5cGUucGFuVG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fX2dtO2E9Xy5ZbShhKTtiLmdldCgiaXNNYXBCaW5kaW5nQ29tcGxldGUiKT9fLnduKGIsInBhbnRvIixhKTpiLkdoLnRoZW4oKCk9PntfLnduKGIsInBhbnRvIixhKX0pfTtfLnJxLnByb3RvdHlwZS5wYW5Ubz1fLnJxLnByb3RvdHlwZS5wYW5UbztfLnJxLnByb3RvdHlwZS5wYW5Ub0JvdW5kcz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX19nbSxkPV8uVG4oYSk7Yy5nZXQoImlzTWFwQmluZGluZ0NvbXBsZXRlIik/Xy53bihjLCJwYW50b2xhdGxuZ2JvdW5kcyIsZCxiKTpjLkdoLnRoZW4oKCk9PntfLnduKGMsInBhbnRvbGF0bG5nYm91bmRzIixkLGIpfSl9O18ucnEucHJvdG90eXBlLnBhblRvQm91bmRzPV8ucnEucHJvdG90eXBlLnBhblRvQm91bmRzOwpfLnJxLnByb3RvdHlwZS5maXRCb3VuZHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9fZ20sZD1fLlRuKGEpO2MuZ2V0KCJpc01hcEJpbmRpbmdDb21wbGV0ZSIpP3FxLmZpdEJvdW5kcyh0aGlzLGQsYik6Yy5HaC50aGVuKCgpPT57cXEuZml0Qm91bmRzKHRoaXMsZCxiKX0pfTtfLnJxLnByb3RvdHlwZS5maXRCb3VuZHM9Xy5ycS5wcm90b3R5cGUuZml0Qm91bmRzO18ucnEucHJvdG90eXBlLkh0PV8uaGEoMjYpO18ucnEucHJvdG90eXBlLmdldE1hcENhcGFiaWxpdGllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZ20ucWguZ2V0TWFwQ2FwYWJpbGl0aWVzKCEwKX07Xy5ycS5wcm90b3R5cGUuZ2V0TWFwQ2FwYWJpbGl0aWVzPV8ucnEucHJvdG90eXBlLmdldE1hcENhcGFiaWxpdGllczsKdmFyIHNxPXtib3VuZHM6bnVsbCxjZW50ZXI6Xy5NbShfLlltKSxjbGlja2FibGVJY29uczokcixoZWFkaW5nOl8uYXMsbWFwVHlwZUlkOmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyJyb2FkbWFwIjooMCxfLmNyKShhKX0sbWFwSWQ6Xy5icyxwcm9qZWN0aW9uOm51bGwscmVuZGVyaW5nVHlwZTpfLkZtKG90KSx0aWx0SW50ZXJhY3Rpb25FbmFibGVkOiRyLGhlYWRpbmdJbnRlcmFjdGlvbkVuYWJsZWQ6JHIscmVzdHJpY3Rpb246ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gbnVsbDthPV8uQ20oe3N0cmljdEJvdW5kczpfLmNzLGxhdExuZ0JvdW5kczpfLlRufSkoYSk7dmFyIGI9YS5sYXRMbmdCb3VuZHM7aWYoIShiLmxhdC5oaT5iLmxhdC5sbykpdGhyb3cgXy5BbSgic291dGggbGF0aXR1ZGUgbXVzdCBiZSBzbWFsbGVyIHRoYW4gbm9ydGggbGF0aXR1ZGUiKTtpZigoYi5sbmcuaGk9PT0tMTgwPzE4MDpiLmxuZy5oaSk9PT1iLmxuZy5sbyl0aHJvdyBfLkFtKCJlYXN0ZXJuIGxvbmdpdHVkZSBjYW5ub3QgZXF1YWwgd2VzdGVybiBsb25naXR1ZGUiKTsKcmV0dXJuIGF9LHN0cmVldFZpZXc6d3MsdGlsdDpfLmFzLHpvb206Xy5hcyxpbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHM6Xy5NbShfLkhtKF8uZHMsMSkpfTtfLlduKF8ucnEucHJvdG90eXBlLHNxKTt2YXIgJGlhPWNsYXNzIGV4dGVuZHMgRXZlbnR7Y29uc3RydWN0b3IoKXtzdXBlcigiZ21wLXpvb21jaGFuZ2UiLHtidWJibGVzOiEwfSl9fTt2YXIgYWphPXtLaDohMCx0eXBlOlN0cmluZyxmaTphdCxOaDohMSxuajplcH0sJGVhPShhPWFqYSxiLGMpPT57dmFyIGQ9Yy5raW5kLGU9Yy5tZXRhZGF0YSxmPWJ0LmdldChlKTtmPT09dm9pZCAwJiZidC5zZXQoZSxmPW5ldyBNYXApO2Q9PT0ic2V0dGVyIiYmKGE9T2JqZWN0LmNyZWF0ZShhKSxhLld6PSEwKTtmLnNldChjLm5hbWUsYSk7aWYoZD09PSJhY2Nlc3NvciIpe2xldCBnPWMubmFtZTtyZXR1cm57c2V0KGgpe3ZhciBrPWIuZ2V0LmNhbGwodGhpcyk7Yi5zZXQuY2FsbCh0aGlzLGgpO18uY3AodGhpcyxnLGssYSwhMCxoKX0saW5pdChoKXtoIT09dm9pZCAwJiZ0aGlzLldrKGcsdm9pZCAwLGEsaCk7cmV0dXJuIGh9fX1pZihkPT09InNldHRlciIpe2xldCBnPWMubmFtZTtyZXR1cm4gZnVuY3Rpb24oaCl7dmFyIGs9dGhpc1tnXTtiLmNhbGwodGhpcyxoKTtfLmNwKHRoaXMsZyxrLGEsITAsaCl9fXRocm93IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7ZH1gKTsKfTtfLmFmYT0oYSxiLGMpPT57Yy5jb25maWd1cmFibGU9ITA7Yy5lbnVtZXJhYmxlPSEwO1JlZmxlY3QuRVMmJnR5cGVvZiBiIT09Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIsYyk7cmV0dXJuIGN9O3ZhciBmcj1jbGFzcyBleHRlbmRzIF8uZXR7c3RhdGljIGdldCBQbSgpe3JldHVybnsuLi5fLmV0LlBtLGRlbGVnYXRlc0ZvY3VzOiEwfX1zZXQgY2VudGVyKGEpe2lmKGEhPT1udWxsfHwhdGhpcy53ayl0cnl7bGV0IGI9Xy5ZbShhKTt0aGlzLmlubmVyTWFwLnNldENlbnRlcihiKX1jYXRjaChiKXt0aHJvdyBfLmlwKHRoaXMsImNlbnRlciIsYSxiKTt9fWdldCBjZW50ZXIoKXtyZXR1cm4gdGhpcy5pbm5lck1hcC5nZXRDZW50ZXIoKT8/bnVsbH1zZXQgbWFwSWQoYSl7dHJ5e3RoaXMuaW5uZXJNYXAuc2V0KCJtYXBJZCIsKDAsXy5icykoYSk/P3ZvaWQgMCl9Y2F0Y2goYil7dGhyb3cgXy5pcCh0aGlzLCJtYXBJZCIsYSxiKTt9fWdldCBtYXBJZCgpe3JldHVybiB0aGlzLmlubmVyTWFwLmdldCgibWFwSWQiKT8/bnVsbH1zZXQgem9vbShhKXtpZihhIT09bnVsbHx8IXRoaXMud2spdHJ5e3RoaXMuaW5uZXJNYXAuc2V0Wm9vbShobyhhKSl9Y2F0Y2goYil7dGhyb3cgXy5pcCh0aGlzLAoiem9vbSIsYSxiKTt9fWdldCB6b29tKCl7cmV0dXJuIHRoaXMuaW5uZXJNYXAuZ2V0Wm9vbSgpPz9udWxsfXNldCByZW5kZXJpbmdUeXBlKGEpe3RyeXt0aGlzLmlubmVyTWFwLnNldCgicmVuZGVyaW5nVHlwZSIsYT09bnVsbD8iVU5JTklUSUFMSVpFRCI6Xy5GbShvdCkoYSkpfWNhdGNoKGIpe3Rocm93IF8uaXAodGhpcywicmVuZGVyaW5nVHlwZSIsYSxiKTt9fWdldCByZW5kZXJpbmdUeXBlKCl7cmV0dXJuIHRoaXMuaW5uZXJNYXAuZ2V0KCJyZW5kZXJpbmdUeXBlIik/P251bGx9c2V0IHRpbHRJbnRlcmFjdGlvbkRpc2FibGVkKGEpe3RyeXt0aGlzLmlubmVyTWFwLnNldCgidGlsdEludGVyYWN0aW9uRW5hYmxlZCIsYT09bnVsbD9udWxsOiEkcihhKSl9Y2F0Y2goYil7dGhyb3cgXy5pcCh0aGlzLCJ0aWx0SW50ZXJhY3Rpb25EaXNhYmxlZCIsYSxiKTt9fWdldCB0aWx0SW50ZXJhY3Rpb25EaXNhYmxlZCgpe3ZhciBhPXRoaXMuaW5uZXJNYXAuZ2V0KCJ0aWx0SW50ZXJhY3Rpb25FbmFibGVkIik7CnJldHVybiB0eXBlb2YgYT09PSJib29sZWFuIj8hYTphfXNldCBoZWFkaW5nSW50ZXJhY3Rpb25EaXNhYmxlZChhKXt0cnl7dGhpcy5pbm5lck1hcC5zZXQoImhlYWRpbmdJbnRlcmFjdGlvbkVuYWJsZWQiLGE9PW51bGw/bnVsbDohJHIoYSkpfWNhdGNoKGIpe3Rocm93IF8uaXAodGhpcywiaGVhZGluZ0ludGVyYWN0aW9uRGlzYWJsZWQiLGEsYik7fX1nZXQgaGVhZGluZ0ludGVyYWN0aW9uRGlzYWJsZWQoKXt2YXIgYT10aGlzLmlubmVyTWFwLmdldCgiaGVhZGluZ0ludGVyYWN0aW9uRW5hYmxlZCIpO3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIj8hYTphfXNldCBpbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHMoYSl7dGhpcy5pbm5lck1hcC5zZXQoImludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcyIsXy5rcCh0aGlzLCJpbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHMiLF8uTW0oXy5IbShfLmRzLDEpKSxhKSl9Z2V0IGludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcygpe3JldHVybiB0aGlzLmlubmVyTWFwLmdldEludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcygpPz8KbnVsbH1jb25zdHJ1Y3RvcihhPXt9KXtzdXBlcihhKTt0aGlzLlhyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RoaXMuWHIuZGlyPSIiO3RoaXMuaW5uZXJNYXA9bmV3IF8ucnEodGhpcy5Ycik7Xy5ncCh0aGlzLCJpbm5lck1hcCIpO18ubXEuc2V0KHRoaXMsdGhpcy5pbm5lck1hcCk7dmFyIGI9ImNlbnRlciB6b29tIG1hcElkIHJlbmRlcmluZ1R5cGUgdGlsdEludGVyYWN0aW9uRW5hYmxlZCBoZWFkaW5nSW50ZXJhY3Rpb25FbmFibGVkIGludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcyIuc3BsaXQoIiAiKTtmb3IobGV0IGMgb2YgYil0aGlzLmlubmVyTWFwLmFkZExpc3RlbmVyKGAke2MudG9Mb3dlckNhc2UoKX1fY2hhbmdlZGAsKCk9Pntzd2l0Y2goYyl7Y2FzZSAidGlsdEludGVyYWN0aW9uRW5hYmxlZCI6Xy5jcCh0aGlzLCJ0aWx0SW50ZXJhY3Rpb25EaXNhYmxlZCIpO2JyZWFrO2Nhc2UgImhlYWRpbmdJbnRlcmFjdGlvbkVuYWJsZWQiOl8uY3AodGhpcywiaGVhZGluZ0ludGVyYWN0aW9uRGlzYWJsZWQiKTsKYnJlYWs7ZGVmYXVsdDpfLmNwKHRoaXMsYyl9aWYoYz09PSJ6b29tIil7dmFyIGQ9bmV3ICRpYTt0aGlzLmRpc3BhdGNoRXZlbnQoZCl9fSk7YS5jZW50ZXIhPW51bGwmJih0aGlzLmNlbnRlcj1hLmNlbnRlcik7YS56b29tIT1udWxsJiYodGhpcy56b29tPWEuem9vbSk7YS5tYXBJZCE9bnVsbCYmKHRoaXMubWFwSWQ9YS5tYXBJZCk7YS5yZW5kZXJpbmdUeXBlIT1udWxsJiYodGhpcy5yZW5kZXJpbmdUeXBlPWEucmVuZGVyaW5nVHlwZSk7YS50aWx0SW50ZXJhY3Rpb25EaXNhYmxlZCE9bnVsbCYmKHRoaXMudGlsdEludGVyYWN0aW9uRGlzYWJsZWQ9YS50aWx0SW50ZXJhY3Rpb25EaXNhYmxlZCk7YS5oZWFkaW5nSW50ZXJhY3Rpb25EaXNhYmxlZCE9bnVsbCYmKHRoaXMuaGVhZGluZ0ludGVyYWN0aW9uRGlzYWJsZWQ9YS5oZWFkaW5nSW50ZXJhY3Rpb25EaXNhYmxlZCk7YS5pbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHMhPW51bGwmJih0aGlzLmludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcz0KYS5pbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHMpO3RoaXMucWg9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYz0+e2ZvcihsZXQgZCBvZiBjKWQuYXR0cmlidXRlTmFtZT09PSJkaXIiJiYoXy53bih0aGlzLmlubmVyTWFwLCJzaG91bGRVc2VSVExDb250cm9sc0NoYW5nZSIpLF8ud24odGhpcy5pbm5lck1hcC5fX2dtLnhoLCJzaG91bGRVc2VSVExDb250cm9sc0NoYW5nZSIpKX0pO3RoaXMueGkoYSxmciwiTWFwRWxlbWVudCIpO18uTSh3aW5kb3csMTc4OTI0KX16aCgpe3RoaXMuUGs/LmFwcGVuZCh0aGlzLlhyKX1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7dGhpcy5xaC5vYnNlcnZlKHRoaXMse2F0dHJpYnV0ZXM6ITB9KTt0aGlzLnFoLm9ic2VydmUodGhpcy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx7YXR0cmlidXRlczohMH0pfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTt0aGlzLnFoLmRpc2Nvbm5lY3QoKX19Owpmci5wcm90b3R5cGUuY29uc3RydWN0b3I9ZnIucHJvdG90eXBlLmNvbnN0cnVjdG9yO2ZyLnN0eWxlcz0oMCxfLiRzKWAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICB9CiAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgOmhvc3QgPiBkaXYgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQogIGA7ZnIuSWk9e0tpOjE4MTU3NSxKaToxODE1NzR9O18uRChbXy50cSh7Zmk6ey4uLlJoYSxhazphPT5hP1JoYS5hayhhKTooY29uc29sZS5lcnJvcihgQ291bGQgbm90IGludGVycHJldCAiJHthfSIgYXMgYSBMYXRMbmcuYCksbnVsbCl9LG5qOmZwLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLGZyLnByb3RvdHlwZSwiY2VudGVyIixudWxsKTtfLkQoW18udHEoe0toOiJtYXAtaWQiLG5qOmZwLHR5cGU6U3RyaW5nLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLGZyLnByb3RvdHlwZSwibWFwSWQiLG51bGwpOwpfLkQoW18udHEoe2ZpOnthazphPT57dmFyIGI9TnVtYmVyKGEpO3JldHVybiBhPT09bnVsbHx8YT09PSIifHxpc05hTihiKT8oY29uc29sZS5lcnJvcihgQ291bGQgbm90IGludGVycHJldCAiJHthfSIgYXMgYSBudW1iZXIuYCksbnVsbCk6Yn0sTGo6YT0+YT09PW51bGw/bnVsbDpTdHJpbmcoYSl9LG5qOmZwLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLGZyLnByb3RvdHlwZSwiem9vbSIsbnVsbCk7Xy5EKFtfLnRxKHtLaDoicmVuZGVyaW5nLXR5cGUiLGZpOl8ud28ob3QpLG5qOmZwLE5oOiEwfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KSxfLkYoImRlc2lnbjpwYXJhbXR5cGVzIixbT2JqZWN0XSldLGZyLnByb3RvdHlwZSwicmVuZGVyaW5nVHlwZSIsbnVsbCk7Cl8uRChbXy50cSh7S2g6InRpbHQtaW50ZXJhY3Rpb24tZGlzYWJsZWQiLHR5cGU6Qm9vbGVhbixuajpmcCxOaDohMH0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCksXy5GKCJkZXNpZ246cGFyYW10eXBlcyIsW09iamVjdF0pXSxmci5wcm90b3R5cGUsInRpbHRJbnRlcmFjdGlvbkRpc2FibGVkIixudWxsKTtfLkQoW18udHEoe0toOiJoZWFkaW5nLWludGVyYWN0aW9uLWRpc2FibGVkIix0eXBlOkJvb2xlYW4sbmo6ZnAsTmg6ITB9KSxfLkYoImRlc2lnbjp0eXBlIixPYmplY3QpLF8uRigiZGVzaWduOnBhcmFtdHlwZXMiLFtPYmplY3RdKV0sZnIucHJvdG90eXBlLCJoZWFkaW5nSW50ZXJhY3Rpb25EaXNhYmxlZCIsbnVsbCk7Cl8uRChbXy50cSh7S2g6ImludGVybmFsLXVzYWdlLWF0dHJpYnV0aW9uLWlkcyIsZmk6Xy5EcyxuajpmcCxOaDohMH0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCksXy5GKCJkZXNpZ246cGFyYW10eXBlcyIsW09iamVjdF0pXSxmci5wcm90b3R5cGUsImludGVybmFsVXNhZ2VBdHRyaWJ1dGlvbklkcyIsbnVsbCk7dmFyIGdnYT0hMTtfLmJqYT17Qk9VTkNFOjEsRFJPUDoyLExSOjMseFI6NCwxOiJCT1VOQ0UiLDI6IkRST1AiLDM6IlJBSVNFIiw0OiJMT1dFUiJ9O3ZhciBlZmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXt0aGlzLnVybD1hO3RoaXMub3JpZ2luPWM7dGhpcy5hbmNob3I9ZDt0aGlzLnNjYWxlZFNpemU9ZTt0aGlzLmxhYmVsT3JpZ2luPW51bGw7dGhpcy5zaXplPWJ8fGV9fTt2YXIgcnQ9Y2xhc3N7Y29uc3RydWN0b3IoKXtfLkhsKCJtYXh6b29tIil9Z2V0TWF4Wm9vbUF0TGF0TG5nKGEsYil7Xy5NKHdpbmRvdywxNTQzMzIpO3ZhciBjPV8uSGwoIm1heHpvb20iKS50aGVuKGQ9PmQuZ2V0TWF4Wm9vbUF0TGF0TG5nKGEsYikpO2ImJmMuY2F0Y2goKCk9Pnt9KTtyZXR1cm4gY319O3J0LnByb3RvdHlwZS5nZXRNYXhab29tQXRMYXRMbmc9cnQucHJvdG90eXBlLmdldE1heFpvb21BdExhdExuZztydC5wcm90b3R5cGUuY29uc3RydWN0b3I9cnQucHJvdG90eXBlLmNvbnN0cnVjdG9yO3ZhciBkZmE9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7Xy5ybSgiVGhlIEZ1c2lvbiBUYWJsZXMgc2VydmljZSB3aWxsIGJlIHR1cm5lZCBkb3duIGluIERlY2VtYmVyIDIwMTkgKHNlZSBodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9mdXNpb250YWJsZXMvYW5zd2VyLzkxODU0MTcpLiBNYXBzIEFQSSB2ZXJzaW9uIDMuMzcgaXMgdGhlIGxhc3QgdmVyc2lvbiB0aGF0IHdpbGwgc3VwcG9ydCBGdXNpb25UYWJsZXNMYXllci4iKTtpZighYXx8Xy5tbShhKXx8Xy5qbShhKSl7bGV0IGI9YXJndW1lbnRzWzFdO3RoaXMuc2V0KCJ0YWJsZUlkIixhKTt0aGlzLnNldFZhbHVlcyhiKX1lbHNlIHRoaXMuc2V0VmFsdWVzKGEpfX07Xy5XbihkZmEucHJvdG90eXBlLHttYXA6Xy5ocyx0YWJsZUlkOl8uYXMscXVlcnk6Xy5NbShfLkttKFtfLmNyLF8uSW0oXy5rbSwibm90IGFuIE9iamVjdCIpXSkpfSk7dmFyIHN0O3N0PW51bGw7Xy50dD1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMubmwoKX1ubCgpe31nZXRNYXAoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcCIpfXNldE1hcChhKXt0aGlzLnNldCgibWFwIixhKX1nZXRQYW5lcygpe3JldHVybiB0aGlzLmdldCgicGFuZXMiKX1nZXRQcm9qZWN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJwcm9qZWN0aW9uIil9cmVtb3ZlKCl7fW1hcF9jaGFuZ2VkKCl7c3Q/c3QucUcodGhpcyk6Xy5IbCgib3ZlcmxheSIpLnRoZW4oYT0+e3N0PWE7YS5xRyh0aGlzKX0pfXN0YXRpYyBwcmV2ZW50TWFwSGl0c0Zyb20oYSl7Xy5IbCgib3ZlcmxheSIpLnRoZW4oYj0+e3N0PWI7Yi5wcmV2ZW50TWFwSGl0c0Zyb20oYSl9KX1zdGF0aWMgcHJldmVudE1hcEhpdHNBbmRHZXN0dXJlc0Zyb20oYSl7Xy5IbCgib3ZlcmxheSIpLnRoZW4oYj0+e3N0PWI7Yi5wcmV2ZW50TWFwSGl0c0FuZEdlc3R1cmVzRnJvbShhKX0pfX07Cl8udHQucHJldmVudE1hcEhpdHNBbmRHZXN0dXJlc0Zyb209Xy50dC5wcmV2ZW50TWFwSGl0c0FuZEdlc3R1cmVzRnJvbTtfLnR0LnByZXZlbnRNYXBIaXRzRnJvbT1fLnR0LnByZXZlbnRNYXBIaXRzRnJvbTtfLnR0LnByb3RvdHlwZS5nZXRQcm9qZWN0aW9uPV8udHQucHJvdG90eXBlLmdldFByb2plY3Rpb247Xy50dC5wcm90b3R5cGUuZ2V0UGFuZXM9Xy50dC5wcm90b3R5cGUuZ2V0UGFuZXM7Xy50dC5wcm90b3R5cGUuc2V0TWFwPV8udHQucHJvdG90eXBlLnNldE1hcDtfLnR0LnByb3RvdHlwZS5nZXRNYXA9Xy50dC5wcm90b3R5cGUuZ2V0TWFwO18udHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPV8udHQucHJvdG90eXBlLmNvbnN0cnVjdG9yO18uV24oXy50dC5wcm90b3R5cGUse3BhbmVzOm51bGwscHJvamVjdGlvbjpudWxsLG1hcDpfLkttKFtfLmhzLHdzXSl9KTtfLndtKF8udHQpO3ZhciB1dD1jbGFzcyBleHRlbmRzIF8ueW57Z2V0TWFwKCl7cmV0dXJuIHRoaXMuZ2V0KCJtYXAiKX1zZXRNYXAoYSl7dGhpcy5zZXQoIm1hcCIsYSl9Z2V0RHJhZ2dhYmxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJkcmFnZ2FibGUiKX1zZXREcmFnZ2FibGUoYSl7dGhpcy5zZXQoImRyYWdnYWJsZSIsYSl9Z2V0RWRpdGFibGUoKXtyZXR1cm4gdGhpcy5nZXQoImVkaXRhYmxlIil9c2V0RWRpdGFibGUoYSl7dGhpcy5zZXQoImVkaXRhYmxlIixhKX1zZXRWaXNpYmxlKGEpe3RoaXMuc2V0KCJ2aXNpYmxlIixhKX1nZXRWaXNpYmxlKCl7cmV0dXJuIHRoaXMuZ2V0KCJ2aXNpYmxlIil9Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLnhoPXRoaXMuUng9dGhpcy5VbD0hMTt0aGlzLnNldCgibGF0TG5ncyIsbmV3IF8uRW8oW25ldyBfLkVvXSkpO3RoaXMuc2V0VmFsdWVzKE1vKGEpKTtfLkhsKCJwb2x5Iil9Z2V0UGF0aCgpe3JldHVybiB0aGlzLmdldCgibGF0TG5ncyIpLmdldEF0KDApfXNldFBhdGgoYSl7dHJ5e3RoaXMuZ2V0KCJsYXRMbmdzIikuc2V0QXQoMCwKTm8oYSkpfWNhdGNoKGIpe18uQm0oYil9fW1hcF9jaGFuZ2VkKCl7YmZhKHRoaXMpfXZpc2libGVfY2hhbmdlZCgpe2JmYSh0aGlzKX19O3V0LnByb3RvdHlwZS5zZXRQYXRoPXV0LnByb3RvdHlwZS5zZXRQYXRoO3V0LnByb3RvdHlwZS5nZXRQYXRoPXV0LnByb3RvdHlwZS5nZXRQYXRoO3V0LnByb3RvdHlwZS5nZXRWaXNpYmxlPXV0LnByb3RvdHlwZS5nZXRWaXNpYmxlO3V0LnByb3RvdHlwZS5zZXRWaXNpYmxlPXV0LnByb3RvdHlwZS5zZXRWaXNpYmxlO3V0LnByb3RvdHlwZS5zZXRFZGl0YWJsZT11dC5wcm90b3R5cGUuc2V0RWRpdGFibGU7dXQucHJvdG90eXBlLmdldEVkaXRhYmxlPXV0LnByb3RvdHlwZS5nZXRFZGl0YWJsZTt1dC5wcm90b3R5cGUuc2V0RHJhZ2dhYmxlPXV0LnByb3RvdHlwZS5zZXREcmFnZ2FibGU7dXQucHJvdG90eXBlLmdldERyYWdnYWJsZT11dC5wcm90b3R5cGUuZ2V0RHJhZ2dhYmxlO3V0LnByb3RvdHlwZS5zZXRNYXA9dXQucHJvdG90eXBlLnNldE1hcDsKdXQucHJvdG90eXBlLmdldE1hcD11dC5wcm90b3R5cGUuZ2V0TWFwO18uV24odXQucHJvdG90eXBlLHtkcmFnZ2FibGU6Xy5jcyxlZGl0YWJsZTpfLmNzLG1hcDpfLmhzLHZpc2libGU6Xy5jc30pO18udnQ9Y2xhc3MgZXh0ZW5kcyB1dHtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKTt0aGlzLlVsPSEwfXNldE9wdGlvbnMoYSl7dGhpcy5zZXRWYWx1ZXMoYSl9Z2V0UGF0aCgpe3JldHVybiBzdXBlci5nZXRQYXRoKCl9c2V0UGF0aChhKXtzdXBlci5zZXRQYXRoKGEpfWdldFBhdGhzKCl7cmV0dXJuIHRoaXMuZ2V0KCJsYXRMbmdzIil9c2V0UGF0aHMoYSl7dHJ5e3ZhciBiPXRoaXMuc2V0O2lmKEFycmF5LmlzQXJyYXkoYSl8fGEgaW5zdGFuY2VvZiBfLkVvKWlmKF8uJGwoYSk9PT0wKXZhciBjPSEwO2Vsc2V7dmFyIGQ9YSBpbnN0YW5jZW9mIF8uRW8/YS5nZXRBdCgwKTphWzBdO2M9QXJyYXkuaXNBcnJheShkKXx8ZCBpbnN0YW5jZW9mIF8uRW99ZWxzZSBjPSExO3ZhciBlPWM/YSBpbnN0YW5jZW9mIF8uRW8/cmRhKHBkYSkoYSk6bmV3IF8uRW8oXy5HbShObykoYSkpOm5ldyBfLkVvKFtObyhhKV0pO2IuY2FsbCh0aGlzLCJsYXRMbmdzIixlKX1jYXRjaChmKXtfLkJtKGYpfX19OwpfLnZ0LnByb3RvdHlwZS5zZXRQYXRocz1fLnZ0LnByb3RvdHlwZS5zZXRQYXRocztfLnZ0LnByb3RvdHlwZS5nZXRQYXRocz1fLnZ0LnByb3RvdHlwZS5nZXRQYXRocztfLnZ0LnByb3RvdHlwZS5zZXRQYXRoPV8udnQucHJvdG90eXBlLnNldFBhdGg7Xy52dC5wcm90b3R5cGUuZ2V0UGF0aD1fLnZ0LnByb3RvdHlwZS5nZXRQYXRoO18udnQucHJvdG90eXBlLnNldE9wdGlvbnM9Xy52dC5wcm90b3R5cGUuc2V0T3B0aW9ucztfLnd0PWNsYXNzIGV4dGVuZHMgdXR7c2V0T3B0aW9ucyhhKXt0aGlzLnNldFZhbHVlcyhhKX19O18ud3QucHJvdG90eXBlLnNldE9wdGlvbnM9Xy53dC5wcm90b3R5cGUuc2V0T3B0aW9ucztfLnh0PWNsYXNzIGV4dGVuZHMgXy55bntnZXRCb3VuZHMoKXtyZXR1cm4gdGhpcy5nZXQoImJvdW5kcyIpfXNldEJvdW5kcyhhKXt0aGlzLnNldCgiYm91bmRzIixhKX1nZXRNYXAoKXtyZXR1cm4gdGhpcy5nZXQoIm1hcCIpfXNldE1hcChhKXt0aGlzLnNldCgibWFwIixhKX1nZXREcmFnZ2FibGUoKXtyZXR1cm4gdGhpcy5nZXQoImRyYWdnYWJsZSIpfXNldERyYWdnYWJsZShhKXt0aGlzLnNldCgiZHJhZ2dhYmxlIixhKX1nZXRFZGl0YWJsZSgpe3JldHVybiB0aGlzLmdldCgiZWRpdGFibGUiKX1zZXRFZGl0YWJsZShhKXt0aGlzLnNldCgiZWRpdGFibGUiLGEpfXNldFZpc2libGUoYSl7dGhpcy5zZXQoInZpc2libGUiLGEpfWdldFZpc2libGUoKXtyZXR1cm4gdGhpcy5nZXQoInZpc2libGUiKX1zZXRPcHRpb25zKGEpe3RoaXMuc2V0VmFsdWVzKGEpfWNvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5zZXRWYWx1ZXMoTW8oYSkpO18uSGwoInBvbHkiKX1tYXBfY2hhbmdlZCgpe2NmYSh0aGlzKX12aXNpYmxlX2NoYW5nZWQoKXtjZmEodGhpcyl9fTsKXy54dC5wcm90b3R5cGUuc2V0T3B0aW9ucz1fLnh0LnByb3RvdHlwZS5zZXRPcHRpb25zO18ueHQucHJvdG90eXBlLmdldFZpc2libGU9Xy54dC5wcm90b3R5cGUuZ2V0VmlzaWJsZTtfLnh0LnByb3RvdHlwZS5zZXRWaXNpYmxlPV8ueHQucHJvdG90eXBlLnNldFZpc2libGU7Xy54dC5wcm90b3R5cGUuc2V0RWRpdGFibGU9Xy54dC5wcm90b3R5cGUuc2V0RWRpdGFibGU7Xy54dC5wcm90b3R5cGUuZ2V0RWRpdGFibGU9Xy54dC5wcm90b3R5cGUuZ2V0RWRpdGFibGU7Xy54dC5wcm90b3R5cGUuc2V0RHJhZ2dhYmxlPV8ueHQucHJvdG90eXBlLnNldERyYWdnYWJsZTtfLnh0LnByb3RvdHlwZS5nZXREcmFnZ2FibGU9Xy54dC5wcm90b3R5cGUuZ2V0RHJhZ2dhYmxlO18ueHQucHJvdG90eXBlLnNldE1hcD1fLnh0LnByb3RvdHlwZS5zZXRNYXA7Xy54dC5wcm90b3R5cGUuZ2V0TWFwPV8ueHQucHJvdG90eXBlLmdldE1hcDtfLnh0LnByb3RvdHlwZS5zZXRCb3VuZHM9Xy54dC5wcm90b3R5cGUuc2V0Qm91bmRzOwpfLnh0LnByb3RvdHlwZS5nZXRCb3VuZHM9Xy54dC5wcm90b3R5cGUuZ2V0Qm91bmRzO18uV24oXy54dC5wcm90b3R5cGUse2RyYWdnYWJsZTpfLmNzLGVkaXRhYmxlOl8uY3MsYm91bmRzOl8uTW0oXy5UbiksbWFwOl8uaHMsdmlzaWJsZTpfLmNzfSk7dmFyIHl0PWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5xaD1udWxsfWdldE1hcCgpe3JldHVybiB0aGlzLmdldCgibWFwIil9c2V0TWFwKGEpe3RoaXMuc2V0KCJtYXAiLGEpfW1hcF9jaGFuZ2VkKCl7Xy5IbCgic3RyZWV0dmlldyIpLnRoZW4oYT0+e2Eud0wodGhpcyl9KX19O3l0LnByb3RvdHlwZS5zZXRNYXA9eXQucHJvdG90eXBlLnNldE1hcDt5dC5wcm90b3R5cGUuZ2V0TWFwPXl0LnByb3RvdHlwZS5nZXRNYXA7eXQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXl0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcjtfLlduKHl0LnByb3RvdHlwZSx7bWFwOl8uaHN9KTtfLmNqYT17TkVBUkVTVDoibmVhcmVzdCIsQkVTVDoiYmVzdCJ9O18uenQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnFoPW51bGx9Z2V0UGFub3JhbWEoYSxiKXtyZXR1cm4gXy53cSh0aGlzLGEsYil9Z2V0UGFub3JhbWFCeUxvY2F0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5nZXRQYW5vcmFtYSh7bG9jYXRpb246YSxyYWRpdXM6YixwcmVmZXJlbmNlOihifHwwKTw1MD8iYmVzdCI6Im5lYXJlc3QifSxjKX1nZXRQYW5vcmFtYUJ5SWQoYSxiKXtyZXR1cm4gdGhpcy5nZXRQYW5vcmFtYSh7cGFubzphfSxiKX19O18uenQucHJvdG90eXBlLmdldFBhbm9yYW1hPV8uenQucHJvdG90eXBlLmdldFBhbm9yYW1hO18uQXQ9e0RFRkFVTFQ6ImRlZmF1bHQiLE9VVERPT1I6Im91dGRvb3IiLEdPT0dMRToiZ29vZ2xlIn07Xy5xYih6cSxfLnluKTt6cS5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbihhLGIsYyl7aWYoIWF8fCFjKXJldHVybiBudWxsO3ZhciBkPV8ud2woIkRJViIpO2M9e3JqOmEsem9vbTpiLERqOm51bGx9O2QuX19nbWltdD1jO18uRHAodGhpcy5xaCxkKTtpZih0aGlzLnJoKXtsZXQgZT10aGlzLnRpbGVTaXplfHxuZXcgXy5nbygyNTYsMjU2KSxmPXRoaXMuc2goYSxiKTsoYy5Eaj10aGlzLnJoKHtraTphLngsbGk6YS55LHVpOmJ9LGUsZCxmLGZ1bmN0aW9uKCl7Xy53bihkLCJsb2FkIil9KSkuc2V0T3BhY2l0eSh5cSh0aGlzKSl9cmV0dXJuIGR9O3pxLnByb3RvdHlwZS5nZXRUaWxlPXpxLnByb3RvdHlwZS5nZXRUaWxlO3pxLnByb3RvdHlwZS5yZWxlYXNlVGlsZT1mdW5jdGlvbihhKXthJiZ0aGlzLnFoLmNvbnRhaW5zKGEpJiYodGhpcy5xaC5yZW1vdmUoYSksKGE9YS5fX2dtaW10LkRqKSYmYS5yZWxlYXNlKCkpfTt6cS5wcm90b3R5cGUucmVsZWFzZVRpbGU9enEucHJvdG90eXBlLnJlbGVhc2VUaWxlOwp6cS5wcm90b3R5cGUub3BhY2l0eV9jaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIGE9eXEodGhpcyk7dGhpcy5xaC5mb3JFYWNoKGI9PntiLl9fZ21pbXQuRGouc2V0T3BhY2l0eShhKX0pfTt6cS5wcm90b3R5cGUudHJpZ2dlcnNUaWxlTG9hZEV2ZW50PSEwO18uV24oenEucHJvdG90eXBlLHtvcGFjaXR5Ol8uYXN9KTtfLnFiKF8uQXEsXy55bik7Xy5BcS5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbigpe3JldHVybiBudWxsfTtfLkFxLnByb3RvdHlwZS50aWxlU2l6ZT1uZXcgXy5nbygyNTYsMjU2KTtfLkFxLnByb3RvdHlwZS50cmlnZ2Vyc1RpbGVMb2FkRXZlbnQ9ITA7Xy5xYihfLkJxLF8uQXEpO3ZhciBCdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9ncz1bXX1sb2coKXt9Y04oKXtyZXR1cm4gdGhpcy5sb2dzLm1hcCh0aGlzLnFoKS5qb2luKCJcbiIpfXFoKGEpe3JldHVybmAke2EudGltZXN0YW1wfTogJHthLm1lc3NhZ2V9YH19O0J0LnByb3RvdHlwZS5nZXRMb2dzPUJ0LnByb3RvdHlwZS5jTjtfLmRqYT1uZXcgQnQ7Xy5lamE9e09LOiJPSyIsQ0FOQ0VMTEVEOiJDQU5DRUxMRUQiLFVOS05PV046IlVOS05PV04iLElOVkFMSURfQVJHVU1FTlQ6IklOVkFMSURfQVJHVU1FTlQiLERFQURMSU5FX0VYQ0VFREVEOiJERUFETElORV9FWENFRURFRCIsTk9UX0ZPVU5EOiJOT1RfRk9VTkQiLEFMUkVBRFlfRVhJU1RTOiJBTFJFQURZX0VYSVNUUyIsUEVSTUlTU0lPTl9ERU5JRUQ6IlBFUk1JU1NJT05fREVOSUVEIixVTkFVVEhFTlRJQ0FURUQ6IlVOQVVUSEVOVElDQVRFRCIsUkVTT1VSQ0VfRVhIQVVTVEVEOiJSRVNPVVJDRV9FWEhBVVNURUQiLEZBSUxFRF9QUkVDT05ESVRJT046IkZBSUxFRF9QUkVDT05ESVRJT04iLEFCT1JURUQ6IkFCT1JURUQiLE9VVF9PRl9SQU5HRToiT1VUX09GX1JBTkdFIixVTklNUExFTUVOVEVEOiJVTklNUExFTUVOVEVEIixJTlRFUk5BTDoiSU5URVJOQUwiLFVOQVZBSUxBQkxFOiJVTkFWQUlMQUJMRSIsREFUQV9MT1NTOiJEQVRBX0xPU1MifTtfLnFiKENxLF8ueW4pO18uV24oQ3EucHJvdG90eXBlLHthdHRyaWJ1dGlvbjooKT0+ITAscGxhY2U6KCk9PiEwfSk7dmFyIGlmYT17Q29sb3JTY2hlbWU6e0xJR0hUOiJMSUdIVCIsREFSSzoiREFSSyIsRk9MTE9XX1NZU1RFTToiRk9MTE9XX1NZU1RFTSJ9LENvbnRyb2xQb3NpdGlvbjpfLnBxLExhdExuZzpfLlRtLExhdExuZ0JvdW5kczpfLlJuLE1WQ0FycmF5Ol8uRW8sTVZDT2JqZWN0Ol8ueW4sTWFwc1JlcXVlc3RFcnJvcjpfLmlyLE1hcHNOZXR3b3JrRXJyb3I6Z3IsTWFwc05ldHdvcmtFcnJvckVuZHBvaW50OntQTEFDRVNfTkVBUkJZX1NFQVJDSDoiUExBQ0VTX05FQVJCWV9TRUFSQ0giLFBMQUNFU19MT0NBTF9DT05URVhUX1NFQVJDSDoiUExBQ0VTX0xPQ0FMX0NPTlRFWFRfU0VBUkNIIixNQVBTX01BWF9aT09NOiJNQVBTX01BWF9aT09NIixESVNUQU5DRV9NQVRSSVg6IkRJU1RBTkNFX01BVFJJWCIsRUxFVkFUSU9OX0xPQ0FUSU9OUzoiRUxFVkFUSU9OX0xPQ0FUSU9OUyIsRUxFVkFUSU9OX0FMT05HX1BBVEg6IkVMRVZBVElPTl9BTE9OR19QQVRIIixHRU9DT0RFUl9HRU9DT0RFOiJHRU9DT0RFUl9HRU9DT0RFIiwKRElSRUNUSU9OU19ST1VURToiRElSRUNUSU9OU19ST1VURSIsUExBQ0VTX0dBVEVXQVk6IlBMQUNFU19HQVRFV0FZIixQTEFDRVNfREVUQUlMUzoiUExBQ0VTX0RFVEFJTFMiLFBMQUNFU19GSU5EX1BMQUNFX0ZST01fUEhPTkVfTlVNQkVSOiJQTEFDRVNfRklORF9QTEFDRV9GUk9NX1BIT05FX05VTUJFUiIsUExBQ0VTX0ZJTkRfUExBQ0VfRlJPTV9RVUVSWToiUExBQ0VTX0ZJTkRfUExBQ0VfRlJPTV9RVUVSWSIsUExBQ0VTX0dFVF9QTEFDRToiUExBQ0VTX0dFVF9QTEFDRSIsUExBQ0VTX0dFVF9QSE9UT19NRURJQToiUExBQ0VTX0dFVF9QSE9UT19NRURJQSIsUExBQ0VTX1NFQVJDSF9URVhUOiJQTEFDRVNfU0VBUkNIX1RFWFQiLFNUUkVFVFZJRVdfR0VUX1BBTk9SQU1BOiJTVFJFRVRWSUVXX0dFVF9QQU5PUkFNQSIsUExBQ0VTX0FVVE9DT01QTEVURToiUExBQ0VTX0FVVE9DT01QTEVURSIsRkxFRVRfRU5HSU5FX0xJU1RfREVMSVZFUllfVkVISUNMRVM6IkZMRUVUX0VOR0lORV9MSVNUX0RFTElWRVJZX1ZFSElDTEVTIiwKRkxFRVRfRU5HSU5FX0xJU1RfVEFTS1M6IkZMRUVUX0VOR0lORV9MSVNUX1RBU0tTIixGTEVFVF9FTkdJTkVfTElTVF9WRUhJQ0xFUzoiRkxFRVRfRU5HSU5FX0xJU1RfVkVISUNMRVMiLEZMRUVUX0VOR0lORV9HRVRfREVMSVZFUllfVkVISUNMRToiRkxFRVRfRU5HSU5FX0dFVF9ERUxJVkVSWV9WRUhJQ0xFIixGTEVFVF9FTkdJTkVfR0VUX1RSSVA6IkZMRUVUX0VOR0lORV9HRVRfVFJJUCIsRkxFRVRfRU5HSU5FX0dFVF9WRUhJQ0xFOiJGTEVFVF9FTkdJTkVfR0VUX1ZFSElDTEUiLEZMRUVUX0VOR0lORV9TRUFSQ0hfVEFTS1M6IkZMRUVUX0VOR0lORV9TRUFSQ0hfVEFTS1MiLGRSOiJGTEVFVF9FTkdJTkVfR0VUX1RBU0tfVFJBQ0tJTkdfSU5GTyIsVElNRV9aT05FOiJUSU1FX1pPTkUiLFJPVVRFU19DT01QVVRFX1JPVVRFX01BVFJJWDoiUk9VVEVTX0NPTVBVVEVfUk9VVEVfTUFUUklYIixST1VURVNfQ09NUFVURV9ST1VURVM6IlJPVVRFU19DT01QVVRFX1JPVVRFUyIsQUREUkVTU19WQUxJREFUSU9OX0ZFVENIX0FERFJFU1NfVkFMSURBVElPTjoiQUREUkVTU19WQUxJREFUSU9OX0ZFVENIX0FERFJFU1NfVkFMSURBVElPTiIsCldFQVRIRVJfQ1VSUkVOVF9DT05ESVRJT05TOiJXRUFUSEVSX0NVUlJFTlRfQ09ORElUSU9OUyIsV0VBVEhFUl9ISVNUT1JZX0hPVVJTOiJXRUFUSEVSX0hJU1RPUllfSE9VUlMiLFdFQVRIRVJfRk9SRUNBU1RfREFZUzoiV0VBVEhFUl9GT1JFQ0FTVF9EQVlTIixXRUFUSEVSX0ZPUkVDQVNUX0hPVVJTOiJXRUFUSEVSX0ZPUkVDQVNUX0hPVVJTIixQTEFDRVNfUkVWSUVXU19TRUFSQ0g6IlBMQUNFU19SRVZJRVdTX1NFQVJDSCIsUExBQ0VTX01FRElBX1NFQVJDSDoiUExBQ0VTX01FRElBX1NFQVJDSCJ9LE1hcHNTZXJ2ZXJFcnJvcjpfLmpyLFBvaW50Ol8uYm8sUlBDU3RhdHVzOl8uZWphLFNpemU6Xy5nbyxVbml0U3lzdGVtOl8uRXEsU2V0dGluZ3M6U20sU3ltYm9sUGF0aDpGaGEsTGF0TG5nQWx0aXR1ZGU6Xy5RbyxPcmllbnRhdGlvbjNEOl8ucHMsVmVjdG9yM0Q6Xy5xcyxldmVudDpfLmZzfSxqZmE9e0JpY3ljbGluZ0xheWVyOl8uQXMsQ2lyY2xlOl8uU28sRGF0YTpZbixHcm91bmRPdmVybGF5Ol8uenMsCkltYWdlTWFwVHlwZTp6cSxLbWxMYXllcjpzbyxLbWxMYXllclN0YXR1czp7VU5LTk9XTjoiVU5LTk9XTiIsT0s6Ik9LIixJTlZBTElEX1JFUVVFU1Q6IklOVkFMSURfUkVRVUVTVCIsRE9DVU1FTlRfTk9UX0ZPVU5EOiJET0NVTUVOVF9OT1RfRk9VTkQiLEZFVENIX0VSUk9SOiJGRVRDSF9FUlJPUiIsSU5WQUxJRF9ET0NVTUVOVDoiSU5WQUxJRF9ET0NVTUVOVCIsRE9DVU1FTlRfVE9PX0xBUkdFOiJET0NVTUVOVF9UT09fTEFSR0UiLExJTUlUU19FWENFRURFRDoiTElNSVRTX0VYQ0VFREVEIixUSU1FRF9PVVQ6IlRJTUVEX09VVCJ9LE1hcDpfLnJxLE1hcEVsZW1lbnQ6ZnIsWm9vbUNoYW5nZUV2ZW50OiRpYSxNYXBUeXBlQ29udHJvbFN0eWxlOntERUZBVUxUOjAsSE9SSVpPTlRBTF9CQVI6MSxEUk9QRE9XTl9NRU5VOjIsSU5TRVQ6MyxJTlNFVF9MQVJHRTo0fSxNYXBUeXBlSWQ6Xy5VcixNYXBUeXBlUmVnaXN0cnk6b3EsTWF4Wm9vbVNlcnZpY2U6cnQsTWF4Wm9vbVN0YXR1czp7T0s6Ik9LIiwKRVJST1I6IkVSUk9SIn0sT3ZlcmxheVZpZXc6Xy50dCxQb2x5Z29uOl8udnQsUG9seWxpbmU6Xy53dCxSZWN0YW5nbGU6Xy54dCxSZW5kZXJpbmdUeXBlOm90LFN0cm9rZVBvc2l0aW9uOntDRU5URVI6MCxJTlNJREU6MSxPVVRTSURFOjIsMDoiQ0VOVEVSIiwxOiJJTlNJREUiLDI6Ik9VVFNJREUifSxTdHlsZWRNYXBUeXBlOl8uQnEsVHJhZmZpY0xheWVyOkJzLFRyYW5zaXRMYXllcjpDcyxGZWF0dXJlVHlwZTp3aWEsSW5mb1dpbmRvdzpfLnlzLFdlYkdMT3ZlcmxheVZpZXc6Xy5xcH0sa2ZhPXtEaXJlY3Rpb25zUmVuZGVyZXI6Xy5hbyxEaXJlY3Rpb25zU2VydmljZTpfLmlzLERpcmVjdGlvbnNTdGF0dXM6Xy53aGEsRGlzdGFuY2VNYXRyaXhTZXJ2aWNlOl8ubXMsRGlzdGFuY2VNYXRyaXhTdGF0dXM6Xy56aGEsRGlzdGFuY2VNYXRyaXhFbGVtZW50U3RhdHVzOl8ueWhhLFRyYWZmaWNNb2RlbDpfLmpzLFRyYW5zaXRNb2RlOl8ua3MsVHJhbnNpdFJvdXRlUHJlZmVyZW5jZTpfLmxzLApUcmF2ZWxNb2RlOl8uRHEsVmVoaWNsZVR5cGU6Xy54aGF9LGxmYT17RWxldmF0aW9uU2VydmljZTpfLm5zLEVsZXZhdGlvblN0YXR1czpfLkFoYX0sbWZhPXtHZW9jb2RlcjpvcyxHZW9jb2RlckxvY2F0aW9uVHlwZTpfLkJoYSxFeHRyYUdlb2NvZGVDb21wdXRhdGlvbjp2b2lkIDAsQ29udGFpbm1lbnQ6dm9pZCAwLFNwYXRpYWxSZWxhdGlvbnNoaXA6dm9pZCAwLEdlb2NvZGVyU3RhdHVzOntPSzoiT0siLFVOS05PV05fRVJST1I6IlVOS05PV05fRVJST1IiLE9WRVJfUVVFUllfTElNSVQ6Ik9WRVJfUVVFUllfTElNSVQiLFJFUVVFU1RfREVOSUVEOiJSRVFVRVNUX0RFTklFRCIsSU5WQUxJRF9SRVFVRVNUOiJJTlZBTElEX1JFUVVFU1QiLFpFUk9fUkVTVUxUUzoiWkVST19SRVNVTFRTIixFUlJPUjoiRVJST1IifX0sbmZhPXtTdHJlZXRWaWV3Q292ZXJhZ2VMYXllcjp5dCxTdHJlZXRWaWV3UGFub3JhbWE6Xy5tdCxTdHJlZXRWaWV3UHJlZmVyZW5jZTpfLmNqYSxTdHJlZXRWaWV3U2VydmljZTpfLnp0LApTdHJlZXRWaWV3U3RhdHVzOntPSzoiT0siLFVOS05PV05fRVJST1I6IlVOS05PV05fRVJST1IiLFpFUk9fUkVTVUxUUzoiWkVST19SRVNVTFRTIn0sU3RyZWV0Vmlld1NvdXJjZTpfLkF0LEluZm9XaW5kb3c6Xy55cyxPdmVybGF5VmlldzpfLnR0fSxvZmE9e0FuaW1hdGlvbjpfLmJqYSxNYXJrZXI6Xy54cyxDb2xsaXNpb25CZWhhdmlvcjpfLnJzfSxxZmE9bmV3IFNldCgiYWRkcmVzc1ZhbGlkYXRpb24gYWlyUXVhbGl0eSBkcmF3aW5nIGVsZXZhdGlvbiBnZW9tZXRyeSBqb3VybmV5U2hhcmluZyBtYXBzM2QgbWFya2VyIHBsYWNlcyByb3V0ZXMgdmlzdWFsaXphdGlvbiB3ZWF0aGVyIi5zcGxpdCgiICIpKSxyZmE9bmV3IFNldChbInNlYXJjaCJdKTtfLklsKCJtYWluIix7fSk7dmFyIGZqYTtfLkN0PWNsYXNzIGV4dGVuZHMgXy5ldHtjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7dGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBmamEoKGEsYik9Pnt0aGlzLnJoKGEsYil9KSl9fTtmamE9Y2xhc3MgZXh0ZW5kcyBFdmVudHtjb25zdHJ1Y3RvcihhKXtzdXBlcigiZ21wLWludGVybmFsLWNvbm5lY3QiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7dGhpcy5xaD1hfX07Xy5qcD1jbGFzcyBleHRlbmRzIEV2ZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoImdtcC1lcnJvciIpfX07Xy53ZmE9Y2xhc3MgZXh0ZW5kcyBFdmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJnbXAtbG9hZCIpfX07dmFyIER0PWNsYXNzIGV4dGVuZHMgXy5kdHt0aSgpe3JldHVybigwLF8uV3EpYDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPiR7dGhpcy5tZXNzYWdlfTwvZGl2PgogICAgICAke3RoaXMucWg9PT12b2lkIDA/IiI6KDAsXy5XcSlgPGRpdiBjbGFzcz0ic3ViLW1lc3NhZ2UiPiR7dGhpcy5xaH08L2Rpdj5gfQogICAgPC9kaXY+YH19O0R0LnN0eWxlcz1bXy4kcyhbIjpob3N0KDpub3QoW2hpZGRlbl0pKXtkaXNwbGF5OmJsb2NrfS5jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7aGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tZXNzYWdle2NvbG9yOiM1ZTVlNWU7Zm9udC1zaXplOi44NzVyZW19Lm1lc3NhZ2UsLnN1Yi1tZXNzYWdle2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zLFJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMH0uc3ViLW1lc3NhZ2V7Y29sb3I6Izk5OTtmb250LXNpemU6Ljc1cmVtfSJdKV07Xy54bygiZ21wLWludGVybmFsLWxvYWRpbmctdGV4dCIsY2xhc3MgZXh0ZW5kcyBEdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7dGhpcy5tZXNzYWdlPSJMb2FkaW5nLi4uIn19KTtfLkV0PWNsYXNzIGV4dGVuZHMgRHR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpO3RoaXMubWVzc2FnZT0iT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcuIjt0aGlzLnFoPSJQbGVhc2Ugc2VlIHRoZSBkZXZlbG9wZXIgY29uc29sZSBmb3IgdGVjaG5pY2FsIGRldGFpbHMuIn19O18ueG8oImdtcC1pbnRlcm5hbC1yZXF1ZXN0LWVycm9yLXRleHQiLF8uRXQpO18uZ2phPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaG9zdD1hO3RoaXMub3B0aW9ucz17fTt0aGlzLnFoPV8ubWEoUHJvbWlzZSwid2l0aFJlc29sdmVycyIpLmNhbGwoUHJvbWlzZSl9aXNWaXNpYmxlKGEpe3ZhciB7aW5saW5lU2l6ZTpiLGJsb2NrU2l6ZTpjfT1hLmNvbnRlbnRCb3hTaXplWzBdO3JldHVybiBiPj0odGhpcy5vcHRpb25zLnhUPz8xKSYmYz49KHRoaXMub3B0aW9ucy53VD8/MSl9fTt2YXIgR3E9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7dGhpcy5uYW1lPSJBc3luY1J1blByZWVtcHRlZEVycm9yIn19LGhqYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucWg9MH19O18uRnQ9Y2xhc3MgZXh0ZW5kcyBfLmV0e2NvbnN0cnVjdG9yKGE9e30pe3N1cGVyKGEpO3RoaXMudGs9MDt0aGlzLlpEPSExO3RoaXMuYkg9bmV3IGhqYTt0aGlzLnpRPW5ldyBfLmdqYSh0aGlzKX1seihhKXtyZXR1cm4gYX10aSgpe3N3aXRjaCh0aGlzLnRrKXtjYXNlIDE6dmFyIGE9dGhpcy5veigpO2JyZWFrO2Nhc2UgMzphPXRoaXMubXooKTticmVhaztjYXNlIDI6YT10aGlzLnl3KCk7YnJlYWs7ZGVmYXVsdDphPXRoaXMuenQoKX1yZXR1cm4gdGhpcy5seihhKX1veigpe3JldHVybigwLF8uV3EpYCA8Z21wLWludGVybmFsLWxvYWRpbmctdGV4dD48L2dtcC1pbnRlcm5hbC1sb2FkaW5nLXRleHQ+IGB9bXooKXtyZXR1cm4oMCxfLldxKWAKICAgICAgPGdtcC1pbnRlcm5hbC1yZXF1ZXN0LWVycm9yLXRleHQ+PC9nbXAtaW50ZXJuYWwtcmVxdWVzdC1lcnJvci10ZXh0PgogICAgYH16dCgpe3JldHVybigwLF8uV3EpYGB9fTtfLkQoW18udnEoKSxfLkYoImRlc2lnbjp0eXBlIixOdW1iZXIpXSxfLkZ0LnByb3RvdHlwZSwidGsiLHZvaWQgMCk7dmFyIGlqYTtpamE9Y2xhc3MgZXh0ZW5kcyBZaWF7fTtfLkd0PWNsYXNzIGV4dGVuZHMgaWphe2NvbnN0cnVjdG9yKGE9e30pe3N1cGVyKCk7dGhpcy5lbGVtZW50PVFtKCJWaWV3IiwiZWxlbWVudCIsKCk9Pl8uTW0oXy5LbShbXy5FbShIVE1MRWxlbWVudCwiSFRNTEVsZW1lbnQiKSxfLkVtKFNWR0VsZW1lbnQsIlNWR0VsZW1lbnQiKV0pKShhLmVsZW1lbnQpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7dGhpcy54aShhLF8uR3QsIlZpZXciKX19O18uamphPV8uQ20oe2NlbnRlcjphPT5fLlhtKGEpLHJhZGl1czpfLk9tfSwhMCk7Xy5IdD1fLkNtKHtsYXQ6Xy5Ycixsbmc6Xy5YcixhbHRpdHVkZTpfLk1tKF8uWHIpfSwhMCk7Xy5ramE9Xy5DbSh7bGF0Ol8uWHIsbG5nOl8uWHIsYWx0aXR1ZGU6Xy5NbShfLlhyKX0sITApO18uSnE9Xy5LbShbXy5FbShfLlFvLCJMYXRMbmdBbHRpdHVkZSIpLF8uRW0oXy5UbSwiTGF0TG5nIiksXy5ramFdKTt2YXIgbGphPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YXx8MH1oZWFkaW5nKCl7cmV0dXJuIHRoaXMucWh9dGlsdCgpe3JldHVybiA0NX10b1N0cmluZygpe3JldHVybmAke3RoaXMucWh9LDQ1YH19O3ZhciBtamE7bWphPU1hdGguc3FydCgyKTtfLkxxPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMud0Y9ITA7dGhpcy5yaD1uZXcgXy5wdDt0aGlzLnFoPW5ldyBsamEoYSUzNjApO3RoaXMuc2g9bmV3IF8uYm8oMCwwKX1mcm9tTGF0TG5nVG9Qb2ludChhLGIpe2E9Xy5YbShhKTtiPXRoaXMucmguZnJvbUxhdExuZ1RvUG9pbnQoYSxiKTt4ZmEoYix0aGlzLnFoLmhlYWRpbmcoKSk7Yi55PShiLnktMTI4KS9tamErMTI4O3JldHVybiBifWZyb21Qb2ludFRvTGF0TG5nKGEsYj0hMSl7dmFyIGM9dGhpcy5zaDtjLng9YS54O2MueT0oYS55LTEyOCkqbWphKzEyODt4ZmEoYywzNjAtdGhpcy5xaC5oZWFkaW5nKCkpO3JldHVybiB0aGlzLnJoLmZyb21Qb2ludFRvTGF0TG5nKGMsYil9Z2V0UG92KCl7cmV0dXJuIHRoaXMucWh9fTt2YXIgeWZhPW5ldyBfLnB0O3ZhciBJdD1fLlVhLmdvb2dsZS5tYXBzLG5qYT1HbC5nZXRJbnN0YW5jZSgpLG9qYT1uamEubG4uYmluZChuamEpO0l0Ll9fZ2pzbG9hZF9fPW9qYTtfLmFtKEl0Lm1vZHVsZXMsb2phKTtkZWxldGUgSXQubW9kdWxlczt2YXIgRmZhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldE5hbWUoKXtyZXR1cm4gXy5IKHRoaXMsMSl9fTt2YXIgRWZhPV8uYWooY2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSk7dmFyIERmYTt2YXIgemZhPXt9O2ZvcihsZXQgYSBvZiBHZmEoKSl7dmFyIHBqYT1hLmdldE5hbWUoKSxxamE7cWphPV8uVWcoYSwyLF8uY2coKSk7emZhW3BqYV09cWphfTt2YXIgUHE9bmV3IE1hcDtQcS5zZXQoImFkZHJlc3NWYWxpZGF0aW9uIix7Zmo6MjMzMDQ4LGdqOjIzMzA0OSxpajoyMzMwNDd9KTtQcS5zZXQoImFpclF1YWxpdHkiLHtmajoyMzMwNTEsZ2o6MjMzMDUyLGlqOjIzMzA1MH0pO1BxLnNldCgiYWRzZW5zZSIse2ZqOjIzMzA1NCxnajoyMzMwNTUsaWo6MjMzMDUzfSk7UHEuc2V0KCJjb21tb24iLHtmajoyMzMwNTcsZ2o6MjMzMDU4LGlqOjIzMzA1Nn0pO1BxLnNldCgiY29udHJvbHMiLHtmajoyMzMwNjAsZ2o6MjMzMDYxLGlqOjIzMzA1OX0pO1BxLnNldCgiZGF0YSIse2ZqOjIzMzA2MyxnajoyMzMwNjQsaWo6MjMzMDYyfSk7UHEuc2V0KCJkaXJlY3Rpb25zIix7Zmo6MjMzMDY2LGdqOjIzMzA2NyxpajoyMzMwNjV9KTtQcS5zZXQoImRpc3RhbmNlX21hdHJpeCIse2ZqOjIzMzA2OSxnajoyMzMwNzAsaWo6MjMzMDY4fSk7UHEuc2V0KCJkcmF3aW5nIix7Zmo6MjMzMDcyLGdqOjIzMzA3MyxpajoyMzMwNzF9KTsKUHEuc2V0KCJkcmF3aW5nX2ltcGwiLHtmajoyMzMwNzUsZ2o6MjMzMDc2LGlqOjIzMzA3NH0pO1BxLnNldCgiZWxldmF0aW9uIix7Zmo6MjMzMDc4LGdqOjIzMzA3OSxpajoyMzMwNzd9KTtQcS5zZXQoImdlb2NvZGVyIix7Zmo6MjMzMDgxLGdqOjIzMzA4MixpajoyMzMwODB9KTtQcS5zZXQoImdlb21ldHJ5Iix7Zmo6MjMzMDg0LGdqOjIzMzA4NSxpajoyMzMwODN9KTtQcS5zZXQoImltYWdlcnlfdmlld2VyIix7Zmo6MjMzMDg3LGdqOjIzMzA4OCxpajoyMzMwODZ9KTtQcS5zZXQoImluZm93aW5kb3ciLHtmajoyMzMwOTAsZ2o6MjMzMDkxLGlqOjIzMzA4OX0pO1BxLnNldCgiam91cm5leVNoYXJpbmciLHtmajoyMzMwOTMsZ2o6MjMzMDk0LGlqOjIzMzA5Mn0pO1BxLnNldCgia21sIix7Zmo6MjMzMDk2LGdqOjIzMzA5NyxpajoyMzMwOTV9KTtQcS5zZXQoImxheWVycyIse2ZqOjIzMzA5OSxnajoyMzMxMDAsaWo6MjMzMDk4fSk7ClBxLnNldCgibG9nIix7Zmo6MjMzMTA1LGdqOjIzMzEwNixpajoyMzMxMDR9KTtQcS5zZXQoIm1haW4iLHtmajoyMzMxMDgsZ2o6MjMzMTA5LGlqOjIzMzEwN30pO1BxLnNldCgibWFwIix7Zmo6MjMzMTExLGdqOjIzMzExMixpajoyMzMxMTB9KTtQcS5zZXQoIm1hcDNkX2xpdGVfd2FzbSIse2ZqOjIzMzExNCxnajoyMzMxMTUsaWo6MjMzMTEzfSk7UHEuc2V0KCJtYXAzZF93YXNtIix7Zmo6MjMzMTE3LGdqOjIzMzExOCxpajoyMzMxMTZ9KTtQcS5zZXQoIm1hcDNkX3dhc21fZ2VveHAiLHtmajozMzE1NTcsZ2o6MzMxNTU4LGlqOjMzMTU1OX0pO1BxLnNldCgibWFwczNkIix7Zmo6MjMzMTIwLGdqOjIzMzEyMSxpajoyMzMxMTl9KTtQcS5zZXQoIm1hcmtlciIse2ZqOjIzMzEyMyxnajoyMzMxMjQsaWo6MjMzMTIyfSk7UHEuc2V0KCJtYXh6b29tIix7Zmo6MjMzMTI2LGdqOjIzMzEyNyxpajoyMzMxMjV9KTtQcS5zZXQoIm9uaW9uIix7Zmo6MjMzMTI5LGdqOjIzMzEzMCxpajoyMzMxMjh9KTsKUHEuc2V0KCJvdmVybGF5Iix7Zmo6MjMzMTMyLGdqOjIzMzEzMyxpajoyMzMxMzF9KTtQcS5zZXQoInBhbm9yYW1pbyIse2ZqOjIzMzEzNSxnajoyMzMxMzYsaWo6MjMzMTM0fSk7UHEuc2V0KCJwbGFjZXMiLHtmajoyMzMxMzgsZ2o6MjMzMTM5LGlqOjIzMzEzN30pO1BxLnNldCgicGxhY2VzX2ltcGwiLHtmajoyMzMxNDEsZ2o6MjMzMTQyLGlqOjIzMzE0MH0pO1BxLnNldCgicG9seSIse2ZqOjIzMzE0NCxnajoyMzMxNDUsaWo6MjMzMTQzfSk7UHEuc2V0KCJyb3V0ZXMiLHtmajoyNTY4MzksZ2o6MjU2ODQwLGlqOjI1Njg0MX0pO1BxLnNldCgic2VhcmNoIix7Zmo6MjMzMTQ3LGdqOjIzMzE0OCxpajoyMzMxNDZ9KTtQcS5zZXQoInNlYXJjaF9pbXBsIix7Zmo6MjMzMTUwLGdqOjIzMzE1MSxpajoyMzMxNDl9KTtQcS5zZXQoInN0cmVldHZpZXciLHtmajoyMzMxNTYsZ2o6MjMzMTU3LGlqOjIzMzE1NX0pO1BxLnNldCgic3R5bGVFZGl0b3IiLHtmajoyMzMxNTksZ2o6MjMzMTYwLGlqOjIzMzE1OH0pOwpQcS5zZXQoInV0aWwiLHtmajoyMzMxNjIsZ2o6MjMzMTYzLGlqOjIzMzE2MX0pO1BxLnNldCgidmlzdWFsaXphdGlvbiIse2ZqOjIzMzE2NSxnajoyMzMxNjYsaWo6MjMzMTY0fSk7UHEuc2V0KCJ2aXN1YWxpemF0aW9uX2ltcGwiLHtmajoyMzMxNjgsZ2o6MjMzMTY5LGlqOjIzMzE2N30pO1BxLnNldCgid2VhdGhlciIse2ZqOjIzMzE3MSxnajoyMzMxNzIsaWo6MjMzMTcwfSk7UHEuc2V0KCJ3ZWJnbCIse2ZqOjIzMzE3NCxnajoyMzMxNzUsaWo6MjMzMTczfSk7Xy5KdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMudG9rZW49YCR7Xy5LbigpLnJlcGxhY2UoLy0vZywiIil9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0OCkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ4KV5fLm1iKCkpLnRvU3RyaW5nKDM2KX1gLnN1YnN0cmluZygwLDM2KX19O18uSnQucHJvdG90eXBlLnFoPV8uaGEoMzUpO18uSnQucHJvdG90eXBlLmNvbnN0cnVjdG9yPV8uSnQucHJvdG90eXBlLmNvbnN0cnVjdG9yO18uS3Q9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLldpPXRoaXMuRGg9IiJ9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuRGh9Z2V0IHJlc291cmNlTmFtZSgpe3JldHVybiB0aGlzLldpfX07Xy5MdD1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9e30pe3RoaXMub3B0aW9ucz1iO3RoaXMucWg9e2N1cnJlbmN5Q29kZTpfLkgoYSwxKSx1bml0czpfLiRhYShfLk5nKGEsMikpLG5hbm9zOl8uS2coYSwzKX19Z2V0IGN1cnJlbmN5Q29kZSgpe3JldHVybiB0aGlzLnFoLmN1cnJlbmN5Q29kZX1nZXQgdW5pdHMoKXtyZXR1cm4gdGhpcy5xaC51bml0c31nZXQgbmFub3MoKXtyZXR1cm4gdGhpcy5xaC5uYW5vc310b1N0cmluZygpe3JldHVybihuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5vcHRpb25zLmxhbmd1YWdlP25ldyBJbnRsLkxvY2FsZSh0aGlzLm9wdGlvbnMubGFuZ3VhZ2Use3JlZ2lvbjp0aGlzLm9wdGlvbnMucmVnaW9uPz92b2lkIDB9KTp2b2lkIDAse3N0eWxlOiJjdXJyZW5jeSIsY3VycmVuY3k6dGhpcy5jdXJyZW5jeUNvZGV9KSkuZm9ybWF0KHRoaXMudW5pdHMrdGhpcy5uYW5vcy8xRTkpfXRvSlNPTigpe3JldHVybntjdXJyZW5jeUNvZGU6dGhpcy5jdXJyZW5jeUNvZGUsCnVuaXRzOnRoaXMudW5pdHMsbmFub3M6dGhpcy5uYW5vc319fTtfLkx0LnByb3RvdHlwZS50b1N0cmluZz1fLkx0LnByb3RvdHlwZS50b1N0cmluZztfLk10PWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9e2NvbXBvdW5kQ29kZTphLklIKCl8fG51bGwsZ2xvYmFsQ29kZTphLk1IKCl8fG51bGx9fWdldCBjb21wb3VuZENvZGUoKXtyZXR1cm4gdGhpcy5xaC5jb21wb3VuZENvZGV9Z2V0IGdsb2JhbENvZGUoKXtyZXR1cm4gdGhpcy5xaC5nbG9iYWxDb2RlfXRvSlNPTigpe3JldHVybntjb21wb3VuZENvZGU6dGhpcy5jb21wb3VuZENvZGUsZ2xvYmFsQ29kZTp0aGlzLmdsb2JhbENvZGV9fX07Xy5OdD1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnFoPVtdO3RoaXMucmg9W107dGhpcy55aD1fLkgoYSwyKT8/IiI7dGhpcy50aD1fLkgoYSwzKXx8bnVsbDt0aGlzLnpoPV8uSChhLDQpfHxudWxsO3RoaXMuQWg9Xy5IKGEsNSl8fG51bGw7dGhpcy5zaD1fLkgoYSw2KXx8bnVsbDt0aGlzLndoPV8uSChhLDcpfHxudWxsO3RoaXMuQmg9Xy5IKGEsOCl8fG51bGw7dGhpcy54aD1fLkgoYSwxMSl8fG51bGw7dGhpcy5xaD1fLlVnKGEsOSxfLmNnKCkpLnNsaWNlKCk7dGhpcy5yaD1fLlVnKGEsMTAsXy5jZygpKS5zbGljZSgpfWdldCByZWdpb25Db2RlKCl7cmV0dXJuIHRoaXMueWh9Z2V0IGxhbmd1YWdlQ29kZSgpe3JldHVybiB0aGlzLnRofWdldCBwb3N0YWxDb2RlKCl7cmV0dXJuIHRoaXMuemh9Z2V0IHNvcnRpbmdDb2RlKCl7cmV0dXJuIHRoaXMuQWh9Z2V0IGFkbWluaXN0cmF0aXZlQXJlYSgpe3JldHVybiB0aGlzLnNofWdldCBsb2NhbGl0eSgpe3JldHVybiB0aGlzLndofWdldCBzdWJsb2NhbGl0eSgpe3JldHVybiB0aGlzLkJofWdldCBhZGRyZXNzTGluZXMoKXtyZXR1cm4gdGhpcy5xaH1nZXQgcmVjaXBpZW50cygpe3JldHVybiB0aGlzLnJofWdldCBvcmdhbml6YXRpb24oKXtyZXR1cm4gdGhpcy54aH10b0pTT04oKXtyZXR1cm57cmVnaW9uQ29kZTp0aGlzLnloLApsYW5ndWFnZUNvZGU6dGhpcy50aCxwb3N0YWxDb2RlOnRoaXMuemgsc29ydGluZ0NvZGU6dGhpcy5BaCxhZG1pbmlzdHJhdGl2ZUFyZWE6dGhpcy5zaCxsb2NhbGl0eTp0aGlzLndoLHN1YmxvY2FsaXR5OnRoaXMuQmgsYWRkcmVzc0xpbmVzOnRoaXMucWgscmVjaXBpZW50czp0aGlzLnJoLG9yZ2FuaXphdGlvbjp0aGlzLnhofX19O18ucmphPV8uQ20oe3JlZ2lvbkNvZGU6Xy5jcixsYW5ndWFnZUNvZGU6Xy5icyxwb3N0YWxDb2RlOl8uYnMsc29ydGluZ0NvZGU6Xy5icyxhZG1pbmlzdHJhdGl2ZUFyZWE6Xy5icyxsb2NhbGl0eTpfLmJzLHN1YmxvY2FsaXR5Ol8uYnMsYWRkcmVzc0xpbmVzOl8uTW0oXy5IbShfLmRzKSkscmVjaXBpZW50czpIY2Esb3JnYW5pemF0aW9uOkhjYX0pO18uT3Q9Y2xhc3N7fTtfLk90LmVuY29kZVBhdGg9ZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIF8uRW8mJihhPWEuZ2V0QXJyYXkoKSk7YT0oMCxfLmVzKShhKTtyZXR1cm4gSWZhKGEsZnVuY3Rpb24oYil7cmV0dXJuW01hdGgucm91bmQoYi5sYXQoKSoxRTUpLE1hdGgucm91bmQoYi5sbmcoKSoxRTUpXX0pfTtfLk90LmRlY29kZVBhdGg9Xy5KZmE7dmFyIHRqYSx1amEsUGZhO18uc2phPSgpPT4oMCxfLldxKWA8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIC05NjAgOTYwIDk2MCI+PHBhdGggZD0ibTMxMy00NDAgMjI0IDIyNC01NyA1Ni0zMjAtMzIwIDMyMC0zMjAgNTcgNTYtMjI0IDIyNGg0ODd2ODB6Ii8+PC9zdmc+YDt0amE9KHtjbGFzc05hbWU6YSxmaWxsOmJ9KT0+KDAsXy5XcSlgPHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iMTYiIGFyaWEtbGFiZWw9Ikdvb2dsZSBNYXBzIiBjbGFzcz0iJHthfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDk4IDE4Ij48cGF0aCBmaWxsPSIke2J9IiBkPSJNNy4wOCAxMy45NmE3IDcgMCAwMS00Ljk5LTIuMDVBNi43IDYuNyAwIDAxMCA2Ljk4UTAgNC4xIDIuMDkgMi4wNUE3IDcgMCAwMTcuMDggMGE2LjcgNi43IDAgMDE0Ljc5IDEuOTJsLTEuMzUgMS4zNWE0LjggNC44IDAgMDAtMy40NC0xLjM2cS0yLjEgMC0zLjU1IDEuNDhhNSA1IDAgMDAtMS40NSAzLjU5cTAgMi4xMiAxLjQ2IDMuNTlhNC44IDQuOCAwIDAwMy41NSAxLjQ4IDQuOCA0LjggMCAwMDMuNTMtMS40cS44NC0uODQgMS4wNC0yLjRINy4wOHYtMS45aDYuNDJhNiA2IDAgMDEuMSAxLjE5cTAgMi44LTEuNjUgNC40NmE2LjQgNi40IDAgMDEtNC44NyAxLjk2TTIyIDEyLjY4YTQuNCA0LjQgMCAwMS0zLjIgMS4yOSA0LjQgNC40IDAgMDEtMy4yLTEuMjkgNC4zIDQuMyAwIDAxLTEuMzEtMy4yMXEwLTEuOTIgMS4zMS0zLjIxYTQuNCA0LjQgMCAwMTMuMi0xLjI5cTEuOSAwIDMuMiAxLjI5YTQuMyA0LjMgMCAwMTEuMzEgMy4yMUE0LjMgNC4zIDAgMDEyMiAxMi42OG0tNC45OS0xLjI2cS43NS43OCAxLjc5Ljc3IDEuMDQgMCAxLjc5LS43Ny43NS0uNzguNzUtMS45NSAwLTEuMTktLjc0LTEuOTYtLjc1LS43Ny0xLjgtLjc3dC0xLjguNzdhMi43IDIuNyAwIDAwLS43NCAxLjk2cTAgMS4xNy43NSAxLjk1bTE0Ljg0IDEuMjZxLTEuMyAxLjI5LTMuMiAxLjI5Yy0xLjkgMC0yLjMzLS40My0zLjItMS4yOWE0LjMgNC4zIDAgMDEtMS4zMS0zLjIxcTAtMS45MiAxLjMxLTMuMjEgMS4zLTEuMjkgMy4yLTEuMjljMS45IDAgMi4zMy40MyAzLjIgMS4yOWE0LjMgNC4zIDAgMDExLjMxIDMuMjFxMCAxLjkyLTEuMzEgMy4yMW0tNC45OS0xLjI2cS43NS43OCAxLjc5Ljc3IDEuMDQgMCAxLjc5LS43Ny43NS0uNzguNzUtMS45NSAwLTEuMTktLjc0LTEuOTZjLS43NC0uNzctMS4wOS0uNzctMS44LS43N3EtMS4wNSAwLTEuOC43N2EyLjcgMi43IDAgMDAtLjc0IDEuOTZxMCAxLjE3Ljc1IDEuOTVNMzguMzIgMThxLTEuNSAwLTIuNTItLjhhNC41IDQuNSAwIDAxLTEuNDYtMS44NmwxLjcyLS43MnEuMjcuNjUuODUgMS4xMi41OS40OCAxLjQxLjQ4YTIuMyAyLjMgMCAwMDEuNzYtLjY4cS42NC0uNjguNjQtMS45NnYtLjY1aC0uMDdhMi45IDIuOSAwIDAxLTIuMzcgMS4wMiA0IDQgMCAwMS0zLjAxLTEuMzEgNC40IDQuNCAwIDAxLTEuMjktMy4xNyA0LjQgNC40IDAgMDExLjI5LTMuMTkgNCA0IDAgMDEzLjAxLTEuMzJxLjc2IDAgMS4zOS4yOXQuOTguNzJoLjA3di0uNzJoMS44N3Y4LjA3cTAgMi4zNS0xLjIgMy41MkE0LjIgNC4yIDAgMDEzOC4zMiAxOG0uMTMtNS44MXExLjAyIDAgMS43MS0uNzdhMi44IDIuOCAwIDAwLjY5LTEuOTNxMC0xLjE3LS42OS0xLjk2YTIuMiAyLjIgMCAwMC0xLjcxLS43OXEtMS4wMyAwLTEuNzcuNzhhMi44IDIuOCAwIDAwLS43MyAxLjk2cTAgMS4xNi43MyAxLjkzLjc0Ljc4IDEuNzcuNzhNNDUuOTMuNDh2MTMuMjFoLTEuOThWLjQ4em01LjQxIDEzLjQ4YTQuNCA0LjQgMCAwMS00LjQ2LTQuNDlxMC0xLjk4IDEuMjMtMy4yNGE0IDQgMCAwMTMuMDEtMS4yNiAzLjggMy44IDAgMDEyLjY4IDEuMDcgNSA1IDAgMDExLjE3IDEuOGwuMi41MS02LjAxIDIuNDlhMi4zIDIuMyAwIDAwMi4xOCAxLjM2cTEuMzcgMCAyLjIxLTEuMjRsMS41MyAxLjAycS0uNS43Ni0xLjQ1IDEuMzgtLjkyLjYtMi4yOS42bS0yLjUtNC42MyA0LjAyLTEuNjdhMS40IDEuNCAwIDAwLS42My0uNjkgMiAyIDAgMDAtMS4wNC0uMjZxLS44NyAwLTEuNjMuNzJhMi40IDIuNCAwIDAwLS43MiAxLjltMTEuMjEgNC4zNlYxLjVoMS41N2w0LjI0IDcuNDJoLjA3bDQuMjQtNy40MmgxLjU3djEyLjE5aC0xLjU3VjYuNDVsLjA3LTIuMDRoLS4wN2wtMy44MSA2LjY5aC0uOTJsLTMuODEtNi42OWgtLjA3bC4wNyAyLjA0djcuMjR6bTE2LjMxLjI3cS0xLjMzIDAtMi4yMi0uNzdhMi41IDIuNSAwIDAxLS44OS0yLjAzcTAtMS4zNiAxLjA2LTIuMTQgMS4wNS0uNzcgMi42MS0uNzcgMS4zOCAwIDIuMjYuNTF2LS4yM3EwLS45MS0uNjMtMS40N0EyLjMgMi4zIDAgMDA3NyA2LjUxcS0uNjggMC0xLjIzLjMyYTEuNiAxLjYgMCAwMC0uNzcuODhsLTEuNDMtLjYxcS4yOC0uNzUgMS4xNC0xLjM5YTMuNiAzLjYgMCAwMTIuMjUtLjY0cTEuNiAwIDIuNjYuOTQgMS4wNS45MyAxLjA2IDIuNjR2NS4wNGgtMS41di0xLjE2aC0uMDhhMyAzIDAgMDEtMi43NCAxLjQzbS4yNS0xLjQzcS45NyAwIDEuNzYtLjcyLjgtLjcyLjc5LTEuNzEtLjY3LS41NC0xLjk5LS41NC0xLjE0IDAtMS43Mi40OS0uNTguNS0uNTggMS4xNiAwIC42MS41My45Ny41NC4zNSAxLjIxLjM1bTkuOTcgMS40M3EtLjk2IDAtMS43MS0uNDFhMyAzIDAgMDEtMS4xMy0xLjAyaC0uMDdsLjA3IDEuMTZ2My42OGgtMS41N1Y1LjM1aDEuNXYxLjE2aC4wN2EzIDMgMCAwMTEuMTMtMS4wMiAzLjcgMy43IDAgMDE0LjUuODcgNC41IDQuNSAwIDAxMS4xOCAzLjE3cTAgMS45LTEuMTggMy4xN2EzLjcgMy43IDAgMDEtMi43OSAxLjI2bS0uMjYtMS40M3ExLjEgMCAxLjg3LS44My43OC0uODIuNzgtMi4xOXQtLjc4LTIuMTlhMi41IDIuNSAwIDAwLTEuODctLjgzcS0xLjExIDAtMS44OC44Mi0uNzguODEtLjc3IDIuMmMuMDEgMS4zOS4yNiAxLjY1Ljc3IDIuMnEuNzguODIgMS44OC44Mm04LjM5IDEuNDNhMy44IDMuOCAwIDAxLTMuNjUtMi4zOGwxLjQtLjU4cS42NyAxLjU3IDIuMjYgMS41Ny43MyAwIDEuMi0uMzJhMSAxIDAgMDAuNDctLjg1cTAtLjgxLTEuMTQtMS4xMWwtMS42OS0uNDFhNCA0IDAgMDEtMS41Mi0uNzcgMS45IDEuOSAwIDAxLS43Mi0xLjU0cTAtMS4xMS45OC0xLjhhNCA0IDAgMDEyLjMyLS42OXExLjExIDAgMS45OC41dDEuMjQgMS40NGwtMS4zNC41NnEtLjQ2LTEuMTEtMS45MS0xLjExLS43IDAtMS4xOC4yOXQtLjQ4Ljc4cTAgLjcyIDEuMTEuOTdsMS42NS4zOWEzIDMgMCAwMTEuNzQuOTRxLjU2LjY2LjU2IDEuNSAwIDEuMTItLjkyIDEuODctLjkuNzUtMi4zNi43NSIvPjwvc3ZnPmA7CnVqYT0oe2NsYXNzTmFtZTphLGZpbGw6YixvdXRsaW5lOmN9KT0+KDAsXy5XcSlgPHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjIyIiBhcmlhLWxhYmVsPSJHb29nbGUgTWFwcyIgY2xhc3M9IiR7YX0iIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiIHZpZXdCb3g9IjAgMCAxMDYgMjIiPjxnIGZpbGw9IiR7Y30iIG9wYWNpdHk9Ii45Ij48cGF0aCBkPSJtNTkuODYgMTEuNDQtLjkzLTIuMzNxLS4yNC0uNi0uNjEtMS4yMi0uNC0uNjQtMS4wMS0xLjI3LS43NS0uNzUtMS44LTEuMi0xLjA5LS40Ni0yLjMtLjQ2LTEuNzcgMC0zLjIuODdWLjQ3aC02djQuNzdoLTEuOTVhNi4xIDYuMSAwIDAwLTYuNDMgMS45NHEtLjE0LS4xOC0uMzMtLjM1YTYuNCA2LjQgMCAwMC00LjYtMS44NiA2LjQgNi40IDAgMDAtNC42MSAxLjg2bC0uMzIuMzQtLjMyLS4zNGE2LjQgNi40IDAgMDAtNC42LTEuODZxLTIuMzQgMC00LjA3IDEuMzhIMTQuM2wyLjQ3LTIuNDYtMS40OS0xLjRBOC43IDguNyAwIDAwOS4xIDBhOSA5IDAgMDAtNi40IDIuNjFBOC42IDguNiAwIDAwMCA4Ljk3cTAgMy43MyAyLjcgNi4zN2E5IDkgMCAwMDYuNCAyLjYyYzIuNDcgMCA0LjctLjg3IDYuMy0yLjU0bC4xMS0uMTNxLjMxLjQ0LjcuOGE2LjQgNi40IDAgMDA0LjYxIDEuODcgNi40IDYuNCAwIDAwNC45My0yLjJsLjMyLjM0YTYuNCA2LjQgMCAwMDQuNiAxLjg2cTEuOSAwIDMuNDEtLjkybC40NSAxLjA3YTcgNyAwIDAwMi4wOSAyLjY2QTYgNiAwIDAwNDAuMzcgMjJhNi4yIDYuMiAwIDAwNC40OC0xLjczIDUuNyA1LjcgMCAwMDEuNS0yLjU4SDUwdi0uNjdxMS41Mi45NCAzLjQyLjk0YTYgNiAwIDAwMy40LS45NCA3IDcgMCAwMDIuMDItMS45NGwxLjExLTEuNjYtMS44Ny0xLjI1ek0xMDUgMTAuMWwtLjc0LTEuODRhNSA1IDAgMDAtMi4xLTIuNDNxLTEuMzUtLjc2LTIuOTktLjc3LTEuOTcgMC0zLjQ4IDEuMDUtLjM1LjI2LS42Ni41NmE1LjcgNS43IDAgMDAtNS43My0xLjM0aC00LjY0di42cS0xLjQtLjg3LTMuMjItLjg3YTYgNiAwIDAwLTMuMjIuOVYxLjVoLTQuNzRsLTMuMTEgNS40NS0zLjEyLTUuNDVoLTQuNzN2MTYuMmg1LjU3di0yLjZoNC41NnYyLjZoNS41OHYtLjM3cTEuMTYuNjQgMi42Mi42NC45NiAwIDEuNzktLjI3aDIuMDN2My42OGg1LjU4di0zLjQ2cS40MS4wNi44NC4wNmMxLjUgMCAyLjg3LS41NyAzLjk4LTEuNjRxLjMuMy42Ni41NmE1LjcgNS43IDAgMDAzLjUxIDEuMDggNS43IDUuNyAwIDAwMy42NC0xLjIgNC4zIDQuMyAwIDAwLjczLTYuMDhsMS4zOS0uNTgiLz48L2c+PHBhdGggZmlsbD0iJHtifSIgZD0iTTkuMSAxNS45NmE3IDcgMCAwMS01LTIuMDUgNi42IDYuNiAwIDAxLTIuMDktNC45NHEwLTIuODggMi4xLTQuOTNBNyA3IDAgMDE5LjEgMmE2LjYgNi42IDAgMDE0LjggMS45MmwtMS4zNiAxLjM1QTUgNSAwIDAwOS4xIDMuOVE3IDMuOSA1LjU1IDUuMzhhNSA1IDAgMDAtMS40NiAzLjZxMCAyLjEgMS40NiAzLjU5UTcgMTQuMDUgOS4xIDE0LjA1cTIuMTIgMCAzLjU0LTEuNC44NC0uODQgMS4wNC0yLjRIOS4xMVY4LjMyaDYuNDNhNiA2IDAgMDEuMSAxLjJxMCAyLjgtMS42NSA0LjQ2YTYuNCA2LjQgMCAwMS00Ljg4IDEuOTZtMTQuOTQtMS4yOGE0LjQgNC40IDAgMDEtMy4yIDEuMjkgNC40IDQuNCAwIDAxLTMuMjEtMS4zIDQuMyA0LjMgMCAwMS0xLjMyLTMuMnEwLTEuOTMgMS4zMi0zLjIyYTQuNCA0LjQgMCAwMTMuMi0xLjI5IDQuNCA0LjQgMCAwMTMuMiAxLjMgNC4zIDQuMyAwIDAxMS4zMiAzLjJxMCAxLjkzLTEuMzEgMy4yMm0tNS0xLjI2cS43NS43NyAxLjguNzcgMS4wMyAwIDEuNzgtLjc3Ljc2LS43OC43Ni0xLjk1IDAtMS4xOS0uNzUtMS45N2EyLjQgMi40IDAgMDAtMS44LS43N3EtMS4wNSAwLTEuOC43Ny0uNzQuNzctLjc0IDEuOTcgMCAxLjE5Ljc1IDEuOTVtMTQuODYgMS4yNmE0LjQgNC40IDAgMDEtMy4yIDEuMjkgNC40IDQuNCAwIDAxLTMuMi0xLjMgNC4zIDQuMyAwIDAxLTEuMzItMy4ycTAtMS45MyAxLjMxLTMuMjJhNC40IDQuNCAwIDAxMy4yLTEuMjkgNC40IDQuNCAwIDAxMy4yMSAxLjMgNC4zIDQuMyAwIDAxMS4zMSAzLjJxMCAxLjkzLTEuMyAzLjIybS01LTEuMjZxLjc1Ljc3IDEuOC43NyAxLjA0IDAgMS43OS0uNzcuNzUtLjc4Ljc1LTEuOTUgMC0xLjE5LS43NC0xLjk3YTIuNCAyLjQgMCAwMC0xLjgtLjc3cS0xLjA2IDAtMS44Ljc3LS43NS43Ny0uNzUgMS45NyAwIDEuMTkuNzUgMS45NU00MC4zOCAyMHEtMS41IDAtMi41Mi0uOGE0LjUgNC41IDAgMDEtMS40Ni0xLjg2bDEuNzItLjcycS4yNy42NC44NSAxLjEyLjU5LjQ4IDEuNDEuNDhhMi4zIDIuMyAwIDAwMS43Ni0uNjhxLjY1LS42OC42NS0xLjk2di0uNjVoLS4wN2EyLjkgMi45IDAgMDEtMi4zOCAxLjAyIDQgNCAwIDAxLTMuMDEtMS4zMSA0LjQgNC40IDAgMDEtMS4zLTMuMTcgNC40IDQuNCAwIDAxMS4zLTMuMiA0IDQgMCAwMTMuMDEtMS4zMnEuNzYgMCAxLjQuMy42LjI3Ljk4LjcxaC4wN3YtLjczaDEuODd2OC4wOHEwIDIuMzUtMS4yIDMuNTJBNC4yIDQuMiAwIDAxNDAuMzggMjBtLjEzLTUuODFxMS4wMiAwIDEuNzEtLjc3LjctLjc4LjctMS45MyAwLTEuMTctLjctMS45N2EyLjIgMi4yIDAgMDAtMS43LS43OHEtMS4wNCAwLTEuNzguNzgtLjc0Ljc5LS43MyAxLjk3IDAgMS4xNy43MyAxLjkzLjc0Ljc3IDEuNzcuNzdtNy41LTExLjcyVjE1LjdoLTEuOTlWMi40N3ptNS40MiAxMy40OWE0LjQgNC40IDAgMDEtNC40Ny00LjVjMC0xLjI3LjQyLTIuNCAxLjI0LTMuMjRhNCA0IDAgMDEzLjAxLTEuMjYgMy44IDMuOCAwIDAxMi42OSAxLjA3IDUgNSAwIDAxMS4xNyAxLjhsLjIuNTEtNi4wMiAyLjVhMi4zIDIuMyAwIDAwMi4xOCAxLjM2cTEuMzcgMCAyLjIxLTEuMjRsMS41NCAxLjAycS0uNS43Ni0xLjQ2IDEuMzhhNCA0IDAgMDEtMi4zLjZ6bS0yLjUxLTQuNjMgNC4wMi0xLjY4YTEuNCAxLjQgMCAwMC0uNjMtLjY5IDIgMiAwIDAwLTEuMDQtLjI2cS0uODcgMC0xLjYzLjcyYTIuNCAyLjQgMCAwMC0uNzIgMS45MnptMTMuNjIgNC4zNlYzLjQ5aDEuNTdsNC4yNSA3LjQzaC4wN2w0LjI0LTcuNDNoMS41OHYxMi4yaC0xLjU4VjguNDRsLjA3LTIuMDRoLS4wN2wtMy44MSA2LjdoLS45MmwtMy44Mi02LjdoLS4wN2wuMDcgMi4wNHY3LjI1em0xNi4zMi4yN3EtMS4zNCAwLTIuMjItLjc3LS45LS43OC0uOS0yLjAzIDAtMS4zNiAxLjA3LTIuMTQgMS4wNS0uNzkgMi42MS0uNzggMS4zOSAwIDIuMjcuNTF2LS4yNHEwLS45LS42My0xLjQ3YTIuMyAyLjMgMCAwMC0xLjU2LS41NXEtLjY4IDAtMS4yMy4zMmExLjcgMS43IDAgMDAtLjc2LjlsLTEuNDMtLjYycS4yOC0uNzUgMS4xNC0xLjM5YTMuNyAzLjcgMCAwMTIuMjUtLjY0cTEuNjEgMCAyLjY3Ljk0dDEuMDYgMi42NHY1LjA1aC0xLjV2LTEuMTZoLS4wN2EzLjEgMy4xIDAgMDEtMi43NSAxLjQzem0uMjYtMS40M3EuOTggMCAxLjc3LS43Mi44LS43Mi43OS0xLjcxLS42Ni0uNTQtMi0uNTQtMS4xNCAwLTEuNzIuNDktLjU4LjUtLjU4IDEuMTYgMCAuNi41My45Ny41Mi4zNiAxLjIxLjM2em05Ljk4IDEuNDNxLS45NiAwLTEuNzEtLjQxYTMgMyAwIDAxLTEuMTQtMS4wMmgtLjA3bC4wNyAxLjE2djMuNjhoLTEuNTdWNy4zNGgxLjVWOC41aC4wN2EzIDMgMCAwMTEuMTQtMS4wMiAzLjcgMy43IDAgMDE0LjUuODcgNC41IDQuNSAwIDAxMS4xOCAzLjE4cTAgMS45LTEuMTggMy4xN2EzLjcgMy43IDAgMDEtMi44IDEuMjh6bS0uMjYtMS40M3ExLjEgMCAxLjg3LS44My43OC0uODIuNzgtMi4yIDAtMS4zNi0uNzgtMi4xOWEyLjUgMi41IDAgMDAtMS44Ny0uODMgMi41IDIuNSAwIDAwLTEuODguODIgMyAzIDAgMDAtLjc4IDIuMnEwIDEuNC43OCAyLjIuNzcuODMgMS44OC44M204LjQxIDEuNDNhMy44IDMuOCAwIDAxLTMuNjUtMi4zOEw5NyAxM3EuNjcgMS41NyAyLjI2IDEuNTcuNzUgMCAxLjItLjMyYTEgMSAwIDAwLjQ3LS44NXEwLS44MS0xLjE0LTEuMTFsLTEuNy0uNDFhNCA0IDAgMDEtMS41MS0uNzcgMS45IDEuOSAwIDAxLS43Mi0xLjU1cTAtMS4xMS45OC0xLjhhNCA0IDAgMDEyLjMyLS42OXExLjExIDAgMS45OC41dDEuMjUgMS40NGwtMS4zNy41NnEtLjQ1LTEuMS0xLjktMS4xLS43MSAwLTEuMi4yOC0uNDcuMy0uNDcuNzggMCAuNzIgMS4xMS45OGwxLjY1LjM5cTEuMTguMjcgMS43NS45NC41Ni42Ni41NiAxLjUgMCAxLjEyLS45MiAxLjg3dC0yLjM4Ljc1eiIvPjwvc3ZnPmA7Cl8uJHE9KHtmaWxsOmF9KT0+KDAsXy5XcSlgPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImluZm8taWNvbiIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiPjxwYXRoIGZpbGw9IiR7YX0iIGQ9Ik00NDAtMjgwaDgwdi0yNDBoLTgwem00MC0zMjBxMTcgMCAyOC41LTExLjVUNTIwLTY0MHQtMTEuNS0yOC41VDQ4MC02ODB0LTI4LjUgMTEuNVQ0NDAtNjQwdDExLjUgMjguNVQ0ODAtNjAwbTAgNTIwcS04MyAwLTE1Ni0zMS41VDE5Ny0xOTd0LTg1LjUtMTI3VDgwLTQ4MHQzMS41LTE1NlQxOTctNzYzdDEyNy04NS41VDQ4MC04ODB0MTU2IDMxLjVUNzYzLTc2M3Q4NS41IDEyN1Q4ODAtNDgwdC0zMS41IDE1NlQ3NjMtMTk3dC0xMjcgODUuNVQ0ODAtODBtMC04MHExMzQgMCAyMjctOTN0OTMtMjI3LTkzLTIyNy0yMjctOTMtMjI3IDkzLTkzIDIyNyA5MyAyMjcgMjI3IDkzbTAtMzIwIi8+PC9zdmc+YDtQZmE9KHtmaWxsOmEsb3V0bGluZTpifSk9PigwLF8uV3EpYDxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9ImluZm8taWNvbi0tb3V0bGluZSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMTEgMTEgMTkgMTkiPjxjaXJjbGUgY3g9IjIwIiBjeT0iMjAiIHI9IjkiIGZpbGw9IiR7Yn0iIGZpbGwtb3BhY2l0eT0iLjkiLz48cGF0aCBmaWxsPSIke2F9IiBkPSJNMTkuMjUgMjMuNjhoMS41VjE5LjFoLTEuNXptLjc1LTUuODRxLjMyIDAgLjU0LS4yMmEuNy43IDAgMDAuMjMtLjU1cTAtLjMtLjIzLS41NGEuNy43IDAgMDAtLjU0LS4yMnEtLjMyIDAtLjU0LjIyYS43LjcgMCAwMC0uMjMuNTRxMCAuMzMuMjMuNTUuMjIuMjIuNTQuMjJtMCA5LjUxYTcuNCA3LjQgMCAwMS01LjIxLTIuMTRBNy40IDcuNCAwIDAxMTIuNjUgMjBhNy4zIDcuMyAwIDAxMTAuMjItNi43N3ExLjMzLjU3IDIuMzIgMS41OCAxLjAyLjk5IDEuNTggMi4zNC41OCAxLjM0LjU4IDIuODUgMCAxLjUyLS41OCAyLjg3QTcuMyA3LjMgMCAwMTIwIDI3LjM1bTAtMS41NnEyLjQyIDAgNC4xLTEuNjhBNS42IDUuNiAwIDAwMjUuOCAyMHEwLTIuNDItMS43LTQuMWE1LjYgNS42IDAgMDAtNC4xLTEuN3EtMi40MiAwLTQuMSAxLjdhNS42IDUuNiAwIDAwLTEuNyA0LjFxMCAyLjQyIDEuNyA0LjFhNS42IDUuNiAwIDAwNC4xIDEuNyIvPjwvc3ZnPmA7Cl8uWHE9KHthcmlhTGFiZWw6YSxjbGFzc05hbWU6Yn0pPT4oMCxfLldxKWA8c3ZnIGZpbGw9ImN1cnJlbnRDb2xvciIgYXJpYS1sYWJlbD0iJHthfSIgY2xhc3M9IiR7Yn0iIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIj48cGF0aCBpZD0ib3Blbi1pbi1uZXciIGQ9Ik0yMDAtMTIwcS0zMyAwLTU2LjUtMjMuNVQxMjAtMjAwdi01NjBxMC0zMyAyMy41LTU2LjVUMjAwLTg0MGgyODB2ODBIMjAwdjU2MGg1NjB2LTI4MGg4MHYyODBxMCAzMy0yMy41IDU2LjVUNzYwLTEyMHptMTg4LTIxMi01Ni01NiAzNzItMzcySDU2MHYtODBoMjgwdjI4MGgtODB2LTE0NHoiLz48L3N2Zz5gO3ZhciB2amE9Xy4kcyhbIjpob3N0KDpub3QoW2hpZGRlbl0pKXtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5Okdvb2dsZSBTYW5zIFRleHQsUm9ib3RvLEFyaWFsLHNhbnMtc2VyaWZ9LmF0dHJpYnV0aW9uLXRleHR7Zm9udC13ZWlnaHQ6NDAwO3doaXRlLXNwYWNlOm5vd3JhcH0uYXR0cmlidXRpb24tdGV4dC5mb250LS1ib2R5LXNtYWxse2ZvbnQtc2l6ZToxMnB4O2xldHRlci1zcGFjaW5nOi4ycHg7bGluZS1oZWlnaHQ6MS4zMzMzMzMzMzMzfS5hdHRyaWJ1dGlvbi10ZXh0LmZvbnQtLWJvZHktbWVkaXVte2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xldHRlci1zcGFjaW5nOi4xcHg7bGluZS1oZWlnaHQ6MS4xNDI4NTcxNDI5fS5jb250YWluZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtsaW5lLWhlaWdodDowfS5jb250YWluZXI+YXt0ZXh0LWRlY29yYXRpb246bm9uZX1nbXAtaW50ZXJuYWwtZGlhbG9nIGRpYWxvZ3stLWdtcC1pbnRlcm5hbC1kaWFsb2ctYm9yZGVyLXJhZGl1czp2YXIoLS1nbXAtZGlhbG9nLWJvcmRlci1yYWRpdXMsMjhweCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nbXAtbWF0LWNvbG9yLXN1cmZhY2UsbGlnaHQtZGFyaygjZmZmLCMxMzEzMTQpKTttYXgtd2lkdGg6NjAwcHh9Z21wLWludGVybmFsLWRpYWxvZyBkaWFsb2cgaGVhZGVyIC5nbS11aS1ob3Zlci1lZmZlY3Q+c3BhbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdtcC1tYXQtY29sb3Itb24tc3VyZmFjZSxsaWdodC1kYXJrKCMxZjFmMWYsI2UzZTNlMykpfUBtZWRpYSAoZm9yY2VkLWNvbG9yczphY3RpdmUpe2dtcC1pbnRlcm5hbC1kaWFsb2cgZGlhbG9nIGhlYWRlciAuZ20tdWktaG92ZXItZWZmZWN0PnNwYW57YmFja2dyb3VuZC1jb2xvcjpCdXR0b25UZXh0fX1pbWd7d2lkdGg6MTAwJX1zdmd7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbn0uaW5mby1idXR0b257LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLXNtYWxsLDhweCk7LW1vei1tYXJnaW4tc3RhcnQ6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLXNtYWxsLDhweCk7bWFyZ2luLWlubGluZS1zdGFydDp2YXIoLS1nbXAtbWF0LXNwYWNpbmctc21hbGwsOHB4KTtwYWRkaW5nOjA7cGFkZGluZy1ibG9jazowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjI0cHh9LmluZm8tYnV0dG9uOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5pbmZvLWJ1dHRvbiAudGFwLWFyZWF7Y3Vyc29yOmRlZmF1bHQ7aGVpZ2h0OjM0cHg7bGVmdDo1MCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7d2lkdGg6NDhweDt6LWluZGV4OjB9LmluZm8tYnV0dG9uLnRhcC1hcmVhLWV4cGFuZGVke2hlaWdodDo0OHB4Oy13ZWJraXQtbWFyZ2luLXN0YXJ0OnVuc2V0Oy1tb3otbWFyZ2luLXN0YXJ0OnVuc2V0O21hcmdpbi1pbmxpbmUtc3RhcnQ6dW5zZXQ7cGFkZGluZy1ibG9jazo0cHg7d2lkdGg6NDhweH0uaW5mby1idXR0b24udGFwLWFyZWEtZXhwYW5kZWQgLnRhcC1hcmVhe2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmluZm8tYnV0dG9uLnRhcC1hcmVhLWV4cGFuZGVkIC5pbmZvLWljb24tY29udGFpbmVye2hlaWdodDozNHB4O3dpZHRoOjM0cHh9LmluZm8tYnV0dG9uLnRhcC1hcmVhLWV4cGFuZGVkIC5pbmZvLWljb24tY29udGFpbmVyIHN2Z3t3aWR0aDoxOHB4fS5pbmZvLWljb24tY29udGFpbmVyey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjRweDt6LWluZGV4OjF9LmluZm8taWNvbi1jb250YWluZXIgc3Zne3dpZHRoOjE1cHg7ei1pbmRleDoxfS5pbmZvLWljb24tY29udGFpbmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZ21wLWludGVybmFsLWF0dHJpYnV0aW9uLWNvbG9yLGxpZ2h0LWRhcmsoIzVlNWU1ZSwjZmZmKSkgOCUsdHJhbnNwYXJlbnQpfS5pbmZvLWJ1dHRvbjpmb2N1cy12aXNpYmxlIC5pbmZvLWljb24tY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZ21wLWludGVybmFsLWF0dHJpYnV0aW9uLWNvbG9yLGxpZ2h0LWRhcmsoIzVlNWU1ZSwjZmZmKSkgMTAlLHRyYW5zcGFyZW50KX0iXSk7dmFyIFB0PWNsYXNzIGV4dGVuZHMgXy5kdHt0aSgpe3JldHVybigwLF8uV3EpYDxidXR0b24KICAgICAgdHlwZT0iYnV0dG9uIgogICAgICB0aXRsZT0iJHsiQmFjayJ9IgogICAgICBhcmlhLWxhYmVsPSIkeyJCYWNrIn0iCiAgICAgID4ke18uc2phKCl9PC9idXR0b24KICAgID5gfWZvY3VzKGEpe3RoaXMuUksuZm9jdXMoYSl9fTtQdC5zdHlsZXM9Xy4kcyhbIjpob3N0IGJ1dHRvbnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOmxpZ2h0LWRhcmsoIzFmMWYxZiwjZTNlM2UzKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7b3BhY2l0eTouNjtwYWRkaW5nOjB9Omhvc3QgYnV0dG9uOmhvdmVye2NvbG9yOmxpZ2h0LWRhcmsoIzAwMCwjZmZmKTtvcGFjaXR5OjF9Omhvc3QgYnV0dG9uOmRpcihydGwpIHN2Z3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLTEpO3RyYW5zZm9ybTpzY2FsZVgoLTEpfSJdKTsKXy5EKFtfLnVxKCJidXR0b24iKSxfLkYoImRlc2lnbjp0eXBlIixIVE1MQnV0dG9uRWxlbWVudCldLFB0LnByb3RvdHlwZSwiUksiLHZvaWQgMCk7Xy54bygiZ21wLWludGVybmFsLWJhY2stYnV0dG9uIixQdCk7dmFyIHdqYT0oMCxfLkdqKWBkaWFsb2cuemxEclUtYmFzaWMtZGlhbG9nLWVsZW1lbnQ6OmJhY2tkcm9we2JhY2tncm91bmQtY29sb3I6IzIwMjEyNH1Ac3VwcG9ydHMgKCgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDNweCkpIG9yIChiYWNrZHJvcC1maWx0ZXI6Ymx1cigzcHgpKSl7ZGlhbG9nLnpsRHJVLWJhc2ljLWRpYWxvZy1lbGVtZW50OjpiYWNrZHJvcHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzIsMzMsMzYsLjcpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoM3B4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigzcHgpfX1kaWFsb2dbb3Blbl0uemxEclUtYmFzaWMtZGlhbG9nLWVsZW1lbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1kaWFsb2cuemxEclUtYmFzaWMtZGlhbG9nLWVsZW1lbnR7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1nbXAtaW50ZXJuYWwtZGlhbG9nLWJvcmRlci1yYWRpdXMsMjhweCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MjBweCA4cHggOHB4fWRpYWxvZy56bERyVS1iYXNpYy1kaWFsb2ctZWxlbWVudCBoZWFkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6MTZweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZzowIDE2cHh9ZGlhbG9nLnpsRHJVLWJhc2ljLWRpYWxvZy1lbGVtZW50IGhlYWRlciBoMntmb250LWZhbWlseTpHb29nbGUgU2FucyxSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtsaW5lLWhlaWdodDoyOHB4O2ZvbnQtc2l6ZToyMnB4O2xldHRlci1zcGFjaW5nOjA7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOmxpZ2h0LWRhcmsoIzNjNDA0MywjZThlYWVkKTtmbGV4OjE7bWFyZ2luOjB9ZGlhbG9nLnpsRHJVLWJhc2ljLWRpYWxvZy1lbGVtZW50IC51bkFSdWItYmFzaWMtZGlhbG9nLWVsZW1lbnQtLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIDE2cHggMTZweDtvdmVyZmxvdzphdXRvfVxuYDt2YXIgeGphPXsiY2xvc2Uuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xOSUyMDYuNDElMjAxNy41OSUyMDUlMjAxMiUyMDEwLjU5JTIwNi40MSUyMDUlMjA1JTIwNi40MSUyMDEwLjU5JTIwMTIlMjA1JTIwMTcuNTklMjA2LjQxJTIwMTklMjAxMiUyMDEzLjQxJTIwMTcuNTklMjAxOSUyMDE5JTIwMTcuNTklMjAxMy40MSUyMDEyeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBkJTNEJTIyTTAlMjAwaDI0djI0SDB6JTIyLyUzRSUzQy9zdmclM0UifTt2YXIgeWphPSgwLF8uR2opYC5nbS11aS1ob3Zlci1lZmZlY3R7b3BhY2l0eTouNn0uZ20tdWktaG92ZXItZWZmZWN0OmhvdmVye29wYWNpdHk6MX0uZ20tdWktaG92ZXItZWZmZWN0XHUwMDNlc3BhbntiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0LWRhcmsoIzAwMCwjZmZmKX1AbWVkaWEgKGZvcmNlZC1jb2xvcnM6YWN0aXZlKSwocHJlZmVycy1jb250cmFzdDptb3JlKXsuZ20tdWktaG92ZXItZWZmZWN0XHUwMDNlc3BhbntiYWNrZ3JvdW5kLWNvbG9yOkJ1dHRvblRleHR9fXNlbnRpbmVse31cbmA7dmFyIFR0O18uUXQ9KGEse3Jvb3Q6Yj1kb2N1bWVudC5oZWFkLEp6OmN9PXt9KT0+e2MmJihhPWEucmVwbGFjZSgvKFxXKWxlZnQoXFcpL2csIiQxYCQyIikucmVwbGFjZSgvKFxXKXJpZ2h0KFxXKS9nLCIkMWxlZnQkMiIpLnJlcGxhY2UoLyhcVylgKFxXKS9nLCIkMXJpZ2h0JDIiKSk7Yz1fLm9jYSgiU1RZTEUiKTtjLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGEpKTsoYT1KYWEoInN0eWxlIixkb2N1bWVudCkpJiZjLnNldEF0dHJpYnV0ZSgibm9uY2UiLGEpO2IuaW5zZXJ0QmVmb3JlKGMsYi5maXJzdENoaWxkKTtyZXR1cm4gY307Xy5SdD0oYSxiPXt9KT0+e2E9Xy5CaihhKTtfLlF0KGEsYil9O18uU3Q9KGEsYixjPSExKT0+e2I9Yi5nZXRSb290Tm9kZT9iLmdldFJvb3ROb2RlKCk6ZG9jdW1lbnQ7Yj1iLmhlYWR8fGI7dmFyIGQ9Xy56amEoYik7ZC5oYXMoYSl8fChkLmFkZChhKSxfLlJ0KGEse3Jvb3Q6YixKejpjfSkpfTtUdD1uZXcgV2Vha01hcDsKXy56amE9YT0+e1R0LmhhcyhhKXx8VHQuc2V0KGEsbmV3IFdlYWtTZXQpO3JldHVybiBUdC5nZXQoYSl9O18uQWphPVJlZ0V4cCgiW1x1MDU5MS1cdTA2ZWZcdTA2ZmEtXHUwOGZmXHUyMDBmXHVkODAyLVx1ZDgwM1x1ZDgzYS1cdWQ4M2JcdWZiMWQtXHVmZGZmXHVmZTcwLVx1ZmVmY10iKTtfLkJqYT1SZWdFeHAoIltBLVphLXpcdTAwYzAtXHUwMGQ2XHUwMGQ4LVx1MDBmNlx1MDBmOC1cdTAyYjhcdTAzMDAtXHUwNTkwXHUwOTAwLVx1MWZmZlx1MjAwZVx1MmMwMC1cdWQ4MDFcdWQ4MDQtXHVkODM5XHVkODNjLVx1ZGJmZlx1ZjkwMC1cdWZiMWNcdWZlMDAtXHVmZTZmXHVmZWZkLVx1ZmZmZl0iKTtfLkNqYT1SZWdFeHAoIl5bXkEtWmEtelx1MDBjMC1cdTAwZDZcdTAwZDgtXHUwMGY2XHUwMGY4LVx1MDJiOFx1MDMwMC1cdTA1OTBcdTA5MDAtXHUxZmZmXHUyMDBlXHUyYzAwLVx1ZDgwMVx1ZDgwNC1cdWQ4MzlcdWQ4M2MtXHVkYmZmXHVmOTAwLVx1ZmIxY1x1ZmUwMC1cdWZlNmZcdWZlZmQtXHVmZmZmXSpbXHUwNTkxLVx1MDZlZlx1MDZmYS1cdTA4ZmZcdTIwMGZcdWQ4MDItXHVkODAzXHVkODNhLVx1ZDgzYlx1ZmIxZC1cdWZkZmZcdWZlNzAtXHVmZWZjXSIpOwpfLkVqYT1SZWdFeHAoIltBLVphLXpcdTAwYzAtXHUwMGQ2XHUwMGQ4LVx1MDBmNlx1MDBmOC1cdTAyYjhcdTAzMDAtXHUwNTkwXHUwOTAwLVx1MWZmZlx1MjAwZVx1MmMwMC1cdWQ4MDFcdWQ4MDQtXHVkODM5XHVkODNjLVx1ZGJmZlx1ZjkwMC1cdWZiMWNcdWZlMDAtXHVmZTZmXHVmZWZkLVx1ZmZmZl1bXlx1MDU5MS1cdTA2ZWZcdTA2ZmEtXHUwOGZmXHUyMDBmXHVkODAyLVx1ZDgwM1x1ZDgzYS1cdWQ4M2JcdWZiMWQtXHVmZGZmXHVmZTcwLVx1ZmVmY10qJCIpO18uRmphPVJlZ0V4cCgiW1x1MDU5MS1cdTA2ZWZcdTA2ZmEtXHUwOGZmXHUyMDBmXHVkODAyLVx1ZDgwM1x1ZDgzYS1cdWQ4M2JcdWZiMWQtXHVmZGZmXHVmZTcwLVx1ZmVmY11bXkEtWmEtelx1MDBjMC1cdTAwZDZcdTAwZDgtXHUwMGY2XHUwMGY4LVx1MDJiOFx1MDMwMC1cdTA1OTBcdTA5MDAtXHUxZmZmXHUyMDBlXHUyYzAwLVx1ZDgwMVx1ZDgwNC1cdWQ4MzlcdWQ4M2MtXHVkYmZmXHVmOTAwLVx1ZmIxY1x1ZmUwMC1cdWZlNmZcdWZlZmQtXHVmZmZmXSokIik7dmFyIEdqYSxIamEsSWphO0dqYT1uZXcgXy5ibygxMiwxMik7SGphPW5ldyBfLmdvKDEzLDEzKTtJamE9bmV3IF8uYm8oMCwwKTsKXy5VcT1jbGFzcyBleHRlbmRzIF8uR3R7Y29uc3RydWN0b3IoYSl7dmFyIGI9UW0oIkNsb3NlQnV0dG9uVmlldyIsImVsZW1lbnQiLCgpPT5fLk1tKF8uRW0oSFRNTEJ1dHRvbkVsZW1lbnQsIkhUTUxCdXR0b25FbGVtZW50IikpKGEuZWxlbWVudCl8fF8uUnEoYS5sYWJlbHx8IkNsb3NlIikpO2E9ey4uLmEsZWxlbWVudDpifTtzdXBlcihhKTt0aGlzLlpzPWEuWnN8fEdqYTt0aGlzLkl1PWEuSXV8fEhqYTt0aGlzLmxhYmVsPWEubGFiZWx8fCJDbG9zZSI7dGhpcy5vd25lckVsZW1lbnQ9YS5vd25lckVsZW1lbnQ7dGhpcy5sRj1hLmxGfHwhMTt0aGlzLm9mZnNldD1hLm9mZnNldHx8SWphO2EubEZ8fCh0aGlzLmVsZW1lbnQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmVsZW1lbnQuc3R5bGUudG9wPV8ucG0odGhpcy5vZmZzZXQueSksdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0PV8ucG0odGhpcy5vZmZzZXQueCkpO2I9bmV3IF8uZ28odGhpcy5JdS53aWR0aCsyKnRoaXMuWnMueCwKdGhpcy5JdS5oZWlnaHQrMip0aGlzLlpzLnkpO18uUXAodGhpcy5lbGVtZW50LGIpO18uU3QoeWphLHRoaXMub3duZXJFbGVtZW50KTt0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ20tdWktaG92ZXItZWZmZWN0Iik7Yj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgibWFzay1pbWFnZSIsYHVybCgiJHt4amFbImNsb3NlLnN2ZyJdfSIpYCk7Yi5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIjtiLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtfLlFwKGIsdGhpcy5JdSk7Yi5zdHlsZS5tYXJnaW49YCR7dGhpcy5acy55fXB4ICR7dGhpcy5acy54fXB4YDt0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYik7dGhpcy54aShhLF8uVXEsIkNsb3NlQnV0dG9uVmlldyIpfX07dmFyIEtmYT1uZXcgU2V0O0tmYS5hZGQoImdtLXN0eWxlLWl3LWEiKTtfLllxPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLm9wdGlvbnM9YTt0aGlzLnNoPSExO3RoaXMuYmo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGlhbG9nIik7dGhpcy5yaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoZWFkZXIiKTt0aGlzLnFoPW5ldyBQdDt0aGlzLmJqLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNsb3NlIikpO3RoaXMucWgucmVtb3ZlKCl9KTt0aGlzLmJqLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixiPT57aWYoYi50YXJnZXQ9PT10aGlzLmJqKXtsZXQgYz10aGlzLmJqLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2MudG9wPD1iLmNsaWVudFkmJmIuY2xpZW50WTw9Yy5ib3R0b20mJmMubGVmdDw9Yi5jbGllbnRYJiZiLmNsaWVudFg8PWMucmlnaHR8fHRoaXMuY2xvc2UoKX19KTt0aGlzLnFoLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Cnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJnbXAtaW50ZXJuYWwtYmFjayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSk7dGhpcy5xaC5yZW1vdmUoKX0pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZ21wLWludGVybmFsLW5leHQiLGI9PntiLnN0b3BQcm9wYWdhdGlvbigpO0xmYSh0aGlzKX0pfWNvbm5lY3RlZENhbGxiYWNrKCl7aWYoIXRoaXMuc2gpe3RoaXMuYmouYXJpYUxhYmVsPXRoaXMub3B0aW9ucy50aXRsZTt0aGlzLmJqLmFwcGVuZChNZmEodGhpcykpO3ZhciBhPXRoaXMuYmosYj1hLmFwcGVuZDtsZXQgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtfLlRxKGMsImJhc2ljLWRpYWxvZy1lbGVtZW50LS1jb250ZW50Iik7Yy5hcHBlbmRDaGlsZCh0aGlzLm9wdGlvbnMuY29udGVudCk7Yi5jYWxsKGEsYyk7dGhpcy5hcHBlbmQodGhpcy5iaik7Xy5UcSh0aGlzLmJqLCJiYXNpYy1kaWFsb2ctZWxlbWVudCIpO18uU3Qod2phLHRoaXMpO3RoaXMuc2g9ITB9fWNsb3NlKCl7dGhpcy5iai5jbG9zZSgpfX07Cl8ueG8oImdtcC1pbnRlcm5hbC1kaWFsb2ciLF8uWXEpO3ZhciBKamE9Xy4kcyhbIi5kaXNjbG9zdXJlLWNvbnRhaW5lcntmb250LXNpemU6MTZweH0uc2xvdC1jb250YWluZXJ7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tb3otYm94LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtnYXA6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLW1lZGl1bSwxMnB4KX0uY29udGVudCwuc2xvdC1jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jb250ZW50e2NvbG9yOnZhcigtLWdtcC1tYXQtY29sb3Itb24tc3VyZmFjZSxsaWdodC1kYXJrKCMxZjFmMWYsI2UzZTNlMykpfS5jb250ZW50IC5kZXNjcmlwdGlvbntmb250OnZhcigtLWdtcC1tYXQtZm9udC1ib2R5LW1lZGl1bSxub3JtYWwgNDAwIC44NzVlbS8xLjQyODU3MTQyODYgdmFyKC0tZ21wLW1hdC1mb250LWZhbWlseSxHb29nbGUgU2FucyBUZXh0LHNhbnMtc2VyaWYpKTtsZXR0ZXItc3BhY2luZzouMDA3MTQyODU3MWVtO21hcmdpbi10b3A6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLXNtYWxsLDhweCl9LmNvbnRlbnQgLmhlYWRpbmd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2ZvbnQ6dmFyKC0tZ21wLW1hdC1mb250LWhlYWRsaW5lLW1lZGl1bSxub3JtYWwgNTAwIDEuMTI1ZW0vMS4zMzMzMzMzMzMzIHZhcigtLWdtcC1tYXQtZm9udC1mYW1pbHksR29vZ2xlIFNhbnMgVGV4dCxzYW5zLXNlcmlmKSk7bGV0dGVyLXNwYWNpbmc6MDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmNvbnRlbnQgLmhlYWRpbmcgc3Bhbnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1vei1ib3gtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfS5jb250ZW50IC5oZWFkaW5nOmRpcihydGwpIHN2Z3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLTEpO3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5jb250ZW50IC5oZWFkaW5nIHN2ZyBwYXRoe2ZpbGw6dmFyKC0tZ21wLW1hdC1jb2xvci1vbi1zdXJmYWNlLGxpZ2h0LWRhcmsoIzFmMWYxZiwjZTNlM2UzKSl9LmNvbnRlbnQgLmxpbmstaXRlbXtmb250OnZhcigtLWdtcC1tYXQtZm9udC1sYWJlbC1sYXJnZSxub3JtYWwgNTAwIC44NzVlbS8xLjQyODU3MTQyODYgdmFyKC0tZ21wLW1hdC1mb250LWZhbWlseSxHb29nbGUgU2FucyBUZXh0LHNhbnMtc2VyaWYpKTtsZXR0ZXItc3BhY2luZzouMDA3MTQyODU3MWVtO3BhZGRpbmc6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLWV4dHJhLXNtYWxsLDRweCkgMDt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnR9LmNvbnRlbnQgLmxpbmstaXRlbSBhey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1nbXAtbWF0LWNvbG9yLXByaW1hcnksbGlnaHQtZGFyaygjMDA3YjhiLCM1OGI5Y2EpKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdtcC1tYXQtc3BhY2luZy1leHRyYS1zbWFsbCw0cHgpO3BhZGRpbmctYmxvY2s6MTBweDtwYWRkaW5nLWlubGluZTowIDEycHg7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNvbnRlbnQgLmxpbmstaXRlbSBhIC5pY29uLWNvbnRhaW5lcntoZWlnaHQ6MWVtO3dpZHRoOjFlbX0uY29udGVudCAubGluay1pdGVtIGEgLmljb24tY29udGFpbmVyIHN2ZyBwYXRoe2ZpbGw6dmFyKC0tZ21wLW1hdC1jb2xvci1wcmltYXJ5LGxpZ2h0LWRhcmsoIzAwN2I4YiwjNThiOWNhKSl9LmNvbnRlbnQgLmxpbmtze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tZ21wLW1hdC1zcGFjaW5nLXNtYWxsLDhweCl9LmNvbnRlbnQubm8tbGlua3N7bWFyZ2luLWJvdHRvbTp2YXIoLS1nbXAtbWF0LXNwYWNpbmctc21hbGwsOHB4KX0iXSk7dmFyIFV0PWE9PiguLi5iKT0+KHtfJGxpdERpcmVjdGl2ZSQ6YSx2YWx1ZXM6Yn0pLFZ0PWNsYXNze2dldCB5cigpe3JldHVybiB0aGlzLnFoLnlyfWZMKGEsYixjKXt0aGlzLndoPWE7dGhpcy5xaD1iO3RoaXMudGg9Y31nTChhLGIpe3JldHVybiB0aGlzLnVwZGF0ZShhLGIpfXVwZGF0ZShhLGIpe3JldHVybiB0aGlzLnRpKC4uLmIpfX07LyoKCiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiovCl8uYXI9VXQoY2xhc3MgZXh0ZW5kcyBWdHtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO2lmKGEudHlwZSE9PTF8fGEubmFtZSE9PSJjbGFzcyJ8fGEud2w/Lmxlbmd0aD4yKXRocm93IEVycm9yKCJgY2xhc3NNYXAoKWAgY2FuIG9ubHkgYmUgdXNlZCBpbiB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgYW5kIG11c3QgYmUgdGhlIG9ubHkgcGFydCBpbiB0aGUgYXR0cmlidXRlLiIpO310aShhKXtyZXR1cm4iICIrT2JqZWN0LmtleXMoYSkuZmlsdGVyKGI9PmFbYl0pLmpvaW4oIiAiKSsiICJ9dXBkYXRlKGEsW2JdKXtpZih0aGlzLnJoPT09dm9pZCAwKXt0aGlzLnJoPW5ldyBTZXQ7YS53bCE9PXZvaWQgMCYmKHRoaXMuc2g9bmV3IFNldChhLndsLmpvaW4oIiAiKS5zcGxpdCgvXHMvKS5maWx0ZXIoZD0+ZCE9PSIiKSkpO2ZvcihsZXQgZCBpbiBiKWJbZF0mJiF0aGlzLnNoPy5oYXMoZCkmJnRoaXMucmguYWRkKGQpO3JldHVybiB0aGlzLnRpKGIpfWE9YS5lbGVtZW50LmNsYXNzTGlzdDtmb3IodmFyIGMgb2YgdGhpcy5yaCljIGluCmJ8fChhLnJlbW92ZShjKSx0aGlzLnJoLmRlbGV0ZShjKSk7Zm9yKGxldCBkIGluIGIpYz0hIWJbZF0sYz09PXRoaXMucmguaGFzKGQpfHx0aGlzLnNoPy5oYXMoZCl8fChjPyhhLmFkZChkKSx0aGlzLnJoLmFkZChkKSk6KGEucmVtb3ZlKGQpLHRoaXMucmguZGVsZXRlKGQpKSk7cmV0dXJuICRvfX0pO18uV3Q9Y2xhc3MgZXh0ZW5kcyBfLmR0e3RpKCl7cmV0dXJuKDAsXy5XcSlgCiAgICAgIDxkaXYgY2xhc3M9ImRpc2Nsb3N1cmUtY29udGFpbmVyIiBpZD0ibm90ZSIgcm9sZT0ibm90ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2xvdC1jb250YWluZXIiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtfLld0LnN0eWxlcz1KamE7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLFN0cmluZyldLF8uV3QucHJvdG90eXBlLCJoZWFkaW5nIix2b2lkIDApO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxfLld0LnByb3RvdHlwZSwiZGVzY3JpcHRpb24iLHZvaWQgMCk7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLFN0cmluZyldLF8uV3QucHJvdG90eXBlLCJocmVmIix2b2lkIDApO18uWHQ9Y2xhc3MgZXh0ZW5kcyBfLmR0e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLmxpbmtzPVtdO3RoaXMuc2hvd0FjY2Vzc29yeUljb249ITF9dGkoKXt2YXIgYT1OZmEodGhpcyksYj0oMCxfLmFyKSh7Y29udGVudDohMCwibm8tbGlua3MiOiFhfSk7cmV0dXJuKDAsXy5XcSlgCiAgICAgIDxkaXYgY2xhc3M9JHtifT4KICAgICAgICAke3RoaXMuaGVhZGluZz8oMCxfLldxKWAgPGRpdiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICAgICAgPHNwYW4+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgICAgICAgICR7dGhpcy5zaG93QWNjZXNzb3J5SWNvbj8oMCxfLldxKWAkeygwLF8uV3EpYDxzdmcgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIj48cGF0aCBkPSJNNDAwLTI4MHYtNDAwbDIwMCAyMDB6Ii8+PC9zdmc+YH1gOiIifQogICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj8oMCxfLldxKWA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiIKICAgICAgICAgICAgICA+PHNwYW4+JHt0aGlzLmRlc2NyaXB0aW9ufTwvc3Bhbj48L2RpdgogICAgICAgICAgICA+YDoiIn0KICAgICAgICAke2E/KDAsXy5XcSlgPGRpdiBjbGFzcz0ibGlua3MiPiR7YX08L2Rpdj5gOiIifQogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfX07Xy5YdC5zdHlsZXM9SmphO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixTdHJpbmcpXSxfLlh0LnByb3RvdHlwZSwiaGVhZGluZyIsdm9pZCAwKTtfLkQoW18udHEoe0toOiExfSksXy5GKCJkZXNpZ246dHlwZSIsU3RyaW5nKV0sXy5YdC5wcm90b3R5cGUsImRlc2NyaXB0aW9uIix2b2lkIDApO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixBcnJheSldLF8uWHQucHJvdG90eXBlLCJsaW5rcyIsdm9pZCAwKTtfLkQoW18udHEoe0toOiExfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sXy5YdC5wcm90b3R5cGUsInNob3dBY2Nlc3NvcnlJY29uIix2b2lkIDApO18ueG8oImdtcC1pbnRlcm5hbC1kaXNjbG9zdXJlIixfLld0KTtfLnhvKCJnbXAtaW50ZXJuYWwtZGlzY2xvc3VyZS1zZWN0aW9uIixfLlh0KTtfLktqYT0oMCxfLldxKWAKICA8Z21wLWludGVybmFsLWRpc2Nsb3N1cmUtc2VjdGlvbgogICAgLmhlYWRpbmc9JHsiR29vZ2xlIE1hcHMgVGVybXMifQogICAgLmxpbmtzPSR7W3t0ZXh0OiJUZXJtcyIsaHJlZjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9oZWxwL3Rlcm1zX21hcHMvIn0se3RleHQ6IlByaXZhY3kiLGhyZWY6Imh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS9wcml2YWN5In1dfT4KICA8L2dtcC1pbnRlcm5hbC1kaXNjbG9zdXJlLXNlY3Rpb24+CmA7Xy5ZdD1VdChjbGFzcyBleHRlbmRzIFZ0e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7aWYoYS50eXBlIT09MXx8YS5uYW1lIT09InN0eWxlInx8YS53bD8ubGVuZ3RoPjIpdGhyb3cgRXJyb3IoIlRoZSBgc3R5bGVNYXBgIGRpcmVjdGl2ZSBtdXN0IGJlIHVzZWQgaW4gdGhlIGBzdHlsZWAgYXR0cmlidXRlIGFuZCBtdXN0IGJlIHRoZSBvbmx5IHBhcnQgaW4gdGhlIGF0dHJpYnV0ZS4iKTt9dGkoYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLnJlZHVjZSgoYixjKT0+e3ZhciBkPWFbY107aWYoZD09bnVsbClyZXR1cm4gYjtjPWMuaW5jbHVkZXMoIi0iKT9jOmMucmVwbGFjZSgvKD86Xih3ZWJraXR8bW96fG1zfG8pfCkoPz1bQS1aXSkvZywiLSQmIikudG9Mb3dlckNhc2UoKTtyZXR1cm4gYitgJHtjfToke2R9O2B9LCIiKX11cGRhdGUoYSxbYl0pe2E9YS5lbGVtZW50LnN0eWxlO3RoaXMucmg9PT12b2lkIDAmJih0aGlzLnJoPW5ldyBTZXQpO2Zvcih2YXIgYyBvZiB0aGlzLnJoKWJbY109PQpudWxsJiYodGhpcy5yaC5kZWxldGUoYyksYy5pbmNsdWRlcygiLSIpP2EucmVtb3ZlUHJvcGVydHkoYyk6YVtjXT1udWxsKTtmb3IobGV0IGQgaW4gYilpZihjPWJbZF0sYyE9bnVsbCl7dGhpcy5yaC5hZGQoZCk7bGV0IGU9dHlwZW9mIGM9PT0ic3RyaW5nIiYmYy5lbmRzV2l0aCgiICFpbXBvcnRhbnQiKTtkLmluY2x1ZGVzKCItIil8fGU/YS5zZXRQcm9wZXJ0eShkLGU/Yy5zbGljZSgwLC0xMSk6YyxlPyJpbXBvcnRhbnQiOiIiKTphW2RdPWN9cmV0dXJuICRvfX0pO18uWnQ9Y2xhc3MgZXh0ZW5kcyBfLmR0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLmF0dHJpYnV0aW9uVHlwZT0iTE9HTyI7dGhpcy5pbmZvQnV0dG9uVGFwQXJlYUV4cGFuZGVkPSExO3RoaXMubG9nb0NvbG9yT3B0aW9ucz17Snk6IiM1ZTVlNWUiLEt4OiIjZmZmIn07dGhpcy5zaG93VGVybXNPZlNlcnZpY2U9dGhpcy5zaG93SW5mb0J1dHRvbj0hMDt0aGlzLmRpc2Nsb3N1cmVDb250ZW50PVtdO3RoaXMuYXR0cmlidXRpb25UZXh0PSJHb29nbGUgTWFwcyI7dGhpcy5hdHRyaWJ1dGlvbkZvbnQ9IkJPRFlfU01BTEwiO3RoaXMubW9yZUluZm9CdXR0b25UaXRsZT0iQWJvdXQgR29vZ2xlIE1hcHMgY29udGVudCI7dGhpcy5sb2dvTGlua09wdGlvbnM9dm9pZCAwO3RoaXMucmg9bmV3IF8uV3Q7dGhpcy5xaD1PZmEodGhpcyk7Xy5IbCgidXRpbCIpLnRoZW4oYT0+e2EuQXIoKX0pfWhtKGEpe2lmKGEuaGFzKCJzaG93VGVybXNPZlNlcnZpY2UiKXx8YS5oYXMoImRpc2Nsb3N1cmVDb250ZW50IikpYT0KWy4uLnRoaXMuZGlzY2xvc3VyZUNvbnRlbnRdLHRoaXMuc2hvd1Rlcm1zT2ZTZXJ2aWNlJiZhLnB1c2goXy5LamEpLF8uWHMoKDAsXy5XcSlgJHthfWAsdGhpcy5yaCl9dGkoKXt2YXIgYT10aGlzLmxvZ29Db2xvck9wdGlvbnMuSnl8fCIjNWU1ZTVlIixiPXRoaXMubG9nb0NvbG9yT3B0aW9ucy5LeHx8IiNmZmYiLGM9WnEoYSksZD1acShiKSxlPXRoaXMuYXR0cmlidXRpb25UZXh0IT09Ikdvb2dsZSBNYXBzIj97fTp7Ii0tZ21wLWludGVybmFsLWF0dHJpYnV0aW9uLWNvbG9yIjpgbGlnaHQtZGFyaygke3RoaXMubG9nb0NvbG9yT3B0aW9ucy5KeXx8IiM1ZTVlNWUifSwgJHt0aGlzLmxvZ29Db2xvck9wdGlvbnMuS3h8fCIjZmZmIn0pYH07c3dpdGNoKHRoaXMuYXR0cmlidXRpb25UeXBlKXtjYXNlICJMT0dPIjphPXRqYSh7Y2xhc3NOYW1lOiJhdHRyaWJ1dGlvbl9fbG9nby0tZGVmYXVsdCIsZmlsbDpgbGlnaHQtZGFyaygke2F9LCAke2J9KWB9KTticmVhaztjYXNlICJMT0dPX09VVExJTkUiOmE9CnVqYSh7Y2xhc3NOYW1lOiJhdHRyaWJ1dGlvbl9fbG9nby0tb3V0bGluZSIsZmlsbDpgbGlnaHQtZGFyaygke2F9LCAke2J9KWAsb3V0bGluZTpgbGlnaHQtZGFyaygke2N9LCAke2R9KWB9KTticmVhaztkZWZhdWx0OmE9KDAsXy5XcSlgIDxzcGFuCiAgICAgICAgICB0cmFuc2xhdGU9Im5vIgogICAgICAgICAgY2xhc3M9IiR7KDAsXy5hcikoeyJhdHRyaWJ1dGlvbi10ZXh0IjohMCwiZm9udC0tYm9keS1zbWFsbCI6dGhpcy5hdHRyaWJ1dGlvbkZvbnQ9PT0iQk9EWV9TTUFMTCIsImZvbnQtLWJvZHktbWVkaXVtIjp0aGlzLmF0dHJpYnV0aW9uRm9udD09PSJCT0RZX01FRElVTSJ9KX0iCiAgICAgICAgICBzdHlsZT0iY29sb3I6IGxpZ2h0LWRhcmsoJHthfSwgJHtifSkiCiAgICAgICAgICA+JHt0aGlzLmF0dHJpYnV0aW9uVGV4dH08L3NwYW4KICAgICAgICA+YH10aGlzLmxvZ29MaW5rT3B0aW9ucyYmKGE9KDAsXy5XcSlgIDxhCiAgICAgICAgYXJpYS1sYWJlbD0iJHtfLlFxKHRoaXMubG9nb0xpbmtPcHRpb25zLnRpdGxlKX0iCiAgICAgICAgaHJlZj0iJHt0aGlzLmxvZ29MaW5rT3B0aW9ucy51cmwuaHJlZn0iCiAgICAgICAgcmVsPSJub29wZW5lciIKICAgICAgICB0YXJnZXQ9Il9ibGFuayIKICAgICAgICB0aXRsZT0iJHtfLlFxKHRoaXMubG9nb0xpbmtPcHRpb25zLnRpdGxlKX0iPgogICAgICAgICR7YX0KICAgICAgPC9hPmApO2I9UWZhKHRoaXMsdGhpcy5xaCk7cmV0dXJuKDAsXy5XcSlgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0keygwLF8uWXQpKGUpfT4KICAgICAgICAke2F9JHtifSA8L2RpdgogICAgICA+JHt0aGlzLnFofWB9fTtfLlp0LnN0eWxlcz12amE7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLFN0cmluZyldLF8uWnQucHJvdG90eXBlLCJhdHRyaWJ1dGlvblR5cGUiLHZvaWQgMCk7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCldLF8uWnQucHJvdG90eXBlLCJpbmZvQnV0dG9uVGFwQXJlYUV4cGFuZGVkIix2b2lkIDApO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixPYmplY3QpXSxfLlp0LnByb3RvdHlwZSwibG9nb0NvbG9yT3B0aW9ucyIsdm9pZCAwKTtfLkQoW18udHEoe0toOiExfSksXy5GKCJkZXNpZ246dHlwZSIsT2JqZWN0KV0sXy5adC5wcm90b3R5cGUsInNob3dJbmZvQnV0dG9uIix2b2lkIDApO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixPYmplY3QpXSxfLlp0LnByb3RvdHlwZSwic2hvd1Rlcm1zT2ZTZXJ2aWNlIix2b2lkIDApOwpfLkQoW18udHEoe0toOiExfSksXy5GKCJkZXNpZ246dHlwZSIsQXJyYXkpXSxfLlp0LnByb3RvdHlwZSwiZGlzY2xvc3VyZUNvbnRlbnQiLHZvaWQgMCk7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCldLF8uWnQucHJvdG90eXBlLCJhdHRyaWJ1dGlvblRleHQiLHZvaWQgMCk7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLE9iamVjdCldLF8uWnQucHJvdG90eXBlLCJhdHRyaWJ1dGlvbkZvbnQiLHZvaWQgMCk7Xy5EKFtfLnRxKHtLaDohMX0pLF8uRigiZGVzaWduOnR5cGUiLFN0cmluZyldLF8uWnQucHJvdG90eXBlLCJtb3JlSW5mb0J1dHRvblRpdGxlIix2b2lkIDApO18uRChbXy50cSh7S2g6ITF9KSxfLkYoImRlc2lnbjp0eXBlIixPYmplY3QpXSxfLlp0LnByb3RvdHlwZSwibG9nb0xpbmtPcHRpb25zIix2b2lkIDApO18ueG8oImdtcC1pbnRlcm5hbC1hdHRyaWJ1dGlvbiIsXy5adCk7dmFyIExqYT1jbGFzc3tjb25zdHJ1Y3RvcihhPXt9KXt0aGlzLmhlYWRlcnM9e1siWC1Hb29nLUFwaS1LZXkiXTpfLkpsPy50aCgpfHwiIixbIkNvbnRlbnQtVHlwZSJdOiJhcHBsaWNhdGlvbi9qc29uK3Byb3RvYnVmIixbIlgtR29vZy1NYXBzLUNoYW5uZWwtSWQiXTpfLkpsPy55aCgpfHwiIiwuLi5hfX19O3ZhciBNamE9Y2xhc3MgZXh0ZW5kcyBMamF7Y29uc3RydWN0b3IoKXtzdXBlcih7fSl9aW50ZXJjZXB0KGEsYil7VmZhKHRoaXMsYSk7cmV0dXJuIGIoYSl9fTtfLiR0PWNsYXNzIGV4dGVuZHMgTGphe2NvbnN0cnVjdG9yKGE9e30pe3N1cGVyKGEpfWFzeW5jIGludGVyY2VwdChhLGIpe1ZmYSh0aGlzLGEpO2F3YWl0IFhmYShhKTtyZXR1cm4gYihhKX19O18uYXU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnFoPW5ldyAodGhpcy50aCgpKSh0aGlzLnNoKCksbnVsbCx7d2l0aENyZWRlbnRpYWxzOiExLHhGOl8udm0oImdJbnRlcm5hbE5vQ29yc1ByZWZsaWdodEZvclRlc3RpbmciKT09PSJ0cnVlIixIRjp0aGlzLnJoKCksdkY6dGhpcy53aCgpfSl9cmgoKXtyZXR1cm5bbmV3IF8uJHRdfXdoKCl7cmV0dXJuW25ldyBNamFdfX07Xy5idT1uZXcgTWFwO18uY3U9bmV3IE1hcDtfLmR1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOy8qCgogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQoqLwp2YXIgTmphPXt9O18uT2phPVV0KGNsYXNzIGV4dGVuZHMgVnR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpO3RoaXMua2V5PV8uU3N9dGkoYSxiKXt0aGlzLmtleT1hO3JldHVybiBifXVwZGF0ZShhLFtiLGNdKXtiIT09dGhpcy5rZXkmJihhLmtrPU5qYSx0aGlzLmtleT1iKTtyZXR1cm4gY319KTtTeW1ib2wuZm9yKCIiKTt2YXIgQWZhPWFyZ3VtZW50c1swXSxqZ2E9bmV3IF8uS2s7Xy5VYS5nb29nbGUubWFwcy5Mb2FkJiZfLlVhLmdvb2dsZS5tYXBzLkxvYWQoaWdhKTt9KS5jYWxsKHRoaXMse30pOwoK"}},"time_used":310,"timings":{"blocked":-1,"dns":2,"connect":8,"send":0,"wait":254,"receive":22,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/bootstrap.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.840Z","timestamp":1785126645840,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/bootstrap.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9521\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":37051,"size_decoded":9776,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32039)","md5":"a6b40b3ce40edb17d2a7504a14584679","sha1":"ba02f42b09dae9954e8ce169bcfd56c8363ffc40","sha256":"948d847179045bed3e8e2a13621680921366e4a6fdca222693f4a465eb5c7a7c","sha512":"ea770c8fbeeafd4c6824ff8e4cf0dd81735118838217e658101a59ab2121d74bf1f5d0624b249c796b8a859a565268023375096dabdd9c0935a0e60df6e53e3f","ssdeep":"768:o2rGy27UwlNqMl95qNmCFejhqs8snmiOCSFXfbx8Gf3Zq7Q:Jg73zhq02vbJ3ZKQ","tlshash":"fbf28606b23031a147efb1e1525b020e7239696ee906907c78b99af53db9c48717bf3d","first_seen":"2023-03-07T01:10:50Z","last_seen":"2026-07-27T07:48:14.784507Z","times_seen":450,"resource_available":true,"data":"LyohCiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE2IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MXx8YlswXT4zKXRocm93IG5ldyBFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXIsIGJ1dCBsb3dlciB0aGFuIHZlcnNpb24gNCIpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvb3RzdHJhcCIpLGI9e1dlYmtpdFRyYW5zaXRpb246IndlYmtpdFRyYW5zaXRpb25FbmQiLE1velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCIsdHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCJ9O2Zvcih2YXIgYyBpbiBiKWlmKHZvaWQgMCE9PWEuc3R5bGVbY10pcmV0dXJue2VuZDpiW2NdfTtyZXR1cm4hMX1hLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGIpe3ZhciBjPSExLGQ9dGhpczthKHRoaXMpLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2M9ITB9KTt2YXIgZT1mdW5jdGlvbigpe2N8fGEoZCkudHJpZ2dlcihhLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfTtyZXR1cm4gc2V0VGltZW91dChlLGIpLHRoaXN9LGEoZnVuY3Rpb24oKXthLnN1cHBvcnQudHJhbnNpdGlvbj1iKCksYS5zdXBwb3J0LnRyYW5zaXRpb24mJihhLmV2ZW50LnNwZWNpYWwuYnNUcmFuc2l0aW9uRW5kPXtiaW5kVHlwZTphLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsZGVsZWdhdGVUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxoYW5kbGU6ZnVuY3Rpb24oYil7aWYoYShiLnRhcmdldCkuaXModGhpcykpcmV0dXJuIGIuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjciLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YSgiIyI9PT1mP1tdOmYpO2ImJmIucHJldmVudERlZmF1bHQoKSxnLmxlbmd0aHx8KGc9ZS5jbG9zZXN0KCIuYWxlcnQiKSksZy50cmlnZ2VyKGI9YS5FdmVudCgiY2xvc2UuYnMuYWxlcnQiKSksYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KGcucmVtb3ZlQ2xhc3MoImluIiksYS5zdXBwb3J0LnRyYW5zaXRpb24mJmcuaGFzQ2xhc3MoImZhZGUiKT9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixjKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmMoKSl9O3ZhciBlPWEuZm4uYWxlcnQ7YS5mbi5hbGVydD1iLGEuZm4uYWxlcnQuQ29uc3RydWN0b3I9ZCxhLmZuLmFsZXJ0Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5hbGVydD1lLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5hbGVydC5kYXRhLWFwaSIsYyxkLnByb3RvdHlwZS5jbG9zZSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5idXR0b24iKSxmPSJvYmplY3QiPT10eXBlb2YgYiYmYjtlfHxkLmRhdGEoImJzLmJ1dHRvbiIsZT1uZXcgYyh0aGlzLGYpKSwidG9nZ2xlIj09Yj9lLnRvZ2dsZSgpOmImJmUuc2V0U3RhdGUoYil9KX12YXIgYz1mdW5jdGlvbihiLGQpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxkKSx0aGlzLmlzTG9hZGluZz0hMX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5ERUZBVUxUUz17bG9hZGluZ1RleHQ6ImxvYWRpbmcuLi4ifSxjLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihiKXt2YXIgYz0iZGlzYWJsZWQiLGQ9dGhpcy4kZWxlbWVudCxlPWQuaXMoImlucHV0Iik/InZhbCI6Imh0bWwiLGY9ZC5kYXRhKCk7Yis9IlRleHQiLG51bGw9PWYucmVzZXRUZXh0JiZkLmRhdGEoInJlc2V0VGV4dCIsZFtlXSgpKSxzZXRUaW1lb3V0KGEucHJveHkoZnVuY3Rpb24oKXtkW2VdKG51bGw9PWZbYl0/dGhpcy5vcHRpb25zW2JdOmZbYl0pLCJsb2FkaW5nVGV4dCI9PWI/KHRoaXMuaXNMb2FkaW5nPSEwLGQuYWRkQ2xhc3MoYykuYXR0cihjLGMpLnByb3AoYywhMCkpOnRoaXMuaXNMb2FkaW5nJiYodGhpcy5pc0xvYWRpbmc9ITEsZC5yZW1vdmVDbGFzcyhjKS5yZW1vdmVBdHRyKGMpLnByb3AoYywhMSkpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KS5jbG9zZXN0KCIuYnRuIik7Yi5jYWxsKGQsInRvZ2dsZSIpLGEoYy50YXJnZXQpLmlzKCdpbnB1dFt0eXBlPSJyYWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdJyl8fChjLnByZXZlbnREZWZhdWx0KCksZC5pcygiaW5wdXQsYnV0dG9uIik/ZC50cmlnZ2VyKCJmb2N1cyIpOmQuZmluZCgiaW5wdXQ6dmlzaWJsZSxidXR0b246dmlzaWJsZSIpLmZpcnN0KCkudHJpZ2dlcigiZm9jdXMiKSl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjciLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO2lmKCEoYT50aGlzLiRpdGVtcy5sZW5ndGgtMXx8YTwwKSlyZXR1cm4gdGhpcy5zbGlkaW5nP3RoaXMuJGVsZW1lbnQub25lKCJzbGlkLmJzLmNhcm91c2VsIixmdW5jdGlvbigpe2IudG8oYSl9KTpjPT1hP3RoaXMucGF1c2UoKS5jeWNsZSgpOnRoaXMuc2xpZGUoYT5jPyJuZXh0IjoicHJldiIsdGhpcy4kaXRlbXMuZXEoYSkpfSxjLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSEwKSx0aGlzLiRlbGVtZW50LmZpbmQoIi5uZXh0LCAucHJldiIpLmxlbmd0aCYmYS5zdXBwb3J0LnRyYW5zaXRpb24mJih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSx0aGlzLmN5Y2xlKCEwKSksdGhpcy5pbnRlcnZhbD1jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXN9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKCJuZXh0Iil9LGMucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKCJwcmV2Iil9LGMucHJvdG90eXBlLnNsaWRlPWZ1bmN0aW9uKGIsZCl7dmFyIGU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSxmPWR8fHRoaXMuZ2V0SXRlbUZvckRpcmVjdGlvbihiLGUpLGc9dGhpcy5pbnRlcnZhbCxoPSJuZXh0Ij09Yj8ibGVmdCI6InJpZ2h0IixpPXRoaXM7aWYoZi5oYXNDbGFzcygiYWN0aXZlIikpcmV0dXJuIHRoaXMuc2xpZGluZz0hMTt2YXIgaj1mWzBdLGs9YS5FdmVudCgic2xpZGUuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmosZGlyZWN0aW9uOmh9KTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoayksIWsuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKHRoaXMuc2xpZGluZz0hMCxnJiZ0aGlzLnBhdXNlKCksdGhpcy4kaW5kaWNhdG9ycy5sZW5ndGgpe3RoaXMuJGluZGljYXRvcnMuZmluZCgiLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTt2YXIgbD1hKHRoaXMuJGluZGljYXRvcnMuY2hpbGRyZW4oKVt0aGlzLmdldEl0ZW1JbmRleChmKV0pO2wmJmwuYWRkQ2xhc3MoImFjdGl2ZSIpfXZhciBtPWEuRXZlbnQoInNsaWQuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmosZGlyZWN0aW9uOmh9KTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoInNsaWRlIik/KGYuYWRkQ2xhc3MoYiksZlswXS5vZmZzZXRXaWR0aCxlLmFkZENsYXNzKGgpLGYuYWRkQ2xhc3MoaCksZS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKFtiLGhdLmpvaW4oIiAiKSkuYWRkQ2xhc3MoImFjdGl2ZSIpLGUucmVtb3ZlQ2xhc3MoWyJhY3RpdmUiLGhdLmpvaW4oIiAiKSksaS5zbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLiRlbGVtZW50LnRyaWdnZXIobSl9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKSk6KGUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLGYuYWRkQ2xhc3MoImFjdGl2ZSIpLHRoaXMuc2xpZGluZz0hMSx0aGlzLiRlbGVtZW50LnRyaWdnZXIobSkpLGcmJnRoaXMuY3ljbGUoKSx0aGlzfX07dmFyIGQ9YS5mbi5jYXJvdXNlbDthLmZuLmNhcm91c2VsPWIsYS5mbi5jYXJvdXNlbC5Db25zdHJ1Y3Rvcj1jLGEuZm4uY2Fyb3VzZWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNhcm91c2VsPWQsdGhpc307dmFyIGU9ZnVuY3Rpb24oYyl7dmFyIGQsZT1hKHRoaXMpLGY9YShlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fChkPWUuYXR0cigiaHJlZiIpKSYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKTtpZihmLmhhc0NsYXNzKCJjYXJvdXNlbCIpKXt2YXIgZz1hLmV4dGVuZCh7fSxmLmRhdGEoKSxlLmRhdGEoKSksaD1lLmF0dHIoImRhdGEtc2xpZGUtdG8iKTtoJiYoZy5pbnRlcnZhbD0hMSksYi5jYWxsKGYsZyksaCYmZi5kYXRhKCJicy5jYXJvdXNlbCIpLnRvKGgpLGMucHJldmVudERlZmF1bHQoKX19O2EoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlXSIsZSkub24oImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpIiwiW2RhdGEtc2xpZGUtdG9dIixlKSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtcmlkZT0iY2Fyb3VzZWwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpO2IuY2FsbChjLGMuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjLGQ9Yi5hdHRyKCJkYXRhLXRhcmdldCIpfHwoYz1iLmF0dHIoImhyZWYiKSkmJmMucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKTtyZXR1cm4gYShkKX1mdW5jdGlvbiBjKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5jb2xsYXBzZSIpLGY9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpOyFlJiZmLnRvZ2dsZSYmL3Nob3d8aGlkZS8udGVzdChiKSYmKGYudG9nZ2xlPSExKSxlfHxjLmRhdGEoImJzLmNvbGxhcHNlIixlPW5ldyBkKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpfSl9dmFyIGQ9ZnVuY3Rpb24oYixjKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYyksdGhpcy4kdHJpZ2dlcj1hKCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl1baHJlZj0iIycrYi5pZCsnIl0sW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtdGFyZ2V0PSIjJytiLmlkKyciXScpLHRoaXMudHJhbnNpdGlvbmluZz1udWxsLHRoaXMub3B0aW9ucy5wYXJlbnQ/dGhpcy4kcGFyZW50PXRoaXMuZ2V0UGFyZW50KCk6dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy4kZWxlbWVudCx0aGlzLiR0cmlnZ2VyKSx0aGlzLm9wdGlvbnMudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfTtkLlZFUlNJT049IjMuMy43IixkLlRSQU5TSVRJT05fRFVSQVRJT049MzUwLGQuREVGQVVMVFM9e3RvZ2dsZTohMH0sZC5wcm90b3R5cGUuZGltZW5zaW9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudC5oYXNDbGFzcygid2lkdGgiKTtyZXR1cm4gYT8id2lkdGgiOiJoZWlnaHQifSxkLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7aWYoIXRoaXMudHJhbnNpdGlvbmluZyYmIXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiLGU9dGhpcy4kcGFyZW50JiZ0aGlzLiRwYXJlbnQuY2hpbGRyZW4oIi5wYW5lbCIpLmNoaWxkcmVuKCIuaW4sIC5jb2xsYXBzaW5nIik7aWYoIShlJiZlLmxlbmd0aCYmKGI9ZS5kYXRhKCJicy5jb2xsYXBzZSIpLGImJmIudHJhbnNpdGlvbmluZykpKXt2YXIgZj1hLkV2ZW50KCJzaG93LmJzLmNvbGxhcHNlIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGYpLCFmLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtlJiZlLmxlbmd0aCYmKGMuY2FsbChlLCJoaWRlIiksYnx8ZS5kYXRhKCJicy5jb2xsYXBzZSIsbnVsbCkpO3ZhciBnPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2UiKS5hZGRDbGFzcygiY29sbGFwc2luZyIpW2ddKDApLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKSx0aGlzLiR0cmlnZ2VyLnJlbW92ZUNsYXNzKCJjb2xsYXBzZWQiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy50cmFuc2l0aW9uaW5nPTE7dmFyIGg9ZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzaW5nIikuYWRkQ2xhc3MoImNvbGxhcHNlIGluIilbZ10oIiIpLHRoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuY29sbGFwc2UiKX07aWYoIWEuc3VwcG9ydC50cmFuc2l0aW9uKXJldHVybiBoLmNhbGwodGhpcyk7dmFyIGk9YS5jYW1lbENhc2UoWyJzY3JvbGwiLGddLmpvaW4oIi0iKSk7dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShoLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pW2ddKHRoaXMuJGVsZW1lbnRbMF1baV0pfX19fSxkLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKCl7aWYoIXRoaXMudHJhbnNpdGlvbmluZyYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiaW4iKSl7dmFyIGI9YS5FdmVudCgiaGlkZS5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSwhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGM9dGhpcy5kaW1lbnNpb24oKTt0aGlzLiRlbGVtZW50W2NdKHRoaXMuJGVsZW1lbnRbY10oKSlbMF0ub2Zmc2V0SGVpZ2h0LHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoImNvbGxhcHNpbmciKS5yZW1vdmVDbGFzcygiY29sbGFwc2UgaW4iKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSksdGhpcy4kdHJpZ2dlci5hZGRDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBlPWZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSIpLnRyaWdnZXIoImhpZGRlbi5icy5jb2xsYXBzZSIpfTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24/dm9pZCB0aGlzLiRlbGVtZW50W2NdKDApLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixhLnByb3h5KGUsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTik6ZS5jYWxsKHRoaXMpfX19LGQucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXNbdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiaW4iKT8iaGlkZSI6InNob3ciXSgpfSxkLnByb3RvdHlwZS5nZXRQYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzLm9wdGlvbnMucGFyZW50KS5maW5kKCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl1bZGF0YS1wYXJlbnQ9IicrdGhpcy5vcHRpb25zLnBhcmVudCsnIl0nKS5lYWNoKGEucHJveHkoZnVuY3Rpb24oYyxkKXt2YXIgZT1hKGQpO3RoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGIoZSksZSl9LHRoaXMpKS5lbmQoKX0sZC5wcm90b3R5cGUuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oYXNDbGFzcygiaW4iKTthLmF0dHIoImFyaWEtZXhwYW5kZWQiLGMpLGIudG9nZ2xlQ2xhc3MoImNvbGxhcHNlZCIsIWMpLmF0dHIoImFyaWEtZXhwYW5kZWQiLGMpfTt2YXIgZT1hLmZuLmNvbGxhcHNlO2EuZm4uY29sbGFwc2U9YyxhLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yPWQsYS5mbi5jb2xsYXBzZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uY29sbGFwc2U9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY29sbGFwc2UuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl0nLGZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7ZS5hdHRyKCJkYXRhLXRhcmdldCIpfHxkLnByZXZlbnREZWZhdWx0KCk7dmFyIGY9YihlKSxnPWYuZGF0YSgiYnMuY29sbGFwc2UiKSxoPWc/InRvZ2dsZSI6ZS5kYXRhKCk7Yy5jYWxsKGYsaCl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7dmFyIGM9Yi5hdHRyKCJkYXRhLXRhcmdldCIpO2N8fChjPWIuYXR0cigiaHJlZiIpLGM9YyYmLyNbQS1aYS16XS8udGVzdChjKSYmYy5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKTt2YXIgZD1jJiZhKGMpO3JldHVybiBkJiZkLmxlbmd0aD9kOmIucGFyZW50KCl9ZnVuY3Rpb24gYyhjKXtjJiYzPT09Yy53aGljaHx8KGEoZSkucmVtb3ZlKCksYShmKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWIoZCksZj17cmVsYXRlZFRhcmdldDp0aGlzfTtlLmhhc0NsYXNzKCJvcGVuIikmJihjJiYiY2xpY2siPT1jLnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoYy50YXJnZXQudGFnTmFtZSkmJmEuY29udGFpbnMoZVswXSxjLnRhcmdldCl8fChlLnRyaWdnZXIoYz1hLkV2ZW50KCJoaWRlLmJzLmRyb3Bkb3duIixmKSksYy5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KGQuYXR0cigiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksZS5yZW1vdmVDbGFzcygib3BlbiIpLnRyaWdnZXIoYS5FdmVudCgiaGlkZGVuLmJzLmRyb3Bkb3duIixmKSkpKSl9KSl9ZnVuY3Rpb24gZChiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxkPWMuZGF0YSgiYnMuZHJvcGRvd24iKTtkfHxjLmRhdGEoImJzLmRyb3Bkb3duIixkPW5ldyBnKHRoaXMpKSwic3RyaW5nIj09dHlwZW9mIGImJmRbYl0uY2FsbChjKX0pfXZhciBlPSIuZHJvcGRvd24tYmFja2Ryb3AiLGY9J1tkYXRhLXRvZ2dsZT0iZHJvcGRvd24iXScsZz1mdW5jdGlvbihiKXthKGIpLm9uKCJjbGljay5icy5kcm9wZG93biIsdGhpcy50b2dnbGUpfTtnLlZFUlNJT049IjMuMy43IixnLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oZCl7dmFyIGU9YSh0aGlzKTtpZighZS5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGY9YihlKSxnPWYuaGFzQ2xhc3MoIm9wZW4iKTtpZihjKCksIWcpeyJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYhZi5jbG9zZXN0KCIubmF2YmFyLW5hdiIpLmxlbmd0aCYmYShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuYWRkQ2xhc3MoImRyb3Bkb3duLWJhY2tkcm9wIikuaW5zZXJ0QWZ0ZXIoYSh0aGlzKSkub24oImNsaWNrIixjKTt2YXIgaD17cmVsYXRlZFRhcmdldDp0aGlzfTtpZihmLnRyaWdnZXIoZD1hLkV2ZW50KCJzaG93LmJzLmRyb3Bkb3duIixoKSksZC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47ZS50cmlnZ2VyKCJmb2N1cyIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIiksZi50b2dnbGVDbGFzcygib3BlbiIpLnRyaWdnZXIoYS5FdmVudCgic2hvd24uYnMuZHJvcGRvd24iLGgpKX1yZXR1cm4hMX19LGcucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24oYyl7aWYoLygzOHw0MHwyN3wzMikvLnRlc3QoYy53aGljaCkmJiEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpKXt2YXIgZD1hKHRoaXMpO2lmKGMucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLCFkLmlzKCIuZGlzYWJsZWQsIDpkaXNhYmxlZCIpKXt2YXIgZT1iKGQpLGc9ZS5oYXNDbGFzcygib3BlbiIpO2lmKCFnJiYyNyE9Yy53aGljaHx8ZyYmMjc9PWMud2hpY2gpcmV0dXJuIDI3PT1jLndoaWNoJiZlLmZpbmQoZikudHJpZ2dlcigiZm9jdXMiKSxkLnRyaWdnZXIoImNsaWNrIik7dmFyIGg9IiBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEiLGk9ZS5maW5kKCIuZHJvcGRvd24tbWVudSIraCk7aWYoaS5sZW5ndGgpe3ZhciBqPWkuaW5kZXgoYy50YXJnZXQpOzM4PT1jLndoaWNoJiZqPjAmJmotLSw0MD09Yy53aGljaCYmajxpLmxlbmd0aC0xJiZqKyssfmp8fChqPTApLGkuZXEoaikudHJpZ2dlcigiZm9jdXMiKX19fX07dmFyIGg9YS5mbi5kcm9wZG93bjthLmZuLmRyb3Bkb3duPWQsYS5mbi5kcm9wZG93bi5Db25zdHJ1Y3Rvcj1nLGEuZm4uZHJvcGRvd24ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmRyb3Bkb3duPWgsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixjKS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLCIuZHJvcGRvd24gZm9ybSIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS50b2dnbGUpLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixmLGcucHJvdG90eXBlLmtleWRvd24pLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duLW1lbnUiLGcucHJvdG90eXBlLmtleWRvd24pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiLGQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1hKHRoaXMpLGY9ZS5kYXRhKCJicy5tb2RhbCIpLGc9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxlLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpO2Z8fGUuZGF0YSgiYnMubW9kYWwiLGY9bmV3IGModGhpcyxnKSksInN0cmluZyI9PXR5cGVvZiBiP2ZbYl0oZCk6Zy5zaG93JiZmLnNob3coZCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMub3B0aW9ucz1jLHRoaXMuJGJvZHk9YShkb2N1bWVudC5ib2R5KSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy4kZGlhbG9nPXRoaXMuJGVsZW1lbnQuZmluZCgiLm1vZGFsLWRpYWxvZyIpLHRoaXMuJGJhY2tkcm9wPW51bGwsdGhpcy5pc1Nob3duPW51bGwsdGhpcy5vcmlnaW5hbEJvZHlQYWQ9bnVsbCx0aGlzLnNjcm9sbGJhcldpZHRoPTAsdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrPSExLHRoaXMub3B0aW9ucy5yZW1vdGUmJnRoaXMuJGVsZW1lbnQuZmluZCgiLm1vZGFsLWNvbnRlbnQiKS5sb2FkKHRoaXMub3B0aW9ucy5yZW1vdGUsYS5wcm94eShmdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcigibG9hZGVkLmJzLm1vZGFsIil9LHRoaXMpKX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTMwMCxjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLHNob3c6ITB9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyhhKX0sYy5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbihiKXt2YXIgZD10aGlzLGU9YS5FdmVudCgic2hvdy5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO3RoaXMuJGVsZW1lbnQudHJpZ2dlcihlKSx0aGlzLmlzU2hvd258fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLmlzU2hvd249ITAsdGhpcy5jaGVja1Njcm9sbGJhcigpLHRoaXMuc2V0U2Nyb2xsYmFyKCksdGhpcy4kYm9keS5hZGRDbGFzcygibW9kYWwtb3BlbiIpLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIiwnW2RhdGEtZGlzbWlzcz0ibW9kYWwiXScsYS5wcm94eSh0aGlzLmhpZGUsdGhpcykpLHRoaXMuJGRpYWxvZy5vbigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC4kZWxlbWVudC5vbmUoIm1vdXNldXAuZGlzbWlzcy5icy5tb2RhbCIsZnVuY3Rpb24oYil7YShiLnRhcmdldCkuaXMoZC4kZWxlbWVudCkmJihkLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITApfSl9KSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7dmFyIGU9YS5zdXBwb3J0LnRyYW5zaXRpb24mJmQuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKTtkLiRlbGVtZW50LnBhcmVudCgpLmxlbmd0aHx8ZC4kZWxlbWVudC5hcHBlbmRUbyhkLiRib2R5KSxkLiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCksZC5hZGp1c3REaWFsb2coKSxlJiZkLiRlbGVtZW50WzBdLm9mZnNldFdpZHRoLGQuJGVsZW1lbnQuYWRkQ2xhc3MoImluIiksZC5lbmZvcmNlRm9jdXMoKTt2YXIgZj1hLkV2ZW50KCJzaG93bi5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO2U/ZC4kZGlhbG9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2QuJGVsZW1lbnQudHJpZ2dlcigiZm9jdXMiKS50cmlnZ2VyKGYpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pKX0sYy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihiKXtiJiZiLnByZXZlbnREZWZhdWx0KCksYj1hLkV2ZW50KCJoaWRlLmJzLm1vZGFsIiksdGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLHRoaXMuaXNTaG93biYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJih0aGlzLmlzU2hvd249ITEsdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLGEoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImluIikub2ZmKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIikub2ZmKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiKSx0aGlzLiRkaWFsb2cub2ZmKCJtb3VzZWRvd24uZGlzbWlzcy5icy5tb2RhbCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eSh0aGlzLmhpZGVNb2RhbCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTp0aGlzLmhpZGVNb2RhbCgpKX0sYy5wcm90b3R5cGUuZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7YShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIikub24oImZvY3VzaW4uYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7ZG9jdW1lbnQ9PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudFswXT09PWEudGFyZ2V0fHx0aGlzLiRlbGVtZW50LmhhcyhhLnRhcmdldCkubGVuZ3RofHx0aGlzLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIil9LHRoaXMpKX0sYy5wcm90b3R5cGUuZXNjYXBlPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMua2V5Ym9hcmQ/dGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpezI3PT1hLndoaWNoJiZ0aGlzLmhpZGUoKX0sdGhpcykpOnRoaXMuaXNTaG93bnx8dGhpcy4kZWxlbWVudC5vZmYoImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24/YSh3aW5kb3cpLm9uKCJyZXNpemUuYnMubW9kYWwiLGEucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsdGhpcykpOmEod2luZG93KS5vZmYoInJlc2l6ZS5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuJGVsZW1lbnQuaGlkZSgpLHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24oKXthLiRib2R5LnJlbW92ZUNsYXNzKCJtb2RhbC1vcGVuIiksYS5yZXNldEFkanVzdG1lbnRzKCksYS5yZXNldFNjcm9sbGJhcigpLGEuJGVsZW1lbnQudHJpZ2dlcigiaGlkZGVuLmJzLm1vZGFsIil9KX0sYy5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLiRiYWNrZHJvcCYmdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCksdGhpcy4kYmFja2Ryb3A9bnVsbH0sYy5wcm90b3R5cGUuYmFja2Ryb3A9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT8iZmFkZSI6IiI7aWYodGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMuYmFja2Ryb3Ape3ZhciBmPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZlO2lmKHRoaXMuJGJhY2tkcm9wPWEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJtb2RhbC1iYWNrZHJvcCAiK2UpLmFwcGVuZFRvKHRoaXMuJGJvZHkpLHRoaXMuJGVsZW1lbnQub24oImNsaWNrLmRpc21pc3MuYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz92b2lkKHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSk6dm9pZChhLnRhcmdldD09PWEuY3VycmVudFRhcmdldCYmKCJzdGF0aWMiPT10aGlzLm9wdGlvbnMuYmFja2Ryb3A/dGhpcy4kZWxlbWVudFswXS5mb2N1cygpOnRoaXMuaGlkZSgpKSl9LHRoaXMpKSxmJiZ0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aCx0aGlzLiRiYWNrZHJvcC5hZGRDbGFzcygiaW4iKSwhYilyZXR1cm47Zj90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYikuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpiKCl9ZWxzZSBpZighdGhpcy5pc1Nob3duJiZ0aGlzLiRiYWNrZHJvcCl7dGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoImluIik7dmFyIGc9ZnVuY3Rpb24oKXtkLnJlbW92ZUJhY2tkcm9wKCksYiYmYigpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGJhY2tkcm9wLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixnKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmcoKX1lbHNlIGImJmIoKX0sYy5wcm90b3R5cGUuaGFuZGxlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5hZGp1c3REaWFsb2coKX0sYy5wcm90b3R5cGUuYWRqdXN0RGlhbG9nPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLiRlbGVtZW50LmNzcyh7cGFkZGluZ0xlZnQ6IXRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJmE/dGhpcy5zY3JvbGxiYXJXaWR0aDoiIixwYWRkaW5nUmlnaHQ6dGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmIWE/dGhpcy5zY3JvbGxiYXJXaWR0aDoiIn0pfSxjLnByb3RvdHlwZS5yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiIiLHBhZGRpbmdSaWdodDoiIn0pfSxjLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5pbm5lcldpZHRoO2lmKCFhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7YT1iLnJpZ2h0LU1hdGguYWJzKGIubGVmdCl9dGhpcy5ib2R5SXNPdmVyZmxvd2luZz1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoPGEsdGhpcy5zY3JvbGxiYXJXaWR0aD10aGlzLm1lYXN1cmVTY3JvbGxiYXIoKX0sYy5wcm90b3R5cGUuc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9cGFyc2VJbnQodGhpcy4kYm9keS5jc3MoInBhZGRpbmctcmlnaHQiKXx8MCwxMCk7dGhpcy5vcmlnaW5hbEJvZHlQYWQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHR8fCIiLHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJnRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IixhK3RoaXMuc2Nyb2xsYmFyV2lkdGgpfSxjLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3RoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iix0aGlzLm9yaWdpbmFsQm9keVBhZCl9LGMucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0ibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUiLHRoaXMuJGJvZHkuYXBwZW5kKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aDtyZXR1cm4gdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChhKSxifTt2YXIgZD1hLmZuLm1vZGFsO2EuZm4ubW9kYWw9YixhLmZuLm1vZGFsLkNvbnN0cnVjdG9yPWMsYS5mbi5tb2RhbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ubW9kYWw9ZCx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMubW9kYWwuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9Im1vZGFsIl0nLGZ1bmN0aW9uKGMpe3ZhciBkPWEodGhpcyksZT1kLmF0dHIoImhyZWYiKSxmPWEoZC5hdHRyKCJkYXRhLXRhcmdldCIpfHxlJiZlLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIikpLGc9Zi5kYXRhKCJicy5tb2RhbCIpPyJ0b2dnbGUiOmEuZXh0ZW5kKHtyZW1vdGU6IS8jLy50ZXN0KGUpJiZlfSxmLmRhdGEoKSxkLmRhdGEoKSk7ZC5pcygiYSIpJiZjLnByZXZlbnREZWZhdWx0KCksZi5vbmUoInNob3cuYnMubW9kYWwiLGZ1bmN0aW9uKGEpe2EuaXNEZWZhdWx0UHJldmVudGVkKCl8fGYub25lKCJoaWRkZW4uYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC5pcygiOnZpc2libGUiKSYmZC50cmlnZ2VyKCJmb2N1cyIpfSl9KSxiLmNhbGwoZixnLHRoaXMpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50b29sdGlwIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7IWUmJi9kZXN0cm95fGhpZGUvLnRlc3QoYil8fChlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy43IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO2lmKGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c291dCI9PWIudHlwZT8iZm9jdXMiOiJob3ZlciJdPSExKSwhYy5pc0luU3RhdGVUcnVlKCkpcmV0dXJuIGNsZWFyVGltZW91dChjLnRpbWVvdXQpLGMuaG92ZXJTdGF0ZT0ib3V0IixjLm9wdGlvbnMuZGVsYXkmJmMub3B0aW9ucy5kZWxheS5oaWRlP3ZvaWQoYy50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXsib3V0Ij09Yy5ob3ZlclN0YXRlJiZjLmhpZGUoKX0sYy5vcHRpb25zLmRlbGF5LmhpZGUpKTpjLmhpZGUoKX0sYy5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe3ZhciBiPWEuRXZlbnQoInNob3cuYnMuIit0aGlzLnR5cGUpO2lmKHRoaXMuaGFzQ29udGVudCgpJiZ0aGlzLmVuYWJsZWQpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcihiKTt2YXIgZD1hLmNvbnRhaW5zKHRoaXMuJGVsZW1lbnRbMF0ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy4kZWxlbWVudFswXSk7aWYoYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IWQpcmV0dXJuO3ZhciBlPXRoaXMsZj10aGlzLnRpcCgpLGc9dGhpcy5nZXRVSUQodGhpcy50eXBlKTt0aGlzLnNldENvbnRlbnQoKSxmLmF0dHIoImlkIixnKSx0aGlzLiRlbGVtZW50LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGcpLHRoaXMub3B0aW9ucy5hbmltYXRpb24mJmYuYWRkQ2xhc3MoImZhZGUiKTt2YXIgaD0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLnBsYWNlbWVudD90aGlzLm9wdGlvbnMucGxhY2VtZW50LmNhbGwodGhpcyxmWzBdLHRoaXMuJGVsZW1lbnRbMF0pOnRoaXMub3B0aW9ucy5wbGFjZW1lbnQsaT0vXHM/YXV0bz9ccz8vaSxqPWkudGVzdChoKTtqJiYoaD1oLnJlcGxhY2UoaSwiIil8fCJ0b3AiKSxmLmRldGFjaCgpLmNzcyh7dG9wOjAsbGVmdDowLGRpc3BsYXk6ImJsb2NrIn0pLmFkZENsYXNzKGgpLmRhdGEoImJzLiIrdGhpcy50eXBlLHRoaXMpLHRoaXMub3B0aW9ucy5jb250YWluZXI/Zi5hcHBlbmRUbyh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTpmLmluc2VydEFmdGVyKHRoaXMuJGVsZW1lbnQpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcigiaW5zZXJ0ZWQuYnMuIit0aGlzLnR5cGUpO3ZhciBrPXRoaXMuZ2V0UG9zaXRpb24oKSxsPWZbMF0ub2Zmc2V0V2lkdGgsbT1mWzBdLm9mZnNldEhlaWdodDtpZihqKXt2YXIgbj1oLG89dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCk7aD0iYm90dG9tIj09aCYmay5ib3R0b20rbT5vLmJvdHRvbT8idG9wIjoidG9wIj09aCYmay50b3AtbTxvLnRvcD8iYm90dG9tIjoicmlnaHQiPT1oJiZrLnJpZ2h0K2w+by53aWR0aD8ibGVmdCI6ImxlZnQiPT1oJiZrLmxlZnQtbDxvLmxlZnQ/InJpZ2h0IjpoLGYucmVtb3ZlQ2xhc3MobikuYWRkQ2xhc3MoaCl9dmFyIHA9dGhpcy5nZXRDYWxjdWxhdGVkT2Zmc2V0KGgsayxsLG0pO3RoaXMuYXBwbHlQbGFjZW1lbnQocCxoKTt2YXIgcT1mdW5jdGlvbigpe3ZhciBhPWUuaG92ZXJTdGF0ZTtlLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLiIrZS50eXBlKSxlLmhvdmVyU3RhdGU9bnVsbCwib3V0Ij09YSYmZS5sZWF2ZShlKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJHRpcC5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLHEpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6cSgpfX0sYy5wcm90b3R5cGUuYXBwbHlQbGFjZW1lbnQ9ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzLnRpcCgpLGU9ZFswXS5vZmZzZXRXaWR0aCxmPWRbMF0ub2Zmc2V0SGVpZ2h0LGc9cGFyc2VJbnQoZC5jc3MoIm1hcmdpbi10b3AiKSwxMCksaD1wYXJzZUludChkLmNzcygibWFyZ2luLWxlZnQiKSwxMCk7aXNOYU4oZykmJihnPTApLGlzTmFOKGgpJiYoaD0wKSxiLnRvcCs9ZyxiLmxlZnQrPWgsYS5vZmZzZXQuc2V0T2Zmc2V0KGRbMF0sYS5leHRlbmQoe3VzaW5nOmZ1bmN0aW9uKGEpe2QuY3NzKHt0b3A6TWF0aC5yb3VuZChhLnRvcCksbGVmdDpNYXRoLnJvdW5kKGEubGVmdCl9KX19LGIpLDApLGQuYWRkQ2xhc3MoImluIik7dmFyIGk9ZFswXS5vZmZzZXRXaWR0aCxqPWRbMF0ub2Zmc2V0SGVpZ2h0OyJ0b3AiPT1jJiZqIT1mJiYoYi50b3A9Yi50b3ArZi1qKTt2YXIgaz10aGlzLmdldFZpZXdwb3J0QWRqdXN0ZWREZWx0YShjLGIsaSxqKTtrLmxlZnQ/Yi5sZWZ0Kz1rLmxlZnQ6Yi50b3ArPWsudG9wO3ZhciBsPS90b3B8Ym90dG9tLy50ZXN0KGMpLG09bD8yKmsubGVmdC1lK2k6MiprLnRvcC1mK2osbj1sPyJvZmZzZXRXaWR0aCI6Im9mZnNldEhlaWdodCI7ZC5vZmZzZXQoYiksdGhpcy5yZXBsYWNlQXJyb3cobSxkWzBdW25dLGwpfSxjLnByb3RvdHlwZS5yZXBsYWNlQXJyb3c9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuYXJyb3coKS5jc3MoYz8ibGVmdCI6InRvcCIsNTAqKDEtYS9iKSsiJSIpLmNzcyhjPyJ0b3AiOiJsZWZ0IiwiIil9LGMucHJvdG90eXBlLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnRpcCgpLGI9dGhpcy5nZXRUaXRsZSgpO2EuZmluZCgiLnRvb2x0aXAtaW5uZXIiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLnJlbW92ZUNsYXNzKCJmYWRlIGluIHRvcCBib3R0b20gbGVmdCByaWdodCIpfSxjLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGQoKXsiaW4iIT1lLmhvdmVyU3RhdGUmJmYuZGV0YWNoKCksZS4kZWxlbWVudCYmZS4kZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLWRlc2NyaWJlZGJ5IikudHJpZ2dlcigiaGlkZGVuLmJzLiIrZS50eXBlKSxiJiZiKCl9dmFyIGU9dGhpcyxmPWEodGhpcy4kdGlwKSxnPWEuRXZlbnQoImhpZGUuYnMuIit0aGlzLnR5cGUpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSwhZy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm4gZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXN9LGMucHJvdG90eXBlLmZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudDsoYS5hdHRyKCJ0aXRsZSIpfHwic3RyaW5nIiE9dHlwZW9mIGEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpKSYmYS5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIixhLmF0dHIoInRpdGxlIil8fCIiKS5hdHRyKCJ0aXRsZSIsIiIpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKX0sYy5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oYil7Yj1ifHx0aGlzLiRlbGVtZW50O3ZhciBjPWJbMF0sZD0iQk9EWSI9PWMudGFnTmFtZSxlPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bnVsbD09ZS53aWR0aCYmKGU9YS5leHRlbmQoe30sZSx7d2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSkpO3ZhciBmPXdpbmRvdy5TVkdFbGVtZW50JiZjIGluc3RhbmNlb2Ygd2luZG93LlNWR0VsZW1lbnQsZz1kP3t0b3A6MCxsZWZ0OjB9OmY/bnVsbDpiLm9mZnNldCgpLGg9e3Njcm9sbDpkP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOmIuc2Nyb2xsVG9wKCl9LGk9ZD97d2lkdGg6YSh3aW5kb3cpLndpZHRoKCksaGVpZ2h0OmEod2luZG93KS5oZWlnaHQoKX06bnVsbDtyZXR1cm4gYS5leHRlbmQoe30sZSxoLGksZyl9LGMucHJvdG90eXBlLmdldENhbGN1bGF0ZWRPZmZzZXQ9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuImJvdHRvbSI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToidG9wIj09YT97dG9wOmIudG9wLWQsbGVmdDpiLmxlZnQrYi53aWR0aC8yLWMvMn06ImxlZnQiPT1hP3t0b3A6Yi50b3ArYi5oZWlnaHQvMi1kLzIsbGVmdDpiLmxlZnQtY306e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdCtiLndpZHRofX0sYy5wcm90b3R5cGUuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXt0b3A6MCxsZWZ0OjB9O2lmKCF0aGlzLiR2aWV3cG9ydClyZXR1cm4gZTt2YXIgZj10aGlzLm9wdGlvbnMudmlld3BvcnQmJnRoaXMub3B0aW9ucy52aWV3cG9ydC5wYWRkaW5nfHwwLGc9dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCk7aWYoL3JpZ2h0fGxlZnQvLnRlc3QoYSkpe3ZhciBoPWIudG9wLWYtZy5zY3JvbGwsaT1iLnRvcCtmLWcuc2Nyb2xsK2Q7aDxnLnRvcD9lLnRvcD1nLnRvcC1oOmk+Zy50b3ArZy5oZWlnaHQmJihlLnRvcD1nLnRvcCtnLmhlaWdodC1pKX1lbHNle3ZhciBqPWIubGVmdC1mLGs9Yi5sZWZ0K2YrYztqPGcubGVmdD9lLmxlZnQ9Zy5sZWZ0LWo6az5nLnJpZ2h0JiYoZS5sZWZ0PWcubGVmdCtnLndpZHRoLWspfXJldHVybiBlfSxjLnByb3RvdHlwZS5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kZWxlbWVudCxjPXRoaXMub3B0aW9ucztyZXR1cm4gYT1iLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKXx8KCJmdW5jdGlvbiI9PXR5cGVvZiBjLnRpdGxlP2MudGl0bGUuY2FsbChiWzBdKTpjLnRpdGxlKX0sYy5wcm90b3R5cGUuZ2V0VUlEPWZ1bmN0aW9uKGEpe2RvIGErPX5+KDFlNipNYXRoLnJhbmRvbSgpKTt3aGlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk7cmV0dXJuIGF9LGMucHJvdG90eXBlLnRpcD1mdW5jdGlvbigpe2lmKCF0aGlzLiR0aXAmJih0aGlzLiR0aXA9YSh0aGlzLm9wdGlvbnMudGVtcGxhdGUpLDEhPXRoaXMuJHRpcC5sZW5ndGgpKXRocm93IG5ldyBFcnJvcih0aGlzLnR5cGUrIiBgdGVtcGxhdGVgIG9wdGlvbiBtdXN0IGNvbnNpc3Qgb2YgZXhhY3RseSAxIHRvcC1sZXZlbCBlbGVtZW50ISIpO3JldHVybiB0aGlzLiR0aXB9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi50b29sdGlwLWFycm93Iil9LGMucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMH0sYy5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMX0sYy5wcm90b3R5cGUudG9nZ2xlRW5hYmxlZD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hdGhpcy5lbmFibGVkfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYil7dmFyIGM9dGhpcztiJiYoYz1hKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpLGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpKSxiPyhjLmluU3RhdGUuY2xpY2s9IWMuaW5TdGF0ZS5jbGljayxjLmlzSW5TdGF0ZVRydWUoKT9jLmVudGVyKGMpOmMubGVhdmUoYykpOmMudGlwKCkuaGFzQ2xhc3MoImluIik/Yy5sZWF2ZShjKTpjLmVudGVyKGMpfSxjLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KSx0aGlzLmhpZGUoZnVuY3Rpb24oKXthLiRlbGVtZW50Lm9mZigiLiIrYS50eXBlKS5yZW1vdmVEYXRhKCJicy4iK2EudHlwZSksYS4kdGlwJiZhLiR0aXAuZGV0YWNoKCksYS4kdGlwPW51bGwsYS4kYXJyb3c9bnVsbCxhLiR2aWV3cG9ydD1udWxsLGEuJGVsZW1lbnQ9bnVsbH0pfTt2YXIgZD1hLmZuLnRvb2x0aXA7YS5mbi50b29sdGlwPWIsYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWMsYS5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b29sdGlwPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5wb3BvdmVyIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7IWUmJi9kZXN0cm95fGhpZGUvLnRlc3QoYil8fChlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyJTIwcmVxdWlyZXMlMjB0b29sdGlwLmh0bWwiKTtjLlZFUlNJT049IjMuMy43IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNyIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpewp0aGlzLmFjdGl2ZVRhcmdldD1iLHRoaXMuY2xlYXIoKTt2YXIgYz10aGlzLnNlbGVjdG9yKydbZGF0YS10YXJnZXQ9IicrYisnIl0sJyt0aGlzLnNlbGVjdG9yKydbaHJlZj0iJytiKyciXScsZD1hKGMpLnBhcmVudHMoImxpIikuYWRkQ2xhc3MoImFjdGl2ZSIpO2QucGFyZW50KCIuZHJvcGRvd24tbWVudSIpLmxlbmd0aCYmKGQ9ZC5jbG9zZXN0KCJsaS5kcm9wZG93biIpLmFkZENsYXNzKCJhY3RpdmUiKSksZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjciLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gZTxjJiYidG9wIjtpZigiYm90dG9tIj09dGhpcy5hZmZpeGVkKXJldHVybiBudWxsIT1jPyEoZSt0aGlzLnVucGluPD1mLnRvcCkmJiJib3R0b20iOiEoZStnPD1hLWQpJiYiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmZTw9Yz8idG9wIjpudWxsIT1kJiZpK2o+PWEtZCYmImJvdHRvbSJ9LGMucHJvdG90eXBlLmdldFBpbm5lZE9mZnNldD1mdW5jdGlvbigpe2lmKHRoaXMucGlubmVkT2Zmc2V0KXJldHVybiB0aGlzLnBpbm5lZE9mZnNldDt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKGMuUkVTRVQpLmFkZENsYXNzKCJhZmZpeCIpO3ZhciBhPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxiPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCk7cmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0PWIudG9wLWF9LGMucHJvdG90eXBlLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wPWZ1bmN0aW9uKCl7c2V0VGltZW91dChhLnByb3h5KHRoaXMuY2hlY2tQb3NpdGlvbix0aGlzKSwxKX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbj1mdW5jdGlvbigpe2lmKHRoaXMuJGVsZW1lbnQuaXMoIjp2aXNpYmxlIikpe3ZhciBiPXRoaXMuJGVsZW1lbnQuaGVpZ2h0KCksZD10aGlzLm9wdGlvbnMub2Zmc2V0LGU9ZC50b3AsZj1kLmJvdHRvbSxnPU1hdGgubWF4KGEoZG9jdW1lbnQpLmhlaWdodCgpLGEoZG9jdW1lbnQuYm9keSkuaGVpZ2h0KCkpOyJvYmplY3QiIT10eXBlb2YgZCYmKGY9ZT1kKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZC50b3AodGhpcy4kZWxlbWVudCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZj1kLmJvdHRvbSh0aGlzLiRlbGVtZW50KSk7dmFyIGg9dGhpcy5nZXRTdGF0ZShnLGIsZSxmKTtpZih0aGlzLmFmZml4ZWQhPWgpe251bGwhPXRoaXMudW5waW4mJnRoaXMuJGVsZW1lbnQuY3NzKCJ0b3AiLCIiKTt2YXIgaT0iYWZmaXgiKyhoPyItIitoOiIiKSxqPWEuRXZlbnQoaSsiLmJzLmFmZml4Iik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGopLGouaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO3RoaXMuYWZmaXhlZD1oLHRoaXMudW5waW49ImJvdHRvbSI9PWg/dGhpcy5nZXRQaW5uZWRPZmZzZXQoKTpudWxsLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoaSkudHJpZ2dlcihpLnJlcGxhY2UoImFmZml4IiwiYWZmaXhlZCIpKyIuYnMuYWZmaXgiKX0iYm90dG9tIj09aCYmdGhpcy4kZWxlbWVudC5vZmZzZXQoe3RvcDpnLWItZn0pfX07dmFyIGQ9YS5mbi5hZmZpeDthLmZuLmFmZml4PWIsYS5mbi5hZmZpeC5Db25zdHJ1Y3Rvcj1jLGEuZm4uYWZmaXgubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmFmZml4PWQsdGhpc30sYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXNweT0iYWZmaXgiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5kYXRhKCk7ZC5vZmZzZXQ9ZC5vZmZzZXR8fHt9LG51bGwhPWQub2Zmc2V0Qm90dG9tJiYoZC5vZmZzZXQuYm90dG9tPWQub2Zmc2V0Qm90dG9tKSxudWxsIT1kLm9mZnNldFRvcCYmKGQub2Zmc2V0LnRvcD1kLm9mZnNldFRvcCksYi5jYWxsKGMsZCl9KX0pfShqUXVlcnkpOw=="}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":38,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/map-scriptba36ba36ba36.html?color=2ecc71","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.843Z","timestamp":1785126645843,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/map-scriptba36ba36ba36.html?color=2ecc71 HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 640\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, must-revalidate\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2167,"size_decoded":897,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"086e34e62d6c19cffa8fdbea1ee250ff","sha1":"84df5e42408a3a98338ef9349b882e8a507672bd","sha256":"ce2fe5027de384cbeab7f0e7f7779c3267f06b066e5c980876a54cf476972890","sha512":"20b594d73eed68a87256bd1552e57c4d28e347b581cc08e64a4f7eb7aea9c14833b42fe692d1001617c0e30e23ca6c80e8dcb75159acdb953d9a304a00cc45b9","ssdeep":"","tlshash":"494111cea8b74047541351e02bd55d498678d657a51bee20378c21bcefcaf84ad8336e","first_seen":"2026-02-24T03:12:44.843602Z","last_seen":"2026-07-27T04:32:40.518917Z","times_seen":4,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICAgIAo8IS0tIE1pcnJvcmVkIGZyb20gbWVnYW9wdGlvbnMubmV0L2VuL2Fzc2V0cy9mcm9udC9qcy9tYXAtc2NyaXB0YmEzNi5odG1sP2NvbG9yPTJlY2M3MSBieSBIVFRyYWNrIFdlYnNpdGUgQ29waWVyLzMueCBbWFImQ08nMjAxNF0sIFRodSwgMjUgQXVnIDIwMjIgMDA6NTg6MzggR01UIC0tPgoKPCEtLSBNaXJyb3JlZCBmcm9tIGNyeXB0b3BsYy5vcmcvZW4vYXNzZXRzL2Zyb250L2pzL21hcC1zY3JpcHRiYTM2YmEzNi5odG1sP2NvbG9yPTJlY2M3MSBieSBIVFRyYWNrIFdlYnNpdGUgQ29waWVyLzMueCBbWFImQ08nMjAxNF0sIFdlZCwgMDYgU2VwIDIwMjMgMDM6NTM6NTggR01UIC0tPgo8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgoKICAgICAgICA8dGl0bGU+UGFnZSBOb3QgRm91bmQ8L3RpdGxlPgoKICAgICAgICA8IS0tIEZvbnRzIC0tPgogICAgICAgIDxsaW5rIGhyZWY9Ii4uLy4uLy4uLy4uL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzc2MyZTFjMmUxLmh0bWw/ZmFtaWx5PVJhbGV3YXk6MTAwLDYwMCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CgogICAgICAgIDwhLS0gU3R5bGVzIC0tPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgaHRtbCwgYm9keSB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgICAgICAgY29sb3I6ICM2MzZiNmY7CiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDsKICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5mdWxsLWhlaWdodCB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICB9CgogICAgICAgICAgICAuZmxleC1jZW50ZXIgewogICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLnBvc2l0aW9uLXJlZiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5jb250ZW50IHsKICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLnRpdGxlIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIH0KICAgICAgICA8L3N0eWxlPgogICAgPC9oZWFkPgogICAgPGJvZHk+CiAgICAgICAgPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgcG9zaXRpb24tcmVmIGZ1bGwtaGVpZ2h0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgU29ycnksIHRoZSBwYWdlIHlvdSBhcmUgbG9va2luZyBmb3IgY291bGQgbm90IGJlIGZvdW5kLiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2JvZHk+Cgo8IS0tIE1pcnJvcmVkIGZyb20gbWVnYW9wdGlvbnMubmV0L2VuL2Fzc2V0cy9mcm9udC9qcy9tYXAtc2NyaXB0YmEzNi5odG1sP2NvbG9yPTJlY2M3MSBieSBIVFRyYWNrIFdlYnNpdGUgQ29waWVyLzMueCBbWFImQ08nMjAxNF0sIFRodSwgMjUgQXVnIDIwMjIgMDA6NTg6MzggR01UIC0tPgoKPCEtLSBNaXJyb3JlZCBmcm9tIGNyeXB0b3BsYy5vcmcvZW4vYXNzZXRzL2Zyb250L2pzL21hcC1zY3JpcHRiYTM2YmEzNi5odG1sP2NvbG9yPTJlY2M3MSBieSBIVFRyYWNrIFdlYnNpdGUgQ29waWVyLzMueCBbWFImQ08nMjAxNF0sIFdlZCwgMDYgU2VwIDIwMjMgMDM6NTM6NTkgR01UIC0tPgo8L2h0bWw+Cg=="}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":40,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/d71b99267b066b9b.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.430Z","timestamp":1785126646430,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/d71b99267b066b9b.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 2255262\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"d71b99267b066b9b.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com https://vitals.vercel-insights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"8ab91e90961bd7e4d7c2d7514a37ecf6\"\r\nlast-modified: Mon, 25 May 2026 18:12:21 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/d71b99267b066b9b.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::z8pn9-1779843301298-e28dad7012c9\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Z1pHQhYqae%2BEco1MpZTZJyl4hc0FahbrImdhdIExY%2Fo5QO8VYPUgWBCMBQR0cMDG1oXa0pX1nMM9M89aNUOaB7q%2Bjgc1bmkbs9CK5rGBNTz227yg%2FDaZDExKTo7%2F\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e92438022efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":27443,"size_decoded":11051,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (27443), with no line terminators","md5":"8ab91e90961bd7e4d7c2d7514a37ecf6","sha1":"d2e2405837d8cd1436dae22a0c5d7f4e15168995","sha256":"6e16504cbe3f76082798a523cf9cdce3bc9321fefc36485d02c9289e5a5f6b38","sha512":"da24ae4884840b4b996fdd087c41065e590b5cf33046f6aec00157142b53b9da067a83af2cc7744429b64c02bbfb1aef428787389939a1736cb4ad1f0458ee69","ssdeep":"384:AqniNMH/fZ8oNS1VFWHcE+Ff8IiUG6AUNmXVOmitisz8Xdjz8/K4QIwATf:YO58o0fG65mXVOOKKNInf","tlshash":"bec2c725b90705be2aee83e7e06cabd5d9385a02d5098b4ce3978f319704bf56187b0d","first_seen":"2026-04-30T18:36:20.827898Z","last_seen":"2026-07-27T08:07:37.37504Z","times_seen":1600,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDc1MTU3LDcyODQsZT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7Zm9yKHZhciBlLHIsbz0wLHQ9IiIsbD1hcmd1bWVudHMubGVuZ3RoO288bDtvKyspKGU9YXJndW1lbnRzW29dKSYmKHI9ZnVuY3Rpb24gZShyKXt2YXIgbyx0LGw9IiI7aWYoInN0cmluZyI9PXR5cGVvZiByfHwibnVtYmVyIj09dHlwZW9mIHIpbCs9cjtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgcilpZihBcnJheS5pc0FycmF5KHIpKXt2YXIgbj1yLmxlbmd0aDtmb3Iobz0wO288bjtvKyspcltvXSYmKHQ9ZShyW29dKSkmJihsJiYobCs9IiAiKSxsKz10KX1lbHNlIGZvcih0IGluIHIpclt0XSYmKGwmJihsKz0iICIpLGwrPXQpO3JldHVybiBsfShlKSkmJih0JiYodCs9IiAiKSx0Kz1yKTtyZXR1cm4gdH1lLnMoWyJjbHN4IiwoKT0+cl0sNzI4NCk7bGV0IG89KGU9bmV3IE1hcCxyPW51bGwsbyk9Pih7bmV4dFBhcnQ6ZSx2YWxpZGF0b3JzOnIsY2xhc3NHcm91cElkOm99KSx0PVtdLGw9KGUscixvKT0+e2lmKDA9PWUubGVuZ3RoLXIpcmV0dXJuIG8uY2xhc3NHcm91cElkO2xldCB0PWVbcl0sbj1vLm5leHRQYXJ0LmdldCh0KTtpZihuKXtsZXQgbz1sKGUscisxLG4pO2lmKG8pcmV0dXJuIG99bGV0IGE9by52YWxpZGF0b3JzO2lmKG51bGw9PT1hKXJldHVybjtsZXQgcz0wPT09cj9lLmpvaW4oIi0iKTplLnNsaWNlKHIpLmpvaW4oIi0iKSxpPWEubGVuZ3RoO2ZvcihsZXQgZT0wO2U8aTtlKyspe2xldCByPWFbZV07aWYoci52YWxpZGF0b3IocykpcmV0dXJuIHIuY2xhc3NHcm91cElkfX0sbj0oZSxyKT0+e2xldCB0PW8oKTtmb3IobGV0IG8gaW4gZSlhKGVbb10sdCxvLHIpO3JldHVybiB0fSxhPShlLHIsbyx0KT0+e2xldCBsPWUubGVuZ3RoO2ZvcihsZXQgbj0wO248bDtuKyspcyhlW25dLHIsbyx0KX0scz0oZSxyLG8sdCk9Pnsic3RyaW5nIj09dHlwZW9mIGU/aShlLHIsbyk6ImZ1bmN0aW9uIj09dHlwZW9mIGU/YyhlLHIsbyx0KTpkKGUscixvLHQpfSxpPShlLHIsbyk9PnsoIiI9PT1lP3I6bShyLGUpKS5jbGFzc0dyb3VwSWQ9b30sYz0oZSxyLG8sdCk9PntwKGUpP2EoZSh0KSxyLG8sdCk6KG51bGw9PT1yLnZhbGlkYXRvcnMmJihyLnZhbGlkYXRvcnM9W10pLHIudmFsaWRhdG9ycy5wdXNoKHtjbGFzc0dyb3VwSWQ6byx2YWxpZGF0b3I6ZX0pKX0sZD0oZSxyLG8sdCk9PntsZXQgbD1PYmplY3QuZW50cmllcyhlKSxuPWwubGVuZ3RoO2ZvcihsZXQgZT0wO2U8bjtlKyspe2xldFtuLHNdPWxbZV07YShzLG0ocixuKSxvLHQpfX0sbT0oZSxyKT0+e2xldCB0PWUsbD1yLnNwbGl0KCItIiksbj1sLmxlbmd0aDtmb3IobGV0IGU9MDtlPG47ZSsrKXtsZXQgcj1sW2VdLG49dC5uZXh0UGFydC5nZXQocik7bnx8KG49bygpLHQubmV4dFBhcnQuc2V0KHIsbikpLHQ9bn1yZXR1cm4gdH0scD1lPT4iaXNUaGVtZUdldHRlciJpbiBlJiYhMD09PWUuaXNUaGVtZUdldHRlcixiPVtdLHU9KGUscixvLHQsbCk9Pih7bW9kaWZpZXJzOmUsaGFzSW1wb3J0YW50TW9kaWZpZXI6cixiYXNlQ2xhc3NOYW1lOm8sbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbjp0LGlzRXh0ZXJuYWw6bH0pLGY9L1xzKy8sZz1lPT57bGV0IHI7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlO2xldCBvPSIiO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0mJihyPWcoZVt0XSkpJiYobyYmKG8rPSIgIiksbys9cik7cmV0dXJuIG99LGg9W10saz1lPT57bGV0IHI9cj0+cltlXXx8aDtyZXR1cm4gci5pc1RoZW1lR2V0dGVyPSEwLHJ9LHc9L15cWyg/Oihcd1tcdy1dKik6KT8oLispXF0kL2kseD0vXlwoKD86KFx3W1x3LV0qKTopPyguKylcKSQvaSx5PS9eXGQrKD86XC5cZCspP1wvXGQrKD86XC5cZCspPyQvLHY9L14oXGQrKFwuXGQrKT8pPyh4c3xzbXxtZHxsZ3x4bCkkLyx6PS9cZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxiKGNhbGN8bWlufG1heHxjbGFtcClcKC4rXCl8XjAkLyxqPS9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKXxjb2xvci1taXgpXCguK1wpJC8sQz0vXihpbnNldF8pPy0/KChcZCspP1wuPyhcZCspW2Etel0rfDApXy0/KChcZCspP1wuPyhcZCspW2Etel0rfDApLyxHPS9eKHVybHxpbWFnZXxpbWFnZS1zZXR8Y3Jvc3MtZmFkZXxlbGVtZW50fChyZXBlYXRpbmctKT8obGluZWFyfHJhZGlhbHxjb25pYyktZ3JhZGllbnQpXCguK1wpJC8sTj1lPT55LnRlc3QoZSksST1lPT4hIWUmJiFOdW1iZXIuaXNOYU4oTnVtYmVyKGUpKSxVPWU9PiEhZSYmTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIoZSkpLCQ9ZT0+ZS5lbmRzV2l0aCgiJSIpJiZJKGUuc2xpY2UoMCwtMSkpLE89ZT0+di50ZXN0KGUpLFM9KCk9PiEwLFc9ZT0+ei50ZXN0KGUpJiYhai50ZXN0KGUpLEY9KCk9PiExLFA9ZT0+Qy50ZXN0KGUpLFQ9ZT0+Ry50ZXN0KGUpLE09ZT0+IVIoZSkmJiFIKGUpLEE9ZT0+ZXIoZSxlbixGKSxSPWU9PncudGVzdChlKSxEPWU9PmVyKGUsZWEsVykscT1lPT5lcihlLGVzLEkpLEI9ZT0+ZXIoZSxlYyxTKSxFPWU9PmVyKGUsZWksRiksSz1lPT5lcihlLGV0LEYpLF89ZT0+ZXIoZSxlbCxUKSxMPWU9PmVyKGUsZWQsUCksSD1lPT54LnRlc3QoZSksSj1lPT5lbyhlLGVhKSxRPWU9PmVvKGUsZWkpLFY9ZT0+ZW8oZSxldCksWD1lPT5lbyhlLGVuKSxZPWU9PmVvKGUsZWwpLFo9ZT0+ZW8oZSxlZCwhMCksZWU9ZT0+ZW8oZSxlYywhMCksZXI9KGUscixvKT0+e2xldCB0PXcuZXhlYyhlKTtyZXR1cm4hIXQmJih0WzFdP3IodFsxXSk6byh0WzJdKSl9LGVvPShlLHIsbz0hMSk9PntsZXQgdD14LmV4ZWMoZSk7cmV0dXJuISF0JiYodFsxXT9yKHRbMV0pOm8pfSxldD1lPT4icG9zaXRpb24iPT09ZXx8InBlcmNlbnRhZ2UiPT09ZSxlbD1lPT4iaW1hZ2UiPT09ZXx8InVybCI9PT1lLGVuPWU9PiJsZW5ndGgiPT09ZXx8InNpemUiPT09ZXx8ImJnLXNpemUiPT09ZSxlYT1lPT4ibGVuZ3RoIj09PWUsZXM9ZT0+Im51bWJlciI9PT1lLGVpPWU9PiJmYW1pbHktbmFtZSI9PT1lLGVjPWU9PiJudW1iZXIiPT09ZXx8IndlaWdodCI9PT1lLGVkPWU9PiJzaGFkb3ciPT09ZSxlbT0oKGUsLi4ucik9PntsZXQgbyxhLHMsaSxjPWU9PntsZXQgcj1hKGUpO2lmKHIpcmV0dXJuIHI7bGV0IHQ9KChlLHIpPT57bGV0e3BhcnNlQ2xhc3NOYW1lOm8sZ2V0Q2xhc3NHcm91cElkOnQsZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzOmwsc29ydE1vZGlmaWVyczpufT1yLGE9W10scz1lLnRyaW0oKS5zcGxpdChmKSxpPSIiO2ZvcihsZXQgZT1zLmxlbmd0aC0xO2U+PTA7ZS09MSl7bGV0IHI9c1tlXSx7aXNFeHRlcm5hbDpjLG1vZGlmaWVyczpkLGhhc0ltcG9ydGFudE1vZGlmaWVyOm0sYmFzZUNsYXNzTmFtZTpwLG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb246Yn09byhyKTtpZihjKXtpPXIrKGkubGVuZ3RoPjA/IiAiK2k6aSk7Y29udGludWV9bGV0IHU9ISFiLGY9dCh1P3Auc3Vic3RyaW5nKDAsYik6cCk7aWYoIWYpe2lmKCF1fHwhKGY9dChwKSkpe2k9cisoaS5sZW5ndGg+MD8iICIraTppKTtjb250aW51ZX11PSExfWxldCBnPTA9PT1kLmxlbmd0aD8iIjoxPT09ZC5sZW5ndGg/ZFswXTpuKGQpLmpvaW4oIjoiKSxoPW0/ZysiISI6ZyxrPWgrZjtpZihhLmluZGV4T2Yoayk+LTEpY29udGludWU7YS5wdXNoKGspO2xldCB3PWwoZix1KTtmb3IobGV0IGU9MDtlPHcubGVuZ3RoOysrZSl7bGV0IHI9d1tlXTthLnB1c2goaCtyKX1pPXIrKGkubGVuZ3RoPjA/IiAiK2k6aSl9cmV0dXJuIGl9KShlLG8pO3JldHVybiBzKGUsdCksdH07cmV0dXJuIGk9ZD0+e3ZhciBtO2xldCBwO3JldHVybiBhPShvPXtjYWNoZTooZT0+e2lmKGU8MSlyZXR1cm57Z2V0OigpPT52b2lkIDAsc2V0OigpPT57fX07bGV0IHI9MCxvPU9iamVjdC5jcmVhdGUobnVsbCksdD1PYmplY3QuY3JlYXRlKG51bGwpLGw9KGwsbik9PntvW2xdPW4sKytyPmUmJihyPTAsdD1vLG89T2JqZWN0LmNyZWF0ZShudWxsKSl9O3JldHVybntnZXQoZSl7bGV0IHI9b1tlXTtyZXR1cm4gdm9pZCAwIT09cj9yOnZvaWQgMCE9PShyPXRbZV0pPyhsKGUscikscik6dm9pZCAwfSxzZXQoZSxyKXtlIGluIG8/b1tlXT1yOmwoZSxyKX19fSkoKG09ci5yZWR1Y2UoKGUscik9PnIoZSksZSgpKSkuY2FjaGVTaXplKSxwYXJzZUNsYXNzTmFtZTooZT0+e2xldHtwcmVmaXg6cixleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZTpvfT1lLHQ9ZT0+e2xldCByLG89W10sdD0wLGw9MCxuPTAsYT1lLmxlbmd0aDtmb3IobGV0IHM9MDtzPGE7cysrKXtsZXQgYT1lW3NdO2lmKDA9PT10JiYwPT09bCl7aWYoIjoiPT09YSl7by5wdXNoKGUuc2xpY2UobixzKSksbj1zKzE7Y29udGludWV9aWYoIi8iPT09YSl7cj1zO2NvbnRpbnVlfX0iWyI9PT1hP3QrKzoiXSI9PT1hP3QtLToiKCI9PT1hP2wrKzoiKSI9PT1hJiZsLS19bGV0IHM9MD09PW8ubGVuZ3RoP2U6ZS5zbGljZShuKSxpPXMsYz0hMTtyZXR1cm4gcy5lbmRzV2l0aCgiISIpPyhpPXMuc2xpY2UoMCwtMSksYz0hMCk6cy5zdGFydHNXaXRoKCIhIikmJihpPXMuc2xpY2UoMSksYz0hMCksdShvLGMsaSxyJiZyPm4/ci1uOnZvaWQgMCl9O2lmKHIpe2xldCBlPXIrIjoiLG89dDt0PXI9PnIuc3RhcnRzV2l0aChlKT9vKHIuc2xpY2UoZS5sZW5ndGgpKTp1KGIsITEscix2b2lkIDAsITApfWlmKG8pe2xldCBlPXQ7dD1yPT5vKHtjbGFzc05hbWU6cixwYXJzZUNsYXNzTmFtZTplfSl9cmV0dXJuIHR9KShtKSxzb3J0TW9kaWZpZXJzOihwPW5ldyBNYXAsbS5vcmRlclNlbnNpdGl2ZU1vZGlmaWVycy5mb3JFYWNoKChlLHIpPT57cC5zZXQoZSwxZTYrcil9KSxlPT57bGV0IHI9W10sbz1bXTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IGw9ZVt0XSxuPSJbIj09PWxbMF0sYT1wLmhhcyhsKTtufHxhPyhvLmxlbmd0aD4wJiYoby5zb3J0KCksci5wdXNoKC4uLm8pLG89W10pLHIucHVzaChsKSk6by5wdXNoKGwpfXJldHVybiBvLmxlbmd0aD4wJiYoby5zb3J0KCksci5wdXNoKC4uLm8pKSxyfSksLi4uKGU9PntsZXQgcj0oZT0+e2xldHt0aGVtZTpyLGNsYXNzR3JvdXBzOm99PWU7cmV0dXJuIG4obyxyKX0pKGUpLHtjb25mbGljdGluZ0NsYXNzR3JvdXBzOm8sY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzOmF9PWU7cmV0dXJue2dldENsYXNzR3JvdXBJZDplPT57aWYoZS5zdGFydHNXaXRoKCJbIikmJmUuZW5kc1dpdGgoIl0iKSl7dmFyIG87bGV0IHIsdCxsO3JldHVybiAtMT09PShvPWUpLnNsaWNlKDEsLTEpLmluZGV4T2YoIjoiKT92b2lkIDA6KHQ9KHI9by5zbGljZSgxLC0xKSkuaW5kZXhPZigiOiIpLChsPXIuc2xpY2UoMCx0KSk/ImFyYml0cmFyeS4uIitsOnZvaWQgMCl9bGV0IHQ9ZS5zcGxpdCgiLSIpLG49KygiIj09PXRbMF0mJnQubGVuZ3RoPjEpO3JldHVybiBsKHQsbixyKX0sZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzOihlLHIpPT57aWYocil7bGV0IHI9YVtlXSxsPW9bZV07aWYocil7aWYobCl7bGV0IGU9QXJyYXkobC5sZW5ndGgrci5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8bC5sZW5ndGg7cisrKWVbcl09bFtyXTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyllW2wubGVuZ3RoK29dPXJbb107cmV0dXJuIGV9cmV0dXJuIHJ9cmV0dXJuIGx8fHR9cmV0dXJuIG9bZV18fHR9fX0pKG0pfSkuY2FjaGUuZ2V0LHM9by5jYWNoZS5zZXQsaT1jLGMoZCl9LCguLi5lKT0+aSgoKC4uLmUpPT57bGV0IHIsbyx0PTAsbD0iIjtmb3IoO3Q8ZS5sZW5ndGg7KShyPWVbdCsrXSkmJihvPWcocikpJiYobCYmKGwrPSIgIiksbCs9byk7cmV0dXJuIGx9KSguLi5lKSl9KSgoKT0+e2xldCBlPWsoImNvbG9yIikscj1rKCJmb250Iiksbz1rKCJ0ZXh0IiksdD1rKCJmb250LXdlaWdodCIpLGw9aygidHJhY2tpbmciKSxuPWsoImxlYWRpbmciKSxhPWsoImJyZWFrcG9pbnQiKSxzPWsoImNvbnRhaW5lciIpLGk9aygic3BhY2luZyIpLGM9aygicmFkaXVzIiksZD1rKCJzaGFkb3ciKSxtPWsoImluc2V0LXNoYWRvdyIpLHA9aygidGV4dC1zaGFkb3ciKSxiPWsoImRyb3Atc2hhZG93IiksdT1rKCJibHVyIiksZj1rKCJwZXJzcGVjdGl2ZSIpLGc9aygiYXNwZWN0IiksaD1rKCJlYXNlIiksdz1rKCJhbmltYXRlIikseD0oKT0+WyJhdXRvIiwiYXZvaWQiLCJhbGwiLCJhdm9pZC1wYWdlIiwicGFnZSIsImxlZnQiLCJyaWdodCIsImNvbHVtbiJdLHk9KCk9PlsiY2VudGVyIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wLWxlZnQiLCJsZWZ0LXRvcCIsInRvcC1yaWdodCIsInJpZ2h0LXRvcCIsImJvdHRvbS1yaWdodCIsInJpZ2h0LWJvdHRvbSIsImJvdHRvbS1sZWZ0IiwibGVmdC1ib3R0b20iXSx2PSgpPT5bLi4ueSgpLEgsUl0sej0oKT0+WyJhdXRvIiwiaGlkZGVuIiwiY2xpcCIsInZpc2libGUiLCJzY3JvbGwiXSxqPSgpPT5bImF1dG8iLCJjb250YWluIiwibm9uZSJdLEM9KCk9PltILFIsaV0sRz0oKT0+W04sImZ1bGwiLCJhdXRvIiwuLi5DKCldLFc9KCk9PltVLCJub25lIiwic3ViZ3JpZCIsSCxSXSxGPSgpPT5bImF1dG8iLHtzcGFuOlsiZnVsbCIsVSxILFJdfSxVLEgsUl0sUD0oKT0+W1UsImF1dG8iLEgsUl0sVD0oKT0+WyJhdXRvIiwibWluIiwibWF4IiwiZnIiLEgsUl0sZXI9KCk9Plsic3RhcnQiLCJlbmQiLCJjZW50ZXIiLCJiZXR3ZWVuIiwiYXJvdW5kIiwiZXZlbmx5Iiwic3RyZXRjaCIsImJhc2VsaW5lIiwiY2VudGVyLXNhZmUiLCJlbmQtc2FmZSJdLGVvPSgpPT5bInN0YXJ0IiwiZW5kIiwiY2VudGVyIiwic3RyZXRjaCIsImNlbnRlci1zYWZlIiwiZW5kLXNhZmUiXSxldD0oKT0+WyJhdXRvIiwuLi5DKCldLGVsPSgpPT5bTiwiYXV0byIsImZ1bGwiLCJkdnciLCJkdmgiLCJsdnciLCJsdmgiLCJzdnciLCJzdmgiLCJtaW4iLCJtYXgiLCJmaXQiLC4uLkMoKV0sZW49KCk9PltOLCJzY3JlZW4iLCJmdWxsIiwiZHZ3IiwibHZ3Iiwic3Z3IiwibWluIiwibWF4IiwiZml0IiwuLi5DKCldLGVhPSgpPT5bTiwic2NyZWVuIiwiZnVsbCIsImxoIiwiZHZoIiwibHZoIiwic3ZoIiwibWluIiwibWF4IiwiZml0IiwuLi5DKCldLGVzPSgpPT5bZSxILFJdLGVpPSgpPT5bLi4ueSgpLFYsSyx7cG9zaXRpb246W0gsUl19XSxlYz0oKT0+WyJuby1yZXBlYXQiLHtyZXBlYXQ6WyIiLCJ4IiwieSIsInNwYWNlIiwicm91bmQiXX1dLGVkPSgpPT5bImF1dG8iLCJjb3ZlciIsImNvbnRhaW4iLFgsQSx7c2l6ZTpbSCxSXX1dLGVtPSgpPT5bJCxKLERdLGVwPSgpPT5bIiIsIm5vbmUiLCJmdWxsIixjLEgsUl0sZWI9KCk9PlsiIixJLEosRF0sZXU9KCk9Plsic29saWQiLCJkYXNoZWQiLCJkb3R0ZWQiLCJkb3VibGUiXSxlZj0oKT0+WyJub3JtYWwiLCJtdWx0aXBseSIsInNjcmVlbiIsIm92ZXJsYXkiLCJkYXJrZW4iLCJsaWdodGVuIiwiY29sb3ItZG9kZ2UiLCJjb2xvci1idXJuIiwiaGFyZC1saWdodCIsInNvZnQtbGlnaHQiLCJkaWZmZXJlbmNlIiwiZXhjbHVzaW9uIiwiaHVlIiwic2F0dXJhdGlvbiIsImNvbG9yIiwibHVtaW5vc2l0eSJdLGVnPSgpPT5bSSwkLFYsS10sZWg9KCk9PlsiIiwibm9uZSIsdSxILFJdLGVrPSgpPT5bIm5vbmUiLEksSCxSXSxldz0oKT0+WyJub25lIixJLEgsUl0sZXg9KCk9PltJLEgsUl0sZXk9KCk9PltOLCJmdWxsIiwuLi5DKCldO3JldHVybntjYWNoZVNpemU6NTAwLHRoZW1lOnthbmltYXRlOlsic3BpbiIsInBpbmciLCJwdWxzZSIsImJvdW5jZSJdLGFzcGVjdDpbInZpZGVvIl0sYmx1cjpbT10sYnJlYWtwb2ludDpbT10sY29sb3I6W1NdLGNvbnRhaW5lcjpbT10sImRyb3Atc2hhZG93IjpbT10sZWFzZTpbImluIiwib3V0IiwiaW4tb3V0Il0sZm9udDpbTV0sImZvbnQtd2VpZ2h0IjpbInRoaW4iLCJleHRyYWxpZ2h0IiwibGlnaHQiLCJub3JtYWwiLCJtZWRpdW0iLCJzZW1pYm9sZCIsImJvbGQiLCJleHRyYWJvbGQiLCJibGFjayJdLCJpbnNldC1zaGFkb3ciOltPXSxsZWFkaW5nOlsibm9uZSIsInRpZ2h0Iiwic251ZyIsIm5vcm1hbCIsInJlbGF4ZWQiLCJsb29zZSJdLHBlcnNwZWN0aXZlOlsiZHJhbWF0aWMiLCJuZWFyIiwibm9ybWFsIiwibWlkcmFuZ2UiLCJkaXN0YW50Iiwibm9uZSJdLHJhZGl1czpbT10sc2hhZG93OltPXSxzcGFjaW5nOlsicHgiLEldLHRleHQ6W09dLCJ0ZXh0LXNoYWRvdyI6W09dLHRyYWNraW5nOlsidGlnaHRlciIsInRpZ2h0Iiwibm9ybWFsIiwid2lkZSIsIndpZGVyIiwid2lkZXN0Il19LGNsYXNzR3JvdXBzOnthc3BlY3Q6W3thc3BlY3Q6WyJhdXRvIiwic3F1YXJlIixOLFIsSCxnXX1dLGNvbnRhaW5lcjpbImNvbnRhaW5lciJdLGNvbHVtbnM6W3tjb2x1bW5zOltJLFIsSCxzXX1dLCJicmVhay1hZnRlciI6W3siYnJlYWstYWZ0ZXIiOngoKX1dLCJicmVhay1iZWZvcmUiOlt7ImJyZWFrLWJlZm9yZSI6eCgpfV0sImJyZWFrLWluc2lkZSI6W3siYnJlYWstaW5zaWRlIjpbImF1dG8iLCJhdm9pZCIsImF2b2lkLXBhZ2UiLCJhdm9pZC1jb2x1bW4iXX1dLCJib3gtZGVjb3JhdGlvbiI6W3siYm94LWRlY29yYXRpb24iOlsic2xpY2UiLCJjbG9uZSJdfV0sYm94Olt7Ym94OlsiYm9yZGVyIiwiY29udGVudCJdfV0sZGlzcGxheTpbImJsb2NrIiwiaW5saW5lLWJsb2NrIiwiaW5saW5lIiwiZmxleCIsImlubGluZS1mbGV4IiwidGFibGUiLCJpbmxpbmUtdGFibGUiLCJ0YWJsZS1jYXB0aW9uIiwidGFibGUtY2VsbCIsInRhYmxlLWNvbHVtbiIsInRhYmxlLWNvbHVtbi1ncm91cCIsInRhYmxlLWZvb3Rlci1ncm91cCIsInRhYmxlLWhlYWRlci1ncm91cCIsInRhYmxlLXJvdy1ncm91cCIsInRhYmxlLXJvdyIsImZsb3ctcm9vdCIsImdyaWQiLCJpbmxpbmUtZ3JpZCIsImNvbnRlbnRzIiwibGlzdC1pdGVtIiwiaGlkZGVuIl0sc3I6WyJzci1vbmx5Iiwibm90LXNyLW9ubHkiXSxmbG9hdDpbe2Zsb2F0OlsicmlnaHQiLCJsZWZ0Iiwibm9uZSIsInN0YXJ0IiwiZW5kIl19XSxjbGVhcjpbe2NsZWFyOlsibGVmdCIsInJpZ2h0IiwiYm90aCIsIm5vbmUiLCJzdGFydCIsImVuZCJdfV0saXNvbGF0aW9uOlsiaXNvbGF0ZSIsImlzb2xhdGlvbi1hdXRvIl0sIm9iamVjdC1maXQiOlt7b2JqZWN0OlsiY29udGFpbiIsImNvdmVyIiwiZmlsbCIsIm5vbmUiLCJzY2FsZS1kb3duIl19XSwib2JqZWN0LXBvc2l0aW9uIjpbe29iamVjdDp2KCl9XSxvdmVyZmxvdzpbe292ZXJmbG93OnooKX1dLCJvdmVyZmxvdy14IjpbeyJvdmVyZmxvdy14Ijp6KCl9XSwib3ZlcmZsb3cteSI6W3sib3ZlcmZsb3cteSI6eigpfV0sb3ZlcnNjcm9sbDpbe292ZXJzY3JvbGw6aigpfV0sIm92ZXJzY3JvbGwteCI6W3sib3ZlcnNjcm9sbC14IjpqKCl9XSwib3ZlcnNjcm9sbC15IjpbeyJvdmVyc2Nyb2xsLXkiOmooKX1dLHBvc2l0aW9uOlsic3RhdGljIiwiZml4ZWQiLCJhYnNvbHV0ZSIsInJlbGF0aXZlIiwic3RpY2t5Il0saW5zZXQ6W3tpbnNldDpHKCl9XSwiaW5zZXQteCI6W3siaW5zZXQteCI6RygpfV0sImluc2V0LXkiOlt7Imluc2V0LXkiOkcoKX1dLHN0YXJ0Olt7Imluc2V0LXMiOkcoKSxzdGFydDpHKCl9XSxlbmQ6W3siaW5zZXQtZSI6RygpLGVuZDpHKCl9XSwiaW5zZXQtYnMiOlt7Imluc2V0LWJzIjpHKCl9XSwiaW5zZXQtYmUiOlt7Imluc2V0LWJlIjpHKCl9XSx0b3A6W3t0b3A6RygpfV0scmlnaHQ6W3tyaWdodDpHKCl9XSxib3R0b206W3tib3R0b206RygpfV0sbGVmdDpbe2xlZnQ6RygpfV0sdmlzaWJpbGl0eTpbInZpc2libGUiLCJpbnZpc2libGUiLCJjb2xsYXBzZSJdLHo6W3t6OltVLCJhdXRvIixILFJdfV0sYmFzaXM6W3tiYXNpczpbTiwiZnVsbCIsImF1dG8iLHMsLi4uQygpXX1dLCJmbGV4LWRpcmVjdGlvbiI6W3tmbGV4Olsicm93Iiwicm93LXJldmVyc2UiLCJjb2wiLCJjb2wtcmV2ZXJzZSJdfV0sImZsZXgtd3JhcCI6W3tmbGV4Olsibm93cmFwIiwid3JhcCIsIndyYXAtcmV2ZXJzZSJdfV0sZmxleDpbe2ZsZXg6W0ksTiwiYXV0byIsImluaXRpYWwiLCJub25lIixSXX1dLGdyb3c6W3tncm93OlsiIixJLEgsUl19XSxzaHJpbms6W3tzaHJpbms6WyIiLEksSCxSXX1dLG9yZGVyOlt7b3JkZXI6W1UsImZpcnN0IiwibGFzdCIsIm5vbmUiLEgsUl19XSwiZ3JpZC1jb2xzIjpbeyJncmlkLWNvbHMiOlcoKX1dLCJjb2wtc3RhcnQtZW5kIjpbe2NvbDpGKCl9XSwiY29sLXN0YXJ0IjpbeyJjb2wtc3RhcnQiOlAoKX1dLCJjb2wtZW5kIjpbeyJjb2wtZW5kIjpQKCl9XSwiZ3JpZC1yb3dzIjpbeyJncmlkLXJvd3MiOlcoKX1dLCJyb3ctc3RhcnQtZW5kIjpbe3JvdzpGKCl9XSwicm93LXN0YXJ0IjpbeyJyb3ctc3RhcnQiOlAoKX1dLCJyb3ctZW5kIjpbeyJyb3ctZW5kIjpQKCl9XSwiZ3JpZC1mbG93IjpbeyJncmlkLWZsb3ciOlsicm93IiwiY29sIiwiZGVuc2UiLCJyb3ctZGVuc2UiLCJjb2wtZGVuc2UiXX1dLCJhdXRvLWNvbHMiOlt7ImF1dG8tY29scyI6VCgpfV0sImF1dG8tcm93cyI6W3siYXV0by1yb3dzIjpUKCl9XSxnYXA6W3tnYXA6QygpfV0sImdhcC14IjpbeyJnYXAteCI6QygpfV0sImdhcC15IjpbeyJnYXAteSI6QygpfV0sImp1c3RpZnktY29udGVudCI6W3tqdXN0aWZ5OlsuLi5lcigpLCJub3JtYWwiXX1dLCJqdXN0aWZ5LWl0ZW1zIjpbeyJqdXN0aWZ5LWl0ZW1zIjpbLi4uZW8oKSwibm9ybWFsIl19XSwianVzdGlmeS1zZWxmIjpbeyJqdXN0aWZ5LXNlbGYiOlsiYXV0byIsLi4uZW8oKV19XSwiYWxpZ24tY29udGVudCI6W3tjb250ZW50Olsibm9ybWFsIiwuLi5lcigpXX1dLCJhbGlnbi1pdGVtcyI6W3tpdGVtczpbLi4uZW8oKSx7YmFzZWxpbmU6WyIiLCJsYXN0Il19XX1dLCJhbGlnbi1zZWxmIjpbe3NlbGY6WyJhdXRvIiwuLi5lbygpLHtiYXNlbGluZTpbIiIsImxhc3QiXX1dfV0sInBsYWNlLWNvbnRlbnQiOlt7InBsYWNlLWNvbnRlbnQiOmVyKCl9XSwicGxhY2UtaXRlbXMiOlt7InBsYWNlLWl0ZW1zIjpbLi4uZW8oKSwiYmFzZWxpbmUiXX1dLCJwbGFjZS1zZWxmIjpbeyJwbGFjZS1zZWxmIjpbImF1dG8iLC4uLmVvKCldfV0scDpbe3A6QygpfV0scHg6W3tweDpDKCl9XSxweTpbe3B5OkMoKX1dLHBzOlt7cHM6QygpfV0scGU6W3twZTpDKCl9XSxwYnM6W3twYnM6QygpfV0scGJlOlt7cGJlOkMoKX1dLHB0Olt7cHQ6QygpfV0scHI6W3twcjpDKCl9XSxwYjpbe3BiOkMoKX1dLHBsOlt7cGw6QygpfV0sbTpbe206ZXQoKX1dLG14Olt7bXg6ZXQoKX1dLG15Olt7bXk6ZXQoKX1dLG1zOlt7bXM6ZXQoKX1dLG1lOlt7bWU6ZXQoKX1dLG1iczpbe21iczpldCgpfV0sbWJlOlt7bWJlOmV0KCl9XSxtdDpbe210OmV0KCl9XSxtcjpbe21yOmV0KCl9XSxtYjpbe21iOmV0KCl9XSxtbDpbe21sOmV0KCl9XSwic3BhY2UteCI6W3sic3BhY2UteCI6QygpfV0sInNwYWNlLXgtcmV2ZXJzZSI6WyJzcGFjZS14LXJldmVyc2UiXSwic3BhY2UteSI6W3sic3BhY2UteSI6QygpfV0sInNwYWNlLXktcmV2ZXJzZSI6WyJzcGFjZS15LXJldmVyc2UiXSxzaXplOlt7c2l6ZTplbCgpfV0sImlubGluZS1zaXplIjpbe2lubGluZTpbImF1dG8iLC4uLmVuKCldfV0sIm1pbi1pbmxpbmUtc2l6ZSI6W3sibWluLWlubGluZSI6WyJhdXRvIiwuLi5lbigpXX1dLCJtYXgtaW5saW5lLXNpemUiOlt7Im1heC1pbmxpbmUiOlsibm9uZSIsLi4uZW4oKV19XSwiYmxvY2stc2l6ZSI6W3tibG9jazpbImF1dG8iLC4uLmVhKCldfV0sIm1pbi1ibG9jay1zaXplIjpbeyJtaW4tYmxvY2siOlsiYXV0byIsLi4uZWEoKV19XSwibWF4LWJsb2NrLXNpemUiOlt7Im1heC1ibG9jayI6WyJub25lIiwuLi5lYSgpXX1dLHc6W3t3OltzLCJzY3JlZW4iLC4uLmVsKCldfV0sIm1pbi13IjpbeyJtaW4tdyI6W3MsInNjcmVlbiIsIm5vbmUiLC4uLmVsKCldfV0sIm1heC13IjpbeyJtYXgtdyI6W3MsInNjcmVlbiIsIm5vbmUiLCJwcm9zZSIse3NjcmVlbjpbYV19LC4uLmVsKCldfV0saDpbe2g6WyJzY3JlZW4iLCJsaCIsLi4uZWwoKV19XSwibWluLWgiOlt7Im1pbi1oIjpbInNjcmVlbiIsImxoIiwibm9uZSIsLi4uZWwoKV19XSwibWF4LWgiOlt7Im1heC1oIjpbInNjcmVlbiIsImxoIiwuLi5lbCgpXX1dLCJmb250LXNpemUiOlt7dGV4dDpbImJhc2UiLG8sSixEXX1dLCJmb250LXNtb290aGluZyI6WyJhbnRpYWxpYXNlZCIsInN1YnBpeGVsLWFudGlhbGlhc2VkIl0sImZvbnQtc3R5bGUiOlsiaXRhbGljIiwibm90LWl0YWxpYyJdLCJmb250LXdlaWdodCI6W3tmb250Olt0LGVlLEJdfV0sImZvbnQtc3RyZXRjaCI6W3siZm9udC1zdHJldGNoIjpbInVsdHJhLWNvbmRlbnNlZCIsImV4dHJhLWNvbmRlbnNlZCIsImNvbmRlbnNlZCIsInNlbWktY29uZGVuc2VkIiwibm9ybWFsIiwic2VtaS1leHBhbmRlZCIsImV4cGFuZGVkIiwiZXh0cmEtZXhwYW5kZWQiLCJ1bHRyYS1leHBhbmRlZCIsJCxSXX1dLCJmb250LWZhbWlseSI6W3tmb250OltRLEUscl19XSwiZm9udC1mZWF0dXJlcyI6W3siZm9udC1mZWF0dXJlcyI6W1JdfV0sImZ2bi1ub3JtYWwiOlsibm9ybWFsLW51bXMiXSwiZnZuLW9yZGluYWwiOlsib3JkaW5hbCJdLCJmdm4tc2xhc2hlZC16ZXJvIjpbInNsYXNoZWQtemVybyJdLCJmdm4tZmlndXJlIjpbImxpbmluZy1udW1zIiwib2xkc3R5bGUtbnVtcyJdLCJmdm4tc3BhY2luZyI6WyJwcm9wb3J0aW9uYWwtbnVtcyIsInRhYnVsYXItbnVtcyJdLCJmdm4tZnJhY3Rpb24iOlsiZGlhZ29uYWwtZnJhY3Rpb25zIiwic3RhY2tlZC1mcmFjdGlvbnMiXSx0cmFja2luZzpbe3RyYWNraW5nOltsLEgsUl19XSwibGluZS1jbGFtcCI6W3sibGluZS1jbGFtcCI6W0ksIm5vbmUiLEgscV19XSxsZWFkaW5nOlt7bGVhZGluZzpbbiwuLi5DKCldfV0sImxpc3QtaW1hZ2UiOlt7Imxpc3QtaW1hZ2UiOlsibm9uZSIsSCxSXX1dLCJsaXN0LXN0eWxlLXBvc2l0aW9uIjpbe2xpc3Q6WyJpbnNpZGUiLCJvdXRzaWRlIl19XSwibGlzdC1zdHlsZS10eXBlIjpbe2xpc3Q6WyJkaXNjIiwiZGVjaW1hbCIsIm5vbmUiLEgsUl19XSwidGV4dC1hbGlnbm1lbnQiOlt7dGV4dDpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsImp1c3RpZnkiLCJzdGFydCIsImVuZCJdfV0sInBsYWNlaG9sZGVyLWNvbG9yIjpbe3BsYWNlaG9sZGVyOmVzKCl9XSwidGV4dC1jb2xvciI6W3t0ZXh0OmVzKCl9XSwidGV4dC1kZWNvcmF0aW9uIjpbInVuZGVybGluZSIsIm92ZXJsaW5lIiwibGluZS10aHJvdWdoIiwibm8tdW5kZXJsaW5lIl0sInRleHQtZGVjb3JhdGlvbi1zdHlsZSI6W3tkZWNvcmF0aW9uOlsuLi5ldSgpLCJ3YXZ5Il19XSwidGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyI6W3tkZWNvcmF0aW9uOltJLCJmcm9tLWZvbnQiLCJhdXRvIixILERdfV0sInRleHQtZGVjb3JhdGlvbi1jb2xvciI6W3tkZWNvcmF0aW9uOmVzKCl9XSwidW5kZXJsaW5lLW9mZnNldCI6W3sidW5kZXJsaW5lLW9mZnNldCI6W0ksImF1dG8iLEgsUl19XSwidGV4dC10cmFuc2Zvcm0iOlsidXBwZXJjYXNlIiwibG93ZXJjYXNlIiwiY2FwaXRhbGl6ZSIsIm5vcm1hbC1jYXNlIl0sInRleHQtb3ZlcmZsb3ciOlsidHJ1bmNhdGUiLCJ0ZXh0LWVsbGlwc2lzIiwidGV4dC1jbGlwIl0sInRleHQtd3JhcCI6W3t0ZXh0Olsid3JhcCIsIm5vd3JhcCIsImJhbGFuY2UiLCJwcmV0dHkiXX1dLGluZGVudDpbe2luZGVudDpDKCl9XSwidmVydGljYWwtYWxpZ24iOlt7YWxpZ246WyJiYXNlbGluZSIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSIsInRleHQtdG9wIiwidGV4dC1ib3R0b20iLCJzdWIiLCJzdXBlciIsSCxSXX1dLHdoaXRlc3BhY2U6W3t3aGl0ZXNwYWNlOlsibm9ybWFsIiwibm93cmFwIiwicHJlIiwicHJlLWxpbmUiLCJwcmUtd3JhcCIsImJyZWFrLXNwYWNlcyJdfV0sYnJlYWs6W3ticmVhazpbIm5vcm1hbCIsIndvcmRzIiwiYWxsIiwia2VlcCJdfV0sd3JhcDpbe3dyYXA6WyJicmVhay13b3JkIiwiYW55d2hlcmUiLCJub3JtYWwiXX1dLGh5cGhlbnM6W3toeXBoZW5zOlsibm9uZSIsIm1hbnVhbCIsImF1dG8iXX1dLGNvbnRlbnQ6W3tjb250ZW50Olsibm9uZSIsSCxSXX1dLCJiZy1hdHRhY2htZW50Ijpbe2JnOlsiZml4ZWQiLCJsb2NhbCIsInNjcm9sbCJdfV0sImJnLWNsaXAiOlt7ImJnLWNsaXAiOlsiYm9yZGVyIiwicGFkZGluZyIsImNvbnRlbnQiLCJ0ZXh0Il19XSwiYmctb3JpZ2luIjpbeyJiZy1vcmlnaW4iOlsiYm9yZGVyIiwicGFkZGluZyIsImNvbnRlbnQiXX1dLCJiZy1wb3NpdGlvbiI6W3tiZzplaSgpfV0sImJnLXJlcGVhdCI6W3tiZzplYygpfV0sImJnLXNpemUiOlt7Ymc6ZWQoKX1dLCJiZy1pbWFnZSI6W3tiZzpbIm5vbmUiLHtsaW5lYXI6W3t0bzpbInQiLCJ0ciIsInIiLCJiciIsImIiLCJibCIsImwiLCJ0bCJdfSxVLEgsUl0scmFkaWFsOlsiIixILFJdLGNvbmljOltVLEgsUl19LFksX119XSwiYmctY29sb3IiOlt7Ymc6ZXMoKX1dLCJncmFkaWVudC1mcm9tLXBvcyI6W3tmcm9tOmVtKCl9XSwiZ3JhZGllbnQtdmlhLXBvcyI6W3t2aWE6ZW0oKX1dLCJncmFkaWVudC10by1wb3MiOlt7dG86ZW0oKX1dLCJncmFkaWVudC1mcm9tIjpbe2Zyb206ZXMoKX1dLCJncmFkaWVudC12aWEiOlt7dmlhOmVzKCl9XSwiZ3JhZGllbnQtdG8iOlt7dG86ZXMoKX1dLHJvdW5kZWQ6W3tyb3VuZGVkOmVwKCl9XSwicm91bmRlZC1zIjpbeyJyb3VuZGVkLXMiOmVwKCl9XSwicm91bmRlZC1lIjpbeyJyb3VuZGVkLWUiOmVwKCl9XSwicm91bmRlZC10IjpbeyJyb3VuZGVkLXQiOmVwKCl9XSwicm91bmRlZC1yIjpbeyJyb3VuZGVkLXIiOmVwKCl9XSwicm91bmRlZC1iIjpbeyJyb3VuZGVkLWIiOmVwKCl9XSwicm91bmRlZC1sIjpbeyJyb3VuZGVkLWwiOmVwKCl9XSwicm91bmRlZC1zcyI6W3sicm91bmRlZC1zcyI6ZXAoKX1dLCJyb3VuZGVkLXNlIjpbeyJyb3VuZGVkLXNlIjplcCgpfV0sInJvdW5kZWQtZWUiOlt7InJvdW5kZWQtZWUiOmVwKCl9XSwicm91bmRlZC1lcyI6W3sicm91bmRlZC1lcyI6ZXAoKX1dLCJyb3VuZGVkLXRsIjpbeyJyb3VuZGVkLXRsIjplcCgpfV0sInJvdW5kZWQtdHIiOlt7InJvdW5kZWQtdHIiOmVwKCl9XSwicm91bmRlZC1iciI6W3sicm91bmRlZC1iciI6ZXAoKX1dLCJyb3VuZGVkLWJsIjpbeyJyb3VuZGVkLWJsIjplcCgpfV0sImJvcmRlci13Ijpbe2JvcmRlcjplYigpfV0sImJvcmRlci13LXgiOlt7ImJvcmRlci14IjplYigpfV0sImJvcmRlci13LXkiOlt7ImJvcmRlci15IjplYigpfV0sImJvcmRlci13LXMiOlt7ImJvcmRlci1zIjplYigpfV0sImJvcmRlci13LWUiOlt7ImJvcmRlci1lIjplYigpfV0sImJvcmRlci13LWJzIjpbeyJib3JkZXItYnMiOmViKCl9XSwiYm9yZGVyLXctYmUiOlt7ImJvcmRlci1iZSI6ZWIoKX1dLCJib3JkZXItdy10IjpbeyJib3JkZXItdCI6ZWIoKX1dLCJib3JkZXItdy1yIjpbeyJib3JkZXItciI6ZWIoKX1dLCJib3JkZXItdy1iIjpbeyJib3JkZXItYiI6ZWIoKX1dLCJib3JkZXItdy1sIjpbeyJib3JkZXItbCI6ZWIoKX1dLCJkaXZpZGUteCI6W3siZGl2aWRlLXgiOmViKCl9XSwiZGl2aWRlLXgtcmV2ZXJzZSI6WyJkaXZpZGUteC1yZXZlcnNlIl0sImRpdmlkZS15IjpbeyJkaXZpZGUteSI6ZWIoKX1dLCJkaXZpZGUteS1yZXZlcnNlIjpbImRpdmlkZS15LXJldmVyc2UiXSwiYm9yZGVyLXN0eWxlIjpbe2JvcmRlcjpbLi4uZXUoKSwiaGlkZGVuIiwibm9uZSJdfV0sImRpdmlkZS1zdHlsZSI6W3tkaXZpZGU6Wy4uLmV1KCksImhpZGRlbiIsIm5vbmUiXX1dLCJib3JkZXItY29sb3IiOlt7Ym9yZGVyOmVzKCl9XSwiYm9yZGVyLWNvbG9yLXgiOlt7ImJvcmRlci14IjplcygpfV0sImJvcmRlci1jb2xvci15IjpbeyJib3JkZXIteSI6ZXMoKX1dLCJib3JkZXItY29sb3ItcyI6W3siYm9yZGVyLXMiOmVzKCl9XSwiYm9yZGVyLWNvbG9yLWUiOlt7ImJvcmRlci1lIjplcygpfV0sImJvcmRlci1jb2xvci1icyI6W3siYm9yZGVyLWJzIjplcygpfV0sImJvcmRlci1jb2xvci1iZSI6W3siYm9yZGVyLWJlIjplcygpfV0sImJvcmRlci1jb2xvci10IjpbeyJib3JkZXItdCI6ZXMoKX1dLCJib3JkZXItY29sb3ItciI6W3siYm9yZGVyLXIiOmVzKCl9XSwiYm9yZGVyLWNvbG9yLWIiOlt7ImJvcmRlci1iIjplcygpfV0sImJvcmRlci1jb2xvci1sIjpbeyJib3JkZXItbCI6ZXMoKX1dLCJkaXZpZGUtY29sb3IiOlt7ZGl2aWRlOmVzKCl9XSwib3V0bGluZS1zdHlsZSI6W3tvdXRsaW5lOlsuLi5ldSgpLCJub25lIiwiaGlkZGVuIl19XSwib3V0bGluZS1vZmZzZXQiOlt7Im91dGxpbmUtb2Zmc2V0IjpbSSxILFJdfV0sIm91dGxpbmUtdyI6W3tvdXRsaW5lOlsiIixJLEosRF19XSwib3V0bGluZS1jb2xvciI6W3tvdXRsaW5lOmVzKCl9XSxzaGFkb3c6W3tzaGFkb3c6WyIiLCJub25lIixkLFosTF19XSwic2hhZG93LWNvbG9yIjpbe3NoYWRvdzplcygpfV0sImluc2V0LXNoYWRvdyI6W3siaW5zZXQtc2hhZG93IjpbIm5vbmUiLG0sWixMXX1dLCJpbnNldC1zaGFkb3ctY29sb3IiOlt7Imluc2V0LXNoYWRvdyI6ZXMoKX1dLCJyaW5nLXciOlt7cmluZzplYigpfV0sInJpbmctdy1pbnNldCI6WyJyaW5nLWluc2V0Il0sInJpbmctY29sb3IiOlt7cmluZzplcygpfV0sInJpbmctb2Zmc2V0LXciOlt7InJpbmctb2Zmc2V0IjpbSSxEXX1dLCJyaW5nLW9mZnNldC1jb2xvciI6W3sicmluZy1vZmZzZXQiOmVzKCl9XSwiaW5zZXQtcmluZy13IjpbeyJpbnNldC1yaW5nIjplYigpfV0sImluc2V0LXJpbmctY29sb3IiOlt7Imluc2V0LXJpbmciOmVzKCl9XSwidGV4dC1zaGFkb3ciOlt7InRleHQtc2hhZG93IjpbIm5vbmUiLHAsWixMXX1dLCJ0ZXh0LXNoYWRvdy1jb2xvciI6W3sidGV4dC1zaGFkb3ciOmVzKCl9XSxvcGFjaXR5Olt7b3BhY2l0eTpbSSxILFJdfV0sIm1peC1ibGVuZCI6W3sibWl4LWJsZW5kIjpbLi4uZWYoKSwicGx1cy1kYXJrZXIiLCJwbHVzLWxpZ2h0ZXIiXX1dLCJiZy1ibGVuZCI6W3siYmctYmxlbmQiOmVmKCl9XSwibWFzay1jbGlwIjpbeyJtYXNrLWNsaXAiOlsiYm9yZGVyIiwicGFkZGluZyIsImNvbnRlbnQiLCJmaWxsIiwic3Ryb2tlIiwidmlldyJdfSwibWFzay1uby1jbGlwIl0sIm1hc2stY29tcG9zaXRlIjpbe21hc2s6WyJhZGQiLCJzdWJ0cmFjdCIsImludGVyc2VjdCIsImV4Y2x1ZGUiXX1dLCJtYXNrLWltYWdlLWxpbmVhci1wb3MiOlt7Im1hc2stbGluZWFyIjpbSV19XSwibWFzay1pbWFnZS1saW5lYXItZnJvbS1wb3MiOlt7Im1hc2stbGluZWFyLWZyb20iOmVnKCl9XSwibWFzay1pbWFnZS1saW5lYXItdG8tcG9zIjpbeyJtYXNrLWxpbmVhci10byI6ZWcoKX1dLCJtYXNrLWltYWdlLWxpbmVhci1mcm9tLWNvbG9yIjpbeyJtYXNrLWxpbmVhci1mcm9tIjplcygpfV0sIm1hc2staW1hZ2UtbGluZWFyLXRvLWNvbG9yIjpbeyJtYXNrLWxpbmVhci10byI6ZXMoKX1dLCJtYXNrLWltYWdlLXQtZnJvbS1wb3MiOlt7Im1hc2stdC1mcm9tIjplZygpfV0sIm1hc2staW1hZ2UtdC10by1wb3MiOlt7Im1hc2stdC10byI6ZWcoKX1dLCJtYXNrLWltYWdlLXQtZnJvbS1jb2xvciI6W3sibWFzay10LWZyb20iOmVzKCl9XSwibWFzay1pbWFnZS10LXRvLWNvbG9yIjpbeyJtYXNrLXQtdG8iOmVzKCl9XSwibWFzay1pbWFnZS1yLWZyb20tcG9zIjpbeyJtYXNrLXItZnJvbSI6ZWcoKX1dLCJtYXNrLWltYWdlLXItdG8tcG9zIjpbeyJtYXNrLXItdG8iOmVnKCl9XSwibWFzay1pbWFnZS1yLWZyb20tY29sb3IiOlt7Im1hc2stci1mcm9tIjplcygpfV0sIm1hc2staW1hZ2Utci10by1jb2xvciI6W3sibWFzay1yLXRvIjplcygpfV0sIm1hc2staW1hZ2UtYi1mcm9tLXBvcyI6W3sibWFzay1iLWZyb20iOmVnKCl9XSwibWFzay1pbWFnZS1iLXRvLXBvcyI6W3sibWFzay1iLXRvIjplZygpfV0sIm1hc2staW1hZ2UtYi1mcm9tLWNvbG9yIjpbeyJtYXNrLWItZnJvbSI6ZXMoKX1dLCJtYXNrLWltYWdlLWItdG8tY29sb3IiOlt7Im1hc2stYi10byI6ZXMoKX1dLCJtYXNrLWltYWdlLWwtZnJvbS1wb3MiOlt7Im1hc2stbC1mcm9tIjplZygpfV0sIm1hc2staW1hZ2UtbC10by1wb3MiOlt7Im1hc2stbC10byI6ZWcoKX1dLCJtYXNrLWltYWdlLWwtZnJvbS1jb2xvciI6W3sibWFzay1sLWZyb20iOmVzKCl9XSwibWFzay1pbWFnZS1sLXRvLWNvbG9yIjpbeyJtYXNrLWwtdG8iOmVzKCl9XSwibWFzay1pbWFnZS14LWZyb20tcG9zIjpbeyJtYXNrLXgtZnJvbSI6ZWcoKX1dLCJtYXNrLWltYWdlLXgtdG8tcG9zIjpbeyJtYXNrLXgtdG8iOmVnKCl9XSwibWFzay1pbWFnZS14LWZyb20tY29sb3IiOlt7Im1hc2steC1mcm9tIjplcygpfV0sIm1hc2staW1hZ2UteC10by1jb2xvciI6W3sibWFzay14LXRvIjplcygpfV0sIm1hc2staW1hZ2UteS1mcm9tLXBvcyI6W3sibWFzay15LWZyb20iOmVnKCl9XSwibWFzay1pbWFnZS15LXRvLXBvcyI6W3sibWFzay15LXRvIjplZygpfV0sIm1hc2staW1hZ2UteS1mcm9tLWNvbG9yIjpbeyJtYXNrLXktZnJvbSI6ZXMoKX1dLCJtYXNrLWltYWdlLXktdG8tY29sb3IiOlt7Im1hc2steS10byI6ZXMoKX1dLCJtYXNrLWltYWdlLXJhZGlhbCI6W3sibWFzay1yYWRpYWwiOltILFJdfV0sIm1hc2staW1hZ2UtcmFkaWFsLWZyb20tcG9zIjpbeyJtYXNrLXJhZGlhbC1mcm9tIjplZygpfV0sIm1hc2staW1hZ2UtcmFkaWFsLXRvLXBvcyI6W3sibWFzay1yYWRpYWwtdG8iOmVnKCl9XSwibWFzay1pbWFnZS1yYWRpYWwtZnJvbS1jb2xvciI6W3sibWFzay1yYWRpYWwtZnJvbSI6ZXMoKX1dLCJtYXNrLWltYWdlLXJhZGlhbC10by1jb2xvciI6W3sibWFzay1yYWRpYWwtdG8iOmVzKCl9XSwibWFzay1pbWFnZS1yYWRpYWwtc2hhcGUiOlt7Im1hc2stcmFkaWFsIjpbImNpcmNsZSIsImVsbGlwc2UiXX1dLCJtYXNrLWltYWdlLXJhZGlhbC1zaXplIjpbeyJtYXNrLXJhZGlhbCI6W3tjbG9zZXN0Olsic2lkZSIsImNvcm5lciJdLGZhcnRoZXN0Olsic2lkZSIsImNvcm5lciJdfV19XSwibWFzay1pbWFnZS1yYWRpYWwtcG9zIjpbeyJtYXNrLXJhZGlhbC1hdCI6eSgpfV0sIm1hc2staW1hZ2UtY29uaWMtcG9zIjpbeyJtYXNrLWNvbmljIjpbSV19XSwibWFzay1pbWFnZS1jb25pYy1mcm9tLXBvcyI6W3sibWFzay1jb25pYy1mcm9tIjplZygpfV0sIm1hc2staW1hZ2UtY29uaWMtdG8tcG9zIjpbeyJtYXNrLWNvbmljLXRvIjplZygpfV0sIm1hc2staW1hZ2UtY29uaWMtZnJvbS1jb2xvciI6W3sibWFzay1jb25pYy1mcm9tIjplcygpfV0sIm1hc2staW1hZ2UtY29uaWMtdG8tY29sb3IiOlt7Im1hc2stY29uaWMtdG8iOmVzKCl9XSwibWFzay1tb2RlIjpbe21hc2s6WyJhbHBoYSIsImx1bWluYW5jZSIsIm1hdGNoIl19XSwibWFzay1vcmlnaW4iOlt7Im1hc2stb3JpZ2luIjpbImJvcmRlciIsInBhZGRpbmciLCJjb250ZW50IiwiZmlsbCIsInN0cm9rZSIsInZpZXciXX1dLCJtYXNrLXBvc2l0aW9uIjpbe21hc2s6ZWkoKX1dLCJtYXNrLXJlcGVhdCI6W3ttYXNrOmVjKCl9XSwibWFzay1zaXplIjpbe21hc2s6ZWQoKX1dLCJtYXNrLXR5cGUiOlt7Im1hc2stdHlwZSI6WyJhbHBoYSIsImx1bWluYW5jZSJdfV0sIm1hc2staW1hZ2UiOlt7bWFzazpbIm5vbmUiLEgsUl19XSxmaWx0ZXI6W3tmaWx0ZXI6WyIiLCJub25lIixILFJdfV0sYmx1cjpbe2JsdXI6ZWgoKX1dLGJyaWdodG5lc3M6W3ticmlnaHRuZXNzOltJLEgsUl19XSxjb250cmFzdDpbe2NvbnRyYXN0OltJLEgsUl19XSwiZHJvcC1zaGFkb3ciOlt7ImRyb3Atc2hhZG93IjpbIiIsIm5vbmUiLGIsWixMXX1dLCJkcm9wLXNoYWRvdy1jb2xvciI6W3siZHJvcC1zaGFkb3ciOmVzKCl9XSxncmF5c2NhbGU6W3tncmF5c2NhbGU6WyIiLEksSCxSXX1dLCJodWUtcm90YXRlIjpbeyJodWUtcm90YXRlIjpbSSxILFJdfV0saW52ZXJ0Olt7aW52ZXJ0OlsiIixJLEgsUl19XSxzYXR1cmF0ZTpbe3NhdHVyYXRlOltJLEgsUl19XSxzZXBpYTpbe3NlcGlhOlsiIixJLEgsUl19XSwiYmFja2Ryb3AtZmlsdGVyIjpbeyJiYWNrZHJvcC1maWx0ZXIiOlsiIiwibm9uZSIsSCxSXX1dLCJiYWNrZHJvcC1ibHVyIjpbeyJiYWNrZHJvcC1ibHVyIjplaCgpfV0sImJhY2tkcm9wLWJyaWdodG5lc3MiOlt7ImJhY2tkcm9wLWJyaWdodG5lc3MiOltJLEgsUl19XSwiYmFja2Ryb3AtY29udHJhc3QiOlt7ImJhY2tkcm9wLWNvbnRyYXN0IjpbSSxILFJdfV0sImJhY2tkcm9wLWdyYXlzY2FsZSI6W3siYmFja2Ryb3AtZ3JheXNjYWxlIjpbIiIsSSxILFJdfV0sImJhY2tkcm9wLWh1ZS1yb3RhdGUiOlt7ImJhY2tkcm9wLWh1ZS1yb3RhdGUiOltJLEgsUl19XSwiYmFja2Ryb3AtaW52ZXJ0IjpbeyJiYWNrZHJvcC1pbnZlcnQiOlsiIixJLEgsUl19XSwiYmFja2Ryb3Atb3BhY2l0eSI6W3siYmFja2Ryb3Atb3BhY2l0eSI6W0ksSCxSXX1dLCJiYWNrZHJvcC1zYXR1cmF0ZSI6W3siYmFja2Ryb3Atc2F0dXJhdGUiOltJLEgsUl19XSwiYmFja2Ryb3Atc2VwaWEiOlt7ImJhY2tkcm9wLXNlcGlhIjpbIiIsSSxILFJdfV0sImJvcmRlci1jb2xsYXBzZSI6W3tib3JkZXI6WyJjb2xsYXBzZSIsInNlcGFyYXRlIl19XSwiYm9yZGVyLXNwYWNpbmciOlt7ImJvcmRlci1zcGFjaW5nIjpDKCl9XSwiYm9yZGVyLXNwYWNpbmcteCI6W3siYm9yZGVyLXNwYWNpbmcteCI6QygpfV0sImJvcmRlci1zcGFjaW5nLXkiOlt7ImJvcmRlci1zcGFjaW5nLXkiOkMoKX1dLCJ0YWJsZS1sYXlvdXQiOlt7dGFibGU6WyJhdXRvIiwiZml4ZWQiXX1dLGNhcHRpb246W3tjYXB0aW9uOlsidG9wIiwiYm90dG9tIl19XSx0cmFuc2l0aW9uOlt7dHJhbnNpdGlvbjpbIiIsImFsbCIsImNvbG9ycyIsIm9wYWNpdHkiLCJzaGFkb3ciLCJ0cmFuc2Zvcm0iLCJub25lIixILFJdfV0sInRyYW5zaXRpb24tYmVoYXZpb3IiOlt7dHJhbnNpdGlvbjpbIm5vcm1hbCIsImRpc2NyZXRlIl19XSxkdXJhdGlvbjpbe2R1cmF0aW9uOltJLCJpbml0aWFsIixILFJdfV0sZWFzZTpbe2Vhc2U6WyJsaW5lYXIiLCJpbml0aWFsIixoLEgsUl19XSxkZWxheTpbe2RlbGF5OltJLEgsUl19XSxhbmltYXRlOlt7YW5pbWF0ZTpbIm5vbmUiLHcsSCxSXX1dLGJhY2tmYWNlOlt7YmFja2ZhY2U6WyJoaWRkZW4iLCJ2aXNpYmxlIl19XSxwZXJzcGVjdGl2ZTpbe3BlcnNwZWN0aXZlOltmLEgsUl19XSwicGVyc3BlY3RpdmUtb3JpZ2luIjpbeyJwZXJzcGVjdGl2ZS1vcmlnaW4iOnYoKX1dLHJvdGF0ZTpbe3JvdGF0ZTplaygpfV0sInJvdGF0ZS14IjpbeyJyb3RhdGUteCI6ZWsoKX1dLCJyb3RhdGUteSI6W3sicm90YXRlLXkiOmVrKCl9XSwicm90YXRlLXoiOlt7InJvdGF0ZS16IjplaygpfV0sc2NhbGU6W3tzY2FsZTpldygpfV0sInNjYWxlLXgiOlt7InNjYWxlLXgiOmV3KCl9XSwic2NhbGUteSI6W3sic2NhbGUteSI6ZXcoKX1dLCJzY2FsZS16IjpbeyJzY2FsZS16IjpldygpfV0sInNjYWxlLTNkIjpbInNjYWxlLTNkIl0sc2tldzpbe3NrZXc6ZXgoKX1dLCJza2V3LXgiOlt7InNrZXcteCI6ZXgoKX1dLCJza2V3LXkiOlt7InNrZXcteSI6ZXgoKX1dLHRyYW5zZm9ybTpbe3RyYW5zZm9ybTpbSCxSLCIiLCJub25lIiwiZ3B1IiwiY3B1Il19XSwidHJhbnNmb3JtLW9yaWdpbiI6W3tvcmlnaW46digpfV0sInRyYW5zZm9ybS1zdHlsZSI6W3t0cmFuc2Zvcm06WyIzZCIsImZsYXQiXX1dLHRyYW5zbGF0ZTpbe3RyYW5zbGF0ZTpleSgpfV0sInRyYW5zbGF0ZS14IjpbeyJ0cmFuc2xhdGUteCI6ZXkoKX1dLCJ0cmFuc2xhdGUteSI6W3sidHJhbnNsYXRlLXkiOmV5KCl9XSwidHJhbnNsYXRlLXoiOlt7InRyYW5zbGF0ZS16IjpleSgpfV0sInRyYW5zbGF0ZS1ub25lIjpbInRyYW5zbGF0ZS1ub25lIl0sYWNjZW50Olt7YWNjZW50OmVzKCl9XSxhcHBlYXJhbmNlOlt7YXBwZWFyYW5jZTpbIm5vbmUiLCJhdXRvIl19XSwiY2FyZXQtY29sb3IiOlt7Y2FyZXQ6ZXMoKX1dLCJjb2xvci1zY2hlbWUiOlt7c2NoZW1lOlsibm9ybWFsIiwiZGFyayIsImxpZ2h0IiwibGlnaHQtZGFyayIsIm9ubHktZGFyayIsIm9ubHktbGlnaHQiXX1dLGN1cnNvcjpbe2N1cnNvcjpbImF1dG8iLCJkZWZhdWx0IiwicG9pbnRlciIsIndhaXQiLCJ0ZXh0IiwibW92ZSIsImhlbHAiLCJub3QtYWxsb3dlZCIsIm5vbmUiLCJjb250ZXh0LW1lbnUiLCJwcm9ncmVzcyIsImNlbGwiLCJjcm9zc2hhaXIiLCJ2ZXJ0aWNhbC10ZXh0IiwiYWxpYXMiLCJjb3B5Iiwibm8tZHJvcCIsImdyYWIiLCJncmFiYmluZyIsImFsbC1zY3JvbGwiLCJjb2wtcmVzaXplIiwicm93LXJlc2l6ZSIsIm4tcmVzaXplIiwiZS1yZXNpemUiLCJzLXJlc2l6ZSIsInctcmVzaXplIiwibmUtcmVzaXplIiwibnctcmVzaXplIiwic2UtcmVzaXplIiwic3ctcmVzaXplIiwiZXctcmVzaXplIiwibnMtcmVzaXplIiwibmVzdy1yZXNpemUiLCJud3NlLXJlc2l6ZSIsInpvb20taW4iLCJ6b29tLW91dCIsSCxSXX1dLCJmaWVsZC1zaXppbmciOlt7ImZpZWxkLXNpemluZyI6WyJmaXhlZCIsImNvbnRlbnQiXX1dLCJwb2ludGVyLWV2ZW50cyI6W3sicG9pbnRlci1ldmVudHMiOlsiYXV0byIsIm5vbmUiXX1dLHJlc2l6ZTpbe3Jlc2l6ZTpbIm5vbmUiLCIiLCJ5IiwieCJdfV0sInNjcm9sbC1iZWhhdmlvciI6W3tzY3JvbGw6WyJhdXRvIiwic21vb3RoIl19XSwic2Nyb2xsLW0iOlt7InNjcm9sbC1tIjpDKCl9XSwic2Nyb2xsLW14IjpbeyJzY3JvbGwtbXgiOkMoKX1dLCJzY3JvbGwtbXkiOlt7InNjcm9sbC1teSI6QygpfV0sInNjcm9sbC1tcyI6W3sic2Nyb2xsLW1zIjpDKCl9XSwic2Nyb2xsLW1lIjpbeyJzY3JvbGwtbWUiOkMoKX1dLCJzY3JvbGwtbWJzIjpbeyJzY3JvbGwtbWJzIjpDKCl9XSwic2Nyb2xsLW1iZSI6W3sic2Nyb2xsLW1iZSI6QygpfV0sInNjcm9sbC1tdCI6W3sic2Nyb2xsLW10IjpDKCl9XSwic2Nyb2xsLW1yIjpbeyJzY3JvbGwtbXIiOkMoKX1dLCJzY3JvbGwtbWIiOlt7InNjcm9sbC1tYiI6QygpfV0sInNjcm9sbC1tbCI6W3sic2Nyb2xsLW1sIjpDKCl9XSwic2Nyb2xsLXAiOlt7InNjcm9sbC1wIjpDKCl9XSwic2Nyb2xsLXB4IjpbeyJzY3JvbGwtcHgiOkMoKX1dLCJzY3JvbGwtcHkiOlt7InNjcm9sbC1weSI6QygpfV0sInNjcm9sbC1wcyI6W3sic2Nyb2xsLXBzIjpDKCl9XSwic2Nyb2xsLXBlIjpbeyJzY3JvbGwtcGUiOkMoKX1dLCJzY3JvbGwtcGJzIjpbeyJzY3JvbGwtcGJzIjpDKCl9XSwic2Nyb2xsLXBiZSI6W3sic2Nyb2xsLXBiZSI6QygpfV0sInNjcm9sbC1wdCI6W3sic2Nyb2xsLXB0IjpDKCl9XSwic2Nyb2xsLXByIjpbeyJzY3JvbGwtcHIiOkMoKX1dLCJzY3JvbGwtcGIiOlt7InNjcm9sbC1wYiI6QygpfV0sInNjcm9sbC1wbCI6W3sic2Nyb2xsLXBsIjpDKCl9XSwic25hcC1hbGlnbiI6W3tzbmFwOlsic3RhcnQiLCJlbmQiLCJjZW50ZXIiLCJhbGlnbi1ub25lIl19XSwic25hcC1zdG9wIjpbe3NuYXA6WyJub3JtYWwiLCJhbHdheXMiXX1dLCJzbmFwLXR5cGUiOlt7c25hcDpbIm5vbmUiLCJ4IiwieSIsImJvdGgiXX1dLCJzbmFwLXN0cmljdG5lc3MiOlt7c25hcDpbIm1hbmRhdG9yeSIsInByb3hpbWl0eSJdfV0sdG91Y2g6W3t0b3VjaDpbImF1dG8iLCJub25lIiwibWFuaXB1bGF0aW9uIl19XSwidG91Y2gteCI6W3sidG91Y2gtcGFuIjpbIngiLCJsZWZ0IiwicmlnaHQiXX1dLCJ0b3VjaC15IjpbeyJ0b3VjaC1wYW4iOlsieSIsInVwIiwiZG93biJdfV0sInRvdWNoLXB6IjpbInRvdWNoLXBpbmNoLXpvb20iXSxzZWxlY3Q6W3tzZWxlY3Q6WyJub25lIiwidGV4dCIsImFsbCIsImF1dG8iXX1dLCJ3aWxsLWNoYW5nZSI6W3sid2lsbC1jaGFuZ2UiOlsiYXV0byIsInNjcm9sbCIsImNvbnRlbnRzIiwidHJhbnNmb3JtIixILFJdfV0sZmlsbDpbe2ZpbGw6WyJub25lIiwuLi5lcygpXX1dLCJzdHJva2UtdyI6W3tzdHJva2U6W0ksSixELHFdfV0sc3Ryb2tlOlt7c3Ryb2tlOlsibm9uZSIsLi4uZXMoKV19XSwiZm9yY2VkLWNvbG9yLWFkanVzdCI6W3siZm9yY2VkLWNvbG9yLWFkanVzdCI6WyJhdXRvIiwibm9uZSJdfV19LGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6e292ZXJmbG93Olsib3ZlcmZsb3cteCIsIm92ZXJmbG93LXkiXSxvdmVyc2Nyb2xsOlsib3ZlcnNjcm9sbC14Iiwib3ZlcnNjcm9sbC15Il0saW5zZXQ6WyJpbnNldC14IiwiaW5zZXQteSIsImluc2V0LWJzIiwiaW5zZXQtYmUiLCJzdGFydCIsImVuZCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCJdLCJpbnNldC14IjpbInJpZ2h0IiwibGVmdCJdLCJpbnNldC15IjpbInRvcCIsImJvdHRvbSJdLGZsZXg6WyJiYXNpcyIsImdyb3ciLCJzaHJpbmsiXSxnYXA6WyJnYXAteCIsImdhcC15Il0scDpbInB4IiwicHkiLCJwcyIsInBlIiwicGJzIiwicGJlIiwicHQiLCJwciIsInBiIiwicGwiXSxweDpbInByIiwicGwiXSxweTpbInB0IiwicGIiXSxtOlsibXgiLCJteSIsIm1zIiwibWUiLCJtYnMiLCJtYmUiLCJtdCIsIm1yIiwibWIiLCJtbCJdLG14OlsibXIiLCJtbCJdLG15OlsibXQiLCJtYiJdLHNpemU6WyJ3IiwiaCJdLCJmb250LXNpemUiOlsibGVhZGluZyJdLCJmdm4tbm9ybWFsIjpbImZ2bi1vcmRpbmFsIiwiZnZuLXNsYXNoZWQtemVybyIsImZ2bi1maWd1cmUiLCJmdm4tc3BhY2luZyIsImZ2bi1mcmFjdGlvbiJdLCJmdm4tb3JkaW5hbCI6WyJmdm4tbm9ybWFsIl0sImZ2bi1zbGFzaGVkLXplcm8iOlsiZnZuLW5vcm1hbCJdLCJmdm4tZmlndXJlIjpbImZ2bi1ub3JtYWwiXSwiZnZuLXNwYWNpbmciOlsiZnZuLW5vcm1hbCJdLCJmdm4tZnJhY3Rpb24iOlsiZnZuLW5vcm1hbCJdLCJsaW5lLWNsYW1wIjpbImRpc3BsYXkiLCJvdmVyZmxvdyJdLHJvdW5kZWQ6WyJyb3VuZGVkLXMiLCJyb3VuZGVkLWUiLCJyb3VuZGVkLXQiLCJyb3VuZGVkLXIiLCJyb3VuZGVkLWIiLCJyb3VuZGVkLWwiLCJyb3VuZGVkLXNzIiwicm91bmRlZC1zZSIsInJvdW5kZWQtZWUiLCJyb3VuZGVkLWVzIiwicm91bmRlZC10bCIsInJvdW5kZWQtdHIiLCJyb3VuZGVkLWJyIiwicm91bmRlZC1ibCJdLCJyb3VuZGVkLXMiOlsicm91bmRlZC1zcyIsInJvdW5kZWQtZXMiXSwicm91bmRlZC1lIjpbInJvdW5kZWQtc2UiLCJyb3VuZGVkLWVlIl0sInJvdW5kZWQtdCI6WyJyb3VuZGVkLXRsIiwicm91bmRlZC10ciJdLCJyb3VuZGVkLXIiOlsicm91bmRlZC10ciIsInJvdW5kZWQtYnIiXSwicm91bmRlZC1iIjpbInJvdW5kZWQtYnIiLCJyb3VuZGVkLWJsIl0sInJvdW5kZWQtbCI6WyJyb3VuZGVkLXRsIiwicm91bmRlZC1ibCJdLCJib3JkZXItc3BhY2luZyI6WyJib3JkZXItc3BhY2luZy14IiwiYm9yZGVyLXNwYWNpbmcteSJdLCJib3JkZXItdyI6WyJib3JkZXItdy14IiwiYm9yZGVyLXcteSIsImJvcmRlci13LXMiLCJib3JkZXItdy1lIiwiYm9yZGVyLXctYnMiLCJib3JkZXItdy1iZSIsImJvcmRlci13LXQiLCJib3JkZXItdy1yIiwiYm9yZGVyLXctYiIsImJvcmRlci13LWwiXSwiYm9yZGVyLXcteCI6WyJib3JkZXItdy1yIiwiYm9yZGVyLXctbCJdLCJib3JkZXItdy15IjpbImJvcmRlci13LXQiLCJib3JkZXItdy1iIl0sImJvcmRlci1jb2xvciI6WyJib3JkZXItY29sb3IteCIsImJvcmRlci1jb2xvci15IiwiYm9yZGVyLWNvbG9yLXMiLCJib3JkZXItY29sb3ItZSIsImJvcmRlci1jb2xvci1icyIsImJvcmRlci1jb2xvci1iZSIsImJvcmRlci1jb2xvci10IiwiYm9yZGVyLWNvbG9yLXIiLCJib3JkZXItY29sb3ItYiIsImJvcmRlci1jb2xvci1sIl0sImJvcmRlci1jb2xvci14IjpbImJvcmRlci1jb2xvci1yIiwiYm9yZGVyLWNvbG9yLWwiXSwiYm9yZGVyLWNvbG9yLXkiOlsiYm9yZGVyLWNvbG9yLXQiLCJib3JkZXItY29sb3ItYiJdLHRyYW5zbGF0ZTpbInRyYW5zbGF0ZS14IiwidHJhbnNsYXRlLXkiLCJ0cmFuc2xhdGUtbm9uZSJdLCJ0cmFuc2xhdGUtbm9uZSI6WyJ0cmFuc2xhdGUiLCJ0cmFuc2xhdGUteCIsInRyYW5zbGF0ZS15IiwidHJhbnNsYXRlLXoiXSwic2Nyb2xsLW0iOlsic2Nyb2xsLW14Iiwic2Nyb2xsLW15Iiwic2Nyb2xsLW1zIiwic2Nyb2xsLW1lIiwic2Nyb2xsLW1icyIsInNjcm9sbC1tYmUiLCJzY3JvbGwtbXQiLCJzY3JvbGwtbXIiLCJzY3JvbGwtbWIiLCJzY3JvbGwtbWwiXSwic2Nyb2xsLW14IjpbInNjcm9sbC1tciIsInNjcm9sbC1tbCJdLCJzY3JvbGwtbXkiOlsic2Nyb2xsLW10Iiwic2Nyb2xsLW1iIl0sInNjcm9sbC1wIjpbInNjcm9sbC1weCIsInNjcm9sbC1weSIsInNjcm9sbC1wcyIsInNjcm9sbC1wZSIsInNjcm9sbC1wYnMiLCJzY3JvbGwtcGJlIiwic2Nyb2xsLXB0Iiwic2Nyb2xsLXByIiwic2Nyb2xsLXBiIiwic2Nyb2xsLXBsIl0sInNjcm9sbC1weCI6WyJzY3JvbGwtcHIiLCJzY3JvbGwtcGwiXSwic2Nyb2xsLXB5IjpbInNjcm9sbC1wdCIsInNjcm9sbC1wYiJdLHRvdWNoOlsidG91Y2gteCIsInRvdWNoLXkiLCJ0b3VjaC1weiJdLCJ0b3VjaC14IjpbInRvdWNoIl0sInRvdWNoLXkiOlsidG91Y2giXSwidG91Y2gtcHoiOlsidG91Y2giXX0sY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzOnsiZm9udC1zaXplIjpbImxlYWRpbmciXX0sb3JkZXJTZW5zaXRpdmVNb2RpZmllcnM6WyIqIiwiKioiLCJhZnRlciIsImJhY2tkcm9wIiwiYmVmb3JlIiwiZGV0YWlscy1jb250ZW50IiwiZmlsZSIsImZpcnN0LWxldHRlciIsImZpcnN0LWxpbmUiLCJtYXJrZXIiLCJwbGFjZWhvbGRlciIsInNlbGVjdGlvbiJdfX0pO2Z1bmN0aW9uIGVwKC4uLmUpe3JldHVybiBlbShyKGUpKX1mdW5jdGlvbiBlYihlLHIpe3JldHVybmAvY29pbi8ke2UudG9VcHBlckNhc2UoKX0vJHtlbmNvZGVVUklDb21wb25lbnQoci50cmltKCkucmVwbGFjZSgvXHMrL2csIi0iKSl9YH1sZXQgZXU9bmV3IFNldChbImNvaW5saWIuaW8iLCJ3d3cuY29pbmxpYi5pbyIsImNvaW5saWIudmVyY2VsLmFwcCJdKTtmdW5jdGlvbiBlZihlKXtpZighZXx8ZS5zdGFydHNXaXRoKCIvIil8fGUuc3RhcnRzV2l0aCgiIyIpKXJldHVybiExO2lmKC9eKG1haWx0b3x0ZWwpOi9pLnRlc3QoZSkpcmV0dXJuITA7dHJ5e2xldCByPW5ldyBVUkwoZSk7cmV0dXJuIWV1LmhhcyhyLmhvc3RuYW1lKX1jYXRjaHtyZXR1cm4hMX19bGV0IGVnPW5ldyBJbnRsLk51bWJlckZvcm1hdCgiZW4tVVMiLHtub3RhdGlvbjoiY29tcGFjdCIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KTtmdW5jdGlvbiBlaChlKXtyZXR1cm4gZWcuZm9ybWF0KGUpfWZ1bmN0aW9uIGVrKGUscj0idXNkIil7cmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCgiZW4tVVMiLHtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5OnIudG9VcHBlckNhc2UoKSxtaW5pbXVtRnJhY3Rpb25EaWdpdHM6MixtYXhpbXVtRnJhY3Rpb25EaWdpdHM6ZTwxPzY6ZTwxMDA/NDoyfSkuZm9ybWF0KGUpfWZ1bmN0aW9uIGV3KGUpe3JldHVybmAke2U+PTA/IisiOiIifSR7ZS50b0ZpeGVkKDIpfSVgfWZ1bmN0aW9uIGV4KGUpe3JldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoImVuLVVTIikuZm9ybWF0KGUpfWUucyhbImNuIiwoKT0+ZXAsImNvaW5VcmwiLCgpPT5lYiwiZm9ybWF0Q29tcGFjdCIsKCk9PmVoLCJmb3JtYXROdW1iZXIiLCgpPT5leCwiZm9ybWF0UGVyY2VudGFnZSIsKCk9PmV3LCJmb3JtYXRQcmljZSIsKCk9PmVrLCJpc0V4dGVybmFsVXJsIiwoKT0+ZWZdLDc1MTU3KX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.googleapis.com/css?family=Montserrat:400,400i,500,500i,600,600i,700,700i,800,800i","fqdn":"fonts.googleapis.com","domain":"fonts.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.973Z","timestamp":1785126645973,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /css?family=Montserrat:400,400i,500,500i,600,600i,700,700i,800,800i HTTP/1.1\r\nHost: fonts.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/css; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\nlink: \u003chttps://fonts.gstatic.com\u003e; rel=preconnect; crossorigin\r\nstrict-transport-security: max-age=31536000\r\nexpires: Mon, 27 Jul 2026 04:30:46 GMT\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: private, max-age=86400\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":18240,"size_decoded":1548,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"464cc10219aaf2efc6f5eccf7d0fc769","sha1":"6b80d11e2bf9c6add338be802d0870a4da83099a","sha256":"c159f417753b242d3813f8f81e0ede98e666ce3bd0c24d4e5b2f9f86c18a8741","sha512":"224a7dd8779ea56c96eff5065a6b5a017e349418af4ad8c3cc45b7ee7d218c8a1933b078b2935e11794a7186b4d3a24fb485fcbafc1e2f8a33d99bc57f277579","ssdeep":"384:ALwgFx9dwwVFGGeFwmFjHnCw7FYIw/wkF9p7SjpbAfnPeD:P","tlshash":"8d829c51101ae500a7472cca23cf7d26ce4e62667494c476bbfe2ca8bde5c361361b7d","first_seen":"2025-09-05T07:11:38.363448Z","last_seen":"2026-07-27T04:47:12.5517Z","times_seen":28,"resource_available":false,"data":"LyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnhDN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnpTN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSeGk3bTBkSjlwUU9pazIwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4Unh5N20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnlTN20wZEo5cFFPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ4QzdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ6UzdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnhpN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ4eTdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ5UzdtMGRKOXBRT2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSeEM3bTBkSjlwUU9pazIwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSelM3bTBkSjlwUU9pazIwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogNjAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ4aTdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSeHk3bTBkSjlwUU9pazIwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSeVM3bTBkSjlwUU9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnhDN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnpTN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVUWpJZzFfaTZ0OGtDSEttNDU5V3hSeGk3bTBkSjlwUU9pazIwLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4Unh5N20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnlTN20wZEo5cFFPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ4QzdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ6UzdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogaXRhbGljOwogIGZvbnQtd2VpZ2h0OiA4MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVFqSWcxX2k2dDhrQ0hLbTQ1OVd4UnhpN20wZEo5cFFPaWsyMC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ4eTdtMGRKOXBRT2lrMjAud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IGl0YWxpYzsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVRaklnMV9pNnQ4a0NIS200NTlXeFJ5UzdtMGRKOXBRT2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V1JoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5VzFoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXWmh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V2RoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V2xoeXlUbjg5ZGRwUS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXUmh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXMWh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVdaaHl5VG44OWRkcFJPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXZGh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXbGh5eVRuODlkZHBRLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVdSaHl5VG44OWRkcFJPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVcxaHl5VG44OWRkcFJPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V1poeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVdkaHl5VG44OWRkcFJPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVdsaHl5VG44OWRkcFEud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V1JoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5VzFoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXWmh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V2RoeXlUbjg5ZGRwUk9pLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0JzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbW9udHNlcnJhdC92MzEvSlRVU2pJZzFfaTZ0OGtDSEttNDU5V2xoeXlUbjg5ZGRwUS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXUmh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXMWh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA4MDA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21vbnRzZXJyYXQvdjMxL0pUVVNqSWcxX2k2dDhrQ0hLbTQ1OVdaaHl5VG44OWRkcFJPaS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXZGh5eVRuODlkZHBST2kud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogODAwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tb250c2VycmF0L3YzMS9KVFVTaklnMV9pNnQ4a0NIS200NTlXbGh5eVRuODlkZHBRLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0K"}},"time_used":88,"timings":{"blocked":-1,"dns":2,"connect":16,"send":0,"wait":35,"receive":0,"ssl":34},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/11419.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.689Z","timestamp":1785126646689,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/11419.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1176\r\nage: 4893\r\nlast-modified: Fri, 10 Jul 2026 07:52:55 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:37:22 GMT\r\ncache-control: public, max-age=86400\r\netag: \"39ab3ac48aa1693b8a5aef2412aadae4\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: m8Qf7Yq0T2WP973NxhItTn4E7waw4btV0SqQq-OAYTw1RUdpryeWkQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":1176,"size_decoded":1747,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"39ab3ac48aa1693b8a5aef2412aadae4","sha1":"fc0e587e8aca14afd2ecc7950111fdd1d7c97a3c","sha256":"f356723070d7f2a47075c065b9585f5cbbbe2a8eaa090c73e60aab31259c877b","sha512":"5ba8f010481a41b1151310cd650ff6c29420b432930114400c6fb1d0d8b707f082a002f43d5e0f862a302a5643db75ac1587d67338083bbf1e1a3e47284a7e3e","ssdeep":"","tlshash":"e22106a3eb5a2ee2c87c4d382d472406a4bb1cec70e06e16e132c29c78d280ca8b0120","first_seen":"2026-07-10T15:09:07.671192Z","last_seen":"2026-07-27T08:07:37.436176Z","times_seen":706,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEX0lEQVR4Xu2YT0gUURzHpVN1qENFdKxbIbszu1lU9AeqWxYR0SWiLp06BEHH2EjIqGMoRbU7syrmQcsIQyL6R2V/KKIsDY1SzC3toPNnd3T39Xu7as5vxp2ZnZ0/ynzgi7jz5r33fe/3+82bqagICAgICAgIKAUmLlaxvHie4aQm+NsO6nBJ7XTMMIwdSYhRPC/HYeICAxN4xnAi8YNYXnoa4YQQnqcjhDnhKAyaxpPwgdJ0bni+ZYVJCntZTpzUGdwXys8N5ojnXRbYW+OrYIBfeFC/ic5xE0dW4PnbhuGE23gwv4rlhGY8f1tEeLGa4cUcHsi3grlGOHEf9lES0RayHDod0AzisCCUyf42mUST2msmNbi5YXQZ9mMZ6KhOp3PHVfMyQyiJTxOaaxZUh/1YIpKUt0MnWZ2OHRXd/c8j2fwCjMo5sqlB28akstQD9mWKXXGyGApft06njuvQXZnk8vYLnH6U1rQxKzgbfKFesD9D4Lh5AXfmluIQ9rN5+GNS08aKqBfsryjsTSEMNyq4IzcEkyW/pdn7T4gC2bCzWdK0tSCFTQph7FOXWIwsgnN+l04nrujUw7TK/DQXuxRNW4vqot6wXw3wYnFG52bX1NE/ib3n6YaiiNtaFfWG/aqoupVex/DSOL7RDVXB8/7skwzJFIq/LpdfK2RLo41UAG8hXl6LfReIxRbBCapTc5PDOnJPJo3dE2REVuf9XAgKIXe+TZATD+R8vcD9GSohdFKv2H4FFIljmsYOaXeLRK68UUjP3yLbbYKBsRyp/6CQ6lZZM0YxsUn5mMp8tGlsJez+H9zQCV19r5AJe741ZCF4WnvNnxjhoDVCPc8sAOTGJdzIKd3vUz/jy8XHP9aKJMtJtTMLAP98wQ2cUqHYpcnTgUnbkUB3/t1wlsReZMi2JmvFkXr+HwEJoRc3cEN7pmrB11FrK/FzKvf3tVozrZbU838BPHrjm63D7XI+j4vxGKLmeEeaREqp/kjhhFg/swDwzr0GfhzEjbzQ22H9aBgScmUxPqXByiayemYBKGxDZgNcSOk0dlXnnhe+A2Cuf7R9FJ5WinpVmZ8mxGcqaQOdm1zTVjjpiSgT6BHpQJu1Z/0cSlGP2LeKjT5YhPY+9fvAh9/WHnFzKEW9Yb+6hPhxTxfhZKf6jbDmVUbTxqJS1BP2WRQvIyEKxe6XUHg3oN8Cdtj7FmB+5zFe1oQbUPQoD77b+hpknPNGeBUJ9LW3tiuTf3HC10yq9J3HeF0TSpD1nDfCq0goQeXbeYyXNcGk7Oe8ET6OBOd2HuPDmlD+nDfCR5Hg3s5jfFATnM95IzyMBO92HuNBTXA/541wMRL8s/MYF2qC9zlvhIOR4N+dxzhQE/yX80aUMRLmz85jylAT/J/zRtiIhPm785gSasL8y3kjLETCwtl5jImaMP9z3ogikbBwdx4T4cfXM7zYN8t8P/0Nt1vQRK8NLQ1z0kGqLS1kCb4eEBAQ4Ab/ACidG3skOUS6AAAAAElFTkSuQmCC"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/assets/widget-feab807cfdea6b377d896e38e88479b9.css","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.220Z","timestamp":1785126648220,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /assets/widget-feab807cfdea6b377d896e38e88479b9.css HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: text/css\r\ncontent-length: 40134\r\nserver: cloudflare\r\nlast-modified: Fri, 17 Apr 2026 09:01:34 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\netag: \"69e1f6ee-9cc6\"\r\ncontent-encoding: gzip\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\nage: 2087927\r\naccept-ranges: bytes\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=1mauAs7ppDSVJpmNowV%2BrVkt6j%2BnYmHtuFg3%2BxavAkqGSpbrjJRiJpIk0vWlq7gUqxMQVMerO8Hno0xVUPz9kWcAiwW9N1mSagPwFHpPcHp1cNY1JZ7r6mlG4nbkvb7NTyL6AA%3D%3D\"}]}\r\ncf-ray: a218e92f6926b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":519496,"size_decoded":41080,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"b348d4388313ca5800560db32345ce65","sha1":"26fc93d45066e2e3b9274eec77b6b3d1a163d560","sha256":"d3c22bea97daea8d07297aa969707b47feaac360ec6c7b12e1b58b87baff2467","sha512":"fc80fbea0139949203fcc8bfb0e20d7dc874f1a90d1ceb6bfb7b7b0da64f376f96d8019db9c448ffe958c1b1fdf26d2c267d33d4f29bbabf73731fb20d7f07b5","ssdeep":"1536:rSnHvoOjr4YP+CQ/mOwT4FjFTa+02FJAMYncA7aN67+qrqUixyii/SYJM1aGV6o7:FOxOwef","tlshash":"03b4c9409495291b6cb3293f348772591d3fe022c79329ee7569e3ecc38bd635262f89","first_seen":"2026-04-18T09:23:12.468079Z","last_seen":"2026-07-27T08:03:47.424539Z","times_seen":474,"resource_available":false,"data":"OnJvb3R7LS1jcC13aWRnZXQtdGV4dC1jb2xvci1saWdodDogI2ZmZjstLWNwLXdpZGdldC10ZXh0LWNvbG9yLWRhcms6ICMzMzM4M2E7LS1jcC13aWRnZXQtdGV4dC1jb2xvci1saWdodC0wNzogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOy0tY3Atd2lkZ2V0LXRleHQtY29sb3ItZGFyay0wNzogcmdiYSg1MSw1Niw1OCwwLjcpOy0tY3AtcHJpbWFyeS1jb2xvcjogIzE5OGFmNzstLWNwLXByaW1hcnktY29udHJhc3QtY29sb3I6ICMxOThhZjc7LS1jcC1idXR0b24tc2hhZG93LWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7LS1jcC1idXR0b24tc2hhZG93LWhvdmVyLWNvbG9yOiByZ2JhKDAsMCwwLC4zKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbG9hZGVyLC5jaGFwb3J0LWxvYWRlcntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTo0cHg7bWFyZ2luOmF1dG8gYXV0bzt3aWR0aDozNXB4O2hlaWdodDozNXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstbW96LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstd2Via2l0LWFuaW1hdGlvbjpsb2FkMyAxLjBzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246bG9hZDMgMS4wcyBpbmZpbml0ZSBsaW5lYXI7Ym9yZGVyOjRweCBzb2xpZCAjMUQ5MEZGO2JvcmRlci1yaWdodC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7cG9zaXRpb246cmVsYXRpdmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxvYWRlci5jaGFwb3J0LWNlbnRlciwuY2hhcG9ydC1sb2FkZXIuY2hhcG9ydC1jZW50ZXJ7bGVmdDpjYWxjKDUwJSAtIDE4cHgpO3RvcDpjYWxjKDUwJSAtIDE4cHgpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sb2FkZXI6YmVmb3JlLC5jaGFwb3J0LWxvYWRlcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi00cHg7bGVmdDo1MCU7d2lkdGg6NTAlO2hlaWdodDo1MCU7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCAjZmZmIDgwJSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCAjZmZmIDgwJSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwgI2ZmZiA4MCUpO2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCAjZmZmIDgwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsICNmZmYgODAlKTtjb250ZW50OicnO2Rpc3BsYXk6YmxvY2t9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LXJlbG9hZGVyLC5jaGFwb3J0LXJlbG9hZGVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG8gYXV0bzt3aWR0aDozNXB4O2hlaWdodDozNXB4O3Bvc2l0aW9uOnJlbGF0aXZlfUAtd2Via2l0LWtleWZyYW1lcyBsb2FkM3swJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBsb2FkM3swJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmNoYXBvcnQtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC45KTt6LWluZGV4OjIxNDc0ODM1MDE7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3M7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IDAuM3N9LmNoYXBvcnQtb3ZlcmxheSAuY2hhcG9ydC1vdmVybGF5LWNvbnRlbnRzLXdyYXBwZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjMwcHg7Ym94LXNpemluZzpib3JkZXItYm94fS5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtb3ZlcmxheS1jb250ZW50cy13cmFwcGVyIC5jaGFwb3J0LW92ZXJsYXktY29udGVudHN7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LW92ZXJsYXktY29udGVudHMtd3JhcHBlciAuY2hhcG9ydC1vdmVybGF5LWNvbnRlbnRzIC5sb2FkaW5nLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNoYWRvdzowcHggMHB4IDE1cHggcmdiYSgwLDAsMCwwLjE1KSwwcHggMHB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjEpO3dpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtib3JkZXItcmFkaXVzOjhweDtsZWZ0OjUwJTt0b3A6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZmZjt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtb3ZlcmxheS1jb250ZW50cy13cmFwcGVyIC5jaGFwb3J0LW92ZXJsYXktY29udGVudHM+aW1ne3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtjdXJzb3I6em9vbS1vdXQ7dXNlci1zZWxlY3Q6bm9uZTttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KX0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LW92ZXJsYXktY29udGVudHMtd3JhcHBlciAuY2hhcG9ydC1vdmVybGF5LWNvbnRlbnRzPmltZy5wcmV2aWV3e2N1cnNvcjpkZWZhdWx0fS5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtb3ZlcmxheS1jb250ZW50cy13cmFwcGVyIC5jaGFwb3J0LW92ZXJsYXktY29udGVudHM+YXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6YXV0bztib3R0b206OXB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6InByb3hpbWEtbm92YSIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO3BhZGRpbmc6M3B4IDEwcHggNHB4O2JvcmRlci1yYWRpdXM6M3B4fS5jaGFwb3J0LW92ZXJsYXkuc2hvd3tvcGFjaXR5OjF9LmNoYXBvcnQtb3ZlcmxheSAuY2hhcG9ydC1vdmVybGF5LXRvcHt0b3A6MTNweH0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LW92ZXJsYXktYm90dG9te2JvdHRvbToyMHB4fS5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtb3ZlcmxheS1sZWZ0e2xlZnQ6MTNweH0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LW92ZXJsYXktcmlnaHR7cmlnaHQ6MjZweH0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjcwcHg7aGVpZ2h0OjcwcHg7b3BhY2l0eTowLjZ9LmNoYXBvcnQtb3ZlcmxheSAuY2hhcG9ydC1jbG9zZTpob3ZlcntvcGFjaXR5OjF9LmNoYXBvcnQtb3ZlcmxheSAuY2hhcG9ydC1jbG9zZTo6YmVmb3JlLC5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtY2xvc2U6OmFmdGVye2NvbnRlbnQ6Jyc7aGVpZ2h0OjMxcHg7d2lkdGg6MnB4O2JhY2tncm91bmQtY29sb3I6I2VlZTtyaWdodDozNHB4O3RvcDoxOXB4fS5jaGFwb3J0LW92ZXJsYXkgLmNoYXBvcnQtc2VuZC5tZC1mbG9hdGluZy1idXR0b257cG9zaXRpb246YWJzb2x1dGU7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojMTk4YWY3Oy0tY3AtYnV0dG9uLXNoYWRvdy1jb2xvcjogcmdiYSgyNSwxMzgsMjQ3LDAuMTUpOy0tY3AtYnV0dG9uLXNoYWRvdy1ob3Zlci1jb2xvcjogcmdiYSgyNSwxMzgsMjQ3LDAuMyk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXI7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcn0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LXNlbmQubWQtZmxvYXRpbmctYnV0dG9uOmhvdmVye29wYWNpdHk6MX0uY2hhcG9ydC1vdmVybGF5IC5jaGFwb3J0LXNlbmQubWQtZmxvYXRpbmctYnV0dG9uIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7bWFyZ2luLWxlZnQ6M3B4fS5jaGFwb3J0LW92ZXJsYXkgLmZpbGUtdXBsb2FkLXByZXZpZXd7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZToyNHB4O2JvcmRlcjoxcHggc29saWQgI2RkZGZlMTtib3JkZXItcmFkaXVzOjAuNWVtO3BhZGRpbmc6MC41ZW07ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXgtd2lkdGg6ODAlfS5jaGFwb3J0LW92ZXJsYXkgLmZpbGUtdXBsb2FkLXByZXZpZXcgLmZpbGUtdXBsb2FkLXByZXZpZXctaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy90cmFuc2Zlci1maWxlLWljb25AMngucG5nIik7YmFja2dyb3VuZC1zaXplOjM2cHggMzZweDttYXJnaW4tcmlnaHQ6MC41ZW07d2lkdGg6MzZweDtoZWlnaHQ6MzZweDttYXJnaW4tcmlnaHQ6MC41ZW07ZmxleDowIDAgMzZweH0uY2hhcG9ydC1vdmVybGF5IC5maWxlLXVwbG9hZC1wcmV2aWV3IC5maWxlLXVwbG9hZC1wcmV2aWV3LW5hbWV7ZmxleDoxIDEgMDtjb2xvcjojN2U4NzhkO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LWZhbWlseToicHJveGltYS1ub3ZhIiwgc2Fucy1zZXJpZn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2VudGVyLC5jaGFwb3J0LWNlbnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9LmRuZC1vdmVybGF5LC5jaGFwb3J0LWNvbnRhaW5lciAuZG5kLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O3otaW5kZXg6MjE0NzQ4MzUwM30uZG5kLW92ZXJsYXk6OmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmRuZC1vdmVybGF5OjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjIxNDc0ODM1MDQ7dG9wOjE1cHg7bGVmdDoxNXB4O2JvdHRvbToxNXB4O3JpZ2h0OjE1cHg7YmFja2dyb3VuZDpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yKSwgdmFyKC0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcikgNnB4LCB0cmFuc3BhcmVudCA2cHgsIHRyYW5zcGFyZW50IDE0cHgpIHRvcCxyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yKSwgdmFyKC0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcikgNnB4LCB0cmFuc3BhcmVudCA2cHgsIHRyYW5zcGFyZW50IDE0cHgpIGJvdHRvbSxyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvciksIHZhcigtLWNwLXByaW1hcnktY29udHJhc3QtY29sb3IpIDZweCwgdHJhbnNwYXJlbnQgNnB4LCB0cmFuc3BhcmVudCAxNHB4KSBsZWZ0LHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yKSwgdmFyKC0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcikgNnB4LCB0cmFuc3BhcmVudCA2cHgsIHRyYW5zcGFyZW50IDE0cHgpIHJpZ2h0O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxLjVweCwgMTAwJSAxLjVweCwgMS41cHggMTAwJSwgMS41cHggMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBsZWZ0LCBib3R0b20gbGVmdCwgdG9wIGxlZnQsIHRvcCByaWdodDtib3JkZXItcmFkaXVzOjJweH0uZG5kLW92ZXJsYXkgLmRuZC1oaW50LC5jaGFwb3J0LWNvbnRhaW5lciAuZG5kLW92ZXJsYXkgLmRuZC1oaW50e3otaW5kZXg6MjE0NzQ4MzUwNTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjE1cHg7Y29sb3I6I2I2YmRjNjtwYWRkaW5nOjFlbTtvcGFjaXR5OjAuOTt0ZXh0LWFsaWduOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWF4LXdpZHRoOjkwJX0uY2hhcG9ydC1jb250YWluZXIgLmRuZC1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0uY2hhcG9ydC1jb250YWluZXIgLmRuZC1vdmVybGF5IC5kbmQtaGludHtjb2xvcjojOTlhMGE1fS5jcC1zZWxlY3QsLmNwLXNlbGVjdC12aXNpdG9yLWluZm8sLmNwLXNlbGVjdC13aWRnZXR7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTZweDtjb2xvcjojMzMzO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2JvcmRlci1yYWRpdXM6M3B4Oy1tb3otYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMjkyIDI5MicgZW5hYmxlLWJhY2tncm91bmQ9J25ldyAwIDAgMjkyIDI5MicgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgaGVpZ2h0PScyOTJweCcgd2lkdGg9JzI5MnB4JyUzRSUzQ3BhdGggZmlsbD0nJTIzQTFBNUE5JyBkPSdNMjg3IDY5LjRhMTcuNiAxNy42IDAgMCAwLTEzLTUuNEgxOC40Yy01IDAtOS4zIDEuOC0xMi45IDUuNEExNy42IDE3LjYgMCAwIDAgMCA4Mi4yYzAgNSAxLjggOS4zIDUuNCAxMi45bDEyOCAxMjcuOWMzLjYgMy42IDcuOCA1LjQgMTIuOCA1LjRzOS4yLTEuOCAxMi44LTUuNEwyODcgOTVjMy41LTMuNSA1LjQtNy44IDUuNC0xMi44IDAtNS0xLjktOS4yLTUuNS0xMi44eicvJTNFJTNDL3N2ZyUzRSIpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDIwcHggdG9wIDUwJTtiYWNrZ3JvdW5kLXNpemU6LjY1ZW0gYXV0b30uY3Atc2VsZWN0Lm5nLWVtcHR5LC5uZy1lbXB0eS5jcC1zZWxlY3QtdmlzaXRvci1pbmZvLC5uZy1lbXB0eS5jcC1zZWxlY3Qtd2lkZ2V0e2ZvbnQtd2VpZ2h0OjIwMH0uY3Atc2VsZWN0OjotbXMtZXhwYW5kLC5jcC1zZWxlY3QtdmlzaXRvci1pbmZvOjotbXMtZXhwYW5kLC5jcC1zZWxlY3Qtd2lkZ2V0OjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX0uY3Atc2VsZWN0OmhvdmVyLC5jcC1zZWxlY3QtdmlzaXRvci1pbmZvOmhvdmVyLC5jcC1zZWxlY3Qtd2lkZ2V0OmhvdmVye2N1cnNvcjpwb2ludGVyfS5jcC1zZWxlY3Q6Zm9jdXMsLmNwLXNlbGVjdC12aXNpdG9yLWluZm86Zm9jdXMsLmNwLXNlbGVjdC13aWRnZXQ6Zm9jdXN7b3V0bGluZTpub25lfS5jcC1zZWxlY3QudGhlY29vbG9uZSwudGhlY29vbG9uZS5jcC1zZWxlY3QtdmlzaXRvci1pbmZvLC50aGVjb29sb25lLmNwLXNlbGVjdC13aWRnZXR7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9jaGV2cm9uLWRyb3Bkb3duLnBuZyk7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCA5cHggdG9wIDUwJTtiYWNrZ3JvdW5kLXNpemU6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7cGFkZGluZy1yaWdodDoyNXB4fS5jcC1zZWxlY3QudGhlY29vbG9uZTpmb2N1cywudGhlY29vbG9uZS5jcC1zZWxlY3QtdmlzaXRvci1pbmZvOmZvY3VzLC50aGVjb29sb25lLmNwLXNlbGVjdC13aWRnZXQ6Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5fS5jcC1zZWxlY3QtdmlzaXRvci1pbmZve3BhZGRpbmc6MCAxMHB4IDAgMTBweCAhaW1wb3J0YW50fUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsuY3Atc2VsZWN0LXZpc2l0b3ItaW5mb3twYWRkaW5nOjAgMTRweCAwIDZweCAhaW1wb3J0YW50fX1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLXNlbGVjdC13aWRnZXR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nLWxlZnQ6NXB4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxNXB4IHRvcCA1MCV9QC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpe2JvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY3Atc2VsZWN0LXdpZGdldHtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi00cHg7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMTZweCB0b3AgNTAlfX0udXNlci1jb2xvci0we2JhY2tncm91bmQtY29sb3I6I2NjYyAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2MxYmRiZCAwJSwgI2Q2ZDFkMSAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTF7YmFja2dyb3VuZC1jb2xvcjojRUY5QTlBICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZWU4MjgyIDAlLCAjZjRhNWE1IDEwMCUpICFpbXBvcnRhbnR9LnVzZXItY29sb3ItMntiYWNrZ3JvdW5kLWNvbG9yOiNGNDhGQjEgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsICNmNDc2YTAgMCUsICNmODlhYmEgMTAwJSkgIWltcG9ydGFudH0udXNlci1jb2xvci0ze2JhY2tncm91bmQtY29sb3I6I0NFOTNEOCAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2M3N2VkNCAwJSwgI2Q1OWJkZiAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTR7YmFja2dyb3VuZC1jb2xvcjojQjM5RERCICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjYTQ4OGQ3IDAlLCAjYmJhNWUyIDEwMCUpICFpbXBvcnRhbnR9LnVzZXItY29sb3ItNXtiYWNrZ3JvdW5kLWNvbG9yOiM5RkE4REEgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsICM4YTk2ZDUgMCUsICNhN2IwZTEgMTAwJSkgIWltcG9ydGFudH0udXNlci1jb2xvci02e2JhY2tncm91bmQtY29sb3I6IzkwQ0FGOSAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzc2YmZmYSAwJSwgIzljZDFmYyAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTd7YmFja2dyb3VuZC1jb2xvcjojODFENEZBICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjNjZjZGZiIDAlLCAjOGRkYWZkIDEwMCUpICFpbXBvcnRhbnR9LnVzZXItY29sb3ItOHtiYWNrZ3JvdW5kLWNvbG9yOiM4MERFRUEgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsICM2OGRhZTkgMCUsICM4YWU0ZWYgMTAwJSkgIWltcG9ydGFudH0udXNlci1jb2xvci05e2JhY2tncm91bmQtY29sb3I6IzgwQ0JDNCAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzZiYzdiZSAwJSwgIzg3ZDRjYyAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTEwe2JhY2tncm91bmQtY29sb3I6I0E1RDZBNyAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzkxZDA5NCAwJSwgI2FkZGVhZiAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTExe2JhY2tncm91bmQtY29sb3I6I0M1RTFBNSAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2I5ZGQ5MCAwJSwgI2NkZTdhZSAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTEye2JhY2tncm91bmQtY29sb3I6I0U2RUU5QyAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2UyZWM4NCAwJSwgI2ViZjNhNyAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTEze2JhY2tncm91bmQtY29sb3I6I0ZGRTA4MiAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2ZmZGE2OSAwJSwgI2ZmZTQ5MSAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTE0e2JhY2tncm91bmQtY29sb3I6I0ZGQ0M4MCAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2ZmYzI2NyAwJSwgI2ZmZDI4ZiAxMDAlKSAhaW1wb3J0YW50fS51c2VyLWNvbG9yLTE1e2JhY2tncm91bmQtY29sb3I6I0ZGQUI5MSAhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2ZmOTg3OCAwJSwgI2ZmYjdhMCAxMDAlKSAhaW1wb3J0YW50fS5lbW9qaS13cmFwcGVye2N1cnNvcjpwb2ludGVyfS5lbW9qaS13cmFwcGVyIC5lbW9qaS1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7b3BhY2l0eTowLjU7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZW1vamktaWNvbi5wbmciKX1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuZW1vamktd3JhcHBlciAuZW1vamktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9lbW9qaS1pY29uQDJ4LnBuZyIpO2JhY2tncm91bmQtc2l6ZToxOHB4IDM2cHh9fS5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb257YmFja2dyb3VuZC1jb2xvcjojMUQ5MEZGO29wYWNpdHk6MTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE4cHh9LmVtb2ppLXdyYXBwZXI6aG92ZXIgLmVtb2ppLWljb257b3BhY2l0eToxfS5lbW9qaS13cmFwcGVyIC5lbW9qaS1jb250YWluZXJ7d2lkdGg6MjgwcHg7aGVpZ2h0OjIwNHB4O292ZXJmbG93OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47bGluZS1oZWlnaHQ6bm9ybWFsO3BhZGRpbmc6MCAwIDAgMjBweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmVtb2ppLXdyYXBwZXIgLmVtb2ppLWNvbnRhaW5lciBoM3tjb2xvcjojODg4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttYXJnaW46MjBweCAwIDAgNHB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEzcHg7ZGlzcGxheTpibG9ja30uZW1vamktd3JhcHBlciAuZW1vamktY29udGFpbmVyIGgzOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MTBweH0uZW1vamktd3JhcHBlciAuZW1vamktY29udGFpbmVyIC5lbW9qaS1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweDtmb250LXNpemU6MjhweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7dmVydGljYWwtYWxpZ246bWlkZGxlO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjpub25lfS5lbW9qaS13cmFwcGVyIC5lbW9qaS1jb250YWluZXIgLmVtb2ppLWl0ZW06aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMil9LnBvcHVwLXRhcmdldCAucG9wdXAtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjJweDtib3gtc2hhZG93OjBweCAwcHggMTVweCByZ2JhKDAsMCwwLDAuMTUpLDBweCAwcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTBweCAwfS5wb3B1cC10YXJnZXQgLnBvcHVwLXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2JvcmRlci13aWR0aDo2cHggNnB4IDAgNnB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2ZmZiB0cmFuc3BhcmVudDtyaWdodDoyNXB4fS5wb3B1cC10YXJnZXQgLnBvcHVwLXdyYXBwZXI6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtib3JkZXItd2lkdGg6OHB4IDhweCAwIDhweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKSB0cmFuc3BhcmVudDtyaWdodDoyM3B4fS5wb3B1cC10YXJnZXQuc2hvdy1wb3B1cCAucG9wdXAtd3JhcHBlcntkaXNwbGF5OmJsb2NrfS5wb3B1cC10YXJnZXQuaGlkZS1wb3B1cC1yZW5kZXIgLnBvcHVwLXdyYXBwZXJ7dmlzaWJpbGl0eTpoaWRkZW59LnBvcHVwLXRhcmdldC5oaWRlLXBvcHVwIC5wb3B1cC13cmFwcGVye2Rpc3BsYXk6bm9uZX1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLXNjcm9sbGJhcntzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6I2JhYmFjMCB0cmFuc3BhcmVudH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY3Atc2Nyb2xsYmFyOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFse2hlaWdodDo3cHh9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jcC1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jcC1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVye2JhY2tncm91bmQ6I2Y0ZjRmNH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYmFiYWMwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jcC1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2EwYTBhNX1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9ue2Rpc3BsYXk6bm9uZX0uY3Atc2Nyb2xsYmFyLnNjcm9sbGJhci1oaWRkZW57LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9LmNwLXNjcm9sbGJhci5zY3JvbGxiYXItaGlkZGVuOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnZlcnRpY2FsLXNjcm9sbGJhci12aXNpYmxle292ZXJmbG93LXk6c2Nyb2xsICFpbXBvcnRhbnR9LnNjcm9sbC1zbW9vdGh7c2Nyb2xsLWJlaGF2aW9yOnNtb290aH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLWNoZWNrYm94e2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2NjYyAhaW1wb3J0YW50O3dpZHRoOjE0cHggIWltcG9ydGFudDtoZWlnaHQ6MTRweCAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmUgIWltcG9ydGFudDstd2Via2l0LXRyYW5zaXRpb246YWxsIGVhc2UgMC4zczstby10cmFuc2l0aW9uOmFsbCBlYXNlIDAuM3M7dHJhbnNpdGlvbjphbGwgZWFzZSAwLjNzfWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY3AtY2hlY2tib3g6Y2hlY2tlZDo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc1MTInIGhlaWdodD0nNTEyJyB2aWV3Qm94PScwIDAgNTEyIDUxMiclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzQxNiAxMjggMTkyIDM4NCA5NiAyODgnIHN0eWxlPSdmaWxsOm5vbmU7c3Ryb2tlOiUyM2ZmZjtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjQ0cHgnLyUzRSUzQy9zdmclM0UiKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjExMCU7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7Y29sb3I6I2ZmZn1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNwLWNoZWNrYm94OmhvdmVye2N1cnNvcjpwb2ludGVyfS5jcCAubWQtZmxvYXRpbmctYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTstbW96LWJvcmRlci1yYWRpdXM6NTAlOy1tcy1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMzhweCB2YXIoLS1jcC1idXR0b24tc2hhZG93LWNvbG9yKTtib3gtc2hhZG93OjAgNXB4IDM4cHggdmFyKC0tY3AtYnV0dG9uLXNoYWRvdy1jb2xvcik7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgbGluZWFyIC4yczstby10cmFuc2l0aW9uOm9wYWNpdHkgbGluZWFyIC4yczt0cmFuc2l0aW9uOm9wYWNpdHkgbGluZWFyIC4yc30uY3AgLm1kLWZsb2F0aW5nLWJ1dHRvbjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSBlYXNlLW91dCAuMnM7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IGVhc2Utb3V0IC4yczt0cmFuc2l0aW9uOm9wYWNpdHkgZWFzZS1vdXQgLjJzO29wYWNpdHk6MDstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMzhweCB2YXIoLS1jcC1idXR0b24tc2hhZG93LWhvdmVyLWNvbG9yKTtib3gtc2hhZG93OjAgNXB4IDM4cHggdmFyKC0tY3AtYnV0dG9uLXNoYWRvdy1ob3Zlci1jb2xvcil9LmNwIC5tZC1mbG9hdGluZy1idXR0b246aG92ZXI6OmFmdGVye29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgYSwuY2hhcG9ydC1jb250YWluZXIgYWJiciwuY2hhcG9ydC1jb250YWluZXIgYWNyb255bSwuY2hhcG9ydC1jb250YWluZXIgYWRkcmVzcywuY2hhcG9ydC1jb250YWluZXIgYXBwbGV0LC5jaGFwb3J0LWNvbnRhaW5lciBhcnRpY2xlLC5jaGFwb3J0LWNvbnRhaW5lciBhc2lkZSwuY2hhcG9ydC1jb250YWluZXIgYXVkaW8sLmNoYXBvcnQtY29udGFpbmVyIGIsLmNoYXBvcnQtY29udGFpbmVyIGJpZywuY2hhcG9ydC1jb250YWluZXIgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250YWluZXIgYnV0dG9uLC5jaGFwb3J0LWNvbnRhaW5lciBjYW52YXMsLmNoYXBvcnQtY29udGFpbmVyIGNhcHRpb24sLmNoYXBvcnQtY29udGFpbmVyIGNlbnRlciwuY2hhcG9ydC1jb250YWluZXIgY2l0ZSwuY2hhcG9ydC1jb250YWluZXIgY29kZSwuY2hhcG9ydC1jb250YWluZXIgZGQsLmNoYXBvcnQtY29udGFpbmVyIGRlbCwuY2hhcG9ydC1jb250YWluZXIgZGV0YWlscywuY2hhcG9ydC1jb250YWluZXIgZGZuLC5jaGFwb3J0LWNvbnRhaW5lciBkaXYsLmNoYXBvcnQtY29udGFpbmVyIGRsLC5jaGFwb3J0LWNvbnRhaW5lciBkdCwuY2hhcG9ydC1jb250YWluZXIgZW0sLmNoYXBvcnQtY29udGFpbmVyIGZpZWxkc2V0LC5jaGFwb3J0LWNvbnRhaW5lciBmaWdjYXB0aW9uLC5jaGFwb3J0LWNvbnRhaW5lciBmaWd1cmUsLmNoYXBvcnQtY29udGFpbmVyIGZvb3RlciwuY2hhcG9ydC1jb250YWluZXIgZm9ybSwuY2hhcG9ydC1jb250YWluZXIgaDEsLmNoYXBvcnQtY29udGFpbmVyIGgyLC5jaGFwb3J0LWNvbnRhaW5lciBoMywuY2hhcG9ydC1jb250YWluZXIgaDQsLmNoYXBvcnQtY29udGFpbmVyIGg1LC5jaGFwb3J0LWNvbnRhaW5lciBoNiwuY2hhcG9ydC1jb250YWluZXIgaGVhZGVyLC5jaGFwb3J0LWNvbnRhaW5lciBpLC5jaGFwb3J0LWNvbnRhaW5lciBpZnJhbWUsLmNoYXBvcnQtY29udGFpbmVyIGltZywuY2hhcG9ydC1jb250YWluZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyIGlucHV0W3R5cGVdLC5jaGFwb3J0LWNvbnRhaW5lciBpbnMsLmNoYXBvcnQtY29udGFpbmVyIGtiZCwuY2hhcG9ydC1jb250YWluZXIgbGFiZWwsLmNoYXBvcnQtY29udGFpbmVyIGxlZ2VuZCwuY2hhcG9ydC1jb250YWluZXIgbGksLmNoYXBvcnQtY29udGFpbmVyIG1hcmssLmNoYXBvcnQtY29udGFpbmVyIG1lbnUsLmNoYXBvcnQtY29udGFpbmVyIG5hdiwuY2hhcG9ydC1jb250YWluZXIgb2JqZWN0LC5jaGFwb3J0LWNvbnRhaW5lciBvbCwuY2hhcG9ydC1jb250YWluZXIgcCwuY2hhcG9ydC1jb250YWluZXIgcHJlLC5jaGFwb3J0LWNvbnRhaW5lciBxLC5jaGFwb3J0LWNvbnRhaW5lciBzLC5jaGFwb3J0LWNvbnRhaW5lciBzYW1wLC5jaGFwb3J0LWNvbnRhaW5lciBzZWN0aW9uLC5jaGFwb3J0LWNvbnRhaW5lciBzbWFsbCwuY2hhcG9ydC1jb250YWluZXIgc3BhbiwuY2hhcG9ydC1jb250YWluZXIgc3RyaWtlLC5jaGFwb3J0LWNvbnRhaW5lciBzdHJvbmcsLmNoYXBvcnQtY29udGFpbmVyIHN1YiwuY2hhcG9ydC1jb250YWluZXIgc3VtbWFyeSwuY2hhcG9ydC1jb250YWluZXIgc3VwLC5jaGFwb3J0LWNvbnRhaW5lciB0YWJsZSwuY2hhcG9ydC1jb250YWluZXIgdGJvZHksLmNoYXBvcnQtY29udGFpbmVyIHRkLC5jaGFwb3J0LWNvbnRhaW5lciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250YWluZXIgdGZvb3QsLmNoYXBvcnQtY29udGFpbmVyIHRoLC5jaGFwb3J0LWNvbnRhaW5lciB0aGVhZCwuY2hhcG9ydC1jb250YWluZXIgdGltZSwuY2hhcG9ydC1jb250YWluZXIgdHIsLmNoYXBvcnQtY29udGFpbmVyIHR0LC5jaGFwb3J0LWNvbnRhaW5lciB1LC5jaGFwb3J0LWNvbnRhaW5lciB1bCwuY2hhcG9ydC1jb250YWluZXIgdmFyLC5jaGFwb3J0LWNvbnRhaW5lciB2aWRlb3tmb250LWZhbWlseToicHJveGltYS1ub3ZhIiwiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZS1hZGp1c3Q6bm9uZTtmb250LXNpemU6MTAwJTtmb250LXN0eWxlOm5vcm1hbDtsZXR0ZXItc3BhY2luZzpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDt0ZXh0LWFsaWduOmxlZnQ7LW1vei10ZXh0LWFsaWduLWxhc3Q6aW5pdGlhbDt0ZXh0LWFsaWduLWxhc3Q6aW5pdGlhbDt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRleHQtZW1waGFzaXM6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dGV4dC1lbXBoYXNpczpub25lO3RleHQtaGVpZ2h0OmF1dG87dGV4dC1pbmRlbnQ6MDt0ZXh0LWp1c3RpZnk6YXV0bzt0ZXh0LW91dGxpbmU6bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7dGV4dC13cmFwOm5vcm1hbDthbGlnbm1lbnQtYWRqdXN0OmF1dG87YWxpZ25tZW50LWJhc2VsaW5lOmJhc2VsaW5lOy13ZWJraXQtYW5pbWF0aW9uOm5vbmUgMCBlYXNlIDAgMSBub3JtYWw7YW5pbWF0aW9uOm5vbmUgMCBlYXNlIDAgMSBub3JtYWw7LXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTpydW5uaW5nO2FuaW1hdGlvbi1wbGF5LXN0YXRlOnJ1bm5pbmc7LXdlYmtpdC1hcHBlYXJhbmNlOm5vcm1hbDstbW96LWFwcGVhcmFuY2U6bm9ybWFsO2FwcGVhcmFuY2U6bm9ybWFsOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlO2JhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtiaW5kaW5nOm5vbmU7Ym9yZGVyOjAgbm9uZSB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7Ym90dG9tOmF1dG87Ym94LXNoYWRvdzpub25lO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjYXB0aW9uLXNpZGU6dG9wO2NsZWFyOm5vbmU7Y2xpcDppbml0aWFsO2NvbG9yOmluaGVyaXQ7Y29sb3ItcHJvZmlsZTphdXRvO2NvbnRlbnQ6bm9ybWFsO2NvdW50ZXItaW5jcmVtZW50Om5vbmU7Y291bnRlci1yZXNldDpub25lO2Nyb3A6YXV0bztkaXJlY3Rpb246bHRyO2Rpc3BsYXk6aW5saW5lO2RvbWluYW50LWJhc2VsaW5lOmF1dG87ZHJvcC1pbml0aWFsLWFmdGVyLWFkanVzdDp0ZXh0LWFmdGVyLWVkZ2U7ZHJvcC1pbml0aWFsLWFmdGVyLWFsaWduOmJhc2VsaW5lO2Ryb3AtaW5pdGlhbC1iZWZvcmUtYWRqdXN0OnRleHQtYmVmb3JlLWVkZ2U7ZHJvcC1pbml0aWFsLWJlZm9yZS1hbGlnbjpjYXBzLWhlaWdodDtkcm9wLWluaXRpYWwtc2l6ZTphdXRvO2Ryb3AtaW5pdGlhbC12YWx1ZTppbml0aWFsO2VtcHR5LWNlbGxzOnNob3c7ZmxvYXQ6bm9uZTtmbG9hdC1vZmZzZXQ6MCAwO2hhbmdpbmctcHVuY3R1YXRpb246bm9uZTtoZWlnaHQ6YXV0bztpY29uOmF1dG87aW1hZ2Utb3JpZW50YXRpb246YXV0bztpbWFnZS1yZW5kZXJpbmc6YXV0bztpbWFnZS1yZXNvbHV0aW9uOm5vcm1hbDtpbmxpbmUtYm94LWFsaWduOmxhc3Q7bGVmdDphdXRvO2xpbmUtc3RhY2tpbmc6aW5saW5lLWxpbmUtaGVpZ2h0IGV4Y2x1ZGUtcnVieSBjb25zaWRlci1zaGlmdHM7bWFyZ2luOjA7bWFya3M6bm9uZTttYXgtaGVpZ2h0Om5vbmU7bWF4LXdpZHRoOm5vbmU7bWluLWhlaWdodDowO21pbi13aWR0aDowO21vdmUtdG86bm9ybWFsO29wYWNpdHk6MTtvdXRsaW5lOm1lZGl1bSBub25lIGludmVydDtvdXRsaW5lLW9mZnNldDowO292ZXJmbG93OnZpc2libGU7b3ZlcmZsb3ctc3R5bGU6YXV0bztwYWRkaW5nOjA7LXdlYmtpdC1wZXJzcGVjdGl2ZTpub25lO3BlcnNwZWN0aXZlOm5vbmU7LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46NTAlIDUwJTtwZXJzcGVjdGl2ZS1vcmlnaW46NTAlIDUwJTtwb3NpdGlvbjpzdGF0aWM7cHJlc2VudGF0aW9uLWxldmVsOjA7cHVuY3R1YXRpb24tdHJpbTpub25lO3F1b3Rlczpub25lO3JlbmRlcmluZy1pbnRlbnQ6YXV0bztyZXNpemU6bm9uZTtyaWdodDphdXRvO3JvdGF0aW9uOjA7cm90YXRpb24tcG9pbnQ6NTAlIDUwJTtzdHJpbmctc2V0Om5vbmU7dG9wOmF1dG87LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCUgMDstbXMtdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6ZmxhdDt0cmFuc2Zvcm0tc3R5bGU6ZmxhdDt0cmFuc2l0aW9uOmFsbCAwIGVhc2UgMDt1bmljb2RlLWJpZGk6bm9ybWFsO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOmF1dG87d29yZC1icmVhazpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsO3otaW5kZXg6YXV0bzt0ZXh0LWFsaWduOnN0YXJ0O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSk7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7bGluZS1oZWlnaHQ6MS40Mjg1NzstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmNoYXBvcnQtY29udGFpbmVyIGRpdntkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWhpZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9LmNoYXBvcnQtc2hvd3tkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9Lm5vLXRyYW5zaXRpb257dHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoyMTQ3NDgzNTAwO3dpZHRoOmF1dG87aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZTtmb250LXNpemU6MTRweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlci5oaWRkZW57b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7aGVpZ2h0OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MS40Mjg1NzE0Mjg2ZW07cmlnaHQ6MS40Mjg1NzE0Mjg2ZW07d2lkdGg6NC4yODU3MTQyODU3ZW07aGVpZ2h0OjQuMjg1NzE0Mjg1N2VtOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgbGluZWFyIC4yczstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IGxpbmVhciAuMnM7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSBsaW5lYXIgLjJzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b246OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgZWFzZS1vdXQgLjJzOy1vLXRyYW5zaXRpb246b3BhY2l0eSBlYXNlLW91dCAuMnM7dHJhbnNpdGlvbjpvcGFjaXR5IGVhc2Utb3V0IC4ycztvcGFjaXR5OjA7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjMpO2JveC1zaGFkb3c6MCA1cHggMzhweCByZ2JhKDAsMCwwLDAuMyl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbjpob3Zlcjo6YWZ0ZXJ7b3BhY2l0eToxfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uOmhvdmVyOjphZnRlcnt2aXNpYmlsaXR5OmhpZGRlbn19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jaGF0LWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt3aWR0aDoyLjI4NTcxNDI4NTdlbTtoZWlnaHQ6Mi42NDI4NTcxNDI5ZW07cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXRvcDouMDcxNDI4NTcxNGVtO3RvcDouOTI4NTcxNDI4NmVtO2xlZnQ6MWVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2NoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29uLW5ldy5wbmciKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uIC5jaGFwb3J0LWxhdW5jaGVyLWNoYXQtaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9jaGFwb3J0LWxhdW5jaGVyLWNoYXQtaWNvbi1uZXdAMngucG5nIil9fS5jaGFwb3J0LWNvbG9yLWxpZ2h0IC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2NoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29uLW5ldy1kYXJrLnBuZyIpfUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbG9yLWxpZ2h0IC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2NoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29uLW5ldy1kYXJrQDJ4LnBuZyIpfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uIC5jaGFwb3J0LWxhdW5jaGVyLWNsb3NlLWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NC4yODU3MTQyODU3ZW07aGVpZ2h0OjQuMjg1NzE0Mjg1N2VtfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2xvc2UtaWNvbjpiZWZvcmUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jbG9zZS1pY29uOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxLjVlbTtyaWdodDoyLjA3MTQyODU3MTRlbTtjb250ZW50OicgJztoZWlnaHQ6MS4zNTcxNDI4NTcxZW07d2lkdGg6LjE0Mjg1NzE0MjllbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNoYXBvcnQtY29sb3ItbGlnaHQgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jbG9zZS1pY29uOmJlZm9yZSwuY2hhcG9ydC1jb2xvci1saWdodCAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uIC5jaGFwb3J0LWxhdW5jaGVyLWNsb3NlLWljb246YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzMzODNhfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2xvc2UtaWNvbjpiZWZvcmV7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jbG9zZS1pY29uOmFmdGVyey1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItb3BlcmF0b3ItcGhvdG97dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uIC5jaGFwb3J0LWxhdW5jaGVyLW9wZXJhdG9yLXBob3RvIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbi5uby1waG90byAuY2hhcG9ydC1sYXVuY2hlci1vcGVyYXRvci1waG90b3tvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbi5ib3QtcGhvdG8gLmNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29ue29wYWNpdHk6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLmJvdC1waG90byAuY2hhcG9ydC1sYXVuY2hlci1vcGVyYXRvci1waG90byBpbWd7Ym9yZGVyLXJhZGl1czowO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6MTJweDt0b3A6MTBweDt3aWR0aDozNnB4O2hlaWdodDozNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItYmFkZ2V7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTdweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDU2LDUxLDAuOSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjt6LWluZGV4OjI7bWluLXdpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4yMyk7Ym94LXNoYWRvdzowIDFweCAxcHggMCByZ2JhKDAsMCwwLDAuMjMpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxcHg7cmlnaHQ6LTRweDstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIGVhc2UtaW4tb3V0IDAuMnM7LW8tdHJhbnNpdGlvbjp0cmFuc2Zvcm0gZWFzZS1pbi1vdXQgMC4yczt0cmFuc2l0aW9uOnRyYW5zZm9ybSBlYXNlLWluLW91dCAwLjJzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtYmFkZ2UtaGlkZXt0cmFuc2Zvcm06c2NhbGUoMCl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1iYWRnZS1zaG93e3RyYW5zZm9ybTpzY2FsZSgxKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbWVzc2FnZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MS43ODU3MTQyODU3ZW07bGVmdDphdXRvO3JpZ2h0OjYuMDcxNDI4NTcxNGVtO21hcmdpbi1sZWZ0OjEuNDI4NTcxNDI4NmVtO3BhZGRpbmc6Ljg1NzE0Mjg1NzFlbSAxZW07YmFja2dyb3VuZDojZmZmO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtYm9yZGVyLXJhZGl1czouNzE0Mjg1NzE0M2VtOy1tb3otYm9yZGVyLXJhZGl1czouNzE0Mjg1NzE0M2VtOy1tcy1ib3JkZXItcmFkaXVzOi43MTQyODU3MTQzZW07Ym9yZGVyLXJhZGl1czouNzE0Mjg1NzE0M2VtOy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7Ym94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7Zm9udC1zaXplOjEuMDcxNDI4NTcxNGVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjMzMzMzMzMzMzNlbTtjb2xvcjojMTIzOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSBsaW5lYXIgLjJzO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgbGluZWFyIC4yczttYXgtd2lkdGg6MzgwcHh9QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDYwcHgpLCBhbGwgYW5kIChtYXgtd2lkdGg6IDc1MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1tZXNzYWdle21heC13aWR0aDpub25lfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRhaWw6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEwMCU7Ym90dG9tOjEuMTMzMzMzMzMzM2VtO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyOnNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci13aWR0aDouMzMzMzMzMzMzM2VtO2JvcmRlci1sZWZ0LWNvbG9yOiNmZmY7cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRhaWw6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOi4zMzMzMzMzMzMzZW07Ym90dG9tOjEuMTMzMzMzMzMzM2VtO2JvcmRlci1sZWZ0LWNvbG9yOiNmZmZ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LS42ZW07bGVmdDotLjZlbTt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvaWNvbi1hdXRvLWludml0YXRpb24tY2xvc2UucG5nIik7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowLjU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXI7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcn1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLWNsb3Nle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2ljb24tYXV0by1pbnZpdGF0aW9uLWNsb3NlQDJ4LnBuZyIpO2JhY2tncm91bmQtc2l6ZToxLjJlbSAxLjJlbTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLWNsb3Nle29wYWNpdHk6MX19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LW1lc3NhZ2U6aG92ZXIgLmNoYXBvcnQtbWVzc2FnZS1jbG9zZXtvcGFjaXR5OjF9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZXhwYW5kZWQgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uIC5jaGFwb3J0LWxhdW5jaGVyLW9wZXJhdG9yLXBob3Rve29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjMyKX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1leHBhbmRlZCAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29ue29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSBzY2FsZSgwLjcpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWV4cGFuZGVkIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jbG9zZS1pY29ue29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDApfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LW5vbi1yZXNwb25zaXZlLWxheW91dCAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24gLmNoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2NoYXBvcnQtbGF1bmNoZXItY2hhdC1pY29uLW5ldy1iaWcucG5nIil9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtbm9uLXJlc3BvbnNpdmUtbGF5b3V0IC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiAuY2hhcG9ydC1sYXVuY2hlci1jaGF0LWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvY2hhcG9ydC1sYXVuY2hlci1jaGF0LWljb24tbmV3LWJpZ0AyeC5wbmciKX19LmNoYXBvcnQtY29udGFpbmVyLmhpZGUtbGF1bmNoZXIuY2hhcG9ydC1leHBhbmRlZCAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGFpbmVyLmhpZGUtbGF1bmNoZXIuY2hhcG9ydC1jb2xsYXBzZWQgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWNvbnRhaW5lci5oaWRlLWxhdW5jaGVyLmNoYXBvcnQtc2VtaS1leHBhbmRlZCAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNoYXBvcnQtY29udGFpbmVyLmhpZGUtbGF1bmNoZXIuY2hhcG9ydC1leHBhbmRlZCAuY2hhcG9ydC1tZXNzYWdlLC5jaGFwb3J0LWNvbnRhaW5lci5oaWRlLWxhdW5jaGVyLmNoYXBvcnQtZXhwYW5kZWQgLmNoYXBvcnQtd2luZG93LC5jaGFwb3J0LWNvbnRhaW5lci5oaWRlLWxhdW5jaGVyLmNoYXBvcnQtY29sbGFwc2VkIC5jaGFwb3J0LW1lc3NhZ2UsLmNoYXBvcnQtY29udGFpbmVyLmhpZGUtbGF1bmNoZXIuY2hhcG9ydC1jb2xsYXBzZWQgLmNoYXBvcnQtd2luZG93LC5jaGFwb3J0LWNvbnRhaW5lci5oaWRlLWxhdW5jaGVyLmNoYXBvcnQtc2VtaS1leHBhbmRlZCAuY2hhcG9ydC1tZXNzYWdlLC5jaGFwb3J0LWNvbnRhaW5lci5oaWRlLWxhdW5jaGVyLmNoYXBvcnQtc2VtaS1leHBhbmRlZCAuY2hhcG9ydC13aW5kb3d7Ym90dG9tOjIwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXJ7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoyMTQ3NDgzNTAxfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyLmNoYXBvcnQtY2hhbm5lbHMtYW5pbXstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzLG9wYWNpdHkgMHMgbGluZWFyIC4zczstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4zcyxvcGFjaXR5IDBzIGxpbmVhciAuM3M7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuM3Msb3BhY2l0eSAwcyBsaW5lYXIgLjNzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyLmNoYXBvcnQtY2hhbm5lbHMtYW5pbSAuY2hhcG9ydC1jaGFubmVscy1vdmVybGF5ey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLHZpc2liaWxpdHkgMHMgbGluZWFyIC4zczstby10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSx2aXNpYmlsaXR5IDBzIGxpbmVhciAuM3N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIuY2hhcG9ydC1jaGFubmVscy1hbmltIC5jaGFwb3J0LWNoYW5uZWxzLWJsb2Nrc3std2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOy1vLXRyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyLmNoYXBvcnQtYW5pbS1oaWRlIC5jaGFwb3J0LWNoYW5uZWxzLW92ZXJsYXl7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVufS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyLmNoYXBvcnQtYW5pbS1oaWRlIC5jaGFwb3J0LWNoYW5uZWxzLWJsb2Nrc3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlci5jaGFwb3J0LWFuaW0tc2hvdyAuY2hhcG9ydC1jaGFubmVscy1vdmVybGF5e3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzICFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kZWxheTowcyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyIC5jaGFwb3J0LWNoYW5uZWxzLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC40KTtvcGFjaXR5OjF9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgLmNoYXBvcnQtY2hhbm5lbHMtYmxvY2tze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo5cHg7bGVmdDo5cHg7cmlnaHQ6OXB4O3otaW5kZXg6MjE0NzQ4MzUwMjtmb250LXNpemU6MjBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciAuY2hhcG9ydC1jaGFubmVscy1ibG9ja3MgLmNoYXBvcnQtY2hhbm5lbHMtYmxvY2t7bWFyZ2luLXRvcDo5cHg7YmFja2dyb3VuZDojZmZmZmZmOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxMnB4Oy1tb3otYm9yZGVyLXJhZGl1czoxMnB4Oy1tcy1ib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyLXJhZGl1czoxMnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyIC5jaGFwb3J0LWNoYW5uZWxzLWFjdGlvbnN7Ym90dG9tOjlweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciAuY2hhcG9ydC1jaGFubmVscy1hY3Rpb25zIGEuY2hhcG9ydC1jaGFubmVscy1jYW5jZWw6YWN0aXZlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyIC5jaGFwb3J0LWNoYW5uZWxzLWFjdGlvbnMgYS5jaGFwb3J0LWNoYW5uZWxzLWNhbmNlbDpob3ZlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciAuY2hhcG9ydC1jaGFubmVscy1hY3Rpb25zIGEuY2hhcG9ydC1jaGFubmVscy1jYW5jZWw6bGluaywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciAuY2hhcG9ydC1jaGFubmVscy1hY3Rpb25zIGEuY2hhcG9ydC1jaGFubmVscy1jYW5jZWw6dmlzaXRlZHtjb2xvcjojZmYzYjMwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jaGFubmVscy13cmFwcGVyIC5jaGFwb3J0LWNoYW5uZWxzLWxpc3R7Ym90dG9tOjc1cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgLmNoYXBvcnQtY2hhbm5lbHMtbGlzdCAuY2hhcG9ydC1jaGFubmVsLXdlYnNpdGV7Zm9udC13ZWlnaHQ6Ym9sZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciBhe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6NTdweDtoZWlnaHQ6NTdweDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMil9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgYTphY3RpdmUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgYTpob3ZlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2hhbm5lbHMtd3JhcHBlciBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgYTp2aXNpdGVke2NvbG9yOiMwMDdhZmZ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNoYW5uZWxzLXdyYXBwZXIgYTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0NjBweCksIGFsbCBhbmQgKG1heC13aWR0aDogNzUwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSl7Ym9keS5jaGFwb3J0LW1vYmlsZXtvcGFjaXR5OjF9Ym9keS5jaGFwb3J0LW1vYmlsZS5jaGFwb3J0LW1vYmlsZS1tYXhpbWl6ZWQtaGlkZXtvcGFjaXR5OjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfX1ib2R5LmNoYXBvcnQtbW9iaWxlLmNoYXBvcnQtbW9iaWxlLW1heGltaXplZHtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO292ZXJmbG93OmhpZGRlbn0uY2hhcG9ydC1jb250YWluZXJ7Zm9udC1zaXplOjE0cHg7ei1pbmRleDoyMTQ3NDgzNTAwfS5jaGFwb3J0LWNvbnRhaW5lciBhey13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAwLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246Y29sb3IgMC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOmNvbG9yIDAuMnMgZWFzZS1pbi1vdXR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtaGlkZXtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtY29udGFpbmVyLXBvc2l0aW9uZWR7cG9zaXRpb246Zml4ZWQ7Ym94LXNpemluZzpib3JkZXItYm94O3RvcDphdXRvO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOmF1dG87aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1jb250YWluZXItcG9zaXRpb25lZC5jaGFwb3J0LW5vbi1yZXNwb25zaXZlLWxheW91dHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDphdXRvO2JvdHRvbTphdXRvOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tb3otdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGV4dC1zaXplLWFkanVzdDoxMDAlfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWNvbnRhaW5lci1wb3NpdGlvbmVkIC5jaGFwb3J0LXdpbmRvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6YXV0bztyaWdodDoyMHB4O2JvdHRvbToxMDBweDtsZWZ0OmF1dG87d2lkdGg6Mzc1cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTstd2Via2l0LWJvcmRlci1yYWRpdXM6MTBweDstbW96LWJvcmRlci1yYWRpdXM6MTBweDstbXMtYm9yZGVyLXJhZGl1czoxMHB4O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoyMTQ3NDgzNTAwfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1jb250YWluZXItcG9zaXRpb25lZCAuY2hhcG9ydC13aW5kb3d7cG9zaXRpb246Zml4ZWQgIWltcG9ydGFudDt0b3A6MCAhaW1wb3J0YW50O3JpZ2h0OjAgIWltcG9ydGFudDtib3R0b206MCAhaW1wb3J0YW50O2xlZnQ6MCAhaW1wb3J0YW50O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG8gIWltcG9ydGFudDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXM6MDstbXMtYm9yZGVyLXJhZGl1czowO2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6MHB4IDBweCAwcHggMTBweCAjZmZmIGluc2V0O2JveC1zaGFkb3c6MHB4IDBweCAwcHggMTBweCAjZmZmIGluc2V0fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWNvbnRhaW5lci1wb3NpdGlvbmVkIC5jaGFwb3J0LXdpbmRvdy5jaGFwb3J0LWFuaW0taGlkZXtoZWlnaHQ6MCAhaW1wb3J0YW50fX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1jb250YWluZXItcG9zaXRpb25lZCAuY2hhcG9ydC13aW5kb3cuY2hhcG9ydC13aW5kb3ctbm8tcm91bmQtY29ybmVyc3std2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstbXMtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy1tcy1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtY29udGFpbmVyLXBvc2l0aW9uZWQgLmNoYXBvcnQtd2luZG93LmNoYXBvcnQtd2luZG93LW5vLXJvdW5kLWNvcm5lcnMgLmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtY29udGFpbmVyLXBvc2l0aW9uZWQgLmNoYXBvcnQtd2luZG93LmNoYXBvcnQtd2luZG93LW5vLXJvdW5kLWNvcm5lcnMgLmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1ib2R5ey13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOy1tb3otYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOy1tcy1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDstbW96LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7LW1zLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYmlnLXNoYWRvd3tvcGFjaXR5OjA7ei1pbmRleDoyMTQ3NDgzNDk5O3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjQ4MHB4O2hlaWdodDo0ODBweDtib3R0b206MDtyaWdodDowO2NvbnRlbnQ6IiI7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSByaWdodCxyZ2JhKDI3LDM3LDUyLDAuMTUpIDAscmdiYSgyNywzNyw1MiwwKSA3MCUpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyOy1vLXRyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcjt0cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWJpZy1zaGFkb3cuY2hhcG9ydC1zaGFkb3ctaGlkZXtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtc2VtaS1leHBhbmRlZCAuY2hhcG9ydC1iaWctc2hhZG93e29wYWNpdHk6MC42fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWV4cGFuZGVkIC5jaGFwb3J0LWJpZy1zaGFkb3d7b3BhY2l0eToxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWNvbGxhcHNlZC1tZXNzYWdlIC5jaGFwb3J0LWJpZy1zaGFkb3d7aGVpZ2h0OjIwMHB4O29wYWNpdHk6MC41fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWRpcmVjdHtib3JkZXItcmFkaXVzOjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZGlyZWN0IC5jaGFwb3J0LWlubmVyLWhlYWRlcntib3JkZXItcmFkaXVzOjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZHVtbXl7em9vbToxMDAlO3otaW5kZXg6NH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kdW1teSAuY2hhcG9ydC13aW5kb3d7ZGlzcGxheTpub25lO3otaW5kZXg6NH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkzMXB4KXsuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kdW1teSAuY2hhcG9ydC13aW5kb3d7ZGlzcGxheTpibG9ja319LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZHVtbXkgLmNoYXBvcnQtd2luZG93e3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7ei1pbmRleDoxO2hlaWdodDo2NjdweH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kdW1teSAuY2hhcG9ydC1pbm5lci1oZWFkZXJ7aGVpZ2h0OmF1dG99LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZHVtbXkgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGx7cG9zaXRpb246cmVsYXRpdmV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZHVtbXkgLmNoYXBvcnQtaW5uZXJ7aGVpZ2h0OjY2N3B4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWR1bW15IC5tZXNzYWdlLXN0YXR1c3std2Via2l0LXRyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50Oy1vLXRyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50O3RyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbm5lcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tbGVmdDowcHg7bWFyZ2luLXJpZ2h0OjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpmbGV4fUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5uZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7aGVpZ2h0OmF1dG8gIWltcG9ydGFudH19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxvYWRpbmctb3ZlcmxheXt6LWluZGV4OjE7LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4zcyxvcGFjaXR5IGxpbmVhciAuM3M7LW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuM3Msb3BhY2l0eSBsaW5lYXIgLjNzO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzLG9wYWNpdHkgbGluZWFyIC4zcztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbG9hZGluZy1vdmVybGF5LmNoYXBvcnQtYW5pbS1oaWRley13ZWJraXQtdHJhbnNpdGlvbjpub25lOy1vLXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxvYWRpbmctb3ZlcmxheS5jaGFwb3J0LWFuaW0taGlkZSAuY2hhcG9ydC1sb2FkZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm5vbmU7LW8tdHJhbnNpdGlvbjpub25lO3RyYW5zaXRpb246bm9uZTtvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxvYWRpbmctb3ZlcmxheS5jaGFwb3J0LWFuaW0tc2hvd3std2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzLG9wYWNpdHkgbGluZWFyIC4zczstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4zcyxvcGFjaXR5IGxpbmVhciAuM3M7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuM3Msb3BhY2l0eSBsaW5lYXIgLjNzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sb2FkaW5nLW92ZXJsYXkuY2hhcG9ydC1hbmltLXNob3cgLmNoYXBvcnQtbG9hZGVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBsaW5lYXIgMC41czstby10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGxpbmVhciAwLjVzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgbGluZWFyIDAuNXM7b3BhY2l0eToxfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1sb2FkaW5nLW92ZXJsYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyey13ZWJraXQtYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpLDAgNTBweCA1MHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpLDAgNTBweCA1MHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7ZmxleDowIDAgMjY4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxvYWRpbmctb3ZlcmxheSAuY2hhcG9ydC1pbm5lci1ib2R5e3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAxIDA7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuM3Msb3BhY2l0eSBsaW5lYXIgLjNzOy1vLXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzLG9wYWNpdHkgbGluZWFyIC4zczt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4zcyxvcGFjaXR5IGxpbmVhciAuM3N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNsb3NlLndpZGdldC1oZWFkZXItY2xvc2V7dG9wOjE3LjVweDtyaWdodDoxMnB4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzVweDt3aWR0aDozNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6NXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2xvc2Uud2lkZ2V0LWhlYWRlci1jbG9zZS52aXNpYmxle2Rpc3BsYXk6ZmxleH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2xvc2Uud2lkZ2V0LWhlYWRlci1jbG9zZTo6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZS53aWRnZXQtaGVhZGVyLWNsb3NlOjphZnRlcnt0b3A6YXV0bztyaWdodDphdXRvfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZS53aWRnZXQtaGVhZGVyLWNsb3NlIHNwYW57cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNsb3NlLndpZGdldC1oZWFkZXItY2xvc2Ugc3Bhbjpob3Zlcjo6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZS53aWRnZXQtaGVhZGVyLWNsb3NlIHNwYW46YWN0aXZlOjpiZWZvcmV7b3BhY2l0eTowLjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNsb3NlLndpZGdldC1oZWFkZXItY2xvc2Ugc3Bhbjo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtvcGFjaXR5OjA7ei1pbmRleDoxO2JvcmRlci1yYWRpdXM6NTAlOy13ZWJraXQtdHJhbnNpdGlvbjp0cmFuc2Zvcm0gbGluZWFyIDAuMXM7LW8tdHJhbnNpdGlvbjp0cmFuc2Zvcm0gbGluZWFyIDAuMXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gbGluZWFyIDAuMXM7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjYpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNik7dHJhbnNmb3JtOnNjYWxlKDAuNil9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNsb3NlLndpZGdldC1oZWFkZXItY2xvc2Ugc3Bhbjpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZS53aWRnZXQtaGVhZGVyLWNsb3NlIHNwYW46aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZS53aWRnZXQtaGVhZGVyLWNsb3NlIHNwYW46YWN0aXZlOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmZmfWlmcmFtZS5jaGFwb3J0LWlubmVyLWlmcmFtZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5uZXItaGVhZGVyLnRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMHB4Oy1tb3otYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMHB4Oy1tcy1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEwcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MTBweDstbW96LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7LW1zLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MTBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jaGFwb3J0LWNvbnRlbnQuaGlkZXtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aGlkZGVufUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250ZW50ey13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowOy1tcy1ib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXJhZGl1czowfX0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWhlYWRlcntmbGV4OjAgMCBhdXRvO21pbi1oZWlnaHQ6NzBweDtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7cG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDozO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgMjBweCAwIDE4cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMiksMCA1MHB4IDUwcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMiksMCA1MHB4IDUwcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MTBweDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MTBweDstbXMtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMHB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MTBweDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoxMHB4Oy1tcy1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoxMHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItaGVhZGVyLmFuaW17dHJhbnNpdGlvbjpoZWlnaHQgLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1oZWFkZXIuaXMtY2xvc2FibGUgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC50ZWFte3BhZGRpbmctcmlnaHQ6MjdweH1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0NjBweCksIGFsbCBhbmQgKG1heC13aWR0aDogNzUwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSl7LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1oZWFkZXJ7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7LW1vei1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7LW1zLWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy1tb3otYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDstbXMtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfX0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWhlYWRlciAuY2hhcG9ydC1pbm5lci1oZWFkZXItdGV4dHt6LWluZGV4OjIxNDc0ODM0OTk7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM0NDQ7Y3Vyc29yOmRlZmF1bHR9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLmNoYXBvcnQtaW5uZXItaGVhZGVyLXRleHQuY2hhcG9ydC1pbm5lci1oZWFkZXItdGV4dC1vbmxpbmV7b3BhY2l0eTowfS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5jaGFwb3J0LWlubmVyLWhlYWRlci10ZXh0LmNoYXBvcnQtaW5uZXItaGVhZGVyLXRleHQtb2ZmbGluZXtvcGFjaXR5OjB9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLmNoYXBvcnQtbWluaW1pemVkLXN0YXR1c3t6LWluZGV4OjIxNDc0ODM0OTk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxNXB4O3RvcDoyMnB4O3dpZHRoOjhweDtoZWlnaHQ6OHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7b3BhY2l0eTowfS5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWlubmVyLWhlYWRlcnstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstbXMtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy1tcy1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1ib2R5e2ZsZXg6MSAxIGF1dG87cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1ib2R5e2ZsZXg6MSAxIDEwMCV9fS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItYm9keSAucHJvY2Vzc2luZy1pbmZvcm1hdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvfS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItYm9keSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItYm9keSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0LXdyYXBwZXJ7ZmxleDoxIDEgYXV0bztvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7c2Nyb2xsYmFyLWd1dHRlcjpzdGFibGUgYm90aC1lZGdlc30uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWJvZHkgLm5vLXBob3Rve2JhY2tncm91bmQtY29sb3I6I2RjZGNkZX0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWJne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2JhY2tncm91bmQtY29sb3I6I2ZmZjt6LWluZGV4Oi0xfS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItYmc6YmVmb3Jle2NvbnRlbnQ6JyAnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0fS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItYmcuY2hhcG9ydC1pbm5lci1iZy0xOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9tZXNzZW5nZXItYmctMS5qcGciKTtiYWNrZ3JvdW5kLXNpemU6MjEwcHggMjEwcHg7b3BhY2l0eTowLjZ9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1iZy5jaGFwb3J0LWlubmVyLWJnLTE6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL21lc3Nlbmdlci1iZy0xQDJ4LmpwZyIpfX0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3RlcntmbGV4OjAgMCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ei1pbmRleDoyMTQ3NDgzNTAxOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4taGVpZ2h0OjgycHh9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1mb290ZXIud2hpdGUtbGFiZWx7cGFkZGluZy1ib3R0b206MH0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3Rlci53aGl0ZS1sYWJlbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVye3BhZGRpbmctYm90dG9tOjE1cHg7bWluLWhlaWdodDo4MnB4fS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItZm9vdGVyLndoaXRlLWxhYmVsICNjaGFwb3J0LW1lc3NhZ2UtaW5wdXR7cGFkZGluZy1ib3R0b206MH0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3Rlci53aGl0ZS1sYWJlbCAuZW1vamktd3JhcHBlciwuY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3Rlci53aGl0ZS1sYWJlbCAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3Rlci53aGl0ZS1sYWJlbCAjY2hhcG9ydC1zZW5kLWJ1dHRvbntib3R0b206MzJweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwcHgpfS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtaW5uZXItZm9vdGVyLndoaXRlLWxhYmVsLmZvb3Rlci1leHRlbmRlZCAuZW1vamktd3JhcHBlciwuY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWlubmVyLWZvb3Rlci53aGl0ZS1sYWJlbC5mb290ZXItZXh0ZW5kZWQgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b24sLmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1pbm5lci1mb290ZXIud2hpdGUtbGFiZWwuZm9vdGVyLWV4dGVuZGVkICNjaGFwb3J0LXNlbmQtYnV0dG9ue3RyYW5zZm9ybTp0cmFuc2xhdGVZKDMycHgpfS5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtbG9nb3t3aWR0aDpmaXQtY29udGVudDttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDoyMHB4O3otaW5kZXg6MjE0NzQ4MzUwMTtkaXNwbGF5OmJsb2NrO2JvdHRvbTowO2hlaWdodDozMnB4O2xpbmUtaGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czowO29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM5OWEwYTU7b3BhY2l0eTowLjU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlLWluLW91dH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRlbnQgLmNoYXBvcnQtbG9nb3tmbG9hdDpyaWdodDtmb250LXNpemU6MTNweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOnJpZ2h0O21hcmdpbi1ib3R0b206LTMycHh9LmNoYXBvcnQtY29udGVudCAuY2hhcG9ydC1sb2dvOmhvdmVye29wYWNpdHk6MX0uY2hhcG9ydC1jb250ZW50IC5jaGFwb3J0LWxvZ28udGV4dC1icmFuZGluZ3tjdXJzb3I6ZGVmYXVsdH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWxvZ28ubW9iaWxlLWxvZ28taGlkZXtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhcG9ydC1jbG9zZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt6LWluZGV4OjQ7d2lkdGg6NTBweDtoZWlnaHQ6NzBweDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXI7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcjtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY2xvc2UudmlzaWJsZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2xvc2UudmlzaWJsZXtkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWNsb3NlOmJlZm9yZSwuY2hhcG9ydC1jbG9zZTphZnRlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtY2xvc2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZTphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjRweDtyaWdodDoyOHB4O2NvbnRlbnQ6JyAnO2hlaWdodDoyMnB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNoYXBvcnQtY2xvc2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1jbG9zZTpiZWZvcmV7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmNoYXBvcnQtY2xvc2U6YWZ0ZXIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWNsb3NlOmFmdGVyey1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXBvc2l0aW9uLWxlZnQgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue3JpZ2h0OmF1dG87bGVmdDoxLjQyODU3MTQyODZlbX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1wb3NpdGlvbi1sZWZ0IC5jaGFwb3J0LXdpbmRvd3tyaWdodDphdXRvO2xlZnQ6MjBweH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1wb3NpdGlvbi1sZWZ0IC5jaGFwb3J0LWJpZy1zaGFkb3d7cmlnaHQ6YXV0bztsZWZ0OjA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20gbGVmdCxyZ2JhKDI3LDM3LDUyLDAuMTUpIDAscmdiYSgyNywzNyw1MiwwKSA3MCUpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXBvc2l0aW9uLWxlZnQgLmNoYXBvcnQtbWVzc2FnZXtyaWdodDphdXRvO2xlZnQ6MjBweDttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4MHB4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXBvc2l0aW9uLWxlZnQgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwe21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtcG9zaXRpb24tbGVmdCAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtaW5wdXR7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6MH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1wb3NpdGlvbi1sZWZ0IC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVze21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtcG9zaXRpb24tbGVmdCAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9uc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttYXJnaW4tdG9wOi0xMHB4O21hcmdpbi1yaWdodDo0MnB4O21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDowfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1wb3NpdGlvbi1sZWZ0IC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25ze21hcmdpbi1yaWdodDotMTBweH19LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtcG9zaXRpb24tbGVmdCAuY2hhcG9ydC1tZXNzYWdlIC5vcGVyYXRvci1mYWNle2xlZnQ6YXV0byAhaW1wb3J0YW50O3JpZ2h0Oi00MXB4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXBvc2l0aW9uLWxlZnQgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRhaWw6OmFmdGVye2xlZnQ6LTEwcHggIWltcG9ydGFudDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JvcmRlci1yaWdodC1jb2xvcjojZmZmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtcG9zaXRpb24tbGVmdCAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtY2xvc2V7bGVmdDphdXRvICFpbXBvcnRhbnQ7cmlnaHQ6LTAuNmVtfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5tZXNzYWdlLXRleHQgYSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRleHQgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5tZXNzYWdlLXRleHQgLmVtb2ppLWlubGluZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRleHQgLmVtb2ppLWlubGluZXtsaW5lLWhlaWdodDowO21hcmdpbi10b3A6MnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2ZvbnQtc2l6ZToxLjJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLm1lc3NhZ2UtdGV4dCAuZW1vamktaW5saW5lIGltZywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXRleHQgLmVtb2ppLWlubGluZSBpbWd7aGVpZ2h0OjIwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87cmlnaHQ6MjBweDtib3R0b206MTAwcHg7bGVmdDphdXRvO292ZXJmbG93OnZpc2libGU7ei1pbmRleDoyMTQ3NDgzNTAwO21hcmdpbi1sZWZ0OjgwcHg7bWFyZ2luLXJpZ2h0OjA7d2lkdGg6MTAwJTttYXgtd2lkdGg6MzI1cHg7cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwe21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1pbnB1dHttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbTowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbTotMzhweDt6LWluZGV4OjEwMDB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieS1pbm5lcntwb2ludGVyLWV2ZW50czphbGw7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3JkZXItcmFkaXVzOjUwcHg7Zm9udC1zaXplOjEzcHg7aGVpZ2h0OjI4cHg7cGFkZGluZzowIDE1cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiM5OWEwYTU7b3BhY2l0eTowLjk1Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246b3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5LWlubmVyOmhvdmVye29wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Y3Vyc29yOnBvaW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieS1pbm5lcjpob3ZlciBzdmd7ZmlsbC1vcGFjaXR5OjF9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieS1pbm5lciAuY2hhcG9ydC1zZXB7bWFyZ2luLWxlZnQ6NXB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnktaW5uZXIgc3Zney13ZWJraXQtdHJhbnNpdGlvbjpmaWxsLW9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOmZpbGwtb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246ZmlsbC1vcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7ZmlsbC1vcGFjaXR5Oi44O3dpZHRoOmF1dG87aGVpZ2h0OjI0cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LWZ1bGwtbGFiZWx7ZGlzcGxheTppbmxpbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LXNob3J0LWxhYmVse2Rpc3BsYXk6bm9uZX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAzNTRweCl7LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IC5jaGFwb3J0LWZ1bGwtbGFiZWx7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSAuY2hhcG9ydC1zZXB7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSAuY2hhcG9ydC1zaG9ydC1sYWJlbHtkaXNwbGF5OmlubGluZX19QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMzcwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdle21heC13aWR0aDpjYWxjKDEwMCUgLSAxMDBweCl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fX1AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAzNzFweCkgYW5kIChtYXgtd2lkdGg6IDQyNXB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXttYXgtd2lkdGg6MjcwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXN7bWFyZ2luLXRvcDoxMnB4O21hcmdpbi1ib3R0b206MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnN7bWFyZ2luLXRvcDotMTBweDttYXJnaW4tcmlnaHQ6LTEwcHg7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1sZWZ0OjUycHh9QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDYwcHgpLCBhbGwgYW5kIChtYXgtd2lkdGg6IDc1MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9uc3ttYXJnaW4tbGVmdDowfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbnttYXJnaW46MTBweCAxMHB4IDAgMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZS5jaGFwb3J0LWFuaW0tc2hvdyAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlLmNoYXBvcnQtYW5pbS1zaG93IC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZS5jaGFwb3J0LWFuaW0tc2hvdyAuY2hhcG9ydC1tZXNzYWdlLWlucHV0e3BvaW50ZXItZXZlbnRzOmFsbH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwe21heC13aWR0aDozMjVweDt3aWR0aDoxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5e3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7cGFkZGluZzoxNHB4IDIwcHggMTVweCAyMHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LWJvcmRlci1yYWRpdXM6MTBweDstbW96LWJvcmRlci1yYWRpdXM6MTBweDstbXMtYm9yZGVyLXJhZGl1czoxMHB4O2JvcmRlci1yYWRpdXM6MTBweDstd2Via2l0LWJveC1zaGFkb3c6MCA1cHggMzhweCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6MCA1cHggMzhweCByZ2JhKDAsMCwwLDAuMTUpO2NvbG9yOiMxMjM7Y3Vyc29yOnBvaW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm9wZXJhdG9yLWZhY2V7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotNDFweDtib3R0b206N3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90b3t3aWR0aDozMHB4O2hlaWdodDozMHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KTtib3gtc2hhZG93OjAgNXB4IDM4cHggcmdiYSgwLDAsMCwwLjE1KX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSAub3BlcmF0b3ItZmFjZSAucGhvdG8gaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTstbW96LWJvcmRlci1yYWRpdXM6NTAlOy1tcy1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW59LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm9wZXJhdG9yLWZhY2UgLnBob3RvLm5vLXBob3Rvey13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9hc3NldHMuY2hhcG9ydC5jb20vaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjAucG5nKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5uby1waG90bzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjAucG5nIik7YmFja2dyb3VuZC1zaXplOjMwcHggMzBweH1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjBAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5uby1waG90bzphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO29wYWNpdHk6MC43O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdXNlci1pY29uLWJvZHktNjB4NjAucG5nIik7YmFja2dyb3VuZC1zaXplOjMwcHggMzBweH1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAtYm9keSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdXNlci1pY29uLWJvZHktNjB4NjBAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5uby1waG90bzphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Fzc2V0cy5jaGFwb3J0LmNvbS9pbWFnZXMvdXNlci1pY29uLWJvZHktNjB4NjAucG5nKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5ib3QtcGhvdG97YmFja2dyb3VuZC1jb2xvcjojNzQ4YzlmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5vcGVyYXRvci1mYWNlIC5waG90by5ib3QtcGhvdG8gaW1ne3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7dG9wOjVweDtsZWZ0OjdweDtib3JkZXItcmFkaXVzOjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm9wZXJhdG9yLW5hbWV7bWFyZ2luLWJvdHRvbTo1cHg7bWFyZ2luLXJpZ2h0OjIwcHg7Zm9udC1zaXplOjEzLjVweDtmb250LXdlaWdodDo2MDA7b3BhY2l0eTowLjZ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm1lc3NhZ2UtdGV4dHtmb250LXNpemU6MTQuNHB4O21heC1oZWlnaHQ6MzAwcHg7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC1saW5lLWNsYW1wOjEwO2xpbmUtY2xhbXA6MTB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm1lc3NhZ2UtdGV4dCBwe2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgMCAxMHB4IDA7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5tZXNzYWdlLXRleHQgcDpsYXN0LWNoaWxke21hcmdpbjowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5tZXNzYWdlLXRleHQgYXtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwLWJvZHkgLm1lc3NhZ2UtdGV4dCBpbWd7bWF4LXdpZHRoOjEwMCV9QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDYwcHgpLCBhbGwgYW5kIChtYXgtd2lkdGg6IDc1MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcG9wdXAgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cC1ib2R5IC5tZXNzYWdlLXRleHR7Zm9udC1zaXplOjE0LjRweH19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3B1cCAuY2hhcG9ydC1jbG9zZXtoZWlnaHQ6NDFweDtvcGFjaXR5OjAuNn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LWNsb3NlOmhvdmVye29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LWNsb3NlOmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXBvcHVwIC5jaGFwb3J0LWNsb3NlOmFmdGVye3RvcDoxM3B4O3JpZ2h0OjIxcHg7d2lkdGg6MXB4O2hlaWdodDoxOHB4O2JhY2tncm91bmQtY29sb3I6I2I0YjliZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLWNsb3NlLXdyYXBwZXI6aG92ZXIgLmNoYXBvcnQtbWVzc2FnZS1jbG9zZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZTpob3ZlciAuY2hhcG9ydC1tZXNzYWdlLWNsb3Nle29wYWNpdHk6LjR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1pbnB1dHttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDowO21heC13aWR0aDozMjVweDt3aWR0aDoxMDAlO2hlaWdodDo1MHB4O2xpbmUtaGVpZ2h0OjFlbTtwYWRkaW5nOjE1cHggMjBweCAxNXB4IDIwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxMHB4Oy1tb3otYm9yZGVyLXJhZGl1czoxMHB4Oy1tcy1ib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7Ym94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7bGluZS1oZWlnaHQ6MS4zMmVtO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnRleHQ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDAwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXN7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6MDt3aWR0aDoxMDAlO21heC13aWR0aDozMjVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtmbGV4LXdyYXA6d3JhcH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbntjb2xvcjojMUQ5MEZGO2JvcmRlcjoxcHggc29saWQgIzFEOTBGRjttYXgtd2lkdGg6MjQwcHg7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzpjYWxjKDAuNmVtIC0gMXB4KSBjYWxjKDFlbSAtIDFweCk7Zm9udC1zaXplOjE0LjRweDtsaW5lLWhlaWdodDoxLjQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO291dGxpbmU6bm9uZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4zcyxib3JkZXIgZWFzZSAwLjNzLGJhY2tncm91bmQtY29sb3IgZWFzZSAwLjNzOy1vLXRyYW5zaXRpb246Y29sb3IgZWFzZSAwLjNzLGJvcmRlciBlYXNlIDAuM3MsYmFja2dyb3VuZC1jb2xvciBlYXNlIDAuM3M7dHJhbnNpdGlvbjpjb2xvciBlYXNlIDAuM3MsYm9yZGVyIGVhc2UgMC4zcyxiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgMC4zcztib3gtc2hhZG93OnJnYmEoMCwwLDAsMC4wNSkgMHB4IDJweCA4cHggMHB4Oy13ZWJraXQtYW5pbWF0aW9uOjAuMnMgbGluZWFyIHJlcGx5LWluOy1vLWFuaW1hdGlvbjowLjJzIGxpbmVhciByZXBseS1pbjthbmltYXRpb246MC4ycyBsaW5lYXIgcmVwbHktaW47LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOmhvdmVye2NvbG9yOiM1MGE5ZmY7Ym9yZGVyOjFweCBzb2xpZCAjNTBhOWZmfUAtd2Via2l0LWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtbW96LWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtbXMta2V5ZnJhbWVzIHJlcGx5LWlue2Zyb217b3BhY2l0eTowOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpfXRve29wYWNpdHk6MTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1vLWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgcmVwbHktaW57ZnJvbXtvcGFjaXR5OjA7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCl9dG97b3BhY2l0eToxOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbnstd2Via2l0LWFuaW1hdGlvbi1kZWxheToxczthbmltYXRpb24tZGVsYXk6MXN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDEpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4xczthbmltYXRpb24tZGVsYXk6LjFzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCgyKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouMnM7YW5pbWF0aW9uLWRlbGF5Oi4yc30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoMyl7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjNzO2FuaW1hdGlvbi1kZWxheTouM3N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDQpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi40czthbmltYXRpb24tZGVsYXk6LjRzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg1KXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouNXM7YW5pbWF0aW9uLWRlbGF5Oi41c30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoNil7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjZzO2FuaW1hdGlvbi1kZWxheTouNnN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDcpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi43czthbmltYXRpb24tZGVsYXk6LjdzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlIC5jaGFwb3J0LW1lc3NhZ2UtcmVwbGllcyAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg4KXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouOHM7YW5pbWF0aW9uLWRlbGF5Oi44c30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoOSl7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjlzO2FuaW1hdGlvbi1kZWxheTouOXN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDEwKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheToxczthbmltYXRpb24tZGVsYXk6MXN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2UgLmNoYXBvcnQtbWVzc2FnZS1yZXBsaWVzIC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb24gLnJlcGx5LW9wdGlvbi10ZXh0e292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZSAuY2hhcG9ydC1tZXNzYWdlLXJlcGxpZXMgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjphY3RpdmUgLnJlcGx5LW9wdGlvbi10ZXh0e3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LXdpbmRvdy1hbmlte3RyYW5zaXRpb246aGVpZ2h0IDBzIGxpbmVhciAuM3MsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjNzLG9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSwgYWxsIGFuZCAobWF4LXdpZHRoOiA3NTBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtd2luZG93LWFuaW17dHJhbnNpdGlvbjpub25lfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtd2luZG93LWFuaW0uY2hhcG9ydC1hbmltLWhpZGV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LXdpbmRvdy1hbmltLmNoYXBvcnQtYW5pbS1zaG93e3RyYW5zZm9ybTp0cmFuc2xhdGVZKDBweCl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWxhdW5jaGVyLWFuaW17LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IGxpbmVhciAuMnMsdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC4yczstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IGxpbmVhciAuMnMsdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC4yczt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IGxpbmVhciAuMnMsdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC4yczstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2FsYygxMDAlIC0gMy41NzE0Mjg1NzE0ZW0pIGNhbGMoMTAwJSAtIDMuNTcxNDI4NTcxNGVtKTstbW96LXRyYW5zZm9ybS1vcmlnaW46Y2FsYygxMDAlIC0gMy41NzE0Mjg1NzE0ZW0pIGNhbGMoMTAwJSAtIDMuNTcxNDI4NTcxNGVtKTstbXMtdHJhbnNmb3JtLW9yaWdpbjpjYWxjKDEwMCUgLSAzLjU3MTQyODU3MTRlbSkgY2FsYygxMDAlIC0gMy41NzE0Mjg1NzE0ZW0pO3RyYW5zZm9ybS1vcmlnaW46Y2FsYygxMDAlIC0gMy41NzE0Mjg1NzE0ZW0pIGNhbGMoMTAwJSAtIDMuNTcxNDI4NTcxNGVtKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYW5pbS1oaWRle3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYW5pbS1zaG93e3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzICFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kZWxheTowcyAhaW1wb3J0YW50fS5jaGFwb3J0LWZhZGUtaW57LXdlYmtpdC1hbmltYXRpb246Y2hhcG9ydEZhZGVJbiBlYXNlLW91dCAwLjNzOy1vLWFuaW1hdGlvbjpjaGFwb3J0RmFkZUluIGVhc2Utb3V0IDAuM3M7YW5pbWF0aW9uOmNoYXBvcnRGYWRlSW4gZWFzZS1vdXQgMC4zc31Aa2V5ZnJhbWVzIGNoYXBvcnRNZXNzYWdlSW57ZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgY2hhcG9ydE1lc3NhZ2VPdXR7ZnJvbXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCl9fUBrZXlmcmFtZXMgY2hhcG9ydE1lc3NhZ2VTbGlkZU91dHtmcm9te29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX10b3tvcGFjaXR5OjA7aGVpZ2h0OjA7bWFyZ2luLWJvdHRvbTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCl9fUBrZXlmcmFtZXMgY2hhcG9ydFNsaWRlSW57ZnJvbXtvcGFjaXR5OjA7aGVpZ2h0OjA7bWFyZ2luLWJvdHRvbTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBjaGFwb3J0U2xpZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowO2hlaWdodDowO21hcmdpbi1ib3R0b206MH19QGtleWZyYW1lcyBjaGFwb3J0RmFkZU91dHtmcm9te29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgY2hhcG9ydEZhZGVJbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgY2hhcG9ydFNsaWRlSW5SaWdodHtmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0e3BhZGRpbmc6MTVweCAyMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0OmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdDphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0OmJlZm9yZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0OmFmdGVye2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3Q6YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdDphZnRlcntjbGVhcjpib3RofS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0OmVtcHR5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3Q6ZW1wdHl7cGFkZGluZzowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS10ZXh0LXBob3RvLXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXRleHQtcGhvdG8td3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS10ZXh0LXBob3RvLXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS10ZXh0LXBob3RvLXdyYXBwZXJ7cGFkZGluZy1sZWZ0OjMwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtdGV4dC1waG90by13cmFwcGVyOmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS10ZXh0LXBob3RvLXdyYXBwZXI6YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS10ZXh0LXBob3RvLXdyYXBwZXI6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtdGV4dC1waG90by13cmFwcGVyOmFmdGVye2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtdGV4dC1waG90by13cmFwcGVyOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtdGV4dC1waG90by13cmFwcGVyOmFmdGVye2NsZWFyOmJvdGh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXJ7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyOmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlcjpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyOmFmdGVye2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlcjphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmFuaW0tc2hvdywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuYW5pbS1zaG93ey13ZWJraXQtYW5pbWF0aW9uOjAuMnMgbGluZWFyIGNoYXBvcnRNZXNzYWdlSW47LW8tYW5pbWF0aW9uOjAuMnMgbGluZWFyIGNoYXBvcnRNZXNzYWdlSW47YW5pbWF0aW9uOjAuMnMgbGluZWFyIGNoYXBvcnRNZXNzYWdlSW59LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5hbmltLWhpZGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmFuaW0taGlkZXstd2Via2l0LWFuaW1hdGlvbjowLjJzIGxpbmVhciBjaGFwb3J0TWVzc2FnZU91dDstby1hbmltYXRpb246MC4ycyBsaW5lYXIgY2hhcG9ydE1lc3NhZ2VPdXQ7YW5pbWF0aW9uOjAuMnMgbGluZWFyIGNoYXBvcnRNZXNzYWdlT3V0O29wYWNpdHk6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10ZXh0LXN0YXR1c3tjb2xvcjojY2ZkM2Q1O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuODtjbGVhcjpib3RofS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMubWVzc2FnZS10ZXh0LXN0YXR1cy1mYWlsZWQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzLm1lc3NhZ2UtdGV4dC1zdGF0dXMtZmFpbGVke2NvbG9yOiNmMzM2MzY7Zm9udC13ZWlnaHQ6NjAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMgLnN0YXR1cy1mbGV4LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10ZXh0LXN0YXR1cyAuc3RhdHVzLWZsZXh7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MCAwIDAgYXV0b30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzIC5zdGF0dXMtZmxleCAuY3AtdG9vbHRpcCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMgLnN0YXR1cy1mbGV4IC5jcC10b29sdGlwe3otaW5kZXg6MTAwMDA7bWFyZ2luOjAgM3B4O2hlaWdodDoyMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMgLnN0YXR1cy1mbGV4IC5jcC10b29sdGlwIC50b29sdGlwLWljb24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzIC5zdGF0dXMtZmxleCAuY3AtdG9vbHRpcCAudG9vbHRpcC1pY29ue2ZvbnQtc2l6ZToxN3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMgLnN0YXR1cy1mbGV4IHNwYW4sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzIC5zdGF0dXMtZmxleCBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVze3RleHQtYWxpZ246cmlnaHQ7cGFkZGluZy1yaWdodDozcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10ZXh0LXN0YXR1cyAuc3RhdHVzLWZsZXgsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzIC5zdGF0dXMtZmxleHttYXJnaW46MCAwIDAgYXV0bztqdXN0aWZ5LWNvbnRlbnQ6cmlnaHR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVze3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6MzNweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGV4dC1zdGF0dXMgLnN0YXR1cy1mbGV4LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRleHQtc3RhdHVzIC5zdGF0dXMtZmxleHttYXJnaW46MCBhdXRvIDAgMDtqdXN0aWZ5LWNvbnRlbnQ6bGVmdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXJ7bWluLWhlaWdodDozNXB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d29yZC13cmFwOmJyZWFrLXdvcmQ7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzouNmVtIDFlbTtmb250LXNpemU6MTQuNHB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6dmFyKC0tY3Atd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tb3otdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItcmFkaXVzIDAuMnMgbGluZWFyOy1vLXRyYW5zaXRpb246Ym9yZGVyLXJhZGl1cyAwLjJzIGxpbmVhcjt0cmFuc2l0aW9uOmJvcmRlci1yYWRpdXMgMC4ycyBsaW5lYXJ9LmNoYXBvcnQtY29sb3ItbGlnaHQgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbG9yLWxpZ2h0IC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e2NvbG9yOnZhcigtLWNwLXdpZGdldC10ZXh0LWNvbG9yLWRhcmspfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAqLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5ICp7bGluZS1oZWlnaHQ6MS41O2xldHRlci1zcGFjaW5nOm5vcm1hbH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgZW0sLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbCwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmcsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtjb2xvcjppbmhlcml0fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoNCwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg2LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgxLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg0LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg1LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg2e2NvbG9yOmluaGVyaXR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHN0cm9uZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmd7Zm9udC13ZWlnaHQ6NjAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHN7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDF7Zm9udC1zaXplOjQwLjMycHg7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjowIDAgMC41ZW0gMDtwYWRkaW5nOjIxLjZweCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMntmb250LXNpemU6MjUuMnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MjdweCAwIDE4cHg7bGluZS1oZWlnaHQ6MS4xNX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgye2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MS4yICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgze2ZvbnQtc2l6ZToyMS42cHg7bWFyZ2luOjI3cHggMCAxOHB4O3BhZGRpbmc6MDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4yMn0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgze2ZvbnQtc2l6ZToyMC41OTJweDtsaW5lLWhlaWdodDoxLjE1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgxLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMiwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDN7ZGlzcGxheTpibG9ja30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgZW0sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgZW17Zm9udC1zdHlsZTppdGFsaWN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBkZWx7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJle2ZvbnQtZmFtaWx5OidSb2JvdG8gTW9ubycsIG1vbm9zcGFjZSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3O2JvcmRlcjpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGV7cGFkZGluZzowLjJlbTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheHtvdmVyZmxvdy14OmF1dG87d2hpdGUtc3BhY2U6cHJlO3BhZGRpbmc6OXB4IDQuNjA4cHggMTMuNXB4IDQuNjA4cHg7ZGlzcGxheTpibG9jazt3b3JkLXdyYXA6bm9ybWFsO2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6bm90KDpsYXN0LWNoaWxkKSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDpub3QoOmxhc3QtY2hpbGQpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTpub3QoOmxhc3QtY2hpbGQpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjIyLjUzNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUgY29kZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCBjb2RlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZSBjb2RlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXggY29kZXt3aGl0ZS1zcGFjZTpwcmU7cGFkZGluZzowO292ZXJmbG93LXdyYXA6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWx9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXgsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheHtwYWRkaW5nOjExLjE2cHggNi42NnB4IDE1LjY2cHggNi42NnB4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCxib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheHtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6I2JhYmFjMCB0cmFuc3BhcmVudH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLGJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo3cHh9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLGJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFse2hlaWdodDo3cHh9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLGJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlcntiYWNrZ3JvdW5kOiNmNGY0ZjR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYmFiYWMwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Zlcixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYTBhMGE1fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLGJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci1idXR0b257ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSB1bCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSB1bHtsaXN0LXN0eWxlLXR5cGU6ZGlzYztkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbDtkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbCwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgdWwsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgb2wsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgdWx7Zm9udC1zaXplOjE2LjJweDtwYWRkaW5nOjAgMCAwIDEuNmVtO21hcmdpbjowIDAgMThweCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHB7bGluZS1oZWlnaHQ6MS43O2ZvbnQtc2l6ZToxNC40cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHA6bm90KDpsYXN0LWNoaWxkKSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToyMi41MzZweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgbGksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgbGl7bGluZS1oZWlnaHQ6MS43O2Rpc3BsYXk6bGlzdC1pdGVtO21hcmdpbi1ib3R0b206OXB4O2ZvbnQtc2l6ZToxNC40cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGxpOmxhc3QtY2hpbGQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgbGk6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtkaXNwbGF5OmJsb2NrO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzM4ZmZhO21hcmdpbjowIDAgMTkuNTg0cHggMDtwYWRkaW5nOjAgMCAwIDE1Ljg0cHg7Zm9udC1zaXplOjE0LjRweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZT5wLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGU+cHtmb250LXNpemU6MTQuNHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBsaSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDQsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg1LC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoNiwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBlbSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGxpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDYsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Pio6bGFzdC1jaGlsZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT4qOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Pio6bGFzdC1jaGlsZCAqOmxhc3QtY2hpbGQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+KjpsYXN0LWNoaWxkICo6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+aDE6bGFzdC1jaGlsZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT5oMTpsYXN0LWNoaWxke3BhZGRpbmctYm90dG9tOjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+KjpmaXJzdC1jaGlsZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT4qOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT5oMTpmaXJzdC1jaGlsZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT5oMTpmaXJzdC1jaGlsZHtwYWRkaW5nLXRvcDowICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtmb250LXNpemU6MTZweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAqLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgKntsaW5lLWhlaWdodDoxLjU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmcsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgZGVsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtjb2xvcjppbmhlcml0fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgxLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg0LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg1LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg2LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoNSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg2e2NvbG9yOmluaGVyaXR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25ne2ZvbnQtd2VpZ2h0OjYwMH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3t0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgxLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDF7Zm9udC1zaXplOjQ0LjhweDtmb250LXdlaWdodDo1MDA7bWFyZ2luOjAgMCAwLjVlbSAwO3BhZGRpbmc6MjRweCAwfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDJ7Zm9udC1zaXplOjI4cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjozMHB4IDAgMjBweDtsaW5lLWhlaWdodDoxLjE1fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgye2ZvbnQtc2l6ZToyNXB4O2xpbmUtaGVpZ2h0OjEuMiAhaW1wb3J0YW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDN7Zm9udC1zaXplOjI0cHg7bWFyZ2luOjMwcHggMCAyMHB4O3BhZGRpbmc6MDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4yMn0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgzLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoM3tmb250LXNpemU6MjIuODhweDtsaW5lLWhlaWdodDoxLjE1ICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDMsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDN7ZGlzcGxheTpibG9ja30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBlbSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVte2ZvbnQtc3R5bGU6aXRhbGljfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGRlbHt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZXtmb250LWZhbWlseTonUm9ib3RvIE1vbm8nLCBtb25vc3BhY2UgIWltcG9ydGFudDtmb250LXNpemU6MTMuMzNweDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmNztib3JkZXI6bm9uZX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZXtwYWRkaW5nOjAuMmVtO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXh7b3ZlcmZsb3cteDphdXRvO3doaXRlLXNwYWNlOnByZTtwYWRkaW5nOjEwcHggNS4xMnB4IDE1cHggNS4xMnB4O2Rpc3BsYXk6YmxvY2s7d29yZC13cmFwOm5vcm1hbDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6bm90KDpsYXN0LWNoaWxkKSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Om5vdCg6bGFzdC1jaGlsZCksLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6bm90KDpsYXN0LWNoaWxkKSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjI1LjA0cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlIGNvZGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCBjb2RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlIGNvZGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4IGNvZGV7d2hpdGUtc3BhY2U6cHJlO3BhZGRpbmc6MDtvdmVyZmxvdy13cmFwOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXgsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4e3BhZGRpbmc6MTIuNHB4IDcuNHB4IDE3LjRweCA3LjRweH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheCxib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4e3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojYmFiYWMwIHRyYW5zcGFyZW50fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo3cHh9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsYm9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbHtoZWlnaHQ6N3B4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3Zlcixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlcntiYWNrZ3JvdW5kOiNmNGY0ZjR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLGJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2JhYmFjMDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Zlcixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNhMGEwYTV9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbixib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci1idXR0b257ZGlzcGxheTpub25lfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHVsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgdWx7bGlzdC1zdHlsZS10eXBlOmRpc2M7ZGlzcGxheTpibG9ja30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IG9se2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsO2Rpc3BsYXk6YmxvY2t9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgb2wsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgdWwsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHVse2ZvbnQtc2l6ZToxOHB4O3BhZGRpbmc6MCAwIDAgMS42ZW07bWFyZ2luOjAgMCAyMHB4IDB9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHB7bGluZS1oZWlnaHQ6MS43O2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHA6bm90KDpsYXN0LWNoaWxkKSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHA6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjI1LjA0cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgbGksLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBsaXtsaW5lLWhlaWdodDoxLjc7ZGlzcGxheTpsaXN0LWl0ZW07bWFyZ2luLWJvdHRvbToxMHB4O2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGxpOmxhc3QtY2hpbGQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBsaTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtkaXNwbGF5OmJsb2NrO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzM4ZmZhO21hcmdpbjowIDAgMjEuNzZweCAwO3BhZGRpbmc6MCAwIDAgMTcuNnB4O2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGU+cCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGU+cHtmb250LXNpemU6MTZweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGxpLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDEsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDMsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDYsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgc3Ryb25nLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHMsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHAsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBsaSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGgyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDMsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoNCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGg1LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaDYsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmcsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBlbSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHMsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT4qOmxhc3QtY2hpbGQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT4qOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+KjpsYXN0LWNoaWxkICo6bGFzdC1jaGlsZCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Pio6bGFzdC1jaGlsZCAqOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+aDE6bGFzdC1jaGlsZCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5PmgxOmxhc3QtY2hpbGR7cGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Pio6Zmlyc3QtY2hpbGQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keT4qOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MCAhaW1wb3J0YW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5PmgxOmZpcnN0LWNoaWxkLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk+aDE6Zmlyc3QtY2hpbGR7cGFkZGluZy10b3A6MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBoMXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo2MDB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHAsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGxpLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmcsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGVtLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHAsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgbGksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBzdHJvbmcsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgZW0sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe2xpbmUtaGVpZ2h0OjEuNCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHB7ZGlzcGxheTpibG9jazttYXJnaW46MCAwIDEwcHggMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwOmxhc3QtY2hpbGQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcDpsYXN0LWNoaWxke21hcmdpbjowICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZW1vamktaW5saW5lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IC5lbW9qaS1pbmxpbmV7bGluZS1oZWlnaHQ6MDttYXJnaW4tdG9wOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDtmb250LXNpemU6MS4yZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZW1vamktaW5saW5lIGltZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZW1vamktaW5saW5lIGltZ3toZWlnaHQ6MjBweDt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLmVtb2ppLWlubGluZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IC5lbW9qaS1pbmxpbmV7dG9wOi0zcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHVsLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSB1bCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBvbHtwYWRkaW5nLWxlZnQ6MzBweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkuZmFxLWJvdC1tZXNzYWdlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LmZhcS1ib3QtbWVzc2FnZXtwYWRkaW5nOjAuNmVtIDAgMCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keS5mYXEtYm90LW1lc3NhZ2UgLmZhcS1ib3QtbWVzc2FnZS1oZWFkaW5nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LmZhcS1ib3QtbWVzc2FnZSAuZmFxLWJvdC1tZXNzYWdlLWhlYWRpbmd7cGFkZGluZzowIDFlbSAwLjZlbSAxZW19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstZ3JvdXAsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay1ncm91cHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZThlY2VmO2JvcmRlci1yYWRpdXM6aW5oZXJpdDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjJweDstbW96LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjJweDstbXMtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MnB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjJweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czoycHg7LW1zLWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keS5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLWdyb3VwIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstZ3JvdXAgLmJ0bi1saW5rLXdyYXBwZXJ7ZGlzcGxheTpibG9jaztwYWRkaW5nOjAuNmVtIDFlbTtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOi0xcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4zczstby10cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4zczt0cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4zcztjb2xvcjojMTk4YWY3fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keS5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLWdyb3VwIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstZ3JvdXAgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXJ7Y29sb3I6IzRhYTNmOX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay1ncm91cCAuYnRuLWxpbmstd3JhcHBlcjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keS5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLWdyb3VwIC5idG4tbGluay13cmFwcGVyOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7aGVpZ2h0OjFweDttYXgtaGVpZ2h0OjFweDt3aWR0aDo5MCU7bGVmdDo1JTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGVjZWZ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1ley13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsta2h0bWwtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtjdXJzb3I6ZGVmYXVsdDttYXJnaW4tdG9wOjhweDtmb250LXNpemU6MTFweDtjb2xvcjojY2ZkM2Q1fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRpbWV7bWFyZ2luLXRvcDoxMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1zdGF0dXN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMUQ5MEZGOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IGVhc2UtaW4tb3V0IDAuMnM7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IGVhc2UtaW4tb3V0IDAuMnM7dHJhbnNpdGlvbjpvcGFjaXR5IGVhc2UtaW4tb3V0IDAuMnN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXJ7ZmxvYXQ6cmlnaHQ7cGFkZGluZy1yaWdodDoxMnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdle3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OnJpZ2h0O21heC13aWR0aDo5NSU7cGFkZGluZy1sZWZ0OjM3cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZTpiZWZvcmUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZTphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZTphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlOmFmdGVye2NsZWFyOmJvdGh9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdle21heC13aWR0aDoxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMxRDkwRkY7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4Oy1tcy1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4Oy1tb3otYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7LW1zLWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4Oy1tcy1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4Oy1tcy1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGV7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiMzZDlkZmI7c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOiM3YWJkZmYgdHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWx7aGVpZ2h0OjdweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojN2FiZGZmO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojN2FiZGZmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbntkaXNwbGF5Om5vbmV9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2Rle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojM2Q5ZGZiO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojN2FiZGZmIHRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NHB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbHtoZWlnaHQ6NHB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiM3YWJkZmY7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6IzdhYmRmZn0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24sLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbntkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHAsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Y29sb3I6aW5oZXJpdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2Utc3RhdHVze3JpZ2h0Oi0yMXB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXI6Zmlyc3Qtb2YtdHlwZSAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyOmZpcnN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLWJvZHl7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7LW1zLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnlvdXItbWVzc2FnZS13cmFwcGVyLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIueW91ci1tZXNzYWdlLXdyYXBwZXIubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLWJvZHl7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7LW1vei1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7LW1zLWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1le3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXJ7ZmxvYXQ6bGVmdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2V7cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdDttYXgtd2lkdGg6OTUlO3BhZGRpbmctcmlnaHQ6MzdweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZTphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZTpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YWZ0ZXJ7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2U6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZSwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdle21heC13aWR0aDoxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZThlY2VmO2NvbG9yOiMzMzM4M2E7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7LW1zLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7LW1vei1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7LW1zLWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4Oy1tcy1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHg7LW1zLWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZXtjb2xvcjppbmhlcml0O2JhY2tncm91bmQtY29sb3I6I2YzZjVmNztzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6I2M5Y2JjYyB0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjdweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWx7aGVpZ2h0OjdweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYzljYmNjO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNjOWNiY2N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24sLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b257ZGlzcGxheTpub25lfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojYzljYmNjIHRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NHB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFse2hlaWdodDo0cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2M5Y2JjYztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYzljYmNjfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbntkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzAwMzVmZn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAudHlwaW5nLXRleHQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAudHlwaW5nLXRleHR7Y29sb3I6Izg5ODk5MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXN0YXR1c3tsZWZ0Oi01MXB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e2JhY2tncm91bmQtY29sb3I6I2UxZWVmOTtjb2xvcjojMDAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2Rle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojZWRmNmZkO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojYmZjZmRkIHRyYW5zcGFyZW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo3cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWx7aGVpZ2h0OjdweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYmZjZmRkO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2JmY2ZkZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9ue2Rpc3BsYXk6bm9uZX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2Rle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojZWRmNmZkO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojYmZjZmRkIHRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFsLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFse2hlaWdodDo0cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6aG92ZXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10cmFjazpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2JmY2ZkZDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2JmY2ZkZH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgcHJlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24sLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBjb2RlOjotd2Via2l0LXNjcm9sbGJhci1idXR0b257ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3Itb3BlcmF0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLnR5cGluZy10ZXh0LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1vcGVyYXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAudHlwaW5nLXRleHR7Y29sb3I6Izg1OTM5ZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAudHlwaW5nLWluZGljYXRvci1jaXJjbGUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW9wZXJhdG9yLW1lc3NhZ2Utd3JhcHBlciAudHlwaW5nLWluZGljYXRvci1jaXJjbGV7YmFja2dyb3VuZC1jb2xvcjojOGZhMmIxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyOmZpcnN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXI6Zmlyc3Qtb2YtdHlwZSAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS1ib2R5ey13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7LW1vei1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDstbXMtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyOmxhc3Qtb2YtdHlwZSAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5tZXNzYWdlLWdyb3VwLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlci5tZXNzYWdlLWdyb3VwLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4Oy1tb3otYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7LW1zLWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRpbWV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90b3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MnB4O2xlZnQ6MHB4O3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7ei1pbmRleDozfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8gaW1nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90byBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LWJvcmRlci1yYWRpdXM6NTAlOy1tb3otYm9yZGVyLXJhZGl1czo1MCU7LW1zLWJvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OmhpZGRlbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90by5uby1waG90b3std2Via2l0LWJvcmRlci1yYWRpdXM6NTAlOy1tb3otYm9yZGVyLXJhZGl1czo1MCU7LW1zLWJvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1yYWRpdXM6NTAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8ubm8tcGhvdG86YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90by5uby1waG90bzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctMjR4MjQucG5nIik7YmFja2dyb3VuZC1zaXplOjI0cHggMjRweH1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmJlZm9yZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8ubm8tcGhvdG86YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctMjR4MjRAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8ubm8tcGhvdG86YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowLjc7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS0yNHgyNC5wbmciKTtiYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8ubm8tcGhvdG86YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1ib2R5LTI0eDI0QDJ4LnBuZyIpfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLmJvdC1pY29uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90by5ib3QtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiM3NDhjOWY7Ym9yZGVyLXJhZGl1czo1MCU7cGFkZGluZzo0cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8uYm90LWljb24gaW1nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90by5ib3QtaWNvbiBpbWd7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHg7Ym9yZGVyLXJhZGl1czowO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zeXN0ZW0tbWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zeXN0ZW0tbWVzc2FnZS13cmFwcGVye2Zsb2F0OmxlZnQ7cGFkZGluZy1sZWZ0OjRweDtwYWRkaW5nLXJpZ2h0OjRweDt3aWR0aDoxMDAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZXttYXJnaW4tbGVmdDoxMiU7bWFyZ2luLXJpZ2h0OjEyJTt0ZXh0LWFsaWduOmNlbnRlcn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnN5c3RlbS1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e3BhZGRpbmc6MDtmb250LXNpemU6MTNweDtjb2xvcjojOTlhMGE1fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnN5c3RlbS1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe2NvbG9yOiM5OWEwYTV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zeXN0ZW0tbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6I2I0YjliZH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnN5c3RlbS1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtmb250LXNpemU6MTVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnN5c3RlbS1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGltZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc3lzdGVtLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1le21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjBweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLm9wZXJhdG9yLWpvaW5lZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVke2ZvbnQtc2l6ZToxM3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90bywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90b3ttYXJnaW46MCBhdXRvIDEwcHg7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLm9wZXJhdG9yLWpvaW5lZCAub3BlcmF0b3ItcGhvdG8gaW1nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5vcGVyYXRvci1qb2luZWQgLm9wZXJhdG9yLXBob3RvIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVufS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90bywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90b3twb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJvcmRlci1yYWRpdXM6NTAlOy1tb3otYm9yZGVyLXJhZGl1czo1MCU7LW1zLWJvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1yYWRpdXM6NTAlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90bzpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLm9wZXJhdG9yLWpvaW5lZCAub3BlcmF0b3ItcGhvdG8ubm8tcGhvdG86YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tc2hhZG93LTYweDYwLnBuZyIpO2JhY2tncm91bmQtc2l6ZTozNnB4IDM2cHh9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5vcGVyYXRvci1qb2luZWQgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmJlZm9yZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90bzpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdXNlci1pY29uLXNoYWRvdy02MHg2MEAyeC5wbmciKX19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5vcGVyYXRvci1qb2luZWQgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5vcGVyYXRvci1qb2luZWQgLm9wZXJhdG9yLXBob3RvLm5vLXBob3RvOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowLjc7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS02MHg2MC5wbmciKTtiYWNrZ3JvdW5kLXNpemU6MzZweCAzNnB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90bzphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5vcGVyYXRvci1waG90by5uby1waG90bzphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS02MHg2MEAyeC5wbmciKX19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5vcGVyYXRvci1qb2luZWQgLm9wZXJhdG9yLW5hbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLm9wZXJhdG9yLWpvaW5lZCAub3BlcmF0b3ItbmFtZXt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojMzMzODNhfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIub3BlcmF0b3Itam9pbmVkIC5qb2luZWQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLm9wZXJhdG9yLWpvaW5lZCAuam9pbmVke3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiM5OWEwYTV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLm1lc3NhZ2UsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZXttYXgtd2lkdGg6MjY2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtoZWlnaHQ6MzdweDtsaW5lLWhlaWdodDozN3B4O2ZvbnQtc2l6ZToxNXB4O21hcmdpbjowO3BhZGRpbmc6MCAxMHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NkZDFkNDtib3JkZXItcmlnaHQtd2lkdGg6MDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHg7LW1zLWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NXB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6NXB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7LW1vei1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjVweDstbXMtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2ZvbnQtZmFtaWx5OiJwcm94aW1hLW5vdmEiLCJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7cmVzaXplOm5vbmUgIWltcG9ydGFudDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d29yZC13cmFwOmJyZWFrLXdvcmQ7LXdlYmtpdC10cmFuc2l0aW9uOnBhZGRpbmctbGVmdCAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQsYm9yZGVyLWNvbG9yIC4ycyBlYXNlLWluLW91dCxib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyAuMnMgZWFzZS1pbi1vdXQsYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMgLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246cGFkZGluZy1sZWZ0IC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjJzIGVhc2UtaW4tb3V0LGJvcmRlci10b3AtcmlnaHQtcmFkaXVzIC4ycyBlYXNlLWluLW91dCxib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpwYWRkaW5nLWxlZnQgLjJzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMnMgZWFzZS1pbi1vdXQsYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMgLjJzIGVhc2UtaW4tb3V0LGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIC4ycyBlYXNlLWluLW91dDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjpyZ2JhKDIwNSwyMDksMjEyLDAuODUpO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OjotbW96LXBsYWNlaG9sZGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcntmb250LXNpemU6MTVweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE1cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmRpc2FibGVkOjotbW96LXBsYWNlaG9sZGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpkaXNhYmxlZDo6LW1vei1wbGFjZWhvbGRlcntmb250LXNpemU6MTVweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmRpc2FibGVkOi1tcy1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6ZGlzYWJsZWQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpkaXNhYmxlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6ZGlzYWJsZWQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE1cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MzdweDtoZWlnaHQ6MzdweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo1cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NXB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQsYm9yZGVyLXJhZGl1cyAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWljb24sLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc3VjY2Vzcy1pY29uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1pY29uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc3VjY2Vzcy1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7b3BhY2l0eTowLjk1O3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWljb24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWljb257dG9wOjlweDtsZWZ0OjlweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9uZXh0LWljb24uc3ZnIik7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMCk7YmFja2dyb3VuZC1zaXplOjE4cHggMThweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1ze21hcmdpbi10b3A6MHB4O2ZvbnQtc2l6ZToxM3B4O3dpZHRoOjIwMHB4O2xpbmUtaGVpZ2h0OjE1cHg7b3ZlcmZsb3cteTpoaWRkZW47d2hpdGUtc3BhY2U6bm9ybWFsO2hlaWdodDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1hcmdpbi10b3AgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcy5lcnJvciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zLmVycm9ye21hcmdpbi10b3A6MTBweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyAucmVxdWVzdC10ZXh0LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgLnJlcXVlc3QtdGV4dHttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbTo4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgLmVycm9yLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgLmVycm9ye2NvbG9yOiNmOTIzMjM7bWFyZ2luLWJvdHRvbTo1cHg7aGVpZ2h0OjE4cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgLmVycm9yLmFuaW0taW4sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyAuZXJyb3IuYW5pbS1pbnstd2Via2l0LWFuaW1hdGlvbjowLjJzIGVhc2UtaW4tb3V0IGNoYXBvcnRTbGlkZUluOy1vLWFuaW1hdGlvbjowLjJzIGVhc2UtaW4tb3V0IGNoYXBvcnRTbGlkZUluO2FuaW1hdGlvbjowLjJzIGVhc2UtaW4tb3V0IGNoYXBvcnRTbGlkZUlufS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIC5lcnJvci5hbmltLW91dCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIC5lcnJvci5hbmltLW91dHstd2Via2l0LWFuaW1hdGlvbjowLjI1cyBlYXNlLWluLW91dCBjaGFwb3J0U2xpZGVPdXQ7LW8tYW5pbWF0aW9uOjAuMjVzIGVhc2UtaW4tb3V0IGNoYXBvcnRTbGlkZU91dDthbmltYXRpb246MC4yNXMgZWFzZS1pbi1vdXQgY2hhcG9ydFNsaWRlT3V0fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBhe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6aW5oZXJpdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBwLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgcHtkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIHAub3B0aW9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgcC5vcHRpb257bWFyZ2luOjNweCAwIDAgMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBwLm9wdGlvbiBsYWJlbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIHAub3B0aW9uIGxhYmVse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0icmFkaW8iXSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGlucHV0W3R5cGU9InJhZGlvIl17bWFyZ2luLXJpZ2h0OjVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdK2xhYmVsLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXStsYWJlbHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjE3cHg7Y29sb3I6Izg2OGQ5M30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdK2xhYmVsIGEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdK2xhYmVsIGF7bGluZS1oZWlnaHQ6MWVtfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGlucHV0W3R5cGU9ImNoZWNrYm94Il0rbGFiZWw6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXStsYWJlbDpiZWZvcmV7Ym94LXNpemluZzpjb250ZW50LWJveDtjb250ZW50OicnO2NvbG9yOiNhN2FkYjQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjFweDtsZWZ0Oi0yMHB4O3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2RkMWQ0O3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246YWxsIDAuNHMgZWFzZTstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7LW1zLWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdK2xhYmVsOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXStsYWJlbDphZnRlcntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjZweDtsZWZ0Oi0xNnB4O3dpZHRoOjZweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojYTdhZGI0O2JvcmRlci13aWR0aDowIDAgMnB4IDJweDtib3JkZXItaW1hZ2U6bm9uZTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7dHJhbnNmb3JtLW9yaWdpbjo1MCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMjAwbXMgZWFzZS1vdXR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXStsYWJlbC5lcnJvcjo6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXStsYWJlbC5lcnJvcjo6YmVmb3Jle2JvcmRlci1jb2xvcjojZjA1ZjVmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMrbGFiZWw6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpmb2N1cytsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNhN2FkYjR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTphY3RpdmUrbGFiZWw6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTphY3RpdmUrbGFiZWw6YmVmb3Jle3RyYW5zaXRpb24tZHVyYXRpb246MHN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpkaXNhYmxlZCtsYWJlbDpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6I2NjY2NjY30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkOmZvY3VzK2xhYmVsOmJlZm9yZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGlucHV0W3R5cGU9ImNoZWNrYm94Il06ZGlzYWJsZWQ6Zm9jdXMrbGFiZWw6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkOmNoZWNrZWQrbGFiZWw6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpkaXNhYmxlZDpjaGVja2VkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNjY2NjY2N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkK2xhYmVsOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtdGVybXMgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkK2xhYmVsOmFmdGVye2NvbnRlbnQ6Jyc7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXRlcm1zIGlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCtsYWJlbDpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC10ZXJtcyBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2FuaW1hdGlvbjpib3JkZXJzY2FsZSAyMDBtcyBlYXNlLWlufUBrZXlmcmFtZXMgYm9yZGVyc2NhbGV7NTAle2JveC1zaGFkb3c6MCAwIDAgMnB4ICNhN2FkYjR9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXN1Y2Nlc3MtaWNvbiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXN1Y2Nlc3MtaWNvbnt0b3A6OXB4O2xlZnQ6MTBweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9jaGVja21hcmstaWNvbi5zdmciKTtiYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4O29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC04OGRlZyl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmVtYWlsLXJlcXVlc3QtZWRpdC1idXR0b24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC1lZGl0LWJ1dHRvbntvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTZweDtsZWZ0OjA7bGluZS1oZWlnaHQ6MWVtO2hlaWdodDoxZW07Zm9udC1zaXplOjEycHg7Y29sb3I6I2FhYX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC1lZGl0LWJ1dHRvbjpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LWVkaXQtYnV0dG9uOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXN1Y2Nlc3MsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC1zdWNjZXNze29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5lbWFpbC1yZXF1ZXN0LXN1Y2Nlc3M6aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuZW1haWwtcmVxdWVzdC1zdWNjZXNzOmhvdmVye2N1cnNvcjpwb2ludGVyfUAtd2Via2l0LWtleWZyYW1lcyBkZWZpbmVkLWVtYWlsLWxhYmVsLWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGRlZmluZWQtZW1haWwtbGFiZWwtaW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW1zLWtleWZyYW1lcyBkZWZpbmVkLWVtYWlsLWxhYmVsLWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBkZWZpbmVkLWVtYWlsLWxhYmVsLWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBkZWZpbmVkLWVtYWlsLWxhYmVsLWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1sYWJlbC5sYWJlbC1hbmltYXRlZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtbGFiZWwubGFiZWwtYW5pbWF0ZWR7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOjAuM3MgZWFzZS1vdXQgZGVmaW5lZC1lbWFpbC1sYWJlbC1pbjstby1hbmltYXRpb246MC4zcyBlYXNlLW91dCBkZWZpbmVkLWVtYWlsLWxhYmVsLWluO2FuaW1hdGlvbjowLjNzIGVhc2Utb3V0IGRlZmluZWQtZW1haWwtbGFiZWwtaW47LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjJzO2FuaW1hdGlvbi1kZWxheTouMnM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Y29udGVudC1ib3g7bWFyZ2luLXRvcDo5cHg7bWFyZ2luLWJvdHRvbTo3cHg7cGFkZGluZy1yaWdodDozN3B4O21pbi1oZWlnaHQ6MzdweDtsaW5lLWhlaWdodDoxZW07Ym9yZGVyOm5vbmU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4Oy1tcy1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5wcml2YWN5LXZpc2libGUgLmVtYWlsLXJlcXVlc3QtdGVybXMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIucHJpdmFjeS12aXNpYmxlIC5lbWFpbC1yZXF1ZXN0LXRlcm1ze29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgYnRuLWJvdW5jZS1pbnsyMCV7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjU1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjU1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCl9NTAley1tcy10cmFuc2Zvcm06c2NhbGUoMC42NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC42NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApfTgwJXstbXMtdHJhbnNmb3JtOnNjYWxlKDAuNTcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNTcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKX19QC1tb3ota2V5ZnJhbWVzIGJ0bi1ib3VuY2UtaW57MjAley1tcy10cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnNjYWxlKDAuNTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApfTUwJXstbXMtdHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTpzY2FsZSgwLjY1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKX04MCV7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06c2NhbGUoMC41NykgdHJhbnNsYXRlM2QoMCwgMCwgMCl9fUAtbXMta2V5ZnJhbWVzIGJ0bi1ib3VuY2UtaW57MjAley1tcy10cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnNjYWxlKDAuNTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApfTUwJXstbXMtdHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTpzY2FsZSgwLjY1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKX04MCV7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06c2NhbGUoMC41NykgdHJhbnNsYXRlM2QoMCwgMCwgMCl9fUAtby1rZXlmcmFtZXMgYnRuLWJvdW5jZS1pbnsyMCV7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjU1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjU1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06c2NhbGUoMC41NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCl9NTAley1tcy10cmFuc2Zvcm06c2NhbGUoMC42NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC42NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnNjYWxlKDAuNjUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApfTgwJXstbXMtdHJhbnNmb3JtOnNjYWxlKDAuNTcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNTcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTpzY2FsZSgwLjU3KSB0cmFuc2xhdGUzZCgwLCAwLCAwKX19QGtleWZyYW1lcyBidG4tYm91bmNlLWluezIwJXstbXMtdHJhbnNmb3JtOnNjYWxlKDAuNTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNTUpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTpzY2FsZSgwLjU1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKX01MCV7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjY1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjY1KSB0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06c2NhbGUoMC42NSkgdHJhbnNsYXRlM2QoMCwgMCwgMCl9ODAley1tcy10cmFuc2Zvcm06c2NhbGUoMC41NykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC41NykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnNjYWxlKDAuNTcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuZW1haWwtZGVmaW5lZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVke2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuZW1haWwtZGVmaW5lZCAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e3BhZGRpbmctbGVmdDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjVweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo1cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLmVtYWlsLWRlZmluZWQgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpkaXNhYmxlZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6ZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IzMzMzgzYTstd2Via2l0LW9wYWNpdHk6MTtjb2xvcjojMzMzODNhO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLmVtYWlsLWRlZmluZWQgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuZW1haWwtZGVmaW5lZCAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06c2NhbGUoMC42KTtvcGFjaXR5OjAuNztjdXJzb3I6YXV0bzstd2Via2l0LWFuaW1hdGlvbjowLjQ1cyBsaW5lYXIgYnRuLWJvdW5jZS1pbjstby1hbmltYXRpb246MC40NXMgbGluZWFyIGJ0bi1ib3VuY2UtaW47YW5pbWF0aW9uOjAuNDVzIGxpbmVhciBidG4tYm91bmNlLWluOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4yczthbmltYXRpb24tZGVsYXk6LjJzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkIC5jaGFwb3J0LWVtYWlsLXNlbmQtaWNvbiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkIC5jaGFwb3J0LWVtYWlsLXNlbmQtaWNvbntvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLmVtYWlsLWRlZmluZWQgLmNoYXBvcnQtZW1haWwtc3VjY2Vzcy1pY29uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLmVtYWlsLWRlZmluZWQgLmNoYXBvcnQtZW1haWwtc3VjY2Vzcy1pY29ue29wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkIC5lbWFpbC1yZXF1ZXN0LWVkaXQtYnV0dG9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5lbWFpbC1yZXF1ZXN0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyLmVtYWlsLWRlZmluZWQgLmVtYWlsLXJlcXVlc3QtZWRpdC1idXR0b257b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuZW1haWwtZGVmaW5lZC5jaGFwb3J0LWlucHV0LXdyYXBwZXItZm9jdXNlZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZW1haWwtcmVxdWVzdC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlci5lbWFpbC1kZWZpbmVkLmNoYXBvcnQtaW5wdXQtd3JhcHBlci1mb2N1c2Vke2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuaGFzLWVycm9yIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmVtYWlsLXJlcXVlc3Qtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIuaGFzLWVycm9yIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Ym9yZGVyLWNvbG9yOiNmMDVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1sYWJlbCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWxhYmVse21hcmdpbi1ib3R0b206NHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlciAucmF0ZS1yZXF1ZXN0LXJhdGluZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlciAucmF0ZS1yZXF1ZXN0LXJhdGluZ3tmbGV4OjAgMCBhdXRvO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvcmF0aW5ncy1lbW9qaS5wbmciKTtiYWNrZ3JvdW5kLXNpemU6MTIwcHggMjRweDstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIDAuMTVzIGVhc2Usb3BhY2l0eSAwLjM1cyBlYXNlLGZpbHRlciAwLjM1cyBlYXNlLC13ZWJraXQtZmlsdGVyIDAuMzVzIGVhc2U7LW8tdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4xNXMgZWFzZSxvcGFjaXR5IDAuMzVzIGVhc2UsZmlsdGVyIDAuMzVzIGVhc2UsLXdlYmtpdC1maWx0ZXIgMC4zNXMgZWFzZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjE1cyBlYXNlLG9wYWNpdHkgMC4zNXMgZWFzZSxmaWx0ZXIgMC4zNXMgZWFzZSwtd2Via2l0LWZpbHRlciAwLjM1cyBlYXNlO21hcmdpbjoxcHggMTVweCAycHggMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTEsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTF7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIgLnJlcXVlc3QtYm9keS13cmFwcGVyIC5yYXRlLXJlcXVlc3QtcmF0aW5nLnJhdGluZy0yLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIgLnJlcXVlc3QtYm9keS13cmFwcGVyIC5yYXRlLXJlcXVlc3QtcmF0aW5nLnJhdGluZy0ye2JhY2tncm91bmQtcG9zaXRpb246LTI0cHggMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTN7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlciAucmF0ZS1yZXF1ZXN0LXJhdGluZy5yYXRpbmctNCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyIC5yZXF1ZXN0LWJvZHktd3JhcHBlciAucmF0ZS1yZXF1ZXN0LXJhdGluZy5yYXRpbmctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi03MnB4IDB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIgLnJlcXVlc3QtYm9keS13cmFwcGVyIC5yYXRlLXJlcXVlc3QtcmF0aW5nLnJhdGluZy01LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIgLnJlcXVlc3QtYm9keS13cmFwcGVyIC5yYXRlLXJlcXVlc3QtcmF0aW5nLnJhdGluZy01e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlciAucmVxdWVzdC1ib2R5LXdyYXBwZXIgLnJhdGUtcmVxdWVzdC1yYXRpbmcucmF0aW5nLTV7bWFyZ2luLXJpZ2h0OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIuc3RhdGUtcmF0aW5nLXVuZGVmaW5lZCAucmF0ZS1yZXF1ZXN0LXJhdGluZzpob3ZlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyLnN0YXRlLXJhdGluZy11bmRlZmluZWQgLnJhdGUtcmVxdWVzdC1yYXRpbmc6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNmb3JtOnNjYWxlKDEuMil9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5yZXF1ZXN0LXdyYXBwZXIucmF0ZS1yZXF1ZXN0LXdyYXBwZXIuc3RhdGUtcmF0aW5nLWRlZmluZWQgLnJhdGUtcmVxdWVzdC1yYXRpbmcsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlci5zdGF0ZS1yYXRpbmctZGVmaW5lZCAucmF0ZS1yZXF1ZXN0LXJhdGluZ3std2Via2l0LWZpbHRlcjpncmF5c2NhbGUoMSk7ZmlsdGVyOmdyYXlzY2FsZSgxKTtvcGFjaXR5OjAuNX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnJlcXVlc3Qtd3JhcHBlci5yYXRlLXJlcXVlc3Qtd3JhcHBlci5zdGF0ZS1yYXRpbmctZGVmaW5lZCAucmF0ZS1yZXF1ZXN0LXJhdGluZy5zZWxlY3RlZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIucmVxdWVzdC13cmFwcGVyLnJhdGUtcmVxdWVzdC13cmFwcGVyLnN0YXRlLXJhdGluZy1kZWZpbmVkIC5yYXRlLXJlcXVlc3QtcmF0aW5nLnNlbGVjdGVkey13ZWJraXQtZmlsdGVyOm5vbmU7ZmlsdGVyOm5vbmU7b3BhY2l0eToxfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZGF0YS1yZXF1ZXN0LXdyYXBwZXIgLm1lc3NhZ2UtdGltZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZGF0YS1yZXF1ZXN0LXdyYXBwZXIgLm1lc3NhZ2UtdGltZXt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZS1ib2R5e3BhZGRpbmc6MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZGF0YS1yZXF1ZXN0LXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmRhdGEtcmVxdWVzdC13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVye21hcmdpbjowICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZS1ib2R5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZS1ib2R5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2JvcmRlci1jb2xvcjojZDZkOWRjfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAubWVzc2FnZS1ib2R5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmRhdGEtcmVxdWVzdC13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Zm9udC1zaXplOjE2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5kYXRhLXJlcXVlc3Qtd3JhcHBlciAuYm90LWljb24sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmRhdGEtcmVxdWVzdC13cmFwcGVyIC5ib3QtaWNvbnt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zaW5nbGUtZW1vamktd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zaW5nbGUtZW1vamktd3JhcHBlciAubWVzc2FnZS1ib2R5e3BhZGRpbmctbGVmdDowICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7YmFja2dyb3VuZDpub25lICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zaW5nbGUtZW1vamktd3JhcHBlciAubWVzc2FnZS1ib2R5IC5lbW9qaS1pbmxpbmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnNpbmdsZS1lbW9qaS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLmVtb2ppLWlubGluZXt0b3A6MDtmb250LXNpemU6NDhweCAhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjQ4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc2luZ2xlLWVtb2ppLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZW1vamktaW5saW5lIGltZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc2luZ2xlLWVtb2ppLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZW1vamktaW5saW5lIGltZ3t3aWR0aDphdXRvO2hlaWdodDo0OHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc2luZ2xlLWVtb2ppLXdyYXBwZXIgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zaW5nbGUtZW1vamktd3JhcHBlciAubWVzc2FnZS1zdGF0dXN7Ym90dG9tOjEwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5zaW5nbGUtZW1vamktd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuc2luZ2xlLWVtb2ppLXdyYXBwZXI6bGFzdC1vZi10eXBlIC5tZXNzYWdlLWJvZHl7cGFkZGluZy1ib3R0b206MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlci5ub3QtcmVhZHk6bm90KC51cGxvYWQtaW4tcHJvZ3Jlc3MpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIubm90LXJlYWR5Om5vdCgudXBsb2FkLWluLXByb2dyZXNzKXtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHl7Y29sb3I6IzdlODc4ZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5IGltZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaW1ne21heC13aWR0aDoyMDBweDttYXgtaGVpZ2h0OjIwMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaW1nLmRvd25sb2FkLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBpbWcuZG93bmxvYWR7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOnBvaW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBpbWcuem9vbS1pbiwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHkgaW1nLnpvb20taW57Y3Vyc29yOnpvb20taW59LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe3RleHQtZGVjb3JhdGlvbjpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHkgLmZpbGUtbmFtZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5IC5maWxlLXNpemUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5IC5maWxlLW5hbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5IC5maWxlLXNpemV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC1hbGlnbjpjZW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZmlsZS1uYW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSAuZmlsZS1uYW1le3doaXRlLXNwYWNlOm5vd3JhcH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5OmhvdmVyIGltZy5kb3dubG9hZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHk6aG92ZXIgaW1nLmRvd25sb2Fke2JveC1zaGFkb3c6MCAwIDEwcHggIzFkOTBjZn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHl7aGVpZ2h0OjM3cHg7cGFkZGluZy10b3A6OHB4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkZmUxICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keXtwYWRkaW5nLXRvcDo1cHggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keSBhe2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keSBhOmhvdmVyIGltZywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keSBhOmhvdmVyIGltZ3tvcGFjaXR5OjEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkgYTpob3ZlciAuZmlsZS1uYW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXI6bm90KC5pbWFnZS10cmFuc2Zlci13cmFwcGVyKSAubWVzc2FnZS1ib2R5IGE6aG92ZXIgLmZpbGUtbmFtZXtvcGFjaXR5OjEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkgaW1nLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXI6bm90KC5pbWFnZS10cmFuc2Zlci13cmFwcGVyKSAubWVzc2FnZS1ib2R5IGltZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O3RvcDo3cHg7b3BhY2l0eTowLjU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXI7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkgLmZpbGUtbmFtZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keSAuZmlsZS1uYW1le2Rpc3BsYXk6YmxvY2s7cGFkZGluZy1sZWZ0OjI0cHg7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZTowLjkzZW07Y29sb3I6IzdlODc4ZDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjJzIGxpbmVhcjstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBsaW5lYXI7dHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgbGluZWFyfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXI6bm90KC5pbWFnZS10cmFuc2Zlci13cmFwcGVyKSAubWVzc2FnZS1ib2R5IC5maWxlLW5hbWUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keSAuZmlsZS1uYW1le2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyOm5vdCguaW1hZ2UtdHJhbnNmZXItd3JhcHBlcikgLm1lc3NhZ2UtYm9keS5maWxlLXVuYXZhaWxhYmxlIC5maWxlLW5hbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkuZmlsZS11bmF2YWlsYWJsZSAuZmlsZS1uYW1le2NvbG9yOiM5OWEwYTV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXI6bm90KC5pbWFnZS10cmFuc2Zlci13cmFwcGVyKSAubWVzc2FnZS1ib2R5IC5maWxlLXNpemUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlcjpub3QoLmltYWdlLXRyYW5zZmVyLXdyYXBwZXIpIC5tZXNzYWdlLWJvZHkgLmZpbGUtc2l6ZXtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIuaW1hZ2UtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci5maWxlLXRyYW5zZmVyLXdyYXBwZXIuaW1hZ2UtdHJhbnNmZXItd3JhcHBlciAubWVzc2FnZS1ib2R5e3BhZGRpbmc6MCAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtib3JkZXI6bm9uZSAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlci5hdWRpby10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLmZpbGUtdHJhbnNmZXItd3JhcHBlci5hdWRpby10cmFuc2Zlci13cmFwcGVyIC5tZXNzYWdlLWJvZHl7aGVpZ2h0OmF1dG87bWluLWhlaWdodDphdXRvICFpbXBvcnRhbnQ7cGFkZGluZzowICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JvcmRlcjpub25lICFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyLmF1ZGlvLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtdGltZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIuZmlsZS10cmFuc2Zlci13cmFwcGVyLmF1ZGlvLXRyYW5zZmVyLXdyYXBwZXIgLm1lc3NhZ2UtdGltZXttYXJnaW4tdG9wOjZweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3J7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvci5zaG93LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yLnNob3d7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIHNwYW4sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3Igc3BhbntwYWRkaW5nLXJpZ2h0OjVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlcywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvciAudHlwaW5nLWluZGljYXRvci1jaXJjbGVze3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjI5cHg7aGVpZ2h0OjdweDtsaW5lLWhlaWdodDo3cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZXM6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvciAudHlwaW5nLWluZGljYXRvci1jaXJjbGVzOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZXM6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZXM6YWZ0ZXJ7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlczphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvciAudHlwaW5nLWluZGljYXRvci1jaXJjbGVzOmFmdGVye2NsZWFyOmJvdGh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZXMgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZXMgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xle2Zsb2F0OmxlZnQ7d2lkdGg6N3B4O2hlaWdodDo3cHg7YmFja2dyb3VuZC1jb2xvcjojOTk5Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjRweDstd2Via2l0LWFuaW1hdGlvbjpmbGlja2VyQW5pbWF0aW9uMiAuOXMgaW5maW5pdGU7LW1vei1hbmltYXRpb246ZmxpY2tlckFuaW1hdGlvbjIgLjlzIGluZmluaXRlOy1vLWFuaW1hdGlvbjpmbGlja2VyQW5pbWF0aW9uMiAuOXMgaW5maW5pdGU7YW5pbWF0aW9uOmZsaWNrZXJBbmltYXRpb24yIC45cyBpbmZpbml0ZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlcyAudHlwaW5nLWluZGljYXRvci1jaXJjbGU6Zmlyc3QtY2hpbGQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlcyAudHlwaW5nLWluZGljYXRvci1jaXJjbGU6Zmlyc3QtY2hpbGR7LXdlYmtpdC1hbmltYXRpb246ZmxpY2tlckFuaW1hdGlvbjEgLjlzIGluZmluaXRlOy1tb3otYW5pbWF0aW9uOmZsaWNrZXJBbmltYXRpb24xIC45cyBpbmZpbml0ZTstby1hbmltYXRpb246ZmxpY2tlckFuaW1hdGlvbjEgLjlzIGluZmluaXRlO2FuaW1hdGlvbjpmbGlja2VyQW5pbWF0aW9uMSAuOXMgaW5maW5pdGV9QGtleWZyYW1lcyBmbGlja2VyQW5pbWF0aW9uMXswJXtvcGFjaXR5OjF9MTQuMjg1NzE0Mjg1NyV7b3BhY2l0eTouN30yOC41NzE0Mjg1NzE0JXtvcGFjaXR5Oi40fTQyLjg1NzE0Mjg1NzEle29wYWNpdHk6LjR9NTcuMTQyODU3MTQyOSV7b3BhY2l0eTouNH03MS40Mjg1NzE0Mjg2JXtvcGFjaXR5Oi40fTg1LjcxNDI4NTcxNDMle29wYWNpdHk6Ljd9MTAwJXtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjF7MCV7b3BhY2l0eToxfTE0LjI4NTcxNDI4NTcle29wYWNpdHk6Ljd9MjguNTcxNDI4NTcxNCV7b3BhY2l0eTouNH00Mi44NTcxNDI4NTcxJXtvcGFjaXR5Oi40fTU3LjE0Mjg1NzE0Mjkle29wYWNpdHk6LjR9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouNH04NS43MTQyODU3MTQzJXtvcGFjaXR5Oi43fTEwMCV7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjF7MCV7b3BhY2l0eToxfTE0LjI4NTcxNDI4NTcle29wYWNpdHk6Ljd9MjguNTcxNDI4NTcxNCV7b3BhY2l0eTouNH00Mi44NTcxNDI4NTcxJXtvcGFjaXR5Oi40fTU3LjE0Mjg1NzE0Mjkle29wYWNpdHk6LjR9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouNH04NS43MTQyODU3MTQzJXtvcGFjaXR5Oi43fTEwMCV7b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjF7MCV7b3BhY2l0eToxfTE0LjI4NTcxNDI4NTcle29wYWNpdHk6Ljd9MjguNTcxNDI4NTcxNCV7b3BhY2l0eTouNH00Mi44NTcxNDI4NTcxJXtvcGFjaXR5Oi40fTU3LjE0Mjg1NzE0Mjkle29wYWNpdHk6LjR9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouNH04NS43MTQyODU3MTQzJXtvcGFjaXR5Oi43fTEwMCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZsaWNrZXJBbmltYXRpb24yezAle29wYWNpdHk6LjR9MTQuMjg1NzE0Mjg1NyV7b3BhY2l0eTouN30yOC41NzE0Mjg1NzE0JXtvcGFjaXR5OjF9NDIuODU3MTQyODU3MSV7b3BhY2l0eTouN301Ny4xNDI4NTcxNDI5JXtvcGFjaXR5Oi40fTcxLjQyODU3MTQyODYle29wYWNpdHk6LjR9ODUuNzE0Mjg1NzE0MyV7b3BhY2l0eTouNH0xMDAle29wYWNpdHk6LjR9fUAtby1rZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjJ7MCV7b3BhY2l0eTouNH0xNC4yODU3MTQyODU3JXtvcGFjaXR5Oi43fTI4LjU3MTQyODU3MTQle29wYWNpdHk6MX00Mi44NTcxNDI4NTcxJXtvcGFjaXR5Oi43fTU3LjE0Mjg1NzE0Mjkle29wYWNpdHk6LjR9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouNH04NS43MTQyODU3MTQzJXtvcGFjaXR5Oi40fTEwMCV7b3BhY2l0eTouNH19QC1tb3ota2V5ZnJhbWVzIGZsaWNrZXJBbmltYXRpb24yezAle29wYWNpdHk6LjR9MTQuMjg1NzE0Mjg1NyV7b3BhY2l0eTouN30yOC41NzE0Mjg1NzE0JXtvcGFjaXR5OjF9NDIuODU3MTQyODU3MSV7b3BhY2l0eTouN301Ny4xNDI4NTcxNDI5JXtvcGFjaXR5Oi40fTcxLjQyODU3MTQyODYle29wYWNpdHk6LjR9ODUuNzE0Mjg1NzE0MyV7b3BhY2l0eTouNH0xMDAle29wYWNpdHk6LjR9fUAtd2Via2l0LWtleWZyYW1lcyBmbGlja2VyQW5pbWF0aW9uMnswJXtvcGFjaXR5Oi40fTE0LjI4NTcxNDI4NTcle29wYWNpdHk6Ljd9MjguNTcxNDI4NTcxNCV7b3BhY2l0eToxfTQyLjg1NzE0Mjg1NzEle29wYWNpdHk6Ljd9NTcuMTQyODU3MTQyOSV7b3BhY2l0eTouNH03MS40Mjg1NzE0Mjg2JXtvcGFjaXR5Oi40fTg1LjcxNDI4NTcxNDMle29wYWNpdHk6LjR9MTAwJXtvcGFjaXR5Oi40fX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS13cmFwcGVyLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1pbmRpY2F0b3ItY2lyY2xlcyAudHlwaW5nLWluZGljYXRvci1jaXJjbGU6bGFzdC1jaGlsZCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvciAudHlwaW5nLWluZGljYXRvci1jaXJjbGVzIC50eXBpbmctaW5kaWNhdG9yLWNpcmNsZTpsYXN0LWNoaWxkey13ZWJraXQtYW5pbWF0aW9uOmZsaWNrZXJBbmltYXRpb24zIC45cyBpbmZpbml0ZTstbW96LWFuaW1hdGlvbjpmbGlja2VyQW5pbWF0aW9uMyAuOXMgaW5maW5pdGU7LW8tYW5pbWF0aW9uOmZsaWNrZXJBbmltYXRpb24zIC45cyBpbmZpbml0ZTthbmltYXRpb246ZmxpY2tlckFuaW1hdGlvbjMgLjlzIGluZmluaXRlO21hcmdpbi1yaWdodDowfUBrZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjN7MCV7b3BhY2l0eTouNH0xNC4yODU3MTQyODU3JXtvcGFjaXR5Oi40fTI4LjU3MTQyODU3MTQle29wYWNpdHk6LjR9NDIuODU3MTQyODU3MSV7b3BhY2l0eTouN301Ny4xNDI4NTcxNDI5JXtvcGFjaXR5OjF9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouN304NS43MTQyODU3MTQzJXtvcGFjaXR5Oi40fTEwMCV7b3BhY2l0eTouNH19QC1vLWtleWZyYW1lcyBmbGlja2VyQW5pbWF0aW9uM3swJXtvcGFjaXR5Oi40fTE0LjI4NTcxNDI4NTcle29wYWNpdHk6LjR9MjguNTcxNDI4NTcxNCV7b3BhY2l0eTouNH00Mi44NTcxNDI4NTcxJXtvcGFjaXR5Oi43fTU3LjE0Mjg1NzE0Mjkle29wYWNpdHk6MX03MS40Mjg1NzE0Mjg2JXtvcGFjaXR5Oi43fTg1LjcxNDI4NTcxNDMle29wYWNpdHk6LjR9MTAwJXtvcGFjaXR5Oi40fX1ALW1vei1rZXlmcmFtZXMgZmxpY2tlckFuaW1hdGlvbjN7MCV7b3BhY2l0eTouNH0xNC4yODU3MTQyODU3JXtvcGFjaXR5Oi40fTI4LjU3MTQyODU3MTQle29wYWNpdHk6LjR9NDIuODU3MTQyODU3MSV7b3BhY2l0eTouN301Ny4xNDI4NTcxNDI5JXtvcGFjaXR5OjF9NzEuNDI4NTcxNDI4NiV7b3BhY2l0eTouN304NS43MTQyODU3MTQzJXtvcGFjaXR5Oi40fTEwMCV7b3BhY2l0eTouNH19QC13ZWJraXQta2V5ZnJhbWVzIGZsaWNrZXJBbmltYXRpb24zezAle29wYWNpdHk6LjR9MTQuMjg1NzE0Mjg1NyV7b3BhY2l0eTouNH0yOC41NzE0Mjg1NzE0JXtvcGFjaXR5Oi40fTQyLjg1NzE0Mjg1NzEle29wYWNpdHk6Ljd9NTcuMTQyODU3MTQyOSV7b3BhY2l0eToxfTcxLjQyODU3MTQyODYle29wYWNpdHk6Ljd9ODUuNzE0Mjg1NzE0MyV7b3BhY2l0eTouNH0xMDAle29wYWNpdHk6LjR9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLXdyYXBwZXIudHlwaW5nLWluZGljYXRvciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2Utd3JhcHBlci50eXBpbmctaW5kaWNhdG9yIC5tZXNzYWdlLWJvZHl7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDstbW96LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4Oy1tcy1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4Oy1tb3otYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7LW1zLWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5kYXRlLXdyYXBwZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuZGF0ZS13cmFwcGVye2NsZWFyOmJvdGg7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlLWluLW91dH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuZGF0ZS13cmFwcGVyOmJlZm9yZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5kYXRlLXdyYXBwZXI6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O3JpZ2h0OjEwcHg7bWFyZ2luLXRvcDoxOXB4O2hlaWdodDoxcHg7YmFja2dyb3VuZC1jb2xvcjojZjJmM2Y0O3otaW5kZXg6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuZGF0ZS13cmFwcGVyIC5kYXRlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLmRhdGUtd3JhcHBlciAuZGF0ZXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6MTNweDtjb2xvcjojOTlhMGE1O3BhZGRpbmc6MTBweCAxMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6I2ZmZjt6LWluZGV4OjJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXJ7bWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7Y2xlYXI6Ym90aH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyOmJlZm9yZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyOmFmdGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlcjpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyOmFmdGVye2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlcjphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyOmxhc3QtY2hpbGQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTo1cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIubWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlci5tZXNzYWdlLXdyYXBwZXJ7bWFyZ2luLWJvdHRvbToycHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90bywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyLm1lc3NhZ2Utd3JhcHBlciAub3BlcmF0b3ItcGhvdG8sLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3RvLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlci5tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3Rve29wYWNpdHk6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtdGltZSwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRpbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1le29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjJzIGVhc2UgMC4yczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4ycyBlYXNlIDAuMnM7dHJhbnNpdGlvbjpvcGFjaXR5IDAuMnMgZWFzZSAwLjJzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIgLm1lc3NhZ2Utd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm9wZXJhdG9yLXBob3RvLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIubWVzc2FnZS13cmFwcGVyIC5vcGVyYXRvci1waG90bywuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIgLm1lc3NhZ2Utd3JhcHBlcjpsYXN0LW9mLXR5cGUgLm9wZXJhdG9yLXBob3RvLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlci5tZXNzYWdlLXdyYXBwZXIgLm9wZXJhdG9yLXBob3Rve29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLXdyYXBwZXI6Zmlyc3Qtb2YtdHlwZSAubWVzc2FnZS10aW1lLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIgLm1lc3NhZ2Utd3JhcHBlci5ldmVudC1ob3ZlciAubWVzc2FnZS10aW1lLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5tZXNzYWdlLWdyb3VwLXdyYXBwZXIubWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLXRpbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyIC5tZXNzYWdlLXdyYXBwZXI6Zmlyc3Qtb2YtdHlwZSAubWVzc2FnZS10aW1lLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLm1lc3NhZ2UtZ3JvdXAtd3JhcHBlciAubWVzc2FnZS13cmFwcGVyLmV2ZW50LWhvdmVyIC5tZXNzYWdlLXRpbWUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAubWVzc2FnZS1ncm91cC13cmFwcGVyLm1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS10aW1le29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuc2Vzc2lvbi1ob2xkZXI6Zmlyc3QtY2hpbGQgLmRhdGUtd3JhcHBlcjpmaXJzdC1jaGlsZDpmaXJzdC1jaGlsZCAuZGF0ZSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5zZXNzaW9uLWhvbGRlcjpmaXJzdC1jaGlsZCAuZGF0ZS13cmFwcGVyOmZpcnN0LWNoaWxkOmZpcnN0LWNoaWxkIC5kYXRle3BhZGRpbmctdG9wOjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnNlc3Npb24taG9sZGVyOmZpcnN0LWNoaWxkIC5kYXRlLXdyYXBwZXI6Zmlyc3QtY2hpbGQ6Zmlyc3QtY2hpbGQ6YmVmb3JlLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnNlc3Npb24taG9sZGVyOmZpcnN0LWNoaWxkIC5kYXRlLXdyYXBwZXI6Zmlyc3QtY2hpbGQ6Zmlyc3QtY2hpbGQ6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuc2Vzc2lvbi1ob2xkZXI6YmVmb3JlLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5zZXNzaW9uLWhvbGRlcjphZnRlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5zZXNzaW9uLWhvbGRlcjpiZWZvcmUsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuc2Vzc2lvbi1ob2xkZXI6YWZ0ZXJ7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuc2Vzc2lvbi1ob2xkZXI6YWZ0ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAuc2Vzc2lvbi1ob2xkZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC5jb252ZXJzYXRpb24taGFzLW5vLW1lc3NhZ2VzIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciwuY2hhcG9ydC1tZXNzYWdlcy1saXN0LmNvbnZlcnNhdGlvbi1oYXMtbm8tbWVzc2FnZXMgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVye21hcmdpbi10b3A6MzVweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC5jb252ZXJzYXRpb24taGFzLW5vLW1lc3NhZ2VzIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAub3BlcmF0b3ItZmFjZXMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC5jb252ZXJzYXRpb24taGFzLW5vLW1lc3NhZ2VzIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAub3BlcmF0b3ItZmFjZXN7bWFyZ2luLWJvdHRvbToyNXB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0LmNvbnZlcnNhdGlvbi1oYXMtbm8tbWVzc2FnZXMgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZSAucGhvdG8gLnN0YXR1cy1pY29uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QuY29udmVyc2F0aW9uLWhhcy1uby1tZXNzYWdlcyAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlIC5waG90byAuc3RhdHVzLWljb257LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICNmZmYsaW5zZXQgMCAwIDAgMXB4ICNmZmY7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjZmZmLGluc2V0IDAgMCAwIDFweCAjZmZmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0LmNvbnZlcnNhdGlvbi1oYXMtbm8tbWVzc2FnZXMgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5hY3Rpdml0eS1pbmRpY2F0b3IsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC5jb252ZXJzYXRpb24taGFzLW5vLW1lc3NhZ2VzIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAuYWN0aXZpdHktaW5kaWNhdG9ye21hcmdpbi1ib3R0b206MjVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdC5zaW5nbGUtc2Vzc2lvbiAuZGF0ZS13cmFwcGVyLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3Quc2luZ2xlLXNlc3Npb24gLmRhdGUtd3JhcHBlcntvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZmxleC13cmFwOndyYXA7bWFyZ2luOi0xMHB4IDAgMTBweCA1MHB4O3BhZGRpbmctcmlnaHQ6MTJweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucy5hbmltLXNob3csLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucy5hbmltLXNob3d7LXdlYmtpdC1hbmltYXRpb246MC4ycyBsaW5lYXIgY2hhcG9ydE1lc3NhZ2VJbjstby1hbmltYXRpb246MC4ycyBsaW5lYXIgY2hhcG9ydE1lc3NhZ2VJbjthbmltYXRpb246MC4ycyBsaW5lYXIgY2hhcG9ydE1lc3NhZ2VJbn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbntjb2xvcjojMUQ5MEZGO2JvcmRlcjoxcHggc29saWQgIzFEOTBGRjttYXgtd2lkdGg6MjQwcHg7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzpjYWxjKDAuNmVtIC0gMXB4KSBjYWxjKDFlbSAtIDFweCk7Zm9udC1zaXplOjE0LjRweDtsaW5lLWhlaWdodDoxLjQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO291dGxpbmU6bm9uZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIGVhc2UgMC4zcyxib3JkZXIgZWFzZSAwLjNzLGJhY2tncm91bmQtY29sb3IgZWFzZSAwLjNzOy1vLXRyYW5zaXRpb246Y29sb3IgZWFzZSAwLjNzLGJvcmRlciBlYXNlIDAuM3MsYmFja2dyb3VuZC1jb2xvciBlYXNlIDAuM3M7dHJhbnNpdGlvbjpjb2xvciBlYXNlIDAuM3MsYm9yZGVyIGVhc2UgMC4zcyxiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgMC4zczttYXJnaW46MTBweCAwIDAgMTBweDstd2Via2l0LWFuaW1hdGlvbjowLjJzIGxpbmVhciByZXBseS1pbjstby1hbmltYXRpb246MC4ycyBsaW5lYXIgcmVwbHktaW47YW5pbWF0aW9uOjAuMnMgbGluZWFyIHJlcGx5LWluOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDtmb250LXNpemU6MTQuNHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOmhvdmVye2NvbG9yOiM1MGE5ZmY7Ym9yZGVyOjFweCBzb2xpZCAjNTBhOWZmfUAtd2Via2l0LWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtbW96LWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtbXMta2V5ZnJhbWVzIHJlcGx5LWlue2Zyb217b3BhY2l0eTowOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpfXRve29wYWNpdHk6MTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1vLWtleWZyYW1lcyByZXBseS1pbntmcm9te29wYWNpdHk6MDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgcmVwbHktaW57ZnJvbXtvcGFjaXR5OjA7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCl9dG97b3BhY2l0eToxOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbnstd2Via2l0LWFuaW1hdGlvbi1kZWxheToxczthbmltYXRpb24tZGVsYXk6MXN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoMSksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCgxKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouMXM7YW5pbWF0aW9uLWRlbGF5Oi4xc30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCgyKSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDIpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4yczthbmltYXRpb24tZGVsYXk6LjJzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDMpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoMyl7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjNzO2FuaW1hdGlvbi1kZWxheTouM3N9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoNCksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg0KXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouNHM7YW5pbWF0aW9uLWRlbGF5Oi40c30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg1KSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDUpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi41czthbmltYXRpb24tZGVsYXk6LjVzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDYpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoNil7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjZzO2FuaW1hdGlvbi1kZWxheTouNnN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoNyksLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg3KXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouN3M7YW5pbWF0aW9uLWRlbGF5Oi43c30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOm50aC1jaGlsZCg4KSwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDgpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi44czthbmltYXRpb24tZGVsYXk6LjhzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb246bnRoLWNoaWxkKDkpLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoOSl7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjlzO2FuaW1hdGlvbi1kZWxheTouOXN9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoMTApLC5jaGFwb3J0LW1lc3NhZ2VzLWxpc3QgLnJlcGx5LW9wdGlvbnMgLnJlcGx5LW9wdGlvbjpudGgtY2hpbGQoMTApey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjFzO2FuaW1hdGlvbi1kZWxheToxc30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uIC5yZXBseS1vcHRpb24tdGV4dCwuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb24gLnJlcGx5LW9wdGlvbi10ZXh0e292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOmFjdGl2ZSAucmVwbHktb3B0aW9uLXRleHQsLmNoYXBvcnQtbWVzc2FnZXMtbGlzdCAucmVwbHktb3B0aW9ucyAucmVwbHktb3B0aW9uOmFjdGl2ZSAucmVwbHktb3B0aW9uLXRleHR7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1tZXNzYWdlcy1saXN0IC5yZXBseS1vcHRpb25zIC5yZXBseS1vcHRpb257Zm9udC1zaXplOjE2cHh9LnByb2Nlc3NpbmctaW5mb3JtYXRpb24sLmNoYXBvcnQtY29udGFpbmVyIC5wcm9jZXNzaW5nLWluZm9ybWF0aW9ue21hcmdpbjo1cHggYXV0byAxOXB4IGF1dG87d2lkdGg6MTAwJTtwYWRkaW5nOjAgNTBweDtsaW5lLWhlaWdodDoxLjM7Zm9udC1zaXplOjEzcHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2NmZDNkNTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn0ucHJvY2Vzc2luZy1pbmZvcm1hdGlvbi5mYWRlLW91dCwuY2hhcG9ydC1jb250YWluZXIgLnByb2Nlc3NpbmctaW5mb3JtYXRpb24uZmFkZS1vdXR7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOjAuMnMgbGluZWFyIGNoYXBvcnRNZXNzYWdlT3V0Oy1vLWFuaW1hdGlvbjowLjJzIGxpbmVhciBjaGFwb3J0TWVzc2FnZU91dDthbmltYXRpb246MC4ycyBsaW5lYXIgY2hhcG9ydE1lc3NhZ2VPdXR9LnByb2Nlc3NpbmctaW5mb3JtYXRpb24uY2xpY2thYmxlLC5jaGFwb3J0LWNvbnRhaW5lciAucHJvY2Vzc2luZy1pbmZvcm1hdGlvbi5jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9LnByb2Nlc3NpbmctaW5mb3JtYXRpb24gc3BhbiwuY2hhcG9ydC1jb250YWluZXIgLnByb2Nlc3NpbmctaW5mb3JtYXRpb24gc3BhbntwYWRkaW5nOjFweCAzcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6M3B4O3RleHQtYWxpZ246Y2VudGVyfS5wcm9jZXNzaW5nLWluZm9ybWF0aW9uIC5wcm9jZXNzaW5nLWljb24sLmNoYXBvcnQtY29udGFpbmVyIC5wcm9jZXNzaW5nLWluZm9ybWF0aW9uIC5wcm9jZXNzaW5nLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvY2hhcG9ydC13aWRnZXQtcHJpdmFjeS1pY29uLTJ4LnBuZyIpO2JhY2tncm91bmQtc2l6ZToyMHB4IDE0cHg7d2lkdGg6MjBweDtoZWlnaHQ6MTRweH0ucHJvY2Vzc2luZy1pbmZvcm1hdGlvbiBwLC5jaGFwb3J0LWNvbnRhaW5lciAucHJvY2Vzc2luZy1pbmZvcm1hdGlvbiBwe2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXJ9LnByb2Nlc3NpbmctaW5mb3JtYXRpb24gYSwuY2hhcG9ydC1jb250YWluZXIgLnByb2Nlc3NpbmctaW5mb3JtYXRpb24gYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1jb250YWluZXIgLm1lc3NhZ2Utc3RhdHVze3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjojMUQ5MEZGO29wYWNpdHk6MTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSBlYXNlLWluLW91dCAwLjJzOy1vLXRyYW5zaXRpb246b3BhY2l0eSBlYXNlLWluLW91dCAwLjJzO3RyYW5zaXRpb246b3BhY2l0eSBlYXNlLWluLW91dCAwLjJzfS5tZXNzYWdlLXN0YXR1czpiZWZvcmUsLmNoYXBvcnQtY29udGFpbmVyIC5tZXNzYWdlLXN0YXR1czpiZWZvcmV7ZGlzcGxheTpibG9jaztjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7dG9wOi0xcHg7bGVmdDotMXB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2NoYXBvcnQtbWVzc2FnZS1zdGF0dXMtaWNvbnMtMi5wbmciKTtiYWNrZ3JvdW5kLXNpemU6NzJweCAxOHB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5tZXNzYWdlLXN0YXR1czpiZWZvcmUsLmNoYXBvcnQtY29udGFpbmVyIC5tZXNzYWdlLXN0YXR1czpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvY2hhcG9ydC1tZXNzYWdlLXN0YXR1cy1pY29ucy0yQDJ4LnBuZyIpfX0ubWVzc2FnZS1zdGF0dXMtc2VudDpiZWZvcmUsLm1lc3NhZ2Utc3RhdHVzLXNlbmRpbmc6YmVmb3Jle2JhY2tncm91bmQtcG9zaXRpb246MCAwfS5tZXNzYWdlLXN0YXR1cy1kZWxpdmVyZWQ6YmVmb3Jle2JhY2tncm91bmQtcG9zaXRpb246LTE4cHggMH0ubWVzc2FnZS1zdGF0dXMtcmVhZDpiZWZvcmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzZweCAwfS5tZXNzYWdlLXN0YXR1cy1mYWlsZWQ6YmVmb3Jle2JhY2tncm91bmQtcG9zaXRpb246LTU0cHggMH0ubWVzc2FnZS1zdGF0dXMtaGlkZGVue29wYWNpdHk6MH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciwuY2hhcG9ydC1pbnB1dC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4taGVpZ2h0OjUwcHg7bGluZS1oZWlnaHQ6MWVtO2JvcmRlci10b3A6MXB4IHNvbGlkICNlYWVjZWQ7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSxib3gtc2hhZG93IDAuMnMgZWFzZTstby10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLGJveC1zaGFkb3cgMC4ycyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsYm94LXNoYWRvdyAwLjJzIGVhc2V9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHksLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5yZWFkb25seXtjdXJzb3I6bm90LWFsbG93ZWR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHkgLmNoYXBvcnQtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHkgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b24sLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHkgLmVtb2ppLXdyYXBwZXIsLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5yZWFkb25seSAuY2hhcG9ydC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1pbnB1dC13cmFwcGVyLnJlYWRvbmx5IC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHkgLmVtb2ppLXdyYXBwZXJ7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLnJlYWRvbmx5IC5zYXZlZC1yZXBsaWVzLXdyYXBwZXIsLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5yZWFkb25seSAuc2F2ZWQtcmVwbGllcy13cmFwcGVye2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLnJlYWRvbmx5IC5jaGFwb3J0LWlucHV0LC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucmVhZG9ubHkgLmNoYXBvcnQtaW5wdXR7cGFkZGluZy1yaWdodDoyMHB4O29wYWNpdHk6MC4zO3BvaW50ZXItZXZlbnRzOm5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuZW1vamktZGlzYWJsZWQgLmNoYXBvcnQtaW5wdXQsLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5lbW9qaS1kaXNhYmxlZCAuY2hhcG9ydC1pbnB1dHtwYWRkaW5nLXJpZ2h0OjQ1cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm17cGFkZGluZy1sZWZ0OjIwcHg7bWF4LWhlaWdodDoxMjIuNXB4O292ZXJmbG93LXk6YXV0bzt0cmFuc2l0aW9uOmhlaWdodCAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0ud2l0aC0zLWZpZWxkcywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0ud2l0aC0zLWZpZWxkc3ttYXgtaGVpZ2h0OjE0N3B4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3csLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93e3Bvc2l0aW9uOnJlbGF0aXZlfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3c6OmFmdGVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdzo6YWZ0ZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2YyZjNmNDtjb250ZW50OicnO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt6LWluZGV4OjF9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdzo6YmVmb3JlLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdzo6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYzZjQ7Y29udGVudDonJztvcGFjaXR5OjA7ei1pbmRleDoyO3RyYW5zZm9ybTpzY2FsZVgoMCk7dHJhbnNmb3JtLW9yaWdpbjo1MCUgY2VudGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5mb2N1c2VkIC5tZC1sYWJlbC5sZWFkaW5nLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZmlsbGVkIC5tZC1sYWJlbC5sZWFkaW5nLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5mb2N1c2VkIC5tZC1sYWJlbC5sZWFkaW5nLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5maWxsZWQgLm1kLWxhYmVsLmxlYWRpbmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTk2JSkgc2NhbGUoMC43NSk7cmlnaHQ6MTVweCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZm9jdXNlZCAubWQtbGFiZWwudHJhaWxpbmcsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5maWxsZWQgLm1kLWxhYmVsLnRyYWlsaW5nLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5mb2N1c2VkIC5tZC1sYWJlbC50cmFpbGluZywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZmlsbGVkIC5tZC1sYWJlbC50cmFpbGluZ3tvcGFjaXR5OjB9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5mb2N1c2VkIC5tZC1sYWJlbC50cmFpbGluZy5lcnJvciwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZpbGxlZCAubWQtbGFiZWwudHJhaWxpbmcuZXJyb3IsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZvY3VzZWQgLm1kLWxhYmVsLnRyYWlsaW5nLmVycm9yLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5maWxsZWQgLm1kLWxhYmVsLnRyYWlsaW5nLmVycm9ye29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZpbGxlZCAubWQtbGFiZWwudHJhaWxpbmcsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZpbGxlZCAubWQtbGFiZWwudHJhaWxpbmd7b3BhY2l0eTowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZmlsbGVkIC5jaGF0LWZvcm0tZmllbGQtd3JhcHBlci1jaGVja2JveCAubWQtbGFiZWwudHJhaWxpbmcsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZpbGxlZCAuY2hhdC1mb3JtLWZpZWxkLXdyYXBwZXItY2hlY2tib3ggLm1kLWxhYmVsLnRyYWlsaW5ne2Rpc3BsYXk6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtcm93LmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZm9jdXNlZDo6YmVmb3Jle3RyYW5zZm9ybTpzY2FsZVgoMSk7b3BhY2l0eToxfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC1yb3cuZXJyb3I6OmFmdGVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXJvdy5lcnJvcjo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjA1ZjVmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctcmlnaHQ6MjBweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtd3JhcHBlci1jaG9pY2UsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtd3JhcHBlci1jaG9pY2V7cGFkZGluZy1yaWdodDowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNob2ljZSAubWQtbGFiZWwubGVhZGluZywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNob2ljZSAubWQtbGFiZWwubGVhZGluZ3twYWRkaW5nLXJpZ2h0OjIwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXdyYXBwZXItdGVhbSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLXRlYW17cGFkZGluZy1yaWdodDowfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLXRlYW0gLm1kLWxhYmVsLmxlYWRpbmcsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtd3JhcHBlci10ZWFtIC5tZC1sYWJlbC5sZWFkaW5ne3BhZGRpbmctcmlnaHQ6MjBweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQtd3JhcHBlci1jaGVja2JveCwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94e2Rpc3BsYXk6ZmxleDttaW4taGVpZ2h0OjQ5cHg7cGFkZGluZzoxNXB4IDIwcHggMTVweCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5jaGVja2JveC1ibG9jaywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5jaGVja2JveC1ibG9ja3tmbGV4OjAgMCBhdXRvO21hcmdpbi1yaWdodDo4cHg7ZGlzcGxheTpmbGV4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5sYWJlbC1ibG9jaywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5sYWJlbC1ibG9ja3tmbGV4OjEgMSBhdXRvfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5sYWJlbC1ibG9jayBsYWJlbCwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC13cmFwcGVyLWNoZWNrYm94IC5sYWJlbC1ibG9jayBsYWJlbHtjb2xvcjojOTlhMGE1O3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXdyYXBwZXItY2hlY2tib3ggLm1kLWxhYmVsLnRyYWlsaW5nLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLXdyYXBwZXItY2hlY2tib3ggLm1kLWxhYmVsLnRyYWlsaW5ne3Bvc2l0aW9uOnN0YXRpYzt0cmFuc2Zvcm06bm9uZTtmbGV4Om5vbmU7YWxpZ24tc2VsZjpjZW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxke2JvcmRlcjpub25lO3BhZGRpbmc6MDtmb250LWZhbWlseToicHJveGltYS1ub3ZhIiwiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjEuMzJlbTtmb250LXNpemU6MTVweH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxke2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC50ZXh0LWZpZWxkLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLnRleHQtZmllbGR7d2lkdGg6MTAwJTtoZWlnaHQ6NDlweDtwYWRkaW5nOjEycHggMCAwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC50ZXh0LWZpZWxkOmZvY3VzLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLnRleHQtZmllbGQ6Zm9jdXN7b3V0bGluZTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC5jaG9pY2UtZmllbGQsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQuY2hvaWNlLWZpZWxke3dpZHRoOjEwMCU7aGVpZ2h0OjQ5cHg7cGFkZGluZzoxMnB4IDAgMDtvdXRsaW5lOm5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAuY2hhdC1mb3JtLWZpZWxkLmNob2ljZS1maWVsZC5lbXB0eSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLmNoYXQtZm9ybS1maWVsZC5jaG9pY2UtZmllbGQuZW1wdHl7Y29sb3I6Izk5YTBhNX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQuY2hlY2tib3gtZmllbGQsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5jaGF0LWZvcm0tZmllbGQuY2hlY2tib3gtZmllbGR7bWFyZ2luLXRvcDozcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAubWQtbGFiZWwsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5tZC1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eToxO3BhZGRpbmctYm90dG9tOjFweDtoZWlnaHQ6MjBweDtjb2xvcjojOTlhMGE1fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLmxlYWRpbmcsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5tZC1sYWJlbC5sZWFkaW5ne2ZvbnQtc2l6ZToxNXB4O2xlZnQ6MDtyaWdodDoxNXB4O3RyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3A7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLmxlYWRpbmcud2l0aC10cmFpbGluZy1sYWJlbCwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLmxlYWRpbmcud2l0aC10cmFpbGluZy1sYWJlbHtyaWdodDoxMjVweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5tZC1sYWJlbC50cmFpbGluZywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLnRyYWlsaW5ne2ZvbnQtc2l6ZToxNHB4O3JpZ2h0OjIwcHg7bGVmdDppbml0aWFsO2NvbG9yOiNjZmQzZDU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO2JhY2tncm91bmQ6I2ZmZn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtIC5tZC1sYWJlbC50cmFpbGluZy5lcnJvciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLnRyYWlsaW5nLmVycm9ye3RyYW5zaXRpb246bm9uZTthbmltYXRpb246LjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgY2hhcG9ydEZhZGVJbjtjb2xvcjojZjA1ZjVmfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLnRyYWlsaW5nLmhpZGRlbiwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLnRyYWlsaW5nLmhpZGRlbntvcGFjaXR5OjAgIWltcG9ydGFudDthbmltYXRpb246LjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgY2hhcG9ydEZhZGVPdXR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybSAubWQtbGFiZWwudHJhaWxpbmc6OmJlZm9yZSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5wcmVjaGF0LWZvcm0gLm1kLWxhYmVsLnRyYWlsaW5nOjpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCAjZmZmIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsICNmZmYgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsICNmZmYgMTAwJSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDBGRkZGRkYnLCBlbmRDb2xvcnN0cj0nI0ZGRkZGRkZGJywgR3JhZGllbnRUeXBlPTEpO2Rpc3BsYXk6YmxvY2s7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi0yMHB4O3dpZHRoOjIwcHg7aGVpZ2h0OjEwMCV9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybS1zaGFkb3csLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtLXNoYWRvd3twb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDo1cHg7d2lkdGg6MTAwJTt6LWluZGV4OjQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtib3gtc2hhZG93OjAgLTJweCAycHggcmdiYSgwLDAsMCwwLjA4KSwwIC01MHB4IDUwcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAucHJlY2hhdC1mb3JtLXNoYWRvdy5zaG93LC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLnByZWNoYXQtZm9ybS1zaGFkb3cuc2hvd3tvcGFjaXR5OjF9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucHJlY2hhdC1mb3JtLWhpZGRlbiAucHJlY2hhdC1mb3JtLXNoYWRvdywuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5wcmVjaGF0LWZvcm0taGlkZGVuIC5wcmVjaGF0LWZvcm0sLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5wcmVjaGF0LWZvcm0taGlkZGVuIC5wcmVjaGF0LWZvcm0tc2hhZG93LC5jaGFwb3J0LWlucHV0LXdyYXBwZXIucHJlY2hhdC1mb3JtLWhpZGRlbiAucHJlY2hhdC1mb3Jte29wYWNpdHk6MCAhaW1wb3J0YW50O2hlaWdodDowICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoyMDBweDttYXJnaW46MDtwYWRkaW5nOjE1cHggODVweCAxNXB4IDIwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtsaW5lLWhlaWdodDoxLjQ7Zm9udC1zaXplOjE1cHg7cmVzaXplOm5vbmUgIWltcG9ydGFudDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87d29yZC13cmFwOmJyZWFrLXdvcmQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0e2ZvbnQtc2l6ZToxNnB4O3RvdWNoLWFjdGlvbjpwYW4teX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDpmb2N1cywuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OmZvY3Vze291dGxpbmU6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OjotbW96LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3BhY2l0eToxfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OjotbW96LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntmb250LXNpemU6MTVweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntmb250LXNpemU6MTVweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OmRpc2FibGVkOjotbW96LXBsYWNlaG9sZGVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE1cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvcGFjaXR5OjF9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDpkaXNhYmxlZDo6LW1vei1wbGFjZWhvbGRlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6ZGlzYWJsZWQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6ZGlzYWJsZWQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDpkaXNhYmxlZDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OmRpc2FibGVkOi1tcy1pbnB1dC1wbGFjZWhvbGRlcntmb250LXNpemU6MTZweH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDpkaXNhYmxlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OmRpc2FibGVkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDpkaXNhYmxlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6ZGlzYWJsZWQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtaW5wdXQ6Oi1tcy1jbGVhciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWlucHV0Ojotd2Via2l0LXJlc2l6ZXIsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1pbnB1dDo6LXdlYmtpdC1yZXNpemVye2Rpc3BsYXk6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuZW1vamktd3JhcHBlciwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5lbW9qaS13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3JpZ2h0OjQ1cHg7ei1pbmRleDoxMDAwMDt3aWR0aDo0MHB4O2hlaWdodDo1MHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5lbW9qaS13cmFwcGVyIC5lbW9qaS1pY29uLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmVtb2ppLXdyYXBwZXIgLmVtb2ppLWljb257d2lkdGg6MThweDtyaWdodDoxMXB4O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxNXB4O3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LXNlbmQtYnV0dG9uLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtc2VuZC1idXR0b257dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowcHg7Ym90dG9tOjA7d2lkdGg6NDVweDtoZWlnaHQ6NTBweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIDBzLG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxjb2xvciAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1zZW5kLWljb24sLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1zZW5kLWljb257b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKTtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTVweDtsZWZ0OjdweDt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O3RyYW5zaXRpb246b3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257dHJhbnNpdGlvbjpmaWxsIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b257dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjBweDtib3R0b206MDt3aWR0aDo0NXB4O2hlaWdodDo1MHB4O292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b24gaW5wdXQsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbiBpbnB1dHt3aWR0aDowO2hlaWdodDowO3Zpc2liaWxpdHk6aGlkZGVufS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uOmJlZm9yZSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uOmJlZm9yZXtjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7dHJhbnNmb3JtOnNjYWxlKDApO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6M3B4O2JvdHRvbToxNXB4O3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdHJhbnNmZXItZmlsZS1pY29uLnBuZyIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4O2JhY2tncm91bmQtcG9zaXRpb246MCAwO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtvcGFjaXR5OjAuNX1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbjpiZWZvcmUsLmNoYXBvcnQtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbjpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdHJhbnNmZXItZmlsZS1pY29uQDJ4LnBuZyIpO2JhY2tncm91bmQtc2l6ZToxOHB4IDE4cHh9fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uOmhvdmVyLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b246aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b246aG92ZXI6YmVmb3JlLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtdHJhbnNmZXItZmlsZS1idXR0b246aG92ZXI6YmVmb3Jle29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1lbXB0eSAuY2hhcG9ydC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LWVtcHR5IC5jaGFwb3J0LXNlbmQtYnV0dG9ue2N1cnNvcjpub3QtYWxsb3dlZH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1lbXB0eSAuY2hhcG9ydC1zZW5kLWJ1dHRvbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1lbXB0eSAuY2hhcG9ydC1zZW5kLWJ1dHRvbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojY2ZkM2Q1ICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1lbXB0eSAuc2F2ZWQtcmVwbGllcy13cmFwcGVyIC5zYXZlZC1yZXBsaWVzLWljb24sLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LWVtcHR5IC5zYXZlZC1yZXBsaWVzLXdyYXBwZXIgLnNhdmVkLXJlcGxpZXMtaWNvbnstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLG9wYWNpdHkgLjJzIGxpbmVhcix0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7LW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIDBzLG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxjb2xvciAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxvcGFjaXR5IC4ycyBsaW5lYXIsdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MC41ICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1ub3QtZW1wdHkgLnNhdmVkLXJlcGxpZXMtd3JhcHBlciwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuaW5wdXQtbm90LWVtcHR5IC5zYXZlZC1yZXBsaWVzLXdyYXBwZXJ7cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LW5vdC1lbXB0eSAuc2F2ZWQtcmVwbGllcy13cmFwcGVyPiosLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LW5vdC1lbXB0eSAuc2F2ZWQtcmVwbGllcy13cmFwcGVyPip7cG9pbnRlci1ldmVudHM6YXV0b30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LW5vdC1lbXB0eSAuc2F2ZWQtcmVwbGllcy13cmFwcGVyIC5zYXZlZC1yZXBsaWVzLWljb24sLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LW5vdC1lbXB0eSAuc2F2ZWQtcmVwbGllcy13cmFwcGVyIC5zYXZlZC1yZXBsaWVzLWljb257LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksb3BhY2l0eSAuMnMgbGluZWFyLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDApOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5pbnB1dC1ub3QtZW1wdHkgLmNoYXQtdG9vbHM6OmJlZm9yZSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmlucHV0LW5vdC1lbXB0eSAuY2hhdC10b29sczo6YmVmb3Jle2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmZpbGUtdHJhbnNmZXItZW5hYmxlZC5pbnB1dC1lbXB0eSAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbiwuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmZpbGUtdHJhbnNmZXItZW5hYmxlZC5pbnB1dC1lbXB0eSAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbnt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7LW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuZmlsZS10cmFuc2Zlci1lbmFibGVkLmlucHV0LWVtcHR5IC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uOmJlZm9yZSwuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmZpbGUtdHJhbnNmZXItZW5hYmxlZC5pbnB1dC1lbXB0eSAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbjpiZWZvcmV7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuZmlsZS10cmFuc2Zlci1lbmFibGVkLmlucHV0LWVtcHR5IC5jaGFwb3J0LXNlbmQtYnV0dG9uLC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuZmlsZS10cmFuc2Zlci1lbmFibGVkLmlucHV0LWVtcHR5IC5jaGFwb3J0LXNlbmQtYnV0dG9ue3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxjb2xvciAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTstby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksY29sb3IgLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmZpbGUtdHJhbnNmZXItZW5hYmxlZC5pbnB1dC1lbXB0eSAuY2hhcG9ydC1zZW5kLWJ1dHRvbiAuY2hhcG9ydC1zZW5kLWljb24sLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5maWxlLXRyYW5zZmVyLWVuYWJsZWQuaW5wdXQtZW1wdHkgLmNoYXBvcnQtc2VuZC1idXR0b24gLmNoYXBvcnQtc2VuZC1pY29uey1tcy10cmFuc2Zvcm06c2NhbGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApfWJvZHkuY2hhcG9ydC1hcHAgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5jaGFwb3J0LWlucHV0LXdyYXBwZXItc2hvcnQsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuY2hhcG9ydC1pbnB1dC13cmFwcGVyLXNob3J0e21pbi1oZWlnaHQ6MzNweH1ib2R5LmNoYXBvcnQtYXBwIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuY2hhcG9ydC1pbnB1dC13cmFwcGVyLXNob3J0IC5jaGFwb3J0LWlucHV0LC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmNoYXBvcnQtaW5wdXQtd3JhcHBlci1zaG9ydCAuY2hhcG9ydC1pbnB1dHttaW4taGVpZ2h0OjMzcHg7aGVpZ2h0OjMzcHg7cGFkZGluZy10b3A6N3B4ICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206OHB4ICFpbXBvcnRhbnR9Ym9keS5jaGFwb3J0LWFwcCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmNoYXBvcnQtaW5wdXQtd3JhcHBlci1zaG9ydCAuZW1vamktd3JhcHBlciAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5jaGFwb3J0LWlucHV0LXdyYXBwZXItc2hvcnQgLmVtb2ppLXdyYXBwZXIgLmVtb2ppLWljb257Ym90dG9tOjhweH1ib2R5LmNoYXBvcnQtYXBwIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuY2hhcG9ydC1pbnB1dC13cmFwcGVyLXNob3J0IC5jaGFwb3J0LXNlbmQtaWNvbiwuY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlci5jaGFwb3J0LWlucHV0LXdyYXBwZXItc2hvcnQgLmNoYXBvcnQtc2VuZC1pY29ue2JvdHRvbTo4cHh9Ym9keS5jaGFwb3J0LWFwcCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyLmNoYXBvcnQtaW5wdXQtd3JhcHBlci1zaG9ydCAuY2hhcG9ydC10cmFuc2Zlci1maWxlLWJ1dHRvbjpiZWZvcmUsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIuY2hhcG9ydC1pbnB1dC13cmFwcGVyLXNob3J0IC5jaGFwb3J0LXRyYW5zZmVyLWZpbGUtYnV0dG9uOmJlZm9yZXtib3R0b206OHB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItYW5pbXt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAub3BlcmF0b3ItZmFjZXtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAucGhvdG97cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttYXJnaW46MCBhdXRvO2JvcmRlci1yYWRpdXM6NTAlO3RleHQtYWxpZ246Y2VudGVyfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLnBob3RvLmhhcy1waG90b3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAucGhvdG8gaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVufS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLnBob3RvIC5zdGF0dXMtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyLXJhZGl1czo4cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICNmZmYsaW5zZXQgMCAwIDAgMXB4ICNmZmY7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjZmZmLGluc2V0IDAgMCAwIDFweCAjZmZmO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94Oy1tb3otYmFja2dyb3VuZC1jbGlwOnBhZGRpbmc7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O3JpZ2h0OjNweDtib3R0b206NHB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLnBob3RvIC5zdGF0dXMtaWNvbi5zdGF0dXMtb25saW5lOjpiZWZvcmV7ZGlzcGxheTppbmhlcml0O3Bvc2l0aW9uOmluaGVyaXQ7Y29udGVudDonJzt3aWR0aDppbmhlcml0O2hlaWdodDppbmhlcml0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojNGZjMTNhfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLnBob3RvLmJvdC1pY29ue2JhY2tncm91bmQtY29sb3I6Izc0OGM5Zn0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5waG90by5ib3QtaWNvbiBpbWd7Ym9yZGVyLXJhZGl1czowO3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTotNXB4O3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAudGVhbXtjb2xvcjp2YXIoLS1jcC13aWRnZXQtdGV4dC1jb2xvci1saWdodCl9LmNoYXBvcnQtY29sb3ItbGlnaHQgLmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAudGVhbXtjb2xvcjp2YXIoLS1jcC13aWRnZXQtdGV4dC1jb2xvci1kYXJrKX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5hY3Rpdml0eS1pbmRpY2F0b3J7Y29sb3I6dmFyKC0tY3Atd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQtMDcpfS5jaGFwb3J0LWNvbG9yLWxpZ2h0IC5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLmFjdGl2aXR5LWluZGljYXRvcntjb2xvcjp2YXIoLS1jcC13aWRnZXQtdGV4dC1jb2xvci1kYXJrLTA3KX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5hY3Rpdml0eS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyIC5hY3Rpdml0eS1sYWJlbC53aXRoLXN0YXR1c3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2xpbmUtaGVpZ2h0Om5vcm1hbDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXIgLmFjdGl2aXR5LWxhYmVsIC5zdGF0dXMtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyLXJhZGl1czo4cHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICNmZmYsaW5zZXQgMCAwIDAgMXB4ICNmZmY7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjZmZmLGluc2V0IDAgMCAwIDFweCAjZmZmO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94Oy1tb3otYmFja2dyb3VuZC1jbGlwOnBhZGRpbmc7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O3Bvc2l0aW9uOnN0YXRpYzttYXJnaW46MCA1cHggMCAxcHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlciAuYWN0aXZpdHktbGFiZWwgLnN0YXR1cy1pY29uLnN0YXR1cy1vbmxpbmU6OmJlZm9yZXtkaXNwbGF5OmluaGVyaXQ7cG9zaXRpb246aW5oZXJpdDtjb250ZW50OicnO3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZmMxM2F9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydHtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bWFyZ2luOjBweDtwYWRkaW5nOjA7aGVpZ2h0OjcwcHg7bWF4LXdpZHRoOjEwMCU7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDQwcHgpfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2Vze3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6MTlweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNle3Bvc2l0aW9uOnJlbGF0aXZlfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2U6YmVmb3Jle2NvbnRlbnQ6JyAnO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlIC5waG90bywuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlOmJlZm9yZXt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JveC1zaXppbmc6Y29udGVudC1ib3g7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlIC5waG90bzphZnRlcntoZWlnaHQ6MzBweDt3aWR0aDozMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2UgLnBob3RvLm5vLXBob3Rvey13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCV9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tc2hhZG93LTYweDYwLnBuZyIpO2JhY2tncm91bmQtc2l6ZTozMHB4IDMwcHh9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjBAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2UgLnBob3RvLm5vLXBob3RvOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowLjc7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS02MHg2MC5wbmciKTtiYWNrZ3JvdW5kLXNpemU6MzBweCAzMHB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2UgLnBob3RvLm5vLXBob3RvOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1ib2R5LTYweDYwQDJ4LnBuZyIpfX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlIC5waG90byAuc3RhdHVzLWljb257cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6OHB4O2hlaWdodDo4cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JvcmRlci1yYWRpdXM6OHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjZmZmLGluc2V0IDAgMCAwIDFweCAjZmZmO2JveC1zaGFkb3c6MCAwIDAgMi41cHggI2ZmZixpbnNldCAwIDAgMCAxcHggI2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym94LXNpemluZzpjb250ZW50LWJveDstd2Via2l0LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstbW96LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDt3aWR0aDo3cHg7aGVpZ2h0OjdweDtyaWdodDotMXB4O2JvdHRvbToycHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZSAucGhvdG8gLnN0YXR1cy1pY29uLnN0YXR1cy1vbmxpbmU6OmJlZm9yZXtkaXNwbGF5OmluaGVyaXQ7cG9zaXRpb246aW5oZXJpdDtjb250ZW50OicnO3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZmMxM2F9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZSAub3BlcmF0b3ItbmFtZXtkaXNwbGF5Om5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZS0we3otaW5kZXg6M30uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlLTAgLnBob3Rve29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlLTF7ei1pbmRleDoyO21hcmdpbi1sZWZ0Oi0xMnB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLm9wZXJhdG9yLWZhY2UtMSAucGhvdG97b3BhY2l0eTowLjh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAub3BlcmF0b3ItZmFjZS0ye3otaW5kZXg6MTttYXJnaW4tbGVmdDotMTJweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5vcGVyYXRvci1mYWNlLTIgLnBob3Rve29wYWNpdHk6MC42fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQub25seS1vbmUtZmFjZSAub3BlcmF0b3ItZmFjZXN7bWFyZ2luLXRvcDoxOHB4O21hcmdpbi1ib3R0b206MH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0Lm9ubHktb25lLWZhY2UgLm9wZXJhdG9yLWZhY2V7bWFyZ2luOjA7d2lkdGg6YXV0b30uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0Lm9ubHktb25lLWZhY2UgLm9wZXJhdG9yLWZhY2UgLnBob3Rve3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWFyZ2luOjA7Ym9yZGVyOm5vbmV9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydC5vbmx5LW9uZS1mYWNlIC5vcGVyYXRvci1mYWNlIC5waG90bzphZnRlcntoZWlnaHQ6MzZweDt3aWR0aDozNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQub25seS1vbmUtZmFjZSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG97LXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTstbW96LWJvcmRlci1yYWRpdXM6NTAlOy1tcy1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0Lm9ubHktb25lLWZhY2UgLm9wZXJhdG9yLWZhY2UgLnBob3RvLm5vLXBob3RvOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdXNlci1pY29uLXNoYWRvdy02MHg2MC5wbmciKTtiYWNrZ3JvdW5kLXNpemU6MzZweCAzNnB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQub25seS1vbmUtZmFjZSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjBAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQub25seS1vbmUtZmFjZSAub3BlcmF0b3ItZmFjZSAucGhvdG8ubm8tcGhvdG86YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvcGFjaXR5OjAuNzt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1ib2R5LTYweDYwLnBuZyIpO2JhY2tncm91bmQtc2l6ZTozNnB4IDM2cHh9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydC5vbmx5LW9uZS1mYWNlIC5vcGVyYXRvci1mYWNlIC5waG90by5uby1waG90bzphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS02MHg2MEAyeC5wbmciKX19LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydC5vbmx5LW9uZS1mYWNlIC5vcGVyYXRvci1mYWNlIC5waG90by5ib3QtaWNvbiBpbWd7cGFkZGluZzo1JX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0Lm9ubHktb25lLWZhY2UgLnRlYW0td3JhcHBlcntwYWRkaW5nLWxlZnQ6NTFweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC50ZWFtLXdyYXBwZXJ7cGFkZGluZy1sZWZ0OjkzcHg7bWFyZ2luLXRvcDoxN3B4O21heC13aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MjVweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0Lm5vLWZhY2VzIC50ZWFtLXdyYXBwZXJ7cGFkZGluZy1sZWZ0OjB9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydC5vbmx5LXR3by1mYWNlcyAudGVhbS13cmFwcGVye3BhZGRpbmctbGVmdDo3MXB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLnRlYW17Zm9udC1zaXplOjE1cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC50ZWFte2ZvbnQtc2l6ZToxNnB4O21hcmdpbi10b3A6LTJweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5hY3Rpdml0eS1pbmRpY2F0b3J7Zm9udC1zaXplOjEzcHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1zaG9ydCAudGVhbSwuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC5hY3Rpdml0eS1pbmRpY2F0b3J7dGV4dC1hbGlnbjpsZWZ0O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLXNob3J0IC53ZWxjb21lLW1lc3NhZ2V7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbHtvcGFjaXR5OjA7cGFkZGluZzo0MHB4IDVweCAzNXB4IDVweDt0ZXh0LWFsaWduOmNlbnRlcn0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLm9wZXJhdG9yLWZhY2Vze21hcmdpbi1ib3R0b206MjVweDt0ZXh0LWFsaWduOmNlbnRlcn0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLm9wZXJhdG9yLWZhY2V7d2lkdGg6MzElfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAucGhvdG97d2lkdGg6NjBweDtoZWlnaHQ6NjBweDttYXJnaW4tYm90dG9tOjdweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLnBob3RvLm5vLXBob3Rvey13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTstbXMtYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCV9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1mdWxsIC5waG90by5uby1waG90bzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL3VzZXItaWNvbi1zaGFkb3ctNjB4NjAucG5nIik7YmFja2dyb3VuZC1zaXplOjYwcHggNjBweH1AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KXsuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLnBob3RvLm5vLXBob3RvOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tc2hhZG93LTYweDYwQDJ4LnBuZyIpfX0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLnBob3RvLm5vLXBob3RvOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowLjc7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy91c2VyLWljb24tYm9keS02MHg2MC5wbmciKTtiYWNrZ3JvdW5kLXNpemU6NjBweCA2MHB4fUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAucGhvdG8ubm8tcGhvdG86YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvdXNlci1pY29uLWJvZHktNjB4NjBAMngucG5nIil9fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAucGhvdG8uYm90LWljb257ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAucGhvdG8uYm90LWljb24gaW1ne3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7cG9zaXRpb246cmVsYXRpdmU7Ym90dG9tOjJweH0uY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLm9wZXJhdG9yLW5hbWV7cGFkZGluZzowIDRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxOHB4O2NvbG9yOnZhcigtLWNwLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0LTA3KX0uY2hhcG9ydC1jb2xvci1saWdodCAuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLm9wZXJhdG9yLW5hbWV7Y29sb3I6dmFyKC0tY3Atd2lkZ2V0LXRleHQtY29sb3ItZGFyay0wNyl9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1mdWxsIC50ZWFtLXdyYXBwZXJ7bWFyZ2luLWJvdHRvbToyNnB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAudGVhbXt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyM3B4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAuYWN0aXZpdHktaW5kaWNhdG9ye3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1mdWxsIC53ZWxjb21lLW1lc3NhZ2V7cGFkZGluZzowIDIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS4zMmVtO2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tY3Atd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjQ7bGluZS1jbGFtcDo0Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0uY2hhcG9ydC1jb2xvci1saWdodCAuY2hhcG9ydC1jb250YWluZXIgLnJlY2VudC1hY3Rpdml0eS13cmFwcGVyLWZ1bGwgLndlbGNvbWUtbWVzc2FnZXtjb2xvcjp2YXIoLS1jcC13aWRnZXQtdGV4dC1jb2xvci1kYXJrKX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbCAud2VsY29tZS1tZXNzYWdle2ZvbnQtc2l6ZToxNXB4fS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbC5vbmx5LW9uZS1mYWNlIC5vcGVyYXRvci1mYWNlc3ttYXJnaW4tYm90dG9tOjEwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1mdWxsLm9ubHktb25lLWZhY2UgLm9wZXJhdG9yLWZhY2V7d2lkdGg6NjAlfS5jaGFwb3J0LWNvbnRhaW5lciAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbC5vbmx5LW9uZS1mYWNlIC50ZWFtLXdyYXBwZXJ7bWFyZ2luLWJvdHRvbToyMHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuaGVhZGVyLWNvbGxhcHNlZCAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnR7b3BhY2l0eToxfS5jaGFwb3J0LWNvbnRhaW5lciAuaGVhZGVyLWNvbGxhcHNlZCAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnQgLmFjdGl2aXR5LWxhYmVsLndpdGgtc3RhdHVze2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jaGFwb3J0LWNvbnRhaW5lciAuaGVhZGVyLWNvbGxhcHNlZCAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItZnVsbHtwb2ludGVyLWV2ZW50czpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuaGVhZGVyLWV4cGFuZGVkIC5yZWNlbnQtYWN0aXZpdHktd3JhcHBlci1mdWxse29wYWNpdHk6MX0uY2hhcG9ydC1jb250YWluZXIgLmhlYWRlci1leHBhbmRlZCAucmVjZW50LWFjdGl2aXR5LXdyYXBwZXItc2hvcnR7cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtwYWRkaW5nOjlweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTNweDt6LWluZGV4OjEwMH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnQ6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO29wYWNpdHk6MC44NTt6LWluZGV4Oi0xfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1hbGVydCBhe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnQuY2hhcG9ydC1hbGVydC1zdWNjZXNze2NvbG9yOiMzYzc2M2R9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWFsZXJ0LmNoYXBvcnQtYWxlcnQtc3VjY2VzczpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1ib3R0b20tY29sb3I6I2Q2ZTljNn0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnQuY2hhcG9ydC1hbGVydC1pbmZve2NvbG9yOiMzMTcwOGZ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWFsZXJ0LmNoYXBvcnQtYWxlcnQtaW5mbzpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZDllZGY3O2JvcmRlci1ib3R0b20tY29sb3I6I2JjZThmMX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnQuY2hhcG9ydC1hbGVydC13YXJuaW5ne2NvbG9yOiM4YTZkM2J9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LWFsZXJ0LmNoYXBvcnQtYWxlcnQtd2FybmluZzpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZTdiNDUyO2JvcmRlci1ib3R0b20tY29sb3I6I2U0OGUzY30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtYWxlcnQuY2hhcG9ydC1hbGVydC1lcnJvcntjb2xvcjojYTk0NDQyfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1hbGVydC5jaGFwb3J0LWFsZXJ0LWVycm9yOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZWJjY2QxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXksLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXl7LS1jcC1wcmltYXJ5LWNvbG9yOiAjNDE0MTQxOy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzQxNDE0MX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzQxNDE0MX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzQxNDE0MSxpbnNldCAwIDAgMCAxcHggIzQxNDE0MSAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzQxNDE0MSxpbnNldCAwIDAgMCAxcHggIzQxNDE0MSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzQxNDE0MSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM0MTQxNDEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6IzQxNDE0MX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6IzQxNDE0MX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSg2NSw2NSw2NSwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojNDE0MTQxICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLnJlcGx5LW9wdGlvbntjb2xvcjojNDE0MTQxICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDY1LDY1LDY1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzQxNDE0MSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzQxNDE0MSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmJvdC1waG90bywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuYm90LXBob3RvLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSg2NSw2NSw2NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM0MTQxNDEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiM0MTQxNDF9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDY1LDY1LDY1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6IzQxNDE0MX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiM0MTQxNDEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSg2NSw2NSw2NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzQxNDE0MSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0MTQxNDEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM0MTQxNDEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSg2NSw2NSw2NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzQxNDE0MSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSg2NSw2NSw2NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojNDE0MTQxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDY1LDY1LDY1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGFyay1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kYXJrLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRhcmstZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNDE0MTQxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXl7LS1jcC1wcmltYXJ5LWNvbG9yOiAjNWY1ZjVmOy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzVmNWY1Zn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzVmNWY1Zn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzVmNWY1ZixpbnNldCAwIDAgMCAxcHggIzVmNWY1ZiAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzVmNWY1ZixpbnNldCAwIDAgMCAxcHggIzVmNWY1ZiAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzVmNWY1ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZjVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6IzVmNWY1Zn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6IzVmNWY1Zn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSg5NSw5NSw5NSwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojNWY1ZjVmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnJlcGx5LW9wdGlvbntjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDk1LDk1LDk1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzVmNWY1ZiAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzVmNWY1ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5ib3QtcGhvdG8sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSg5NSw5NSw5NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM1ZjVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiM1ZjVmNWZ9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDk1LDk1LDk1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6IzVmNWY1Zn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiM1ZjVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSg5NSw5NSw5NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzVmNWY1ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM1ZjVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM1ZjVmNWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSg5NSw5NSw5NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzVmNWY1ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmF5IC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSg5NSw5NSw5NSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmF5IC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojNWY1ZjVmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDk1LDk1LDk1LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNWY1ZjVmfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXksLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXl7LS1jcC1wcmltYXJ5LWNvbG9yOiAjNzg5MDljOy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzc4OTA5Y30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6Izc4OTA5Y30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzc4OTA5YyxpbnNldCAwIDAgMCAxcHggIzc4OTA5YyAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzc4OTA5YyxpbnNldCAwIDAgMCAxcHggIzc4OTA5YyAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6Izc4OTA5Y30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6Izc4OTA5Y30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSgxMjAsMTQ0LDE1NiwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojNzg5MDljICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLnJlcGx5LW9wdGlvbntjb2xvcjojNzg5MDljICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMCwxNDQsMTU2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzc4OTA5YyAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmJvdC1waG90bywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuYm90LXBob3RvLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgxMjAsMTQ0LDE1NiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiM3ODkwOWN9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDEyMCwxNDQsMTU2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6Izc4OTA5Y30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSgxMjAsMTQ0LDE1NiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgxMjAsMTQ0LDE1NiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSgxMjAsMTQ0LDE1NiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojNzg5MDljICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDEyMCwxNDQsMTU2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS1ncmF5IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLWdyYXkgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUtZ3JheSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNzg5MDljfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWR7LS1jcC1wcmltYXJ5LWNvbG9yOiAjZjQ0MzM2Oy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogI2Y0NDMzNn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggI2Y0NDMzNixpbnNldCAwIDAgMCAxcHggI2Y0NDMzNiAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggI2Y0NDMzNixpbnNldCAwIDAgMCAxcHggI2Y0NDMzNiAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiNmNDQzMzYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6I2Y0NDMzNn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6I2Y0NDMzNn0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSgyNDQsNjcsNTQsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZC5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgI2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5yZXBseS1vcHRpb257Y29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDQsNjcsNTQsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjZjQ0MzM2ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiNmNDQzMzZ9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDI0NCw2Nyw1NCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMjQ0LDY3LDU0LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiNmNDQzMzYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDI0NCw2Nyw1NCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXJlZCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSgyNDQsNjcsNTQsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgyNDQsNjcsNTQsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1yZWQgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXJlZCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcmVkIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNmNDQzMzZ9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGlua3stLWNwLXByaW1hcnktY29sb3I6ICNlOTFlNjM7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjZTkxZTYzfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZTkxZTYzfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjZTkxZTYzLGluc2V0IDAgMCAwIDFweCAjZTkxZTYzICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjZTkxZTYzLGluc2V0IDAgMCAwIDFweCAjZTkxZTYzICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6I2U5MWU2MyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojZTkxZTYzfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojZTkxZTYzfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDIzMywzMCw5OSwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluay5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojZTkxZTYzICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbntjb2xvcjojZTkxZTYzICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIzMywzMCw5OSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5yZXBseS1vcHRpb246YWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICNlOTFlNjMgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuYm90LXBob3RvLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuYm90LXBob3Rve2JhY2tncm91bmQ6Izc0OGM5ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEoMjMzLDMwLDk5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6I2U5MWU2M30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMjMzLDMwLDk5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6I2U5MWU2M30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSgyMzMsMzAsOTksMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVye2JvcmRlci1jb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGF7Y29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcGluayAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVye2NvbG9yOnJnYmEoMjMzLDMwLDk5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1waW5rIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDIzMywzMCw5OSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1waW5rIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcGluayAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojZTkxZTYzICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDIzMywzMCw5OSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXBpbmsgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2U5MWU2M30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxley0tY3AtcHJpbWFyeS1jb2xvcjogIzljMjdiMDstLWNwLXByaW1hcnktY29udHJhc3QtY29sb3I6ICM5YzI3YjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM5YzI3YjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e2JhY2tncm91bmQtY29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb257LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICM5YzI3YjAsaW5zZXQgMCAwIDAgMXB4ICM5YzI3YjAgIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDIuNXB4ICM5YzI3YjAsaW5zZXQgMCAwIDAgMXB4ICM5YzI3YjAgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGh7ZmlsbDojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utc3RhdHVze2JhY2tncm91bmQtY29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhe2NhcmV0LWNvbG9yOiM5YzI3YjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbntmaWxsOiM5YzI3YjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbntmaWxsOnJnYmEoMTU2LDM5LDE3NiwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnJlcGx5LW9wdGlvbntjb2xvcjojOWMyN2IwICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1NiwzOSwxNzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjOWMyN2IwICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dHtjYXJldC1jb2xvcjojOWMyN2IwfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXJ7Y29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXJ7Y29sb3I6cmdiYSgxNTYsMzksMTc2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6IzljMjdiMH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSgxNTYsMzksMTc2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDE1NiwzOSwxNzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOnJnYmEoMTU2LDM5LDE3NiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDE1NiwzOSwxNzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiM5YzI3YjB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZXstLWNwLXByaW1hcnktY29sb3I6ICM2NzNhYjc7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjNjczYWI3fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojNjczYWI3fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjNjczYWI3LGluc2V0IDAgMCAwIDFweCAjNjczYWI3ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjNjczYWI3LGluc2V0IDAgMCAwIDFweCAjNjczYWI3ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojNjczYWI3ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojNjczYWI3fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojNjczYWI3fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDEwMyw1OCwxODMsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5yZXBseS1vcHRpb257Y29sb3I6IzY3M2FiNyAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDMsNTgsMTgzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzY3M2FiNyAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmJvdC1waG90bywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgxMDMsNTgsMTgzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6IzY3M2FiN30uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMTAzLDU4LDE4MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjd9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojNjczYWI3ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMTAzLDU4LDE4MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojNjczYWI3ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgxMDMsNTgsMTgzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNjczYWI3ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDEwMyw1OCwxODMsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgxMDMsNTgsMTgzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZGVlcC1wdXJwbGUgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWRlZXAtcHVycGxlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1kZWVwLXB1cnBsZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNjczYWI3fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ297LS1jcC1wcmltYXJ5LWNvbG9yOiAjM2Y1MWI1Oy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzNmNTFiNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzNmNTFiNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzNmNTFiNSxpbnNldCAwIDAgMCAxcHggIzNmNTFiNSAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzNmNTFiNSxpbnNldCAwIDAgMCAxcHggIzNmNTFiNSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiMzZjUxYjUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6IzNmNTFiNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6IzNmNTFiNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSg2Myw4MSwxODEsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnby5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzNmNTFiNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5yZXBseS1vcHRpb257Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSg2Myw4MSwxODEsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjM2Y1MWI1ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDYzLDgxLDE4MSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiMzZjUxYjV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDYzLDgxLDE4MSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoNjMsODEsMTgxLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiMzZjUxYjUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDYzLDgxLDE4MSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWluZGlnbyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSg2Myw4MSwxODEsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSg2Myw4MSwxODEsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1pbmRpZ28gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWluZGlnbyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctaW5kaWdvIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiMzZjUxYjV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZXstLWNwLXByaW1hcnktY29sb3I6ICMxZTg4ZTU7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjMWU4OGU1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMWU4OGU1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjMWU4OGU1LGluc2V0IDAgMCAwIDFweCAjMWU4OGU1ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjMWU4OGU1LGluc2V0IDAgMCAwIDFweCAjMWU4OGU1ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojMWU4OGU1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojMWU4OGU1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDMwLDEzNiwyMjksMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzFlODhlNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5yZXBseS1vcHRpb257Y29sb3I6IzFlODhlNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgzMCwxMzYsMjI5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzFlODhlNSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5ib3QtcGhvdG8sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgzMCwxMzYsMjI5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6IzFlODhlNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMzAsMTM2LDIyOSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiMxZTg4ZTV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMzAsMTM2LDIyOSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiMxZTg4ZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgzMCwxMzYsMjI5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDMwLDEzNiwyMjksMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJsdWUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzFlODhlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgzMCwxMzYsMjI5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYmx1ZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYmx1ZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojMWU4OGU1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWV7LS1jcC1wcmltYXJ5LWNvbG9yOiAjMDM5YmU1Oy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzAzOWJlNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzAzOWJlNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzAzOWJlNSxpbnNldCAwIDAgMCAxcHggIzAzOWJlNSAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzAzOWJlNSxpbnNldCAwIDAgMCAxcHggIzAzOWJlNSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiMwMzliZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMzliZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6IzAzOWJlNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6IzAzOWJlNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSgzLDE1NSwyMjksMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzAzOWJlNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb257Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgzLDE1NSwyMjksMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjMDM5YmU1ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmJvdC1waG90bywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmJvdC1waG90bywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDMsMTU1LDIyOSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMzliZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiMwMzliZTV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDMsMTU1LDIyOSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiMwMzliZTV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMywxNTUsMjI5LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojMDM5YmU1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiMwMzliZTUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDMsMTU1LDIyOSwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSgzLDE1NSwyMjksMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtYmx1ZSAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWJsdWUgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgzLDE1NSwyMjksMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ibHVlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiMwMzliZTV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbnstLWNwLXByaW1hcnktY29sb3I6ICMwMGFjYzE7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjMDBhY2MxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMDBhY2MxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjMDBhY2MxLGluc2V0IDAgMCAwIDFweCAjMDBhY2MxICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjMDBhY2MxLGluc2V0IDAgMCAwIDFweCAjMDBhY2MxICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6IzAwYWNjMSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwYWNjMSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojMDBhY2MxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojMDBhY2MxfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDAsMTcyLDE5MywwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbi5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMDBhY2MxICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbntjb2xvcjojMDBhY2MxICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMTcyLDE5MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5yZXBseS1vcHRpb246YWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICMwMGFjYzEgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuYm90LXBob3RvLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuYm90LXBob3Rve2JhY2tncm91bmQ6Izc0OGM5ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNzIsMTkzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzAwYWNjMSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6IzAwYWNjMX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMCwxNzIsMTkzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6IzAwYWNjMX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSgwLDE3MiwxOTMsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVye2JvcmRlci1jb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGF7Y29sb3I6IzAwYWNjMSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctY3lhbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVye2NvbG9yOnJnYmEoMCwxNzIsMTkzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1jeWFuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDAsMTcyLDE5MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1jeWFuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctY3lhbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojMDBhY2MxICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDAsMTcyLDE5MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWN5YW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzAwYWNjMX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsey0tY3AtcHJpbWFyeS1jb2xvcjogIzAwOTY4ODstLWNwLXByaW1hcnktY29udHJhc3QtY29sb3I6ICMwMDk2ODh9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODh9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e2JhY2tncm91bmQtY29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb257LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICMwMDk2ODgsaW5zZXQgMCAwIDAgMXB4ICMwMDk2ODggIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDIuNXB4ICMwMDk2ODgsaW5zZXQgMCAwIDAgMXB4ICMwMDk2ODggIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGh7ZmlsbDojMDA5Njg4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLm1lc3NhZ2Utc3RhdHVze2JhY2tncm91bmQtY29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhe2NhcmV0LWNvbG9yOiMwMDk2ODh9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbntmaWxsOiMwMDk2ODh9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbntmaWxsOnJnYmEoMCwxNTAsMTM2LDAuOSl9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbC5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODggIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9ue2NvbG9yOiMwMDk2ODggIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwxNTAsMTM2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzAwOTY4OCAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5ib3QtcGhvdG8sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgwLDE1MCwxMzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dHtjYXJldC1jb2xvcjojMDA5Njg4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXJ7Y29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXJ7Y29sb3I6cmdiYSgwLDE1MCwxMzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXZ7YmFja2dyb3VuZC1jb2xvcjojMDA5Njg4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWR7Y29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3Zlcntjb2xvcjpyZ2JhKDAsMTUwLDEzNiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzAwOTY4OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgwLDE1MCwxMzYsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXRlYWwgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOnJnYmEoMCwxNTAsMTM2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXRlYWwgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy10ZWFsIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe2NvbG9yOiMwMDk2ODggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVye2NvbG9yOnJnYmEoMCwxNTAsMTM2LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctdGVhbCAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojMDA5Njg4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW57LS1jcC1wcmltYXJ5LWNvbG9yOiAjNGNhZjUwOy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogIzRjYWY1MH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzRjYWY1MH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggIzRjYWY1MCxpbnNldCAwIDAgMCAxcHggIzRjYWY1MCAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggIzRjYWY1MCxpbnNldCAwIDAgMCAxcHggIzRjYWY1MCAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiM0Y2FmNTAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6IzRjYWY1MH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6IzRjYWY1MH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSg3NiwxNzUsODAsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzRjYWY1MCAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5yZXBseS1vcHRpb257Y29sb3I6IzRjYWY1MCAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSg3NiwxNzUsODAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNGNhZjUwICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5ib3QtcGhvdG8sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuYm90LXBob3RvLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDc2LDE3NSw4MCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiM0Y2FmNTB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDc2LDE3NSw4MCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoNzYsMTc1LDgwLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDc2LDE3NSw4MCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSg3NiwxNzUsODAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWdyZWVuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzRjYWY1MCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSg3NiwxNzUsODAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiM0Y2FmNTB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbnstLWNwLXByaW1hcnktY29sb3I6ICM4YmMzNGE7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjOGJjMzRhfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojOGJjMzRhfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjOGJjMzRhLGluc2V0IDAgMCAwIDFweCAjOGJjMzRhICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjOGJjMzRhLGluc2V0IDAgMCAwIDFweCAjOGJjMzRhICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojOGJjMzRhfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojOGJjMzRhfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDEzOSwxOTUsNzQsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4uY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5yZXBseS1vcHRpb257Y29sb3I6IzhiYzM0YSAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMzksMTk1LDc0LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgIzhiYzM0YSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmJvdC1waG90bywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgxMzksMTk1LDc0LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6IzhiYzM0YX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMTM5LDE5NSw3NCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGF9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMTM5LDE5NSw3NCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgxMzksMTk1LDc0LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDEzOSwxOTUsNzQsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgxMzksMTk1LDc0LDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctbGlnaHQtZ3JlZW4gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWxpZ2h0LWdyZWVuIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1saWdodC1ncmVlbiAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojOGJjMzRhfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3csLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3csLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3d7LS1jcC1wcmltYXJ5LWNvbG9yOiAjZmRkODM1Oy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogI2ZkZDgzNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZkZDgzNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggI2ZkZDgzNSxpbnNldCAwIDAgMCAxcHggI2ZkZDgzNSAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggI2ZkZDgzNSxpbnNldCAwIDAgMCAxcHggI2ZkZDgzNSAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6I2ZkZDgzNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6I2ZkZDgzNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSgyNTMsMjE2LDUzLDAuOSl9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdy5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2VkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZGQ4MzUgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5yZXBseS1vcHRpb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAucmVwbHktb3B0aW9ue2NvbG9yOiNmZGQ4MzUgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjUzLDIxNiw1MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAucmVwbHktb3B0aW9uOmFjdGl2ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5yZXBseS1vcHRpb246YWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICNmZGQ4MzUgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5ib3QtcGhvdG8sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmJvdC1waG90bywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuYm90LXBob3Rve2JhY2tncm91bmQ6Izc0OGM5ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEoMjUzLDIxNiw1MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiNmZGQ4MzV9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDI1MywyMTYsNTMsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXZ7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWR7Y29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3Zlcntjb2xvcjpyZ2JhKDI1MywyMTYsNTMsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVye2JvcmRlci1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGF7Y29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVye2NvbG9yOnJnYmEoMjUzLDIxNiw1MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSgyNTMsMjE2LDUzLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe2NvbG9yOiNmZGQ4MzUgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3cteWVsbG93IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVye2NvbG9yOnJnYmEoMjUzLDIxNiw1MywwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LXllbGxvdyAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3cteWVsbG93IC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy15ZWxsb3cgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2ZkZDgzNX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyey0tY3AtcHJpbWFyeS1jb2xvcjogI2ZmYjMwMDstLWNwLXByaW1hcnktY29udHJhc3QtY29sb3I6ICNmZmIzMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmIzMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5e2JhY2tncm91bmQtY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb257LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDIuNXB4ICNmZmIzMDAsaW5zZXQgMCAwIDAgMXB4ICNmZmIzMDAgIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDIuNXB4ICNmZmIzMDAsaW5zZXQgMCAwIDAgMXB4ICNmZmIzMDAgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGh7ZmlsbDojZmZiMzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5tZXNzYWdlLXN0YXR1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm1lc3NhZ2Utc3RhdHVze2JhY2tncm91bmQtY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmZiMzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhe2NhcmV0LWNvbG9yOiNmZmIzMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbntmaWxsOiNmZmIzMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbntmaWxsOnJnYmEoMjU1LDE3OSwwLDAuOSl9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmIzMDAgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAucmVwbHktb3B0aW9ue2NvbG9yOiNmZmIzMDAgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDE3OSwwLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAucmVwbHktb3B0aW9uOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLnJlcGx5LW9wdGlvbjphY3RpdmV7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgI2ZmYjMwMCAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmJvdC1waG90bywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5ib3QtcGhvdG97YmFja2dyb3VuZDojNzQ4YzlmICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSgyNTUsMTc5LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZiMzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dHtjYXJldC1jb2xvcjojZmZiMzAwfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXJ7Y29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXJ7Y29sb3I6cmdiYSgyNTUsMTc5LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXZ7YmFja2dyb3VuZC1jb2xvcjojZmZiMzAwfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVkLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWR7Y29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3Zlcntjb2xvcjpyZ2JhKDI1NSwxNzksMCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYXtjb2xvcjojZmZiMzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGE6aG92ZXJ7Y29sb3I6cmdiYSgyNTUsMTc5LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOnJnYmEoMjU1LDE3OSwwLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1hbWJlciAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWFtYmVyIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0e2NvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhe2NvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVye2NvbG9yOnJnYmEoMjU1LDE3OSwwLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYW1iZXIgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWFtYmVyIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1hbWJlciAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojZmZiMzAwfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2V7LS1jcC1wcmltYXJ5LWNvbG9yOiAjZjU3YzAwOy0tY3AtcHJpbWFyeS1jb250cmFzdC1jb2xvcjogI2Y1N2MwMH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWxhdW5jaGVyIC5jaGFwb3J0LWxhdW5jaGVyLWJ1dHRvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtbGF1bmNoZXIgLmNoYXBvcnQtbGF1bmNoZXItYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlubmVyLWhlYWRlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMi41cHggI2Y1N2MwMCxpbnNldCAwIDAgMCAxcHggI2Y1N2MwMCAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMi41cHggI2Y1N2MwMCxpbnNldCAwIDAgMCAxcHggI2Y1N2MwMCAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1sb2dvIHNwYW4sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1tZXNzYWdlLXBvd2VyZWQtYnkgc3ZnIHBhdGgsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LW1lc3NhZ2UtcG93ZXJlZC1ieSBzdmcgcGF0aHtmaWxsOiNmNTdjMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5lbW9qaS13cmFwcGVyLnNob3ctcG9wdXAgLmVtb2ppLWljb24sLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS1zdGF0dXN7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAucHJlY2hhdC1mb3JtIC5mb2N1c2VkOjpiZWZvcmUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5wcmVjaGF0LWZvcm0gLmZvY3VzZWQ6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgaW5wdXQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWF7Y2FyZXQtY29sb3I6I2Y1N2MwMH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LXNlbmQtaWNvbiBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtc2VuZC1pY29uIHN2ZyBwb2x5Z29ue2ZpbGw6I2Y1N2MwMH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LXNlbmQtaWNvbjpob3ZlciBzdmcgcG9seWdvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtc2VuZC1pY29uOmhvdmVyIHN2ZyBwb2x5Z29ue2ZpbGw6cmdiYSgyNDUsMTI0LDAsMC45KX0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlLmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLnByZWNoYXQtZm9ybSAuY2hlY2tib3gtZmllbGQ6Y2hlY2tlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAucHJlY2hhdC1mb3JtIC5jaGVja2JveC1maWVsZDpjaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgI2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnJlcGx5LW9wdGlvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5yZXBseS1vcHRpb257Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMTI0LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnJlcGx5LW9wdGlvbjphY3RpdmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAucmVwbHktb3B0aW9uOmFjdGl2ZXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjZjU3YzAwICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuYm90LXBob3RvLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmJvdC1waG90b3tiYWNrZ3JvdW5kOiM3NDhjOWYgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2JhKDI0NSwxMjQsMCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtc2VuZC1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1zZW5kLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0e2NhcmV0LWNvbG9yOiNmNTdjMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcntjb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3Zlcntjb2xvcjpyZ2JhKDI0NSwxMjQsMCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntiYWNrZ3JvdW5kLWNvbG9yOiNmNTdjMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZHtjb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmhvdmVye2NvbG9yOnJnYmEoMjQ1LDEyNCwwLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5mYXEtZm9vdGVyLWJhY2stYnV0dG9uOjphZnRlcntib3JkZXItY29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSB+IC53aWRnZXQtYnJvd3NlciAuZmFxLWZvb3RlciAuY2hhcG9ydC1sb2dvIHNwYW57Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhe2NvbG9yOiNmNTdjMDAgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluazpob3ZlciwuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYTpob3Zlcntjb2xvcjpyZ2JhKDI0NSwxMjQsMCwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LW9yYW5nZSAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZXtib3JkZXItY29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6cmdiYSgyNDUsMTI0LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHR7Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGF7Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXJ7Y29sb3I6cmdiYSgyNDUsMTI0LDAsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1vcmFuZ2UgLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZSwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LW9yYW5nZSAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctb3JhbmdlIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNmNTdjMDB9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93bnstLWNwLXByaW1hcnktY29sb3I6ICM3OTU1NDg7LS1jcC1wcmltYXJ5LWNvbnRyYXN0LWNvbG9yOiAjNzk1NTQ4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1sYXVuY2hlciAuY2hhcG9ydC1sYXVuY2hlci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojNzk1NTQ4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC55b3VyLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtaW5uZXItaGVhZGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLnlvdXItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHksLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbm5lci1oZWFkZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAueW91ci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5zdGF0dXMtaWNvbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5jaGFwb3J0LWlubmVyLWhlYWRlciAuc3RhdHVzLWljb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLnN0YXR1cy1pY29uey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAyLjVweCAjNzk1NTQ4LGluc2V0IDAgMCAwIDFweCAjNzk1NTQ4ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAyLjVweCAjNzk1NTQ4LGluc2V0IDAgMCAwIDFweCAjNzk1NTQ4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jaGFwb3J0LWlubmVyLWhlYWRlciAub3BlcmF0b3ItZmFjZXMgLm9wZXJhdG9yLWZhY2U6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtaW5uZXItaGVhZGVyIC5vcGVyYXRvci1mYWNlcyAub3BlcmF0b3ItZmFjZTpiZWZvcmUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbm5lci1oZWFkZXIgLm9wZXJhdG9yLWZhY2VzIC5vcGVyYXRvci1mYWNlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbG9nbyBzcGFuLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbG9nbyBzcGFue2NvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtbWVzc2FnZS1wb3dlcmVkLWJ5IHN2ZyBwYXRoe2ZpbGw6Izc5NTU0OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAubWVzc2FnZS1zdGF0dXMsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuZW1vamktd3JhcHBlci5zaG93LXBvcHVwIC5lbW9qaS1pY29uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLm1lc3NhZ2Utc3RhdHVzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmVtb2ppLXdyYXBwZXIuc2hvdy1wb3B1cCAuZW1vamktaWNvbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5tZXNzYWdlLXN0YXR1c3tiYWNrZ3JvdW5kLWNvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3JlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLnByZWNoYXQtZm9ybSAuZm9jdXNlZDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6Izc5NTU0OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIHRleHRhcmVhLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciBpbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5jaGFwb3J0LWlucHV0LXdyYXBwZXIgdGV4dGFyZWEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1pbnB1dC13cmFwcGVyIGlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtaW5wdXQtd3JhcHBlciB0ZXh0YXJlYXtjYXJldC1jb2xvcjojNzk1NTQ4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb24gc3ZnIHBvbHlnb257ZmlsbDojNzk1NTQ4fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb24sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1zZW5kLWljb246aG92ZXIgc3ZnIHBvbHlnb257ZmlsbDpyZ2JhKDEyMSw4NSw3MiwwLjkpfS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93bi5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93bi5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93bi5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5wcmVjaGF0LWZvcm0gLmNoZWNrYm94LWZpZWxkOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5yZXBseS1vcHRpb24sLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAucmVwbHktb3B0aW9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLnJlcGx5LW9wdGlvbntjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMSw4NSw3MiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5yZXBseS1vcHRpb246aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5yZXBseS1vcHRpb246YWN0aXZlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLnJlcGx5LW9wdGlvbjpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5yZXBseS1vcHRpb246YWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkICM3OTU1NDggIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmJvdC1waG90bywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5ib3QtcGhvdG8sLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuYm90LXBob3Rve2JhY2tncm91bmQ6Izc0OGM5ZiAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dDpmb2N1cywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0OmZvY3VzLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEoMTIxLDg1LDcyLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9uLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXNlbmQtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6Izc5NTU0OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LXdyYXBwZXIgLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dCwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXQtd3JhcHBlciAuY2hhcG9ydC1lbWFpbC1yZXF1ZXN0LWlucHV0LC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNoYXBvcnQtZW1haWwtcmVxdWVzdC1pbnB1dC13cmFwcGVyIC5jaGFwb3J0LWVtYWlsLXJlcXVlc3QtaW5wdXR7Y2FyZXQtY29sb3I6Izc5NTU0OH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVye2NvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmZhcS1ib3QtbWVzc2FnZSAuYnRuLWxpbmstd3JhcHBlcjpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5mYXEtYm90LW1lc3NhZ2UgLmJ0bi1saW5rLXdyYXBwZXI6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuZmFxLWJvdC1tZXNzYWdlIC5idG4tbGluay13cmFwcGVyOmhvdmVye2NvbG9yOnJnYmEoMTIxLDg1LDcyLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1uYXYsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2e2JhY2tncm91bmQtY29sb3I6Izc5NTU0OH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmxpbmssLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOnZpc2l0ZWQsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazp2aXNpdGVkLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLmFydGljbGUtY29udGVudCBhOmxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6dmlzaXRlZCwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpsaW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOnZpc2l0ZWQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6bGluaywuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6cmdiYSgxMjEsODUsNzIsMC44KSAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biB+IC53aWRnZXQtYnJvd3NlciAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiM3OTU1NDggIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gfiAud2lkZ2V0LWJyb3dzZXIgLmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVye2JvcmRlci1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3BhbiwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIH4gLndpZGdldC1icm93c2VyIC5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ28gc3Bhbntjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAuYXJ0aWNsZS1saXN0LWl0ZW0tbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluaywuY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGEsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbmssLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgLndpZGdldC1icm93c2VyLWZhcS1saW5rLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGF7Y29sb3I6Izc5NTU0OCAhaW1wb3J0YW50fS5jaGFwb3J0LWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgLmFydGljbGUtbGlzdC1pdGVtLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6aG92ZXIsLmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1jb250ZW50LmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5IC5hcnRpY2xlLWxpc3QtaXRlbS1saW5rOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluazpob3ZlciwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBhOmhvdmVye2NvbG9yOnJnYmEoMTIxLDg1LDcyLDAuOCkgIWltcG9ydGFudH0uY2hhcG9ydC1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLmNvbnRlbnQtd3JhcHBlciAuc2VjdGlvbiAuc2VjdGlvbi1ib2R5ICNhcnRpY2xlIGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAuY29udGVudC13cmFwcGVyIC5zZWN0aW9uIC5zZWN0aW9uLWJvZHkgI2FydGljbGUgYmxvY2txdW90ZSwuY2hhcG9ydC1mYXEtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5jb250ZW50LXdyYXBwZXIgLnNlY3Rpb24gLnNlY3Rpb24tYm9keSAjYXJ0aWNsZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXI6aG92ZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlcjpob3ZlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyOmhvdmVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjpyZ2JhKDEyMSw4NSw3MiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5uYXYtd3JhcHBlciAuZGVmYXVsdC1sb2dvLXdyYXBwZXIgLmRlZmF1bHQtbG9nby10ZXh0LC5jaGFwb3J0LWNvbnRlbnQuY2hhcG9ydC13aW5kb3ctYnJvd24gLm5hdi13cmFwcGVyIC5kZWZhdWx0LWxvZ28td3JhcHBlciAuZGVmYXVsdC1sb2dvLXRleHQsLmNoYXBvcnQtZmFxLWNvbnRhaW5lci5jaGFwb3J0LXdpbmRvdy1icm93biAubmF2LXdyYXBwZXIgLmRlZmF1bHQtbG9nby13cmFwcGVyIC5kZWZhdWx0LWxvZ28tdGV4dHtjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGEsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYXtjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGE6aG92ZXIsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBhOmhvdmVyLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYTpob3Zlcntjb2xvcjpyZ2JhKDEyMSw4NSw3MiwwLjgpICFpbXBvcnRhbnR9LmNoYXBvcnQtY29udGFpbmVyLmNoYXBvcnQtd2luZG93LWJyb3duIC5tZXNzYWdlLXdyYXBwZXIuaW50ZXJsb2N1dG9yLW1lc3NhZ2Utd3JhcHBlciAubWVzc2FnZS1ib2R5IGJsb2NrcXVvdGUsLmNoYXBvcnQtY29udGVudC5jaGFwb3J0LXdpbmRvdy1icm93biAubWVzc2FnZS13cmFwcGVyLmludGVybG9jdXRvci1tZXNzYWdlLXdyYXBwZXIgLm1lc3NhZ2UtYm9keSBibG9ja3F1b3RlLC5jaGFwb3J0LWZhcS1jb250YWluZXIuY2hhcG9ydC13aW5kb3ctYnJvd24gLm1lc3NhZ2Utd3JhcHBlci5pbnRlcmxvY3V0b3ItbWVzc2FnZS13cmFwcGVyIC5tZXNzYWdlLWJvZHkgYmxvY2txdW90ZXtib3JkZXItY29sb3I6Izc5NTU0OH0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtb2ZmbGluZS13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6MTdweCAxNXB4O2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtb2ZmbGluZS13cmFwcGVyIC5jaGFwb3J0LW9mZmxpbmUtY2FwdGlvbntmb250LXNpemU6MTNweDttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZC1jb2xvcjojZTdlN2U3O3BhZGRpbmc6MTBweDtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojMzMzfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtIGlucHV0LC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtIHRleHRhcmVhe2JveC1zaGFkb3c6MCAwIDAgMCB0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICNlMmUyZTI7ZGlzcGxheTpibG9jaztwYWRkaW5nOjhweCAxMnB4IDhweCAxMnB4O3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTZweDtjb2xvcjojM2QzZDNkOy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweDstbW96LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLGJveC1zaGFkb3cgMC4ycyBlYXNlOy1tb3otdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSxib3gtc2hhZG93IDAuMnMgZWFzZTstbXMtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSxib3gtc2hhZG93IDAuMnMgZWFzZTstby10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLGJveC1zaGFkb3cgMC4ycyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsYm94LXNoYWRvdyAwLjJzIGVhc2U7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7cmVzaXplOm5vbmU7ZmxvYXQ6bm9uZTtmb250LXN0eWxlOm5vcm1hbDttYXJnaW4tYm90dG9tOjEwcHh9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW9mZmxpbmUtd3JhcHBlciAjY2hhcG9ydC1vZmZsaW5lLWZvcm0gaW5wdXQ6Zm9jdXMsLmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW9mZmxpbmUtd3JhcHBlciAjY2hhcG9ydC1vZmZsaW5lLWZvcm0gdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojNzRiZWZmO2JveC1zaGFkb3c6MCAwIDRweCAwIHJnYmEoNzUsMTcxLDI1NSwwLjM4KX0uY2hhcG9ydC1jb250YWluZXIgLmNoYXBvcnQtb2ZmbGluZS13cmFwcGVyICNjaGFwb3J0LW9mZmxpbmUtZm9ybSBpbnB1dDo6LW1zLWNsZWFyLC5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtIHRleHRhcmVhOjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtIHRleHRhcmVhe2hlaWdodDo1MHB4fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtIC5pbnZhbGlke2JvcmRlci1jb2xvcjojZmY3Nzc3fS5jaGFwb3J0LWNvbnRhaW5lciAuY2hhcG9ydC1vZmZsaW5lLXdyYXBwZXIgI2NoYXBvcnQtb2ZmbGluZS1mb3JtICNjaGFwb3J0LW9mZmxpbmUtYnV0dG9ue2JvdHRvbToyMHB4O3JpZ2h0OjE1cHg7ZGlzcGxheTpibG9jaztib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMzY4NmJlO2NvbG9yOiMzNjg2YmU7cGFkZGluZzo3cHg7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoyMHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDstbXMtYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czozcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXR9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW9mZmxpbmUtd3JhcHBlciAjY2hhcG9ydC1vZmZsaW5lLWZvcm0gI2NoYXBvcnQtb2ZmbGluZS1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzY4NmJlO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXJ9LmNoYXBvcnQtY29udGFpbmVyIC5jaGFwb3J0LW9mZmxpbmUtd3JhcHBlciAuY2hhcG9ydC1sb2dve3JpZ2h0OjE1cHg7bGVmdDoxNXB4fS53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItdmlldy0xe3otaW5kZXg6MjE0NzQ4MzUwMX0ud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLXZpZXctMnt6LWluZGV4OjIxNDc0ODM1MDJ9LndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci12aWV3e3Bvc2l0aW9uOmFic29sdXRlOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApOy13ZWJraXQtYm94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7Ym94LXNoYWRvdzowIDVweCAzOHB4IHJnYmEoMCwwLDAsMC4xNSk7ei1pbmRleDoyMTQ3NDgzNTAxO2JhY2tncm91bmQ6d2hpdGU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItcmFkaXVzOjEwcHh9QG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDYwcHgpLCBhbGwgYW5kIChtYXgtd2lkdGg6IDc1MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpey53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItdmlld3std2Via2l0LWJvcmRlci1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXM6MDstbXMtYm9yZGVyLXJhZGl1czowO2JvcmRlci1yYWRpdXM6MH19LndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci12aWV3Lm91dHstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTEwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMTAlKX0ud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLXZpZXcuYW5pbXstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgLjVzOy1vLXRyYW5zaXRpb246dHJhbnNmb3JtIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgLjVzO3RyYW5zaXRpb246dHJhbnNmb3JtIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgLjVzfS53aWRnZXQtYnJvd3NlciAud2lkZ2V0LWJyb3dzZXItdmlldy5pbnstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0ud2lkZ2V0LWJyb3dzZXIgLndpZGdldC1icm93c2VyLXZpZXcuYW5pbS5pbntib3JkZXItcmFkaXVzOjB9LndpZGdldC1icm93c2VyIC53aWRnZXQtYnJvd3Nlci1zY3JvbGwtcGFnZXtvdmVyZmxvdy15OmF1dG87cGFkZGluZzowIDVweH0ud2lkZ2V0LWJyb3dzZXJ7Zm9udC1mYW1pbHk6InByb3hpbWEtbm92YSIsIkhlbHZldGljYSBOZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZn0ud2lkZ2V0LWJyb3dzZXIgKnstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdntmbGV4OjAgMCA2MHB4O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjVweCAyMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciBlYXNlLW91dCAwLjNzOy1vLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciBlYXNlLW91dCAwLjNzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciBlYXNlLW91dCAwLjNzOy13ZWJraXQtYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpLDAgNTBweCA1MHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwwLjIpLDAgNTBweCA1MHB4IDBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMil9LndpZGdldC1icm93c2VyLWZhcS1uYXYuc2VhcmNoLWZpZWxkLWV4cGFuZGVke2JhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LnNlYXJjaC1maWVsZC1leHBhbmRlZCAud2lkZ2V0LWJyb3dzZXItZmFxLWJhY2sgc3Bhbjo6YmVmb3JlLC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2LnNlYXJjaC1maWVsZC1leHBhbmRlZCAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1hbmNob3I6OmJlZm9yZSwud2lkZ2V0LWJyb3dzZXItZmFxLW5hdi5zZWFyY2gtZmllbGQtZXhwYW5kZWQgLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtY2xlYXI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiAud2lkZ2V0LWJyb3dzZXItZmFxLWJhY2t7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjazo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JvcmRlcjpzb2xpZCAjZmZmO2JvcmRlci13aWR0aDoycHggMnB4IDAgMDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTJweCAwOy1tb3otdHJhbnNmb3JtLW9yaWdpbjoxMnB4IDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46MTJweCAwO3RyYW5zZm9ybS1vcmlnaW46MTJweCAwOy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1vdXQgMC4zczstby10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLW91dCAwLjNzO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2Utb3V0IDAuM3M7ei1pbmRleDoyfS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjay5zZWFyY2gtZmllbGQtZXhwYW5kZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpncmF5fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjayBzcGFue3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bGVmdDo1MCU7dG9wOjUwJTt6LWluZGV4OjM7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTMzJSwgLTUwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0zMyUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTMzJSwgLTUwJSk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjayBzcGFuOmhvdmVyOjpiZWZvcmUsLndpZGdldC1icm93c2VyLWZhcS1uYXYgLndpZGdldC1icm93c2VyLWZhcS1iYWNrIHNwYW46YWN0aXZlOjpiZWZvcmV7b3BhY2l0eTowLjE7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LndpZGdldC1icm93c2VyLWZhcS1uYXYgLndpZGdldC1icm93c2VyLWZhcS1iYWNrIHNwYW46OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7b3BhY2l0eTowO3otaW5kZXg6MTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1vLXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzO3RyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1tcy10cmFuc2Zvcm06c2NhbGUoMC42KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjYpO3RyYW5zZm9ybTpzY2FsZSgwLjYpfS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjayBzcGFuOmhvdmVyOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1uYXYgLndpZGdldC1icm93c2VyLWZhcS1iYWNrIHNwYW46aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtYmFjayBzcGFuOmFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiAuZmFxLW5hdi10aXRsZXtmb250LXNpemU6MTdweDtjb2xvcjojZmZmO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3BvaW50ZXItZXZlbnRzOm5vbmU7bGVmdDo1MCU7bWFyZ2luLXJpZ2h0Oi01MCU7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dG9wOjA7Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWFuY2hvcntmbGV4OjAgMCAyNHB4O21hcmdpbi1sZWZ0OmF1dG87cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O3otaW5kZXg6MjtyaWdodDotM3B4fS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWFuY2hvcjpob3Zlcjo6YmVmb3JlLC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWFuY2hvcjphY3RpdmU6OmJlZm9yZXtvcGFjaXR5OjAuMTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1hbmNob3I6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7b3BhY2l0eTowO3otaW5kZXg6MTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1vLXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzO3RyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1tcy10cmFuc2Zvcm06c2NhbGUoMC42KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjYpO3RyYW5zZm9ybTpzY2FsZSgwLjYpfS53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWFuY2hvcjpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtbmF2IC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWFuY2hvcjpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LndpZGdldC1icm93c2VyLWZhcS1uYXYgLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtYW5jaG9yOmFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1hbmNob3I6OmJlZm9yZXtsZWZ0OmF1dG87ei1pbmRleDotMX0ud2lkZ2V0LWJyb3dzZXItZmFxLW5hdiAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1hbmNob3IgaW1ne3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7cG9zaXRpb246cmVsYXRpdmU7LW1zLXRyYW5zZm9ybTpzY2FsZSgtMSwgMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsIDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwgMSl9LndpZGdldC1icm93c2VyLWZhcS1uYXYgLnVucmVhZC1tZXNzYWdlcy1jb3VudHtib3JkZXItcmFkaXVzOjUwJTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxN3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsNTYsNTEsMC45KTt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO3otaW5kZXg6MjttaW4td2lkdGg6MTdweDtoZWlnaHQ6MTdweDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IDAgcmdiYSgwLDAsMCwwLjIzKTtib3gtc2hhZG93OjAgMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4yMyk7cG9zaXRpb246cmVsYXRpdmU7bGVmdDo0cHg7dG9wOi0xMnB4fS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm17ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7YWxpZ24taXRlbXM6Y2VudGVyfUAtd2Via2l0LWtleWZyYW1lcyBzZWFyY2gtaW5wdXQtaW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgc2VhcmNoLWlucHV0LWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1tcy1rZXlmcmFtZXMgc2VhcmNoLWlucHV0LWlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBzZWFyY2gtaW5wdXQtaW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHNlYXJjaC1pbnB1dC1pbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtaW5wdXR7Zm9udC1mYW1pbHk6InByb3hpbWEtbm92YSIsIkhlbHZldGljYSBOZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Zm9udC1zaXplOjE4cHg7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87cGFkZGluZzo0cHggNHB4IDRweCAzMnB4O21pbi13aWR0aDowO2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OjIwcHg7b3BhY2l0eTowO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7Y29sb3I6IzMzMzgzYTstd2Via2l0LWFuaW1hdGlvbjowLjNzIGVhc2Utb3V0IHNlYXJjaC1pbnB1dC1pbjstby1hbmltYXRpb246MC4zcyBlYXNlLW91dCBzZWFyY2gtaW5wdXQtaW47YW5pbWF0aW9uOjAuM3MgZWFzZS1vdXQgc2VhcmNoLWlucHV0LWluOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWlucHV0OjotbW96LXBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxN3B4O2NvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC1vcGFjaXR5OjEgIWltcG9ydGFudDtvcGFjaXR5OjF9LndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtZm9ybSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE3cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50fS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE3cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50fS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtaW5wdXQ6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE3cHg7Y29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiM5OWEwYTUgIWltcG9ydGFudDstd2Via2l0LW9wYWNpdHk6MSAhaW1wb3J0YW50O29wYWNpdHk6MX0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWlucHV0OmRpc2FibGVkOi1tcy1pbnB1dC1wbGFjZWhvbGRlcntmb250LXNpemU6MTdweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnR9LndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtZm9ybSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1pbnB1dDpkaXNhYmxlZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntmb250LXNpemU6MTdweDtjb2xvcjojOTlhMGE1ICFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Izk5YTBhNSAhaW1wb3J0YW50Oy13ZWJraXQtb3BhY2l0eToxICFpbXBvcnRhbnR9LndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtZm9ybSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1jbGVhcnttYXJnaW4tbGVmdDo1cHg7Ym9yZGVyLXJhZGl1czo1MCU7cG9zaXRpb246cmVsYXRpdmU7bGVmdDoxMHB4O2ZsZXg6MCAwIDQwcHg7aGVpZ2h0OjQwcHg7LXdlYmtpdC1hbmltYXRpb246Y2hhcG9ydEZhZGVJbiAwLjNzIGVhc2Utb3V0Oy1vLWFuaW1hdGlvbjpjaGFwb3J0RmFkZUluIDAuM3MgZWFzZS1vdXQ7YW5pbWF0aW9uOmNoYXBvcnRGYWRlSW4gMC4zcyBlYXNlLW91dDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2Utb3V0Oy1vLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2Utb3V0O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2Utb3V0Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyIHNwYW57cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtZm9ybSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1jbGVhciBzcGFuOjpiZWZvcmUsLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtZm9ybSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1jbGVhciBzcGFuOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEuNXB4O2hlaWdodDoxNnB4O2JhY2tncm91bmQtY29sb3I6Z3JheX0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyIHNwYW46OmJlZm9yZXstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyIHNwYW46OmFmdGVyey1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtY2xlYXI6aG92ZXI6OmJlZm9yZSwud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyOmFjdGl2ZTo6YmVmb3Jle29wYWNpdHk6MC4xOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtY2xlYXI6OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7b3BhY2l0eTowO3otaW5kZXg6MTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1vLXRyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzO3RyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAwLjFzOy1tcy10cmFuc2Zvcm06c2NhbGUoMC42KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjYpO3RyYW5zZm9ybTpzY2FsZSgwLjYpfS53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWZvcm0gLndpZGdldC1icm93c2VyLWZhcS1zZWFyY2gtY2xlYXI6aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyOmhvdmVyOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ud2lkZ2V0LWJyb3dzZXItZmFxLXNlYXJjaC1mb3JtIC53aWRnZXQtYnJvd3Nlci1mYXEtc2VhcmNoLWNsZWFyOmFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnR7b3ZlcmZsb3cteTphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo3MHB4O2JvdHRvbTozMnB4O2xlZnQ6MHB4O3JpZ2h0OjBweDtwYWRkaW5nOjE1cHggMjBweDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQud2l0aC1leHBhbmRlZC1mb290ZXJ7Ym90dG9tOjM5cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWhlYWRpbmd7Y29sb3I6IzMzMzgzYTtmb250LXNpemU6MjdweDttYXJnaW46MTBweCAwIDVweCAwfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50ey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7Y29sb3I6IzMzMzgzYTtmb250LXNpemU6MTQuNHB4fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50ICp7bGluZS1oZWlnaHQ6MS41O2xldHRlci1zcGFjaW5nOm5vcm1hbH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBlbSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBkZWwsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgc3Ryb25nLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Y29sb3I6aW5oZXJpdH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMiwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMywud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoNCwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoNSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoNntjb2xvcjojMzMzODNhfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHN0cm9uZ3tmb250LXdlaWdodDo2MDB9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgc3t0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgxe2ZvbnQtc2l6ZTo0MC4zMnB4O2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW46MCAwIDAuNWVtIDA7cGFkZGluZzoyMS42cHggMH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMntmb250LXNpemU6MjUuMnB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MjdweCAwIDE4cHg7bGluZS1oZWlnaHQ6MS4xNX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgye2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MS4yICFpbXBvcnRhbnR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDN7Zm9udC1zaXplOjIxLjZweDttYXJnaW46MjdweCAwIDE4cHg7cGFkZGluZzowO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjIyfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDN7Zm9udC1zaXplOjIwLjU5MnB4O2xpbmUtaGVpZ2h0OjEuMTUgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMiwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoM3tkaXNwbGF5OmJsb2NrfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGVte2ZvbnQtc3R5bGU6aXRhbGljfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGRlbHt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGNvZGUsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJle2ZvbnQtZmFtaWx5OidSb2JvdG8gTW9ubycsIG1vbm9zcGFjZSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3O2JvcmRlcjpub25lfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGNvZGV7cGFkZGluZzowLjJlbTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXh7b3ZlcmZsb3cteDphdXRvO3doaXRlLXNwYWNlOnByZTtwYWRkaW5nOjlweCA0LjYwOHB4IDEzLjVweCA0LjYwOHB4O2Rpc3BsYXk6YmxvY2s7d29yZC13cmFwOm5vcm1hbDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmU6bm90KDpsYXN0LWNoaWxkKSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4Om5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToyMi41MzZweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUgY29kZSwud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4IGNvZGV7d2hpdGUtc3BhY2U6cHJlO3BhZGRpbmc6MDtvdmVyZmxvdy13cmFwOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXh7cGFkZGluZzoxMS4xNnB4IDYuNjZweCAxNS42NnB4IDYuNjZweH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheHtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6I2JhYmFjMCB0cmFuc3BhcmVudH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhcjpob3Jpem9udGFse2hlaWdodDo3cHh9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVye2JhY2tncm91bmQ6I2Y0ZjRmNH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYmFiYWMwO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2EwYTBhNX1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9ue2Rpc3BsYXk6bm9uZX0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCB1bHtsaXN0LXN0eWxlLXR5cGU6ZGlzYztkaXNwbGF5OmJsb2NrfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IG9se2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsO2Rpc3BsYXk6YmxvY2t9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgb2wsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgdWx7Zm9udC1zaXplOjE2LjJweDtwYWRkaW5nOjAgMCAwIDEuNmVtO21hcmdpbjowIDAgMThweCAwfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHB7bGluZS1oZWlnaHQ6MS43O2ZvbnQtc2l6ZToxNC40cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MjIuNTM2cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS43O2Rpc3BsYXk6bGlzdC1pdGVtO21hcmdpbi1ib3R0b206OXB4O2ZvbnQtc2l6ZToxNC40cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgbGk6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtkaXNwbGF5OmJsb2NrO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzM4ZmZhO21hcmdpbjowIDAgMTkuNTg0cHggMDtwYWRkaW5nOjAgMCAwIDE1Ljg0cHg7Zm9udC1zaXplOjE0LjRweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBibG9ja3F1b3RlPnB7Zm9udC1zaXplOjE0LjRweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGxpLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGUsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDEsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDIsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDMsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDQsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDUsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDYsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgc3Ryb25nLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGVtLC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHMsLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYXt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+KjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50Pio6bGFzdC1jaGlsZCAqOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+aDE6bGFzdC1jaGlsZHtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+KjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjAgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudD5oMTpmaXJzdC1jaGlsZHtwYWRkaW5nLXRvcDowICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCAqe2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBlbSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGRlbCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHN0cm9uZywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGJsb2NrcXVvdGV7Y29sb3I6aW5oZXJpdH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgxLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGg0LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoNntjb2xvcjojMzMzODNhfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgc3Ryb25ne2ZvbnQtd2VpZ2h0OjYwMH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHN7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgxe2ZvbnQtc2l6ZTo0NC44cHg7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjowIDAgMC41ZW0gMDtwYWRkaW5nOjI0cHggMH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgye2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MzBweCAwIDIwcHg7bGluZS1oZWlnaHQ6MS4xNX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDJ7Zm9udC1zaXplOjI1cHg7bGluZS1oZWlnaHQ6MS4yICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoM3tmb250LXNpemU6MjRweDttYXJnaW46MzBweCAwIDIwcHg7cGFkZGluZzowO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjIyfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoM3tmb250LXNpemU6MjIuODhweDtsaW5lLWhlaWdodDoxLjE1ICFpbXBvcnRhbnR9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgyLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDN7ZGlzcGxheTpibG9ja30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGVte2ZvbnQtc3R5bGU6aXRhbGljfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgZGVse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBjb2RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJle2ZvbnQtZmFtaWx5OidSb2JvdG8gTW9ubycsIG1vbm9zcGFjZSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMy4zM3B4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3O2JvcmRlcjpub25lfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgY29kZXtwYWRkaW5nOjAuMmVtO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXh7b3ZlcmZsb3cteDphdXRvO3doaXRlLXNwYWNlOnByZTtwYWRkaW5nOjEwcHggNS4xMnB4IDE1cHggNS4xMnB4O2Rpc3BsYXk6YmxvY2s7d29yZC13cmFwOm5vcm1hbDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZTpub3QoOmxhc3QtY2hpbGQpLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MjUuMDRweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZSBjb2RlLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheCBjb2Rle3doaXRlLXNwYWNlOnByZTtwYWRkaW5nOjA7b3ZlcmZsb3ctd3JhcDpub3JtYWw7d29yZC13cmFwOm5vcm1hbH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXh7cGFkZGluZzoxMi40cHggNy40cHggMTcuNHB4IDcuNHB4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXh7c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOiNiYWJhYzAgdHJhbnNwYXJlbnR9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWx7aGVpZ2h0OjdweH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWJvZHkuY2hhcG9ydC1kZXZpY2Utd2luZG93cyAuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHByZS5xbC1zeW50YXg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrOmhvdmVye2JhY2tncm91bmQ6I2Y0ZjRmNH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNiYWJhYzA7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH1ib2R5LmNoYXBvcnQtZGV2aWNlLXdpbmRvd3MgLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwcmUucWwtc3ludGF4Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNhMGEwYTV9Ym9keS5jaGFwb3J0LWRldmljZS13aW5kb3dzIC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHJlLnFsLXN5bnRheDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9ue2Rpc3BsYXk6bm9uZX0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHVse2xpc3Qtc3R5bGUtdHlwZTpkaXNjO2Rpc3BsYXk6YmxvY2t9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBvbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbDtkaXNwbGF5OmJsb2NrfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgb2wsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCB1bHtmb250LXNpemU6MThweDtwYWRkaW5nOjAgMCAwIDEuNmVtO21hcmdpbjowIDAgMjBweCAwfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcHtsaW5lLWhlaWdodDoxLjc7Zm9udC1zaXplOjE2cHh9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBwOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToyNS4wNHB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS43O2Rpc3BsYXk6bGlzdC1pdGVtO21hcmdpbi1ib3R0b206MTBweDtmb250LXNpemU6MTZweH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGxpOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZXtkaXNwbGF5OmJsb2NrO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzM4ZmZhO21hcmdpbjowIDAgMjEuNzZweCAwO3BhZGRpbmc6MCAwIDAgMTcuNnB4O2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZT5we2ZvbnQtc2l6ZToxNnB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcCwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGxpLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYmxvY2txdW90ZSwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGgxLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDIsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoMywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGg0LC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaDUsLmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBoNiwuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IHN0cm9uZywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGVtLC5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgcywuY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50IGF7d29yZC13cmFwOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+KjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+KjpsYXN0LWNoaWxkICo6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50PmgxOmxhc3QtY2hpbGR7cGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQ+KjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjAgIWltcG9ydGFudH0uY2hhcG9ydC1kZXZpY2UtbW9iaWxlIC53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuYXJ0aWNsZS1jb250ZW50PmgxOmZpcnN0LWNoaWxke3BhZGRpbmctdG9wOjAgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmFydGljbGUtY29udGVudCBhe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgYTp2aXNpdGVke2NvbG9yOmluaGVyaXR9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5hcnRpY2xlLWNvbnRlbnQgaW1ne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6NDV2aDtkaXNwbGF5OmJsb2NrfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuZmFxLWluZGV4e21hcmdpbi1yaWdodDotMjBweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb246Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDoxNXB4fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuZmFxLWluZGV4IC5mYXEtaW5kZXgtc2VjdGlvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MzVweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24taGVhZGluZ3tmb250LXNpemU6MTUuM3B4O2NvbG9yOiMzMzM4M2E7bWFyZ2luOjAgMCA1cHggMHB4fS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5mYXEtaW5kZXggLmZhcS1pbmRleC1zZWN0aW9uLWhlYWRpbmd7Zm9udC1zaXplOjE3cHg7bWFyZ2luLWJvdHRvbTo4cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5mYXEtaW5kZXggLmZhcS1pbmRleC1zZWN0aW9uIC53aWRnZXQtYnJvd3Nlci1mYXEtbGlua3N7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZX0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24gLndpZGdldC1icm93c2VyLWZhcS1saW5rcyAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5mYXEtaW5kZXggLmZhcS1pbmRleC1zZWN0aW9uIC53aWRnZXQtYnJvd3Nlci1mYXEtbGlua3MgLndpZGdldC1icm93c2VyLWZhcS1saW5rLXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDonJztkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDoxcHg7YmFja2dyb3VuZC1jb2xvcjojZWFlY2VkfUBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXJlc29sdXRpb246IDEuNWRwcHgpey53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuZmFxLWluZGV4IC5mYXEtaW5kZXgtc2VjdGlvbiAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmtzIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluay13cmFwcGVyOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDBkZWcsICNjZmQzZDUsICNjZmQzZDUgNTAlLCB0cmFuc3BhcmVudCA1MCUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207YmFja2dyb3VuZC1zaXplOjEwMCUgMXB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtjb250YWluOnBhaW50fX0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24gLndpZGdldC1icm93c2VyLWZhcS1saW5rcyAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstd3JhcHBlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmt7Zm9udC1zaXplOjE0LjRweDtsaW5lLWhlaWdodDoxLjVlbTtwYWRkaW5nOjExLjVweCAwO2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24gLndpZGdldC1icm93c2VyLWZhcS1saW5rcyAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstd3JhcHBlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstdGV4dHtmbGV4OjEgMSBhdXRvO2NvbG9yOiMzMzM4M2F9LmNoYXBvcnQtZGV2aWNlLW1vYmlsZSAud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24gLndpZGdldC1icm93c2VyLWZhcS1saW5rcyAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstd3JhcHBlciAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmt7Zm9udC1zaXplOjE2cHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5mYXEtaW5kZXggLmZhcS1pbmRleC1zZWN0aW9uIC53aWRnZXQtYnJvd3Nlci1mYXEtbGlua3MgLndpZGdldC1icm93c2VyLWZhcS1saW5rLXdyYXBwZXIgLmNoZXZyb24tcmlnaHR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt3aWR0aDo4cHg7aGVpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MTBweDttYXJnaW46MCAxMHB4IDAgYXV0b30ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmZhcS1pbmRleCAuZmFxLWluZGV4LXNlY3Rpb24gLndpZGdldC1icm93c2VyLWZhcS1saW5rcyAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmstd3JhcHBlciAuY2hldnJvbi1yaWdodDo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6c29saWQgI2NmZDNkNTtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg1MCUpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDUwJSk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDUwJSk7dG9wOi01MCU7cmlnaHQ6OHB4O3dpZHRoOjhweDtoZWlnaHQ6OHB4O3otaW5kZXg6Mn0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXJ7bWFyZ2luLXJpZ2h0Oi0yMHB4fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtaGVhZGVye2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MTVweCAwfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtbGlzdHtwYWRkaW5nOjAgMCAyNXB4IDA7bWFyZ2luOjEwcHggMCAwIDA7bGlzdC1zdHlsZTpub25lfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtaXRlbTphZnRlcntjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kLWNvbG9yOiNlYWVjZWR9QG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDE0NGRwaSksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCl7LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5zZWFyY2gtcmVzdWx0cy13cmFwcGVyIC5zZWFyY2gtcmVzdWx0cy1pdGVtOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDBkZWcsICNjZmQzZDUsICNjZmQzZDUgNTAlLCB0cmFuc3BhcmVudCA1MCUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207YmFja2dyb3VuZC1zaXplOjEwMCUgMXB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtjb250YWluOnBhaW50fX0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXIgLnNlYXJjaC1yZXN1bHRzLWl0ZW0gLndpZGdldC1icm93c2VyLWZhcS1saW5re2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxNnB4IDA7ZGlzcGxheTpmbGV4fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtaXRlbSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbms6bGluaywud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXIgLnNlYXJjaC1yZXN1bHRzLWl0ZW0gLndpZGdldC1icm93c2VyLWZhcS1saW5rOmhvdmVye2NvbG9yOiMzMzMgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXIgLnNlYXJjaC1yZXN1bHRzLWl0ZW0gLndpZGdldC1icm93c2VyLWZhcS1saW5rIC5pdGVtLWxlZnR7ZmxleDoxIDEgYXV0b30ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXIgLnNlYXJjaC1yZXN1bHRzLWl0ZW0gLndpZGdldC1icm93c2VyLWZhcS1saW5rIC5pdGVtLXJpZ2h0e2ZsZXg6bm9uZTttYXJnaW4tbGVmdDphdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIDEwcHh9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5zZWFyY2gtcmVzdWx0cy13cmFwcGVyIC5zZWFyY2gtcmVzdWx0cy1pdGVtIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluayAuaXRlbS1yaWdodCAuY2hldnJvbi1yaWdodHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3dpZHRoOjhweDtoZWlnaHQ6OHB4fS53aWRnZXQtYnJvd3Nlci1mYXEtY29udGVudCAuc2VhcmNoLXJlc3VsdHMtd3JhcHBlciAuc2VhcmNoLXJlc3VsdHMtaXRlbSAud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmsgLml0ZW0tcmlnaHQgLmNoZXZyb24tcmlnaHQ6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyOnNvbGlkICNjZmQzZDU7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoNTAlKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg1MCUpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg1MCUpO3RvcDotNTAlO3JpZ2h0OjhweDt3aWR0aDo4cHg7aGVpZ2h0OjhweDt6LWluZGV4OjJ9LndpZGdldC1icm93c2VyLWZhcS1jb250ZW50IC5zZWFyY2gtcmVzdWx0cy13cmFwcGVyIC5zZWFyY2gtcmVzdWx0cy1pdGVtIC53aWRnZXQtYnJvd3Nlci1mYXEtbGluayAuc2VhcmNoLXJlc3VsdHMtaXRlbS1hcnRpY2xle21hcmdpbi1ib3R0b206NXB4O2NvbG9yOiMzMzM4M2EgIWltcG9ydGFudH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLnNlYXJjaC1yZXN1bHRzLXdyYXBwZXIgLnNlYXJjaC1yZXN1bHRzLWl0ZW0gLndpZGdldC1icm93c2VyLWZhcS1saW5rIC5zZWFyY2gtcmVzdWx0cy1pdGVtLXNlY3Rpb257Y29sb3I6IzdlODc4ZDtmb250LXNpemU6MTNweH0ud2lkZ2V0LWJyb3dzZXItZmFxLWNvbnRlbnQgLmVtcHR5LXNlYXJjaC1tZXNzYWdle2ZvbnQtc2l6ZToxNS4zcHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjphdXRvO2NvbG9yOiNiNGI5YmR9LndpZGdldC1icm93c2VyLWZhcS1oaWRle29wYWNpdHk6MDt6LWluZGV4OjIxNDc0ODM1MDJ9LndpZGdldC1icm93c2VyLWZhcS1zaG93e3otaW5kZXg6MjE0NzQ4MzUwM30ud2lkZ2V0LWJyb3dzZXItZmFxLWxpbmt7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7d29yZC1icmVhazpicmVhay13b3JkO291dGxpbmU6bm9uZTtsaW5lLWhlaWdodDoxZW07LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgZWFzZS1vdXQgMC4zczstby10cmFuc2l0aW9uOmNvbG9yIGVhc2Utb3V0IDAuM3M7dHJhbnNpdGlvbjpjb2xvciBlYXNlLW91dCAwLjNzfS5mYXEtZXJyb3J7bWFyZ2luOmF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LmZhcS1lcnJvciAuZmFxLWVycm9yLWNvZGV7Zm9udC1zaXplOjQwcHg7Zm9udC13ZWlnaHQ6NjAwfS5mYXEtZXJyb3IgLmZhcS1lcnJvci10ZXh0e2ZvbnQtc2l6ZToxOHB4fS5mYXEtZm9vdGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2hlaWdodDozMnB4O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjAgMjBweH0uZmFxLWZvb3Rlci5mb290ZXItZXhwYW5kZWR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VhZWNlZDtoZWlnaHQ6MzlweDt6LWluZGV4OjIxNDc0ODM1MDN9LmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b257YWxpZ24tc2VsZjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MnB4O2JvdHRvbToycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXI6c29saWQgZ3JheTtib3JkZXItd2lkdGg6MnB4IDJweCAwIDA7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEycHggMDstbW96LXRyYW5zZm9ybS1vcmlnaW46MTJweCAwOy1tcy10cmFuc2Zvcm0tb3JpZ2luOjEycHggMDt0cmFuc2Zvcm0tb3JpZ2luOjEycHggMDstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2Utb3V0IDAuM3M7LW8tdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1vdXQgMC4zczt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLW91dCAwLjNzO3otaW5kZXg6Mn0uZmFxLWZvb3RlciAuZmFxLWZvb3Rlci1iYWNrLWJ1dHRvbjo6YWZ0ZXJ7d2lkdGg6OXB4O2hlaWdodDo5cHh9LmZhcS1mb290ZXIgLmZhcS1mb290ZXItYmFjay1idXR0b246OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjM1cHg7aGVpZ2h0OjM1cHg7dG9wOjUwJTtsZWZ0OjUwJTt6LWluZGV4OjE7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTM1JSwgLTUwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0zNSUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTM1JSwgLTUwJSl9LmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nb3twb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjIxNDc0ODM1MDE7Ym90dG9tOjA7cmlnaHQ6MjBweDtoZWlnaHQ6MzJweDtsaW5lLWhlaWdodDozMnB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtjb2xvcjojOTlhMGE1O29wYWNpdHk6MC41fS5mYXEtZm9vdGVyIC5jaGFwb3J0LWxvZ286aG92ZXJ7b3BhY2l0eToxfS5jaGFwb3J0LWRldmljZS1tb2JpbGUgLmZhcS1mb290ZXIgLmNoYXBvcnQtbG9nb3tmb250LXNpemU6MTNweH0KCg=="}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/font-awesome.min.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.604Z","timestamp":1785126645604,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/font-awesome.min.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 6319\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":29058,"size_decoded":6567,"mime_type":"text/css","magic":"ASCII text, with very long lines (28896)","md5":"9e1ef9cd323c65414f9fecdc58b1981c","sha1":"73666dce568db2d36e0bbed06421d9858cc4f443","sha256":"923b03644b2087f823bfc9334e9225fc5e7092e514d5013b0be105e6ef4c630e","sha512":"82f5d69321e46b587de9a53bb03ddfc8d5a15774c4b9da9678d0c97a04e513747627dd6ed57b24f3dd9051b0e99d7d510cbf3acbfbc25356a443bf8b69eae93c","ssdeep":"384:XKZyDDVUKW+KZKJ5Ne2QYvB+fx1UaE6l+yQ/QdmwM:lyr+KZK3Iacfx1Uz6l+yQ/SE","tlshash":"34d240f8e54c01d66731c48bff81b36862baf73dd5844d99f01f690c29d22a522c5bba","first_seen":"2023-11-30T19:44:02Z","last_seen":"2026-07-27T04:47:12.448887Z","times_seen":7,"resource_available":false,"data":"LyohCiAqICBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZQogKiAgTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSkKICovLmZhLmZhLXB1bGwtbGVmdCwuZmEucHVsbC1sZWZ0e21hcmdpbi1yaWdodDouM2VtfS5mYSwuZmEtc3RhY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZhLWZ3LC5mYS1saXt0ZXh0LWFsaWduOmNlbnRlcn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lO3NyYzp1cmwoLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udDViNjI1YjYyNWI2Mi5lb3Q/dj00LjYuMyk7c3JjOnVybCguLi9mb250cy9mb250YXdlc29tZS13ZWJmb250ZDQxZGQ0MWRkNDFkLmVvdD8jaWVmaXgmdj00LjYuMykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCguLi9mb250cy9mb250YXdlc29tZS13ZWJmb250NWI2MjViNjI1YjYyLndvZmYyP3Y9NC42LjMpIGZvcm1hdCgnd29mZjInKSx1cmwoLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udDViNjI1YjYyNWI2Mi53b2ZmP3Y9NC42LjMpIGZvcm1hdCgnd29mZicpLHVybCguLi9mb250cy9mb250YXdlc29tZS13ZWJmb250NWI2MjViNjI1YjYyLnR0Zj92PTQuNi4zKSBmb3JtYXQoJ3RydWV0eXBlJyksdXJsKC4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQ1YjYyNWI2MjViNjIuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0uZmF7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7Zm9udC1zaXplOmluaGVyaXQ7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0uZmEtbGd7Zm9udC1zaXplOjEuMzMzMzMzMzNlbTtsaW5lLWhlaWdodDouNzVlbTt2ZXJ0aWNhbC1hbGlnbjotMTUlfS5mYS0yeHtmb250LXNpemU6MmVtfS5mYS0zeHtmb250LXNpemU6M2VtfS5mYS00eHtmb250LXNpemU6NGVtfS5mYS01eHtmb250LXNpemU6NWVtfS5mYS1md3t3aWR0aDoxLjI4NTcxNDI5ZW19LmZhLXVse3BhZGRpbmctbGVmdDowO21hcmdpbi1sZWZ0OjIuMTQyODU3MTRlbTtsaXN0LXN0eWxlLXR5cGU6bm9uZX0uZmEuZmEtcHVsbC1yaWdodCwuZmEucHVsbC1yaWdodHttYXJnaW4tbGVmdDouM2VtfS5mYS11bD5saXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMi4xNDI4NTcxNGVtO3dpZHRoOjIuMTQyODU3MTRlbTt0b3A6LjE0Mjg1NzE0ZW19LmZhLWxpLmZhLWxne2xlZnQ6LTEuODU3MTQyODZlbX0uZmEtYm9yZGVye3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbTtib3JkZXI6LjA4ZW0gc29saWQgI2VlZTtib3JkZXItcmFkaXVzOi4xZW19LmZhLXB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS1wdWxsLXJpZ2h0LC5wdWxsLXJpZ2h0e2Zsb2F0OnJpZ2h0fS5wdWxsLWxlZnR7ZmxvYXQ6bGVmdH0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM1OWRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19LmZhLXJvdGF0ZS05MHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MikiOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpIjstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uZmEtZmxpcC1ob3Jpem9udGFsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsIG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm06c2NhbGUoLTEsMSl9LmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MiwgbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLC0xKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEsLTEpO3RyYW5zZm9ybTpzY2FsZSgxLC0xKX06cm9vdCAuZmEtZmxpcC1ob3Jpem9udGFsLDpyb290IC5mYS1mbGlwLXZlcnRpY2FsLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1yb3RhdGUtOTB7LXdlYmtpdC1maWx0ZXI6bm9uZTtmaWx0ZXI6bm9uZX0uZmEtc3RhY2t7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MmVtO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyfS5mYS1zdGFjay0xeHtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1zdGFjay0yeHtmb250LXNpemU6MmVtfS5mYS1pbnZlcnNle2NvbG9yOiNmZmZ9LmZhLWdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjAwMCJ9LmZhLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjAwMSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1lbnZlbG9wZS1vOmJlZm9yZXtjb250ZW50OiJcZjAwMyJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1vOmJlZm9yZXtjb250ZW50OiJcZjAwNiJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtZmlsbTpiZWZvcmV7Y29udGVudDoiXGYwMDgifS5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS10aDpiZWZvcmV7Y29udGVudDoiXGYwMGEifS5mYS10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAwYiJ9LmZhLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjAwYyJ9LmZhLWNsb3NlOmJlZm9yZSwuZmEtcmVtb3ZlOmJlZm9yZSwuZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjAxMCJ9LmZhLXBvd2VyLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMTEifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtY29nOmJlZm9yZSwuZmEtZ2VhcjpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS10cmFzaC1vOmJlZm9yZXtjb250ZW50OiJcZjAxNCJ9LmZhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDE1In0uZmEtZmlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjAxNiJ9LmZhLWNsb2NrLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1hcnJvdy1jaXJjbGUtby1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAxYSJ9LmZhLWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZXtjb250ZW50OiJcZjAxYiJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLXBsYXktY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDFkIn0uZmEtcmVwZWF0OmJlZm9yZSwuZmEtcm90YXRlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtbGlzdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDIyIn0uZmEtbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMjMifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWhlYWRwaG9uZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDI1In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtYm9vazpiZWZvcmV7Y29udGVudDoiXGYwMmQifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDMwIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1ib2xkOmJlZm9yZXtjb250ZW50OiJcZjAzMiJ9LmZhLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYwMzMifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM2In0uZmEtYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZjAzNyJ9LmZhLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzOCJ9LmZhLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMDM5In0uZmEtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwM2EifS5mYS1kZWRlbnQ6YmVmb3JlLC5mYS1vdXRkZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYiJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS12aWRlby1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtaW1hZ2U6YmVmb3JlLC5mYS1waG90bzpiZWZvcmUsLmZhLXBpY3R1cmUtbzpiZWZvcmV7Y29udGVudDoiXGYwM2UifS5mYS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDQwIn0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1hZGp1c3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDQyIn0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS1lZGl0OmJlZm9yZSwuZmEtcGVuY2lsLXNxdWFyZS1vOmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLXNoYXJlLXNxdWFyZS1vOmJlZm9yZXtjb250ZW50OiJcZjA0NSJ9LmZhLWNoZWNrLXNxdWFyZS1vOmJlZm9yZXtjb250ZW50OiJcZjA0NiJ9LmZhLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYwNDcifS5mYS1zdGVwLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OCJ9LmZhLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ5In0uZmEtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRhIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wYXVzZTpiZWZvcmV7Y29udGVudDoiXGYwNGMifS5mYS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjA0ZCJ9LmZhLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRlIn0uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MCJ9LmZhLXN0ZXAtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTEifS5mYS1lamVjdDpiZWZvcmV7Y29udGVudDoiXGYwNTIifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtY3Jvc3NoYWlyczpiZWZvcmV7Y29udGVudDoiXGYwNWIifS5mYS10aW1lcy1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoiXGYwNWMifS5mYS1jaGVjay1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoiXGYwNWQifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLW1haWwtZm9yd2FyZDpiZWZvcmUsLmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYwNjUifS5mYS1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYwNjYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjA2OSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1naWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2YiJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSwuZmEtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYwNzIifS5mYS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1tYWduZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc2In0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItb3BlbjpiZWZvcmV7Y29udGVudDoiXGYwN2MifS5mYS1hcnJvd3MtdjpiZWZvcmV7Y29udGVudDoiXGYwN2QifS5mYS1hcnJvd3MtaDpiZWZvcmV7Y29udGVudDoiXGYwN2UifS5mYS1iYXItY2hhcnQtbzpiZWZvcmUsLmZhLWJhci1jaGFydDpiZWZvcmV7Y29udGVudDoiXGYwODAifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtY2FtZXJhLXJldHJvOmJlZm9yZXtjb250ZW50OiJcZjA4MyJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1jb2dzOmJlZm9yZSwuZmEtZ2VhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtdGh1bWJzLW8tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDg3In0uZmEtdGh1bWJzLW8tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwODgifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtaGVhcnQtbzpiZWZvcmV7Y29udGVudDoiXGYwOGEifS5mYS1zaWduLW91dDpiZWZvcmV7Y29udGVudDoiXGYwOGIifS5mYS1saW5rZWRpbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtdGh1bWItdGFjazpiZWZvcmV7Y29udGVudDoiXGYwOGQifS5mYS1leHRlcm5hbC1saW5rOmJlZm9yZXtjb250ZW50OiJcZjA4ZSJ9LmZhLXNpZ24taW46YmVmb3Jle2NvbnRlbnQ6IlxmMDkwIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDkyIn0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLWxlbW9uLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDk0In0uZmEtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk1In0uZmEtc3F1YXJlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMDk2In0uZmEtYm9va21hcmstbzpiZWZvcmV7Y29udGVudDoiXGYwOTcifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS1mYWNlYm9vay1mOmJlZm9yZSwuZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjA5YiJ9LmZhLXVubG9jazpiZWZvcmV7Y29udGVudDoiXGYwOWMifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1mZWVkOmJlZm9yZSwuZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLWhkZC1vOmJlZm9yZXtjb250ZW50OiJcZjBhMCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtaGFuZC1vLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtby1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtby11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLW8tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBiMSJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtZ3JvdXA6YmVmb3JlLC5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS1jaGFpbjpiZWZvcmUsLmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtZmxhc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGMzIn0uZmEtY3V0OmJlZm9yZSwuZmEtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtY29weTpiZWZvcmUsLmZhLWZpbGVzLW86YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtcGFwZXJjbGlwOmJlZm9yZXtjb250ZW50OiJcZjBjNiJ9LmZhLWZsb3BweS1vOmJlZm9yZSwuZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtYmFyczpiZWZvcmUsLmZhLW5hdmljb246YmVmb3JlLC5mYS1yZW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjBjYyJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ0In0uZmEtZ29vZ2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtbW9uZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ2In0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNvbHVtbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGRiIn0uZmEtc29ydDpiZWZvcmUsLmZhLXVuc29ydGVkOmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtZGVzYzpiZWZvcmUsLmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LWFzYzpiZWZvcmUsLmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtcm90YXRlLWxlZnQ6YmVmb3JlLC5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLWdhdmVsOmJlZm9yZSwuZmEtbGVnYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZGFzaGJvYXJkOmJlZm9yZSwuZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS1jb21tZW50LW86YmVmb3Jle2NvbnRlbnQ6IlxmMGU1In0uZmEtY29tbWVudHMtbzpiZWZvcmV7Y29udGVudDoiXGYwZTYifS5mYS1ib2x0OmJlZm9yZSwuZmEtZmxhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS1jbGlwYm9hcmQ6YmVmb3JlLC5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1saWdodGJ1bGItbzpiZWZvcmV7Y29udGVudDoiXGYwZWIifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1jbG91ZC1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWQifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1iZWxsLW86YmVmb3Jle2NvbnRlbnQ6IlxmMGEyIn0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWN1dGxlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMGY1In0uZmEtZmlsZS10ZXh0LW86YmVmb3Jle2NvbnRlbnQ6IlxmMGY2In0uZmEtYnVpbGRpbmctbzpiZWZvcmV7Y29udGVudDoiXGYwZjcifS5mYS1ob3NwaXRhbC1vOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtZmlnaHRlci1qZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZiIn0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmQifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWxhcHRvcDpiZWZvcmV7Y29udGVudDoiXGYxMDkifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtbW9iaWxlLXBob25lOmJlZm9yZSwuZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiJcZjEwYyJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtbWFpbC1yZXBseTpiZWZvcmUsLmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjExMiJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtZm9sZGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE0In0uZmEtZm9sZGVyLW9wZW4tbzpiZWZvcmV7Y29udGVudDoiXGYxMTUifS5mYS1zbWlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLWZyb3duLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtbWVoLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtZ2FtZXBhZDpiZWZvcmV7Y29udGVudDoiXGYxMWIifS5mYS1rZXlib2FyZC1vOmJlZm9yZXtjb250ZW50OiJcZjExYyJ9LmZhLWZsYWctbzpiZWZvcmV7Y29udGVudDoiXGYxMWQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS10ZXJtaW5hbDpiZWZvcmV7Y29udGVudDoiXGYxMjAifS5mYS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjEyMSJ9LmZhLW1haWwtcmVwbHktYWxsOmJlZm9yZSwuZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXN0YXItaGFsZi1lbXB0eTpiZWZvcmUsLmZhLXN0YXItaGFsZi1mdWxsOmJlZm9yZSwuZmEtc3Rhci1oYWxmLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTIzIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMjUifS5mYS1jb2RlLWZvcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtY2hhaW4tYnJva2VuOmJlZm9yZSwuZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJiIn0uZmEtc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYyJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1wdXp6bGUtcGllY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTJlIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLXNoaWVsZDpiZWZvcmV7Y29udGVudDoiXGYxMzIifS5mYS1jYWxlbmRhci1vOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9LmZhLXJvY2tldDpiZWZvcmV7Y29udGVudDoiXGYxMzUifS5mYS1tYXhjZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTM2In0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjEzYiJ9LmZhLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1taW51cy1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYxNDcifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE0OSJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1wZW5jaWwtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YyJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1jb21wYXNzOmJlZm9yZXtjb250ZW50OiJcZjE0ZSJ9LmZhLWNhcmV0LXNxdWFyZS1vLWRvd246YmVmb3JlLC5mYS10b2dnbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtby11cDpiZWZvcmUsLmZhLXRvZ2dsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUsLmZhLXRvZ2dsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1ldXI6YmVmb3JlLC5mYS1ldXJvOmJlZm9yZXtjb250ZW50OiJcZjE1MyJ9LmZhLWdicDpiZWZvcmV7Y29udGVudDoiXGYxNTQifS5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtaW5yOmJlZm9yZSwuZmEtcnVwZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTU2In0uZmEtY255OmJlZm9yZSwuZmEtanB5OmJlZm9yZSwuZmEtcm1iOmJlZm9yZSwuZmEteWVuOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXJvdWJsZTpiZWZvcmUsLmZhLXJ1YjpiZWZvcmUsLmZhLXJ1YmxlOmJlZm9yZXtjb250ZW50OiJcZjE1OCJ9LmZhLWtydzpiZWZvcmUsLmZhLXdvbjpiZWZvcmV7Y29udGVudDoiXGYxNTkifS5mYS1iaXRjb2luOmJlZm9yZSwuZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS10ZXh0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLXNvcnQtYWxwaGEtYXNjOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtZGVzYzpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFtb3VudC1hc2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZGVzYzpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kZXNjOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNjYifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteW91dHViZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjE2YSJ9LmZhLWRyb3Bib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTZiIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWZsaWNrcjpiZWZvcmV7Y29udGVudDoiXGYxNmUifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGJ1Y2tldC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTcyIn0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtbG9uZy1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE3NSJ9LmZhLWxvbmctYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTc2In0uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9LmZhLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWxpbnV4OmJlZm9yZXtjb250ZW50OiJcZjE3YyJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLWZvdXJzcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODIifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLWdpdHRpcDpiZWZvcmUsLmZhLWdyYXRpcGF5OmJlZm9yZXtjb250ZW50OiJcZjE4NCJ9LmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLW1vb24tbzpiZWZvcmV7Y29udGVudDoiXGYxODYifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS12azpiZWZvcmV7Y29udGVudDoiXGYxODkifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS1yZW5yZW46YmVmb3Jle2NvbnRlbnQ6IlxmMThiIn0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9LmZhLWFycm93LWNpcmNsZS1vLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9LmZhLWFycm93LWNpcmNsZS1vLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkwIn0uZmEtY2FyZXQtc3F1YXJlLW8tbGVmdDpiZWZvcmUsLmZhLXRvZ2dsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWRvdC1jaXJjbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS10cnk6YmVmb3JlLC5mYS10dXJraXNoLWxpcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmV7Y29udGVudDoiXGYxOTYifS5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZXtjb250ZW50OiJcZjE5NyJ9LmZhLXNsYWNrOmJlZm9yZXtjb250ZW50OiJcZjE5OCJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS13b3JkcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLWJhbms6YmVmb3JlLC5mYS1pbnN0aXR1dGlvbjpiZWZvcmUsLmZhLXVuaXZlcnNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTljIn0uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3JlLC5mYS1tb3J0YXItYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEteWFob286YmVmb3Jle2NvbnRlbnQ6IlxmMTllIn0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTEifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFhMiJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdHVtYmxldXBvbjpiZWZvcmV7Y29udGVudDoiXGYxYTQifS5mYS1kZWxpY2lvdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1waWVkLXBpcGVyLXBwOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1zcG9vbjpiZWZvcmV7Y29udGVudDoiXGYxYjEifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWN1YmVzOmJlZm9yZXtjb250ZW50OiJcZjFiMyJ9LmZhLWJlaGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWI0In0uZmEtYmVoYW5jZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI1In0uZmEtc3RlYW06YmVmb3Jle2NvbnRlbnQ6IlxmMWI2In0uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNyJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtYXV0b21vYmlsZTpiZWZvcmUsLmZhLWNhcjpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYWI6YmVmb3JlLC5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1kZXZpYW50YXJ0OmJlZm9yZXtjb250ZW50OiJcZjFiZCJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZmlsZS1wZGYtbzpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXdvcmQtbzpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWxlLWV4Y2VsLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1wb3dlcnBvaW50LW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1pbWFnZS1vOmJlZm9yZSwuZmEtZmlsZS1waG90by1vOmJlZm9yZSwuZmEtZmlsZS1waWN0dXJlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1hcmNoaXZlLW86YmVmb3JlLC5mYS1maWxlLXppcC1vOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW8tbzpiZWZvcmUsLmZhLWZpbGUtc291bmQtbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLW1vdmllLW86YmVmb3JlLC5mYS1maWxlLXZpZGVvLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS1jb2RlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtdmluZTpiZWZvcmV7Y29udGVudDoiXGYxY2EifS5mYS1jb2RlcGVuOmJlZm9yZXtjb250ZW50OiJcZjFjYiJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWxpZmUtYm91eTpiZWZvcmUsLmZhLWxpZmUtYnVveTpiZWZvcmUsLmZhLWxpZmUtcmluZzpiZWZvcmUsLmZhLWxpZmUtc2F2ZXI6YmVmb3JlLC5mYS1zdXBwb3J0OmJlZm9yZXtjb250ZW50OiJcZjFjZCJ9LmZhLWNpcmNsZS1vLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLXJhOmJlZm9yZSwuZmEtcmViZWw6YmVmb3JlLC5mYS1yZXNpc3RhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFkMCJ9LmZhLWVtcGlyZTpiZWZvcmUsLmZhLWdlOmJlZm9yZXtjb250ZW50OiJcZjFkMSJ9LmZhLWdpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQyIn0uZmEtZ2l0OmJlZm9yZXtjb250ZW50OiJcZjFkMyJ9LmZhLWhhY2tlci1uZXdzOmJlZm9yZSwuZmEteS1jb21iaW5hdG9yLXNxdWFyZTpiZWZvcmUsLmZhLXljLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDQifS5mYS10ZW5jZW50LXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjFkNSJ9LmZhLXFxOmJlZm9yZXtjb250ZW50OiJcZjFkNiJ9LmZhLXdlY2hhdDpiZWZvcmUsLmZhLXdlaXhpbjpiZWZvcmV7Y29udGVudDoiXGYxZDcifS5mYS1wYXBlci1wbGFuZTpiZWZvcmUsLmZhLXNlbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFwZXItcGxhbmUtbzpiZWZvcmUsLmZhLXNlbmQtbzpiZWZvcmV7Y29udGVudDoiXGYxZDkifS5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWNpcmNsZS10aGluOmJlZm9yZXtjb250ZW50OiJcZjFkYiJ9LmZhLWhlYWRlcjpiZWZvcmV7Y29udGVudDoiXGYxZGMifS5mYS1wYXJhZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRkIn0uZmEtc2xpZGVyczpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1ib21iOmJlZm9yZXtjb250ZW50OiJcZjFlMiJ9LmZhLWZ1dGJvbC1vOmJlZm9yZSwuZmEtc29jY2VyLWJhbGwtbzpiZWZvcmV7Y29udGVudDoiXGYxZTMifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtYmlub2N1bGFyczpiZWZvcmV7Y29udGVudDoiXGYxZTUifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXNsaWRlc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWU3In0uZmEtdHdpdGNoOmJlZm9yZXtjb250ZW50OiJcZjFlOCJ9LmZhLXllbHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWU5In0uZmEtbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZWQifS5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9LmZhLWNjLXZpc2E6YmVmb3Jle2NvbnRlbnQ6IlxmMWYwIn0uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxZjEifS5mYS1jYy1kaXNjb3ZlcjpiZWZvcmV7Y29udGVudDoiXGYxZjIifS5mYS1jYy1hbWV4OmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jYy1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1iZWxsLXNsYXNoLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWY3In0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWV5ZWRyb3BwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWZiIn0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtYmlydGhkYXktY2FrZTpiZWZvcmV7Y29udGVudDoiXGYxZmQifS5mYS1hcmVhLWNoYXJ0OmJlZm9yZXtjb250ZW50OiJcZjFmZSJ9LmZhLXBpZS1jaGFydDpiZWZvcmV7Y29udGVudDoiXGYyMDAifS5mYS1saW5lLWNoYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWxhc3RmbTpiZWZvcmV7Y29udGVudDoiXGYyMDIifS5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjIwMyJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLWJpY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA2In0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWlveGhvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0uZmEtYW5nZWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZjIwOSJ9LmZhLWNjOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWlsczpiZWZvcmUsLmZhLXNoZWtlbDpiZWZvcmUsLmZhLXNoZXFlbDpiZWZvcmV7Y29udGVudDoiXGYyMGIifS5mYS1tZWFucGF0aDpiZWZvcmV7Y29udGVudDoiXGYyMGMifS5mYS1idXlzZWxsYWRzOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9LmZhLWNvbm5lY3RkZXZlbG9wOmJlZm9yZXtjb250ZW50OiJcZjIwZSJ9LmZhLWRhc2hjdWJlOmJlZm9yZXtjb250ZW50OiJcZjIxMCJ9LmZhLWZvcnVtYmVlOmJlZm9yZXtjb250ZW50OiJcZjIxMSJ9LmZhLWxlYW5wdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjEyIn0uZmEtc2VsbHN5OmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1za3lhdGxhczpiZWZvcmV7Y29udGVudDoiXGYyMTYifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2FydC1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjIxOCJ9LmZhLWRpYW1vbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE5In0uZmEtc2hpcDpiZWZvcmV7Y29udGVudDoiXGYyMWEifS5mYS11c2VyLXNlY3JldDpiZWZvcmV7Y29udGVudDoiXGYyMWIifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLXN0cmVldC12aWV3OmJlZm9yZXtjb250ZW50OiJcZjIxZCJ9LmZhLWhlYXJ0YmVhdDpiZWZvcmV7Y29udGVudDoiXGYyMWUifS5mYS12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjEifS5mYS1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyMiJ9LmZhLW1lcmN1cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjIzIn0uZmEtaW50ZXJzZXg6YmVmb3JlLC5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjI1In0uZmEtdmVudXMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNiJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLXZlbnVzLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjI4In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtdjpiZWZvcmV7Y29udGVudDoiXGYyMmEifS5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZXtjb250ZW50OiJcZjIyYiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1nZW5kZXJsZXNzOmJlZm9yZXtjb250ZW50OiJcZjIyZCJ9LmZhLWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZXtjb250ZW50OiJcZjIzMCJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXdoYXRzYXBwOmJlZm9yZXtjb250ZW50OiJcZjIzMiJ9LmZhLXNlcnZlcjpiZWZvcmV7Y29udGVudDoiXGYyMzMifS5mYS11c2VyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM0In0uZmEtdXNlci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS1iZWQ6YmVmb3JlLC5mYS1ob3RlbDpiZWZvcmV7Y29udGVudDoiXGYyMzYifS5mYS12aWFjb2luOmJlZm9yZXtjb250ZW50OiJcZjIzNyJ9LmZhLXRyYWluOmJlZm9yZXtjb250ZW50OiJcZjIzOCJ9LmZhLXN1YndheTpiZWZvcmV7Y29udGVudDoiXGYyMzkifS5mYS1tZWRpdW06YmVmb3Jle2NvbnRlbnQ6IlxmMjNhIn0uZmEteS1jb21iaW5hdG9yOmJlZm9yZSwuZmEteWM6YmVmb3Jle2NvbnRlbnQ6IlxmMjNiIn0uZmEtb3B0aW4tbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGYyM2MifS5mYS1vcGVuY2FydDpiZWZvcmV7Y29udGVudDoiXGYyM2QifS5mYS1leHBlZGl0ZWRzc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMjNlIn0uZmEtYmF0dGVyeS00OmJlZm9yZSwuZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktMzpiZWZvcmUsLmZhLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjQxIn0uZmEtYmF0dGVyeS0yOmJlZm9yZSwuZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLWJhdHRlcnktMTpiZWZvcmUsLmZhLWJhdHRlcnktcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDMifS5mYS1iYXR0ZXJ5LTA6YmVmb3JlLC5mYS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjI0NCJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0OCJ9LmZhLXN0aWNreS1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjI0OSJ9LmZhLXN0aWNreS1ub3RlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjRhIn0uZmEtY2MtamNiOmJlZm9yZXtjb250ZW50OiJcZjI0YiJ9LmZhLWNjLWRpbmVycy1jbHViOmJlZm9yZXtjb250ZW50OiJcZjI0YyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRlIn0uZmEtaG91cmdsYXNzLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjUwIn0uZmEtaG91cmdsYXNzLTE6YmVmb3JlLC5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtaG91cmdsYXNzLTI6YmVmb3JlLC5mYS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNTIifS5mYS1ob3VyZ2xhc3MtMzpiZWZvcmUsLmZhLWhvdXJnbGFzcy1lbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUzIn0uZmEtaG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjI1NCJ9LmZhLWhhbmQtZ3JhYi1vOmJlZm9yZSwuZmEtaGFuZC1yb2NrLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjU1In0uZmEtaGFuZC1wYXBlci1vOmJlZm9yZSwuZmEtaGFuZC1zdG9wLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjU2In0uZmEtaGFuZC1zY2lzc29ycy1vOmJlZm9yZXtjb250ZW50OiJcZjI1NyJ9LmZhLWhhbmQtbGl6YXJkLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjU4In0uZmEtaGFuZC1zcG9jay1vOmJlZm9yZXtjb250ZW50OiJcZjI1OSJ9LmZhLWhhbmQtcG9pbnRlci1vOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmQtcGVhY2UtbzpiZWZvcmV7Y29udGVudDoiXGYyNWIifS5mYS10cmFkZW1hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMjVjIn0uZmEtcmVnaXN0ZXJlZDpiZWZvcmV7Y29udGVudDoiXGYyNWQifS5mYS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZXtjb250ZW50OiJcZjI1ZSJ9LmZhLWdnOmJlZm9yZXtjb250ZW50OiJcZjI2MCJ9LmZhLWdnLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyNjEifS5mYS10cmlwYWR2aXNvcjpiZWZvcmV7Y29udGVudDoiXGYyNjIifS5mYS1vZG5va2xhc3NuaWtpOmJlZm9yZXtjb250ZW50OiJcZjI2MyJ9LmZhLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjI2NCJ9LmZhLWdldC1wb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjY1In0uZmEtd2lraXBlZGlhLXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjY2In0uZmEtc2FmYXJpOmJlZm9yZXtjb250ZW50OiJcZjI2NyJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1maXJlZm94OmJlZm9yZXtjb250ZW50OiJcZjI2OSJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjI2YiJ9LmZhLXRlbGV2aXNpb246YmVmb3JlLC5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS1jb250YW86YmVmb3Jle2NvbnRlbnQ6IlxmMjZkIn0uZmEtNTAwcHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjZlIn0uZmEtYW1hem9uOmJlZm9yZXtjb250ZW50OiJcZjI3MCJ9LmZhLWNhbGVuZGFyLXBsdXMtbzpiZWZvcmV7Y29udGVudDoiXGYyNzEifS5mYS1jYWxlbmRhci1taW51cy1vOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXRpbWVzLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FsZW5kYXItY2hlY2stbzpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1pbmR1c3RyeTpiZWZvcmV7Y29udGVudDoiXGYyNzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXAtbzpiZWZvcmV7Y29udGVudDoiXGYyNzgifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtY29tbWVudGluZzpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50aW5nLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjdiIn0uZmEtaG91eno6YmVmb3Jle2NvbnRlbnQ6IlxmMjdjIn0uZmEtdmltZW86YmVmb3Jle2NvbnRlbnQ6IlxmMjdkIn0uZmEtYmxhY2stdGllOmJlZm9yZXtjb250ZW50OiJcZjI3ZSJ9LmZhLWZvbnRpY29uczpiZWZvcmV7Y29udGVudDoiXGYyODAifS5mYS1yZWRkaXQtYWxpZW46YmVmb3Jle2NvbnRlbnQ6IlxmMjgxIn0uZmEtZWRnZTpiZWZvcmV7Y29udGVudDoiXGYyODIifS5mYS1jcmVkaXQtY2FyZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjgzIn0uZmEtY29kaWVwaWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg0In0uZmEtbW9keDpiZWZvcmV7Y29udGVudDoiXGYyODUifS5mYS1mb3J0LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg2In0uZmEtdXNiOmJlZm9yZXtjb250ZW50OiJcZjI4NyJ9LmZhLXByb2R1Y3QtaHVudDpiZWZvcmV7Y29udGVudDoiXGYyODgifS5mYS1taXhjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYyODkifS5mYS1zY3JpYmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjhhIn0uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4YiJ9LmZhLXBhdXNlLWNpcmNsZS1vOmJlZm9yZXtjb250ZW50OiJcZjI4YyJ9LmZhLXN0b3AtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4ZCJ9LmZhLXN0b3AtY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjhlIn0uZmEtc2hvcHBpbmctYmFnOmJlZm9yZXtjb250ZW50OiJcZjI5MCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWJsdWV0b290aDpiZWZvcmV7Y29udGVudDoiXGYyOTMifS5mYS1ibHVldG9vdGgtYjpiZWZvcmV7Y29udGVudDoiXGYyOTQifS5mYS1wZXJjZW50OmJlZm9yZXtjb250ZW50OiJcZjI5NSJ9LmZhLWdpdGxhYjpiZWZvcmV7Y29udGVudDoiXGYyOTYifS5mYS13cGJlZ2lubmVyOmJlZm9yZXtjb250ZW50OiJcZjI5NyJ9LmZhLXdwZm9ybXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjk4In0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjlhIn0uZmEtd2hlZWxjaGFpci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjliIn0uZmEtcXVlc3Rpb24tY2lyY2xlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjljIn0uZmEtYmxpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjlkIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtdm9sdW1lLWNvbnRyb2wtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlLC5mYS1hc2wtaW50ZXJwcmV0aW5nOmJlZm9yZXtjb250ZW50OiJcZjJhMyJ9LmZhLWRlYWY6YmVmb3JlLC5mYS1kZWFmbmVzczpiZWZvcmUsLmZhLWhhcmQtb2YtaGVhcmluZzpiZWZvcmV7Y29udGVudDoiXGYyYTQifS5mYS1nbGlkZTpiZWZvcmV7Y29udGVudDoiXGYyYTUifS5mYS1nbGlkZS1nOmJlZm9yZXtjb250ZW50OiJcZjJhNiJ9LmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3JlLC5mYS1zaWduaW5nOmJlZm9yZXtjb250ZW50OiJcZjJhNyJ9LmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtdmlhZGVvOmJlZm9yZXtjb250ZW50OiJcZjJhOSJ9LmZhLXZpYWRlby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmFhIn0uZmEtc25hcGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmFiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmFjIn0uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhZCJ9LmZhLXBpZWQtcGlwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmFlIn0uZmEtZmlyc3Qtb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmIwIn0uZmEteW9hc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmIxIn0uZmEtdGhlbWVpc2xlOmJlZm9yZXtjb250ZW50OiJcZjJiMiJ9LmZhLWdvb2dsZS1wbHVzLWNpcmNsZTpiZWZvcmUsLmZhLWdvb2dsZS1wbHVzLW9mZmljaWFsOmJlZm9yZXtjb250ZW50OiJcZjJiMyJ9LmZhLWZhOmJlZm9yZSwuZmEtZm9udC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjJiNCJ9LnNyLW9ubHl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7Ym9yZGVyOjB9LnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7cG9zaXRpb246c3RhdGljO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtjbGlwOmF1dG99"}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/1508740770h6.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.885Z","timestamp":1785126645885,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/1508740770h6.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 106426\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":106426,"size_decoded":106672,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"505e3ff85794dd76166f4d414bfbbfe1","sha1":"6ecf1666fd882cdf591f33e8e2cec873837be2ff","sha256":"95b055b12c2145d64def94869de581b44bcb102c0bee2021b16af3844129dcdd","sha512":"4a1ac8cdc4cdf1cfab6c1e467004a97797e8a4301172986476e144cf91a2bed72df62730ddcc826bd75bbc9b519a89f938e29c9274ca64b98f07ff8d85f061da","ssdeep":"1536:xGzrzo0lVXrAvY54/8u2JaJEXSLHpCOW9M7S66CRZVyx0oBEORfM29Yoqz:8/zhPso4ENJaJIsIOJ2ARZVq0oXXeoqz","tlshash":"b8a301a7dd9fc871d9b87b7aa2e6b140e67c21a40247f2a08d41c44603fd621e6bdf61","first_seen":"2025-03-17T20:39:33.122125Z","last_seen":"2026-07-27T04:47:12.559918Z","times_seen":9,"resource_available":false,"data":"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IYykWAaXLoPT3N/7WeA/yPd1pxIAd0BXqKwRXYHcDRtDIBCAp4RAAORgvAH8MvCnwOeBVwC4MqUcWjdn5BMTbXw5G8fekC2NraB1EW5jzL3CiLzCkc6ooWXzUPHfbyRtoqqu8oqASZiLyogUn0wmh3FI9gZziTox11Xv9fShhvIIeINU+x1UDxE5Bt4jeS/l2AV9C+QwVgaBQGBXPDUE4iEH45eAr6D6h4j8HHAdSKqt6xNyfUaen2Hfu/xCWS2QVU0u9mHDPoElPalqq/cjEID54VBXAjk62lxU9eFQSIKVGZsvkf6FHLawRDJCv0nKtHqKSE67DcCPgNdI+Zfuo3qk39i7TSAQCDxBPGk33g8G5S3gFJE3gN8krUxeZpKX9cFi0PWAnCjsK+wpslS4OsMCZAGyZ4K//Ofg1EDZdqCQ7ArnlOPirqruM6Skehbp3G8CNDprtnkqJW5YAXdRXeUuvJUXNCPI/fSvpNv+HmmjnzUp8G1EZMxkcS+7VK3TMaCyQiI9RiAQePJ4KlcgBjkYlyR331dBfwXkt0BvgFxD9Tp7umRfB/YVuZYIhKUy7HvVlea0GvbPCIREGmtHDGaYLvs2kI3UUlNyp30Y1tkDa43ISE17sQJd5+PT7Lo6ZlvDHZI9AtD/IuVJGklqpZqSO23uM4fHUiAQeNrxVBNIDzkYvw78Oqq/hsgXgJeA/baUc5kVTdlbr2pVNY3DRr2b8PaHXr2UbAcUGwNHiN7LZf6bRAgz6Osgx2FwDgQCzyqeThXWxfhH4FuI7KNcA30Fkc+i/CLCF4AbIJ9E+CxQ1U+nLu6ikoJFPR/mk/dR3sp7XvwQ9CjZHcT2bcjlZE3d+2GkbOCjkDygsmJL1nmdEwgEAs8kPlYrkB5yML4IvIDyIsLLwDXQ68Cnc4kBdB/kBZJKaYVoUiMpp4g8wFxek6E6kwT3QY8TCaQUG3preZ9AIBAIFHysCeT9IAfjfiIU+RyqRyD39BvLux91vwKBQOBZwDNNIIFAIBB4fPggFuVAIBAIBDYQBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGdEAQSCAQCgZ0QBBIIBAKBnRAEEggEAoGd8H/tkvMiTxOS8QAAAABJRU5ErkJggg=="}},"time_used":1061,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1052,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-V84XP8WGXY","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.537Z","timestamp":1785126646537,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-V84XP8WGXY HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\nexpires: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 166337\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":488553,"size_decoded":166941,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6033)","md5":"8c143b6c0238da9e9cc4039085776e79","sha1":"cb2b05a5c84db41e193555eb85e9e40fef1074bb","sha256":"610f3d06fe298660bc050413a379ee7389d29a7dbab7ae17691f4664e88f5f8f","sha512":"cd828bb60ad7d8acebdf74f02352e9ddfefe1d891de8b3b6228ed490de61fea7a2a8bf4c4a6867edbc476e7871fb37229f7ebd773b292208ff1629782d2973f6","ssdeep":"6144:/yHuRU0jIWXbP69FMxmRknhqsScPmfxNf3EjUxVGaZoXzRYGg:/8uC1WLP69VwqxVZOvg","tlshash":"f3a4f8cdb3d674225396f478903f018ba57b29e2b44cc899f189cce42e7465a8267f7c","first_seen":"2026-07-27T02:47:46.067086Z","last_seen":"2026-07-27T06:55:59.803913Z","times_seen":39,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiZ29vZ2xlLm5vIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6MH1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fb2d0XzFwX2RhdGFfdjIiLCJwcmlvcml0eSI6MTMsInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfYXV0b1Bob25lRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIjpbImxpc3QiLFsibWFwIiwiZXhjbHVzaW9uU2VsZWN0b3IiLCIiXV0sInZ0cF9pc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvQWRkcmVzc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjR9LHsiZnVuY3Rpb24iOiJfX2NjZF9nYV9maXJzdCIsInByaW9yaXR5IjoxMiwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6MTh9LHsiZnVuY3Rpb24iOiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIiwicHJpb3JpdHkiOjExLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WODRYUDhXR1hZIiwidnRwX2ZvcmVpZ25UbGRNYWNyb1Jlc3VsdCI6WyJtYWNybyIsMV0sInZ0cF9pc0NoaW5hVmlwUmVnaW9uTWFjcm9SZXN1bHQiOlsibWFjcm8iLDJdLCJ0YWdfaWQiOjE3fSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfcmVnc2NvcGUiLCJwcmlvcml0eSI6MTAsInZ0cF9zZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicmVkYWN0RmllbGRHcm91cCIsIkRFVklDRV9BTkRfR0VPIiwiZGlzYWxsb3dBbGxSZWdpb25zIixmYWxzZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLCIiXSxbIm1hcCIsInJlZGFjdEZpZWxkR3JvdXAiLCJHT09HTEVfU0lHTkFMUyIsImRpc2FsbG93QWxsUmVnaW9ucyIsdHJ1ZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLCIiXV0sInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVY4NFhQOFdHWFkiLCJ0YWdfaWQiOjE2fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZG93bmxvYWQiLCJwcmlvcml0eSI6OSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVY4NFhQOFdHWFkiLCJ0YWdfaWQiOjE1fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5Ijo4LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6MTR9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIsInByaW9yaXR5Ijo3LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6MTN9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9wYWdlX3ZpZXciLCJwcmlvcml0eSI6NiwidnRwX2hpc3RvcnlFdmVudHMiOnRydWUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WODRYUDhXR1hZIiwidGFnX2lkIjoxMn0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3Njcm9sbCIsInByaW9yaXR5Ijo1LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9zaXRlX3NlYXJjaCIsInByaW9yaXR5Ijo0LCJ2dHBfc2VhcmNoUXVlcnlQYXJhbXMiOiJxLHMsc2VhcmNoLHF1ZXJ5LGtleXdvcmQiLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6MTB9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV92aWRlbyIsInByaW9yaXR5IjozLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6OX0seyJmdW5jdGlvbiI6Il9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIsInByaW9yaXR5IjoyLCJ2dHBfY29udmVyc2lvblJ1bGVzIjpbImxpc3QiLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwiY2xvc2VfY29udmVydF9sZWFkXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19Il0sWyJtYXAiLCJtYXRjaGluZ1J1bGVzIiwie1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJxdWFsaWZ5X2xlYWRcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInB1cmNoYXNlXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19Il1dLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WODRYUDhXR1hZIiwidGFnX2lkIjo4fSx7ImZ1bmN0aW9uIjoiX19jY2RfYXV0b19yZWRhY3QiLCJwcmlvcml0eSI6MSwidnRwX3JlZGFjdEVtYWlsIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WODRYUDhXR1hZIiwidGFnX2lkIjo3fSx7ImZ1bmN0aW9uIjoiX19nY3QiLCJ2dHBfdHJhY2tpbmdJZCI6IkctVjg0WFA4V0dYWSIsInZ0cF9zZXNzaW9uRHVyYXRpb24iOjAsInRhZ19pZCI6MX0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2xhc3QiLCJwcmlvcml0eSI6MCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVjg0WFA4V0dYWSIsInRhZ19pZCI6Nn1dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiwxM11dLFtbImlmIiwxXSxbImFkZCIsMCwxNCwxMiwxMSwxMCw5LDgsNyw2LDUsNCwzLDIsMV1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fYyIsWzQ2LCJhIl0sWzM2LFsxNyxbMTUsImEiXSwidmFsdWUiXV1dCiAsWzUwLCJfX2NjZF9hdXRvX3JlZGFjdCIsWzQ2LCJhIl0sWzUwLCJ2IixbNDYsImFGIl0sWzM2LFsyLFsxNSwiYUYiXSwicmVwbGFjZSIsWzcsWzE1LCJ1Il0sIlxcJDEiXV1dXSxbNTAsInciLFs0NiwiYUYiXSxbNTIsImFHIixbMzAsWyJjIixbMTUsImFGIl1dLFsxNSwiYUYiXV1dLFs1MiwiYUgiLFs3XV0sWzY1LCJhSSIsWzIsWzE1LCJhRyJdLCJzcGxpdCIsWzcsIiJdXSxbNDYsWzUzLFs1MiwiYUoiLFs3LFsidiIsWzE1LCJhSSJdXV1dLFs1MiwiYUsiLFsiZCIsWzE1LCJhSSJdXV0sWzIyLFsxMixbMTUsImFLIl0sWzQ1XV0sWzQ2LFs1MyxbMzYsWyJkIixbInYiLFsxNSwiYUYiXV1dXV1dXSxbMjIsWzIxLFsxNSwiYUsiXSxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhSiJdLCJwdXNoIixbNyxbMTUsImFLIl1dXSxbMjIsWzIxLFsxNSwiYUkiXSxbMixbMTUsImFJIl0sInRvTG93ZXJDYXNlIixbN11dXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWyJkIixbMixbMTUsImFJIl0sInRvTG93ZXJDYXNlIixbN11dXV1dXV0sWzQ2LFsyMixbMjEsWzE1LCJhSSJdLFsyLFsxNSwiYUkiXSwidG9VcHBlckNhc2UiLFs3XV1dLFs0NixbNTMsWzIsWzE1LCJhSiJdLCJwdXNoIixbNyxbImQiLFsyLFsxNSwiYUkiXSwidG9VcHBlckNhc2UiLFs3XV1dXV1dXV1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFKIl0sImxlbmd0aCJdLDFdLFs0NixbNTMsWzIsWzE1LCJhSCJdLCJwdXNoIixbNyxbMCxbMCwiKD86IixbMixbMTUsImFKIl0sImpvaW4iLFs3LCJ8Il1dXSwiKSJdXV1dXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzE2LFsxNSwiYUoiXSwwXV1dXV1dXV1dLFszNixbMixbMTUsImFIIl0sImpvaW4iLFs3LCIiXV1dXSxbNTAsIngiLFs0NiwiYUYiLCJhRyIsImFIIl0sWzUyLCJhSSIsWyJ6IixbMTUsImFGIl0sWzE1LCJhSCJdXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFsyMixbMjgsWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFs0MSwiYUoiXSxbMywiYUoiLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNjUsImFLIixbMTUsImFHIl0sWzQ2LFs1MyxbNTIsImFMIixbNyxbInYiLFsxNSwiYUsiXV0sWyJ3IixbMTUsImFLIl1dXV0sWzY1LCJhTSIsWzE1LCJhTCJdLFs0NixbNTMsWzUyLCJhTiIsWzMwLFsxNixbMTUsInQiXSxbMTUsImFNIl1dLFs0MyxbMTUsInQiXSxbMTUsImFNIl0sWyJiIixbMCxbMCwiKFs/Jl0iLFsxNSwiYU0iXV0sIj0pKFteJl0qKSJdLCJnaSJdXV1dLFszLCJhSiIsWzIsWzE1LCJhSiJdLCJyZXBsYWNlIixbNyxbMTUsImFOIl0sWzAsIiQxIixbMTUsInIiXV1dXV1dXV1dXV0sWzIyLFsyMCxbMTUsImFKIl0sWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs0NixbMzYsWzE1LCJhRiJdXV1dLFsyMixbMjAsWzE2LFsxNSwiYUoiXSwwXSwiJiJdLFs0NixbMywiYUoiLFsyLFsxNSwiYUoiXSwic3Vic3RyaW5nIixbNywxXV1dXV0sWzIyLFsyMSxbMTYsWzE1LCJhSiJdLDBdLCI/Il0sWzQ2LFszLCJhSiIsWzAsIj8iLFsxNSwiYUoiXV1dXV0sWzIyLFsyMCxbMTUsImFKIl0sIj8iXSxbNDYsWzMsImFKIiwiIl1dXSxbNDMsWzE1LCJhSSJdLCJzZWFyY2giLFsxNSwiYUoiXV0sWzM2LFsiYUEiLFsxNSwiYUkiXSxbMTUsImFIIl1dXV0sWzUwLCJ6IixbNDYsImFGIiwiYUciXSxbMjIsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlBBVEgiXV0sWzQ2LFs1MyxbMywiYUYiLFswLFsxNSwieSJdLFsxNSwiYUYiXV1dXV1dLFszNixbImYiLFsxNSwiYUYiXV1dXSxbNTAsImFBIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIiwiIl0sWzIyLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJVUkwiXV0sWzQ2LFs1MyxbNDEsImFJIl0sWzMsImFJIiwiIl0sWzIyLFszMCxbMTcsWzE1LCJhRiJdLCJ1c2VybmFtZSJdLFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl1dLFs0NixbNTMsWzMsImFJIixbMCxbMTUsImFJIl0sWzAsWzAsWzAsWzE3LFsxNSwiYUYiXSwidXNlcm5hbWUiXSxbMzksWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXSwiOiIsIiJdXSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdXSwiQCJdXV1dXV0sWzMsImFIIixbMCxbMCxbMCxbMTcsWzE1LCJhRiJdLCJwcm90b2NvbCJdLCIvLyJdLFsxNSwiYUkiXV0sWzE3LFsxNSwiYUYiXSwiaG9zdCJdXV1dXV0sWzM2LFswLFswLFswLFsxNSwiYUgiXSxbMTcsWzE1LCJhRiJdLCJwYXRobmFtZSJdXSxbMTcsWzE1LCJhRiJdLCJzZWFyY2giXV0sWzE3LFsxNSwiYUYiXSwiaGFzaCJdXV1dLFs1MCwiYUIiLFs0NiwiYUYiLCJhRyJdLFs0MSwiYUgiXSxbMywiYUgiLFsyLFsxNSwiYUYiXSwicmVwbGFjZSIsWzcsWzE1LCJuIl0sWzE1LCJyIl1dXV0sWzIyLFszMCxbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiVVJMIl1dLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJQQVRIIl1dXSxbNDYsWzUzLFs1MiwiYUkiLFsieiIsWzE1LCJhSCJdLFsxNSwiYUciXV1dLFsyMixbMjAsWzE1LCJhSSJdLFs0NF1dLFs0NixbMzYsWzE1LCJhSCJdXV1dLFs1MiwiYUoiLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNTIsImFLIixbMixbMTUsImFKIl0sInJlcGxhY2UiLFs3LFsxNSwibyJdLFsxNSwiciJdXV1dLFsyMixbMjAsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzQ2LFszNixbMTUsImFIIl1dXV0sWzQzLFsxNSwiYUkiXSwic2VhcmNoIixbMTUsImFLIl1dLFszLCJhSCIsWyJhQSIsWzE1LCJhSSJdLFsxNSwiYUciXV1dXV1dLFszNixbMTUsImFIIl1dXSxbNTAsImFDIixbNDYsImFGIl0sWzIyLFsyMCxbMTUsImFGIl0sWzE1LCJxIl1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiUEFUSCJdXV1dLFs0NixbMjIsWzIxLFsyLFsxNSwicCJdLCJpbmRleE9mIixbNyxbMTUsImFGIl1dXSxbMjcsMV1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiVVJMIl1dXV0sWzQ2LFs1MyxbMzYsWzE3LFsxNSwicyJdLCJURVhUIl1dXV1dXV1dLFs1MCwiYUQiLFs0NiwiYUYiLCJhRyJdLFs0MSwiYUgiXSxbMywiYUgiLGZhbHNlXSxbNTIsImFJIixbImUiLFsxNSwiYUYiXV1dLFszOCxbMTUsImFJIl0sWzQ2LCJzdHJpbmciLCJhcnJheSIsIm9iamVjdCJdLFs0NixbNSxbNDYsWzUyLCJhSiIsWyJhQiIsWzE1LCJhRiJdLFsxNSwiYUciXV1dLFsyMixbMjEsWzE1LCJhRiJdLFsxNSwiYUoiXV0sWzQ2LFs1MyxbMzYsWzE1LCJhSiJdXV1dXSxbNF1dXSxbNSxbNDYsWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFGIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbImFEIixbMTYsWzE1LCJhRiJdLFsxNSwiYUsiXV0sWzE3LFsxNSwicyJdLCJURVhUIl1dXSxbMjIsWzIxLFsxNSwiYUwiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImFGIl0sWzE1LCJhSyJdLFsxNSwiYUwiXV0sWzMsImFIIix0cnVlXV1dXV1dXV0sWzRdXV0sWzUsWzQ2LFs1NCwiYUsiLFsxNSwiYUYiXSxbNDYsWzUzLFs1MiwiYUwiLFsiYUQiLFsxNixbMTUsImFGIl0sWzE1LCJhSyJdXSxbMTcsWzE1LCJzIl0sIlRFWFQiXV1dLFsyMixbMjEsWzE1LCJhTCJdLFs0NF1dLFs0NixbNTMsWzQzLFsxNSwiYUYiXSxbMTUsImFLIl0sWzE1LCJhTCJdXSxbMywiYUgiLHRydWVdXV1dXV1dLFs0XV1dXV0sWzM2LFszOSxbMTUsImFIIl0sWzE1LCJhRiJdLFs0NF1dXV0sWzUwLCJhRSIsWzQ2LCJhRiIsImFHIl0sWzUyLCJhSCIsWzMwLFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXV1dLFs3XV1dLFsyMixbMjAsWzIsWzE1LCJhSCJdLCJpbmRleE9mIixbNyxbMTUsImFHIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJhSCJdLCJwdXNoIixbNyxbMTUsImFHIl1dXV1dXSxbMixbMTUsImFGIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl0sWzE1LCJhSCJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJkZWNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJlbmNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImoiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFs1MiwiayIsWzE3LFsxNSwiYSJdLCJyZWRhY3RFbWFpbCJdXSxbNTIsImwiLFsxNyxbMTUsImEiXSwicmVkYWN0UXVlcnlQYXJhbXMiXV0sWzUyLCJtIixbMzksWzE1LCJsIl0sWzIsWzE1LCJsIl0sInNwbGl0IixbNywiLCJdXSxbN11dXSxbMjIsWzEsWzI4LFsxNyxbMTUsIm0iXSwibGVuZ3RoIl1dLFsyOCxbMTUsImsiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwibiIsWyJiIiwiW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcXC5bQS1aXXsyLH0iLCJnaSJdXSxbNTIsIm8iLFsiYiIsWzAsIihbQS1aMC05Ll8tXXwlMjV8JTJCKSslNDBbQS1aMC05Li1dIiwiK1xcLltBLVpdezIsfSJdLCJnaSJdXSxbNTIsInAiLFs3LCJwYWdlX2xvY2F0aW9uIiwicGFnZV9yZWZlcnJlciIsInBhZ2VfcGF0aCIsImxpbmtfdXJsIiwidmlkZW9fdXJsIiwiZm9ybV9kZXN0aW5hdGlvbiJdXSxbNTIsInEiLCJwYWdlX3BhdGgiXSxbNTIsInIiLCIocmVkYWN0ZWQpIl0sWzUyLCJzIixbOCwiVEVYVCIsMCwiVVJMIiwxLCJQQVRIIiwyXV0sWzUyLCJ0IixbOF1dLFs1MiwidSIsWyJiIiwiKFtcXFxcXiQufD8qKygpe31dfFxcW3xcXFspIiwiZyJdXSxbNTIsInkiLCJodHRwOi8vLiJdLFsiZyIsWzE1LCJqIl0sWzUxLCIiLFs3LCJhRiJdLFsyMixbMTUsImsiXSxbNDYsWzUzLFs1MiwiYUciLFsyLFsxNSwiYUYiXSwiZ2V0SGl0S2V5cyIsWzddXV0sWzY1LCJhSCIsWzE1LCJhRyJdLFs0NixbNTMsWzIyLFsyMCxbMTUsImFIIl0sIl9zc3RfcGFyYW1ldGVycyJdLFs0NixbNl1dXSxbNTIsImFJIixbMixbMTUsImFGIl0sImdldEhpdERhdGEiLFs3LFsxNSwiYUgiXV1dXSxbMjIsWzI4LFsxNSwiYUkiXV0sWzQ2LFs2XV1dLFs1MiwiYUoiLFsiYUMiLFsxNSwiYUgiXV1dLFs1MiwiYUsiLFsiYUQiLFsxNSwiYUkiXSxbMTUsImFKIl1dXSxbMjIsWzIxLFsxNSwiYUsiXSxbNDRdXSxbNDYsWzUzLFsyLFsxNSwiYUYiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsiYUUiLFsxNSwiYUYiXSxbMzksWzIsWzE1LCJhRiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCTyJdXV0sWzE3LFsxNSwiaSJdLCJXIl0sWzE3LFsxNSwiaSJdLCJPIl1dXV1dXV1dXV1dXSxbMjIsWzE3LFsxNSwibSJdLCJsZW5ndGgiXSxbNDYsWzUzLFs2NSwiYUciLFsxNSwicCJdLFs0NixbNTMsWzUyLCJhSCIsWzIsWzE1LCJhRiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFHIl1dXV0sWzIyLFsyOCxbMTUsImFIIl1dLFs0NixbNl1dXSxbNTIsImFJIixbMzksWzIwLFsxNSwiYUciXSxbMTUsInEiXV0sWzE3LFsxNSwicyJdLCJQQVRIIl0sWzE3LFsxNSwicyJdLCJVUkwiXV1dLFs1MiwiYUoiLFsieCIsWzE1LCJhSCJdLFsxNSwibSJdLFsxNSwiYUkiXV1dLFsyMixbMjEsWzE1LCJhSiJdLFsxNSwiYUgiXV0sWzQ2LFs1MyxbMixbMTUsImFGIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYUciXSxbMTUsImFKIl1dXSxbImFFIixbMTUsImFGIl0sWzM5LFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQk8iXV1dLFsxNyxbMTUsImkiXSwiWCJdLFsxNyxbMTUsImkiXSwiUCJdXV1dXV1dXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIixbNDYsImEiXSxbMjIsWzMwLFsyOCxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdXSxbMjAsWzE3LFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIiwiZmlyc3RfdmlzaXQiXSxbNTIsImciLCJzZXNzaW9uX3N0YXJ0Il0sWzQxLCJoIl0sWzQxLCJpIl0sWyJkIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaiJdLFs1MiwiayIsWzgsInByZUhpdCIsWzE1LCJqIl1dXSxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiUCJdLHRydWVdXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQVYiXSx0cnVlXV0sWzRdXV1dXV1dLFsyMixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQVoiXV1dLFs0NixbNTMsWzIyLFsyOCxbMTUsImgiXV0sWzQ2LFs1MyxbNTIsImwiLFsiYiIsWzE1LCJqIl0sWzgsIm9taXRIaXREYXRhIix0cnVlLCJvbWl0TWV0YWRhdGEiLHRydWVdXV0sWzIsWzE1LCJsIl0sInNldEV2ZW50TmFtZSIsWzcsWzE1LCJmIl1dXSxbMywiaCIsWzgsInByZUhpdCIsWzE1LCJsIl1dXV1dXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImgiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQkEiXSx0cnVlXV0sWzRdXV1dXV1dXV1dLFsyMixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQkwiXV1dLFs0NixbNTMsWzIyLFsyOCxbMTUsImkiXV0sWzQ2LFs1MyxbNTIsImwiLFsiYiIsWzE1LCJqIl0sWzgsIm9taXRIaXREYXRhIix0cnVlLCJvbWl0TWV0YWRhdGEiLHRydWVdXV0sWzIsWzE1LCJsIl0sInNldEV2ZW50TmFtZSIsWzcsWzE1LCJnIl1dXSxbMywiaSIsWzgsInByZUhpdCIsWzE1LCJsIl1dXV1dXSxbNjUsImwiLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJsIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImkiXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQk0iXSx0cnVlXV0sWzRdXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXQogLFs1MCwiX19jY2RfZW1fZG93bmxvYWQiLFs0NiwiYSJdLFs1MCwicSIsWzQ2LCJ2Il0sWzM2LFsxLFsxNSwidiJdLFsyMSxbMixbMixbMTUsInYiXSwidG9Mb3dlckNhc2UiLFs3XV0sIm1hdGNoIixbNyxbMTUsInAiXV1dLFs0NV1dXV1dLFs1MCwiciIsWzQ2LCJ2Il0sWzUyLCJ3IixbMixbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl0sInNwbGl0IixbNywiLiJdXV0sWzUyLCJ4IixbMzksWzE4LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sMV0sWzE2LFsxNSwidyJdLFszNyxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLDFdXSwiIl1dLFszNixbMTYsWzIsWzE1LCJ4Il0sInNwbGl0IixbNywiLyJdXSwwXV1dLFs1MCwicyIsWzQ2LCJ2Il0sWzM2LFszOSxbMTIsWzIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLCJzdWJzdHJpbmciLFs3LDAsMV1dLCIvIl0sWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLFswLCIvIixbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl1dXV1dLFs1MCwidCIsWzQ2LCJ2Il0sWzQxLCJ3Il0sWzMsInciLCIiXSxbMjIsWzEsWzE1LCJ2Il0sWzE3LFsxNSwidiJdLCJocmVmIl1dLFs0NixbNTMsWzQxLCJ4Il0sWzMsIngiLFsyLFsxNyxbMTUsInYiXSwiaHJlZiJdLCJpbmRleE9mIixbNywiIyJdXV0sWzMsInciLFszOSxbMjMsWzE1LCJ4Il0sMF0sWzE3LFsxNSwidiJdLCJocmVmIl0sWzIsWzE3LFsxNSwidiJdLCJocmVmIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsIngiXV1dXV1dXV0sWzM2LFsxNSwidyJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbURvd25sb2FkQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkEiXV0sWzUyLCJnIiwiZmlsZV9kb3dubG9hZCJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm8iLFsyLFsxNSwibCJdLCJBIixbNywiZG93bmxvYWQiXV1dLFs1MiwicCIsWzAsIl4ocGRmfHhsc3g/fGRvY3g/fHR4dHxydGZ8Y3N2fGV4ZXxrZXl8cHAoc3x0fHR4KXw3enxwa2d8cmFyfGd6fHppcHxhdml8IiwibW92fG1wNHxtcGU/Z3x3bXZ8bWlkaT98bXAzfHdhdnx3bWEpJCJdXSxbNTIsInUiLFsiayIsWzgsImNoZWNrVmFsaWRhdGlvbiIsdHJ1ZV1dXSxbMjIsWzI4LFsxNSwidSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5saW5rQ2xpY2siLFs1MSwiIixbNywidiIsInciXSxbInciXSxbNTIsIngiLFs4LCJldmVudElkIixbMTYsWzE1LCJ2Il0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbNTIsInkiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRVcmwiXV0sWzUyLCJ6IixbIm0iLFsxNSwieSJdXV0sWzIyLFsyOCxbMTUsInoiXV0sWzQ2LFszNl1dXSxbNTIsImFBIixbInIiLFsxNSwieiJdXV0sWzIyLFsyOCxbInEiLFsxNSwiYUEiXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFCIixbOCwibGlua19pZCIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudElkIl0sImxpbmtfdXJsIixbInQiLFsxNSwieiJdXSwibGlua190ZXh0IixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50VGV4dCJdLCJmaWxlX25hbWUiLFsicyIsWzE1LCJ6Il1dLCJmaWxlX2V4dGVuc2lvbiIsWzE1LCJhQSJdXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwieCJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImciXSxbMTUsImFCIl0sWzE1LCJ4Il1dXSxbMTUsInUiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX2Zvcm0iLFs0NiwiYSJdLFs1MCwieCIsWzQ2LCJhTCJdLFs1MiwiYU0iLFszMCxbMTYsWzE1LCJhTCJdLFsxNSwiciJdXSxbOF1dXSxbNDMsWzE1LCJhTSJdLCJldmVudF91c2FnZSIsWzcsWzE3LFsxNSwiZyJdLCJIIl1dXSxbNDMsWzE1LCJhTCJdLFsxNSwiciJdLFsxNSwiYU0iXV1dLFs1MCwieSIsWzQ2LCJhTCIsImFNIl0sWzUyLCJhTiIsWzMwLFsxNixbMTUsImFMIl0sWzE1LCJyIl1dLFs4XV1dLFsyMixbMTYsWzE1LCJhTSJdLCJndG0uZm9ybUNhbmNlbGVkIl0sWzQ2LFs1MyxbNDMsWzE1LCJhTiJdLFsxNyxbMTUsImkiXSwiQUoiXSx0cnVlXV1dXSxbMixbMTUsInUiXSwiQiIsWzcsWzE1LCJhTCJdLFsxNSwiYU4iXV1dXSxbNTAsInoiLFs0NiwiYUwiLCJhTSIsImFOIl0sWzUyLCJhTyIsWzIsWzE1LCJ3Il0sImZpbHRlciIsWzcsWzUxLCIiLFs3LCJhUSJdLFszNixbMjAsWzIsWzE1LCJhUSJdLCJpbmRleE9mIixbNywiQVctIl1dLDBdXV1dXV0sWzIyLFsxOCxbMTcsWzE1LCJhTyJdLCJsZW5ndGgiXSwwXSxbNDYsWzUzLFsidiIsWzE1LCJhTyJdLFsxNSwiYUwiXSxbMTUsImFNIl0sWzE1LCJhTiJdXV1dXSxbNTIsImFQIixbMixbMTUsInciXSwiZmlsdGVyIixbNyxbNTEsIiIsWzcsImFRIl0sWzM2LFsyMSxbMixbMTUsImFRIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFQIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiYU4iXSwiZGVmZXJyYWJsZSIsdHJ1ZV0sWyJ2IixbMTUsImFQIl0sWzE1LCJhTCJdLFsxNSwiYU0iXSxbMTUsImFOIl1dXV1dXSxbNTAsImFLIixbNDZdLFs1MiwiYUwiLFsibSIsWyJsIiwwLDIuMTQ3NDgzNjQ3RTldXV0sWzQxLCJhTSJdLFszLCJhTSIsMF0sWzM2LFs1MSwiIixbNywiYU4iXSxbMjIsWzIwLFsxNSwiYU4iXSxbMTUsInMiXV0sWzQ2LFs1MyxbMywiYU0iLFsiayJdXSxbMzYsWzAsWyJtIixbMTUsImFNIl1dLFsxNSwiYUwiXV1dXV0sWzQ2LFsyMixbMjAsWzE1LCJhTiJdLFsxNSwibyJdXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhTSJdLDBdLFs0NixbNTMsWzM2LFswLFsibSIsWyJrIl1dLFsxNSwiYUwiXV1dXV1dLFs1MiwiYU8iLFsiayJdXSxbMjIsWzIzLFszNyxbMTUsImFPIl0sWzE1LCJhTSJdXSwyMDBdLFs0NixbNTMsWzUyLCJhUCIsWzE1LCJhTSJdXSxbMywiYU0iLDBdLFszNixbMCxbIm0iLFsxNSwiYVAiXV0sWzE1LCJhTCJdXV1dXV0sWzMsImFNIiwwXSxbMzYsWzAsWyJtIixbMTUsImFPIl1dLFsxNSwiYUwiXV1dXV1dXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9jY2RFbUZvcm1BY3Rpdml0eSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJnZXRUaW1lc3RhbXBNaWxsaXMiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJnZW5lcmF0ZVJhbmRvbSJdXSxbNTIsIm0iLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJuIixbMTcsWzE1LCJoIl0sIkIiXV0sWzUyLCJvIiwiZm9ybV9zdWJtaXQiXSxbNTIsInAiLCJmb3JtX3N0YXJ0Il0sWzUyLCJxIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJyIiwiZXZlbnRNZXRhZGF0YSJdLFs1MiwicyIsImNsaWNrIl0sWzUyLCJ0IixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJkIixbMTUsInQiXSxbMTUsIm4iXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sIkEiLFs3LFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsxNSwiYSJdLCJza2lwVmFsaWRhdGlvbiJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiZiJdLCJnZXRJdGVtIixbNyxbMTUsInEiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZiJdLCJzZXRJdGVtIixbNyxbMTUsInEiXSx0cnVlXV0sWzUyLCJ1IixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJ2IixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwidyIsWzIsWzE1LCJ1Il0sIkEiLFs3LCJmb3JtIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs1MSwiIixbNywiYUwiLCJhTSJdLFsyMixbMTUsImFNIl0sWzQ2LFsiYU0iXV1dLFs1MiwiYU4iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50SWQiXV0sWzIyLFsxNixbMTUsImFBIl0sWzE1LCJhTiJdXSxbNDYsWzM2XV1dLFs0MyxbMTUsImFBIl0sWzE1LCJhTiJdLHRydWVdLFs1MiwiYU8iLFs4LCJmb3JtX2lkIixbMTUsImFOIl0sImZvcm1fbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdLCJmb3JtX2Rlc3RpbmF0aW9uIixbMTYsWzE1LCJhTCJdLCJndG0uZWxlbWVudFVybCJdLCJmb3JtX2xlbmd0aCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtTGVuZ3RoIl0sImZpcnN0X2ZpZWxkX2lkIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZElkIl0sImZpcnN0X2ZpZWxkX25hbWUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkTmFtZSJdLCJmaXJzdF9maWVsZF90eXBlIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZFR5cGUiXSwiZmlyc3RfZmllbGRfcG9zaXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkUG9zaXRpb24iXV1dLFs1MiwiYVAiLFs4LCJldmVudElkIixbMTYsWzE1LCJhTCJdLCJndG0udW5pcXVlRXZlbnRJZCJdXV0sWyJ4IixbMTUsImFQIl1dLFsieSIsWzE1LCJhUCJdLFsxNSwiYUwiXV0sWzQzLFsxNixbMTUsImFQIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiQUEiXSwiZm9ybV9zdGFydCJdLFsieiIsWzE1LCJwIl0sWzE1LCJhTyJdLFsxNSwiYVAiXV1dXSxbNTIsImFDIixbImFLIl1dLFs1MiwiYUQiLFs1MSwiIixbNywiYUwiLCJhTSJdLFs1MiwiYU4iLFsiYUMiLFsxNSwibyJdXV0sWyJhQiIsWzE1LCJhTCJdLFs0NF1dLFs1MiwiYU8iLFs4LCJmb3JtX2lkIixbMTYsWzE1LCJhTCJdLCJndG0uZWxlbWVudElkIl0sImZvcm1fbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdLCJmb3JtX2Rlc3RpbmF0aW9uIixbMTYsWzE1LCJhTCJdLCJndG0uZWxlbWVudFVybCJdLCJmb3JtX2xlbmd0aCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtTGVuZ3RoIl0sImZvcm1fc3VibWl0X3RleHQiLFsxNixbMTUsImFMIl0sImd0bS5mb3JtU3VibWl0RWxlbWVudFRleHQiXV1dLFs0MyxbMTUsImFPIl0sImV2ZW50X2NhbGxiYWNrIixbMTUsImFNIl1dLFs1MiwiYVAiLFs4LCJldmVudElkIixbMTYsWzE1LCJhTCJdLCJndG0udW5pcXVlRXZlbnRJZCJdXV0sWyJ4IixbMTUsImFQIl1dLFsieSIsWzE1LCJhUCJdLFsxNSwiYUwiXV0sWzQzLFsxNixbMTUsImFQIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiQUEiXSwiZm9ybV9zdWJtaXQiXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJTIl0sWzE1LCJhTiJdXSxbInoiLFsxNSwibyJdLFsxNSwiYU8iXSxbMTUsImFQIl1dXV0sWzUyLCJhRSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImFGIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1TdWJtaXQiXV0sWzUyLCJhRyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iXV0sWzUyLCJhSCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayJdXSxbNTIsImFJIixbImFHIl1dLFsyMixbMjgsWzE1LCJhSSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbImFFIiwiZ3RtLmZvcm1JbnRlcmFjdCIsWzE1LCJhQiJdLFsxNSwiYUkiXV0sWzUyLCJhSiIsWyJhRiIsWzgsImNoZWNrVmFsaWRhdGlvbiIsZmFsc2UsIndhaXRGb3JUYWdzIixmYWxzZV1dXSxbMjIsWzI4LFsxNSwiYUoiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWyJhRSIsImd0bS5mb3JtU3VibWl0IixbMTUsImFEIl0sWzE1LCJhSiJdXSxbMjIsWyJlIixbMTcsWzE1LCJiIl0sIkNQIl1dLFs0NixbNTMsWzUyLCJhTCIsWyJhSCIsWzgsInVzZVYyRXZlbnROYW1lIix0cnVlLCJjc3NTZWxlY3RvciIsWzAsWzAsWzAsWzAsWzAsWzAsWzAsImZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0sICIsImZvcm0gYnV0dG9uOm5vdChbdHlwZV0pLCJdLCJmb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sICJdLCJmb3JtIGlucHV0W3R5cGU9XCJpbWFnZVwiXSwgIl0sImJ1dHRvbltmb3JtXVt0eXBlPVwic3VibWl0XCJdLCAiXSwiYnV0dG9uW2Zvcm1dOm5vdChbdHlwZV0pLCAiXSwiaW5wdXRbdHlwZT1cInN1Ym1pdFwiXVtmb3JtXSwgIl0sImlucHV0W3R5cGU9XCJpbWFnZVwiXVtmb3JtXSJdXV1dLFs1MCwiYU0iLFs0NiwiYU4iLCJhTyJdLFs1MiwiYVAiLFs4LCJldmVudF9jYWxsYmFjayIsWzE1LCJhTyJdXV0sWzUyLCJhUSIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFOIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVEiXV0sWyJ5IixbMTUsImFRIl0sWzE1LCJhTiJdXSxbNDMsWzE2LFsxNSwiYVEiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBUiJdLFsxNyxbMTUsImoiXSwiSyJdXSxbNDMsWzE2LFsxNSwiYVEiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJjbGljayJdLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIlMiXSxbImFDIixbMTUsInMiXV1dLFsieiIsWzE1LCJvIl0sWzE1LCJhUCJdLFsxNSwiYVEiXV1dLFsiYUUiLCJndG0uY2xpY2stdjIiLFsxNSwiYU0iXSxbMTUsImFMIl1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIsWzQ2LCJhIl0sWzUwLCJyIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLCIiXSxbMjIsWzEsWzE1LCJ3Il0sWzE3LFsxNSwidyJdLCJocmVmIl1dLFs0NixbNTMsWzQxLCJ5Il0sWzMsInkiLFsyLFsxNyxbMTUsInciXSwiaHJlZiJdLCJpbmRleE9mIixbNywiIyJdXV0sWzMsIngiLFszOSxbMjMsWzE1LCJ5Il0sMF0sWzE3LFsxNSwidyJdLCJocmVmIl0sWzIsWzE3LFsxNSwidyJdLCJocmVmIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInkiXV1dXV1dXV0sWzM2LFsxNSwieCJdXV0sWzUwLCJzIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXV0sWzUyLCJ5IixbMixbMTUsIngiXSwibWF0Y2giLFs3LCJed3d3XFxkKlxcLiJdXV0sWzIyLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwwXV0sWzQ2LFszLCJ4IixbMixbMTUsIngiXSwic3Vic3RyaW5nIixbNyxbMTcsWzE2LFsxNSwieSJdLDBdLCJsZW5ndGgiXV1dXV1dLFszNixbMTUsIngiXV1dLFs1MCwidCIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbNTIsIngiLFsyLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFsyMixbMjgsWzE1LCJ4Il1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInkiXSxbMywieSIsWzIsWyJzIixbIm8iLFsibiJdXV0sInRvTG93ZXJDYXNlIixbN11dXSxbNDEsInoiXSxbMywieiIsWzM3LFsxNyxbMTUsIngiXSwibGVuZ3RoIl0sWzE3LFsxNSwieSJdLCJsZW5ndGgiXV1dLFsyMixbMSxbMTgsWzE1LCJ6Il0sMF0sWzI5LFsyLFsxNSwieSJdLCJjaGFyQXQiLFs3LDBdXSwiLiJdXSxbNDYsWzUzLFszMixbMTUsInoiXSxbMywieiIsWzM3LFsxNSwieiJdLDFdXV0sWzMsInkiLFswLCIuIixbMTUsInkiXV1dXV1dLFsyMixbMSxbMTksWzE1LCJ6Il0sMF0sWzEyLFsyLFsxNSwieCJdLCJpbmRleE9mIixbNyxbMTUsInkiXSxbMTUsInoiXV1dLFsxNSwieiJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNix0cnVlXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsIm8iLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwicCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInEiLFsyLFsxNSwibCJdLCJBIixbNywib3V0Ym91bmRfY2xpY2siXV1dLFs1MiwidSIsWyJtIixbMTUsImkiXSwiY3Jvc3NfZG9tYWluX2NvbmRpdGlvbnMiXV0sWzUyLCJ2IixbImsiLFs4LCJhZmZpbGlhdGVEb21haW5zIixbMTUsInUiXSwiY2hlY2tWYWxpZGF0aW9uIix0cnVlLCJ3YWl0Rm9yVGFncyIsZmFsc2VdXV0sWzIyLFsyOCxbMTUsInYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInciLCJ4Il0sWzUyLCJ5IixbIm8iLFsxNixbMTUsInciXSwiZ3RtLmVsZW1lbnRVcmwiXV1dLFsyMixbMjgsWyJ0IixbMTUsInkiXV1dLFs0NixbNTMsWyJ4Il0sWzM2XV1dXSxbNTIsInoiLFs4LCJsaW5rX2lkIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50SWQiXSwibGlua19jbGFzc2VzIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50Q2xhc3NlcyJdLCJsaW5rX3VybCIsWyJyIixbMTUsInkiXV0sImxpbmtfZG9tYWluIixbInMiLFsxNSwieSJdXSwib3V0Ym91bmQiLHRydWVdXSxbNDMsWzE1LCJ6Il0sImV2ZW50X2NhbGxiYWNrIixbMTUsIngiXV0sWzUyLCJhQSIsWzgsImV2ZW50SWQiLFsxNixbMTUsInciXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsImFBIl1dXSxbInAiLFsxNSwicSJdLFsxNSwiZyJdLFsxNSwieiJdLFsxNSwiYUEiXV1dLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fcGFnZV92aWV3IixbNDYsImEiXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaGlzdG9yeUV2ZW50cyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImQiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1QYWdlVmlld0FjdGl2aXR5Il1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImciLFsxNyxbMTUsImYiXSwiQyJdXSxbNTIsImgiLCJwYWdlX3ZpZXciXSxbNTIsImkiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImoiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaiJdLFsxNSwiZyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJqIl1dXSxbMjIsWzIsWzE1LCJkIl0sImdldEl0ZW0iLFs3LFsxNSwiaSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIl1dLFs1MiwibSIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm8iLFsyLFsxNSwibSJdLCJBIixbNywicGFnZV92aWV3Il1dXSxbNTIsInAiLFs4LCJpbnRlcnZhbCIsMTAwMCwidXNlVjJFdmVudE5hbWUiLHRydWVdXSxbNTIsInEiLFsibCIsWzE1LCJwIl1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImQiXSwic2V0SXRlbSIsWzcsWzE1LCJpIl0sdHJ1ZV1dLFsiayIsImd0bS5oaXN0b3J5Q2hhbmdlLXYyIixbNTEsIiIsWzcsInIiLCJzIl0sWyJzIl0sWzUyLCJ0IixbMTYsWzE1LCJyIl0sImd0bS5vbGRVcmwiXV0sWzIyLFsyMCxbMTYsWzE1LCJyIl0sImd0bS5uZXdVcmwiXSxbMTUsInQiXV0sWzQ2LFszNl1dXSxbNTIsInUiLFsxNixbMTUsInIiXSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiXV0sWzIyLFsxLFsxLFsyMSxbMTUsInUiXSwicHVzaFN0YXRlIl0sWzIxLFsxNSwidSJdLCJwb3BzdGF0ZSJdXSxbMjEsWzE1LCJ1Il0sInJlcGxhY2VTdGF0ZSJdXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJ2IixbOF1dLFsyMixbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwicGFnZV9sb2NhdGlvbiIsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl1dLFs0MyxbMTUsInYiXSwicGFnZV9yZWZlcnJlciIsWzE1LCJ0Il1dXV1dLFs1MiwidyIsWzgsImV2ZW50SWQiLFsxNixbMTUsInIiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsyMixbMjEsWzE3LFsxNSwiYSJdLCJkZWZlclBhZ2VWaWV3Il0sZmFsc2VdLFs0NixbNTMsWzQzLFsxNSwidyJdLCJkZWZlcnJhYmxlIix0cnVlXV1dXSxbMixbMTUsIm0iXSwiQiIsWzcsWzE1LCJ3Il1dXSxbIm4iLFsxNSwibyJdLFsxNSwiaCJdLFsxNSwidiJdLFsxNSwidyJdXV0sWzE1LCJxIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9zY3JvbGwiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1TY3JvbGxBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRSJdXSxbNTIsImciLCJzY3JvbGwiXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwibiIsWzIsWzE1LCJsIl0sIkEiLFs3LCJzY3JvbGwiXV1dLFs1MiwibyIsWyJrIixbOCwidmVydGljYWxUaHJlc2hvbGRVbml0cyIsIlBFUkNFTlQiLCJ2ZXJ0aWNhbFRocmVzaG9sZHMiLDkwXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImgiXSx0cnVlXV0sWyJqIiwiZ3RtLnNjcm9sbERlcHRoIixbNTEsIiIsWzcsInAiLCJxIl0sWyJxIl0sWzUyLCJyIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwicCJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzUyLCJzIixbOCwicGVyY2VudF9zY3JvbGxlZCIsWzE2LFsxNSwicCJdLCJndG0uc2Nyb2xsVGhyZXNob2xkIl1dXSxbMixbMTUsImwiXSwiQiIsWzcsWzE1LCJyIl1dXSxbIm0iLFsxNSwibiJdLFsxNSwiZyJdLFsxNSwicyJdLFsxNSwiciJdXV0sWzE1LCJvIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9zaXRlX3NlYXJjaCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJnZXRRdWVyeVBhcmFtZXRlcnMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfY2NkRW1TaXRlU2VhcmNoQWN0aXZpdHkiXV0sWzUyLCJpIixbMixbMTUsImgiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJzZWFyY2hRdWVyeVBhcmFtcyJdLFsxNSwiYiJdXV1dLFs1MiwiaiIsWzMwLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiZCJdLCJjb250YWluZXJJZCJdXV0sWzUyLCJrIixbOCwiZGVmZXJyYWJsZSIsdHJ1ZSwiZXZlbnRJZCIsWzE3LFsxNSwiYSJdLCJndG1FdmVudElkIl0sImV2ZW50TWV0YWRhdGEiLFs4LCJlbV9ldmVudCIsdHJ1ZV1dXSxbMjIsWzE1LCJpIl0sWzQ2LFs1MyxbNTIsImwiLFszOSxbMjgsWzI4LFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIsWzE1LCJoIl0sIkIiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiYWRkaXRpb25hbFF1ZXJ5UGFyYW1zIl0sWzE1LCJiIl1dXSxbOF1dXSxbNDMsWzE3LFsxNSwiayJdLCJldmVudE1ldGFkYXRhIl0sWzE3LFsxNSwiZyJdLCJaIl0sImEiXSxbImMiLFsxNSwiaiJdLCJ2aWV3X3NlYXJjaF9yZXN1bHRzIixbMTUsImwiXSxbMTUsImsiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3ZpZGVvIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtVmlkZW9BY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRiJdXSxbNTIsImciLCJ2aWRlb19zdGFydCJdLFs1MiwiaCIsInZpZGVvX3Byb2dyZXNzIl0sWzUyLCJpIiwidmlkZW9fY29tcGxldGUiXSxbNTIsImoiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImsiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJrIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaiJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJvIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwicCIsWzIsWzE1LCJuIl0sIkEiLFs3LCJ2aWRlbyJdXV0sWzUyLCJxIixbIm0iLFs4LCJjYXB0dXJlQ29tcGxldGUiLHRydWUsImNhcHR1cmVTdGFydCIsdHJ1ZSwicHJvZ3Jlc3NUaHJlc2hvbGRzUGVyY2VudCIsWzcsMTAsMjUsNTAsNzVdXV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImoiXSx0cnVlXV0sWyJsIiwiZ3RtLnZpZGVvIixbNTEsIiIsWzcsInIiLCJzIl0sWyJzIl0sWzUyLCJ0IixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1N0YXR1cyJdXSxbNDEsInUiXSxbMjIsWzIwLFsxNSwidCJdLCJzdGFydCJdLFs0NixbNTMsWzMsInUiLFsxNSwiZyJdXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLCJwcm9ncmVzcyJdLFs0NixbNTMsWzMsInUiLFsxNSwiaCJdXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLCJjb21wbGV0ZSJdLFs0NixbNTMsWzMsInUiLFsxNSwiaSJdXV1dLFs0NixbNTMsWzM2XV1dXV1dXV0sWzUyLCJ2IixbOCwidmlkZW9fY3VycmVudF90aW1lIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb0N1cnJlbnRUaW1lIl0sInZpZGVvX2R1cmF0aW9uIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb0R1cmF0aW9uIl0sInZpZGVvX3BlcmNlbnQiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvUGVyY2VudCJdLCJ2aWRlb19wcm92aWRlciIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9Qcm92aWRlciJdLCJ2aWRlb190aXRsZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9UaXRsZSJdLCJ2aWRlb191cmwiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVXJsIl0sInZpc2libGUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVmlzaWJsZSJdXV0sWzUyLCJ3IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiciJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzIsWzE1LCJuIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJvIixbMTUsInAiXSxbMTUsInUiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfZmlyc3QiLFs0NiwiYSJdLFs1MCwiZSIsWzQ2LCJmIl0sWzIsWzE1LCJjIl0sIkEiLFs3LFsxNSwiZiJdXV0sWzIsWzE1LCJkIl0sIkEiLFs3LFsxNSwiZiJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfdGFza1BsYXRmb3JtRGV0ZWN0aW9uIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV90YXNrU2V0VGVzdEhpdFBhcmFtcyJdXSxbImIiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzUxLCIiLFs3LCJmIl0sWyJlIixbMTUsImYiXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfbGFzdCIsWzQ2LCJhIl0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX3JlZ3Njb3BlIixbNDYsImEiXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfY2NkR2FSZWdpb25TY29wZWRTZXR0aW5ncyJdXSxbNTIsImMiLFsyLFsxNSwiYiJdLCJCIixbNyxbMTUsImEiXV1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJhIl0sWzE1LCJjIl1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19lIixbNDYsImEiXSxbMzYsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbIiQwIiwiZXZlbnQiXV1dXQogLFs1MCwiX19nY3QiLFs0NiwiYSJdLFs1MCwiZyIsWzQ2LCJtIl0sWzUyLCJuIixbN11dLFs2NSwibyIsWzE1LCJtIl0sWzQ2LFs1MyxbNTIsInAiLFsiYiIsWzE1LCJvIl1dXSxbMjIsWzIxLFsxNSwicCJdLFs0NV1dLFs0NixbMixbMTUsIm4iXSwicHVzaCIsWzcsWzE1LCJwIl1dXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MCwiaCIsWzQ2LCJtIl0sWzUyLCJuIixbMTcsWzE1LCJtIl0sImxpbmtlciJdXSxbMjIsWzEsWzE1LCJuIl0sWzE2LFsxNSwibiJdLCJkb21haW5zIl1dLFs0NixbNTMsWzQzLFsxNSwibiJdLCJkb21haW5zIixbImciLFsxNixbMTUsIm4iXSwiZG9tYWlucyJdXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJpIixbNDYsIm0iXSxbNTIsIm4iLFsxNyxbMTUsIm0iXSwicmVmZXJyYWxFeGNsdXNpb25EZWZpbml0aW9uIl1dLFsyMixbMSxbMTUsIm4iXSxbMTYsWzE1LCJuIl0sImluY2x1ZGVfY29uZGl0aW9ucyJdXSxbNDYsWzUzLFs0MyxbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIixbImciLFsxNixbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIl1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLm1lcmdlUmVtb3RlQ29uZmlnIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImoiLFszMCxbMixbMTUsImYiXSwiZ2V0SXRlbSIsWzcsInJlZ2V4Il1dLFsiYiIsIlsuKitcXC0/XiR7fSgpfFtcXF1cXFxcXSIsImciXV1dLFsyLFsxNSwiZiJdLCJzZXRJdGVtIixbNywicmVnZXgiLFsxNSwiaiJdXV0sWzUyLCJrIixbOF1dLFs1MiwibCIsWzE3LFsxNSwiYSJdLCJzZXNzaW9uRHVyYXRpb24iXV0sWzIyLFsxOCxbMTUsImwiXSwwXSxbNDYsWzUzLFs0MyxbMTUsImsiXSwic2Vzc2lvbl9kdXJhdGlvbiIsWzE1LCJsIl1dXV1dLFs0MyxbMTUsImsiXSwiZXZlbnRfc2V0dGluZ3MiLFsxNyxbMTUsImEiXSwiZXZlbnRTZXR0aW5ncyJdXSxbNDMsWzE1LCJrIl0sImR5bmFtaWNfZXZlbnRfc2V0dGluZ3MiLFsxNyxbMTUsImEiXSwiZHluYW1pY0V2ZW50U2V0dGluZ3MiXV0sWzQzLFsxNSwiayJdLCJnb29nbGVfc2lnbmFscyIsWzIwLFsxNyxbMTUsImEiXSwiZ29vZ2xlU2lnbmFscyJdLDFdXSxbNDMsWzE1LCJrIl0sImdvb2dsZV90bGQiLFsxNyxbMTUsImEiXSwiZm9yZWlnblRsZCJdXSxbNDMsWzE1LCJrIl0sImdhX3Jlc3RyaWN0X2RvbWFpbiIsWzIwLFsxNyxbMTUsImEiXSwicmVzdHJpY3REb21haW4iXSwxXV0sWzQzLFsxNSwiayJdLCJpbnRlcm5hbF90cmFmZmljX3Jlc3VsdHMiLFsxNyxbMTUsImEiXSwiaW50ZXJuYWxUcmFmZmljUmVzdWx0cyJdXSxbNDMsWzE1LCJrIl0sImxpbmtlciIsWyJoIixbMTUsImEiXV1dLFs0MyxbMTUsImsiXSwicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLFsiaSIsWzE1LCJhIl1dXSxbImQiLFsxNyxbMTUsImEiXSwidHJhY2tpbmdJZCJdLFsxNSwiayJdXSxbImUiLFsxNyxbMTUsImEiXSwidHJhY2tpbmdJZCJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19vZ3RfMXBfZGF0YV92MiIsWzQ2LCJhIl0sWzUwLCJwIixbNDYsInIiLCJzIiwidCIsInUiXSxbMjIsWzIwLFsxNixbMTUsInMiXSwidHlwZSJdLFsxNSwidCJdXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJyIl1dLFs0NixbNTMsWzMsInIiLFs4XV1dXV0sWzIyLFsyOCxbMTYsWzE1LCJyIl0sWzE1LCJ0Il1dXSxbNDYsWzUzLFs0MyxbMTUsInIiXSxbMTUsInQiXSxbMTYsWzE1LCJzIl0sInVzZXJEYXRhIl1dLFs1MiwidiIsWzgsIm1vZGUiLCJhIl1dLFsyMixbMTYsWzE1LCJzIl0sInRhZ05hbWUiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwibG9jYXRpb24iLFsxNixbMTUsInMiXSwidGFnTmFtZSJdXV1dXSxbMjIsWzE2LFsxNSwicyJdLCJxdWVyeVNlbGVjdG9yIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInNlbGVjdG9yIixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXV1dXV0sWzQzLFsxNSwidSJdLFsxNSwidCJdLFsxNSwidiJdXV1dXV1dXSxbMzYsWzE1LCJyIl1dXSxbNTAsInEiLFs0NiwiciIsInMiLCJ0Il0sWzIyLFsyOCxbMTYsWzE1LCJhIl0sWzE1LCJ0Il1dXSxbNDYsWzM2XV1dLFs0MyxbMTUsInIiXSxbMTUsInMiXSxbOCwidmFsdWUiLFsxNixbMTUsImEiXSxbMTUsInQiXV1dXV0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImlzRW5hYmxlZCJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsIm0iLFsiYyIsWzE3LFsxNSwiZSJdLCJBVCJdXV0sWzUyLCJuIixbMzAsWyJmIl0sWzddXV0sWzUyLCJvIixbOCwiZW5hYmxlX2NvZGUiLHRydWVdXSxbMjIsWzE3LFsxNSwiYSJdLCJpc0F1dG9FbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs3XV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSxbMTcsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLCJsZW5ndGgiXV0sWzQ2LFs1MyxbNTMsWzQxLCJ1Il0sWzMsInUiLDBdLFs2MyxbNywidSJdLFsyMyxbMTUsInUiXSxbMTcsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidSJdLFszLCJ1IixbMCxbMTUsInUiXSwxXV1dLFs0NixbNTMsWzUyLCJ2IixbMTcsWzE2LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSxbMTUsInUiXV0sImV4Y2x1c2lvblNlbGVjdG9yIl1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFsyLFsxNSwiciJdLCJwdXNoIixbNyxbMTUsInYiXV1dXV1dXV1dXV1dXSxbNTIsInMiLFsxNyxbMTUsImEiXSwiaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIl1dLFs1MiwidCIsWzM5LFsxNyxbMTUsImEiXSwiaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIl0sWzE3LFsxNSwiYSJdLCJhdXRvRW1haWxFbmFibGVkIl0sdHJ1ZV1dLFs0MyxbMTUsIm8iXSwiYXV0b19kZXRlY3QiLFs4LCJlbWFpbCIsWzE1LCJ0Il0sInBob25lIixbMSxbMTUsInMiXSxbMTcsWzE1LCJhIl0sImF1dG9QaG9uZUVuYWJsZWQiXV0sImFkZHJlc3MiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b0FkZHJlc3NFbmFibGVkIl1dLCJleGNsdWRlX2VsZW1lbnRfc2VsZWN0b3JzIixbMTUsInIiXV1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImlzTWFudWFsRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJyIixbOF1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEVtYWlsRW5hYmxlZCJdLFs0NixbNTMsWyJxIixbMTUsInIiXSwiZW1haWwiLCJlbWFpbFZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsUGhvbmVFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJwaG9uZSIsInBob25lVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxBZGRyZXNzRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJzIixbOF1dLFsicSIsWzE1LCJzIl0sImZpcnN0X25hbWUiLCJmaXJzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sImxhc3RfbmFtZSIsImxhc3ROYW1lVmFsdWUiXSxbInEiLFsxNSwicyJdLCJzdHJlZXQiLCJzdHJlZXRWYWx1ZSJdLFsicSIsWzE1LCJzIl0sImNpdHkiLCJjaXR5VmFsdWUiXSxbInEiLFsxNSwicyJdLCJyZWdpb24iLCJyZWdpb25WYWx1ZSJdLFsicSIsWzE1LCJzIl0sImNvdW50cnkiLCJjb3VudHJ5VmFsdWUiXSxbInEiLFsxNSwicyJdLCJwb3N0YWxfY29kZSIsInBvc3RhbENvZGVWYWx1ZSJdLFs0MyxbMTUsInIiXSwibmFtZV9hbmRfYWRkcmVzcyIsWzcsWzE1LCJzIl1dXV1dXSxbNDMsWzE1LCJvIl0sInNlbGVjdG9ycyIsWzE1LCJyIl1dXV1dLFs2NSwiciIsWzE1LCJuIl0sWzQ2LFs1MyxbImkiLFsxNSwiciJdLCJ1c2VyX2RhdGFfc2V0dGluZ3MiLFsxNSwibyJdXSxbNTIsInMiLFsxNixbMTUsIm8iXSwiYXV0b19kZXRlY3QiXV0sWzIyLFsyOCxbMTUsInMiXV0sWzQ2LFs1MyxbNl1dXV0sWzUyLCJ0IixbNTEsIiIsWzcsInUiXSxbNTIsInYiLFsyLFsxNSwidSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWCJdXV1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFszNixbMTUsInYiXV1dXV0sWzUyLCJ3IixbImMiLFsxNyxbMTUsImUiXSwiQlYiXV1dLFs1MiwieCIsWyJjIixbMTcsWzE1LCJlIl0sIkNJIl1dXSxbNDEsInkiXSxbMjIsWyJoIiwiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iXSxbNDYsWzUzLFszLCJ5IixbImciLFs4LCJleGNsdWRlRWxlbWVudFNlbGVjdG9ycyIsWzE2LFsxNSwicyJdLCJleGNsdWRlX2VsZW1lbnRfc2VsZWN0b3JzIl0sImZpZWxkRmlsdGVycyIsWzgsImVtYWlsIixbMTYsWzE1LCJzIl0sImVtYWlsIl0sInBob25lIixbMTYsWzE1LCJzIl0sInBob25lIl0sImFkZHJlc3MiLFsxNixbMTUsInMiXSwiYWRkcmVzcyJdXSwiaW5jbHVkZVNlbGVjdG9yIixbMTUsInciXSwicmVhZEZyb21EYXRhTGF5ZXIiLFsxNSwieCJdXV1dXV1dLFs1MiwieiIsWzEsWzE1LCJ5Il0sWzE2LFsxNSwieSJdLCJlbGVtZW50cyJdXV0sWzUyLCJhQSIsWzhdXSxbNTIsImFCIixbOF1dLFsyMixbMSxbMTUsInoiXSxbMTgsWzE3LFsxNSwieiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbNDEsImFDIl0sWzQxLCJhRCJdLFszLCJhRCIsWzhdXSxbNTMsWzQxLCJhRSJdLFszLCJhRSIsMF0sWzYzLFs3LCJhRSJdLFsyMyxbMTUsImFFIl0sWzE3LFsxNSwieiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYUUiXSxbMywiYUUiLFswLFsxNSwiYUUiXSwxXV1dLFs0NixbNTMsWzUyLCJhRiIsWzE2LFsxNSwieiJdLFsxNSwiYUUiXV1dLFsicCIsWzE1LCJhQSJdLFsxNSwiYUYiXSwiZW1haWwiLFsxNSwiYUIiXV0sWzIyLFsiYyIsWzE3LFsxNSwiZSJdLCJCTyJdXSxbNDYsWzUzLFsicCIsWzE1LCJhQSJdLFsxNSwiYUYiXSwicGhvbmVfbnVtYmVyIixbMTUsImFCIl1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJmaXJzdF9uYW1lIixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwibGFzdF9uYW1lIixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwiY291bnRyeSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sInBvc3RhbF9jb2RlIixbMTUsImFEIl1dXV1dXV1dXV0sWzIyLFsxLFsxNSwiYUMiXSxbMjgsWzE2LFsxNSwiYUEiXSwiYWRkcmVzcyJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJhQSJdLCJhZGRyZXNzIixbMTUsImFDIl1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFs0MyxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwiYUQiXV1dXV1dXV1dXV0sWzIyLFsxLFsxNSwieSJdLFsxNSwieCJdXSxbNDYsWzUzLFs1MiwiYUMiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoVGltZSJdXSxbNTIsImFEIixbMTYsWzE1LCJ5Il0sImRhdGFMYXllclNlYXJjaENvdW50Il1dLFsyLFsxNSwidSJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImwiXSwiRlQiXSxbOCwiZGxzdCIsWzE1LCJhQyJdLCJkbHNjIixbMTUsImFEIl1dXV1dXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzIyLFszMCxbMTYsWzE1LCJhQSJdLCJlbWFpbCJdLFsxNixbMTUsImFBIl0sInBob25lX251bWJlciJdXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwiYUIiXV1dXV1dXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl0sWzE1LCJhQSJdXV0sWzM2LFsxNSwiYUEiXV1dXSxbImoiLFsxNSwiciJdLFs1MSwiIixbNywidSJdLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWSJdLFsxNSwidCJdXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyIsWzQ2LCJhIl0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTIsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY29udmVyc2lvbiJdLFs1MiwiYyIsImZsb29kbGlnaHQiXSxbNTIsImQiLCJnYV9jb252ZXJzaW9uIl0sWzUyLCJlIiwicGFnZV92aWV3Il0sWzUyLCJmIiwicmVtYXJrZXRpbmciXSxbNTIsImciLCJ1c2VyX2RhdGFfbGVhZCJdLFs1MiwiaCIsInVzZXJfZGF0YV93ZWIiXSxbMzYsWzgsIkQiLFsxNSwiYiJdLCJFIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIkgiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ3RhZ1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiYyIsImFkX3N0b3JhZ2UiXSxbNTIsImQiLCJhZF91c2VyX2RhdGEiXSxbNTIsImUiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImYiLCJhcHBfcmVtb3ZlIl0sWzUyLCJnIiwiYXBwX3N0b3JlX3JlZnVuZCJdLFs1MiwiaCIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIl0sWzUyLCJpIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Il0sWzUyLCJqIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyJdLFs1MiwiayIsImNvbnZlcnNpb24iXSxbNTIsImwiLCJwdXJjaGFzZSJdLFs1MiwibSIsImZpcnN0X29wZW4iXSxbNTIsIm4iLCJmaXJzdF92aXNpdCJdLFs1MiwibyIsImd0YWcuY29uZmlnIl0sWzUyLCJwIiwiaW5fYXBwX3B1cmNoYXNlIl0sWzUyLCJxIiwicGFnZV92aWV3Il0sWzUyLCJyIiwic2Vzc2lvbl9zdGFydCJdLFs1MiwicyIsInVzZXJfZW5nYWdlbWVudCJdLFs1MiwidCIsImFkc19kYXRhX3JlZGFjdGlvbiJdLFs1MiwidSIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIl0sWzUyLCJ2IiwiYWxsb3dfY3VzdG9tX3NjcmlwdHMiXSxbNTIsInciLCJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyJdLFs1MiwieCIsImFsbG93X2dvb2dsZV9zaWduYWxzIl0sWzUyLCJ5IiwiYXVpZCJdLFs1MiwieiIsImF3X3JlbWFya2V0aW5nX29ubHkiXSxbNTIsImFBIiwiZGlzY291bnQiXSxbNTIsImFCIiwiYXdfZmVlZF9jb3VudHJ5Il0sWzUyLCJhQyIsImF3X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImFEIiwiaXRlbXMiXSxbNTIsImFFIiwiYXdfbWVyY2hhbnRfaWQiXSxbNTIsImFGIiwiYXdfYmFza2V0X3R5cGUiXSxbNTIsImFHIiwiY2xpZW50X2lkIl0sWzUyLCJhSCIsImNvbnZlcnNpb25fY29va2llX3ByZWZpeCJdLFs1MiwiYUkiLCJjb252ZXJzaW9uX2lkIl0sWzUyLCJhSiIsImNvbnZlcnNpb25fbGlua2VyIl0sWzUyLCJhSyIsImNvbnZlcnNpb25fYXBpIl0sWzUyLCJhTCIsImNvb2tpZV9kZXByZWNhdGlvbiJdLFs1MiwiYU0iLCJjb29raWVfZXhwaXJlcyJdLFs1MiwiYU4iLCJjb29raWVfcHJlZml4Il0sWzUyLCJhTyIsImNvb2tpZV91cGRhdGUiXSxbNTIsImFQIiwiY291bnRyeSJdLFs1MiwiYVEiLCJjdXJyZW5jeSJdLFs1MiwiYVIiLCJjdXN0b21lcl9saWZldGltZV92YWx1ZSJdLFs1MiwiYVMiLCJjdXN0b21lcl90eXBlIl0sWzUyLCJhVCIsImRlYnVnX21vZGUiXSxbNTIsImFVIiwic2hpcHBpbmciXSxbNTIsImFWIiwiZW5nYWdlbWVudF90aW1lX21zZWMiXSxbNTIsImFXIiwiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiXSxbNTIsImFYIiwiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiYVkiLCJldmVudF9pZCJdLFs1MiwiYVoiLCJldmVudCJdLFs1MiwiYkEiLCJfJmFlIl0sWzUyLCJiQiIsImV2ZW50X3RpbWVvdXQiXSxbNTIsImJDIiwiZXh0X2NsaWVudF9pZCJdLFs1MiwiYkQiLCJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIl0sWzUyLCJiRSIsIm1hdGNoX2lkIl0sWzUyLCJiRiIsImdkcHJfYXBwbGllcyJdLFs1MiwiYkciLCJfZ3RfbWV0YWRhdGEiXSxbNTIsImJIIiwiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyJdLFs1MiwiYkkiLCJfZ29vZ2xlX25nIl0sWzUyLCJiSiIsIl9vbm8iXSxbNTIsImJLIiwiZ3BwX3NpZCJdLFs1MiwiYkwiLCJncHBfc3RyaW5nIl0sWzUyLCJiTSIsImdzYV9leHBlcmltZW50X2lkIl0sWzUyLCJiTiIsImd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSJdLFs1MiwiYk8iLCJpZnJhbWVfc3RhdGUiXSxbNTIsImJQIiwiaWdub3JlX3JlZmVycmVyIl0sWzUyLCJiUSIsImlzX3Bhc3N0aHJvdWdoIl0sWzUyLCJiUiIsImxhbmd1YWdlIl0sWzUyLCJiUyIsIm1lcmNoYW50X2ZlZWRfbGFiZWwiXSxbNTIsImJUIiwibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYlUiLCJtZXJjaGFudF9pZCJdLFs1MiwiYlYiLCJuZXdfY3VzdG9tZXIiXSxbNTIsImJXIiwicGFnZV9ob3N0bmFtZSJdLFs1MiwiYlgiLCJwYWdlX3BhdGgiXSxbNTIsImJZIiwicGFnZV9yZWZlcnJlciJdLFs1MiwiYloiLCJwYWdlX3RpdGxlIl0sWzUyLCJjQSIsIl9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyJdLFs1MiwiY0IiLCJxdWFudGl0eSJdLFs1MiwiY0MiLCJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyJdLFs1MiwiY0QiLCJzY3JlZW5fcmVzb2x1dGlvbiJdLFs1MiwiY0UiLCJzZW5kX3BhZ2VfdmlldyJdLFs1MiwiY0YiLCJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiXSxbNTIsImNHIiwic2VydmVyX2NvbnRhaW5lcl91cmwiXSxbNTIsImNIIiwic2Vzc2lvbl9kdXJhdGlvbiJdLFs1MiwiY0kiLCJzZXNzaW9uX2VuZ2FnZWRfdGltZSJdLFs1MiwiY0oiLCJzZXNzaW9uX2lkIl0sWzUyLCJjSyIsIl9zaGFyZWRfdXNlcl9pZCJdLFs1MiwiY0wiLCJkZWxpdmVyeV9wb3N0YWxfY29kZSJdLFs1MiwiY00iLCJ0ZXN0b25seSJdLFs1MiwiY04iLCJ0b3Btb3N0X3VybCJdLFs1MiwiY08iLCJ0cmFuc2FjdGlvbl9pZCJdLFs1MiwiY1AiLCJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiXSxbNTIsImNRIiwidHJhbnNwb3J0X3VybCJdLFs1MiwiY1IiLCJ1cGRhdGUiXSxbNTIsImNTIiwiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIl0sWzUyLCJjVCIsIl91c2VyX2FnZW50X2JpdG5lc3MiXSxbNTIsImNVIiwiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiXSxbNTIsImNWIiwiX3VzZXJfYWdlbnRfbW9iaWxlIl0sWzUyLCJjVyIsIl91c2VyX2FnZW50X21vZGVsIl0sWzUyLCJjWCIsIl91c2VyX2FnZW50X3BsYXRmb3JtIl0sWzUyLCJjWSIsIl91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iXSxbNTIsImNaIiwiX3VzZXJfYWdlbnRfd293NjQiXSxbNTIsImRBIiwidXNlcl9kYXRhIl0sWzUyLCJkQiIsInVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiXSxbNTIsImRDIiwidXNlcl9kYXRhX2F1dG9fbWV0YSJdLFs1MiwiZEQiLCJ1c2VyX2RhdGFfYXV0b19tdWx0aSJdLFs1MiwiZEUiLCJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiXSxbNTIsImRGIiwidXNlcl9kYXRhX2F1dG9fc3RhdHVzIl0sWzUyLCJkRyIsInVzZXJfZGF0YV9tb2RlIl0sWzUyLCJkSCIsInVzZXJfaWQiXSxbNTIsImRJIiwidXNlcl9wcm9wZXJ0aWVzIl0sWzUyLCJkSiIsInVzX3ByaXZhY3lfc3RyaW5nIl0sWzUyLCJkSyIsInZhbHVlIl0sWzUyLCJkTCIsIl9mcG1fcGFyYW1ldGVycyJdLFs1MiwiZE0iLCJfaG9zdF9uYW1lIl0sWzUyLCJkTiIsIl9pbl9wYWdlX2NvbW1hbmQiXSxbNTIsImRPIiwiX21lYXN1cmVtZW50X3R5cGUiXSxbNTIsImRQIiwibm9uX3BlcnNvbmFsaXplZF9hZHMiXSxbNTIsImRRIiwiY29udmVyc2lvbl9sYWJlbCJdLFs1MiwiZFIiLCJwYWdlX2xvY2F0aW9uIl0sWzUyLCJkUyIsIl9leHRyYWN0ZWRfZGF0YSJdLFs1MiwiZFQiLCJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiZFUiLCJ0Y19wcml2YWN5X3N0cmluZyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl0sIkwiLFsxNSwiaSJdLCJNIixbMTUsImoiXSwiTyIsWzE1LCJrIl0sIkFBIixbMTUsImwiXSwiQUYiLFsxNSwibSJdLCJBRyIsWzE1LCJuIl0sIkFIIixbMTUsIm8iXSwiQUoiLFsxNSwicCJdLCJBSyIsWzE1LCJxIl0sIkFNIixbMTUsInIiXSwiQVEiLFsxNSwicyJdLCJCQyIsWzE1LCJ0Il0sIkJKIixbMTUsInUiXSwiQksiLFsxNSwidiJdLCJCTSIsWzE1LCJ3Il0sIkJOIixbMTUsIngiXSwiQlQiLFsxNSwieSJdLCJCWCIsWzE1LCJ6Il0sIkJZIixbMTUsImFBIl0sIkJaIixbMTUsImFCIl0sIkNBIixbMTUsImFDIl0sIkNCIixbMTUsImFEIl0sIkNDIixbMTUsImFFIl0sIkNEIixbMTUsImFGIl0sIkNMIixbMTUsImFHIl0sIkNRIixbMTUsImFIIl0sIkNSIixbMTUsImFJIl0sIktHIixbMTUsImRRIl0sIkNTIixbMTUsImFKIl0sIkNVIixbMTUsImFLIl0sIkNXIixbMTUsImFMIl0sIkNZIixbMTUsImFNIl0sIkRDIixbMTUsImFOIl0sIkREIixbMTUsImFPIl0sIkRFIixbMTUsImFQIl0sIkRGIixbMTUsImFRIl0sIkRHIixbMTUsImFSIl0sIkRIIixbMTUsImFTIl0sIkROIixbMTUsImFUIl0sIkVBIixbMTUsImFVIl0sIkVDIixbMTUsImFWIl0sIkVHIixbMTUsImFXIl0sIkVKIixbMTUsImFYIl0sIkVLIixbMTUsImFZIl0sIkVOIixbMTUsImFaIl0sIkVPIixbMTUsImJBIl0sIkVRIixbMTUsImJCIl0sIktJIixbMTUsImRTIl0sIkVVIixbMTUsImJDIl0sIkVXIixbMTUsImJEIl0sIkZFIixbMTUsImJFIl0sIkZPIixbMTUsImJGIl0sIkZQIixbMTUsImJHIl0sIktKIixbMTUsImRUIl0sIkZUIixbMTUsImJIIl0sIkZVIixbMTUsImJJIl0sIkZWIixbMTUsImJKIl0sIkZZIixbMTUsImJLIl0sIkZaIixbMTUsImJMIl0sIkdCIixbMTUsImJNIl0sIkdDIixbMTUsImJOIl0sIkdFIixbMTUsImJPIl0sIkdGIixbMTUsImJQIl0sIkdLIixbMTUsImJRIl0sIkdNIixbMTUsImJSIl0sIkdUIixbMTUsImJTIl0sIkdVIixbMTUsImJUIl0sIkdWIixbMTUsImJVIl0sIkdaIixbMTUsImJWIl0sIkhDIixbMTUsImJXIl0sIktIIixbMTUsImRSIl0sIkhEIixbMTUsImJYIl0sIkhFIixbMTUsImJZIl0sIkhGIixbMTUsImJaIl0sIkhOIixbMTUsImNBIl0sIkhQIixbMTUsImNCIl0sIkhUIixbMTUsImNDIl0sIkhYIixbMTUsImNEIl0sIklBIixbMTUsImNFIl0sIklDIixbMTUsImNGIl0sIklEIixbMTUsImNHIl0sIklGIixbMTUsImNIIl0sIklIIixbMTUsImNJIl0sIklJIixbMTUsImNKIl0sIklLIixbMTUsImNLIl0sIklMIixbMTUsImNMIl0sIktLIixbMTUsImRVIl0sIklQIixbMTUsImNNIl0sIklSIixbMTUsImNOIl0sIklVIixbMTUsImNPIl0sIklWIixbMTUsImNQIl0sIklXIixbMTUsImNRIl0sIklZIixbMTUsImNSIl0sIkpCIixbMTUsImNTIl0sIkpDIixbMTUsImNUIl0sIkpEIixbMTUsImNVIl0sIkpFIixbMTUsImNWIl0sIkpGIixbMTUsImNXIl0sIkpHIixbMTUsImNYIl0sIkpIIixbMTUsImNZIl0sIkpJIixbMTUsImNaIl0sIkpKIixbMTUsImRBIl0sIkpLIixbMTUsImRCIl0sIkpMIixbMTUsImRDIl0sIkpNIixbMTUsImREIl0sIkpOIixbMTUsImRFIl0sIkpPIixbMTUsImRGIl0sIkpQIixbMTUsImRHIl0sIkpSIixbMTUsImRIIl0sIkpTIixbMTUsImRJIl0sIkpVIixbMTUsImRKIl0sIkpWIixbMTUsImRLIl0sIkpYIixbMTUsImRMIl0sIkpZIixbMTUsImRNIl0sIkpaIixbMTUsImROIl0sIktDIixbMTUsImRPIl0sIktEIixbMTUsImRQIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFib3J0X3dpdGhvdXRfZmFpbCJdLFs1MiwiYyIsImFjY2VwdF9ieV9kZWZhdWx0Il0sWzUyLCJkIiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJlIiwiY29uc2VudF9zdGF0ZSJdLFs1MiwiZiIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZyIsImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiXSxbNTIsImgiLCJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIl0sWzUyLCJpIiwiY29va2llX29wdGlvbnMiXSxbNTIsImoiLCJkZWR1cGVfaWQiXSxbNTIsImsiLCJlbV9ldmVudCJdLFs1MiwibCIsImV2ZW50X3Byb3ZlbmFuY2UiXSxbNTIsIm0iLCJldmVudF9zb3VyY2UiXSxbNTIsIm4iLCJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiXSxbNTIsIm8iLCJldmVudF91c2FnZSJdLFs1MiwicCIsImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyJdLFs1MiwicSIsImZvcm1fZXZlbnRfY2FuY2VsZWQiXSxbNTIsInIiLCJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iXSxbNTIsInMiLCJndG1fZXh0cmFjdGVkX2RhdGEiXSxbNTIsInQiLCJoYW5kbGVfaW50ZXJuYWxseSJdLFs1MiwidSIsImhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIl0sWzUyLCJ2IiwiaGl0X3R5cGUiXSxbNTIsInciLCJoaXRfdHlwZV9vdmVycmlkZSJdLFs1MiwieCIsImlnbm9yZV9kdXBlX2NvbmZpZyJdLFs1MiwieSIsImlzX2NvbnZlcnNpb24iXSxbNTIsInoiLCJpc19leHRlcm5hbF9ldmVudCJdLFs1MiwiYUEiLCJpc19maXJzdF92aXNpdCJdLFs1MiwiYUIiLCJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIl0sWzUyLCJhQyIsImlzX2ZwbV9lbmNyeXB0aW9uIl0sWzUyLCJhRCIsImlzX2ZwbV9zcGxpdCJdLFs1MiwiYUUiLCJpc19nY3BfYnJvd3NlciJdLFs1MiwiYUYiLCJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCJdLFs1MiwiYUciLCJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiJdLFs1MiwiYUgiLCJpc19zZXNzaW9uX3N0YXJ0Il0sWzUyLCJhSSIsImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiJdLFs1MiwiYUoiLCJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiXSxbNTIsImFLIiwiaXNfc2d0bV9wcmVoaXQiXSxbNTIsImFMIiwiaXNfc3BsaXRfY29udmVyc2lvbiJdLFs1MiwiYU0iLCJpc19zeW4iXSxbNTIsImFOIiwiaXNfdGVzdF9ldmVudCJdLFs1MiwiYU8iLCJwcmVoaXRfZm9yX3JldHJ5Il0sWzUyLCJhUCIsInJlZGFjdF9hZHNfZGF0YSJdLFs1MiwiYVEiLCJyZWRhY3RfY2xpY2tfaWRzIl0sWzUyLCJhUiIsInNlbmRfY2NtX3BhcmFsbGVsX3BpbmciXSxbNTIsImFTIiwic2VuZF91c2VyX2RhdGFfaGl0Il0sWzUyLCJhVCIsInNwZWN1bGF0aXZlIl0sWzUyLCJhVSIsInN5bl9vcl9tb2QiXSxbNTIsImFWIiwidHJhbnNpZW50X2Vjc2lkIl0sWzUyLCJhVyIsInVzZXJfZGF0YSJdLFs1MiwiYVgiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiXSxbNTIsImFZIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciJdLFs1MiwiYVoiLCJ1c2VyX2RhdGFfZnJvbV9jb2RlIl0sWzUyLCJiQSIsInVzZXJfZGF0YV9mcm9tX21hbnVhbCJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiTSIsWzE1LCJlIl0sIk4iLFsxNSwiZiJdLCJPIixbMTUsImciXSwiUCIsWzE1LCJoIl0sIlEiLFsxNSwiaSJdLCJTIixbMTUsImoiXSwiVCIsWzE1LCJrIl0sIloiLFsxNSwibCJdLCJBQSIsWzE1LCJtIl0sIkFCIixbMTUsIm4iXSwiQUMiLFsxNSwibyJdLCJBRCIsWzE1LCJwIl0sIkFKIixbMTUsInEiXSwiQUsiLFsxNSwiciJdLCJBTiIsWzE1LCJzIl0sIkFPIixbMTUsInQiXSwiQVAiLFsxNSwidSJdLCJBUSIsWzE1LCJ2Il0sIkFSIixbMTUsInciXSwiQVMiLFsxNSwieCJdLCJBViIsWzE1LCJ5Il0sIkFZIixbMTUsInoiXSwiQVoiLFsxNSwiYUEiXSwiQkEiLFsxNSwiYUIiXSwiQkMiLFsxNSwiYUMiXSwiQkQiLFsxNSwiYUQiXSwiQkUiLFsxNSwiYUUiXSwiQkYiLFsxNSwiYUYiXSwiQksiLFsxNSwiYUciXSwiQkwiLFsxNSwiYUgiXSwiQk0iLFsxNSwiYUkiXSwiQk4iLFsxNSwiYUoiXSwiQk8iLFsxNSwiYUsiXSwiQlEiLFsxNSwiYUwiXSwiQlIiLFsxNSwiYU0iXSwiQlMiLFsxNSwiYU4iXSwiQlkiLFsxNSwiYU8iXSwiQ0IiLFsxNSwiYVAiXSwiQ0MiLFsxNSwiYVEiXSwiQ0UiLFsxNSwiYVIiXSwiQ04iLFsxNSwiYVMiXSwiQ1EiLFsxNSwiYVQiXSwiQ1QiLFsxNSwiYVUiXSwiQ1UiLFsxNSwiYVYiXSwiQ1ciLFsxNSwiYVciXSwiQ1giLFsxNSwiYVgiXSwiQ1kiLFsxNSwiYVkiXSwiQ1oiLFsxNSwiYVoiXSwiREEiLFsxNSwiYkEiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDVdLFs1MiwiYyIsNDZdLFs1MiwiZCIsNDddLFs1MiwiZSIsMTc0XSxbNTIsImYiLDI3Nl0sWzM2LFs4LCJGIixbMTUsImIiXSwiRyIsWzE1LCJjIl0sIkgiLFsxNSwiZCJdLCJWIixbMTUsImUiXSwiQUQiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZWNUeXBlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImZzcmMiXSxbNTIsImMiLCJmZWlkIl0sWzUyLCJkIiwiMCJdLFs1MiwiZSIsIjEiXSxbNTIsImYiLCIyIl0sWzUyLCJnIiwiMyJdLFs1MiwiaCIsIjQiXSxbMzYsWzgsIkIiLFsxNSwiYyJdLCJGIixbMTUsImciXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdLCJDIixbMTUsImQiXSwiRyIsWzE1LCJoIl0sIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQyNV0sWzUyLCJjIiw0MzVdLFs1MiwiZCIsNDg4XSxbNTIsImUiLDQ4OV0sWzUyLCJmIiw0OThdLFs1MiwiZyIsNTAzXSxbNTIsImgiLDUwNF0sWzUyLCJpIiw1MDZdLFs1MiwiaiIsNTIzXSxbNTIsImsiLDUzMl0sWzUyLCJsIiw1NTNdLFs1MiwibSIsNTY4XSxbNTIsIm4iLDU3N10sWzUyLCJvIiw1ODFdLFs1MiwicCIsNTgzXSxbNTIsInEiLDU5Ml0sWzUyLCJyIiw1OTRdLFs1MiwicyIsNTk5XSxbMzYsWzgsIkFWIixbMTUsImsiXSwiQUQiLFsxNSwiZCJdLCJDSSIsWzE1LCJxIl0sIkJWIixbMTUsIm4iXSwiQk8iLFsxNSwibSJdLCJDSyIsWzE1LCJyIl0sIkNQIixbMTUsInMiXSwiQU0iLFsxNSwiZyJdLCJCWiIsWzE1LCJvIl0sIkFUIixbMTUsImoiXSwiQUUiLFsxNSwiZSJdLCJBTiIsWzE1LCJoIl0sIkwiLFsxNSwiYyJdLCJCQyIsWzE1LCJsIl0sIkFPIixbMTUsImkiXSwiQ0IiLFsxNSwicCJdLCJBSSIsWzE1LCJmIl0sIkkiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiXSxbNTIsImMiLCJwbGQiXSxbNTIsImQiLCJzaGFyZWRfdXNlcl9pZCJdLFs1MiwiZSIsInNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCJdLFs1MiwiZiIsInNoYXJlZF91c2VyX2lkX3NvdXJjZSJdLFszNixbOCwiQiIsWzE1LCJiIl0sIk4iLFsxNSwiYyJdLCJTIixbMTUsImQiXSwiVCIsWzE1LCJlIl0sIlUiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1TY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiwzXSxbNTIsImUiLDRdLFs1MiwiZiIsNV0sWzUyLCJnIiw2XSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJGIixbMTUsImciXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsNV0sWzUyLCJlIiw2XSxbNTIsImYiLDddLFs1MiwiZyIsOF0sWzUyLCJoIiw5XSxbNTIsImkiLDExXSxbNTIsImoiLDE1XSxbNTIsImsiLDE2XSxbNTIsImwiLDIwXSxbNTIsIm0iLDIxXSxbNTIsIm4iLDIzXSxbNTIsIm8iLDI0XSxbNTIsInAiLDI3XSxbNTIsInEiLDQwXSxbNTIsInIiLDQxXSxbMzYsWzgsIk8iLFsxNSwiaiJdLCJXIixbMTUsIm4iXSwiUCIsWzE1LCJrIl0sIlgiLFsxNSwibyJdLCJLIixbMTUsImkiXSwiQSIsWzE1LCJiIl0sIlQiLFsxNSwibCJdLCJFIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkIiLFsxNSwiYyJdLCJIIixbMTUsImciXSwiQU4iLFsxNSwicSJdLCJJIixbMTUsImgiXSwiRyIsWzE1LCJmIl0sIlUiLFsxNSwibSJdLCJBTyIsWzE1LCJyIl0sIkFBIixbMTUsInAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWVfYmxvY2tfZG93bmxvYWRzIl0sWzUyLCJjIiwiYWVfYmxvY2tfZm9ybSJdLFs1MiwiZCIsImFlX2Jsb2NrX2hpc3RvcnkiXSxbNTIsImUiLCJhZV9ibG9ja19vdXRib3VuZF9jbGljayJdLFs1MiwiZiIsImFlX2Jsb2NrX3Njcm9sbCJdLFs1MiwiZyIsImFlX2Jsb2NrX3ZpZGVvIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkYiLFsxNSwiZyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1TaXRlU2VhcmNoQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImIiLFs0NiwiZCIsImUiXSxbNTIsImYiLFsyLFszMCxbMTUsImQiXSwiIl0sInNwbGl0IixbNywiLCJdXV0sWzUzLFs0MSwiZyJdLFszLCJnIiwwXSxbNjMsWzcsImciXSxbMjMsWzE1LCJnIl0sWzE3LFsxNSwiZiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiZyJdLFszLCJnIixbMCxbMTUsImciXSwxXV1dLFs0NixbNTMsWzUyLCJoIixbImUiLFsyLFsxNixbMTUsImYiXSxbMTUsImciXV0sInRyaW0iLFs3XV1dXSxbMjIsWzIxLFsxNSwiaCJdLFs0NF1dLFs0NixbNTMsWzM2LFsxNSwiaCJdXV1dXV1dXV1dLFs1MCwiYyIsWzQ2LCJkIiwiZSIsImYiXSxbNTIsImciLFs4LCJzZWFyY2hfdGVybSIsWzE1LCJkIl1dXSxbNTIsImgiLFsyLFszMCxbMTUsImUiXSwiIl0sInNwbGl0IixbNywiLCJdXV0sWzUzLFs0MSwiaSJdLFszLCJpIiwwXSxbNjMsWzcsImkiXSxbMjMsWzE1LCJpIl0sWzE3LFsxNSwiaCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiaSJdLFszLCJpIixbMCxbMTUsImkiXSwxXV1dLFs0NixbNTMsWzUyLCJqIixbMixbMTYsWzE1LCJoIl0sWzE1LCJpIl1dLCJ0cmltIixbN11dXSxbNTIsImsiLFsiZiIsWzE1LCJqIl1dXSxbMjIsWzIxLFsxNSwiayJdLFs0NF1dLFs0NixbNTMsWzQzLFsxNSwiZyJdLFswLCJxXyIsWzE1LCJqIl1dLFsxNSwiayJdXV1dXV1dXV0sWzM2LFsxNSwiZyJdXV0sWzM2LFs4LCJCIixbMTUsImMiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hY3Rpdml0aWVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJiIixbNDYsImMiLCJkIl0sWzM2LFszOSxbMTUsImQiXSxbImQiLFsxNSwiYyJdXSxbMTUsImMiXV1dXSxbMzYsWzgsIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0Nl0sWzY4LCJ3IixbNTMsWzIyLFsxLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiQUkiXV1dLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV1dLFs0NixbNTMsWzM2LFs3XV1dXV0sWzUyLCJ3IixbImIiLFsxNyxbMTUsImciXSwiTiJdXV0sWzIyLFsibiIsWzE1LCJ3Il1dLFs0NixbNTMsWzM2LFsxNSwidyJdXV1dXSxbNTIsIngiLFs3XV0sWzIyLFsicCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJBIl1dXV1dLFsyMixbInEiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQiJdXV1dXSxbMjIsWyJyIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkYiXV1dXV0sWzIyLFsidSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJEIl1dXV1dLFsyMixbInMiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRSJdXV1dXSxbMjIsWyJ0Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkMiXV1dXV0sWzIyLFsibCJdLFs0NixbNTMsWyJmIixbMTcsWzE1LCJnIl0sIk4iXSxbMTUsIngiXSx0cnVlXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNDZdXSxbMzYsWzddXV0sWzUwLCJwIixbNDZdLFs2OCwidyIsWzUzLFszNixbMjgsWzI4LFsiYyIsInNjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePVwibWFnZS9cIl0iXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJxIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjXj1cIi8vIixbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJyIixbNDZdLFsyMixbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsImMyaHZjR2xtZVM1amIyMD0iXV0sWzUyLCJ4IixbIm0iLCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSJdXSxbMjIsWzMwLFsyOCxbMTUsInciXV0sWzI4LFsxNSwieCJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLCJzY3JpcHRbc3JjKj1cImNkbi4iLFsxNSwidyJdXSwiXCJdLCJdLCJtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl1bY29udGVudCo9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiZm9udHMuIl0sWzE1LCJ4Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cIml0ZXJhYmxlLXNob3BpZnlcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cInYuIl0sWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicyIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsiZCIsInByb3RvY29sIl1dLFs1MiwieCIsWyJkIiwiaG9zdCJdXSxbNTIsInkiLFszOSxbMSxbMTUsInciXSxbMTUsIngiXV0sWzAsWzAsWzAsWzAsIltzcmNePVwiIixbMTUsInciXV0sIjovLyJdLFsxNSwieCJdXSwiL3dwLWNvbnRlbnRcIl0sIl0sIiJdXSxbNTIsInoiLFsibSIsIkxuZHZjbVJ3Y21WemN5NWpiMjA9Il1dLFs1MiwiYUEiLFsibSIsIkx5OXpMbmN1YjNKbiJdXSxbMjIsWzMwLFsyOCxbMTUsInoiXV0sWzI4LFsxNSwiYUEiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFszMCxbInYiLFsxNSwieCJdLFsxNSwieiJdXSxbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzE1LCJ5Il0sIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvcmRQcmVzcyBcIl0sIl0sImxpbmtbcmVsPVwiZG5zLXByZWZldGNoXCJdW2hyZWY9XCIiXSxbMTUsImFBIl1dLCJcIl0iXV1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInQiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsIltjbGFzcyo9XCJ3b29jb21tZXJjZVwiXSwiLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb29Db21tZXJjZSBcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ1IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjKj1cIndvb2NvbW1lcmNlXCJdLCIsImxpbmtbaHJlZio9XCJ3b29jb21tZXJjZVwiXSwiXSwiW2NsYXNzfD1cIndvb2NvbW1lcmNlXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMSxbMTksWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMjAsWzIsWzE1LCJ3Il0sInN1YnN0cmluZyIsWzcsWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV1dLFsxNSwieCJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmlzRG9tUmVhZHkiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJmcm9tQmFzZTY0Il1dLFs1MiwibiIsWzUxLCIiLFs3LCJ3Il0sWzM2LFsyMCxbImsiLFsxNSwidyJdXSwiYXJyYXkiXV1dXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1Eb3dubG9hZEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfaWQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdXJsIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX3RleHQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImZpbGVfbmFtZSIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywiZmlsZV9leHRlbnNpb24iLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiQSJdXSxbNTIsImciLCJmaWxlX2Rvd25sb2FkIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZyJdLFs1MiwiaCIsWyJiIl1dLFs1MiwiaSIsWzddXSxbNTMsWzQxLCJqIl0sWzMsImoiLDBdLFs2MyxbNywiaiJdLFsyMyxbMTUsImoiXSxbMTcsWzE1LCJoIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJqIl0sWzMsImoiLFswLFsxNSwiaiJdLDFdXV0sWzQ2LFs1MyxbNTIsImsiLFsxNixbMTUsImgiXSxbMTUsImoiXV1dLFsyMixbImQiLFsxNSwiZyJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwiaSJdLCJwdXNoIixbNyxbMTUsImsiXV1dXV1dXV1dXSxbMzYsWzE1LCJpIl1dXSxbNTAsImYiLFs0NiwiZyIsImgiXSxbNTIsImkiLFszMCxbMTUsImgiXSxbOF1dXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJUIl0sdHJ1ZV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiQ1EiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJaIl0sImEiXSxbNDMsWzE1LCJnIl0sImV2ZW50TWV0YWRhdGEiLFsxNSwiaSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jbGFpbURlc3RpbmF0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJlIl0sIkIiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1Gb3JtQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm4iLFs0NiwibyIsInAiLCJxIl0sWzUyLCJyIixbMjAsWzIsWzE1LCJvIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dLFsyMixbMjAsWzE1LCJwIl0sWzQ0XV0sWzQ2LFs1MyxbMywicCIsWzE1LCJyIl1dXV1dLFsiYyIsWzE1LCJvIl0sWzUxLCIiLFs3LCJzIl0sWzUyLCJ0IixbMixbMTUsInMiXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbNTIsInUiLFszMCxbMjAsWzE1LCJ0Il0sWzE1LCJsIl1dLFsyMCxbMTUsInQiXSxbMTUsImsiXV1dXSxbMjIsWzMwLFsyOCxbMTUsInUiXV0sWzI4LFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsIm8iXSxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzEsWzI4LFsxNSwicCJdXSxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQUoiXV1dXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFs1MiwidiIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkFBIl1dXV0sWzIyLFsxLFsyOCxbMTUsInIiXV0sWzIwLFsxNSwidiJdLFsxNSwibSJdXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzI4LFsiaCIsWzE3LFsxNSwiaSJdLCJCWiJdXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwidiJdLFsxNSwibSJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXSxbNDRdXV1dXV1dXV1dXSxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMSxbMTUsInYiXSxbMTUsInIiXV0sWzQ2LFs1MyxbNDEsInciXSxbMywidyIsWzE3LFsxNSwiZyJdLCJDIl1dLFs0MSwieCJdLFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJsIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRCJdXV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwiayJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkUiXV0sWzMsIngiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl1dXV1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsIm0iXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJGIl1dLFszLCJ4IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdXV1dXV1dXV1dXSxbNTIsInkiLFs4XV0sWzQzLFsxNSwieSJdLFsxNyxbMTUsImciXSwiQSJdLFsxNSwidyJdXSxbMjIsWzE1LCJ4Il0sWzQ2LFs1MyxbNDMsWzE1LCJ5Il0sWzE3LFsxNSwiZyJdLCJCIl0sWzE1LCJ4Il1dXV1dLFsyLFsxNSwicyJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImYiXSwiRlQiXSxbMTUsInkiXV1dXV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX2lkIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX25hbWUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fZGVzdGluYXRpb24iLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fbGVuZ3RoIixbNDRdXV0sWzIyLFsyMCxbMTUsInQiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fc3VibWl0X3RleHQiLFs0NF1dXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLFsxNSwibCJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfaWQiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX25hbWUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX3R5cGUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX3Bvc2l0aW9uIixbNDRdXV1dXV1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZWNUeXBlcyJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaiIsWzE3LFsxNSwiZSJdLCJCIl1dLFs1MiwiayIsImZvcm1fc3VibWl0Il0sWzUyLCJsIiwiZm9ybV9zdGFydCJdLFs1MiwibSIsImNsaWNrIl0sWzM2LFs4LCJBIixbMTUsIm4iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtT3V0Ym91bmRDbGlja0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfaWQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfY2xhc3NlcyIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua191cmwiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfZG9tYWluIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJvdXRib3VuZCIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJEIl1dLFs1MiwiZyIsImNsaWNrIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJrIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsImwiXSxbMjIsWzMwLFsyMSxbMixbMTUsImwiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiaSJdXSxbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiaCJdXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJPIl1dXV0sWzQ2LFs1MyxbImQiLFsxNSwiayJdLFsxNyxbMTUsImYiXSwiSEUiXSxbMixbMTUsImwiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJIRSJdXV1dXV1dLFsyLFsxNSwibCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJDUSJdLGZhbHNlXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJoIixbMTcsWzE1LCJnIl0sIkMiXV0sWzUyLCJpIixbMTcsWzE1LCJmIl0sIkFLIl1dLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVNjcm9sbEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsInBlcmNlbnRfc2Nyb2xsZWQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRSJdXSxbNTIsImciLCJzY3JvbGwiXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1WaWRlb0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiLCJsIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsIm0iXSxbNTIsIm4iLFsyLFsxNSwibSJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwibyIsWzMwLFszMCxbMjAsWzE1LCJuIl0sWzE1LCJnIl1dLFsyMCxbMTUsIm4iXSxbMTUsImgiXV1dLFsyMCxbMTUsIm4iXSxbMTUsImkiXV1dXSxbMjIsWzMwLFsyOCxbMTUsIm8iXV0sWzI4LFsyLFsxNSwibSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19jdXJyZW50X3RpbWUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX2R1cmF0aW9uIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wZXJjZW50IixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wcm92aWRlciIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fdGl0bGUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3VybCIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlzaWJsZSIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJGIl1dLFs1MiwiZyIsInZpZGVvX3N0YXJ0Il0sWzUyLCJoIiwidmlkZW9fcHJvZ3Jlc3MiXSxbNTIsImkiLCJ2aWRlb19jb21wbGV0ZSJdLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VGVzdEhpdFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzIyLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCUyJdXV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJJUCJdLCIxIl1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkR2FSZWdpb25TY29wZWRTZXR0aW5ncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJtIiwibiIsIm8iXSxbNTAsInQiLFs0NiwidiJdLFs1MiwidyIsWzE2LFsxNSwiaSJdLFsxNSwidiJdXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNl1dXSxbNTMsWzQxLCJ4Il0sWzMsIngiLDBdLFs2MyxbNywieCJdLFsyMyxbMTUsIngiXSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJ4Il0sWzMsIngiLFswLFsxNSwieCJdLDFdXV0sWzQ2LFs1MyxbNTIsInkiLFsxNixbMTUsInciXSxbMTUsIngiXV1dLFsicSIsWzE1LCJwIl0sWzE3LFsxNSwieSJdLCJuYW1lIl0sWzE3LFsxNSwieSJdLCJ2YWx1ZSJdXV1dXV1dLFs1MCwidSIsWzQ2LCJ2Il0sWzIyLFszMCxbMjgsWzE1LCJyIl1dLFsyMSxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzQxLCJ3Il0sWzMsInciLFsxNixbMTUsInYiXSxbMTUsInMiXV1dLFsyMixbMjAsWzE1LCJ3Il0sWzQ0XV0sWzQ2LFs1MyxbMywidyIsWzE2LFsxNSwidiJdLFsxNSwiciJdXV1dXV0sWzM2LFsyOCxbMjgsWzE1LCJ3Il1dXV1dLFsyMixbMjgsWzE1LCJuIl1dLFs0NixbMzZdXV0sWzUyLCJwIixbMzAsWzE3LFsxNSwibSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWyJjIl0sImNvbnRhaW5lcklkIl1dXSxbNTIsInEiLFsiaCIsWzE1LCJmIl0sWzE1LCJvIl1dXSxbNTIsInIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbImgiLFsxNSwiZCJdLFsxNSwibyJdXV0sWyIkMCJdXV0sWzUyLCJzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJoIixbMTUsImUiXSxbMTUsIm8iXV1dLFsiJDAiXV1dLFs1MyxbNDEsInYiXSxbMywidiIsMF0sWzYzLFs3LCJ2Il0sWzIzLFsxNSwidiJdLFsxNyxbMTUsIm4iXSwibGVuZ3RoIl1dLFszMyxbMTUsInYiXSxbMywidiIsWzAsWzE1LCJ2Il0sMV1dXSxbNDYsWzUzLFs1MiwidyIsWzE2LFsxNSwibiJdLFsxNSwidiJdXV0sWzIyLFszMCxbMTcsWzE1LCJ3Il0sImRpc2FsbG93QWxsUmVnaW9ucyJdLFsidSIsWzE3LFsxNSwidyJdLCJkaXNhbGxvd2VkUmVnaW9ucyJdXV0sWzQ2LFs1MyxbInQiLFsxNyxbMTUsInciXSwicmVkYWN0RmllbGRHcm91cCJdXV1dXV1dXV1dLFs1MCwiayIsWzQ2LCJtIl0sWzUyLCJuIixbOF1dLFsyMixbMjgsWzE1LCJtIl1dLFs0NixbMzYsWzE1LCJuIl1dXV0sWzUyLCJvIixbMixbMTUsIm0iXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJwIl0sWzMsInAiLDBdLFs2MyxbNywicCJdLFsyMyxbMTUsInAiXSxbMTcsWzE1LCJvIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJwIl0sWzMsInAiLFswLFsxNSwicCJdLDFdXV0sWzQ2LFs1MyxbNTIsInEiLFsyLFsxNixbMTUsIm8iXSxbMTUsInAiXV0sInRyaW0iLFs3XV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNl1dXSxbNTIsInIiLFsyLFsxNSwicSJdLCJzcGxpdCIsWzcsIi0iXV1dLFs1MiwicyIsWzE2LFsxNSwiciJdLDBdXSxbNTIsInQiLFszOSxbMjAsWzE3LFsxNSwiciJdLCJsZW5ndGgiXSwyXSxbMTUsInEiXSxbNDRdXV0sWzIyLFszMCxbMjgsWzE1LCJzIl1dLFsyMSxbMTcsWzE1LCJzIl0sImxlbmd0aCJdLDJdXSxbNDYsWzUzLFs2XV1dXSxbMjIsWzEsWzIxLFsxNSwidCJdLFs0NF1dLFszMCxbMjMsWzE3LFsxNSwidCJdLCJsZW5ndGgiXSw0XSxbMTgsWzE3LFsxNSwidCJdLCJsZW5ndGgiXSw2XV1dLFs0NixbNTMsWzZdXV1dLFs0MyxbMTUsIm4iXSxbMTUsInEiXSx0cnVlXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJsIixbNDYsIm0iXSxbMjIsWzI4LFsxNyxbMTUsIm0iXSwic2V0dGluZ3NUYWJsZSJdXSxbNDYsWzM2LFs3XV1dXSxbNTIsIm4iLFs4XV0sWzUzLFs0MSwibyJdLFszLCJvIiwwXSxbNjMsWzcsIm8iXSxbMjMsWzE1LCJvIl0sWzE3LFsxNyxbMTUsIm0iXSwic2V0dGluZ3NUYWJsZSJdLCJsZW5ndGgiXV0sWzMzLFsxNSwibyJdLFszLCJvIixbMCxbMTUsIm8iXSwxXV1dLFs0NixbNTMsWzUyLCJwIixbMTYsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl0sWzE1LCJvIl1dXSxbNTIsInEiLFsxNyxbMTUsInAiXSwicmVkYWN0RmllbGRHcm91cCJdXSxbMjIsWzI4LFsxNixbMTUsImkiXSxbMTUsInEiXV1dLFs0NixbNl1dXSxbNDMsWzE1LCJuIl0sWzE1LCJxIl0sWzgsInJlZGFjdEZpZWxkR3JvdXAiLFsxNSwicSJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLGZhbHNlLCJkaXNhbGxvd2VkUmVnaW9ucyIsWzhdXV0sWzUyLCJyIixbMTYsWzE1LCJuIl0sWzE1LCJxIl1dXSxbMjIsWzE3LFsxNSwicCJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiXSxbNDYsWzUzLFs0MyxbMTUsInIiXSwiZGlzYWxsb3dBbGxSZWdpb25zIix0cnVlXSxbNl1dXV0sWzQzLFsxNSwiciJdLCJkaXNhbGxvd2VkUmVnaW9ucyIsWyJrIixbMTcsWzE1LCJwIl0sImRpc2FsbG93ZWRSZWdpb25zIl1dXV1dXV0sWzM2LFsyLFsxNSwiYiJdLCJ2YWx1ZXMiLFs3LFsxNSwibiJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldENvbnRhaW5lclZlcnNpb24iXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRDb3VudHJ5Q29kZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlZ2lvbkNvZGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2FjdGl2aXRpZXMiXV0sWzUyLCJoIixbMTcsWzE1LCJnIl0sIkEiXV0sWzUyLCJpIixbOCwiR09PR0xFX1NJR05BTFMiLFs3LFs4LCJuYW1lIiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLCJ2YWx1ZSIsZmFsc2VdXSwiREVWSUNFX0FORF9HRU8iLFs3LFs4LCJuYW1lIiwiZ2VvX2dyYW51bGFyaXR5IiwidmFsdWUiLHRydWVdLFs4LCJuYW1lIiwicmVkYWN0X2RldmljZV9pbmZvIiwidmFsdWUiLHRydWVdXV1dLFszNixbOCwiQSIsWzE1LCJqIl0sIkIiLFsxNSwibCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsyLFsxNSwiYyJdLCJBIixbN11dXSxbMjIsWzEsWzE1LCJmIl0sWzE4LFsxNyxbMTUsImYiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzIsWzE1LCJlIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiYiJdLCJGVCJdLFs4LCJwbGYiLFsyLFsxNSwiZiJdLCJqb2luIixbNywiLiJdXV1dXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAKXQosImVudGl0aWVzIjp7CiJfX2MiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYXV0b19yZWRhY3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Rvd25sb2FkIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Zvcm0iOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3Njcm9sbCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV92aWRlbyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9maXJzdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX3JlZ3Njb3BlIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2djdCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KCgp9CiwiYmxvYiI6eyIxIjoiMSIsIjEwIjoiRy1WODRYUDhXR1hZfEdULVROR1hSNlE4IiwiMTEiOnRydWUsIjE0IjoiNjdtMCIsIjE1IjoiMSIsIjE2IjoiQ2hBSThPQ1cwd1lRcjVEZ2tKK2U4YU45RWgwQWgrZ0dmdmQrM09Bdi8wOU42aFdpc0VIZFJFZUxIb2hGaFNIU1hCb0NaSmM9IiwiMTciOiIiLCIxOSI6ImRhdGFMYXllciIsIjIiOnRydWUsIjIwIjoiIiwiMjEiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIyMiI6ImV5SXdJam9pVGs4aUxDSXhJam9pVGs4dE1ETWlMQ0l5SWpwbVlXeHpaU3dpTXlJNkltZHZiMmRzWlM1dWJ5SXNJalFpT2lKeVpXZHBiMjR4SWl3aU5TSTZabUZzYzJVc0lqWWlPblJ5ZFdVc0lqY2lPaUpoWkY5emRHOXlZV2RsZkdGdVlXeDVkR2xqYzE5emRHOXlZV2RsZkdGa1gzVnpaWEpmWkdGMFlYeGhaRjl3WlhKemIyNWhiR2w2WVhScGIyNGlMQ0k1SWpwMGNuVmxmUSIsIjIzIjoiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiLCIyNCI6InRhZ2Fzc2lzdGFudC5nb29nbGUuY29tIiwiMjciOjAuMDA1LCIzIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMzAiOiJOTyIsIjMxIjoiTk8tMDMiLCIzMiI6ZmFsc2UsIjMzIjoicmVnaW9uMSIsIjM0IjoiRy1WODRYUDhXR1hZIiwiMzUiOiJHIiwiMzYiOiJodHRwczovL2Fkc2VydmljZS5nb29nbGUuY29tL3BhZ2VhZC9yZWdjbGsiLCIzNyI6Il9fVEFHR1lfSU5TVEFMTEVEIiwiMzgiOiJjY3QuZ29vZ2xlIiwiMzkiOiJnb29nVGFnZ3lSZWZlcnJlciIsIjQwIjoiaHR0cHM6Ly9jY3QuZ29vZ2xlL3RhZ2d5L2FnZW50LmpzIiwiNDEiOiJnb29nbGUudGFnbWFuYWdlci50YS5wcm9kcXVldWUiLCI0MiI6MC4wMSwiNDMiOiJ7XCJrZXlzXCI6W3tcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCS2x5VFgyanlvYnBRQ21mVXlCYmhCeVFIazlaMkhkTjVsSHhwQkF0SUtHTWNtencwZ0UrZWJsWUNtbTFHYTdiWWVUZHlkb0ptZTZJcGFTb0NVMElVVW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiZGVlNGIzNTEtYjBmNS00YzI3LWE4YzgtZWQ2NjA0NzdhNDRjXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRHRZQlJuUEJTMWc2bWVYTzFyUTVhNTJCNUZibmg3REM1anF2MDJpeEpzc24wazFKOXJjSENhVmMvenpSc25zSEJ6U29GS3M2SjhwSDdDY25RUDNFanc9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiYWQxOTNiMmEtNGE5MC00YzFhLWI3OWUtZGUzN2FjMzkxYmQyXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCTVowVU11ZEFlNFBvYWZTVHBVeFB0SWtmQmVDTWJGQlh2dHlSWXZITENTUS9FVXZFSnNtc1Y0dDZOQi9CRVZwcUwzSHY4Z05TUWg3SytTVW9vZjI1YW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDhjNGVmZTEtZmRkMC00MzZhLWFjOGYtOTIzZjExOTE4Nzg3XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRmZsdlVsK3hwSGFGVkNJWU8xS1BMeGt2K0FqZGw0ZDhydnJYaEk2emZwbmJCRHFJNTFERGt0SEhiM1pXSVM1N29EaDBLaXI5QXVDT29uMk1PeE5WOVk9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDMyYmMyNzAtOTllYS00MjIwLWI1NjItZTJjNWFlNzdkNGQ5XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCQVE4VGt5NERMV09KYkhPSGJWWURiUVpFZkVlbGI0RlRCOEVZTVFlUlFpTDFtMUx0QWQwcjN6ZXlMamdaMy9XMjRSOFZmYjIyelkyaXg2Vy9UZkNqakE9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiMDUwYTZlMTEtMzhhYi00ZjgwLTg5Y2ItN2IzMTliOTcwNGMwXCJ9XX0iLCI0NCI6IjExODg5NzkyMH4xMTg4OTc5MzAiLCI0NSI6dHJ1ZSwiNDYiOnsiMSI6IjEwMDAiLCIxMCI6IjY2dTAiLCIxMSI6IjY2ZzAiLCIxNCI6IjEwMDAiLCIxNiI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMTciOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjIiOiI5IiwiMjAiOiI1MDAwIiwiMjEiOiI1MDAwIiwiMjIiOiI0LjQuMCIsIjIzIjoiMC4wLjAiLCIyNSI6IjEiLCIyNiI6IjQwMDAiLCIyNyI6IjEwMCIsIjMiOiI1IiwiNCI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhfGFkX3BlcnNvbmFsaXphdGlvbiIsIjQ0IjoiMTUwMDAiLCI0OCI6IjMwMDAwIiwiNSI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhIiwiNiI6IjEiLCI2MSI6IjEwMDAiLCI2MiI6IkE2T05IUlk3L2J2QnJvK0lNWmQvYTZMTmpuN1NTdjk5OVNrTi9oRkFFOUw2dk1yMzRkTmdmZFNWZFltdjRVK05IWmcxc3hkMzhSdGNpUnBSVXRJUlBnUUFBQUNDZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdWMFlXZHRZVzVoWjJWeUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lVMmhoY21Wa1YyOXlhMlZ5UlhoMFpXNWtaV1JNYVdabGRHbHRaU0lzSW1WNGNHbHllU0k2TVRjM05qY3lPVFl3TUN3aWFYTlVhR2x5WkZCaGNuUjVJanAwY25WbGZRPT0iLCI2MyI6IjEwMDAiLCI2NiI6IjEwMCIsIjciOiIxMCJ9LCI0OCI6dHJ1ZSwiNSI6IkctVjg0WFA4V0dYWSIsIjU1IjpbIkctVjg0WFA4V0dYWSJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiRy1WODRYUDhXR1hZIl0sIjYiOiIyNTAwOTM2MDIiLCI2MiI6dHJ1ZSwiNjMiOjAuMDA1fQosInBlcm1pc3Npb25zIjp7CiJfX2MiOnt9CiwKIl9fY2NkX2F1dG9fcmVkYWN0Ijp7fQosCiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciOnt9CiwKIl9fY2NkX2VtX2Rvd25sb2FkIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmxpbmtDbGljayJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9fQosCiJfX2NjZF9lbV9mb3JtIjp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uZm9ybUludGVyYWN0IiwiZ3RtLmZvcm1TdWJtaXQiLCJndG0uY2xpY2stdjIiXX0sImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9LCJkZXRlY3RfY2xpY2tfZXZlbnRzIjp7fSwiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6ImFueSIsInF1ZXJpZXNBbGxvd2VkIjoiYW55In0sImxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmxpbmtDbGljayJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9fQosCiJfX2NjZF9lbV9wYWdlX3ZpZXciOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uaGlzdG9yeUNoYW5nZS12MiJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fc2Nyb2xsIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLnNjcm9sbERlcHRoIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9zY3JvbGxfZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giOnsiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6ImFueSIsInF1ZXJpZXNBbGxvd2VkIjoiYW55In0sInJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2NjZF9lbV92aWRlbyI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS52aWRlbyJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiOnsiYWxsb3dGaXhNaXNzaW5nSmF2YVNjcmlwdEFwaSI6ZmFsc2V9fQosCiJfX2NjZF9nYV9maXJzdCI6eyJyZWFkX2RvbV9lbGVtZW50cyI6eyJhbGxvd2VkQ3NzU2VsZWN0b3JzIjoiYW55In0sImdldF91cmwiOnsidXJsUGFydHMiOiJzcGVjaWZpYyIsInByb3RvY29sIjp0cnVlLCJob3N0Ijp0cnVlfX0KLAoiX19jY2RfZ2FfbGFzdCI6e30KLAoiX19jY2RfZ2FfcmVnc2NvcGUiOnsicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fZSI6eyJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudCJdfX0KLAoiX19nY3QiOnsiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9fQosCiJfX29ndF8xcF9kYXRhX3YyIjp7ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiOnsibGltaXREYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dBdXRvRGF0YVNvdXJjZXMiOnRydWUsImFsbG93TWFudWFsRGF0YVNvdXJjZXMiOmZhbHNlLCJhbGxvd0NvZGVEYXRhU291cmNlcyI6ZmFsc2V9fQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7fQoKCn0KCgoKLCJzZWN1cml0eV9ncm91cHMiOnsKImdvb2dsZSI6WwoiX19jIgosCiJfX2NjZF9hdXRvX3JlZGFjdCIKLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIgosCiJfX2NjZF9lbV9kb3dubG9hZCIKLAoiX19jY2RfZW1fZm9ybSIKLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siCiwKIl9fY2NkX2VtX3BhZ2VfdmlldyIKLAoiX19jY2RfZW1fc2Nyb2xsIgosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCIKLAoiX19jY2RfZW1fdmlkZW8iCiwKIl9fY2NkX2dhX2ZpcnN0IgosCiJfX2NjZF9nYV9sYXN0IgosCiJfX2NjZF9nYV9yZWdzY29wZSIKLAoiX19lIgosCiJfX2djdCIKLAoiX19vZ3RfMXBfZGF0YV92MiIKLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyIKCl0KCgp9CgoKCgoKfTsKCgoKCnZhciBrLGFhPXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O2IucHJvdG90eXBlPWE7cmV0dXJuIG5ldyBifSxiYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfSxjYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTsKfSxoYT1jYSh0aGlzKSxpYT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgieCIpPT09InN5bWJvbCIsa2E9e30sbGE9e30sbmE9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjfHxhIT1udWxsKXt2YXIgZD1sYVtiXTtpZihkPT1udWxsKXJldHVybiBhW2JdO3ZhciBlPWFbZF07cmV0dXJuIGUhPT12b2lkIDA/ZTphW2JdfX0sb2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpYTp7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9ZC5sZW5ndGg9PT0xLGY9ZFswXSxnOyFlJiZmIGluIGthP2c9a2E6Zz1oYTtmb3IodmFyIGg9MDtoPGQubGVuZ3RoLTE7aCsrKXt2YXIgbD1kW2hdO2lmKCEobCBpbiBnKSlicmVhayBhO2c9Z1tsXX12YXIgbj1kW2QubGVuZ3RoLTFdLHA9aWEmJmM9PT0iZXM2Ij9nW25dOm51bGwscT1iKHApO2lmKHEhPW51bGwpaWYoZSliYShrYSxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pO2Vsc2UgaWYocSE9PXApe2lmKGxhW25dPT09dm9pZCAwKXt2YXIgcj0KTWF0aC5yYW5kb20oKSoxRTk+Pj4wO2xhW25dPWlhP2hhLlN5bWJvbChuKToiJGpzY3AkIityKyIkIitufWJhKGcsbGFbbl0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9fX0scGE7aWYoaWEmJnR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpcGE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIHJhO2E6e3ZhciB0YT17YTohMH0sdWE9e307dHJ5e3VhLl9fcHJvdG9fXz10YTtyYT11YS5hO2JyZWFrIGF9Y2F0Y2goYSl7fXJhPSExfXBhPXJhP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbH0KdmFyIHZhPXBhLHdhPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9YWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYodmEpdmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLkZ0PWIucHJvdG90eXBlfSx4YT1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX0sbT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6eGEoYSl9Owp0aHJvdyBFcnJvcihTdHJpbmcoYSkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIik7fSx5YT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTtyZXR1cm4gY30sdz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5P2E6eWEobShhKSl9LEFhPWZ1bmN0aW9uKGEpe3JldHVybiB6YShhLGEpfSx6YT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9LEJhPWlhJiZ0eXBlb2YgbmEoT2JqZWN0LCJhc3NpZ24iKT09ImZ1bmN0aW9uIj9uYShPYmplY3QsImFzc2lnbiIpOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyBudWxsaXNoIGFyZyIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTsKaWYoZClmb3IodmFyIGUgaW4gZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9O29hKCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8QmF9LCJlczYiKTt2YXIgQ2E9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO30sRGE9ZnVuY3Rpb24oKXt0aGlzLmZhPSExO3RoaXMuUj1udWxsO3RoaXMuamE9dm9pZCAwO3RoaXMuSD0xO3RoaXMuTj10aGlzLlo9MDt0aGlzLkxhPXRoaXMuSz1udWxsfSxFYT1mdW5jdGlvbihhKXtpZihhLmZhKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTthLmZhPSEwfTtEYS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSl7dGhpcy5qYT1hfTsKdmFyIEdhPWZ1bmN0aW9uKGEsYil7YS5LPXthbzpiLGlzRXhjZXB0aW9uOiEwfTthLkg9YS5afHxhLk59O0RhLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O0RhLnByb3RvdHlwZS5nZXRZaWVsZFJlc3VsdEpzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmphfTtEYS5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuSz17cmV0dXJuOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZVsicmV0dXJuIl09RGEucHJvdG90eXBlLnJldHVybjtEYS5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oYSl7dGhpcy5LPXtuZDphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5BajtEYS5wcm90b3R5cGUuYWM9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YjtyZXR1cm57dmFsdWU6YX19O0RhLnByb3RvdHlwZS55aWVsZD1EYS5wcm90b3R5cGUuYWM7CkRhLnByb3RvdHlwZS54cz1mdW5jdGlvbihhLGIpe3ZhciBjPW0oYSksZD1jLm5leHQoKTtDYShkKTtpZihkLmRvbmUpdGhpcy5qYT1kLnZhbHVlLHRoaXMuSD1iO2Vsc2UgcmV0dXJuIHRoaXMuUj1jLHRoaXMuYWMoZC52YWx1ZSxiKX07RGEucHJvdG90eXBlLnlpZWxkQWxsPURhLnByb3RvdHlwZS54cztEYS5wcm90b3R5cGUubmQ9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5qdW1wVG89RGEucHJvdG90eXBlLm5kO0RhLnByb3RvdHlwZS5Eaj1mdW5jdGlvbigpe3RoaXMuSD0wfTtEYS5wcm90b3R5cGUuanVtcFRvRW5kPURhLnByb3RvdHlwZS5EajtEYS5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTtiIT12b2lkIDAmJih0aGlzLk49Yil9O0RhLnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLk5qO0RhLnByb3RvdHlwZS52Zz1mdW5jdGlvbihhKXt0aGlzLlo9MDt0aGlzLk49YXx8MH07CkRhLnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLnZnO0RhLnByb3RvdHlwZS5Jaj1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuWj1ifHwwfTtEYS5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1EYS5wcm90b3R5cGUuSWo7RGEucHJvdG90eXBlLlBoPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfHwwO3ZhciBiPXRoaXMuSy5hbzt0aGlzLks9bnVsbDtyZXR1cm4gYn07RGEucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1EYS5wcm90b3R5cGUuUGg7RGEucHJvdG90eXBlLmtkPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuTGFbY109dGhpcy5LOnRoaXMuTGE9W3RoaXMuS107dGhpcy5aPWF8fDA7dGhpcy5OPWJ8fDB9O0RhLnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUua2Q7CkRhLnByb3RvdHlwZS5oZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTGEuc3BsaWNlKGJ8fDApWzBdLGQ9dGhpcy5LPXRoaXMuS3x8YztkP2QuaXNFeGNlcHRpb24/dGhpcy5IPXRoaXMuWnx8dGhpcy5OOmQubmQhPXZvaWQgMCYmdGhpcy5OPGQubmQ/KHRoaXMuSD1kLm5kLHRoaXMuSz1udWxsKTp0aGlzLkg9dGhpcy5OOnRoaXMuSD1hfTtEYS5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmhlO0RhLnByb3RvdHlwZS5mZT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEhhKGEpfTtEYS5wcm90b3R5cGUuZm9ySW49RGEucHJvdG90eXBlLmZlO3ZhciBIYT1mdW5jdGlvbihhKXt0aGlzLks9YTt0aGlzLkg9W107Zm9yKHZhciBiIGluIGEpdGhpcy5ILnB1c2goYik7dGhpcy5ILnJldmVyc2UoKX07SGEucHJvdG90eXBlLmhvPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLkgubGVuZ3RoPjA7KXt2YXIgYT10aGlzLkgucG9wKCk7aWYoYSBpbiB0aGlzLkspcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpIYS5wcm90b3R5cGUuZ2V0TmV4dD1IYS5wcm90b3R5cGUuaG87CnZhciBJYT1mdW5jdGlvbihhKXt0aGlzLkg9bmV3IERhO3RoaXMuSz1hfSxMYT1mdW5jdGlvbihhLGIpe0VhKGEuSCk7dmFyIGM9YS5ILlI7aWYoYylyZXR1cm4gSmEoYSwicmV0dXJuImluIGM/Y1sicmV0dXJuIl06ZnVuY3Rpb24oZCl7cmV0dXJue3ZhbHVlOmQsZG9uZTohMH19LGIsYS5ILnJldHVybik7YS5ILnJldHVybihiKTtyZXR1cm4gS2EoYSl9LEphPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXt2YXIgZT1iLmNhbGwoYS5ILlIsYyk7Q2EoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5ILmZhPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5ILlI9bnVsbCxHYShhLkgsZyksS2EoYSl9YS5ILlI9bnVsbDtkLmNhbGwoYS5ILGYpO3JldHVybiBLYShhKX0sS2E9ZnVuY3Rpb24oYSl7Zm9yKDthLkguSDspdHJ5e3ZhciBiPWEuSyhhLkgpO2lmKGIpcmV0dXJuIGEuSC5mYT0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChkKXthLkguamE9dm9pZCAwLEdhKGEuSCwKZCl9YS5ILmZhPSExO2lmKGEuSC5LKXt2YXIgYz1hLkguSzthLkguSz1udWxsO2lmKGMuaXNFeGNlcHRpb24pdGhyb3cgYy5hbztyZXR1cm57dmFsdWU6Yy5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX0sTWE9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SLm5leHQsYixhLkgueWEpOihhLkgueWEoYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlJbInRocm93Il0sYixhLkgueWEpOihHYShhLkgsYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBMYShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319LE5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1hKG5ldyBJYShiKSk7dmEmJmEucHJvdG90eXBlJiZ2YShjLAphLnByb3RvdHlwZSk7cmV0dXJuIGN9LE9hPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9LFFhPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgUmE9dGhpc3x8c2VsZixTYT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5GdD1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EubnY9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTt2YXIgVGE9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YTt0aGlzLmRhdGE9Yn07dmFyIFVhPWZ1bmN0aW9uKCl7dGhpcy5tYXA9e307dGhpcy5IPXt9fTtVYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcFsiZHVzdC4iK2FdfTtVYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShjKXx8KHRoaXMubWFwW2NdPWIpfTtVYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eSgiZHVzdC4iK2EpfTtVYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe3ZhciBiPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYil8fGRlbGV0ZSB0aGlzLm1hcFtiXX07CnZhciBWYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5tYXApaWYoYS5tYXAuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO3N3aXRjaChiKXtjYXNlIDE6Yy5wdXNoKGUpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5tYXBbZF0pO2JyZWFrO2Nhc2UgMzpjLnB1c2goW2UsYS5tYXBbZF1dKX19cmV0dXJuIGN9O1VhLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDEpfTtVYS5wcm90b3R5cGUuaGM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywyKX07VWEucHJvdG90eXBlLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMyl9O3ZhciBXYT1mdW5jdGlvbigpe307V2EucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7fTt2YXIgWGE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9O3RoaXMucHJlZml4PSJndG0uIn07az1YYS5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV09Yn07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkodGhpcy5wcmVmaXgrU3RyaW5nKGEpKX07ay5kZWxldGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5wcmVmaXgrU3RyaW5nKGEpO3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KGIpPyhkZWxldGUgdGhpcy52YWx1ZVtiXSwhMCk6ITF9O2suY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9fTsKay52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBmdW5jdGlvbiBjKCl7dmFyIGQsZSxmO3JldHVybiBOYShjLGZ1bmN0aW9uKGcpe3N3aXRjaChnLkgpe2Nhc2UgMTpnLnZnKDIpLGU9Zy5mZShhLnZhbHVlKTtjYXNlIDQ6aWYoKGQ9ZS5obygpKT09bnVsbCl7Zy5uZCgyKTticmVha31pZighYS52YWx1ZS5oYXNPd25Qcm9wZXJ0eShkKSl7Zy5uZCg0KTticmVha31mPVFhO3JldHVybiBnLmFjKGEudmFsdWVbZF0sOCk7Y2FzZSA4OmYoZy5qYSk7Zy5uZCg0KTticmVhaztjYXNlIDI6Zy5rZCgpLGcuaGUoMCl9fSl9KCl9O2hhLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFhhLnByb3RvdHlwZSx7c2l6ZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudmFsdWUpLmxlbmd0aH19fSk7CmZ1bmN0aW9uIFlhKCl7dHJ5e2lmKE1hcClyZXR1cm4gbmV3IE1hcH1jYXRjaChhKXt9cmV0dXJuIG5ldyBYYX07dmFyIFphPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZXM9W119O1phLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZXMuaW5kZXhPZihhKT09PS0xJiZ0aGlzLnZhbHVlcy5wdXNoKGEpfTtaYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5pbmRleE9mKGEpPi0xfTt2YXIgJGE9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLlI9dGhpcy5LPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuTj1mdW5jdGlvbihkLGUsZil7cmV0dXJuIGQuYXBwbHkoZSxmKX07dGhpcy5IPVlhKCk7dmFyIGM7YTp7dHJ5e2lmKFNldCl7Yz1uZXcgU2V0O2JyZWFrIGF9fWNhdGNoKGQpe31jPW5ldyBaYX10aGlzLlo9Y307JGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCExKX07JGEucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITApfTt2YXIgYWI9ZnVuY3Rpb24oYSxiLGMsZCl7YS5IYnx8YS5aLmhhcyhiKXx8KGQmJmEuWi5hZGQoYiksYS5ILnNldChiLGMpKX07az0kYS5wcm90b3R5cGU7Cmsuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLkguaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMuWi5oYXMoYSl8fHRoaXMuSC5zZXQoYSxiKSl9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkguaGFzKGEpP3RoaXMuSC5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLkguaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgJGEodGhpcy5mYSx0aGlzKTt0aGlzLksmJmEuUWIodGhpcy5LKTthLnNkKHRoaXMuTik7YS51ZSh0aGlzLlIpO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmF9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTsKay5zZD1mdW5jdGlvbihhKXt0aGlzLk49YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07dmFyIGJiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxhLm1lc3NhZ2UpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMudm89YTt0aGlzLlNuPWM9PT12b2lkIDA/ITE6Yzt0aGlzLks9W107dGhpcy5IPWJ9O3dhKGJiLEVycm9yKTt2YXIgY2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBiYj9hOm5ldyBiYihhLHZvaWQgMCwhMCl9O3ZhciBkYj1ZYSgpO2Z1bmN0aW9uIGViKGEsYil7Zm9yKHZhciBjLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmUmJiEoYz1mYihhLGUudmFsdWUpLGMgaW5zdGFuY2VvZiBUYSk7ZT1kLm5leHQoKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZmIoYSxiKXt0cnl7dmFyIGM9YlswXSxkPWIuc2xpY2UoMSksZT1TdHJpbmcoYyksZj1kYi5oYXMoZSk/ZGIuZ2V0KGUpOmEuZ2V0KGUpO2lmKCFmfHx0eXBlb2YgZi5pbnZva2UhPT0iZnVuY3Rpb24iKXRocm93IGNiKEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4ZWN1dGUgbm9uLWZ1bmN0aW9uICIrYlswXSsiLiIpKTtyZXR1cm4gZi5hcHBseShhLGQpfWNhdGNoKGgpe3ZhciBnPWEuZm8oKTtnJiZnKGgsYi5jb250ZXh0P3tpZDpiWzBdLGxpbmU6Yi5jb250ZXh0LmxpbmV9Om51bGwpO3Rocm93IGg7fX07dmFyIGdiPWZ1bmN0aW9uKCl7dGhpcy5LPW5ldyBXYTt0aGlzLkg9bmV3ICRhKHRoaXMuSyl9O2s9Z2IucHJvdG90eXBlO2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07ay5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9O2suZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yayhbYV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLnJrPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9bShPYS5hcHBseSgwLGFyZ3VtZW50cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWE9ZmIodGhpcy5ILGMudmFsdWUpO3JldHVybiBhfTtrLkpxPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPXRoaXMuSC53YigpO2MudWUoYSk7Zm9yKHZhciBkLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkPWZiKGMsZi52YWx1ZSk7cmV0dXJuIGR9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07dmFyIGhiPWZ1bmN0aW9uKGEsYil7dGhpcy5SPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLk49dGhpcy5IPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuSz1mdW5jdGlvbihjLGQsZSl7cmV0dXJuIGMuYXBwbHkoZCxlKX07dGhpcy52YWx1ZXM9bmV3IFVhfTtoYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITEpfTtoYi5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMCl9O3ZhciBqYj1mdW5jdGlvbihhLGIsYyxkKXtpZighYS5IYilpZihkKXt2YXIgZT1hLnZhbHVlcztlLnNldChiLGMpO2UuSFsiZHVzdC4iK2JdPSEwfWVsc2UgYS52YWx1ZXMuc2V0KGIsYyl9O2s9aGIucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLnZhbHVlcy5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy52YWx1ZXMuc2V0KGEsYikpfTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmhhcyhhKT90aGlzLnZhbHVlcy5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLnZhbHVlcy5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyBoYih0aGlzLlIsdGhpcyk7dGhpcy5IJiZhLlFiKHRoaXMuSCk7YS5zZCh0aGlzLkspO2EudWUodGhpcy5OKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTt2YXIga2I9ZnVuY3Rpb24oKXt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhfTtrPWtiLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gbGIoKXtmb3IodmFyIGE9bWIsYj17fSxjPTA7YzxhLmxlbmd0aDsrK2MpYlthW2NdXT1jO3JldHVybiBifWZ1bmN0aW9uIG5iKCl7dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjthKz1hLnRvTG93ZXJDYXNlKCkrIjAxMjM0NTY3ODktXyI7cmV0dXJuIGErIi4ifXZhciBtYixvYjtmdW5jdGlvbiBwYihhKXttYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7Yys9Myl7dmFyIGQ9YysxPGEubGVuZ3RoLGU9YysyPGEubGVuZ3RoLGY9YS5jaGFyQ29kZUF0KGMpLGc9ZD9hLmNoYXJDb2RlQXQoYysxKTowLGg9ZT9hLmNoYXJDb2RlQXQoYysyKTowLGw9Zj4+MixuPShmJjMpPDw0fGc+PjQscD0oZyYxNSk8PDJ8aD4+NixxPWgmNjM7ZXx8KHE9NjQsZHx8KHA9NjQpKTtiLnB1c2gobWJbbF0sbWJbbl0sbWJbcF0sbWJbcV0pfXJldHVybiBiLmpvaW4oIiIpfQpmdW5jdGlvbiBxYihhKXtmdW5jdGlvbiBiKGwpe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBuPWEuY2hhckF0KGQrKykscD1vYltuXTtpZihwIT1udWxsKXJldHVybiBwO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobikpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrbik7fXJldHVybiBsfW1iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYz0iIixkPTA7Oyl7dmFyIGU9YigtMSksZj1iKDApLGc9Yig2NCksaD1iKDY0KTtpZihoPT09NjQmJmU9PT0tMSlyZXR1cm4gYztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU8PDJ8Zj4+NCk7ZyE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShmPDw0JjI0MHxnPj4yKSxoIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGc8PDYmMTkyfGgpKSl9fTt2YXIgcmI9e307ZnVuY3Rpb24gc2IoYSxiKXt2YXIgYz1yYlthXTtjfHwoYz1yYlthXT1bXSk7Y1tiXT0hMH1mdW5jdGlvbiB0Yigpe2RlbGV0ZSByYi5HQTRfRVZFTlR9ZnVuY3Rpb24gdWIoKXt2YXIgYT12Yi5ILnNsaWNlKCk7cmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUw9YX1mdW5jdGlvbiB3YihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKylkJTg9PT0wJiZkPjAmJihiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSksYz0wKSxhW2RdJiYoY3w9MTw8ZCU4KTtjPjAmJmIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtyZXR1cm4gcGIoYi5qb2luKCIiKSkucmVwbGFjZSgvXC4rJC8sIiIpfTtmdW5jdGlvbiB4Yigpe31mdW5jdGlvbiB5YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIHpiKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIEFiKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiYhaXNOYU4oYSl9ZnVuY3Rpb24gQmIoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpbYV19ZnVuY3Rpb24gQ2IoYSxiKXtpZihhJiZBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmIoYVtjXSkpcmV0dXJuIGFbY119ZnVuY3Rpb24gRGIoYSxiKXtpZighQWIoYSl8fCFBYihiKXx8YT5iKWE9MCxiPTIxNDc0ODM2NDc7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooYi1hKzEpK2EpfQpmdW5jdGlvbiBFYihhLGIpe2Zvcih2YXIgYz1uZXcgRmIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWMuc2V0KGFbZF0sITApO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7ZSsrKWlmKGMuZ2V0KGJbZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEdiKGEsYil7Zm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYyxhW2NdKX1mdW5jdGlvbiBIYihhKXtyZXR1cm4hIWEmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBBcmd1bWVudHNdInx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImNhbGxlZSIpKX1mdW5jdGlvbiBJYihhKXtyZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIoYSkpfHwwfWZ1bmN0aW9uIEpiKGEpe3JldHVybiJmYWxzZSI9PT1TdHJpbmcoYSkudG9Mb3dlckNhc2UoKT8hMTohIWF9CmZ1bmN0aW9uIEtiKGEpe3ZhciBiPVtdO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKFN0cmluZyhhW2NdKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gTGIoYSl7cmV0dXJuIGE/YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik6IiJ9ZnVuY3Rpb24gTWIoKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSl9ZnVuY3Rpb24gTmIoKXtyZXR1cm4gTWIoKS5nZXRUaW1lKCl9dmFyIEZiPWZ1bmN0aW9uKCl7dGhpcy5wcmVmaXg9Imd0bS4iO3RoaXMudmFsdWVzPXt9fTtGYi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV09Yn07RmIucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV19O0ZiLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nZXQoYSkhPT12b2lkIDB9OwpmdW5jdGlvbiBPYihhLGIsYyl7cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkoYik/YVtiXTpjfWZ1bmN0aW9uIFBiKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPXZvaWQgMDt0cnl7YygpfWNhdGNoKGQpe319fX1mdW5jdGlvbiBRYihhLGIpe2Zvcih2YXIgYyBpbiBiKWIuaGFzT3duUHJvcGVydHkoYykmJihhW2NdPWJbY10pfWZ1bmN0aW9uIFJiKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnB1c2goYVtkXSksYy5wdXNoLmFwcGx5KGMsYlthW2RdXXx8W10pO3JldHVybiBjfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoMCxiLmxlbmd0aCk9PT1ifWZ1bmN0aW9uIFRiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoYS5sZW5ndGgtYi5sZW5ndGgsYS5sZW5ndGgpPT09Yn0KZnVuY3Rpb24gVWIoYSxiLGMpe2M9Y3x8W107Zm9yKHZhciBkPWEsZT0wO2U8Yi5sZW5ndGgtMTtlKyspe2lmKCFkLmhhc093blByb3BlcnR5KGJbZV0pKXJldHVybjtkPWRbYltlXV07aWYoYy5pbmRleE9mKGQpPj0wKXJldHVybn1yZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYz17fSxkPWMsZT1hLnNwbGl0KCIuIiksZj0wO2Y8ZS5sZW5ndGgtMTtmKyspZD1kW2VbZl1dPXt9O2RbZVtlLmxlbmd0aC0xXV09YjtyZXR1cm4gY312YXIgV2I9L15cd3sxLDl9JC87ZnVuY3Rpb24gWWIoYSxiKXthPWF8fHt9O2I9Ynx8IiwiO3ZhciBjPVtdO0diKGEsZnVuY3Rpb24oZCxlKXtXYi50ZXN0KGQpJiZlJiZjLnB1c2goZCl9KTtyZXR1cm4gYy5qb2luKGIpfQpmdW5jdGlvbiBaYihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hLmNoYXJDb2RlQXQoYyk7ZDwxMjg/Yi5wdXNoKGQpOmQ8MjA0OD9iLnB1c2goMTkyfGQ+PjYsMTI4fGQmNjMpOmQ8NTUyOTZ8fGQ+PTU3MzQ0P2IucHVzaCgyMjR8ZD4+MTIsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpOihkPTY1NTM2KygoZCYxMDIzKTw8MTB8YS5jaGFyQ29kZUF0KCsrYykmMTAyMyksYi5wdXNoKDI0MHxkPj4xOCwxMjh8ZD4+MTImNjMsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYil9ZnVuY3Rpb24gJGIoYSl7aWYoIWEpcmV0dXJuIGE7dmFyIGI9YTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goZCl7fXZhciBjPWIuc3BsaXQoIiwiKTtyZXR1cm4gYy5sZW5ndGg9PT0yJiZjWzBdPT09Y1sxXT9jWzBdOmF9CmZ1bmN0aW9uIGFjKGEsYixjKXtmdW5jdGlvbiBkKG4pe3ZhciBwPW4uc3BsaXQoIj0iKVswXTtpZihhLmluZGV4T2YocCk8MClyZXR1cm4gbjtpZihjIT09dm9pZCAwKXJldHVybiBwKyI9IitjfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4uc3BsaXQoIiYiKS5tYXAoZCkuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwIT09dm9pZCAwfSkuam9pbigiJiIpfXZhciBmPWIuaHJlZi5zcGxpdCgvWz8jXS8pWzBdLGc9Yi5zZWFyY2gsaD1iLmhhc2g7Z1swXT09PSI/IiYmKGc9Zy5zdWJzdHJpbmcoMSkpO2hbMF09PT0iIyImJihoPWguc3Vic3RyaW5nKDEpKTtnPWUoZyk7aD1lKGgpO2chPT0iIiYmKGc9Ij8iK2cpO2ghPT0iIiYmKGg9IiMiK2gpO3ZhciBsPSIiK2YrZytoO2xbbC5sZW5ndGgtMV09PT0iLyImJihsPWwuc3Vic3RyaW5nKDAsbC5sZW5ndGgtMSkpO3JldHVybiBsfQpmdW5jdGlvbiBiYyhhKXtmb3IodmFyIGI9MDtiPDM7KytiKXRyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvXCsvZywiICIpO2lmKGM9PT1hKWJyZWFrO2E9Y31jYXRjaChkKXtyZXR1cm4iIn1yZXR1cm4gYX1mdW5jdGlvbiBjYygpe3ZhciBhPUEsYjthOnt2YXIgYz1hLmNyeXB0b3x8YS5tc0NyeXB0bztpZihjJiZjLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoMjUpO2MuZ2V0UmFuZG9tVmFsdWVzKGQpO2I9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGQpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKTticmVhayBhfWNhdGNoKGUpe31iPXZvaWQgMH1yZXR1cm4gYn07LyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIGRjPWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLGVjO2Z1bmN0aW9uIGZjKCl7dmFyIGE9bnVsbDtpZighZGMpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPWRjLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYyl7fXJldHVybiBhfWZ1bmN0aW9uIGhjKCl7ZWM9PT12b2lkIDAmJihlYz1mYygpKTtyZXR1cm4gZWN9O3ZhciBpYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07aWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07ZnVuY3Rpb24gamMoYSl7dmFyIGI9YSxjPWhjKCksZD1jP2MuY3JlYXRlU2NyaXB0VVJMKGIpOmI7cmV0dXJuIG5ldyBpYyhkKX1mdW5jdGlvbiBrYyhhKXtpZihhIGluc3RhbmNlb2YgaWMpcmV0dXJuIGEuSDt0aHJvdyBFcnJvcigiIik7fTt2YXIgbGM9QWEoWyIiXSksbWM9emEoWyJceDAwIl0sWyJcXDAiXSksbmM9emEoWyJcbiJdLFsiXFxuIl0pLG9jPXphKFsiXHgwMCJdLFsiXFx1MDAwMCJdKTtmdW5jdGlvbiBwYyhhKXtyZXR1cm4gYS50b1N0cmluZygpLmluZGV4T2YoImAiKT09PS0xfXBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKGxjKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShtYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobmMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG9jKX0pO3ZhciBxYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07cWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07dmFyIHJjPWZ1bmN0aW9uKGEpe3RoaXMuSnM9YX07ZnVuY3Rpb24gc2MoYSl7cmV0dXJuIG5ldyByYyhmdW5jdGlvbihiKXtyZXR1cm4gYi5zdWJzdHIoMCxhLmxlbmd0aCsxKS50b0xvd2VyQ2FzZSgpPT09YSsiOiJ9KX12YXIgdGM9W3NjKCJkYXRhIiksc2MoImh0dHAiKSxzYygiaHR0cHMiKSxzYygibWFpbHRvIiksc2MoImZ0cCIpLG5ldyByYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO2Z1bmN0aW9uIHVjKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD90YzpiO2lmKGEgaW5zdGFuY2VvZiBxYylyZXR1cm4gYTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkIGluc3RhbmNlb2YgcmMmJmQuSnMoYSkpcmV0dXJuIG5ldyBxYyhhKX19dmFyIHZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7CmZ1bmN0aW9uIHdjKGEpe3ZhciBiO2lmKGEgaW5zdGFuY2VvZiBxYylpZihhIGluc3RhbmNlb2YgcWMpYj1hLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7ZWxzZSBiPXZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGJ9O2Z1bmN0aW9uIHhjKGEsYil7dmFyIGM9d2MoYik7YyE9PXZvaWQgMCYmKGEuYWN0aW9uPWMpfTtmdW5jdGlvbiB5YyhhLGIpe3Rocm93IEVycm9yKGI9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIithKyIhIjpiKTt9O3ZhciB6Yz1mdW5jdGlvbihhKXt0aGlzLkg9YX07emMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07dmFyIEJjPWZ1bmN0aW9uKCl7dGhpcy5IPUFjWzBdLnRvTG93ZXJDYXNlKCl9O0JjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2Z1bmN0aW9uIENjKGEsYil7dmFyIGM9W25ldyBCY107aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCIiKTt2YXIgZD1jLm1hcChmdW5jdGlvbihmKXt2YXIgZztpZihmIGluc3RhbmNlb2YgQmMpZz1mLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGd9KSxlPWIudG9Mb3dlckNhc2UoKTtpZihkLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBlLmluZGV4T2YoZikhPT0wfSkpdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiJytiKyciIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYWxsb3dlZCBwcmVmaXhlcy4nKTthLnNldEF0dHJpYnV0ZShiLCJ0cnVlIil9O3ZhciBEYz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHR5cGVvZiBiIT09InN0cmluZyJ8fGIubGVuZ3RoIT0xPy0xOmEuaW5kZXhPZihiLDApO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGMgaW4gYSYmYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9OyJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIikuY29uY2F0KFsiQlVUVE9OIiwKIklOUFVUIl0pO2Z1bmN0aW9uIEVjKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphfTt2YXIgQT13aW5kb3csRmM9W10sR2M9d2luZG93Lmhpc3RvcnksQj1kb2N1bWVudCxIYz1uYXZpZ2F0b3I7ZnVuY3Rpb24gSWMoKXt2YXIgYTt0cnl7YT1IYy5zZXJ2aWNlV29ya2VyfWNhdGNoKGIpe3JldHVybn1yZXR1cm4gYX12YXIgSmM9Qi5jdXJyZW50U2NyaXB0LEtjPUpjJiZKYy5zcmM7ZnVuY3Rpb24gTWMoYSxiKXt2YXIgYz1BLGQ9Y1thXTtjW2FdPWQ9PT12b2lkIDA/YjpkO3JldHVybiBjW2FdfWZ1bmN0aW9uIE5jKGEpe3JldHVybihIYy51c2VyQWdlbnR8fCIiKS5pbmRleE9mKGEpIT09LTF9ZnVuY3Rpb24gT2MoKXtyZXR1cm4gTmMoIkZpcmVmb3giKXx8TmMoIkZ4aU9TIil9ZnVuY3Rpb24gUGMoKXtyZXR1cm4oTmMoIkdTQSIpfHxOYygiR29vZ2xlQXBwIikpJiYoTmMoImlQaG9uZSIpfHxOYygiaVBhZCIpKX1mdW5jdGlvbiBRYygpe3JldHVybiBOYygiRWRnLyIpfHxOYygiRWRnQS8iKXx8TmMoIkVkZ2lPUy8iKX0KdmFyIFJjPXthc3luYzoxLG5vbmNlOjEsb25lcnJvcjoxLG9ubG9hZDoxLHNyYzoxLHR5cGU6MX0sU2M9e2hlaWdodDoxLG9ubG9hZDoxLHNyYzoxLHN0eWxlOjEsd2lkdGg6MX07ZnVuY3Rpb24gVGMoYSxiLGMpe2ImJkdiKGIsZnVuY3Rpb24oZCxlKXtkPWQudG9Mb3dlckNhc2UoKTtjLmhhc093blByb3BlcnR5KGQpfHxhLnNldEF0dHJpYnV0ZShkLGUpfSl9CmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7dmFyIGY9Qi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtUYyhmLGQsUmMpO2YudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtmLmFzeW5jPWQmJmQuYXN5bmM9PT0hMT8hMTohMDt2YXIgZztnPWpjKEVjKGEpKTtmLnNyYz1rYyhnKTt2YXIgaCxsPWYub3duZXJEb2N1bWVudDtsPWw9PT12b2lkIDA/ZG9jdW1lbnQ6bDt2YXIgbixwLHE9KHA9KG49bCkucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOnAuY2FsbChuLCJzY3JpcHRbbm9uY2VdIik7KGg9cT09bnVsbD8iIjpxLm5vbmNlfHxxLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiIpJiZmLnNldEF0dHJpYnV0ZSgibm9uY2UiLGgpO2ImJihmLm9ubG9hZD1iKTtjJiYoZi5vbmVycm9yPWMpO2U/ZS5hcHBlbmRDaGlsZChmKTpWYy5CcyhmKTtyZXR1cm4gZn0KZnVuY3Rpb24gV2MoKXtpZihLYyl7dmFyIGE9S2MudG9Mb3dlckNhc2UoKTtpZihhLmluZGV4T2YoImh0dHBzOi8vIik9PT0wKXJldHVybiAyO2lmKGEuaW5kZXhPZigiaHR0cDovLyIpPT09MClyZXR1cm4gM31yZXR1cm4gMX1mdW5jdGlvbiBYYyhhLGIsYyxkLGUsZil7Zj1mPT09dm9pZCAwPyEwOmY7dmFyIGc9ZSxoPSExO2d8fChnPUIuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksaD0hMCk7VGMoZyxjLFNjKTtkJiZHYihkLGZ1bmN0aW9uKG4scCl7Zy5kYXRhc2V0W25dPXB9KTtmJiYoZy5oZWlnaHQ9IjAiLGcud2lkdGg9IjAiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTthIT09dm9pZCAwJiYoZy5zcmM9YSk7aWYoaCl7dmFyIGw9Qi5ib2R5JiZCLmJvZHkubGFzdENoaWxkfHxCLmJvZHl8fEIuaGVhZDtsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsbCl9YiYmKGcub25sb2FkPWIpO3JldHVybiBnfQpmdW5jdGlvbiBaYygpe3JldHVybiBWYy5Fci5hcHBseShWYyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfWZ1bmN0aW9uICRjKGEsYixjLGQpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhIWQpfWZ1bmN0aW9uIGFkKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfWZ1bmN0aW9uIGJkKGEpe0Euc2V0VGltZW91dChhLDApfWZ1bmN0aW9uIGNkKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQsZT0oZD1BKS5zZXRJbnRlcnZhbC5hcHBseShkLFthLGJdLmNvbmNhdCh3KGMpKSk7RmMucHVzaChlKTtyZXR1cm4gZX0KZnVuY3Rpb24gZGQoYSl7dmFyIGI9QTt5YihiLnF1ZXVlTWljcm90YXNrKT9iLnF1ZXVlTWljcm90YXNrKGEpOnliKGIuUHJvbWlzZSkmJmIuUHJvbWlzZS5yZXNvbHZlP2IuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe2EoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk6YmQoYSl9ZnVuY3Rpb24gZWQoYSxiKXtyZXR1cm4gYSYmYiYmYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXNbYl0/YS5hdHRyaWJ1dGVzW2JdLnZhbHVlOm51bGx9ZnVuY3Rpb24gZmQoYSl7dmFyIGI9YS5pbm5lclRleHR8fGEudGV4dENvbnRlbnR8fCIiO2ImJmIhPT0iICImJihiPWIucmVwbGFjZSgvXltcc1x4YTBdKy9nLCIiKSxiPWIucmVwbGFjZSgvW1xzXHhhMF0rJC9nLCIiKSk7YiYmKGI9Yi5yZXBsYWNlKC8oXHhhMCt8XHN7Mix9fFxufFxyXHQpL2csIiAiKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGdkKGEpe3ZhciBiPUIuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLGQsZT1FYygiQTxkaXY+IithKyI8L2Rpdj4iKSxmPWhjKCksZz1mP2YuY3JlYXRlSFRNTChlKTplO2Q9bmV3IHpjKGcpO2lmKGMubm9kZVR5cGU9PT0xJiYvXihzY3JpcHR8c3R5bGUpJC9pLnRlc3QoYy50YWdOYW1lKSl0aHJvdyBFcnJvcigiIik7dmFyIGg7aWYoZCBpbnN0YW5jZW9mIHpjKWg9ZC5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2MuaW5uZXJIVE1MPWg7Yj1iLmxhc3RDaGlsZDtmb3IodmFyIGw9W107YiYmYi5maXJzdENoaWxkOylsLnB1c2goYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpKTtyZXR1cm4gbH0KZnVuY3Rpb24gaGQoYSxiLGMpe2M9Y3x8MTAwO2Zvcih2YXIgZD17fSxlPTA7ZTxiLmxlbmd0aDtlKyspZFtiW2VdXT0hMDtmb3IodmFyIGY9YSxnPTA7ZiYmZzw9YztnKyspe2lmKGRbU3RyaW5nKGYudGFnTmFtZSkudG9Mb3dlckNhc2UoKV0pcmV0dXJuIGY7Zj1mLnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWQoYSxiLGMpe3ZhciBkO3RyeXtkPUhjLnNlbmRCZWFjb24mJkhjLnNlbmRCZWFjb24oYSl9Y2F0Y2goZSl7c2IoIlRBR0dJTkciLDE1KX1kP2I9PW51bGx8fGIoKTpaYyhhLGIsYyl9ZnVuY3Rpb24gamQoYSxiKXt0cnl7aWYoSGMuc2VuZEJlYWNvbiE9PXZvaWQgMClyZXR1cm4gSGMuc2VuZEJlYWNvbihhLGIpfWNhdGNoKGMpe3NiKCJUQUdHSU5HIiwxNSl9cmV0dXJuITF9ZnVuY3Rpb24ga2QoKXtyZXR1cm4gSGMuc2VuZEJlYWNvbiE9PXZvaWQgMH0KdmFyIGxkPXtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixrZWVwYWxpdmU6ITAsbWV0aG9kOiJQT1NUIixtb2RlOiJuby1jb3JzIixyZWRpcmVjdDoiZm9sbG93In07CmZ1bmN0aW9uIG1kKGEsYixjLGQsZSl7aWYobmQoKSl7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7YiYmKGYuYm9keT1iKTtjJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZyYmKGYuYXR0cmlidXRpb25SZXBvcnRpbmc9Yy5hdHRyaWJ1dGlvblJlcG9ydGluZyksYy5icm93c2luZ1RvcGljcyE9PXZvaWQgMCYmKGYuYnJvd3NpbmdUb3BpY3M9Yy5icm93c2luZ1RvcGljcyksYy5jcmVkZW50aWFscyYmKGYuY3JlZGVudGlhbHM9Yy5jcmVkZW50aWFscyksYy5rZWVwYWxpdmUhPT12b2lkIDAmJihmLmtlZXBhbGl2ZT1jLmtlZXBhbGl2ZSksYy5tZXRob2QmJihmLm1ldGhvZD1jLm1ldGhvZCksYy5tb2RlJiYoZi5tb2RlPWMubW9kZSkpO3RyeXt2YXIgZz1BLmZldGNoKGEsZik7aWYoZylyZXR1cm4gZy50aGVuKGZ1bmN0aW9uKGwpe2wmJihsLm9rfHxsLnN0YXR1cz09PTApP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PQpudWxsfHxlKCl9KSwhMH1jYXRjaChsKXt9fWlmKChjPT1udWxsPzA6Yy5RZyl8fChjPT1udWxsPzA6Yy5jcmVkZW50aWFscykmJmMuY3JlZGVudGlhbHMhPT0iaW5jbHVkZSIpcmV0dXJuIGU9PW51bGx8fGUoKSwhMTtpZihiKXt2YXIgaD1qZChhLGIpO2g/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKTtyZXR1cm4gaH1WYy53dChhLGQsZSk7cmV0dXJuITB9ZnVuY3Rpb24gbmQoKXtyZXR1cm4geWIoQS5mZXRjaCl9ZnVuY3Rpb24gb2QoYSxiKXt2YXIgYz1hW2JdO2MmJnR5cGVvZiBjLmFuaW1WYWw9PT0ic3RyaW5nIiYmKGM9Yy5hbmltVmFsKTtyZXR1cm4gY31mdW5jdGlvbiBwZCgpe3ZhciBhPUEucGVyZm9ybWFuY2U7aWYoYSYmeWIoYS5ub3cpKXJldHVybiBhLm5vdygpfQpmdW5jdGlvbiBxZCgpe3ZhciBhLGI9QS5wZXJmb3JtYW5jZTtpZihiJiZiLmdldEVudHJpZXNCeVR5cGUpdHJ5e3ZhciBjPWIuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpO2MmJmMubGVuZ3RoPjAmJihhPWNbMF0udHlwZSl9Y2F0Y2goZCl7cmV0dXJuImUifWlmKCFhKXJldHVybiJ1Ijtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJuIjtjYXNlICJiYWNrX2ZvcndhcmQiOnJldHVybiJoIjtjYXNlICJyZWxvYWQiOnJldHVybiJyIjtjYXNlICJwcmVyZW5kZXIiOnJldHVybiJwIjtkZWZhdWx0OnJldHVybiJ4In19ZnVuY3Rpb24gcmQoKXtyZXR1cm4gQS5wZXJmb3JtYW5jZXx8dm9pZCAwfWZ1bmN0aW9uIHNkKCl7dmFyIGE9QS53ZWJQaXhlbHNNYW5hZ2VyO3JldHVybiBhP2EuY3JlYXRlU2hvcGlmeUV4dGVuZCE9PXZvaWQgMDohMX0KdmFyIFZjPXtFcjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgSW1hZ2UoMSwxKTtUYyhlLGQse30pO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZS5vbmxvYWQ9bnVsbDtiJiZiKCl9O2Uub25lcnJvcj1mdW5jdGlvbigpe2Uub25lcnJvcj1udWxsO2MmJmMoKX07ZS5zcmM9YTtyZXR1cm4gZX0sQnM6ZnVuY3Rpb24oYSl7dmFyIGI9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF18fEIuYm9keXx8Qi5oZWFkO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX0sd3Q6aWR9O2Z1bmN0aW9uIHRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdWQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT09PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB3ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3JldHVybiBTdHJpbmcoYykuaW5kZXhPZihTdHJpbmcoZCkpPi0xfWZ1bmN0aW9uIHhkKGEsYil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYSkpLGQ9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYikpO3JldHVybiBjLnN1YnN0cmluZygwLGQubGVuZ3RoKT09PWR9CmZ1bmN0aW9uIHlkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7c3dpdGNoKGMpe2Nhc2UgInBhZ2VMb2NhdGlvbiI6dmFyIGU9QS5sb2NhdGlvbi5ocmVmO2QgaW5zdGFuY2VvZiBrYiYmZC5nZXQoInN0cmlwUHJvdG9jb2wiKSYmKGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSk7cmV0dXJuIGV9fTsvKgogalF1ZXJ5IChjKSAyMDA1LCAyMDEyIGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIGpxdWVyeS5vcmcvbGljZW5zZS4KKi8KdmFyIHpkPS9cW29iamVjdCAoQm9vbGVhbnxOdW1iZXJ8U3RyaW5nfEZ1bmN0aW9ufEFycmF5fERhdGV8UmVnRXhwKVxdLyxBZD1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBTdHJpbmcoYSk7dmFyIGI9emQuZXhlYyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KGEpKSk7cmV0dXJuIGI/YlsxXS50b0xvd2VyQ2FzZSgpOiJvYmplY3QifSxCZD1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoT2JqZWN0KGEpLGIpfSxDZD1mdW5jdGlvbihhKXtpZighYXx8QWQoYSkhPSJvYmplY3QifHxhLm5vZGVUeXBlfHxhPT1hLndpbmRvdylyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIUJkKGEsImNvbnN0cnVjdG9yIikmJiFCZChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWZvcih2YXIgYiBpbiBhKTtyZXR1cm4gYj09PXZvaWQgMHx8CkJkKGEsYil9LEVkPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8KEFkKGEpPT0iYXJyYXkiP1tdOnt9KSxkO2ZvcihkIGluIGEpaWYoQmQoYSxkKSl7dmFyIGU9YVtkXTtBZChlKT09ImFycmF5Ij8oQWQoY1tkXSkhPSJhcnJheSImJihjW2RdPVtdKSxjW2RdPUVkKGUsY1tkXSkpOkNkKGUpPyhDZChjW2RdKXx8KGNbZF09e30pLGNbZF09RWQoZSxjW2RdKSk6Y1tkXT1lfXJldHVybiBjfTtmdW5jdGlvbiBGZChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmYT49MCYmaXNGaW5pdGUoYSkmJmElMT09PTB8fHR5cGVvZiBhPT09InN0cmluZyImJmFbMF0hPT0iLSImJmE9PT0iIitwYXJzZUludChhKX07dmFyIEdkPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO3RoaXMubGE9bmV3IFVhO3RoaXMudmFsdWVzPVtdO3RoaXMuTmE9ITE7Zm9yKHZhciBiIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShiKSYmKEZkKGIpP3RoaXMudmFsdWVzW051bWJlcihiKV09YVtOdW1iZXIoYildOnRoaXMubGEuc2V0KGIsYVtiXSkpfTtrPUdkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe2lmKGEmJmEuaW5kZXhPZih0aGlzKT49MClyZXR1cm4iIjtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy52YWx1ZXMubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy52YWx1ZXNbY107ZD09PW51bGx8fGQ9PT12b2lkIDA/Yi5wdXNoKCIiKTpkIGluc3RhbmNlb2YgR2Q/KGE9YXx8W10sYS5wdXNoKHRoaXMpLGIucHVzaChkLnRvU3RyaW5nKGEpKSxhLnBvcCgpKTpiLnB1c2goU3RyaW5nKGQpKX1yZXR1cm4gYi5qb2luKCIsIil9OwprLnNldD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLk5hKWlmKGE9PT0ibGVuZ3RoIil7aWYoIUZkKGIpKXRocm93IGNiKEVycm9yKCJSYW5nZUVycm9yOiBMZW5ndGggcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGludGVnZXIuIikpO3RoaXMudmFsdWVzLmxlbmd0aD1OdW1iZXIoYil9ZWxzZSBGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldPWI6dGhpcy5sYS5zZXQoYSxiKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0ibGVuZ3RoIj90aGlzLmxlbmd0aCgpOkZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5sYS5nZXQoYSl9O2subGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aH07ay5GYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLkZhKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFN0cmluZyhiKSk7cmV0dXJuIGF9OwprLmhjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuaGMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2godGhpcy52YWx1ZXNbYl0pO3JldHVybiBhfTtrLmZjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuZmMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goW1N0cmluZyhiKSx0aGlzLnZhbHVlc1tiXV0pO3JldHVybiBhfTtrLnJlbW92ZT1mdW5jdGlvbihhKXtGZChhKT9kZWxldGUgdGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucG9wKCl9O2sucHVzaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wdXNoLmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMuc2hpZnQoKX07Cmsuc3BsaWNlPWZ1bmN0aW9uKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpO3JldHVybiBiPT09dm9pZCAwJiZjLmxlbmd0aD09PTA/bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZShhKSk6bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZS5hcHBseSh0aGlzLnZhbHVlcyxbYSxifHwwXS5jb25jYXQodyhjKSkpKX07ay51bnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnVuc2hpZnQuYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIEZkKGEpJiZ0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShhKXx8dGhpcy5sYS5oYXMoYSl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwO09iamVjdC5mcmVlemUodGhpcy52YWx1ZXMpfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9OwpmdW5jdGlvbiBIZChhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGgoKTtjKyspYS5oYXMoYykmJihiW2NdPWEuZ2V0KGMpKTtyZXR1cm4gYn07dmFyIElkPWZ1bmN0aW9uKGEsYil7dGhpcy5mdW5jdGlvbk5hbWU9YTt0aGlzLmllPWI7dGhpcy5sYT1uZXcgVWE7dGhpcy5OYT0hMX07az1JZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldEtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdkKHRoaXMuRmEoKSl9O2suaW52b2tlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmllLmNhbGwuYXBwbHkodGhpcy5pZSxbbmV3IEpkKHRoaXMsYSldLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5hcHBseT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmllLmFwcGx5KG5ldyBKZCh0aGlzLGEpLGIpfTtrLk5jPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTt0cnl7cmV0dXJuIHRoaXMuaW52b2tlLmFwcGx5KHRoaXMsW2FdLmNvbmNhdCh3KGIpKSl9Y2F0Y2goYyl7fX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTt2YXIgS2Q9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoS2QsSWQpO3ZhciBMZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShMZCxJZCk7dmFyIEpkPWZ1bmN0aW9uKGEsYil7dGhpcy5pZT1hO3RoaXMuVD1ifTsKSmQucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuVDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9mYihiLGEpOmF9O0pkLnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWUuZ2V0TmFtZSgpfTtKZC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ULmplKCl9O3ZhciBNZD1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBNYXB9O01kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm1hcC5zZXQoYSxiKX07TWQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuZ2V0KGEpfTt2YXIgTmQ9ZnVuY3Rpb24oKXt0aGlzLmtleXM9W107dGhpcy52YWx1ZXM9W119O05kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmtleXMucHVzaChhKTt0aGlzLnZhbHVlcy5wdXNoKGIpfTtOZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMua2V5cy5pbmRleE9mKGEpO2lmKGI+LTEpcmV0dXJuIHRoaXMudmFsdWVzW2JdfTtmdW5jdGlvbiBPZCgpe3RyeXtyZXR1cm4gTWFwP25ldyBNZDpuZXcgTmR9Y2F0Y2goYSl7cmV0dXJuIG5ldyBOZH19O3ZhciBQZD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUGQpcmV0dXJuIGE7dmFyIGI7YTppZihhPT12b2lkIDB8fEFycmF5LmlzQXJyYXkoYSl8fENkKGEpKWI9ITA7ZWxzZXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJmdW5jdGlvbiI6Yj0hMDticmVhayBhfWI9ITF9aWYoYil0aHJvdyBFcnJvcigiVHlwZSBvZiBnaXZlbiB2YWx1ZSBoYXMgYW4gZXF1aXZhbGVudCBQaXhpZSB0eXBlLiIpO3RoaXMudmFsdWU9YX07UGQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O1BkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy52YWx1ZSl9O3ZhciBTZD1mdW5jdGlvbihhKXt0aGlzLnByb21pc2U9YTt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhO3RoaXMubGEuc2V0KCJ0aGVuIixSZCh0aGlzKSk7dGhpcy5sYS5zZXQoImNhdGNoIixSZCh0aGlzLCEwKSk7dGhpcy5sYS5zZXQoImZpbmFsbHkiLFJkKHRoaXMsITEsITApKX07az1TZC5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9Owp2YXIgUmQ9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oZCxlKXtiJiYoZT1kLGQ9dm9pZCAwKTtjJiYoZT1kKTtkIGluc3RhbmNlb2YgS2R8fChkPXZvaWQgMCk7ZSBpbnN0YW5jZW9mIEtkfHwoZT12b2lkIDApO3ZhciBmPXRoaXMuVC53YigpLGc9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gYz8obC5pbnZva2UoZiksYS5wcm9taXNlKTpsLmludm9rZShmLG4pfWNhdGNoKHApe3JldHVybiBQcm9taXNlLnJlamVjdChwIGluc3RhbmNlb2YgRXJyb3I/bmV3IFBkKHApOlN0cmluZyhwKSl9fX0saD1hLnByb21pc2UudGhlbihkJiZnKGQpLGUmJmcoZSkpO3JldHVybiBuZXcgU2QoaCl9KX07U2QucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07U2QucHJvdG90eXBlLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIFRkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGw9Zy5GYSgpLG49MDtuPGwubGVuZ3RoO24rKyloW2xbbl1dPWYoZy5nZXQobFtuXSkpfSxmPWZ1bmN0aW9uKGcpe2lmKGc9PT1udWxsfHxnPT09dm9pZCAwKXJldHVybiBnO3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoZyBpbnN0YW5jZW9mIEdkKXt2YXIgbD1bXTtkLnNldChnLGwpO2Zvcih2YXIgbj1nLkZhKCkscD0wO3A8bi5sZW5ndGg7cCsrKWxbbltwXV09ZihnLmdldChuW3BdKSk7cmV0dXJuIGx9aWYoZyBpbnN0YW5jZW9mIFNkKXJldHVybiBnLnByb21pc2UudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gVGQodSxiLDEpfSxmdW5jdGlvbih1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoVGQodSxiLDEpKX0pO2lmKGcgaW5zdGFuY2VvZiBrYil7dmFyIHE9e307ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9aWYoZyBpbnN0YW5jZW9mIEtkKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgdT0KW10sdj0wO3Y8YXJndW1lbnRzLmxlbmd0aDt2KyspdVt2XT1VZChhcmd1bWVudHNbdl0sYixjKTt2YXIgeD1uZXcgaGIoYj9iLmplKCk6bmV3IFdhKTtiJiZ4LnVlKGIueGIoKSk7cmV0dXJuIGYoZy5hcHBseSh4LHUpKX07ZC5zZXQoZyxyKTtlKGcscik7cmV0dXJuIHJ9dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2Nhc2UgMzp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGcgaW5zdGFuY2VvZiBQZCYmdClyZXR1cm4gZy5nZXRWYWx1ZSgpO3N3aXRjaCh0eXBlb2YgZyl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgInVuZGVmaW5lZCI6cmV0dXJuIGc7Y2FzZSAib2JqZWN0IjppZihnPT09Cm51bGwpcmV0dXJuIG51bGx9fTtyZXR1cm4gZihhKX0KZnVuY3Rpb24gVWQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbCBpbiBnKWcuaGFzT3duUHJvcGVydHkobCkmJmguc2V0KGwsZihnW2xdKSl9LGY9ZnVuY3Rpb24oZyl7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihBcnJheS5pc0FycmF5KGcpfHxIYihnKSl7dmFyIGw9bmV3IEdkO2Quc2V0KGcsbCk7Zm9yKHZhciBuIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShuKSYmbC5zZXQobixmKGdbbl0pKTtyZXR1cm4gbH1pZihDZChnKSl7dmFyIHA9bmV3IGtiO2Quc2V0KGcscCk7ZShnLHApO3JldHVybiBwfWlmKHR5cGVvZiBnPT09ImZ1bmN0aW9uIil7dmFyIHE9bmV3IEtkKCIiLGZ1bmN0aW9uKCl7Zm9yKHZhciB1PU9hLmFwcGx5KDAsYXJndW1lbnRzKSx2PVtdLHg9MDt4PHUubGVuZ3RoO3grKyl2W3hdPVRkKHRoaXMuZXZhbHVhdGUodVt4XSksYixjKTtyZXR1cm4gZih0aGlzLlQuUGooKShnLGcsdikpfSk7ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9dmFyIHI9dHlwZW9mIGc7aWYoZz09PW51bGx8fHI9PT0ic3RyaW5nInx8cj09PSJudW1iZXIifHxyPT09ImJvb2xlYW4iKXJldHVybiBnO3ZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztkZWZhdWx0On1pZihnIT09dm9pZCAwJiZ0KXJldHVybiBuZXcgUGQoZyl9O3JldHVybiBmKGEpfTt2YXIgVmQ9e3N1cHBvcnRlZE1ldGhvZHM6ImNvbmNhdCBldmVyeSBmaWx0ZXIgZm9yRWFjaCBoYXNPd25Qcm9wZXJ0eSBpbmRleE9mIGpvaW4gbGFzdEluZGV4T2YgbWFwIHBvcCBwdXNoIHJlZHVjZSByZWR1Y2VSaWdodCByZXZlcnNlIHNoaWZ0IHNsaWNlIHNvbWUgc29ydCBzcGxpY2UgdW5zaGlmdCB0b1N0cmluZyIuc3BsaXQoIiAiKSxjb25jYXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMubGVuZ3RoKCk7YysrKWIucHVzaCh0aGlzLmdldChjKSk7Zm9yKHZhciBkPTE7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKylpZihhcmd1bWVudHNbZF1pbnN0YW5jZW9mIEdkKWZvcih2YXIgZT1hcmd1bWVudHNbZF0sZj0wO2Y8ZS5sZW5ndGgoKTtmKyspYi5wdXNoKGUuZ2V0KGYpKTtlbHNlIGIucHVzaChhcmd1bWVudHNbZF0pO3JldHVybiBuZXcgR2QoYil9LGV2ZXJ5OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmCmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJiFiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITE7cmV0dXJuITB9LGZpbHRlcjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmYi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpJiZkLnB1c2godGhpcy5nZXQoZSkpO3JldHVybiBuZXcgR2QoZCl9LGZvckVhY2g6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKXRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcyl9LGhhc093blByb3BlcnR5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaGFzKGIpfSxpbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9Yz09PXZvaWQgMD8wOk51bWJlcihjKTtlPDAmJihlPU1hdGgubWF4KGQrZSwwKSk7Zm9yKHZhciBmPQplO2Y8ZDtmKyspaWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sam9pbjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDx0aGlzLmxlbmd0aCgpO2QrKyljLnB1c2godGhpcy5nZXQoZCkpO3JldHVybiBjLmpvaW4oYil9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9ZC0xO2MhPT12b2lkIDAmJihlPWM8MD9kK2M6TWF0aC5taW4oYyxlKSk7Zm9yKHZhciBmPWU7Zj49MDtmLS0paWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sbWFwOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiYoZFtlXT1iLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykpO3JldHVybiBuZXcgR2QoZCl9LHBvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvcCgpfSxwdXNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2guYXBwbHkodGhpcywKdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX0scmVkdWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj0wO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7Zm9yKHZhciBnPTA7ZzxkO2crKylpZih0aGlzLmhhcyhnKSl7ZT10aGlzLmdldChnKTtmPWcrMTticmVha31pZihnPT09ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aDxkO2grKyl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZWR1Y2VSaWdodDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9ZC0xO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTsKZm9yKHZhciBnPTE7Zzw9ZDtnKyspaWYodGhpcy5oYXMoZC1nKSl7ZT10aGlzLmdldChkLWcpO2Y9ZC0oZysxKTticmVha31pZihnPmQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aD49MDtoLS0pdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmV2ZXJzZTpmdW5jdGlvbigpe2Zvcih2YXIgYT1IZCh0aGlzKSxiPWEubGVuZ3RoLTEsYz0wO2I+PTA7Yi0tLGMrKylhLmhhc093blByb3BlcnR5KGIpP3RoaXMuc2V0KGMsYVtiXSk6dGhpcy5yZW1vdmUoYyk7cmV0dXJuIHRoaXN9LHNoaWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hpZnQoKX0sc2xpY2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCk7Yj09PXZvaWQgMCYmKGI9MCk7Yj1iPDA/TWF0aC5tYXgoZCtiLDApOk1hdGgubWluKGIsZCk7Yz1jPT09CnZvaWQgMD9kOmM8MD9NYXRoLm1heChkK2MsMCk6TWF0aC5taW4oYyxkKTtjPU1hdGgubWF4KGIsYyk7Zm9yKHZhciBlPVtdLGY9YjtmPGM7ZisrKWUucHVzaCh0aGlzLmdldChmKSk7cmV0dXJuIG5ldyBHZChlKX0sc29tZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMDtyZXR1cm4hMX0sc29ydDpmdW5jdGlvbihhLGIpe3ZhciBjPUhkKHRoaXMpO2I9PT12b2lkIDA/Yy5zb3J0KCk6Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIE51bWJlcihiLmludm9rZShhLGUsZikpfSk7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspYy5oYXNPd25Qcm9wZXJ0eShkKT90aGlzLnNldChkLGNbZF0pOnRoaXMucmVtb3ZlKGQpO3JldHVybiB0aGlzfSxzcGxpY2U6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLnNwbGljZS5hcHBseSh0aGlzLApbYixjXS5jb25jYXQodyhPYS5hcHBseSgzLGFyZ3VtZW50cykpKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdW5zaGlmdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy51bnNoaWZ0LmFwcGx5KHRoaXMsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX19O3ZhciBXZD17Y2hhckF0OjEsY29uY2F0OjEsaW5kZXhPZjoxLGxhc3RJbmRleE9mOjEsbWF0Y2g6MSxyZXBsYWNlOjEsc2VhcmNoOjEsc2xpY2U6MSxzcGxpdDoxLHN1YnN0cmluZzoxLHRvTG93ZXJDYXNlOjEsdG9Mb2NhbGVMb3dlckNhc2U6MSx0b1N0cmluZzoxLHRvVXBwZXJDYXNlOjEsdG9Mb2NhbGVVcHBlckNhc2U6MSx0cmltOjF9LFhkPW5ldyBUYSgiYnJlYWsiKSxZZD1uZXcgVGEoImNvbnRpbnVlIik7ZnVuY3Rpb24gWmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSt0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gQXBwbHkgaW5zdHJ1Y3Rpb24uIik7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3QgcmVhZCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7dmFyIGc9dHlwZW9mIGQ9PT0ibnVtYmVyIjtpZih0eXBlb2YgZD09PSJib29sZWFuInx8Zyl7aWYoZT09PSJ0b1N0cmluZyIpe2lmKGcmJmYubGVuZ3RoKCkpe3ZhciBoPVRkKGYuZ2V0KDApKTt0cnl7cmV0dXJuIGQudG9TdHJpbmcoaCl9Y2F0Y2godSl7fX1yZXR1cm4gZC50b1N0cmluZygpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZCsiLiIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uLiIpKTt9aWYodHlwZW9mIGQ9PT0KInN0cmluZyIpe2lmKFdkLmhhc093blByb3BlcnR5KGUpKXt2YXIgbD1UZChmLHZvaWQgMCwxKTtyZXR1cm4gVWQoZFtlXS5hcHBseShkLGwpLHRoaXMuVCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGQgaW5zdGFuY2VvZiBHZCl7aWYoZC5oYXMoZSkpe3ZhciBuPWQuZ2V0KFN0cmluZyhlKSk7aWYobiBpbnN0YW5jZW9mIEtkKXt2YXIgcD1IZChmKTtyZXR1cm4gbi5hcHBseSh0aGlzLlQscCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKFZkLnN1cHBvcnRlZE1ldGhvZHMuaW5kZXhPZihlKT49MCl7dmFyIHE9SGQoZik7cmV0dXJuIFZkW2VdLmNhbGwuYXBwbHkoVmRbZV0sW2QsdGhpcy5UXS5jb25jYXQodyhxKSkpfX1pZihkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkKXtpZihkLmhhcyhlKSl7dmFyIHI9ZC5nZXQoZSk7CmlmKHIgaW5zdGFuY2VvZiBLZCl7dmFyIHQ9SGQoZik7cmV0dXJuIHIuYXBwbHkodGhpcy5ULHQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihlPT09InRvU3RyaW5nIilyZXR1cm4gZCBpbnN0YW5jZW9mIEtkP2QuZ2V0TmFtZSgpOmQudG9TdHJpbmcoKTtpZihlPT09Imhhc093blByb3BlcnR5IilyZXR1cm4gZC5oYXMoZi5nZXQoMCkpfWlmKGQgaW5zdGFuY2VvZiBQZCYmZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQudG9TdHJpbmcoKTt0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBPYmplY3QgaGFzIG5vICciK2UrIicgcHJvcGVydHkuIikpO30KZnVuY3Rpb24gYmUoYSxiKXthPXRoaXMuZXZhbHVhdGUoYSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgbmFtZSBnaXZlbiBmb3IgYXNzaWdubWVudC4iKTt2YXIgYz10aGlzLlQ7aWYoIWMuaGFzKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFzc2lnbiB0byB1bmRlZmluZWQgdmFsdWUgIitiKTt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2Muc2V0KGEsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoKXt2YXIgYT1PYS5hcHBseSgwLGFyZ3VtZW50cyksYj10aGlzLlQud2IoKSxjPWViKGIsYSk7aWYoYyBpbnN0YW5jZW9mIFRhKXJldHVybiBjfWZ1bmN0aW9uIGRlKCl7cmV0dXJuIFhkfWZ1bmN0aW9uIGVlKGEpe2Zvcih2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiW2NdKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9fQpmdW5jdGlvbiBmZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPWFyZ3VtZW50c1tiXTtpZih0eXBlb2YgYz09PSJzdHJpbmciKXt2YXIgZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLlFoKGMsZCl9fX1mdW5jdGlvbiBnZSgpe3JldHVybiBZZH1mdW5jdGlvbiBoZShhLGIpe3JldHVybiBuZXcgVGEoYSx0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBpZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2Q9bmV3IEdkO2Zvcih2YXIgZT10aGlzLmV2YWx1YXRlKGIpLGY9MDtmPGUubGVuZ3RoO2YrKylkLnB1c2goZVtmXSk7dmFyIGc9WzUxLGEsZF0uY29uY2F0KHcoYykpO3RoaXMuVC5hZGQoYSx0aGlzLmV2YWx1YXRlKGcpKX1mdW5jdGlvbiBqZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpL3RoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGtlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYiksZT1jIGluc3RhbmNlb2YgUGQsZj1kIGluc3RhbmNlb2YgUGQ7cmV0dXJuIGV8fGY/ZSYmZj9jLmdldFZhbHVlKCk9PT1kLmdldFZhbHVlKCk6ITE6Yz09ZH1mdW5jdGlvbiBsZSgpe2Zvcih2YXIgYSxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylhPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTtyZXR1cm4gYX1mdW5jdGlvbiBtZShhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGIoKTtlKyspe3ZhciBmPWEoYyhlKSksZz1lYihmLGQpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ319fQpmdW5jdGlvbiBuZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZil7cmV0dXJuIGZ9LGMpO2lmKGIgaW5zdGFuY2VvZiBrYnx8YiBpbnN0YW5jZW9mIFNkfHxiIGluc3RhbmNlb2YgR2R8fGIgaW5zdGFuY2VvZiBLZCl7dmFyIGQ9Yi5GYSgpLGU9ZC5sZW5ndGg7cmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gZX0sZnVuY3Rpb24oZil7cmV0dXJuIGRbZl19LGMpfX1mdW5jdGlvbiBvZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiBwZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHJlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHRlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gdWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9CmZ1bmN0aW9uIHNlKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihkKXtyZXR1cm4gYltkXX0sYyk7aWYoYiBpbnN0YW5jZW9mIEdkKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RoKCl9LGZ1bmN0aW9uKGQpe3JldHVybiBiLmdldChkKX0sYyk7dGhyb3cgY2IoRXJyb3IoIlRoZSB2YWx1ZSBpcyBub3QgaXRlcmFibGUuIikpO30KZnVuY3Rpb24gdmUoYSxiLGMsZCl7ZnVuY3Rpb24gZShxLHIpe2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGgoKTt0Kyspe3ZhciB1PWYuZ2V0KHQpO3IuYWRkKHUscS5nZXQodSkpfX12YXIgZj10aGlzLmV2YWx1YXRlKGEpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiVHlwZUVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBGb3JMZXQgaW5zdHJ1Y3Rpb24uIik7dmFyIGc9dGhpcy5ULGg9dGhpcy5ldmFsdWF0ZShkKSxsPWcud2IoKTtmb3IoZShnLGwpO2ZiKGwsYik7KXt2YXIgbj1lYihsLGgpO2lmKG4gaW5zdGFuY2VvZiBUYSl7aWYobi50eXBlPT09ImJyZWFrIilicmVhaztpZihuLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gbn12YXIgcD1nLndiKCk7ZShsLHApO2ZiKHAsYyk7bD1wfX0KZnVuY3Rpb24gd2UoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD10aGlzLlQsZT10aGlzLmV2YWx1YXRlKGIpO2lmKCEoZSBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IG5vbi1MaXN0IHZhbHVlIGdpdmVuIGZvciBGbiBhcmd1bWVudCBuYW1lcy4iKTtyZXR1cm4gbmV3IEtkKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz1kLndiKCk7Zy54YigpPT09dm9pZCAwJiZnLnVlKHRoaXMuVC54YigpKTtmb3IodmFyIGg9W10sbD0wO2w8Zi5sZW5ndGg7bCsrKXt2YXIgbj10aGlzLmV2YWx1YXRlKGZbbF0pO2hbbF09bn1mb3IodmFyIHA9ZS5nZXQoImxlbmd0aCIpLHE9MDtxPHA7cSsrKXE8aC5sZW5ndGg/Zy5hZGQoZS5nZXQocSksaFtxXSk6Zy5hZGQoZS5nZXQocSksdm9pZCAwKTtnLmFkZCgiYXJndW1lbnRzIixuZXcgR2QoaCkpO3ZhciByPWViKGcsYyk7aWYociBpbnN0YW5jZW9mIFRhKXJldHVybiByLnR5cGU9PT0KInJldHVybiI/ci5kYXRhOnJ9fSgpKX1mdW5jdGlvbiB4ZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9dGhpcy5UO2lmKHllJiYhYy5oYXMoYikpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGIrIiBpcyBub3QgZGVmaW5lZC4iKTtyZXR1cm4gYy5nZXQoYil9CmZ1bmN0aW9uIHplKGEsYil7dmFyIGMsZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKTtpZihkPT09dm9pZCAwfHxkPT09bnVsbCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mICIrZCsiIChyZWFkaW5nICciK2UrIicpIikpO2lmKGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBLZCljPWQuZ2V0KGUpO2Vsc2UgaWYodHlwZW9mIGQ9PT0ic3RyaW5nIillPT09Imxlbmd0aCI/Yz1kLmxlbmd0aDpGZChlKSYmKGM9ZFtlXSk7ZWxzZSBpZihkIGluc3RhbmNlb2YgUGQpcmV0dXJuO3JldHVybiBjfWZ1bmN0aW9uIEFlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBCZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPj10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBDZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO2MgaW5zdGFuY2VvZiBQZCYmKGM9Yy5nZXRWYWx1ZSgpKTtkIGluc3RhbmNlb2YgUGQmJihkPWQuZ2V0VmFsdWUoKSk7cmV0dXJuIGM9PT1kfWZ1bmN0aW9uIERlKGEsYil7cmV0dXJuIUNlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIEVlKGEsYixjKXt2YXIgZD1bXTt0aGlzLmV2YWx1YXRlKGEpP2Q9dGhpcy5ldmFsdWF0ZShiKTpjJiYoZD10aGlzLmV2YWx1YXRlKGMpKTt2YXIgZT1lYih0aGlzLlQsZCk7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlfXZhciB5ZT0hMTsKZnVuY3Rpb24gRmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gSGUoKXtmb3IodmFyIGE9bmV3IEdkLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7YS5wdXNoKGMpfXJldHVybiBhfWZ1bmN0aW9uIEllKCl7Zm9yKHZhciBhPW5ldyBrYixiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKSksZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLnNldChjLGQpfXJldHVybiBhfWZ1bmN0aW9uIEplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkldGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSp0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIExlKGEpe3JldHVybi10aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE1lKGEpe3JldHVybiF0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE5lKGEsYil7cmV0dXJuIWtlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIE9lKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gUGUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBRZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSk7dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gY31mdW5jdGlvbiBSZShhKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBTZSgpe3JldHVybiBPYS5hcHBseSgwLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVGUoYSl7cmV0dXJuIG5ldyBUYSgicmV0dXJuIix0aGlzLmV2YWx1YXRlKGEpKX0KZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCBzZXQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpOyhkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIGtiKSYmZC5zZXQoU3RyaW5nKGUpLGYpO3JldHVybiBmfWZ1bmN0aW9uIFZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSktdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighQXJyYXkuaXNBcnJheShlKXx8IUFycmF5LmlzQXJyYXkoZikpdGhyb3cgRXJyb3IoIkVycm9yOiBNYWxmb3JtZWQgc3dpdGNoIGluc3RydWN0aW9uLiIpO2Zvcih2YXIgZyxoPSExLGw9MDtsPGUubGVuZ3RoO2wrKylpZihofHxkPT09dGhpcy5ldmFsdWF0ZShlW2xdKSlpZihnPXRoaXMuZXZhbHVhdGUoZltsXSksZyBpbnN0YW5jZW9mIFRhKXt2YXIgbj1nLnR5cGU7aWYobj09PSJicmVhayIpcmV0dXJuO2lmKG49PT0icmV0dXJuInx8bj09PSJjb250aW51ZSIpcmV0dXJuIGd9ZWxzZSBoPSEwO2lmKGYubGVuZ3RoPT09ZS5sZW5ndGgrMSYmKGc9dGhpcy5ldmFsdWF0ZShmW2YubGVuZ3RoLTFdKSxnIGluc3RhbmNlb2YgVGEmJihnLnR5cGU9PT0icmV0dXJuInx8Zy50eXBlPT09ImNvbnRpbnVlIikpKXJldHVybiBnfQpmdW5jdGlvbiBYZShhLGIsYyl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk/dGhpcy5ldmFsdWF0ZShiKTp0aGlzLmV2YWx1YXRlKGMpfWZ1bmN0aW9uIFllKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSk7cmV0dXJuIGIgaW5zdGFuY2VvZiBLZD8iZnVuY3Rpb24iOnR5cGVvZiBifWZ1bmN0aW9uIFplKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9YXJndW1lbnRzW2JdO3R5cGVvZiBjIT09InN0cmluZyJ8fGEuYWRkKGMsdm9pZCAwKX19CmZ1bmN0aW9uICRlKGEsYixjLGQpe3ZhciBlPXRoaXMuZXZhbHVhdGUoZCk7aWYodGhpcy5ldmFsdWF0ZShjKSl7dmFyIGY9ZWIodGhpcy5ULGUpO2lmKGYgaW5zdGFuY2VvZiBUYSl7aWYoZi50eXBlPT09ImJyZWFrIilyZXR1cm47aWYoZi50eXBlPT09InJldHVybiIpcmV0dXJuIGZ9fWZvcig7dGhpcy5ldmFsdWF0ZShhKTspe3ZhciBnPWViKHRoaXMuVCxlKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9dGhpcy5ldmFsdWF0ZShiKX19ZnVuY3Rpb24gYWYoYSl7cmV0dXJufk51bWJlcih0aGlzLmV2YWx1YXRlKGEpKX1mdW5jdGlvbiBiZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk8PE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBjZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX0KZnVuY3Rpb24gZGYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGVmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKSZOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpXk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBnZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGhmKCl7fQpmdW5jdGlvbiBrZihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfWNhdGNoKGgpe2lmKCEoaCBpbnN0YW5jZW9mIGJiJiZoLlNuKSl0aHJvdyBoO3ZhciBlPXRoaXMuVC53YigpO2EhPT0iIiYmKGggaW5zdGFuY2VvZiBiYiYmKGg9aC52byksZS5hZGQoYSxuZXcgUGQoaCkpKTt2YXIgZj10aGlzLmV2YWx1YXRlKGMpLGc9ZWIoZSxmKTtpZihnIGluc3RhbmNlb2YgVGEpcmV0dXJuIGd9fWZ1bmN0aW9uIGxmKGEsYil7dmFyIGMsZDt0cnl7ZD10aGlzLmV2YWx1YXRlKGEpfWNhdGNoKGYpe2lmKCEoZiBpbnN0YW5jZW9mIGJiJiZmLlNuKSl0aHJvdyBmO2M9Zn12YXIgZT10aGlzLmV2YWx1YXRlKGIpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZTtpZihjKXRocm93IGM7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfTt2YXIgbmY9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGdiO21mKHRoaXMpfTtuZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILnJrKGEpfTt2YXIgbWY9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1uZXcgTGQoU3RyaW5nKGMpLGQpO2UuWmEoKTt2YXIgZj1TdHJpbmcoYyk7YS5ILkguc2V0KGYsZSk7ZGIuc2V0KGYsZSl9O2IoIm1hcCIsSWUpO2IoImFuZCIsdGQpO2IoImNvbnRhaW5zIix3ZCk7YigiZXF1YWxzIix1ZCk7Yigib3IiLHZkKTtiKCJzdGFydHNXaXRoIix4ZCk7YigidmFyaWFibGUiLHlkKX07bmYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07dmFyIHBmPWZ1bmN0aW9uKCl7dGhpcy5LPSExO3RoaXMuSD1uZXcgZ2I7b2YodGhpcyk7dGhpcy5LPSEwfTtwZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gcWYodGhpcy5ILnJrKGEpKX07dmFyIHJmPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gcWYoYS5ILkpxKGIsYykpfTtwZi5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07CnZhciBvZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPVN0cmluZyhjKSxmPW5ldyBMZChlLGQpO2YuWmEoKTthLkguSC5zZXQoZSxmKTtkYi5zZXQoZSxmKX07YigwLFpkKTtiKDEsJGQpO2IoMixhZSk7YigzLGJlKTtiKDU2LGVmKTtiKDU3LGJmKTtiKDU4LGFmKTtiKDU5LGdmKTtiKDYwLGNmKTtiKDYxLGRmKTtiKDYyLGZmKTtiKDUzLGNlKTtiKDQsZGUpO2IoNSxlZSk7Yig2OCxrZik7Yig1MixmZSk7Yig2LGdlKTtiKDQ5LGhlKTtiKDcsSGUpO2IoOCxJZSk7Yig5LGVlKTtiKDUwLGllKTtiKDEwLGplKTtiKDEyLGtlKTtiKDEzLGxlKTtiKDY3LGxmKTtiKDUxLHdlKTtiKDQ3LG9lKTtiKDU0LHBlKTtiKDU1LHFlKTtiKDYzLHZlKTtiKDY0LHJlKTtiKDY1LHRlKTtiKDY2LHVlKTtiKDE1LHhlKTtiKDE2LHplKTtiKDE3LHplKTtiKDE4LEFlKTtiKDE5LEJlKTtiKDIwLENlKTtiKDIxLERlKTtiKDIyLEVlKTtiKDIzLEZlKTtiKDI0LEdlKTtiKDI1LEplKTtiKDI2LApLZSk7YigyNyxMZSk7YigyOCxNZSk7YigyOSxOZSk7Yig0NSxPZSk7YigzMCxQZSk7YigzMixRZSk7YigzMyxRZSk7YigzNCxSZSk7YigzNSxSZSk7Yig0NixTZSk7YigzNixUZSk7Yig0MyxVZSk7YigzNyxWZSk7YigzOCxXZSk7YigzOSxYZSk7Yig0MCxZZSk7Yig0NCxoZik7Yig0MSxaZSk7Yig0MiwkZSl9O3BmLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguamUoKX07cGYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07cGYucHJvdG90eXBlLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07CmZ1bmN0aW9uIHFmKGEpe2lmKGEgaW5zdGFuY2VvZiBUYXx8YSBpbnN0YW5jZW9mIEtkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgUGR8fGE9PT1udWxsfHxhPT09dm9pZCAwfHx0eXBlb2YgYT09PSJzdHJpbmcifHx0eXBlb2YgYT09PSJudW1iZXIifHx0eXBlb2YgYT09PSJib29sZWFuIilyZXR1cm4gYX07dmFyIHNmPWZ1bmN0aW9uKGEpe3RoaXMubWVzc2FnZT1hfTtmdW5jdGlvbiB0ZihhKXthLnF2PSEwO3JldHVybiBhfTt2YXIgdWY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSx2Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLHdmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO2Z1bmN0aW9uIHhmKGEpe3ZhciBiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlthXTtyZXR1cm4gYj09PXZvaWQgMD9uZXcgc2YoIlZhbHVlICIrYSsiIGNhbiBub3QgYmUgZW5jb2RlZCBpbiB3ZWItc2FmZSBiYXNlNjQgZGljdGlvbmFyeS4iKTpifTtmdW5jdGlvbiB5ZihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiIxIjtjYXNlIDI6Y2FzZSA0OnJldHVybiIwIjtkZWZhdWx0OnJldHVybiItIn19O3ZhciB6Zj0vXlsxLTlhLXpBLVpfLV1bMS05YS1jXVsxLTlhLXZdXGQkLztmdW5jdGlvbiBBZihhLGIpe2Zvcih2YXIgYz0iIixkPSEwO2E+Nzspe3ZhciBlPWEmMzE7YT4+PTU7ZD9kPSExOmV8PTMyO2M9IiIreGYoZSkrY31hPDw9MjtkfHwoYXw9MzIpO3JldHVybiBjPSIiK3hmKGF8YikrY31mdW5jdGlvbiBCZihhLGIpe3JldHVybiBiPT09dm9pZCAwfHxiPT09MD8iIjoiIitBZihhLDEpK3hmKGIpfQpmdW5jdGlvbiBDZihhLGIpe3ZhciBjO3ZhciBkPWEuaGksZT1hLmJrO2Q9PT12b2lkIDA/Yz0iIjooZXx8KGU9MCksYz0iIitBZigxLDEpK3hmKGQ8PDJ8ZSkpO3ZhciBmPSI0IitjK0JmKDIsYS5xciksZyxoPWEuSW87Zz1oJiZ6Zi50ZXN0KGgpPyIiK0FmKDMsMikraDoiIjt2YXIgbDt2YXIgbj1hLmN0aWQ7aWYobiYmYil7dmFyIHA9QWYoNSwzKSxxPW4uc3BsaXQoIi0iKSxyPXFbMF0udG9VcHBlckNhc2UoKTtpZihyIT09IkdUTSImJnIhPT0iT1BUIilsPSIiO2Vsc2V7dmFyIHQ9cVsxXTtsPSIiK3AreGYoMSt0Lmxlbmd0aCkrKGEuTHN8fDApK3R9fWVsc2UgbD0iIjt2YXIgdT1hLmNhbm9uaWNhbElkLHY9YS5tYyx4PWEuenYseT1mK2crQmYoNCxhLkRvKStsK0JmKDYsYS5EdCkrKHU/IiIrQWYoNywzKSt4Zih1Lmxlbmd0aCkrdToiIikrKHY/IiIrQWYoOCwzKSt4Zih2Lmxlbmd0aCkrdjoiIikrKHg/IiIrQWYoOSwzKSt4Zih4Lmxlbmd0aCkreDoiIiksejt2YXIgQz1hLnpyO0M9CkM9PT12b2lkIDA/e306Qztmb3IodmFyIEQ9W10sST1tKE9iamVjdC5rZXlzKEMpKSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7dmFyIE49Ry52YWx1ZTtEW051bWJlcihOKV09Q1tOXX1pZihELmxlbmd0aCl7dmFyIFM9QWYoMTAsMyksVztpZihELmxlbmd0aD09PTApVz14ZigwKTtlbHNle2Zvcih2YXIgZWE9W10samE9MCxmYT0hMSxzYT0wO3NhPEQubGVuZ3RoO3NhKyspe2ZhPSEwO3ZhciBkYT1zYSU2O0Rbc2FdJiYoamF8PTE8PGRhKTtkYT09PTUmJihlYS5wdXNoKHhmKGphKSksamE9MCxmYT0hMSl9ZmEmJmVhLnB1c2goeGYoamEpKTtXPWVhLmpvaW4oIiIpfXZhciBtYT1XO3o9IiIrUyt4ZihtYS5sZW5ndGgpK21hfWVsc2Ugej0iIjt2YXIgUGE9YS5VcyxGYT1hLm50O3JldHVybiB5K3orKFBhPyIiK0FmKDExLDMpK3hmKFBhLmxlbmd0aCkrUGE6IiIpKyhGYT8iIitBZigxMywzKSt4ZihGYS5sZW5ndGgpK0ZhOiIiKStCZigxNCxhLkV0KStCZigxNSxhLnJ2KStCZigxNiwKYS5Bdil9O2Z1bmN0aW9uIERmKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09NTUyOTYmJmQrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChkKzEpJjY0NTEyKT09NTYzMjA/KGU9NjU1MzYrKChlJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2QpJjEwMjMpLGJbYysrXT1lPj4xOHwyNDAsYltjKytdPWU+PjEyJjYzfDEyOCk6YltjKytdPWU+PjEyfDIyNCxiW2MrK109ZT4+NiY2M3wxMjgpLGJbYysrXT1lJjYzfDEyOCl9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVmKGEsYil7Zm9yKHZhciBjPXFiKGIpLGQ9bmV3IFVpbnQ4QXJyYXkoYy5sZW5ndGgpLGU9MDtlPGMubGVuZ3RoO2UrKylkW2VdPWMuY2hhckNvZGVBdChlKTtpZihkLmxlbmd0aCE9PTMyKXRocm93IEVycm9yKCJLZXkgaXMgbm90IDMyIGJ5dGVzLiIpO3JldHVybiBGZihhLGQpfWZ1bmN0aW9uIEZmKGEsYil7aWYoYT09PSIiKXJldHVybiIiO3ZhciBjPVpiKGEpLGQ9Yi5zbGljZSgtMiksZT1bXS5jb25jYXQodyhkKSx3KGMpKS5tYXAoZnVuY3Rpb24oZyxoKXtyZXR1cm4gZ15iW2glYi5sZW5ndGhdfSksZj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhlKSx3KGQpKSk7cmV0dXJuIHBiKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZikpKS5yZXBsYWNlKC9cLiskLywiIil9O3ZhciBHZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7cmV0dXJue3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fX1yZXR1cm57Y3A6YSgiY29uc2VudCIpLFprOmEoImNvbnZlcnRfY2FzZV90byIpLGFsOmEoImNvbnZlcnRfZmFsc2VfdG8iKSxibDphKCJjb252ZXJ0X251bGxfdG8iKSxlcDphKCJjb252ZXJ0X3RvX2Jvb2xlYW4iKSxhaDphKCJjb252ZXJ0X3RvX251bWJlciIpLGZsOmEoImNvbnZlcnRfdHJ1ZV90byIpLGlsOmEoImNvbnZlcnRfdW5kZWZpbmVkX3RvIiksWXQ6YSgiZGVidWdfbW9kZV9tZXRhZGF0YSIpLFliOmEoImZ1bmN0aW9uIiksUm06YSgiaW5zdGFuY2VfbmFtZSIpLE5xOmEoImxpdmVfb25seSIpLE9xOmEoIm1hbHdhcmVfZGlzYWJsZWQiKSxNRVRBREFUQTphKCJtZXRhZGF0YSIpLFJxOmEoIm9yaWdpbmFsX2FjdGl2aXR5X2lkIiksVHU6YSgib3JpZ2luYWxfdmVuZG9yX3RlbXBsYXRlX2lkIiksU3U6YSgib25jZV9vbl9sb2FkIiksUXE6YSgib25jZV9wZXJfZXZlbnQiKSwKa246YSgib25jZV9wZXJfbG9hZCIpLFZ1OmEoInByaW9yaXR5X292ZXJyaWRlIiksWXU6YSgicmVzcGVjdGVkX2NvbnNlbnRfdHlwZXMiKSx0bjphKCJzZXR1cF90YWdzIikseWo6YSgidGFnX2lkIiksRG46YSgidGVhcmRvd25fdGFncyIpLHBsOmEoImRpc2FibGVkX2luX2dvb2dsZV9tb2RlIiksRnE6YSgiZ2VuZXJhdGVkX3RhZ2dpbmdfbWV0YWRhdGEiKX19KCk7ZnVuY3Rpb24gSGYoYSxiKXt2YXIgYz17fTtjW0dmLlliXT0iX18iK2E7Zm9yKHZhciBkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbInZ0cF8iK2RdPWJbZF0pO3JldHVybiBjfTtmdW5jdGlvbiBJZihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpPyEhZGF0YS5ibG9iW2FdOmJ9ZnVuY3Rpb24gRShhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoZGF0YS5ibG9iW2FdKTpifWZ1bmN0aW9uIEpmKGEpe3ZhciBiLGM7cmV0dXJuKChiPWRhdGEpPT1udWxsPzA6KGM9Yi5ibG9iKT09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihkYXRhLmJsb2JbYV0pOjB9ZnVuY3Rpb24gS2YoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP1tdOmI7dmFyIGMsZCxlPShjPWRhdGEpPT1udWxsP3ZvaWQgMDooZD1jLmJsb2IpPT1udWxsP3ZvaWQgMDpkW2FdO3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6Yn0KZnVuY3Rpb24gTGYoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhjW2FdKTpifWZ1bmN0aW9uIE5mKGEsYil7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihjW2FdKTpifWZ1bmN0aW9uIE1mKGEpe3ZhciBiLGM7cmV0dXJuKGI9ZGF0YSk9PW51bGw/dm9pZCAwOihjPWIuYmxvYik9PW51bGw/dm9pZCAwOmNbYV19O3ZhciBPZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYyk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy5wZXJtaXNzaW9uSWQ9YTt0aGlzLnBhcmFtZXRlcnM9Yjt0aGlzLm5hbWU9IlBlcm1pc3Npb25FcnJvciJ9O3dhKE9mLEVycm9yKTtPZi5wcm90b3R5cGUuZ2V0TWVzc2FnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2V9O2Z1bmN0aW9uIFBmKGEsYil7aWYoQXJyYXkuaXNBcnJheShhKSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImNvbnRleHQiLHt2YWx1ZTp7bGluZTpiWzBdfX0pO2Zvcih2YXIgYz0xO2M8YS5sZW5ndGg7YysrKVBmKGFbY10sYltjXSl9fTtmdW5jdGlvbiBRZigpe3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjO3ZhciBkPVJmO2EgaW5zdGFuY2VvZiBiYj8oYS5IPWQsYz1hKTpjPW5ldyBiYihhLGQpO3ZhciBlPWM7YiYmZS5LLnB1c2goYik7dGhyb3cgZTt9fWZ1bmN0aW9uIFJmKGEpe2lmKCFhLmxlbmd0aClyZXR1cm4gYTthLnB1c2goe2lkOiJtYWluIixsaW5lOjB9KTtmb3IodmFyIGI9YS5sZW5ndGgtMTtiPjA7Yi0tKUFiKGFbYl0uaWQpJiZhLnNwbGljZShiKyssMSk7Zm9yKHZhciBjPWEubGVuZ3RoLTE7Yz4wO2MtLSlhW2NdLmxpbmU9YVtjLTFdLmxpbmU7YS5zcGxpY2UoMCwxKTtyZXR1cm4gYX07dmFyIFNmPVJlZ0V4cCgiW14wLTlcXC4rLV0iLCJnIiksVGY9UmVnRXhwKCJbXjAtOVxcLCstXSIsImciKSxVZj1SZWdFeHAoIlteMC05Ky1dIiwiZyIpOwpmdW5jdGlvbiBWZihhLGIpe2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuIGE7dmFyIGM9U3RyaW5nKGEpLGQ7aWYoYj09PSJBVVRPTUFUSUMiKXt2YXIgZT0oYy5tYXRjaCgvXC4vZyl8fFtdKS5sZW5ndGgsZj0oYy5tYXRjaCgvLC9nKXx8W10pLmxlbmd0aCxnPSJOT05FIjtpZihlPjAmJmY+MCl7dmFyIGg9Yy5sYXN0SW5kZXhPZigiLiIpPmMubGFzdEluZGV4T2YoIiwiKTtoJiZlPT09MT9nPSJQRVJJT0QiOmh8fGYhPT0xfHwoZz0iQ09NTUEiKX1lbHNlIGU9PT0xP2c9KGMuc3BsaXQoIi4iKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJQRVJJT0QiOiJOT05FIjpmPT09MSYmKGc9KGMuc3BsaXQoIiwiKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJDT01NQSI6Ik5PTkUiKTtkPWd9ZWxzZSBkPWI9PT0iQ09NTUEiPyJDT01NQSI6IlBFUklPRCI7dmFyIGwsbjtkPT09IlBFUklPRCI/KGw9Ii4iLG49U2YpOmQ9PT0iQ09NTUEiPyhsPSIsIiwKbj1UZik6KGw9IiIsbj1VZik7dmFyIHA9Yy5yZXBsYWNlKG4sIiIpO2lmKGwhPT0iIiYmcC5zcGxpdChsKS5sZW5ndGg+MilyZXR1cm4gYTt2YXIgcT1wLnJlcGxhY2UoLywvZywiLiIpO2lmKHE9PT0iIilyZXR1cm4gYTt2YXIgcj1OdW1iZXIocSk7cmV0dXJuIGlzTmFOKHIpP2E6cn07dmFyIFdmPVtdLFhmPXt9O2Z1bmN0aW9uIFlmKGEpe3JldHVybiBXZlthXT09PXZvaWQgMD8hMTpXZlthXX07dmFyIFpmPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSwkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO2EuSFtiXS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkobnVsbCx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfSl9O2Z1bmN0aW9uIGFnKGEsYixjLGQpe2lmKGEpZm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPXZvaWQgMCxnPSJBIHBvbGljeSBmdW5jdGlvbiBkZW5pZWQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCI7dHJ5e2Y9YVtlXShiLGMsZCksZys9Ii4ifWNhdGNoKGgpe2c9dHlwZW9mIGg9PT0ic3RyaW5nIj9nKygiOiAiK2gpOmggaW5zdGFuY2VvZiBFcnJvcj9nKygiOiAiK2gubWVzc2FnZSk6ZysiLiJ9aWYoIWYpdGhyb3cgbmV3IE9mKGMsZCxnKTt9fQpmdW5jdGlvbiBiZyhhLGIpe3ZhciBjPWNnKGRnLkgsYixmdW5jdGlvbigpe3JldHVybnt9fSk7dHJ5e3JldHVybiBjKGEpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBjZyhhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe2lmKGQpe3ZhciBlPWEuSFtkXSxmPWEuSC5hbGw7aWYoZXx8Zil7dmFyIGc9Yy5hcHBseSh2b2lkIDAsW2RdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTthZyhlLGIsZCxnKTthZyhmLGIsZCxnKX19fX07dmFyIGdnPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSz17fTt0aGlzLkg9bmV3IFpmO3ZhciBlPXt9LGY9e30sZz1jZyh0aGlzLkgsYSxmdW5jdGlvbihoKXtyZXR1cm4gaCYmZVtoXT9lW2hdLmFwcGx5KHZvaWQgMCxbaF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpOnt9fSk7R2IoYixmdW5jdGlvbihoLGwpe2Z1bmN0aW9uIG4ocSl7dmFyIHI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKCFwW3FdKXRocm93IGVnKHEse30sIlRoZSByZXF1ZXN0ZWQgYWRkaXRpb25hbCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO2cuYXBwbHkobnVsbCxbcV0uY29uY2F0KHcocikpKX12YXIgcD17fTtHYihsLGZ1bmN0aW9uKHEscil7dmFyIHQ9ZmcocSxyLGMpO3BbcV09dC5hc3NlcnQ7ZVtxXXx8KGVbcV09dC5hYSk7dC5PbiYmIWZbcV0mJihmW3FdPXQuT24pfSk7ZC5LW2hdPWZ1bmN0aW9uKHEscil7dmFyIHQ9cFtxXTtpZighdCl0aHJvdyBlZyhxLAp7fSwiVGhlIHJlcXVlc3RlZCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTt0LmFwcGx5KHZvaWQgMCx1KTtnLmFwcGx5KHZvaWQgMCx1KTt2YXIgdj1mW3FdO3YmJnYuYXBwbHkobnVsbCxbbl0uY29uY2F0KHcodS5zbGljZSgxKSkpKX19KX0saGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGRnLktbYV18fGZ1bmN0aW9uKCl7fX07CmZ1bmN0aW9uIGZnKGEsYixjKXt0cnl7dmFyIGQ9Y1siX18iK2FdO2lmKCFkKXRocm93IEVycm9yKCJObyBmdW5jdGlvbiBmb3VuZCBmb3IgcGVybWlzc2lvbjogIithKyIuIik7dmFyIGU9SGYoYSxiKTtlLnZ0cF9wZXJtaXNzaW9uTmFtZT1hO2UudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcj1lZztkZWxldGUgZVtHZi5ZYl07cmV0dXJuIGQoZSl9Y2F0Y2goZil7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihnKXt0aHJvdyBuZXcgT2YoZyx7fSwiUGVybWlzc2lvbiAiK2crIiBpcyB1bmtub3duLiIpO30sYWE6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgT2YoYSx7fSwiUGVybWlzc2lvbiAiK2ErIiBpcyB1bmtub3duLiIpO319fX1mdW5jdGlvbiBlZyhhLGIsYyl7cmV0dXJuIG5ldyBPZihhLGIsYyl9O3ZhciBpZz1FKDUpLGpnPUUoMjApLGtnPUUoMSksbGc9ITE7dmFyIG1nPXt9O21nLlBvPUlmKDI5KTttZy5Lcj1JZigyOCk7ZnVuY3Rpb24gbmcoYSl7dmFyIGI9MSxjLGQsZTtpZihhKWZvcihiPTAsZD1hLmxlbmd0aC0xO2Q+PTA7ZC0tKWU9YS5jaGFyQ29kZUF0KGQpLGI9KGI8PDYmMjY4NDM1NDU1KStlKyhlPDwxNCksYz1iJjI2NjMzODMwNCxiPWMhPT0wP2JeYz4+MjE6YjtyZXR1cm4gYn07dmFyIG9nPWZ1bmN0aW9uKGEpe3RoaXMuY2FjaGU9YX07b2cucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj1uZyhhKSxjPXRoaXMuY2FjaGUuZ2V0KGIpO2lmKCFjKXJldHVybntwcm9taXNlOnZvaWQgMCxLajowfTtpZihEYXRlLm5vdygpPj1jLnRpbWVzdGFtcCs5RTUpcmV0dXJuIHRoaXMuY2FjaGUuZGVsZXRlKGIpLHtwcm9taXNlOnZvaWQgMCxLajozfTt2YXIgZD1jLnJlc29sdmVkVmFsdWU/MjoxO3JldHVybntwcm9taXNlOmMucmVzb2x2ZWRWYWx1ZT9Qcm9taXNlLnJlc29sdmUoYy5yZXNvbHZlZFZhbHVlKTpjLnByb21pc2UsS2o6ZH19O29nLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz17cHJvbWlzZTpiLHJlc29sdmVkVmFsdWU6dm9pZCAwLHRpbWVzdGFtcDpEYXRlLm5vdygpfTt0aGlzLmNhY2hlLnNldChuZyhhKSxjKTtiLnRoZW4oZnVuY3Rpb24oZCl7Yy5yZXNvbHZlZFZhbHVlPWR9KX07ZnVuY3Rpb24gcGcoYSl7c3dpdGNoKGEpe2Nhc2UgMDpicmVhaztjYXNlIDk6cmV0dXJuImU0IjtjYXNlIDY6cmV0dXJuImU1IjtjYXNlIDE0OnJldHVybiJlNiI7ZGVmYXVsdDpyZXR1cm4iZTcifX07dmFyIEY9e0Q6e1hhOiJhZF9wZXJzb25hbGl6YXRpb24iLGthOiJhZF9zdG9yYWdlIixtYToiYWRfdXNlcl9kYXRhIixyYToiYW5hbHl0aWNzX3N0b3JhZ2UiLG5jOiJyZWdpb24iLHNhOiJjb25zZW50X3VwZGF0ZWQiLFlnOiJ3YWl0X2Zvcl91cGRhdGUiLGVoOiJlbmRwb2ludF90eXBlIixxcDoiYXBwX3JlbW92ZSIscnA6ImFwcF9zdG9yZV9yZWZ1bmQiLHRwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCIsdXA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCIsdnA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciLHdwOiJjb25zZW50X3VwZGF0ZSIseHA6ImNvbnZlcnNpb24iLHZsOiJhZGRfcGF5bWVudF9pbmZvIix3bDoiYWRkX3NoaXBwaW5nX2luZm8iLHhlOiJhZGRfdG9fY2FydCIseWU6InJlbW92ZV9mcm9tX2NhcnQiLHhsOiJ2aWV3X2NhcnQiLEFkOiJiZWdpbl9jaGVja291dCIsZXU6ImdlbmVyYXRlX2xlYWQiLHplOiJzZWxlY3RfaXRlbSIsb2M6InZpZXdfaXRlbV9saXN0IiwKUWM6InNlbGVjdF9wcm9tb3Rpb24iLHFjOiJ2aWV3X3Byb21vdGlvbiIsSWI6InB1cmNoYXNlIixBZToicmVmdW5kIixyYzoidmlld19pdGVtIix5bDoiYWRkX3RvX3dpc2hsaXN0Iix5cDoiZXhjZXB0aW9uIix6cDoiZmlyc3Rfb3BlbiIsQXA6ImZpcnN0X3Zpc2l0Iix3YToiZ3RhZy5jb25maWciLEpiOiJndGFnLmdldCIsQnA6ImluX2FwcF9wdXJjaGFzZSIsc2M6InBhZ2VfdmlldyIsQ3A6InNjcmVlbl92aWV3IixEcDoic2Vzc2lvbl9zdGFydCIsRXA6InNvdXJjZV91cGRhdGUiLEZwOiJ0aW1pbmdfY29tcGxldGUiLEdwOiJ0cmFja19zb2NpYWwiLHlmOiJ1c2VyX2VuZ2FnZW1lbnQiLEhwOiJ1c2VyX2lkX3VwZGF0ZSIsZmg6ImJyYWlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLGdoOiJicmFpZF9zdG9yYWdlX3NvdXJjZSIsQmQ6ImdjbGlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLENkOiJnY2xpZF9zdG9yYWdlX3NvdXJjZSIsU2I6ImdjbGdiIixsYjoiZ2NsaWQiLHpsOiJnY2xpZF9sZW4iLApCZToiZ2NsZ3MiLENlOiJnY2xscCIsRGU6ImdjbHN0IixtYjoiYWRzX2RhdGFfcmVkYWN0aW9uIix6ZjoiZ2FkX3NvdXJjZSIsQWY6ImdhZF9zb3VyY2Vfc3JjIixEZDoiZ2NsaWRfdXJsIixBbDoiZ2Nsc3JjIixCZjoiZ2JyYWlkIixFZToid2JyYWlkIixSYzoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiLHJpOiJhbGxvd19jdXN0b21fc2NyaXB0cyIsaGg6ImFsbG93X2Rpc3BsYXlfZmVhdHVyZXMiLHNpOiJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyIsU2M6ImFsbG93X2dvb2dsZV9zaWduYWxzIix1aToiYWxsb3dfaW50ZXJlc3RfZ3JvdXBzIixJcDoiYXBwX2lkIixKcDoiYXBwX2luc3RhbGxlcl9pZCIsS3A6ImFwcF9uYW1lIixMcDoiYXBwX3ZlcnNpb24iLEVkOiJhdWlkIixmdToiYXV0b19kZXRlY3Rpb25fZW5hYmxlZCIsQmw6ImF1dG9fZXZlbnQiLENsOiJhd19yZW1hcmtldGluZyIsaWg6ImF3X3JlbWFya2V0aW5nX29ubHkiLENmOiJkaXNjb3VudCIsRGY6ImF3X2ZlZWRfY291bnRyeSIsCkVmOiJhd19mZWVkX2xhbmd1YWdlIixIYToiaXRlbXMiLEZmOiJhd19tZXJjaGFudF9pZCIsd2k6ImF3X2Jhc2tldF90eXBlIixHZjoiY2FtcGFpZ25fY29udGVudCIsSGY6ImNhbXBhaWduX2lkIixJZjoiY2FtcGFpZ25fbWVkaXVtIixKZjoiY2FtcGFpZ25fbmFtZSIsS2Y6ImNhbXBhaWduIixMZjoiY2FtcGFpZ25fc291cmNlIixNZjoiY2FtcGFpZ25fdGVybSIsS2I6ImNsaWVudF9pZCIsRGw6InJuZCIseGk6ImNvbnNlbnRfdXBkYXRlX3R5cGUiLE1wOiJjb250ZW50X2dyb3VwIixOcDoiY29udGVudF90eXBlIixGZDoiY29udmVyc2lvbl9jb29raWVfcHJlZml4Iix5aToiY29udmVyc2lvbl9pZCIsdWM6ImNvbnZlcnNpb25fbGlua2VyIixIZDoiY29udmVyc2lvbl9saW5rZXJfZGlzYWJsZWQiLEZlOiJjb252ZXJzaW9uX2FwaSIsemk6Il8mcmNiIixqaDoiY29va2llX2RlcHJlY2F0aW9uIixMYjoiY29va2llX2RvbWFpbiIsQ2I6ImNvb2tpZV9leHBpcmVzIixUYjoiY29va2llX2ZsYWdzIiwKSWQ6ImNvb2tpZV9uYW1lIix2YzoiY29va2llX3BhdGgiLG5iOiJjb29raWVfcHJlZml4IixKZDoiY29va2llX3VwZGF0ZSIsVGM6ImNvdW50cnkiLGViOiJjdXJyZW5jeSIsR2U6ImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIixraDoiY3VzdG9tZXJfdHlwZSIsSGU6ImN1c3RvbV9tYXAiLEFpOiJnY2xkY19saW5rX2RlY29yYXRpb25fc291cmNlIixCaToiZ2NsZGNfc3RvcmFnZV9zb3VyY2UiLE5mOiJnY2xkYyIsS2Q6ImRjbGlkIixFbDoiZGVidWdfbW9kZSIsT2E6ImRldmVsb3Blcl9pZCIsT3A6ImRpc2FibGVfbWVyY2hhbnRfcmVwb3J0ZWRfcHVyY2hhc2VzIixVYzoiZGNfY3VzdG9tX3BhcmFtcyIsUHA6ImRjX25hdHVyYWxfc2VhcmNoIixRcDoiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsRmw6ImFmZmlsaWF0aW9uIixtaDoiY2hlY2tvdXRfb3B0aW9uIixDaToiY2hlY2tvdXRfc3RlcCIsR2w6ImNvdXBvbiIsT2Y6Iml0ZW1fbGlzdF9uYW1lIixEaToibGlzdF9uYW1lIixScDoicHJvbW90aW9ucyIsCkxkOiJzaGlwcGluZyIsSGw6InRheCIsbmg6ImVuZ2FnZW1lbnRfdGltZV9tc2VjIixvaDoiZW5oYW5jZWRfY2xpZW50X2lkIixTcDoiZW5oYW5jZWRfY29udmVyc2lvbnMiLGd1OiJlbmhhbmNlZF9jb252ZXJzaW9uc19hdXRvbWF0aWNfc2V0dGluZ3MiLEllOiJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSIsUGY6ImV2ZW50X2NhbGxiYWNrIixUcDoiZXZlbnRfY2F0ZWdvcnkiLFZjOiJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIixNZDoiZXZlbnRfaWQiLEVpOiJfZXZlbnRfam9pbl9pZCIsVXA6ImV2ZW50X2xhYmVsIixVYjoiZXZlbnQiLElsOiJfJmFlIixGaToiZXZlbnRfc2V0dGluZ3MiLHBoOiJldmVudF90aW1lb3V0IixWcDoiZGVzY3JpcHRpb24iLFdwOiJmYXRhbCIsWHA6ImV4cGVyaW1lbnRzIixOZDoiZXh0X2NsaWVudF9pZCIsR2k6ImZpcmViYXNlX2lkIixRZjoiZmlyc3RfcGFydHlfY29sbGVjdGlvbiIsUmY6Il94XzIwIixWYjoiX3hfMTkiLFlwOiJmbGlnaHRfZXJyb3JfY29kZSIsClpwOiJmbGlnaHRfZXJyb3JfbWVzc2FnZSIsSGk6ImZsX2FjdGl2aXR5X2NhdGVnb3J5IixJaToiZmxfYWN0aXZpdHlfZ3JvdXAiLHFoOiJmbF9hZHZlcnRpc2VyX2lkIixKaToibWF0Y2hfaWQiLEpsOiJmbF9yYW5kb21fbnVtYmVyIixLbDoidHJhbiIsTGw6InUiLHJoOiJnYWNfZ2NsaWQiLEplOiJnYWNfd2JyYWlkIixNbDoiZ2FjX3dicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsYXE6ImdhX3Jlc3RyaWN0X2RvbWFpbiIsTmw6ImdhX3RlbXBfY2xpZW50X2lkIixicToiZ2FfdGVtcF9lY2lkIixLZToiZ2Rwcl9hcHBsaWVzIixzaDoiX2d0X21ldGFkYXRhIixPbDoiZ2VvX2dyYW51bGFyaXR5IixTZjoidmFsdWVfY2FsbGJhY2siLFRmOiJ2YWx1ZV9rZXkiLFRhOiJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIixMZToiX2dvb2dsZV9uZyIsY3E6Il9vbm8iLFVmOiJnb29nbGVfc2lnbmFscyIsZnE6Imdvb2dsZV90bGQiLHRoOiJncHBfc2lkIix1aDoiZ3BwX3N0cmluZyIsT2Q6Imdyb3VwcyIsClBsOiJnc2FfZXhwZXJpbWVudF9pZCIsVmY6Imd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSIsUWw6Imd0bV91cCIsTWU6ImlmcmFtZV9zdGF0ZSIsV2Y6Imlnbm9yZV9yZWZlcnJlciIsUmw6ImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsU2w6Il9pc19mcG0iLFljOiJpc19sZWdhY3lfY29udmVydGVkIixaYzoiaXNfbGVnYWN5X2xvYWRlZCIsS2k6ImlzX3Bhc3N0aHJvdWdoIixQZDoiX2xwcyIsdGI6Imxhbmd1YWdlIixMaToibGVnYWN5X2RldmVsb3Blcl9pZF9zdHJpbmciLERiOiJsaW5rZXIiLFhmOiJhY2NlcHRfaW5jb21pbmciLHdjOiJkZWNvcmF0ZV9mb3JtcyIsQWE6ImRvbWFpbnMiLGFkOiJ1cmxfcG9zaXRpb24iLFFkOiJtZXJjaGFudF9mZWVkX2xhYmVsIixSZDoibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSIsU2Q6Im1lcmNoYW50X2lkIixUbDoibWV0aG9kIixncToibmFtZSIsVWw6Im5hdmlnYXRpb25fdHlwZSIsTmU6Im5ld19jdXN0b21lciIsTWk6Im5vbl9pbnRlcmFjdGlvbiIsCmhxOiJvcHRpbWl6ZV9pZCIsVmw6InBhZ2VfaG9zdG5hbWUiLFlmOiJwYWdlX3BhdGgiLFVhOiJwYWdlX3JlZmVycmVyIixNYjoicGFnZV90aXRsZSIsaXE6InBhc3NlbmdlcnMiLFdsOiJwaG9uZV9jb252ZXJzaW9uX2NhbGxiYWNrIixqcToicGhvbmVfY29udmVyc2lvbl9jb3VudHJ5X2NvZGUiLFhsOiJwaG9uZV9jb252ZXJzaW9uX2Nzc19jbGFzcyIsa3E6InBob25lX2NvbnZlcnNpb25faWRzIixZbDoicGhvbmVfY29udmVyc2lvbl9udW1iZXIiLFpsOiJwaG9uZV9jb252ZXJzaW9uX29wdGlvbnMiLGxxOiJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiLG1xOiJfcHJvdGVjdGVkX2F1ZGllbmNlX2VuYWJsZWQiLHdoOiJxdWFudGl0eSIseGg6InJlZGFjdF9kZXZpY2VfaW5mbyIsYW06InJlZmVycmFsX2V4Y2x1c2lvbl9kZWZpbml0aW9uIixodToiX3JlcXVlc3Rfc3RhcnRfdGltZSIsV2I6InJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIixucToicmV0b2tlbiIsb3E6InNhbXBsZV9yYXRlIiwKTmk6InNjcmVlbl9uYW1lIixiZDoic2NyZWVuX3Jlc29sdXRpb24iLGJtOiJfc2NyaXB0X3NvdXJjZSIscHE6InNlYXJjaF90ZXJtIixUZDoic2VuZF9wYWdlX3ZpZXciLFhiOiJzZW5kX3RvIixPaToic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50IixkZDoic2VydmVyX2NvbnRhaW5lcl91cmwiLHFxOiJzZXNzaW9uX2F0dHJpYnV0ZXNfZW5jb2RlZCIseWg6InNlc3Npb25fZHVyYXRpb24iLHpoOiJzZXNzaW9uX2VuZ2FnZWQiLFBpOiJzZXNzaW9uX2VuZ2FnZWRfdGltZSIseGM6InNlc3Npb25faWQiLEFoOiJzZXNzaW9uX251bWJlciIsWmY6Il9zaGFyZWRfdXNlcl9pZCIsVWQ6ImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIixpdToiX3RhZ19maXJpbmdfZGVsYXkiLGp1OiJfdGFnX2ZpcmluZ190aW1lIixrdToidGVtcG9yYXJ5X2NsaWVudF9pZCIsUWk6InRlc3Rvbmx5IixycToiX3RpbWV6b25lIixQZToidG9wbW9zdF91cmwiLFFlOiJ0cmFja2luZ19pZCIsUmk6InRyYWZmaWNfdHlwZSIsClBhOiJ0cmFuc2FjdGlvbl9pZCIsZG06InRyYW5zYWN0aW9uX2lkX3NvdXJjZSIseWM6InRyYW5zcG9ydF91cmwiLHNxOiJ0cmlwX3R5cGUiLFZkOiJ1cGRhdGUiLHpjOiJ1cmxfcGFzc3Rocm91Z2giLGZtOiJ1cHRncyIsY2c6Il91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSIsZGc6Il91c2VyX2FnZW50X2JpdG5lc3MiLGVnOiJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCIsZmc6Il91c2VyX2FnZW50X21vYmlsZSIsZ2c6Il91c2VyX2FnZW50X21vZGVsIixoZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm0iLGlnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIixqZzoiX3VzZXJfYWdlbnRfd293NjQiLEFjOiJ1c2VyX2RhdGEiLGdtOiJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5IixobToidXNlcl9kYXRhX2F1dG9fbWV0YSIsaW06InVzZXJfZGF0YV9hdXRvX211bHRpIixqbToidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIixrbToidXNlcl9kYXRhX2F1dG9fc3RhdHVzIixCYzoidXNlcl9kYXRhX21vZGUiLApsbToidXNlcl9kYXRhX3NldHRpbmdzIixmYjoidXNlcl9pZCIsV2Q6InVzZXJfcHJvcGVydGllcyIsb206Il91c2VyX3JlZ2lvbiIsa2c6InVzX3ByaXZhY3lfc3RyaW5nIixRYToidmFsdWUiLHFtOiJ3YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGVkOiJfZnBtX3BhcmFtZXRlcnMiLFdpOiJfaG9zdF9uYW1lIixWbToiX2luX3BhZ2VfY29tbWFuZCIsWWk6Il9pcF9vdmVycmlkZSIsWm06Il9pc19wYXNzdGhyb3VnaF9jaWQiLEpoOiJfbWVhc3VyZW1lbnRfdHlwZSIsZGU6Im5vbl9wZXJzb25hbGl6ZWRfYWRzIixvajoiX3NzdF9wYXJhbWV0ZXJzIixZcToic2d0bV9nZW9fdXNlcl9jb3VudHJ5IixHZDoiY29udmVyc2lvbl9sYWJlbCIsemE6InBhZ2VfbG9jYXRpb24iLFdjOiJfZXh0cmFjdGVkX2RhdGEiLFhjOiJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyIsT2U6InRjX3ByaXZhY3lfc3RyaW5nIn19O3ZhciBIPXtKOntTbzoiYWJvcnRfd2l0aG91dF9mYWlsIixraToiYWNjZXB0X2J5X2RlZmF1bHQiLEJrOiJhZGRfdGFnX3RpbWluZyIsRGs6ImFkc19jb25zZW50X2dyYW50ZWQiLHZkOiJhZHNfZXZlbnRfcGFnZV92aWV3Iix3ZDoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIixRdDoiYXV0b19ldmVudCIsS2s6ImJhdGNoX29uX25hdmlnYXRpb24iLFhnOiJiaXNjb3R0aV9qb2luX2lkIixQazoiY2xpZW50X2lkX3NvdXJjZSIsdWY6ImNvbnNlbnRfZXZlbnRfaWQiLHZmOiJjb25zZW50X3ByaW9yaXR5X2lkIixTdDoiY29uc2VudF9zdGF0ZSIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsd2Y6ImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiLFR0OiJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIixHYToiY29va2llX29wdGlvbnMiLG9sOiJkY19yYW5kb20iLFp0OiJkZWR1cGVfaWQiLFBjOiJlbV9ldmVudCIsYnU6ImVuZHBvaW50X2Zvcl9kZWJ1ZyIsdGw6ImVuaGFuY2VkX2NsaWVudF9pZF9zb3VyY2UiLApwcDoiZW5oYW5jZWRfbWF0Y2hfcmVzdWx0IixybToiZXVpZF9sb2dnZWRfaW5fc3RhdGUiLGxnOiJldWlkX21vZGVfZW5hYmxlZCIsdHE6ImV2ZW50X3Byb3ZlbmFuY2UiLG11OiJldmVudF9zb3VyY2UiLEViOiJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiLHdtOiJldmVudF91c2FnZSIsQ2g6ImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyIscHU6ImFkZF9wYXJhbWV0ZXIiLFVpOiJjb3VudGluZ19tZXRob2QiLERoOiJzZW5kX2FzX2lmcmFtZSIscXU6InBhcmFtZXRlcl9vcmRlciIsRWg6InBhcnNlZF90YXJnZXQiLHN1OiJmb3JtX2V2ZW50X2NhbmNlbGVkIixBcToiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIixWaToiZ2E0X3JlcXVlc3RfZmxhZ3MiLE5tOiJnYnJhaWRfY29va2llX21hcmtlZCIsUW06Imd0bV9leHRyYWN0ZWRfZGF0YSIsQ2M6ImhhbmRsZV9pbnRlcm5hbGx5Iix1dToiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiLGRhOiJoaXRfdHlwZSIsRGM6ImhpdF90eXBlX292ZXJyaWRlIiwKSHE6Imlnbm9yZV9kdXBlX2NvbmZpZyIsT3U6ImlzX2NvbmZpZ19jb21tYW5kIixHaDoiaXNfY29uc2VudF91cGRhdGUiLG1nOiJpc19jb252ZXJzaW9uIixXbToiaXNfZWNvbW1lcmNlIixYbToiaXNfZWNfY21fc3BsaXQiLGFlOiJpc19leHRlcm5hbF9ldmVudCIsbmc6ImlzX2ZpcnN0X3Zpc2l0IixZbToiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiIsWmk6ImlzX2ZsX2ZhbGxiYWNrX2NvbnZlcnNpb25fZmxvd19hbGxvd2VkIixmZDoiaXNfZnBtX2VuY3J5cHRpb24iLGFqOiJpc19mcG1fc3BsaXQiLG9iOiJpc19nY3BfYnJvd3NlciIsYmo6ImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIixjajoiaXNfZ29vZ2xlX3NpZ25hbHNfZW5hYmxlZCIsYmU6ImlzX21lcmNoYW50X2NlbnRlciIsSGg6ImlzX25ld190b19zaXRlIixFYzoiaXNfcGVyc29uYWxpemF0aW9uIixkajoiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iLFRlOiJpc19zZXNzaW9uX3N0YXJ0IixibjoiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIiwKUHU6ImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCIsUXU6ImlzX3NndG1fcHJlaGl0IixkbjoiaXNfc2d0bV9zZXJ2aWNlX3dvcmtlciIsSWg6ImlzX3NwbGl0X2NvbnZlcnNpb24iLElxOiJpc19zeW4iLEZjOiJpc190ZXN0X2V2ZW50IixvZzoiam9pbl9pZCIsZWo6ImpvaW5fZWxhcHNlZCIscGc6ImpvaW5fdGltZXJfc2VjIixnbjoibG9jYWxfc3RvcmFnZV9hd19jb252ZXJzaW9uX2NvdW50ZXJzIixXZToidHVubmVsX3VwZGF0ZWQiLFV1OiJwcmVoaXRfZm9yX3JldHJ5IixXdToicHJvbWlzZXMiLFh1OiJyZWNvcmRfYXdfbGF0ZW5jeSIsWGU6InJlZGFjdF9hZHNfZGF0YSIsWWU6InJlZGFjdF9jbGlja19pZHMiLHBuOiJyZW1hcmtldGluZ19vbmx5Iixsajoic2VuZF9jY21fcGFyYWxsZWxfcGluZyIsaGQ6InNlbmRfZG91YmxlY2xpY2tfam9pbiIsTWg6InNlbmRfZnBtX2dlb19qb2luIixOaDoic2VuZF9mcG1fZ29vZ2xlX2pvaW4iLFp1OiJzZW5kX2NjbV9wYXJhbGxlbF90ZXN0X3BpbmciLApybjoic2VuZF9nb29nbGVfbWVhc3VyZW1lbnQiLHJnOiJzZW5kX3RsZF9qb2luIixzZzoic2VuZF90b19kZXN0aW5hdGlvbnMiLG1qOiJzZW5kX3RvX3RhcmdldHMiLHNuOiJzZW5kX3VzZXJfZGF0YV9oaXQiLHBqOiJzZXJ2aWNlX3dvcmtlcl9jb250ZXh0IixOYjoic291cmNlX2Nhbm9uaWNhbF9pZCIsSmE6InNwZWN1bGF0aXZlIix5bjoic3BlY3VsYXRpdmVfaW5fbWVzc2FnZSIsQW46InN1cHByZXNzX3NjcmlwdF9sb2FkIixCbjoic3luX29yX21vZCIsemo6InRyYW5zaWVudF9lY3NpZCIsdGc6InRyYW5zbWlzc2lvbl90eXBlIixZYToidXNlcl9kYXRhIixndjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIixodjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciIsR246InVzZXJfZGF0YV9mcm9tX2NvZGUiLGlyOiJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiLGp2OiJ1c2VyX2RhdGFfbW9kZSIsdWc6InVzZXJfaWRfdXBkYXRlZCJ9fTsKdmFyIHRnPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9MDtHYihhLGZ1bmN0aW9uKGUsZil7aWYoZiE9bnVsbCl7dmFyIGc9KCIiK2YpLnJlcGxhY2UoL34vZywifn4iKTtpZihxZy5oYXNPd25Qcm9wZXJ0eShlKSliW3FnW2VdXT1nO2Vsc2UgaWYocmcuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBoPXJnW2VdO2IuaGFzT3duUHJvcGVydHkoaCl8fChiW2hdPWcpfWVsc2UgaWYoZT09PSJjYXRlZ29yeSIpZm9yKHZhciBsPWcuc3BsaXQoIi8iLDUpLG49MDtuPGwubGVuZ3RoO24rKyl7dmFyIHA9YixxPXNnW25dLHI9bFtuXTtwLmhhc093blByb3BlcnR5KHEpfHwocFtxXT1yKX1lbHNlIGlmKGM8Mjcpe3ZhciB0PVN0cmluZy5mcm9tQ2hhckNvZGUoYzwxMD80OCtjOjY1K2MtMTApO2JbImsiK3RdPSgiIitTdHJpbmcoZSkpLnJlcGxhY2UoL34vZywifn4iKTtiWyJ2Iit0XT1nO2MrK319fSk7dmFyIGQ9W107R2IoYixmdW5jdGlvbihlLGYpe2QucHVzaCgiIitlK2YpfSk7cmV0dXJuIGQuam9pbigifiIpfSwKcWc9e2l0ZW1faWQ6ImlkIixpdGVtX25hbWU6Im5tIixpdGVtX2JyYW5kOiJiciIsaXRlbV9jYXRlZ29yeToiY2EiLGl0ZW1fY2F0ZWdvcnkyOiJjMiIsaXRlbV9jYXRlZ29yeTM6ImMzIixpdGVtX2NhdGVnb3J5NDoiYzQiLGl0ZW1fY2F0ZWdvcnk1OiJjNSIsaXRlbV92YXJpYW50OiJ2YSIscHJpY2U6InByIixxdWFudGl0eToicXQiLGNvdXBvbjoiY3AiLGl0ZW1fbGlzdF9uYW1lOiJsbiIsaW5kZXg6ImxwIixpdGVtX2xpc3RfaWQ6ImxpIixkaXNjb3VudDoiZHMiLGFmZmlsaWF0aW9uOiJhZiIscHJvbW90aW9uX2lkOiJwaSIscHJvbW90aW9uX25hbWU6InBuIixjcmVhdGl2ZV9uYW1lOiJjbiIsY3JlYXRpdmVfc2xvdDoiY3MiLGxvY2F0aW9uX2lkOiJsbyJ9LHJnPXtpZDoiaWQiLG5hbWU6Im5tIixicmFuZDoiYnIiLHZhcmlhbnQ6InZhIixsaXN0X25hbWU6ImxuIixsaXN0X3Bvc2l0aW9uOiJscCIsbGlzdDoibG4iLHBvc2l0aW9uOiJscCIsY3JlYXRpdmU6ImNuIn0sc2c9WyJjYSIsCiJjMiIsImMzIiwiYzQiLCJjNSJdO3ZhciB1Zz1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZCE9bnVsbCYmYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChjKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSkpfSk7cmV0dXJuIGIuam9pbigiJiIpfSx2Zz1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3RoaXMuYmFzZVVybD1iO3RoaXMuZW5kcG9pbnQ9Yzt0aGlzLmRlc3RpbmF0aW9uSWQ9Zjt0aGlzLmV2ZW50SWQ9Zzt0aGlzLnByaW9yaXR5SWQ9aDt0aGlzLkJhPWEuQmE7dGhpcy52ZT1hLnZlO3RoaXMuTGo9YS5Majt0aGlzLk49ZDt0aGlzLks9dWcoYS5CYSk7dGhpcy5IPXVnKGEuTGopO3RoaXMuUj10aGlzLkgubGVuZ3RoO2lmKGUmJnRoaXMuUj4xNjM4NCl0aHJvdyBFcnJvcigiRVZFTlRfVE9PX0xBUkdFIik7fTsKdmFyIHdnPWZ1bmN0aW9uKCl7dGhpcy5ldmVudHM9W107dGhpcy5IPSIiO3RoaXMuQmE9e307dGhpcy5iYXNlVXJsPSIiO3RoaXMuTj0wO3RoaXMuSz0xO3RoaXMuZW5kcG9pbnQ9MH07d2cucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5SKGEpPyh0aGlzLmV2ZW50cy5wdXNoKGEpLHRoaXMuSD1hLkssdGhpcy5CYT1hLkJhLHRoaXMuYmFzZVVybD1hLmJhc2VVcmwsdGhpcy5OKz1hLlIsdGhpcy5LPWEuTix0aGlzLmVuZHBvaW50PWEuZW5kcG9pbnQsdGhpcy5kZXN0aW5hdGlvbklkPWEuZGVzdGluYXRpb25JZCx0aGlzLlo9YS5ldmVudElkLHRoaXMuZmE9YS5wcmlvcml0eUlkLCEwKTohMX07d2cucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZXZlbnRzLmxlbmd0aD90aGlzLmV2ZW50cy5sZW5ndGg+PTIwfHxhLlIrdGhpcy5OPj0xNjM4ND8hMTp0aGlzLmJhc2VVcmw9PT1hLmJhc2VVcmwmJnRoaXMuSz09PWEuTiYmdGhpcy5qYShhKTohMH07CndnLnByb3RvdHlwZS5qYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5IPT09YS5LfTt2YXIgSj17VTp7a3A6MSxtcDoyLEVuOjMsbm46NCxxbDo1LHJsOjYsRXE6NyxucDo4LERxOjksanA6MTAsaHA6MTEseG46MTIsdm46MTMsTms6MTQsVW86MTUsV286MTYsaG46MTcsc2w6MTgsZm46MTksbHA6MjAsUHE6MjEsYXA6MjIsVm86MjMsWG86MjQsbmw6MjUsTGs6MjYsZXI6MjcsSm06MjgsVW06MjksVG06MzAsU206MzEsTW06MzIsS206MzMsTG06MzQsR206MzUsRm06MzYsSG06MzcsSW06MzgsQnE6MzksQ3E6NDAsVXE6NDF9fTtKLlVbSi5VLmtwXT0iQ1JFQVRFX0VWRU5UX1NPVVJDRSI7Si5VW0ouVS5tcF09IkVESVRfRVZFTlQiO0ouVVtKLlUuRW5dPSJUUkFGRklDX1RZUEUiO0ouVVtKLlUubm5dPSJSRUZFUlJBTF9FWENMVVNJT04iO0ouVVtKLlUucWxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVEFHIjtKLlVbSi5VLnJsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1VBX1NDSEVNQSI7Si5VW0ouVS5FcV09IkdBX1NFTkQiO0ouVVtKLlUubnBdPSJFTV9GT1JNIjsKSi5VW0ouVS5EcV09IkdBX0dBTV9MSU5LIjtKLlVbSi5VLmpwXT0iQ1JFQVRFX0VWRU5UX0FVVE9fUEFHRV9QQVRIIjtKLlVbSi5VLmhwXT0iQ1JFQVRFRF9FVkVOVCI7Si5VW0ouVS54bl09IlNJREVMT0FERUQiO0ouVVtKLlUudm5dPSJTR1RNX0xFR0FDWV9DT05GSUdVUkFUSU9OIjtKLlVbSi5VLk5rXT0iQ0NEX0VNX0VWRU5UIjtKLlVbSi5VLlVvXT0iQVVUT19SRURBQ1RfRU1BSUwiO0ouVVtKLlUuV29dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTSI7Si5VW0ouVS5obl09Ik1VTFRJUExFX1BBR0VWSUVXX0ZST01fQ09ORklHIjtKLlVbSi5VLnNsXT0iRU1fRVZFTlRfU0VOVF9CRUZPUkVfQ09ORklHIjtKLlVbSi5VLmZuXT0iTE9BREVEX1ZJQV9DU1RfT1JfU0lERUxPQURJTkciO0ouVVtKLlUubHBdPSJERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLlBxXT0iTk9OX0RFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuYXBdPSJDQ0RfRVZFTlRfU0dUTSI7CkouVVtKLlUuVm9dPSJBVVRPX1JFREFDVF9FTUFJTF9TR1RNIjtKLlVbSi5VLlhvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU1fU0dUTSI7Si5VW0ouVS5ubF09IkRBSUxZX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuTGtdPSJCVVJTVF9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLmVyXT0iU0hBUkVEX1VTRVJfSURfU0VUX0FGVEVSX1JFUVVFU1QiO0ouVVtKLlUuSm1dPSJHQTRfTVVMVElQTEVfU0VTU0lPTl9DT09LSUVTIjtKLlVbSi5VLlVtXT0iSU5WQUxJRF9HQTRfU0VTU0lPTl9DT1VOVCI7Si5VW0ouVS5UbV09IklOVkFMSURfR0E0X0xBU1RfRVZFTlRfVElNRVNUQU1QIjtKLlVbSi5VLlNtXT0iSU5WQUxJRF9HQTRfSk9JTl9USU1FUiI7Si5VW0ouVS5NbV09IkdBNF9TVEFMRV9TRVNTSU9OX0NPT0tJRV9TRUxFQ1RFRCI7Si5VW0ouVS5LbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzFfUkVBRCI7Si5VW0ouVS5MbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzJfUkVBRCI7CkouVVtKLlUuR21dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVZBSUxBQkxFIjtKLlVbSi5VLkZtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FQUExJRUQiO0ouVVtKLlUuSG1dPSJHQTRfR09PR0xFX01FQVNVUkVNRU5UX0FMTE9XRUQiO0ouVVtKLlUuSW1dPSJHQTRfR09PR0xFX1NJR05BTFNfRU5BQkxFRCI7Si5VW0ouVS5CcV09IkdBNF9GQUxMQkFDS19SRVFVRVNUIjtKLlVbSi5VLkNxXT0iR0FfQURTX0xJTktfQkVGT1JFX0NPTlZFUlNJT05fTUFSS0lORyI7Si5VW0ouVS5VcV09IlBMQVRJTlVNX0VMSUdJQkxFIjt2YXIgeGc9e30seWc9KHhnLnVhYT0hMCx4Zy51YWI9ITAseGcudWFmdmw9ITAseGcudWFtYj0hMCx4Zy51YW09ITAseGcudWFwPSEwLHhnLnVhcHY9ITAseGcudWF3PSEwLHhnKTsKdmFyIEJnPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5ldmVudHM7aWYoYy5sZW5ndGg9PT0xKXJldHVybiB6ZyhjWzBdLGIpO3ZhciBkPVtdO2EuSCYmZC5wdXNoKGEuSCk7Zm9yKHZhciBlPXt9LGY9MDtmPGMubGVuZ3RoO2YrKylHYihjW2ZdLnZlLGZ1bmN0aW9uKHQsdSl7dSE9bnVsbCYmKGVbdF09ZVt0XXx8e30sZVt0XVtTdHJpbmcodSldPWVbdF1bU3RyaW5nKHUpXSsxfHwxKX0pO3ZhciBnPXt9O0diKGUsZnVuY3Rpb24odCx1KXt2YXIgdix4PS0xLHk9MDtHYih1LGZ1bmN0aW9uKHosQyl7eSs9Qzt2YXIgRD0oei5sZW5ndGgrdC5sZW5ndGgrMikqKEMtMSk7RD54JiYodj16LHg9RCl9KTt5PT09Yy5sZW5ndGgmJihnW3RdPXYpfSk7QWcoZyxkKTtiJiZkLnB1c2goIl9zPSIrYik7Zm9yKHZhciBoPWQuam9pbigiJiIpLGw9W10sbj17fSxwPTA7cDxjLmxlbmd0aDtuPXtmazp2b2lkIDB9LHArKyl7dmFyIHE9W107bi5maz17fTtHYihjW3BdLnZlLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih1LAp2KXtnW3VdIT09IiIrdiYmKHQuZmtbdV09dil9fShuKSk7Y1twXS5IJiZxLnB1c2goY1twXS5IKTtBZyhuLmZrLHEpO2wucHVzaChxLmpvaW4oIiYiKSl9dmFyIHI9bC5qb2luKCJcclxuIik7cmV0dXJue3BhcmFtczpoLGJvZHk6cn19LHpnPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107YS5LJiZjLnB1c2goYS5LKTtiJiZjLnB1c2goIl9zPSIrYik7QWcoYS52ZSxjKTt2YXIgZD0hMTthLkgmJihjLnB1c2goYS5IKSxkPSEwKTt2YXIgZT1jLmpvaW4oIiYiKSxmPSIiLGc9ZS5sZW5ndGgrYS5iYXNlVXJsLmxlbmd0aCsxO2QmJmc+MjA0OCYmKGY9Yy5wb3AoKSxlPWMuam9pbigiJiIpKTtyZXR1cm57cGFyYW1zOmUsYm9keTpmfX0sQWc9ZnVuY3Rpb24oYSxiKXtHYihhLGZ1bmN0aW9uKGMsZCl7ZCE9bnVsbCYmYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChjKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKX0pfTsKdmFyIEVnPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWEsZT1iW2NdO2lmKCFDZy5leGVjKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSB3aWxkY2FyZCIpO3ZhciBmPWUuaW5kZXhPZigiLioiKSxnPWYhPT0tMSYmZj09PWUubGVuZ3RoLTIsaD1nP2Uuc2xpY2UoMCxlLmxlbmd0aC0yKTplLGw7YTppZihkLmxlbmd0aD09PTApbD0hMTtlbHNle2Zvcih2YXIgbj1kLnNwbGl0KCIuIikscD0wO3A8bi5sZW5ndGg7cCsrKWlmKCFEZy5leGVjKG5bcF0pKXtsPSExO2JyZWFrIGF9bD0hMH1pZighbHx8aC5sZW5ndGg+ZC5sZW5ndGh8fCFnJiZkLmxlbmd0aCE9PWUubGVuZ3RoPzA6Zz9TYihkLGgpJiYoZD09PWh8fGQuY2hhckF0KGgubGVuZ3RoKT09PSIuIik6ZD09PWgpcmV0dXJuITB9cmV0dXJuITF9LERnPS9eW2EteiRfXVtcdy0kXSokL2ksQ2c9L14oPzpbYS16XyRdW2Etei1fJDAtOV0qXC4pKlthLXpfJF1bYS16LV8kMC05XSooPzpcLlwqKT8kL2k7CnZhciBGZz1bIm1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJtb3pNYXRjaGVzU2VsZWN0b3IiLCJtc01hdGNoZXNTZWxlY3RvciIsIm9NYXRjaGVzU2VsZWN0b3IiXTtmdW5jdGlvbiBHZyhhLGIpe2lmKCFhKXJldHVybiExO3RyeXtmb3IodmFyIGM9MDtjPEZnLmxlbmd0aDtjKyspe3ZhciBkPUZnW2NdO2lmKGFbZF0hPW51bGwpcmV0dXJuIGFbZF0oYil9fWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBIZyhhLGIpe3ZhciBjPVN0cmluZyhhKSxkPVN0cmluZyhiKSxlPWMubGVuZ3RoLWQubGVuZ3RoO3JldHVybiBlPj0wJiZjLmluZGV4T2YoZCxlKT09PWV9ZnVuY3Rpb24gSWcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpLnNwbGl0KCIsIikuaW5kZXhPZihTdHJpbmcoYikpPj0wfQpmdW5jdGlvbiBKZyhhLGIsYyxkKXt2YXIgZT1jPyJpIjp2b2lkIDA7dHJ5e3ZhciBmPVN0cmluZyhiKStTdHJpbmcoZSksZz1kPT1udWxsP3ZvaWQgMDpkLmdldChmKTtnfHwoZz1uZXcgUmVnRXhwKGIsZSksZD09bnVsbHx8ZC5zZXQoZixnKSk7cmV0dXJuIGcudGVzdChhKX1jYXRjaChoKXtyZXR1cm4hMX19ZnVuY3Rpb24gS2coYSxiKXtyZXR1cm4gU3RyaW5nKGEpLmluZGV4T2YoU3RyaW5nKGIpKT49MH1mdW5jdGlvbiBMZyhhLGIpe3JldHVybiBTdHJpbmcoYSk9PT1TdHJpbmcoYil9ZnVuY3Rpb24gTWcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPj1OdW1iZXIoYil9ZnVuY3Rpb24gTmcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPD1OdW1iZXIoYil9ZnVuY3Rpb24gT2coYSxiKXtyZXR1cm4gTnVtYmVyKGEpPk51bWJlcihiKX1mdW5jdGlvbiBQZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8TnVtYmVyKGIpfQpmdW5jdGlvbiBRZyhhLGIpe3JldHVybiBTYihTdHJpbmcoYSksU3RyaW5nKGIpKX07ZnVuY3Rpb24gWGcoYSl7dmFyIGI9YS5zZWFyY2g7cmV0dXJuIGEucHJvdG9jb2wrIi8vIithLmhvc3RuYW1lK2EucGF0aG5hbWUrKGI/YisiJnJpY2hzc3Rzc2UiOiI/cmljaHNzdHNzZSIpfTt2YXIgWWc9ZnVuY3Rpb24oKXt0aGlzLlI9IiJ9LCRnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9Yi5mYWxsYmFja191cmwsZD1iLmZhbGxiYWNrX3VybF9tZXRob2Q7aWYoYyYmZCl7dmFyIGU9e307WmcoYSwoZVtkXT1bY10sZS5vcHRpb25zPXt9LGUpKX19fSxhaD1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTt0eXBlb2YgZj09PSJzdHJpbmciJiZjKGYsYil9fSxaZz1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPUNkKGIub3B0aW9ucyk/Yi5vcHRpb25zOnt9LGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1iW2ZdO3N3aXRjaChmKXtjYXNlICJzZW5kX3BpeGVsIjphaChnLGMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLksoaCxsKX0pO2JyZWFrO2Nhc2UgImZldGNoIjphaChnLApjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5IKGgsbCl9KX19fTt2YXIgYmg9L14oW2Etel1bYS16MC05XSopOighfFw/KShcKnxzdHJpbmd8Ym9vbGVhbnxudW1iZXJ8Rm58UGl4aWVNYXB8TGlzdHxPcGFxdWVWYWx1ZSkkL2ksY2g9e0ZuOiJmdW5jdGlvbiIsUGl4aWVNYXA6Ik9iamVjdCIsTGlzdDoiQXJyYXkifTsKZnVuY3Rpb24gZGgoYSxiKXtmb3IodmFyIGM9WyJpbnB1dDohKiJdLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9YmguZXhlYyhjW2RdKTtpZighZSl0aHJvdyBFcnJvcigiSW50ZXJuYWwgRXJyb3IgaW4gIithKTt2YXIgZj1lWzFdLGc9ZVsyXT09PSIhIixoPWVbM10sbD1iW2RdO2lmKGw9PW51bGwpe2lmKGcpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBSZXF1aXJlZCBhcmd1bWVudCAiK2YrIiBub3Qgc3VwcGxpZWQuIik7fWVsc2UgaWYoaCE9PSIqIil7dmFyIG49dHlwZW9mIGw7bCBpbnN0YW5jZW9mIEtkP249IkZuIjpsIGluc3RhbmNlb2YgR2Q/bj0iTGlzdCI6bCBpbnN0YW5jZW9mIGtiP249IlBpeGllTWFwIjpsIGluc3RhbmNlb2YgU2Q/bj0iUGl4aWVQcm9taXNlIjpsIGluc3RhbmNlb2YgUGQmJihuPSJPcGFxdWVWYWx1ZSIpO2lmKG4hPT1oKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gQXJndW1lbnQgIitmKyIgaGFzIHR5cGUgIisoKGNoW25dfHxuKSsiLCB3aGljaCBkb2VzIG5vdCBtYXRjaCByZXF1aXJlZCB0eXBlICIpKwooKGNoW2hdfHxoKSsiLiIpKTt9fX1mdW5jdGlvbiBLKGEsYixjKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2cgaW5zdGFuY2VvZiBLZD9kLnB1c2goImZ1bmN0aW9uIik6ZyBpbnN0YW5jZW9mIEdkP2QucHVzaCgiQXJyYXkiKTpnIGluc3RhbmNlb2Yga2I/ZC5wdXNoKCJPYmplY3QiKTpnIGluc3RhbmNlb2YgU2Q/ZC5wdXNoKCJQcm9taXNlIik6ZyBpbnN0YW5jZW9mIFBkP2QucHVzaCgiT3BhcXVlVmFsdWUiKTpkLnB1c2godHlwZW9mIGcpfXJldHVybiBFcnJvcigiQXJndW1lbnQgZXJyb3IgaW4gIithKyIuIEV4cGVjdGVkIGFyZ3VtZW50IHR5cGVzIFsiKyhiLmpvaW4oIiwiKSsiXSwgYnV0IHJlY2VpdmVkIFsiKSsoZC5qb2luKCIsIikrIl0uIikpfWZ1bmN0aW9uIGVoKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2J9ZnVuY3Rpb24gZmgoYSl7cmV0dXJuIGVoKGEpfHxhPT09bnVsbHx8Z2goYSl9CmZ1bmN0aW9uIGhoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgS2R9ZnVuY3Rpb24gaWgoYSl7cmV0dXJuIGhoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gamgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBHZH1mdW5jdGlvbiBraChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFBkfWZ1bmN0aW9uIGxoKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIG1oKGEpe3JldHVybiBsaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIG5oKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn1mdW5jdGlvbiBvaChhKXtyZXR1cm4gbmgoYSl8fGdoKGEpfWZ1bmN0aW9uIHBoKGEpe3JldHVybiBuaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIHFoKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifWZ1bmN0aW9uIGdoKGEpe3JldHVybiBhPT09dm9pZCAwfTtmdW5jdGlvbiByaChhKXtyZXR1cm4iIithfQpmdW5jdGlvbiBzaChhLGIpe3ZhciBjPVtdO3JldHVybiBjfTtmdW5jdGlvbiB0aChhLGIpe3ZhciBjPW5ldyBLZChhLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXT10aGlzLmV2YWx1YXRlKGRbZV0pO3RyeXtyZXR1cm4gYi5hcHBseSh0aGlzLGQpfWNhdGNoKGcpe3Rocm93IGNiKGcpO319KTtjLlphKCk7cmV0dXJuIGN9CmZ1bmN0aW9uIHVoKGEsYil7dmFyIGM9bmV3IGtiLGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO3liKGUpP2Muc2V0KGQsdGgoYSsiXyIrZCxlKSk6Q2QoZSk/Yy5zZXQoZCx1aChhKyJfIitkLGUpKTooQWIoZSl8fHpiKGUpfHx0eXBlb2YgZT09PSJib29sZWFuIikmJmMuc2V0KGQsZSl9Yy5aYSgpO3JldHVybiBjfTtmdW5jdGlvbiB3aChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydEFwaVN1YmplY3QiLApjKX07ZnVuY3Rpb24geGgoYSxiKXtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIFNkKXRocm93IEVycm9yKCJBcmd1bWVudCBhY3R1YWwgY2Fubm90IGhhdmUgdHlwZSBQcm9taXNlLiBBc3NlcnRpb25zIG9uIGFzeW5jaHJvbm91cyBjb2RlIGFyZW4ndCBzdXBwb3J0ZWQuIik7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydFRoYXRTdWJqZWN0IixjKX07ZnVuY3Rpb24geWgoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBiPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxjPVtdLGQ9dGhpcy5ULGU9MDtlPGIubGVuZ3RoOysrZSljLnB1c2goVGQoYltlXSxkKSk7cmV0dXJuIFVkKGEuYXBwbHkobnVsbCxjKSl9fWZ1bmN0aW9uIHpoKCl7Zm9yKHZhciBhPU1hdGgsYj1BaCxjPXt9LGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTthLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT15aChhW2VdLmJpbmQoYSkpKX1yZXR1cm4gY307ZnVuY3Rpb24gQmgoYSl7cmV0dXJuIGEhPW51bGwmJlNiKGEsIl9fY3Z0XyIpfTtmdW5jdGlvbiBDaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRGgoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChjKXt9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJKGEpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEZoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gR2goYSxiKXt2YXIgYz0hMTt2YXIgZD1KU09OLnBhcnNlKGEpO2lmKCFkKXRocm93IEVycm9yKCJJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBzdHJpbmcgd2FzIGdpdmVuLiIpO2M9SGgoZCxiKTtyZXR1cm4gY30KdmFyIEloPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe2lmKGE9PT12b2lkIDApcmV0dXJuO2E9YVtiW2NdXX1yZXR1cm4gYX0sSmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnByZUhpdDtpZihjKXt2YXIgZD1hWzBdO3N3aXRjaChkKXtjYXNlICJoaXREYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRIaXREYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgIm1ldGFkYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRNZXRhZGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJldmVudE5hbWUiOnJldHVybiBjLmdldEV2ZW50TmFtZSgpO2Nhc2UgImRlc3RpbmF0aW9uSWQiOnJldHVybiBjLmdldERlc3RpbmF0aW9uSWQoKTtkZWZhdWx0OnRocm93IEVycm9yKGQrIiBpcyBub3QgYSB2YWxpZCBmaWVsZCB0aGF0IGNhbiBiZSBhY2Nlc3NlZFxuICAgICAgICAgICAgICAgICAgICAgIGZyb20gUHJlSGl0IGRhdGEuIik7fX19LApLaD1mdW5jdGlvbihhLGIpe2lmKGEpe2lmKGEuY29udGV4dFZhbHVlIT09dm9pZCAwKXt2YXIgYzthOnt2YXIgZD1hLmNvbnRleHRWYWx1ZSxlPWQua2V5UGFydHM7aWYoZSYmZS5sZW5ndGghPT0wKXt2YXIgZj1kLm5hbWVzcGFjZVR5cGU7c3dpdGNoKGYpe2Nhc2UgMTpjPUpoKGUsYik7YnJlYWsgYTtjYXNlIDI6dmFyIGc9Yi5tYWNybztjPWc/Z1tlWzBdXTp2b2lkIDA7YnJlYWsgYTtkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZSBUeXBlIHVzZWQ6ICIrZik7fX1jPXZvaWQgMH1yZXR1cm4gY31pZihhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUhPT12b2lkIDApcmV0dXJuIEhoKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSxiKTtpZihhLmJvb2xlYW5WYWx1ZSE9PXZvaWQgMClyZXR1cm4hIWEuYm9vbGVhblZhbHVlO2lmKGEuc3RyaW5nVmFsdWUhPT12b2lkIDApcmV0dXJuIFN0cmluZyhhLnN0cmluZ1ZhbHVlKTtpZihhLmludGVnZXJWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuaW50ZWdlclZhbHVlKTsKaWYoYS5kb3VibGVWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuZG91YmxlVmFsdWUpO3Rocm93IEVycm9yKCJVbmtub3duIGZpZWxkIHVzZWQgZm9yIHZhcmlhYmxlIG9mIHR5cGUgRXhwcmVzc2lvblZhbHVlOiIrYSk7fX0sSGg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmFyZ3M7aWYoIUFycmF5LmlzQXJyYXkoYyl8fGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAiYXJncyI6JytjKyIgcHJvcGVydHkgdG9cbiAgICAgICAgIGJlIG5vbi1lbXB0eSBhcnJheS4iKTt2YXIgZD1mdW5jdGlvbihnKXtyZXR1cm4gS2goZyxiKX07c3dpdGNoKGEudHlwZSl7Y2FzZSAxOmZvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWlmKGQoY1tlXSkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSAyOmZvcih2YXIgZj0wO2Y8Yy5sZW5ndGg7ZisrKWlmKCFkKGNbZl0pKXJldHVybiExO3JldHVybiBjLmxlbmd0aD4wO2Nhc2UgMzpyZXR1cm4hZChjWzBdKTsKY2FzZSA0OnJldHVybiBKZyhkKGNbMF0pLGQoY1sxXSksITEsYi5yZWdleENhY2hlKTtjYXNlIDU6cmV0dXJuIExnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA2OnJldHVybiBRZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNzpyZXR1cm4gSGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDg6cmV0dXJuIEtnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA5OnJldHVybiBQZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTA6cmV0dXJuIE5nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMTpyZXR1cm4gT2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEyOnJldHVybiBNZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTM6cmV0dXJuIElnKGQoY1swXSksU3RyaW5nKGQoY1sxXSkpKTtkZWZhdWx0OnRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJ0eXBlIiBwcm9wZXJ0eSB0b2JlIGEgcG9zaXRpdmUgaW50ZWdlciB3aGljaCBpcyBsZXNzIHRoYW4gMTQuJyk7fX07CmZ1bmN0aW9uIExoKGEpe2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7fTtmdW5jdGlvbiBNaChhKXt2YXIgYj1UZChhKTtyZXR1cm4gbmcoYj8iIitiOiIiKX07ZnVuY3Rpb24gTmgoYSxiKXtpZighcWgoYSl8fCFxaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIiwibnVtYmVyIl0sYXJndW1lbnRzKTtyZXR1cm4gRGIoYSxiKX07ZnVuY3Rpb24gT2goKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07ZnVuY3Rpb24gUGgoYSl7aWYoYT09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEgaW5zdGFuY2VvZiBHZClyZXR1cm4iYXJyYXkiO2lmKGEgaW5zdGFuY2VvZiBLZClyZXR1cm4iZnVuY3Rpb24iO2lmKGEgaW5zdGFuY2VvZiBQZCl7dmFyIGI9YS5nZXRWYWx1ZSgpO2lmKChiPT1udWxsP3ZvaWQgMDpiLmNvbnN0cnVjdG9yKT09PXZvaWQgMHx8Yi5jb25zdHJ1Y3Rvci5uYW1lPT09dm9pZCAwKXt2YXIgYz1TdHJpbmcoYik7cmV0dXJuIGMuc3Vic3RyaW5nKDgsYy5sZW5ndGgtMSl9cmV0dXJuIFN0cmluZyhiLmNvbnN0cnVjdG9yLm5hbWUpfXJldHVybiB0eXBlb2YgYX07ZnVuY3Rpb24gUWgoYSl7ZnVuY3Rpb24gYihjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dHJ5e3JldHVybiBjKGQpfWNhdGNoKGUpeyhsZ3x8bWcuUG8pJiZhLmNhbGwodGhpcyxlLm1lc3NhZ2UpfX19cmV0dXJue3BhcnNlOmIoZnVuY3Rpb24oYyl7cmV0dXJuIFVkKEpTT04ucGFyc2UoYykpfSksc3RyaW5naWZ5OmIoZnVuY3Rpb24oYyl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFRkKGMpKX0pLHB1YmxpY05hbWU6IkpTT04ifX07ZnVuY3Rpb24gUmgoYSl7cmV0dXJuIEliKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFNoKGEpe3JldHVybiBOdW1iZXIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gVGgoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gVWgoYSxiLGMpe3ZhciBkPW51bGwsZT0hMTtyZXR1cm4gZT9kOm51bGx9O3ZhciBBaD0iZmxvb3IgY2VpbCByb3VuZCBtYXggbWluIGFicyBwb3cgc3FydCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBWaCgpe3ZhciBhPXt9O3JldHVybntXcjpmdW5jdGlvbihiKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOnZvaWQgMH0sS286ZnVuY3Rpb24oYixjKXthW2JdPWN9LHJlc2V0OmZ1bmN0aW9uKCl7YT17fX19fWZ1bmN0aW9uIFdoKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEtkLnByb3RvdHlwZS5pbnZva2UuYXBwbHkoYSxbYl0uY29uY2F0KHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSkpfX0KZnVuY3Rpb24gWGgoYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7fQpmdW5jdGlvbiBZaChhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJQaXhpZU1hcCJdLGFyZ3VtZW50cyk7fTt2YXIgWmg9e307dmFyICRoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtpZihhIGluc3RhbmNlb2YgR2QpZm9yKHZhciBjPWEuRmEoKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07YS5oYXMoZSkmJmIuc2V0KGUsYS5nZXQoZSkpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIEtkKWZvcih2YXIgZj1hLkZhKCksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO2Iuc2V0KGgsYS5nZXQoaCkpfWVsc2UgZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYi5zZXQobCxhW2xdKTtyZXR1cm4gYn07ClpoLmtleXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5GYSgpKTtyZXR1cm4gbmV3IEdkfTsKWmgudmFsdWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuaGMoKSk7cmV0dXJuIG5ldyBHZH07ClpoLmVudHJpZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5mYygpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gbmV3IEdkKGIpfSkpO3JldHVybiBuZXcgR2R9OwpaaC5mcmVlemU9ZnVuY3Rpb24oYSl7KGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZCkmJmEuWmEoKTtyZXR1cm4gYX07WmguZGVsZXRlPWZ1bmN0aW9uKGEsYil7aWYoYSBpbnN0YW5jZW9mIGtiJiYhYS5IYigpKXJldHVybiBhLnJlbW92ZShiKSwhMDtyZXR1cm4hMX07ZnVuY3Rpb24gTChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPWEuVC54YigpO2lmKCFkKXRocm93IEVycm9yKCJNaXNzaW5nIHByb2dyYW0gc3RhdGUuIik7aWYoZC5pdCl7dHJ5e2QuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX1jYXRjaChlKXt0aHJvdyBzYigiVEFHR0lORyIsMjEpLGU7fXJldHVybn1kLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9O3ZhciBhaT1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPSEwO307YWkucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGFpbnMoYSk/dGhpcy5LW2FdOnZvaWQgMDtyZXR1cm4gY307YWkucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLksuaGFzT3duUHJvcGVydHkoYSl9OwphaS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZih0aGlzLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGFuIEFQSSB3aXRoIGFuIGV4aXN0aW5nIHByaXZhdGUgQVBJIG5hbWU6ICIrYSsiLiIpO3RoaXMuS1thXT1jP3ZvaWQgMDp5YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIGJpKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfTtmdW5jdGlvbiBjaSgpe3ZhciBhPXt9OwpyZXR1cm4gYX07dmFyIGRpPXt9LGVpPShkaVtGLkQuc2FdPSJnY3UiLGRpW0YuRC5laF09ImVwdCIsZGlbRi5ELlNiXT0iZ2NsZ2IiLGRpW0YuRC5sYl09ImdjbGF3IixkaVtGLkQuemxdPSJnY2xpZF9sZW4iLGRpW0YuRC5CZV09ImdjbGdzIixkaVtGLkQuQ2VdPSJnY2xscCIsZGlbRi5ELkRlXT0iZ2Nsc3QiLGRpW0YuRC5FZF09ImF1aWQiLGRpW0YuRC5CbF09ImFlIixkaVtGLkQuQ2ZdPSJkc2NudCIsZGlbRi5ELkRmXT0iZmNudHIiLGRpW0YuRC5FZl09ImZsbmciLGRpW0YuRC5GZl09Im1pZCIsZGlbRi5ELndpXT0iYnR0eXBlIixkaVtGLkQuS2JdPSJnYWNpZCIsZGlbRi5ELkdkXT0ibGFiZWwiLGRpW0YuRC5GZV09ImNhcGkiLGRpW0YuRC5qaF09InBzY2RsIixkaVtGLkQuZWJdPSJjdXJyZW5jeV9jb2RlIixkaVtGLkQuR2VdPSJ2ZGx0diIsZGlbRi5ELmtoXT0iY2xvY3QiLGRpW0YuRC5FbF09Il9kYmciLGRpW0YuRC5JZV09Im9lZGVsZCIsZGlbRi5ELlZjXT0iZWRpZCIsZGlbRi5ELk1kXT0iZXZuaWQiLApkaVtGLkQuRWldPSJldmppZCIsZGlbRi5ELk5kXT0iZXhjaWQiLGRpW0YuRC5yaF09ImdhYyIsZGlbRi5ELkplXT0iZ2FjZ2IiLGRpW0YuRC5NbF09ImdhY21jb3YiLGRpW0YuRC5LZV09ImdkcHIiLGRpW0YuRC5YY109ImdkaWQiLGRpW0YuRC5MZV09Il9uZyIsZGlbRi5ELmNxXT0iX29ubyIsZGlbRi5ELnRoXT0iZ3BwX3NpZCIsZGlbRi5ELnVoXT0iZ3BwIixkaVtGLkQuUGxdPSJnc2FleHAiLGRpW0YuRC5WZl09Il90dSIsZGlbRi5ELk1lXT0iZnJtIixkaVtGLkQuS2ldPSJndG1fdXAiLGRpW0YuRC5QZF09ImxwcyIsZGlbRi5ELkxpXT0iZGlkIixkaVtGLkQuUWRdPSJmY250ciIsZGlbRi5ELlJkXT0iZmxuZyIsZGlbRi5ELlNkXT0ibWlkIixkaVtGLkQuTmVdPXZvaWQgMCxkaVtGLkQuTWJdPSJ0aWJhIixkaVtGLkQuV2JdPSJyZHAiLGRpW0YuRC54Y109ImVjc2lkIixkaVtGLkQuWmZdPSJnYV91aWQiLGRpW0YuRC5VZF09ImRlbG9wYyIsZGlbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IiwKZGlbRi5ELlBhXT0ib2lkIixkaVtGLkQuZG1dPSJvaWRzcmMiLGRpW0YuRC5mbV09InVwdGdzIixkaVtGLkQuY2ddPSJ1YWEiLGRpW0YuRC5kZ109InVhYiIsZGlbRi5ELmVnXT0idWFmdmwiLGRpW0YuRC5mZ109InVhbWIiLGRpW0YuRC5nZ109InVhbSIsZGlbRi5ELmhnXT0idWFwIixkaVtGLkQuaWddPSJ1YXB2IixkaVtGLkQuamddPSJ1YXciLGRpW0YuRC5nbV09ImVjX2xhdCIsZGlbRi5ELmhtXT0iZWNfbWV0YSIsZGlbRi5ELmltXT0iZWNfbSIsZGlbRi5ELmptXT0iZWNfc2VsIixkaVtGLkQua21dPSJlY19zIixkaVtGLkQuQmNdPSJlY19tb2RlIixkaVtGLkQuZmJdPSJ1c2VySWQiLGRpW0YuRC5rZ109InVzX3ByaXZhY3kiLGRpW0YuRC5RYV09InZhbHVlIixkaVtGLkQucW1dPSJtY292IixkaVtGLkQuV2ldPSJobiIsZGlbRi5ELlZtXT0iZ3RtX2VlIixkaVtGLkQuWWldPSJ1aXAiLGRpW0YuRC5KaF09Im10IixkaVtGLkQuZGVdPSJucGEiLGRpW0YuRC5ZcV09InNnX3VjIixkaVtGLkQueWldPQpudWxsLGRpW0YuRC5iZF09bnVsbCxkaVtGLkQudGJdPW51bGwsZGlbRi5ELkhhXT1udWxsLGRpW0YuRC56YV09bnVsbCxkaVtGLkQuVWFdPW51bGwsZGlbRi5ELlBlXT1udWxsLGRpW0YuRC5lZF09bnVsbCxkaVtGLkQuc2hdPW51bGwsZGlbRi5ELkJkXT1udWxsLGRpW0YuRC5DZF09bnVsbCxkaVtGLkQuZmhdPW51bGwsZGlbRi5ELmdoXT1udWxsLGRpW0YuRC5UYV09bnVsbCxkaVtGLkQuV2NdPW51bGwsZGkpO2Z1bmN0aW9uIGZpKGEsYil7aWYoYSl7dmFyIGM9YS5zcGxpdCgieCIpO2MubGVuZ3RoPT09MiYmKGdpKGIsInVfdyIsY1swXSksZ2koYiwidV9oIixjWzFdKSl9fWZ1bmN0aW9uIGhpKGEpe3ZhciBiPWlpO2I9Yj09PXZvaWQgMD9qaTpiO3JldHVybiBraShsaShhLGIpKX1mdW5jdGlvbiBraShhKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIigiK1ttaShiLnZhbHVlKSxtaShiLnF1YW50aXR5KSxtaShiLml0ZW1faWQpLG1pKGIuc3RhcnRfZGF0ZSksbWkoYi5lbmRfZGF0ZSldLmpvaW4oIioiKSsiKSJ9KS5qb2luKCIiKX0KZnVuY3Rpb24gbGkoYSxiKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJue2l0ZW1faWQ6YihjKSxxdWFudGl0eTpjLnF1YW50aXR5LHZhbHVlOmMucHJpY2Usc3RhcnRfZGF0ZTpjLnN0YXJ0X2RhdGUsZW5kX2RhdGU6Yy5lbmRfZGF0ZX19KX1mdW5jdGlvbiBqaShhKXtyZXR1cm5bYS5pdGVtX2lkLGEuaWQsYS5pdGVtX25hbWVdLmZpbmQoZnVuY3Rpb24oYil7cmV0dXJuIGIhPW51bGx9KX1mdW5jdGlvbiBuaShhKXtpZihhJiZhLmxlbmd0aClyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGImJmIuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU/Yi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZToiIn0pLmpvaW4oIiwiKX1mdW5jdGlvbiBnaShhLGIsYyl7Yz09PXZvaWQgMHx8Yz09PW51bGx8fGM9PT0iIiYmIXlnW2JdfHwoYVtiXT1jKX0KZnVuY3Rpb24gbWkoYSl7cmV0dXJuIHR5cGVvZiBhIT09Im51bWJlciImJnR5cGVvZiBhIT09InN0cmluZyI/IiI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBvaSgpe3RoaXMuYmxvY2tTaXplPS0xfTtmdW5jdGlvbiBwaShhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuTj1SYS5VaW50OEFycmF5P25ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTpBcnJheSh0aGlzLmJsb2NrU2l6ZSk7dGhpcy5SPXRoaXMuSz0wO3RoaXMuSD1bXTt0aGlzLmZhPWE7dGhpcy5aPWI7dGhpcy5qYT1SYS5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7cWk9PT12b2lkIDAmJihSYS5JbnQzMkFycmF5P3FpPW5ldyBJbnQzMkFycmF5KHJpKTpxaT1yaSk7dGhpcy5yZXNldCgpfVNhKHBpLG9pKTtmb3IodmFyIHNpPVtdLHRpPTA7dGk8NjM7dGkrKylzaVt0aV09MDt2YXIgdWk9W10uY29uY2F0KDEyOCxzaSk7CnBpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuUj10aGlzLks9MDt2YXIgYTtpZihSYS5JbnQzMkFycmF5KWE9bmV3IEludDMyQXJyYXkodGhpcy5aKTtlbHNle3ZhciBiPXRoaXMuWixjPWIubGVuZ3RoO2lmKGM+MCl7Zm9yKHZhciBkPUFycmF5KGMpLGU9MDtlPGM7ZSsrKWRbZV09YltlXTthPWR9ZWxzZSBhPVtdfXRoaXMuSD1hfTsKdmFyIHZpPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLk4sYz1hLmphLGQ9MCxlPTA7ZTxiLmxlbmd0aDspY1tkKytdPWJbZV08PDI0fGJbZSsxXTw8MTZ8YltlKzJdPDw4fGJbZSszXSxlPWQqNDtmb3IodmFyIGY9MTY7Zjw2NDtmKyspe3ZhciBnPWNbZi0xNV18MCxoPWNbZi0yXXwwO2NbZl09KChjW2YtMTZdfDApKygoZz4+Pjd8Zzw8MjUpXihnPj4+MTh8Zzw8MTQpXmc+Pj4zKXwwKSsoKGNbZi03XXwwKSsoKGg+Pj4xN3xoPDwxNSleKGg+Pj4xOXxoPDwxMyleaD4+PjEwKXwwKXwwfWZvcih2YXIgbD1hLkhbMF18MCxuPWEuSFsxXXwwLHA9YS5IWzJdfDAscT1hLkhbM118MCxyPWEuSFs0XXwwLHQ9YS5IWzVdfDAsdT1hLkhbNl18MCx2PWEuSFs3XXwwLHg9MDt4PDY0O3grKyl7dmFyIHk9KChsPj4+MnxsPDwzMCleKGw+Pj4xM3xsPDwxOSleKGw+Pj4yMnxsPDwxMCkpKyhsJm5ebCZwXm4mcCl8MCx6PSh2Kygocj4+PjZ8cjw8MjYpXihyPj4+MTF8cjw8MjEpXihyPj4+MjV8cjw8NykpfAowKSsoKChyJnRefnImdSkrKHFpW3hdfDApfDApKyhjW3hdfDApfDApfDA7dj11O3U9dDt0PXI7cj1xK3p8MDtxPXA7cD1uO249bDtsPXoreXwwfWEuSFswXT1hLkhbMF0rbHwwO2EuSFsxXT1hLkhbMV0rbnwwO2EuSFsyXT1hLkhbMl0rcHwwO2EuSFszXT1hLkhbM10rcXwwO2EuSFs0XT1hLkhbNF0rcnwwO2EuSFs1XT1hLkhbNV0rdHwwO2EuSFs2XT1hLkhbNl0rdXwwO2EuSFs3XT1hLkhbN10rdnwwfTsKcGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPWEubGVuZ3RoKTt2YXIgYz0wLGQ9dGhpcy5LO2lmKHR5cGVvZiBhPT09InN0cmluZyIpZm9yKDtjPGI7KXRoaXMuTltkKytdPWEuY2hhckNvZGVBdChjKyspLGQ9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKTtlbHNle3ZhciBlLGY9dHlwZW9mIGE7ZT1mIT0ib2JqZWN0Ij9mOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmY6Im51bGwiO2lmKGU9PSJhcnJheSJ8fGU9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKWZvcig7YzxiOyl7dmFyIGc9YVtjKytdO2lmKCEoIm51bWJlciI9PXR5cGVvZiBnJiYwPD1nJiYyNTU+PWcmJmc9PShnfDApKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuTltkKytdPWc7ZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsKfXRoaXMuSz1kO3RoaXMuUis9Yn07cGkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5SKjg7dGhpcy5LPDU2P3RoaXMudXBkYXRlKHVpLDU2LXRoaXMuSyk6dGhpcy51cGRhdGUodWksdGhpcy5ibG9ja1NpemUtKHRoaXMuSy01NikpO2Zvcih2YXIgYz02MztjPj01NjtjLS0pdGhpcy5OW2NdPWImMjU1LGIvPTI1Njt2aSh0aGlzKTtmb3IodmFyIGQ9MCxlPTA7ZTx0aGlzLmZhO2UrKylmb3IodmFyIGY9MjQ7Zj49MDtmLT04KWFbZCsrXT10aGlzLkhbZV0+PmYmMjU1O3JldHVybiBhfTsKdmFyIHJpPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsCjQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxxaTtmdW5jdGlvbiB3aSgpe3BpLmNhbGwodGhpcyw4LHhpKX1TYSh3aSxwaSk7dmFyIHhpPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07dmFyIHlpPS9eWzAtOUEtRmEtZl17NjR9JC87ZnVuY3Rpb24gemkoYSl7dHJ5e3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKX1jYXRjaChiKXtyZXR1cm4gWmIoYSl9fWZ1bmN0aW9uIEFpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3ZhciBjO2lmKChjPWIuY3J5cHRvKT09bnVsbD8wOmMuc3VidGxlKXtpZih5aS50ZXN0KGEpKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dHJ5e3ZhciBkPXppKGEpO3JldHVybiBiLmNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBCaShlLGIpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4iZTIifSl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTIiKX19ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMSIpfQpmdW5jdGlvbiBDaShhKXt0cnl7dmFyIGI9bmV3IHdpO2IudXBkYXRlKHppKGEpKTtyZXR1cm4gYi5kaWdlc3QoKX1jYXRjaChjKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBEaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCJ8fHlpLnRlc3QoYSkpcmV0dXJuIGE7dmFyIGM9Q2koYSk7aWYoYz09PSJlMiIpcmV0dXJuImUyIjt0cnl7cmV0dXJuIEJpKGMsYil9Y2F0Y2goZCl7cmV0dXJuImUyIn19ZnVuY3Rpb24gQmkoYSxiKXt2YXIgYz1BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZCl9KS5qb2luKCIiKTtyZXR1cm4gYi5idG9hKGMpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9O2Z1bmN0aW9uIEVpKCl7Zm9yKHZhciBhPSExLGI9ITEsYz0wO2E9PT1iOylpZihhPURiKDAsMSk9PT0wLGI9RGIoMCwxKT09PTAsYysrLGM+MzApcmV0dXJuO3JldHVybiBhfXZhciBHaT17c2s6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBGaS5zayhhLGIsYyl9fSxIaT1mdW5jdGlvbigpe3RoaXMuc3R1ZGllcz17fTt0aGlzLkg9RWl9OwpIaS5wcm90b3R5cGUuc2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuc3R1ZGllc1tiXTtpZighKChjPT09dm9pZCAwP0RiKDAsOTk5OSk6YyUxRTQpPGQucHJvYmFiaWxpdHkqKGQuY29udHJvbElkMj80OjIpKjFFNCkpcmV0dXJuIGE7YTp7dmFyIGU9ZC5zdHVkeUlkLGY9ZC5leHBlcmltZW50SWQsZz1kLmNvbnRyb2xJZCxoPWQuY29udHJvbElkMjtpZighKChhLmV4cHx8e30pW2ZdfHwoYS5leHB8fHt9KVtnXXx8aCYmKGEuZXhwfHx7fSlbaF0pKXt2YXIgbD1jIT09dm9pZCAwP2MlMj09PTA6dGhpcy5IKCk7aWYobCE9PXZvaWQgMCl7dmFyIG49bD8wOjE7aWYoaCl7dmFyIHA9YyE9PXZvaWQgMD8oYz4+MSklMj09PTA6dGhpcy5IKCk7aWYocD09PXZvaWQgMClicmVhayBhO258PShwPzA6MSk8PDF9bj09PTA/SWkoYSxmLGUpOm49PT0xP0lpKGEsZyxlKTpuPT09MiYmSWkoYSxoLGUpfX19cmV0dXJuIGF9Owp2YXIgS2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdP0ppKGMsYil8fCEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmV4cGVyaW1lbnRJZF06ITF9LExpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZCYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkXTohMX0sTWk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkMiYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkMl06ITF9LE5pPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEuZXhwfHx7fSxkPW0oT2JqZWN0LmtleXMoYykubWFwKE51bWJlcikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2lmKGNbZl09PT1iKXJldHVybiBmfX0sSmk9ZnVuY3Rpb24oYSwKYil7cmV0dXJuISFhLnN0dWRpZXNbYl0uYWN0aXZlfHxhLnN0dWRpZXNbYl0ucHJvYmFiaWxpdHk+LjV9LElpPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmV4cHx8e307ZFtiXT1jO2EuZXhwPWR9LEZpPW5ldyBIaTt2YXIgaWo9ZnVuY3Rpb24oKXt0aGlzLkg9QS5nb29nbGVfdGFnX21hbmFnZXI9QS5nb29nbGVfdGFnX21hbmFnZXJ8fHt9fSxqajtmdW5jdGlvbiBraihhLGIpe2xqKCk7dmFyIGM9amo7cmV0dXJuIGMuSFthXT1jLkhbYV18fGIoKX1mdW5jdGlvbiBtaihhKXtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIG5qKGEsYil7bGooKTtqai5IW2FdPWJ9ZnVuY3Rpb24gb2ooYSl7dmFyIGI9RSg1KTtsaigpO3ZhciBjPWpqO2MuSFtiXT1jLkhbYl18fGF9ZnVuY3Rpb24gcGooKXt2YXIgYT1FKDE5KTtsaigpO3ZhciBiPWpqO3JldHVybiBiLkhbYV09Yi5IW2FdfHx7fX1mdW5jdGlvbiBxaigpe3ZhciBhPUUoMTkpO2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gcmooKXtsaigpO3ZhciBhPWpqLGI9YS5ILnNlcXVlbmNlfHwxO2EuSC5zZXF1ZW5jZT1iKzE7cmV0dXJuIGJ9ZnVuY3Rpb24gbGooKXtqanx8KGpqPW5ldyBpail9O3ZhciBzaj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiAwO2Nhc2UgNDkxOnJldHVybiAxMjtjYXNlIDQ4MDpyZXR1cm4gMTE7Y2FzZSA0OTk6cmV0dXJuIDEwO2Nhc2UgNTAwOnJldHVybiA2O2Nhc2UgNDIxOnJldHVybiA5O2Nhc2UgNTYxOnJldHVybiAxNztjYXNlIDQ4MjpyZXR1cm4gMTU7Y2FzZSA1NzA6cmV0dXJuIDE5O2Nhc2UgNDk1OnJldHVybiAxMztjYXNlIDUxNDpyZXR1cm4gMTY7Y2FzZSA1NzM6cmV0dXJuIDE4O2Nhc2UgMjM1OnJldHVybiA4O2Nhc2UgNTM6cmV0dXJuIDE7Y2FzZSA1NDpyZXR1cm4gMjtjYXNlIDUyOnJldHVybiA0O2Nhc2UgNzU6cmV0dXJuIDN9fSx0aj1mdW5jdGlvbihhLGIpe2EuTltiXT0hMDt2YXIgYz1zaihiKTtjIT09dm9pZCAwJiYoV2ZbY109ITApfSxNPWZ1bmN0aW9uKGEpe3JldHVybiEhdWouTlthXX0sdWo9bmV3IGZ1bmN0aW9uKCl7dGhpcy5OPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107CnRqKHRoaXMsMTMyKTt2YXIgYT1OZig2LDZFNCk7WGZbMV09YTt2YXIgYj1OZig3LDEpO1hmWzNdPWI7dmFyIGM9TmYoMzUsNTApO1hmWzJdPWM7dmFyIGQ9TmYoNjksMTc3NjQ0ODkyMCk7WGZbNF09ZDsKdGoodGhpcyw0MzUpO3RqKHRoaXMsMTQxKTsKfTt2YXIgdmo9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFNldDt0aGlzLks9bmV3IFNldH0seGo9ZnVuY3Rpb24oYSl7dmFyIGI9d2ouSDthPWE9PT12b2lkIDA/W106YTt2YXIgYz1bXS5jb25jYXQodyhiLkgpKS5jb25jYXQoW10uY29uY2F0KHcoYi5LKSkpLmNvbmNhdChhKTtjLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGN9LHlqPWZ1bmN0aW9uKCl7dmFyIGE9W10uY29uY2F0KHcod2ouSC5IKSk7YS5zb3J0KGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGItY30pO3JldHVybiBhfSx6aj1mdW5jdGlvbigpe3ZhciBhPXdqLkgsYj1FKDQ0KTthLkg9bmV3IFNldDtpZihiIT09IiIpZm9yKHZhciBjPW0oYi5zcGxpdCgifiIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9TnVtYmVyKGQudmFsdWUpO2lzTmFOKGUpfHxhLkguYWRkKGUpfX07dmFyIEFqPXt9LEJqPXtfX2NsOjEsX19lY2w6MSxfX2VobDoxLF9fZXZsOjEsX19mYWw6MSxfX2ZpbDoxLF9fZnNsOjEsX19obDoxLF9famVsOjEsX19sY2w6MSxfX3NkbDoxLF9fdGw6MSxfX3l0bDoxfSxDaj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHtfX3BhdXNlZDoxLF9fdGc6MX0sQmopLERqLEVqPSExO0RqPUVqO3ZhciBGaj0iIjtBai5xaj1Gajt2YXIgd2o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPW5ldyB2an07dmFyIEdqPS86WzAtOV0rJC8sSGo9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvO2Z1bmN0aW9uIElqKGEsYixjLGQpe3ZhciBlPUpqKGEsISFkLGIpLGYsZztyZXR1cm4gYz8oZz1lW2JdKSE9bnVsbD9nOltdOihmPWVbYl0pPT1udWxsP3ZvaWQgMDpmWzBdfWZ1bmN0aW9uIEpqKGEsYixjKXtmb3IodmFyIGQ9e30sZT1tKGEuc3BsaXQoIiYiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPW0oZi52YWx1ZS5zcGxpdCgiPSIpKSxoPWcubmV4dCgpLnZhbHVlLGw9eWEoZyksbj1kZWNvZGVVUklDb21wb25lbnQoaC5yZXBsYWNlKC9cKy9nLCIgIikpO2lmKGM9PT12b2lkIDB8fG49PT1jKXt2YXIgcD1sLmpvaW4oIj0iKTtkW25dfHwoZFtuXT1bXSk7ZFtuXS5wdXNoKGI/cDpkZWNvZGVVUklDb21wb25lbnQocC5yZXBsYWNlKC9cKy9nLCIgIikpKX19cmV0dXJuIGR9CmZ1bmN0aW9uIEtqKGEpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGIpe319ZnVuY3Rpb24gTGooYSxiLGMsZCxlKXtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7aWYoYj09PSJwcm90b2NvbCJ8fGI9PT0icG9ydCIpYS5wcm90b2NvbD1NaihhLnByb3RvY29sKXx8TWooQS5sb2NhdGlvbi5wcm90b2NvbCk7Yj09PSJwb3J0Ij9hLnBvcnQ9U3RyaW5nKE51bWJlcihhLmhvc3RuYW1lP2EucG9ydDpBLmxvY2F0aW9uLnBvcnQpfHwoYS5wcm90b2NvbD09PSJodHRwIj84MDphLnByb3RvY29sPT09Imh0dHBzIj80NDM6IiIpKTpiPT09Imhvc3QiJiYoYS5ob3N0bmFtZT0oYS5ob3N0bmFtZXx8QS5sb2NhdGlvbi5ob3N0bmFtZSkucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKSk7cmV0dXJuIE5qKGEsYixjLGQsZSl9CmZ1bmN0aW9uIE5qKGEsYixjLGQsZSl7dmFyIGYsZz1NaihhLnByb3RvY29sKTtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7c3dpdGNoKGIpe2Nhc2UgInVybF9ub19mcmFnbWVudCI6Zj1PaihhKTticmVhaztjYXNlICJwcm90b2NvbCI6Zj1nO2JyZWFrO2Nhc2UgImhvc3QiOmY9YS5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpO2lmKGMpe3ZhciBoPS9ed3d3XGQqXC4vLmV4ZWMoZik7aCYmaFswXSYmKGY9Zi5zdWJzdHJpbmcoaFswXS5sZW5ndGgpKX1icmVhaztjYXNlICJwb3J0IjpmPVN0cmluZyhOdW1iZXIoYS5wb3J0KXx8KGc9PT0iaHR0cCI/ODA6Zz09PSJodHRwcyI/NDQzOiIiKSk7YnJlYWs7Y2FzZSAicGF0aCI6YS5wYXRobmFtZXx8YS5ob3N0bmFtZXx8c2IoIlRBR0dJTkciLDEpO2Y9YS5wYXRobmFtZS5zdWJzdHJpbmcoMCwxKT09PSIvIj9hLnBhdGhuYW1lOiIvIithLnBhdGhuYW1lO3ZhciBsPWYuc3BsaXQoIi8iKTsoZHx8W10pLmluZGV4T2YobFtsLmxlbmd0aC0KMV0pPj0wJiYobFtsLmxlbmd0aC0xXT0iIik7Zj1sLmpvaW4oIi8iKTticmVhaztjYXNlICJxdWVyeSI6Zj1hLnNlYXJjaC5yZXBsYWNlKCI/IiwiIik7ZSYmKGY9SWooZixlLCExKSk7YnJlYWs7Y2FzZSAiZXh0ZW5zaW9uIjp2YXIgbj1hLnBhdGhuYW1lLnNwbGl0KCIuIik7Zj1uLmxlbmd0aD4xP25bbi5sZW5ndGgtMV06IiI7Zj1mLnNwbGl0KCIvIilbMF07YnJlYWs7Y2FzZSAiZnJhZ21lbnQiOmY9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKTticmVhaztkZWZhdWx0OmY9YSYmYS5ocmVmfXJldHVybiBmfWZ1bmN0aW9uIE1qKGEpe3JldHVybiBhP2EucmVwbGFjZSgiOiIsIiIpLnRvTG93ZXJDYXNlKCk6IiJ9ZnVuY3Rpb24gT2ooYSl7dmFyIGI9IiI7aWYoYSYmYS5ocmVmKXt2YXIgYz1hLmhyZWYuaW5kZXhPZigiIyIpO2I9YzwwP2EuaHJlZjphLmhyZWYuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIGJ9dmFyIFBqPXt9LFFqPTA7CmZ1bmN0aW9uIFJqKGEpe3ZhciBiPVBqW2FdO2lmKCFiKXt2YXIgYz1CLmNyZWF0ZUVsZW1lbnQoImEiKTthJiYoYy5ocmVmPWEpO3ZhciBkPWMucGF0aG5hbWU7ZFswXSE9PSIvIiYmKGF8fHNiKCJUQUdHSU5HIiwxKSxkPSIvIitkKTt2YXIgZT1jLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpO2I9e2hyZWY6Yy5ocmVmLHByb3RvY29sOmMucHJvdG9jb2wsaG9zdDpjLmhvc3QsaG9zdG5hbWU6ZSxwYXRobmFtZTpkLHNlYXJjaDpjLnNlYXJjaCxoYXNoOmMuaGFzaCxwb3J0OmMucG9ydH07UWo8NSYmKFBqW2FdPWIsUWorKyl9cmV0dXJuIGJ9ZnVuY3Rpb24gU2ooYSxiLGMpe3ZhciBkPVJqKGEpO3JldHVybiBhYyhiLGQsYyl9CmZ1bmN0aW9uIFRqKGEpe3ZhciBiPVJqKEEubG9jYXRpb24uaHJlZiksYz1MaihiLCJob3N0IiwhMSk7aWYoYyYmYy5tYXRjaChIaikpe3ZhciBkPUxqKGIsInBhdGgiKTtpZihkKXt2YXIgZT1kLnNwbGl0KGErIj0iKTtpZihlLmxlbmd0aD4xKXJldHVybiBlWzFdLnNwbGl0KCI7IilbMF0uc3BsaXQoIj8iKVswXX19fTt2YXIgVWo9eyJodHRwczovL3d3dy5nb29nbGUuY29tIjoiL2ciLCJodHRwczovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSI6Ii9hcyIsImh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iOiIvZ3MifSxWaj1bIi9hcy9kL2NjbS9jb252ZXJzaW9uIiwiL2cvZC9jY20vY29udmVyc2lvbiIsIi9ncy9jY20vY29udmVyc2lvbiIsIi9kL2NjbS9mb3JtLWRhdGEiXTtmdW5jdGlvbiBXaigpe3JldHVybiBJZig0Nyk/SmYoNTQpIT09MTohMX1mdW5jdGlvbiBYaigpe3ZhciBhPUUoMTgpLGI9YS5sZW5ndGg7cmV0dXJuIGFbYi0xXT09PSIvIj9hLnN1YnN0cmluZygwLGItMSk6YX0KZnVuY3Rpb24gWWooYSxiKXtpZihhKXt2YXIgYz0iIithO2MuaW5kZXhPZigiaHR0cDovLyIpIT09MCYmYy5pbmRleE9mKCJodHRwczovLyIpIT09MCYmKGM9Imh0dHBzOi8vIitjKTtjW2MubGVuZ3RoLTFdPT09Ii8iJiYoYz1jLnN1YnN0cmluZygwLGMubGVuZ3RoLTEpKTtyZXR1cm4gUmooIiIrYytiKS5ocmVmfX1mdW5jdGlvbiBaaihhKXtpZihhaygpKXJldHVybiBZaihhLCIvYW5hbHl0aWNzLmpzIil9ZnVuY3Rpb24gYmsoYSl7cmV0dXJuIGE9PT0yfHxhPT09M31mdW5jdGlvbiBjayhhKXtyZXR1cm4gTSg1ODgpJiZhPT09M31mdW5jdGlvbiBhaygpe3JldHVybiBXaigpfHxJZig1MCl9ZnVuY3Rpb24gZGsoKXtyZXR1cm4hIUFqLnFqJiZBai5xai5zcGxpdCgiQEAiKS5qb2luKCIiKSE9PSJTR1RNX1RPS0VOIn0KZnVuY3Rpb24gZWsoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9TyhhLGMudmFsdWUpO2lmKGQpcmV0dXJuIGR9fWZ1bmN0aW9uIGZrKGEsYixjKXtjPWM9PT12b2lkIDA/IiI6YztpZighV2ooKSlyZXR1cm4gYTt2YXIgZD1iP1VqW2FdfHwiIjoiIjtkPT09Ii9ncyImJihjPSIiKTtyZXR1cm4iIitYaigpK2QrY31mdW5jdGlvbiBnayhhKXtpZihXaigpKWZvcih2YXIgYj1tKFZqKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihTYihhLCIiK1hqKCkrZCkpcmV0dXJuIjo6In19CmZ1bmN0aW9uIGhrKCl7dmFyIGE9QTtpZighYSlyZXR1cm4hMTt0cnl7aWYoYT09PWEudG9wKXJldHVybiExO3ZhciBiPWEubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIGIuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIvIikhPT0tMSYmVGIoYiwiL3N3X2lmcmFtZS5odG1sIil9Y2F0Y2goYyl7cmV0dXJuITF9fTt2YXIgaWs9L2d0YWdbLlwvXWpzLyxqaz0vZ3RtWy5cL11qcy8sbGs9ZnVuY3Rpb24oYSl7dmFyIGI9a2s7aWYoKGEuc2NyaXB0Q29udGFpbmVySWR8fCIiKS5pbmRleE9mKCJHVE0tIik+PTApe3ZhciBjO2E6e3ZhciBkLGU9KGQ9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZC5zcmM7aWYoZSl7Zm9yKHZhciBmPUlmKDQ3KSxnPVJqKGUpLGg9Zj9nLnBhdGhuYW1lOiIiK2cuaG9zdG5hbWUrZy5wYXRobmFtZSxsPUIuc2NyaXB0cyxuPSIiLHA9MDtwPGwubGVuZ3RoOysrcCl7dmFyIHE9bFtwXTtpZighKHEuaW5uZXJIVE1MLmxlbmd0aD09PTB8fCFmJiZxLmlubmVySFRNTC5pbmRleE9mKGEuc2NyaXB0Q29udGFpbmVySWR8fCJTSE9VTERfTk9UX0JFX1NFVCIpPDB8fHEuaW5uZXJIVE1MLmluZGV4T2YoaCk8MCkpe2lmKHEuaW5uZXJIVE1MLmluZGV4T2YoIihmdW5jdGlvbih3LGQscyxsLGkpIik+PTApe2M9U3RyaW5nKHApO2JyZWFrIGF9bj1TdHJpbmcocCl9fWlmKG4pe2M9Cm47YnJlYWsgYX19Yz12b2lkIDB9dmFyIHI9YztpZihyKXJldHVybiBiLkg9ITAscn12YXIgdD1bXS5zbGljZS5jYWxsKEIuc2NyaXB0cyk7cmV0dXJuIGEuc2NyaXB0RWxlbWVudD9TdHJpbmcodC5pbmRleE9mKGEuc2NyaXB0RWxlbWVudCkpOiItMSJ9LG1rPWZ1bmN0aW9uKGEpe2lmKGtrLkgpcmV0dXJuIjEiO3ZhciBiLGM9KGI9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6Yi5zcmM7aWYoYyl7aWYoaWsudGVzdChjKSlyZXR1cm4iMyI7aWYoamsudGVzdChjKSlyZXR1cm4iMiJ9cmV0dXJuIjAifSxraz1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O2Z1bmN0aW9uIFAoYSl7c2IoIkdUTSIsYSl9O2Z1bmN0aW9uIG5rKGEpe3ZhciBiPW9rKCkuZGVzdGluYXRpb25BcnJheVthXSxjPW9rKCkuZGVzdGluYXRpb25bYV07cmV0dXJuIGImJmIubGVuZ3RoPjA/YlswXTpjfWZ1bmN0aW9uIHBrKGEsYil7dmFyIGM9b2soKTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO0NiKGMucGVuZGluZyxmdW5jdGlvbihkKXtyZXR1cm4gZC50YXJnZXQuY3RpZD09PWEuY3RpZCYmZC50YXJnZXQuaXNEZXN0aW5hdGlvbj09PWEuaXNEZXN0aW5hdGlvbn0pfHxjLnBlbmRpbmcucHVzaCh7dGFyZ2V0OmEsb25Mb2FkOmJ9KX1mdW5jdGlvbiBxaygpe3ZhciBhPUEuZ29vZ2xlX3RhZ3NfZmlyc3RfcGFydHk7QXJyYXkuaXNBcnJheShhKXx8KGE9W10pO2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpYltkLnZhbHVlXT0hMDtyZXR1cm4gT2JqZWN0LmZyZWV6ZShiKX0KdmFyIHJrPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5kZXN0aW5hdGlvbj17fTt0aGlzLmRlc3RpbmF0aW9uQXJyYXk9e307dGhpcy5jYW5vbmljYWw9e307dGhpcy5wZW5kaW5nPVtdO3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz17fTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKX07CmZ1bmN0aW9uIG9rKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS50aWRyO2ImJnR5cGVvZiBiPT09Im9iamVjdCJ8fChiPW5ldyByayxhLnRpZHI9Yik7dmFyIGM9YjtjLmNvbnRhaW5lcnx8KGMuY29udGFpbmVyPXt9KTtjLmRlc3RpbmF0aW9ufHwoYy5kZXN0aW5hdGlvbj17fSk7Yy5kZXN0aW5hdGlvbkFycmF5fHwoYy5kZXN0aW5hdGlvbkFycmF5PXt9KTtjLmNhbm9uaWNhbHx8KGMuY2Fub25pY2FsPXt9KTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO2MuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc3x8KGMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpKTtyZXR1cm4gY307ZnVuY3Rpb24gc2soKXtyZXR1cm4gSWYoNykmJnRrKCkuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYT09PUUoNSl9KX1mdW5jdGlvbiB1aygpe3ZhciBhO3JldHVybihhPUtmKDU1KSkhPW51bGw/YTpbXX1mdW5jdGlvbiB2aygpe3JldHVybiBFKDYpfHwiXyIrRSg1KX1mdW5jdGlvbiB3aygpe3ZhciBhPUUoMTApO3JldHVybiBhP2Euc3BsaXQoInwiKTpbRSg1KV19ZnVuY3Rpb24gdGsoKXt2YXIgYT1LZig1OSk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyJ9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuaW5kZXhPZigiR1RNLSIpIT09MH0pOltdfWZ1bmN0aW9uIHhrKCl7dmFyIGE9eWsoemsoKSksYj1hJiZhLnBhcmVudDtpZihiKXJldHVybiB5ayhiKX0KZnVuY3Rpb24gQWsoKXt2YXIgYT15ayh6aygpKTtpZihhKXtmb3IoO2EucGFyZW50Oyl7dmFyIGI9eWsoYS5wYXJlbnQpO2lmKCFiKWJyZWFrO2E9Yn1yZXR1cm4gYX19ZnVuY3Rpb24geWsoYSl7dmFyIGI9b2soKTtyZXR1cm4gYS5pc0Rlc3RpbmF0aW9uP25rKGEuY3RpZCk6Yi5jb250YWluZXJbYS5jdGlkXX1mdW5jdGlvbiBCaygpe3ZhciBhPW9rKCk7aWYoYS5wZW5kaW5nKXtmb3IodmFyIGIsYz1bXSxkPSExLGU9d2soKSxmPXRrKCksZz17fSxoPTA7aDxhLnBlbmRpbmcubGVuZ3RoO2c9e1JnOnZvaWQgMH0saCsrKWcuUmc9YS5wZW5kaW5nW2hdLENiKGcuUmcudGFyZ2V0LmlzRGVzdGluYXRpb24/ZjplLGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbj09PWwuUmcudGFyZ2V0LmN0aWR9fShnKSk/ZHx8KGI9Zy5SZy5vbkxvYWQsZD0hMCk6Yy5wdXNoKGcuUmcpO2EucGVuZGluZz1jO2lmKGIpdHJ5e2IodmsoKSl9Y2F0Y2gobCl7fX19CmZ1bmN0aW9uIENrKCl7Zm9yKHZhciBhPUUoNSksYj13aygpLGM9dGsoKSxkPXVrKCksZT1mdW5jdGlvbihxLHIpe3ZhciB0PXtjYW5vbmljYWxDb250YWluZXJJZDpFKDYpLHNjcmlwdENvbnRhaW5lcklkOmEsc3RhdGU6Mixjb250YWluZXJzOmIuc2xpY2UoKSxkZXN0aW5hdGlvbnM6Yy5zbGljZSgpfTtKYyYmKHQuc2NyaXB0RWxlbWVudD1KYyk7S2MmJih0LnNjcmlwdFNvdXJjZT1LYyk7eGsoKT09PXZvaWQgMCYmKHQuaHRtbExvYWRPcmRlcj1sayh0KSx0LmxvYWRTY3JpcHRUeXBlPW1rKHQpKTt2YXIgdSx2O3N3aXRjaChyKXtjYXNlIDA6dT1mdW5jdGlvbih6KXtmLmNvbnRhaW5lcltxXT16fTt2PWYuY29udGFpbmVyW3FdO2JyZWFrO2Nhc2UgMTp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS51bnNoaWZ0KHopfTt2YXIgeCx5PSgoeD1mLmRlc3RpbmF0aW9uQXJyYXlbcV0pPT0KbnVsbD92b2lkIDA6eFswXSl8fGYuZGVzdGluYXRpb25bcV07IXl8fHkuc3RhdGUhPT0wJiZ5LnN0YXRlIT09MXx8KHY9eSk7YnJlYWs7Y2FzZSAyOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnB1c2goeil9LHY9dm9pZCAwfXUmJih2Pyh2LnN0YXRlPT09MCYmUCg5MyksbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx2LHQpKTp1KHQpKX0sZj1vaygpLGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSllKGgudmFsdWUsMCk7Zm9yKHZhciBsPW0oYyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7ZC5pbmNsdWRlcyhwKT9lKHAsMSk6ZShwLDIpfWYuY2Fub25pY2FsW3ZrKCldPXt9O0JrKCl9ZnVuY3Rpb24gRGsoKXt2YXIgYT12aygpO3JldHVybiEhb2soKS5jYW5vbmljYWxbYV19CmZ1bmN0aW9uIEVrKGEpe3JldHVybiEhb2soKS5jb250YWluZXJbYV19ZnVuY3Rpb24gRmsoKXt2YXIgYT16aygpLGI9eWsoYSk7cmV0dXJuIGImJmIuY29udGV4dH1mdW5jdGlvbiBHayhhKXt2YXIgYj1uayhhKTtyZXR1cm4gYj9iLnN0YXRlIT09MDohMX1mdW5jdGlvbiB6aygpe3JldHVybntjdGlkOkUoNSksaXNEZXN0aW5hdGlvbjpJZig3KX19ZnVuY3Rpb24gSGsoYSxiLGMpe3ZhciBkPXprKCksZT1vaygpLmNvbnRhaW5lclthXTtlJiZlLnN0YXRlIT09M3x8KG9rKCkuY29udGFpbmVyW2FdPXtzdGF0ZToxLGNvbnRleHQ6YixwYXJlbnQ6ZH0scGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiExfSxjKSl9ZnVuY3Rpb24gSWsoYSxiLGMpe3ZhciBkPW9rKCksZT1uayhhKTtlP2Uuc3RhdGU9MTooZT17Y29udGV4dDpiLHN0YXRlOjEscGFyZW50OnprKCl9LGQuZGVzdGluYXRpb25BcnJheVthXT1bZV0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sYyl9CmZ1bmN0aW9uIEprKGEsYixjLGQpe3ZhciBlPW9rKCksZj1uayhhKTtmP2Yuc3RhdGU9MDooZj17c3RhdGU6MCx0cmFuc3BvcnRVcmw6Yixjb250ZXh0OmMscGFyZW50OnprKCl9LGUuZGVzdGluYXRpb25BcnJheVthXT1bZl0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sZCk7UCg5MSl9ZnVuY3Rpb24gS2soKXt2YXIgYT1vaygpLmNvbnRhaW5lcixiO2ZvcihiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5zdGF0ZT09PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gTGsoKXt2YXIgYT17fTtHYihvaygpLmRlc3RpbmF0aW9uLGZ1bmN0aW9uKGIsYyl7KGM9PW51bGw/dm9pZCAwOmMuc3RhdGUpPT09MCYmKGFbYl09Yyl9KTtHYihvaygpLmRlc3RpbmF0aW9uQXJyYXksZnVuY3Rpb24oYixjKXt2YXIgZD1jWzBdOyhkPT1udWxsP3ZvaWQgMDpkLnN0YXRlKT09PTAmJihhW2JdPWQpfSk7cmV0dXJuIGF9CmZ1bmN0aW9uIE1rKGEpe3JldHVybiEhKGEmJmEucGFyZW50JiZhLmNvbnRleHQmJmEuY29udGV4dC5zb3VyY2U9PT0xJiZhLnBhcmVudC5jdGlkLmluZGV4T2YoIkdUTS0iKSE9PTApfWZ1bmN0aW9uIE5rKCl7Zm9yKHZhciBhPW9rKCksYj1tKHdrKCkpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKGEuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc1tjLnZhbHVlXSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIE9rPWZ1bmN0aW9uKCl7fTtPay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIn07dmFyIFBrPW5ldyBPazt2YXIgWGs9ZnVuY3Rpb24oKXt0aGlzLnN0b3JhZ2U9WWEoKX07WGsucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIpfTtYay5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O3ZhciBZaztmdW5jdGlvbiBaayhhLGIpe1lrfHwoWWs9bmV3IFhrKTtZay5zZXQoYSxiKX1mdW5jdGlvbiAkayhhKXtZa3x8KFlrPW5ldyBYayk7cmV0dXJuIFlrLmdldChhKX1mdW5jdGlvbiBhbChhLGIpe1lrfHwoWWs9bmV3IFhrKTt2YXIgYz1ZaztjLnN0b3JhZ2UuaGFzKFN0cmluZyhhKSl8fGMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIoKSk7cmV0dXJuIGMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07ZnVuY3Rpb24gYmwoYSxiKXtmdW5jdGlvbiBjKGcpe3ZhciBoPVJqKGcpLGw9TGooaCwicHJvdG9jb2wiKSxuPUxqKGgsImhvc3QiLCEwKSxwPUxqKGgsInBvcnQiKSxxPUxqKGgsInBhdGgiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1wvJC8sIiIpO2lmKGw9PT12b2lkIDB8fGw9PT0iaHR0cCImJnA9PT0iODAifHxsPT09Imh0dHBzIiYmcD09PSI0NDMiKWw9IndlYiIscD0iZGVmYXVsdCI7cmV0dXJuW2wsbixwLHFdfWZvcih2YXIgZD1jKFN0cmluZyhhKSksZT1jKFN0cmluZyhiKSksZj0wO2Y8ZC5sZW5ndGg7ZisrKWlmKGRbZl0hPT1lW2ZdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGNsKGEpe3JldHVybiBkbChhKT8xOjB9CmZ1bmN0aW9uIGRsKGEpe3ZhciBiPWEuYXJnMCxjPWEuYXJnMTtpZihhLmFueV9vZiYmQXJyYXkuaXNBcnJheShjKSl7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPUVkKGEse30pO0VkKHthcmcxOmNbZF0sYW55X29mOnZvaWQgMH0sZSk7aWYoY2woZSkpcmV0dXJuITB9cmV0dXJuITF9c3dpdGNoKGFbImZ1bmN0aW9uIl0pe2Nhc2UgIl9jbiI6cmV0dXJuIEtnKGIsYyk7Y2FzZSAiX2NzcyI6cmV0dXJuIEdnKGIsYyk7Y2FzZSAiX2V3IjpyZXR1cm4gSGcoYixjKTtjYXNlICJfZXEiOnJldHVybiBMZyhiLGMpO2Nhc2UgIl9nZSI6cmV0dXJuIE1nKGIsYyk7Y2FzZSAiX2d0IjpyZXR1cm4gT2coYixjKTtjYXNlICJfbGMiOnJldHVybiBJZyhiLGMpO2Nhc2UgIl9sZSI6cmV0dXJuIE5nKGIsYyk7Y2FzZSAiX2x0IjpyZXR1cm4gUGcoYixjKTtjYXNlICJfcmUiOnJldHVybiBKZyhiLGMsYS5pZ25vcmVfY2FzZSxhbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSk7Y2FzZSAiX3N3IjpyZXR1cm4gUWcoYiwKYyk7Y2FzZSAiX3VtIjpyZXR1cm4gYmwoYixjKX1yZXR1cm4hMX07ZnVuY3Rpb24gZWwoYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgZjtzd2l0Y2goYVswXSl7Y2FzZSAiZnVuY3Rpb25faWQiOnJldHVybiBhWzFdO2Nhc2UgImxpc3QiOmY9W107Zm9yKHZhciBnPTE7ZzxhLmxlbmd0aDtnKyspZi5wdXNoKGVsKGFbZ10sYixjLGQsZSkpO3JldHVybiBmO2Nhc2UgIm1hY3JvIjp2YXIgaD1kW2FbMV1dO3JldHVybiBoP2guZXZhbHVhdGUoYixlKTp2b2lkIDA7Y2FzZSAibWFwIjpmPXt9O2Zvcih2YXIgbD0xO2w8YS5sZW5ndGg7bCs9MilmW2VsKGFbbF0sYixjLGQsZSldPWVsKGFbbCsxXSxiLGMsZCxlKTtyZXR1cm4gZjtjYXNlICJ0ZW1wbGF0ZSI6Zj1bXTtmb3IodmFyIG49ITEscD0xO3A8YS5sZW5ndGg7cCsrKXt2YXIgcT1lbChhW3BdLGIsYyxkLGUpO2YucHVzaChxKX1yZXR1cm4gZi5qb2luKCIiKTtjYXNlICJlc2NhcGUiOmY9ZWwoYVsxXSxiLGMsZCxlKTtmPVN0cmluZyhmKTtmb3IodmFyIHk9Mjt5PGEubGVuZ3RoO3krKylVaVthW3ldXSYmKGY9VWlbYVt5XV0oZikpO3JldHVybiBmO2Nhc2UgInRhZyI6dmFyIHo9YVsxXTtpZighY1t6XSl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHJlc29sdmUgdGFnIHJlZmVyZW5jZSAiKwp6KyIuIik7cmV0dXJue2JvOmFbMl0saW5kZXg6en07Y2FzZSAiemIiOnZhciBDPXt9LEQ9KENbR2YuWWJdPWFbMV0sQy5hcmcwPWVsKGFbMl0sYixjLGQsZSksQy5hcmcxPWVsKGFbM10sYixjLGQsZSksQy5pZ25vcmVfY2FzZT1lbChhWzVdLGIsYyxkLGUpLEMpLEk9Y2woRCksRz0hIWFbNF07cmV0dXJuIEd8fEkhPT0yP0chPT0oST09PTEpOm51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBleHBhbmQgdW5rbm93biBWYWx1ZSB0eXBlOiAiK2FbMF0rIi4iKTt9fXJldHVybiBhfTtmdW5jdGlvbiBmbChhKXtyZXR1cm4gYSYmYS5pbmRleE9mKCJwZW5kaW5nOiIpPT09MD9nbChhLnN1YnN0cig4KSk6ITF9ZnVuY3Rpb24gZ2woYSl7aWYoYT09bnVsbHx8YS5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBiPU51bWJlcihhKSxjPU5iKCk7cmV0dXJuIGI8YyszRTUmJmI+Yy05RTV9O3ZhciBobD0hMSxpbD0hMSxqbD0hMSxrbD0wLGxsPSExLG1sPXZvaWQgMCxubD1bXTtmdW5jdGlvbiBvbChhKXtpZihrbD09PTApbGwmJm5sJiYobmwubGVuZ3RoPj0xMDAmJm5sLnNoaWZ0KCksbmwucHVzaChhKSk7ZWxzZSBpZihwbCgpKXt2YXIgYj1FKDQxKSxjPU1jKGIsW10pO2MubGVuZ3RoPj01MCYmYy5zaGlmdCgpO2MucHVzaChhKX19ZnVuY3Rpb24gcWwoKXtpbHx8KHJsKCksc2woa2wpKX1mdW5jdGlvbiBzbChhKXtpZighaWx8fGtsPT09MiYmYT09PTEpaWYoaWw9ITAsamwmJihhZChCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwpLGpsPSExKSxtbCE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KG1sKSxtbD12b2lkIDApLGtsPWEsYT09PTEpe3ZhciBiPW5sO25sPXZvaWQgMDtiPT1udWxsfHxiLmZvckVhY2goZnVuY3Rpb24oYyl7b2woYyl9KX19CmZ1bmN0aW9uIHJsKCl7dmFyIGE9Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJvZC1wcmVzZW50Iik7Z2woYSk/a2w9MTohZmwoYSl8fGhsfHxqbD9rbD0yOihqbD0hMCwkYyhCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwsITEpLG1sPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2lsfHwocmwoKSxzbChrbCkpO2hsPSEwfSwyMDApKX1mdW5jdGlvbiBwbCgpe2lmKCFsbClyZXR1cm4hMTtzd2l0Y2goa2wpe2Nhc2UgMTpjYXNlIDA6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiB0bCgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtyZXR1cm4gYS5pY3M9YS5pY3N8fG5ldyB1bH12YXIgdWw9ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9e307dGhpcy53YWl0UGVyaW9kVGltZWRPdXQ9dGhpcy53YXNTZXRMYXRlPXRoaXMuYWNjZXNzZWRBbnk9dGhpcy5hY2Nlc3NlZERlZmF1bHQ9dGhpcy51c2VkSW1wbGljaXQ9dGhpcy51c2VkVXBkYXRlPXRoaXMudXNlZERlZmF1bHQ9dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMTt0aGlzLkg9W119Owp1bC5wcm90b3R5cGUuZGVmYXVsdD1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHwhdGhpcy5hY2Nlc3NlZERlZmF1bHQmJiF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWREZWZhdWx0PXRoaXMuYWN0aXZlPSEwO3NiKCJUQUdHSU5HIiwxOSk7Yj09bnVsbD9zYigiVEFHR0lORyIsMTgpOnZsKHRoaXMsYSxiPT09ImdyYW50ZWQiLGMsZCxlLGYsZyl9O3VsLnByb3RvdHlwZS53YWl0Rm9yVXBkYXRlPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl2bCh0aGlzLGFbZF0sdm9pZCAwLHZvaWQgMCwiIiwiIixiLGMpfTsKdmFyIHZsPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9YS5lbnRyaWVzLG49bFtiXXx8e30scD1uLnJlZ2lvbixxPWQmJnpiKGQpP2QudG9VcHBlckNhc2UoKTp2b2lkIDA7ZT1lLnRvVXBwZXJDYXNlKCk7Zj1mLnRvVXBwZXJDYXNlKCk7aWYoZT09PSIifHxxPT09Znx8KHE9PT1lP3AhPT1mOiFxJiYhcCkpe3ZhciByPSEhKGcmJmc+MCYmbi51cGRhdGU9PT12b2lkIDApLHQ9e3JlZ2lvbjpxLGRlY2xhcmVfcmVnaW9uOm4uZGVjbGFyZV9yZWdpb24saW1wbGljaXQ6bi5pbXBsaWNpdCxkZWZhdWx0OmMhPT12b2lkIDA/YzpuLmRlZmF1bHQsZGVjbGFyZTpuLmRlY2xhcmUsdXBkYXRlOm4udXBkYXRlLHF1aWV0OnJ9O2lmKGUhPT0iInx8bi5kZWZhdWx0IT09ITEpbFtiXT10O3ImJkEuc2V0VGltZW91dChmdW5jdGlvbigpe2xbYl09PT10JiZ0LnF1aWV0JiYoc2IoIlRBR0dJTkciLDIpLGEud2FpdFBlcmlvZFRpbWVkT3V0PSEwLGEuY2xlYXJUaW1lb3V0KGIsdm9pZCAwLGgpLAphLm5vdGlmeUxpc3RlbmVycygpKX0sZyl9fTtrPXVsLnByb3RvdHlwZTtrLmNsZWFyVGltZW91dD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W2FdLGU9Yy5kZWxlZ2F0ZWRDb25zZW50VHlwZXMsZjtmb3IoZiBpbiBlKWUuaGFzT3duUHJvcGVydHkoZikmJmVbZl09PT1hJiZkLnB1c2goZik7dmFyIGc9dGhpcy5lbnRyaWVzW2FdfHx7fSxoPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyk7aWYoZy5xdWlldCl7Zy5xdWlldD0hMTtmb3IodmFyIGw9bShkKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl3bCh0aGlzLG4udmFsdWUpfWVsc2UgaWYoYiE9PXZvaWQgMCYmaCE9PWIpZm9yKHZhciBwPW0oZCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpd2wodGhpcyxxLnZhbHVlKX07CmsudXBkYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHx0aGlzLnVzZWRVcGRhdGV8fCF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWRVcGRhdGU9dGhpcy5hY3RpdmU9ITA7aWYoYiE9bnVsbCl7dmFyIGQ9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKSxlPXRoaXMuZW50cmllczsoZVthXT1lW2FdfHx7fSkudXBkYXRlPWI9PT0iZ3JhbnRlZCI7dGhpcy5jbGVhclRpbWVvdXQoYSxkLGMpfX07CmsuZGVjbGFyZT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITA7dmFyIGY9dGhpcy5lbnRyaWVzLGc9ZlthXXx8e30saD1nLmRlY2xhcmVfcmVnaW9uLGw9YyYmemIoYyk/Yy50b1VwcGVyQ2FzZSgpOnZvaWQgMDtkPWQudG9VcHBlckNhc2UoKTtlPWUudG9VcHBlckNhc2UoKTtpZihkPT09IiJ8fGw9PT1lfHwobD09PWQ/aCE9PWU6IWwmJiFoKSl7dmFyIG49e3JlZ2lvbjpnLnJlZ2lvbixkZWNsYXJlX3JlZ2lvbjpsLGRlY2xhcmU6Yj09PSJncmFudGVkIixpbXBsaWNpdDpnLmltcGxpY2l0LGRlZmF1bHQ6Zy5kZWZhdWx0LHVwZGF0ZTpnLnVwZGF0ZSxxdWlldDpnLnF1aWV0fTtpZihkIT09IiJ8fGcuZGVjbGFyZSE9PSExKWZbYV09bn19OwprLmltcGxpY2l0PWZ1bmN0aW9uKGEsYil7dGhpcy51c2VkSW1wbGljaXQ9ITA7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXT1jW2FdfHx7fTtkLmltcGxpY2l0IT09ITEmJihkLmltcGxpY2l0PWI9PT0iZ3JhbnRlZCIpfTsKay5nZXRDb25zZW50U3RhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdfHx7fSxlPWQudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgZj1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2FdO2lmKGY9PT0zKXJldHVybiAxO2lmKGY9PT0yKXJldHVybiAyfWVsc2UgaWYoZT1kLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYj09bnVsbD8wOmIuZGVsZWdhdGVkQ29uc2VudFR5cGVzLmhhc093blByb3BlcnR5KGEpKXt2YXIgZz1iLmRlbGVnYXRlZENvbnNlbnRUeXBlc1thXSxoPWNbZ118fHt9O2U9aC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBsPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbZ107aWYobD09PTMpcmV0dXJuIDE7aWYobD09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPQpoLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjJ9ZT1kLmRlY2xhcmU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7ZT1kLmltcGxpY2l0O3JldHVybiBlIT09dm9pZCAwP2U/Mzo0OjB9O2suYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt0aGlzLkgucHVzaCh7Y29uc2VudFR5cGVzOmEsaWU6Yn0pfTt2YXIgd2w9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGEuSC5sZW5ndGg7KytjKXt2YXIgZD1hLkhbY107QXJyYXkuaXNBcnJheShkLmNvbnNlbnRUeXBlcykmJmQuY29uc2VudFR5cGVzLmluZGV4T2YoYikhPT0tMSYmKGQueG89ITApfX07dWwucHJvdG90eXBlLm5vdGlmeUxpc3RlbmVycz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8dGhpcy5ILmxlbmd0aDsrK2Mpe3ZhciBkPXRoaXMuSFtjXTtpZihkLnhvKXtkLnhvPSExO3RyeXtkLmllKHtjb25zZW50RXZlbnRJZDphLGNvbnNlbnRQcmlvcml0eUlkOmJ9KX1jYXRjaChlKXt9fX19O3ZhciB4bD0hMSx5bD0hMSx6bD17fSxBbD17ZGVsZWdhdGVkQ29uc2VudFR5cGVzOnt9LGNvcmVQbGF0Zm9ybVNlcnZpY2VzOnt9LHVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxzZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLGNvbnRhaW5lclNjb3BlZERlZmF1bHRzOih6bC5hZF9zdG9yYWdlPTEsemwuYW5hbHl0aWNzX3N0b3JhZ2U9MSx6bC5hZF91c2VyX2RhdGE9MSx6bC5hZF9wZXJzb25hbGl6YXRpb249MSx6bCksdXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzOiExfTtmdW5jdGlvbiBCbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuKHpiKGEpP1thXTphKS5ldmVyeShmdW5jdGlvbihjKXtzd2l0Y2goYi5nZXRDb25zZW50U3RhdGUoYyxBbCkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOmNhc2UgNDpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0pfQpmdW5jdGlvbiBDbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIGIuZ2V0Q29uc2VudFN0YXRlKGEsQWwpfWZ1bmN0aW9uIERsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4hKGIuZW50cmllc1thXXx8e30pLnF1aWV0fWZ1bmN0aW9uIEVsKCl7aWYoIVlmKDUpKXJldHVybiExO3ZhciBhPXRsKCk7YS5hY2Nlc3NlZEFueT0hMDtpZihhLmFjdGl2ZSlyZXR1cm4hMDtpZighQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXJldHVybiExO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYy52YWx1ZV0hPT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZsKGEsYil7dGwoKS5hZGRMaXN0ZW5lcihhLGIpfQpmdW5jdGlvbiBHbChhLGIpe3RsKCkubm90aWZ5TGlzdGVuZXJzKGEsYil9ZnVuY3Rpb24gSGwoYSxiKXtpZihiLmV2ZXJ5KERsKSlhKHt9KTtlbHNle3ZhciBjPSExO0ZsKGIsZnVuY3Rpb24oZCl7IWMmJmIuZXZlcnkoRGwpJiYoYz0hMCxhKGQpKX0pfX0KZnVuY3Rpb24gSWwoYSxiKXt2YXIgYz16YihiKT9bYl06YixkPXt9LGU9ZnVuY3Rpb24oKXtyZXR1cm4gYy5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIEJsKGgpJiYhZFtoXX0pfSxmPWUoKTtpZihmLmxlbmd0aCE9PWMubGVuZ3RoKXt2YXIgZz1mdW5jdGlvbihoKXtmb3IodmFyIGw9bShoKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSlkW24udmFsdWVdPSEwfTtnKGYpO0ZsKGMsZnVuY3Rpb24oaCl7ZnVuY3Rpb24gbChxKXtxLmxlbmd0aCE9PTAmJihnKHEpLGguY29uc2VudFR5cGVzPXEsYShoKSl9dmFyIG49ZSgpO2lmKG4ubGVuZ3RoIT09MCl7dmFyIHA9T2JqZWN0LmtleXMoZCkubGVuZ3RoO24ubGVuZ3RoK3A+PWMubGVuZ3RoP2wobik6QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bChlKCkpfSw1MDApfX0pfX07dmFyIEpsPSExO2Z1bmN0aW9uIEtsKGEsYil7dmFyIGM9d2soKSxkPXRrKCk7RSgyNik7dmFyIGU9SWYoNDcpPzA6SWYoNTApPzE6MyxmPVhqKCk7aWYocGwoKSl7dmFyIGc9TGwoIklOSVQiKTtnLmNvbnRhaW5lckxvYWRTb3VyY2U9YSE9bnVsbD9hOjA7YiYmKGcucGFyZW50VGFyZ2V0UmVmZXJlbmNlPWIpO2cuYWxpYXNlcz1jO2cuZGVzdGluYXRpb25zPWQ7ZSE9PXZvaWQgMCYmKGcuZ3RnPXtzb3VyY2U6ZSxtUGF0aDpmIT1udWxsP2Y6IiJ9KTtvbChnKX19CmZ1bmN0aW9uIE1sKGEpe3ZhciBiLGMsZCxlO2I9YS50YXJnZXRJZDtjPWEucmVxdWVzdDtkPWEucWI7ZT1hLmlzQmF0Y2hlZDt2YXIgZjtpZihmPXBsKCkpe3ZhciBnO2E6c3dpdGNoKGMuZW5kcG9pbnQpe2Nhc2UgNjg6Y2FzZSA2OTpjYXNlIDE5OmNhc2UgNjI6Y2FzZSA0NzpnPSEwO2JyZWFrIGE7ZGVmYXVsdDpnPSExfWY9IWd9aWYoZil7dmFyIGg9TGwoIkdUQUdfSElUIix7ZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTtoLnRhcmdldD1iO2gudXJsPWMudXJsO2MucG9zdEJvZHkmJihoLnBvc3RCb2R5PWMucG9zdEJvZHkpO2gucGFyYW1ldGVyRW5jb2Rpbmc9Yy5wYXJhbWV0ZXJFbmNvZGluZztoLmVuZHBvaW50PWMuZW5kcG9pbnQ7ZSE9PXZvaWQgMCYmKGguaXNCYXRjaGVkPWUpO29sKGgpfX1mdW5jdGlvbiBObChhKXtwbCgpJiZNbChhKCkpfQpmdW5jdGlvbiBMbChhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2IuZ3JvdXBJZD1PbDt2YXIgYyxkPWIsZT1QbCxmPXtwdWJsaWNJZDpRbH07ZC5ldmVudElkIT1udWxsJiYoZi5ldmVudElkPWQuZXZlbnRJZCk7ZC5wcmlvcml0eUlkIT1udWxsJiYoZi5wcmlvcml0eUlkPWQucHJpb3JpdHlJZCk7ZC5ldmVudE5hbWUmJihmLmV2ZW50TmFtZT1kLmV2ZW50TmFtZSk7ZC5ncm91cElkJiYoZi5ncm91cElkPWQuZ3JvdXBJZCk7ZC50YWdOYW1lJiYoZi50YWdOYW1lPWQudGFnTmFtZSk7Yz17Y29udGFpbmVyUHJvZHVjdDoiR1RNIixrZXk6Zix2ZXJzaW9uOmUsbWVzc2FnZVR5cGU6YX07Yy5jb250YWluZXJQcm9kdWN0PUpsPyJPR1QiOiJHVE0iO2Mua2V5LnRhcmdldFJlZj1SbDtyZXR1cm4gY312YXIgUWw9IiIsUGw9IiIsUmw9e2N0aWQ6IiIsaXNEZXN0aW5hdGlvbjohMX0sT2w7CmZ1bmN0aW9uIFNsKGEpe3ZhciBiPUUoNSksYz1JZig0NSksZD1zaygpLGU9RSg2KSxmPUUoMSk7RSgyMyk7a2w9MDtsbD0hMDtybCgpO09sPWE7UWw9YjtQbD1mO0psPWM7Umw9e2N0aWQ6Yixpc0Rlc3RpbmF0aW9uOmQsY2Fub25pY2FsSWQ6ZX19O2Z1bmN0aW9uIFRsKGEsYixjLGQpe2lmKHBsKCkpe3ZhciBlPWIuTTtNbCh7dGFyZ2V0SWQ6ZHx8W2IudGFyZ2V0LmRlc3RpbmF0aW9uSWRdLHJlcXVlc3Q6e3VybDphLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6Y30scWI6e2V2ZW50SWQ6ZS5ldmVudElkLHByaW9yaXR5SWQ6ZS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX07ZnVuY3Rpb24gVWwoYSxiLGMpe3ZhciBkPSJodHRwczovLyIrYStiO3JldHVybiBjP2Z1bmN0aW9uKCl7cmV0dXJuIFdqKCk/WGooKStjK2I6ZH06ZnVuY3Rpb24oKXtyZXR1cm4gZH19O3ZhciBWbD17fSxXbD0oVmxbMjJdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvYXMvZCIpLFZsWzYwXT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZ3MiKSxWbFsyM109VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2cvZCIpLFZsKTt2YXIgWGw9e30sWWw9KFhsWzVdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs2Nl09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC91Y29udmVyc2lvbiIpLFhsWzYzXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNjRdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzY1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs3NF09ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2FzL3AvYyJ9LFhsKTt2YXIgWmw9e30sJGw9KFpsWzQ1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbGxlY3QiKSxabFs0Nl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb2xsZWN0IiwiL2dzIiksWmxbNjldPVVsKCJhZC5kb3VibGVjbGljay5uZXQiLCIvY2NtL3MvY29sbGVjdCIpLFpsWzU4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabFs1N109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsKTt2YXIgYW09e30sYm09KGFtWzldPVVsKCJnb29nbGVhZHMuZy5kb3VibGVjbGljay5uZXQiLCIvcGFnZWFkL3ZpZXd0aHJvdWdoY29udmVyc2lvbiIpLGFtWzY4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcm1rdC9jb2xsZWN0IiksYW0pO3ZhciBjbT17fSxkbT0oY21bMTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVsyMV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtWzcyXT1VbCgiZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVs3M109VWwoImdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY20pO3ZhciBlbT17fSxmbT0oZW1bNTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi90cmF2ZWwvZmxpZ2h0cy9jbGljay9jb252ZXJzaW9uIiksZW0pO3ZhciBnbT17fSxobT0oZ21bMV09ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9hZC5kb3VibGVjbGljay5uZXQvYWN0aXZpdHk7In0sZ21bMl09ZnVuY3Rpb24oKXtyZXR1cm4oV2ooKT9YaigpOiJodHRwczovL2FkZS5nb29nbGVzeW5kaWNhdGlvbi5jb20iKSsiL2RkbS9hY3Rpdml0eSIrKE0oNDY3KT8iOyI6Ii8iKX0sZ21bM109ZnVuY3Rpb24oYSl7cmV0dXJuImh0dHBzOi8vIithLmxyKyIuZmxzLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eWk7In0sZ20pO2Z1bmN0aW9uIGltKGEpe3NiKCJIRUFMVEgiLGEpfTt2YXIgam09e2JhOntQdDoiYXdfdXNlcl9kYXRhX2NhY2hlIixvaToiY29va2llX2RlcHJlY2F0aW9uX2xhYmVsIixiaDoiZGlhZ25vc3RpY3NfcGFnZV9pZCIsb3A6ImVtZW1vIixkdToiZW1fcmVnaXN0cnkiLFNpOiJlYWIiLHJ1OiJmbF91c2VyX2RhdGFfY2FjaGUiLHR1OiJnYTRfdXNlcl9kYXRhX2NhY2hlIixMdToiaWRjX3B2X2NsYWltIixTZToiaXBfZ2VvX2RhdGFfY2FjaGUiLFhpOiJpcF9nZW9fZmV0Y2hfaW5fcHJvZ3Jlc3MiLGpuOiJuYl9kYXRhIixUcToicGFnZV9leHBlcmltZW50X2lkcyIsbG46InBsZCIsVmU6InB0X2RhdGEiLG1uOiJwdF9saXN0ZW5lcl9zZXQiLGtqOiJyZXRyeV9jb250YWluZXJzIixPaDoic2VydmljZV93b3JrZXJfZW5kcG9pbnQiLFpxOiJzaGFyZWRfdXNlcl9pZCIsYXI6InNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCIsc2o6InNoYXJlZF91c2VyX2lkX3NvdXJjZSIsYnY6ImF3aCIsaHI6InVuaXZlcnNhbF9jbGFpbV9yZWdpc3RyeSJ9fTt2YXIga209ZnVuY3Rpb24oYSl7cmV0dXJuIHRmKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYyBpbiBhKWlmKGI9PT1hW2NdJiYhL15bMC05XSskLy50ZXN0KGMpKXJldHVybiEwO3JldHVybiExfSl9KGptLmJhKTsKZnVuY3Rpb24gbG0oYSxiKXtiPWI9PT12b2lkIDA/ITE6YjtpZihrbShhKSl7dmFyIGMsZCxlPShkPShjPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSkueGNkKSE9bnVsbD9kOmMueGNkPXt9O2lmKGVbYV0pcmV0dXJuIGVbYV07aWYoYil7dmFyIGY9dm9pZCAwLGc9MSxoPXt9LGw9e3NldDpmdW5jdGlvbihuKXtmPW47bC5ub3RpZnkoKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHN1YnNjcmliZTpmdW5jdGlvbihuKXtoW1N0cmluZyhnKV09bjtyZXR1cm4gZysrfSx1bnN1YnNjcmliZTpmdW5jdGlvbihuKXt2YXIgcD1TdHJpbmcobik7cmV0dXJuIGguaGFzT3duUHJvcGVydHkocCk/KGRlbGV0ZSBoW3BdLCEwKTohMX0sbm90aWZ5OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXMoaCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3RyeXtoW3FdKGEsZil9Y2F0Y2gocil7fX19fTtyZXR1cm4gZVthXT1sfX19CmZ1bmN0aW9uIG1tKGEsYil7dmFyIGM9bG0oYSwhMCk7YyYmYy5zZXQoYil9ZnVuY3Rpb24gbm0oYSl7dmFyIGI7cmV0dXJuKGI9bG0oYSkpPT1udWxsP3ZvaWQgMDpiLmdldCgpfWZ1bmN0aW9uIG9tKGEsYil7dmFyIGM9bG0oYSk7aWYoIWMpe2M9bG0oYSwhMCk7aWYoIWMpcmV0dXJuO2Muc2V0KGIpfXJldHVybiBjLmdldCgpfWZ1bmN0aW9uIHBtKGEsYil7aWYodHlwZW9mIGI9PT0iZnVuY3Rpb24iKXt2YXIgYztyZXR1cm4oYz1sbShhLCEwKSk9PW51bGw/dm9pZCAwOmMuc3Vic2NyaWJlKGIpfX1mdW5jdGlvbiBxbShhLGIpe3ZhciBjPWxtKGEpO3JldHVybiBjP2MudW5zdWJzY3JpYmUoYik6ITF9O3ZhciBzbT1mdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9ITF9O3NtLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5LfHwodGhpcy5IPXRtKCksdGhpcy5IWyIwIl0mJm9tKGptLmJhLlNlLEpTT04uc3RyaW5naWZ5KHRoaXMuSCkpKX07CnZhciB4bT1mdW5jdGlvbigpe3ZhciBhPXVtLGI9dm0sYz12b2lkIDAsZD1mdW5jdGlvbigpe2MhPT12b2lkIDAmJnFtKGptLmJhLlNlLGMpO3RyeXt2YXIgZj1ubShqbS5iYS5TZSk7Yi5IPUpTT04ucGFyc2UoZil9Y2F0Y2goZyl7UCgxMjMpLGltKDIpLGIuSD17fX1iLks9ITA7YSgpfSxlPW5tKGptLmJhLlNlKTtlP2QoZSk6KGM9cG0oam0uYmEuU2UsZCksd20oKSl9LHdtPWZ1bmN0aW9uKCl7aWYoIW5tKGptLmJhLlhpKSl7bW0oam0uYmEuWGksITApO3ZhciBhPWZ1bmN0aW9uKGIpe21tKGptLmJhLlNlLGJ8fCJ7fSIpO21tKGptLmJhLlhpLCExKX07dHJ5e0EuZmV0Y2goImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vY2NtL2dlbyIse21ldGhvZDoiR0VUIixjYWNoZToibm8tc3RvcmUiLG1vZGU6ImNvcnMiLGNyZWRlbnRpYWxzOiJvbWl0In0pLnRoZW4oZnVuY3Rpb24oYil7Yi5vaz9iLnRleHQoKS50aGVuKGZ1bmN0aW9uKGMpe2EoYyl9LGZ1bmN0aW9uKCl7YSgpfSk6YSgpfSxmdW5jdGlvbigpe2EoKX0pfWNhdGNoKGIpe2EoKX19fSwKdG09ZnVuY3Rpb24oKXt2YXIgYT1FKDIyKTt0cnl7cmV0dXJuIEpTT04ucGFyc2UocWIoYSkpfWNhdGNoKGIpe3JldHVybiBQKDEyMyksaW0oMikse319fSx5bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIwIl18fCIifSx6bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIxIl18fCIifSxBbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiMiJdO3JldHVybiBifSxCbT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyI2Il0hPT0hMX0sQ209ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjkiXTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO2I9YS5IWyI0Il18fCIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO2I9YS5IWyIzIl18fCIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7CnZhciBocD1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtiW2dwW2VdfHxlXT1hW2VdfXJldHVybiBifSxpcD1mdW5jdGlvbihhKXtyZXR1cm4hIVEoYSxILkoudmQpJiZSKGEsRi5ELlBkKT09PSIxIiYmUihhLEYuRC5IZCkhPT0iMSImJlhvKGZwKX0sanA9ZnVuY3Rpb24oYSxiKXtpZighaXAoYSkpcmV0dXJuITE7dmFyIGM9UWMoKXx8T2MoKT81ODo1NyxkPU5tKGMsaHAoYikpO1RsKGQsYSxjKTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKyImZm10PTgiLHZvaWQgMCx7UWc6ITAsbWV0aG9kOiJHRVQifSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhkKyImZm10PTMiKX0pO3JldHVybiEwfSxrcD17fSxncD0oa3AuZGw9InVybCIsa3AuZHI9CiJyZWYiLGtwLnVpZD0idXNlcklkIixrcCk7dmFyIGxwPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZD1mdW5jdGlvbihlKXtiW2VdIT1udWxsJiZiW2VdIT09IiImJihjW2VdPWJbZV0pfTtNKDQ3NCkmJmQoIl9nc2lkIik7UihhLEYuRC5IZCkhPT0iMSImJihkKCJnY2xpZCIpLGQoImdjbHNyYyIpLGQoImF1aWQiKSxkKCJkY2xpZCIpKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGgpcmV0dXJuIGQoImd0bSIpLGN9Owp2YXIgbXA9e30sbnA9KG1wW0YuRC5zYV09ImdjdSIsbXBbRi5ELlNiXT0iZ2NsZ2IiLG1wW0YuRC5sYl09ImdjbGF3IixtcFtGLkQuemZdPSJnYWRfc291cmNlIixtcFtGLkQuQWZdPSJnYWRfc291cmNlX3NyYyIsbXBbRi5ELkRkXT0iZ2NsaWQiLG1wW0YuRC5BbF09ImdjbHNyYyIsbXBbRi5ELkJmXT0iZ2JyYWlkIixtcFtGLkQuRWVdPSJ3YnJhaWQiLG1wW0YuRC5FZF09ImF1aWQiLG1wW0YuRC5CbF09ImFlIixtcFtGLkQuSGFdPW51bGwsbXBbRi5ELkRsXT0icm5kIixtcFtGLkQuSGRdPSJuY2wiLG1wW0YuRC5OZl09ImdjbGRjIixtcFtGLkQuS2RdPSJkY2xpZCIsbXBbRi5ELlZjXT0iZWRpZCIsbXBbRi5ELlViXT0iZW4iLG1wW0YuRC5LZV09ImdkcHIiLG1wW0YuRC5YY109ImdkaWQiLG1wW0YuRC5UYV09bnVsbCxtcFtGLkQuTGVdPSJfbmciLG1wW0YuRC50aF09ImdwcF9zaWQiLG1wW0YuRC51aF09ImdwcCIsbXBbRi5ELlZmXT0iX3R1IixtcFtGLkQuUWxdPSJndG1fdXAiLG1wW0YuRC5NZV09CiJmcm0iLG1wW0YuRC5QZF09ImxwcyIsbXBbRi5ELkxpXT0iZGlkIixtcFtGLkQuVWxdPSJuYXZ0IixtcFtGLkQuemFdPSJkbCIsbXBbRi5ELlVhXT0iZHIiLG1wW0YuRC5NYl09ImR0IixtcFtGLkQuYm1dPSJzY3JzcmMiLG1wW0YuRC5aZl09ImdhX3VpZCIsbXBbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IixtcFtGLkQuUWldPSJ0ZXN0b25seSIsbXBbRi5ELnJxXT0idV90eiIsbXBbRi5ELlBlXT0idG9wIixtcFtGLkQuUWVdPSJ0aWQiLG1wW0YuRC5mYl09InVpZCIsbXBbRi5ELmtnXT0idXNfcHJpdmFjeSIsbXBbRi5ELmVkXT1udWxsLG1wW0YuRC5kZV09Im5wYSIsbXApO2Z1bmN0aW9uIG9wKGEsYil7aWYoYiE9bnVsbCYmYiE9PSIiKXt2YXIgYz1iPT09ITA/IjEiOmI9PT0hMT8iMCI6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSk7aWYoU2IoYSwiXyYiKSlyZXR1cm57a2V5OmEuc3Vic3RyaW5nKDIpLHZhbHVlOmN9O3ZhciBkPW5wW2FdO2lmKGQhPT1udWxsKXJldHVybiBkP3trZXk6ZCx2YWx1ZTpjfTp7a2V5OkFiKGIpPyJlcG4uIithOiJlcC4iK2EsdmFsdWU6Y319fTtmdW5jdGlvbiBwcChhKXthPWE9PT12b2lkIDA/W106YTtyZXR1cm4geGooYSkuam9pbigifiIpfTtmdW5jdGlvbiBxcCgpe3ZhciBhPVtdLGI9TnVtYmVyKCcnKXx8MCxjPU51bWJlcignJyl8fDA7Y3x8KGM9Yi8xMDApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMjgsc3R1ZHlJZDoyMjgsZXhwZXJpbWVudElkOjEwNTE3NzE1NCxjb250cm9sSWQ6MTA1MTc3MTU1LGNvbnRyb2xJZDI6MTA1MjU1MjQ1LHByb2JhYmlsaXR5OmMsYWN0aXZlOmQsWmU6MH0pO3ZhciBlPU51bWJlcignJyl8fAowLGY9TnVtYmVyKCcnKXx8MDtmfHwoZj1lLzEwMCk7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIzNSxzdHVkeUlkOjIzNSxleHBlcmltZW50SWQ6MTA1MzU3MTUwLGNvbnRyb2xJZDoxMDUzNTcxNTEsY29udHJvbElkMjowLHByb2JhYmlsaXR5OmYsYWN0aXZlOmcsWmU6MX0pO3ZhciBoPU51bWJlcignJyl8fDAsbD1OdW1iZXIoJycpfHwKMDtsfHwobD1oLzEwMCk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NixzdHVkeUlkOjI2NixleHBlcmltZW50SWQ6MTE1NzE4NTI5LGNvbnRyb2xJZDoxMTU3MTg1MzAsY29udHJvbElkMjoxMTU3MTg1MzEscHJvYmFiaWxpdHk6bCxhY3RpdmU6bixaZTowfSk7dmFyIHA9TnVtYmVyKCcnKXx8MCxxPU51bWJlcignJyl8fAowO3F8fChxPXAvMTAwKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY3LHN0dWR5SWQ6MjY3LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjYsY29udHJvbElkOjExNTcxODUyNyxjb250cm9sSWQyOjExNTcxODUyOCxwcm9iYWJpbGl0eTpxLGFjdGl2ZTpyLFplOjB9KTtyZXR1cm4gYX07dmFyIHJwPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPW5ldyBTZXR9LHhwPWZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWI9YS5OW2Muc3R1ZHlJZF0/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHthY3RpdmU6ITB9KTpjLGU9Rmk7ZC5jb250cm9sSWQyJiZkLnByb2JhYmlsaXR5PD0uMjV8fChkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCx7Y29udHJvbElkMjowfSkpO2Uuc3R1ZGllc1tkLnN0dWR5SWRdPWQ7Yi5mb2N1c2VkJiYoYS5LW2Iuc3R1ZHlJZF09ITApO2lmKGIuWmU9PT0xKXt2YXIgZj1iLnN0dWR5SWQ7c3AoYSx0cCgpLGYpO3VwKGEsZik/dGoodWosZik6dnAoYSxmKT91ai5LW2ZdPSEwOndwKGEsZikmJih1ai5IW2ZdPSEwKX1lbHNlIGlmKGIuWmU9PT0wKXt2YXIgZz1iLnN0dWR5SWQ7c3AoYSxhLkgsZyk7dXAoYSxnKT90aih1aixnKTp2cChhLGcpP3VqLktbZ109ITA6d3AoYSxnKSYmCih1ai5IW2ddPSEwKX19LHNwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUZpO2lmKGUuc3R1ZGllc1tjXSl7dmFyIGY9ZS5zdHVkaWVzW2NdLGc9Zi5leHBlcmltZW50SWQsaD1mLnByb2JhYmlsaXR5O2lmKCEoYi5zdHVkaWVzfHx7fSlbY10pe3ZhciBsPWIuc3R1ZGllc3x8e307bFtjXT0hMDtiLnN0dWRpZXM9bDtpZighZS5zdHVkaWVzW2NdLmFjdGl2ZSlpZihlLnN0dWRpZXNbY10ucHJvYmFiaWxpdHk+LjUpSWkoYixnLGMpO2Vsc2UgaWYoIShoPD0wfHxoPjEpKXt2YXIgbj12b2lkIDA7aWYoZCl7dmFyIHA9Q2koZCsifiIrYyk7aWYocD09PSJlMiIpbj0tMTtlbHNle2Zvcih2YXIgcT1uZXcgVWludDhBcnJheShwKSxyPUJpZ0ludCgwKSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpcj1yPDxCaWdJbnQoOCl8QmlnSW50KHUudmFsdWUpO249TnVtYmVyKHIlQmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl9fUdpLnNrKGIsYyxuKX19fWlmKCFhLktbY10pe3ZhciB2PQpOaShiLGMpO3YmJndqLkguSy5hZGQodil9fSx0cD1mdW5jdGlvbigpe3JldHVybiBvbShqbS5iYS5UcSx7fSl9LHVwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gS2koYyxiKXx8S2koYS5ILGIpfSx2cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIExpKGMsYil8fExpKGEuSCxiKX0sd3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBNaShjLGIpfHxNaShhLkgsYil9LHlwOwpmdW5jdGlvbiB6cCgpe2lmKCF5cCl7dmFyIGE9eXA9bmV3IHJwLGIsYyxkPSgoYj1BKT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaGFzaCl8fCIiO2lmKGRbMF09PT0iIyImJmRbMV09PT0iXyImJmRbMl09PT0idCImJmRbM109PT0iZSImJmRbNF09PT0iPSIpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO2lmKGUpZm9yKHZhciBmPW0oZS5zcGxpdCgifiIpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9TnVtYmVyKGcudmFsdWUpO2gmJihhLk5baF09ITAsdGoodWosaCkpfX1mb3IodmFyIGw9bShxcCgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl4cChhLG4udmFsdWUpO2Zvcih2YXIgcD1bXSxxPW0oTWYoNTYpfHxbXSkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT17c3R1ZHlJZDp0WzFdLGFjdGl2ZTohIXRbMl0scHJvYmFiaWxpdHk6dFszXXx8MCxleHBlcmltZW50SWQ6dFs0XXx8CjAsY29udHJvbElkOnRbNV18fDAsY29udHJvbElkMjp0WzZdfHwwfSx2PTA7c3dpdGNoKHRbN10pe2Nhc2UgMjp2PTE7YnJlYWs7Y2FzZSAzOnY9MjticmVhaztjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDA6dj0wfXZhciB4O2E6c3dpdGNoKHUuc3R1ZHlJZCl7Y2FzZSA1Njc6Y2FzZSA0NjI6eD0hMDticmVhayBhO2RlZmF1bHQ6eD0hMX12YXIgeT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHUse1plOnYsZm9jdXNlZDp4fSk7KHkuYWN0aXZlfHx5LnByb2JhYmlsaXR5Pi41JiZ5LmV4cGVyaW1lbnRJZHx8eS5leHBlcmltZW50SWQmJnkuY29udHJvbElkKSYmcC5wdXNoKHkpfWZvcih2YXIgej1tKHApLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXhwKGEsQy52YWx1ZSl9fQpmdW5jdGlvbiBBcChhLGIpe3pwKCk7dmFyIGM9eXA7c3AoYyx0cCgpLGEsYik7dXAoYyxhKT90aih1aixhKTp2cChjLGEpP3VqLktbYV09ITA6d3AoYyxhKSYmKHVqLkhbYV09ITApfWZ1bmN0aW9uIEJwKCl7enAoKTt2YXIgYT15cCxiPXVwKGEsNTY3KTtpZihhLktbNTY3XSl7dmFyIGMsZD10cCgpOyhjPU5pKGQsNTY3KXx8TmkoYS5ILDU2NykpJiZhLlIuYWRkKGMpfXJldHVybiBifWZ1bmN0aW9uIENwKGEpe3pwKCk7dmFyIGI9bmV3IFNldCh5cC5SKTtpZihhKWZvcih2YXIgYz1RKGEsSC5KLkNoKXx8W10sZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWIuYWRkKGUudmFsdWUpO3JldHVybiBwcChbXS5jb25jYXQodyhiKSkpfTtmdW5jdGlvbiBEcChhKXt2YXIgYj1hLmxvY2F0aW9uLmhyZWY7aWYoYT09PWEudG9wKXJldHVybnt1cmw6YixJczohMH07dmFyIGM9ITEsZD1hLmRvY3VtZW50O2QmJmQucmVmZXJyZXImJihiPWQucmVmZXJyZXIsYS5wYXJlbnQ9PT1hLnRvcCYmKGM9ITApKTt2YXIgZT1hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihlKXt2YXIgZj1lW2UubGVuZ3RoLTFdLGc7ZiYmKChnPWIpPT1udWxsP3ZvaWQgMDpnLmluZGV4T2YoZikpPT09LTEmJihjPSExLGI9Zil9cmV0dXJue3VybDpiLElzOmN9fWZ1bmN0aW9uIEVwKGEpe3RyeXt2YXIgYjtpZihiPSEhYSYmYS5sb2NhdGlvbi5ocmVmIT1udWxsKWE6e3RyeXtIbihhLmZvbyk7Yj0hMDticmVhayBhfWNhdGNoKGMpe31iPSExfXJldHVybiBifWNhdGNoKGMpe3JldHVybiExfX1mdW5jdGlvbiBGcCgpe2Zvcih2YXIgYT1BLGI9YTthJiZhIT09YS5wYXJlbnQ7KWE9YS5wYXJlbnQsRXAoYSkmJihiPWEpO3JldHVybiBifTt2YXIgR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU7dmFyIGQ9bmV3IGM7YS5hcHBseShkLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7cmV0dXJuIGR9LEhwPWZ1bmN0aW9uKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPW51bGw7YygpfX19O2Z1bmN0aW9uIElwKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9O2Z1bmN0aW9uIEpwKGEpe3ZhciBiPWEuc3BsaXQoL1s/I10vKSxjPS9bP10vLnRlc3QoYSk/Ij8iK2JbMV06IiI7cmV0dXJue3prOmJbMF0scGFyYW1zOmMsZnJhZ21lbnQ6L1sjXS8udGVzdChhKT8iIyIrKGM/YlsyXTpiWzFdKToiIn19ZnVuY3Rpb24gS3AoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gamMoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGpjKGMpfQpmdW5jdGlvbiBMcChhLGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7ZyE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZyk/Zy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBlKGwsaCl9KTooYis9ZitlbmNvZGVVUklDb21wb25lbnQoaCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChnKSxmPSImIikpfXZhciBmPWIubGVuZ3RoPyImIjoiPyI7ZC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQ9T2JqZWN0LmVudHJpZXMoZCkpO0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3JldHVybiBlKGdbMV0sZ1swXSl9KTpkLmZvckVhY2goZSk7cmV0dXJuIGpjKGErYitjKX1mdW5jdGlvbiBNcChhLGIpe3ZhciBjPUpwKGtjKGEpLnRvU3RyaW5nKCkpLGQ9Yy56ay5zbGljZSgtMSk9PT0iLyI/IiI6Ii8iLGU9Yy56aytkK2VuY29kZVVSSUNvbXBvbmVudChiKTtyZXR1cm4gamMoZStjLnBhcmFtcytjLmZyYWdtZW50KX07dmFyIE5wPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEsZD0wO2Q8NTA7KytkKXt2YXIgZTt0cnl7ZT0hKCFjLmZyYW1lc3x8IWMuZnJhbWVzW2JdKX1jYXRjaChoKXtlPSExfWlmKGUpcmV0dXJuIGM7dmFyIGY7YTp7dHJ5e3ZhciBnPWMucGFyZW50O2lmKGcmJmchPT1jKXtmPWc7YnJlYWsgYX19Y2F0Y2goaCl7fWY9bnVsbH1pZighKGM9ZikpYnJlYWt9cmV0dXJuIG51bGx9LE9wPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi50b3A9PWIpcmV0dXJuIDA7aWYoYT09PXZvaWQgMD8wOmEpe3ZhciBjPWIubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGMpcmV0dXJuIGNbYy5sZW5ndGgtMV09PWIubG9jYXRpb24ub3JpZ2luPzE6Mn1yZXR1cm4gRXAoYi50b3ApPzE6Mn0sUHA9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiaW1nIil9O2Z1bmN0aW9uIFFwKGEpe2Zvcih2YXIgYj1bXSxjPUIuY29va2llLnNwbGl0KCI7IiksZD1uZXcgUmVnRXhwKCJeXFxzKiIrKGF8fCJfZ2FjIikrIl8oVUEtXFxkKy1cXGQrKT1cXHMqKC4rPylcXHMqJCIpLGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS5tYXRjaChkKTtmJiZiLnB1c2goe3VkOmZbMV0sdmFsdWU6ZlsyXSx0aW1lc3RhbXA6TnVtYmVyKGZbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1iLnNvcnQoZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gYn0KZnVuY3Rpb24gUnAoYSxiKXt2YXIgYz1RcChhKSxkPXt9O2lmKCFjfHwhYy5sZW5ndGgpcmV0dXJuIGQ7Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0udmFsdWUuc3BsaXQoIi4iKTtpZighKGZbMF0hPT0iMSJ8fGImJmYubGVuZ3RoPDN8fCFiJiZmLmxlbmd0aCE9PTMpJiZOdW1iZXIoZlsxXSkpe2RbY1tlXS51ZF18fChkW2NbZV0udWRdPVtdKTt2YXIgZz17dmVyc2lvbjpmWzBdLHRpbWVzdGFtcDpOdW1iZXIoZlsxXSkqMUUzLGdjbGlkOmZbMl19O2ImJmYubGVuZ3RoPjMmJihnLmxhYmVscz1mLnNsaWNlKDMpKTtkW2NbZV0udWRdLnB1c2goZyl9fXJldHVybiBkfTtmdW5jdGlvbiBTcChhKXtyZXR1cm4gYS5vcmlnaW4hPT0ibnVsbCJ9O3ZhciBUcD17fSxVcD0oVHAuaz17bmE6L15bXHctXSskL30sVHAuYj17bmE6L15bXHctXSskLyxuazohMH0sVHAuaT17bmE6L15bMS05XVxkKiQvfSxUcC5oPXtuYTovXlxkKyQvfSxUcC50PXtuYTovXlsxLTldXGQqJC99LFRwLmQ9e25hOi9eW0EtWmEtejAtOV8tXSskL30sVHAuaj17bmE6L15cZCskL30sVHAudT17bmE6L15bMS05XVxkKiQvfSxUcC5sPXtuYTovXlswMV0kL30sVHAubz17bmE6L15bMS05XVxkKiQvfSxUcC5nPXtuYTovXlswMV0kL30sVHAucz17bmE6L14uKyQvfSxUcC5tPXtuYTovXlswMV0kL30sVHApO3ZhciBWcD17fSxacD0oVnBbNV09e2ppOnsyOldwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJ1Il19LFZwWzRdPXtqaTp7MjpXcCxHQ0w6WHB9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsIm0iXX0sVnBbMl09e2ppOntHUzI6V3AsR1MxOllwfSxaajoiR1MyIixSaDoic29ndGpsaGQiLnNwbGl0KCIiKX0sVnApO2Z1bmN0aW9uICRwKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF07Yz09bnVsbHx8YyhlKTtpZihlKXt2YXIgZj1kLmppW2VdO2lmKGYpcmV0dXJuIGYoYSxiKX19fQpmdW5jdGlvbiBXcChhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpe3ZhciBkPWNbMl07aWYoZC5pbmRleE9mKCIkIik9PT0tMSYmZC5pbmRleE9mKCIlMjQiKSE9PS0xKXRyeXtkPWRlY29kZVVSSUNvbXBvbmVudChkKX1jYXRjaCh0KXt9dmFyIGU9e30sZj1acFtiXTtpZihmKXtmb3IodmFyIGc9Zi5SaCxoPW0oZC5zcGxpdCgiJCIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPW5bMF07aWYoZy5pbmRleE9mKHApIT09LTEpdHJ5e3ZhciBxPWRlY29kZVVSSUNvbXBvbmVudChuLnN1YnN0cmluZygxKSkscj1VcFtwXTtyJiYoci5uaz8oZVtwXT1lW3BdfHxbXSxlW3BdLnB1c2gocSkpOmVbcF09cSl9Y2F0Y2godCl7fX1yZXR1cm4gZX19fWZ1bmN0aW9uIGFxKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXJldHVybltkLlpqLGN8fCIxIixicShhLGIpXS5qb2luKCIuIil9CmZ1bmN0aW9uIGJxKGEsYil7dmFyIGM9WnBbYl07aWYoYyl7Zm9yKHZhciBkPVtdLGU9bShjLlJoKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVVwW2ddO2lmKGgpe3ZhciBsPWFbZ107aWYobCE9PXZvaWQgMClpZihoLm5rJiZBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytwLnZhbHVlKSk7ZWxzZSBkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crbCkpfX1yZXR1cm4gZC5qb2luKCIkIil9fWZ1bmN0aW9uIFhwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtiLnNoaWZ0KCk7dmFyIGM9Yi5zaGlmdCgpLGQ9Yi5zaGlmdCgpLGU9e307cmV0dXJuIGUuaz1kLGUuaT1jLGUuYj1iLGV9CmZ1bmN0aW9uIFlwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKS5zbGljZSgyKTtpZighKGIubGVuZ3RoPDV8fGIubGVuZ3RoPjcpKXt2YXIgYz17fTtyZXR1cm4gYy5zPWJbMF0sYy5vPWJbMV0sYy5nPWJbMl0sYy50PWJbM10sYy5qPWJbNF0sYy5sPWJbNV0sYy5oPWJbNl0sY319O2Z1bmN0aW9uIGNxKGEsYixjLGQpe3ZhciBlO3JldHVybihlPWRxKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09YX0sYixjLGQpW2FdKSE9bnVsbD9lOltdfWZ1bmN0aW9uIGRxKGEsYixjLGQpe3ZhciBlO2lmKGVxKGQpKXtmb3IodmFyIGY9e30sZz1TdHJpbmcoYnx8ZnEoKSkuc3BsaXQoIjsiKSxoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBsPWdbaF0uc3BsaXQoIj0iKSxuPWxbMF0udHJpbSgpO2lmKG4mJmEobikpe3ZhciBwPWwuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtwJiZjJiYocD1kZWNvZGVVUklDb21wb25lbnQocCkpO3ZhciBxPXZvaWQgMCxyPXZvaWQgMDsoKHE9Zilbcj1uXXx8KHFbcl09W10pKS5wdXNoKHApfX1lPWZ9ZWxzZSBlPXt9O3JldHVybiBlfQpmdW5jdGlvbiBncShhLGIsYyxkLGUpe2lmKGVxKGUpKXt2YXIgZj1ocShhLGQsZSk7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2lmKGYubGVuZ3RoIT09MCl7Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLkpyfSxiKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLldzfSxjKTtyZXR1cm4gZlswXX19fWZ1bmN0aW9uIGpxKGEsYixjLGQpe3ZhciBlPWZxKCksZj1BO1NwKGYpJiYoZi5kb2N1bWVudC5jb29raWU9YSk7dmFyIGc9ZnEoKTtyZXR1cm4gZSE9PWd8fGMhPT12b2lkIDAmJmNxKGIsZywhMSxkKS5pbmRleE9mKGMpPj0wfQpmdW5jdGlvbiBrcShhLGIsYyxkKXtmdW5jdGlvbiBlKHgseSx6KXtpZih6PT1udWxsKXJldHVybiBkZWxldGUgaFt5XSx4O2hbeV09ejtyZXR1cm4geCsiOyAiK3krIj0iK3p9ZnVuY3Rpb24gZih4LHkpe2lmKHk9PW51bGwpcmV0dXJuIHg7aFt5XT0hMDtyZXR1cm4geCsiOyAiK3l9aWYoIWVxKGMuTWMpKXJldHVybiAyO3ZhciBnO2I9PW51bGw/Zz1hKyI9ZGVsZXRlZDsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKTooYy5lbmNvZGUmJihiPWVuY29kZVVSSUNvbXBvbmVudChiKSksYj1scShiKSxnPWErIj0iK2IpO3ZhciBoPXt9O2c9ZShnLCJwYXRoIixjLnBhdGgpO3ZhciBsO2MuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGU/bD1jLmV4cGlyZXMudG9VVENTdHJpbmcoKTpjLmV4cGlyZXMhPW51bGwmJihsPSIiK2MuZXhwaXJlcyk7Zz1lKGcsImV4cGlyZXMiLGwpO2c9ZShnLCJtYXgtYWdlIixjLk9zKTtnPWUoZywic2FtZXNpdGUiLGMucnQpO2Muc2VjdXJlJiYKKGc9ZihnLCJzZWN1cmUiKSk7dmFyIG49Yy5kb21haW47aWYobiYmbi50b0xvd2VyQ2FzZSgpPT09ImF1dG8iKXtmb3IodmFyIHA9bXEoKSxxPXZvaWQgMCxyPSExLHQ9MDt0PHAubGVuZ3RoOysrdCl7dmFyIHU9cFt0XSE9PSJub25lIj9wW3RdOnZvaWQgMCx2PWUoZywiZG9tYWluIix1KTt2PWYodixjLmZsYWdzKTt0cnl7ZCYmZChhLGgpfWNhdGNoKHgpe3E9eDtjb250aW51ZX1yPSEwO2lmKCFucSh1LGMucGF0aCkmJmpxKHYsYSxiLGMuTWMpKXJldHVybiAwfWlmKHEmJiFyKXRocm93IHE7cmV0dXJuIDF9biYmbi50b0xvd2VyQ2FzZSgpIT09Im5vbmUiJiYoZz1lKGcsImRvbWFpbiIsbikpO2c9ZihnLGMuZmxhZ3MpO2QmJmQoYSxoKTtyZXR1cm4gbnEobixjLnBhdGgpPzE6anEoZyxhLGIsYy5NYyk/MDoxfWZ1bmN0aW9uIG9xKGEsYixjKXtjLnBhdGg9PW51bGwmJihjLnBhdGg9Ii8iKTtjLmRvbWFpbnx8KGMuZG9tYWluPSJhdXRvIik7cmV0dXJuIGtxKGEsYixjKX0KZnVuY3Rpb24gaXEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPVtdLGYsZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGw9YihoKTtsPT09Yz9kLnB1c2goaCk6Zj09PXZvaWQgMHx8bDxmPyhlPVtoXSxmPWwpOmw9PT1mJiZlLnB1c2goaCl9cmV0dXJuIGQubGVuZ3RoPjA/ZDplfWZ1bmN0aW9uIGhxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsYyksZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdLnNwbGl0KCIuIiksaD1nLnNoaWZ0KCk7aWYoIWJ8fCFofHxiLmluZGV4T2YoaCkhPT0tMSl7dmFyIGw9Zy5zaGlmdCgpO2lmKGwpe3ZhciBuPWwuc3BsaXQoIi0iKTtkLnB1c2goe0JyOmVbZl0sQ3I6Zy5qb2luKCIuIiksSnI6TnVtYmVyKG5bMF0pfHwxLFdzOk51bWJlcihuWzFdKXx8MX0pfX19cmV0dXJuIGR9ZnVuY3Rpb24gbHEoYSl7YSYmYS5sZW5ndGg+MTIwMCYmKGE9YS5zdWJzdHJpbmcoMCwxMjAwKSk7cmV0dXJuIGF9CnZhciBwcT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn0pPyQvLHFxPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pO2Z1bmN0aW9uIG5xKGEsYil7cmV0dXJuIGEhPT12b2lkIDAmJihxcS50ZXN0KEEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpfHxiPT09Ii8iJiZwcS50ZXN0KGEpKX1mdW5jdGlvbiBycShhKXtpZighYSlyZXR1cm4gMTt2YXIgYj1hO1lmKDQpJiZhPT09Im5vbmUiJiYoYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTtiPWIuaW5kZXhPZigiLiIpPT09MD9iLnN1YnN0cmluZygxKTpiO3JldHVybiBiLnNwbGl0KCIuIikubGVuZ3RofWZ1bmN0aW9uIHNxKGEpe2lmKCFhfHxhPT09Ii8iKXJldHVybiAxO2FbMF0hPT0iLyImJihhPSIvIithKTthW2EubGVuZ3RoLTFdIT09Ii8iJiYoYSs9Ii8iKTtyZXR1cm4gYS5zcGxpdCgiLyIpLmxlbmd0aC0xfQpmdW5jdGlvbiB0cShhLGIpe3ZhciBjPSIiK3JxKGEpLGQ9c3EoYik7ZD4xJiYoYys9Ii0iK2QpO3JldHVybiBjfQp2YXIgZnE9ZnVuY3Rpb24oKXt2YXIgYT1BO3JldHVybiBTcChhKT9hLmRvY3VtZW50LmNvb2tpZToiIn0sZXE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJllmKDUpPyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gRGwoYikmJkJsKGIpfSk6ITB9LG1xPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoYi5sZW5ndGg9PT00KXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKE51bWJlcihjKS50b1N0cmluZygpPT09YylyZXR1cm5bIm5vbmUiXX1mb3IodmFyIGQ9Yi5sZW5ndGgtMjtkPj0wO2QtLSlhLnB1c2goYi5zbGljZShkKS5qb2luKCIuIikpO3ZhciBlPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7cXEudGVzdChlKXx8cHEudGVzdChlKXx8YS5wdXNoKCJub25lIik7cmV0dXJuIGF9O2Z1bmN0aW9uIHVxKGEsYixjLGQpe3ZhciBlLGY9TnVtYmVyKGEucGQhPW51bGw/YS5wZDp2b2lkIDApO2YhPT0wJiYoZT1uZXcgRGF0ZSgoYnx8TmIoKSkrMUUzKihmfHw3Nzc2RTMpKSk7cmV0dXJue3BhdGg6YS5wYXRoLGRvbWFpbjphLmRvbWFpbixmbGFnczphLmZsYWdzLGVuY29kZTohIWMsZXhwaXJlczplLE1jOmR9fTt2YXIgdnE9bmV3IE1hcChbWzUsImFkX3N0b3JhZ2UiXSxbNCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV0sWzIsImFuYWx5dGljc19zdG9yYWdlIl1dKTtmdW5jdGlvbiB3cShhLGIsYyl7aWYoWnBbYl0pe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoYikpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9JHAoZy52YWx1ZSxiLGMpO2gmJmQucHVzaCh4cShoKSl9cmV0dXJuIGR9fQpmdW5jdGlvbiB5cShhKXt2YXIgYj16cTtpZihacFsyXSl7Zm9yKHZhciBjPXt9LGQ9ZHEoYSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSksZT1PYmplY3Qua2V5cyhkKS5zb3J0KCksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9bShkW2hdKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9JHAobi52YWx1ZSwyLGIpO3AmJihjW2hdfHwoY1toXT1bXSksY1toXS5wdXNoKHhxKHApKSl9cmV0dXJuIGN9fWZ1bmN0aW9uIEFxKGEsYixjLGQsZSl7ZD1kfHx7fTt2YXIgZj10cShkLmRvbWFpbixkLnBhdGgpLGc9YXEoYixjLGYpO2lmKCFnKXJldHVybiAxO3ZhciBoPXVxKGQsZSx2b2lkIDAsdnEuZ2V0KGMpKTtyZXR1cm4gb3EoYSxnLGgpfWZ1bmN0aW9uIEJxKGEsYil7dmFyIGM9Yi5uYTtyZXR1cm4gdHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoYSk6Yy50ZXN0KGEpfQpmdW5jdGlvbiB4cShhKXtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhKSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17QWc6dm9pZCAwfSxjPWIubmV4dCgpKXt2YXIgZT1jLnZhbHVlLGY9YVtlXTtkLkFnPVVwW2VdO2QuQWc/ZC5BZy5uaz9hW2VdPUFycmF5LmlzQXJyYXkoZik/Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBCcShoLGcuQWcpfX0oZCkpOnZvaWQgMDp0eXBlb2YgZj09PSJzdHJpbmciJiZCcShmLGQuQWcpfHwoYVtlXT12b2lkIDApOmFbZV09dm9pZCAwfXJldHVybiBhfTt2YXIgQ3E7ZnVuY3Rpb24gRHEoKXtmdW5jdGlvbiBhKGcpe2MoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfWZ1bmN0aW9uIGIoZyl7ZChnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9dmFyIGM9RXEsZD1GcSxlPUdxKCk7aWYoIWUuaW5pdCl7JGMoQiwibW91c2Vkb3duIixhKTskYyhCLCJrZXl1cCIsYSk7JGMoQiwic3VibWl0IixiKTt2YXIgZj1IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdDtIVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdD1mdW5jdGlvbigpe2QodGhpcyk7Zi5jYWxsKHRoaXMpfTtlLmluaXQ9ITB9fWZ1bmN0aW9uIEhxKGEsYixjLGQsZSl7dmFyIGY9e2NhbGxiYWNrOmEsZG9tYWluczpiLGZyYWdtZW50OmM9PT0yLHBsYWNlbWVudDpjLGZvcm1zOmQsc2FtZUhvc3Q6ZX07R3EoKS5kZWNvcmF0b3JzLnB1c2goZil9CmZ1bmN0aW9uIElxKGEsYixjKXtmb3IodmFyIGQ9R3EoKS5kZWNvcmF0b3JzLGU9e30sZj0wO2Y8ZC5sZW5ndGg7KytmKXt2YXIgZz1kW2ZdLGg7aWYoaD0hY3x8Zy5mb3JtcylhOnt2YXIgbD1nLmRvbWFpbnMsbj1hLHA9ISFnLnNhbWVIb3N0O2lmKGwmJihwfHxuIT09Qi5sb2NhdGlvbi5ob3N0bmFtZSkpZm9yKHZhciBxPTA7cTxsLmxlbmd0aDtxKyspaWYobFtxXWluc3RhbmNlb2YgUmVnRXhwKXtpZihsW3FdLnRlc3Qobikpe2g9ITA7YnJlYWsgYX19ZWxzZSBpZihuLmluZGV4T2YobFtxXSk+PTB8fHAmJmxbcV0uaW5kZXhPZihuKT49MCl7aD0hMDticmVhayBhfWg9ITF9aWYoaCl7dmFyIHI9Zy5wbGFjZW1lbnQ7cj09PXZvaWQgMCYmKHI9Zy5mcmFnbWVudD8yOjEpO3I9PT1iJiZRYihlLGcuY2FsbGJhY2soKSl9fXJldHVybiBlfQpmdW5jdGlvbiBHcSgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEuZ2w7YiYmYi5kZWNvcmF0b3JzfHwoYj17ZGVjb3JhdG9yczpbXX0sYS5nbD1iKTtyZXR1cm4gYn07dmFyIEpxPS8oLio/KVwqKC4qPylcKiguKikvLEtxPS9eaHR0cHM/OlwvXC8oW15cL10qPylcLj9jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyguKikvLExxPS9eKD86d3d3XC58bVwufGFtcFwuKSsvLE1xPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIE5xKGEpe3ZhciBiPU1xLmV4ZWMoYSk7aWYoYilyZXR1cm57aGs6YlsxXSxxdWVyeTpiWzJdLGZyYWdtZW50OmJbM119fWZ1bmN0aW9uIE9xKGEpe3JldHVybiBuZXcgUmVnRXhwKCIoLio/KShefCYpIithKyI9KFteJl0qKSY/KC4qKSIpfQpmdW5jdGlvbiBQcShhLGIpe3ZhciBjPVtIYy51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLEhjLnVzZXJMYW5ndWFnZXx8SGMubGFuZ3VhZ2UsTWF0aC5mbG9vcihOYigpLzYwLzFFMyktKGI9PT12b2lkIDA/MDpiKSxhXS5qb2luKCIqIiksZDtpZighKGQ9Q3EpKXtmb3IodmFyIGU9QXJyYXkoMjU2KSxmPTA7ZjwyNTY7ZisrKXtmb3IodmFyIGc9ZixoPTA7aDw4O2grKylnPWcmMT9nPj4+MV4zOTg4MjkyMzg0Omc+Pj4xO2VbZl09Z31kPWV9Q3E9ZDtmb3IodmFyIGw9NDI5NDk2NzI5NSxuPTA7bjxjLmxlbmd0aDtuKyspbD1sPj4+OF5DcVsobF5jLmNoYXJDb2RlQXQobikpJjI1NV07cmV0dXJuKChsXi0xKT4+PjApLnRvU3RyaW5nKDM2KX0KZnVuY3Rpb24gUXEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPVJqKEEubG9jYXRpb24uaHJlZiksZD1jLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZT1JaihkLCJfZ2wiLCExLCEwKXx8IiI7Yi5xdWVyeT1ScShlKXx8e307dmFyIGY9TGooYywiZnJhZ21lbnQiKSxnO3ZhciBoPS0xO2lmKFNiKGYsIl9nbD0iKSloPTQ7ZWxzZXt2YXIgbD1mLmluZGV4T2YoIiZfZ2w9Iik7bD4wJiYoaD1sKzMrMil9aWYoaDwwKWc9dm9pZCAwO2Vsc2V7dmFyIG49Zi5pbmRleE9mKCImIixoKTtnPW48MD9mLnN1YnN0cmluZyhoKTpmLnN1YnN0cmluZyhoLG4pfWIuZnJhZ21lbnQ9UnEoZ3x8IiIpfHx7fTthJiZTcShjLGQsZil9fWZ1bmN0aW9uIFRxKGEsYil7dmFyIGM9T3EoYSkuZXhlYyhiKSxkPWI7aWYoYyl7dmFyIGU9Y1syXSxmPWNbNF07ZD1jWzFdO2YmJihkPWQrZStmKX1yZXR1cm4gZH0KZnVuY3Rpb24gU3EoYSxiLGMpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgbD1UcSgiX2dsIixnKTtsLmxlbmd0aCYmKGw9aCtsKTtyZXR1cm4gbH1pZihHYyYmR2MucmVwbGFjZVN0YXRlKXt2YXIgZT1PcSgiX2dsIik7aWYoZS50ZXN0KGIpfHxlLnRlc3QoYykpe3ZhciBmPUxqKGEsInBhdGgiKTtiPWQoYiwiPyIpO2M9ZChjLCIjIik7R2MucmVwbGFjZVN0YXRlKHt9LCIiLCIiK2YrYitjKX19fWZ1bmN0aW9uIFVxKGEsYil7dmFyIGM9UXEoISFiKSxkPUdxKCk7ZC5kYXRhfHwoZC5kYXRhPXtxdWVyeTp7fSxmcmFnbWVudDp7fX0sYyhkLmRhdGEpKTt2YXIgZT17fSxmPWQuZGF0YTtmJiYoUWIoZSxmLnF1ZXJ5KSxhJiZRYihlLGYuZnJhZ21lbnQpKTtyZXR1cm4gZX0KdmFyIFJxPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1WcShhLDMpO2lmKGIhPT12b2lkIDApe2Zvcih2YXIgYz17fSxkPWI/Yi5zcGxpdCgiKiIpOltdLGU9MDtlKzE8ZC5sZW5ndGg7ZSs9Mil7dmFyIGY9ZFtlXSxnPXFiKGRbZSsxXSk7Y1tmXT1nfXNiKCJUQUdHSU5HIiw2KTtyZXR1cm4gY319Y2F0Y2goaCl7c2IoIlRBR0dJTkciLDgpfX07ZnVuY3Rpb24gVnEoYSxiKXtpZihhKXt2YXIgYzthOntmb3IodmFyIGQ9YSxlPTA7ZTwzOysrZSl7dmFyIGY9SnEuZXhlYyhkKTtpZihmKXtjPWY7YnJlYWsgYX1kPUtqKGQpfHwiIn1jPXZvaWQgMH12YXIgZz1jO2lmKGcmJmdbMV09PT0iMSIpe3ZhciBoPWdbM10sbDthOntmb3IodmFyIG49Z1syXSxwPTA7cDxiOysrcClpZihuPT09UHEoaCxwKSl7bD0hMDticmVhayBhfWw9ITF9aWYobClyZXR1cm4gaDtzYigiVEFHR0lORyIsNyl9fX0KZnVuY3Rpb24gV3EoYSxiLGMsZCxlKXtmdW5jdGlvbiBmKHApe3A9VHEoYSxwKTt2YXIgcT1wLmNoYXJBdChwLmxlbmd0aC0xKTtwJiZxIT09IiYiJiYocCs9IiYiKTtyZXR1cm4gcCtufWQ9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBnPU5xKGMpO2lmKCFnKXJldHVybiIiO3ZhciBoPWcucXVlcnl8fCIiLGw9Zy5mcmFnbWVudHx8IiIsbj1hKyI9IitiO2Q/bC5zdWJzdHJpbmcoMSkubGVuZ3RoIT09MCYmZXx8KGw9IiMiK2YobC5zdWJzdHJpbmcoMSkpKTpoPSI/IitmKGguc3Vic3RyaW5nKDEpKTtyZXR1cm4iIitnLmhrK2grbH0KZnVuY3Rpb24gWHEoYSxiKXtmdW5jdGlvbiBjKG4scCxxKXt2YXIgcjthOntmb3IodmFyIHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpKXtyPSEwO2JyZWFrIGF9cj0hMX1pZihyKXt2YXIgdSx2PVtdLHg7Zm9yKHggaW4gbilpZihuLmhhc093blByb3BlcnR5KHgpKXt2YXIgeT1uW3hdO3khPT12b2lkIDAmJnk9PT15JiZ5IT09bnVsbCYmeS50b1N0cmluZygpIT09IltvYmplY3QgT2JqZWN0XSImJih2LnB1c2goeCksdi5wdXNoKHBiKFN0cmluZyh5KSkpKX12YXIgej12LmpvaW4oIioiKTt1PVsiMSIsUHEoeiksel0uam9pbigiKiIpO2Q/KFlmKDMpfHxZZigxKXx8IXApJiZZcSgiX2dsIix1LGEscCxxKTpacSgiX2dsIix1LGEscCxxKX19dmFyIGQ9KGEudGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk9PT0iRk9STSIsZT1JcShiLDEsZCksZj1JcShiLDIsZCksZz1JcShiLDQsZCksaD1JcShiLDMsZCk7YyhlLCExLCExKTtjKGYsITAsITEpO1lmKDEpJiZjKGcsITAsITApO2Zvcih2YXIgbCBpbiBoKWguaGFzT3duUHJvcGVydHkobCkmJgokcShsLGhbbF0sYSl9ZnVuY3Rpb24gJHEoYSxiLGMpe2MudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImEiP1pxKGEsYixjKTpjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJmb3JtIiYmWXEoYSxiLGMpfWZ1bmN0aW9uIFpxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY7aWYoZj1jLmhyZWYpe3ZhciBnO2lmKCEoZz1kKSl7dmFyIGg9QS5sb2NhdGlvbi5ocmVmLGw9TnEoYy5ocmVmKSxuPU5xKGgpO2c9IShsJiZuJiZsLmhrPT09bi5oayYmbC5xdWVyeT09PW4ucXVlcnkmJmwuZnJhZ21lbnQpfWY9Z31pZihmKXt2YXIgcD1XcShhLGIsYy5ocmVmLGQsZSk7dmMudGVzdChwKSYmKGMuaHJlZj1wKX19CmZ1bmN0aW9uIFlxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7aWYoYyl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpfHwiIjtpZihmKXt2YXIgZz0oYy5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKGchPT0iZ2V0Inx8ZCl7aWYoZz09PSJnZXQifHxnPT09InBvc3QiKXt2YXIgaD1XcShhLGIsZixkLGUpO3ZjLnRlc3QoaCkmJihjLmFjdGlvbj1oKX19ZWxzZXtmb3IodmFyIGw9Yy5jaGlsZE5vZGVzfHxbXSxuPSExLHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIHE9bFtwXTtpZihxLm5hbWU9PT1hKXtxLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO249ITA7YnJlYWt9fWlmKCFuKXt2YXIgcj1CLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7ci5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKTtyLnNldEF0dHJpYnV0ZSgibmFtZSIsYSk7ci5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtjLmFwcGVuZENoaWxkKHIpfX19fX0KZnVuY3Rpb24gRXEoYSl7dHJ5e3ZhciBiO2E6e2Zvcih2YXIgYz1hLGQ9MTAwO2MmJmQ+MDspe2lmKGMuaHJlZiYmYy5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe2I9YzticmVhayBhfWM9Yy5wYXJlbnROb2RlO2QtLX1iPW51bGx9dmFyIGU9YjtpZihlKXt2YXIgZj1lLnByb3RvY29sO2YhPT0iaHR0cDoiJiZmIT09Imh0dHBzOiJ8fFhxKGUsZS5ob3N0bmFtZSl9fWNhdGNoKGcpe319ZnVuY3Rpb24gRnEoYSl7dHJ5e3ZhciBiPWEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihiKXt2YXIgYz1MaihSaihiKSwiaG9zdCIpO1hxKGEsYyl9fWNhdGNoKGQpe319ZnVuY3Rpb24gYXIoYSxiLGMsZCl7RHEoKTt2YXIgZT1jPT09ImZyYWdtZW50Ij8yOjE7ZD0hIWQ7SHEoYSxiLGUsZCwhMSk7ZT09PTImJnNiKCJUQUdHSU5HIiwyMyk7ZCYmc2IoIlRBR0dJTkciLDI0KX0KZnVuY3Rpb24gYnIoYSxiKXtEcSgpO0hxKGEsW05qKEEubG9jYXRpb24sImhvc3QiLCEwKV0sYiwhMCwhMCl9ZnVuY3Rpb24gY3IoKXt2YXIgYT1CLmxvY2F0aW9uLmhvc3RuYW1lLGI9S3EuZXhlYyhCLnJlZmVycmVyKTtpZighYilyZXR1cm4hMTt2YXIgYz1iWzJdLGQ9YlsxXSxlPSIiO2lmKGMpe3ZhciBmPWMuc3BsaXQoIi8iKSxnPWZbMV07ZT1nPT09InMiP0tqKGZbMl0pfHwiIjpLaihnKXx8IiJ9ZWxzZSBpZihkKXtpZihkLmluZGV4T2YoInhuLS0iKT09PTApcmV0dXJuITE7ZT1kLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpfXZhciBoPWEucmVwbGFjZShMcSwiIiksbD1lLnJlcGxhY2UoTHEsIiIpO3JldHVybiBoPT09bHx8VGIoaCwiLiIrbCl9ZnVuY3Rpb24gZHIoYSxiKXtyZXR1cm4gYT09PSExPyExOmF8fGJ8fGNyKCl9O3ZhciBlcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPTA7dGhpcy52YWx1ZT1hPT09dm9pZCAwPzA6YX07ZXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXw9MTw8YX07dmFyIGZyPWZ1bmN0aW9uKGEsYil7Yjw9MHx8KGEudmFsdWV8PTE8PGItMSl9O2VyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07ZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWUmPX4oMTw8YSl9O2VyLnByb3RvdHlwZS5jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMudmFsdWU9MH07ZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZT09PWEudmFsdWV9O2Z1bmN0aW9uIGdyKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgVWludDhBcnJheShhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hhckNvZGVBdCgwKX0pKX1jYXRjaChiKXt9fWZ1bmN0aW9uIGhyKGEsYil7dmFyIGM9MCxkPTAsZSxmPWI7ZG97aWYoZj49YS5sZW5ndGgpcmV0dXJuO2U9YVtmKytdO2N8PShlJjEyNyk8PGQ7ZCs9N313aGlsZShlJjEyOCk7cmV0dXJuW2MsZl19O2Z1bmN0aW9uIGlyKCl7dmFyIGE9U3RyaW5nLGI9QS5sb2NhdGlvbi5ob3N0bmFtZSxjPUEubG9jYXRpb24ucGF0aG5hbWUsZD1iPWJjKGIpO2Quc3BsaXQoIi4iKS5sZW5ndGg+MiYmKGQ9ZC5yZXBsYWNlKC9eKHd3d1swLTldKnx3ZWJ8ZnRwfHdhcHxob21lfG18d3xhbXB8bW9iaWxlKVwuLywiIikpO2I9ZDtjPWJjKGMpO3ZhciBlPWMuc3BsaXQoIjsiKVswXTtlPWUucmVwbGFjZSgvXC8oYXJ8c2xwfHdlYnxpbmRleCk/XC8/JC8sIiIpO3JldHVybiBhKG5nKCgiIitiK2UpLnRvTG93ZXJDYXNlKCkpKX07dmFyIGpyPVsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdO2Z1bmN0aW9uIGtyKGEsYil7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMiksMTA7aWYoYj09PW51bGx8fGI9PT12b2lkIDB8fGI9PT0iIilyZXR1cm4gc2IoIlRBR0dJTkciLDMzKSwxMTt2YXIgYz1scighMSk7aWYoYy5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwzNCksYy5lcnJvcjtpZighYy52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDM1KSwyO2MudmFsdWVbYV09Yjt2YXIgZD1tcihjKTtkIT09MCYmc2IoIlRBR0dJTkciLDM2KTtyZXR1cm4gZH0KZnVuY3Rpb24gbnIoYSl7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwyNykse2Vycm9yOjEwfTt2YXIgYj1scigpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMjkpLGI7aWYoIWIudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMCkse2Vycm9yOjJ9O2lmKCEoYSBpbiBiLnZhbHVlKSlyZXR1cm4gc2IoIlRBR0dJTkciLDMxKSx7dmFsdWU6dm9pZCAwLGVycm9yOjE1fTt2YXIgYz1iLnZhbHVlW2FdO3JldHVybiBjPT09bnVsbHx8Yz09PXZvaWQgMHx8Yz09PSIiPyhzYigiVEFHR0lORyIsMjgpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTF9KTp7dmFsdWU6YyxlcnJvcjowfX0KZnVuY3Rpb24gb3IoYSl7aWYoYSl7dmFyIGI9bHIoITEpO2IuZXJyb3IhPT0wP3NiKCJUQUdHSU5HIiwzOCk6Yi52YWx1ZT9hIGluIGIudmFsdWU/KGRlbGV0ZSBiLnZhbHVlW2FdLG1yKGIpIT09MCYmc2IoIlRBR0dJTkciLDQxKSk6c2IoIlRBR0dJTkciLDQwKTpzYigiVEFHR0lORyIsMzkpfWVsc2Ugc2IoIlRBR0dJTkciLDM3KX0KZnVuY3Rpb24gbHIoYSl7YT1hPT09dm9pZCAwPyEwOmE7aWYoIUJsKGpyKSlyZXR1cm4gc2IoIlRBR0dJTkciLDQzKSx7ZXJyb3I6M307dHJ5e2lmKCFBLmxvY2FsU3RvcmFnZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQ0KSx7ZXJyb3I6MX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0NSkse2Vycm9yOjE0fX12YXIgYj17c2NoZW1hOiJnY2wiLHZlcnNpb246MX0sYz12b2lkIDA7dHJ5e2M9QS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX2djbF9scyIpfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDYpLHtlcnJvcjoxM319dHJ5e2lmKGMpe3ZhciBkPUpTT04ucGFyc2UoYyk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0IiliPWQ7ZWxzZSByZXR1cm4gc2IoIlRBR0dJTkciLDQ3KSx7ZXJyb3I6MTJ9fX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19aWYoYi5zY2hlbWEhPT0iZ2NsIilyZXR1cm4gc2IoIlRBR0dJTkciLDQ5KSx7ZXJyb3I6NH07CmlmKGIudmVyc2lvbiE9PTEpcmV0dXJuIHNiKCJUQUdHSU5HIiw1MCkse2Vycm9yOjV9O3RyeXt2YXIgZT1wcihiKTthJiZlJiZtcih7dmFsdWU6YixlcnJvcjowfSl9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fXJldHVybnt2YWx1ZTpiLGVycm9yOjB9fQpmdW5jdGlvbiBwcihhKXtpZighYXx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZigiZXhwaXJlcyJpbiBhJiYidmFsdWUiaW4gYSl7dmFyIGI7dHlwZW9mIGEuZXhwaXJlcz09PSJudW1iZXIiP2I9YS5leHBpcmVzOmI9dHlwZW9mIGEuZXhwaXJlcz09PSJzdHJpbmciP051bWJlcihhLmV4cGlyZXMpOk5hTjtpZihpc05hTihiKXx8IShEYXRlLm5vdygpPD1iKSlyZXR1cm4gYS52YWx1ZT1udWxsLGEuZXJyb3I9OSxzYigiVEFHR0lORyIsNTQpLCEwfWVsc2V7Zm9yKHZhciBjPSExLGQ9bShPYmplY3Qua2V5cyhhKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYz1wcihhW2UudmFsdWVdKXx8YztyZXR1cm4gY31yZXR1cm4hMX0KZnVuY3Rpb24gbXIoYSl7aWYoYS5lcnJvcilyZXR1cm4gYS5lcnJvcjtpZighYS52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQyKSwyO3ZhciBiPWEudmFsdWUsYzt0cnl7Yz1KU09OLnN0cmluZ2lmeShiKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUyKSw2fXRyeXtBLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJfZ2NsX2xzIixjKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUzKSw3fXJldHVybiAwfTt2YXIgcXI9e30scnI9KHFyLmdjbGlkPSEwLHFyLmRjbGlkPSEwLHFyLmdicmFpZD0hMCxxci53YnJhaWQ9ITAscXIpLHNyPS9eXHcrJC8sdHI9L15bXHctXSskLyx1cj17fSx2cj0odXIuYXc9IkZQR0NMQVciLHVyKSx3cj17fSx4cj0od3IuYWc9Il9hZyIsd3IuZ2I9Il9nYiIsd3IuYXc9Il9hdyIsd3IuZGM9Il9kYyIsd3IuZ2Y9Il9nZiIsd3IuaGE9Il9oYSIsd3IuZ3A9Il9ncCIsd3IuZ3M9Il9ncyIsd3IpLHlyPS9eKD86d3d3XC4pP2dvb2dsZSg/OlwuY29tPyk/KD86XC5bYS16XXsyfXQ/KT8kLyx6cj0vXnd3d1wuZ29vZ2xlYWRzZXJ2aWNlc1wuY29tJC87ZnVuY3Rpb24gQXIoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX1mdW5jdGlvbiBCcihhKXtyZXR1cm4hWWYoNSl8fEJsKGEpfWZ1bmN0aW9uIENyKGEsYil7ZnVuY3Rpb24gYygpe3ZhciBkPUJyKGIpO2QmJmEoKTtyZXR1cm4gZH1IbChmdW5jdGlvbigpe2MoKXx8SWwoYyxiKX0sYil9CmZ1bmN0aW9uIERyKGEpe3JldHVybiBFcihhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBGcihhKXtyZXR1cm4gR3IoYSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gR3IoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1IcihhLnByZWZpeCksZD1JcigiZ2IiLGMpLGU9SXIoImFnIixjKTtpZighZXx8IWQpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uemc9bDtyZXR1cm4gbn19LGc9RXIoZCxiKS5tYXAoZigiZ2IiKSksaD1KcihlKS5tYXAoZigiYWciKSk7cmV0dXJuIGcuY29uY2F0KGgpLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gS3IoYSxiLGMsZCxlKXt2YXIgZj1DYihhLGZ1bmN0aW9uKGcpe3JldHVybiBnLmdjbGlkPT09Yn0pO2Y/KGYudGltZXN0YW1wPGMmJihmLnRpbWVzdGFtcD1jLGYub2Q9ZSksZi5sYWJlbHM9THIoZi5sYWJlbHN8fFtdLGR8fFtdKSk6YS5wdXNoKHt2ZXJzaW9uOiIyIixnY2xpZDpiLHRpbWVzdGFtcDpjLGxhYmVsczpkLG9kOmV9KX1mdW5jdGlvbiBNcihhKXtmb3IodmFyIGI9d3EoYSw1KXx8W10sYz1bXSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1mLGg9TnIoZik7aCYmS3IoYyxnLmssaCxnLmJ8fFtdLGYudSl9cmV0dXJuIGMuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBFcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO09yKGMsYSwxKTtpZihiKWlmKFRiKGEsIl9hdyIpKXt2YXIgZD1QcigpO2QmJihkLm9kPXZvaWQgMCxkLm9hPWQub2F8fFsyXSxRcihjLGQpKTtPcihjLCJnY2xfYXciLDIpfWVsc2UgVGIoYSwiX2diIikmJllmKDYpJiZPcihjLCJnY2xfZ2IiLDIpO2Muc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBmLnRpbWVzdGFtcC1lLnRpbWVzdGFtcH0pO3JldHVybiBScihjKX1mdW5jdGlvbiBTcihhLGIpe2Zvcih2YXIgYz1bXSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Yy5pbmNsdWRlcyhmKXx8Yy5wdXNoKGYpfWZvcih2YXIgZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2MuaW5jbHVkZXMobCl8fGMucHVzaChsKX1yZXR1cm4gY30KZnVuY3Rpb24gUXIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZCxlLGY9bShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZihoLmdjbGlkPT09Yi5nY2xpZCl7ZD1oO2JyZWFrfWgucWEmJmIucWEmJmgucWEuZXF1YWxzKGIucWEpJiYoZT1oKX1pZihkKXt2YXIgbCxuLHA9KGw9ZC5xYSkhPW51bGw/bDpuZXcgZXIscT0obj1iLnFhKSE9bnVsbD9uOm5ldyBlcjtwLnZhbHVlfD1xLnZhbHVlO2QucWE9cDtkLnRpbWVzdGFtcDxiLnRpbWVzdGFtcCYmKGQudGltZXN0YW1wPWIudGltZXN0YW1wLGQub2Q9Yi5vZCk7ZC5sYWJlbHM9U3IoZC5sYWJlbHN8fFtdLGIubGFiZWxzfHxbXSk7ZC5vYT1TcihkLm9hfHxbXSxiLm9hfHxbXSl9ZWxzZSBjJiZlP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxiKTphLnB1c2goYil9CmZ1bmN0aW9uIFRyKGEpe2lmKCFhKXJldHVybiBuZXcgZXI7dmFyIGI9bmV3IGVyO2lmKGE9PT0xKXJldHVybiBmcihiLDIpLGZyKGIsMyksYjtmcihiLGEpO3JldHVybiBifQpmdW5jdGlvbiBQcigpe3ZhciBhPW5yKCJnY2xpZCIpO2lmKCFhfHxhLmVycm9yfHwhYS52YWx1ZXx8dHlwZW9mIGEudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYj1hLnZhbHVlO3RyeXtpZighKCJ2YWx1ZSJpbiBiJiZiLnZhbHVlKXx8dHlwZW9mIGIudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYz1iLnZhbHVlLGQ9Yy52YWx1ZTtpZighZHx8IWQubWF0Y2godHIpKXJldHVybiBudWxsO3ZhciBlPWMubGlua0RlY29yYXRpb25Tb3VyY2UsZj1jLmxpbmtEZWNvcmF0aW9uU291cmNlcyxnPW5ldyBlcjt0eXBlb2YgZT09PSJudW1iZXIiP2c9VHIoZSk6dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGcudmFsdWU9Zik7cmV0dXJue3ZlcnNpb246IiIsZ2NsaWQ6ZCx0aW1lc3RhbXA6TnVtYmVyKGMuY3JlYXRpb25UaW1lTXMpfHwwLGxhYmVsczpbXSxxYTpnLG9hOlsyXX19Y2F0Y2goaCl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBVcihhKXt2YXIgYj1ucihhKTtpZihiLmVycm9yIT09MClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGIudmFsdWUucmVkdWNlKGZ1bmN0aW9uKGMsZCl7aWYoIWQudmFsdWV8fHR5cGVvZiBkLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIGM7dmFyIGU9ZC52YWx1ZSxmPWUudmFsdWU7aWYoIWZ8fCFmLm1hdGNoKHRyKSlyZXR1cm4gYzt2YXIgZz1uZXcgZXIsaD1lLmxpbmtEZWNvcmF0aW9uU291cmNlczt0eXBlb2YgaD09PSJudW1iZXIiJiYoZy52YWx1ZT1oKTt2YXIgbDtjLnB1c2goe3ZlcnNpb246IiIsZ2NsaWQ6Zix0aW1lc3RhbXA6TnVtYmVyKGUuY3JlYXRpb25UaW1lTXMpfHwwLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl8fDAsbGFiZWxzOihsPWUubGFiZWxzKSE9bnVsbD9sOltdLHFhOmcsb2E6WzJdfSk7cmV0dXJuIGN9LFtdKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIE9yKGEsYixjKXtpZihjPT09MSlmb3IodmFyIGQ9Y3EoYixCLmNvb2tpZSx2b2lkIDAsQXIoKSksZT1tKGQpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1WcihmLnZhbHVlLnNwbGl0KCIuIikpLGg9Zy5sZW5ndGg9PT0wP251bGw6e3ZlcnNpb246Z1swXSxnY2xpZDpnWzJdLHRpbWVzdGFtcDooTnVtYmVyKGdbMV0pfHwwKSoxRTMsbGFiZWxzOmcuc2xpY2UoMyl9O2ghPW51bGwmJihoLm9kPXZvaWQgMCxoLnFhPW5ldyBlcixoLm9hPVtjXSxRcihhLGgpKX1lbHNlIGlmKGM9PT0yKXt2YXIgbD1VcihiKTtpZihsKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3Eub2Q9dm9pZCAwO3Eub2E9cS5vYTtRcihhLHEpfX19CmZ1bmN0aW9uIFpyKGEpe3ZhciBiPUVyKGEpLGM9VXIoImdjbF9kYyIpO2lmKGMpZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Zi5vZD12b2lkIDA7Zi5vYT1mLm9hfHxbMl07UXIoYixmKX1iLnNvcnQoZnVuY3Rpb24oZyxoKXt2YXIgbD1nLm9hJiZnLm9hLmluY2x1ZGVzKDEpLG49aC5vYSYmaC5vYS5pbmNsdWRlcygxKTtyZXR1cm4gbCYmIW4/LTE6IWwmJm4/MTpoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBScihiKX1mdW5jdGlvbiBKcihhKXtyZXR1cm4gTXIoYSkubWFwKGZ1bmN0aW9uKGIpe2IucWE9bmV3IGVyO2Iub2E9WzFdO3JldHVybiBifSl9CmZ1bmN0aW9uIExyKGEsYil7aWYoIWEubGVuZ3RoKXJldHVybiBiO2lmKCFiLmxlbmd0aClyZXR1cm4gYTt2YXIgYz17fTtyZXR1cm4gYS5jb25jYXQoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBjLmhhc093blByb3BlcnR5KGQpPyExOmNbZF09ITB9KX1mdW5jdGlvbiBIcihhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaChzcik/YToiX2djbCJ9ZnVuY3Rpb24gJHIoYSxiKXtpZihhKXt2YXIgYz17dmFsdWU6YSxxYTpuZXcgZXJ9O2ZyKGMucWEsYik7cmV0dXJuIGN9fQpmdW5jdGlvbiBhcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpO2lmKGImJighZnx8IWUpKXt2YXIgZz1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGcsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGcsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmKGU9PT12b2lkIDB8fGU9PT0iYXcifHxlPT09ImF3LmRzInx8WWYoOCkmJmU9PT0iYXcuZHYiKT9bZl06W119CmZ1bmN0aW9uIGJzKGEsYil7dmFyIGM9UmooYSksZD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGU9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJ3YnJhaWQiKTtmPSRiKGYpO3ZhciBnPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdicmFpZCIpLGg9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGw9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKTtpZihiJiYhKGQmJmUmJmYmJmcpKXt2YXIgbj1jLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Q9ZHx8SWoobiwiZ2NsaWQiLCExKTtlPWV8fElqKG4sImdjbHNyYyIsITEpO2Y9Znx8SWoobiwid2JyYWlkIiwhMSk7Zz1nfHxJaihuLCJnYnJhaWQiLCExKTtoPWh8fElqKG4sImdhZF9zb3VyY2UiLCExKX1yZXR1cm4gY3MoZCxlLGwsZixnLGgpfQpmdW5jdGlvbiBkcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpLGc9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKSxjPzQ6Mik7aWYoYiYmKCFlfHwhZikpe3ZhciBoPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooaCwiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooaCwiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiZlJiYoZT09PSJhdy5kcyJ8fGU9PT0iYXcuZHYifHxlPT09IjNwLmRzInx8ZT09PSJkcyIpP1tmXTpnP1tnXTpbXX1mdW5jdGlvbiBlcygpe3JldHVybiBicyhBLmxvY2F0aW9uLmhyZWYsITApfQpmdW5jdGlvbiBjcyhhLGIsYyxkLGUsZil7dmFyIGc9e30saD1mdW5jdGlvbihsLG4pe2dbbl18fChnW25dPVtdKTtnW25dLnB1c2gobCl9O2cuZ2NsaWQ9YTtnLmdjbHNyYz1iO2cuZGNsaWQ9YztpZihhIT09dm9pZCAwJiZhLm1hdGNoKHRyKSlzd2l0Y2goYil7Y2FzZSB2b2lkIDA6aChhLCJhdyIpO2JyZWFrO2Nhc2UgImF3LmRzIjpoKGEsImF3Iik7aChhLCJkYyIpO2JyZWFrO2Nhc2UgImF3LmR2IjpZZig4KSYmKGgoYSwiYXciKSxoKGEsImRjIikpO2JyZWFrO2Nhc2UgImRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiM3AuZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICJnZiI6aChhLCJnZiIpO2JyZWFrO2Nhc2UgImhhIjpoKGEsImhhIil9YyYmaChjLCJkYyIpO2QhPT12b2lkIDAmJnRyLnRlc3QoZCkmJihnLndicmFpZD1kLGgoZCwiZ2IiKSk7ZSE9PXZvaWQgMCYmdHIudGVzdChlKSYmKGcuZ2JyYWlkPWUsaChlLCJhZyIpKTtmIT09dm9pZCAwJiZ0ci50ZXN0KGYpJiYoZy5nYWRfc291cmNlPQpmLGgoZiwiZ3MiKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZnMoKXtmb3IodmFyIGE9ZXMoKSxiPSEwLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpaWYoYVtkLnZhbHVlXSE9PXZvaWQgMCl7Yj0hMTticmVha31iJiYoYT1icyhBLmRvY3VtZW50LnJlZmVycmVyLCExKSxhLmdhZF9zb3VyY2U9dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBncyhhKXt2YXIgYj1mcygpO2hzKGIsITEsYSl9CmZ1bmN0aW9uIGlzKGEpe3ZhciBiPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7Yi5sZW5ndGh8fChiPWFzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTthPWF8fHt9O2pzKGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1iWzBdLGQ9TmIoKSxlPXVxKGEsZCwhMCksZj1BcigpLGc9ZnVuY3Rpb24oKXtCcihmKSYmZS5leHBpcmVzIT09dm9pZCAwJiZrcigiZ2NsaWQiLHt2YWx1ZTp7dmFsdWU6Yy52YWx1ZSxjcmVhdGlvblRpbWVNczpkLGxpbmtEZWNvcmF0aW9uU291cmNlczpjLnFhLmdldCgpfSxleHBpcmVzOk51bWJlcihlLmV4cGlyZXMpfSl9O0hsKGZ1bmN0aW9uKCl7ZygpO0JyKGYpfHxJbChnLGYpfSxmKX19CmZ1bmN0aW9uIGpzKGEpe3ZhciBiPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjtpZih5ci50ZXN0KGIpfHx6ci50ZXN0KGIpfHxrcygpKXt2YXIgYzthOntmb3IodmFyIGQ9UmooQS5sb2NhdGlvbi5ocmVmKSxlPUpqKExqKGQsInF1ZXJ5IikpLGY9bShPYmplY3Qua2V5cyhlKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoIXJyW2hdKXt2YXIgbD1lW2hdWzBdfHwiIixuO2lmKCFsfHxsLmxlbmd0aDw1MHx8bC5sZW5ndGg+MjAwKW49ITE7ZWxzZXt2YXIgcD1ncihsKSxxO2lmKHApYzp7dmFyIHI9cDtpZihyJiZyLmxlbmd0aCE9PTApe3ZhciB0PTA7dHJ5e2Zvcih2YXIgdT0xMDt0PHIubGVuZ3RoJiYhKHUtLTw9MCk7KXt2YXIgdj1ocihyLHQpO2lmKHY9PT12b2lkIDApYnJlYWs7dmFyIHg9bSh2KSx5PXgubmV4dCgpLnZhbHVlLHo9eC5uZXh0KCkudmFsdWUsQz15LEQ9eixJPUMmNztpZihDPj4zPT09MTYzODIpe2lmKEkhPT0KMClicmVhazt2YXIgRz1ocihyLEQpO2lmKEc9PT12b2lkIDApYnJlYWs7cT1tKEcpLm5leHQoKS52YWx1ZT09PTE7YnJlYWsgY312YXIgTjtkOnt2YXIgUz12b2lkIDAsVz1yLGVhPUQ7c3dpdGNoKEkpe2Nhc2UgMDpOPShTPWhyKFcsZWEpKT09bnVsbD92b2lkIDA6U1sxXTticmVhayBkO2Nhc2UgMTpOPWVhKzg7YnJlYWsgZDtjYXNlIDI6dmFyIGphPWhyKFcsZWEpO2lmKGphPT09dm9pZCAwKWJyZWFrO3ZhciBmYT1tKGphKSxzYT1mYS5uZXh0KCkudmFsdWU7Tj1mYS5uZXh0KCkudmFsdWUrc2E7YnJlYWsgZDtjYXNlIDU6Tj1lYSs0O2JyZWFrIGR9Tj12b2lkIDB9aWYoTj09PXZvaWQgMHx8Tj5yLmxlbmd0aHx8Tjw9dClicmVhazt0PU59fWNhdGNoKG1hKXt9fXE9ITF9ZWxzZSBxPSExO249cX1pZihuKXtjPWw7YnJlYWsgYX19fWM9dm9pZCAwfXZhciBkYT1jO2RhJiZscygiZ2NsX2F3IixkYSw3LGEpfX0KZnVuY3Rpb24gbHMoYSxiLGMsZCl7bXMoYSxbe3ZlcnNpb246IiIsZ2NsaWQ6Yix0aW1lc3RhbXA6TmIoKSxxYTpUcihjKX1dLGQpfQpmdW5jdGlvbiBtcyhhLGIsYyl7Yz1jfHx7fTt2YXIgZD1BcigpLGU9ZnVuY3Rpb24oKXtpZihCcihkKSYmYi5sZW5ndGg+MCl7dmFyIGY9VXIoYSl8fFtdO2IuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaD11cShjLGcudGltZXN0YW1wLCEwKTtoLmV4cGlyZXMhPT12b2lkIDAmJlFyKGYse3ZlcnNpb246IiIsZ2NsaWQ6Zy5nY2xpZCx0aW1lc3RhbXA6Zy50aW1lc3RhbXAsZXhwaXJlczpOdW1iZXIoaC5leHBpcmVzKSxxYTpnLnFhLGxhYmVsczpnLmxhYmVsc30sITApfSk7Zi5sZW5ndGgmJmtyKGEsZi5tYXAoZnVuY3Rpb24oZyl7dmFyIGg9e3ZhbHVlOmcuZ2NsaWQsY3JlYXRpb25UaW1lTXM6Zy50aW1lc3RhbXAsbGlua0RlY29yYXRpb25Tb3VyY2VzOmcucWE/Zy5xYS5nZXQoKTowfSxsO2lmKChsPWcubGFiZWxzKT09bnVsbD8wOmwubGVuZ3RoKWgubGFiZWxzPWcubGFiZWxzO3JldHVybnt2YWx1ZTpoLGV4cGlyZXM6TnVtYmVyKGcuZXhwaXJlcyl9fSkpfX07SGwoZnVuY3Rpb24oKXtCcihkKT8KZSgpOklsKGUsZCl9LGQpfQpmdW5jdGlvbiBocyhhLGIsYyxkLGUpe2M9Y3x8e307ZT1lfHxbXTt2YXIgZj1IcihjLnByZWZpeCksZz1kfHxOYigpLGg9TWF0aC5yb3VuZChnLzFFMyksbD1BcigpLG49ITEscD0hMSxxPVlmKDkpLHI9ZnVuY3Rpb24oKXtpZihCcihsKSl7dmFyIHQ9dXEoYyxnLCEwKTt0Lk1jPWw7Zm9yKHZhciB1PWZ1bmN0aW9uKFcsZWEpe3ZhciBqYT1JcihXLGYpO2phJiYob3EoamEsZWEsdCksVyE9PSJnYiImJihuPSEwKSl9LHY9ZnVuY3Rpb24oVyl7dmFyIGVhPVsiR0NMIixoLFddO2UubGVuZ3RoPjAmJmVhLnB1c2goZS5qb2luKCIuIikpO3JldHVybiBlYS5qb2luKCIuIil9LHg9bShbImF3IiwiZGMiLCJnZiIsImhhIiwiZ3AiXSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7YVt6XSYmdSh6LHYoYVt6XVswXSkpfWlmKCghbnx8cSkmJmEuZ2Ipe3ZhciBDPWEuZ2JbMF0sRD1JcigiZ2IiLGYpOyFiJiZFcihEKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09QyYmClcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pfHx1KCJnYiIsdihDKSl9fWlmKCFwJiZhLmdicmFpZCYmQnIoImFkX3N0b3JhZ2UiKSYmKHA9ITAsIW58fHEpKXt2YXIgST1hLmdicmFpZCxHPUlyKCJhZyIsZik7aWYoYnx8IUpyKEcpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1JJiZXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KSl7dmFyIE49e30sUz0oTi5rPUksTi5pPSIiK2gsTi5iPWUsTik7QXEoRyxTLDUsYyxnKX19bnMoYSxmLGcsYyl9O0hsKGZ1bmN0aW9uKCl7cigpO0JyKGwpfHxJbChyLGwpfSxsKX0KZnVuY3Rpb24gbnMoYSxiLGMsZCl7aWYoYS5nYWRfc291cmNlIT09dm9pZCAwJiZCcigiYWRfc3RvcmFnZSIpKXt2YXIgZT1xZCgpO2lmKGUhPT0iciImJmUhPT0iaCIpe3ZhciBmPWEuZ2FkX3NvdXJjZSxnPUlyKCJncyIsYik7aWYoZyl7dmFyIGg9TWF0aC5mbG9vcigoTmIoKS0ocGQoKXx8MCkpLzFFMyksbCxuPWlyKCkscD17fTtsPShwLms9ZixwLmk9IiIraCxwLnU9bixwKTtBcShnLGwsNSxkLGMpfX19fWZ1bmN0aW9uIG9zKGEsYixjKXtmb3IodmFyIGQ9d3EoYixjKSxlPTA7ZTxkLmxlbmd0aDsrK2UpaWYoTnIoZFtlXSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gcHMoYSl7dmFyIGI9cXMsYz1ycyhhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWNbZ107aWYoaCl7dmFyIGw9TWF0aC5taW4oc3MoaCksTmIoKSksbj11cShhLGwsITApO24uTWM9QXIoKTt2YXIgcD1JcihnLGQpO3AmJm9xKHAsaCxuKX19dmFyIHE9VXEoITApO2hzKGNzKHEuZ2NsaWQscS5nY2xzcmMpLCExLGEpfSxBcigpKX0KZnVuY3Rpb24gcnMoYSl7dmFyIGI9VXEoITApLGM9SHIoYSksZD17fSxlO2ZvcihlIGluIHhyKWlmKHhyLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1lLGc9SXIoZixjKTtpZihnIT09dm9pZCAwKXt2YXIgaD1iW2ddO2lmKGgpe3ZhciBsPXNzKGgpLG47YTp7Zm9yKHZhciBwPU1hdGgubWluKGwsTmIoKSl8fE5iKCkscT1jcShnLEIuY29va2llLHZvaWQgMCxBcigpKSxyPTA7cjxxLmxlbmd0aDsrK3IpaWYoc3MocVtyXSk+cCl7bj0hMDticmVhayBhfW49ITF9bnx8KGRbZl09aCl9fX1yZXR1cm4gZH0KZnVuY3Rpb24gdHMoYSl7dmFyIGI9WyJhZyJdLGM9VXEoITApLGQ9SHIoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoZil7dmFyIGc9Y1tmXTtpZihnKXt2YXIgaD0kcChnLDUpO2lmKGgpe3ZhciBsPU5yKGgpO2x8fChsPU5iKCkpO2lmKG9zKGwsZiw1KSlicmVhaztoLmk9IiIrTWF0aC5yb3VuZChsLzFFMyk7QXEoZixoLDUsYSxsKX19fX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiBJcihhLGIpe3ZhciBjPXhyW2FdO2lmKGMhPT12b2lkIDApcmV0dXJuIGIrY31mdW5jdGlvbiBzcyhhKXtyZXR1cm4gVnIoYS5zcGxpdCgiLiIpKS5sZW5ndGghPT0wPyhOdW1iZXIoYS5zcGxpdCgiLiIpWzFdKXx8MCkqMUUzOjB9ZnVuY3Rpb24gTnIoYSl7cmV0dXJuIGE/KE51bWJlcihhLmkpfHwwKSoxRTM6MH0KZnVuY3Rpb24gVnIoYSl7cmV0dXJuIGEubGVuZ3RoPDN8fGFbMF0hPT0iR0NMIiYmYVswXSE9PSIxInx8IS9eXGQrJC8udGVzdChhWzFdKXx8IXRyLnRlc3QoYVsyXSk/W106YX1mdW5jdGlvbiB1cyhhLGIsYyxkKXt2YXIgZT1xcztpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYobil7dmFyIHA9Y3EobixCLmNvb2tpZSx2b2lkIDAsQXIoKSk7cC5sZW5ndGgmJihoW25dPXAuc29ydCgpW3AubGVuZ3RoLTFdKX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gdnMoYSxiLGMpe3ZhciBkPXFzO2lmKFlmKDEzKSYmQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPXt9LGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIGg9dnJbZFtnXV07aWYoaCl7dmFyIGw9Y3EoaCxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aWYobC5sZW5ndGgpe2Zvcih2YXIgbj12b2lkIDAscD0wLHE9bShsKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PSRwKHQsNCk7aWYodSYmKHUubT09PSIxInx8WWYoMTYpKSl7dmFyIHY9TnIodSk7dj49cCYmKHA9dixuPXQpfX1uJiYoZltoXT1uKX19fXJldHVybiBmfTtDcihmdW5jdGlvbigpe2FyKGUsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHdzKGEsYixjLGQpe2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1bImFnIl0sZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZighbilyZXR1cm57fTt2YXIgcD13cShuLDUpO2lmKHAubGVuZ3RoKXt2YXIgcT1wLnNvcnQoZnVuY3Rpb24ocix0KXtyZXR1cm4gTnIodCktTnIocil9KVswXTtoW25dPWFxKHEsNSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxbImFkX3N0b3JhZ2UiXSl9fWZ1bmN0aW9uIFJyKGEpe3JldHVybiBhLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHIudGVzdChiLmdjbGlkKX0pfQpmdW5jdGlvbiB4cyhhLGIpe2lmKFNwKEEpKXtmb3IodmFyIGM9SHIoYi5wcmVmaXgpLGQ9e30sZT0wO2U8YS5sZW5ndGg7ZSsrKXhyW2FbZV1dJiYoZFthW2VdXT14clthW2VdXSk7Q3IoZnVuY3Rpb24oKXtHYihkLGZ1bmN0aW9uKGYsZyl7dmFyIGg9Y3EoYytnLEIuY29va2llLHZvaWQgMCxBcigpKTtoLnNvcnQoZnVuY3Rpb24odCx1KXtyZXR1cm4gc3ModSktc3ModCl9KTtpZihoLmxlbmd0aCl7dmFyIGw9aFswXSxuPXNzKGwpLHA9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKS5zbGljZSgzKTpbXSxxPXt9LHI7cj1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpWzJdOnZvaWQgMDtxW2ZdPVtyXTtocyhxLCEwLGIsbixwKX19KX0sQXIoKSl9fQpmdW5jdGlvbiB5cyhhKXt2YXIgYj1bImFnIl0sYz1bImdicmFpZCJdO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoIWYpYnJlYWs7dmFyIGc9d3EoZiw1KTtpZihnLmxlbmd0aCl7dmFyIGg9Zy5zb3J0KGZ1bmN0aW9uKHEscil7cmV0dXJuIE5yKHIpLU5yKHEpfSlbMF0sbD1OcihoKSxuPWguYixwPXt9O3BbY1tlXV09aC5rO2hzKHAsITAsYSxsLG4pfX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiB6cyhhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWlmKGFbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIEFzKGEpe2Z1bmN0aW9uIGIoaCxsLG4pe24mJihoW2xdPW4pfWlmKEVsKCkpe3ZhciBjPWVzKCksZDthLmluY2x1ZGVzKCJnYWRfc291cmNlIikmJihkPWMuZ2FkX3NvdXJjZSE9PXZvaWQgMD9jLmdhZF9zb3VyY2U6VXEoITEpLl9ncyk7aWYoenMoYyxhKXx8ZCl7dmFyIGU9e307YihlLCJnY2xpZCIsYy5nY2xpZCk7YihlLCJkY2xpZCIsYy5kY2xpZCk7YihlLCJnY2xzcmMiLGMuZ2Nsc3JjKTtiKGUsIndicmFpZCIsYy53YnJhaWQpO2IoZSwiZ2JyYWlkIixjLmdicmFpZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZX0sMyk7dmFyIGY9e30sZz0oZi5fdXA9IjEiLGYpO2IoZywiX2dzIixkKTticihmdW5jdGlvbigpe3JldHVybiBnfSwxKX19fWZ1bmN0aW9uIGtzKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gTGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpfQpmdW5jdGlvbiBCcyhhKXtpZighWWYoMSkpcmV0dXJuIG51bGw7dmFyIGI9VXEoITApLmdhZF9zb3VyY2U7aWYoYiE9bnVsbClyZXR1cm4gQS5sb2NhdGlvbi5oYXNoPSIiLGI7aWYoWWYoMikpe2I9a3MoKTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPWVzKCk7aWYoenMoYyxhKSlyZXR1cm4iMCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3MoYSl7dmFyIGI9QnMoYSk7YiE9bnVsbCYmYnIoZnVuY3Rpb24oKXt2YXIgYz17fTtyZXR1cm4gYy5nYWRfc291cmNlPWIsY30sNCl9CmZ1bmN0aW9uIERzKGEsYixjKXt2YXIgZD1bXTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGQ7Zm9yKHZhciBlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXSxoPWcuemc/Zy56ZzoiZ2NsIjtpZigoZy5sYWJlbHN8fFtdKS5pbmRleE9mKGMpPT09LTEpe2EucHVzaCgwKTt2YXIgbD0hMSxuPXZvaWQgMDtpZigobj1nLm9hKT09bnVsbD8wOm4uaW5jbHVkZXMoMikpbD0hMDt2YXIgcD12b2lkIDA7KChwPWcub2EpPT1udWxsPzA6cC5pbmNsdWRlcygxKSkmJiFlW2hdJiYobD0hMCxlW2hdPSEwKTtsJiZkLnB1c2goZyl9ZWxzZXthLnB1c2goMSk7dmFyIHE9dm9pZCAwO2lmKChxPWcub2EpPT1udWxsPzA6cS5pbmNsdWRlcygxKSllW2hdPSEwfX1yZXR1cm4gZH0KZnVuY3Rpb24gRXMoYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZj1bXTtjPWN8fHt9O2lmKCFCcihBcigpKSlyZXR1cm4gZjt2YXIgZz1FcihhLGUpLGg9RHMoZixnLGIpO2lmKGgubGVuZ3RoJiYhZCl7Zm9yKHZhciBsPVtdLG49ITEscD1tKGgpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlLHQ9cix1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej0odC5sYWJlbHN8fFtdKS5jb25jYXQoW2JdKSxDPXZvaWQgMDtpZigoKEM9eSk9PW51bGw/MDpDLmluY2x1ZGVzKDEpKSYmIW4pe3ZhciBEPVt1LE1hdGgucm91bmQoeC8xRTMpLHZdLmNvbmNhdCh6KS5qb2luKCIuIiksST11cShjLHgsITApO0kuTWM9QXIoKTtvcShhLEQsSSk7bj0hMH12YXIgRz12b2lkIDA7ZSYmKChHPXkpPT1udWxsPzA6Ry5pbmNsdWRlcygyKSkmJmwucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHIse2xhYmVsczp6fSkpfWwubGVuZ3RoJiYKbXMoImdjbF9nYiIsbCxjKX1yZXR1cm4gZn0KZnVuY3Rpb24gRnMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBkPVtdO2I9Ynx8e307dmFyIGU9R3IoYixjKSxmPURzKGQsZSxhKTtpZihmLmxlbmd0aCl7Zm9yKHZhciBnPVtdLGg9e30sbD1tKGYpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlLHE9SHIoYi5wcmVmaXgpLHI9SXIocC56ZyxxKTtpZighcilyZXR1cm4gZDt2YXIgdD1wLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PU1hdGgucm91bmQoeC8xRTMpLEM9THIodC5sYWJlbHN8fFtdLFthXSksRD12b2lkIDA7aWYoKEQ9eSk9PW51bGw/MDpELmluY2x1ZGVzKDEpKWlmKHAuemc9PT0iYWciJiYhaC5hZyl7dmFyIEk9e30sRz0oSS5rPXYsSS5pPSIiK3osSS5iPUMsSSk7QXEocixHLDUsYix4KTtoLmFnPSEwfWVsc2UgaWYocC56Zz09PSJnYiImJiFoLmdiKXt2YXIgTj1bdSx6LHZdLmNvbmNhdChDKS5qb2luKCIuIiksUz11cShiLHgsITApO1MuTWM9CkFyKCk7b3EocixOLFMpO2guZ2I9ITB9dmFyIFc9dm9pZCAwO2MmJigoVz15KT09bnVsbD8wOlcuaW5jbHVkZXMoMikpJiZnLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxwLHtsYWJlbHM6Q30pKX1nLmxlbmd0aCYmbXMoImdjbF9nYiIsZyxiKX1yZXR1cm4gZH1mdW5jdGlvbiBHcyhhLGIpe3ZhciBjPUhyKGIpLGQ9SXIoYSxjKTtpZighZClyZXR1cm4gMDt2YXIgZTtlPWE9PT0iYWciP0pyKGQpOkVyKGQpO2Zvcih2YXIgZj0wLGc9MDtnPGUubGVuZ3RoO2crKylmPU1hdGgubWF4KGYsZVtnXS50aW1lc3RhbXApO3JldHVybiBmfWZ1bmN0aW9uIEhzKGEpe2Zvcih2YXIgYj0wLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZm9yKHZhciBlPWFbZC52YWx1ZV0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWI9TWF0aC5tYXgoYixOdW1iZXIoZVtmXS50aW1lc3RhbXApKTtyZXR1cm4gYn0KZnVuY3Rpb24gSXMoYSl7dmFyIGI9TWF0aC5tYXgoR3MoImF3IixhKSxIcyhCcihBcigpKT9ScCgpOnt9KSksYz1NYXRoLm1heChHcygiZ2IiLGEpLEhzKEJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30pKTtjPU1hdGgubWF4KGMsR3MoImFnIixhKSk7cmV0dXJuIGM+Yn07dmFyIEpzPVJlZ0V4cCgiXlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSooPzolM0JVQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKSokIiksS3M9L15+P1tcdy1dKyg/Olwufj9bXHctXSspKiQvLExzPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLyxNcz0vO2dhYz0oW147P10rKS8sTnM9LztnYWNnYj0oW147P10rKS87CmZ1bmN0aW9uIE9zKGEsYil7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgYz1CLmxvY2F0aW9uLmhyZWYubWF0Y2goYik7cmV0dXJuIGMmJmMubGVuZ3RoPT09MiYmY1sxXS5tYXRjaChKcyk/S2ooY1sxXSl8fCIiOiIifWZvcih2YXIgZD1bXSxlPW0oT2JqZWN0LmtleXMoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZSxoPVtdLGw9YVtnXSxuPTA7bjxsLmxlbmd0aDtuKyspaC5wdXNoKGxbbl0uZ2NsaWQpO2QucHVzaChnKyI6IitoLmpvaW4oIiwiKSl9cmV0dXJuIGQubGVuZ3RoPjA/ZC5qb2luKCI7Iik6IiJ9CmZ1bmN0aW9uIFBzKGEsYixjKXtmb3IodmFyIGQ9QnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSxlPVtdLGY9ITEsZz1tKE9iamVjdC5rZXlzKGQpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPUVzKCJfZ2FjX2diXyIrbCxhLGIsYyk7Zj1mfHxuLmxlbmd0aCE9PTAmJm4uc29tZShmdW5jdGlvbihwKXtyZXR1cm4gcD09PTF9KTtlLnB1c2gobCsiOiIrbi5qb2luKCIsIikpfXJldHVybntScjpmP2Uuam9pbigiOyIpOiIiLFFyOk9zKGQsTnMpfX1mdW5jdGlvbiBRcyhhKXt2YXIgYj1CLmxvY2F0aW9uLmhyZWYubWF0Y2gobmV3IFJlZ0V4cCgiOyIrYSsiPShbXjs/XSspIikpO3JldHVybiBiJiZiLmxlbmd0aD09PTImJmJbMV0ubWF0Y2goS3MpP2JbMV06dm9pZCAwfQpmdW5jdGlvbiBScyhhKXt2YXIgYj17fSxjLGQsZTtMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkmJihjPVFzKCJnY2xncyIpLGQ9UXMoImdjbHN0IiksZT1RcygiZ2NsbHAiKSk7aWYoYyYmZCYmZSliLkVnPWMsYi5XaD1kLGIuVWg9ZTtlbHNle3ZhciBmPU5iKCksZz1NcigoYXx8Il9nY2wiKSsiX2dzIiksaD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5nY2xpZH0pLGw9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGYtcC50aW1lc3RhbXB9KSxuPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm9kfSk7aC5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmbi5sZW5ndGg+MCYmKGIuRWc9aC5qb2luKCIuIiksYi5XaD1sLmpvaW4oIi4iKSxiLlVoPW4uam9pbigiLiIpKX1yZXR1cm4gYn0KZnVuY3Rpb24gU3MoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1iP2Iuc3BsaXQoIi4iKTpbXSxlPWQubGVuZ3RoPT09Yy5sZW5ndGg/ZDp2b2lkIDA7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGYsZyl7dmFyIGg9e2djbGlkOmZ9O2lmKGUpe3ZhciBsPWVbZ10uc3BsaXQoIl8iKTtpZihsLmxlbmd0aD09PTIpe2gucWE9bmV3IGVyKE51bWJlcihsWzBdKSk7dmFyIG47dmFyIHA9TnVtYmVyKGxbMV0pO2lmKHA9PT0wKW49WzBdO2Vsc2V7dmFyIHE9W107cCYxJiZxLnB1c2goMSk7cCYyJiZxLnB1c2goMik7cCY0JiZxLnB1c2goMyk7cCY4JiZxLnB1c2goNCk7cCYxNiYmcS5wdXNoKDUpO249cX1oLm9hPW59fXJldHVybiBofSl9CmZ1bmN0aW9uIFRzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9UXMoYyk7aWYoZSl7aWYoWWYoMTcpKXt2YXIgZj1RcyhjKyJfc3JjIik7cmV0dXJuIFNzKGUsZil9aWYoZCl7dmFyIGc9bmV3IGVyO2ZyKGcsMik7ZnIoZywzKTtyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpnLG9hOlsxXX19KX1yZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpuZXcgZXIsb2E6WzFdfX0pfX1lbHNle2lmKGI9PT0iZ2NsaWQiKXtmb3IodmFyIGg9RXIoKGF8fCJfZ2NsIikrIl9hdyIsZCksbD1OdW1iZXIoWGZbNF09PT12b2lkIDA/MDpYZls0XSksbj1tKFVzKCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3EudGltZXN0YW1wPmwmJlFyKGgscSl9cmV0dXJuIGh9aWYoYj09PSJ3YnJhaWQiKXJldHVybiBFcigoYXx8CiJfZ2NsIikrIl9nYiIsZCk7aWYoYj09PSJicmFpZHMiKXJldHVybiBHcih7cHJlZml4OmF9LGQpfXJldHVybltdfWZ1bmN0aW9uIFVzKCl7cmV0dXJuKHdxKHZyLmF3LDQpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm09PT0iMSJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJue2djbGlkOmEuayx0aW1lc3RhbXA6TnVtYmVyKGEuaSksdmVyc2lvbjoiIixvYTpbNV19fSl9ZnVuY3Rpb24gVnMoYSl7Zm9yKHZhciBiPTAsYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2U+MCYmKGJ8PTE8PGUtMSl9cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBXcyhhKXtyZXR1cm4gTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpPyEoUXMoImdjbGF3Iil8fFFzKCJnYWMiKSk6SXMoYSl9CmZ1bmN0aW9uIFhzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlO2U9Yz9GcyhhLGIsZCk6RXMoKGImJmIucHJlZml4fHwiX2djbCIpKyJfZ2IiLGEsYix2b2lkIDAsZCk7cmV0dXJuIGUubGVuZ3RoPT09MHx8ZS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZj09PTB9KT8iIjplLmpvaW4oIi4iKX07CnZhciBZcz1mdW5jdGlvbihhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1raigiYWRzX3BhZ2V2aWV3IixmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoY1thXSlyZXR1cm4hMTtifHwoY1thXT0hMCk7cmV0dXJuITB9LFpzPWZ1bmN0aW9uKGEpe3JldHVybiBTaihhLCJnY2xpZCBkY2xpZCBnYnJhaWQgd2JyYWlkIGdjbGF3IGdjbGRjIGdjbGhhIGdjbGdmIGdjbGdiIF9nbCIuc3BsaXQoIiAiKSwiMCIpfSxhdD1mdW5jdGlvbigpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZiksYj12b2lkIDAsYz12b2lkIDAsZD1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksZT1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfY2FtcGFpZ25pZCIpLGYsZz1hLmhhc2gucmVwbGFjZSgiIyIsIiIpLm1hdGNoKCRzKTtmPWc/Z1sxXTp2b2lkIDA7ZCYmZj8oYj1kLGM9MSk6ZD8oYj1kLGM9Mik6ZiYmKGI9ZixjPTMpO3JldHVybntEZzpiLFNyOmMsVGg6ZX19LGJ0PWZ1bmN0aW9uKGEpe3ZhciBiPQpPcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmO3JldHVybiBhKGIpfSxjdD1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZD1ScihkKTtmb3IodmFyIGU9W10sZj0wO2Y8ZC5sZW5ndGg7ZisrKWUucHVzaChkW2ZdLmdjbGlkKTtlLmxlbmd0aCYmYi5wdXNoKGMrIjoiK2Uuam9pbigiLCIpKX0pO3JldHVybiBiLmpvaW4oIjsiKX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWR0KGEpO2lmKGQpcmV0dXJuIGQ7dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnPVtdO2E9PT0iYXciP2c9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTphPT09ImRjIiYmKGc9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKSk7aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9be3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6IjAifV06Zy5tYXAoZnVuY3Rpb24obCl7cmV0dXJue3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsCmdjbGlkOmwudmFsdWUscWE6bC5xYSxvYTpbMV19fSl9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9hPT09ImF3Ij9FcihoLE0oNTYyKSk6WnIoaCk6W119LGR0PWZ1bmN0aW9uKGEpe3ZhciBiPVRqKCJnY2wiK2EpLGM9YT09PSJkYyJ8fGE9PT0iYXciP1RqKCJnY2wiK2ErIl9zcmMiKTp2b2lkIDA7aWYoYilyZXR1cm4gU3MoYixjKX0sZnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PT0iYXcifHxhPT09ImRjInx8YT09PSJnYiIpe3ZhciBkPVRqKCJnY2wiK2EpO2lmKGQpcmV0dXJuIGQuc3BsaXQoIi4iKX12YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc7Zz1lcygpW2FdfHxbXTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1siMCJdOmd9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9EcihoKTpbXX0sZ3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFSKGEsYil8fCFSKGEsYykpcmV0dXJuIiI7dmFyIGQ9UihhLGIpLnNwbGl0KCIuIiksZT1SKGEsYykuc3BsaXQoIi4iKTtyZXR1cm4gZC5sZW5ndGgmJgplLmxlbmd0aCYmZC5sZW5ndGg9PT1lLmxlbmd0aCYmZFswXSYmZVswXT9kLm1hcChmdW5jdGlvbihmLGcpe3JldHVybiBmKyJfIitlW2ddfSkuam9pbigiLiIpOiIifSwkcz0vXmdhZF9zb3VyY2VbXz1dKFxkKykkLztmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9Owp2YXIgZnU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1SKGEsZSksZz1RKGEsSC5KLlllKTtNKDU4OSkmJmcmJihlPT09Ri5ELnphfHxlPT09Ri5ELlVhfHxlPT09Ri5ELlBlKSYmdHlwZW9mIGY9PT0ic3RyaW5nIiYmKGY9WnMoZikpO3ZhciBoPW9wKGUsZik7aCYmKCFnfHxlIT09Ri5ELkRkJiZlIT09Ri5ELktkJiZlIT09Ri5ELkVlJiZlIT09Ri5ELkJmfHwoaC52YWx1ZT0iMCIpLE0oNTA0KSYmKGU9PT1GLkQuTWQ/aC5rZXk9ImV2bmlkIjplPT09Ri5ELk5kJiYoaC5rZXk9ImV4Y2lkIikpLGJbaC5rZXldPWgudmFsdWUpfWIuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO1R0KCkmJihiLmdjcz1iLmdjc3x8VXQoKSk7Yi5nY2Q9Yi5nY2R8fFl0KGEuTSk7YXUoKSYmKGIuZG1hX2Nwcz1adCgpKTtiLmRtYT0kdCgpO3Z0KEV0KCkpJiYKKGIudGNmZD1idSgpKTt2YXIgbD1DcChhKTtsJiYoYi50YWdfZXhwPWwpO2lmKFEoYSxILkouQmspKXtiLnRmdD1TdHJpbmcoTmIoKSk7dmFyIG49cGQoKTtuIT09dm9pZCAwJiYoYi50ZmQ9U3RyaW5nKE1hdGgucm91bmQobikpKX1iLmFwdmU9IjEiO2IuYXB2Zj1uZCgpPyJmIjoibmYiO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGIubGltaXRlZF9hZHM9IjEiKTt2YXIgcD1RKGEsSC5KLlhnKTtNKDQ3NCkmJnAhPW51bGwmJnAhPT0iIiYmKGIuX2dzaWQ9cCk7aHQoYSxiLGZ1bmN0aW9uKHEscil7YltxXT1lbmNvZGVVUklDb21wb25lbnQocil9KTtyZXR1cm4gYn07dmFyIGd1PWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5lbmRwb2ludD1hO3RoaXMuZmE9Yzt0aGlzLmphPWQ7dGhpcy5wYXJhbWV0ZXJFbmNvZGluZz1lO3RoaXMuWj1iLnNsaWNlKCl9O2d1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIFhvKHRoaXMuWil9O2d1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtndS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3ZhciBhPU1tW3RoaXMuZW5kcG9pbnRdKHZvaWQgMCk7cmV0dXJuIFNiKGEsImh0dHBzOi8vIik/YS5zdWJzdHJpbmcoOCk6U2IoYSwiaHR0cDovLyIpP2Euc3Vic3RyaW5nKDcpOmF9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMubWV0aG9kTmFtZT1hO3RoaXMuUj1ifTtodS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuaXNTdXBwb3J0ZWQoKSlpZigoYz09bnVsbD92b2lkIDA6Yy5ib2R5KT09PXZvaWQgMHx8dGhpcy5IKCkpdHJ5e3RoaXMuSyhhLGIsYyl9Y2F0Y2goZCl7YS5yZChkKX1lbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgZG9lcyBub3Qgc3VwcG9ydCBhIHJlcXVlc3QgYm9keS4iKTtlbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgaXMgbm90IHN1cHBvcnRlZC4iKX07dmFyIGl1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbWFnZVBpeGVsIiwzKX07d2EoaXUsaHUpO2l1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtpdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTsKaXUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe1pjKGIsZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKCl7YS5vbkZhaWx1cmUodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBqdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiU2VuZEJlYWNvbiIsMSl9O3dhKGp1LGh1KTtqdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2QoKX07anUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07anUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2pkKGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5KT9hLmpmKCk6YS5yZCh2b2lkIDApfTt2YXIga3U9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkZldGNoIiwxKX07d2Eoa3UsaHUpO2t1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07a3UucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Cmt1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtBLmZldGNoKGIsYz09bnVsbD92b2lkIDA6Yy5HYikudGhlbihmdW5jdGlvbihkKXtpZihkLm9rKWEucGUoZCk7ZWxzZSBpZihkLnN0YXR1cz09PTApYS5qZigpO2Vsc2UgYS5vbkZhaWx1cmUoIkZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZC5zdGF0dXMrIi4iKX0pLmNhdGNoKGZ1bmN0aW9uKGQpe2EucmQoZCl9KX07dmFyIGx1PW5ldyBpdSxtdT1uZXcganUsbnU9bmV3IGt1O3ZhciBvdT1mdW5jdGlvbigpe307b3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm5bXX07CnZhciBwdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTpiO2d1LmNhbGwodGhpcyxhLGIsMSwhMCwyKX07d2EocHUsZ3UpO3B1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKHRoaXMuWi5sZW5ndGgpe3ZhciBiPVEoYSxILkouRGspO2lmKGIhPT12b2lkIDApcmV0dXJuIGJ9cmV0dXJuIGd1LnByb3RvdHlwZS5LLmNhbGwodGhpcyxhKX07cHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKTthLnRhcmdldC5kZXN0aW5hdGlvbklkJiYoYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCk7Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT9jLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9jLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGMuZm10PSIzIik7cmV0dXJuIGN9O3B1LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTihhLGIpO3JldHVybiI/IitPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrCiI9IitjW2RdfSkuam9pbigiJiIpfTtwdS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy55YShhLGIpLGU9e307aWYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdSl7ZS5HYj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtpZih0aGlzLmVuZHBvaW50PT09NTh8fHRoaXMuZW5kcG9pbnQ9PT01NyllLkdiLm1ldGhvZD0iR0VUIjt0aGlzLmVuZHBvaW50IT09NDV8fHF1LksoYSl8fChlLkdiLmNyZWRlbnRpYWxzPSJvbWl0IixkKz0iJmdhcC51Y2ZiPTEiKX1jKGQsZSl9O3ZhciBxdT1uZXcgcHUoNDUpLHJ1PW5ldyBwdSg0NSxbXSksc3U9bmV3IHB1KDQ2LFtdKSx0dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw2OSl9O3dhKHR1LHB1KTt0dS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NzQpJiYoISFSKGEsIl9nc2lkIil8fCEhUShhLEguSi5YZykpLGM9UihhLEYuRC5IZCkhPT0iMSImJighIVIoYSwiZ2NsaWQiKXx8CiEhUihhLCJkY2xpZCIpfHwhIVIoYSwiZ2Nsc3JjIil8fCEhUihhLCJhdWlkIikpO3JldHVybiBifHxjfTt0dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpLGQ9bHAoYSxjKXx8e307T2JqZWN0LmtleXMoZCkubGVuZ3RoPjAmJihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2QuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2QuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoZC5mbXQ9IjMiKSk7cmV0dXJuIGR9O3ZhciB1dT1uZXcgdHUsdnU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNDUpfTt3YSh2dSxwdSk7dnUucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdCJ9O3Z1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7Y1siZ2FwLjFwZmIiXT0iMSI7cmV0dXJuIGN9O3ZhciB3dT1mdW5jdGlvbihhKXtwdS5jYWxsKHRoaXMsYSxbImFkX3N0b3JhZ2UiLAoiYWRfdXNlcl9kYXRhIl0pfTt3YSh3dSxwdSk7d3UucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtyZXR1cm4gaHAoYyl9O3ZhciB4dT1uZXcgd3UoNTgpLHl1PW5ldyB3dSg1NyksenU9ZnVuY3Rpb24oKXt9O3dhKHp1LG91KTt6dS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1xdS5LKGEpLGM9Yj9xdTpzdSxkPVt7ZW5kcG9pbnQ6YyxtZXRob2Q6bmQoKT9udTptdX0se2VuZHBvaW50OmMsbWV0aG9kOmx1fV07Yj9NKDUxNykmJklmKDQ3KSYmZC5wdXNoKHtlbmRwb2ludDpuZXcgdnUsbWV0aG9kOm51fSk6TSg2MDApJiZkLnB1c2goe2VuZHBvaW50OnJ1LG1ldGhvZDpudX0pO3JldHVybiBkfTt6dS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSEhUShhLEguSi52ZCksZD1SKGEsRi5ELlBkKT09PSIxIixlPVIoYSxGLkQuSGQpPT09IjEiLGY9cXUuSyhhKSxnPWMmJmQmJiFlJiZmO2lmKGcpe3ZhciBoPQpRYygpfHxPYygpP3h1Onl1O2IucHVzaChbe2VuZHBvaW50OmgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6aCxtZXRob2Q6bHV9XSl9ZiYmKGd8fFEoYSxILkouaGQpKSYmYi5wdXNoKFt7ZW5kcG9pbnQ6dXUsbWV0aG9kOm5kKCk/bnU6bHV9XSk7cmV0dXJuIGJ9O3ZhciBBdT1uZXcgenU7dmFyIFQ9e1c6e0prOjEsbmo6MixGazozLG1sOjQsR2s6NSx5ZDo2LGtsOjcsTXE6OCxxbjo5LEhrOjEwLElrOjExLEZoOjEyLERtOjEzLEFtOjE0LENtOjE1LHptOjE2LEJtOjE3LHltOjE4LFRvOjE5LHhxOjIwLHlxOjIxLGZqOjIyLHVuOjI0LE9tOjI1LFNrOjI2LFRrOjI3LFJrOjI4LFVrOjI5LHJqOjMwLE9rOjMxLFpvOjMyfX07VC5XW1QuVy5Ka109IkFMTE9XX0lOVEVSRVNUX0dST1VQUyI7VC5XW1QuVy5ual09IlNFUlZFUl9DT05UQUlORVJfVVJMIjtULldbVC5XLkZrXT0iQURTX0RBVEFfUkVEQUNUSU9OIjtULldbVC5XLm1sXT0iQ1VTVE9NRVJfTElGRVRJTUVfVkFMVUUiO1QuV1tULlcuR2tdPSJBTExPV19DVVNUT01fU0NSSVBUUyI7VC5XW1QuVy55ZF09IkFOWV9DT09LSUVfUEFSQU1TIjtULldbVC5XLmtsXT0iQ09PS0lFX0VYUElSRVMiO1QuV1tULlcuTXFdPSJMRUdBQ1lfRU5IQU5DRURfQ09OVkVSU0lPTl9KU19WQVJJQUJMRSI7VC5XW1QuVy5xbl09IlJFU1RSSUNURURfREFUQV9QUk9DRVNTSU5HIjsKVC5XW1QuVy5Ia109IkFMTE9XX0RJU1BMQVlfRkVBVFVSRVMiO1QuV1tULlcuSWtdPSJBTExPV19HT09HTEVfU0lHTkFMUyI7VC5XW1QuVy5GaF09IkdFTkVSQVRFRF9UUkFOU0FDVElPTl9JRCI7VC5XW1QuVy5EbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOS05PV04iO1QuV1tULlcuQW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9TVEFOREFSRCI7VC5XW1QuVy5DbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOSVFVRSI7VC5XW1QuVy56bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1BFUl9TRVNTSU9OIjtULldbVC5XLkJtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVFJBTlNBQ1RJT05TIjtULldbVC5XLnltXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfSVRFTVNfU09MRCI7VC5XW1QuVy5Ub109IkFEU19PR1RfVjFfVVNBR0UiO1QuV1tULlcueHFdPSJGT1JNX0lOVEVSQUNUSU9OX1BFUk1JU1NJT05fREVOSUVEIjsKVC5XW1QuVy55cV09IkZPUk1fU1VCTUlUX1BFUk1JU1NJT05fREVOSUVEIjtULldbVC5XLmZqXT0iTUlDUk9UQVNLX05PVF9TVVBQT1JURUQiO1QuV1tULlcudW5dPSJTRVRfRU5DUllQVEVEX0RBVEFfVE9fQ0FDSEUiO1QuV1tULlcuT21dPSJHRVRfRU5DUllQVEVEX0RBVEFfRlJPTV9DQUNIRSI7VC5XW1QuVy5Ta109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX05PX1BBUkFNIjtULldbVC5XLlRrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfUEFSQU0iO1QuV1tULlcuUmtdPSJDT05GSUdfQ09OU0VOVF9TRVRfQkVGT1JFIjtULldbVC5XLlVrXT0iQ09ORklHX1NFVF9VU0VEX0JFRk9SRSI7VC5XW1QuVy5yal09IlNIQURPV19ET01fQVVUT19QSUkiO1QuV1tULlcuT2tdPSJDQ0RfVVNFUl9EQVRBX1dFQl9PTl9DT05GSUciO1QuV1tULlcuWm9dPSJCTEVOREVEX1VTRVJfREFUQSI7dmFyIEJ1PXt9LEN1PShCdVtGLkQudWldPVQuVy5KayxCdVtGLkQuZGRdPVQuVy5uaixCdVtGLkQueWNdPVQuVy5uaixCdVtGLkQubWJdPVQuVy5GayxCdVtGLkQuR2VdPVQuVy5tbCxCdVtGLkQucmldPVQuVy5HayxCdVtGLkQuSmRdPVQuVy55ZCxCdVtGLkQubmJdPVQuVy55ZCxCdVtGLkQuTGJdPVQuVy55ZCxCdVtGLkQuSWRdPVQuVy55ZCxCdVtGLkQudmNdPVQuVy55ZCxCdVtGLkQuVGJdPVQuVy55ZCxCdVtGLkQuQ2JdPVQuVy5rbCxCdVtGLkQuV2JdPVQuVy5xbixCdVtGLkQuaGhdPVQuVy5IayxCdVtGLkQuU2NdPVQuVy5JayxCdSksRHU9e30sRXU9KER1LnVua25vd249VC5XLkRtLER1LnN0YW5kYXJkPVQuVy5BbSxEdS51bmlxdWU9VC5XLkNtLER1LnBlcl9zZXNzaW9uPVQuVy56bSxEdS50cmFuc2FjdGlvbnM9VC5XLkJtLER1Lml0ZW1zX3NvbGQ9VC5XLnltLER1KTt2YXIgRnU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3NiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsYik7YyYmKGEuSFtiXT0hMCl9LHZiPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1bXX07ZnVuY3Rpb24gR3UoYSl7RnUodmIsYSwhMSl9ZnVuY3Rpb24gSHUoYSxiKXt2YXIgYz1iPT09dm9pZCAwPyExOmIsZD12YjtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGU9T2JqZWN0LmtleXMoYSksZj1tKE9iamVjdC5rZXlzKEN1KSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5pbmNsdWRlcyhoKSYmRnUoZCxDdVtoXSxjKX19O2Z1bmN0aW9uIEl1KGEsYil7YT9hLnRoZW4oYik6Yih2b2lkIDApfWZ1bmN0aW9uIEp1KGEpe3JldHVybiBQcm9taXNlLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc3RhdHVzPT09ImZ1bGZpbGxlZCJ9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudmFsdWV9KX0pfWZ1bmN0aW9uIEt1KCl7dmFyIGEsYjtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe2E9YztiPWR9KSxyZXNvbHZlOmEscmVqZWN0OmJ9fTtmdW5jdGlvbiBMdShhLGIsYyxkLGUsZil7dmFyIGc9Yy5zbGljZSgpLGg7ZD09bnVsbHx8KGg9ZC51dik9PW51bGx8fGguY2FsbChkLGEsYixjLGUpO3ZhciBsPUt1KCksbj1sLnByb21pc2UscD1sLnJlc29sdmUscT1bXSxyPWZ1bmN0aW9uKCl7cChxKTt2YXIgdTtkPT1udWxsfHwodT1kLlJzKT09bnVsbHx8dS5jYWxsKGQsYSxiLGMsZSxxKX0sdD1mdW5jdGlvbigpe3ZhciB1PWcuc2hpZnQoKTt1P3UubWV0aG9kLmlzU3VwcG9ydGVkKCk/TXUoYSxiLHUuZW5kcG9pbnQsZCxxLHUubWV0aG9kLGUsZix0LHIpOnQoKTpyKCl9O3QoKTtyZXR1cm4gbn0KZnVuY3Rpb24gTXUoYSxiLGMsZCxlLGYsZyxoLGwsbil7dmFyIHA9Yy5SKGEpLHE9e3RrOmIsZW5kcG9pbnQ6Yyxpc1ByaW1hcnk6ZyxzYjp2b2lkIDAscGs6ZixqdDp7fX0scj0hMSx0PWZ1bmN0aW9uKHosQyl7aWYocilQKDE4Nyk7ZWxzZSBpZihyPSEwLCF1KXt2YXIgRD1DfHx7fSxJPUQuYm9keSxHPUQuR2IsTj1ELmFmO0M9T2JqZWN0LmZyZWV6ZShuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LEk/e2JvZHk6SX06e30sRz97R2I6R306e30sTj97YWY6Tn06e30pKTtpZihJJiYhZi5IKCkpeCgpLGwoKTtlbHNle3ZhciBTPU51KHopLFc9cFswXT09PSIvIj8iIitwK1M6Imh0dHBzOi8vIitwK1M7cS5zYj1XO3EuanQ9Qzt2YXIgZWE7ZD09bnVsbHx8KGVhPWQuU3MpPT1udWxsfHxlYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpKTt2YXIgamE9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLmVuZHBvaW50LApldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9O2YuUj09PXZvaWQgMHx8Yy5mYSE9PTImJihjLmZhIT09MXx8ZS5sZW5ndGgpfHxrbi5yZWdpc3RlcihqYSxmLlIsVyk7dmFyIGZhPWZ1bmN0aW9uKGRhLG1hKXt4KCk7aWYocS5zdGF0dXMhPT12b2lkIDApcmV0dXJuIFAoMTkyKSwhMTtxLnN0YXR1cz1kYTtlLnB1c2gocSk7dmFyIFBhO2Q9PW51bGx8fChQYT1kLnVvKT09bnVsbHx8UGEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSxtYSk7cmV0dXJuITB9LHNhPXtGbzpqYSxyZDpmdW5jdGlvbigpe2ZhKDIpJiZsKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2ZhKDMpJiZsKCl9LHBlOmZ1bmN0aW9uKGRhKXtmYShkYS5zdGF0dXM9PT0wPzE6ZGEub2s/MDozLGRhKSYmbigpfSxqZjpmdW5jdGlvbigpe2ZhKDEpJiZuKCl9fTtPdShjLGEsVyxTLEkpO2Yuc2VuZFJlcXVlc3Qoc2EsVyxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LAp7fSxJJiZ7Ym9keTpJfSxHJiZ7R2I6R30sTiYme2FmOk59KSl9fX0sdT0hMSx2LHg9ZnVuY3Rpb24oKXt2IT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQodiksdj12b2lkIDApfTtNKDU3NCkmJih2PUEuc2V0VGltZW91dChmdW5jdGlvbigpe3Y9dm9pZCAwO3U9ITA7aWYocS5zdGF0dXM9PT12b2lkIDApe3Euc3RhdHVzPTQ7cS5zYj09PXZvaWQgMCYmKHEuc2I9IltmYWlsZWQgdG8gYnVpbGRdICIrcCk7ZS5wdXNoKHEpO3ZhciB6O2Q9PW51bGx8fCh6PWQudW8pPT1udWxsfHx6LmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksdm9pZCAwKTtsKCl9fSw1RTMpKTt2YXIgeT17SWM6cCxtZXRob2Q6Zix5djplLGlzUHJpbWFyeTpnLEN0Omh9O3RyeXtjLkgoYSx5LHQpfWNhdGNoKHope3goKSxQKDE4OCksbCgpfX0KZnVuY3Rpb24gT3UoYSxiLGMsZCxlKXtpZihhLmphKXt2YXIgZj1iLnRhcmdldC5kZXN0aW5hdGlvbklkLGc9YS5lbmRwb2ludDtpZihnPT09NDV8fGc9PT00Nnx8Zz09PTY5fHxnPT09NTh8fGc9PT01Nyl7dmFyIGg9L1s/Jl10aWRzPShbXiZdKykvLmV4ZWMoZCk7Zj1oP2RlY29kZVVSSUNvbXBvbmVudChoWzFdKS5zcGxpdCgifiIpOltmXX1NbCh7dGFyZ2V0SWQ6ZixyZXF1ZXN0Om5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se3VybDpjLHBhcmFtZXRlckVuY29kaW5nOmEucGFyYW1ldGVyRW5jb2RpbmcsZW5kcG9pbnQ6YS5lbmRwb2ludH0sZT97cG9zdEJvZHk6ZX06e30pLHFiOntldmVudElkOmIuTS5ldmVudElkLHByaW9yaXR5SWQ6Yi5NLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fQpmdW5jdGlvbiBOdShhKXtyZXR1cm4gYSYmYSE9PSI/Ij9hWzBdIT09Ij8iPyI/Ii5jb25jYXQoYSk6YToiIn07ZnVuY3Rpb24gUHUoYSxiLGMsZCxlKXt2YXIgZjtlPT1udWxsfHwoZj1lLnZ2KT09bnVsbHx8Zi5jYWxsKGUsYSxiKTtpZighYy5sZW5ndGgpe3ZhciBnO2U9PW51bGx8fChnPWUuVHMpPT1udWxsfHxnLmNhbGwoZSxhLGIsW10pO3JldHVybiBQcm9taXNlLnJlc29sdmUoW10pfXZhciBoPVtdLGw9e3RrOmIsbWs6YyxqazpkfTtoLnB1c2goTHUoYSxiLGMsZSwhMCxsKSk7Zm9yKHZhciBuPW0oZCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpaC5wdXNoKEx1KGEsYixwLnZhbHVlLGUsITEsbCkpO3JldHVybiBKdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7ZT09bnVsbHx8KHY9ZS5Ucyk9PW51bGx8fHYuY2FsbChlLGEsYixyKTtyZXR1cm4gcn0pfTtmdW5jdGlvbiBRdShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2I9PW51bGx8fChkPWIud3YpPT1udWxsfHxkLmNhbGwoYixhLGMpO2Zvcih2YXIgZT1bXSxmPW0oYyksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZS5wdXNoKFJ1KGEsZy52YWx1ZSkpO2Zvcih2YXIgaD1bXSxsPW0oZSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aC5wdXNoKFB1KGEscC50ayxwLm1rLHAuamssYikpfUp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtiPT1udWxsfHwodj1iLlFzKT09bnVsbHx8di5jYWxsKGIsYSxjLHIpfSl9CmZ1bmN0aW9uIFJ1KGEsYil7dmFyIGM9ZnVuY3Rpb24oZil7cmV0dXJuIGYubWV0aG9kLmlzU3VwcG9ydGVkKCkmJmYuZW5kcG9pbnQuaXNTdXBwb3J0ZWQoYSkmJmYuZW5kcG9pbnQuSyhhKX0sZD0oYi5IKGEpfHxbXSkuZmlsdGVyKGMpLGU9W107ZC5sZW5ndGgmJihlPShiLksoYSl8fFtdKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuZmlsdGVyKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmxlbmd0aD4wfSkpO3JldHVybnt0azpiLG1rOmQsams6ZX19Owp2YXIgU3U9ZnVuY3Rpb24oYSxiKXtpZihNKDUxNykmJklmKDQ3KSYmYT09PTQ1KXJldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0PyIrYi5zcGxpdCgiPyIpWzFdKyImZ2FwLjFwZmI9MSJ9LFd1PWZ1bmN0aW9uKCl7dmFyIGE9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGEubGVuZ3RoKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9VHUoZS5rZSwiYXB2YyIpLGc9VHUoZS5rZSwidGZ0IiksaD1UdShlLmtlLCJ0ZmQiKSxsPVR1KGUua2UsInRpZCIpLG49Tm0oZS5lbmRwb2ludCxlLmtlKSxwPWJbbl09YltuXXx8e3hrOltdLFpoOltdfTtwLlpoLnB1c2goZSk7bD8ocC54ay5wdXNoKGwpLHAudWR8fChwLnVkPWwpKTpwLnhrLnB1c2goIiIpO2Y9PT0iMSImJihwLlFuPSEwKTtpZihnfHxoKXAuTm49ITB9YS5sZW5ndGg9MDtmb3IodmFyIHE9bShPYmplY3Qua2V5cyhiKSkscj1xLm5leHQoKSx0PXt9OyFyLmRvbmU7dD0Ke3lrOnZvaWQgMH0scj1xLm5leHQoKSl7dmFyIHU9ci52YWx1ZSx2PWJbdV07dC55az12LnhrO3ZhciB4PXQueWsuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihJLEcpe3JldHVybiBELnlrLmluZGV4T2YoSSk9PT1HfX0odCkpLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4hIUR9KTtpZihNKDQyNykpe3ZhciB5PVV1KHYseCk7UXUoeSx2b2lkIDAsQXUpfWVsc2V7dmFyIHo9dSsiJmFwdmM9Iisodi5Rbj8iMSI6IjAiKTt4Lmxlbmd0aCYmKHorPSImdGlkcz0iK3guam9pbigifiIpKTt2LnVkJiYoeis9IiZ0aWQ9Iit2LnVkKTtpZih2Lk5uKXt6Kz0iJnRmdD0iK1N0cmluZyhOYigpKTt2YXIgQz1wZCgpO0MhPT12b2lkIDAmJih6Kz0iJnRmZD0iK1N0cmluZyhNYXRoLnJvdW5kKEMpKSl9VnUodi5aaFswXS5ldmVudCx6LHYuWmhbMF0uZW5kcG9pbnQseC5sZW5ndGg/eDpbIiJdKX19fX0sVHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMhPT12b2lkIDApcmV0dXJuIGRlbGV0ZSBhW2JdLApjfSxWdT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPWZ1bmN0aW9uKGwsbil7dmFyIHA9YitYdShsKTtUbChwLGEsYyxkKTtyZXR1cm4gbihwKX07aWYobmQoKSl7dmFyIGc9ZnVuY3Rpb24oKXt9LGg9U3UoYyxiKTtoIT09dm9pZCAwJiYoZz1mdW5jdGlvbigpe1luKGUsaCtYdSg4KSx2b2lkIDAse1FnOiEwfSl9KTtmKDgsZnVuY3Rpb24obCl7WW4oZSxsLHZvaWQgMCx7UWc6ITB9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGIrWHUoMyksZnVuY3Rpb24oKXt9LGcpfSl9KX1lbHNlIGYoNSxmdW5jdGlvbihsKXtyZXR1cm4gV24oZSxsKX0pfHxaYyhiK1h1KDMpKX0sVXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlpoWzBdLGQ9eyJfJmFwdmMiOmEuUW4/IjEiOiIwIn07Yi5sZW5ndGg+MCYmKGRbIl8mdGlkcyJdPQpiLmpvaW4oIn4iKSk7aWYoYS5Obil7ZFsiXyZ0ZnQiXT1TdHJpbmcoTmIoKSk7dmFyIGU9cGQoKTtlIT09dm9pZCAwJiYoZFsiXyZ0ZmQiXT1TdHJpbmcoTWF0aC5yb3VuZChlKSkpfXJldHVybiBZdShjLmV2ZW50LGEudWR8fCIiLGQpfSxZdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLnRhcmdldCx7ZGVzdGluYXRpb25JZDpifSksZT1adShhLHt0YXJnZXQ6ZH0pO2J8fFUoZSxGLkQuUWUpO2Zvcih2YXIgZj1tKE9iamVjdC5rZXlzKGMpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtVKGUsaCxjW2hdKX1yZXR1cm4gZX0sWHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgODpjYXNlIDM6Y2FzZSA1OnJldHVybiImZm10PSIrYTtkZWZhdWx0OnJldHVybiIifX0sJHU9ZnVuY3Rpb24oYSxiKXthPVp1KGEpO1YoYSxILkouRGssWG8oZnApKTtUdCgpJiZVKGEsIl8mZ2NzIixVdCgpKTsKVShhLCJfJmdjZCIsWXQoYS5NKSk7dmFyIGM9WG8oZnApPzQ1OjQ2LGQ9ZnVuY3Rpb24oKXt2YXIgZj1iLnRpZDtpZihNKDQyNykpe3ZhciBnPVl1KGEsZixiKTtRdShnLHZvaWQgMCxBdSl9ZWxzZXt2YXIgaD1ObShjLGIpO1Z1KGEsaCxjLFtmXSl9fTtpZih5YihBLnF1ZXVlTWljcm90YXNrKSl7dmFyIGU9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGUubGVuZ3RoPT09MCl0cnl7QS5xdWV1ZU1pY3JvdGFzayhXdSl9Y2F0Y2goZil7R3UoVC5XLmZqKTtkKCk7cmV0dXJufWI9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiKTtlLnB1c2goe2V2ZW50OmEsa2U6YixlbmRwb2ludDpjfSl9ZWxzZSBHdShULlcuZmopLGQoKX07dmFyIFg9e1Y6e01rOiJjYWxsX2NvbnZlcnNpb24iLHpkOiJjY21fY29udmVyc2lvbiIsUWs6ImNvbW1vbl9hdyIseGE6ImNvbnZlcnNpb24iLHdxOiJmbG9vZGxpZ2h0IixZZDoiZ2FfY29udmVyc2lvbiIsWmQ6ImdjcF9yZW1hcmtldGluZyIsS2E6InBhZ2VfdmlldyIsdWI6InJlbWFya2V0aW5nIixPYjoidXNlcl9kYXRhX2xlYWQiLEZiOiJ1c2VyX2RhdGFfd2ViIn19O2Z1bmN0aW9uIGJ2KGEsYil7YiYmR2IoYixmdW5jdGlvbihjLGQpe3R5cGVvZiBkIT09Im9iamVjdCImJmQhPT12b2lkIDAmJihhWyIxcC4iK2NdPVN0cmluZyhkKSl9KX07dmFyIG12PXtOZzoidmFsdWUiLHBiOiJjb252ZXJzaW9uQ291bnQiLE9nOjF9LG52PXtOZzoidGltZW91dHMiLHBiOiJ0aW1lb3V0cyIsT2c6MH0sb3Y9e05nOiJlb3BDb3VudCIscGI6ImVuZE9mUGFnZUNvdW50IixPZzowfSxwdj17Tmc6ImVycm9ycyIscGI6ImVycm9ycyIsT2c6MH0scXY9W212LG52LHB2LG92XTtmdW5jdGlvbiBydihhLGIpe2I9Yj09PXZvaWQgMD8xOmI7aWYoIXN2KGEpKXJldHVybnt9O3ZhciBjPXR2KHF2KSxkPWNbYS5wYl07aWYoZD09PXZvaWQgMHx8ZD09PS0xKXJldHVybiBjO3ZhciBlPXt9LGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLChlW2EucGJdPWQrYixlKSk7cmV0dXJuIHV2KGYpP2Y6Y30KZnVuY3Rpb24gdHYoYSl7dmFyIGI7YTp7dmFyIGM9bnIoImdjbF9jdHIiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTt0cnl7Yj0idmFsdWUiaW4gZCYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Ij9kLnZhbHVlOnZvaWQgMDticmVhayBhfWNhdGNoKHApe319Yj12b2lkIDB9Zm9yKHZhciBlPWIsZj17fSxnPW0oYSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7aWYoZSYmc3YobCkpe3ZhciBuPWVbbC5OZ107bj09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKG4pP2ZbbC5wYl09LTE6ZltsLnBiXT1OdW1iZXIobil9ZWxzZSBmW2wucGJdPS0xfXJldHVybiBmfQpmdW5jdGlvbiB1dihhLGIpe2I9Ynx8e307Zm9yKHZhciBjPU5iKCksZD11cShiLGMsITApLGU9e30sZj1tKHF2KSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZSxsPWFbaC5wYl07bCE9PXZvaWQgMCYmbCE9PS0xJiYoZVtoLk5nXT1sKX1lLmNyZWF0aW9uVGltZU1zPWM7cmV0dXJuIGtyKCJnY2xfY3RyIix7dmFsdWU6ZSxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfSk9PT0wPyEwOiExfWZ1bmN0aW9uIHN2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuZnR8fFlmKGEuZnQpOiExfWZ1bmN0aW9uIHZ2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuQXN8fFlmKGEuQXMpOiExfTtmdW5jdGlvbiB3digpe2lmKHh2KCkpe3ZhciBhPW5yKCJsYXN0X2NvbnZzIik7aWYoYS5lcnJvcj09PTAmJmEudmFsdWUmJnR5cGVvZiBhLnZhbHVlPT09Im9iamVjdCIpe3ZhciBiPWEudmFsdWU7aWYoYi52YWx1ZSYmQXJyYXkuaXNBcnJheShiLnZhbHVlKSl7dmFyIGM9Yi52YWx1ZTtpZighKGMubGVuZ3RoPjEpKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKHR5cGVvZiBnIT09Im9iamVjdCJ8fGc9PT1udWxsfHx0eXBlb2YgZy5yYW5kb20hPT0ibnVtYmVyInx8dHlwZW9mIGcubGFiZWwhPT0ic3RyaW5nInx8Zy5sYWJlbC5sZW5ndGg+MjAwKXJldHVybjtkLnB1c2goe3JhbmRvbTpnLnJhbmRvbSxsYWJlbDpnLmxhYmVsfSl9cmV0dXJuIGR9fX19fQpmdW5jdGlvbiB5dihhLGIpeyF4digpfHxhLmxlbmd0aD4xfHxhLmxlbmd0aD09PTEmJmFbMF0ubGFiZWwubGVuZ3RoPjIwMHx8KGI9Ynx8e30sa3IoImxhc3RfY29udnMiLHt2YWx1ZTphLGV4cGlyZXM6TnVtYmVyKHVxKGIpLmV4cGlyZXMpfSkpfWZ1bmN0aW9uIHh2KCl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSYmWWYoMTEpfTtmdW5jdGlvbiB6dihhKXt2YXIgYj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7cmV0dXJuIGE/U3RyaW5nKGJebmcoYSkmMjE0NzQ4MzY0Nyk6U3RyaW5nKGIpfWZ1bmN0aW9uIEF2KGEpe3JldHVyblt6dihhKSxNYXRoLnJvdW5kKE5iKCkvMUUzKV0uam9pbigiLiIpfWZ1bmN0aW9uIEJ2KGEsYixjLGQsZSl7dmFyIGY9cnEoYiksZztyZXR1cm4oZz1ncShhLGYsc3EoYyksZCxlKSk9PW51bGw/dm9pZCAwOmcuQ3J9O3ZhciBDdj1bIjEiXSxEdj17fSxFdj17fTtmdW5jdGlvbiBGdihhKXtyZXR1cm4gRXZbR3YoYSldfWZ1bmN0aW9uIEh2KGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9R3YoYS5wcmVmaXgpO2lmKER2W2NdKUl2KGEpLEp2KGEpO2Vsc2UgaWYoS3YoYyxhLnBhdGgsYS5kb21haW4pKXt2YXIgZD1GdihhLnByZWZpeCl8fHtpZDp2b2lkIDAsa2M6dm9pZCAwfTtiJiZMdihhLGQpO0l2KGEpO0p2KGEpfWVsc2V7dmFyIGU9VGooImF1aWRkYyIpO2lmKGUpc2IoIlRBR0dJTkciLDE3KSxEdltjXT1lO2Vsc2UgaWYoYil7dmFyIGY9R3YoYS5wcmVmaXgpLGc9QXYoKTtNdihmLGcsYSk7S3YoYyxhLnBhdGgsYS5kb21haW4pO0l2KGEsITApO0p2KGEsITApfX19CmZ1bmN0aW9uIEl2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmc3YobXYpJiZvcigiZ2NsX2N0ciIpO2lmKHZ2KG12KSYmdHYoW212XSlbbXYucGJdPT09LTEpe2Zvcih2YXIgYz17fSxkPShjW212LnBiXT0wLGMpLGU9bShxdiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyE9PW12JiZ2dihnKSYmKGRbZy5wYl09MCl9dXYoZCxhKX19ZnVuY3Rpb24gSnYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZ4digpJiZvcigibGFzdF9jb252cyIpOyFCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSl8fCFZZigxMil8fHd2KCl8fHl2KFtdLGEpfQpmdW5jdGlvbiBMdihhLGIpe3ZhciBjPUd2KGEucHJlZml4KSxkPUR2W2NdO2lmKGQpe3ZhciBlPWQuc3BsaXQoIi4iKTtpZihlLmxlbmd0aD09PTIpe3ZhciBmPU51bWJlcihlWzFdKXx8MDtpZihmKXt2YXIgZz1kO1lmKDE5KSYmYi5maT9nPWQrIi4iKyhiLnNlc3Npb25JZHx8Ii0uLSIpKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSsiLiIrYi5maSsiLiIrKGIuTGM/Yi5MYzpNYXRoLmZsb29yKE5iKCkvMUUzKSk6Yi5zZXNzaW9uSWQmJihnPWQrIi4iK2Iuc2Vzc2lvbklkKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSk7TXYoYyxnLGEsZioxRTMpfX19fWZ1bmN0aW9uIE12KGEsYixjLGQpe3ZhciBlO2U9WyIxIix0cShjLmRvbWFpbixjLnBhdGgpLGJdLmpvaW4oIi4iKTt2YXIgZj11cShjLGQpO2YuTWM9TnYoKTtvcShhLGUsZil9CmZ1bmN0aW9uIEt2KGEsYixjKXt2YXIgZD1CdihhLGIsYyxDdixOdigpKTtpZighZClyZXR1cm4hMTtPdihhLGQpO3JldHVybiEwfWZ1bmN0aW9uIE92KGEsYil7dmFyIGM9Yi5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09MylFdlthXT17c2Vzc2lvbklkOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2Vsc2UgaWYoYy5sZW5ndGg+PTImJihEdlthXT1jWzBdKyIuIitjWzFdLGMuc2hpZnQoKSxjLnNoaWZ0KCksYy5sZW5ndGg+PTMpKXt2YXIgZD17c2Vzc2lvbklkOmNbMF09PT0iLSI/dm9pZCAwOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2lmKFlmKDE5KSYmYy5sZW5ndGg+PTYpe3ZhciBlPWNbM10rIi4iK2NbNF0sZj1OdW1iZXIoY1s1XSl8fDA7ZSYmZiE9PTAmJihkLmZpPWUsZC5MYz1mKX1FdlthXT1kfX1mdW5jdGlvbiBHdihhKXtyZXR1cm4oYXx8Il9nY2wiKSsiX2F1In0KZnVuY3Rpb24gUHYoYSl7ZnVuY3Rpb24gYigpe0JsKGMpJiZhKCl9dmFyIGM9TnYoKTtIbChmdW5jdGlvbigpe2IoKTtCbChjKXx8SWwoYixjKX0sYyl9ZnVuY3Rpb24gUXYoYSl7dmFyIGI9VXEoITApLGM9R3YoYS5wcmVmaXgpO1B2KGZ1bmN0aW9uKCl7dmFyIGQ9YltjXTtpZihkKXtPdihjLGQpO3ZhciBlPU51bWJlcihEdltjXS5zcGxpdCgiLiIpWzFdKSoxRTM7aWYoZSl7c2IoIlRBR0dJTkciLDE2KTt2YXIgZj11cShhLGUpO2YuTWM9TnYoKTt2YXIgZz1bIjEiLHRxKGEuZG9tYWluLGEucGF0aCksZF0uam9pbigiLiIpO29xKGMsZyxmKX19fSl9ZnVuY3Rpb24gUnYoYSxiLGMsZCxlKXtlPWV8fHt9O3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGc9e30saD1CdihhLGUucGF0aCxlLmRvbWFpbixDdixOdigpKTtoJiYoZ1thXT1oKTtyZXR1cm4gZ307UHYoZnVuY3Rpb24oKXthcihmLGIsYyxkKX0pfQpmdW5jdGlvbiBOdigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfTt2YXIgVnY9ImVtYWlsIGVtYWlsX2FkZHJlc3Mgc2hhMjU2X2VtYWlsX2FkZHJlc3MgcGhvbmVfbnVtYmVyIHNoYTI1Nl9waG9uZV9udW1iZXIgZmlyc3RfbmFtZSBsYXN0X25hbWUiLnNwbGl0KCIgIiksV3Y9ImZpcnN0X25hbWUgc2hhMjU2X2ZpcnN0X25hbWUgbGFzdF9uYW1lIHNoYTI1Nl9sYXN0X25hbWUgc3RyZWV0IHNoYTI1Nl9zdHJlZXQgY2l0eSByZWdpb24gY291bnRyeSBwb3N0YWxfY29kZSIuc3BsaXQoIiAiKTtmdW5jdGlvbiBYdihhLGIpe2lmKCFiLl90YWdfbWV0YWRhdGEpe2Zvcih2YXIgYz17fSxkPTAsZT0wO2U8YS5sZW5ndGg7ZSsrKWQrPVl2KGFbZV0sYixjKT8xOjA7ZD4wJiYoYi5fdGFnX21ldGFkYXRhPWMpfX0KZnVuY3Rpb24gWXYoYSxiLGMpe3ZhciBkPWJbYV07aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpcmV0dXJuITE7Y1thXT1BcnJheS5pc0FycmF5KGQpP2QubWFwKGZ1bmN0aW9uKCl7cmV0dXJue21vZGU6ImMifX0pOnttb2RlOiJjIn07cmV0dXJuITB9ZnVuY3Rpb24gWnYoYSl7aWYoTSg1MjMpJiZhKXtYdihWdixhKTtmb3IodmFyIGI9QmIoYS5hZGRyZXNzKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZCYmWHYoV3YsZCl9dmFyIGU9YS5ob21lX2FkZHJlc3M7ZSYmWHYoV3YsZSl9fQpmdW5jdGlvbiAkdihhLGIsYyl7ZnVuY3Rpb24gZChmLGcpe2c9U3RyaW5nKGcpLnN1YnN0cmluZygwLDEwMCk7ZS5wdXNoKCIiK2YrZW5jb2RlVVJJQ29tcG9uZW50KGcpKX1pZighYylyZXR1cm4iIjt2YXIgZT1bXTtkKCJpIixTdHJpbmcoYSkpO2QoImYiLGIpO2MubW9kZSYmZCgibSIsYy5tb2RlKTtjLmlzUHJlSGFzaGVkJiZkKCJwIiwiMSIpO2MucmF3TGVuZ3RoJiZkKCJyIixTdHJpbmcoYy5yYXdMZW5ndGgpKTtjLm5vcm1hbGl6ZWRMZW5ndGgmJmQoIm4iLFN0cmluZyhjLm5vcm1hbGl6ZWRMZW5ndGgpKTtjLmxvY2F0aW9uJiZkKCJsIixjLmxvY2F0aW9uKTtjLnNlbGVjdG9yJiZkKCJzIixjLnNlbGVjdG9yKTtyZXR1cm4gZS5qb2luKCIuIil9O3ZhciBhdz12b2lkIDA7ZnVuY3Rpb24gYncoKXtpZighYXcpe3ZhciBhPW9tKGptLmJhLm9wLG5ldyBNYXApO2F3PW5ldyBvZyhhKX1yZXR1cm4gYXd9Owp2YXIgY3c9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGE7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZSE9PSJhZGRyZXNzIiYmZSE9PSJwaG9uZV9udW1iZXIiJiZlIT09InNoYTI1Nl9waG9uZV9udW1iZXIiJiYoYltlXT1hW2VdKX1yZXR1cm4gYn0sZnc9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9WyJ0di4xIl0sZD1bInR2ZC4xIl0sZT1kdyhhKTtpZihlKXJldHVybiBjLnB1c2goZSkse2hhc1VwZDohMSxPbzpjLmpvaW4oIn4iKSxZbjpjLmpvaW4oIn4iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOnZvaWQgMCxpaTp7fSxtZXRhZGF0YVBhcmFtOmI/ZC5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZj17fSxnPTA7dmFyIGg9MCxsPWV3KGEsZnVuY3Rpb24ocSxyLHQpe2grKzt2YXIgdT1xLnZhbHVlLHY7CmlmKHQpe3ZhciB4PXIrIl9fIitnKys7dj0iJHt1c2VyRGF0YS4iK3grInxzaGEyNTZ9IjtmW3hdPXV9ZWxzZSB2PWVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodSkpO3EuaW5kZXghPT12b2lkIDAmJihyKz1xLmluZGV4KTtjLnB1c2gocisiLiIrdik7aWYoYil7dmFyIHk9JHYoaCxyLHEubWV0YWRhdGEpO3kmJmQucHVzaCh5KX19KS5oYXNVcGQsbj1kLmpvaW4oIn4iKTt2YXIgcD1jLmpvaW4oIn4iKTtyZXR1cm57aGFzVXBkOmwsT286cCxpaTp7dXNlckRhdGE6Zn0sWW46InR2LjF+JHsiKyhwKyJ8IisoTSg1NTUpPyJlbmNyeXB0X3dpdGhfbWVtbyI6ImVuY3J5cHQiKSsifSIpLGVuY3J5cHRpb25LZXlTdHJpbmc6RSg0MyksbWV0YWRhdGFQYXJhbTpiP246dm9pZCAwfX0saHc9ZnVuY3Rpb24oYSl7aWYoIShhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkpcmV0dXJuITE7CnZhciBiPWd3KGEpO3JldHVybiBldyhiLGZ1bmN0aW9uKCl7fSkuaGFzVXBkfSxldz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9mdW5jdGlvbigpe306Yjtmb3IodmFyIGM9ITEsZD0hMSxlPW0oYSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZy52YWx1ZSl7dmFyIGg9aXdbZy5uYW1lXTtpZihoKXt2YXIgbD1qdyhnKTtsJiYoYz0hMCk7ZD0hMDtiKGcsaCxsKX19fXJldHVybntoYXNVcGQ6ZCxoYXNVcGRUb0hhc2g6Y319LGp3PWZ1bmN0aW9uKGEpe3ZhciBiPWt3KGEubmFtZSksYz0vXmVcZCskLy50ZXN0KGEudmFsdWUpLGQ7aWYoZD1iJiYhYyl7dmFyIGU9YS52YWx1ZTtkPSEobHcudGVzdChlKXx8eWkudGVzdChlKSl9cmV0dXJuIGR9LGt3PWZ1bmN0aW9uKGEpe3JldHVybiBtdy5pbmRleE9mKGEpIT09LTF9LHN3PWZ1bmN0aW9uKGEsYixjKXtpZih5YihBLlByb21pc2UpKXRyeXt2YXIgZD0hMTt2YXIgZT1ndyhhLGQpLGY9bncoZSkudGhlbihmdW5jdGlvbihoKXt2YXIgbD1oLnliLG49bC5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIVNiKHEubmFtZSwicmF3Iil9KSxwPW93KHt5YjpufSk7cmV0dXJue3Jlc3VsdDp7cGFyYW06cC5wYXJhbSxoYXNVcGRUb0hhc2g6cC5oYXNVcGRUb0hhc2gsaGFzVXBkOnAuaGFzVXBkLGhhZEVycm9yOnAuaGFkRXJyb3IsbWV0YWRhdGFQYXJhbTpwLm1ldGFkYXRhUGFyYW19LHliOmx9fSk7cmV0dXJuIGYudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gaC5yZXN1bHR9KX1jYXRjaChoKXt9fSxxdz1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9LG93PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPWEueWIsZD1bInR2LjEiXSxlPVsidHZkLjEiXSxmPWR3KGMpO2lmKGYpcmV0dXJuIGQucHVzaChmKSx7cGFyYW06ZC5qb2luKCJ+IiksaGFzVXBkVG9IYXNoOiExLGhhc1VwZDohMSxoYWRFcnJvcjohMCxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZz1jLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hancocSl9KSxoPTAsbD1ldyhnLGZ1bmN0aW9uKHEscil7aCsrO3ZhciB0PXEudmFsdWUsdT1xLmluZGV4O3UhPT12b2lkIDAmJihyKz11KTtkLnB1c2gocisiLiIrdCk7aWYoYil7dmFyIHY9JHYoaCxyLHEubWV0YWRhdGEpO3YmJmUucHVzaCh2KX19KSxuPWwuaGFzVXBkVG9IYXNoLHA9bC5oYXNVcGQ7cmV0dXJue3BhcmFtOmVuY29kZVVSSUNvbXBvbmVudChkLmpvaW4oIn4iKSksCmhhc1VwZFRvSGFzaDpuLGhhc1VwZDpwLGhhZEVycm9yOiExLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9fSxkdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4gaXcuZXJyb3JfY29kZSsiLiIrYVswXS52YWx1ZX0scHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuITE7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoaXdbZC5uYW1lXSYmZC52YWx1ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZ3c9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtpZihBLmxvY2F0aW9uLnByb3RvY29sIT09Imh0dHBzOiIpcmV0dXJuIGMucHVzaCh7bmFtZToiZXJyb3JfY29kZSIsdmFsdWU6ImUzIixpbmRleDp2b2lkIDB9KSxjO3ZhciBkPWMucHVzaCxlPWQuYXBwbHksZj1bXSwKZz1mLmNvbmNhdCxoLGw9YS5fdGFnX21ldGFkYXRhfHx7fTtoPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJlbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzcyxhYjpsLmVtYWlsLG1kOmwuc2hhMjU2X2VtYWlsX2FkZHJlc3N9LHV3KSksdyh0dyh7bmFtZToicGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyLGFiOmwucGhvbmVfbnVtYmVyLG1kOmwuc2hhMjU2X3Bob25lX251bWJlcn0sdncpKSk7dmFyIG49dyhoKSxwLHE9YS5fdGFnX21ldGFkYXRhfHx7fSxyPWEuaG9tZV9hZGRyZXNzfHx7fSx0PXIuX3RhZ19tZXRhZGF0YXx8e307cD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lLGFiOnEuZmlyc3RfbmFtZSxtZDpxLnNoYTI1Nl9maXJzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSwKU2E6YS5zaGEyNTZfbGFzdF9uYW1lLGFiOnEubGFzdF9uYW1lLG1kOnEuc2hhMjU2X2xhc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ci5zdHJlZXQsU2E6ci5zaGEyNTZfc3RyZWV0LGFiOnQuc3RyZWV0LG1kOnQuc2hhMjU2X3N0cmVldH0sd3coeXcpKSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnIuY2l0eSxhYjp0LmNpdHl9LHd3KHl3KSkpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ci5wb3N0YWxfY29kZSxhYjp0LnBvc3RhbF9jb2RlfSx3dyh6dykpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzpyLnJlZ2lvbixhYjp0LnJlZ2lvbn0sd3coeXcpKSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnIuY291bnRyeSxhYjp0LmNvdW50cnl9LHd3KHp3KSkpKTtmb3IodmFyIHU9dyhwKSx2PVtdLHg9QmIoYS5hZGRyZXNzfHx7fSkseT0wO3k8eC5sZW5ndGg7eSsrKXtmb3IodmFyIHo9eFt5XSxDPXouX3RhZ19tZXRhZGF0YXx8e30sRD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIsCnJhdzp6LmZpcnN0X25hbWUsU2E6ei5zaGEyNTZfZmlyc3RfbmFtZSxhYjpDLmZpcnN0X25hbWUsbWQ6Qy5zaGEyNTZfZmlyc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzp6Lmxhc3RfbmFtZSxTYTp6LnNoYTI1Nl9sYXN0X25hbWUsYWI6Qy5sYXN0X25hbWUsbWQ6Qy5zaGEyNTZfbGFzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6InN0cmVldCIscmF3Onouc3RyZWV0LFNhOnouc2hhMjU2X3N0cmVldCxhYjpDLnN0cmVldCxtZDpDLnNoYTI1Nl9zdHJlZXR9LHl3KSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnouY2l0eSxhYjpDLmNpdHl9LHl3KSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzp6LnBvc3RhbF9jb2RlLGFiOkMucG9zdGFsX2NvZGV9LHp3KSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ei5yZWdpb24sYWI6Qy5yZWdpb259LHl3KSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnouY291bnRyeSxhYjpDLmNvdW50cnl9LHp3KSkpLEk9MDtJPApELmxlbmd0aDtJKyspRFtJXS5pbmRleD15O3YucHVzaC5hcHBseSh2LHcoRCkpfWUuY2FsbChkLGMsZy5jYWxsKGYsbix1LHcodikpKTtpZihiJiZCcCgpKXt2YXIgRz1jLnB1c2gsTj1HLmFwcGx5LFM9W107Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19lbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzc30pKSx3KEF3KHtuYW1lOiJyYXdfcGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyfSkpKSk7Zm9yKHZhciBXPUJiKGEuYWRkcmVzc3x8e30pLGVhPTA7ZWE8Vy5sZW5ndGg7ZWErKyl7dmFyIGphPVdbZWFdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmphLmZpcnN0X25hbWUsU2E6amEuc2hhMjU2X2ZpcnN0X25hbWV9LGVhKSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmphLmxhc3RfbmFtZSxTYTpqYS5zaGEyNTZfbGFzdF9uYW1lfSwKZWEpKSx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6amEuc3RyZWV0LFNhOmphLnNoYTI1Nl9zdHJlZXR9LGVhKSkpKX1pZihhLmZpcnN0X25hbWV8fGEuaG9tZV9hZGRyZXNzKXtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZX0pKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsU2E6YS5zaGEyNTZfbGFzdF9uYW1lfSkpKSk7dmFyIGZhPWEuaG9tZV9hZGRyZXNzfHx7fTtTLnB1c2guYXBwbHkoUyx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6ZmEuc3RyZWV0LFNhOmZhLnNoYTI1Nl9zdHJlZXR9KSkpfU4uY2FsbChHLGMsdyhTKSl9cmV0dXJuIGN9LHd3PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtQKDY0KTtyZXR1cm4gYShiKX19LEF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W107aWYoYS5TYSlyZXR1cm4gYztmb3IodmFyIGQ9CkJiKGEucmF3KSxlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPUJ3KGRbZV0pO2lmKGYmJiF5aS50ZXN0KGYpKWlmKC9eZVxkKyQvLnRlc3QoZikpYy5wdXNoKHtuYW1lOmEubmFtZSx2YWx1ZTpmLGluZGV4OmJ9KTtlbHNle3ZhciBnPWMsaD1nLnB1c2gsbD1hLm5hbWUsbjt2YXIgcD1BO3RyeXtuPUJpKEFycmF5LmZyb20oWmIoZikpLHApfWNhdGNoKHEpe249ImUwIn1oLmNhbGwoZyx7bmFtZTpsLHZhbHVlOm4saW5kZXg6Yn0pfX1yZXR1cm4gY30sdHc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPU0oNTIzKSxlPWEucmF3LGY9ZD9hLmFiOnZvaWQgMDtDdyhlLCExKTthLlNhJiYoZSYmUCg5MCksZT1hLlNhLGY9ZD9hLm1kOnZvaWQgMCxDdyhlLCEwKSk7Zm9yKHZhciBnPUJiKGUpLGg9QmIoZiksbD0wO2w8Zy5sZW5ndGg7KytsKXt2YXIgbjt2YXIgcD1hLm5hbWUscT1iLHI9aFtsXSx0PUJ3KGdbbF0pO2lmKHQhPT0iIilpZih5aS50ZXN0KHQpKXtyJiYoci5pc1ByZUhhc2hlZD0hMCk7CnZhciB1PXtuYW1lOnAsdmFsdWU6dCxpbmRleDp2b2lkIDB9O3ImJih1Lm1ldGFkYXRhPXIpO249dX1lbHNle3ZhciB2PXEodCkseD17bmFtZTpwLHZhbHVlOnYsaW5kZXg6dm9pZCAwfTtyJiYoeC5tZXRhZGF0YT1yLHYmJihyLnJhd0xlbmd0aD1TdHJpbmcodCkubGVuZ3RoLHIubm9ybWFsaXplZExlbmd0aD12Lmxlbmd0aCkpO249eH1lbHNlIG49dm9pZCAwO3ZhciB5PW47eSYmYy5wdXNoKHkpfXJldHVybiBjfSxDdz1mdW5jdGlvbihhLGIpe2lmKHpiKGEpfHxBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz1CYihhKSxkPTA7ZDxjLmxlbmd0aDsrK2Qpe3ZhciBlPUJ3KGNbZF0pLGY9eWkudGVzdChlKTtiJiYhZiYmUCg4OSk7IWImJmYmJlAoODgpfX0sRHc9ZnVuY3Rpb24oYSl7dmFyIGI9YT9ndyhhKTpbXTtyZXR1cm4gb3coe3liOmJ9KX0sRXc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wJiZ5YihBLlByb21pc2UpP2d3KGEpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJgprdyhiLm5hbWUpJiYheWkudGVzdChiLnZhbHVlKX0pOiExfSxCdz1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjp6YihhKT9MYihTdHJpbmcoYSkpOiJlMCJ9LHp3PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoRncsIiIpfSx4dz1mdW5jdGlvbihhKXtyZXR1cm4geXcoYS5yZXBsYWNlKC9ccy9nLCIiKSl9LHl3PWZ1bmN0aW9uKGEpe3JldHVybiBMYihhLnJlcGxhY2UoR3csIiIpLnRvTG93ZXJDYXNlKCkpfSx2dz1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgvW1xzLSgpLy5dL2csIiIpO2EuY2hhckF0KDApIT09IisiJiYoYT0iKyIrYSk7cmV0dXJuKE0oNTk3KT9IdzpJdykudGVzdChhKT9hOiJlMCJ9LHV3PWZ1bmN0aW9uKGEpe3ZhciBiPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiQCIpO2lmKGIubGVuZ3RoPT09Mil7dmFyIGM9YlswXTsvXihnbWFpbHxnb29nbGVtYWlsKVwuLy50ZXN0KGJbMV0pJiYoYz1jLnJlcGxhY2UoL1wuL2csIiIpKTtjPWMrIkAiK2JbMV07aWYoSncudGVzdChjKSlyZXR1cm4gY31yZXR1cm4iZTAifSwKS3c9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYil7Yi52YWx1ZSYma3coYi5uYW1lKSYmKGIudmFsdWU9RGkoYi52YWx1ZSkpfSkse3liOmF9fWNhdGNoKGIpe3JldHVybnt5YjpbXX19fSxudz1mdW5jdGlvbihhKXtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpfSk/eWIoQS5Qcm9taXNlKT9Qcm9taXNlLmFsbChhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKT9BaShiLnZhbHVlKS50aGVuKGZ1bmN0aW9uKGMpe2IudmFsdWU9Y30pOlByb21pc2UucmVzb2x2ZSgpfSkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57eWI6YX19KS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt5YjpbXX19KTp7dGhlbjpmdW5jdGlvbihiKXtiKHt5YjpbXX0pfX06UHJvbWlzZS5yZXNvbHZlKHt5YjphfSl9LEd3PS9bMC05YH4hQCMkJV4mKigpX1wtKz06Ozw+LC4/fC9cXFtcXV0vZyxKdz0vXlxTK0BcUytcLlxTKyQvLApJdz0vXlwrXGR7MTAsMTV9JC8sSHc9L15cK1xkezcsMTV9JC8sRnc9L1sufl0vZyxsdz0vXlswLTlBLVphLXpfLV17NDN9JC8sTHc9WyJyZW0iLCJycG4iLCJyZm4iLCJybG4iLCJyc2EiXSxNdz17fSxpdz0oTXcuZW1haWw9ImVtIixNdy5waG9uZV9udW1iZXI9InBuIixNdy5maXJzdF9uYW1lPSJmbiIsTXcubGFzdF9uYW1lPSJsbiIsTXcuc3RyZWV0PSJzYSIsTXcuY2l0eT0iY3QiLE13LnJlZ2lvbj0icmciLE13LmNvdW50cnk9ImNvIixNdy5wb3N0YWxfY29kZT0icGMiLE13LmVycm9yX2NvZGU9ImVjIixNdy5yYXdfZW1haWw9InJlbSIsTXcucmF3X3Bob25lX251bWJlcj0icnBuIixNdy5yYXdfZmlyc3RfbmFtZT0icmZuIixNdy5yYXdfbGFzdF9uYW1lPSJybG4iLE13LnJhd19zdHJlZXQ9InJzYSIsTXcpO3ZhciBtdz1PYmplY3QuZnJlZXplKFsiZW1haWwiLAoicGhvbmVfbnVtYmVyIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInN0cmVldCJdKTt2YXIgbXg9T2JqZWN0LmZyZWV6ZSh7YXR0cmlidXRpb25zcmM6IiJ9KSxueD1PYmplY3QuZnJlZXplKHtldmVudFNvdXJjZUVsaWdpYmxlOiExLHRyaWdnZXJFbGlnaWJsZTohMH0pO2Z1bmN0aW9uIG94KCl7dmFyIGE9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO3JldHVybiBhJiZ5YihhLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKX07dmFyIHB4PU9iamVjdC5mcmVlemUoe2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLG1ldGhvZDoiR0VUIixrZWVwYWxpdmU6ITAscmVkaXJlY3Q6ImZvbGxvdyJ9KTsKZnVuY3Rpb24gcXgoYSxiLGMsZCxlLGYpe2lmKCF5YihBLmZldGNoKSlyZXR1cm4gZj09bnVsbHx8Zih2b2lkIDAsdm9pZCAwKSwhMTt2YXIgZz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHB4KTtiJiYoZy5ib2R5PWIsZy5tZXRob2Q9IlBPU1QiKTtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGcsZCk7QS5mZXRjaChhLGcpLnRoZW4oZnVuY3Rpb24oaCl7aWYoaC5vayl7aWYoaC5ib2R5KXt2YXIgbD1oLmJvZHkuZ2V0UmVhZGVyKCksbj1uZXcgVGV4dERlY29kZXI7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe2Z1bmN0aW9uIHEoKXtsLnJlYWQoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciB0O3Q9ci5kb25lO3ZhciB1PW4uZGVjb2RlKHIudmFsdWUse3N0cmVhbTohdH0pO3U9Yy5SK3U7Zm9yKHZhciB2PXUuaW5kZXhPZigiXG5cbiIpO3YhPT0tMTspe3ZhciB4PVpnLHk7YTp7dmFyIHo9bSh1LnN1YnN0cmluZygwLHYpLnNwbGl0KCJcbiIpKSxDPQp6Lm5leHQoKS52YWx1ZSxEPXoubmV4dCgpLnZhbHVlO2lmKFNiKEMsImV2ZW50OiBtZXNzYWdlIikmJlNiKEQsImRhdGE6ICIpKXt2YXIgST1ELnN1YnN0cmluZyg2KTt0cnl7eT1KU09OLnBhcnNlKEkpO2JyZWFrIGF9Y2F0Y2goRyl7fX15PXZvaWQgMH14KGMseSk7dT11LnN1YnN0cmluZyh2KzIpO3Y9dS5pbmRleE9mKCJcblxuIil9Yy5SPXU7dD8oZT09bnVsbHx8ZShoKSxwKCkpOnEoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09bnVsbHx8ZShoKTtwKCl9KX1xKCl9KX1lPT1udWxsfHxlKGgpfWVsc2UgZj09bnVsbHx8ZihoLHZvaWQgMCl9KS5jYXRjaChmdW5jdGlvbihoKXtmPT1udWxsfHxmKHZvaWQgMCxoKX0pO3JldHVybiEwfTt2YXIgcng9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJGZXRjaFJpY2hSZXNwb25zZSIsMSk7dGhpcy5OPWF9O3dhKHJ4LGh1KTtyeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O3J4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3J4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtxeChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSx0aGlzLk4sYz09bnVsbD92b2lkIDA6Yy5HYixhLnBlLGZ1bmN0aW9uKGQsZSl7YS5vbkZhaWx1cmUoZSl9KX07dmFyIEN4PWZ1bmN0aW9uKCl7WWcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShDeCxZZyk7Q3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXtaYyhhLHZvaWQgMCwkZyh0aGlzLGIpLGIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP214Ont9KX07Q3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT97YXR0cmlidXRpb25SZXBvcnRpbmc6bnh9Ont9LGQ9JGcodGhpcyxiKTtiLnByb2Nlc3NfcmVzcG9uc2U/cXgoYSx2b2lkIDAsdGhpcyxjLHZvaWQgMCxkKTptZChhLHZvaWQgMCxjLHZvaWQgMCxkKX07dmFyIFF4PWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy50aW1lb3V0TXM9Yjt0aGlzLlJiPXZvaWQgMH0sUng9ZnVuY3Rpb24oYSl7YS5SYnx8KGEuUmI9c2V0VGltZW91dChmdW5jdGlvbigpe2EuSCgpO2EuUmI9dm9pZCAwfSxhLnRpbWVvdXRNcykpfSxUbj1mdW5jdGlvbihhKXthLlJiJiYoY2xlYXJUaW1lb3V0KGEuUmIpLGEuUmI9dm9pZCAwKX07dmFyIFN4PWZ1bmN0aW9uKCl7dmFyIGE9TmYoNjYsMCk7dGhpcy5LPVtdO3RoaXMuUj1hO3RoaXMuSD1ZYSgpfSxVeD1mdW5jdGlvbihhKXt2YXIgYj1UeDtiLksucHVzaChhKTtiLk58fChiLk49ZnVuY3Rpb24oKXtmb3IodmFyIGM9bShiLkspLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO3RyeXtlKCl9Y2F0Y2gobCl7fX1mb3IodmFyIGY9bShiLkgudmFsdWVzKCkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD12b2lkIDA7KGg9Zy52YWx1ZS53ZSk9PW51bGx8fFRuKGgpfWIuSC5jbGVhcigpfSwkYyhBLCJwYWdlaGlkZSIsYi5OKSl9LFZ4PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goTW4pWzNdfHxudWxsLGM9KGI/ZGVjb2RlVVJJKGIpOmIpfHwiIixkPVBuKGEsImxhYmVsIil8fCIiLGU9UG4oYSwicmFuZG9tIil8fCIiO3JldHVybiBjKyI6IitMbihkKSsiOiIrTG4oZSl9LFd4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UeCwKZT1WeChhKTtpZighKGQuSC5oYXMoZSl8fGQuSC5zaXplPj1kLlIpKXt2YXIgZj17fTtiJiZiPjAmJmMmJihmLndlPW5ldyBReChjLGIpKTtkLkguc2V0KGUsZik7dmFyIGc7KGc9Zi53ZSk9PW51bGx8fFJ4KGcpfX0sVW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1WeChiKSxkLGU7KGQ9YS5ILmdldChjKSk9PW51bGx8fChlPWQud2UpPT1udWxsfHxUbihlKTthLkguZGVsZXRlKGMpfTtTeC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguc2l6ZX07dmFyIGRnO2Z1bmN0aW9uIGh5KGEsYil7dmFyIGM7KGM9ZGcpPT1udWxsfHwkZihjLkgsYSxiKX07dmFyIGl5PUFhKFsiLyJdKSxqeT1mdW5jdGlvbihhKXt0aGlzLkg9YTt0aGlzLmZhaWx1cmVUeXBlPXZvaWQgMH07ankucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ILmFjdGl2ZTtkPyhkLnBvc3RNZXNzYWdlKHt0eXBlOjEsY29tbWFuZDphfSksYih7ZGF0YToiIn0pKTpjKHtmYWlsdXJlVHlwZToxMyxkYXRhOiIifSl9Y2F0Y2goZSl7Yyh7ZmFpbHVyZVR5cGU6MTEsZGF0YTplLm1lc3NhZ2V9KX19O3ZhciBreT1mdW5jdGlvbihhLGIpe3RoaXMuZmFpbHVyZVR5cGU9YTt0aGlzLkg9Yn07a3kucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXtjKHtmYWlsdXJlVHlwZTp0aGlzLmZhaWx1cmVUeXBlLGRhdGE6ImYiK3RoaXMuZmFpbHVyZVR5cGUrKCJ0IisoKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5IKSl9KX07CnZhciBueT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuaW5pdFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5IPW5ldyBreSgxNSx0aGlzLmluaXRUaW1lKTt2YXIgYz1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKCl9LDIwKX0pLGQ9bHkoYSkudGhlbihmdW5jdGlvbihlKXtiLkg9bmV3IGp5KGUpO215KGIsZSl9KS5jYXRjaChmdW5jdGlvbigpe2IuSD1uZXcga3koNCxiLmluaXRUaW1lKX0pO3RoaXMuSz1Qcm9taXNlLnJhY2UoW2MsZF0pfSxteT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGQpe2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZC5zdGF0ZT09PSJyZWR1bmRhbnQiKXt2YXIgZT1iLmFjdGl2ZTtlJiZlLnN0YXRlIT09InJlZHVuZGFudCJ8fChhLkg9bmV3IGt5KDEwLGEuaW5pdFRpbWUpKX19KX07YyhiLmFjdGl2ZSk7YyhiLndhaXRpbmcpO2MoYi5pbnN0YWxsaW5nKTsKYi5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmb3VuZCIsZnVuY3Rpb24oKXtjKGIuaW5zdGFsbGluZyl9KX07bnkucHJvdG90eXBlLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSy50aGVuKGZ1bmN0aW9uKCl7ZC5ILmlvKGEsYixjKX0pfTtueS5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gMn07CnZhciBseT1mdW5jdGlvbihhKXt2YXIgYixjPUxmKDExKTtjPUxmKDEwKTtiPWM7dmFyIGQ9e3Njb3BlOihUYihhLmhyZWYsIi8iKT9hLmhyZWYuc2xpY2UoMCwtMSk6YS5ocmVmKSsiL18vc2VydmljZV93b3JrZXIifTtiJiYoZC51cGRhdGVWaWFDYWNoZT0iYWxsIik7dmFyIGUsZj1veShhLGIpLGc9bmV3IE1hcChbWyJwYXRoIixhLnBhdGhuYW1lXV0pLGg9SnAoa2MoZikudG9TdHJpbmcoKSk7ZT1McChoLnprLGgucGFyYW1zLGguZnJhZ21lbnQsZyk7dmFyIGw9SWMoKSxuPWtjKGUpO3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLGQpfWNhdGNoKHApe3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLnRvU3RyaW5nKCksZCl9Y2F0Y2gocSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHEpfX19OwpmdW5jdGlvbiBveShhLGIpe2Zvcih2YXIgYz1LcChpeSksZD1hLnBhdGhuYW1lLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wfSksZT1bXS5jb25jYXQodyhkKSxbIl8iLCJzZXJ2aWNlX3dvcmtlciIsYiwic3cuanMiXSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWM9TXAoYyxnLnZhbHVlKTtyZXR1cm4gY307ZnVuY3Rpb24gcHkoYSl7dmFyIGI9bm0oam0uYmEuT2gpLGM9Yj09bnVsbD92b2lkIDA6YlthXTtjfHxhIT09ImxpdGUifHwoYz1iPT1udWxsP3ZvaWQgMDpiLmZ1bGwpO3JldHVybiBjfXZhciBxeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cHkoImZ1bGwiKTtkP2QuZGVsZWdhdGUoYSxiLGMpOmMoe2ZhaWx1cmVUeXBlOjE2fSl9O2Z1bmN0aW9uIHJ5KGEsYixjLGQsZSl7cXkoe2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6MSx0ZW1wbGF0ZXM6Yixib2R5OiIiLHByb2Nlc3NSZXNwb25zZTohMSxlbmNyeXB0aW9uS2V5U3RyaW5nOmUsc29SZWZlcnJlcjpBLmxvY2F0aW9uLmhyZWZ9fSxjLGZ1bmN0aW9uKGYpe2QoZi5mYWlsdXJlVHlwZSxmLmRhdGEpfSl9O3ZhciBEeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPTA7dGhpcy5LPSExO00oNDYyKSYmVW0oImZzIixmdW5jdGlvbigpe3JldHVybiBhLkg+MCYmYS5IPDU/U3RyaW5nKGEuSCk6dm9pZCAwfSwhMSl9LEV5O2Z1bmN0aW9uIEZ5KGEsYil7RXl8fChFeT1uZXcgRHkpO3ZhciBjPUV5O00oNDYyKSYmZm4uSyYmKGI9PT0iZ3RtLmZvcm1TdWJtaXQifHxiPT09ImZvcm1fc3VibWl0IiYmSWYoNDUpKSYmKGE9PT0xfHxjLkspJiYoYy5LPSEwLGMuSD1hLGEhPT01P1ZtKCJmcyIpOlFtLkguZnM9ITEpfTt2YXIgR3k9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuS2Epe3ZhciBiPWZ1KGEpO2lmKCFNKDQyNykmJihqcChhLGIpfHxRKGEsSC5KLmhkKSkmJlhvKGZwKSl7dmFyIGM9bHAoYSxiKTtpZihjKXt2YXIgZD1ObSg2OSxjKTtUbChkLGEsNjkpO1luKHtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6NjksZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKX19dmFyIGU9eWIoYS5NLm9uU3VjY2Vzcyk/YS5NLm9uU3VjY2Vzczp4YjskdShhLGIpO2UoKX19O3ZhciBIeT17WDp7V3E6MCxFazoxLFpnOjIsWGs6MyxtaTo0LFZrOjUsV2s6NixZazo3LG5pOjgsdG06OSxzbToxMCxUaToxMSx2bToxMixCaDoxMyxFbToxNCxpajoxNSxTcToxNixqZDoxNyx1ajoxOCx2ajoxOSx3ajoyMCxDbjoyMSx4ajoyMn19O0h5LlhbSHkuWC5XcV09IlJFU0VSVkVEX1pFUk8iO0h5LlhbSHkuWC5Fa109IkFEU19DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLlpnXT0iQ09OVEFJTkVSX0VYRUNVVEVfU1RBUlQiO0h5LlhbSHkuWC5Ya109IkNPTlRBSU5FUl9TRVRVUF9FTkQiO0h5LlhbSHkuWC5taV09IkNPTlRBSU5FUl9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLlZrXT0iQ09OVEFJTkVSX0JMT0NLSU5HX0VORCI7SHkuWFtIeS5YLldrXT0iQ09OVEFJTkVSX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlguWWtdPSJDT05UQUlORVJfWUlFTERfRU5EIjtIeS5YW0h5LlgubmldPSJDT05UQUlORVJfWUlFTERfU1RBUlQiO0h5LlhbSHkuWC50bV09IkVWRU5UX0VYRUNVVEVfRU5EIjsKSHkuWFtIeS5YLnNtXT0iRVZFTlRfRVZBTFVBVElPTl9FTkQiO0h5LlhbSHkuWC5UaV09IkVWRU5UX0VWQUxVQVRJT05fU1RBUlQiO0h5LlhbSHkuWC52bV09IkVWRU5UX1NFVFVQX0VORCI7SHkuWFtIeS5YLkJoXT0iRVZFTlRfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5FbV09IkdBNF9DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLmlqXT0iUEFHRV9MT0FEIjtIeS5YW0h5LlguU3FdPSJQQUdFVklFVyI7SHkuWFtIeS5YLmpkXT0iU05JUFBFVF9MT0FEIjtIeS5YW0h5LlgudWpdPSJUQUdfQ0FMTEJBQ0tfRVJST1IiO0h5LlhbSHkuWC52al09IlRBR19DQUxMQkFDS19GQUlMVVJFIjtIeS5YW0h5Llgud2pdPSJUQUdfQ0FMTEJBQ0tfU1VDQ0VTUyI7SHkuWFtIeS5YLkNuXT0iVEFHX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlgueGpdPSJUQUdfRVhFQ1VURV9TVEFSVCI7dmFyIEl5PXt9O0l5Llg9SHkuWDt2YXIgSnk9e1J1OiJMIixYcToiUyIsa3Y6IlkiLFJ0OiJCIixudToiRSIsTnU6IkkiLGZ2OiJUQyIsdnU6IkhUQyIsb3U6IkYiLE11OiJDIn0sS3k9e1hxOiJTIixsdToiViIsYXU6IkUiLGR2OiJ0YWcifSxMeT17fSxNeT0oTHlbSXkuWC52al09IjYiLEx5W0l5Llgud2pdPSI1IixMeVtJeS5YLnVqXT0iNyIsTHkpO2Z1bmN0aW9uIE55KGEpe3ZhciBiPUUoNSksYz1OdW1iZXIoYS5ldmVudElkKSxkPU51bWJlcihhLnRhZ0lkKTtyZXR1cm4oU2IoYiwiR1RNLSIpP2I6IkdUTS0iK2IpKyI6IisoQWIoYyk/YysiOiI6IiIpKyhBYihkKT9kKyI6IjoiIikrYS5zdGFnZX07ZnVuY3Rpb24gT3koKXt2YXIgYT1yZCgpO3JldHVybiEhKGEmJmEubWFyayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLm1lYXN1cmUgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1lYXN1cmVzIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNYXJrcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKX07dmFyIFB5PWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSxReTtmdW5jdGlvbiBSeSgpe1F5fHwoUXk9bmV3IFB5KTtyZXR1cm4gUXl9ZnVuY3Rpb24gU3koYSl7dmFyIGI9UnkoKSxjPU55KGEpO3JldHVybiBiLkhbY119ZnVuY3Rpb24gVHkoYSxiKXt2YXIgYzthOnt2YXIgZD1SeSgpO2lmKE95KCkpe3ZhciBlPU55KGEpLGYsZztpZihmPShnPXJkKCkpPT1udWxsP3ZvaWQgMDpnLm1hcmsoZSxiKSl7Yz1kLkhbZV09ZjticmVhayBhfX1jPXZvaWQgMH1yZXR1cm4gY307ZnVuY3Rpb24gVXkoYSxiKXtpZihPeSgpKXthLmVudHJ5PU55KGEpO3ZhciBjPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSk7Yy5zdGFnZT1iO2RlbGV0ZSBjLnNlbnQ7dmFyIGQ9U3koYj09PUl5LlguamQ/e3N0YWdlOkl5LlguamR9OmMpLGU9U3koYSk7aWYoZCYmZSYmIShkLnN0YXJ0VGltZT5lLnN0YXJ0VGltZSkpe2Muc3RhZ2U9YisiOiIrYS5zdGFnZTt2YXIgZj1OeShjKSxnPXtzdGFydDpkLm5hbWUsZW5kOmUubmFtZX0saCxsO3JldHVybihsPShoPXJkKCkpPT1udWxsP3ZvaWQgMDpoLm1lYXN1cmUoZixnKSk9PW51bGw/dm9pZCAwOmwuZHVyYXRpb259fX07dmFyIFd5PWZ1bmN0aW9uKCl7dmFyIGE9NTtWeS5Sbz4wJiYoYT1WeS5Sbyk7dGhpcy5LPWE7dGhpcy5IPTA7dGhpcy5OPVtdfSxYeT1mdW5jdGlvbihhKXtyZXR1cm4gYS5IPGEuSz8hMTpOYigpLWEuTlthLkglYS5LXTwxRTN9LFl5PWZ1bmN0aW9uKGEpe3ZhciBiPWEuSCsrJWEuSzthLk5bYl09TmIoKX07dmFyIFZ5PXtSbzpOZigzLDApfSwkeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy55YT1bXTt0aGlzLkg9dm9pZCAwO3RoaXMuWj17fTt0aGlzLks9dm9pZCAwO3RoaXMuamE9bmV3IFd5O3RoaXMuTGE9MUUzO3RoaXMuUj10aGlzLk49ITE7dGhpcy5mYT1EYigpO1p5KHRoaXMsZnVuY3Rpb24oKXt2YXIgYj1bWyJ2IiwiMyJdLFsidCIsInQiXSxbInBpZCIsU3RyaW5nKGEuZmEpXV0sYz1kdSgpO2MmJmIucHVzaChbImd0bSIsY10pO3JldHVybiBifSk7Y2QoZnVuY3Rpb24oKXthLmZhPURiKCl9LDg2NEU1KX0sWnk9ZnVuY3Rpb24oYSxiKXthLnlhLnB1c2goYil9LGF6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkg7aWYoZD09PXZvaWQgMClpZihjKWQ9cmooKTtlbHNlIHJldHVybiIiO2Zvcih2YXIgZT1bZmsoImh0dHBzOi8vIitFKDIxKSksIi9hIiwiP2lkPSIrRSg1KV0sZj1tKGEueWEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9Cmgoe2V2ZW50SWQ6ZCx0ZjohIWJ9KSxuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPW0ocC52YWx1ZSkscj1xLm5leHQoKS52YWx1ZSx0PXEubmV4dCgpLnZhbHVlO2UucHVzaCgiJiIrcisiPSIrdCl9ZS5wdXNoKCImej0wIik7cmV0dXJuIGUuam9pbigiIil9LGJ6PWZ1bmN0aW9uKGEpe2lmKCRrKDI2KSYmKGEuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCksYS5IIT09dm9pZCAwJiZhLlIpKXt2YXIgYj1sbyhjby5pYS5aYik7aWYoZ28oYikpYS5OfHwoYS5OPSEwLGlvKGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0pKTtlbHNlIGlmKGEuWlthLkhdfHxYeShhLmphKXx8YS5MYS0tPD0wKVAoMSksYS5aW2EuSF09ITA7ZWxzZXtZeShhLmphKTt2YXIgYz1heihhLCEwKTtYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6YS5IfSxjKTthLlI9ITE7YS5OPSExfX19LGN6PWZ1bmN0aW9uKGEpe2EuS3x8KGEuSz0KQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9LDUwMCkpfSxlej1mdW5jdGlvbihhKXt2YXIgYj1kejtiLlpbYV18fChhIT09Yi5IJiYoYnooYiksYi5IPWEpLGIuUj0hMCxjeihiKSxheihiKS5sZW5ndGg+PTIwMjImJmJ6KGIpKX0sZHo7ZnVuY3Rpb24gZnooYSl7Z3ooKTtaeShkeixhKX1mdW5jdGlvbiBoeigpe3ZhciBhO2E9YT09PXZvaWQgMD8hMTphO2d6KCk7dmFyIGI9YSxjPWR6O2I9Yj09PXZvaWQgMD8hMTpiO2lmKGZuLk4mJiRrKDI2KSl7dmFyIGQ9YXooYywhMCwhMCk7Yj9Wbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKTpYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKX19ZnVuY3Rpb24gZ3ooKXtkenx8KGR6PW5ldyAkeSl9O2Z1bmN0aW9uIGl6KCl7ZnVuY3Rpb24gYShjLGQpe3ZhciBlPXdiKHJiW2RdfHxbXSk7ZSYmYi5wdXNoKFtjLGVdKX12YXIgYj1bXTthKCJ1IiwiR1RNIik7YSgidXQiLCJUQUdHSU5HIik7YSgiaCIsIkhFQUxUSCIpO3JldHVybiBifTt2YXIgano9Imh0dHBzOi8vIitFKDIxKSxrej1mdW5jdGlvbigpe3RoaXMuTj0hMTt0aGlzLlI9W107dGhpcy5aPVtdO3RoaXMuSD17VEM6MCxIVEM6MH07dGhpcy5LPXt9fSxsej1mdW5jdGlvbihhLGIsYyxkKXthLktbYl18fChhLktbYl09e30pO2EuS1tiXVtjXT1kfSxvej1mdW5jdGlvbihhKXt2YXIgYj0iIixjPSIiLGQ9bXooKTtBYihkKSYmKGEuSC5JPU1hdGguZmxvb3IoZCkpO2M9bnooYS5ILEp5KS50b1N0cmluZygpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGEuSykpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9YS5LW2ddLm5hbWUsbD0iIixuPW56KGEuS1tnXSxLeSk7biYmKGw9aCsiLiIrbi50b1N0cmluZygpLGIrPSJ+IitsKX12YXIgcD0ifkFXQ1QiK2EuUi5qb2luKCIuIikscT0ifkdBIithLlouam9pbigiLiIpLHI9IiZjY2lkPSIrdmsoKS50b1N0cmluZygpKyImY2lkPSIrRSg1KS50b1N0cmluZygpKyImbD0iK2MrYisoYS5SLmxlbmd0aD8KcDoiIikrKGEuWi5sZW5ndGg/cToiIik7aWYoTSgyMTQpKXt2YXIgdCx1PSh0PXJkKCkpPT1udWxsP3ZvaWQgMDp0LmdldEVudHJpZXNCeU5hbWUoS2MpLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gU3RyaW5nKHYuZHVyYXRpb24pfSkuam9pbigiLiIpO3UmJihyKz0iflNTIit1KX1yZXR1cm4gcn0scHo9ZnVuY3Rpb24oYSxiKXtpZighYi5zdGFnZXx8YS5OfHwhT3koKXx8U3koYikpcmV0dXJuITE7dmFyIGMsZD0oYz1yZCgpKT09bnVsbD92b2lkIDA6Yy50aW1lT3JpZ2luO2lmKCFBYihkKSlhLk49ITA7ZWxzZSBpZihBYigkaygyNSkpJiYhU3koe3N0YWdlOkl5LlguamR9KSYmIWEuTiYmT3koKSl0cnl7dmFyIGU9TnVtYmVyKCRrKDI1KSk7VHkoe3N0YWdlOkl5LlguamR9LHtzdGFydFRpbWU6TWF0aC5tYXgoZS1kLDApfSk7VHkoe3N0YWdlOkl5LlguaWp9LHtzdGFydFRpbWU6MH0pO3ZhciBmPVV5KHtzdGFnZTpJeS5YLmpkfSxJeS5YLmlqKTtmJiYoYS5ILkw9TWF0aC5mbG9vcihmKSl9Y2F0Y2goZyl7YS5OPQohMH1pZihhLk4pcmV0dXJuITE7dHJ5e2lmKCFUeShiKSlyZXR1cm4hMX1jYXRjaChnKXtyZXR1cm4gYS5OPSEwLCExfXJldHVybiEwfSxxej1mdW5jdGlvbihhLGIsYyl7aWYocHooYSxiKSl0cnl7dmFyIGQ9VXkoYixjKTtpZihkKXJldHVybiBNYXRoLmZsb29yKGQpfWNhdGNoKGUpe2EuTj0hMH19LHN6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm1pfSl9LHR6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKSxiPXF6KGEse3N0YWdlOkl5LlguWGt9LEl5LlgubWkpO2IhPT12b2lkIDAmJihhLkguUz1iKX0sdXo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5Llgubml9KX0sdno9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlguQmgsZXZlbnRJZDphfSk7Yy5LW2FdJiZjLktbYV0ubmFtZXx8bHooYyxhLCJuYW1lIixTYihiLCJndG0uIik/YjoiKiIpfSx3ej1mdW5jdGlvbihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC52bSwKZXZlbnRJZDphfSxJeS5YLkJoKTtjIT09dm9pZCAwJiZseihiLGEsIlMiLGMpfSx5ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCksZD1xeihjLHtzdGFnZTpJeS5YLnRtLGV2ZW50SWQ6YX0sSXkuWC5CaCk7ZCE9PXZvaWQgMCYmbHooYyxhLCJFIixkKTtpZihiPT09Imd0bS5sb2FkIil7dmFyIGU9cXooYyx7c3RhZ2U6SXkuWC5Xa30sSXkuWC5aZyk7ZSE9PXZvaWQgMCYmKGMuSC5FPWUpO2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe2lmKCFjLk4mJk95KCkmJkUoNSkpe3ZhciBmPXh6KCk7ZiE9PXZvaWQgMCYmKGMuSC5GPU1hdGguZmxvb3IoZikpO3RyeXtmb3IodmFyIGc9aXooe2V2ZW50SWQ6MCx0ZjohMX0pLGg9W10sbD1tKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1tKG4udmFsdWUpLHE9cC5uZXh0KCkudmFsdWUscj1wLm5leHQoKS52YWx1ZTtoLnB1c2goIiYiK3ErIj0iK3IpfXZhciB0PUNwKCksdT1bW2ZrKGp6KSwiL2E/dj0zJnQ9bCIsIiZwaWQ9IisKRGIoKS50b1N0cmluZygpLCImcnY9IitFKDE0KSx0PyImdGFnX2V4cD0iK3Q6IiIsaC5qb2luKCIiKV0uam9pbigiIiksIiZndG09IixkdSgpLG96KGMpXS5qb2luKCIiKTtpZih1Lmxlbmd0aD4yMDIyKXt2YXIgdj1NYXRoLm1heCh1Lmxhc3RJbmRleE9mKCIuVFMiLDIwMjIpLHUubGFzdEluZGV4T2YoIn4iLDIwMjIpKTt1PXUuc2xpY2UoMCx2KX1Ybih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2fSx1KX1jYXRjaCh4KXt9fX0pfX0seno7ZnVuY3Rpb24gcnooKXt6enx8KHp6PW5ldyBreik7cmV0dXJuIHp6fWZ1bmN0aW9uIG16KCl7dHJ5e3ZhciBhO3JldHVybigoYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIilbMF0pLmRvbUludGVyYWN0aXZlfWNhdGNoKGIpe319CmZ1bmN0aW9uIG56KGEsYil7cmV0dXJuIE9iamVjdC5rZXlzKGIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYltjXX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYVtjXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4oIiIrKGM9PT0idGFnIj8iIjpjKSkuY29uY2F0KGFbY10udG9TdHJpbmcoKSl9KS5qb2luKCIuIil9ZnVuY3Rpb24gQXooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRW0sZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLloucHVzaChjKX1mdW5jdGlvbiBCeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FayxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuUi5wdXNoKGMpfWZ1bmN0aW9uIEN6KGEpe3ZhciBiPXJ6KCk7cHooYix7c3RhZ2U6SXkuWC5UaSxldmVudElkOmF9KX0KZnVuY3Rpb24gRHooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llguc20sZXZlbnRJZDphfSxJeS5YLlRpKTtjIT09dm9pZCAwJiZseihiLGEsIlYiLGMpfWZ1bmN0aW9uIHh6KCl7dHJ5e3ZhciBhLGI7cmV0dXJuKGI9KGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKS5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiBjLm5hbWU9PT0iZmlyc3QtY29udGVudGZ1bC1wYWludCJ9KSk9PW51bGw/dm9pZCAwOmIuc3RhcnRUaW1lfWNhdGNoKGMpe319ZnVuY3Rpb24gRXooYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlgueGosZXZlbnRJZDphLmlkLHRhZ0lkOk51bWJlcihiW0dmLnlqXSl9KX0KZnVuY3Rpb24gRnooYSxiLGMpe3ZhciBkPXJ6KCksZT1kbihiKSxmPU51bWJlcihiW0dmLnlqXSksZz1xeihkLHtzdGFnZTpjLGV2ZW50SWQ6YS5pZCx0YWdJZDpmfSxJeS5YLnhqKTtpZihnIT09dm9pZCAwJiZkLktbYS5pZF0pe3ZhciBoPWQuS1thLmlkXS50YWd8fCIiLGwsbj0obD1NeVtjXSkhPW51bGw/bDoiMSIscD1uZXcgUmVnRXhwKCJUU1xcZCIrZSsiLlRJIitmKSxxPSJUUyIrbitlKyIuVEkiK2YrIi5URSIrZztoLnNlYXJjaChwKT49MD9uIT09IjEiJiZseihkLGEuaWQsInRhZyIsaC5yZXBsYWNlKHAscS5yZXBsYWNlKCIuVEUiK2csIiIpKSk6KGx6KGQsYS5pZCwidGFnIiwoaD9oKyIuIjoiIikrcSksZT09PSJodG1sIiYmKGQuSC5IVEMrPTEpLGQuSC5UQys9MSl9fTt2YXIgS3o9e2dqOnticDoiMSIsdXE6IjIiLFZxOiIzIn19Owp2YXIgTHo9e30sTXo9T2JqZWN0LmZyZWV6ZSgoTHpbRi5ELmZoXT0xLEx6W0YuRC5naF09MSxMeltGLkQuQmRdPTEsTHpbRi5ELkNkXT0xLEx6W0YuRC5SY109MSxMeltGLkQuc2ldPTEsTHpbRi5ELnVpXT0xLEx6W0YuRC5DbF09MSxMeltGLkQuaWhdPTEsTHpbRi5ELkNmXT0xLEx6W0YuRC5EZl09MSxMeltGLkQuRWZdPTEsTHpbRi5ELkhhXT0xLEx6W0YuRC5GZl09MSxMeltGLkQuRmRdPTEsTHpbRi5ELnVjXT0xLEx6W0YuRC5IZF09MSxMeltGLkQuTGJdPTEsTHpbRi5ELkNiXT0xLEx6W0YuRC5UYl09MSxMeltGLkQubmJdPTEsTHpbRi5ELmViXT0xLEx6W0YuRC5HZV09MSxMeltGLkQua2hdPTEsTHpbRi5ELk9hXT0xLEx6W0YuRC5PcF09MSxMeltGLkQuU3BdPTEsTHpbRi5ELkllXT0xLEx6W0YuRC5HaV09MSxMeltGLkQuUWZdPTEsTHpbRi5ELlRhXT0xLEx6W0YuRC5ZY109MSxMeltGLkQuWmNdPTEsTHpbRi5ELnRiXT0xLEx6W0YuRC5RZF09MSxMeltGLkQuUmRdPTEsTHpbRi5ELlNkXT0KMSxMeltGLkQuTmVdPTEsTHpbRi5ELnphXT0xLEx6W0YuRC5VYV09MSxMeltGLkQuV2xdPTEsTHpbRi5ELlhsXT0xLEx6W0YuRC5ZbF09MSxMeltGLkQuWmxdPTEsTHpbRi5ELldiXT0xLEx6W0YuRC5UZF09MSxMeltGLkQuWGJdPTEsTHpbRi5ELmRkXT0xLEx6W0YuRC5VZF09MSxMeltGLkQuUWVdPTEsTHpbRi5ELlBhXT0xLEx6W0YuRC55Y109MSxMeltGLkQuVmRdPTEsTHpbRi5ELnpjXT0xLEx6W0YuRC5BY109MSxMeltGLkQuZmJdPTEsTHpbRi5ELlFhXT0xLEx6KSksTno9e30sT3o9KE56W0YuRC5VY109MSxOeltGLkQuUHBdPTEsTnpbRi5ELkhlXT0xLE56W0YuRC5yaV09MSxOei5vcmVmPTEsTnopO3ZhciBQeixRejsKZnVuY3Rpb24gUnooYSxiKXt2YXIgYz1hW0dmLlliXSxkPWImJmIuZXZlbnQ7aWYoIWMpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBlPVF6W2NdLGY9e30sZztmb3IoZyBpbiBhKWEuaGFzT3duUHJvcGVydHkoZykmJihTYihnLCJ2dHBfIik/ZltlIT09dm9pZCAwP2c6Zy5zdWJzdHJpbmcoNCldPWFbZ106Zz09PUdmLkZxLnRvU3RyaW5nKCkmJihmW2UhPT12b2lkIDA/InZ0cF9ndG1HZW5lcmF0ZWRUYWdnaW5nTWV0YWRhdGEiOmddPWFbZ10pKTtJZig2MSkmJmUmJihmLnZ0cF9leHRyYUV4cGVyaW1lbnRJZHM9ITApO2UmJmQmJmQuY2FjaGVkTW9kZWxWYWx1ZXMmJihmLnZ0cF9ndG1DYWNoZWRWYWx1ZXM9ZC5jYWNoZWRNb2RlbFZhbHVlcyk7YiYmZSYmKGYudnRwX2d0bUVudGl0eUluZGV4PWIuaW5kZXgsZi52dHBfZ3RtRW50aXR5TmFtZT1iLm5hbWUpO3JldHVybiBlIT09dm9pZCAwP2UoZik6UHooYyxmLApiKX12YXIgVHo9ZnVuY3Rpb24oKXt2YXIgYT1TejtpZihNKDU4NSkmJmZuLkspe3ZhciBiPUUoNSkuaW5kZXhPZigiR1RNLSIpPT09MCYmSWYoNjIpLGMsZD0oKGM9RmsoKSk9PW51bGw/dm9pZCAwOmMuc291cmNlKT09PTE7YiYmIWR8fGEuSHx8KGEuSD0hMCxVbSgiYWJsIiwiMSIpLHRvKCkpfX0sU3o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgVXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5uYW1lPVN0cmluZyh0aGlzLkhbR2YuUm1dfHwiIil9OwpVei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXtpZighYlt0aGlzLmluZGV4XSYmIWEuaXNCbG9ja2VkKHRoaXMuSCkpe2JbdGhpcy5pbmRleF09ITA7dGhpcy5IW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO3ZhciBjPXRoaXMubmFtZSxkO3RyeXt2YXIgZT17fSxmO2ZvcihmIGluIHRoaXMuSCl0aGlzLkguaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPWVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKSk7ZS52dHBfZ3RtRXZlbnRJZD1hLmlkO2EucHJpb3JpdHlJZCYmKGUudnRwX2d0bVByaW9yaXR5SWQ9YS5wcmlvcml0eUlkKTt2YXIgZz1kPVJ6KGUse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjIsbmFtZTpjfSk7ZVtHZi5aa10mJnR5cGVvZiBnPT09InN0cmluZyImJihnPWVbR2YuWmtdPT09MT9nLnRvTG93ZXJDYXNlKCk6Zy50b1VwcGVyQ2FzZSgpKTtlLmhhc093blByb3BlcnR5KEdmLmFoKSYmKGc9WWYoMTgpP2VbR2YuYWhdPT09MT8KVmYoZywiUEVSSU9EIik6ZVtHZi5haF09PT0yP1ZmKGcsIkNPTU1BIik6VmYoZywiQVVUT01BVElDIik6ZVtHZi5haF09PT0xP1ZmKGcsIlBFUklPRCIpOlZmKGcsIkNPTU1BIikpO2UuaGFzT3duUHJvcGVydHkoR2YuYmwpJiZnPT09bnVsbCYmKGc9ZVtHZi5ibF0pO2UuaGFzT3duUHJvcGVydHkoR2YuaWwpJiZnPT09dm9pZCAwJiYoZz1lW0dmLmlsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5lcCkmJihnPUpiKGcpKTtlLmhhc093blByb3BlcnR5KEdmLmZsKSYmZz09PSEwJiYoZz1lW0dmLmZsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5hbCkmJmc9PT0hMSYmKGc9ZVtHZi5hbF0pO2Q9Z31jYXRjaChoKXthLmxvZ01hY3JvRXJyb3ImJmEubG9nTWFjcm9FcnJvcihoLE51bWJlcih0aGlzLmluZGV4KSxjKSxkPSExfWJbdGhpcy5pbmRleF09ITE7cmV0dXJuIGR9fTtVei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgVno9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSD1hO3RoaXMudGFncz1iO3RoaXMubWFjcm9zPWN9O1Z6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3RyeXtmb3IodmFyIGM9e30sZD1tKE9iamVjdC5rZXlzKHRoaXMuSCkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2NbZl09Zj09PSJmdW5jdGlvbiI/dGhpcy5IW2ZdOmVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKX1yZXR1cm4gY2woYyl9Y2F0Y2goZyl7SlNPTi5zdHJpbmdpZnkodGhpcy5IKX1yZXR1cm4gMn07VnoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFd6PWZ1bmN0aW9uKGEsYil7dGhpcy5pbmRleD1iO3RoaXMuTj1bXTt0aGlzLlI9W107dGhpcy5LPVtdO3RoaXMuSD1bXTt0aGlzLm5hbWU9IiI7Zm9yKHZhciBjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPW0oZC52YWx1ZSksZj1lLm5leHQoKS52YWx1ZSxnPXlhKGUpLGg9ZixsPWc7aD09PSJpZiI/dGhpcy5OPWw6aD09PSJ1bmxlc3MiP3RoaXMuUj1sOmg9PT0iYWRkIj90aGlzLks9bDpoPT09ImJsb2NrIj90aGlzLkg9bDpoPT09InJ1bGVOYW1lIiYmKHRoaXMubmFtZT1sWzBdKX19OwpXei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1Yeih0aGlzLGIpLGQ9W10sZT1bXTtjPyhkLnB1c2guYXBwbHkoZCx3KHRoaXMuSykpLGUucHVzaC5hcHBseShlLHcodGhpcy5IKSkpOmM9PT1udWxsJiZlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpO3JldHVybntmaXJpbmdUYWdzOmQsYmxvY2tpbmdUYWdzOmV9fTsKdmFyIFh6PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW0oYS5OKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9YihkLnZhbHVlKTtpZihlPT09MClyZXR1cm4hMTtpZihlPT09MilyZXR1cm4gbnVsbH1mb3IodmFyIGY9bShhLlIpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1iKGcudmFsdWUpO2lmKGg9PT0yKXJldHVybiBudWxsO2lmKGg9PT0xKXJldHVybiExfXJldHVybiEwfTtXei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBZej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLklhPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5PPVN0cmluZyh0aGlzLklhW0dmLlliXSk7dGhpcy5uYW1lPVN0cmluZyh0aGlzLklhW0dmLlJtXXx8IiIpO3RoaXMudGFnSWQ9TnVtYmVyKHRoaXMuSWFbR2YueWpdKX07Cll6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwP3t9OmM7dmFyIGQsZT1jO2U9ZT09PXZvaWQgMD97fTplO3ZhciBmPXt9LGc7Zm9yKGcgaW4gdGhpcy5JYSl0aGlzLklhLmhhc093blByb3BlcnR5KGcpJiYoZltnXT1lbCh0aGlzLklhW2ddLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKSk7ZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsZSk7ZC52dHBfZ3RtVGFnSWQ9dGhpcy50YWdJZDt0aGlzLklhW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO1J6KGQse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjEsbmFtZTp0aGlzLm5hbWV9KX07WXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5JYSl9Owp2YXIgWno9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLnRuXSlyZXR1cm4gZWwoYS5JYVtHZi50bl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSwkej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YuRG5dKXJldHVybiBlbChhLklhW0dmLkRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LGFBPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5JYVtHZi5jcF07aWYoYylyZXR1cm4gZWwoYyxiLGEudGFncyxhLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbihhKXtyZXR1cm4gZWwodGhpcy5JYVtHZi5NRVRBREFUQV0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBiQT1mdW5jdGlvbigpe3RoaXMubWFjcm9zPVtdO3RoaXMucnVsZXM9W107dGhpcy5wcmVkaWNhdGVzPVtdO3RoaXMudGFncz1bXTt0aGlzLnZrPVtdfTtiQS5wcm90b3R5cGUuZ2V0UnVsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ydWxlc307dmFyIGNBPW5ldyBiQTtmdW5jdGlvbiBkQShhLGIsYyxkKXt2YXIgZT1XYygpLGY7aWYoZT09PTEpYTp7dmFyIGc9RSgzKTtnPWcudG9Mb3dlckNhc2UoKTtmb3IodmFyIGg9Imh0dHBzOi8vIitnLGw9Imh0dHA6Ly8iK2csbj0xLHA9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikscT0wO3E8cC5sZW5ndGgmJnE8MTAwO3ErKyl7dmFyIHI9cFtxXS5zcmM7aWYocil7cj1yLnRvTG93ZXJDYXNlKCk7aWYoci5pbmRleE9mKGwpPT09MCl7Zj0zO2JyZWFrIGF9bj09PTEmJnIuaW5kZXhPZihoKT09PTAmJihuPTIpfX1mPW59ZWxzZSBmPWU7cmV0dXJuKGY9PT0yfHxkfHwiaHR0cDoiIT09QS5sb2NhdGlvbi5wcm90b2NvbD9hOmIpK2N9O3ZhciBlQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEuSylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5LLGQpJiZjLnB1c2goZCsifiIrYS5LW2RdKTt2YXIgZT1bXSxmO2ZvcihmIGluIGEuSClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5ILGYpJiZlLnB1c2goZisifiIrYS5IW2ZdKTtiLnRmJiYoYS5LPXt9LGEuSD17fSk7dmFyIGc9W107Yy5sZW5ndGg+MCYmZy5wdXNoKFsiYmNzIixjLmpvaW4oIi4iKV0pO2UubGVuZ3RoPjAmJmcucHVzaChbImJldCIsZS5qb2luKCIuIildKTtyZXR1cm4gZ30pfSxmQTtmdW5jdGlvbiBnQSgpe2ZBfHwoZkE9bmV3IGVBKX07ZnVuY3Rpb24gaEEoYSxiLGMsZCxlKXtpZighRWsoYSkpe2QubG9hZEV4cGVyaW1lbnRzPXlqKCk7SGsoYSxkLGUpO3ZhciBmPWlBKGEpLGc9ZnVuY3Rpb24oKXtvaygpLmNvbnRhaW5lclthXSYmKG9rKCkuY29udGFpbmVyW2FdLnN0YXRlPTMpO2pBKCl9LGg9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgbD1YaigpLG49bCsiLyIra0EoZixhKTtabihoLG4sdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxuLGwrIi8iK2YsaCxnKX0pfWVsc2V7dmFyIHA9U2IoYSwiR1RNLSIpLHE9ZGsoKSxyPWM/Ii9ndGFnL2pzIjoiL2d0bS5qcyIsdD1tQShiLHIrZixhKTtpZighdCl7dmFyIHU9RSgzKStyO3EmJktjJiZwJiYodT1LYy5yZXBsYWNlKC9eKD86aHR0cHM/OlwvXC8pPy9pLCIiKS5zcGxpdCgvWz8jXS8pWzBdKTt0PWRBKCJodHRwczovLyIsImh0dHA6Ly8iLHUrZil9Wm4oaCx0LHZvaWQgMCxnKX19fQpmdW5jdGlvbiBqQSgpe0trKCl8fEdiKExrKCksZnVuY3Rpb24oYSxiKXtuQShhLGIudHJhbnNwb3J0VXJsLGIuY29udGV4dCk7UCg5Mil9KX1mdW5jdGlvbiBuQShhLGIsYyxkKXtpZighR2soYSkpaWYoYy5sb2FkRXhwZXJpbWVudHN8fChjLmxvYWRFeHBlcmltZW50cz15aigpKSxLaygpKUprKGEsYixjLGQpO2Vsc2V7SWsoYSxjLGQpO3ZhciBlPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGY9WGooKSxnPSJndGQiK2lBKGEsITApLGg9ZisiLyIra0EoZyxhKTtabihlLGgsdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxoLGYrIi8iK2csZSl9KX1lbHNle3ZhciBsPSIvZ3RhZy9kZXN0aW5hdGlvbiIraUEoYSwhMCksbj1tQShiLGwsYSk7bnx8KG49ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsRSgzKStsKSk7Wm4oZSxuKX19fQpmdW5jdGlvbiBsQShhLGIsYyxkLGUpe2lmKE0oNDEzKSl7Z0EoKTt2YXIgZj1mQTtpZihmbi5OKXt2YXIgZz1BLnBlcmZvcm1hbmNlLGg9LTE7aWYoZyYmZy5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbD1SaihiKS5ocmVmLG49Zy5nZXRFbnRyaWVzQnlOYW1lKGwpLnBvcCgpO2lmKCFuKWZvcih2YXIgcD1nLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj1wW3FdO2lmKHIubmFtZSYmci5uYW1lLmluZGV4T2YoYikhPT0tMSl7bj1yO2JyZWFrfX1uJiZuLnJlc3BvbnNlU3RhdHVzIT09dm9pZCAwJiYoaD1uLnJlc3BvbnNlU3RhdHVzKX1mLktbYV09aH1QKDE5MCk7dmFyIHQ9bm0oam0uYmEua2opfHx7fTt0W2FdPSEwO21tKGptLmJhLmtqLHQpO3ZhciB1PWMrKGMuaW5kZXhPZigiPyIpPT09LTE/Ij9mPTEiOiImZj0xIik7ZT9abihkLHUsdm9pZCAwLGUpOlpuKGQsdSl9ZWxzZSBlJiZlKCl9CmZ1bmN0aW9uIGlBKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Ij9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChhKSxkPUUoMTkpO2QhPT0iZGF0YUxheWVyIiYmKGMrPSImbD0iK2QpO3ZhciBlPVNiKGEsIkdUTS0iKTtpZighZXx8YiljKz0iJmN4PWMiO2UmJklmKDYyKSYmKGMrPSImZ29vZ2xlX29ubHk9dHJ1ZSIpO3ZhciBmPWMsZyxoPXtEbzpKZigxNSksSW86RSgxNCl9O2c9Q2YoaCk7Yz1mKygiJmd0bT0iK2cpO2RrKCkmJihjKz0iJnNpZ249IitBai5xaik7dmFyIGw9YyxuPUpmKDU0KTtpZihuPT09MSl7bCs9IiZmcHM9ZmMiO3ZhciBwPUUoNjApO3AmJihsKz0iJmdkZXY9IitwKX1lbHNlIG49PT0yJiYobCs9IiZmcHM9ZmUiKTtyZXR1cm4gbH0KZnVuY3Rpb24ga0EoYSxiKXtpZighTSg0MTMpfHwhWGooKSlyZXR1cm4gYTt2YXIgYz1FKDU4KTtpZighYylyZXR1cm4gUCgxODIpLGE7dHJ5e3ZhciBkPU5iKCksZT1FZihhLGMpLGY9TmIoKS1kO2dBKCk7dmFyIGc9ZkE7Zm4uTiYmKGcuSFtiXT1mKTtyZXR1cm4gZX1jYXRjaChoKXtyZXR1cm4gUCgxODMpLGF9fWZ1bmN0aW9uIG1BKGEsYixjKXtpZihhaygpJiZhKXt2YXIgZD1FKDU4KSxlPVhqKCk7aWYoZCYmZSl0cnl7dmFyIGY9TmIoKTtiPWUrIi8iK0VmKGIsZCk7dmFyIGc9TmIoKS1mO2dBKCk7dmFyIGg9ZkE7Zm4uTiYmKGguSFtjXT1nKX1jYXRjaChsKXtQKDE4Myl9cmV0dXJuIFlqKGEsYil9fTt2YXIgcEE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz1uZXcgRmI7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9e25hbWU6RSgxOSksc2V0OmZ1bmN0aW9uKGIsYyl7RWQoVmIoYixjKSxhLkgpO29BKGEpfSxnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuZ2V0KGIsMil9LHJlc2V0OmZ1bmN0aW9uKCl7YS5LPW5ldyBGYjthLkg9e307b0EoYSl9fX07cEEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3JldHVybiBiIT0yP3RoaXMuSy5nZXQoYSk6cUEodGhpcyxhKX07dmFyIHFBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLnNwbGl0KCIuIik7Yz1jfHxbXTtmb3IodmFyIGU9YS5ILGY9MDtmPGQubGVuZ3RoO2YrKyl7aWYoZT09PW51bGwpcmV0dXJuITE7aWYoZT09PXZvaWQgMClicmVhaztlPWVbZFtmXV07aWYoYy5pbmRleE9mKGUpIT09LTEpcmV0dXJufXJldHVybiBlfTsKcEEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTi5oYXNPd25Qcm9wZXJ0eShhKXx8KHRoaXMuSy5zZXQoYSxiKSxFZChWYihhLGIpLHRoaXMuSCksb0EodGhpcykpfTt2YXIgc0E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9WyJndG0uYWxsb3dsaXN0IiwiZ3RtLmJsb2NrbGlzdCIsImd0bS53aGl0ZWxpc3QiLCJndG0uYmxhY2tsaXN0IiwidGFnVHlwZUJsYWNrbGlzdCJdLGI9ckEsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9Yi5nZXQoZCwxKTtpZihBcnJheS5pc0FycmF5KGUpfHxDZChlKSllPUVkKGUsbnVsbCk7Yi5OW2RdPWV9fSxvQT1mdW5jdGlvbihhLGIpe0diKGEuTixmdW5jdGlvbihjLGQpe2EuSy5zZXQoYyxkKTtFZChWYihjKSxhLkgpO0VkKFZiKGMsZCksYS5IKTtiJiZkZWxldGUgYS5OW2NdfSl9LHJBPW5ldyBwQSx0QT1yQS5SO2Z1bmN0aW9uIHVBKGEsYil7cmV0dXJuIHJBLmdldChhLGIpfQpmdW5jdGlvbiB2QShhLGIpe3ZhciBjPWI9PT12b2lkIDA/MjpiLGQ9ckEsZSxmPShjPT09dm9pZCAwPzI6YykhPT0xP3FBKGQsYSk6ZC5LLmdldChhKTtBZChmKT09PSJhcnJheSJ8fEFkKGYpPT09Im9iamVjdCI/ZT1FZChmLG51bGwpOmU9ZjtyZXR1cm4gZX07dmFyIHdBPW5ldyBSZWdFeHAoL14oLipcLik/KGdvb2dsZXx5b3V0dWJlfGJsb2dnZXJ8d2l0aGdvb2dsZSkoXC5jb20/KT8oXC5bYS16XXsyfSk/XC4/JC8pLHhBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbIm5vbkdvb2dsZVBpeGVscyJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlUGl4ZWxzOltdLG5vbkdvb2dsZVNjcmlwdHM6WyJub25Hb29nbGVQaXhlbHMiXSxub25Hb29nbGVJZnJhbWVzOlsibm9uR29vZ2xlUGl4ZWxzIl19LHlBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbImN1c3RvbVNjcmlwdHMiLAoiaHRtbCJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiXSxub25Hb29nbGVQaXhlbHM6WyJjdXN0b21QaXhlbHMiLCJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlU2NyaXB0czpbImN1c3RvbVNjcmlwdHMiLCJodG1sIl0sbm9uR29vZ2xlSWZyYW1lczpbImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyJdfSx6QT0iZ29vZ2xlIGN1c3RvbVBpeGVscyBjdXN0b21TY3JpcHRzIGh0bWwgbm9uR29vZ2xlUGl4ZWxzIG5vbkdvb2dsZVNjcmlwdHMgbm9uR29vZ2xlSWZyYW1lcyIuc3BsaXQoIiAiKTsKZnVuY3Rpb24gQUEoKXt2YXIgYT11QSgiZ3RtLmFsbG93bGlzdCIpfHx1QSgiZ3RtLndoaXRlbGlzdCIpO2EmJlAoOSk7SWYoNjIpJiYoYT12b2lkIDApO0JBKCkmJihJZig2Mik/UCgxMTYpOihQKDExNyksSWYoNDgpJiYoYT1bXSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdUTSBibG9ja2VkLiBTZWUgZ28vMTM2ODc3MjguIikpKSk7dmFyIGI9YSYmUmIoS2IoYSkseEEpLGM9dUEoImd0bS5ibG9ja2xpc3QiKXx8dUEoImd0bS5ibGFja2xpc3QiKTtjfHwoYz11QSgidGFnVHlwZUJsYWNrbGlzdCIpKSYmUCgzKTtjP1AoOCk6Yz1bXTtCQSgpJiYoYz1LYihjKSxjLnB1c2goIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJzYW5kYm94ZWRTY3JpcHRzIikpO0tiKGMpLmluZGV4T2YoImdvb2dsZSIpPj0wJiZQKDIpO3ZhciBkPWMmJlJiKEtiKGMpLHlBKSxlPXt9O3JldHVybiBmdW5jdGlvbihmKXt2YXIgZz1mJiYKZltHZi5ZYl07aWYoIWd8fHR5cGVvZiBnIT09InN0cmluZyIpcmV0dXJuITA7Zz1nLnJlcGxhY2UoL15fKi8sIiIpO2lmKGVbZ10hPT12b2lkIDApcmV0dXJuIGVbZ107dmFyIGg9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ddfHxbXSxsPSEwO2EmJihsPWwmJkNBKGcsaCxiKSk7dmFyIG49ITE7YyYmKG49REEoZyxoLGQpKTt2YXIgcD0hbHx8bjshcCYmKGguaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpPT09LTF8fGImJmIuaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpIT09LTE/MDpFYihkLHpBKSkmJihwPSEwKTtyZXR1cm4gZVtnXT1wfX1mdW5jdGlvbiBDQShhLGIsYyl7aWYoYy5pbmRleE9mKGEpPDApaWYoYiYmYi5sZW5ndGg+MClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7aWYoYy5pbmRleE9mKGJbZF0pPDApcmV0dXJuIFAoMTEpLCExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9CmZ1bmN0aW9uIERBKGEsYixjKXt2YXIgZD1jLmluZGV4T2YoYSk+PTA7aWYoZClyZXR1cm4gZDt2YXIgZT1FYihjLGJ8fFtdKTtlJiZQKDEwKTtyZXR1cm4gZX1mdW5jdGlvbiBCQSgpe3JldHVybiB3QS50ZXN0KEEubG9jYXRpb24mJkEubG9jYXRpb24uaG9zdG5hbWUpfTtmdW5jdGlvbiBFQShhKXtmb3IodmFyIGI9W10sYz1bXSxkPUZBKGEpLGU9bShjQS5nZXRSdWxlcygpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUuZXZhbHVhdGUoYSxkKSxoPWcuZmlyaW5nVGFncyxsPWcuYmxvY2tpbmdUYWdzLG49MDtuPGgubGVuZ3RoO24rKyliW2hbbl1dPSEwO2Zvcih2YXIgcD0wO3A8bC5sZW5ndGg7cCsrKWNbbFtwXV09ITB9Zm9yKHZhciBxPVtdLHI9MDtyPGNBLnRhZ3MubGVuZ3RoO3IrKyliW3JdJiYhY1tyXSYmKHFbcl09ITApO3JldHVybiBxfWZ1bmN0aW9uIEZBKGEpe3ZhciBiPVtdO3JldHVybiBmdW5jdGlvbihjKXtiW2NdPT09dm9pZCAwJiYoYltjXT1jQS5wcmVkaWNhdGVzW2NdLmV2YWx1YXRlKGEsW10pKTtyZXR1cm4gYltjXX19O3ZhciBHQT1mdW5jdGlvbigpe3RoaXMuSz0wO3RoaXMuSD17fX07R0EucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0rK3RoaXMuSzt0aGlzLkhbYV09dGhpcy5IW2FdfHx7fTt0aGlzLkhbYV1bU3RyaW5nKGQpXT17bGlzdGVuZXI6YixyZjpjfTtyZXR1cm4gZH07R0EucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdLGQ9U3RyaW5nKGIpO2lmKCFjfHwhY1tkXSlyZXR1cm4hMTtkZWxldGUgY1tkXTtyZXR1cm4hMH07dmFyIElBPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107R2IoSEEuSFthXSxmdW5jdGlvbihkLGUpe2MuaW5kZXhPZihlLmxpc3RlbmVyKTwwJiYoZS5yZj09PXZvaWQgMHx8Yi5pbmRleE9mKGUucmYpPj0wKSYmYy5wdXNoKGUubGlzdGVuZXIpfSk7cmV0dXJuIGN9O2Z1bmN0aW9uIEpBKGEsYixjKXtyZXR1cm57ZW50aXR5VHlwZTphLGluZGV4SW5PcmlnaW5Db250YWluZXI6YixuYW1lSW5PcmlnaW5Db250YWluZXI6YyxvcmlnaW5Db250YWluZXJJZDpFKDUpLG9yaWdpbkNJZDp2aygpfX07ZnVuY3Rpb24gS0EoYSxiKXtpZihkYXRhLmVudGl0aWVzKXt2YXIgYz1kYXRhLmVudGl0aWVzW2FdO2lmKGMpcmV0dXJuIGNbYl19fTt2YXIgTUE9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9ITE7dGhpcy5SPVtdO3RoaXMuZXZlbnREYXRhPXt0YWdzOltdfTt0aGlzLlo9ITE7dGhpcy5LPXRoaXMuTj0wO0xBKHRoaXMsYSxiKX0sTkE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoQ2ouaGFzT3duUHJvcGVydHkoYil8fGI9PT0iX196b25lIilyZXR1cm4tMTt2YXIgZT17fTtDZChkKSYmKGU9RWQoZCxlKSk7ZS5pZD1jO2Uuc3RhdHVzPSJ0aW1lb3V0IjtyZXR1cm4gYS5ldmVudERhdGEudGFncy5wdXNoKGUpLTF9LE9BPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuZXZlbnREYXRhLnRhZ3NbYl07ZSYmKGUuc3RhdHVzPWMsZS5leGVjdXRpb25UaW1lPWQpfSxQQT1mdW5jdGlvbihhKXtpZighYS5IKXtmb3IodmFyIGI9YS5SLGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdKCk7YS5IPSEwO2EuUi5sZW5ndGg9MH19LExBPWZ1bmN0aW9uKGEsYixjKXtiIT09dm9pZCAwJiZhLndnKGIpO2MmJkEuc2V0VGltZW91dChmdW5jdGlvbigpe1BBKGEpfSwKTnVtYmVyKGMpKX07TUEucHJvdG90eXBlLndnPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1QYihmdW5jdGlvbigpe2JkKGZ1bmN0aW9uKCl7YShFKDUpLGIuZXZlbnREYXRhKX0pfSk7dGhpcy5IP2MoKTp0aGlzLlIucHVzaChjKX07dmFyIFFBPWZ1bmN0aW9uKGEpe2EuTisrO3JldHVybiBQYihmdW5jdGlvbigpe2EuSysrO2EuWiYmYS5LPj1hLk4mJlBBKGEpfSl9LFJBPWZ1bmN0aW9uKGEpe2EuWj0hMDthLks+PWEuTiYmUEEoYSl9O2Z1bmN0aW9uIFNBKCl7cmV0dXJuIEFbVEEoKV19CmZ1bmN0aW9uIFRBKCl7cmV0dXJuIEEuR29vZ2xlQW5hbHl0aWNzT2JqZWN0fHwiZ2EifXZhciBXQT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e319O2Z1bmN0aW9uIFhBKCl7YTp7dmFyIGE9RSg1KTt9fQpmdW5jdGlvbiBZQShhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVNBKCksZD1jJiZjLmdldEJ5TmFtZSYmYy5nZXRCeU5hbWUoYSk7aWYoZCl7dmFyIGU9ZC5nZXQoInNlbmRIaXRUYXNrIik7ZC5zZXQoInNlbmRIaXRUYXNrIixmdW5jdGlvbihmKXt2YXIgZz1mLmdldCgiaGl0UGF5bG9hZCIpLGg9Zi5nZXQoImhpdENhbGxiYWNrIiksbD1nLmluZGV4T2YoIiZ0aWQ9IitiKTwwO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZy5yZXBsYWNlKC8mdGlkPVVBLVswLTldKy1bMC05XSsvLCImdGlkPSIrYiksITApLGYuc2V0KCJoaXRDYWxsYmFjayIsdm9pZCAwLCEwKSk7ZShmKTtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcsITApLGYuc2V0KCJoaXRDYWxsYmFjayIsaCwhMCksZi5zZXQoIl94XzE5Iix2b2lkIDAsITApLGUoZikpfSl9fX07dmFyIGFCPVsiZXMiLCIxIl0sYkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZXZlbnREYXRhPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYzt2YXIgZD1iLmV2ZW50SWQsZT1iLnRmO2lmKGEuZXZlbnREYXRhW2RdKXt2YXIgZj1bXTthLkhbZF18fGYucHVzaChhQik7Zi5wdXNoLmFwcGx5KGYsdyhhLmV2ZW50RGF0YVtkXSkpO2UmJihhLkhbZF09ITApO2M9Zn1lbHNlIGM9W107cmV0dXJuIGN9KX0sY0I7ZnVuY3Rpb24gZEIoYSxiKXt2YXIgYztpZigoYz1jQikhPW51bGwmJmZuLk4pe3ZhciBkPWMuZXZlbnREYXRhLGU7ZT1iLm1hdGNoKC9eKGd0bXxndGFnKVwuLyk/ZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIqIjtkW2FdPVtbImUiLGVdLFsiZWlkIixTdHJpbmcoYSldXTtneigpO2V6KGEpfX07dmFyIGVCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbInRyIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbInRpIixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LGZCOwpmdW5jdGlvbiBnQihhLGIsYyl7ZkJ8fChmQj1uZXcgZUIpO3ZhciBkPWZCO2lmKGZuLk4mJmIpe3ZhciBlPWRuKGIpO2QuSFthXT1kLkhbYV18fFtdO2QuSFthXS5wdXNoKGMrZSk7dmFyIGY9YltHZi5ZYl07aWYoIWYpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBnPShReltmXT8iMSI6IjIiKStlO2QuS1thXT1kLktbYV18fFtdO2QuS1thXS5wdXNoKGcpO2d6KCk7ZXooYSl9fTtmdW5jdGlvbiBoQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigwLGEsYixjKX1mdW5jdGlvbiBqQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDAsYSl9ZnVuY3Rpb24ga0IoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMSxhLGIsYyl9ZnVuY3Rpb24gbEIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygxLGEpfXZhciBtQj1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuSD17fX0sbkI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRhaW5lcltiXTtjfHwoYz17X2VudGl0eTp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119LF9ldmVudDp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119fSxhLmNvbnRhaW5lcltiXT1jKTtyZXR1cm4gY307Cm1CLnByb3RvdHlwZS5hZGRSZXN0cmljdGlvbj1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZighZHx8IXRoaXMuSFtiXSl7dmFyIGU9bkIodGhpcyxiKTthPT09MD9kP2UuX2VudGl0eS5leHRlcm5hbC5wdXNoKGMpOmUuX2VudGl0eS5pbnRlcm5hbC5wdXNoKGMpOmE9PT0xJiYoZD9lLl9ldmVudC5leHRlcm5hbC5wdXNoKGMpOmUuX2V2ZW50LmludGVybmFsLnB1c2goYykpfX07Cm1CLnByb3RvdHlwZS5nZXRSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpO2lmKGE9PT0wKXt2YXIgZCxlO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihlPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXSkpfWlmKGE9PT0xKXt2YXIgZixnO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZj1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmYuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGc9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpnLmV4dGVybmFsKXx8W10pKX1yZXR1cm5bXX07Cm1CLnByb3RvdHlwZS5nZXRFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYiksZCxlO3JldHVybiBhPT09MD8oYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5leHRlcm5hbCl8fFtdOihjPT1udWxsP3ZvaWQgMDooZT1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXX07bUIucHJvdG90eXBlLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEpe3ZhciBiPW5CKHRoaXMsYSk7Yi5fZXZlbnQmJihiLl9ldmVudC5leHRlcm5hbD1bXSk7Yi5fZW50aXR5JiYoYi5fZW50aXR5LmV4dGVybmFsPVtdKTt0aGlzLkhbYV09ITB9O2Z1bmN0aW9uIGlCKCl7cmV0dXJuIGtqKCJyIixmdW5jdGlvbigpe3JldHVybiBuZXcgbUJ9KX07ZnVuY3Rpb24gb0IoYSxiLGMsZCl7dmFyIGU9Y0EudGFnc1thXSxmPXBCKGEsYixjLGQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBnPVp6KGUsYyk7aWYoZyYmZy5sZW5ndGgpe3ZhciBoPWdbMF07Zj1vQihoLmluZGV4LHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6aC5ibz09PTE/Yi50ZXJtaW5hdGU6Zix0ZXJtaW5hdGU6Yi50ZXJtaW5hdGV9LGMsZCl9cmV0dXJuIGZ9CmZ1bmN0aW9uIHBCKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXtmdW5jdGlvbiB5KCl7aW0oMyk7dmFyIFM9TmIoKS1OO0pBKDEsYSxmLmdldE5hbWUoKSk7Z0IoYy5pZCxnLCI3Iik7T0EoYy5sZCxELCJleGNlcHRpb24iLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnVqKTtJfHwoST0hMCxsKCkpfWlmKGYuSWFbR2YuT3FdKWwoKTtlbHNle3ZhciB6PWFBKGYsYyk7aWYoeiE9bnVsbClmb3IodmFyIEM9MDtDPHoubGVuZ3RoO0MrKylpZighWG8oeltDXSkpe2woKTtyZXR1cm59dmFyIEQ9TkEoYy5sZCxmLk8sZi50YWdJZCxmLmdldE1ldGFkYXRhKGMpKSxJPSExLEc9e3Z0cF9ndG1PblN1Y2Nlc3M6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI1Iik7T0EoYy5sZCxELCJzdWNjZXNzIixTKTtmbi5IJiZGeihjLGcsSXkuWC53aik7aCgpfX0sdnRwX2d0bU9uRmFpbHVyZTpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjYiKTsKT0EoYy5sZCxELCJmYWlsdXJlIixTKTtmbi5IJiZGeihjLGcsSXkuWC52aik7bCgpfX19O0cudnRwX2d0bUV2ZW50SWQ9Yy5pZDtjLnByaW9yaXR5SWQmJihHLnZ0cF9ndG1Qcmlvcml0eUlkPWMucHJpb3JpdHlJZCk7Z0IoYy5pZCxnLCIxIik7Zm4uSCYmRXooYyxnKTt2YXIgTj1OYigpO3RyeXtmLmV2YWx1YXRlKGMsZCxHKX1jYXRjaChTKXt5KFMpfWZuLkgmJkZ6KGMsZyxJeS5YLkNuKX19dmFyIGY9Y0EudGFnc1thXSxnPWYuRmcoKSxoPWIub25TdWNjZXNzLGw9Yi5vbkZhaWx1cmUsbj1iLnRlcm1pbmF0ZTtpZihjLmlzQmxvY2tlZChnKSlyZXR1cm4gbnVsbDt2YXIgcD0keihmLGMpO2lmKHAmJnAubGVuZ3RoKXt2YXIgcT1wWzBdLHI9b0IocS5pbmRleCx7b25TdWNjZXNzOmgsb25GYWlsdXJlOmwsdGVybWluYXRlOm59LGMsZCk7aWYoIXIpcmV0dXJuIG51bGw7aD1yO2w9cS5ibz09PTI/bjpyfWlmKGYuSWFbR2Yua25dfHxmLklhW0dmLlFxXSl7dmFyIHQ9Zi5JYVtHZi5rbl0/CmNBLnZrOmMudmssdT1oLHY9bDtpZighdFthXSl7dmFyIHg9cUIoYSx0LFBiKGUpKTtoPXgub25TdWNjZXNzO2w9eC5vbkZhaWx1cmV9cmV0dXJuIGZ1bmN0aW9uKCl7dFthXSh1LHYpfX1yZXR1cm4gZX1mdW5jdGlvbiBxQihhLGIsYyl7dmFyIGQ9W10sZT1bXTtiW2FdPXJCKGQsZSxjKTtyZXR1cm57b25TdWNjZXNzOmZ1bmN0aW9uKCl7YlthXT1zQjtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKylkW2ZdKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2JbYV09dEI7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSgpfX19ZnVuY3Rpb24gckIoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkLGUpe2EucHVzaChkKTtiLnB1c2goZSk7YygpfX1mdW5jdGlvbiBzQihhKXthKCl9ZnVuY3Rpb24gdEIoYSxiKXtiKCl9O3ZhciB3Qj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxjQS50YWdzLmxlbmd0aDtkKyspaWYoYVtkXSl7dmFyIGU9Y0EudGFnc1tkXTt2YXIgZj1RQShiLmxkKTt0cnl7dmFyIGc9b0IoZCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmYsdGVybWluYXRlOmZ9LGIsZCk7aWYoZyl7dmFyIGg9UXpbZS5PXTtjLnB1c2goe05vOmQscHJpb3JpdHlPdmVycmlkZTooaD9oLnByaW9yaXR5T3ZlcnJpZGV8fDA6MCl8fEtBKGUuTywxKXx8MCxleGVjdXRlOmd9KX1lbHNlIHVCKGQsYiksZigpfWNhdGNoKG4pe2YoKX19Yy5zb3J0KHZCKTtmb3IodmFyIGw9MDtsPGMubGVuZ3RoO2wrKyljW2xdLmV4ZWN1dGUoKTtyZXR1cm4gYy5sZW5ndGg+MH07CmZ1bmN0aW9uIHhCKGEsYil7aWYoIUhBKXJldHVybiExO3ZhciBjPWFbImd0bS50cmlnZ2VycyJdJiZTdHJpbmcoYVsiZ3RtLnRyaWdnZXJzIl0pLGQ9SUEoYS5ldmVudCxjP1N0cmluZyhjKS5zcGxpdCgiLCIpOltdKTtpZighZC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPVFBKGIpO3RyeXtkW2VdKGEsZil9Y2F0Y2goZyl7ZigpfX1yZXR1cm4hMH1mdW5jdGlvbiB2QihhLGIpe3ZhciBjLGQ9Yi5wcmlvcml0eU92ZXJyaWRlLGU9YS5wcmlvcml0eU92ZXJyaWRlO2M9ZD5lPzE6ZDxlPy0xOjA7dmFyIGY7aWYoYyE9PTApZj1jO2Vsc2V7dmFyIGc9YS5ObyxoPWIuTm87Zj1nPmg/MTpnPGg/LTE6MH1yZXR1cm4gZn0KZnVuY3Rpb24gdUIoYSxiKXtpZihmbi5OKXt2YXIgYz1mdW5jdGlvbihkKXt2YXIgZT1iLmlzQmxvY2tlZChjQS50YWdzW2RdLkZnKCkpPyIzIjoiNCIsZj1aeihjQS50YWdzW2RdLGIpO2YmJmYubGVuZ3RoJiZjKGZbMF0uaW5kZXgpO2dCKGIuaWQsY0EudGFnc1tkXS5GZygpLGUpO3ZhciBnPSR6KGNBLnRhZ3NbZF0sYik7ZyYmZy5sZW5ndGgmJmMoZ1swXS5pbmRleCl9O2MoYSl9fXZhciBIQTtmdW5jdGlvbiB5Qigpe0hBfHwoSEE9bmV3IEdBKTtyZXR1cm4gSEF9CmZ1bmN0aW9uIHpCKGEpe3ZhciBiPWFbImd0bS51bmlxdWVFdmVudElkIl0sYz1hWyJndG0ucHJpb3JpdHlJZCJdLGQ9YVsiZ3RtLnByaW9yaXR5UXVldWUiXSxlPWEuZXZlbnQ7Zm4uSCYmdnooYixlKTtpZihlPT09Imd0bS5qcyIpe2lmKCRrKDEzKSlyZXR1cm4hMTtaaygxMywhMCl9dmFyIGY9ITEsZz1sQigpLGg9RWQoYSxudWxsKTtpZighZy5ldmVyeShmdW5jdGlvbih1KXtyZXR1cm4gdSh7b3JpZ2luYWxFdmVudERhdGE6aH0pfSkpe2lmKGUhPT0iZ3RtLmpzIiYmZSE9PSJndG0uaW5pdCImJmUhPT0iZ3RtLmluaXRfY29uc2VudCIpcmV0dXJuITE7Zj0hMH1kQihiLGUpO3ZhciBsPWEuZXZlbnRDYWxsYmFjayxuPWEuZXZlbnRUaW1lb3V0LHA9e2lkOmIscHJpb3JpdHlJZDpjLHByaW9yaXR5UXVldWU6ZCxuYW1lOmUsaXNCbG9ja2VkOkFCKGgsZiksdms6W10sbG9nTWFjcm9FcnJvcjpmdW5jdGlvbih1LHYseCl7UCg2KTtpbSg0KTtKQSgyLHYseCl9LGNhY2hlZE1vZGVsVmFsdWVzOkJCKCksCmxkOm5ldyBNQShmdW5jdGlvbigpe2ZuLkgmJnl6KGIsZSk7RnkoNSxlKTtsJiZsLmFwcGx5KGwsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sbiksb3JpZ2luYWxFdmVudERhdGE6aH07Zm4uSCYmQ3oocC5pZCk7dmFyIHE9RUEocCk7Zm4uSCYmRHoocC5pZCk7RnkoMixlKTtjQS5nZXRSdWxlcygpO2YmJihxPUNCKHEpKTtmbi5IJiZ3eihiKTt2YXIgcj13QihxLHApO3ImJkZ5KDQsZSk7dmFyIHQ9eEIoYSxwLmxkKTtSQShwLmxkKTtlIT09Imd0bS5qcyImJmUhPT0iZ3RtLnN5bmMifHxYQSgpO3JldHVybiBEQihxLHIpfHx0fQpmdW5jdGlvbiBCQigpe3ZhciBhPXt9O2EuZXZlbnQ9dkEoImV2ZW50IiwxKTthLmVjb21tZXJjZT12QSgiZWNvbW1lcmNlIiwxKTthLmd0bT12QSgiZ3RtIik7YS5ldmVudE1vZGVsPXZBKCJldmVudE1vZGVsIik7cmV0dXJuIGF9CmZ1bmN0aW9uIEFCKGEsYil7dmFyIGM9QUEoKTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9YyhkKTtpZihlKXJldHVybiEwO3ZhciBmPWQmJmRbR2YuWWJdO2lmKCFmfHx0eXBlb2YgZiE9PSJzdHJpbmciKXJldHVybiEwO2Y9Zi5yZXBsYWNlKC9eXyovLCIiKTt2YXIgZz1qQigpLGg9YTtiJiYoaD1FZChhLG51bGwpLGhbImd0bS51bmlxdWVFdmVudElkIl09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2Zvcih2YXIgbD0hMSxuPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtmXXx8W10scD1tKGcpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlO3RyeXtyKHtlbnRpdHlJZDpmLHNlY3VyaXR5R3JvdXBzOm4sb3JpZ2luYWxFdmVudERhdGE6aH0pfHwobD0hMCl9Y2F0Y2godCl7bD0hMH19cmV0dXJuIGx8fGV9fQpmdW5jdGlvbiBDQihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10pe3ZhciBkPWNBLnRhZ3NbY10uTztpZihCaltkXXx8Y0EudGFnc1tjXS5JYVtHZi5ScV0hPT12b2lkIDB8fEtBKGQsMikpYltjXT0hMH1yZXR1cm4gYn1mdW5jdGlvbiBEQihhLGIpe2lmKCFiKXJldHVybiBiO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmNBLnRhZ3NbY10mJiFDaltjQS50YWdzW2NdLk9dKXJldHVybiEwO3JldHVybiExfTt2YXIgRUI9TmYoNjEsMUUzKSxGQj1OZig2OCwyRTMpLFpvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl07ZnVuY3Rpb24gR0IoYSxiKXtpZihhKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSksZDthIT09Mnx8KChkPUhCKCkpPT1udWxsP3ZvaWQgMDpkLnN0YXR1cykhPT0zfHxiIT09dm9pZCAwJiZiPD1GQnx8KGE9MyxjLmRsPWI/TWF0aC5mbG9vcihiLzFFMyk6dm9pZCAwKTtjLnM9YTtJQihjKX19ZnVuY3Rpb24gSUIoYSl7aWYoYS5zKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBjPXtzdGF0dXM6YS5zLGV4cGlyZXM6RGF0ZS5ub3coKSs4NjRFNX07YS5kbCE9PXZvaWQgMCYmKGMuZGVsYXk9YS5kbCk7a3IoImd0Z19sb2FkX3N0YXR1cyIsYyl9O2JwKGZ1bmN0aW9uKCl7aWYoWW8oKSliKCk7ZWxzZSBmb3IodmFyIGM9UGIoYiksZD1tKFpvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlJbChjLGUudmFsdWUpfSxabyl9fQpmdW5jdGlvbiBKQigpe3ZhciBhPUtCKCEwKTtyZXR1cm4gYT8oTEIoYS5zdGF0dXMsYS5kZWxheSksITEpOiEwfWZ1bmN0aW9uIEtCKGEpe2E9YT09PXZvaWQgMD8hMTphO2lmKGFrKCkpe3ZhciBiPW5yKCJndGdfbG9hZF9zdGF0dXMiKSxjPWIudmFsdWUsZD1hJiZBYihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpJiYoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKTxEYXRlLm5vdygpKzM2RTU7aWYoYi5lcnJvcj09PTAmJkFiKGM9PW51bGw/dm9pZCAwOmMuc3RhdHVzKSYmIWQpe3ZhciBlPXtzdGF0dXM6Yy5zdGF0dXN9OyhjPT1udWxsP3ZvaWQgMDpjLmRlbGF5KSE9PXZvaWQgMCYmKGUuZGVsYXk9Yy5kZWxheSk7cmV0dXJuIGV9cmV0dXJuIEhCKCl9fWZ1bmN0aW9uIExCKGEsYil7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2Mucz1hO2IhPT12b2lkIDAmJihjLmRsPWIpfQpmdW5jdGlvbiBIQigpe3ZhciBhPW1qKCJndGgiKTtpZihhIT1udWxsJiZhLnMpe3ZhciBiPXtzdGF0dXM6YS5zfTthLmRsIT09dm9pZCAwJiYoYi5kZWxheT1hLmRsKTtyZXR1cm4gYn19ZnVuY3Rpb24gTUIoKXt2YXIgYTsoKGE9SEIoKSk9PW51bGw/dm9pZCAwOmEuc3RhdHVzKT09PTEmJkdCKDMpfWZ1bmN0aW9uIE5CKCl7aWYoSkIoKSl7dmFyIGE9RGF0ZS5ub3coKTtuaigiZ3RoIix7bDpmdW5jdGlvbigpe0dCKDIsRGF0ZS5ub3coKS1hKX0sczoxfSk7dmFyIGI9RSg1KSxjPVNiKGIsIkdUTS0iKT8iL2d0bS5qcyI6Ii9ndGFnL2pzIixkPSJodHRwczovLyIrRSgzKStjKyI/aWQ9IitiKyImZ3RnX2hlYWx0aD0xIjtVYyhkLE1CLE1CKTtBLnNldFRpbWVvdXQoTUIsRUIpfX07ZnVuY3Rpb24gT0IoKXt5QigpLmFkZExpc3RlbmVyKCJndG0uaW5pdCIsZnVuY3Rpb24oYSxiKXtaaygyNiwhMCk7TSg1NTYpJiZhaygpJiYhSWYoNDUpJiYoZm8uSFtjby5pYS5aYl09Ym8uTWEuTGgpO2lmKGFrKCkpe3ZhciBjO2M9bG8oY28uaWEuWmIpO2dvKGMpP2lvKGMsTkIpOk5CKCl9dG8oITEsITApO2IoKX0pfTtmdW5jdGlvbiBQQigpe2lmKG1qKCJwc2NkbCIpIT09dm9pZCAwKW5tKGptLmJhLm9pKT09PXZvaWQgMCYmbW0oam0uYmEub2ksbWooInBzY2RsIikpO2Vsc2V7dmFyIGE9ZnVuY3Rpb24oYyl7bmooInBzY2RsIixjKTttbShqbS5iYS5vaSxjKX0sYj1mdW5jdGlvbigpe2EoImVycm9yIil9O3RyeXtIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsPyhhKCJwZW5kaW5nIiksSGMuY29va2llRGVwcmVjYXRpb25MYWJlbC5nZXRWYWx1ZSgpLnRoZW4oYSkuY2F0Y2goYikpOmEoIm5vYXBpIil9Y2F0Y2goYyl7YihjKX19fTt2YXIgUkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMucmVhZHk9ITE7dGhpcy5LPTA7dGhpcy5IPVtdO3ZhciBiPUE7aWYoQi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIiYmIUIuY3JlYXRlRXZlbnRPYmplY3R8fEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vblJlYWR5KCk7ZWxzZXskYyhCLCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTskYyhCLCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTtpZihCLmNyZWF0ZUV2ZW50T2JqZWN0JiZCLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCl7dmFyIGM9ITA7dHJ5e2M9IWIuZnJhbWVFbGVtZW50fWNhdGNoKGQpe31jJiZRQih0aGlzKX0kYyhiLCJsb2FkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KX19O1JCLnByb3RvdHlwZS5pc1JlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZHl9OwpSQi5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbihhKXtpZighdGhpcy5yZWFkeSl7dmFyIGI9Qi5jcmVhdGVFdmVudE9iamVjdCxjPUIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIsZD1CLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiO2lmKCFhfHxhLnR5cGUhPT0icmVhZHlzdGF0ZWNoYW5nZSJ8fGN8fCFiJiZkKXt0aGlzLnJlYWR5PSEwO2Zvcih2YXIgZT0wO2U8dGhpcy5ILmxlbmd0aDtlKyspYmQodGhpcy5IW2VdKX10aGlzLkgucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz0wO2c8Zi5sZW5ndGg7ZysrKWJkKGZbZ10pO3JldHVybiAwfX19Owp2YXIgUUI9ZnVuY3Rpb24oYSl7aWYoIWEucmVhZHkmJmEuSzwxNDApe2EuSysrO3RyeXt2YXIgYixjOyhjPShiPUIuZG9jdW1lbnRFbGVtZW50KS5kb1Njcm9sbCk9PW51bGx8fGMuY2FsbChiLCJsZWZ0Iik7YS5vblJlYWR5KCl9Y2F0Y2goZCl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgUUIoYSl9LDUwKX19fSxTQjtmdW5jdGlvbiBUQigpe1NCfHwoU0I9bmV3IFJCKX1mdW5jdGlvbiBVQigpe1RCKCk7dmFyIGE7cmV0dXJuKGE9U0IpPT1udWxsP3ZvaWQgMDphLmlzUmVhZHkoKX1mdW5jdGlvbiBWQihhKXtUQigpO3ZhciBiOyhiPVNCKSE9bnVsbCYmKGIucmVhZHk/YmQoYSk6Yi5ILnB1c2goYSkpfTt2YXIgWEI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVdCLGU7aWYoKGU9ZC5IKT09bnVsbHx8IWUuT3Ipe3ZhciBmPU9iamVjdC5rZXlzKGIpLmxlbmd0aD4wPzI6MSxnLGgsbD0oYz09bnVsbD92b2lkIDA6KGg9Yy5vcmlnaW5hdGluZ0VudGl0eSk9PW51bGw/dm9pZCAwOmgub3JpZ2luQ29udGFpbmVySWQpfHwiIjtnPWw/U2IobCwiR1RNLSIpPzM6MjoxO2lmKCFhKWQuSD17dHlwZTpmLHNvdXJjZTpnLHBhcmFtczpifTtlbHNlIGlmKGQuSCl7UCgxODQpO3ZhciBuPSExO2QuSC5zb3VyY2U9PT1nfHxkLkguc291cmNlIT09MyYmZyE9PTN8fChVbSgiaWRjcyIsIjEiKSxuPSEwKTtkLkgudHlwZSE9PTImJmYhPT0yfHxQKDE4Nik7dmFyIHA7aWYocD1kLkgudHlwZT09PTImJmY9PT0yKWE6e3ZhciBxPWQuSC5wYXJhbXMscj1PYmplY3Qua2V5cyhxKSx0PU9iamVjdC5rZXlzKGIpO2lmKHIubGVuZ3RoIT09dC5sZW5ndGgpcD0hMDtlbHNle2Zvcih2YXIgdT1tKHIpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtpZighYi5oYXNPd25Qcm9wZXJ0eSh4KXx8cVt4XSE9PWJbeF0pe3A9ITA7YnJlYWsgYX19cD0hMX19cCYmKFVtKCJpZGNjIiwiMSIpLG49ITApO24mJih0bygpLGQuSC5Pcj0hMCl9fX0sV0I9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMH07dmFyIFpCPWZ1bmN0aW9uKGEpe3ZhciBiPVlCOyghZm4uS3x8U2IoRSg1KSwiR1RNLSIpPzA6YT09PXZvaWQgMCkmJmIuSD09PTAmJihVbSgibWNjIiwiMSIpLGIuSD0xKX0sWUI9bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDtVbSgibmNjIixmdW5jdGlvbigpe2lmKElmKDQ1KSYmYS5IIT09MilyZXR1cm4iMSJ9KX07dmFyICRCPS9eKD86QVd8REN8R3xHRnxHVHxIQXxNQ3xVQSkkLyxhQz0vXHMvOwpmdW5jdGlvbiBiQyhhLGIpe2lmKHpiKGEpKXthPUxiKGEpO3ZhciBjPWEuaW5kZXhPZigiLSIpO2lmKCEoYzwwKSl7dmFyIGQ9YS5zdWJzdHJpbmcoMCxjKTtpZigkQi50ZXN0KGQpKXt2YXIgZT1hLnN1YnN0cmluZyhjKzEpLGY7aWYoYil7dmFyIGc9ZnVuY3Rpb24obil7dmFyIHA9bi5pbmRleE9mKCIvIik7cmV0dXJuIHA8MD9bbl06W24uc3Vic3RyaW5nKDAscCksbi5zdWJzdHJpbmcocCsxKV19O2Y9ZyhlKTtpZihkPT09IkRDIiYmZi5sZW5ndGg9PT0yKXt2YXIgaD1nKGZbMV0pO2gubGVuZ3RoPT09MiYmKGZbMV09aFswXSxmLnB1c2goaFsxXSkpfX1lbHNle2Y9ZS5zcGxpdCgiLyIpO2Zvcih2YXIgbD0wO2w8Zi5sZW5ndGg7bCsrKWlmKCFmW2xdfHxhQy50ZXN0KGZbbF0pJiYoZCE9PSJBVyJ8fGwhPT0xKSlyZXR1cm59cmV0dXJue2lkOmEscHJlZml4OmQsZGVzdGluYXRpb25JZDpkKyItIitmWzBdLGlkczpmLEpjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWQhPT10aGlzLmRlc3RpbmF0aW9uSWR9fX19fX0KZnVuY3Rpb24gY0MoYSxiKXtmb3IodmFyIGM9e30sZD0wO2Q8YS5sZW5ndGg7KytkKXt2YXIgZT1iQyhhW2RdLGIpO2UmJihjW2UuaWRdPWUpfXZhciBmPVtdLGc7Zm9yKGcgaW4gYylpZihjLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1jW2ddO2gucHJlZml4PT09IkFXIiYmaC5pZHNbZENbMV1dJiZmLnB1c2goaC5kZXN0aW5hdGlvbklkKX1mb3IodmFyIGw9MDtsPGYubGVuZ3RoOysrbClkZWxldGUgY1tmW2xdXTtmb3IodmFyIG49W10scD1tKE9iamVjdC5rZXlzKGMpKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSluLnB1c2goY1txLnZhbHVlXSk7cmV0dXJuIG59dmFyIGVDPXt9LGRDPShlQ1swXT0wLGVDWzFdPTEsZUNbMl09MixlQ1szXT0wLGVDWzRdPTEsZUNbNV09MCxlQ1s2XT0wLGVDWzddPTAsZUMpO3ZhciBmQz17aW5pdGlhbGl6ZWQ6MTEsY29tcGxldGU6MTIsaW50ZXJhY3RpdmU6MTN9LGdDPXt9LGhDPU9iamVjdC5mcmVlemUoKGdDW0YuRC5UZF09ITAsZ0MpKSxpQz1mdW5jdGlvbigpe3RoaXMuUj1OZigzNCw1MDApO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXZvaWQgMH0sakM9ZnVuY3Rpb24oYSxiLGMpe2lmKGMubGVuZ3RoJiZmbi5LKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7dmFyIGU7KGU9YS5OKVtiXSE9bnVsbHx8KGVbYl09W10pO3ZhciBmPWMuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFhLk5bYl0uaW5jbHVkZXMoZyl9KTthLkhbYl0ucHVzaC5hcHBseShhLkhbYl0sdyhmKSk7YS5OW2JdLnB1c2guYXBwbHkoYS5OW2JdLHcoZikpOyFhLksmJmYubGVuZ3RoPjAmJihWbSgidGRjIiwhMCksYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe3RvKCk7YS5IPXt9O2EuSz12b2lkIDB9LGEuUikpfX07CmlDLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztVbSgidGRjIixmdW5jdGlvbigpe2EuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCk7dmFyIGI9W10sYztmb3IoYyBpbiBhLkgpYS5ILmhhc093blByb3BlcnR5KGMpJiZiLnB1c2goYysiKiIrYS5IW2NdLmpvaW4oIi4iKSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiISIpOnZvaWQgMH0sITEpfTsKdmFyIGtDPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPSEwKTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT0hMCk7cmV0dXJuIGN9LGxDPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwP3t9OmQ7ZT1lPT09dm9pZCAwPyIiOmU7aWYoYj09PWMpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24odCx1KXt2YXIgdjtBZCh1KT09PSJvYmplY3QiP3Y9dVt0XTpBZCh1KT09PSJhcnJheSImJih2PXVbdF0pO3JldHVybiB2PT09dm9pZCAwP2hDW3RdOnZ9LGc9a0MoYixjKSxoO2ZvcihoIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShoKSYmaCE9PUYuRC5YYil7dmFyIGw9KGU/ZSsiLiI6IiIpK2gsbj1mKGgsYikscD1mKGgsYykscT1BZChuKT09PSJvYmplY3QifHxBZChuKT09PSJhcnJheSIscj1BZChwKT09PSJvYmplY3QifHxBZChwKT09PSJhcnJheSI7aWYocSYmcilsQyhhLG4scCxkLGwpOwplbHNlIGlmKHF8fHJ8fG4hPT1wKWRbbF09ITB9cmV0dXJuIE9iamVjdC5rZXlzKGQpfSxtQz1uZXcgaUM7dmFyIG5DPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSz1OYigpO3RoaXMuSD1iO3RoaXMuYXJncz1jO3RoaXMubWVzc2FnZUNvbnRleHQ9ZDt0aGlzLnR5cGU9YX0sb0M9ZnVuY3Rpb24oKXt0aGlzLldhPXt9O3RoaXMuaWI9e307dGhpcy5LPXt9O3RoaXMuTj1udWxsO3RoaXMuaGI9e307dGhpcy5IPSExO3RoaXMuc3RhdHVzPTF9O2Z1bmN0aW9uIHBDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJzZXQiLGEpOnFDKCJzZXQiLGEsYil9ZnVuY3Rpb24gckMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoImNvbmZpZyIsYSk6cUMoImNvbmZpZyIsYSxiKX1mdW5jdGlvbiBzQyhhLGIsYyl7Yz1jfHx7fTtjW0YuRC5YYl09YTtyZXR1cm4gcUMoImV2ZW50IixiLGMpfWZ1bmN0aW9uIHFDKCl7cmV0dXJuIGFyZ3VtZW50c307dmFyIHRDPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxsLG4scCxxLHIpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9ZDt0aGlzLldhPWU7dGhpcy5oYj1mO3RoaXMuSGM9Zzt0aGlzLkJnPWg7dGhpcy5pYj1sO3RoaXMuZXZlbnRNZXRhZGF0YT1uO3RoaXMub25TdWNjZXNzPXA7dGhpcy5vbkZhaWx1cmU9cTt0aGlzLmlzR3RtRXZlbnQ9cn0sdUM9ZnVuY3Rpb24oYSl7dmFyIGI9e29uU3VjY2Vzczp4YixvbkZhaWx1cmU6eGJ9O2I9Yj09PXZvaWQgMD97fTpiO3ZhciBjLGQsZSxmLGcsaCxsLG4scCxxLHIsdCx1LHYseCx5LHosQyxELEksRyxOLFMsVyxlYSxqYTtyZXR1cm4gbmV3IHRDKCh2PShjPWIpPT1udWxsP3ZvaWQgMDpjLmV2ZW50SWQpIT1udWxsP3Y6YS5ldmVudElkLCh4PShkPWIpPT1udWxsP3ZvaWQgMDpkLnByaW9yaXR5SWQpIT1udWxsP3g6YS5wcmlvcml0eUlkLCh5PShlPWIpPT1udWxsP3ZvaWQgMDplLnByaW9yaXR5UXVldWUpIT0KbnVsbD95OmEucHJpb3JpdHlRdWV1ZSwoej0oZj1iKT09bnVsbD92b2lkIDA6Zi5FYSkhPW51bGw/ejphLkVhLChDPShnPWIpPT1udWxsP3ZvaWQgMDpnLldhKSE9bnVsbD9DOmEuV2EsKEQ9KGg9Yik9PW51bGw/dm9pZCAwOmguaGIpIT1udWxsP0Q6YS5oYiwoST0obD1iKT09bnVsbD92b2lkIDA6bC5IYykhPW51bGw/STphLkhjLChHPShuPWIpPT1udWxsP3ZvaWQgMDpuLkJnKSE9bnVsbD9HOmEuQmcsKE49KHA9Yik9PW51bGw/dm9pZCAwOnAuaWIpIT1udWxsP046YS5pYiwoUz0ocT1iKT09bnVsbD92b2lkIDA6cS5ldmVudE1ldGFkYXRhKSE9bnVsbD9TOmEuZXZlbnRNZXRhZGF0YSwoVz0ocj1iKT09bnVsbD92b2lkIDA6ci5vblN1Y2Nlc3MpIT1udWxsP1c6YS5vblN1Y2Nlc3MsKGVhPSh0PWIpPT1udWxsP3ZvaWQgMDp0Lm9uRmFpbHVyZSkhPW51bGw/ZWE6YS5vbkZhaWx1cmUsKGphPSh1PWIpPT1udWxsP3ZvaWQgMDp1LmlzR3RtRXZlbnQpIT1udWxsP2phOmEuaXNHdG1FdmVudCl9LAp2Qz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO3N3aXRjaChiKXtjYXNlIDM6Yy5wdXNoKGEuRWEpO2MucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDI6Yy5wdXNoKGEuRWEpO2JyZWFrO2Nhc2UgMTpjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSA0OmMucHVzaChhLkVhKSxjLnB1c2goYS5XYSksYy5wdXNoKGEuaGIpLGMucHVzaChhLkhjKX1yZXR1cm4gY30sTz1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9bSh2QyhhLGQ9PT12b2lkIDA/MzpkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZ1tiXSE9PXZvaWQgMClyZXR1cm4gZ1tiXX1yZXR1cm4gY30sd0M9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9dkMoYSw0KSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZm9yKHZhciBmPU9iamVjdC5rZXlzKGUudmFsdWUpLApnPW0oZiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpYltoLnZhbHVlXT0xO3JldHVybiBPYmplY3Qua2V5cyhiKX07dEMucHJvdG90eXBlLmdldE1lcmdlZFZhbHVlcz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPzM6Yjt2YXIgZD17fSxlPSExLGY9ZnVuY3Rpb24obil7Q2QobikmJkdiKG4sZnVuY3Rpb24ocCxxKXtlPSEwO2RbcF09cX0pfTtjJiZmKGMpO3ZhciBnPXZDKHRoaXMsYik7Zy5yZXZlcnNlKCk7Zm9yKHZhciBoPW0oZyksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpZihsLnZhbHVlW2FdKTtyZXR1cm4gZT9kOnZvaWQgMH07CnZhciB4Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9W0YuRC5LZixGLkQuR2YsRi5ELkhmLEYuRC5JZixGLkQuSmYsRi5ELkxmLEYuRC5NZl0sYz12QyhhLDMpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7Zm9yKHZhciBmPWUudmFsdWUsZz17fSxoPSExLGw9bShiKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtmW3BdIT09dm9pZCAwJiYoZ1twXT1mW3BdLGg9ITApfXZhciBxPWg/Zzp2b2lkIDA7aWYocSlyZXR1cm4gcX1yZXR1cm57fX0seUM9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9e307dGhpcy5XYT17fTt0aGlzLmhiPXt9O3RoaXMuSGM9e307dGhpcy5CZz17fTt0aGlzLmliPXt9O3RoaXMuZXZlbnRNZXRhZGF0YT17fTt0aGlzLmlzR3RtRXZlbnQ9ITE7dGhpcy5vblN1Y2Nlc3M9ZnVuY3Rpb24oKXt9O3RoaXMub25GYWlsdXJlPQpmdW5jdGlvbigpe319LHpDPWZ1bmN0aW9uKGEsYil7YS5FYT1iO3JldHVybiBhfSxBQz1mdW5jdGlvbihhLGIpe2EuV2E9YjtyZXR1cm4gYX0sQkM9ZnVuY3Rpb24oYSxiKXthLmhiPWI7cmV0dXJuIGF9LENDPWZ1bmN0aW9uKGEsYil7YS5IYz1iO3JldHVybiBhfSxEQz1mdW5jdGlvbihhLGIpe2EuQmc9YjtyZXR1cm4gYX0sRUM9ZnVuY3Rpb24oYSxiKXthLmliPWI7cmV0dXJuIGF9LEZDPWZ1bmN0aW9uKGEsYil7YS5ldmVudE1ldGFkYXRhPWJ8fHt9O3JldHVybiBhfSxHQz1mdW5jdGlvbihhLGIpe2Eub25TdWNjZXNzPWI7cmV0dXJuIGF9LEhDPWZ1bmN0aW9uKGEsYil7YS5vbkZhaWx1cmU9YjtyZXR1cm4gYX0sSUM9ZnVuY3Rpb24oYSxiKXthLmlzR3RtRXZlbnQ9YjtyZXR1cm4gYX0sSkM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyB0QyhhLmV2ZW50SWQsYS5wcmlvcml0eUlkLGEucHJpb3JpdHlRdWV1ZSxhLkVhLGEuV2EsYS5oYixhLkhjLGEuQmcsYS5pYixhLmV2ZW50TWV0YWRhdGEsCmEub25TdWNjZXNzLGEub25GYWlsdXJlLGEuaXNHdG1FdmVudCl9O2Z1bmN0aW9uIEtDKGEsYil7R2IoYSxmdW5jdGlvbihjKXt2YXIgZDtpZihkPWMuY2hhckF0KDApPT09Il8iKXt2YXIgZTthOnN3aXRjaChjKXtjYXNlIEYuRC5WYjpjYXNlIEYuRC5SZjpjYXNlIEYuRC5zaDplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWQ9IWV9ZCYmKGImJmIoYyksZGVsZXRlIGFbY10pfSl9O3ZhciBMQz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImVwciIsZi5qb2luKCIuIildKTtkJiZkZWxldGUgYS5IW2NdO3JldHVybiBlfSl9LE5DPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1NQztmbi5OJiZhIT09dm9pZCAwJiYoZC5IW2FdPWQuSFthXXx8W10sZC5IW2FdLnB1c2goYytiKSxneigpLGV6KGEpKX0sTUM7ZnVuY3Rpb24gT0MoKXtNQ3x8KE1DPW5ldyBMQyl9O3ZhciBQQz1mdW5jdGlvbigpe3RoaXMuZGVzdGluYXRpb25zPXt9O3RoaXMuSD17fTt0aGlzLmNvbW1hbmRzPVtdfSxRQz1mdW5jdGlvbihhLGIpe3JldHVybiBhLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdPWEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF18fG5ldyBvQ30sUkM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZC5IKXt2YXIgZT1RQyhhLGQuSCksZj1lLk47aWYoZil7dmFyIGc9RWQoYyxudWxsKSxoPUVkKGUuV2FbZC5ILmRlc3RpbmF0aW9uSWRdLG51bGwpLGw9RWQoZS5oYixudWxsKSxuPUVkKGUuaWIsbnVsbCkscD1FZChhLkgsbnVsbCkscT17fTtpZihmbi5OKXRyeXtxPUVkKHJBLkgsbnVsbCl9Y2F0Y2goeCl7UCg3Mil9dmFyIHI9ZC5ILnByZWZpeCx0PWZ1bmN0aW9uKHgpe3ZhciB5PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHkscix4KX0sdT1KQyhJQyhIQyhHQyhGQyhEQyhDQyhFQyhCQyhBQyh6QyhuZXcgeUMoZC5tZXNzYWdlQ29udGV4dC5ldmVudElkLApkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5SWQsZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eVF1ZXVlKSxnKSxoKSxsKSxuKSxwKSxxKSxkLm1lc3NhZ2VDb250ZXh0LmV2ZW50TWV0YWRhdGEpLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIyIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MpZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MoKX19KSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMyIpO2lmKGQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKWQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKCl9fSksISFkLm1lc3NhZ2VDb250ZXh0LmlzR3RtRXZlbnQpKSx2PWZ1bmN0aW9uKCl7dHJ5e3ZhciB4PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHgsciwiMSIpO3ZhciB5PWQuSC5pZCx6PW1DO2lmKGZuLksmJmI9PT1GLkQud2Epe3ZhciBDLEQ9KEM9YkMoeSkpPT1udWxsP3ZvaWQgMDpDLmlkcztpZighKEQmJkQubGVuZ3RoPgoxKSl7dmFyIEk9dS5FYVtGLkQuWGJdO2lmKCFJfHxJPT09eSl7dmFyIEcsTj1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7Ti50ZHx8KE4udGQ9e30pO0c9Ti50ZDt2YXIgUz1FZCh1LkhjLG51bGwpO0VkKHUuRWEsUyk7dmFyIFc9W10sZWE7Zm9yKGVhIGluIEcpRy5oYXNPd25Qcm9wZXJ0eShlYSkmJmxDKHosR1tlYV0sUykubGVuZ3RoJiZXLnB1c2goZWEpO1cubGVuZ3RoJiYoakMoeix5LFcpLHNiKCJUQUdHSU5HIixmQ1tCLnJlYWR5U3RhdGVdfHwxNCkpO0dbeV09U319fWYoZC5ILmlkLGIsZC5LLHUpfWNhdGNoKGZhKXt2YXIgamE9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoamEsciwiNCIpfX07Yj09PSJndGFnLmdldCI/digpOmlvKGUuUix2KX19fSxTQz1mdW5jdGlvbihhLGIpe2lmKGIudHlwZSE9PSJyZXF1aXJlIil7dmFyIGM9dm9pZCAwO2IudHlwZT09PSJldmVudCImJihjPWIuYXJnc1sxXSk7aWYoYi5IKWZvcih2YXIgZD1RQyhhLGIuSCkuS1tiLnR5cGVdfHwKW10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV0oYyk7ZWxzZSBmb3IodmFyIGYgaW4gYS5kZXN0aW5hdGlvbnMpaWYoYS5kZXN0aW5hdGlvbnMuaGFzT3duUHJvcGVydHkoZikpe3ZhciBnPWEuZGVzdGluYXRpb25zW2ZdO2lmKGcmJmcuSylmb3IodmFyIGg9Zy5LW2IudHlwZV18fFtdLGw9MDtsPGgubGVuZ3RoO2wrKyloW2xdKGMpfX19O1BDLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1RQyh0aGlzLGEpO2Uuc3RhdHVzIT09MyYmKGUuTj1iLGUuc3RhdHVzPTMsZS5SPWxvKGMpLFRDKHRoaXMsYSxkfHx7fSksdGhpcy5mbHVzaCgpKX07ClBDLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT12b2lkIDAmJihRQyh0aGlzLGMpLnN0YXR1cz09PTEmJihRQyh0aGlzLGMpLnN0YXR1cz0yLHRoaXMucHVzaCgicmVxdWlyZSIsW3t9XSxjLHt9KSksUUModGhpcyxjKS5IJiYoZC5kZWZlcnJhYmxlPSExKSxkLmV2ZW50TWV0YWRhdGF8fChkLmV2ZW50TWV0YWRhdGE9e30pLGQuZXZlbnRNZXRhZGF0YVtILkouc2ddfHwoZC5ldmVudE1ldGFkYXRhW0guSi5zZ109W2MuZGVzdGluYXRpb25JZF0pLGQuZXZlbnRNZXRhZGF0YVtILkoubWpdfHwoZC5ldmVudE1ldGFkYXRhW0guSi5tal09W2MuaWRdKSk7dGhpcy5jb21tYW5kcy5wdXNoKG5ldyBuQyhhLGMsYixkKSk7ZC5kZWZlcnJhYmxlfHx0aGlzLmZsdXNoKCl9OwpQQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMsYz1bXSxkPSExLGU9e307dGhpcy5jb21tYW5kcy5sZW5ndGg7ZT17Wm46dm9pZCAwfSl7dmFyIGY9dGhpcy5jb21tYW5kc1swXSxnPWYuSDtpZihmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGUpIWd8fFFDKHRoaXMsZykuSD8oZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlPSExLHRoaXMuY29tbWFuZHMucHVzaChmKSk6Yy5wdXNoKGYpLHRoaXMuY29tbWFuZHMuc2hpZnQoKTtlbHNle3N3aXRjaChmLnR5cGUpe2Nhc2UgInJlcXVpcmUiOmlmKFFDKHRoaXMsZykuc3RhdHVzIT09MyYmIWEpe3RoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO3JldHVybn1icmVhaztjYXNlICJzZXQiOnZhciBoPWYuYXJnc1swXTtLQyhoKTtVQyhoKTtHYihoLGZ1bmN0aW9uKHgseSl7RWQoVmIoeCx5KSxiLkgpfSk7SHUoaCwhMCk7YnJlYWs7Y2FzZSAiZXZlbnQiOmUuWm49Zi5hcmdzWzFdO3ZhciBsPQpWQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fShlKSksbj1sW0YuRC5YYl07biYmbiE9PWcuaWR8fEh1KGwpO1JDKHRoaXMsZS5abixsLGYpO2JyZWFrO2Nhc2UgImdldCI6dmFyIHA9e30scT0ocFtGLkQuVGZdPWYuYXJnc1swXSxwW0YuRC5TZl09Zi5hcmdzWzFdLHApO1JDKHRoaXMsRi5ELkpiLHEsZik7YnJlYWs7Y2FzZSAiY29udGFpbmVyX2NvbmZpZyI6dmFyIHI9UUModGhpcyxnKSx0PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHQsITApO3IuSD0hMDtFZCh0LHIuaGIpO2Q9ITA7YnJlYWs7Y2FzZSAiZGVzdGluYXRpb25fY29uZmlnIjp2YXIgdT1RQyh0aGlzLGcpLHY9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodiwhMCk7dS5XYVtnLmlkXXx8KHUuV2FbZy5pZF09e30pO3UuSD0hMDtFZCh2LHUuV2FbZy5pZF0pO2Q9ITA7YnJlYWs7Y2FzZSAicmVzZXRfY29udGFpbmVyX2NvbmZpZyI6UUModGhpcyxnKS5oYj17fTticmVhazsKY2FzZSAicmVzZXRfdGFyZ2V0X2NvbmZpZyI6UUModGhpcyxnKS5XYVtnLmlkXT17fX10aGlzLmNvbW1hbmRzLnNoaWZ0KCk7U0ModGhpcyxmKX19dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7ZCYmdGhpcy5mbHVzaCgpfTt2YXIgVEM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUVkKGMsbnVsbCk7RWQoUUMoYSxiKS5pYixkKTtRQyhhLGIpLmliPWR9O2Z1bmN0aW9uIFZDKGEsYil7dmFyIGM9e307R2IoYSxmdW5jdGlvbihkLGUpe0VkKFZiKGQsZSksYyl9KTtLQyhjLGIpO1VDKGMpO3JldHVybiBjfQpmdW5jdGlvbiBVQyhhKXtpZihNKDYwMSkmJkJBKCkpe2Zvcih2YXIgYj0hMSxjPW0obmV3IFNldChbRi5ELnljLEYuRC5kZF0pKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTthW2VdIT09dm9pZCAwJiYoYj0hMCxkZWxldGUgYVtlXSl9YiYmIWFsKDM1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSYmKFprKDM1LCEwKSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdvb2dsZSBUYWcgTWFuYWdlcjogU2VydmVyLXNpZGUgR1RNIHBhcmFtZXRlcnMgKHRyYW5zcG9ydF91cmwvc2VydmVyX2NvbnRhaW5lcl91cmwpIGFyZSBub3QgcGVybWl0dGVkIG9uIHRoaXMgZG9tYWluIGFuZCBoYXZlIGJlZW4gaWdub3JlZC4iKSxQKDE5NykpfX07dmFyIFdDPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBQQzt0aGlzLks9ITF9O1dDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuSC5mbHVzaCgpfTt2YXIgWEM7ZnVuY3Rpb24gWUMoKXtYQ3x8KFhDPW5ldyBXQyk7cmV0dXJuIFhDfWZ1bmN0aW9uIFpDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmKGUuSyYmKGQuZGVmZXJyYWJsZT0hMCksZS5ILnB1c2goImV2ZW50IixbYixhXSxmLGQpKX1mdW5jdGlvbiAkQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJmUuSC5wdXNoKCJnZXQiLFthLGJdLGYsZCl9ZnVuY3Rpb24gYUQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImNvbnRhaW5lcl9jb25maWciLFtiXSxlLGMpfQpmdW5jdGlvbiBiRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiZGVzdGluYXRpb25fY29uZmlnIixbYl0sZSxjKX1mdW5jdGlvbiBjRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X2NvbnRhaW5lcl9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGREKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfdGFyZ2V0X2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZUQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5pYjp7fX1mdW5jdGlvbiBmRChhKXtyZXR1cm4gWUMoKS5ILkhbYV19ZnVuY3Rpb24gZ0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5IOiExfTtmdW5jdGlvbiBoRChhLGIpe2EuaGFzT3duUHJvcGVydHkoImd0bS51bmlxdWVFdmVudElkIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJndG0udW5pcXVlRXZlbnRJZCIse3ZhbHVlOnJqKCl9KTtiLmV2ZW50SWQ9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtiLnByaW9yaXR5SWQ9YVsiZ3RtLnByaW9yaXR5SWQiXTtyZXR1cm57ZXZlbnRJZDpiLmV2ZW50SWQscHJpb3JpdHlJZDpiLnByaW9yaXR5SWR9fWZ1bmN0aW9uIGlEKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWUsZT1hJiZhW2RdfHxmRChkKTtpZihlKXJldHVybiBlfX1mdW5jdGlvbiBqRChhKXtyZXR1cm4hYS5pc0d0bUV2ZW50fHxhLmV2ZW50TWV0YWRhdGEmJmEuZXZlbnRNZXRhZGF0YVtILkouQ2NdJiZhLmV2ZW50TWV0YWRhdGFbSC5KLk5iXSE9PXZrKCk/ITE6ITB9O3ZhciBrRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBsRD1mdW5jdGlvbigpe3RoaXMubWVzc2FnZXM9W107dGhpcy5IPVtdfTtsRC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5tZXNzYWdlcy5sZW5ndGgrMTthWyJndG0udW5pcXVlRXZlbnRJZCJdPWI7YVsiZ3RtLnByaW9yaXR5SWQiXT1kO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7aWYoTSg1OTUpKXt2YXIgZj1jLnByaW9yaXR5UXVldWU/W10uY29uY2F0KHcoYy5wcmlvcml0eVF1ZXVlKSxbZF0pOltkXTthWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWY7ZS5wcmlvcml0eVF1ZXVlPWZ9dmFyIGc9e21lc3NhZ2U6YSxub3RCZWZvcmVFdmVudElkOmIscHJpb3JpdHlJZDpkLG1lc3NhZ2VDb250ZXh0OmV9O3RoaXMubWVzc2FnZXMucHVzaChnKTtmb3IodmFyIGg9MDtoPHRoaXMuSC5sZW5ndGg7aCsrKXRyeXt0aGlzLkhbaF0oZyl9Y2F0Y2gobCl7fX07CmxELnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24oYSl7dGhpcy5ILnB1c2goYSl9O2xELnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE9e30sYj0wO2I8dGhpcy5tZXNzYWdlcy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLm1lc3NhZ2VzW2JdLGQ9YVtjLm5vdEJlZm9yZUV2ZW50SWRdO2R8fChkPVtdLGFbYy5ub3RCZWZvcmVFdmVudElkXT1kKTtkLnB1c2goYyl9cmV0dXJuIGF9O2xELnByb3RvdHlwZS5wcnVuZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz1bXSxkPTA7ZDx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtkKyspe3ZhciBlPXRoaXMubWVzc2FnZXNbZF07ZS5ub3RCZWZvcmVFdmVudElkPT09YT9iLnB1c2goZSk6Yy5wdXNoKGUpfXRoaXMubWVzc2FnZXM9YztyZXR1cm4gYn07CmZ1bmN0aW9uIG1EKGEsYixjKXtjLmV2ZW50TWV0YWRhdGE9Yy5ldmVudE1ldGFkYXRhfHx7fTtjLmV2ZW50TWV0YWRhdGFbSC5KLk5iXT1NKDU1MCk/dmsoKTpFKDYpO25EKCkuZW5xdWV1ZShhLGIsYyl9ZnVuY3Rpb24gbkQoKXtyZXR1cm4ga2ooIm1iIixmdW5jdGlvbigpe3JldHVybiBuZXcgbER9KX07dmFyIHBEPWZ1bmN0aW9uKGEsYil7dmFyIGM9b0Q7Yj1TdHJpbmcoYikuc3BsaXQoIiwiKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9Yy5OW2JbZF1dfHxbXTtjLk5bYltkXV09ZTtlLmluZGV4T2YoYSk8MCYmZS5wdXNoKGEpfX0scUQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9b0QsZD1bXSxlPVtdLGY9e30sZz0wO2c8YS5sZW5ndGg7Zj17bGs6dm9pZCAwLFFqOnZvaWQgMCxSajp2b2lkIDB9LGcrKyl7dmFyIGg9YVtnXTtpZihoLmluZGV4T2YoIi0iKT49MCl7aWYoZi5saz1iQyhoLGIpLGYubGspe3ZhciBsPXRrKCk7Q2IobCxmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHgubGsuZGVzdGluYXRpb25JZD09PXl9fShmKSk/ZC5wdXNoKGgpOmUucHVzaChoKX19ZWxzZXtpZihNKDU1MCkpe3ZhciBuPWMuS1toXXx8W107Zi5Saj17fTtuLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUmpbeV09ITB9fShmKSk7Zm9yKHZhciBwPQp0aygpLHE9MDtxPHAubGVuZ3RoO3ErKylmLlJqW3BbcV1dJiZkLnB1c2gocFtxXSl9ZWxzZXt2YXIgcj1jLkhbaF18fFtdO2YuUWo9e307ci5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlFqW3ldPSEwfX0oZikpO2Zvcih2YXIgdD13aygpLHU9MDt1PHQubGVuZ3RoO3UrKylpZihmLlFqW3RbdV1dKXtkPWQuY29uY2F0KHRrKCkpO2JyZWFrfX12YXIgdj1jLk5baF18fFtdO3YubGVuZ3RoJiYoZD1kLmNvbmNhdCh2KSl9fXJldHVybntlazpkLFBzOmV9fSxyRD1mdW5jdGlvbihhKXtHYihvRC5ILGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sc0Q9ZnVuY3Rpb24oYSl7R2Iob0QuSyxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHREPWZ1bmN0aW9uKGEpe0diKG9ELk4sZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwKMSl9KX0sb0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9e319O2Z1bmN0aW9uIHVEKGEsYixjKXt2YXIgZD1FZChhLG51bGwpO2QuZXZlbnRJZD12b2lkIDA7ZC5pbmhlcml0UGFyZW50Q29uZmlnPXZvaWQgMDtPYmplY3Qua2V5cyhiKS5zb21lKGZ1bmN0aW9uKGYpe3JldHVybiBiW2ZdIT09dm9pZCAwfSkmJlAoMTM2KTt2YXIgZT1FZChiLG51bGwpO0VkKGMsZSk7bUQockMod2soKVswXSxlKSxhLmV2ZW50SWQsZCl9CmZ1bmN0aW9uIHZEKGEsYixjLGQpe3ZhciBlPXt9LGY9KGVbRi5ELlViXT1GLkQud2EsZVsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09YS5pZCxlWyJndG0uY29uZmlnUGFyYW1ldGVycyJdPWIsZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1kLmV2ZW50SWQsZSk7Yy5wcmlvcml0eVF1ZXVlJiYoZlsiZ3RtLnByaW9yaXR5UXVldWUiXT1jLnByaW9yaXR5UXVldWUpO2MuZXZlbnRNZXRhZGF0YSYmKGZbImd0bS5ldmVudE1ldGFkYXRhIl09Yy5ldmVudE1ldGFkYXRhKTthLkpjKCkmJihmWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT13aygpWzBdLGZbImd0bS5vcmlnaW5hbENvbmZpZ1RhcmdldElkIl09YS5pZCk7cmV0dXJuIGZ9ZnVuY3Rpb24gd0QoYSxiLGMpe2lmKElmKDExKSYmIWMmJiFhW0YuRC5WZF0pe3ZhciBkPWFsKDEwLGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtaaygxMCwhMCk7WEIoZCxhLGIpO2lmKGQpcmV0dXJuITB9cmV0dXJuITF9O2Z1bmN0aW9uIHhEKGEsYil7dmFyIGM9e30sZD0oYy5ldmVudD1hLGMpO2ImJihkLmV2ZW50TW9kZWw9RWQoYixudWxsKSxiW0YuRC5QZl0mJihkLmV2ZW50Q2FsbGJhY2s9YltGLkQuUGZdKSxiW0YuRC5waF0mJihkLmV2ZW50VGltZW91dD1iW0YuRC5waF0pKTtyZXR1cm4gZH0KZnVuY3Rpb24geUQoYSxiKXt2YXIgYz1hJiZhW0YuRC5YYl07Yz09PXZvaWQgMCYmKGM9dUEoRi5ELlhiLDIpLGM9PT12b2lkIDAmJihjPSJkZWZhdWx0IikpO2lmKHpiKGMpfHxBcnJheS5pc0FycmF5KGMpKXt2YXIgZDtkPWIuaXNHdG1FdmVudD96YihjKT9bY106YzpjLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIik7dmFyIGU9cUQoZCxiLmlzR3RtRXZlbnQpLGY9ZS5layxnPWUuUHM7aWYoZy5sZW5ndGgpZm9yKHZhciBoPWlEKGEpLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49YkMoZ1tsXSxiLmlzR3RtRXZlbnQpO2lmKG4pe3ZhciBwPW4uZGVzdGluYXRpb25JZCxxPXZvaWQgMDsoKHE9bmsobi5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOnEuc3RhdGUpPT09MHx8bkEocCxoLHtzb3VyY2U6Myxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX12YXIgcj1mLmNvbmNhdChnKTtyZXR1cm57ZWs6Y0MoZixiLmlzR3RtRXZlbnQpLAptcjpjQyhyLGIuaXNHdG1FdmVudCl9fX07dmFyIHpEPXt9LEFEPSh6RC5jb25maWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1oRChhLGIpLGQ7YTp7aWYoIShhLmxlbmd0aDwyKSYmemIoYVsxXSkpe3ZhciBlPXt9O2lmKGEubGVuZ3RoPjIpe2lmKGFbMl0hPT12b2lkIDAmJiFDZChhWzJdKXx8YS5sZW5ndGg+Myl7ZD12b2lkIDA7YnJlYWsgYX1lPWFbMl19dmFyIGY9YkMoYVsxXSxiLmlzR3RtRXZlbnQpO2lmKGYpe2Q9e3RhcmdldDpmLHBhcmFtczplfTticmVhayBhfX1kPXZvaWQgMH12YXIgZz1kO2lmKGcpe3ZhciBoPWcudGFyZ2V0LGw9Zy5wYXJhbXMsbjthOntpZighSWYoNykpe3ZhciBwPXlrKHprKCkpO2lmKE1rKHApKXt2YXIgcT1wLnBhcmVudCxyPXEuaXNEZXN0aW5hdGlvbjtuPXtWczp5ayhxKSxNczpyfTticmVhayBhfX1uPXZvaWQgMH12YXIgdD1uLHU9dD09bnVsbD92b2lkIDA6dC5Wcyx2PXQ9PW51bGw/dm9pZCAwOnQuTXM7ZEIoYy5ldmVudElkLCJndGFnLmNvbmZpZyIpO3ZhciB4LHk9aC5kZXN0aW5hdGlvbklkOwppZihoLkpjKCk/dGsoKS5pbmRleE9mKHkpIT09LTE6d2soKS5pbmRleE9mKHkpIT09LTEpYTp7aWYodSYmKFAoMTI4KSx2JiZQKDEzMCksYi5pbmhlcml0UGFyZW50Q29uZmlnKSl7dmFyIHo7dmFyIEM9JGsoMTIpO2lmKEMpdUQoYixDLGwpLHo9ITE7ZWxzZXt2YXIgRD0kaygxMSk7IWxbRi5ELlZkXSYmKE0oNTUwKXx8SWYoMTEpKSYmRHx8WmsoMTEsRWQobCxudWxsKSk7ej0hMH16JiZ1LmNvbnRhaW5lcnMmJnUuY29udGFpbmVycy5qb2luKCIsIik7eD12b2lkIDA7YnJlYWsgYX12YXIgST0hSWYoNDUpLEc9IVNiKGguaWQsIkdUTS0iKTtJJiZHJiYoT2JqZWN0LmtleXMobCkubGVuZ3RoPT09MD9HdShULlcuU2spOkd1KFQuVy5UayksRWwoKSYmR3UoVC5XLlJrKSwkaygzMSkmJkd1KFQuVy5VaykpO3ZhciBOPVlCO2ZuLksmJihOLkg9PT0xJiYoUW0uSC5tY2M9ITEpLE4uSD0yKTtpZihNKDU1MCl8fCF3RChsLGIsaC5KYygpKSl7a0QuSHx8UCg0Myk7aWYoIU0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIFM9CmguaWQ7aWYoaC5KYygpKXREKFMpLHBEKFMsbFtGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7ckQoUyk7dmFyIFc9bFtGLkQuT2RdfHwiZGVmYXVsdCIsZWE9b0Q7Vz1XLnRvU3RyaW5nKCkuc3BsaXQoIiwiKTtmb3IodmFyIGphPTA7amE8Vy5sZW5ndGg7amErKyl7dmFyIGZhPWVhLkhbV1tqYV1dfHxbXTtlYS5IW1dbamFdXT1mYTtmYS5pbmRleE9mKFMpPDAmJmZhLnB1c2goUyl9fX1kZWxldGUgbFtGLkQuT2RdfXZhciBzYT1iLmV2ZW50TWV0YWRhdGF8fHt9O3NhLmhhc093blByb3BlcnR5KEguSi5hZSl8fChzYVtILkouYWVdPSFiLmZyb21Db250YWluZXJFeGVjdXRpb24pO2IuZXZlbnRNZXRhZGF0YT1zYTtkZWxldGUgbFtGLkQuUGZdO2lmKE0oNTUwKSl7eD12RChoLGwsYixjKTticmVhayBhfXZhciBkYT0hIWxbRi5ELlZkXTtkZWxldGUgbFtGLkQuVmRdO3ZhciBtYT10aygpLFBhPWNELEZhPWFEO2guSmMoKSYmKG1hPVtoLmlkXSxQYT1kRCxGYT1iRCk7Zm9yKHZhciBxYT0wO3FhPAptYS5sZW5ndGg7cWErKyl7ZGF8fFBhKG1hW3FhXSk7dmFyIGliPWdEKG1hW3FhXSk7RmEobWFbcWFdLEVkKGwsbnVsbCksRWQoYixudWxsKSk7aWImJmRhfHxaQyhGLkQud2EsRWQobCxudWxsKSxtYVtxYV0sRWQoYixudWxsKSl9fXg9dm9pZCAwfWVsc2UgYTp7aWYoIWIuaW5oZXJpdFBhcmVudENvbmZpZyYmIWxbRi5ELlpjXSl7dmFyIFhiPWlEKGwpLExjPWguZGVzdGluYXRpb25JZDtpZihoLkpjKCkpbkEoTGMsWGIse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSk7ZWxzZSBpZih1IT09dm9pZCAwJiZ1LmNvbnRhaW5lcnMuaW5kZXhPZihMYykhPT0tMSl7dmFyIFFkPSRrKDExKSxZYz0kaygxMik7UWQ/dUQoYixsLFFkKTpZY3x8WmsoMTIsRWQobCxudWxsKSl9ZWxzZSBpZihoQShMYyxYYiwhMCx7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KSxNKDU1MCkpe3g9dkQoaCwKbCxiLGMpO2JyZWFrIGF9fXg9dm9pZCAwfXJldHVybiB4fX0sekQuY29uc2VudD1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09Myl7UCgzOSk7dmFyIGM9aEQoYSxiKSxkPWFbMV0sZT17fSxmPU9vKGFbMl0pLGc7Zm9yKGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO2VbZ109Zz09PUYuRC5ZZz9BcnJheS5pc0FycmF5KGgpP05hTjpOdW1iZXIoaCk6Zz09PUYuRC5uYz8oQXJyYXkuaXNBcnJheShoKT9oOltoXSkubWFwKFBvKTpRbyhoKX1iLmZyb21Db250YWluZXJFeGVjdXRpb258fChlW0YuRC5tYV0mJlAoMTM5KSxlW0YuRC5YYV0mJlAoMTQwKSk7ZD09PSJkZWZhdWx0Ij9UbyhlKTpkPT09InVwZGF0ZSI/Vm8oZSxjKTpkPT09ImRlY2xhcmUiJiZiLmZyb21Db250YWluZXJFeGVjdXRpb24mJlNvKGUpfX0sekQuY29udGFpbmVyX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9CmFbMl0sZD1iQyhhWzFdLCEwKTtkJiZhRChkLmRlc3RpbmF0aW9uSWQsYyxFZChiLG51bGwpKX19LHpELmRlc3RpbmF0aW9uX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9YVsyXSxkPWJDKGFbMV0sITApO2lmKGQpe2lmKE0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIGU9ZC5pZDtpZihkLkpjKCkpdEQoZSkscEQoZSxjW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtzRChlKTt2YXIgZj1jW0YuRC5PZF18fCJkZWZhdWx0IixnPW9EO2Y9U3RyaW5nKGYpLnNwbGl0KCIsIik7Zm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBsPWcuS1tmW2hdXXx8W107Zy5LW2ZbaF1dPWw7bC5pbmRleE9mKGUpPDAmJmwucHVzaChlKX19fWRlbGV0ZSBjW0YuRC5PZF19YkQoZC5pZCxjLEVkKGIsbnVsbCkpfX19LHpELmV2ZW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVsxXTtpZighKGEubGVuZ3RoPDIpJiYKemIoYykpe3ZhciBkPXZvaWQgMDtpZihhLmxlbmd0aD4yKXtpZighQ2QoYVsyXSkmJmFbMl0hPT12b2lkIDB8fGEubGVuZ3RoPjMpcmV0dXJuO2Q9YVsyXX12YXIgZT14RChjLGQpLGY9aEQoYSxiKSxnPWYuZXZlbnRJZCxoPWYucHJpb3JpdHlJZDtlWyJndG0udW5pcXVlRXZlbnRJZCJdPWc7aCYmKGVbImd0bS5wcmlvcml0eUlkIl09aCk7Yi5wcmlvcml0eVF1ZXVlJiYoZVsiZ3RtLnByaW9yaXR5UXVldWUiXT1iLnByaW9yaXR5UXVldWUpO2lmKGM9PT0ib3B0aW1pemUuY2FsbGJhY2siKXJldHVybiBlLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fSxlO3ZhciBsPXlEKGQsYik7aWYobCl7Zm9yKHZhciBuPWwuZWsscD1sLm1yLHE9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSxyPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmRlc3RpbmF0aW9uSWR9KSx0PW4ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSksdT1tKHRrKCkpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtyLmluZGV4T2YoeCk8MCYmdC5wdXNoKHgpfWRCKGcsYyk7Zm9yKHZhciB5PW0odCksej15Lm5leHQoKTshei5kb25lO3o9eS5uZXh0KCkpe3ZhciBDPXoudmFsdWUsRD1FZChiLG51bGwpLEk9RWQoZCxudWxsKTtkZWxldGUgSVtGLkQuUGZdO3ZhciBHPUQuZXZlbnRNZXRhZGF0YXx8e307Ry5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoR1tILkouYWVdPSFELmZyb21Db250YWluZXJFeGVjdXRpb24pO0dbSC5KLm1qXT1xLnNsaWNlKCk7R1tILkouc2ddPXIuc2xpY2UoKTtELmV2ZW50TWV0YWRhdGE9RztaQyhjLEksQyxEKX1lLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fTtxLmxlbmd0aD4wP2UuZXZlbnRNb2RlbFtGLkQuWGJdPXEuam9pbigiLCIpOmRlbGV0ZSBlLmV2ZW50TW9kZWxbRi5ELlhiXTtrRC5IfHxQKDQzKTtiLm5vR3RtRXZlbnQ9PT12b2lkIDAmJmIuZXZlbnRNZXRhZGF0YSYmYi5ldmVudE1ldGFkYXRhW0guSi5Cbl0mJihiLm5vR3RtRXZlbnQ9CiEwKTtlLmV2ZW50TW9kZWxbRi5ELlljXSYmKGIubm9HdG1FdmVudD0hMCk7cmV0dXJuIGIubm9HdG1FdmVudD92b2lkIDA6ZX19fSx6RC5nZXQ9ZnVuY3Rpb24oYSxiKXtQKDUzKTtpZihhLmxlbmd0aD09PTQmJnpiKGFbMV0pJiZ6YihhWzJdKSYmeWIoYVszXSkpe3ZhciBjPWJDKGFbMV0sYi5pc0d0bUV2ZW50KSxkPVN0cmluZyhhWzJdKSxlPWFbM107aWYoYyl7a0QuSHx8UCg0Myk7dmFyIGY9aUQoKTtpZihDYih0aygpLGZ1bmN0aW9uKGgpe3JldHVybiBjLmRlc3RpbmF0aW9uSWQ9PT1ofSkpe2hEKGEsYik7dmFyIGc9e307RWQoKGdbRi5ELlRmXT1kLGdbRi5ELlNmXT1lLGcpLG51bGwpOyRDKGQsZnVuY3Rpb24oaCl7YmQoZnVuY3Rpb24oKXtlKGgpfSl9LGMuaWQsYil9ZWxzZSBuQShjLmRlc3RpbmF0aW9uSWQsZix7c291cmNlOjQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19fSx6RC5qcz1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKGEubGVuZ3RoPT09CjImJmFbMV0uZ2V0VGltZSl7a0QuSD0hMDt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkLGc9e307Yz0oZy5ldmVudD0iZ3RtLmpzIixnWyJndG0uc3RhcnQiXT1hWzFdLmdldFRpbWUoKSxnWyJndG0udW5pcXVlRXZlbnRJZCJdPWUsZ1siZ3RtLnByaW9yaXR5SWQiXT1mLGcpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9LHpELnBvbGljeT1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZ5YihhWzJdKSl7aWYoaHkoYVsxXSxhWzJdKSxQKDc0KSxhWzFdPT09ImFsbCIpe1AoNzUpO3ZhciBiPSExO3RyeXtiPWFbMl0oRSg1KSwidW5rbm93biIse30pfWNhdGNoKGMpe31ifHxQKDc2KX19ZWxzZSBQKDczKX0sekQucmVzZXRfdGFyZ2V0X2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTImJnpiKGFbMV0pKXt2YXIgYz1iQyhhWzFdLCEwKTtjJiZkRChjLmlkKX19LHpELnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDsKYS5sZW5ndGg9PT0yJiZDZChhWzFdKT9jPUVkKGFbMV0sbnVsbCk6YS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmKGM9e30sQ2QoYVsyXSl8fEFycmF5LmlzQXJyYXkoYVsyXSk/Y1thWzFdXT1FZChhWzJdLG51bGwpOmNbYVsxXV09YVsyXSk7aWYoYyl7WmsoMzEsITApO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQ7RWQoYyxudWxsKTtFKDUpO3ZhciBnPUVkKGMsbnVsbCk7WUMoKS5ILnB1c2goInNldCIsW2ddLHZvaWQgMCxiKTtjWyJndG0udW5pcXVlRXZlbnRJZCJdPWU7ZiYmKGNbImd0bS5wcmlvcml0eUlkIl09Zik7ZGVsZXRlIGMuZXZlbnQ7Yi5vdmVyd3JpdGVNb2RlbEZpZWxkcz0hMDtyZXR1cm4gY319LHpEKSxCRD17fSxDRD0oQkQucG9saWN5PSEwLEJEKTt2YXIgRUQ9ZnVuY3Rpb24oYSl7aWYoREQoYSkpcmV0dXJuIGE7dGhpcy52YWx1ZT1hfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBERD1mdW5jdGlvbihhKXtyZXR1cm4hYXx8QWQoYSkhPT0ib2JqZWN0Inx8Q2QoYSk/ITE6ImdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSJpbiBhfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPUVELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU7dmFyIEZEPXtCYjoiMSIsZWU6IjIiLFhkOiIzIixjZToiNCIseGY6IjUiLHFnOiI2IixLaDoiNyIsdGo6IjgiLGxpOiI5IixqajoiMTAifTsKdmFyIEdEPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS50cmltKCkucmVwbGFjZUFsbCgvXHMrL2csIiIpLnJlcGxhY2VBbGwoLyhcZHsyLH0pXC4vZywiJDEiKS5yZXBsYWNlQWxsKC8tL2csIiIpLnJlcGxhY2VBbGwoL1woKFxkKylcKS9nLCIkMSIpO2lmKGImJmMubWF0Y2goL15cKz9cZHszLDR9JC8pKXJldHVybiBjO2MuY2hhckF0KDApIT09IisiJiYoYz0iKyIrYyk7aWYoYy5tYXRjaChuZXcgUmVnRXhwKCJeXFwrXFxkeyIrKE0oNTk3KT83OjEwKSsiLDE1fSQiKSkpcmV0dXJuIGN9fSxJRD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRyaW0oKTtpZihIRC50ZXN0KGIpKXJldHVybiBiLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgvWy0gXSsvZywiIil9fSxNRD1mdW5jdGlvbihhKXt2YXIgYj1KRChLRCkoYSk7aWYoYiYmIUxEKGIpKXJldHVybiBifSxMRD1mdW5jdGlvbihhKXtpZighQS5sb2NhdGlvbilyZXR1cm4hMTt2YXIgYj1OaihBLmxvY2F0aW9uLCJob3N0IiwhMCksCmM7aWYoTSg2MDIpKWE6e2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1hLnRvTG93ZXJDYXNlKCksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe3ZhciBnPWQuc2xpY2UoZikuam9pbigiLiIpO2lmKGUubWF0Y2goIkAiK2crIiQiKSl7Yz0hMDticmVhayBhfX1jPSExfWVsc2UgYz1hLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihiKT49MDtyZXR1cm4gY30sSkQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubWF0Y2goYSk7cmV0dXJuIGM/Y1swXS50cmltKCkudG9Mb3dlckNhc2UoKTp2b2lkIDB9fSxLRD0vW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcLltBLVpdezIsfS9pLE5EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzKSskLyksSEQ9UmVnRXhwKCJeKD86W0EtWl17MSwyfVxcZFtBLVpcXGRdP1sgLV0/XFxkW0EtWl17Mn18W0EtWl1cXGRbQS1aXVsgLV0/XFxkW0EtWl1cXGR8XFxkezR9ID9bQS1aXXsyfXxbQS1aXVxcZHs0fVtBLVpdezN9fFxcZHs1fSg/Oi1cXGR7NH0pP3xcXGR7NX0tXFxkezN9fFxcZHs0fS1cXGR7M318XFxkezN9LVxcZHs0fXxcXGR7Mn0tXFxkezN9fFxcZHszfSA/XFxkezJ9fFxcZHs0LDd9KSQiLAoiaSIpLE9EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzfFxkKSskLyk7CnZhciBQRD1mdW5jdGlvbigpe3ZhciBhPVN0cmluZyhhbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSkpO2EuaW5kZXhPZigiLiIpIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIuIikrMykpO3ZhciBiPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtyZXR1cm57dnQ6TnVtYmVyKGEpLHN0OmJ9fSxRRD1mdW5jdGlvbigpe3JldHVybiBhbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSl9LFNEPWZ1bmN0aW9uKGEpe3ZhciBiPXBkKCl8fDAsYz1bRkQuQmJdO00oNTY4KSYmYy5wdXNoKEZELmVlLEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELnRqLEZELmxpLEZELmpqKTtmb3IodmFyIGQ9UkQoYSxuZXcgU2V0KGMpKSxlPWFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSxmPW0oZCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5zZXQoaC5EYSxoKX12YXIgbD0ocGQoKXx8MCktYixuPWFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTsKWmsoMzMsbitsKTt2YXIgcD1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7WmsoMzQscCsxKX0sUkQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TmYoMzYsMiksZD1bXSxlPVt7b286YSxkZXB0aDowfV07ZS5sZW5ndGg+MDspZm9yKHZhciBmPWUuc2hpZnQoKSxnPWYub28saD1mLmRlcHRoLGw9bShPYmplY3Qua2V5cyhnKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aWYoIVRELmhhcyhwKSl7dmFyIHE9Z1twXTtpZihxKWlmKENkKHEpKWgrMTw9YyYmZS5wdXNoKHtvbzpxLGRlcHRoOmgrMX0pO2Vsc2V7Zm9yKHZhciByPW0oYiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWUsdj1VRFt1XTtpZih2JiZ2LktjLnRlc3QocCkpe3ZhciB4PXYubmEoU3RyaW5nKHEpKTtpZih4KXtkLnB1c2goe0NhOngsRGE6dX0pO2IuZGVsZXRlKHUpO2JyZWFrfX19aWYoYi5zaXplPT09MClyZXR1cm4gZH19fXJldHVybiBkfSxURD0KbmV3IFNldChbIml0ZW1zIiwiZWNvbW1lcmNlIl0pLFZEPVJlZ0V4cCgicGhvbmUiLCJpIiksV0Q9UmVnRXhwKCJmaXJzdF8/bmFtZSIsImkiKSxYRD1SZWdFeHAoImxhc3RfP25hbWUiLCJpIiksWUQ9UmVnRXhwKCJjb3VudHJ5IiwiaSIpLFpEPVJlZ0V4cCgicG9zdHx6aXAiLCJpIiksJEQ9UmVnRXhwKCJhZGRyZXNzfHN0cmVldCIsImkiKSxhRT1SZWdFeHAoImNpdHkiLCJpIiksYkU9UmVnRXhwKCJyZWdpb258c3RhdGV8cHJvdmluY2UiLCJpIiksY0U9e30sVUQ9KGNFW0ZELkJiXT17S2M6UmVnRXhwKCJlbWFpbCIsImkiKSxuYTpNRH0sY0VbRkQuZWVdPXtLYzpWRCxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMSl9fSxjRVtGRC5YZF09e0tjOldELG5hOk5EfSxjRVtGRC5jZV09e0tjOlhELG5hOk5EfSxjRVtGRC50al09e0tjOiRELG5hOk9EfSxjRVtGRC5saV09e0tjOmFFLG5hOk5EfSxjRVtGRC5qal09e0tjOmJFLG5hOk5EfSxjRVtGRC5xZ109e0tjOlpELG5hOklEfSxjRVtGRC54Zl09CntLYzpZRCxuYTpORH0sY0UpO3ZhciBkRT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5sb2FkZWQ9ITE7dGhpcy5IPVtdO2lmKEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vbkxvYWQoKTtlbHNlICRjKEEsImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5vbkxvYWQoKX0pfTtkRS5wcm90b3R5cGUub25Mb2FkPWZ1bmN0aW9uKCl7aWYoIXRoaXMubG9hZGVkKXt0aGlzLmxvYWRlZD0hMDtmb3IodmFyIGE9MDthPHRoaXMuSC5sZW5ndGg7YSsrKWJkKHRoaXMuSFthXSl9fTt2YXIgZkU9ZnVuY3Rpb24oYSl7dmFyIGI9ZUU7Yi5sb2FkZWQ/YmQoYSk6Yi5ILnB1c2goYSl9LGVFPW5ldyBkRTt2YXIgZ0U9ZnVuY3Rpb24oKXt0aGlzLlo9MDt0aGlzLks9e307dGhpcy5IPVtdO3RoaXMuTj1bXTt0aGlzLmZhPXRoaXMuUj10aGlzLmphPSExfSxpRT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aEU7YS5ldmVudENhbGxiYWNrPWI7YyYmKGEuZXZlbnRUaW1lb3V0PWMpO3JldHVybiBkLnB1c2goYSl9LGpFPWZ1bmN0aW9uKGEsYil7aWYoIUFiKGIpfHxiPDApYj0wO3ZhciBjPXFqKCksZD0wLGU9ITEsZj12b2lkIDA7Zj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlfHwoZT0hMCxhKCkpO2Y9dm9pZCAwfSxiKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZz1jP2Muc3Vic2NyaWJlcnM6MTsrK2Q9PT1nJiYoZiYmKEEuY2xlYXJUaW1lb3V0KGYpLGY9dm9pZCAwKSxlfHwoYSgpLGU9ITApKX19LGxFPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEuTi5sZW5ndGgpYj1hLk4uc2hpZnQoKTtlbHNlIGlmKGEuSC5sZW5ndGgpYj1hLkguc2hpZnQoKTtlbHNlIHJldHVybjt2YXIgYzt2YXIgZD1iO2lmKGEuamF8fAoha0UoZC5tZXNzYWdlKSljPWQ7ZWxzZXthLmphPSEwO3ZhciBlPWQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxmLGc7dHlwZW9mIGU9PT0ibnVtYmVyIj8oZj1lLTIsZz1lLTEpOihmPXJqKCksZz1yaigpLGQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1yaigpKTt2YXIgaD17fSxsPXttZXNzYWdlOihoLmV2ZW50PSJndG0uaW5pdF9jb25zZW50IixoWyJndG0udW5pcXVlRXZlbnRJZCJdPWYsaCksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Zn19LG49e30scD17bWVzc2FnZToobi5ldmVudD0iZ3RtLmluaXQiLG5bImd0bS51bmlxdWVFdmVudElkIl09ZyxuKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpnfX07YS5ILnVuc2hpZnQocCxkKTtjPWx9cmV0dXJuIGN9LG9FPWZ1bmN0aW9uKGEpe2EuZmF8fFAoMTk2KTtmb3IodmFyIGI9ITEsYzshYS5SJiYoYz1sRShhKSk7KXthLlI9ITA7dmFyIGQ9ckE7ZGVsZXRlIGQuSC5ldmVudE1vZGVsO29BKGQpO3ZhciBlPWMsZj0KZS5tZXNzYWdlLGc9ZS5tZXNzYWdlQ29udGV4dDtpZihmPT1udWxsKWEuUj0hMTtlbHNle2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmc0EoKTt0cnl7aWYoeWIoZikpdHJ5e2YuY2FsbCh0QSl9Y2F0Y2goUyl7fWVsc2UgaWYoQXJyYXkuaXNBcnJheShmKSl7aWYoemIoZlswXSkpe3ZhciBoPWZbMF0uc3BsaXQoIi4iKSxsPWgucG9wKCksbj1mLnNsaWNlKDEpLHA9dUEoaC5qb2luKCIuIiksMik7aWYocCE9bnVsbCl0cnl7cFtsXS5hcHBseShwLG4pfWNhdGNoKFMpe319fWVsc2V7dmFyIHE9dm9pZCAwO2lmKEhiKGYpKWE6e2lmKGYubGVuZ3RoJiZ6YihmWzBdKSl7dmFyIHI9QURbZlswXV07aWYociYmKCFnLmZyb21Db250YWluZXJFeGVjdXRpb258fCFDRFtmWzBdXSkpe3E9cihmLGcpO2JyZWFrIGF9fXE9dm9pZCAwfWVsc2UgcT1mO2lmKHEpe3ZhciB0O2Zvcih2YXIgdT1xLHY9dS5fY2xlYXJ8fGcub3ZlcndyaXRlTW9kZWxGaWVsZHMseD1tKE9iamVjdC5rZXlzKHUpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT0KeC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7eiE9PSJfY2xlYXIiJiYodiYmckEuc2V0KHosdm9pZCAwKSxyQS5zZXQoeix1W3pdKSl9TSg1OTIpJiZTRCh1KTskaygyNSl8fFprKDI1LHVbImd0bS5zdGFydCJdKTt2YXIgQz11WyJndG0udW5pcXVlRXZlbnRJZCJdO3UuZXZlbnQ/KHR5cGVvZiBDIT09Im51bWJlciImJihDPXJqKCksdVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1DLHJBLnNldCgiZ3RtLnVuaXF1ZUV2ZW50SWQiLEMpKSx0PXpCKHUpKTp0PSExO2I9dHx8Yn19fWZpbmFsbHl7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZvQShyQSwhMCk7dmFyIEQ9ZlsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtpZih0eXBlb2YgRD09PSJudW1iZXIiKXtmb3IodmFyIEk9YSxHPUkuS1tTdHJpbmcoRCldfHxbXSxOPTA7TjxHLmxlbmd0aDtOKyspSS5OLnB1c2gobUUoR1tOXSkpO0cubGVuZ3RoJiZJLk4uc29ydChuRSk7ZGVsZXRlIEkuS1tTdHJpbmcoRCldO0Q+YS5aJiYoYS5aPUQpfWEuUj0hMX19fXJldHVybiFifSwKcEU9ZnVuY3Rpb24oKXt2YXIgYT1oRTthLmZhJiZQKDE5NSk7YS5mYT0hMDtpZihmbi5IKXt2YXIgYj0hSWYoNTEpLGM9cnooKTtweihjLHtzdGFnZTpJeS5YLlpnfSk7aWYoYil7dmFyIGQ9cXooYyx7c3RhZ2U6SXkuWC5Za30sSXkuWC5uaSk7ZCE9PXZvaWQgMCYmKGMuSC5ZPWQpfXZhciBlPWEuSC5sZW5ndGg7cnooKS5ILkM9ZX1vRShhKTtpZihmbi5IKXt2YXIgZj1yeigpLGc9cXooZix7c3RhZ2U6SXkuWC5Wa30sSXkuWC5aZyk7ZyE9PXZvaWQgMCYmKGYuSC5CPWcpfXRyeXt2YXIgaD1BW0UoMTkpXSxsPUUoNSksbj1oLmhpZGU7aWYobiYmbltsXSE9PXZvaWQgMCYmbi5lbmQpe25bbF09ITE7dmFyIHA9ITAscTtmb3IocSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocSkmJm5bcV09PT0hMCl7cD0hMTticmVha31wJiYobi5lbmQoKSxuLmVuZD1udWxsKX19Y2F0Y2gocil7RSg1KX19LHFFPWZ1bmN0aW9uKGEsYil7aWYoYS5aPGIubm90QmVmb3JlRXZlbnRJZCl7dmFyIGM9U3RyaW5nKGIubm90QmVmb3JlRXZlbnRJZCk7CmEuS1tjXT1hLktbY118fFtdO2EuS1tjXS5wdXNoKGIpfWVsc2V7YS5OLnB1c2gobUUoYikpO2EuTi5zb3J0KG5FKTt2YXIgZD1mdW5jdGlvbigpe2EuUnx8b0UoYSl9O00oNTgwKT9kZChkKTpiZChkKX19OwpnRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoaCl7dmFyIGw9e307aWYoREQoaCkpe3ZhciBuPWg7aD1ERChuKT9uLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSgpOnZvaWQgMDtsLmZyb21Db250YWluZXJFeGVjdXRpb249ITB9cmV0dXJue21lc3NhZ2U6aCxtZXNzYWdlQ29udGV4dDpsfX12YXIgYj10aGlzLGM9TWMoRSgxOSksW10pLGQ9cGooKTtkLnBydW5lZD09PSEwJiZQKDgzKTt0aGlzLks9bkQoKS5nZXQoKTtuRCgpLmxpc3RlbihmdW5jdGlvbihoKXtxRShiLGgpfSk7ZC5zdWJzY3JpYmVycz0oZC5zdWJzY3JpYmVyc3x8MCkrMTt2YXIgZT1jLnB1c2gsZj10aGlzO2MucHVzaD1mdW5jdGlvbigpe3ZhciBoO2xqKCk7aWYoamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPjApe2g9W107Zm9yKHZhciBsPTA7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyloW2xdPW5ldyBFRChhcmd1bWVudHNbbF0pfWVsc2UgaD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTsKdmFyIG49aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KTtmLkgucHVzaC5hcHBseShmLkgsbik7dmFyIHA9ZS5hcHBseShjLGgpLHE9TWF0aC5tYXgoMTAwLE5mKDEsMzAwKSk7aWYodGhpcy5sZW5ndGg+cSlmb3IoUCg0KSxkLnBydW5lZD0hMDt0aGlzLmxlbmd0aD5xOyl0aGlzLnNoaWZ0KCk7dmFyIHI9dHlwZW9mIHAhPT0iYm9vbGVhbiJ8fHA7cmV0dXJuIG9FKGYpJiZyfTt2YXIgZz1jLnNsaWNlKDApLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gYShoKX0pO3RoaXMuSC5wdXNoLmFwcGx5KHRoaXMuSCxnKTtJZig1MSl8fChmbi5IJiZ1eigpLGJkKHJFKSk7VkIoZnVuY3Rpb24oKXtpZighZC5ndG1Eb20pe2QuZ3RtRG9tPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmRvbSIsaCkpfX0pO2ZFKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtTG9hZCl7ZC5ndG1Mb2FkPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmxvYWQiLGgpKX19KX07CmdFLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEpe3JldHVybiBBW0UoMTkpXS5wdXNoKGEpfTt2YXIgaEU9bmV3IGdFO2Z1bmN0aW9uIG5FKGEsYil7dmFyIGM9YS5tZXNzYWdlQ29udGV4dCxkPWIubWVzc2FnZUNvbnRleHQ7aWYoYy5ldmVudElkIT09ZC5ldmVudElkKXJldHVybiBjLmV2ZW50SWQtZC5ldmVudElkO2lmKCFNKDU5NSkpcmV0dXJuIGMucHJpb3JpdHlJZC1kLnByaW9yaXR5SWQ7dmFyIGUsZixnO2E6e2Zvcih2YXIgaD0oZT1jLnByaW9yaXR5UXVldWUpIT1udWxsP2U6W2MucHJpb3JpdHlJZF0sbD0oZj1kLnByaW9yaXR5UXVldWUpIT1udWxsP2Y6W2QucHJpb3JpdHlJZF0sbj1NYXRoLm1pbihoLmxlbmd0aCxsLmxlbmd0aCkscD0wO3A8bjtwKyspaWYoaFtwXSE9PWxbcF0pe2c9aFtwXS1sW3BdO2JyZWFrIGF9Zz1oLmxlbmd0aC1sLmxlbmd0aH1yZXR1cm4gZ30KZnVuY3Rpb24ga0UoYSl7aWYoYT09bnVsbHx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZihhLmV2ZW50KXJldHVybiEwO2lmKEhiKGEpKXt2YXIgYj1hWzBdO2lmKGI9PT0iY29uZmlnInx8Yj09PSJldmVudCJ8fGI9PT0ianMifHxiPT09ImdldCIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbUUoYSl7cmV0dXJue21lc3NhZ2U6YS5tZXNzYWdlLG1lc3NhZ2VDb250ZXh0OmEubWVzc2FnZUNvbnRleHR9fWZ1bmN0aW9uIHNFKGEsYixjKXtyZXR1cm4gaUUoYSxiLGMpfWZ1bmN0aW9uIHRFKGEsYil7cmV0dXJuIGpFKGEsYil9ZnVuY3Rpb24gckUoKXtwRSgpfWZ1bmN0aW9uIHVFKGEpe3JldHVybiBoRS5wdXNoKGEpfTt2YXIgdkU9ZnVuY3Rpb24oKXt9O3ZFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGEsYj1SaihBLmxvY2F0aW9uLmhyZWYpOyhhPWIuaG9zdG5hbWUrYi5wYXRobmFtZSkmJlVtKCJkbCIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTt2YXIgYzt2YXIgZD1FKDUpO2lmKGQpe3ZhciBlPUlmKDcpPzE6MCxmPUZrKCksZz1mJiZmLmZyb21Db250YWluZXJFeGVjdXRpb24/MTowLGg9ZiYmZi5zb3VyY2V8fDAsbD1FKDYpO2M9ZCsiOyIrbCsiOyIrZysiOyIraCsiOyIrZX1lbHNlIGM9dm9pZCAwO3ZhciBuPWM7biYmVW0oInRkcCIsbik7dmFyIHA9T3AoITApO3AhPT12b2lkIDAmJlVtKCJmcm0iLFN0cmluZyhwKSl9O3ZhciB3RT1uZXcgdkU7dmFyIHhFPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCk7dGhpcy5LPXZvaWQgMH0seUU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWm0oYSxmdW5jdGlvbihjKXtyZXR1cm4gYy5qYj4wP2I/Yy5qYisiXyIrV20oYyk6U3RyaW5nKGMuamIpOnZvaWQgMH0pfTsKeEUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKHBsKCl8fGZuLkspVW0oImNzcCIsZnVuY3Rpb24oKXt2YXIgYj15RShhLkgsITApOyRtKGEuSCk7cmV0dXJuIGJ9LCExKSxVbSgibWRlIixmdW5jdGlvbigpe3ZhciBiPWNuLkgsYz15RShiLCExKTskbShiKTtyZXR1cm4gY30sITEpLEEuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLGZ1bmN0aW9uKGIpe2lmKGIuZGlzcG9zaXRpb249PT0iZW5mb3JjZSIpe1AoMTc5KTt2YXIgYz1ubihiLmVmZmVjdGl2ZURpcmVjdGl2ZSk7aWYoYyl7dmFyIGQ7YTp7dmFyIGU9Yi5ibG9ja2VkVVJJLGY9a247aWYoZm4uSyYmZSl7dmFyIGc9am4oYyxlKTtpZihnKXt2YXIgaDtkPShoPWxuKGYsYykpPT1udWxsP3ZvaWQgMDpoW2ddO2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBsPWQ7aWYobCl7dmFyIG47YTp7dHJ5e3ZhciBwPW5ldyBVUkwoYi5ibG9ja2VkVVJJKSxxPXAucGF0aG5hbWUuaW5kZXhPZigiOyIpOwpuPXE+PTA/cC5vcmlnaW4rcC5wYXRobmFtZS5zdWJzdHJpbmcoMCxxKTpwLm9yaWdpbitwLnBhdGhuYW1lO2JyZWFrIGF9Y2F0Y2goRCl7fW49dm9pZCAwfXZhciByPW47aWYocil7Zm9yKHZhciB0PW0obCksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpe3ZhciB2PXUudmFsdWU7aWYoIXYuRW8pe3YuRW89ITA7dmFyIHg9e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfTtpZihwbCgpKXt2YXIgeT14LHo9e3R5cGU6MSxibG9ja2VkVXJsOnIsZW5kcG9pbnQ6di5lbmRwb2ludCx2aW9sYXRpb246Yi5lZmZlY3RpdmVEaXJlY3RpdmV9O2lmKHBsKCkpe3ZhciBDPUxsKCJUQUdfRElBR05PU1RJQ1MiLHtldmVudElkOnk9PW51bGw/dm9pZCAwOnkuZXZlbnRJZCxwcmlvcml0eUlkOnk9PW51bGw/dm9pZCAwOnkucHJpb3JpdHlJZH0pO0MudGFnRGlhZ25vc3RpY3M9ejtvbChDKX19ekUoYSx2LmRlc3RpbmF0aW9uSWQsdi5lbmRwb2ludCxjKX19bW4oYywKYi5ibG9ja2VkVVJJKX19fX19KX07dmFyIHpFPWZ1bmN0aW9uKGEsYixjLGQpe2FuKGEuSCxiLGMsMSxkKTtWbSgiY3NwIiwhMCk7Vm0oIm1kZSIsITApO2MhPT02MSYmYyE9PTU2JiZhLks9PT12b2lkIDAmJihhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5ILmpiPjAmJnRvKCExKTthLks9dm9pZCAwfSw1MDApKX0sQUU9bmV3IHhFO3ZhciBCRT1mdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MH07QkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO0NFKHRoaXMpO0lmKDY1KSYmVW0oIm10YmwiLCIxIik7VW0oInYiLCIzIik7VW0oInQiLCJ0Iik7VW0oInBpZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKG5tKGptLmJhLmJoKSl9KTtVbSgiZ3RtIixmdW5jdGlvbigpe3JldHVybiBkdSgpfSk7VW0oInNlcSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKCsrYS5zZXF1ZW5jZU51bWJlcil9KTtVbSgiZXhwIixmdW5jdGlvbigpe3JldHVybiBDcCgpfSl9O3ZhciBDRT1mdW5jdGlvbihhKXtpZihubShqbS5iYS5iaCk9PT12b2lkIDApe3ZhciBiPWZ1bmN0aW9uKCl7bW0oam0uYmEuYmgsRGIoKSk7YS5zZXF1ZW5jZU51bWJlcj0wfTtiKCk7Y2QoYiw4NjRFNSl9ZWxzZSBwbShqbS5iYS5iaCxmdW5jdGlvbigpe2Euc2VxdWVuY2VOdW1iZXI9MH0pO2Euc2VxdWVuY2VOdW1iZXI9MH0sREU9bmV3IEJFO2Z1bmN0aW9uIEVFKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBW2FdfX0KdmFyIEZFPXt9LEdFPShGRVsxNF09ZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOmEuZ2V0UmFuZG9tVmFsdWVzfSxGRVsxNV09ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6KGI9YS5zdWJ0bGUpPT1udWxsP3ZvaWQgMDpiLmRpZ2VzdH0sRkVbMV09RUUoImZldGNoIiksRkVbNl09RUUoIk1hcCIpLEZFWzJdPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tfSxGRVs4XT1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpfSxGRVs5XT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZW50cmllc30sRkVbMTBdPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllc30sRkVbNV09RUUoIlByb21pc2UiKSxGRVsxM109RUUoIlJlZ0V4cCIpLEZFWzNdPWZ1bmN0aW9uKCl7cmV0dXJuIEhjLnNlbmRCZWFjb259LEZFWzddPUVFKCJTZXQiKSxGRVsxMl09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aH0sCkZFWzExXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh9LEZFWzRdPUVFKCJYTUxIdHRwUmVxdWVzdCIpLEZFKSxIRT17fSxJRT0oSEVbMTVdPSEwLEhFKTt2YXIgTkU9L14oaHR0cHM/Oik/XC9cLy87CgpmdW5jdGlvbiBoRigpe307ZnVuY3Rpb24gaUYoKXtJZig2MikmJihoeSgiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQud2FpdEZvclRhZ3MpIT09ITB9KSxoeSgiZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLmZpeE1pc3NpbmdBcGkpIT09ITB9KSl9O3ZhciBqRj1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O2pGLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O3ZhciBrRj1uZXcgakY7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtsdCh7R3U6MCxGdToxLEN1OjIseHU6MyxEdTo0LHl1OjUsRXU6NixBdTo3LEJ1Ojgsd3U6OSx6dToxMCxIdToxMX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7bHQoe0p1OjAsS3U6MSxJdToyfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBOdW1iZXIoYSl9KTt2YXIgbEY9ZnVuY3Rpb24oYSxiLGMsZCl7cnQuY2FsbCh0aGlzKTt0aGlzLmZlPWI7dGhpcy5rZD1jO3RoaXMuYWM9ZDt0aGlzLkxhPW5ldyBNYXA7dGhpcy5oZT0wO3RoaXMuamE9bmV3IE1hcDt0aGlzLnlhPW5ldyBNYXA7dGhpcy5aPXZvaWQgMDt0aGlzLks9YX07d2EobEYscnQpO2xGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuSDt0aGlzLkxhLmNsZWFyKCk7dGhpcy5qYS5jbGVhcigpO3RoaXMueWEuY2xlYXIoKTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5hYztydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdmFyIG1GPWZ1bmN0aW9uKGEpe2lmKGEuSClyZXR1cm4gYS5IO2Eua2QmJmEua2QoYS5LKT9hLkg9YS5LOmEuSD1OcChhLkssYS5mZSk7dmFyIGI7cmV0dXJuKGI9YS5IKSE9bnVsbD9iOm51bGx9LG9GPWZ1bmN0aW9uKGEsYixjKXtpZihtRihhKSlpZihhLkg9PT1hLkspe3ZhciBkPWEuTGEuZ2V0KGIpO2QmJmQoYS5ILGMpfWVsc2V7dmFyIGU9YS5qYS5nZXQoYik7aWYoZSYmZS5kayl7bkYoYSk7dmFyIGY9KythLmhlO2EueWEuc2V0KGYse3BlOmUucGUsSXI6ZS5ubyhjKSxwZXJzaXN0ZW50OmI9PT0iYWRkRXZlbnRMaXN0ZW5lciJ9KTthLkgucG9zdE1lc3NhZ2UoZS5kayhjLGYpLCIqIil9fX0sbkY9ZnVuY3Rpb24oYSl7YS5afHwoYS5aPWZ1bmN0aW9uKGIpe2lmKGIuc291cmNlPT09YS5IKXRyeXt2YXIgYztjPWEuYWM/YS5hYyhiKTp2b2lkIDA7aWYoYyl7dmFyIGQ9Yy5ZcyxlPWEueWEuZ2V0KGQpO2lmKGUpe2UucGVyc2lzdGVudHx8YS55YS5kZWxldGUoZCk7dmFyIGY7KGY9CmUucGUpPT1udWxsfHxmLmNhbGwoZSxlLklyLGMucGF5bG9hZCl9fX1jYXRjaChnKXt9fSxtdChhLkssIm1lc3NhZ2UiLGEuWikpfTt2YXIgcEY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmxpc3RlbmVyLGQ9KDAsYS5fX2dwcCkoImFkZEV2ZW50TGlzdGVuZXIiLGMpO2QmJmMoZCwhMCl9LHFGPWZ1bmN0aW9uKGEsYil7KDAsYS5fX2dwcCkoInJlbW92ZUV2ZW50TGlzdGVuZXIiLGIubGlzdGVuZXIsYi5saXN0ZW5lcklkKX0sckY9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoiYWRkRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIn0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuO2EoYy5yZXR1cm5WYWx1ZSxjLnN1Y2Nlc3MpfX0sc0Y9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoicmVtb3ZlRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIiwKcGFyYW1ldGVyOmEubGlzdGVuZXJJZH0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuLGQ9Yy5yZXR1cm5WYWx1ZS5kYXRhO2E9PW51bGx8fGEoZCxjLnN1Y2Nlc3MpfX07ZnVuY3Rpb24gdEYoYSl7dmFyIGI9e307dmYoYS5kYXRhKT9iPUpTT04ucGFyc2UoYS5kYXRhKTpiPWEuZGF0YTtyZXR1cm57cGF5bG9hZDpiLFlzOmIuX19ncHBSZXR1cm4uY2FsbElkfX0KdmFyIHVGPWZ1bmN0aW9uKGEsYil7dmFyIGM7Yz0oYj09PXZvaWQgMD97fTpiKS50aW1lb3V0TXM7cnQuY2FsbCh0aGlzKTt0aGlzLmNhbGxlcj1uZXcgbEYoYSwiX19ncHBMb2NhdG9yIixmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQuX19ncHA9PT0iZnVuY3Rpb24ifSx0Rik7dGhpcy5jYWxsZXIuTGEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixwRik7dGhpcy5jYWxsZXIuamEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixyRik7dGhpcy5jYWxsZXIuTGEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixxRik7dGhpcy5jYWxsZXIuamEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixzRik7dGhpcy50aW1lb3V0TXM9YyE9bnVsbD9jOjUwMH07d2EodUYscnQpO3VGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5jYWxsZXIuZGlzcG9zZSgpO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9Owp1Ri5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9SHAoZnVuY3Rpb24oKXthKHZGLCEwKX0pLGQ9dGhpcy50aW1lb3V0TXM9PT0tMT92b2lkIDA6c2V0VGltZW91dChmdW5jdGlvbigpe2MoKX0sdGhpcy50aW1lb3V0TXMpO29GKHRoaXMuY2FsbGVyLCJhZGRFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oZSxmKXtjbGVhclRpbWVvdXQoZCk7dHJ5e3ZhciBnO3ZhciBoOygoaD1lLnBpbmdEYXRhKT09bnVsbD92b2lkIDA6aC5ncHBWZXJzaW9uKT09PXZvaWQgMHx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEifHxlLnBpbmdEYXRhLmdwcFZlcnNpb249PT0iMS4wIj8oYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjEsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0lTX0RFUFJFQ0FURURfU1BFQyIsCmFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pOkFycmF5LmlzQXJyYXkoZS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMpP2c9ZTooYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjIsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0VYUEVDVEVEX0FQUExJQ0FUSU9OX1NFQ1RJT05fQVJSQVkiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pO2EoZyxmKX1jYXRjaChsKXtpZihlPT1udWxsPzA6ZS5saXN0ZW5lcklkKXRyeXtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKX1jYXRjaChuKXthKHdGLCEwKTtyZXR1cm59YSh4RiwhMCl9fX0pfTsKdUYucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7b0YodGhpcy5jYWxsZXIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLHtsaXN0ZW5lcjpmdW5jdGlvbigpe30sbGlzdGVuZXJJZDphfSl9Owp2YXIgeEY9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19VTkFWQUlMQUJMRSIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9LHZGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfTElTVEVORVJfUkVHSVNUUkFUSU9OX1RJTUVPVVQiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx3Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX1JFTU9WRV9FVkVOVF9MSVNURU5FUl9FUlJPUiIsaW50ZXJuYWxFcnJvclN0YXRlOjIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9O2Z1bmN0aW9uIHlGKGEpe3ZhciBiO2lmKCEoYj1hLnBpbmdEYXRhLnNpZ25hbFN0YXR1cz09PSJyZWFkeSIpKXt2YXIgYz1hLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucztiPSFjfHxjLmxlbmd0aD09PTEmJmNbMF09PT0tMX1pZihiKXtrRi5ncHBTdHJpbmc9YS5waW5nRGF0YS5ncHBTdHJpbmc7dmFyIGQ9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMuam9pbigiLCIpO2tGLkg9ZH19ZnVuY3Rpb24gekYoKXt0cnl7dmFyIGE9bmV3IHVGKEEse3RpbWVvdXRNczotMX0pO21GKGEuY2FsbGVyKSYmYS5hZGRFdmVudExpc3RlbmVyKHlGKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBBRigpe3ZhciBhPVtbImN2IixFKDEpXSxbInJ2IixFKDE0KV0sWyJ0YyIsY0EudGFncy5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KS5sZW5ndGhdXSxiPUpmKDE1KTtiJiZhLnB1c2goWyJ4IixiXSk7dmFyIGM9Q3AoKTtjJiZhLnB1c2goWyJ0YWdfZXhwIixjXSk7cmV0dXJuIGF9O3ZhciBCRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O3RoaXMuSz17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJoZiIsZi5qb2luKCIuIildKTt2YXIgZz1hLktbY118fFtdO2cubGVuZ3RoJiZlLnB1c2goWyJodCIsZy5qb2luKCIuIildKTtkJiYoZGVsZXRlIGEuSFtjXSxkZWxldGUgYS5LW2NdKTtyZXR1cm4gZX0pfSxDRj1mdW5jdGlvbigpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlIDE6YXw9MTticmVhaztjYXNlIDI6YXw9MjticmVhaztjYXNlIDM6YXw9NH1yZXR1cm4gYX19LERGO3ZhciBFRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPSIiO2ZuLk4mJk0oNTE2KSYmZnooZnVuY3Rpb24oKXt2YXIgYj1bXTthLkgmJmIucHVzaChbInBzZCIsYS5IXSk7cmV0dXJuIGJ9KX0sRkY7ZnVuY3Rpb24gR0YoKXtyZXR1cm4hMX0KZnVuY3Rpb24gSEYoKXt2YXIgYT17fTtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe319O2Z1bmN0aW9uIElGKCl7dmFyIGE9SkY7cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt2YXIgZT1kJiZkLmV2ZW50O0tGKGMpO3ZhciBmPUJoKGIpP3ZvaWQgMDoxLGc9bmV3IGtiO0diKGMsZnVuY3Rpb24ocix0KXt2YXIgdT1VZCh0LHZvaWQgMCxmKTt1PT09dm9pZCAwJiZ0IT09dm9pZCAwJiZQKDQ0KTtnLnNldChyLHUpfSk7YS5RYihRZigpKTt2YXIgaD17Um46aGcoYiksZXZlbnRJZDplPT1udWxsP3ZvaWQgMDplLmlkLHByaW9yaXR5SWQ6ZSE9PXZvaWQgMD9lLnByaW9yaXR5SWQ6dm9pZCAwLHByaW9yaXR5UXVldWU6ZSE9PXZvaWQgMD9lLnByaW9yaXR5UXVldWU6dm9pZCAwLHdnOmUhPT12b2lkIDA/ZnVuY3Rpb24ocil7ZS5sZC53ZyhyKX06dm9pZCAwLFBiOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGxvZzpmdW5jdGlvbigpe30sTnI6e2luZGV4OmQ9PW51bGw/dm9pZCAwOmQuaW5kZXgsdHlwZTpkPT1udWxsP3ZvaWQgMDpkLnR5cGUsbmFtZTpkPT1udWxsP3ZvaWQgMDpkLm5hbWV9LAppdDohIUtBKGIsMyksb3JpZ2luYWxFdmVudERhdGE6ZT09bnVsbD92b2lkIDA6ZS5vcmlnaW5hbEV2ZW50RGF0YX07ZSYmZS5jYWNoZWRNb2RlbFZhbHVlcyYmKGguY2FjaGVkTW9kZWxWYWx1ZXM9e2d0bTplLmNhY2hlZE1vZGVsVmFsdWVzLmd0bSxlY29tbWVyY2U6ZS5jYWNoZWRNb2RlbFZhbHVlcy5lY29tbWVyY2V9KTtpZihHRigpKXt2YXIgbD1IRigpLG4scDtoLkFiPXt3azpbXSx5Zzp7fSxqYzpmdW5jdGlvbihyLHQsdSl7dD09PTEmJihuPXIpO3Q9PT03JiYocD11KTtsKHIsdCx1KX0sZWk6VmgoKX07aC5sb2c9ZnVuY3Rpb24ocil7dmFyIHQ9T2EuYXBwbHkoMSxhcmd1bWVudHMpO24mJmwobiw0LHtsZXZlbDpyLHNvdXJjZTpwLG1lc3NhZ2U6dH0pfX0KdmFyIHE9cmYoYSxoLFtiLGddKTthLlFiKCk7cSBpbnN0YW5jZW9mIFRhJiYocS50eXBlPT09InJldHVybiI/cT1xLmRhdGE6cT12b2lkIDApO3JldHVybiBUZChxLHZvaWQgMCxmKX19ZnVuY3Rpb24gS0YoYSl7dmFyIGI9YS5ndG1PblN1Y2Nlc3MsYz1hLmd0bU9uRmFpbHVyZTt5YihiKSYmKGEuZ3RtT25TdWNjZXNzPWZ1bmN0aW9uKCl7YmQoYil9KTt5YihjKSYmKGEuZ3RtT25GYWlsdXJlPWZ1bmN0aW9uKCl7YmQoYyl9KX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO2lmKCFsaChhKXx8IWhoKGIpfHwhbWgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChkLCJsaXN0ZW5fZGF0YV9sYXllciIsYSl9XSk7ZT15QigpLmFkZExpc3RlbmVyKGEsVGQoYix2b2lkIDAsMSksYz09PW51bGw/dm9pZCAwOmMpO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTt2YXIgaEc9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLmVsZW1lbnRzKXJldHVybiAwO2Zvcih2YXIgZD1iLmRhdGFzZXRbY10sZT0wLGY9MTtlPGEuZWxlbWVudHMubGVuZ3RoO2UrKyl7dmFyIGc9YS5lbGVtZW50c1tlXSxoPWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoZkcuaW5kZXhPZihoKTwwfHxoPT09ImlucHV0IiYmZ0cuaW5kZXhPZihnLnR5cGUudG9Mb3dlckNhc2UoKSk+PTApKXtpZihnLmRhdGFzZXRbY109PT1kKXJldHVybiBmO2YrK319cmV0dXJuIDB9LGZHPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGdHPVsiYnV0dG9uIiwiaGlkZGVuIiwiaW1hZ2UiLCJyZXNldCIsInN1Ym1pdCJdOwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7aWYoIWVoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGIpfHx7fSxlPVRkKGEsdGhpcy5ULDEpLnJiKCksZj1lLk07ZC5vbWl0RXZlbnRDb250ZXh0JiYoZj1KQyhuZXcgeUMoZS5NLmV2ZW50SWQsZS5NLnByaW9yaXR5SWQpKSk7dmFyIGc9bmV3IGFJKGUudGFyZ2V0LGUuZXZlbnROYW1lLGYpO2lmKCFkLm9taXRIaXREYXRhKWZvcih2YXIgaD1iSShlKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1UoZyxwLGhbcF0pfWlmKGQub21pdE1ldGFkYXRhKWcubWV0YWRhdGE9e307ZWxzZSBmb3IodmFyIHE9Y0koZSkscj1tKE9iamVjdC5rZXlzKHEpKSx0PXIubmV4dCgpOyF0LmRvbmU7dD0Kci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7VihnLHUscVt1XSl9Zy5pc0Fib3J0ZWQ9ZS5pc0Fib3J0ZWQ7Yz1VZChmSShnKSx0aGlzLlQsMSk7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dHJ5e3ZhciBkPShifHwiIikuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iaWciLmluZGV4T2YoZSk+PTB9KS5qb2luKCIiKTtjPW5ldyBQZChuZXcgUmVnRXhwKGEsZCkpfWNhdGNoKGUpe31yZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciB0ST1mdW5jdGlvbihhKXt2YXIgYj1zSSgpLGM9Yi5oZWlnaHQsZD1iLndpZHRoLGU9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWUuYm90dG9tLWUudG9wLGc9ZS5yaWdodC1lLmxlZnQ7cmV0dXJuIGYmJmc/KDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS5sZWZ0LDApK01hdGgubWF4KGUucmlnaHQtZCwwKSkvZywxKSkqKDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS50b3AsMCkrTWF0aC5tYXgoZS5ib3R0b20tYywwKSkvZiwxKSk6MH0sc0k9ZnVuY3Rpb24oKXt2YXIgYT1CLmJvZHksYj1CLmRvY3VtZW50RWxlbWVudHx8YSYmYS5wYXJlbnRFbGVtZW50LGMsZDtpZihCLmNvbXBhdE1vZGUmJkIuY29tcGF0TW9kZSE9PSJCYWNrQ29tcGF0IiljPWI/Yi5jbGllbnRIZWlnaHQ6MCxkPWI/Yi5jbGllbnRXaWR0aDowO2Vsc2V7dmFyIGU9ZnVuY3Rpb24oZixnKXtyZXR1cm4gZiYmZz9NYXRoLm1pbihmLGcpOk1hdGgubWF4KGYsZyl9O2M9ZShiP2IuY2xpZW50SGVpZ2h0OjAsYT8KYS5jbGllbnRIZWlnaHQ6MCk7ZD1lKGI/Yi5jbGllbnRXaWR0aDowLGE/YS5jbGllbnRXaWR0aDowKX1yZXR1cm57d2lkdGg6ZCxoZWlnaHQ6Y319O3ZhciB2ST1mdW5jdGlvbihhKXtpZih1SSl7dmFyIGI9YWwoMjQsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGE+PTAmJmE8Yi5sZW5ndGgmJmJbYV0pe3ZhciBjOyhjPWJbYV0pPT1udWxsfHxjLmRpc2Nvbm5lY3QoKTtiW2FdPXZvaWQgMH19ZWxzZSBBLmNsZWFySW50ZXJ2YWwoYSl9LHlJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdPjE/Y1tkXT0xOmNbZF08MCYmKGNbZF09MCk7aWYodUkpe3ZhciBlPSExO2JkKGZ1bmN0aW9uKCl7ZXx8d0koYSxiLGMpKCl9KTtyZXR1cm4geEkoZnVuY3Rpb24oZil7ZT0hMDtmb3IodmFyIGc9e0hnOjB9O2cuSGc8Zi5sZW5ndGg7Zz17SGc6Zy5IZ30sZy5IZysrKWJkKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe2EoZltoLkhnXSl9fShnKSl9LApiLGMpfXJldHVybiBjZCh3SShhLGIsYyksMUUzKX0sd0k9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoaCxsKXt2YXIgbj17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjAsd2lkdGg6MCxoZWlnaHQ6MH0scD17Ym91bmRpbmdDbGllbnRSZWN0OmguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaW50ZXJzZWN0aW9uUmF0aW86bCxpbnRlcnNlY3Rpb25SZWN0Om4saXNJbnRlcnNlY3Rpbmc6bD4wLHJvb3RCb3VuZHM6bix0YXJnZXQ6aCx0aW1lOk5iKCl9O2JkKGZ1bmN0aW9uKCl7YShwKX0pfWZvcih2YXIgZT1bXSxmPVtdLGc9MDtnPGIubGVuZ3RoO2crKyllLnB1c2goMCksZi5wdXNoKC0xKTtjLnNvcnQoZnVuY3Rpb24oaCxsKXtyZXR1cm4gaC1sfSk7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDtoKyspe3ZhciBsPXRJKGJbaF0pO2lmKGw+ZVtoXSlmb3IoO2ZbaF08Yy5sZW5ndGgtMSYmbD49Y1tmW2hdKzFdOylkKGJbaF0sbCksZltoXSsrO2Vsc2UgaWYobDwKZVtoXSlmb3IoO2ZbaF0+PTAmJmw8PWNbZltoXV07KWQoYltoXSxsKSxmW2hdLS07ZVtoXT1sfX19LHhJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9bmV3IEEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYSx7dGhyZXNob2xkOmN9KSxlPTA7ZTxiLmxlbmd0aDtlKyspZC5vYnNlcnZlKGJbZV0pO2Zvcih2YXIgZj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSksZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKCFmW2ddKXJldHVybiBmW2ddPWQsZztyZXR1cm4gZi5wdXNoKGQpLTF9LHVJPSEoIUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ8fCFBLkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpOwp2YXIgSkk9ZnVuY3Rpb24oYSl7dmFyIGIsYz0oYj1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVTZWxlY3RvcikhPW51bGw/YjohMCxkLGU9KGQ9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlVmlzaWJpbGl0eSkhPW51bGw/ZDohMCxmLGc9KGY9YT09bnVsbD92b2lkIDA6YS5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKSE9bnVsbD9mOiExLGg9KGE9PW51bGw/dm9pZCAwOmEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMpfHxbXSxsPShhPT1udWxsP3ZvaWQgMDphLmZpZWxkRmlsdGVycyl8fHtlbWFpbDohMCxwaG9uZTohMSxhZGRyZXNzOiExfSxuPWFsKDYsZnVuY3Rpb24oKXtyZXR1cm57fX0pLHA9ekkoe2luY2x1ZGVTZWxlY3RvcjpjLGluY2x1ZGVWaXNpYmlsaXR5OmUsZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6aCxmaWVsZEZpbHRlcnM6bH0pLHE9bltwXTtpZihxJiZOYigpLXEudGltZXN0YW1wPDIwMCl7dmFyIHI9cS5yZXN1bHQsdDsoci5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8CigodD1yLmdpKT09bnVsbD8wOnQuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gcn12YXIgdT1BSSgpLHY9dS5zdGF0dXMseD1bXSx5LHosQz1bXTtpZihNKDU2OCkpe3ZhciBEPUJJKGwpLEk9Q0kodS5lbGVtZW50cyxEKSxHPURJKEkpLE49RUkoRyxoKSxTPUZJKE4pO3k9Uy5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5EYT09PUZELkJifSlbMF07Zm9yKHZhciBXPVtdLGVhPXtJZzowfTtlYS5JZzxELmxlbmd0aDtlYT17SWc6ZWEuSWd9LGVhLklnKyspe3ZhciBqYT1OLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIGZ1bmN0aW9uKGliKXtyZXR1cm4gaWIuRGE9PT1EW3FhLklnXX19KGVhKSk7amEubGVuZ3RoPjEwJiYodj0iMyIsamE9amEuc2xpY2UoMCwxMCkpO1c9Vy5jb25jYXQoamEpfU49VzshZyYmUyYmKE49Uyk7Zm9yKHZhciBmYT0wO2ZhPE4ubGVuZ3RoO2ZhKyspe3ZhciBzYT1OW2ZhXTtzYS5EYSE9PUZELktoJiZDLnB1c2goR0koc2EsYyxlKSl9fWVsc2V7aWYobC5lbWFpbCl7dmFyIGRhPQpISSh1LmVsZW1lbnRzKTt4PUVJKGRhLGgpO3k9SUkoeCk7ZGEubGVuZ3RoPjEwJiYodj0iMyIpfSFnJiZ5JiYoeD1beV0pO2Zvcih2YXIgbWE9MDttYTx4Lmxlbmd0aDttYSsrKUMucHVzaChHSSh4W21hXSxjLGUpKTtDPUMuc2xpY2UoMCwxMCl9eSYmKHo9R0koeSxjLGUpKTt2YXIgUGE9e2VsZW1lbnRzOkMsZ2k6eixzdGF0dXM6dn07bltwXT17dGltZXN0YW1wOk5iKCkscmVzdWx0OlBhfTt2YXIgRmE7KFBhLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwoKEZhPVBhLmdpKT09bnVsbD8wOkZhLmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIFBhfSxEST1mdW5jdGlvbihhKXt2YXIgYj1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELktofSksYz1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELlhkfSk7aWYoYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5jZX0pLmxlbmd0aD09PTAmJmMubGVuZ3RoPT09CjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0sZj1lLkNhLnNwbGl0KCIgIik7Zi5sZW5ndGg+MSYmYS5wdXNoKHtDYTpmWzBdLERhOkZELlhkLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9LHtDYTpmLnNsaWNlKDEpLmpvaW4oIiAiKSxEYTpGRC5jZSxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSl9Zm9yKHZhciBnLGg9MCxsLG49ZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5lZSYmdS5DYS5sZW5ndGg+PTMmJnUuQ2EubGVuZ3RoPD00fSxwPTA7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWFbcF07aWYobihxKSYmZyYmcS5lbGVtZW50LnBhcmVudEVsZW1lbnQ9PT1nJiZoPDMpe2lmKGgrPTEsbCs9cS5DYSxoPT09Myl7dmFyIHI9cC1oKzE7aWYobD1LSVtGRC5lZV0ubmEobCkpYVtyXS5DYT1sfX1lbHNlIGlmKGg9MCxsPSIiLGc9dm9pZCAwLG4ocSkpe2grKztsPXEuQ2E7dmFyIHQ9dm9pZCAwO2c9KHQ9cS5lbGVtZW50LnBhcmVudEVsZW1lbnQpIT1udWxsPwp0OnZvaWQgMH19cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiFuKHUpfSl9LE9JPWZ1bmN0aW9uKGEsYil7aWYoYS52YWx1ZSYmTEkuaW5kZXhPZigoYS50eXBlfHwidGV4dCIpLnRvTG93ZXJDYXNlKCkpIT09LTEpe3ZhciBjPWEuYXV0b2NvbXBsZXRlO2lmKGMpZm9yKHZhciBkPWMuc3BsaXQoIiAiKSxlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPU1JKGEudmFsdWUsYixkW2VdKTtpZihmKXJldHVybiBmfXZhciBnLGg9W2EubmFtZSxhLmlkLChnPWEuYXJpYUxhYmVsKSE9bnVsbD9nOnZvaWQgMCxhLnBsYWNlaG9sZGVyXSxsPWEucGFyZW50RWxlbWVudDtsJiZsLnRhZ05hbWU9PT0iTEFCRUwiJiZoLnB1c2gobC5pbm5lclRleHQpO3ZhciBuPWEucHJldmlvdXNFbGVtZW50U2libGluZztuJiZuLnRhZ05hbWU9PT0iTEFCRUwiJiYhbi5odG1sRm9yJiZoLnB1c2gobi5pbm5lclRleHQpO2lmKGEuaWQpe3ZhciBwPVtdO3RyeXtwPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnbGFiZWxbZm9yPSInKwphLmlkKyciXScpfWNhdGNoKEQpe31mb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKyloLnB1c2gocFtxXS5pbm5lclRleHQpfWg9aC5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIEQmJkQudHJpbSgpfSk7Zm9yKHZhciByLHQ9MCx1PTA7dTxoLmxlbmd0aDt1Kyspe3ZhciB2PU5JKGEsYixoW3VdKTtpZih2KXt2YXIgeD12LHk9eC5DYSx6PXguRGEsQz14LlhzO0M+dCYmKHQ9QyxyPXtDYTp5LERhOnp9KX19cmV0dXJuIHJ9fSxOST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0ubmUpe3ZhciBmPUtJW2VdLm5lLmV4ZWMoYy50cmltKCkpO2lmKGYpe3ZhciBnPWEsaD1bXSxsPWcudmFsdWUudHJpbSgpO2wmJmgucHVzaChsKTtpZihnLnRhZ05hbWU9PT0iU0VMRUNUIil0cnl7dmFyIG49Zy5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrZy52YWx1ZSsnIl0nKSxwPW4mJm4uaW5uZXJUZXh0LnRyaW0oKTtwJiZoLnB1c2gocCl9Y2F0Y2godSl7fWZvcih2YXIgcT0KaCxyPXZvaWQgMCx0PTA7dDxxLmxlbmd0aCYmIXI7dCsrKXI9S0lbZV0ubmEocVt0XSk7aWYocilyZXR1cm57RGE6ZSxDYTpyLFhzOmZbMF0ubGVuZ3RoL2MudHJpbSgpLmxlbmd0aH19fX19LE1JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5hdXRvY29tcGxldGUmJktJW2VdLmF1dG9jb21wbGV0ZS5pbmRleE9mKGMpPj0wKXt2YXIgZj1LSVtlXS5uYShhLnRyaW0oKSk7aWYoZilyZXR1cm57RGE6ZSxDYTpmfX19fSxCST1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmVtYWlsJiZiLnB1c2goRkQuQmIpO2EucGhvbmUmJmIucHVzaChGRC5lZSk7YS5hZGRyZXNzJiZiLnB1c2goRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQuS2gpO3JldHVybiBifSxDST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0sZj1lLmVsZW1lbnQsZz1lLk9jLGg7YTp7dmFyIGw9ZixuPWIsCnA9bC5pbm5lckhUTUw7UEkuaW5kZXhPZihsLnRhZ05hbWUpPj0wJiYocD1sLnZhbHVlfHxwKTtpZihwKXt2YXIgcTtiOntmb3IodmFyIHI9cCx0PW4sdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgdj10W3VdO2lmKCFLSVt2XS5tZSl7dmFyIHg9S0lbdl0ubmEoci50cmltKCkpO2lmKHgpe3E9e0RhOnYsQ2E6eH07YnJlYWsgYn19fXE9dm9pZCAwfWlmKHEpe2g9cTticmVhayBhfWlmKFBJLmluZGV4T2YobC50YWdOYW1lKSE9PS0xKXtoPU9JKGwsbik7YnJlYWsgYX19aD12b2lkIDB9dmFyIHk9aDtpZih5KXt2YXIgej15O2MucHVzaCh7Q2E6ei5DYSxEYTp6LkRhLGVsZW1lbnQ6ZixPYzpnfSl9fXJldHVybiBjfSxGST1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIGI7dmFyIGM9e30sZDtmb3IoZCBpbiBGRClpZihjPXtWZzpjLlZnfSxjLlZnPWQsRkQuaGFzT3duUHJvcGVydHkoYy5WZykpe3ZhciBlPWEuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gZy5EYT09PQpGRFtmLlZnXX19KGMpKTtlLmxlbmd0aCE9PTAmJihGRFtjLlZnXT09PUZELkJiJiYoZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFSSS50ZXN0KGYuQ2EpfSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiBmLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hckkoZi5lbGVtZW50KX0pKSxiLnB1c2goZVswXSkpfXJldHVybiBifSxHST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5lbGVtZW50LGU9YS5PYyxmPXtDYTphLkNhLHR5cGU6YS5EYSx0YWdOYW1lOmQudGFnTmFtZX07aWYoYil7dmFyIGcsaD1TSShkKTtpZihnPShlP2UrInwiK2g6aCkuc2xpY2UoMCxUSSkpZi5xdWVyeVNlbGVjdG9yPWd9YyYmKGYuaXNWaXNpYmxlPSFySShkKSk7ZSYmKGYuZGk9ITApO3JldHVybiBmfSx6ST1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtiPWEuaW5jbHVkZVNlbGVjdG9yO2M9YS5pbmNsdWRlVmlzaWJpbGl0eTtkPWEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM7CmU9YS5maWVsZEZpbHRlcnM7dmFyIGY9ISFiKyIuIishIWM7ZC5sZW5ndGgmJihmKz0iLiIrZC5qb2luKCIuIikpO3JldHVybiBmKz0iLiIrZS5lbWFpbCsiLiIrZS5waG9uZSsiLiIrZS5hZGRyZXNzfSxJST1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiO2I9UUkoYSxmdW5jdGlvbihjKXtyZXR1cm4hUkkudGVzdChjLkNhKX0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4gYy5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIXJJKGMuZWxlbWVudCl9KTtyZXR1cm4gYlswXX19LEVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtpZihnJiZwSShhW2RdLmVsZW1lbnQsZykpe2U9ITE7YnJlYWt9fWFbZF0uRGE9PT1GRC5CYiYmTSg2MDIpJiYoUkkudGVzdChhW2RdLkNhKXx8YVtkXS5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PQoiQSImJmFbZF0uZWxlbWVudC5oYXNBdHRyaWJ1dGUoImhyZWYiKSYmYVtkXS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluZGV4T2YoIm1haWx0bzoiKSE9PS0xP2U9ITE6YVtkXS5lbGVtZW50LmNsb3Nlc3QoImZvb3RlciIpIT09bnVsbCYmKGU9ITEpKTtlJiZjLnB1c2goYVtkXSl9cmV0dXJuIGN9LFFJPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg8PTEpcmV0dXJuIGE7dmFyIGM9YS5maWx0ZXIoYik7cmV0dXJuIGMubGVuZ3RoPT09MD9hOmN9LFNJPWZ1bmN0aW9uKGEpe2lmKGE9PT1CLmJvZHkpcmV0dXJuImJvZHkiO2lmKGEuaWQpcmV0dXJuIiMiK2EuaWQ7dmFyIGI9YS5wYXJlbnRFbGVtZW50O2lmKGIpe3ZhciBjPVNJKGIpLGQ9VUkoYSxiKSxlPVZJKGEpKyI6bnRoLWNoaWxkKCIrZCsiKSI7cmV0dXJuIGM/YysiPiIrZTplfXZhciBmPWEucGFyZW50Tm9kZTtpZihmIGluc3RhbmNlb2YgU2hhZG93Um9vdCl7dmFyIGc9VUkoYSxmKTtyZXR1cm4gVkkoYSkrIjpudGgtY2hpbGQoIisKZysiKSJ9cmV0dXJuIGEudGFnTmFtZT9hLnRhZ05hbWUudG9Mb3dlckNhc2UoKToiIn0sVkk9ZnVuY3Rpb24oYSl7aWYoYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0Lmxlbmd0aD4wKXt2YXIgYj1BcnJheS5mcm9tKGEuY2xhc3NMaXN0LGZ1bmN0aW9uKGMpe3JldHVybiBDU1MuZXNjYXBlKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmxlbmd0aD4wfSk7aWYoYi5sZW5ndGg+MClyZXR1cm4iLiIrYi5qb2luKCIuIil9cmV0dXJuIiJ9LFVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGRyZW4sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKGNbZF09PT1hKXJldHVybiBkKzE7cmV0dXJuIDF9LEhJPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmVsZW1lbnQsZj1kLk9jLGc9ZS50ZXh0Q29udGVudDtlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCImJmUudmFsdWUmJihnPWUudmFsdWUpO2lmKGcpe3ZhciBoPQpnLm1hdGNoKEtEKTtpZihoKXt2YXIgbD1oWzBdO0xEKGwpfHxiLnB1c2goe2VsZW1lbnQ6ZSxDYTpsLERhOkZELkJiLE9jOmZ9KX19fXJldHVybiBifSxBST1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Qi5ib2R5O2lmKCFiKXJldHVybntlbGVtZW50czphLHN0YXR1czoiNCJ9O3ZhciBjPVdJKGIsMCwiIixhKTtyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6Y319LFdJPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSxmPWUubGVuZ3RoPjFFND8iMiI6IjEiLGc9MDtnPE1hdGgubWluKGUubGVuZ3RoLDFFNCk7ZysrKXt2YXIgaD1lW2ddO2lmKCEoWEkuaW5kZXhPZihoLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApJiZoLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pe3ZhciBsPSExO2lmKE0oNTgyKSYmaC5zaGFkb3dSb290JiZiPDEpe3ZhciBuPVNJKGgpO1dJKGguc2hhZG93Um9vdCxiKzEsYz9jKyJ8IituOm4sZCk9PT0iMiImJgooZj0iMiIpO2w9ITB9dmFyIHA9ITE7aWYoIWwpZm9yKHZhciBxPTA7cTxNYXRoLm1pbihoLmNoaWxkRWxlbWVudENvdW50LDFFNCk7cSsrKWlmKCEoWUkuaW5kZXhPZihoLmNoaWxkcmVuW3FdLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApKXtwPSEwO2JyZWFrfSghcCYmIWx8fE0oNTY4KSYmUEkuaW5kZXhPZihoLnRhZ05hbWUpIT09LTEpJiZkLnB1c2goe2VsZW1lbnQ6aCxPYzpiPjA/Yzp2b2lkIDB9KX19cmV0dXJuIGZ9LFJJPS9zdXBwb3J0fG5vcmVwbHkvaSxYST0iU0NSSVBUIFNUWUxFIElNRyBTVkcgUEFUSCBCUiBOT1NDUklQVCBURVhUQVJFQSIuc3BsaXQoIiAiKSxZST1bIkJSIl0sVEk9TmYoNzAsNTApLFBJPVsiSU5QVVQiLCJTRUxFQ1QiXSxMST0idGV4dCB0ZWwgc2VhcmNoIG51bWJlciBoaWRkZW4gZW1haWwgc2VsZWN0LW9uZSIuc3BsaXQoIiAiKSxaST1SZWdFeHAoInBob25lfG1vYmlsZXxjb250YWN0Lj9udW1iZXJ8dGVsZWZvbm51bW1lcnx0ZWxlZm9ub3x0ZWxcdTAwZTlmb25vfHRlbGZpeGV8XHU5NmZiXHU4YTcxfHRlbGVmb25lfHRlbGVtb3ZlbHxcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzVcdTA0NDRcdTA0M2VcdTA0M2R8XHUwOTJlXHUwOTRiXHUwOTJjXHUwOTNlXHUwOTA3XHUwOTMyfFx1NzUzNVx1OGJkZHxcdTYyNGJcdTY3M2FcdTUzZjd8XHUwZDJlXHUwZDRhXHUwZDJjXHUwZDQ4XHUwZDMyXHUwZDRkXHUyMDBkfChefFstX10pdGVsWy1fXT8oXFxkKykqKFxcWy4qXFxdKSokfCg/Olx1YzgwNFx1ZDY1NHxcdWQ1NzhcdWI0ZGNcdWQzZjB8XHVkNzM0XHViMzAwXHVkM2YwfFx1ZDczNFx1YjMwMFx1YzgwNFx1ZDY1NCkoPzouP1x1YmM4OFx1ZDYzOCk/fChcXGJ8X3xcXCopdGVsZWZvbihcXGJ8X3xcXCopfHRlbGVwb258cG9uc2VsfChub21vcnxub1xcLj8pLj8oaHB8aGFuZHBob25lKSIsCiJpIiksJEk9UmVnRXhwKCJebmFtZXxmdWxsLj9uYW1lfHlvdXIuP25hbWV8Y3VzdG9tZXIuP25hbWV8YmlsbC4/bmFtZXxzaGlwLj9uYW1lfG5hbWUuKmZpcnN0LipsYXN0fGZpcnN0YW5kbGFzdG5hbWV8Y29udGFjdC4/KG5hbWV8cGVyc29uKXxub21icmUuKnkuKmFwZWxsaWRvc3xebm9tKD8hW2EtekEtWl0pfFx1MzA0YVx1NTQwZFx1NTI0ZHxcdTZjMGZcdTU0MGR8Xm5vbWV8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTU5ZDNcXHMqXHU1NDBkfFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzZFx1MDQzZVx1MDQzNS4/XHUwNDNiXHUwNDM4XHUwNDQ2XHUwNDNlfChcXGJ8X3xcXCopYWRbXHUwMTMxXT8gc295YWRbXHUwMTMxXT8oXFxifF98XFwqKXxcdWMxMzFcdWJhODV8bmFtYS4/KGxlbmdrYXB8cGVuZXJpbWF8a2FtdSkiLAoiaSIpLGFKPVJlZ0V4cCgiZmlyc3QuKm5hbWV8aW5pdGlhbHN8Zm5hbWV8Zmlyc3QkfGdpdmVuLipuYW1lfHZvcm5hbWV8bm9tYnJlfGZvcmVuYW1lfHByXHUwMGU5bm9tfHByZW5vbXxcdTU0MGR8bm9tZXxcdTA0MThcdTA0M2NcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1fFx1Yzc3NFx1Yjk4NHxcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoaXNpbXxhZHxhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XHUwOTI4XHUwOTNlXHUwOTJlfG5hbWEgZGVwYW4iLCJpIiksYko9UmVnRXhwKCJsYXN0LipuYW1lfGxuYW1lfHN1cm5hbWUoPyFcXGQpfGxhc3QkfHNlY29uZG5hbWV8ZmFtaWx5LipuYW1lfG5hY2huYW1lfGFwZWxsaWRvcz98ZmFtaWxsZXxebm9tKD8hW2EtekEtWl0pfGNvZ25vbWV8XHU1OWQzfGFwZWxpZG9zfHN1cmVuYW1lfHNvYnJlbm9tZXxcdTA0MjRcdTA0MzBcdTA0M2NcdTA0MzhcdTA0M2JcdTA0MzhcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHUwOTA5XHUwOTJhXHUwOTI4XHUwOTNlXHUwOTJlfFx1MGQyZVx1MGQzMVx1MGQ0MVx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShzb3lpc2ltfHNveWFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcXGJcdWMxMzEoPzpbXlx1YmE4NV18XFxiKXxuYW1hIGJlbGFrYW5nIiwKImkiKSxjSj1SZWdFeHAoImNvdW50cnl8Y291bnRyaWVzfHBhXHUwMGVkc3xwYWlzfChcXGJ8XylsYW5kKFxcYnxfKSg/IS4qKG1hcmsuKikpfChefFteKFx1NTE2NXxcdTUxZmEpXSlcdTU2ZmR8XHU1NmZkXHU1YmI2fFx1YWQ2ZFx1YWMwMHxcdWIwOThcdWI3N2N8KFxcYnxfKShcdTAwZmNsa2V8dWxjZXx1bGtlKShcXGJ8Xyl8XHUwNmE5XHUwNjM0XHUwNjQ4XHUwNjMxfG5lZ2FyYSIsImkiKSxkSj1SZWdFeHAoIihefFteLl0pemlwfHBvc3RhbHxwb3N0Lipjb2RlfHBjb2RlfHBpbi4/Y29kZXxwb3N0bGVpdHphaGx8XFxiY3BcXGJ8XFxiY2RwXFxifFxcYmNhcFxcYnxcdTkwZjVcdTRmYmZcdTc1NmFcdTUzZjd8Y29kaWdvfGNvZHBvc3xcXGJjZXBcXGJ8XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5Lj9cdTA0MThcdTA0M2RcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NDF8XHUwOTJhXHUwOTNmXHUwOTI4Lj9cdTA5MTVcdTA5NGJcdTA5MjF8XHUwZDJhXHUwZDNmXHUwZDI4XHUwZDRkXHUyMDBkXHUwZDE1XHUwZDRiXHUwZDIxXHUwZDRkfFx1OTBhZVx1NjUzZlx1N2YxNlx1NzgwMXxcdTkwYWVcdTdmMTZ8XHU5MGY1XHU5MDVlXHU1MzQwXHU4NjVmfChcXGJ8Xylwb3N0YSBrb2R1KFxcYnxfKXxcdWM2YjBcdWQzYjguP1x1YmM4OFx1ZDYzOHxrb2RlLj9wb3MiLAoiaSIpLGVKPXt9LEtJPShlSltGRC5CYl09e21lOiExLG5hOk1EfSxlSltGRC5lZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbInRlbCIsInRlbC1uYXRpb25hbCIsInRlbC1sb2NhbCJdLG5lOlpJLG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCEwKX19LGVKW0ZELktoXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsibmFtZSIsImNjLW5hbWUiXSxuZTokSSxuYTpORH0sZUpbRkQuWGRdPXttZTohMCxhdXRvY29tcGxldGU6WyJnaXZlbi1uYW1lIiwiY2MtZ2l2ZW4tbmFtZSJdLG5lOmFKLG5hOk5EfSxlSltGRC5jZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbImZhbWlseS1uYW1lIiwiY2MtZmFtaWx5LW5hbWUiXSxuZTpiSixuYTpORH0sZUpbRkQueGZdPXttZTohMCxhdXRvY29tcGxldGU6WyJjb3VudHJ5IiwiY291bnRyeS1uYW1lIl0sbmU6Y0osbmE6TkR9LGVKW0ZELnFnXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsicG9zdGFsLWNvZGUiXSxuZTpkSixuYTpJRH0sZUopO2Z1bmN0aW9uIGZKKGEpe3ZhciBiO0wodGhpcywiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iKTt2YXIgYz1UZChhKXx8e30sZD1KSSh7aW5jbHVkZVNlbGVjdG9yOiEhYy5pbmNsdWRlU2VsZWN0b3IsaW5jbHVkZVZpc2liaWxpdHk6ISFjLmluY2x1ZGVWaXNpYmlsaXR5LGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmMuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMsZmllbGRGaWx0ZXJzOmMuZmllbGRGaWx0ZXJzLHNlbGVjdE11bHRpcGxlRWxlbWVudHM6ISFjLnNlbGVjdE11bHRpcGxlRWxlbWVudHN9KTtiPW5ldyBrYjt2YXIgZT1uZXcgR2Q7Yi5zZXQoImVsZW1lbnRzIixlKTtmb3IodmFyIGY9ZC5lbGVtZW50cyxnPTA7ZzxmLmxlbmd0aDtnKyspZS5wdXNoKGdKKGZbZ10pKTtkLmdpIT09dm9pZCAwJiZiLnNldCgicHJlZmVycmVkRW1haWxFbGVtZW50IiwKZ0ooZC5naSkpO2Iuc2V0KCJzdGF0dXMiLGQuc3RhdHVzKTtpZihjLnJlYWRGcm9tRGF0YUxheWVyKXtoSihlLGMpO3ZhciBoPVBEKCksbD1oLnN0O2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hUaW1lIixoLnZ0KTtiLnNldCgiZGF0YUxheWVyU2VhcmNoQ291bnQiLGwpfXJldHVybiBifQp2YXIgaUo9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgRkQuQmI6cmV0dXJuImVtYWlsIjtjYXNlIEZELmVlOnJldHVybiJwaG9uZV9udW1iZXIiO2Nhc2UgRkQuWGQ6cmV0dXJuImZpcnN0X25hbWUiO2Nhc2UgRkQuY2U6cmV0dXJuImxhc3RfbmFtZSI7Y2FzZSBGRC50ajpyZXR1cm4ic3RyZWV0IjtjYXNlIEZELmxpOnJldHVybiJjaXR5IjtjYXNlIEZELmpqOnJldHVybiJyZWdpb24iO2Nhc2UgRkQucWc6cmV0dXJuInBvc3RhbF9jb2RlIjtjYXNlIEZELnhmOnJldHVybiJjb3VudHJ5In19LGpKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYixjPWlKKGEuRGEpO2MhPT12b2lkIDAmJmIuc2V0KCJ0eXBlIixjKTtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIiwiRExZUiIpO3JldHVybiBifSxoSj1mdW5jdGlvbihhLGIpe3ZhciBjPVFEKCk7aWYoTSg1NjgpKWZvcih2YXIgZD1uZXcgU2V0KGEuaGMoKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuZ2V0KCJ0eXBlIil9KSksCmU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlKSxoPWcubmV4dCgpLnZhbHVlLGw9Zy5uZXh0KCkudmFsdWUsbj1oLHA9bDtpZihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpYS5wdXNoKGpKKHApKTtlbHNle3ZhciBxPWlKKG4pO3EmJiFkLmhhcyhxKSYmYS5wdXNoKGpKKHApKX19ZWxzZSBjLmhhcyhGRC5CYikmJihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHN8fGEubGVuZ3RoKCk9PT0wKSYmYS5wdXNoKGpKKGMuZ2V0KEZELkJiKSkpfSxnSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsYS50YWdOYW1lKTthLnF1ZXJ5U2VsZWN0b3IhPT12b2lkIDAmJmIuc2V0KCJxdWVyeVNlbGVjdG9yIixhLnF1ZXJ5U2VsZWN0b3IpO2EuaXNWaXNpYmxlIT09dm9pZCAwJiZiLnNldCgiaXNWaXNpYmxlIixhLmlzVmlzaWJsZSk7aWYoTSg1NjgpKXt2YXIgYz1pSihhLnR5cGUpO2MhPT0Kdm9pZCAwJiZiLnNldCgidHlwZSIsYyl9ZWxzZSBzd2l0Y2goYS50eXBlKXtjYXNlIEZELkJiOmIuc2V0KCJ0eXBlIiwiZW1haWwiKX1yZXR1cm4gYn07ZkouUD0iaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSI7CnZhciBrSj1mdW5jdGlvbihhKXt2YXIgYj1oZChhLFsiYnV0dG9uIiwiaW5wdXQiXSw1MCk7aWYoIWIpcmV0dXJuIG51bGw7dmFyIGM9U3RyaW5nKGIudGFnTmFtZSkudG9Mb3dlckNhc2UoKTtpZihjPT09ImJ1dHRvbiIpcmV0dXJuIGI7aWYoYz09PSJpbnB1dCIpe3ZhciBkPWVkKGIsInR5cGUiKTtpZihkPT09ImJ1dHRvbiJ8fGQ9PT0ic3VibWl0Inx8ZD09PSJpbWFnZSJ8fGQ9PT0iZmlsZSJ8fGQ9PT0icmVzZXQiKXJldHVybiBifXJldHVybiBudWxsfSxsSj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy50YXJnZXQ7aWYoZCl7dmFyIGU9JEYoYSwiaW5kaXZpZHVhbEVsZW1lbnRJZHMiLFtdKTtpZihlLmxlbmd0aD4wKXt2YXIgZj1lRyhkLGIsZSk7dUUoZil9dmFyIGc9ITEsaD0kRihhLCJjb21tb25CdXR0b25JZHMiLFtdKTtpZihoLmxlbmd0aD4wKXt2YXIgbD1rSihkKTtpZihsKXt2YXIgbj1lRyhsLGIsaCk7dUUobik7Zz0hMH19dmFyIHA9JEYoYSwic2VsZWN0b3JUb1RyaWdnZXJJZHMiLAp7fSkscTtmb3IocSBpbiBwKWlmKHAuaGFzT3duUHJvcGVydHkocSkpe3ZhciByPWc/cFtxXS5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIGguaW5kZXhPZih2KT09PS0xfSk6cFtxXTtpZihyLmxlbmd0aCE9PTApe3ZhciB0PXBJKGQscSk7aWYodCl7dmFyIHU9ZUcodCxiLHIpO3VFKHUpfX19fX07CmZ1bmN0aW9uIG1KKGEsYil7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgYz1hP1RkKGEpOnt9LGQ9SmIoYy5tYXRjaENvbW1vbkJ1dHRvbnMpLGU9ISFjLmNzc1NlbGVjdG9yLGY9WkYoYik7TCh0aGlzLCJkZXRlY3RfY2xpY2tfZXZlbnRzIixjLm1hdGNoQ29tbW9uQnV0dG9ucyxjLmNzc1NlbGVjdG9yKTt2YXIgZz1jLnVzZVYyRXZlbnROYW1lPyJndG0uY2xpY2stdjIiOiJndG0uY2xpY2siLGg9Yy51c2VWMkV2ZW50TmFtZT8iZWNsIjoiY2wiLGw9ZnVuY3Rpb24ocCl7cC5wdXNoKGYpO3JldHVybiBwfTtpZihlfHxkKXtpZihkJiZkRyhoLCJjb21tb25CdXR0b25JZHMiLGwsW10pLGUpe3ZhciBuPUxiKFN0cmluZyhjLmNzc1NlbGVjdG9yKSk7ZEcoaCwic2VsZWN0b3JUb1RyaWdnZXJJZHMiLApmdW5jdGlvbihwKXtwLmhhc093blByb3BlcnR5KG4pfHwocFtuXT1bXSk7bChwW25dKTtyZXR1cm4gcH0se30pfX1lbHNlIGRHKGgsImluZGl2aWR1YWxFbGVtZW50SWRzIixsLFtdKTtiRyhoLGZ1bmN0aW9uKCl7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKHApe2xKKGgsZyxwKX0sITApfSk7cmV0dXJuIGZ9bUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayI7CnZhciBuSj1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLk49ISFBLk11dGF0aW9uT2JzZXJ2ZXJ9O25KLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYodGhpcy5ILmxlbmd0aD09PTApe3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGQ9Qi5ib2R5O2lmKGQpaWYoYi5OKShuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKS5vYnNlcnZlKGQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZWxzZXt2YXIgZT0hMTskYyhkLCJET01Ob2RlSW5zZXJ0ZWQiLGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYmQoZnVuY3Rpb24oKXtlPSExO2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKX0pfX07Qi5ib2R5P2MoKTpiZChjKX10aGlzLkgucHVzaChhKX07bkoucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7aWYodGhpcy5IKWZvcih2YXIgYj0wO2I8dGhpcy5ILmxlbmd0aDtiKyspdGhpcy5IW2JdPT09CmEmJnRoaXMuSC5zcGxpY2UoYiwxKX07dmFyIG9KPW5ldyBuSjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKdmFyIHdKPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPWJbY107ZSYmR2IoZCxmdW5jdGlvbihmLGcpe3ZKKGcsZSl9KX0pfSx6Sj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0iIitiO2lmKGNbaF0pY1toXS5wdXNoKGEpO2Vsc2V7dmFyIGw9W2FdO2NbaF09bDt2YXIgbj1kW2hdO258fChuPXt9LGRbaF09bik7ZS5wdXNoKGZ1bmN0aW9uKHApe3ZhciBxPXAudGFyZ2V0O2lmKHEpe3ZhciByPWlHKHEpO2lmKHIpe3ZhciB0PXhKKHIsImd0bUZvcm1JbnRlcmFjdElkIixmKSx1PXhKKHEsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiLGcpO2lmKHQhPT1udWxsJiZ1IT09bnVsbCl7dmFyIHY9blt0XTt2Pyh2LlJiJiYoQS5jbGVhclRpbWVvdXQodi5SYiksdi5kZi5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLWZvcm0taW50ZXJhY3QtZmllbGQtaWQiKSE9PXUmJnZKKHYsbCkpLHYuZGY9cSx5Sih2LGwsYikpOihuW3RdPXtmb3JtOnIsZGY6cSxzZXF1ZW5jZU51bWJlcjowLApSYjpudWxsfSx5SihuW3RdLGwsYikpfX19fSl9fSx2Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZm9ybSxkPWEuZGYsZT1lRyhjLCJndG0uZm9ybUludGVyYWN0IixiKSxmPWMuYWN0aW9uO2YmJmYudGFnTmFtZSYmKGY9Yy5jbG9uZU5vZGUoITEpLmFjdGlvbik7ZVsiZ3RtLmVsZW1lbnRVcmwiXT1mO2VbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1jLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2MuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdPWMubGVuZ3RoO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkIl09ZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZElkIl09ZC5pZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZE5hbWUiXT1kLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2QuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkUG9zaXRpb24iXT1oRyhjLGQsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiKTsKZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRUeXBlIl09ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgidHlwZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RTZXF1ZW5jZU51bWJlciJdPWEuc2VxdWVuY2VOdW1iZXI7dUUoZSk7YS5zZXF1ZW5jZU51bWJlcisrO2EuUmI9bnVsbH0seUo9ZnVuY3Rpb24oYSxiLGMpe2M/YS5SYj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2SihhLGIpfSxjKTp2SihhLGIpfSx4Sj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7dHJ5e2lmKGQ9YS5kYXRhc2V0W2JdKXJldHVybiBkO2Q9U3RyaW5nKGMoKSk7YS5kYXRhc2V0W2JdPWR9Y2F0Y2goZSl7ZD1udWxsfXJldHVybiBkfTsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiKX1dKTt2YXIgZD1aRihiKSxlPWEmJk51bWJlcihhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7aWYoJEYoImZpbCIsImluaXQiLCExKSl7dmFyIGY9JEYoImZpbCIsInJlZyIpO2lmKGYpZihkLGUpO2Vsc2UgdGhyb3cgRXJyb3IoIkZhaWxlZCB0byByZWdpc3RlciB0cmlnZ2VyOiAiK2QpO31lbHNle3ZhciBnPXt9LGg9W10sbD17fSxuPTAscD1mdW5jdGlvbigpe3JldHVybiBuKyt9LHE9MCxyPWZ1bmN0aW9uKCl7cmV0dXJuIHErK307JGMoQiwiY2hhbmdlIiwKZnVuY3Rpb24odCl7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1KyspaFt1XSh0KX0pOyRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3dKKGwsZyl9KTt6SihkLGUsZyxsLGgscCxyKTthRygiZmlsIiwicmVnIixmdW5jdGlvbih0LHUpe3pKKHQsdSxnLGwsaCxwLHIpfSk7YUcoImZpbCIsImluaXQiLCEwKX1yZXR1cm4gZH1BSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiI7CnZhciBCSj1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSRGKCJmc2wiLGM/Im52Lm13dCI6Im13dCIsMCksZztnPWM/JEYoImZzbCIsIm52LmlkcyIsW10pOiRGKCJmc2wiLCJpZHMiLFtdKTtpZighZy5sZW5ndGgpcmV0dXJuITA7dmFyIGg9ZUcoYSwiZ3RtLmZvcm1TdWJtaXQiLGcpLGw9YS5hY3Rpb247bCYmbC50YWdOYW1lJiYobD1hLmNsb25lTm9kZSghMSkuYWN0aW9uKTtQKDEyMSk7aWYobD09PSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHIvIilyZXR1cm4gUCgxMjIpLCEwO2hbImd0bS5lbGVtZW50VXJsIl09bDtoWyJndG0uZm9ybUNhbmNlbGVkIl09YzthLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsJiYoaFsiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdPWEuZ2V0QXR0cmlidXRlKCJuYW1lIikpO2UmJihoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnQiXT1lLGhbImd0bS5mb3JtU3VibWl0RWxlbWVudFRleHQiXT1lLnZhbHVlKTtpZihkJiZmKXtpZighc0UoaCxqRShiLApmKSxmKSlyZXR1cm4hMX1lbHNlIEZ5KDEsImd0bS5mb3JtU3VibWl0Iiksc0UoaCxmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH0sQ0o9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPWZ1bmN0aW9uKGMpe3JldHVybiBDYihhLGZ1bmN0aW9uKGQpe3JldHVybiBkLmZvcm09PT1jfSl9O3JldHVybntzdG9yZTpmdW5jdGlvbihjLGQpe3ZhciBlPWIoYyk7ZT9lLmJ1dHRvbj1kOmEucHVzaCh7Zm9ybTpjLGJ1dHRvbjpkfSl9LGdldDpmdW5jdGlvbihjKXt2YXIgZD1iKGMpO2lmKGQpcmV0dXJuIGQuYnV0dG9ufX19LERKPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiBiJiZiIT09Il9zZWxmIiYmYiE9PSJfcGFyZW50IiYmYiE9PSJfdG9wIj8hMTohMH0sRUo9ZnVuY3Rpb24oKXt2YXIgYT1DSigpLGI9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPWhkKGQsWyJidXR0b24iLAoiaW5wdXQiXSwxMDApO2lmKGUmJihlLnR5cGU9PT0ic3VibWl0Inx8ZS50eXBlPT09ImltYWdlIikmJmUubmFtZSYmZWQoZSwidmFsdWUiKSl7dmFyIGY9aUcoZSk7ZiYmYS5zdG9yZShmLGUpfX19LCExKTskYyhCLCJzdWJtaXQiLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKCFkKXJldHVybiBjLnJldHVyblZhbHVlO3ZhciBlPWMuZGVmYXVsdFByZXZlbnRlZHx8Yy5yZXR1cm5WYWx1ZT09PSExLGY9REooZCkmJiFlLGc9YS5nZXQoZCksaD0hMDtpZihCSihkLGZ1bmN0aW9uKCl7aWYoaCl7dmFyIGw9bnVsbCxuPXt9O2cmJihsPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxsLnR5cGU9ImhpZGRlbiIsbC5uYW1lPWcubmFtZSxsLnZhbHVlPWcudmFsdWUsZC5hcHBlbmRDaGlsZChsKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWFjdGlvbiIpJiYobi5hY3Rpb249ZC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpLHhjKGQsZy5nZXRBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtZW5jdHlwZSIpJiYKKG4uZW5jdHlwZT1kLmdldEF0dHJpYnV0ZSgiZW5jdHlwZSIpLGQuc2V0QXR0cmlidXRlKCJlbmN0eXBlIixnLmdldEF0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtbWV0aG9kIikmJihuLm1ldGhvZD1kLmdldEF0dHJpYnV0ZSgibWV0aG9kIiksZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsZy5nZXRBdHRyaWJ1dGUoImZvcm1tZXRob2QiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtdmFsaWRhdGUiKSYmKG4udmFsaWRhdGU9ZC5nZXRBdHRyaWJ1dGUoInZhbGlkYXRlIiksZC5zZXRBdHRyaWJ1dGUoInZhbGlkYXRlIixnLmdldEF0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXRhcmdldCIpJiYobi50YXJnZXQ9ZC5nZXRBdHRyaWJ1dGUoInRhcmdldCIpLGQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLGcuZ2V0QXR0cmlidXRlKCJmb3JtdGFyZ2V0IikpKSk7Yi5jYWxsKGQpO2wmJihkLnJlbW92ZUNoaWxkKGwpLG4uaGFzT3duUHJvcGVydHkoImFjdGlvbiIpJiYKeGMoZCxuLmFjdGlvbiksbi5oYXNPd25Qcm9wZXJ0eSgiZW5jdHlwZSIpJiZkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsbi5lbmN0eXBlKSxuLmhhc093blByb3BlcnR5KCJtZXRob2QiKSYmZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsbi5tZXRob2QpLG4uaGFzT3duUHJvcGVydHkoInZhbGlkYXRlIikmJmQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsbi52YWxpZGF0ZSksbi5oYXNPd25Qcm9wZXJ0eSgidGFyZ2V0IikmJmQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLG4udGFyZ2V0KSl9fSxlLGYsZykpaD0hMTtlbHNlIHJldHVybiBlfHwoYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITEpLCExO3JldHVybiBjLnJldHVyblZhbHVlfSwhMSk7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXt2YXIgYz10aGlzLGQ9ITA7QkooYyxmdW5jdGlvbigpe2QmJmIuY2FsbChjKX0sITEsREooYykpJiYoYi5jYWxsKGMpLGQ9CiExKX19OwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD1hJiZhLmdldCgid2FpdEZvclRhZ3MiKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLHt3YWl0Rm9yVGFnczohIWR9KX1dKTt2YXIgZT1hJiZhLmdldCgiY2hlY2tWYWxpZGF0aW9uIiksZj1aRihiKTtpZihkKXt2YXIgZz1OdW1iZXIoYS5nZXQoIndhaXRGb3JUYWdzVGltZW91dCIpKTtnPjAmJmlzRmluaXRlKGcpfHwoZz0yRTMpO3ZhciBoPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLm1heChnLG4pfTtkRygiZnNsIiwibXd0IixoLDApO2V8fGRHKCJmc2wiLCJudi5td3QiLGgsMCl9dmFyIGw9ZnVuY3Rpb24obil7bi5wdXNoKGYpOwpyZXR1cm4gbn07ZEcoImZzbCIsImlkcyIsbCxbXSk7ZXx8ZEcoImZzbCIsIm52LmlkcyIsbCxbXSk7JEYoImZzbCIsImluaXQiLCExKXx8KEVKKCksYUcoImZzbCIsImluaXQiLCEwKSk7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CnZhciBNSj1mdW5jdGlvbihhLGIsYyxkKXtjPWM9PT12b2lkIDA/e306YztkPWQ9PT12b2lkIDA/W106ZDt2YXIgZT0iIitiO2lmKGNbZV0pY1tlXS5wdXNoKGEpO2Vsc2V7dmFyIGY9W2FdO2NbZV09Zjt2YXIgZz1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiKSxoPS0xO2QucHVzaChmdW5jdGlvbihsKXtoPj0wJiZBLmNsZWFyVGltZW91dChoKTtiP2g9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhsLGYpO2g9LTF9LGIpOmcobCxmKX0pfX0sTEo9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5ocmVmLGM9e3NvdXJjZTpudWxsLHN0YXRlOkEuaGlzdG9yeS5zdGF0ZXx8bnVsbCx1cmw6T2ooUmooYikpLGtiOkxqKFJqKGIpLCJmcmFnbWVudCIpfTtyZXR1cm4gZnVuY3Rpb24oZCxlKXt2YXIgZj1jLGc9e307Z1tmLnNvdXJjZV09ITA7Z1tkLnNvdXJjZV09ITA7aWYoIWcucG9wc3RhdGV8fCFnLmhhc2hjaGFuZ2V8fGYua2IhPT1kLmtiKXt2YXIgaD17ZXZlbnQ6YSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiOmQuc291cmNlLAoiZ3RtLm9sZFVybEZyYWdtZW50IjpjLmtiLCJndG0ubmV3VXJsRnJhZ21lbnQiOmQua2IsImd0bS5vbGRIaXN0b3J5U3RhdGUiOmMuc3RhdGUsImd0bS5uZXdIaXN0b3J5U3RhdGUiOmQuc3RhdGUsImd0bS5vbGRVcmwiOmMudXJsLCJndG0ubmV3VXJsIjpkLnVybH07ZSYmKGhbImd0bS50cmlnZ2VycyJdPWUuam9pbigiLCIpKTtjPWQ7dUUoaCl9fX0sTko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLmhpc3RvcnksZD1jW2FdO2lmKHliKGQpKXRyeXtjW2FdPWZ1bmN0aW9uKGUsZixnKXtkLmFwcGx5KGMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBoPUEubG9jYXRpb24uaHJlZjtiKHtzb3VyY2U6YSxzdGF0ZTplLHVybDpPaihSaihoKSksa2I6TGooUmooaCksImZyYWdtZW50Iil9KX19Y2F0Y2goZSl7fX0sUEo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJwb3BzdGF0ZSIsc3RhdGU6Yi5zdGF0ZSwKdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LFFKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJoYXNoY2hhbmdlIixzdGF0ZTpudWxsLHVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxPSj1mdW5jdGlvbihhKXt2YXIgYixjO3JldHVybigoYj1hLnRhcmdldCk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhyZWYpfHxBLmxvY2F0aW9uLmhyZWZ9OwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiKX1dKTt2YXIgZD1hJiZhLmdldCgidXNlVjJFdmVudE5hbWUiKT8iZWhsIjoiaGwiLGU9TnVtYmVyKGEmJmEuZ2V0KCJpbnRlcnZhbCIpKTtlPjAmJmlzRmluaXRlKGUpfHwoZT0wKTt2YXIgZjtpZighJEYoZCwiaW5pdCIsITEpKXt2YXIgZz17fSxoPVtdLGw7ZD09PSJlaGwiPyhsPWZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8aC5sZW5ndGg7cSsrKWhbcV0ocCl9LGY9WkYoYiksTUooZixlLGcsaCksYUcoZCwicmVnIixmdW5jdGlvbihwLHEpe01KKHAscSxnLGgpfSkpOmw9TEooImd0bS5oaXN0b3J5Q2hhbmdlIik7ClFKKGwpO1BKKGwpO05KKCJwdXNoU3RhdGUiLGwpO05KKCJyZXBsYWNlU3RhdGUiLGwpO2FHKGQsImluaXQiLCEwKX1lbHNlIGlmKGQ9PT0iZWhsIil7dmFyIG49JEYoZCwicmVnIik7biYmKGY9WkYoYiksbihmLGUpKX1kPT09ImhsIiYmKGY9dm9pZCAwKTtyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwp2YXIgVEo9ZnVuY3Rpb24oYSxiKXtpZihhLndoaWNoPT09Mnx8YS5jdHJsS2V5fHxhLnNoaWZ0S2V5fHxhLmFsdEtleXx8YS5tZXRhS2V5KXJldHVybiExO3ZhciBjPW9kKGIsImhyZWYiKTtpZihjLmluZGV4T2YoIjoiKSE9PS0xJiYhU0ouc29tZShmdW5jdGlvbihoKXtyZXR1cm4gU2IoYyxoKX0pKXJldHVybiExO3ZhciBkPWMuaW5kZXhPZigiIyIpLGU9b2QoYiwidGFyZ2V0Iik7aWYoZSYmZSE9PSJfc2VsZiImJmUhPT0iX3BhcmVudCImJmUhPT0iX3RvcCJ8fGQ9PT0wKXJldHVybiExO2lmKGQ+MCl7dmFyIGY9T2ooUmooYykpLGc9T2ooUmooQS5sb2NhdGlvbi5ocmVmKSk7cmV0dXJuIGYhPT1nfXJldHVybiEwfSxVSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1MaihSaigoYi5hdHRyaWJ1dGVzJiZiLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9iLmZvcm1BY3Rpb246IiIpfHxiLmFjdGlvbnx8b2QoYiwiaHJlZiIpfHxiLnNyY3x8Yi5jb2RlfHxiLmNvZGViYXNlfHwiIiksImhvc3QiKSwKZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtpZigobmV3IFJlZ0V4cChhW2RdKSkudGVzdChjKSlyZXR1cm4hMX1jYXRjaChlKXt9cmV0dXJuITB9LFZKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXt2YXIgZD1jLnRhcmdldDtpZihkJiZjLndoaWNoIT09MyYmIShjLkh8fGMudGltZVN0YW1wJiZjLnRpbWVTdGFtcD09PWIpKXtiPWMudGltZVN0YW1wO2Q9aGQoZCxbImEiLCJhcmVhIl0sMTAwKTtpZighZClyZXR1cm4gYy5yZXR1cm5WYWx1ZTt2YXIgZT1jLmRlZmF1bHRQcmV2ZW50ZWR8fGMucmV0dXJuVmFsdWU9PT0hMSxmPSRGKCJsY2wiLGU/Im52Lm13dCI6Im13dCIsMCksZztnPWU/JEYoImxjbCIsIm52LmlkcyIsW10pOiRGKCJsY2wiLCJpZHMiLFtdKTtmb3IodmFyIGg9W10sbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1nW2xdLHA9JEYoImxjbCIsImFmZi5tYXAiLHt9KVtuXTtwJiYhVUoocCxkKXx8aC5wdXNoKG4pfWlmKGgubGVuZ3RoKXt2YXIgcT1USihjLGQpLHI9ZUcoZCwiZ3RtLmxpbmtDbGljayIsCmgpO3JbImd0bS5lbGVtZW50VGV4dCJdPWZkKGQpO3JbImd0bS53aWxsT3BlbkluTmV3V2luZG93Il09IXE7aWYocSYmIWUmJmYmJmQuaHJlZil7dmFyIHQ9ISFDYihTdHJpbmcob2QoZCwicmVsIil8fCIiKS5zcGxpdCgiICIpLGZ1bmN0aW9uKHkpe3JldHVybiB5LnRvTG93ZXJDYXNlKCk9PT0ibm9yZWZlcnJlciJ9KSx1PUFbKG9kKGQsInRhcmdldCIpfHwiX3NlbGYiKS5zdWJzdHJpbmcoMSldLHY9ITAseD10RShmdW5jdGlvbigpe3ZhciB5O2lmKHk9diYmdSl7dmFyIHo7YTppZih0KXt2YXIgQzt0cnl7Qz1uZXcgTW91c2VFdmVudChjLnR5cGUse2J1YmJsZXM6ITB9KX1jYXRjaChEKXtpZighQi5jcmVhdGVFdmVudCl7ej0hMTticmVhayBhfUM9Qi5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtDLmluaXRFdmVudChjLnR5cGUsITAsITApfUMuSD0hMDtjLnRhcmdldC5kaXNwYXRjaEV2ZW50KEMpO3o9ITB9ZWxzZSB6PSExO3k9IXp9eSYmKHUubG9jYXRpb24uaHJlZj1vZChkLAoiaHJlZiIpKX0sZik7aWYoaUUocix4LGYpKXY9ITE7ZWxzZSByZXR1cm4gYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITF9ZWxzZSBzRShyLGZ1bmN0aW9uKCl7fSxmfHwyRTMpO3JldHVybiEwfX19dmFyIGI9MDskYyhCLCJjbGljayIsYSwhMSk7JGMoQiwiYXV4Y2xpY2siLGEsITEpfTsKZnVuY3Rpb24gV0ooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYSk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiLGQpfV0pO3ZhciBlPWQmJiEhZC53YWl0Rm9yVGFncyxmPWQmJiEhZC5jaGVja1ZhbGlkYXRpb24sZz1kP2QuYWZmaWxpYXRlRG9tYWluczp2b2lkIDAsaD1aRihiKTtpZihlKXt2YXIgbD1OdW1iZXIoZC53YWl0Rm9yVGFnc1RpbWVvdXQpO2w+MCYmaXNGaW5pdGUobCl8fChsPTJFMyk7dmFyIG49ZnVuY3Rpb24ocSl7cmV0dXJuIE1hdGgubWF4KGwscSl9O2RHKCJsY2wiLCJtd3QiLG4sMCk7Znx8ZEcoImxjbCIsIm52Lm13dCIsbiwwKX12YXIgcD1mdW5jdGlvbihxKXtxLnB1c2goaCk7CnJldHVybiBxfTtkRygibGNsIiwiaWRzIixwLFtdKTtmfHxkRygibGNsIiwibnYuaWRzIixwLFtdKTtnJiZkRygibGNsIiwiYWZmLm1hcCIsZnVuY3Rpb24ocSl7cVtoXT1nO3JldHVybiBxfSx7fSk7JEYoImxjbCIsImluaXQiLCExKXx8KFZKKCksYUcoImxjbCIsImluaXQiLCEwKSk7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwp2YXIgWEo9ZnVuY3Rpb24oYSl7cmV0dXJuICRGKCJzZGwiLGEse30pfSxZSj1mdW5jdGlvbihhLGIsYyl7aWYoYil7dmFyIGQ9QXJyYXkuaXNBcnJheShhKT9hOlthXTtkRygic2RsIixjLGZ1bmN0aW9uKGUpe2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1TdHJpbmcoZFtmXSk7ZS5oYXNPd25Qcm9wZXJ0eShnKXx8KGVbZ109W10pO2VbZ10ucHVzaChiKX1yZXR1cm4gZX0se30pfX0sYUs9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7WkooYSxiKTskSihjLCEwKX1yZXR1cm4gY30sYks9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7aD9nPUEuc2V0VGltZW91dChjLGUpOihnPTAsWkooYSxiKSwkSihkKSk7aD0hMX1mdW5jdGlvbiBkKCl7ZiYmYigpO2c/aD0hMDooZz1BLnNldFRpbWVvdXQoYyxlKSxhRygic2RsIiwicGVuZGluZyIsITApKX12YXIgZT0yNTAsZj0hMTtCLnNjcm9sbGluZ0VsZW1lbnQmJkIuZG9jdW1lbnRFbGVtZW50JiYoZT01MCxmPSEwKTt2YXIgZz0KMCxoPSExO3JldHVybiBkfSwkSj1mdW5jdGlvbihhLGIpeyRGKCJzZGwiLCJpbml0IiwhMSkmJiFjSygpJiYoYj9hZChBLCJzY3JvbGxlbmQiLGEpOmFkKEEsInNjcm9sbCIsYSksYWQoQSwicmVzaXplIixhKSxhRygic2RsIiwiaW5pdCIsITEpKX0sWko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKCksZD1jLmRlcHRoWCxlPWMuZGVwdGhZLGY9ZC9hLnNjcm9sbFdpZHRoKjEwMCxnPWUvYS5zY3JvbGxIZWlnaHQqMTAwO2RLKGQsImhvcml6LnBpeCIsIlBJWEVMUyIsImhvcml6b250YWwiKTtkSyhmLCJob3Jpei5wY3QiLCJQRVJDRU5UIiwiaG9yaXpvbnRhbCIpO2RLKGUsInZlcnQucGl4IiwiUElYRUxTIiwidmVydGljYWwiKTtkSyhnLCJ2ZXJ0LnBjdCIsIlBFUkNFTlQiLCJ2ZXJ0aWNhbCIpO2FHKCJzZGwiLCJwZW5kaW5nIiwhMSl9LGRLPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVhKKGIpLGY9e30sZztmb3IoZyBpbiBlKWlmKGY9e3FmOmYucWZ9LGYucWY9ZyxlLmhhc093blByb3BlcnR5KGYucWYpKXt2YXIgaD0KTnVtYmVyKGYucWYpO2lmKCEoYTxoKSl7dmFyIGw9e307dUUoKGwuZXZlbnQ9Imd0bS5zY3JvbGxEZXB0aCIsbFsiZ3RtLnNjcm9sbFRocmVzaG9sZCJdPWgsbFsiZ3RtLnNjcm9sbFVuaXRzIl09Yy50b0xvd2VyQ2FzZSgpLGxbImd0bS5zY3JvbGxEaXJlY3Rpb24iXT1kLGxbImd0bS50cmlnZ2VycyJdPWVbZi5xZl0uam9pbigiLCIpLGwpKTtkRygic2RsIixiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihwKXtkZWxldGUgcFtuLnFmXTtyZXR1cm4gcH19KGYpLHt9KX19fSxmSz1mdW5jdGlvbigpe3ZhciBhPWRHKCJzZGwiLCJzY3IiLGZ1bmN0aW9uKGMpe2N8fChjPUIuc2Nyb2xsaW5nRWxlbWVudHx8Qi5ib2R5JiZCLmJvZHkucGFyZW50Tm9kZSk7cmV0dXJuIGN9LG51bGwpLGI9ZEcoInNkbCIsImRlcHRoIixmdW5jdGlvbihjKXtjfHwoYz1lSyhhKSk7cmV0dXJuIGN9KTtyZXR1cm57c2Nyb2xsaW5nRWxlbWVudDphLHZyOmJ9fSxlSz1mdW5jdGlvbihhKXt2YXIgYj0wLGM9CjA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9c0koKSxlPWQuaGVpZ2h0O2I9TWF0aC5tYXgoYS5zY3JvbGxMZWZ0K2Qud2lkdGgsYik7Yz1NYXRoLm1heChhLnNjcm9sbFRvcCtlLGMpO3JldHVybntkZXB0aFg6YixkZXB0aFk6Y319fSxjSz1mdW5jdGlvbigpe3JldHVybiEhKE9iamVjdC5rZXlzKFhKKCJob3Jpei5waXgiKSkubGVuZ3RofHxPYmplY3Qua2V5cyhYSigiaG9yaXoucGN0IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGN0IikpLmxlbmd0aCl9OwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3Njcm9sbF9ldmVudHMiKX1dKTt2YXIgZD1mSygpLGU9ZC5zY3JvbGxpbmdFbGVtZW50LGY9ZC52cjtpZighZSlyZXR1cm47dmFyIGc9WkYoYiksaD1UZChhKTtzd2l0Y2goaC5ob3Jpem9udGFsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5waXgiKTticmVhaztjYXNlICJQRVJDRU5UIjpZSihoLmhvcml6b250YWxUaHJlc2hvbGRzLGcsImhvcml6LnBjdCIpfXN3aXRjaChoLnZlcnRpY2FsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsCmcsInZlcnQucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsZywidmVydC5wY3QiKX0kRigic2RsIiwiaW5pdCIsITEpPyRGKCJzZGwiLCJwZW5kaW5nIiwhMSl8fGJkKGZ1bmN0aW9uKCl7WkooZSxmKX0pOihhRygic2RsIiwiaW5pdCIsITApLGFHKCJzZGwiLCJwZW5kaW5nIiwhMCksYmQoZnVuY3Rpb24oKXtaSihlLGYpO2lmKGNLKCkpe3ZhciBsPWJLKGUsZik7Im9uc2Nyb2xsZW5kImluIEE/KGw9YUsoZSxmKSwkYyhBLCJzY3JvbGxlbmQiLGwpKTokYyhBLCJzY3JvbGwiLGwpOyRjKEEsInJlc2l6ZSIsbCl9ZWxzZSBhRygic2RsIiwiaW5pdCIsITEpfSkpO3JldHVybiBnfWdLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIjtmdW5jdGlvbiBoSyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihhLmxpbWl0JiZhLmdrPj1hLmxpbWl0KWEuYWkmJkEuY2xlYXJJbnRlcnZhbChhLmFpKTtlbHNle2EuZ2srKzt2YXIgYj1OYigpO3VFKHtldmVudDphLmV2ZW50TmFtZSwiZ3RtLnRpbWVySWQiOmEuYWksImd0bS50aW1lckV2ZW50TnVtYmVyIjphLmdrLCJndG0udGltZXJJbnRlcnZhbCI6YS5pbnRlcnZhbCwiZ3RtLnRpbWVyTGltaXQiOmEubGltaXQsImd0bS50aW1lclN0YXJ0VGltZSI6YS5NbywiZ3RtLnRpbWVyQ3VycmVudFRpbWUiOmIsImd0bS50aW1lckVsYXBzZWRUaW1lIjpiLWEuTW8sImd0bS50cmlnZ2VycyI6YS5MdH0pfX19CmZ1bmN0aW9uIGlLKGEsYil7CnJldHVybiBmfWlLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uVGltZXIiOwp2YXIgaks9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hKCk7Zis9ZT8oTmIoKS1lKSpnLnBsYXliYWNrUmF0ZS8xRTM6MDtlPU5iKCl9dmFyIGU9MCxmPTA7cmV0dXJue2NyZWF0ZUV2ZW50OmZ1bmN0aW9uKGcsaCxsKXt2YXIgbj1hKCkscD1uLlduLHE9bD9NYXRoLnJvdW5kKGwpOmg/TWF0aC5yb3VuZChuLlduKmgpOk1hdGgucm91bmQobi5Hcikscj1oIT09dm9pZCAwP01hdGgucm91bmQoaCoxMDApOnA8PTA/MDpNYXRoLnJvdW5kKHEvcCoxMDApLHQ9Qi5oaWRkZW4/ITE6dEkoYyk+PS41O2QoKTt2YXIgdT12b2lkIDA7YiE9PXZvaWQgMCYmKHU9W2JdKTt2YXIgdj1lRyhjLCJndG0udmlkZW8iLHUpO3ZbImd0bS52aWRlb1Byb3ZpZGVyIl09InlvdXR1YmUiO3ZbImd0bS52aWRlb1N0YXR1cyJdPWc7dlsiZ3RtLnZpZGVvVXJsIl09bi51cmw7dlsiZ3RtLnZpZGVvVGl0bGUiXT1uLnRpdGxlO3ZbImd0bS52aWRlb0R1cmF0aW9uIl09TWF0aC5yb3VuZChwKTt2WyJndG0udmlkZW9DdXJyZW50VGltZSJdPQpNYXRoLnJvdW5kKHEpO3ZbImd0bS52aWRlb0VsYXBzZWRUaW1lIl09TWF0aC5yb3VuZChmKTt2WyJndG0udmlkZW9QZXJjZW50Il09cjt2WyJndG0udmlkZW9WaXNpYmxlIl09dDtyZXR1cm4gdn0sbXQ6ZnVuY3Rpb24oKXtlPU5iKCl9LEJqOmZ1bmN0aW9uKCl7ZCgpfX19O3ZhciBBYz1BYShbImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iXSksa0s9WyJ3d3cueW91dHViZS5jb20iLCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iXSxsSzsKdmFyIG1LPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm1hcChmdW5jdGlvbihnKXtyZXR1cm57dGU6ZyxKbzpnLHdvOnZvaWQgMH19KTtpZighYi5sZW5ndGgpcmV0dXJuIGQ7dmFyIGU9Yi5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcqYyxKbzp2b2lkIDAsd286Z319KTtpZighZC5sZW5ndGgpcmV0dXJuIGU7dmFyIGY9ZC5jb25jYXQoZSk7Zi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcudGUtaC50ZX0pO3JldHVybiBmfSxuSz1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWFbY108MHx8Yi5wdXNoKGFbY10pO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gYn0sb0s9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPjEwMHx8YVtjXTwwfHwoYltjXT1hW2NdLzEwMCk7Yi5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtCmV9KTtyZXR1cm4gYn0scEs9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2Z1bmN0aW9uIGUoKXt0PWpLKGZ1bmN0aW9uKCl7cmV0dXJue3VybDp4LHRpdGxlOnksV246dixHcjphLmdldEN1cnJlbnRUaW1lKCkscGxheWJhY2tSYXRlOnp9fSxiLnJmLGEuZ2V0SWZyYW1lKCkpO3Y9MDt5PXg9IiI7ej0xO3JldHVybiBmfWZ1bmN0aW9uIGYoRyl7c3dpdGNoKEcpe2Nhc2UgMTp2PU1hdGgucm91bmQoYS5nZXREdXJhdGlvbigpKTt4PWEuZ2V0VmlkZW9VcmwoKTtpZihhLmdldFZpZGVvRGF0YSl7dmFyIE49YS5nZXRWaWRlb0RhdGEoKTt5PU4/Ti50aXRsZToiIn16PWEuZ2V0UGxheWJhY2tSYXRlKCk7Yi55cj91RSh0LmNyZWF0ZUV2ZW50KCJzdGFydCIpKTp0LkJqKCk7dT1tSyhiLmV0LGIuY3QsYS5nZXREdXJhdGlvbigpKTtyZXR1cm4gZyhHKTtkZWZhdWx0OnJldHVybiBmfX1mdW5jdGlvbiBnKCl7Qz1hLmdldEN1cnJlbnRUaW1lKCk7RD1NYigpLmdldFRpbWUoKTt0Lm10KCk7cigpO3JldHVybiBofQpmdW5jdGlvbiBoKEcpe3ZhciBOO3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAyOk49InBhdXNlIjtjYXNlIDM6dmFyIFM9YS5nZXRDdXJyZW50VGltZSgpLUM7Tj1NYXRoLmFicygoTWIoKS5nZXRUaW1lKCktRCkvMUUzKnotUyk+MT8ic2VlayI6Tnx8ImJ1ZmZlcmluZyI7YS5nZXRDdXJyZW50VGltZSgpJiYoYi54cj91RSh0LmNyZWF0ZUV2ZW50KE4pKTp0LkJqKCkpO3EoKTtyZXR1cm4gbDtjYXNlIC0xOnJldHVybiBlKEcpO2RlZmF1bHQ6cmV0dXJuIGh9fWZ1bmN0aW9uIGwoRyl7c3dpdGNoKEcpe2Nhc2UgMDpyZXR1cm4gbihHKTtjYXNlIDE6cmV0dXJuIGcoRyk7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBsfX1mdW5jdGlvbiBuKCl7Zm9yKDtkOyl7dmFyIEc9YztBLmNsZWFyVGltZW91dChkKTtHKCl9Yi53ciYmdUUodC5jcmVhdGVFdmVudCgiY29tcGxldGUiLDEpKTtyZXR1cm4gZSgtMSl9ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiBxKCl7ZCYmCihBLmNsZWFyVGltZW91dChkKSxkPTAsYz1wKX1mdW5jdGlvbiByKCl7aWYodS5sZW5ndGgmJnohPT0wKXt2YXIgRz0tMSxOO2Rve049dVswXTtpZihOLnRlPmEuZ2V0RHVyYXRpb24oKSlyZXR1cm47Rz0oTi50ZS1hLmdldEN1cnJlbnRUaW1lKCkpL3o7aWYoRzwwJiYodS5zaGlmdCgpLHUubGVuZ3RoPT09MCkpcmV0dXJufXdoaWxlKEc8MCk7Yz1mdW5jdGlvbigpe2Q9MDtjPXA7dS5sZW5ndGg+MCYmdVswXS50ZT09PU4udGUmJih1LnNoaWZ0KCksdUUodC5jcmVhdGVFdmVudCgicHJvZ3Jlc3MiLE4ud28sTi5KbykpKTtyKCl9O2Q9QS5zZXRUaW1lb3V0KGMsRyoxRTMpfX12YXIgdCx1PVtdLHYseCx5LHosQyxELEk9ZSgtMSk7ZD0wO2M9cDtyZXR1cm57b25TdGF0ZUNoYW5nZTpmdW5jdGlvbihHKXtJPUkoRyl9LG9uUGxheWJhY2tSYXRlQ2hhbmdlOmZ1bmN0aW9uKEcpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5CaigpO3o9RztxKCk7cigpfX19LHJLPQpmdW5jdGlvbihhKXtiZChmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXtmb3IodmFyIGQ9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIiksZT1kLmxlbmd0aCxmPTA7ZjxlO2YrKylxSyhkW2ZdLGEpfXZhciBjPUI7YigpO29KLksoYil9KX0scUs9ZnVuY3Rpb24oYSxiKXtpZighYS5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpJiYoQ2MoYSwiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSIrYi5yZiksc0soYSxiLmNvKSkpe2EuaWR8fChhLmlkPXRLKCkpO3ZhciBjPUEuWVQsZD1jLmdldChhLmlkKTtkfHwoZD1uZXcgYy5QbGF5ZXIoYS5pZCkpO3ZhciBlPXBLKGQsYiksZj17fSxnO2ZvcihnIGluIGUpZj17TWc6Zi5NZ30sZi5NZz1nLGUuaGFzT3duUHJvcGVydHkoZi5NZykmJmQuYWRkRXZlbnRMaXN0ZW5lcihmLk1nLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gZVtoLk1nXShsLmRhdGEpfX0oZikpfX0sc0s9ZnVuY3Rpb24oYSwKYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKGMsImVtYmVkLyIpKXtpZihjLmluZGV4T2YoImVuYWJsZWpzYXBpPTEiKT4wKXJldHVybiEwO2lmKGIpe3ZhciBkO3ZhciBlPWMuaW5kZXhPZigiPyIpIT09LTE/IiYiOiI/IjtjLmluZGV4T2YoIm9yaWdpbj0iKT4tMT9kPWMrZSsiZW5hYmxlanNhcGk9MSI6KGxLfHwobEs9Qi5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK0IubG9jYXRpb24uaG9zdG5hbWUsQi5sb2NhdGlvbi5wb3J0JiYobEsrPSI6IitCLmxvY2F0aW9uLnBvcnQpKSxkPWMrZSsiZW5hYmxlanNhcGk9MSZvcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQobEspKTt2YXIgZjtmPWpjKGQpO2Euc3JjPWtjKGYpLnRvU3RyaW5nKCk7cmV0dXJuITB9fXJldHVybiExfSx1Sz1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiExO2Zvcih2YXIgYz0wO2M8a0subGVuZ3RoO2MrKylpZihhLmluZGV4T2YoIi8vIitrS1tjXSsiLyIrYik+PTApcmV0dXJuITA7cmV0dXJuITF9LAp0Sz1mdW5jdGlvbigpe3ZhciBhPSIiK01hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxRTkpO3JldHVybiBCLmdldEVsZW1lbnRCeUlkKGEpP3RLKCk6YX07CmZ1bmN0aW9uIHZLKGEsYil7dmFyIGM9dGhpczt2YXIgZD1mdW5jdGlvbigpe3JLKHEpfTtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLHtmaXhNaXNzaW5nQXBpOiEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKX0pfV0pO3ZhciBlPVpGKGIpLGY9ISFhLmdldCgiY2FwdHVyZVN0YXJ0IiksZz0hIWEuZ2V0KCJjYXB0dXJlQ29tcGxldGUiKSxoPSEhYS5nZXQoImNhcHR1cmVQYXVzZSIpLGw9b0soVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiKSkpLG49bksoVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1RpbWVJblNlY29uZHMiKSkpLHA9ISFhLmdldCgiZml4TWlzc2luZ0FwaSIpOwppZighKGZ8fGd8fGh8fGwubGVuZ3RofHxuLmxlbmd0aCkpcmV0dXJuO3ZhciBxPXt5cjpmLHdyOmcseHI6aCxjdDpsLGV0Om4sY286cCxyZjplfSxyPUEuWVQ7aWYocilyZXR1cm4gci5yZWFkeSYmci5yZWFkeShkKSxlO3ZhciB0PUEsdT10Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5O3Qub25Zb3VUdWJlSWZyYW1lQVBJUmVhZHk9ZnVuY3Rpb24oKXt1JiZ1KCk7ZCgpfTtiZChmdW5jdGlvbigpe2Zvcih2YXIgdj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSx4PXYubGVuZ3RoLHk9MDt5PHg7eSsrKXt2YXIgej12W3ldLmdldEF0dHJpYnV0ZSgic3JjIik7aWYodUsoeiwiaWZyYW1lX2FwaSIpfHx1Syh6LCJwbGF5ZXJfYXBpIikpcmV0dXJuIGV9Zm9yKHZhciBDPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLEQ9Qy5sZW5ndGgsST1hbCg1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxHPTA7RzxEO0crKylpZighSSYmc0soQ1tHXSxxLmNvKSlyZXR1cm4gVWMoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGkiKSwKWmsoNSwhMCksZX0pO3JldHVybiBlfXZLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5IjtmdW5jdGlvbiB3SyhhLGIpe2lmKCFsaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz1iP1RkKGIpOnt9O2MucmVnZXhDYWNoZT1hbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KTtyZXR1cm4gR2goYSxjKX13Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIjtmdW5jdGlvbiB4SyhhKXt2YXIgYj0hMTtyZXR1cm4gYn14Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZU1hdGNoaW5nUnVsZXMiO3ZhciB5Sz1uZXcgTWFwKFtbImF3Iiw0XV0pO2Z1bmN0aW9uIHpLKGEpe3ZhciBiPXZyW2FdLGM9eUsuZ2V0KGEpO3JldHVybiBjPyh3cShiLGMpfHxbXSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gZC5tPT09IjAifHxkLm09PT12b2lkIDB9KTohMX0KZnVuY3Rpb24gQUsoYSxiKXtpZihNKDQ5NSkpe2Zvcih2YXIgYz1uZXcgTWFwLGQ9bSh5SyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPW0oZS52YWx1ZSksZz1mLm5leHQoKS52YWx1ZSxoPWYubmV4dCgpLnZhbHVlLGw9ZyxuPWFbbF0scD1BcnJheS5pc0FycmF5KG4pP25bMF06bjtpZihwIT09dm9pZCAwKXt2YXIgcT17fSxyPShxLms9cCxxLmk9U3RyaW5nKE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpKSxxLmI9W10scS5tPSIxIixxKSx0PWFxKHIsaCk7dCYmKHpLKGwpfHxjLnNldChsLHQpKX19aWYoYy5zaXplKXt2YXIgdSx2PVtdLHg9Yi5wYXRofHwiLyI7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgicCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeCkpO2IuQXImJnYucHVzaChlbmNvZGVVUklDb21wb25lbnQoImNlIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYi5BcikpKTt2YXIgeT1iLmRvbWFpbiYmYi5kb21haW4hPT0iYXV0byI/CmIuZG9tYWluOiJhdXRvOiIrQS5sb2NhdGlvbi5ob3N0bmFtZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJkIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh5KSk7Zm9yKHZhciB6PW0oYyksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpe3ZhciBEPW0oQy52YWx1ZSksST1ELm5leHQoKS52YWx1ZSxHPUQubmV4dCgpLnZhbHVlO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChHKSl9dT0iXy9zZXRfY29va2llPyIrdi5qb2luKCImIik7dmFyIE4sUz1FKDU4KTtOPUVmKHUsUyk7dmFyIFc9WGooKSsiLyIrTjttZChXKX19fTtmdW5jdGlvbiBCSyhhKXtyZXR1cm4iQ1dWV2ViVmlld01lc3NhZ2UiaW4gYX1mdW5jdGlvbiBDSyhhKXt2YXIgYj1BLGM9Yi53ZWJraXQ7ZGVsZXRlIGIud2Via2l0O2EoYi53ZWJraXQpO2Iud2Via2l0PWN9ZnVuY3Rpb24gREsoYSxiKXt2YXIgYz17YWN0aW9uOiJnY2xfc2V0dXAifTtpZihCSyhhLm1lc3NhZ2VIYW5kbGVycykpcmV0dXJuIGEubWVzc2FnZUhhbmRsZXJzLkNXVldlYlZpZXdNZXNzYWdlLnBvc3RNZXNzYWdlKHtjb21tYW5kOmIscGF5bG9hZDpjfSksITA7dmFyIGQ9YS5tZXNzYWdlSGFuZGxlcnNbYl07cmV0dXJuIGQ/KGQucG9zdE1lc3NhZ2UoYyksITApOiExfTt2YXIgRUs9e30sRks9KEVLLmF3Yj17bm90Rm91bmQ6MTc4fSxFSy55dGI9e25vdEZvdW5kOjE5NH0sRUspO2Z1bmN0aW9uIEdLKGEpe3ZhciBiLGM9KGI9RktbYV0pPT1udWxsP3ZvaWQgMDpiLm5vdEZvdW5kO2MmJlAoYyl9CmZ1bmN0aW9uIEhLKGEpe2lmKCFubShqbS5iYS5qbikmJiJ3ZWJraXQiaW4gQSYmQS53ZWJraXQubWVzc2FnZUhhbmRsZXJzKXt2YXIgYj1mdW5jdGlvbigpe3RyeXtDSyhmdW5jdGlvbihjKXtpZihjKXt2YXIgZDtkPUJLKGMubWVzc2FnZUhhbmRsZXJzKXx8ImF3YiJpbiBjLm1lc3NhZ2VIYW5kbGVycz97Y29tbWFuZDoiYXdiIixzb3VyY2U6NX06KEJLKGMubWVzc2FnZUhhbmRsZXJzKXx8Inl0YiJpbiBjLm1lc3NhZ2VIYW5kbGVycykmJk0oNDk5KT97Y29tbWFuZDoieXRiIixzb3VyY2U6OH06dm9pZCAwO2QmJihtbShqbS5iYS5qbixmdW5jdGlvbihlKXt2YXIgZj1kLnNvdXJjZTtlLmdjbGlkJiZscygiZ2NsX2F3IixlLmdjbGlkLGYsYSk7ZS53YnJhaWQmJmxzKCJnY2xfZ2IiLGUud2JyYWlkLGYsYSl9KSxESyhjLGQuY29tbWFuZCl8fEdLKGQuY29tbWFuZCkpfX0pfWNhdGNoKGMpe1AoMTkzKX19O0hsKGZ1bmN0aW9uKCl7QnIoZnApP2IoKTpJbChiLGZwKX0sZnApfX07dmFyIElLPVsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSIsImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly9tLnlvdXR1YmUuY29tIl07ZnVuY3Rpb24gSksoYSl7cmV0dXJuIGEuZGF0YS5hY3Rpb24hPT0iZ2NsX3RyYW5zZmVyIj8oUCgxNzMpLCEwKTphLmRhdGEuZ2FkU291cmNlP2EuZGF0YS5nY2xpZD8hMTooUCgxODEpLCEwKTooUCgxODApLCEwKX0KZnVuY3Rpb24gS0soYSxiKXtpZighYXx8TShhKSl7aWYobm0oam0uYmEuVmUpKXJldHVybiBQKDE3Niksam0uYmEuVmU7aWYobm0oam0uYmEubW4pKXJldHVybiBQKDE3MCksam0uYmEuVmU7dmFyIGM9RnAoKTtpZighYylQKDE3MSk7ZWxzZSBpZihjLm9wZW5lcil7dmFyIGQ9ZnVuY3Rpb24oZyl7aWYoIUlLLmluY2x1ZGVzKGcub3JpZ2luKSlQKDE3Mik7ZWxzZSBpZighSksoZykpe3ZhciBoPXtnYWRTb3VyY2U6Zy5kYXRhLmdhZFNvdXJjZX07aC5nY2xpZD1nLmRhdGEuZ2NsaWQ7bW0oam0uYmEuVmUsaCk7YiYmZy5kYXRhLmdjbGlkJiZscygiZ2NsX2F3IixTdHJpbmcoZy5kYXRhLmdjbGlkKSw2LGIpO3ZhciBsOyhsPWcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKT09bnVsbHx8bC5jYWxsKGcpO250KGMsIm1lc3NhZ2UiLGQpfX07aWYobXQoYywibWVzc2FnZSIsZCkpe21tKGptLmJhLm1uLCEwKTtmb3IodmFyIGU9bShJSyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpYy5vcGVuZXIucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiZ2NsX3NldHVwIn0sCmYudmFsdWUpO1AoMTc0KTtyZXR1cm4gam0uYmEuVmV9UCgxNzUpfX19Owp2YXIgTEs9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpPKGEuTSxGLkQuRmQpfHxPKGEuTSxGLkQubmIpLGRvbWFpbjpPKGEuTSxGLkQuTGIpLHBkOk8oYS5NLEYuRC5DYiksZmxhZ3M6TyhhLk0sRi5ELlRiKX07YS5NLmlzR3RtRXZlbnQmJihiLnBhdGg9TyhhLk0sRi5ELnZjKSk7cmV0dXJuIGJ9LE1LPWZ1bmN0aW9uKGEsYil7aWYoIVEoYSxILkouV2UpKXt2YXIgYz1LSygxMTkpO2lmKGMpe3ZhciBkPW5tKGMpLGU9ZnVuY3Rpb24oZyl7VihhLEguSi5XZSwhMCk7dmFyIGg9UihhLEYuRC56ZiksbD1SKGEsRi5ELkFmKTtVKGEsRi5ELnpmLFN0cmluZyhnLmdhZFNvdXJjZSkpO1UoYSxGLkQuQWYsNik7VihhLEguSi5zYSk7VihhLEguSi51Zyk7VShhLEYuRC5zYSk7YigpO1UoYSxGLkQuemYsaCk7VShhLEYuRC5BZixsKTtWKGEsSC5KLldlLCExKX07aWYoZCllKGQpO2Vsc2V7dmFyIGY9dm9pZCAwO2Y9cG0oYyxmdW5jdGlvbihnLGgpe2UoaCk7cW0oYyxmKX0pfX19fSxQSz1mdW5jdGlvbihhKXt2YXIgYiwKYyxkLGU7Yj1hLlRuO2M9YS5tbztkPWEuUW87ZT1hLlVuO2lmKGIpe2lmKGRyKGNbRi5ELlhmXSwhIWNbRi5ELkFhXSkpe2lmKFdqKCkmJkJyKEFyKCkpKXtmb3IodmFyIGY9VXEoITApLGc9e30saD1tKE9iamVjdC5rZXlzKHZyKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD12cltuXSxxPWZbcF07aWYocSl7dmFyIHI9JHAocSw0KTtyJiYob3MoTWF0aC5taW4oTnIociksTmIoKSl8fE5iKCkscCw0KXx8KGdbbl09cSkpfX1mb3IodmFyIHQ9e30sdT1tKE9iamVjdC5rZXlzKGcpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj11Lm5leHQoKSl7dmFyIHg9di52YWx1ZSx5PWdbeF07aWYoeSE9PXZvaWQgMCl7dmFyIHo9JHAoeSw0KTt6JiZ6Lm09PT0iMSImJih0W3hdPXouayl9fUFLKHQsZSl9cHMoZSk7dHMoZSk7UXYoZSl9aWYoT3AoKSE9PTIpe2dzKGUpO2lzKGUpO2lmKFlmKDE1KSl7dmFyIEM9ZSxEPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7CkQubGVuZ3RofHwoRD1kcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7aWYoRC5sZW5ndGgpe0M9Q3x8e307dmFyIEk9RFswXTtJLnZhbHVlJiZtcygiZ2NsX2RjIixbe3ZlcnNpb246IiIsZ2NsaWQ6SS52YWx1ZSx0aW1lc3RhbXA6TmIoKSxxYTpJLnFhfV0sQyl9fUhLKGUpO0tLKHZvaWQgMCxlKX1lbHNlIGdzKGUpO2lmKFdqKCkmJkJyKEFyKCkpKXt2YXIgRz1mcygpO0FLKEcsZSl9eHMocXMsZSk7eXMoZSl9Y1tGLkQuQWFdJiYodnMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSksdXMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksd3MoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksUnYoR3YoZS5wcmVmaXgpLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSksUnYoIkZQQVUiLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSkpO2QmJkFzKE5LKTtDcyhPSyl9LHFzPVsiYXciLCJkYyIsCiJnYiJdLE9LPVsiYXciLCJkYyIsImdiIiwiYWciXSxOSz1bImF3IiwiZGMiLCJnYiIsImFnIiwiZ2FkX3NvdXJjZSJdO2Z1bmN0aW9uIFZLKCl7cmV0dXJuIE10KDcpJiZNdCg5KSYmTXQoMTApfTt2YXIgV0s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5vaiwoZFtiXT1jLGQpKX0sWEs9ZnVuY3Rpb24oYSxiKXt2YXIgYz1kSShhLEYuRC5GaSxhLk0uaWJbRi5ELkZpXSk7aWYoYyYmY1tifHxhLmV2ZW50TmFtZV0hPT12b2lkIDApcmV0dXJuIGNbYnx8YS5ldmVudE5hbWVdfSxZSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLllhKTtpZihDZChiKSlyZXR1cm4gYn0sWks9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5iZSl8fCFlayhhLk0pKXJldHVybiAxO2lmKCFPKGEuTSxGLkQuZGQpKXt2YXIgYj1PKGEuTSxGLkQuUWYpO2lmKGIhPT0hMCYmYiE9PSJ0cnVlIilyZXR1cm4gMX12YXIgYz1PKGEuTSxGLkQuT2kpO3JldHVybiBjPT09ITF8fGM9PT0iZmFsc2UiPzM6Mn07CnZhciBhTD1mdW5jdGlvbihhLGIpe2EmJigkSygic2lkIixhLnRhcmdldElkLGIpLCRLKCJjYyIsYS5jbGllbnRDb3VudCxiKSwkSygidGwiLGEudG90YWxMaWZlTXMsYiksJEsoImhjIixhLmhlYXJ0YmVhdENvdW50LGIpLCRLKCJjbCIsYS5jbGllbnRMaWZlTXMsYikpfSwkSz1mdW5jdGlvbihhLGIsYyl7YiE9bnVsbCYmYy5wdXNoKGErIj0iK2IpfSxiTD1mdW5jdGlvbigpe3ZhciBhPUIucmVmZXJyZXI7aWYoYSl7dmFyIGI7cmV0dXJuIExqKFJqKGEpLCJob3N0Iik9PT0oKGI9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmIuaG9zdCk/MToyfXJldHVybiAwfSxkTD1mdW5jdGlvbigpe3RoaXMuamE9Y0w7dGhpcy5OPTA7dGhpcy55YT1OZig1Nyw1KTt0aGlzLlI9TmYoNTgsNTApO3RoaXMuZmE9RGIoKTt0aGlzLkxhPSJodHRwczovLyIrRSgyMSkrIi9hPyJ9O2RMLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjLGQpewp2YXIgZT1iTCgpLGYsZz1bXTtmPUE9PT1BLnRvcCYmZSE9PTAmJmI/KGI9PW51bGw/dm9pZCAwOmIuY2xpZW50Q291bnQpPjE/ZT09PTI/MToyOmU9PT0yPzA6Mzo0O2EmJiRLKCJzaSIsYS5KZyxnKTskSygibSIsMCxnKTskSygiaXNzIixmLGcpOyRLKCJpZiIsYyxnKTthTChiLGcpO2QmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGQuc3Vic3RyaW5nKDAsdGhpcy5SKSksZyk7dGhpcy5aKGcpO307ZEwucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1bXTskSygibSIsMSxmKTskSygicyIsYSxmKTskSygicG8iLGJMKCksZik7YiYmKCRLKCJzdCIsYi5zdGF0ZSxmKSwkSygic2kiLGIuSmcsZiksJEsoInNtIixiLlVnLGYpKTthTChjLGYpOyRLKCJjIixkLGYpO2UmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKDAsCnRoaXMuUikpLGYpO3RoaXMuWihmKTt9O2RMLnByb3RvdHlwZS5aPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphOyFmbi5OfHx0aGlzLk4+PXRoaXMueWF8fCgkSygicGlkIix0aGlzLmZhLGEpLCRLKCJiYyIsKyt0aGlzLk4sYSksYS51bnNoaWZ0KCJjdGlkPSIrRSg1KSsiJnQ9cyIpLHRoaXMuamEoIiIrdGhpcy5MYSthLmpvaW4oIiYiKSkpfTtmdW5jdGlvbiBlTChhKXtyZXR1cm4gYS5wZXJmb3JtYW5jZSYmYS5wZXJmb3JtYW5jZS5ub3coKXx8RGF0ZS5ub3coKX0KdmFyIGZMPWZ1bmN0aW9uKGEsYil7dmFyIGM9QSxkPU5mKDUzLDUwMCksZT1OZig1NCw1RTMpLGY9TmYoOCwyMCksZz1OZig1NSw1RTMpLGg7dmFyIGw9ZnVuY3Rpb24obixwLHEpe3E9cT09PXZvaWQgMD97cW86ZnVuY3Rpb24oKXt9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbigpe30sb25GYWlsdXJlOmZ1bmN0aW9uKCl7fX06cTt0aGlzLklqPW47dGhpcy5IPXA7dGhpcy5OPXE7dGhpcy5mYT10aGlzLmphPXRoaXMuaGVhcnRiZWF0Q291bnQ9dGhpcy5Eaj0wO3RoaXMuZmU9ITE7dGhpcy5LPXt9O3RoaXMuaWQ9U3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIqTWF0aC5yYW5kb20oKSkpO3RoaXMuc3RhdGU9MDt0aGlzLkpnPWVMKHRoaXMuSCk7dGhpcy5VZz1lTCh0aGlzLkgpO3RoaXMuWj0xMH07bC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuUigxKTsKdGhpcy5MYSgpfTtsLnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybntzdGF0ZTp0aGlzLnN0YXRlLEpnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLkpnKSxVZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5VZyl9fTtsLnByb3RvdHlwZS5SPWZ1bmN0aW9uKG4pe3RoaXMuc3RhdGUhPT1uJiYodGhpcy5zdGF0ZT1uLHRoaXMuVWc9ZUwodGhpcy5IKSl9O2wucHJvdG90eXBlLnZnPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLkRqKyspfTtsLnByb3RvdHlwZS5MYT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5oZWFydGJlYXRDb3VudCsrO3RoaXMueWEoe3R5cGU6MCxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksbWF4RGVsYXk6dGhpcy5oZSgpfSxmdW5jdGlvbihwKXtpZihwLnR5cGU9PT0wKXt2YXIgcTtpZigoKHE9cC5mYWlsdXJlKT09bnVsbD92b2lkIDA6cS5mYWlsdXJlVHlwZSkhPW51bGwpaWYocC5zdGF0cyYmKG4uc3RhdHM9CnAuc3RhdHMpLG4uZmErKyxwLmlzRGVhZHx8bi5mYT5mKXt2YXIgcj1wLmlzRGVhZCYmcC5mYWlsdXJlLmZhaWx1cmVUeXBlO24uWj1yfHwxMDtuLlIoNCk7bi5BaigpO3ZhciB0LHU7KHU9KHQ9bi5OKS5wbyk9PW51bGx8fHUuY2FsbCh0LHtmYWlsdXJlVHlwZTpyfHwxMCxkYXRhOnAuZmFpbHVyZS5kYXRhfSl9ZWxzZSBuLlIoMyksbi5QaCgpO2Vsc2V7aWYobi5oZWFydGJlYXRDb3VudD5wLnN0YXRzLmhlYXJ0YmVhdENvdW50K2Ype24uaGVhcnRiZWF0Q291bnQ9cC5zdGF0cy5oZWFydGJlYXRDb3VudDt2YXIgdix4Oyh4PSh2PW4uTikub25GYWlsdXJlKT09bnVsbHx8eC5jYWxsKHYse2ZhaWx1cmVUeXBlOjEzfSl9bi5zdGF0cz1wLnN0YXRzO3ZhciB5PW4uc3RhdGU7bi5SKDIpO2lmKHkhPT0yKWlmKG4uZmUpe3ZhciB6LEM7KEM9KHo9bi5OKS5zbyk9PW51bGx8fEMuY2FsbCh6KX1lbHNle24uZmU9ITA7dmFyIEQsSTsoST0oRD1uLk4pLnFvKT09bnVsbHx8SS5jYWxsKEQpfW4uZmE9CjA7bi5OaigpO24uUGgoKX19fSl9O2wucHJvdG90eXBlLmhlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT0yP2U6ZH07bC5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5MYSgpfSxNYXRoLm1heCgwLHRoaXMuaGUoKS0oZUwodGhpcy5IKS10aGlzLmphKSkpfTtsLnByb3RvdHlwZS5rcj1mdW5jdGlvbihuLHAscSl7dmFyIHI9dGhpczt0aGlzLnlhKHt0eXBlOjEsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLGNvbW1hbmQ6bn0sZnVuY3Rpb24odCl7aWYodC50eXBlPT09MSlpZih0LnJlc3VsdClwKHQucmVzdWx0KTtlbHNle3ZhciB1LHYseCx5PXtmYWlsdXJlVHlwZTooeD0odT10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp1LmZhaWx1cmVUeXBlKSE9bnVsbD94OjEyLGRhdGE6KHY9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6di5kYXRhfSx6LEM7KEM9KHo9ci5OKS5vbkZhaWx1cmUpPT0KbnVsbHx8Qy5jYWxsKHoseSk7cSh5KX19KX07bC5wcm90b3R5cGUueWE9ZnVuY3Rpb24obixwKXt2YXIgcT10aGlzO2lmKHRoaXMuc3RhdGU9PT00KW4uZmFpbHVyZT17ZmFpbHVyZVR5cGU6dGhpcy5afSxwKG4pO2Vsc2V7dmFyIHI9dGhpcy5zdGF0ZSE9PTImJm4udHlwZSE9PTAsdD1uLnJlcXVlc3RJZCx1LHY9dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1xLktbdF07eSYmKGltKDYpLHEua2QoeSw3KSl9LCh1PW4ubWF4RGVsYXkpIT1udWxsP3U6ZykseD17cmVxdWVzdDpuLEhvOnAsem86cixOczp2fTt0aGlzLktbdF09eDtyfHx0aGlzLnNlbmRSZXF1ZXN0KHgpfX07bC5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO24uem89ITE7dGhpcy5JaihuLnJlcXVlc3QpfTtsLnByb3RvdHlwZS5Oaj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT0KdGhpcy5LW3AudmFsdWVdO3Euem8mJnRoaXMuc2VuZFJlcXVlc3QocSl9fTtsLnByb3RvdHlwZS5Baj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXRoaXMua2QodGhpcy5LW3AudmFsdWVdLHRoaXMuWil9O2wucHJvdG90eXBlLmtkPWZ1bmN0aW9uKG4scCl7dGhpcy5hYyhuKTt2YXIgcT1uLnJlcXVlc3Q7cS5mYWlsdXJlPXtmYWlsdXJlVHlwZTpwfTtuLkhvKHEpfTtsLnByb3RvdHlwZS5hYz1mdW5jdGlvbihuKXtkZWxldGUgdGhpcy5LW24ucmVxdWVzdC5yZXF1ZXN0SWRdO3RoaXMuSC5jbGVhclRpbWVvdXQobi5Ocyl9O2wucHJvdG90eXBlLmtzPWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTt2YXIgcD10aGlzLktbbi5yZXF1ZXN0SWRdO2lmKHApdGhpcy5hYyhwKSxwLkhvKG4pO2Vsc2V7dmFyIHEscjsocj0ocT10aGlzLk4pLm9uRmFpbHVyZSk9PW51bGx8fHIuY2FsbChxLHtmYWlsdXJlVHlwZToxNH0pfX07Cmg9bmV3IGwoYSxjLGIpO3JldHVybiBofTsKdmFyIGdMPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDE4LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkTH0pfSxjTD1mdW5jdGlvbihhKXtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtaYyhhKX0pfSxoTD1mdW5jdGlvbihhKXt2YXIgYj1hLnN1YnN0cmluZygwLGEuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIiKSk7cmV0dXJuIiYxcD0xIisoYj8iJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQoYik6IiIpfSxpTD1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbjtpZighYilyZXR1cm4gbnVsbDsoTSg0MzIpP1dqKCk6V2ooKSYmIWEpJiYoYT0iIitiK1hqKCkrIi9fL3NlcnZpY2Vfd29ya2VyIik7dmFyIGM9YSxkLGU9TGYoMTEpO2U9TGYoMTApO2Q9ZTtjPyhjLmNoYXJBdChjLmxlbmd0aC0xKSE9PSIvIiYmCihjKz0iLyIpLGE9YytkKTphPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9zdGF0aWMvc2VydmljZV93b3JrZXIvIitkKyIvIjt2YXIgZjt0cnl7Zj1uZXcgVVJMKGEpfWNhdGNoKGcpe3JldHVybiBudWxsfXJldHVybiBmLnByb3RvY29sIT09Imh0dHBzOiI/bnVsbDpmfSxqTD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5PaCk7cmV0dXJuIGImJmJbYV19LGtMPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5LPWdMKCk7dGhpcy5aPXRoaXMuUj0hMTt0aGlzLmZhPW51bGw7dGhpcy5pbml0VGltZT1NYXRoLnJvdW5kKE5iKCkpO3RoaXMuSD0xNTt0aGlzLk49dGhpcy5GcihhKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmluaXRpYWxpemUoKX0sMUUzKTtiZChmdW5jdGlvbigpe2IuenMoYSl9KX07az1rTC5wcm90b3R5cGU7ay5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy5nZXRTdGF0ZSgpIT09Mj8odGhpcy5LLkgodGhpcy5ILHtzdGF0ZTp0aGlzLmdldFN0YXRlKCksCkpnOnRoaXMuaW5pdFRpbWUsVWc6TWF0aC5yb3VuZChOYigpKS10aGlzLmluaXRUaW1lfSx2b2lkIDAsYS5jb21tYW5kVHlwZSksYyh7ZmFpbHVyZVR5cGU6dGhpcy5IfSkpOnRoaXMuTi5rcihhLGIsYyl9O2suZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OLmdldFN0YXRlKCkuc3RhdGV9O2suenM9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW4sYz10aGlzLGQ9WGMoKTt0cnl7dmFyIGU9ZC5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksZj1hLnBhdGhuYW1lLGc9ZltmLmxlbmd0aC0xXT09PSIvIj9hLnRvU3RyaW5nKCk6YS50b1N0cmluZygpKyIvIixoPWEub3JpZ2luIT09Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIj9oTChmKToiIixsO00oMTMzKSYmKGw9e3NhbmRib3g6ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMifSk7WGMoZysic3dfaWZyYW1lLmh0bWw/b3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKwpoLHZvaWQgMCxsLHZvaWQgMCxlKTt2YXIgbj1mdW5jdGlvbigpe2QuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2MuZmE9ZS5jb250ZW50V2luZG93O2QuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihwKXtwLm9yaWdpbj09PWEub3JpZ2luJiZjLk4ua3MocC5kYXRhKX0pO2MuaW5pdGlhbGl6ZSgpfSl9O2QuY29udGVudERvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP24oKTpkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtuKCl9KX1jYXRjaChwKXtkLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZCksdGhpcy5IPTExLHRoaXMuSy5LKHZvaWQgMCx2b2lkIDAsdGhpcy5ILHAudG9TdHJpbmcoKSl9fTtrLkZyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1mTChmdW5jdGlvbihkKXt2YXIgZTsoZT1iLmZhKT09Cm51bGx8fGUucG9zdE1lc3NhZ2UoZCxhLm9yaWdpbil9LHtxbzpmdW5jdGlvbigpe2IuUj0hMDtiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyl9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbihkKXtiLlI/KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDEwLGIuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyx2b2lkIDAsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSk6KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDQsYi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMsYi5ILGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oZCl7Yi5IPWQuZmFpbHVyZVR5cGU7Yi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGQuY29tbWFuZCxkLmRhdGEpfX0pO3JldHVybiBjfTtrLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt0aGlzLlp8fHRoaXMuTi5pbml0KCk7dGhpcy5aPSEwfTsKdmFyIGxMPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlO2lmKChlPWpMKGEpKT09bnVsbHx8IWUuZGVsZWdhdGUpe3ZhciBmPUljKCk/MTY6NjtnTCgpLkgoZix2b2lkIDAsdm9pZCAwLGIuY29tbWFuZFR5cGUpO2Qoe2ZhaWx1cmVUeXBlOmZ9KTtyZXR1cm59akwoYSkuZGVsZWdhdGUoYixjLGQpO307CmZ1bmN0aW9uIG1MKGEsYixjLGQpe3ZhciBlPWlMKGEpO2lmKGU9PT1udWxsKXtkKCJfaXNfc3c9ZiIrKEljKCk/MTY6NikrInRlIik7cmV0dXJufXZhciBmPWI/MTowLGc9TWF0aC5yb3VuZChOYigpKSxoLGw9KGg9akwoZS5vcmlnaW4pKT09bnVsbD92b2lkIDA6aC5pbml0VGltZSxuPWw/Zy1sOnZvaWQgMCxwO00oNDMyKT9wPVdqKCk/dm9pZCAwOkEubG9jYXRpb24uaHJlZjpwPUEubG9jYXRpb24uaHJlZjtsTChlLm9yaWdpbix7Y29tbWFuZFR5cGU6MCxwYXJhbXM6e3VybDphLG1ldGhvZDpmLHRlbXBsYXRlczpjLGJvZHk6Ynx8IiIscHJvY2Vzc1Jlc3BvbnNlOiEwLHNpbmNlSW5pdDpuLGF0dHJpYnV0aW9uUmVwb3J0aW5nOiEwLHJlZmVyZXI6cCxzdHJpY3Q6TSg1ODQpfX0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKHEpe3ZhciByPSJfaXNfc3c9ZiIrcS5mYWlsdXJlVHlwZSx0LHU9KHQ9akwoZS5vcmlnaW4pKT09Cm51bGw/dm9pZCAwOnQuZ2V0U3RhdGUoKTt1IT09dm9pZCAwJiYocis9InMiK3UpO2Qobj9yKygidCIrbik6cisidGUiKX0pO307ZnVuY3Rpb24gbkwoYSl7aWYoSWYoNDcpJiZkSShhLCJjY2RfYWRkXzFwX2RhdGEiLCExKSYmV2ooKSl7dmFyIGI9YS5NO2lmKEljKCkmJmJnKCJpbnRlcm5hbF9zd19hbGxvd2VkIiwiIikpe3ZhciBjPWVrKGIpLGQ9V2ooKT9YaigpOnZvaWQgMCxlO2U9ZD97cGF0aDpkLGVvOiJmdWxsIn06Yz97cGF0aDpjLGVvOiJsaXRlIn06dm9pZCAwO2lmKGUpe3ZhciBmPWUuZW8sZz1uZXcgVVJMKGUucGF0aCxBLmxvY2F0aW9uLm9yaWdpbik7aWYoZy5vcmlnaW49PT1BLmxvY2F0aW9uLm9yaWdpbiYmcHkoZik9PT12b2lkIDApe3ZhciBoPW9tKGptLmJhLk9oLHt9KTtoW2ZdfHwoaFtmXT1uZXcgbnkoZykpfX19fX07ZnVuY3Rpb24gc0woKXt2YXIgYTthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTt2YXIgYjtyZXR1cm4hKChiPWEuZmVhdHVyZVBvbGljeSk9PW51bGx8fCFiLmFsbG93ZWRGZWF0dXJlcygpLmluY2x1ZGVzKCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmciKSl9O2Z1bmN0aW9uIHdMKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlPUZwKCksZj1EcChlKTtpZihmLnVybClpZihkKXt2YXIgZz1jKGYudXJsKTtiIT09ZyYmVShhLEYuRC5QZSxnKX1lbHNle3ZhciBoPWYudXJsO2IhPT1oJiZVKGEsRi5ELlBlLGMoaCkpfX07CnZhciB4TD1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj1TdHJpbmcoYSkuc3Vic3RyaW5nKDAsNTEyKSxjPWIuaW5kZXhPZigiIyIpO3JldHVybiBjPT09LTE/YjpiLnN1YnN0cmluZygwLGMpfXJldHVybiIifSx5TD1mdW5jdGlvbigpe3ZhciBhPUIudGl0bGU7aWYoYT09PXZvaWQgMHx8YT09PSIiKXJldHVybiIiO2E9ZW5jb2RlVVJJQ29tcG9uZW50KGEpO2Zvcih2YXIgYj0yNTY7Yj4wJiZLaihhLnN1YnN0cmluZygwLGIpKT09PXZvaWQgMDspYi0tO3JldHVybiBLaihhLnN1YnN0cmluZygwLGIpKXx8IiJ9O2Z1bmN0aW9uIEFMKGEpe1YoYSxILkouSmEsITApO1YoYSxILkouRWIsTmIoKSk7VihhLEguSi55bixhLk0uZXZlbnRNZXRhZGF0YVtILkouSmFdKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19O2Z1bmN0aW9uIEZPKGEsYixjLGQpe31GTy5QPSJpbnRlcm5hbC5leGVjdXRlRXZlbnRQcm9jZXNzb3IiO2Z1bmN0aW9uIEdPKGEpe3ZhciBiO3JldHVybiBVZChiLHRoaXMuVCwxKX1HTy5QPSJpbnRlcm5hbC5leGVjdXRlSmF2YXNjcmlwdFN0cmluZyI7ZnVuY3Rpb24gSE8oYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPUE7dHJ5e2I9S2ooYy5lc2NhcGUoYy5hdG9iKGEpKSl9Y2F0Y2goZCl7cmV0dXJufXJldHVybiBifTtmdW5jdGlvbiBJTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1JTy5QPSJpbnRlcm5hbC5nZW5lcmF0ZUNsaWVudElkIjtmdW5jdGlvbiBKTyhhKXt2YXIgYj17fTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9S08uUD0iaW50ZXJuYWwuZ2V0QWxsb3dBZFBlcnNvbmFsaXphdGlvbiI7ZnVuY3Rpb24gTE8oKXt2YXIgYTtyZXR1cm4gYX1MTy5QPSJpbnRlcm5hbC5nZXRBbmRSZXNldEV2ZW50VXNhZ2UiO2Z1bmN0aW9uIE1PKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9TU8uUD0iaW50ZXJuYWwuZ2V0QXVpZCI7ZnVuY3Rpb24gTk8oKXt2YXIgYT1bXTtyZXR1cm4gVWQoYSl9Tk8uUD0iaW50ZXJuYWwuZ2V0Q29udGFpbmVySWRzIjtmdW5jdGlvbiBPTygpe3ZhciBhPW5ldyBrYjtMKHRoaXMsInJlYWRfY29udGFpbmVyX2RhdGEiKSxhLnNldCgiY29udGFpbmVySWQiLGlnKSxhLnNldCgidmVyc2lvbiIsa2cpLGEuc2V0KCJlbnZpcm9ubWVudE5hbWUiLGpnKSxhLnNldCgiZGVidWdNb2RlIixsZyksYS5zZXQoInByZXZpZXdNb2RlIixtZy5QbyksYS5zZXQoImVudmlyb25tZW50TW9kZSIsbWcuS3IpLGEuc2V0KCJmaXJzdFBhcnR5U2VydmluZyIsYWsoKSksYS5zZXQoImNvbnRhaW5lclVybCIsS2MpLGEuc2V0KCJpc0dvb2dsZU9ubHlNb2RlIixJZig2MikpLGEuWmEoKTtyZXR1cm4gYX1PTy5wdWJsaWNOYW1lPSJnZXRDb250YWluZXJWZXJzaW9uIjtmdW5jdGlvbiBQTyhhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjO3JldHVybiBjfVBPLnB1YmxpY05hbWU9ImdldENvb2tpZVZhbHVlcyI7ZnVuY3Rpb24gUU8oKXt2YXIgYT0iIjtyZXR1cm4gYX1RTy5QPSJpbnRlcm5hbC5nZXRDb3JlUGxhdGZvcm1TZXJ2aWNlc1BhcmFtIjtmdW5jdGlvbiBSTygpe3JldHVybiB5bSgpfVJPLlA9ImludGVybmFsLmdldENvdW50cnlDb2RlIjtmdW5jdGlvbiBTTygpe3ZhciBhPVtdO2E9dGsoKTtyZXR1cm4gVWQoYSl9U08uUD0iaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiO2Z1bmN0aW9uIFRPKGEpe3ZhciBiPW5ldyBrYjtyZXR1cm4gYn1UTy5QPSJpbnRlcm5hbC5nZXREZXZlbG9wZXJJZHMiO2Z1bmN0aW9uIFVPKGEpe3ZhciBiO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtyZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307cmV0dXJuIFVkKGMpfWlQLlA9ImludGVybmFsLmdldExpbmtlclZhbHVlRnJvbUxvY2F0aW9uIjtmdW5jdGlvbiBqUCgpe3ZhciBhPW5ldyBrYjtyZXR1cm4gYX1qUC5QPSJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyI7ZnVuY3Rpb24ga1AoYSxiKXt2YXIgYztpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307Yz1VZChkW2JdLHRoaXMuVCk7cmV0dXJuIGN9a1AuUD0iaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBsUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IXBoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIiwicXVlcnkiLGEpO3ZhciBkPUxqKFJqKEEubG9jYXRpb24uaHJlZiksInF1ZXJ5IiksZT1JaihkLGEsYik7Yz1VZChlLHRoaXMuVCk7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWVEKGEpO2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7cmV0dXJuIGF9clAuUD0iaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyI7ZnVuY3Rpb24gc1AoKXt2YXIgYT0iIjtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO3JldHVybiBhfXRQLlA9ImludGVybmFsLmdldFRvcFdpbmRvd1VybCI7ZnVuY3Rpb24gdVAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiLGEpO2I9TGooUmooQS5sb2NhdGlvbi5ocmVmKSxhKTtyZXR1cm4gYn11UC5wdWJsaWNOYW1lPSJnZXRVcmwiO2Z1bmN0aW9uIHZQKCl7TCh0aGlzLCJnZXRfdXNlcl9hZ2VudCIpO3JldHVybiBIYy51c2VyQWdlbnR9dlAucHVibGljTmFtZT0iZ2V0VXNlckFnZW50Ijt2UC5QPSJpbnRlcm5hbC5nZXRVc2VyQWdlbnQiO2Z1bmN0aW9uIHdQKCl7dmFyIGE7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO3ZhciB5UD1mdW5jdGlvbihhKXt2YXIgYj1hLmV2ZW50TmFtZT09PUYuRC5zYyYmRWwoKSYmYmsoWksoYSkpLGM9UShhLEguSi5kbiksZD1RKGEsSC5KLktrKSxlPVEoYSxILkoubWcpLGY9UShhLEguSi5UZSksZz1RKGEsSC5KLkZjKSxoPVEoYSxILkouaGQpLGw9UShhLEguSi5yZyksbj1RKGEsSC5KLk1oKSxwPVEoYSxILkouTmgpLHE9ISFZSyhhKXx8ISFRKGEsSC5KLnBwKTtyZXR1cm4hKCFuZCgpJiYha2QoKXx8ZXx8cXx8Znx8Z3x8aHx8bHx8cHx8bnx8Ynx8Y3x8IWQmJnhQKCkpfSx4UD1mdW5jdGlvbigpe3JldHVybiBhbCg5LGZ1bmN0aW9uKCl7cmV0dXJuITF9KX07ZnVuY3Rpb24gelAoKXt2YXIgYT1BO3JldHVybiBhLmdhR2xvYmFsPWEuZ2FHbG9iYWx8fHt9fWZ1bmN0aW9uIEFQKGEsYil7dmFyIGM9elAoKTtpZihjLnZpZD09PXZvaWQgMHx8YiYmIWMuZnJvbV9jb29raWUpYy52aWQ9YSxjLmZyb21fY29va2llPWJ9O3ZhciBCUD1bIkdBMSJdOwp2YXIgQ1A9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVEoYSxILkouUGspO2lmKGQ9PT12b2lkIDB8fGM8PWQpVShhLEYuRC5LYixiKSxWKGEsSC5KLlBrLGMpfSxFUD1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuS2IpO2lmKE8oYS5NLEYuRC5aYykmJk8oYS5NLEYuRC5ZYyl8fGImJmM9PT1iKXJldHVybiBjO2lmKGMpe2M9IiIrYztpZighRFAoYyxhKSlyZXR1cm4gUCgzMSksYS5pc0Fib3J0ZWQ9ITAsIiI7QVAoYyxYbyhGLkQucmEpKTtyZXR1cm4gY31QKDMyKTthLmlzQWJvcnRlZD0hMDtyZXR1cm4iIn0sRlA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPUJ2KGIucHJlZml4KyJfZ2EiLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpO2lmKCFkKXt2YXIgZT1TdHJpbmcoTyhhLk0sRi5ELklkLCIiKSk7ZSYmZSE9PWMmJihkPUJ2KGUsYi5kb21haW4sYi5wYXRoLEJQLEYuRC5yYSkpfXJldHVybiBkfSxEUD1mdW5jdGlvbihhLGIpe3ZhciBjOwp2YXIgZD1RKGIsSC5KLkdhKSxlPWQucHJlZml4KyJfZ2EiLGY9dXEoZCx2b2lkIDAsdm9pZCAwLEYuRC5yYSk7aWYoTyhiLk0sRi5ELkpkKT09PSExJiZGUChiKT09PWEpYz0hMDtlbHNle3ZhciBnO2c9W0JQWzBdLHRxKGQuZG9tYWluLGQucGF0aCksYV0uam9pbigiLiIpO2M9b3EoZSxnLGYpIT09MX1yZXR1cm4gY307CnZhciBHUD1mdW5jdGlvbihhKXt2YXIgYj0wLGM9MDtyZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXtiPU5iKCl9LHN0b3A6ZnVuY3Rpb24oKXtjPXRoaXMuZ2V0KCl9LGdldDpmdW5jdGlvbigpe3ZhciBkPTA7YS5WaigpJiYoZD1OYigpLWIpO3JldHVybiBkK2N9fX0sSFA9ZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwO3RoaXMuSz0wO3RoaXMuaXNBY3RpdmU9dGhpcy5pc1Zpc2libGU9dGhpcy5OPSExO3RoaXMuWj10aGlzLlI9dm9pZCAwfTtrPUhQLnByb3RvdHlwZTtrLktxPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoIXRoaXMuSCl7dGhpcy5OPUIuaGFzRm9jdXMoKTt0aGlzLmlzVmlzaWJsZT0hQi5oaWRkZW47dGhpcy5pc0FjdGl2ZT0hMDt2YXIgYz1mdW5jdGlvbihlLGYsZyl7JGMoZSxmLGZ1bmN0aW9uKGgpe2IuSC5zdG9wKCk7ZyhoKTtiLlZqKCkmJmIuSC5zdGFydCgpfSl9LGQ9QTtjKGQsImZvY3VzIixmdW5jdGlvbigpe2IuTj0hMH0pO2MoZCwiYmx1ciIsZnVuY3Rpb24oKXtiLk49CiExfSk7YyhkLCJwYWdlc2hvdyIsZnVuY3Rpb24oZSl7Yi5pc0FjdGl2ZT0hMDtlLnBlcnNpc3RlZCYmUCg1Nik7Yi5aJiZiLlooKX0pO2MoZCwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7Yi5pc0FjdGl2ZT0hMTtiLlImJmIuUigpfSk7YyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2IuaXNWaXNpYmxlPSFCLmhpZGRlbn0pO2JrKFpLKGEpKSYmIU9jKCkmJmMoZCwiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe1prKDksITApfSk7dGhpcy5xayghMCk7dGhpcy5LPTB9fTtrLnFrPWZ1bmN0aW9uKGEpe2lmKChhPT09dm9pZCAwPzA6YSl8fHRoaXMuSCl0aGlzLksrPXRoaXMuWWgoKSx0aGlzLkg9R1AodGhpcyksdGhpcy5WaigpJiZ0aGlzLkguc3RhcnQoKX07ay5LdD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlloKCk7Yj4wJiZVKGEsRi5ELm5oLGIpfTtrLmxzPWZ1bmN0aW9uKGEpe1UoYSxGLkQubmgpO3RoaXMucWsoKTt0aGlzLks9MH07ay5Waj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4mJgp0aGlzLmlzVmlzaWJsZSYmdGhpcy5pc0FjdGl2ZX07ay5Ycj1mdW5jdGlvbigpe3JldHVybiB0aGlzLksrdGhpcy5ZaCgpfTtrLlloPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCYmdGhpcy5ILmdldCgpfHwwfTtrLmh0PWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLkNvPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfTt2YXIgSVA9ZnVuY3Rpb24oYSl7c2IoIkdBNF9FVkVOVCIsYSl9O3ZhciBKUD1mdW5jdGlvbihhKXt2YXIgYixjPVEoYSxILkoud20pO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspSVAoY1tkXSk7KGI9d2IocmIuR0E0X0VWRU5UfHxbXSkpJiZVKGEsIl9ldSIsYil9Owp2YXIgTVA9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFJlZ0V4cCgiXiIrKCgoYT09bnVsbD92b2lkIDA6YS5wcmVmaXgpfHwiIikrIl9nYV9cXHcrJCIpKSxjPXlxKGZ1bmN0aW9uKHApe3JldHVybiBiLnRlc3QocCl9KSxkPXt9LGU7Zm9yKGUgaW4gYylpZihjLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1LUChjW2VdKTtpZihmKXt2YXIgZz1icShmLDIpO2lmKGcpe3ZhciBoPUxQKGcpO2lmKGgpe3ZhciBsPXZvaWQgMCxuPSgoKGw9YSk9PW51bGw/dm9pZCAwOmwucHJlZml4KXx8IiIpLmxlbmd0aCs0O2RbIkctIitlLnN1YnN0cmluZyhuKV09aH19fX1yZXR1cm4gZH0sTlA9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI7YTp7dmFyIGM9KFNiKGEsInMiKSYmYS5pbmRleE9mKCIuIik9PT0tMT8iR1MyIjoiR1MxIikrIi4xLiIrYTt0cnl7Yj0kcChjLDIpO2JyZWFrIGF9Y2F0Y2goZCl7fWI9dm9pZCAwfXJldHVybiBifX0sS1A9ZnVuY3Rpb24oYSl7aWYoYSYmYS5sZW5ndGghPT0wKXtmb3IodmFyIGIsCmM9LUluZmluaXR5LGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihmLnQhPT12b2lkIDApe3ZhciBnPU51bWJlcihmLnQpOyFpc05hTihnKSYmZz5jJiYoYz1nLGI9Zil9fXJldHVybiBifX0senE9ZnVuY3Rpb24oYSl7YSYmKGE9PT0iR1MxIj9JUChKLlUuS20pOmE9PT0iR1MyIiYmSVAoSi5VLkxtKSl9LExQPWZ1bmN0aW9uKGEpe3ZhciBiPU5QKGEpO2lmKGIpe3ZhciBjPU51bWJlcihiLm8pLGQ9TnVtYmVyKGIudCksZT1OdW1iZXIoYi5qfHwwKTtjfHxJUChKLlUuVW0pO2R8fElQKEouVS5UbSk7aXNOYU4oZSkmJklQKEouVS5TbSk7aWYoYyYmZCYmIWlzTmFOKGUpKXt2YXIgZj1iLmgsZz1mJiZmIT09IjAiP1N0cmluZyhmKTp2b2lkIDAsaD1iLmQ/U3RyaW5nKGIuZCk6dm9pZCAwLGw9e307cmV0dXJuIGwucz1TdHJpbmcoYi5zKSxsLm89YyxsLmc9ISFOdW1iZXIoYi5nKSxsLnQ9ZCxsLmQ9aCxsLmo9ZSxsLmw9Yi5sPT09IjEiLApsLmg9ZyxsfX19Owp2YXIgUFA9ZnVuY3Rpb24oYSxiLGMpe2lmKCFiKXJldHVybiBhO2lmKCFhKXJldHVybiBiO3ZhciBkPUxQKGEpO2lmKCFkKXJldHVybiBiO3ZhciBlLGY9SWIoKGU9TyhjLk0sRi5ELnloKSkhPW51bGw/ZTozMCksZz1RKGMsSC5KLkViKTtpZighKE1hdGguZmxvb3IoZy8xRTMpPmQudCtmKjYwKSlyZXR1cm4gYTt2YXIgaD1MUChiKTtpZighaClyZXR1cm4gYTtoLm89ZC5vKzE7dmFyIGw7cmV0dXJuKGw9T1AoaCkpIT1udWxsP2w6Yn0sUlA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1RKGIsSC5KLkdhKSxkPVFQKGIsYyksZT1OUChhKTtpZighZSlyZXR1cm4hMTt2YXIgZj11cShjfHx7fSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSk7b3EoZCx2b2lkIDAsZik7cmV0dXJuIEFxKGQsZSwyLGMpIT09MX0sU1A9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYzt2YXIgZD1RUChhLGIpLGU7Yjp7dmFyIGY9enEsZz1acFsyXTtpZihnKXt2YXIgaCxsPXJxKGIuZG9tYWluKSxuPXNxKGIucGF0aCksCnA9T2JqZWN0LmtleXMoZy5qaSkscT12cS5nZXQoMikscjtpZihoPShyPWdxKGQsbCxuLHAscSkpPT1udWxsP3ZvaWQgMDpyLkJyKXt2YXIgdD0kcChoLDIsZik7ZT10P3hxKHQpOnZvaWQgMDticmVhayBifX1lPXZvaWQgMH1pZihlKXt2YXIgdT13cShkLDIsenEpO2lmKHUmJnUubGVuZ3RoPjEpe0lQKEouVS5KbSk7dmFyIHY9S1AodSk7diYmdi50IT09ZS50JiYoSVAoSi5VLk1tKSxlPXYpfWM9YnEoZSwyKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfSxUUD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkViKSxjPXt9O2Mucz1SKGEsRi5ELnhjKTtjLm89UihhLEYuRC5BaCk7dmFyIGQ7ZD1SKGEsRi5ELnpoKTt2YXIgZT0oYy5nPWQsYy50PU1hdGguZmxvb3IoYi8xRTMpLGMuZD1RKGEsSC5KLm9nKSxjLmo9UShhLEguSi5wZyl8fDAsYy5sPSEhUShhLEguSi5ybSksYy5oPVIoYSxGLkQub2gpLGMpO3JldHVybiBPUChlKX0sT1A9ZnVuY3Rpb24oYSl7aWYoYS5zJiZhLm8pe3ZhciBiPQp7fSxjPShiLnM9YS5zLGIubz1TdHJpbmcoYS5vKSxiLmc9SWIoYS5nKT8iMSI6IjAiLGIudD1TdHJpbmcoYS50KSxiLmo9U3RyaW5nKGEuaiksYi5sPWEubD8iMSI6IjAiLGIuaD1hLmh8fCIwIixiLmQ9YS5kLGIpO3JldHVybiBicShjLDIpfX0sUVA9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5wcmVmaXgrIl9nYV8iK2EudGFyZ2V0Lmlkc1tkQ1s2XV19Owp2YXIgVVA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMixmdW5jdGlvbigpe3JldHVybiExfSl9LFZQPWZ1bmN0aW9uKGEpe3ZhciBiPU8oYS5NLEYuRC5EYiksYz1hLk0uaWJbRi5ELkRiXTtpZihjPT09YilyZXR1cm4gYzt2YXIgZD1FZChiLG51bGwpO2MmJmNbRi5ELkFhXSYmKGRbRi5ELkFhXT0oZFtGLkQuQWFdfHxbXSkuY29uY2F0KGNbRi5ELkFhXSkpO3JldHVybiBkfSxXUD1mdW5jdGlvbihhLGIpe3ZhciBjPVVxKCEwKTtyZXR1cm4gYy5fdXAhPT0iMSI/e306e2NsaWVudElkOmNbYV0semI6Y1tiXX19LFhQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1VcSghMCksZT1kW2JdO2UmJihDUChhLGUsMiksRFAoZSxhKSk7dmFyIGY9ZFtjXTtmJiZSUChmLGEpO3JldHVybntjbGllbnRJZDplLHpiOmZ9fSxZUD1mdW5jdGlvbigpe3ZhciBhPU5qKEEubG9jYXRpb24sImhvc3QiKSxiPU5qKFJqKEIucmVmZXJyZXIpLCJob3N0Iik7cmV0dXJuIGEmJmI/YT09PWJ8fGEuaW5kZXhPZigiLiIrYik+PQowfHxiLmluZGV4T2YoIi4iK2EpPj0wPyEwOiExOiExfSxaUD1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELnpjKSlyZXR1cm57fTt2YXIgYj1RKGEsSC5KLkdhKSxjPWIucHJlZml4KyJfZ2EiLGQ9UVAoYSxiKTticihmdW5jdGlvbigpe3ZhciBlO2lmKFhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpKWU9e307ZWxzZXt2YXIgZj17X3VwOiIxIn0sZztnPVIoYSxGLkQuS2IpO2U9KGZbY109ZyxmW2RdPVRQKGEpLGYpfXJldHVybiBlfSwxKTtyZXR1cm4hWG8oImFuYWx5dGljc19zdG9yYWdlIikmJllQKCk/V1AoYyxkKTp7fX0sJFA9ZnVuY3Rpb24oYSl7dmFyIGI9VlAoYSl8fHt9LGM9UShhLEguSi5HYSksZD1jLnByZWZpeCsiX2dhIixlPVFQKGEsYyksZj17fTtkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pJiYoZj1YUChhLGQsZSksZi5jbGllbnRJZCYmZi56YiYmWmsoMiwhMCkpO2JbRi5ELkFhXSYmYXIoZnVuY3Rpb24oKXt2YXIgZz17fSxoPUZQKGEpO2gmJihnW2RdPWgpO3ZhciBsPVNQKGEpOwpsJiYoZ1tlXT1sKTt2YXIgbj1jcSgiRlBMQyIsdm9pZCAwLHZvaWQgMCxGLkQucmEpO24ubGVuZ3RoJiYoZy5fZnBsYz1uWzBdKTtyZXR1cm4gZ30sYltGLkQuQWFdLGJbRi5ELmFkXSwhIWJbRi5ELndjXSk7cmV0dXJuIGZ9O3ZhciBhUT1mdW5jdGlvbihhKXtpZighUShhLEguSi5iZSkmJmVrKGEuTSkpe3ZhciBiPVZQKGEpfHx7fSxjPShkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pP1VxKCEwKS5fZnBsYzp2b2lkIDApfHwoY3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKS5sZW5ndGg+MD92b2lkIDA6IjAiKTtVKGEsIl9mcGxjIixjKX19O2Z1bmN0aW9uIGJRKGEpeyhiayhaSyhhKSl8fFdqKCkpJiZVKGEsRi5ELm9tLHptKCl8fHltKCkpOyFiayhaSyhhKSkmJldqKCkmJlUoYSxGLkQuWWksIjo6Iil9ZnVuY3Rpb24gY1EoYSl7V2ooKSYmKGJrKFpLKGEpKXx8RG0oKXx8VShhLEYuRC5TbCwhMCkpfTt2YXIgZVE9ZnVuY3Rpb24oYSxiKXtraigiZ3JsIixmdW5jdGlvbigpe3JldHVybiBkUSgpfSkoYil8fChQKDM1KSxhLmlzQWJvcnRlZD0hMCl9LGRRPWZ1bmN0aW9uKCl7dmFyIGE9TmIoKSxiPWErODY0RTUsYz0yMCxkPTVFMztyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGY9TmIoKTtmPj1iJiYoYj1mKzg2NEU1LGQ9NUUzKTtjPU1hdGgubWluKGMrKGYtYSkvMUUzKjUsMjApO2E9Zjt2YXIgZz0hMTtkPDF8fGM8MXx8KGc9ITAsZC0tLGMtLSk7ZSYmKGUuSHI9ZCxlLnVyPWMpO3JldHVybiBnfX07CnZhciBmUT1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELlVhKTtyZXR1cm4gTGooUmooYiksImhvc3QiLCEwKX0sZ1E9ZnVuY3Rpb24oYSl7aWYoTyhhLk0sRi5ELldmKSE9PXZvaWQgMClhLmNvcHlUb0hpdERhdGEoRi5ELldmKTtlbHNle3ZhciBiPU8oYS5NLEYuRC5hbSksYyxkO2E6e2lmKFVQKCkpe3ZhciBlPVZQKGEpfHx7fTtpZihlJiZlW0YuRC5BYV0pZm9yKHZhciBmPWZRKGEpLGc9ZVtGLkQuQWFdLGg9MDtoPGcubGVuZ3RoO2grKylpZihnW2hdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGdbaF0udGVzdChmKSl7ZD0hMDticmVhayBhfX1lbHNlIGlmKGYuaW5kZXhPZihnW2hdKT49MCl7ZD0hMDticmVhayBhfX1kPSExfWlmKCEoYz1kKSl7dmFyIGw7aWYobD1iKWE6e2Zvcih2YXIgbj1iLmluY2x1ZGVfY29uZGl0aW9uc3x8W10scD1mUShhKSxxPTA7cTxuLmxlbmd0aDtxKyspaWYobltxXS50ZXN0KHApKXtsPSEwO2JyZWFrIGF9bD0hMX1jPWx9YyYmKFUoYSxGLkQuV2YsIjEiKSwKSVAoSi5VLm5uKSl9fTtmdW5jdGlvbiBoUShhLGIsYyxkKXt2YXIgZTtpZigobmQoKXx8a2QoKSkmJlhqKCkmJlhqKCkhPT0iLyIpe3ZhciBmPVJqKGEpO2U9SWYoNTApJiZkJiZUYihmLnBhdGhuYW1lLCIvZy9jb2xsZWN0Iik/MjooZHx8IVdqKCl8fERtKCk/MDpUYihmLnBhdGhuYW1lLCIvZ2EvZy9jIil8fFRiKGYucGF0aG5hbWUsIi9hZy9nL2MiKSk/MTowfWVsc2UgZT0wO3N3aXRjaChlKXtjYXNlIDI6dmFyIGc7aWYoTSg1NDYpKXt2YXIgaD1UYihhLCIvZy9jb2xsZWN0Iik/YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0xMCk6YSxsPWlRKCksbj1oK2wscD1qUSgiL2cvY29sbGVjdCIsYixjKTtnPXtJYzpuLGtmOiIiLGJvZHk6cH19ZWxzZSBnPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gZztjYXNlIDE6dmFyIHE7aWYoTSg1NDcpKXt2YXIgcj1pUSgpLHQ9YS5pbmRleE9mKHIpLHU9YS5zdWJzdHJpbmcoMCx0KStyLHY9alEoYS5zdWJzdHJpbmcodCtyLmxlbmd0aC0xKSxiLGMpO3E9e0ljOnUsa2Y6IiIsCmJvZHk6dn19ZWxzZSBxPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gcTtkZWZhdWx0OnJldHVybntJYzphLGtmOmIsYm9keTpjfX19ZnVuY3Rpb24gaVEoKXt2YXIgYT1YaigpO2lmKCFhKXJldHVybiIiO1NiKGEsIi8iKXx8KGE9Ii8iK2EpO1RiKGEsIi8iKXx8KGErPSIvIik7cmV0dXJuIGF9ZnVuY3Rpb24galEoYSxiLGMpe3ZhciBkPVthXTtiJiZkLnB1c2goIj8iLGIpO2MmJmQucHVzaCgiXHJcbiIsYyk7cmV0dXJuIGQuam9pbigiIil9Owp2YXIga1E9ZnVuY3Rpb24oYSxiKXtUdCgpJiYoYS5nY3M9VXQoKSxRKGIsSC5KLkdoKSYmKGEuZ2N1PSIxIikpO2EuZ2NkPVl0KGIuTSk7YS5ucGE9UShiLEguSi53ZCk/IjAiOiIxIjt6bSgpPT09IlVTLUNPIiYmKGEuX25nPSIxIil9LGxRPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouYmUpKXJldHVybnt1cmw6ZmsoImh0dHBzOi8vd3d3Lm1lcmNoYW50LWNlbnRlci1hbmFseXRpY3MuZ29vZyIsdm9pZCAwLCIiKSsiL21jL2NvbGxlY3QiLGVuZHBvaW50OjIwfTt2YXIgYj1ZaihlayhhLk0pLCIvZy9jb2xsZWN0Iik7aWYoYilyZXR1cm57dXJsOmIsZW5kcG9pbnQ6MTZ9O3ZhciBjO2M9UShhLEguSi5ybikmJiFRKGEsSC5KLkZjKT8xNzoxNjtyZXR1cm57dXJsOk1tW2NdKHZvaWQgMCksZW5kcG9pbnQ6Y319LG1RPXt9O21RW0YuRC5LYl09ImNpZCI7bVFbRi5ELnhpXT0iZ2N1dCI7bVFbRi5ELkZlXT0iYXJlIjttUVtGLkQuamhdPSJwc2NkbCI7bVFbRi5ELk5kXT0iZXhjaWQiO21RW0YuRC5HaV09CiJfZmlkIjttUVtGLkQuT2xdPSJfZ2VvIjttUVtGLkQuWGNdPSJnZGlkIjttUVtGLkQuTGVdPSJfbmciO21RW0YuRC5NZV09ImZybSI7bVFbRi5ELldmXT0iaXIiO21RW0YuRC5TbF09ImZwIjttUVtGLkQudGJdPSJ1bCI7bVFbRi5ELk1pXT0ibmkiO21RW0YuRC5tcV09InBhZSI7bVFbRi5ELnhoXT0iX3JkaSI7bVFbRi5ELmJkXT0ic3IiO21RW0YuRC5RaV09InRlc3Rvbmx5IjttUVtGLkQuUWVdPSJ0aWQiO21RW0YuRC5SaV09InR0IjttUVtGLkQuQmNdPSJlY19tb2RlIjttUVtGLkQuWm1dPSJndG1fdXAiO21RW0YuRC5jZ109InVhYSI7bVFbRi5ELmRnXT0idWFiIjttUVtGLkQuZWddPSJ1YWZ2bCI7bVFbRi5ELmZnXT0idWFtYiI7bVFbRi5ELmdnXT0idWFtIjsKbVFbRi5ELmhnXT0idWFwIjttUVtGLkQuaWddPSJ1YXB2IjttUVtGLkQuamddPSJ1YXciO21RW0YuRC5vbV09InVyIjttUVtGLkQuWWldPSJfdWlwIjttUVtGLkQubHFdPSJfcHJzIjttUVtGLkQuUGRdPSJscHMiO21RW0YuRC5CZV09ImdjbGdzIjttUVtGLkQuRGVdPSJnY2xzdCI7bVFbRi5ELkNlXT0iZ2NsbHAiO3ZhciBuUT17fTtuUVtGLkQuR2ZdPSJjYyI7blFbRi5ELkhmXT0iY2kiO25RW0YuRC5JZl09ImNtIjtuUVtGLkQuSmZdPSJjbiI7blFbRi5ELkxmXT0iY3MiO25RW0YuRC5NZl09ImNrIjtuUVtGLkQuZWJdPSJjdSI7blFbRi5ELlZmXT0iX3R1IjtuUVtGLkQuemFdPSJkbCI7blFbRi5ELllmXT0iZHAiO25RW0YuRC5VYV09ImRyIjtuUVtGLkQuTWJdPSJkdCI7blFbRi5ELnpoXT0ic2VnIjtuUVtGLkQueGNdPQoic2lkIjtuUVtGLkQuQWhdPSJzY3QiO25RW0YuRC5mYl09InVpZCI7dmFyIG9RPXt9O29RW0YuRC5uaF09Il9ldCI7b1FbRi5ELlZjXT0iZWRpZCI7b1FbRi5ELk1kXT0iZXZuaWQiO00oOTQpJiYob1EuX2V1PSJfZXUiKTt2YXIgcFE9e307cFFbRi5ELkdmXT0iY2MiO3BRW0YuRC5IZl09ImNpIjtwUVtGLkQuSWZdPSJjbSI7cFFbRi5ELkpmXT0iY24iO3BRW0YuRC5MZl09ImNzIjtwUVtGLkQuTWZdPSJjayI7dmFyIHFRPXt9LHJRPShxUVtGLkQuQWNdPTEscVEpLHNRPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGRhLG1hKXtpZihtYSE9PXZvaWQgMCYmIUJvLmhhc093blByb3BlcnR5KGRhKSl7bWE9PT1udWxsJiYobWE9IiIpO3ZhciBQYTt2YXIgRmE9bWE7ZGEhPT1GLkQub2g/UGE9ITE6UShhLEguSi5sZyl8fGJrKFpLKGEpKT8oZS5lY2lkPUZhLFBhPSEwKTpQYT12b2lkIDA7aWYoIVBhKXt2YXIgcWE9bWE7bWE9PT0hMCYmKHFhPSIxIik7bWE9PT0hMSYmKHFhPSIwIik7cWE9ClN0cmluZyhxYSk7dmFyIGliO2lmKGRhIT09Ri5ELk5kJiZkYSE9PUYuRC5NZHx8TSg1MDQpKWlmKG1RW2RhXSlpYj1tUVtkYV0sdltpYl09cWE7ZWxzZSBpZihuUVtkYV0paWI9blFbZGFdLGdbaWJdPXFhO2Vsc2UgaWYob1FbZGFdKWliPW9RW2RhXSxmW2liXT1xYTtlbHNlIGlmKFNiKGRhLCJfJiIpKWliPWRhLnN1YnN0cmluZygyKSx2W2liXT1xYTtlbHNlIGlmKGRhLmNoYXJBdCgwKT09PSJfIil2W2RhXT1xYTtlbHNle3ZhciBYYjtwUVtkYV0/WGI9ITA6ZGEhPT1GLkQuS2Y/WGI9ITE6KHR5cGVvZiBtYSE9PSJvYmplY3QiJiZ1KGRhLG1hKSxYYj0hMCk7WGJ8fHUoZGEsbWEpfWVsc2UgdShkYSxtYSl9fX12YXIgZT17fSxmPXt9LGc9e307ZS52PSIyIjtlLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkO2UuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxlZjpRKGEsSC5KLkNjKX0pO2UuX3A9JGsoMjUpO2MmJihjLmhhc1VwZHx8Yy5oYWRFcnJvcikmJihlLmVtPWMucGFyYW0pO1EoYSwKSC5KLnJnKSYmKGUuX2dhej0xKTtrUShlLGEpO2F1KCkmJihlLmRtYV9jcHM9WnQoKSk7ZS5kbWE9JHQoKTt2dChFdCgpKSYmKGUudGNmZD1idSgpKTt2YXIgaD1DcChhKTtoJiYoZy50YWdfZXhwPWgpO3ZhciBsPVIoYSxGLkQuWGMpO2wmJihlLmdkaWQ9bCk7Zi5lbj1TdHJpbmcoYS5ldmVudE5hbWUpO2lmKFEoYSxILkoubmcpKXt2YXIgbj1RKGEsSC5KLlltKTtmLl9mdj1uPzI6MX1RKGEsSC5KLkhoKSYmKGYuX25zaT0xKTtpZihRKGEsSC5KLlRlKSl7dmFyIHA9UShhLEguSi5ibik7Zi5fc3M9cD8yOjF9UShhLEguSi5tZykmJihmLl9jPTEpO1EoYSxILkouYWUpJiYoZi5fZWU9MSk7aWYoUShhLEguSi5XbSkpe3ZhciBxPVIoYSxGLkQuSGEpfHxPKGEuTSxGLkQuSGEpO2lmKEFycmF5LmlzQXJyYXkocSkpZm9yKHZhciByPTA7cjxxLmxlbmd0aCYmcjwyMDA7cisrKWZbInByIisocisxKV09dGcocVtyXSl9dmFyIHQ9UihhLEYuRC5WYyk7dCYmKGYuZWRpZD10KTtodChhLGYpO2Zvcih2YXIgdT0KZnVuY3Rpb24oZGEsbWEpe2lmKHR5cGVvZiBtYSE9PSJvYmplY3QifHwhclFbZGFdKXt2YXIgUGE9ImVwLiIrZGEsRmE9ImVwbi4iK2RhO2RhPUFiKG1hKT9GYTpQYTt2YXIgcWE9QWIobWEpP1BhOkZhO2YuaGFzT3duUHJvcGVydHkocWEpJiZkZWxldGUgZltxYV07ZltkYV09U3RyaW5nKG1hKX19LHY9e30seD1tKGV1KGEpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTtkKHosUihhLHopKX1mb3IodmFyIEM9bShPYmplY3Qua2V5cyh2KS5zb3J0KCkpLEQ9Qy5uZXh0KCk7IUQuZG9uZTtEPUMubmV4dCgpKXt2YXIgST1ELnZhbHVlO2VbSV09dltJXX0oZnVuY3Rpb24oZGEpe2JrKFpLKGEpKSYmdHlwZW9mIGRhPT09Im9iamVjdCImJkdiKGRhfHx7fSxmdW5jdGlvbihtYSxQYSl7dHlwZW9mIFBhIT09Im9iamVjdCImJihlWyJzc3QuIittYV09U3RyaW5nKFBhKSl9KX0pKFIoYSxGLkQub2opKTtidihlLFIoYSxGLkQuZWQpKTt2YXIgRz1SKGEsRi5ELldkKXx8Cnt9O0diKEcsZnVuY3Rpb24oZGEsbWEpe21hIT09dm9pZCAwJiYoKG1hPT09bnVsbCYmKG1hPSIiKSxkYSE9PUYuRC5mYnx8Zy51aWQpP2JbZGFdIT09bWEmJihmWyhBYihtYSk/InVwbi4iOiJ1cC4iKStTdHJpbmcoZGEpXT1TdHJpbmcobWEpLGJbZGFdPW1hKTpnLnVpZD1TdHJpbmcobWEpKX0pO2lmKFdqKCkmJiFEbSgpJiYhYmsoWksoYSkpKXt2YXIgTj1RKGEsSC5KLm9nKTtOP2UuX2dzaWQ9TjplLm5qaWQ9IjEifXZhciBTPVEoYSxILkouVmkpOyhTPT1udWxsP3ZvaWQgMDpTLnZhbHVlKT4wJiYoZS5nYWY9Uy5nZXQoKSk7dmFyIFc9UihhLEYuRC5XYyk7aWYoVylmb3IodmFyIGVhPW0oT2JqZWN0LmtleXMoVykpLGphPWVhLm5leHQoKTshamEuZG9uZTtqYT1lYS5uZXh0KCkpe3ZhciBmYT1qYS52YWx1ZTtmWyJleHQuIitmYV09V1tmYV18fCIifXZhciBzYT1sUShhKTt2Zy5jYWxsKHRoaXMse0JhOmUsdmU6ZyxMajpmfSxzYS51cmwsc2EuZW5kcG9pbnQsWksoYSksdm9pZCAwLAphLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuTS5ldmVudElkLGEuTS5wcmlvcml0eUlkKX07d2Eoc1EsdmcpOwp2YXIgdFE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5yZXBsYWNlKC9cJFx7KFteXH1dKylcfS9nLGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGJbZF18fGN9KX0sdVE9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz0iIixkPWEucGF0aG5hbWUuaW5kZXhPZigiL2cvY29sbGVjdCIpO2Q+PTAmJihjPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsZCkpO2IudHJhbnNwb3J0X3VybD1hLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZStjO3ZhciBlO3RyeXtlPWVuY29kZVVSSUNvbXBvbmVudChjfHwiLyIpfWNhdGNoKGYpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KCIvIil9Yi5lbmNvZGVkX3BhdGg9ZTtyZXR1cm4gYn0sdlE9ZnVuY3Rpb24oYSxiKXtpZighTSg1NDYpKXJldHVybnt1cmw6YSxib2R5OmJ9O3ZhciBjPW0oYS5zcGxpdCgiPyIpKSxkPWMubmV4dCgpLnZhbHVlLGU9Yy5uZXh0KCkudmFsdWUsZj1oUShkLGV8fCIiLGJ8fCIiLCEwKSxnPWYuSWMsaD1mLmtmO2E9aCE9PSIiP2crIj8iK2g6ZztiPWYuYm9keTsKcmV0dXJue3VybDphLGJvZHk6Yn19LHhRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1SaihiKSxlPXVRKGQpLGY9dlEoWGcoZCksYyksZz1mdW5jdGlvbihoKXtxeChmLnVybCxmLmJvZHksbmV3IHdRKGUsaCkpJiZhJiZrbi5yZWdpc3RlcihhLDEsZi51cmwpfTshTSgxMzIpfHxOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpP2coKTptTChmLnVybCxmLmJvZHksZSxnKX0sd1E9ZnVuY3Rpb24oYSxiKXtDeC5jYWxsKHRoaXMpO3RoaXMudGVtcGxhdGVzPWE7dGhpcy5OPWJ9O3dhKHdRLEN4KTt3US5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXt2YXIgYj10UShhLHRoaXMudGVtcGxhdGVzKTtyZXR1cm4gdGhpcy5OP2IucmVwbGFjZSgiX2lzX3N3PTAiLHRoaXMuTik6Yn07d1EucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLlooYSk7Q3gucHJvdG90eXBlLksuY2FsbCh0aGlzLGMsYil9O3dRLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXMuWihhKTtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYyxiKX07CnZhciB5UT1mdW5jdGlvbihhKXtyZXR1cm4hU2IoYSxGbSgpKSYmIVNiKGEsR20oKSl9LEFRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZighbmQoKSlyZXR1cm4gelEoYSxiLGMsZCksITA7WW4oYyxiIT09IiI/YSsiPyIrYjphLGQsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxlfHx7fSx7UWc6ITB9KSx2b2lkIDAsZil8fHpRKGEsYixjLGQpO3JldHVybiEwfSx6UT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iIT09IiI/YSsiPyIrYjphO2Q/V24oYyxlLGQpOlZuKGMsZSl9LENRPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YixnPXBkKCk7ZyE9PXZvaWQgMCYmKGYrPSImdGZkPSIrTWF0aC5yb3VuZChnKSk7Yj1mO3ZhciBoPWErIj8iK2I7aWYoIWJrKGQpfHxjayhkKXx8eFAoKSl7dmFyIGw9aFEoYSxiLGMsYmsoZCkpO2E9bC5JYztiPWwua2Y7Yz1sLmJvZHk7QVEoYSxiLGUsYyx2b2lkIDAsQlEoYSxiLGUsYykpfHx6UShhLGIsZSxjKX1lbHNlIHhRKGUsaCxjKTsKYmsoZCkmJk0oNTY0KSYmbmQoKSYmVGIoYSwiL2cvY29sbGVjdCIpJiZBLmZldGNoKGEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApLHttZXRob2Q6IlBPU1QiLGJvZHk6IkNqQU9BVHdjQ0JnTyIsY3JlZGVudGlhbHM6Im9taXQifSl9LEJRPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCF5UShhKSl7dmFyIGU9TW1bNjddKHZvaWQgMCk7aWYoZSlyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZjt2YXIgZz1iLnJlcGxhY2UoL15cPy8sIiIpLGg9TnVtYmVyKElqKGcsImdhZiIsITEpKSxsPTA7TnVtYmVyLmlzSW50ZWdlcihoKSYmKGw9aCk7dmFyIG49bmV3IGVyKGwpO2ZyKG4sMSk7aWYobi52YWx1ZSE9PTApe3ZhciBwLHE9bi5nZXQoKSxyPVJlZ0V4cCgiKF58Wz8mXSlnYWY9W14mXSooJnwkKSIpO3A9ci50ZXN0KGcpP2cucmVwbGFjZShyLCIkMWdhZj0iK3ErIiQyIik6Zy5pbmRleE9mKCI/Iik+PTA/ZysiJmdhZj0iK3E6Z1swXT09PSIvInx8Zy5pbmRleE9mKCI6Ly8iKT49MD9nKyI/Z2FmPSIrCnE6Zy5sZW5ndGg+MD9nKyImZ2FmPSIrcToiZ2FmPSIrcTtmPWIuaW5kZXhPZigiPyIpPT09MD8iPyIrcDpwfWVsc2UgZj12b2lkIDA7QVEoZSxmfHxiLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZW5kcG9pbnQ6Njd9KSxkLGMuZW5kcG9pbnQ9PT0xNz92b2lkIDA6e2NyZWRlbnRpYWxzOiJvbWl0In0pfX19LERRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGgpe2QucHVzaChoKyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVtoXSkpfTtkLnB1c2goInY9MiIpO2UoIl9nc2lkIik7ZSgiZ3RtIik7YS5CYS5fZ2VvJiZlKCJfZ2VvIik7dmFyIGY9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWdvb2dsZS1hbmFseXRpY3MuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IiwoYnx8Ind3dyIpKyIuIiksZz1kLmpvaW4oIiYiKTt6UShmLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwKIiIsZW5kcG9pbnQ6NjIsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZisiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjYyfSxxYjpjfSl9LEVRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly97Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59YW5hbHl0aWNzLmdvb2dsZS5jb20vZy9zL2NvbGxlY3QiLnJlcGxhY2UoIntnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn0iLGI/YisiLiI6IiIpLGU9W10sZj1mdW5jdGlvbihoKXtlLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZigiX2dzaWQiKTtmKCJndG0iKTthLkJhLl9nZW8mJmYoIl9nZW8iKTt2YXIgZz1lLmpvaW4oIiYiKTt6UShkLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOCxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pOwpNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjE4fSxxYjpjfSl9LEZRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtjJiZiLnB1c2goInRhZ19leHA9IitjKTtiLnB1c2goIno9IitEYigpKTtpZighZSl7dmFyIGc9ZCYmU2IoZCwiZ29vZ2xlLiIpJiZkIT09Imdvb2dsZS5jb20iPyJodHRwczovL3d3dy4lL2Fkcy9nYS1hdWRpZW5jZXM/dj0xJnQ9c3Imc2xmX3JkPTEmX3I9NCYiLnJlcGxhY2UoIiUiLGQpOnZvaWQgMDtpZihnKXt2YXIgaD1nK2Iuam9pbigiJiIpO1huKHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6NDcsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9LGgpO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDpoLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6NDd9LHFiOmZ9KX19fSxHUT0KZnVuY3Rpb24oYSxiLGMsZCl7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7elEoImh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0Iiwidj0yJiIrYi5qb2luKCImIikse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOSxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDoiaHR0cHM6Ly9zdGF0cy5nLmRvdWJsZWNsaWNrLm5ldC9nL2NvbGxlY3Q/dj0yJiIrYi5qb2luKCImIikscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOX0scWI6ZH0pfSxIUT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGModil7cS5wdXNoKHYrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW3ZdKSl9dmFyIGQ9Yi54dCxlPWIuQnQsZj1iLkF0LGc9Yi56dCxoPWIuWnIsbD1iLkNzLG49Yi5QcixwPWIuR3Q7aWYoZHx8ZXx8Znx8Zyl7dmFyIHE9CltdO2EuQmEuX25nJiZjKCJfbmciKTthLkJhLm5ncyYmYygibmdzIik7YS5CYS5pYnQmJmMoImlidCIpO2MoInRpZCIpO2MoImNpZCIpO2MoImd0bSIpO2Zvcih2YXIgcj1tKE9GKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZTthLkJhW3VdIT1udWxsJiZjKHUpfXEucHVzaCgiYWlwPTEiKTthLnZlLnVpZCYmcS5wdXNoKCJ1aWQ9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS52ZS51aWQpKTtjKCJkbWEiKTthLkJhLmRtYV9jcHMhPW51bGwmJmMoImRtYV9jcHMiKTthLkJhLmdjcyE9bnVsbCYmYygiZ2NzIik7YygiZ2NkIik7YS5CYS5ucGEhPW51bGwmJmMoIm5wYSIpO2EuQmEuZnJtIT1udWxsJiZjKCJmcm0iKTtkJiZHUShhLHEuc2xpY2UoKSxwLGIucWIpO2UmJkZRKGEscS5zbGljZSgpLHAsaCxsLGIucWIpO2YmJkVRKGEsbixiLnFiKTtnJiZEUShhLG4sYi5xYil9fSxJUT1mdW5jdGlvbigpe3RoaXMuUj0xO3RoaXMuWj17fTt0aGlzLks9LTE7dGhpcy5IPQpuZXcgd2d9O0lRLnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPW5ldyBzUShhLHRoaXMuWixiKSxlPXtldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGY9eVAoYSksZyxoO2YmJnRoaXMuSC5SKGQpfHx0aGlzLmZsdXNoKCk7dmFyIGw9ZiYmdGhpcy5ILmFkZChkKTtpZihsKXtpZih0aGlzLks8MCl7dmFyIG49QSxwPW4uc2V0VGltZW91dCxxO2JrKFpLKGEpKT9KUT8oSlE9ITEscT1LUSk6cT1MUTpxPTVFMzt0aGlzLks9cC5jYWxsKG4sZnVuY3Rpb24oKXtjLmZsdXNoKCl9LHEpfX1lbHNle3ZhciByPXpnKGQsdGhpcy5SKyspLHQ9ci5wYXJhbXMsdT1yLmJvZHk7Zz10O2g9dTtGeSgzLGEuZXZlbnROYW1lKTtDUShkLmJhc2VVcmwsdCx1LGQuTix7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmQuZW5kcG9pbnQsZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTsKdmFyIHY9UShhLEguSi5oZCkseD1RKGEsSC5KLnJnKSx5PVEoYSxILkouTmgpLHo9UShhLEguSi5NaCksQz1PKGEuTSxGLkQudWkpIT09ITEsRD1TdChhLk0pLEk9e3h0OnYsQnQ6eCxBdDp5LHp0OnosWnI6RW0oKSxtdjpDLGx2OkQsQ3M6QW0oKSxxYjplLE06YS5NLFByOkRtKCksR3Q6Q3AoYSl9O0hRKGQsSSl9Zm4uSCYmQXooYS5NLmV2ZW50SWQpO05sKGZ1bmN0aW9uKCl7aWYobCl7dmFyIEc9emcoZCksTj1HLmJvZHk7Zz1HLnBhcmFtcztoPU59cmV0dXJue3RhcmdldElkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQscmVxdWVzdDp7dXJsOmQuYmFzZVVybCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLHBvc3RCb2R5OmgsZW5kcG9pbnQ6ZC5lbmRwb2ludH0scWI6ZSxpc0JhdGNoZWQ6ITF9fSl9O0lRLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7WUsoYSkmJiF4UCgpP3RoaXMuZmEoYSk6dGhpcy5OKGEpfTtJUS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLkguZXZlbnRzLmxlbmd0aCl7dmFyIGE9CkJnKHRoaXMuSCx0aGlzLlIrKyk7Q1EodGhpcy5ILmJhc2VVcmwsYS5wYXJhbXMsYS5ib2R5LHRoaXMuSC5LLHtkZXN0aW5hdGlvbklkOnRoaXMuSC5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDp0aGlzLkguZW5kcG9pbnQsZXZlbnRJZDp0aGlzLkguWixwcmlvcml0eUlkOnRoaXMuSC5mYX0pO3RoaXMuSD1uZXcgd2c7dGhpcy5LPj0wJiYoQS5jbGVhclRpbWVvdXQodGhpcy5LKSx0aGlzLks9LTEpfX07SVEucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1ZSyhhKTtNKDU2OCkmJiFNKDU4NikmJlIoYSxGLkQuQmMpPT09ImEiJiYoYz1jdyhjKSk7aWYoRXcoYykpe3ZhciBkPXN3KGMpO2Q/ZC50aGVuKGZ1bmN0aW9uKGYpe2IuTihhLGYpfSxmdW5jdGlvbigpe2IuTihhKX0pOnRoaXMuTihhKX1lbHNle3ZhciBlPUR3KGMpO3RoaXMuTihhLGUpfX07dmFyIEtRPU5mKDI0LDUwMCksTFE9TmYoNTYsNUUzKSxKUT0hMDt2YXIgTVE9ZnVuY3Rpb24oYSl7dmFyIGI9U3QoYS5NKTtPKGEuTSxGLkQuV2IpPT09ITAmJihiPSExKTtWKGEsSC5KLndkLGIpfTsKdmFyIE5RPWZ1bmN0aW9uKGEsYixjKXtjPT09dm9pZCAwJiYoYz17fSk7aWYoYj09bnVsbClyZXR1cm4gYztpZih0eXBlb2YgYj09PSJvYmplY3QiKWZvcih2YXIgZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtOUShhKyIuIitmLGJbZl0sYyl9ZWxzZSBjW2FdPWI7cmV0dXJuIGN9LE9RPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltlXT0hIVhvKGUpfXJldHVybiBifSxRUT1mdW5jdGlvbihhLGIpe3ZhciBjPVBRLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hWG8oZSl9KTtpZihjLmxlbmd0aCl7dmFyIGQ9T1EoYyk7JG8oYyxmdW5jdGlvbigpe2Zvcih2YXIgZT1PUShjKSxmPVtdLGc9bShjKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTshZFtsXSYmZVtsXSYmZi5wdXNoKGwpO2VbbF0mJgooZFtsXT0hMCl9aWYoZi5sZW5ndGgpe1YoYixILkouR2gsITApO3ZhciBuPWYubWFwKGZ1bmN0aW9uKHApe3JldHVybiBMb1twXX0pLmpvaW4oIi4iKTtuJiZXSyhiLCJnY3V0IixuKTtNUShiKTthKGIpfX0pfX0sUlE9ZnVuY3Rpb24oYSl7UihhLEYuRC5XYykmJiFiayhaSyhhKSkmJlUoYSxGLkQuV2MpfSxTUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsIm5hdnQiLHFkKCkpfSxUUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsImxwYyIsaXIoKSl9LFVRPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9TyhhLk0sRi5ELldiKSxjO2I9PT0hMCYmKGM9IjEiKTtiPT09ITEmJihjPSIwIik7YyYmV0soYSwicmRwIixjKX19LFZRPWZ1bmN0aW9uKGEsYil7aWYoYmsoWksoYikpKXt2YXIgYz1RKGIsSC5KLm1nKTsoYi5ldmVudE5hbWU9PT0icGFnZV92aWV3Inx8YykmJlFRKGEsYil9fSxXUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkmJmEuZXZlbnROYW1lPT09Ri5ELnlmJiYKUShhLEguSi5HaCkpe3ZhciBiPVIoYSxGLkQueGkpO2ImJihXSyhhLCJnY3V0IixiKSxXSyhhLCJzeW4iLDEpKX19LFhRPWZ1bmN0aW9uKGEsYixjKXtpZihhPT09YilyZXR1cm4gV2ooKSYmU2IoYysiLyIsWGooKSsiLyIpPyI3IjoiMSI7aWYoVGIoYSwiLiIrYikpcmV0dXJuIjIiO2lmKFRiKGIsIi4iK2EpKXJldHVybiIzIjt2YXIgZD1hLnNwbGl0KCIuIiksZT1iLnNwbGl0KCIuIiksZj1mdW5jdGlvbihnKXtpZihkLmxlbmd0aDxnfHxlLmxlbmd0aDxnKXJldHVybiExO2Zvcih2YXIgaD0xO2g8PWc7aCsrKWlmKGRbZC5sZW5ndGgtaF0hPT1lW2UubGVuZ3RoLWhdKXJldHVybiExO3JldHVybiEwfTtyZXR1cm4gZigzKT8iNiI6ZigyKT8iNSI6IjQifSxZUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPWVrKGEuTSk7aWYoYil7dmFyIGM9WWooYiwiLyIpLGQ9UmooYyksZT1OaihkLCJob3N0IiksZj1OaihBLmxvY2F0aW9uLCJob3N0Iik7aWYoZSYmZil7dmFyIGc9TmooZCwKInBhdGgiKTthLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEse3NzdGQ6WFEoZSxmLGcpfSl9fX19LFpRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmVihhLEguSi5KYSwhMSl9LCRRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmKFEoYSxILkouSmEpJiZXSyhhLCJzcCIsMSksUShhLEguSi5JcSkmJldLKGEsInN5biIsMSksUShhLEguSi5QYykmJihXSyhhLCJlbV9ldmVudCIsMSksV0soYSwic3AiLDEpKSl9LGFSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9JGsoMjUpO2ImJldLKGEsInRmdCIsTnVtYmVyKGIpKX19LGJSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZSl7dmFyIGY9TlEoRi5ELkFjLGUpO0diKGYsZnVuY3Rpb24oZyxoKXtVKGEsZyxoKX0pfWlmKGJrKFpLKGEpKSl7dmFyIGM9ZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSk/MTowO1dLKGEsInVkZSIsYyk7dmFyIGQ9TyhhLk0sRi5ELkFjKTtkIT09dm9pZCAwPyhadihkKSxiKGQpLFUoYSxGLkQuQmMsImMiKSk6CmIoUShhLEguSi5ZYSkpO1YoYSxILkouWWEpfX0sY1I9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1WTSgpO2ImJldLKGEsInVzX3ByaXZhY3kiLGIpO3ZhciBjPUx0KCk7YyYmV0soYSwiZ2RwciIsYyk7dmFyIGQ9S3QoKTtkJiZXSyhhLCJnZHByX2NvbnNlbnQiLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZXSyhhLCJncHAiLGUpO3ZhciBmPWtGLkg7ZiYmV0soYSwiZ3BwX3NpZCIsZil9fSxkUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJk8oYS5NLEYuRC5tYikmJldLKGEsImFkciIsMSl9LGVSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9RG0oKTtiJiZXSyhhLCJnY3N1YiIsYil9fSxmUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe08oYS5NLEYuRC5TYyx2b2lkIDAsNCk9PT0hMSYmV0soYSwibmdzIiwxKTtBbSgpJiZXSyhhLCJnYV9yZCIsMSk7VksoKXx8V0soYSwibmdzdCIsMSk7dmFyIGI9RW0oKTtiJiZXSyhhLCJldGxkIixiKX19LGdSPQpmdW5jdGlvbihhKXt9LGhSPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmRWwoKSYmV0soYSwicm5kIixRTSgpKX0sUFE9W0YuRC5rYSxGLkQubWEsRi5ELlhhXTsKdmFyIGlSPWZ1bmN0aW9uKGEsYil7dmFyIGM7YTp7aWYoIVEoYSxILkouRmMpKXt2YXIgZD1UUChhKTtpZihkKXtpZihSUChkLGEpKXtjPWQ7YnJlYWsgYX1QKDI1KTthLmlzQWJvcnRlZD0hMH19Yz12b2lkIDB9dmFyIGU9YztyZXR1cm57Y2xpZW50SWQ6RVAoYSxiKSx6YjplfX0salI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1RbyhPKGEuTSxGLkQuS2IpKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpKWY/Q1AoYSxmLDEpOihQKDEyNyksYS5pc0Fib3J0ZWQ9ITApO2Vsc2V7dmFyIGc9Zj8xOjg7VihhLEguSi5IaCwhMSk7Znx8KGY9RlAoYSksZz0zKTtmfHwoZj1iLGc9NSk7aWYoIWYpe3ZhciBoPVhvKEYuRC5yYSksbD16UCgpO2Y9IWwuZnJvbV9jb29raWV8fGg/bC52aWQ6dm9pZCAwO2c9Nn1mP2Y9IiIrZjooZj1BdigpLGc9NyxWKGEsSC5KLm5nLCEwKSxWKGEsSC5KLkhoLCEwKSk7Q1AoYSxmLGcpfVIoYSxGLkQuS2IpO2lmKCFRKGEsSC5KLkZjKSl7dmFyIG49ClEoYSxILkouRWIpLHA9TWF0aC5mbG9vcihuLzFFMykscT12b2lkIDA7UShhLEguSi5IaCl8fChxPVNQKGEpfHxjKTt2YXIgcj1JYihPKGEuTSxGLkQueWgsMzApKTtyPU1hdGgubWluKDQ3NSxyKTtyPU1hdGgubWF4KDUscik7dmFyIHQ9SWIoTyhhLk0sRi5ELlBpLDFFNCkpLHU9TFAocSk7VihhLEguSi5uZywhMSk7VihhLEguSi5UZSwhMSk7VihhLEguSi5wZywwKTt1JiZ1LmomJlYoYSxILkoucGcsTWF0aC5tYXgoMCx1LmotTWF0aC5tYXgoMCxwLXUudCkpKTt2YXIgdj0hMTtpZighdSl7VihhLEguSi5uZywhMCk7dj0hMDt2YXIgeD17fTt1PSh4LnM9U3RyaW5nKHApLHgubz0xLHguZz0hMSx4LnQ9cCx4Lmw9ITEseC5oPXZvaWQgMCx4KX1wPnUudCtyKjYwJiYodj0hMCx1LnM9U3RyaW5nKHApLHUubysrLHUuZz0hMSx1Lmg9dm9pZCAwKTtpZih2KVYoYSxILkouVGUsITApLGQubHMoYSk7ZWxzZSBpZihkLlhyKCk+dHx8YS5ldmVudE5hbWU9PT1GLkQuc2MpdS5nPSEwO1EoYSxILkoubGcpPwpPKGEuTSxGLkQuZmIpP3UubD0hMDp1Lmw9ITE6dS5sPSExO3ZhciB5PXUuaDtpZihRKGEsSC5KLmxnKXx8YmsoWksoYSkpKXt2YXIgej1PKGEuTSxGLkQub2gpLEM9ej8xOjg7enx8KHo9eSxDPTQpO3p8fCh6PXp2KCksQz03KTt2YXIgRD16LnRvU3RyaW5nKCksST1DLEc9UShhLEguSi50bCk7aWYoRz09PXZvaWQgMHx8STw9RylVKGEsRi5ELm9oLEQpLFYoYSxILkoudGwsSSl9ZT8oYS5jb3B5VG9IaXREYXRhKEYuRC54Yyx1LnMpLGEuY29weVRvSGl0RGF0YShGLkQuQWgsdS5vKSxhLmNvcHlUb0hpdERhdGEoRi5ELnpoLHUuZz8xOjApKTooVShhLEYuRC54Yyx1LnMpLFUoYSxGLkQuQWgsdS5vKSxVKGEsRi5ELnpoLHUuZz8xOjApKTtWKGEsSC5KLnJtLHUubD8xOjApO1dqKCkmJlYoYSxILkoub2csdS5kfHxjYygpKX19Owp2YXIga1I9ZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmRleE9mKCI/IiksYz1iPT09LTE/YTphLnN1YnN0cmluZygwLGIpLGQ9S2ooYyk7ZCYmKGM9ZCk7cmV0dXJuIGI9PT0tMT9jOiIiK2MrYS5zdWJzdHJpbmcoYil9LGxSPWZ1bmN0aW9uKGEpe2lmKCFPKGEuTSxGLkQuWWMpfHwhTyhhLk0sRi5ELlpjKSl7dmFyIGI9YS5jb3B5VG9IaXREYXRhLGM9Ri5ELnphLGQ9IiIsZT1CLmxvY2F0aW9uO2lmKGUpe3ZhciBmPWUucGF0aG5hbWV8fCIiO2YuY2hhckF0KDApIT09Ii8iJiYoZj0iLyIrZik7dmFyIGc9ZS5zZWFyY2h8fCIiO2lmKGdbMF09PT0iPyIpZm9yKHZhciBoPWcuc3Vic3RyaW5nKDEpLnNwbGl0KCImIiksbD0wO2w8aC5sZW5ndGg7KytsKXt2YXIgbj1oW2xdLnNwbGl0KCI9Iik7biYmbi5sZW5ndGg9PT0yJiZuWzBdPT09IndicmFpZCImJihnPWcucmVwbGFjZSgvKFs/Jl0pd2JyYWlkPVteJl0rLywiJDF3YnJhaWQ9IiskYihuWzFdKSkpfWQ9ZS5wcm90b2NvbCsiLy8iK2UuaG9zdG5hbWUrCmYrZ31iLmNhbGwoYSxjLGQsa1IpO3ZhciBwPWEuY29weVRvSGl0RGF0YSxxPUYuRC5VYSxyPXVBKCJndG0uZ3RhZ1JlZmVycmVyLiIrYS50YXJnZXQuZGVzdGluYXRpb25JZCksdD1CLnJlZmVycmVyO3AuY2FsbChhLHEsKHI/IiIrcjp0KXx8dm9pZCAwLGtSKTthLmNvcHlUb0hpdERhdGEoRi5ELk1iLEIudGl0bGUpO2EuY29weVRvSGl0RGF0YShGLkQudGIsKEhjLmxhbmd1YWdlfHwiIikudG9Mb3dlckNhc2UoKSk7dmFyIHU9cUkoKTthLmNvcHlUb0hpdERhdGEoRi5ELmJkLHUud2lkdGgrIngiK3UuaGVpZ2h0KTthLmNvcHlUb0hpdERhdGEoRi5ELllmLHZvaWQgMCxrUik7VE0oKSYmYS5jb3B5VG9IaXREYXRhKEYuRC5QZCwiMSIpfX07dmFyIG5SPWZ1bmN0aW9uKGEpe3ZhciBiPXhDKGEuTSksYz1mdW5jdGlvbihkLGUpe21SW2RdJiZVKGEsZCxlKX07Q2QoYltGLkQuS2ZdKT9HYihiW0YuRC5LZl0sZnVuY3Rpb24oZCxlKXtjKChGLkQuS2YrIl8iK2QpLnRvTG93ZXJDYXNlKCksZSl9KTpHYihiLGMpfSxvUj17fSxtUj0ob1JbRi5ELkdmXT0xLG9SW0YuRC5IZl09MSxvUltGLkQuSWZdPTEsb1JbRi5ELkpmXT0xLG9SW0YuRC5MZl09MSxvUltGLkQuTWZdPTEsb1IpO3ZhciBwUj1mdW5jdGlvbihhKXtpZighYmsoWksoYSkpJiZRKGEsSC5KLm1nKSYmWG8oRi5ELmthKSYmZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSl7dmFyIGI9TEsoYSksYz1IcihiLnByZWZpeCksZD1ScyhjKTtVKGEsRi5ELkJlLGQuRWcpO1UoYSxGLkQuRGUsZC5XaCk7VShhLEYuRC5DZSxkLlVoKX19O3ZhciBxUj1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpO2ImJklQKEouVS54bik7UShhLEguSi5QYykmJklQKEouVS5Oayk7dmFyIGM9eWsoemsoKSk7KGJ8fE1rKGMpfHxjJiZjLnBhcmVudCYmYy5jb250ZXh0JiZjLmNvbnRleHQuc291cmNlPT09NSkmJklQKEouVS5mbik7UShhLEguSi5jaikmJklQKEouVS5JbSk7UShhLEguSi5iaikmJklQKEouVS5IbSl9O3ZhciByUj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLlZpKXx8bmV3IGVyO1EoYSxILkouYmopJiZRKGEsSC5KLmNqKSYmZnIoYiwyKTtWKGEsSC5KLlZpLGIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O3ZhciB1Uj1mdW5jdGlvbihhKXtpZih0Ui5Nci5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKS5pbmRleE9mKGEuZXZlbnROYW1lKT49MClhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPVhLKGEpO2ImJmIuYmxhY2tsaXN0ZWQmJihhLmlzQWJvcnRlZD0hMCl9fSx0Uj17TXI6TGYoMzEpfTtmdW5jdGlvbiB2UihhKXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4hIWMmJmMuY29udmVyc2lvbn07VihhLEguSi5tZyxiKFhLKGEpKSk7UShhLEguSi5uZykmJlYoYSxILkouWW0sYihYSyhhLCJmaXJzdF92aXNpdCIpKSk7UShhLEguSi5UZSkmJlYoYSxILkouYm4sYihYSyhhLCJzZXNzaW9uX3N0YXJ0IikpKX07dmFyIHdSPWZ1bmN0aW9uKGEpe0ZvLmhhc093blByb3BlcnR5KGEuZXZlbnROYW1lKSYmKFYoYSxILkouV20sITApLGEuY29weVRvSGl0RGF0YShGLkQuSGEpLGEuY29weVRvSGl0RGF0YShGLkQuZWIpKX07dmFyIHhSPWZ1bmN0aW9uKGEpe1EoYSxILkouYmUpP1YoYSxILkoubGcsITEpOmRJKGEsImNjZF9hZGRfZWNfc3RpdGNoaW5nIiwhMSkmJlYoYSxILkoubGcsITApfTt2YXIgeVI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5wZyk7Yj1ifHwwO3ZhciBjPSEhUShhLEguSi5zYSksZD1iPT09MHx8YztWKGEsSC5KLmVqLGQpO2QmJlYoYSxILkoucGcsNjApfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBEUj1mdW5jdGlvbihhKXtpZihDUihhLnRhcmdldC5kZXN0aW5hdGlvbklkKSlQKDI4KSxhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPXhrKCk7aWYoYiYmQXJyYXkuaXNBcnJheShiLmRlc3RpbmF0aW9ucykpZm9yKHZhciBjPTA7YzxiLmRlc3RpbmF0aW9ucy5sZW5ndGg7YysrKWlmKENSKGIuZGVzdGluYXRpb25zW2NdKSl7UCgxMjUpO2EuaXNBYm9ydGVkPSEwO2JyZWFrfX19O3ZhciBFUj1mdW5jdGlvbihhKXt2YXIgYj1CLmxvY2F0aW9uLnByb3RvY29sO2IhPT0iaHR0cDoiJiZiIT09Imh0dHBzOiImJihQKDI5KSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBGUj1mdW5jdGlvbihhKXtIYyYmSGMubG9hZFB1cnBvc2U9PT0icHJldmlldyImJihQKDMwKSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBHUj1mdW5jdGlvbihhLGIpe2IuVGomJihWKGEsSC5KLnNhLCEwKSxiLlRqPSExLFdqKCkmJlYoYSxILkoub2csY2MoKSkpfTt2YXIgSFI9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjLGQpe0JvW2NdfHxkPT09dm9pZCAwfHxVKGEsYyxkKX1NKDU1MCkmJkdiKGEuTS5XYSxiKTtHYihhLk0uaGIsYik7R2IoYS5NLkVhLGIpfTt2YXIgSVI9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWU9PT1GLkQud2EmJihPKGEuTSxGLkQuVGQsITApPyhhLk0uRWFbRi5ELk9hXSYmKE0oNTUwKSYmKGEuTS5XYVtGLkQuT2FdPWEuTS5FYVtGLkQuT2FdKSxhLk0uaGJbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSxhLk0uRWFbRi5ELk9hXT12b2lkIDAsVShhLEYuRC5PYSkpLGEuZXZlbnROYW1lPUYuRC5zYyk6YS5pc0Fib3J0ZWQ9ITApfTsKdmFyIEpSPWZ1bmN0aW9uKGEpe2lmKE0oMTMyKSl7dmFyIGI9WksoYSk7aWYoYmsoYikpaWYoY2soYikpY2soWksoYSkpJiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEseyIzcGQiOiIxIn0pO2Vsc2UgaWYoIShOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpKSYmWG8oRi5ELnJhKSl7VihhLEguSi5kbiwhMCk7YmsoWksoYSkpJiZXSyhhLCJzd19leHAiLDEpO2E6e2lmKCFNKDEzMil8fCFiayhaSyhhKSl8fGNrKFpLKGEpKSlicmVhayBhO2I6e3ZhciBjPXtvdDpZaihlayhhLk0pLCIvXy9zZXJ2aWNlX3dvcmtlciIpfSxkO2Q9KGM9PT12b2lkIDA/e306Yykub3Q7dmFyIGU9aUwoZCk7aWYoZT09PW51bGx8fCFiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpfHxqTChlLm9yaWdpbikpYnJlYWsgYjsKaWYoIUljKCkpe2dMKCkuSyh2b2lkIDAsdm9pZCAwLDYpO2JyZWFrIGJ9dmFyIGY9bmV3IGtMKGUpO29tKGptLmJhLk9oLHt9KVtlLm9yaWdpbl09Zjt9fX19fTt2YXIgTFI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5PbCk7TyhhLk0sRi5ELnhoKSYmKFUoYSxGLkQueGgsITApLGJrKFpLKGEpKXx8S1IoYSkpfSxLUj1mdW5jdGlvbihhKXt2YXIgYj1GLkQuYmQsYztjfHwoYz1mdW5jdGlvbigpe30pO1IoYSxiKSE9PXZvaWQgMCYmVShhLGIsYyhSKGEsYikpKX07dmFyIE1SPSJnY2xpZCBkY2xpZCBnY2xzcmMgd2JyYWlkIGdicmFpZCBnYWRfc291cmNlIGdhZF9jYW1wYWlnbmlkIHV0bV9zb3VyY2UgdXRtX21lZGl1bSB1dG1fY2FtcGFpZ24gdXRtX3Rlcm0gdXRtX2NvbnRlbnQgdXRtX2lkIi5zcGxpdCgiICIpO2Z1bmN0aW9uIE5SKCl7dmFyIGE9Qi5sb2NhdGlvbixiLGM9YT09bnVsbD92b2lkIDA6KGI9YS5zZWFyY2gpPT1udWxsP3ZvaWQgMDpiLnJlcGxhY2UoIj8iLCIiKSxkO2lmKGMpe2Zvcih2YXIgZT1bXSxmPUpqKGMsITApLGc9bShNUiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1mW2xdO2lmKG4pZm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07cSE9PXZvaWQgMCYmZS5wdXNoKHtuYW1lOmwsdmFsdWU6cX0pfX1kPWV9ZWxzZSBkPVtdO3JldHVybiBkfTt2YXIgT1I9ZnVuY3Rpb24oYSl7dmFyIGI9TSgyNjYpLGM9TSgyNjcpO2lmKGJ8fGMpe3ZhciBkPVIoYSxGLkQuemEpO2lmKGQmJmQuaW5kZXhPZigiPyIpPT09LTEpe3ZhciBlPU5SKCk7aWYoZS5sZW5ndGghPT0wJiYoYiYmSVAoSi5VLkdtKSxjKSl7SVAoSi5VLkZtKTt2YXIgZj1lLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gZy5uYW1lKyI9IitnLnZhbHVlfSkuam9pbigiJiIpO1UoYSxGLkQuemEsZCsiPyIrZil9fX19O3ZhciBQUj1bRi5ELnJhLEYuRC5rYV0sUVI9W0YuRC5yYSxGLkQua2EsRi5ELm1hXTsKZnVuY3Rpb24gUlIoYSl7dmFyIGIsYz1NKDUwNikmJiFkSShhLCJjY2RfZ2FfYWRzX2lkc19vcHRfb3V0IiwhMSksZD0hIWRJKGEsImdvb2dsZV9uZyIsITEpLGU9WG8oYz9kP1FSOmZwOlBSKSxmO2Y9ZEkoYSxGLkQuVWYsTyhhLk0sRi5ELlVmKSl8fCEhZEkoYSwiZ29vZ2xlX25nIiwhMSk7Yj17aGY6YyxFczpkLEdvOmUsZmY6ZixMZzohIWRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSksYmk6QW0oKSxHajohVksoKSxGczpiayhaSyhhKSksRHM6ISFRKGEsSC5KLmJlKSxHczohIVEoYSxILkouVGUpLHVzOiEhTyhhLk0sRi5ELk5sKSxLczohIVEoYSxILkouZWopLHhnOk8oYS5NLEYuRC5TYyksbnI6TyhhLk0sRi5ELlNjLHZvaWQgMCw0KSxIczohIVEoYSxILkouRmMpfTtWKGEsSC5KLmNqLGIuZmYpO1YoYSxILkouYmosU1IoYikpO2IuaGYmJiFiLmZmJiZiLkxnJiZTUihiKSYmVShhLCJfJmlidCIsIjEiKTtTUihiKSYmYi5HbyYmKGIuaGY/Yi54ZyE9PSExfHxiLkxnOjEpJiZWKGEsCkguSi5ybiwhMCk7Yi5FcyYmIWIuYmkmJlUoYSxGLkQuTGUsMSk7KGIuaGY/Yi54ZzpiLm5yKT09PSExJiZVKGEsIl8mbmdzIiwiMSIpO1YoYSxILkouaGQsVFIoYikmJihiLkdzfHxiLnVzKSk7VihhLEguSi5yZyxUUihiKSYmYi5LcyYmIWIuYmkpfWZ1bmN0aW9uIFNSKGEpe3JldHVybiBhLmhmPyhhLkxnfHxhLmZmKSYmIWEuYmkmJiFhLkdqOmEuZmYmJmEueGchPT0hMSYmIWEuR2omJiFhLmJpfWZ1bmN0aW9uIFRSKGEpe2lmKGEuSHMpcmV0dXJuITE7aWYoYS5oZil7aWYoIWEuZmYmJiFhLkxnKXJldHVybiExfWVsc2UgaWYoIWEuZmYpcmV0dXJuITE7cmV0dXJuIGEuRnN8fGEuRHN8fGEuR2p8fChhLmhmP2EueGc9PT0hMSYmIWEuTGc6YS54Zz09PSExKXx8IWEuR28/ITE6ITB9O3ZhciBVUj1mdW5jdGlvbihhKXtzTCgpJiZVKGEsRi5ELkZlLCIxIil9O3ZhciBWUj1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4OlN0cmluZyhPKGEuTSxGLkQubmIsIiIpKSxwYXRoOlN0cmluZyhPKGEuTSxGLkQudmMsIi8iKSksZmxhZ3M6U3RyaW5nKE8oYS5NLEYuRC5UYiwiIikpLGRvbWFpbjpTdHJpbmcoTyhhLk0sRi5ELkxiLCJhdXRvIikpLHBkOk51bWJlcihPKGEuTSxGLkQuQ2IsNjMwNzJFMykpfTtWKGEsSC5KLkdhLGIpfTt2YXIgV1I9ZnVuY3Rpb24oYSl7aWYoTSg0MzUpfHxNKDU1Mykpe3ZhciBiPURtKCk7YiYmVihhLEguSi5BcSxiKX19O3ZhciBZUj1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELlJpKTtmb3IodmFyIGI9TyhhLk0sRi5ELlJsKXx8W10sYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2lmKGQucnVsZV9yZXN1bHQpe2EuY29weVRvSGl0RGF0YShGLkQuUmksZC50cmFmZmljX3R5cGUpO0lQKEouVS5Fbik7YnJlYWt9fX07dmFyIFpSPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkmJmEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1PKGEuTSxGLkQudWMpIT09ITE7aWYoYil7dmFyIGM9TEsoYSk7Yy5wZCYmKGMucGQ9TWF0aC5taW4oYy5wZCw3Nzc2RTMpKTtQSyh7VG46YixtbzpPbyhPKGEuTSxGLkQuRGIpKSxRbzohIU8oYS5NLEYuRC56YyksVW46Y30pfX19O3ZhciAkUj1mdW5jdGlvbihhKXtWKGEsSC5KLk1oLCExKTtWKGEsSC5KLk5oLCExKTtpZighRG0oKSYmV2ooKSYmIWJrKFpLKGEpKSYmIVEoYSxILkouYmUpJiZRKGEsSC5KLmVqKSl7dmFyIGI9UShhLEguSi5yZyk7UShhLEguSi5vZykmJihiP1YoYSxILkouTmgsITApOlYoYSxILkouTWgsITApKX19O3ZhciBhUz1mdW5jdGlvbihhKXtPKGEuTSxGLkQuemMpJiYoWG8oRi5ELnJhKXx8TyhhLk0sRi5ELktiKXx8VShhLEYuRC5abSwhMCkpO3ZhciBiO3ZhciBjO2M9Yz09PXZvaWQgMD8zOmM7dmFyIGQ9QS5sb2NhdGlvbi5ocmVmO2lmKGQpe3ZhciBlPVJqKGQpLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZj1JaihlLCJfZ2wiLCExLCEwKXx8IiI7Yj1mP1ZxKGYsYykhPT12b2lkIDA6ITF9ZWxzZSBiPSExO2ImJmJrKFpLKGEpKSYmV0soYSwiZ2x2IiwxKTtpZihhLmV2ZW50TmFtZSE9PUYuRC53YSlyZXR1cm57fTtPKGEuTSxGLkQuemMpJiZBcyhbImF3IiwiZGMiXSk7Q3MoWyJhdyIsImRjIl0pO3ZhciBnPSRQKGEpLGg9WlAoYSk7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aD9nOmh9O3ZhciBiUz1mdW5jdGlvbihhKXt2YXIgYj0hMDtiPWI9PT12b2lkIDA/ITE6YjtpZihNKDQyNSkmJiEocGwoKXx8YiYmUShhLEguSi5kail8fGEuZXZlbnROYW1lIT09Ri5ELndhfHxRKGEsSC5KLkZjKSkpe3ZhciBjPXt9LGQ9e30sZT17ZXZlbnRNZXRhZGF0YTpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEuTS5ldmVudE1ldGFkYXRhLChjW0guSi5GY109ITAsYyksYj97fTooZFtILkouRGNdPVguVi5LYSxkKSksbm9HdG1FdmVudDohMH0sZj1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLCJzdHJ1Y3R1cmVkX2RhdGEiLGEuTS5FYSk7bUQoZixhLk0uZXZlbnRJZCxlKX19Owp2YXIgZFM9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fGNTLnRlc3QoYSl8fERvLmhhc093blByb3BlcnR5KGEpfSxjUz0vXihffGdhX3xnb29nbGVffGd0YWdcLnxmaXJlYmFzZV8pLiokLyxlUz1mdW5jdGlvbihhKXt0aGlzLnlhPWE7dGhpcy5IPXRoaXMuemI9dGhpcy5jbGllbnRJZD12b2lkIDA7dGhpcy5qYT10aGlzLlI9ITE7dGhpcy5MYT0wO3RoaXMuTj0hMTt0aGlzLlo9e1RqOiExfTt0aGlzLmZhPW5ldyBJUTt0aGlzLks9bmV3IEhQfTtrPWVTLnByb3RvdHlwZTtrLlpzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLGU9YkModGhpcy55YSk7aWYoZSlpZihjLmV2ZW50TWV0YWRhdGFbSC5KLmFlXSYmYS5jaGFyQXQoMCk9PT0iXyIpYy5vbkZhaWx1cmUoKTtlbHNle2EhPT1GLkQud2EmJmEhPT1GLkQuSmImJmRTKGEpJiZQKDU4KTt2YXIgZj1uZXcgYUkoZSxhLGMpO1YoZixILkouRWIsYik7dmFyIGc9W0YuRC5yYV0saD1iayhaSyhmKSk7VihmLEguSi5kaixoKTtpZihkSShmLEYuRC5VZiwKTyhmLk0sRi5ELlVmKSl8fGgpZy5wdXNoKEYuRC5rYSksZy5wdXNoKEYuRC5tYSk7Rk0uZmEoZnVuY3Rpb24oKXticChmdW5jdGlvbigpe2QuYnQoZil9LGcpfSl9ZWxzZSBjLm9uRmFpbHVyZSgpfTtrLmJ0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e0hNKGEpO2lmKGEuaXNBYm9ydGVkKXt0YigpO3JldHVybn1KTShhKTtEUihhKTt1UihhKTtFUihhKTtGUihhKTtJTShhKTt2YXIgYz17fTtlUShhLGMpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5IPWE7dmFyIGQ9Yy51cjtjLkhyPT09MCYmSVAoSi5VLm5sKTtkPT09MCYmSVAoSi5VLkxrKTtaTShhKTtWKGEsSC5KLnRnLGNvLmlhLnhkKTtWUihhKTtIUihhKTt0aGlzLkxxKGEpO3RoaXMuSy5LdChhKTtVKGEsRi5ELnppLGFsKDgsTkYpKTt4UihhKTtwTihhKTtaUihhKTtNUShhKTt0aGlzLkFvKGFTKGEpKTtiUyhhKTt2YXIgZT1hLmV2ZW50TmFtZT09PUYuRC53YTtlJiYodGhpcy5OPQohMCk7SVIoYSk7ZSYmIWEuaXNBYm9ydGVkJiZ0aGlzLkxhKys+MCYmSVAoSi5VLmhuKTtVTChhKTtqUihhLHRoaXMuY2xpZW50SWQsdGhpcy56Yix0aGlzLkssIXRoaXMuamEpO25SKGEpO2xSKGEpO09SKGEpO1hMKGEpO0dSKGEsdGhpcy5aKTt5UihhKTt2UihhKTt3UihhKTtZUihhKTthUShhKTtnUShhKTt3TShhKTtoUihhKTtZUShhKTtnUihhKTtmUihhKTtlUihhKTtkUihhKTtjUihhKTthUihhKTskUShhKTtXUShhKTtVUShhKTtUUShhKTtTUShhKTtiUShhKTtjUShhKTtPKGEuTSxGLkQueGgpJiYhYmsoWksoYSkpfHxHTShhKTtVUihhKTtXUihhKTtpTihhKTtWTChhKTtTTChhKTtsTihhKTtoTihhKTtYTShhLCExKTtzUihhKTtSUihhKTskUihhKTtOTShhKTtyUihhKTtwUihhKTtiUihhKTtaUShhKTtSUShhKTtxUihhKTshdGhpcy5OJiZRKGEsSC5KLlBjKSYmSVAoSi5VLnNsKTtKUChhKTtpZihNKDU3NSkpe2lmKGEuaXNBYm9ydGVkKXtpZighUShhLEguSi5TbykpYS5NLm9uRmFpbHVyZSgpOwp0YigpO3JldHVybn1pZihRKGEsSC5KLkphKSl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufX1lbHNlIGlmKFEoYSxILkouSmEpfHxhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuQW8oaVIoYSx0aGlzLmNsaWVudElkKSk7dGhpcy5qYT0hMDt0aGlzLkh0KGEpO0pSKGEpO1ZRKGZ1bmN0aW9uKGYpe2IuTW4oZil9LGEpO3RoaXMuSy5xaygpO0xSKGEpO2dOKGEpO1dMKGEpO1lNKGEpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5NbihhKTthLk0ub25TdWNjZXNzKCl9Y2F0Y2goZil7YS5NLm9uRmFpbHVyZSgpfXRiKCl9O2suTW49ZnVuY3Rpb24oYSl7dGhpcy5mYS5hZGQoYSl9O2suQW89ZnVuY3Rpb24oYSl7dmFyIGI9YS5jbGllbnRJZCxjPWEuemI7YiYmYyYmKHRoaXMuY2xpZW50SWQ9Yix0aGlzLnpiPWMpfTtrLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5mYS5mbHVzaCgpfTtrLkh0PWZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzO2lmKCF0aGlzLlIpe3ZhciBjPVhvKEYuRC5tYSksZD1YbyhGLkQucmEpOyRvKFtGLkQubWEsRi5ELnJhLEYuRC5rYV0sZnVuY3Rpb24oZSl7dmFyIGY7Zj0oZT09PXZvaWQgMD97fTplKS5jb25zZW50RXZlbnRJZDt2YXIgZz1YbyhGLkQubWEpLGg9WG8oRi5ELnJhKSxsPSExLG49e30scD17fTtpZihkIT09aCYmYi5IJiZiLnpiJiZiLmNsaWVudElkKXt2YXIgcT1iLmNsaWVudElkLHI7dmFyIHQ9TFAoYi56Yik7cj10P3QuaDp2b2lkIDA7aWYoaCl7dmFyIHU9RlAoYi5IKTtpZih1KXtiLmNsaWVudElkPXU7dmFyIHY9U1AoYi5IKTt2JiYoYi56Yj1QUCh2LGIuemIsYi5IKSl9ZWxzZSBEUChiLmNsaWVudElkLGIuSCksQVAoYi5jbGllbnRJZCwhMCk7UlAoYi56YixiLkgpO2w9ITA7bltGLkQuTmxdPXE7ciYmKG5bRi5ELmJxXT1yKX1lbHNlIGIuemI9dm9pZCAwLGIuY2xpZW50SWQ9dm9pZCAwLEEuZ2FHbG9iYWw9e319ZyYmIWMmJihsPSEwLHBbSC5KLkdoXT0hMCxuW0YuRC54aV09CkxvW0YuRC5tYV0pO2lmKGwpe3ZhciB4PXNDKGIueWEsRi5ELnlmLG4pO21EKHgsZiE9bnVsbD9mOmEuTS5ldmVudElkLHtldmVudE1ldGFkYXRhOnB9KX1kPWg7Yz1nO2IuWi5Uaj0hMH0pO3RoaXMuUj0hMH19O2suTHE9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWUhPT1GLkQuSmImJnRoaXMuSy5LcShhKX07dmFyIGdTPWZ1bmN0aW9uKGEpe2lmKCFmUyhhKSl7dmFyIGI9ITEsYz1mdW5jdGlvbigpeyFiJiZmUyhhKSYmKGI9ITAsYWQoQiwidmlzaWJpbGl0eWNoYW5nZSIsYyksYWQoQiwicHJlcmVuZGVyaW5nY2hhbmdlIixjKSxQKDU1KSl9OyRjKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpOyRjKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyk7UCg1NCl9fSxmUz1mdW5jdGlvbihhKXtpZigicHJlcmVuZGVyaW5nImluIEI/Qi5wcmVyZW5kZXJpbmc6Qi52aXNpYmlsaXR5U3RhdGU9PT0icHJlcmVuZGVyIilyZXR1cm4hMTthKCk7cmV0dXJuITB9O2Z1bmN0aW9uIGhTKGEpe2dTKGZ1bmN0aW9uKCl7dmFyIGI9YkMoYSk7aWYoYil7dmFyIGM9aVMoYiksZD1jby5pYS54ZCxlPVlDKCksZj1iQyhhLCEwKTtmJiZlLkgucmVnaXN0ZXIoZixjLGQsdm9pZCAwKX19KTt9ZnVuY3Rpb24gaVMoYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O3ZhciBjPW5ldyBlUyhhLmlkKSxkPWEucHJlZml4PT09Ik1DIjtiPWZ1bmN0aW9uKGUsZixnLGgpe2QmJihoLmV2ZW50TWV0YWRhdGFbSC5KLmJlXT0hMCk7Yy5acyhmLGcsaCl9O2pTKGEsYyk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGpTKGEsYil7dmFyIGM9Yi5LO2MuaHQoZnVuY3Rpb24oKXtaayg5LCEwKTtZQygpLmZsdXNoKCk7aWYoYy5ZaCgpPj0xRTMmJmtkKCkpe3ZhciBkPXt9LGU9e2V2ZW50SWQ6cmooKSxldmVudE1ldGFkYXRhOihkW0guSi5La109ITAsZCksZGVmZXJyYWJsZTohMH07WkMoRi5ELnlmLHt9LGEuaWQsZSl9Yi5mbHVzaCgpO2MuQ28oZnVuY3Rpb24oKXtaayg5LCExKTtjLkNvKCl9KX0pO312YXIga1M9Si5VLnFsLGxTPUouVS5ybDtmdW5jdGlvbiBtUyhhLGIpe3ZhciBjPXRrKCk7YyYmYy5pbmRleE9mKGIpPi0xJiYoYVtILkouQ2NdPSEwKX1mdW5jdGlvbiBvUyhhLGIsYyl7dmFyIGQ9dGhpczt9b1MuUD0iaW50ZXJuYWwuZ3RhZ0NvbmZpZyI7ZnVuY3Rpb24gcFMoYSxiLGMsZCl7dmFyIGU9dGhpczt9cFMuUD0iaW50ZXJuYWwuZ3RhZ0Rlc3RpbmF0aW9uQ29uZmlnIjsKZnVuY3Rpb24gclMoYSxiKXt9CnJTLnB1YmxpY05hbWU9Imd0YWdTZXQiO2Z1bmN0aW9uIHNTKCl7dmFyIGE9e307cmV0dXJuIGF9O2Z1bmN0aW9uIHRTKGEpe310Uy5QPSJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciI7ZnVuY3Rpb24gdVMoYSxiKXt9dVMucHVibGljTmFtZT0iaW5qZWN0SGlkZGVuSWZyYW1lIjtmdW5jdGlvbiB2UyhhLGIsYyxkLGUpe312Uy5QPSJpbnRlcm5hbC5pbmplY3RIdG1sIjt2YXIgQVM9e2RsOjEsaWQ6MX07CmZ1bmN0aW9uIEJTKGEsYixjLGQpe31CUy5wdWJsaWNOYW1lPSJpbmplY3RTY3JpcHQiO2Z1bmN0aW9uIENTKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI1Il07cmV0dXJuIGJ9Q1MuUD0iaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiO2Z1bmN0aW9uIERTKGEpe3ZhciBiPSEwO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPWEsZD1UZChiLHRoaXMuVCksZT1ZQygpLGY9YkMoYywhMCk7ZiYmVEMoZS5ILGYsZCk7fVVTLlA9ImludGVybmFsLm1lcmdlUmVtb3RlQ29uZmlnIjtmdW5jdGlvbiBWUyhhLGIsYyl7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9W107cmV0dXJuIFVkKGQpfVZTLlA9ImludGVybmFsLnBhcnNlQ29va2llVmFsdWVzRnJvbVN0cmluZyI7ZnVuY3Rpb24gV1MoYSl7dmFyIGI9dm9pZCAwO2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuO2EmJlNiKGEsIi8vIikmJihhPUIubG9jYXRpb24ucHJvdG9jb2wrYSk7aWYodHlwZW9mIFVSTD09PSJmdW5jdGlvbiIpe3ZhciBjO2E6e3ZhciBkO3RyeXtkPW5ldyBVUkwoYSl9Y2F0Y2goeCl7Yz12b2lkIDA7YnJlYWsgYX1mb3IodmFyIGU9e30sZj1BcnJheS5mcm9tKGQuc2VhcmNoUGFyYW1zKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ11bMF0sbD1mW2ddWzFdO2UuaGFzT3duUHJvcGVydHkoaCk/dHlwZW9mIGVbaF09PT0ic3RyaW5nIj9lW2hdPVtlW2hdLGxdOmVbaF0ucHVzaChsKTplW2hdPWx9Yz17aHJlZjpkLmhyZWYsb3JpZ2luOmQub3JpZ2luLHByb3RvY29sOmQucHJvdG9jb2wsdXNlcm5hbWU6ZC51c2VybmFtZSxwYXNzd29yZDpkLnBhc3N3b3JkLGhvc3Q6ZC5ob3N0LGhvc3RuYW1lOmQuaG9zdG5hbWUsCnBvcnQ6ZC5wb3J0LHBhdGhuYW1lOmQucGF0aG5hbWUsc2VhcmNoOmQuc2VhcmNoLHNlYXJjaFBhcmFtczplLGhhc2g6ZC5oYXNofX1yZXR1cm4gVWQoYyl9dmFyIG47dHJ5e249UmooYSl9Y2F0Y2goeCl7cmV0dXJufWlmKCFuLnByb3RvY29sfHwhbi5ob3N0KXJldHVybjt2YXIgcD17fTtpZihuLnNlYXJjaClmb3IodmFyIHE9bi5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikscj0wO3I8cS5sZW5ndGg7cisrKXt2YXIgdD1xW3JdLnNwbGl0KCI9IiksdT10WzBdLHY9S2oodC5zcGxpY2UoMSkuam9pbigiPSIpKXx8IiI7dj12LnJlcGxhY2UoL1wrL2csIiAiKTtwLmhhc093blByb3BlcnR5KHUpP3R5cGVvZiBwW3VdPT09InN0cmluZyI/cFt1XT1bcFt1XSx2XTpwW3VdLnB1c2godik6cFt1XT12fW4uc2VhcmNoUGFyYW1zPXA7bi5vcmlnaW49bi5wcm90b2NvbCsiLy8iK24uaG9zdDtuLnVzZXJuYW1lPSIiO24ucGFzc3dvcmQ9IiI7Yj1VZChuKTsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO3JldHVybiBjfUlULlA9ImludGVybmFsLnRlc3RSZWdleCI7ZnVuY3Rpb24gSlQoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEtUKGEsYil7fUtULlA9ImludGVybmFsLnRyYWNrVXNhZ2UiO2Z1bmN0aW9uIExUKGEsYil7dmFyIGM7cmV0dXJuIGN9TFQuUD0iaW50ZXJuYWwudW5zdWJzY3JpYmVGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBNVChhKXt9TVQucHVibGljTmFtZT0idXBkYXRlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBOVChhKXt2YXIgYj0hMTtyZXR1cm4gYn1OVC5QPSJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiI7dmFyIE9UPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBhaX0sUVQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGI7dmFyIGM9UFQuSDtpZihjLmNvbnRhaW5zKGEpKWI9Yy5nZXQoYSx0aGlzKTtlbHNle3ZhciBkO2lmKGQ9Yy5ILmhhc093blByb3BlcnR5KGEpKXt2YXIgZT10aGlzLlQueGIoKTtpZihlKXt2YXIgZj0hMSxnPWUuUGIoKTtpZihnKXtCaChnKXx8KGY9ITApO31kPWZ9ZWxzZSBkPSEwfWlmKGQpe3ZhciBoPWMuSC5oYXNPd25Qcm9wZXJ0eShhKT9jLkhbYV06dm9pZCAwO2I9aH1lbHNlIHRocm93IEVycm9yKGErIiBpcyBub3QgYSB2YWxpZCBBUEkgbmFtZS4iKTt9cmV0dXJuIGJ9fSxQVDtmdW5jdGlvbiBSVChhLGIsYyl7UFR8fChQVD1uZXcgT1QpO1BULkguYWRkKGEsYixjKX1mdW5jdGlvbiBTVChhLGIpe1BUfHwoUFQ9bmV3IE9UKTt2YXIgYz1QVC5IO2lmKGMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZihjLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2l0aCBhbiBleGlzdGluZyBBUEkgbmFtZTogIithKyIuIik7Yy5IW2FdPXliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gVFQoYSxiKXtmdW5jdGlvbiBjKGQpe2lmKCFlaChkKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgZT1UZChkLHRoaXMuVCwxKS5yYigpO2EoZSl9Yy5QPSJpbnRlcm5hbC4iK2I7cmV0dXJuIGN9O2Z1bmN0aW9uIFVUKCl7dmFyIGE9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgU1QoYy5QLGMpfSxiPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFJUKGMucHVibGljTmFtZSxjKX07YihSRik7YihZRik7YihSRyk7YihURyk7YihVRyk7YihkSCk7YihmSCk7YihoSSk7YihQUygpKTtiKGpJKTtiKE9PKTtiKFBPKTtiKGxQKTtiKG1QKTtiKG5QKTtiKHVQKTtiKHZQKTtiKHJTKTtiKHVTKTtiKEJTKTtiKERTKTtiKFRTKTtiKFdTKTtiKFpTKTtiKGFUKTtiKGJUKTtiKGRUKTtiKG9UKTtiKHJUKTtiKHVUKTtiKHlUKTtiKENUKTtiKEhUKTtiKE1UKTtSVCgiTWF0aCIsemgoKSk7UlQoIk9iamVjdCIsWmgpO1JUKCJUZXN0SGVscGVyIixjaSgpKTtSVCgiYXNzZXJ0QXBpIix3aCk7UlQoImFzc2VydFRoYXQiLHhoKTtSVCgiZGVjb2RlVXJpIixDaCk7UlQoImRlY29kZVVyaUNvbXBvbmVudCIsRGgpO1JUKCJlbmNvZGVVcmkiLEVoKTtSVCgiZW5jb2RlVXJpQ29tcG9uZW50IixGaCk7UlQoImZhaWwiLApMaCk7UlQoImdlbmVyYXRlUmFuZG9tIixOaCk7UlQoImdldFRpbWVzdGFtcCIsT2gpO1JUKCJnZXRUaW1lc3RhbXBNaWxsaXMiLE9oKTtSVCgiZ2V0VHlwZSIsUGgpO1JUKCJtYWtlSW50ZWdlciIsUmgpO1JUKCJtYWtlTnVtYmVyIixTaCk7UlQoIm1ha2VTdHJpbmciLFRoKTtSVCgibWFrZVRhYmxlTWFwIixVaCk7UlQoIm1vY2siLFhoKTtSVCgibW9ja09iamVjdCIsWWgpO1JUKCJmcm9tQmFzZTY0IixITywhKCJhdG9iImluIEEpKTtSVCgibG9jYWxTdG9yYWdlIixTUywhUlMoKSk7UlQoInRvQmFzZTY0IixKVCwhKCJidG9hImluIEEpKTthKFFGKTthKFVGKTthKG5HKTthKHNHKTthKElHKTthKFBHKTthKFNHKTthKFZHKTthKFdHKTthKFpHKTthKCRHKTthKGFIKTthKGJIKTthKGNIKTthKGVIKTthKGdIKTthKGdJKTthKGlJKTthKGtJKTthKGxJKTthKG1JKTthKG5JKTthKG9JKTthKGZKKTthKG1KKTthKHRKKTthKHVKKTthKEFKKTthKEZKKTthKEtKKTthKFJKKTthKFdKKTthKGdLKTsKYShpSyk7YSh2Syk7YSh3Syk7YSh4Syk7YShGTyk7YShHTyk7YShJTyk7YShKTyk7YShLTyk7YShMTyk7YShNTyk7YShOTyk7YShRTyk7YShSTyk7YShTTyk7YShUTyk7YShVTyk7YShWTyk7YShXTyk7YShYTyk7YShZTyk7YShaTyk7YSgkTyk7YShhUCk7YShiUCk7YShjUCk7YShkUCk7YShlUCk7YShmUCk7YShnUCk7YShoUCk7YShpUCk7YShqUCk7YShrUCk7YShvUCk7YShwUCk7YShxUCk7YShyUCk7YShzUCk7YSh0UCk7YSh3UCk7YShvUyk7YShwUyk7YSh0Uyk7YSh2Uyk7YShDUyk7YShFUyk7YShGUyk7YShHUyk7YShIUyk7YShJUyk7YShKUyk7YShLUyk7YShMUyk7YShNUyk7YShOUyk7YShPUyk7YShRUyk7YShHRyk7YShVUyk7YShWUyk7YShYUyk7YShZUyk7YSgkUyk7YShjVCk7YShlVCk7YShmVCk7YShoVCk7YShpVCk7YShqVCk7YShsVCk7YShtVCk7YShuVCk7YShwVCk7YShxVCk7YShzVCk7YSh0VCk7YSh2VCk7YSh3VCk7YSh4VCk7YSh6VCk7YShBVCk7YShCVCk7YShEVCk7CmEoRVQpO2EoRlQpO2EoR1QpO2EoSVQpO2EoS1QpO2EoTFQpO2EoTlQpO1NUKCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIixzUygpKTtTVCgiaW50ZXJuYWwucXVpY2tIYXNoIixNaCk7YShUVChNRiwidGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiKSksYShUVChQRiwidGFza1NldFVuaXZlcnNhbFBhcmFtcyIpKTtQVHx8KFBUPW5ldyBPVCk7cmV0dXJuIFFUKCl9O3ZhciBKRjtmdW5jdGlvbiBWVCgpe0pGLnNkKGZ1bmN0aW9uKGEsYixjKXtsaigpO3ZhciBkPWpqO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPWQuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFfHwwO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFKys7dHJ5e3JldHVybiBhLmFwcGx5KGIsYyl9ZmluYWxseXtsaigpLGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRS0tfX0pfWZ1bmN0aW9uIFdUKGEpe2lmKGEmJmEubGVuZ3RoKWZvcih2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnJlcGxhY2UoL15fKi8sIiIpO2JbZF09WyJzYW5kYm94ZWRTY3JpcHRzIl19fQpmdW5jdGlvbiBYVChhKXtpZihhKXt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7R2IoYSxmdW5jdGlvbihjLGQpe2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdLnJlcGxhY2UoL15fKi8sIiIpO2JbZl09YltmXXx8W107YltmXS5wdXNoKGMpfX0pfX07ZnVuY3Rpb24gWlQoYSl7bUQocEMoImRldmVsb3Blcl9pZC4iK2EsITApLDAse30pfTtmdW5jdGlvbiAkVChhLGIpe3JldHVybiBFZChhLGJ8fG51bGwpfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoYSl9ZnVuY3Rpb24gYVUoYSl7WmMoYSx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBiVShhKXt2YXIgYj1bInZlaW50ZXJhY3RpdmUuY29tIiwidmUtaW50ZXJhY3RpdmUuY24iXTtpZighYSlyZXR1cm4hMTt2YXIgYz1MaihSaihhKSwiaG9zdCIpO2lmKCFjKXJldHVybiExO2Zvcih2YXIgZD0wO2ImJmQ8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdJiZiW2RdLnRvTG93ZXJDYXNlKCk7aWYoZSl7dmFyIGY9Yy5sZW5ndGgtZS5sZW5ndGg7Zj4wJiZlLmNoYXJBdCgwKSE9PSIuIiYmKGYtLSxlPSIuIitlKTtpZihmPj0wJiZjLmluZGV4T2YoZSxmKT09PWYpcmV0dXJuITB9fXJldHVybiExfQpmdW5jdGlvbiBjVShhLGIsYyl7Zm9yKHZhciBkPXt9LGU9ITEsZj0wO2EmJmY8YS5sZW5ndGg7ZisrKWFbZl0mJmFbZl0uaGFzT3duUHJvcGVydHkoYikmJmFbZl0uaGFzT3duUHJvcGVydHkoYykmJihkW2FbZl1bYl1dPWFbZl1bY10sZT0hMCk7cmV0dXJuIGU/ZDpudWxsfWZ1bmN0aW9uIGRVKGEsYil7dmFyIGM9e307aWYoYSlmb3IodmFyIGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1hW2RdKTtpZihiKXt2YXIgZT1jVShiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIpO2UmJihjPSRUKGUsYykpfXJldHVybiBjfWZ1bmN0aW9uIGVVKGEsYixjKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PWM/YjphfWZ1bmN0aW9uIGZVKGEsYixjKXtyZXR1cm4gVWMoYSxiLGMsdm9pZCAwKX1mdW5jdGlvbiBnVShhLGIpe0FbYV09Yn1mdW5jdGlvbiBoVShhLGIsYyl7dmFyIGQ9QTtiJiYoZFthXT09PXZvaWQgMHx8YyYmIWRbYV0pJiYoZFthXT1iKTtyZXR1cm4gZFthXX12YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczp7Zml4TWlzc2luZ0FwaTohIWMuZml4TWlzc2luZ0FwaX19fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzPWI7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5PPSJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHNbIjYiXT0KITF9KShmdW5jdGlvbihiKXt2YXIgYz0hIWIudnRwX2FsbG93Rml4TWlzc2luZ0phdmFTY3JpcHRBcGksZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLGYpe2lmKCFjJiZmJiZmLmZpeE1pc3NpbmdBcGkpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbjogZml4TWlzc2luZ0FwaS4iKTt9LGFhOmF9fSl9KCk7CgoKCgoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1iO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLk89ImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLk89ImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dXYWl0Rm9yVGFncyxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsCmYpe2lmKCFjJiZmJiZmLndhaXRGb3JUYWdzKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb24gd2FpdEZvclRhZ3MuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9YjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5PPSJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93V2FpdEZvclRhZ3MsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7CnJldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSxmKXtpZighYyYmZiYmZi53YWl0Rm9yVGFncyl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uIHdhaXRGb3JUYWdzLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2NvbnRhaW5lcl9kYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLk89InJlYWRfY29udGFpbmVyX2RhdGEiLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjUiXT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmxpc3Rlbl9kYXRhX2xheWVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2V2ZW50TmFtZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyPWI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLk89Imxpc3Rlbl9kYXRhX2xheWVyIjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNSJdPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWNjZXNzVHlwZSxkPWIudnRwX2FsbG93ZWRFdmVudHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sCiJFdmVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShjPT09ImFueSJ8fGM9PT0ic3BlY2lmaWMiJiZkLmluZGV4T2YoZyk+PTApKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LCJQcm9oaWJpdGVkIGxpc3RlbiBvbiBkYXRhIGxheWVyIGV2ZW50LiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9kb21fZWxlbWVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0eXBlOmMsdmFsdWU6ZH19KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2RvbV9lbGVtZW50cz1iO1ouX19yZWFkX2RvbV9lbGVtZW50cy5PPSJyZWFkX2RvbV9lbGVtZW50cyI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRFbGVtZW50SWRzfHwibm9uZSIsZD1iLnZ0cF9hbGxvd2VkQ3NzU2VsZWN0b3JzfHwibm9uZSIsZT1iLnZ0cF9lbGVtZW50SWRzfHxbXSxmPWIudnRwX2Nzc1NlbGVjdG9yc3x8W10sZz0KYi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oaCxsLG4pe3N3aXRjaChsKXtjYXNlICJpZCI6aWYoYz09PSJub25lIilicmVhaztpZihjPT09ImFueSJ8fGUuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7Y2FzZSAiY3NzIjppZihkPT09Im5vbmUiKWJyZWFrO2lmKGQ9PT0iYW55Inx8Zi5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztkZWZhdWx0OnRocm93IGcoaCx7fSwiVW5rbm93biBzZWxlY3RvciB0eXBlICIrbCsiLiIpO310aHJvdyBnKGgse30sIlByb2hpYml0ZWQgc2VsZWN0b3IgdmFsdWUgIituKyIgZm9yIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9jbGlja19ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnttYXRjaENvbW1vbkJ1dHRvbnM6Yyxjc3NTZWxlY3RvcjpkfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5PPSJkZXRlY3RfY2xpY2tfZXZlbnRzIjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9jbGlja19ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsZSxmKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9PQoiYm9vbGVhbiIpdGhyb3cgYyhkLHt9LCJtYXRjaENvbW1vbkJ1dHRvbnMgbXVzdCBiZSBhIGJvb2xlYW4uIik7aWYoZiE9PXZvaWQgMCYmdHlwZW9mIGYhPT0ic3RyaW5nIil0aHJvdyBjKGQse30sImNzc1NlbGVjdG9yIG11c3QgYmUgYSBzdHJpbmcuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9zY3JvbGxfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1iO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5PPSJkZXRlY3Rfc2Nyb2xsX2V2ZW50cyI7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTsKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cz1iO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuTz0iZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LAphYTphfX0pfSgpOwpmdW5jdGlvbiBrVSgpe3ZhciBhPXt9LGI9e2RhdGFMYXllcjp0QSxjYWxsYmFjazpmdW5jdGlvbihjKXthLmhhc093blByb3BlcnR5KGMpJiZ5YihhW2NdKSYmYVtjXSgpO2RlbGV0ZSBhW2NdfSxib290c3RyYXA6MH07cmV0dXJuIGJ9CmZ1bmN0aW9uIGxVKCl7dmFyIGE9a1UoKTtvaihhKTtDaygpO2pBKCk7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO1FiKGIsWi5zZWN1cml0eUdyb3Vwcyk7dmFyIGM9eWsoemsoKSksZCxlPWM9PW51bGw/dm9pZCAwOihkPWMuY29udGV4dCk9PW51bGw/dm9pZCAwOmQuc291cmNlO0tsKGUsYz09bnVsbD92b2lkIDA6Yy5wYXJlbnQpO2UhPT0yJiZlIT09NCYmZSE9PTN8fFAoMTQyKTtyZXR1cm4gYX1mdW5jdGlvbiBtVSgpe3ZhciBhPUUoNjApO2lmKGEpZm9yKHZhciBiPWEuc3BsaXQoIi4iKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1UTDtkJiYoZS5IW2RdPSEwKX19CmZ1bmN0aW9uIG5VKCl7enAoKTtsaigpO2Zvcih2YXIgYT1kYXRhLnJlc291cmNlfHx7fSxiPWNBLGM9YS5tYWNyb3N8fFtdLGQ9MDtkPGMubGVuZ3RoO2QrKyliLm1hY3Jvcy5wdXNoKG5ldyBVeihjW2RdLGQsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBlPWEudGFnc3x8W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKWIudGFncy5wdXNoKG5ldyBZeihlW2ZdLGYsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBnPWEucHJlZGljYXRlc3x8W10saD0wO2g8Zy5sZW5ndGg7aCsrKWIucHJlZGljYXRlcy5wdXNoKG5ldyBWeihnW2hdLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgbD1hLnJ1bGVzfHxbXSxuPTA7bjxsLmxlbmd0aDtuKyspYi5ydWxlcy5wdXNoKG5ldyBXeihsW25dLG4pKTtRej1aO3ZhciBwPWRhdGEucGVybWlzc2lvbnN8fHt9LHE9WjtkZz1uZXcgZ2coRSg1KSxwLHEpO3ZhciByPWRhdGEuc2FuZGJveGVkX3NjcmlwdHMsdD1kYXRhLnNlY3VyaXR5X2dyb3Vwcyx1PWRhdGEucnVudGltZXx8CltdLHY9ZGF0YS5ydW50aW1lX2xpbmVzO0pGPW5ldyBwZjtWVCgpO1B6PUlGKCk7dmFyIHg9SkYseT1VVCgpLHo9bmV3IExkKCJyZXF1aXJlIix5KTt6LlphKCk7eC5ILkguc2V0KCJyZXF1aXJlIix6KTtkYi5zZXQoInJlcXVpcmUiLHopO2Zvcih2YXIgQz0wO0M8dS5sZW5ndGg7QysrKXt2YXIgRD11W0NdO2lmKCFBcnJheS5pc0FycmF5KEQpfHxELmxlbmd0aDwzKXtpZihELmxlbmd0aD09PTApY29udGludWU7YnJlYWt9diYmdltDXSYmdltDXS5sZW5ndGgmJlBmKEQsdltDXSk7dHJ5e0pGLmV4ZWN1dGUoRCl9Y2F0Y2gob1Upe319V1Qocik7WFQodCk7dmFyIEk9bFUoKTtpRigpO3ZtLmJpbmQoKTtpZighRGopZm9yKHZhciBHPUJtKCk/ZXAoTGYoNSkpOmVwKExmKDQpKSxOPW0oUm8pLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlLGVhPVcsamE9R1tXXT8iZ3JhbnRlZCI6ImRlbmllZCI7dGwoKS5pbXBsaWNpdChlYSxqYSl9aEUuYmluZCgpO1RCKCk7Ck9CKCk7Zm4uTiYmKGd6KCksZnooQUYpLGdBKCksY0I9bmV3IGJCLGZ6KGl6KSxPQygpLERGfHwoREY9bmV3IEJGKSxmQnx8KGZCPW5ldyBlQiksRkY9bmV3IEVGKTtpZihmbi5LKXtERS5iaW5kKCk7bUMuYmluZCgpO3dFLmJpbmQoKTt2YXIgZmE9QWsoKTtpZihmYSl7dmFyIHNhO2E6e3ZhciBkYSxtYT0oZGE9ZmEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmRhLnNyYztpZihtYSl7dmFyIFBhO3RyeXt2YXIgRmE7UGE9KEZhPXJkKCkpPT1udWxsP3ZvaWQgMDpGYS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpfWNhdGNoKG9VKXt9aWYoUGEpe2Zvcih2YXIgcWE9LTEsaWI9bShQYSksWGI9aWIubmV4dCgpOyFYYi5kb25lO1hiPWliLm5leHQoKSl7dmFyIExjPVhiLnZhbHVlO2lmKExjLmluaXRpYXRvclR5cGU9PT0KInNjcmlwdCImJihxYSs9MSxMYy5uYW1lLnJlcGxhY2UoTkUsIiIpPT09bWEucmVwbGFjZShORSwiIikpKXtzYT1xYTticmVhayBhfX1QKDE0Nil9ZWxzZSBQKDE0NSl9c2E9dm9pZCAwfXZhciBRZD1zYTtRZCE9PXZvaWQgMCYmKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkJiZVbSgicnRnIixTdHJpbmcoZmEuY2Fub25pY2FsQ29udGFpbmVySWQpKSxVbSgic2xvIixTdHJpbmcoUWQpKSxVbSgiaGxvIixmYS5odG1sTG9hZE9yZGVyfHwiLTEiKSxVbSgibHN0IixTdHJpbmcoZmEubG9hZFNjcmlwdFR5cGV8fCIwIikpKX1lbHNlIFAoMTQ0KTt2YXIgWWM7dmFyIERkPXhrKCk7aWYoRGQpaWYoRGQuY2Fub25pY2FsQ29udGFpbmVySWQpWWM9RGQuY2Fub25pY2FsQ29udGFpbmVySWQ7ZWxzZXt2YXIgamYsdmg9RGQuc2NyaXB0Q29udGFpbmVySWR8fCgoamY9RGQuZGVzdGluYXRpb25zKT09bnVsbD92b2lkIDA6amZbMF0pO1ljPXZoPyJfIit2aDp2b2lkIDB9ZWxzZSBZYz12b2lkIDA7dmFyIEpFPQpZYztKRSYmVW0oInBjaWQiLEpFKTtVbSgiYnQiLFN0cmluZyhJZig0Nyk/MjpJZig1MCk/MTowKSk7VW0oImN0IixTdHJpbmcoSWYoNDcpPzA6SWYoNTApPzE6MykpO0FFLmJpbmQoKTtmb3IodmFyIFdyPVtdLFhyPVtdLEtFPW0oT2JqZWN0LmtleXMoR0UpKSxZcj1LRS5uZXh0KCk7IVlyLmRvbmU7WXI9S0UubmV4dCgpKXt2YXIgcm09WXIudmFsdWU7aWYod2luZG93LmlzU2VjdXJlQ29udGV4dHx8IUlFW3JtXSl7dmFyIExFPUdFW3JtXSgpO2lmKHliKExFKSl7dmFyIE1FPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKExFKTtUYihNRSwieyBbbmF0aXZlIGNvZGVdIH0iKXx8VGIoTUUsIntcbiAgICBbbmF0aXZlIGNvZGVdXG59Iil8fFhyLnB1c2gocm0pfWVsc2UgV3IucHVzaChybSl9fVdyLmxlbmd0aD4wJiZVbSgianNtIixXci5qb2luKCJ+IikpO1hyLmxlbmd0aD4wJiZVbSgianNwIixYci5qb2luKCJ+IikpO0V5fHwoRXk9bmV3IER5KX1oRigpO2ltKDEpO0VHKCk7cmV0dXJuIEl9CmZ1bmN0aW9uIHVtKCl7dHJ5e2lmKCFoaygpJiYoSWYoNDcpfHwhTmsoKSkpe0lmKDY0KSYmd2ouSC5LLmFkZCgxMTg1MTc5MTcpO3pqKCk7Zm4uSCYmc3ooKTtXZls1XT0hMDt2YXIgYT1raigiZGVidWdHcm91cElkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSl9KTtTbChhKTtrdCgpO3pGKCk7RnQoKTtQQigpO2lmKERrKCkpe0UoNSk7REcoKTtpQigpLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zKHZrKCkpO31lbHNle0ZNLlIoKTtuVSgpLmJvb3RzdHJhcD1OYigpO0lmKDUxKSYmcEUoKTsKZm4uSCYmdHooKTt0eXBlb2YgQS5uYW1lPT09InN0cmluZyImJlNiKEEubmFtZSwid2ViLXBpeGVsLXNhbmRib3gtQ1VTVE9NIikmJnNkKCk/WlQoImRNRGcwWXoiKTpBLlNob3BpZnkmJihaVCgiZE4yWmtNaiIpLHNkKCkmJlpUKCJkTlRVMFl6IikpO21VKCl9fX1jYXRjaChiKXtpbSg1KSxoeigpfX0KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtuPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKTtnbChuKSYmKGw9aC54bSl9ZnVuY3Rpb24gYygpe2wmJktjP2cobCk6YSgpfWlmKCFBW0UoMzcpXSl7dmFyIGQ9ITE7aWYoQi5yZWZlcnJlcil7dmFyIGU9UmooQi5yZWZlcnJlcik7ZD1OaihlLCJob3N0Iik9PT1FKDM4KX1pZighZCl7dmFyIGY9Y3EoRSgzOSkpO2Q9ISghZi5sZW5ndGh8fCFmWzBdLmxlbmd0aCl9ZCYmKEFbRSgzNyldPSEwLFVjKEUoNDApKSl9dmFyIGc9ZnVuY3Rpb24odSl7dmFyIHY9IkdUTSIseD0iR1RNIjtJZig0NSkmJih2PSJPR1QiLHg9IkdUQUciKTt2YXIgeT1FKDIzKSx6PUFbeV07enx8KHo9W10sQVt5XT16LFVjKCJodHRwczovLyIrRSgzKSsiL2RlYnVnL2Jvb3RzdHJhcD9pZD0iK0UoNSkrIiZzcmM9Iit4KyImY29uZD0iK1N0cmluZyh1KSsiJmd0bT0iK2R1KCkpKTt2YXIgQz17bWVzc2FnZVR5cGU6IkNPTlRBSU5FUl9TVEFSVElORyIsCmRhdGE6e3NjcmlwdFNvdXJjZTpLYyxjb250YWluZXJQcm9kdWN0OnYsZGVidWc6ITEsaWQ6RSg1KSx0YXJnZXRSZWY6e2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOnNrKCksY2Fub25pY2FsSWQ6RSg2KX0sYWxpYXNlczp3aygpLGRlc3RpbmF0aW9uczp0aygpfX0sRD1DLmRhdGE7RC5yZXN1bWU9ZnVuY3Rpb24oKXthKCl9O0QucmVzdW1lV2l0aE1lbW9zPWZ1bmN0aW9uKCl7c2woMSk7YSgpfTtJZigyKSYmKEMuZGF0YS5pbml0aWFsUHVibGlzaD0hMCk7ei5wdXNoKEMpfSxoPXtHcToxLFBtOjIsb246MyxqbDo0LHhtOjV9O2hbaC5HcV09IkdUTV9ERUJVR19MRUdBQ1lfUEFSQU0iO2hbaC5QbV09IkdUTV9ERUJVR19QQVJBTSI7aFtoLm9uXT0iUkVGRVJSRVIiO2hbaC5qbF09IkNPT0tJRSI7aFtoLnhtXT0iRVhURU5TSU9OX1BBUkFNIjt2YXIgbD12b2lkIDAsbj12b2lkIDAscD1MaihBLmxvY2F0aW9uLCJxdWVyeSIsITEsdm9pZCAwLCJndG1fZGVidWciKTtnbChwKSYmKGw9aC5QbSk7CmlmKCFsJiZCLnJlZmVycmVyKXt2YXIgcT1SaihCLnJlZmVycmVyKTtOaihxLCJob3N0Iik9PT1FKDI0KSYmKGw9aC5vbil9aWYoIWwpe3ZhciByPWNxKCJfX1RBR19BU1NJU1RBTlQiKTtyLmxlbmd0aCYmclswXS5sZW5ndGgmJihsPWguamwpfWx8fGIoKTtpZighbCYmZmwobikpe3ZhciB0PSExOyRjKEIsIlRBRGVidWdTaWduYWwiLGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LCExKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sMjAwKX1lbHNlIGMoKX0pKGZ1bmN0aW9uKCl7IUlmKDQ3KXx8dG0oKVsiMCJdP3VtKCk6eG0oKX0pOwoKfSkoKQoK"}},"time_used":140,"timings":{"blocked":0,"dns":2,"connect":15,"send":0,"wait":37,"receive":54,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"jnn-pa.googleapis.com/$rpc/google.internal.waa.v1.Waa/GenerateIT","fqdn":"jnn-pa.googleapis.com","domain":"jnn-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.791Z","timestamp":1785126647791,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"POST /$rpc/google.internal.waa.v1.Waa/GenerateIT HTTP/1.1\r\nHost: jnn-pa.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nX-Goog-Api-Key: AIzaSyDyT5W0Jh49F30Pqqtyfdf7pDLFKLJoAnw\r\nContent-Type: application/json+protobuf\r\nContent-Length: 1823\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":1823,"data":"[\"O43z0dpjhgX20SCx4KAo\",\"$rjE5MVVRAAYuiqQtDoreTmW3jYD7PAWnAEABEArZ1IdTv45WoIg4kYRyjG_iBs3GxZuZlmW2-ccRXgtSeVJSLG57EsqBu8KMwD9ENj_PovTukm8Kc3D7pVi1ngAAAODOAAAADvQBB-IAUmx1uLjSpGY_w7tdKS2oww0I75n1SSjA4khTAzakTzeI_6AIVNrA_ik_-xhorsHmiSOQw7uqS8K65C6u90k251OYf-ABKjfFpvWbllaNCEG2CiIFBIMcWspSAHKflAxTmRuCKY4xN-7HKAnuEo7rxbDAlaAzo_BNZ0zabKioj2DMum1bgPVUulxyGtn0vBUcAPNe5Bcb2icnhtSdkFdK4yQKaE4o7feO0AP7OWIKw1jfpFPNCQS507nKd0wCVtNUJ3NvnoBlX6cw7_c4uDAtxZZKQmWEkK-SggG9Qxt2D_tklpbjR2mobxeXM7a52g3nefk-nzNQpIao01U-PO2BBs6JEBvgUWQ-X0ctBXLxcPbmrNlYSauMBg1SM7YDncDmgBnyk0FnT66da1j0PkGUTRKc9rZHGqmYENSJ32hpjxtIZQ_DH0NoMV4NurQrOOXtFYJuCSdD6aTLZSWoPv4ZRoc0C8TPuk8dxvGNxo8IJg5adPb3VokbrzwbuOGVaOUPE1SbhT7al2aJ_rDe3XYsLsZ9XP850VPS_EMhsPvN88zi04pocUYShus2HM1SBGYhYpONLqCziwjDv2ofb1cVyM-uCJ9KCHQnjQGuyBPWAbzdbkDEQkhsg7M5GdEAOsqBQPfZuTjzxEJVaVyFZXoE3wkPSi5wjOAENLNyU9lZnAf3gE07bfOSzXRtrop4jr_6I5-0Ts-V0howggN99CS85NpU3FjL2jMXh28Tx80CaCqGkYB28VrCOpsaAOS47vhcyhUCwO6uL8AzOi74efMrxPZHmhEdhmNw7vaYaWrRn7jCDoZ1CqsiJgfoWKSqJtlE5mFo8e2CcyCdS2FwMrCFxeNLbZBewh9TjVjs7-6_j1AL23lGCUumkzHANpiwWzjpjezah7hphFUN3jny7aLtxOu7_8OXKGLYl3YR-HS3w2Uci8oKW6S5qtrSx-dPiTF-ZFCW0CegkBDwnvo6u-SzwzMYh2Y7XRJ6XCWT4PcKGomhX3dNniqyVMMaaQ2ihhM8wBEQjFaoID7jUyIS6x3RnwyaczJsPJ7xN1GYQN6we8rLIY9VA-6VdqQBCZPpIoErPpwGe4ZsnjFD0SlxGCj_zxmbKas2i9C-N8YlWSV3ghfsRyTvZw3K8AIpw8tSgkesEiEHA2GQwtgVRemyNMzlUajTdcw0WbE6PNPHrUNe617-Vum2afxeQ_ubT6hPZjKPM7erhykX_H4dbC3bCXFyM6nxUgFosQHPDel15LpbQuRCGa2QgsWLRgkVDkpuQceDQPE1izOwSoY594kcNnE_vQ554gmo590rhyIzqof4LG2eeEDGHp90ZFvNaZ7TFxqg1H8bqJszhAHersboESMcM44Zj6zME_Nv0m8Pp_0rLl8KTlsFFFRH7n-j16cRA_e2_12yZK3W5rqjxgOLpmKTkqEz6hVS1fcIeZiUDU49zmT7nfC_-lrW013iXb5VdS8oCQ5BM6ZVGD2VgB2oQxyLuOUeL0wCaJ6pZnPfK0dcMzFMZNHUFjfDCVOIBTOrMwtWBRCFBlVVSFRIIMGbCl5lHuI53MOq_nGzDkmHZIbFZgg_TnrnVhSH72y-mTz8FAr5mQ4EKMw907KRf8Im54DmQ2SqLT5MJ3go4Raz_ZBrpIDpfExMGFK_brI\"]"}},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json+protobuf; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\nserver: ESF\r\ncontent-length: 118\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://www.youtube.com\r\naccess-control-allow-credentials: true\r\naccess-control-expose-headers: vary,vary,vary,content-encoding,date,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":98,"size_decoded":642,"mime_type":"application/json+protobuf; charset=UTF-8","magic":"JSON text data","md5":"18217cc4e763751645527cffd3e1103d","sha1":"157c8d76c4e013839997e0618387819e43e7c7fa","sha256":"455ef6a32f9009873d675145eda97541c417917bc25aa98ec48d7d1889e7c764","sha512":"345631daea7fa17ed7a1c328c69f31e1ff225c890635c1050255b73255f4d826ca05b88079369bfc1fd3b93d9e64c726e0ce68c60bd26769b9bd71c18a4c00e7","ssdeep":"","tlshash":"70b0122a52a0a0246d414460c684a8d39424d5463500dc6d50921909d14e7be845231c","first_seen":"2026-07-27T04:31:33.21768Z","last_seen":"2026-07-27T04:31:33.21768Z","times_seen":1,"resource_available":false,"data":"WyJBOG00MzRTZWF0ckd4Nk1mSS81bzYwWG54eWdEekdOZ0VlK3U5YTFXWE1vTENRbG02bFhhUWp1OFJXZTVoYnBOemx2bTVEWUFWZXBsRWp1enoxbnIiLDQzMjAwLDEwMF0="}},"time_used":24,"timings":{"blocked":2,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1027.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.617Z","timestamp":1785126646617,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1027.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2780\r\nage: 69415\r\nlast-modified: Tue, 19 Oct 2021 05:32:40 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 09:13:58 GMT\r\ncache-control: max-age=86400\r\netag: \"856bfdb63dc0d6fad6b92fc6a29719e1\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: EMkJoyRzzHefbAbnzNqK8PLFOnPQtFCQfOX3njXNVs-5exCBvhqqgw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2780,"size_decoded":3306,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"856bfdb63dc0d6fad6b92fc6a29719e1","sha1":"2fed2e3409ce1bbbfb37f6da4abeecc30cefc021","sha256":"eebe29898b8b7de5c9e47daab474152be8095e3ab42d768b84b085c5a12b95c6","sha512":"a61c0a108d63c89ae62a2b03108480b5c08bda0e80049089a2a84cd7973bd9e94dcd2902e166b92e1d7ad5b7356357c9b181cb1b6051dd25913e82d2420154f0","ssdeep":"","tlshash":"51518cc7a707f33a9c866161bed44509f244d80a8160b31c0f33a7572c8a83ea4f324f","first_seen":"2023-05-01T18:49:36Z","last_seen":"2026-07-27T08:07:37.334314Z","times_seen":22643,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":13,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1839.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.623Z","timestamp":1785126646623,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1839.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1387\r\nage: 8400\r\nlast-modified: Thu, 17 Feb 2022 08:19:34 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:10:47 GMT\r\netag: \"aef8727bea8367cd9fd252c025b45887\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: QK-bGeooPd9A5xRh3TqkVNOUnD7gp2QE28dWz_2fOCGNotOrlA8ORQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1387,"size_decoded":1882,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"aef8727bea8367cd9fd252c025b45887","sha1":"c2ab9d909455bff35181dfd92bcc7baba930867f","sha256":"ce5a07d36768bcb5524044a9e92a606ae6effe1cb0913dfa418703461db62fe3","sha512":"5f97e368e23aa5e501e57917aea9426704ac3c4068b34d803f44944663bab45131170fec2872fb868a5faceb6856ce4d9f8870053aba7e8d08455989a731984d","ssdeep":"","tlshash":"5321085f5b644577dda94dbede05a54b29e30d208d978bc2c404ec1534598a643608ad","first_seen":"2023-05-06T05:54:57Z","last_seen":"2026-07-27T08:07:37.382681Z","times_seen":15623,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFMklEQVR4XtVbvW4TQRhMSWwipYYngCeACsp0pEsJFZTp8gapaXgD6F0gETsIWaRIARIopAAJJAcJCgq4s5M4/zE3l6y1nv253fXe2R5plOR2787f7PfN7u05c3MVIGksLiYbNx92W/XnaavWSFv1TrpZT7Kfg5xXv3fQhj7oi3P4OjOD7ub8ahZUexjguGzW271W/THfZ+qAkYsauMJaI3mzsMz3nThG0rky1jr8OSpHPuJ57fKHq4q1zkRKI9moP5nMqJtYoRBwZ/UDTAdLnzmma9RNLMkb8rRXbjadjF4OfINZIccRhFkaeebYmZCWNMV1390enOy9GAgc7j5T+kRkwnE5oUy3vzxLh8ELXPR/Kv1i0Xt2KCPte1t3OWYtyhLCqxzSyKl//GNdO+omQIQSysKtFGKO/tm/LY5tBEff1wenf17z4REcZ17B1w0llu4cr4I0wuizyelw9ndr2P+iv8fNI4iXDQWLpDRC8KApoMuzZND/uqb0Fzz59ZJPGSJiJphLQdM5mP3dpxxDlhm3lH7M3vs7fNpg/8OS0m8cctw5ktbCMnd0YT9LT8Dk3giIj4EHH5eGAeqEwXm64ygvAcws3O5CrRdc79UpnW1kkzvv7Th9KPYHV9c/+ramzCZBpdGst0eC93V+Dpyxv31POQfEqNrq3OYPmDFsOMxKjs+xsducXx0K4LuPZxKgyOQEdSbpMpI28XwFGMkCpbGALMB5d0c76vAHpCwWQrp6xqgeflpRju9v38/vgTWCrqRgsFwK3gK0JDPkhiKyAEdZgNxHNjnAZJJM2eQEdCJwFgULkLT9H3psAmCki6ALiAXTQe4fQ4D8Iel6Z1dptPEoq3MZsgAuDz3IBlxDnMOCmiB/BlkA/G6abm3Mp8Or11VqowsPPq/kN/cVIBTyvXFfmKLOW1yJ2IPmfyZMSfxelQCnWfD8ObzZrDWC1v+oVz4mWJUAMmGcOl8pZvZwFLLVjZrFqo+Pgy4mGAq+lyCmxBATTPFgpDlYSNm0TNOb7qEmBFhc8bVBni4DBRiMLQCgWweAwiRDgdWhyeSQgTLCBQgsARkmAQSLngEYLsGwsC7naJiXQEfTYKVNAJiR6ckOu0BFwPKYzxM7TPKxOALABAOmwSIBBE5+vxpxZ90mCUO+D2Yb+V5yWxQBMA2GLIRcBQBkk/QVgCG3xRAgXwiFLIV9BABE27QJsL9540H0h6FZEmD4xogbimgTAMTUJe/giOOhAug2RWMIEG0/AGbHfUAx9Ym/fQXAIkg3KyDL4m6IRNoSY9dn+grAxKwAU9XBWwB5Syz/YiN3sNAkgIBp9TaOANgms8FXAOVlqW8WgEUwZQPXLyC/KpOJrXAbcC0+p5CY/xkh06HLEtfkD7JJ6kwOPO9+ka6kQucPLuy9rT3i+HNwRx/a0pv7utIEk2Cu5LiHCHkwkmnKBtGOOjaVBcgbLQyku2+tq6zgDTGyQa5z+fhVIKOvwuQvUMjXEYA/hGx6qiwIHgjxAhMFxN9cJsgG8XJVgM8PMjkDFec3YdxSMJEF0IHPiUeH0RfwfVnqykkK4Dz6AiEPSS607RWaFlDj0vtrcgJlloJskjA53cvVOPRIfR3KKgfQ9C2QWPROexP4wrNCjmMslJkJsRlt5BlphEVS6dy0fA0uBsqaHWIw2O19cV0OHf4AE2M26qWlvQ2TF6LWyXd2J410EiKUXeshwEZDyJsmZzbr7akY8SJc/2NlWwkglFng2Lfk+8wM4M4YuW7T4d/nsz7oW5Wj/wdXGukMTSgLegAAAABJRU5ErkJggg=="}},"time_used":18,"timings":{"blocked":4,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/29470.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.691Z","timestamp":1785126646691,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/29470.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2829\r\nage: 82496\r\nlast-modified: Tue, 04 Jun 2024 14:26:01 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 05:36:01 GMT\r\ncache-control: public, max-age=86400\r\netag: \"0debab46acf186ff5769f4ba0018f87f\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: xz-lG9RKGQcYviOVsrvqsCvsD8-zxsxNeuk9_n9K-BD9EV1YDkjz9A==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2829,"size_decoded":3401,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"0debab46acf186ff5769f4ba0018f87f","sha1":"5e2f5bcdf7a875354086424179727eb69747338c","sha256":"da62693f7f99079375e11208b7853bc6113175cbd7aabb612ac938893f57cdd4","sha512":"9e27dd815bc7279386d266c7716a75c88ffa62757325cd0e5e226201cf5f128b4a4e1b44095254b4115a0b7709cf45449f2ba50e5ed03c4074e5c1cce13da1fc","ssdeep":"","tlshash":"99514b6f90ab341de21882f3a757be278a0dc1858b1e6651cce471ba14b7eb8530256a","first_seen":"2024-11-30T20:42:41.09234Z","last_seen":"2026-07-27T08:07:37.429337Z","times_seen":1132,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/slicknav.min.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.613Z","timestamp":1785126645613,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/slicknav.min.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 688\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2505,"size_decoded":935,"mime_type":"text/css","magic":"ASCII text, with very long lines (2414)","md5":"cb0567a8e6fa8a2786dec28833cb1ce9","sha1":"c54e46ca2b58657ce9b9af788c4c71db2f258768","sha256":"2c48050a1280b38ee66b4122dc30f7b8d0d89776c80f76f213dca958e701f45d","sha512":"85eca889e0079a900bdc175a40cb1b20e855bc66f8fa9978686099a96cd7fdfd410a1440aeb072fd75190c75bd5958b9a7aa5ff76a57e328e47e675a2186b641","ssdeep":"","tlshash":"4951af76a5ec0154713ad2246fc0e6cbe4e7310348310a99f99976b1c7be06d7ce1db9","first_seen":"2023-04-07T07:32:13Z","last_seen":"2026-07-27T07:57:29.211487Z","times_seen":1639,"resource_available":false,"data":"LyohCiAqIFNsaWNrTmF2IFJlc3BvbnNpdmUgTW9iaWxlIE1lbnUgdjEuMC4xMAogKiAoYykgMjAxNiBKb3NoIENvcGUKICogbGljZW5zZWQgdW5kZXIgTUlUCiAqLy5zbGlja25hdl9idG4sLnNsaWNrbmF2X25hdiAuc2xpY2tuYXZfaXRlbXtjdXJzb3I6cG9pbnRlcn0uc2xpY2tuYXZfbWVudSwuc2xpY2tuYXZfbWVudSAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0uc2xpY2tuYXZfYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2Zsb2F0OnJpZ2h0O3BhZGRpbmc6LjQzOGVtIC42MjVlbTtsaW5lLWhlaWdodDoxLjEyNWVtfS5zbGlja25hdl9idG4gLnNsaWNrbmF2X2ljb24tYmFyKy5zbGlja25hdl9pY29uLWJhcnttYXJnaW4tdG9wOi4xODhlbX0uc2xpY2tuYXZfbWVudSAuc2xpY2tuYXZfbWVudXR4dHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMTg4ZW07ZmxvYXQ6bGVmdDtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LXNoYWRvdzowIDFweCAzcHggIzAwMH0uc2xpY2tuYXZfbWVudSAuc2xpY2tuYXZfaWNvbntmbG9hdDpsZWZ0O3dpZHRoOjEuMTI1ZW07aGVpZ2h0Oi44NzVlbTttYXJnaW46LjE4OGVtIDAgMCAuNDM4ZW19LnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2ljb246YmVmb3Jle2JhY2tncm91bmQ6MCAwO3dpZHRoOjEuMTI1ZW07aGVpZ2h0Oi44NzVlbTtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGV9LnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X25vLXRleHR7bWFyZ2luOjB9LnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2ljb24tYmFye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MS4xMjVlbTtoZWlnaHQ6LjEyNWVtOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxcHg7LW1vei1ib3JkZXItcmFkaXVzOjFweDtib3JkZXItcmFkaXVzOjFweDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4yNSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMjUpO2JveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4yNSl9LnNsaWNrbmF2X21lbnU6YWZ0ZXIsLnNsaWNrbmF2X21lbnU6YmVmb3Jle2NvbnRlbnQ6IiAiO2Rpc3BsYXk6dGFibGV9LnNsaWNrbmF2X21lbnU6YWZ0ZXJ7Y2xlYXI6Ym90aH0uc2xpY2tuYXZfbmF2IGxpLC5zbGlja25hdl9uYXYgdWx7ZGlzcGxheTpibG9ja30uc2xpY2tuYXZfbmF2IC5zbGlja25hdl9hcnJvd3tmb250LXNpemU6LjhlbTttYXJnaW46MCAwIDAgLjRlbX0uc2xpY2tuYXZfbmF2IC5zbGlja25hdl9pdGVtIGF7ZGlzcGxheTppbmxpbmV9LnNsaWNrbmF2X25hdiAuc2xpY2tuYXZfcm93LC5zbGlja25hdl9uYXYgYXtkaXNwbGF5OmJsb2NrfS5zbGlja25hdl9uYXYgLnNsaWNrbmF2X3BhcmVudC1saW5rIGF7ZGlzcGxheTppbmxpbmV9LnNsaWNrbmF2X21lbnV7Knpvb206MTtmb250LXNpemU6MTZweDtiYWNrZ3JvdW5kOiM0YzRjNGM7cGFkZGluZzo1cHh9LnNsaWNrbmF2X25hdiwuc2xpY2tuYXZfbmF2IHVse2xpc3Qtc3R5bGU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowfS5zbGlja25hdl9tZW51IC5zbGlja25hdl9pY29uLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnNsaWNrbmF2X2J0bnttYXJnaW46NXB4IDVweCA2cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjc1KTstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMjIyfS5zbGlja25hdl9uYXZ7Y2xlYXI6Ym90aDtjb2xvcjojZmZmO21hcmdpbjowO2ZvbnQtc2l6ZTouODc1ZW19LnNsaWNrbmF2X25hdiB1bHttYXJnaW46MCAwIDAgMjBweH0uc2xpY2tuYXZfbmF2IC5zbGlja25hdl9yb3csLnNsaWNrbmF2X25hdiBhe3BhZGRpbmc6NXB4IDEwcHg7bWFyZ2luOjJweCA1cHh9LnNsaWNrbmF2X25hdiAuc2xpY2tuYXZfcm93OmhvdmVyey13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXItcmFkaXVzOjZweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOiNjY2M7Y29sb3I6I2ZmZn0uc2xpY2tuYXZfbmF2IGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZn0uc2xpY2tuYXZfbmF2IGE6aG92ZXJ7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDstbW96LWJvcmRlci1yYWRpdXM6NnB4O2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQ6I2NjYztjb2xvcjojMjIyfS5zbGlja25hdl9uYXYgLnNsaWNrbmF2X3R4dG5vZGV7bWFyZ2luLWxlZnQ6MTVweH0uc2xpY2tuYXZfbmF2IC5zbGlja25hdl9pdGVtIGEsLnNsaWNrbmF2X25hdiAuc2xpY2tuYXZfcGFyZW50LWxpbmsgYXtwYWRkaW5nOjA7bWFyZ2luOjB9LnNsaWNrbmF2X2JyYW5ke2Zsb2F0OmxlZnQ7Y29sb3I6I2ZmZjtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDozMHB4O3BhZGRpbmc6N3B4IDEycHg7aGVpZ2h0OjQ0cHh9"}},"time_used":34,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/2/js/modernizr.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.625Z","timestamp":1785126645625,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/2/js/modernizr.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 15114\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":51365,"size_decoded":15370,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"5aebbf8b4adfa2e20f66e509f3790457","sha1":"811d42a5ee1cb9a10fa7d852d483baa72efa4012","sha256":"17c026d87e589cd946ab8ea6266966cb685651c6eb4c2128403e83ea95b2e907","sha512":"a28a297f08989728f34df080c32d1d6ab67cd9f122328a8acda6bb15885dbc8be96d4b7a18bd60243b58a862a68faa2161b613b14dcbb05f6b0a4ce1e83f55df","ssdeep":"1536:TRCJJ/KpVsnaxvXmET56JYFE7qbe/7Y8fjWWy+4GrkfwuXxJ44ipW/VPRLq277ts:TS/FazarzCT71Pts","tlshash":"1b33a4097ce771264a13f0aa67ef7445fa26c42b2315d440f89e436c2f91f2442bdeea","first_seen":"2023-03-12T07:16:03Z","last_seen":"2026-07-27T04:32:40.532322Z","times_seen":9,"resource_available":true,"data":"LyohCiAqIE1vZGVybml6ciB2Mi43LjEKICogd3d3Lm1vZGVybml6ci5jb20KICoKICogQ29weXJpZ2h0IChjKSBGYXJ1ayBBdGVzLCBQYXVsIElyaXNoLCBBbGV4IFNleHRvbgogKiBBdmFpbGFibGUgdW5kZXIgdGhlIEJTRCBhbmQgTUlUIGxpY2Vuc2VzOiB3d3cubW9kZXJuaXpyLmNvbS9saWNlbnNlLwogKi8KCi8qCiAqIE1vZGVybml6ciB0ZXN0cyB3aGljaCBuYXRpdmUgQ1NTMyBhbmQgSFRNTDUgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBpbgogKiB0aGUgY3VycmVudCBVQSBhbmQgbWFrZXMgdGhlIHJlc3VsdHMgYXZhaWxhYmxlIHRvIHlvdSBpbiB0d28gd2F5czoKICogYXMgcHJvcGVydGllcyBvbiBhIGdsb2JhbCBNb2Rlcm5penIgb2JqZWN0LCBhbmQgYXMgY2xhc3NlcyBvbiB0aGUKICogPGh0bWw+IGVsZW1lbnQuIFRoaXMgaW5mb3JtYXRpb24gYWxsb3dzIHlvdSB0byBwcm9ncmVzc2l2ZWx5IGVuaGFuY2UKICogeW91ciBwYWdlcyB3aXRoIGEgZ3JhbnVsYXIgbGV2ZWwgb2YgY29udHJvbCBvdmVyIHRoZSBleHBlcmllbmNlLgogKgogKiBNb2Rlcm5penIgaGFzIGFuIG9wdGlvbmFsIChub3QgaW5jbHVkZWQpIGNvbmRpdGlvbmFsIHJlc291cmNlIGxvYWRlcgogKiBjYWxsZWQgTW9kZXJuaXpyLmxvYWQoKSwgYmFzZWQgb24gWWVwbm9wZS5qcyAoeWVwbm9wZWpzLmNvbSkuCiAqIFRvIGdldCBhIGJ1aWxkIHRoYXQgaW5jbHVkZXMgTW9kZXJuaXpyLmxvYWQoKSwgYXMgd2VsbCBhcyBjaG9vc2luZwogKiB3aGljaCB0ZXN0cyB0byBpbmNsdWRlLCBnbyB0byB3d3cubW9kZXJuaXpyLmNvbS9kb3dubG9hZC8KICoKICogQXV0aG9ycyAgICAgICAgRmFydWsgQXRlcywgUGF1bCBJcmlzaCwgQWxleCBTZXh0b24KICogQ29udHJpYnV0b3JzICAgUnlhbiBTZWRkb24sIEJlbiBBbG1hbgogKi8KCndpbmRvdy5Nb2Rlcm5penIgPSAoZnVuY3Rpb24oIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCApIHsKCiAgICB2YXIgdmVyc2lvbiA9ICcyLjcuMScsCgogICAgTW9kZXJuaXpyID0ge30sCgogICAgLyo+PmNzc2NsYXNzZXMqLwogICAgLy8gb3B0aW9uIGZvciBlbmFibGluZyB0aGUgSFRNTCBjbGFzc2VzIHRvIGJlIGFkZGVkCiAgICBlbmFibGVDbGFzc2VzID0gdHJ1ZSwKICAgIC8qPj5jc3NjbGFzc2VzKi8KCiAgICBkb2NFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoKICAgIC8qKgogICAgICogQ3JlYXRlIG91ciAibW9kZXJuaXpyIiBlbGVtZW50IHRoYXQgd2UgZG8gbW9zdCBmZWF0dXJlIHRlc3RzIG9uLgogICAgICovCiAgICBtb2QgPSAnbW9kZXJuaXpyJywKICAgIG1vZEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG1vZCksCiAgICBtU3R5bGUgPSBtb2RFbGVtLnN0eWxlLAoKICAgIC8qKgogICAgICogQ3JlYXRlIHRoZSBpbnB1dCBlbGVtZW50IGZvciB2YXJpb3VzIFdlYiBGb3JtcyBmZWF0dXJlIHRlc3RzLgogICAgICovCiAgICBpbnB1dEVsZW0gLyo+PmlucHV0ZWxlbSovID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSAvKj4+aW5wdXRlbGVtKi8gLAoKICAgIC8qPj5zbWlsZSovCiAgICBzbWlsZSA9ICc6KScsCiAgICAvKj4+c21pbGUqLwoKICAgIHRvU3RyaW5nID0ge30udG9TdHJpbmcsCgogICAgLy8gVE9ETyA6OiBtYWtlIHRoZSBwcmVmaXhlcyBtb3JlIGdyYW51bGFyCiAgICAvKj4+cHJlZml4ZXMqLwogICAgLy8gTGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgdG8gc2V0IGZvciBjc3MgdGVzdHMuIFNlZSB0aWNrZXQgIzIxCiAgICBwcmVmaXhlcyA9ICcgLXdlYmtpdC0gLW1vei0gLW8tIC1tcy0gJy5zcGxpdCgnICcpLAogICAgLyo+PnByZWZpeGVzKi8KCiAgICAvKj4+ZG9tcHJlZml4ZXMqLwogICAgLy8gRm9sbG93aW5nIHNwZWMgaXMgdG8gZXhwb3NlIHZlbmRvci1zcGVjaWZpYyBzdHlsZSBwcm9wZXJ0aWVzIGFzOgogICAgLy8gICBlbGVtLnN0eWxlLldlYmtpdEJvcmRlclJhZGl1cwogICAgLy8gYW5kIHRoZSBmb2xsb3dpbmcgd291bGQgYmUgaW5jb3JyZWN0OgogICAgLy8gICBlbGVtLnN0eWxlLndlYmtpdEJvcmRlclJhZGl1cwoKICAgIC8vIFdlYmtpdCBnaG9zdHMgdGhlaXIgcHJvcGVydGllcyBpbiBsb3dlcmNhc2UgYnV0IE9wZXJhICYgTW96IGRvIG5vdC4KICAgIC8vIE1pY3Jvc29mdCB1c2VzIGEgbG93ZXJjYXNlIGBtc2AgaW5zdGVhZCBvZiB0aGUgY29ycmVjdCBgTXNgIGluIElFOCsKICAgIC8vICAgZXJpay5lYWUubmV0L2FyY2hpdmVzLzIwMDgvMDMvMTAvMjEuNDguMTAvCgogICAgLy8gTW9yZSBoZXJlOiBnaXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvaXNzdWVzL2lzc3VlLzIxCiAgICBvbVByZWZpeGVzID0gJ1dlYmtpdCBNb3ogTyBtcycsCgogICAgY3Nzb21QcmVmaXhlcyA9IG9tUHJlZml4ZXMuc3BsaXQoJyAnKSwKCiAgICBkb21QcmVmaXhlcyA9IG9tUHJlZml4ZXMudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLAogICAgLyo+PmRvbXByZWZpeGVzKi8KCiAgICAvKj4+bnMqLwogICAgbnMgPSB7J3N2Zyc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyd9LAogICAgLyo+Pm5zKi8KCiAgICB0ZXN0cyA9IHt9LAogICAgaW5wdXRzID0ge30sCiAgICBhdHRycyA9IHt9LAoKICAgIGNsYXNzZXMgPSBbXSwKCiAgICBzbGljZSA9IGNsYXNzZXMuc2xpY2UsCgogICAgZmVhdHVyZU5hbWUsIC8vIHVzZWQgaW4gdGVzdGluZyBsb29wCgoKICAgIC8qPj50ZXN0c3R5bGVzKi8KICAgIC8vIEluamVjdCBlbGVtZW50IHdpdGggc3R5bGUgZWxlbWVudCBhbmQgc29tZSBDU1MgcnVsZXMKICAgIGluamVjdEVsZW1lbnRXaXRoU3R5bGVzID0gZnVuY3Rpb24oIHJ1bGUsIGNhbGxiYWNrLCBub2RlcywgdGVzdG5hbWVzICkgewoKICAgICAgdmFyIHN0eWxlLCByZXQsIG5vZGUsIGRvY092ZXJmbG93LAogICAgICAgICAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCiAgICAgICAgICAvLyBBZnRlciBwYWdlIGxvYWQgaW5qZWN0aW5nIGEgZmFrZSBib2R5IGRvZXNuJ3Qgd29yayBzbyBjaGVjayBpZiBib2R5IGV4aXN0cwogICAgICAgICAgYm9keSA9IGRvY3VtZW50LmJvZHksCiAgICAgICAgICAvLyBJRTYgYW5kIDcgd29uJ3QgcmV0dXJuIG9mZnNldFdpZHRoIG9yIG9mZnNldEhlaWdodCB1bmxlc3MgaXQncyBpbiB0aGUgYm9keSBlbGVtZW50LCBzbyB3ZSBmYWtlIGl0LgogICAgICAgICAgZmFrZUJvZHkgPSBib2R5IHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JvZHknKTsKCiAgICAgIGlmICggcGFyc2VJbnQobm9kZXMsIDEwKSApIHsKICAgICAgICAgIC8vIEluIG9yZGVyIG5vdCB0byBnaXZlIGZhbHNlIHBvc2l0aXZlcyB3ZSBjcmVhdGUgYSBub2RlIGZvciBlYWNoIHRlc3QKICAgICAgICAgIC8vIFRoaXMgYWxzbyBhbGxvd3MgdGhlIG1ldGhvZCB0byBzY2FsZSBmb3IgdW5zcGVjaWZpZWQgdXNlcwogICAgICAgICAgd2hpbGUgKCBub2Rlcy0tICkgewogICAgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICBub2RlLmlkID0gdGVzdG5hbWVzID8gdGVzdG5hbWVzW25vZGVzXSA6IG1vZCArIChub2RlcyArIDEpOwogICAgICAgICAgICAgIGRpdi5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gPHN0eWxlPiBlbGVtZW50cyBpbiBJRTYtOSBhcmUgY29uc2lkZXJlZCAnTm9TY29wZScgZWxlbWVudHMgYW5kIHRoZXJlZm9yZSB3aWxsIGJlIHJlbW92ZWQKICAgICAgLy8gd2hlbiBpbmplY3RlZCB3aXRoIGlubmVySFRNTC4gVG8gZ2V0IGFyb3VuZCB0aGlzIHlvdSBuZWVkIHRvIHByZXBlbmQgdGhlICdOb1Njb3BlJyBlbGVtZW50CiAgICAgIC8vIHdpdGggYSAnc2NvcGVkJyBlbGVtZW50LCBpbiBvdXIgY2FzZSB0aGUgc29mdC1oeXBoZW4gZW50aXR5IGFzIGl0IHdvbid0IG1lc3Mgd2l0aCBvdXIgbWVhc3VyZW1lbnRzLgogICAgICAvLyBtc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzMzg5NyUyOFZTLjg1JTI5LmFzcHgKICAgICAgLy8gRG9jdW1lbnRzIHNlcnZlZCBhcyB4bWwgd2lsbCB0aHJvdyBpZiB1c2luZyAmc2h5OyBzbyB1c2UgeG1sIGZyaWVuZGx5IGVuY29kZWQgdmVyc2lvbi4gU2VlIGlzc3VlICMyNzcKICAgICAgc3R5bGUgPSBbJyYjMTczOycsJzxzdHlsZSBpZD0icycsIG1vZCwgJyI+JywgcnVsZSwgJzwvc3R5bGU+J10uam9pbignJyk7CiAgICAgIGRpdi5pZCA9IG1vZDsKICAgICAgLy8gSUU2IHdpbGwgZmFsc2UgcG9zaXRpdmUgb24gc29tZSB0ZXN0cyBkdWUgdG8gdGhlIHN0eWxlIGVsZW1lbnQgaW5zaWRlIHRoZSB0ZXN0IGRpdiBzb21laG93IGludGVyZmVyaW5nIG9mZnNldEhlaWdodCwgc28gaW5zZXJ0IGl0IGludG8gYm9keSBvciBmYWtlYm9keS4KICAgICAgLy8gT3BlcmEgd2lsbCBhY3QgYWxsIHF1aXJreSB3aGVuIGluamVjdGluZyBlbGVtZW50cyBpbiBkb2N1bWVudEVsZW1lbnQgd2hlbiBwYWdlIGlzIHNlcnZlZCBhcyB4bWwsIG5lZWRzIGZha2Vib2R5IHRvby4gIzI3MAogICAgICAoYm9keSA/IGRpdiA6IGZha2VCb2R5KS5pbm5lckhUTUwgKz0gc3R5bGU7CiAgICAgIGZha2VCb2R5LmFwcGVuZENoaWxkKGRpdik7CiAgICAgIGlmICggIWJvZHkgKSB7CiAgICAgICAgICAvL2F2b2lkIGNyYXNoaW5nIElFOCwgaWYgYmFja2dyb3VuZCBpbWFnZSBpcyB1c2VkCiAgICAgICAgICBmYWtlQm9keS5zdHlsZS5iYWNrZ3JvdW5kID0gJyc7CiAgICAgICAgICAvL1NhZmFyaSA1LjEzLzUuMS40IE9TWCBzdG9wcyBsb2FkaW5nIGlmIDo6LXdlYmtpdC1zY3JvbGxiYXIgaXMgdXNlZCBhbmQgc2Nyb2xsYmFycyBhcmUgdmlzaWJsZQogICAgICAgICAgZmFrZUJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKICAgICAgICAgIGRvY092ZXJmbG93ID0gZG9jRWxlbWVudC5zdHlsZS5vdmVyZmxvdzsKICAgICAgICAgIGRvY0VsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKICAgICAgICAgIGRvY0VsZW1lbnQuYXBwZW5kQ2hpbGQoZmFrZUJvZHkpOwogICAgICB9CgogICAgICByZXQgPSBjYWxsYmFjayhkaXYsIHJ1bGUpOwogICAgICAvLyBJZiB0aGlzIGlzIGRvbmUgYWZ0ZXIgcGFnZSBsb2FkIHdlIGRvbid0IHdhbnQgdG8gcmVtb3ZlIHRoZSBib2R5IHNvIGNoZWNrIGlmIGJvZHkgZXhpc3RzCiAgICAgIGlmICggIWJvZHkgKSB7CiAgICAgICAgICBmYWtlQm9keS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZha2VCb2R5KTsKICAgICAgICAgIGRvY0VsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSBkb2NPdmVyZmxvdzsKICAgICAgfSBlbHNlIHsKICAgICAgICAgIGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpdik7CiAgICAgIH0KCiAgICAgIHJldHVybiAhIXJldDsKCiAgICB9LAogICAgLyo+PnRlc3RzdHlsZXMqLwoKICAgIC8qPj5tcSovCiAgICAvLyBhZGFwdGVkIGZyb20gbWF0Y2hNZWRpYSBwb2x5ZmlsbAogICAgLy8gYnkgU2NvdHQgSmVobCBhbmQgUGF1bCBJcmlzaAogICAgLy8gZ2lzdC5naXRodWIuY29tLzc4Njc2OAogICAgdGVzdE1lZGlhUXVlcnkgPSBmdW5jdGlvbiggbXEgKSB7CgogICAgICB2YXIgbWF0Y2hNZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhIHx8IHdpbmRvdy5tc01hdGNoTWVkaWE7CiAgICAgIGlmICggbWF0Y2hNZWRpYSApIHsKICAgICAgICByZXR1cm4gbWF0Y2hNZWRpYShtcSkubWF0Y2hlczsKICAgICAgfQoKICAgICAgdmFyIGJvb2w7CgogICAgICBpbmplY3RFbGVtZW50V2l0aFN0eWxlcygnQG1lZGlhICcgKyBtcSArICcgeyAjJyArIG1vZCArICcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0gfScsIGZ1bmN0aW9uKCBub2RlICkgewogICAgICAgIGJvb2wgPSAod2luZG93LmdldENvbXB1dGVkU3R5bGUgPwogICAgICAgICAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKG5vZGUsIG51bGwpIDoKICAgICAgICAgICAgICAgICAgbm9kZS5jdXJyZW50U3R5bGUpWydwb3NpdGlvbiddID09ICdhYnNvbHV0ZSc7CiAgICAgIH0pOwoKICAgICAgcmV0dXJuIGJvb2w7CgogICAgIH0sCiAgICAgLyo+Pm1xKi8KCgogICAgLyo+Pmhhc2V2ZW50Ki8KICAgIC8vCiAgICAvLyBpc0V2ZW50U3VwcG9ydGVkIGRldGVybWluZXMgaWYgYSBnaXZlbiBlbGVtZW50IHN1cHBvcnRzIHRoZSBnaXZlbiBldmVudAogICAgLy8ga2FuZ2F4LmdpdGh1Yi5jb20vaXNldmVudHN1cHBvcnRlZC8KICAgIC8vCiAgICAvLyBUaGUgZm9sbG93aW5nIHJlc3VsdHMgYXJlIGtub3duIGluY29ycmVjdHM6CiAgICAvLyAgIE1vZGVybml6ci5oYXNFdmVudCgid2Via2l0VHJhbnNpdGlvbkVuZCIsIGVsZW0pIC8vIGZhbHNlIG5lZ2F0aXZlCiAgICAvLyAgIE1vZGVybml6ci5oYXNFdmVudCgidGV4dElucHV0IikgLy8gaW4gV2Via2l0LiBnaXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvaXNzdWVzLzMzMwogICAgLy8gICAuLi4KICAgIGlzRXZlbnRTdXBwb3J0ZWQgPSAoZnVuY3Rpb24oKSB7CgogICAgICB2YXIgVEFHTkFNRVMgPSB7CiAgICAgICAgJ3NlbGVjdCc6ICdpbnB1dCcsICdjaGFuZ2UnOiAnaW5wdXQnLAogICAgICAgICdzdWJtaXQnOiAnZm9ybScsICdyZXNldCc6ICdmb3JtJywKICAgICAgICAnZXJyb3InOiAnaW1nJywgJ2xvYWQnOiAnaW1nJywgJ2Fib3J0JzogJ2ltZycKICAgICAgfTsKCiAgICAgIGZ1bmN0aW9uIGlzRXZlbnRTdXBwb3J0ZWQoIGV2ZW50TmFtZSwgZWxlbWVudCApIHsKCiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChUQUdOQU1FU1tldmVudE5hbWVdIHx8ICdkaXYnKTsKICAgICAgICBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lOwoKICAgICAgICAvLyBXaGVuIHVzaW5nIGBzZXRBdHRyaWJ1dGVgLCBJRSBza2lwcyAidW5sb2FkIiwgV2ViS2l0IHNraXBzICJ1bmxvYWQiIGFuZCAicmVzaXplIiwgd2hlcmVhcyBgaW5gICJjYXRjaGVzIiB0aG9zZQogICAgICAgIHZhciBpc1N1cHBvcnRlZCA9IGV2ZW50TmFtZSBpbiBlbGVtZW50OwoKICAgICAgICBpZiAoICFpc1N1cHBvcnRlZCApIHsKICAgICAgICAgIC8vIElmIGl0IGhhcyBubyBgc2V0QXR0cmlidXRlYCAoaS5lLiBkb2Vzbid0IGltcGxlbWVudCBOb2RlIGludGVyZmFjZSksIHRyeSBnZW5lcmljIGVsZW1lbnQKICAgICAgICAgIGlmICggIWVsZW1lbnQuc2V0QXR0cmlidXRlICkgewogICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIGVsZW1lbnQuc2V0QXR0cmlidXRlICYmIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlICkgewogICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShldmVudE5hbWUsICcnKTsKICAgICAgICAgICAgaXNTdXBwb3J0ZWQgPSBpcyhlbGVtZW50W2V2ZW50TmFtZV0sICdmdW5jdGlvbicpOwoKICAgICAgICAgICAgLy8gSWYgcHJvcGVydHkgd2FzIGNyZWF0ZWQsICJyZW1vdmUgaXQiIChieSBzZXR0aW5nIHZhbHVlIHRvIGB1bmRlZmluZWRgKQogICAgICAgICAgICBpZiAoICFpcyhlbGVtZW50W2V2ZW50TmFtZV0sICd1bmRlZmluZWQnKSApIHsKICAgICAgICAgICAgICBlbGVtZW50W2V2ZW50TmFtZV0gPSB1bmRlZmluZWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZXZlbnROYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGVsZW1lbnQgPSBudWxsOwogICAgICAgIHJldHVybiBpc1N1cHBvcnRlZDsKICAgICAgfQogICAgICByZXR1cm4gaXNFdmVudFN1cHBvcnRlZDsKICAgIH0pKCksCiAgICAvKj4+aGFzZXZlbnQqLwoKICAgIC8vIFRPRE8gOjogQWRkIGZsYWcgZm9yIGhhc293bnByb3AgPyBkaWRuJ3QgbGFzdCB0aW1lCgogICAgLy8gaGFzT3duUHJvcGVydHkgc2hpbSBieSBrYW5nYXggbmVlZGVkIGZvciBTYWZhcmkgMi4wIHN1cHBvcnQKICAgIF9oYXNPd25Qcm9wZXJ0eSA9ICh7fSkuaGFzT3duUHJvcGVydHksIGhhc093blByb3A7CgogICAgaWYgKCAhaXMoX2hhc093blByb3BlcnR5LCAndW5kZWZpbmVkJykgJiYgIWlzKF9oYXNPd25Qcm9wZXJ0eS5jYWxsLCAndW5kZWZpbmVkJykgKSB7CiAgICAgIGhhc093blByb3AgPSBmdW5jdGlvbiAob2JqZWN0LCBwcm9wZXJ0eSkgewogICAgICAgIHJldHVybiBfaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsKICAgICAgfTsKICAgIH0KICAgIGVsc2UgewogICAgICBoYXNPd25Qcm9wID0gZnVuY3Rpb24gKG9iamVjdCwgcHJvcGVydHkpIHsgLyogeWVzLCB0aGlzIGNhbiBnaXZlIGZhbHNlIHBvc2l0aXZlcy9uZWdhdGl2ZXMsIGJ1dCBtb3N0IG9mIHRoZSB0aW1lIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhvc2UgKi8KICAgICAgICByZXR1cm4gKChwcm9wZXJ0eSBpbiBvYmplY3QpICYmIGlzKG9iamVjdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbcHJvcGVydHldLCAndW5kZWZpbmVkJykpOwogICAgICB9OwogICAgfQoKICAgIC8vIEFkYXB0ZWQgZnJvbSBFUzUtc2hpbSBodHRwczovL2dpdGh1Yi5jb20va3Jpc2tvd2FsL2VzNS1zaGltL2Jsb2IvbWFzdGVyL2VzNS1zaGltLmpzCiAgICAvLyBlczUuZ2l0aHViLmNvbS8jeDE1LjMuNC41CgogICAgaWYgKCFGdW5jdGlvbi5wcm90b3R5cGUuYmluZCkgewogICAgICBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uIGJpbmQodGhhdCkgewoKICAgICAgICB2YXIgdGFyZ2V0ID0gdGhpczsKCiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSwKICAgICAgICAgICAgYm91bmQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIGJvdW5kKSB7CgogICAgICAgICAgICAgIHZhciBGID0gZnVuY3Rpb24oKXt9OwogICAgICAgICAgICAgIEYucHJvdG90eXBlID0gdGFyZ2V0LnByb3RvdHlwZTsKICAgICAgICAgICAgICB2YXIgc2VsZiA9IG5ldyBGKCk7CgogICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0YXJnZXQuYXBwbHkoCiAgICAgICAgICAgICAgICAgIHNlbGYsCiAgICAgICAgICAgICAgICAgIGFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChPYmplY3QocmVzdWx0KSA9PT0gcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseSgKICAgICAgICAgICAgICAgICAgdGhhdCwKICAgICAgICAgICAgICAgICAgYXJncy5jb25jYXQoc2xpY2UuY2FsbChhcmd1bWVudHMpKQogICAgICAgICAgICAgICk7CgogICAgICAgICAgICB9CgogICAgICAgIH07CgogICAgICAgIHJldHVybiBib3VuZDsKICAgICAgfTsKICAgIH0KCiAgICAvKioKICAgICAqIHNldENzcyBhcHBsaWVzIGdpdmVuIHN0eWxlcyB0byB0aGUgTW9kZXJuaXpyIERPTSBub2RlLgogICAgICovCiAgICBmdW5jdGlvbiBzZXRDc3MoIHN0ciApIHsKICAgICAgICBtU3R5bGUuY3NzVGV4dCA9IHN0cjsKICAgIH0KCiAgICAvKioKICAgICAqIHNldENzc0FsbCBleHRyYXBvbGF0ZXMgYWxsIHZlbmRvci1zcGVjaWZpYyBjc3Mgc3RyaW5ncy4KICAgICAqLwogICAgZnVuY3Rpb24gc2V0Q3NzQWxsKCBzdHIxLCBzdHIyICkgewogICAgICAgIHJldHVybiBzZXRDc3MocHJlZml4ZXMuam9pbihzdHIxICsgJzsnKSArICggc3RyMiB8fCAnJyApKTsKICAgIH0KCiAgICAvKioKICAgICAqIGlzIHJldHVybnMgYSBib29sZWFuIGZvciBpZiB0eXBlb2Ygb2JqIGlzIGV4YWN0bHkgdHlwZS4KICAgICAqLwogICAgZnVuY3Rpb24gaXMoIG9iaiwgdHlwZSApIHsKICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gdHlwZTsKICAgIH0KCiAgICAvKioKICAgICAqIGNvbnRhaW5zIHJldHVybnMgYSBib29sZWFuIGZvciBpZiBzdWJzdHIgaXMgZm91bmQgd2l0aGluIHN0ci4KICAgICAqLwogICAgZnVuY3Rpb24gY29udGFpbnMoIHN0ciwgc3Vic3RyICkgewogICAgICAgIHJldHVybiAhIX4oJycgKyBzdHIpLmluZGV4T2Yoc3Vic3RyKTsKICAgIH0KCiAgICAvKj4+dGVzdHByb3AqLwoKICAgIC8vIHRlc3RQcm9wcyBpcyBhIGdlbmVyaWMgQ1NTIC8gRE9NIHByb3BlcnR5IHRlc3QuCgogICAgLy8gSW4gdGVzdGluZyBzdXBwb3J0IGZvciBhIGdpdmVuIENTUyBwcm9wZXJ0eSwgaXQncyBsZWdpdCB0byB0ZXN0OgogICAgLy8gICAgYGVsZW0uc3R5bGVbc3R5bGVOYW1lXSAhPT0gdW5kZWZpbmVkYAogICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIHN1cHBvcnRlZCBpdCB3aWxsIHJldHVybiBhbiBlbXB0eSBzdHJpbmcsCiAgICAvLyBpZiB1bnN1cHBvcnRlZCBpdCB3aWxsIHJldHVybiB1bmRlZmluZWQuCgogICAgLy8gV2UnbGwgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyBxdWljayB0ZXN0IGFuZCBza2lwIHNldHRpbmcgYSBzdHlsZQogICAgLy8gb24gb3VyIG1vZGVybml6ciBlbGVtZW50LCBidXQgaW5zdGVhZCBqdXN0IHRlc3RpbmcgdW5kZWZpbmVkIHZzCiAgICAvLyBlbXB0eSBzdHJpbmcuCgogICAgLy8gQmVjYXVzZSB0aGUgdGVzdGluZyBvZiB0aGUgQ1NTIHByb3BlcnR5IG5hbWVzICh3aXRoICItIiwgYXMKICAgIC8vIG9wcG9zZWQgdG8gdGhlIGNhbWVsQ2FzZSBET00gcHJvcGVydGllcykgaXMgbm9uLXBvcnRhYmxlIGFuZAogICAgLy8gbm9uLXN0YW5kYXJkIGJ1dCB3b3JrcyBpbiBXZWJLaXQgYW5kIElFIChidXQgbm90IEdlY2tvIG9yIE9wZXJhKSwKICAgIC8vIHdlIGV4cGxpY2l0bHkgcmVqZWN0IHByb3BlcnRpZXMgd2l0aCBkYXNoZXMgc28gdGhhdCBhdXRob3JzCiAgICAvLyBkZXZlbG9waW5nIGluIFdlYktpdCBvciBJRSBmaXJzdCBkb24ndCBlbmQgdXAgd2l0aAogICAgLy8gYnJvd3Nlci1zcGVjaWZpYyBjb250ZW50IGJ5IGFjY2lkZW50LgoKICAgIGZ1bmN0aW9uIHRlc3RQcm9wcyggcHJvcHMsIHByZWZpeGVkICkgewogICAgICAgIGZvciAoIHZhciBpIGluIHByb3BzICkgewogICAgICAgICAgICB2YXIgcHJvcCA9IHByb3BzW2ldOwogICAgICAgICAgICBpZiAoICFjb250YWlucyhwcm9wLCAiLSIpICYmIG1TdHlsZVtwcm9wXSAhPT0gdW5kZWZpbmVkICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeGVkID09ICdwZngnID8gcHJvcCA6IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgLyo+PnRlc3Rwcm9wKi8KCiAgICAvLyBUT0RPIDo6IGFkZCB0ZXN0RE9NUHJvcHMKICAgIC8qKgogICAgICogdGVzdERPTVByb3BzIGlzIGEgZ2VuZXJpYyBET00gcHJvcGVydHkgdGVzdDsgaWYgYSBicm93c2VyIHN1cHBvcnRzCiAgICAgKiAgIGEgY2VydGFpbiBwcm9wZXJ0eSwgaXQgd29uJ3QgcmV0dXJuIHVuZGVmaW5lZCBmb3IgaXQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRlc3RET01Qcm9wcyggcHJvcHMsIG9iaiwgZWxlbSApIHsKICAgICAgICBmb3IgKCB2YXIgaSBpbiBwcm9wcyApIHsKICAgICAgICAgICAgdmFyIGl0ZW0gPSBvYmpbcHJvcHNbaV1dOwogICAgICAgICAgICBpZiAoIGl0ZW0gIT09IHVuZGVmaW5lZCkgewoKICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgcHJvcGVydHkgbmFtZSBhcyBhIHN0cmluZwogICAgICAgICAgICAgICAgaWYgKGVsZW0gPT09IGZhbHNlKSByZXR1cm4gcHJvcHNbaV07CgogICAgICAgICAgICAgICAgLy8gbGV0J3MgYmluZCBhIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICBpZiAoaXMoaXRlbSwgJ2Z1bmN0aW9uJykpewogICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGF1dG9iaW5kIHVubGVzcyBvdmVycmlkZQogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5iaW5kKGVsZW0gfHwgb2JqKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIHVuYm91bmQgZnVuY3Rpb24gb3Igb2JqIG9yIHZhbHVlCiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyo+PnRlc3RhbGxwcm9wcyovCiAgICAvKioKICAgICAqIHRlc3RQcm9wc0FsbCB0ZXN0cyBhIGxpc3Qgb2YgRE9NIHByb3BlcnRpZXMgd2Ugd2FudCB0byBjaGVjayBhZ2FpbnN0LgogICAgICogICBXZSBzcGVjaWZ5IGxpdGVyYWxseSBBTEwgcG9zc2libGUgKGtub3duIGFuZC9vciBsaWtlbHkpIHByb3BlcnRpZXMgb24KICAgICAqICAgdGhlIGVsZW1lbnQgaW5jbHVkaW5nIHRoZSBub24tdmVuZG9yIHByZWZpeGVkIG9uZSwgZm9yIGZvcndhcmQtCiAgICAgKiAgIGNvbXBhdGliaWxpdHkuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRlc3RQcm9wc0FsbCggcHJvcCwgcHJlZml4ZWQsIGVsZW0gKSB7CgogICAgICAgIHZhciB1Y1Byb3AgID0gcHJvcC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHByb3Auc2xpY2UoMSksCiAgICAgICAgICAgIHByb3BzICAgPSAocHJvcCArICcgJyArIGNzc29tUHJlZml4ZXMuam9pbih1Y1Byb3AgKyAnICcpICsgdWNQcm9wKS5zcGxpdCgnICcpOwoKICAgICAgICAvLyBkaWQgdGhleSBjYWxsIC5wcmVmaXhlZCgnYm94U2l6aW5nJykgb3IgYXJlIHdlIGp1c3QgdGVzdGluZyBhIHByb3A/CiAgICAgICAgaWYoaXMocHJlZml4ZWQsICJzdHJpbmciKSB8fCBpcyhwcmVmaXhlZCwgInVuZGVmaW5lZCIpKSB7CiAgICAgICAgICByZXR1cm4gdGVzdFByb3BzKHByb3BzLCBwcmVmaXhlZCk7CgogICAgICAgIC8vIG90aGVyd2lzZSwgdGhleSBjYWxsZWQgLnByZWZpeGVkKCdyZXF1ZXN0QW5pbWF0aW9uRnJhbWUnLCB3aW5kb3dbLCBlbGVtXSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcHJvcHMgPSAocHJvcCArICcgJyArIChkb21QcmVmaXhlcykuam9pbih1Y1Byb3AgKyAnICcpICsgdWNQcm9wKS5zcGxpdCgnICcpOwogICAgICAgICAgcmV0dXJuIHRlc3RET01Qcm9wcyhwcm9wcywgcHJlZml4ZWQsIGVsZW0pOwogICAgICAgIH0KICAgIH0KICAgIC8qPj50ZXN0YWxscHJvcHMqLwoKCiAgICAvKioKICAgICAqIFRlc3RzCiAgICAgKiAtLS0tLQogICAgICovCgogICAgLy8gVGhlICpuZXcqIGZsZXhib3gKICAgIC8vIGRldi53My5vcmcvY3Nzd2cvY3NzMy1mbGV4Ym94CgogICAgdGVzdHNbJ2ZsZXhib3gnXSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGVzdFByb3BzQWxsKCdmbGV4V3JhcCcpOwogICAgfTsKCiAgICAvLyBUaGUgKm9sZCogZmxleGJveAogICAgLy8gd3d3LnczLm9yZy9UUi8yMDA5L1dELWNzczMtZmxleGJveC0yMDA5MDcyMy8KCiAgICB0ZXN0c1snZmxleGJveGxlZ2FjeSddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRlc3RQcm9wc0FsbCgnYm94RGlyZWN0aW9uJyk7CiAgICB9OwoKICAgIC8vIE9uIHRoZSBTNjAgYW5kIEJCIFN0b3JtLCBnZXRDb250ZXh0IGV4aXN0cywgYnV0IGFsd2F5cyByZXR1cm5zIHVuZGVmaW5lZAogICAgLy8gc28gd2UgYWN0dWFsbHkgaGF2ZSB0byBjYWxsIGdldENvbnRleHQoKSB0byB2ZXJpZnkKICAgIC8vIGdpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9pc3N1ZXMvaXNzdWUvOTcvCgogICAgdGVzdHNbJ2NhbnZhcyddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgICAgICByZXR1cm4gISEoZWxlbS5nZXRDb250ZXh0ICYmIGVsZW0uZ2V0Q29udGV4dCgnMmQnKSk7CiAgICB9OwoKICAgIHRlc3RzWydjYW52YXN0ZXh0J10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gISEoTW9kZXJuaXpyWydjYW52YXMnXSAmJiBpcyhkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpLmZpbGxUZXh0LCAnZnVuY3Rpb24nKSk7CiAgICB9OwoKICAgIC8vIHdlYmsuaXQvNzAxMTcgaXMgdHJhY2tpbmcgYSBsZWdpdCBXZWJHTCBmZWF0dXJlIGRldGVjdCBwcm9wb3NhbAoKICAgIC8vIFdlIGRvIGEgc29mdCBkZXRlY3Qgd2hpY2ggbWF5IGZhbHNlIHBvc2l0aXZlIGluIG9yZGVyIHRvIGF2b2lkCiAgICAvLyBhbiBleHBlbnNpdmUgY29udGV4dCBjcmVhdGlvbjogYnVnemlsLmxhLzczMjQ0MQoKICAgIHRlc3RzWyd3ZWJnbCddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuICEhd2luZG93LldlYkdMUmVuZGVyaW5nQ29udGV4dDsKICAgIH07CgogICAgLyoKICAgICAqIFRoZSBNb2Rlcm5penIudG91Y2ggdGVzdCBvbmx5IGluZGljYXRlcyBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cwogICAgICogICAgdG91Y2ggZXZlbnRzLCB3aGljaCBkb2VzIG5vdCBuZWNlc3NhcmlseSByZWZsZWN0IGEgdG91Y2hzY3JlZW4KICAgICAqICAgIGRldmljZSwgYXMgZXZpZGVuY2VkIGJ5IHRhYmxldHMgcnVubmluZyBXaW5kb3dzIDcgb3IsIGFsYXMsCiAgICAgKiAgICB0aGUgUGFsbSBQcmUgLyBXZWJPUyAodG91Y2gpIHBob25lcy4KICAgICAqCiAgICAgKiBBZGRpdGlvbmFsbHksIENocm9tZSAoZGVza3RvcCkgdXNlZCB0byBsaWUgYWJvdXQgaXRzIHN1cHBvcnQgb24gdGhpcywKICAgICAqICAgIGJ1dCB0aGF0IGhhcyBzaW5jZSBiZWVuIHJlY3RpZmllZDogY3JidWcuY29tLzM2NDE1CiAgICAgKgogICAgICogV2UgYWxzbyB0ZXN0IGZvciBGaXJlZm94IDQgTXVsdGl0b3VjaCBTdXBwb3J0LgogICAgICoKICAgICAqIEZvciBtb3JlIGluZm8sIHNlZTogbW9kZXJuaXpyLmdpdGh1Yi5jb20vTW9kZXJuaXpyL3RvdWNoLmh0bWwKICAgICAqLwoKICAgIHRlc3RzWyd0b3VjaCddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGJvb2w7CgogICAgICAgIGlmKCgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHx8IHdpbmRvdy5Eb2N1bWVudFRvdWNoICYmIGRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaCkgewogICAgICAgICAgYm9vbCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluamVjdEVsZW1lbnRXaXRoU3R5bGVzKFsnQG1lZGlhICgnLHByZWZpeGVzLmpvaW4oJ3RvdWNoLWVuYWJsZWQpLCgnKSxtb2QsJyknLCd7I21vZGVybml6cnt0b3A6OXB4O3Bvc2l0aW9uOmFic29sdXRlfX0nXS5qb2luKCcnKSwgZnVuY3Rpb24oIG5vZGUgKSB7CiAgICAgICAgICAgIGJvb2wgPSBub2RlLm9mZnNldFRvcCA9PT0gOTsKICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGJvb2w7CiAgICB9OwoKCiAgICAvLyBnZW9sb2NhdGlvbiBpcyBvZnRlbiBjb25zaWRlcmVkIGEgdHJpdmlhbCBmZWF0dXJlIGRldGVjdC4uLgogICAgLy8gVHVybnMgb3V0LCBpdCdzIHF1aXRlIHRyaWNreSB0byBnZXQgcmlnaHQ6CiAgICAvLwogICAgLy8gVXNpbmcgISFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24gZG9lcyB0d28gdGhpbmdzIHdlIGRvbid0IHdhbnQuIEl0OgogICAgLy8gICAxLiBMZWFrcyBtZW1vcnkgaW4gSUU5OiBnaXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvaXNzdWVzLzUxMwogICAgLy8gICAyLiBEaXNhYmxlcyBwYWdlIGNhY2hpbmcgaW4gV2ViS2l0OiB3ZWJrLml0LzQzOTU2CiAgICAvLwogICAgLy8gTWVhbndoaWxlLCBpbiBGaXJlZm94IDwgOCwgYW4gYWJvdXQ6Y29uZmlnIHNldHRpbmcgY291bGQgZXhwb3NlCiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlIHRoYXQgd291bGQgdGhyb3cgYW4gZXhjZXB0aW9uOiBidWd6aWwubGEvNjg4MTU4CgogICAgdGVzdHNbJ2dlb2xvY2F0aW9uJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gJ2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3I7CiAgICB9OwoKCiAgICB0ZXN0c1sncG9zdG1lc3NhZ2UnXSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gISF3aW5kb3cucG9zdE1lc3NhZ2U7CiAgICB9OwoKCiAgICAvLyBDaHJvbWUgaW5jb2duaXRvIG1vZGUgdXNlZCB0byB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiB1c2luZyBvcGVuRGF0YWJhc2UKICAgIC8vIEl0IGRvZXNuJ3QgYW55bW9yZS4KICAgIHRlc3RzWyd3ZWJzcWxkYXRhYmFzZSddID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAhIXdpbmRvdy5vcGVuRGF0YWJhc2U7CiAgICB9OwoKICAgIC8vIFZlbmRvcnMgaGFkIGluY29uc2lzdGVudCBwcmVmaXhpbmcgd2l0aCB0aGUgZXhwZXJpbWVudGFsIEluZGV4ZWQgREI6CiAgICAvLyAtIFdlYmtpdCdzIGltcGxlbWVudGF0aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCB3ZWJraXRJbmRleGVkREIKICAgIC8vIC0gRmlyZWZveCBzaGlwcGVkIG1vel9pbmRleGVkREIgYmVmb3JlIEZGNGI5LCBidXQgc2luY2UgdGhlbiBoYXMgYmVlbiBtb3pJbmRleGVkREIKICAgIC8vIEZvciBzcGVlZCwgd2UgZG9uJ3QgdGVzdCB0aGUgbGVnYWN5IChhbmQgYmV0YS1vbmx5KSBpbmRleGVkREIKICAgIHRlc3RzWydpbmRleGVkREInXSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gISF0ZXN0UHJvcHNBbGwoImluZGV4ZWREQiIsIHdpbmRvdyk7CiAgICB9OwoKICAgIC8vIGRvY3VtZW50TW9kZSBsb2dpYyBmcm9tIFlVSSB0byBmaWx0ZXIgb3V0IElFOCBDb21wYXQgTW9kZQogICAgLy8gICB3aGljaCBmYWxzZSBwb3NpdGl2ZXMuCiAgICB0ZXN0c1snaGFzaGNoYW5nZSddID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpc0V2ZW50U3VwcG9ydGVkKCdoYXNoY2hhbmdlJywgd2luZG93KSAmJiAoZG9jdW1lbnQuZG9jdW1lbnRNb2RlID09PSB1bmRlZmluZWQgfHwgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID4gNyk7CiAgICB9OwoKICAgIC8vIFBlciAxLjY6CiAgICAvLyBUaGlzIHVzZWQgdG8gYmUgTW9kZXJuaXpyLmhpc3RvcnltYW5hZ2VtZW50IGJ1dCB0aGUgbG9uZ2VyCiAgICAvLyBuYW1lIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYSBzaG9ydGVyIGFuZCBwcm9wZXJ0eS1tYXRjaGluZyBvbmUuCiAgICAvLyBUaGUgb2xkIEFQSSBpcyBzdGlsbCBhdmFpbGFibGUgaW4gMS42LCBidXQgYXMgb2YgMi4wIHdpbGwgdGhyb3cgYSB3YXJuaW5nLAogICAgLy8gYW5kIGluIHRoZSBmaXJzdCByZWxlYXNlIHRoZXJlYWZ0ZXIgZGlzYXBwZWFyIGVudGlyZWx5LgogICAgdGVzdHNbJ2hpc3RvcnknXSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gISEod2luZG93Lmhpc3RvcnkgJiYgaGlzdG9yeS5wdXNoU3RhdGUpOwogICAgfTsKCiAgICB0ZXN0c1snZHJhZ2FuZGRyb3AnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICByZXR1cm4gKCdkcmFnZ2FibGUnIGluIGRpdikgfHwgKCdvbmRyYWdzdGFydCcgaW4gZGl2ICYmICdvbmRyb3AnIGluIGRpdik7CiAgICB9OwoKICAgIC8vIEZGMy42IHdhcyBFT0wnZWQgb24gNC8yNC8xMiwgYnV0IHRoZSBFU1IgdmVyc2lvbiBvZiBGRjEwCiAgICAvLyB3aWxsIGJlIHN1cHBvcnRlZCB1bnRpbCBGRjE5ICgyLzEyLzEzKSwgYXQgd2hpY2ggdGltZSwgRVNSIGJlY29tZXMgRkYxNy4KICAgIC8vIEZGMTAgc3RpbGwgdXNlcyBwcmVmaXhlcywgc28gY2hlY2sgZm9yIGl0IHVudGlsIHRoZW4uCiAgICAvLyBmb3IgbW9yZSBFU1IgaW5mbywgc2VlOiBtb3ppbGxhLm9yZy9lbi1VUy9maXJlZm94L29yZ2FuaXphdGlvbnMvZmFxLwogICAgdGVzdHNbJ3dlYnNvY2tldHMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiAnV2ViU29ja2V0JyBpbiB3aW5kb3cgfHwgJ01veldlYlNvY2tldCcgaW4gd2luZG93OwogICAgfTsKCgogICAgLy8gY3NzLXRyaWNrcy5jb20vcmdiYS1icm93c2VyLXN1cHBvcnQvCiAgICB0ZXN0c1sncmdiYSddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgLy8gU2V0IGFuIHJnYmEoKSBjb2xvciBhbmQgY2hlY2sgdGhlIHJldHVybmVkIHZhbHVlCgogICAgICAgIHNldENzcygnYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1MCwyNTUsMTUwLC41KScpOwoKICAgICAgICByZXR1cm4gY29udGFpbnMobVN0eWxlLmJhY2tncm91bmRDb2xvciwgJ3JnYmEnKTsKICAgIH07CgogICAgdGVzdHNbJ2hzbGEnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIC8vIFNhbWUgYXMgcmdiYSgpLCBpbiBmYWN0LCBicm93c2VycyByZS1tYXAgaHNsYSgpIHRvIHJnYmEoKSBpbnRlcm5hbGx5LAogICAgICAgIC8vICAgZXhjZXB0IElFOSB3aG8gcmV0YWlucyBpdCBhcyBoc2xhCgogICAgICAgIHNldENzcygnYmFja2dyb3VuZC1jb2xvcjpoc2xhKDEyMCw0MCUsMTAwJSwuNSknKTsKCiAgICAgICAgcmV0dXJuIGNvbnRhaW5zKG1TdHlsZS5iYWNrZ3JvdW5kQ29sb3IsICdyZ2JhJykgfHwgY29udGFpbnMobVN0eWxlLmJhY2tncm91bmRDb2xvciwgJ2hzbGEnKTsKICAgIH07CgogICAgdGVzdHNbJ211bHRpcGxlYmdzJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICAvLyBTZXR0aW5nIG11bHRpcGxlIGltYWdlcyBBTkQgYSBjb2xvciBvbiB0aGUgYmFja2dyb3VuZCBzaG9ydGhhbmQgcHJvcGVydHkKICAgICAgICAvLyAgYW5kIHRoZW4gcXVlcnlpbmcgdGhlIHN0eWxlLmJhY2tncm91bmQgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBudW1iZXIgb2YKICAgICAgICAvLyAgb2NjdXJyZW5jZXMgb2YgInVybCgiIGlzIGEgcmVsaWFibGUgbWV0aG9kIGZvciBkZXRlY3RpbmcgQUNUVUFMIHN1cHBvcnQgZm9yIHRoaXMhCgogICAgICAgIHNldENzcygnYmFja2dyb3VuZDp1cmwoaHR0cHM6Ly8pLHVybChodHRwczovLykscmVkIHVybChodHRwczovLyknKTsKCiAgICAgICAgLy8gSWYgdGhlIFVBIHN1cHBvcnRzIG11bHRpcGxlIGJhY2tncm91bmRzLCB0aGVyZSBzaG91bGQgYmUgdGhyZWUgb2NjdXJyZW5jZXMKICAgICAgICAvLyAgIG9mIHRoZSBzdHJpbmcgInVybCgiIGluIHRoZSByZXR1cm4gdmFsdWUgZm9yIGVsZW1TdHlsZS5iYWNrZ3JvdW5kCgogICAgICAgIHJldHVybiAoLyh1cmxccypcKC4qPyl7M30vKS50ZXN0KG1TdHlsZS5iYWNrZ3JvdW5kKTsKICAgIH07CgoKCiAgICAvLyB0aGlzIHdpbGwgZmFsc2UgcG9zaXRpdmUgaW4gT3BlcmEgTWluaQogICAgLy8gICBnaXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvaXNzdWVzLzM5NgoKICAgIHRlc3RzWydiYWNrZ3JvdW5kc2l6ZSddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRlc3RQcm9wc0FsbCgnYmFja2dyb3VuZFNpemUnKTsKICAgIH07CgogICAgdGVzdHNbJ2JvcmRlcmltYWdlJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGVzdFByb3BzQWxsKCdib3JkZXJJbWFnZScpOwogICAgfTsKCgogICAgLy8gU3VwZXIgY29tcHJlaGVuc2l2ZSB0YWJsZSBhYm91dCBhbGwgdGhlIHVuaXF1ZSBpbXBsZW1lbnRhdGlvbnMgb2YKICAgIC8vIGJvcmRlci1yYWRpdXM6IG11ZGRsZWRyYW1ibGluZ3MuY29tL3RhYmxlLW9mLWNzczMtYm9yZGVyLXJhZGl1cy1jb21wbGlhbmNlCgogICAgdGVzdHNbJ2JvcmRlcnJhZGl1cyddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRlc3RQcm9wc0FsbCgnYm9yZGVyUmFkaXVzJyk7CiAgICB9OwoKICAgIC8vIFdlYk9TIHVuZm9ydHVuYXRlbHkgZmFsc2UgcG9zaXRpdmVzIG9uIHRoaXMgdGVzdC4KICAgIHRlc3RzWydib3hzaGFkb3cnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0ZXN0UHJvcHNBbGwoJ2JveFNoYWRvdycpOwogICAgfTsKCiAgICAvLyBGRjMuMCB3aWxsIGZhbHNlIHBvc2l0aXZlIG9uIHRoaXMgdGVzdAogICAgdGVzdHNbJ3RleHRzaGFkb3cnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZS50ZXh0U2hhZG93ID09PSAnJzsKICAgIH07CgoKICAgIHRlc3RzWydvcGFjaXR5J10gPSBmdW5jdGlvbigpIHsKICAgICAgICAvLyBCcm93c2VycyB0aGF0IGFjdHVhbGx5IGhhdmUgQ1NTIE9wYWNpdHkgaW1wbGVtZW50ZWQgaGF2ZSBkb25lIHNvCiAgICAgICAgLy8gIGFjY29yZGluZyB0byBzcGVjLCB3aGljaCBtZWFucyB0aGVpciByZXR1cm4gdmFsdWVzIGFyZSB3aXRoaW4gdGhlCiAgICAgICAgLy8gIHJhbmdlIG9mIFswLjAsMS4wXSAtIGluY2x1ZGluZyB0aGUgbGVhZGluZyB6ZXJvLgoKICAgICAgICBzZXRDc3NBbGwoJ29wYWNpdHk6LjU1Jyk7CgogICAgICAgIC8vIFRoZSBub24tbGl0ZXJhbCAuIGluIHRoaXMgcmVnZXggaXMgaW50ZW50aW9uYWw6CiAgICAgICAgLy8gICBHZXJtYW4gQ2hyb21lIHJldHVybnMgdGhpcyB2YWx1ZSBhcyAwLDU1CiAgICAgICAgLy8gZ2l0aHViLmNvbS9Nb2Rlcm5penIvTW9kZXJuaXpyL2lzc3Vlcy8jaXNzdWUvNTkvY29tbWVudC81MTY2MzIKICAgICAgICByZXR1cm4gKC9eMC41NSQvKS50ZXN0KG1TdHlsZS5vcGFjaXR5KTsKICAgIH07CgoKICAgIC8vIE5vdGUsIEFuZHJvaWQgPCA0IHdpbGwgcGFzcyB0aGlzIHRlc3QsIGJ1dCBjYW4gb25seSBhbmltYXRlCiAgICAvLyAgIGEgc2luZ2xlIHByb3BlcnR5IGF0IGEgdGltZQogICAgLy8gICBkYW5lZGVuLm1lLzIwMTEvMTIvcHV0dGluZy11cC13aXRoLWFuZHJvaWRzLWJ1bGxzaGl0LwogICAgdGVzdHNbJ2Nzc2FuaW1hdGlvbnMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0ZXN0UHJvcHNBbGwoJ2FuaW1hdGlvbk5hbWUnKTsKICAgIH07CgoKICAgIHRlc3RzWydjc3Njb2x1bW5zJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGVzdFByb3BzQWxsKCdjb2x1bW5Db3VudCcpOwogICAgfTsKCgogICAgdGVzdHNbJ2Nzc2dyYWRpZW50cyddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgLyoqCiAgICAgICAgICogRm9yIENTUyBHcmFkaWVudHMgc3ludGF4LCBwbGVhc2Ugc2VlOgogICAgICAgICAqIHdlYmtpdC5vcmcvYmxvZy8xNzUvaW50cm9kdWNpbmctY3NzLWdyYWRpZW50cy8KICAgICAgICAgKiBkZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vQ1NTLy1tb3otbGluZWFyLWdyYWRpZW50CiAgICAgICAgICogZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0NTUy8tbW96LXJhZGlhbC1ncmFkaWVudAogICAgICAgICAqIGRldi53My5vcmcvY3Nzd2cvY3NzMy1pbWFnZXMvI2dyYWRpZW50cy0KICAgICAgICAgKi8KCiAgICAgICAgdmFyIHN0cjEgPSAnYmFja2dyb3VuZC1pbWFnZTonLAogICAgICAgICAgICBzdHIyID0gJ2dyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCBib3R0b20sZnJvbSgjOWY5KSx0byh3aGl0ZSkpOycsCiAgICAgICAgICAgIHN0cjMgPSAnbGluZWFyLWdyYWRpZW50KGxlZnQgdG9wLCM5ZjksIHdoaXRlKTsnOwoKICAgICAgICBzZXRDc3MoCiAgICAgICAgICAgICAvLyBsZWdhY3kgd2Via2l0IHN5bnRheCAoRklYTUU6IHJlbW92ZSB3aGVuIHN5bnRheCBub3QgaW4gdXNlIGFueW1vcmUpCiAgICAgICAgICAgICAgKHN0cjEgKyAnLXdlYmtpdC0gJy5zcGxpdCgnICcpLmpvaW4oc3RyMiArIHN0cjEpICsKICAgICAgICAgICAgIC8vIHN0YW5kYXJkIHN5bnRheCAgICAgICAgICAgICAvLyB0cmFpbGluZyAnYmFja2dyb3VuZC1pbWFnZTonCiAgICAgICAgICAgICAgcHJlZml4ZXMuam9pbihzdHIzICsgc3RyMSkpLnNsaWNlKDAsIC1zdHIxLmxlbmd0aCkKICAgICAgICApOwoKICAgICAgICByZXR1cm4gY29udGFpbnMobVN0eWxlLmJhY2tncm91bmRJbWFnZSwgJ2dyYWRpZW50Jyk7CiAgICB9OwoKCiAgICB0ZXN0c1snY3NzcmVmbGVjdGlvbnMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0ZXN0UHJvcHNBbGwoJ2JveFJlZmxlY3QnKTsKICAgIH07CgoKICAgIHRlc3RzWydjc3N0cmFuc2Zvcm1zJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gISF0ZXN0UHJvcHNBbGwoJ3RyYW5zZm9ybScpOwogICAgfTsKCgogICAgdGVzdHNbJ2Nzc3RyYW5zZm9ybXMzZCddID0gZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciByZXQgPSAhIXRlc3RQcm9wc0FsbCgncGVyc3BlY3RpdmUnKTsKCiAgICAgICAgLy8gV2Via2l0J3MgM0QgdHJhbnNmb3JtcyBhcmUgcGFzc2VkIG9mZiB0byB0aGUgYnJvd3NlcidzIG93biBncmFwaGljcyByZW5kZXJlci4KICAgICAgICAvLyAgIEl0IHdvcmtzIGZpbmUgaW4gU2FmYXJpIG9uIExlb3BhcmQgYW5kIFNub3cgTGVvcGFyZCwgYnV0IG5vdCBpbiBDaHJvbWUgaW4KICAgICAgICAvLyAgIHNvbWUgY29uZGl0aW9ucy4gQXMgYSByZXN1bHQsIFdlYmtpdCB0eXBpY2FsbHkgcmVjb2duaXplcyB0aGUgc3ludGF4IGJ1dAogICAgICAgIC8vICAgd2lsbCBzb21ldGltZXMgdGhyb3cgYSBmYWxzZSBwb3NpdGl2ZSwgdGh1cyB3ZSBtdXN0IGRvIGEgbW9yZSB0aG9yb3VnaCBjaGVjazoKICAgICAgICBpZiAoIHJldCAmJiAnd2Via2l0UGVyc3BlY3RpdmUnIGluIGRvY0VsZW1lbnQuc3R5bGUgKSB7CgogICAgICAgICAgLy8gV2Via2l0IGFsbG93cyB0aGlzIG1lZGlhIHF1ZXJ5IHRvIHN1Y2NlZWQgb25seSBpZiB0aGUgZmVhdHVyZSBpcyBlbmFibGVkLgogICAgICAgICAgLy8gYEBtZWRpYSAodHJhbnNmb3JtLTNkKSwoLXdlYmtpdC10cmFuc2Zvcm0tM2QpeyAuLi4gfWAKICAgICAgICAgIGluamVjdEVsZW1lbnRXaXRoU3R5bGVzKCdAbWVkaWEgKHRyYW5zZm9ybS0zZCksKC13ZWJraXQtdHJhbnNmb3JtLTNkKXsjbW9kZXJuaXpye2xlZnQ6OXB4O3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDozcHg7fX0nLCBmdW5jdGlvbiggbm9kZSwgcnVsZSApIHsKICAgICAgICAgICAgcmV0ID0gbm9kZS5vZmZzZXRMZWZ0ID09PSA5ICYmIG5vZGUub2Zmc2V0SGVpZ2h0ID09PSAzOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICB9OwoKCiAgICB0ZXN0c1snY3NzdHJhbnNpdGlvbnMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0ZXN0UHJvcHNBbGwoJ3RyYW5zaXRpb24nKTsKICAgIH07CgoKICAgIC8qPj5mb250ZmFjZSovCiAgICAvLyBAZm9udC1mYWNlIGRldGVjdGlvbiByb3V0aW5lIGJ5IERpZWdvIFBlcmluaQogICAgLy8gamF2YXNjcmlwdC5ud2JveC5jb20vQ1NTU3VwcG9ydC8KCiAgICAvLyBmYWxzZSBwb3NpdGl2ZXM6CiAgICAvLyAgIFdlYk9TIGdpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9pc3N1ZXMvMzQyCiAgICAvLyAgIFdQNyAgIGdpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9pc3N1ZXMvNTM4CiAgICB0ZXN0c1snZm9udGZhY2UnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBib29sOwoKICAgICAgICBpbmplY3RFbGVtZW50V2l0aFN0eWxlcygnQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ImZvbnQiO3NyYzp1cmwoImh0dHBzOi8vLyIpfScsIGZ1bmN0aW9uKCBub2RlLCBydWxlICkgewogICAgICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ntb2Rlcm5penInKSwKICAgICAgICAgICAgICBzaGVldCA9IHN0eWxlLnNoZWV0IHx8IHN0eWxlLnN0eWxlU2hlZXQsCiAgICAgICAgICAgICAgY3NzVGV4dCA9IHNoZWV0ID8gKHNoZWV0LmNzc1J1bGVzICYmIHNoZWV0LmNzc1J1bGVzWzBdID8gc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCA6IHNoZWV0LmNzc1RleHQgfHwgJycpIDogJyc7CgogICAgICAgICAgYm9vbCA9IC9zcmMvaS50ZXN0KGNzc1RleHQpICYmIGNzc1RleHQuaW5kZXhPZihydWxlLnNwbGl0KCcgJylbMF0pID09PSAwOwogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gYm9vbDsKICAgIH07CiAgICAvKj4+Zm9udGZhY2UqLwoKICAgIC8vIENTUyBnZW5lcmF0ZWQgY29udGVudCBkZXRlY3Rpb24KICAgIHRlc3RzWydnZW5lcmF0ZWRjb250ZW50J10gPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYm9vbDsKCiAgICAgICAgaW5qZWN0RWxlbWVudFdpdGhTdHlsZXMoWycjJyxtb2QsJ3tmb250OjAvMCBhfSMnLG1vZCwnOmFmdGVye2NvbnRlbnQ6Iicsc21pbGUsJyI7dmlzaWJpbGl0eTpoaWRkZW47Zm9udDozcHgvMSBhfSddLmpvaW4oJycpLCBmdW5jdGlvbiggbm9kZSApIHsKICAgICAgICAgIGJvb2wgPSBub2RlLm9mZnNldEhlaWdodCA+PSAzOwogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gYm9vbDsKICAgIH07CgoKCiAgICAvLyBUaGVzZSB0ZXN0cyBldmFsdWF0ZSBzdXBwb3J0IG9mIHRoZSB2aWRlby9hdWRpbyBlbGVtZW50cywgYXMgd2VsbCBhcwogICAgLy8gdGVzdGluZyB3aGF0IHR5cGVzIG9mIGNvbnRlbnQgdGhleSBzdXBwb3J0LgogICAgLy8KICAgIC8vIFdlJ3JlIHVzaW5nIHRoZSBCb29sZWFuIGNvbnN0cnVjdG9yIGhlcmUsIHNvIHRoYXQgd2UgY2FuIGV4dGVuZCB0aGUgdmFsdWUKICAgIC8vIGUuZy4gIE1vZGVybml6ci52aWRlbyAgICAgLy8gdHJ1ZQogICAgLy8gICAgICAgTW9kZXJuaXpyLnZpZGVvLm9nZyAvLyAncHJvYmFibHknCiAgICAvLwogICAgLy8gQ29kZWMgdmFsdWVzIGZyb20gOiBnaXRodWIuY29tL05pZWxzTGVlbmhlZXIvaHRtbDV0ZXN0L2Jsb2IvOTEwNmE4L2luZGV4Lmh0bWwjTDg0NQogICAgLy8gICAgICAgICAgICAgICAgICAgICB0aHggdG8gTmllbHNMZWVuaGVlciBhbmQgemNvcnBhbgoKICAgIC8vIE5vdGU6IGluIHNvbWUgb2xkZXIgYnJvd3NlcnMsICJubyIgd2FzIGEgcmV0dXJuIHZhbHVlIGluc3RlYWQgb2YgZW1wdHkgc3RyaW5nLgogICAgLy8gICBJdCB3YXMgbGl2ZSBpbiBGRjMuNS4wIGFuZCAzLjUuMSwgYnV0IGZpeGVkIGluIDMuNS4yCiAgICAvLyAgIEl0IHdhcyBhbHNvIGxpdmUgaW4gU2FmYXJpIDQuMC4wIC0gNC4wLjQsIGJ1dCBmaXhlZCBpbiA0LjAuNQoKICAgIHRlc3RzWyd2aWRlbyddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpLAogICAgICAgICAgICBib29sID0gZmFsc2U7CgogICAgICAgIC8vIElFOSBSdW5uaW5nIG9uIFdpbmRvd3MgU2VydmVyIFNLVSBjYW4gY2F1c2UgYW4gZXhjZXB0aW9uIHRvIGJlIHRocm93biwgYnVnICMyMjQKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoIGJvb2wgPSAhIWVsZW0uY2FuUGxheVR5cGUgKSB7CiAgICAgICAgICAgICAgICBib29sICAgICAgPSBuZXcgQm9vbGVhbihib29sKTsKICAgICAgICAgICAgICAgIGJvb2wub2dnICA9IGVsZW0uY2FuUGxheVR5cGUoJ3ZpZGVvL29nZzsgY29kZWNzPSJ0aGVvcmEiJykgICAgICAucmVwbGFjZSgvXm5vJC8sJycpOwoKICAgICAgICAgICAgICAgIC8vIFdpdGhvdXQgUXVpY2tUaW1lLCB0aGlzIHZhbHVlIHdpbGwgYmUgYHVuZGVmaW5lZGAuIGdpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9pc3N1ZXMvNTQ2CiAgICAgICAgICAgICAgICBib29sLmgyNjQgPSBlbGVtLmNhblBsYXlUeXBlKCd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUwMUUiJykgLnJlcGxhY2UoL15ubyQvLCcnKTsKCiAgICAgICAgICAgICAgICBib29sLndlYm0gPSBlbGVtLmNhblBsYXlUeXBlKCd2aWRlby93ZWJtOyBjb2RlY3M9InZwOCwgdm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCcnKTsKICAgICAgICAgICAgfQoKICAgICAgICB9IGNhdGNoKGUpIHsgfQoKICAgICAgICByZXR1cm4gYm9vbDsKICAgIH07CgogICAgdGVzdHNbJ2F1ZGlvJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyksCiAgICAgICAgICAgIGJvb2wgPSBmYWxzZTsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCBib29sID0gISFlbGVtLmNhblBsYXlUeXBlICkgewogICAgICAgICAgICAgICAgYm9vbCAgICAgID0gbmV3IEJvb2xlYW4oYm9vbCk7CiAgICAgICAgICAgICAgICBib29sLm9nZyAgPSBlbGVtLmNhblBsYXlUeXBlKCdhdWRpby9vZ2c7IGNvZGVjcz0idm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCcnKTsKICAgICAgICAgICAgICAgIGJvb2wubXAzICA9IGVsZW0uY2FuUGxheVR5cGUoJ2F1ZGlvL21wZWc7JykgICAgICAgICAgICAgICAucmVwbGFjZSgvXm5vJC8sJycpOwoKICAgICAgICAgICAgICAgIC8vIE1pbWV0eXBlcyBhY2NlcHRlZDoKICAgICAgICAgICAgICAgIC8vICAgZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL01lZGlhX2Zvcm1hdHNfc3VwcG9ydGVkX2J5X3RoZV9hdWRpb19hbmRfdmlkZW9fZWxlbWVudHMKICAgICAgICAgICAgICAgIC8vICAgYml0Lmx5L2lwaG9uZW9zY29kZWNzCiAgICAgICAgICAgICAgICBib29sLndhdiAgPSBlbGVtLmNhblBsYXlUeXBlKCdhdWRpby93YXY7IGNvZGVjcz0iMSInKSAgICAgLnJlcGxhY2UoL15ubyQvLCcnKTsKICAgICAgICAgICAgICAgIGJvb2wubTRhICA9ICggZWxlbS5jYW5QbGF5VHlwZSgnYXVkaW8veC1tNGE7JykgICAgICAgICAgICB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLmNhblBsYXlUeXBlKCdhdWRpby9hYWM7JykpICAgICAgICAgICAgIC5yZXBsYWNlKC9ebm8kLywnJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoKGUpIHsgfQoKICAgICAgICByZXR1cm4gYm9vbDsKICAgIH07CgoKICAgIC8vIEluIEZGNCwgaWYgZGlzYWJsZWQsIHdpbmRvdy5sb2NhbFN0b3JhZ2Ugc2hvdWxkID09PSBudWxsLgoKICAgIC8vIE5vcm1hbGx5LCB3ZSBjb3VsZCBub3QgdGVzdCB0aGF0IGRpcmVjdGx5IGFuZCBuZWVkIHRvIGRvIGEKICAgIC8vICAgYCgnbG9jYWxTdG9yYWdlJyBpbiB3aW5kb3cpICYmIGAgdGVzdCBmaXJzdCBiZWNhdXNlIG90aGVyd2lzZSBGaXJlZm94IHdpbGwKICAgIC8vICAgdGhyb3cgYnVnemlsLmxhLzM2NTc3MiBpZiBjb29raWVzIGFyZSBkaXNhYmxlZAoKICAgIC8vIEFsc28gaW4gaU9TNSBQcml2YXRlIEJyb3dzaW5nIG1vZGUsIGF0dGVtcHRpbmcgdG8gdXNlIGxvY2FsU3RvcmFnZS5zZXRJdGVtCiAgICAvLyB3aWxsIHRocm93IHRoZSBleGNlcHRpb246CiAgICAvLyAgIFFVT1RBX0VYQ0VFREVEX0VSUlJPUiBET00gRXhjZXB0aW9uIDIyLgogICAgLy8gUGVjdWxpYXJseSwgZ2V0SXRlbSBhbmQgcmVtb3ZlSXRlbSBjYWxscyBkbyBub3QgdGhyb3cuCgogICAgLy8gQmVjYXVzZSB3ZSBhcmUgZm9yY2VkIHRvIHRyeS9jYXRjaCB0aGlzLCB3ZSdsbCBnbyBhZ2dyZXNzaXZlLgoKICAgIC8vIEp1c3QgRldJVzogSUU4IENvbXBhdCBtb2RlIHN1cHBvcnRzIHRoZXNlIGZlYXR1cmVzIGNvbXBsZXRlbHk6CiAgICAvLyAgIHd3dy5xdWlya3Ntb2RlLm9yZy9kb20vaHRtbDUuaHRtbAogICAgLy8gQnV0IElFOCBkb2Vzbid0IHN1cHBvcnQgZWl0aGVyIHdpdGggbG9jYWwgZmlsZXMKCiAgICB0ZXN0c1snbG9jYWxzdG9yYWdlJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShtb2QsIG1vZCk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG1vZCk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfTsKCiAgICB0ZXN0c1snc2Vzc2lvbnN0b3JhZ2UnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0obW9kLCBtb2QpOwogICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG1vZCk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfTsKCgogICAgdGVzdHNbJ3dlYndvcmtlcnMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiAhIXdpbmRvdy5Xb3JrZXI7CiAgICB9OwoKCiAgICB0ZXN0c1snYXBwbGljYXRpb25jYWNoZSddID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuICEhd2luZG93LmFwcGxpY2F0aW9uQ2FjaGU7CiAgICB9OwoKCiAgICAvLyBUaGFua3MgdG8gRXJpayBEYWhsc3Ryb20KICAgIHRlc3RzWydzdmcnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiAhIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyAmJiAhIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhucy5zdmcsICdzdmcnKS5jcmVhdGVTVkdSZWN0OwogICAgfTsKCiAgICAvLyBzcGVjaWZpY2FsbHkgZm9yIFNWRyBpbmxpbmUgaW4gSFRNTCwgbm90IHdpdGhpbiBYSFRNTAogICAgLy8gdGVzdCBwYWdlOiBwYXVsaXJpc2guY29tL2RlbW8vaW5saW5lLXN2ZwogICAgdGVzdHNbJ2lubGluZXN2ZyddID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgZGl2LmlubmVySFRNTCA9ICc8c3ZnLz4nOwogICAgICByZXR1cm4gKGRpdi5maXJzdENoaWxkICYmIGRpdi5maXJzdENoaWxkLm5hbWVzcGFjZVVSSSkgPT0gbnMuc3ZnOwogICAgfTsKCiAgICAvLyBTVkcgU01JTCBhbmltYXRpb24KICAgIHRlc3RzWydzbWlsJ10gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gISFkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMgJiYgL1NWR0FuaW1hdGUvLnRlc3QodG9TdHJpbmcuY2FsbChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobnMuc3ZnLCAnYW5pbWF0ZScpKSk7CiAgICB9OwoKICAgIC8vIFRoaXMgdGVzdCBpcyBvbmx5IGZvciBjbGlwIHBhdGhzIGluIFNWRyBwcm9wZXIsIG5vdCBjbGlwIHBhdGhzIG9uIEhUTUwgY29udGVudAogICAgLy8gZGVtbzogc3J1ZmFjdWx0eS5zcnUuZWR1L2RhdmlkLmRhaWxleS9zdmcvbmV3c3R1ZmYvY2xpcFBhdGg0LnN2ZwoKICAgIC8vIEhvd2V2ZXIgcmVhZCB0aGUgY29tbWVudHMgdG8gZGlnIGludG8gYXBwbHlpbmcgU1ZHIGNsaXBwYXRocyB0byBIVE1MIGNvbnRlbnQgaGVyZToKICAgIC8vICAgZ2l0aHViLmNvbS9Nb2Rlcm5penIvTW9kZXJuaXpyL2lzc3Vlcy8yMTMjaXNzdWVjb21tZW50LTExNDk0OTEKICAgIHRlc3RzWydzdmdjbGlwcGF0aHMnXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiAhIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyAmJiAvU1ZHQ2xpcFBhdGgvLnRlc3QodG9TdHJpbmcuY2FsbChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobnMuc3ZnLCAnY2xpcFBhdGgnKSkpOwogICAgfTsKCiAgICAvKj4+d2ViZm9ybXMqLwogICAgLy8gaW5wdXQgZmVhdHVyZXMgYW5kIGlucHV0IHR5cGVzIGdvIGRpcmVjdGx5IG9udG8gdGhlIHJldCBvYmplY3QsIGJ5cGFzc2luZyB0aGUgdGVzdHMgbG9vcC4KICAgIC8vIEhvbGQgdGhpcyBndXkgdG8gZXhlY3V0ZSBpbiBhIG1vbWVudC4KICAgIGZ1bmN0aW9uIHdlYmZvcm1zKCkgewogICAgICAgIC8qPj5pbnB1dCovCiAgICAgICAgLy8gUnVuIHRocm91Z2ggSFRNTDUncyBuZXcgaW5wdXQgYXR0cmlidXRlcyB0byBzZWUgaWYgdGhlIFVBIHVuZGVyc3RhbmRzIGFueS4KICAgICAgICAvLyBXZSdyZSB1c2luZyBmIHdoaWNoIGlzIHRoZSA8aW5wdXQ+IGVsZW1lbnQgY3JlYXRlZCBlYXJseSBvbgogICAgICAgIC8vIE1pa2UgVGF5bHIgaGFzIGNyZWF0ZWQgYSBjb21wcmVoZW5zaXZlIHJlc291cmNlIGZvciB0ZXN0aW5nIHRoZXNlIGF0dHJpYnV0ZXMKICAgICAgICAvLyAgIHdoZW4gYXBwbGllZCB0byBhbGwgaW5wdXQgdHlwZXM6CiAgICAgICAgLy8gICBtaWtldGF5bHIuY29tL2NvZGUvaW5wdXQtdHlwZS1hdHRyLmh0bWwKICAgICAgICAvLyBzcGVjOiB3d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS1pbnB1dC1lbGVtZW50Lmh0bWwjaW5wdXQtdHlwZS1hdHRyLXN1bW1hcnkKCiAgICAgICAgLy8gT25seSBpbnB1dCBwbGFjZWhvbGRlciBpcyB0ZXN0ZWQgd2hpbGUgdGV4dGFyZWEncyBwbGFjZWhvbGRlciBpcyBub3QuCiAgICAgICAgLy8gQ3VycmVudGx5IFNhZmFyaSA0IGFuZCBPcGVyYSAxMSBoYXZlIHN1cHBvcnQgb25seSBmb3IgdGhlIGlucHV0IHBsYWNlaG9sZGVyCiAgICAgICAgLy8gQm90aCB0ZXN0cyBhcmUgYXZhaWxhYmxlIGluIGZlYXR1cmUtZGV0ZWN0cy9mb3Jtcy1wbGFjZWhvbGRlci5qcwogICAgICAgIE1vZGVybml6clsnaW5wdXQnXSA9IChmdW5jdGlvbiggcHJvcHMgKSB7CiAgICAgICAgICAgIGZvciAoIHZhciBpID0gMCwgbGVuID0gcHJvcHMubGVuZ3RoOyBpIDwgbGVuOyBpKysgKSB7CiAgICAgICAgICAgICAgICBhdHRyc1sgcHJvcHNbaV0gXSA9ICEhKHByb3BzW2ldIGluIGlucHV0RWxlbSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGF0dHJzLmxpc3QpewogICAgICAgICAgICAgIC8vIHNhZmFyaSBmYWxzZSBwb3NpdGl2ZSdzIG9uIGRhdGFsaXN0OiB3ZWJrLml0Lzc0MjUyCiAgICAgICAgICAgICAgLy8gc2VlIGFsc28gZ2l0aHViLmNvbS9Nb2Rlcm5penIvTW9kZXJuaXpyL2lzc3Vlcy8xNDYKICAgICAgICAgICAgICBhdHRycy5saXN0ID0gISEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKSAmJiB3aW5kb3cuSFRNTERhdGFMaXN0RWxlbWVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGF0dHJzOwogICAgICAgIH0pKCdhdXRvY29tcGxldGUgYXV0b2ZvY3VzIGxpc3QgcGxhY2Vob2xkZXIgbWF4IG1pbiBtdWx0aXBsZSBwYXR0ZXJuIHJlcXVpcmVkIHN0ZXAnLnNwbGl0KCcgJykpOwogICAgICAgIC8qPj5pbnB1dCovCgogICAgICAgIC8qPj5pbnB1dHR5cGVzKi8KICAgICAgICAvLyBSdW4gdGhyb3VnaCBIVE1MNSdzIG5ldyBpbnB1dCB0eXBlcyB0byBzZWUgaWYgdGhlIFVBIHVuZGVyc3RhbmRzIGFueS4KICAgICAgICAvLyAgIFRoaXMgaXMgcHV0IGJlaGluZCB0aGUgdGVzdHMgcnVubG9vcCBiZWNhdXNlIGl0IGRvZXNuJ3QgcmV0dXJuIGEKICAgICAgICAvLyAgIHRydWUvZmFsc2UgbGlrZSBhbGwgdGhlIG90aGVyIHRlc3RzOyBpbnN0ZWFkLCBpdCByZXR1cm5zIGFuIG9iamVjdAogICAgICAgIC8vICAgY29udGFpbmluZyBlYWNoIGlucHV0IHR5cGUgd2l0aCBpdHMgY29ycmVzcG9uZGluZyB0cnVlL2ZhbHNlIHZhbHVlCgogICAgICAgIC8vIEJpZyB0aGFua3MgdG8gQG1pa2V0YXlsciBmb3IgdGhlIGh0bWw1IGZvcm1zIGV4cGVydGlzZS4gbWlrZXRheWxyLmNvbS8KICAgICAgICBNb2Rlcm5penJbJ2lucHV0dHlwZXMnXSA9IChmdW5jdGlvbihwcm9wcykgewoKICAgICAgICAgICAgZm9yICggdmFyIGkgPSAwLCBib29sLCBpbnB1dEVsZW1UeXBlLCBkZWZhdWx0VmlldywgbGVuID0gcHJvcHMubGVuZ3RoOyBpIDwgbGVuOyBpKysgKSB7CgogICAgICAgICAgICAgICAgaW5wdXRFbGVtLnNldEF0dHJpYnV0ZSgndHlwZScsIGlucHV0RWxlbVR5cGUgPSBwcm9wc1tpXSk7CiAgICAgICAgICAgICAgICBib29sID0gaW5wdXRFbGVtLnR5cGUgIT09ICd0ZXh0JzsKCiAgICAgICAgICAgICAgICAvLyBXZSBmaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlIHR5cGUgd2UgZ2l2ZSBpdCBzdGlja3MuLgogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHR5cGUgZG9lcywgd2UgZmVlZCBpdCBhIHRleHR1YWwgdmFsdWUsIHdoaWNoIHNob3VsZG4ndCBiZSB2YWxpZC4KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBkb2Vzbid0IHN0aWNrLCB3ZSBrbm93IHRoZXJlJ3MgaW5wdXQgc2FuaXRpemF0aW9uIHdoaWNoIGluZmVycyBhIGN1c3RvbSBVSQogICAgICAgICAgICAgICAgaWYgKCBib29sICkgewoKICAgICAgICAgICAgICAgICAgICBpbnB1dEVsZW0udmFsdWUgICAgICAgICA9IHNtaWxlOwogICAgICAgICAgICAgICAgICAgIGlucHV0RWxlbS5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyc7CgogICAgICAgICAgICAgICAgICAgIGlmICggL15yYW5nZSQvLnRlc3QoaW5wdXRFbGVtVHlwZSkgJiYgaW5wdXRFbGVtLnN0eWxlLldlYmtpdEFwcGVhcmFuY2UgIT09IHVuZGVmaW5lZCApIHsKCiAgICAgICAgICAgICAgICAgICAgICBkb2NFbGVtZW50LmFwcGVuZENoaWxkKGlucHV0RWxlbSk7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmlldyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3OwoKICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmFyaSAyLTQgYWxsb3dzIHRoZSBzbWlsZXkgYXMgYSB2YWx1ZSwgZGVzcGl0ZSBtYWtpbmcgYSBzbGlkZXIKICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSAgZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGlucHV0RWxlbSwgbnVsbCkuV2Via2l0QXBwZWFyYW5jZSAhPT0gJ3RleHRmaWVsZCcgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW9iaWxlIGFuZHJvaWQgd2ViIGJyb3dzZXIgaGFzIGZhbHNlIHBvc2l0aXZlLCBzbyBtdXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBoZWlnaHQgdG8gc2VlIGlmIHRoZSB3aWRnZXQgaXMgYWN0dWFsbHkgdGhlcmUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dEVsZW0ub2Zmc2V0SGVpZ2h0ICE9PSAwKTsKCiAgICAgICAgICAgICAgICAgICAgICBkb2NFbGVtZW50LnJlbW92ZUNoaWxkKGlucHV0RWxlbSk7CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIC9eKHNlYXJjaHx0ZWwpJC8udGVzdChpbnB1dEVsZW1UeXBlKSApewogICAgICAgICAgICAgICAgICAgICAgLy8gU3BlYyBkb2Vzbid0IGRlZmluZSBhbnkgc3BlY2lhbCBwYXJzaW5nIG9yIGRldGVjdGFibGUgVUkKICAgICAgICAgICAgICAgICAgICAgIC8vICAgYmVoYXZpb3JzIHNvIHdlIHBhc3MgdGhlc2UgdGhyb3VnaCBhcyB0cnVlCgogICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJlc3RpbmdseSwgb3BlcmEgZmFpbHMgdGhlIGVhcmxpZXIgdGVzdCwgc28gaXQgZG9lc24ndAogICAgICAgICAgICAgICAgICAgICAgLy8gIGV2ZW4gbWFrZSBpdCBoZXJlLgoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCAvXih1cmx8ZW1haWwpJC8udGVzdChpbnB1dEVsZW1UeXBlKSApIHsKICAgICAgICAgICAgICAgICAgICAgIC8vIFJlYWwgdXJsIGFuZCBlbWFpbCBzdXBwb3J0IGNvbWVzIHdpdGggcHJlYmFrZWQgdmFsaWRhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSBpbnB1dEVsZW0uY2hlY2tWYWxpZGl0eSAmJiBpbnB1dEVsZW0uY2hlY2tWYWxpZGl0eSgpID09PSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1cGdyYWRlZCBpbnB1dCBjb21wb250ZW50IHJlamVjdHMgdGhlIDopIHRleHQsIHdlIGdvdCBhIHdpbm5lcgogICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IGlucHV0RWxlbS52YWx1ZSAhPSBzbWlsZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaW5wdXRzWyBwcm9wc1tpXSBdID0gISFib29sOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBpbnB1dHM7CiAgICAgICAgfSkoJ3NlYXJjaCB0ZWwgdXJsIGVtYWlsIGRhdGV0aW1lIGRhdGUgbW9udGggd2VlayB0aW1lIGRhdGV0aW1lLWxvY2FsIG51bWJlciByYW5nZSBjb2xvcicuc3BsaXQoJyAnKSk7CiAgICAgICAgLyo+PmlucHV0dHlwZXMqLwogICAgfQogICAgLyo+PndlYmZvcm1zKi8KCgogICAgLy8gRW5kIG9mIHRlc3QgZGVmaW5pdGlvbnMKICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAgICAvLyBSdW4gdGhyb3VnaCBhbGwgdGVzdHMgYW5kIGRldGVjdCB0aGVpciBzdXBwb3J0IGluIHRoZSBjdXJyZW50IFVBLgogICAgLy8gdG9kbzogaHlwb3RoZXRpY2FsbHkgd2UgY291bGQgYmUgZG9pbmcgYW4gYXJyYXkgb2YgdGVzdHMgYW5kIHVzZSBhIGJhc2ljIGxvb3AgaGVyZS4KICAgIGZvciAoIHZhciBmZWF0dXJlIGluIHRlc3RzICkgewogICAgICAgIGlmICggaGFzT3duUHJvcCh0ZXN0cywgZmVhdHVyZSkgKSB7CiAgICAgICAgICAgIC8vIHJ1biB0aGUgdGVzdCwgdGhyb3cgdGhlIHJldHVybiB2YWx1ZSBpbnRvIHRoZSBNb2Rlcm5penIsCiAgICAgICAgICAgIC8vICAgdGhlbiBiYXNlZCBvbiB0aGF0IGJvb2xlYW4sIGRlZmluZSBhbiBhcHByb3ByaWF0ZSBjbGFzc05hbWUKICAgICAgICAgICAgLy8gICBhbmQgcHVzaCBpdCBpbnRvIGFuIGFycmF5IG9mIGNsYXNzZXMgd2UnbGwgam9pbiBsYXRlci4KICAgICAgICAgICAgZmVhdHVyZU5hbWUgID0gZmVhdHVyZS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBNb2Rlcm5penJbZmVhdHVyZU5hbWVdID0gdGVzdHNbZmVhdHVyZV0oKTsKCiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgoTW9kZXJuaXpyW2ZlYXR1cmVOYW1lXSA/ICcnIDogJ25vLScpICsgZmVhdHVyZU5hbWUpOwogICAgICAgIH0KICAgIH0KCiAgICAvKj4+d2ViZm9ybXMqLwogICAgLy8gaW5wdXQgdGVzdHMgbmVlZCB0byBydW4uCiAgICBNb2Rlcm5penIuaW5wdXQgfHwgd2ViZm9ybXMoKTsKICAgIC8qPj53ZWJmb3JtcyovCgoKICAgIC8qKgogICAgICogYWRkVGVzdCBhbGxvd3MgdGhlIHVzZXIgdG8gZGVmaW5lIHRoZWlyIG93biBmZWF0dXJlIHRlc3RzCiAgICAgKiB0aGUgcmVzdWx0IHdpbGwgYmUgYWRkZWQgb250byB0aGUgTW9kZXJuaXpyIG9iamVjdCwKICAgICAqIGFzIHdlbGwgYXMgYW4gYXBwcm9wcmlhdGUgY2xhc3NOYW1lIHNldCBvbiB0aGUgaHRtbCBlbGVtZW50CiAgICAgKgogICAgICogQHBhcmFtIGZlYXR1cmUgLSBTdHJpbmcgbmFtaW5nIHRoZSBmZWF0dXJlCiAgICAgKiBAcGFyYW0gdGVzdCAtIEZ1bmN0aW9uIHJldHVybmluZyB0cnVlIGlmIGZlYXR1cmUgaXMgc3VwcG9ydGVkLCBmYWxzZSBpZiBub3QKICAgICAqLwogICAgIE1vZGVybml6ci5hZGRUZXN0ID0gZnVuY3Rpb24gKCBmZWF0dXJlLCB0ZXN0ICkgewogICAgICAgaWYgKCB0eXBlb2YgZmVhdHVyZSA9PSAnb2JqZWN0JyApIHsKICAgICAgICAgZm9yICggdmFyIGtleSBpbiBmZWF0dXJlICkgewogICAgICAgICAgIGlmICggaGFzT3duUHJvcCggZmVhdHVyZSwga2V5ICkgKSB7CiAgICAgICAgICAgICBNb2Rlcm5penIuYWRkVGVzdCgga2V5LCBmZWF0dXJlWyBrZXkgXSApOwogICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgfSBlbHNlIHsKCiAgICAgICAgIGZlYXR1cmUgPSBmZWF0dXJlLnRvTG93ZXJDYXNlKCk7CgogICAgICAgICBpZiAoIE1vZGVybml6cltmZWF0dXJlXSAhPT0gdW5kZWZpbmVkICkgewogICAgICAgICAgIC8vIHdlJ3JlIGdvaW5nIHRvIHF1aXQgaWYgeW91J3JlIHRyeWluZyB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdGVzdAogICAgICAgICAgIC8vIGlmIHdlIHdlcmUgdG8gYWxsb3cgaXQsIHdlJ2QgZG8gdGhpczoKICAgICAgICAgICAvLyAgIHZhciByZSA9IG5ldyBSZWdFeHAoIlxcYihuby0pPyIgKyBmZWF0dXJlICsgIlxcYiIpOwogICAgICAgICAgIC8vICAgZG9jRWxlbWVudC5jbGFzc05hbWUgPSBkb2NFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKCByZSwgJycgKTsKICAgICAgICAgICAvLyBidXQsIG5vIHJseSwgc3R1ZmYgJ2VtLgogICAgICAgICAgIHJldHVybiBNb2Rlcm5penI7CiAgICAgICAgIH0KCiAgICAgICAgIHRlc3QgPSB0eXBlb2YgdGVzdCA9PSAnZnVuY3Rpb24nID8gdGVzdCgpIDogdGVzdDsKCiAgICAgICAgIGlmICh0eXBlb2YgZW5hYmxlQ2xhc3NlcyAhPT0gInVuZGVmaW5lZCIgJiYgZW5hYmxlQ2xhc3NlcykgewogICAgICAgICAgIGRvY0VsZW1lbnQuY2xhc3NOYW1lICs9ICcgJyArICh0ZXN0ID8gJycgOiAnbm8tJykgKyBmZWF0dXJlOwogICAgICAgICB9CiAgICAgICAgIE1vZGVybml6cltmZWF0dXJlXSA9IHRlc3Q7CgogICAgICAgfQoKICAgICAgIHJldHVybiBNb2Rlcm5penI7IC8vIGFsbG93IGNoYWluaW5nLgogICAgIH07CgoKICAgIC8vIFJlc2V0IG1vZEVsZW0uY3NzVGV4dCB0byBub3RoaW5nIHRvIHJlZHVjZSBtZW1vcnkgZm9vdHByaW50LgogICAgc2V0Q3NzKCcnKTsKICAgIG1vZEVsZW0gPSBpbnB1dEVsZW0gPSBudWxsOwoKICAgIC8qPj5zaGl2Ki8KICAgIC8qKgogICAgICogQHByZXNlcnZlIEhUTUw1IFNoaXYgcHJldjMuNy4xIHwgQGFmYXJrYXMgQGpkYWx0b24gQGpvbl9uZWFsIEByZW0gfCBNSVQvR1BMMiBMaWNlbnNlZAogICAgICovCiAgICA7KGZ1bmN0aW9uKHdpbmRvdywgZG9jdW1lbnQpIHsKICAgICAgICAvKmpzaGludCBldmlsOnRydWUgKi8KICAgICAgICAvKiogdmVyc2lvbiAqLwogICAgICAgIHZhciB2ZXJzaW9uID0gJzMuNy4wJzsKCiAgICAgICAgLyoqIFByZXNldCBvcHRpb25zICovCiAgICAgICAgdmFyIG9wdGlvbnMgPSB3aW5kb3cuaHRtbDUgfHwge307CgogICAgICAgIC8qKiBVc2VkIHRvIHNraXAgcHJvYmxlbSBlbGVtZW50cyAqLwogICAgICAgIHZhciByZVNraXAgPSAvXjx8Xig/OmJ1dHRvbnxtYXB8c2VsZWN0fHRleHRhcmVhfG9iamVjdHxpZnJhbWV8b3B0aW9ufG9wdGdyb3VwKSQvaTsKCiAgICAgICAgLyoqIE5vdCBhbGwgZWxlbWVudHMgY2FuIGJlIGNsb25lZCBpbiBJRSAqKi8KICAgICAgICB2YXIgc2F2ZUNsb25lcyA9IC9eKD86YXxifGNvZGV8ZGl2fGZpZWxkc2V0fGgxfGgyfGgzfGg0fGg1fGg2fGl8bGFiZWx8bGl8b2x8cHxxfHNwYW58c3Ryb25nfHN0eWxlfHRhYmxlfHRib2R5fHRkfHRofHRyfHVsKSQvaTsKCiAgICAgICAgLyoqIERldGVjdCB3aGV0aGVyIHRoZSBicm93c2VyIHN1cHBvcnRzIGRlZmF1bHQgaHRtbDUgc3R5bGVzICovCiAgICAgICAgdmFyIHN1cHBvcnRzSHRtbDVTdHlsZXM7CgogICAgICAgIC8qKiBOYW1lIG9mIHRoZSBleHBhbmRvLCB0byB3b3JrIHdpdGggbXVsdGlwbGUgZG9jdW1lbnRzIG9yIHRvIHJlLXNoaXYgb25lIGRvY3VtZW50ICovCiAgICAgICAgdmFyIGV4cGFuZG8gPSAnX2h0bWw1c2hpdic7CgogICAgICAgIC8qKiBUaGUgaWQgZm9yIHRoZSB0aGUgZG9jdW1lbnRzIGV4cGFuZG8gKi8KICAgICAgICB2YXIgZXhwYW5JRCA9IDA7CgogICAgICAgIC8qKiBDYWNoZWQgZGF0YSBmb3IgZWFjaCBkb2N1bWVudCAqLwogICAgICAgIHZhciBleHBhbmRvRGF0YSA9IHt9OwoKICAgICAgICAvKiogRGV0ZWN0IHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMgdW5rbm93biBlbGVtZW50cyAqLwogICAgICAgIHZhciBzdXBwb3J0c1Vua25vd25FbGVtZW50czsKCiAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgICAgIGEuaW5uZXJIVE1MID0gJzx4eXo+PC94eXo+JzsKICAgICAgICAgICAgLy9pZiB0aGUgaGlkZGVuIHByb3BlcnR5IGlzIGltcGxlbWVudGVkIHdlIGNhbiBhc3N1bWUsIHRoYXQgdGhlIGJyb3dzZXIgc3VwcG9ydHMgYmFzaWMgSFRNTDUgU3R5bGVzCiAgICAgICAgICAgIHN1cHBvcnRzSHRtbDVTdHlsZXMgPSAoJ2hpZGRlbicgaW4gYSk7CgogICAgICAgICAgICBzdXBwb3J0c1Vua25vd25FbGVtZW50cyA9IGEuY2hpbGROb2Rlcy5sZW5ndGggPT0gMSB8fCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgLy8gYXNzaWduIGEgZmFsc2UgcG9zaXRpdmUgaWYgdW5hYmxlIHRvIHNoaXYKICAgICAgICAgICAgICAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkoJ2EnKTsKICAgICAgICAgICAgICB2YXIgZnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdHlwZW9mIGZyYWcuY2xvbmVOb2RlID09ICd1bmRlZmluZWQnIHx8CiAgICAgICAgICAgICAgICB0eXBlb2YgZnJhZy5jcmVhdGVEb2N1bWVudEZyYWdtZW50ID09ICd1bmRlZmluZWQnIHx8CiAgICAgICAgICAgICAgICB0eXBlb2YgZnJhZy5jcmVhdGVFbGVtZW50ID09ICd1bmRlZmluZWQnCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSgpKTsKICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAvLyBhc3NpZ24gYSBmYWxzZSBwb3NpdGl2ZSBpZiBkZXRlY3Rpb24gZmFpbHMgPT4gdW5hYmxlIHRvIHNoaXYKICAgICAgICAgICAgc3VwcG9ydHNIdG1sNVN0eWxlcyA9IHRydWU7CiAgICAgICAgICAgIHN1cHBvcnRzVW5rbm93bkVsZW1lbnRzID0gdHJ1ZTsKICAgICAgICAgIH0KCiAgICAgICAgfSgpKTsKCiAgICAgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgogICAgICAgIC8qKgogICAgICAgICAqIENyZWF0ZXMgYSBzdHlsZSBzaGVldCB3aXRoIHRoZSBnaXZlbiBDU1MgdGV4dCBhbmQgYWRkcyBpdCB0byB0aGUgZG9jdW1lbnQuCiAgICAgICAgICogQHByaXZhdGUKICAgICAgICAgKiBAcGFyYW0ge0RvY3VtZW50fSBvd25lckRvY3VtZW50IFRoZSBkb2N1bWVudC4KICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gY3NzVGV4dCBUaGUgQ1NTIHRleHQuCiAgICAgICAgICogQHJldHVybnMge1N0eWxlU2hlZXR9IFRoZSBzdHlsZSBlbGVtZW50LgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIGFkZFN0eWxlU2hlZXQob3duZXJEb2N1bWVudCwgY3NzVGV4dCkgewogICAgICAgICAgdmFyIHAgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKSwKICAgICAgICAgIHBhcmVudCA9IG93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBvd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKCiAgICAgICAgICBwLmlubmVySFRNTCA9ICd4PHN0eWxlPicgKyBjc3NUZXh0ICsgJzwvc3R5bGU+JzsKICAgICAgICAgIHJldHVybiBwYXJlbnQuaW5zZXJ0QmVmb3JlKHAubGFzdENoaWxkLCBwYXJlbnQuZmlyc3RDaGlsZCk7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBgaHRtbDUuZWxlbWVudHNgIGFzIGFuIGFycmF5LgogICAgICAgICAqIEBwcml2YXRlCiAgICAgICAgICogQHJldHVybnMge0FycmF5fSBBbiBhcnJheSBvZiBzaGl2ZWQgZWxlbWVudCBub2RlIG5hbWVzLgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIGdldEVsZW1lbnRzKCkgewogICAgICAgICAgdmFyIGVsZW1lbnRzID0gaHRtbDUuZWxlbWVudHM7CiAgICAgICAgICByZXR1cm4gdHlwZW9mIGVsZW1lbnRzID09ICdzdHJpbmcnID8gZWxlbWVudHMuc3BsaXQoJyAnKSA6IGVsZW1lbnRzOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogUmV0dXJucyB0aGUgZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSBnaXZlbiBkb2N1bWVudAogICAgICAgICAqIEBwcml2YXRlCiAgICAgICAgICogQHBhcmFtIHtEb2N1bWVudH0gb3duZXJEb2N1bWVudCBUaGUgZG9jdW1lbnQuCiAgICAgICAgICogQHJldHVybnMge09iamVjdH0gQW4gb2JqZWN0IG9mIGRhdGEuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZ2V0RXhwYW5kb0RhdGEob3duZXJEb2N1bWVudCkgewogICAgICAgICAgdmFyIGRhdGEgPSBleHBhbmRvRGF0YVtvd25lckRvY3VtZW50W2V4cGFuZG9dXTsKICAgICAgICAgIGlmICghZGF0YSkgewogICAgICAgICAgICBkYXRhID0ge307CiAgICAgICAgICAgIGV4cGFuSUQrKzsKICAgICAgICAgICAgb3duZXJEb2N1bWVudFtleHBhbmRvXSA9IGV4cGFuSUQ7CiAgICAgICAgICAgIGV4cGFuZG9EYXRhW2V4cGFuSURdID0gZGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkYXRhOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogcmV0dXJucyBhIHNoaXZlZCBlbGVtZW50IGZvciB0aGUgZ2l2ZW4gbm9kZU5hbWUgYW5kIGRvY3VtZW50CiAgICAgICAgICogQG1lbWJlck9mIGh0bWw1CiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVOYW1lIG5hbWUgb2YgdGhlIGVsZW1lbnQKICAgICAgICAgKiBAcGFyYW0ge0RvY3VtZW50fSBvd25lckRvY3VtZW50IFRoZSBjb250ZXh0IGRvY3VtZW50LgogICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBzaGl2ZWQgZWxlbWVudC4KICAgICAgICAgKi8KICAgICAgICBmdW5jdGlvbiBjcmVhdGVFbGVtZW50KG5vZGVOYW1lLCBvd25lckRvY3VtZW50LCBkYXRhKXsKICAgICAgICAgIGlmICghb3duZXJEb2N1bWVudCkgewogICAgICAgICAgICBvd25lckRvY3VtZW50ID0gZG9jdW1lbnQ7CiAgICAgICAgICB9CiAgICAgICAgICBpZihzdXBwb3J0c1Vua25vd25FbGVtZW50cyl7CiAgICAgICAgICAgIHJldHVybiBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobm9kZU5hbWUpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgIGRhdGEgPSBnZXRFeHBhbmRvRGF0YShvd25lckRvY3VtZW50KTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBub2RlOwoKICAgICAgICAgIGlmIChkYXRhLmNhY2hlW25vZGVOYW1lXSkgewogICAgICAgICAgICBub2RlID0gZGF0YS5jYWNoZVtub2RlTmFtZV0uY2xvbmVOb2RlKCk7CiAgICAgICAgICB9IGVsc2UgaWYgKHNhdmVDbG9uZXMudGVzdChub2RlTmFtZSkpIHsKICAgICAgICAgICAgbm9kZSA9IChkYXRhLmNhY2hlW25vZGVOYW1lXSA9IGRhdGEuY3JlYXRlRWxlbShub2RlTmFtZSkpLmNsb25lTm9kZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbm9kZSA9IGRhdGEuY3JlYXRlRWxlbShub2RlTmFtZSk7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gQXZvaWQgYWRkaW5nIHNvbWUgZWxlbWVudHMgdG8gZnJhZ21lbnRzIGluIElFIDwgOSBiZWNhdXNlCiAgICAgICAgICAvLyAqIEF0dHJpYnV0ZXMgbGlrZSBgbmFtZWAgb3IgYHR5cGVgIGNhbm5vdCBiZSBzZXQvY2hhbmdlZCBvbmNlIGFuIGVsZW1lbnQKICAgICAgICAgIC8vICAgaXMgaW5zZXJ0ZWQgaW50byBhIGRvY3VtZW50L2ZyYWdtZW50CiAgICAgICAgICAvLyAqIExpbmsgZWxlbWVudHMgd2l0aCBgc3JjYCBhdHRyaWJ1dGVzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSwgYXMgd2l0aAogICAgICAgICAgLy8gICBhIDQwMyByZXNwb25zZSwgd2lsbCBjYXVzZSB0aGUgdGFiL3dpbmRvdyB0byBjcmFzaAogICAgICAgICAgLy8gKiBTY3JpcHQgZWxlbWVudHMgYXBwZW5kZWQgdG8gZnJhZ21lbnRzIHdpbGwgZXhlY3V0ZSB3aGVuIHRoZWlyIGBzcmNgCiAgICAgICAgICAvLyAgIG9yIGB0ZXh0YCBwcm9wZXJ0eSBpcyBzZXQKICAgICAgICAgIHJldHVybiBub2RlLmNhbkhhdmVDaGlsZHJlbiAmJiAhcmVTa2lwLnRlc3Qobm9kZU5hbWUpICYmICFub2RlLnRhZ1VybiA/IGRhdGEuZnJhZy5hcHBlbmRDaGlsZChub2RlKSA6IG5vZGU7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiByZXR1cm5zIGEgc2hpdmVkIERvY3VtZW50RnJhZ21lbnQgZm9yIHRoZSBnaXZlbiBkb2N1bWVudAogICAgICAgICAqIEBtZW1iZXJPZiBodG1sNQogICAgICAgICAqIEBwYXJhbSB7RG9jdW1lbnR9IG93bmVyRG9jdW1lbnQgVGhlIGNvbnRleHQgZG9jdW1lbnQuCiAgICAgICAgICogQHJldHVybnMge09iamVjdH0gVGhlIHNoaXZlZCBEb2N1bWVudEZyYWdtZW50LgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQob3duZXJEb2N1bWVudCwgZGF0YSl7CiAgICAgICAgICBpZiAoIW93bmVyRG9jdW1lbnQpIHsKICAgICAgICAgICAgb3duZXJEb2N1bWVudCA9IGRvY3VtZW50OwogICAgICAgICAgfQogICAgICAgICAgaWYoc3VwcG9ydHNVbmtub3duRWxlbWVudHMpewogICAgICAgICAgICByZXR1cm4gb3duZXJEb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgICAgICB9CiAgICAgICAgICBkYXRhID0gZGF0YSB8fCBnZXRFeHBhbmRvRGF0YShvd25lckRvY3VtZW50KTsKICAgICAgICAgIHZhciBjbG9uZSA9IGRhdGEuZnJhZy5jbG9uZU5vZGUoKSwKICAgICAgICAgIGkgPSAwLAogICAgICAgICAgZWxlbXMgPSBnZXRFbGVtZW50cygpLAogICAgICAgICAgbCA9IGVsZW1zLmxlbmd0aDsKICAgICAgICAgIGZvcig7aTxsO2krKyl7CiAgICAgICAgICAgIGNsb25lLmNyZWF0ZUVsZW1lbnQoZWxlbXNbaV0pOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNsb25lOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogU2hpdnMgdGhlIGBjcmVhdGVFbGVtZW50YCBhbmQgYGNyZWF0ZURvY3VtZW50RnJhZ21lbnRgIG1ldGhvZHMgb2YgdGhlIGRvY3VtZW50LgogICAgICAgICAqIEBwcml2YXRlCiAgICAgICAgICogQHBhcmFtIHtEb2N1bWVudHxEb2N1bWVudEZyYWdtZW50fSBvd25lckRvY3VtZW50IFRoZSBkb2N1bWVudC4KICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBvZiB0aGUgZG9jdW1lbnQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gc2hpdk1ldGhvZHMob3duZXJEb2N1bWVudCwgZGF0YSkgewogICAgICAgICAgaWYgKCFkYXRhLmNhY2hlKSB7CiAgICAgICAgICAgIGRhdGEuY2FjaGUgPSB7fTsKICAgICAgICAgICAgZGF0YS5jcmVhdGVFbGVtID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50OwogICAgICAgICAgICBkYXRhLmNyZWF0ZUZyYWcgPSBvd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQ7CiAgICAgICAgICAgIGRhdGEuZnJhZyA9IGRhdGEuY3JlYXRlRnJhZygpOwogICAgICAgICAgfQoKCiAgICAgICAgICBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbihub2RlTmFtZSkgewogICAgICAgICAgICAvL2Fib3J0IHNoaXYKICAgICAgICAgICAgaWYgKCFodG1sNS5zaGl2TWV0aG9kcykgewogICAgICAgICAgICAgIHJldHVybiBkYXRhLmNyZWF0ZUVsZW0obm9kZU5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KG5vZGVOYW1lLCBvd25lckRvY3VtZW50LCBkYXRhKTsKICAgICAgICAgIH07CgogICAgICAgICAgb3duZXJEb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50ID0gRnVuY3Rpb24oJ2gsZicsICdyZXR1cm4gZnVuY3Rpb24oKXsnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YXIgbj1mLmNsb25lTm9kZSgpLGM9bi5jcmVhdGVFbGVtZW50OycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2guc2hpdk1ldGhvZHMmJignICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVucm9sbCB0aGUgYGNyZWF0ZUVsZW1lbnRgIGNhbGxzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRFbGVtZW50cygpLmpvaW4oKS5yZXBsYWNlKC9bXHdcLV0rL2csIGZ1bmN0aW9uKG5vZGVOYW1lKSB7CiAgICAgICAgICAgIGRhdGEuY3JlYXRlRWxlbShub2RlTmFtZSk7CiAgICAgICAgICAgIGRhdGEuZnJhZy5jcmVhdGVFbGVtZW50KG5vZGVOYW1lKTsKICAgICAgICAgICAgcmV0dXJuICdjKCInICsgbm9kZU5hbWUgKyAnIiknOwogICAgICAgICAgfSkgKwogICAgICAgICAgICAnKTtyZXR1cm4gbn0nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkoaHRtbDUsIGRhdGEuZnJhZyk7CiAgICAgICAgfQoKICAgICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiAgICAgICAgLyoqCiAgICAgICAgICogU2hpdnMgdGhlIGdpdmVuIGRvY3VtZW50LgogICAgICAgICAqIEBtZW1iZXJPZiBodG1sNQogICAgICAgICAqIEBwYXJhbSB7RG9jdW1lbnR9IG93bmVyRG9jdW1lbnQgVGhlIGRvY3VtZW50IHRvIHNoaXYuCiAgICAgICAgICogQHJldHVybnMge0RvY3VtZW50fSBUaGUgc2hpdmVkIGRvY3VtZW50LgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIHNoaXZEb2N1bWVudChvd25lckRvY3VtZW50KSB7CiAgICAgICAgICBpZiAoIW93bmVyRG9jdW1lbnQpIHsKICAgICAgICAgICAgb3duZXJEb2N1bWVudCA9IGRvY3VtZW50OwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRhdGEgPSBnZXRFeHBhbmRvRGF0YShvd25lckRvY3VtZW50KTsKCiAgICAgICAgICBpZiAoaHRtbDUuc2hpdkNTUyAmJiAhc3VwcG9ydHNIdG1sNVN0eWxlcyAmJiAhZGF0YS5oYXNDU1MpIHsKICAgICAgICAgICAgZGF0YS5oYXNDU1MgPSAhIWFkZFN0eWxlU2hlZXQob3duZXJEb2N1bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29ycmVjdHMgYmxvY2sgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRTYvNy84LzkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja30nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGRzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUU2LzcvOC85CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmt7YmFja2dyb3VuZDojRkYwO2NvbG9yOiMwMDB9JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGlkZXMgbm9uLXJlbmRlcmVkIGVsZW1lbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbXBsYXRle2Rpc3BsYXk6bm9uZX0nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghc3VwcG9ydHNVbmtub3duRWxlbWVudHMpIHsKICAgICAgICAgICAgc2hpdk1ldGhvZHMob3duZXJEb2N1bWVudCwgZGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gb3duZXJEb2N1bWVudDsKICAgICAgICB9CgogICAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKICAgICAgICAvKioKICAgICAgICAgKiBUaGUgYGh0bWw1YCBvYmplY3QgaXMgZXhwb3NlZCBzbyB0aGF0IG1vcmUgZWxlbWVudHMgY2FuIGJlIHNoaXZlZCBhbmQKICAgICAgICAgKiBleGlzdGluZyBzaGl2aW5nIGNhbiBiZSBkZXRlY3RlZCBvbiBpZnJhbWVzLgogICAgICAgICAqIEB0eXBlIE9iamVjdAogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICoKICAgICAgICAgKiAvLyBvcHRpb25zIGNhbiBiZSBjaGFuZ2VkIGJlZm9yZSB0aGUgc2NyaXB0IGlzIGluY2x1ZGVkCiAgICAgICAgICogaHRtbDUgPSB7ICdlbGVtZW50cyc6ICdtYXJrIHNlY3Rpb24nLCAnc2hpdkNTUyc6IGZhbHNlLCAnc2hpdk1ldGhvZHMnOiBmYWxzZSB9OwogICAgICAgICAqLwogICAgICAgIHZhciBodG1sNSA9IHsKCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEFuIGFycmF5IG9yIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2Ygbm9kZSBuYW1lcyBvZiB0aGUgZWxlbWVudHMgdG8gc2hpdi4KICAgICAgICAgICAqIEBtZW1iZXJPZiBodG1sNQogICAgICAgICAgICogQHR5cGUgQXJyYXl8U3RyaW5nCiAgICAgICAgICAgKi8KICAgICAgICAgICdlbGVtZW50cyc6IG9wdGlvbnMuZWxlbWVudHMgfHwgJ2FiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcHJvZ3Jlc3Mgc2VjdGlvbiBzdW1tYXJ5IHRlbXBsYXRlIHRpbWUgdmlkZW8nLAoKICAgICAgICAgIC8qKgogICAgICAgICAgICogY3VycmVudCB2ZXJzaW9uIG9mIGh0bWw1c2hpdgogICAgICAgICAgICovCiAgICAgICAgICAndmVyc2lvbic6IHZlcnNpb24sCgogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBBIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCB0aGUgSFRNTDUgc3R5bGUgc2hlZXQgc2hvdWxkIGJlIGluc2VydGVkLgogICAgICAgICAgICogQG1lbWJlck9mIGh0bWw1CiAgICAgICAgICAgKiBAdHlwZSBCb29sZWFuCiAgICAgICAgICAgKi8KICAgICAgICAgICdzaGl2Q1NTJzogKG9wdGlvbnMuc2hpdkNTUyAhPT0gZmFsc2UpLAoKICAgICAgICAgIC8qKgogICAgICAgICAgICogSXMgZXF1YWwgdG8gdHJ1ZSBpZiBhIGJyb3dzZXIgc3VwcG9ydHMgY3JlYXRpbmcgdW5rbm93bi9IVE1MNSBlbGVtZW50cwogICAgICAgICAgICogQG1lbWJlck9mIGh0bWw1CiAgICAgICAgICAgKiBAdHlwZSBib29sZWFuCiAgICAgICAgICAgKi8KICAgICAgICAgICdzdXBwb3J0c1Vua25vd25FbGVtZW50cyc6IHN1cHBvcnRzVW5rbm93bkVsZW1lbnRzLAoKICAgICAgICAgIC8qKgogICAgICAgICAgICogQSBmbGFnIHRvIGluZGljYXRlIHRoYXQgdGhlIGRvY3VtZW50J3MgYGNyZWF0ZUVsZW1lbnRgIGFuZCBgY3JlYXRlRG9jdW1lbnRGcmFnbWVudGAKICAgICAgICAgICAqIG1ldGhvZHMgc2hvdWxkIGJlIG92ZXJ3cml0dGVuLgogICAgICAgICAgICogQG1lbWJlck9mIGh0bWw1CiAgICAgICAgICAgKiBAdHlwZSBCb29sZWFuCiAgICAgICAgICAgKi8KICAgICAgICAgICdzaGl2TWV0aG9kcyc6IChvcHRpb25zLnNoaXZNZXRob2RzICE9PSBmYWxzZSksCgogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBBIHN0cmluZyB0byBkZXNjcmliZSB0aGUgdHlwZSBvZiBgaHRtbDVgIG9iamVjdCAoImRlZmF1bHQiIG9yICJkZWZhdWx0IHByaW50IikuCiAgICAgICAgICAgKiBAbWVtYmVyT2YgaHRtbDUKICAgICAgICAgICAqIEB0eXBlIFN0cmluZwogICAgICAgICAgICovCiAgICAgICAgICAndHlwZSc6ICdkZWZhdWx0JywKCiAgICAgICAgICAvLyBzaGl2cyB0aGUgZG9jdW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgYGh0bWw1YCBvYmplY3Qgb3B0aW9ucwogICAgICAgICAgJ3NoaXZEb2N1bWVudCc6IHNoaXZEb2N1bWVudCwKCiAgICAgICAgICAvL2NyZWF0ZXMgYSBzaGl2ZWQgZWxlbWVudAogICAgICAgICAgY3JlYXRlRWxlbWVudDogY3JlYXRlRWxlbWVudCwKCiAgICAgICAgICAvL2NyZWF0ZXMgYSBzaGl2ZWQgZG9jdW1lbnRGcmFnbWVudAogICAgICAgICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudDogY3JlYXRlRG9jdW1lbnRGcmFnbWVudAogICAgICAgIH07CgogICAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKICAgICAgICAvLyBleHBvc2UgaHRtbDUKICAgICAgICB3aW5kb3cuaHRtbDUgPSBodG1sNTsKCiAgICAgICAgLy8gc2hpdiB0aGUgZG9jdW1lbnQKICAgICAgICBzaGl2RG9jdW1lbnQoZG9jdW1lbnQpOwoKICAgIH0odGhpcywgZG9jdW1lbnQpKTsKICAgIC8qPj5zaGl2Ki8KCiAgICAvLyBBc3NpZ24gcHJpdmF0ZSBwcm9wZXJ0aWVzIHRvIHRoZSByZXR1cm4gb2JqZWN0IHdpdGggcHJlZml4CiAgICBNb2Rlcm5penIuX3ZlcnNpb24gICAgICA9IHZlcnNpb247CgogICAgLy8gZXhwb3NlIHRoZXNlIGZvciB0aGUgcGx1Z2luIEFQSS4gTG9vayBpbiB0aGUgc291cmNlIGZvciBob3cgdG8gam9pbigpIHRoZW0gYWdhaW5zdCB5b3VyIGlucHV0CiAgICAvKj4+cHJlZml4ZXMqLwogICAgTW9kZXJuaXpyLl9wcmVmaXhlcyAgICAgPSBwcmVmaXhlczsKICAgIC8qPj5wcmVmaXhlcyovCiAgICAvKj4+ZG9tcHJlZml4ZXMqLwogICAgTW9kZXJuaXpyLl9kb21QcmVmaXhlcyAgPSBkb21QcmVmaXhlczsKICAgIE1vZGVybml6ci5fY3Nzb21QcmVmaXhlcyAgPSBjc3NvbVByZWZpeGVzOwogICAgLyo+PmRvbXByZWZpeGVzKi8KCiAgICAvKj4+bXEqLwogICAgLy8gTW9kZXJuaXpyLm1xIHRlc3RzIGEgZ2l2ZW4gbWVkaWEgcXVlcnksIGxpdmUgYWdhaW5zdCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgd2luZG93CiAgICAvLyBBIGZldyBpbXBvcnRhbnQgbm90ZXM6CiAgICAvLyAgICogSWYgYSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgbWVkaWEgcXVlcmllcyBhdCBhbGwgKGVnLiBvbGRJRSkgdGhlIG1xKCkgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlCiAgICAvLyAgICogQSBtYXgtd2lkdGggb3Igb3JpZW50YXRpb24gcXVlcnkgd2lsbCBiZSBldmFsdWF0ZWQgYWdhaW5zdCB0aGUgY3VycmVudCBzdGF0ZSwgd2hpY2ggbWF5IGNoYW5nZSBsYXRlci4KICAgIC8vICAgKiBZb3UgbXVzdCBzcGVjaWZ5IHZhbHVlcy4gRWcuIElmIHlvdSBhcmUgdGVzdGluZyBzdXBwb3J0IGZvciB0aGUgbWluLXdpZHRoIG1lZGlhIHF1ZXJ5IHVzZToKICAgIC8vICAgICAgIE1vZGVybml6ci5tcSgnKG1pbi13aWR0aDowKScpCiAgICAvLyB1c2FnZToKICAgIC8vIE1vZGVybml6ci5tcSgnb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4KScpCiAgICBNb2Rlcm5penIubXEgICAgICAgICAgICA9IHRlc3RNZWRpYVF1ZXJ5OwogICAgLyo+Pm1xKi8KCiAgICAvKj4+aGFzZXZlbnQqLwogICAgLy8gTW9kZXJuaXpyLmhhc0V2ZW50KCkgZGV0ZWN0cyBzdXBwb3J0IGZvciBhIGdpdmVuIGV2ZW50LCB3aXRoIGFuIG9wdGlvbmFsIGVsZW1lbnQgdG8gdGVzdCBvbgogICAgLy8gTW9kZXJuaXpyLmhhc0V2ZW50KCdnZXN0dXJlc3RhcnQnLCBlbGVtKQogICAgTW9kZXJuaXpyLmhhc0V2ZW50ICAgICAgPSBpc0V2ZW50U3VwcG9ydGVkOwogICAgLyo+Pmhhc2V2ZW50Ki8KCiAgICAvKj4+dGVzdHByb3AqLwogICAgLy8gTW9kZXJuaXpyLnRlc3RQcm9wKCkgaW52ZXN0aWdhdGVzIHdoZXRoZXIgYSBnaXZlbiBzdHlsZSBwcm9wZXJ0eSBpcyByZWNvZ25pemVkCiAgICAvLyBOb3RlIHRoYXQgdGhlIHByb3BlcnR5IG5hbWVzIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIGNhbWVsQ2FzZSB2YXJpYW50LgogICAgLy8gTW9kZXJuaXpyLnRlc3RQcm9wKCdwb2ludGVyRXZlbnRzJykKICAgIE1vZGVybml6ci50ZXN0UHJvcCAgICAgID0gZnVuY3Rpb24ocHJvcCl7CiAgICAgICAgcmV0dXJuIHRlc3RQcm9wcyhbcHJvcF0pOwogICAgfTsKICAgIC8qPj50ZXN0cHJvcCovCgogICAgLyo+PnRlc3RhbGxwcm9wcyovCiAgICAvLyBNb2Rlcm5penIudGVzdEFsbFByb3BzKCkgaW52ZXN0aWdhdGVzIHdoZXRoZXIgYSBnaXZlbiBzdHlsZSBwcm9wZXJ0eSwKICAgIC8vICAgb3IgYW55IG9mIGl0cyB2ZW5kb3ItcHJlZml4ZWQgdmFyaWFudHMsIGlzIHJlY29nbml6ZWQKICAgIC8vIE5vdGUgdGhhdCB0aGUgcHJvcGVydHkgbmFtZXMgbXVzdCBiZSBwcm92aWRlZCBpbiB0aGUgY2FtZWxDYXNlIHZhcmlhbnQuCiAgICAvLyBNb2Rlcm5penIudGVzdEFsbFByb3BzKCdib3hTaXppbmcnKQogICAgTW9kZXJuaXpyLnRlc3RBbGxQcm9wcyAgPSB0ZXN0UHJvcHNBbGw7CiAgICAvKj4+dGVzdGFsbHByb3BzKi8KCgogICAgLyo+PnRlc3RzdHlsZXMqLwogICAgLy8gTW9kZXJuaXpyLnRlc3RTdHlsZXMoKSBhbGxvd3MgeW91IHRvIGFkZCBjdXN0b20gc3R5bGVzIHRvIHRoZSBkb2N1bWVudCBhbmQgdGVzdCBhbiBlbGVtZW50IGFmdGVyd2FyZHMKICAgIC8vIE1vZGVybml6ci50ZXN0U3R5bGVzKCcjbW9kZXJuaXpyIHsgcG9zaXRpb246YWJzb2x1dGUgfScsIGZ1bmN0aW9uKGVsZW0sIHJ1bGUpeyAuLi4gfSkKICAgIE1vZGVybml6ci50ZXN0U3R5bGVzICAgID0gaW5qZWN0RWxlbWVudFdpdGhTdHlsZXM7CiAgICAvKj4+dGVzdHN0eWxlcyovCgoKICAgIC8qPj5wcmVmaXhlZCovCiAgICAvLyBNb2Rlcm5penIucHJlZml4ZWQoKSByZXR1cm5zIHRoZSBwcmVmaXhlZCBvciBub25wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lIHZhcmlhbnQgb2YgeW91ciBpbnB1dAogICAgLy8gTW9kZXJuaXpyLnByZWZpeGVkKCdib3hTaXppbmcnKSAvLyAnTW96Qm94U2l6aW5nJwoKICAgIC8vIFByb3BlcnRpZXMgbXVzdCBiZSBwYXNzZWQgYXMgZG9tLXN0eWxlIGNhbWVsY2FzZSwgcmF0aGVyIHRoYW4gYGJveC1zaXppbmdgIGh5cGVudGF0ZWQgc3R5bGUuCiAgICAvLyBSZXR1cm4gdmFsdWVzIHdpbGwgYWxzbyBiZSB0aGUgY2FtZWxDYXNlIHZhcmlhbnQsIGlmIHlvdSBuZWVkIHRvIHRyYW5zbGF0ZSB0aGF0IHRvIGh5cGVuYXRlZCBzdHlsZSB1c2U6CiAgICAvLwogICAgLy8gICAgIHN0ci5yZXBsYWNlKC8oW0EtWl0pL2csIGZ1bmN0aW9uKHN0cixtMSl7IHJldHVybiAnLScgKyBtMS50b0xvd2VyQ2FzZSgpOyB9KS5yZXBsYWNlKC9ebXMtLywnLW1zLScpOwoKICAgIC8vIElmIHlvdSdyZSB0cnlpbmcgdG8gYXNjZXJ0YWluIHdoaWNoIHRyYW5zaXRpb24gZW5kIGV2ZW50IHRvIGJpbmQgdG8sIHlvdSBtaWdodCBkbyBzb21ldGhpbmcgbGlrZS4uLgogICAgLy8KICAgIC8vICAgICB2YXIgdHJhbnNFbmRFdmVudE5hbWVzID0gewogICAgLy8gICAgICAgJ1dlYmtpdFRyYW5zaXRpb24nIDogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLAogICAgLy8gICAgICAgJ01velRyYW5zaXRpb24nICAgIDogJ3RyYW5zaXRpb25lbmQnLAogICAgLy8gICAgICAgJ09UcmFuc2l0aW9uJyAgICAgIDogJ29UcmFuc2l0aW9uRW5kJywKICAgIC8vICAgICAgICdtc1RyYW5zaXRpb24nICAgICA6ICdNU1RyYW5zaXRpb25FbmQnLAogICAgLy8gICAgICAgJ3RyYW5zaXRpb24nICAgICAgIDogJ3RyYW5zaXRpb25lbmQnCiAgICAvLyAgICAgfSwKICAgIC8vICAgICB0cmFuc0VuZEV2ZW50TmFtZSA9IHRyYW5zRW5kRXZlbnROYW1lc1sgTW9kZXJuaXpyLnByZWZpeGVkKCd0cmFuc2l0aW9uJykgXTsKCiAgICBNb2Rlcm5penIucHJlZml4ZWQgICAgICA9IGZ1bmN0aW9uKHByb3AsIG9iaiwgZWxlbSl7CiAgICAgIGlmKCFvYmopIHsKICAgICAgICByZXR1cm4gdGVzdFByb3BzQWxsKHByb3AsICdwZngnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyBUZXN0aW5nIERPTSBwcm9wZXJ0eSBlLmcuIE1vZGVybml6ci5wcmVmaXhlZCgncmVxdWVzdEFuaW1hdGlvbkZyYW1lJywgd2luZG93KSAvLyAnbW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lJwogICAgICAgIHJldHVybiB0ZXN0UHJvcHNBbGwocHJvcCwgb2JqLCBlbGVtKTsKICAgICAgfQogICAgfTsKICAgIC8qPj5wcmVmaXhlZCovCgoKICAgIC8qPj5jc3NjbGFzc2VzKi8KICAgIC8vIFJlbW92ZSAibm8tanMiIGNsYXNzIGZyb20gPGh0bWw+IGVsZW1lbnQsIGlmIGl0IGV4aXN0czoKICAgIGRvY0VsZW1lbnQuY2xhc3NOYW1lID0gZG9jRWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvKF58XHMpbm8tanMoXHN8JCkvLCAnJDEkMicpICsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIG5ldyBjbGFzc2VzIHRvIHRoZSA8aHRtbD4gZWxlbWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmFibGVDbGFzc2VzID8gJyBqcyAnICsgY2xhc3Nlcy5qb2luKCcgJykgOiAnJyk7CiAgICAvKj4+Y3NzY2xhc3NlcyovCgogICAgcmV0dXJuIE1vZGVybml6cjsKCn0pKHRoaXMsIHRoaXMuZG9jdW1lbnQpOwo="}},"time_used":84,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":79,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery-ui-slider.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.845Z","timestamp":1785126645845,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery-ui-slider.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 112503\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":487212,"size_decoded":112760,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (547), with CRLF line terminators","md5":"43109e12e36805738ddf8deca737c53b","sha1":"cb6bc7d0b27bdf80a672b857bf6db0d41cc55995","sha256":"37fbfc8e36798a479dd09027315d1de63f53d75aa169c97b7991ae9afbd249e4","sha512":"2c906e31629ced4f66d78be9cdcc7e6c33c093530c0e87d2fea4248d427c3b34fbbe2b2607b114c116ee76716d67c56ef55790d2c3e7c3759093bd91773b2df3","ssdeep":"6144:UnA+sJQfWwFjn5nn5ZOlhgpRgqbb8wsucTHl2Ec/GdTieCu5t5Ql8Ry6tWWVIjVv:+bpsucTHv5t568R0O0rJdYq28cez","tlshash":"f6a4b7d5734f266f89ea3359583a9189ea3dc0b5d202807d789d58dc24a8c1843bbffd","first_seen":"2023-03-08T09:13:48Z","last_seen":"2026-07-27T04:47:12.495015Z","times_seen":270,"resource_available":true,"data":"LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE1LTAzLTExDQoqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiogSW5jbHVkZXM6IGNvcmUuanMsIHdpZGdldC5qcywgbW91c2UuanMsIHBvc2l0aW9uLmpzLCBhY2NvcmRpb24uanMsIGF1dG9jb21wbGV0ZS5qcywgYnV0dG9uLmpzLCBkYXRlcGlja2VyLmpzLCBkaWFsb2cuanMsIGRyYWdnYWJsZS5qcywgZHJvcHBhYmxlLmpzLCBlZmZlY3QuanMsIGVmZmVjdC1ibGluZC5qcywgZWZmZWN0LWJvdW5jZS5qcywgZWZmZWN0LWNsaXAuanMsIGVmZmVjdC1kcm9wLmpzLCBlZmZlY3QtZXhwbG9kZS5qcywgZWZmZWN0LWZhZGUuanMsIGVmZmVjdC1mb2xkLmpzLCBlZmZlY3QtaGlnaGxpZ2h0LmpzLCBlZmZlY3QtcHVmZi5qcywgZWZmZWN0LXB1bHNhdGUuanMsIGVmZmVjdC1zY2FsZS5qcywgZWZmZWN0LXNoYWtlLmpzLCBlZmZlY3Qtc2l6ZS5qcywgZWZmZWN0LXNsaWRlLmpzLCBlZmZlY3QtdHJhbnNmZXIuanMsIG1lbnUuanMsIHByb2dyZXNzYmFyLmpzLCByZXNpemFibGUuanMsIHNlbGVjdGFibGUuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc29ydGFibGUuanMsIHNwaW5uZXIuanMsIHRhYnMuanMsIHRvb2x0aXAuanMNCiogQ29weXJpZ2h0IDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUICovDQoNCihmdW5jdGlvbiggZmFjdG9yeSApIHsNCglpZiAoIHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCApIHsNCg0KCQkvLyBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuDQoJCWRlZmluZShbICJqcXVlcnkiIF0sIGZhY3RvcnkgKTsNCgl9IGVsc2Ugew0KDQoJCS8vIEJyb3dzZXIgZ2xvYmFscw0KCQlmYWN0b3J5KCBqUXVlcnkgKTsNCgl9DQp9KGZ1bmN0aW9uKCAkICkgew0KLyohDQogKiBqUXVlcnkgVUkgQ29yZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2NhdGVnb3J5L3VpLWNvcmUvDQogKi8NCg0KDQovLyAkLnVpIG1pZ2h0IGV4aXN0IGZyb20gY29tcG9uZW50cyB3aXRoIG5vIGRlcGVuZGVuY2llcywgZS5nLiwgJC51aS5wb3NpdGlvbg0KJC51aSA9ICQudWkgfHwge307DQoNCiQuZXh0ZW5kKCAkLnVpLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoNCglrZXlDb2RlOiB7DQoJCUJBQ0tTUEFDRTogOCwNCgkJQ09NTUE6IDE4OCwNCgkJREVMRVRFOiA0NiwNCgkJRE9XTjogNDAsDQoJCUVORDogMzUsDQoJCUVOVEVSOiAxMywNCgkJRVNDQVBFOiAyNywNCgkJSE9NRTogMzYsDQoJCUxFRlQ6IDM3LA0KCQlQQUdFX0RPV046IDM0LA0KCQlQQUdFX1VQOiAzMywNCgkJUEVSSU9EOiAxOTAsDQoJCVJJR0hUOiAzOSwNCgkJU1BBQ0U6IDMyLA0KCQlUQUI6IDksDQoJCVVQOiAzOA0KCX0NCn0pOw0KDQovLyBwbHVnaW5zDQokLmZuLmV4dGVuZCh7DQoJc2Nyb2xsUGFyZW50OiBmdW5jdGlvbiggaW5jbHVkZUhpZGRlbiApIHsNCgkJdmFyIHBvc2l0aW9uID0gdGhpcy5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCWV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBwb3NpdGlvbiA9PT0gImFic29sdXRlIiwNCgkJCW92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpLywNCgkJCXNjcm9sbFBhcmVudCA9IHRoaXMucGFyZW50cygpLmZpbHRlciggZnVuY3Rpb24oKSB7DQoJCQkJdmFyIHBhcmVudCA9ICQoIHRoaXMgKTsNCgkJCQlpZiAoIGV4Y2x1ZGVTdGF0aWNQYXJlbnQgJiYgcGFyZW50LmNzcyggInBvc2l0aW9uIiApID09PSAic3RhdGljIiApIHsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCQlyZXR1cm4gb3ZlcmZsb3dSZWdleC50ZXN0KCBwYXJlbnQuY3NzKCAib3ZlcmZsb3ciICkgKyBwYXJlbnQuY3NzKCAib3ZlcmZsb3cteSIgKSArIHBhcmVudC5jc3MoICJvdmVyZmxvdy14IiApICk7DQoJCQl9KS5lcSggMCApOw0KDQoJCXJldHVybiBwb3NpdGlvbiA9PT0gImZpeGVkIiB8fCAhc2Nyb2xsUGFyZW50Lmxlbmd0aCA/ICQoIHRoaXNbIDAgXS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50ICkgOiBzY3JvbGxQYXJlbnQ7DQoJfSwNCg0KCXVuaXF1ZUlkOiAoZnVuY3Rpb24oKSB7DQoJCXZhciB1dWlkID0gMDsNCg0KCQlyZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWlmICggIXRoaXMuaWQgKSB7DQoJCQkJCXRoaXMuaWQgPSAidWktaWQtIiArICggKyt1dWlkICk7DQoJCQkJfQ0KCQkJfSk7DQoJCX07DQoJfSkoKSwNCg0KCXJlbW92ZVVuaXF1ZUlkOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCWlmICggL151aS1pZC1cZCskLy50ZXN0KCB0aGlzLmlkICkgKSB7DQoJCQkJJCggdGhpcyApLnJlbW92ZUF0dHIoICJpZCIgKTsNCgkJCX0NCgkJfSk7DQoJfQ0KfSk7DQoNCi8vIHNlbGVjdG9ycw0KZnVuY3Rpb24gZm9jdXNhYmxlKCBlbGVtZW50LCBpc1RhYkluZGV4Tm90TmFOICkgew0KCXZhciBtYXAsIG1hcE5hbWUsIGltZywNCgkJbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoJaWYgKCAiYXJlYSIgPT09IG5vZGVOYW1lICkgew0KCQltYXAgPSBlbGVtZW50LnBhcmVudE5vZGU7DQoJCW1hcE5hbWUgPSBtYXAubmFtZTsNCgkJaWYgKCAhZWxlbWVudC5ocmVmIHx8ICFtYXBOYW1lIHx8IG1hcC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAibWFwIiApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQlpbWcgPSAkKCAiaW1nW3VzZW1hcD0nIyIgKyBtYXBOYW1lICsgIiddIiApWyAwIF07DQoJCXJldHVybiAhIWltZyAmJiB2aXNpYmxlKCBpbWcgKTsNCgl9DQoJcmV0dXJuICggL14oaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbnxvYmplY3QpJC8udGVzdCggbm9kZU5hbWUgKSA/DQoJCSFlbGVtZW50LmRpc2FibGVkIDoNCgkJImEiID09PSBub2RlTmFtZSA/DQoJCQllbGVtZW50LmhyZWYgfHwgaXNUYWJJbmRleE5vdE5hTiA6DQoJCQlpc1RhYkluZGV4Tm90TmFOKSAmJg0KCQkvLyB0aGUgZWxlbWVudCBhbmQgYWxsIG9mIGl0cyBhbmNlc3RvcnMgbXVzdCBiZSB2aXNpYmxlDQoJCXZpc2libGUoIGVsZW1lbnQgKTsNCn0NCg0KZnVuY3Rpb24gdmlzaWJsZSggZWxlbWVudCApIHsNCglyZXR1cm4gJC5leHByLmZpbHRlcnMudmlzaWJsZSggZWxlbWVudCApICYmDQoJCSEkKCBlbGVtZW50ICkucGFyZW50cygpLmFkZEJhY2soKS5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gJC5jc3MoIHRoaXMsICJ2aXNpYmlsaXR5IiApID09PSAiaGlkZGVuIjsNCgkJfSkubGVuZ3RoOw0KfQ0KDQokLmV4dGVuZCggJC5leHByWyAiOiIgXSwgew0KCWRhdGE6ICQuZXhwci5jcmVhdGVQc2V1ZG8gPw0KCQkkLmV4cHIuY3JlYXRlUHNldWRvKGZ1bmN0aW9uKCBkYXRhTmFtZSApIHsNCgkJCXJldHVybiBmdW5jdGlvbiggZWxlbSApIHsNCgkJCQlyZXR1cm4gISEkLmRhdGEoIGVsZW0sIGRhdGFOYW1lICk7DQoJCQl9Ow0KCQl9KSA6DQoJCS8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQoJCWZ1bmN0aW9uKCBlbGVtLCBpLCBtYXRjaCApIHsNCgkJCXJldHVybiAhISQuZGF0YSggZWxlbSwgbWF0Y2hbIDMgXSApOw0KCQl9LA0KDQoJZm9jdXNhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJcmV0dXJuIGZvY3VzYWJsZSggZWxlbWVudCwgIWlzTmFOKCAkLmF0dHIoIGVsZW1lbnQsICJ0YWJpbmRleCIgKSApICk7DQoJfSwNCg0KCXRhYmJhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdmFyIHRhYkluZGV4ID0gJC5hdHRyKCBlbGVtZW50LCAidGFiaW5kZXgiICksDQoJCQlpc1RhYkluZGV4TmFOID0gaXNOYU4oIHRhYkluZGV4ICk7DQoJCXJldHVybiAoIGlzVGFiSW5kZXhOYU4gfHwgdGFiSW5kZXggPj0gMCApICYmIGZvY3VzYWJsZSggZWxlbWVudCwgIWlzVGFiSW5kZXhOYU4gKTsNCgl9DQp9KTsNCg0KLy8gc3VwcG9ydDogalF1ZXJ5IDwxLjgNCmlmICggISQoICI8YT4iICkub3V0ZXJXaWR0aCggMSApLmpxdWVyeSApIHsNCgkkLmVhY2goIFsgIldpZHRoIiwgIkhlaWdodCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7DQoJCXZhciBzaWRlID0gbmFtZSA9PT0gIldpZHRoIiA/IFsgIkxlZnQiLCAiUmlnaHQiIF0gOiBbICJUb3AiLCAiQm90dG9tIiBdLA0KCQkJdHlwZSA9IG5hbWUudG9Mb3dlckNhc2UoKSwNCgkJCW9yaWcgPSB7DQoJCQkJaW5uZXJXaWR0aDogJC5mbi5pbm5lcldpZHRoLA0KCQkJCWlubmVySGVpZ2h0OiAkLmZuLmlubmVySGVpZ2h0LA0KCQkJCW91dGVyV2lkdGg6ICQuZm4ub3V0ZXJXaWR0aCwNCgkJCQlvdXRlckhlaWdodDogJC5mbi5vdXRlckhlaWdodA0KCQkJfTsNCg0KCQlmdW5jdGlvbiByZWR1Y2UoIGVsZW0sIHNpemUsIGJvcmRlciwgbWFyZ2luICkgew0KCQkJJC5lYWNoKCBzaWRlLCBmdW5jdGlvbigpIHsNCgkJCQlzaXplIC09IHBhcnNlRmxvYXQoICQuY3NzKCBlbGVtLCAicGFkZGluZyIgKyB0aGlzICkgKSB8fCAwOw0KCQkJCWlmICggYm9yZGVyICkgew0KCQkJCQlzaXplIC09IHBhcnNlRmxvYXQoICQuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkgKSB8fCAwOw0KCQkJCX0NCgkJCQlpZiAoIG1hcmdpbiApIHsNCgkJCQkJc2l6ZSAtPSBwYXJzZUZsb2F0KCAkLmNzcyggZWxlbSwgIm1hcmdpbiIgKyB0aGlzICkgKSB8fCAwOw0KCQkJCX0NCgkJCX0pOw0KCQkJcmV0dXJuIHNpemU7DQoJCX0NCg0KCQkkLmZuWyAiaW5uZXIiICsgbmFtZSBdID0gZnVuY3Rpb24oIHNpemUgKSB7DQoJCQlpZiAoIHNpemUgPT09IHVuZGVmaW5lZCApIHsNCgkJCQlyZXR1cm4gb3JpZ1sgImlubmVyIiArIG5hbWUgXS5jYWxsKCB0aGlzICk7DQoJCQl9DQoNCgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJJCggdGhpcyApLmNzcyggdHlwZSwgcmVkdWNlKCB0aGlzLCBzaXplICkgKyAicHgiICk7DQoJCQl9KTsNCgkJfTsNCg0KCQkkLmZuWyAib3V0ZXIiICsgbmFtZV0gPSBmdW5jdGlvbiggc2l6ZSwgbWFyZ2luICkgew0KCQkJaWYgKCB0eXBlb2Ygc2l6ZSAhPT0gIm51bWJlciIgKSB7DQoJCQkJcmV0dXJuIG9yaWdbICJvdXRlciIgKyBuYW1lIF0uY2FsbCggdGhpcywgc2l6ZSApOw0KCQkJfQ0KDQoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCSQoIHRoaXMpLmNzcyggdHlwZSwgcmVkdWNlKCB0aGlzLCBzaXplLCB0cnVlLCBtYXJnaW4gKSArICJweCIgKTsNCgkJCX0pOw0KCQl9Ow0KCX0pOw0KfQ0KDQovLyBzdXBwb3J0OiBqUXVlcnkgPDEuOA0KaWYgKCAhJC5mbi5hZGRCYWNrICkgew0KCSQuZm4uYWRkQmFjayA9IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsNCgkJcmV0dXJuIHRoaXMuYWRkKCBzZWxlY3RvciA9PSBudWxsID8NCgkJCXRoaXMucHJldk9iamVjdCA6IHRoaXMucHJldk9iamVjdC5maWx0ZXIoIHNlbGVjdG9yICkNCgkJKTsNCgl9Ow0KfQ0KDQovLyBzdXBwb3J0OiBqUXVlcnkgMS42LjEsIDEuNi4yIChodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC85NDEzKQ0KaWYgKCAkKCAiPGE+IiApLmRhdGEoICJhLWIiLCAiYSIgKS5yZW1vdmVEYXRhKCAiYS1iIiApLmRhdGEoICJhLWIiICkgKSB7DQoJJC5mbi5yZW1vdmVEYXRhID0gKGZ1bmN0aW9uKCByZW1vdmVEYXRhICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIGtleSApIHsNCgkJCWlmICggYXJndW1lbnRzLmxlbmd0aCApIHsNCgkJCQlyZXR1cm4gcmVtb3ZlRGF0YS5jYWxsKCB0aGlzLCAkLmNhbWVsQ2FzZSgga2V5ICkgKTsNCgkJCX0gZWxzZSB7DQoJCQkJcmV0dXJuIHJlbW92ZURhdGEuY2FsbCggdGhpcyApOw0KCQkJfQ0KCQl9Ow0KCX0pKCAkLmZuLnJlbW92ZURhdGEgKTsNCn0NCg0KLy8gZGVwcmVjYXRlZA0KJC51aS5pZSA9ICEhL21zaWUgW1x3Ll0rLy5leGVjKCBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkgKTsNCg0KJC5mbi5leHRlbmQoew0KCWZvY3VzOiAoZnVuY3Rpb24oIG9yaWcgKSB7DQoJCXJldHVybiBmdW5jdGlvbiggZGVsYXksIGZuICkgew0KCQkJcmV0dXJuIHR5cGVvZiBkZWxheSA9PT0gIm51bWJlciIgPw0KCQkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkJdmFyIGVsZW0gPSB0aGlzOw0KCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KCQkJCQkJJCggZWxlbSApLmZvY3VzKCk7DQoJCQkJCQlpZiAoIGZuICkgew0KCQkJCQkJCWZuLmNhbGwoIGVsZW0gKTsNCgkJCQkJCX0NCgkJCQkJfSwgZGVsYXkgKTsNCgkJCQl9KSA6DQoJCQkJb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCX07DQoJfSkoICQuZm4uZm9jdXMgKSwNCg0KCWRpc2FibGVTZWxlY3Rpb246IChmdW5jdGlvbigpIHsNCgkJdmFyIGV2ZW50VHlwZSA9ICJvbnNlbGVjdHN0YXJ0IiBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiZGl2IiApID8NCgkJCSJzZWxlY3RzdGFydCIgOg0KCQkJIm1vdXNlZG93biI7DQoNCgkJcmV0dXJuIGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuIHRoaXMuYmluZCggZXZlbnRUeXBlICsgIi51aS1kaXNhYmxlU2VsZWN0aW9uIiwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9KTsNCgkJfTsNCgl9KSgpLA0KDQoJZW5hYmxlU2VsZWN0aW9uOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMudW5iaW5kKCAiLnVpLWRpc2FibGVTZWxlY3Rpb24iICk7DQoJfSwNCg0KCXpJbmRleDogZnVuY3Rpb24oIHpJbmRleCApIHsNCgkJaWYgKCB6SW5kZXggIT09IHVuZGVmaW5lZCApIHsNCgkJCXJldHVybiB0aGlzLmNzcyggInpJbmRleCIsIHpJbmRleCApOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmxlbmd0aCApIHsNCgkJCXZhciBlbGVtID0gJCggdGhpc1sgMCBdICksIHBvc2l0aW9uLCB2YWx1ZTsNCgkJCXdoaWxlICggZWxlbS5sZW5ndGggJiYgZWxlbVsgMCBdICE9PSBkb2N1bWVudCApIHsNCgkJCQkvLyBJZ25vcmUgei1pbmRleCBpZiBwb3NpdGlvbiBpcyBzZXQgdG8gYSB2YWx1ZSB3aGVyZSB6LWluZGV4IGlzIGlnbm9yZWQgYnkgdGhlIGJyb3dzZXINCgkJCQkvLyBUaGlzIG1ha2VzIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gY29uc2lzdGVudCBhY3Jvc3MgYnJvd3NlcnMNCgkJCQkvLyBXZWJLaXQgYWx3YXlzIHJldHVybnMgYXV0byBpZiB0aGUgZWxlbWVudCBpcyBwb3NpdGlvbmVkDQoJCQkJcG9zaXRpb24gPSBlbGVtLmNzcyggInBvc2l0aW9uIiApOw0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJyZWxhdGl2ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCS8vIElFIHJldHVybnMgMCB3aGVuIHpJbmRleCBpcyBub3Qgc3BlY2lmaWVkDQoJCQkJCS8vIG90aGVyIGJyb3dzZXJzIHJldHVybiBhIHN0cmluZw0KCQkJCQkvLyB3ZSBpZ25vcmUgdGhlIGNhc2Ugb2YgbmVzdGVkIGVsZW1lbnRzIHdpdGggYW4gZXhwbGljaXQgdmFsdWUgb2YgMA0KCQkJCQkvLyA8ZGl2IHN0eWxlPSJ6LWluZGV4OiAtMTA7Ij48ZGl2IHN0eWxlPSJ6LWluZGV4OiAwOyI+PC9kaXY+PC9kaXY+DQoJCQkJCXZhbHVlID0gcGFyc2VJbnQoIGVsZW0uY3NzKCAiekluZGV4IiApLCAxMCApOw0KCQkJCQlpZiAoICFpc05hTiggdmFsdWUgKSAmJiB2YWx1ZSAhPT0gMCApIHsNCgkJCQkJCXJldHVybiB2YWx1ZTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQllbGVtID0gZWxlbS5wYXJlbnQoKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAwOw0KCX0NCn0pOw0KDQovLyAkLnVpLnBsdWdpbiBpcyBkZXByZWNhdGVkLiBVc2UgJC53aWRnZXQoKSBleHRlbnNpb25zIGluc3RlYWQuDQokLnVpLnBsdWdpbiA9IHsNCglhZGQ6IGZ1bmN0aW9uKCBtb2R1bGUsIG9wdGlvbiwgc2V0ICkgew0KCQl2YXIgaSwNCgkJCXByb3RvID0gJC51aVsgbW9kdWxlIF0ucHJvdG90eXBlOw0KCQlmb3IgKCBpIGluIHNldCApIHsNCgkJCXByb3RvLnBsdWdpbnNbIGkgXSA9IHByb3RvLnBsdWdpbnNbIGkgXSB8fCBbXTsNCgkJCXByb3RvLnBsdWdpbnNbIGkgXS5wdXNoKCBbIG9wdGlvbiwgc2V0WyBpIF0gXSApOw0KCQl9DQoJfSwNCgljYWxsOiBmdW5jdGlvbiggaW5zdGFuY2UsIG5hbWUsIGFyZ3MsIGFsbG93RGlzY29ubmVjdGVkICkgew0KCQl2YXIgaSwNCgkJCXNldCA9IGluc3RhbmNlLnBsdWdpbnNbIG5hbWUgXTsNCg0KCQlpZiAoICFzZXQgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoICFhbGxvd0Rpc2Nvbm5lY3RlZCAmJiAoICFpbnN0YW5jZS5lbGVtZW50WyAwIF0ucGFyZW50Tm9kZSB8fCBpbnN0YW5jZS5lbGVtZW50WyAwIF0ucGFyZW50Tm9kZS5ub2RlVHlwZSA9PT0gMTEgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWZvciAoIGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgaSsrICkgew0KCQkJaWYgKCBpbnN0YW5jZS5vcHRpb25zWyBzZXRbIGkgXVsgMCBdIF0gKSB7DQoJCQkJc2V0WyBpIF1bIDEgXS5hcHBseSggaW5zdGFuY2UuZWxlbWVudCwgYXJncyApOw0KCQkJfQ0KCQl9DQoJfQ0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBXaWRnZXQgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9qUXVlcnkud2lkZ2V0Lw0KICovDQoNCg0KdmFyIHdpZGdldF91dWlkID0gMCwNCgl3aWRnZXRfc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7DQoNCiQuY2xlYW5EYXRhID0gKGZ1bmN0aW9uKCBvcmlnICkgew0KCXJldHVybiBmdW5jdGlvbiggZWxlbXMgKSB7DQoJCXZhciBldmVudHMsIGVsZW0sIGk7DQoJCWZvciAoIGkgPSAwOyAoZWxlbSA9IGVsZW1zW2ldKSAhPSBudWxsOyBpKysgKSB7DQoJCQl0cnkgew0KDQoJCQkJLy8gT25seSB0cmlnZ2VyIHJlbW92ZSB3aGVuIG5lY2Vzc2FyeSB0byBzYXZlIHRpbWUNCgkJCQlldmVudHMgPSAkLl9kYXRhKCBlbGVtLCAiZXZlbnRzIiApOw0KCQkJCWlmICggZXZlbnRzICYmIGV2ZW50cy5yZW1vdmUgKSB7DQoJCQkJCSQoIGVsZW0gKS50cmlnZ2VySGFuZGxlciggInJlbW92ZSIgKTsNCgkJCQl9DQoNCgkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzgyMzUNCgkJCX0gY2F0Y2ggKCBlICkge30NCgkJfQ0KCQlvcmlnKCBlbGVtcyApOw0KCX07DQp9KSggJC5jbGVhbkRhdGEgKTsNCg0KJC53aWRnZXQgPSBmdW5jdGlvbiggbmFtZSwgYmFzZSwgcHJvdG90eXBlICkgew0KCXZhciBmdWxsTmFtZSwgZXhpc3RpbmdDb25zdHJ1Y3RvciwgY29uc3RydWN0b3IsIGJhc2VQcm90b3R5cGUsDQoJCS8vIHByb3hpZWRQcm90b3R5cGUgYWxsb3dzIHRoZSBwcm92aWRlZCBwcm90b3R5cGUgdG8gcmVtYWluIHVubW9kaWZpZWQNCgkJLy8gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhIG1peGluIGZvciBtdWx0aXBsZSB3aWRnZXRzICgjODg3NikNCgkJcHJveGllZFByb3RvdHlwZSA9IHt9LA0KCQluYW1lc3BhY2UgPSBuYW1lLnNwbGl0KCAiLiIgKVsgMCBdOw0KDQoJbmFtZSA9IG5hbWUuc3BsaXQoICIuIiApWyAxIF07DQoJZnVsbE5hbWUgPSBuYW1lc3BhY2UgKyAiLSIgKyBuYW1lOw0KDQoJaWYgKCAhcHJvdG90eXBlICkgew0KCQlwcm90b3R5cGUgPSBiYXNlOw0KCQliYXNlID0gJC5XaWRnZXQ7DQoJfQ0KDQoJLy8gY3JlYXRlIHNlbGVjdG9yIGZvciBwbHVnaW4NCgkkLmV4cHJbICI6IiBdWyBmdWxsTmFtZS50b0xvd2VyQ2FzZSgpIF0gPSBmdW5jdGlvbiggZWxlbSApIHsNCgkJcmV0dXJuICEhJC5kYXRhKCBlbGVtLCBmdWxsTmFtZSApOw0KCX07DQoNCgkkWyBuYW1lc3BhY2UgXSA9ICRbIG5hbWVzcGFjZSBdIHx8IHt9Ow0KCWV4aXN0aW5nQ29uc3RydWN0b3IgPSAkWyBuYW1lc3BhY2UgXVsgbmFtZSBdOw0KCWNvbnN0cnVjdG9yID0gJFsgbmFtZXNwYWNlIF1bIG5hbWUgXSA9IGZ1bmN0aW9uKCBvcHRpb25zLCBlbGVtZW50ICkgew0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgIm5ldyIga2V5d29yZA0KCQlpZiAoICF0aGlzLl9jcmVhdGVXaWRnZXQgKSB7DQoJCQlyZXR1cm4gbmV3IGNvbnN0cnVjdG9yKCBvcHRpb25zLCBlbGVtZW50ICk7DQoJCX0NCg0KCQkvLyBhbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgaW5pdGlhbGl6aW5nIGZvciBzaW1wbGUgaW5oZXJpdGFuY2UNCgkJLy8gbXVzdCB1c2UgIm5ldyIga2V5d29yZCAodGhlIGNvZGUgYWJvdmUgYWx3YXlzIHBhc3NlcyBhcmdzKQ0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9jcmVhdGVXaWRnZXQoIG9wdGlvbnMsIGVsZW1lbnQgKTsNCgkJfQ0KCX07DQoJLy8gZXh0ZW5kIHdpdGggdGhlIGV4aXN0aW5nIGNvbnN0cnVjdG9yIHRvIGNhcnJ5IG92ZXIgYW55IHN0YXRpYyBwcm9wZXJ0aWVzDQoJJC5leHRlbmQoIGNvbnN0cnVjdG9yLCBleGlzdGluZ0NvbnN0cnVjdG9yLCB7DQoJCXZlcnNpb246IHByb3RvdHlwZS52ZXJzaW9uLA0KCQkvLyBjb3B5IHRoZSBvYmplY3QgdXNlZCB0byBjcmVhdGUgdGhlIHByb3RvdHlwZSBpbiBjYXNlIHdlIG5lZWQgdG8NCgkJLy8gcmVkZWZpbmUgdGhlIHdpZGdldCBsYXRlcg0KCQlfcHJvdG86ICQuZXh0ZW5kKCB7fSwgcHJvdG90eXBlICksDQoJCS8vIHRyYWNrIHdpZGdldHMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyB3aWRnZXQgaW4gY2FzZSB0aGlzIHdpZGdldCBpcw0KCQkvLyByZWRlZmluZWQgYWZ0ZXIgYSB3aWRnZXQgaW5oZXJpdHMgZnJvbSBpdA0KCQlfY2hpbGRDb25zdHJ1Y3RvcnM6IFtdDQoJfSk7DQoNCgliYXNlUHJvdG90eXBlID0gbmV3IGJhc2UoKTsNCgkvLyB3ZSBuZWVkIHRvIG1ha2UgdGhlIG9wdGlvbnMgaGFzaCBhIHByb3BlcnR5IGRpcmVjdGx5IG9uIHRoZSBuZXcgaW5zdGFuY2UNCgkvLyBvdGhlcndpc2Ugd2UnbGwgbW9kaWZ5IHRoZSBvcHRpb25zIGhhc2ggb24gdGhlIHByb3RvdHlwZSB0aGF0IHdlJ3JlDQoJLy8gaW5oZXJpdGluZyBmcm9tDQoJYmFzZVByb3RvdHlwZS5vcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgYmFzZVByb3RvdHlwZS5vcHRpb25zICk7DQoJJC5lYWNoKCBwcm90b3R5cGUsIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHsNCgkJaWYgKCAhJC5pc0Z1bmN0aW9uKCB2YWx1ZSApICkgew0KCQkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gdmFsdWU7DQoJCQlyZXR1cm47DQoJCX0NCgkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gKGZ1bmN0aW9uKCkgew0KCQkJdmFyIF9zdXBlciA9IGZ1bmN0aW9uKCkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJfSwNCgkJCQlfc3VwZXJBcHBseSA9IGZ1bmN0aW9uKCBhcmdzICkgew0KCQkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJncyApOw0KCQkJCX07DQoJCQlyZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQkJdmFyIF9fc3VwZXIgPSB0aGlzLl9zdXBlciwNCgkJCQkJX19zdXBlckFwcGx5ID0gdGhpcy5fc3VwZXJBcHBseSwNCgkJCQkJcmV0dXJuVmFsdWU7DQoNCgkJCQl0aGlzLl9zdXBlciA9IF9zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX3N1cGVyQXBwbHk7DQoNCgkJCQlyZXR1cm5WYWx1ZSA9IHZhbHVlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCg0KCQkJCXRoaXMuX3N1cGVyID0gX19zdXBlcjsNCgkJCQl0aGlzLl9zdXBlckFwcGx5ID0gX19zdXBlckFwcGx5Ow0KDQoJCQkJcmV0dXJuIHJldHVyblZhbHVlOw0KCQkJfTsNCgkJfSkoKTsNCgl9KTsNCgljb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSAkLndpZGdldC5leHRlbmQoIGJhc2VQcm90b3R5cGUsIHsNCgkJLy8gVE9ETzogcmVtb3ZlIHN1cHBvcnQgZm9yIHdpZGdldEV2ZW50UHJlZml4DQoJCS8vIGFsd2F5cyB1c2UgdGhlIG5hbWUgKyBhIGNvbG9uIGFzIHRoZSBwcmVmaXgsIGUuZy4sIGRyYWdnYWJsZTpzdGFydA0KCQkvLyBkb24ndCBwcmVmaXggZm9yIHdpZGdldHMgdGhhdCBhcmVuJ3QgRE9NLWJhc2VkDQoJCXdpZGdldEV2ZW50UHJlZml4OiBleGlzdGluZ0NvbnN0cnVjdG9yID8gKGJhc2VQcm90b3R5cGUud2lkZ2V0RXZlbnRQcmVmaXggfHwgbmFtZSkgOiBuYW1lDQoJfSwgcHJveGllZFByb3RvdHlwZSwgew0KCQljb25zdHJ1Y3RvcjogY29uc3RydWN0b3IsDQoJCW5hbWVzcGFjZTogbmFtZXNwYWNlLA0KCQl3aWRnZXROYW1lOiBuYW1lLA0KCQl3aWRnZXRGdWxsTmFtZTogZnVsbE5hbWUNCgl9KTsNCg0KCS8vIElmIHRoaXMgd2lkZ2V0IGlzIGJlaW5nIHJlZGVmaW5lZCB0aGVuIHdlIG5lZWQgdG8gZmluZCBhbGwgd2lkZ2V0cyB0aGF0DQoJLy8gYXJlIGluaGVyaXRpbmcgZnJvbSBpdCBhbmQgcmVkZWZpbmUgYWxsIG9mIHRoZW0gc28gdGhhdCB0aGV5IGluaGVyaXQgZnJvbQ0KCS8vIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGlzIHdpZGdldC4gV2UncmUgZXNzZW50aWFsbHkgdHJ5aW5nIHRvIHJlcGxhY2Ugb25lDQoJLy8gbGV2ZWwgaW4gdGhlIHByb3RvdHlwZSBjaGFpbi4NCglpZiAoIGV4aXN0aW5nQ29uc3RydWN0b3IgKSB7DQoJCSQuZWFjaCggZXhpc3RpbmdDb25zdHJ1Y3Rvci5fY2hpbGRDb25zdHJ1Y3RvcnMsIGZ1bmN0aW9uKCBpLCBjaGlsZCApIHsNCgkJCXZhciBjaGlsZFByb3RvdHlwZSA9IGNoaWxkLnByb3RvdHlwZTsNCg0KCQkJLy8gcmVkZWZpbmUgdGhlIGNoaWxkIHdpZGdldCB1c2luZyB0aGUgc2FtZSBwcm90b3R5cGUgdGhhdCB3YXMNCgkJCS8vIG9yaWdpbmFsbHkgdXNlZCwgYnV0IGluaGVyaXQgZnJvbSB0aGUgbmV3IHZlcnNpb24gb2YgdGhlIGJhc2UNCgkJCSQud2lkZ2V0KCBjaGlsZFByb3RvdHlwZS5uYW1lc3BhY2UgKyAiLiIgKyBjaGlsZFByb3RvdHlwZS53aWRnZXROYW1lLCBjb25zdHJ1Y3RvciwgY2hpbGQuX3Byb3RvICk7DQoJCX0pOw0KCQkvLyByZW1vdmUgdGhlIGxpc3Qgb2YgZXhpc3RpbmcgY2hpbGQgY29uc3RydWN0b3JzIGZyb20gdGhlIG9sZCBjb25zdHJ1Y3Rvcg0KCQkvLyBzbyB0aGUgb2xkIGNoaWxkIGNvbnN0cnVjdG9ycyBjYW4gYmUgZ2FyYmFnZSBjb2xsZWN0ZWQNCgkJZGVsZXRlIGV4aXN0aW5nQ29uc3RydWN0b3IuX2NoaWxkQ29uc3RydWN0b3JzOw0KCX0gZWxzZSB7DQoJCWJhc2UuX2NoaWxkQ29uc3RydWN0b3JzLnB1c2goIGNvbnN0cnVjdG9yICk7DQoJfQ0KDQoJJC53aWRnZXQuYnJpZGdlKCBuYW1lLCBjb25zdHJ1Y3RvciApOw0KDQoJcmV0dXJuIGNvbnN0cnVjdG9yOw0KfTsNCg0KJC53aWRnZXQuZXh0ZW5kID0gZnVuY3Rpb24oIHRhcmdldCApIHsNCgl2YXIgaW5wdXQgPSB3aWRnZXRfc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksDQoJCWlucHV0SW5kZXggPSAwLA0KCQlpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aCwNCgkJa2V5LA0KCQl2YWx1ZTsNCglmb3IgKCA7IGlucHV0SW5kZXggPCBpbnB1dExlbmd0aDsgaW5wdXRJbmRleCsrICkgew0KCQlmb3IgKCBrZXkgaW4gaW5wdXRbIGlucHV0SW5kZXggXSApIHsNCgkJCXZhbHVlID0gaW5wdXRbIGlucHV0SW5kZXggXVsga2V5IF07DQoJCQlpZiAoIGlucHV0WyBpbnB1dEluZGV4IF0uaGFzT3duUHJvcGVydHkoIGtleSApICYmIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7DQoJCQkJLy8gQ2xvbmUgb2JqZWN0cw0KCQkJCWlmICggJC5pc1BsYWluT2JqZWN0KCB2YWx1ZSApICkgew0KCQkJCQl0YXJnZXRbIGtleSBdID0gJC5pc1BsYWluT2JqZWN0KCB0YXJnZXRbIGtleSBdICkgPw0KCQkJCQkJJC53aWRnZXQuZXh0ZW5kKCB7fSwgdGFyZ2V0WyBrZXkgXSwgdmFsdWUgKSA6DQoJCQkJCQkvLyBEb24ndCBleHRlbmQgc3RyaW5ncywgYXJyYXlzLCBldGMuIHdpdGggb2JqZWN0cw0KCQkJCQkJJC53aWRnZXQuZXh0ZW5kKCB7fSwgdmFsdWUgKTsNCgkJCQkvLyBDb3B5IGV2ZXJ5dGhpbmcgZWxzZSBieSByZWZlcmVuY2UNCgkJCQl9IGVsc2Ugew0KCQkJCQl0YXJnZXRbIGtleSBdID0gdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCXJldHVybiB0YXJnZXQ7DQp9Ow0KDQokLndpZGdldC5icmlkZ2UgPSBmdW5jdGlvbiggbmFtZSwgb2JqZWN0ICkgew0KCXZhciBmdWxsTmFtZSA9IG9iamVjdC5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWUgfHwgbmFtZTsNCgkkLmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIGlzTWV0aG9kQ2FsbCA9IHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiwNCgkJCWFyZ3MgPSB3aWRnZXRfc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksDQoJCQlyZXR1cm5WYWx1ZSA9IHRoaXM7DQoNCgkJaWYgKCBpc01ldGhvZENhbGwgKSB7DQoJCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyIG1ldGhvZFZhbHVlLA0KCQkJCQlpbnN0YW5jZSA9ICQuZGF0YSggdGhpcywgZnVsbE5hbWUgKTsNCgkJCQlpZiAoIG9wdGlvbnMgPT09ICJpbnN0YW5jZSIgKSB7DQoJCQkJCXJldHVyblZhbHVlID0gaW5zdGFuY2U7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQkJaWYgKCAhaW5zdGFuY2UgKSB7DQoJCQkJCXJldHVybiAkLmVycm9yKCAiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiICsgbmFtZSArICIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247ICIgKw0KCQkJCQkJImF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIiArIG9wdGlvbnMgKyAiJyIgKTsNCgkJCQl9DQoJCQkJaWYgKCAhJC5pc0Z1bmN0aW9uKCBpbnN0YW5jZVtvcHRpb25zXSApIHx8IG9wdGlvbnMuY2hhckF0KCAwICkgPT09ICJfIiApIHsNCgkJCQkJcmV0dXJuICQuZXJyb3IoICJubyBzdWNoIG1ldGhvZCAnIiArIG9wdGlvbnMgKyAiJyBmb3IgIiArIG5hbWUgKyAiIHdpZGdldCBpbnN0YW5jZSIgKTsNCgkJCQl9DQoJCQkJbWV0aG9kVmFsdWUgPSBpbnN0YW5jZVsgb3B0aW9ucyBdLmFwcGx5KCBpbnN0YW5jZSwgYXJncyApOw0KCQkJCWlmICggbWV0aG9kVmFsdWUgIT09IGluc3RhbmNlICYmIG1ldGhvZFZhbHVlICE9PSB1bmRlZmluZWQgKSB7DQoJCQkJCXJldHVyblZhbHVlID0gbWV0aG9kVmFsdWUgJiYgbWV0aG9kVmFsdWUuanF1ZXJ5ID8NCgkJCQkJCXJldHVyblZhbHVlLnB1c2hTdGFjayggbWV0aG9kVmFsdWUuZ2V0KCkgKSA6DQoJCQkJCQltZXRob2RWYWx1ZTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0pOw0KCQl9IGVsc2Ugew0KDQoJCQkvLyBBbGxvdyBtdWx0aXBsZSBoYXNoZXMgdG8gYmUgcGFzc2VkIG9uIGluaXQNCgkJCWlmICggYXJncy5sZW5ndGggKSB7DQoJCQkJb3B0aW9ucyA9ICQud2lkZ2V0LmV4dGVuZC5hcHBseSggbnVsbCwgWyBvcHRpb25zIF0uY29uY2F0KGFyZ3MpICk7DQoJCQl9DQoNCgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgaW5zdGFuY2UgPSAkLmRhdGEoIHRoaXMsIGZ1bGxOYW1lICk7DQoJCQkJaWYgKCBpbnN0YW5jZSApIHsNCgkJCQkJaW5zdGFuY2Uub3B0aW9uKCBvcHRpb25zIHx8IHt9ICk7DQoJCQkJCWlmICggaW5zdGFuY2UuX2luaXQgKSB7DQoJCQkJCQlpbnN0YW5jZS5faW5pdCgpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsNCgkJCQkJJC5kYXRhKCB0aGlzLCBmdWxsTmFtZSwgbmV3IG9iamVjdCggb3B0aW9ucywgdGhpcyApICk7DQoJCQkJfQ0KCQkJfSk7DQoJCX0NCg0KCQlyZXR1cm4gcmV0dXJuVmFsdWU7DQoJfTsNCn07DQoNCiQuV2lkZ2V0ID0gZnVuY3Rpb24oIC8qIG9wdGlvbnMsIGVsZW1lbnQgKi8gKSB7fTsNCiQuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycyA9IFtdOw0KDQokLldpZGdldC5wcm90b3R5cGUgPSB7DQoJd2lkZ2V0TmFtZTogIndpZGdldCIsDQoJd2lkZ2V0RXZlbnRQcmVmaXg6ICIiLA0KCWRlZmF1bHRFbGVtZW50OiAiPGRpdj4iLA0KCW9wdGlvbnM6IHsNCgkJZGlzYWJsZWQ6IGZhbHNlLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQljcmVhdGU6IG51bGwNCgl9LA0KCV9jcmVhdGVXaWRnZXQ6IGZ1bmN0aW9uKCBvcHRpb25zLCBlbGVtZW50ICkgew0KCQllbGVtZW50ID0gJCggZWxlbWVudCB8fCB0aGlzLmRlZmF1bHRFbGVtZW50IHx8IHRoaXMgKVsgMCBdOw0KCQl0aGlzLmVsZW1lbnQgPSAkKCBlbGVtZW50ICk7DQoJCXRoaXMudXVpZCA9IHdpZGdldF91dWlkKys7DQoJCXRoaXMuZXZlbnROYW1lc3BhY2UgPSAiLiIgKyB0aGlzLndpZGdldE5hbWUgKyB0aGlzLnV1aWQ7DQoNCgkJdGhpcy5iaW5kaW5ncyA9ICQoKTsNCgkJdGhpcy5ob3ZlcmFibGUgPSAkKCk7DQoJCXRoaXMuZm9jdXNhYmxlID0gJCgpOw0KDQoJCWlmICggZWxlbWVudCAhPT0gdGhpcyApIHsNCgkJCSQuZGF0YSggZWxlbWVudCwgdGhpcy53aWRnZXRGdWxsTmFtZSwgdGhpcyApOw0KCQkJdGhpcy5fb24oIHRydWUsIHRoaXMuZWxlbWVudCwgew0KCQkJCXJlbW92ZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQlpZiAoIGV2ZW50LnRhcmdldCA9PT0gZWxlbWVudCApIHsNCgkJCQkJCXRoaXMuZGVzdHJveSgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfSk7DQoJCQl0aGlzLmRvY3VtZW50ID0gJCggZWxlbWVudC5zdHlsZSA/DQoJCQkJLy8gZWxlbWVudCB3aXRoaW4gdGhlIGRvY3VtZW50DQoJCQkJZWxlbWVudC5vd25lckRvY3VtZW50IDoNCgkJCQkvLyBlbGVtZW50IGlzIHdpbmRvdyBvciBkb2N1bWVudA0KCQkJCWVsZW1lbnQuZG9jdW1lbnQgfHwgZWxlbWVudCApOw0KCQkJdGhpcy53aW5kb3cgPSAkKCB0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3IHx8IHRoaXMuZG9jdW1lbnRbMF0ucGFyZW50V2luZG93ICk7DQoJCX0NCg0KCQl0aGlzLm9wdGlvbnMgPSAkLndpZGdldC5leHRlbmQoIHt9LA0KCQkJdGhpcy5vcHRpb25zLA0KCQkJdGhpcy5fZ2V0Q3JlYXRlT3B0aW9ucygpLA0KCQkJb3B0aW9ucyApOw0KDQoJCXRoaXMuX2NyZWF0ZSgpOw0KCQl0aGlzLl90cmlnZ2VyKCAiY3JlYXRlIiwgbnVsbCwgdGhpcy5fZ2V0Q3JlYXRlRXZlbnREYXRhKCkgKTsNCgkJdGhpcy5faW5pdCgpOw0KCX0sDQoJX2dldENyZWF0ZU9wdGlvbnM6ICQubm9vcCwNCglfZ2V0Q3JlYXRlRXZlbnREYXRhOiAkLm5vb3AsDQoJX2NyZWF0ZTogJC5ub29wLA0KCV9pbml0OiAkLm5vb3AsDQoNCglkZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fZGVzdHJveSgpOw0KCQkvLyB3ZSBjYW4gcHJvYmFibHkgcmVtb3ZlIHRoZSB1bmJpbmQgY2FsbHMgaW4gMi4wDQoJCS8vIGFsbCBldmVudCBiaW5kaW5ncyBzaG91bGQgZ28gdGhyb3VnaCB0aGlzLl9vbigpDQoJCXRoaXMuZWxlbWVudA0KCQkJLnVuYmluZCggdGhpcy5ldmVudE5hbWVzcGFjZSApDQoJCQkucmVtb3ZlRGF0YSggdGhpcy53aWRnZXRGdWxsTmFtZSApDQoJCQkvLyBzdXBwb3J0OiBqcXVlcnkgPDEuNi4zDQoJCQkvLyBodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC85NDEzDQoJCQkucmVtb3ZlRGF0YSggJC5jYW1lbENhc2UoIHRoaXMud2lkZ2V0RnVsbE5hbWUgKSApOw0KCQl0aGlzLndpZGdldCgpDQoJCQkudW5iaW5kKCB0aGlzLmV2ZW50TmFtZXNwYWNlICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKQ0KCQkJLnJlbW92ZUNsYXNzKA0KCQkJCXRoaXMud2lkZ2V0RnVsbE5hbWUgKyAiLWRpc2FibGVkICIgKw0KCQkJCSJ1aS1zdGF0ZS1kaXNhYmxlZCIgKTsNCg0KCQkvLyBjbGVhbiB1cCBldmVudHMgYW5kIHN0YXRlcw0KCQl0aGlzLmJpbmRpbmdzLnVuYmluZCggdGhpcy5ldmVudE5hbWVzcGFjZSApOw0KCQl0aGlzLmhvdmVyYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApOw0KCQl0aGlzLmZvY3VzYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCX0sDQoJX2Rlc3Ryb3k6ICQubm9vcCwNCg0KCXdpZGdldDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQ7DQoJfSwNCg0KCW9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXZhciBvcHRpb25zID0ga2V5LA0KCQkJcGFydHMsDQoJCQljdXJPcHRpb24sDQoJCQlpOw0KDQoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsNCgkJCS8vIGRvbid0IHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJuYWwgaGFzaA0KCQkJcmV0dXJuICQud2lkZ2V0LmV4dGVuZCgge30sIHRoaXMub3B0aW9ucyApOw0KCQl9DQoNCgkJaWYgKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsNCgkJCS8vIGhhbmRsZSBuZXN0ZWQga2V5cywgZS5nLiwgImZvby5iYXIiID0+IHsgZm9vOiB7IGJhcjogX19fIH0gfQ0KCQkJb3B0aW9ucyA9IHt9Ow0KCQkJcGFydHMgPSBrZXkuc3BsaXQoICIuIiApOw0KCQkJa2V5ID0gcGFydHMuc2hpZnQoKTsNCgkJCWlmICggcGFydHMubGVuZ3RoICkgew0KCQkJCWN1ck9wdGlvbiA9IG9wdGlvbnNbIGtleSBdID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgdGhpcy5vcHRpb25zWyBrZXkgXSApOw0KCQkJCWZvciAoIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrICkgew0KCQkJCQljdXJPcHRpb25bIHBhcnRzWyBpIF0gXSA9IGN1ck9wdGlvblsgcGFydHNbIGkgXSBdIHx8IHt9Ow0KCQkJCQljdXJPcHRpb24gPSBjdXJPcHRpb25bIHBhcnRzWyBpIF0gXTsNCgkJCQl9DQoJCQkJa2V5ID0gcGFydHMucG9wKCk7DQoJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAxICkgew0KCQkJCQlyZXR1cm4gY3VyT3B0aW9uWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGN1ck9wdGlvblsga2V5IF07DQoJCQkJfQ0KCQkJCWN1ck9wdGlvblsga2V5IF0gPSB2YWx1ZTsNCgkJCX0gZWxzZSB7DQoJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAxICkgew0KCQkJCQlyZXR1cm4gdGhpcy5vcHRpb25zWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHRoaXMub3B0aW9uc1sga2V5IF07DQoJCQkJfQ0KCQkJCW9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb25zKCBvcHRpb25zICk7DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCglfc2V0T3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBrZXk7DQoNCgkJZm9yICgga2V5IGluIG9wdGlvbnMgKSB7DQoJCQl0aGlzLl9zZXRPcHRpb24oIGtleSwgb3B0aW9uc1sga2V5IF0gKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXRoaXMub3B0aW9uc1sga2V5IF0gPSB2YWx1ZTsNCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXMud2lkZ2V0KCkNCgkJCQkudG9nZ2xlQ2xhc3MoIHRoaXMud2lkZ2V0RnVsbE5hbWUgKyAiLWRpc2FibGVkIiwgISF2YWx1ZSApOw0KDQoJCQkvLyBJZiB0aGUgd2lkZ2V0IGlzIGJlY29taW5nIGRpc2FibGVkLCB0aGVuIG5vdGhpbmcgaXMgaW50ZXJhY3RpdmUNCgkJCWlmICggdmFsdWUgKSB7DQoJCQkJdGhpcy5ob3ZlcmFibGUucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJCQl0aGlzLmZvY3VzYWJsZS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCWVuYWJsZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLl9zZXRPcHRpb25zKHsgZGlzYWJsZWQ6IGZhbHNlIH0pOw0KCX0sDQoJZGlzYWJsZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLl9zZXRPcHRpb25zKHsgZGlzYWJsZWQ6IHRydWUgfSk7DQoJfSwNCg0KCV9vbjogZnVuY3Rpb24oIHN1cHByZXNzRGlzYWJsZWRDaGVjaywgZWxlbWVudCwgaGFuZGxlcnMgKSB7DQoJCXZhciBkZWxlZ2F0ZUVsZW1lbnQsDQoJCQlpbnN0YW5jZSA9IHRoaXM7DQoNCgkJLy8gbm8gc3VwcHJlc3NEaXNhYmxlZENoZWNrIGZsYWcsIHNodWZmbGUgYXJndW1lbnRzDQoJCWlmICggdHlwZW9mIHN1cHByZXNzRGlzYWJsZWRDaGVjayAhPT0gImJvb2xlYW4iICkgew0KCQkJaGFuZGxlcnMgPSBlbGVtZW50Ow0KCQkJZWxlbWVudCA9IHN1cHByZXNzRGlzYWJsZWRDaGVjazsNCgkJCXN1cHByZXNzRGlzYWJsZWRDaGVjayA9IGZhbHNlOw0KCQl9DQoNCgkJLy8gbm8gZWxlbWVudCBhcmd1bWVudCwgc2h1ZmZsZSBhbmQgdXNlIHRoaXMuZWxlbWVudA0KCQlpZiAoICFoYW5kbGVycyApIHsNCgkJCWhhbmRsZXJzID0gZWxlbWVudDsNCgkJCWVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7DQoJCQlkZWxlZ2F0ZUVsZW1lbnQgPSB0aGlzLndpZGdldCgpOw0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudCA9IGRlbGVnYXRlRWxlbWVudCA9ICQoIGVsZW1lbnQgKTsNCgkJCXRoaXMuYmluZGluZ3MgPSB0aGlzLmJpbmRpbmdzLmFkZCggZWxlbWVudCApOw0KCQl9DQoNCgkJJC5lYWNoKCBoYW5kbGVycywgZnVuY3Rpb24oIGV2ZW50LCBoYW5kbGVyICkgew0KCQkJZnVuY3Rpb24gaGFuZGxlclByb3h5KCkgew0KCQkJCS8vIGFsbG93IHdpZGdldHMgdG8gY3VzdG9taXplIHRoZSBkaXNhYmxlZCBoYW5kbGluZw0KCQkJCS8vIC0gZGlzYWJsZWQgYXMgYW4gYXJyYXkgaW5zdGVhZCBvZiBib29sZWFuDQoJCQkJLy8gLSBkaXNhYmxlZCBjbGFzcyBhcyBtZXRob2QgZm9yIGRpc2FibGluZyBpbmRpdmlkdWFsIHBhcnRzDQoJCQkJaWYgKCAhc3VwcHJlc3NEaXNhYmxlZENoZWNrICYmDQoJCQkJCQkoIGluc3RhbmNlLm9wdGlvbnMuZGlzYWJsZWQgPT09IHRydWUgfHwNCgkJCQkJCQkkKCB0aGlzICkuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIgKSApICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXJldHVybiAoIHR5cGVvZiBoYW5kbGVyID09PSAic3RyaW5nIiA/IGluc3RhbmNlWyBoYW5kbGVyIF0gOiBoYW5kbGVyICkNCgkJCQkJLmFwcGx5KCBpbnN0YW5jZSwgYXJndW1lbnRzICk7DQoJCQl9DQoNCgkJCS8vIGNvcHkgdGhlIGd1aWQgc28gZGlyZWN0IHVuYmluZGluZyB3b3Jrcw0KCQkJaWYgKCB0eXBlb2YgaGFuZGxlciAhPT0gInN0cmluZyIgKSB7DQoJCQkJaGFuZGxlclByb3h5Lmd1aWQgPSBoYW5kbGVyLmd1aWQgPQ0KCQkJCQloYW5kbGVyLmd1aWQgfHwgaGFuZGxlclByb3h5Lmd1aWQgfHwgJC5ndWlkKys7DQoJCQl9DQoNCgkJCXZhciBtYXRjaCA9IGV2ZW50Lm1hdGNoKCAvXihbXHc6LV0qKVxzKiguKikkLyApLA0KCQkJCWV2ZW50TmFtZSA9IG1hdGNoWzFdICsgaW5zdGFuY2UuZXZlbnROYW1lc3BhY2UsDQoJCQkJc2VsZWN0b3IgPSBtYXRjaFsyXTsNCgkJCWlmICggc2VsZWN0b3IgKSB7DQoJCQkJZGVsZWdhdGVFbGVtZW50LmRlbGVnYXRlKCBzZWxlY3RvciwgZXZlbnROYW1lLCBoYW5kbGVyUHJveHkgKTsNCgkJCX0gZWxzZSB7DQoJCQkJZWxlbWVudC5iaW5kKCBldmVudE5hbWUsIGhhbmRsZXJQcm94eSApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX29mZjogZnVuY3Rpb24oIGVsZW1lbnQsIGV2ZW50TmFtZSApIHsNCgkJZXZlbnROYW1lID0gKGV2ZW50TmFtZSB8fCAiIikuc3BsaXQoICIgIiApLmpvaW4oIHRoaXMuZXZlbnROYW1lc3BhY2UgKyAiICIgKSArDQoJCQl0aGlzLmV2ZW50TmFtZXNwYWNlOw0KCQllbGVtZW50LnVuYmluZCggZXZlbnROYW1lICkudW5kZWxlZ2F0ZSggZXZlbnROYW1lICk7DQoNCgkJLy8gQ2xlYXIgdGhlIHN0YWNrIHRvIGF2b2lkIG1lbW9yeSBsZWFrcyAoIzEwMDU2KQ0KCQl0aGlzLmJpbmRpbmdzID0gJCggdGhpcy5iaW5kaW5ncy5ub3QoIGVsZW1lbnQgKS5nZXQoKSApOw0KCQl0aGlzLmZvY3VzYWJsZSA9ICQoIHRoaXMuZm9jdXNhYmxlLm5vdCggZWxlbWVudCApLmdldCgpICk7DQoJCXRoaXMuaG92ZXJhYmxlID0gJCggdGhpcy5ob3ZlcmFibGUubm90KCBlbGVtZW50ICkuZ2V0KCkgKTsNCgl9LA0KDQoJX2RlbGF5OiBmdW5jdGlvbiggaGFuZGxlciwgZGVsYXkgKSB7DQoJCWZ1bmN0aW9uIGhhbmRsZXJQcm94eSgpIHsNCgkJCXJldHVybiAoIHR5cGVvZiBoYW5kbGVyID09PSAic3RyaW5nIiA/IGluc3RhbmNlWyBoYW5kbGVyIF0gOiBoYW5kbGVyICkNCgkJCQkuYXBwbHkoIGluc3RhbmNlLCBhcmd1bWVudHMgKTsNCgkJfQ0KCQl2YXIgaW5zdGFuY2UgPSB0aGlzOw0KCQlyZXR1cm4gc2V0VGltZW91dCggaGFuZGxlclByb3h5LCBkZWxheSB8fCAwICk7DQoJfSwNCg0KCV9ob3ZlcmFibGU6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl0aGlzLmhvdmVyYWJsZSA9IHRoaXMuaG92ZXJhYmxlLmFkZCggZWxlbWVudCApOw0KCQl0aGlzLl9vbiggZWxlbWVudCwgew0KCQkJbW91c2VlbnRlcjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCSQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5hZGRDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApOw0KCQkJfSwNCgkJCW1vdXNlbGVhdmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9mb2N1c2FibGU6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl0aGlzLmZvY3VzYWJsZSA9IHRoaXMuZm9jdXNhYmxlLmFkZCggZWxlbWVudCApOw0KCQl0aGlzLl9vbiggZWxlbWVudCwgew0KCQkJZm9jdXNpbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCSQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5hZGRDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfSwNCgkJCWZvY3Vzb3V0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZm9jdXMiICk7DQoJCQl9DQoJCX0pOw0KCX0sDQoNCglfdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGV2ZW50LCBkYXRhICkgew0KCQl2YXIgcHJvcCwgb3JpZywNCgkJCWNhbGxiYWNrID0gdGhpcy5vcHRpb25zWyB0eXBlIF07DQoNCgkJZGF0YSA9IGRhdGEgfHwge307DQoJCWV2ZW50ID0gJC5FdmVudCggZXZlbnQgKTsNCgkJZXZlbnQudHlwZSA9ICggdHlwZSA9PT0gdGhpcy53aWRnZXRFdmVudFByZWZpeCA/DQoJCQl0eXBlIDoNCgkJCXRoaXMud2lkZ2V0RXZlbnRQcmVmaXggKyB0eXBlICkudG9Mb3dlckNhc2UoKTsNCgkJLy8gdGhlIG9yaWdpbmFsIGV2ZW50IG1heSBjb21lIGZyb20gYW55IGVsZW1lbnQNCgkJLy8gc28gd2UgbmVlZCB0byByZXNldCB0aGUgdGFyZ2V0IG9uIHRoZSBuZXcgZXZlbnQNCgkJZXZlbnQudGFyZ2V0ID0gdGhpcy5lbGVtZW50WyAwIF07DQoNCgkJLy8gY29weSBvcmlnaW5hbCBldmVudCBwcm9wZXJ0aWVzIG92ZXIgdG8gdGhlIG5ldyBldmVudA0KCQlvcmlnID0gZXZlbnQub3JpZ2luYWxFdmVudDsNCgkJaWYgKCBvcmlnICkgew0KCQkJZm9yICggcHJvcCBpbiBvcmlnICkgew0KCQkJCWlmICggISggcHJvcCBpbiBldmVudCApICkgew0KCQkJCQlldmVudFsgcHJvcCBdID0gb3JpZ1sgcHJvcCBdOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMuZWxlbWVudC50cmlnZ2VyKCBldmVudCwgZGF0YSApOw0KCQlyZXR1cm4gISggJC5pc0Z1bmN0aW9uKCBjYWxsYmFjayApICYmDQoJCQljYWxsYmFjay5hcHBseSggdGhpcy5lbGVtZW50WzBdLCBbIGV2ZW50IF0uY29uY2F0KCBkYXRhICkgKSA9PT0gZmFsc2UgfHwNCgkJCWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICk7DQoJfQ0KfTsNCg0KJC5lYWNoKCB7IHNob3c6ICJmYWRlSW4iLCBoaWRlOiAiZmFkZU91dCIgfSwgZnVuY3Rpb24oIG1ldGhvZCwgZGVmYXVsdEVmZmVjdCApIHsNCgkkLldpZGdldC5wcm90b3R5cGVbICJfIiArIG1ldGhvZCBdID0gZnVuY3Rpb24oIGVsZW1lbnQsIG9wdGlvbnMsIGNhbGxiYWNrICkgew0KCQlpZiAoIHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiApIHsNCgkJCW9wdGlvbnMgPSB7IGVmZmVjdDogb3B0aW9ucyB9Ow0KCQl9DQoJCXZhciBoYXNPcHRpb25zLA0KCQkJZWZmZWN0TmFtZSA9ICFvcHRpb25zID8NCgkJCQltZXRob2QgOg0KCQkJCW9wdGlvbnMgPT09IHRydWUgfHwgdHlwZW9mIG9wdGlvbnMgPT09ICJudW1iZXIiID8NCgkJCQkJZGVmYXVsdEVmZmVjdCA6DQoJCQkJCW9wdGlvbnMuZWZmZWN0IHx8IGRlZmF1bHRFZmZlY3Q7DQoJCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9Ow0KCQlpZiAoIHR5cGVvZiBvcHRpb25zID09PSAibnVtYmVyIiApIHsNCgkJCW9wdGlvbnMgPSB7IGR1cmF0aW9uOiBvcHRpb25zIH07DQoJCX0NCgkJaGFzT3B0aW9ucyA9ICEkLmlzRW1wdHlPYmplY3QoIG9wdGlvbnMgKTsNCgkJb3B0aW9ucy5jb21wbGV0ZSA9IGNhbGxiYWNrOw0KCQlpZiAoIG9wdGlvbnMuZGVsYXkgKSB7DQoJCQllbGVtZW50LmRlbGF5KCBvcHRpb25zLmRlbGF5ICk7DQoJCX0NCgkJaWYgKCBoYXNPcHRpb25zICYmICQuZWZmZWN0cyAmJiAkLmVmZmVjdHMuZWZmZWN0WyBlZmZlY3ROYW1lIF0gKSB7DQoJCQllbGVtZW50WyBtZXRob2QgXSggb3B0aW9ucyApOw0KCQl9IGVsc2UgaWYgKCBlZmZlY3ROYW1lICE9PSBtZXRob2QgJiYgZWxlbWVudFsgZWZmZWN0TmFtZSBdICkgew0KCQkJZWxlbWVudFsgZWZmZWN0TmFtZSBdKCBvcHRpb25zLmR1cmF0aW9uLCBvcHRpb25zLmVhc2luZywgY2FsbGJhY2sgKTsNCgkJfSBlbHNlIHsNCgkJCWVsZW1lbnQucXVldWUoZnVuY3Rpb24oIG5leHQgKSB7DQoJCQkJJCggdGhpcyApWyBtZXRob2QgXSgpOw0KCQkJCWlmICggY2FsbGJhY2sgKSB7DQoJCQkJCWNhbGxiYWNrLmNhbGwoIGVsZW1lbnRbIDAgXSApOw0KCQkJCX0NCgkJCQluZXh0KCk7DQoJCQl9KTsNCgkJfQ0KCX07DQp9KTsNCg0KdmFyIHdpZGdldCA9ICQud2lkZ2V0Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIE1vdXNlIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vbW91c2UvDQogKi8NCg0KDQp2YXIgbW91c2VIYW5kbGVkID0gZmFsc2U7DQokKCBkb2N1bWVudCApLm1vdXNldXAoIGZ1bmN0aW9uKCkgew0KCW1vdXNlSGFuZGxlZCA9IGZhbHNlOw0KfSk7DQoNCnZhciBtb3VzZSA9ICQud2lkZ2V0KCJ1aS5tb3VzZSIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCglvcHRpb25zOiB7DQoJCWNhbmNlbDogImlucHV0LHRleHRhcmVhLGJ1dHRvbixzZWxlY3Qsb3B0aW9uIiwNCgkJZGlzdGFuY2U6IDEsDQoJCWRlbGF5OiAwDQoJfSwNCglfbW91c2VJbml0OiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLmJpbmQoIm1vdXNlZG93bi4iICsgdGhpcy53aWRnZXROYW1lLCBmdW5jdGlvbihldmVudCkgew0KCQkJCXJldHVybiB0aGF0Ll9tb3VzZURvd24oZXZlbnQpOw0KCQkJfSkNCgkJCS5iaW5kKCJjbGljay4iICsgdGhpcy53aWRnZXROYW1lLCBmdW5jdGlvbihldmVudCkgew0KCQkJCWlmICh0cnVlID09PSAkLmRhdGEoZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLnByZXZlbnRDbGlja0V2ZW50IikpIHsNCgkJCQkJJC5yZW1vdmVEYXRhKGV2ZW50LnRhcmdldCwgdGhhdC53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIpOw0KCQkJCQlldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0pOw0KDQoJCXRoaXMuc3RhcnRlZCA9IGZhbHNlOw0KCX0sDQoNCgkvLyBUT0RPOiBtYWtlIHN1cmUgZGVzdHJveWluZyBvbmUgaW5zdGFuY2Ugb2YgbW91c2UgZG9lc24ndCBtZXNzIHdpdGgNCgkvLyBvdGhlciBpbnN0YW5jZXMgb2YgbW91c2UNCglfbW91c2VEZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5lbGVtZW50LnVuYmluZCgiLiIgKyB0aGlzLndpZGdldE5hbWUpOw0KCQlpZiAoIHRoaXMuX21vdXNlTW92ZURlbGVnYXRlICkgew0KCQkJdGhpcy5kb2N1bWVudA0KCQkJCS51bmJpbmQoIm1vdXNlbW92ZS4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkNCgkJCQkudW5iaW5kKCJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSk7DQoJCX0NCgl9LA0KDQoJX21vdXNlRG93bjogZnVuY3Rpb24oZXZlbnQpIHsNCgkJLy8gZG9uJ3QgbGV0IG1vcmUgdGhhbiBvbmUgd2lkZ2V0IGhhbmRsZSBtb3VzZVN0YXJ0DQoJCWlmICggbW91c2VIYW5kbGVkICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fbW91c2VNb3ZlZCA9IGZhbHNlOw0KDQoJCS8vIHdlIG1heSBoYXZlIG1pc3NlZCBtb3VzZXVwIChvdXQgb2Ygd2luZG93KQ0KCQkodGhpcy5fbW91c2VTdGFydGVkICYmIHRoaXMuX21vdXNlVXAoZXZlbnQpKTsNCg0KCQl0aGlzLl9tb3VzZURvd25FdmVudCA9IGV2ZW50Ow0KDQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWJ0bklzTGVmdCA9IChldmVudC53aGljaCA9PT0gMSksDQoJCQkvLyBldmVudC50YXJnZXQubm9kZU5hbWUgd29ya3MgYXJvdW5kIGEgYnVnIGluIElFIDggd2l0aA0KCQkJLy8gZGlzYWJsZWQgaW5wdXRzICgjNzYyMCkNCgkJCWVsSXNDYW5jZWwgPSAodHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWwgPT09ICJzdHJpbmciICYmIGV2ZW50LnRhcmdldC5ub2RlTmFtZSA/ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aCA6IGZhbHNlKTsNCgkJaWYgKCFidG5Jc0xlZnQgfHwgZWxJc0NhbmNlbCB8fCAhdGhpcy5fbW91c2VDYXB0dXJlKGV2ZW50KSkgew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQl0aGlzLm1vdXNlRGVsYXlNZXQgPSAhdGhpcy5vcHRpb25zLmRlbGF5Ow0KCQlpZiAoIXRoaXMubW91c2VEZWxheU1ldCkgew0KCQkJdGhpcy5fbW91c2VEZWxheVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCQl0aGF0Lm1vdXNlRGVsYXlNZXQgPSB0cnVlOw0KCQkJfSwgdGhpcy5vcHRpb25zLmRlbGF5KTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGV2ZW50KSAmJiB0aGlzLl9tb3VzZURlbGF5TWV0KGV2ZW50KSkgew0KCQkJdGhpcy5fbW91c2VTdGFydGVkID0gKHRoaXMuX21vdXNlU3RhcnQoZXZlbnQpICE9PSBmYWxzZSk7DQoJCQlpZiAoIXRoaXMuX21vdXNlU3RhcnRlZCkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCX0NCg0KCQkvLyBDbGljayBldmVudCBtYXkgbmV2ZXIgaGF2ZSBmaXJlZCAoR2Vja28gJiBPcGVyYSkNCgkJaWYgKHRydWUgPT09ICQuZGF0YShldmVudC50YXJnZXQsIHRoaXMud2lkZ2V0TmFtZSArICIucHJldmVudENsaWNrRXZlbnQiKSkgew0KCQkJJC5yZW1vdmVEYXRhKGV2ZW50LnRhcmdldCwgdGhpcy53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIpOw0KCQl9DQoNCgkJLy8gdGhlc2UgZGVsZWdhdGVzIGFyZSByZXF1aXJlZCB0byBrZWVwIGNvbnRleHQNCgkJdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUgPSBmdW5jdGlvbihldmVudCkgew0KCQkJcmV0dXJuIHRoYXQuX21vdXNlTW92ZShldmVudCk7DQoJCX07DQoJCXRoaXMuX21vdXNlVXBEZWxlZ2F0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCQlyZXR1cm4gdGhhdC5fbW91c2VVcChldmVudCk7DQoJCX07DQoNCgkJdGhpcy5kb2N1bWVudA0KCQkJLmJpbmQoICJtb3VzZW1vdmUuIiArIHRoaXMud2lkZ2V0TmFtZSwgdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUgKQ0KCQkJLmJpbmQoICJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSApOw0KDQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJbW91c2VIYW5kbGVkID0gdHJ1ZTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCS8vIE9ubHkgY2hlY2sgZm9yIG1vdXNldXBzIG91dHNpZGUgdGhlIGRvY3VtZW50IGlmIHlvdSd2ZSBtb3ZlZCBpbnNpZGUgdGhlIGRvY3VtZW50DQoJCS8vIGF0IGxlYXN0IG9uY2UuIFRoaXMgcHJldmVudHMgdGhlIGZpcmluZyBvZiBtb3VzZXVwIGluIHRoZSBjYXNlIG9mIElFPDksIHdoaWNoIHdpbGwNCgkJLy8gZmlyZSBhIG1vdXNlbW92ZSBldmVudCBpZiBjb250ZW50IGlzIHBsYWNlZCB1bmRlciB0aGUgY3Vyc29yLiBTZWUgIzc3NzgNCgkJLy8gU3VwcG9ydDogSUUgPDkNCgkJaWYgKCB0aGlzLl9tb3VzZU1vdmVkICkgew0KCQkJLy8gSUUgbW91c2V1cCBjaGVjayAtIG1vdXNldXAgaGFwcGVuZWQgd2hlbiBtb3VzZSB3YXMgb3V0IG9mIHdpbmRvdw0KCQkJaWYgKCQudWkuaWUgJiYgKCAhZG9jdW1lbnQuZG9jdW1lbnRNb2RlIHx8IGRvY3VtZW50LmRvY3VtZW50TW9kZSA8IDkgKSAmJiAhZXZlbnQuYnV0dG9uKSB7DQoJCQkJcmV0dXJuIHRoaXMuX21vdXNlVXAoZXZlbnQpOw0KDQoJCQkvLyBJZnJhbWUgbW91c2V1cCBjaGVjayAtIG1vdXNldXAgb2NjdXJyZWQgaW4gYW5vdGhlciBkb2N1bWVudA0KCQkJfSBlbHNlIGlmICggIWV2ZW50LndoaWNoICkgew0KCQkJCXJldHVybiB0aGlzLl9tb3VzZVVwKCBldmVudCApOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBldmVudC53aGljaCB8fCBldmVudC5idXR0b24gKSB7DQoJCQl0aGlzLl9tb3VzZU1vdmVkID0gdHJ1ZTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZVN0YXJ0ZWQpIHsNCgkJCXRoaXMuX21vdXNlRHJhZyhldmVudCk7DQoJCQlyZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KDQoJCWlmICh0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGV2ZW50KSAmJiB0aGlzLl9tb3VzZURlbGF5TWV0KGV2ZW50KSkgew0KCQkJdGhpcy5fbW91c2VTdGFydGVkID0NCgkJCQkodGhpcy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCwgZXZlbnQpICE9PSBmYWxzZSk7DQoJCQkodGhpcy5fbW91c2VTdGFydGVkID8gdGhpcy5fbW91c2VEcmFnKGV2ZW50KSA6IHRoaXMuX21vdXNlVXAoZXZlbnQpKTsNCgkJfQ0KDQoJCXJldHVybiAhdGhpcy5fbW91c2VTdGFydGVkOw0KCX0sDQoNCglfbW91c2VVcDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdGhpcy5kb2N1bWVudA0KCQkJLnVuYmluZCggIm1vdXNlbW92ZS4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSApDQoJCQkudW5iaW5kKCAibW91c2V1cC4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZVVwRGVsZWdhdGUgKTsNCg0KCQlpZiAodGhpcy5fbW91c2VTdGFydGVkKSB7DQoJCQl0aGlzLl9tb3VzZVN0YXJ0ZWQgPSBmYWxzZTsNCg0KCQkJaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0KSB7DQoJCQkJJC5kYXRhKGV2ZW50LnRhcmdldCwgdGhpcy53aWRnZXROYW1lICsgIi5wcmV2ZW50Q2xpY2tFdmVudCIsIHRydWUpOw0KCQkJfQ0KDQoJCQl0aGlzLl9tb3VzZVN0b3AoZXZlbnQpOw0KCQl9DQoNCgkJbW91c2VIYW5kbGVkID0gZmFsc2U7DQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlRGlzdGFuY2VNZXQ6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXJldHVybiAoTWF0aC5tYXgoDQoJCQkJTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVggLSBldmVudC5wYWdlWCksDQoJCQkJTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVkgLSBldmVudC5wYWdlWSkNCgkJCSkgPj0gdGhpcy5vcHRpb25zLmRpc3RhbmNlDQoJCSk7DQoJfSwNCg0KCV9tb3VzZURlbGF5TWV0OiBmdW5jdGlvbigvKiBldmVudCAqLykgew0KCQlyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0Ow0KCX0sDQoNCgkvLyBUaGVzZSBhcmUgcGxhY2Vob2xkZXIgbWV0aG9kcywgdG8gYmUgb3ZlcnJpZGVuIGJ5IGV4dGVuZGluZyBwbHVnaW4NCglfbW91c2VTdGFydDogZnVuY3Rpb24oLyogZXZlbnQgKi8pIHt9LA0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKC8qIGV2ZW50ICovKSB7fSwNCglfbW91c2VTdG9wOiBmdW5jdGlvbigvKiBldmVudCAqLykge30sDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oLyogZXZlbnQgKi8pIHsgcmV0dXJuIHRydWU7IH0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFBvc2l0aW9uIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vcG9zaXRpb24vDQogKi8NCg0KKGZ1bmN0aW9uKCkgew0KDQokLnVpID0gJC51aSB8fCB7fTsNCg0KdmFyIGNhY2hlZFNjcm9sbGJhcldpZHRoLCBzdXBwb3J0c09mZnNldEZyYWN0aW9ucywNCgltYXggPSBNYXRoLm1heCwNCglhYnMgPSBNYXRoLmFicywNCglyb3VuZCA9IE1hdGgucm91bmQsDQoJcmhvcml6b250YWwgPSAvbGVmdHxjZW50ZXJ8cmlnaHQvLA0KCXJ2ZXJ0aWNhbCA9IC90b3B8Y2VudGVyfGJvdHRvbS8sDQoJcm9mZnNldCA9IC9bXCtcLV1cZCsoXC5bXGRdKyk/JT8vLA0KCXJwb3NpdGlvbiA9IC9eXHcrLywNCglycGVyY2VudCA9IC8lJC8sDQoJX3Bvc2l0aW9uID0gJC5mbi5wb3NpdGlvbjsNCg0KZnVuY3Rpb24gZ2V0T2Zmc2V0cyggb2Zmc2V0cywgd2lkdGgsIGhlaWdodCApIHsNCglyZXR1cm4gWw0KCQlwYXJzZUZsb2F0KCBvZmZzZXRzWyAwIF0gKSAqICggcnBlcmNlbnQudGVzdCggb2Zmc2V0c1sgMCBdICkgPyB3aWR0aCAvIDEwMCA6IDEgKSwNCgkJcGFyc2VGbG9hdCggb2Zmc2V0c1sgMSBdICkgKiAoIHJwZXJjZW50LnRlc3QoIG9mZnNldHNbIDEgXSApID8gaGVpZ2h0IC8gMTAwIDogMSApDQoJXTsNCn0NCg0KZnVuY3Rpb24gcGFyc2VDc3MoIGVsZW1lbnQsIHByb3BlcnR5ICkgew0KCXJldHVybiBwYXJzZUludCggJC5jc3MoIGVsZW1lbnQsIHByb3BlcnR5ICksIDEwICkgfHwgMDsNCn0NCg0KZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyggZWxlbSApIHsNCgl2YXIgcmF3ID0gZWxlbVswXTsNCglpZiAoIHJhdy5ub2RlVHlwZSA9PT0gOSApIHsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBlbGVtLndpZHRoKCksDQoJCQloZWlnaHQ6IGVsZW0uaGVpZ2h0KCksDQoJCQlvZmZzZXQ6IHsgdG9wOiAwLCBsZWZ0OiAwIH0NCgkJfTsNCgl9DQoJaWYgKCAkLmlzV2luZG93KCByYXcgKSApIHsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBlbGVtLndpZHRoKCksDQoJCQloZWlnaHQ6IGVsZW0uaGVpZ2h0KCksDQoJCQlvZmZzZXQ6IHsgdG9wOiBlbGVtLnNjcm9sbFRvcCgpLCBsZWZ0OiBlbGVtLnNjcm9sbExlZnQoKSB9DQoJCX07DQoJfQ0KCWlmICggcmF3LnByZXZlbnREZWZhdWx0ICkgew0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IDAsDQoJCQloZWlnaHQ6IDAsDQoJCQlvZmZzZXQ6IHsgdG9wOiByYXcucGFnZVksIGxlZnQ6IHJhdy5wYWdlWCB9DQoJCX07DQoJfQ0KCXJldHVybiB7DQoJCXdpZHRoOiBlbGVtLm91dGVyV2lkdGgoKSwNCgkJaGVpZ2h0OiBlbGVtLm91dGVySGVpZ2h0KCksDQoJCW9mZnNldDogZWxlbS5vZmZzZXQoKQ0KCX07DQp9DQoNCiQucG9zaXRpb24gPSB7DQoJc2Nyb2xsYmFyV2lkdGg6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIGNhY2hlZFNjcm9sbGJhcldpZHRoICE9PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gY2FjaGVkU2Nyb2xsYmFyV2lkdGg7DQoJCX0NCgkJdmFyIHcxLCB3MiwNCgkJCWRpdiA9ICQoICI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6aGlkZGVuOyc+PGRpdiBzdHlsZT0naGVpZ2h0OjEwMHB4O3dpZHRoOmF1dG87Jz48L2Rpdj48L2Rpdj4iICksDQoJCQlpbm5lckRpdiA9IGRpdi5jaGlsZHJlbigpWzBdOw0KDQoJCSQoICJib2R5IiApLmFwcGVuZCggZGl2ICk7DQoJCXcxID0gaW5uZXJEaXYub2Zmc2V0V2lkdGg7DQoJCWRpdi5jc3MoICJvdmVyZmxvdyIsICJzY3JvbGwiICk7DQoNCgkJdzIgPSBpbm5lckRpdi5vZmZzZXRXaWR0aDsNCg0KCQlpZiAoIHcxID09PSB3MiApIHsNCgkJCXcyID0gZGl2WzBdLmNsaWVudFdpZHRoOw0KCQl9DQoNCgkJZGl2LnJlbW92ZSgpOw0KDQoJCXJldHVybiAoY2FjaGVkU2Nyb2xsYmFyV2lkdGggPSB3MSAtIHcyKTsNCgl9LA0KCWdldFNjcm9sbEluZm86IGZ1bmN0aW9uKCB3aXRoaW4gKSB7DQoJCXZhciBvdmVyZmxvd1ggPSB3aXRoaW4uaXNXaW5kb3cgfHwgd2l0aGluLmlzRG9jdW1lbnQgPyAiIiA6DQoJCQkJd2l0aGluLmVsZW1lbnQuY3NzKCAib3ZlcmZsb3cteCIgKSwNCgkJCW92ZXJmbG93WSA9IHdpdGhpbi5pc1dpbmRvdyB8fCB3aXRoaW4uaXNEb2N1bWVudCA/ICIiIDoNCgkJCQl3aXRoaW4uZWxlbWVudC5jc3MoICJvdmVyZmxvdy15IiApLA0KCQkJaGFzT3ZlcmZsb3dYID0gb3ZlcmZsb3dYID09PSAic2Nyb2xsIiB8fA0KCQkJCSggb3ZlcmZsb3dYID09PSAiYXV0byIgJiYgd2l0aGluLndpZHRoIDwgd2l0aGluLmVsZW1lbnRbMF0uc2Nyb2xsV2lkdGggKSwNCgkJCWhhc092ZXJmbG93WSA9IG92ZXJmbG93WSA9PT0gInNjcm9sbCIgfHwNCgkJCQkoIG92ZXJmbG93WSA9PT0gImF1dG8iICYmIHdpdGhpbi5oZWlnaHQgPCB3aXRoaW4uZWxlbWVudFswXS5zY3JvbGxIZWlnaHQgKTsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBoYXNPdmVyZmxvd1kgPyAkLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCkgOiAwLA0KCQkJaGVpZ2h0OiBoYXNPdmVyZmxvd1ggPyAkLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCkgOiAwDQoJCX07DQoJfSwNCglnZXRXaXRoaW5JbmZvOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdmFyIHdpdGhpbkVsZW1lbnQgPSAkKCBlbGVtZW50IHx8IHdpbmRvdyApLA0KCQkJaXNXaW5kb3cgPSAkLmlzV2luZG93KCB3aXRoaW5FbGVtZW50WzBdICksDQoJCQlpc0RvY3VtZW50ID0gISF3aXRoaW5FbGVtZW50WyAwIF0gJiYgd2l0aGluRWxlbWVudFsgMCBdLm5vZGVUeXBlID09PSA5Ow0KCQlyZXR1cm4gew0KCQkJZWxlbWVudDogd2l0aGluRWxlbWVudCwNCgkJCWlzV2luZG93OiBpc1dpbmRvdywNCgkJCWlzRG9jdW1lbnQ6IGlzRG9jdW1lbnQsDQoJCQlvZmZzZXQ6IHdpdGhpbkVsZW1lbnQub2Zmc2V0KCkgfHwgeyBsZWZ0OiAwLCB0b3A6IDAgfSwNCgkJCXNjcm9sbExlZnQ6IHdpdGhpbkVsZW1lbnQuc2Nyb2xsTGVmdCgpLA0KCQkJc2Nyb2xsVG9wOiB3aXRoaW5FbGVtZW50LnNjcm9sbFRvcCgpLA0KDQoJCQkvLyBzdXBwb3J0OiBqUXVlcnkgMS42LngNCgkJCS8vIGpRdWVyeSAxLjYgZG9lc24ndCBzdXBwb3J0IC5vdXRlcldpZHRoL0hlaWdodCgpIG9uIGRvY3VtZW50cyBvciB3aW5kb3dzDQoJCQl3aWR0aDogaXNXaW5kb3cgfHwgaXNEb2N1bWVudCA/IHdpdGhpbkVsZW1lbnQud2lkdGgoKSA6IHdpdGhpbkVsZW1lbnQub3V0ZXJXaWR0aCgpLA0KCQkJaGVpZ2h0OiBpc1dpbmRvdyB8fCBpc0RvY3VtZW50ID8gd2l0aGluRWxlbWVudC5oZWlnaHQoKSA6IHdpdGhpbkVsZW1lbnQub3V0ZXJIZWlnaHQoKQ0KCQl9Ow0KCX0NCn07DQoNCiQuZm4ucG9zaXRpb24gPSBmdW5jdGlvbiggb3B0aW9ucyApIHsNCglpZiAoICFvcHRpb25zIHx8ICFvcHRpb25zLm9mICkgew0KCQlyZXR1cm4gX3Bvc2l0aW9uLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgl9DQoNCgkvLyBtYWtlIGEgY29weSwgd2UgZG9uJ3Qgd2FudCB0byBtb2RpZnkgYXJndW1lbnRzDQoJb3B0aW9ucyA9ICQuZXh0ZW5kKCB7fSwgb3B0aW9ucyApOw0KDQoJdmFyIGF0T2Zmc2V0LCB0YXJnZXRXaWR0aCwgdGFyZ2V0SGVpZ2h0LCB0YXJnZXRPZmZzZXQsIGJhc2VQb3NpdGlvbiwgZGltZW5zaW9ucywNCgkJdGFyZ2V0ID0gJCggb3B0aW9ucy5vZiApLA0KCQl3aXRoaW4gPSAkLnBvc2l0aW9uLmdldFdpdGhpbkluZm8oIG9wdGlvbnMud2l0aGluICksDQoJCXNjcm9sbEluZm8gPSAkLnBvc2l0aW9uLmdldFNjcm9sbEluZm8oIHdpdGhpbiApLA0KCQljb2xsaXNpb24gPSAoIG9wdGlvbnMuY29sbGlzaW9uIHx8ICJmbGlwIiApLnNwbGl0KCAiICIgKSwNCgkJb2Zmc2V0cyA9IHt9Ow0KDQoJZGltZW5zaW9ucyA9IGdldERpbWVuc2lvbnMoIHRhcmdldCApOw0KCWlmICggdGFyZ2V0WzBdLnByZXZlbnREZWZhdWx0ICkgew0KCQkvLyBmb3JjZSBsZWZ0IHRvcCB0byBhbGxvdyBmbGlwcGluZw0KCQlvcHRpb25zLmF0ID0gImxlZnQgdG9wIjsNCgl9DQoJdGFyZ2V0V2lkdGggPSBkaW1lbnNpb25zLndpZHRoOw0KCXRhcmdldEhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0Ow0KCXRhcmdldE9mZnNldCA9IGRpbWVuc2lvbnMub2Zmc2V0Ow0KCS8vIGNsb25lIHRvIHJldXNlIG9yaWdpbmFsIHRhcmdldE9mZnNldCBsYXRlcg0KCWJhc2VQb3NpdGlvbiA9ICQuZXh0ZW5kKCB7fSwgdGFyZ2V0T2Zmc2V0ICk7DQoNCgkvLyBmb3JjZSBteSBhbmQgYXQgdG8gaGF2ZSB2YWxpZCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBwb3NpdGlvbnMNCgkvLyBpZiBhIHZhbHVlIGlzIG1pc3Npbmcgb3IgaW52YWxpZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gY2VudGVyDQoJJC5lYWNoKCBbICJteSIsICJhdCIgXSwgZnVuY3Rpb24oKSB7DQoJCXZhciBwb3MgPSAoIG9wdGlvbnNbIHRoaXMgXSB8fCAiIiApLnNwbGl0KCAiICIgKSwNCgkJCWhvcml6b250YWxPZmZzZXQsDQoJCQl2ZXJ0aWNhbE9mZnNldDsNCg0KCQlpZiAoIHBvcy5sZW5ndGggPT09IDEpIHsNCgkJCXBvcyA9IHJob3Jpem9udGFsLnRlc3QoIHBvc1sgMCBdICkgPw0KCQkJCXBvcy5jb25jYXQoIFsgImNlbnRlciIgXSApIDoNCgkJCQlydmVydGljYWwudGVzdCggcG9zWyAwIF0gKSA/DQoJCQkJCVsgImNlbnRlciIgXS5jb25jYXQoIHBvcyApIDoNCgkJCQkJWyAiY2VudGVyIiwgImNlbnRlciIgXTsNCgkJfQ0KCQlwb3NbIDAgXSA9IHJob3Jpem9udGFsLnRlc3QoIHBvc1sgMCBdICkgPyBwb3NbIDAgXSA6ICJjZW50ZXIiOw0KCQlwb3NbIDEgXSA9IHJ2ZXJ0aWNhbC50ZXN0KCBwb3NbIDEgXSApID8gcG9zWyAxIF0gOiAiY2VudGVyIjsNCg0KCQkvLyBjYWxjdWxhdGUgb2Zmc2V0cw0KCQlob3Jpem9udGFsT2Zmc2V0ID0gcm9mZnNldC5leGVjKCBwb3NbIDAgXSApOw0KCQl2ZXJ0aWNhbE9mZnNldCA9IHJvZmZzZXQuZXhlYyggcG9zWyAxIF0gKTsNCgkJb2Zmc2V0c1sgdGhpcyBdID0gWw0KCQkJaG9yaXpvbnRhbE9mZnNldCA/IGhvcml6b250YWxPZmZzZXRbIDAgXSA6IDAsDQoJCQl2ZXJ0aWNhbE9mZnNldCA/IHZlcnRpY2FsT2Zmc2V0WyAwIF0gOiAwDQoJCV07DQoNCgkJLy8gcmVkdWNlIHRvIGp1c3QgdGhlIHBvc2l0aW9ucyB3aXRob3V0IHRoZSBvZmZzZXRzDQoJCW9wdGlvbnNbIHRoaXMgXSA9IFsNCgkJCXJwb3NpdGlvbi5leGVjKCBwb3NbIDAgXSApWyAwIF0sDQoJCQlycG9zaXRpb24uZXhlYyggcG9zWyAxIF0gKVsgMCBdDQoJCV07DQoJfSk7DQoNCgkvLyBub3JtYWxpemUgY29sbGlzaW9uIG9wdGlvbg0KCWlmICggY29sbGlzaW9uLmxlbmd0aCA9PT0gMSApIHsNCgkJY29sbGlzaW9uWyAxIF0gPSBjb2xsaXNpb25bIDAgXTsNCgl9DQoNCglpZiAoIG9wdGlvbnMuYXRbIDAgXSA9PT0gInJpZ2h0IiApIHsNCgkJYmFzZVBvc2l0aW9uLmxlZnQgKz0gdGFyZ2V0V2lkdGg7DQoJfSBlbHNlIGlmICggb3B0aW9ucy5hdFsgMCBdID09PSAiY2VudGVyIiApIHsNCgkJYmFzZVBvc2l0aW9uLmxlZnQgKz0gdGFyZ2V0V2lkdGggLyAyOw0KCX0NCg0KCWlmICggb3B0aW9ucy5hdFsgMSBdID09PSAiYm90dG9tIiApIHsNCgkJYmFzZVBvc2l0aW9uLnRvcCArPSB0YXJnZXRIZWlnaHQ7DQoJfSBlbHNlIGlmICggb3B0aW9ucy5hdFsgMSBdID09PSAiY2VudGVyIiApIHsNCgkJYmFzZVBvc2l0aW9uLnRvcCArPSB0YXJnZXRIZWlnaHQgLyAyOw0KCX0NCg0KCWF0T2Zmc2V0ID0gZ2V0T2Zmc2V0cyggb2Zmc2V0cy5hdCwgdGFyZ2V0V2lkdGgsIHRhcmdldEhlaWdodCApOw0KCWJhc2VQb3NpdGlvbi5sZWZ0ICs9IGF0T2Zmc2V0WyAwIF07DQoJYmFzZVBvc2l0aW9uLnRvcCArPSBhdE9mZnNldFsgMSBdOw0KDQoJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCgkJdmFyIGNvbGxpc2lvblBvc2l0aW9uLCB1c2luZywNCgkJCWVsZW0gPSAkKCB0aGlzICksDQoJCQllbGVtV2lkdGggPSBlbGVtLm91dGVyV2lkdGgoKSwNCgkJCWVsZW1IZWlnaHQgPSBlbGVtLm91dGVySGVpZ2h0KCksDQoJCQltYXJnaW5MZWZ0ID0gcGFyc2VDc3MoIHRoaXMsICJtYXJnaW5MZWZ0IiApLA0KCQkJbWFyZ2luVG9wID0gcGFyc2VDc3MoIHRoaXMsICJtYXJnaW5Ub3AiICksDQoJCQljb2xsaXNpb25XaWR0aCA9IGVsZW1XaWR0aCArIG1hcmdpbkxlZnQgKyBwYXJzZUNzcyggdGhpcywgIm1hcmdpblJpZ2h0IiApICsgc2Nyb2xsSW5mby53aWR0aCwNCgkJCWNvbGxpc2lvbkhlaWdodCA9IGVsZW1IZWlnaHQgKyBtYXJnaW5Ub3AgKyBwYXJzZUNzcyggdGhpcywgIm1hcmdpbkJvdHRvbSIgKSArIHNjcm9sbEluZm8uaGVpZ2h0LA0KCQkJcG9zaXRpb24gPSAkLmV4dGVuZCgge30sIGJhc2VQb3NpdGlvbiApLA0KCQkJbXlPZmZzZXQgPSBnZXRPZmZzZXRzKCBvZmZzZXRzLm15LCBlbGVtLm91dGVyV2lkdGgoKSwgZWxlbS5vdXRlckhlaWdodCgpICk7DQoNCgkJaWYgKCBvcHRpb25zLm15WyAwIF0gPT09ICJyaWdodCIgKSB7DQoJCQlwb3NpdGlvbi5sZWZ0IC09IGVsZW1XaWR0aDsNCgkJfSBlbHNlIGlmICggb3B0aW9ucy5teVsgMCBdID09PSAiY2VudGVyIiApIHsNCgkJCXBvc2l0aW9uLmxlZnQgLT0gZWxlbVdpZHRoIC8gMjsNCgkJfQ0KDQoJCWlmICggb3B0aW9ucy5teVsgMSBdID09PSAiYm90dG9tIiApIHsNCgkJCXBvc2l0aW9uLnRvcCAtPSBlbGVtSGVpZ2h0Ow0KCQl9IGVsc2UgaWYgKCBvcHRpb25zLm15WyAxIF0gPT09ICJjZW50ZXIiICkgew0KCQkJcG9zaXRpb24udG9wIC09IGVsZW1IZWlnaHQgLyAyOw0KCQl9DQoNCgkJcG9zaXRpb24ubGVmdCArPSBteU9mZnNldFsgMCBdOw0KCQlwb3NpdGlvbi50b3AgKz0gbXlPZmZzZXRbIDEgXTsNCg0KCQkvLyBpZiB0aGUgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgZnJhY3Rpb25zLCB0aGVuIHJvdW5kIGZvciBjb25zaXN0ZW50IHJlc3VsdHMNCgkJaWYgKCAhc3VwcG9ydHNPZmZzZXRGcmFjdGlvbnMgKSB7DQoJCQlwb3NpdGlvbi5sZWZ0ID0gcm91bmQoIHBvc2l0aW9uLmxlZnQgKTsNCgkJCXBvc2l0aW9uLnRvcCA9IHJvdW5kKCBwb3NpdGlvbi50b3AgKTsNCgkJfQ0KDQoJCWNvbGxpc2lvblBvc2l0aW9uID0gew0KCQkJbWFyZ2luTGVmdDogbWFyZ2luTGVmdCwNCgkJCW1hcmdpblRvcDogbWFyZ2luVG9wDQoJCX07DQoNCgkJJC5lYWNoKCBbICJsZWZ0IiwgInRvcCIgXSwgZnVuY3Rpb24oIGksIGRpciApIHsNCgkJCWlmICggJC51aS5wb3NpdGlvblsgY29sbGlzaW9uWyBpIF0gXSApIHsNCgkJCQkkLnVpLnBvc2l0aW9uWyBjb2xsaXNpb25bIGkgXSBdWyBkaXIgXSggcG9zaXRpb24sIHsNCgkJCQkJdGFyZ2V0V2lkdGg6IHRhcmdldFdpZHRoLA0KCQkJCQl0YXJnZXRIZWlnaHQ6IHRhcmdldEhlaWdodCwNCgkJCQkJZWxlbVdpZHRoOiBlbGVtV2lkdGgsDQoJCQkJCWVsZW1IZWlnaHQ6IGVsZW1IZWlnaHQsDQoJCQkJCWNvbGxpc2lvblBvc2l0aW9uOiBjb2xsaXNpb25Qb3NpdGlvbiwNCgkJCQkJY29sbGlzaW9uV2lkdGg6IGNvbGxpc2lvbldpZHRoLA0KCQkJCQljb2xsaXNpb25IZWlnaHQ6IGNvbGxpc2lvbkhlaWdodCwNCgkJCQkJb2Zmc2V0OiBbIGF0T2Zmc2V0WyAwIF0gKyBteU9mZnNldFsgMCBdLCBhdE9mZnNldCBbIDEgXSArIG15T2Zmc2V0WyAxIF0gXSwNCgkJCQkJbXk6IG9wdGlvbnMubXksDQoJCQkJCWF0OiBvcHRpb25zLmF0LA0KCQkJCQl3aXRoaW46IHdpdGhpbiwNCgkJCQkJZWxlbTogZWxlbQ0KCQkJCX0pOw0KCQkJfQ0KCQl9KTsNCg0KCQlpZiAoIG9wdGlvbnMudXNpbmcgKSB7DQoJCQkvLyBhZGRzIGZlZWRiYWNrIGFzIHNlY29uZCBhcmd1bWVudCB0byB1c2luZyBjYWxsYmFjaywgaWYgcHJlc2VudA0KCQkJdXNpbmcgPSBmdW5jdGlvbiggcHJvcHMgKSB7DQoJCQkJdmFyIGxlZnQgPSB0YXJnZXRPZmZzZXQubGVmdCAtIHBvc2l0aW9uLmxlZnQsDQoJCQkJCXJpZ2h0ID0gbGVmdCArIHRhcmdldFdpZHRoIC0gZWxlbVdpZHRoLA0KCQkJCQl0b3AgPSB0YXJnZXRPZmZzZXQudG9wIC0gcG9zaXRpb24udG9wLA0KCQkJCQlib3R0b20gPSB0b3AgKyB0YXJnZXRIZWlnaHQgLSBlbGVtSGVpZ2h0LA0KCQkJCQlmZWVkYmFjayA9IHsNCgkJCQkJCXRhcmdldDogew0KCQkJCQkJCWVsZW1lbnQ6IHRhcmdldCwNCgkJCQkJCQlsZWZ0OiB0YXJnZXRPZmZzZXQubGVmdCwNCgkJCQkJCQl0b3A6IHRhcmdldE9mZnNldC50b3AsDQoJCQkJCQkJd2lkdGg6IHRhcmdldFdpZHRoLA0KCQkJCQkJCWhlaWdodDogdGFyZ2V0SGVpZ2h0DQoJCQkJCQl9LA0KCQkJCQkJZWxlbWVudDogew0KCQkJCQkJCWVsZW1lbnQ6IGVsZW0sDQoJCQkJCQkJbGVmdDogcG9zaXRpb24ubGVmdCwNCgkJCQkJCQl0b3A6IHBvc2l0aW9uLnRvcCwNCgkJCQkJCQl3aWR0aDogZWxlbVdpZHRoLA0KCQkJCQkJCWhlaWdodDogZWxlbUhlaWdodA0KCQkJCQkJfSwNCgkJCQkJCWhvcml6b250YWw6IHJpZ2h0IDwgMCA/ICJsZWZ0IiA6IGxlZnQgPiAwID8gInJpZ2h0IiA6ICJjZW50ZXIiLA0KCQkJCQkJdmVydGljYWw6IGJvdHRvbSA8IDAgPyAidG9wIiA6IHRvcCA+IDAgPyAiYm90dG9tIiA6ICJtaWRkbGUiDQoJCQkJCX07DQoJCQkJaWYgKCB0YXJnZXRXaWR0aCA8IGVsZW1XaWR0aCAmJiBhYnMoIGxlZnQgKyByaWdodCApIDwgdGFyZ2V0V2lkdGggKSB7DQoJCQkJCWZlZWRiYWNrLmhvcml6b250YWwgPSAiY2VudGVyIjsNCgkJCQl9DQoJCQkJaWYgKCB0YXJnZXRIZWlnaHQgPCBlbGVtSGVpZ2h0ICYmIGFicyggdG9wICsgYm90dG9tICkgPCB0YXJnZXRIZWlnaHQgKSB7DQoJCQkJCWZlZWRiYWNrLnZlcnRpY2FsID0gIm1pZGRsZSI7DQoJCQkJfQ0KCQkJCWlmICggbWF4KCBhYnMoIGxlZnQgKSwgYWJzKCByaWdodCApICkgPiBtYXgoIGFicyggdG9wICksIGFicyggYm90dG9tICkgKSApIHsNCgkJCQkJZmVlZGJhY2suaW1wb3J0YW50ID0gImhvcml6b250YWwiOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWZlZWRiYWNrLmltcG9ydGFudCA9ICJ2ZXJ0aWNhbCI7DQoJCQkJfQ0KCQkJCW9wdGlvbnMudXNpbmcuY2FsbCggdGhpcywgcHJvcHMsIGZlZWRiYWNrICk7DQoJCQl9Ow0KCQl9DQoNCgkJZWxlbS5vZmZzZXQoICQuZXh0ZW5kKCBwb3NpdGlvbiwgeyB1c2luZzogdXNpbmcgfSApICk7DQoJfSk7DQp9Ow0KDQokLnVpLnBvc2l0aW9uID0gew0KCWZpdDogew0KCQlsZWZ0OiBmdW5jdGlvbiggcG9zaXRpb24sIGRhdGEgKSB7DQoJCQl2YXIgd2l0aGluID0gZGF0YS53aXRoaW4sDQoJCQkJd2l0aGluT2Zmc2V0ID0gd2l0aGluLmlzV2luZG93ID8gd2l0aGluLnNjcm9sbExlZnQgOiB3aXRoaW4ub2Zmc2V0LmxlZnQsDQoJCQkJb3V0ZXJXaWR0aCA9IHdpdGhpbi53aWR0aCwNCgkJCQljb2xsaXNpb25Qb3NMZWZ0ID0gcG9zaXRpb24ubGVmdCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCwNCgkJCQlvdmVyTGVmdCA9IHdpdGhpbk9mZnNldCAtIGNvbGxpc2lvblBvc0xlZnQsDQoJCQkJb3ZlclJpZ2h0ID0gY29sbGlzaW9uUG9zTGVmdCArIGRhdGEuY29sbGlzaW9uV2lkdGggLSBvdXRlcldpZHRoIC0gd2l0aGluT2Zmc2V0LA0KCQkJCW5ld092ZXJSaWdodDsNCg0KCQkJLy8gZWxlbWVudCBpcyB3aWRlciB0aGFuIHdpdGhpbg0KCQkJaWYgKCBkYXRhLmNvbGxpc2lvbldpZHRoID4gb3V0ZXJXaWR0aCApIHsNCgkJCQkvLyBlbGVtZW50IGlzIGluaXRpYWxseSBvdmVyIHRoZSBsZWZ0IHNpZGUgb2Ygd2l0aGluDQoJCQkJaWYgKCBvdmVyTGVmdCA+IDAgJiYgb3ZlclJpZ2h0IDw9IDAgKSB7DQoJCQkJCW5ld092ZXJSaWdodCA9IHBvc2l0aW9uLmxlZnQgKyBvdmVyTGVmdCArIGRhdGEuY29sbGlzaW9uV2lkdGggLSBvdXRlcldpZHRoIC0gd2l0aGluT2Zmc2V0Ow0KCQkJCQlwb3NpdGlvbi5sZWZ0ICs9IG92ZXJMZWZ0IC0gbmV3T3ZlclJpZ2h0Ow0KCQkJCS8vIGVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgcmlnaHQgc2lkZSBvZiB3aXRoaW4NCgkJCQl9IGVsc2UgaWYgKCBvdmVyUmlnaHQgPiAwICYmIG92ZXJMZWZ0IDw9IDAgKSB7DQoJCQkJCXBvc2l0aW9uLmxlZnQgPSB3aXRoaW5PZmZzZXQ7DQoJCQkJLy8gZWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciBib3RoIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIG9mIHdpdGhpbg0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmICggb3ZlckxlZnQgPiBvdmVyUmlnaHQgKSB7DQoJCQkJCQlwb3NpdGlvbi5sZWZ0ID0gd2l0aGluT2Zmc2V0ICsgb3V0ZXJXaWR0aCAtIGRhdGEuY29sbGlzaW9uV2lkdGg7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlwb3NpdGlvbi5sZWZ0ID0gd2l0aGluT2Zmc2V0Ow0KCQkJCQl9DQoJCQkJfQ0KCQkJLy8gdG9vIGZhciBsZWZ0IC0+IGFsaWduIHdpdGggbGVmdCBlZGdlDQoJCQl9IGVsc2UgaWYgKCBvdmVyTGVmdCA+IDAgKSB7DQoJCQkJcG9zaXRpb24ubGVmdCArPSBvdmVyTGVmdDsNCgkJCS8vIHRvbyBmYXIgcmlnaHQgLT4gYWxpZ24gd2l0aCByaWdodCBlZGdlDQoJCQl9IGVsc2UgaWYgKCBvdmVyUmlnaHQgPiAwICkgew0KCQkJCXBvc2l0aW9uLmxlZnQgLT0gb3ZlclJpZ2h0Ow0KCQkJLy8gYWRqdXN0IGJhc2VkIG9uIHBvc2l0aW9uIGFuZCBtYXJnaW4NCgkJCX0gZWxzZSB7DQoJCQkJcG9zaXRpb24ubGVmdCA9IG1heCggcG9zaXRpb24ubGVmdCAtIGNvbGxpc2lvblBvc0xlZnQsIHBvc2l0aW9uLmxlZnQgKTsNCgkJCX0NCgkJfSwNCgkJdG9wOiBmdW5jdGlvbiggcG9zaXRpb24sIGRhdGEgKSB7DQoJCQl2YXIgd2l0aGluID0gZGF0YS53aXRoaW4sDQoJCQkJd2l0aGluT2Zmc2V0ID0gd2l0aGluLmlzV2luZG93ID8gd2l0aGluLnNjcm9sbFRvcCA6IHdpdGhpbi5vZmZzZXQudG9wLA0KCQkJCW91dGVySGVpZ2h0ID0gZGF0YS53aXRoaW4uaGVpZ2h0LA0KCQkJCWNvbGxpc2lvblBvc1RvcCA9IHBvc2l0aW9uLnRvcCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLA0KCQkJCW92ZXJUb3AgPSB3aXRoaW5PZmZzZXQgLSBjb2xsaXNpb25Qb3NUb3AsDQoJCQkJb3ZlckJvdHRvbSA9IGNvbGxpc2lvblBvc1RvcCArIGRhdGEuY29sbGlzaW9uSGVpZ2h0IC0gb3V0ZXJIZWlnaHQgLSB3aXRoaW5PZmZzZXQsDQoJCQkJbmV3T3ZlckJvdHRvbTsNCg0KCQkJLy8gZWxlbWVudCBpcyB0YWxsZXIgdGhhbiB3aXRoaW4NCgkJCWlmICggZGF0YS5jb2xsaXNpb25IZWlnaHQgPiBvdXRlckhlaWdodCApIHsNCgkJCQkvLyBlbGVtZW50IGlzIGluaXRpYWxseSBvdmVyIHRoZSB0b3Agb2Ygd2l0aGluDQoJCQkJaWYgKCBvdmVyVG9wID4gMCAmJiBvdmVyQm90dG9tIDw9IDAgKSB7DQoJCQkJCW5ld092ZXJCb3R0b20gPSBwb3NpdGlvbi50b3AgKyBvdmVyVG9wICsgZGF0YS5jb2xsaXNpb25IZWlnaHQgLSBvdXRlckhlaWdodCAtIHdpdGhpbk9mZnNldDsNCgkJCQkJcG9zaXRpb24udG9wICs9IG92ZXJUb3AgLSBuZXdPdmVyQm90dG9tOw0KCQkJCS8vIGVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgYm90dG9tIG9mIHdpdGhpbg0KCQkJCX0gZWxzZSBpZiAoIG92ZXJCb3R0b20gPiAwICYmIG92ZXJUb3AgPD0gMCApIHsNCgkJCQkJcG9zaXRpb24udG9wID0gd2l0aGluT2Zmc2V0Ow0KCQkJCS8vIGVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgYm90aCB0b3AgYW5kIGJvdHRvbSBvZiB3aXRoaW4NCgkJCQl9IGVsc2Ugew0KCQkJCQlpZiAoIG92ZXJUb3AgPiBvdmVyQm90dG9tICkgew0KCQkJCQkJcG9zaXRpb24udG9wID0gd2l0aGluT2Zmc2V0ICsgb3V0ZXJIZWlnaHQgLSBkYXRhLmNvbGxpc2lvbkhlaWdodDsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXBvc2l0aW9uLnRvcCA9IHdpdGhpbk9mZnNldDsNCgkJCQkJfQ0KCQkJCX0NCgkJCS8vIHRvbyBmYXIgdXAgLT4gYWxpZ24gd2l0aCB0b3ANCgkJCX0gZWxzZSBpZiAoIG92ZXJUb3AgPiAwICkgew0KCQkJCXBvc2l0aW9uLnRvcCArPSBvdmVyVG9wOw0KCQkJLy8gdG9vIGZhciBkb3duIC0+IGFsaWduIHdpdGggYm90dG9tIGVkZ2UNCgkJCX0gZWxzZSBpZiAoIG92ZXJCb3R0b20gPiAwICkgew0KCQkJCXBvc2l0aW9uLnRvcCAtPSBvdmVyQm90dG9tOw0KCQkJLy8gYWRqdXN0IGJhc2VkIG9uIHBvc2l0aW9uIGFuZCBtYXJnaW4NCgkJCX0gZWxzZSB7DQoJCQkJcG9zaXRpb24udG9wID0gbWF4KCBwb3NpdGlvbi50b3AgLSBjb2xsaXNpb25Qb3NUb3AsIHBvc2l0aW9uLnRvcCApOw0KCQkJfQ0KCQl9DQoJfSwNCglmbGlwOiB7DQoJCWxlZnQ6IGZ1bmN0aW9uKCBwb3NpdGlvbiwgZGF0YSApIHsNCgkJCXZhciB3aXRoaW4gPSBkYXRhLndpdGhpbiwNCgkJCQl3aXRoaW5PZmZzZXQgPSB3aXRoaW4ub2Zmc2V0LmxlZnQgKyB3aXRoaW4uc2Nyb2xsTGVmdCwNCgkJCQlvdXRlcldpZHRoID0gd2l0aGluLndpZHRoLA0KCQkJCW9mZnNldExlZnQgPSB3aXRoaW4uaXNXaW5kb3cgPyB3aXRoaW4uc2Nyb2xsTGVmdCA6IHdpdGhpbi5vZmZzZXQubGVmdCwNCgkJCQljb2xsaXNpb25Qb3NMZWZ0ID0gcG9zaXRpb24ubGVmdCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCwNCgkJCQlvdmVyTGVmdCA9IGNvbGxpc2lvblBvc0xlZnQgLSBvZmZzZXRMZWZ0LA0KCQkJCW92ZXJSaWdodCA9IGNvbGxpc2lvblBvc0xlZnQgKyBkYXRhLmNvbGxpc2lvbldpZHRoIC0gb3V0ZXJXaWR0aCAtIG9mZnNldExlZnQsDQoJCQkJbXlPZmZzZXQgPSBkYXRhLm15WyAwIF0gPT09ICJsZWZ0IiA/DQoJCQkJCS1kYXRhLmVsZW1XaWR0aCA6DQoJCQkJCWRhdGEubXlbIDAgXSA9PT0gInJpZ2h0IiA/DQoJCQkJCQlkYXRhLmVsZW1XaWR0aCA6DQoJCQkJCQkwLA0KCQkJCWF0T2Zmc2V0ID0gZGF0YS5hdFsgMCBdID09PSAibGVmdCIgPw0KCQkJCQlkYXRhLnRhcmdldFdpZHRoIDoNCgkJCQkJZGF0YS5hdFsgMCBdID09PSAicmlnaHQiID8NCgkJCQkJCS1kYXRhLnRhcmdldFdpZHRoIDoNCgkJCQkJCTAsDQoJCQkJb2Zmc2V0ID0gLTIgKiBkYXRhLm9mZnNldFsgMCBdLA0KCQkJCW5ld092ZXJSaWdodCwNCgkJCQluZXdPdmVyTGVmdDsNCg0KCQkJaWYgKCBvdmVyTGVmdCA8IDAgKSB7DQoJCQkJbmV3T3ZlclJpZ2h0ID0gcG9zaXRpb24ubGVmdCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQgKyBkYXRhLmNvbGxpc2lvbldpZHRoIC0gb3V0ZXJXaWR0aCAtIHdpdGhpbk9mZnNldDsNCgkJCQlpZiAoIG5ld092ZXJSaWdodCA8IDAgfHwgbmV3T3ZlclJpZ2h0IDwgYWJzKCBvdmVyTGVmdCApICkgew0KCQkJCQlwb3NpdGlvbi5sZWZ0ICs9IG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQ7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICggb3ZlclJpZ2h0ID4gMCApIHsNCgkJCQluZXdPdmVyTGVmdCA9IHBvc2l0aW9uLmxlZnQgLSBkYXRhLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpbkxlZnQgKyBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0IC0gb2Zmc2V0TGVmdDsNCgkJCQlpZiAoIG5ld092ZXJMZWZ0ID4gMCB8fCBhYnMoIG5ld092ZXJMZWZ0ICkgPCBvdmVyUmlnaHQgKSB7DQoJCQkJCXBvc2l0aW9uLmxlZnQgKz0gbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldDsNCgkJCQl9DQoJCQl9DQoJCX0sDQoJCXRvcDogZnVuY3Rpb24oIHBvc2l0aW9uLCBkYXRhICkgew0KCQkJdmFyIHdpdGhpbiA9IGRhdGEud2l0aGluLA0KCQkJCXdpdGhpbk9mZnNldCA9IHdpdGhpbi5vZmZzZXQudG9wICsgd2l0aGluLnNjcm9sbFRvcCwNCgkJCQlvdXRlckhlaWdodCA9IHdpdGhpbi5oZWlnaHQsDQoJCQkJb2Zmc2V0VG9wID0gd2l0aGluLmlzV2luZG93ID8gd2l0aGluLnNjcm9sbFRvcCA6IHdpdGhpbi5vZmZzZXQudG9wLA0KCQkJCWNvbGxpc2lvblBvc1RvcCA9IHBvc2l0aW9uLnRvcCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLA0KCQkJCW92ZXJUb3AgPSBjb2xsaXNpb25Qb3NUb3AgLSBvZmZzZXRUb3AsDQoJCQkJb3ZlckJvdHRvbSA9IGNvbGxpc2lvblBvc1RvcCArIGRhdGEuY29sbGlzaW9uSGVpZ2h0IC0gb3V0ZXJIZWlnaHQgLSBvZmZzZXRUb3AsDQoJCQkJdG9wID0gZGF0YS5teVsgMSBdID09PSAidG9wIiwNCgkJCQlteU9mZnNldCA9IHRvcCA/DQoJCQkJCS1kYXRhLmVsZW1IZWlnaHQgOg0KCQkJCQlkYXRhLm15WyAxIF0gPT09ICJib3R0b20iID8NCgkJCQkJCWRhdGEuZWxlbUhlaWdodCA6DQoJCQkJCQkwLA0KCQkJCWF0T2Zmc2V0ID0gZGF0YS5hdFsgMSBdID09PSAidG9wIiA/DQoJCQkJCWRhdGEudGFyZ2V0SGVpZ2h0IDoNCgkJCQkJZGF0YS5hdFsgMSBdID09PSAiYm90dG9tIiA/DQoJCQkJCQktZGF0YS50YXJnZXRIZWlnaHQgOg0KCQkJCQkJMCwNCgkJCQlvZmZzZXQgPSAtMiAqIGRhdGEub2Zmc2V0WyAxIF0sDQoJCQkJbmV3T3ZlclRvcCwNCgkJCQluZXdPdmVyQm90dG9tOw0KCQkJaWYgKCBvdmVyVG9wIDwgMCApIHsNCgkJCQluZXdPdmVyQm90dG9tID0gcG9zaXRpb24udG9wICsgbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldCArIGRhdGEuY29sbGlzaW9uSGVpZ2h0IC0gb3V0ZXJIZWlnaHQgLSB3aXRoaW5PZmZzZXQ7DQoJCQkJaWYgKCBuZXdPdmVyQm90dG9tIDwgMCB8fCBuZXdPdmVyQm90dG9tIDwgYWJzKCBvdmVyVG9wICkgKSB7DQoJCQkJCXBvc2l0aW9uLnRvcCArPSBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoIG92ZXJCb3R0b20gPiAwICkgew0KCQkJCW5ld092ZXJUb3AgPSBwb3NpdGlvbi50b3AgLSBkYXRhLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpblRvcCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQgLSBvZmZzZXRUb3A7DQoJCQkJaWYgKCBuZXdPdmVyVG9wID4gMCB8fCBhYnMoIG5ld092ZXJUb3AgKSA8IG92ZXJCb3R0b20gKSB7DQoJCQkJCXBvc2l0aW9uLnRvcCArPSBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0sDQoJZmxpcGZpdDogew0KCQlsZWZ0OiBmdW5jdGlvbigpIHsNCgkJCSQudWkucG9zaXRpb24uZmxpcC5sZWZ0LmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCSQudWkucG9zaXRpb24uZml0LmxlZnQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQl9LA0KCQl0b3A6IGZ1bmN0aW9uKCkgew0KCQkJJC51aS5wb3NpdGlvbi5mbGlwLnRvcC5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkkLnVpLnBvc2l0aW9uLmZpdC50b3AuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQl9DQoJfQ0KfTsNCg0KLy8gZnJhY3Rpb24gc3VwcG9ydCB0ZXN0DQooZnVuY3Rpb24oKSB7DQoJdmFyIHRlc3RFbGVtZW50LCB0ZXN0RWxlbWVudFBhcmVudCwgdGVzdEVsZW1lbnRTdHlsZSwgb2Zmc2V0TGVmdCwgaSwNCgkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiYm9keSIgKVsgMCBdLA0KCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAiZGl2IiApOw0KDQoJLy9DcmVhdGUgYSAiZmFrZSBib2R5IiBmb3IgdGVzdGluZyBiYXNlZCBvbiBtZXRob2QgdXNlZCBpbiBqUXVlcnkuc3VwcG9ydA0KCXRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggYm9keSA/ICJkaXYiIDogImJvZHkiICk7DQoJdGVzdEVsZW1lbnRTdHlsZSA9IHsNCgkJdmlzaWJpbGl0eTogImhpZGRlbiIsDQoJCXdpZHRoOiAwLA0KCQloZWlnaHQ6IDAsDQoJCWJvcmRlcjogMCwNCgkJbWFyZ2luOiAwLA0KCQliYWNrZ3JvdW5kOiAibm9uZSINCgl9Ow0KCWlmICggYm9keSApIHsNCgkJJC5leHRlbmQoIHRlc3RFbGVtZW50U3R5bGUsIHsNCgkJCXBvc2l0aW9uOiAiYWJzb2x1dGUiLA0KCQkJbGVmdDogIi0xMDAwcHgiLA0KCQkJdG9wOiAiLTEwMDBweCINCgkJfSk7DQoJfQ0KCWZvciAoIGkgaW4gdGVzdEVsZW1lbnRTdHlsZSApIHsNCgkJdGVzdEVsZW1lbnQuc3R5bGVbIGkgXSA9IHRlc3RFbGVtZW50U3R5bGVbIGkgXTsNCgl9DQoJdGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoIGRpdiApOw0KCXRlc3RFbGVtZW50UGFyZW50ID0gYm9keSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7DQoJdGVzdEVsZW1lbnRQYXJlbnQuaW5zZXJ0QmVmb3JlKCB0ZXN0RWxlbWVudCwgdGVzdEVsZW1lbnRQYXJlbnQuZmlyc3RDaGlsZCApOw0KDQoJZGl2LnN0eWxlLmNzc1RleHQgPSAicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMC43NDMyMjIycHg7IjsNCg0KCW9mZnNldExlZnQgPSAkKCBkaXYgKS5vZmZzZXQoKS5sZWZ0Ow0KCXN1cHBvcnRzT2Zmc2V0RnJhY3Rpb25zID0gb2Zmc2V0TGVmdCA+IDEwICYmIG9mZnNldExlZnQgPCAxMTsNCg0KCXRlc3RFbGVtZW50LmlubmVySFRNTCA9ICIiOw0KCXRlc3RFbGVtZW50UGFyZW50LnJlbW92ZUNoaWxkKCB0ZXN0RWxlbWVudCApOw0KfSkoKTsNCg0KfSkoKTsNCg0KdmFyIHBvc2l0aW9uID0gJC51aS5wb3NpdGlvbjsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBBY2NvcmRpb24gMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9hY2NvcmRpb24vDQogKi8NCg0KDQp2YXIgYWNjb3JkaW9uID0gJC53aWRnZXQoICJ1aS5hY2NvcmRpb24iLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoJb3B0aW9uczogew0KCQlhY3RpdmU6IDAsDQoJCWFuaW1hdGU6IHt9LA0KCQljb2xsYXBzaWJsZTogZmFsc2UsDQoJCWV2ZW50OiAiY2xpY2siLA0KCQloZWFkZXI6ICI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsDQoJCWhlaWdodFN0eWxlOiAiYXV0byIsDQoJCWljb25zOiB7DQoJCQlhY3RpdmVIZWFkZXI6ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsDQoJCQloZWFkZXI6ICJ1aS1pY29uLXRyaWFuZ2xlLTEtZSINCgkJfSwNCg0KCQkvLyBjYWxsYmFja3MNCgkJYWN0aXZhdGU6IG51bGwsDQoJCWJlZm9yZUFjdGl2YXRlOiBudWxsDQoJfSwNCg0KCWhpZGVQcm9wczogew0KCQlib3JkZXJUb3BXaWR0aDogImhpZGUiLA0KCQlib3JkZXJCb3R0b21XaWR0aDogImhpZGUiLA0KCQlwYWRkaW5nVG9wOiAiaGlkZSIsDQoJCXBhZGRpbmdCb3R0b206ICJoaWRlIiwNCgkJaGVpZ2h0OiAiaGlkZSINCgl9LA0KDQoJc2hvd1Byb3BzOiB7DQoJCWJvcmRlclRvcFdpZHRoOiAic2hvdyIsDQoJCWJvcmRlckJvdHRvbVdpZHRoOiAic2hvdyIsDQoJCXBhZGRpbmdUb3A6ICJzaG93IiwNCgkJcGFkZGluZ0JvdHRvbTogInNob3ciLA0KCQloZWlnaHQ6ICJzaG93Ig0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMucHJldlNob3cgPSB0aGlzLnByZXZIaWRlID0gJCgpOw0KCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIgKQ0KCQkJLy8gQVJJQQ0KCQkJLmF0dHIoICJyb2xlIiwgInRhYmxpc3QiICk7DQoNCgkJLy8gZG9uJ3QgYWxsb3cgY29sbGFwc2libGU6IGZhbHNlIGFuZCBhY3RpdmU6IGZhbHNlIC8gbnVsbA0KCQlpZiAoICFvcHRpb25zLmNvbGxhcHNpYmxlICYmIChvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgfHwgb3B0aW9ucy5hY3RpdmUgPT0gbnVsbCkgKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IDA7DQoJCX0NCg0KCQl0aGlzLl9wcm9jZXNzUGFuZWxzKCk7DQoJCS8vIGhhbmRsZSBuZWdhdGl2ZSB2YWx1ZXMNCgkJaWYgKCBvcHRpb25zLmFjdGl2ZSA8IDAgKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSArPSB0aGlzLmhlYWRlcnMubGVuZ3RoOw0KCQl9DQoJCXRoaXMuX3JlZnJlc2goKTsNCgl9LA0KDQoJX2dldENyZWF0ZUV2ZW50RGF0YTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQloZWFkZXI6IHRoaXMuYWN0aXZlLA0KCQkJcGFuZWw6ICF0aGlzLmFjdGl2ZS5sZW5ndGggPyAkKCkgOiB0aGlzLmFjdGl2ZS5uZXh0KCkNCgkJfTsNCgl9LA0KDQoJX2NyZWF0ZUljb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIGljb25zID0gdGhpcy5vcHRpb25zLmljb25zOw0KCQlpZiAoIGljb25zICkgew0KCQkJJCggIjxzcGFuPiIgKQ0KCQkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiB1aS1pY29uICIgKyBpY29ucy5oZWFkZXIgKQ0KCQkJCS5wcmVwZW5kVG8oIHRoaXMuaGVhZGVycyApOw0KCQkJdGhpcy5hY3RpdmUuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCBpY29ucy5oZWFkZXIgKQ0KCQkJCS5hZGRDbGFzcyggaWNvbnMuYWN0aXZlSGVhZGVyICk7DQoJCQl0aGlzLmhlYWRlcnMuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24taWNvbnMiICk7DQoJCX0NCgl9LA0KDQoJX2Rlc3Ryb3lJY29uczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGVhZGVycw0KCQkJLnJlbW92ZUNsYXNzKCAidWktYWNjb3JkaW9uLWljb25zIiApDQoJCQkuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApDQoJCQkJLnJlbW92ZSgpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBjb250ZW50czsNCg0KCQkvLyBjbGVhbiB1cCBtYWluIGVsZW1lbnQNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApOw0KDQoJCS8vIGNsZWFuIHVwIGhlYWRlcnMNCgkJdGhpcy5oZWFkZXJzDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWRlZmF1bHQgIiArDQoJCQkJInVpLWNvcm5lci1hbGwgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWV4cGFuZGVkIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtc2VsZWN0ZWQiICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1jb250cm9scyIgKQ0KCQkJLnJlbW92ZUF0dHIoICJ0YWJJbmRleCIgKQ0KCQkJLnJlbW92ZVVuaXF1ZUlkKCk7DQoNCgkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoNCgkJLy8gY2xlYW4gdXAgY29udGVudCBwYW5lbHMNCgkJY29udGVudHMgPSB0aGlzLmhlYWRlcnMubmV4dCgpDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSAiICsNCgkJCQkidWktYWNjb3JkaW9uLWNvbnRlbnQgdWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIiApDQoJCQkuY3NzKCAiZGlzcGxheSIsICIiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWhpZGRlbiIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWxhYmVsbGVkYnkiICkNCgkJCS5yZW1vdmVVbmlxdWVJZCgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmhlaWdodFN0eWxlICE9PSAiY29udGVudCIgKSB7DQoJCQljb250ZW50cy5jc3MoICJoZWlnaHQiLCAiIiApOw0KCQl9DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImFjdGl2ZSIgKSB7DQoJCQkvLyBfYWN0aXZhdGUoKSB3aWxsIGhhbmRsZSBpbnZhbGlkIHZhbHVlcyBhbmQgdXBkYXRlIHRoaXMub3B0aW9ucw0KCQkJdGhpcy5fYWN0aXZhdGUoIHZhbHVlICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImV2ZW50IiApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmV2ZW50ICkgew0KCQkJCXRoaXMuX29mZiggdGhpcy5oZWFkZXJzLCB0aGlzLm9wdGlvbnMuZXZlbnQgKTsNCgkJCX0NCgkJCXRoaXMuX3NldHVwRXZlbnRzKCB2YWx1ZSApOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQkvLyBzZXR0aW5nIGNvbGxhcHNpYmxlOiBmYWxzZSB3aGlsZSBjb2xsYXBzZWQ7IG9wZW4gZmlyc3QgcGFuZWwNCgkJaWYgKCBrZXkgPT09ICJjb2xsYXBzaWJsZSIgJiYgIXZhbHVlICYmIHRoaXMub3B0aW9ucy5hY3RpdmUgPT09IGZhbHNlICkgew0KCQkJdGhpcy5fYWN0aXZhdGUoIDAgKTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoJCQlpZiAoIHZhbHVlICkgew0KCQkJCXRoaXMuX2NyZWF0ZUljb25zKCk7DQoJCQl9DQoJCX0NCg0KCQkvLyAjNTMzMiAtIG9wYWNpdHkgZG9lc24ndCBjYXNjYWRlIHRvIHBvc2l0aW9uZWQgZWxlbWVudHMgaW4gSUUNCgkJLy8gc28gd2UgbmVlZCB0byBhZGQgdGhlIGRpc2FibGVkIGNsYXNzIHRvIHRoZSBoZWFkZXJzIGFuZCBwYW5lbHMNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLmVsZW1lbnQNCgkJCQkudG9nZ2xlQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKQ0KCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoJCQl0aGlzLmhlYWRlcnMuYWRkKCB0aGlzLmhlYWRlcnMubmV4dCgpICkNCgkJCQkudG9nZ2xlQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKTsNCgkJfQ0KCX0sDQoNCglfa2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5ICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdmFyIGtleUNvZGUgPSAkLnVpLmtleUNvZGUsDQoJCQlsZW5ndGggPSB0aGlzLmhlYWRlcnMubGVuZ3RoLA0KCQkJY3VycmVudEluZGV4ID0gdGhpcy5oZWFkZXJzLmluZGV4KCBldmVudC50YXJnZXQgKSwNCgkJCXRvRm9jdXMgPSBmYWxzZTsNCg0KCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJY2FzZSBrZXlDb2RlLlJJR0hUOg0KCQkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQkJdG9Gb2N1cyA9IHRoaXMuaGVhZGVyc1sgKCBjdXJyZW50SW5kZXggKyAxICkgJSBsZW5ndGggXTsNCgkJCQlicmVhazsNCgkJCWNhc2Uga2V5Q29kZS5MRUZUOg0KCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCXRvRm9jdXMgPSB0aGlzLmhlYWRlcnNbICggY3VycmVudEluZGV4IC0gMSArIGxlbmd0aCApICUgbGVuZ3RoIF07DQoJCQkJYnJlYWs7DQoJCQljYXNlIGtleUNvZGUuU1BBQ0U6DQoJCQljYXNlIGtleUNvZGUuRU5URVI6DQoJCQkJdGhpcy5fZXZlbnRIYW5kbGVyKCBldmVudCApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSBrZXlDb2RlLkhPTUU6DQoJCQkJdG9Gb2N1cyA9IHRoaXMuaGVhZGVyc1sgMCBdOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSBrZXlDb2RlLkVORDoNCgkJCQl0b0ZvY3VzID0gdGhpcy5oZWFkZXJzWyBsZW5ndGggLSAxIF07DQoJCQkJYnJlYWs7DQoJCX0NCg0KCQlpZiAoIHRvRm9jdXMgKSB7DQoJCQkkKCBldmVudC50YXJnZXQgKS5hdHRyKCAidGFiSW5kZXgiLCAtMSApOw0KCQkJJCggdG9Gb2N1cyApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJCXRvRm9jdXMuZm9jdXMoKTsNCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCX0NCgl9LA0KDQoJX3BhbmVsS2V5RG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5VUCAmJiBldmVudC5jdHJsS2V5ICkgew0KCQkJJCggZXZlbnQuY3VycmVudFRhcmdldCApLnByZXYoKS5mb2N1cygpOw0KCQl9DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCgkJdGhpcy5fcHJvY2Vzc1BhbmVscygpOw0KDQoJCS8vIHdhcyBjb2xsYXBzZWQgb3Igbm8gcGFuZWwNCgkJaWYgKCAoIG9wdGlvbnMuYWN0aXZlID09PSBmYWxzZSAmJiBvcHRpb25zLmNvbGxhcHNpYmxlID09PSB0cnVlICkgfHwgIXRoaXMuaGVhZGVycy5sZW5ndGggKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoJCS8vIGFjdGl2ZSBmYWxzZSBvbmx5IHdoZW4gY29sbGFwc2libGUgaXMgdHJ1ZQ0KCQl9IGVsc2UgaWYgKCBvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgKSB7DQoJCQl0aGlzLl9hY3RpdmF0ZSggMCApOw0KCQkvLyB3YXMgYWN0aXZlLCBidXQgYWN0aXZlIHBhbmVsIGlzIGdvbmUNCgkJfSBlbHNlIGlmICggdGhpcy5hY3RpdmUubGVuZ3RoICYmICEkLmNvbnRhaW5zKCB0aGlzLmVsZW1lbnRbIDAgXSwgdGhpcy5hY3RpdmVbIDAgXSApICkgew0KCQkJLy8gYWxsIHJlbWFpbmluZyBwYW5lbCBhcmUgZGlzYWJsZWQNCgkJCWlmICggdGhpcy5oZWFkZXJzLmxlbmd0aCA9PT0gdGhpcy5oZWFkZXJzLmZpbmQoIi51aS1zdGF0ZS1kaXNhYmxlZCIpLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJCXRoaXMuYWN0aXZlID0gJCgpOw0KCQkJLy8gYWN0aXZhdGUgcHJldmlvdXMgcGFuZWwNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5fYWN0aXZhdGUoIE1hdGgubWF4KCAwLCBvcHRpb25zLmFjdGl2ZSAtIDEgKSApOw0KCQkJfQ0KCQkvLyB3YXMgYWN0aXZlLCBhY3RpdmUgcGFuZWwgc3RpbGwgZXhpc3RzDQoJCX0gZWxzZSB7DQoJCQkvLyBtYWtlIHN1cmUgYWN0aXZlIGluZGV4IGlzIGNvcnJlY3QNCgkJCW9wdGlvbnMuYWN0aXZlID0gdGhpcy5oZWFkZXJzLmluZGV4KCB0aGlzLmFjdGl2ZSApOw0KCQl9DQoNCgkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCX0sDQoNCglfcHJvY2Vzc1BhbmVsczogZnVuY3Rpb24oKSB7DQoJCXZhciBwcmV2SGVhZGVycyA9IHRoaXMuaGVhZGVycywNCgkJCXByZXZQYW5lbHMgPSB0aGlzLnBhbmVsczsNCg0KCQl0aGlzLmhlYWRlcnMgPSB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLmhlYWRlciApDQoJCQkuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIgKTsNCg0KCQl0aGlzLnBhbmVscyA9IHRoaXMuaGVhZGVycy5uZXh0KCkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50IHVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiApDQoJCQkuZmlsdGVyKCAiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIgKQ0KCQkJLmhpZGUoKTsNCg0KCQkvLyBBdm9pZCBtZW1vcnkgbGVha3MgKCMxMDA1NikNCgkJaWYgKCBwcmV2UGFuZWxzICkgew0KCQkJdGhpcy5fb2ZmKCBwcmV2SGVhZGVycy5ub3QoIHRoaXMuaGVhZGVycyApICk7DQoJCQl0aGlzLl9vZmYoIHByZXZQYW5lbHMubm90KCB0aGlzLnBhbmVscyApICk7DQoJCX0NCgl9LA0KDQoJX3JlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbWF4SGVpZ2h0LA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWhlaWdodFN0eWxlID0gb3B0aW9ucy5oZWlnaHRTdHlsZSwNCgkJCXBhcmVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnQoKTsNCg0KCQl0aGlzLmFjdGl2ZSA9IHRoaXMuX2ZpbmRBY3RpdmUoIG9wdGlvbnMuYWN0aXZlICkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiApDQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApOw0KCQl0aGlzLmFjdGl2ZS5uZXh0KCkNCgkJCS5hZGRDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIgKQ0KCQkJLnNob3coKTsNCg0KCQl0aGlzLmhlYWRlcnMNCgkJCS5hdHRyKCAicm9sZSIsICJ0YWIiICkNCgkJCS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCXZhciBoZWFkZXIgPSAkKCB0aGlzICksDQoJCQkJCWhlYWRlcklkID0gaGVhZGVyLnVuaXF1ZUlkKCkuYXR0ciggImlkIiApLA0KCQkJCQlwYW5lbCA9IGhlYWRlci5uZXh0KCksDQoJCQkJCXBhbmVsSWQgPSBwYW5lbC51bmlxdWVJZCgpLmF0dHIoICJpZCIgKTsNCgkJCQloZWFkZXIuYXR0ciggImFyaWEtY29udHJvbHMiLCBwYW5lbElkICk7DQoJCQkJcGFuZWwuYXR0ciggImFyaWEtbGFiZWxsZWRieSIsIGhlYWRlcklkICk7DQoJCQl9KQ0KCQkJLm5leHQoKQ0KCQkJCS5hdHRyKCAicm9sZSIsICJ0YWJwYW5lbCIgKTsNCg0KCQl0aGlzLmhlYWRlcnMNCgkJCS5ub3QoIHRoaXMuYWN0aXZlICkNCgkJCS5hdHRyKHsNCgkJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiLA0KCQkJCXRhYkluZGV4OiAtMQ0KCQkJfSkNCgkJCS5uZXh0KCkNCgkJCQkuYXR0cih7DQoJCQkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIg0KCQkJCX0pDQoJCQkJLmhpZGUoKTsNCg0KCQkvLyBtYWtlIHN1cmUgYXQgbGVhc3Qgb25lIGhlYWRlciBpcyBpbiB0aGUgdGFiIG9yZGVyDQoJCWlmICggIXRoaXMuYWN0aXZlLmxlbmd0aCApIHsNCgkJCXRoaXMuaGVhZGVycy5lcSggMCApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlLmF0dHIoew0KCQkJCSJhcmlhLXNlbGVjdGVkIjogInRydWUiLA0KCQkJCSJhcmlhLWV4cGFuZGVkIjogInRydWUiLA0KCQkJCXRhYkluZGV4OiAwDQoJCQl9KQ0KCQkJLm5leHQoKQ0KCQkJCS5hdHRyKHsNCgkJCQkJImFyaWEtaGlkZGVuIjogImZhbHNlIg0KCQkJCX0pOw0KCQl9DQoNCgkJdGhpcy5fY3JlYXRlSWNvbnMoKTsNCg0KCQl0aGlzLl9zZXR1cEV2ZW50cyggb3B0aW9ucy5ldmVudCApOw0KDQoJCWlmICggaGVpZ2h0U3R5bGUgPT09ICJmaWxsIiApIHsNCgkJCW1heEhlaWdodCA9IHBhcmVudC5oZWlnaHQoKTsNCgkJCXRoaXMuZWxlbWVudC5zaWJsaW5ncyggIjp2aXNpYmxlIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJbWF4SGVpZ2h0IC09IGVsZW0ub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0pOw0KDQoJCQl0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQltYXhIZWlnaHQgLT0gJCggdGhpcyApLm91dGVySGVpZ2h0KCB0cnVlICk7DQoJCQl9KTsNCg0KCQkJdGhpcy5oZWFkZXJzLm5leHQoKQ0KCQkJCS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCQkkKCB0aGlzICkuaGVpZ2h0KCBNYXRoLm1heCggMCwgbWF4SGVpZ2h0IC0NCgkJCQkJCSQoIHRoaXMgKS5pbm5lckhlaWdodCgpICsgJCggdGhpcyApLmhlaWdodCgpICkgKTsNCgkJCQl9KQ0KCQkJCS5jc3MoICJvdmVyZmxvdyIsICJhdXRvIiApOw0KCQl9IGVsc2UgaWYgKCBoZWlnaHRTdHlsZSA9PT0gImF1dG8iICkgew0KCQkJbWF4SGVpZ2h0ID0gMDsNCgkJCXRoaXMuaGVhZGVycy5uZXh0KCkNCgkJCQkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQkJbWF4SGVpZ2h0ID0gTWF0aC5tYXgoIG1heEhlaWdodCwgJCggdGhpcyApLmNzcyggImhlaWdodCIsICIiICkuaGVpZ2h0KCkgKTsNCgkJCQl9KQ0KCQkJCS5oZWlnaHQoIG1heEhlaWdodCApOw0KCQl9DQoJfSwNCg0KCV9hY3RpdmF0ZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggaW5kZXggKVsgMCBdOw0KDQoJCS8vIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgYWxyZWFkeSBhY3RpdmUgcGFuZWwNCgkJaWYgKCBhY3RpdmUgPT09IHRoaXMuYWN0aXZlWyAwIF0gKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyB0cnlpbmcgdG8gY29sbGFwc2UsIHNpbXVsYXRlIGEgY2xpY2sgb24gdGhlIGN1cnJlbnRseSBhY3RpdmUgaGVhZGVyDQoJCWFjdGl2ZSA9IGFjdGl2ZSB8fCB0aGlzLmFjdGl2ZVsgMCBdOw0KDQoJCXRoaXMuX2V2ZW50SGFuZGxlcih7DQoJCQl0YXJnZXQ6IGFjdGl2ZSwNCgkJCWN1cnJlbnRUYXJnZXQ6IGFjdGl2ZSwNCgkJCXByZXZlbnREZWZhdWx0OiAkLm5vb3ANCgkJfSk7DQoJfSwNCg0KCV9maW5kQWN0aXZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0eXBlb2Ygc2VsZWN0b3IgPT09ICJudW1iZXIiID8gdGhpcy5oZWFkZXJzLmVxKCBzZWxlY3RvciApIDogJCgpOw0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGV2ZW50cyA9IHsNCgkJCWtleWRvd246ICJfa2V5ZG93biINCgkJfTsNCgkJaWYgKCBldmVudCApIHsNCgkJCSQuZWFjaCggZXZlbnQuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaW5kZXgsIGV2ZW50TmFtZSApIHsNCgkJCQlldmVudHNbIGV2ZW50TmFtZSBdID0gIl9ldmVudEhhbmRsZXIiOw0KCQkJfSk7DQoJCX0NCg0KCQl0aGlzLl9vZmYoIHRoaXMuaGVhZGVycy5hZGQoIHRoaXMuaGVhZGVycy5uZXh0KCkgKSApOw0KCQl0aGlzLl9vbiggdGhpcy5oZWFkZXJzLCBldmVudHMgKTsNCgkJdGhpcy5fb24oIHRoaXMuaGVhZGVycy5uZXh0KCksIHsga2V5ZG93bjogIl9wYW5lbEtleURvd24iIH0pOw0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMuaGVhZGVycyApOw0KCQl0aGlzLl9mb2N1c2FibGUoIHRoaXMuaGVhZGVycyApOw0KCX0sDQoNCglfZXZlbnRIYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJYWN0aXZlID0gdGhpcy5hY3RpdmUsDQoJCQljbGlja2VkID0gJCggZXZlbnQuY3VycmVudFRhcmdldCApLA0KCQkJY2xpY2tlZElzQWN0aXZlID0gY2xpY2tlZFsgMCBdID09PSBhY3RpdmVbIDAgXSwNCgkJCWNvbGxhcHNpbmcgPSBjbGlja2VkSXNBY3RpdmUgJiYgb3B0aW9ucy5jb2xsYXBzaWJsZSwNCgkJCXRvU2hvdyA9IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLm5leHQoKSwNCgkJCXRvSGlkZSA9IGFjdGl2ZS5uZXh0KCksDQoJCQlldmVudERhdGEgPSB7DQoJCQkJb2xkSGVhZGVyOiBhY3RpdmUsDQoJCQkJb2xkUGFuZWw6IHRvSGlkZSwNCgkJCQluZXdIZWFkZXI6IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLA0KCQkJCW5ld1BhbmVsOiB0b1Nob3cNCgkJCX07DQoNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KCQlpZiAoDQoJCQkJLy8gY2xpY2sgb24gYWN0aXZlIGhlYWRlciwgYnV0IG5vdCBjb2xsYXBzaWJsZQ0KCQkJCSggY2xpY2tlZElzQWN0aXZlICYmICFvcHRpb25zLmNvbGxhcHNpYmxlICkgfHwNCgkJCQkvLyBhbGxvdyBjYW5jZWxpbmcgYWN0aXZhdGlvbg0KCQkJCSggdGhpcy5fdHJpZ2dlciggImJlZm9yZUFjdGl2YXRlIiwgZXZlbnQsIGV2ZW50RGF0YSApID09PSBmYWxzZSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJb3B0aW9ucy5hY3RpdmUgPSBjb2xsYXBzaW5nID8gZmFsc2UgOiB0aGlzLmhlYWRlcnMuaW5kZXgoIGNsaWNrZWQgKTsNCg0KCQkvLyB3aGVuIHRoZSBjYWxsIHRvIC5fdG9nZ2xlKCkgY29tZXMgYWZ0ZXIgdGhlIGNsYXNzIGNoYW5nZXMNCgkJLy8gaXQgY2F1c2VzIGEgdmVyeSBvZGQgYnVnIGluIElFIDggKHNlZSAjNjcyMCkNCgkJdGhpcy5hY3RpdmUgPSBjbGlja2VkSXNBY3RpdmUgPyAkKCkgOiBjbGlja2VkOw0KCQl0aGlzLl90b2dnbGUoIGV2ZW50RGF0YSApOw0KDQoJCS8vIHN3aXRjaCBjbGFzc2VzDQoJCS8vIGNvcm5lciBjbGFzc2VzIG9uIHRoZSBwcmV2aW91c2x5IGFjdGl2ZSBoZWFkZXIgc3RheSBhZnRlciB0aGUgYW5pbWF0aW9uDQoJCWFjdGl2ZS5yZW1vdmVDbGFzcyggInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJaWYgKCBvcHRpb25zLmljb25zICkgew0KCQkJYWN0aXZlLmNoaWxkcmVuKCAiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIgKQ0KCQkJCS5yZW1vdmVDbGFzcyggb3B0aW9ucy5pY29ucy5hY3RpdmVIZWFkZXIgKQ0KCQkJCS5hZGRDbGFzcyggb3B0aW9ucy5pY29ucy5oZWFkZXIgKTsNCgkJfQ0KDQoJCWlmICggIWNsaWNrZWRJc0FjdGl2ZSApIHsNCgkJCWNsaWNrZWQNCgkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApDQoJCQkJLmFkZENsYXNzKCAidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIHVpLWNvcm5lci10b3AiICk7DQoJCQlpZiAoIG9wdGlvbnMuaWNvbnMgKSB7DQoJCQkJY2xpY2tlZC5jaGlsZHJlbiggIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iICkNCgkJCQkJLnJlbW92ZUNsYXNzKCBvcHRpb25zLmljb25zLmhlYWRlciApDQoJCQkJCS5hZGRDbGFzcyggb3B0aW9ucy5pY29ucy5hY3RpdmVIZWFkZXIgKTsNCgkJCX0NCg0KCQkJY2xpY2tlZA0KCQkJCS5uZXh0KCkNCgkJCQkuYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiICk7DQoJCX0NCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCXZhciB0b1Nob3cgPSBkYXRhLm5ld1BhbmVsLA0KCQkJdG9IaWRlID0gdGhpcy5wcmV2U2hvdy5sZW5ndGggPyB0aGlzLnByZXZTaG93IDogZGF0YS5vbGRQYW5lbDsNCg0KCQkvLyBoYW5kbGUgYWN0aXZhdGluZyBhIHBhbmVsIGR1cmluZyB0aGUgYW5pbWF0aW9uIGZvciBhbm90aGVyIGFjdGl2YXRpb24NCgkJdGhpcy5wcmV2U2hvdy5hZGQoIHRoaXMucHJldkhpZGUgKS5zdG9wKCB0cnVlLCB0cnVlICk7DQoJCXRoaXMucHJldlNob3cgPSB0b1Nob3c7DQoJCXRoaXMucHJldkhpZGUgPSB0b0hpZGU7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYW5pbWF0ZSApIHsNCgkJCXRoaXMuX2FuaW1hdGUoIHRvU2hvdywgdG9IaWRlLCBkYXRhICk7DQoJCX0gZWxzZSB7DQoJCQl0b0hpZGUuaGlkZSgpOw0KCQkJdG9TaG93LnNob3coKTsNCgkJCXRoaXMuX3RvZ2dsZUNvbXBsZXRlKCBkYXRhICk7DQoJCX0NCg0KCQl0b0hpZGUuYXR0cih7DQoJCQkiYXJpYS1oaWRkZW4iOiAidHJ1ZSINCgkJfSk7DQoJCXRvSGlkZS5wcmV2KCkuYXR0cih7DQoJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSINCgkJfSk7DQoJCS8vIGlmIHdlJ3JlIHN3aXRjaGluZyBwYW5lbHMsIHJlbW92ZSB0aGUgb2xkIGhlYWRlciBmcm9tIHRoZSB0YWIgb3JkZXINCgkJLy8gaWYgd2UncmUgb3BlbmluZyBmcm9tIGNvbGxhcHNlZCBzdGF0ZSwgcmVtb3ZlIHRoZSBwcmV2aW91cyBoZWFkZXIgZnJvbSB0aGUgdGFiIG9yZGVyDQoJCS8vIGlmIHdlJ3JlIGNvbGxhcHNpbmcsIHRoZW4ga2VlcCB0aGUgY29sbGFwc2luZyBoZWFkZXIgaW4gdGhlIHRhYiBvcmRlcg0KCQlpZiAoIHRvU2hvdy5sZW5ndGggJiYgdG9IaWRlLmxlbmd0aCApIHsNCgkJCXRvSGlkZS5wcmV2KCkuYXR0cih7DQoJCQkJInRhYkluZGV4IjogLTEsDQoJCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiDQoJCQl9KTsNCgkJfSBlbHNlIGlmICggdG9TaG93Lmxlbmd0aCApIHsNCgkJCXRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuIHBhcnNlSW50KCAkKCB0aGlzICkuYXR0ciggInRhYkluZGV4IiApLCAxMCApID09PSAwOw0KCQkJfSkNCgkJCS5hdHRyKCAidGFiSW5kZXgiLCAtMSApOw0KCQl9DQoNCgkJdG9TaG93DQoJCQkuYXR0ciggImFyaWEtaGlkZGVuIiwgImZhbHNlIiApDQoJCQkucHJldigpDQoJCQkJLmF0dHIoew0KCQkJCQkiYXJpYS1zZWxlY3RlZCI6ICJ0cnVlIiwNCgkJCQkJImFyaWEtZXhwYW5kZWQiOiAidHJ1ZSIsDQoJCQkJCXRhYkluZGV4OiAwDQoJCQkJfSk7DQoJfSwNCg0KCV9hbmltYXRlOiBmdW5jdGlvbiggdG9TaG93LCB0b0hpZGUsIGRhdGEgKSB7DQoJCXZhciB0b3RhbCwgZWFzaW5nLCBkdXJhdGlvbiwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJYWRqdXN0ID0gMCwNCgkJCWJveFNpemluZyA9IHRvU2hvdy5jc3MoICJib3gtc2l6aW5nIiApLA0KCQkJZG93biA9IHRvU2hvdy5sZW5ndGggJiYNCgkJCQkoICF0b0hpZGUubGVuZ3RoIHx8ICggdG9TaG93LmluZGV4KCkgPCB0b0hpZGUuaW5kZXgoKSApICksDQoJCQlhbmltYXRlID0gdGhpcy5vcHRpb25zLmFuaW1hdGUgfHwge30sDQoJCQlvcHRpb25zID0gZG93biAmJiBhbmltYXRlLmRvd24gfHwgYW5pbWF0ZSwNCgkJCWNvbXBsZXRlID0gZnVuY3Rpb24oKSB7DQoJCQkJdGhhdC5fdG9nZ2xlQ29tcGxldGUoIGRhdGEgKTsNCgkJCX07DQoNCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgKSB7DQoJCQlkdXJhdGlvbiA9IG9wdGlvbnM7DQoJCX0NCgkJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIgKSB7DQoJCQllYXNpbmcgPSBvcHRpb25zOw0KCQl9DQoJCS8vIGZhbGwgYmFjayBmcm9tIG9wdGlvbnMgdG8gYW5pbWF0aW9uIGluIGNhc2Ugb2YgcGFydGlhbCBkb3duIHNldHRpbmdzDQoJCWVhc2luZyA9IGVhc2luZyB8fCBvcHRpb25zLmVhc2luZyB8fCBhbmltYXRlLmVhc2luZzsNCgkJZHVyYXRpb24gPSBkdXJhdGlvbiB8fCBvcHRpb25zLmR1cmF0aW9uIHx8IGFuaW1hdGUuZHVyYXRpb247DQoNCgkJaWYgKCAhdG9IaWRlLmxlbmd0aCApIHsNCgkJCXJldHVybiB0b1Nob3cuYW5pbWF0ZSggdGhpcy5zaG93UHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCgkJaWYgKCAhdG9TaG93Lmxlbmd0aCApIHsNCgkJCXJldHVybiB0b0hpZGUuYW5pbWF0ZSggdGhpcy5oaWRlUHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCg0KCQl0b3RhbCA9IHRvU2hvdy5zaG93KCkub3V0ZXJIZWlnaHQoKTsNCgkJdG9IaWRlLmFuaW1hdGUoIHRoaXMuaGlkZVByb3BzLCB7DQoJCQlkdXJhdGlvbjogZHVyYXRpb24sDQoJCQllYXNpbmc6IGVhc2luZywNCgkJCXN0ZXA6IGZ1bmN0aW9uKCBub3csIGZ4ICkgew0KCQkJCWZ4Lm5vdyA9IE1hdGgucm91bmQoIG5vdyApOw0KCQkJfQ0KCQl9KTsNCgkJdG9TaG93DQoJCQkuaGlkZSgpDQoJCQkuYW5pbWF0ZSggdGhpcy5zaG93UHJvcHMsIHsNCgkJCQlkdXJhdGlvbjogZHVyYXRpb24sDQoJCQkJZWFzaW5nOiBlYXNpbmcsDQoJCQkJY29tcGxldGU6IGNvbXBsZXRlLA0KCQkJCXN0ZXA6IGZ1bmN0aW9uKCBub3csIGZ4ICkgew0KCQkJCQlmeC5ub3cgPSBNYXRoLnJvdW5kKCBub3cgKTsNCgkJCQkJaWYgKCBmeC5wcm9wICE9PSAiaGVpZ2h0IiApIHsNCgkJCQkJCWlmICggYm94U2l6aW5nID09PSAiY29udGVudC1ib3giICkgew0KCQkJCQkJCWFkanVzdCArPSBmeC5ub3c7DQoJCQkJCQl9DQoJCQkJCX0gZWxzZSBpZiAoIHRoYXQub3B0aW9ucy5oZWlnaHRTdHlsZSAhPT0gImNvbnRlbnQiICkgew0KCQkJCQkJZngubm93ID0gTWF0aC5yb3VuZCggdG90YWwgLSB0b0hpZGUub3V0ZXJIZWlnaHQoKSAtIGFkanVzdCApOw0KCQkJCQkJYWRqdXN0ID0gMDsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0pOw0KCX0sDQoNCglfdG9nZ2xlQ29tcGxldGU6IGZ1bmN0aW9uKCBkYXRhICkgew0KCQl2YXIgdG9IaWRlID0gZGF0YS5vbGRQYW5lbDsNCg0KCQl0b0hpZGUNCgkJCS5yZW1vdmVDbGFzcyggInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIgKQ0KCQkJLnByZXYoKQ0KCQkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci10b3AiICkNCgkJCQkuYWRkQ2xhc3MoICJ1aS1jb3JuZXItYWxsIiApOw0KDQoJCS8vIFdvcmsgYXJvdW5kIGZvciByZW5kZXJpbmcgYnVnIGluIElFICgjNTQyMSkNCgkJaWYgKCB0b0hpZGUubGVuZ3RoICkgew0KCQkJdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lID0gdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lOw0KCQl9DQoJCXRoaXMuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIG51bGwsIGRhdGEgKTsNCgl9DQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBNZW51IDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vbWVudS8NCiAqLw0KDQoNCnZhciBtZW51ID0gJC53aWRnZXQoICJ1aS5tZW51Iiwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCWRlZmF1bHRFbGVtZW50OiAiPHVsPiIsDQoJZGVsYXk6IDMwMCwNCglvcHRpb25zOiB7DQoJCWljb25zOiB7DQoJCQlzdWJtZW51OiAidWktaWNvbi1jYXJhdC0xLWUiDQoJCX0sDQoJCWl0ZW1zOiAiPiAqIiwNCgkJbWVudXM6ICJ1bCIsDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImxlZnQtMSB0b3AiLA0KCQkJYXQ6ICJyaWdodCB0b3AiDQoJCX0sDQoJCXJvbGU6ICJtZW51IiwNCg0KCQkvLyBjYWxsYmFja3MNCgkJYmx1cjogbnVsbCwNCgkJZm9jdXM6IG51bGwsDQoJCXNlbGVjdDogbnVsbA0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5hY3RpdmVNZW51ID0gdGhpcy5lbGVtZW50Ow0KDQoJCS8vIEZsYWcgdXNlZCB0byBwcmV2ZW50IGZpcmluZyBvZiB0aGUgY2xpY2sgaGFuZGxlcg0KCQkvLyBhcyB0aGUgZXZlbnQgYnViYmxlcyB1cCB0aHJvdWdoIG5lc3RlZCBtZW51cw0KCQl0aGlzLm1vdXNlSGFuZGxlZCA9IGZhbHNlOw0KCQl0aGlzLmVsZW1lbnQNCgkJCS51bmlxdWVJZCgpDQoJCQkuYWRkQ2xhc3MoICJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIgKQ0KCQkJLnRvZ2dsZUNsYXNzKCAidWktbWVudS1pY29ucyIsICEhdGhpcy5lbGVtZW50LmZpbmQoICIudWktaWNvbiIgKS5sZW5ndGggKQ0KCQkJLmF0dHIoew0KCQkJCXJvbGU6IHRoaXMub3B0aW9ucy5yb2xlLA0KCQkJCXRhYkluZGV4OiAwDQoJCQl9KTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCXRoaXMuZWxlbWVudA0KCQkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApDQoJCQkJLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgInRydWUiICk7DQoJCX0NCg0KCQl0aGlzLl9vbih7DQoJCQkvLyBQcmV2ZW50IGZvY3VzIGZyb20gc3RpY2tpbmcgdG8gbGlua3MgaW5zaWRlIG1lbnUgYWZ0ZXIgY2xpY2tpbmcNCgkJCS8vIHRoZW0gKGZvY3VzIHNob3VsZCBhbHdheXMgc3RheSBvbiBVTCBkdXJpbmcgbmF2aWdhdGlvbikuDQoJCQkibW91c2Vkb3duIC51aS1tZW51LWl0ZW0iOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0sDQoJCQkiY2xpY2sgLnVpLW1lbnUtaXRlbSI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl2YXIgdGFyZ2V0ID0gJCggZXZlbnQudGFyZ2V0ICk7DQoJCQkJaWYgKCAhdGhpcy5tb3VzZUhhbmRsZWQgJiYgdGFyZ2V0Lm5vdCggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKS5sZW5ndGggKSB7DQoJCQkJCXRoaXMuc2VsZWN0KCBldmVudCApOw0KDQoJCQkJCS8vIE9ubHkgc2V0IHRoZSBtb3VzZUhhbmRsZWQgZmxhZyBpZiB0aGUgZXZlbnQgd2lsbCBidWJibGUsIHNlZSAjOTQ2OS4NCgkJCQkJaWYgKCAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsNCgkJCQkJCXRoaXMubW91c2VIYW5kbGVkID0gdHJ1ZTsNCgkJCQkJfQ0KDQoJCQkJCS8vIE9wZW4gc3VibWVudSBvbiBjbGljaw0KCQkJCQlpZiAoIHRhcmdldC5oYXMoICIudWktbWVudSIgKS5sZW5ndGggKSB7DQoJCQkJCQl0aGlzLmV4cGFuZCggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIGlmICggIXRoaXMuZWxlbWVudC5pcyggIjpmb2N1cyIgKSAmJiAkKCB0aGlzLmRvY3VtZW50WyAwIF0uYWN0aXZlRWxlbWVudCApLmNsb3Nlc3QoICIudWktbWVudSIgKS5sZW5ndGggKSB7DQoNCgkJCQkJCS8vIFJlZGlyZWN0IGZvY3VzIHRvIHRoZSBtZW51DQoJCQkJCQl0aGlzLmVsZW1lbnQudHJpZ2dlciggImZvY3VzIiwgWyB0cnVlIF0gKTsNCg0KCQkJCQkJLy8gSWYgdGhlIGFjdGl2ZSBpdGVtIGlzIG9uIHRoZSB0b3AgbGV2ZWwsIGxldCBpdCBzdGF5IGFjdGl2ZS4NCgkJCQkJCS8vIE90aGVyd2lzZSwgYmx1ciB0aGUgYWN0aXZlIGl0ZW0gc2luY2UgaXQgaXMgbm8gbG9uZ2VyIHZpc2libGUuDQoJCQkJCQlpZiAoIHRoaXMuYWN0aXZlICYmIHRoaXMuYWN0aXZlLnBhcmVudHMoICIudWktbWVudSIgKS5sZW5ndGggPT09IDEgKSB7DQoJCQkJCQkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9LA0KCQkJIm1vdXNlZW50ZXIgLnVpLW1lbnUtaXRlbSI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkvLyBJZ25vcmUgbW91c2UgZXZlbnRzIHdoaWxlIHR5cGVhaGVhZCBpcyBhY3RpdmUsIHNlZSAjMTA0NTguDQoJCQkJLy8gUHJldmVudHMgZm9jdXNpbmcgdGhlIHdyb25nIGl0ZW0gd2hlbiB0eXBlYWhlYWQgY2F1c2VzIGEgc2Nyb2xsIHdoaWxlIHRoZSBtb3VzZQ0KCQkJCS8vIGlzIG92ZXIgYW4gaXRlbSBpbiB0aGUgbWVudQ0KCQkJCWlmICggdGhpcy5wcmV2aW91c0ZpbHRlciApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQl2YXIgdGFyZ2V0ID0gJCggZXZlbnQuY3VycmVudFRhcmdldCApOw0KCQkJCS8vIFJlbW92ZSB1aS1zdGF0ZS1hY3RpdmUgY2xhc3MgZnJvbSBzaWJsaW5ncyBvZiB0aGUgbmV3bHkgZm9jdXNlZCBtZW51IGl0ZW0NCgkJCQkvLyB0byBhdm9pZCBhIGp1bXAgY2F1c2VkIGJ5IGFkamFjZW50IGVsZW1lbnRzIGJvdGggaGF2aW5nIGEgY2xhc3Mgd2l0aCBhIGJvcmRlcg0KCQkJCXRhcmdldC5zaWJsaW5ncyggIi51aS1zdGF0ZS1hY3RpdmUiICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQkJdGhpcy5mb2N1cyggZXZlbnQsIHRhcmdldCApOw0KCQkJfSwNCgkJCW1vdXNlbGVhdmU6ICJjb2xsYXBzZUFsbCIsDQoJCQkibW91c2VsZWF2ZSAudWktbWVudSI6ICJjb2xsYXBzZUFsbCIsDQoJCQlmb2N1czogZnVuY3Rpb24oIGV2ZW50LCBrZWVwQWN0aXZlSXRlbSApIHsNCgkJCQkvLyBJZiB0aGVyZSdzIGFscmVhZHkgYW4gYWN0aXZlIGl0ZW0sIGtlZXAgaXQgYWN0aXZlDQoJCQkJLy8gSWYgbm90LCBhY3RpdmF0ZSB0aGUgZmlyc3QgaXRlbQ0KCQkJCXZhciBpdGVtID0gdGhpcy5hY3RpdmUgfHwgdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLmVxKCAwICk7DQoNCgkJCQlpZiAoICFrZWVwQWN0aXZlSXRlbSApIHsNCgkJCQkJdGhpcy5mb2N1cyggZXZlbnQsIGl0ZW0gKTsNCgkJCQl9DQoJCQl9LA0KCQkJYmx1cjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoICEkLmNvbnRhaW5zKCB0aGlzLmVsZW1lbnRbMF0sIHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCApICkgew0KCQkJCQkJdGhpcy5jb2xsYXBzZUFsbCggZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfSwNCgkJCWtleWRvd246ICJfa2V5ZG93biINCgkJfSk7DQoNCgkJdGhpcy5yZWZyZXNoKCk7DQoNCgkJLy8gQ2xpY2tzIG91dHNpZGUgb2YgYSBtZW51IGNvbGxhcHNlIGFueSBvcGVuIG1lbnVzDQoJCXRoaXMuX29uKCB0aGlzLmRvY3VtZW50LCB7DQoJCQljbGljazogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggdGhpcy5fY2xvc2VPbkRvY3VtZW50Q2xpY2soIGV2ZW50ICkgKSB7DQoJCQkJCXRoaXMuY29sbGFwc2VBbGwoIGV2ZW50ICk7DQoJCQkJfQ0KDQoJCQkJLy8gUmVzZXQgdGhlIG1vdXNlSGFuZGxlZCBmbGFnDQoJCQkJdGhpcy5tb3VzZUhhbmRsZWQgPSBmYWxzZTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJLy8gRGVzdHJveSAoc3ViKW1lbnVzDQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiICkNCgkJCS5maW5kKCAiLnVpLW1lbnUiICkuYWRkQmFjaygpDQoJCQkJLnJlbW92ZUNsYXNzKCAidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktbWVudS1pY29ucyB1aS1mcm9udCIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAidGFiSW5kZXgiICkNCgkJCQkucmVtb3ZlQXR0ciggImFyaWEtbGFiZWxsZWRieSIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1leHBhbmRlZCIgKQ0KCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1oaWRkZW4iICkNCgkJCQkucmVtb3ZlQXR0ciggImFyaWEtZGlzYWJsZWQiICkNCgkJCQkucmVtb3ZlVW5pcXVlSWQoKQ0KCQkJCS5zaG93KCk7DQoNCgkJLy8gRGVzdHJveSBtZW51IGl0ZW1zDQoJCXRoaXMuZWxlbWVudC5maW5kKCAiLnVpLW1lbnUtaXRlbSIgKQ0KCQkJLnJlbW92ZUNsYXNzKCAidWktbWVudS1pdGVtIiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUiICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKQ0KCQkJLnJlbW92ZVVuaXF1ZUlkKCkNCgkJCS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApDQoJCQkucmVtb3ZlQXR0ciggInRhYkluZGV4IiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUiICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1oYXNwb3B1cCIgKQ0KCQkJLmNoaWxkcmVuKCkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICk7DQoJCQkJaWYgKCBlbGVtLmRhdGEoICJ1aS1tZW51LXN1Ym1lbnUtY2FyYXQiICkgKSB7DQoJCQkJCWVsZW0ucmVtb3ZlKCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJLy8gRGVzdHJveSBtZW51IGRpdmlkZXJzDQoJCXRoaXMuZWxlbWVudC5maW5kKCAiLnVpLW1lbnUtZGl2aWRlciIgKS5yZW1vdmVDbGFzcyggInVpLW1lbnUtZGl2aWRlciB1aS13aWRnZXQtY29udGVudCIgKTsNCgl9LA0KDQoJX2tleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG1hdGNoLCBwcmV2LCBjaGFyYWN0ZXIsIHNraXAsDQoJCQlwcmV2ZW50RGVmYXVsdCA9IHRydWU7DQoNCgkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9VUDoNCgkJCXRoaXMucHJldmlvdXNQYWdlKCBldmVudCApOw0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfRE9XTjoNCgkJCXRoaXMubmV4dFBhZ2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuSE9NRToNCgkJCXRoaXMuX21vdmUoICJmaXJzdCIsICJmaXJzdCIsIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuRU5EOg0KCQkJdGhpcy5fbW92ZSggImxhc3QiLCAibGFzdCIsIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuVVA6DQoJCQl0aGlzLnByZXZpb3VzKCBldmVudCApOw0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLkRPV046DQoJCQl0aGlzLm5leHQoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuTEVGVDoNCgkJCXRoaXMuY29sbGFwc2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuUklHSFQ6DQoJCQlpZiAoIHRoaXMuYWN0aXZlICYmICF0aGlzLmFjdGl2ZS5pcyggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSApIHsNCgkJCQl0aGlzLmV4cGFuZCggZXZlbnQgKTsNCgkJCX0NCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5FTlRFUjoNCgkJY2FzZSAkLnVpLmtleUNvZGUuU1BBQ0U6DQoJCQl0aGlzLl9hY3RpdmF0ZSggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5FU0NBUEU6DQoJCQl0aGlzLmNvbGxhcHNlKCBldmVudCApOw0KCQkJYnJlYWs7DQoJCWRlZmF1bHQ6DQoJCQlwcmV2ZW50RGVmYXVsdCA9IGZhbHNlOw0KCQkJcHJldiA9IHRoaXMucHJldmlvdXNGaWx0ZXIgfHwgIiI7DQoJCQljaGFyYWN0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCBldmVudC5rZXlDb2RlICk7DQoJCQlza2lwID0gZmFsc2U7DQoNCgkJCWNsZWFyVGltZW91dCggdGhpcy5maWx0ZXJUaW1lciApOw0KDQoJCQlpZiAoIGNoYXJhY3RlciA9PT0gcHJldiApIHsNCgkJCQlza2lwID0gdHJ1ZTsNCgkJCX0gZWxzZSB7DQoJCQkJY2hhcmFjdGVyID0gcHJldiArIGNoYXJhY3RlcjsNCgkJCX0NCg0KCQkJbWF0Y2ggPSB0aGlzLl9maWx0ZXJNZW51SXRlbXMoIGNoYXJhY3RlciApOw0KCQkJbWF0Y2ggPSBza2lwICYmIG1hdGNoLmluZGV4KCB0aGlzLmFjdGl2ZS5uZXh0KCkgKSAhPT0gLTEgPw0KCQkJCXRoaXMuYWN0aXZlLm5leHRBbGwoICIudWktbWVudS1pdGVtIiApIDoNCgkJCQltYXRjaDsNCg0KCQkJLy8gSWYgbm8gbWF0Y2hlcyBvbiB0aGUgY3VycmVudCBmaWx0ZXIsIHJlc2V0IHRvIHRoZSBsYXN0IGNoYXJhY3RlciBwcmVzc2VkDQoJCQkvLyB0byBtb3ZlIGRvd24gdGhlIG1lbnUgdG8gdGhlIGZpcnN0IGl0ZW0gdGhhdCBzdGFydHMgd2l0aCB0aGF0IGNoYXJhY3Rlcg0KCQkJaWYgKCAhbWF0Y2gubGVuZ3RoICkgew0KCQkJCWNoYXJhY3RlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoIGV2ZW50LmtleUNvZGUgKTsNCgkJCQltYXRjaCA9IHRoaXMuX2ZpbHRlck1lbnVJdGVtcyggY2hhcmFjdGVyICk7DQoJCQl9DQoNCgkJCWlmICggbWF0Y2gubGVuZ3RoICkgew0KCQkJCXRoaXMuZm9jdXMoIGV2ZW50LCBtYXRjaCApOw0KCQkJCXRoaXMucHJldmlvdXNGaWx0ZXIgPSBjaGFyYWN0ZXI7DQoJCQkJdGhpcy5maWx0ZXJUaW1lciA9IHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQlkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcjsNCgkJCQl9LCAxMDAwICk7DQoJCQl9IGVsc2Ugew0KCQkJCWRlbGV0ZSB0aGlzLnByZXZpb3VzRmlsdGVyOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBwcmV2ZW50RGVmYXVsdCApIHsNCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCX0NCgl9LA0KDQoJX2FjdGl2YXRlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuYWN0aXZlLmlzKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApICkgew0KCQkJaWYgKCB0aGlzLmFjdGl2ZS5pcyggIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iICkgKSB7DQoJCQkJdGhpcy5leHBhbmQoIGV2ZW50ICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuc2VsZWN0KCBldmVudCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbWVudXMsIGl0ZW1zLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlpY29uID0gdGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUsDQoJCQlzdWJtZW51cyA9IHRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMubWVudXMgKTsNCg0KCQl0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoICJ1aS1tZW51LWljb25zIiwgISF0aGlzLmVsZW1lbnQuZmluZCggIi51aS1pY29uIiApLmxlbmd0aCApOw0KDQoJCS8vIEluaXRpYWxpemUgbmVzdGVkIG1lbnVzDQoJCXN1Ym1lbnVzLmZpbHRlciggIjpub3QoLnVpLW1lbnUpIiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1mcm9udCIgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoew0KCQkJCXJvbGU6IHRoaXMub3B0aW9ucy5yb2xlLA0KCQkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIiwNCgkJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSINCgkJCX0pDQoJCQkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgbWVudSA9ICQoIHRoaXMgKSwNCgkJCQkJaXRlbSA9IG1lbnUucGFyZW50KCksDQoJCQkJCXN1Ym1lbnVDYXJhdCA9ICQoICI8c3Bhbj4iICkNCgkJCQkJCS5hZGRDbGFzcyggInVpLW1lbnUtaWNvbiB1aS1pY29uICIgKyBpY29uICkNCgkJCQkJCS5kYXRhKCAidWktbWVudS1zdWJtZW51LWNhcmF0IiwgdHJ1ZSApOw0KDQoJCQkJaXRlbQ0KCQkJCQkuYXR0ciggImFyaWEtaGFzcG9wdXAiLCAidHJ1ZSIgKQ0KCQkJCQkucHJlcGVuZCggc3VibWVudUNhcmF0ICk7DQoJCQkJbWVudS5hdHRyKCAiYXJpYS1sYWJlbGxlZGJ5IiwgaXRlbS5hdHRyKCAiaWQiICkgKTsNCgkJCX0pOw0KDQoJCW1lbnVzID0gc3VibWVudXMuYWRkKCB0aGlzLmVsZW1lbnQgKTsNCgkJaXRlbXMgPSBtZW51cy5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKTsNCg0KCQkvLyBJbml0aWFsaXplIG1lbnUtaXRlbXMgY29udGFpbmluZyBzcGFjZXMgYW5kL29yIGRhc2hlcyBvbmx5IGFzIGRpdmlkZXJzDQoJCWl0ZW1zLm5vdCggIi51aS1tZW51LWl0ZW0iICkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBpdGVtID0gJCggdGhpcyApOw0KCQkJaWYgKCB0aGF0Ll9pc0RpdmlkZXIoIGl0ZW0gKSApIHsNCgkJCQlpdGVtLmFkZENsYXNzKCAidWktd2lkZ2V0LWNvbnRlbnQgdWktbWVudS1kaXZpZGVyIiApOw0KCQkJfQ0KCQl9KTsNCg0KCQkvLyBEb24ndCByZWZyZXNoIGxpc3QgaXRlbXMgdGhhdCBhcmUgYWxyZWFkeSBhZGFwdGVkDQoJCWl0ZW1zLm5vdCggIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiICkNCgkJCS5hZGRDbGFzcyggInVpLW1lbnUtaXRlbSIgKQ0KCQkJLnVuaXF1ZUlkKCkNCgkJCS5hdHRyKHsNCgkJCQl0YWJJbmRleDogLTEsDQoJCQkJcm9sZTogdGhpcy5faXRlbVJvbGUoKQ0KCQkJfSk7DQoNCgkJLy8gQWRkIGFyaWEtZGlzYWJsZWQgYXR0cmlidXRlIHRvIGFueSBkaXNhYmxlZCBtZW51IGl0ZW0NCgkJaXRlbXMuZmlsdGVyKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgInRydWUiICk7DQoNCgkJLy8gSWYgdGhlIGFjdGl2ZSBpdGVtIGhhcyBiZWVuIHJlbW92ZWQsIGJsdXIgdGhlIG1lbnUNCgkJaWYgKCB0aGlzLmFjdGl2ZSAmJiAhJC5jb250YWlucyggdGhpcy5lbGVtZW50WyAwIF0sIHRoaXMuYWN0aXZlWyAwIF0gKSApIHsNCgkJCXRoaXMuYmx1cigpOw0KCQl9DQoJfSwNCg0KCV9pdGVtUm9sZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQltZW51OiAibWVudWl0ZW0iLA0KCQkJbGlzdGJveDogIm9wdGlvbiINCgkJfVsgdGhpcy5vcHRpb25zLnJvbGUgXTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5lbGVtZW50LmZpbmQoICIudWktbWVudS1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaWNvbnMuc3VibWVudSApDQoJCQkJLmFkZENsYXNzKCB2YWx1ZS5zdWJtZW51ICk7DQoJCX0NCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLmVsZW1lbnQNCgkJCQkudG9nZ2xlQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKQ0KCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoJCX0NCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgl9LA0KDQoJZm9jdXM6IGZ1bmN0aW9uKCBldmVudCwgaXRlbSApIHsNCgkJdmFyIG5lc3RlZCwgZm9jdXNlZDsNCgkJdGhpcy5ibHVyKCBldmVudCwgZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gImZvY3VzIiApOw0KDQoJCXRoaXMuX3Njcm9sbEludG9WaWV3KCBpdGVtICk7DQoNCgkJdGhpcy5hY3RpdmUgPSBpdGVtLmZpcnN0KCk7DQoJCWZvY3VzZWQgPSB0aGlzLmFjdGl2ZS5hZGRDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkvLyBPbmx5IHVwZGF0ZSBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgaWYgdGhlcmUncyBhIHJvbGUNCgkJLy8gb3RoZXJ3aXNlIHdlIGFzc3VtZSBmb2N1cyBpcyBtYW5hZ2VkIGVsc2V3aGVyZQ0KCQlpZiAoIHRoaXMub3B0aW9ucy5yb2xlICkgew0KCQkJdGhpcy5lbGVtZW50LmF0dHIoICJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLCBmb2N1c2VkLmF0dHIoICJpZCIgKSApOw0KCQl9DQoNCgkJLy8gSGlnaGxpZ2h0IGFjdGl2ZSBwYXJlbnQgbWVudSBpdGVtLCBpZiBhbnkNCgkJdGhpcy5hY3RpdmUNCgkJCS5wYXJlbnQoKQ0KCQkJLmNsb3Nlc3QoICIudWktbWVudS1pdGVtIiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoNCgkJaWYgKCBldmVudCAmJiBldmVudC50eXBlID09PSAia2V5ZG93biIgKSB7DQoJCQl0aGlzLl9jbG9zZSgpOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy50aW1lciA9IHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuX2Nsb3NlKCk7DQoJCQl9LCB0aGlzLmRlbGF5ICk7DQoJCX0NCg0KCQluZXN0ZWQgPSBpdGVtLmNoaWxkcmVuKCAiLnVpLW1lbnUiICk7DQoJCWlmICggbmVzdGVkLmxlbmd0aCAmJiBldmVudCAmJiAoIC9ebW91c2UvLnRlc3QoIGV2ZW50LnR5cGUgKSApICkgew0KCQkJdGhpcy5fc3RhcnRPcGVuaW5nKG5lc3RlZCk7DQoJCX0NCgkJdGhpcy5hY3RpdmVNZW51ID0gaXRlbS5wYXJlbnQoKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAiZm9jdXMiLCBldmVudCwgeyBpdGVtOiBpdGVtIH0gKTsNCgl9LA0KDQoJX3Njcm9sbEludG9WaWV3OiBmdW5jdGlvbiggaXRlbSApIHsNCgkJdmFyIGJvcmRlclRvcCwgcGFkZGluZ1RvcCwgb2Zmc2V0LCBzY3JvbGwsIGVsZW1lbnRIZWlnaHQsIGl0ZW1IZWlnaHQ7DQoJCWlmICggdGhpcy5faGFzU2Nyb2xsKCkgKSB7DQoJCQlib3JkZXJUb3AgPSBwYXJzZUZsb2F0KCAkLmNzcyggdGhpcy5hY3RpdmVNZW51WzBdLCAiYm9yZGVyVG9wV2lkdGgiICkgKSB8fCAwOw0KCQkJcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoICQuY3NzKCB0aGlzLmFjdGl2ZU1lbnVbMF0sICJwYWRkaW5nVG9wIiApICkgfHwgMDsNCgkJCW9mZnNldCA9IGl0ZW0ub2Zmc2V0KCkudG9wIC0gdGhpcy5hY3RpdmVNZW51Lm9mZnNldCgpLnRvcCAtIGJvcmRlclRvcCAtIHBhZGRpbmdUb3A7DQoJCQlzY3JvbGwgPSB0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKCk7DQoJCQllbGVtZW50SGVpZ2h0ID0gdGhpcy5hY3RpdmVNZW51LmhlaWdodCgpOw0KCQkJaXRlbUhlaWdodCA9IGl0ZW0ub3V0ZXJIZWlnaHQoKTsNCg0KCQkJaWYgKCBvZmZzZXQgPCAwICkgew0KCQkJCXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoIHNjcm9sbCArIG9mZnNldCApOw0KCQkJfSBlbHNlIGlmICggb2Zmc2V0ICsgaXRlbUhlaWdodCA+IGVsZW1lbnRIZWlnaHQgKSB7DQoJCQkJdGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcCggc2Nyb2xsICsgb2Zmc2V0IC0gZWxlbWVudEhlaWdodCArIGl0ZW1IZWlnaHQgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglibHVyOiBmdW5jdGlvbiggZXZlbnQsIGZyb21Gb2N1cyApIHsNCgkJaWYgKCAhZnJvbUZvY3VzICkgew0KCQkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCX0NCg0KCQlpZiAoICF0aGlzLmFjdGl2ZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZm9jdXMiICk7DQoJCXRoaXMuYWN0aXZlID0gbnVsbDsNCg0KCQl0aGlzLl90cmlnZ2VyKCAiYmx1ciIsIGV2ZW50LCB7IGl0ZW06IHRoaXMuYWN0aXZlIH0gKTsNCgl9LA0KDQoJX3N0YXJ0T3BlbmluZzogZnVuY3Rpb24oIHN1Ym1lbnUgKSB7DQoJCWNsZWFyVGltZW91dCggdGhpcy50aW1lciApOw0KDQoJCS8vIERvbid0IG9wZW4gaWYgYWxyZWFkeSBvcGVuIGZpeGVzIGEgRmlyZWZveCBidWcgdGhhdCBjYXVzZWQgYSAuNSBwaXhlbA0KCQkvLyBzaGlmdCBpbiB0aGUgc3VibWVudSBwb3NpdGlvbiB3aGVuIG1vdXNpbmcgb3ZlciB0aGUgY2FyYXQgaWNvbg0KCQlpZiAoIHN1Ym1lbnUuYXR0ciggImFyaWEtaGlkZGVuIiApICE9PSAidHJ1ZSIgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnRpbWVyID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl9jbG9zZSgpOw0KCQkJdGhpcy5fb3Blbiggc3VibWVudSApOw0KCQl9LCB0aGlzLmRlbGF5ICk7DQoJfSwNCg0KCV9vcGVuOiBmdW5jdGlvbiggc3VibWVudSApIHsNCgkJdmFyIHBvc2l0aW9uID0gJC5leHRlbmQoew0KCQkJb2Y6IHRoaXMuYWN0aXZlDQoJCX0sIHRoaXMub3B0aW9ucy5wb3NpdGlvbiApOw0KDQoJCWNsZWFyVGltZW91dCggdGhpcy50aW1lciApOw0KCQl0aGlzLmVsZW1lbnQuZmluZCggIi51aS1tZW51IiApLm5vdCggc3VibWVudS5wYXJlbnRzKCAiLnVpLW1lbnUiICkgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoICJhcmlhLWhpZGRlbiIsICJ0cnVlIiApOw0KDQoJCXN1Ym1lbnUNCgkJCS5zaG93KCkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1oaWRkZW4iICkNCgkJCS5hdHRyKCAiYXJpYS1leHBhbmRlZCIsICJ0cnVlIiApDQoJCQkucG9zaXRpb24oIHBvc2l0aW9uICk7DQoJfSwNCg0KCWNvbGxhcHNlQWxsOiBmdW5jdGlvbiggZXZlbnQsIGFsbCApIHsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCS8vIElmIHdlIHdlcmUgcGFzc2VkIGFuIGV2ZW50LCBsb29rIGZvciB0aGUgc3VibWVudSB0aGF0IGNvbnRhaW5zIHRoZSBldmVudA0KCQkJdmFyIGN1cnJlbnRNZW51ID0gYWxsID8gdGhpcy5lbGVtZW50IDoNCgkJCQkkKCBldmVudCAmJiBldmVudC50YXJnZXQgKS5jbG9zZXN0KCB0aGlzLmVsZW1lbnQuZmluZCggIi51aS1tZW51IiApICk7DQoNCgkJCS8vIElmIHdlIGZvdW5kIG5vIHZhbGlkIHN1Ym1lbnUgYW5jZXN0b3IsIHVzZSB0aGUgbWFpbiBtZW51IHRvIGNsb3NlIGFsbCBzdWIgbWVudXMgYW55d2F5DQoJCQlpZiAoICFjdXJyZW50TWVudS5sZW5ndGggKSB7DQoJCQkJY3VycmVudE1lbnUgPSB0aGlzLmVsZW1lbnQ7DQoJCQl9DQoNCgkJCXRoaXMuX2Nsb3NlKCBjdXJyZW50TWVudSApOw0KDQoJCQl0aGlzLmJsdXIoIGV2ZW50ICk7DQoJCQl0aGlzLmFjdGl2ZU1lbnUgPSBjdXJyZW50TWVudTsNCgkJfSwgdGhpcy5kZWxheSApOw0KCX0sDQoNCgkvLyBXaXRoIG5vIGFyZ3VtZW50cywgY2xvc2VzIHRoZSBjdXJyZW50bHkgYWN0aXZlIG1lbnUgLSBpZiBub3RoaW5nIGlzIGFjdGl2ZQ0KCS8vIGl0IGNsb3NlcyBhbGwgbWVudXMuICBJZiBwYXNzZWQgYW4gYXJndW1lbnQsIGl0IHdpbGwgc2VhcmNoIGZvciBtZW51cyBCRUxPVw0KCV9jbG9zZTogZnVuY3Rpb24oIHN0YXJ0TWVudSApIHsNCgkJaWYgKCAhc3RhcnRNZW51ICkgew0KCQkJc3RhcnRNZW51ID0gdGhpcy5hY3RpdmUgPyB0aGlzLmFjdGl2ZS5wYXJlbnQoKSA6IHRoaXMuZWxlbWVudDsNCgkJfQ0KDQoJCXN0YXJ0TWVudQ0KCQkJLmZpbmQoICIudWktbWVudSIgKQ0KCQkJCS5oaWRlKCkNCgkJCQkuYXR0ciggImFyaWEtaGlkZGVuIiwgInRydWUiICkNCgkJCQkuYXR0ciggImFyaWEtZXhwYW5kZWQiLCAiZmFsc2UiICkNCgkJCS5lbmQoKQ0KCQkJLmZpbmQoICIudWktc3RhdGUtYWN0aXZlIiApLm5vdCggIi51aS1zdGF0ZS1mb2N1cyIgKQ0KCQkJCS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgl9LA0KDQoJX2Nsb3NlT25Eb2N1bWVudENsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXJldHVybiAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1tZW51IiApLmxlbmd0aDsNCgl9LA0KDQoJX2lzRGl2aWRlcjogZnVuY3Rpb24oIGl0ZW0gKSB7DQoNCgkJLy8gTWF0Y2ggaHlwaGVuLCBlbSBkYXNoLCBlbiBkYXNoDQoJCXJldHVybiAhL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoIGl0ZW0udGV4dCgpICk7DQoJfSwNCg0KCWNvbGxhcHNlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBuZXdJdGVtID0gdGhpcy5hY3RpdmUgJiYNCgkJCXRoaXMuYWN0aXZlLnBhcmVudCgpLmNsb3Nlc3QoICIudWktbWVudS1pdGVtIiwgdGhpcy5lbGVtZW50ICk7DQoJCWlmICggbmV3SXRlbSAmJiBuZXdJdGVtLmxlbmd0aCApIHsNCgkJCXRoaXMuX2Nsb3NlKCk7DQoJCQl0aGlzLmZvY3VzKCBldmVudCwgbmV3SXRlbSApOw0KCQl9DQoJfSwNCg0KCWV4cGFuZDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgbmV3SXRlbSA9IHRoaXMuYWN0aXZlICYmDQoJCQl0aGlzLmFjdGl2ZQ0KCQkJCS5jaGlsZHJlbiggIi51aS1tZW51ICIgKQ0KCQkJCS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKQ0KCQkJCS5maXJzdCgpOw0KDQoJCWlmICggbmV3SXRlbSAmJiBuZXdJdGVtLmxlbmd0aCApIHsNCgkJCXRoaXMuX29wZW4oIG5ld0l0ZW0ucGFyZW50KCkgKTsNCg0KCQkJLy8gRGVsYXkgc28gRmlyZWZveCB3aWxsIG5vdCBoaWRlIGFjdGl2ZWRlc2NlbmRhbnQgY2hhbmdlIGluIGV4cGFuZGluZyBzdWJtZW51IGZyb20gQVQNCgkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuZm9jdXMoIGV2ZW50LCBuZXdJdGVtICk7DQoJCQl9KTsNCgkJfQ0KCX0sDQoNCgluZXh0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMuX21vdmUoICJuZXh0IiwgImZpcnN0IiwgZXZlbnQgKTsNCgl9LA0KDQoJcHJldmlvdXM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5fbW92ZSggInByZXYiLCAibGFzdCIsIGV2ZW50ICk7DQoJfSwNCg0KCWlzRmlyc3RJdGVtOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuYWN0aXZlICYmICF0aGlzLmFjdGl2ZS5wcmV2QWxsKCAiLnVpLW1lbnUtaXRlbSIgKS5sZW5ndGg7DQoJfSwNCg0KCWlzTGFzdEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5hY3RpdmUgJiYgIXRoaXMuYWN0aXZlLm5leHRBbGwoICIudWktbWVudS1pdGVtIiApLmxlbmd0aDsNCgl9LA0KDQoJX21vdmU6IGZ1bmN0aW9uKCBkaXJlY3Rpb24sIGZpbHRlciwgZXZlbnQgKSB7DQoJCXZhciBuZXh0Ow0KCQlpZiAoIHRoaXMuYWN0aXZlICkgew0KCQkJaWYgKCBkaXJlY3Rpb24gPT09ICJmaXJzdCIgfHwgZGlyZWN0aW9uID09PSAibGFzdCIgKSB7DQoJCQkJbmV4dCA9IHRoaXMuYWN0aXZlDQoJCQkJCVsgZGlyZWN0aW9uID09PSAiZmlyc3QiID8gInByZXZBbGwiIDogIm5leHRBbGwiIF0oICIudWktbWVudS1pdGVtIiApDQoJCQkJCS5lcSggLTEgKTsNCgkJCX0gZWxzZSB7DQoJCQkJbmV4dCA9IHRoaXMuYWN0aXZlDQoJCQkJCVsgZGlyZWN0aW9uICsgIkFsbCIgXSggIi51aS1tZW51LWl0ZW0iICkNCgkJCQkJLmVxKCAwICk7DQoJCQl9DQoJCX0NCgkJaWYgKCAhbmV4dCB8fCAhbmV4dC5sZW5ndGggfHwgIXRoaXMuYWN0aXZlICkgew0KCQkJbmV4dCA9IHRoaXMuYWN0aXZlTWVudS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKVsgZmlsdGVyIF0oKTsNCgkJfQ0KDQoJCXRoaXMuZm9jdXMoIGV2ZW50LCBuZXh0ICk7DQoJfSwNCg0KCW5leHRQYWdlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBpdGVtLCBiYXNlLCBoZWlnaHQ7DQoNCgkJaWYgKCAhdGhpcy5hY3RpdmUgKSB7DQoJCQl0aGlzLm5leHQoIGV2ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCB0aGlzLmlzTGFzdEl0ZW0oKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuX2hhc1Njcm9sbCgpICkgew0KCQkJYmFzZSA9IHRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcDsNCgkJCWhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCgkJCXRoaXMuYWN0aXZlLm5leHRBbGwoICIudWktbWVudS1pdGVtIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJaXRlbSA9ICQoIHRoaXMgKTsNCgkJCQlyZXR1cm4gaXRlbS5vZmZzZXQoKS50b3AgLSBiYXNlIC0gaGVpZ2h0IDwgMDsNCgkJCX0pOw0KDQoJCQl0aGlzLmZvY3VzKCBldmVudCwgaXRlbSApOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5mb2N1cyggZXZlbnQsIHRoaXMuYWN0aXZlTWVudS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKQ0KCQkJCVsgIXRoaXMuYWN0aXZlID8gImZpcnN0IiA6ICJsYXN0IiBdKCkgKTsNCgkJfQ0KCX0sDQoNCglwcmV2aW91c1BhZ2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGl0ZW0sIGJhc2UsIGhlaWdodDsNCgkJaWYgKCAhdGhpcy5hY3RpdmUgKSB7DQoJCQl0aGlzLm5leHQoIGV2ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCB0aGlzLmlzRmlyc3RJdGVtKCkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCB0aGlzLl9oYXNTY3JvbGwoKSApIHsNCgkJCWJhc2UgPSB0aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3A7DQoJCQloZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0KCk7DQoJCQl0aGlzLmFjdGl2ZS5wcmV2QWxsKCAiLnVpLW1lbnUtaXRlbSIgKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWl0ZW0gPSAkKCB0aGlzICk7DQoJCQkJcmV0dXJuIGl0ZW0ub2Zmc2V0KCkudG9wIC0gYmFzZSArIGhlaWdodCA+IDA7DQoJCQl9KTsNCg0KCQkJdGhpcy5mb2N1cyggZXZlbnQsIGl0ZW0gKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuZm9jdXMoIGV2ZW50LCB0aGlzLmFjdGl2ZU1lbnUuZmluZCggdGhpcy5vcHRpb25zLml0ZW1zICkuZmlyc3QoKSApOw0KCQl9DQoJfSwNCg0KCV9oYXNTY3JvbGw6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCkgPCB0aGlzLmVsZW1lbnQucHJvcCggInNjcm9sbEhlaWdodCIgKTsNCgl9LA0KDQoJc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCS8vIFRPRE86IEl0IHNob3VsZCBuZXZlciBiZSBwb3NzaWJsZSB0byBub3QgaGF2ZSBhbiBhY3RpdmUgaXRlbSBhdCB0aGlzDQoJCS8vIHBvaW50LCBidXQgdGhlIHRlc3RzIGRvbid0IHRyaWdnZXIgbW91c2VlbnRlciBiZWZvcmUgY2xpY2suDQoJCXRoaXMuYWN0aXZlID0gdGhpcy5hY3RpdmUgfHwgJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iICk7DQoJCXZhciB1aSA9IHsgaXRlbTogdGhpcy5hY3RpdmUgfTsNCgkJaWYgKCAhdGhpcy5hY3RpdmUuaGFzKCAiLnVpLW1lbnUiICkubGVuZ3RoICkgew0KCQkJdGhpcy5jb2xsYXBzZUFsbCggZXZlbnQsIHRydWUgKTsNCgkJfQ0KCQl0aGlzLl90cmlnZ2VyKCAic2VsZWN0IiwgZXZlbnQsIHVpICk7DQoJfSwNCg0KCV9maWx0ZXJNZW51SXRlbXM6IGZ1bmN0aW9uKGNoYXJhY3Rlcikgew0KCQl2YXIgZXNjYXBlZENoYXJhY3RlciA9IGNoYXJhY3Rlci5yZXBsYWNlKCAvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywgIlxcJCYiICksDQoJCQlyZWdleCA9IG5ldyBSZWdFeHAoICJeIiArIGVzY2FwZWRDaGFyYWN0ZXIsICJpIiApOw0KDQoJCXJldHVybiB0aGlzLmFjdGl2ZU1lbnUNCgkJCS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKQ0KDQoJCQkvLyBPbmx5IG1hdGNoIG9uIGl0ZW1zLCBub3QgZGl2aWRlcnMgb3Igb3RoZXIgY29udGVudCAoIzEwNTcxKQ0KCQkJLmZpbHRlciggIi51aS1tZW51LWl0ZW0iICkNCgkJCS5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuIHJlZ2V4LnRlc3QoICQudHJpbSggJCggdGhpcyApLnRleHQoKSApICk7DQoJCQl9KTsNCgl9DQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBBdXRvY29tcGxldGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9hdXRvY29tcGxldGUvDQogKi8NCg0KDQokLndpZGdldCggInVpLmF1dG9jb21wbGV0ZSIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCglkZWZhdWx0RWxlbWVudDogIjxpbnB1dD4iLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86IG51bGwsDQoJCWF1dG9Gb2N1czogZmFsc2UsDQoJCWRlbGF5OiAzMDAsDQoJCW1pbkxlbmd0aDogMSwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAibGVmdCB0b3AiLA0KCQkJYXQ6ICJsZWZ0IGJvdHRvbSIsDQoJCQljb2xsaXNpb246ICJub25lIg0KCQl9LA0KCQlzb3VyY2U6IG51bGwsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWNoYW5nZTogbnVsbCwNCgkJY2xvc2U6IG51bGwsDQoJCWZvY3VzOiBudWxsLA0KCQlvcGVuOiBudWxsLA0KCQlyZXNwb25zZTogbnVsbCwNCgkJc2VhcmNoOiBudWxsLA0KCQlzZWxlY3Q6IG51bGwNCgl9LA0KDQoJcmVxdWVzdEluZGV4OiAwLA0KCXBlbmRpbmc6IDAsDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJLy8gU29tZSBicm93c2VycyBvbmx5IHJlcGVhdCBrZXlkb3duIGV2ZW50cywgbm90IGtleXByZXNzIGV2ZW50cywNCgkJLy8gc28gd2UgdXNlIHRoZSBzdXBwcmVzc0tleVByZXNzIGZsYWcgdG8gZGV0ZXJtaW5lIGlmIHdlJ3ZlIGFscmVhZHkNCgkJLy8gaGFuZGxlZCB0aGUga2V5ZG93biBldmVudC4gIzcyNjkNCgkJLy8gVW5mb3J0dW5hdGVseSB0aGUgY29kZSBmb3IgJiBpbiBrZXlwcmVzcyBpcyB0aGUgc2FtZSBhcyB0aGUgdXAgYXJyb3csDQoJCS8vIHNvIHdlIHVzZSB0aGUgc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCBmbGFnIHRvIGF2b2lkIGhhbmRsaW5nIGtleXByZXNzDQoJCS8vIGV2ZW50cyB3aGVuIHdlIGtub3cgdGhlIGtleWRvd24gZXZlbnQgd2FzIHVzZWQgdG8gbW9kaWZ5IHRoZQ0KCQkvLyBzZWFyY2ggdGVybS4gIzc3OTkNCgkJdmFyIHN1cHByZXNzS2V5UHJlc3MsIHN1cHByZXNzS2V5UHJlc3NSZXBlYXQsIHN1cHByZXNzSW5wdXQsDQoJCQlub2RlTmFtZSA9IHRoaXMuZWxlbWVudFsgMCBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksDQoJCQlpc1RleHRhcmVhID0gbm9kZU5hbWUgPT09ICJ0ZXh0YXJlYSIsDQoJCQlpc0lucHV0ID0gbm9kZU5hbWUgPT09ICJpbnB1dCI7DQoNCgkJdGhpcy5pc011bHRpTGluZSA9DQoJCQkvLyBUZXh0YXJlYXMgYXJlIGFsd2F5cyBtdWx0aS1saW5lDQoJCQlpc1RleHRhcmVhID8gdHJ1ZSA6DQoJCQkvLyBJbnB1dHMgYXJlIGFsd2F5cyBzaW5nbGUtbGluZSwgZXZlbiBpZiBpbnNpZGUgYSBjb250ZW50RWRpdGFibGUgZWxlbWVudA0KCQkJLy8gSUUgYWxzbyB0cmVhdHMgaW5wdXRzIGFzIGNvbnRlbnRFZGl0YWJsZQ0KCQkJaXNJbnB1dCA/IGZhbHNlIDoNCgkJCS8vIEFsbCBvdGhlciBlbGVtZW50IHR5cGVzIGFyZSBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIgb3Igbm90IHRoZXkncmUgY29udGVudEVkaXRhYmxlDQoJCQl0aGlzLmVsZW1lbnQucHJvcCggImlzQ29udGVudEVkaXRhYmxlIiApOw0KDQoJCXRoaXMudmFsdWVNZXRob2QgPSB0aGlzLmVsZW1lbnRbIGlzVGV4dGFyZWEgfHwgaXNJbnB1dCA/ICJ2YWwiIDogInRleHQiIF07DQoJCXRoaXMuaXNOZXdNZW51ID0gdHJ1ZTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5hZGRDbGFzcyggInVpLWF1dG9jb21wbGV0ZS1pbnB1dCIgKQ0KCQkJLmF0dHIoICJhdXRvY29tcGxldGUiLCAib2ZmIiApOw0KDQoJCXRoaXMuX29uKCB0aGlzLmVsZW1lbnQsIHsNCgkJCWtleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIHRoaXMuZWxlbWVudC5wcm9wKCAicmVhZE9ubHkiICkgKSB7DQoJCQkJCXN1cHByZXNzS2V5UHJlc3MgPSB0cnVlOw0KCQkJCQlzdXBwcmVzc0lucHV0ID0gdHJ1ZTsNCgkJCQkJc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCA9IHRydWU7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQlzdXBwcmVzc0tleVByZXNzID0gZmFsc2U7DQoJCQkJc3VwcHJlc3NJbnB1dCA9IGZhbHNlOw0KCQkJCXN1cHByZXNzS2V5UHJlc3NSZXBlYXQgPSBmYWxzZTsNCgkJCQl2YXIga2V5Q29kZSA9ICQudWkua2V5Q29kZTsNCgkJCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJCWNhc2Uga2V5Q29kZS5QQUdFX1VQOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fbW92ZSggInByZXZpb3VzUGFnZSIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5QQUdFX0RPV046DQoJCQkJCXN1cHByZXNzS2V5UHJlc3MgPSB0cnVlOw0KCQkJCQl0aGlzLl9tb3ZlKCAibmV4dFBhZ2UiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuVVA6DQoJCQkJCXN1cHByZXNzS2V5UHJlc3MgPSB0cnVlOw0KCQkJCQl0aGlzLl9rZXlFdmVudCggInByZXZpb3VzIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQkJCXN1cHByZXNzS2V5UHJlc3MgPSB0cnVlOw0KCQkJCQl0aGlzLl9rZXlFdmVudCggIm5leHQiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuRU5URVI6DQoJCQkJCS8vIHdoZW4gbWVudSBpcyBvcGVuIGFuZCBoYXMgZm9jdXMNCgkJCQkJaWYgKCB0aGlzLm1lbnUuYWN0aXZlICkgew0KCQkJCQkJLy8gIzYwNTUgLSBPcGVyYSBzdGlsbCBhbGxvd3MgdGhlIGtleXByZXNzIHRvIG9jY3VyDQoJCQkJCQkvLyB3aGljaCBjYXVzZXMgZm9ybXMgdG8gc3VibWl0DQoJCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCQl0aGlzLm1lbnUuc2VsZWN0KCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5UQUI6DQoJCQkJCWlmICggdGhpcy5tZW51LmFjdGl2ZSApIHsNCgkJCQkJCXRoaXMubWVudS5zZWxlY3QoIGV2ZW50ICk7DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkVTQ0FQRToNCgkJCQkJaWYgKCB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJCQkJaWYgKCAhdGhpcy5pc011bHRpTGluZSApIHsNCgkJCQkJCQl0aGlzLl92YWx1ZSggdGhpcy50ZXJtICk7DQoJCQkJCQl9DQoJCQkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJCQkJLy8gRGlmZmVyZW50IGJyb3dzZXJzIGhhdmUgZGlmZmVyZW50IGRlZmF1bHQgYmVoYXZpb3IgZm9yIGVzY2FwZQ0KCQkJCQkJLy8gU2luZ2xlIHByZXNzIGNhbiBtZWFuIHVuZG8gb3IgY2xlYXINCgkJCQkJCS8vIERvdWJsZSBwcmVzcyBpbiBJRSBtZWFucyBjbGVhciB0aGUgd2hvbGUgZm9ybQ0KCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQlkZWZhdWx0Og0KCQkJCQlzdXBwcmVzc0tleVByZXNzUmVwZWF0ID0gdHJ1ZTsNCgkJCQkJLy8gc2VhcmNoIHRpbWVvdXQgc2hvdWxkIGJlIHRyaWdnZXJlZCBiZWZvcmUgdGhlIGlucHV0IHZhbHVlIGlzIGNoYW5nZWQNCgkJCQkJdGhpcy5fc2VhcmNoVGltZW91dCggZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfSwNCgkJCWtleXByZXNzOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCBzdXBwcmVzc0tleVByZXNzICkgew0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gZmFsc2U7DQoJCQkJCWlmICggIXRoaXMuaXNNdWx0aUxpbmUgfHwgdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0NCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQlpZiAoIHN1cHByZXNzS2V5UHJlc3NSZXBlYXQgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQkvLyByZXBsaWNhdGUgc29tZSBrZXkgaGFuZGxlcnMgdG8gYWxsb3cgdGhlbSB0byByZXBlYXQgaW4gRmlyZWZveCBhbmQgT3BlcmENCgkJCQl2YXIga2V5Q29kZSA9ICQudWkua2V5Q29kZTsNCgkJCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJCWNhc2Uga2V5Q29kZS5QQUdFX1VQOg0KCQkJCQl0aGlzLl9tb3ZlKCAicHJldmlvdXNQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlBBR0VfRE9XTjoNCgkJCQkJdGhpcy5fbW92ZSggIm5leHRQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCQl0aGlzLl9rZXlFdmVudCggInByZXZpb3VzIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQkJCXRoaXMuX2tleUV2ZW50KCAibmV4dCIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCX0sDQoJCQlpbnB1dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggc3VwcHJlc3NJbnB1dCApIHsNCgkJCQkJc3VwcHJlc3NJbnB1dCA9IGZhbHNlOw0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXRoaXMuX3NlYXJjaFRpbWVvdXQoIGV2ZW50ICk7DQoJCQl9LA0KCQkJZm9jdXM6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDsNCgkJCQl0aGlzLnByZXZpb3VzID0gdGhpcy5fdmFsdWUoKTsNCgkJCX0sDQoJCQlibHVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLmNhbmNlbEJsdXIgKSB7DQoJCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQljbGVhclRpbWVvdXQoIHRoaXMuc2VhcmNoaW5nICk7DQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQl0aGlzLl9jaGFuZ2UoIGV2ZW50ICk7DQoJCQl9DQoJCX0pOw0KDQoJCXRoaXMuX2luaXRTb3VyY2UoKTsNCgkJdGhpcy5tZW51ID0gJCggIjx1bD4iICkNCgkJCS5hZGRDbGFzcyggInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICkNCgkJCS5tZW51KHsNCgkJCQkvLyBkaXNhYmxlIEFSSUEgc3VwcG9ydCwgdGhlIGxpdmUgcmVnaW9uIHRha2VzIGNhcmUgb2YgdGhhdA0KCQkJCXJvbGU6IG51bGwNCgkJCX0pDQoJCQkuaGlkZSgpDQoJCQkubWVudSggImluc3RhbmNlIiApOw0KDQoJCXRoaXMuX29uKCB0aGlzLm1lbnUuZWxlbWVudCwgew0KCQkJbW91c2Vkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJLy8gcHJldmVudCBtb3ZpbmcgZm9jdXMgb3V0IG9mIHRoZSB0ZXh0IGZpZWxkDQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KCQkJCS8vIElFIGRvZXNuJ3QgcHJldmVudCBtb3ZpbmcgZm9jdXMgZXZlbiB3aXRoIGV2ZW50LnByZXZlbnREZWZhdWx0KCkNCgkJCQkvLyBzbyB3ZSBzZXQgYSBmbGFnIHRvIGtub3cgd2hlbiB3ZSBzaG91bGQgaWdub3JlIHRoZSBibHVyIGV2ZW50DQoJCQkJdGhpcy5jYW5jZWxCbHVyID0gdHJ1ZTsNCgkJCQl0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCQkJZGVsZXRlIHRoaXMuY2FuY2VsQmx1cjsNCgkJCQl9KTsNCg0KCQkJCS8vIGNsaWNraW5nIG9uIHRoZSBzY3JvbGxiYXIgY2F1c2VzIGZvY3VzIHRvIHNoaWZ0IHRvIHRoZSBib2R5DQoJCQkJLy8gYnV0IHdlIGNhbid0IGRldGVjdCBhIG1vdXNldXAgb3IgYSBjbGljayBpbW1lZGlhdGVseSBhZnRlcndhcmQNCgkJCQkvLyBzbyB3ZSBoYXZlIHRvIHRyYWNrIHRoZSBuZXh0IG1vdXNlZG93biBhbmQgY2xvc2UgdGhlIG1lbnUgaWYNCgkJCQkvLyB0aGUgdXNlciBjbGlja3Mgc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGF1dG9jb21wbGV0ZQ0KCQkJCXZhciBtZW51RWxlbWVudCA9IHRoaXMubWVudS5lbGVtZW50WyAwIF07DQoJCQkJaWYgKCAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iICkubGVuZ3RoICkgew0KCQkJCQl0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCQkJCXZhciB0aGF0ID0gdGhpczsNCgkJCQkJCXRoaXMuZG9jdW1lbnQub25lKCAibW91c2Vkb3duIiwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQkJCWlmICggZXZlbnQudGFyZ2V0ICE9PSB0aGF0LmVsZW1lbnRbIDAgXSAmJg0KCQkJCQkJCQkJZXZlbnQudGFyZ2V0ICE9PSBtZW51RWxlbWVudCAmJg0KCQkJCQkJCQkJISQuY29udGFpbnMoIG1lbnVFbGVtZW50LCBldmVudC50YXJnZXQgKSApIHsNCgkJCQkJCQkJdGhhdC5jbG9zZSgpOw0KCQkJCQkJCX0NCgkJCQkJCX0pOw0KCQkJCQl9KTsNCgkJCQl9DQoJCQl9LA0KCQkJbWVudWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBsYWJlbCwgaXRlbTsNCgkJCQkvLyBzdXBwb3J0OiBGaXJlZm94DQoJCQkJLy8gUHJldmVudCBhY2NpZGVudGFsIGFjdGl2YXRpb24gb2YgbWVudSBpdGVtcyBpbiBGaXJlZm94ICgjNzAyNCAjOTExOCkNCgkJCQlpZiAoIHRoaXMuaXNOZXdNZW51ICkgew0KCQkJCQl0aGlzLmlzTmV3TWVudSA9IGZhbHNlOw0KCQkJCQlpZiAoIGV2ZW50Lm9yaWdpbmFsRXZlbnQgJiYgL15tb3VzZS8udGVzdCggZXZlbnQub3JpZ2luYWxFdmVudC50eXBlICkgKSB7DQoJCQkJCQl0aGlzLm1lbnUuYmx1cigpOw0KDQoJCQkJCQl0aGlzLmRvY3VtZW50Lm9uZSggIm1vdXNlbW92ZSIsIGZ1bmN0aW9uKCkgew0KCQkJCQkJCSQoIGV2ZW50LnRhcmdldCApLnRyaWdnZXIoIGV2ZW50Lm9yaWdpbmFsRXZlbnQgKTsNCgkJCQkJCX0pOw0KDQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlpdGVtID0gdWkuaXRlbS5kYXRhKCAidWktYXV0b2NvbXBsZXRlLWl0ZW0iICk7DQoJCQkJaWYgKCBmYWxzZSAhPT0gdGhpcy5fdHJpZ2dlciggImZvY3VzIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICkgKSB7DQoJCQkJCS8vIHVzZSB2YWx1ZSB0byBtYXRjaCB3aGF0IHdpbGwgZW5kIHVwIGluIHRoZSBpbnB1dCwgaWYgaXQgd2FzIGEga2V5IGV2ZW50DQoJCQkJCWlmICggZXZlbnQub3JpZ2luYWxFdmVudCAmJiAvXmtleS8udGVzdCggZXZlbnQub3JpZ2luYWxFdmVudC50eXBlICkgKSB7DQoJCQkJCQl0aGlzLl92YWx1ZSggaXRlbS52YWx1ZSApOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJLy8gQW5ub3VuY2UgdGhlIHZhbHVlIGluIHRoZSBsaXZlUmVnaW9uDQoJCQkJbGFiZWwgPSB1aS5pdGVtLmF0dHIoICJhcmlhLWxhYmVsIiApIHx8IGl0ZW0udmFsdWU7DQoJCQkJaWYgKCBsYWJlbCAmJiAkLnRyaW0oIGxhYmVsICkubGVuZ3RoICkgew0KCQkJCQl0aGlzLmxpdmVSZWdpb24uY2hpbGRyZW4oKS5oaWRlKCk7DQoJCQkJCSQoICI8ZGl2PiIgKS50ZXh0KCBsYWJlbCApLmFwcGVuZFRvKCB0aGlzLmxpdmVSZWdpb24gKTsNCgkJCQl9DQoJCQl9LA0KCQkJbWVudXNlbGVjdDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQl2YXIgaXRlbSA9IHVpLml0ZW0uZGF0YSggInVpLWF1dG9jb21wbGV0ZS1pdGVtIiApLA0KCQkJCQlwcmV2aW91cyA9IHRoaXMucHJldmlvdXM7DQoNCgkJCQkvLyBvbmx5IHRyaWdnZXIgd2hlbiBmb2N1cyB3YXMgbG9zdCAoY2xpY2sgb24gbWVudSkNCgkJCQlpZiAoIHRoaXMuZWxlbWVudFsgMCBdICE9PSB0aGlzLmRvY3VtZW50WyAwIF0uYWN0aXZlRWxlbWVudCApIHsNCgkJCQkJdGhpcy5lbGVtZW50LmZvY3VzKCk7DQoJCQkJCXRoaXMucHJldmlvdXMgPSBwcmV2aW91czsNCgkJCQkJLy8gIzYxMDkgLSBJRSB0cmlnZ2VycyB0d28gZm9jdXMgZXZlbnRzIGFuZCB0aGUgc2Vjb25kDQoJCQkJCS8vIGlzIGFzeW5jaHJvbm91cywgc28gd2UgbmVlZCB0byByZXNldCB0aGUgcHJldmlvdXMNCgkJCQkJLy8gdGVybSBzeW5jaHJvbm91c2x5IGFuZCBhc3luY2hyb25vdXNseSA6LSgNCgkJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCQl0aGlzLnByZXZpb3VzID0gcHJldmlvdXM7DQoJCQkJCQl0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07DQoJCQkJCX0pOw0KCQkJCX0NCg0KCQkJCWlmICggZmFsc2UgIT09IHRoaXMuX3RyaWdnZXIoICJzZWxlY3QiLCBldmVudCwgeyBpdGVtOiBpdGVtIH0gKSApIHsNCgkJCQkJdGhpcy5fdmFsdWUoIGl0ZW0udmFsdWUgKTsNCgkJCQl9DQoJCQkJLy8gcmVzZXQgdGhlIHRlcm0gYWZ0ZXIgdGhlIHNlbGVjdCBldmVudA0KCQkJCS8vIHRoaXMgYWxsb3dzIGN1c3RvbSBzZWxlY3QgaGFuZGxpbmcgdG8gd29yayBwcm9wZXJseQ0KCQkJCXRoaXMudGVybSA9IHRoaXMuX3ZhbHVlKCk7DQoNCgkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJCXRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTsNCgkJCX0NCgkJfSk7DQoNCgkJdGhpcy5saXZlUmVnaW9uID0gJCggIjxzcGFuPiIsIHsNCgkJCQlyb2xlOiAic3RhdHVzIiwNCgkJCQkiYXJpYS1saXZlIjogImFzc2VydGl2ZSIsDQoJCQkJImFyaWEtcmVsZXZhbnQiOiAiYWRkaXRpb25zIg0KCQkJfSkNCgkJCS5hZGRDbGFzcyggInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLmRvY3VtZW50WyAwIF0uYm9keSApOw0KDQoJCS8vIHR1cm5pbmcgb2ZmIGF1dG9jb21wbGV0ZSBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tIHJlbWVtYmVyaW5nIHRoZQ0KCQkvLyB2YWx1ZSB3aGVuIG5hdmlnYXRpbmcgdGhyb3VnaCBoaXN0b3J5LCBzbyB3ZSByZS1lbmFibGUgYXV0b2NvbXBsZXRlDQoJCS8vIGlmIHRoZSBwYWdlIGlzIHVubG9hZGVkIGJlZm9yZSB0aGUgd2lkZ2V0IGlzIGRlc3Ryb3llZC4gIzc3OTANCgkJdGhpcy5fb24oIHRoaXMud2luZG93LCB7DQoJCQliZWZvcmV1bmxvYWQ6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCAiYXV0b2NvbXBsZXRlIiApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQljbGVhclRpbWVvdXQoIHRoaXMuc2VhcmNoaW5nICk7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZUNsYXNzKCAidWktYXV0b2NvbXBsZXRlLWlucHV0IiApDQoJCQkucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKTsNCgkJdGhpcy5tZW51LmVsZW1lbnQucmVtb3ZlKCk7DQoJCXRoaXMubGl2ZVJlZ2lvbi5yZW1vdmUoKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJCWlmICgga2V5ID09PSAic291cmNlIiApIHsNCgkJCXRoaXMuX2luaXRTb3VyY2UoKTsNCgkJfQ0KCQlpZiAoIGtleSA9PT0gImFwcGVuZFRvIiApIHsNCgkJCXRoaXMubWVudS5lbGVtZW50LmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoJCX0NCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgJiYgdmFsdWUgJiYgdGhpcy54aHIgKSB7DQoJCQl0aGlzLnhoci5hYm9ydCgpOw0KCQl9DQoJfSwNCg0KCV9hcHBlbmRUbzogZnVuY3Rpb24oKSB7DQoJCXZhciBlbGVtZW50ID0gdGhpcy5vcHRpb25zLmFwcGVuZFRvOw0KDQoJCWlmICggZWxlbWVudCApIHsNCgkJCWVsZW1lbnQgPSBlbGVtZW50LmpxdWVyeSB8fCBlbGVtZW50Lm5vZGVUeXBlID8NCgkJCQkkKCBlbGVtZW50ICkgOg0KCQkJCXRoaXMuZG9jdW1lbnQuZmluZCggZWxlbWVudCApLmVxKCAwICk7DQoJCX0NCg0KCQlpZiAoICFlbGVtZW50IHx8ICFlbGVtZW50WyAwIF0gKSB7DQoJCQllbGVtZW50ID0gdGhpcy5lbGVtZW50LmNsb3Nlc3QoICIudWktZnJvbnQiICk7DQoJCX0NCg0KCQlpZiAoICFlbGVtZW50Lmxlbmd0aCApIHsNCgkJCWVsZW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF0uYm9keTsNCgkJfQ0KDQoJCXJldHVybiBlbGVtZW50Ow0KCX0sDQoNCglfaW5pdFNvdXJjZTogZnVuY3Rpb24oKSB7DQoJCXZhciBhcnJheSwgdXJsLA0KCQkJdGhhdCA9IHRoaXM7DQoJCWlmICggJC5pc0FycmF5KCB0aGlzLm9wdGlvbnMuc291cmNlICkgKSB7DQoJCQlhcnJheSA9IHRoaXMub3B0aW9ucy5zb3VyY2U7DQoJCQl0aGlzLnNvdXJjZSA9IGZ1bmN0aW9uKCByZXF1ZXN0LCByZXNwb25zZSApIHsNCgkJCQlyZXNwb25zZSggJC51aS5hdXRvY29tcGxldGUuZmlsdGVyKCBhcnJheSwgcmVxdWVzdC50ZXJtICkgKTsNCgkJCX07DQoJCX0gZWxzZSBpZiAoIHR5cGVvZiB0aGlzLm9wdGlvbnMuc291cmNlID09PSAic3RyaW5nIiApIHsNCgkJCXVybCA9IHRoaXMub3B0aW9ucy5zb3VyY2U7DQoJCQl0aGlzLnNvdXJjZSA9IGZ1bmN0aW9uKCByZXF1ZXN0LCByZXNwb25zZSApIHsNCgkJCQlpZiAoIHRoYXQueGhyICkgew0KCQkJCQl0aGF0Lnhoci5hYm9ydCgpOw0KCQkJCX0NCgkJCQl0aGF0LnhociA9ICQuYWpheCh7DQoJCQkJCXVybDogdXJsLA0KCQkJCQlkYXRhOiByZXF1ZXN0LA0KCQkJCQlkYXRhVHlwZTogImpzb24iLA0KCQkJCQlzdWNjZXNzOiBmdW5jdGlvbiggZGF0YSApIHsNCgkJCQkJCXJlc3BvbnNlKCBkYXRhICk7DQoJCQkJCX0sDQoJCQkJCWVycm9yOiBmdW5jdGlvbigpIHsNCgkJCQkJCXJlc3BvbnNlKFtdKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuc291cmNlID0gdGhpcy5vcHRpb25zLnNvdXJjZTsNCgkJfQ0KCX0sDQoNCglfc2VhcmNoVGltZW91dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQljbGVhclRpbWVvdXQoIHRoaXMuc2VhcmNoaW5nICk7DQoJCXRoaXMuc2VhcmNoaW5nID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoNCgkJCS8vIFNlYXJjaCBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQsIG9yIGlmIHRoZSB1c2VyIHJldHlwZXMgdGhlIHNhbWUgdmFsdWUgKHNlZSAjNzQzNCkNCgkJCXZhciBlcXVhbFZhbHVlcyA9IHRoaXMudGVybSA9PT0gdGhpcy5fdmFsdWUoKSwNCgkJCQltZW51VmlzaWJsZSA9IHRoaXMubWVudS5lbGVtZW50LmlzKCAiOnZpc2libGUiICksDQoJCQkJbW9kaWZpZXJLZXkgPSBldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LnNoaWZ0S2V5Ow0KDQoJCQlpZiAoICFlcXVhbFZhbHVlcyB8fCAoIGVxdWFsVmFsdWVzICYmICFtZW51VmlzaWJsZSAmJiAhbW9kaWZpZXJLZXkgKSApIHsNCgkJCQl0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7DQoJCQkJdGhpcy5zZWFyY2goIG51bGwsIGV2ZW50ICk7DQoJCQl9DQoJCX0sIHRoaXMub3B0aW9ucy5kZWxheSApOw0KCX0sDQoNCglzZWFyY2g6IGZ1bmN0aW9uKCB2YWx1ZSwgZXZlbnQgKSB7DQoJCXZhbHVlID0gdmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogdGhpcy5fdmFsdWUoKTsNCg0KCQkvLyBhbHdheXMgc2F2ZSB0aGUgYWN0dWFsIHZhbHVlLCBub3QgdGhlIG9uZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQNCgkJdGhpcy50ZXJtID0gdGhpcy5fdmFsdWUoKTsNCg0KCQlpZiAoIHZhbHVlLmxlbmd0aCA8IHRoaXMub3B0aW9ucy5taW5MZW5ndGggKSB7DQoJCQlyZXR1cm4gdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5fdHJpZ2dlciggInNlYXJjaCIsIGV2ZW50ICkgPT09IGZhbHNlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXMuX3NlYXJjaCggdmFsdWUgKTsNCgl9LA0KDQoJX3NlYXJjaDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQl0aGlzLnBlbmRpbmcrKzsNCgkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCAidWktYXV0b2NvbXBsZXRlLWxvYWRpbmciICk7DQoJCXRoaXMuY2FuY2VsU2VhcmNoID0gZmFsc2U7DQoNCgkJdGhpcy5zb3VyY2UoIHsgdGVybTogdmFsdWUgfSwgdGhpcy5fcmVzcG9uc2UoKSApOw0KCX0sDQoNCglfcmVzcG9uc2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaW5kZXggPSArK3RoaXMucmVxdWVzdEluZGV4Ow0KDQoJCXJldHVybiAkLnByb3h5KGZ1bmN0aW9uKCBjb250ZW50ICkgew0KCQkJaWYgKCBpbmRleCA9PT0gdGhpcy5yZXF1ZXN0SW5kZXggKSB7DQoJCQkJdGhpcy5fX3Jlc3BvbnNlKCBjb250ZW50ICk7DQoJCQl9DQoNCgkJCXRoaXMucGVuZGluZy0tOw0KCQkJaWYgKCAhdGhpcy5wZW5kaW5nICkgew0KCQkJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiApOw0KCQkJfQ0KCQl9LCB0aGlzICk7DQoJfSwNCg0KCV9fcmVzcG9uc2U6IGZ1bmN0aW9uKCBjb250ZW50ICkgew0KCQlpZiAoIGNvbnRlbnQgKSB7DQoJCQljb250ZW50ID0gdGhpcy5fbm9ybWFsaXplKCBjb250ZW50ICk7DQoJCX0NCgkJdGhpcy5fdHJpZ2dlciggInJlc3BvbnNlIiwgbnVsbCwgeyBjb250ZW50OiBjb250ZW50IH0gKTsNCgkJaWYgKCAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggJiYgIXRoaXMuY2FuY2VsU2VhcmNoICkgew0KCQkJdGhpcy5fc3VnZ2VzdCggY29udGVudCApOw0KCQkJdGhpcy5fdHJpZ2dlciggIm9wZW4iICk7DQoJCX0gZWxzZSB7DQoJCQkvLyB1c2UgLl9jbG9zZSgpIGluc3RlYWQgb2YgLmNsb3NlKCkgc28gd2UgZG9uJ3QgY2FuY2VsIGZ1dHVyZSBzZWFyY2hlcw0KCQkJdGhpcy5fY2xvc2UoKTsNCgkJfQ0KCX0sDQoNCgljbG9zZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLmNhbmNlbFNlYXJjaCA9IHRydWU7DQoJCXRoaXMuX2Nsb3NlKCBldmVudCApOw0KCX0sDQoNCglfY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJdGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpOw0KCQkJdGhpcy5tZW51LmJsdXIoKTsNCgkJCXRoaXMuaXNOZXdNZW51ID0gdHJ1ZTsNCgkJCXRoaXMuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50ICk7DQoJCX0NCgl9LA0KDQoJX2NoYW5nZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIHRoaXMucHJldmlvdXMgIT09IHRoaXMuX3ZhbHVlKCkgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHsgaXRlbTogdGhpcy5zZWxlY3RlZEl0ZW0gfSApOw0KCQl9DQoJfSwNCg0KCV9ub3JtYWxpemU6IGZ1bmN0aW9uKCBpdGVtcyApIHsNCgkJLy8gYXNzdW1lIGFsbCBpdGVtcyBoYXZlIHRoZSByaWdodCBmb3JtYXQgd2hlbiB0aGUgZmlyc3QgaXRlbSBpcyBjb21wbGV0ZQ0KCQlpZiAoIGl0ZW1zLmxlbmd0aCAmJiBpdGVtc1sgMCBdLmxhYmVsICYmIGl0ZW1zWyAwIF0udmFsdWUgKSB7DQoJCQlyZXR1cm4gaXRlbXM7DQoJCX0NCgkJcmV0dXJuICQubWFwKCBpdGVtcywgZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCQlpZiAoIHR5cGVvZiBpdGVtID09PSAic3RyaW5nIiApIHsNCgkJCQlyZXR1cm4gew0KCQkJCQlsYWJlbDogaXRlbSwNCgkJCQkJdmFsdWU6IGl0ZW0NCgkJCQl9Ow0KCQkJfQ0KCQkJcmV0dXJuICQuZXh0ZW5kKCB7fSwgaXRlbSwgew0KCQkJCWxhYmVsOiBpdGVtLmxhYmVsIHx8IGl0ZW0udmFsdWUsDQoJCQkJdmFsdWU6IGl0ZW0udmFsdWUgfHwgaXRlbS5sYWJlbA0KCQkJfSk7DQoJCX0pOw0KCX0sDQoNCglfc3VnZ2VzdDogZnVuY3Rpb24oIGl0ZW1zICkgew0KCQl2YXIgdWwgPSB0aGlzLm1lbnUuZWxlbWVudC5lbXB0eSgpOw0KCQl0aGlzLl9yZW5kZXJNZW51KCB1bCwgaXRlbXMgKTsNCgkJdGhpcy5pc05ld01lbnUgPSB0cnVlOw0KCQl0aGlzLm1lbnUucmVmcmVzaCgpOw0KDQoJCS8vIHNpemUgYW5kIHBvc2l0aW9uIG1lbnUNCgkJdWwuc2hvdygpOw0KCQl0aGlzLl9yZXNpemVNZW51KCk7DQoJCXVsLnBvc2l0aW9uKCAkLmV4dGVuZCh7DQoJCQlvZjogdGhpcy5lbGVtZW50DQoJCX0sIHRoaXMub3B0aW9ucy5wb3NpdGlvbiApICk7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzICkgew0KCQkJdGhpcy5tZW51Lm5leHQoKTsNCgkJfQ0KCX0sDQoNCglfcmVzaXplTWVudTogZnVuY3Rpb24oKSB7DQoJCXZhciB1bCA9IHRoaXMubWVudS5lbGVtZW50Ow0KCQl1bC5vdXRlcldpZHRoKCBNYXRoLm1heCgNCgkJCS8vIEZpcmVmb3ggd3JhcHMgbG9uZyB0ZXh0IChwb3NzaWJseSBhIHJvdW5kaW5nIGJ1ZykNCgkJCS8vIHNvIHdlIGFkZCAxcHggdG8gYXZvaWQgdGhlIHdyYXBwaW5nICgjNzUxMykNCgkJCXVsLndpZHRoKCAiIiApLm91dGVyV2lkdGgoKSArIDEsDQoJCQl0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpDQoJCSkgKTsNCgl9LA0KDQoJX3JlbmRlck1lbnU6IGZ1bmN0aW9uKCB1bCwgaXRlbXMgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJJC5lYWNoKCBpdGVtcywgZnVuY3Rpb24oIGluZGV4LCBpdGVtICkgew0KCQkJdGhhdC5fcmVuZGVySXRlbURhdGEoIHVsLCBpdGVtICk7DQoJCX0pOw0KCX0sDQoNCglfcmVuZGVySXRlbURhdGE6IGZ1bmN0aW9uKCB1bCwgaXRlbSApIHsNCgkJcmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oIHVsLCBpdGVtICkuZGF0YSggInVpLWF1dG9jb21wbGV0ZS1pdGVtIiwgaXRlbSApOw0KCX0sDQoNCglfcmVuZGVySXRlbTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQlyZXR1cm4gJCggIjxsaT4iICkudGV4dCggaXRlbS5sYWJlbCApLmFwcGVuZFRvKCB1bCApOw0KCX0sDQoNCglfbW92ZTogZnVuY3Rpb24oIGRpcmVjdGlvbiwgZXZlbnQgKSB7DQoJCWlmICggIXRoaXMubWVudS5lbGVtZW50LmlzKCAiOnZpc2libGUiICkgKSB7DQoJCQl0aGlzLnNlYXJjaCggbnVsbCwgZXZlbnQgKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMubWVudS5pc0ZpcnN0SXRlbSgpICYmIC9ecHJldmlvdXMvLnRlc3QoIGRpcmVjdGlvbiApIHx8DQoJCQkJdGhpcy5tZW51LmlzTGFzdEl0ZW0oKSAmJiAvXm5leHQvLnRlc3QoIGRpcmVjdGlvbiApICkgew0KDQoJCQlpZiAoICF0aGlzLmlzTXVsdGlMaW5lICkgew0KCQkJCXRoaXMuX3ZhbHVlKCB0aGlzLnRlcm0gKTsNCgkJCX0NCg0KCQkJdGhpcy5tZW51LmJsdXIoKTsNCgkJCXJldHVybjsNCgkJfQ0KCQl0aGlzLm1lbnVbIGRpcmVjdGlvbiBdKCBldmVudCApOw0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5tZW51LmVsZW1lbnQ7DQoJfSwNCg0KCV92YWx1ZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLnZhbHVlTWV0aG9kLmFwcGx5KCB0aGlzLmVsZW1lbnQsIGFyZ3VtZW50cyApOw0KCX0sDQoNCglfa2V5RXZlbnQ6IGZ1bmN0aW9uKCBrZXlFdmVudCwgZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuaXNNdWx0aUxpbmUgfHwgdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCXRoaXMuX21vdmUoIGtleUV2ZW50LCBldmVudCApOw0KDQoJCQkvLyBwcmV2ZW50cyBtb3ZpbmcgY3Vyc29yIHRvIGJlZ2lubmluZy9lbmQgb2YgdGhlIHRleHQgZmllbGQgaW4gc29tZSBicm93c2Vycw0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KCX0NCn0pOw0KDQokLmV4dGVuZCggJC51aS5hdXRvY29tcGxldGUsIHsNCgllc2NhcGVSZWdleDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQlyZXR1cm4gdmFsdWUucmVwbGFjZSggL1tcLVxbXF17fSgpKis/LixcXFxeJHwjXHNdL2csICJcXCQmIiApOw0KCX0sDQoJZmlsdGVyOiBmdW5jdGlvbiggYXJyYXksIHRlcm0gKSB7DQoJCXZhciBtYXRjaGVyID0gbmV3IFJlZ0V4cCggJC51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoIHRlcm0gKSwgImkiICk7DQoJCXJldHVybiAkLmdyZXAoIGFycmF5LCBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCQlyZXR1cm4gbWF0Y2hlci50ZXN0KCB2YWx1ZS5sYWJlbCB8fCB2YWx1ZS52YWx1ZSB8fCB2YWx1ZSApOw0KCQl9KTsNCgl9DQp9KTsNCg0KLy8gbGl2ZSByZWdpb24gZXh0ZW5zaW9uLCBhZGRpbmcgYSBgbWVzc2FnZXNgIG9wdGlvbg0KLy8gTk9URTogVGhpcyBpcyBhbiBleHBlcmltZW50YWwgQVBJLiBXZSBhcmUgc3RpbGwgaW52ZXN0aWdhdGluZw0KLy8gYSBmdWxsIHNvbHV0aW9uIGZvciBzdHJpbmcgbWFuaXB1bGF0aW9uIGFuZCBpbnRlcm5hdGlvbmFsaXphdGlvbi4NCiQud2lkZ2V0KCAidWkuYXV0b2NvbXBsZXRlIiwgJC51aS5hdXRvY29tcGxldGUsIHsNCglvcHRpb25zOiB7DQoJCW1lc3NhZ2VzOiB7DQoJCQlub1Jlc3VsdHM6ICJObyBzZWFyY2ggcmVzdWx0cy4iLA0KCQkJcmVzdWx0czogZnVuY3Rpb24oIGFtb3VudCApIHsNCgkJCQlyZXR1cm4gYW1vdW50ICsgKCBhbW91bnQgPiAxID8gIiByZXN1bHRzIGFyZSIgOiAiIHJlc3VsdCBpcyIgKSArDQoJCQkJCSIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4iOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCV9fcmVzcG9uc2U6IGZ1bmN0aW9uKCBjb250ZW50ICkgew0KCQl2YXIgbWVzc2FnZTsNCgkJdGhpcy5fc3VwZXJBcHBseSggYXJndW1lbnRzICk7DQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkIHx8IHRoaXMuY2FuY2VsU2VhcmNoICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWlmICggY29udGVudCAmJiBjb250ZW50Lmxlbmd0aCApIHsNCgkJCW1lc3NhZ2UgPSB0aGlzLm9wdGlvbnMubWVzc2FnZXMucmVzdWx0cyggY29udGVudC5sZW5ndGggKTsNCgkJfSBlbHNlIHsNCgkJCW1lc3NhZ2UgPSB0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzOw0KCQl9DQoJCXRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKTsNCgkJJCggIjxkaXY+IiApLnRleHQoIG1lc3NhZ2UgKS5hcHBlbmRUbyggdGhpcy5saXZlUmVnaW9uICk7DQoJfQ0KfSk7DQoNCnZhciBhdXRvY29tcGxldGUgPSAkLnVpLmF1dG9jb21wbGV0ZTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBCdXR0b24gMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9idXR0b24vDQogKi8NCg0KDQp2YXIgbGFzdEFjdGl2ZSwNCgliYXNlQ2xhc3NlcyA9ICJ1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIsDQoJdHlwZUNsYXNzZXMgPSAidWktYnV0dG9uLWljb25zLW9ubHkgdWktYnV0dG9uLWljb24tb25seSB1aS1idXR0b24tdGV4dC1pY29ucyB1aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkgdWktYnV0dG9uLXRleHQtaWNvbi1zZWNvbmRhcnkgdWktYnV0dG9uLXRleHQtb25seSIsDQoJZm9ybVJlc2V0SGFuZGxlciA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgZm9ybSA9ICQoIHRoaXMgKTsNCgkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCWZvcm0uZmluZCggIjp1aS1idXR0b24iICkuYnV0dG9uKCAicmVmcmVzaCIgKTsNCgkJfSwgMSApOw0KCX0sDQoJcmFkaW9Hcm91cCA9IGZ1bmN0aW9uKCByYWRpbyApIHsNCgkJdmFyIG5hbWUgPSByYWRpby5uYW1lLA0KCQkJZm9ybSA9IHJhZGlvLmZvcm0sDQoJCQlyYWRpb3MgPSAkKCBbXSApOw0KCQlpZiAoIG5hbWUgKSB7DQoJCQluYW1lID0gbmFtZS5yZXBsYWNlKCAvJy9nLCAiXFwnIiApOw0KCQkJaWYgKCBmb3JtICkgew0KCQkJCXJhZGlvcyA9ICQoIGZvcm0gKS5maW5kKCAiW25hbWU9JyIgKyBuYW1lICsgIiddW3R5cGU9cmFkaW9dIiApOw0KCQkJfSBlbHNlIHsNCgkJCQlyYWRpb3MgPSAkKCAiW25hbWU9JyIgKyBuYW1lICsgIiddW3R5cGU9cmFkaW9dIiwgcmFkaW8ub3duZXJEb2N1bWVudCApDQoJCQkJCS5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXR1cm4gIXRoaXMuZm9ybTsNCgkJCQkJfSk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHJhZGlvczsNCgl9Ow0KDQokLndpZGdldCggInVpLmJ1dHRvbiIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCglkZWZhdWx0RWxlbWVudDogIjxidXR0b24+IiwNCglvcHRpb25zOiB7DQoJCWRpc2FibGVkOiBudWxsLA0KCQl0ZXh0OiB0cnVlLA0KCQlsYWJlbDogbnVsbCwNCgkJaWNvbnM6IHsNCgkJCXByaW1hcnk6IG51bGwsDQoJCQlzZWNvbmRhcnk6IG51bGwNCgkJfQ0KCX0sDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5jbG9zZXN0KCAiZm9ybSIgKQ0KCQkJLnVuYmluZCggInJlc2V0IiArIHRoaXMuZXZlbnROYW1lc3BhY2UgKQ0KCQkJLmJpbmQoICJyZXNldCIgKyB0aGlzLmV2ZW50TmFtZXNwYWNlLCBmb3JtUmVzZXRIYW5kbGVyICk7DQoNCgkJaWYgKCB0eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkICE9PSAiYm9vbGVhbiIgKSB7DQoJCQl0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSAhIXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVsZW1lbnQucHJvcCggImRpc2FibGVkIiwgdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoJCX0NCg0KCQl0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCk7DQoJCXRoaXMuaGFzVGl0bGUgPSAhIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCAidGl0bGUiICk7DQoNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCXRvZ2dsZUJ1dHRvbiA9IHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIsDQoJCQlhY3RpdmVDbGFzcyA9ICF0b2dnbGVCdXR0b24gPyAidWktc3RhdGUtYWN0aXZlIiA6ICIiOw0KDQoJCWlmICggb3B0aW9ucy5sYWJlbCA9PT0gbnVsbCApIHsNCgkJCW9wdGlvbnMubGFiZWwgPSAodGhpcy50eXBlID09PSAiaW5wdXQiID8gdGhpcy5idXR0b25FbGVtZW50LnZhbCgpIDogdGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSk7DQoJCX0NCg0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMuYnV0dG9uRWxlbWVudCApOw0KDQoJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJLmFkZENsYXNzKCBiYXNlQ2xhc3NlcyApDQoJCQkuYXR0ciggInJvbGUiLCAiYnV0dG9uIiApDQoJCQkuYmluZCggIm1vdXNlZW50ZXIiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCWlmICggdGhpcyA9PT0gbGFzdEFjdGl2ZSApIHsNCgkJCQkJJCggdGhpcyApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCX0NCgkJCX0pDQoJCQkuYmluZCggIm1vdXNlbGVhdmUiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggYWN0aXZlQ2xhc3MgKTsNCgkJCX0pDQoJCQkuYmluZCggImNsaWNrIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIG9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCWV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCS8vIENhbid0IHVzZSBfZm9jdXNhYmxlKCkgYmVjYXVzZSB0aGUgZWxlbWVudCB0aGF0IHJlY2VpdmVzIGZvY3VzDQoJCS8vIGFuZCB0aGUgZWxlbWVudCB0aGF0IGdldHMgdGhlIHVpLXN0YXRlLWZvY3VzIGNsYXNzIGFyZSBkaWZmZXJlbnQNCgkJdGhpcy5fb24oew0KCQkJZm9jdXM6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5hZGRDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfSwNCgkJCWJsdXI6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfQ0KCQl9KTsNCg0KCQlpZiAoIHRvZ2dsZUJ1dHRvbiApIHsNCgkJCXRoaXMuZWxlbWVudC5iaW5kKCAiY2hhbmdlIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCkgew0KCQkJCXRoYXQucmVmcmVzaCgpOw0KCQkJfSk7DQoJCX0NCg0KCQlpZiAoIHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiApIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCAiY2xpY2siICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfSk7DQoJCX0gZWxzZSBpZiAoIHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudC5iaW5kKCAiY2xpY2siICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl0aGF0LmJ1dHRvbkVsZW1lbnQuYXR0ciggImFyaWEtcHJlc3NlZCIsICJ0cnVlIiApOw0KDQoJCQkJdmFyIHJhZGlvID0gdGhhdC5lbGVtZW50WyAwIF07DQoJCQkJcmFkaW9Hcm91cCggcmFkaW8gKQ0KCQkJCQkubm90KCByYWRpbyApDQoJCQkJCS5tYXAoZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXR1cm4gJCggdGhpcyApLmJ1dHRvbiggIndpZGdldCIgKVsgMCBdOw0KCQkJCQl9KQ0KCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAiZmFsc2UiICk7DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJCS5iaW5kKCAibW91c2Vkb3duIiArIHRoaXMuZXZlbnROYW1lc3BhY2UsIGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIG9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0NCgkJCQkJJCggdGhpcyApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCQlsYXN0QWN0aXZlID0gdGhpczsNCgkJCQkJdGhhdC5kb2N1bWVudC5vbmUoICJtb3VzZXVwIiwgZnVuY3Rpb24oKSB7DQoJCQkJCQlsYXN0QWN0aXZlID0gbnVsbDsNCgkJCQkJfSk7DQoJCQkJfSkNCgkJCQkuYmluZCggIm1vdXNldXAiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJCWlmICggb3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCQkkKCB0aGlzICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQkJfSkNCgkJCQkuYmluZCggImtleWRvd24iICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJaWYgKCBvcHRpb25zLmRpc2FibGVkICkgew0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJCWlmICggZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlNQQUNFIHx8IGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5FTlRFUiApIHsNCgkJCQkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQkJfQ0KCQkJCX0pDQoJCQkJLy8gc2VlICM4NTU5LCB3ZSBiaW5kIHRvIGJsdXIgaGVyZSBpbiBjYXNlIHRoZSBidXR0b24gZWxlbWVudCBsb3Nlcw0KCQkJCS8vIGZvY3VzIGJldHdlZW4ga2V5ZG93biBhbmQga2V5dXAsIGl0IHdvdWxkIGJlIGxlZnQgaW4gYW4gImFjdGl2ZSIgc3RhdGUNCgkJCQkuYmluZCggImtleXVwIiArIHRoaXMuZXZlbnROYW1lc3BhY2UgKyAiIGJsdXIiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oKSB7DQoJCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl9KTsNCg0KCQkJaWYgKCB0aGlzLmJ1dHRvbkVsZW1lbnQuaXMoImEiKSApIHsNCgkJCQl0aGlzLmJ1dHRvbkVsZW1lbnQua2V5dXAoZnVuY3Rpb24oZXZlbnQpIHsNCgkJCQkJaWYgKCBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuU1BBQ0UgKSB7DQoJCQkJCQkvLyBUT0RPIHBhc3MgdGhyb3VnaCBvcmlnaW5hbCBldmVudCBjb3JyZWN0bHkgKGp1c3QgYXMgMm5kIGFyZ3VtZW50IGRvZXNuJ3Qgd29yaykNCgkJCQkJCSQoIHRoaXMgKS5jbGljaygpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIG9wdGlvbnMuZGlzYWJsZWQgKTsNCgkJdGhpcy5fcmVzZXRCdXR0b24oKTsNCgl9LA0KDQoJX2RldGVybWluZUJ1dHRvblR5cGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgYW5jZXN0b3IsIGxhYmVsU2VsZWN0b3IsIGNoZWNrZWQ7DQoNCgkJaWYgKCB0aGlzLmVsZW1lbnQuaXMoIlt0eXBlPWNoZWNrYm94XSIpICkgew0KCQkJdGhpcy50eXBlID0gImNoZWNrYm94IjsNCgkJfSBlbHNlIGlmICggdGhpcy5lbGVtZW50LmlzKCJbdHlwZT1yYWRpb10iKSApIHsNCgkJCXRoaXMudHlwZSA9ICJyYWRpbyI7DQoJCX0gZWxzZSBpZiAoIHRoaXMuZWxlbWVudC5pcygiaW5wdXQiKSApIHsNCgkJCXRoaXMudHlwZSA9ICJpbnB1dCI7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLnR5cGUgPSAiYnV0dG9uIjsNCgkJfQ0KDQoJCWlmICggdGhpcy50eXBlID09PSAiY2hlY2tib3giIHx8IHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCS8vIHdlIGRvbid0IHNlYXJjaCBhZ2FpbnN0IHRoZSBkb2N1bWVudCBpbiBjYXNlIHRoZSBlbGVtZW50DQoJCQkvLyBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRE9NDQoJCQlhbmNlc3RvciA9IHRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpOw0KCQkJbGFiZWxTZWxlY3RvciA9ICJsYWJlbFtmb3I9JyIgKyB0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSArICInXSI7DQoJCQl0aGlzLmJ1dHRvbkVsZW1lbnQgPSBhbmNlc3Rvci5maW5kKCBsYWJlbFNlbGVjdG9yICk7DQoJCQlpZiAoICF0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RoICkgew0KCQkJCWFuY2VzdG9yID0gYW5jZXN0b3IubGVuZ3RoID8gYW5jZXN0b3Iuc2libGluZ3MoKSA6IHRoaXMuZWxlbWVudC5zaWJsaW5ncygpOw0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IGFuY2VzdG9yLmZpbHRlciggbGFiZWxTZWxlY3RvciApOw0KCQkJCWlmICggIXRoaXMuYnV0dG9uRWxlbWVudC5sZW5ndGggKSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IGFuY2VzdG9yLmZpbmQoIGxhYmVsU2VsZWN0b3IgKTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiICk7DQoNCgkJCWNoZWNrZWQgPSB0aGlzLmVsZW1lbnQuaXMoICI6Y2hlY2tlZCIgKTsNCgkJCWlmICggY2hlY2tlZCApIHsNCgkJCQl0aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQl9DQoJCQl0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCggImFyaWEtcHJlc3NlZCIsIGNoZWNrZWQgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYnV0dG9uRWxlbWVudCA9IHRoaXMuZWxlbWVudDsNCgkJfQ0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5idXR0b25FbGVtZW50Ow0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZUNsYXNzKCAidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiApOw0KCQl0aGlzLmJ1dHRvbkVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggYmFzZUNsYXNzZXMgKyAiIHVpLXN0YXRlLWFjdGl2ZSAiICsgdHlwZUNsYXNzZXMgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtcHJlc3NlZCIgKQ0KCQkJLmh0bWwoIHRoaXMuYnV0dG9uRWxlbWVudC5maW5kKCIudWktYnV0dG9uLXRleHQiKS5odG1sKCkgKTsNCg0KCQlpZiAoICF0aGlzLmhhc1RpdGxlICkgew0KCQkJdGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoICJ0aXRsZSIgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLndpZGdldCgpLnRvZ2dsZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCQl0aGlzLmVsZW1lbnQucHJvcCggImRpc2FibGVkIiwgISF2YWx1ZSApOw0KCQkJaWYgKCB2YWx1ZSApIHsNCgkJCQlpZiAoIHRoaXMudHlwZSA9PT0gImNoZWNrYm94IiB8fCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5fcmVzZXRCdXR0b24oKTsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCS8vU2VlICM4MjM3ICYgIzg4MjgNCgkJdmFyIGlzRGlzYWJsZWQgPSB0aGlzLmVsZW1lbnQuaXMoICJpbnB1dCwgYnV0dG9uIiApID8gdGhpcy5lbGVtZW50LmlzKCAiOmRpc2FibGVkIiApIDogdGhpcy5lbGVtZW50Lmhhc0NsYXNzKCAidWktYnV0dG9uLWRpc2FibGVkIiApOw0KDQoJCWlmICggaXNEaXNhYmxlZCAhPT0gdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5fc2V0T3B0aW9uKCAiZGlzYWJsZWQiLCBpc0Rpc2FibGVkICk7DQoJCX0NCgkJaWYgKCB0aGlzLnR5cGUgPT09ICJyYWRpbyIgKSB7DQoJCQlyYWRpb0dyb3VwKCB0aGlzLmVsZW1lbnRbMF0gKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWlmICggJCggdGhpcyApLmlzKCAiOmNoZWNrZWQiICkgKSB7DQoJCQkJCSQoIHRoaXMgKS5idXR0b24oICJ3aWRnZXQiICkNCgkJCQkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKQ0KCQkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAidHJ1ZSIgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkKCB0aGlzICkuYnV0dG9uKCAid2lkZ2V0IiApDQoJCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJCS5hdHRyKCAiYXJpYS1wcmVzc2VkIiwgImZhbHNlIiApOw0KCQkJCX0NCgkJCX0pOw0KCQl9IGVsc2UgaWYgKCB0aGlzLnR5cGUgPT09ICJjaGVja2JveCIgKSB7DQoJCQlpZiAoIHRoaXMuZWxlbWVudC5pcyggIjpjaGVja2VkIiApICkgew0KCQkJCXRoaXMuYnV0dG9uRWxlbWVudA0KCQkJCQkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkNCgkJCQkJLmF0dHIoICJhcmlhLXByZXNzZWQiLCAidHJ1ZSIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5idXR0b25FbGVtZW50DQoJCQkJCS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKQ0KCQkJCQkuYXR0ciggImFyaWEtcHJlc3NlZCIsICJmYWxzZSIgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfcmVzZXRCdXR0b246IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMudHlwZSA9PT0gImlucHV0IiApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmxhYmVsICkgew0KCQkJCXRoaXMuZWxlbWVudC52YWwoIHRoaXMub3B0aW9ucy5sYWJlbCApOw0KCQkJfQ0KCQkJcmV0dXJuOw0KCQl9DQoJCXZhciBidXR0b25FbGVtZW50ID0gdGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCB0eXBlQ2xhc3NlcyApLA0KCQkJYnV0dG9uVGV4dCA9ICQoICI8c3Bhbj48L3NwYW4+IiwgdGhpcy5kb2N1bWVudFswXSApDQoJCQkJLmFkZENsYXNzKCAidWktYnV0dG9uLXRleHQiICkNCgkJCQkuaHRtbCggdGhpcy5vcHRpb25zLmxhYmVsICkNCgkJCQkuYXBwZW5kVG8oIGJ1dHRvbkVsZW1lbnQuZW1wdHkoKSApDQoJCQkJLnRleHQoKSwNCgkJCWljb25zID0gdGhpcy5vcHRpb25zLmljb25zLA0KCQkJbXVsdGlwbGVJY29ucyA9IGljb25zLnByaW1hcnkgJiYgaWNvbnMuc2Vjb25kYXJ5LA0KCQkJYnV0dG9uQ2xhc3NlcyA9IFtdOw0KDQoJCWlmICggaWNvbnMucHJpbWFyeSB8fCBpY29ucy5zZWNvbmRhcnkgKSB7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy50ZXh0ICkgew0KCQkJCWJ1dHRvbkNsYXNzZXMucHVzaCggInVpLWJ1dHRvbi10ZXh0LWljb24iICsgKCBtdWx0aXBsZUljb25zID8gInMiIDogKCBpY29ucy5wcmltYXJ5ID8gIi1wcmltYXJ5IiA6ICItc2Vjb25kYXJ5IiApICkgKTsNCgkJCX0NCg0KCQkJaWYgKCBpY29ucy5wcmltYXJ5ICkgew0KCQkJCWJ1dHRvbkVsZW1lbnQucHJlcGVuZCggIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24gIiArIGljb25zLnByaW1hcnkgKyAiJz48L3NwYW4+IiApOw0KCQkJfQ0KDQoJCQlpZiAoIGljb25zLnNlY29uZGFyeSApIHsNCgkJCQlidXR0b25FbGVtZW50LmFwcGVuZCggIjxzcGFuIGNsYXNzPSd1aS1idXR0b24taWNvbi1zZWNvbmRhcnkgdWktaWNvbiAiICsgaWNvbnMuc2Vjb25kYXJ5ICsgIic+PC9zcGFuPiIgKTsNCgkJCX0NCg0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLnRleHQgKSB7DQoJCQkJYnV0dG9uQ2xhc3Nlcy5wdXNoKCBtdWx0aXBsZUljb25zID8gInVpLWJ1dHRvbi1pY29ucy1vbmx5IiA6ICJ1aS1idXR0b24taWNvbi1vbmx5IiApOw0KDQoJCQkJaWYgKCAhdGhpcy5oYXNUaXRsZSApIHsNCgkJCQkJYnV0dG9uRWxlbWVudC5hdHRyKCAidGl0bGUiLCAkLnRyaW0oIGJ1dHRvblRleHQgKSApOw0KCQkJCX0NCgkJCX0NCgkJfSBlbHNlIHsNCgkJCWJ1dHRvbkNsYXNzZXMucHVzaCggInVpLWJ1dHRvbi10ZXh0LW9ubHkiICk7DQoJCX0NCgkJYnV0dG9uRWxlbWVudC5hZGRDbGFzcyggYnV0dG9uQ2xhc3Nlcy5qb2luKCAiICIgKSApOw0KCX0NCn0pOw0KDQokLndpZGdldCggInVpLmJ1dHRvbnNldCIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCglvcHRpb25zOiB7DQoJCWl0ZW1zOiAiYnV0dG9uLCBpbnB1dFt0eXBlPWJ1dHRvbl0sIGlucHV0W3R5cGU9c3VibWl0XSwgaW5wdXRbdHlwZT1yZXNldF0sIGlucHV0W3R5cGU9Y2hlY2tib3hdLCBpbnB1dFt0eXBlPXJhZGlvXSwgYSwgOmRhdGEodWktYnV0dG9uKSINCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcyggInVpLWJ1dHRvbnNldCIgKTsNCgl9LA0KDQoJX2luaXQ6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnJlZnJlc2goKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5idXR0b25zLmJ1dHRvbiggIm9wdGlvbiIsIGtleSwgdmFsdWUgKTsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcnRsID0gdGhpcy5lbGVtZW50LmNzcyggImRpcmVjdGlvbiIgKSA9PT0gInJ0bCIsDQoJCQlhbGxCdXR0b25zID0gdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLA0KCQkJZXhpc3RpbmdCdXR0b25zID0gYWxsQnV0dG9ucy5maWx0ZXIoICI6dWktYnV0dG9uIiApOw0KDQoJCS8vIEluaXRpYWxpemUgbmV3IGJ1dHRvbnMNCgkJYWxsQnV0dG9ucy5ub3QoICI6dWktYnV0dG9uIiApLmJ1dHRvbigpOw0KDQoJCS8vIFJlZnJlc2ggZXhpc3RpbmcgYnV0dG9ucw0KCQlleGlzdGluZ0J1dHRvbnMuYnV0dG9uKCAicmVmcmVzaCIgKTsNCg0KCQl0aGlzLmJ1dHRvbnMgPSBhbGxCdXR0b25zDQoJCQkubWFwKGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAkKCB0aGlzICkuYnV0dG9uKCAid2lkZ2V0IiApWyAwIF07DQoJCQl9KQ0KCQkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci1hbGwgdWktY29ybmVyLWxlZnQgdWktY29ybmVyLXJpZ2h0IiApDQoJCQkJLmZpbHRlciggIjpmaXJzdCIgKQ0KCQkJCQkuYWRkQ2xhc3MoIHJ0bCA/ICJ1aS1jb3JuZXItcmlnaHQiIDogInVpLWNvcm5lci1sZWZ0IiApDQoJCQkJLmVuZCgpDQoJCQkJLmZpbHRlciggIjpsYXN0IiApDQoJCQkJCS5hZGRDbGFzcyggcnRsID8gInVpLWNvcm5lci1sZWZ0IiA6ICJ1aS1jb3JuZXItcmlnaHQiICkNCgkJCQkuZW5kKCkNCgkJCS5lbmQoKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoICJ1aS1idXR0b25zZXQiICk7DQoJCXRoaXMuYnV0dG9ucw0KCQkJLm1hcChmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gJCggdGhpcyApLmJ1dHRvbiggIndpZGdldCIgKVsgMCBdOw0KCQkJfSkNCgkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiICkNCgkJCS5lbmQoKQ0KCQkJLmJ1dHRvbiggImRlc3Ryb3kiICk7DQoJfQ0KfSk7DQoNCnZhciBidXR0b24gPSAkLnVpLmJ1dHRvbjsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBEYXRlcGlja2VyIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZGF0ZXBpY2tlci8NCiAqLw0KDQoNCiQuZXh0ZW5kKCQudWksIHsgZGF0ZXBpY2tlcjogeyB2ZXJzaW9uOiAiMS4xMS40IiB9IH0pOw0KDQp2YXIgZGF0ZXBpY2tlcl9pbnN0QWN0aXZlOw0KDQpmdW5jdGlvbiBkYXRlcGlja2VyX2dldFppbmRleCggZWxlbSApIHsNCgl2YXIgcG9zaXRpb24sIHZhbHVlOw0KCXdoaWxlICggZWxlbS5sZW5ndGggJiYgZWxlbVsgMCBdICE9PSBkb2N1bWVudCApIHsNCgkJLy8gSWdub3JlIHotaW5kZXggaWYgcG9zaXRpb24gaXMgc2V0IHRvIGEgdmFsdWUgd2hlcmUgei1pbmRleCBpcyBpZ25vcmVkIGJ5IHRoZSBicm93c2VyDQoJCS8vIFRoaXMgbWFrZXMgYmVoYXZpb3Igb2YgdGhpcyBmdW5jdGlvbiBjb25zaXN0ZW50IGFjcm9zcyBicm93c2Vycw0KCQkvLyBXZWJLaXQgYWx3YXlzIHJldHVybnMgYXV0byBpZiB0aGUgZWxlbWVudCBpcyBwb3NpdGlvbmVkDQoJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCgkJaWYgKCBwb3NpdGlvbiA9PT0gImFic29sdXRlIiB8fCBwb3NpdGlvbiA9PT0gInJlbGF0aXZlIiB8fCBwb3NpdGlvbiA9PT0gImZpeGVkIiApIHsNCgkJCS8vIElFIHJldHVybnMgMCB3aGVuIHpJbmRleCBpcyBub3Qgc3BlY2lmaWVkDQoJCQkvLyBvdGhlciBicm93c2VycyByZXR1cm4gYSBzdHJpbmcNCgkJCS8vIHdlIGlnbm9yZSB0aGUgY2FzZSBvZiBuZXN0ZWQgZWxlbWVudHMgd2l0aCBhbiBleHBsaWNpdCB2YWx1ZSBvZiAwDQoJCQkvLyA8ZGl2IHN0eWxlPSJ6LWluZGV4OiAtMTA7Ij48ZGl2IHN0eWxlPSJ6LWluZGV4OiAwOyI+PC9kaXY+PC9kaXY+DQoJCQl2YWx1ZSA9IHBhcnNlSW50KCBlbGVtLmNzcyggInpJbmRleCIgKSwgMTAgKTsNCgkJCWlmICggIWlzTmFOKCB2YWx1ZSApICYmIHZhbHVlICE9PSAwICkgew0KCQkJCXJldHVybiB2YWx1ZTsNCgkJCX0NCgkJfQ0KCQllbGVtID0gZWxlbS5wYXJlbnQoKTsNCgl9DQoNCglyZXR1cm4gMDsNCn0NCi8qIERhdGUgcGlja2VyIG1hbmFnZXIuDQogICBVc2UgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLCAkLmRhdGVwaWNrZXIsIHRvIGludGVyYWN0IHdpdGggdGhlIGRhdGUgcGlja2VyLg0KICAgU2V0dGluZ3MgZm9yIChncm91cHMgb2YpIGRhdGUgcGlja2VycyBhcmUgbWFpbnRhaW5lZCBpbiBhbiBpbnN0YW5jZSBvYmplY3QsDQogICBhbGxvd2luZyBtdWx0aXBsZSBkaWZmZXJlbnQgc2V0dGluZ3Mgb24gdGhlIHNhbWUgcGFnZS4gKi8NCg0KZnVuY3Rpb24gRGF0ZXBpY2tlcigpIHsNCgl0aGlzLl9jdXJJbnN0ID0gbnVsbDsgLy8gVGhlIGN1cnJlbnQgaW5zdGFuY2UgaW4gdXNlDQoJdGhpcy5fa2V5RXZlbnQgPSBmYWxzZTsgLy8gSWYgdGhlIGxhc3QgZXZlbnQgd2FzIGEga2V5IGV2ZW50DQoJdGhpcy5fZGlzYWJsZWRJbnB1dHMgPSBbXTsgLy8gTGlzdCBvZiBkYXRlIHBpY2tlciBpbnB1dHMgdGhhdCBoYXZlIGJlZW4gZGlzYWJsZWQNCgl0aGlzLl9kYXRlcGlja2VyU2hvd2luZyA9IGZhbHNlOyAvLyBUcnVlIGlmIHRoZSBwb3B1cCBwaWNrZXIgaXMgc2hvd2luZyAsIGZhbHNlIGlmIG5vdA0KCXRoaXMuX2luRGlhbG9nID0gZmFsc2U7IC8vIFRydWUgaWYgc2hvd2luZyB3aXRoaW4gYSAiZGlhbG9nIiwgZmFsc2UgaWYgbm90DQoJdGhpcy5fbWFpbkRpdklkID0gInVpLWRhdGVwaWNrZXItZGl2IjsgLy8gVGhlIElEIG9mIHRoZSBtYWluIGRhdGVwaWNrZXIgZGl2aXNpb24NCgl0aGlzLl9pbmxpbmVDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLWlubGluZSI7IC8vIFRoZSBuYW1lIG9mIHRoZSBpbmxpbmUgbWFya2VyIGNsYXNzDQoJdGhpcy5fYXBwZW5kQ2xhc3MgPSAidWktZGF0ZXBpY2tlci1hcHBlbmQiOyAvLyBUaGUgbmFtZSBvZiB0aGUgYXBwZW5kIG1hcmtlciBjbGFzcw0KCXRoaXMuX3RyaWdnZXJDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLXRyaWdnZXIiOyAvLyBUaGUgbmFtZSBvZiB0aGUgdHJpZ2dlciBtYXJrZXIgY2xhc3MNCgl0aGlzLl9kaWFsb2dDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLWRpYWxvZyI7IC8vIFRoZSBuYW1lIG9mIHRoZSBkaWFsb2cgbWFya2VyIGNsYXNzDQoJdGhpcy5fZGlzYWJsZUNsYXNzID0gInVpLWRhdGVwaWNrZXItZGlzYWJsZWQiOyAvLyBUaGUgbmFtZSBvZiB0aGUgZGlzYWJsZWQgY292ZXJpbmcgbWFya2VyIGNsYXNzDQoJdGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3MgPSAidWktZGF0ZXBpY2tlci11bnNlbGVjdGFibGUiOyAvLyBUaGUgbmFtZSBvZiB0aGUgdW5zZWxlY3RhYmxlIGNlbGwgbWFya2VyIGNsYXNzDQoJdGhpcy5fY3VycmVudENsYXNzID0gInVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkiOyAvLyBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBkYXkgbWFya2VyIGNsYXNzDQoJdGhpcy5fZGF5T3ZlckNsYXNzID0gInVpLWRhdGVwaWNrZXItZGF5cy1jZWxsLW92ZXIiOyAvLyBUaGUgbmFtZSBvZiB0aGUgZGF5IGhvdmVyIG1hcmtlciBjbGFzcw0KCXRoaXMucmVnaW9uYWwgPSBbXTsgLy8gQXZhaWxhYmxlIHJlZ2lvbmFsIHNldHRpbmdzLCBpbmRleGVkIGJ5IGxhbmd1YWdlIGNvZGUNCgl0aGlzLnJlZ2lvbmFsWyIiXSA9IHsgLy8gRGVmYXVsdCByZWdpb25hbCBzZXR0aW5ncw0KCQljbG9zZVRleHQ6ICJEb25lIiwgLy8gRGlzcGxheSB0ZXh0IGZvciBjbG9zZSBsaW5rDQoJCXByZXZUZXh0OiAiUHJldiIsIC8vIERpc3BsYXkgdGV4dCBmb3IgcHJldmlvdXMgbW9udGggbGluaw0KCQluZXh0VGV4dDogIk5leHQiLCAvLyBEaXNwbGF5IHRleHQgZm9yIG5leHQgbW9udGggbGluaw0KCQljdXJyZW50VGV4dDogIlRvZGF5IiwgLy8gRGlzcGxheSB0ZXh0IGZvciBjdXJyZW50IG1vbnRoIGxpbmsNCgkJbW9udGhOYW1lczogWyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsDQoJCQkiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sIC8vIE5hbWVzIG9mIG1vbnRocyBmb3IgZHJvcC1kb3duIGFuZCBmb3JtYXR0aW5nDQoJCW1vbnRoTmFtZXNTaG9ydDogWyJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIiLCAiTWF5IiwgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyJdLCAvLyBGb3IgZm9ybWF0dGluZw0KCQlkYXlOYW1lczogWyJTdW5kYXkiLCAiTW9uZGF5IiwgIlR1ZXNkYXkiLCAiV2VkbmVzZGF5IiwgIlRodXJzZGF5IiwgIkZyaWRheSIsICJTYXR1cmRheSJdLCAvLyBGb3IgZm9ybWF0dGluZw0KCQlkYXlOYW1lc1Nob3J0OiBbIlN1biIsICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCJdLCAvLyBGb3IgZm9ybWF0dGluZw0KCQlkYXlOYW1lc01pbjogWyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLCAvLyBDb2x1bW4gaGVhZGluZ3MgZm9yIGRheXMgc3RhcnRpbmcgYXQgU3VuZGF5DQoJCXdlZWtIZWFkZXI6ICJXayIsIC8vIENvbHVtbiBoZWFkZXIgZm9yIHdlZWsgb2YgdGhlIHllYXINCgkJZGF0ZUZvcm1hdDogIm1tL2RkL3l5IiwgLy8gU2VlIGZvcm1hdCBvcHRpb25zIG9uIHBhcnNlRGF0ZQ0KCQlmaXJzdERheTogMCwgLy8gVGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaywgU3VuID0gMCwgTW9uID0gMSwgLi4uDQoJCWlzUlRMOiBmYWxzZSwgLy8gVHJ1ZSBpZiByaWdodC10by1sZWZ0IGxhbmd1YWdlLCBmYWxzZSBpZiBsZWZ0LXRvLXJpZ2h0DQoJCXNob3dNb250aEFmdGVyWWVhcjogZmFsc2UsIC8vIFRydWUgaWYgdGhlIHllYXIgc2VsZWN0IHByZWNlZGVzIG1vbnRoLCBmYWxzZSBmb3IgbW9udGggdGhlbiB5ZWFyDQoJCXllYXJTdWZmaXg6ICIiIC8vIEFkZGl0aW9uYWwgdGV4dCB0byBhcHBlbmQgdG8gdGhlIHllYXIgaW4gdGhlIG1vbnRoIGhlYWRlcnMNCgl9Ow0KCXRoaXMuX2RlZmF1bHRzID0geyAvLyBHbG9iYWwgZGVmYXVsdHMgZm9yIGFsbCB0aGUgZGF0ZSBwaWNrZXIgaW5zdGFuY2VzDQoJCXNob3dPbjogImZvY3VzIiwgLy8gImZvY3VzIiBmb3IgcG9wdXAgb24gZm9jdXMsDQoJCQkvLyAiYnV0dG9uIiBmb3IgdHJpZ2dlciBidXR0b24sIG9yICJib3RoIiBmb3IgZWl0aGVyDQoJCXNob3dBbmltOiAiZmFkZUluIiwgLy8gTmFtZSBvZiBqUXVlcnkgYW5pbWF0aW9uIGZvciBwb3B1cA0KCQlzaG93T3B0aW9uczoge30sIC8vIE9wdGlvbnMgZm9yIGVuaGFuY2VkIGFuaW1hdGlvbnMNCgkJZGVmYXVsdERhdGU6IG51bGwsIC8vIFVzZWQgd2hlbiBmaWVsZCBpcyBibGFuazogYWN0dWFsIGRhdGUsDQoJCQkvLyArLy1udW1iZXIgZm9yIG9mZnNldCBmcm9tIHRvZGF5LCBudWxsIGZvciB0b2RheQ0KCQlhcHBlbmRUZXh0OiAiIiwgLy8gRGlzcGxheSB0ZXh0IGZvbGxvd2luZyB0aGUgaW5wdXQgYm94LCBlLmcuIHNob3dpbmcgdGhlIGZvcm1hdA0KCQlidXR0b25UZXh0OiAiLi4uIiwgLy8gVGV4dCBmb3IgdHJpZ2dlciBidXR0b24NCgkJYnV0dG9uSW1hZ2U6ICIiLCAvLyBVUkwgZm9yIHRyaWdnZXIgYnV0dG9uIGltYWdlDQoJCWJ1dHRvbkltYWdlT25seTogZmFsc2UsIC8vIFRydWUgaWYgdGhlIGltYWdlIGFwcGVhcnMgYWxvbmUsIGZhbHNlIGlmIGl0IGFwcGVhcnMgb24gYSBidXR0b24NCgkJaGlkZUlmTm9QcmV2TmV4dDogZmFsc2UsIC8vIFRydWUgdG8gaGlkZSBuZXh0L3ByZXZpb3VzIG1vbnRoIGxpbmtzDQoJCQkvLyBpZiBub3QgYXBwbGljYWJsZSwgZmFsc2UgdG8ganVzdCBkaXNhYmxlIHRoZW0NCgkJbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdDogZmFsc2UsIC8vIFRydWUgaWYgZGF0ZSBmb3JtYXR0aW5nIGFwcGxpZWQgdG8gcHJldi90b2RheS9uZXh0IGxpbmtzDQoJCWdvdG9DdXJyZW50OiBmYWxzZSwgLy8gVHJ1ZSBpZiB0b2RheSBsaW5rIGdvZXMgYmFjayB0byBjdXJyZW50IHNlbGVjdGlvbiBpbnN0ZWFkDQoJCWNoYW5nZU1vbnRoOiBmYWxzZSwgLy8gVHJ1ZSBpZiBtb250aCBjYW4gYmUgc2VsZWN0ZWQgZGlyZWN0bHksIGZhbHNlIGlmIG9ubHkgcHJldi9uZXh0DQoJCWNoYW5nZVllYXI6IGZhbHNlLCAvLyBUcnVlIGlmIHllYXIgY2FuIGJlIHNlbGVjdGVkIGRpcmVjdGx5LCBmYWxzZSBpZiBvbmx5IHByZXYvbmV4dA0KCQl5ZWFyUmFuZ2U6ICJjLTEwOmMrMTAiLCAvLyBSYW5nZSBvZiB5ZWFycyB0byBkaXNwbGF5IGluIGRyb3AtZG93biwNCgkJCS8vIGVpdGhlciByZWxhdGl2ZSB0byB0b2RheSdzIHllYXIgKC1ubjorbm4pLCByZWxhdGl2ZSB0byBjdXJyZW50bHkgZGlzcGxheWVkIHllYXINCgkJCS8vIChjLW5uOmMrbm4pLCBhYnNvbHV0ZSAobm5ubjpubm5uKSwgb3IgYSBjb21iaW5hdGlvbiBvZiB0aGUgYWJvdmUgKG5ubm46LW4pDQoJCXNob3dPdGhlck1vbnRoczogZmFsc2UsIC8vIFRydWUgdG8gc2hvdyBkYXRlcyBpbiBvdGhlciBtb250aHMsIGZhbHNlIHRvIGxlYXZlIGJsYW5rDQoJCXNlbGVjdE90aGVyTW9udGhzOiBmYWxzZSwgLy8gVHJ1ZSB0byBhbGxvdyBzZWxlY3Rpb24gb2YgZGF0ZXMgaW4gb3RoZXIgbW9udGhzLCBmYWxzZSBmb3IgdW5zZWxlY3RhYmxlDQoJCXNob3dXZWVrOiBmYWxzZSwgLy8gVHJ1ZSB0byBzaG93IHdlZWsgb2YgdGhlIHllYXIsIGZhbHNlIHRvIG5vdCBzaG93IGl0DQoJCWNhbGN1bGF0ZVdlZWs6IHRoaXMuaXNvODYwMVdlZWssIC8vIEhvdyB0byBjYWxjdWxhdGUgdGhlIHdlZWsgb2YgdGhlIHllYXIsDQoJCQkvLyB0YWtlcyBhIERhdGUgYW5kIHJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgd2VlayBmb3IgaXQNCgkJc2hvcnRZZWFyQ3V0b2ZmOiAiKzEwIiwgLy8gU2hvcnQgeWVhciB2YWx1ZXMgPCB0aGlzIGFyZSBpbiB0aGUgY3VycmVudCBjZW50dXJ5LA0KCQkJLy8gPiB0aGlzIGFyZSBpbiB0aGUgcHJldmlvdXMgY2VudHVyeSwNCgkJCS8vIHN0cmluZyB2YWx1ZSBzdGFydGluZyB3aXRoICIrIiBmb3IgY3VycmVudCB5ZWFyICsgdmFsdWUNCgkJbWluRGF0ZTogbnVsbCwgLy8gVGhlIGVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSwgb3IgbnVsbCBmb3Igbm8gbGltaXQNCgkJbWF4RGF0ZTogbnVsbCwgLy8gVGhlIGxhdGVzdCBzZWxlY3RhYmxlIGRhdGUsIG9yIG51bGwgZm9yIG5vIGxpbWl0DQoJCWR1cmF0aW9uOiAiZmFzdCIsIC8vIER1cmF0aW9uIG9mIGRpc3BsYXkvY2xvc3VyZQ0KCQliZWZvcmVTaG93RGF5OiBudWxsLCAvLyBGdW5jdGlvbiB0aGF0IHRha2VzIGEgZGF0ZSBhbmQgcmV0dXJucyBhbiBhcnJheSB3aXRoDQoJCQkvLyBbMF0gPSB0cnVlIGlmIHNlbGVjdGFibGUsIGZhbHNlIGlmIG5vdCwgWzFdID0gY3VzdG9tIENTUyBjbGFzcyBuYW1lKHMpIG9yICIiLA0KCQkJLy8gWzJdID0gY2VsbCB0aXRsZSAob3B0aW9uYWwpLCBlLmcuICQuZGF0ZXBpY2tlci5ub1dlZWtlbmRzDQoJCWJlZm9yZVNob3c6IG51bGwsIC8vIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gaW5wdXQgZmllbGQgYW5kDQoJCQkvLyByZXR1cm5zIGEgc2V0IG9mIGN1c3RvbSBzZXR0aW5ncyBmb3IgdGhlIGRhdGUgcGlja2VyDQoJCW9uU2VsZWN0OiBudWxsLCAvLyBEZWZpbmUgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZA0KCQlvbkNoYW5nZU1vbnRoWWVhcjogbnVsbCwgLy8gRGVmaW5lIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgbW9udGggb3IgeWVhciBpcyBjaGFuZ2VkDQoJCW9uQ2xvc2U6IG51bGwsIC8vIERlZmluZSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIGRhdGVwaWNrZXIgaXMgY2xvc2VkDQoJCW51bWJlck9mTW9udGhzOiAxLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHNob3cgYXQgYSB0aW1lDQoJCXNob3dDdXJyZW50QXRQb3M6IDAsIC8vIFRoZSBwb3NpdGlvbiBpbiBtdWx0aXBlIG1vbnRocyBhdCB3aGljaCB0byBzaG93IHRoZSBjdXJyZW50IG1vbnRoIChzdGFydGluZyBhdCAwKQ0KCQlzdGVwTW9udGhzOiAxLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHN0ZXAgYmFjay9mb3J3YXJkDQoJCXN0ZXBCaWdNb250aHM6IDEyLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHN0ZXAgYmFjay9mb3J3YXJkIGZvciB0aGUgYmlnIGxpbmtzDQoJCWFsdEZpZWxkOiAiIiwgLy8gU2VsZWN0b3IgZm9yIGFuIGFsdGVybmF0ZSBmaWVsZCB0byBzdG9yZSBzZWxlY3RlZCBkYXRlcyBpbnRvDQoJCWFsdEZvcm1hdDogIiIsIC8vIFRoZSBkYXRlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBhbHRlcm5hdGUgZmllbGQNCgkJY29uc3RyYWluSW5wdXQ6IHRydWUsIC8vIFRoZSBpbnB1dCBpcyBjb25zdHJhaW5lZCBieSB0aGUgY3VycmVudCBkYXRlIGZvcm1hdA0KCQlzaG93QnV0dG9uUGFuZWw6IGZhbHNlLCAvLyBUcnVlIHRvIHNob3cgYnV0dG9uIHBhbmVsLCBmYWxzZSB0byBub3Qgc2hvdyBpdA0KCQlhdXRvU2l6ZTogZmFsc2UsIC8vIFRydWUgdG8gc2l6ZSB0aGUgaW5wdXQgZm9yIHRoZSBkYXRlIGZvcm1hdCwgZmFsc2UgdG8gbGVhdmUgYXMgaXMNCgkJZGlzYWJsZWQ6IGZhbHNlIC8vIFRoZSBpbml0aWFsIGRpc2FibGVkIHN0YXRlDQoJfTsNCgkkLmV4dGVuZCh0aGlzLl9kZWZhdWx0cywgdGhpcy5yZWdpb25hbFsiIl0pOw0KCXRoaXMucmVnaW9uYWwuZW4gPSAkLmV4dGVuZCggdHJ1ZSwge30sIHRoaXMucmVnaW9uYWxbICIiIF0pOw0KCXRoaXMucmVnaW9uYWxbICJlbi1VUyIgXSA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgdGhpcy5yZWdpb25hbC5lbiApOw0KCXRoaXMuZHBEaXYgPSBkYXRlcGlja2VyX2JpbmRIb3ZlcigkKCI8ZGl2IGlkPSciICsgdGhpcy5fbWFpbkRpdklkICsgIicgY2xhc3M9J3VpLWRhdGVwaWNrZXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsJz48L2Rpdj4iKSk7DQp9DQoNCiQuZXh0ZW5kKERhdGVwaWNrZXIucHJvdG90eXBlLCB7DQoJLyogQ2xhc3MgbmFtZSBhZGRlZCB0byBlbGVtZW50cyB0byBpbmRpY2F0ZSBhbHJlYWR5IGNvbmZpZ3VyZWQgd2l0aCBhIGRhdGUgcGlja2VyLiAqLw0KCW1hcmtlckNsYXNzTmFtZTogImhhc0RhdGVwaWNrZXIiLA0KDQoJLy9LZWVwIHRyYWNrIG9mIHRoZSBtYXhpbXVtIG51bWJlciBvZiByb3dzIGRpc3BsYXllZCAoc2VlICM3MDQzKQ0KCW1heFJvd3M6IDQsDQoNCgkvLyBUT0RPIHJlbmFtZSB0byAid2lkZ2V0IiB3aGVuIHN3aXRjaGluZyB0byB3aWRnZXQgZmFjdG9yeQ0KCV93aWRnZXREYXRlcGlja2VyOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuZHBEaXY7DQoJfSwNCg0KCS8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBhbGwgaW5zdGFuY2VzIG9mIHRoZSBkYXRlIHBpY2tlci4NCgkgKiBAcGFyYW0gIHNldHRpbmdzICBvYmplY3QgLSB0aGUgbmV3IHNldHRpbmdzIHRvIHVzZSBhcyBkZWZhdWx0cyAoYW5vbnltb3VzIG9iamVjdCkNCgkgKiBAcmV0dXJuIHRoZSBtYW5hZ2VyIG9iamVjdA0KCSAqLw0KCXNldERlZmF1bHRzOiBmdW5jdGlvbihzZXR0aW5ncykgew0KCQlkYXRlcGlja2VyX2V4dGVuZFJlbW92ZSh0aGlzLl9kZWZhdWx0cywgc2V0dGluZ3MgfHwge30pOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJLyogQXR0YWNoIHRoZSBkYXRlIHBpY2tlciB0byBhIGpRdWVyeSBzZWxlY3Rpb24uDQoJICogQHBhcmFtICB0YXJnZXQJZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGZvciB0aGlzIGRhdGUgcGlja2VyIGluc3RhbmNlIChhbm9ueW1vdXMpDQoJICovDQoJX2F0dGFjaERhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCwgc2V0dGluZ3MpIHsNCgkJdmFyIG5vZGVOYW1lLCBpbmxpbmUsIGluc3Q7DQoJCW5vZGVOYW1lID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoJCWlubGluZSA9IChub2RlTmFtZSA9PT0gImRpdiIgfHwgbm9kZU5hbWUgPT09ICJzcGFuIik7DQoJCWlmICghdGFyZ2V0LmlkKSB7DQoJCQl0aGlzLnV1aWQgKz0gMTsNCgkJCXRhcmdldC5pZCA9ICJkcCIgKyB0aGlzLnV1aWQ7DQoJCX0NCgkJaW5zdCA9IHRoaXMuX25ld0luc3QoJCh0YXJnZXQpLCBpbmxpbmUpOw0KCQlpbnN0LnNldHRpbmdzID0gJC5leHRlbmQoe30sIHNldHRpbmdzIHx8IHt9KTsNCgkJaWYgKG5vZGVOYW1lID09PSAiaW5wdXQiKSB7DQoJCQl0aGlzLl9jb25uZWN0RGF0ZXBpY2tlcih0YXJnZXQsIGluc3QpOw0KCQl9IGVsc2UgaWYgKGlubGluZSkgew0KCQkJdGhpcy5faW5saW5lRGF0ZXBpY2tlcih0YXJnZXQsIGluc3QpOw0KCQl9DQoJfSwNCg0KCS8qIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvYmplY3QuICovDQoJX25ld0luc3Q6IGZ1bmN0aW9uKHRhcmdldCwgaW5saW5lKSB7DQoJCXZhciBpZCA9IHRhcmdldFswXS5pZC5yZXBsYWNlKC8oW15BLVphLXowLTlfXC1dKS9nLCAiXFxcXCQxIik7IC8vIGVzY2FwZSBqUXVlcnkgbWV0YSBjaGFycw0KCQlyZXR1cm4ge2lkOiBpZCwgaW5wdXQ6IHRhcmdldCwgLy8gYXNzb2NpYXRlZCB0YXJnZXQNCgkJCXNlbGVjdGVkRGF5OiAwLCBzZWxlY3RlZE1vbnRoOiAwLCBzZWxlY3RlZFllYXI6IDAsIC8vIGN1cnJlbnQgc2VsZWN0aW9uDQoJCQlkcmF3TW9udGg6IDAsIGRyYXdZZWFyOiAwLCAvLyBtb250aCBiZWluZyBkcmF3bg0KCQkJaW5saW5lOiBpbmxpbmUsIC8vIGlzIGRhdGVwaWNrZXIgaW5saW5lIG9yIG5vdA0KCQkJZHBEaXY6ICghaW5saW5lID8gdGhpcy5kcERpdiA6IC8vIHByZXNlbnRhdGlvbiBkaXYNCgkJCWRhdGVwaWNrZXJfYmluZEhvdmVyKCQoIjxkaXYgY2xhc3M9JyIgKyB0aGlzLl9pbmxpbmVDbGFzcyArICIgdWktZGF0ZXBpY2tlciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci1hbGwnPjwvZGl2PiIpKSl9Ow0KCX0sDQoNCgkvKiBBdHRhY2ggdGhlIGRhdGUgcGlja2VyIHRvIGFuIGlucHV0IGZpZWxkLiAqLw0KCV9jb25uZWN0RGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0LCBpbnN0KSB7DQoJCXZhciBpbnB1dCA9ICQodGFyZ2V0KTsNCgkJaW5zdC5hcHBlbmQgPSAkKFtdKTsNCgkJaW5zdC50cmlnZ2VyID0gJChbXSk7DQoJCWlmIChpbnB1dC5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpIHsNCgkJCXJldHVybjsNCgkJfQ0KCQl0aGlzLl9hdHRhY2htZW50cyhpbnB1dCwgaW5zdCk7DQoJCWlucHV0LmFkZENsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS5rZXlkb3duKHRoaXMuX2RvS2V5RG93bikuDQoJCQlrZXlwcmVzcyh0aGlzLl9kb0tleVByZXNzKS5rZXl1cCh0aGlzLl9kb0tleVVwKTsNCgkJdGhpcy5fYXV0b1NpemUoaW5zdCk7DQoJCSQuZGF0YSh0YXJnZXQsICJkYXRlcGlja2VyIiwgaW5zdCk7DQoJCS8vSWYgZGlzYWJsZWQgb3B0aW9uIGlzIHRydWUsIGRpc2FibGUgdGhlIGRhdGVwaWNrZXIgb25jZSBpdCBoYXMgYmVlbiBhdHRhY2hlZCB0byB0aGUgaW5wdXQgKHNlZSB0aWNrZXQgIzU2NjUpDQoJCWlmKCBpbnN0LnNldHRpbmdzLmRpc2FibGVkICkgew0KCQkJdGhpcy5fZGlzYWJsZURhdGVwaWNrZXIoIHRhcmdldCApOw0KCQl9DQoJfSwNCg0KCS8qIE1ha2UgYXR0YWNobWVudHMgYmFzZWQgb24gc2V0dGluZ3MuICovDQoJX2F0dGFjaG1lbnRzOiBmdW5jdGlvbihpbnB1dCwgaW5zdCkgew0KCQl2YXIgc2hvd09uLCBidXR0b25UZXh0LCBidXR0b25JbWFnZSwNCgkJCWFwcGVuZFRleHQgPSB0aGlzLl9nZXQoaW5zdCwgImFwcGVuZFRleHQiKSwNCgkJCWlzUlRMID0gdGhpcy5fZ2V0KGluc3QsICJpc1JUTCIpOw0KDQoJCWlmIChpbnN0LmFwcGVuZCkgew0KCQkJaW5zdC5hcHBlbmQucmVtb3ZlKCk7DQoJCX0NCgkJaWYgKGFwcGVuZFRleHQpIHsNCgkJCWluc3QuYXBwZW5kID0gJCgiPHNwYW4gY2xhc3M9JyIgKyB0aGlzLl9hcHBlbmRDbGFzcyArICInPiIgKyBhcHBlbmRUZXh0ICsgIjwvc3Bhbj4iKTsNCgkJCWlucHV0W2lzUlRMID8gImJlZm9yZSIgOiAiYWZ0ZXIiXShpbnN0LmFwcGVuZCk7DQoJCX0NCg0KCQlpbnB1dC51bmJpbmQoImZvY3VzIiwgdGhpcy5fc2hvd0RhdGVwaWNrZXIpOw0KDQoJCWlmIChpbnN0LnRyaWdnZXIpIHsNCgkJCWluc3QudHJpZ2dlci5yZW1vdmUoKTsNCgkJfQ0KDQoJCXNob3dPbiA9IHRoaXMuX2dldChpbnN0LCAic2hvd09uIik7DQoJCWlmIChzaG93T24gPT09ICJmb2N1cyIgfHwgc2hvd09uID09PSAiYm90aCIpIHsgLy8gcG9wLXVwIGRhdGUgcGlja2VyIHdoZW4gaW4gdGhlIG1hcmtlZCBmaWVsZA0KCQkJaW5wdXQuZm9jdXModGhpcy5fc2hvd0RhdGVwaWNrZXIpOw0KCQl9DQoJCWlmIChzaG93T24gPT09ICJidXR0b24iIHx8IHNob3dPbiA9PT0gImJvdGgiKSB7IC8vIHBvcC11cCBkYXRlIHBpY2tlciB3aGVuIGJ1dHRvbiBjbGlja2VkDQoJCQlidXR0b25UZXh0ID0gdGhpcy5fZ2V0KGluc3QsICJidXR0b25UZXh0Iik7DQoJCQlidXR0b25JbWFnZSA9IHRoaXMuX2dldChpbnN0LCAiYnV0dG9uSW1hZ2UiKTsNCgkJCWluc3QudHJpZ2dlciA9ICQodGhpcy5fZ2V0KGluc3QsICJidXR0b25JbWFnZU9ubHkiKSA/DQoJCQkJJCgiPGltZy8+IikuYWRkQ2xhc3ModGhpcy5fdHJpZ2dlckNsYXNzKS4NCgkJCQkJYXR0cih7IHNyYzogYnV0dG9uSW1hZ2UsIGFsdDogYnV0dG9uVGV4dCwgdGl0bGU6IGJ1dHRvblRleHQgfSkgOg0KCQkJCSQoIjxidXR0b24gdHlwZT0nYnV0dG9uJz48L2J1dHRvbj4iKS5hZGRDbGFzcyh0aGlzLl90cmlnZ2VyQ2xhc3MpLg0KCQkJCQlodG1sKCFidXR0b25JbWFnZSA/IGJ1dHRvblRleHQgOiAkKCI8aW1nLz4iKS5hdHRyKA0KCQkJCQl7IHNyYzpidXR0b25JbWFnZSwgYWx0OmJ1dHRvblRleHQsIHRpdGxlOmJ1dHRvblRleHQgfSkpKTsNCgkJCWlucHV0W2lzUlRMID8gImJlZm9yZSIgOiAiYWZ0ZXIiXShpbnN0LnRyaWdnZXIpOw0KCQkJaW5zdC50cmlnZ2VyLmNsaWNrKGZ1bmN0aW9uKCkgew0KCQkJCWlmICgkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ID09PSBpbnB1dFswXSkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJfSBlbHNlIGlmICgkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ICE9PSBpbnB1dFswXSkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIoaW5wdXRbMF0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIoaW5wdXRbMF0pOw0KCQkJCX0NCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9KTsNCgkJfQ0KCX0sDQoNCgkvKiBBcHBseSB0aGUgbWF4aW11bSBsZW5ndGggZm9yIHRoZSBkYXRlIGZvcm1hdC4gKi8NCglfYXV0b1NpemU6IGZ1bmN0aW9uKGluc3QpIHsNCgkJaWYgKHRoaXMuX2dldChpbnN0LCAiYXV0b1NpemUiKSAmJiAhaW5zdC5pbmxpbmUpIHsNCgkJCXZhciBmaW5kTWF4LCBtYXgsIG1heEksIGksDQoJCQkJZGF0ZSA9IG5ldyBEYXRlKDIwMDksIDEyIC0gMSwgMjApLCAvLyBFbnN1cmUgZG91YmxlIGRpZ2l0cw0KCQkJCWRhdGVGb3JtYXQgPSB0aGlzLl9nZXQoaW5zdCwgImRhdGVGb3JtYXQiKTsNCg0KCQkJaWYgKGRhdGVGb3JtYXQubWF0Y2goL1tETV0vKSkgew0KCQkJCWZpbmRNYXggPSBmdW5jdGlvbihuYW1lcykgew0KCQkJCQltYXggPSAwOw0KCQkJCQltYXhJID0gMDsNCgkJCQkJZm9yIChpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7DQoJCQkJCQlpZiAobmFtZXNbaV0ubGVuZ3RoID4gbWF4KSB7DQoJCQkJCQkJbWF4ID0gbmFtZXNbaV0ubGVuZ3RoOw0KCQkJCQkJCW1heEkgPSBpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCXJldHVybiBtYXhJOw0KCQkJCX07DQoJCQkJZGF0ZS5zZXRNb250aChmaW5kTWF4KHRoaXMuX2dldChpbnN0LCAoZGF0ZUZvcm1hdC5tYXRjaCgvTU0vKSA/DQoJCQkJCSJtb250aE5hbWVzIiA6ICJtb250aE5hbWVzU2hvcnQiKSkpKTsNCgkJCQlkYXRlLnNldERhdGUoZmluZE1heCh0aGlzLl9nZXQoaW5zdCwgKGRhdGVGb3JtYXQubWF0Y2goL0RELykgPw0KCQkJCQkiZGF5TmFtZXMiIDogImRheU5hbWVzU2hvcnQiKSkpICsgMjAgLSBkYXRlLmdldERheSgpKTsNCgkJCX0NCgkJCWluc3QuaW5wdXQuYXR0cigic2l6ZSIsIHRoaXMuX2Zvcm1hdERhdGUoaW5zdCwgZGF0ZSkubGVuZ3RoKTsNCgkJfQ0KCX0sDQoNCgkvKiBBdHRhY2ggYW4gaW5saW5lIGRhdGUgcGlja2VyIHRvIGEgZGl2LiAqLw0KCV9pbmxpbmVEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQsIGluc3QpIHsNCgkJdmFyIGRpdlNwYW4gPSAkKHRhcmdldCk7DQoJCWlmIChkaXZTcGFuLmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWRpdlNwYW4uYWRkQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLmFwcGVuZChpbnN0LmRwRGl2KTsNCgkJJC5kYXRhKHRhcmdldCwgImRhdGVwaWNrZXIiLCBpbnN0KTsNCgkJdGhpcy5fc2V0RGF0ZShpbnN0LCB0aGlzLl9nZXREZWZhdWx0RGF0ZShpbnN0KSwgdHJ1ZSk7DQoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCXRoaXMuX3VwZGF0ZUFsdGVybmF0ZShpbnN0KTsNCgkJLy9JZiBkaXNhYmxlZCBvcHRpb24gaXMgdHJ1ZSwgZGlzYWJsZSB0aGUgZGF0ZXBpY2tlciBiZWZvcmUgc2hvd2luZyBpdCAoc2VlIHRpY2tldCAjNTY2NSkNCgkJaWYoIGluc3Quc2V0dGluZ3MuZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9kaXNhYmxlRGF0ZXBpY2tlciggdGFyZ2V0ICk7DQoJCX0NCgkJLy8gU2V0IGRpc3BsYXk6YmxvY2sgaW4gcGxhY2Ugb2YgaW5zdC5kcERpdi5zaG93KCkgd2hpY2ggd29uJ3Qgd29yayBvbiBkaXNjb25uZWN0ZWQgZWxlbWVudHMNCgkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5dWkuY29tL3RpY2tldC83NTUyIC0gQSBEYXRlcGlja2VyIGNyZWF0ZWQgb24gYSBkZXRhY2hlZCBkaXYgaGFzIHplcm8gaGVpZ2h0DQoJCWluc3QuZHBEaXYuY3NzKCAiZGlzcGxheSIsICJibG9jayIgKTsNCgl9LA0KDQoJLyogUG9wLXVwIHRoZSBkYXRlIHBpY2tlciBpbiBhICJkaWFsb2ciIGJveC4NCgkgKiBAcGFyYW0gIGlucHV0IGVsZW1lbnQgLSBpZ25vcmVkDQoJICogQHBhcmFtICBkYXRlCXN0cmluZyBvciBEYXRlIC0gdGhlIGluaXRpYWwgZGF0ZSB0byBkaXNwbGF5DQoJICogQHBhcmFtICBvblNlbGVjdCAgZnVuY3Rpb24gLSB0aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZA0KCSAqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHVwZGF0ZSB0aGUgZGlhbG9nIGRhdGUgcGlja2VyIGluc3RhbmNlJ3Mgc2V0dGluZ3MgKGFub255bW91cyBvYmplY3QpDQoJICogQHBhcmFtICBwb3MgaW50WzJdIC0gY29vcmRpbmF0ZXMgZm9yIHRoZSBkaWFsb2cncyBwb3NpdGlvbiB3aXRoaW4gdGhlIHNjcmVlbiBvcg0KCSAqCQkJCQlldmVudCAtIHdpdGggeC95IGNvb3JkaW5hdGVzIG9yDQoJICoJCQkJCWxlYXZlIGVtcHR5IGZvciBkZWZhdWx0IChzY3JlZW4gY2VudHJlKQ0KCSAqIEByZXR1cm4gdGhlIG1hbmFnZXIgb2JqZWN0DQoJICovDQoJX2RpYWxvZ0RhdGVwaWNrZXI6IGZ1bmN0aW9uKGlucHV0LCBkYXRlLCBvblNlbGVjdCwgc2V0dGluZ3MsIHBvcykgew0KCQl2YXIgaWQsIGJyb3dzZXJXaWR0aCwgYnJvd3NlckhlaWdodCwgc2Nyb2xsWCwgc2Nyb2xsWSwNCgkJCWluc3QgPSB0aGlzLl9kaWFsb2dJbnN0OyAvLyBpbnRlcm5hbCBpbnN0YW5jZQ0KDQoJCWlmICghaW5zdCkgew0KCQkJdGhpcy51dWlkICs9IDE7DQoJCQlpZCA9ICJkcCIgKyB0aGlzLnV1aWQ7DQoJCQl0aGlzLl9kaWFsb2dJbnB1dCA9ICQoIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nIiArIGlkICsNCgkJCQkiJyBzdHlsZT0ncG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xMDBweDsgd2lkdGg6IDBweDsnLz4iKTsNCgkJCXRoaXMuX2RpYWxvZ0lucHV0LmtleWRvd24odGhpcy5fZG9LZXlEb3duKTsNCgkJCSQoImJvZHkiKS5hcHBlbmQodGhpcy5fZGlhbG9nSW5wdXQpOw0KCQkJaW5zdCA9IHRoaXMuX2RpYWxvZ0luc3QgPSB0aGlzLl9uZXdJbnN0KHRoaXMuX2RpYWxvZ0lucHV0LCBmYWxzZSk7DQoJCQlpbnN0LnNldHRpbmdzID0ge307DQoJCQkkLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRbMF0sICJkYXRlcGlja2VyIiwgaW5zdCk7DQoJCX0NCgkJZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoaW5zdC5zZXR0aW5ncywgc2V0dGluZ3MgfHwge30pOw0KCQlkYXRlID0gKGRhdGUgJiYgZGF0ZS5jb25zdHJ1Y3RvciA9PT0gRGF0ZSA/IHRoaXMuX2Zvcm1hdERhdGUoaW5zdCwgZGF0ZSkgOiBkYXRlKTsNCgkJdGhpcy5fZGlhbG9nSW5wdXQudmFsKGRhdGUpOw0KDQoJCXRoaXMuX3BvcyA9IChwb3MgPyAocG9zLmxlbmd0aCA/IHBvcyA6IFtwb3MucGFnZVgsIHBvcy5wYWdlWV0pIDogbnVsbCk7DQoJCWlmICghdGhpcy5fcG9zKSB7DQoJCQlicm93c2VyV2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7DQoJCQlicm93c2VySGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsNCgkJCXNjcm9sbFggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7DQoJCQlzY3JvbGxZID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsNCgkJCXRoaXMuX3BvcyA9IC8vIHNob3VsZCB1c2UgYWN0dWFsIHdpZHRoL2hlaWdodCBiZWxvdw0KCQkJCVsoYnJvd3NlcldpZHRoIC8gMikgLSAxMDAgKyBzY3JvbGxYLCAoYnJvd3NlckhlaWdodCAvIDIpIC0gMTUwICsgc2Nyb2xsWV07DQoJCX0NCg0KCQkvLyBtb3ZlIGlucHV0IG9uIHNjcmVlbiBmb3IgZm9jdXMsIGJ1dCBoaWRkZW4gYmVoaW5kIGRpYWxvZw0KCQl0aGlzLl9kaWFsb2dJbnB1dC5jc3MoImxlZnQiLCAodGhpcy5fcG9zWzBdICsgMjApICsgInB4IikuY3NzKCJ0b3AiLCB0aGlzLl9wb3NbMV0gKyAicHgiKTsNCgkJaW5zdC5zZXR0aW5ncy5vblNlbGVjdCA9IG9uU2VsZWN0Ow0KCQl0aGlzLl9pbkRpYWxvZyA9IHRydWU7DQoJCXRoaXMuZHBEaXYuYWRkQ2xhc3ModGhpcy5fZGlhbG9nQ2xhc3MpOw0KCQl0aGlzLl9zaG93RGF0ZXBpY2tlcih0aGlzLl9kaWFsb2dJbnB1dFswXSk7DQoJCWlmICgkLmJsb2NrVUkpIHsNCgkJCSQuYmxvY2tVSSh0aGlzLmRwRGl2KTsNCgkJfQ0KCQkkLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRbMF0sICJkYXRlcGlja2VyIiwgaW5zdCk7DQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCgkvKiBEZXRhY2ggYSBkYXRlcGlja2VyIGZyb20gaXRzIGNvbnRyb2wuDQoJICogQHBhcmFtICB0YXJnZXQJZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqLw0KCV9kZXN0cm95RGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0KSB7DQoJCXZhciBub2RlTmFtZSwNCgkJCSR0YXJnZXQgPSAkKHRhcmdldCksDQoJCQlpbnN0ID0gJC5kYXRhKHRhcmdldCwgImRhdGVwaWNrZXIiKTsNCg0KCQlpZiAoISR0YXJnZXQuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlub2RlTmFtZSA9IHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOw0KCQkkLnJlbW92ZURhdGEodGFyZ2V0LCAiZGF0ZXBpY2tlciIpOw0KCQlpZiAobm9kZU5hbWUgPT09ICJpbnB1dCIpIHsNCgkJCWluc3QuYXBwZW5kLnJlbW92ZSgpOw0KCQkJaW5zdC50cmlnZ2VyLnJlbW92ZSgpOw0KCQkJJHRhcmdldC5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkuDQoJCQkJdW5iaW5kKCJmb2N1cyIsIHRoaXMuX3Nob3dEYXRlcGlja2VyKS4NCgkJCQl1bmJpbmQoImtleWRvd24iLCB0aGlzLl9kb0tleURvd24pLg0KCQkJCXVuYmluZCgia2V5cHJlc3MiLCB0aGlzLl9kb0tleVByZXNzKS4NCgkJCQl1bmJpbmQoImtleXVwIiwgdGhpcy5fZG9LZXlVcCk7DQoJCX0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICJkaXYiIHx8IG5vZGVOYW1lID09PSAic3BhbiIpIHsNCgkJCSR0YXJnZXQucmVtb3ZlQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLmVtcHR5KCk7DQoJCX0NCg0KCQlpZiAoIGRhdGVwaWNrZXJfaW5zdEFjdGl2ZSA9PT0gaW5zdCApIHsNCgkJCWRhdGVwaWNrZXJfaW5zdEFjdGl2ZSA9IG51bGw7DQoJCX0NCgl9LA0KDQoJLyogRW5hYmxlIHRoZSBkYXRlIHBpY2tlciB0byBhIGpRdWVyeSBzZWxlY3Rpb24uDQoJICogQHBhcmFtICB0YXJnZXQJZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqLw0KCV9lbmFibGVEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJdmFyIG5vZGVOYW1lLCBpbmxpbmUsDQoJCQkkdGFyZ2V0ID0gJCh0YXJnZXQpLA0KCQkJaW5zdCA9ICQuZGF0YSh0YXJnZXQsICJkYXRlcGlja2VyIik7DQoNCgkJaWYgKCEkdGFyZ2V0Lmhhc0NsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJbm9kZU5hbWUgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJaWYgKG5vZGVOYW1lID09PSAiaW5wdXQiKSB7DQoJCQl0YXJnZXQuZGlzYWJsZWQgPSBmYWxzZTsNCgkJCWluc3QudHJpZ2dlci5maWx0ZXIoImJ1dHRvbiIpLg0KCQkJCWVhY2goZnVuY3Rpb24oKSB7IHRoaXMuZGlzYWJsZWQgPSBmYWxzZTsgfSkuZW5kKCkuDQoJCQkJZmlsdGVyKCJpbWciKS5jc3Moe29wYWNpdHk6ICIxLjAiLCBjdXJzb3I6ICIifSk7DQoJCX0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICJkaXYiIHx8IG5vZGVOYW1lID09PSAic3BhbiIpIHsNCgkJCWlubGluZSA9ICR0YXJnZXQuY2hpbGRyZW4oIi4iICsgdGhpcy5faW5saW5lQ2xhc3MpOw0KCQkJaW5saW5lLmNoaWxkcmVuKCkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik7DQoJCQlpbmxpbmUuZmluZCgic2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIiKS4NCgkJCQlwcm9wKCJkaXNhYmxlZCIsIGZhbHNlKTsNCgkJfQ0KCQl0aGlzLl9kaXNhYmxlZElucHV0cyA9ICQubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRzLA0KCQkJZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuICh2YWx1ZSA9PT0gdGFyZ2V0ID8gbnVsbCA6IHZhbHVlKTsgfSk7IC8vIGRlbGV0ZSBlbnRyeQ0KCX0sDQoNCgkvKiBEaXNhYmxlIHRoZSBkYXRlIHBpY2tlciB0byBhIGpRdWVyeSBzZWxlY3Rpb24uDQoJICogQHBhcmFtICB0YXJnZXQJZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqLw0KCV9kaXNhYmxlRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0KSB7DQoJCXZhciBub2RlTmFtZSwgaW5saW5lLA0KCQkJJHRhcmdldCA9ICQodGFyZ2V0KSwNCgkJCWluc3QgPSAkLmRhdGEodGFyZ2V0LCAiZGF0ZXBpY2tlciIpOw0KDQoJCWlmICghJHRhcmdldC5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCW5vZGVOYW1lID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoJCWlmIChub2RlTmFtZSA9PT0gImlucHV0Iikgew0KCQkJdGFyZ2V0LmRpc2FibGVkID0gdHJ1ZTsNCgkJCWluc3QudHJpZ2dlci5maWx0ZXIoImJ1dHRvbiIpLg0KCQkJCWVhY2goZnVuY3Rpb24oKSB7IHRoaXMuZGlzYWJsZWQgPSB0cnVlOyB9KS5lbmQoKS4NCgkJCQlmaWx0ZXIoImltZyIpLmNzcyh7b3BhY2l0eTogIjAuNSIsIGN1cnNvcjogImRlZmF1bHQifSk7DQoJCX0gZWxzZSBpZiAobm9kZU5hbWUgPT09ICJkaXYiIHx8IG5vZGVOYW1lID09PSAic3BhbiIpIHsNCgkJCWlubGluZSA9ICR0YXJnZXQuY2hpbGRyZW4oIi4iICsgdGhpcy5faW5saW5lQ2xhc3MpOw0KCQkJaW5saW5lLmNoaWxkcmVuKCkuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik7DQoJCQlpbmxpbmUuZmluZCgic2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIiKS4NCgkJCQlwcm9wKCJkaXNhYmxlZCIsIHRydWUpOw0KCQl9DQoJCXRoaXMuX2Rpc2FibGVkSW5wdXRzID0gJC5tYXAodGhpcy5fZGlzYWJsZWRJbnB1dHMsDQoJCQlmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gKHZhbHVlID09PSB0YXJnZXQgPyBudWxsIDogdmFsdWUpOyB9KTsgLy8gZGVsZXRlIGVudHJ5DQoJCXRoaXMuX2Rpc2FibGVkSW5wdXRzW3RoaXMuX2Rpc2FibGVkSW5wdXRzLmxlbmd0aF0gPSB0YXJnZXQ7DQoJfSwNCg0KCS8qIElzIHRoZSBmaXJzdCBmaWVsZCBpbiBhIGpRdWVyeSBjb2xsZWN0aW9uIGRpc2FibGVkIGFzIGEgZGF0ZXBpY2tlcj8NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHJldHVybiBib29sZWFuIC0gdHJ1ZSBpZiBkaXNhYmxlZCwgZmFsc2UgaWYgZW5hYmxlZA0KCSAqLw0KCV9pc0Rpc2FibGVkRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0KSB7DQoJCWlmICghdGFyZ2V0KSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGg7IGkrKykgew0KCQkJaWYgKHRoaXMuX2Rpc2FibGVkSW5wdXRzW2ldID09PSB0YXJnZXQpIHsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCS8qIFJldHJpZXZlIHRoZSBpbnN0YW5jZSBkYXRhIGZvciB0aGUgdGFyZ2V0IGNvbnRyb2wuDQoJICogQHBhcmFtICB0YXJnZXQgIGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcmV0dXJuICBvYmplY3QgLSB0aGUgYXNzb2NpYXRlZCBpbnN0YW5jZSBkYXRhDQoJICogQHRocm93cyAgZXJyb3IgaWYgYSBqUXVlcnkgcHJvYmxlbSBnZXR0aW5nIGRhdGENCgkgKi8NCglfZ2V0SW5zdDogZnVuY3Rpb24odGFyZ2V0KSB7DQoJCXRyeSB7DQoJCQlyZXR1cm4gJC5kYXRhKHRhcmdldCwgImRhdGVwaWNrZXIiKTsNCgkJfQ0KCQljYXRjaCAoZXJyKSB7DQoJCQl0aHJvdyAiTWlzc2luZyBpbnN0YW5jZSBkYXRhIGZvciB0aGlzIGRhdGVwaWNrZXIiOw0KCQl9DQoJfSwNCg0KCS8qIFVwZGF0ZSBvciByZXRyaWV2ZSB0aGUgc2V0dGluZ3MgZm9yIGEgZGF0ZSBwaWNrZXIgYXR0YWNoZWQgdG8gYW4gaW5wdXQgZmllbGQgb3IgZGl2aXNpb24uDQoJICogQHBhcmFtICB0YXJnZXQgIGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcGFyYW0gIG5hbWUJb2JqZWN0IC0gdGhlIG5ldyBzZXR0aW5ncyB0byB1cGRhdGUgb3INCgkgKgkJCQlzdHJpbmcgLSB0aGUgbmFtZSBvZiB0aGUgc2V0dGluZyB0byBjaGFuZ2Ugb3IgcmV0cmlldmUsDQoJICoJCQkJd2hlbiByZXRyaWV2aW5nIGFsc28gImFsbCIgZm9yIGFsbCBpbnN0YW5jZSBzZXR0aW5ncyBvcg0KCSAqCQkJCSJkZWZhdWx0cyIgZm9yIGFsbCBnbG9iYWwgZGVmYXVsdHMNCgkgKiBAcGFyYW0gIHZhbHVlICAgYW55IC0gdGhlIG5ldyB2YWx1ZSBmb3IgdGhlIHNldHRpbmcNCgkgKgkJCQkob21pdCBpZiBhYm92ZSBpcyBhbiBvYmplY3Qgb3IgdG8gcmV0cmlldmUgYSB2YWx1ZSkNCgkgKi8NCglfb3B0aW9uRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0LCBuYW1lLCB2YWx1ZSkgew0KCQl2YXIgc2V0dGluZ3MsIGRhdGUsIG1pbkRhdGUsIG1heERhdGUsDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOw0KDQoJCWlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHR5cGVvZiBuYW1lID09PSAic3RyaW5nIikgew0KCQkJcmV0dXJuIChuYW1lID09PSAiZGVmYXVsdHMiID8gJC5leHRlbmQoe30sICQuZGF0ZXBpY2tlci5fZGVmYXVsdHMpIDoNCgkJCQkoaW5zdCA/IChuYW1lID09PSAiYWxsIiA/ICQuZXh0ZW5kKHt9LCBpbnN0LnNldHRpbmdzKSA6DQoJCQkJdGhpcy5fZ2V0KGluc3QsIG5hbWUpKSA6IG51bGwpKTsNCgkJfQ0KDQoJCXNldHRpbmdzID0gbmFtZSB8fCB7fTsNCgkJaWYgKHR5cGVvZiBuYW1lID09PSAic3RyaW5nIikgew0KCQkJc2V0dGluZ3MgPSB7fTsNCgkJCXNldHRpbmdzW25hbWVdID0gdmFsdWU7DQoJCX0NCg0KCQlpZiAoaW5zdCkgew0KCQkJaWYgKHRoaXMuX2N1ckluc3QgPT09IGluc3QpIHsNCgkJCQl0aGlzLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJfQ0KDQoJCQlkYXRlID0gdGhpcy5fZ2V0RGF0ZURhdGVwaWNrZXIodGFyZ2V0LCB0cnVlKTsNCgkJCW1pbkRhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtaW4iKTsNCgkJCW1heERhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKGluc3QsICJtYXgiKTsNCgkJCWRhdGVwaWNrZXJfZXh0ZW5kUmVtb3ZlKGluc3Quc2V0dGluZ3MsIHNldHRpbmdzKTsNCgkJCS8vIHJlZm9ybWF0IHRoZSBvbGQgbWluRGF0ZS9tYXhEYXRlIHZhbHVlcyBpZiBkYXRlRm9ybWF0IGNoYW5nZXMgYW5kIGEgbmV3IG1pbkRhdGUvbWF4RGF0ZSBpc24ndCBwcm92aWRlZA0KCQkJaWYgKG1pbkRhdGUgIT09IG51bGwgJiYgc2V0dGluZ3MuZGF0ZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmIHNldHRpbmdzLm1pbkRhdGUgPT09IHVuZGVmaW5lZCkgew0KCQkJCWluc3Quc2V0dGluZ3MubWluRGF0ZSA9IHRoaXMuX2Zvcm1hdERhdGUoaW5zdCwgbWluRGF0ZSk7DQoJCQl9DQoJCQlpZiAobWF4RGF0ZSAhPT0gbnVsbCAmJiBzZXR0aW5ncy5kYXRlRm9ybWF0ICE9PSB1bmRlZmluZWQgJiYgc2V0dGluZ3MubWF4RGF0ZSA9PT0gdW5kZWZpbmVkKSB7DQoJCQkJaW5zdC5zZXR0aW5ncy5tYXhEYXRlID0gdGhpcy5fZm9ybWF0RGF0ZShpbnN0LCBtYXhEYXRlKTsNCgkJCX0NCgkJCWlmICggImRpc2FibGVkIiBpbiBzZXR0aW5ncyApIHsNCgkJCQlpZiAoIHNldHRpbmdzLmRpc2FibGVkICkgew0KCQkJCQl0aGlzLl9kaXNhYmxlRGF0ZXBpY2tlcih0YXJnZXQpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMuX2VuYWJsZURhdGVwaWNrZXIodGFyZ2V0KTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLl9hdHRhY2htZW50cygkKHRhcmdldCksIGluc3QpOw0KCQkJdGhpcy5fYXV0b1NpemUoaW5zdCk7DQoJCQl0aGlzLl9zZXREYXRlKGluc3QsIGRhdGUpOw0KCQkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGluc3QpOw0KCQkJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpbnN0KTsNCgkJfQ0KCX0sDQoNCgkvLyBjaGFuZ2UgbWV0aG9kIGRlcHJlY2F0ZWQNCglfY2hhbmdlRGF0ZXBpY2tlcjogZnVuY3Rpb24odGFyZ2V0LCBuYW1lLCB2YWx1ZSkgew0KCQl0aGlzLl9vcHRpb25EYXRlcGlja2VyKHRhcmdldCwgbmFtZSwgdmFsdWUpOw0KCX0sDQoNCgkvKiBSZWRyYXcgdGhlIGRhdGUgcGlja2VyIGF0dGFjaGVkIHRvIGFuIGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uLg0KCSAqIEBwYXJhbSAgdGFyZ2V0ICBlbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICovDQoJX3JlZnJlc2hEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQpIHsNCgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7DQoJCWlmIChpbnN0KSB7DQoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQl9DQoJfSwNCg0KCS8qIFNldCB0aGUgZGF0ZXMgZm9yIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCBlbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBkYXRlCURhdGUgLSB0aGUgbmV3IGRhdGUNCgkgKi8NCglfc2V0RGF0ZURhdGVwaWNrZXI6IGZ1bmN0aW9uKHRhcmdldCwgZGF0ZSkgew0KCQl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KTsNCgkJaWYgKGluc3QpIHsNCgkJCXRoaXMuX3NldERhdGUoaW5zdCwgZGF0ZSk7DQoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGluc3QpOw0KCQl9DQoJfSwNCg0KCS8qIEdldCB0aGUgZGF0ZShzKSBmb3IgdGhlIGZpcnN0IGVudHJ5IGluIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCBlbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBub0RlZmF1bHQgYm9vbGVhbiAtIHRydWUgaWYgbm8gZGVmYXVsdCBkYXRlIGlzIHRvIGJlIHVzZWQNCgkgKiBAcmV0dXJuIERhdGUgLSB0aGUgY3VycmVudCBkYXRlDQoJICovDQoJX2dldERhdGVEYXRlcGlja2VyOiBmdW5jdGlvbih0YXJnZXQsIG5vRGVmYXVsdCkgew0KCQl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KTsNCgkJaWYgKGluc3QgJiYgIWluc3QuaW5saW5lKSB7DQoJCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGluc3QsIG5vRGVmYXVsdCk7DQoJCX0NCgkJcmV0dXJuIChpbnN0ID8gdGhpcy5fZ2V0RGF0ZShpbnN0KSA6IG51bGwpOw0KCX0sDQoNCgkvKiBIYW5kbGUga2V5c3Ryb2tlcy4gKi8NCglfZG9LZXlEb3duOiBmdW5jdGlvbihldmVudCkgew0KCQl2YXIgb25TZWxlY3QsIGRhdGVTdHIsIHNlbCwNCgkJCWluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QoZXZlbnQudGFyZ2V0KSwNCgkJCWhhbmRsZWQgPSB0cnVlLA0KCQkJaXNSVEwgPSBpbnN0LmRwRGl2LmlzKCIudWktZGF0ZXBpY2tlci1ydGwiKTsNCg0KCQlpbnN0Ll9rZXlFdmVudCA9IHRydWU7DQoJCWlmICgkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nKSB7DQoJCQlzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHsNCgkJCQljYXNlIDk6ICQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQkJCWhhbmRsZWQgPSBmYWxzZTsNCgkJCQkJCWJyZWFrOyAvLyBoaWRlIG9uIHRhYiBvdXQNCgkJCQljYXNlIDEzOiBzZWwgPSAkKCJ0ZC4iICsgJC5kYXRlcGlja2VyLl9kYXlPdmVyQ2xhc3MgKyAiOm5vdCguIiArDQoJCQkJCQkJCQkkLmRhdGVwaWNrZXIuX2N1cnJlbnRDbGFzcyArICIpIiwgaW5zdC5kcERpdik7DQoJCQkJCQlpZiAoc2VsWzBdKSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3REYXkoZXZlbnQudGFyZ2V0LCBpbnN0LnNlbGVjdGVkTW9udGgsIGluc3Quc2VsZWN0ZWRZZWFyLCBzZWxbMF0pOw0KCQkJCQkJfQ0KDQoJCQkJCQlvblNlbGVjdCA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJvblNlbGVjdCIpOw0KCQkJCQkJaWYgKG9uU2VsZWN0KSB7DQoJCQkJCQkJZGF0ZVN0ciA9ICQuZGF0ZXBpY2tlci5fZm9ybWF0RGF0ZShpbnN0KTsNCg0KCQkJCQkJCS8vIHRyaWdnZXIgY3VzdG9tIGNhbGxiYWNrDQoJCQkJCQkJb25TZWxlY3QuYXBwbHkoKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WzBdIDogbnVsbCksIFtkYXRlU3RyLCBpbnN0XSk7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQkJCX0NCg0KCQkJCQkJcmV0dXJuIGZhbHNlOyAvLyBkb24ndCBzdWJtaXQgdGhlIGZvcm0NCgkJCQljYXNlIDI3OiAkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJCQlicmVhazsgLy8gaGlkZSBvbiBlc2NhcGUNCgkJCQljYXNlIDMzOiAkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICJzdGVwQmlnTW9udGhzIikgOg0KCQkJCQkJCS0kLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcE1vbnRocyIpKSwgIk0iKTsNCgkJCQkJCWJyZWFrOyAvLyBwcmV2aW91cyBtb250aC95ZWFyIG9uIHBhZ2UgdXAvKyBjdHJsDQoJCQkJY2FzZSAzNDogJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgKGV2ZW50LmN0cmxLZXkgPw0KCQkJCQkJCSskLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcEJpZ01vbnRocyIpIDoNCgkJCQkJCQkrJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgInN0ZXBNb250aHMiKSksICJNIik7DQoJCQkJCQlicmVhazsgLy8gbmV4dCBtb250aC95ZWFyIG9uIHBhZ2UgZG93bi8rIGN0cmwNCgkJCQljYXNlIDM1OiBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9jbGVhckRhdGUoZXZlbnQudGFyZ2V0KTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQlicmVhazsgLy8gY2xlYXIgb24gY3RybCBvciBjb21tYW5kICtlbmQNCgkJCQljYXNlIDM2OiBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9nb3RvVG9kYXkoZXZlbnQudGFyZ2V0KTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQlicmVhazsgLy8gY3VycmVudCBvbiBjdHJsIG9yIGNvbW1hbmQgK2hvbWUNCgkJCQljYXNlIDM3OiBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgKGlzUlRMID8gKzEgOiAtMSksICJEIik7DQoJCQkJCQl9DQoJCQkJCQloYW5kbGVkID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5Ow0KCQkJCQkJLy8gLTEgZGF5IG9uIGN0cmwgb3IgY29tbWFuZCArbGVmdA0KCQkJCQkJaWYgKGV2ZW50Lm9yaWdpbmFsRXZlbnQuYWx0S2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgKGV2ZW50LmN0cmxLZXkgPw0KCQkJCQkJCQktJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgInN0ZXBCaWdNb250aHMiKSA6DQoJCQkJCQkJCS0kLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcE1vbnRocyIpKSwgIk0iKTsNCgkJCQkJCX0NCgkJCQkJCS8vIG5leHQgbW9udGgveWVhciBvbiBhbHQgK2xlZnQgb24gTWFjDQoJCQkJCQlicmVhazsNCgkJCQljYXNlIDM4OiBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgLTcsICJEIik7DQoJCQkJCQl9DQoJCQkJCQloYW5kbGVkID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5Ow0KCQkJCQkJYnJlYWs7IC8vIC0xIHdlZWsgb24gY3RybCBvciBjb21tYW5kICt1cA0KCQkJCWNhc2UgMzk6IGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoZXZlbnQudGFyZ2V0LCAoaXNSVEwgPyAtMSA6ICsxKSwgIkQiKTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQkvLyArMSBkYXkgb24gY3RybCBvciBjb21tYW5kICtyaWdodA0KCQkJCQkJaWYgKGV2ZW50Lm9yaWdpbmFsRXZlbnQuYWx0S2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgKGV2ZW50LmN0cmxLZXkgPw0KCQkJCQkJCQkrJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgInN0ZXBCaWdNb250aHMiKSA6DQoJCQkJCQkJCSskLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic3RlcE1vbnRocyIpKSwgIk0iKTsNCgkJCQkJCX0NCgkJCQkJCS8vIG5leHQgbW9udGgveWVhciBvbiBhbHQgK3JpZ2h0DQoJCQkJCQlicmVhazsNCgkJCQljYXNlIDQwOiBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGV2ZW50LnRhcmdldCwgKzcsICJEIik7DQoJCQkJCQl9DQoJCQkJCQloYW5kbGVkID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5Ow0KCQkJCQkJYnJlYWs7IC8vICsxIHdlZWsgb24gY3RybCBvciBjb21tYW5kICtkb3duDQoJCQkJZGVmYXVsdDogaGFuZGxlZCA9IGZhbHNlOw0KCQkJfQ0KCQl9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM2ICYmIGV2ZW50LmN0cmxLZXkpIHsgLy8gZGlzcGxheSB0aGUgZGF0ZSBwaWNrZXIgb24gY3RybCtob21lDQoJCQkkLmRhdGVwaWNrZXIuX3Nob3dEYXRlcGlja2VyKHRoaXMpOw0KCQl9IGVsc2Ugew0KCQkJaGFuZGxlZCA9IGZhbHNlOw0KCQl9DQoNCgkJaWYgKGhhbmRsZWQpIHsNCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsNCgkJfQ0KCX0sDQoNCgkvKiBGaWx0ZXIgZW50ZXJlZCBjaGFyYWN0ZXJzIC0gYmFzZWQgb24gZGF0ZSBmb3JtYXQuICovDQoJX2RvS2V5UHJlc3M6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBjaGFycywgY2hyLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdChldmVudC50YXJnZXQpOw0KDQoJCWlmICgkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAiY29uc3RyYWluSW5wdXQiKSkgew0KCQkJY2hhcnMgPSAkLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgImRhdGVGb3JtYXQiKSk7DQoJCQljaHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlID09IG51bGwgPyBldmVudC5rZXlDb2RlIDogZXZlbnQuY2hhckNvZGUpOw0KCQkJcmV0dXJuIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCAoY2hyIDwgIiAiIHx8ICFjaGFycyB8fCBjaGFycy5pbmRleE9mKGNocikgPiAtMSk7DQoJCX0NCgl9LA0KDQoJLyogU3luY2hyb25pc2UgbWFudWFsIGVudHJ5IGFuZCBmaWVsZC9hbHRlcm5hdGUgZmllbGQuICovDQoJX2RvS2V5VXA6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCXZhciBkYXRlLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdChldmVudC50YXJnZXQpOw0KDQoJCWlmIChpbnN0LmlucHV0LnZhbCgpICE9PSBpbnN0Lmxhc3RWYWwpIHsNCgkJCXRyeSB7DQoJCQkJZGF0ZSA9ICQuZGF0ZXBpY2tlci5wYXJzZURhdGUoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgImRhdGVGb3JtYXQiKSwNCgkJCQkJKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0LnZhbCgpIDogbnVsbCksDQoJCQkJCSQuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKGluc3QpKTsNCg0KCQkJCWlmIChkYXRlKSB7IC8vIG9ubHkgaWYgdmFsaWQNCgkJCQkJJC5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKGluc3QpOw0KCQkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZUFsdGVybmF0ZShpbnN0KTsNCgkJCQkJJC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQkJCX0NCgkJCX0NCgkJCWNhdGNoIChlcnIpIHsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJLyogUG9wLXVwIHRoZSBkYXRlIHBpY2tlciBmb3IgYSBnaXZlbiBpbnB1dCBmaWVsZC4NCgkgKiBJZiBmYWxzZSByZXR1cm5lZCBmcm9tIGJlZm9yZVNob3cgZXZlbnQgaGFuZGxlciBkbyBub3Qgc2hvdy4NCgkgKiBAcGFyYW0gIGlucHV0ICBlbGVtZW50IC0gdGhlIGlucHV0IGZpZWxkIGF0dGFjaGVkIHRvIHRoZSBkYXRlIHBpY2tlciBvcg0KCSAqCQkJCQlldmVudCAtIGlmIHRyaWdnZXJlZCBieSBmb2N1cw0KCSAqLw0KCV9zaG93RGF0ZXBpY2tlcjogZnVuY3Rpb24oaW5wdXQpIHsNCgkJaW5wdXQgPSBpbnB1dC50YXJnZXQgfHwgaW5wdXQ7DQoJCWlmIChpbnB1dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAiaW5wdXQiKSB7IC8vIGZpbmQgZnJvbSBidXR0b24vaW1hZ2UgdHJpZ2dlcg0KCQkJaW5wdXQgPSAkKCJpbnB1dCIsIGlucHV0LnBhcmVudE5vZGUpWzBdOw0KCQl9DQoNCgkJaWYgKCQuZGF0ZXBpY2tlci5faXNEaXNhYmxlZERhdGVwaWNrZXIoaW5wdXQpIHx8ICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ID09PSBpbnB1dCkgeyAvLyBhbHJlYWR5IGhlcmUNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciBpbnN0LCBiZWZvcmVTaG93LCBiZWZvcmVTaG93U2V0dGluZ3MsIGlzRml4ZWQsDQoJCQlvZmZzZXQsIHNob3dBbmltLCBkdXJhdGlvbjsNCg0KCQlpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGlucHV0KTsNCgkJaWYgKCQuZGF0ZXBpY2tlci5fY3VySW5zdCAmJiAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT09IGluc3QpIHsNCgkJCSQuZGF0ZXBpY2tlci5fY3VySW5zdC5kcERpdi5zdG9wKHRydWUsIHRydWUpOw0KCQkJaWYgKCBpbnN0ICYmICQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgKSB7DQoJCQkJJC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlciggJC5kYXRlcGlja2VyLl9jdXJJbnN0LmlucHV0WzBdICk7DQoJCQl9DQoJCX0NCg0KCQliZWZvcmVTaG93ID0gJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgImJlZm9yZVNob3ciKTsNCgkJYmVmb3JlU2hvd1NldHRpbmdzID0gYmVmb3JlU2hvdyA/IGJlZm9yZVNob3cuYXBwbHkoaW5wdXQsIFtpbnB1dCwgaW5zdF0pIDoge307DQoJCWlmKGJlZm9yZVNob3dTZXR0aW5ncyA9PT0gZmFsc2Upew0KCQkJcmV0dXJuOw0KCQl9DQoJCWRhdGVwaWNrZXJfZXh0ZW5kUmVtb3ZlKGluc3Quc2V0dGluZ3MsIGJlZm9yZVNob3dTZXR0aW5ncyk7DQoNCgkJaW5zdC5sYXN0VmFsID0gbnVsbDsNCgkJJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgPSBpbnB1dDsNCgkJJC5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKGluc3QpOw0KDQoJCWlmICgkLmRhdGVwaWNrZXIuX2luRGlhbG9nKSB7IC8vIGhpZGUgY3Vyc29yDQoJCQlpbnB1dC52YWx1ZSA9ICIiOw0KCQl9DQoJCWlmICghJC5kYXRlcGlja2VyLl9wb3MpIHsgLy8gcG9zaXRpb24gYmVsb3cgaW5wdXQNCgkJCSQuZGF0ZXBpY2tlci5fcG9zID0gJC5kYXRlcGlja2VyLl9maW5kUG9zKGlucHV0KTsNCgkJCSQuZGF0ZXBpY2tlci5fcG9zWzFdICs9IGlucHV0Lm9mZnNldEhlaWdodDsgLy8gYWRkIHRoZSBoZWlnaHQNCgkJfQ0KDQoJCWlzRml4ZWQgPSBmYWxzZTsNCgkJJChpbnB1dCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKSB7DQoJCQlpc0ZpeGVkIHw9ICQodGhpcykuY3NzKCJwb3NpdGlvbiIpID09PSAiZml4ZWQiOw0KCQkJcmV0dXJuICFpc0ZpeGVkOw0KCQl9KTsNCg0KCQlvZmZzZXQgPSB7bGVmdDogJC5kYXRlcGlja2VyLl9wb3NbMF0sIHRvcDogJC5kYXRlcGlja2VyLl9wb3NbMV19Ow0KCQkkLmRhdGVwaWNrZXIuX3BvcyA9IG51bGw7DQoJCS8vdG8gYXZvaWQgZmxhc2hlcyBvbiBGaXJlZm94DQoJCWluc3QuZHBEaXYuZW1wdHkoKTsNCgkJLy8gZGV0ZXJtaW5lIHNpemluZyBvZmZzY3JlZW4NCgkJaW5zdC5kcERpdi5jc3Moe3Bvc2l0aW9uOiAiYWJzb2x1dGUiLCBkaXNwbGF5OiAiYmxvY2siLCB0b3A6ICItMTAwMHB4In0pOw0KCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7DQoJCS8vIGZpeCB3aWR0aCBmb3IgZHluYW1pYyBudW1iZXIgb2YgZGF0ZSBwaWNrZXJzDQoJCS8vIGFuZCBhZGp1c3QgcG9zaXRpb24gYmVmb3JlIHNob3dpbmcNCgkJb2Zmc2V0ID0gJC5kYXRlcGlja2VyLl9jaGVja09mZnNldChpbnN0LCBvZmZzZXQsIGlzRml4ZWQpOw0KCQlpbnN0LmRwRGl2LmNzcyh7cG9zaXRpb246ICgkLmRhdGVwaWNrZXIuX2luRGlhbG9nICYmICQuYmxvY2tVSSA/DQoJCQkic3RhdGljIiA6IChpc0ZpeGVkID8gImZpeGVkIiA6ICJhYnNvbHV0ZSIpKSwgZGlzcGxheTogIm5vbmUiLA0KCQkJbGVmdDogb2Zmc2V0LmxlZnQgKyAicHgiLCB0b3A6IG9mZnNldC50b3AgKyAicHgifSk7DQoNCgkJaWYgKCFpbnN0LmlubGluZSkgew0KCQkJc2hvd0FuaW0gPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic2hvd0FuaW0iKTsNCgkJCWR1cmF0aW9uID0gJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgImR1cmF0aW9uIik7DQoJCQlpbnN0LmRwRGl2LmNzcyggInotaW5kZXgiLCBkYXRlcGlja2VyX2dldFppbmRleCggJCggaW5wdXQgKSApICsgMSApOw0KCQkJJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyA9IHRydWU7DQoNCgkJCWlmICggJC5lZmZlY3RzICYmICQuZWZmZWN0cy5lZmZlY3RbIHNob3dBbmltIF0gKSB7DQoJCQkJaW5zdC5kcERpdi5zaG93KHNob3dBbmltLCAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic2hvd09wdGlvbnMiKSwgZHVyYXRpb24pOw0KCQkJfSBlbHNlIHsNCgkJCQlpbnN0LmRwRGl2W3Nob3dBbmltIHx8ICJzaG93Il0oc2hvd0FuaW0gPyBkdXJhdGlvbiA6IG51bGwpOw0KCQkJfQ0KDQoJCQlpZiAoICQuZGF0ZXBpY2tlci5fc2hvdWxkRm9jdXNJbnB1dCggaW5zdCApICkgew0KCQkJCWluc3QuaW5wdXQuZm9jdXMoKTsNCgkJCX0NCg0KCQkJJC5kYXRlcGlja2VyLl9jdXJJbnN0ID0gaW5zdDsNCgkJfQ0KCX0sDQoNCgkvKiBHZW5lcmF0ZSB0aGUgZGF0ZSBwaWNrZXIgY29udGVudC4gKi8NCglfdXBkYXRlRGF0ZXBpY2tlcjogZnVuY3Rpb24oaW5zdCkgew0KCQl0aGlzLm1heFJvd3MgPSA0OyAvL1Jlc2V0IHRoZSBtYXggbnVtYmVyIG9mIHJvd3MgYmVpbmcgZGlzcGxheWVkIChzZWUgIzcwNDMpDQoJCWRhdGVwaWNrZXJfaW5zdEFjdGl2ZSA9IGluc3Q7IC8vIGZvciBkZWxlZ2F0ZSBob3ZlciBldmVudHMNCgkJaW5zdC5kcERpdi5lbXB0eSgpLmFwcGVuZCh0aGlzLl9nZW5lcmF0ZUhUTUwoaW5zdCkpOw0KCQl0aGlzLl9hdHRhY2hIYW5kbGVycyhpbnN0KTsNCg0KCQl2YXIgb3JpZ3llYXJzaHRtbCwNCgkJCW51bU1vbnRocyA9IHRoaXMuX2dldE51bWJlck9mTW9udGhzKGluc3QpLA0KCQkJY29scyA9IG51bU1vbnRoc1sxXSwNCgkJCXdpZHRoID0gMTcsDQoJCQlhY3RpdmVDZWxsID0gaW5zdC5kcERpdi5maW5kKCAiLiIgKyB0aGlzLl9kYXlPdmVyQ2xhc3MgKyAiIGEiICk7DQoNCgkJaWYgKCBhY3RpdmVDZWxsLmxlbmd0aCA+IDAgKSB7DQoJCQlkYXRlcGlja2VyX2hhbmRsZU1vdXNlb3Zlci5hcHBseSggYWN0aXZlQ2VsbC5nZXQoIDAgKSApOw0KCQl9DQoNCgkJaW5zdC5kcERpdi5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1tdWx0aS0yIHVpLWRhdGVwaWNrZXItbXVsdGktMyB1aS1kYXRlcGlja2VyLW11bHRpLTQiKS53aWR0aCgiIik7DQoJCWlmIChjb2xzID4gMSkgew0KCQkJaW5zdC5kcERpdi5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1tdWx0aS0iICsgY29scykuY3NzKCJ3aWR0aCIsICh3aWR0aCAqIGNvbHMpICsgImVtIik7DQoJCX0NCgkJaW5zdC5kcERpdlsobnVtTW9udGhzWzBdICE9PSAxIHx8IG51bU1vbnRoc1sxXSAhPT0gMSA/ICJhZGQiIDogInJlbW92ZSIpICsNCgkJCSJDbGFzcyJdKCJ1aS1kYXRlcGlja2VyLW11bHRpIik7DQoJCWluc3QuZHBEaXZbKHRoaXMuX2dldChpbnN0LCAiaXNSVEwiKSA/ICJhZGQiIDogInJlbW92ZSIpICsNCgkJCSJDbGFzcyJdKCJ1aS1kYXRlcGlja2VyLXJ0bCIpOw0KDQoJCWlmIChpbnN0ID09PSAkLmRhdGVwaWNrZXIuX2N1ckluc3QgJiYgJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyAmJiAkLmRhdGVwaWNrZXIuX3Nob3VsZEZvY3VzSW5wdXQoIGluc3QgKSApIHsNCgkJCWluc3QuaW5wdXQuZm9jdXMoKTsNCgkJfQ0KDQoJCS8vIGRlZmZlcmVkIHJlbmRlciBvZiB0aGUgeWVhcnMgc2VsZWN0ICh0byBhdm9pZCBmbGFzaGVzIG9uIEZpcmVmb3gpDQoJCWlmKCBpbnN0LnllYXJzaHRtbCApew0KCQkJb3JpZ3llYXJzaHRtbCA9IGluc3QueWVhcnNodG1sOw0KCQkJc2V0VGltZW91dChmdW5jdGlvbigpew0KCQkJCS8vYXNzdXJlIHRoYXQgaW5zdC55ZWFyc2h0bWwgZGlkbid0IGNoYW5nZS4NCgkJCQlpZiggb3JpZ3llYXJzaHRtbCA9PT0gaW5zdC55ZWFyc2h0bWwgJiYgaW5zdC55ZWFyc2h0bWwgKXsNCgkJCQkJaW5zdC5kcERpdi5maW5kKCJzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyOmZpcnN0IikucmVwbGFjZVdpdGgoaW5zdC55ZWFyc2h0bWwpOw0KCQkJCX0NCgkJCQlvcmlneWVhcnNodG1sID0gaW5zdC55ZWFyc2h0bWwgPSBudWxsOw0KCQkJfSwgMCk7DQoJCX0NCgl9LA0KDQoJLy8gIzY2OTQgLSBkb24ndCBmb2N1cyB0aGUgaW5wdXQgaWYgaXQncyBhbHJlYWR5IGZvY3VzZWQNCgkvLyB0aGlzIGJyZWFrcyB0aGUgY2hhbmdlIGV2ZW50IGluIElFDQoJLy8gU3VwcG9ydDogSUUgYW5kIGpRdWVyeSA8MS45DQoJX3Nob3VsZEZvY3VzSW5wdXQ6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQlyZXR1cm4gaW5zdC5pbnB1dCAmJiBpbnN0LmlucHV0LmlzKCAiOnZpc2libGUiICkgJiYgIWluc3QuaW5wdXQuaXMoICI6ZGlzYWJsZWQiICkgJiYgIWluc3QuaW5wdXQuaXMoICI6Zm9jdXMiICk7DQoJfSwNCg0KCS8qIENoZWNrIHBvc2l0aW9uaW5nIHRvIHJlbWFpbiBvbiBzY3JlZW4uICovDQoJX2NoZWNrT2Zmc2V0OiBmdW5jdGlvbihpbnN0LCBvZmZzZXQsIGlzRml4ZWQpIHsNCgkJdmFyIGRwV2lkdGggPSBpbnN0LmRwRGl2Lm91dGVyV2lkdGgoKSwNCgkJCWRwSGVpZ2h0ID0gaW5zdC5kcERpdi5vdXRlckhlaWdodCgpLA0KCQkJaW5wdXRXaWR0aCA9IGluc3QuaW5wdXQgPyBpbnN0LmlucHV0Lm91dGVyV2lkdGgoKSA6IDAsDQoJCQlpbnB1dEhlaWdodCA9IGluc3QuaW5wdXQgPyBpbnN0LmlucHV0Lm91dGVySGVpZ2h0KCkgOiAwLA0KCQkJdmlld1dpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoICsgKGlzRml4ZWQgPyAwIDogJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKSwNCgkJCXZpZXdIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgKGlzRml4ZWQgPyAwIDogJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpOw0KDQoJCW9mZnNldC5sZWZ0IC09ICh0aGlzLl9nZXQoaW5zdCwgImlzUlRMIikgPyAoZHBXaWR0aCAtIGlucHV0V2lkdGgpIDogMCk7DQoJCW9mZnNldC5sZWZ0IC09IChpc0ZpeGVkICYmIG9mZnNldC5sZWZ0ID09PSBpbnN0LmlucHV0Lm9mZnNldCgpLmxlZnQpID8gJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpIDogMDsNCgkJb2Zmc2V0LnRvcCAtPSAoaXNGaXhlZCAmJiBvZmZzZXQudG9wID09PSAoaW5zdC5pbnB1dC5vZmZzZXQoKS50b3AgKyBpbnB1dEhlaWdodCkpID8gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgOiAwOw0KDQoJCS8vIG5vdyBjaGVjayBpZiBkYXRlcGlja2VyIGlzIHNob3dpbmcgb3V0c2lkZSB3aW5kb3cgdmlld3BvcnQgLSBtb3ZlIHRvIGEgYmV0dGVyIHBsYWNlIGlmIHNvLg0KCQlvZmZzZXQubGVmdCAtPSBNYXRoLm1pbihvZmZzZXQubGVmdCwgKG9mZnNldC5sZWZ0ICsgZHBXaWR0aCA+IHZpZXdXaWR0aCAmJiB2aWV3V2lkdGggPiBkcFdpZHRoKSA/DQoJCQlNYXRoLmFicyhvZmZzZXQubGVmdCArIGRwV2lkdGggLSB2aWV3V2lkdGgpIDogMCk7DQoJCW9mZnNldC50b3AgLT0gTWF0aC5taW4ob2Zmc2V0LnRvcCwgKG9mZnNldC50b3AgKyBkcEhlaWdodCA+IHZpZXdIZWlnaHQgJiYgdmlld0hlaWdodCA+IGRwSGVpZ2h0KSA/DQoJCQlNYXRoLmFicyhkcEhlaWdodCArIGlucHV0SGVpZ2h0KSA6IDApOw0KDQoJCXJldHVybiBvZmZzZXQ7DQoJfSwNCg0KCS8qIEZpbmQgYW4gb2JqZWN0J3MgcG9zaXRpb24gb24gdGhlIHNjcmVlbi4gKi8NCglfZmluZFBvczogZnVuY3Rpb24ob2JqKSB7DQoJCXZhciBwb3NpdGlvbiwNCgkJCWluc3QgPSB0aGlzLl9nZXRJbnN0KG9iaiksDQoJCQlpc1JUTCA9IHRoaXMuX2dldChpbnN0LCAiaXNSVEwiKTsNCg0KCQl3aGlsZSAob2JqICYmIChvYmoudHlwZSA9PT0gImhpZGRlbiIgfHwgb2JqLm5vZGVUeXBlICE9PSAxIHx8ICQuZXhwci5maWx0ZXJzLmhpZGRlbihvYmopKSkgew0KCQkJb2JqID0gb2JqW2lzUlRMID8gInByZXZpb3VzU2libGluZyIgOiAibmV4dFNpYmxpbmciXTsNCgkJfQ0KDQoJCXBvc2l0aW9uID0gJChvYmopLm9mZnNldCgpOw0KCQlyZXR1cm4gW3Bvc2l0aW9uLmxlZnQsIHBvc2l0aW9uLnRvcF07DQoJfSwNCg0KCS8qIEhpZGUgdGhlIGRhdGUgcGlja2VyIGZyb20gdmlldy4NCgkgKiBAcGFyYW0gIGlucHV0ICBlbGVtZW50IC0gdGhlIGlucHV0IGZpZWxkIGF0dGFjaGVkIHRvIHRoZSBkYXRlIHBpY2tlcg0KCSAqLw0KCV9oaWRlRGF0ZXBpY2tlcjogZnVuY3Rpb24oaW5wdXQpIHsNCgkJdmFyIHNob3dBbmltLCBkdXJhdGlvbiwgcG9zdFByb2Nlc3MsIG9uQ2xvc2UsDQoJCQlpbnN0ID0gdGhpcy5fY3VySW5zdDsNCg0KCQlpZiAoIWluc3QgfHwgKGlucHV0ICYmIGluc3QgIT09ICQuZGF0YShpbnB1dCwgImRhdGVwaWNrZXIiKSkpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICh0aGlzLl9kYXRlcGlja2VyU2hvd2luZykgew0KCQkJc2hvd0FuaW0gPSB0aGlzLl9nZXQoaW5zdCwgInNob3dBbmltIik7DQoJCQlkdXJhdGlvbiA9IHRoaXMuX2dldChpbnN0LCAiZHVyYXRpb24iKTsNCgkJCXBvc3RQcm9jZXNzID0gZnVuY3Rpb24oKSB7DQoJCQkJJC5kYXRlcGlja2VyLl90aWR5RGlhbG9nKGluc3QpOw0KCQkJfTsNCg0KCQkJLy8gREVQUkVDQVRFRDogYWZ0ZXIgQkMgZm9yIDEuOC54ICQuZWZmZWN0c1sgc2hvd0FuaW0gXSBpcyBub3QgbmVlZGVkDQoJCQlpZiAoICQuZWZmZWN0cyAmJiAoICQuZWZmZWN0cy5lZmZlY3RbIHNob3dBbmltIF0gfHwgJC5lZmZlY3RzWyBzaG93QW5pbSBdICkgKSB7DQoJCQkJaW5zdC5kcERpdi5oaWRlKHNob3dBbmltLCAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAic2hvd09wdGlvbnMiKSwgZHVyYXRpb24sIHBvc3RQcm9jZXNzKTsNCgkJCX0gZWxzZSB7DQoJCQkJaW5zdC5kcERpdlsoc2hvd0FuaW0gPT09ICJzbGlkZURvd24iID8gInNsaWRlVXAiIDoNCgkJCQkJKHNob3dBbmltID09PSAiZmFkZUluIiA/ICJmYWRlT3V0IiA6ICJoaWRlIikpXSgoc2hvd0FuaW0gPyBkdXJhdGlvbiA6IG51bGwpLCBwb3N0UHJvY2Vzcyk7DQoJCQl9DQoNCgkJCWlmICghc2hvd0FuaW0pIHsNCgkJCQlwb3N0UHJvY2VzcygpOw0KCQkJfQ0KCQkJdGhpcy5fZGF0ZXBpY2tlclNob3dpbmcgPSBmYWxzZTsNCg0KCQkJb25DbG9zZSA9IHRoaXMuX2dldChpbnN0LCAib25DbG9zZSIpOw0KCQkJaWYgKG9uQ2xvc2UpIHsNCgkJCQlvbkNsb3NlLmFwcGx5KChpbnN0LmlucHV0ID8gaW5zdC5pbnB1dFswXSA6IG51bGwpLCBbKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0LnZhbCgpIDogIiIpLCBpbnN0XSk7DQoJCQl9DQoNCgkJCXRoaXMuX2xhc3RJbnB1dCA9IG51bGw7DQoJCQlpZiAodGhpcy5faW5EaWFsb2cpIHsNCgkJCQl0aGlzLl9kaWFsb2dJbnB1dC5jc3MoeyBwb3NpdGlvbjogImFic29sdXRlIiwgbGVmdDogIjAiLCB0b3A6ICItMTAwcHgiIH0pOw0KCQkJCWlmICgkLmJsb2NrVUkpIHsNCgkJCQkJJC51bmJsb2NrVUkoKTsNCgkJCQkJJCgiYm9keSIpLmFwcGVuZCh0aGlzLmRwRGl2KTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLl9pbkRpYWxvZyA9IGZhbHNlOw0KCQl9DQoJfSwNCg0KCS8qIFRpZHkgdXAgYWZ0ZXIgYSBkaWFsb2cgZGlzcGxheS4gKi8NCglfdGlkeURpYWxvZzogZnVuY3Rpb24oaW5zdCkgew0KCQlpbnN0LmRwRGl2LnJlbW92ZUNsYXNzKHRoaXMuX2RpYWxvZ0NsYXNzKS51bmJpbmQoIi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIik7DQoJfSwNCg0KCS8qIENsb3NlIGRhdGUgcGlja2VyIGlmIGNsaWNrZWQgZWxzZXdoZXJlLiAqLw0KCV9jaGVja0V4dGVybmFsQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KSB7DQoJCWlmICghJC5kYXRlcGlja2VyLl9jdXJJbnN0KSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgJHRhcmdldCA9ICQoZXZlbnQudGFyZ2V0KSwNCgkJCWluc3QgPSAkLmRhdGVwaWNrZXIuX2dldEluc3QoJHRhcmdldFswXSk7DQoNCgkJaWYgKCAoICggJHRhcmdldFswXS5pZCAhPT0gJC5kYXRlcGlja2VyLl9tYWluRGl2SWQgJiYNCgkJCQkkdGFyZ2V0LnBhcmVudHMoIiMiICsgJC5kYXRlcGlja2VyLl9tYWluRGl2SWQpLmxlbmd0aCA9PT0gMCAmJg0KCQkJCSEkdGFyZ2V0Lmhhc0NsYXNzKCQuZGF0ZXBpY2tlci5tYXJrZXJDbGFzc05hbWUpICYmDQoJCQkJISR0YXJnZXQuY2xvc2VzdCgiLiIgKyAkLmRhdGVwaWNrZXIuX3RyaWdnZXJDbGFzcykubGVuZ3RoICYmDQoJCQkJJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyAmJiAhKCQuZGF0ZXBpY2tlci5faW5EaWFsb2cgJiYgJC5ibG9ja1VJKSApICkgfHwNCgkJCSggJHRhcmdldC5oYXNDbGFzcygkLmRhdGVwaWNrZXIubWFya2VyQ2xhc3NOYW1lKSAmJiAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT09IGluc3QgKSApIHsNCgkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCX0NCgl9LA0KDQoJLyogQWRqdXN0IG9uZSBvZiB0aGUgZGF0ZSBzdWItZmllbGRzLiAqLw0KCV9hZGp1c3REYXRlOiBmdW5jdGlvbihpZCwgb2Zmc2V0LCBwZXJpb2QpIHsNCgkJdmFyIHRhcmdldCA9ICQoaWQpLA0KCQkJaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0WzBdKTsNCg0KCQlpZiAodGhpcy5faXNEaXNhYmxlZERhdGVwaWNrZXIodGFyZ2V0WzBdKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMuX2FkanVzdEluc3REYXRlKGluc3QsIG9mZnNldCArDQoJCQkocGVyaW9kID09PSAiTSIgPyB0aGlzLl9nZXQoaW5zdCwgInNob3dDdXJyZW50QXRQb3MiKSA6IDApLCAvLyB1bmRvIHBvc2l0aW9uaW5nDQoJCQlwZXJpb2QpOw0KCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCX0sDQoNCgkvKiBBY3Rpb24gZm9yIGN1cnJlbnQgbGluay4gKi8NCglfZ290b1RvZGF5OiBmdW5jdGlvbihpZCkgew0KCQl2YXIgZGF0ZSwNCgkJCXRhcmdldCA9ICQoaWQpLA0KCQkJaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0WzBdKTsNCg0KCQlpZiAodGhpcy5fZ2V0KGluc3QsICJnb3RvQ3VycmVudCIpICYmIGluc3QuY3VycmVudERheSkgew0KCQkJaW5zdC5zZWxlY3RlZERheSA9IGluc3QuY3VycmVudERheTsNCgkJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gaW5zdC5jdXJyZW50TW9udGg7DQoJCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBpbnN0LmN1cnJlbnRZZWFyOw0KCQl9IGVsc2Ugew0KCQkJZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQlpbnN0LnNlbGVjdGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTsNCgkJCWluc3QuZHJhd1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsNCgkJfQ0KCQl0aGlzLl9ub3RpZnlDaGFuZ2UoaW5zdCk7DQoJCXRoaXMuX2FkanVzdERhdGUodGFyZ2V0KTsNCgl9LA0KDQoJLyogQWN0aW9uIGZvciBzZWxlY3RpbmcgYSBuZXcgbW9udGgveWVhci4gKi8NCglfc2VsZWN0TW9udGhZZWFyOiBmdW5jdGlvbihpZCwgc2VsZWN0LCBwZXJpb2QpIHsNCgkJdmFyIHRhcmdldCA9ICQoaWQpLA0KCQkJaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0WzBdKTsNCg0KCQlpbnN0WyJzZWxlY3RlZCIgKyAocGVyaW9kID09PSAiTSIgPyAiTW9udGgiIDogIlllYXIiKV0gPQ0KCQlpbnN0WyJkcmF3IiArIChwZXJpb2QgPT09ICJNIiA/ICJNb250aCIgOiAiWWVhciIpXSA9DQoJCQlwYXJzZUludChzZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWUsMTApOw0KDQoJCXRoaXMuX25vdGlmeUNoYW5nZShpbnN0KTsNCgkJdGhpcy5fYWRqdXN0RGF0ZSh0YXJnZXQpOw0KCX0sDQoNCgkvKiBBY3Rpb24gZm9yIHNlbGVjdGluZyBhIGRheS4gKi8NCglfc2VsZWN0RGF5OiBmdW5jdGlvbihpZCwgbW9udGgsIHllYXIsIHRkKSB7DQoJCXZhciBpbnN0LA0KCQkJdGFyZ2V0ID0gJChpZCk7DQoNCgkJaWYgKCQodGQpLmhhc0NsYXNzKHRoaXMuX3Vuc2VsZWN0YWJsZUNsYXNzKSB8fCB0aGlzLl9pc0Rpc2FibGVkRGF0ZXBpY2tlcih0YXJnZXRbMF0pKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXRbMF0pOw0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gaW5zdC5jdXJyZW50RGF5ID0gJCgiYSIsIHRkKS5odG1sKCk7DQoJCWluc3Quc2VsZWN0ZWRNb250aCA9IGluc3QuY3VycmVudE1vbnRoID0gbW9udGg7DQoJCWluc3Quc2VsZWN0ZWRZZWFyID0gaW5zdC5jdXJyZW50WWVhciA9IHllYXI7DQoJCXRoaXMuX3NlbGVjdERhdGUoaWQsIHRoaXMuX2Zvcm1hdERhdGUoaW5zdCwNCgkJCWluc3QuY3VycmVudERheSwgaW5zdC5jdXJyZW50TW9udGgsIGluc3QuY3VycmVudFllYXIpKTsNCgl9LA0KDQoJLyogRXJhc2UgdGhlIGlucHV0IGZpZWxkIGFuZCBoaWRlIHRoZSBkYXRlIHBpY2tlci4gKi8NCglfY2xlYXJEYXRlOiBmdW5jdGlvbihpZCkgew0KCQl2YXIgdGFyZ2V0ID0gJChpZCk7DQoJCXRoaXMuX3NlbGVjdERhdGUodGFyZ2V0LCAiIik7DQoJfSwNCg0KCS8qIFVwZGF0ZSB0aGUgaW5wdXQgZmllbGQgd2l0aCB0aGUgc2VsZWN0ZWQgZGF0ZS4gKi8NCglfc2VsZWN0RGF0ZTogZnVuY3Rpb24oaWQsIGRhdGVTdHIpIHsNCgkJdmFyIG9uU2VsZWN0LA0KCQkJdGFyZ2V0ID0gJChpZCksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXRbMF0pOw0KDQoJCWRhdGVTdHIgPSAoZGF0ZVN0ciAhPSBudWxsID8gZGF0ZVN0ciA6IHRoaXMuX2Zvcm1hdERhdGUoaW5zdCkpOw0KCQlpZiAoaW5zdC5pbnB1dCkgew0KCQkJaW5zdC5pbnB1dC52YWwoZGF0ZVN0cik7DQoJCX0NCgkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKGluc3QpOw0KDQoJCW9uU2VsZWN0ID0gdGhpcy5fZ2V0KGluc3QsICJvblNlbGVjdCIpOw0KCQlpZiAob25TZWxlY3QpIHsNCgkJCW9uU2VsZWN0LmFwcGx5KChpbnN0LmlucHV0ID8gaW5zdC5pbnB1dFswXSA6IG51bGwpLCBbZGF0ZVN0ciwgaW5zdF0pOyAgLy8gdHJpZ2dlciBjdXN0b20gY2FsbGJhY2sNCgkJfSBlbHNlIGlmIChpbnN0LmlucHV0KSB7DQoJCQlpbnN0LmlucHV0LnRyaWdnZXIoImNoYW5nZSIpOyAvLyBmaXJlIHRoZSBjaGFuZ2UgZXZlbnQNCgkJfQ0KDQoJCWlmIChpbnN0LmlubGluZSl7DQoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5faGlkZURhdGVwaWNrZXIoKTsNCgkJCXRoaXMuX2xhc3RJbnB1dCA9IGluc3QuaW5wdXRbMF07DQoJCQlpZiAodHlwZW9mKGluc3QuaW5wdXRbMF0pICE9PSAib2JqZWN0Iikgew0KCQkJCWluc3QuaW5wdXQuZm9jdXMoKTsgLy8gcmVzdG9yZSBmb2N1cw0KCQkJfQ0KCQkJdGhpcy5fbGFzdElucHV0ID0gbnVsbDsNCgkJfQ0KCX0sDQoNCgkvKiBVcGRhdGUgYW55IGFsdGVybmF0ZSBmaWVsZCB0byBzeW5jaHJvbmlzZSB3aXRoIHRoZSBtYWluIGZpZWxkLiAqLw0KCV91cGRhdGVBbHRlcm5hdGU6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIGFsdEZvcm1hdCwgZGF0ZSwgZGF0ZVN0ciwNCgkJCWFsdEZpZWxkID0gdGhpcy5fZ2V0KGluc3QsICJhbHRGaWVsZCIpOw0KDQoJCWlmIChhbHRGaWVsZCkgeyAvLyB1cGRhdGUgYWx0ZXJuYXRlIGZpZWxkIHRvbw0KCQkJYWx0Rm9ybWF0ID0gdGhpcy5fZ2V0KGluc3QsICJhbHRGb3JtYXQiKSB8fCB0aGlzLl9nZXQoaW5zdCwgImRhdGVGb3JtYXQiKTsNCgkJCWRhdGUgPSB0aGlzLl9nZXREYXRlKGluc3QpOw0KCQkJZGF0ZVN0ciA9IHRoaXMuZm9ybWF0RGF0ZShhbHRGb3JtYXQsIGRhdGUsIHRoaXMuX2dldEZvcm1hdENvbmZpZyhpbnN0KSk7DQoJCQkkKGFsdEZpZWxkKS5lYWNoKGZ1bmN0aW9uKCkgeyAkKHRoaXMpLnZhbChkYXRlU3RyKTsgfSk7DQoJCX0NCgl9LA0KDQoJLyogU2V0IGFzIGJlZm9yZVNob3dEYXkgZnVuY3Rpb24gdG8gcHJldmVudCBzZWxlY3Rpb24gb2Ygd2Vla2VuZHMuDQoJICogQHBhcmFtICBkYXRlICBEYXRlIC0gdGhlIGRhdGUgdG8gY3VzdG9taXNlDQoJICogQHJldHVybiBbYm9vbGVhbiwgc3RyaW5nXSAtIGlzIHRoaXMgZGF0ZSBzZWxlY3RhYmxlPywgd2hhdCBpcyBpdHMgQ1NTIGNsYXNzPw0KCSAqLw0KCW5vV2Vla2VuZHM6IGZ1bmN0aW9uKGRhdGUpIHsNCgkJdmFyIGRheSA9IGRhdGUuZ2V0RGF5KCk7DQoJCXJldHVybiBbKGRheSA+IDAgJiYgZGF5IDwgNiksICIiXTsNCgl9LA0KDQoJLyogU2V0IGFzIGNhbGN1bGF0ZVdlZWsgdG8gZGV0ZXJtaW5lIHRoZSB3ZWVrIG9mIHRoZSB5ZWFyIGJhc2VkIG9uIHRoZSBJU08gODYwMSBkZWZpbml0aW9uLg0KCSAqIEBwYXJhbSAgZGF0ZSAgRGF0ZSAtIHRoZSBkYXRlIHRvIGdldCB0aGUgd2VlayBmb3INCgkgKiBAcmV0dXJuICBudW1iZXIgLSB0aGUgbnVtYmVyIG9mIHRoZSB3ZWVrIHdpdGhpbiB0aGUgeWVhciB0aGF0IGNvbnRhaW5zIHRoaXMgZGF0ZQ0KCSAqLw0KCWlzbzg2MDFXZWVrOiBmdW5jdGlvbihkYXRlKSB7DQoJCXZhciB0aW1lLA0KCQkJY2hlY2tEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOw0KDQoJCS8vIEZpbmQgVGh1cnNkYXkgb2YgdGhpcyB3ZWVrIHN0YXJ0aW5nIG9uIE1vbmRheQ0KCQljaGVja0RhdGUuc2V0RGF0ZShjaGVja0RhdGUuZ2V0RGF0ZSgpICsgNCAtIChjaGVja0RhdGUuZ2V0RGF5KCkgfHwgNykpOw0KDQoJCXRpbWUgPSBjaGVja0RhdGUuZ2V0VGltZSgpOw0KCQljaGVja0RhdGUuc2V0TW9udGgoMCk7IC8vIENvbXBhcmUgd2l0aCBKYW4gMQ0KCQljaGVja0RhdGUuc2V0RGF0ZSgxKTsNCgkJcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yb3VuZCgodGltZSAtIGNoZWNrRGF0ZSkgLyA4NjQwMDAwMCkgLyA3KSArIDE7DQoJfSwNCg0KCS8qIFBhcnNlIGEgc3RyaW5nIHZhbHVlIGludG8gYSBkYXRlIG9iamVjdC4NCgkgKiBTZWUgZm9ybWF0RGF0ZSBiZWxvdyBmb3IgdGhlIHBvc3NpYmxlIGZvcm1hdHMuDQoJICoNCgkgKiBAcGFyYW0gIGZvcm1hdCBzdHJpbmcgLSB0aGUgZXhwZWN0ZWQgZm9ybWF0IG9mIHRoZSBkYXRlDQoJICogQHBhcmFtICB2YWx1ZSBzdHJpbmcgLSB0aGUgZGF0ZSBpbiB0aGUgYWJvdmUgZm9ybWF0DQoJICogQHBhcmFtICBzZXR0aW5ncyBPYmplY3QgLSBhdHRyaWJ1dGVzIGluY2x1ZGU6DQoJICoJCQkJCXNob3J0WWVhckN1dG9mZiAgbnVtYmVyIC0gdGhlIGN1dG9mZiB5ZWFyIGZvciBkZXRlcm1pbmluZyB0aGUgY2VudHVyeSAob3B0aW9uYWwpDQoJICoJCQkJCWRheU5hbWVzU2hvcnQJc3RyaW5nWzddIC0gYWJicmV2aWF0ZWQgbmFtZXMgb2YgdGhlIGRheXMgZnJvbSBTdW5kYXkgKG9wdGlvbmFsKQ0KCSAqCQkJCQlkYXlOYW1lcwkJc3RyaW5nWzddIC0gbmFtZXMgb2YgdGhlIGRheXMgZnJvbSBTdW5kYXkgKG9wdGlvbmFsKQ0KCSAqCQkJCQltb250aE5hbWVzU2hvcnQgc3RyaW5nWzEyXSAtIGFiYnJldmlhdGVkIG5hbWVzIG9mIHRoZSBtb250aHMgKG9wdGlvbmFsKQ0KCSAqCQkJCQltb250aE5hbWVzCQlzdHJpbmdbMTJdIC0gbmFtZXMgb2YgdGhlIG1vbnRocyAob3B0aW9uYWwpDQoJICogQHJldHVybiAgRGF0ZSAtIHRoZSBleHRyYWN0ZWQgZGF0ZSB2YWx1ZSBvciBudWxsIGlmIHZhbHVlIGlzIGJsYW5rDQoJICovDQoJcGFyc2VEYXRlOiBmdW5jdGlvbiAoZm9ybWF0LCB2YWx1ZSwgc2V0dGluZ3MpIHsNCgkJaWYgKGZvcm1hdCA9PSBudWxsIHx8IHZhbHVlID09IG51bGwpIHsNCgkJCXRocm93ICJJbnZhbGlkIGFyZ3VtZW50cyI7DQoJCX0NCg0KCQl2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiID8gdmFsdWUudG9TdHJpbmcoKSA6IHZhbHVlICsgIiIpOw0KCQlpZiAodmFsdWUgPT09ICIiKSB7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCXZhciBpRm9ybWF0LCBkaW0sIGV4dHJhLA0KCQkJaVZhbHVlID0gMCwNCgkJCXNob3J0WWVhckN1dG9mZlRlbXAgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5zaG9ydFllYXJDdXRvZmYgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5zaG9ydFllYXJDdXRvZmYsDQoJCQlzaG9ydFllYXJDdXRvZmYgPSAodHlwZW9mIHNob3J0WWVhckN1dG9mZlRlbXAgIT09ICJzdHJpbmciID8gc2hvcnRZZWFyQ3V0b2ZmVGVtcCA6DQoJCQkJbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICUgMTAwICsgcGFyc2VJbnQoc2hvcnRZZWFyQ3V0b2ZmVGVtcCwgMTApKSwNCgkJCWRheU5hbWVzU2hvcnQgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5kYXlOYW1lc1Nob3J0IDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMuZGF5TmFtZXNTaG9ydCwNCgkJCWRheU5hbWVzID0gKHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXMgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lcywNCgkJCW1vbnRoTmFtZXNTaG9ydCA9IChzZXR0aW5ncyA/IHNldHRpbmdzLm1vbnRoTmFtZXNTaG9ydCA6IG51bGwpIHx8IHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCwNCgkJCW1vbnRoTmFtZXMgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5tb250aE5hbWVzIDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMubW9udGhOYW1lcywNCgkJCXllYXIgPSAtMSwNCgkJCW1vbnRoID0gLTEsDQoJCQlkYXkgPSAtMSwNCgkJCWRveSA9IC0xLA0KCQkJbGl0ZXJhbCA9IGZhbHNlLA0KCQkJZGF0ZSwNCgkJCS8vIENoZWNrIHdoZXRoZXIgYSBmb3JtYXQgY2hhcmFjdGVyIGlzIGRvdWJsZWQNCgkJCWxvb2tBaGVhZCA9IGZ1bmN0aW9uKG1hdGNoKSB7DQoJCQkJdmFyIG1hdGNoZXMgPSAoaUZvcm1hdCArIDEgPCBmb3JtYXQubGVuZ3RoICYmIGZvcm1hdC5jaGFyQXQoaUZvcm1hdCArIDEpID09PSBtYXRjaCk7DQoJCQkJaWYgKG1hdGNoZXMpIHsNCgkJCQkJaUZvcm1hdCsrOw0KCQkJCX0NCgkJCQlyZXR1cm4gbWF0Y2hlczsNCgkJCX0sDQoJCQkvLyBFeHRyYWN0IGEgbnVtYmVyIGZyb20gdGhlIHN0cmluZyB2YWx1ZQ0KCQkJZ2V0TnVtYmVyID0gZnVuY3Rpb24obWF0Y2gpIHsNCgkJCQl2YXIgaXNEb3VibGVkID0gbG9va0FoZWFkKG1hdGNoKSwNCgkJCQkJc2l6ZSA9IChtYXRjaCA9PT0gIkAiID8gMTQgOiAobWF0Y2ggPT09ICIhIiA/IDIwIDoNCgkJCQkJKG1hdGNoID09PSAieSIgJiYgaXNEb3VibGVkID8gNCA6IChtYXRjaCA9PT0gIm8iID8gMyA6IDIpKSkpLA0KCQkJCQltaW5TaXplID0gKG1hdGNoID09PSAieSIgPyBzaXplIDogMSksDQoJCQkJCWRpZ2l0cyA9IG5ldyBSZWdFeHAoIl5cXGR7IiArIG1pblNpemUgKyAiLCIgKyBzaXplICsgIn0iKSwNCgkJCQkJbnVtID0gdmFsdWUuc3Vic3RyaW5nKGlWYWx1ZSkubWF0Y2goZGlnaXRzKTsNCgkJCQlpZiAoIW51bSkgew0KCQkJCQl0aHJvdyAiTWlzc2luZyBudW1iZXIgYXQgcG9zaXRpb24gIiArIGlWYWx1ZTsNCgkJCQl9DQoJCQkJaVZhbHVlICs9IG51bVswXS5sZW5ndGg7DQoJCQkJcmV0dXJuIHBhcnNlSW50KG51bVswXSwgMTApOw0KCQkJfSwNCgkJCS8vIEV4dHJhY3QgYSBuYW1lIGZyb20gdGhlIHN0cmluZyB2YWx1ZSBhbmQgY29udmVydCB0byBhbiBpbmRleA0KCQkJZ2V0TmFtZSA9IGZ1bmN0aW9uKG1hdGNoLCBzaG9ydE5hbWVzLCBsb25nTmFtZXMpIHsNCgkJCQl2YXIgaW5kZXggPSAtMSwNCgkJCQkJbmFtZXMgPSAkLm1hcChsb29rQWhlYWQobWF0Y2gpID8gbG9uZ05hbWVzIDogc2hvcnROYW1lcywgZnVuY3Rpb24gKHYsIGspIHsNCgkJCQkJCXJldHVybiBbIFtrLCB2XSBdOw0KCQkJCQl9KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7DQoJCQkJCQlyZXR1cm4gLShhWzFdLmxlbmd0aCAtIGJbMV0ubGVuZ3RoKTsNCgkJCQkJfSk7DQoNCgkJCQkkLmVhY2gobmFtZXMsIGZ1bmN0aW9uIChpLCBwYWlyKSB7DQoJCQkJCXZhciBuYW1lID0gcGFpclsxXTsNCgkJCQkJaWYgKHZhbHVlLnN1YnN0cihpVmFsdWUsIG5hbWUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpID09PSBuYW1lLnRvTG93ZXJDYXNlKCkpIHsNCgkJCQkJCWluZGV4ID0gcGFpclswXTsNCgkJCQkJCWlWYWx1ZSArPSBuYW1lLmxlbmd0aDsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJCWlmIChpbmRleCAhPT0gLTEpIHsNCgkJCQkJcmV0dXJuIGluZGV4ICsgMTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0aHJvdyAiVW5rbm93biBuYW1lIGF0IHBvc2l0aW9uICIgKyBpVmFsdWU7DQoJCQkJfQ0KCQkJfSwNCgkJCS8vIENvbmZpcm0gdGhhdCBhIGxpdGVyYWwgY2hhcmFjdGVyIG1hdGNoZXMgdGhlIHN0cmluZyB2YWx1ZQ0KCQkJY2hlY2tMaXRlcmFsID0gZnVuY3Rpb24oKSB7DQoJCQkJaWYgKHZhbHVlLmNoYXJBdChpVmFsdWUpICE9PSBmb3JtYXQuY2hhckF0KGlGb3JtYXQpKSB7DQoJCQkJCXRocm93ICJVbmV4cGVjdGVkIGxpdGVyYWwgYXQgcG9zaXRpb24gIiArIGlWYWx1ZTsNCgkJCQl9DQoJCQkJaVZhbHVlKys7DQoJCQl9Ow0KDQoJCWZvciAoaUZvcm1hdCA9IDA7IGlGb3JtYXQgPCBmb3JtYXQubGVuZ3RoOyBpRm9ybWF0KyspIHsNCgkJCWlmIChsaXRlcmFsKSB7DQoJCQkJaWYgKGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkgPT09ICInIiAmJiAhbG9va0FoZWFkKCInIikpIHsNCgkJCQkJbGl0ZXJhbCA9IGZhbHNlOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWNoZWNrTGl0ZXJhbCgpOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJc3dpdGNoIChmb3JtYXQuY2hhckF0KGlGb3JtYXQpKSB7DQoJCQkJCWNhc2UgImQiOg0KCQkJCQkJZGF5ID0gZ2V0TnVtYmVyKCJkIik7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiRCI6DQoJCQkJCQlnZXROYW1lKCJEIiwgZGF5TmFtZXNTaG9ydCwgZGF5TmFtZXMpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIm8iOg0KCQkJCQkJZG95ID0gZ2V0TnVtYmVyKCJvIik7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAibSI6DQoJCQkJCQltb250aCA9IGdldE51bWJlcigibSIpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIk0iOg0KCQkJCQkJbW9udGggPSBnZXROYW1lKCJNIiwgbW9udGhOYW1lc1Nob3J0LCBtb250aE5hbWVzKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJ5IjoNCgkJCQkJCXllYXIgPSBnZXROdW1iZXIoInkiKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJAIjoNCgkJCQkJCWRhdGUgPSBuZXcgRGF0ZShnZXROdW1iZXIoIkAiKSk7DQoJCQkJCQl5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQkJCQkJbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxOw0KCQkJCQkJZGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiISI6DQoJCQkJCQlkYXRlID0gbmV3IERhdGUoKGdldE51bWJlcigiISIpIC0gdGhpcy5fdGlja3NUbzE5NzApIC8gMTAwMDApOw0KCQkJCQkJeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsNCgkJCQkJCW1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTsNCgkJCQkJCWRheSA9IGRhdGUuZ2V0RGF0ZSgpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIiciOg0KCQkJCQkJaWYgKGxvb2tBaGVhZCgiJyIpKXsNCgkJCQkJCQljaGVja0xpdGVyYWwoKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJbGl0ZXJhbCA9IHRydWU7DQoJCQkJCQl9DQoJCQkJCQlicmVhazsNCgkJCQkJZGVmYXVsdDoNCgkJCQkJCWNoZWNrTGl0ZXJhbCgpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCWlmIChpVmFsdWUgPCB2YWx1ZS5sZW5ndGgpew0KCQkJZXh0cmEgPSB2YWx1ZS5zdWJzdHIoaVZhbHVlKTsNCgkJCWlmICghL15ccysvLnRlc3QoZXh0cmEpKSB7DQoJCQkJdGhyb3cgIkV4dHJhL3VucGFyc2VkIGNoYXJhY3RlcnMgZm91bmQgaW4gZGF0ZTogIiArIGV4dHJhOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKHllYXIgPT09IC0xKSB7DQoJCQl5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOw0KCQl9IGVsc2UgaWYgKHllYXIgPCAxMDApIHsNCgkJCXllYXIgKz0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICUgMTAwICsNCgkJCQkoeWVhciA8PSBzaG9ydFllYXJDdXRvZmYgPyAwIDogLTEwMCk7DQoJCX0NCg0KCQlpZiAoZG95ID4gLTEpIHsNCgkJCW1vbnRoID0gMTsNCgkJCWRheSA9IGRveTsNCgkJCWRvIHsNCgkJCQlkaW0gPSB0aGlzLl9nZXREYXlzSW5Nb250aCh5ZWFyLCBtb250aCAtIDEpOw0KCQkJCWlmIChkYXkgPD0gZGltKSB7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCQltb250aCsrOw0KCQkJCWRheSAtPSBkaW07DQoJCQl9IHdoaWxlICh0cnVlKTsNCgkJfQ0KDQoJCWRhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSkpOw0KCQlpZiAoZGF0ZS5nZXRGdWxsWWVhcigpICE9PSB5ZWFyIHx8IGRhdGUuZ2V0TW9udGgoKSArIDEgIT09IG1vbnRoIHx8IGRhdGUuZ2V0RGF0ZSgpICE9PSBkYXkpIHsNCgkJCXRocm93ICJJbnZhbGlkIGRhdGUiOyAvLyBFLmcuIDMxLzAyLzAwDQoJCX0NCgkJcmV0dXJuIGRhdGU7DQoJfSwNCg0KCS8qIFN0YW5kYXJkIGRhdGUgZm9ybWF0cy4gKi8NCglBVE9NOiAieXktbW0tZGQiLCAvLyBSRkMgMzMzOSAoSVNPIDg2MDEpDQoJQ09PS0lFOiAiRCwgZGQgTSB5eSIsDQoJSVNPXzg2MDE6ICJ5eS1tbS1kZCIsDQoJUkZDXzgyMjogIkQsIGQgTSB5IiwNCglSRkNfODUwOiAiREQsIGRkLU0teSIsDQoJUkZDXzEwMzY6ICJELCBkIE0geSIsDQoJUkZDXzExMjM6ICJELCBkIE0geXkiLA0KCVJGQ18yODIyOiAiRCwgZCBNIHl5IiwNCglSU1M6ICJELCBkIE0geSIsIC8vIFJGQyA4MjINCglUSUNLUzogIiEiLA0KCVRJTUVTVEFNUDogIkAiLA0KCVczQzogInl5LW1tLWRkIiwgLy8gSVNPIDg2MDENCg0KCV90aWNrc1RvMTk3MDogKCgoMTk3MCAtIDEpICogMzY1ICsgTWF0aC5mbG9vcigxOTcwIC8gNCkgLSBNYXRoLmZsb29yKDE5NzAgLyAxMDApICsNCgkJTWF0aC5mbG9vcigxOTcwIC8gNDAwKSkgKiAyNCAqIDYwICogNjAgKiAxMDAwMDAwMCksDQoNCgkvKiBGb3JtYXQgYSBkYXRlIG9iamVjdCBpbnRvIGEgc3RyaW5nIHZhbHVlLg0KCSAqIFRoZSBmb3JtYXQgY2FuIGJlIGNvbWJpbmF0aW9ucyBvZiB0aGUgZm9sbG93aW5nOg0KCSAqIGQgIC0gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pDQoJICogZGQgLSBkYXkgb2YgbW9udGggKHR3byBkaWdpdCkNCgkgKiBvICAtIGRheSBvZiB5ZWFyIChubyBsZWFkaW5nIHplcm9zKQ0KCSAqIG9vIC0gZGF5IG9mIHllYXIgKHRocmVlIGRpZ2l0KQ0KCSAqIEQgIC0gZGF5IG5hbWUgc2hvcnQNCgkgKiBERCAtIGRheSBuYW1lIGxvbmcNCgkgKiBtICAtIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcgemVybykNCgkgKiBtbSAtIG1vbnRoIG9mIHllYXIgKHR3byBkaWdpdCkNCgkgKiBNICAtIG1vbnRoIG5hbWUgc2hvcnQNCgkgKiBNTSAtIG1vbnRoIG5hbWUgbG9uZw0KCSAqIHkgIC0geWVhciAodHdvIGRpZ2l0KQ0KCSAqIHl5IC0geWVhciAoZm91ciBkaWdpdCkNCgkgKiBAIC0gVW5peCB0aW1lc3RhbXAgKG1zIHNpbmNlIDAxLzAxLzE5NzApDQoJICogISAtIFdpbmRvd3MgdGlja3MgKDEwMG5zIHNpbmNlIDAxLzAxLzAwMDEpDQoJICogIi4uLiIgLSBsaXRlcmFsIHRleHQNCgkgKiAnJyAtIHNpbmdsZSBxdW90ZQ0KCSAqDQoJICogQHBhcmFtICBmb3JtYXQgc3RyaW5nIC0gdGhlIGRlc2lyZWQgZm9ybWF0IG9mIHRoZSBkYXRlDQoJICogQHBhcmFtICBkYXRlIERhdGUgLSB0aGUgZGF0ZSB2YWx1ZSB0byBmb3JtYXQNCgkgKiBAcGFyYW0gIHNldHRpbmdzIE9iamVjdCAtIGF0dHJpYnV0ZXMgaW5jbHVkZToNCgkgKgkJCQkJZGF5TmFtZXNTaG9ydAlzdHJpbmdbN10gLSBhYmJyZXZpYXRlZCBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCWRheU5hbWVzCQlzdHJpbmdbN10gLSBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXNTaG9ydCBzdHJpbmdbMTJdIC0gYWJicmV2aWF0ZWQgbmFtZXMgb2YgdGhlIG1vbnRocyAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXMJCXN0cmluZ1sxMl0gLSBuYW1lcyBvZiB0aGUgbW9udGhzIChvcHRpb25hbCkNCgkgKiBAcmV0dXJuICBzdHJpbmcgLSB0aGUgZGF0ZSBpbiB0aGUgYWJvdmUgZm9ybWF0DQoJICovDQoJZm9ybWF0RGF0ZTogZnVuY3Rpb24gKGZvcm1hdCwgZGF0ZSwgc2V0dGluZ3MpIHsNCgkJaWYgKCFkYXRlKSB7DQoJCQlyZXR1cm4gIiI7DQoJCX0NCg0KCQl2YXIgaUZvcm1hdCwNCgkJCWRheU5hbWVzU2hvcnQgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5kYXlOYW1lc1Nob3J0IDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMuZGF5TmFtZXNTaG9ydCwNCgkJCWRheU5hbWVzID0gKHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXMgOiBudWxsKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lcywNCgkJCW1vbnRoTmFtZXNTaG9ydCA9IChzZXR0aW5ncyA/IHNldHRpbmdzLm1vbnRoTmFtZXNTaG9ydCA6IG51bGwpIHx8IHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCwNCgkJCW1vbnRoTmFtZXMgPSAoc2V0dGluZ3MgPyBzZXR0aW5ncy5tb250aE5hbWVzIDogbnVsbCkgfHwgdGhpcy5fZGVmYXVsdHMubW9udGhOYW1lcywNCgkJCS8vIENoZWNrIHdoZXRoZXIgYSBmb3JtYXQgY2hhcmFjdGVyIGlzIGRvdWJsZWQNCgkJCWxvb2tBaGVhZCA9IGZ1bmN0aW9uKG1hdGNoKSB7DQoJCQkJdmFyIG1hdGNoZXMgPSAoaUZvcm1hdCArIDEgPCBmb3JtYXQubGVuZ3RoICYmIGZvcm1hdC5jaGFyQXQoaUZvcm1hdCArIDEpID09PSBtYXRjaCk7DQoJCQkJaWYgKG1hdGNoZXMpIHsNCgkJCQkJaUZvcm1hdCsrOw0KCQkJCX0NCgkJCQlyZXR1cm4gbWF0Y2hlczsNCgkJCX0sDQoJCQkvLyBGb3JtYXQgYSBudW1iZXIsIHdpdGggbGVhZGluZyB6ZXJvIGlmIG5lY2Vzc2FyeQ0KCQkJZm9ybWF0TnVtYmVyID0gZnVuY3Rpb24obWF0Y2gsIHZhbHVlLCBsZW4pIHsNCgkJCQl2YXIgbnVtID0gIiIgKyB2YWx1ZTsNCgkJCQlpZiAobG9va0FoZWFkKG1hdGNoKSkgew0KCQkJCQl3aGlsZSAobnVtLmxlbmd0aCA8IGxlbikgew0KCQkJCQkJbnVtID0gIjAiICsgbnVtOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCXJldHVybiBudW07DQoJCQl9LA0KCQkJLy8gRm9ybWF0IGEgbmFtZSwgc2hvcnQgb3IgbG9uZyBhcyByZXF1ZXN0ZWQNCgkJCWZvcm1hdE5hbWUgPSBmdW5jdGlvbihtYXRjaCwgdmFsdWUsIHNob3J0TmFtZXMsIGxvbmdOYW1lcykgew0KCQkJCXJldHVybiAobG9va0FoZWFkKG1hdGNoKSA/IGxvbmdOYW1lc1t2YWx1ZV0gOiBzaG9ydE5hbWVzW3ZhbHVlXSk7DQoJCQl9LA0KCQkJb3V0cHV0ID0gIiIsDQoJCQlsaXRlcmFsID0gZmFsc2U7DQoNCgkJaWYgKGRhdGUpIHsNCgkJCWZvciAoaUZvcm1hdCA9IDA7IGlGb3JtYXQgPCBmb3JtYXQubGVuZ3RoOyBpRm9ybWF0KyspIHsNCgkJCQlpZiAobGl0ZXJhbCkgew0KCQkJCQlpZiAoZm9ybWF0LmNoYXJBdChpRm9ybWF0KSA9PT0gIiciICYmICFsb29rQWhlYWQoIiciKSkgew0KCQkJCQkJbGl0ZXJhbCA9IGZhbHNlOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJb3V0cHV0ICs9IGZvcm1hdC5jaGFyQXQoaUZvcm1hdCk7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQlzd2l0Y2ggKGZvcm1hdC5jaGFyQXQoaUZvcm1hdCkpIHsNCgkJCQkJCWNhc2UgImQiOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROdW1iZXIoImQiLCBkYXRlLmdldERhdGUoKSwgMik7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJEIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TmFtZSgiRCIsIGRhdGUuZ2V0RGF5KCksIGRheU5hbWVzU2hvcnQsIGRheU5hbWVzKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIm8iOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROdW1iZXIoIm8iLA0KCQkJCQkJCQlNYXRoLnJvdW5kKChuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMCkuZ2V0VGltZSgpKSAvIDg2NDAwMDAwKSwgMyk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJtIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TnVtYmVyKCJtIiwgZGF0ZS5nZXRNb250aCgpICsgMSwgMik7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJNIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TmFtZSgiTSIsIGRhdGUuZ2V0TW9udGgoKSwgbW9udGhOYW1lc1Nob3J0LCBtb250aE5hbWVzKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgInkiOg0KCQkJCQkJCW91dHB1dCArPSAobG9va0FoZWFkKCJ5IikgPyBkYXRlLmdldEZ1bGxZZWFyKCkgOg0KCQkJCQkJCQkoZGF0ZS5nZXRZZWFyKCkgJSAxMDAgPCAxMCA/ICIwIiA6ICIiKSArIGRhdGUuZ2V0WWVhcigpICUgMTAwKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIkAiOg0KCQkJCQkJCW91dHB1dCArPSBkYXRlLmdldFRpbWUoKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIiEiOg0KCQkJCQkJCW91dHB1dCArPSBkYXRlLmdldFRpbWUoKSAqIDEwMDAwICsgdGhpcy5fdGlja3NUbzE5NzA7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICInIjoNCgkJCQkJCQlpZiAobG9va0FoZWFkKCInIikpIHsNCgkJCQkJCQkJb3V0cHV0ICs9ICInIjsNCgkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCQlsaXRlcmFsID0gdHJ1ZTsNCgkJCQkJCQl9DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQlkZWZhdWx0Og0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXQuY2hhckF0KGlGb3JtYXQpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwNCg0KCS8qIEV4dHJhY3QgYWxsIHBvc3NpYmxlIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGF0ZSBmb3JtYXQuICovDQoJX3Bvc3NpYmxlQ2hhcnM6IGZ1bmN0aW9uIChmb3JtYXQpIHsNCgkJdmFyIGlGb3JtYXQsDQoJCQljaGFycyA9ICIiLA0KCQkJbGl0ZXJhbCA9IGZhbHNlLA0KCQkJLy8gQ2hlY2sgd2hldGhlciBhIGZvcm1hdCBjaGFyYWN0ZXIgaXMgZG91YmxlZA0KCQkJbG9va0FoZWFkID0gZnVuY3Rpb24obWF0Y2gpIHsNCgkJCQl2YXIgbWF0Y2hlcyA9IChpRm9ybWF0ICsgMSA8IGZvcm1hdC5sZW5ndGggJiYgZm9ybWF0LmNoYXJBdChpRm9ybWF0ICsgMSkgPT09IG1hdGNoKTsNCgkJCQlpZiAobWF0Y2hlcykgew0KCQkJCQlpRm9ybWF0Kys7DQoJCQkJfQ0KCQkJCXJldHVybiBtYXRjaGVzOw0KCQkJfTsNCg0KCQlmb3IgKGlGb3JtYXQgPSAwOyBpRm9ybWF0IDwgZm9ybWF0Lmxlbmd0aDsgaUZvcm1hdCsrKSB7DQoJCQlpZiAobGl0ZXJhbCkgew0KCQkJCWlmIChmb3JtYXQuY2hhckF0KGlGb3JtYXQpID09PSAiJyIgJiYgIWxvb2tBaGVhZCgiJyIpKSB7DQoJCQkJCWxpdGVyYWwgPSBmYWxzZTsNCgkJCQl9IGVsc2Ugew0KCQkJCQljaGFycyArPSBmb3JtYXQuY2hhckF0KGlGb3JtYXQpOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJc3dpdGNoIChmb3JtYXQuY2hhckF0KGlGb3JtYXQpKSB7DQoJCQkJCWNhc2UgImQiOiBjYXNlICJtIjogY2FzZSAieSI6IGNhc2UgIkAiOg0KCQkJCQkJY2hhcnMgKz0gIjAxMjM0NTY3ODkiOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIkQiOiBjYXNlICJNIjoNCgkJCQkJCXJldHVybiBudWxsOyAvLyBBY2NlcHQgYW55dGhpbmcNCgkJCQkJY2FzZSAiJyI6DQoJCQkJCQlpZiAobG9va0FoZWFkKCInIikpIHsNCgkJCQkJCQljaGFycyArPSAiJyI7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCWxpdGVyYWwgPSB0cnVlOw0KCQkJCQkJfQ0KCQkJCQkJYnJlYWs7DQoJCQkJCWRlZmF1bHQ6DQoJCQkJCQljaGFycyArPSBmb3JtYXQuY2hhckF0KGlGb3JtYXQpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gY2hhcnM7DQoJfSwNCg0KCS8qIEdldCBhIHNldHRpbmcgdmFsdWUsIGRlZmF1bHRpbmcgaWYgbmVjZXNzYXJ5LiAqLw0KCV9nZXQ6IGZ1bmN0aW9uKGluc3QsIG5hbWUpIHsNCgkJcmV0dXJuIGluc3Quc2V0dGluZ3NbbmFtZV0gIT09IHVuZGVmaW5lZCA/DQoJCQlpbnN0LnNldHRpbmdzW25hbWVdIDogdGhpcy5fZGVmYXVsdHNbbmFtZV07DQoJfSwNCg0KCS8qIFBhcnNlIGV4aXN0aW5nIGRhdGUgYW5kIGluaXRpYWxpc2UgZGF0ZSBwaWNrZXIuICovDQoJX3NldERhdGVGcm9tRmllbGQ6IGZ1bmN0aW9uKGluc3QsIG5vRGVmYXVsdCkgew0KCQlpZiAoaW5zdC5pbnB1dC52YWwoKSA9PT0gaW5zdC5sYXN0VmFsKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgZGF0ZUZvcm1hdCA9IHRoaXMuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpLA0KCQkJZGF0ZXMgPSBpbnN0Lmxhc3RWYWwgPSBpbnN0LmlucHV0ID8gaW5zdC5pbnB1dC52YWwoKSA6IG51bGwsDQoJCQlkZWZhdWx0RGF0ZSA9IHRoaXMuX2dldERlZmF1bHREYXRlKGluc3QpLA0KCQkJZGF0ZSA9IGRlZmF1bHREYXRlLA0KCQkJc2V0dGluZ3MgPSB0aGlzLl9nZXRGb3JtYXRDb25maWcoaW5zdCk7DQoNCgkJdHJ5IHsNCgkJCWRhdGUgPSB0aGlzLnBhcnNlRGF0ZShkYXRlRm9ybWF0LCBkYXRlcywgc2V0dGluZ3MpIHx8IGRlZmF1bHREYXRlOw0KCQl9IGNhdGNoIChldmVudCkgew0KCQkJZGF0ZXMgPSAobm9EZWZhdWx0ID8gIiIgOiBkYXRlcyk7DQoJCX0NCgkJaW5zdC5zZWxlY3RlZERheSA9IGRhdGUuZ2V0RGF0ZSgpOw0KCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTsNCgkJaW5zdC5kcmF3WWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQlpbnN0LmN1cnJlbnREYXkgPSAoZGF0ZXMgPyBkYXRlLmdldERhdGUoKSA6IDApOw0KCQlpbnN0LmN1cnJlbnRNb250aCA9IChkYXRlcyA/IGRhdGUuZ2V0TW9udGgoKSA6IDApOw0KCQlpbnN0LmN1cnJlbnRZZWFyID0gKGRhdGVzID8gZGF0ZS5nZXRGdWxsWWVhcigpIDogMCk7DQoJCXRoaXMuX2FkanVzdEluc3REYXRlKGluc3QpOw0KCX0sDQoNCgkvKiBSZXRyaWV2ZSB0aGUgZGVmYXVsdCBkYXRlIHNob3duIG9uIG9wZW5pbmcuICovDQoJX2dldERlZmF1bHREYXRlOiBmdW5jdGlvbihpbnN0KSB7DQoJCXJldHVybiB0aGlzLl9yZXN0cmljdE1pbk1heChpbnN0LA0KCQkJdGhpcy5fZGV0ZXJtaW5lRGF0ZShpbnN0LCB0aGlzLl9nZXQoaW5zdCwgImRlZmF1bHREYXRlIiksIG5ldyBEYXRlKCkpKTsNCgl9LA0KDQoJLyogQSBkYXRlIG1heSBiZSBzcGVjaWZpZWQgYXMgYW4gZXhhY3QgdmFsdWUgb3IgYSByZWxhdGl2ZSBvbmUuICovDQoJX2RldGVybWluZURhdGU6IGZ1bmN0aW9uKGluc3QsIGRhdGUsIGRlZmF1bHREYXRlKSB7DQoJCXZhciBvZmZzZXROdW1lcmljID0gZnVuY3Rpb24ob2Zmc2V0KSB7DQoJCQkJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOw0KCQkJCWRhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIG9mZnNldCk7DQoJCQkJcmV0dXJuIGRhdGU7DQoJCQl9LA0KCQkJb2Zmc2V0U3RyaW5nID0gZnVuY3Rpb24ob2Zmc2V0KSB7DQoJCQkJdHJ5IHsNCgkJCQkJcmV0dXJuICQuZGF0ZXBpY2tlci5wYXJzZURhdGUoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgImRhdGVGb3JtYXQiKSwNCgkJCQkJCW9mZnNldCwgJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoaW5zdCkpOw0KCQkJCX0NCgkJCQljYXRjaCAoZSkgew0KCQkJCQkvLyBJZ25vcmUNCgkJCQl9DQoNCgkJCQl2YXIgZGF0ZSA9IChvZmZzZXQudG9Mb3dlckNhc2UoKS5tYXRjaCgvXmMvKSA/DQoJCQkJCSQuZGF0ZXBpY2tlci5fZ2V0RGF0ZShpbnN0KSA6IG51bGwpIHx8IG5ldyBEYXRlKCksDQoJCQkJCXllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCksDQoJCQkJCW1vbnRoID0gZGF0ZS5nZXRNb250aCgpLA0KCQkJCQlkYXkgPSBkYXRlLmdldERhdGUoKSwNCgkJCQkJcGF0dGVybiA9IC8oWytcLV0/WzAtOV0rKVxzKihkfER8d3xXfG18TXx5fFkpPy9nLA0KCQkJCQltYXRjaGVzID0gcGF0dGVybi5leGVjKG9mZnNldCk7DQoNCgkJCQl3aGlsZSAobWF0Y2hlcykgew0KCQkJCQlzd2l0Y2ggKG1hdGNoZXNbMl0gfHwgImQiKSB7DQoJCQkJCQljYXNlICJkIiA6IGNhc2UgIkQiIDoNCgkJCQkJCQlkYXkgKz0gcGFyc2VJbnQobWF0Y2hlc1sxXSwxMCk7IGJyZWFrOw0KCQkJCQkJY2FzZSAidyIgOiBjYXNlICJXIiA6DQoJCQkJCQkJZGF5ICs9IHBhcnNlSW50KG1hdGNoZXNbMV0sMTApICogNzsgYnJlYWs7DQoJCQkJCQljYXNlICJtIiA6IGNhc2UgIk0iIDoNCgkJCQkJCQltb250aCArPSBwYXJzZUludChtYXRjaGVzWzFdLDEwKTsNCgkJCQkJCQlkYXkgPSBNYXRoLm1pbihkYXksICQuZGF0ZXBpY2tlci5fZ2V0RGF5c0luTW9udGgoeWVhciwgbW9udGgpKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgInkiOiBjYXNlICJZIiA6DQoJCQkJCQkJeWVhciArPSBwYXJzZUludChtYXRjaGVzWzFdLDEwKTsNCgkJCQkJCQlkYXkgPSBNYXRoLm1pbihkYXksICQuZGF0ZXBpY2tlci5fZ2V0RGF5c0luTW9udGgoeWVhciwgbW9udGgpKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCQltYXRjaGVzID0gcGF0dGVybi5leGVjKG9mZnNldCk7DQoJCQkJfQ0KCQkJCXJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KTsNCgkJCX0sDQoJCQluZXdEYXRlID0gKGRhdGUgPT0gbnVsbCB8fCBkYXRlID09PSAiIiA/IGRlZmF1bHREYXRlIDogKHR5cGVvZiBkYXRlID09PSAic3RyaW5nIiA/IG9mZnNldFN0cmluZyhkYXRlKSA6DQoJCQkJKHR5cGVvZiBkYXRlID09PSAibnVtYmVyIiA/IChpc05hTihkYXRlKSA/IGRlZmF1bHREYXRlIDogb2Zmc2V0TnVtZXJpYyhkYXRlKSkgOiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSkpKSk7DQoNCgkJbmV3RGF0ZSA9IChuZXdEYXRlICYmIG5ld0RhdGUudG9TdHJpbmcoKSA9PT0gIkludmFsaWQgRGF0ZSIgPyBkZWZhdWx0RGF0ZSA6IG5ld0RhdGUpOw0KCQlpZiAobmV3RGF0ZSkgew0KCQkJbmV3RGF0ZS5zZXRIb3VycygwKTsNCgkJCW5ld0RhdGUuc2V0TWludXRlcygwKTsNCgkJCW5ld0RhdGUuc2V0U2Vjb25kcygwKTsNCgkJCW5ld0RhdGUuc2V0TWlsbGlzZWNvbmRzKDApOw0KCQl9DQoJCXJldHVybiB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXdEYXRlKTsNCgl9LA0KDQoJLyogSGFuZGxlIHN3aXRjaCB0by9mcm9tIGRheWxpZ2h0IHNhdmluZy4NCgkgKiBIb3VycyBtYXkgYmUgbm9uLXplcm8gb24gZGF5bGlnaHQgc2F2aW5nIGN1dC1vdmVyOg0KCSAqID4gMTIgd2hlbiBtaWRuaWdodCBjaGFuZ2VvdmVyLCBidXQgdGhlbiBjYW5ub3QgZ2VuZXJhdGUNCgkgKiBtaWRuaWdodCBkYXRldGltZSwgc28ganVtcCB0byAxQU0sIG90aGVyd2lzZSByZXNldC4NCgkgKiBAcGFyYW0gIGRhdGUgIChEYXRlKSB0aGUgZGF0ZSB0byBjaGVjaw0KCSAqIEByZXR1cm4gIChEYXRlKSB0aGUgY29ycmVjdGVkIGRhdGUNCgkgKi8NCglfZGF5bGlnaHRTYXZpbmdBZGp1c3Q6IGZ1bmN0aW9uKGRhdGUpIHsNCgkJaWYgKCFkYXRlKSB7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KCQlkYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSA+IDEyID8gZGF0ZS5nZXRIb3VycygpICsgMiA6IDApOw0KCQlyZXR1cm4gZGF0ZTsNCgl9LA0KDQoJLyogU2V0IHRoZSBkYXRlKHMpIGRpcmVjdGx5LiAqLw0KCV9zZXREYXRlOiBmdW5jdGlvbihpbnN0LCBkYXRlLCBub0NoYW5nZSkgew0KCQl2YXIgY2xlYXIgPSAhZGF0ZSwNCgkJCW9yaWdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCwNCgkJCW9yaWdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIsDQoJCQluZXdEYXRlID0gdGhpcy5fcmVzdHJpY3RNaW5NYXgoaW5zdCwgdGhpcy5fZGV0ZXJtaW5lRGF0ZShpbnN0LCBkYXRlLCBuZXcgRGF0ZSgpKSk7DQoNCgkJaW5zdC5zZWxlY3RlZERheSA9IGluc3QuY3VycmVudERheSA9IG5ld0RhdGUuZ2V0RGF0ZSgpOw0KCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGluc3QuY3VycmVudE1vbnRoID0gbmV3RGF0ZS5nZXRNb250aCgpOw0KCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBpbnN0LmN1cnJlbnRZZWFyID0gbmV3RGF0ZS5nZXRGdWxsWWVhcigpOw0KCQlpZiAoKG9yaWdNb250aCAhPT0gaW5zdC5zZWxlY3RlZE1vbnRoIHx8IG9yaWdZZWFyICE9PSBpbnN0LnNlbGVjdGVkWWVhcikgJiYgIW5vQ2hhbmdlKSB7DQoJCQl0aGlzLl9ub3RpZnlDaGFuZ2UoaW5zdCk7DQoJCX0NCgkJdGhpcy5fYWRqdXN0SW5zdERhdGUoaW5zdCk7DQoJCWlmIChpbnN0LmlucHV0KSB7DQoJCQlpbnN0LmlucHV0LnZhbChjbGVhciA/ICIiIDogdGhpcy5fZm9ybWF0RGF0ZShpbnN0KSk7DQoJCX0NCgl9LA0KDQoJLyogUmV0cmlldmUgdGhlIGRhdGUocykgZGlyZWN0bHkuICovDQoJX2dldERhdGU6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIHN0YXJ0RGF0ZSA9ICghaW5zdC5jdXJyZW50WWVhciB8fCAoaW5zdC5pbnB1dCAmJiBpbnN0LmlucHV0LnZhbCgpID09PSAiIikgPyBudWxsIDoNCgkJCXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKA0KCQkJaW5zdC5jdXJyZW50WWVhciwgaW5zdC5jdXJyZW50TW9udGgsIGluc3QuY3VycmVudERheSkpKTsNCgkJCXJldHVybiBzdGFydERhdGU7DQoJfSwNCg0KCS8qIEF0dGFjaCB0aGUgb254eHggaGFuZGxlcnMuICBUaGVzZSBhcmUgZGVjbGFyZWQgc3RhdGljYWxseSBzbw0KCSAqIHRoZXkgd29yayB3aXRoIHN0YXRpYyBjb2RlIHRyYW5zZm9ybWVycyBsaWtlIENhamEuDQoJICovDQoJX2F0dGFjaEhhbmRsZXJzOiBmdW5jdGlvbihpbnN0KSB7DQoJCXZhciBzdGVwTW9udGhzID0gdGhpcy5fZ2V0KGluc3QsICJzdGVwTW9udGhzIiksDQoJCQlpZCA9ICIjIiArIGluc3QuaWQucmVwbGFjZSggL1xcXFwvZywgIlxcIiApOw0KCQlpbnN0LmRwRGl2LmZpbmQoIltkYXRhLWhhbmRsZXJdIikubWFwKGZ1bmN0aW9uICgpIHsNCgkJCXZhciBoYW5kbGVyID0gew0KCQkJCXByZXY6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGlkLCAtc3RlcE1vbnRocywgIk0iKTsNCgkJCQl9LA0KCQkJCW5leHQ6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKGlkLCArc3RlcE1vbnRocywgIk0iKTsNCgkJCQl9LA0KCQkJCWhpZGU6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJCX0sDQoJCQkJdG9kYXk6IGZ1bmN0aW9uICgpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9nb3RvVG9kYXkoaWQpOw0KCQkJCX0sDQoJCQkJc2VsZWN0RGF5OiBmdW5jdGlvbiAoKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2VsZWN0RGF5KGlkLCArdGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtbW9udGgiKSwgK3RoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXllYXIiKSwgdGhpcyk7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9LA0KCQkJCXNlbGVjdE1vbnRoOiBmdW5jdGlvbiAoKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKGlkLCB0aGlzLCAiTSIpOw0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfSwNCgkJCQlzZWxlY3RZZWFyOiBmdW5jdGlvbiAoKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKGlkLCB0aGlzLCAiWSIpOw0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfTsNCgkJCSQodGhpcykuYmluZCh0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1ldmVudCIpLCBoYW5kbGVyW3RoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLWhhbmRsZXIiKV0pOw0KCQl9KTsNCgl9LA0KDQoJLyogR2VuZXJhdGUgdGhlIEhUTUwgZm9yIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkYXRlIHBpY2tlci4gKi8NCglfZ2VuZXJhdGVIVE1MOiBmdW5jdGlvbihpbnN0KSB7DQoJCXZhciBtYXhEcmF3LCBwcmV2VGV4dCwgcHJldiwgbmV4dFRleHQsIG5leHQsIGN1cnJlbnRUZXh0LCBnb3RvRGF0ZSwNCgkJCWNvbnRyb2xzLCBidXR0b25QYW5lbCwgZmlyc3REYXksIHNob3dXZWVrLCBkYXlOYW1lcywgZGF5TmFtZXNNaW4sDQoJCQltb250aE5hbWVzLCBtb250aE5hbWVzU2hvcnQsIGJlZm9yZVNob3dEYXksIHNob3dPdGhlck1vbnRocywNCgkJCXNlbGVjdE90aGVyTW9udGhzLCBkZWZhdWx0RGF0ZSwgaHRtbCwgZG93LCByb3csIGdyb3VwLCBjb2wsIHNlbGVjdGVkRGF0ZSwNCgkJCWNvcm5lckNsYXNzLCBjYWxlbmRlciwgdGhlYWQsIGRheSwgZGF5c0luTW9udGgsIGxlYWREYXlzLCBjdXJSb3dzLCBudW1Sb3dzLA0KCQkJcHJpbnREYXRlLCBkUm93LCB0Ym9keSwgZGF5U2V0dGluZ3MsIG90aGVyTW9udGgsIHVuc2VsZWN0YWJsZSwNCgkJCXRlbXBEYXRlID0gbmV3IERhdGUoKSwNCgkJCXRvZGF5ID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoDQoJCQkJbmV3IERhdGUodGVtcERhdGUuZ2V0RnVsbFllYXIoKSwgdGVtcERhdGUuZ2V0TW9udGgoKSwgdGVtcERhdGUuZ2V0RGF0ZSgpKSksIC8vIGNsZWFyIHRpbWUNCgkJCWlzUlRMID0gdGhpcy5fZ2V0KGluc3QsICJpc1JUTCIpLA0KCQkJc2hvd0J1dHRvblBhbmVsID0gdGhpcy5fZ2V0KGluc3QsICJzaG93QnV0dG9uUGFuZWwiKSwNCgkJCWhpZGVJZk5vUHJldk5leHQgPSB0aGlzLl9nZXQoaW5zdCwgImhpZGVJZk5vUHJldk5leHQiKSwNCgkJCW5hdmlnYXRpb25Bc0RhdGVGb3JtYXQgPSB0aGlzLl9nZXQoaW5zdCwgIm5hdmlnYXRpb25Bc0RhdGVGb3JtYXQiKSwNCgkJCW51bU1vbnRocyA9IHRoaXMuX2dldE51bWJlck9mTW9udGhzKGluc3QpLA0KCQkJc2hvd0N1cnJlbnRBdFBvcyA9IHRoaXMuX2dldChpbnN0LCAic2hvd0N1cnJlbnRBdFBvcyIpLA0KCQkJc3RlcE1vbnRocyA9IHRoaXMuX2dldChpbnN0LCAic3RlcE1vbnRocyIpLA0KCQkJaXNNdWx0aU1vbnRoID0gKG51bU1vbnRoc1swXSAhPT0gMSB8fCBudW1Nb250aHNbMV0gIT09IDEpLA0KCQkJY3VycmVudERhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCgoIWluc3QuY3VycmVudERheSA/IG5ldyBEYXRlKDk5OTksIDksIDkpIDoNCgkJCQluZXcgRGF0ZShpbnN0LmN1cnJlbnRZZWFyLCBpbnN0LmN1cnJlbnRNb250aCwgaW5zdC5jdXJyZW50RGF5KSkpLA0KCQkJbWluRGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoaW5zdCwgIm1pbiIpLA0KCQkJbWF4RGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoaW5zdCwgIm1heCIpLA0KCQkJZHJhd01vbnRoID0gaW5zdC5kcmF3TW9udGggLSBzaG93Q3VycmVudEF0UG9zLA0KCQkJZHJhd1llYXIgPSBpbnN0LmRyYXdZZWFyOw0KDQoJCWlmIChkcmF3TW9udGggPCAwKSB7DQoJCQlkcmF3TW9udGggKz0gMTI7DQoJCQlkcmF3WWVhci0tOw0KCQl9DQoJCWlmIChtYXhEYXRlKSB7DQoJCQltYXhEcmF3ID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUobWF4RGF0ZS5nZXRGdWxsWWVhcigpLA0KCQkJCW1heERhdGUuZ2V0TW9udGgoKSAtIChudW1Nb250aHNbMF0gKiBudW1Nb250aHNbMV0pICsgMSwgbWF4RGF0ZS5nZXREYXRlKCkpKTsNCgkJCW1heERyYXcgPSAobWluRGF0ZSAmJiBtYXhEcmF3IDwgbWluRGF0ZSA/IG1pbkRhdGUgOiBtYXhEcmF3KTsNCgkJCXdoaWxlICh0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShkcmF3WWVhciwgZHJhd01vbnRoLCAxKSkgPiBtYXhEcmF3KSB7DQoJCQkJZHJhd01vbnRoLS07DQoJCQkJaWYgKGRyYXdNb250aCA8IDApIHsNCgkJCQkJZHJhd01vbnRoID0gMTE7DQoJCQkJCWRyYXdZZWFyLS07DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWluc3QuZHJhd01vbnRoID0gZHJhd01vbnRoOw0KCQlpbnN0LmRyYXdZZWFyID0gZHJhd1llYXI7DQoNCgkJcHJldlRleHQgPSB0aGlzLl9nZXQoaW5zdCwgInByZXZUZXh0Iik7DQoJCXByZXZUZXh0ID0gKCFuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0ID8gcHJldlRleHQgOiB0aGlzLmZvcm1hdERhdGUocHJldlRleHQsDQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShkcmF3WWVhciwgZHJhd01vbnRoIC0gc3RlcE1vbnRocywgMSkpLA0KCQkJdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGluc3QpKSk7DQoNCgkJcHJldiA9ICh0aGlzLl9jYW5BZGp1c3RNb250aChpbnN0LCAtMSwgZHJhd1llYXIsIGRyYXdNb250aCkgPw0KCQkJIjxhIGNsYXNzPSd1aS1kYXRlcGlja2VyLXByZXYgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSdwcmV2JyBkYXRhLWV2ZW50PSdjbGljayciICsNCgkJCSIgdGl0bGU9JyIgKyBwcmV2VGV4dCArICInPjxzcGFuIGNsYXNzPSd1aS1pY29uIHVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLSIgKyAoIGlzUlRMID8gImUiIDogInciKSArICInPiIgKyBwcmV2VGV4dCArICI8L3NwYW4+PC9hPiIgOg0KCQkJKGhpZGVJZk5vUHJldk5leHQgPyAiIiA6ICI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1wcmV2IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGlzYWJsZWQnIHRpdGxlPSciKyBwcmV2VGV4dCArIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIiArICggaXNSVEwgPyAiZSIgOiAidyIpICsgIic+IiArIHByZXZUZXh0ICsgIjwvc3Bhbj48L2E+IikpOw0KDQoJCW5leHRUZXh0ID0gdGhpcy5fZ2V0KGluc3QsICJuZXh0VGV4dCIpOw0KCQluZXh0VGV4dCA9ICghbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdCA/IG5leHRUZXh0IDogdGhpcy5mb3JtYXREYXRlKG5leHRUZXh0LA0KCQkJdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZHJhd1llYXIsIGRyYXdNb250aCArIHN0ZXBNb250aHMsIDEpKSwNCgkJCXRoaXMuX2dldEZvcm1hdENvbmZpZyhpbnN0KSkpOw0KDQoJCW5leHQgPSAodGhpcy5fY2FuQWRqdXN0TW9udGgoaW5zdCwgKzEsIGRyYXdZZWFyLCBkcmF3TW9udGgpID8NCgkJCSI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwnIGRhdGEtaGFuZGxlcj0nbmV4dCcgZGF0YS1ldmVudD0nY2xpY2snIiArDQoJCQkiIHRpdGxlPSciICsgbmV4dFRleHQgKyAiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iICsgKCBpc1JUTCA/ICJ3IiA6ICJlIikgKyAiJz4iICsgbmV4dFRleHQgKyAiPC9zcGFuPjwvYT4iIDoNCgkJCShoaWRlSWZOb1ByZXZOZXh0ID8gIiIgOiAiPGEgY2xhc3M9J3VpLWRhdGVwaWNrZXItbmV4dCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRpc2FibGVkJyB0aXRsZT0nIisgbmV4dFRleHQgKyAiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iICsgKCBpc1JUTCA/ICJ3IiA6ICJlIikgKyAiJz4iICsgbmV4dFRleHQgKyAiPC9zcGFuPjwvYT4iKSk7DQoNCgkJY3VycmVudFRleHQgPSB0aGlzLl9nZXQoaW5zdCwgImN1cnJlbnRUZXh0Iik7DQoJCWdvdG9EYXRlID0gKHRoaXMuX2dldChpbnN0LCAiZ290b0N1cnJlbnQiKSAmJiBpbnN0LmN1cnJlbnREYXkgPyBjdXJyZW50RGF0ZSA6IHRvZGF5KTsNCgkJY3VycmVudFRleHQgPSAoIW5hdmlnYXRpb25Bc0RhdGVGb3JtYXQgPyBjdXJyZW50VGV4dCA6DQoJCQl0aGlzLmZvcm1hdERhdGUoY3VycmVudFRleHQsIGdvdG9EYXRlLCB0aGlzLl9nZXRGb3JtYXRDb25maWcoaW5zdCkpKTsNCg0KCQljb250cm9scyA9ICghaW5zdC5pbmxpbmUgPyAiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSd1aS1kYXRlcGlja2VyLWNsb3NlIHVpLXN0YXRlLWRlZmF1bHQgdWktcHJpb3JpdHktcHJpbWFyeSB1aS1jb3JuZXItYWxsJyBkYXRhLWhhbmRsZXI9J2hpZGUnIGRhdGEtZXZlbnQ9J2NsaWNrJz4iICsNCgkJCXRoaXMuX2dldChpbnN0LCAiY2xvc2VUZXh0IikgKyAiPC9idXR0b24+IiA6ICIiKTsNCg0KCQlidXR0b25QYW5lbCA9IChzaG93QnV0dG9uUGFuZWwpID8gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB1aS13aWRnZXQtY29udGVudCc+IiArIChpc1JUTCA/IGNvbnRyb2xzIDogIiIpICsNCgkJCSh0aGlzLl9pc0luUmFuZ2UoaW5zdCwgZ290b0RhdGUpID8gIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0ndWktZGF0ZXBpY2tlci1jdXJyZW50IHVpLXN0YXRlLWRlZmF1bHQgdWktcHJpb3JpdHktc2Vjb25kYXJ5IHVpLWNvcm5lci1hbGwnIGRhdGEtaGFuZGxlcj0ndG9kYXknIGRhdGEtZXZlbnQ9J2NsaWNrJyIgKw0KCQkJIj4iICsgY3VycmVudFRleHQgKyAiPC9idXR0b24+IiA6ICIiKSArIChpc1JUTCA/ICIiIDogY29udHJvbHMpICsgIjwvZGl2PiIgOiAiIjsNCg0KCQlmaXJzdERheSA9IHBhcnNlSW50KHRoaXMuX2dldChpbnN0LCAiZmlyc3REYXkiKSwxMCk7DQoJCWZpcnN0RGF5ID0gKGlzTmFOKGZpcnN0RGF5KSA/IDAgOiBmaXJzdERheSk7DQoNCgkJc2hvd1dlZWsgPSB0aGlzLl9nZXQoaW5zdCwgInNob3dXZWVrIik7DQoJCWRheU5hbWVzID0gdGhpcy5fZ2V0KGluc3QsICJkYXlOYW1lcyIpOw0KCQlkYXlOYW1lc01pbiA9IHRoaXMuX2dldChpbnN0LCAiZGF5TmFtZXNNaW4iKTsNCgkJbW9udGhOYW1lcyA9IHRoaXMuX2dldChpbnN0LCAibW9udGhOYW1lcyIpOw0KCQltb250aE5hbWVzU2hvcnQgPSB0aGlzLl9nZXQoaW5zdCwgIm1vbnRoTmFtZXNTaG9ydCIpOw0KCQliZWZvcmVTaG93RGF5ID0gdGhpcy5fZ2V0KGluc3QsICJiZWZvcmVTaG93RGF5Iik7DQoJCXNob3dPdGhlck1vbnRocyA9IHRoaXMuX2dldChpbnN0LCAic2hvd090aGVyTW9udGhzIik7DQoJCXNlbGVjdE90aGVyTW9udGhzID0gdGhpcy5fZ2V0KGluc3QsICJzZWxlY3RPdGhlck1vbnRocyIpOw0KCQlkZWZhdWx0RGF0ZSA9IHRoaXMuX2dldERlZmF1bHREYXRlKGluc3QpOw0KCQlodG1sID0gIiI7DQoJCWRvdzsNCgkJZm9yIChyb3cgPSAwOyByb3cgPCBudW1Nb250aHNbMF07IHJvdysrKSB7DQoJCQlncm91cCA9ICIiOw0KCQkJdGhpcy5tYXhSb3dzID0gNDsNCgkJCWZvciAoY29sID0gMDsgY29sIDwgbnVtTW9udGhzWzFdOyBjb2wrKykgew0KCQkJCXNlbGVjdGVkRGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGRyYXdZZWFyLCBkcmF3TW9udGgsIGluc3Quc2VsZWN0ZWREYXkpKTsNCgkJCQljb3JuZXJDbGFzcyA9ICIgdWktY29ybmVyLWFsbCI7DQoJCQkJY2FsZW5kZXIgPSAiIjsNCgkJCQlpZiAoaXNNdWx0aU1vbnRoKSB7DQoJCQkJCWNhbGVuZGVyICs9ICI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLWdyb3VwIjsNCgkJCQkJaWYgKG51bU1vbnRoc1sxXSA+IDEpIHsNCgkJCQkJCXN3aXRjaCAoY29sKSB7DQoJCQkJCQkJY2FzZSAwOiBjYWxlbmRlciArPSAiIHVpLWRhdGVwaWNrZXItZ3JvdXAtZmlyc3QiOw0KCQkJCQkJCQljb3JuZXJDbGFzcyA9ICIgdWktY29ybmVyLSIgKyAoaXNSVEwgPyAicmlnaHQiIDogImxlZnQiKTsgYnJlYWs7DQoJCQkJCQkJY2FzZSBudW1Nb250aHNbMV0tMTogY2FsZW5kZXIgKz0gIiB1aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QiOw0KCQkJCQkJCQljb3JuZXJDbGFzcyA9ICIgdWktY29ybmVyLSIgKyAoaXNSVEwgPyAibGVmdCIgOiAicmlnaHQiKTsgYnJlYWs7DQoJCQkJCQkJZGVmYXVsdDogY2FsZW5kZXIgKz0gIiB1aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSI7IGNvcm5lckNsYXNzID0gIiI7IGJyZWFrOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWNhbGVuZGVyICs9ICInPiI7DQoJCQkJfQ0KCQkJCWNhbGVuZGVyICs9ICI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLWhlYWRlciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCIgKyBjb3JuZXJDbGFzcyArICInPiIgKw0KCQkJCQkoL2FsbHxsZWZ0Ly50ZXN0KGNvcm5lckNsYXNzKSAmJiByb3cgPT09IDAgPyAoaXNSVEwgPyBuZXh0IDogcHJldikgOiAiIikgKw0KCQkJCQkoL2FsbHxyaWdodC8udGVzdChjb3JuZXJDbGFzcykgJiYgcm93ID09PSAwID8gKGlzUlRMID8gcHJldiA6IG5leHQpIDogIiIpICsNCgkJCQkJdGhpcy5fZ2VuZXJhdGVNb250aFllYXJIZWFkZXIoaW5zdCwgZHJhd01vbnRoLCBkcmF3WWVhciwgbWluRGF0ZSwgbWF4RGF0ZSwNCgkJCQkJcm93ID4gMCB8fCBjb2wgPiAwLCBtb250aE5hbWVzLCBtb250aE5hbWVzU2hvcnQpICsgLy8gZHJhdyBtb250aCBoZWFkZXJzDQoJCQkJCSI8L2Rpdj48dGFibGUgY2xhc3M9J3VpLWRhdGVwaWNrZXItY2FsZW5kYXInPjx0aGVhZD4iICsNCgkJCQkJIjx0cj4iOw0KCQkJCXRoZWFkID0gKHNob3dXZWVrID8gIjx0aCBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWNvbCc+IiArIHRoaXMuX2dldChpbnN0LCAid2Vla0hlYWRlciIpICsgIjwvdGg+IiA6ICIiKTsNCgkJCQlmb3IgKGRvdyA9IDA7IGRvdyA8IDc7IGRvdysrKSB7IC8vIGRheXMgb2YgdGhlIHdlZWsNCgkJCQkJZGF5ID0gKGRvdyArIGZpcnN0RGF5KSAlIDc7DQoJCQkJCXRoZWFkICs9ICI8dGggc2NvcGU9J2NvbCciICsgKChkb3cgKyBmaXJzdERheSArIDYpICUgNyA+PSA1ID8gIiBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWVuZCciIDogIiIpICsgIj4iICsNCgkJCQkJCSI8c3BhbiB0aXRsZT0nIiArIGRheU5hbWVzW2RheV0gKyAiJz4iICsgZGF5TmFtZXNNaW5bZGF5XSArICI8L3NwYW4+PC90aD4iOw0KCQkJCX0NCgkJCQljYWxlbmRlciArPSB0aGVhZCArICI8L3RyPjwvdGhlYWQ+PHRib2R5PiI7DQoJCQkJZGF5c0luTW9udGggPSB0aGlzLl9nZXREYXlzSW5Nb250aChkcmF3WWVhciwgZHJhd01vbnRoKTsNCgkJCQlpZiAoZHJhd1llYXIgPT09IGluc3Quc2VsZWN0ZWRZZWFyICYmIGRyYXdNb250aCA9PT0gaW5zdC5zZWxlY3RlZE1vbnRoKSB7DQoJCQkJCWluc3Quc2VsZWN0ZWREYXkgPSBNYXRoLm1pbihpbnN0LnNlbGVjdGVkRGF5LCBkYXlzSW5Nb250aCk7DQoJCQkJfQ0KCQkJCWxlYWREYXlzID0gKHRoaXMuX2dldEZpcnN0RGF5T2ZNb250aChkcmF3WWVhciwgZHJhd01vbnRoKSAtIGZpcnN0RGF5ICsgNykgJSA3Ow0KCQkJCWN1clJvd3MgPSBNYXRoLmNlaWwoKGxlYWREYXlzICsgZGF5c0luTW9udGgpIC8gNyk7IC8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHJvd3MgdG8gZ2VuZXJhdGUNCgkJCQludW1Sb3dzID0gKGlzTXVsdGlNb250aCA/IHRoaXMubWF4Um93cyA+IGN1clJvd3MgPyB0aGlzLm1heFJvd3MgOiBjdXJSb3dzIDogY3VyUm93cyk7IC8vSWYgbXVsdGlwbGUgbW9udGhzLCB1c2UgdGhlIGhpZ2hlciBudW1iZXIgb2Ygcm93cyAoc2VlICM3MDQzKQ0KCQkJCXRoaXMubWF4Um93cyA9IG51bVJvd3M7DQoJCQkJcHJpbnREYXRlID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZHJhd1llYXIsIGRyYXdNb250aCwgMSAtIGxlYWREYXlzKSk7DQoJCQkJZm9yIChkUm93ID0gMDsgZFJvdyA8IG51bVJvd3M7IGRSb3crKykgeyAvLyBjcmVhdGUgZGF0ZSBwaWNrZXIgcm93cw0KCQkJCQljYWxlbmRlciArPSAiPHRyPiI7DQoJCQkJCXRib2R5ID0gKCFzaG93V2VlayA/ICIiIDogIjx0ZCBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWNvbCc+IiArDQoJCQkJCQl0aGlzLl9nZXQoaW5zdCwgImNhbGN1bGF0ZVdlZWsiKShwcmludERhdGUpICsgIjwvdGQ+Iik7DQoJCQkJCWZvciAoZG93ID0gMDsgZG93IDwgNzsgZG93KyspIHsgLy8gY3JlYXRlIGRhdGUgcGlja2VyIGRheXMNCgkJCQkJCWRheVNldHRpbmdzID0gKGJlZm9yZVNob3dEYXkgPw0KCQkJCQkJCWJlZm9yZVNob3dEYXkuYXBwbHkoKGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WzBdIDogbnVsbCksIFtwcmludERhdGVdKSA6IFt0cnVlLCAiIl0pOw0KCQkJCQkJb3RoZXJNb250aCA9IChwcmludERhdGUuZ2V0TW9udGgoKSAhPT0gZHJhd01vbnRoKTsNCgkJCQkJCXVuc2VsZWN0YWJsZSA9IChvdGhlck1vbnRoICYmICFzZWxlY3RPdGhlck1vbnRocykgfHwgIWRheVNldHRpbmdzWzBdIHx8DQoJCQkJCQkJKG1pbkRhdGUgJiYgcHJpbnREYXRlIDwgbWluRGF0ZSkgfHwgKG1heERhdGUgJiYgcHJpbnREYXRlID4gbWF4RGF0ZSk7DQoJCQkJCQl0Ym9keSArPSAiPHRkIGNsYXNzPSciICsNCgkJCQkJCQkoKGRvdyArIGZpcnN0RGF5ICsgNikgJSA3ID49IDUgPyAiIHVpLWRhdGVwaWNrZXItd2Vlay1lbmQiIDogIiIpICsgLy8gaGlnaGxpZ2h0IHdlZWtlbmRzDQoJCQkJCQkJKG90aGVyTW9udGggPyAiIHVpLWRhdGVwaWNrZXItb3RoZXItbW9udGgiIDogIiIpICsgLy8gaGlnaGxpZ2h0IGRheXMgZnJvbSBvdGhlciBtb250aHMNCgkJCQkJCQkoKHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgZHJhd01vbnRoID09PSBpbnN0LnNlbGVjdGVkTW9udGggJiYgaW5zdC5fa2V5RXZlbnQpIHx8IC8vIHVzZXIgcHJlc3NlZCBrZXkNCgkJCQkJCQkoZGVmYXVsdERhdGUuZ2V0VGltZSgpID09PSBwcmludERhdGUuZ2V0VGltZSgpICYmIGRlZmF1bHREYXRlLmdldFRpbWUoKSA9PT0gc2VsZWN0ZWREYXRlLmdldFRpbWUoKSkgPw0KCQkJCQkJCS8vIG9yIGRlZmF1bHREYXRlIGlzIGN1cnJlbnQgcHJpbnRlZERhdGUgYW5kIGRlZmF1bHREYXRlIGlzIHNlbGVjdGVkRGF0ZQ0KCQkJCQkJCSIgIiArIHRoaXMuX2RheU92ZXJDbGFzcyA6ICIiKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkodW5zZWxlY3RhYmxlID8gIiAiICsgdGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3MgKyAiIHVpLXN0YXRlLWRpc2FibGVkIjogIiIpICsgIC8vIGhpZ2hsaWdodCB1bnNlbGVjdGFibGUgZGF5cw0KCQkJCQkJCShvdGhlck1vbnRoICYmICFzaG93T3RoZXJNb250aHMgPyAiIiA6ICIgIiArIGRheVNldHRpbmdzWzFdICsgLy8gaGlnaGxpZ2h0IGN1c3RvbSBkYXRlcw0KCQkJCQkJCShwcmludERhdGUuZ2V0VGltZSgpID09PSBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPyAiICIgKyB0aGlzLl9jdXJyZW50Q2xhc3MgOiAiIikgKyAvLyBoaWdobGlnaHQgc2VsZWN0ZWQgZGF5DQoJCQkJCQkJKHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHRvZGF5LmdldFRpbWUoKSA/ICIgdWktZGF0ZXBpY2tlci10b2RheSIgOiAiIikpICsgIiciICsgLy8gaGlnaGxpZ2h0IHRvZGF5IChpZiBkaWZmZXJlbnQpDQoJCQkJCQkJKCghb3RoZXJNb250aCB8fCBzaG93T3RoZXJNb250aHMpICYmIGRheVNldHRpbmdzWzJdID8gIiB0aXRsZT0nIiArIGRheVNldHRpbmdzWzJdLnJlcGxhY2UoLycvZywgIiYjMzk7IikgKyAiJyIgOiAiIikgKyAvLyBjZWxsIHRpdGxlDQoJCQkJCQkJKHVuc2VsZWN0YWJsZSA/ICIiIDogIiBkYXRhLWhhbmRsZXI9J3NlbGVjdERheScgZGF0YS1ldmVudD0nY2xpY2snIGRhdGEtbW9udGg9JyIgKyBwcmludERhdGUuZ2V0TW9udGgoKSArICInIGRhdGEteWVhcj0nIiArIHByaW50RGF0ZS5nZXRGdWxsWWVhcigpICsgIiciKSArICI+IiArIC8vIGFjdGlvbnMNCgkJCQkJCQkob3RoZXJNb250aCAmJiAhc2hvd090aGVyTW9udGhzID8gIiYjeGEwOyIgOiAvLyBkaXNwbGF5IGZvciBvdGhlciBtb250aHMNCgkJCQkJCQkodW5zZWxlY3RhYmxlID8gIjxzcGFuIGNsYXNzPSd1aS1zdGF0ZS1kZWZhdWx0Jz4iICsgcHJpbnREYXRlLmdldERhdGUoKSArICI8L3NwYW4+IiA6ICI8YSBjbGFzcz0ndWktc3RhdGUtZGVmYXVsdCIgKw0KCQkJCQkJCShwcmludERhdGUuZ2V0VGltZSgpID09PSB0b2RheS5nZXRUaW1lKCkgPyAiIHVpLXN0YXRlLWhpZ2hsaWdodCIgOiAiIikgKw0KCQkJCQkJCShwcmludERhdGUuZ2V0VGltZSgpID09PSBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPyAiIHVpLXN0YXRlLWFjdGl2ZSIgOiAiIikgKyAvLyBoaWdobGlnaHQgc2VsZWN0ZWQgZGF5DQoJCQkJCQkJKG90aGVyTW9udGggPyAiIHVpLXByaW9yaXR5LXNlY29uZGFyeSIgOiAiIikgKyAvLyBkaXN0aW5ndWlzaCBkYXRlcyBmcm9tIG90aGVyIG1vbnRocw0KCQkJCQkJCSInIGhyZWY9JyMnPiIgKyBwcmludERhdGUuZ2V0RGF0ZSgpICsgIjwvYT4iKSkgKyAiPC90ZD4iOyAvLyBkaXNwbGF5IHNlbGVjdGFibGUgZGF0ZQ0KCQkJCQkJcHJpbnREYXRlLnNldERhdGUocHJpbnREYXRlLmdldERhdGUoKSArIDEpOw0KCQkJCQkJcHJpbnREYXRlID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QocHJpbnREYXRlKTsNCgkJCQkJfQ0KCQkJCQljYWxlbmRlciArPSB0Ym9keSArICI8L3RyPiI7DQoJCQkJfQ0KCQkJCWRyYXdNb250aCsrOw0KCQkJCWlmIChkcmF3TW9udGggPiAxMSkgew0KCQkJCQlkcmF3TW9udGggPSAwOw0KCQkJCQlkcmF3WWVhcisrOw0KCQkJCX0NCgkJCQljYWxlbmRlciArPSAiPC90Ym9keT48L3RhYmxlPiIgKyAoaXNNdWx0aU1vbnRoID8gIjwvZGl2PiIgKw0KCQkJCQkJCSgobnVtTW9udGhzWzBdID4gMCAmJiBjb2wgPT09IG51bU1vbnRoc1sxXS0xKSA/ICI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLXJvdy1icmVhayc+PC9kaXY+IiA6ICIiKSA6ICIiKTsNCgkJCQlncm91cCArPSBjYWxlbmRlcjsNCgkJCX0NCgkJCWh0bWwgKz0gZ3JvdXA7DQoJCX0NCgkJaHRtbCArPSBidXR0b25QYW5lbDsNCgkJaW5zdC5fa2V5RXZlbnQgPSBmYWxzZTsNCgkJcmV0dXJuIGh0bWw7DQoJfSwNCg0KCS8qIEdlbmVyYXRlIHRoZSBtb250aCBhbmQgeWVhciBoZWFkZXIuICovDQoJX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyOiBmdW5jdGlvbihpbnN0LCBkcmF3TW9udGgsIGRyYXdZZWFyLCBtaW5EYXRlLCBtYXhEYXRlLA0KCQkJc2Vjb25kYXJ5LCBtb250aE5hbWVzLCBtb250aE5hbWVzU2hvcnQpIHsNCg0KCQl2YXIgaW5NaW5ZZWFyLCBpbk1heFllYXIsIG1vbnRoLCB5ZWFycywgdGhpc1llYXIsIGRldGVybWluZVllYXIsIHllYXIsIGVuZFllYXIsDQoJCQljaGFuZ2VNb250aCA9IHRoaXMuX2dldChpbnN0LCAiY2hhbmdlTW9udGgiKSwNCgkJCWNoYW5nZVllYXIgPSB0aGlzLl9nZXQoaW5zdCwgImNoYW5nZVllYXIiKSwNCgkJCXNob3dNb250aEFmdGVyWWVhciA9IHRoaXMuX2dldChpbnN0LCAic2hvd01vbnRoQWZ0ZXJZZWFyIiksDQoJCQlodG1sID0gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItdGl0bGUnPiIsDQoJCQltb250aEh0bWwgPSAiIjsNCg0KCQkvLyBtb250aCBzZWxlY3Rpb24NCgkJaWYgKHNlY29uZGFyeSB8fCAhY2hhbmdlTW9udGgpIHsNCgkJCW1vbnRoSHRtbCArPSAiPHNwYW4gY2xhc3M9J3VpLWRhdGVwaWNrZXItbW9udGgnPiIgKyBtb250aE5hbWVzW2RyYXdNb250aF0gKyAiPC9zcGFuPiI7DQoJCX0gZWxzZSB7DQoJCQlpbk1pblllYXIgPSAobWluRGF0ZSAmJiBtaW5EYXRlLmdldEZ1bGxZZWFyKCkgPT09IGRyYXdZZWFyKTsNCgkJCWluTWF4WWVhciA9IChtYXhEYXRlICYmIG1heERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gZHJhd1llYXIpOw0KCQkJbW9udGhIdG1sICs9ICI8c2VsZWN0IGNsYXNzPSd1aS1kYXRlcGlja2VyLW1vbnRoJyBkYXRhLWhhbmRsZXI9J3NlbGVjdE1vbnRoJyBkYXRhLWV2ZW50PSdjaGFuZ2UnPiI7DQoJCQlmb3IgKCBtb250aCA9IDA7IG1vbnRoIDwgMTI7IG1vbnRoKyspIHsNCgkJCQlpZiAoKCFpbk1pblllYXIgfHwgbW9udGggPj0gbWluRGF0ZS5nZXRNb250aCgpKSAmJiAoIWluTWF4WWVhciB8fCBtb250aCA8PSBtYXhEYXRlLmdldE1vbnRoKCkpKSB7DQoJCQkJCW1vbnRoSHRtbCArPSAiPG9wdGlvbiB2YWx1ZT0nIiArIG1vbnRoICsgIiciICsNCgkJCQkJCShtb250aCA9PT0gZHJhd01vbnRoID8gIiBzZWxlY3RlZD0nc2VsZWN0ZWQnIiA6ICIiKSArDQoJCQkJCQkiPiIgKyBtb250aE5hbWVzU2hvcnRbbW9udGhdICsgIjwvb3B0aW9uPiI7DQoJCQkJfQ0KCQkJfQ0KCQkJbW9udGhIdG1sICs9ICI8L3NlbGVjdD4iOw0KCQl9DQoNCgkJaWYgKCFzaG93TW9udGhBZnRlclllYXIpIHsNCgkJCWh0bWwgKz0gbW9udGhIdG1sICsgKHNlY29uZGFyeSB8fCAhKGNoYW5nZU1vbnRoICYmIGNoYW5nZVllYXIpID8gIiYjeGEwOyIgOiAiIik7DQoJCX0NCg0KCQkvLyB5ZWFyIHNlbGVjdGlvbg0KCQlpZiAoICFpbnN0LnllYXJzaHRtbCApIHsNCgkJCWluc3QueWVhcnNodG1sID0gIiI7DQoJCQlpZiAoc2Vjb25kYXJ5IHx8ICFjaGFuZ2VZZWFyKSB7DQoJCQkJaHRtbCArPSAiPHNwYW4gY2xhc3M9J3VpLWRhdGVwaWNrZXIteWVhcic+IiArIGRyYXdZZWFyICsgIjwvc3Bhbj4iOw0KCQkJfSBlbHNlIHsNCgkJCQkvLyBkZXRlcm1pbmUgcmFuZ2Ugb2YgeWVhcnMgdG8gZGlzcGxheQ0KCQkJCXllYXJzID0gdGhpcy5fZ2V0KGluc3QsICJ5ZWFyUmFuZ2UiKS5zcGxpdCgiOiIpOw0KCQkJCXRoaXNZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOw0KCQkJCWRldGVybWluZVllYXIgPSBmdW5jdGlvbih2YWx1ZSkgew0KCQkJCQl2YXIgeWVhciA9ICh2YWx1ZS5tYXRjaCgvY1srXC1dLiovKSA/IGRyYXdZZWFyICsgcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDEpLCAxMCkgOg0KCQkJCQkJKHZhbHVlLm1hdGNoKC9bK1wtXS4qLykgPyB0aGlzWWVhciArIHBhcnNlSW50KHZhbHVlLCAxMCkgOg0KCQkJCQkJcGFyc2VJbnQodmFsdWUsIDEwKSkpOw0KCQkJCQlyZXR1cm4gKGlzTmFOKHllYXIpID8gdGhpc1llYXIgOiB5ZWFyKTsNCgkJCQl9Ow0KCQkJCXllYXIgPSBkZXRlcm1pbmVZZWFyKHllYXJzWzBdKTsNCgkJCQllbmRZZWFyID0gTWF0aC5tYXgoeWVhciwgZGV0ZXJtaW5lWWVhcih5ZWFyc1sxXSB8fCAiIikpOw0KCQkJCXllYXIgPSAobWluRGF0ZSA/IE1hdGgubWF4KHllYXIsIG1pbkRhdGUuZ2V0RnVsbFllYXIoKSkgOiB5ZWFyKTsNCgkJCQllbmRZZWFyID0gKG1heERhdGUgPyBNYXRoLm1pbihlbmRZZWFyLCBtYXhEYXRlLmdldEZ1bGxZZWFyKCkpIDogZW5kWWVhcik7DQoJCQkJaW5zdC55ZWFyc2h0bWwgKz0gIjxzZWxlY3QgY2xhc3M9J3VpLWRhdGVwaWNrZXIteWVhcicgZGF0YS1oYW5kbGVyPSdzZWxlY3RZZWFyJyBkYXRhLWV2ZW50PSdjaGFuZ2UnPiI7DQoJCQkJZm9yICg7IHllYXIgPD0gZW5kWWVhcjsgeWVhcisrKSB7DQoJCQkJCWluc3QueWVhcnNodG1sICs9ICI8b3B0aW9uIHZhbHVlPSciICsgeWVhciArICInIiArDQoJCQkJCQkoeWVhciA9PT0gZHJhd1llYXIgPyAiIHNlbGVjdGVkPSdzZWxlY3RlZCciIDogIiIpICsNCgkJCQkJCSI+IiArIHllYXIgKyAiPC9vcHRpb24+IjsNCgkJCQl9DQoJCQkJaW5zdC55ZWFyc2h0bWwgKz0gIjwvc2VsZWN0PiI7DQoNCgkJCQlodG1sICs9IGluc3QueWVhcnNodG1sOw0KCQkJCWluc3QueWVhcnNodG1sID0gbnVsbDsNCgkJCX0NCgkJfQ0KDQoJCWh0bWwgKz0gdGhpcy5fZ2V0KGluc3QsICJ5ZWFyU3VmZml4Iik7DQoJCWlmIChzaG93TW9udGhBZnRlclllYXIpIHsNCgkJCWh0bWwgKz0gKHNlY29uZGFyeSB8fCAhKGNoYW5nZU1vbnRoICYmIGNoYW5nZVllYXIpID8gIiYjeGEwOyIgOiAiIikgKyBtb250aEh0bWw7DQoJCX0NCgkJaHRtbCArPSAiPC9kaXY+IjsgLy8gQ2xvc2UgZGF0ZXBpY2tlcl9oZWFkZXINCgkJcmV0dXJuIGh0bWw7DQoJfSwNCg0KCS8qIEFkanVzdCBvbmUgb2YgdGhlIGRhdGUgc3ViLWZpZWxkcy4gKi8NCglfYWRqdXN0SW5zdERhdGU6IGZ1bmN0aW9uKGluc3QsIG9mZnNldCwgcGVyaW9kKSB7DQoJCXZhciB5ZWFyID0gaW5zdC5kcmF3WWVhciArIChwZXJpb2QgPT09ICJZIiA/IG9mZnNldCA6IDApLA0KCQkJbW9udGggPSBpbnN0LmRyYXdNb250aCArIChwZXJpb2QgPT09ICJNIiA/IG9mZnNldCA6IDApLA0KCQkJZGF5ID0gTWF0aC5taW4oaW5zdC5zZWxlY3RlZERheSwgdGhpcy5fZ2V0RGF5c0luTW9udGgoeWVhciwgbW9udGgpKSArIChwZXJpb2QgPT09ICJEIiA/IG9mZnNldCA6IDApLA0KCQkJZGF0ZSA9IHRoaXMuX3Jlc3RyaWN0TWluTWF4KGluc3QsIHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpKSk7DQoNCgkJaW5zdC5zZWxlY3RlZERheSA9IGRhdGUuZ2V0RGF0ZSgpOw0KCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTsNCgkJaW5zdC5kcmF3WWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQlpZiAocGVyaW9kID09PSAiTSIgfHwgcGVyaW9kID09PSAiWSIpIHsNCgkJCXRoaXMuX25vdGlmeUNoYW5nZShpbnN0KTsNCgkJfQ0KCX0sDQoNCgkvKiBFbnN1cmUgYSBkYXRlIGlzIHdpdGhpbiBhbnkgbWluL21heCBib3VuZHMuICovDQoJX3Jlc3RyaWN0TWluTWF4OiBmdW5jdGlvbihpbnN0LCBkYXRlKSB7DQoJCXZhciBtaW5EYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWluIiksDQoJCQltYXhEYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWF4IiksDQoJCQluZXdEYXRlID0gKG1pbkRhdGUgJiYgZGF0ZSA8IG1pbkRhdGUgPyBtaW5EYXRlIDogZGF0ZSk7DQoJCXJldHVybiAobWF4RGF0ZSAmJiBuZXdEYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiBuZXdEYXRlKTsNCgl9LA0KDQoJLyogTm90aWZ5IGNoYW5nZSBvZiBtb250aC95ZWFyLiAqLw0KCV9ub3RpZnlDaGFuZ2U6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIG9uQ2hhbmdlID0gdGhpcy5fZ2V0KGluc3QsICJvbkNoYW5nZU1vbnRoWWVhciIpOw0KCQlpZiAob25DaGFuZ2UpIHsNCgkJCW9uQ2hhbmdlLmFwcGx5KChpbnN0LmlucHV0ID8gaW5zdC5pbnB1dFswXSA6IG51bGwpLA0KCQkJCVtpbnN0LnNlbGVjdGVkWWVhciwgaW5zdC5zZWxlY3RlZE1vbnRoICsgMSwgaW5zdF0pOw0KCQl9DQoJfSwNCg0KCS8qIERldGVybWluZSB0aGUgbnVtYmVyIG9mIG1vbnRocyB0byBzaG93LiAqLw0KCV9nZXROdW1iZXJPZk1vbnRoczogZnVuY3Rpb24oaW5zdCkgew0KCQl2YXIgbnVtTW9udGhzID0gdGhpcy5fZ2V0KGluc3QsICJudW1iZXJPZk1vbnRocyIpOw0KCQlyZXR1cm4gKG51bU1vbnRocyA9PSBudWxsID8gWzEsIDFdIDogKHR5cGVvZiBudW1Nb250aHMgPT09ICJudW1iZXIiID8gWzEsIG51bU1vbnRoc10gOiBudW1Nb250aHMpKTsNCgl9LA0KDQoJLyogRGV0ZXJtaW5lIHRoZSBjdXJyZW50IG1heGltdW0gZGF0ZSAtIGVuc3VyZSBubyB0aW1lIGNvbXBvbmVudHMgYXJlIHNldC4gKi8NCglfZ2V0TWluTWF4RGF0ZTogZnVuY3Rpb24oaW5zdCwgbWluTWF4KSB7DQoJCXJldHVybiB0aGlzLl9kZXRlcm1pbmVEYXRlKGluc3QsIHRoaXMuX2dldChpbnN0LCBtaW5NYXggKyAiRGF0ZSIpLCBudWxsKTsNCgl9LA0KDQoJLyogRmluZCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBnaXZlbiBtb250aC4gKi8NCglfZ2V0RGF5c0luTW9udGg6IGZ1bmN0aW9uKHllYXIsIG1vbnRoKSB7DQoJCXJldHVybiAzMiAtIHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHllYXIsIG1vbnRoLCAzMikpLmdldERhdGUoKTsNCgl9LA0KDQoJLyogRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBmaXJzdCBvZiBhIG1vbnRoLiAqLw0KCV9nZXRGaXJzdERheU9mTW9udGg6IGZ1bmN0aW9uKHllYXIsIG1vbnRoKSB7DQoJCXJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSkuZ2V0RGF5KCk7DQoJfSwNCg0KCS8qIERldGVybWluZXMgaWYgd2Ugc2hvdWxkIGFsbG93IGEgIm5leHQvcHJldiIgbW9udGggZGlzcGxheSBjaGFuZ2UuICovDQoJX2NhbkFkanVzdE1vbnRoOiBmdW5jdGlvbihpbnN0LCBvZmZzZXQsIGN1clllYXIsIGN1ck1vbnRoKSB7DQoJCXZhciBudW1Nb250aHMgPSB0aGlzLl9nZXROdW1iZXJPZk1vbnRocyhpbnN0KSwNCgkJCWRhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShjdXJZZWFyLA0KCQkJY3VyTW9udGggKyAob2Zmc2V0IDwgMCA/IG9mZnNldCA6IG51bU1vbnRoc1swXSAqIG51bU1vbnRoc1sxXSksIDEpKTsNCg0KCQlpZiAob2Zmc2V0IDwgMCkgew0KCQkJZGF0ZS5zZXREYXRlKHRoaXMuX2dldERheXNJbk1vbnRoKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpKSk7DQoJCX0NCgkJcmV0dXJuIHRoaXMuX2lzSW5SYW5nZShpbnN0LCBkYXRlKTsNCgl9LA0KDQoJLyogSXMgdGhlIGdpdmVuIGRhdGUgaW4gdGhlIGFjY2VwdGVkIHJhbmdlPyAqLw0KCV9pc0luUmFuZ2U6IGZ1bmN0aW9uKGluc3QsIGRhdGUpIHsNCgkJdmFyIHllYXJTcGxpdCwgY3VycmVudFllYXIsDQoJCQltaW5EYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWluIiksDQoJCQltYXhEYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZShpbnN0LCAibWF4IiksDQoJCQltaW5ZZWFyID0gbnVsbCwNCgkJCW1heFllYXIgPSBudWxsLA0KCQkJeWVhcnMgPSB0aGlzLl9nZXQoaW5zdCwgInllYXJSYW5nZSIpOw0KCQkJaWYgKHllYXJzKXsNCgkJCQl5ZWFyU3BsaXQgPSB5ZWFycy5zcGxpdCgiOiIpOw0KCQkJCWN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOw0KCQkJCW1pblllYXIgPSBwYXJzZUludCh5ZWFyU3BsaXRbMF0sIDEwKTsNCgkJCQltYXhZZWFyID0gcGFyc2VJbnQoeWVhclNwbGl0WzFdLCAxMCk7DQoJCQkJaWYgKCB5ZWFyU3BsaXRbMF0ubWF0Y2goL1srXC1dLiovKSApIHsNCgkJCQkJbWluWWVhciArPSBjdXJyZW50WWVhcjsNCgkJCQl9DQoJCQkJaWYgKCB5ZWFyU3BsaXRbMV0ubWF0Y2goL1srXC1dLiovKSApIHsNCgkJCQkJbWF4WWVhciArPSBjdXJyZW50WWVhcjsNCgkJCQl9DQoJCQl9DQoNCgkJcmV0dXJuICgoIW1pbkRhdGUgfHwgZGF0ZS5nZXRUaW1lKCkgPj0gbWluRGF0ZS5nZXRUaW1lKCkpICYmDQoJCQkoIW1heERhdGUgfHwgZGF0ZS5nZXRUaW1lKCkgPD0gbWF4RGF0ZS5nZXRUaW1lKCkpICYmDQoJCQkoIW1pblllYXIgfHwgZGF0ZS5nZXRGdWxsWWVhcigpID49IG1pblllYXIpICYmDQoJCQkoIW1heFllYXIgfHwgZGF0ZS5nZXRGdWxsWWVhcigpIDw9IG1heFllYXIpKTsNCgl9LA0KDQoJLyogUHJvdmlkZSB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgZm9ybWF0dGluZy9wYXJzaW5nLiAqLw0KCV9nZXRGb3JtYXRDb25maWc6IGZ1bmN0aW9uKGluc3QpIHsNCgkJdmFyIHNob3J0WWVhckN1dG9mZiA9IHRoaXMuX2dldChpbnN0LCAic2hvcnRZZWFyQ3V0b2ZmIik7DQoJCXNob3J0WWVhckN1dG9mZiA9ICh0eXBlb2Ygc2hvcnRZZWFyQ3V0b2ZmICE9PSAic3RyaW5nIiA/IHNob3J0WWVhckN1dG9mZiA6DQoJCQluZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgJSAxMDAgKyBwYXJzZUludChzaG9ydFllYXJDdXRvZmYsIDEwKSk7DQoJCXJldHVybiB7c2hvcnRZZWFyQ3V0b2ZmOiBzaG9ydFllYXJDdXRvZmYsDQoJCQlkYXlOYW1lc1Nob3J0OiB0aGlzLl9nZXQoaW5zdCwgImRheU5hbWVzU2hvcnQiKSwgZGF5TmFtZXM6IHRoaXMuX2dldChpbnN0LCAiZGF5TmFtZXMiKSwNCgkJCW1vbnRoTmFtZXNTaG9ydDogdGhpcy5fZ2V0KGluc3QsICJtb250aE5hbWVzU2hvcnQiKSwgbW9udGhOYW1lczogdGhpcy5fZ2V0KGluc3QsICJtb250aE5hbWVzIil9Ow0KCX0sDQoNCgkvKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgZm9yIGRpc3BsYXkuICovDQoJX2Zvcm1hdERhdGU6IGZ1bmN0aW9uKGluc3QsIGRheSwgbW9udGgsIHllYXIpIHsNCgkJaWYgKCFkYXkpIHsNCgkJCWluc3QuY3VycmVudERheSA9IGluc3Quc2VsZWN0ZWREYXk7DQoJCQlpbnN0LmN1cnJlbnRNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aDsNCgkJCWluc3QuY3VycmVudFllYXIgPSBpbnN0LnNlbGVjdGVkWWVhcjsNCgkJfQ0KCQl2YXIgZGF0ZSA9IChkYXkgPyAodHlwZW9mIGRheSA9PT0gIm9iamVjdCIgPyBkYXkgOg0KCQkJdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoeWVhciwgbW9udGgsIGRheSkpKSA6DQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShpbnN0LmN1cnJlbnRZZWFyLCBpbnN0LmN1cnJlbnRNb250aCwgaW5zdC5jdXJyZW50RGF5KSkpOw0KCQlyZXR1cm4gdGhpcy5mb3JtYXREYXRlKHRoaXMuX2dldChpbnN0LCAiZGF0ZUZvcm1hdCIpLCBkYXRlLCB0aGlzLl9nZXRGb3JtYXRDb25maWcoaW5zdCkpOw0KCX0NCn0pOw0KDQovKg0KICogQmluZCBob3ZlciBldmVudHMgZm9yIGRhdGVwaWNrZXIgZWxlbWVudHMuDQogKiBEb25lIHZpYSBkZWxlZ2F0ZSBzbyB0aGUgYmluZGluZyBvbmx5IG9jY3VycyBvbmNlIGluIHRoZSBsaWZldGltZSBvZiB0aGUgcGFyZW50IGRpdi4NCiAqIEdsb2JhbCBkYXRlcGlja2VyX2luc3RBY3RpdmUsIHNldCBieSBfdXBkYXRlRGF0ZXBpY2tlciBhbGxvd3MgdGhlIGhhbmRsZXJzIHRvIGZpbmQgdGhlaXIgd2F5IGJhY2sgdG8gdGhlIGFjdGl2ZSBwaWNrZXIuDQogKi8NCmZ1bmN0aW9uIGRhdGVwaWNrZXJfYmluZEhvdmVyKGRwRGl2KSB7DQoJdmFyIHNlbGVjdG9yID0gImJ1dHRvbiwgLnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNrZXItbmV4dCwgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSI7DQoJcmV0dXJuIGRwRGl2LmRlbGVnYXRlKHNlbGVjdG9yLCAibW91c2VvdXQiLCBmdW5jdGlvbigpIHsNCgkJCSQodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhvdmVyIik7DQoJCQlpZiAodGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1wcmV2IikgIT09IC0xKSB7DQoJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIik7DQoJCQl9DQoJCQlpZiAodGhpcy5jbGFzc05hbWUuaW5kZXhPZigidWktZGF0ZXBpY2tlci1uZXh0IikgIT09IC0xKSB7DQoJCQkJJCh0aGlzKS5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIik7DQoJCQl9DQoJCX0pDQoJCS5kZWxlZ2F0ZSggc2VsZWN0b3IsICJtb3VzZW92ZXIiLCBkYXRlcGlja2VyX2hhbmRsZU1vdXNlb3ZlciApOw0KfQ0KDQpmdW5jdGlvbiBkYXRlcGlja2VyX2hhbmRsZU1vdXNlb3ZlcigpIHsNCglpZiAoISQuZGF0ZXBpY2tlci5faXNEaXNhYmxlZERhdGVwaWNrZXIoIGRhdGVwaWNrZXJfaW5zdEFjdGl2ZS5pbmxpbmU/IGRhdGVwaWNrZXJfaW5zdEFjdGl2ZS5kcERpdi5wYXJlbnQoKVswXSA6IGRhdGVwaWNrZXJfaW5zdEFjdGl2ZS5pbnB1dFswXSkpIHsNCgkJJCh0aGlzKS5wYXJlbnRzKCIudWktZGF0ZXBpY2tlci1jYWxlbmRhciIpLmZpbmQoImEiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKTsNCgkJJCh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtaG92ZXIiKTsNCgkJaWYgKHRoaXMuY2xhc3NOYW1lLmluZGV4T2YoInVpLWRhdGVwaWNrZXItcHJldiIpICE9PSAtMSkgew0KCQkJJCh0aGlzKS5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIik7DQoJCX0NCgkJaWYgKHRoaXMuY2xhc3NOYW1lLmluZGV4T2YoInVpLWRhdGVwaWNrZXItbmV4dCIpICE9PSAtMSkgew0KCQkJJCh0aGlzKS5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIik7DQoJCX0NCgl9DQp9DQoNCi8qIGpRdWVyeSBleHRlbmQgbm93IGlnbm9yZXMgbnVsbHMhICovDQpmdW5jdGlvbiBkYXRlcGlja2VyX2V4dGVuZFJlbW92ZSh0YXJnZXQsIHByb3BzKSB7DQoJJC5leHRlbmQodGFyZ2V0LCBwcm9wcyk7DQoJZm9yICh2YXIgbmFtZSBpbiBwcm9wcykgew0KCQlpZiAocHJvcHNbbmFtZV0gPT0gbnVsbCkgew0KCQkJdGFyZ2V0W25hbWVdID0gcHJvcHNbbmFtZV07DQoJCX0NCgl9DQoJcmV0dXJuIHRhcmdldDsNCn0NCg0KLyogSW52b2tlIHRoZSBkYXRlcGlja2VyIGZ1bmN0aW9uYWxpdHkuDQogICBAcGFyYW0gIG9wdGlvbnMgIHN0cmluZyAtIGEgY29tbWFuZCwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgb3INCgkJCQkJT2JqZWN0IC0gc2V0dGluZ3MgZm9yIGF0dGFjaGluZyBuZXcgZGF0ZXBpY2tlciBmdW5jdGlvbmFsaXR5DQogICBAcmV0dXJuICBqUXVlcnkgb2JqZWN0ICovDQokLmZuLmRhdGVwaWNrZXIgPSBmdW5jdGlvbihvcHRpb25zKXsNCg0KCS8qIFZlcmlmeSBhbiBlbXB0eSBjb2xsZWN0aW9uIHdhc24ndCBwYXNzZWQgLSBGaXhlcyAjNjk3NiAqLw0KCWlmICggIXRoaXMubGVuZ3RoICkgew0KCQlyZXR1cm4gdGhpczsNCgl9DQoNCgkvKiBJbml0aWFsaXNlIHRoZSBkYXRlIHBpY2tlci4gKi8NCglpZiAoISQuZGF0ZXBpY2tlci5pbml0aWFsaXplZCkgew0KCQkkKGRvY3VtZW50KS5tb3VzZWRvd24oJC5kYXRlcGlja2VyLl9jaGVja0V4dGVybmFsQ2xpY2spOw0KCQkkLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQgPSB0cnVlOw0KCX0NCg0KCS8qIEFwcGVuZCBkYXRlcGlja2VyIG1haW4gY29udGFpbmVyIHRvIGJvZHkgaWYgbm90IGV4aXN0LiAqLw0KCWlmICgkKCIjIiskLmRhdGVwaWNrZXIuX21haW5EaXZJZCkubGVuZ3RoID09PSAwKSB7DQoJCSQoImJvZHkiKS5hcHBlbmQoJC5kYXRlcGlja2VyLmRwRGl2KTsNCgl9DQoNCgl2YXIgb3RoZXJBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsNCglpZiAodHlwZW9mIG9wdGlvbnMgPT09ICJzdHJpbmciICYmIChvcHRpb25zID09PSAiaXNEaXNhYmxlZCIgfHwgb3B0aW9ucyA9PT0gImdldERhdGUiIHx8IG9wdGlvbnMgPT09ICJ3aWRnZXQiKSkgew0KCQlyZXR1cm4gJC5kYXRlcGlja2VyWyJfIiArIG9wdGlvbnMgKyAiRGF0ZXBpY2tlciJdLg0KCQkJYXBwbHkoJC5kYXRlcGlja2VyLCBbdGhpc1swXV0uY29uY2F0KG90aGVyQXJncykpOw0KCX0NCglpZiAob3B0aW9ucyA9PT0gIm9wdGlvbiIgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgYXJndW1lbnRzWzFdID09PSAic3RyaW5nIikgew0KCQlyZXR1cm4gJC5kYXRlcGlja2VyWyJfIiArIG9wdGlvbnMgKyAiRGF0ZXBpY2tlciJdLg0KCQkJYXBwbHkoJC5kYXRlcGlja2VyLCBbdGhpc1swXV0uY29uY2F0KG90aGVyQXJncykpOw0KCX0NCglyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgew0KCQl0eXBlb2Ygb3B0aW9ucyA9PT0gInN0cmluZyIgPw0KCQkJJC5kYXRlcGlja2VyWyJfIiArIG9wdGlvbnMgKyAiRGF0ZXBpY2tlciJdLg0KCQkJCWFwcGx5KCQuZGF0ZXBpY2tlciwgW3RoaXNdLmNvbmNhdChvdGhlckFyZ3MpKSA6DQoJCQkkLmRhdGVwaWNrZXIuX2F0dGFjaERhdGVwaWNrZXIodGhpcywgb3B0aW9ucyk7DQoJfSk7DQp9Ow0KDQokLmRhdGVwaWNrZXIgPSBuZXcgRGF0ZXBpY2tlcigpOyAvLyBzaW5nbGV0b24gaW5zdGFuY2UNCiQuZGF0ZXBpY2tlci5pbml0aWFsaXplZCA9IGZhbHNlOw0KJC5kYXRlcGlja2VyLnV1aWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsNCiQuZGF0ZXBpY2tlci52ZXJzaW9uID0gIjEuMTEuNCI7DQoNCnZhciBkYXRlcGlja2VyID0gJC5kYXRlcGlja2VyOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIERyYWdnYWJsZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2RyYWdnYWJsZS8NCiAqLw0KDQoNCiQud2lkZ2V0KCJ1aS5kcmFnZ2FibGUiLCAkLnVpLm1vdXNlLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoJd2lkZ2V0RXZlbnRQcmVmaXg6ICJkcmFnIiwNCglvcHRpb25zOiB7DQoJCWFkZENsYXNzZXM6IHRydWUsDQoJCWFwcGVuZFRvOiAicGFyZW50IiwNCgkJYXhpczogZmFsc2UsDQoJCWNvbm5lY3RUb1NvcnRhYmxlOiBmYWxzZSwNCgkJY29udGFpbm1lbnQ6IGZhbHNlLA0KCQljdXJzb3I6ICJhdXRvIiwNCgkJY3Vyc29yQXQ6IGZhbHNlLA0KCQlncmlkOiBmYWxzZSwNCgkJaGFuZGxlOiBmYWxzZSwNCgkJaGVscGVyOiAib3JpZ2luYWwiLA0KCQlpZnJhbWVGaXg6IGZhbHNlLA0KCQlvcGFjaXR5OiBmYWxzZSwNCgkJcmVmcmVzaFBvc2l0aW9uczogZmFsc2UsDQoJCXJldmVydDogZmFsc2UsDQoJCXJldmVydER1cmF0aW9uOiA1MDAsDQoJCXNjb3BlOiAiZGVmYXVsdCIsDQoJCXNjcm9sbDogdHJ1ZSwNCgkJc2Nyb2xsU2Vuc2l0aXZpdHk6IDIwLA0KCQlzY3JvbGxTcGVlZDogMjAsDQoJCXNuYXA6IGZhbHNlLA0KCQlzbmFwTW9kZTogImJvdGgiLA0KCQlzbmFwVG9sZXJhbmNlOiAyMCwNCgkJc3RhY2s6IGZhbHNlLA0KCQl6SW5kZXg6IGZhbHNlLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlkcmFnOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuaGVscGVyID09PSAib3JpZ2luYWwiICkgew0KCQkJdGhpcy5fc2V0UG9zaXRpb25SZWxhdGl2ZSgpOw0KCQl9DQoJCWlmICh0aGlzLm9wdGlvbnMuYWRkQ2xhc3Nlcyl7DQoJCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZSIpOw0KCQl9DQoJCWlmICh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpew0KCQkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUtZGlzYWJsZWQiKTsNCgkJfQ0KCQl0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKTsNCg0KCQl0aGlzLl9tb3VzZUluaXQoKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJCWlmICgga2V5ID09PSAiaGFuZGxlIiApIHsNCgkJCXRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpOw0KCQkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoJCX0NCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQlpZiAoICggdGhpcy5oZWxwZXIgfHwgdGhpcy5lbGVtZW50ICkuaXMoICIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIiApICkgew0KCQkJdGhpcy5kZXN0cm95T25DbGVhciA9IHRydWU7DQoJCQlyZXR1cm47DQoJCX0NCgkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCAidWktZHJhZ2dhYmxlIHVpLWRyYWdnYWJsZS1kcmFnZ2luZyB1aS1kcmFnZ2FibGUtZGlzYWJsZWQiICk7DQoJCXRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpOw0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCgl9LA0KDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIG8gPSB0aGlzLm9wdGlvbnM7DQoNCgkJdGhpcy5fYmx1ckFjdGl2ZUVsZW1lbnQoIGV2ZW50ICk7DQoNCgkJLy8gYW1vbmcgb3RoZXJzLCBwcmV2ZW50IGEgZHJhZyBvbiBhIHJlc2l6YWJsZS1oYW5kbGUNCgkJaWYgKHRoaXMuaGVscGVyIHx8IG8uZGlzYWJsZWQgfHwgJChldmVudC50YXJnZXQpLmNsb3Nlc3QoIi51aS1yZXNpemFibGUtaGFuZGxlIikubGVuZ3RoID4gMCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy9RdWl0IGlmIHdlJ3JlIG5vdCBvbiBhIHZhbGlkIGhhbmRsZQ0KCQl0aGlzLmhhbmRsZSA9IHRoaXMuX2dldEhhbmRsZShldmVudCk7DQoJCWlmICghdGhpcy5oYW5kbGUpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuX2Jsb2NrRnJhbWVzKCBvLmlmcmFtZUZpeCA9PT0gdHJ1ZSA/ICJpZnJhbWUiIDogby5pZnJhbWVGaXggKTsNCg0KCQlyZXR1cm4gdHJ1ZTsNCg0KCX0sDQoNCglfYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsNCgkJdGhpcy5pZnJhbWVCbG9ja3MgPSB0aGlzLmRvY3VtZW50LmZpbmQoIHNlbGVjdG9yICkubWFwKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGlmcmFtZSA9ICQoIHRoaXMgKTsNCg0KCQkJcmV0dXJuICQoICI8ZGl2PiIgKQ0KCQkJCS5jc3MoICJwb3NpdGlvbiIsICJhYnNvbHV0ZSIgKQ0KCQkJCS5hcHBlbmRUbyggaWZyYW1lLnBhcmVudCgpICkNCgkJCQkub3V0ZXJXaWR0aCggaWZyYW1lLm91dGVyV2lkdGgoKSApDQoJCQkJLm91dGVySGVpZ2h0KCBpZnJhbWUub3V0ZXJIZWlnaHQoKSApDQoJCQkJLm9mZnNldCggaWZyYW1lLm9mZnNldCgpIClbIDAgXTsNCgkJfSk7DQoJfSwNCg0KCV91bmJsb2NrRnJhbWVzOiBmdW5jdGlvbigpIHsNCgkJaWYgKCB0aGlzLmlmcmFtZUJsb2NrcyApIHsNCgkJCXRoaXMuaWZyYW1lQmxvY2tzLnJlbW92ZSgpOw0KCQkJZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzOw0KCQl9DQoJfSwNCg0KCV9ibHVyQWN0aXZlRWxlbWVudDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgZG9jdW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF07DQoNCgkJLy8gT25seSBuZWVkIHRvIGJsdXIgaWYgdGhlIGV2ZW50IG9jY3VycmVkIG9uIHRoZSBkcmFnZ2FibGUgaXRzZWxmLCBzZWUgIzEwNTI3DQoJCWlmICggIXRoaXMuaGFuZGxlRWxlbWVudC5pcyggZXZlbnQudGFyZ2V0ICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBzdXBwb3J0OiBJRTkNCgkJLy8gSUU5IHRocm93cyBhbiAiVW5zcGVjaWZpZWQgZXJyb3IiIGFjY2Vzc2luZyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGZyb20gYW4gPGlmcmFtZT4NCgkJdHJ5IHsNCg0KCQkJLy8gU3VwcG9ydDogSUU5LCBJRTEwDQoJCQkvLyBJZiB0aGUgPGJvZHk+IGlzIGJsdXJyZWQsIElFIHdpbGwgc3dpdGNoIHdpbmRvd3MsIHNlZSAjOTUyMA0KCQkJaWYgKCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gImJvZHkiICkgew0KDQoJCQkJLy8gQmx1ciBhbnkgZWxlbWVudCB0aGF0IGN1cnJlbnRseSBoYXMgZm9jdXMsIHNlZSAjNDI2MQ0KCQkJCSQoIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgKS5ibHVyKCk7DQoJCQl9DQoJCX0gY2F0Y2ggKCBlcnJvciApIHt9DQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbihldmVudCkgew0KDQoJCXZhciBvID0gdGhpcy5vcHRpb25zOw0KDQoJCS8vQ3JlYXRlIGFuZCBhcHBlbmQgdGhlIHZpc2libGUgaGVscGVyDQoJCXRoaXMuaGVscGVyID0gdGhpcy5fY3JlYXRlSGVscGVyKGV2ZW50KTsNCg0KCQl0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIik7DQoNCgkJLy9DYWNoZSB0aGUgaGVscGVyIHNpemUNCgkJdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpOw0KDQoJCS8vSWYgZGRtYW5hZ2VyIGlzIHVzZWQgZm9yIGRyb3BwYWJsZXMsIHNldCB0aGUgZ2xvYmFsIGRyYWdnYWJsZQ0KCQlpZiAoJC51aS5kZG1hbmFnZXIpIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmN1cnJlbnQgPSB0aGlzOw0KCQl9DQoNCgkJLyoNCgkJICogLSBQb3NpdGlvbiBnZW5lcmF0aW9uIC0NCgkJICogVGhpcyBibG9jayBnZW5lcmF0ZXMgZXZlcnl0aGluZyBwb3NpdGlvbiByZWxhdGVkIC0gaXQncyB0aGUgY29yZSBvZiBkcmFnZ2FibGVzLg0KCQkgKi8NCg0KCQkvL0NhY2hlIHRoZSBtYXJnaW5zIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCXRoaXMuX2NhY2hlTWFyZ2lucygpOw0KDQoJCS8vU3RvcmUgdGhlIGhlbHBlcidzIGNzcyBwb3NpdGlvbg0KCQl0aGlzLmNzc1Bvc2l0aW9uID0gdGhpcy5oZWxwZXIuY3NzKCAicG9zaXRpb24iICk7DQoJCXRoaXMuc2Nyb2xsUGFyZW50ID0gdGhpcy5oZWxwZXIuc2Nyb2xsUGFyZW50KCB0cnVlICk7DQoJCXRoaXMub2Zmc2V0UGFyZW50ID0gdGhpcy5oZWxwZXIub2Zmc2V0UGFyZW50KCk7DQoJCXRoaXMuaGFzRml4ZWRBbmNlc3RvciA9IHRoaXMuaGVscGVyLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoIHRoaXMgKS5jc3MoICJwb3NpdGlvbiIgKSA9PT0gImZpeGVkIjsNCgkJCX0pLmxlbmd0aCA+IDA7DQoNCgkJLy9UaGUgZWxlbWVudCdzIGFic29sdXRlIHBvc2l0aW9uIG9uIHRoZSBwYWdlIG1pbnVzIG1hcmdpbnMNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKTsNCgkJdGhpcy5fcmVmcmVzaE9mZnNldHMoIGV2ZW50ICk7DQoNCgkJLy9HZW5lcmF0ZSB0aGUgb3JpZ2luYWwgcG9zaXRpb24NCgkJdGhpcy5vcmlnaW5hbFBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbiA9IHRoaXMuX2dlbmVyYXRlUG9zaXRpb24oIGV2ZW50LCBmYWxzZSApOw0KCQl0aGlzLm9yaWdpbmFsUGFnZVggPSBldmVudC5wYWdlWDsNCgkJdGhpcy5vcmlnaW5hbFBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy9BZGp1c3QgdGhlIG1vdXNlIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgaGVscGVyIGlmICJjdXJzb3JBdCIgaXMgc3VwcGxpZWQNCgkJKG8uY3Vyc29yQXQgJiYgdGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihvLmN1cnNvckF0KSk7DQoNCgkJLy9TZXQgYSBjb250YWlubWVudCBpZiBnaXZlbiBpbiB0aGUgb3B0aW9ucw0KCQl0aGlzLl9zZXRDb250YWlubWVudCgpOw0KDQoJCS8vVHJpZ2dlciBldmVudCArIGNhbGxiYWNrcw0KCQlpZiAodGhpcy5fdHJpZ2dlcigic3RhcnQiLCBldmVudCkgPT09IGZhbHNlKSB7DQoJCQl0aGlzLl9jbGVhcigpOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy9SZWNhY2hlIHRoZSBoZWxwZXIgc2l6ZQ0KCQl0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7DQoNCgkJLy9QcmVwYXJlIHRoZSBkcm9wcGFibGUgb2Zmc2V0cw0KCQlpZiAoJC51aS5kZG1hbmFnZXIgJiYgIW8uZHJvcEJlaGF2aW91cikgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcywgZXZlbnQpOw0KCQl9DQoNCgkJLy8gUmVzZXQgaGVscGVyJ3MgcmlnaHQvYm90dG9tIGNzcyBpZiB0aGV5J3JlIHNldCBhbmQgc2V0IGV4cGxpY2l0IHdpZHRoL2hlaWdodCBpbnN0ZWFkDQoJCS8vIGFzIHRoaXMgcHJldmVudHMgcmVzaXppbmcgb2YgZWxlbWVudHMgd2l0aCByaWdodC9ib3R0b20gc2V0IChzZWUgIzc3NzIpDQoJCXRoaXMuX25vcm1hbGl6ZVJpZ2h0Qm90dG9tKCk7DQoNCgkJdGhpcy5fbW91c2VEcmFnKGV2ZW50LCB0cnVlKTsgLy9FeGVjdXRlIHRoZSBkcmFnIG9uY2UgLSB0aGlzIGNhdXNlcyB0aGUgaGVscGVyIG5vdCB0byBiZSB2aXNpYmxlIGJlZm9yZSBnZXR0aW5nIGl0cyBjb3JyZWN0IHBvc2l0aW9uDQoNCgkJLy9JZiB0aGUgZGRtYW5hZ2VyIGlzIHVzZWQgZm9yIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciB0aGF0IGRyYWdnaW5nIGhhcyBzdGFydGVkIChzZWUgIzUwMDMpDQoJCWlmICggJC51aS5kZG1hbmFnZXIgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnU3RhcnQodGhpcywgZXZlbnQpOw0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9yZWZyZXNoT2Zmc2V0czogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLm9mZnNldCA9IHsNCgkJCXRvcDogdGhpcy5wb3NpdGlvbkFicy50b3AgLSB0aGlzLm1hcmdpbnMudG9wLA0KCQkJbGVmdDogdGhpcy5wb3NpdGlvbkFicy5sZWZ0IC0gdGhpcy5tYXJnaW5zLmxlZnQsDQoJCQlzY3JvbGw6IGZhbHNlLA0KCQkJcGFyZW50OiB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSwNCgkJCXJlbGF0aXZlOiB0aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpDQoJCX07DQoNCgkJdGhpcy5vZmZzZXQuY2xpY2sgPSB7DQoJCQlsZWZ0OiBldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmxlZnQsDQoJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQudG9wDQoJCX07DQoJfSwNCg0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKGV2ZW50LCBub1Byb3BhZ2F0aW9uKSB7DQoJCS8vIHJlc2V0IGFueSBuZWNlc3NhcnkgY2FjaGVkIHByb3BlcnRpZXMgKHNlZSAjNTAwOSkNCgkJaWYgKCB0aGlzLmhhc0ZpeGVkQW5jZXN0b3IgKSB7DQoJCQl0aGlzLm9mZnNldC5wYXJlbnQgPSB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKTsNCgkJfQ0KDQoJCS8vQ29tcHV0ZSB0aGUgaGVscGVycyBwb3NpdGlvbg0KCQl0aGlzLnBvc2l0aW9uID0gdGhpcy5fZ2VuZXJhdGVQb3NpdGlvbiggZXZlbnQsIHRydWUgKTsNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpOw0KDQoJCS8vQ2FsbCBwbHVnaW5zIGFuZCBjYWxsYmFja3MgYW5kIHVzZSB0aGUgcmVzdWx0aW5nIHBvc2l0aW9uIGlmIHNvbWV0aGluZyBpcyByZXR1cm5lZA0KCQlpZiAoIW5vUHJvcGFnYXRpb24pIHsNCgkJCXZhciB1aSA9IHRoaXMuX3VpSGFzaCgpOw0KCQkJaWYgKHRoaXMuX3RyaWdnZXIoImRyYWciLCBldmVudCwgdWkpID09PSBmYWxzZSkgew0KCQkJCXRoaXMuX21vdXNlVXAoe30pOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCXRoaXMucG9zaXRpb24gPSB1aS5wb3NpdGlvbjsNCgkJfQ0KDQoJCXRoaXMuaGVscGVyWyAwIF0uc3R5bGUubGVmdCA9IHRoaXMucG9zaXRpb24ubGVmdCArICJweCI7DQoJCXRoaXMuaGVscGVyWyAwIF0uc3R5bGUudG9wID0gdGhpcy5wb3NpdGlvbi50b3AgKyAicHgiOw0KDQoJCWlmICgkLnVpLmRkbWFuYWdlcikgew0KCQkJJC51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLCBldmVudCk7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV9tb3VzZVN0b3A6IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCgkJLy9JZiB3ZSBhcmUgdXNpbmcgZHJvcHBhYmxlcywgaW5mb3JtIHRoZSBtYW5hZ2VyIGFib3V0IHRoZSBkcm9wDQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWRyb3BwZWQgPSBmYWxzZTsNCgkJaWYgKCQudWkuZGRtYW5hZ2VyICYmICF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91cikgew0KCQkJZHJvcHBlZCA9ICQudWkuZGRtYW5hZ2VyLmRyb3AodGhpcywgZXZlbnQpOw0KCQl9DQoNCgkJLy9pZiBhIGRyb3AgY29tZXMgZnJvbSBvdXRzaWRlIChhIHNvcnRhYmxlKQ0KCQlpZiAodGhpcy5kcm9wcGVkKSB7DQoJCQlkcm9wcGVkID0gdGhpcy5kcm9wcGVkOw0KCQkJdGhpcy5kcm9wcGVkID0gZmFsc2U7DQoJCX0NCg0KCQlpZiAoKHRoaXMub3B0aW9ucy5yZXZlcnQgPT09ICJpbnZhbGlkIiAmJiAhZHJvcHBlZCkgfHwgKHRoaXMub3B0aW9ucy5yZXZlcnQgPT09ICJ2YWxpZCIgJiYgZHJvcHBlZCkgfHwgdGhpcy5vcHRpb25zLnJldmVydCA9PT0gdHJ1ZSB8fCAoJC5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpICYmIHRoaXMub3B0aW9ucy5yZXZlcnQuY2FsbCh0aGlzLmVsZW1lbnQsIGRyb3BwZWQpKSkgew0KCQkJJCh0aGlzLmhlbHBlcikuYW5pbWF0ZSh0aGlzLm9yaWdpbmFsUG9zaXRpb24sIHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwgMTApLCBmdW5jdGlvbigpIHsNCgkJCQlpZiAodGhhdC5fdHJpZ2dlcigic3RvcCIsIGV2ZW50KSAhPT0gZmFsc2UpIHsNCgkJCQkJdGhhdC5fY2xlYXIoKTsNCgkJCQl9DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCWlmICh0aGlzLl90cmlnZ2VyKCJzdG9wIiwgZXZlbnQpICE9PSBmYWxzZSkgew0KCQkJCXRoaXMuX2NsZWFyKCk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV9tb3VzZVVwOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMuX3VuYmxvY2tGcmFtZXMoKTsNCg0KCQkvL0lmIHRoZSBkZG1hbmFnZXIgaXMgdXNlZCBmb3IgZHJvcHBhYmxlcywgaW5mb3JtIHRoZSBtYW5hZ2VyIHRoYXQgZHJhZ2dpbmcgaGFzIHN0b3BwZWQgKHNlZSAjNTAwMykNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmRyYWdTdG9wKHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCS8vIE9ubHkgbmVlZCB0byBmb2N1cyBpZiB0aGUgZXZlbnQgb2NjdXJyZWQgb24gdGhlIGRyYWdnYWJsZSBpdHNlbGYsIHNlZSAjMTA1MjcNCgkJaWYgKCB0aGlzLmhhbmRsZUVsZW1lbnQuaXMoIGV2ZW50LnRhcmdldCApICkgew0KCQkJLy8gVGhlIGludGVyYWN0aW9uIGlzIG92ZXI7IHdoZXRoZXIgb3Igbm90IHRoZSBjbGljayByZXN1bHRlZCBpbiBhIGRyYWcsIGZvY3VzIHRoZSBlbGVtZW50DQoJCQl0aGlzLmVsZW1lbnQuZm9jdXMoKTsNCgkJfQ0KDQoJCXJldHVybiAkLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsIGV2ZW50KTsNCgl9LA0KDQoJY2FuY2VsOiBmdW5jdGlvbigpIHsNCg0KCQlpZiAodGhpcy5oZWxwZXIuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSkgew0KCQkJdGhpcy5fbW91c2VVcCh7fSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9jbGVhcigpOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoNCgl9LA0KDQoJX2dldEhhbmRsZTogZnVuY3Rpb24oZXZlbnQpIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy5oYW5kbGUgPw0KCQkJISEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLmhhbmRsZSApICkubGVuZ3RoIDoNCgkJCXRydWU7DQoJfSwNCg0KCV9zZXRIYW5kbGVDbGFzc05hbWU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhhbmRsZUVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuaGFuZGxlID8NCgkJCXRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaGFuZGxlICkgOiB0aGlzLmVsZW1lbnQ7DQoJCXRoaXMuaGFuZGxlRWxlbWVudC5hZGRDbGFzcyggInVpLWRyYWdnYWJsZS1oYW5kbGUiICk7DQoJfSwNCg0KCV9yZW1vdmVIYW5kbGVDbGFzc05hbWU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhhbmRsZUVsZW1lbnQucmVtb3ZlQ2xhc3MoICJ1aS1kcmFnZ2FibGUtaGFuZGxlIiApOw0KCX0sDQoNCglfY3JlYXRlSGVscGVyOiBmdW5jdGlvbihldmVudCkgew0KDQoJCXZhciBvID0gdGhpcy5vcHRpb25zLA0KCQkJaGVscGVySXNGdW5jdGlvbiA9ICQuaXNGdW5jdGlvbiggby5oZWxwZXIgKSwNCgkJCWhlbHBlciA9IGhlbHBlcklzRnVuY3Rpb24gPw0KCQkJCSQoIG8uaGVscGVyLmFwcGx5KCB0aGlzLmVsZW1lbnRbIDAgXSwgWyBldmVudCBdICkgKSA6DQoJCQkJKCBvLmhlbHBlciA9PT0gImNsb25lIiA/DQoJCQkJCXRoaXMuZWxlbWVudC5jbG9uZSgpLnJlbW92ZUF0dHIoICJpZCIgKSA6DQoJCQkJCXRoaXMuZWxlbWVudCApOw0KDQoJCWlmICghaGVscGVyLnBhcmVudHMoImJvZHkiKS5sZW5ndGgpIHsNCgkJCWhlbHBlci5hcHBlbmRUbygoby5hcHBlbmRUbyA9PT0gInBhcmVudCIgPyB0aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZSA6IG8uYXBwZW5kVG8pKTsNCgkJfQ0KDQoJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeXVpLmNvbS90aWNrZXQvOTQ0Ng0KCQkvLyBhIGhlbHBlciBmdW5jdGlvbiBjYW4gcmV0dXJuIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCS8vIHdoaWNoIHdvdWxkbid0IGhhdmUgYmVlbiBzZXQgdG8gcmVsYXRpdmUgaW4gX2NyZWF0ZQ0KCQlpZiAoIGhlbHBlcklzRnVuY3Rpb24gJiYgaGVscGVyWyAwIF0gPT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJdGhpcy5fc2V0UG9zaXRpb25SZWxhdGl2ZSgpOw0KCQl9DQoNCgkJaWYgKGhlbHBlclswXSAhPT0gdGhpcy5lbGVtZW50WzBdICYmICEoLyhmaXhlZHxhYnNvbHV0ZSkvKS50ZXN0KGhlbHBlci5jc3MoInBvc2l0aW9uIikpKSB7DQoJCQloZWxwZXIuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpOw0KCQl9DQoNCgkJcmV0dXJuIGhlbHBlcjsNCg0KCX0sDQoNCglfc2V0UG9zaXRpb25SZWxhdGl2ZTogZnVuY3Rpb24oKSB7DQoJCWlmICggISggL14oPzpyfGF8ZikvICkudGVzdCggdGhpcy5lbGVtZW50LmNzcyggInBvc2l0aW9uIiApICkgKSB7DQoJCQl0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7DQoJCX0NCgl9LA0KDQoJX2FkanVzdE9mZnNldEZyb21IZWxwZXI6IGZ1bmN0aW9uKG9iaikgew0KCQlpZiAodHlwZW9mIG9iaiA9PT0gInN0cmluZyIpIHsNCgkJCW9iaiA9IG9iai5zcGxpdCgiICIpOw0KCQl9DQoJCWlmICgkLmlzQXJyYXkob2JqKSkgew0KCQkJb2JqID0geyBsZWZ0OiArb2JqWzBdLCB0b3A6ICtvYmpbMV0gfHwgMCB9Ow0KCQl9DQoJCWlmICgibGVmdCIgaW4gb2JqKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay5sZWZ0ID0gb2JqLmxlZnQgKyB0aGlzLm1hcmdpbnMubGVmdDsNCgkJfQ0KCQlpZiAoInJpZ2h0IiBpbiBvYmopIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPSB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gb2JqLnJpZ2h0ICsgdGhpcy5tYXJnaW5zLmxlZnQ7DQoJCX0NCgkJaWYgKCJ0b3AiIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wID0gb2JqLnRvcCArIHRoaXMubWFyZ2lucy50b3A7DQoJCX0NCgkJaWYgKCJib3R0b20iIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wID0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSBvYmouYm90dG9tICsgdGhpcy5tYXJnaW5zLnRvcDsNCgkJfQ0KCX0sDQoNCglfaXNSb290Tm9kZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXJldHVybiAoIC8oaHRtbHxib2R5KS9pICkudGVzdCggZWxlbWVudC50YWdOYW1lICkgfHwgZWxlbWVudCA9PT0gdGhpcy5kb2N1bWVudFsgMCBdOw0KCX0sDQoNCglfZ2V0UGFyZW50T2Zmc2V0OiBmdW5jdGlvbigpIHsNCg0KCQkvL0dldCB0aGUgb2Zmc2V0UGFyZW50IGFuZCBjYWNoZSBpdHMgcG9zaXRpb24NCgkJdmFyIHBvID0gdGhpcy5vZmZzZXRQYXJlbnQub2Zmc2V0KCksDQoJCQlkb2N1bWVudCA9IHRoaXMuZG9jdW1lbnRbIDAgXTsNCg0KCQkvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHdoZXJlIHdlIG5lZWQgdG8gbW9kaWZ5IGEgb2Zmc2V0IGNhbGN1bGF0ZWQgb24gc3RhcnQsIHNpbmNlIHRoZSBmb2xsb3dpbmcgaGFwcGVuZWQ6DQoJCS8vIDEuIFRoZSBwb3NpdGlvbiBvZiB0aGUgaGVscGVyIGlzIGFic29sdXRlLCBzbyBpdCdzIHBvc2l0aW9uIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG5leHQgcG9zaXRpb25lZCBwYXJlbnQNCgkJLy8gMi4gVGhlIGFjdHVhbCBvZmZzZXQgcGFyZW50IGlzIGEgY2hpbGQgb2YgdGhlIHNjcm9sbCBwYXJlbnQsIGFuZCB0aGUgc2Nyb2xsIHBhcmVudCBpc24ndCB0aGUgZG9jdW1lbnQsIHdoaWNoIG1lYW5zIHRoYXQNCgkJLy8gICAgdGhlIHNjcm9sbCBpcyBpbmNsdWRlZCBpbiB0aGUgaW5pdGlhbCBjYWxjdWxhdGlvbiBvZiB0aGUgb2Zmc2V0IG9mIHRoZSBwYXJlbnQsIGFuZCBuZXZlciByZWNhbGN1bGF0ZWQgdXBvbiBkcmFnDQoJCWlmICh0aGlzLmNzc1Bvc2l0aW9uID09PSAiYWJzb2x1dGUiICYmIHRoaXMuc2Nyb2xsUGFyZW50WzBdICE9PSBkb2N1bWVudCAmJiAkLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLCB0aGlzLm9mZnNldFBhcmVudFswXSkpIHsNCgkJCXBvLmxlZnQgKz0gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOw0KCQkJcG8udG9wICs9IHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOw0KCQl9DQoNCgkJaWYgKCB0aGlzLl9pc1Jvb3ROb2RlKCB0aGlzLm9mZnNldFBhcmVudFsgMCBdICkgKSB7DQoJCQlwbyA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07DQoJCX0NCg0KCQlyZXR1cm4gew0KCQkJdG9wOiBwby50b3AgKyAocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJUb3BXaWR0aCIpLCAxMCkgfHwgMCksDQoJCQlsZWZ0OiBwby5sZWZ0ICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksIDEwKSB8fCAwKQ0KCQl9Ow0KDQoJfSwNCg0KCV9nZXRSZWxhdGl2ZU9mZnNldDogZnVuY3Rpb24oKSB7DQoJCWlmICggdGhpcy5jc3NQb3NpdGlvbiAhPT0gInJlbGF0aXZlIiApIHsNCgkJCXJldHVybiB7IHRvcDogMCwgbGVmdDogMCB9Ow0KCQl9DQoNCgkJdmFyIHAgPSB0aGlzLmVsZW1lbnQucG9zaXRpb24oKSwNCgkJCXNjcm9sbElzUm9vdE5vZGUgPSB0aGlzLl9pc1Jvb3ROb2RlKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdICk7DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogcC50b3AgLSAoIHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcyggInRvcCIgKSwgMTApIHx8IDAgKSArICggIXNjcm9sbElzUm9vdE5vZGUgPyB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSA6IDAgKSwNCgkJCWxlZnQ6IHAubGVmdCAtICggcGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKCAibGVmdCIgKSwgMTApIHx8IDAgKSArICggIXNjcm9sbElzUm9vdE5vZGUgPyB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkgOiAwICkNCgkJfTsNCg0KCX0sDQoNCglfY2FjaGVNYXJnaW5zOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5tYXJnaW5zID0gew0KCQkJbGVmdDogKHBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwgMTApIHx8IDApLA0KCQkJdG9wOiAocGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luVG9wIiksIDEwKSB8fCAwKSwNCgkJCXJpZ2h0OiAocGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwgMTApIHx8IDApLA0KCQkJYm90dG9tOiAocGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luQm90dG9tIiksIDEwKSB8fCAwKQ0KCQl9Ow0KCX0sDQoNCglfY2FjaGVIZWxwZXJQcm9wb3J0aW9uczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMgPSB7DQoJCQl3aWR0aDogdGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLA0KCQkJaGVpZ2h0OiB0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpDQoJCX07DQoJfSwNCg0KCV9zZXRDb250YWlubWVudDogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIGlzVXNlclNjcm9sbGFibGUsIGMsIGNlLA0KCQkJbyA9IHRoaXMub3B0aW9ucywNCgkJCWRvY3VtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdOw0KDQoJCXRoaXMucmVsYXRpdmVDb250YWluZXIgPSBudWxsOw0KDQoJCWlmICggIW8uY29udGFpbm1lbnQgKSB7DQoJCQl0aGlzLmNvbnRhaW5tZW50ID0gbnVsbDsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggby5jb250YWlubWVudCA9PT0gIndpbmRvdyIgKSB7DQoJCQl0aGlzLmNvbnRhaW5tZW50ID0gWw0KCQkJCSQoIHdpbmRvdyApLnNjcm9sbExlZnQoKSAtIHRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCwNCgkJCQkkKCB3aW5kb3cgKS5zY3JvbGxUb3AoKSAtIHRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcCAtIHRoaXMub2Zmc2V0LnBhcmVudC50b3AsDQoJCQkJJCggd2luZG93ICkuc2Nyb2xsTGVmdCgpICsgJCggd2luZG93ICkud2lkdGgoKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQkkKCB3aW5kb3cgKS5zY3JvbGxUb3AoKSArICggJCggd2luZG93ICkuaGVpZ2h0KCkgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCApIC0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSB0aGlzLm1hcmdpbnMudG9wDQoJCQldOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBvLmNvbnRhaW5tZW50ID09PSAiZG9jdW1lbnQiKSB7DQoJCQl0aGlzLmNvbnRhaW5tZW50ID0gWw0KCQkJCTAsDQoJCQkJMCwNCgkJCQkkKCBkb2N1bWVudCApLndpZHRoKCkgLSB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gdGhpcy5tYXJnaW5zLmxlZnQsDQoJCQkJKCAkKCBkb2N1bWVudCApLmhlaWdodCgpIHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQgKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gdGhpcy5tYXJnaW5zLnRvcA0KCQkJXTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggby5jb250YWlubWVudC5jb25zdHJ1Y3RvciA9PT0gQXJyYXkgKSB7DQoJCQl0aGlzLmNvbnRhaW5tZW50ID0gby5jb250YWlubWVudDsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggby5jb250YWlubWVudCA9PT0gInBhcmVudCIgKSB7DQoJCQlvLmNvbnRhaW5tZW50ID0gdGhpcy5oZWxwZXJbIDAgXS5wYXJlbnROb2RlOw0KCQl9DQoNCgkJYyA9ICQoIG8uY29udGFpbm1lbnQgKTsNCgkJY2UgPSBjWyAwIF07DQoNCgkJaWYgKCAhY2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpc1VzZXJTY3JvbGxhYmxlID0gLyhzY3JvbGx8YXV0bykvLnRlc3QoIGMuY3NzKCAib3ZlcmZsb3ciICkgKTsNCg0KCQl0aGlzLmNvbnRhaW5tZW50ID0gWw0KCQkJKCBwYXJzZUludCggYy5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICksIDEwICkgfHwgMCApICsgKCBwYXJzZUludCggYy5jc3MoICJwYWRkaW5nTGVmdCIgKSwgMTAgKSB8fCAwICksDQoJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlclRvcFdpZHRoIiApLCAxMCApIHx8IDAgKSArICggcGFyc2VJbnQoIGMuY3NzKCAicGFkZGluZ1RvcCIgKSwgMTAgKSB8fCAwICksDQoJCQkoIGlzVXNlclNjcm9sbGFibGUgPyBNYXRoLm1heCggY2Uuc2Nyb2xsV2lkdGgsIGNlLm9mZnNldFdpZHRoICkgOiBjZS5vZmZzZXRXaWR0aCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlclJpZ2h0V2lkdGgiICksIDEwICkgfHwgMCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggInBhZGRpbmdSaWdodCIgKSwgMTAgKSB8fCAwICkgLQ0KCQkJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLQ0KCQkJCXRoaXMubWFyZ2lucy5sZWZ0IC0NCgkJCQl0aGlzLm1hcmdpbnMucmlnaHQsDQoJCQkoIGlzVXNlclNjcm9sbGFibGUgPyBNYXRoLm1heCggY2Uuc2Nyb2xsSGVpZ2h0LCBjZS5vZmZzZXRIZWlnaHQgKSA6IGNlLm9mZnNldEhlaWdodCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlckJvdHRvbVdpZHRoIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJKCBwYXJzZUludCggYy5jc3MoICJwYWRkaW5nQm90dG9tIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLQ0KCQkJCXRoaXMubWFyZ2lucy50b3AgLQ0KCQkJCXRoaXMubWFyZ2lucy5ib3R0b20NCgkJXTsNCgkJdGhpcy5yZWxhdGl2ZUNvbnRhaW5lciA9IGM7DQoJfSwNCg0KCV9jb252ZXJ0UG9zaXRpb25UbzogZnVuY3Rpb24oZCwgcG9zKSB7DQoNCgkJaWYgKCFwb3MpIHsNCgkJCXBvcyA9IHRoaXMucG9zaXRpb247DQoJCX0NCg0KCQl2YXIgbW9kID0gZCA9PT0gImFic29sdXRlIiA/IDEgOiAtMSwNCgkJCXNjcm9sbElzUm9vdE5vZGUgPSB0aGlzLl9pc1Jvb3ROb2RlKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdICk7DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogKA0KCQkJCXBvcy50b3AJKwkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgKiBtb2QgKwkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQudG9wICogbW9kIC0JCQkJCQkJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQkoICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/IC10aGlzLm9mZnNldC5zY3JvbGwudG9wIDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHRoaXMub2Zmc2V0LnNjcm9sbC50b3AgKSApICogbW9kKQ0KCQkJKSwNCgkJCWxlZnQ6ICgNCgkJCQlwb3MubGVmdCArCQkJCQkJCQkJCQkJCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgKiBtb2QgKwkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQubGVmdCAqIG1vZAktCQkJCQkJCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJKCAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPyAtdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQgOiAoIHNjcm9sbElzUm9vdE5vZGUgPyAwIDogdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQgKSApICogbW9kKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9nZW5lcmF0ZVBvc2l0aW9uOiBmdW5jdGlvbiggZXZlbnQsIGNvbnN0cmFpblBvc2l0aW9uICkgew0KDQoJCXZhciBjb250YWlubWVudCwgY28sIHRvcCwgbGVmdCwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gdGhpcy5faXNSb290Tm9kZSggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSApLA0KCQkJcGFnZVggPSBldmVudC5wYWdlWCwNCgkJCXBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy8gQ2FjaGUgdGhlIHNjcm9sbA0KCQlpZiAoICFzY3JvbGxJc1Jvb3ROb2RlIHx8ICF0aGlzLm9mZnNldC5zY3JvbGwgKSB7DQoJCQl0aGlzLm9mZnNldC5zY3JvbGwgPSB7DQoJCQkJdG9wOiB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSwNCgkJCQlsZWZ0OiB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkNCgkJCX07DQoJCX0NCg0KCQkvKg0KCQkgKiAtIFBvc2l0aW9uIGNvbnN0cmFpbmluZyAtDQoJCSAqIENvbnN0cmFpbiB0aGUgcG9zaXRpb24gdG8gYSBtaXggb2YgZ3JpZCwgY29udGFpbm1lbnQuDQoJCSAqLw0KDQoJCS8vIElmIHdlIGFyZSBub3QgZHJhZ2dpbmcgeWV0LCB3ZSB3b24ndCBjaGVjayBmb3Igb3B0aW9ucw0KCQlpZiAoIGNvbnN0cmFpblBvc2l0aW9uICkgew0KCQkJaWYgKCB0aGlzLmNvbnRhaW5tZW50ICkgew0KCQkJCWlmICggdGhpcy5yZWxhdGl2ZUNvbnRhaW5lciApew0KCQkJCQljbyA9IHRoaXMucmVsYXRpdmVDb250YWluZXIub2Zmc2V0KCk7DQoJCQkJCWNvbnRhaW5tZW50ID0gWw0KCQkJCQkJdGhpcy5jb250YWlubWVudFsgMCBdICsgY28ubGVmdCwNCgkJCQkJCXRoaXMuY29udGFpbm1lbnRbIDEgXSArIGNvLnRvcCwNCgkJCQkJCXRoaXMuY29udGFpbm1lbnRbIDIgXSArIGNvLmxlZnQsDQoJCQkJCQl0aGlzLmNvbnRhaW5tZW50WyAzIF0gKyBjby50b3ANCgkJCQkJXTsNCgkJCQl9IGVsc2Ugew0KCQkJCQljb250YWlubWVudCA9IHRoaXMuY29udGFpbm1lbnQ7DQoJCQkJfQ0KDQoJCQkJaWYgKGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA8IGNvbnRhaW5tZW50WzBdKSB7DQoJCQkJCXBhZ2VYID0gY29udGFpbm1lbnRbMF0gKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAoZXZlbnQucGFnZVkgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPCBjb250YWlubWVudFsxXSkgew0KCQkJCQlwYWdlWSA9IGNvbnRhaW5tZW50WzFdICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCX0NCgkJCQlpZiAoZXZlbnQucGFnZVggLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID4gY29udGFpbm1lbnRbMl0pIHsNCgkJCQkJcGFnZVggPSBjb250YWlubWVudFsyXSArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmIChldmVudC5wYWdlWSAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA+IGNvbnRhaW5tZW50WzNdKSB7DQoJCQkJCXBhZ2VZID0gY29udGFpbm1lbnRbM10gKyB0aGlzLm9mZnNldC5jbGljay50b3A7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAoby5ncmlkKSB7DQoJCQkJLy9DaGVjayBmb3IgZ3JpZCBlbGVtZW50cyBzZXQgdG8gMCB0byBwcmV2ZW50IGRpdmlkZSBieSAwIGVycm9yIGNhdXNpbmcgaW52YWxpZCBhcmd1bWVudCBlcnJvcnMgaW4gSUUgKHNlZSB0aWNrZXQgIzY5NTApDQoJCQkJdG9wID0gby5ncmlkWzFdID8gdGhpcy5vcmlnaW5hbFBhZ2VZICsgTWF0aC5yb3VuZCgocGFnZVkgLSB0aGlzLm9yaWdpbmFsUGFnZVkpIC8gby5ncmlkWzFdKSAqIG8uZ3JpZFsxXSA6IHRoaXMub3JpZ2luYWxQYWdlWTsNCgkJCQlwYWdlWSA9IGNvbnRhaW5tZW50ID8gKCh0b3AgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPj0gY29udGFpbm1lbnRbMV0gfHwgdG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID4gY29udGFpbm1lbnRbM10pID8gdG9wIDogKCh0b3AgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPj0gY29udGFpbm1lbnRbMV0pID8gdG9wIC0gby5ncmlkWzFdIDogdG9wICsgby5ncmlkWzFdKSkgOiB0b3A7DQoNCgkJCQlsZWZ0ID0gby5ncmlkWzBdID8gdGhpcy5vcmlnaW5hbFBhZ2VYICsgTWF0aC5yb3VuZCgocGFnZVggLSB0aGlzLm9yaWdpbmFsUGFnZVgpIC8gby5ncmlkWzBdKSAqIG8uZ3JpZFswXSA6IHRoaXMub3JpZ2luYWxQYWdlWDsNCgkJCQlwYWdlWCA9IGNvbnRhaW5tZW50ID8gKChsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+PSBjb250YWlubWVudFswXSB8fCBsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+IGNvbnRhaW5tZW50WzJdKSA/IGxlZnQgOiAoKGxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID49IGNvbnRhaW5tZW50WzBdKSA/IGxlZnQgLSBvLmdyaWRbMF0gOiBsZWZ0ICsgby5ncmlkWzBdKSkgOiBsZWZ0Ow0KCQkJfQ0KDQoJCQlpZiAoIG8uYXhpcyA9PT0gInkiICkgew0KCQkJCXBhZ2VYID0gdGhpcy5vcmlnaW5hbFBhZ2VYOw0KCQkJfQ0KDQoJCQlpZiAoIG8uYXhpcyA9PT0gIngiICkgew0KCQkJCXBhZ2VZID0gdGhpcy5vcmlnaW5hbFBhZ2VZOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogKA0KCQkJCXBhZ2VZIC0JCQkJCQkJCQkJCQkJCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXRoaXMub2Zmc2V0LmNsaWNrLnRvcAktCQkJCQkJCQkJCQkJLy8gQ2xpY2sgb2Zmc2V0IChyZWxhdGl2ZSB0byB0aGUgZWxlbWVudCkNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgLQkJCQkJCQkJCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC50b3AgKwkJCQkJCQkJCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMub2Zmc2V0LnNjcm9sbC50b3AgOiAoIHNjcm9sbElzUm9vdE5vZGUgPyAwIDogdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCApICkNCgkJCSksDQoJCQlsZWZ0OiAoDQoJCQkJcGFnZVggLQkJCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCAtCQkJCQkJCQkJCQkJLy8gQ2xpY2sgb2Zmc2V0IChyZWxhdGl2ZSB0byB0aGUgZWxlbWVudCkNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0IC0JCQkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQubGVmdCArCQkJCQkJCQkJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQkoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPyAtdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQgOiAoIHNjcm9sbElzUm9vdE5vZGUgPyAwIDogdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQgKSApDQoJCQkpDQoJCX07DQoNCgl9LA0KDQoJX2NsZWFyOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5oZWxwZXIucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpOw0KCQlpZiAodGhpcy5oZWxwZXJbMF0gIT09IHRoaXMuZWxlbWVudFswXSAmJiAhdGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsKSB7DQoJCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCgkJfQ0KCQl0aGlzLmhlbHBlciA9IG51bGw7DQoJCXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IGZhbHNlOw0KCQlpZiAoIHRoaXMuZGVzdHJveU9uQ2xlYXIgKSB7DQoJCQl0aGlzLmRlc3Ryb3koKTsNCgkJfQ0KCX0sDQoNCglfbm9ybWFsaXplUmlnaHRCb3R0b206IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMub3B0aW9ucy5heGlzICE9PSAieSIgJiYgdGhpcy5oZWxwZXIuY3NzKCAicmlnaHQiICkgIT09ICJhdXRvIiApIHsNCgkJCXRoaXMuaGVscGVyLndpZHRoKCB0aGlzLmhlbHBlci53aWR0aCgpICk7DQoJCQl0aGlzLmhlbHBlci5jc3MoICJyaWdodCIsICJhdXRvIiApOw0KCQl9DQoJCWlmICggdGhpcy5vcHRpb25zLmF4aXMgIT09ICJ4IiAmJiB0aGlzLmhlbHBlci5jc3MoICJib3R0b20iICkgIT09ICJhdXRvIiApIHsNCgkJCXRoaXMuaGVscGVyLmhlaWdodCggdGhpcy5oZWxwZXIuaGVpZ2h0KCkgKTsNCgkJCXRoaXMuaGVscGVyLmNzcyggImJvdHRvbSIsICJhdXRvIiApOw0KCQl9DQoJfSwNCg0KCS8vIEZyb20gbm93IG9uIGJ1bGsgc3R1ZmYgLSBtYWlubHkgaGVscGVycw0KDQoJX3RyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBldmVudCwgdWkgKSB7DQoJCXVpID0gdWkgfHwgdGhpcy5fdWlIYXNoKCk7DQoJCSQudWkucGx1Z2luLmNhbGwoIHRoaXMsIHR5cGUsIFsgZXZlbnQsIHVpLCB0aGlzIF0sIHRydWUgKTsNCg0KCQkvLyBBYnNvbHV0ZSBwb3NpdGlvbiBhbmQgb2Zmc2V0IChzZWUgIzY4ODQgKSBoYXZlIHRvIGJlIHJlY2FsY3VsYXRlZCBhZnRlciBwbHVnaW5zDQoJCWlmICggL14oZHJhZ3xzdGFydHxzdG9wKS8udGVzdCggdHlwZSApICkgew0KCQkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCAiYWJzb2x1dGUiICk7DQoJCQl1aS5vZmZzZXQgPSB0aGlzLnBvc2l0aW9uQWJzOw0KCQl9DQoJCXJldHVybiAkLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCggdGhpcywgdHlwZSwgZXZlbnQsIHVpICk7DQoJfSwNCg0KCXBsdWdpbnM6IHt9LA0KDQoJX3VpSGFzaDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQloZWxwZXI6IHRoaXMuaGVscGVyLA0KCQkJcG9zaXRpb246IHRoaXMucG9zaXRpb24sDQoJCQlvcmlnaW5hbFBvc2l0aW9uOiB0aGlzLm9yaWdpbmFsUG9zaXRpb24sDQoJCQlvZmZzZXQ6IHRoaXMucG9zaXRpb25BYnMNCgkJfTsNCgl9DQoNCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoICJkcmFnZ2FibGUiLCAiY29ubmVjdFRvU29ydGFibGUiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGRyYWdnYWJsZSApIHsNCgkJdmFyIHVpU29ydGFibGUgPSAkLmV4dGVuZCgge30sIHVpLCB7DQoJCQlpdGVtOiBkcmFnZ2FibGUuZWxlbWVudA0KCQl9KTsNCg0KCQlkcmFnZ2FibGUuc29ydGFibGVzID0gW107DQoJCSQoIGRyYWdnYWJsZS5vcHRpb25zLmNvbm5lY3RUb1NvcnRhYmxlICkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBzb3J0YWJsZSA9ICQoIHRoaXMgKS5zb3J0YWJsZSggImluc3RhbmNlIiApOw0KDQoJCQlpZiAoIHNvcnRhYmxlICYmICFzb3J0YWJsZS5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJCWRyYWdnYWJsZS5zb3J0YWJsZXMucHVzaCggc29ydGFibGUgKTsNCg0KCQkJCS8vIHJlZnJlc2hQb3NpdGlvbnMgaXMgY2FsbGVkIGF0IGRyYWcgc3RhcnQgdG8gcmVmcmVzaCB0aGUgY29udGFpbmVyQ2FjaGUNCgkJCQkvLyB3aGljaCBpcyB1c2VkIGluIGRyYWcuIFRoaXMgZW5zdXJlcyBpdCdzIGluaXRpYWxpemVkIGFuZCBzeW5jaHJvbml6ZWQNCgkJCQkvLyB3aXRoIGFueSBjaGFuZ2VzIHRoYXQgbWlnaHQgaGF2ZSBoYXBwZW5lZCBvbiB0aGUgcGFnZSBzaW5jZSBpbml0aWFsaXphdGlvbi4NCgkJCQlzb3J0YWJsZS5yZWZyZXNoUG9zaXRpb25zKCk7DQoJCQkJc29ydGFibGUuX3RyaWdnZXIoImFjdGl2YXRlIiwgZXZlbnQsIHVpU29ydGFibGUpOw0KCQkJfQ0KCQl9KTsNCgl9LA0KCXN0b3A6IGZ1bmN0aW9uKCBldmVudCwgdWksIGRyYWdnYWJsZSApIHsNCgkJdmFyIHVpU29ydGFibGUgPSAkLmV4dGVuZCgge30sIHVpLCB7DQoJCQlpdGVtOiBkcmFnZ2FibGUuZWxlbWVudA0KCQl9KTsNCg0KCQlkcmFnZ2FibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IGZhbHNlOw0KDQoJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoJCQl2YXIgc29ydGFibGUgPSB0aGlzOw0KDQoJCQlpZiAoIHNvcnRhYmxlLmlzT3ZlciApIHsNCgkJCQlzb3J0YWJsZS5pc092ZXIgPSAwOw0KDQoJCQkJLy8gQWxsb3cgdGhpcyBzb3J0YWJsZSB0byBoYW5kbGUgcmVtb3ZpbmcgdGhlIGhlbHBlcg0KCQkJCWRyYWdnYWJsZS5jYW5jZWxIZWxwZXJSZW1vdmFsID0gdHJ1ZTsNCgkJCQlzb3J0YWJsZS5jYW5jZWxIZWxwZXJSZW1vdmFsID0gZmFsc2U7DQoNCgkJCQkvLyBVc2UgX3N0b3JlZENTUyBUbyByZXN0b3JlIHByb3BlcnRpZXMgaW4gdGhlIHNvcnRhYmxlLA0KCQkJCS8vIGFzIHRoaXMgYWxzbyBoYW5kbGVzIHJldmVydCAoIzk2NzUpIHNpbmNlIHRoZSBkcmFnZ2FibGUNCgkJCQkvLyBtYXkgaGF2ZSBtb2RpZmllZCB0aGVtIGluIHVuZXhwZWN0ZWQgd2F5cyAoIzg4MDkpDQoJCQkJc29ydGFibGUuX3N0b3JlZENTUyA9IHsNCgkJCQkJcG9zaXRpb246IHNvcnRhYmxlLnBsYWNlaG9sZGVyLmNzcyggInBvc2l0aW9uIiApLA0KCQkJCQl0b3A6IHNvcnRhYmxlLnBsYWNlaG9sZGVyLmNzcyggInRvcCIgKSwNCgkJCQkJbGVmdDogc29ydGFibGUucGxhY2Vob2xkZXIuY3NzKCAibGVmdCIgKQ0KCQkJCX07DQoNCgkJCQlzb3J0YWJsZS5fbW91c2VTdG9wKGV2ZW50KTsNCg0KCQkJCS8vIE9uY2UgZHJhZyBoYXMgZW5kZWQsIHRoZSBzb3J0YWJsZSBzaG91bGQgcmV0dXJuIHRvIHVzaW5nDQoJCQkJLy8gaXRzIG9yaWdpbmFsIGhlbHBlciwgbm90IHRoZSBzaGFyZWQgaGVscGVyIGZyb20gZHJhZ2dhYmxlDQoJCQkJc29ydGFibGUub3B0aW9ucy5oZWxwZXIgPSBzb3J0YWJsZS5vcHRpb25zLl9oZWxwZXI7DQoJCQl9IGVsc2Ugew0KCQkJCS8vIFByZXZlbnQgdGhpcyBTb3J0YWJsZSBmcm9tIHJlbW92aW5nIHRoZSBoZWxwZXIuDQoJCQkJLy8gSG93ZXZlciwgZG9uJ3Qgc2V0IHRoZSBkcmFnZ2FibGUgdG8gcmVtb3ZlIHRoZSBoZWxwZXINCgkJCQkvLyBlaXRoZXIgYXMgYW5vdGhlciBjb25uZWN0ZWQgU29ydGFibGUgbWF5IHlldCBoYW5kbGUgdGhlIHJlbW92YWwuDQoJCQkJc29ydGFibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IHRydWU7DQoNCgkJCQlzb3J0YWJsZS5fdHJpZ2dlciggImRlYWN0aXZhdGUiLCBldmVudCwgdWlTb3J0YWJsZSApOw0KCQkJfQ0KCQl9KTsNCgl9LA0KCWRyYWc6IGZ1bmN0aW9uKCBldmVudCwgdWksIGRyYWdnYWJsZSApIHsNCgkJJC5lYWNoKCBkcmFnZ2FibGUuc29ydGFibGVzLCBmdW5jdGlvbigpIHsNCgkJCXZhciBpbm5lcm1vc3RJbnRlcnNlY3RpbmcgPSBmYWxzZSwNCgkJCQlzb3J0YWJsZSA9IHRoaXM7DQoNCgkJCS8vIENvcHkgb3ZlciB2YXJpYWJsZXMgdGhhdCBzb3J0YWJsZSdzIF9pbnRlcnNlY3RzV2l0aCB1c2VzDQoJCQlzb3J0YWJsZS5wb3NpdGlvbkFicyA9IGRyYWdnYWJsZS5wb3NpdGlvbkFiczsNCgkJCXNvcnRhYmxlLmhlbHBlclByb3BvcnRpb25zID0gZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zOw0KCQkJc29ydGFibGUub2Zmc2V0LmNsaWNrID0gZHJhZ2dhYmxlLm9mZnNldC5jbGljazsNCg0KCQkJaWYgKCBzb3J0YWJsZS5faW50ZXJzZWN0c1dpdGgoIHNvcnRhYmxlLmNvbnRhaW5lckNhY2hlICkgKSB7DQoJCQkJaW5uZXJtb3N0SW50ZXJzZWN0aW5nID0gdHJ1ZTsNCg0KCQkJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoJCQkJCS8vIENvcHkgb3ZlciB2YXJpYWJsZXMgdGhhdCBzb3J0YWJsZSdzIF9pbnRlcnNlY3RzV2l0aCB1c2VzDQoJCQkJCXRoaXMucG9zaXRpb25BYnMgPSBkcmFnZ2FibGUucG9zaXRpb25BYnM7DQoJCQkJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMgPSBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnM7DQoJCQkJCXRoaXMub2Zmc2V0LmNsaWNrID0gZHJhZ2dhYmxlLm9mZnNldC5jbGljazsNCg0KCQkJCQlpZiAoIHRoaXMgIT09IHNvcnRhYmxlICYmDQoJCQkJCQkJdGhpcy5faW50ZXJzZWN0c1dpdGgoIHRoaXMuY29udGFpbmVyQ2FjaGUgKSAmJg0KCQkJCQkJCSQuY29udGFpbnMoIHNvcnRhYmxlLmVsZW1lbnRbIDAgXSwgdGhpcy5lbGVtZW50WyAwIF0gKSApIHsNCgkJCQkJCWlubmVybW9zdEludGVyc2VjdGluZyA9IGZhbHNlOw0KCQkJCQl9DQoNCgkJCQkJcmV0dXJuIGlubmVybW9zdEludGVyc2VjdGluZzsNCgkJCQl9KTsNCgkJCX0NCg0KCQkJaWYgKCBpbm5lcm1vc3RJbnRlcnNlY3RpbmcgKSB7DQoJCQkJLy8gSWYgaXQgaW50ZXJzZWN0cywgd2UgdXNlIGEgbGl0dGxlIGlzT3ZlciB2YXJpYWJsZSBhbmQgc2V0IGl0IG9uY2UsDQoJCQkJLy8gc28gdGhhdCB0aGUgbW92ZS1pbiBzdHVmZiBnZXRzIGZpcmVkIG9ubHkgb25jZS4NCgkJCQlpZiAoICFzb3J0YWJsZS5pc092ZXIgKSB7DQoJCQkJCXNvcnRhYmxlLmlzT3ZlciA9IDE7DQoNCgkJCQkJLy8gU3RvcmUgZHJhZ2dhYmxlJ3MgcGFyZW50IGluIGNhc2Ugd2UgbmVlZCB0byByZWFwcGVuZCB0byBpdCBsYXRlci4NCgkJCQkJZHJhZ2dhYmxlLl9wYXJlbnQgPSB1aS5oZWxwZXIucGFyZW50KCk7DQoNCgkJCQkJc29ydGFibGUuY3VycmVudEl0ZW0gPSB1aS5oZWxwZXINCgkJCQkJCS5hcHBlbmRUbyggc29ydGFibGUuZWxlbWVudCApDQoJCQkJCQkuZGF0YSggInVpLXNvcnRhYmxlLWl0ZW0iLCB0cnVlICk7DQoNCgkJCQkJLy8gU3RvcmUgaGVscGVyIG9wdGlvbiB0byBsYXRlciByZXN0b3JlIGl0DQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMuX2hlbHBlciA9IHNvcnRhYmxlLm9wdGlvbnMuaGVscGVyOw0KDQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMuaGVscGVyID0gZnVuY3Rpb24oKSB7DQoJCQkJCQlyZXR1cm4gdWkuaGVscGVyWyAwIF07DQoJCQkJCX07DQoNCgkJCQkJLy8gRmlyZSB0aGUgc3RhcnQgZXZlbnRzIG9mIHRoZSBzb3J0YWJsZSB3aXRoIG91ciBwYXNzZWQgYnJvd3NlciBldmVudCwNCgkJCQkJLy8gYW5kIG91ciBvd24gaGVscGVyIChzbyBpdCBkb2Vzbid0IGNyZWF0ZSBhIG5ldyBvbmUpDQoJCQkJCWV2ZW50LnRhcmdldCA9IHNvcnRhYmxlLmN1cnJlbnRJdGVtWyAwIF07DQoJCQkJCXNvcnRhYmxlLl9tb3VzZUNhcHR1cmUoIGV2ZW50LCB0cnVlICk7DQoJCQkJCXNvcnRhYmxlLl9tb3VzZVN0YXJ0KCBldmVudCwgdHJ1ZSwgdHJ1ZSApOw0KDQoJCQkJCS8vIEJlY2F1c2UgdGhlIGJyb3dzZXIgZXZlbnQgaXMgd2F5IG9mZiB0aGUgbmV3IGFwcGVuZGVkIHBvcnRsZXQsDQoJCQkJCS8vIG1vZGlmeSBuZWNlc3NhcnkgdmFyaWFibGVzIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXMNCgkJCQkJc29ydGFibGUub2Zmc2V0LmNsaWNrLnRvcCA9IGRyYWdnYWJsZS5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCQlzb3J0YWJsZS5vZmZzZXQuY2xpY2subGVmdCA9IGRyYWdnYWJsZS5vZmZzZXQuY2xpY2subGVmdDsNCgkJCQkJc29ydGFibGUub2Zmc2V0LnBhcmVudC5sZWZ0IC09IGRyYWdnYWJsZS5vZmZzZXQucGFyZW50LmxlZnQgLQ0KCQkJCQkJc29ydGFibGUub2Zmc2V0LnBhcmVudC5sZWZ0Ow0KCQkJCQlzb3J0YWJsZS5vZmZzZXQucGFyZW50LnRvcCAtPSBkcmFnZ2FibGUub2Zmc2V0LnBhcmVudC50b3AgLQ0KCQkJCQkJc29ydGFibGUub2Zmc2V0LnBhcmVudC50b3A7DQoNCgkJCQkJZHJhZ2dhYmxlLl90cmlnZ2VyKCAidG9Tb3J0YWJsZSIsIGV2ZW50ICk7DQoNCgkJCQkJLy8gSW5mb3JtIGRyYWdnYWJsZSB0aGF0IHRoZSBoZWxwZXIgaXMgaW4gYSB2YWxpZCBkcm9wIHpvbmUsDQoJCQkJCS8vIHVzZWQgc29sZWx5IGluIHRoZSByZXZlcnQgb3B0aW9uIHRvIGhhbmRsZSAidmFsaWQvaW52YWxpZCIuDQoJCQkJCWRyYWdnYWJsZS5kcm9wcGVkID0gc29ydGFibGUuZWxlbWVudDsNCg0KCQkJCQkvLyBOZWVkIHRvIHJlZnJlc2hQb3NpdGlvbnMgb2YgYWxsIHNvcnRhYmxlcyBpbiB0aGUgY2FzZSB0aGF0DQoJCQkJCS8vIGFkZGluZyB0byBvbmUgc29ydGFibGUgY2hhbmdlcyB0aGUgbG9jYXRpb24gb2YgdGhlIG90aGVyIHNvcnRhYmxlcyAoIzk2NzUpDQoJCQkJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoJCQkJCQl0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKTsNCgkJCQkJfSk7DQoNCgkJCQkJLy8gaGFjayBzbyByZWNlaXZlL3VwZGF0ZSBjYWxsYmFja3Mgd29yayAobW9zdGx5KQ0KCQkJCQlkcmFnZ2FibGUuY3VycmVudEl0ZW0gPSBkcmFnZ2FibGUuZWxlbWVudDsNCgkJCQkJc29ydGFibGUuZnJvbU91dHNpZGUgPSBkcmFnZ2FibGU7DQoJCQkJfQ0KDQoJCQkJaWYgKCBzb3J0YWJsZS5jdXJyZW50SXRlbSApIHsNCgkJCQkJc29ydGFibGUuX21vdXNlRHJhZyggZXZlbnQgKTsNCgkJCQkJLy8gQ29weSB0aGUgc29ydGFibGUncyBwb3NpdGlvbiBiZWNhdXNlIHRoZSBkcmFnZ2FibGUncyBjYW4gcG90ZW50aWFsbHkgcmVmbGVjdA0KCQkJCQkvLyBhIHJlbGF0aXZlIHBvc2l0aW9uLCB3aGlsZSBzb3J0YWJsZSBpcyBhbHdheXMgYWJzb2x1dGUsIHdoaWNoIHRoZSBkcmFnZ2VkDQoJCQkJCS8vIGVsZW1lbnQgaGFzIG5vdyBiZWNvbWUuICgjODgwOSkNCgkJCQkJdWkucG9zaXRpb24gPSBzb3J0YWJsZS5wb3NpdGlvbjsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCS8vIElmIGl0IGRvZXNuJ3QgaW50ZXJzZWN0IHdpdGggdGhlIHNvcnRhYmxlLCBhbmQgaXQgaW50ZXJzZWN0ZWQgYmVmb3JlLA0KCQkJCS8vIHdlIGZha2UgdGhlIGRyYWcgc3RvcCBvZiB0aGUgc29ydGFibGUsIGJ1dCBtYWtlIHN1cmUgaXQgZG9lc24ndCByZW1vdmUNCgkJCQkvLyB0aGUgaGVscGVyIGJ5IHVzaW5nIGNhbmNlbEhlbHBlclJlbW92YWwuDQoJCQkJaWYgKCBzb3J0YWJsZS5pc092ZXIgKSB7DQoNCgkJCQkJc29ydGFibGUuaXNPdmVyID0gMDsNCgkJCQkJc29ydGFibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IHRydWU7DQoNCgkJCQkJLy8gQ2FsbGluZyBzb3J0YWJsZSdzIG1vdXNlU3RvcCB3b3VsZCB0cmlnZ2VyIGEgcmV2ZXJ0LA0KCQkJCQkvLyBzbyByZXZlcnQgbXVzdCBiZSB0ZW1wb3JhcmlseSBmYWxzZSB1bnRpbCBhZnRlciBtb3VzZVN0b3AgaXMgY2FsbGVkLg0KCQkJCQlzb3J0YWJsZS5vcHRpb25zLl9yZXZlcnQgPSBzb3J0YWJsZS5vcHRpb25zLnJldmVydDsNCgkJCQkJc29ydGFibGUub3B0aW9ucy5yZXZlcnQgPSBmYWxzZTsNCg0KCQkJCQlzb3J0YWJsZS5fdHJpZ2dlciggIm91dCIsIGV2ZW50LCBzb3J0YWJsZS5fdWlIYXNoKCBzb3J0YWJsZSApICk7DQoJCQkJCXNvcnRhYmxlLl9tb3VzZVN0b3AoIGV2ZW50LCB0cnVlICk7DQoNCgkJCQkJLy8gcmVzdG9yZSBzb3J0YWJsZSBiZWhhdmlvcnMgdGhhdCB3ZXJlIG1vZGZpZWQNCgkJCQkJLy8gd2hlbiB0aGUgZHJhZ2dhYmxlIGVudGVyZWQgdGhlIHNvcnRhYmxlIGFyZWEgKCM5NDgxKQ0KCQkJCQlzb3J0YWJsZS5vcHRpb25zLnJldmVydCA9IHNvcnRhYmxlLm9wdGlvbnMuX3JldmVydDsNCgkJCQkJc29ydGFibGUub3B0aW9ucy5oZWxwZXIgPSBzb3J0YWJsZS5vcHRpb25zLl9oZWxwZXI7DQoNCgkJCQkJaWYgKCBzb3J0YWJsZS5wbGFjZWhvbGRlciApIHsNCgkJCQkJCXNvcnRhYmxlLnBsYWNlaG9sZGVyLnJlbW92ZSgpOw0KCQkJCQl9DQoNCgkJCQkJLy8gUmVzdG9yZSBhbmQgcmVjYWxjdWxhdGUgdGhlIGRyYWdnYWJsZSdzIG9mZnNldCBjb25zaWRlcmluZyB0aGUgc29ydGFibGUNCgkJCQkJLy8gbWF5IGhhdmUgbW9kaWZpZWQgdGhlbSBpbiB1bmV4cGVjdGVkIHdheXMuICgjODgwOSwgIzEwNjY5KQ0KCQkJCQl1aS5oZWxwZXIuYXBwZW5kVG8oIGRyYWdnYWJsZS5fcGFyZW50ICk7DQoJCQkJCWRyYWdnYWJsZS5fcmVmcmVzaE9mZnNldHMoIGV2ZW50ICk7DQoJCQkJCXVpLnBvc2l0aW9uID0gZHJhZ2dhYmxlLl9nZW5lcmF0ZVBvc2l0aW9uKCBldmVudCwgdHJ1ZSApOw0KDQoJCQkJCWRyYWdnYWJsZS5fdHJpZ2dlciggImZyb21Tb3J0YWJsZSIsIGV2ZW50ICk7DQoNCgkJCQkJLy8gSW5mb3JtIGRyYWdnYWJsZSB0aGF0IHRoZSBoZWxwZXIgaXMgbm8gbG9uZ2VyIGluIGEgdmFsaWQgZHJvcCB6b25lDQoJCQkJCWRyYWdnYWJsZS5kcm9wcGVkID0gZmFsc2U7DQoNCgkJCQkJLy8gTmVlZCB0byByZWZyZXNoUG9zaXRpb25zIG9mIGFsbCBzb3J0YWJsZXMganVzdCBpbiBjYXNlIHJlbW92aW5nDQoJCQkJCS8vIGZyb20gb25lIHNvcnRhYmxlIGNoYW5nZXMgdGhlIGxvY2F0aW9uIG9mIG90aGVyIHNvcnRhYmxlcyAoIzk2NzUpDQoJCQkJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoJCQkJCQl0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKTsNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfQ0KCQl9KTsNCgl9DQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCAiY3Vyc29yIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIHQgPSAkKCAiYm9keSIgKSwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zOw0KDQoJCWlmICh0LmNzcygiY3Vyc29yIikpIHsNCgkJCW8uX2N1cnNvciA9IHQuY3NzKCJjdXJzb3IiKTsNCgkJfQ0KCQl0LmNzcygiY3Vyc29yIiwgby5jdXJzb3IpOw0KCX0sDQoJc3RvcDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaW5zdGFuY2UgKSB7DQoJCXZhciBvID0gaW5zdGFuY2Uub3B0aW9uczsNCgkJaWYgKG8uX2N1cnNvcikgew0KCQkJJCgiYm9keSIpLmNzcygiY3Vyc29yIiwgby5fY3Vyc29yKTsNCgkJfQ0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsICJvcGFjaXR5Iiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIHQgPSAkKCB1aS5oZWxwZXIgKSwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zOw0KCQlpZiAodC5jc3MoIm9wYWNpdHkiKSkgew0KCQkJby5fb3BhY2l0eSA9IHQuY3NzKCJvcGFjaXR5Iik7DQoJCX0NCgkJdC5jc3MoIm9wYWNpdHkiLCBvLm9wYWNpdHkpOw0KCX0sDQoJc3RvcDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaW5zdGFuY2UgKSB7DQoJCXZhciBvID0gaW5zdGFuY2Uub3B0aW9uczsNCgkJaWYgKG8uX29wYWNpdHkpIHsNCgkJCSQodWkuaGVscGVyKS5jc3MoIm9wYWNpdHkiLCBvLl9vcGFjaXR5KTsNCgkJfQ0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsICJzY3JvbGwiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGkgKSB7DQoJCWlmICggIWkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuICkgew0KCQkJaS5zY3JvbGxQYXJlbnROb3RIaWRkZW4gPSBpLmhlbHBlci5zY3JvbGxQYXJlbnQoIGZhbHNlICk7DQoJCX0NCg0KCQlpZiAoIGkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuWyAwIF0gIT09IGkuZG9jdW1lbnRbIDAgXSAmJiBpLnNjcm9sbFBhcmVudE5vdEhpZGRlblsgMCBdLnRhZ05hbWUgIT09ICJIVE1MIiApIHsNCgkJCWkub3ZlcmZsb3dPZmZzZXQgPSBpLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKTsNCgkJfQ0KCX0sDQoJZHJhZzogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaSAgKSB7DQoNCgkJdmFyIG8gPSBpLm9wdGlvbnMsDQoJCQlzY3JvbGxlZCA9IGZhbHNlLA0KCQkJc2Nyb2xsUGFyZW50ID0gaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bIDAgXSwNCgkJCWRvY3VtZW50ID0gaS5kb2N1bWVudFsgMCBdOw0KDQoJCWlmICggc2Nyb2xsUGFyZW50ICE9PSBkb2N1bWVudCAmJiBzY3JvbGxQYXJlbnQudGFnTmFtZSAhPT0gIkhUTUwiICkgew0KCQkJaWYgKCAhby5heGlzIHx8IG8uYXhpcyAhPT0gIngiICkgew0KCQkJCWlmICggKCBpLm92ZXJmbG93T2Zmc2V0LnRvcCArIHNjcm9sbFBhcmVudC5vZmZzZXRIZWlnaHQgKSAtIGV2ZW50LnBhZ2VZIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCA9IHNjcm9sbGVkID0gc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCArIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfSBlbHNlIGlmICggZXZlbnQucGFnZVkgLSBpLm92ZXJmbG93T2Zmc2V0LnRvcCA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkgKSB7DQoJCQkJCXNjcm9sbFBhcmVudC5zY3JvbGxUb3AgPSBzY3JvbGxlZCA9IHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgLSBvLnNjcm9sbFNwZWVkOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCAhby5heGlzIHx8IG8uYXhpcyAhPT0gInkiICkgew0KCQkJCWlmICggKCBpLm92ZXJmbG93T2Zmc2V0LmxlZnQgKyBzY3JvbGxQYXJlbnQub2Zmc2V0V2lkdGggKSAtIGV2ZW50LnBhZ2VYIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9IHNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0ICsgby5zY3JvbGxTcGVlZDsNCgkJCQl9IGVsc2UgaWYgKCBldmVudC5wYWdlWCAtIGkub3ZlcmZsb3dPZmZzZXQubGVmdCA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkgKSB7DQoJCQkJCXNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0ID0gc2Nyb2xsZWQgPSBzY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCAtIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCX0gZWxzZSB7DQoNCgkJCWlmICghby5heGlzIHx8IG8uYXhpcyAhPT0gIngiKSB7DQoJCQkJaWYgKGV2ZW50LnBhZ2VZIC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpIC0gby5zY3JvbGxTcGVlZCk7DQoJCQkJfSBlbHNlIGlmICgkKHdpbmRvdykuaGVpZ2h0KCkgLSAoZXZlbnQucGFnZVkgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpICsgby5zY3JvbGxTcGVlZCk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAoIW8uYXhpcyB8fCBvLmF4aXMgIT09ICJ5Iikgew0KCQkJCWlmIChldmVudC5wYWdlWCAtICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCQoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSAtIG8uc2Nyb2xsU3BlZWQpOw0KCQkJCX0gZWxzZSBpZiAoJCh3aW5kb3cpLndpZHRoKCkgLSAoZXZlbnQucGFnZVggLSAkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkpIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQlzY3JvbGxlZCA9ICQoZG9jdW1lbnQpLnNjcm9sbExlZnQoJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpICsgby5zY3JvbGxTcGVlZCk7DQoJCQkJfQ0KCQkJfQ0KDQoJCX0NCg0KCQlpZiAoc2Nyb2xsZWQgIT09IGZhbHNlICYmICQudWkuZGRtYW5hZ2VyICYmICFvLmRyb3BCZWhhdmlvdXIpIHsNCgkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKGksIGV2ZW50KTsNCgkJfQ0KDQoJfQ0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwgInNuYXAiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGkgKSB7DQoNCgkJdmFyIG8gPSBpLm9wdGlvbnM7DQoNCgkJaS5zbmFwRWxlbWVudHMgPSBbXTsNCg0KCQkkKG8uc25hcC5jb25zdHJ1Y3RvciAhPT0gU3RyaW5nID8gKCBvLnNuYXAuaXRlbXMgfHwgIjpkYXRhKHVpLWRyYWdnYWJsZSkiICkgOiBvLnNuYXApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgJHQgPSAkKHRoaXMpLA0KCQkJCSRvID0gJHQub2Zmc2V0KCk7DQoJCQlpZiAodGhpcyAhPT0gaS5lbGVtZW50WzBdKSB7DQoJCQkJaS5zbmFwRWxlbWVudHMucHVzaCh7DQoJCQkJCWl0ZW06IHRoaXMsDQoJCQkJCXdpZHRoOiAkdC5vdXRlcldpZHRoKCksIGhlaWdodDogJHQub3V0ZXJIZWlnaHQoKSwNCgkJCQkJdG9wOiAkby50b3AsIGxlZnQ6ICRvLmxlZnQNCgkJCQl9KTsNCgkJCX0NCgkJfSk7DQoNCgl9LA0KCWRyYWc6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3QgKSB7DQoNCgkJdmFyIHRzLCBicywgbHMsIHJzLCBsLCByLCB0LCBiLCBpLCBmaXJzdCwNCgkJCW8gPSBpbnN0Lm9wdGlvbnMsDQoJCQlkID0gby5zbmFwVG9sZXJhbmNlLA0KCQkJeDEgPSB1aS5vZmZzZXQubGVmdCwgeDIgPSB4MSArIGluc3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsDQoJCQl5MSA9IHVpLm9mZnNldC50b3AsIHkyID0geTEgKyBpbnN0LmhlbHBlclByb3BvcnRpb25zLmhlaWdodDsNCg0KCQlmb3IgKGkgPSBpbnN0LnNuYXBFbGVtZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoNCgkJCWwgPSBpbnN0LnNuYXBFbGVtZW50c1tpXS5sZWZ0IC0gaW5zdC5tYXJnaW5zLmxlZnQ7DQoJCQlyID0gbCArIGluc3Quc25hcEVsZW1lbnRzW2ldLndpZHRoOw0KCQkJdCA9IGluc3Quc25hcEVsZW1lbnRzW2ldLnRvcCAtIGluc3QubWFyZ2lucy50b3A7DQoJCQliID0gdCArIGluc3Quc25hcEVsZW1lbnRzW2ldLmhlaWdodDsNCg0KCQkJaWYgKCB4MiA8IGwgLSBkIHx8IHgxID4gciArIGQgfHwgeTIgPCB0IC0gZCB8fCB5MSA+IGIgKyBkIHx8ICEkLmNvbnRhaW5zKCBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLml0ZW0ub3duZXJEb2N1bWVudCwgaW5zdC5zbmFwRWxlbWVudHNbIGkgXS5pdGVtICkgKSB7DQoJCQkJaWYgKGluc3Quc25hcEVsZW1lbnRzW2ldLnNuYXBwaW5nKSB7DQoJCQkJCShpbnN0Lm9wdGlvbnMuc25hcC5yZWxlYXNlICYmIGluc3Qub3B0aW9ucy5zbmFwLnJlbGVhc2UuY2FsbChpbnN0LmVsZW1lbnQsIGV2ZW50LCAkLmV4dGVuZChpbnN0Ll91aUhhc2goKSwgeyBzbmFwSXRlbTogaW5zdC5zbmFwRWxlbWVudHNbaV0uaXRlbSB9KSkpOw0KCQkJCX0NCgkJCQlpbnN0LnNuYXBFbGVtZW50c1tpXS5zbmFwcGluZyA9IGZhbHNlOw0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQlpZiAoby5zbmFwTW9kZSAhPT0gImlubmVyIikgew0KCQkJCXRzID0gTWF0aC5hYnModCAtIHkyKSA8PSBkOw0KCQkJCWJzID0gTWF0aC5hYnMoYiAtIHkxKSA8PSBkOw0KCQkJCWxzID0gTWF0aC5hYnMobCAtIHgyKSA8PSBkOw0KCQkJCXJzID0gTWF0aC5hYnMociAtIHgxKSA8PSBkOw0KCQkJCWlmICh0cykgew0KCQkJCQl1aS5wb3NpdGlvbi50b3AgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogdCAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LCBsZWZ0OiAwIH0pLnRvcDsNCgkJCQl9DQoJCQkJaWYgKGJzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLnRvcCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiBiLCBsZWZ0OiAwIH0pLnRvcDsNCgkJCQl9DQoJCQkJaWYgKGxzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLmxlZnQgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogMCwgbGVmdDogbCAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggfSkubGVmdDsNCgkJCQl9DQoJCQkJaWYgKHJzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLmxlZnQgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogMCwgbGVmdDogciB9KS5sZWZ0Ow0KCQkJCX0NCgkJCX0NCg0KCQkJZmlyc3QgPSAodHMgfHwgYnMgfHwgbHMgfHwgcnMpOw0KDQoJCQlpZiAoby5zbmFwTW9kZSAhPT0gIm91dGVyIikgew0KCQkJCXRzID0gTWF0aC5hYnModCAtIHkxKSA8PSBkOw0KCQkJCWJzID0gTWF0aC5hYnMoYiAtIHkyKSA8PSBkOw0KCQkJCWxzID0gTWF0aC5hYnMobCAtIHgxKSA8PSBkOw0KCQkJCXJzID0gTWF0aC5hYnMociAtIHgyKSA8PSBkOw0KCQkJCWlmICh0cykgew0KCQkJCQl1aS5wb3NpdGlvbi50b3AgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogdCwgbGVmdDogMCB9KS50b3A7DQoJCQkJfQ0KCQkJCWlmIChicykgew0KCQkJCQl1aS5wb3NpdGlvbi50b3AgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogYiAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LCBsZWZ0OiAwIH0pLnRvcDsNCgkJCQl9DQoJCQkJaWYgKGxzKSB7DQoJCQkJCXVpLnBvc2l0aW9uLmxlZnQgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLCB7IHRvcDogMCwgbGVmdDogbCB9KS5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAocnMpIHsNCgkJCQkJdWkucG9zaXRpb24ubGVmdCA9IGluc3QuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIsIHsgdG9wOiAwLCBsZWZ0OiByIC0gaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCB9KS5sZWZ0Ow0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCFpbnN0LnNuYXBFbGVtZW50c1tpXS5zbmFwcGluZyAmJiAodHMgfHwgYnMgfHwgbHMgfHwgcnMgfHwgZmlyc3QpKSB7DQoJCQkJKGluc3Qub3B0aW9ucy5zbmFwLnNuYXAgJiYgaW5zdC5vcHRpb25zLnNuYXAuc25hcC5jYWxsKGluc3QuZWxlbWVudCwgZXZlbnQsICQuZXh0ZW5kKGluc3QuX3VpSGFzaCgpLCB7IHNuYXBJdGVtOiBpbnN0LnNuYXBFbGVtZW50c1tpXS5pdGVtIH0pKSk7DQoJCQl9DQoJCQlpbnN0LnNuYXBFbGVtZW50c1tpXS5zbmFwcGluZyA9ICh0cyB8fCBicyB8fCBscyB8fCBycyB8fCBmaXJzdCk7DQoNCgkJfQ0KDQoJfQ0KfSk7DQoNCiQudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwgInN0YWNrIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG1pbiwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zLA0KCQkJZ3JvdXAgPSAkLm1ha2VBcnJheSgkKG8uc3RhY2spKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsNCgkJCQlyZXR1cm4gKHBhcnNlSW50KCQoYSkuY3NzKCJ6SW5kZXgiKSwgMTApIHx8IDApIC0gKHBhcnNlSW50KCQoYikuY3NzKCJ6SW5kZXgiKSwgMTApIHx8IDApOw0KCQkJfSk7DQoNCgkJaWYgKCFncm91cC5sZW5ndGgpIHsgcmV0dXJuOyB9DQoNCgkJbWluID0gcGFyc2VJbnQoJChncm91cFswXSkuY3NzKCJ6SW5kZXgiKSwgMTApIHx8IDA7DQoJCSQoZ3JvdXApLmVhY2goZnVuY3Rpb24oaSkgew0KCQkJJCh0aGlzKS5jc3MoInpJbmRleCIsIG1pbiArIGkpOw0KCQl9KTsNCgkJdGhpcy5jc3MoInpJbmRleCIsIChtaW4gKyBncm91cC5sZW5ndGgpKTsNCgl9DQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCAiekluZGV4Iiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIHQgPSAkKCB1aS5oZWxwZXIgKSwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zOw0KDQoJCWlmICh0LmNzcygiekluZGV4IikpIHsNCgkJCW8uX3pJbmRleCA9IHQuY3NzKCJ6SW5kZXgiKTsNCgkJfQ0KCQl0LmNzcygiekluZGV4Iiwgby56SW5kZXgpOw0KCX0sDQoJc3RvcDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaW5zdGFuY2UgKSB7DQoJCXZhciBvID0gaW5zdGFuY2Uub3B0aW9uczsNCg0KCQlpZiAoby5fekluZGV4KSB7DQoJCQkkKHVpLmhlbHBlcikuY3NzKCJ6SW5kZXgiLCBvLl96SW5kZXgpOw0KCQl9DQoJfQ0KfSk7DQoNCnZhciBkcmFnZ2FibGUgPSAkLnVpLmRyYWdnYWJsZTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBSZXNpemFibGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9yZXNpemFibGUvDQogKi8NCg0KDQokLndpZGdldCgidWkucmVzaXphYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAicmVzaXplIiwNCglvcHRpb25zOiB7DQoJCWFsc29SZXNpemU6IGZhbHNlLA0KCQlhbmltYXRlOiBmYWxzZSwNCgkJYW5pbWF0ZUR1cmF0aW9uOiAic2xvdyIsDQoJCWFuaW1hdGVFYXNpbmc6ICJzd2luZyIsDQoJCWFzcGVjdFJhdGlvOiBmYWxzZSwNCgkJYXV0b0hpZGU6IGZhbHNlLA0KCQljb250YWlubWVudDogZmFsc2UsDQoJCWdob3N0OiBmYWxzZSwNCgkJZ3JpZDogZmFsc2UsDQoJCWhhbmRsZXM6ICJlLHMsc2UiLA0KCQloZWxwZXI6IGZhbHNlLA0KCQltYXhIZWlnaHQ6IG51bGwsDQoJCW1heFdpZHRoOiBudWxsLA0KCQltaW5IZWlnaHQ6IDEwLA0KCQltaW5XaWR0aDogMTAsDQoJCS8vIFNlZSAjNzk2MA0KCQl6SW5kZXg6IDkwLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlyZXNpemU6IG51bGwsDQoJCXN0YXJ0OiBudWxsLA0KCQlzdG9wOiBudWxsDQoJfSwNCg0KCV9udW06IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJcmV0dXJuIHBhcnNlSW50KCB2YWx1ZSwgMTAgKSB8fCAwOw0KCX0sDQoNCglfaXNOdW1iZXI6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJcmV0dXJuICFpc05hTiggcGFyc2VJbnQoIHZhbHVlLCAxMCApICk7DQoJfSwNCg0KCV9oYXNTY3JvbGw6IGZ1bmN0aW9uKCBlbCwgYSApIHsNCg0KCQlpZiAoICQoIGVsICkuY3NzKCAib3ZlcmZsb3ciICkgPT09ICJoaWRkZW4iKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl2YXIgc2Nyb2xsID0gKCBhICYmIGEgPT09ICJsZWZ0IiApID8gInNjcm9sbExlZnQiIDogInNjcm9sbFRvcCIsDQoJCQloYXMgPSBmYWxzZTsNCg0KCQlpZiAoIGVsWyBzY3JvbGwgXSA+IDAgKSB7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCS8vIFRPRE86IGRldGVybWluZSB3aGljaCBjYXNlcyBhY3R1YWxseSBjYXVzZSB0aGlzIHRvIGhhcHBlbg0KCQkvLyBpZiB0aGUgZWxlbWVudCBkb2Vzbid0IGhhdmUgdGhlIHNjcm9sbCBzZXQsIHNlZSBpZiBpdCdzIHBvc3NpYmxlIHRvDQoJCS8vIHNldCB0aGUgc2Nyb2xsDQoJCWVsWyBzY3JvbGwgXSA9IDE7DQoJCWhhcyA9ICggZWxbIHNjcm9sbCBdID4gMCApOw0KCQllbFsgc2Nyb2xsIF0gPSAwOw0KCQlyZXR1cm4gaGFzOw0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgbiwgaSwgaGFuZGxlLCBheGlzLCBobmFtZSwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCgkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKTsNCg0KCQkkLmV4dGVuZCh0aGlzLCB7DQoJCQlfYXNwZWN0UmF0aW86ICEhKG8uYXNwZWN0UmF0aW8pLA0KCQkJYXNwZWN0UmF0aW86IG8uYXNwZWN0UmF0aW8sDQoJCQlvcmlnaW5hbEVsZW1lbnQ6IHRoaXMuZWxlbWVudCwNCgkJCV9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzOiBbXSwNCgkJCV9oZWxwZXI6IG8uaGVscGVyIHx8IG8uZ2hvc3QgfHwgby5hbmltYXRlID8gby5oZWxwZXIgfHwgInVpLXJlc2l6YWJsZS1oZWxwZXIiIDogbnVsbA0KCQl9KTsNCg0KCQkvLyBXcmFwIHRoZSBlbGVtZW50IGlmIGl0IGNhbm5vdCBob2xkIGNoaWxkIG5vZGVzDQoJCWlmICh0aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14oY2FudmFzfHRleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b258aW1nKSQvaSkpIHsNCg0KCQkJdGhpcy5lbGVtZW50LndyYXAoDQoJCQkJJCgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moew0KCQkJCQlwb3NpdGlvbjogdGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSwNCgkJCQkJd2lkdGg6IHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksDQoJCQkJCWhlaWdodDogdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksDQoJCQkJCXRvcDogdGhpcy5lbGVtZW50LmNzcygidG9wIiksDQoJCQkJCWxlZnQ6IHRoaXMuZWxlbWVudC5jc3MoImxlZnQiKQ0KCQkJCX0pDQoJCQkpOw0KDQoJCQl0aGlzLmVsZW1lbnQgPSB0aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgNCgkJCQkidWktcmVzaXphYmxlIiwgdGhpcy5lbGVtZW50LnJlc2l6YWJsZSggImluc3RhbmNlIiApDQoJCQkpOw0KDQoJCQl0aGlzLmVsZW1lbnRJc1dyYXBwZXIgPSB0cnVlOw0KDQoJCQl0aGlzLmVsZW1lbnQuY3NzKHsNCgkJCQltYXJnaW5MZWZ0OiB0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwNCgkJCQltYXJnaW5Ub3A6IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luVG9wIiksDQoJCQkJbWFyZ2luUmlnaHQ6IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwNCgkJCQltYXJnaW5Cb3R0b206IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIikNCgkJCX0pOw0KCQkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHsNCgkJCQltYXJnaW5MZWZ0OiAwLA0KCQkJCW1hcmdpblRvcDogMCwNCgkJCQltYXJnaW5SaWdodDogMCwNCgkJCQltYXJnaW5Cb3R0b206IDANCgkJCX0pOw0KCQkJLy8gc3VwcG9ydDogU2FmYXJpDQoJCQkvLyBQcmV2ZW50IFNhZmFyaSB0ZXh0YXJlYSByZXNpemUNCgkJCXRoaXMub3JpZ2luYWxSZXNpemVTdHlsZSA9IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIik7DQoJCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsICJub25lIik7DQoNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMucHVzaCggdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKHsNCgkJCQlwb3NpdGlvbjogInN0YXRpYyIsDQoJCQkJem9vbTogMSwNCgkJCQlkaXNwbGF5OiAiYmxvY2siDQoJCQl9KSApOw0KDQoJCQkvLyBzdXBwb3J0OiBJRTkNCgkJCS8vIGF2b2lkIElFIGp1bXAgKGhhcmQgc2V0IHRoZSBtYXJnaW4pDQoJCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoeyBtYXJnaW46IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luIikgfSk7DQoNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCk7DQoJCX0NCg0KCQl0aGlzLmhhbmRsZXMgPSBvLmhhbmRsZXMgfHwNCgkJCSggISQoIi51aS1yZXNpemFibGUtaGFuZGxlIiwgdGhpcy5lbGVtZW50KS5sZW5ndGggPw0KCQkJCSJlLHMsc2UiIDogew0KCQkJCQluOiAiLnVpLXJlc2l6YWJsZS1uIiwNCgkJCQkJZTogIi51aS1yZXNpemFibGUtZSIsDQoJCQkJCXM6ICIudWktcmVzaXphYmxlLXMiLA0KCQkJCQl3OiAiLnVpLXJlc2l6YWJsZS13IiwNCgkJCQkJc2U6ICIudWktcmVzaXphYmxlLXNlIiwNCgkJCQkJc3c6ICIudWktcmVzaXphYmxlLXN3IiwNCgkJCQkJbmU6ICIudWktcmVzaXphYmxlLW5lIiwNCgkJCQkJbnc6ICIudWktcmVzaXphYmxlLW53Ig0KCQkJCX0gKTsNCg0KCQl0aGlzLl9oYW5kbGVzID0gJCgpOw0KCQlpZiAoIHRoaXMuaGFuZGxlcy5jb25zdHJ1Y3RvciA9PT0gU3RyaW5nICkgew0KDQoJCQlpZiAoIHRoaXMuaGFuZGxlcyA9PT0gImFsbCIpIHsNCgkJCQl0aGlzLmhhbmRsZXMgPSAibixlLHMsdyxzZSxzdyxuZSxudyI7DQoJCQl9DQoNCgkJCW4gPSB0aGlzLmhhbmRsZXMuc3BsaXQoIiwiKTsNCgkJCXRoaXMuaGFuZGxlcyA9IHt9Ow0KDQoJCQlmb3IgKGkgPSAwOyBpIDwgbi5sZW5ndGg7IGkrKykgew0KDQoJCQkJaGFuZGxlID0gJC50cmltKG5baV0pOw0KCQkJCWhuYW1lID0gInVpLXJlc2l6YWJsZS0iICsgaGFuZGxlOw0KCQkJCWF4aXMgPSAkKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIgKyBobmFtZSArICInPjwvZGl2PiIpOw0KDQoJCQkJYXhpcy5jc3MoeyB6SW5kZXg6IG8uekluZGV4IH0pOw0KDQoJCQkJLy8gVE9ETyA6IFdoYXQncyBnb2luZyBvbiBoZXJlPw0KCQkJCWlmICgic2UiID09PSBoYW5kbGUpIHsNCgkJCQkJYXhpcy5hZGRDbGFzcygidWktaWNvbiB1aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZSIpOw0KCQkJCX0NCg0KCQkJCXRoaXMuaGFuZGxlc1toYW5kbGVdID0gIi51aS1yZXNpemFibGUtIiArIGhhbmRsZTsNCgkJCQl0aGlzLmVsZW1lbnQuYXBwZW5kKGF4aXMpOw0KCQkJfQ0KDQoJCX0NCg0KCQl0aGlzLl9yZW5kZXJBeGlzID0gZnVuY3Rpb24odGFyZ2V0KSB7DQoNCgkJCXZhciBpLCBheGlzLCBwYWRQb3MsIHBhZFdyYXBwZXI7DQoNCgkJCXRhcmdldCA9IHRhcmdldCB8fCB0aGlzLmVsZW1lbnQ7DQoNCgkJCWZvciAoaSBpbiB0aGlzLmhhbmRsZXMpIHsNCg0KCQkJCWlmICh0aGlzLmhhbmRsZXNbaV0uY29uc3RydWN0b3IgPT09IFN0cmluZykgew0KCQkJCQl0aGlzLmhhbmRsZXNbaV0gPSB0aGlzLmVsZW1lbnQuY2hpbGRyZW4oIHRoaXMuaGFuZGxlc1sgaSBdICkuZmlyc3QoKS5zaG93KCk7DQoJCQkJfSBlbHNlIGlmICggdGhpcy5oYW5kbGVzWyBpIF0uanF1ZXJ5IHx8IHRoaXMuaGFuZGxlc1sgaSBdLm5vZGVUeXBlICkgew0KCQkJCQl0aGlzLmhhbmRsZXNbIGkgXSA9ICQoIHRoaXMuaGFuZGxlc1sgaSBdICk7DQoJCQkJCXRoaXMuX29uKCB0aGlzLmhhbmRsZXNbIGkgXSwgeyAibW91c2Vkb3duIjogdGhhdC5fbW91c2VEb3duIH0pOw0KCQkJCX0NCg0KCQkJCWlmICh0aGlzLmVsZW1lbnRJc1dyYXBwZXIgJiYgdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpKSB7DQoNCgkJCQkJYXhpcyA9ICQodGhpcy5oYW5kbGVzW2ldLCB0aGlzLmVsZW1lbnQpOw0KDQoJCQkJCXBhZFdyYXBwZXIgPSAvc3d8bmV8bnd8c2V8bnxzLy50ZXN0KGkpID8gYXhpcy5vdXRlckhlaWdodCgpIDogYXhpcy5vdXRlcldpZHRoKCk7DQoNCgkJCQkJcGFkUG9zID0gWyAicGFkZGluZyIsDQoJCQkJCQkvbmV8bnd8bi8udGVzdChpKSA/ICJUb3AiIDoNCgkJCQkJCS9zZXxzd3xzLy50ZXN0KGkpID8gIkJvdHRvbSIgOg0KCQkJCQkJL15lJC8udGVzdChpKSA/ICJSaWdodCIgOiAiTGVmdCIgXS5qb2luKCIiKTsNCg0KCQkJCQl0YXJnZXQuY3NzKHBhZFBvcywgcGFkV3JhcHBlcik7DQoNCgkJCQkJdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKTsNCgkJCQl9DQoNCgkJCQl0aGlzLl9oYW5kbGVzID0gdGhpcy5faGFuZGxlcy5hZGQoIHRoaXMuaGFuZGxlc1sgaSBdICk7DQoJCQl9DQoJCX07DQoNCgkJLy8gVE9ETzogbWFrZSByZW5kZXJBeGlzIGEgcHJvdG90eXBlIGZ1bmN0aW9uDQoJCXRoaXMuX3JlbmRlckF4aXModGhpcy5lbGVtZW50KTsNCg0KCQl0aGlzLl9oYW5kbGVzID0gdGhpcy5faGFuZGxlcy5hZGQoIHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLXJlc2l6YWJsZS1oYW5kbGUiICkgKTsNCgkJdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCk7DQoNCgkJdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKSB7DQoJCQlpZiAoIXRoYXQucmVzaXppbmcpIHsNCgkJCQlpZiAodGhpcy5jbGFzc05hbWUpIHsNCgkJCQkJYXhpcyA9IHRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpOw0KCQkJCX0NCgkJCQl0aGF0LmF4aXMgPSBheGlzICYmIGF4aXNbMV0gPyBheGlzWzFdIDogInNlIjsNCgkJCX0NCgkJfSk7DQoNCgkJaWYgKG8uYXV0b0hpZGUpIHsNCgkJCXRoaXMuX2hhbmRsZXMuaGlkZSgpOw0KCQkJJCh0aGlzLmVsZW1lbnQpDQoJCQkJLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKQ0KCQkJCS5tb3VzZWVudGVyKGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoby5kaXNhYmxlZCkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoJCQkJCSQodGhpcykucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpOw0KCQkJCQl0aGF0Ll9oYW5kbGVzLnNob3coKTsNCgkJCQl9KQ0KCQkJCS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoby5kaXNhYmxlZCkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoJCQkJCWlmICghdGhhdC5yZXNpemluZykgew0KCQkJCQkJJCh0aGlzKS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIik7DQoJCQkJCQl0aGF0Ll9oYW5kbGVzLmhpZGUoKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQl9DQoNCgkJdGhpcy5fbW91c2VJbml0KCk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCg0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCg0KCQl2YXIgd3JhcHBlciwNCgkJCV9kZXN0cm95ID0gZnVuY3Rpb24oZXhwKSB7DQoJCQkJJChleHApDQoJCQkJCS5yZW1vdmVDbGFzcygidWktcmVzaXphYmxlIHVpLXJlc2l6YWJsZS1kaXNhYmxlZCB1aS1yZXNpemFibGUtcmVzaXppbmciKQ0KCQkJCQkucmVtb3ZlRGF0YSgicmVzaXphYmxlIikNCgkJCQkJLnJlbW92ZURhdGEoInVpLXJlc2l6YWJsZSIpDQoJCQkJCS51bmJpbmQoIi5yZXNpemFibGUiKQ0KCQkJCQkuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKQ0KCQkJCQkJLnJlbW92ZSgpOw0KCQkJfTsNCg0KCQkvLyBUT0RPOiBVbndyYXAgYXQgc2FtZSBET00gcG9zaXRpb24NCgkJaWYgKHRoaXMuZWxlbWVudElzV3JhcHBlcikgew0KCQkJX2Rlc3Ryb3kodGhpcy5lbGVtZW50KTsNCgkJCXdyYXBwZXIgPSB0aGlzLmVsZW1lbnQ7DQoJCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moew0KCQkJCXBvc2l0aW9uOiB3cmFwcGVyLmNzcygicG9zaXRpb24iKSwNCgkJCQl3aWR0aDogd3JhcHBlci5vdXRlcldpZHRoKCksDQoJCQkJaGVpZ2h0OiB3cmFwcGVyLm91dGVySGVpZ2h0KCksDQoJCQkJdG9wOiB3cmFwcGVyLmNzcygidG9wIiksDQoJCQkJbGVmdDogd3JhcHBlci5jc3MoImxlZnQiKQ0KCQkJfSkuaW5zZXJ0QWZ0ZXIoIHdyYXBwZXIgKTsNCgkJCXdyYXBwZXIucmVtb3ZlKCk7DQoJCX0NCg0KCQl0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsIHRoaXMub3JpZ2luYWxSZXNpemVTdHlsZSk7DQoJCV9kZXN0cm95KHRoaXMub3JpZ2luYWxFbGVtZW50KTsNCg0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIGksIGhhbmRsZSwNCgkJCWNhcHR1cmUgPSBmYWxzZTsNCg0KCQlmb3IgKGkgaW4gdGhpcy5oYW5kbGVzKSB7DQoJCQloYW5kbGUgPSAkKHRoaXMuaGFuZGxlc1tpXSlbMF07DQoJCQlpZiAoaGFuZGxlID09PSBldmVudC50YXJnZXQgfHwgJC5jb250YWlucyhoYW5kbGUsIGV2ZW50LnRhcmdldCkpIHsNCgkJCQljYXB0dXJlID0gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIGNhcHR1cmU7DQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbihldmVudCkgew0KDQoJCXZhciBjdXJsZWZ0LCBjdXJ0b3AsIGN1cnNvciwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQllbCA9IHRoaXMuZWxlbWVudDsNCg0KCQl0aGlzLnJlc2l6aW5nID0gdHJ1ZTsNCg0KCQl0aGlzLl9yZW5kZXJQcm94eSgpOw0KDQoJCWN1cmxlZnQgPSB0aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJsZWZ0IikpOw0KCQljdXJ0b3AgPSB0aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSk7DQoNCgkJaWYgKG8uY29udGFpbm1lbnQpIHsNCgkJCWN1cmxlZnQgKz0gJChvLmNvbnRhaW5tZW50KS5zY3JvbGxMZWZ0KCkgfHwgMDsNCgkJCWN1cnRvcCArPSAkKG8uY29udGFpbm1lbnQpLnNjcm9sbFRvcCgpIHx8IDA7DQoJCX0NCg0KCQl0aGlzLm9mZnNldCA9IHRoaXMuaGVscGVyLm9mZnNldCgpOw0KCQl0aGlzLnBvc2l0aW9uID0geyBsZWZ0OiBjdXJsZWZ0LCB0b3A6IGN1cnRvcCB9Ow0KDQoJCXRoaXMuc2l6ZSA9IHRoaXMuX2hlbHBlciA/IHsNCgkJCQl3aWR0aDogdGhpcy5oZWxwZXIud2lkdGgoKSwNCgkJCQloZWlnaHQ6IHRoaXMuaGVscGVyLmhlaWdodCgpDQoJCQl9IDogew0KCQkJCXdpZHRoOiBlbC53aWR0aCgpLA0KCQkJCWhlaWdodDogZWwuaGVpZ2h0KCkNCgkJCX07DQoNCgkJdGhpcy5vcmlnaW5hbFNpemUgPSB0aGlzLl9oZWxwZXIgPyB7DQoJCQkJd2lkdGg6IGVsLm91dGVyV2lkdGgoKSwNCgkJCQloZWlnaHQ6IGVsLm91dGVySGVpZ2h0KCkNCgkJCX0gOiB7DQoJCQkJd2lkdGg6IGVsLndpZHRoKCksDQoJCQkJaGVpZ2h0OiBlbC5oZWlnaHQoKQ0KCQkJfTsNCg0KCQl0aGlzLnNpemVEaWZmID0gew0KCQkJd2lkdGg6IGVsLm91dGVyV2lkdGgoKSAtIGVsLndpZHRoKCksDQoJCQloZWlnaHQ6IGVsLm91dGVySGVpZ2h0KCkgLSBlbC5oZWlnaHQoKQ0KCQl9Ow0KDQoJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiA9IHsgbGVmdDogY3VybGVmdCwgdG9wOiBjdXJ0b3AgfTsNCgkJdGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24gPSB7IGxlZnQ6IGV2ZW50LnBhZ2VYLCB0b3A6IGV2ZW50LnBhZ2VZIH07DQoNCgkJdGhpcy5hc3BlY3RSYXRpbyA9ICh0eXBlb2Ygby5hc3BlY3RSYXRpbyA9PT0gIm51bWJlciIpID8NCgkJCW8uYXNwZWN0UmF0aW8gOg0KCQkJKCh0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aCAvIHRoaXMub3JpZ2luYWxTaXplLmhlaWdodCkgfHwgMSk7DQoNCgkJY3Vyc29yID0gJCgiLnVpLXJlc2l6YWJsZS0iICsgdGhpcy5heGlzKS5jc3MoImN1cnNvciIpOw0KCQkkKCJib2R5IikuY3NzKCJjdXJzb3IiLCBjdXJzb3IgPT09ICJhdXRvIiA/IHRoaXMuYXhpcyArICItcmVzaXplIiA6IGN1cnNvcik7DQoNCgkJZWwuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpOw0KCQl0aGlzLl9wcm9wYWdhdGUoInN0YXJ0IiwgZXZlbnQpOw0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgZGF0YSwgcHJvcHMsDQoJCQlzbXAgPSB0aGlzLm9yaWdpbmFsTW91c2VQb3NpdGlvbiwNCgkJCWEgPSB0aGlzLmF4aXMsDQoJCQlkeCA9IChldmVudC5wYWdlWCAtIHNtcC5sZWZ0KSB8fCAwLA0KCQkJZHkgPSAoZXZlbnQucGFnZVkgLSBzbXAudG9wKSB8fCAwLA0KCQkJdHJpZ2dlciA9IHRoaXMuX2NoYW5nZVthXTsNCg0KCQl0aGlzLl91cGRhdGVQcmV2UHJvcGVydGllcygpOw0KDQoJCWlmICghdHJpZ2dlcikgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZGF0YSA9IHRyaWdnZXIuYXBwbHkodGhpcywgWyBldmVudCwgZHgsIGR5IF0pOw0KDQoJCXRoaXMuX3VwZGF0ZVZpcnR1YWxCb3VuZGFyaWVzKGV2ZW50LnNoaWZ0S2V5KTsNCgkJaWYgKHRoaXMuX2FzcGVjdFJhdGlvIHx8IGV2ZW50LnNoaWZ0S2V5KSB7DQoJCQlkYXRhID0gdGhpcy5fdXBkYXRlUmF0aW8oZGF0YSwgZXZlbnQpOw0KCQl9DQoNCgkJZGF0YSA9IHRoaXMuX3Jlc3BlY3RTaXplKGRhdGEsIGV2ZW50KTsNCg0KCQl0aGlzLl91cGRhdGVDYWNoZShkYXRhKTsNCg0KCQl0aGlzLl9wcm9wYWdhdGUoInJlc2l6ZSIsIGV2ZW50KTsNCg0KCQlwcm9wcyA9IHRoaXMuX2FwcGx5Q2hhbmdlcygpOw0KDQoJCWlmICggIXRoaXMuX2hlbHBlciAmJiB0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLmxlbmd0aCApIHsNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCk7DQoJCX0NCg0KCQlpZiAoICEkLmlzRW1wdHlPYmplY3QoIHByb3BzICkgKSB7DQoJCQl0aGlzLl91cGRhdGVQcmV2UHJvcGVydGllcygpOw0KCQkJdGhpcy5fdHJpZ2dlciggInJlc2l6ZSIsIGV2ZW50LCB0aGlzLnVpKCkgKTsNCgkJCXRoaXMuX2FwcGx5Q2hhbmdlcygpOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VTdG9wOiBmdW5jdGlvbihldmVudCkgew0KDQoJCXRoaXMucmVzaXppbmcgPSBmYWxzZTsNCgkJdmFyIHByLCBpc3RhLCBzb2Zmc2V0aCwgc29mZnNldHcsIHMsIGxlZnQsIHRvcCwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsIHRoYXQgPSB0aGlzOw0KDQoJCWlmICh0aGlzLl9oZWxwZXIpIHsNCg0KCQkJcHIgPSB0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzOw0KCQkJaXN0YSA9IHByLmxlbmd0aCAmJiAoL3RleHRhcmVhL2kpLnRlc3QocHJbMF0ubm9kZU5hbWUpOw0KCQkJc29mZnNldGggPSBpc3RhICYmIHRoaXMuX2hhc1Njcm9sbChwclswXSwgImxlZnQiKSA/IDAgOiB0aGF0LnNpemVEaWZmLmhlaWdodDsNCgkJCXNvZmZzZXR3ID0gaXN0YSA/IDAgOiB0aGF0LnNpemVEaWZmLndpZHRoOw0KDQoJCQlzID0gew0KCQkJCXdpZHRoOiAodGhhdC5oZWxwZXIud2lkdGgoKSAgLSBzb2Zmc2V0dyksDQoJCQkJaGVpZ2h0OiAodGhhdC5oZWxwZXIuaGVpZ2h0KCkgLSBzb2Zmc2V0aCkNCgkJCX07DQoJCQlsZWZ0ID0gKHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoImxlZnQiKSwgMTApICsNCgkJCQkodGhhdC5wb3NpdGlvbi5sZWZ0IC0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLmxlZnQpKSB8fCBudWxsOw0KCQkJdG9wID0gKHBhcnNlSW50KHRoYXQuZWxlbWVudC5jc3MoInRvcCIpLCAxMCkgKw0KCQkJCSh0aGF0LnBvc2l0aW9uLnRvcCAtIHRoYXQub3JpZ2luYWxQb3NpdGlvbi50b3ApKSB8fCBudWxsOw0KDQoJCQlpZiAoIW8uYW5pbWF0ZSkgew0KCQkJCXRoaXMuZWxlbWVudC5jc3MoJC5leHRlbmQocywgeyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9KSk7DQoJCQl9DQoNCgkJCXRoYXQuaGVscGVyLmhlaWdodCh0aGF0LnNpemUuaGVpZ2h0KTsNCgkJCXRoYXQuaGVscGVyLndpZHRoKHRoYXQuc2l6ZS53aWR0aCk7DQoNCgkJCWlmICh0aGlzLl9oZWxwZXIgJiYgIW8uYW5pbWF0ZSkgew0KCQkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCk7DQoJCQl9DQoJCX0NCg0KCQkkKCJib2R5IikuY3NzKCJjdXJzb3IiLCAiYXV0byIpOw0KDQoJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktcmVzaXphYmxlLXJlc2l6aW5nIik7DQoNCgkJdGhpcy5fcHJvcGFnYXRlKCJzdG9wIiwgZXZlbnQpOw0KDQoJCWlmICh0aGlzLl9oZWxwZXIpIHsNCgkJCXRoaXMuaGVscGVyLnJlbW92ZSgpOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KDQoJfSwNCg0KCV91cGRhdGVQcmV2UHJvcGVydGllczogZnVuY3Rpb24oKSB7DQoJCXRoaXMucHJldlBvc2l0aW9uID0gew0KCQkJdG9wOiB0aGlzLnBvc2l0aW9uLnRvcCwNCgkJCWxlZnQ6IHRoaXMucG9zaXRpb24ubGVmdA0KCQl9Ow0KCQl0aGlzLnByZXZTaXplID0gew0KCQkJd2lkdGg6IHRoaXMuc2l6ZS53aWR0aCwNCgkJCWhlaWdodDogdGhpcy5zaXplLmhlaWdodA0KCQl9Ow0KCX0sDQoNCglfYXBwbHlDaGFuZ2VzOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByb3BzID0ge307DQoNCgkJaWYgKCB0aGlzLnBvc2l0aW9uLnRvcCAhPT0gdGhpcy5wcmV2UG9zaXRpb24udG9wICkgew0KCQkJcHJvcHMudG9wID0gdGhpcy5wb3NpdGlvbi50b3AgKyAicHgiOw0KCQl9DQoJCWlmICggdGhpcy5wb3NpdGlvbi5sZWZ0ICE9PSB0aGlzLnByZXZQb3NpdGlvbi5sZWZ0ICkgew0KCQkJcHJvcHMubGVmdCA9IHRoaXMucG9zaXRpb24ubGVmdCArICJweCI7DQoJCX0NCgkJaWYgKCB0aGlzLnNpemUud2lkdGggIT09IHRoaXMucHJldlNpemUud2lkdGggKSB7DQoJCQlwcm9wcy53aWR0aCA9IHRoaXMuc2l6ZS53aWR0aCArICJweCI7DQoJCX0NCgkJaWYgKCB0aGlzLnNpemUuaGVpZ2h0ICE9PSB0aGlzLnByZXZTaXplLmhlaWdodCApIHsNCgkJCXByb3BzLmhlaWdodCA9IHRoaXMuc2l6ZS5oZWlnaHQgKyAicHgiOw0KCQl9DQoNCgkJdGhpcy5oZWxwZXIuY3NzKCBwcm9wcyApOw0KDQoJCXJldHVybiBwcm9wczsNCgl9LA0KDQoJX3VwZGF0ZVZpcnR1YWxCb3VuZGFyaWVzOiBmdW5jdGlvbihmb3JjZUFzcGVjdFJhdGlvKSB7DQoJCXZhciBwTWluV2lkdGgsIHBNYXhXaWR0aCwgcE1pbkhlaWdodCwgcE1heEhlaWdodCwgYiwNCgkJCW8gPSB0aGlzLm9wdGlvbnM7DQoNCgkJYiA9IHsNCgkJCW1pbldpZHRoOiB0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKSA/IG8ubWluV2lkdGggOiAwLA0KCQkJbWF4V2lkdGg6IHRoaXMuX2lzTnVtYmVyKG8ubWF4V2lkdGgpID8gby5tYXhXaWR0aCA6IEluZmluaXR5LA0KCQkJbWluSGVpZ2h0OiB0aGlzLl9pc051bWJlcihvLm1pbkhlaWdodCkgPyBvLm1pbkhlaWdodCA6IDAsDQoJCQltYXhIZWlnaHQ6IHRoaXMuX2lzTnVtYmVyKG8ubWF4SGVpZ2h0KSA/IG8ubWF4SGVpZ2h0IDogSW5maW5pdHkNCgkJfTsNCg0KCQlpZiAodGhpcy5fYXNwZWN0UmF0aW8gfHwgZm9yY2VBc3BlY3RSYXRpbykgew0KCQkJcE1pbldpZHRoID0gYi5taW5IZWlnaHQgKiB0aGlzLmFzcGVjdFJhdGlvOw0KCQkJcE1pbkhlaWdodCA9IGIubWluV2lkdGggLyB0aGlzLmFzcGVjdFJhdGlvOw0KCQkJcE1heFdpZHRoID0gYi5tYXhIZWlnaHQgKiB0aGlzLmFzcGVjdFJhdGlvOw0KCQkJcE1heEhlaWdodCA9IGIubWF4V2lkdGggLyB0aGlzLmFzcGVjdFJhdGlvOw0KDQoJCQlpZiAocE1pbldpZHRoID4gYi5taW5XaWR0aCkgew0KCQkJCWIubWluV2lkdGggPSBwTWluV2lkdGg7DQoJCQl9DQoJCQlpZiAocE1pbkhlaWdodCA+IGIubWluSGVpZ2h0KSB7DQoJCQkJYi5taW5IZWlnaHQgPSBwTWluSGVpZ2h0Ow0KCQkJfQ0KCQkJaWYgKHBNYXhXaWR0aCA8IGIubWF4V2lkdGgpIHsNCgkJCQliLm1heFdpZHRoID0gcE1heFdpZHRoOw0KCQkJfQ0KCQkJaWYgKHBNYXhIZWlnaHQgPCBiLm1heEhlaWdodCkgew0KCQkJCWIubWF4SGVpZ2h0ID0gcE1heEhlaWdodDsNCgkJCX0NCgkJfQ0KCQl0aGlzLl92Qm91bmRhcmllcyA9IGI7DQoJfSwNCg0KCV91cGRhdGVDYWNoZTogZnVuY3Rpb24oZGF0YSkgew0KCQl0aGlzLm9mZnNldCA9IHRoaXMuaGVscGVyLm9mZnNldCgpOw0KCQlpZiAodGhpcy5faXNOdW1iZXIoZGF0YS5sZWZ0KSkgew0KCQkJdGhpcy5wb3NpdGlvbi5sZWZ0ID0gZGF0YS5sZWZ0Ow0KCQl9DQoJCWlmICh0aGlzLl9pc051bWJlcihkYXRhLnRvcCkpIHsNCgkJCXRoaXMucG9zaXRpb24udG9wID0gZGF0YS50b3A7DQoJCX0NCgkJaWYgKHRoaXMuX2lzTnVtYmVyKGRhdGEuaGVpZ2h0KSkgew0KCQkJdGhpcy5zaXplLmhlaWdodCA9IGRhdGEuaGVpZ2h0Ow0KCQl9DQoJCWlmICh0aGlzLl9pc051bWJlcihkYXRhLndpZHRoKSkgew0KCQkJdGhpcy5zaXplLndpZHRoID0gZGF0YS53aWR0aDsNCgkJfQ0KCX0sDQoNCglfdXBkYXRlUmF0aW86IGZ1bmN0aW9uKCBkYXRhICkgew0KDQoJCXZhciBjcG9zID0gdGhpcy5wb3NpdGlvbiwNCgkJCWNzaXplID0gdGhpcy5zaXplLA0KCQkJYSA9IHRoaXMuYXhpczsNCg0KCQlpZiAodGhpcy5faXNOdW1iZXIoZGF0YS5oZWlnaHQpKSB7DQoJCQlkYXRhLndpZHRoID0gKGRhdGEuaGVpZ2h0ICogdGhpcy5hc3BlY3RSYXRpbyk7DQoJCX0gZWxzZSBpZiAodGhpcy5faXNOdW1iZXIoZGF0YS53aWR0aCkpIHsNCgkJCWRhdGEuaGVpZ2h0ID0gKGRhdGEud2lkdGggLyB0aGlzLmFzcGVjdFJhdGlvKTsNCgkJfQ0KDQoJCWlmIChhID09PSAic3ciKSB7DQoJCQlkYXRhLmxlZnQgPSBjcG9zLmxlZnQgKyAoY3NpemUud2lkdGggLSBkYXRhLndpZHRoKTsNCgkJCWRhdGEudG9wID0gbnVsbDsNCgkJfQ0KCQlpZiAoYSA9PT0gIm53Iikgew0KCQkJZGF0YS50b3AgPSBjcG9zLnRvcCArIChjc2l6ZS5oZWlnaHQgLSBkYXRhLmhlaWdodCk7DQoJCQlkYXRhLmxlZnQgPSBjcG9zLmxlZnQgKyAoY3NpemUud2lkdGggLSBkYXRhLndpZHRoKTsNCgkJfQ0KDQoJCXJldHVybiBkYXRhOw0KCX0sDQoNCglfcmVzcGVjdFNpemU6IGZ1bmN0aW9uKCBkYXRhICkgew0KDQoJCXZhciBvID0gdGhpcy5fdkJvdW5kYXJpZXMsDQoJCQlhID0gdGhpcy5heGlzLA0KCQkJaXNtYXh3ID0gdGhpcy5faXNOdW1iZXIoZGF0YS53aWR0aCkgJiYgby5tYXhXaWR0aCAmJiAoby5tYXhXaWR0aCA8IGRhdGEud2lkdGgpLA0KCQkJaXNtYXhoID0gdGhpcy5faXNOdW1iZXIoZGF0YS5oZWlnaHQpICYmIG8ubWF4SGVpZ2h0ICYmIChvLm1heEhlaWdodCA8IGRhdGEuaGVpZ2h0KSwNCgkJCWlzbWludyA9IHRoaXMuX2lzTnVtYmVyKGRhdGEud2lkdGgpICYmIG8ubWluV2lkdGggJiYgKG8ubWluV2lkdGggPiBkYXRhLndpZHRoKSwNCgkJCWlzbWluaCA9IHRoaXMuX2lzTnVtYmVyKGRhdGEuaGVpZ2h0KSAmJiBvLm1pbkhlaWdodCAmJiAoby5taW5IZWlnaHQgPiBkYXRhLmhlaWdodCksDQoJCQlkdyA9IHRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0ICsgdGhpcy5vcmlnaW5hbFNpemUud2lkdGgsDQoJCQlkaCA9IHRoaXMucG9zaXRpb24udG9wICsgdGhpcy5zaXplLmhlaWdodCwNCgkJCWN3ID0gL3N3fG53fHcvLnRlc3QoYSksIGNoID0gL253fG5lfG4vLnRlc3QoYSk7DQoJCWlmIChpc21pbncpIHsNCgkJCWRhdGEud2lkdGggPSBvLm1pbldpZHRoOw0KCQl9DQoJCWlmIChpc21pbmgpIHsNCgkJCWRhdGEuaGVpZ2h0ID0gby5taW5IZWlnaHQ7DQoJCX0NCgkJaWYgKGlzbWF4dykgew0KCQkJZGF0YS53aWR0aCA9IG8ubWF4V2lkdGg7DQoJCX0NCgkJaWYgKGlzbWF4aCkgew0KCQkJZGF0YS5oZWlnaHQgPSBvLm1heEhlaWdodDsNCgkJfQ0KDQoJCWlmIChpc21pbncgJiYgY3cpIHsNCgkJCWRhdGEubGVmdCA9IGR3IC0gby5taW5XaWR0aDsNCgkJfQ0KCQlpZiAoaXNtYXh3ICYmIGN3KSB7DQoJCQlkYXRhLmxlZnQgPSBkdyAtIG8ubWF4V2lkdGg7DQoJCX0NCgkJaWYgKGlzbWluaCAmJiBjaCkgew0KCQkJZGF0YS50b3AgPSBkaCAtIG8ubWluSGVpZ2h0Ow0KCQl9DQoJCWlmIChpc21heGggJiYgY2gpIHsNCgkJCWRhdGEudG9wID0gZGggLSBvLm1heEhlaWdodDsNCgkJfQ0KDQoJCS8vIEZpeGluZyBqdW1wIGVycm9yIG9uIHRvcC9sZWZ0IC0gYnVnICMyMzMwDQoJCWlmICghZGF0YS53aWR0aCAmJiAhZGF0YS5oZWlnaHQgJiYgIWRhdGEubGVmdCAmJiBkYXRhLnRvcCkgew0KCQkJZGF0YS50b3AgPSBudWxsOw0KCQl9IGVsc2UgaWYgKCFkYXRhLndpZHRoICYmICFkYXRhLmhlaWdodCAmJiAhZGF0YS50b3AgJiYgZGF0YS5sZWZ0KSB7DQoJCQlkYXRhLmxlZnQgPSBudWxsOw0KCQl9DQoNCgkJcmV0dXJuIGRhdGE7DQoJfSwNCg0KCV9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgaSA9IDAsDQoJCQl3aWR0aHMgPSBbXSwNCgkJCWJvcmRlcnMgPSBbDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJUb3BXaWR0aCIgKSwNCgkJCQllbGVtZW50LmNzcyggImJvcmRlclJpZ2h0V2lkdGgiICksDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJCb3R0b21XaWR0aCIgKSwNCgkJCQllbGVtZW50LmNzcyggImJvcmRlckxlZnRXaWR0aCIgKQ0KCQkJXSwNCgkJCXBhZGRpbmdzID0gWw0KCQkJCWVsZW1lbnQuY3NzKCAicGFkZGluZ1RvcCIgKSwNCgkJCQllbGVtZW50LmNzcyggInBhZGRpbmdSaWdodCIgKSwNCgkJCQllbGVtZW50LmNzcyggInBhZGRpbmdCb3R0b20iICksDQoJCQkJZWxlbWVudC5jc3MoICJwYWRkaW5nTGVmdCIgKQ0KCQkJXTsNCg0KCQlmb3IgKCA7IGkgPCA0OyBpKysgKSB7DQoJCQl3aWR0aHNbIGkgXSA9ICggcGFyc2VJbnQoIGJvcmRlcnNbIGkgXSwgMTAgKSB8fCAwICk7DQoJCQl3aWR0aHNbIGkgXSArPSAoIHBhcnNlSW50KCBwYWRkaW5nc1sgaSBdLCAxMCApIHx8IDAgKTsNCgkJfQ0KDQoJCXJldHVybiB7DQoJCQloZWlnaHQ6IHdpZHRoc1sgMCBdICsgd2lkdGhzWyAyIF0sDQoJCQl3aWR0aDogd2lkdGhzWyAxIF0gKyB3aWR0aHNbIDMgXQ0KCQl9Ow0KCX0sDQoNCglfcHJvcG9ydGlvbmFsbHlSZXNpemU6IGZ1bmN0aW9uKCkgew0KDQoJCWlmICghdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGgpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciBwcmVsLA0KCQkJaSA9IDAsDQoJCQllbGVtZW50ID0gdGhpcy5oZWxwZXIgfHwgdGhpcy5lbGVtZW50Ow0KDQoJCWZvciAoIDsgaSA8IHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCg0KCQkJcHJlbCA9IHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHNbaV07DQoNCgkJCS8vIFRPRE86IFNlZW1zIGxpa2UgYSBidWcgdG8gY2FjaGUgdGhpcy5vdXRlckRpbWVuc2lvbnMNCgkJCS8vIGNvbnNpZGVyaW5nIHRoYXQgd2UgYXJlIGluIGEgbG9vcC4NCgkJCWlmICghdGhpcy5vdXRlckRpbWVuc2lvbnMpIHsNCgkJCQl0aGlzLm91dGVyRGltZW5zaW9ucyA9IHRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyggcHJlbCApOw0KCQkJfQ0KDQoJCQlwcmVsLmNzcyh7DQoJCQkJaGVpZ2h0OiAoZWxlbWVudC5oZWlnaHQoKSAtIHRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodCkgfHwgMCwNCgkJCQl3aWR0aDogKGVsZW1lbnQud2lkdGgoKSAtIHRoaXMub3V0ZXJEaW1lbnNpb25zLndpZHRoKSB8fCAwDQoJCQl9KTsNCg0KCQl9DQoNCgl9LA0KDQoJX3JlbmRlclByb3h5OiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgZWwgPSB0aGlzLmVsZW1lbnQsIG8gPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMuZWxlbWVudE9mZnNldCA9IGVsLm9mZnNldCgpOw0KDQoJCWlmICh0aGlzLl9oZWxwZXIpIHsNCg0KCQkJdGhpcy5oZWxwZXIgPSB0aGlzLmhlbHBlciB8fCAkKCI8ZGl2IHN0eWxlPSdvdmVyZmxvdzpoaWRkZW47Jz48L2Rpdj4iKTsNCg0KCQkJdGhpcy5oZWxwZXIuYWRkQ2xhc3ModGhpcy5faGVscGVyKS5jc3Moew0KCQkJCXdpZHRoOiB0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpIC0gMSwNCgkJCQloZWlnaHQ6IHRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpIC0gMSwNCgkJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCQlsZWZ0OiB0aGlzLmVsZW1lbnRPZmZzZXQubGVmdCArICJweCIsDQoJCQkJdG9wOiB0aGlzLmVsZW1lbnRPZmZzZXQudG9wICsgInB4IiwNCgkJCQl6SW5kZXg6ICsrby56SW5kZXggLy9UT0RPOiBEb24ndCBtb2RpZnkgb3B0aW9uDQoJCQl9KTsNCg0KCQkJdGhpcy5oZWxwZXINCgkJCQkuYXBwZW5kVG8oImJvZHkiKQ0KCQkJCS5kaXNhYmxlU2VsZWN0aW9uKCk7DQoNCgkJfSBlbHNlIHsNCgkJCXRoaXMuaGVscGVyID0gdGhpcy5lbGVtZW50Ow0KCQl9DQoNCgl9LA0KDQoJX2NoYW5nZTogew0KCQllOiBmdW5jdGlvbihldmVudCwgZHgpIHsNCgkJCXJldHVybiB7IHdpZHRoOiB0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aCArIGR4IH07DQoJCX0sDQoJCXc6IGZ1bmN0aW9uKGV2ZW50LCBkeCkgew0KCQkJdmFyIGNzID0gdGhpcy5vcmlnaW5hbFNpemUsIHNwID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uOw0KCQkJcmV0dXJuIHsgbGVmdDogc3AubGVmdCArIGR4LCB3aWR0aDogY3Mud2lkdGggLSBkeCB9Ow0KCQl9LA0KCQluOiBmdW5jdGlvbihldmVudCwgZHgsIGR5KSB7DQoJCQl2YXIgY3MgPSB0aGlzLm9yaWdpbmFsU2l6ZSwgc3AgPSB0aGlzLm9yaWdpbmFsUG9zaXRpb247DQoJCQlyZXR1cm4geyB0b3A6IHNwLnRvcCArIGR5LCBoZWlnaHQ6IGNzLmhlaWdodCAtIGR5IH07DQoJCX0sDQoJCXM6IGZ1bmN0aW9uKGV2ZW50LCBkeCwgZHkpIHsNCgkJCXJldHVybiB7IGhlaWdodDogdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0ICsgZHkgfTsNCgkJfSwNCgkJc2U6IGZ1bmN0aW9uKGV2ZW50LCBkeCwgZHkpIHsNCgkJCXJldHVybiAkLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLA0KCQkJCXRoaXMuX2NoYW5nZS5lLmFwcGx5KHRoaXMsIFsgZXZlbnQsIGR4LCBkeSBdKSk7DQoJCX0sDQoJCXN3OiBmdW5jdGlvbihldmVudCwgZHgsIGR5KSB7DQoJCQlyZXR1cm4gJC5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwNCgkJCQl0aGlzLl9jaGFuZ2Uudy5hcHBseSh0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSkpOw0KCQl9LA0KCQluZTogZnVuY3Rpb24oZXZlbnQsIGR4LCBkeSkgew0KCQkJcmV0dXJuICQuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksDQoJCQkJdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcywgWyBldmVudCwgZHgsIGR5IF0pKTsNCgkJfSwNCgkJbnc6IGZ1bmN0aW9uKGV2ZW50LCBkeCwgZHkpIHsNCgkJCXJldHVybiAkLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLCBhcmd1bWVudHMpLA0KCQkJCXRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsIFsgZXZlbnQsIGR4LCBkeSBdKSk7DQoJCX0NCgl9LA0KDQoJX3Byb3BhZ2F0ZTogZnVuY3Rpb24obiwgZXZlbnQpIHsNCgkJJC51aS5wbHVnaW4uY2FsbCh0aGlzLCBuLCBbIGV2ZW50LCB0aGlzLnVpKCkgXSk7DQoJCShuICE9PSAicmVzaXplIiAmJiB0aGlzLl90cmlnZ2VyKG4sIGV2ZW50LCB0aGlzLnVpKCkpKTsNCgl9LA0KDQoJcGx1Z2luczoge30sDQoNCgl1aTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQlvcmlnaW5hbEVsZW1lbnQ6IHRoaXMub3JpZ2luYWxFbGVtZW50LA0KCQkJZWxlbWVudDogdGhpcy5lbGVtZW50LA0KCQkJaGVscGVyOiB0aGlzLmhlbHBlciwNCgkJCXBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLA0KCQkJc2l6ZTogdGhpcy5zaXplLA0KCQkJb3JpZ2luYWxTaXplOiB0aGlzLm9yaWdpbmFsU2l6ZSwNCgkJCW9yaWdpbmFsUG9zaXRpb246IHRoaXMub3JpZ2luYWxQb3NpdGlvbg0KCQl9Ow0KCX0NCg0KfSk7DQoNCi8qDQogKiBSZXNpemFibGUgRXh0ZW5zaW9ucw0KICovDQoNCiQudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwgImFuaW1hdGUiLCB7DQoNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB0aGF0ID0gJCh0aGlzKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQlwciA9IHRoYXQuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMsDQoJCQlpc3RhID0gcHIubGVuZ3RoICYmICgvdGV4dGFyZWEvaSkudGVzdChwclswXS5ub2RlTmFtZSksDQoJCQlzb2Zmc2V0aCA9IGlzdGEgJiYgdGhhdC5faGFzU2Nyb2xsKHByWzBdLCAibGVmdCIpID8gMCA6IHRoYXQuc2l6ZURpZmYuaGVpZ2h0LA0KCQkJc29mZnNldHcgPSBpc3RhID8gMCA6IHRoYXQuc2l6ZURpZmYud2lkdGgsDQoJCQlzdHlsZSA9IHsgd2lkdGg6ICh0aGF0LnNpemUud2lkdGggLSBzb2Zmc2V0dyksIGhlaWdodDogKHRoYXQuc2l6ZS5oZWlnaHQgLSBzb2Zmc2V0aCkgfSwNCgkJCWxlZnQgPSAocGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygibGVmdCIpLCAxMCkgKw0KCQkJCSh0aGF0LnBvc2l0aW9uLmxlZnQgLSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24ubGVmdCkpIHx8IG51bGwsDQoJCQl0b3AgPSAocGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygidG9wIiksIDEwKSArDQoJCQkJKHRoYXQucG9zaXRpb24udG9wIC0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLnRvcCkpIHx8IG51bGw7DQoNCgkJdGhhdC5lbGVtZW50LmFuaW1hdGUoDQoJCQkkLmV4dGVuZChzdHlsZSwgdG9wICYmIGxlZnQgPyB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH0gOiB7fSksIHsNCgkJCQlkdXJhdGlvbjogby5hbmltYXRlRHVyYXRpb24sDQoJCQkJZWFzaW5nOiBvLmFuaW1hdGVFYXNpbmcsDQoJCQkJc3RlcDogZnVuY3Rpb24oKSB7DQoNCgkJCQkJdmFyIGRhdGEgPSB7DQoJCQkJCQl3aWR0aDogcGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygid2lkdGgiKSwgMTApLA0KCQkJCQkJaGVpZ2h0OiBwYXJzZUludCh0aGF0LmVsZW1lbnQuY3NzKCJoZWlnaHQiKSwgMTApLA0KCQkJCQkJdG9wOiBwYXJzZUludCh0aGF0LmVsZW1lbnQuY3NzKCJ0b3AiKSwgMTApLA0KCQkJCQkJbGVmdDogcGFyc2VJbnQodGhhdC5lbGVtZW50LmNzcygibGVmdCIpLCAxMCkNCgkJCQkJfTsNCg0KCQkJCQlpZiAocHIgJiYgcHIubGVuZ3RoKSB7DQoJCQkJCQkkKHByWzBdKS5jc3MoeyB3aWR0aDogZGF0YS53aWR0aCwgaGVpZ2h0OiBkYXRhLmhlaWdodCB9KTsNCgkJCQkJfQ0KDQoJCQkJCS8vIHByb3BhZ2F0aW5nIHJlc2l6ZSwgYW5kIHVwZGF0aW5nIHZhbHVlcyBmb3IgZWFjaCBhbmltYXRpb24gc3RlcA0KCQkJCQl0aGF0Ll91cGRhdGVDYWNoZShkYXRhKTsNCgkJCQkJdGhhdC5fcHJvcGFnYXRlKCJyZXNpemUiLCBldmVudCk7DQoNCgkJCQl9DQoJCQl9DQoJCSk7DQoJfQ0KDQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCAicmVzaXphYmxlIiwgImNvbnRhaW5tZW50Iiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCwgcCwgY28sIGNoLCBjdywgd2lkdGgsIGhlaWdodCwNCgkJCXRoYXQgPSAkKCB0aGlzICkucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJZWwgPSB0aGF0LmVsZW1lbnQsDQoJCQlvYyA9IG8uY29udGFpbm1lbnQsDQoJCQljZSA9ICggb2MgaW5zdGFuY2VvZiAkICkgPyBvYy5nZXQoIDAgKSA6ICggL3BhcmVudC8udGVzdCggb2MgKSApID8gZWwucGFyZW50KCkuZ2V0KCAwICkgOiBvYzsNCg0KCQlpZiAoICFjZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoYXQuY29udGFpbmVyRWxlbWVudCA9ICQoIGNlICk7DQoNCgkJaWYgKCAvZG9jdW1lbnQvLnRlc3QoIG9jICkgfHwgb2MgPT09IGRvY3VtZW50ICkgew0KCQkJdGhhdC5jb250YWluZXJPZmZzZXQgPSB7DQoJCQkJbGVmdDogMCwNCgkJCQl0b3A6IDANCgkJCX07DQoJCQl0aGF0LmNvbnRhaW5lclBvc2l0aW9uID0gew0KCQkJCWxlZnQ6IDAsDQoJCQkJdG9wOiAwDQoJCQl9Ow0KDQoJCQl0aGF0LnBhcmVudERhdGEgPSB7DQoJCQkJZWxlbWVudDogJCggZG9jdW1lbnQgKSwNCgkJCQlsZWZ0OiAwLA0KCQkJCXRvcDogMCwNCgkJCQl3aWR0aDogJCggZG9jdW1lbnQgKS53aWR0aCgpLA0KCQkJCWhlaWdodDogJCggZG9jdW1lbnQgKS5oZWlnaHQoKSB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0DQoJCQl9Ow0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudCA9ICQoIGNlICk7DQoJCQlwID0gW107DQoJCQkkKFsgIlRvcCIsICJSaWdodCIsICJMZWZ0IiwgIkJvdHRvbSIgXSkuZWFjaChmdW5jdGlvbiggaSwgbmFtZSApIHsNCgkJCQlwWyBpIF0gPSB0aGF0Ll9udW0oIGVsZW1lbnQuY3NzKCAicGFkZGluZyIgKyBuYW1lICkgKTsNCgkJCX0pOw0KDQoJCQl0aGF0LmNvbnRhaW5lck9mZnNldCA9IGVsZW1lbnQub2Zmc2V0KCk7DQoJCQl0aGF0LmNvbnRhaW5lclBvc2l0aW9uID0gZWxlbWVudC5wb3NpdGlvbigpOw0KCQkJdGhhdC5jb250YWluZXJTaXplID0gew0KCQkJCWhlaWdodDogKCBlbGVtZW50LmlubmVySGVpZ2h0KCkgLSBwWyAzIF0gKSwNCgkJCQl3aWR0aDogKCBlbGVtZW50LmlubmVyV2lkdGgoKSAtIHBbIDEgXSApDQoJCQl9Ow0KDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0Ow0KCQkJY2ggPSB0aGF0LmNvbnRhaW5lclNpemUuaGVpZ2h0Ow0KCQkJY3cgPSB0aGF0LmNvbnRhaW5lclNpemUud2lkdGg7DQoJCQl3aWR0aCA9ICggdGhhdC5faGFzU2Nyb2xsICggY2UsICJsZWZ0IiApID8gY2Uuc2Nyb2xsV2lkdGggOiBjdyApOw0KCQkJaGVpZ2h0ID0gKCB0aGF0Ll9oYXNTY3JvbGwgKCBjZSApID8gY2Uuc2Nyb2xsSGVpZ2h0IDogY2ggKSA7DQoNCgkJCXRoYXQucGFyZW50RGF0YSA9IHsNCgkJCQllbGVtZW50OiBjZSwNCgkJCQlsZWZ0OiBjby5sZWZ0LA0KCQkJCXRvcDogY28udG9wLA0KCQkJCXdpZHRoOiB3aWR0aCwNCgkJCQloZWlnaHQ6IGhlaWdodA0KCQkJfTsNCgkJfQ0KCX0sDQoNCglyZXNpemU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHdvc2V0LCBob3NldCwgaXNQYXJlbnQsIGlzT2Zmc2V0UmVsYXRpdmUsDQoJCQl0aGF0ID0gJCggdGhpcyApLnJlc2l6YWJsZSggImluc3RhbmNlIiApLA0KCQkJbyA9IHRoYXQub3B0aW9ucywNCgkJCWNvID0gdGhhdC5jb250YWluZXJPZmZzZXQsDQoJCQljcCA9IHRoYXQucG9zaXRpb24sDQoJCQlwUmF0aW8gPSB0aGF0Ll9hc3BlY3RSYXRpbyB8fCBldmVudC5zaGlmdEtleSwNCgkJCWNvcCA9IHsNCgkJCQl0b3A6IDAsDQoJCQkJbGVmdDogMA0KCQkJfSwNCgkJCWNlID0gdGhhdC5jb250YWluZXJFbGVtZW50LA0KCQkJY29udGludWVSZXNpemUgPSB0cnVlOw0KDQoJCWlmICggY2VbIDAgXSAhPT0gZG9jdW1lbnQgJiYgKCAvc3RhdGljLyApLnRlc3QoIGNlLmNzcyggInBvc2l0aW9uIiApICkgKSB7DQoJCQljb3AgPSBjbzsNCgkJfQ0KDQoJCWlmICggY3AubGVmdCA8ICggdGhhdC5faGVscGVyID8gY28ubGVmdCA6IDAgKSApIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IHRoYXQuc2l6ZS53aWR0aCArDQoJCQkJKCB0aGF0Ll9oZWxwZXIgPw0KCQkJCQkoIHRoYXQucG9zaXRpb24ubGVmdCAtIGNvLmxlZnQgKSA6DQoJCQkJCSggdGhhdC5wb3NpdGlvbi5sZWZ0IC0gY29wLmxlZnQgKSApOw0KDQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUuaGVpZ2h0ID0gdGhhdC5zaXplLndpZHRoIC8gdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gby5oZWxwZXIgPyBjby5sZWZ0IDogMDsNCgkJfQ0KDQoJCWlmICggY3AudG9wIDwgKCB0aGF0Ll9oZWxwZXIgPyBjby50b3AgOiAwICkgKSB7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gdGhhdC5zaXplLmhlaWdodCArDQoJCQkJKCB0aGF0Ll9oZWxwZXIgPw0KCQkJCQkoIHRoYXQucG9zaXRpb24udG9wIC0gY28udG9wICkgOg0KCQkJCQl0aGF0LnBvc2l0aW9uLnRvcCApOw0KDQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnNpemUuaGVpZ2h0ICogdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQkJdGhhdC5wb3NpdGlvbi50b3AgPSB0aGF0Ll9oZWxwZXIgPyBjby50b3AgOiAwOw0KCQl9DQoNCgkJaXNQYXJlbnQgPSB0aGF0LmNvbnRhaW5lckVsZW1lbnQuZ2V0KCAwICkgPT09IHRoYXQuZWxlbWVudC5wYXJlbnQoKS5nZXQoIDAgKTsNCgkJaXNPZmZzZXRSZWxhdGl2ZSA9IC9yZWxhdGl2ZXxhYnNvbHV0ZS8udGVzdCggdGhhdC5jb250YWluZXJFbGVtZW50LmNzcyggInBvc2l0aW9uIiApICk7DQoNCgkJaWYgKCBpc1BhcmVudCAmJiBpc09mZnNldFJlbGF0aXZlICkgew0KCQkJdGhhdC5vZmZzZXQubGVmdCA9IHRoYXQucGFyZW50RGF0YS5sZWZ0ICsgdGhhdC5wb3NpdGlvbi5sZWZ0Ow0KCQkJdGhhdC5vZmZzZXQudG9wID0gdGhhdC5wYXJlbnREYXRhLnRvcCArIHRoYXQucG9zaXRpb24udG9wOw0KCQl9IGVsc2Ugew0KCQkJdGhhdC5vZmZzZXQubGVmdCA9IHRoYXQuZWxlbWVudC5vZmZzZXQoKS5sZWZ0Ow0KCQkJdGhhdC5vZmZzZXQudG9wID0gdGhhdC5lbGVtZW50Lm9mZnNldCgpLnRvcDsNCgkJfQ0KDQoJCXdvc2V0ID0gTWF0aC5hYnMoIHRoYXQuc2l6ZURpZmYud2lkdGggKw0KCQkJKHRoYXQuX2hlbHBlciA/DQoJCQkJdGhhdC5vZmZzZXQubGVmdCAtIGNvcC5sZWZ0IDoNCgkJCQkodGhhdC5vZmZzZXQubGVmdCAtIGNvLmxlZnQpKSApOw0KDQoJCWhvc2V0ID0gTWF0aC5hYnMoIHRoYXQuc2l6ZURpZmYuaGVpZ2h0ICsNCgkJCSh0aGF0Ll9oZWxwZXIgPw0KCQkJCXRoYXQub2Zmc2V0LnRvcCAtIGNvcC50b3AgOg0KCQkJCSh0aGF0Lm9mZnNldC50b3AgLSBjby50b3ApKSApOw0KDQoJCWlmICggd29zZXQgKyB0aGF0LnNpemUud2lkdGggPj0gdGhhdC5wYXJlbnREYXRhLndpZHRoICkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gdGhhdC5wYXJlbnREYXRhLndpZHRoIC0gd29zZXQ7DQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUuaGVpZ2h0ID0gdGhhdC5zaXplLndpZHRoIC8gdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBob3NldCArIHRoYXQuc2l6ZS5oZWlnaHQgPj0gdGhhdC5wYXJlbnREYXRhLmhlaWdodCApIHsNCgkJCXRoYXQuc2l6ZS5oZWlnaHQgPSB0aGF0LnBhcmVudERhdGEuaGVpZ2h0IC0gaG9zZXQ7DQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnNpemUuaGVpZ2h0ICogdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCAhY29udGludWVSZXNpemUgKSB7DQoJCQl0aGF0LnBvc2l0aW9uLmxlZnQgPSB0aGF0LnByZXZQb3NpdGlvbi5sZWZ0Ow0KCQkJdGhhdC5wb3NpdGlvbi50b3AgPSB0aGF0LnByZXZQb3NpdGlvbi50b3A7DQoJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnByZXZTaXplLndpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQucHJldlNpemUuaGVpZ2h0Ow0KCQl9DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0LA0KCQkJY29wID0gdGhhdC5jb250YWluZXJQb3NpdGlvbiwNCgkJCWNlID0gdGhhdC5jb250YWluZXJFbGVtZW50LA0KCQkJaGVscGVyID0gJCggdGhhdC5oZWxwZXIgKSwNCgkJCWhvID0gaGVscGVyLm9mZnNldCgpLA0KCQkJdyA9IGhlbHBlci5vdXRlcldpZHRoKCkgLSB0aGF0LnNpemVEaWZmLndpZHRoLA0KCQkJaCA9IGhlbHBlci5vdXRlckhlaWdodCgpIC0gdGhhdC5zaXplRGlmZi5oZWlnaHQ7DQoNCgkJaWYgKCB0aGF0Ll9oZWxwZXIgJiYgIW8uYW5pbWF0ZSAmJiAoIC9yZWxhdGl2ZS8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJJCggdGhpcyApLmNzcyh7DQoJCQkJbGVmdDogaG8ubGVmdCAtIGNvcC5sZWZ0IC0gY28ubGVmdCwNCgkJCQl3aWR0aDogdywNCgkJCQloZWlnaHQ6IGgNCgkJCX0pOw0KCQl9DQoNCgkJaWYgKCB0aGF0Ll9oZWxwZXIgJiYgIW8uYW5pbWF0ZSAmJiAoIC9zdGF0aWMvICkudGVzdCggY2UuY3NzKCAicG9zaXRpb24iICkgKSApIHsNCgkJCSQoIHRoaXMgKS5jc3Moew0KCQkJCWxlZnQ6IGhvLmxlZnQgLSBjb3AubGVmdCAtIGNvLmxlZnQsDQoJCQkJd2lkdGg6IHcsDQoJCQkJaGVpZ2h0OiBoDQoJCQl9KTsNCgkJfQ0KCX0NCn0pOw0KDQokLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsICJhbHNvUmVzaXplIiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zOw0KDQoJCSQoby5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGVsID0gJCh0aGlzKTsNCgkJCWVsLmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIiwgew0KCQkJCXdpZHRoOiBwYXJzZUludChlbC53aWR0aCgpLCAxMCksIGhlaWdodDogcGFyc2VJbnQoZWwuaGVpZ2h0KCksIDEwKSwNCgkJCQlsZWZ0OiBwYXJzZUludChlbC5jc3MoImxlZnQiKSwgMTApLCB0b3A6IHBhcnNlSW50KGVsLmNzcygidG9wIiksIDEwKQ0KCQkJfSk7DQoJCX0pOw0KCX0sDQoNCglyZXNpemU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJb3MgPSB0aGF0Lm9yaWdpbmFsU2l6ZSwNCgkJCW9wID0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLA0KCQkJZGVsdGEgPSB7DQoJCQkJaGVpZ2h0OiAodGhhdC5zaXplLmhlaWdodCAtIG9zLmhlaWdodCkgfHwgMCwNCgkJCQl3aWR0aDogKHRoYXQuc2l6ZS53aWR0aCAtIG9zLndpZHRoKSB8fCAwLA0KCQkJCXRvcDogKHRoYXQucG9zaXRpb24udG9wIC0gb3AudG9wKSB8fCAwLA0KCQkJCWxlZnQ6ICh0aGF0LnBvc2l0aW9uLmxlZnQgLSBvcC5sZWZ0KSB8fCAwDQoJCQl9Ow0KDQoJCQkkKG8uYWxzb1Jlc2l6ZSkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgZWwgPSAkKHRoaXMpLCBzdGFydCA9ICQodGhpcykuZGF0YSgidWktcmVzaXphYmxlLWFsc29yZXNpemUiKSwgc3R5bGUgPSB7fSwNCgkJCQkJY3NzID0gZWwucGFyZW50cyh1aS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aCA/DQoJCQkJCQkJWyAid2lkdGgiLCAiaGVpZ2h0IiBdIDoNCgkJCQkJCQlbICJ3aWR0aCIsICJoZWlnaHQiLCAidG9wIiwgImxlZnQiIF07DQoNCgkJCQkkLmVhY2goY3NzLCBmdW5jdGlvbihpLCBwcm9wKSB7DQoJCQkJCXZhciBzdW0gPSAoc3RhcnRbcHJvcF0gfHwgMCkgKyAoZGVsdGFbcHJvcF0gfHwgMCk7DQoJCQkJCWlmIChzdW0gJiYgc3VtID49IDApIHsNCgkJCQkJCXN0eWxlW3Byb3BdID0gc3VtIHx8IG51bGw7DQoJCQkJCX0NCgkJCQl9KTsNCg0KCQkJCWVsLmNzcyhzdHlsZSk7DQoJCQl9KTsNCgl9LA0KDQoJc3RvcDogZnVuY3Rpb24oKSB7DQoJCSQodGhpcykucmVtb3ZlRGF0YSgicmVzaXphYmxlLWFsc29yZXNpemUiKTsNCgl9DQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJyZXNpemFibGUiLCAiZ2hvc3QiLCB7DQoNCglzdGFydDogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIHRoYXQgPSAkKHRoaXMpLnJlc2l6YWJsZSggImluc3RhbmNlIiApLCBvID0gdGhhdC5vcHRpb25zLCBjcyA9IHRoYXQuc2l6ZTsNCg0KCQl0aGF0Lmdob3N0ID0gdGhhdC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKTsNCgkJdGhhdC5naG9zdA0KCQkJLmNzcyh7DQoJCQkJb3BhY2l0eTogMC4yNSwNCgkJCQlkaXNwbGF5OiAiYmxvY2siLA0KCQkJCXBvc2l0aW9uOiAicmVsYXRpdmUiLA0KCQkJCWhlaWdodDogY3MuaGVpZ2h0LA0KCQkJCXdpZHRoOiBjcy53aWR0aCwNCgkJCQltYXJnaW46IDAsDQoJCQkJbGVmdDogMCwNCgkJCQl0b3A6IDANCgkJCX0pDQoJCQkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpDQoJCQkuYWRkQ2xhc3ModHlwZW9mIG8uZ2hvc3QgPT09ICJzdHJpbmciID8gby5naG9zdCA6ICIiKTsNCg0KCQl0aGF0Lmdob3N0LmFwcGVuZFRvKHRoYXQuaGVscGVyKTsNCg0KCX0sDQoNCglyZXNpemU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICk7DQoJCWlmICh0aGF0Lmdob3N0KSB7DQoJCQl0aGF0Lmdob3N0LmNzcyh7DQoJCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQkJaGVpZ2h0OiB0aGF0LnNpemUuaGVpZ2h0LA0KCQkJCXdpZHRoOiB0aGF0LnNpemUud2lkdGgNCgkJCX0pOw0KCQl9DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQodGhpcykucmVzaXphYmxlKCAiaW5zdGFuY2UiICk7DQoJCWlmICh0aGF0Lmdob3N0ICYmIHRoYXQuaGVscGVyKSB7DQoJCQl0aGF0LmhlbHBlci5nZXQoMCkucmVtb3ZlQ2hpbGQodGhhdC5naG9zdC5nZXQoMCkpOw0KCQl9DQoJfQ0KDQp9KTsNCg0KJC51aS5wbHVnaW4uYWRkKCJyZXNpemFibGUiLCAiZ3JpZCIsIHsNCg0KCXJlc2l6ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBvdXRlckRpbWVuc2lvbnMsDQoJCQl0aGF0ID0gJCh0aGlzKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljcyA9IHRoYXQuc2l6ZSwNCgkJCW9zID0gdGhhdC5vcmlnaW5hbFNpemUsDQoJCQlvcCA9IHRoYXQub3JpZ2luYWxQb3NpdGlvbiwNCgkJCWEgPSB0aGF0LmF4aXMsDQoJCQlncmlkID0gdHlwZW9mIG8uZ3JpZCA9PT0gIm51bWJlciIgPyBbIG8uZ3JpZCwgby5ncmlkIF0gOiBvLmdyaWQsDQoJCQlncmlkWCA9IChncmlkWzBdIHx8IDEpLA0KCQkJZ3JpZFkgPSAoZ3JpZFsxXSB8fCAxKSwNCgkJCW94ID0gTWF0aC5yb3VuZCgoY3Mud2lkdGggLSBvcy53aWR0aCkgLyBncmlkWCkgKiBncmlkWCwNCgkJCW95ID0gTWF0aC5yb3VuZCgoY3MuaGVpZ2h0IC0gb3MuaGVpZ2h0KSAvIGdyaWRZKSAqIGdyaWRZLA0KCQkJbmV3V2lkdGggPSBvcy53aWR0aCArIG94LA0KCQkJbmV3SGVpZ2h0ID0gb3MuaGVpZ2h0ICsgb3ksDQoJCQlpc01heFdpZHRoID0gby5tYXhXaWR0aCAmJiAoby5tYXhXaWR0aCA8IG5ld1dpZHRoKSwNCgkJCWlzTWF4SGVpZ2h0ID0gby5tYXhIZWlnaHQgJiYgKG8ubWF4SGVpZ2h0IDwgbmV3SGVpZ2h0KSwNCgkJCWlzTWluV2lkdGggPSBvLm1pbldpZHRoICYmIChvLm1pbldpZHRoID4gbmV3V2lkdGgpLA0KCQkJaXNNaW5IZWlnaHQgPSBvLm1pbkhlaWdodCAmJiAoby5taW5IZWlnaHQgPiBuZXdIZWlnaHQpOw0KDQoJCW8uZ3JpZCA9IGdyaWQ7DQoNCgkJaWYgKGlzTWluV2lkdGgpIHsNCgkJCW5ld1dpZHRoICs9IGdyaWRYOw0KCQl9DQoJCWlmIChpc01pbkhlaWdodCkgew0KCQkJbmV3SGVpZ2h0ICs9IGdyaWRZOw0KCQl9DQoJCWlmIChpc01heFdpZHRoKSB7DQoJCQluZXdXaWR0aCAtPSBncmlkWDsNCgkJfQ0KCQlpZiAoaXNNYXhIZWlnaHQpIHsNCgkJCW5ld0hlaWdodCAtPSBncmlkWTsNCgkJfQ0KDQoJCWlmICgvXihzZXxzfGUpJC8udGVzdChhKSkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQl9IGVsc2UgaWYgKC9eKG5lKSQvLnRlc3QoYSkpIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IG5ld1dpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCXRoYXQucG9zaXRpb24udG9wID0gb3AudG9wIC0gb3k7DQoJCX0gZWxzZSBpZiAoL14oc3cpJC8udGVzdChhKSkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gb3AubGVmdCAtIG94Ow0KCQl9IGVsc2Ugew0KCQkJaWYgKCBuZXdIZWlnaHQgLSBncmlkWSA8PSAwIHx8IG5ld1dpZHRoIC0gZ3JpZFggPD0gMCkgew0KCQkJCW91dGVyRGltZW5zaW9ucyA9IHRoYXQuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyggdGhpcyApOw0KCQkJfQ0KDQoJCQlpZiAoIG5ld0hlaWdodCAtIGdyaWRZID4gMCApIHsNCgkJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQkJCXRoYXQucG9zaXRpb24udG9wID0gb3AudG9wIC0gb3k7DQoJCQl9IGVsc2Ugew0KCQkJCW5ld0hlaWdodCA9IGdyaWRZIC0gb3V0ZXJEaW1lbnNpb25zLmhlaWdodDsNCgkJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQkJCXRoYXQucG9zaXRpb24udG9wID0gb3AudG9wICsgb3MuaGVpZ2h0IC0gbmV3SGVpZ2h0Ow0KCQkJfQ0KCQkJaWYgKCBuZXdXaWR0aCAtIGdyaWRYID4gMCApIHsNCgkJCQl0aGF0LnNpemUud2lkdGggPSBuZXdXaWR0aDsNCgkJCQl0aGF0LnBvc2l0aW9uLmxlZnQgPSBvcC5sZWZ0IC0gb3g7DQoJCQl9IGVsc2Ugew0KCQkJCW5ld1dpZHRoID0gZ3JpZFggLSBvdXRlckRpbWVuc2lvbnMud2lkdGg7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gb3AubGVmdCArIG9zLndpZHRoIC0gbmV3V2lkdGg7DQoJCQl9DQoJCX0NCgl9DQoNCn0pOw0KDQp2YXIgcmVzaXphYmxlID0gJC51aS5yZXNpemFibGU7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRGlhbG9nIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZGlhbG9nLw0KICovDQoNCg0KdmFyIGRpYWxvZyA9ICQud2lkZ2V0KCAidWkuZGlhbG9nIiwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86ICJib2R5IiwNCgkJYXV0b09wZW46IHRydWUsDQoJCWJ1dHRvbnM6IFtdLA0KCQljbG9zZU9uRXNjYXBlOiB0cnVlLA0KCQljbG9zZVRleHQ6ICJDbG9zZSIsDQoJCWRpYWxvZ0NsYXNzOiAiIiwNCgkJZHJhZ2dhYmxlOiB0cnVlLA0KCQloaWRlOiBudWxsLA0KCQloZWlnaHQ6ICJhdXRvIiwNCgkJbWF4SGVpZ2h0OiBudWxsLA0KCQltYXhXaWR0aDogbnVsbCwNCgkJbWluSGVpZ2h0OiAxNTAsDQoJCW1pbldpZHRoOiAxNTAsDQoJCW1vZGFsOiBmYWxzZSwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAiY2VudGVyIiwNCgkJCWF0OiAiY2VudGVyIiwNCgkJCW9mOiB3aW5kb3csDQoJCQljb2xsaXNpb246ICJmaXQiLA0KCQkJLy8gRW5zdXJlIHRoZSB0aXRsZWJhciBpcyBhbHdheXMgdmlzaWJsZQ0KCQkJdXNpbmc6IGZ1bmN0aW9uKCBwb3MgKSB7DQoJCQkJdmFyIHRvcE9mZnNldCA9ICQoIHRoaXMgKS5jc3MoIHBvcyApLm9mZnNldCgpLnRvcDsNCgkJCQlpZiAoIHRvcE9mZnNldCA8IDAgKSB7DQoJCQkJCSQoIHRoaXMgKS5jc3MoICJ0b3AiLCBwb3MudG9wIC0gdG9wT2Zmc2V0ICk7DQoJCQkJfQ0KCQkJfQ0KCQl9LA0KCQlyZXNpemFibGU6IHRydWUsDQoJCXNob3c6IG51bGwsDQoJCXRpdGxlOiBudWxsLA0KCQl3aWR0aDogMzAwLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQliZWZvcmVDbG9zZTogbnVsbCwNCgkJY2xvc2U6IG51bGwsDQoJCWRyYWc6IG51bGwsDQoJCWRyYWdTdGFydDogbnVsbCwNCgkJZHJhZ1N0b3A6IG51bGwsDQoJCWZvY3VzOiBudWxsLA0KCQlvcGVuOiBudWxsLA0KCQlyZXNpemU6IG51bGwsDQoJCXJlc2l6ZVN0YXJ0OiBudWxsLA0KCQlyZXNpemVTdG9wOiBudWxsDQoJfSwNCg0KCXNpemVSZWxhdGVkT3B0aW9uczogew0KCQlidXR0b25zOiB0cnVlLA0KCQloZWlnaHQ6IHRydWUsDQoJCW1heEhlaWdodDogdHJ1ZSwNCgkJbWF4V2lkdGg6IHRydWUsDQoJCW1pbkhlaWdodDogdHJ1ZSwNCgkJbWluV2lkdGg6IHRydWUsDQoJCXdpZHRoOiB0cnVlDQoJfSwNCg0KCXJlc2l6YWJsZVJlbGF0ZWRPcHRpb25zOiB7DQoJCW1heEhlaWdodDogdHJ1ZSwNCgkJbWF4V2lkdGg6IHRydWUsDQoJCW1pbkhlaWdodDogdHJ1ZSwNCgkJbWluV2lkdGg6IHRydWUNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMub3JpZ2luYWxDc3MgPSB7DQoJCQlkaXNwbGF5OiB0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS5kaXNwbGF5LA0KCQkJd2lkdGg6IHRoaXMuZWxlbWVudFsgMCBdLnN0eWxlLndpZHRoLA0KCQkJbWluSGVpZ2h0OiB0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS5taW5IZWlnaHQsDQoJCQltYXhIZWlnaHQ6IHRoaXMuZWxlbWVudFsgMCBdLnN0eWxlLm1heEhlaWdodCwNCgkJCWhlaWdodDogdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUuaGVpZ2h0DQoJCX07DQoJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiA9IHsNCgkJCXBhcmVudDogdGhpcy5lbGVtZW50LnBhcmVudCgpLA0KCQkJaW5kZXg6IHRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KCB0aGlzLmVsZW1lbnQgKQ0KCQl9Ow0KCQl0aGlzLm9yaWdpbmFsVGl0bGUgPSB0aGlzLmVsZW1lbnQuYXR0ciggInRpdGxlIiApOw0KCQl0aGlzLm9wdGlvbnMudGl0bGUgPSB0aGlzLm9wdGlvbnMudGl0bGUgfHwgdGhpcy5vcmlnaW5hbFRpdGxlOw0KDQoJCXRoaXMuX2NyZWF0ZVdyYXBwZXIoKTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5zaG93KCkNCgkJCS5yZW1vdmVBdHRyKCAidGl0bGUiICkNCgkJCS5hZGRDbGFzcyggInVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiApDQoJCQkuYXBwZW5kVG8oIHRoaXMudWlEaWFsb2cgKTsNCg0KCQl0aGlzLl9jcmVhdGVUaXRsZWJhcigpOw0KCQl0aGlzLl9jcmVhdGVCdXR0b25QYW5lKCk7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlICYmICQuZm4uZHJhZ2dhYmxlICkgew0KCQkJdGhpcy5fbWFrZURyYWdnYWJsZSgpOw0KCQl9DQoJCWlmICggdGhpcy5vcHRpb25zLnJlc2l6YWJsZSAmJiAkLmZuLnJlc2l6YWJsZSApIHsNCgkJCXRoaXMuX21ha2VSZXNpemFibGUoKTsNCgkJfQ0KDQoJCXRoaXMuX2lzT3BlbiA9IGZhbHNlOw0KDQoJCXRoaXMuX3RyYWNrRm9jdXMoKTsNCgl9LA0KDQoJX2luaXQ6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMub3B0aW9ucy5hdXRvT3BlbiApIHsNCgkJCXRoaXMub3BlbigpOw0KCQl9DQoJfSwNCg0KCV9hcHBlbmRUbzogZnVuY3Rpb24oKSB7DQoJCXZhciBlbGVtZW50ID0gdGhpcy5vcHRpb25zLmFwcGVuZFRvOw0KCQlpZiAoIGVsZW1lbnQgJiYgKGVsZW1lbnQuanF1ZXJ5IHx8IGVsZW1lbnQubm9kZVR5cGUpICkgew0KCQkJcmV0dXJuICQoIGVsZW1lbnQgKTsNCgkJfQ0KCQlyZXR1cm4gdGhpcy5kb2N1bWVudC5maW5kKCBlbGVtZW50IHx8ICJib2R5IiApLmVxKCAwICk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdmFyIG5leHQsDQoJCQlvcmlnaW5hbFBvc2l0aW9uID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uOw0KDQoJCXRoaXMuX3VudHJhY2tJbnN0YW5jZSgpOw0KCQl0aGlzLl9kZXN0cm95T3ZlcmxheSgpOw0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLnJlbW92ZVVuaXF1ZUlkKCkNCgkJCS5yZW1vdmVDbGFzcyggInVpLWRpYWxvZy1jb250ZW50IHVpLXdpZGdldC1jb250ZW50IiApDQoJCQkuY3NzKCB0aGlzLm9yaWdpbmFsQ3NzICkNCgkJCS8vIFdpdGhvdXQgZGV0YWNoaW5nIGZpcnN0LCB0aGUgZm9sbG93aW5nIGJlY29tZXMgcmVhbGx5IHNsb3cNCgkJCS5kZXRhY2goKTsNCg0KCQl0aGlzLnVpRGlhbG9nLnN0b3AoIHRydWUsIHRydWUgKS5yZW1vdmUoKTsNCg0KCQlpZiAoIHRoaXMub3JpZ2luYWxUaXRsZSApIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiLCB0aGlzLm9yaWdpbmFsVGl0bGUgKTsNCgkJfQ0KDQoJCW5leHQgPSBvcmlnaW5hbFBvc2l0aW9uLnBhcmVudC5jaGlsZHJlbigpLmVxKCBvcmlnaW5hbFBvc2l0aW9uLmluZGV4ICk7DQoJCS8vIERvbid0IHRyeSB0byBwbGFjZSB0aGUgZGlhbG9nIG5leHQgdG8gaXRzZWxmICgjODYxMykNCgkJaWYgKCBuZXh0Lmxlbmd0aCAmJiBuZXh0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJbmV4dC5iZWZvcmUoIHRoaXMuZWxlbWVudCApOw0KCQl9IGVsc2Ugew0KCQkJb3JpZ2luYWxQb3NpdGlvbi5wYXJlbnQuYXBwZW5kKCB0aGlzLmVsZW1lbnQgKTsNCgkJfQ0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy51aURpYWxvZzsNCgl9LA0KDQoJZGlzYWJsZTogJC5ub29wLA0KCWVuYWJsZTogJC5ub29wLA0KDQoJY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGFjdGl2ZUVsZW1lbnQsDQoJCQl0aGF0ID0gdGhpczsNCg0KCQlpZiAoICF0aGlzLl9pc09wZW4gfHwgdGhpcy5fdHJpZ2dlciggImJlZm9yZUNsb3NlIiwgZXZlbnQgKSA9PT0gZmFsc2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9pc09wZW4gPSBmYWxzZTsNCgkJdGhpcy5fZm9jdXNlZEVsZW1lbnQgPSBudWxsOw0KCQl0aGlzLl9kZXN0cm95T3ZlcmxheSgpOw0KCQl0aGlzLl91bnRyYWNrSW5zdGFuY2UoKTsNCg0KCQlpZiAoICF0aGlzLm9wZW5lci5maWx0ZXIoICI6Zm9jdXNhYmxlIiApLmZvY3VzKCkubGVuZ3RoICkgew0KDQoJCQkvLyBzdXBwb3J0OiBJRTkNCgkJCS8vIElFOSB0aHJvd3MgYW4gIlVuc3BlY2lmaWVkIGVycm9yIiBhY2Nlc3NpbmcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBmcm9tIGFuIDxpZnJhbWU+DQoJCQl0cnkgew0KCQkJCWFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF0uYWN0aXZlRWxlbWVudDsNCg0KCQkJCS8vIFN1cHBvcnQ6IElFOSwgSUUxMA0KCQkJCS8vIElmIHRoZSA8Ym9keT4gaXMgYmx1cnJlZCwgSUUgd2lsbCBzd2l0Y2ggd2luZG93cywgc2VlICM0NTIwDQoJCQkJaWYgKCBhY3RpdmVFbGVtZW50ICYmIGFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gImJvZHkiICkgew0KDQoJCQkJCS8vIEhpZGluZyBhIGZvY3VzZWQgZWxlbWVudCBkb2Vzbid0IHRyaWdnZXIgYmx1ciBpbiBXZWJLaXQNCgkJCQkJLy8gc28gaW4gY2FzZSB3ZSBoYXZlIG5vdGhpbmcgdG8gZm9jdXMgb24sIGV4cGxpY2l0bHkgYmx1ciB0aGUgYWN0aXZlIGVsZW1lbnQNCgkJCQkJLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTgyDQoJCQkJCSQoIGFjdGl2ZUVsZW1lbnQgKS5ibHVyKCk7DQoJCQkJfQ0KCQkJfSBjYXRjaCAoIGVycm9yICkge30NCgkJfQ0KDQoJCXRoaXMuX2hpZGUoIHRoaXMudWlEaWFsb2csIHRoaXMub3B0aW9ucy5oaWRlLCBmdW5jdGlvbigpIHsNCgkJCXRoYXQuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50ICk7DQoJCX0pOw0KCX0sDQoNCglpc09wZW46IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5faXNPcGVuOw0KCX0sDQoNCgltb3ZlVG9Ub3A6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9tb3ZlVG9Ub3AoKTsNCgl9LA0KDQoJX21vdmVUb1RvcDogZnVuY3Rpb24oIGV2ZW50LCBzaWxlbnQgKSB7DQoJCXZhciBtb3ZlZCA9IGZhbHNlLA0KCQkJekluZGljZXMgPSB0aGlzLnVpRGlhbG9nLnNpYmxpbmdzKCAiLnVpLWZyb250OnZpc2libGUiICkubWFwKGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiArJCggdGhpcyApLmNzcyggInotaW5kZXgiICk7DQoJCQl9KS5nZXQoKSwNCgkJCXpJbmRleE1heCA9IE1hdGgubWF4LmFwcGx5KCBudWxsLCB6SW5kaWNlcyApOw0KDQoJCWlmICggekluZGV4TWF4ID49ICt0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiICkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiLCB6SW5kZXhNYXggKyAxICk7DQoJCQltb3ZlZCA9IHRydWU7DQoJCX0NCg0KCQlpZiAoIG1vdmVkICYmICFzaWxlbnQgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiZm9jdXMiLCBldmVudCApOw0KCQl9DQoJCXJldHVybiBtb3ZlZDsNCgl9LA0KDQoJb3BlbjogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJaWYgKCB0aGlzLl9pc09wZW4gKSB7DQoJCQlpZiAoIHRoaXMuX21vdmVUb1RvcCgpICkgew0KCQkJCXRoaXMuX2ZvY3VzVGFiYmFibGUoKTsNCgkJCX0NCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX2lzT3BlbiA9IHRydWU7DQoJCXRoaXMub3BlbmVyID0gJCggdGhpcy5kb2N1bWVudFsgMCBdLmFjdGl2ZUVsZW1lbnQgKTsNCg0KCQl0aGlzLl9zaXplKCk7DQoJCXRoaXMuX3Bvc2l0aW9uKCk7DQoJCXRoaXMuX2NyZWF0ZU92ZXJsYXkoKTsNCgkJdGhpcy5fbW92ZVRvVG9wKCBudWxsLCB0cnVlICk7DQoNCgkJLy8gRW5zdXJlIHRoZSBvdmVybGF5IGlzIG1vdmVkIHRvIHRoZSB0b3Agd2l0aCB0aGUgZGlhbG9nLCBidXQgb25seSB3aGVuDQoJCS8vIG9wZW5pbmcuIFRoZSBvdmVybGF5IHNob3VsZG4ndCBtb3ZlIGFmdGVyIHRoZSBkaWFsb2cgaXMgb3BlbiBzbyB0aGF0DQoJCS8vIG1vZGVsZXNzIGRpYWxvZ3Mgb3BlbmVkIGFmdGVyIHRoZSBtb2RhbCBkaWFsb2cgc3RhY2sgcHJvcGVybHkuDQoJCWlmICggdGhpcy5vdmVybGF5ICkgew0KCQkJdGhpcy5vdmVybGF5LmNzcyggInotaW5kZXgiLCB0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiICkgLSAxICk7DQoJCX0NCg0KCQl0aGlzLl9zaG93KCB0aGlzLnVpRGlhbG9nLCB0aGlzLm9wdGlvbnMuc2hvdywgZnVuY3Rpb24oKSB7DQoJCQl0aGF0Ll9mb2N1c1RhYmJhYmxlKCk7DQoJCQl0aGF0Ll90cmlnZ2VyKCAiZm9jdXMiICk7DQoJCX0pOw0KDQoJCS8vIFRyYWNrIHRoZSBkaWFsb2cgaW1tZWRpYXRlbHkgdXBvbiBvcGVuZW5pbmcgaW4gY2FzZSBhIGZvY3VzIGV2ZW50DQoJCS8vIHNvbWVob3cgb2NjdXJzIG91dHNpZGUgb2YgdGhlIGRpYWxvZyBiZWZvcmUgYW4gZWxlbWVudCBpbnNpZGUgdGhlDQoJCS8vIGRpYWxvZyBpcyBmb2N1c2VkICgjMTAxNTIpDQoJCXRoaXMuX21ha2VGb2N1c1RhcmdldCgpOw0KDQoJCXRoaXMuX3RyaWdnZXIoICJvcGVuIiApOw0KCX0sDQoNCglfZm9jdXNUYWJiYWJsZTogZnVuY3Rpb24oKSB7DQoJCS8vIFNldCBmb2N1cyB0byB0aGUgZmlyc3QgbWF0Y2g6DQoJCS8vIDEuIEFuIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBwcmV2aW91c2x5DQoJCS8vIDIuIEZpcnN0IGVsZW1lbnQgaW5zaWRlIHRoZSBkaWFsb2cgbWF0Y2hpbmcgW2F1dG9mb2N1c10NCgkJLy8gMy4gVGFiYmFibGUgZWxlbWVudCBpbnNpZGUgdGhlIGNvbnRlbnQgZWxlbWVudA0KCQkvLyA0LiBUYWJiYWJsZSBlbGVtZW50IGluc2lkZSB0aGUgYnV0dG9ucGFuZQ0KCQkvLyA1LiBUaGUgY2xvc2UgYnV0dG9uDQoJCS8vIDYuIFRoZSBkaWFsb2cgaXRzZWxmDQoJCXZhciBoYXNGb2N1cyA9IHRoaXMuX2ZvY3VzZWRFbGVtZW50Ow0KCQlpZiAoICFoYXNGb2N1cyApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy5lbGVtZW50LmZpbmQoICJbYXV0b2ZvY3VzXSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMuZWxlbWVudC5maW5kKCAiOnRhYmJhYmxlIiApOw0KCQl9DQoJCWlmICggIWhhc0ZvY3VzLmxlbmd0aCApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuZmluZCggIjp0YWJiYWJsZSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlLmZpbHRlciggIjp0YWJiYWJsZSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMudWlEaWFsb2c7DQoJCX0NCgkJaGFzRm9jdXMuZXEoIDAgKS5mb2N1cygpOw0KCX0sDQoNCglfa2VlcEZvY3VzOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWZ1bmN0aW9uIGNoZWNrRm9jdXMoKSB7DQoJCQl2YXIgYWN0aXZlRWxlbWVudCA9IHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCwNCgkJCQlpc0FjdGl2ZSA9IHRoaXMudWlEaWFsb2dbMF0gPT09IGFjdGl2ZUVsZW1lbnQgfHwNCgkJCQkJJC5jb250YWlucyggdGhpcy51aURpYWxvZ1swXSwgYWN0aXZlRWxlbWVudCApOw0KCQkJaWYgKCAhaXNBY3RpdmUgKSB7DQoJCQkJdGhpcy5fZm9jdXNUYWJiYWJsZSgpOw0KCQkJfQ0KCQl9DQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCWNoZWNrRm9jdXMuY2FsbCggdGhpcyApOw0KCQkvLyBzdXBwb3J0OiBJRQ0KCQkvLyBJRSA8PSA4IGRvZXNuJ3QgcHJldmVudCBtb3ZpbmcgZm9jdXMgZXZlbiB3aXRoIGV2ZW50LnByZXZlbnREZWZhdWx0KCkNCgkJLy8gc28gd2UgY2hlY2sgYWdhaW4gbGF0ZXINCgkJdGhpcy5fZGVsYXkoIGNoZWNrRm9jdXMgKTsNCgl9LA0KDQoJX2NyZWF0ZVdyYXBwZXI6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnVpRGlhbG9nID0gJCgiPGRpdj4iKQ0KCQkJLmFkZENsYXNzKCAidWktZGlhbG9nIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLWZyb250ICIgKw0KCQkJCXRoaXMub3B0aW9ucy5kaWFsb2dDbGFzcyApDQoJCQkuaGlkZSgpDQoJCQkuYXR0cih7DQoJCQkJLy8gU2V0dGluZyB0YWJJbmRleCBtYWtlcyB0aGUgZGl2IGZvY3VzYWJsZQ0KCQkJCXRhYkluZGV4OiAtMSwNCgkJCQlyb2xlOiAiZGlhbG9nIg0KCQkJfSkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KDQoJCXRoaXMuX29uKCB0aGlzLnVpRGlhbG9nLCB7DQoJCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLm9wdGlvbnMuY2xvc2VPbkVzY2FwZSAmJiAhZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkgJiYgZXZlbnQua2V5Q29kZSAmJg0KCQkJCQkJZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLkVTQ0FQRSApIHsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCS8vIHByZXZlbnQgdGFiYmluZyBvdXQgb2YgZGlhbG9ncw0KCQkJCWlmICggZXZlbnQua2V5Q29kZSAhPT0gJC51aS5rZXlDb2RlLlRBQiB8fCBldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQl2YXIgdGFiYmFibGVzID0gdGhpcy51aURpYWxvZy5maW5kKCAiOnRhYmJhYmxlIiApLA0KCQkJCQlmaXJzdCA9IHRhYmJhYmxlcy5maWx0ZXIoICI6Zmlyc3QiICksDQoJCQkJCWxhc3QgPSB0YWJiYWJsZXMuZmlsdGVyKCAiOmxhc3QiICk7DQoNCgkJCQlpZiAoICggZXZlbnQudGFyZ2V0ID09PSBsYXN0WzBdIHx8IGV2ZW50LnRhcmdldCA9PT0gdGhpcy51aURpYWxvZ1swXSApICYmICFldmVudC5zaGlmdEtleSApIHsNCgkJCQkJdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJCQlmaXJzdC5mb2N1cygpOw0KCQkJCQl9KTsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQl9IGVsc2UgaWYgKCAoIGV2ZW50LnRhcmdldCA9PT0gZmlyc3RbMF0gfHwgZXZlbnQudGFyZ2V0ID09PSB0aGlzLnVpRGlhbG9nWzBdICkgJiYgZXZlbnQuc2hpZnRLZXkgKSB7DQoJCQkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQkJbGFzdC5mb2N1cygpOw0KCQkJCQl9KTsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQl9DQoJCQl9LA0KCQkJbW91c2Vkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLl9tb3ZlVG9Ub3AoIGV2ZW50ICkgKSB7DQoJCQkJCXRoaXMuX2ZvY3VzVGFiYmFibGUoKTsNCgkJCQl9DQoJCQl9DQoJCX0pOw0KDQoJCS8vIFdlIGFzc3VtZSB0aGF0IGFueSBleGlzdGluZyBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSBtZWFucw0KCQkvLyB0aGF0IHRoZSBkaWFsb2cgY29udGVudCBpcyBtYXJrZWQgdXAgcHJvcGVybHkNCgkJLy8gb3RoZXJ3aXNlIHdlIGJydXRlIGZvcmNlIHRoZSBjb250ZW50IGFzIHRoZSBkZXNjcmlwdGlvbg0KCQlpZiAoICF0aGlzLmVsZW1lbnQuZmluZCggIlthcmlhLWRlc2NyaWJlZGJ5XSIgKS5sZW5ndGggKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmF0dHIoew0KCQkJCSJhcmlhLWRlc2NyaWJlZGJ5IjogdGhpcy5lbGVtZW50LnVuaXF1ZUlkKCkuYXR0ciggImlkIiApDQoJCQl9KTsNCgkJfQ0KCX0sDQoNCglfY3JlYXRlVGl0bGViYXI6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdWlEaWFsb2dUaXRsZTsNCg0KCQl0aGlzLnVpRGlhbG9nVGl0bGViYXIgPSAkKCAiPGRpdj4iICkNCgkJCS5hZGRDbGFzcyggInVpLWRpYWxvZy10aXRsZWJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwgdWktaGVscGVyLWNsZWFyZml4IiApDQoJCQkucHJlcGVuZFRvKCB0aGlzLnVpRGlhbG9nICk7DQoJCXRoaXMuX29uKCB0aGlzLnVpRGlhbG9nVGl0bGViYXIsIHsNCgkJCW1vdXNlZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCS8vIERvbid0IHByZXZlbnQgY2xpY2sgb24gY2xvc2UgYnV0dG9uICgjODgzOCkNCgkJCQkvLyBGb2N1c2luZyBhIGRpYWxvZyB0aGF0IGlzIHBhcnRpYWxseSBzY3JvbGxlZCBvdXQgb2Ygdmlldw0KCQkJCS8vIGNhdXNlcyB0aGUgYnJvd3NlciB0byBzY3JvbGwgaXQgaW50byB2aWV3LCBwcmV2ZW50aW5nIHRoZSBjbGljayBldmVudA0KCQkJCWlmICggISQoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoICIudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIiApICkgew0KCQkJCQkvLyBEaWFsb2cgaXNuJ3QgZ2V0dGluZyBmb2N1cyB3aGVuIGRyYWdnaW5nICgjODA2MykNCgkJCQkJdGhpcy51aURpYWxvZy5mb2N1cygpOw0KCQkJCX0NCgkJCX0NCgkJfSk7DQoNCgkJLy8gc3VwcG9ydDogSUUNCgkJLy8gVXNlIHR5cGU9ImJ1dHRvbiIgdG8gcHJldmVudCBlbnRlciBrZXlwcmVzc2VzIGluIHRleHRib3hlcyBmcm9tIGNsb3NpbmcgdGhlDQoJCS8vIGRpYWxvZyBpbiBJRSAoIzkzMTIpDQoJCXRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlID0gJCggIjxidXR0b24gdHlwZT0nYnV0dG9uJz48L2J1dHRvbj4iICkNCgkJCS5idXR0b24oew0KCQkJCWxhYmVsOiB0aGlzLm9wdGlvbnMuY2xvc2VUZXh0LA0KCQkJCWljb25zOiB7DQoJCQkJCXByaW1hcnk6ICJ1aS1pY29uLWNsb3NldGhpY2siDQoJCQkJfSwNCgkJCQl0ZXh0OiBmYWxzZQ0KCQkJfSkNCgkJCS5hZGRDbGFzcyggInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLnVpRGlhbG9nVGl0bGViYXIgKTsNCgkJdGhpcy5fb24oIHRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlLCB7DQoJCQljbGljazogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCX0NCgkJfSk7DQoNCgkJdWlEaWFsb2dUaXRsZSA9ICQoICI8c3Bhbj4iICkNCgkJCS51bmlxdWVJZCgpDQoJCQkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctdGl0bGUiICkNCgkJCS5wcmVwZW5kVG8oIHRoaXMudWlEaWFsb2dUaXRsZWJhciApOw0KCQl0aGlzLl90aXRsZSggdWlEaWFsb2dUaXRsZSApOw0KDQoJCXRoaXMudWlEaWFsb2cuYXR0cih7DQoJCQkiYXJpYS1sYWJlbGxlZGJ5IjogdWlEaWFsb2dUaXRsZS5hdHRyKCAiaWQiICkNCgkJfSk7DQoJfSwNCg0KCV90aXRsZTogZnVuY3Rpb24oIHRpdGxlICkgew0KCQlpZiAoICF0aGlzLm9wdGlvbnMudGl0bGUgKSB7DQoJCQl0aXRsZS5odG1sKCAiJiMxNjA7IiApOw0KCQl9DQoJCXRpdGxlLnRleHQoIHRoaXMub3B0aW9ucy50aXRsZSApOw0KCX0sDQoNCglfY3JlYXRlQnV0dG9uUGFuZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMudWlEaWFsb2dCdXR0b25QYW5lID0gJCggIjxkaXY+IiApDQoJCQkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctYnV0dG9ucGFuZSB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXgiICk7DQoNCgkJdGhpcy51aUJ1dHRvblNldCA9ICQoICI8ZGl2PiIgKQ0KCQkJLmFkZENsYXNzKCAidWktZGlhbG9nLWJ1dHRvbnNldCIgKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZSApOw0KDQoJCXRoaXMuX2NyZWF0ZUJ1dHRvbnMoKTsNCgl9LA0KDQoJX2NyZWF0ZUJ1dHRvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlidXR0b25zID0gdGhpcy5vcHRpb25zLmJ1dHRvbnM7DQoNCgkJLy8gaWYgd2UgYWxyZWFkeSBoYXZlIGEgYnV0dG9uIHBhbmUsIHJlbW92ZSBpdA0KCQl0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZS5yZW1vdmUoKTsNCgkJdGhpcy51aUJ1dHRvblNldC5lbXB0eSgpOw0KDQoJCWlmICggJC5pc0VtcHR5T2JqZWN0KCBidXR0b25zICkgfHwgKCQuaXNBcnJheSggYnV0dG9ucyApICYmICFidXR0b25zLmxlbmd0aCkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCAidWktZGlhbG9nLWJ1dHRvbnMiICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkkLmVhY2goIGJ1dHRvbnMsIGZ1bmN0aW9uKCBuYW1lLCBwcm9wcyApIHsNCgkJCXZhciBjbGljaywgYnV0dG9uT3B0aW9uczsNCgkJCXByb3BzID0gJC5pc0Z1bmN0aW9uKCBwcm9wcyApID8NCgkJCQl7IGNsaWNrOiBwcm9wcywgdGV4dDogbmFtZSB9IDoNCgkJCQlwcm9wczsNCgkJCS8vIERlZmF1bHQgdG8gYSBub24tc3VibWl0dGluZyBidXR0b24NCgkJCXByb3BzID0gJC5leHRlbmQoIHsgdHlwZTogImJ1dHRvbiIgfSwgcHJvcHMgKTsNCgkJCS8vIENoYW5nZSB0aGUgY29udGV4dCBmb3IgdGhlIGNsaWNrIGNhbGxiYWNrIHRvIGJlIHRoZSBtYWluIGVsZW1lbnQNCgkJCWNsaWNrID0gcHJvcHMuY2xpY2s7DQoJCQlwcm9wcy5jbGljayA9IGZ1bmN0aW9uKCkgew0KCQkJCWNsaWNrLmFwcGx5KCB0aGF0LmVsZW1lbnRbIDAgXSwgYXJndW1lbnRzICk7DQoJCQl9Ow0KCQkJYnV0dG9uT3B0aW9ucyA9IHsNCgkJCQlpY29uczogcHJvcHMuaWNvbnMsDQoJCQkJdGV4dDogcHJvcHMuc2hvd1RleHQNCgkJCX07DQoJCQlkZWxldGUgcHJvcHMuaWNvbnM7DQoJCQlkZWxldGUgcHJvcHMuc2hvd1RleHQ7DQoJCQkkKCAiPGJ1dHRvbj48L2J1dHRvbj4iLCBwcm9wcyApDQoJCQkJLmJ1dHRvbiggYnV0dG9uT3B0aW9ucyApDQoJCQkJLmFwcGVuZFRvKCB0aGF0LnVpQnV0dG9uU2V0ICk7DQoJCX0pOw0KCQl0aGlzLnVpRGlhbG9nLmFkZENsYXNzKCAidWktZGlhbG9nLWJ1dHRvbnMiICk7DQoJCXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmFwcGVuZFRvKCB0aGlzLnVpRGlhbG9nICk7DQoJfSwNCg0KCV9tYWtlRHJhZ2dhYmxlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQlmdW5jdGlvbiBmaWx0ZXJlZFVpKCB1aSApIHsNCgkJCXJldHVybiB7DQoJCQkJcG9zaXRpb246IHVpLnBvc2l0aW9uLA0KCQkJCW9mZnNldDogdWkub2Zmc2V0DQoJCQl9Ow0KCQl9DQoNCgkJdGhpcy51aURpYWxvZy5kcmFnZ2FibGUoew0KCQkJY2FuY2VsOiAiLnVpLWRpYWxvZy1jb250ZW50LCAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIiwNCgkJCWhhbmRsZTogIi51aS1kaWFsb2ctdGl0bGViYXIiLA0KCQkJY29udGFpbm1lbnQ6ICJkb2N1bWVudCIsDQoJCQlzdGFydDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQkkKCB0aGlzICkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctZHJhZ2dpbmciICk7DQoJCQkJdGhhdC5fYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAiZHJhZ1N0YXJ0IiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlkcmFnOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXRoYXQuX3RyaWdnZXIoICJkcmFnIiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBsZWZ0ID0gdWkub2Zmc2V0LmxlZnQgLSB0aGF0LmRvY3VtZW50LnNjcm9sbExlZnQoKSwNCgkJCQkJdG9wID0gdWkub2Zmc2V0LnRvcCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7DQoNCgkJCQlvcHRpb25zLnBvc2l0aW9uID0gew0KCQkJCQlteTogImxlZnQgdG9wIiwNCgkJCQkJYXQ6ICJsZWZ0IiArIChsZWZ0ID49IDAgPyAiKyIgOiAiIikgKyBsZWZ0ICsgIiAiICsNCgkJCQkJCSJ0b3AiICsgKHRvcCA+PSAwID8gIisiIDogIiIpICsgdG9wLA0KCQkJCQlvZjogdGhhdC53aW5kb3cNCgkJCQl9Ow0KCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggInVpLWRpYWxvZy1kcmFnZ2luZyIgKTsNCgkJCQl0aGF0Ll91bmJsb2NrRnJhbWVzKCk7DQoJCQkJdGhhdC5fdHJpZ2dlciggImRyYWdTdG9wIiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9tYWtlUmVzaXphYmxlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWhhbmRsZXMgPSBvcHRpb25zLnJlc2l6YWJsZSwNCgkJCS8vIC51aS1yZXNpemFibGUgaGFzIHBvc2l0aW9uOiByZWxhdGl2ZSBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0DQoJCQkvLyBidXQgZGlhbG9ncyBoYXZlIHRvIHVzZSBhYnNvbHV0ZSBvciBmaXhlZCBwb3NpdGlvbmluZw0KCQkJcG9zaXRpb24gPSB0aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSwNCgkJCXJlc2l6ZUhhbmRsZXMgPSB0eXBlb2YgaGFuZGxlcyA9PT0gInN0cmluZyIgPw0KCQkJCWhhbmRsZXMJOg0KCQkJCSJuLGUscyx3LHNlLHN3LG5lLG53IjsNCg0KCQlmdW5jdGlvbiBmaWx0ZXJlZFVpKCB1aSApIHsNCgkJCXJldHVybiB7DQoJCQkJb3JpZ2luYWxQb3NpdGlvbjogdWkub3JpZ2luYWxQb3NpdGlvbiwNCgkJCQlvcmlnaW5hbFNpemU6IHVpLm9yaWdpbmFsU2l6ZSwNCgkJCQlwb3NpdGlvbjogdWkucG9zaXRpb24sDQoJCQkJc2l6ZTogdWkuc2l6ZQ0KCQkJfTsNCgkJfQ0KDQoJCXRoaXMudWlEaWFsb2cucmVzaXphYmxlKHsNCgkJCWNhbmNlbDogIi51aS1kaWFsb2ctY29udGVudCIsDQoJCQljb250YWlubWVudDogImRvY3VtZW50IiwNCgkJCWFsc29SZXNpemU6IHRoaXMuZWxlbWVudCwNCgkJCW1heFdpZHRoOiBvcHRpb25zLm1heFdpZHRoLA0KCQkJbWF4SGVpZ2h0OiBvcHRpb25zLm1heEhlaWdodCwNCgkJCW1pbldpZHRoOiBvcHRpb25zLm1pbldpZHRoLA0KCQkJbWluSGVpZ2h0OiB0aGlzLl9taW5IZWlnaHQoKSwNCgkJCWhhbmRsZXM6IHJlc2l6ZUhhbmRsZXMsDQoJCQlzdGFydDogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQkkKCB0aGlzICkuYWRkQ2xhc3MoICJ1aS1kaWFsb2ctcmVzaXppbmciICk7DQoJCQkJdGhhdC5fYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplU3RhcnQiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfSwNCgkJCXJlc2l6ZTogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplIiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBvZmZzZXQgPSB0aGF0LnVpRGlhbG9nLm9mZnNldCgpLA0KCQkJCQlsZWZ0ID0gb2Zmc2V0LmxlZnQgLSB0aGF0LmRvY3VtZW50LnNjcm9sbExlZnQoKSwNCgkJCQkJdG9wID0gb2Zmc2V0LnRvcCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7DQoNCgkJCQlvcHRpb25zLmhlaWdodCA9IHRoYXQudWlEaWFsb2cuaGVpZ2h0KCk7DQoJCQkJb3B0aW9ucy53aWR0aCA9IHRoYXQudWlEaWFsb2cud2lkdGgoKTsNCgkJCQlvcHRpb25zLnBvc2l0aW9uID0gew0KCQkJCQlteTogImxlZnQgdG9wIiwNCgkJCQkJYXQ6ICJsZWZ0IiArIChsZWZ0ID49IDAgPyAiKyIgOiAiIikgKyBsZWZ0ICsgIiAiICsNCgkJCQkJCSJ0b3AiICsgKHRvcCA+PSAwID8gIisiIDogIiIpICsgdG9wLA0KCQkJCQlvZjogdGhhdC53aW5kb3cNCgkJCQl9Ow0KCQkJCSQoIHRoaXMgKS5yZW1vdmVDbGFzcyggInVpLWRpYWxvZy1yZXNpemluZyIgKTsNCgkJCQl0aGF0Ll91bmJsb2NrRnJhbWVzKCk7DQoJCQkJdGhhdC5fdHJpZ2dlciggInJlc2l6ZVN0b3AiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfQ0KCQl9KQ0KCQkuY3NzKCAicG9zaXRpb24iLCBwb3NpdGlvbiApOw0KCX0sDQoNCglfdHJhY2tGb2N1czogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX29uKCB0aGlzLndpZGdldCgpLCB7DQoJCQlmb2N1c2luOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fbWFrZUZvY3VzVGFyZ2V0KCk7DQoJCQkJdGhpcy5fZm9jdXNlZEVsZW1lbnQgPSAkKCBldmVudC50YXJnZXQgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9tYWtlRm9jdXNUYXJnZXQ6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl91bnRyYWNrSW5zdGFuY2UoKTsNCgkJdGhpcy5fdHJhY2tpbmdJbnN0YW5jZXMoKS51bnNoaWZ0KCB0aGlzICk7DQoJfSwNCg0KCV91bnRyYWNrSW5zdGFuY2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaW5zdGFuY2VzID0gdGhpcy5fdHJhY2tpbmdJbnN0YW5jZXMoKSwNCgkJCWV4aXN0cyA9ICQuaW5BcnJheSggdGhpcywgaW5zdGFuY2VzICk7DQoJCWlmICggZXhpc3RzICE9PSAtMSApIHsNCgkJCWluc3RhbmNlcy5zcGxpY2UoIGV4aXN0cywgMSApOw0KCQl9DQoJfSwNCg0KCV90cmFja2luZ0luc3RhbmNlczogZnVuY3Rpb24oKSB7DQoJCXZhciBpbnN0YW5jZXMgPSB0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctaW5zdGFuY2VzIiApOw0KCQlpZiAoICFpbnN0YW5jZXMgKSB7DQoJCQlpbnN0YW5jZXMgPSBbXTsNCgkJCXRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1pbnN0YW5jZXMiLCBpbnN0YW5jZXMgKTsNCgkJfQ0KCQlyZXR1cm4gaW5zdGFuY2VzOw0KCX0sDQoNCglfbWluSGVpZ2h0OiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJcmV0dXJuIG9wdGlvbnMuaGVpZ2h0ID09PSAiYXV0byIgPw0KCQkJb3B0aW9ucy5taW5IZWlnaHQgOg0KCQkJTWF0aC5taW4oIG9wdGlvbnMubWluSGVpZ2h0LCBvcHRpb25zLmhlaWdodCApOw0KCX0sDQoNCglfcG9zaXRpb246IGZ1bmN0aW9uKCkgew0KCQkvLyBOZWVkIHRvIHNob3cgdGhlIGRpYWxvZyB0byBnZXQgdGhlIGFjdHVhbCBvZmZzZXQgaW4gdGhlIHBvc2l0aW9uIHBsdWdpbg0KCQl2YXIgaXNWaXNpYmxlID0gdGhpcy51aURpYWxvZy5pcyggIjp2aXNpYmxlIiApOw0KCQlpZiAoICFpc1Zpc2libGUgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLnNob3coKTsNCgkJfQ0KCQl0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKTsNCgkJaWYgKCAhaXNWaXNpYmxlICkgew0KCQkJdGhpcy51aURpYWxvZy5oaWRlKCk7DQoJCX0NCgl9LA0KDQoJX3NldE9wdGlvbnM6IGZ1bmN0aW9uKCBvcHRpb25zICkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlyZXNpemUgPSBmYWxzZSwNCgkJCXJlc2l6YWJsZU9wdGlvbnMgPSB7fTsNCg0KCQkkLmVhY2goIG9wdGlvbnMsIGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQkJdGhhdC5fc2V0T3B0aW9uKCBrZXksIHZhbHVlICk7DQoNCgkJCWlmICgga2V5IGluIHRoYXQuc2l6ZVJlbGF0ZWRPcHRpb25zICkgew0KCQkJCXJlc2l6ZSA9IHRydWU7DQoJCQl9DQoJCQlpZiAoIGtleSBpbiB0aGF0LnJlc2l6YWJsZVJlbGF0ZWRPcHRpb25zICkgew0KCQkJCXJlc2l6YWJsZU9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl9DQoJCX0pOw0KDQoJCWlmICggcmVzaXplICkgew0KCQkJdGhpcy5fc2l6ZSgpOw0KCQkJdGhpcy5fcG9zaXRpb24oKTsNCgkJfQ0KCQlpZiAoIHRoaXMudWlEaWFsb2cuaXMoICI6ZGF0YSh1aS1yZXNpemFibGUpIiApICkgew0KCQkJdGhpcy51aURpYWxvZy5yZXNpemFibGUoICJvcHRpb24iLCByZXNpemFibGVPcHRpb25zICk7DQoJCX0NCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXZhciBpc0RyYWdnYWJsZSwgaXNSZXNpemFibGUsDQoJCQl1aURpYWxvZyA9IHRoaXMudWlEaWFsb2c7DQoNCgkJaWYgKCBrZXkgPT09ICJkaWFsb2dDbGFzcyIgKSB7DQoJCQl1aURpYWxvZw0KCQkJCS5yZW1vdmVDbGFzcyggdGhpcy5vcHRpb25zLmRpYWxvZ0NsYXNzICkNCgkJCQkuYWRkQ2xhc3MoIHZhbHVlICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJhcHBlbmRUbyIgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImJ1dHRvbnMiICkgew0KCQkJdGhpcy5fY3JlYXRlQnV0dG9ucygpOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJjbG9zZVRleHQiICkgew0KCQkJdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuYnV0dG9uKHsNCgkJCQkvLyBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgcGFzcyBhIHN0cmluZw0KCQkJCWxhYmVsOiAiIiArIHZhbHVlDQoJCQl9KTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZHJhZ2dhYmxlIiApIHsNCgkJCWlzRHJhZ2dhYmxlID0gdWlEaWFsb2cuaXMoICI6ZGF0YSh1aS1kcmFnZ2FibGUpIiApOw0KCQkJaWYgKCBpc0RyYWdnYWJsZSAmJiAhdmFsdWUgKSB7DQoJCQkJdWlEaWFsb2cuZHJhZ2dhYmxlKCAiZGVzdHJveSIgKTsNCgkJCX0NCg0KCQkJaWYgKCAhaXNEcmFnZ2FibGUgJiYgdmFsdWUgKSB7DQoJCQkJdGhpcy5fbWFrZURyYWdnYWJsZSgpOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJwb3NpdGlvbiIgKSB7DQoJCQl0aGlzLl9wb3NpdGlvbigpOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJyZXNpemFibGUiICkgew0KCQkJLy8gY3VycmVudGx5IHJlc2l6YWJsZSwgYmVjb21pbmcgbm9uLXJlc2l6YWJsZQ0KCQkJaXNSZXNpemFibGUgPSB1aURpYWxvZy5pcyggIjpkYXRhKHVpLXJlc2l6YWJsZSkiICk7DQoJCQlpZiAoIGlzUmVzaXphYmxlICYmICF2YWx1ZSApIHsNCgkJCQl1aURpYWxvZy5yZXNpemFibGUoICJkZXN0cm95IiApOw0KCQkJfQ0KDQoJCQkvLyBjdXJyZW50bHkgcmVzaXphYmxlLCBjaGFuZ2luZyBoYW5kbGVzDQoJCQlpZiAoIGlzUmVzaXphYmxlICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIgKSB7DQoJCQkJdWlEaWFsb2cucmVzaXphYmxlKCAib3B0aW9uIiwgImhhbmRsZXMiLCB2YWx1ZSApOw0KCQkJfQ0KDQoJCQkvLyBjdXJyZW50bHkgbm9uLXJlc2l6YWJsZSwgYmVjb21pbmcgcmVzaXphYmxlDQoJCQlpZiAoICFpc1Jlc2l6YWJsZSAmJiB2YWx1ZSAhPT0gZmFsc2UgKSB7DQoJCQkJdGhpcy5fbWFrZVJlc2l6YWJsZSgpOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJ0aXRsZSIgKSB7DQoJCQl0aGlzLl90aXRsZSggdGhpcy51aURpYWxvZ1RpdGxlYmFyLmZpbmQoICIudWktZGlhbG9nLXRpdGxlIiApICk7DQoJCX0NCgl9LA0KDQoJX3NpemU6IGZ1bmN0aW9uKCkgew0KCQkvLyBJZiB0aGUgdXNlciBoYXMgcmVzaXplZCB0aGUgZGlhbG9nLCB0aGUgLnVpLWRpYWxvZyBhbmQgLnVpLWRpYWxvZy1jb250ZW50DQoJCS8vIGRpdnMgd2lsbCBib3RoIGhhdmUgd2lkdGggYW5kIGhlaWdodCBzZXQsIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlbQ0KCQl2YXIgbm9uQ29udGVudEhlaWdodCwgbWluQ29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodCwNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJLy8gUmVzZXQgY29udGVudCBzaXppbmcNCgkJdGhpcy5lbGVtZW50LnNob3coKS5jc3Moew0KCQkJd2lkdGg6ICJhdXRvIiwNCgkJCW1pbkhlaWdodDogMCwNCgkJCW1heEhlaWdodDogIm5vbmUiLA0KCQkJaGVpZ2h0OiAwDQoJCX0pOw0KDQoJCWlmICggb3B0aW9ucy5taW5XaWR0aCA+IG9wdGlvbnMud2lkdGggKSB7DQoJCQlvcHRpb25zLndpZHRoID0gb3B0aW9ucy5taW5XaWR0aDsNCgkJfQ0KDQoJCS8vIHJlc2V0IHdyYXBwZXIgc2l6aW5nDQoJCS8vIGRldGVybWluZSB0aGUgaGVpZ2h0IG9mIGFsbCB0aGUgbm9uLWNvbnRlbnQgZWxlbWVudHMNCgkJbm9uQ29udGVudEhlaWdodCA9IHRoaXMudWlEaWFsb2cuY3NzKHsNCgkJCQloZWlnaHQ6ICJhdXRvIiwNCgkJCQl3aWR0aDogb3B0aW9ucy53aWR0aA0KCQkJfSkNCgkJCS5vdXRlckhlaWdodCgpOw0KCQltaW5Db250ZW50SGVpZ2h0ID0gTWF0aC5tYXgoIDAsIG9wdGlvbnMubWluSGVpZ2h0IC0gbm9uQ29udGVudEhlaWdodCApOw0KCQltYXhDb250ZW50SGVpZ2h0ID0gdHlwZW9mIG9wdGlvbnMubWF4SGVpZ2h0ID09PSAibnVtYmVyIiA/DQoJCQlNYXRoLm1heCggMCwgb3B0aW9ucy5tYXhIZWlnaHQgLSBub25Db250ZW50SGVpZ2h0ICkgOg0KCQkJIm5vbmUiOw0KDQoJCWlmICggb3B0aW9ucy5oZWlnaHQgPT09ICJhdXRvIiApIHsNCgkJCXRoaXMuZWxlbWVudC5jc3Moew0KCQkJCW1pbkhlaWdodDogbWluQ29udGVudEhlaWdodCwNCgkJCQltYXhIZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsDQoJCQkJaGVpZ2h0OiAiYXV0byINCgkJCX0pOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5lbGVtZW50LmhlaWdodCggTWF0aC5tYXgoIDAsIG9wdGlvbnMuaGVpZ2h0IC0gbm9uQ29udGVudEhlaWdodCApICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMudWlEaWFsb2cuaXMoICI6ZGF0YSh1aS1yZXNpemFibGUpIiApICkgew0KCQkJdGhpcy51aURpYWxvZy5yZXNpemFibGUoICJvcHRpb24iLCAibWluSGVpZ2h0IiwgdGhpcy5fbWluSGVpZ2h0KCkgKTsNCgkJfQ0KCX0sDQoNCglfYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmlmcmFtZUJsb2NrcyA9IHRoaXMuZG9jdW1lbnQuZmluZCggImlmcmFtZSIgKS5tYXAoZnVuY3Rpb24oKSB7DQoJCQl2YXIgaWZyYW1lID0gJCggdGhpcyApOw0KDQoJCQlyZXR1cm4gJCggIjxkaXY+IiApDQoJCQkJLmNzcyh7DQoJCQkJCXBvc2l0aW9uOiAiYWJzb2x1dGUiLA0KCQkJCQl3aWR0aDogaWZyYW1lLm91dGVyV2lkdGgoKSwNCgkJCQkJaGVpZ2h0OiBpZnJhbWUub3V0ZXJIZWlnaHQoKQ0KCQkJCX0pDQoJCQkJLmFwcGVuZFRvKCBpZnJhbWUucGFyZW50KCkgKQ0KCQkJCS5vZmZzZXQoIGlmcmFtZS5vZmZzZXQoKSApWzBdOw0KCQl9KTsNCgl9LA0KDQoJX3VuYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMuaWZyYW1lQmxvY2tzICkgew0KCQkJdGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCk7DQoJCQlkZWxldGUgdGhpcy5pZnJhbWVCbG9ja3M7DQoJCX0NCgl9LA0KDQoJX2FsbG93SW50ZXJhY3Rpb246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLWRpYWxvZyIgKS5sZW5ndGggKSB7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCS8vIFRPRE86IFJlbW92ZSBoYWNrIHdoZW4gZGF0ZXBpY2tlciBpbXBsZW1lbnRzDQoJCS8vIHRoZSAudWktZnJvbnQgbG9naWMgKCM4OTg5KQ0KCQlyZXR1cm4gISEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLWRhdGVwaWNrZXIiICkubGVuZ3RoOw0KCX0sDQoNCglfY3JlYXRlT3ZlcmxheTogZnVuY3Rpb24oKSB7DQoJCWlmICggIXRoaXMub3B0aW9ucy5tb2RhbCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIFdlIHVzZSBhIGRlbGF5IGluIGNhc2UgdGhlIG92ZXJsYXkgaXMgY3JlYXRlZCBmcm9tIGFuDQoJCS8vIGV2ZW50IHRoYXQgd2UncmUgZ29pbmcgdG8gYmUgY2FuY2VsbGluZyAoIzI4MDQpDQoJCXZhciBpc09wZW5pbmcgPSB0cnVlOw0KCQl0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCWlzT3BlbmluZyA9IGZhbHNlOw0KCQl9KTsNCg0KCQlpZiAoICF0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiICkgKSB7DQoNCgkJCS8vIFByZXZlbnQgdXNlIG9mIGFuY2hvcnMgYW5kIGlucHV0cw0KCQkJLy8gVXNpbmcgX29uKCkgZm9yIGFuIGV2ZW50IGhhbmRsZXIgc2hhcmVkIGFjcm9zcyBtYW55IGluc3RhbmNlcyBpcw0KCQkJLy8gc2FmZSBiZWNhdXNlIHRoZSBkaWFsb2dzIHN0YWNrIGFuZCBtdXN0IGJlIGNsb3NlZCBpbiByZXZlcnNlIG9yZGVyDQoJCQl0aGlzLl9vbiggdGhpcy5kb2N1bWVudCwgew0KCQkJCWZvY3VzaW46IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkJaWYgKCBpc09wZW5pbmcgKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCg0KCQkJCQlpZiAoICF0aGlzLl9hbGxvd0ludGVyYWN0aW9uKCBldmVudCApICkgew0KCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJCXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKClbIDAgXS5fZm9jdXNUYWJiYWJsZSgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfSk7DQoJCX0NCg0KCQl0aGlzLm92ZXJsYXkgPSAkKCAiPGRpdj4iICkNCgkJCS5hZGRDbGFzcyggInVpLXdpZGdldC1vdmVybGF5IHVpLWZyb250IiApDQoJCQkuYXBwZW5kVG8oIHRoaXMuX2FwcGVuZFRvKCkgKTsNCgkJdGhpcy5fb24oIHRoaXMub3ZlcmxheSwgew0KCQkJbW91c2Vkb3duOiAiX2tlZXBGb2N1cyINCgkJfSk7DQoJCXRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIsDQoJCQkodGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLW92ZXJsYXlzIiApIHx8IDApICsgMSApOw0KCX0sDQoNCglfZGVzdHJveU92ZXJsYXk6IGZ1bmN0aW9uKCkgew0KCQlpZiAoICF0aGlzLm9wdGlvbnMubW9kYWwgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMub3ZlcmxheSApIHsNCgkJCXZhciBvdmVybGF5cyA9IHRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIgKSAtIDE7DQoNCgkJCWlmICggIW92ZXJsYXlzICkgew0KCQkJCXRoaXMuZG9jdW1lbnQNCgkJCQkJLnVuYmluZCggImZvY3VzaW4iICkNCgkJCQkJLnJlbW92ZURhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIsIG92ZXJsYXlzICk7DQoJCQl9DQoNCgkJCXRoaXMub3ZlcmxheS5yZW1vdmUoKTsNCgkJCXRoaXMub3ZlcmxheSA9IG51bGw7DQoJCX0NCgl9DQp9KTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBEcm9wcGFibGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kcm9wcGFibGUvDQogKi8NCg0KDQokLndpZGdldCggInVpLmRyb3BwYWJsZSIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCgl3aWRnZXRFdmVudFByZWZpeDogImRyb3AiLA0KCW9wdGlvbnM6IHsNCgkJYWNjZXB0OiAiKiIsDQoJCWFjdGl2ZUNsYXNzOiBmYWxzZSwNCgkJYWRkQ2xhc3NlczogdHJ1ZSwNCgkJZ3JlZWR5OiBmYWxzZSwNCgkJaG92ZXJDbGFzczogZmFsc2UsDQoJCXNjb3BlOiAiZGVmYXVsdCIsDQoJCXRvbGVyYW5jZTogImludGVyc2VjdCIsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWFjdGl2YXRlOiBudWxsLA0KCQlkZWFjdGl2YXRlOiBudWxsLA0KCQlkcm9wOiBudWxsLA0KCQlvdXQ6IG51bGwsDQoJCW92ZXI6IG51bGwNCgl9LA0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KDQoJCXZhciBwcm9wb3J0aW9ucywNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlhY2NlcHQgPSBvLmFjY2VwdDsNCg0KCQl0aGlzLmlzb3ZlciA9IGZhbHNlOw0KCQl0aGlzLmlzb3V0ID0gdHJ1ZTsNCg0KCQl0aGlzLmFjY2VwdCA9ICQuaXNGdW5jdGlvbiggYWNjZXB0ICkgPyBhY2NlcHQgOiBmdW5jdGlvbiggZCApIHsNCgkJCXJldHVybiBkLmlzKCBhY2NlcHQgKTsNCgkJfTsNCg0KCQl0aGlzLnByb3BvcnRpb25zID0gZnVuY3Rpb24oIC8qIHZhbHVlVG9Xcml0ZSAqLyApIHsNCgkJCWlmICggYXJndW1lbnRzLmxlbmd0aCApIHsNCgkJCQkvLyBTdG9yZSB0aGUgZHJvcHBhYmxlJ3MgcHJvcG9ydGlvbnMNCgkJCQlwcm9wb3J0aW9ucyA9IGFyZ3VtZW50c1sgMCBdOw0KCQkJfSBlbHNlIHsNCgkJCQkvLyBSZXRyaWV2ZSBvciBkZXJpdmUgdGhlIGRyb3BwYWJsZSdzIHByb3BvcnRpb25zDQoJCQkJcmV0dXJuIHByb3BvcnRpb25zID8NCgkJCQkJcHJvcG9ydGlvbnMgOg0KCQkJCQlwcm9wb3J0aW9ucyA9IHsNCgkJCQkJCXdpZHRoOiB0aGlzLmVsZW1lbnRbIDAgXS5vZmZzZXRXaWR0aCwNCgkJCQkJCWhlaWdodDogdGhpcy5lbGVtZW50WyAwIF0ub2Zmc2V0SGVpZ2h0DQoJCQkJCX07DQoJCQl9DQoJCX07DQoNCgkJdGhpcy5fYWRkVG9NYW5hZ2VyKCBvLnNjb3BlICk7DQoNCgkJby5hZGRDbGFzc2VzICYmIHRoaXMuZWxlbWVudC5hZGRDbGFzcyggInVpLWRyb3BwYWJsZSIgKTsNCg0KCX0sDQoNCglfYWRkVG9NYW5hZ2VyOiBmdW5jdGlvbiggc2NvcGUgKSB7DQoJCS8vIEFkZCB0aGUgcmVmZXJlbmNlIGFuZCBwb3NpdGlvbnMgdG8gdGhlIG1hbmFnZXINCgkJJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgc2NvcGUgXSA9ICQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHNjb3BlIF0gfHwgW107DQoJCSQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHNjb3BlIF0ucHVzaCggdGhpcyApOw0KCX0sDQoNCglfc3BsaWNlOiBmdW5jdGlvbiggZHJvcCApIHsNCgkJdmFyIGkgPSAwOw0KCQlmb3IgKCA7IGkgPCBkcm9wLmxlbmd0aDsgaSsrICkgew0KCQkJaWYgKCBkcm9wWyBpIF0gPT09IHRoaXMgKSB7DQoJCQkJZHJvcC5zcGxpY2UoIGksIDEgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBkcm9wID0gJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgdGhpcy5vcHRpb25zLnNjb3BlIF07DQoNCgkJdGhpcy5fc3BsaWNlKCBkcm9wICk7DQoNCgkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCAidWktZHJvcHBhYmxlIHVpLWRyb3BwYWJsZS1kaXNhYmxlZCIgKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoNCgkJaWYgKCBrZXkgPT09ICJhY2NlcHQiICkgew0KCQkJdGhpcy5hY2NlcHQgPSAkLmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSA6IGZ1bmN0aW9uKCBkICkgew0KCQkJCXJldHVybiBkLmlzKCB2YWx1ZSApOw0KCQkJfTsNCgkJfSBlbHNlIGlmICgga2V5ID09PSAic2NvcGUiICkgew0KCQkJdmFyIGRyb3AgPSAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyB0aGlzLm9wdGlvbnMuc2NvcGUgXTsNCg0KCQkJdGhpcy5fc3BsaWNlKCBkcm9wICk7DQoJCQl0aGlzLl9hZGRUb01hbmFnZXIoIHZhbHVlICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCX0sDQoNCglfYWN0aXZhdGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGRyYWdnYWJsZSA9ICQudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7DQoJCWlmICggdGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzICkgew0KCQkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKTsNCgkJfQ0KCQlpZiAoIGRyYWdnYWJsZSApew0KCQkJdGhpcy5fdHJpZ2dlciggImFjdGl2YXRlIiwgZXZlbnQsIHRoaXMudWkoIGRyYWdnYWJsZSApICk7DQoJCX0NCgl9LA0KDQoJX2RlYWN0aXZhdGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGRyYWdnYWJsZSA9ICQudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7DQoJCWlmICggdGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzICkgew0KCQkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKTsNCgkJfQ0KCQlpZiAoIGRyYWdnYWJsZSApew0KCQkJdGhpcy5fdHJpZ2dlciggImRlYWN0aXZhdGUiLCBldmVudCwgdGhpcy51aSggZHJhZ2dhYmxlICkgKTsNCgkJfQ0KCX0sDQoNCglfb3ZlcjogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KDQoJCS8vIEJhaWwgaWYgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgYXJlIHNhbWUgZWxlbWVudA0KCQlpZiAoICFkcmFnZ2FibGUgfHwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKVsgMCBdID09PSB0aGlzLmVsZW1lbnRbIDAgXSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggdGhpcy5hY2NlcHQuY2FsbCggdGhpcy5lbGVtZW50WyAwIF0sICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50ICkgKSApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MgKSB7DQoJCQkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCB0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyApOw0KCQkJfQ0KCQkJdGhpcy5fdHJpZ2dlciggIm92ZXIiLCBldmVudCwgdGhpcy51aSggZHJhZ2dhYmxlICkgKTsNCgkJfQ0KDQoJfSwNCg0KCV9vdXQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQl2YXIgZHJhZ2dhYmxlID0gJC51aS5kZG1hbmFnZXIuY3VycmVudDsNCg0KCQkvLyBCYWlsIGlmIGRyYWdnYWJsZSBhbmQgZHJvcHBhYmxlIGFyZSBzYW1lIGVsZW1lbnQNCgkJaWYgKCAhZHJhZ2dhYmxlIHx8ICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50IClbIDAgXSA9PT0gdGhpcy5lbGVtZW50WyAwIF0gKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMuYWNjZXB0LmNhbGwoIHRoaXMuZWxlbWVudFsgMCBdLCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICkgew0KCQkJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MgKTsNCgkJCX0NCgkJCXRoaXMuX3RyaWdnZXIoICJvdXQiLCBldmVudCwgdGhpcy51aSggZHJhZ2dhYmxlICkgKTsNCgkJfQ0KDQoJfSwNCg0KCV9kcm9wOiBmdW5jdGlvbiggZXZlbnQsIGN1c3RvbSApIHsNCg0KCQl2YXIgZHJhZ2dhYmxlID0gY3VzdG9tIHx8ICQudWkuZGRtYW5hZ2VyLmN1cnJlbnQsDQoJCQljaGlsZHJlbkludGVyc2VjdGlvbiA9IGZhbHNlOw0KDQoJCS8vIEJhaWwgaWYgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgYXJlIHNhbWUgZWxlbWVudA0KCQlpZiAoICFkcmFnZ2FibGUgfHwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKVsgMCBdID09PSB0aGlzLmVsZW1lbnRbIDAgXSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuZWxlbWVudC5maW5kKCAiOmRhdGEodWktZHJvcHBhYmxlKSIgKS5ub3QoICIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIiApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgaW5zdCA9ICQoIHRoaXMgKS5kcm9wcGFibGUoICJpbnN0YW5jZSIgKTsNCgkJCWlmICgNCgkJCQlpbnN0Lm9wdGlvbnMuZ3JlZWR5ICYmDQoJCQkJIWluc3Qub3B0aW9ucy5kaXNhYmxlZCAmJg0KCQkJCWluc3Qub3B0aW9ucy5zY29wZSA9PT0gZHJhZ2dhYmxlLm9wdGlvbnMuc2NvcGUgJiYNCgkJCQlpbnN0LmFjY2VwdC5jYWxsKCBpbnN0LmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwgZHJhZ2dhYmxlLmVsZW1lbnQgKSApICYmDQoJCQkJJC51aS5pbnRlcnNlY3QoIGRyYWdnYWJsZSwgJC5leHRlbmQoIGluc3QsIHsgb2Zmc2V0OiBpbnN0LmVsZW1lbnQub2Zmc2V0KCkgfSApLCBpbnN0Lm9wdGlvbnMudG9sZXJhbmNlLCBldmVudCApDQoJCQkpIHsgY2hpbGRyZW5JbnRlcnNlY3Rpb24gPSB0cnVlOyByZXR1cm4gZmFsc2U7IH0NCgkJfSk7DQoJCWlmICggY2hpbGRyZW5JbnRlcnNlY3Rpb24gKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlpZiAoIHRoaXMuYWNjZXB0LmNhbGwoIHRoaXMuZWxlbWVudFsgMCBdLCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApOw0KCQkJfQ0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyApIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICk7DQoJCQl9DQoJCQl0aGlzLl90cmlnZ2VyKCAiZHJvcCIsIGV2ZW50LCB0aGlzLnVpKCBkcmFnZ2FibGUgKSApOw0KCQkJcmV0dXJuIHRoaXMuZWxlbWVudDsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCgl1aTogZnVuY3Rpb24oIGMgKSB7DQoJCXJldHVybiB7DQoJCQlkcmFnZ2FibGU6ICggYy5jdXJyZW50SXRlbSB8fCBjLmVsZW1lbnQgKSwNCgkJCWhlbHBlcjogYy5oZWxwZXIsDQoJCQlwb3NpdGlvbjogYy5wb3NpdGlvbiwNCgkJCW9mZnNldDogYy5wb3NpdGlvbkFicw0KCQl9Ow0KCX0NCg0KfSk7DQoNCiQudWkuaW50ZXJzZWN0ID0gKGZ1bmN0aW9uKCkgew0KCWZ1bmN0aW9uIGlzT3ZlckF4aXMoIHgsIHJlZmVyZW5jZSwgc2l6ZSApIHsNCgkJcmV0dXJuICggeCA+PSByZWZlcmVuY2UgKSAmJiAoIHggPCAoIHJlZmVyZW5jZSArIHNpemUgKSApOw0KCX0NCg0KCXJldHVybiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBkcm9wcGFibGUsIHRvbGVyYW5jZU1vZGUsIGV2ZW50ICkgew0KDQoJCWlmICggIWRyb3BwYWJsZS5vZmZzZXQgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl2YXIgeDEgPSAoIGRyYWdnYWJsZS5wb3NpdGlvbkFicyB8fCBkcmFnZ2FibGUucG9zaXRpb24uYWJzb2x1dGUgKS5sZWZ0ICsgZHJhZ2dhYmxlLm1hcmdpbnMubGVmdCwNCgkJCXkxID0gKCBkcmFnZ2FibGUucG9zaXRpb25BYnMgfHwgZHJhZ2dhYmxlLnBvc2l0aW9uLmFic29sdXRlICkudG9wICsgZHJhZ2dhYmxlLm1hcmdpbnMudG9wLA0KCQkJeDIgPSB4MSArIGRyYWdnYWJsZS5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCwNCgkJCXkyID0geTEgKyBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LA0KCQkJbCA9IGRyb3BwYWJsZS5vZmZzZXQubGVmdCwNCgkJCXQgPSBkcm9wcGFibGUub2Zmc2V0LnRvcCwNCgkJCXIgPSBsICsgZHJvcHBhYmxlLnByb3BvcnRpb25zKCkud2lkdGgsDQoJCQliID0gdCArIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLmhlaWdodDsNCg0KCQlzd2l0Y2ggKCB0b2xlcmFuY2VNb2RlICkgew0KCQljYXNlICJmaXQiOg0KCQkJcmV0dXJuICggbCA8PSB4MSAmJiB4MiA8PSByICYmIHQgPD0geTEgJiYgeTIgPD0gYiApOw0KCQljYXNlICJpbnRlcnNlY3QiOg0KCQkJcmV0dXJuICggbCA8IHgxICsgKCBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLyAyICkgJiYgLy8gUmlnaHQgSGFsZg0KCQkJCXgyIC0gKCBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLyAyICkgPCByICYmIC8vIExlZnQgSGFsZg0KCQkJCXQgPCB5MSArICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAvIDIgKSAmJiAvLyBCb3R0b20gSGFsZg0KCQkJCXkyIC0gKCBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC8gMiApIDwgYiApOyAvLyBUb3AgSGFsZg0KCQljYXNlICJwb2ludGVyIjoNCgkJCXJldHVybiBpc092ZXJBeGlzKCBldmVudC5wYWdlWSwgdCwgZHJvcHBhYmxlLnByb3BvcnRpb25zKCkuaGVpZ2h0ICkgJiYgaXNPdmVyQXhpcyggZXZlbnQucGFnZVgsIGwsIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLndpZHRoICk7DQoJCWNhc2UgInRvdWNoIjoNCgkJCXJldHVybiAoDQoJCQkJKCB5MSA+PSB0ICYmIHkxIDw9IGIgKSB8fCAvLyBUb3AgZWRnZSB0b3VjaGluZw0KCQkJCSggeTIgPj0gdCAmJiB5MiA8PSBiICkgfHwgLy8gQm90dG9tIGVkZ2UgdG91Y2hpbmcNCgkJCQkoIHkxIDwgdCAmJiB5MiA+IGIgKSAvLyBTdXJyb3VuZGVkIHZlcnRpY2FsbHkNCgkJCSkgJiYgKA0KCQkJCSggeDEgPj0gbCAmJiB4MSA8PSByICkgfHwgLy8gTGVmdCBlZGdlIHRvdWNoaW5nDQoJCQkJKCB4MiA+PSBsICYmIHgyIDw9IHIgKSB8fCAvLyBSaWdodCBlZGdlIHRvdWNoaW5nDQoJCQkJKCB4MSA8IGwgJiYgeDIgPiByICkgLy8gU3Vycm91bmRlZCBob3Jpem9udGFsbHkNCgkJCSk7DQoJCWRlZmF1bHQ6DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9Ow0KfSkoKTsNCg0KLyoNCglUaGlzIG1hbmFnZXIgdHJhY2tzIG9mZnNldHMgb2YgZHJhZ2dhYmxlcyBhbmQgZHJvcHBhYmxlcw0KKi8NCiQudWkuZGRtYW5hZ2VyID0gew0KCWN1cnJlbnQ6IG51bGwsDQoJZHJvcHBhYmxlczogeyAiZGVmYXVsdCI6IFtdIH0sDQoJcHJlcGFyZU9mZnNldHM6IGZ1bmN0aW9uKCB0LCBldmVudCApIHsNCg0KCQl2YXIgaSwgaiwNCgkJCW0gPSAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyB0Lm9wdGlvbnMuc2NvcGUgXSB8fCBbXSwNCgkJCXR5cGUgPSBldmVudCA/IGV2ZW50LnR5cGUgOiBudWxsLCAvLyB3b3JrYXJvdW5kIGZvciAjMjMxNw0KCQkJbGlzdCA9ICggdC5jdXJyZW50SXRlbSB8fCB0LmVsZW1lbnQgKS5maW5kKCAiOmRhdGEodWktZHJvcHBhYmxlKSIgKS5hZGRCYWNrKCk7DQoNCgkJZHJvcHBhYmxlc0xvb3A6IGZvciAoIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKyApIHsNCg0KCQkJLy8gTm8gZGlzYWJsZWQgYW5kIG5vbi1hY2NlcHRlZA0KCQkJaWYgKCBtWyBpIF0ub3B0aW9ucy5kaXNhYmxlZCB8fCAoIHQgJiYgIW1bIGkgXS5hY2NlcHQuY2FsbCggbVsgaSBdLmVsZW1lbnRbIDAgXSwgKCB0LmN1cnJlbnRJdGVtIHx8IHQuZWxlbWVudCApICkgKSApIHsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJLy8gRmlsdGVyIG91dCBlbGVtZW50cyBpbiB0aGUgY3VycmVudCBkcmFnZ2VkIGl0ZW0NCgkJCWZvciAoIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKyApIHsNCgkJCQlpZiAoIGxpc3RbIGogXSA9PT0gbVsgaSBdLmVsZW1lbnRbIDAgXSApIHsNCgkJCQkJbVsgaSBdLnByb3BvcnRpb25zKCkuaGVpZ2h0ID0gMDsNCgkJCQkJY29udGludWUgZHJvcHBhYmxlc0xvb3A7DQoJCQkJfQ0KCQkJfQ0KDQoJCQltWyBpIF0udmlzaWJsZSA9IG1bIGkgXS5lbGVtZW50LmNzcyggImRpc3BsYXkiICkgIT09ICJub25lIjsNCgkJCWlmICggIW1bIGkgXS52aXNpYmxlICkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyBBY3RpdmF0ZSB0aGUgZHJvcHBhYmxlIGlmIHVzZWQgZGlyZWN0bHkgZnJvbSBkcmFnZ2FibGVzDQoJCQlpZiAoIHR5cGUgPT09ICJtb3VzZWRvd24iICkgew0KCQkJCW1bIGkgXS5fYWN0aXZhdGUuY2FsbCggbVsgaSBdLCBldmVudCApOw0KCQkJfQ0KDQoJCQltWyBpIF0ub2Zmc2V0ID0gbVsgaSBdLmVsZW1lbnQub2Zmc2V0KCk7DQoJCQltWyBpIF0ucHJvcG9ydGlvbnMoeyB3aWR0aDogbVsgaSBdLmVsZW1lbnRbIDAgXS5vZmZzZXRXaWR0aCwgaGVpZ2h0OiBtWyBpIF0uZWxlbWVudFsgMCBdLm9mZnNldEhlaWdodCB9KTsNCg0KCQl9DQoNCgl9LA0KCWRyb3A6IGZ1bmN0aW9uKCBkcmFnZ2FibGUsIGV2ZW50ICkgew0KDQoJCXZhciBkcm9wcGVkID0gZmFsc2U7DQoJCS8vIENyZWF0ZSBhIGNvcHkgb2YgdGhlIGRyb3BwYWJsZXMgaW4gY2FzZSB0aGUgbGlzdCBjaGFuZ2VzIGR1cmluZyB0aGUgZHJvcCAoIzkxMTYpDQoJCSQuZWFjaCggKCAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBkcmFnZ2FibGUub3B0aW9ucy5zY29wZSBdIHx8IFtdICkuc2xpY2UoKSwgZnVuY3Rpb24oKSB7DQoNCgkJCWlmICggIXRoaXMub3B0aW9ucyApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQlpZiAoICF0aGlzLm9wdGlvbnMuZGlzYWJsZWQgJiYgdGhpcy52aXNpYmxlICYmICQudWkuaW50ZXJzZWN0KCBkcmFnZ2FibGUsIHRoaXMsIHRoaXMub3B0aW9ucy50b2xlcmFuY2UsIGV2ZW50ICkgKSB7DQoJCQkJZHJvcHBlZCA9IHRoaXMuX2Ryb3AuY2FsbCggdGhpcywgZXZlbnQgKSB8fCBkcm9wcGVkOw0KCQkJfQ0KDQoJCQlpZiAoICF0aGlzLm9wdGlvbnMuZGlzYWJsZWQgJiYgdGhpcy52aXNpYmxlICYmIHRoaXMuYWNjZXB0LmNhbGwoIHRoaXMuZWxlbWVudFsgMCBdLCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQkJdGhpcy5pc291dCA9IHRydWU7DQoJCQkJdGhpcy5pc292ZXIgPSBmYWxzZTsNCgkJCQl0aGlzLl9kZWFjdGl2YXRlLmNhbGwoIHRoaXMsIGV2ZW50ICk7DQoJCQl9DQoNCgkJfSk7DQoJCXJldHVybiBkcm9wcGVkOw0KDQoJfSwNCglkcmFnU3RhcnQ6IGZ1bmN0aW9uKCBkcmFnZ2FibGUsIGV2ZW50ICkgew0KCQkvLyBMaXN0ZW4gZm9yIHNjcm9sbGluZyBzbyB0aGF0IGlmIHRoZSBkcmFnZ2luZyBjYXVzZXMgc2Nyb2xsaW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZHJvcHBhYmxlcyBjYW4gYmUgcmVjYWxjdWxhdGVkIChzZWUgIzUwMDMpDQoJCWRyYWdnYWJsZS5lbGVtZW50LnBhcmVudHNVbnRpbCggImJvZHkiICkuYmluZCggInNjcm9sbC5kcm9wcGFibGUiLCBmdW5jdGlvbigpIHsNCgkJCWlmICggIWRyYWdnYWJsZS5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMgKSB7DQoJCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIGRyYWdnYWJsZSwgZXZlbnQgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCglkcmFnOiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBldmVudCApIHsNCg0KCQkvLyBJZiB5b3UgaGF2ZSBhIGhpZ2hseSBkeW5hbWljIHBhZ2UsIHlvdSBtaWdodCB0cnkgdGhpcyBvcHRpb24uIEl0IHJlbmRlcnMgcG9zaXRpb25zIGV2ZXJ5IHRpbWUgeW91IG1vdmUgdGhlIG1vdXNlLg0KCQlpZiAoIGRyYWdnYWJsZS5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyggZHJhZ2dhYmxlLCBldmVudCApOw0KCQl9DQoNCgkJLy8gUnVuIHRocm91Z2ggYWxsIGRyb3BwYWJsZXMgYW5kIGNoZWNrIHRoZWlyIHBvc2l0aW9ucyBiYXNlZCBvbiBzcGVjaWZpYyB0b2xlcmFuY2Ugb3B0aW9ucw0KCQkkLmVhY2goICQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIGRyYWdnYWJsZS5vcHRpb25zLnNjb3BlIF0gfHwgW10sIGZ1bmN0aW9uKCkgew0KDQoJCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCB8fCB0aGlzLmdyZWVkeUNoaWxkIHx8ICF0aGlzLnZpc2libGUgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl2YXIgcGFyZW50SW5zdGFuY2UsIHNjb3BlLCBwYXJlbnQsDQoJCQkJaW50ZXJzZWN0cyA9ICQudWkuaW50ZXJzZWN0KCBkcmFnZ2FibGUsIHRoaXMsIHRoaXMub3B0aW9ucy50b2xlcmFuY2UsIGV2ZW50ICksDQoJCQkJYyA9ICFpbnRlcnNlY3RzICYmIHRoaXMuaXNvdmVyID8gImlzb3V0IiA6ICggaW50ZXJzZWN0cyAmJiAhdGhpcy5pc292ZXIgPyAiaXNvdmVyIiA6IG51bGwgKTsNCgkJCWlmICggIWMgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZiAoIHRoaXMub3B0aW9ucy5ncmVlZHkgKSB7DQoJCQkJLy8gZmluZCBkcm9wcGFibGUgcGFyZW50cyB3aXRoIHNhbWUgc2NvcGUNCgkJCQlzY29wZSA9IHRoaXMub3B0aW9ucy5zY29wZTsNCgkJCQlwYXJlbnQgPSB0aGlzLmVsZW1lbnQucGFyZW50cyggIjpkYXRhKHVpLWRyb3BwYWJsZSkiICkuZmlsdGVyKGZ1bmN0aW9uKCkgew0KCQkJCQlyZXR1cm4gJCggdGhpcyApLmRyb3BwYWJsZSggImluc3RhbmNlIiApLm9wdGlvbnMuc2NvcGUgPT09IHNjb3BlOw0KCQkJCX0pOw0KDQoJCQkJaWYgKCBwYXJlbnQubGVuZ3RoICkgew0KCQkJCQlwYXJlbnRJbnN0YW5jZSA9ICQoIHBhcmVudFsgMCBdICkuZHJvcHBhYmxlKCAiaW5zdGFuY2UiICk7DQoJCQkJCXBhcmVudEluc3RhbmNlLmdyZWVkeUNoaWxkID0gKCBjID09PSAiaXNvdmVyIiApOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gd2UganVzdCBtb3ZlZCBpbnRvIGEgZ3JlZWR5IGNoaWxkDQoJCQlpZiAoIHBhcmVudEluc3RhbmNlICYmIGMgPT09ICJpc292ZXIiICkgew0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3ZlciA9IGZhbHNlOw0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3V0ID0gdHJ1ZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5fb3V0LmNhbGwoIHBhcmVudEluc3RhbmNlLCBldmVudCApOw0KCQkJfQ0KDQoJCQl0aGlzWyBjIF0gPSB0cnVlOw0KCQkJdGhpc1tjID09PSAiaXNvdXQiID8gImlzb3ZlciIgOiAiaXNvdXQiXSA9IGZhbHNlOw0KCQkJdGhpc1tjID09PSAiaXNvdmVyIiA/ICJfb3ZlciIgOiAiX291dCJdLmNhbGwoIHRoaXMsIGV2ZW50ICk7DQoNCgkJCS8vIHdlIGp1c3QgbW92ZWQgb3V0IG9mIGEgZ3JlZWR5IGNoaWxkDQoJCQlpZiAoIHBhcmVudEluc3RhbmNlICYmIGMgPT09ICJpc291dCIgKSB7DQoJCQkJcGFyZW50SW5zdGFuY2UuaXNvdXQgPSBmYWxzZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5pc292ZXIgPSB0cnVlOw0KCQkJCXBhcmVudEluc3RhbmNlLl9vdmVyLmNhbGwoIHBhcmVudEluc3RhbmNlLCBldmVudCApOw0KCQkJfQ0KCQl9KTsNCg0KCX0sDQoJZHJhZ1N0b3A6IGZ1bmN0aW9uKCBkcmFnZ2FibGUsIGV2ZW50ICkgew0KCQlkcmFnZ2FibGUuZWxlbWVudC5wYXJlbnRzVW50aWwoICJib2R5IiApLnVuYmluZCggInNjcm9sbC5kcm9wcGFibGUiICk7DQoJCS8vIENhbGwgcHJlcGFyZU9mZnNldHMgb25lIGZpbmFsIHRpbWUgc2luY2UgSUUgZG9lcyBub3QgZmlyZSByZXR1cm4gc2Nyb2xsIGV2ZW50cyB3aGVuIG92ZXJmbG93IHdhcyBjYXVzZWQgYnkgZHJhZyAoc2VlICM1MDAzKQ0KCQlpZiAoICFkcmFnZ2FibGUub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zICkgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIGRyYWdnYWJsZSwgZXZlbnQgKTsNCgkJfQ0KCX0NCn07DQoNCnZhciBkcm9wcGFibGUgPSAkLnVpLmRyb3BwYWJsZTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvZWZmZWN0cy1jb3JlLw0KICovDQoNCg0KdmFyIGRhdGFTcGFjZSA9ICJ1aS1lZmZlY3RzLSIsDQoNCgkvLyBDcmVhdGUgYSBsb2NhbCBqUXVlcnkgYmVjYXVzZSBqUXVlcnkgQ29sb3IgcmVsaWVzIG9uIGl0IGFuZCB0aGUNCgkvLyBnbG9iYWwgbWF5IG5vdCBleGlzdCB3aXRoIEFNRCBhbmQgYSBjdXN0b20gYnVpbGQgKCMxMDE5OSkNCglqUXVlcnkgPSAkOw0KDQokLmVmZmVjdHMgPSB7DQoJZWZmZWN0OiB7fQ0KfTsNCg0KLyohDQogKiBqUXVlcnkgQ29sb3IgQW5pbWF0aW9ucyB2Mi4xLjINCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LWNvbG9yDQogKg0KICogQ29weXJpZ2h0IDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIERhdGU6IFdlZCBKYW4gMTYgMDg6NDc6MDkgMjAxMyAtMDYwMA0KICovDQooZnVuY3Rpb24oIGpRdWVyeSwgdW5kZWZpbmVkICkgew0KDQoJdmFyIHN0ZXBIb29rcyA9ICJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyVG9wQ29sb3IgY29sb3IgY29sdW1uUnVsZUNvbG9yIG91dGxpbmVDb2xvciB0ZXh0RGVjb3JhdGlvbkNvbG9yIHRleHRFbXBoYXNpc0NvbG9yIiwNCg0KCS8vIHBsdXNlcXVhbHMgdGVzdCBmb3IgKz0gMTAwIC09IDEwMA0KCXJwbHVzZXF1YWxzID0gL14oW1wtK10pPVxzKihcZCtcLj9cZCopLywNCgkvLyBhIHNldCBvZiBSRSdzIHRoYXQgY2FuIG1hdGNoIHN0cmluZ3MgYW5kIGdlbmVyYXRlIGNvbG9yIHR1cGxlcy4NCglzdHJpbmdQYXJzZXJzID0gWyB7DQoJCQlyZTogL3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0sDQoJCQkJCWV4ZWNSZXN1bHRbIDIgXSwNCgkJCQkJZXhlY1Jlc3VsdFsgMyBdLA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9LCB7DQoJCQlyZTogL3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyAyIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyAzIF0gKiAyLjU1LA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9LCB7DQoJCQkvLyB0aGlzIHJlZ2V4IGlnbm9yZXMgQS1GIGJlY2F1c2UgaXQncyBjb21wYXJlZCBhZ2FpbnN0IGFuIGFscmVhZHkgbG93ZXJjYXNlZCBzdHJpbmcNCgkJCXJlOiAvIyhbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KS8sDQoJCQlwYXJzZTogZnVuY3Rpb24oIGV4ZWNSZXN1bHQgKSB7DQoJCQkJcmV0dXJuIFsNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDEgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDIgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDMgXSwgMTYgKQ0KCQkJCV07DQoJCQl9DQoJCX0sIHsNCgkJCS8vIHRoaXMgcmVnZXggaWdub3JlcyBBLUYgYmVjYXVzZSBpdCdzIGNvbXBhcmVkIGFnYWluc3QgYW4gYWxyZWFkeSBsb3dlcmNhc2VkIHN0cmluZw0KCQkJcmU6IC8jKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pLywNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMSBdICsgZXhlY1Jlc3VsdFsgMSBdLCAxNiApLA0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMiBdICsgZXhlY1Jlc3VsdFsgMiBdLCAxNiApLA0KCQkJCQlwYXJzZUludCggZXhlY1Jlc3VsdFsgMyBdICsgZXhlY1Jlc3VsdFsgMyBdLCAxNiApDQoJCQkJXTsNCgkJCX0NCgkJfSwgew0KCQkJcmU6IC9oc2xhP1woXHMqKFxkKyg/OlwuXGQrKT8pXHMqLFxzKihcZCsoPzpcLlxkKyk/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk/KVwlXHMqKD86LFxzKihcZD8oPzpcLlxkKyk/KVxzKik/XCkvLA0KCQkJc3BhY2U6ICJoc2xhIiwNCgkJCXBhcnNlOiBmdW5jdGlvbiggZXhlY1Jlc3VsdCApIHsNCgkJCQlyZXR1cm4gWw0KCQkJCQlleGVjUmVzdWx0WyAxIF0sDQoJCQkJCWV4ZWNSZXN1bHRbIDIgXSAvIDEwMCwNCgkJCQkJZXhlY1Jlc3VsdFsgMyBdIC8gMTAwLA0KCQkJCQlleGVjUmVzdWx0WyA0IF0NCgkJCQldOw0KCQkJfQ0KCQl9IF0sDQoNCgkvLyBqUXVlcnkuQ29sb3IoICkNCgljb2xvciA9IGpRdWVyeS5Db2xvciA9IGZ1bmN0aW9uKCBjb2xvciwgZ3JlZW4sIGJsdWUsIGFscGhhICkgew0KCQlyZXR1cm4gbmV3IGpRdWVyeS5Db2xvci5mbi5wYXJzZSggY29sb3IsIGdyZWVuLCBibHVlLCBhbHBoYSApOw0KCX0sDQoJc3BhY2VzID0gew0KCQlyZ2JhOiB7DQoJCQlwcm9wczogew0KCQkJCXJlZDogew0KCQkJCQlpZHg6IDAsDQoJCQkJCXR5cGU6ICJieXRlIg0KCQkJCX0sDQoJCQkJZ3JlZW46IHsNCgkJCQkJaWR4OiAxLA0KCQkJCQl0eXBlOiAiYnl0ZSINCgkJCQl9LA0KCQkJCWJsdWU6IHsNCgkJCQkJaWR4OiAyLA0KCQkJCQl0eXBlOiAiYnl0ZSINCgkJCQl9DQoJCQl9DQoJCX0sDQoNCgkJaHNsYTogew0KCQkJcHJvcHM6IHsNCgkJCQlodWU6IHsNCgkJCQkJaWR4OiAwLA0KCQkJCQl0eXBlOiAiZGVncmVlcyINCgkJCQl9LA0KCQkJCXNhdHVyYXRpb246IHsNCgkJCQkJaWR4OiAxLA0KCQkJCQl0eXBlOiAicGVyY2VudCINCgkJCQl9LA0KCQkJCWxpZ2h0bmVzczogew0KCQkJCQlpZHg6IDIsDQoJCQkJCXR5cGU6ICJwZXJjZW50Ig0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0sDQoJcHJvcFR5cGVzID0gew0KCQkiYnl0ZSI6IHsNCgkJCWZsb29yOiB0cnVlLA0KCQkJbWF4OiAyNTUNCgkJfSwNCgkJInBlcmNlbnQiOiB7DQoJCQltYXg6IDENCgkJfSwNCgkJImRlZ3JlZXMiOiB7DQoJCQltb2Q6IDM2MCwNCgkJCWZsb29yOiB0cnVlDQoJCX0NCgl9LA0KCXN1cHBvcnQgPSBjb2xvci5zdXBwb3J0ID0ge30sDQoNCgkvLyBlbGVtZW50IGZvciBzdXBwb3J0IHRlc3RzDQoJc3VwcG9ydEVsZW0gPSBqUXVlcnkoICI8cD4iIClbIDAgXSwNCg0KCS8vIGNvbG9ycyA9IGpRdWVyeS5Db2xvci5uYW1lcw0KCWNvbG9ycywNCg0KCS8vIGxvY2FsIGFsaWFzZXMgb2YgZnVuY3Rpb25zIGNhbGxlZCBvZnRlbg0KCWVhY2ggPSBqUXVlcnkuZWFjaDsNCg0KLy8gZGV0ZXJtaW5lIHJnYmEgc3VwcG9ydCBpbW1lZGlhdGVseQ0Kc3VwcG9ydEVsZW0uc3R5bGUuY3NzVGV4dCA9ICJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIjsNCnN1cHBvcnQucmdiYSA9IHN1cHBvcnRFbGVtLnN0eWxlLmJhY2tncm91bmRDb2xvci5pbmRleE9mKCAicmdiYSIgKSA+IC0xOw0KDQovLyBkZWZpbmUgY2FjaGUgbmFtZSBhbmQgYWxwaGEgcHJvcGVydGllcw0KLy8gZm9yIHJnYmEgYW5kIGhzbGEgc3BhY2VzDQplYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBzcGFjZU5hbWUsIHNwYWNlICkgew0KCXNwYWNlLmNhY2hlID0gIl8iICsgc3BhY2VOYW1lOw0KCXNwYWNlLnByb3BzLmFscGhhID0gew0KCQlpZHg6IDMsDQoJCXR5cGU6ICJwZXJjZW50IiwNCgkJZGVmOiAxDQoJfTsNCn0pOw0KDQpmdW5jdGlvbiBjbGFtcCggdmFsdWUsIHByb3AsIGFsbG93RW1wdHkgKSB7DQoJdmFyIHR5cGUgPSBwcm9wVHlwZXNbIHByb3AudHlwZSBdIHx8IHt9Ow0KDQoJaWYgKCB2YWx1ZSA9PSBudWxsICkgew0KCQlyZXR1cm4gKGFsbG93RW1wdHkgfHwgIXByb3AuZGVmKSA/IG51bGwgOiBwcm9wLmRlZjsNCgl9DQoNCgkvLyB+fiBpcyBhbiBzaG9ydCB3YXkgb2YgZG9pbmcgZmxvb3IgZm9yIHBvc2l0aXZlIG51bWJlcnMNCgl2YWx1ZSA9IHR5cGUuZmxvb3IgPyB+fnZhbHVlIDogcGFyc2VGbG9hdCggdmFsdWUgKTsNCg0KCS8vIElFIHdpbGwgcGFzcyBpbiBlbXB0eSBzdHJpbmdzIGFzIHZhbHVlIGZvciBhbHBoYSwNCgkvLyB3aGljaCB3aWxsIGhpdCB0aGlzIGNhc2UNCglpZiAoIGlzTmFOKCB2YWx1ZSApICkgew0KCQlyZXR1cm4gcHJvcC5kZWY7DQoJfQ0KDQoJaWYgKCB0eXBlLm1vZCApIHsNCgkJLy8gd2UgYWRkIG1vZCBiZWZvcmUgbW9kZGluZyB0byBtYWtlIHN1cmUgdGhhdCBuZWdhdGl2ZXMgdmFsdWVzDQoJCS8vIGdldCBjb252ZXJ0ZWQgcHJvcGVybHk6IC0xMCAtPiAzNTANCgkJcmV0dXJuICh2YWx1ZSArIHR5cGUubW9kKSAlIHR5cGUubW9kOw0KCX0NCg0KCS8vIGZvciBub3cgYWxsIHByb3BlcnR5IHR5cGVzIHdpdGhvdXQgbW9kIGhhdmUgbWluIGFuZCBtYXgNCglyZXR1cm4gMCA+IHZhbHVlID8gMCA6IHR5cGUubWF4IDwgdmFsdWUgPyB0eXBlLm1heCA6IHZhbHVlOw0KfQ0KDQpmdW5jdGlvbiBzdHJpbmdQYXJzZSggc3RyaW5nICkgew0KCXZhciBpbnN0ID0gY29sb3IoKSwNCgkJcmdiYSA9IGluc3QuX3JnYmEgPSBbXTsNCg0KCXN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpOw0KDQoJZWFjaCggc3RyaW5nUGFyc2VycywgZnVuY3Rpb24oIGksIHBhcnNlciApIHsNCgkJdmFyIHBhcnNlZCwNCgkJCW1hdGNoID0gcGFyc2VyLnJlLmV4ZWMoIHN0cmluZyApLA0KCQkJdmFsdWVzID0gbWF0Y2ggJiYgcGFyc2VyLnBhcnNlKCBtYXRjaCApLA0KCQkJc3BhY2VOYW1lID0gcGFyc2VyLnNwYWNlIHx8ICJyZ2JhIjsNCg0KCQlpZiAoIHZhbHVlcyApIHsNCgkJCXBhcnNlZCA9IGluc3RbIHNwYWNlTmFtZSBdKCB2YWx1ZXMgKTsNCg0KCQkJLy8gaWYgdGhpcyB3YXMgYW4gcmdiYSBwYXJzZSB0aGUgYXNzaWdubWVudCBtaWdodCBoYXBwZW4gdHdpY2UNCgkJCS8vIG9oIHdlbGwuLi4uDQoJCQlpbnN0WyBzcGFjZXNbIHNwYWNlTmFtZSBdLmNhY2hlIF0gPSBwYXJzZWRbIHNwYWNlc1sgc3BhY2VOYW1lIF0uY2FjaGUgXTsNCgkJCXJnYmEgPSBpbnN0Ll9yZ2JhID0gcGFyc2VkLl9yZ2JhOw0KDQoJCQkvLyBleGl0IGVhY2goIHN0cmluZ1BhcnNlcnMgKSBoZXJlIGJlY2F1c2Ugd2UgbWF0Y2hlZA0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfSk7DQoNCgkvLyBGb3VuZCBhIHN0cmluZ1BhcnNlciB0aGF0IGhhbmRsZWQgaXQNCglpZiAoIHJnYmEubGVuZ3RoICkgew0KDQoJCS8vIGlmIHRoaXMgY2FtZSBmcm9tIGEgcGFyc2VkIHN0cmluZywgZm9yY2UgInRyYW5zcGFyZW50IiB3aGVuIGFscGhhIGlzIDANCgkJLy8gY2hyb21lLCAoYW5kIG1heWJlIG90aGVycykgcmV0dXJuICJ0cmFuc3BhcmVudCIgYXMgcmdiYSgwLDAsMCwwKQ0KCQlpZiAoIHJnYmEuam9pbigpID09PSAiMCwwLDAsMCIgKSB7DQoJCQlqUXVlcnkuZXh0ZW5kKCByZ2JhLCBjb2xvcnMudHJhbnNwYXJlbnQgKTsNCgkJfQ0KCQlyZXR1cm4gaW5zdDsNCgl9DQoNCgkvLyBuYW1lZCBjb2xvcnMNCglyZXR1cm4gY29sb3JzWyBzdHJpbmcgXTsNCn0NCg0KY29sb3IuZm4gPSBqUXVlcnkuZXh0ZW5kKCBjb2xvci5wcm90b3R5cGUsIHsNCglwYXJzZTogZnVuY3Rpb24oIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhICkgew0KCQlpZiAoIHJlZCA9PT0gdW5kZWZpbmVkICkgew0KCQkJdGhpcy5fcmdiYSA9IFsgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCBdOw0KCQkJcmV0dXJuIHRoaXM7DQoJCX0NCgkJaWYgKCByZWQuanF1ZXJ5IHx8IHJlZC5ub2RlVHlwZSApIHsNCgkJCXJlZCA9IGpRdWVyeSggcmVkICkuY3NzKCBncmVlbiApOw0KCQkJZ3JlZW4gPSB1bmRlZmluZWQ7DQoJCX0NCg0KCQl2YXIgaW5zdCA9IHRoaXMsDQoJCQl0eXBlID0galF1ZXJ5LnR5cGUoIHJlZCApLA0KCQkJcmdiYSA9IHRoaXMuX3JnYmEgPSBbXTsNCg0KCQkvLyBtb3JlIHRoYW4gMSBhcmd1bWVudCBzcGVjaWZpZWQgLSBhc3N1bWUgKCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSApDQoJCWlmICggZ3JlZW4gIT09IHVuZGVmaW5lZCApIHsNCgkJCXJlZCA9IFsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgXTsNCgkJCXR5cGUgPSAiYXJyYXkiOw0KCQl9DQoNCgkJaWYgKCB0eXBlID09PSAic3RyaW5nIiApIHsNCgkJCXJldHVybiB0aGlzLnBhcnNlKCBzdHJpbmdQYXJzZSggcmVkICkgfHwgY29sb3JzLl9kZWZhdWx0ICk7DQoJCX0NCg0KCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7DQoJCQllYWNoKCBzcGFjZXMucmdiYS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCQlyZ2JhWyBwcm9wLmlkeCBdID0gY2xhbXAoIHJlZFsgcHJvcC5pZHggXSwgcHJvcCApOw0KCQkJfSk7DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KDQoJCWlmICggdHlwZSA9PT0gIm9iamVjdCIgKSB7DQoJCQlpZiAoIHJlZCBpbnN0YW5jZW9mIGNvbG9yICkgew0KCQkJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQkJCWlmICggcmVkWyBzcGFjZS5jYWNoZSBdICkgew0KCQkJCQkJaW5zdFsgc3BhY2UuY2FjaGUgXSA9IHJlZFsgc3BhY2UuY2FjaGUgXS5zbGljZSgpOw0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9IGVsc2Ugew0KCQkJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQkJCXZhciBjYWNoZSA9IHNwYWNlLmNhY2hlOw0KCQkJCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCg0KCQkJCQkJLy8gaWYgdGhlIGNhY2hlIGRvZXNuJ3QgZXhpc3QsIGFuZCB3ZSBrbm93IGhvdyB0byBjb252ZXJ0DQoJCQkJCQlpZiAoICFpbnN0WyBjYWNoZSBdICYmIHNwYWNlLnRvICkgew0KDQoJCQkJCQkJLy8gaWYgdGhlIHZhbHVlIHdhcyBudWxsLCB3ZSBkb24ndCBuZWVkIHRvIGNvcHkgaXQNCgkJCQkJCQkvLyBpZiB0aGUga2V5IHdhcyBhbHBoYSwgd2UgZG9uJ3QgbmVlZCB0byBjb3B5IGl0IGVpdGhlcg0KCQkJCQkJCWlmICgga2V5ID09PSAiYWxwaGEiIHx8IHJlZFsga2V5IF0gPT0gbnVsbCApIHsNCgkJCQkJCQkJcmV0dXJuOw0KCQkJCQkJCX0NCgkJCQkJCQlpbnN0WyBjYWNoZSBdID0gc3BhY2UudG8oIGluc3QuX3JnYmEgKTsNCgkJCQkJCX0NCg0KCQkJCQkJLy8gdGhpcyBpcyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIGFsbG93IG51bGxzIGZvciBBTEwgcHJvcGVydGllcy4NCgkJCQkJCS8vIGNhbGwgY2xhbXAgd2l0aCBhbHdheXNBbGxvd0VtcHR5DQoJCQkJCQlpbnN0WyBjYWNoZSBdWyBwcm9wLmlkeCBdID0gY2xhbXAoIHJlZFsga2V5IF0sIHByb3AsIHRydWUgKTsNCgkJCQkJfSk7DQoNCgkJCQkJLy8gZXZlcnl0aGluZyBkZWZpbmVkIGJ1dCBhbHBoYT8NCgkJCQkJaWYgKCBpbnN0WyBjYWNoZSBdICYmIGpRdWVyeS5pbkFycmF5KCBudWxsLCBpbnN0WyBjYWNoZSBdLnNsaWNlKCAwLCAzICkgKSA8IDAgKSB7DQoJCQkJCQkvLyB1c2UgdGhlIGRlZmF1bHQgb2YgMQ0KCQkJCQkJaW5zdFsgY2FjaGUgXVsgMyBdID0gMTsNCgkJCQkJCWlmICggc3BhY2UuZnJvbSApIHsNCgkJCQkJCQlpbnN0Ll9yZ2JhID0gc3BhY2UuZnJvbSggaW5zdFsgY2FjaGUgXSApOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfSk7DQoJCQl9DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KCX0sDQoJaXM6IGZ1bmN0aW9uKCBjb21wYXJlICkgew0KCQl2YXIgaXMgPSBjb2xvciggY29tcGFyZSApLA0KCQkJc2FtZSA9IHRydWUsDQoJCQlpbnN0ID0gdGhpczsNCg0KCQllYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBfLCBzcGFjZSApIHsNCgkJCXZhciBsb2NhbENhY2hlLA0KCQkJCWlzQ2FjaGUgPSBpc1sgc3BhY2UuY2FjaGUgXTsNCgkJCWlmIChpc0NhY2hlKSB7DQoJCQkJbG9jYWxDYWNoZSA9IGluc3RbIHNwYWNlLmNhY2hlIF0gfHwgc3BhY2UudG8gJiYgc3BhY2UudG8oIGluc3QuX3JnYmEgKSB8fCBbXTsNCgkJCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIF8sIHByb3AgKSB7DQoJCQkJCWlmICggaXNDYWNoZVsgcHJvcC5pZHggXSAhPSBudWxsICkgew0KCQkJCQkJc2FtZSA9ICggaXNDYWNoZVsgcHJvcC5pZHggXSA9PT0gbG9jYWxDYWNoZVsgcHJvcC5pZHggXSApOw0KCQkJCQkJcmV0dXJuIHNhbWU7DQoJCQkJCX0NCgkJCQl9KTsNCgkJCX0NCgkJCXJldHVybiBzYW1lOw0KCQl9KTsNCgkJcmV0dXJuIHNhbWU7DQoJfSwNCglfc3BhY2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdXNlZCA9IFtdLA0KCQkJaW5zdCA9IHRoaXM7DQoJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQlpZiAoIGluc3RbIHNwYWNlLmNhY2hlIF0gKSB7DQoJCQkJdXNlZC5wdXNoKCBzcGFjZU5hbWUgKTsNCgkJCX0NCgkJfSk7DQoJCXJldHVybiB1c2VkLnBvcCgpOw0KCX0sDQoJdHJhbnNpdGlvbjogZnVuY3Rpb24oIG90aGVyLCBkaXN0YW5jZSApIHsNCgkJdmFyIGVuZCA9IGNvbG9yKCBvdGhlciApLA0KCQkJc3BhY2VOYW1lID0gZW5kLl9zcGFjZSgpLA0KCQkJc3BhY2UgPSBzcGFjZXNbIHNwYWNlTmFtZSBdLA0KCQkJc3RhcnRDb2xvciA9IHRoaXMuYWxwaGEoKSA9PT0gMCA/IGNvbG9yKCAidHJhbnNwYXJlbnQiICkgOiB0aGlzLA0KCQkJc3RhcnQgPSBzdGFydENvbG9yWyBzcGFjZS5jYWNoZSBdIHx8IHNwYWNlLnRvKCBzdGFydENvbG9yLl9yZ2JhICksDQoJCQlyZXN1bHQgPSBzdGFydC5zbGljZSgpOw0KDQoJCWVuZCA9IGVuZFsgc3BhY2UuY2FjaGUgXTsNCgkJZWFjaCggc3BhY2UucHJvcHMsIGZ1bmN0aW9uKCBrZXksIHByb3AgKSB7DQoJCQl2YXIgaW5kZXggPSBwcm9wLmlkeCwNCgkJCQlzdGFydFZhbHVlID0gc3RhcnRbIGluZGV4IF0sDQoJCQkJZW5kVmFsdWUgPSBlbmRbIGluZGV4IF0sDQoJCQkJdHlwZSA9IHByb3BUeXBlc1sgcHJvcC50eXBlIF0gfHwge307DQoNCgkJCS8vIGlmIG51bGwsIGRvbid0IG92ZXJyaWRlIHN0YXJ0IHZhbHVlDQoJCQlpZiAoIGVuZFZhbHVlID09PSBudWxsICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCS8vIGlmIG51bGwgLSB1c2UgZW5kDQoJCQlpZiAoIHN0YXJ0VmFsdWUgPT09IG51bGwgKSB7DQoJCQkJcmVzdWx0WyBpbmRleCBdID0gZW5kVmFsdWU7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggdHlwZS5tb2QgKSB7DQoJCQkJCWlmICggZW5kVmFsdWUgLSBzdGFydFZhbHVlID4gdHlwZS5tb2QgLyAyICkgew0KCQkJCQkJc3RhcnRWYWx1ZSArPSB0eXBlLm1vZDsNCgkJCQkJfSBlbHNlIGlmICggc3RhcnRWYWx1ZSAtIGVuZFZhbHVlID4gdHlwZS5tb2QgLyAyICkgew0KCQkJCQkJc3RhcnRWYWx1ZSAtPSB0eXBlLm1vZDsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXN1bHRbIGluZGV4IF0gPSBjbGFtcCggKCBlbmRWYWx1ZSAtIHN0YXJ0VmFsdWUgKSAqIGRpc3RhbmNlICsgc3RhcnRWYWx1ZSwgcHJvcCApOw0KCQkJfQ0KCQl9KTsNCgkJcmV0dXJuIHRoaXNbIHNwYWNlTmFtZSBdKCByZXN1bHQgKTsNCgl9LA0KCWJsZW5kOiBmdW5jdGlvbiggb3BhcXVlICkgew0KCQkvLyBpZiB3ZSBhcmUgYWxyZWFkeSBvcGFxdWUgLSByZXR1cm4gb3Vyc2VsZg0KCQlpZiAoIHRoaXMuX3JnYmFbIDMgXSA9PT0gMSApIHsNCgkJCXJldHVybiB0aGlzOw0KCQl9DQoNCgkJdmFyIHJnYiA9IHRoaXMuX3JnYmEuc2xpY2UoKSwNCgkJCWEgPSByZ2IucG9wKCksDQoJCQlibGVuZCA9IGNvbG9yKCBvcGFxdWUgKS5fcmdiYTsNCg0KCQlyZXR1cm4gY29sb3IoIGpRdWVyeS5tYXAoIHJnYiwgZnVuY3Rpb24oIHYsIGkgKSB7DQoJCQlyZXR1cm4gKCAxIC0gYSApICogYmxlbmRbIGkgXSArIGEgKiB2Ow0KCQl9KSk7DQoJfSwNCgl0b1JnYmFTdHJpbmc6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJlZml4ID0gInJnYmEoIiwNCgkJCXJnYmEgPSBqUXVlcnkubWFwKCB0aGlzLl9yZ2JhLCBmdW5jdGlvbiggdiwgaSApIHsNCgkJCQlyZXR1cm4gdiA9PSBudWxsID8gKCBpID4gMiA/IDEgOiAwICkgOiB2Ow0KCQkJfSk7DQoNCgkJaWYgKCByZ2JhWyAzIF0gPT09IDEgKSB7DQoJCQlyZ2JhLnBvcCgpOw0KCQkJcHJlZml4ID0gInJnYigiOw0KCQl9DQoNCgkJcmV0dXJuIHByZWZpeCArIHJnYmEuam9pbigpICsgIikiOw0KCX0sDQoJdG9Ic2xhU3RyaW5nOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZWZpeCA9ICJoc2xhKCIsDQoJCQloc2xhID0galF1ZXJ5Lm1hcCggdGhpcy5oc2xhKCksIGZ1bmN0aW9uKCB2LCBpICkgew0KCQkJCWlmICggdiA9PSBudWxsICkgew0KCQkJCQl2ID0gaSA+IDIgPyAxIDogMDsNCgkJCQl9DQoNCgkJCQkvLyBjYXRjaCAxIGFuZCAyDQoJCQkJaWYgKCBpICYmIGkgPCAzICkgew0KCQkJCQl2ID0gTWF0aC5yb3VuZCggdiAqIDEwMCApICsgIiUiOw0KCQkJCX0NCgkJCQlyZXR1cm4gdjsNCgkJCX0pOw0KDQoJCWlmICggaHNsYVsgMyBdID09PSAxICkgew0KCQkJaHNsYS5wb3AoKTsNCgkJCXByZWZpeCA9ICJoc2woIjsNCgkJfQ0KCQlyZXR1cm4gcHJlZml4ICsgaHNsYS5qb2luKCkgKyAiKSI7DQoJfSwNCgl0b0hleFN0cmluZzogZnVuY3Rpb24oIGluY2x1ZGVBbHBoYSApIHsNCgkJdmFyIHJnYmEgPSB0aGlzLl9yZ2JhLnNsaWNlKCksDQoJCQlhbHBoYSA9IHJnYmEucG9wKCk7DQoNCgkJaWYgKCBpbmNsdWRlQWxwaGEgKSB7DQoJCQlyZ2JhLnB1c2goIH5+KCBhbHBoYSAqIDI1NSApICk7DQoJCX0NCg0KCQlyZXR1cm4gIiMiICsgalF1ZXJ5Lm1hcCggcmdiYSwgZnVuY3Rpb24oIHYgKSB7DQoNCgkJCS8vIGRlZmF1bHQgdG8gMCB3aGVuIG51bGxzIGV4aXN0DQoJCQl2ID0gKCB2IHx8IDAgKS50b1N0cmluZyggMTYgKTsNCgkJCXJldHVybiB2Lmxlbmd0aCA9PT0gMSA/ICIwIiArIHYgOiB2Ow0KCQl9KS5qb2luKCIiKTsNCgl9LA0KCXRvU3RyaW5nOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuX3JnYmFbIDMgXSA9PT0gMCA/ICJ0cmFuc3BhcmVudCIgOiB0aGlzLnRvUmdiYVN0cmluZygpOw0KCX0NCn0pOw0KY29sb3IuZm4ucGFyc2UucHJvdG90eXBlID0gY29sb3IuZm47DQoNCi8vIGhzbGEgY29udmVyc2lvbnMgYWRhcHRlZCBmcm9tOg0KLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9tYWFzaGFhY2svc291cmNlL2Jyb3dzZS9wYWNrYWdlcy9ncmFwaGljcy90cnVuay9zcmMvZ3JhcGhpY3MvY29sb3JzL0hVRTJSR0IuYXM/cj01MDIxDQoNCmZ1bmN0aW9uIGh1ZTJyZ2IoIHAsIHEsIGggKSB7DQoJaCA9ICggaCArIDEgKSAlIDE7DQoJaWYgKCBoICogNiA8IDEgKSB7DQoJCXJldHVybiBwICsgKCBxIC0gcCApICogaCAqIDY7DQoJfQ0KCWlmICggaCAqIDIgPCAxKSB7DQoJCXJldHVybiBxOw0KCX0NCglpZiAoIGggKiAzIDwgMiApIHsNCgkJcmV0dXJuIHAgKyAoIHEgLSBwICkgKiAoICggMiAvIDMgKSAtIGggKSAqIDY7DQoJfQ0KCXJldHVybiBwOw0KfQ0KDQpzcGFjZXMuaHNsYS50byA9IGZ1bmN0aW9uKCByZ2JhICkgew0KCWlmICggcmdiYVsgMCBdID09IG51bGwgfHwgcmdiYVsgMSBdID09IG51bGwgfHwgcmdiYVsgMiBdID09IG51bGwgKSB7DQoJCXJldHVybiBbIG51bGwsIG51bGwsIG51bGwsIHJnYmFbIDMgXSBdOw0KCX0NCgl2YXIgciA9IHJnYmFbIDAgXSAvIDI1NSwNCgkJZyA9IHJnYmFbIDEgXSAvIDI1NSwNCgkJYiA9IHJnYmFbIDIgXSAvIDI1NSwNCgkJYSA9IHJnYmFbIDMgXSwNCgkJbWF4ID0gTWF0aC5tYXgoIHIsIGcsIGIgKSwNCgkJbWluID0gTWF0aC5taW4oIHIsIGcsIGIgKSwNCgkJZGlmZiA9IG1heCAtIG1pbiwNCgkJYWRkID0gbWF4ICsgbWluLA0KCQlsID0gYWRkICogMC41LA0KCQloLCBzOw0KDQoJaWYgKCBtaW4gPT09IG1heCApIHsNCgkJaCA9IDA7DQoJfSBlbHNlIGlmICggciA9PT0gbWF4ICkgew0KCQloID0gKCA2MCAqICggZyAtIGIgKSAvIGRpZmYgKSArIDM2MDsNCgl9IGVsc2UgaWYgKCBnID09PSBtYXggKSB7DQoJCWggPSAoIDYwICogKCBiIC0gciApIC8gZGlmZiApICsgMTIwOw0KCX0gZWxzZSB7DQoJCWggPSAoIDYwICogKCByIC0gZyApIC8gZGlmZiApICsgMjQwOw0KCX0NCg0KCS8vIGNocm9tYSAoZGlmZikgPT0gMCBtZWFucyBncmV5c2NhbGUgd2hpY2gsIGJ5IGRlZmluaXRpb24sIHNhdHVyYXRpb24gPSAwJQ0KCS8vIG90aGVyd2lzZSwgc2F0dXJhdGlvbiBpcyBiYXNlZCBvbiB0aGUgcmF0aW8gb2YgY2hyb21hIChkaWZmKSB0byBsaWdodG5lc3MgKGFkZCkNCglpZiAoIGRpZmYgPT09IDAgKSB7DQoJCXMgPSAwOw0KCX0gZWxzZSBpZiAoIGwgPD0gMC41ICkgew0KCQlzID0gZGlmZiAvIGFkZDsNCgl9IGVsc2Ugew0KCQlzID0gZGlmZiAvICggMiAtIGFkZCApOw0KCX0NCglyZXR1cm4gWyBNYXRoLnJvdW5kKGgpICUgMzYwLCBzLCBsLCBhID09IG51bGwgPyAxIDogYSBdOw0KfTsNCg0Kc3BhY2VzLmhzbGEuZnJvbSA9IGZ1bmN0aW9uKCBoc2xhICkgew0KCWlmICggaHNsYVsgMCBdID09IG51bGwgfHwgaHNsYVsgMSBdID09IG51bGwgfHwgaHNsYVsgMiBdID09IG51bGwgKSB7DQoJCXJldHVybiBbIG51bGwsIG51bGwsIG51bGwsIGhzbGFbIDMgXSBdOw0KCX0NCgl2YXIgaCA9IGhzbGFbIDAgXSAvIDM2MCwNCgkJcyA9IGhzbGFbIDEgXSwNCgkJbCA9IGhzbGFbIDIgXSwNCgkJYSA9IGhzbGFbIDMgXSwNCgkJcSA9IGwgPD0gMC41ID8gbCAqICggMSArIHMgKSA6IGwgKyBzIC0gbCAqIHMsDQoJCXAgPSAyICogbCAtIHE7DQoNCglyZXR1cm4gWw0KCQlNYXRoLnJvdW5kKCBodWUycmdiKCBwLCBxLCBoICsgKCAxIC8gMyApICkgKiAyNTUgKSwNCgkJTWF0aC5yb3VuZCggaHVlMnJnYiggcCwgcSwgaCApICogMjU1ICksDQoJCU1hdGgucm91bmQoIGh1ZTJyZ2IoIHAsIHEsIGggLSAoIDEgLyAzICkgKSAqIDI1NSApLA0KCQlhDQoJXTsNCn07DQoNCmVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJdmFyIHByb3BzID0gc3BhY2UucHJvcHMsDQoJCWNhY2hlID0gc3BhY2UuY2FjaGUsDQoJCXRvID0gc3BhY2UudG8sDQoJCWZyb20gPSBzcGFjZS5mcm9tOw0KDQoJLy8gbWFrZXMgcmdiYSgpIGFuZCBoc2xhKCkNCgljb2xvci5mblsgc3BhY2VOYW1lIF0gPSBmdW5jdGlvbiggdmFsdWUgKSB7DQoNCgkJLy8gZ2VuZXJhdGUgYSBjYWNoZSBmb3IgdGhpcyBzcGFjZSBpZiBpdCBkb2Vzbid0IGV4aXN0DQoJCWlmICggdG8gJiYgIXRoaXNbIGNhY2hlIF0gKSB7DQoJCQl0aGlzWyBjYWNoZSBdID0gdG8oIHRoaXMuX3JnYmEgKTsNCgkJfQ0KCQlpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gdGhpc1sgY2FjaGUgXS5zbGljZSgpOw0KCQl9DQoNCgkJdmFyIHJldCwNCgkJCXR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKSwNCgkJCWFyciA9ICggdHlwZSA9PT0gImFycmF5IiB8fCB0eXBlID09PSAib2JqZWN0IiApID8gdmFsdWUgOiBhcmd1bWVudHMsDQoJCQlsb2NhbCA9IHRoaXNbIGNhY2hlIF0uc2xpY2UoKTsNCg0KCQllYWNoKCBwcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCXZhciB2YWwgPSBhcnJbIHR5cGUgPT09ICJvYmplY3QiID8ga2V5IDogcHJvcC5pZHggXTsNCgkJCWlmICggdmFsID09IG51bGwgKSB7DQoJCQkJdmFsID0gbG9jYWxbIHByb3AuaWR4IF07DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IGNsYW1wKCB2YWwsIHByb3AgKTsNCgkJfSk7DQoNCgkJaWYgKCBmcm9tICkgew0KCQkJcmV0ID0gY29sb3IoIGZyb20oIGxvY2FsICkgKTsNCgkJCXJldFsgY2FjaGUgXSA9IGxvY2FsOw0KCQkJcmV0dXJuIHJldDsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiBjb2xvciggbG9jYWwgKTsNCgkJfQ0KCX07DQoNCgkvLyBtYWtlcyByZWQoKSBncmVlbigpIGJsdWUoKSBhbHBoYSgpIGh1ZSgpIHNhdHVyYXRpb24oKSBsaWdodG5lc3MoKQ0KCWVhY2goIHByb3BzLCBmdW5jdGlvbigga2V5LCBwcm9wICkgew0KCQkvLyBhbHBoYSBpcyBpbmNsdWRlZCBpbiBtb3JlIHRoYW4gb25lIHNwYWNlDQoJCWlmICggY29sb3IuZm5bIGtleSBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWNvbG9yLmZuWyBrZXkgXSA9IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJCXZhciB2dHlwZSA9IGpRdWVyeS50eXBlKCB2YWx1ZSApLA0KCQkJCWZuID0gKCBrZXkgPT09ICJhbHBoYSIgPyAoIHRoaXMuX2hzbGEgPyAiaHNsYSIgOiAicmdiYSIgKSA6IHNwYWNlTmFtZSApLA0KCQkJCWxvY2FsID0gdGhpc1sgZm4gXSgpLA0KCQkJCWN1ciA9IGxvY2FsWyBwcm9wLmlkeCBdLA0KCQkJCW1hdGNoOw0KDQoJCQlpZiAoIHZ0eXBlID09PSAidW5kZWZpbmVkIiApIHsNCgkJCQlyZXR1cm4gY3VyOw0KCQkJfQ0KDQoJCQlpZiAoIHZ0eXBlID09PSAiZnVuY3Rpb24iICkgew0KCQkJCXZhbHVlID0gdmFsdWUuY2FsbCggdGhpcywgY3VyICk7DQoJCQkJdnR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKTsNCgkJCX0NCgkJCWlmICggdmFsdWUgPT0gbnVsbCAmJiBwcm9wLmVtcHR5ICkgew0KCQkJCXJldHVybiB0aGlzOw0KCQkJfQ0KCQkJaWYgKCB2dHlwZSA9PT0gInN0cmluZyIgKSB7DQoJCQkJbWF0Y2ggPSBycGx1c2VxdWFscy5leGVjKCB2YWx1ZSApOw0KCQkJCWlmICggbWF0Y2ggKSB7DQoJCQkJCXZhbHVlID0gY3VyICsgcGFyc2VGbG9hdCggbWF0Y2hbIDIgXSApICogKCBtYXRjaFsgMSBdID09PSAiKyIgPyAxIDogLTEgKTsNCgkJCQl9DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IHZhbHVlOw0KCQkJcmV0dXJuIHRoaXNbIGZuIF0oIGxvY2FsICk7DQoJCX07DQoJfSk7DQp9KTsNCg0KLy8gYWRkIGNzc0hvb2sgYW5kIC5meC5zdGVwIGZ1bmN0aW9uIGZvciBlYWNoIG5hbWVkIGhvb2suDQovLyBhY2NlcHQgYSBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nIG9mIHByb3BlcnRpZXMNCmNvbG9yLmhvb2sgPSBmdW5jdGlvbiggaG9vayApIHsNCgl2YXIgaG9va3MgPSBob29rLnNwbGl0KCAiICIgKTsNCgllYWNoKCBob29rcywgZnVuY3Rpb24oIGksIGhvb2sgKSB7DQoJCWpRdWVyeS5jc3NIb29rc1sgaG9vayBdID0gew0KCQkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7DQoJCQkJdmFyIHBhcnNlZCwgY3VyRWxlbSwNCgkJCQkJYmFja2dyb3VuZENvbG9yID0gIiI7DQoNCgkJCQlpZiAoIHZhbHVlICE9PSAidHJhbnNwYXJlbnQiICYmICggalF1ZXJ5LnR5cGUoIHZhbHVlICkgIT09ICJzdHJpbmciIHx8ICggcGFyc2VkID0gc3RyaW5nUGFyc2UoIHZhbHVlICkgKSApICkgew0KCQkJCQl2YWx1ZSA9IGNvbG9yKCBwYXJzZWQgfHwgdmFsdWUgKTsNCgkJCQkJaWYgKCAhc3VwcG9ydC5yZ2JhICYmIHZhbHVlLl9yZ2JhWyAzIF0gIT09IDEgKSB7DQoJCQkJCQljdXJFbGVtID0gaG9vayA9PT0gImJhY2tncm91bmRDb2xvciIgPyBlbGVtLnBhcmVudE5vZGUgOiBlbGVtOw0KCQkJCQkJd2hpbGUgKA0KCQkJCQkJCShiYWNrZ3JvdW5kQ29sb3IgPT09ICIiIHx8IGJhY2tncm91bmRDb2xvciA9PT0gInRyYW5zcGFyZW50IikgJiYNCgkJCQkJCQljdXJFbGVtICYmIGN1ckVsZW0uc3R5bGUNCgkJCQkJCSkgew0KCQkJCQkJCXRyeSB7DQoJCQkJCQkJCWJhY2tncm91bmRDb2xvciA9IGpRdWVyeS5jc3MoIGN1ckVsZW0sICJiYWNrZ3JvdW5kQ29sb3IiICk7DQoJCQkJCQkJCWN1ckVsZW0gPSBjdXJFbGVtLnBhcmVudE5vZGU7DQoJCQkJCQkJfSBjYXRjaCAoIGUgKSB7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KDQoJCQkJCQl2YWx1ZSA9IHZhbHVlLmJsZW5kKCBiYWNrZ3JvdW5kQ29sb3IgJiYgYmFja2dyb3VuZENvbG9yICE9PSAidHJhbnNwYXJlbnQiID8NCgkJCQkJCQliYWNrZ3JvdW5kQ29sb3IgOg0KCQkJCQkJCSJfZGVmYXVsdCIgKTsNCgkJCQkJfQ0KDQoJCQkJCXZhbHVlID0gdmFsdWUudG9SZ2JhU3RyaW5nKCk7DQoJCQkJfQ0KCQkJCXRyeSB7DQoJCQkJCWVsZW0uc3R5bGVbIGhvb2sgXSA9IHZhbHVlOw0KCQkJCX0gY2F0Y2ggKCBlICkgew0KCQkJCQkvLyB3cmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgb24gImludmFsaWQiIHZhbHVlcyBsaWtlICdhdXRvJyBvciAnaW5oZXJpdCcNCgkJCQl9DQoJCQl9DQoJCX07DQoJCWpRdWVyeS5meC5zdGVwWyBob29rIF0gPSBmdW5jdGlvbiggZnggKSB7DQoJCQlpZiAoICFmeC5jb2xvckluaXQgKSB7DQoJCQkJZnguc3RhcnQgPSBjb2xvciggZnguZWxlbSwgaG9vayApOw0KCQkJCWZ4LmVuZCA9IGNvbG9yKCBmeC5lbmQgKTsNCgkJCQlmeC5jb2xvckluaXQgPSB0cnVlOw0KCQkJfQ0KCQkJalF1ZXJ5LmNzc0hvb2tzWyBob29rIF0uc2V0KCBmeC5lbGVtLCBmeC5zdGFydC50cmFuc2l0aW9uKCBmeC5lbmQsIGZ4LnBvcyApICk7DQoJCX07DQoJfSk7DQoNCn07DQoNCmNvbG9yLmhvb2soIHN0ZXBIb29rcyApOw0KDQpqUXVlcnkuY3NzSG9va3MuYm9yZGVyQ29sb3IgPSB7DQoJZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXZhciBleHBhbmRlZCA9IHt9Ow0KDQoJCWVhY2goIFsgIlRvcCIsICJSaWdodCIsICJCb3R0b20iLCAiTGVmdCIgXSwgZnVuY3Rpb24oIGksIHBhcnQgKSB7DQoJCQlleHBhbmRlZFsgImJvcmRlciIgKyBwYXJ0ICsgIkNvbG9yIiBdID0gdmFsdWU7DQoJCX0pOw0KCQlyZXR1cm4gZXhwYW5kZWQ7DQoJfQ0KfTsNCg0KLy8gQmFzaWMgY29sb3IgbmFtZXMgb25seS4NCi8vIFVzYWdlIG9mIGFueSBvZiB0aGUgb3RoZXIgY29sb3IgbmFtZXMgcmVxdWlyZXMgYWRkaW5nIHlvdXJzZWxmIG9yIGluY2x1ZGluZw0KLy8ganF1ZXJ5LmNvbG9yLnN2Zy1uYW1lcy5qcy4NCmNvbG9ycyA9IGpRdWVyeS5Db2xvci5uYW1lcyA9IHsNCgkvLyA0LjEuIEJhc2ljIGNvbG9yIGtleXdvcmRzDQoJYXF1YTogIiMwMGZmZmYiLA0KCWJsYWNrOiAiIzAwMDAwMCIsDQoJYmx1ZTogIiMwMDAwZmYiLA0KCWZ1Y2hzaWE6ICIjZmYwMGZmIiwNCglncmF5OiAiIzgwODA4MCIsDQoJZ3JlZW46ICIjMDA4MDAwIiwNCglsaW1lOiAiIzAwZmYwMCIsDQoJbWFyb29uOiAiIzgwMDAwMCIsDQoJbmF2eTogIiMwMDAwODAiLA0KCW9saXZlOiAiIzgwODAwMCIsDQoJcHVycGxlOiAiIzgwMDA4MCIsDQoJcmVkOiAiI2ZmMDAwMCIsDQoJc2lsdmVyOiAiI2MwYzBjMCIsDQoJdGVhbDogIiMwMDgwODAiLA0KCXdoaXRlOiAiI2ZmZmZmZiIsDQoJeWVsbG93OiAiI2ZmZmYwMCIsDQoNCgkvLyA0LjIuMy4gInRyYW5zcGFyZW50IiBjb2xvciBrZXl3b3JkDQoJdHJhbnNwYXJlbnQ6IFsgbnVsbCwgbnVsbCwgbnVsbCwgMCBdLA0KDQoJX2RlZmF1bHQ6ICIjZmZmZmZmIg0KfTsNCg0KfSkoIGpRdWVyeSApOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDTEFTUyBBTklNQVRJT05TICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQooZnVuY3Rpb24oKSB7DQoNCnZhciBjbGFzc0FuaW1hdGlvbkFjdGlvbnMgPSBbICJhZGQiLCAicmVtb3ZlIiwgInRvZ2dsZSIgXSwNCglzaG9ydGhhbmRTdHlsZXMgPSB7DQoJCWJvcmRlcjogMSwNCgkJYm9yZGVyQm90dG9tOiAxLA0KCQlib3JkZXJDb2xvcjogMSwNCgkJYm9yZGVyTGVmdDogMSwNCgkJYm9yZGVyUmlnaHQ6IDEsDQoJCWJvcmRlclRvcDogMSwNCgkJYm9yZGVyV2lkdGg6IDEsDQoJCW1hcmdpbjogMSwNCgkJcGFkZGluZzogMQ0KCX07DQoNCiQuZWFjaChbICJib3JkZXJMZWZ0U3R5bGUiLCAiYm9yZGVyUmlnaHRTdHlsZSIsICJib3JkZXJCb3R0b21TdHlsZSIsICJib3JkZXJUb3BTdHlsZSIgXSwgZnVuY3Rpb24oIF8sIHByb3AgKSB7DQoJJC5meC5zdGVwWyBwcm9wIF0gPSBmdW5jdGlvbiggZnggKSB7DQoJCWlmICggZnguZW5kICE9PSAibm9uZSIgJiYgIWZ4LnNldEF0dHIgfHwgZngucG9zID09PSAxICYmICFmeC5zZXRBdHRyICkgew0KCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCBwcm9wLCBmeC5lbmQgKTsNCgkJCWZ4LnNldEF0dHIgPSB0cnVlOw0KCQl9DQoJfTsNCn0pOw0KDQpmdW5jdGlvbiBnZXRFbGVtZW50U3R5bGVzKCBlbGVtICkgew0KCXZhciBrZXksIGxlbiwNCgkJc3R5bGUgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPw0KCQkJZWxlbS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6DQoJCQllbGVtLmN1cnJlbnRTdHlsZSwNCgkJc3R5bGVzID0ge307DQoNCglpZiAoIHN0eWxlICYmIHN0eWxlLmxlbmd0aCAmJiBzdHlsZVsgMCBdICYmIHN0eWxlWyBzdHlsZVsgMCBdIF0gKSB7DQoJCWxlbiA9IHN0eWxlLmxlbmd0aDsNCgkJd2hpbGUgKCBsZW4tLSApIHsNCgkJCWtleSA9IHN0eWxlWyBsZW4gXTsNCgkJCWlmICggdHlwZW9mIHN0eWxlWyBrZXkgXSA9PT0gInN0cmluZyIgKSB7DQoJCQkJc3R5bGVzWyAkLmNhbWVsQ2FzZSgga2V5ICkgXSA9IHN0eWxlWyBrZXkgXTsNCgkJCX0NCgkJfQ0KCS8vIHN1cHBvcnQ6IE9wZXJhLCBJRSA8OQ0KCX0gZWxzZSB7DQoJCWZvciAoIGtleSBpbiBzdHlsZSApIHsNCgkJCWlmICggdHlwZW9mIHN0eWxlWyBrZXkgXSA9PT0gInN0cmluZyIgKSB7DQoJCQkJc3R5bGVzWyBrZXkgXSA9IHN0eWxlWyBrZXkgXTsNCgkJCX0NCgkJfQ0KCX0NCg0KCXJldHVybiBzdHlsZXM7DQp9DQoNCmZ1bmN0aW9uIHN0eWxlRGlmZmVyZW5jZSggb2xkU3R5bGUsIG5ld1N0eWxlICkgew0KCXZhciBkaWZmID0ge30sDQoJCW5hbWUsIHZhbHVlOw0KDQoJZm9yICggbmFtZSBpbiBuZXdTdHlsZSApIHsNCgkJdmFsdWUgPSBuZXdTdHlsZVsgbmFtZSBdOw0KCQlpZiAoIG9sZFN0eWxlWyBuYW1lIF0gIT09IHZhbHVlICkgew0KCQkJaWYgKCAhc2hvcnRoYW5kU3R5bGVzWyBuYW1lIF0gKSB7DQoJCQkJaWYgKCAkLmZ4LnN0ZXBbIG5hbWUgXSB8fCAhaXNOYU4oIHBhcnNlRmxvYXQoIHZhbHVlICkgKSApIHsNCgkJCQkJZGlmZlsgbmFtZSBdID0gdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuIGRpZmY7DQp9DQoNCi8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQppZiAoICEkLmZuLmFkZEJhY2sgKSB7DQoJJC5mbi5hZGRCYWNrID0gZnVuY3Rpb24oIHNlbGVjdG9yICkgew0KCQlyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgPw0KCQkJdGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKQ0KCQkpOw0KCX07DQp9DQoNCiQuZWZmZWN0cy5hbmltYXRlQ2xhc3MgPSBmdW5jdGlvbiggdmFsdWUsIGR1cmF0aW9uLCBlYXNpbmcsIGNhbGxiYWNrICkgew0KCXZhciBvID0gJC5zcGVlZCggZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2sgKTsNCg0KCXJldHVybiB0aGlzLnF1ZXVlKCBmdW5jdGlvbigpIHsNCgkJdmFyIGFuaW1hdGVkID0gJCggdGhpcyApLA0KCQkJYmFzZUNsYXNzID0gYW5pbWF0ZWQuYXR0ciggImNsYXNzIiApIHx8ICIiLA0KCQkJYXBwbHlDbGFzc0NoYW5nZSwNCgkJCWFsbEFuaW1hdGlvbnMgPSBvLmNoaWxkcmVuID8gYW5pbWF0ZWQuZmluZCggIioiICkuYWRkQmFjaygpIDogYW5pbWF0ZWQ7DQoNCgkJLy8gbWFwIHRoZSBhbmltYXRlZCBvYmplY3RzIHRvIHN0b3JlIHRoZSBvcmlnaW5hbCBzdHlsZXMuDQoJCWFsbEFuaW1hdGlvbnMgPSBhbGxBbmltYXRpb25zLm1hcChmdW5jdGlvbigpIHsNCgkJCXZhciBlbCA9ICQoIHRoaXMgKTsNCgkJCXJldHVybiB7DQoJCQkJZWw6IGVsLA0KCQkJCXN0YXJ0OiBnZXRFbGVtZW50U3R5bGVzKCB0aGlzICkNCgkJCX07DQoJCX0pOw0KDQoJCS8vIGFwcGx5IGNsYXNzIGNoYW5nZQ0KCQlhcHBseUNsYXNzQ2hhbmdlID0gZnVuY3Rpb24oKSB7DQoJCQkkLmVhY2goIGNsYXNzQW5pbWF0aW9uQWN0aW9ucywgZnVuY3Rpb24oaSwgYWN0aW9uKSB7DQoJCQkJaWYgKCB2YWx1ZVsgYWN0aW9uIF0gKSB7DQoJCQkJCWFuaW1hdGVkWyBhY3Rpb24gKyAiQ2xhc3MiIF0oIHZhbHVlWyBhY3Rpb24gXSApOw0KCQkJCX0NCgkJCX0pOw0KCQl9Ow0KCQlhcHBseUNsYXNzQ2hhbmdlKCk7DQoNCgkJLy8gbWFwIGFsbCBhbmltYXRlZCBvYmplY3RzIGFnYWluIC0gY2FsY3VsYXRlIG5ldyBzdHlsZXMgYW5kIGRpZmYNCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKGZ1bmN0aW9uKCkgew0KCQkJdGhpcy5lbmQgPSBnZXRFbGVtZW50U3R5bGVzKCB0aGlzLmVsWyAwIF0gKTsNCgkJCXRoaXMuZGlmZiA9IHN0eWxlRGlmZmVyZW5jZSggdGhpcy5zdGFydCwgdGhpcy5lbmQgKTsNCgkJCXJldHVybiB0aGlzOw0KCQl9KTsNCg0KCQkvLyBhcHBseSBvcmlnaW5hbCBjbGFzcw0KCQlhbmltYXRlZC5hdHRyKCAiY2xhc3MiLCBiYXNlQ2xhc3MgKTsNCg0KCQkvLyBtYXAgYWxsIGFuaW1hdGVkIG9iamVjdHMgYWdhaW4gLSB0aGlzIHRpbWUgY29sbGVjdGluZyBhIHByb21pc2UNCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKGZ1bmN0aW9uKCkgew0KCQkJdmFyIHN0eWxlSW5mbyA9IHRoaXMsDQoJCQkJZGZkID0gJC5EZWZlcnJlZCgpLA0KCQkJCW9wdHMgPSAkLmV4dGVuZCh7fSwgbywgew0KCQkJCQlxdWV1ZTogZmFsc2UsDQoJCQkJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCQkJCWRmZC5yZXNvbHZlKCBzdHlsZUluZm8gKTsNCgkJCQkJfQ0KCQkJCX0pOw0KDQoJCQl0aGlzLmVsLmFuaW1hdGUoIHRoaXMuZGlmZiwgb3B0cyApOw0KCQkJcmV0dXJuIGRmZC5wcm9taXNlKCk7DQoJCX0pOw0KDQoJCS8vIG9uY2UgYWxsIGFuaW1hdGlvbnMgaGF2ZSBjb21wbGV0ZWQ6DQoJCSQud2hlbi5hcHBseSggJCwgYWxsQW5pbWF0aW9ucy5nZXQoKSApLmRvbmUoZnVuY3Rpb24oKSB7DQoNCgkJCS8vIHNldCB0aGUgZmluYWwgY2xhc3MNCgkJCWFwcGx5Q2xhc3NDaGFuZ2UoKTsNCg0KCQkJLy8gZm9yIGVhY2ggYW5pbWF0ZWQgZWxlbWVudCwNCgkJCS8vIGNsZWFyIGFsbCBjc3MgcHJvcGVydGllcyB0aGF0IHdlcmUgYW5pbWF0ZWQNCgkJCSQuZWFjaCggYXJndW1lbnRzLCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgZWwgPSB0aGlzLmVsOw0KCQkJCSQuZWFjaCggdGhpcy5kaWZmLCBmdW5jdGlvbihrZXkpIHsNCgkJCQkJZWwuY3NzKCBrZXksICIiICk7DQoJCQkJfSk7DQoJCQl9KTsNCg0KCQkJLy8gdGhpcyBpcyBndWFybnRlZWQgdG8gYmUgdGhlcmUgaWYgeW91IHVzZSBqUXVlcnkuc3BlZWQoKQ0KCQkJLy8gaXQgYWxzbyBoYW5kbGVzIGRlcXVldWluZyB0aGUgbmV4dCBhbmltLi4uDQoJCQlvLmNvbXBsZXRlLmNhbGwoIGFuaW1hdGVkWyAwIF0gKTsNCgkJfSk7DQoJfSk7DQp9Ow0KDQokLmZuLmV4dGVuZCh7DQoJYWRkQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCXJldHVybiBzcGVlZCA/DQoJCQkJJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IGFkZDogY2xhc3NOYW1lcyB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIDoNCgkJCQlvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfTsNCgl9KSggJC5mbi5hZGRDbGFzcyApLA0KDQoJcmVtb3ZlQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCXJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMSA/DQoJCQkJJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IHJlbW92ZTogY2xhc3NOYW1lcyB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIDoNCgkJCQlvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfTsNCgl9KSggJC5mbi5yZW1vdmVDbGFzcyApLA0KDQoJdG9nZ2xlQ2xhc3M6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBmb3JjZSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7DQoJCQlpZiAoIHR5cGVvZiBmb3JjZSA9PT0gImJvb2xlYW4iIHx8IGZvcmNlID09PSB1bmRlZmluZWQgKSB7DQoJCQkJaWYgKCAhc3BlZWQgKSB7DQoJCQkJCS8vIHdpdGhvdXQgc3BlZWQgcGFyYW1ldGVyDQoJCQkJCXJldHVybiBvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQkJKGZvcmNlID8geyBhZGQ6IGNsYXNzTmFtZXMgfSA6IHsgcmVtb3ZlOiBjbGFzc05hbWVzIH0pLA0KCQkJCQkJc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCS8vIHdpdGhvdXQgZm9yY2UgcGFyYW1ldGVyDQoJCQkJcmV0dXJuICQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywNCgkJCQkJeyB0b2dnbGU6IGNsYXNzTmFtZXMgfSwgZm9yY2UsIHNwZWVkLCBlYXNpbmcgKTsNCgkJCX0NCgkJfTsNCgl9KSggJC5mbi50b2dnbGVDbGFzcyApLA0KDQoJc3dpdGNoQ2xhc3M6IGZ1bmN0aW9uKCByZW1vdmUsIGFkZCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spIHsNCgkJcmV0dXJuICQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywgew0KCQkJYWRkOiBhZGQsDQoJCQlyZW1vdmU6IHJlbW92ZQ0KCQl9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApOw0KCX0NCn0pOw0KDQp9KSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVGRkVDVFMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCihmdW5jdGlvbigpIHsNCg0KJC5leHRlbmQoICQuZWZmZWN0cywgew0KCXZlcnNpb246ICIxLjExLjQiLA0KDQoJLy8gU2F2ZXMgYSBzZXQgb2YgcHJvcGVydGllcyBpbiBhIGRhdGEgc3RvcmFnZQ0KCXNhdmU6IGZ1bmN0aW9uKCBlbGVtZW50LCBzZXQgKSB7DQoJCWZvciAoIHZhciBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggc2V0WyBpIF0gIT09IG51bGwgKSB7DQoJCQkJZWxlbWVudC5kYXRhKCBkYXRhU3BhY2UgKyBzZXRbIGkgXSwgZWxlbWVudFsgMCBdLnN0eWxlWyBzZXRbIGkgXSBdICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJLy8gUmVzdG9yZXMgYSBzZXQgb2YgcHJldmlvdXNseSBzYXZlZCBwcm9wZXJ0aWVzIGZyb20gYSBkYXRhIHN0b3JhZ2UNCglyZXN0b3JlOiBmdW5jdGlvbiggZWxlbWVudCwgc2V0ICkgew0KCQl2YXIgdmFsLCBpOw0KCQlmb3IgKCBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggc2V0WyBpIF0gIT09IG51bGwgKSB7DQoJCQkJdmFsID0gZWxlbWVudC5kYXRhKCBkYXRhU3BhY2UgKyBzZXRbIGkgXSApOw0KCQkJCS8vIHN1cHBvcnQ6IGpRdWVyeSAxLjYuMg0KCQkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0Lzk5MTcNCgkJCQkvLyBqUXVlcnkgMS42LjIgaW5jb3JyZWN0bHkgcmV0dXJucyB1bmRlZmluZWQgZm9yIGFueSBmYWxzeSB2YWx1ZS4NCgkJCQkvLyBXZSBjYW4ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gIiIgYW5kIDAgaGVyZSwgc28gd2UganVzdCBhc3N1bWUNCgkJCQkvLyBlbXB0eSBzdHJpbmcgc2luY2UgaXQncyBsaWtlbHkgdG8gYmUgYSBtb3JlIGNvbW1vbiB2YWx1ZS4uLg0KCQkJCWlmICggdmFsID09PSB1bmRlZmluZWQgKSB7DQoJCQkJCXZhbCA9ICIiOw0KCQkJCX0NCgkJCQllbGVtZW50LmNzcyggc2V0WyBpIF0sIHZhbCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCXNldE1vZGU6IGZ1bmN0aW9uKCBlbCwgbW9kZSApIHsNCgkJaWYgKG1vZGUgPT09ICJ0b2dnbGUiKSB7DQoJCQltb2RlID0gZWwuaXMoICI6aGlkZGVuIiApID8gInNob3ciIDogImhpZGUiOw0KCQl9DQoJCXJldHVybiBtb2RlOw0KCX0sDQoNCgkvLyBUcmFuc2xhdGVzIGEgW3RvcCxsZWZ0XSBhcnJheSBpbnRvIGEgYmFzZWxpbmUgdmFsdWUNCgkvLyB0aGlzIHNob3VsZCBiZSBhIGxpdHRsZSBtb3JlIGZsZXhpYmxlIGluIHRoZSBmdXR1cmUgdG8gaGFuZGxlIGEgc3RyaW5nICYgaGFzaA0KCWdldEJhc2VsaW5lOiBmdW5jdGlvbiggb3JpZ2luLCBvcmlnaW5hbCApIHsNCgkJdmFyIHksIHg7DQoJCXN3aXRjaCAoIG9yaWdpblsgMCBdICkgew0KCQkJY2FzZSAidG9wIjogeSA9IDA7IGJyZWFrOw0KCQkJY2FzZSAibWlkZGxlIjogeSA9IDAuNTsgYnJlYWs7DQoJCQljYXNlICJib3R0b20iOiB5ID0gMTsgYnJlYWs7DQoJCQlkZWZhdWx0OiB5ID0gb3JpZ2luWyAwIF0gLyBvcmlnaW5hbC5oZWlnaHQ7DQoJCX0NCgkJc3dpdGNoICggb3JpZ2luWyAxIF0gKSB7DQoJCQljYXNlICJsZWZ0IjogeCA9IDA7IGJyZWFrOw0KCQkJY2FzZSAiY2VudGVyIjogeCA9IDAuNTsgYnJlYWs7DQoJCQljYXNlICJyaWdodCI6IHggPSAxOyBicmVhazsNCgkJCWRlZmF1bHQ6IHggPSBvcmlnaW5bIDEgXSAvIG9yaWdpbmFsLndpZHRoOw0KCQl9DQoJCXJldHVybiB7DQoJCQl4OiB4LA0KCQkJeTogeQ0KCQl9Ow0KCX0sDQoNCgkvLyBXcmFwcyB0aGUgZWxlbWVudCBhcm91bmQgYSB3cmFwcGVyIHRoYXQgY29waWVzIHBvc2l0aW9uIHByb3BlcnRpZXMNCgljcmVhdGVXcmFwcGVyOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCg0KCQkvLyBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IHdyYXBwZWQsIHJldHVybiBpdA0KCQlpZiAoIGVsZW1lbnQucGFyZW50KCkuaXMoICIudWktZWZmZWN0cy13cmFwcGVyIiApKSB7DQoJCQlyZXR1cm4gZWxlbWVudC5wYXJlbnQoKTsNCgkJfQ0KDQoJCS8vIHdyYXAgdGhlIGVsZW1lbnQNCgkJdmFyIHByb3BzID0gew0KCQkJCXdpZHRoOiBlbGVtZW50Lm91dGVyV2lkdGgodHJ1ZSksDQoJCQkJaGVpZ2h0OiBlbGVtZW50Lm91dGVySGVpZ2h0KHRydWUpLA0KCQkJCSJmbG9hdCI6IGVsZW1lbnQuY3NzKCAiZmxvYXQiICkNCgkJCX0sDQoJCQl3cmFwcGVyID0gJCggIjxkaXY+PC9kaXY+IiApDQoJCQkJLmFkZENsYXNzKCAidWktZWZmZWN0cy13cmFwcGVyIiApDQoJCQkJLmNzcyh7DQoJCQkJCWZvbnRTaXplOiAiMTAwJSIsDQoJCQkJCWJhY2tncm91bmQ6ICJ0cmFuc3BhcmVudCIsDQoJCQkJCWJvcmRlcjogIm5vbmUiLA0KCQkJCQltYXJnaW46IDAsDQoJCQkJCXBhZGRpbmc6IDANCgkJCQl9KSwNCgkJCS8vIFN0b3JlIHRoZSBzaXplIGluIGNhc2Ugd2lkdGgvaGVpZ2h0IGFyZSBkZWZpbmVkIGluICUgLSBGaXhlcyAjNTI0NQ0KCQkJc2l6ZSA9IHsNCgkJCQl3aWR0aDogZWxlbWVudC53aWR0aCgpLA0KCQkJCWhlaWdodDogZWxlbWVudC5oZWlnaHQoKQ0KCQkJfSwNCgkJCWFjdGl2ZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7DQoNCgkJLy8gc3VwcG9ydDogRmlyZWZveA0KCQkvLyBGaXJlZm94IGluY29ycmVjdGx5IGV4cG9zZXMgYW5vbnltb3VzIGNvbnRlbnQNCgkJLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxNjY0DQoJCXRyeSB7DQoJCQlhY3RpdmUuaWQ7DQoJCX0gY2F0Y2ggKCBlICkgew0KCQkJYWN0aXZlID0gZG9jdW1lbnQuYm9keTsNCgkJfQ0KDQoJCWVsZW1lbnQud3JhcCggd3JhcHBlciApOw0KDQoJCS8vIEZpeGVzICM3NTk1IC0gRWxlbWVudHMgbG9zZSBmb2N1cyB3aGVuIHdyYXBwZWQuDQoJCWlmICggZWxlbWVudFsgMCBdID09PSBhY3RpdmUgfHwgJC5jb250YWlucyggZWxlbWVudFsgMCBdLCBhY3RpdmUgKSApIHsNCgkJCSQoIGFjdGl2ZSApLmZvY3VzKCk7DQoJCX0NCg0KCQl3cmFwcGVyID0gZWxlbWVudC5wYXJlbnQoKTsgLy9Ib3RmaXggZm9yIGpRdWVyeSAxLjQgc2luY2Ugc29tZSBjaGFuZ2UgaW4gd3JhcCgpIHNlZW1zIHRvIGFjdHVhbGx5IGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgd3JhcHBlZCBlbGVtZW50DQoNCgkJLy8gdHJhbnNmZXIgcG9zaXRpb25pbmcgcHJvcGVydGllcyB0byB0aGUgd3JhcHBlcg0KCQlpZiAoIGVsZW1lbnQuY3NzKCAicG9zaXRpb24iICkgPT09ICJzdGF0aWMiICkgew0KCQkJd3JhcHBlci5jc3MoeyBwb3NpdGlvbjogInJlbGF0aXZlIiB9KTsNCgkJCWVsZW1lbnQuY3NzKHsgcG9zaXRpb246ICJyZWxhdGl2ZSIgfSk7DQoJCX0gZWxzZSB7DQoJCQkkLmV4dGVuZCggcHJvcHMsIHsNCgkJCQlwb3NpdGlvbjogZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCQl6SW5kZXg6IGVsZW1lbnQuY3NzKCAiei1pbmRleCIgKQ0KCQkJfSk7DQoJCQkkLmVhY2goWyAidG9wIiwgImxlZnQiLCAiYm90dG9tIiwgInJpZ2h0IiBdLCBmdW5jdGlvbihpLCBwb3MpIHsNCgkJCQlwcm9wc1sgcG9zIF0gPSBlbGVtZW50LmNzcyggcG9zICk7DQoJCQkJaWYgKCBpc05hTiggcGFyc2VJbnQoIHByb3BzWyBwb3MgXSwgMTAgKSApICkgew0KCQkJCQlwcm9wc1sgcG9zIF0gPSAiYXV0byI7DQoJCQkJfQ0KCQkJfSk7DQoJCQllbGVtZW50LmNzcyh7DQoJCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQkJdG9wOiAwLA0KCQkJCWxlZnQ6IDAsDQoJCQkJcmlnaHQ6ICJhdXRvIiwNCgkJCQlib3R0b206ICJhdXRvIg0KCQkJfSk7DQoJCX0NCgkJZWxlbWVudC5jc3Moc2l6ZSk7DQoNCgkJcmV0dXJuIHdyYXBwZXIuY3NzKCBwcm9wcyApLnNob3coKTsNCgl9LA0KDQoJcmVtb3ZlV3JhcHBlcjogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXZhciBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KDQoJCWlmICggZWxlbWVudC5wYXJlbnQoKS5pcyggIi51aS1lZmZlY3RzLXdyYXBwZXIiICkgKSB7DQoJCQllbGVtZW50LnBhcmVudCgpLnJlcGxhY2VXaXRoKCBlbGVtZW50ICk7DQoNCgkJCS8vIEZpeGVzICM3NTk1IC0gRWxlbWVudHMgbG9zZSBmb2N1cyB3aGVuIHdyYXBwZWQuDQoJCQlpZiAoIGVsZW1lbnRbIDAgXSA9PT0gYWN0aXZlIHx8ICQuY29udGFpbnMoIGVsZW1lbnRbIDAgXSwgYWN0aXZlICkgKSB7DQoJCQkJJCggYWN0aXZlICkuZm9jdXMoKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBlbGVtZW50Ow0KCX0sDQoNCglzZXRUcmFuc2l0aW9uOiBmdW5jdGlvbiggZWxlbWVudCwgbGlzdCwgZmFjdG9yLCB2YWx1ZSApIHsNCgkJdmFsdWUgPSB2YWx1ZSB8fCB7fTsNCgkJJC5lYWNoKCBsaXN0LCBmdW5jdGlvbiggaSwgeCApIHsNCgkJCXZhciB1bml0ID0gZWxlbWVudC5jc3NVbml0KCB4ICk7DQoJCQlpZiAoIHVuaXRbIDAgXSA+IDAgKSB7DQoJCQkJdmFsdWVbIHggXSA9IHVuaXRbIDAgXSAqIGZhY3RvciArIHVuaXRbIDEgXTsNCgkJCX0NCgkJfSk7DQoJCXJldHVybiB2YWx1ZTsNCgl9DQp9KTsNCg0KLy8gcmV0dXJuIGFuIGVmZmVjdCBvcHRpb25zIG9iamVjdCBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlcnM6DQpmdW5jdGlvbiBfbm9ybWFsaXplQXJndW1lbnRzKCBlZmZlY3QsIG9wdGlvbnMsIHNwZWVkLCBjYWxsYmFjayApIHsNCg0KCS8vIGFsbG93IHBhc3NpbmcgYWxsIG9wdGlvbnMgYXMgdGhlIGZpcnN0IHBhcmFtZXRlcg0KCWlmICggJC5pc1BsYWluT2JqZWN0KCBlZmZlY3QgKSApIHsNCgkJb3B0aW9ucyA9IGVmZmVjdDsNCgkJZWZmZWN0ID0gZWZmZWN0LmVmZmVjdDsNCgl9DQoNCgkvLyBjb252ZXJ0IHRvIGFuIG9iamVjdA0KCWVmZmVjdCA9IHsgZWZmZWN0OiBlZmZlY3QgfTsNCg0KCS8vIGNhdGNoIChlZmZlY3QsIG51bGwsIC4uLikNCglpZiAoIG9wdGlvbnMgPT0gbnVsbCApIHsNCgkJb3B0aW9ucyA9IHt9Ow0KCX0NCg0KCS8vIGNhdGNoIChlZmZlY3QsIGNhbGxiYWNrKQ0KCWlmICggJC5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7DQoJCWNhbGxiYWNrID0gb3B0aW9uczsNCgkJc3BlZWQgPSBudWxsOw0KCQlvcHRpb25zID0ge307DQoJfQ0KDQoJLy8gY2F0Y2ggKGVmZmVjdCwgc3BlZWQsID8pDQoJaWYgKCB0eXBlb2Ygb3B0aW9ucyA9PT0gIm51bWJlciIgfHwgJC5meC5zcGVlZHNbIG9wdGlvbnMgXSApIHsNCgkJY2FsbGJhY2sgPSBzcGVlZDsNCgkJc3BlZWQgPSBvcHRpb25zOw0KCQlvcHRpb25zID0ge307DQoJfQ0KDQoJLy8gY2F0Y2ggKGVmZmVjdCwgb3B0aW9ucywgY2FsbGJhY2spDQoJaWYgKCAkLmlzRnVuY3Rpb24oIHNwZWVkICkgKSB7DQoJCWNhbGxiYWNrID0gc3BlZWQ7DQoJCXNwZWVkID0gbnVsbDsNCgl9DQoNCgkvLyBhZGQgb3B0aW9ucyB0byBlZmZlY3QNCglpZiAoIG9wdGlvbnMgKSB7DQoJCSQuZXh0ZW5kKCBlZmZlY3QsIG9wdGlvbnMgKTsNCgl9DQoNCglzcGVlZCA9IHNwZWVkIHx8IG9wdGlvbnMuZHVyYXRpb247DQoJZWZmZWN0LmR1cmF0aW9uID0gJC5meC5vZmYgPyAwIDoNCgkJdHlwZW9mIHNwZWVkID09PSAibnVtYmVyIiA/IHNwZWVkIDoNCgkJc3BlZWQgaW4gJC5meC5zcGVlZHMgPyAkLmZ4LnNwZWVkc1sgc3BlZWQgXSA6DQoJCSQuZnguc3BlZWRzLl9kZWZhdWx0Ow0KDQoJZWZmZWN0LmNvbXBsZXRlID0gY2FsbGJhY2sgfHwgb3B0aW9ucy5jb21wbGV0ZTsNCg0KCXJldHVybiBlZmZlY3Q7DQp9DQoNCmZ1bmN0aW9uIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSB7DQoJLy8gVmFsaWQgc3RhbmRhcmQgc3BlZWRzIChub3RoaW5nLCBudW1iZXIsIG5hbWVkIHNwZWVkKQ0KCWlmICggIW9wdGlvbiB8fCB0eXBlb2Ygb3B0aW9uID09PSAibnVtYmVyIiB8fCAkLmZ4LnNwZWVkc1sgb3B0aW9uIF0gKSB7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8vIEludmFsaWQgc3RyaW5ncyAtIHRyZWF0IGFzICJub3JtYWwiIHNwZWVkDQoJaWYgKCB0eXBlb2Ygb3B0aW9uID09PSAic3RyaW5nIiAmJiAhJC5lZmZlY3RzLmVmZmVjdFsgb3B0aW9uIF0gKSB7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8vIENvbXBsZXRlIGNhbGxiYWNrDQoJaWYgKCAkLmlzRnVuY3Rpb24oIG9wdGlvbiApICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBPcHRpb25zIGhhc2ggKGJ1dCBub3QgbmFtaW5nIGFuIGVmZmVjdCkNCglpZiAoIHR5cGVvZiBvcHRpb24gPT09ICJvYmplY3QiICYmICFvcHRpb24uZWZmZWN0ICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBEaWRuJ3QgbWF0Y2ggYW55IHN0YW5kYXJkIEFQSQ0KCXJldHVybiBmYWxzZTsNCn0NCg0KJC5mbi5leHRlbmQoew0KCWVmZmVjdDogZnVuY3Rpb24oIC8qIGVmZmVjdCwgb3B0aW9ucywgc3BlZWQsIGNhbGxiYWNrICovICkgew0KCQl2YXIgYXJncyA9IF9ub3JtYWxpemVBcmd1bWVudHMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJbW9kZSA9IGFyZ3MubW9kZSwNCgkJCXF1ZXVlID0gYXJncy5xdWV1ZSwNCgkJCWVmZmVjdE1ldGhvZCA9ICQuZWZmZWN0cy5lZmZlY3RbIGFyZ3MuZWZmZWN0IF07DQoNCgkJaWYgKCAkLmZ4Lm9mZiB8fCAhZWZmZWN0TWV0aG9kICkgew0KCQkJLy8gZGVsZWdhdGUgdG8gdGhlIG9yaWdpbmFsIG1ldGhvZCAoZS5nLiwgLnNob3coKSkgaWYgcG9zc2libGUNCgkJCWlmICggbW9kZSApIHsNCgkJCQlyZXR1cm4gdGhpc1sgbW9kZSBdKCBhcmdzLmR1cmF0aW9uLCBhcmdzLmNvbXBsZXRlICk7DQoJCQl9IGVsc2Ugew0KCQkJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIGFyZ3MuY29tcGxldGUgKSB7DQoJCQkJCQlhcmdzLmNvbXBsZXRlLmNhbGwoIHRoaXMgKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfQ0KCQl9DQoNCgkJZnVuY3Rpb24gcnVuKCBuZXh0ICkgew0KCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJY29tcGxldGUgPSBhcmdzLmNvbXBsZXRlLA0KCQkJCW1vZGUgPSBhcmdzLm1vZGU7DQoNCgkJCWZ1bmN0aW9uIGRvbmUoKSB7DQoJCQkJaWYgKCAkLmlzRnVuY3Rpb24oIGNvbXBsZXRlICkgKSB7DQoJCQkJCWNvbXBsZXRlLmNhbGwoIGVsZW1bMF0gKTsNCgkJCQl9DQoJCQkJaWYgKCAkLmlzRnVuY3Rpb24oIG5leHQgKSApIHsNCgkJCQkJbmV4dCgpOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gSWYgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgdGhlIGNvcnJlY3QgZmluYWwgc3RhdGUsIGRlbGVnYXRlIHRvDQoJCQkvLyB0aGUgY29yZSBtZXRob2RzIHNvIHRoZSBpbnRlcm5hbCB0cmFja2luZyBvZiAib2xkZGlzcGxheSIgd29ya3MuDQoJCQlpZiAoIGVsZW0uaXMoICI6aGlkZGVuIiApID8gbW9kZSA9PT0gImhpZGUiIDogbW9kZSA9PT0gInNob3ciICkgew0KCQkJCWVsZW1bIG1vZGUgXSgpOw0KCQkJCWRvbmUoKTsNCgkJCX0gZWxzZSB7DQoJCQkJZWZmZWN0TWV0aG9kLmNhbGwoIGVsZW1bMF0sIGFyZ3MsIGRvbmUgKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBxdWV1ZSA9PT0gZmFsc2UgPyB0aGlzLmVhY2goIHJ1biApIDogdGhpcy5xdWV1ZSggcXVldWUgfHwgImZ4IiwgcnVuICk7DQoJfSwNCg0KCXNob3c6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBvcHRpb24gKSB7DQoJCQlpZiAoIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSApIHsNCgkJCQlyZXR1cm4gb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQl9IGVsc2Ugew0KCQkJCXZhciBhcmdzID0gX25vcm1hbGl6ZUFyZ3VtZW50cy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJYXJncy5tb2RlID0gInNob3ciOw0KCQkJCXJldHVybiB0aGlzLmVmZmVjdC5jYWxsKCB0aGlzLCBhcmdzICk7DQoJCQl9DQoJCX07DQoJfSkoICQuZm4uc2hvdyApLA0KDQoJaGlkZTogKGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIG9wdGlvbiApIHsNCgkJCWlmICggc3RhbmRhcmRBbmltYXRpb25PcHRpb24oIG9wdGlvbiApICkgew0KCQkJCXJldHVybiBvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdmFyIGFyZ3MgPSBfbm9ybWFsaXplQXJndW1lbnRzLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCQlhcmdzLm1vZGUgPSAiaGlkZSI7DQoJCQkJcmV0dXJuIHRoaXMuZWZmZWN0LmNhbGwoIHRoaXMsIGFyZ3MgKTsNCgkJCX0NCgkJfTsNCgl9KSggJC5mbi5oaWRlICksDQoNCgl0b2dnbGU6IChmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBvcHRpb24gKSB7DQoJCQlpZiAoIHN0YW5kYXJkQW5pbWF0aW9uT3B0aW9uKCBvcHRpb24gKSB8fCB0eXBlb2Ygb3B0aW9uID09PSAiYm9vbGVhbiIgKSB7DQoJCQkJcmV0dXJuIG9yaWcuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJfSBlbHNlIHsNCgkJCQl2YXIgYXJncyA9IF9ub3JtYWxpemVBcmd1bWVudHMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJCWFyZ3MubW9kZSA9ICJ0b2dnbGUiOw0KCQkJCXJldHVybiB0aGlzLmVmZmVjdC5jYWxsKCB0aGlzLCBhcmdzICk7DQoJCQl9DQoJCX07DQoJfSkoICQuZm4udG9nZ2xlICksDQoNCgkvLyBoZWxwZXIgZnVuY3Rpb25zDQoJY3NzVW5pdDogZnVuY3Rpb24oa2V5KSB7DQoJCXZhciBzdHlsZSA9IHRoaXMuY3NzKCBrZXkgKSwNCgkJCXZhbCA9IFtdOw0KDQoJCSQuZWFjaCggWyAiZW0iLCAicHgiLCAiJSIsICJwdCIgXSwgZnVuY3Rpb24oIGksIHVuaXQgKSB7DQoJCQlpZiAoIHN0eWxlLmluZGV4T2YoIHVuaXQgKSA+IDAgKSB7DQoJCQkJdmFsID0gWyBwYXJzZUZsb2F0KCBzdHlsZSApLCB1bml0IF07DQoJCQl9DQoJCX0pOw0KCQlyZXR1cm4gdmFsOw0KCX0NCn0pOw0KDQp9KSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVBU0lORyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCihmdW5jdGlvbigpIHsNCg0KLy8gYmFzZWQgb24gZWFzaW5nIGVxdWF0aW9ucyBmcm9tIFJvYmVydCBQZW5uZXIgKGh0dHA6Ly93d3cucm9iZXJ0cGVubmVyLmNvbS9lYXNpbmcpDQoNCnZhciBiYXNlRWFzaW5ncyA9IHt9Ow0KDQokLmVhY2goIFsgIlF1YWQiLCAiQ3ViaWMiLCAiUXVhcnQiLCAiUXVpbnQiLCAiRXhwbyIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7DQoJYmFzZUVhc2luZ3NbIG5hbWUgXSA9IGZ1bmN0aW9uKCBwICkgew0KCQlyZXR1cm4gTWF0aC5wb3coIHAsIGkgKyAyICk7DQoJfTsNCn0pOw0KDQokLmV4dGVuZCggYmFzZUVhc2luZ3MsIHsNCglTaW5lOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgLyAyICk7DQoJfSwNCglDaXJjOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBNYXRoLnNxcnQoIDEgLSBwICogcCApOw0KCX0sDQoJRWxhc3RpYzogZnVuY3Rpb24oIHAgKSB7DQoJCXJldHVybiBwID09PSAwIHx8IHAgPT09IDEgPyBwIDoNCgkJCS1NYXRoLnBvdyggMiwgOCAqIChwIC0gMSkgKSAqIE1hdGguc2luKCAoIChwIC0gMSkgKiA4MCAtIDcuNSApICogTWF0aC5QSSAvIDE1ICk7DQoJfSwNCglCYWNrOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgKiBwICogKCAzICogcCAtIDIgKTsNCgl9LA0KCUJvdW5jZTogZnVuY3Rpb24oIHAgKSB7DQoJCXZhciBwb3cyLA0KCQkJYm91bmNlID0gNDsNCg0KCQl3aGlsZSAoIHAgPCAoICggcG93MiA9IE1hdGgucG93KCAyLCAtLWJvdW5jZSApICkgLSAxICkgLyAxMSApIHt9DQoJCXJldHVybiAxIC8gTWF0aC5wb3coIDQsIDMgLSBib3VuY2UgKSAtIDcuNTYyNSAqIE1hdGgucG93KCAoIHBvdzIgKiAzIC0gMiApIC8gMjIgLSBwLCAyICk7DQoJfQ0KfSk7DQoNCiQuZWFjaCggYmFzZUVhc2luZ3MsIGZ1bmN0aW9uKCBuYW1lLCBlYXNlSW4gKSB7DQoJJC5lYXNpbmdbICJlYXNlSW4iICsgbmFtZSBdID0gZWFzZUluOw0KCSQuZWFzaW5nWyAiZWFzZU91dCIgKyBuYW1lIF0gPSBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIDEgLSBlYXNlSW4oIDEgLSBwICk7DQoJfTsNCgkkLmVhc2luZ1sgImVhc2VJbk91dCIgKyBuYW1lIF0gPSBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgPCAwLjUgPw0KCQkJZWFzZUluKCBwICogMiApIC8gMiA6DQoJCQkxIC0gZWFzZUluKCBwICogLTIgKyAyICkgLyAyOw0KCX07DQp9KTsNCg0KfSkoKTsNCg0KdmFyIGVmZmVjdCA9ICQuZWZmZWN0czsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEJsaW5kIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vYmxpbmQtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdEJsaW5kID0gJC5lZmZlY3RzLmVmZmVjdC5ibGluZCA9IGZ1bmN0aW9uKCBvLCBkb25lICkgew0KCS8vIENyZWF0ZSBlbGVtZW50DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQlydmVydGljYWwgPSAvdXB8ZG93bnx2ZXJ0aWNhbC8sDQoJCXJwb3NpdGl2ZW1vdGlvbiA9IC91cHxsZWZ0fHZlcnRpY2FsfGhvcml6b250YWwvLA0KCQlwcm9wcyA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJoZWlnaHQiLCAid2lkdGgiIF0sDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiaGlkZSIgKSwNCgkJZGlyZWN0aW9uID0gby5kaXJlY3Rpb24gfHwgInVwIiwNCgkJdmVydGljYWwgPSBydmVydGljYWwudGVzdCggZGlyZWN0aW9uICksDQoJCXJlZiA9IHZlcnRpY2FsID8gImhlaWdodCIgOiAid2lkdGgiLA0KCQlyZWYyID0gdmVydGljYWwgPyAidG9wIiA6ICJsZWZ0IiwNCgkJbW90aW9uID0gcnBvc2l0aXZlbW90aW9uLnRlc3QoIGRpcmVjdGlvbiApLA0KCQlhbmltYXRpb24gPSB7fSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCgkJd3JhcHBlciwgZGlzdGFuY2UsIG1hcmdpbjsNCg0KCS8vIGlmIGFscmVhZHkgd3JhcHBlZCwgdGhlIHdyYXBwZXIncyBwcm9wZXJ0aWVzIGFyZSBteSBwcm9wZXJ0eS4gIzYyNDUNCglpZiAoIGVsLnBhcmVudCgpLmlzKCAiLnVpLWVmZmVjdHMtd3JhcHBlciIgKSApIHsNCgkJJC5lZmZlY3RzLnNhdmUoIGVsLnBhcmVudCgpLCBwcm9wcyApOw0KCX0gZWxzZSB7DQoJCSQuZWZmZWN0cy5zYXZlKCBlbCwgcHJvcHMgKTsNCgl9DQoJZWwuc2hvdygpOw0KCXdyYXBwZXIgPSAkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKS5jc3Moew0KCQlvdmVyZmxvdzogImhpZGRlbiINCgl9KTsNCg0KCWRpc3RhbmNlID0gd3JhcHBlclsgcmVmIF0oKTsNCgltYXJnaW4gPSBwYXJzZUZsb2F0KCB3cmFwcGVyLmNzcyggcmVmMiApICkgfHwgMDsNCg0KCWFuaW1hdGlvblsgcmVmIF0gPSBzaG93ID8gZGlzdGFuY2UgOiAwOw0KCWlmICggIW1vdGlvbiApIHsNCgkJZWwNCgkJCS5jc3MoIHZlcnRpY2FsID8gImJvdHRvbSIgOiAicmlnaHQiLCAwICkNCgkJCS5jc3MoIHZlcnRpY2FsID8gInRvcCIgOiAibGVmdCIsICJhdXRvIiApDQoJCQkuY3NzKHsgcG9zaXRpb246ICJhYnNvbHV0ZSIgfSk7DQoNCgkJYW5pbWF0aW9uWyByZWYyIF0gPSBzaG93ID8gbWFyZ2luIDogZGlzdGFuY2UgKyBtYXJnaW47DQoJfQ0KDQoJLy8gc3RhcnQgYXQgMCBpZiB3ZSBhcmUgc2hvd2luZw0KCWlmICggc2hvdyApIHsNCgkJd3JhcHBlci5jc3MoIHJlZiwgMCApOw0KCQlpZiAoICFtb3Rpb24gKSB7DQoJCQl3cmFwcGVyLmNzcyggcmVmMiwgbWFyZ2luICsgZGlzdGFuY2UgKTsNCgkJfQ0KCX0NCg0KCS8vIEFuaW1hdGUNCgl3cmFwcGVyLmFuaW1hdGUoIGFuaW1hdGlvbiwgew0KCQlkdXJhdGlvbjogby5kdXJhdGlvbiwNCgkJZWFzaW5nOiBvLmVhc2luZywNCgkJcXVldWU6IGZhbHNlLA0KCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7DQoJCQlpZiAoIG1vZGUgPT09ICJoaWRlIiApIHsNCgkJCQllbC5oaWRlKCk7DQoJCQl9DQoJCQkkLmVmZmVjdHMucmVzdG9yZSggZWwsIHByb3BzICk7DQoJCQkkLmVmZmVjdHMucmVtb3ZlV3JhcHBlciggZWwgKTsNCgkJCWRvbmUoKTsNCgkJfQ0KCX0pOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEJvdW5jZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2JvdW5jZS1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0Qm91bmNlID0gJC5lZmZlY3RzLmVmZmVjdC5ib3VuY2UgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgl2YXIgZWwgPSAkKCB0aGlzICksDQoJCXByb3BzID0gWyAicG9zaXRpb24iLCAidG9wIiwgImJvdHRvbSIsICJsZWZ0IiwgInJpZ2h0IiwgImhlaWdodCIsICJ3aWR0aCIgXSwNCg0KCQkvLyBkZWZhdWx0czoNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbCwgby5tb2RlIHx8ICJlZmZlY3QiICksDQoJCWhpZGUgPSBtb2RlID09PSAiaGlkZSIsDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJ1cCIsDQoJCWRpc3RhbmNlID0gby5kaXN0YW5jZSwNCgkJdGltZXMgPSBvLnRpbWVzIHx8IDUsDQoNCgkJLy8gbnVtYmVyIG9mIGludGVybmFsIGFuaW1hdGlvbnMNCgkJYW5pbXMgPSB0aW1lcyAqIDIgKyAoIHNob3cgfHwgaGlkZSA/IDEgOiAwICksDQoJCXNwZWVkID0gby5kdXJhdGlvbiAvIGFuaW1zLA0KCQllYXNpbmcgPSBvLmVhc2luZywNCg0KCQkvLyB1dGlsaXR5Og0KCQlyZWYgPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJkb3duIiApID8gInRvcCIgOiAibGVmdCIsDQoJCW1vdGlvbiA9ICggZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiICksDQoJCWksDQoJCXVwQW5pbSwNCgkJZG93bkFuaW0sDQoNCgkJLy8gd2Ugd2lsbCBuZWVkIHRvIHJlLWFzc2VtYmxlIHRoZSBxdWV1ZSB0byBzdGFjayBvdXIgYW5pbWF0aW9ucyBpbiBwbGFjZQ0KCQlxdWV1ZSA9IGVsLnF1ZXVlKCksDQoJCXF1ZXVlbGVuID0gcXVldWUubGVuZ3RoOw0KDQoJLy8gQXZvaWQgdG91Y2hpbmcgb3BhY2l0eSB0byBwcmV2ZW50IGNsZWFyVHlwZSBhbmQgUE5HIGlzc3VlcyBpbiBJRQ0KCWlmICggc2hvdyB8fCBoaWRlICkgew0KCQlwcm9wcy5wdXNoKCAib3BhY2l0eSIgKTsNCgl9DQoNCgkkLmVmZmVjdHMuc2F2ZSggZWwsIHByb3BzICk7DQoJZWwuc2hvdygpOw0KCSQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApOyAvLyBDcmVhdGUgV3JhcHBlcg0KDQoJLy8gZGVmYXVsdCBkaXN0YW5jZSBmb3IgdGhlIEJJR0dFU1QgYm91bmNlIGlzIHRoZSBvdXRlciBEaXN0YW5jZSAvIDMNCglpZiAoICFkaXN0YW5jZSApIHsNCgkJZGlzdGFuY2UgPSBlbFsgcmVmID09PSAidG9wIiA/ICJvdXRlckhlaWdodCIgOiAib3V0ZXJXaWR0aCIgXSgpIC8gMzsNCgl9DQoNCglpZiAoIHNob3cgKSB7DQoJCWRvd25BbmltID0geyBvcGFjaXR5OiAxIH07DQoJCWRvd25BbmltWyByZWYgXSA9IDA7DQoNCgkJLy8gaWYgd2UgYXJlIHNob3dpbmcsIGZvcmNlIG9wYWNpdHkgMCBhbmQgc2V0IHRoZSBpbml0aWFsIHBvc2l0aW9uDQoJCS8vIHRoZW4gZG8gdGhlICJmaXJzdCIgYW5pbWF0aW9uDQoJCWVsLmNzcyggIm9wYWNpdHkiLCAwICkNCgkJCS5jc3MoIHJlZiwgbW90aW9uID8gLWRpc3RhbmNlICogMiA6IGRpc3RhbmNlICogMiApDQoJCQkuYW5pbWF0ZSggZG93bkFuaW0sIHNwZWVkLCBlYXNpbmcgKTsNCgl9DQoNCgkvLyBzdGFydCBhdCB0aGUgc21hbGxlc3QgZGlzdGFuY2UgaWYgd2UgYXJlIGhpZGluZw0KCWlmICggaGlkZSApIHsNCgkJZGlzdGFuY2UgPSBkaXN0YW5jZSAvIE1hdGgucG93KCAyLCB0aW1lcyAtIDEgKTsNCgl9DQoNCglkb3duQW5pbSA9IHt9Ow0KCWRvd25BbmltWyByZWYgXSA9IDA7DQoJLy8gQm91bmNlcyB1cC9kb3duL2xlZnQvcmlnaHQgdGhlbiBiYWNrIHRvIDAgLS0gdGltZXMgKiAyIGFuaW1hdGlvbnMgaGFwcGVuIGhlcmUNCglmb3IgKCBpID0gMDsgaSA8IHRpbWVzOyBpKysgKSB7DQoJCXVwQW5pbSA9IHt9Ow0KCQl1cEFuaW1bIHJlZiBdID0gKCBtb3Rpb24gPyAiLT0iIDogIis9IiApICsgZGlzdGFuY2U7DQoNCgkJZWwuYW5pbWF0ZSggdXBBbmltLCBzcGVlZCwgZWFzaW5nICkNCgkJCS5hbmltYXRlKCBkb3duQW5pbSwgc3BlZWQsIGVhc2luZyApOw0KDQoJCWRpc3RhbmNlID0gaGlkZSA/IGRpc3RhbmNlICogMiA6IGRpc3RhbmNlIC8gMjsNCgl9DQoNCgkvLyBMYXN0IEJvdW5jZSB3aGVuIEhpZGluZw0KCWlmICggaGlkZSApIHsNCgkJdXBBbmltID0geyBvcGFjaXR5OiAwIH07DQoJCXVwQW5pbVsgcmVmIF0gPSAoIG1vdGlvbiA/ICItPSIgOiAiKz0iICkgKyBkaXN0YW5jZTsNCg0KCQllbC5hbmltYXRlKCB1cEFuaW0sIHNwZWVkLCBlYXNpbmcgKTsNCgl9DQoNCgllbC5xdWV1ZShmdW5jdGlvbigpIHsNCgkJaWYgKCBoaWRlICkgew0KCQkJZWwuaGlkZSgpOw0KCQl9DQoJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCWRvbmUoKTsNCgl9KTsNCg0KCS8vIGluamVjdCBhbGwgdGhlIGFuaW1hdGlvbnMgd2UganVzdCBxdWV1ZWQgdG8gYmUgZmlyc3QgaW4gbGluZSAoYWZ0ZXIgImlucHJvZ3Jlc3MiKQ0KCWlmICggcXVldWVsZW4gPiAxKSB7DQoJCXF1ZXVlLnNwbGljZS5hcHBseSggcXVldWUsDQoJCQlbIDEsIDAgXS5jb25jYXQoIHF1ZXVlLnNwbGljZSggcXVldWVsZW4sIGFuaW1zICsgMSApICkgKTsNCgl9DQoJZWwuZGVxdWV1ZSgpOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgQ2xpcCAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2NsaXAtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdENsaXAgPSAkLmVmZmVjdHMuZWZmZWN0LmNsaXAgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAiaGVpZ2h0IiwgIndpZHRoIiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJ2ZXJ0aWNhbCIsDQoJCXZlcnQgPSBkaXJlY3Rpb24gPT09ICJ2ZXJ0aWNhbCIsDQoJCXNpemUgPSB2ZXJ0ID8gImhlaWdodCIgOiAid2lkdGgiLA0KCQlwb3NpdGlvbiA9IHZlcnQgPyAidG9wIiA6ICJsZWZ0IiwNCgkJYW5pbWF0aW9uID0ge30sDQoJCXdyYXBwZXIsIGFuaW1hdGUsIGRpc3RhbmNlOw0KDQoJLy8gU2F2ZSAmIFNob3cNCgkkLmVmZmVjdHMuc2F2ZSggZWwsIHByb3BzICk7DQoJZWwuc2hvdygpOw0KDQoJLy8gQ3JlYXRlIFdyYXBwZXINCgl3cmFwcGVyID0gJC5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoIGVsICkuY3NzKHsNCgkJb3ZlcmZsb3c6ICJoaWRkZW4iDQoJfSk7DQoJYW5pbWF0ZSA9ICggZWxbMF0udGFnTmFtZSA9PT0gIklNRyIgKSA/IHdyYXBwZXIgOiBlbDsNCglkaXN0YW5jZSA9IGFuaW1hdGVbIHNpemUgXSgpOw0KDQoJLy8gU2hpZnQNCglpZiAoIHNob3cgKSB7DQoJCWFuaW1hdGUuY3NzKCBzaXplLCAwICk7DQoJCWFuaW1hdGUuY3NzKCBwb3NpdGlvbiwgZGlzdGFuY2UgLyAyICk7DQoJfQ0KDQoJLy8gQ3JlYXRlIEFuaW1hdGlvbiBPYmplY3Q6DQoJYW5pbWF0aW9uWyBzaXplIF0gPSBzaG93ID8gZGlzdGFuY2UgOiAwOw0KCWFuaW1hdGlvblsgcG9zaXRpb24gXSA9IHNob3cgPyAwIDogZGlzdGFuY2UgLyAyOw0KDQoJLy8gQW5pbWF0ZQ0KCWFuaW1hdGUuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggIXNob3cgKSB7DQoJCQkJZWwuaGlkZSgpOw0KCQkJfQ0KCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGVsLCBwcm9wcyApOw0KCQkJJC5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoIGVsICk7DQoJCQlkb25lKCk7DQoJCX0NCgl9KTsNCg0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIERyb3AgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kcm9wLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3REcm9wID0gJC5lZmZlY3RzLmVmZmVjdC5kcm9wID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgl2YXIgZWwgPSAkKCB0aGlzICksDQoJCXByb3BzID0gWyAicG9zaXRpb24iLCAidG9wIiwgImJvdHRvbSIsICJsZWZ0IiwgInJpZ2h0IiwgIm9wYWNpdHkiLCAiaGVpZ2h0IiwgIndpZHRoIiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJsZWZ0IiwNCgkJcmVmID0gKCBkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIgKSA/ICJ0b3AiIDogImxlZnQiLA0KCQltb3Rpb24gPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJsZWZ0IiApID8gInBvcyIgOiAibmVnIiwNCgkJYW5pbWF0aW9uID0gew0KCQkJb3BhY2l0eTogc2hvdyA/IDEgOiAwDQoJCX0sDQoJCWRpc3RhbmNlOw0KDQoJLy8gQWRqdXN0DQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCgkkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKTsNCg0KCWRpc3RhbmNlID0gby5kaXN0YW5jZSB8fCBlbFsgcmVmID09PSAidG9wIiA/ICJvdXRlckhlaWdodCIgOiAib3V0ZXJXaWR0aCIgXSggdHJ1ZSApIC8gMjsNCg0KCWlmICggc2hvdyApIHsNCgkJZWwNCgkJCS5jc3MoICJvcGFjaXR5IiwgMCApDQoJCQkuY3NzKCByZWYsIG1vdGlvbiA9PT0gInBvcyIgPyAtZGlzdGFuY2UgOiBkaXN0YW5jZSApOw0KCX0NCg0KCS8vIEFuaW1hdGlvbg0KCWFuaW1hdGlvblsgcmVmIF0gPSAoIHNob3cgPw0KCQkoIG1vdGlvbiA9PT0gInBvcyIgPyAiKz0iIDogIi09IiApIDoNCgkJKCBtb3Rpb24gPT09ICJwb3MiID8gIi09IiA6ICIrPSIgKSApICsNCgkJZGlzdGFuY2U7DQoNCgkvLyBBbmltYXRlDQoJZWwuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggbW9kZSA9PT0gImhpZGUiICkgew0KCQkJCWVsLmhpZGUoKTsNCgkJCX0NCgkJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQkJZG9uZSgpOw0KCQl9DQoJfSk7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgRXhwbG9kZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2V4cGxvZGUtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdEV4cGxvZGUgPSAkLmVmZmVjdHMuZWZmZWN0LmV4cGxvZGUgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCg0KCXZhciByb3dzID0gby5waWVjZXMgPyBNYXRoLnJvdW5kKCBNYXRoLnNxcnQoIG8ucGllY2VzICkgKSA6IDMsDQoJCWNlbGxzID0gcm93cywNCgkJZWwgPSAkKCB0aGlzICksDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWwsIG8ubW9kZSB8fCAiaGlkZSIgKSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCg0KCQkvLyBzaG93IGFuZCB0aGVuIHZpc2liaWxpdHk6aGlkZGVuIHRoZSBlbGVtZW50IGJlZm9yZSBjYWxjdWxhdGluZyBvZmZzZXQNCgkJb2Zmc2V0ID0gZWwuc2hvdygpLmNzcyggInZpc2liaWxpdHkiLCAiaGlkZGVuIiApLm9mZnNldCgpLA0KDQoJCS8vIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSBwaWVjZQ0KCQl3aWR0aCA9IE1hdGguY2VpbCggZWwub3V0ZXJXaWR0aCgpIC8gY2VsbHMgKSwNCgkJaGVpZ2h0ID0gTWF0aC5jZWlsKCBlbC5vdXRlckhlaWdodCgpIC8gcm93cyApLA0KCQlwaWVjZXMgPSBbXSwNCg0KCQkvLyBsb29wDQoJCWksIGosIGxlZnQsIHRvcCwgbXgsIG15Ow0KDQoJLy8gY2hpbGRyZW4gYW5pbWF0ZSBjb21wbGV0ZToNCglmdW5jdGlvbiBjaGlsZENvbXBsZXRlKCkgew0KCQlwaWVjZXMucHVzaCggdGhpcyApOw0KCQlpZiAoIHBpZWNlcy5sZW5ndGggPT09IHJvd3MgKiBjZWxscyApIHsNCgkJCWFuaW1Db21wbGV0ZSgpOw0KCQl9DQoJfQ0KDQoJLy8gY2xvbmUgdGhlIGVsZW1lbnQgZm9yIGVhY2ggcm93IGFuZCBjZWxsLg0KCWZvciAoIGkgPSAwOyBpIDwgcm93cyA7IGkrKyApIHsgLy8gPT09Pg0KCQl0b3AgPSBvZmZzZXQudG9wICsgaSAqIGhlaWdodDsNCgkJbXkgPSBpIC0gKCByb3dzIC0gMSApIC8gMiA7DQoNCgkJZm9yICggaiA9IDA7IGogPCBjZWxscyA7IGorKyApIHsgLy8gfHx8DQoJCQlsZWZ0ID0gb2Zmc2V0LmxlZnQgKyBqICogd2lkdGg7DQoJCQlteCA9IGogLSAoIGNlbGxzIC0gMSApIC8gMiA7DQoNCgkJCS8vIENyZWF0ZSBhIGNsb25lIG9mIHRoZSBub3cgaGlkZGVuIG1haW4gZWxlbWVudCB0aGF0IHdpbGwgYmUgYWJzb2x1dGUgcG9zaXRpb25lZA0KCQkJLy8gd2l0aGluIGEgd3JhcHBlciBkaXYgb2ZmIHRoZSAtbGVmdCBhbmQgLXRvcCBlcXVhbCB0byBzaXplIG9mIG91ciBwaWVjZXMNCgkJCWVsDQoJCQkJLmNsb25lKCkNCgkJCQkuYXBwZW5kVG8oICJib2R5IiApDQoJCQkJLndyYXAoICI8ZGl2PjwvZGl2PiIgKQ0KCQkJCS5jc3Moew0KCQkJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCQkJdmlzaWJpbGl0eTogInZpc2libGUiLA0KCQkJCQlsZWZ0OiAtaiAqIHdpZHRoLA0KCQkJCQl0b3A6IC1pICogaGVpZ2h0DQoJCQkJfSkNCg0KCQkJLy8gc2VsZWN0IHRoZSB3cmFwcGVyIC0gbWFrZSBpdCBvdmVyZmxvdzogaGlkZGVuIGFuZCBhYnNvbHV0ZSBwb3NpdGlvbmVkIGJhc2VkIG9uDQoJCQkvLyB3aGVyZSB0aGUgb3JpZ2luYWwgd2FzIGxvY2F0ZWQgK2xlZnQgYW5kICt0b3AgZXF1YWwgdG8gdGhlIHNpemUgb2YgcGllY2VzDQoJCQkJLnBhcmVudCgpDQoJCQkJLmFkZENsYXNzKCAidWktZWZmZWN0cy1leHBsb2RlIiApDQoJCQkJLmNzcyh7DQoJCQkJCXBvc2l0aW9uOiAiYWJzb2x1dGUiLA0KCQkJCQlvdmVyZmxvdzogImhpZGRlbiIsDQoJCQkJCXdpZHRoOiB3aWR0aCwNCgkJCQkJaGVpZ2h0OiBoZWlnaHQsDQoJCQkJCWxlZnQ6IGxlZnQgKyAoIHNob3cgPyBteCAqIHdpZHRoIDogMCApLA0KCQkJCQl0b3A6IHRvcCArICggc2hvdyA/IG15ICogaGVpZ2h0IDogMCApLA0KCQkJCQlvcGFjaXR5OiBzaG93ID8gMCA6IDENCgkJCQl9KS5hbmltYXRlKHsNCgkJCQkJbGVmdDogbGVmdCArICggc2hvdyA/IDAgOiBteCAqIHdpZHRoICksDQoJCQkJCXRvcDogdG9wICsgKCBzaG93ID8gMCA6IG15ICogaGVpZ2h0ICksDQoJCQkJCW9wYWNpdHk6IHNob3cgPyAxIDogMA0KCQkJCX0sIG8uZHVyYXRpb24gfHwgNTAwLCBvLmVhc2luZywgY2hpbGRDb21wbGV0ZSApOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gYW5pbUNvbXBsZXRlKCkgew0KCQllbC5jc3Moew0KCQkJdmlzaWJpbGl0eTogInZpc2libGUiDQoJCX0pOw0KCQkkKCBwaWVjZXMgKS5yZW1vdmUoKTsNCgkJaWYgKCAhc2hvdyApIHsNCgkJCWVsLmhpZGUoKTsNCgkJfQ0KCQlkb25lKCk7DQoJfQ0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEZhZGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mYWRlLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RGYWRlID0gJC5lZmZlY3RzLmVmZmVjdC5mYWRlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgInRvZ2dsZSIgKTsNCg0KCWVsLmFuaW1hdGUoew0KCQlvcGFjaXR5OiBtb2RlDQoJfSwgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvLmR1cmF0aW9uLA0KCQllYXNpbmc6IG8uZWFzaW5nLA0KCQljb21wbGV0ZTogZG9uZQ0KCX0pOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEZvbGQgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mb2xkLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RGb2xkID0gJC5lZmZlY3RzLmVmZmVjdC5mb2xkID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAiaGVpZ2h0IiwgIndpZHRoIiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWhpZGUgPSBtb2RlID09PSAiaGlkZSIsDQoJCXNpemUgPSBvLnNpemUgfHwgMTUsDQoJCXBlcmNlbnQgPSAvKFswLTldKyklLy5leGVjKCBzaXplICksDQoJCWhvcml6Rmlyc3QgPSAhIW8uaG9yaXpGaXJzdCwNCgkJd2lkdGhGaXJzdCA9IHNob3cgIT09IGhvcml6Rmlyc3QsDQoJCXJlZiA9IHdpZHRoRmlyc3QgPyBbICJ3aWR0aCIsICJoZWlnaHQiIF0gOiBbICJoZWlnaHQiLCAid2lkdGgiIF0sDQoJCWR1cmF0aW9uID0gby5kdXJhdGlvbiAvIDIsDQoJCXdyYXBwZXIsIGRpc3RhbmNlLA0KCQlhbmltYXRpb24xID0ge30sDQoJCWFuaW1hdGlvbjIgPSB7fTsNCg0KCSQuZWZmZWN0cy5zYXZlKCBlbCwgcHJvcHMgKTsNCgllbC5zaG93KCk7DQoNCgkvLyBDcmVhdGUgV3JhcHBlcg0KCXdyYXBwZXIgPSAkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKS5jc3Moew0KCQlvdmVyZmxvdzogImhpZGRlbiINCgl9KTsNCglkaXN0YW5jZSA9IHdpZHRoRmlyc3QgPw0KCQlbIHdyYXBwZXIud2lkdGgoKSwgd3JhcHBlci5oZWlnaHQoKSBdIDoNCgkJWyB3cmFwcGVyLmhlaWdodCgpLCB3cmFwcGVyLndpZHRoKCkgXTsNCg0KCWlmICggcGVyY2VudCApIHsNCgkJc2l6ZSA9IHBhcnNlSW50KCBwZXJjZW50WyAxIF0sIDEwICkgLyAxMDAgKiBkaXN0YW5jZVsgaGlkZSA/IDAgOiAxIF07DQoJfQ0KCWlmICggc2hvdyApIHsNCgkJd3JhcHBlci5jc3MoIGhvcml6Rmlyc3QgPyB7DQoJCQloZWlnaHQ6IDAsDQoJCQl3aWR0aDogc2l6ZQ0KCQl9IDogew0KCQkJaGVpZ2h0OiBzaXplLA0KCQkJd2lkdGg6IDANCgkJfSk7DQoJfQ0KDQoJLy8gQW5pbWF0aW9uDQoJYW5pbWF0aW9uMVsgcmVmWyAwIF0gXSA9IHNob3cgPyBkaXN0YW5jZVsgMCBdIDogc2l6ZTsNCglhbmltYXRpb24yWyByZWZbIDEgXSBdID0gc2hvdyA/IGRpc3RhbmNlWyAxIF0gOiAwOw0KDQoJLy8gQW5pbWF0ZQ0KCXdyYXBwZXINCgkJLmFuaW1hdGUoIGFuaW1hdGlvbjEsIGR1cmF0aW9uLCBvLmVhc2luZyApDQoJCS5hbmltYXRlKCBhbmltYXRpb24yLCBkdXJhdGlvbiwgby5lYXNpbmcsIGZ1bmN0aW9uKCkgew0KCQkJaWYgKCBoaWRlICkgew0KCQkJCWVsLmhpZGUoKTsNCgkJCX0NCgkJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQkJZG9uZSgpOw0KCQl9KTsNCg0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEhpZ2hsaWdodCAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2hpZ2hsaWdodC1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0SGlnaGxpZ2h0ID0gJC5lZmZlY3RzLmVmZmVjdC5oaWdobGlnaHQgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgl2YXIgZWxlbSA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJiYWNrZ3JvdW5kSW1hZ2UiLCAiYmFja2dyb3VuZENvbG9yIiwgIm9wYWNpdHkiIF0sDQoJCW1vZGUgPSAkLmVmZmVjdHMuc2V0TW9kZSggZWxlbSwgby5tb2RlIHx8ICJzaG93IiApLA0KCQlhbmltYXRpb24gPSB7DQoJCQliYWNrZ3JvdW5kQ29sb3I6IGVsZW0uY3NzKCAiYmFja2dyb3VuZENvbG9yIiApDQoJCX07DQoNCglpZiAobW9kZSA9PT0gImhpZGUiKSB7DQoJCWFuaW1hdGlvbi5vcGFjaXR5ID0gMDsNCgl9DQoNCgkkLmVmZmVjdHMuc2F2ZSggZWxlbSwgcHJvcHMgKTsNCg0KCWVsZW0NCgkJLnNob3coKQ0KCQkuY3NzKHsNCgkJCWJhY2tncm91bmRJbWFnZTogIm5vbmUiLA0KCQkJYmFja2dyb3VuZENvbG9yOiBvLmNvbG9yIHx8ICIjZmZmZjk5Ig0KCQl9KQ0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCQlxdWV1ZTogZmFsc2UsDQoJCQlkdXJhdGlvbjogby5kdXJhdGlvbiwNCgkJCWVhc2luZzogby5lYXNpbmcsDQoJCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCBtb2RlID09PSAiaGlkZSIgKSB7DQoJCQkJCWVsZW0uaGlkZSgpOw0KCQkJCX0NCgkJCQkkLmVmZmVjdHMucmVzdG9yZSggZWxlbSwgcHJvcHMgKTsNCgkJCQlkb25lKCk7DQoJCQl9DQoJCX0pOw0KfTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIFNpemUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zaXplLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RTaXplID0gJC5lZmZlY3RzLmVmZmVjdC5zaXplID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBvcmlnaW5hbCwgYmFzZWxpbmUsIGZhY3RvciwNCgkJZWwgPSAkKCB0aGlzICksDQoJCXByb3BzMCA9IFsgInBvc2l0aW9uIiwgInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCIsICJ3aWR0aCIsICJoZWlnaHQiLCAib3ZlcmZsb3ciLCAib3BhY2l0eSIgXSwNCg0KCQkvLyBBbHdheXMgcmVzdG9yZQ0KCQlwcm9wczEgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAib3ZlcmZsb3ciLCAib3BhY2l0eSIgXSwNCg0KCQkvLyBDb3B5IGZvciBjaGlsZHJlbg0KCQlwcm9wczIgPSBbICJ3aWR0aCIsICJoZWlnaHQiLCAib3ZlcmZsb3ciIF0sDQoJCWNQcm9wcyA9IFsgImZvbnRTaXplIiBdLA0KCQl2UHJvcHMgPSBbICJib3JkZXJUb3BXaWR0aCIsICJib3JkZXJCb3R0b21XaWR0aCIsICJwYWRkaW5nVG9wIiwgInBhZGRpbmdCb3R0b20iIF0sDQoJCWhQcm9wcyA9IFsgImJvcmRlckxlZnRXaWR0aCIsICJib3JkZXJSaWdodFdpZHRoIiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwNCg0KCQkvLyBTZXQgb3B0aW9ucw0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImVmZmVjdCIgKSwNCgkJcmVzdG9yZSA9IG8ucmVzdG9yZSB8fCBtb2RlICE9PSAiZWZmZWN0IiwNCgkJc2NhbGUgPSBvLnNjYWxlIHx8ICJib3RoIiwNCgkJb3JpZ2luID0gby5vcmlnaW4gfHwgWyAibWlkZGxlIiwgImNlbnRlciIgXSwNCgkJcG9zaXRpb24gPSBlbC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJcHJvcHMgPSByZXN0b3JlID8gcHJvcHMwIDogcHJvcHMxLA0KCQl6ZXJvID0gew0KCQkJaGVpZ2h0OiAwLA0KCQkJd2lkdGg6IDAsDQoJCQlvdXRlckhlaWdodDogMCwNCgkJCW91dGVyV2lkdGg6IDANCgkJfTsNCg0KCWlmICggbW9kZSA9PT0gInNob3ciICkgew0KCQllbC5zaG93KCk7DQoJfQ0KCW9yaWdpbmFsID0gew0KCQloZWlnaHQ6IGVsLmhlaWdodCgpLA0KCQl3aWR0aDogZWwud2lkdGgoKSwNCgkJb3V0ZXJIZWlnaHQ6IGVsLm91dGVySGVpZ2h0KCksDQoJCW91dGVyV2lkdGg6IGVsLm91dGVyV2lkdGgoKQ0KCX07DQoNCglpZiAoIG8ubW9kZSA9PT0gInRvZ2dsZSIgJiYgbW9kZSA9PT0gInNob3ciICkgew0KCQllbC5mcm9tID0gby50byB8fCB6ZXJvOw0KCQllbC50byA9IG8uZnJvbSB8fCBvcmlnaW5hbDsNCgl9IGVsc2Ugew0KCQllbC5mcm9tID0gby5mcm9tIHx8ICggbW9kZSA9PT0gInNob3ciID8gemVybyA6IG9yaWdpbmFsICk7DQoJCWVsLnRvID0gby50byB8fCAoIG1vZGUgPT09ICJoaWRlIiA/IHplcm8gOiBvcmlnaW5hbCApOw0KCX0NCg0KCS8vIFNldCBzY2FsaW5nIGZhY3Rvcg0KCWZhY3RvciA9IHsNCgkJZnJvbTogew0KCQkJeTogZWwuZnJvbS5oZWlnaHQgLyBvcmlnaW5hbC5oZWlnaHQsDQoJCQl4OiBlbC5mcm9tLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfSwNCgkJdG86IHsNCgkJCXk6IGVsLnRvLmhlaWdodCAvIG9yaWdpbmFsLmhlaWdodCwNCgkJCXg6IGVsLnRvLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfQ0KCX07DQoNCgkvLyBTY2FsZSB0aGUgY3NzIGJveA0KCWlmICggc2NhbGUgPT09ICJib3giIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJLy8gVmVydGljYWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnkgIT09IGZhY3Rvci50by55ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIHZQcm9wcyApOw0KCQkJZWwuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgdlByb3BzLCBmYWN0b3IuZnJvbS55LCBlbC5mcm9tICk7DQoJCQllbC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgdlByb3BzLCBmYWN0b3IudG8ueSwgZWwudG8gKTsNCgkJfQ0KDQoJCS8vIEhvcml6b250YWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnggIT09IGZhY3Rvci50by54ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIGhQcm9wcyApOw0KCQkJZWwuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgaFByb3BzLCBmYWN0b3IuZnJvbS54LCBlbC5mcm9tICk7DQoJCQllbC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbCwgaFByb3BzLCBmYWN0b3IudG8ueCwgZWwudG8gKTsNCgkJfQ0KCX0NCg0KCS8vIFNjYWxlIHRoZSBjb250ZW50DQoJaWYgKCBzY2FsZSA9PT0gImNvbnRlbnQiIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJLy8gVmVydGljYWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnkgIT09IGZhY3Rvci50by55ICkgew0KCQkJcHJvcHMgPSBwcm9wcy5jb25jYXQoIGNQcm9wcyApLmNvbmNhdCggcHJvcHMyICk7DQoJCQllbC5mcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsLCBjUHJvcHMsIGZhY3Rvci5mcm9tLnksIGVsLmZyb20gKTsNCgkJCWVsLnRvID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsLCBjUHJvcHMsIGZhY3Rvci50by55LCBlbC50byApOw0KCQl9DQoJfQ0KDQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCgkkLmVmZmVjdHMuY3JlYXRlV3JhcHBlciggZWwgKTsNCgllbC5jc3MoICJvdmVyZmxvdyIsICJoaWRkZW4iICkuY3NzKCBlbC5mcm9tICk7DQoNCgkvLyBBZGp1c3QNCglpZiAob3JpZ2luKSB7IC8vIENhbGN1bGF0ZSBiYXNlbGluZSBzaGlmdHMNCgkJYmFzZWxpbmUgPSAkLmVmZmVjdHMuZ2V0QmFzZWxpbmUoIG9yaWdpbiwgb3JpZ2luYWwgKTsNCgkJZWwuZnJvbS50b3AgPSAoIG9yaWdpbmFsLm91dGVySGVpZ2h0IC0gZWwub3V0ZXJIZWlnaHQoKSApICogYmFzZWxpbmUueTsNCgkJZWwuZnJvbS5sZWZ0ID0gKCBvcmlnaW5hbC5vdXRlcldpZHRoIC0gZWwub3V0ZXJXaWR0aCgpICkgKiBiYXNlbGluZS54Ow0KCQllbC50by50b3AgPSAoIG9yaWdpbmFsLm91dGVySGVpZ2h0IC0gZWwudG8ub3V0ZXJIZWlnaHQgKSAqIGJhc2VsaW5lLnk7DQoJCWVsLnRvLmxlZnQgPSAoIG9yaWdpbmFsLm91dGVyV2lkdGggLSBlbC50by5vdXRlcldpZHRoICkgKiBiYXNlbGluZS54Ow0KCX0NCgllbC5jc3MoIGVsLmZyb20gKTsgLy8gc2V0IHRvcCAmIGxlZnQNCg0KCS8vIEFuaW1hdGUNCglpZiAoIHNjYWxlID09PSAiY29udGVudCIgfHwgc2NhbGUgPT09ICJib3RoIiApIHsgLy8gU2NhbGUgdGhlIGNoaWxkcmVuDQoNCgkJLy8gQWRkIG1hcmdpbnMvZm9udC1zaXplDQoJCXZQcm9wcyA9IHZQcm9wcy5jb25jYXQoWyAibWFyZ2luVG9wIiwgIm1hcmdpbkJvdHRvbSIgXSkuY29uY2F0KGNQcm9wcyk7DQoJCWhQcm9wcyA9IGhQcm9wcy5jb25jYXQoWyAibWFyZ2luTGVmdCIsICJtYXJnaW5SaWdodCIgXSk7DQoJCXByb3BzMiA9IHByb3BzMC5jb25jYXQodlByb3BzKS5jb25jYXQoaFByb3BzKTsNCg0KCQllbC5maW5kKCAiKlt3aWR0aF0iICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgY2hpbGQgPSAkKCB0aGlzICksDQoJCQkJY19vcmlnaW5hbCA9IHsNCgkJCQkJaGVpZ2h0OiBjaGlsZC5oZWlnaHQoKSwNCgkJCQkJd2lkdGg6IGNoaWxkLndpZHRoKCksDQoJCQkJCW91dGVySGVpZ2h0OiBjaGlsZC5vdXRlckhlaWdodCgpLA0KCQkJCQlvdXRlcldpZHRoOiBjaGlsZC5vdXRlcldpZHRoKCkNCgkJCQl9Ow0KCQkJaWYgKHJlc3RvcmUpIHsNCgkJCQkkLmVmZmVjdHMuc2F2ZShjaGlsZCwgcHJvcHMyKTsNCgkJCX0NCg0KCQkJY2hpbGQuZnJvbSA9IHsNCgkJCQloZWlnaHQ6IGNfb3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLmZyb20ueSwNCgkJCQl3aWR0aDogY19vcmlnaW5hbC53aWR0aCAqIGZhY3Rvci5mcm9tLngsDQoJCQkJb3V0ZXJIZWlnaHQ6IGNfb3JpZ2luYWwub3V0ZXJIZWlnaHQgKiBmYWN0b3IuZnJvbS55LA0KCQkJCW91dGVyV2lkdGg6IGNfb3JpZ2luYWwub3V0ZXJXaWR0aCAqIGZhY3Rvci5mcm9tLngNCgkJCX07DQoJCQljaGlsZC50byA9IHsNCgkJCQloZWlnaHQ6IGNfb3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLnRvLnksDQoJCQkJd2lkdGg6IGNfb3JpZ2luYWwud2lkdGggKiBmYWN0b3IudG8ueCwNCgkJCQlvdXRlckhlaWdodDogY19vcmlnaW5hbC5oZWlnaHQgKiBmYWN0b3IudG8ueSwNCgkJCQlvdXRlcldpZHRoOiBjX29yaWdpbmFsLndpZHRoICogZmFjdG9yLnRvLngNCgkJCX07DQoNCgkJCS8vIFZlcnRpY2FsIHByb3BzIHNjYWxpbmcNCgkJCWlmICggZmFjdG9yLmZyb20ueSAhPT0gZmFjdG9yLnRvLnkgKSB7DQoJCQkJY2hpbGQuZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBjaGlsZCwgdlByb3BzLCBmYWN0b3IuZnJvbS55LCBjaGlsZC5mcm9tICk7DQoJCQkJY2hpbGQudG8gPSAkLmVmZmVjdHMuc2V0VHJhbnNpdGlvbiggY2hpbGQsIHZQcm9wcywgZmFjdG9yLnRvLnksIGNoaWxkLnRvICk7DQoJCQl9DQoNCgkJCS8vIEhvcml6b250YWwgcHJvcHMgc2NhbGluZw0KCQkJaWYgKCBmYWN0b3IuZnJvbS54ICE9PSBmYWN0b3IudG8ueCApIHsNCgkJCQljaGlsZC5mcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGNoaWxkLCBoUHJvcHMsIGZhY3Rvci5mcm9tLngsIGNoaWxkLmZyb20gKTsNCgkJCQljaGlsZC50byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBjaGlsZCwgaFByb3BzLCBmYWN0b3IudG8ueCwgY2hpbGQudG8gKTsNCgkJCX0NCg0KCQkJLy8gQW5pbWF0ZSBjaGlsZHJlbg0KCQkJY2hpbGQuY3NzKCBjaGlsZC5mcm9tICk7DQoJCQljaGlsZC5hbmltYXRlKCBjaGlsZC50bywgby5kdXJhdGlvbiwgby5lYXNpbmcsIGZ1bmN0aW9uKCkgew0KDQoJCQkJLy8gUmVzdG9yZSBjaGlsZHJlbg0KCQkJCWlmICggcmVzdG9yZSApIHsNCgkJCQkJJC5lZmZlY3RzLnJlc3RvcmUoIGNoaWxkLCBwcm9wczIgKTsNCgkJCQl9DQoJCQl9KTsNCgkJfSk7DQoJfQ0KDQoJLy8gQW5pbWF0ZQ0KCWVsLmFuaW1hdGUoIGVsLnRvLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggZWwudG8ub3BhY2l0eSA9PT0gMCApIHsNCgkJCQllbC5jc3MoICJvcGFjaXR5IiwgZWwuZnJvbS5vcGFjaXR5ICk7DQoJCQl9DQoJCQlpZiAoIG1vZGUgPT09ICJoaWRlIiApIHsNCgkJCQllbC5oaWRlKCk7DQoJCQl9DQoJCQkkLmVmZmVjdHMucmVzdG9yZSggZWwsIHByb3BzICk7DQoJCQlpZiAoICFyZXN0b3JlICkgew0KDQoJCQkJLy8gd2UgbmVlZCB0byBjYWxjdWxhdGUgb3VyIG5ldyBwb3NpdGlvbmluZyBiYXNlZCBvbiB0aGUgc2NhbGluZw0KCQkJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgew0KCQkJCQllbC5jc3Moew0KCQkJCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQkJCQl0b3A6IGVsLnRvLnRvcCwNCgkJCQkJCWxlZnQ6IGVsLnRvLmxlZnQNCgkJCQkJfSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJC5lYWNoKFsgInRvcCIsICJsZWZ0IiBdLCBmdW5jdGlvbiggaWR4LCBwb3MgKSB7DQoJCQkJCQllbC5jc3MoIHBvcywgZnVuY3Rpb24oIF8sIHN0ciApIHsNCgkJCQkJCQl2YXIgdmFsID0gcGFyc2VJbnQoIHN0ciwgMTAgKSwNCgkJCQkJCQkJdG9SZWYgPSBpZHggPyBlbC50by5sZWZ0IDogZWwudG8udG9wOw0KDQoJCQkJCQkJLy8gaWYgb3JpZ2luYWwgd2FzICJhdXRvIiwgcmVjYWxjdWxhdGUgdGhlIG5ldyB2YWx1ZSBmcm9tIHdyYXBwZXINCgkJCQkJCQlpZiAoIHN0ciA9PT0gImF1dG8iICkgew0KCQkJCQkJCQlyZXR1cm4gdG9SZWYgKyAicHgiOw0KCQkJCQkJCX0NCg0KCQkJCQkJCXJldHVybiB2YWwgKyB0b1JlZiArICJweCI7DQoJCQkJCQl9KTsNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkkLmVmZmVjdHMucmVtb3ZlV3JhcHBlciggZWwgKTsNCgkJCWRvbmUoKTsNCgkJfQ0KCX0pOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2NhbGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zY2FsZS1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0U2NhbGUgPSAkLmVmZmVjdHMuZWZmZWN0LnNjYWxlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJb3B0aW9ucyA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgbyApLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImVmZmVjdCIgKSwNCgkJcGVyY2VudCA9IHBhcnNlSW50KCBvLnBlcmNlbnQsIDEwICkgfHwNCgkJCSggcGFyc2VJbnQoIG8ucGVyY2VudCwgMTAgKSA9PT0gMCA/IDAgOiAoIG1vZGUgPT09ICJoaWRlIiA/IDAgOiAxMDAgKSApLA0KCQlkaXJlY3Rpb24gPSBvLmRpcmVjdGlvbiB8fCAiYm90aCIsDQoJCW9yaWdpbiA9IG8ub3JpZ2luLA0KCQlvcmlnaW5hbCA9IHsNCgkJCWhlaWdodDogZWwuaGVpZ2h0KCksDQoJCQl3aWR0aDogZWwud2lkdGgoKSwNCgkJCW91dGVySGVpZ2h0OiBlbC5vdXRlckhlaWdodCgpLA0KCQkJb3V0ZXJXaWR0aDogZWwub3V0ZXJXaWR0aCgpDQoJCX0sDQoJCWZhY3RvciA9IHsNCgkJCXk6IGRpcmVjdGlvbiAhPT0gImhvcml6b250YWwiID8gKHBlcmNlbnQgLyAxMDApIDogMSwNCgkJCXg6IGRpcmVjdGlvbiAhPT0gInZlcnRpY2FsIiA/IChwZXJjZW50IC8gMTAwKSA6IDENCgkJfTsNCg0KCS8vIFdlIGFyZSBnb2luZyB0byBwYXNzIHRoaXMgZWZmZWN0IHRvIHRoZSBzaXplIGVmZmVjdDoNCglvcHRpb25zLmVmZmVjdCA9ICJzaXplIjsNCglvcHRpb25zLnF1ZXVlID0gZmFsc2U7DQoJb3B0aW9ucy5jb21wbGV0ZSA9IGRvbmU7DQoNCgkvLyBTZXQgZGVmYXVsdCBvcmlnaW4gYW5kIHJlc3RvcmUgZm9yIHNob3cvaGlkZQ0KCWlmICggbW9kZSAhPT0gImVmZmVjdCIgKSB7DQoJCW9wdGlvbnMub3JpZ2luID0gb3JpZ2luIHx8IFsgIm1pZGRsZSIsICJjZW50ZXIiIF07DQoJCW9wdGlvbnMucmVzdG9yZSA9IHRydWU7DQoJfQ0KDQoJb3B0aW9ucy5mcm9tID0gby5mcm9tIHx8ICggbW9kZSA9PT0gInNob3ciID8gew0KCQloZWlnaHQ6IDAsDQoJCXdpZHRoOiAwLA0KCQlvdXRlckhlaWdodDogMCwNCgkJb3V0ZXJXaWR0aDogMA0KCX0gOiBvcmlnaW5hbCApOw0KCW9wdGlvbnMudG8gPSB7DQoJCWhlaWdodDogb3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLnksDQoJCXdpZHRoOiBvcmlnaW5hbC53aWR0aCAqIGZhY3Rvci54LA0KCQlvdXRlckhlaWdodDogb3JpZ2luYWwub3V0ZXJIZWlnaHQgKiBmYWN0b3IueSwNCgkJb3V0ZXJXaWR0aDogb3JpZ2luYWwub3V0ZXJXaWR0aCAqIGZhY3Rvci54DQoJfTsNCg0KCS8vIEZhZGUgb3B0aW9uIHRvIHN1cHBvcnQgcHVmZg0KCWlmICggb3B0aW9ucy5mYWRlICkgew0KCQlpZiAoIG1vZGUgPT09ICJzaG93IiApIHsNCgkJCW9wdGlvbnMuZnJvbS5vcGFjaXR5ID0gMDsNCgkJCW9wdGlvbnMudG8ub3BhY2l0eSA9IDE7DQoJCX0NCgkJaWYgKCBtb2RlID09PSAiaGlkZSIgKSB7DQoJCQlvcHRpb25zLmZyb20ub3BhY2l0eSA9IDE7DQoJCQlvcHRpb25zLnRvLm9wYWNpdHkgPSAwOw0KCQl9DQoJfQ0KDQoJLy8gQW5pbWF0ZQ0KCWVsLmVmZmVjdCggb3B0aW9ucyApOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgUHVmZiAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3B1ZmYtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdFB1ZmYgPSAkLmVmZmVjdHMuZWZmZWN0LnB1ZmYgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgl2YXIgZWxlbSA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbGVtLCBvLm1vZGUgfHwgImhpZGUiICksDQoJCWhpZGUgPSBtb2RlID09PSAiaGlkZSIsDQoJCXBlcmNlbnQgPSBwYXJzZUludCggby5wZXJjZW50LCAxMCApIHx8IDE1MCwNCgkJZmFjdG9yID0gcGVyY2VudCAvIDEwMCwNCgkJb3JpZ2luYWwgPSB7DQoJCQloZWlnaHQ6IGVsZW0uaGVpZ2h0KCksDQoJCQl3aWR0aDogZWxlbS53aWR0aCgpLA0KCQkJb3V0ZXJIZWlnaHQ6IGVsZW0ub3V0ZXJIZWlnaHQoKSwNCgkJCW91dGVyV2lkdGg6IGVsZW0ub3V0ZXJXaWR0aCgpDQoJCX07DQoNCgkkLmV4dGVuZCggbywgew0KCQllZmZlY3Q6ICJzY2FsZSIsDQoJCXF1ZXVlOiBmYWxzZSwNCgkJZmFkZTogdHJ1ZSwNCgkJbW9kZTogbW9kZSwNCgkJY29tcGxldGU6IGRvbmUsDQoJCXBlcmNlbnQ6IGhpZGUgPyBwZXJjZW50IDogMTAwLA0KCQlmcm9tOiBoaWRlID8NCgkJCW9yaWdpbmFsIDoNCgkJCXsNCgkJCQloZWlnaHQ6IG9yaWdpbmFsLmhlaWdodCAqIGZhY3RvciwNCgkJCQl3aWR0aDogb3JpZ2luYWwud2lkdGggKiBmYWN0b3IsDQoJCQkJb3V0ZXJIZWlnaHQ6IG9yaWdpbmFsLm91dGVySGVpZ2h0ICogZmFjdG9yLA0KCQkJCW91dGVyV2lkdGg6IG9yaWdpbmFsLm91dGVyV2lkdGggKiBmYWN0b3INCgkJCX0NCgl9KTsNCg0KCWVsZW0uZWZmZWN0KCBvICk7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgUHVsc2F0ZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3B1bHNhdGUtZWZmZWN0Lw0KICovDQoNCg0KdmFyIGVmZmVjdFB1bHNhdGUgPSAkLmVmZmVjdHMuZWZmZWN0LnB1bHNhdGUgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCgl2YXIgZWxlbSA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9ICQuZWZmZWN0cy5zZXRNb2RlKCBlbGVtLCBvLm1vZGUgfHwgInNob3ciICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWhpZGUgPSBtb2RlID09PSAiaGlkZSIsDQoJCXNob3doaWRlID0gKCBzaG93IHx8IG1vZGUgPT09ICJoaWRlIiApLA0KDQoJCS8vIHNob3dpbmcgb3IgaGlkaW5nIGxlYXZlcyBvZiB0aGUgImxhc3QiIGFuaW1hdGlvbg0KCQlhbmltcyA9ICggKCBvLnRpbWVzIHx8IDUgKSAqIDIgKSArICggc2hvd2hpZGUgPyAxIDogMCApLA0KCQlkdXJhdGlvbiA9IG8uZHVyYXRpb24gLyBhbmltcywNCgkJYW5pbWF0ZVRvID0gMCwNCgkJcXVldWUgPSBlbGVtLnF1ZXVlKCksDQoJCXF1ZXVlbGVuID0gcXVldWUubGVuZ3RoLA0KCQlpOw0KDQoJaWYgKCBzaG93IHx8ICFlbGVtLmlzKCI6dmlzaWJsZSIpKSB7DQoJCWVsZW0uY3NzKCAib3BhY2l0eSIsIDAgKS5zaG93KCk7DQoJCWFuaW1hdGVUbyA9IDE7DQoJfQ0KDQoJLy8gYW5pbXMgLSAxIG9wYWNpdHkgInRvZ2dsZXMiDQoJZm9yICggaSA9IDE7IGkgPCBhbmltczsgaSsrICkgew0KCQllbGVtLmFuaW1hdGUoew0KCQkJb3BhY2l0eTogYW5pbWF0ZVRvDQoJCX0sIGR1cmF0aW9uLCBvLmVhc2luZyApOw0KCQlhbmltYXRlVG8gPSAxIC0gYW5pbWF0ZVRvOw0KCX0NCg0KCWVsZW0uYW5pbWF0ZSh7DQoJCW9wYWNpdHk6IGFuaW1hdGVUbw0KCX0sIGR1cmF0aW9uLCBvLmVhc2luZyk7DQoNCgllbGVtLnF1ZXVlKGZ1bmN0aW9uKCkgew0KCQlpZiAoIGhpZGUgKSB7DQoJCQllbGVtLmhpZGUoKTsNCgkJfQ0KCQlkb25lKCk7DQoJfSk7DQoNCgkvLyBXZSBqdXN0IHF1ZXVlZCB1cCAiYW5pbXMiIGFuaW1hdGlvbnMsIHdlIG5lZWQgdG8gcHV0IHRoZW0gbmV4dCBpbiB0aGUgcXVldWUNCglpZiAoIHF1ZXVlbGVuID4gMSApIHsNCgkJcXVldWUuc3BsaWNlLmFwcGx5KCBxdWV1ZSwNCgkJCVsgMSwgMCBdLmNvbmNhdCggcXVldWUuc3BsaWNlKCBxdWV1ZWxlbiwgYW5pbXMgKyAxICkgKSApOw0KCX0NCgllbGVtLmRlcXVldWUoKTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBTaGFrZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NoYWtlLWVmZmVjdC8NCiAqLw0KDQoNCnZhciBlZmZlY3RTaGFrZSA9ICQuZWZmZWN0cy5lZmZlY3Quc2hha2UgPSBmdW5jdGlvbiggbywgZG9uZSApIHsNCg0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAiaGVpZ2h0IiwgIndpZHRoIiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgImVmZmVjdCIgKSwNCgkJZGlyZWN0aW9uID0gby5kaXJlY3Rpb24gfHwgImxlZnQiLA0KCQlkaXN0YW5jZSA9IG8uZGlzdGFuY2UgfHwgMjAsDQoJCXRpbWVzID0gby50aW1lcyB8fCAzLA0KCQlhbmltcyA9IHRpbWVzICogMiArIDEsDQoJCXNwZWVkID0gTWF0aC5yb3VuZCggby5kdXJhdGlvbiAvIGFuaW1zICksDQoJCXJlZiA9IChkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIpID8gInRvcCIgOiAibGVmdCIsDQoJCXBvc2l0aXZlTW90aW9uID0gKGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJsZWZ0IiksDQoJCWFuaW1hdGlvbiA9IHt9LA0KCQlhbmltYXRpb24xID0ge30sDQoJCWFuaW1hdGlvbjIgPSB7fSwNCgkJaSwNCg0KCQkvLyB3ZSB3aWxsIG5lZWQgdG8gcmUtYXNzZW1ibGUgdGhlIHF1ZXVlIHRvIHN0YWNrIG91ciBhbmltYXRpb25zIGluIHBsYWNlDQoJCXF1ZXVlID0gZWwucXVldWUoKSwNCgkJcXVldWVsZW4gPSBxdWV1ZS5sZW5ndGg7DQoNCgkkLmVmZmVjdHMuc2F2ZSggZWwsIHByb3BzICk7DQoJZWwuc2hvdygpOw0KCSQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApOw0KDQoJLy8gQW5pbWF0aW9uDQoJYW5pbWF0aW9uWyByZWYgXSA9ICggcG9zaXRpdmVNb3Rpb24gPyAiLT0iIDogIis9IiApICsgZGlzdGFuY2U7DQoJYW5pbWF0aW9uMVsgcmVmIF0gPSAoIHBvc2l0aXZlTW90aW9uID8gIis9IiA6ICItPSIgKSArIGRpc3RhbmNlICogMjsNCglhbmltYXRpb24yWyByZWYgXSA9ICggcG9zaXRpdmVNb3Rpb24gPyAiLT0iIDogIis9IiApICsgZGlzdGFuY2UgKiAyOw0KDQoJLy8gQW5pbWF0ZQ0KCWVsLmFuaW1hdGUoIGFuaW1hdGlvbiwgc3BlZWQsIG8uZWFzaW5nICk7DQoNCgkvLyBTaGFrZXMNCglmb3IgKCBpID0gMTsgaSA8IHRpbWVzOyBpKysgKSB7DQoJCWVsLmFuaW1hdGUoIGFuaW1hdGlvbjEsIHNwZWVkLCBvLmVhc2luZyApLmFuaW1hdGUoIGFuaW1hdGlvbjIsIHNwZWVkLCBvLmVhc2luZyApOw0KCX0NCgllbA0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uMSwgc3BlZWQsIG8uZWFzaW5nICkNCgkJLmFuaW1hdGUoIGFuaW1hdGlvbiwgc3BlZWQgLyAyLCBvLmVhc2luZyApDQoJCS5xdWV1ZShmdW5jdGlvbigpIHsNCgkJCWlmICggbW9kZSA9PT0gImhpZGUiICkgew0KCQkJCWVsLmhpZGUoKTsNCgkJCX0NCgkJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQkJZG9uZSgpOw0KCQl9KTsNCg0KCS8vIGluamVjdCBhbGwgdGhlIGFuaW1hdGlvbnMgd2UganVzdCBxdWV1ZWQgdG8gYmUgZmlyc3QgaW4gbGluZSAoYWZ0ZXIgImlucHJvZ3Jlc3MiKQ0KCWlmICggcXVldWVsZW4gPiAxKSB7DQoJCXF1ZXVlLnNwbGljZS5hcHBseSggcXVldWUsDQoJCQlbIDEsIDAgXS5jb25jYXQoIHF1ZXVlLnNwbGljZSggcXVldWVsZW4sIGFuaW1zICsgMSApICkgKTsNCgl9DQoJZWwuZGVxdWV1ZSgpOw0KDQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2xpZGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zbGlkZS1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0U2xpZGUgPSAkLmVmZmVjdHMuZWZmZWN0LnNsaWRlID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJcHJvcHMgPSBbICJwb3NpdGlvbiIsICJ0b3AiLCAiYm90dG9tIiwgImxlZnQiLCAicmlnaHQiLCAid2lkdGgiLCAiaGVpZ2h0IiBdLA0KCQltb2RlID0gJC5lZmZlY3RzLnNldE1vZGUoIGVsLCBvLm1vZGUgfHwgInNob3ciICksDQoJCXNob3cgPSBtb2RlID09PSAic2hvdyIsDQoJCWRpcmVjdGlvbiA9IG8uZGlyZWN0aW9uIHx8ICJsZWZ0IiwNCgkJcmVmID0gKGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJkb3duIikgPyAidG9wIiA6ICJsZWZ0IiwNCgkJcG9zaXRpdmVNb3Rpb24gPSAoZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiKSwNCgkJZGlzdGFuY2UsDQoJCWFuaW1hdGlvbiA9IHt9Ow0KDQoJLy8gQWRqdXN0DQoJJC5lZmZlY3RzLnNhdmUoIGVsLCBwcm9wcyApOw0KCWVsLnNob3coKTsNCglkaXN0YW5jZSA9IG8uZGlzdGFuY2UgfHwgZWxbIHJlZiA9PT0gInRvcCIgPyAib3V0ZXJIZWlnaHQiIDogIm91dGVyV2lkdGgiIF0oIHRydWUgKTsNCg0KCSQuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKCBlbCApLmNzcyh7DQoJCW92ZXJmbG93OiAiaGlkZGVuIg0KCX0pOw0KDQoJaWYgKCBzaG93ICkgew0KCQllbC5jc3MoIHJlZiwgcG9zaXRpdmVNb3Rpb24gPyAoaXNOYU4oZGlzdGFuY2UpID8gIi0iICsgZGlzdGFuY2UgOiAtZGlzdGFuY2UpIDogZGlzdGFuY2UgKTsNCgl9DQoNCgkvLyBBbmltYXRpb24NCglhbmltYXRpb25bIHJlZiBdID0gKCBzaG93ID8NCgkJKCBwb3NpdGl2ZU1vdGlvbiA/ICIrPSIgOiAiLT0iKSA6DQoJCSggcG9zaXRpdmVNb3Rpb24gPyAiLT0iIDogIis9IikpICsNCgkJZGlzdGFuY2U7DQoNCgkvLyBBbmltYXRlDQoJZWwuYW5pbWF0ZSggYW5pbWF0aW9uLCB7DQoJCXF1ZXVlOiBmYWxzZSwNCgkJZHVyYXRpb246IG8uZHVyYXRpb24sDQoJCWVhc2luZzogby5lYXNpbmcsDQoJCWNvbXBsZXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggbW9kZSA9PT0gImhpZGUiICkgew0KCQkJCWVsLmhpZGUoKTsNCgkJCX0NCgkJCSQuZWZmZWN0cy5yZXN0b3JlKCBlbCwgcHJvcHMgKTsNCgkJCSQuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKCBlbCApOw0KCQkJZG9uZSgpOw0KCQl9DQoJfSk7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgVHJhbnNmZXIgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS90cmFuc2Zlci1lZmZlY3QvDQogKi8NCg0KDQp2YXIgZWZmZWN0VHJhbnNmZXIgPSAkLmVmZmVjdHMuZWZmZWN0LnRyYW5zZmVyID0gZnVuY3Rpb24oIG8sIGRvbmUgKSB7DQoJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCXRhcmdldCA9ICQoIG8udG8gKSwNCgkJdGFyZ2V0Rml4ZWQgPSB0YXJnZXQuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCIsDQoJCWJvZHkgPSAkKCJib2R5IiksDQoJCWZpeFRvcCA9IHRhcmdldEZpeGVkID8gYm9keS5zY3JvbGxUb3AoKSA6IDAsDQoJCWZpeExlZnQgPSB0YXJnZXRGaXhlZCA/IGJvZHkuc2Nyb2xsTGVmdCgpIDogMCwNCgkJZW5kUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0KCksDQoJCWFuaW1hdGlvbiA9IHsNCgkJCXRvcDogZW5kUG9zaXRpb24udG9wIC0gZml4VG9wLA0KCQkJbGVmdDogZW5kUG9zaXRpb24ubGVmdCAtIGZpeExlZnQsDQoJCQloZWlnaHQ6IHRhcmdldC5pbm5lckhlaWdodCgpLA0KCQkJd2lkdGg6IHRhcmdldC5pbm5lcldpZHRoKCkNCgkJfSwNCgkJc3RhcnRQb3NpdGlvbiA9IGVsZW0ub2Zmc2V0KCksDQoJCXRyYW5zZmVyID0gJCggIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIgKQ0KCQkJLmFwcGVuZFRvKCBkb2N1bWVudC5ib2R5ICkNCgkJCS5hZGRDbGFzcyggby5jbGFzc05hbWUgKQ0KCQkJLmNzcyh7DQoJCQkJdG9wOiBzdGFydFBvc2l0aW9uLnRvcCAtIGZpeFRvcCwNCgkJCQlsZWZ0OiBzdGFydFBvc2l0aW9uLmxlZnQgLSBmaXhMZWZ0LA0KCQkJCWhlaWdodDogZWxlbS5pbm5lckhlaWdodCgpLA0KCQkJCXdpZHRoOiBlbGVtLmlubmVyV2lkdGgoKSwNCgkJCQlwb3NpdGlvbjogdGFyZ2V0Rml4ZWQgPyAiZml4ZWQiIDogImFic29sdXRlIg0KCQkJfSkNCgkJCS5hbmltYXRlKCBhbmltYXRpb24sIG8uZHVyYXRpb24sIG8uZWFzaW5nLCBmdW5jdGlvbigpIHsNCgkJCQl0cmFuc2Zlci5yZW1vdmUoKTsNCgkJCQlkb25lKCk7DQoJCQl9KTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgUHJvZ3Jlc3NiYXIgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9wcm9ncmVzc2Jhci8NCiAqLw0KDQoNCnZhciBwcm9ncmVzc2JhciA9ICQud2lkZ2V0KCAidWkucHJvZ3Jlc3NiYXIiLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoJb3B0aW9uczogew0KCQltYXg6IDEwMCwNCgkJdmFsdWU6IDAsDQoNCgkJY2hhbmdlOiBudWxsLA0KCQljb21wbGV0ZTogbnVsbA0KCX0sDQoNCgltaW46IDAsDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJLy8gQ29uc3RyYWluIGluaXRpYWwgdmFsdWUNCgkJdGhpcy5vbGRWYWx1ZSA9IHRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoKTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5hZGRDbGFzcyggInVpLXByb2dyZXNzYmFyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiApDQoJCQkuYXR0cih7DQoJCQkJLy8gT25seSBzZXQgc3RhdGljIHZhbHVlcywgYXJpYS12YWx1ZW5vdyBhbmQgYXJpYS12YWx1ZW1heCBhcmUNCgkJCQkvLyBzZXQgaW5zaWRlIF9yZWZyZXNoVmFsdWUoKQ0KCQkJCXJvbGU6ICJwcm9ncmVzc2JhciIsDQoJCQkJImFyaWEtdmFsdWVtaW4iOiB0aGlzLm1pbg0KCQkJfSk7DQoNCgkJdGhpcy52YWx1ZURpdiA9ICQoICI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci12YWx1ZSB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1sZWZ0Jz48L2Rpdj4iICkNCgkJCS5hcHBlbmRUbyggdGhpcy5lbGVtZW50ICk7DQoNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1wcm9ncmVzc2JhciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtdmFsdWVtaW4iICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS12YWx1ZW1heCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLXZhbHVlbm93IiApOw0KDQoJCXRoaXMudmFsdWVEaXYucmVtb3ZlKCk7DQoJfSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsdWUgKSB7DQoJCWlmICggbmV3VmFsdWUgPT09IHVuZGVmaW5lZCApIHsNCgkJCXJldHVybiB0aGlzLm9wdGlvbnMudmFsdWU7DQoJCX0NCg0KCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl9jb25zdHJhaW5lZFZhbHVlKCBuZXdWYWx1ZSApOw0KCQl0aGlzLl9yZWZyZXNoVmFsdWUoKTsNCgl9LA0KDQoJX2NvbnN0cmFpbmVkVmFsdWU6IGZ1bmN0aW9uKCBuZXdWYWx1ZSApIHsNCgkJaWYgKCBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkICkgew0KCQkJbmV3VmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWU7DQoJCX0NCg0KCQl0aGlzLmluZGV0ZXJtaW5hdGUgPSBuZXdWYWx1ZSA9PT0gZmFsc2U7DQoNCgkJLy8gc2FuaXRpemUgdmFsdWUNCgkJaWYgKCB0eXBlb2YgbmV3VmFsdWUgIT09ICJudW1iZXIiICkgew0KCQkJbmV3VmFsdWUgPSAwOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXMuaW5kZXRlcm1pbmF0ZSA/IGZhbHNlIDoNCgkJCU1hdGgubWluKCB0aGlzLm9wdGlvbnMubWF4LCBNYXRoLm1heCggdGhpcy5taW4sIG5ld1ZhbHVlICkgKTsNCgl9LA0KDQoJX3NldE9wdGlvbnM6IGZ1bmN0aW9uKCBvcHRpb25zICkgew0KCQkvLyBFbnN1cmUgInZhbHVlIiBvcHRpb24gaXMgc2V0IGFmdGVyIG90aGVyIHZhbHVlcyAobGlrZSBtYXgpDQoJCXZhciB2YWx1ZSA9IG9wdGlvbnMudmFsdWU7DQoJCWRlbGV0ZSBvcHRpb25zLnZhbHVlOw0KDQoJCXRoaXMuX3N1cGVyKCBvcHRpb25zICk7DQoNCgkJdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy5fY29uc3RyYWluZWRWYWx1ZSggdmFsdWUgKTsNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gIm1heCIgKSB7DQoJCQkvLyBEb24ndCBhbGxvdyBhIG1heCBsZXNzIHRoYW4gbWluDQoJCQl2YWx1ZSA9IE1hdGgubWF4KCB0aGlzLm1pbiwgdmFsdWUgKTsNCgkJfQ0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXMuZWxlbWVudA0KCQkJCS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApDQoJCQkJLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgdmFsdWUgKTsNCgkJfQ0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCX0sDQoNCglfcGVyY2VudGFnZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGUgPyAxMDAgOiAxMDAgKiAoIHRoaXMub3B0aW9ucy52YWx1ZSAtIHRoaXMubWluICkgLyAoIHRoaXMub3B0aW9ucy5tYXggLSB0aGlzLm1pbiApOw0KCX0sDQoNCglfcmVmcmVzaFZhbHVlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHZhbHVlID0gdGhpcy5vcHRpb25zLnZhbHVlLA0KCQkJcGVyY2VudGFnZSA9IHRoaXMuX3BlcmNlbnRhZ2UoKTsNCg0KCQl0aGlzLnZhbHVlRGl2DQoJCQkudG9nZ2xlKCB0aGlzLmluZGV0ZXJtaW5hdGUgfHwgdmFsdWUgPiB0aGlzLm1pbiApDQoJCQkudG9nZ2xlQ2xhc3MoICJ1aS1jb3JuZXItcmlnaHQiLCB2YWx1ZSA9PT0gdGhpcy5vcHRpb25zLm1heCApDQoJCQkud2lkdGgoIHBlcmNlbnRhZ2UudG9GaXhlZCgwKSArICIlIiApOw0KDQoJCXRoaXMuZWxlbWVudC50b2dnbGVDbGFzcyggInVpLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUiLCB0aGlzLmluZGV0ZXJtaW5hdGUgKTsNCg0KCQlpZiAoIHRoaXMuaW5kZXRlcm1pbmF0ZSApIHsNCgkJCXRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCAiYXJpYS12YWx1ZW5vdyIgKTsNCgkJCWlmICggIXRoaXMub3ZlcmxheURpdiApIHsNCgkJCQl0aGlzLm92ZXJsYXlEaXYgPSAkKCAiPGRpdiBjbGFzcz0ndWktcHJvZ3Jlc3NiYXItb3ZlcmxheSc+PC9kaXY+IiApLmFwcGVuZFRvKCB0aGlzLnZhbHVlRGl2ICk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVsZW1lbnQuYXR0cih7DQoJCQkJImFyaWEtdmFsdWVtYXgiOiB0aGlzLm9wdGlvbnMubWF4LA0KCQkJCSJhcmlhLXZhbHVlbm93IjogdmFsdWUNCgkJCX0pOw0KCQkJaWYgKCB0aGlzLm92ZXJsYXlEaXYgKSB7DQoJCQkJdGhpcy5vdmVybGF5RGl2LnJlbW92ZSgpOw0KCQkJCXRoaXMub3ZlcmxheURpdiA9IG51bGw7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIHRoaXMub2xkVmFsdWUgIT09IHZhbHVlICkgew0KCQkJdGhpcy5vbGRWYWx1ZSA9IHZhbHVlOw0KCQkJdGhpcy5fdHJpZ2dlciggImNoYW5nZSIgKTsNCgkJfQ0KCQlpZiAoIHZhbHVlID09PSB0aGlzLm9wdGlvbnMubWF4ICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImNvbXBsZXRlIiApOw0KCQl9DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2VsZWN0YWJsZSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NlbGVjdGFibGUvDQogKi8NCg0KDQp2YXIgc2VsZWN0YWJsZSA9ICQud2lkZ2V0KCJ1aS5zZWxlY3RhYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86ICJib2R5IiwNCgkJYXV0b1JlZnJlc2g6IHRydWUsDQoJCWRpc3RhbmNlOiAwLA0KCQlmaWx0ZXI6ICIqIiwNCgkJdG9sZXJhbmNlOiAidG91Y2giLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlzZWxlY3RlZDogbnVsbCwNCgkJc2VsZWN0aW5nOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbCwNCgkJdW5zZWxlY3RlZDogbnVsbCwNCgkJdW5zZWxlY3Rpbmc6IG51bGwNCgl9LA0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgc2VsZWN0ZWVzLA0KCQkJdGhhdCA9IHRoaXM7DQoNCgkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIik7DQoNCgkJdGhpcy5kcmFnZ2VkID0gZmFsc2U7DQoNCgkJLy8gY2FjaGUgc2VsZWN0ZWUgY2hpbGRyZW4gYmFzZWQgb24gZmlsdGVyDQoJCXRoaXMucmVmcmVzaCA9IGZ1bmN0aW9uKCkgew0KCQkJc2VsZWN0ZWVzID0gJCh0aGF0Lm9wdGlvbnMuZmlsdGVyLCB0aGF0LmVsZW1lbnRbMF0pOw0KCQkJc2VsZWN0ZWVzLmFkZENsYXNzKCJ1aS1zZWxlY3RlZSIpOw0KCQkJc2VsZWN0ZWVzLmVhY2goZnVuY3Rpb24oKSB7DQoJCQkJdmFyICR0aGlzID0gJCh0aGlzKSwNCgkJCQkJcG9zID0gJHRoaXMub2Zmc2V0KCk7DQoJCQkJJC5kYXRhKHRoaXMsICJzZWxlY3RhYmxlLWl0ZW0iLCB7DQoJCQkJCWVsZW1lbnQ6IHRoaXMsDQoJCQkJCSRlbGVtZW50OiAkdGhpcywNCgkJCQkJbGVmdDogcG9zLmxlZnQsDQoJCQkJCXRvcDogcG9zLnRvcCwNCgkJCQkJcmlnaHQ6IHBvcy5sZWZ0ICsgJHRoaXMub3V0ZXJXaWR0aCgpLA0KCQkJCQlib3R0b206IHBvcy50b3AgKyAkdGhpcy5vdXRlckhlaWdodCgpLA0KCQkJCQlzdGFydHNlbGVjdGVkOiBmYWxzZSwNCgkJCQkJc2VsZWN0ZWQ6ICR0aGlzLmhhc0NsYXNzKCJ1aS1zZWxlY3RlZCIpLA0KCQkJCQlzZWxlY3Rpbmc6ICR0aGlzLmhhc0NsYXNzKCJ1aS1zZWxlY3RpbmciKSwNCgkJCQkJdW5zZWxlY3Rpbmc6ICR0aGlzLmhhc0NsYXNzKCJ1aS11bnNlbGVjdGluZyIpDQoJCQkJfSk7DQoJCQl9KTsNCgkJfTsNCgkJdGhpcy5yZWZyZXNoKCk7DQoNCgkJdGhpcy5zZWxlY3RlZXMgPSBzZWxlY3RlZXMuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIik7DQoNCgkJdGhpcy5fbW91c2VJbml0KCk7DQoNCgkJdGhpcy5oZWxwZXIgPSAkKCI8ZGl2IGNsYXNzPSd1aS1zZWxlY3RhYmxlLWhlbHBlcic+PC9kaXY+Iik7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5zZWxlY3RlZXMNCgkJCS5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWUiKQ0KCQkJLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpOw0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIik7DQoJCXRoaXMuX21vdXNlRGVzdHJveSgpOw0KCX0sDQoNCglfbW91c2VTdGFydDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLm9wb3MgPSBbIGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSBdOw0KDQoJCWlmICh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuc2VsZWN0ZWVzID0gJChvcHRpb25zLmZpbHRlciwgdGhpcy5lbGVtZW50WzBdKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCJzdGFydCIsIGV2ZW50KTsNCg0KCQkkKG9wdGlvbnMuYXBwZW5kVG8pLmFwcGVuZCh0aGlzLmhlbHBlcik7DQoJCS8vIHBvc2l0aW9uIGhlbHBlciAobGFzc28pDQoJCXRoaXMuaGVscGVyLmNzcyh7DQoJCQkibGVmdCI6IGV2ZW50LnBhZ2VYLA0KCQkJInRvcCI6IGV2ZW50LnBhZ2VZLA0KCQkJIndpZHRoIjogMCwNCgkJCSJoZWlnaHQiOiAwDQoJCX0pOw0KDQoJCWlmIChvcHRpb25zLmF1dG9SZWZyZXNoKSB7DQoJCQl0aGlzLnJlZnJlc2goKTsNCgkJfQ0KDQoJCXRoaXMuc2VsZWN0ZWVzLmZpbHRlcigiLnVpLXNlbGVjdGVkIikuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSh0aGlzLCAic2VsZWN0YWJsZS1pdGVtIik7DQoJCQlzZWxlY3RlZS5zdGFydHNlbGVjdGVkID0gdHJ1ZTsNCgkJCWlmICghZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSkgew0KCQkJCXNlbGVjdGVlLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpOw0KCQkJCXNlbGVjdGVlLnNlbGVjdGVkID0gZmFsc2U7DQoJCQkJc2VsZWN0ZWUuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIik7DQoJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSB0cnVlOw0KCQkJCS8vIHNlbGVjdGFibGUgVU5TRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQl0aGF0Ll90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsIGV2ZW50LCB7DQoJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJfSk7DQoJCQl9DQoJCX0pOw0KDQoJCSQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmVhY2goZnVuY3Rpb24oKSB7DQoJCQl2YXIgZG9TZWxlY3QsDQoJCQkJc2VsZWN0ZWUgPSAkLmRhdGEodGhpcywgInNlbGVjdGFibGUtaXRlbSIpOw0KCQkJaWYgKHNlbGVjdGVlKSB7DQoJCQkJZG9TZWxlY3QgPSAoIWV2ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LmN0cmxLZXkpIHx8ICFzZWxlY3RlZS4kZWxlbWVudC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKTsNCgkJCQlzZWxlY3RlZS4kZWxlbWVudA0KCQkJCQkucmVtb3ZlQ2xhc3MoZG9TZWxlY3QgPyAidWktdW5zZWxlY3RpbmciIDogInVpLXNlbGVjdGVkIikNCgkJCQkJLmFkZENsYXNzKGRvU2VsZWN0ID8gInVpLXNlbGVjdGluZyIgOiAidWktdW5zZWxlY3RpbmciKTsNCgkJCQlzZWxlY3RlZS51bnNlbGVjdGluZyA9ICFkb1NlbGVjdDsNCgkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBkb1NlbGVjdDsNCgkJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IGRvU2VsZWN0Ow0KCQkJCS8vIHNlbGVjdGFibGUgKFVOKVNFTEVDVElORyBjYWxsYmFjaw0KCQkJCWlmIChkb1NlbGVjdCkgew0KCQkJCQl0aGF0Ll90cmlnZ2VyKCJzZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCX0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoYXQuX3RyaWdnZXIoInVuc2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCX0pOw0KCQkJCX0NCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0pOw0KDQoJfSwNCg0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKGV2ZW50KSB7DQoNCgkJdGhpcy5kcmFnZ2VkID0gdHJ1ZTsNCg0KCQlpZiAodGhpcy5vcHRpb25zLmRpc2FibGVkKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgdG1wLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJeDEgPSB0aGlzLm9wb3NbMF0sDQoJCQl5MSA9IHRoaXMub3Bvc1sxXSwNCgkJCXgyID0gZXZlbnQucGFnZVgsDQoJCQl5MiA9IGV2ZW50LnBhZ2VZOw0KDQoJCWlmICh4MSA+IHgyKSB7IHRtcCA9IHgyOyB4MiA9IHgxOyB4MSA9IHRtcDsgfQ0KCQlpZiAoeTEgPiB5MikgeyB0bXAgPSB5MjsgeTIgPSB5MTsgeTEgPSB0bXA7IH0NCgkJdGhpcy5oZWxwZXIuY3NzKHsgbGVmdDogeDEsIHRvcDogeTEsIHdpZHRoOiB4MiAtIHgxLCBoZWlnaHQ6IHkyIC0geTEgfSk7DQoNCgkJdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSh0aGlzLCAic2VsZWN0YWJsZS1pdGVtIiksDQoJCQkJaGl0ID0gZmFsc2U7DQoNCgkJCS8vcHJldmVudCBoZWxwZXIgZnJvbSBiZWluZyBzZWxlY3RlZCBpZiBhcHBlbmRUbzogc2VsZWN0YWJsZQ0KCQkJaWYgKCFzZWxlY3RlZSB8fCBzZWxlY3RlZS5lbGVtZW50ID09PSB0aGF0LmVsZW1lbnRbMF0pIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWlmIChvcHRpb25zLnRvbGVyYW5jZSA9PT0gInRvdWNoIikgew0KCQkJCWhpdCA9ICggIShzZWxlY3RlZS5sZWZ0ID4geDIgfHwgc2VsZWN0ZWUucmlnaHQgPCB4MSB8fCBzZWxlY3RlZS50b3AgPiB5MiB8fCBzZWxlY3RlZS5ib3R0b20gPCB5MSkgKTsNCgkJCX0gZWxzZSBpZiAob3B0aW9ucy50b2xlcmFuY2UgPT09ICJmaXQiKSB7DQoJCQkJaGl0ID0gKHNlbGVjdGVlLmxlZnQgPiB4MSAmJiBzZWxlY3RlZS5yaWdodCA8IHgyICYmIHNlbGVjdGVlLnRvcCA+IHkxICYmIHNlbGVjdGVlLmJvdHRvbSA8IHkyKTsNCgkJCX0NCg0KCQkJaWYgKGhpdCkgew0KCQkJCS8vIFNFTEVDVA0KCQkJCWlmIChzZWxlY3RlZS5zZWxlY3RlZCkgew0KCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKTsNCgkJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSBmYWxzZTsNCgkJCQl9DQoJCQkJaWYgKHNlbGVjdGVlLnVuc2VsZWN0aW5nKSB7DQoJCQkJCXNlbGVjdGVlLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpOw0KCQkJCQlzZWxlY3RlZS51bnNlbGVjdGluZyA9IGZhbHNlOw0KCQkJCX0NCgkJCQlpZiAoIXNlbGVjdGVlLnNlbGVjdGluZykgew0KCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIik7DQoJCQkJCXNlbGVjdGVlLnNlbGVjdGluZyA9IHRydWU7DQoJCQkJCS8vIHNlbGVjdGFibGUgU0VMRUNUSU5HIGNhbGxiYWNrDQoJCQkJCXRoYXQuX3RyaWdnZXIoInNlbGVjdGluZyIsIGV2ZW50LCB7DQoJCQkJCQlzZWxlY3Rpbmc6IHNlbGVjdGVlLmVsZW1lbnQNCgkJCQkJfSk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkvLyBVTlNFTEVDVA0KCQkJCWlmIChzZWxlY3RlZS5zZWxlY3RpbmcpIHsNCgkJCQkJaWYgKChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpICYmIHNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQpIHsNCgkJCQkJCXNlbGVjdGVlLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKTsNCgkJCQkJCXNlbGVjdGVlLnNlbGVjdGluZyA9IGZhbHNlOw0KCQkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIik7DQoJCQkJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IHRydWU7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0aW5nIik7DQoJCQkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCQkJCWlmIChzZWxlY3RlZS5zdGFydHNlbGVjdGVkKSB7DQoJCQkJCQkJc2VsZWN0ZWUuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIik7DQoJCQkJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSB0cnVlOw0KCQkJCQkJfQ0KCQkJCQkJLy8gc2VsZWN0YWJsZSBVTlNFTEVDVElORyBjYWxsYmFjaw0KCQkJCQkJdGhhdC5fdHJpZ2dlcigidW5zZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCQl9KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlpZiAoc2VsZWN0ZWUuc2VsZWN0ZWQpIHsNCgkJCQkJaWYgKCFldmVudC5tZXRhS2V5ICYmICFldmVudC5jdHJsS2V5ICYmICFzZWxlY3RlZS5zdGFydHNlbGVjdGVkKSB7DQoJCQkJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKTsNCgkJCQkJCXNlbGVjdGVlLnNlbGVjdGVkID0gZmFsc2U7DQoNCgkJCQkJCXNlbGVjdGVlLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpOw0KCQkJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSB0cnVlOw0KCQkJCQkJLy8gc2VsZWN0YWJsZSBVTlNFTEVDVElORyBjYWxsYmFjaw0KCQkJCQkJdGhhdC5fdHJpZ2dlcigidW5zZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCQl9KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfSk7DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VTdG9wOiBmdW5jdGlvbihldmVudCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJdGhpcy5kcmFnZ2VkID0gZmFsc2U7DQoNCgkJJCgiLnVpLXVuc2VsZWN0aW5nIiwgdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIHNlbGVjdGVlID0gJC5kYXRhKHRoaXMsICJzZWxlY3RhYmxlLWl0ZW0iKTsNCgkJCXNlbGVjdGVlLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpOw0KCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCXNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgPSBmYWxzZTsNCgkJCXRoYXQuX3RyaWdnZXIoInVuc2VsZWN0ZWQiLCBldmVudCwgew0KCQkJCXVuc2VsZWN0ZWQ6IHNlbGVjdGVlLmVsZW1lbnQNCgkJCX0pOw0KCQl9KTsNCgkJJCgiLnVpLXNlbGVjdGluZyIsIHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSh0aGlzLCAic2VsZWN0YWJsZS1pdGVtIik7DQoJCQlzZWxlY3RlZS4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0aW5nIikuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIik7DQoJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCXNlbGVjdGVlLnNlbGVjdGVkID0gdHJ1ZTsNCgkJCXNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgPSB0cnVlOw0KCQkJdGhhdC5fdHJpZ2dlcigic2VsZWN0ZWQiLCBldmVudCwgew0KCQkJCXNlbGVjdGVkOiBzZWxlY3RlZS5lbGVtZW50DQoJCQl9KTsNCgkJfSk7DQoJCXRoaXMuX3RyaWdnZXIoInN0b3AiLCBldmVudCk7DQoNCgkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2VsZWN0bWVudSAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NlbGVjdG1lbnUNCiAqLw0KDQoNCnZhciBzZWxlY3RtZW51ID0gJC53aWRnZXQoICJ1aS5zZWxlY3RtZW51Iiwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCWRlZmF1bHRFbGVtZW50OiAiPHNlbGVjdD4iLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86IG51bGwsDQoJCWRpc2FibGVkOiBudWxsLA0KCQlpY29uczogew0KCQkJYnV0dG9uOiAidWktaWNvbi10cmlhbmdsZS0xLXMiDQoJCX0sDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImxlZnQgdG9wIiwNCgkJCWF0OiAibGVmdCBib3R0b20iLA0KCQkJY29sbGlzaW9uOiAibm9uZSINCgkJfSwNCgkJd2lkdGg6IG51bGwsDQoNCgkJLy8gY2FsbGJhY2tzDQoJCWNoYW5nZTogbnVsbCwNCgkJY2xvc2U6IG51bGwsDQoJCWZvY3VzOiBudWxsLA0KCQlvcGVuOiBudWxsLA0KCQlzZWxlY3Q6IG51bGwNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3RtZW51SWQgPSB0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCAiaWQiICk7DQoJCXRoaXMuaWRzID0gew0KCQkJZWxlbWVudDogc2VsZWN0bWVudUlkLA0KCQkJYnV0dG9uOiBzZWxlY3RtZW51SWQgKyAiLWJ1dHRvbiIsDQoJCQltZW51OiBzZWxlY3RtZW51SWQgKyAiLW1lbnUiDQoJCX07DQoNCgkJdGhpcy5fZHJhd0J1dHRvbigpOw0KCQl0aGlzLl9kcmF3TWVudSgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5kaXNhYmxlKCk7DQoJCX0NCgl9LA0KDQoJX2RyYXdCdXR0b246IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJLy8gQXNzb2NpYXRlIGV4aXN0aW5nIGxhYmVsIHdpdGggdGhlIG5ldyBidXR0b24NCgkJdGhpcy5sYWJlbCA9ICQoICJsYWJlbFtmb3I9JyIgKyB0aGlzLmlkcy5lbGVtZW50ICsgIiddIiApLmF0dHIoICJmb3IiLCB0aGlzLmlkcy5idXR0b24gKTsNCgkJdGhpcy5fb24oIHRoaXMubGFiZWwsIHsNCgkJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5idXR0b24uZm9jdXMoKTsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfQ0KCQl9KTsNCg0KCQkvLyBIaWRlIG9yaWdpbmFsIHNlbGVjdCBlbGVtZW50DQoJCXRoaXMuZWxlbWVudC5oaWRlKCk7DQoNCgkJLy8gQ3JlYXRlIGJ1dHRvbg0KCQl0aGlzLmJ1dHRvbiA9ICQoICI8c3Bhbj4iLCB7DQoJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCIsDQoJCQl0YWJpbmRleDogdGhpcy5vcHRpb25zLmRpc2FibGVkID8gLTEgOiAwLA0KCQkJaWQ6IHRoaXMuaWRzLmJ1dHRvbiwNCgkJCXJvbGU6ICJjb21ib2JveCIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1hdXRvY29tcGxldGUiOiAibGlzdCIsDQoJCQkiYXJpYS1vd25zIjogdGhpcy5pZHMubWVudSwNCgkJCSJhcmlhLWhhc3BvcHVwIjogInRydWUiDQoJCX0pDQoJCQkuaW5zZXJ0QWZ0ZXIoIHRoaXMuZWxlbWVudCApOw0KDQoJCSQoICI8c3Bhbj4iLCB7DQoJCQkiY2xhc3MiOiAidWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbg0KCQl9KQ0KCQkJLnByZXBlbmRUbyggdGhpcy5idXR0b24gKTsNCg0KCQl0aGlzLmJ1dHRvblRleHQgPSAkKCAiPHNwYW4+Iiwgew0KCQkJImNsYXNzIjogInVpLXNlbGVjdG1lbnUtdGV4dCINCgkJfSkNCgkJCS5hcHBlbmRUbyggdGhpcy5idXR0b24gKTsNCg0KCQl0aGlzLl9zZXRUZXh0KCB0aGlzLmJ1dHRvblRleHQsIHRoaXMuZWxlbWVudC5maW5kKCAib3B0aW9uOnNlbGVjdGVkIiApLnRleHQoKSApOw0KCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5idXR0b24sIHRoaXMuX2J1dHRvbkV2ZW50cyApOw0KCQl0aGlzLmJ1dHRvbi5vbmUoICJmb2N1c2luIiwgZnVuY3Rpb24oKSB7DQoNCgkJCS8vIERlbGF5IHJlbmRlcmluZyB0aGUgbWVudSBpdGVtcyB1bnRpbCB0aGUgYnV0dG9uIHJlY2VpdmVzIGZvY3VzLg0KCQkJLy8gVGhlIG1lbnUgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbmRlcmVkIHZpYSBhIHByb2dyYW1tYXRpYyBvcGVuLg0KCQkJaWYgKCAhdGhhdC5tZW51SXRlbXMgKSB7DQoJCQkJdGhhdC5fcmVmcmVzaE1lbnUoKTsNCgkJCX0NCgkJfSk7DQoJCXRoaXMuX2hvdmVyYWJsZSggdGhpcy5idXR0b24gKTsNCgkJdGhpcy5fZm9jdXNhYmxlKCB0aGlzLmJ1dHRvbiApOw0KCX0sDQoNCglfZHJhd01lbnU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJLy8gQ3JlYXRlIG1lbnUNCgkJdGhpcy5tZW51ID0gJCggIjx1bD4iLCB7DQoJCQkiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsDQoJCQkiYXJpYS1sYWJlbGxlZGJ5IjogdGhpcy5pZHMuYnV0dG9uLA0KCQkJaWQ6IHRoaXMuaWRzLm1lbnUNCgkJfSk7DQoNCgkJLy8gV3JhcCBtZW51DQoJCXRoaXMubWVudVdyYXAgPSAkKCAiPGRpdj4iLCB7DQoJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1tZW51IHVpLWZyb250Ig0KCQl9KQ0KCQkJLmFwcGVuZCggdGhpcy5tZW51ICkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KDQoJCS8vIEluaXRpYWxpemUgbWVudSB3aWRnZXQNCgkJdGhpcy5tZW51SW5zdGFuY2UgPSB0aGlzLm1lbnUNCgkJCS5tZW51KHsNCgkJCQlyb2xlOiAibGlzdGJveCIsDQoJCQkJc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KDQoJCQkJCS8vIHN1cHBvcnQ6IElFOA0KCQkJCQkvLyBJZiB0aGUgaXRlbSB3YXMgc2VsZWN0ZWQgdmlhIGEgY2xpY2ssIHRoZSB0ZXh0IHNlbGVjdGlvbg0KCQkJCQkvLyB3aWxsIGJlIGRlc3Ryb3llZCBpbiBJRQ0KCQkJCQl0aGF0Ll9zZXRTZWxlY3Rpb24oKTsNCg0KCQkJCQl0aGF0Ll9zZWxlY3QoIHVpLml0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSwgZXZlbnQgKTsNCgkJCQl9LA0KCQkJCWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCQl2YXIgaXRlbSA9IHVpLml0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKTsNCg0KCQkJCQkvLyBQcmV2ZW50IGluaXRhbCBmb2N1cyBmcm9tIGZpcmluZyBhbmQgY2hlY2sgaWYgaXRzIGEgbmV3bHkgZm9jdXNlZCBpdGVtDQoJCQkJCWlmICggdGhhdC5mb2N1c0luZGV4ICE9IG51bGwgJiYgaXRlbS5pbmRleCAhPT0gdGhhdC5mb2N1c0luZGV4ICkgew0KCQkJCQkJdGhhdC5fdHJpZ2dlciggImZvY3VzIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICk7DQoJCQkJCQlpZiAoICF0aGF0LmlzT3BlbiApIHsNCgkJCQkJCQl0aGF0Ll9zZWxlY3QoIGl0ZW0sIGV2ZW50ICk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJdGhhdC5mb2N1c0luZGV4ID0gaXRlbS5pbmRleDsNCg0KCQkJCQl0aGF0LmJ1dHRvbi5hdHRyKCAiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwNCgkJCQkJCXRoYXQubWVudUl0ZW1zLmVxKCBpdGVtLmluZGV4ICkuYXR0ciggImlkIiApICk7DQoJCQkJfQ0KCQkJfSkNCgkJCS5tZW51KCAiaW5zdGFuY2UiICk7DQoNCgkJLy8gQWRqdXN0IG1lbnUgc3R5bGVzIHRvIGRyb3Bkb3duDQoJCXRoaXMubWVudQ0KCQkJLmFkZENsYXNzKCAidWktY29ybmVyLWJvdHRvbSIgKQ0KCQkJLnJlbW92ZUNsYXNzKCAidWktY29ybmVyLWFsbCIgKTsNCg0KCQkvLyBEb24ndCBjbG9zZSB0aGUgbWVudSBvbiBtb3VzZWxlYXZlDQoJCXRoaXMubWVudUluc3RhbmNlLl9vZmYoIHRoaXMubWVudSwgIm1vdXNlbGVhdmUiICk7DQoNCgkJLy8gQ2FuY2VsIHRoZSBtZW51J3MgY29sbGFwc2VBbGwgb24gZG9jdW1lbnQgY2xpY2sNCgkJdGhpcy5tZW51SW5zdGFuY2UuX2Nsb3NlT25Eb2N1bWVudENsaWNrID0gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX07DQoNCgkJLy8gU2VsZWN0cyBvZnRlbiBjb250YWluIGVtcHR5IGl0ZW1zLCBidXQgbmV2ZXIgY29udGFpbiBkaXZpZGVycw0KCQl0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyID0gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX07DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZWZyZXNoTWVudSgpOw0KCQl0aGlzLl9zZXRUZXh0KCB0aGlzLmJ1dHRvblRleHQsIHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpLnRleHQoKSApOw0KCQlpZiAoICF0aGlzLm9wdGlvbnMud2lkdGggKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KCX0sDQoNCglfcmVmcmVzaE1lbnU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1lbnUuZW1wdHkoKTsNCg0KCQl2YXIgaXRlbSwNCgkJCW9wdGlvbnMgPSB0aGlzLmVsZW1lbnQuZmluZCggIm9wdGlvbiIgKTsNCg0KCQlpZiAoICFvcHRpb25zLmxlbmd0aCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3BhcnNlT3B0aW9ucyggb3B0aW9ucyApOw0KCQl0aGlzLl9yZW5kZXJNZW51KCB0aGlzLm1lbnUsIHRoaXMuaXRlbXMgKTsNCg0KCQl0aGlzLm1lbnVJbnN0YW5jZS5yZWZyZXNoKCk7DQoJCXRoaXMubWVudUl0ZW1zID0gdGhpcy5tZW51LmZpbmQoICJsaSIgKS5ub3QoICIudWktc2VsZWN0bWVudS1vcHRncm91cCIgKTsNCg0KCQlpdGVtID0gdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCk7DQoNCgkJLy8gVXBkYXRlIHRoZSBtZW51IHRvIGhhdmUgdGhlIGNvcnJlY3QgaXRlbSBmb2N1c2VkDQoJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBudWxsLCBpdGVtICk7DQoJCXRoaXMuX3NldEFyaWEoIGl0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSApOw0KDQoJCS8vIFNldCBkaXNhYmxlZCBzdGF0ZQ0KCQl0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIHRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICkgKTsNCgl9LA0KDQoJb3BlbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhlIG1lbnUgaXMgYmVpbmcgb3BlbmVkLCByZW5kZXIgdGhlIGl0ZW1zDQoJCWlmICggIXRoaXMubWVudUl0ZW1zICkgew0KCQkJdGhpcy5fcmVmcmVzaE1lbnUoKTsNCgkJfSBlbHNlIHsNCg0KCQkJLy8gTWVudSBjbGVhcnMgZm9jdXMgb24gY2xvc2UsIHJlc2V0IGZvY3VzIHRvIHNlbGVjdGVkIGl0ZW0NCgkJCXRoaXMubWVudS5maW5kKCAiLnVpLXN0YXRlLWZvY3VzIiApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZm9jdXMiICk7DQoJCQl0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyggbnVsbCwgdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkgKTsNCgkJfQ0KDQoJCXRoaXMuaXNPcGVuID0gdHJ1ZTsNCgkJdGhpcy5fdG9nZ2xlQXR0cigpOw0KCQl0aGlzLl9yZXNpemVNZW51KCk7DQoJCXRoaXMuX3Bvc2l0aW9uKCk7DQoNCgkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHRoaXMuX2RvY3VtZW50Q2xpY2sgKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAib3BlbiIsIGV2ZW50ICk7DQoJfSwNCg0KCV9wb3NpdGlvbjogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWVudVdyYXAucG9zaXRpb24oICQuZXh0ZW5kKCB7IG9mOiB0aGlzLmJ1dHRvbiB9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKSApOw0KCX0sDQoNCgljbG9zZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoICF0aGlzLmlzT3BlbiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuaXNPcGVuID0gZmFsc2U7DQoJCXRoaXMuX3RvZ2dsZUF0dHIoKTsNCg0KCQl0aGlzLnJhbmdlID0gbnVsbDsNCgkJdGhpcy5fb2ZmKCB0aGlzLmRvY3VtZW50ICk7DQoNCgkJdGhpcy5fdHJpZ2dlciggImNsb3NlIiwgZXZlbnQgKTsNCgl9LA0KDQoJd2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuYnV0dG9uOw0KCX0sDQoNCgltZW51V2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMubWVudTsNCgl9LA0KDQoJX3JlbmRlck1lbnU6IGZ1bmN0aW9uKCB1bCwgaXRlbXMgKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWN1cnJlbnRPcHRncm91cCA9ICIiOw0KDQoJCSQuZWFjaCggaXRlbXMsIGZ1bmN0aW9uKCBpbmRleCwgaXRlbSApIHsNCgkJCWlmICggaXRlbS5vcHRncm91cCAhPT0gY3VycmVudE9wdGdyb3VwICkgew0KCQkJCSQoICI8bGk+Iiwgew0KCQkJCQkiY2xhc3MiOiAidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiICsNCgkJCQkJCSggaXRlbS5lbGVtZW50LnBhcmVudCggIm9wdGdyb3VwIiApLnByb3AoICJkaXNhYmxlZCIgKSA/DQoJCQkJCQkJIiB1aS1zdGF0ZS1kaXNhYmxlZCIgOg0KCQkJCQkJCSIiICksDQoJCQkJCXRleHQ6IGl0ZW0ub3B0Z3JvdXANCgkJCQl9KQ0KCQkJCQkuYXBwZW5kVG8oIHVsICk7DQoNCgkJCQljdXJyZW50T3B0Z3JvdXAgPSBpdGVtLm9wdGdyb3VwOw0KCQkJfQ0KDQoJCQl0aGF0Ll9yZW5kZXJJdGVtRGF0YSggdWwsIGl0ZW0gKTsNCgkJfSk7DQoJfSwNCg0KCV9yZW5kZXJJdGVtRGF0YTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQlyZXR1cm4gdGhpcy5fcmVuZGVySXRlbSggdWwsIGl0ZW0gKS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiwgaXRlbSApOw0KCX0sDQoNCglfcmVuZGVySXRlbTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQl2YXIgbGkgPSAkKCAiPGxpPiIgKTsNCg0KCQlpZiAoIGl0ZW0uZGlzYWJsZWQgKSB7DQoJCQlsaS5hZGRDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApOw0KCQl9DQoJCXRoaXMuX3NldFRleHQoIGxpLCBpdGVtLmxhYmVsICk7DQoNCgkJcmV0dXJuIGxpLmFwcGVuZFRvKCB1bCApOw0KCX0sDQoNCglfc2V0VGV4dDogZnVuY3Rpb24oIGVsZW1lbnQsIHZhbHVlICkgew0KCQlpZiAoIHZhbHVlICkgew0KCQkJZWxlbWVudC50ZXh0KCB2YWx1ZSApOw0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudC5odG1sKCAiJiMxNjA7IiApOw0KCQl9DQoJfSwNCg0KCV9tb3ZlOiBmdW5jdGlvbiggZGlyZWN0aW9uLCBldmVudCApIHsNCgkJdmFyIGl0ZW0sIG5leHQsDQoJCQlmaWx0ZXIgPSAiLnVpLW1lbnUtaXRlbSI7DQoNCgkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCWl0ZW0gPSB0aGlzLm1lbnVJdGVtcy5lcSggdGhpcy5mb2N1c0luZGV4ICk7DQoJCX0gZWxzZSB7DQoJCQlpdGVtID0gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKTsNCgkJCWZpbHRlciArPSAiOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpIjsNCgkJfQ0KDQoJCWlmICggZGlyZWN0aW9uID09PSAiZmlyc3QiIHx8IGRpcmVjdGlvbiA9PT0gImxhc3QiICkgew0KCQkJbmV4dCA9IGl0ZW1bIGRpcmVjdGlvbiA9PT0gImZpcnN0IiA/ICJwcmV2QWxsIiA6ICJuZXh0QWxsIiBdKCBmaWx0ZXIgKS5lcSggLTEgKTsNCgkJfSBlbHNlIHsNCgkJCW5leHQgPSBpdGVtWyBkaXJlY3Rpb24gKyAiQWxsIiBdKCBmaWx0ZXIgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCBuZXh0Lmxlbmd0aCApIHsNCgkJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBldmVudCwgbmV4dCApOw0KCQl9DQoJfSwNCg0KCV9nZXRTZWxlY3RlZEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKTsNCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzWyB0aGlzLmlzT3BlbiA/ICJjbG9zZSIgOiAib3BlbiIgXSggZXZlbnQgKTsNCgl9LA0KDQoJX3NldFNlbGVjdGlvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3Rpb247DQoNCgkJaWYgKCAhdGhpcy5yYW5nZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggd2luZG93LmdldFNlbGVjdGlvbiApIHsNCgkJCXNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCgkJCXNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsNCgkJCXNlbGVjdGlvbi5hZGRSYW5nZSggdGhpcy5yYW5nZSApOw0KDQoJCS8vIHN1cHBvcnQ6IElFOA0KCQl9IGVsc2Ugew0KCQkJdGhpcy5yYW5nZS5zZWxlY3QoKTsNCgkJfQ0KDQoJCS8vIHN1cHBvcnQ6IElFDQoJCS8vIFNldHRpbmcgdGhlIHRleHQgc2VsZWN0aW9uIGtpbGxzIHRoZSBidXR0b24gZm9jdXMgaW4gSUUsIGJ1dA0KCQkvLyByZXN0b3JpbmcgdGhlIGZvY3VzIGRvZXNuJ3Qga2lsbCB0aGUgc2VsZWN0aW9uLg0KCQl0aGlzLmJ1dHRvbi5mb2N1cygpOw0KCX0sDQoNCglfZG9jdW1lbnRDbGljazogew0KCQltb3VzZWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggIXRoaXMuaXNPcGVuICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJaWYgKCAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1zZWxlY3RtZW51LW1lbnUsICMiICsgdGhpcy5pZHMuYnV0dG9uICkubGVuZ3RoICkgew0KCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2J1dHRvbkV2ZW50czogew0KDQoJCS8vIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gZnJvbSBiZWluZyByZXNldCB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIHNlbGVjdG1lbnUgKCMxMDE0NCkNCgkJbW91c2Vkb3duOiBmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3Rpb247DQoNCgkJCWlmICggd2luZG93LmdldFNlbGVjdGlvbiApIHsNCgkJCQlzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7DQoJCQkJaWYgKCBzZWxlY3Rpb24ucmFuZ2VDb3VudCApIHsNCgkJCQkJdGhpcy5yYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KCAwICk7DQoJCQkJfQ0KDQoJCQkvLyBzdXBwb3J0OiBJRTgNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5yYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpOw0KCQkJfQ0KCQl9LA0KDQoJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl0aGlzLl9zZXRTZWxlY3Rpb24oKTsNCgkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJfSwNCg0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgcHJldmVudERlZmF1bHQgPSB0cnVlOw0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5UQUI6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuRVNDQVBFOg0KCQkJCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCQkJCQlwcmV2ZW50RGVmYXVsdCA9IGZhbHNlOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTlRFUjoNCgkJCQkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCQkJCXRoaXMuX3NlbGVjdEZvY3VzZWRJdGVtKCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlVQOg0KCQkJCQlpZiAoIGV2ZW50LmFsdEtleSApIHsNCgkJCQkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXRoaXMuX21vdmUoICJwcmV2IiwgZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5ET1dOOg0KCQkJCQlpZiAoIGV2ZW50LmFsdEtleSApIHsNCgkJCQkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCXRoaXMuX21vdmUoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5TUEFDRToNCgkJCQkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCQkJCXRoaXMuX3NlbGVjdEZvY3VzZWRJdGVtKCBldmVudCApOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJdGhpcy5fdG9nZ2xlKCBldmVudCApOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJCXRoaXMuX21vdmUoICJwcmV2IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUklHSFQ6DQoJCQkJCXRoaXMuX21vdmUoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuSE9NRToNCgkJCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJCQl0aGlzLl9tb3ZlKCAiZmlyc3QiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQl0aGlzLl9tb3ZlKCAibGFzdCIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCXRoaXMubWVudS50cmlnZ2VyKCBldmVudCApOw0KCQkJCQlwcmV2ZW50RGVmYXVsdCA9IGZhbHNlOw0KCQkJfQ0KDQoJCQlpZiAoIHByZXZlbnREZWZhdWx0ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX3NlbGVjdEZvY3VzZWRJdGVtOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBpdGVtID0gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZm9jdXNJbmRleCApOw0KCQlpZiAoICFpdGVtLmhhc0NsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkgKSB7DQoJCQl0aGlzLl9zZWxlY3QoIGl0ZW0uZGF0YSggInVpLXNlbGVjdG1lbnUtaXRlbSIgKSwgZXZlbnQgKTsNCgkJfQ0KCX0sDQoNCglfc2VsZWN0OiBmdW5jdGlvbiggaXRlbSwgZXZlbnQgKSB7DQoJCXZhciBvbGRJbmRleCA9IHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXg7DQoNCgkJLy8gQ2hhbmdlIG5hdGl2ZSBzZWxlY3QgZWxlbWVudA0KCQl0aGlzLmVsZW1lbnRbIDAgXS5zZWxlY3RlZEluZGV4ID0gaXRlbS5pbmRleDsNCgkJdGhpcy5fc2V0VGV4dCggdGhpcy5idXR0b25UZXh0LCBpdGVtLmxhYmVsICk7DQoJCXRoaXMuX3NldEFyaWEoIGl0ZW0gKTsNCgkJdGhpcy5fdHJpZ2dlciggInNlbGVjdCIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApOw0KDQoJCWlmICggaXRlbS5pbmRleCAhPT0gb2xkSW5kZXggKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICk7DQoJCX0NCg0KCQl0aGlzLmNsb3NlKCBldmVudCApOw0KCX0sDQoNCglfc2V0QXJpYTogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXZhciBpZCA9IHRoaXMubWVudUl0ZW1zLmVxKCBpdGVtLmluZGV4ICkuYXR0ciggImlkIiApOw0KDQoJCXRoaXMuYnV0dG9uLmF0dHIoew0KCQkJImFyaWEtbGFiZWxsZWRieSI6IGlkLA0KCQkJImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6IGlkDQoJCX0pOw0KCQl0aGlzLm1lbnUuYXR0ciggImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsIGlkICk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImljb25zIiApIHsNCgkJCXRoaXMuYnV0dG9uLmZpbmQoICJzcGFuLnVpLWljb24iICkNCgkJCQkucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5pY29ucy5idXR0b24gKQ0KCQkJCS5hZGRDbGFzcyggdmFsdWUuYnV0dG9uICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiYXBwZW5kVG8iICkgew0KCQkJdGhpcy5tZW51V3JhcC5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oICJkaXNhYmxlZCIsIHZhbHVlICk7DQoJCQl0aGlzLmJ1dHRvbg0KCQkJCS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgdmFsdWUgKQ0KCQkJCS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoNCgkJCXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiLCB2YWx1ZSApOw0KCQkJaWYgKCB2YWx1ZSApIHsNCgkJCQl0aGlzLmJ1dHRvbi5hdHRyKCAidGFiaW5kZXgiLCAtMSApOw0KCQkJCXRoaXMuY2xvc2UoKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5idXR0b24uYXR0ciggInRhYmluZGV4IiwgMCApOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJ3aWR0aCIgKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5hcHBlbmRUbzsNCg0KCQlpZiAoIGVsZW1lbnQgKSB7DQoJCQllbGVtZW50ID0gZWxlbWVudC5qcXVlcnkgfHwgZWxlbWVudC5ub2RlVHlwZSA/DQoJCQkJJCggZWxlbWVudCApIDoNCgkJCQl0aGlzLmRvY3VtZW50LmZpbmQoIGVsZW1lbnQgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudCB8fCAhZWxlbWVudFsgMCBdICkgew0KCQkJZWxlbWVudCA9IHRoaXMuZWxlbWVudC5jbG9zZXN0KCAiLnVpLWZyb250IiApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudC5sZW5ndGggKSB7DQoJCQllbGVtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdLmJvZHk7DQoJCX0NCg0KCQlyZXR1cm4gZWxlbWVudDsNCgl9LA0KDQoJX3RvZ2dsZUF0dHI6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmJ1dHRvbg0KCQkJLnRvZ2dsZUNsYXNzKCAidWktY29ybmVyLXRvcCIsIHRoaXMuaXNPcGVuICkNCgkJCS50b2dnbGVDbGFzcyggInVpLWNvcm5lci1hbGwiLCAhdGhpcy5pc09wZW4gKQ0KCQkJLmF0dHIoICJhcmlhLWV4cGFuZGVkIiwgdGhpcy5pc09wZW4gKTsNCgkJdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcyggInVpLXNlbGVjdG1lbnUtb3BlbiIsIHRoaXMuaXNPcGVuICk7DQoJCXRoaXMubWVudS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAhdGhpcy5pc09wZW4gKTsNCgl9LA0KDQoJX3Jlc2l6ZUJ1dHRvbjogZnVuY3Rpb24oKSB7DQoJCXZhciB3aWR0aCA9IHRoaXMub3B0aW9ucy53aWR0aDsNCg0KCQlpZiAoICF3aWR0aCApIHsNCgkJCXdpZHRoID0gdGhpcy5lbGVtZW50LnNob3coKS5vdXRlcldpZHRoKCk7DQoJCQl0aGlzLmVsZW1lbnQuaGlkZSgpOw0KCQl9DQoNCgkJdGhpcy5idXR0b24ub3V0ZXJXaWR0aCggd2lkdGggKTsNCgl9LA0KDQoJX3Jlc2l6ZU1lbnU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1lbnUub3V0ZXJXaWR0aCggTWF0aC5tYXgoDQoJCQl0aGlzLmJ1dHRvbi5vdXRlcldpZHRoKCksDQoNCgkJCS8vIHN1cHBvcnQ6IElFMTANCgkJCS8vIElFMTAgd3JhcHMgbG9uZyB0ZXh0IChwb3NzaWJseSBhIHJvdW5kaW5nIGJ1ZykNCgkJCS8vIHNvIHdlIGFkZCAxcHggdG8gYXZvaWQgdGhlIHdyYXBwaW5nDQoJCQl0aGlzLm1lbnUud2lkdGgoICIiICkub3V0ZXJXaWR0aCgpICsgMQ0KCQkpICk7DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHsgZGlzYWJsZWQ6IHRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiICkgfTsNCgl9LA0KDQoJX3BhcnNlT3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBkYXRhID0gW107DQoJCW9wdGlvbnMuZWFjaChmdW5jdGlvbiggaW5kZXgsIGl0ZW0gKSB7DQoJCQl2YXIgb3B0aW9uID0gJCggaXRlbSApLA0KCQkJCW9wdGdyb3VwID0gb3B0aW9uLnBhcmVudCggIm9wdGdyb3VwIiApOw0KCQkJZGF0YS5wdXNoKHsNCgkJCQllbGVtZW50OiBvcHRpb24sDQoJCQkJaW5kZXg6IGluZGV4LA0KCQkJCXZhbHVlOiBvcHRpb24udmFsKCksDQoJCQkJbGFiZWw6IG9wdGlvbi50ZXh0KCksDQoJCQkJb3B0Z3JvdXA6IG9wdGdyb3VwLmF0dHIoICJsYWJlbCIgKSB8fCAiIiwNCgkJCQlkaXNhYmxlZDogb3B0Z3JvdXAucHJvcCggImRpc2FibGVkIiApIHx8IG9wdGlvbi5wcm9wKCAiZGlzYWJsZWQiICkNCgkJCX0pOw0KCQl9KTsNCgkJdGhpcy5pdGVtcyA9IGRhdGE7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5tZW51V3JhcC5yZW1vdmUoKTsNCgkJdGhpcy5idXR0b24ucmVtb3ZlKCk7DQoJCXRoaXMuZWxlbWVudC5zaG93KCk7DQoJCXRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpOw0KCQl0aGlzLmxhYmVsLmF0dHIoICJmb3IiLCB0aGlzLmlkcy5lbGVtZW50ICk7DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2xpZGVyIDEuMTEuNA0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc2xpZGVyLw0KICovDQoNCg0KdmFyIHNsaWRlciA9ICQud2lkZ2V0KCAidWkuc2xpZGVyIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjExLjQiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic2xpZGUiLA0KDQoJb3B0aW9uczogew0KCQlhbmltYXRlOiBmYWxzZSwNCgkJZGlzdGFuY2U6IDAsDQoJCW1heDogMTAwLA0KCQltaW46IDAsDQoJCW9yaWVudGF0aW9uOiAiaG9yaXpvbnRhbCIsDQoJCXJhbmdlOiBmYWxzZSwNCgkJc3RlcDogMSwNCgkJdmFsdWU6IDAsDQoJCXZhbHVlczogbnVsbCwNCg0KCQkvLyBjYWxsYmFja3MNCgkJY2hhbmdlOiBudWxsLA0KCQlzbGlkZTogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwNCgl9LA0KDQoJLy8gbnVtYmVyIG9mIHBhZ2VzIGluIGEgc2xpZGVyDQoJLy8gKGhvdyBtYW55IHRpbWVzIGNhbiB5b3UgcGFnZSB1cC9kb3duIHRvIGdvIHRocm91Z2ggdGhlIHdob2xlIHJhbmdlKQ0KCW51bVBhZ2VzOiA1LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2tleVNsaWRpbmcgPSBmYWxzZTsNCgkJdGhpcy5fbW91c2VTbGlkaW5nID0gZmFsc2U7DQoJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQl0aGlzLl9oYW5kbGVJbmRleCA9IG51bGw7DQoJCXRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCk7DQoJCXRoaXMuX21vdXNlSW5pdCgpOw0KCQl0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5hZGRDbGFzcyggInVpLXNsaWRlciIgKw0KCQkJCSIgdWktc2xpZGVyLSIgKyB0aGlzLm9yaWVudGF0aW9uICsNCgkJCQkiIHVpLXdpZGdldCIgKw0KCQkJCSIgdWktd2lkZ2V0LWNvbnRlbnQiICsNCgkJCQkiIHVpLWNvcm5lci1hbGwiKTsNCg0KCQl0aGlzLl9yZWZyZXNoKCk7DQoJCXRoaXMuX3NldE9wdGlvbiggImRpc2FibGVkIiwgdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoNCgkJdGhpcy5fYW5pbWF0ZU9mZiA9IGZhbHNlOw0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2NyZWF0ZVJhbmdlKCk7DQoJCXRoaXMuX2NyZWF0ZUhhbmRsZXMoKTsNCgkJdGhpcy5fc2V0dXBFdmVudHMoKTsNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9jcmVhdGVIYW5kbGVzOiBmdW5jdGlvbigpIHsNCgkJdmFyIGksIGhhbmRsZUNvdW50LA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWV4aXN0aW5nSGFuZGxlcyA9IHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLXNsaWRlci1oYW5kbGUiICkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiICksDQoJCQloYW5kbGUgPSAiPHNwYW4gY2xhc3M9J3VpLXNsaWRlci1oYW5kbGUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsJyB0YWJpbmRleD0nMCc+PC9zcGFuPiIsDQoJCQloYW5kbGVzID0gW107DQoNCgkJaGFuZGxlQ291bnQgPSAoIG9wdGlvbnMudmFsdWVzICYmIG9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHx8IDE7DQoNCgkJaWYgKCBleGlzdGluZ0hhbmRsZXMubGVuZ3RoID4gaGFuZGxlQ291bnQgKSB7DQoJCQlleGlzdGluZ0hhbmRsZXMuc2xpY2UoIGhhbmRsZUNvdW50ICkucmVtb3ZlKCk7DQoJCQlleGlzdGluZ0hhbmRsZXMgPSBleGlzdGluZ0hhbmRsZXMuc2xpY2UoIDAsIGhhbmRsZUNvdW50ICk7DQoJCX0NCg0KCQlmb3IgKCBpID0gZXhpc3RpbmdIYW5kbGVzLmxlbmd0aDsgaSA8IGhhbmRsZUNvdW50OyBpKysgKSB7DQoJCQloYW5kbGVzLnB1c2goIGhhbmRsZSApOw0KCQl9DQoNCgkJdGhpcy5oYW5kbGVzID0gZXhpc3RpbmdIYW5kbGVzLmFkZCggJCggaGFuZGxlcy5qb2luKCAiIiApICkuYXBwZW5kVG8oIHRoaXMuZWxlbWVudCApICk7DQoNCgkJdGhpcy5oYW5kbGUgPSB0aGlzLmhhbmRsZXMuZXEoIDAgKTsNCg0KCQl0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbiggaSApIHsNCgkJCSQoIHRoaXMgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsIGkgKTsNCgkJfSk7DQoJfSwNCg0KCV9jcmVhdGVSYW5nZTogZnVuY3Rpb24oKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJY2xhc3NlcyA9ICIiOw0KDQoJCWlmICggb3B0aW9ucy5yYW5nZSApIHsNCgkJCWlmICggb3B0aW9ucy5yYW5nZSA9PT0gdHJ1ZSApIHsNCgkJCQlpZiAoICFvcHRpb25zLnZhbHVlcyApIHsNCgkJCQkJb3B0aW9ucy52YWx1ZXMgPSBbIHRoaXMuX3ZhbHVlTWluKCksIHRoaXMuX3ZhbHVlTWluKCkgXTsNCgkJCQl9IGVsc2UgaWYgKCBvcHRpb25zLnZhbHVlcy5sZW5ndGggJiYgb3B0aW9ucy52YWx1ZXMubGVuZ3RoICE9PSAyICkgew0KCQkJCQlvcHRpb25zLnZhbHVlcyA9IFsgb3B0aW9ucy52YWx1ZXNbMF0sIG9wdGlvbnMudmFsdWVzWzBdIF07DQoJCQkJfSBlbHNlIGlmICggJC5pc0FycmF5KCBvcHRpb25zLnZhbHVlcyApICkgew0KCQkJCQlvcHRpb25zLnZhbHVlcyA9IG9wdGlvbnMudmFsdWVzLnNsaWNlKDApOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCAhdGhpcy5yYW5nZSB8fCAhdGhpcy5yYW5nZS5sZW5ndGggKSB7DQoJCQkJdGhpcy5yYW5nZSA9ICQoICI8ZGl2PjwvZGl2PiIgKQ0KCQkJCQkuYXBwZW5kVG8oIHRoaXMuZWxlbWVudCApOw0KDQoJCQkJY2xhc3NlcyA9ICJ1aS1zbGlkZXItcmFuZ2UiICsNCgkJCQkvLyBub3RlOiB0aGlzIGlzbid0IHRoZSBtb3N0IGZpdHRpbmdseSBzZW1hbnRpYyBmcmFtZXdvcmsgY2xhc3MgZm9yIHRoaXMgZWxlbWVudCwNCgkJCQkvLyBidXQgd29ya2VkIGJlc3QgdmlzdWFsbHkgd2l0aCBhIHZhcmlldHkgb2YgdGhlbWVzDQoJCQkJIiB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLnJhbmdlLnJlbW92ZUNsYXNzKCAidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IiApDQoJCQkJCS8vIEhhbmRsZSByYW5nZSBzd2l0Y2hpbmcgZnJvbSB0cnVlIHRvIG1pbi9tYXgNCgkJCQkJLmNzcyh7DQoJCQkJCQkibGVmdCI6ICIiLA0KCQkJCQkJImJvdHRvbSI6ICIiDQoJCQkJCX0pOw0KCQkJfQ0KDQoJCQl0aGlzLnJhbmdlLmFkZENsYXNzKCBjbGFzc2VzICsNCgkJCQkoICggb3B0aW9ucy5yYW5nZSA9PT0gIm1pbiIgfHwgb3B0aW9ucy5yYW5nZSA9PT0gIm1heCIgKSA/ICIgdWktc2xpZGVyLXJhbmdlLSIgKyBvcHRpb25zLnJhbmdlIDogIiIgKSApOw0KCQl9IGVsc2Ugew0KCQkJaWYgKCB0aGlzLnJhbmdlICkgew0KCQkJCXRoaXMucmFuZ2UucmVtb3ZlKCk7DQoJCQl9DQoJCQl0aGlzLnJhbmdlID0gbnVsbDsNCgkJfQ0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9vZmYoIHRoaXMuaGFuZGxlcyApOw0KCQl0aGlzLl9vbiggdGhpcy5oYW5kbGVzLCB0aGlzLl9oYW5kbGVFdmVudHMgKTsNCgkJdGhpcy5faG92ZXJhYmxlKCB0aGlzLmhhbmRsZXMgKTsNCgkJdGhpcy5fZm9jdXNhYmxlKCB0aGlzLmhhbmRsZXMgKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhhbmRsZXMucmVtb3ZlKCk7DQoJCWlmICggdGhpcy5yYW5nZSApIHsNCgkJCXRoaXMucmFuZ2UucmVtb3ZlKCk7DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLXNsaWRlciIgKw0KCQkJCSIgdWktc2xpZGVyLWhvcml6b250YWwiICsNCgkJCQkiIHVpLXNsaWRlci12ZXJ0aWNhbCIgKw0KCQkJCSIgdWktd2lkZ2V0IiArDQoJCQkJIiB1aS13aWRnZXQtY29udGVudCIgKw0KCQkJCSIgdWktY29ybmVyLWFsbCIgKTsNCg0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCgl9LA0KDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgcG9zaXRpb24sIG5vcm1WYWx1ZSwgZGlzdGFuY2UsIGNsb3Nlc3RIYW5kbGUsIGluZGV4LCBhbGxvd2VkLCBvZmZzZXQsIG1vdXNlT3ZlckhhbmRsZSwNCgkJCXRoYXQgPSB0aGlzLA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCg0KCQlpZiAoIG8uZGlzYWJsZWQgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnRTaXplID0gew0KCQkJd2lkdGg6IHRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksDQoJCQloZWlnaHQ6IHRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpDQoJCX07DQoJCXRoaXMuZWxlbWVudE9mZnNldCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKTsNCg0KCQlwb3NpdGlvbiA9IHsgeDogZXZlbnQucGFnZVgsIHk6IGV2ZW50LnBhZ2VZIH07DQoJCW5vcm1WYWx1ZSA9IHRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSggcG9zaXRpb24gKTsNCgkJZGlzdGFuY2UgPSB0aGlzLl92YWx1ZU1heCgpIC0gdGhpcy5fdmFsdWVNaW4oKSArIDE7DQoJCXRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKCBpICkgew0KCQkJdmFyIHRoaXNEaXN0YW5jZSA9IE1hdGguYWJzKCBub3JtVmFsdWUgLSB0aGF0LnZhbHVlcyhpKSApOw0KCQkJaWYgKCggZGlzdGFuY2UgPiB0aGlzRGlzdGFuY2UgKSB8fA0KCQkJCSggZGlzdGFuY2UgPT09IHRoaXNEaXN0YW5jZSAmJg0KCQkJCQkoaSA9PT0gdGhhdC5fbGFzdENoYW5nZWRWYWx1ZSB8fCB0aGF0LnZhbHVlcyhpKSA9PT0gby5taW4gKSkpIHsNCgkJCQlkaXN0YW5jZSA9IHRoaXNEaXN0YW5jZTsNCgkJCQljbG9zZXN0SGFuZGxlID0gJCggdGhpcyApOw0KCQkJCWluZGV4ID0gaTsNCgkJCX0NCgkJfSk7DQoNCgkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJaWYgKCBhbGxvd2VkID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl0aGlzLl9tb3VzZVNsaWRpbmcgPSB0cnVlOw0KDQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gaW5kZXg7DQoNCgkJY2xvc2VzdEhhbmRsZQ0KCQkJLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApDQoJCQkuZm9jdXMoKTsNCg0KCQlvZmZzZXQgPSBjbG9zZXN0SGFuZGxlLm9mZnNldCgpOw0KCQltb3VzZU92ZXJIYW5kbGUgPSAhJCggZXZlbnQudGFyZ2V0ICkucGFyZW50cygpLmFkZEJhY2soKS5pcyggIi51aS1zbGlkZXItaGFuZGxlIiApOw0KCQl0aGlzLl9jbGlja09mZnNldCA9IG1vdXNlT3ZlckhhbmRsZSA/IHsgbGVmdDogMCwgdG9wOiAwIH0gOiB7DQoJCQlsZWZ0OiBldmVudC5wYWdlWCAtIG9mZnNldC5sZWZ0IC0gKCBjbG9zZXN0SGFuZGxlLndpZHRoKCkgLyAyICksDQoJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gb2Zmc2V0LnRvcCAtDQoJCQkJKCBjbG9zZXN0SGFuZGxlLmhlaWdodCgpIC8gMiApIC0NCgkJCQkoIHBhcnNlSW50KCBjbG9zZXN0SGFuZGxlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwgMTAgKSB8fCAwICkgLQ0KCQkJCSggcGFyc2VJbnQoIGNsb3Nlc3RIYW5kbGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLCAxMCApIHx8IDApICsNCgkJCQkoIHBhcnNlSW50KCBjbG9zZXN0SGFuZGxlLmNzcygibWFyZ2luVG9wIiksIDEwICkgfHwgMCkNCgkJfTsNCg0KCQlpZiAoICF0aGlzLmhhbmRsZXMuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKSApIHsNCgkJCXRoaXMuX3NsaWRlKCBldmVudCwgaW5kZXgsIG5vcm1WYWx1ZSApOw0KCQl9DQoJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX21vdXNlU3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgcG9zaXRpb24gPSB7IHg6IGV2ZW50LnBhZ2VYLCB5OiBldmVudC5wYWdlWSB9LA0KCQkJbm9ybVZhbHVlID0gdGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKCBwb3NpdGlvbiApOw0KDQoJCXRoaXMuX3NsaWRlKCBldmVudCwgdGhpcy5faGFuZGxlSW5kZXgsIG5vcm1WYWx1ZSApOw0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLmhhbmRsZXMucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCXRoaXMuX21vdXNlU2xpZGluZyA9IGZhbHNlOw0KDQoJCXRoaXMuX3N0b3AoIGV2ZW50LCB0aGlzLl9oYW5kbGVJbmRleCApOw0KCQl0aGlzLl9jaGFuZ2UoIGV2ZW50LCB0aGlzLl9oYW5kbGVJbmRleCApOw0KDQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gbnVsbDsNCgkJdGhpcy5fY2xpY2tPZmZzZXQgPSBudWxsOw0KCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfZGV0ZWN0T3JpZW50YXRpb246IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm9yaWVudGF0aW9uID0gKCB0aGlzLm9wdGlvbnMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSA/ICJ2ZXJ0aWNhbCIgOiAiaG9yaXpvbnRhbCI7DQoJfSwNCg0KCV9ub3JtVmFsdWVGcm9tTW91c2U6IGZ1bmN0aW9uKCBwb3NpdGlvbiApIHsNCgkJdmFyIHBpeGVsVG90YWwsDQoJCQlwaXhlbE1vdXNlLA0KCQkJcGVyY2VudE1vdXNlLA0KCQkJdmFsdWVUb3RhbCwNCgkJCXZhbHVlTW91c2U7DQoNCgkJaWYgKCB0aGlzLm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgKSB7DQoJCQlwaXhlbFRvdGFsID0gdGhpcy5lbGVtZW50U2l6ZS53aWR0aDsNCgkJCXBpeGVsTW91c2UgPSBwb3NpdGlvbi54IC0gdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQgLSAoIHRoaXMuX2NsaWNrT2Zmc2V0ID8gdGhpcy5fY2xpY2tPZmZzZXQubGVmdCA6IDAgKTsNCgkJfSBlbHNlIHsNCgkJCXBpeGVsVG90YWwgPSB0aGlzLmVsZW1lbnRTaXplLmhlaWdodDsNCgkJCXBpeGVsTW91c2UgPSBwb3NpdGlvbi55IC0gdGhpcy5lbGVtZW50T2Zmc2V0LnRvcCAtICggdGhpcy5fY2xpY2tPZmZzZXQgPyB0aGlzLl9jbGlja09mZnNldC50b3AgOiAwICk7DQoJCX0NCg0KCQlwZXJjZW50TW91c2UgPSAoIHBpeGVsTW91c2UgLyBwaXhlbFRvdGFsICk7DQoJCWlmICggcGVyY2VudE1vdXNlID4gMSApIHsNCgkJCXBlcmNlbnRNb3VzZSA9IDE7DQoJCX0NCgkJaWYgKCBwZXJjZW50TW91c2UgPCAwICkgew0KCQkJcGVyY2VudE1vdXNlID0gMDsNCgkJfQ0KCQlpZiAoIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQlwZXJjZW50TW91c2UgPSAxIC0gcGVyY2VudE1vdXNlOw0KCQl9DQoNCgkJdmFsdWVUb3RhbCA9IHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpOw0KCQl2YWx1ZU1vdXNlID0gdGhpcy5fdmFsdWVNaW4oKSArIHBlcmNlbnRNb3VzZSAqIHZhbHVlVG90YWw7DQoNCgkJcmV0dXJuIHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWx1ZU1vdXNlICk7DQoJfSwNCg0KCV9zdGFydDogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCApIHsNCgkJdmFyIHVpSGFzaCA9IHsNCgkJCWhhbmRsZTogdGhpcy5oYW5kbGVzWyBpbmRleCBdLA0KCQkJdmFsdWU6IHRoaXMudmFsdWUoKQ0KCQl9Ow0KCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQl1aUhhc2gudmFsdWUgPSB0aGlzLnZhbHVlcyggaW5kZXggKTsNCgkJCXVpSGFzaC52YWx1ZXMgPSB0aGlzLnZhbHVlcygpOw0KCQl9DQoJCXJldHVybiB0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCwgdWlIYXNoICk7DQoJfSwNCg0KCV9zbGlkZTogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCwgbmV3VmFsICkgew0KCQl2YXIgb3RoZXJWYWwsDQoJCQluZXdWYWx1ZXMsDQoJCQlhbGxvd2VkOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCW90aGVyVmFsID0gdGhpcy52YWx1ZXMoIGluZGV4ID8gMCA6IDEgKTsNCg0KCQkJaWYgKCAoIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoID09PSAyICYmIHRoaXMub3B0aW9ucy5yYW5nZSA9PT0gdHJ1ZSApICYmDQoJCQkJCSggKCBpbmRleCA9PT0gMCAmJiBuZXdWYWwgPiBvdGhlclZhbCkgfHwgKCBpbmRleCA9PT0gMSAmJiBuZXdWYWwgPCBvdGhlclZhbCApICkNCgkJCQkpIHsNCgkJCQluZXdWYWwgPSBvdGhlclZhbDsNCgkJCX0NCg0KCQkJaWYgKCBuZXdWYWwgIT09IHRoaXMudmFsdWVzKCBpbmRleCApICkgew0KCQkJCW5ld1ZhbHVlcyA9IHRoaXMudmFsdWVzKCk7DQoJCQkJbmV3VmFsdWVzWyBpbmRleCBdID0gbmV3VmFsOw0KCQkJCS8vIEEgc2xpZGUgY2FuIGJlIGNhbmNlbGVkIGJ5IHJldHVybmluZyBmYWxzZSBmcm9tIHRoZSBzbGlkZSBjYWxsYmFjaw0KCQkJCWFsbG93ZWQgPSB0aGlzLl90cmlnZ2VyKCAic2xpZGUiLCBldmVudCwgew0KCQkJCQloYW5kbGU6IHRoaXMuaGFuZGxlc1sgaW5kZXggXSwNCgkJCQkJdmFsdWU6IG5ld1ZhbCwNCgkJCQkJdmFsdWVzOiBuZXdWYWx1ZXMNCgkJCQl9ICk7DQoJCQkJb3RoZXJWYWwgPSB0aGlzLnZhbHVlcyggaW5kZXggPyAwIDogMSApOw0KCQkJCWlmICggYWxsb3dlZCAhPT0gZmFsc2UgKSB7DQoJCQkJCXRoaXMudmFsdWVzKCBpbmRleCwgbmV3VmFsICk7DQoJCQkJfQ0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJaWYgKCBuZXdWYWwgIT09IHRoaXMudmFsdWUoKSApIHsNCgkJCQkvLyBBIHNsaWRlIGNhbiBiZSBjYW5jZWxlZCBieSByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGUgc2xpZGUgY2FsbGJhY2sNCgkJCQlhbGxvd2VkID0gdGhpcy5fdHJpZ2dlciggInNsaWRlIiwgZXZlbnQsIHsNCgkJCQkJaGFuZGxlOiB0aGlzLmhhbmRsZXNbIGluZGV4IF0sDQoJCQkJCXZhbHVlOiBuZXdWYWwNCgkJCQl9ICk7DQoJCQkJaWYgKCBhbGxvd2VkICE9PSBmYWxzZSApIHsNCgkJCQkJdGhpcy52YWx1ZSggbmV3VmFsICk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfSwNCg0KCV9zdG9wOiBmdW5jdGlvbiggZXZlbnQsIGluZGV4ICkgew0KCQl2YXIgdWlIYXNoID0gew0KCQkJaGFuZGxlOiB0aGlzLmhhbmRsZXNbIGluZGV4IF0sDQoJCQl2YWx1ZTogdGhpcy52YWx1ZSgpDQoJCX07DQoJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCXVpSGFzaC52YWx1ZSA9IHRoaXMudmFsdWVzKCBpbmRleCApOw0KCQkJdWlIYXNoLnZhbHVlcyA9IHRoaXMudmFsdWVzKCk7DQoJCX0NCg0KCQl0aGlzLl90cmlnZ2VyKCAic3RvcCIsIGV2ZW50LCB1aUhhc2ggKTsNCgl9LA0KDQoJX2NoYW5nZTogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCApIHsNCgkJaWYgKCAhdGhpcy5fa2V5U2xpZGluZyAmJiAhdGhpcy5fbW91c2VTbGlkaW5nICkgew0KCQkJdmFyIHVpSGFzaCA9IHsNCgkJCQloYW5kbGU6IHRoaXMuaGFuZGxlc1sgaW5kZXggXSwNCgkJCQl2YWx1ZTogdGhpcy52YWx1ZSgpDQoJCQl9Ow0KCQkJaWYgKCB0aGlzLm9wdGlvbnMudmFsdWVzICYmIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoICkgew0KCQkJCXVpSGFzaC52YWx1ZSA9IHRoaXMudmFsdWVzKCBpbmRleCApOw0KCQkJCXVpSGFzaC52YWx1ZXMgPSB0aGlzLnZhbHVlcygpOw0KCQkJfQ0KDQoJCQkvL3N0b3JlIHRoZSBsYXN0IGNoYW5nZWQgdmFsdWUgaW5kZXggZm9yIHJlZmVyZW5jZSB3aGVuIGhhbmRsZXMgb3ZlcmxhcA0KCQkJdGhpcy5fbGFzdENoYW5nZWRWYWx1ZSA9IGluZGV4Ow0KDQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHVpSGFzaCApOw0KCQl9DQoJfSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsdWUgKSB7DQoJCWlmICggYXJndW1lbnRzLmxlbmd0aCApIHsNCgkJCXRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIDAgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLl92YWx1ZSgpOw0KCX0sDQoNCgl2YWx1ZXM6IGZ1bmN0aW9uKCBpbmRleCwgbmV3VmFsdWUgKSB7DQoJCXZhciB2YWxzLA0KCQkJbmV3VmFsdWVzLA0KCQkJaTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPiAxICkgew0KCQkJdGhpcy5vcHRpb25zLnZhbHVlc1sgaW5kZXggXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGluZGV4ICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQlpZiAoICQuaXNBcnJheSggYXJndW1lbnRzWyAwIF0gKSApIHsNCgkJCQl2YWxzID0gdGhpcy5vcHRpb25zLnZhbHVlczsNCgkJCQluZXdWYWx1ZXMgPSBhcmd1bWVudHNbIDAgXTsNCgkJCQlmb3IgKCBpID0gMDsgaSA8IHZhbHMubGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJCXZhbHNbIGkgXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZXNbIGkgXSApOw0KCQkJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGkgKTsNCgkJCQl9DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCQkJcmV0dXJuIHRoaXMuX3ZhbHVlcyggaW5kZXggKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gdGhpcy52YWx1ZSgpOw0KCQkJCX0NCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXJldHVybiB0aGlzLl92YWx1ZXMoKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIGksDQoJCQl2YWxzTGVuZ3RoID0gMDsNCg0KCQlpZiAoIGtleSA9PT0gInJhbmdlIiAmJiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQlpZiAoIHZhbHVlID09PSAibWluIiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIDAgKTsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWVzID0gbnVsbDsNCgkJCX0gZWxzZSBpZiAoIHZhbHVlID09PSAibWF4IiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoIC0gMSApOw0KCQkJCXRoaXMub3B0aW9ucy52YWx1ZXMgPSBudWxsOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCAkLmlzQXJyYXkoIHRoaXMub3B0aW9ucy52YWx1ZXMgKSApIHsNCgkJCXZhbHNMZW5ndGggPSB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aDsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCXN3aXRjaCAoIGtleSApIHsNCgkJCWNhc2UgIm9yaWVudGF0aW9uIjoNCgkJCQl0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpOw0KCQkJCXRoaXMuZWxlbWVudA0KCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiICkNCgkJCQkJLmFkZENsYXNzKCAidWktc2xpZGVyLSIgKyB0aGlzLm9yaWVudGF0aW9uICk7DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoNCgkJCQkvLyBSZXNldCBwb3NpdGlvbmluZyBmcm9tIHByZXZpb3VzIG9yaWVudGF0aW9uDQoJCQkJdGhpcy5oYW5kbGVzLmNzcyggdmFsdWUgPT09ICJob3Jpem9udGFsIiA/ICJib3R0b20iIDogImxlZnQiLCAiIiApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidmFsdWUiOg0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCQkJCXRoaXMuX2NoYW5nZSggbnVsbCwgMCApOw0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInZhbHVlcyI6DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IHRydWU7DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQkJZm9yICggaSA9IDA7IGkgPCB2YWxzTGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJCXRoaXMuX2NoYW5nZSggbnVsbCwgaSApOw0KCQkJCX0NCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJzdGVwIjoNCgkJCWNhc2UgIm1pbiI6DQoJCQljYXNlICJtYXgiOg0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQkJCXRoaXMuX2NhbGN1bGF0ZU5ld01heCgpOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInJhbmdlIjoNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gdHJ1ZTsNCgkJCQl0aGlzLl9yZWZyZXNoKCk7DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IGZhbHNlOw0KCQkJCWJyZWFrOw0KCQl9DQoJfSwNCg0KCS8vaW50ZXJuYWwgdmFsdWUgZ2V0dGVyDQoJLy8gX3ZhbHVlKCkgcmV0dXJucyB2YWx1ZSB0cmltbWVkIGJ5IG1pbiBhbmQgbWF4LCBhbGlnbmVkIGJ5IHN0ZXANCglfdmFsdWU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsID0gdGhpcy5vcHRpb25zLnZhbHVlOw0KCQl2YWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSggdmFsICk7DQoNCgkJcmV0dXJuIHZhbDsNCgl9LA0KDQoJLy9pbnRlcm5hbCB2YWx1ZXMgZ2V0dGVyDQoJLy8gX3ZhbHVlcygpIHJldHVybnMgYXJyYXkgb2YgdmFsdWVzIHRyaW1tZWQgYnkgbWluIGFuZCBtYXgsIGFsaWduZWQgYnkgc3RlcA0KCS8vIF92YWx1ZXMoIGluZGV4ICkgcmV0dXJucyBzaW5nbGUgdmFsdWUgdHJpbW1lZCBieSBtaW4gYW5kIG1heCwgYWxpZ25lZCBieSBzdGVwDQoJX3ZhbHVlczogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgdmFsLA0KCQkJdmFscywNCgkJCWk7DQoNCgkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICkgew0KCQkJdmFsID0gdGhpcy5vcHRpb25zLnZhbHVlc1sgaW5kZXggXTsNCgkJCXZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWwgKTsNCg0KCQkJcmV0dXJuIHZhbDsNCgkJfSBlbHNlIGlmICggdGhpcy5vcHRpb25zLnZhbHVlcyAmJiB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCApIHsNCgkJCS8vIC5zbGljZSgpIGNyZWF0ZXMgYSBjb3B5IG9mIHRoZSBhcnJheQ0KCQkJLy8gdGhpcyBjb3B5IGdldHMgdHJpbW1lZCBieSBtaW4gYW5kIG1heCBhbmQgdGhlbiByZXR1cm5lZA0KCQkJdmFscyA9IHRoaXMub3B0aW9ucy52YWx1ZXMuc2xpY2UoKTsNCgkJCWZvciAoIGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7IGkgKz0gMSkgew0KCQkJCXZhbHNbIGkgXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWxzWyBpIF0gKTsNCgkJCX0NCg0KCQkJcmV0dXJuIHZhbHM7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gW107DQoJCX0NCgl9LA0KDQoJLy8gcmV0dXJucyB0aGUgc3RlcC1hbGlnbmVkIHZhbHVlIHRoYXQgdmFsIGlzIGNsb3Nlc3QgdG8sIGJldHdlZW4gKGluY2x1c2l2ZSkgbWluIGFuZCBtYXgNCglfdHJpbUFsaWduVmFsdWU6IGZ1bmN0aW9uKCB2YWwgKSB7DQoJCWlmICggdmFsIDw9IHRoaXMuX3ZhbHVlTWluKCkgKSB7DQoJCQlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTsNCgkJfQ0KCQlpZiAoIHZhbCA+PSB0aGlzLl92YWx1ZU1heCgpICkgew0KCQkJcmV0dXJuIHRoaXMuX3ZhbHVlTWF4KCk7DQoJCX0NCgkJdmFyIHN0ZXAgPSAoIHRoaXMub3B0aW9ucy5zdGVwID4gMCApID8gdGhpcy5vcHRpb25zLnN0ZXAgOiAxLA0KCQkJdmFsTW9kU3RlcCA9ICh2YWwgLSB0aGlzLl92YWx1ZU1pbigpKSAlIHN0ZXAsDQoJCQlhbGlnblZhbHVlID0gdmFsIC0gdmFsTW9kU3RlcDsNCg0KCQlpZiAoIE1hdGguYWJzKHZhbE1vZFN0ZXApICogMiA+PSBzdGVwICkgew0KCQkJYWxpZ25WYWx1ZSArPSAoIHZhbE1vZFN0ZXAgPiAwICkgPyBzdGVwIDogKCAtc3RlcCApOw0KCQl9DQoNCgkJLy8gU2luY2UgSmF2YVNjcmlwdCBoYXMgcHJvYmxlbXMgd2l0aCBsYXJnZSBmbG9hdHMsIHJvdW5kDQoJCS8vIHRoZSBmaW5hbCB2YWx1ZSB0byA1IGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCAoc2VlICM0MTI0KQ0KCQlyZXR1cm4gcGFyc2VGbG9hdCggYWxpZ25WYWx1ZS50b0ZpeGVkKDUpICk7DQoJfSwNCg0KCV9jYWxjdWxhdGVOZXdNYXg6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbWF4ID0gdGhpcy5vcHRpb25zLm1heCwNCgkJCW1pbiA9IHRoaXMuX3ZhbHVlTWluKCksDQoJCQlzdGVwID0gdGhpcy5vcHRpb25zLnN0ZXAsDQoJCQlhYm92ZU1pbiA9IE1hdGguZmxvb3IoICggKyggbWF4IC0gbWluICkudG9GaXhlZCggdGhpcy5fcHJlY2lzaW9uKCkgKSApIC8gc3RlcCApICogc3RlcDsNCgkJbWF4ID0gYWJvdmVNaW4gKyBtaW47DQoJCXRoaXMubWF4ID0gcGFyc2VGbG9hdCggbWF4LnRvRml4ZWQoIHRoaXMuX3ByZWNpc2lvbigpICkgKTsNCgl9LA0KDQoJX3ByZWNpc2lvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBwcmVjaXNpb24gPSB0aGlzLl9wcmVjaXNpb25PZiggdGhpcy5vcHRpb25zLnN0ZXAgKTsNCgkJaWYgKCB0aGlzLm9wdGlvbnMubWluICE9PSBudWxsICkgew0KCQkJcHJlY2lzaW9uID0gTWF0aC5tYXgoIHByZWNpc2lvbiwgdGhpcy5fcHJlY2lzaW9uT2YoIHRoaXMub3B0aW9ucy5taW4gKSApOw0KCQl9DQoJCXJldHVybiBwcmVjaXNpb247DQoJfSwNCg0KCV9wcmVjaXNpb25PZjogZnVuY3Rpb24oIG51bSApIHsNCgkJdmFyIHN0ciA9IG51bS50b1N0cmluZygpLA0KCQkJZGVjaW1hbCA9IHN0ci5pbmRleE9mKCAiLiIgKTsNCgkJcmV0dXJuIGRlY2ltYWwgPT09IC0xID8gMCA6IHN0ci5sZW5ndGggLSBkZWNpbWFsIC0gMTsNCgl9LA0KDQoJX3ZhbHVlTWluOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy5taW47DQoJfSwNCg0KCV92YWx1ZU1heDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLm1heDsNCgl9LA0KDQoJX3JlZnJlc2hWYWx1ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBsYXN0VmFsUGVyY2VudCwgdmFsUGVyY2VudCwgdmFsdWUsIHZhbHVlTWluLCB2YWx1ZU1heCwNCgkJCW9SYW5nZSA9IHRoaXMub3B0aW9ucy5yYW5nZSwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQl0aGF0ID0gdGhpcywNCgkJCWFuaW1hdGUgPSAoICF0aGlzLl9hbmltYXRlT2ZmICkgPyBvLmFuaW1hdGUgOiBmYWxzZSwNCgkJCV9zZXQgPSB7fTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQl0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbiggaSApIHsNCgkJCQl2YWxQZXJjZW50ID0gKCB0aGF0LnZhbHVlcyhpKSAtIHRoYXQuX3ZhbHVlTWluKCkgKSAvICggdGhhdC5fdmFsdWVNYXgoKSAtIHRoYXQuX3ZhbHVlTWluKCkgKSAqIDEwMDsNCgkJCQlfc2V0WyB0aGF0Lm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgPyAibGVmdCIgOiAiYm90dG9tIiBdID0gdmFsUGVyY2VudCArICIlIjsNCgkJCQkkKCB0aGlzICkuc3RvcCggMSwgMSApWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggX3NldCwgby5hbmltYXRlICk7DQoJCQkJaWYgKCB0aGF0Lm9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQkJCWlmICggdGhhdC5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiICkgew0KCQkJCQkJaWYgKCBpID09PSAwICkgew0KCQkJCQkJCXRoYXQucmFuZ2Uuc3RvcCggMSwgMSApWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggeyBsZWZ0OiB2YWxQZXJjZW50ICsgIiUiIH0sIG8uYW5pbWF0ZSApOw0KCQkJCQkJfQ0KCQkJCQkJaWYgKCBpID09PSAxICkgew0KCQkJCQkJCXRoYXQucmFuZ2VbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7IHdpZHRoOiAoIHZhbFBlcmNlbnQgLSBsYXN0VmFsUGVyY2VudCApICsgIiUiIH0sIHsgcXVldWU6IGZhbHNlLCBkdXJhdGlvbjogby5hbmltYXRlIH0gKTsNCgkJCQkJCX0NCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWlmICggaSA9PT0gMCApIHsNCgkJCQkJCQl0aGF0LnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgYm90dG9tOiAoIHZhbFBlcmNlbnQgKSArICIlIiB9LCBvLmFuaW1hdGUgKTsNCgkJCQkJCX0NCgkJCQkJCWlmICggaSA9PT0gMSApIHsNCgkJCQkJCQl0aGF0LnJhbmdlWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggeyBoZWlnaHQ6ICggdmFsUGVyY2VudCAtIGxhc3RWYWxQZXJjZW50ICkgKyAiJSIgfSwgeyBxdWV1ZTogZmFsc2UsIGR1cmF0aW9uOiBvLmFuaW1hdGUgfSApOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCWxhc3RWYWxQZXJjZW50ID0gdmFsUGVyY2VudDsNCgkJCX0pOw0KCQl9IGVsc2Ugew0KCQkJdmFsdWUgPSB0aGlzLnZhbHVlKCk7DQoJCQl2YWx1ZU1pbiA9IHRoaXMuX3ZhbHVlTWluKCk7DQoJCQl2YWx1ZU1heCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQl2YWxQZXJjZW50ID0gKCB2YWx1ZU1heCAhPT0gdmFsdWVNaW4gKSA/DQoJCQkJCSggdmFsdWUgLSB2YWx1ZU1pbiApIC8gKCB2YWx1ZU1heCAtIHZhbHVlTWluICkgKiAxMDAgOg0KCQkJCQkwOw0KCQkJX3NldFsgdGhpcy5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiID8gImxlZnQiIDogImJvdHRvbSIgXSA9IHZhbFBlcmNlbnQgKyAiJSI7DQoJCQl0aGlzLmhhbmRsZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCBfc2V0LCBvLmFuaW1hdGUgKTsNCg0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtaW4iICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiApIHsNCgkJCQl0aGlzLnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgd2lkdGg6IHZhbFBlcmNlbnQgKyAiJSIgfSwgby5hbmltYXRlICk7DQoJCQl9DQoJCQlpZiAoIG9SYW5nZSA9PT0gIm1heCIgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiICkgew0KCQkJCXRoaXMucmFuZ2VbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7IHdpZHRoOiAoIDEwMCAtIHZhbFBlcmNlbnQgKSArICIlIiB9LCB7IHF1ZXVlOiBmYWxzZSwgZHVyYXRpb246IG8uYW5pbWF0ZSB9ICk7DQoJCQl9DQoJCQlpZiAoIG9SYW5nZSA9PT0gIm1pbiIgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gInZlcnRpY2FsIiApIHsNCgkJCQl0aGlzLnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgaGVpZ2h0OiB2YWxQZXJjZW50ICsgIiUiIH0sIG8uYW5pbWF0ZSApOw0KCQkJfQ0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtYXgiICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQkJdGhpcy5yYW5nZVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsgaGVpZ2h0OiAoIDEwMCAtIHZhbFBlcmNlbnQgKSArICIlIiB9LCB7IHF1ZXVlOiBmYWxzZSwgZHVyYXRpb246IG8uYW5pbWF0ZSB9ICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2hhbmRsZUV2ZW50czogew0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgYWxsb3dlZCwgY3VyVmFsLCBuZXdWYWwsIHN0ZXAsDQoJCQkJaW5kZXggPSAkKCBldmVudC50YXJnZXQgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIgKTsNCg0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkVORDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfRE9XTjoNCgkJCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5ET1dOOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCWlmICggIXRoaXMuX2tleVNsaWRpbmcgKSB7DQoJCQkJCQl0aGlzLl9rZXlTbGlkaW5nID0gdHJ1ZTsNCgkJCQkJCSQoIGV2ZW50LnRhcmdldCApLmFkZENsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCQkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJCQkJCWlmICggYWxsb3dlZCA9PT0gZmFsc2UgKSB7DQoJCQkJCQkJcmV0dXJuOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJfQ0KDQoJCQlzdGVwID0gdGhpcy5vcHRpb25zLnN0ZXA7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggKSB7DQoJCQkJY3VyVmFsID0gbmV3VmFsID0gdGhpcy52YWx1ZXMoIGluZGV4ICk7DQoJCQl9IGVsc2Ugew0KCQkJCWN1clZhbCA9IG5ld1ZhbCA9IHRoaXMudmFsdWUoKTsNCgkJCX0NCg0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCQluZXdWYWwgPSB0aGlzLl92YWx1ZU1pbigpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfVVA6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKA0KCQkJCQkJY3VyVmFsICsgKCAoIHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpICkgLyB0aGlzLm51bVBhZ2VzICkNCgkJCQkJKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSgNCgkJCQkJCWN1clZhbCAtICggKHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpKSAvIHRoaXMubnVtUGFnZXMgKSApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCQkJaWYgKCBjdXJWYWwgPT09IHRoaXMuX3ZhbHVlTWF4KCkgKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJbmV3VmFsID0gdGhpcy5fdHJpbUFsaWduVmFsdWUoIGN1clZhbCArIHN0ZXAgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuRE9XTjoNCgkJCQljYXNlICQudWkua2V5Q29kZS5MRUZUOg0KCQkJCQlpZiAoIGN1clZhbCA9PT0gdGhpcy5fdmFsdWVNaW4oKSApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSggY3VyVmFsIC0gc3RlcCApOw0KCQkJCQlicmVhazsNCgkJCX0NCg0KCQkJdGhpcy5fc2xpZGUoIGV2ZW50LCBpbmRleCwgbmV3VmFsICk7DQoJCX0sDQoJCWtleXVwOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgaW5kZXggPSAkKCBldmVudC50YXJnZXQgKS5kYXRhKCAidWktc2xpZGVyLWhhbmRsZS1pbmRleCIgKTsNCg0KCQkJaWYgKCB0aGlzLl9rZXlTbGlkaW5nICkgew0KCQkJCXRoaXMuX2tleVNsaWRpbmcgPSBmYWxzZTsNCgkJCQl0aGlzLl9zdG9wKCBldmVudCwgaW5kZXggKTsNCgkJCQl0aGlzLl9jaGFuZ2UoIGV2ZW50LCBpbmRleCApOw0KCQkJCSQoIGV2ZW50LnRhcmdldCApLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJfQ0KCQl9DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU29ydGFibGUgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zb3J0YWJsZS8NCiAqLw0KDQoNCnZhciBzb3J0YWJsZSA9ICQud2lkZ2V0KCJ1aS5zb3J0YWJsZSIsICQudWkubW91c2UsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCgl3aWRnZXRFdmVudFByZWZpeDogInNvcnQiLA0KCXJlYWR5OiBmYWxzZSwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiAicGFyZW50IiwNCgkJYXhpczogZmFsc2UsDQoJCWNvbm5lY3RXaXRoOiBmYWxzZSwNCgkJY29udGFpbm1lbnQ6IGZhbHNlLA0KCQljdXJzb3I6ICJhdXRvIiwNCgkJY3Vyc29yQXQ6IGZhbHNlLA0KCQlkcm9wT25FbXB0eTogdHJ1ZSwNCgkJZm9yY2VQbGFjZWhvbGRlclNpemU6IGZhbHNlLA0KCQlmb3JjZUhlbHBlclNpemU6IGZhbHNlLA0KCQlncmlkOiBmYWxzZSwNCgkJaGFuZGxlOiBmYWxzZSwNCgkJaGVscGVyOiAib3JpZ2luYWwiLA0KCQlpdGVtczogIj4gKiIsDQoJCW9wYWNpdHk6IGZhbHNlLA0KCQlwbGFjZWhvbGRlcjogZmFsc2UsDQoJCXJldmVydDogZmFsc2UsDQoJCXNjcm9sbDogdHJ1ZSwNCgkJc2Nyb2xsU2Vuc2l0aXZpdHk6IDIwLA0KCQlzY3JvbGxTcGVlZDogMjAsDQoJCXNjb3BlOiAiZGVmYXVsdCIsDQoJCXRvbGVyYW5jZTogImludGVyc2VjdCIsDQoJCXpJbmRleDogMTAwMCwNCg0KCQkvLyBjYWxsYmFja3MNCgkJYWN0aXZhdGU6IG51bGwsDQoJCWJlZm9yZVN0b3A6IG51bGwsDQoJCWNoYW5nZTogbnVsbCwNCgkJZGVhY3RpdmF0ZTogbnVsbCwNCgkJb3V0OiBudWxsLA0KCQlvdmVyOiBudWxsLA0KCQlyZWNlaXZlOiBudWxsLA0KCQlyZW1vdmU6IG51bGwsDQoJCXNvcnQ6IG51bGwsDQoJCXN0YXJ0OiBudWxsLA0KCQlzdG9wOiBudWxsLA0KCQl1cGRhdGU6IG51bGwNCgl9LA0KDQoJX2lzT3ZlckF4aXM6IGZ1bmN0aW9uKCB4LCByZWZlcmVuY2UsIHNpemUgKSB7DQoJCXJldHVybiAoIHggPj0gcmVmZXJlbmNlICkgJiYgKCB4IDwgKCByZWZlcmVuY2UgKyBzaXplICkgKTsNCgl9LA0KDQoJX2lzRmxvYXRpbmc6IGZ1bmN0aW9uKCBpdGVtICkgew0KCQlyZXR1cm4gKC9sZWZ0fHJpZ2h0LykudGVzdChpdGVtLmNzcygiZmxvYXQiKSkgfHwgKC9pbmxpbmV8dGFibGUtY2VsbC8pLnRlc3QoaXRlbS5jc3MoImRpc3BsYXkiKSk7DQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmNvbnRhaW5lckNhY2hlID0ge307DQoJCXRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc29ydGFibGUiKTsNCg0KCQkvL0dldCB0aGUgaXRlbXMNCgkJdGhpcy5yZWZyZXNoKCk7DQoNCgkJLy9MZXQncyBkZXRlcm1pbmUgdGhlIHBhcmVudCdzIG9mZnNldA0KCQl0aGlzLm9mZnNldCA9IHRoaXMuZWxlbWVudC5vZmZzZXQoKTsNCg0KCQkvL0luaXRpYWxpemUgbW91c2UgZXZlbnRzIGZvciBpbnRlcmFjdGlvbg0KCQl0aGlzLl9tb3VzZUluaXQoKTsNCg0KCQl0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKTsNCg0KCQkvL1dlJ3JlIHJlYWR5IHRvIGdvDQoJCXRoaXMucmVhZHkgPSB0cnVlOw0KDQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiaGFuZGxlIiApIHsNCgkJCXRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpOw0KCQl9DQoJfSwNCg0KCV9zZXRIYW5kbGVDbGFzc05hbWU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQuZmluZCggIi51aS1zb3J0YWJsZS1oYW5kbGUiICkucmVtb3ZlQ2xhc3MoICJ1aS1zb3J0YWJsZS1oYW5kbGUiICk7DQoJCSQuZWFjaCggdGhpcy5pdGVtcywgZnVuY3Rpb24oKSB7DQoJCQkoIHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUgPw0KCQkJCXRoaXMuaXRlbS5maW5kKCB0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlICkgOiB0aGlzLml0ZW0gKQ0KCQkJCS5hZGRDbGFzcyggInVpLXNvcnRhYmxlLWhhbmRsZSIgKTsNCgkJfSk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5lbGVtZW50DQoJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIgKQ0KCQkJLmZpbmQoICIudWktc29ydGFibGUtaGFuZGxlIiApDQoJCQkJLnJlbW92ZUNsYXNzKCAidWktc29ydGFibGUtaGFuZGxlIiApOw0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCg0KCQlmb3IgKCB2YXIgaSA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQl0aGlzLml0ZW1zW2ldLml0ZW0ucmVtb3ZlRGF0YSh0aGlzLndpZGdldE5hbWUgKyAiLWl0ZW0iKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfbW91c2VDYXB0dXJlOiBmdW5jdGlvbihldmVudCwgb3ZlcnJpZGVIYW5kbGUpIHsNCgkJdmFyIGN1cnJlbnRJdGVtID0gbnVsbCwNCgkJCXZhbGlkSGFuZGxlID0gZmFsc2UsDQoJCQl0aGF0ID0gdGhpczsNCg0KCQlpZiAodGhpcy5yZXZlcnRpbmcpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmKHRoaXMub3B0aW9ucy5kaXNhYmxlZCB8fCB0aGlzLm9wdGlvbnMudHlwZSA9PT0gInN0YXRpYyIpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vV2UgaGF2ZSB0byByZWZyZXNoIHRoZSBpdGVtcyBkYXRhIG9uY2UgZmlyc3QNCgkJdGhpcy5fcmVmcmVzaEl0ZW1zKGV2ZW50KTsNCg0KCQkvL0ZpbmQgb3V0IGlmIHRoZSBjbGlja2VkIG5vZGUgKG9yIG9uZSBvZiBpdHMgcGFyZW50cykgaXMgYSBhY3R1YWwgaXRlbSBpbiB0aGlzLml0ZW1zDQoJCSQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCWlmKCQuZGF0YSh0aGlzLCB0aGF0LndpZGdldE5hbWUgKyAiLWl0ZW0iKSA9PT0gdGhhdCkgew0KCQkJCWN1cnJlbnRJdGVtID0gJCh0aGlzKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0pOw0KCQlpZigkLmRhdGEoZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLWl0ZW0iKSA9PT0gdGhhdCkgew0KCQkJY3VycmVudEl0ZW0gPSAkKGV2ZW50LnRhcmdldCk7DQoJCX0NCg0KCQlpZighY3VycmVudEl0ZW0pIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQlpZih0aGlzLm9wdGlvbnMuaGFuZGxlICYmICFvdmVycmlkZUhhbmRsZSkgew0KCQkJJCh0aGlzLm9wdGlvbnMuaGFuZGxlLCBjdXJyZW50SXRlbSkuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCWlmKHRoaXMgPT09IGV2ZW50LnRhcmdldCkgew0KCQkJCQl2YWxpZEhhbmRsZSA9IHRydWU7DQoJCQkJfQ0KCQkJfSk7DQoJCQlpZighdmFsaWRIYW5kbGUpIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmN1cnJlbnRJdGVtID0gY3VycmVudEl0ZW07DQoJCXRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCk7DQoJCXJldHVybiB0cnVlOw0KDQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbihldmVudCwgb3ZlcnJpZGVIYW5kbGUsIG5vQWN0aXZhdGlvbikgew0KDQoJCXZhciBpLCBib2R5LA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLmN1cnJlbnRDb250YWluZXIgPSB0aGlzOw0KDQoJCS8vV2Ugb25seSBuZWVkIHRvIGNhbGwgcmVmcmVzaFBvc2l0aW9ucywgYmVjYXVzZSB0aGUgcmVmcmVzaEl0ZW1zIGNhbGwgaGFzIGJlZW4gbW92ZWQgdG8gbW91c2VDYXB0dXJlDQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KDQoJCS8vQ3JlYXRlIGFuZCBhcHBlbmQgdGhlIHZpc2libGUgaGVscGVyDQoJCXRoaXMuaGVscGVyID0gdGhpcy5fY3JlYXRlSGVscGVyKGV2ZW50KTsNCg0KCQkvL0NhY2hlIHRoZSBoZWxwZXIgc2l6ZQ0KCQl0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCk7DQoNCgkJLyoNCgkJICogLSBQb3NpdGlvbiBnZW5lcmF0aW9uIC0NCgkJICogVGhpcyBibG9jayBnZW5lcmF0ZXMgZXZlcnl0aGluZyBwb3NpdGlvbiByZWxhdGVkIC0gaXQncyB0aGUgY29yZSBvZiBkcmFnZ2FibGVzLg0KCQkgKi8NCg0KCQkvL0NhY2hlIHRoZSBtYXJnaW5zIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCXRoaXMuX2NhY2hlTWFyZ2lucygpOw0KDQoJCS8vR2V0IHRoZSBuZXh0IHNjcm9sbGluZyBwYXJlbnQNCgkJdGhpcy5zY3JvbGxQYXJlbnQgPSB0aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKTsNCg0KCQkvL1RoZSBlbGVtZW50J3MgYWJzb2x1dGUgcG9zaXRpb24gb24gdGhlIHBhZ2UgbWludXMgbWFyZ2lucw0KCQl0aGlzLm9mZnNldCA9IHRoaXMuY3VycmVudEl0ZW0ub2Zmc2V0KCk7DQoJCXRoaXMub2Zmc2V0ID0gew0KCQkJdG9wOiB0aGlzLm9mZnNldC50b3AgLSB0aGlzLm1hcmdpbnMudG9wLA0KCQkJbGVmdDogdGhpcy5vZmZzZXQubGVmdCAtIHRoaXMubWFyZ2lucy5sZWZ0DQoJCX07DQoNCgkJJC5leHRlbmQodGhpcy5vZmZzZXQsIHsNCgkJCWNsaWNrOiB7IC8vV2hlcmUgdGhlIGNsaWNrIGhhcHBlbmVkLCByZWxhdGl2ZSB0byB0aGUgZWxlbWVudA0KCQkJCWxlZnQ6IGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQubGVmdCwNCgkJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQudG9wDQoJCQl9LA0KCQkJcGFyZW50OiB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSwNCgkJCXJlbGF0aXZlOiB0aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpIC8vVGhpcyBpcyBhIHJlbGF0aXZlIHRvIGFic29sdXRlIHBvc2l0aW9uIG1pbnVzIHRoZSBhY3R1YWwgcG9zaXRpb24gY2FsY3VsYXRpb24gLSBvbmx5IHVzZWQgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgaGVscGVyDQoJCX0pOw0KDQoJCS8vIE9ubHkgYWZ0ZXIgd2UgZ290IHRoZSBvZmZzZXQsIHdlIGNhbiBjaGFuZ2UgdGhlIGhlbHBlcidzIHBvc2l0aW9uIHRvIGFic29sdXRlDQoJCS8vIFRPRE86IFN0aWxsIG5lZWQgdG8gZmlndXJlIG91dCBhIHdheSB0byBtYWtlIHJlbGF0aXZlIHNvcnRpbmcgcG9zc2libGUNCgkJdGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpOw0KCQl0aGlzLmNzc1Bvc2l0aW9uID0gdGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIpOw0KDQoJCS8vR2VuZXJhdGUgdGhlIG9yaWdpbmFsIHBvc2l0aW9uDQoJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMuX2dlbmVyYXRlUG9zaXRpb24oZXZlbnQpOw0KCQl0aGlzLm9yaWdpbmFsUGFnZVggPSBldmVudC5wYWdlWDsNCgkJdGhpcy5vcmlnaW5hbFBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy9BZGp1c3QgdGhlIG1vdXNlIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgaGVscGVyIGlmICJjdXJzb3JBdCIgaXMgc3VwcGxpZWQNCgkJKG8uY3Vyc29yQXQgJiYgdGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcihvLmN1cnNvckF0KSk7DQoNCgkJLy9DYWNoZSB0aGUgZm9ybWVyIERPTSBwb3NpdGlvbg0KCQl0aGlzLmRvbVBvc2l0aW9uID0geyBwcmV2OiB0aGlzLmN1cnJlbnRJdGVtLnByZXYoKVswXSwgcGFyZW50OiB0aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpWzBdIH07DQoNCgkJLy9JZiB0aGUgaGVscGVyIGlzIG5vdCB0aGUgb3JpZ2luYWwsIGhpZGUgdGhlIG9yaWdpbmFsIHNvIGl0J3Mgbm90IHBsYXlpbmcgYW55IHJvbGUgZHVyaW5nIHRoZSBkcmFnLCB3b24ndCBjYXVzZSBhbnl0aGluZyBiYWQgdGhpcyB3YXkNCgkJaWYodGhpcy5oZWxwZXJbMF0gIT09IHRoaXMuY3VycmVudEl0ZW1bMF0pIHsNCgkJCXRoaXMuY3VycmVudEl0ZW0uaGlkZSgpOw0KCQl9DQoNCgkJLy9DcmVhdGUgdGhlIHBsYWNlaG9sZGVyDQoJCXRoaXMuX2NyZWF0ZVBsYWNlaG9sZGVyKCk7DQoNCgkJLy9TZXQgYSBjb250YWlubWVudCBpZiBnaXZlbiBpbiB0aGUgb3B0aW9ucw0KCQlpZihvLmNvbnRhaW5tZW50KSB7DQoJCQl0aGlzLl9zZXRDb250YWlubWVudCgpOw0KCQl9DQoNCgkJaWYoIG8uY3Vyc29yICYmIG8uY3Vyc29yICE9PSAiYXV0byIgKSB7IC8vIGN1cnNvciBvcHRpb24NCgkJCWJvZHkgPSB0aGlzLmRvY3VtZW50LmZpbmQoICJib2R5IiApOw0KDQoJCQkvLyBzdXBwb3J0OiBJRQ0KCQkJdGhpcy5zdG9yZWRDdXJzb3IgPSBib2R5LmNzcyggImN1cnNvciIgKTsNCgkJCWJvZHkuY3NzKCAiY3Vyc29yIiwgby5jdXJzb3IgKTsNCg0KCQkJdGhpcy5zdG9yZWRTdHlsZXNoZWV0ID0gJCggIjxzdHlsZT4qeyBjdXJzb3I6ICIrby5jdXJzb3IrIiAhaW1wb3J0YW50OyB9PC9zdHlsZT4iICkuYXBwZW5kVG8oIGJvZHkgKTsNCgkJfQ0KDQoJCWlmKG8ub3BhY2l0eSkgeyAvLyBvcGFjaXR5IG9wdGlvbg0KCQkJaWYgKHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIpKSB7DQoJCQkJdGhpcy5fc3RvcmVkT3BhY2l0eSA9IHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIpOw0KCQkJfQ0KCQkJdGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5Iiwgby5vcGFjaXR5KTsNCgkJfQ0KDQoJCWlmKG8uekluZGV4KSB7IC8vIHpJbmRleCBvcHRpb24NCgkJCWlmICh0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpKSB7DQoJCQkJdGhpcy5fc3RvcmVkWkluZGV4ID0gdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyLmNzcygiekluZGV4Iiwgby56SW5kZXgpOw0KCQl9DQoNCgkJLy9QcmVwYXJlIHNjcm9sbGluZw0KCQlpZih0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gdGhpcy5kb2N1bWVudFswXSAmJiB0aGlzLnNjcm9sbFBhcmVudFswXS50YWdOYW1lICE9PSAiSFRNTCIpIHsNCgkJCXRoaXMub3ZlcmZsb3dPZmZzZXQgPSB0aGlzLnNjcm9sbFBhcmVudC5vZmZzZXQoKTsNCgkJfQ0KDQoJCS8vQ2FsbCBjYWxsYmFja3MNCgkJdGhpcy5fdHJpZ2dlcigic3RhcnQiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkpOw0KDQoJCS8vUmVjYWNoZSB0aGUgaGVscGVyIHNpemUNCgkJaWYoIXRoaXMuX3ByZXNlcnZlSGVscGVyUHJvcG9ydGlvbnMpIHsNCgkJCXRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKTsNCgkJfQ0KDQoNCgkJLy9Qb3N0ICJhY3RpdmF0ZSIgZXZlbnRzIHRvIHBvc3NpYmxlIGNvbnRhaW5lcnMNCgkJaWYoICFub0FjdGl2YXRpb24gKSB7DQoJCQlmb3IgKCBpID0gdGhpcy5jb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KCQkJCXRoaXMuY29udGFpbmVyc1sgaSBdLl90cmlnZ2VyKCAiYWN0aXZhdGUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCB0aGlzICkgKTsNCgkJCX0NCgkJfQ0KDQoJCS8vUHJlcGFyZSBwb3NzaWJsZSBkcm9wcGFibGVzDQoJCWlmKCQudWkuZGRtYW5hZ2VyKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5jdXJyZW50ID0gdGhpczsNCgkJfQ0KDQoJCWlmICgkLnVpLmRkbWFuYWdlciAmJiAhby5kcm9wQmVoYXZpb3VyKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLCBldmVudCk7DQoJCX0NCg0KCQl0aGlzLmRyYWdnaW5nID0gdHJ1ZTsNCg0KCQl0aGlzLmhlbHBlci5hZGRDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7DQoJCXRoaXMuX21vdXNlRHJhZyhldmVudCk7IC8vRXhlY3V0ZSB0aGUgZHJhZyBvbmNlIC0gdGhpcyBjYXVzZXMgdGhlIGhlbHBlciBub3QgdG8gYmUgdmlzaWJsZSBiZWZvcmUgZ2V0dGluZyBpdHMgY29ycmVjdCBwb3NpdGlvbg0KCQlyZXR1cm4gdHJ1ZTsNCg0KCX0sDQoNCglfbW91c2VEcmFnOiBmdW5jdGlvbihldmVudCkgew0KCQl2YXIgaSwgaXRlbSwgaXRlbUVsZW1lbnQsIGludGVyc2VjdGlvbiwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlzY3JvbGxlZCA9IGZhbHNlOw0KDQoJCS8vQ29tcHV0ZSB0aGUgaGVscGVycyBwb3NpdGlvbg0KCQl0aGlzLnBvc2l0aW9uID0gdGhpcy5fZ2VuZXJhdGVQb3NpdGlvbihldmVudCk7DQoJCXRoaXMucG9zaXRpb25BYnMgPSB0aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKTsNCg0KCQlpZiAoIXRoaXMubGFzdFBvc2l0aW9uQWJzKSB7DQoJCQl0aGlzLmxhc3RQb3NpdGlvbkFicyA9IHRoaXMucG9zaXRpb25BYnM7DQoJCX0NCg0KCQkvL0RvIHNjcm9sbGluZw0KCQlpZih0aGlzLm9wdGlvbnMuc2Nyb2xsKSB7DQoJCQlpZih0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gdGhpcy5kb2N1bWVudFswXSAmJiB0aGlzLnNjcm9sbFBhcmVudFswXS50YWdOYW1lICE9PSAiSFRNTCIpIHsNCg0KCQkJCWlmKCh0aGlzLm92ZXJmbG93T2Zmc2V0LnRvcCArIHRoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodCkgLSBldmVudC5wYWdlWSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJdGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wID0gc2Nyb2xsZWQgPSB0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3AgKyBvLnNjcm9sbFNwZWVkOw0KCQkJCX0gZWxzZSBpZihldmVudC5wYWdlWSAtIHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxUb3AgPSBzY3JvbGxlZCA9IHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCAtIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfQ0KDQoJCQkJaWYoKHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCArIHRoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldFdpZHRoKSAtIGV2ZW50LnBhZ2VYIDwgby5zY3JvbGxTZW5zaXRpdml0eSkgew0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0ID0gc2Nyb2xsZWQgPSB0aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0ICsgby5zY3JvbGxTcGVlZDsNCgkJCQl9IGVsc2UgaWYoZXZlbnQucGFnZVggLSB0aGlzLm92ZXJmbG93T2Zmc2V0LmxlZnQgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9IHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQgLSBvLnNjcm9sbFNwZWVkOw0KCQkJCX0NCg0KCQkJfSBlbHNlIHsNCg0KCQkJCWlmKGV2ZW50LnBhZ2VZIC0gdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkpIHsNCgkJCQkJc2Nyb2xsZWQgPSB0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCh0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCgpIC0gby5zY3JvbGxTcGVlZCk7DQoJCQkJfSBlbHNlIGlmKHRoaXMud2luZG93LmhlaWdodCgpIC0gKGV2ZW50LnBhZ2VZIC0gdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSArIG8uc2Nyb2xsU3BlZWQpOw0KCQkJCX0NCg0KCQkJCWlmKGV2ZW50LnBhZ2VYIC0gdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpIC0gby5zY3JvbGxTcGVlZCk7DQoJCQkJfSBlbHNlIGlmKHRoaXMud2luZG93LndpZHRoKCkgLSAoZXZlbnQucGFnZVggLSB0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKSkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5KSB7DQoJCQkJCXNjcm9sbGVkID0gdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpICsgby5zY3JvbGxTcGVlZCk7DQoJCQkJfQ0KDQoJCQl9DQoNCgkJCWlmKHNjcm9sbGVkICE9PSBmYWxzZSAmJiAkLnVpLmRkbWFuYWdlciAmJiAhby5kcm9wQmVoYXZpb3VyKSB7DQoJCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcywgZXZlbnQpOw0KCQkJfQ0KCQl9DQoNCgkJLy9SZWdlbmVyYXRlIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiB1c2VkIGZvciBwb3NpdGlvbiBjaGVja3MNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpOw0KDQoJCS8vU2V0IHRoZSBoZWxwZXIgcG9zaXRpb24NCgkJaWYoIXRoaXMub3B0aW9ucy5heGlzIHx8IHRoaXMub3B0aW9ucy5heGlzICE9PSAieSIpIHsNCgkJCXRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQgPSB0aGlzLnBvc2l0aW9uLmxlZnQrInB4IjsNCgkJfQ0KCQlpZighdGhpcy5vcHRpb25zLmF4aXMgfHwgdGhpcy5vcHRpb25zLmF4aXMgIT09ICJ4Iikgew0KCQkJdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wID0gdGhpcy5wb3NpdGlvbi50b3ArInB4IjsNCgkJfQ0KDQoJCS8vUmVhcnJhbmdlDQoJCWZvciAoaSA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCg0KCQkJLy9DYWNoZSB2YXJpYWJsZXMgYW5kIGludGVyc2VjdGlvbiwgY29udGludWUgaWYgbm8gaW50ZXJzZWN0aW9uDQoJCQlpdGVtID0gdGhpcy5pdGVtc1tpXTsNCgkJCWl0ZW1FbGVtZW50ID0gaXRlbS5pdGVtWzBdOw0KCQkJaW50ZXJzZWN0aW9uID0gdGhpcy5faW50ZXJzZWN0c1dpdGhQb2ludGVyKGl0ZW0pOw0KCQkJaWYgKCFpbnRlcnNlY3Rpb24pIHsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJLy8gT25seSBwdXQgdGhlIHBsYWNlaG9sZGVyIGluc2lkZSB0aGUgY3VycmVudCBDb250YWluZXIsIHNraXAgYWxsDQoJCQkvLyBpdGVtcyBmcm9tIG90aGVyIGNvbnRhaW5lcnMuIFRoaXMgd29ya3MgYmVjYXVzZSB3aGVuIG1vdmluZw0KCQkJLy8gYW4gaXRlbSBmcm9tIG9uZSBjb250YWluZXIgdG8gYW5vdGhlciB0aGUNCgkJCS8vIGN1cnJlbnRDb250YWluZXIgaXMgc3dpdGNoZWQgYmVmb3JlIHRoZSBwbGFjZWhvbGRlciBpcyBtb3ZlZC4NCgkJCS8vDQoJCQkvLyBXaXRob3V0IHRoaXMsIG1vdmluZyBpdGVtcyBpbiAic3ViLXNvcnRhYmxlcyIgY2FuIGNhdXNlDQoJCQkvLyB0aGUgcGxhY2Vob2xkZXIgdG8gaml0dGVyIGJldHdlZW4gdGhlIG91dGVyIGFuZCBpbm5lciBjb250YWluZXIuDQoJCQlpZiAoaXRlbS5pbnN0YW5jZSAhPT0gdGhpcy5jdXJyZW50Q29udGFpbmVyKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCS8vIGNhbm5vdCBpbnRlcnNlY3Qgd2l0aCBpdHNlbGYNCgkJCS8vIG5vIHVzZWxlc3MgYWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBkb25lIGJlZm9yZQ0KCQkJLy8gbm8gYWN0aW9uIGlmIHRoZSBpdGVtIG1vdmVkIGlzIHRoZSBwYXJlbnQgb2YgdGhlIGl0ZW0gY2hlY2tlZA0KCQkJaWYgKGl0ZW1FbGVtZW50ICE9PSB0aGlzLmN1cnJlbnRJdGVtWzBdICYmDQoJCQkJdGhpcy5wbGFjZWhvbGRlcltpbnRlcnNlY3Rpb24gPT09IDEgPyAibmV4dCIgOiAicHJldiJdKClbMF0gIT09IGl0ZW1FbGVtZW50ICYmDQoJCQkJISQuY29udGFpbnModGhpcy5wbGFjZWhvbGRlclswXSwgaXRlbUVsZW1lbnQpICYmDQoJCQkJKHRoaXMub3B0aW9ucy50eXBlID09PSAic2VtaS1keW5hbWljIiA/ICEkLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSwgaXRlbUVsZW1lbnQpIDogdHJ1ZSkNCgkJCSkgew0KDQoJCQkJdGhpcy5kaXJlY3Rpb24gPSBpbnRlcnNlY3Rpb24gPT09IDEgPyAiZG93biIgOiAidXAiOw0KDQoJCQkJaWYgKHRoaXMub3B0aW9ucy50b2xlcmFuY2UgPT09ICJwb2ludGVyIiB8fCB0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKGl0ZW0pKSB7DQoJCQkJCXRoaXMuX3JlYXJyYW5nZShldmVudCwgaXRlbSk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KDQoJCQkJdGhpcy5fdHJpZ2dlcigiY2hhbmdlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpKTsNCgkJCQlicmVhazsNCgkJCX0NCgkJfQ0KDQoJCS8vUG9zdCBldmVudHMgdG8gY29udGFpbmVycw0KCQl0aGlzLl9jb250YWN0Q29udGFpbmVycyhldmVudCk7DQoNCgkJLy9JbnRlcmNvbm5lY3Qgd2l0aCBkcm9wcGFibGVzDQoJCWlmKCQudWkuZGRtYW5hZ2VyKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCS8vQ2FsbCBjYWxsYmFja3MNCgkJdGhpcy5fdHJpZ2dlcigic29ydCIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7DQoNCgkJdGhpcy5sYXN0UG9zaXRpb25BYnMgPSB0aGlzLnBvc2l0aW9uQWJzOw0KCQlyZXR1cm4gZmFsc2U7DQoNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oZXZlbnQsIG5vUHJvcGFnYXRpb24pIHsNCg0KCQlpZighZXZlbnQpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vSWYgd2UgYXJlIHVzaW5nIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciBhYm91dCB0aGUgZHJvcA0KCQlpZiAoJC51aS5kZG1hbmFnZXIgJiYgIXRoaXMub3B0aW9ucy5kcm9wQmVoYXZpb3VyKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcm9wKHRoaXMsIGV2ZW50KTsNCgkJfQ0KDQoJCWlmKHRoaXMub3B0aW9ucy5yZXZlcnQpIHsNCgkJCXZhciB0aGF0ID0gdGhpcywNCgkJCQljdXIgPSB0aGlzLnBsYWNlaG9sZGVyLm9mZnNldCgpLA0KCQkJCWF4aXMgPSB0aGlzLm9wdGlvbnMuYXhpcywNCgkJCQlhbmltYXRpb24gPSB7fTsNCg0KCQkJaWYgKCAhYXhpcyB8fCBheGlzID09PSAieCIgKSB7DQoJCQkJYW5pbWF0aW9uLmxlZnQgPSBjdXIubGVmdCAtIHRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0IC0gdGhpcy5tYXJnaW5zLmxlZnQgKyAodGhpcy5vZmZzZXRQYXJlbnRbMF0gPT09IHRoaXMuZG9jdW1lbnRbMF0uYm9keSA/IDAgOiB0aGlzLm9mZnNldFBhcmVudFswXS5zY3JvbGxMZWZ0KTsNCgkJCX0NCgkJCWlmICggIWF4aXMgfHwgYXhpcyA9PT0gInkiICkgew0KCQkJCWFuaW1hdGlvbi50b3AgPSBjdXIudG9wIC0gdGhpcy5vZmZzZXQucGFyZW50LnRvcCAtIHRoaXMubWFyZ2lucy50b3AgKyAodGhpcy5vZmZzZXRQYXJlbnRbMF0gPT09IHRoaXMuZG9jdW1lbnRbMF0uYm9keSA/IDAgOiB0aGlzLm9mZnNldFBhcmVudFswXS5zY3JvbGxUb3ApOw0KCQkJfQ0KCQkJdGhpcy5yZXZlcnRpbmcgPSB0cnVlOw0KCQkJJCh0aGlzLmhlbHBlcikuYW5pbWF0ZSggYW5pbWF0aW9uLCBwYXJzZUludCh0aGlzLm9wdGlvbnMucmV2ZXJ0LCAxMCkgfHwgNTAwLCBmdW5jdGlvbigpIHsNCgkJCQl0aGF0Ll9jbGVhcihldmVudCk7DQoJCQl9KTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuX2NsZWFyKGV2ZW50LCBub1Byb3BhZ2F0aW9uKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCgljYW5jZWw6IGZ1bmN0aW9uKCkgew0KDQoJCWlmKHRoaXMuZHJhZ2dpbmcpIHsNCg0KCQkJdGhpcy5fbW91c2VVcCh7IHRhcmdldDogbnVsbCB9KTsNCg0KCQkJaWYodGhpcy5vcHRpb25zLmhlbHBlciA9PT0gIm9yaWdpbmFsIikgew0KCQkJCXRoaXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLmN1cnJlbnRJdGVtLnNob3coKTsNCgkJCX0NCg0KCQkJLy9Qb3N0IGRlYWN0aXZhdGluZyBldmVudHMgdG8gY29udGFpbmVycw0KCQkJZm9yICh2YXIgaSA9IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQkJdGhpcy5jb250YWluZXJzW2ldLl90cmlnZ2VyKCJkZWFjdGl2YXRlIiwgbnVsbCwgdGhpcy5fdWlIYXNoKHRoaXMpKTsNCgkJCQlpZih0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3Zlcikgew0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uX3RyaWdnZXIoIm91dCIsIG51bGwsIHRoaXMuX3VpSGFzaCh0aGlzKSk7DQoJCQkJCXRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KDQoJCWlmICh0aGlzLnBsYWNlaG9sZGVyKSB7DQoJCQkvLyQodGhpcy5wbGFjZWhvbGRlclswXSkucmVtb3ZlKCk7IHdvdWxkIGhhdmUgYmVlbiB0aGUgalF1ZXJ5IHdheSAtIHVuZm9ydHVuYXRlbHksIGl0IHVuYmluZHMgQUxMIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCBub2RlIQ0KCQkJaWYodGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlKSB7DQoJCQkJdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pOw0KCQkJfQ0KCQkJaWYodGhpcy5vcHRpb25zLmhlbHBlciAhPT0gIm9yaWdpbmFsIiAmJiB0aGlzLmhlbHBlciAmJiB0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlKSB7DQoJCQkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoJCQl9DQoNCgkJCSQuZXh0ZW5kKHRoaXMsIHsNCgkJCQloZWxwZXI6IG51bGwsDQoJCQkJZHJhZ2dpbmc6IGZhbHNlLA0KCQkJCXJldmVydGluZzogZmFsc2UsDQoJCQkJX25vRmluYWxTb3J0OiBudWxsDQoJCQl9KTsNCg0KCQkJaWYodGhpcy5kb21Qb3NpdGlvbi5wcmV2KSB7DQoJCQkJJCh0aGlzLmRvbVBvc2l0aW9uLnByZXYpLmFmdGVyKHRoaXMuY3VycmVudEl0ZW0pOw0KCQkJfSBlbHNlIHsNCgkJCQkkKHRoaXMuZG9tUG9zaXRpb24ucGFyZW50KS5wcmVwZW5kKHRoaXMuY3VycmVudEl0ZW0pOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoNCgl9LA0KDQoJc2VyaWFsaXplOiBmdW5jdGlvbihvKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeShvICYmIG8uY29ubmVjdGVkKSwNCgkJCXN0ciA9IFtdOw0KCQlvID0gbyB8fCB7fTsNCg0KCQkkKGl0ZW1zKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIHJlcyA9ICgkKG8uaXRlbSB8fCB0aGlzKS5hdHRyKG8uYXR0cmlidXRlIHx8ICJpZCIpIHx8ICIiKS5tYXRjaChvLmV4cHJlc3Npb24gfHwgKC8oLispW1wtPV9dKC4rKS8pKTsNCgkJCWlmIChyZXMpIHsNCgkJCQlzdHIucHVzaCgoby5rZXkgfHwgcmVzWzFdKyJbXSIpKyI9Iisoby5rZXkgJiYgby5leHByZXNzaW9uID8gcmVzWzFdIDogcmVzWzJdKSk7DQoJCQl9DQoJCX0pOw0KDQoJCWlmKCFzdHIubGVuZ3RoICYmIG8ua2V5KSB7DQoJCQlzdHIucHVzaChvLmtleSArICI9Iik7DQoJCX0NCg0KCQlyZXR1cm4gc3RyLmpvaW4oIiYiKTsNCg0KCX0sDQoNCgl0b0FycmF5OiBmdW5jdGlvbihvKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeShvICYmIG8uY29ubmVjdGVkKSwNCgkJCXJldCA9IFtdOw0KDQoJCW8gPSBvIHx8IHt9Ow0KDQoJCWl0ZW1zLmVhY2goZnVuY3Rpb24oKSB7IHJldC5wdXNoKCQoby5pdGVtIHx8IHRoaXMpLmF0dHIoby5hdHRyaWJ1dGUgfHwgImlkIikgfHwgIiIpOyB9KTsNCgkJcmV0dXJuIHJldDsNCg0KCX0sDQoNCgkvKiBCZSBjYXJlZnVsIHdpdGggdGhlIGZvbGxvd2luZyBjb3JlIGZ1bmN0aW9ucyAqLw0KCV9pbnRlcnNlY3RzV2l0aDogZnVuY3Rpb24oaXRlbSkgew0KDQoJCXZhciB4MSA9IHRoaXMucG9zaXRpb25BYnMubGVmdCwNCgkJCXgyID0geDEgKyB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLA0KCQkJeTEgPSB0aGlzLnBvc2l0aW9uQWJzLnRvcCwNCgkJCXkyID0geTEgKyB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCwNCgkJCWwgPSBpdGVtLmxlZnQsDQoJCQlyID0gbCArIGl0ZW0ud2lkdGgsDQoJCQl0ID0gaXRlbS50b3AsDQoJCQliID0gdCArIGl0ZW0uaGVpZ2h0LA0KCQkJZHlDbGljayA9IHRoaXMub2Zmc2V0LmNsaWNrLnRvcCwNCgkJCWR4Q2xpY2sgPSB0aGlzLm9mZnNldC5jbGljay5sZWZ0LA0KCQkJaXNPdmVyRWxlbWVudEhlaWdodCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ4IiApIHx8ICggKCB5MSArIGR5Q2xpY2sgKSA+IHQgJiYgKCB5MSArIGR5Q2xpY2sgKSA8IGIgKSwNCgkJCWlzT3ZlckVsZW1lbnRXaWR0aCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ5IiApIHx8ICggKCB4MSArIGR4Q2xpY2sgKSA+IGwgJiYgKCB4MSArIGR4Q2xpY2sgKSA8IHIgKSwNCgkJCWlzT3ZlckVsZW1lbnQgPSBpc092ZXJFbGVtZW50SGVpZ2h0ICYmIGlzT3ZlckVsZW1lbnRXaWR0aDsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy50b2xlcmFuY2UgPT09ICJwb2ludGVyIiB8fA0KCQkJdGhpcy5vcHRpb25zLmZvcmNlUG9pbnRlckZvckNvbnRhaW5lcnMgfHwNCgkJCSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlICE9PSAicG9pbnRlciIgJiYgdGhpcy5oZWxwZXJQcm9wb3J0aW9uc1t0aGlzLmZsb2F0aW5nID8gIndpZHRoIiA6ICJoZWlnaHQiXSA+IGl0ZW1bdGhpcy5mbG9hdGluZyA/ICJ3aWR0aCIgOiAiaGVpZ2h0Il0pDQoJCSkgew0KCQkJcmV0dXJuIGlzT3ZlckVsZW1lbnQ7DQoJCX0gZWxzZSB7DQoNCgkJCXJldHVybiAobCA8IHgxICsgKHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLyAyKSAmJiAvLyBSaWdodCBIYWxmDQoJCQkJeDIgLSAodGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAvIDIpIDwgciAmJiAvLyBMZWZ0IEhhbGYNCgkJCQl0IDwgeTEgKyAodGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyKSAmJiAvLyBCb3R0b20gSGFsZg0KCQkJCXkyIC0gKHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC8gMikgPCBiICk7IC8vIFRvcCBIYWxmDQoNCgkJfQ0KCX0sDQoNCglfaW50ZXJzZWN0c1dpdGhQb2ludGVyOiBmdW5jdGlvbihpdGVtKSB7DQoNCgkJdmFyIGlzT3ZlckVsZW1lbnRIZWlnaHQgPSAodGhpcy5vcHRpb25zLmF4aXMgPT09ICJ4IikgfHwgdGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLnRvcCArIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCwgaXRlbS50b3AsIGl0ZW0uaGVpZ2h0KSwNCgkJCWlzT3ZlckVsZW1lbnRXaWR0aCA9ICh0aGlzLm9wdGlvbnMuYXhpcyA9PT0gInkiKSB8fCB0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMubGVmdCArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQsIGl0ZW0ubGVmdCwgaXRlbS53aWR0aCksDQoJCQlpc092ZXJFbGVtZW50ID0gaXNPdmVyRWxlbWVudEhlaWdodCAmJiBpc092ZXJFbGVtZW50V2lkdGgsDQoJCQl2ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLA0KCQkJaG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7DQoNCgkJaWYgKCFpc092ZXJFbGVtZW50KSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlyZXR1cm4gdGhpcy5mbG9hdGluZyA/DQoJCQkoICgoaG9yaXpvbnRhbERpcmVjdGlvbiAmJiBob3Jpem9udGFsRGlyZWN0aW9uID09PSAicmlnaHQiKSB8fCB2ZXJ0aWNhbERpcmVjdGlvbiA9PT0gImRvd24iKSA/IDIgOiAxICkNCgkJCTogKCB2ZXJ0aWNhbERpcmVjdGlvbiAmJiAodmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiA/IDIgOiAxKSApOw0KDQoJfSwNCg0KCV9pbnRlcnNlY3RzV2l0aFNpZGVzOiBmdW5jdGlvbihpdGVtKSB7DQoNCgkJdmFyIGlzT3ZlckJvdHRvbUhhbGYgPSB0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wLCBpdGVtLnRvcCArIChpdGVtLmhlaWdodC8yKSwgaXRlbS5oZWlnaHQpLA0KCQkJaXNPdmVyUmlnaHRIYWxmID0gdGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQgKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0LCBpdGVtLmxlZnQgKyAoaXRlbS53aWR0aC8yKSwgaXRlbS53aWR0aCksDQoJCQl2ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLA0KCQkJaG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7DQoNCgkJaWYgKHRoaXMuZmxvYXRpbmcgJiYgaG9yaXpvbnRhbERpcmVjdGlvbikgew0KCQkJcmV0dXJuICgoaG9yaXpvbnRhbERpcmVjdGlvbiA9PT0gInJpZ2h0IiAmJiBpc092ZXJSaWdodEhhbGYpIHx8IChob3Jpem9udGFsRGlyZWN0aW9uID09PSAibGVmdCIgJiYgIWlzT3ZlclJpZ2h0SGFsZikpOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIHZlcnRpY2FsRGlyZWN0aW9uICYmICgodmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiAmJiBpc092ZXJCb3R0b21IYWxmKSB8fCAodmVydGljYWxEaXJlY3Rpb24gPT09ICJ1cCIgJiYgIWlzT3ZlckJvdHRvbUhhbGYpKTsNCgkJfQ0KDQoJfSwNCg0KCV9nZXREcmFnVmVydGljYWxEaXJlY3Rpb246IGZ1bmN0aW9uKCkgew0KCQl2YXIgZGVsdGEgPSB0aGlzLnBvc2l0aW9uQWJzLnRvcCAtIHRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDsNCgkJcmV0dXJuIGRlbHRhICE9PSAwICYmIChkZWx0YSA+IDAgPyAiZG93biIgOiAidXAiKTsNCgl9LA0KDQoJX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIGRlbHRhID0gdGhpcy5wb3NpdGlvbkFicy5sZWZ0IC0gdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDsNCgkJcmV0dXJuIGRlbHRhICE9PSAwICYmIChkZWx0YSA+IDAgPyAicmlnaHQiIDogImxlZnQiKTsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdGhpcy5fcmVmcmVzaEl0ZW1zKGV2ZW50KTsNCgkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJX2Nvbm5lY3RXaXRoOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXJldHVybiBvcHRpb25zLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcgPyBbb3B0aW9ucy5jb25uZWN0V2l0aF0gOiBvcHRpb25zLmNvbm5lY3RXaXRoOw0KCX0sDQoNCglfZ2V0SXRlbXNBc2pRdWVyeTogZnVuY3Rpb24oY29ubmVjdGVkKSB7DQoNCgkJdmFyIGksIGosIGN1ciwgaW5zdCwNCgkJCWl0ZW1zID0gW10sDQoJCQlxdWVyaWVzID0gW10sDQoJCQljb25uZWN0V2l0aCA9IHRoaXMuX2Nvbm5lY3RXaXRoKCk7DQoNCgkJaWYoY29ubmVjdFdpdGggJiYgY29ubmVjdGVkKSB7DQoJCQlmb3IgKGkgPSBjb25uZWN0V2l0aC5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQkJY3VyID0gJChjb25uZWN0V2l0aFtpXSwgdGhpcy5kb2N1bWVudFswXSk7DQoJCQkJZm9yICggaiA9IGN1ci5sZW5ndGggLSAxOyBqID49IDA7IGotLSl7DQoJCQkJCWluc3QgPSAkLmRhdGEoY3VyW2pdLCB0aGlzLndpZGdldEZ1bGxOYW1lKTsNCgkJCQkJaWYoaW5zdCAmJiBpbnN0ICE9PSB0aGlzICYmICFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQpIHsNCgkJCQkJCXF1ZXJpZXMucHVzaChbJC5pc0Z1bmN0aW9uKGluc3Qub3B0aW9ucy5pdGVtcykgPyBpbnN0Lm9wdGlvbnMuaXRlbXMuY2FsbChpbnN0LmVsZW1lbnQpIDogJChpbnN0Lm9wdGlvbnMuaXRlbXMsIGluc3QuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSwgaW5zdF0pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJcXVlcmllcy5wdXNoKFskLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKSA/IHRoaXMub3B0aW9ucy5pdGVtcy5jYWxsKHRoaXMuZWxlbWVudCwgbnVsbCwgeyBvcHRpb25zOiB0aGlzLm9wdGlvbnMsIGl0ZW06IHRoaXMuY3VycmVudEl0ZW0gfSkgOiAkKHRoaXMub3B0aW9ucy5pdGVtcywgdGhpcy5lbGVtZW50KS5ub3QoIi51aS1zb3J0YWJsZS1oZWxwZXIiKS5ub3QoIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIpLCB0aGlzXSk7DQoNCgkJZnVuY3Rpb24gYWRkSXRlbXMoKSB7DQoJCQlpdGVtcy5wdXNoKCB0aGlzICk7DQoJCX0NCgkJZm9yIChpID0gcXVlcmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQlxdWVyaWVzW2ldWzBdLmVhY2goIGFkZEl0ZW1zICk7DQoJCX0NCg0KCQlyZXR1cm4gJChpdGVtcyk7DQoNCgl9LA0KDQoJX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgbGlzdCA9IHRoaXMuY3VycmVudEl0ZW0uZmluZCgiOmRhdGEoIiArIHRoaXMud2lkZ2V0TmFtZSArICItaXRlbSkiKTsNCg0KCQl0aGlzLml0ZW1zID0gJC5ncmVwKHRoaXMuaXRlbXMsIGZ1bmN0aW9uIChpdGVtKSB7DQoJCQlmb3IgKHZhciBqPTA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7DQoJCQkJaWYobGlzdFtqXSA9PT0gaXRlbS5pdGVtWzBdKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfSk7DQoNCgl9LA0KDQoJX3JlZnJlc2hJdGVtczogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl0aGlzLml0ZW1zID0gW107DQoJCXRoaXMuY29udGFpbmVycyA9IFt0aGlzXTsNCg0KCQl2YXIgaSwgaiwgY3VyLCBpbnN0LCB0YXJnZXREYXRhLCBfcXVlcmllcywgaXRlbSwgcXVlcmllc0xlbmd0aCwNCgkJCWl0ZW1zID0gdGhpcy5pdGVtcywNCgkJCXF1ZXJpZXMgPSBbWyQuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMuaXRlbXMpID8gdGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50WzBdLCBldmVudCwgeyBpdGVtOiB0aGlzLmN1cnJlbnRJdGVtIH0pIDogJCh0aGlzLm9wdGlvbnMuaXRlbXMsIHRoaXMuZWxlbWVudCksIHRoaXNdXSwNCgkJCWNvbm5lY3RXaXRoID0gdGhpcy5fY29ubmVjdFdpdGgoKTsNCg0KCQlpZihjb25uZWN0V2l0aCAmJiB0aGlzLnJlYWR5KSB7IC8vU2hvdWxkbid0IGJlIHJ1biB0aGUgZmlyc3QgdGltZSB0aHJvdWdoIGR1ZSB0byBtYXNzaXZlIHNsb3ctZG93bg0KCQkJZm9yIChpID0gY29ubmVjdFdpdGgubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pew0KCQkJCWN1ciA9ICQoY29ubmVjdFdpdGhbaV0sIHRoaXMuZG9jdW1lbnRbMF0pOw0KCQkJCWZvciAoaiA9IGN1ci5sZW5ndGggLSAxOyBqID49IDA7IGotLSl7DQoJCQkJCWluc3QgPSAkLmRhdGEoY3VyW2pdLCB0aGlzLndpZGdldEZ1bGxOYW1lKTsNCgkJCQkJaWYoaW5zdCAmJiBpbnN0ICE9PSB0aGlzICYmICFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQpIHsNCgkJCQkJCXF1ZXJpZXMucHVzaChbJC5pc0Z1bmN0aW9uKGluc3Qub3B0aW9ucy5pdGVtcykgPyBpbnN0Lm9wdGlvbnMuaXRlbXMuY2FsbChpbnN0LmVsZW1lbnRbMF0sIGV2ZW50LCB7IGl0ZW06IHRoaXMuY3VycmVudEl0ZW0gfSkgOiAkKGluc3Qub3B0aW9ucy5pdGVtcywgaW5zdC5lbGVtZW50KSwgaW5zdF0pOw0KCQkJCQkJdGhpcy5jb250YWluZXJzLnB1c2goaW5zdCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlmb3IgKGkgPSBxdWVyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQoJCQl0YXJnZXREYXRhID0gcXVlcmllc1tpXVsxXTsNCgkJCV9xdWVyaWVzID0gcXVlcmllc1tpXVswXTsNCg0KCQkJZm9yIChqPTAsIHF1ZXJpZXNMZW5ndGggPSBfcXVlcmllcy5sZW5ndGg7IGogPCBxdWVyaWVzTGVuZ3RoOyBqKyspIHsNCgkJCQlpdGVtID0gJChfcXVlcmllc1tqXSk7DQoNCgkJCQlpdGVtLmRhdGEodGhpcy53aWRnZXROYW1lICsgIi1pdGVtIiwgdGFyZ2V0RGF0YSk7IC8vIERhdGEgZm9yIHRhcmdldCBjaGVja2luZyAobW91c2UgbWFuYWdlcikNCg0KCQkJCWl0ZW1zLnB1c2goew0KCQkJCQlpdGVtOiBpdGVtLA0KCQkJCQlpbnN0YW5jZTogdGFyZ2V0RGF0YSwNCgkJCQkJd2lkdGg6IDAsIGhlaWdodDogMCwNCgkJCQkJbGVmdDogMCwgdG9wOiAwDQoJCQkJfSk7DQoJCQl9DQoJCX0NCg0KCX0sDQoNCglyZWZyZXNoUG9zaXRpb25zOiBmdW5jdGlvbihmYXN0KSB7DQoNCgkJLy8gRGV0ZXJtaW5lIHdoZXRoZXIgaXRlbXMgYXJlIGJlaW5nIGRpc3BsYXllZCBob3Jpem9udGFsbHkNCgkJdGhpcy5mbG9hdGluZyA9IHRoaXMuaXRlbXMubGVuZ3RoID8NCgkJCXRoaXMub3B0aW9ucy5heGlzID09PSAieCIgfHwgdGhpcy5faXNGbG9hdGluZyggdGhpcy5pdGVtc1sgMCBdLml0ZW0gKSA6DQoJCQlmYWxzZTsNCg0KCQkvL1RoaXMgaGFzIHRvIGJlIHJlZG9uZSBiZWNhdXNlIGR1ZSB0byB0aGUgaXRlbSBiZWluZyBtb3ZlZCBvdXQvaW50byB0aGUgb2Zmc2V0UGFyZW50LCB0aGUgb2Zmc2V0UGFyZW50J3MgcG9zaXRpb24gd2lsbCBjaGFuZ2UNCgkJaWYodGhpcy5vZmZzZXRQYXJlbnQgJiYgdGhpcy5oZWxwZXIpIHsNCgkJCXRoaXMub2Zmc2V0LnBhcmVudCA9IHRoaXMuX2dldFBhcmVudE9mZnNldCgpOw0KCQl9DQoNCgkJdmFyIGksIGl0ZW0sIHQsIHA7DQoNCgkJZm9yIChpID0gdGhpcy5pdGVtcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQlpdGVtID0gdGhpcy5pdGVtc1tpXTsNCg0KCQkJLy9XZSBpZ25vcmUgY2FsY3VsYXRpbmcgcG9zaXRpb25zIG9mIGFsbCBjb25uZWN0ZWQgY29udGFpbmVycyB3aGVuIHdlJ3JlIG5vdCBvdmVyIHRoZW0NCgkJCWlmKGl0ZW0uaW5zdGFuY2UgIT09IHRoaXMuY3VycmVudENvbnRhaW5lciAmJiB0aGlzLmN1cnJlbnRDb250YWluZXIgJiYgaXRlbS5pdGVtWzBdICE9PSB0aGlzLmN1cnJlbnRJdGVtWzBdKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCXQgPSB0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCA/ICQodGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQsIGl0ZW0uaXRlbSkgOiBpdGVtLml0ZW07DQoNCgkJCWlmICghZmFzdCkgew0KCQkJCWl0ZW0ud2lkdGggPSB0Lm91dGVyV2lkdGgoKTsNCgkJCQlpdGVtLmhlaWdodCA9IHQub3V0ZXJIZWlnaHQoKTsNCgkJCX0NCg0KCQkJcCA9IHQub2Zmc2V0KCk7DQoJCQlpdGVtLmxlZnQgPSBwLmxlZnQ7DQoJCQlpdGVtLnRvcCA9IHAudG9wOw0KCQl9DQoNCgkJaWYodGhpcy5vcHRpb25zLmN1c3RvbSAmJiB0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKSB7DQoJCQl0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzLmNhbGwodGhpcyk7DQoJCX0gZWxzZSB7DQoJCQlmb3IgKGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pew0KCQkJCXAgPSB0aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vZmZzZXQoKTsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUubGVmdCA9IHAubGVmdDsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUudG9wID0gcC50b3A7DQoJCQkJdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLndpZHRoID0gdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnQub3V0ZXJXaWR0aCgpOw0KCQkJCXRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5oZWlnaHQgPSB0aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlckhlaWdodCgpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCV9jcmVhdGVQbGFjZWhvbGRlcjogZnVuY3Rpb24odGhhdCkgew0KCQl0aGF0ID0gdGhhdCB8fCB0aGlzOw0KCQl2YXIgY2xhc3NOYW1lLA0KCQkJbyA9IHRoYXQub3B0aW9uczsNCg0KCQlpZighby5wbGFjZWhvbGRlciB8fCBvLnBsYWNlaG9sZGVyLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHsNCgkJCWNsYXNzTmFtZSA9IG8ucGxhY2Vob2xkZXI7DQoJCQlvLnBsYWNlaG9sZGVyID0gew0KCQkJCWVsZW1lbnQ6IGZ1bmN0aW9uKCkgew0KDQoJCQkJCXZhciBub2RlTmFtZSA9IHRoYXQuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwNCgkJCQkJCWVsZW1lbnQgPSAkKCAiPCIgKyBub2RlTmFtZSArICI+IiwgdGhhdC5kb2N1bWVudFswXSApDQoJCQkJCQkJLmFkZENsYXNzKGNsYXNzTmFtZSB8fCB0aGF0LmN1cnJlbnRJdGVtWzBdLmNsYXNzTmFtZSsiIHVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIikNCgkJCQkJCQkucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOw0KDQoJCQkJCWlmICggbm9kZU5hbWUgPT09ICJ0Ym9keSIgKSB7DQoJCQkJCQl0aGF0Ll9jcmVhdGVUclBsYWNlaG9sZGVyKA0KCQkJCQkJCXRoYXQuY3VycmVudEl0ZW0uZmluZCggInRyIiApLmVxKCAwICksDQoJCQkJCQkJJCggIjx0cj4iLCB0aGF0LmRvY3VtZW50WyAwIF0gKS5hcHBlbmRUbyggZWxlbWVudCApDQoJCQkJCQkpOw0KCQkJCQl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gInRyIiApIHsNCgkJCQkJCXRoYXQuX2NyZWF0ZVRyUGxhY2Vob2xkZXIoIHRoYXQuY3VycmVudEl0ZW0sIGVsZW1lbnQgKTsNCgkJCQkJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJpbWciICkgew0KCQkJCQkJZWxlbWVudC5hdHRyKCAic3JjIiwgdGhhdC5jdXJyZW50SXRlbS5hdHRyKCAic3JjIiApICk7DQoJCQkJCX0NCg0KCQkJCQlpZiAoICFjbGFzc05hbWUgKSB7DQoJCQkJCQllbGVtZW50LmNzcyggInZpc2liaWxpdHkiLCAiaGlkZGVuIiApOw0KCQkJCQl9DQoNCgkJCQkJcmV0dXJuIGVsZW1lbnQ7DQoJCQkJfSwNCgkJCQl1cGRhdGU6IGZ1bmN0aW9uKGNvbnRhaW5lciwgcCkgew0KDQoJCQkJCS8vIDEuIElmIGEgY2xhc3NOYW1lIGlzIHNldCBhcyAncGxhY2Vob2xkZXIgb3B0aW9uLCB3ZSBkb24ndCBmb3JjZSBzaXplcyAtIHRoZSBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgdGhhdA0KCQkJCQkvLyAyLiBUaGUgb3B0aW9uICdmb3JjZVBsYWNlaG9sZGVyU2l6ZSBjYW4gYmUgZW5hYmxlZCB0byBmb3JjZSBpdCBldmVuIGlmIGEgY2xhc3MgbmFtZSBpcyBzcGVjaWZpZWQNCgkJCQkJaWYoY2xhc3NOYW1lICYmICFvLmZvcmNlUGxhY2Vob2xkZXJTaXplKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCg0KCQkJCQkvL0lmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhIGFjdHVhbCBoZWlnaHQgYnkgaXRzZWxmICh3aXRob3V0IHN0eWxlcyBjb21pbmcgZnJvbSBhIHN0eWxlc2hlZXQpLCBpdCByZWNlaXZlcyB0aGUgaW5saW5lIGhlaWdodCBmcm9tIHRoZSBkcmFnZ2VkIGl0ZW0NCgkJCQkJaWYoIXAuaGVpZ2h0KCkpIHsgcC5oZWlnaHQodGhhdC5jdXJyZW50SXRlbS5pbm5lckhlaWdodCgpIC0gcGFyc2VJbnQodGhhdC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwgMTApIC0gcGFyc2VJbnQodGhhdC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwgMTApKTsgfQ0KCQkJCQlpZighcC53aWR0aCgpKSB7IHAud2lkdGgodGhhdC5jdXJyZW50SXRlbS5pbm5lcldpZHRoKCkgLSBwYXJzZUludCh0aGF0LmN1cnJlbnRJdGVtLmNzcygicGFkZGluZ0xlZnQiKXx8MCwgMTApIC0gcGFyc2VJbnQodGhhdC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdSaWdodCIpfHwwLCAxMCkpOyB9DQoJCQkJfQ0KCQkJfTsNCgkJfQ0KDQoJCS8vQ3JlYXRlIHRoZSBwbGFjZWhvbGRlcg0KCQl0aGF0LnBsYWNlaG9sZGVyID0gJChvLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCh0aGF0LmVsZW1lbnQsIHRoYXQuY3VycmVudEl0ZW0pKTsNCg0KCQkvL0FwcGVuZCBpdCBhZnRlciB0aGUgYWN0dWFsIGN1cnJlbnQgaXRlbQ0KCQl0aGF0LmN1cnJlbnRJdGVtLmFmdGVyKHRoYXQucGxhY2Vob2xkZXIpOw0KDQoJCS8vVXBkYXRlIHRoZSBzaXplIG9mIHRoZSBwbGFjZWhvbGRlciAoVE9ETzogTG9naWMgdG8gZnV6enksIHNlZSBsaW5lIDMxNi8zMTcpDQoJCW8ucGxhY2Vob2xkZXIudXBkYXRlKHRoYXQsIHRoYXQucGxhY2Vob2xkZXIpOw0KDQoJfSwNCg0KCV9jcmVhdGVUclBsYWNlaG9sZGVyOiBmdW5jdGlvbiggc291cmNlVHIsIHRhcmdldFRyICkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJc291cmNlVHIuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJJCggIjx0ZD4mIzE2MDs8L3RkPiIsIHRoYXQuZG9jdW1lbnRbIDAgXSApDQoJCQkJLmF0dHIoICJjb2xzcGFuIiwgJCggdGhpcyApLmF0dHIoICJjb2xzcGFuIiApIHx8IDEgKQ0KCQkJCS5hcHBlbmRUbyggdGFyZ2V0VHIgKTsNCgkJfSk7DQoJfSwNCg0KCV9jb250YWN0Q29udGFpbmVyczogZnVuY3Rpb24oZXZlbnQpIHsNCgkJdmFyIGksIGosIGRpc3QsIGl0ZW1XaXRoTGVhc3REaXN0YW5jZSwgcG9zUHJvcGVydHksIHNpemVQcm9wZXJ0eSwgY3VyLCBuZWFyQm90dG9tLCBmbG9hdGluZywgYXhpcywNCgkJCWlubmVybW9zdENvbnRhaW5lciA9IG51bGwsDQoJCQlpbm5lcm1vc3RJbmRleCA9IG51bGw7DQoNCgkJLy8gZ2V0IGlubmVybW9zdCBjb250YWluZXIgdGhhdCBpbnRlcnNlY3RzIHdpdGggaXRlbQ0KCQlmb3IgKGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCg0KCQkJLy8gbmV2ZXIgY29uc2lkZXIgYSBjb250YWluZXIgdGhhdCdzIGxvY2F0ZWQgd2l0aGluIHRoZSBpdGVtIGl0c2VsZg0KCQkJaWYoJC5jb250YWlucyh0aGlzLmN1cnJlbnRJdGVtWzBdLCB0aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudFswXSkpIHsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJaWYodGhpcy5faW50ZXJzZWN0c1dpdGgodGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlKSkgew0KDQoJCQkJLy8gaWYgd2UndmUgYWxyZWFkeSBmb3VuZCBhIGNvbnRhaW5lciBhbmQgaXQncyBtb3JlICJpbm5lciIgdGhhbiB0aGlzLCB0aGVuIGNvbnRpbnVlDQoJCQkJaWYoaW5uZXJtb3N0Q29udGFpbmVyICYmICQuY29udGFpbnModGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0sIGlubmVybW9zdENvbnRhaW5lci5lbGVtZW50WzBdKSkgew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQlpbm5lcm1vc3RDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcnNbaV07DQoJCQkJaW5uZXJtb3N0SW5kZXggPSBpOw0KDQoJCQl9IGVsc2Ugew0KCQkJCS8vIGNvbnRhaW5lciBkb2Vzbid0IGludGVyc2VjdC4gdHJpZ2dlciAib3V0IiBldmVudCBpZiBuZWNlc3NhcnkNCgkJCQlpZih0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3Zlcikgew0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uX3RyaWdnZXIoIm91dCIsIGV2ZW50LCB0aGlzLl91aUhhc2godGhpcykpOw0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciA9IDA7DQoJCQkJfQ0KCQkJfQ0KDQoJCX0NCg0KCQkvLyBpZiBubyBpbnRlcnNlY3RpbmcgY29udGFpbmVycyBmb3VuZCwgcmV0dXJuDQoJCWlmKCFpbm5lcm1vc3RDb250YWluZXIpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIG1vdmUgdGhlIGl0ZW0gaW50byB0aGUgY29udGFpbmVyIGlmIGl0J3Mgbm90IHRoZXJlIGFscmVhZHkNCgkJaWYodGhpcy5jb250YWluZXJzLmxlbmd0aCA9PT0gMSkgew0KCQkJaWYgKCF0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLmNvbnRhaW5lckNhY2hlLm92ZXIpIHsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLl90cmlnZ2VyKCJvdmVyIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzKSk7DQoJCQkJdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5jb250YWluZXJDYWNoZS5vdmVyID0gMTsNCgkJCX0NCgkJfSBlbHNlIHsNCg0KCQkJLy9XaGVuIGVudGVyaW5nIGEgbmV3IGNvbnRhaW5lciwgd2Ugd2lsbCBmaW5kIHRoZSBpdGVtIHdpdGggdGhlIGxlYXN0IGRpc3RhbmNlIGFuZCBhcHBlbmQgb3VyIGl0ZW0gbmVhciBpdA0KCQkJZGlzdCA9IDEwMDAwOw0KCQkJaXRlbVdpdGhMZWFzdERpc3RhbmNlID0gbnVsbDsNCgkJCWZsb2F0aW5nID0gaW5uZXJtb3N0Q29udGFpbmVyLmZsb2F0aW5nIHx8IHRoaXMuX2lzRmxvYXRpbmcodGhpcy5jdXJyZW50SXRlbSk7DQoJCQlwb3NQcm9wZXJ0eSA9IGZsb2F0aW5nID8gImxlZnQiIDogInRvcCI7DQoJCQlzaXplUHJvcGVydHkgPSBmbG9hdGluZyA/ICJ3aWR0aCIgOiAiaGVpZ2h0IjsNCgkJCWF4aXMgPSBmbG9hdGluZyA/ICJjbGllbnRYIiA6ICJjbGllbnRZIjsNCg0KCQkJZm9yIChqID0gdGhpcy5pdGVtcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgew0KCQkJCWlmKCEkLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tpbm5lcm1vc3RJbmRleF0uZWxlbWVudFswXSwgdGhpcy5pdGVtc1tqXS5pdGVtWzBdKSkgew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJaWYodGhpcy5pdGVtc1tqXS5pdGVtWzBdID09PSB0aGlzLmN1cnJlbnRJdGVtWzBdKSB7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCg0KCQkJCWN1ciA9IHRoaXMuaXRlbXNbal0uaXRlbS5vZmZzZXQoKVtwb3NQcm9wZXJ0eV07DQoJCQkJbmVhckJvdHRvbSA9IGZhbHNlOw0KCQkJCWlmICggZXZlbnRbIGF4aXMgXSAtIGN1ciA+IHRoaXMuaXRlbXNbIGogXVsgc2l6ZVByb3BlcnR5IF0gLyAyICkgew0KCQkJCQluZWFyQm90dG9tID0gdHJ1ZTsNCgkJCQl9DQoNCgkJCQlpZiAoIE1hdGguYWJzKCBldmVudFsgYXhpcyBdIC0gY3VyICkgPCBkaXN0ICkgew0KCQkJCQlkaXN0ID0gTWF0aC5hYnMoIGV2ZW50WyBheGlzIF0gLSBjdXIgKTsNCgkJCQkJaXRlbVdpdGhMZWFzdERpc3RhbmNlID0gdGhpcy5pdGVtc1sgaiBdOw0KCQkJCQl0aGlzLmRpcmVjdGlvbiA9IG5lYXJCb3R0b20gPyAidXAiOiAiZG93biI7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvL0NoZWNrIGlmIGRyb3BPbkVtcHR5IGlzIGVuYWJsZWQNCgkJCWlmKCFpdGVtV2l0aExlYXN0RGlzdGFuY2UgJiYgIXRoaXMub3B0aW9ucy5kcm9wT25FbXB0eSkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJaWYodGhpcy5jdXJyZW50Q29udGFpbmVyID09PSB0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdKSB7DQoJCQkJaWYgKCAhdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXIgKSB7DQoJCQkJCXRoaXMuY29udGFpbmVyc1sgaW5uZXJtb3N0SW5kZXggXS5fdHJpZ2dlciggIm92ZXIiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkgKTsNCgkJCQkJdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAxOw0KCQkJCX0NCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWl0ZW1XaXRoTGVhc3REaXN0YW5jZSA/IHRoaXMuX3JlYXJyYW5nZShldmVudCwgaXRlbVdpdGhMZWFzdERpc3RhbmNlLCBudWxsLCB0cnVlKSA6IHRoaXMuX3JlYXJyYW5nZShldmVudCwgbnVsbCwgdGhpcy5jb250YWluZXJzW2lubmVybW9zdEluZGV4XS5lbGVtZW50LCB0cnVlKTsNCgkJCXRoaXMuX3RyaWdnZXIoImNoYW5nZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7DQoJCQl0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLl90cmlnZ2VyKCJjaGFuZ2UiLCBldmVudCwgdGhpcy5fdWlIYXNoKHRoaXMpKTsNCgkJCXRoaXMuY3VycmVudENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyc1tpbm5lcm1vc3RJbmRleF07DQoNCgkJCS8vVXBkYXRlIHRoZSBwbGFjZWhvbGRlcg0KCQkJdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsIHRoaXMucGxhY2Vob2xkZXIpOw0KDQoJCQl0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLl90cmlnZ2VyKCJvdmVyIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzKSk7DQoJCQl0aGlzLmNvbnRhaW5lcnNbaW5uZXJtb3N0SW5kZXhdLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAxOw0KCQl9DQoNCg0KCX0sDQoNCglfY3JlYXRlSGVscGVyOiBmdW5jdGlvbihldmVudCkgew0KDQoJCXZhciBvID0gdGhpcy5vcHRpb25zLA0KCQkJaGVscGVyID0gJC5pc0Z1bmN0aW9uKG8uaGVscGVyKSA/ICQoby5oZWxwZXIuYXBwbHkodGhpcy5lbGVtZW50WzBdLCBbZXZlbnQsIHRoaXMuY3VycmVudEl0ZW1dKSkgOiAoby5oZWxwZXIgPT09ICJjbG9uZSIgPyB0aGlzLmN1cnJlbnRJdGVtLmNsb25lKCkgOiB0aGlzLmN1cnJlbnRJdGVtKTsNCg0KCQkvL0FkZCB0aGUgaGVscGVyIHRvIHRoZSBET00gaWYgdGhhdCBkaWRuJ3QgaGFwcGVuIGFscmVhZHkNCgkJaWYoIWhlbHBlci5wYXJlbnRzKCJib2R5IikubGVuZ3RoKSB7DQoJCQkkKG8uYXBwZW5kVG8gIT09ICJwYXJlbnQiID8gby5hcHBlbmRUbyA6IHRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoaGVscGVyWzBdKTsNCgkJfQ0KDQoJCWlmKGhlbHBlclswXSA9PT0gdGhpcy5jdXJyZW50SXRlbVswXSkgew0KCQkJdGhpcy5fc3RvcmVkQ1NTID0geyB3aWR0aDogdGhpcy5jdXJyZW50SXRlbVswXS5zdHlsZS53aWR0aCwgaGVpZ2h0OiB0aGlzLmN1cnJlbnRJdGVtWzBdLnN0eWxlLmhlaWdodCwgcG9zaXRpb246IHRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLCB0b3A6IHRoaXMuY3VycmVudEl0ZW0uY3NzKCJ0b3AiKSwgbGVmdDogdGhpcy5jdXJyZW50SXRlbS5jc3MoImxlZnQiKSB9Ow0KCQl9DQoNCgkJaWYoIWhlbHBlclswXS5zdHlsZS53aWR0aCB8fCBvLmZvcmNlSGVscGVyU2l6ZSkgew0KCQkJaGVscGVyLndpZHRoKHRoaXMuY3VycmVudEl0ZW0ud2lkdGgoKSk7DQoJCX0NCgkJaWYoIWhlbHBlclswXS5zdHlsZS5oZWlnaHQgfHwgby5mb3JjZUhlbHBlclNpemUpIHsNCgkJCWhlbHBlci5oZWlnaHQodGhpcy5jdXJyZW50SXRlbS5oZWlnaHQoKSk7DQoJCX0NCg0KCQlyZXR1cm4gaGVscGVyOw0KDQoJfSwNCg0KCV9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOiBmdW5jdGlvbihvYmopIHsNCgkJaWYgKHR5cGVvZiBvYmogPT09ICJzdHJpbmciKSB7DQoJCQlvYmogPSBvYmouc3BsaXQoIiAiKTsNCgkJfQ0KCQlpZiAoJC5pc0FycmF5KG9iaikpIHsNCgkJCW9iaiA9IHtsZWZ0OiArb2JqWzBdLCB0b3A6ICtvYmpbMV0gfHwgMH07DQoJCX0NCgkJaWYgKCJsZWZ0IiBpbiBvYmopIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPSBvYmoubGVmdCArIHRoaXMubWFyZ2lucy5sZWZ0Ow0KCQl9DQoJCWlmICgicmlnaHQiIGluIG9iaikgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCA9IHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSBvYmoucmlnaHQgKyB0aGlzLm1hcmdpbnMubGVmdDsNCgkJfQ0KCQlpZiAoInRvcCIgaW4gb2JqKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay50b3AgPSBvYmoudG9wICsgdGhpcy5tYXJnaW5zLnRvcDsNCgkJfQ0KCQlpZiAoImJvdHRvbSIgaW4gb2JqKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay50b3AgPSB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIG9iai5ib3R0b20gKyB0aGlzLm1hcmdpbnMudG9wOw0KCQl9DQoJfSwNCg0KCV9nZXRQYXJlbnRPZmZzZXQ6IGZ1bmN0aW9uKCkgew0KDQoNCgkJLy9HZXQgdGhlIG9mZnNldFBhcmVudCBhbmQgY2FjaGUgaXRzIHBvc2l0aW9uDQoJCXRoaXMub2Zmc2V0UGFyZW50ID0gdGhpcy5oZWxwZXIub2Zmc2V0UGFyZW50KCk7DQoJCXZhciBwbyA9IHRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpOw0KDQoJCS8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgbmVlZCB0byBtb2RpZnkgYSBvZmZzZXQgY2FsY3VsYXRlZCBvbiBzdGFydCwgc2luY2UgdGhlIGZvbGxvd2luZyBoYXBwZW5lZDoNCgkJLy8gMS4gVGhlIHBvc2l0aW9uIG9mIHRoZSBoZWxwZXIgaXMgYWJzb2x1dGUsIHNvIGl0J3MgcG9zaXRpb24gaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgbmV4dCBwb3NpdGlvbmVkIHBhcmVudA0KCQkvLyAyLiBUaGUgYWN0dWFsIG9mZnNldCBwYXJlbnQgaXMgYSBjaGlsZCBvZiB0aGUgc2Nyb2xsIHBhcmVudCwgYW5kIHRoZSBzY3JvbGwgcGFyZW50IGlzbid0IHRoZSBkb2N1bWVudCwgd2hpY2ggbWVhbnMgdGhhdA0KCQkvLyAgICB0aGUgc2Nyb2xsIGlzIGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIGNhbGN1bGF0aW9uIG9mIHRoZSBvZmZzZXQgb2YgdGhlIHBhcmVudCwgYW5kIG5ldmVyIHJlY2FsY3VsYXRlZCB1cG9uIGRyYWcNCgkJaWYodGhpcy5jc3NQb3NpdGlvbiA9PT0gImFic29sdXRlIiAmJiB0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gdGhpcy5kb2N1bWVudFswXSAmJiAkLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLCB0aGlzLm9mZnNldFBhcmVudFswXSkpIHsNCgkJCXBvLmxlZnQgKz0gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOw0KCQkJcG8udG9wICs9IHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOw0KCQl9DQoNCgkJLy8gVGhpcyBuZWVkcyB0byBiZSBhY3R1YWxseSBkb25lIGZvciBhbGwgYnJvd3NlcnMsIHNpbmNlIHBhZ2VYL3BhZ2VZIGluY2x1ZGVzIHRoaXMgaW5mb3JtYXRpb24NCgkJLy8gd2l0aCBhbiB1Z2x5IElFIGZpeA0KCQlpZiggdGhpcy5vZmZzZXRQYXJlbnRbMF0gPT09IHRoaXMuZG9jdW1lbnRbMF0uYm9keSB8fCAodGhpcy5vZmZzZXRQYXJlbnRbMF0udGFnTmFtZSAmJiB0aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJodG1sIiAmJiAkLnVpLmllKSkgew0KCQkJcG8gPSB7IHRvcDogMCwgbGVmdDogMCB9Ow0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogcG8udG9wICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCkgfHwgMCksDQoJCQlsZWZ0OiBwby5sZWZ0ICsgKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApIHx8IDApDQoJCX07DQoNCgl9LA0KDQoJX2dldFJlbGF0aXZlT2Zmc2V0OiBmdW5jdGlvbigpIHsNCg0KCQlpZih0aGlzLmNzc1Bvc2l0aW9uID09PSAicmVsYXRpdmUiKSB7DQoJCQl2YXIgcCA9IHRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTsNCgkJCXJldHVybiB7DQoJCQkJdG9wOiBwLnRvcCAtIChwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKSB8fCAwKSArIHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpLA0KCQkJCWxlZnQ6IHAubGVmdCAtIChwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSwxMCkgfHwgMCkgKyB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkNCgkJCX07DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAgfTsNCgkJfQ0KDQoJfSwNCg0KCV9jYWNoZU1hcmdpbnM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1hcmdpbnMgPSB7DQoJCQlsZWZ0OiAocGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpbkxlZnQiKSwxMCkgfHwgMCksDQoJCQl0b3A6IChwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luVG9wIiksMTApIHx8IDApDQoJCX07DQoJfSwNCg0KCV9jYWNoZUhlbHBlclByb3BvcnRpb25zOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucyA9IHsNCgkJCXdpZHRoOiB0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksDQoJCQloZWlnaHQ6IHRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCkNCgkJfTsNCgl9LA0KDQoJX3NldENvbnRhaW5tZW50OiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgY2UsIGNvLCBvdmVyLA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCgkJaWYoby5jb250YWlubWVudCA9PT0gInBhcmVudCIpIHsNCgkJCW8uY29udGFpbm1lbnQgPSB0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlOw0KCQl9DQoJCWlmKG8uY29udGFpbm1lbnQgPT09ICJkb2N1bWVudCIgfHwgby5jb250YWlubWVudCA9PT0gIndpbmRvdyIpIHsNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkJMCAtIHRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCwNCgkJCQkwIC0gdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wIC0gdGhpcy5vZmZzZXQucGFyZW50LnRvcCwNCgkJCQlvLmNvbnRhaW5tZW50ID09PSAiZG9jdW1lbnQiID8gdGhpcy5kb2N1bWVudC53aWR0aCgpIDogdGhpcy53aW5kb3cud2lkdGgoKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQkoby5jb250YWlubWVudCA9PT0gImRvY3VtZW50IiA/IHRoaXMuZG9jdW1lbnQud2lkdGgoKSA6IHRoaXMud2luZG93LmhlaWdodCgpIHx8IHRoaXMuZG9jdW1lbnRbMF0uYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCkgLSB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIHRoaXMubWFyZ2lucy50b3ANCgkJCV07DQoJCX0NCg0KCQlpZighKC9eKGRvY3VtZW50fHdpbmRvd3xwYXJlbnQpJC8pLnRlc3Qoby5jb250YWlubWVudCkpIHsNCgkJCWNlID0gJChvLmNvbnRhaW5tZW50KVswXTsNCgkJCWNvID0gJChvLmNvbnRhaW5tZW50KS5vZmZzZXQoKTsNCgkJCW92ZXIgPSAoJChjZSkuY3NzKCJvdmVyZmxvdyIpICE9PSAiaGlkZGVuIik7DQoNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkJY28ubGVmdCArIChwYXJzZUludCgkKGNlKS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKSB8fCAwKSArIChwYXJzZUludCgkKGNlKS5jc3MoInBhZGRpbmdMZWZ0IiksMTApIHx8IDApIC0gdGhpcy5tYXJnaW5zLmxlZnQsDQoJCQkJY28udG9wICsgKHBhcnNlSW50KCQoY2UpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCkgfHwgMCkgKyAocGFyc2VJbnQoJChjZSkuY3NzKCJwYWRkaW5nVG9wIiksMTApIHx8IDApIC0gdGhpcy5tYXJnaW5zLnRvcCwNCgkJCQljby5sZWZ0KyhvdmVyID8gTWF0aC5tYXgoY2Uuc2Nyb2xsV2lkdGgsY2Uub2Zmc2V0V2lkdGgpIDogY2Uub2Zmc2V0V2lkdGgpIC0gKHBhcnNlSW50KCQoY2UpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApIHx8IDApIC0gKHBhcnNlSW50KCQoY2UpLmNzcygicGFkZGluZ1JpZ2h0IiksMTApIHx8IDApIC0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAtIHRoaXMubWFyZ2lucy5sZWZ0LA0KCQkJCWNvLnRvcCsob3ZlciA/IE1hdGgubWF4KGNlLnNjcm9sbEhlaWdodCxjZS5vZmZzZXRIZWlnaHQpIDogY2Uub2Zmc2V0SGVpZ2h0KSAtIChwYXJzZUludCgkKGNlKS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApIHx8IDApIC0gKHBhcnNlSW50KCQoY2UpLmNzcygicGFkZGluZ0JvdHRvbSIpLDEwKSB8fCAwKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gdGhpcy5tYXJnaW5zLnRvcA0KCQkJXTsNCgkJfQ0KDQoJfSwNCg0KCV9jb252ZXJ0UG9zaXRpb25UbzogZnVuY3Rpb24oZCwgcG9zKSB7DQoNCgkJaWYoIXBvcykgew0KCQkJcG9zID0gdGhpcy5wb3NpdGlvbjsNCgkJfQ0KCQl2YXIgbW9kID0gZCA9PT0gImFic29sdXRlIiA/IDEgOiAtMSwNCgkJCXNjcm9sbCA9IHRoaXMuY3NzUG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgISh0aGlzLnNjcm9sbFBhcmVudFswXSAhPT0gdGhpcy5kb2N1bWVudFswXSAmJiAkLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLCB0aGlzLm9mZnNldFBhcmVudFswXSkpID8gdGhpcy5vZmZzZXRQYXJlbnQgOiB0aGlzLnNjcm9sbFBhcmVudCwNCgkJCXNjcm9sbElzUm9vdE5vZGUgPSAoLyhodG1sfGJvZHkpL2kpLnRlc3Qoc2Nyb2xsWzBdLnRhZ05hbWUpOw0KDQoJCXJldHVybiB7DQoJCQl0b3A6ICgNCgkJCQlwb3MudG9wCSsJCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wICogbW9kICsJCQkJCQkJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LnRvcCAqIG1vZCAtCQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpIDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxUb3AoKSApICkgKiBtb2QpDQoJCQkpLA0KCQkJbGVmdDogKA0KCQkJCXBvcy5sZWZ0ICsJCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCAqIG1vZCArCQkJCQkJCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0ICogbW9kCS0JCQkJCQkJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQkoICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/IC10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkgOiBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxMZWZ0KCkgKSAqIG1vZCkNCgkJCSkNCgkJfTsNCg0KCX0sDQoNCglfZ2VuZXJhdGVQb3NpdGlvbjogZnVuY3Rpb24oZXZlbnQpIHsNCg0KCQl2YXIgdG9wLCBsZWZ0LA0KCQkJbyA9IHRoaXMub3B0aW9ucywNCgkJCXBhZ2VYID0gZXZlbnQucGFnZVgsDQoJCQlwYWdlWSA9IGV2ZW50LnBhZ2VZLA0KCQkJc2Nyb2xsID0gdGhpcy5jc3NQb3NpdGlvbiA9PT0gImFic29sdXRlIiAmJiAhKHRoaXMuc2Nyb2xsUGFyZW50WzBdICE9PSB0aGlzLmRvY3VtZW50WzBdICYmICQuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sIHRoaXMub2Zmc2V0UGFyZW50WzBdKSkgPyB0aGlzLm9mZnNldFBhcmVudCA6IHRoaXMuc2Nyb2xsUGFyZW50LCBzY3JvbGxJc1Jvb3ROb2RlID0gKC8oaHRtbHxib2R5KS9pKS50ZXN0KHNjcm9sbFswXS50YWdOYW1lKTsNCg0KCQkvLyBUaGlzIGlzIGFub3RoZXIgdmVyeSB3ZWlyZCBzcGVjaWFsIGNhc2UgdGhhdCBvbmx5IGhhcHBlbnMgZm9yIHJlbGF0aXZlIGVsZW1lbnRzOg0KCQkvLyAxLiBJZiB0aGUgY3NzIHBvc2l0aW9uIGlzIHJlbGF0aXZlDQoJCS8vIDIuIGFuZCB0aGUgc2Nyb2xsIHBhcmVudCBpcyB0aGUgZG9jdW1lbnQgb3Igc2ltaWxhciB0byB0aGUgb2Zmc2V0IHBhcmVudA0KCQkvLyB3ZSBoYXZlIHRvIHJlZnJlc2ggdGhlIHJlbGF0aXZlIG9mZnNldCBkdXJpbmcgdGhlIHNjcm9sbCBzbyB0aGVyZSBhcmUgbm8ganVtcHMNCgkJaWYodGhpcy5jc3NQb3NpdGlvbiA9PT0gInJlbGF0aXZlIiAmJiAhKHRoaXMuc2Nyb2xsUGFyZW50WzBdICE9PSB0aGlzLmRvY3VtZW50WzBdICYmIHRoaXMuc2Nyb2xsUGFyZW50WzBdICE9PSB0aGlzLm9mZnNldFBhcmVudFswXSkpIHsNCgkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlID0gdGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKTsNCgkJfQ0KDQoJCS8qDQoJCSAqIC0gUG9zaXRpb24gY29uc3RyYWluaW5nIC0NCgkJICogQ29uc3RyYWluIHRoZSBwb3NpdGlvbiB0byBhIG1peCBvZiBncmlkLCBjb250YWlubWVudC4NCgkJICovDQoNCgkJaWYodGhpcy5vcmlnaW5hbFBvc2l0aW9uKSB7IC8vSWYgd2UgYXJlIG5vdCBkcmFnZ2luZyB5ZXQsIHdlIHdvbid0IGNoZWNrIGZvciBvcHRpb25zDQoNCgkJCWlmKHRoaXMuY29udGFpbm1lbnQpIHsNCgkJCQlpZihldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPCB0aGlzLmNvbnRhaW5tZW50WzBdKSB7DQoJCQkJCXBhZ2VYID0gdGhpcy5jb250YWlubWVudFswXSArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmKGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wIDwgdGhpcy5jb250YWlubWVudFsxXSkgew0KCQkJCQlwYWdlWSA9IHRoaXMuY29udGFpbm1lbnRbMV0gKyB0aGlzLm9mZnNldC5jbGljay50b3A7DQoJCQkJfQ0KCQkJCWlmKGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+IHRoaXMuY29udGFpbm1lbnRbMl0pIHsNCgkJCQkJcGFnZVggPSB0aGlzLmNvbnRhaW5tZW50WzJdICsgdGhpcy5vZmZzZXQuY2xpY2subGVmdDsNCgkJCQl9DQoJCQkJaWYoZXZlbnQucGFnZVkgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPiB0aGlzLmNvbnRhaW5tZW50WzNdKSB7DQoJCQkJCXBhZ2VZID0gdGhpcy5jb250YWlubWVudFszXSArIHRoaXMub2Zmc2V0LmNsaWNrLnRvcDsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmKG8uZ3JpZCkgew0KCQkJCXRvcCA9IHRoaXMub3JpZ2luYWxQYWdlWSArIE1hdGgucm91bmQoKHBhZ2VZIC0gdGhpcy5vcmlnaW5hbFBhZ2VZKSAvIG8uZ3JpZFsxXSkgKiBvLmdyaWRbMV07DQoJCQkJcGFnZVkgPSB0aGlzLmNvbnRhaW5tZW50ID8gKCAodG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IHRoaXMuY29udGFpbm1lbnRbMV0gJiYgdG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wIDw9IHRoaXMuY29udGFpbm1lbnRbM10pID8gdG9wIDogKCh0b3AgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPj0gdGhpcy5jb250YWlubWVudFsxXSkgPyB0b3AgLSBvLmdyaWRbMV0gOiB0b3AgKyBvLmdyaWRbMV0pKSA6IHRvcDsNCg0KCQkJCWxlZnQgPSB0aGlzLm9yaWdpbmFsUGFnZVggKyBNYXRoLnJvdW5kKChwYWdlWCAtIHRoaXMub3JpZ2luYWxQYWdlWCkgLyBvLmdyaWRbMF0pICogby5ncmlkWzBdOw0KCQkJCXBhZ2VYID0gdGhpcy5jb250YWlubWVudCA/ICggKGxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID49IHRoaXMuY29udGFpbm1lbnRbMF0gJiYgbGVmdCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPD0gdGhpcy5jb250YWlubWVudFsyXSkgPyBsZWZ0IDogKChsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+PSB0aGlzLmNvbnRhaW5tZW50WzBdKSA/IGxlZnQgLSBvLmdyaWRbMF0gOiBsZWZ0ICsgby5ncmlkWzBdKSkgOiBsZWZ0Ow0KCQkJfQ0KDQoJCX0NCg0KCQlyZXR1cm4gew0KCQkJdG9wOiAoDQoJCQkJcGFnZVkgLQkJCQkJCQkJCQkJCQkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQl0aGlzLm9mZnNldC5jbGljay50b3AgLQkJCQkJCQkJCQkJCQkvLyBDbGljayBvZmZzZXQgKHJlbGF0aXZlIHRvIHRoZSBlbGVtZW50KQ0KCQkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcAktCQkJCQkJCQkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQudG9wICsJCQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpIDogKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxUb3AoKSApICkpDQoJCQkpLA0KCQkJbGVmdDogKA0KCQkJCXBhZ2VYIC0JCQkJCQkJCQkJCQkJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCAtCQkJCQkJCQkJCQkJLy8gQ2xpY2sgb2Zmc2V0IChyZWxhdGl2ZSB0byB0aGUgZWxlbWVudCkNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0CS0JCQkJCQkJCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0ICsJCQkJCQkJCQkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8gLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKSA6IHNjcm9sbElzUm9vdE5vZGUgPyAwIDogc2Nyb2xsLnNjcm9sbExlZnQoKSApKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9yZWFycmFuZ2U6IGZ1bmN0aW9uKGV2ZW50LCBpLCBhLCBoYXJkUmVmcmVzaCkgew0KDQoJCWEgPyBhWzBdLmFwcGVuZENoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pIDogaS5pdGVtWzBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMucGxhY2Vob2xkZXJbMF0sICh0aGlzLmRpcmVjdGlvbiA9PT0gImRvd24iID8gaS5pdGVtWzBdIDogaS5pdGVtWzBdLm5leHRTaWJsaW5nKSk7DQoNCgkJLy9WYXJpb3VzIHRoaW5ncyBkb25lIGhlcmUgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2U6DQoJCS8vIDEuIHdlIGNyZWF0ZSBhIHNldFRpbWVvdXQsIHRoYXQgY2FsbHMgcmVmcmVzaFBvc2l0aW9ucw0KCQkvLyAyLiBvbiB0aGUgaW5zdGFuY2UsIHdlIGhhdmUgYSBjb3VudGVyIHZhcmlhYmxlLCB0aGF0IGdldCdzIGhpZ2hlciBhZnRlciBldmVyeSBhcHBlbmQNCgkJLy8gMy4gb24gdGhlIGxvY2FsIHNjb3BlLCB3ZSBjb3B5IHRoZSBjb3VudGVyIHZhcmlhYmxlLCBhbmQgY2hlY2sgaW4gdGhlIHRpbWVvdXQsIGlmIGl0J3Mgc3RpbGwgdGhlIHNhbWUNCgkJLy8gNC4gdGhpcyBsZXRzIG9ubHkgdGhlIGxhc3QgYWRkaXRpb24gdG8gdGhlIHRpbWVvdXQgc3RhY2sgdGhyb3VnaA0KCQl0aGlzLmNvdW50ZXIgPSB0aGlzLmNvdW50ZXIgPyArK3RoaXMuY291bnRlciA6IDE7DQoJCXZhciBjb3VudGVyID0gdGhpcy5jb3VudGVyOw0KDQoJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJaWYoY291bnRlciA9PT0gdGhpcy5jb3VudGVyKSB7DQoJCQkJdGhpcy5yZWZyZXNoUG9zaXRpb25zKCFoYXJkUmVmcmVzaCk7IC8vUHJlY29tcHV0ZSBhZnRlciBlYWNoIERPTSBpbnNlcnRpb24sIE5PVCBvbiBtb3VzZW1vdmUNCgkJCX0NCgkJfSk7DQoNCgl9LA0KDQoJX2NsZWFyOiBmdW5jdGlvbihldmVudCwgbm9Qcm9wYWdhdGlvbikgew0KDQoJCXRoaXMucmV2ZXJ0aW5nID0gZmFsc2U7DQoJCS8vIFdlIGRlbGF5IGFsbCBldmVudHMgdGhhdCBoYXZlIHRvIGJlIHRyaWdnZXJlZCB0byBhZnRlciB0aGUgcG9pbnQgd2hlcmUgdGhlIHBsYWNlaG9sZGVyIGhhcyBiZWVuIHJlbW92ZWQgYW5kDQoJCS8vIGV2ZXJ5dGhpbmcgZWxzZSBub3JtYWxpemVkIGFnYWluDQoJCXZhciBpLA0KCQkJZGVsYXllZFRyaWdnZXJzID0gW107DQoNCgkJLy8gV2UgZmlyc3QgaGF2ZSB0byB1cGRhdGUgdGhlIGRvbSBwb3NpdGlvbiBvZiB0aGUgYWN0dWFsIGN1cnJlbnRJdGVtDQoJCS8vIE5vdGU6IGRvbid0IGRvIGl0IGlmIHRoZSBjdXJyZW50IGl0ZW0gaXMgYWxyZWFkeSByZW1vdmVkIChieSBhIHVzZXIpLCBvciBpdCBnZXRzIHJlYXBwZW5kZWQgKHNlZSAjNDA4OCkNCgkJaWYoIXRoaXMuX25vRmluYWxTb3J0ICYmIHRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkubGVuZ3RoKSB7DQoJCQl0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKTsNCgkJfQ0KCQl0aGlzLl9ub0ZpbmFsU29ydCA9IG51bGw7DQoNCgkJaWYodGhpcy5oZWxwZXJbMF0gPT09IHRoaXMuY3VycmVudEl0ZW1bMF0pIHsNCgkJCWZvcihpIGluIHRoaXMuX3N0b3JlZENTUykgew0KCQkJCWlmKHRoaXMuX3N0b3JlZENTU1tpXSA9PT0gImF1dG8iIHx8IHRoaXMuX3N0b3JlZENTU1tpXSA9PT0gInN0YXRpYyIpIHsNCgkJCQkJdGhpcy5fc3RvcmVkQ1NTW2ldID0gIiI7DQoJCQkJfQ0KCQkJfQ0KCQkJdGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmN1cnJlbnRJdGVtLnNob3coKTsNCgkJfQ0KDQoJCWlmKHRoaXMuZnJvbU91dHNpZGUgJiYgIW5vUHJvcGFnYXRpb24pIHsNCgkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKGZ1bmN0aW9uKGV2ZW50KSB7IHRoaXMuX3RyaWdnZXIoInJlY2VpdmUiLCBldmVudCwgdGhpcy5fdWlIYXNoKHRoaXMuZnJvbU91dHNpZGUpKTsgfSk7DQoJCX0NCgkJaWYoKHRoaXMuZnJvbU91dHNpZGUgfHwgdGhpcy5kb21Qb3NpdGlvbi5wcmV2ICE9PSB0aGlzLmN1cnJlbnRJdGVtLnByZXYoKS5ub3QoIi51aS1zb3J0YWJsZS1oZWxwZXIiKVswXSB8fCB0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCAhPT0gdGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVswXSkgJiYgIW5vUHJvcGFnYXRpb24pIHsNCgkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKGZ1bmN0aW9uKGV2ZW50KSB7IHRoaXMuX3RyaWdnZXIoInVwZGF0ZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7IH0pOyAvL1RyaWdnZXIgdXBkYXRlIGNhbGxiYWNrIGlmIHRoZSBET00gcG9zaXRpb24gaGFzIGNoYW5nZWQNCgkJfQ0KDQoJCS8vIENoZWNrIGlmIHRoZSBpdGVtcyBDb250YWluZXIgaGFzIENoYW5nZWQgYW5kIHRyaWdnZXIgYXBwcm9wcmlhdGUNCgkJLy8gZXZlbnRzLg0KCQlpZiAodGhpcyAhPT0gdGhpcy5jdXJyZW50Q29udGFpbmVyKSB7DQoJCQlpZighbm9Qcm9wYWdhdGlvbikgew0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKGZ1bmN0aW9uKGV2ZW50KSB7IHRoaXMuX3RyaWdnZXIoInJlbW92ZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7IH0pOw0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKChmdW5jdGlvbihjKSB7IHJldHVybiBmdW5jdGlvbihldmVudCkgeyBjLl90cmlnZ2VyKCJyZWNlaXZlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCh0aGlzKSk7IH07ICB9KS5jYWxsKHRoaXMsIHRoaXMuY3VycmVudENvbnRhaW5lcikpOw0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKChmdW5jdGlvbihjKSB7IHJldHVybiBmdW5jdGlvbihldmVudCkgeyBjLl90cmlnZ2VyKCJ1cGRhdGUiLCBldmVudCwgdGhpcy5fdWlIYXNoKHRoaXMpKTsgIH07IH0pLmNhbGwodGhpcywgdGhpcy5jdXJyZW50Q29udGFpbmVyKSk7DQoJCQl9DQoJCX0NCg0KDQoJCS8vUG9zdCBldmVudHMgdG8gY29udGFpbmVycw0KCQlmdW5jdGlvbiBkZWxheUV2ZW50KCB0eXBlLCBpbnN0YW5jZSwgY29udGFpbmVyICkgew0KCQkJcmV0dXJuIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQljb250YWluZXIuX3RyaWdnZXIoIHR5cGUsIGV2ZW50LCBpbnN0YW5jZS5fdWlIYXNoKCBpbnN0YW5jZSApICk7DQoJCQl9Ow0KCQl9DQoJCWZvciAoaSA9IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7DQoJCQlpZiAoIW5vUHJvcGFnYXRpb24pIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCggZGVsYXlFdmVudCggImRlYWN0aXZhdGUiLCB0aGlzLCB0aGlzLmNvbnRhaW5lcnNbIGkgXSApICk7DQoJCQl9DQoJCQlpZih0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3Zlcikgew0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKCBkZWxheUV2ZW50KCAib3V0IiwgdGhpcywgdGhpcy5jb250YWluZXJzWyBpIF0gKSApOw0KCQkJCXRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCX0NCgkJfQ0KDQoJCS8vRG8gd2hhdCB3YXMgb3JpZ2luYWxseSBpbiBwbHVnaW5zDQoJCWlmICggdGhpcy5zdG9yZWRDdXJzb3IgKSB7DQoJCQl0aGlzLmRvY3VtZW50LmZpbmQoICJib2R5IiApLmNzcyggImN1cnNvciIsIHRoaXMuc3RvcmVkQ3Vyc29yICk7DQoJCQl0aGlzLnN0b3JlZFN0eWxlc2hlZXQucmVtb3ZlKCk7DQoJCX0NCgkJaWYodGhpcy5fc3RvcmVkT3BhY2l0eSkgew0KCQkJdGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IiwgdGhpcy5fc3RvcmVkT3BhY2l0eSk7DQoJCX0NCgkJaWYodGhpcy5fc3RvcmVkWkluZGV4KSB7DQoJCQl0aGlzLmhlbHBlci5jc3MoInpJbmRleCIsIHRoaXMuX3N0b3JlZFpJbmRleCA9PT0gImF1dG8iID8gIiIgOiB0aGlzLl9zdG9yZWRaSW5kZXgpOw0KCQl9DQoNCgkJdGhpcy5kcmFnZ2luZyA9IGZhbHNlOw0KDQoJCWlmKCFub1Byb3BhZ2F0aW9uKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCJiZWZvcmVTdG9wIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpKTsNCgkJfQ0KDQoJCS8vJCh0aGlzLnBsYWNlaG9sZGVyWzBdKS5yZW1vdmUoKTsgd291bGQgaGF2ZSBiZWVuIHRoZSBqUXVlcnkgd2F5IC0gdW5mb3J0dW5hdGVseSwgaXQgdW5iaW5kcyBBTEwgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIG5vZGUhDQoJCXRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTsNCg0KCQlpZiAoICF0aGlzLmNhbmNlbEhlbHBlclJlbW92YWwgKSB7DQoJCQlpZiAoIHRoaXMuaGVscGVyWyAwIF0gIT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSApIHsNCgkJCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyID0gbnVsbDsNCgkJfQ0KDQoJCWlmKCFub1Byb3BhZ2F0aW9uKSB7DQoJCQlmb3IgKGk9MDsgaSA8IGRlbGF5ZWRUcmlnZ2Vycy5sZW5ndGg7IGkrKykgew0KCQkJCWRlbGF5ZWRUcmlnZ2Vyc1tpXS5jYWxsKHRoaXMsIGV2ZW50KTsNCgkJCX0gLy9UcmlnZ2VyIGFsbCBkZWxheWVkIGV2ZW50cw0KCQkJdGhpcy5fdHJpZ2dlcigic3RvcCIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSk7DQoJCX0NCg0KCQl0aGlzLmZyb21PdXRzaWRlID0gZmFsc2U7DQoJCXJldHVybiAhdGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsOw0KDQoJfSwNCg0KCV90cmlnZ2VyOiBmdW5jdGlvbigpIHsNCgkJaWYgKCQuV2lkZ2V0LnByb3RvdHlwZS5fdHJpZ2dlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpID09PSBmYWxzZSkgew0KCQkJdGhpcy5jYW5jZWwoKTsNCgkJfQ0KCX0sDQoNCglfdWlIYXNoOiBmdW5jdGlvbihfaW5zdCkgew0KCQl2YXIgaW5zdCA9IF9pbnN0IHx8IHRoaXM7DQoJCXJldHVybiB7DQoJCQloZWxwZXI6IGluc3QuaGVscGVyLA0KCQkJcGxhY2Vob2xkZXI6IGluc3QucGxhY2Vob2xkZXIgfHwgJChbXSksDQoJCQlwb3NpdGlvbjogaW5zdC5wb3NpdGlvbiwNCgkJCW9yaWdpbmFsUG9zaXRpb246IGluc3Qub3JpZ2luYWxQb3NpdGlvbiwNCgkJCW9mZnNldDogaW5zdC5wb3NpdGlvbkFicywNCgkJCWl0ZW06IGluc3QuY3VycmVudEl0ZW0sDQoJCQlzZW5kZXI6IF9pbnN0ID8gX2luc3QuZWxlbWVudCA6IG51bGwNCgkJfTsNCgl9DQoNCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFNwaW5uZXIgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zcGlubmVyLw0KICovDQoNCg0KZnVuY3Rpb24gc3Bpbm5lcl9tb2RpZmllciggZm4gKSB7DQoJcmV0dXJuIGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJldmlvdXMgPSB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCWZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCQlpZiAoIHByZXZpb3VzICE9PSB0aGlzLmVsZW1lbnQudmFsKCkgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiApOw0KCQl9DQoJfTsNCn0NCg0KdmFyIHNwaW5uZXIgPSAkLndpZGdldCggInVpLnNwaW5uZXIiLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8aW5wdXQ+IiwNCgl3aWRnZXRFdmVudFByZWZpeDogInNwaW4iLA0KCW9wdGlvbnM6IHsNCgkJY3VsdHVyZTogbnVsbCwNCgkJaWNvbnM6IHsNCgkJCWRvd246ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsDQoJCQl1cDogInVpLWljb24tdHJpYW5nbGUtMS1uIg0KCQl9LA0KCQlpbmNyZW1lbnRhbDogdHJ1ZSwNCgkJbWF4OiBudWxsLA0KCQltaW46IG51bGwsDQoJCW51bWJlckZvcm1hdDogbnVsbCwNCgkJcGFnZTogMTAsDQoJCXN0ZXA6IDEsDQoNCgkJY2hhbmdlOiBudWxsLA0KCQlzcGluOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJLy8gaGFuZGxlIHN0cmluZyB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHBhcnNlZA0KCQl0aGlzLl9zZXRPcHRpb24oICJtYXgiLCB0aGlzLm9wdGlvbnMubWF4ICk7DQoJCXRoaXMuX3NldE9wdGlvbiggIm1pbiIsIHRoaXMub3B0aW9ucy5taW4gKTsNCgkJdGhpcy5fc2V0T3B0aW9uKCAic3RlcCIsIHRoaXMub3B0aW9ucy5zdGVwICk7DQoNCgkJLy8gT25seSBmb3JtYXQgaWYgdGhlcmUgaXMgYSB2YWx1ZSwgcHJldmVudHMgdGhlIGZpZWxkIGZyb20gYmVpbmcgbWFya2VkDQoJCS8vIGFzIGludmFsaWQgaW4gRmlyZWZveCwgc2VlICM5NTczLg0KCQlpZiAoIHRoaXMudmFsdWUoKSAhPT0gIiIgKSB7DQoJCQkvLyBGb3JtYXQgdGhlIHZhbHVlLCBidXQgZG9uJ3QgY29uc3RyYWluLg0KCQkJdGhpcy5fdmFsdWUoIHRoaXMuZWxlbWVudC52YWwoKSwgdHJ1ZSApOw0KCQl9DQoNCgkJdGhpcy5fZHJhdygpOw0KCQl0aGlzLl9vbiggdGhpcy5fZXZlbnRzICk7DQoJCXRoaXMuX3JlZnJlc2goKTsNCg0KCQkvLyB0dXJuaW5nIG9mZiBhdXRvY29tcGxldGUgcHJldmVudHMgdGhlIGJyb3dzZXIgZnJvbSByZW1lbWJlcmluZyB0aGUNCgkJLy8gdmFsdWUgd2hlbiBuYXZpZ2F0aW5nIHRocm91Z2ggaGlzdG9yeSwgc28gd2UgcmUtZW5hYmxlIGF1dG9jb21wbGV0ZQ0KCQkvLyBpZiB0aGUgcGFnZSBpcyB1bmxvYWRlZCBiZWZvcmUgdGhlIHdpZGdldCBpcyBkZXN0cm95ZWQuICM3NzkwDQoJCXRoaXMuX29uKCB0aGlzLndpbmRvdywgew0KCQkJYmVmb3JldW5sb2FkOiBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB7fSwNCgkJCWVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7DQoNCgkJJC5lYWNoKCBbICJtaW4iLCAibWF4IiwgInN0ZXAiIF0sIGZ1bmN0aW9uKCBpLCBvcHRpb24gKSB7DQoJCQl2YXIgdmFsdWUgPSBlbGVtZW50LmF0dHIoIG9wdGlvbiApOw0KCQkJaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zWyBvcHRpb24gXSA9IHZhbHVlOw0KCQkJfQ0KCQl9KTsNCg0KCQlyZXR1cm4gb3B0aW9uczsNCgl9LA0KDQoJX2V2ZW50czogew0KCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQlpZiAoIHRoaXMuX3N0YXJ0KCBldmVudCApICYmIHRoaXMuX2tleWRvd24oIGV2ZW50ICkgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0NCgkJfSwNCgkJa2V5dXA6ICJfc3RvcCIsDQoJCWZvY3VzOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMucHJldmlvdXMgPSB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCX0sDQoJCWJsdXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggdGhpcy5jYW5jZWxCbHVyICkgew0KCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl0aGlzLl9zdG9wKCk7DQoJCQl0aGlzLl9yZWZyZXNoKCk7DQoJCQlpZiAoIHRoaXMucHJldmlvdXMgIT09IHRoaXMuZWxlbWVudC52YWwoKSApIHsNCgkJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQgKTsNCgkJCX0NCgkJfSwNCgkJbW91c2V3aGVlbDogZnVuY3Rpb24oIGV2ZW50LCBkZWx0YSApIHsNCgkJCWlmICggIWRlbHRhICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCWlmICggIXRoaXMuc3Bpbm5pbmcgJiYgIXRoaXMuX3N0YXJ0KCBldmVudCApICkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCg0KCQkJdGhpcy5fc3BpbiggKGRlbHRhID4gMCA/IDEgOiAtMSkgKiB0aGlzLm9wdGlvbnMuc3RlcCwgZXZlbnQgKTsNCgkJCWNsZWFyVGltZW91dCggdGhpcy5tb3VzZXdoZWVsVGltZXIgKTsNCgkJCXRoaXMubW91c2V3aGVlbFRpbWVyID0gdGhpcy5fZGVsYXkoZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCB0aGlzLnNwaW5uaW5nICkgew0KCQkJCQl0aGlzLl9zdG9wKCBldmVudCApOw0KCQkJCX0NCgkJCX0sIDEwMCApOw0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfSwNCgkJIm1vdXNlZG93biAudWktc3Bpbm5lci1idXR0b24iOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQl2YXIgcHJldmlvdXM7DQoNCgkJCS8vIFdlIG5ldmVyIHdhbnQgdGhlIGJ1dHRvbnMgdG8gaGF2ZSBmb2N1czsgd2hlbmV2ZXIgdGhlIHVzZXIgaXMNCgkJCS8vIGludGVyYWN0aW5nIHdpdGggdGhlIHNwaW5uZXIsIHRoZSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0Lg0KCQkJLy8gSWYgdGhlIGlucHV0IGlzIGZvY3VzZWQgdGhlbiB0aGlzLnByZXZpb3VzIGlzIHByb3Blcmx5IHNldCBmcm9tDQoJCQkvLyB3aGVuIHRoZSBpbnB1dCBmaXJzdCByZWNlaXZlZCBmb2N1cy4gSWYgdGhlIGlucHV0IGlzIG5vdCBmb2N1c2VkDQoJCQkvLyB0aGVuIHdlIG5lZWQgdG8gc2V0IHRoaXMucHJldmlvdXMgYmFzZWQgb24gdGhlIHZhbHVlIGJlZm9yZSBzcGlubmluZy4NCgkJCXByZXZpb3VzID0gdGhpcy5lbGVtZW50WzBdID09PSB0aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQgPw0KCQkJCXRoaXMucHJldmlvdXMgOiB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCQlmdW5jdGlvbiBjaGVja0ZvY3VzKCkgew0KCQkJCXZhciBpc0FjdGl2ZSA9IHRoaXMuZWxlbWVudFswXSA9PT0gdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50Ow0KCQkJCWlmICggIWlzQWN0aXZlICkgew0KCQkJCQl0aGlzLmVsZW1lbnQuZm9jdXMoKTsNCgkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQkvLyBzdXBwb3J0OiBJRQ0KCQkJCQkvLyBJRSBzZXRzIGZvY3VzIGFzeW5jaHJvbm91c2x5LCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIGZvY3VzDQoJCQkJCS8vIG1vdmVkIG9mZiBvZiB0aGUgaW5wdXQgYmVjYXVzZSB0aGUgdXNlciBjbGlja2VkIG9uIHRoZSBidXR0b24uDQoJCQkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQl9KTsNCgkJCQl9DQoJCQl9DQoNCgkJCS8vIGVuc3VyZSBmb2N1cyBpcyBvbiAob3Igc3RheXMgb24pIHRoZSB0ZXh0IGZpZWxkDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoNCgkJCS8vIHN1cHBvcnQ6IElFDQoJCQkvLyBJRSBkb2Vzbid0IHByZXZlbnQgbW92aW5nIGZvY3VzIGV2ZW4gd2l0aCBldmVudC5wcmV2ZW50RGVmYXVsdCgpDQoJCQkvLyBzbyB3ZSBzZXQgYSBmbGFnIHRvIGtub3cgd2hlbiB3ZSBzaG91bGQgaWdub3JlIHRoZSBibHVyIGV2ZW50DQoJCQkvLyBhbmQgY2hlY2sgKGFnYWluKSBpZiBmb2N1cyBtb3ZlZCBvZmYgb2YgdGhlIGlucHV0Lg0KCQkJdGhpcy5jYW5jZWxCbHVyID0gdHJ1ZTsNCgkJCXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCkgew0KCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoJCQl9KTsNCg0KCQkJaWYgKCB0aGlzLl9zdGFydCggZXZlbnQgKSA9PT0gZmFsc2UgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5oYXNDbGFzcyggInVpLXNwaW5uZXItdXAiICkgPyAxIDogLTEsIGV2ZW50ICk7DQoJCX0sDQoJCSJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6ICJfc3RvcCIsDQoJCSJtb3VzZWVudGVyIC51aS1zcGlubmVyLWJ1dHRvbiI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCS8vIGJ1dHRvbiB3aWxsIGFkZCB1aS1zdGF0ZS1hY3RpdmUgaWYgbW91c2Ugd2FzIGRvd24gd2hpbGUgbW91c2VsZWF2ZSBhbmQga2VwdCBkb3duDQoJCQlpZiAoICEkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkuaGFzQ2xhc3MoICJ1aS1zdGF0ZS1hY3RpdmUiICkgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZiAoIHRoaXMuX3N0YXJ0KCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5oYXNDbGFzcyggInVpLXNwaW5uZXItdXAiICkgPyAxIDogLTEsIGV2ZW50ICk7DQoJCX0sDQoJCS8vIFRPRE86IGRvIHdlIHJlYWxseSB3YW50IHRvIGNvbnNpZGVyIHRoaXMgYSBzdG9wPw0KCQkvLyBzaG91bGRuJ3Qgd2UganVzdCBzdG9wIHRoZSByZXBlYXRlciBhbmQgd2FpdCB1bnRpbCBtb3VzZXVwIGJlZm9yZQ0KCQkvLyB3ZSB0cmlnZ2VyIHRoZSBzdG9wIGV2ZW50Pw0KCQkibW91c2VsZWF2ZSAudWktc3Bpbm5lci1idXR0b24iOiAiX3N0b3AiDQoJfSwNCg0KCV9kcmF3OiBmdW5jdGlvbigpIHsNCgkJdmFyIHVpU3Bpbm5lciA9IHRoaXMudWlTcGlubmVyID0gdGhpcy5lbGVtZW50DQoJCQkuYWRkQ2xhc3MoICJ1aS1zcGlubmVyLWlucHV0IiApDQoJCQkuYXR0ciggImF1dG9jb21wbGV0ZSIsICJvZmYiICkNCgkJCS53cmFwKCB0aGlzLl91aVNwaW5uZXJIdG1sKCkgKQ0KCQkJLnBhcmVudCgpDQoJCQkJLy8gYWRkIGJ1dHRvbnMNCgkJCQkuYXBwZW5kKCB0aGlzLl9idXR0b25IdG1sKCkgKTsNCg0KCQl0aGlzLmVsZW1lbnQuYXR0ciggInJvbGUiLCAic3BpbmJ1dHRvbiIgKTsNCg0KCQkvLyBidXR0b24gYmluZGluZ3MNCgkJdGhpcy5idXR0b25zID0gdWlTcGlubmVyLmZpbmQoICIudWktc3Bpbm5lci1idXR0b24iICkNCgkJCS5hdHRyKCAidGFiSW5kZXgiLCAtMSApDQoJCQkuYnV0dG9uKCkNCgkJCS5yZW1vdmVDbGFzcyggInVpLWNvcm5lci1hbGwiICk7DQoNCgkJLy8gSUUgNiBkb2Vzbid0IHVuZGVyc3RhbmQgaGVpZ2h0OiA1MCUgZm9yIHRoZSBidXR0b25zDQoJCS8vIHVubGVzcyB0aGUgd3JhcHBlciBoYXMgYW4gZXhwbGljaXQgaGVpZ2h0DQoJCWlmICggdGhpcy5idXR0b25zLmhlaWdodCgpID4gTWF0aC5jZWlsKCB1aVNwaW5uZXIuaGVpZ2h0KCkgKiAwLjUgKSAmJg0KCQkJCXVpU3Bpbm5lci5oZWlnaHQoKSA+IDAgKSB7DQoJCQl1aVNwaW5uZXIuaGVpZ2h0KCB1aVNwaW5uZXIuaGVpZ2h0KCkgKTsNCgkJfQ0KDQoJCS8vIGRpc2FibGUgc3Bpbm5lciBpZiBlbGVtZW50IHdhcyBhbHJlYWR5IGRpc2FibGVkDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5kaXNhYmxlKCk7DQoJCX0NCgl9LA0KDQoJX2tleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsDQoJCQlrZXlDb2RlID0gJC51aS5rZXlDb2RlOw0KDQoJCXN3aXRjaCAoIGV2ZW50LmtleUNvZGUgKSB7DQoJCWNhc2Uga2V5Q29kZS5VUDoNCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgMSwgZXZlbnQgKTsNCgkJCXJldHVybiB0cnVlOw0KCQljYXNlIGtleUNvZGUuRE9XTjoNCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgLTEsIGV2ZW50ICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJY2FzZSBrZXlDb2RlLlBBR0VfVVA6DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsIG9wdGlvbnMucGFnZSwgZXZlbnQgKTsNCgkJCXJldHVybiB0cnVlOw0KCQljYXNlIGtleUNvZGUuUEFHRV9ET1dOOg0KCQkJdGhpcy5fcmVwZWF0KCBudWxsLCAtb3B0aW9ucy5wYWdlLCBldmVudCApOw0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV91aVNwaW5uZXJIdG1sOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuICI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiI7DQoJfSwNCg0KCV9idXR0b25IdG1sOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuICIiICsNCgkJCSI8YSBjbGFzcz0ndWktc3Bpbm5lci1idXR0b24gdWktc3Bpbm5lci11cCB1aS1jb3JuZXItdHInPiIgKw0KCQkJCSI8c3BhbiBjbGFzcz0ndWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLnVwICsgIic+JiM5NjUwOzwvc3Bhbj4iICsNCgkJCSI8L2E+IiArDQoJCQkiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIgKw0KCQkJCSI8c3BhbiBjbGFzcz0ndWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLmRvd24gKyAiJz4mIzk2NjA7PC9zcGFuPiIgKw0KCQkJIjwvYT4iOw0KCX0sDQoNCglfc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5zcGlubmluZyAmJiB0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICggIXRoaXMuY291bnRlciApIHsNCgkJCXRoaXMuY291bnRlciA9IDE7DQoJCX0NCgkJdGhpcy5zcGlubmluZyA9IHRydWU7DQoJCXJldHVybiB0cnVlOw0KCX0sDQoNCglfcmVwZWF0OiBmdW5jdGlvbiggaSwgc3RlcHMsIGV2ZW50ICkgew0KCQlpID0gaSB8fCA1MDA7DQoNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3JlcGVhdCggNDAsIHN0ZXBzLCBldmVudCApOw0KCQl9LCBpICk7DQoNCgkJdGhpcy5fc3Bpbiggc3RlcHMgKiB0aGlzLm9wdGlvbnMuc3RlcCwgZXZlbnQgKTsNCgl9LA0KDQoJX3NwaW46IGZ1bmN0aW9uKCBzdGVwLCBldmVudCApIHsNCgkJdmFyIHZhbHVlID0gdGhpcy52YWx1ZSgpIHx8IDA7DQoNCgkJaWYgKCAhdGhpcy5jb3VudGVyICkgew0KCQkJdGhpcy5jb3VudGVyID0gMTsNCgkJfQ0KDQoJCXZhbHVlID0gdGhpcy5fYWRqdXN0VmFsdWUoIHZhbHVlICsgc3RlcCAqIHRoaXMuX2luY3JlbWVudCggdGhpcy5jb3VudGVyICkgKTsNCg0KCQlpZiAoICF0aGlzLnNwaW5uaW5nIHx8IHRoaXMuX3RyaWdnZXIoICJzcGluIiwgZXZlbnQsIHsgdmFsdWU6IHZhbHVlIH0gKSAhPT0gZmFsc2UpIHsNCgkJCXRoaXMuX3ZhbHVlKCB2YWx1ZSApOw0KCQkJdGhpcy5jb3VudGVyKys7DQoJCX0NCgl9LA0KDQoJX2luY3JlbWVudDogZnVuY3Rpb24oIGkgKSB7DQoJCXZhciBpbmNyZW1lbnRhbCA9IHRoaXMub3B0aW9ucy5pbmNyZW1lbnRhbDsNCg0KCQlpZiAoIGluY3JlbWVudGFsICkgew0KCQkJcmV0dXJuICQuaXNGdW5jdGlvbiggaW5jcmVtZW50YWwgKSA/DQoJCQkJaW5jcmVtZW50YWwoIGkgKSA6DQoJCQkJTWF0aC5mbG9vciggaSAqIGkgKiBpIC8gNTAwMDAgLSBpICogaSAvIDUwMCArIDE3ICogaSAvIDIwMCArIDEgKTsNCgkJfQ0KDQoJCXJldHVybiAxOw0KCX0sDQoNCglfcHJlY2lzaW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZWNpc2lvbiA9IHRoaXMuX3ByZWNpc2lvbk9mKCB0aGlzLm9wdGlvbnMuc3RlcCApOw0KCQlpZiAoIHRoaXMub3B0aW9ucy5taW4gIT09IG51bGwgKSB7DQoJCQlwcmVjaXNpb24gPSBNYXRoLm1heCggcHJlY2lzaW9uLCB0aGlzLl9wcmVjaXNpb25PZiggdGhpcy5vcHRpb25zLm1pbiApICk7DQoJCX0NCgkJcmV0dXJuIHByZWNpc2lvbjsNCgl9LA0KDQoJX3ByZWNpc2lvbk9mOiBmdW5jdGlvbiggbnVtICkgew0KCQl2YXIgc3RyID0gbnVtLnRvU3RyaW5nKCksDQoJCQlkZWNpbWFsID0gc3RyLmluZGV4T2YoICIuIiApOw0KCQlyZXR1cm4gZGVjaW1hbCA9PT0gLTEgPyAwIDogc3RyLmxlbmd0aCAtIGRlY2ltYWwgLSAxOw0KCX0sDQoNCglfYWRqdXN0VmFsdWU6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdmFyIGJhc2UsIGFib3ZlTWluLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQkvLyBtYWtlIHN1cmUgd2UncmUgYXQgYSB2YWxpZCBzdGVwDQoJCS8vIC0gZmluZCBvdXQgd2hlcmUgd2UgYXJlIHJlbGF0aXZlIHRvIHRoZSBiYXNlIChtaW4gb3IgMCkNCgkJYmFzZSA9IG9wdGlvbnMubWluICE9PSBudWxsID8gb3B0aW9ucy5taW4gOiAwOw0KCQlhYm92ZU1pbiA9IHZhbHVlIC0gYmFzZTsNCgkJLy8gLSByb3VuZCB0byB0aGUgbmVhcmVzdCBzdGVwDQoJCWFib3ZlTWluID0gTWF0aC5yb3VuZChhYm92ZU1pbiAvIG9wdGlvbnMuc3RlcCkgKiBvcHRpb25zLnN0ZXA7DQoJCS8vIC0gcm91bmRpbmcgaXMgYmFzZWQgb24gMCwgc28gYWRqdXN0IGJhY2sgdG8gb3VyIGJhc2UNCgkJdmFsdWUgPSBiYXNlICsgYWJvdmVNaW47DQoNCgkJLy8gZml4IHByZWNpc2lvbiBmcm9tIGJhZCBKUyBmbG9hdGluZyBwb2ludCBtYXRoDQoJCXZhbHVlID0gcGFyc2VGbG9hdCggdmFsdWUudG9GaXhlZCggdGhpcy5fcHJlY2lzaW9uKCkgKSApOw0KDQoJCS8vIGNsYW1wIHRoZSB2YWx1ZQ0KCQlpZiAoIG9wdGlvbnMubWF4ICE9PSBudWxsICYmIHZhbHVlID4gb3B0aW9ucy5tYXgpIHsNCgkJCXJldHVybiBvcHRpb25zLm1heDsNCgkJfQ0KCQlpZiAoIG9wdGlvbnMubWluICE9PSBudWxsICYmIHZhbHVlIDwgb3B0aW9ucy5taW4gKSB7DQoJCQlyZXR1cm4gb3B0aW9ucy5taW47DQoJCX0NCg0KCQlyZXR1cm4gdmFsdWU7DQoJfSwNCg0KCV9zdG9wOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuc3Bpbm5pbmcgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLm1vdXNld2hlZWxUaW1lciApOw0KCQl0aGlzLmNvdW50ZXIgPSAwOw0KCQl0aGlzLnNwaW5uaW5nID0gZmFsc2U7DQoJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQgKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiY3VsdHVyZSIgfHwga2V5ID09PSAibnVtYmVyRm9ybWF0IiApIHsNCgkJCXZhciBwcmV2VmFsdWUgPSB0aGlzLl9wYXJzZSggdGhpcy5lbGVtZW50LnZhbCgpICk7DQoJCQl0aGlzLm9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl0aGlzLmVsZW1lbnQudmFsKCB0aGlzLl9mb3JtYXQoIHByZXZWYWx1ZSApICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gIm1heCIgfHwga2V5ID09PSAibWluIiB8fCBrZXkgPT09ICJzdGVwIiApIHsNCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsNCgkJCQl2YWx1ZSA9IHRoaXMuX3BhcnNlKCB2YWx1ZSApOw0KCQkJfQ0KCQl9DQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCggIi51aS1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaWNvbnMudXAgKQ0KCQkJCS5hZGRDbGFzcyggdmFsdWUudXAgKTsNCgkJCXRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCggIi51aS1pY29uIiApDQoJCQkJLnJlbW92ZUNsYXNzKCB0aGlzLm9wdGlvbnMuaWNvbnMuZG93biApDQoJCQkJLmFkZENsYXNzKCB2YWx1ZS5kb3duICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApOw0KCQkJdGhpcy5lbGVtZW50LnByb3AoICJkaXNhYmxlZCIsICEhdmFsdWUgKTsNCgkJCXRoaXMuYnV0dG9ucy5idXR0b24oIHZhbHVlID8gImRpc2FibGUiIDogImVuYWJsZSIgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uczogc3Bpbm5lcl9tb2RpZmllcihmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdGhpcy5fc3VwZXIoIG9wdGlvbnMgKTsNCgl9KSwNCg0KCV9wYXJzZTogZnVuY3Rpb24oIHZhbCApIHsNCgkJaWYgKCB0eXBlb2YgdmFsID09PSAic3RyaW5nIiAmJiB2YWwgIT09ICIiICkgew0KCQkJdmFsID0gd2luZG93Lkdsb2JhbGl6ZSAmJiB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0ID8NCgkJCQlHbG9iYWxpemUucGFyc2VGbG9hdCggdmFsLCAxMCwgdGhpcy5vcHRpb25zLmN1bHR1cmUgKSA6ICt2YWw7DQoJCX0NCgkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgaXNOYU4oIHZhbCApID8gbnVsbCA6IHZhbDsNCgl9LA0KDQoJX2Zvcm1hdDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQlpZiAoIHZhbHVlID09PSAiIiApIHsNCgkJCXJldHVybiAiIjsNCgkJfQ0KCQlyZXR1cm4gd2luZG93Lkdsb2JhbGl6ZSAmJiB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0ID8NCgkJCUdsb2JhbGl6ZS5mb3JtYXQoIHZhbHVlLCB0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0LCB0aGlzLm9wdGlvbnMuY3VsdHVyZSApIDoNCgkJCXZhbHVlOw0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5hdHRyKHsNCgkJCSJhcmlhLXZhbHVlbWluIjogdGhpcy5vcHRpb25zLm1pbiwNCgkJCSJhcmlhLXZhbHVlbWF4IjogdGhpcy5vcHRpb25zLm1heCwNCgkJCS8vIFRPRE86IHdoYXQgc2hvdWxkIHdlIGRvIHdpdGggdmFsdWVzIHRoYXQgY2FuJ3QgYmUgcGFyc2VkPw0KCQkJImFyaWEtdmFsdWVub3ciOiB0aGlzLl9wYXJzZSggdGhpcy5lbGVtZW50LnZhbCgpICkNCgkJfSk7DQoJfSwNCg0KCWlzVmFsaWQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7DQoNCgkJLy8gbnVsbCBpcyBpbnZhbGlkDQoJCWlmICggdmFsdWUgPT09IG51bGwgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvLyBpZiB2YWx1ZSBnZXRzIGFkanVzdGVkLCBpdCdzIGludmFsaWQNCgkJcmV0dXJuIHZhbHVlID09PSB0aGlzLl9hZGp1c3RWYWx1ZSggdmFsdWUgKTsNCgl9LA0KDQoJLy8gdXBkYXRlIHRoZSB2YWx1ZSB3aXRob3V0IHRyaWdnZXJpbmcgY2hhbmdlDQoJX3ZhbHVlOiBmdW5jdGlvbiggdmFsdWUsIGFsbG93QW55ICkgew0KCQl2YXIgcGFyc2VkOw0KCQlpZiAoIHZhbHVlICE9PSAiIiApIHsNCgkJCXBhcnNlZCA9IHRoaXMuX3BhcnNlKCB2YWx1ZSApOw0KCQkJaWYgKCBwYXJzZWQgIT09IG51bGwgKSB7DQoJCQkJaWYgKCAhYWxsb3dBbnkgKSB7DQoJCQkJCXBhcnNlZCA9IHRoaXMuX2FkanVzdFZhbHVlKCBwYXJzZWQgKTsNCgkJCQl9DQoJCQkJdmFsdWUgPSB0aGlzLl9mb3JtYXQoIHBhcnNlZCApOw0KCQkJfQ0KCQl9DQoJCXRoaXMuZWxlbWVudC52YWwoIHZhbHVlICk7DQoJCXRoaXMuX3JlZnJlc2goKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVDbGFzcyggInVpLXNwaW5uZXItaW5wdXQiICkNCgkJCS5wcm9wKCAiZGlzYWJsZWQiLCBmYWxzZSApDQoJCQkucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKQ0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtdmFsdWVtaW4iICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS12YWx1ZW1heCIgKQ0KCQkJLnJlbW92ZUF0dHIoICJhcmlhLXZhbHVlbm93IiApOw0KCQl0aGlzLnVpU3Bpbm5lci5yZXBsYWNlV2l0aCggdGhpcy5lbGVtZW50ICk7DQoJfSwNCg0KCXN0ZXBVcDogc3Bpbm5lcl9tb2RpZmllcihmdW5jdGlvbiggc3RlcHMgKSB7DQoJCXRoaXMuX3N0ZXBVcCggc3RlcHMgKTsNCgl9KSwNCglfc3RlcFVwOiBmdW5jdGlvbiggc3RlcHMgKSB7DQoJCWlmICggdGhpcy5fc3RhcnQoKSApIHsNCgkJCXRoaXMuX3NwaW4oIChzdGVwcyB8fCAxKSAqIHRoaXMub3B0aW9ucy5zdGVwICk7DQoJCQl0aGlzLl9zdG9wKCk7DQoJCX0NCgl9LA0KDQoJc3RlcERvd246IHNwaW5uZXJfbW9kaWZpZXIoZnVuY3Rpb24oIHN0ZXBzICkgew0KCQl0aGlzLl9zdGVwRG93biggc3RlcHMgKTsNCgl9KSwNCglfc3RlcERvd246IGZ1bmN0aW9uKCBzdGVwcyApIHsNCgkJaWYgKCB0aGlzLl9zdGFydCgpICkgew0KCQkJdGhpcy5fc3BpbiggKHN0ZXBzIHx8IDEpICogLXRoaXMub3B0aW9ucy5zdGVwICk7DQoJCQl0aGlzLl9zdG9wKCk7DQoJCX0NCgl9LA0KDQoJcGFnZVVwOiBzcGlubmVyX21vZGlmaWVyKGZ1bmN0aW9uKCBwYWdlcyApIHsNCgkJdGhpcy5fc3RlcFVwKCAocGFnZXMgfHwgMSkgKiB0aGlzLm9wdGlvbnMucGFnZSApOw0KCX0pLA0KDQoJcGFnZURvd246IHNwaW5uZXJfbW9kaWZpZXIoZnVuY3Rpb24oIHBhZ2VzICkgew0KCQl0aGlzLl9zdGVwRG93biggKHBhZ2VzIHx8IDEpICogdGhpcy5vcHRpb25zLnBhZ2UgKTsNCgl9KSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsICkgew0KCQlpZiAoICFhcmd1bWVudHMubGVuZ3RoICkgew0KCQkJcmV0dXJuIHRoaXMuX3BhcnNlKCB0aGlzLmVsZW1lbnQudmFsKCkgKTsNCgkJfQ0KCQlzcGlubmVyX21vZGlmaWVyKCB0aGlzLl92YWx1ZSApLmNhbGwoIHRoaXMsIG5ld1ZhbCApOw0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy51aVNwaW5uZXI7DQoJfQ0KfSk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgVGFicyAxLjExLjQNCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICoNCiAqIGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3RhYnMvDQogKi8NCg0KDQp2YXIgdGFicyA9ICQud2lkZ2V0KCAidWkudGFicyIsIHsNCgl2ZXJzaW9uOiAiMS4xMS40IiwNCglkZWxheTogMzAwLA0KCW9wdGlvbnM6IHsNCgkJYWN0aXZlOiBudWxsLA0KCQljb2xsYXBzaWJsZTogZmFsc2UsDQoJCWV2ZW50OiAiY2xpY2siLA0KCQloZWlnaHRTdHlsZTogImNvbnRlbnQiLA0KCQloaWRlOiBudWxsLA0KCQlzaG93OiBudWxsLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQlhY3RpdmF0ZTogbnVsbCwNCgkJYmVmb3JlQWN0aXZhdGU6IG51bGwsDQoJCWJlZm9yZUxvYWQ6IG51bGwsDQoJCWxvYWQ6IG51bGwNCgl9LA0KDQoJX2lzTG9jYWw6IChmdW5jdGlvbigpIHsNCgkJdmFyIHJoYXNoID0gLyMuKiQvOw0KDQoJCXJldHVybiBmdW5jdGlvbiggYW5jaG9yICkgew0KCQkJdmFyIGFuY2hvclVybCwgbG9jYXRpb25Vcmw7DQoNCgkJCS8vIHN1cHBvcnQ6IElFNw0KCQkJLy8gSUU3IGRvZXNuJ3Qgbm9ybWFsaXplIHRoZSBocmVmIHByb3BlcnR5IHdoZW4gc2V0IHZpYSBzY3JpcHQgKCM5MzE3KQ0KCQkJYW5jaG9yID0gYW5jaG9yLmNsb25lTm9kZSggZmFsc2UgKTsNCg0KCQkJYW5jaG9yVXJsID0gYW5jaG9yLmhyZWYucmVwbGFjZSggcmhhc2gsICIiICk7DQoJCQlsb2NhdGlvblVybCA9IGxvY2F0aW9uLmhyZWYucmVwbGFjZSggcmhhc2gsICIiICk7DQoNCgkJCS8vIGRlY29kaW5nIG1heSB0aHJvdyBhbiBlcnJvciBpZiB0aGUgVVJMIGlzbid0IFVURi04ICgjOTUxOCkNCgkJCXRyeSB7DQoJCQkJYW5jaG9yVXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KCBhbmNob3JVcmwgKTsNCgkJCX0gY2F0Y2ggKCBlcnJvciApIHt9DQoJCQl0cnkgew0KCQkJCWxvY2F0aW9uVXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KCBsb2NhdGlvblVybCApOw0KCQkJfSBjYXRjaCAoIGVycm9yICkge30NCg0KCQkJcmV0dXJuIGFuY2hvci5oYXNoLmxlbmd0aCA+IDEgJiYgYW5jaG9yVXJsID09PSBsb2NhdGlvblVybDsNCgkJfTsNCgl9KSgpLA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJdGhpcy5ydW5uaW5nID0gZmFsc2U7DQoNCgkJdGhpcy5lbGVtZW50DQoJCQkuYWRkQ2xhc3MoICJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiApDQoJCQkudG9nZ2xlQ2xhc3MoICJ1aS10YWJzLWNvbGxhcHNpYmxlIiwgb3B0aW9ucy5jb2xsYXBzaWJsZSApOw0KDQoJCXRoaXMuX3Byb2Nlc3NUYWJzKCk7DQoJCW9wdGlvbnMuYWN0aXZlID0gdGhpcy5faW5pdGlhbEFjdGl2ZSgpOw0KDQoJCS8vIFRha2UgZGlzYWJsaW5nIHRhYnMgdmlhIGNsYXNzIGF0dHJpYnV0ZSBmcm9tIEhUTUwNCgkJLy8gaW50byBhY2NvdW50IGFuZCB1cGRhdGUgb3B0aW9uIHByb3Blcmx5Lg0KCQlpZiAoICQuaXNBcnJheSggb3B0aW9ucy5kaXNhYmxlZCApICkgew0KCQkJb3B0aW9ucy5kaXNhYmxlZCA9ICQudW5pcXVlKCBvcHRpb25zLmRpc2FibGVkLmNvbmNhdCgNCgkJCQkkLm1hcCggdGhpcy50YWJzLmZpbHRlciggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSwgZnVuY3Rpb24oIGxpICkgew0KCQkJCQlyZXR1cm4gdGhhdC50YWJzLmluZGV4KCBsaSApOw0KCQkJCX0pDQoJCQkpICkuc29ydCgpOw0KCQl9DQoNCgkJLy8gY2hlY2sgZm9yIGxlbmd0aCBhdm9pZHMgZXJyb3Igd2hlbiBpbml0aWFsaXppbmcgZW1wdHkgbGlzdA0KCQlpZiAoIHRoaXMub3B0aW9ucy5hY3RpdmUgIT09IGZhbHNlICYmIHRoaXMuYW5jaG9ycy5sZW5ndGggKSB7DQoJCQl0aGlzLmFjdGl2ZSA9IHRoaXMuX2ZpbmRBY3RpdmUoIG9wdGlvbnMuYWN0aXZlICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmFjdGl2ZSA9ICQoKTsNCgkJfQ0KDQoJCXRoaXMuX3JlZnJlc2goKTsNCg0KCQlpZiAoIHRoaXMuYWN0aXZlLmxlbmd0aCApIHsNCgkJCXRoaXMubG9hZCggb3B0aW9ucy5hY3RpdmUgKTsNCgkJfQ0KCX0sDQoNCglfaW5pdGlhbEFjdGl2ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBhY3RpdmUgPSB0aGlzLm9wdGlvbnMuYWN0aXZlLA0KCQkJY29sbGFwc2libGUgPSB0aGlzLm9wdGlvbnMuY29sbGFwc2libGUsDQoJCQlsb2NhdGlvbkhhc2ggPSBsb2NhdGlvbi5oYXNoLnN1YnN0cmluZyggMSApOw0KDQoJCWlmICggYWN0aXZlID09PSBudWxsICkgew0KCQkJLy8gY2hlY2sgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgaW4gdGhlIFVSTA0KCQkJaWYgKCBsb2NhdGlvbkhhc2ggKSB7DQoJCQkJdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oIGksIHRhYiApIHsNCgkJCQkJaWYgKCAkKCB0YWIgKS5hdHRyKCAiYXJpYS1jb250cm9scyIgKSA9PT0gbG9jYXRpb25IYXNoICkgew0KCQkJCQkJYWN0aXZlID0gaTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkJfQ0KDQoJCQkvLyBjaGVjayBmb3IgYSB0YWIgbWFya2VkIGFjdGl2ZSB2aWEgYSBjbGFzcw0KCQkJaWYgKCBhY3RpdmUgPT09IG51bGwgKSB7DQoJCQkJYWN0aXZlID0gdGhpcy50YWJzLmluZGV4KCB0aGlzLnRhYnMuZmlsdGVyKCAiLnVpLXRhYnMtYWN0aXZlIiApICk7DQoJCQl9DQoNCgkJCS8vIG5vIGFjdGl2ZSB0YWIsIHNldCB0byBmYWxzZQ0KCQkJaWYgKCBhY3RpdmUgPT09IG51bGwgfHwgYWN0aXZlID09PSAtMSApIHsNCgkJCQlhY3RpdmUgPSB0aGlzLnRhYnMubGVuZ3RoID8gMCA6IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJLy8gaGFuZGxlIG51bWJlcnM6IG5lZ2F0aXZlLCBvdXQgb2YgcmFuZ2UNCgkJaWYgKCBhY3RpdmUgIT09IGZhbHNlICkgew0KCQkJYWN0aXZlID0gdGhpcy50YWJzLmluZGV4KCB0aGlzLnRhYnMuZXEoIGFjdGl2ZSApICk7DQoJCQlpZiAoIGFjdGl2ZSA9PT0gLTEgKSB7DQoJCQkJYWN0aXZlID0gY29sbGFwc2libGUgPyBmYWxzZSA6IDA7DQoJCQl9DQoJCX0NCg0KCQkvLyBkb24ndCBhbGxvdyBjb2xsYXBzaWJsZTogZmFsc2UgYW5kIGFjdGl2ZTogZmFsc2UNCgkJaWYgKCAhY29sbGFwc2libGUgJiYgYWN0aXZlID09PSBmYWxzZSAmJiB0aGlzLmFuY2hvcnMubGVuZ3RoICkgew0KCQkJYWN0aXZlID0gMDsNCgkJfQ0KDQoJCXJldHVybiBhY3RpdmU7DQoJfSwNCg0KCV9nZXRDcmVhdGVFdmVudERhdGE6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJdGFiOiB0aGlzLmFjdGl2ZSwNCgkJCXBhbmVsOiAhdGhpcy5hY3RpdmUubGVuZ3RoID8gJCgpIDogdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRoaXMuYWN0aXZlICkNCgkJfTsNCgl9LA0KDQoJX3RhYktleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGZvY3VzZWRUYWIgPSAkKCB0aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQgKS5jbG9zZXN0KCAibGkiICksDQoJCQlzZWxlY3RlZEluZGV4ID0gdGhpcy50YWJzLmluZGV4KCBmb2N1c2VkVGFiICksDQoJCQlnb2luZ0ZvcndhcmQgPSB0cnVlOw0KDQoJCWlmICggdGhpcy5faGFuZGxlUGFnZU5hdiggZXZlbnQgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXN3aXRjaCAoIGV2ZW50LmtleUNvZGUgKSB7DQoJCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkRPV046DQoJCQkJc2VsZWN0ZWRJbmRleCsrOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuVVA6DQoJCQljYXNlICQudWkua2V5Q29kZS5MRUZUOg0KCQkJCWdvaW5nRm9yd2FyZCA9IGZhbHNlOw0KCQkJCXNlbGVjdGVkSW5kZXgtLTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkVORDoNCgkJCQlzZWxlY3RlZEluZGV4ID0gdGhpcy5hbmNob3JzLmxlbmd0aCAtIDE7DQoJCQkJYnJlYWs7DQoJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCXNlbGVjdGVkSW5kZXggPSAwOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuU1BBQ0U6DQoJCQkJLy8gQWN0aXZhdGUgb25seSwgbm8gY29sbGFwc2luZw0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJY2xlYXJUaW1lb3V0KCB0aGlzLmFjdGl2YXRpbmcgKTsNCgkJCQl0aGlzLl9hY3RpdmF0ZSggc2VsZWN0ZWRJbmRleCApOw0KCQkJCXJldHVybjsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkVOVEVSOg0KCQkJCS8vIFRvZ2dsZSAoY2FuY2VsIGRlbGF5ZWQgYWN0aXZhdGlvbiwgYWxsb3cgY29sbGFwc2luZykNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCWNsZWFyVGltZW91dCggdGhpcy5hY3RpdmF0aW5nICk7DQoJCQkJLy8gRGV0ZXJtaW5lIGlmIHdlIHNob3VsZCBjb2xsYXBzZSBvciBhY3RpdmF0ZQ0KCQkJCXRoaXMuX2FjdGl2YXRlKCBzZWxlY3RlZEluZGV4ID09PSB0aGlzLm9wdGlvbnMuYWN0aXZlID8gZmFsc2UgOiBzZWxlY3RlZEluZGV4ICk7DQoJCQkJcmV0dXJuOw0KCQkJZGVmYXVsdDoNCgkJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBGb2N1cyB0aGUgYXBwcm9wcmlhdGUgdGFiLCBiYXNlZCBvbiB3aGljaCBrZXkgd2FzIHByZXNzZWQNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLmFjdGl2YXRpbmcgKTsNCgkJc2VsZWN0ZWRJbmRleCA9IHRoaXMuX2ZvY3VzTmV4dFRhYiggc2VsZWN0ZWRJbmRleCwgZ29pbmdGb3J3YXJkICk7DQoNCgkJLy8gTmF2aWdhdGluZyB3aXRoIGNvbnRyb2wvY29tbWFuZCBrZXkgd2lsbCBwcmV2ZW50IGF1dG9tYXRpYyBhY3RpdmF0aW9uDQoJCWlmICggIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXkgKSB7DQoNCgkJCS8vIFVwZGF0ZSBhcmlhLXNlbGVjdGVkIGltbWVkaWF0ZWx5IHNvIHRoYXQgQVQgdGhpbmsgdGhlIHRhYiBpcyBhbHJlYWR5IHNlbGVjdGVkLg0KCQkJLy8gT3RoZXJ3aXNlIEFUIG1heSBjb25mdXNlIHRoZSB1c2VyIGJ5IHN0YXRpbmcgdGhhdCB0aGV5IG5lZWQgdG8gYWN0aXZhdGUgdGhlIHRhYiwNCgkJCS8vIGJ1dCB0aGUgdGFiIHdpbGwgYWxyZWFkeSBiZSBhY3RpdmF0ZWQgYnkgdGhlIHRpbWUgdGhlIGFubm91bmNlbWVudCBmaW5pc2hlcy4NCgkJCWZvY3VzZWRUYWIuYXR0ciggImFyaWEtc2VsZWN0ZWQiLCAiZmFsc2UiICk7DQoJCQl0aGlzLnRhYnMuZXEoIHNlbGVjdGVkSW5kZXggKS5hdHRyKCAiYXJpYS1zZWxlY3RlZCIsICJ0cnVlIiApOw0KDQoJCQl0aGlzLmFjdGl2YXRpbmcgPSB0aGlzLl9kZWxheShmdW5jdGlvbigpIHsNCgkJCQl0aGlzLm9wdGlvbiggImFjdGl2ZSIsIHNlbGVjdGVkSW5kZXggKTsNCgkJCX0sIHRoaXMuZGVsYXkgKTsNCgkJfQ0KCX0sDQoNCglfcGFuZWxLZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggdGhpcy5faGFuZGxlUGFnZU5hdiggZXZlbnQgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEN0cmwrdXAgbW92ZXMgZm9jdXMgdG8gdGhlIGN1cnJlbnQgdGFiDQoJCWlmICggZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuVVAgKSB7DQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJdGhpcy5hY3RpdmUuZm9jdXMoKTsNCgkJfQ0KCX0sDQoNCgkvLyBBbHQrcGFnZSB1cC9kb3duIG1vdmVzIGZvY3VzIHRvIHRoZSBwcmV2aW91cy9uZXh0IHRhYiAoYW5kIGFjdGl2YXRlcykNCglfaGFuZGxlUGFnZU5hdjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuUEFHRV9VUCApIHsNCgkJCXRoaXMuX2FjdGl2YXRlKCB0aGlzLl9mb2N1c05leHRUYWIoIHRoaXMub3B0aW9ucy5hY3RpdmUgLSAxLCBmYWxzZSApICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCQlpZiAoIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOICkgew0KCQkJdGhpcy5fYWN0aXZhdGUoIHRoaXMuX2ZvY3VzTmV4dFRhYiggdGhpcy5vcHRpb25zLmFjdGl2ZSArIDEsIHRydWUgKSApOw0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgl9LA0KDQoJX2ZpbmROZXh0VGFiOiBmdW5jdGlvbiggaW5kZXgsIGdvaW5nRm9yd2FyZCApIHsNCgkJdmFyIGxhc3RUYWJJbmRleCA9IHRoaXMudGFicy5sZW5ndGggLSAxOw0KDQoJCWZ1bmN0aW9uIGNvbnN0cmFpbigpIHsNCgkJCWlmICggaW5kZXggPiBsYXN0VGFiSW5kZXggKSB7DQoJCQkJaW5kZXggPSAwOw0KCQkJfQ0KCQkJaWYgKCBpbmRleCA8IDAgKSB7DQoJCQkJaW5kZXggPSBsYXN0VGFiSW5kZXg7DQoJCQl9DQoJCQlyZXR1cm4gaW5kZXg7DQoJCX0NCg0KCQl3aGlsZSAoICQuaW5BcnJheSggY29uc3RyYWluKCksIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApICE9PSAtMSApIHsNCgkJCWluZGV4ID0gZ29pbmdGb3J3YXJkID8gaW5kZXggKyAxIDogaW5kZXggLSAxOw0KCQl9DQoNCgkJcmV0dXJuIGluZGV4Ow0KCX0sDQoNCglfZm9jdXNOZXh0VGFiOiBmdW5jdGlvbiggaW5kZXgsIGdvaW5nRm9yd2FyZCApIHsNCgkJaW5kZXggPSB0aGlzLl9maW5kTmV4dFRhYiggaW5kZXgsIGdvaW5nRm9yd2FyZCApOw0KCQl0aGlzLnRhYnMuZXEoIGluZGV4ICkuZm9jdXMoKTsNCgkJcmV0dXJuIGluZGV4Ow0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJaWYgKCBrZXkgPT09ICJhY3RpdmUiICkgew0KCQkJLy8gX2FjdGl2YXRlKCkgd2lsbCBoYW5kbGUgaW52YWxpZCB2YWx1ZXMgYW5kIHVwZGF0ZSB0aGlzLm9wdGlvbnMNCgkJCXRoaXMuX2FjdGl2YXRlKCB2YWx1ZSApOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQkvLyBkb24ndCB1c2UgdGhlIHdpZGdldCBmYWN0b3J5J3MgZGlzYWJsZWQgaGFuZGxpbmcNCgkJCXRoaXMuX3NldHVwRGlzYWJsZWQoIHZhbHVlICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSk7DQoNCgkJaWYgKCBrZXkgPT09ICJjb2xsYXBzaWJsZSIgKSB7DQoJCQl0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoICJ1aS10YWJzLWNvbGxhcHNpYmxlIiwgdmFsdWUgKTsNCgkJCS8vIFNldHRpbmcgY29sbGFwc2libGU6IGZhbHNlIHdoaWxlIGNvbGxhcHNlZDsgb3BlbiBmaXJzdCBwYW5lbA0KCQkJaWYgKCAhdmFsdWUgJiYgdGhpcy5vcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgKSB7DQoJCQkJdGhpcy5fYWN0aXZhdGUoIDAgKTsNCgkJCX0NCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZXZlbnQiICkgew0KCQkJdGhpcy5fc2V0dXBFdmVudHMoIHZhbHVlICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImhlaWdodFN0eWxlIiApIHsNCgkJCXRoaXMuX3NldHVwSGVpZ2h0U3R5bGUoIHZhbHVlICk7DQoJCX0NCgl9LA0KDQoJX3Nhbml0aXplU2VsZWN0b3I6IGZ1bmN0aW9uKCBoYXNoICkgew0KCQlyZXR1cm4gaGFzaCA/IGhhc2gucmVwbGFjZSggL1shIiQlJicoKSorLC5cLzo7PD0+P0BcW1xdXF5ge3x9fl0vZywgIlxcJCYiICkgOiAiIjsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJbGlzID0gdGhpcy50YWJsaXN0LmNoaWxkcmVuKCAiOmhhcyhhW2hyZWZdKSIgKTsNCg0KCQkvLyBnZXQgZGlzYWJsZWQgdGFicyBmcm9tIGNsYXNzIGF0dHJpYnV0ZSBmcm9tIEhUTUwNCgkJLy8gdGhpcyB3aWxsIGdldCBjb252ZXJ0ZWQgdG8gYSBib29sZWFuIGlmIG5lZWRlZCBpbiBfcmVmcmVzaCgpDQoJCW9wdGlvbnMuZGlzYWJsZWQgPSAkLm1hcCggbGlzLmZpbHRlciggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSwgZnVuY3Rpb24oIHRhYiApIHsNCgkJCXJldHVybiBsaXMuaW5kZXgoIHRhYiApOw0KCQl9KTsNCg0KCQl0aGlzLl9wcm9jZXNzVGFicygpOw0KDQoJCS8vIHdhcyBjb2xsYXBzZWQgb3Igbm8gdGFicw0KCQlpZiAoIG9wdGlvbnMuYWN0aXZlID09PSBmYWxzZSB8fCAhdGhpcy5hbmNob3JzLmxlbmd0aCApIHsNCgkJCW9wdGlvbnMuYWN0aXZlID0gZmFsc2U7DQoJCQl0aGlzLmFjdGl2ZSA9ICQoKTsNCgkJLy8gd2FzIGFjdGl2ZSwgYnV0IGFjdGl2ZSB0YWIgaXMgZ29uZQ0KCQl9IGVsc2UgaWYgKCB0aGlzLmFjdGl2ZS5sZW5ndGggJiYgISQuY29udGFpbnMoIHRoaXMudGFibGlzdFsgMCBdLCB0aGlzLmFjdGl2ZVsgMCBdICkgKSB7DQoJCQkvLyBhbGwgcmVtYWluaW5nIHRhYnMgYXJlIGRpc2FibGVkDQoJCQlpZiAoIHRoaXMudGFicy5sZW5ndGggPT09IG9wdGlvbnMuZGlzYWJsZWQubGVuZ3RoICkgew0KCQkJCW9wdGlvbnMuYWN0aXZlID0gZmFsc2U7DQoJCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoJCQkvLyBhY3RpdmF0ZSBwcmV2aW91cyB0YWINCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5fYWN0aXZhdGUoIHRoaXMuX2ZpbmROZXh0VGFiKCBNYXRoLm1heCggMCwgb3B0aW9ucy5hY3RpdmUgLSAxICksIGZhbHNlICkgKTsNCgkJCX0NCgkJLy8gd2FzIGFjdGl2ZSwgYWN0aXZlIHRhYiBzdGlsbCBleGlzdHMNCgkJfSBlbHNlIHsNCgkJCS8vIG1ha2Ugc3VyZSBhY3RpdmUgaW5kZXggaXMgY29ycmVjdA0KCQkJb3B0aW9ucy5hY3RpdmUgPSB0aGlzLnRhYnMuaW5kZXgoIHRoaXMuYWN0aXZlICk7DQoJCX0NCg0KCQl0aGlzLl9yZWZyZXNoKCk7DQoJfSwNCg0KCV9yZWZyZXNoOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fc2V0dXBEaXNhYmxlZCggdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoJCXRoaXMuX3NldHVwRXZlbnRzKCB0aGlzLm9wdGlvbnMuZXZlbnQgKTsNCgkJdGhpcy5fc2V0dXBIZWlnaHRTdHlsZSggdGhpcy5vcHRpb25zLmhlaWdodFN0eWxlICk7DQoNCgkJdGhpcy50YWJzLm5vdCggdGhpcy5hY3RpdmUgKS5hdHRyKHsNCgkJCSJhcmlhLXNlbGVjdGVkIjogImZhbHNlIiwNCgkJCSJhcmlhLWV4cGFuZGVkIjogImZhbHNlIiwNCgkJCXRhYkluZGV4OiAtMQ0KCQl9KTsNCgkJdGhpcy5wYW5lbHMubm90KCB0aGlzLl9nZXRQYW5lbEZvclRhYiggdGhpcy5hY3RpdmUgKSApDQoJCQkuaGlkZSgpDQoJCQkuYXR0cih7DQoJCQkJImFyaWEtaGlkZGVuIjogInRydWUiDQoJCQl9KTsNCg0KCQkvLyBNYWtlIHN1cmUgb25lIHRhYiBpcyBpbiB0aGUgdGFiIG9yZGVyDQoJCWlmICggIXRoaXMuYWN0aXZlLmxlbmd0aCApIHsNCgkJCXRoaXMudGFicy5lcSggMCApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlDQoJCQkJLmFkZENsYXNzKCAidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiApDQoJCQkJLmF0dHIoew0KCQkJCQkiYXJpYS1zZWxlY3RlZCI6ICJ0cnVlIiwNCgkJCQkJImFyaWEtZXhwYW5kZWQiOiAidHJ1ZSIsDQoJCQkJCXRhYkluZGV4OiAwDQoJCQkJfSk7DQoJCQl0aGlzLl9nZXRQYW5lbEZvclRhYiggdGhpcy5hY3RpdmUgKQ0KCQkJCS5zaG93KCkNCgkJCQkuYXR0cih7DQoJCQkJCSJhcmlhLWhpZGRlbiI6ICJmYWxzZSINCgkJCQl9KTsNCgkJfQ0KCX0sDQoNCglfcHJvY2Vzc1RhYnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlwcmV2VGFicyA9IHRoaXMudGFicywNCgkJCXByZXZBbmNob3JzID0gdGhpcy5hbmNob3JzLA0KCQkJcHJldlBhbmVscyA9IHRoaXMucGFuZWxzOw0KDQoJCXRoaXMudGFibGlzdCA9IHRoaXMuX2dldExpc3QoKQ0KCQkJLmFkZENsYXNzKCAidWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiICkNCgkJCS5hdHRyKCAicm9sZSIsICJ0YWJsaXN0IiApDQoNCgkJCS8vIFByZXZlbnQgdXNlcnMgZnJvbSBmb2N1c2luZyBkaXNhYmxlZCB0YWJzIHZpYSBjbGljaw0KCQkJLmRlbGVnYXRlKCAiPiBsaSIsICJtb3VzZWRvd24iICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggJCggdGhpcyApLmlzKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApICkgew0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCX0NCgkJCX0pDQoNCgkJCS8vIHN1cHBvcnQ6IElFIDw5DQoJCQkvLyBQcmV2ZW50aW5nIHRoZSBkZWZhdWx0IGFjdGlvbiBpbiBtb3VzZWRvd24gZG9lc24ndCBwcmV2ZW50IElFDQoJCQkvLyBmcm9tIGZvY3VzaW5nIHRoZSBlbGVtZW50LCBzbyBpZiB0aGUgYW5jaG9yIGdldHMgZm9jdXNlZCwgYmx1ci4NCgkJCS8vIFdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgZm9jdXNpbmcgdGhlIHByZXZpb3VzbHkgZm9jdXNlZA0KCQkJLy8gZWxlbWVudCBzaW5jZSBjbGlja2luZyBvbiBhIG5vbi1mb2N1c2FibGUgZWxlbWVudCBzaG91bGQgZm9jdXMNCgkJCS8vIHRoZSBib2R5IGFueXdheS4NCgkJCS5kZWxlZ2F0ZSggIi51aS10YWJzLWFuY2hvciIsICJmb2N1cyIgKyB0aGlzLmV2ZW50TmFtZXNwYWNlLCBmdW5jdGlvbigpIHsNCgkJCQlpZiAoICQoIHRoaXMgKS5jbG9zZXN0KCAibGkiICkuaXMoICIudWktc3RhdGUtZGlzYWJsZWQiICkgKSB7DQoJCQkJCXRoaXMuYmx1cigpOw0KCQkJCX0NCgkJCX0pOw0KDQoJCXRoaXMudGFicyA9IHRoaXMudGFibGlzdC5maW5kKCAiPiBsaTpoYXMoYVtocmVmXSkiICkNCgkJCS5hZGRDbGFzcyggInVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCIgKQ0KCQkJLmF0dHIoew0KCQkJCXJvbGU6ICJ0YWIiLA0KCQkJCXRhYkluZGV4OiAtMQ0KCQkJfSk7DQoNCgkJdGhpcy5hbmNob3JzID0gdGhpcy50YWJzLm1hcChmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gJCggImEiLCB0aGlzIClbIDAgXTsNCgkJCX0pDQoJCQkuYWRkQ2xhc3MoICJ1aS10YWJzLWFuY2hvciIgKQ0KCQkJLmF0dHIoew0KCQkJCXJvbGU6ICJwcmVzZW50YXRpb24iLA0KCQkJCXRhYkluZGV4OiAtMQ0KCQkJfSk7DQoNCgkJdGhpcy5wYW5lbHMgPSAkKCk7DQoNCgkJdGhpcy5hbmNob3JzLmVhY2goZnVuY3Rpb24oIGksIGFuY2hvciApIHsNCgkJCXZhciBzZWxlY3RvciwgcGFuZWwsIHBhbmVsSWQsDQoJCQkJYW5jaG9ySWQgPSAkKCBhbmNob3IgKS51bmlxdWVJZCgpLmF0dHIoICJpZCIgKSwNCgkJCQl0YWIgPSAkKCBhbmNob3IgKS5jbG9zZXN0KCAibGkiICksDQoJCQkJb3JpZ2luYWxBcmlhQ29udHJvbHMgPSB0YWIuYXR0ciggImFyaWEtY29udHJvbHMiICk7DQoNCgkJCS8vIGlubGluZSB0YWINCgkJCWlmICggdGhhdC5faXNMb2NhbCggYW5jaG9yICkgKSB7DQoJCQkJc2VsZWN0b3IgPSBhbmNob3IuaGFzaDsNCgkJCQlwYW5lbElkID0gc2VsZWN0b3Iuc3Vic3RyaW5nKCAxICk7DQoJCQkJcGFuZWwgPSB0aGF0LmVsZW1lbnQuZmluZCggdGhhdC5fc2FuaXRpemVTZWxlY3Rvciggc2VsZWN0b3IgKSApOw0KCQkJLy8gcmVtb3RlIHRhYg0KCQkJfSBlbHNlIHsNCgkJCQkvLyBJZiB0aGUgdGFiIGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGFyaWEtY29udHJvbHMsDQoJCQkJLy8gZ2VuZXJhdGUgYW4gaWQgYnkgdXNpbmcgYSB0aHJvdy1hd2F5IGVsZW1lbnQNCgkJCQlwYW5lbElkID0gdGFiLmF0dHIoICJhcmlhLWNvbnRyb2xzIiApIHx8ICQoIHt9ICkudW5pcXVlSWQoKVsgMCBdLmlkOw0KCQkJCXNlbGVjdG9yID0gIiMiICsgcGFuZWxJZDsNCgkJCQlwYW5lbCA9IHRoYXQuZWxlbWVudC5maW5kKCBzZWxlY3RvciApOw0KCQkJCWlmICggIXBhbmVsLmxlbmd0aCApIHsNCgkJCQkJcGFuZWwgPSB0aGF0Ll9jcmVhdGVQYW5lbCggcGFuZWxJZCApOw0KCQkJCQlwYW5lbC5pbnNlcnRBZnRlciggdGhhdC5wYW5lbHNbIGkgLSAxIF0gfHwgdGhhdC50YWJsaXN0ICk7DQoJCQkJfQ0KCQkJCXBhbmVsLmF0dHIoICJhcmlhLWxpdmUiLCAicG9saXRlIiApOw0KCQkJfQ0KDQoJCQlpZiAoIHBhbmVsLmxlbmd0aCkgew0KCQkJCXRoYXQucGFuZWxzID0gdGhhdC5wYW5lbHMuYWRkKCBwYW5lbCApOw0KCQkJfQ0KCQkJaWYgKCBvcmlnaW5hbEFyaWFDb250cm9scyApIHsNCgkJCQl0YWIuZGF0YSggInVpLXRhYnMtYXJpYS1jb250cm9scyIsIG9yaWdpbmFsQXJpYUNvbnRyb2xzICk7DQoJCQl9DQoJCQl0YWIuYXR0cih7DQoJCQkJImFyaWEtY29udHJvbHMiOiBwYW5lbElkLA0KCQkJCSJhcmlhLWxhYmVsbGVkYnkiOiBhbmNob3JJZA0KCQkJfSk7DQoJCQlwYW5lbC5hdHRyKCAiYXJpYS1sYWJlbGxlZGJ5IiwgYW5jaG9ySWQgKTsNCgkJfSk7DQoNCgkJdGhpcy5wYW5lbHMNCgkJCS5hZGRDbGFzcyggInVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIgKQ0KCQkJLmF0dHIoICJyb2xlIiwgInRhYnBhbmVsIiApOw0KDQoJCS8vIEF2b2lkIG1lbW9yeSBsZWFrcyAoIzEwMDU2KQ0KCQlpZiAoIHByZXZUYWJzICkgew0KCQkJdGhpcy5fb2ZmKCBwcmV2VGFicy5ub3QoIHRoaXMudGFicyApICk7DQoJCQl0aGlzLl9vZmYoIHByZXZBbmNob3JzLm5vdCggdGhpcy5hbmNob3JzICkgKTsNCgkJCXRoaXMuX29mZiggcHJldlBhbmVscy5ub3QoIHRoaXMucGFuZWxzICkgKTsNCgkJfQ0KCX0sDQoNCgkvLyBhbGxvdyBvdmVycmlkaW5nIGhvdyB0byBmaW5kIHRoZSBsaXN0IGZvciByYXJlIHVzYWdlIHNjZW5hcmlvcyAoIzc3MTUpDQoJX2dldExpc3Q6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy50YWJsaXN0IHx8IHRoaXMuZWxlbWVudC5maW5kKCAib2wsdWwiICkuZXEoIDAgKTsNCgl9LA0KDQoJX2NyZWF0ZVBhbmVsOiBmdW5jdGlvbiggaWQgKSB7DQoJCXJldHVybiAkKCAiPGRpdj4iICkNCgkJCS5hdHRyKCAiaWQiLCBpZCApDQoJCQkuYWRkQ2xhc3MoICJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iICkNCgkJCS5kYXRhKCAidWktdGFicy1kZXN0cm95IiwgdHJ1ZSApOw0KCX0sDQoNCglfc2V0dXBEaXNhYmxlZDogZnVuY3Rpb24oIGRpc2FibGVkICkgew0KCQlpZiAoICQuaXNBcnJheSggZGlzYWJsZWQgKSApIHsNCgkJCWlmICggIWRpc2FibGVkLmxlbmd0aCApIHsNCgkJCQlkaXNhYmxlZCA9IGZhbHNlOw0KCQkJfSBlbHNlIGlmICggZGlzYWJsZWQubGVuZ3RoID09PSB0aGlzLmFuY2hvcnMubGVuZ3RoICkgew0KCQkJCWRpc2FibGVkID0gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCS8vIGRpc2FibGUgdGFicw0KCQlmb3IgKCB2YXIgaSA9IDAsIGxpOyAoIGxpID0gdGhpcy50YWJzWyBpIF0gKTsgaSsrICkgew0KCQkJaWYgKCBkaXNhYmxlZCA9PT0gdHJ1ZSB8fCAkLmluQXJyYXkoIGksIGRpc2FibGVkICkgIT09IC0xICkgew0KCQkJCSQoIGxpICkNCgkJCQkJLmFkZENsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkNCgkJCQkJLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgInRydWUiICk7DQoJCQl9IGVsc2Ugew0KCQkJCSQoIGxpICkNCgkJCQkJLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkNCgkJCQkJLnJlbW92ZUF0dHIoICJhcmlhLWRpc2FibGVkIiApOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5vcHRpb25zLmRpc2FibGVkID0gZGlzYWJsZWQ7DQoJfSwNCg0KCV9zZXR1cEV2ZW50czogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgZXZlbnRzID0ge307DQoJCWlmICggZXZlbnQgKSB7DQoJCQkkLmVhY2goIGV2ZW50LnNwbGl0KCIgIiksIGZ1bmN0aW9uKCBpbmRleCwgZXZlbnROYW1lICkgew0KCQkJCWV2ZW50c1sgZXZlbnROYW1lIF0gPSAiX2V2ZW50SGFuZGxlciI7DQoJCQl9KTsNCgkJfQ0KDQoJCXRoaXMuX29mZiggdGhpcy5hbmNob3JzLmFkZCggdGhpcy50YWJzICkuYWRkKCB0aGlzLnBhbmVscyApICk7DQoJCS8vIEFsd2F5cyBwcmV2ZW50IHRoZSBkZWZhdWx0IGFjdGlvbiwgZXZlbiB3aGVuIGRpc2FibGVkDQoJCXRoaXMuX29uKCB0cnVlLCB0aGlzLmFuY2hvcnMsIHsNCgkJCWNsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0NCgkJfSk7DQoJCXRoaXMuX29uKCB0aGlzLmFuY2hvcnMsIGV2ZW50cyApOw0KCQl0aGlzLl9vbiggdGhpcy50YWJzLCB7IGtleWRvd246ICJfdGFiS2V5ZG93biIgfSApOw0KCQl0aGlzLl9vbiggdGhpcy5wYW5lbHMsIHsga2V5ZG93bjogIl9wYW5lbEtleWRvd24iIH0gKTsNCg0KCQl0aGlzLl9mb2N1c2FibGUoIHRoaXMudGFicyApOw0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMudGFicyApOw0KCX0sDQoNCglfc2V0dXBIZWlnaHRTdHlsZTogZnVuY3Rpb24oIGhlaWdodFN0eWxlICkgew0KCQl2YXIgbWF4SGVpZ2h0LA0KCQkJcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudCgpOw0KDQoJCWlmICggaGVpZ2h0U3R5bGUgPT09ICJmaWxsIiApIHsNCgkJCW1heEhlaWdodCA9IHBhcmVudC5oZWlnaHQoKTsNCgkJCW1heEhlaWdodCAtPSB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSAtIHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCg0KCQkJdGhpcy5lbGVtZW50LnNpYmxpbmdzKCAiOnZpc2libGUiICkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgZWxlbSA9ICQoIHRoaXMgKSwNCgkJCQkJcG9zaXRpb24gPSBlbGVtLmNzcyggInBvc2l0aW9uIiApOw0KDQoJCQkJaWYgKCBwb3NpdGlvbiA9PT0gImFic29sdXRlIiB8fCBwb3NpdGlvbiA9PT0gImZpeGVkIiApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQltYXhIZWlnaHQgLT0gZWxlbS5vdXRlckhlaWdodCggdHJ1ZSApOw0KCQkJfSk7DQoNCgkJCXRoaXMuZWxlbWVudC5jaGlsZHJlbigpLm5vdCggdGhpcy5wYW5lbHMgKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCW1heEhlaWdodCAtPSAkKCB0aGlzICkub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0pOw0KDQoJCQl0aGlzLnBhbmVscy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJCSQoIHRoaXMgKS5oZWlnaHQoIE1hdGgubWF4KCAwLCBtYXhIZWlnaHQgLQ0KCQkJCQkkKCB0aGlzICkuaW5uZXJIZWlnaHQoKSArICQoIHRoaXMgKS5oZWlnaHQoKSApICk7DQoJCQl9KQ0KCQkJLmNzcyggIm92ZXJmbG93IiwgImF1dG8iICk7DQoJCX0gZWxzZSBpZiAoIGhlaWdodFN0eWxlID09PSAiYXV0byIgKSB7DQoJCQltYXhIZWlnaHQgPSAwOw0KCQkJdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpIHsNCgkJCQltYXhIZWlnaHQgPSBNYXRoLm1heCggbWF4SGVpZ2h0LCAkKCB0aGlzICkuaGVpZ2h0KCAiIiApLmhlaWdodCgpICk7DQoJCQl9KS5oZWlnaHQoIG1heEhlaWdodCApOw0KCQl9DQoJfSwNCg0KCV9ldmVudEhhbmRsZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsDQoJCQlhY3RpdmUgPSB0aGlzLmFjdGl2ZSwNCgkJCWFuY2hvciA9ICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKSwNCgkJCXRhYiA9IGFuY2hvci5jbG9zZXN0KCAibGkiICksDQoJCQljbGlja2VkSXNBY3RpdmUgPSB0YWJbIDAgXSA9PT0gYWN0aXZlWyAwIF0sDQoJCQljb2xsYXBzaW5nID0gY2xpY2tlZElzQWN0aXZlICYmIG9wdGlvbnMuY29sbGFwc2libGUsDQoJCQl0b1Nob3cgPSBjb2xsYXBzaW5nID8gJCgpIDogdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRhYiApLA0KCQkJdG9IaWRlID0gIWFjdGl2ZS5sZW5ndGggPyAkKCkgOiB0aGlzLl9nZXRQYW5lbEZvclRhYiggYWN0aXZlICksDQoJCQlldmVudERhdGEgPSB7DQoJCQkJb2xkVGFiOiBhY3RpdmUsDQoJCQkJb2xkUGFuZWw6IHRvSGlkZSwNCgkJCQluZXdUYWI6IGNvbGxhcHNpbmcgPyAkKCkgOiB0YWIsDQoJCQkJbmV3UGFuZWw6IHRvU2hvdw0KCQkJfTsNCg0KCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KDQoJCWlmICggdGFiLmhhc0NsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkgfHwNCgkJCQkvLyB0YWIgaXMgYWxyZWFkeSBsb2FkaW5nDQoJCQkJdGFiLmhhc0NsYXNzKCAidWktdGFicy1sb2FkaW5nIiApIHx8DQoJCQkJLy8gY2FuJ3Qgc3dpdGNoIGR1cm5pbmcgYW4gYW5pbWF0aW9uDQoJCQkJdGhpcy5ydW5uaW5nIHx8DQoJCQkJLy8gY2xpY2sgb24gYWN0aXZlIGhlYWRlciwgYnV0IG5vdCBjb2xsYXBzaWJsZQ0KCQkJCSggY2xpY2tlZElzQWN0aXZlICYmICFvcHRpb25zLmNvbGxhcHNpYmxlICkgfHwNCgkJCQkvLyBhbGxvdyBjYW5jZWxpbmcgYWN0aXZhdGlvbg0KCQkJCSggdGhpcy5fdHJpZ2dlciggImJlZm9yZUFjdGl2YXRlIiwgZXZlbnQsIGV2ZW50RGF0YSApID09PSBmYWxzZSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJb3B0aW9ucy5hY3RpdmUgPSBjb2xsYXBzaW5nID8gZmFsc2UgOiB0aGlzLnRhYnMuaW5kZXgoIHRhYiApOw0KDQoJCXRoaXMuYWN0aXZlID0gY2xpY2tlZElzQWN0aXZlID8gJCgpIDogdGFiOw0KCQlpZiAoIHRoaXMueGhyICkgew0KCQkJdGhpcy54aHIuYWJvcnQoKTsNCgkJfQ0KDQoJCWlmICggIXRvSGlkZS5sZW5ndGggJiYgIXRvU2hvdy5sZW5ndGggKSB7DQoJCQkkLmVycm9yKCAialF1ZXJ5IFVJIFRhYnM6IE1pc21hdGNoaW5nIGZyYWdtZW50IGlkZW50aWZpZXIuIiApOw0KCQl9DQoNCgkJaWYgKCB0b1Nob3cubGVuZ3RoICkgew0KCQkJdGhpcy5sb2FkKCB0aGlzLnRhYnMuaW5kZXgoIHRhYiApLCBldmVudCApOw0KCQl9DQoJCXRoaXMuX3RvZ2dsZSggZXZlbnQsIGV2ZW50RGF0YSApOw0KCX0sDQoNCgkvLyBoYW5kbGVzIHNob3cvaGlkZSBmb3Igc2VsZWN0aW5nIHRhYnMNCglfdG9nZ2xlOiBmdW5jdGlvbiggZXZlbnQsIGV2ZW50RGF0YSApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJdG9TaG93ID0gZXZlbnREYXRhLm5ld1BhbmVsLA0KCQkJdG9IaWRlID0gZXZlbnREYXRhLm9sZFBhbmVsOw0KDQoJCXRoaXMucnVubmluZyA9IHRydWU7DQoNCgkJZnVuY3Rpb24gY29tcGxldGUoKSB7DQoJCQl0aGF0LnJ1bm5pbmcgPSBmYWxzZTsNCgkJCXRoYXQuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIGV2ZW50LCBldmVudERhdGEgKTsNCgkJfQ0KDQoJCWZ1bmN0aW9uIHNob3coKSB7DQoJCQlldmVudERhdGEubmV3VGFiLmNsb3Nlc3QoICJsaSIgKS5hZGRDbGFzcyggInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIgKTsNCg0KCQkJaWYgKCB0b1Nob3cubGVuZ3RoICYmIHRoYXQub3B0aW9ucy5zaG93ICkgew0KCQkJCXRoYXQuX3Nob3coIHRvU2hvdywgdGhhdC5vcHRpb25zLnNob3csIGNvbXBsZXRlICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRvU2hvdy5zaG93KCk7DQoJCQkJY29tcGxldGUoKTsNCgkJCX0NCgkJfQ0KDQoJCS8vIHN0YXJ0IG91dCBieSBoaWRpbmcsIHRoZW4gc2hvd2luZywgdGhlbiBjb21wbGV0aW5nDQoJCWlmICggdG9IaWRlLmxlbmd0aCAmJiB0aGlzLm9wdGlvbnMuaGlkZSApIHsNCgkJCXRoaXMuX2hpZGUoIHRvSGlkZSwgdGhpcy5vcHRpb25zLmhpZGUsIGZ1bmN0aW9uKCkgew0KCQkJCWV2ZW50RGF0YS5vbGRUYWIuY2xvc2VzdCggImxpIiApLnJlbW92ZUNsYXNzKCAidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCXNob3coKTsNCgkJCX0pOw0KCQl9IGVsc2Ugew0KCQkJZXZlbnREYXRhLm9sZFRhYi5jbG9zZXN0KCAibGkiICkucmVtb3ZlQ2xhc3MoICJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQl0b0hpZGUuaGlkZSgpOw0KCQkJc2hvdygpOw0KCQl9DQoNCgkJdG9IaWRlLmF0dHIoICJhcmlhLWhpZGRlbiIsICJ0cnVlIiApOw0KCQlldmVudERhdGEub2xkVGFiLmF0dHIoew0KCQkJImFyaWEtc2VsZWN0ZWQiOiAiZmFsc2UiLA0KCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiDQoJCX0pOw0KCQkvLyBJZiB3ZSdyZSBzd2l0Y2hpbmcgdGFicywgcmVtb3ZlIHRoZSBvbGQgdGFiIGZyb20gdGhlIHRhYiBvcmRlci4NCgkJLy8gSWYgd2UncmUgb3BlbmluZyBmcm9tIGNvbGxhcHNlZCBzdGF0ZSwgcmVtb3ZlIHRoZSBwcmV2aW91cyB0YWIgZnJvbSB0aGUgdGFiIG9yZGVyLg0KCQkvLyBJZiB3ZSdyZSBjb2xsYXBzaW5nLCB0aGVuIGtlZXAgdGhlIGNvbGxhcHNpbmcgdGFiIGluIHRoZSB0YWIgb3JkZXIuDQoJCWlmICggdG9TaG93Lmxlbmd0aCAmJiB0b0hpZGUubGVuZ3RoICkgew0KCQkJZXZlbnREYXRhLm9sZFRhYi5hdHRyKCAidGFiSW5kZXgiLCAtMSApOw0KCQl9IGVsc2UgaWYgKCB0b1Nob3cubGVuZ3RoICkgew0KCQkJdGhpcy50YWJzLmZpbHRlcihmdW5jdGlvbigpIHsNCgkJCQlyZXR1cm4gJCggdGhpcyApLmF0dHIoICJ0YWJJbmRleCIgKSA9PT0gMDsNCgkJCX0pDQoJCQkuYXR0ciggInRhYkluZGV4IiwgLTEgKTsNCgkJfQ0KDQoJCXRvU2hvdy5hdHRyKCAiYXJpYS1oaWRkZW4iLCAiZmFsc2UiICk7DQoJCWV2ZW50RGF0YS5uZXdUYWIuYXR0cih7DQoJCQkiYXJpYS1zZWxlY3RlZCI6ICJ0cnVlIiwNCgkJCSJhcmlhLWV4cGFuZGVkIjogInRydWUiLA0KCQkJdGFiSW5kZXg6IDANCgkJfSk7DQoJfSwNCg0KCV9hY3RpdmF0ZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgYW5jaG9yLA0KCQkJYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggaW5kZXggKTsNCg0KCQkvLyB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIGFscmVhZHkgYWN0aXZlIHBhbmVsDQoJCWlmICggYWN0aXZlWyAwIF0gPT09IHRoaXMuYWN0aXZlWyAwIF0gKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyB0cnlpbmcgdG8gY29sbGFwc2UsIHNpbXVsYXRlIGEgY2xpY2sgb24gdGhlIGN1cnJlbnQgYWN0aXZlIGhlYWRlcg0KCQlpZiAoICFhY3RpdmUubGVuZ3RoICkgew0KCQkJYWN0aXZlID0gdGhpcy5hY3RpdmU7DQoJCX0NCg0KCQlhbmNob3IgPSBhY3RpdmUuZmluZCggIi51aS10YWJzLWFuY2hvciIgKVsgMCBdOw0KCQl0aGlzLl9ldmVudEhhbmRsZXIoew0KCQkJdGFyZ2V0OiBhbmNob3IsDQoJCQljdXJyZW50VGFyZ2V0OiBhbmNob3IsDQoJCQlwcmV2ZW50RGVmYXVsdDogJC5ub29wDQoJCX0pOw0KCX0sDQoNCglfZmluZEFjdGl2ZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQlyZXR1cm4gaW5kZXggPT09IGZhbHNlID8gJCgpIDogdGhpcy50YWJzLmVxKCBpbmRleCApOw0KCX0sDQoNCglfZ2V0SW5kZXg6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJLy8gbWV0YS1mdW5jdGlvbiB0byBnaXZlIHVzZXJzIG9wdGlvbiB0byBwcm92aWRlIGEgaHJlZiBzdHJpbmcgaW5zdGVhZCBvZiBhIG51bWVyaWNhbCBpbmRleC4NCgkJaWYgKCB0eXBlb2YgaW5kZXggPT09ICJzdHJpbmciICkgew0KCQkJaW5kZXggPSB0aGlzLmFuY2hvcnMuaW5kZXgoIHRoaXMuYW5jaG9ycy5maWx0ZXIoICJbaHJlZiQ9JyIgKyBpbmRleCArICInXSIgKSApOw0KCQl9DQoNCgkJcmV0dXJuIGluZGV4Ow0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCWlmICggdGhpcy54aHIgKSB7DQoJCQl0aGlzLnhoci5hYm9ydCgpOw0KCQl9DQoNCgkJdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCAidWktdGFicyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS10YWJzLWNvbGxhcHNpYmxlIiApOw0KDQoJCXRoaXMudGFibGlzdA0KCQkJLnJlbW92ZUNsYXNzKCAidWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiICkNCgkJCS5yZW1vdmVBdHRyKCAicm9sZSIgKTsNCg0KCQl0aGlzLmFuY2hvcnMNCgkJCS5yZW1vdmVDbGFzcyggInVpLXRhYnMtYW5jaG9yIiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUiICkNCgkJCS5yZW1vdmVBdHRyKCAidGFiSW5kZXgiICkNCgkJCS5yZW1vdmVVbmlxdWVJZCgpOw0KDQoJCXRoaXMudGFibGlzdC51bmJpbmQoIHRoaXMuZXZlbnROYW1lc3BhY2UgKTsNCg0KCQl0aGlzLnRhYnMuYWRkKCB0aGlzLnBhbmVscyApLmVhY2goZnVuY3Rpb24oKSB7DQoJCQlpZiAoICQuZGF0YSggdGhpcywgInVpLXRhYnMtZGVzdHJveSIgKSApIHsNCgkJCQkkKCB0aGlzICkucmVtb3ZlKCk7DQoJCQl9IGVsc2Ugew0KCQkJCSQoIHRoaXMgKQ0KCQkJCQkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCAiICsNCgkJCQkJCSJ1aS1jb3JuZXItdG9wIHVpLWNvcm5lci1ib3R0b20gdWktd2lkZ2V0LWNvbnRlbnQgdWktdGFicy1hY3RpdmUgdWktdGFicy1wYW5lbCIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggInRhYkluZGV4IiApDQoJCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1saXZlIiApDQoJCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1idXN5IiApDQoJCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1zZWxlY3RlZCIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtbGFiZWxsZWRieSIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggImFyaWEtaGlkZGVuIiApDQoJCQkJCS5yZW1vdmVBdHRyKCAiYXJpYS1leHBhbmRlZCIgKQ0KCQkJCQkucmVtb3ZlQXR0ciggInJvbGUiICk7DQoJCQl9DQoJCX0pOw0KDQoJCXRoaXMudGFicy5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGxpID0gJCggdGhpcyApLA0KCQkJCXByZXYgPSBsaS5kYXRhKCAidWktdGFicy1hcmlhLWNvbnRyb2xzIiApOw0KCQkJaWYgKCBwcmV2ICkgew0KCQkJCWxpDQoJCQkJCS5hdHRyKCAiYXJpYS1jb250cm9scyIsIHByZXYgKQ0KCQkJCQkucmVtb3ZlRGF0YSggInVpLXRhYnMtYXJpYS1jb250cm9scyIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJbGkucmVtb3ZlQXR0ciggImFyaWEtY29udHJvbHMiICk7DQoJCQl9DQoJCX0pOw0KDQoJCXRoaXMucGFuZWxzLnNob3coKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSAhPT0gImNvbnRlbnQiICkgew0KCQkJdGhpcy5wYW5lbHMuY3NzKCAiaGVpZ2h0IiwgIiIgKTsNCgkJfQ0KCX0sDQoNCgllbmFibGU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJdmFyIGRpc2FibGVkID0gdGhpcy5vcHRpb25zLmRpc2FibGVkOw0KCQlpZiAoIGRpc2FibGVkID09PSBmYWxzZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggaW5kZXggPT09IHVuZGVmaW5lZCApIHsNCgkJCWRpc2FibGVkID0gZmFsc2U7DQoJCX0gZWxzZSB7DQoJCQlpbmRleCA9IHRoaXMuX2dldEluZGV4KCBpbmRleCApOw0KCQkJaWYgKCAkLmlzQXJyYXkoIGRpc2FibGVkICkgKSB7DQoJCQkJZGlzYWJsZWQgPSAkLm1hcCggZGlzYWJsZWQsIGZ1bmN0aW9uKCBudW0gKSB7DQoJCQkJCXJldHVybiBudW0gIT09IGluZGV4ID8gbnVtIDogbnVsbDsNCgkJCQl9KTsNCgkJCX0gZWxzZSB7DQoJCQkJZGlzYWJsZWQgPSAkLm1hcCggdGhpcy50YWJzLCBmdW5jdGlvbiggbGksIG51bSApIHsNCgkJCQkJcmV0dXJuIG51bSAhPT0gaW5kZXggPyBudW0gOiBudWxsOw0KCQkJCX0pOw0KCQkJfQ0KCQl9DQoJCXRoaXMuX3NldHVwRGlzYWJsZWQoIGRpc2FibGVkICk7DQoJfSwNCg0KCWRpc2FibGU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJdmFyIGRpc2FibGVkID0gdGhpcy5vcHRpb25zLmRpc2FibGVkOw0KCQlpZiAoIGRpc2FibGVkID09PSB0cnVlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBpbmRleCA9PT0gdW5kZWZpbmVkICkgew0KCQkJZGlzYWJsZWQgPSB0cnVlOw0KCQl9IGVsc2Ugew0KCQkJaW5kZXggPSB0aGlzLl9nZXRJbmRleCggaW5kZXggKTsNCgkJCWlmICggJC5pbkFycmF5KCBpbmRleCwgZGlzYWJsZWQgKSAhPT0gLTEgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJaWYgKCAkLmlzQXJyYXkoIGRpc2FibGVkICkgKSB7DQoJCQkJZGlzYWJsZWQgPSAkLm1lcmdlKCBbIGluZGV4IF0sIGRpc2FibGVkICkuc29ydCgpOw0KCQkJfSBlbHNlIHsNCgkJCQlkaXNhYmxlZCA9IFsgaW5kZXggXTsNCgkJCX0NCgkJfQ0KCQl0aGlzLl9zZXR1cERpc2FibGVkKCBkaXNhYmxlZCApOw0KCX0sDQoNCglsb2FkOiBmdW5jdGlvbiggaW5kZXgsIGV2ZW50ICkgew0KCQlpbmRleCA9IHRoaXMuX2dldEluZGV4KCBpbmRleCApOw0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQl0YWIgPSB0aGlzLnRhYnMuZXEoIGluZGV4ICksDQoJCQlhbmNob3IgPSB0YWIuZmluZCggIi51aS10YWJzLWFuY2hvciIgKSwNCgkJCXBhbmVsID0gdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRhYiApLA0KCQkJZXZlbnREYXRhID0gew0KCQkJCXRhYjogdGFiLA0KCQkJCXBhbmVsOiBwYW5lbA0KCQkJfSwNCgkJCWNvbXBsZXRlID0gZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7DQoJCQkJaWYgKCBzdGF0dXMgPT09ICJhYm9ydCIgKSB7DQoJCQkJCXRoYXQucGFuZWxzLnN0b3AoIGZhbHNlLCB0cnVlICk7DQoJCQkJfQ0KDQoJCQkJdGFiLnJlbW92ZUNsYXNzKCAidWktdGFicy1sb2FkaW5nIiApOw0KCQkJCXBhbmVsLnJlbW92ZUF0dHIoICJhcmlhLWJ1c3kiICk7DQoNCgkJCQlpZiAoIGpxWEhSID09PSB0aGF0LnhociApIHsNCgkJCQkJZGVsZXRlIHRoYXQueGhyOw0KCQkJCX0NCgkJCX07DQoNCgkJLy8gbm90IHJlbW90ZQ0KCQlpZiAoIHRoaXMuX2lzTG9jYWwoIGFuY2hvclsgMCBdICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnhociA9ICQuYWpheCggdGhpcy5fYWpheFNldHRpbmdzKCBhbmNob3IsIGV2ZW50LCBldmVudERhdGEgKSApOw0KDQoJCS8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQoJCS8vIGpRdWVyeSA8MS44IHJldHVybnMgZmFsc2UgaWYgdGhlIHJlcXVlc3QgaXMgY2FuY2VsZWQgaW4gYmVmb3JlU2VuZCwNCgkJLy8gYnV0IGFzIG9mIDEuOCwgJC5hamF4KCkgYWx3YXlzIHJldHVybnMgYSBqcVhIUiBvYmplY3QuDQoJCWlmICggdGhpcy54aHIgJiYgdGhpcy54aHIuc3RhdHVzVGV4dCAhPT0gImNhbmNlbGVkIiApIHsNCgkJCXRhYi5hZGRDbGFzcyggInVpLXRhYnMtbG9hZGluZyIgKTsNCgkJCXBhbmVsLmF0dHIoICJhcmlhLWJ1c3kiLCAidHJ1ZSIgKTsNCg0KCQkJdGhpcy54aHINCgkJCQkuZG9uZShmdW5jdGlvbiggcmVzcG9uc2UsIHN0YXR1cywganFYSFIgKSB7DQoJCQkJCS8vIHN1cHBvcnQ6IGpRdWVyeSA8MS44DQoJCQkJCS8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzExNzc4DQoJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkJCQlwYW5lbC5odG1sKCByZXNwb25zZSApOw0KCQkJCQkJdGhhdC5fdHJpZ2dlciggImxvYWQiLCBldmVudCwgZXZlbnREYXRhICk7DQoNCgkJCQkJCWNvbXBsZXRlKCBqcVhIUiwgc3RhdHVzICk7DQoJCQkJCX0sIDEgKTsNCgkJCQl9KQ0KCQkJCS5mYWlsKGZ1bmN0aW9uKCBqcVhIUiwgc3RhdHVzICkgew0KCQkJCQkvLyBzdXBwb3J0OiBqUXVlcnkgPDEuOA0KCQkJCQkvLyBodHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMTc3OA0KCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KCQkJCQkJY29tcGxldGUoIGpxWEhSLCBzdGF0dXMgKTsNCgkJCQkJfSwgMSApOw0KCQkJCX0pOw0KCQl9DQoJfSwNCg0KCV9hamF4U2V0dGluZ3M6IGZ1bmN0aW9uKCBhbmNob3IsIGV2ZW50LCBldmVudERhdGEgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJcmV0dXJuIHsNCgkJCXVybDogYW5jaG9yLmF0dHIoICJocmVmIiApLA0KCQkJYmVmb3JlU2VuZDogZnVuY3Rpb24oIGpxWEhSLCBzZXR0aW5ncyApIHsNCgkJCQlyZXR1cm4gdGhhdC5fdHJpZ2dlciggImJlZm9yZUxvYWQiLCBldmVudCwNCgkJCQkJJC5leHRlbmQoIHsganFYSFI6IGpxWEhSLCBhamF4U2V0dGluZ3M6IHNldHRpbmdzIH0sIGV2ZW50RGF0YSApICk7DQoJCQl9DQoJCX07DQoJfSwNCg0KCV9nZXRQYW5lbEZvclRhYjogZnVuY3Rpb24oIHRhYiApIHsNCgkJdmFyIGlkID0gJCggdGFiICkuYXR0ciggImFyaWEtY29udHJvbHMiICk7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5fc2FuaXRpemVTZWxlY3RvciggIiMiICsgaWQgKSApOw0KCX0NCn0pOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFRvb2x0aXAgMS4xMS40DQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqDQogKiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS90b29sdGlwLw0KICovDQoNCg0KdmFyIHRvb2x0aXAgPSAkLndpZGdldCggInVpLnRvb2x0aXAiLCB7DQoJdmVyc2lvbjogIjEuMTEuNCIsDQoJb3B0aW9uczogew0KCQljb250ZW50OiBmdW5jdGlvbigpIHsNCgkJCS8vIHN1cHBvcnQ6IElFPDksIE9wZXJhIGluIGpRdWVyeSA8MS43DQoJCQkvLyAudGV4dCgpIGNhbid0IGFjY2VwdCB1bmRlZmluZWQsIHNvIGNvZXJjZSB0byBhIHN0cmluZw0KCQkJdmFyIHRpdGxlID0gJCggdGhpcyApLmF0dHIoICJ0aXRsZSIgKSB8fCAiIjsNCgkJCS8vIEVzY2FwZSB0aXRsZSwgc2luY2Ugd2UncmUgZ29pbmcgZnJvbSBhbiBhdHRyaWJ1dGUgdG8gcmF3IEhUTUwNCgkJCXJldHVybiAkKCAiPGE+IiApLnRleHQoIHRpdGxlICkuaHRtbCgpOw0KCQl9LA0KCQloaWRlOiB0cnVlLA0KCQkvLyBEaXNhYmxlZCBlbGVtZW50cyBoYXZlIGluY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgYnJvd3NlcnMgKCM4NjYxKQ0KCQlpdGVtczogIlt0aXRsZV06bm90KFtkaXNhYmxlZF0pIiwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAibGVmdCB0b3ArMTUiLA0KCQkJYXQ6ICJsZWZ0IGJvdHRvbSIsDQoJCQljb2xsaXNpb246ICJmbGlwZml0IGZsaXAiDQoJCX0sDQoJCXNob3c6IHRydWUsDQoJCXRvb2x0aXBDbGFzczogbnVsbCwNCgkJdHJhY2s6IGZhbHNlLA0KDQoJCS8vIGNhbGxiYWNrcw0KCQljbG9zZTogbnVsbCwNCgkJb3BlbjogbnVsbA0KCX0sDQoNCglfYWRkRGVzY3JpYmVkQnk6IGZ1bmN0aW9uKCBlbGVtLCBpZCApIHsNCgkJdmFyIGRlc2NyaWJlZGJ5ID0gKGVsZW0uYXR0ciggImFyaWEtZGVzY3JpYmVkYnkiICkgfHwgIiIpLnNwbGl0KCAvXHMrLyApOw0KCQlkZXNjcmliZWRieS5wdXNoKCBpZCApOw0KCQllbGVtDQoJCQkuZGF0YSggInVpLXRvb2x0aXAtaWQiLCBpZCApDQoJCQkuYXR0ciggImFyaWEtZGVzY3JpYmVkYnkiLCAkLnRyaW0oIGRlc2NyaWJlZGJ5LmpvaW4oICIgIiApICkgKTsNCgl9LA0KDQoJX3JlbW92ZURlc2NyaWJlZEJ5OiBmdW5jdGlvbiggZWxlbSApIHsNCgkJdmFyIGlkID0gZWxlbS5kYXRhKCAidWktdG9vbHRpcC1pZCIgKSwNCgkJCWRlc2NyaWJlZGJ5ID0gKGVsZW0uYXR0ciggImFyaWEtZGVzY3JpYmVkYnkiICkgfHwgIiIpLnNwbGl0KCAvXHMrLyApLA0KCQkJaW5kZXggPSAkLmluQXJyYXkoIGlkLCBkZXNjcmliZWRieSApOw0KDQoJCWlmICggaW5kZXggIT09IC0xICkgew0KCQkJZGVzY3JpYmVkYnkuc3BsaWNlKCBpbmRleCwgMSApOw0KCQl9DQoNCgkJZWxlbS5yZW1vdmVEYXRhKCAidWktdG9vbHRpcC1pZCIgKTsNCgkJZGVzY3JpYmVkYnkgPSAkLnRyaW0oIGRlc2NyaWJlZGJ5LmpvaW4oICIgIiApICk7DQoJCWlmICggZGVzY3JpYmVkYnkgKSB7DQoJCQllbGVtLmF0dHIoICJhcmlhLWRlc2NyaWJlZGJ5IiwgZGVzY3JpYmVkYnkgKTsNCgkJfSBlbHNlIHsNCgkJCWVsZW0ucmVtb3ZlQXR0ciggImFyaWEtZGVzY3JpYmVkYnkiICk7DQoJCX0NCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX29uKHsNCgkJCW1vdXNlb3ZlcjogIm9wZW4iLA0KCQkJZm9jdXNpbjogIm9wZW4iDQoJCX0pOw0KDQoJCS8vIElEcyBvZiBnZW5lcmF0ZWQgdG9vbHRpcHMsIG5lZWRlZCBmb3IgZGVzdHJveQ0KCQl0aGlzLnRvb2x0aXBzID0ge307DQoNCgkJLy8gSURzIG9mIHBhcmVudCB0b29sdGlwcyB3aGVyZSB3ZSByZW1vdmVkIHRoZSB0aXRsZSBhdHRyaWJ1dGUNCgkJdGhpcy5wYXJlbnRzID0ge307DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9kaXNhYmxlKCk7DQoJCX0NCg0KCQkvLyBBcHBlbmQgdGhlIGFyaWEtbGl2ZSByZWdpb24gc28gdG9vbHRpcHMgYW5ub3VuY2UgY29ycmVjdGx5DQoJCXRoaXMubGl2ZVJlZ2lvbiA9ICQoICI8ZGl2PiIgKQ0KCQkJLmF0dHIoew0KCQkJCXJvbGU6ICJsb2ciLA0KCQkJCSJhcmlhLWxpdmUiOiAiYXNzZXJ0aXZlIiwNCgkJCQkiYXJpYS1yZWxldmFudCI6ICJhZGRpdGlvbnMiDQoJCQl9KQ0KCQkJLmFkZENsYXNzKCAidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiApDQoJCQkuYXBwZW5kVG8oIHRoaXMuZG9jdW1lbnRbIDAgXS5ib2R5ICk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzWyB2YWx1ZSA/ICJfZGlzYWJsZSIgOiAiX2VuYWJsZSIgXSgpOw0KCQkJdGhpcy5vcHRpb25zWyBrZXkgXSA9IHZhbHVlOw0KCQkJLy8gZGlzYWJsZSBlbGVtZW50IHN0eWxlIGNoYW5nZXMNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJjb250ZW50IiApIHsNCgkJCSQuZWFjaCggdGhpcy50b29sdGlwcywgZnVuY3Rpb24oIGlkLCB0b29sdGlwRGF0YSApIHsNCgkJCQl0aGF0Ll91cGRhdGVDb250ZW50KCB0b29sdGlwRGF0YS5lbGVtZW50ICk7DQoJCQl9KTsNCgkJfQ0KCX0sDQoNCglfZGlzYWJsZTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCg0KCQkvLyBjbG9zZSBvcGVuIHRvb2x0aXBzDQoJCSQuZWFjaCggdGhpcy50b29sdGlwcywgZnVuY3Rpb24oIGlkLCB0b29sdGlwRGF0YSApIHsNCgkJCXZhciBldmVudCA9ICQuRXZlbnQoICJibHVyIiApOw0KCQkJZXZlbnQudGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCA9IHRvb2x0aXBEYXRhLmVsZW1lbnRbIDAgXTsNCgkJCXRoYXQuY2xvc2UoIGV2ZW50LCB0cnVlICk7DQoJCX0pOw0KDQoJCS8vIHJlbW92ZSB0aXRsZSBhdHRyaWJ1dGVzIHRvIHByZXZlbnQgbmF0aXZlIHRvb2x0aXBzDQoJCXRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCXZhciBlbGVtZW50ID0gJCggdGhpcyApOw0KCQkJaWYgKCBlbGVtZW50LmlzKCAiW3RpdGxlXSIgKSApIHsNCgkJCQllbGVtZW50DQoJCQkJCS5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIsIGVsZW1lbnQuYXR0ciggInRpdGxlIiApICkNCgkJCQkJLnJlbW92ZUF0dHIoICJ0aXRsZSIgKTsNCgkJCX0NCgkJfSk7DQoJfSwNCg0KCV9lbmFibGU6IGZ1bmN0aW9uKCkgew0KCQkvLyByZXN0b3JlIHRpdGxlIGF0dHJpYnV0ZXMNCgkJdGhpcy5lbGVtZW50LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCkgew0KCQkJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICk7DQoJCQlpZiAoIGVsZW1lbnQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKSB7DQoJCQkJZWxlbWVudC5hdHRyKCAidGl0bGUiLCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICk7DQoJCQl9DQoJCX0pOw0KCX0sDQoNCglvcGVuOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCXRhcmdldCA9ICQoIGV2ZW50ID8gZXZlbnQudGFyZ2V0IDogdGhpcy5lbGVtZW50ICkNCgkJCQkvLyB3ZSBuZWVkIGNsb3Nlc3QgaGVyZSBkdWUgdG8gbW91c2VvdmVyIGJ1YmJsaW5nLA0KCQkJCS8vIGJ1dCBhbHdheXMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgZXZlbnQgdGFyZ2V0DQoJCQkJLmNsb3Nlc3QoIHRoaXMub3B0aW9ucy5pdGVtcyApOw0KDQoJCS8vIE5vIGVsZW1lbnQgdG8gc2hvdyBhIHRvb2x0aXAgZm9yIG9yIHRoZSB0b29sdGlwIGlzIGFscmVhZHkgb3Blbg0KCQlpZiAoICF0YXJnZXQubGVuZ3RoIHx8IHRhcmdldC5kYXRhKCAidWktdG9vbHRpcC1pZCIgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggdGFyZ2V0LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCXRhcmdldC5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIsIHRhcmdldC5hdHRyKCAidGl0bGUiICkgKTsNCgkJfQ0KDQoJCXRhcmdldC5kYXRhKCAidWktdG9vbHRpcC1vcGVuIiwgdHJ1ZSApOw0KDQoJCS8vIGtpbGwgcGFyZW50IHRvb2x0aXBzLCBjdXN0b20gb3IgbmF0aXZlLCBmb3IgaG92ZXINCgkJaWYgKCBldmVudCAmJiBldmVudC50eXBlID09PSAibW91c2VvdmVyIiApIHsNCgkJCXRhcmdldC5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpIHsNCgkJCQl2YXIgcGFyZW50ID0gJCggdGhpcyApLA0KCQkJCQlibHVyRXZlbnQ7DQoJCQkJaWYgKCBwYXJlbnQuZGF0YSggInVpLXRvb2x0aXAtb3BlbiIgKSApIHsNCgkJCQkJYmx1ckV2ZW50ID0gJC5FdmVudCggImJsdXIiICk7DQoJCQkJCWJsdXJFdmVudC50YXJnZXQgPSBibHVyRXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7DQoJCQkJCXRoYXQuY2xvc2UoIGJsdXJFdmVudCwgdHJ1ZSApOw0KCQkJCX0NCgkJCQlpZiAoIHBhcmVudC5hdHRyKCAidGl0bGUiICkgKSB7DQoJCQkJCXBhcmVudC51bmlxdWVJZCgpOw0KCQkJCQl0aGF0LnBhcmVudHNbIHRoaXMuaWQgXSA9IHsNCgkJCQkJCWVsZW1lbnQ6IHRoaXMsDQoJCQkJCQl0aXRsZTogcGFyZW50LmF0dHIoICJ0aXRsZSIgKQ0KCQkJCQl9Ow0KCQkJCQlwYXJlbnQuYXR0ciggInRpdGxlIiwgIiIgKTsNCgkJCQl9DQoJCQl9KTsNCgkJfQ0KDQoJCXRoaXMuX3JlZ2lzdGVyQ2xvc2VIYW5kbGVycyggZXZlbnQsIHRhcmdldCApOw0KCQl0aGlzLl91cGRhdGVDb250ZW50KCB0YXJnZXQsIGV2ZW50ICk7DQoJfSwNCg0KCV91cGRhdGVDb250ZW50OiBmdW5jdGlvbiggdGFyZ2V0LCBldmVudCApIHsNCgkJdmFyIGNvbnRlbnQsDQoJCQljb250ZW50T3B0aW9uID0gdGhpcy5vcHRpb25zLmNvbnRlbnQsDQoJCQl0aGF0ID0gdGhpcywNCgkJCWV2ZW50VHlwZSA9IGV2ZW50ID8gZXZlbnQudHlwZSA6IG51bGw7DQoNCgkJaWYgKCB0eXBlb2YgY29udGVudE9wdGlvbiA9PT0gInN0cmluZyIgKSB7DQoJCQlyZXR1cm4gdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgY29udGVudE9wdGlvbiApOw0KCQl9DQoNCgkJY29udGVudCA9IGNvbnRlbnRPcHRpb24uY2FsbCggdGFyZ2V0WzBdLCBmdW5jdGlvbiggcmVzcG9uc2UgKSB7DQoNCgkJCS8vIElFIG1heSBpbnN0YW50bHkgc2VydmUgYSBjYWNoZWQgcmVzcG9uc2UgZm9yIGFqYXggcmVxdWVzdHMNCgkJCS8vIGRlbGF5IHRoaXMgY2FsbCB0byBfb3BlbiBzbyB0aGUgb3RoZXIgY2FsbCB0byBfb3BlbiBydW5zIGZpcnN0DQoJCQl0aGF0Ll9kZWxheShmdW5jdGlvbigpIHsNCg0KCQkJCS8vIElnbm9yZSBhc3luYyByZXNwb25zZSBpZiB0b29sdGlwIHdhcyBjbG9zZWQgYWxyZWFkeQ0KCQkJCWlmICggIXRhcmdldC5kYXRhKCAidWktdG9vbHRpcC1vcGVuIiApICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJLy8galF1ZXJ5IGNyZWF0ZXMgYSBzcGVjaWFsIGV2ZW50IGZvciBmb2N1c2luIHdoZW4gaXQgZG9lc24ndA0KCQkJCS8vIGV4aXN0IG5hdGl2ZWx5LiBUbyBpbXByb3ZlIHBlcmZvcm1hbmNlLCB0aGUgbmF0aXZlIGV2ZW50DQoJCQkJLy8gb2JqZWN0IGlzIHJldXNlZCBhbmQgdGhlIHR5cGUgaXMgY2hhbmdlZC4gVGhlcmVmb3JlLCB3ZSBjYW4ndA0KCQkJCS8vIHJlbHkgb24gdGhlIHR5cGUgYmVpbmcgY29ycmVjdCBhZnRlciB0aGUgZXZlbnQgZmluaXNoZWQNCgkJCQkvLyBidWJibGluZywgc28gd2Ugc2V0IGl0IGJhY2sgdG8gdGhlIHByZXZpb3VzIHZhbHVlLiAoIzg3NDApDQoJCQkJaWYgKCBldmVudCApIHsNCgkJCQkJZXZlbnQudHlwZSA9IGV2ZW50VHlwZTsNCgkJCQl9DQoJCQkJdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgcmVzcG9uc2UgKTsNCgkJCX0pOw0KCQl9KTsNCgkJaWYgKCBjb250ZW50ICkgew0KCQkJdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApOw0KCQl9DQoJfSwNCg0KCV9vcGVuOiBmdW5jdGlvbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApIHsNCgkJdmFyIHRvb2x0aXBEYXRhLCB0b29sdGlwLCBkZWxheWVkU2hvdywgYTExeUNvbnRlbnQsDQoJCQlwb3NpdGlvbk9wdGlvbiA9ICQuZXh0ZW5kKCB7fSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICk7DQoNCgkJaWYgKCAhY29udGVudCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIENvbnRlbnQgY2FuIGJlIHVwZGF0ZWQgbXVsdGlwbGUgdGltZXMuIElmIHRoZSB0b29sdGlwIGFscmVhZHkNCgkJLy8gZXhpc3RzLCB0aGVuIGp1c3QgdXBkYXRlIHRoZSBjb250ZW50IGFuZCBiYWlsLg0KCQl0b29sdGlwRGF0YSA9IHRoaXMuX2ZpbmQoIHRhcmdldCApOw0KCQlpZiAoIHRvb2x0aXBEYXRhICkgew0KCQkJdG9vbHRpcERhdGEudG9vbHRpcC5maW5kKCAiLnVpLXRvb2x0aXAtY29udGVudCIgKS5odG1sKCBjb250ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBpZiB3ZSBoYXZlIGEgdGl0bGUsIGNsZWFyIGl0IHRvIHByZXZlbnQgdGhlIG5hdGl2ZSB0b29sdGlwDQoJCS8vIHdlIGhhdmUgdG8gY2hlY2sgZmlyc3QgdG8gYXZvaWQgZGVmaW5pbmcgYSB0aXRsZSBpZiBub25lIGV4aXN0cw0KCQkvLyAod2UgZG9uJ3Qgd2FudCB0byBjYXVzZSBhbiBlbGVtZW50IHRvIHN0YXJ0IG1hdGNoaW5nIFt0aXRsZV0pDQoJCS8vDQoJCS8vIFdlIHVzZSByZW1vdmVBdHRyIG9ubHkgZm9yIGtleSBldmVudHMsIHRvIGFsbG93IElFIHRvIGV4cG9ydCB0aGUgY29ycmVjdA0KCQkvLyBhY2Nlc3NpYmxlIGF0dHJpYnV0ZXMuIEZvciBtb3VzZSBldmVudHMsIHNldCB0byBlbXB0eSBzdHJpbmcgdG8gYXZvaWQNCgkJLy8gbmF0aXZlIHRvb2x0aXAgc2hvd2luZyB1cCAoaGFwcGVucyBvbmx5IHdoZW4gcmVtb3ZpbmcgaW5zaWRlIG1vdXNlb3ZlcikuDQoJCWlmICggdGFyZ2V0LmlzKCAiW3RpdGxlXSIgKSApIHsNCgkJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNlb3ZlciIgKSB7DQoJCQkJdGFyZ2V0LmF0dHIoICJ0aXRsZSIsICIiICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRhcmdldC5yZW1vdmVBdHRyKCAidGl0bGUiICk7DQoJCQl9DQoJCX0NCg0KCQl0b29sdGlwRGF0YSA9IHRoaXMuX3Rvb2x0aXAoIHRhcmdldCApOw0KCQl0b29sdGlwID0gdG9vbHRpcERhdGEudG9vbHRpcDsNCgkJdGhpcy5fYWRkRGVzY3JpYmVkQnkoIHRhcmdldCwgdG9vbHRpcC5hdHRyKCAiaWQiICkgKTsNCgkJdG9vbHRpcC5maW5kKCAiLnVpLXRvb2x0aXAtY29udGVudCIgKS5odG1sKCBjb250ZW50ICk7DQoNCgkJLy8gU3VwcG9ydDogVm9pY2VvdmVyIG9uIE9TIFgsIEpBV1Mgb24gSUUgPD0gOQ0KCQkvLyBKQVdTIGFubm91bmNlcyBkZWxldGlvbnMgZXZlbiB3aGVuIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyINCgkJLy8gVm9pY2VvdmVyIHdpbGwgc29tZXRpbWVzIHJlLXJlYWQgdGhlIGVudGlyZSBsb2cgcmVnaW9uJ3MgY29udGVudHMgZnJvbSB0aGUgYmVnaW5uaW5nDQoJCXRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKTsNCgkJaWYgKCBjb250ZW50LmNsb25lICkgew0KCQkJYTExeUNvbnRlbnQgPSBjb250ZW50LmNsb25lKCk7DQoJCQlhMTF5Q29udGVudC5yZW1vdmVBdHRyKCAiaWQiICkuZmluZCggIltpZF0iICkucmVtb3ZlQXR0ciggImlkIiApOw0KCQl9IGVsc2Ugew0KCQkJYTExeUNvbnRlbnQgPSBjb250ZW50Ow0KCQl9DQoJCSQoICI8ZGl2PiIgKS5odG1sKCBhMTF5Q29udGVudCApLmFwcGVuZFRvKCB0aGlzLmxpdmVSZWdpb24gKTsNCg0KCQlmdW5jdGlvbiBwb3NpdGlvbiggZXZlbnQgKSB7DQoJCQlwb3NpdGlvbk9wdGlvbi5vZiA9IGV2ZW50Ow0KCQkJaWYgKCB0b29sdGlwLmlzKCAiOmhpZGRlbiIgKSApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQl0b29sdGlwLnBvc2l0aW9uKCBwb3NpdGlvbk9wdGlvbiApOw0KCQl9DQoJCWlmICggdGhpcy5vcHRpb25zLnRyYWNrICYmIGV2ZW50ICYmIC9ebW91c2UvLnRlc3QoIGV2ZW50LnR5cGUgKSApIHsNCgkJCXRoaXMuX29uKCB0aGlzLmRvY3VtZW50LCB7DQoJCQkJbW91c2Vtb3ZlOiBwb3NpdGlvbg0KCQkJfSk7DQoJCQkvLyB0cmlnZ2VyIG9uY2UgdG8gb3ZlcnJpZGUgZWxlbWVudC1yZWxhdGl2ZSBwb3NpdGlvbmluZw0KCQkJcG9zaXRpb24oIGV2ZW50ICk7DQoJCX0gZWxzZSB7DQoJCQl0b29sdGlwLnBvc2l0aW9uKCAkLmV4dGVuZCh7DQoJCQkJb2Y6IHRhcmdldA0KCQkJfSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICkgKTsNCgkJfQ0KDQoJCXRvb2x0aXAuaGlkZSgpOw0KDQoJCXRoaXMuX3Nob3coIHRvb2x0aXAsIHRoaXMub3B0aW9ucy5zaG93ICk7DQoJCS8vIEhhbmRsZSB0cmFja2luZyB0b29sdGlwcyB0aGF0IGFyZSBzaG93biB3aXRoIGEgZGVsYXkgKCM4NjQ0KS4gQXMgc29vbg0KCQkvLyBhcyB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLCBwb3NpdGlvbiB0aGUgdG9vbHRpcCB1c2luZyB0aGUgbW9zdCByZWNlbnQNCgkJLy8gZXZlbnQuDQoJCWlmICggdGhpcy5vcHRpb25zLnNob3cgJiYgdGhpcy5vcHRpb25zLnNob3cuZGVsYXkgKSB7DQoJCQlkZWxheWVkU2hvdyA9IHRoaXMuZGVsYXllZFNob3cgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsNCgkJCQlpZiAoIHRvb2x0aXAuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCQkJcG9zaXRpb24oIHBvc2l0aW9uT3B0aW9uLm9mICk7DQoJCQkJCWNsZWFySW50ZXJ2YWwoIGRlbGF5ZWRTaG93ICk7DQoJCQkJfQ0KCQkJfSwgJC5meC5pbnRlcnZhbCApOw0KCQl9DQoNCgkJdGhpcy5fdHJpZ2dlciggIm9wZW4iLCBldmVudCwgeyB0b29sdGlwOiB0b29sdGlwIH0gKTsNCgl9LA0KDQoJX3JlZ2lzdGVyQ2xvc2VIYW5kbGVyczogZnVuY3Rpb24oIGV2ZW50LCB0YXJnZXQgKSB7DQoJCXZhciBldmVudHMgPSB7DQoJCQlrZXl1cDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLkVTQ0FQRSApIHsNCgkJCQkJdmFyIGZha2VFdmVudCA9ICQuRXZlbnQoZXZlbnQpOw0KCQkJCQlmYWtlRXZlbnQuY3VycmVudFRhcmdldCA9IHRhcmdldFswXTsNCgkJCQkJdGhpcy5jbG9zZSggZmFrZUV2ZW50LCB0cnVlICk7DQoJCQkJfQ0KCQkJfQ0KCQl9Ow0KDQoJCS8vIE9ubHkgYmluZCByZW1vdmUgaGFuZGxlciBmb3IgZGVsZWdhdGVkIHRhcmdldHMuIE5vbi1kZWxlZ2F0ZWQNCgkJLy8gdG9vbHRpcHMgd2lsbCBoYW5kbGUgdGhpcyBpbiBkZXN0cm95Lg0KCQlpZiAoIHRhcmdldFsgMCBdICE9PSB0aGlzLmVsZW1lbnRbIDAgXSApIHsNCgkJCWV2ZW50cy5yZW1vdmUgPSBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLl9yZW1vdmVUb29sdGlwKCB0aGlzLl9maW5kKCB0YXJnZXQgKS50b29sdGlwICk7DQoJCQl9Ow0KCQl9DQoNCgkJaWYgKCAhZXZlbnQgfHwgZXZlbnQudHlwZSA9PT0gIm1vdXNlb3ZlciIgKSB7DQoJCQlldmVudHMubW91c2VsZWF2ZSA9ICJjbG9zZSI7DQoJCX0NCgkJaWYgKCAhZXZlbnQgfHwgZXZlbnQudHlwZSA9PT0gImZvY3VzaW4iICkgew0KCQkJZXZlbnRzLmZvY3Vzb3V0ID0gImNsb3NlIjsNCgkJfQ0KCQl0aGlzLl9vbiggdHJ1ZSwgdGFyZ2V0LCBldmVudHMgKTsNCgl9LA0KDQoJY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHRvb2x0aXAsDQoJCQl0aGF0ID0gdGhpcywNCgkJCXRhcmdldCA9ICQoIGV2ZW50ID8gZXZlbnQuY3VycmVudFRhcmdldCA6IHRoaXMuZWxlbWVudCApLA0KCQkJdG9vbHRpcERhdGEgPSB0aGlzLl9maW5kKCB0YXJnZXQgKTsNCg0KCQkvLyBUaGUgdG9vbHRpcCBtYXkgYWxyZWFkeSBiZSBjbG9zZWQNCgkJaWYgKCAhdG9vbHRpcERhdGEgKSB7DQoNCgkJCS8vIFdlIHNldCB1aS10b29sdGlwLW9wZW4gaW1tZWRpYXRlbHkgdXBvbiBvcGVuIChpbiBvcGVuKCkpLCBidXQgb25seSBzZXQgdGhlDQoJCQkvLyBhZGRpdGlvbmFsIGRhdGEgb25jZSB0aGVyZSdzIGFjdHVhbGx5IGNvbnRlbnQgdG8gc2hvdyAoaW4gX29wZW4oKSkuIFNvIGV2ZW4gaWYgdGhlDQoJCQkvLyB0b29sdGlwIGRvZXNuJ3QgaGF2ZSBmdWxsIGRhdGEsIHdlIGFsd2F5cyByZW1vdmUgdWktdG9vbHRpcC1vcGVuIGluIGNhc2Ugd2UncmUgaW4NCgkJCS8vIHRoZSBwZXJpb2QgYmV0d2VlbiBvcGVuKCkgYW5kIF9vcGVuKCkuDQoJCQl0YXJnZXQucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtb3BlbiIgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRvb2x0aXAgPSB0b29sdGlwRGF0YS50b29sdGlwOw0KDQoJCS8vIGRpc2FibGluZyBjbG9zZXMgdGhlIHRvb2x0aXAsIHNvIHdlIG5lZWQgdG8gdHJhY2sgd2hlbiB3ZSdyZSBjbG9zaW5nDQoJCS8vIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AgaW4gY2FzZSB0aGUgdG9vbHRpcCBiZWNvbWVzIGRpc2FibGVkIG9uIGNsb3NlDQoJCWlmICggdG9vbHRpcERhdGEuY2xvc2luZyApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIENsZWFyIHRoZSBpbnRlcnZhbCBmb3IgZGVsYXllZCB0cmFja2luZyB0b29sdGlwcw0KCQljbGVhckludGVydmFsKCB0aGlzLmRlbGF5ZWRTaG93ICk7DQoNCgkJLy8gb25seSBzZXQgdGl0bGUgaWYgd2UgaGFkIG9uZSBiZWZvcmUgKHNlZSBjb21tZW50IGluIF9vcGVuKCkpDQoJCS8vIElmIHRoZSB0aXRsZSBhdHRyaWJ1dGUgaGFzIGNoYW5nZWQgc2luY2Ugb3BlbigpLCBkb24ndCByZXN0b3JlDQoJCWlmICggdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICYmICF0YXJnZXQuYXR0ciggInRpdGxlIiApICkgew0KCQkJdGFyZ2V0LmF0dHIoICJ0aXRsZSIsIHRhcmdldC5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIgKSApOw0KCQl9DQoNCgkJdGhpcy5fcmVtb3ZlRGVzY3JpYmVkQnkoIHRhcmdldCApOw0KDQoJCXRvb2x0aXBEYXRhLmhpZGluZyA9IHRydWU7DQoJCXRvb2x0aXAuc3RvcCggdHJ1ZSApOw0KCQl0aGlzLl9oaWRlKCB0b29sdGlwLCB0aGlzLm9wdGlvbnMuaGlkZSwgZnVuY3Rpb24oKSB7DQoJCQl0aGF0Ll9yZW1vdmVUb29sdGlwKCAkKCB0aGlzICkgKTsNCgkJfSk7DQoNCgkJdGFyZ2V0LnJlbW92ZURhdGEoICJ1aS10b29sdGlwLW9wZW4iICk7DQoJCXRoaXMuX29mZiggdGFyZ2V0LCAibW91c2VsZWF2ZSBmb2N1c291dCBrZXl1cCIgKTsNCg0KCQkvLyBSZW1vdmUgJ3JlbW92ZScgYmluZGluZyBvbmx5IG9uIGRlbGVnYXRlZCB0YXJnZXRzDQoJCWlmICggdGFyZ2V0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJdGhpcy5fb2ZmKCB0YXJnZXQsICJyZW1vdmUiICk7DQoJCX0NCgkJdGhpcy5fb2ZmKCB0aGlzLmRvY3VtZW50LCAibW91c2Vtb3ZlIiApOw0KDQoJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgew0KCQkJJC5lYWNoKCB0aGlzLnBhcmVudHMsIGZ1bmN0aW9uKCBpZCwgcGFyZW50ICkgew0KCQkJCSQoIHBhcmVudC5lbGVtZW50ICkuYXR0ciggInRpdGxlIiwgcGFyZW50LnRpdGxlICk7DQoJCQkJZGVsZXRlIHRoYXQucGFyZW50c1sgaWQgXTsNCgkJCX0pOw0KCQl9DQoNCgkJdG9vbHRpcERhdGEuY2xvc2luZyA9IHRydWU7DQoJCXRoaXMuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50LCB7IHRvb2x0aXA6IHRvb2x0aXAgfSApOw0KCQlpZiAoICF0b29sdGlwRGF0YS5oaWRpbmcgKSB7DQoJCQl0b29sdGlwRGF0YS5jbG9zaW5nID0gZmFsc2U7DQoJCX0NCgl9LA0KDQoJX3Rvb2x0aXA6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgdG9vbHRpcCA9ICQoICI8ZGl2PiIgKQ0KCQkJCS5hdHRyKCAicm9sZSIsICJ0b29sdGlwIiApDQoJCQkJLmFkZENsYXNzKCAidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiICsNCgkJCQkJKCB0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzIHx8ICIiICkgKSwNCgkJCWlkID0gdG9vbHRpcC51bmlxdWVJZCgpLmF0dHIoICJpZCIgKTsNCg0KCQkkKCAiPGRpdj4iICkNCgkJCS5hZGRDbGFzcyggInVpLXRvb2x0aXAtY29udGVudCIgKQ0KCQkJLmFwcGVuZFRvKCB0b29sdGlwICk7DQoNCgkJdG9vbHRpcC5hcHBlbmRUbyggdGhpcy5kb2N1bWVudFswXS5ib2R5ICk7DQoNCgkJcmV0dXJuIHRoaXMudG9vbHRpcHNbIGlkIF0gPSB7DQoJCQllbGVtZW50OiBlbGVtZW50LA0KCQkJdG9vbHRpcDogdG9vbHRpcA0KCQl9Ow0KCX0sDQoNCglfZmluZDogZnVuY3Rpb24oIHRhcmdldCApIHsNCgkJdmFyIGlkID0gdGFyZ2V0LmRhdGEoICJ1aS10b29sdGlwLWlkIiApOw0KCQlyZXR1cm4gaWQgPyB0aGlzLnRvb2x0aXBzWyBpZCBdIDogbnVsbDsNCgl9LA0KDQoJX3JlbW92ZVRvb2x0aXA6IGZ1bmN0aW9uKCB0b29sdGlwICkgew0KCQl0b29sdGlwLnJlbW92ZSgpOw0KCQlkZWxldGUgdGhpcy50b29sdGlwc1sgdG9vbHRpcC5hdHRyKCAiaWQiICkgXTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJLy8gY2xvc2Ugb3BlbiB0b29sdGlwcw0KCQkkLmVhY2goIHRoaXMudG9vbHRpcHMsIGZ1bmN0aW9uKCBpZCwgdG9vbHRpcERhdGEgKSB7DQoJCQkvLyBEZWxlZ2F0ZSB0byBjbG9zZSBtZXRob2QgdG8gaGFuZGxlIGNvbW1vbiBjbGVhbnVwDQoJCQl2YXIgZXZlbnQgPSAkLkV2ZW50KCAiYmx1ciIgKSwNCgkJCQllbGVtZW50ID0gdG9vbHRpcERhdGEuZWxlbWVudDsNCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBlbGVtZW50WyAwIF07DQoJCQl0aGF0LmNsb3NlKCBldmVudCwgdHJ1ZSApOw0KDQoJCQkvLyBSZW1vdmUgaW1tZWRpYXRlbHk7IGRlc3Ryb3lpbmcgYW4gb3BlbiB0b29sdGlwIGRvZXNuJ3QgdXNlIHRoZQ0KCQkJLy8gaGlkZSBhbmltYXRpb24NCgkJCSQoICIjIiArIGlkICkucmVtb3ZlKCk7DQoNCgkJCS8vIFJlc3RvcmUgdGhlIHRpdGxlDQoJCQlpZiAoIGVsZW1lbnQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKSB7DQoJCQkJLy8gSWYgdGhlIHRpdGxlIGF0dHJpYnV0ZSBoYXMgY2hhbmdlZCBzaW5jZSBvcGVuKCksIGRvbid0IHJlc3RvcmUNCgkJCQlpZiAoICFlbGVtZW50LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCQkJZWxlbWVudC5hdHRyKCAidGl0bGUiLCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICk7DQoJCQkJfQ0KCQkJCWVsZW1lbnQucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICk7DQoJCQl9DQoJCX0pOw0KCQl0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCk7DQoJfQ0KfSk7DQoNCg0KDQp9KSk7"}},"time_used":79,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":42,"receive":37,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/easing-min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.855Z","timestamp":1785126645855,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/easing-min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 935\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":3791,"size_decoded":1189,"mime_type":"text/javascript","magic":"ASCII text, with very long lines (3601), with CRLF line terminators","md5":"e7ff2ac28aa87195cf889baa352e35c3","sha1":"4393d79e01e6a9a065b48db3e46cd3676ecf75ce","sha256":"6d55c31b16426ec3aa503ee22a7008426f37f0cd500649b1ad06262ae6e4c496","sha512":"f4d066fc7e4c897766b2af9e2a1646aca2ce0e3fa153e1e10f442453ed77501e192578264f5904b3381fe94c0b7dc9c013ae8217b833b6160ae9f2118ea0da51","ssdeep":"","tlshash":"8f719a8d74f6b21d639133e011ba101bb3adace1524d5404e4b49d997c7b1bc8bbb87c","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.475935Z","times_seen":12,"resource_available":true,"data":"LyoNCiAqIGpRdWVyeSBFYXNpbmcgdjEuMyAtIGh0dHA6Ly9nc2dkLmNvLnVrL3NhbmRib3gvanF1ZXJ5L2Vhc2luZy8NCiAqDQogKiBVc2VzIHRoZSBidWlsdCBpbiBlYXNpbmcgY2FwYWJpbGl0aWVzIGFkZGVkIEluIGpRdWVyeSAxLjENCiAqIHRvIG9mZmVyIG11bHRpcGxlIGVhc2luZyBvcHRpb25zDQogKiANCiAqDQoqLw0KalF1ZXJ5LmVhc2luZy5qc3dpbmc9alF1ZXJ5LmVhc2luZy5zd2luZztqUXVlcnkuZXh0ZW5kKGpRdWVyeS5lYXNpbmcse2RlZjoiZWFzZU91dFF1YWQiLHN3aW5nOmZ1bmN0aW9uKGUsZixhLGgsZyl7cmV0dXJuIGpRdWVyeS5lYXNpbmdbalF1ZXJ5LmVhc2luZy5kZWZdKGUsZixhLGgsZyl9LGVhc2VJblF1YWQ6ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4gaCooZi89ZykqZithfSxlYXNlT3V0UXVhZDpmdW5jdGlvbihlLGYsYSxoLGcpe3JldHVybiAtaCooZi89ZykqKGYtMikrYX0sZWFzZUluT3V0UXVhZDpmdW5jdGlvbihlLGYsYSxoLGcpe2lmKChmLz1nLzIpPDEpe3JldHVybiBoLzIqZipmK2F9cmV0dXJuIC1oLzIqKCgtLWYpKihmLTIpLTEpK2F9LGVhc2VJbkN1YmljOmZ1bmN0aW9uKGUsZixhLGgsZyl7cmV0dXJuIGgqKGYvPWcpKmYqZithfSxlYXNlT3V0Q3ViaWM6ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4gaCooKGY9Zi9nLTEpKmYqZisxKSthfSxlYXNlSW5PdXRDdWJpYzpmdW5jdGlvbihlLGYsYSxoLGcpe2lmKChmLz1nLzIpPDEpe3JldHVybiBoLzIqZipmKmYrYX1yZXR1cm4gaC8yKigoZi09MikqZipmKzIpK2F9LGVhc2VJblF1YXJ0OmZ1bmN0aW9uKGUsZixhLGgsZyl7cmV0dXJuIGgqKGYvPWcpKmYqZipmK2F9LGVhc2VPdXRRdWFydDpmdW5jdGlvbihlLGYsYSxoLGcpe3JldHVybiAtaCooKGY9Zi9nLTEpKmYqZipmLTEpK2F9LGVhc2VJbk91dFF1YXJ0OmZ1bmN0aW9uKGUsZixhLGgsZyl7aWYoKGYvPWcvMik8MSl7cmV0dXJuIGgvMipmKmYqZipmK2F9cmV0dXJuIC1oLzIqKChmLT0yKSpmKmYqZi0yKSthfSxlYXNlSW5RdWludDpmdW5jdGlvbihlLGYsYSxoLGcpe3JldHVybiBoKihmLz1nKSpmKmYqZipmK2F9LGVhc2VPdXRRdWludDpmdW5jdGlvbihlLGYsYSxoLGcpe3JldHVybiBoKigoZj1mL2ctMSkqZipmKmYqZisxKSthfSxlYXNlSW5PdXRRdWludDpmdW5jdGlvbihlLGYsYSxoLGcpe2lmKChmLz1nLzIpPDEpe3JldHVybiBoLzIqZipmKmYqZipmK2F9cmV0dXJuIGgvMiooKGYtPTIpKmYqZipmKmYrMikrYX0sZWFzZUluU2luZTpmdW5jdGlvbihlLGYsYSxoLGcpe3JldHVybiAtaCpNYXRoLmNvcyhmL2cqKE1hdGguUEkvMikpK2grYX0sZWFzZU91dFNpbmU6ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4gaCpNYXRoLnNpbihmL2cqKE1hdGguUEkvMikpK2F9LGVhc2VJbk91dFNpbmU6ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4gLWgvMiooTWF0aC5jb3MoTWF0aC5QSSpmL2cpLTEpK2F9LGVhc2VJbkV4cG86ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4oZj09MCk/YTpoKk1hdGgucG93KDIsMTAqKGYvZy0xKSkrYX0sZWFzZU91dEV4cG86ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4oZj09Zyk/YStoOmgqKC1NYXRoLnBvdygyLC0xMCpmL2cpKzEpK2F9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oZSxmLGEsaCxnKXtpZihmPT0wKXtyZXR1cm4gYX1pZihmPT1nKXtyZXR1cm4gYStofWlmKChmLz1nLzIpPDEpe3JldHVybiBoLzIqTWF0aC5wb3coMiwxMCooZi0xKSkrYX1yZXR1cm4gaC8yKigtTWF0aC5wb3coMiwtMTAqLS1mKSsyKSthfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKGUsZixhLGgsZyl7cmV0dXJuIC1oKihNYXRoLnNxcnQoMS0oZi89ZykqZiktMSkrYX0sZWFzZU91dENpcmM6ZnVuY3Rpb24oZSxmLGEsaCxnKXtyZXR1cm4gaCpNYXRoLnNxcnQoMS0oZj1mL2ctMSkqZikrYX0sZWFzZUluT3V0Q2lyYzpmdW5jdGlvbihlLGYsYSxoLGcpe2lmKChmLz1nLzIpPDEpe3JldHVybiAtaC8yKihNYXRoLnNxcnQoMS1mKmYpLTEpK2F9cmV0dXJuIGgvMiooTWF0aC5zcXJ0KDEtKGYtPTIpKmYpKzEpK2F9LGVhc2VJbkVsYXN0aWM6ZnVuY3Rpb24oZixoLGUsbCxrKXt2YXIgaT0xLjcwMTU4O3ZhciBqPTA7dmFyIGc9bDtpZihoPT0wKXtyZXR1cm4gZX1pZigoaC89ayk9PTEpe3JldHVybiBlK2x9aWYoIWope2o9ayowLjN9aWYoZzxNYXRoLmFicyhsKSl7Zz1sO3ZhciBpPWovNH1lbHNle3ZhciBpPWovKDIqTWF0aC5QSSkqTWF0aC5hc2luKGwvZyl9cmV0dXJuIC0oZypNYXRoLnBvdygyLDEwKihoLT0xKSkqTWF0aC5zaW4oKGgqay1pKSooMipNYXRoLlBJKS9qKSkrZX0sZWFzZU91dEVsYXN0aWM6ZnVuY3Rpb24oZixoLGUsbCxrKXt2YXIgaT0xLjcwMTU4O3ZhciBqPTA7dmFyIGc9bDtpZihoPT0wKXtyZXR1cm4gZX1pZigoaC89ayk9PTEpe3JldHVybiBlK2x9aWYoIWope2o9ayowLjN9aWYoZzxNYXRoLmFicyhsKSl7Zz1sO3ZhciBpPWovNH1lbHNle3ZhciBpPWovKDIqTWF0aC5QSSkqTWF0aC5hc2luKGwvZyl9cmV0dXJuIGcqTWF0aC5wb3coMiwtMTAqaCkqTWF0aC5zaW4oKGgqay1pKSooMipNYXRoLlBJKS9qKStsK2V9LGVhc2VJbk91dEVsYXN0aWM6ZnVuY3Rpb24oZixoLGUsbCxrKXt2YXIgaT0xLjcwMTU4O3ZhciBqPTA7dmFyIGc9bDtpZihoPT0wKXtyZXR1cm4gZX1pZigoaC89ay8yKT09Mil7cmV0dXJuIGUrbH1pZighail7aj1rKigwLjMqMS41KX1pZihnPE1hdGguYWJzKGwpKXtnPWw7dmFyIGk9ai80fWVsc2V7dmFyIGk9ai8oMipNYXRoLlBJKSpNYXRoLmFzaW4obC9nKX1pZihoPDEpe3JldHVybiAtMC41KihnKk1hdGgucG93KDIsMTAqKGgtPTEpKSpNYXRoLnNpbigoaCprLWkpKigyKk1hdGguUEkpL2opKStlfXJldHVybiBnKk1hdGgucG93KDIsLTEwKihoLT0xKSkqTWF0aC5zaW4oKGgqay1pKSooMipNYXRoLlBJKS9qKSowLjUrbCtlfSxlYXNlSW5CYWNrOmZ1bmN0aW9uKGUsZixhLGksaCxnKXtpZihnPT11bmRlZmluZWQpe2c9MS43MDE1OH1yZXR1cm4gaSooZi89aCkqZiooKGcrMSkqZi1nKSthfSxlYXNlT3V0QmFjazpmdW5jdGlvbihlLGYsYSxpLGgsZyl7aWYoZz09dW5kZWZpbmVkKXtnPTEuNzAxNTh9cmV0dXJuIGkqKChmPWYvaC0xKSpmKigoZysxKSpmK2cpKzEpK2F9LGVhc2VJbk91dEJhY2s6ZnVuY3Rpb24oZSxmLGEsaSxoLGcpe2lmKGc9PXVuZGVmaW5lZCl7Zz0xLjcwMTU4fWlmKChmLz1oLzIpPDEpe3JldHVybiBpLzIqKGYqZiooKChnKj0oMS41MjUpKSsxKSpmLWcpKSthfXJldHVybiBpLzIqKChmLT0yKSpmKigoKGcqPSgxLjUyNSkpKzEpKmYrZykrMikrYX0sZWFzZUluQm91bmNlOmZ1bmN0aW9uKGUsZixhLGgsZyl7cmV0dXJuIGgtalF1ZXJ5LmVhc2luZy5lYXNlT3V0Qm91bmNlKGUsZy1mLDAsaCxnKSthfSxlYXNlT3V0Qm91bmNlOmZ1bmN0aW9uKGUsZixhLGgsZyl7aWYoKGYvPWcpPCgxLzIuNzUpKXtyZXR1cm4gaCooNy41NjI1KmYqZikrYX1lbHNle2lmKGY8KDIvMi43NSkpe3JldHVybiBoKig3LjU2MjUqKGYtPSgxLjUvMi43NSkpKmYrMC43NSkrYX1lbHNle2lmKGY8KDIuNS8yLjc1KSl7cmV0dXJuIGgqKDcuNTYyNSooZi09KDIuMjUvMi43NSkpKmYrMC45Mzc1KSthfWVsc2V7cmV0dXJuIGgqKDcuNTYyNSooZi09KDIuNjI1LzIuNzUpKSpmKzAuOTg0Mzc1KSthfX19fSxlYXNlSW5PdXRCb3VuY2U6ZnVuY3Rpb24oZSxmLGEsaCxnKXtpZihmPGcvMil7cmV0dXJuIGpRdWVyeS5lYXNpbmcuZWFzZUluQm91bmNlKGUsZioyLDAsaCxnKSowLjUrYX1yZXR1cm4galF1ZXJ5LmVhc2luZy5lYXNlT3V0Qm91bmNlKGUsZioyLWcsMCxoLGcpKjAuNStoKjAuNSthfX0pOw0KDQo="}},"time_used":989,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":989,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps/api/mapsjs/gen_204?csp_test=true","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.300Z","timestamp":1785126646300,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /maps/api/mapsjs/gen_204?csp_test=true HTTP/1.1\r\nHost: maps.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://www.bitifinex.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 23\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-expose-headers: vary,vary,vary,content-encoding,date,server,content-length\r\nserver-timing: gfet4t7; dur=9\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":3,"size_decoded":554,"mime_type":"application/json; charset=UTF-8","magic":"JSON text data","md5":"8a80554c91d9fca8acb82f023de02f11","sha1":"5f36b2ea290645ee34d943220a14b54ee5ea5be5","sha256":"ca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356","sha512":"ca4b6defb8adcc010050bc8b1bb8f8092c4928b8a0fba32146abcfb256e4d91672f88ca2cdf6210e754e5b8ac5e23fb023806ccd749ac8b701f79a691f03c87a","ssdeep":"","tlshash":"c7200000000000000000000c00000000000000000c0000000000000000000000000000","first_seen":"2023-03-07T01:10:31Z","last_seen":"2026-07-27T08:05:46.705029Z","times_seen":426956,"resource_available":true,"data":"e30K"}},"time_used":38,"timings":{"blocked":-1,"dns":0,"connect":20,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.253Z","timestamp":1785126646253,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.bitifinex.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 37756\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 18:07:05 GMT\r\nexpires: Sat, 24 Jul 2027 18:07:05 GMT\r\ncache-control: public, max-age=31536000\r\nage: 210221\r\nlast-modified: Thu, 04 Sep 2025 17:09:21 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":37756,"size_decoded":38569,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 37756, version 1.0","md5":"8a6a885dd57e60ddd85f3190737fa209","sha1":"dbca56b7fe8ee5e4bfb648d639fc6a3bfc5c6e85","sha256":"b9b102f608e8252e3c1e7287309832b16af7dcc6e788651fa503a3faacd7fb2f","sha512":"2bd785869777dc57dbb5934d4c6915b66f89746dd79897820eb4bbd0d262b2612bafdfb07c1e092658ad819f582a97e6a196531f74187d8a0b0bbd07fcbba56a","ssdeep":"768:sqRKhgpCf9U72WeD4A/5IqtBr0ikGvEaQh38/LBu3Emdc043RpgZKMqjkEfO1m:jKgp+9U7Ve8A/7Ai9Et3EBKEUE3RqMMu","tlshash":"3e030130df5884edcc0ba371fdeea81fc7a332a594c0b3368297af1b80111499d99e49","first_seen":"2025-09-05T00:25:10.258656Z","last_seen":"2026-07-27T08:07:37.444827Z","times_seen":543565,"resource_available":false,"data":"d09GMgABAAAAAJN8ABcAAAABfiwAAJL/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoReG4KYVhyMRD9IVkFShycGYD9TVEFUgTgnMgCFTCsdCHwJnxQvfhEICoGKJO51C4UGADCB53gBNgIkA4oIBCAFiQIHj2UMgyhbZWxxYYzNYmIexjaAiLuvb4ODlrBdzYBuo0xdkJGcxgXsVmy3w03/wXmd8v//aUllDE3LngQAVJ1u/8FMUjRs1moaYoPcqdo8Zu/os2P12ji2VkfT9L6gemSEemRXdpY7MmyqgQmvlK3kfd1ojr4fvo3K/JO2nlaX6g0SxOS8sNYcaE3JcdjwclhRAokLkh5Bo6pg7JGbxLiBUdx3OyUIQiAUOW65UcSVfMMDs/Q3MDJn8sEKTmbhltR0Fh0/7H2HMxIHU7KQJcT5mnXzCyrZofDHIOKxlJwYRhuqLtMIIh/YM5xjjfA/TShhRjC7XvqbrAPsFvOLmZSyhMN5Ej3xV99HnrrdsyAwbyl/inVEuv3P7t2lXELqkQIhhAAhtCREBASEQBeQJl1sgI0nxY7YKN2G5fmwdGx8bOVpVMTSsGEvH0t9zYrwxa9VvYjMX9Q90wsA9lgBgEOw57FqUbnTCPaEZSOBc3jebT1ARXEXmpWZlpbtjXZ1w+q8Nbu9u9sR3uzmaN5qLMu1cAKKsgQZ88P+i89n/Q8fhsfp+pfW06QRbxNv6qnJtO1EgSF6CicGp9rS8c30TIU7Bn63MSZs85/vz+o0pKjggD+s9z7CH6lSgFpMj3bgSlh298zsjJWE+9M7Ld+QRmBZhhBu4JD4vwirdVr+wt/r7xFSc00WHHYs2+KRNHNpS3f3AI0sj7IKAGl8ZnoyBYguQJpJn6LHc4D65hPcDGB42ua/uXTl5LBWJlJ1Rx4IB0e3AtJpb26/2+3Hfkb5I9Mvp5+7lu0/o2edU1SusFQaBiTr95LeTHU8OKzT0BwMIGV4dvavg/3txk8ojm1rTWrXDu5bbEABBoC+39C9h3ByC1fhWHN2xbRAzJmYMGLOfBNGGKfPj9F28k92wNkQG/h/iP2EWoh4Msni/VqlBqrHualeFIdVzOK95xj8/++eb4sErRV3DvyLH6Qn2WhJonOftAaURmVqLaIbUIivtLrdL8PXx9bQXLsj7it4xUOFUs0rpUAlT0RfXO+3S1t6Z8Jzqp9RYDVb6t814T2gzatzQHocF12wzsyma1ZBuQxBxO/X9g5Tif4+IpaWqqHZcJGQLDUq1ZuJEKnXkwLAAGcvbTIZD/knapOTJaNnE9y5tfhzKQwPsFBaJgOaTbliAy+QzudbmtL9+z0qbrqR3Jqe3OUUdyq5yiw2QSkoTBrprBvNbfbsrlu3tlm3dlbaXZp86Mx8QQU1ZoCstFYBDcB55imVwwAelqC88M/3N+I3p4C+UBMI3mk84MAgTGBBcP3/VzNtB5wdKoVcqaVDiq0r98D97+MOgI8Z7iy59A4VQrbzwf8IBMCwpEgFrpxipW2dusZd6cplSY4rrasQW+nva5leu6V5496VoUemrw19Bb821OErENxyy+HY05pZ9fQIWuC4NWMlrTa1tPRnJNmtkTcVi0o7JskYoDVrA7QO4JvRbvx3ZGhJATkAXHdAPOEtlcPFcsK3U445hv9PZ9nOl1a3CmK1DlBFRXPHRXMpmtR5vebPyBqQbK3Wl7O0ZAgYDuyFvHhDlnb3wBsg7AgqOwgllnl9ypTUFH0IcBdKxzm3tbWWeJAHVG1tgdCTPfw7i9b3g/bgeihlDSUsYYhLkDnot31W98oLaSY3IkUjUjTSFI2IE1bcGD6X/bzv+x4WFMilkgPFdD7AIvzm+2oqP0hI9i0RjmGJukjqSrymx7B07Ouw9P9YzviTjMeZKb1pu5vl9cU8GllyU0QyjkgRh0NUpOQieCF7HTv33383PXqhMGJExREREREVZamIqIiIiAhLeJShPGY/v9nPYJv+vyA1o8aCWZCKEigrUNGpX85fFP7bHA+bkg9teo3Z1jBF63p6gp1YEMzALMBVwMdxYCIiCDbdDAiJiBIWbP4kQBFA5BAlT4i3GMgAmZBs4yDFyiHFhvWGNS8EmtU0YiaZZBRy5y2zjwr6KgiU6UgwDzCTVXHNvAvcwSgdAWStFE4U0iMZtdKZ8L/SFZAgZwA5ArAaMBcWBEPA1etbtqkNm1q8pT931rarJUABiY9m2fjd8skSeigwhfyNOLgQlq63Z/ehwBcQ0d4IiYiIRRU/SIImWIIniYSleBpMu2mUpmKvIEQv62ZBFmVZ5uRIHi2EzGSuisioclFFhBNTBEGwCDbBIb9nKnnkCbBYBCAkjIUA67xreeo0QXNIUA443qAi89CalbRiJUhWNIW0cs1tJZVcoVZabc2f2/6sWbfh0MD4T4SJKBGjZCpKJWmajtIWnWJkJsPm2BJX5HN8me8QOgKdga5gj9gr1uWPLStBNaoFjYiRNFKhaDQbH8kO5gaL05XxymJUMAdgAvRfmIeL0oMGMAH8/K2HUB1gQVsFBIN5/6g3xjL7VE3DogK52b1qDrpDj85PQnfk/NAE7I7rW5yGDgnonSDmB1DPdPLY1+an4ac+b2EctMdPTBk7ybCzVQZ5OwrLkxiYZt//4C73XXKn9Y+Hb3VQhTLxGYNFBKFhaKpE2qGJRfBJ6q6V68u/4ZUsNVeVMsWGShPHwk8cXV2BiJcnA6aBNU8CtPh5PDD8FSJaj79sN7wWrSkrhx860Sjl1x2/OOYqHmQD4wcI+eEv8jXEm3uUuPvp3QIi0RsOohCNhEgqhVRSSyMX6eUtg4wyyUfmfVpo2LR3V8botPt9ggJnH0lg+urVoTJ9bNbUd+WADh4BwdHkE76UQeO3w4fJsOA2ChYie91N5CW7AbcMfo9G4prfiGHTFhDSb1qLreo/tV0xzQPtR/51XiTw8jfPNeTYYeP21hkdfWybMQrVlW3u0jN2xwktr6W22BZCI0NTN6bRFJB/p/Fv05zqlGZ/7s22UV2ezaf+LHX8MCfkmByaacofzy8uLemXulSlJDlEb4QjEHaejy7kMRSdsT1Wx/yYFZOiYHbMibiwhF94rY6qkAQH9zqMeX73NBK73e1e7xY3uDfLk+6oxk85x8mOdrDN1tvzV1iASfS3AjJqXGI1a5NWapEaxuPP0iQVargylKBwBciwDneRnUR8u1gjPQsRFlUZSfWDcqA2c3CFu6GJh2EJ98EUa43p/FOZurdXZKV/qHfG3damfh632JzM5K5ugfjatKSZItkwjDWp6aJ6m8qbaqYM8JT+oF6mmvrt+je1pG/V23aKvfzBaFNbr1ok+VG6vum5GM7Ky7tTPqtMoIcrduKq+HB0cLRVvI01Jnc6RcIm2zNS2u0cj1waPVDeTVL0GFQhV9HgKV1O0NQlK8NJLemilZCkWMGZlp7k8qseIcdR9ScGy6pSKuFnq1eoil75oKNkI6USJp9ZUzoPaHU1msmz4yalmjoRL1NLOhbcT1HUj3B5je1zXBDjuhu0PF2CTNW9b3W0vEk10FOehBUfydIVWlPupJpaD02pJe0hFfsp6np80US0zWKk1l/Iu/GKLpF8HE9ZZ4ZX/EA8GIhdTuIFwmLFgyuEYMibgm9ALBzchEtiCXZigZoMPqeuj7LVoqB1yMVIi/zLdfglab38GLT4H33fuyFSqkhrUSjA1enzIv7m7dCmCfk3t0Lt8eXQ7nxtblZEI2EdQjhXF4uL3PVl6KfzL0xDMuI5/8j1kd2WSGtS8a1J5gn5rUIB8SkKKbzlOLTI3XzUD8UxmGDPirlqN9VY0OLbJO7ThPxWyNP4cHoKfWvG+IKY6y4aZdLzW6Pa330IaOrREd/yaC5oYxZLEU9kZQFGhuvh3ImTp1e9YZw1beW7nzbrKk/k4CArslvylXYaebCgWTzFePHNLyDmeflNR+Hpzsi2mQdbGwsgtmjUCMh5iJLWmFiQo/8aJnMHnhEX62O3TEWA4mWrd3WoAIqRtzJaLfPbsMES76OD6o7Gt26iApDegkkt0RBllyyOoZEYIZMbQh0CInFJ9z4aZqun3O/tbhWmXOIal7t06eHOSEbbz7ohMrOuFv0QIkhqPSTVG3qK7L+frUVVmqA8pSpcZumFdIU40Ou9coGT/8K5/yRYl4ygD/LI5itoyzQRGxKlwe2V2rWHZwCQTYDwJztvnR7g+HCNPTYWH9qFi/tMXlNOngUrXqacS2mBfAAEjT08VkrK3D5kx8XMtMapF91IYPLDQVDtmO+fWPENpKkFZ//R1UU5yo3lnBbWc1i4hMnhm4yy7NvP+SFQOIlJKR/gwt9r/9KuWKlQ1clwljWv35qzuRJiuRvCuwttmD5uPuz4WMXblbGsZ9/wQ3qHh9M2PMGOiVlgj4ilhe7hRa3+b9cUcPY2KAcod+fSvDTkhlfRaE1rP/sSgHicaMDNGsDsTi9CqB5MzZM9gxjub0MZYTBTqwUIsICZwW4mMErU3zPxAj6QAy4OtKliYG8Fz3c/IsECs4i/AZ48AJyvwP9iQjg3ICXNlhUThMVeBVcE1+SsBAsRn5SrU+i7r+8bFAshihS9SSPSARWWSSCYm+zomyEQ68cVOiNUYbT6QLmKTfkNTdO6IfelGYXiXmmdy42E1zP55YO5BJPwA1WZAKwtskWiut3RAla6R3HZF6fO97mOlI9T8flf8hLSR0i0noV3wdHjlaplH+wjPz0Mj/UdV6iDav5xGtWt6cGPVYVfYWXRgpsY93G8S+26TpTzGcI0X0mist9vqcuY150lDHff11T2rB8NhKPDfuWGJJducg6n6p6hrm2lL78QY7Wi9WM9KbHrwdZ//PYteK7L9nZqyy+MRlFAByr9HhnTNGbuwtQeRJVOBuDusk8xRaTffbXU4DZmbfDGeCUWsKvjc9N398g411JHRJDwNozZFutb0BIDwBpqmFEPco9dHFN7SyZ6TkkVZ7JfRgfswGoLqwNeTmq737WjHtesazstbs5Pl3BpwR56jmt1TXoI7wYEwwWBrXqp8BJACY8/fSAC7w3i6uoZpytfxsHDRZvZTp3CnqipPY6WxNQvRreUpGnmfJYVUijpDIY9xfgmBvqyyLtSuXvgiB5r/Hbg/QBKqNFYjF5PHU+vti9m54IdCzkq26u3tpFiafYQHtekfnqcEjzW1q4vkM+2JDOKA4cu7C8OxNgwMUYgO7wCw8NyRFpXIqSbu4h3V3yoHSuENtUIJUDGvs4KG5/rivq+z2zlp5haKC93MfFWXHrzlYUY8R79vuyQ/EGf0/UjYClHC64M8ikcq03eNYyVh6WUnVFNom79cJeRhII1pc9teeWygAlZeTwlVAWR8nqlRa26pWZ51C1L9MttN3wpFV68T8yGzWtnSpsWUtwOHFNWXAtXhb66IYvQZ6G8aJicVCtHmtJc9GzmDNA4+S8b8RSESZLAdPvcxCT1jCvwGp+oVRaxd4p1c+ykDx5oNz7NdGuYb70KHFEUjFIwQ3DgiLqX8SiwK5fTUNOvM7sTBsUkmey7bL4EL+zNpuc/XlLnIntKBWPRst2GGCZAPvIG6F0vq0+aRA5tkBuwAZEEOtsBCEt6hPb5Bpik9XN931XMVEwlNrAsASdXswry7r2BdxfilgE/D4ABkR2mD9Q5b22JrBYJeUprZyyqc3idWzvJaVCyGvVX5YHkhbzEvn9EboaRK98D5AgA3JcXaiOmQgGUE7oZOwFsubE96NkxsquWaKNYkZkHb7rBU1vqkCdIYj4xqIh2B1w4HJ7JryrrvJsQ3tfA3am2h2vlnrA/whxcrXMCD7cxFeYIMragnFLh4WyVJBVuw+owtrTqUyoAuQE8n2rwIV6Yi0lRHh2ofbgl4KzgaZVy5JTsoNpnh6QMzVQefwZh+nrLbXhoaor5G4Ka+kq9u5aqvOQg4BIMKs89916AI1ayzXKVLHJWRf3InotLMxPHrh2Pd8i4/4w2H+wqhILtUJB/nuCUcpfVkMyvZfMXzPxWpo4Cc3RjWomH9mogkMQyjlwkSFGxPSEQ0/2IpZRHO1IxG7gL8dTQqErIDjOLS3Gjd/XaUEDFLqqU3Hocc59cRf1kH5k5Cmm1V1f7ks4sFK8SsSklUJBimWToNOJlQ1OIUJYVregrPA06SOqIybbRi2tnXVE4rXijrqjVaAkYxXXokD044O9cTt+TzJQDl+d0ymDHTTBruBjBVjaVZxan2QeIO/HyXRu+y7hlkU39erRFBTzbJDwqNAL80IGm0xkyOKeLCi55QQM9PjoNn/1yBf75ryLCffNdZEIUQnQsCiMGFjEJUKIJu5jU/VUstEpqVdxUc1VDpZa9OrR6LhoINB452Gc/ygEHsf05UA6xc5iQldaRzDjqGKSDXCeuE5nntDOQc/TO07jAyUV8lyhcznxXXEXpxnGNres4brB1E3KLyG3InSxy1z0s92EPyDzk6FF29tgT2FM6z7LScy+w9CC9QnjNxhuEtyTecff+nuuDj5DPC/71ZXyD2PeSXoSJM3ODTNgDGxbMv3q2nOjpaDiy40rEFoGLoCbmnKJxHLwz30mnyLnT3owuywZsqBBoSjRlkrqTtIwNsUdygbhxwCZAEWKR8ohXK0yGJhjhNxAcmF4kcAATjOBYFq1jsnJe8OjRKxUDiD815hgGjI1GQ2wwEBkVRE0L8eQFMTBAYb7w/AuBIFwiSE+dof3TVvqjVUMC8N5/bEl+xsb5e5swP+j6uVxhvBvao+uWMqKjc0uz5fxm2Ot+irtTyX2jA3FtmGT2jfcT0F4Tm0Wz9HMVOtzt9x5KD1t9zhINeZ028su6U9jzW/ttyp6I2uyi2y2d2KODBCMknW5ICq18nd1Zv9K5KQ0uia0Zdu6oROJ3XYH2xmXuh3Qa3rTjG5SfHV/hfXfaxvoWldfLmMR3MePtKdVjzblTSqf95C/0bqGYFRfWo47cpuixkgUMu9HrvtzB1VP5M6MI/PC3ZgVX0oTuftAZMoPeu8JxFeE1RjuL3AHW7LbDzVDFfPhGZwU9dkVnp6AGT164M0VDfY36Lpkj5csPPBL8awtUdzq/Fbk5dCmwhURWzkfUbzDQcEoJRwDTREtnyjjpinJ51xREj0/9YLFbKYUJXoXISVfXhTPhQGxv7cjoJvQlB6p/GJwxhqJmS1UtNtGnfQ14zmrk5azwq8+ySSDz9lZmiGBoZePitnmpIolOgCk7ZgUmer7FGkm8/A6O5xtHXwACzWA2iC6O5C2QZYLKLkKTnzsTrRrbfVI3ab049PksYYAZt8Pi8dATcHlPj1eWiZHjB084Spa/ce8E+cME9fcTMOAFsfBdlWo1atWpd4jVOedd9sAjTz3zLjLAuFZ4XvGKrJaC14KINUMlmipiqCakBpdaHOoJOISNFZ9zJHAej8tIHsA8YsNTIniG4h3vPVmK/OuAOISPrc3X2gYRLhSTEP5vODD4wolBn4aJl6WJflEyCPtHQw8Zt7X6zT3XiaiJDvtnpPB4WPgvmeejVXDc1aEPnQ//HlMIM/BTc5R/ZQHE1Y5uY8a3dZvBnMPfvFIz83HF/oZJ3DBinBP2f/5sD1zzB8FifJdWNZHmi/P4W1OPOpDECUol77QyINB2j5D2ezYGRUkX+6ARD3AylJZZ1+AOY95Pdp15MZ2ynxQjahX9xgaLiwZ5jLH8uQ5Nnp1S3zvPzaDZphPPwEJ4gqOn98p5c/NESlTqaly7OgkTInHF25/eG8kmWaX6OlGlvCYedf/+bFh3dPjPsi459L7w9bPW0AJ5Hg2w2WT76ojkk1K+TBPuQVGWd3x+LKYPUE/bA8R9k66ujxvfcGpixujqSS3o6JM5asXt0mopBEbCXeCmifdmMMqNg2VxNHjIoaORhg2j0w0u/nbzTjHAEXtGOm8WTOjZCGPjyerfMZd+7VH6VNz9FSnwMWFA+gSsuMCDO2kGundJlaxCdnRiqMAFxL6O10cGqZx5pVethTnDmbvyJVde+SevJORPhGr/xgbSsRzV87w6sd9QTkiZZ42oyjc/RL43/lJ1rhNVcVoGYDLtuvJjivyVKn68wXlXbHL177eGYtwJXptyyQDzC5rCzsNuzIcjoD0if4UablW0OkO81BSL7d8IcyOpYF3uEB8k5fHJUUcRUX/FwUJKquMoYMpDAXq1Rzk9iALcF/fPZIHqd+6HOYFJ6IEoXj2lTlDODtrlaH94GnhY0OlBDiaTSBywWBG17WVtSdwAB0aYbFY0/i9VkJ3F3bqb6/9JmK+3kC+UP+YL1t92MKyXOvwuYSC6iNtj8vtReSS9hZ0CIKqGQfQxmXeCROcG3MNS17+nHHlkWbOGfhQ/1NSODW1ErrozpEMh8k+QI9eSIgKxM0/gBgwkwmf4At80aHTAQYcd0aHTCSedckGXS7pdc90NN9121z3PvdDjldfeeOu97+lBjLUxmAT/gUnEr8ISVOjaCZgaJrEm1PcqVIAEGtjQWBJtmsVhEHCEDDpQdOJworg9bFu4AGLoQnMJTTc218jhOjY3yOEmIbdLOJAi15ukh/B4/cm/p6VF8B44fC/dZxHsWEDltXUzW8f25K/C4dtOhf2/GUQz2s05wU0e7egPqiyzyTq0OldRtP2SEg583dofhZyDDxUjhE34oZfeDuU/Rlyp0DdvDxMqZuys79mx+EoNPZDXWqhJPt4xf29q/fpAdGerVnM/gfadYHgM7uSvffllA/0N51irLgosGzQsOzqxdnmVXgk4Q9Fw+1MaP1aj6Zri8873o2cfZstuUTSgSPLHNtRLvMnLwPv2LxSDnpE+T/9N+tBbvKRXWkvX5GQ4QTD5hS0/WogwM0sRhwaNvNaP6SVwX0d2VfQSq0lv7rkEopZ99rMlPX6JUj8Jxf7Yiu5asIbNUtBbCI4HPjCwv8nP6TqMrL8TPulimXNNaTbokooF7QNwhq3QUjuK/KWvZOd0/YQqFrU2cqdbu9b4x3oOC1ygGYKLANxt7h7mdyWgbaTy+WQscsQNcwEg7EATUnCMS3e3Q0WR+X7W4WMZKcBNI6vMIW0z5nunnokVPxP6shf72oHwO/dnWA8aQOWXF4KmhUYBk7EBnQ3Hp4BsiVioGPtbrCexjI5SJ/tNM2aryeT8c+nrzwy0vzDLlry8gfS9+eZxO0WPS1w7wfjmcz2kC2RIkuCjbUK1OQ9NxmcLvbWnoR6RgO+Fs8ZZnxtF0TDXavHgsX9sAVGCEkmrTQinWMCHwLG272z11GQxCt5qhWJeWefZFknJxbfSW0goVFvUMzpmehTM9qIJslL6dYXcHHiW9/TQHtEfHYOBxfZFmy+MeQKgkI4rVWpYx3fQaPb1uYwkFkxVsW20aKFYHbWjBV6iThp5xfYcy+HSG6YdRh2DfXyV8MsHoPQsHYj03cyBdhL8AIUVm5OzglKGdM30oaMH7PyR+S+iumIlB7BNP70hJ5c9S/CKjyWW4IVkE1Xwcj9V3Yr1zozKd9JCuenCJnHEcFJPMfVRfLeyzM4kjeUnMRGQ2ejeJtG2Y2atdatIQjALO6bKdFm7Qm4sjLQ25FVVFRuDVD1aY+QKGWill1KHeT3FPrLWV8LzFMetQZP+0R0uZJpWlDNbIXRoTmYtKNfJdq64dyS9aXkqN+lQyh0qyzAWMQrcqNKHpCJWxp02ohnIMkChbtaan7sL8q1xmbHbC/dNJ2e8qaMxZTBENrMfkCEboi00KH53HNAN2Y91s7DdQFyxSCsjKTKaJyaOjhZsFL5j6aBvTf7c2PaF4fEPgAZM5JjcT44GY0R4ib45K4Z+4HAlBiJy15dJ6sBpylAuMAH/KFmdSds0TApLXoiHtX/a4m6cGTIUMi6KNBzF6nkRWAxHwBMhoPQF49rgQG494toqJ+Fk0ZD/fyiOiaX5a2MCXcUsrnylHUy+gqELInO2Kk8hXgQTLSA36FjEjosd4acpgEZkTl36AXQvVNMYjjjNdV3nggN7DAM2nQgpvdUlEQp8nOc4IRZA56hC1K2+OB+us4UwFWJNV6gxRAJ3Bzf2nkD6ICD7m19kRyoGQp1MMt8jASUiq15HCIb97pAmpk5X1bNcBDBWJ5Q0c4RB4CD0ISo74ySAWFrQWopx99GwlZkwpZh+vzhQ8yHj1iEMGoDCfF571S/mGUWkephWJf/XYNPeCRx0MPH/DexT6v0CnMvW32rJk+GY6WrW05FF0DGoOi3LVjej5fzi0ttx8Me540mi3miHbu43BxmdSOT2zv73UymRDbRKrVqQZeJX7IGs/elc9qWsR0rI4KYPuEPtbS+POV3avEGo6amFhfUVJ8gS7TaAbAfm3rmeTYfkboDZb0sIwtFbgVljW9Ov3gBtFf6xklHezNOG1FpZZWU7P/XxRkoeFYesMFlGBz9OlYNQn39Jdc1TZQDfJc+OUUvfpZBZwggzDr0bdF//8ofq2a79ue44HmNGrtB693ev9tAVX57UmdLfFaSwZ6AnpfZVprMsUROGJT6PYClRY2pUdlRb+1HMdqfVmrTgohRkgL90MV/dIpOTHEEUP1b/TvcZAXAcMPmqerN6VeoPd34QeXopj0QykgSI1WC9Jw0CTEaKkyxO+AZ97ilyOiWWnUvJtEa3SKOSvwzOLKVXdeSnlIU20cQo0oHswhH0vM6sOwHIWUz99mxgkjbLmN4K0Wp6Cgtq6clP43UHu1Pb0ptQ1HDO5W6zd2Qr34XZyqE8RWuvtkUfQNs+elfihb3rVDrg71XaT682zsqTkfOpoxVZ61SXHsZKYmkvKhzOU6Fwj2KwwvdTl6yu8t+p88XV3C3c2bv/t2ImTJGszzvNEmfd1eIIrh3MFlprutoQy4fq38O44i6ou/VvpLdI6A10ihQiBWbnSfq7yGfgk2SGuHLHlVU5rryEdNOrRTezOnGzyz1XWeW5qhLEv6n20EM1Hnui1gcf1fvss0b/+k+Tb76ZCwyTQDFPAghCMjMWU6V9pQYbCFdiolgS9gKQOCr04yCYkhvhZF56VR2oTtpblNTyEShMApcGI9pRNAESfAZqjKyxoApqJjhmQKmAixxO+PrzoDdAn8lYMCgGZAsJ8vobhItTjnnn4SMqMg/beiVKMw8HrKrqzLszD0SZ5uFNCAaIkS3TEY+Pvtj8+BMIMNlGP4FkgrJUsAhckTspysBczXaQhIwlS0FK3SiDZAU5Ww6hwXLfhxiGMtxofS6EMhapEPYbyjgiRUjFR2IlJmKZZDLaFJPlpppGofyZMd0M4iLR8GitSghQJUy1UDX81Oqrjla9EA10Gsvfbsq+qLQcHaftHbJ8HebGKtiR8nao5usAH52cnLB341xsarwcrVQGheEmMAfVBFVkpwvNdKE9NTRQQwP51JNPPdWU0Mh+7E8JLexDNe2opGtV6V0tI7w3To5PPviJL/hVd9/R5Jn+qzDVqKEdXH0LhANwJRttbBgJplaAICTFpibEkGsFbWZR0hQsBXDcqKShLNy1BySbZ72GtVRRQTuyyKeE9hD54bAIuBR9/WgyMTBcr6kpykdiKZoLPxPXYEhHuYYLwHtGIY22AI5RrKU807ZeQFkKSUueGYbLNqOlmtFSykipY6S0MFqrG6nJjdTSxsHMpUr7xsFUlEKa+I/UdSo0jiO6BmZIggIk4W2N7he71iI1phgjTTREgOHNFKnmVGPVRCkXbzZdtkJvYWkYL6UDP4dlExLI6Tws/4VYe6IfwoHNcWU6SCBsWjeAqQf6ARBykGKWS4Guo5pGJjO7CoVOXq5mIAOpWyOFhksKI5VyUOYN0mYqEETL6C+UFCJwYzFpJEOToNmBAe2VlI5FU3dSE3hfgEPzf5BgNgMeE/Rv3KR2KUAGJZasH3hLx78Q3k7gyN6uQFfdAzy+XrAXsC+wH3A0cDwQ5+ghyLf0OgswAwQwNfB94MvAR614TTyBu3CFcw53joM4gDt9NwSMIbDI8qmfuW0LzqwyWuCiRw3a5vrOVREzBw1MB8qzu6x8BIMiH8voBcvcMK1t6T+pPLIXZLlc+WIVEKep4Raz5TNqHoPRgrPx04oOZmzKc09ZsGlm+IxteUfTDqqc/7XCe3K3TGzFHpHw/fMFvRuBwAhsHFw8tL8grAWhwqRHAiG0MVH+/mb5sVihDE4uKJYK4NhR1WgMLI7LpKKgPa4Uy4NqxzyTHSLFjUIVBEo/TgWuCc1qEdgmMWOYsPw93fMuw7ajkDzS5JML+ZGNmISUQ+SNoL2pJs6vaN1xf8T6s/tdsz8E/a0pifWjxshLaon44rWbvpivwhg5zHs3CMbOTonxsczwck1/W/oIkigH5LNb0W6V1aPH5SNNFoNkSI/CerqiQyMgEojhu5wNDpZYBQSosiVytc3I6VumVla9XJ29GExwFbWmd4XGUme7YLsTZFhYpQ0EAXIUFiTiWJoZwMZcCHEwfXNtlqTTKXZUlk6n3VkHCVXOMA16pKwXrnKggMM9MKVBWS+Rs1DwiTRMQXLKHPU+ZnK7+pRJpvy968vIkMCDCIEhwIkYHAKJwHozCxwKSCoyInQEgCNE/CB5zPcRMqyDQpLLtQa55lfUgaE66ujtwJK4UY1/heEiVnpjhGOarnqxp/6OjELujujm90sByevbV8pO9lLJQWo5SiMnaeUsF7lKJzfp5T5V6Lu42TicjQQJmZLuyFOPgHfABjHQmRSssuK0IwkhdAQ/HPhhwlEy9dl+podIga+Q3OrPglJPYH32DefR8H+qlPF6vA70Vvd8+J7bHAmHK2KVDCUkn8QlQBubi7LPnQ13TB/IhxIHkc2XSrK5+SSchSCnDBOlVtDSKh5JEQnjJIaOl7RQZPvJJgG6/jA4dLo3JSiSufsIpudDkV5lrgZVP7z6abaAmJQtO3058eTNxMCXlgH3i1CWkFRzIIS6NRLDA7AyNNNHamThombfPPPxhn0js2oYyUXK0QtB/4ssdQ4jWp0K/gBLYjOac9wvlRGXM3t9BanhCs+Frau/opGufHGmjTdxFvzn7p/rcGARYDbIvDASxNoUI5XKCLlobbXraFhP05qdu755G1jw0TZnQ4s30rKJZZtasZk5W1m2jZ07O7abc7vB/YOQ3VuIBgpIxB5C13+6snAe5YnMVB4JZWbshUs/m8Ll/+AsXym95TlMh6yPSUbJFJNhs2yOLXCrkEW+xFeEjkBXsBLsFnvEmsglUSaELCtKUAkpYTWoRrSYpuq8lRJ60khOTo8y4swkK8PK8qq8Gq/Ob8BNZFa4WM4AwWDev2vxFbKAoUopQIG6ylmAbd888xyAOX406CQ40l7H+CjYfTuugw6wyOz2s0UBw+46dQLQ7QA1wlbAQggIwoGB2dDAYvCZb4wuLgHw/7O8XZY4gDA0vASIlWa4ccrUQIBMCwVAcuD0cDY2I/KSG62I1WyoTco8Ylb9jQ6c3VlT55Q9cO7QYHjzRo1CIE8NQDP8TQr6AzoApkJOI4K7ywEQfvMEyO+N0tyf4bGxAL5fEoAFUEADZkNAwGzIOgjYigWFA0zPqJ9Z2v2KkY8G2erTNtocLIIkuIRzuJ/walaaPWpAlVVdDat5tUPt17Vri2jf1W7WZ9GZlTQwPQ2TQGttXxuc6sOTANEITmq3yqvisnNqteYTm4CdNJI9NU36/0+REzmG1/6/PzGoK222N+CH91pstzUKHoc+Er+fe1T4kBdU8JbBlm8GHKRnDK+/T2t5p3iPhEvFHRd3icb/Lc875K7jXvvugXvOu6DDB/udtk+nAw76x1/+ZnUfQuOxIcSwJSPnQM2RhhNnnrwZGJn48OMvQD9BLjnhsq/OZTPBIkWJMUCiJMlSZBss1xBDDTdGod+MU6zEJJNNMVW5Li9d9J+dDuvx1ivv/N+jbOKxmW764kl28My/ttkef7556GiCaTfLLW22+p8jWDASB4WNi09KRExCRcmOPQEtNy5cudP5RK8vsz58BfJSxKK/EOFChYkQbaA48RJkGiRNuljDFBghzyj5PhtpolLjTVBmrGk8jE6I+odH072Zfcf08iu6XXN1F98Iv0tA+AAWrBFBIIyNjU2yv/612i8hysoQ7YWg/w+7dqOYw+wB+LFS0pbFZJDSBoGQXxTLzQpIWH8NRZmcBZWtDC2G8879Y2l9XW1NdVVlxezFhfm52Zl2q9mo16qVcqlYyOeymXQqmYjHpqOR8NRkKBjw+7wet8tpt1ktZpPRoNdpNZTBUD1bCral61GY4OloaXs5uSmMOFze3j0/cxPxfpxMGBB9Qbp1SfmZ0toq1J2a2JwzN/ohn5IQdkkmy84baOuTWlfYuigIcl4haO/oazZXK26puKyyUBLE0m/K/qw54FEwmAIwxMBIBIFJNqcDWDyuaxWw66ud5EtOJoxFWTOokUYbPcGHuPvanZ43xaNSURNKIFbDtOyP3WFE0FOQiJWxrS/VgVgaS64i7JdvIeFS330KQFzG/jlxd4YrqOBTLgnDVdV3dCFYG8uDot6PRV0pB4KeIPHdVNDpu5mCYjVERr+bpa+ElLgTGzaUTp8IUxuEFHYbIpeMpCOXhl+xKuoVMzVsbeH6qYggMn3yaCOMkV/t0lA0AjRmm5oS2GO+n+pZm8A3qhc9AiFkeV6LAkTo646WHL2gF/UKVVBbQIH86ob+R4AA4UeMFTgkqXlZ+Yvp+saUiojBZQlSFFkpvR1L0G9R5CrugyPmpnLruYK+xVCBbS0aVSe1D6iU80DjBtPbkbIQdwnWnFV4kVgSbE30FZlUndLWh/bsDUyyChCO8l9rQ309X89DdfVpi5OLYsWxWFsaVueUM5x6GHNlzHZsj1jcGGDVJasoNnvZGJQHt+DE2hJttSCrcn9yKE+E0HgfYnFAm9MTiVy/kNw4C+XoRCJ5InP6yWTCcIk3I9iI/4/OMYfSA5/CPoDoc5qosfUiTgUd6MWWJ7efZUOP1raUbi9DHmDcnFXKrYuge+b8nnoEJ4BNL7RmlB/4zLIzrVCzwnNl75nVFbkNM52XLmrnltmV2G30oYdhpPdCbAaBGWxFRWHaeV0Qx6exDq+oHR5xvDzwStpWcW6AfeWsUk5PJDli9pByKUU7P+bB+LE0Cph22OfgJs0UDZwQchxPERE2e2UdE5s8jPkwiozwfBsruSQNQ5s6EUyeHmuU3hzrIBa7mePqo2wLqaPHJ+DsHDV+XlWZnBObNxkVKXBxJy0XlVy2RvHjvKRrwKIad7DJrECN1KTzkqSn/D6l3BVIO9C8JVBfaSu22lPgxHMcDT2Pj5OrxjYerQtxlrQQz6pD0klw1kvXJ1OhVgpOAmMfZ3j8+ufzSs4Lmn7seeaNCHI7qSreLM2UR6ibKHIqHgUca8PmpsBKr0CbMdJkeJrk6rUHxFHiqsYT8yuuG/QjESv9CgF0QNM+44SoDZWjthO0wJCiD2uRYK1ZOcVyNf9TSs6Iwxtca8RhXnyEUpYcwsHt0NluQwZVuOShV030h2qA0O6Ca9gBMyescQclV0wozTPPBaVrRkv76DcHgWmSSUXtkcQRN3oxNW1NoR9qOF3QIij3cEClsOG2iY60QqmD0CwR2GXVsBEoHhpzoGzN0Plxm5HrXrsNMyYB8cOrBs66q6S8WeUdI4SD56bECm5MBElBFICM4QSuO7F5VObXRZwIJkCiPTIdKpbFE9SIHALH4ii07xJ1WQ+aMzhxLG7sBwRlvIYR6cZMUkIdEtobO6rwmR3lLICH43QsizHkGZ5HmVmLP29Od/eRM+S8P9QP5g7yGGBwdB764q4jvKfPVFHPt3WBlnqQGcOn5uh/xtdvHhKYnI20HxNNJN9VhkaQRA6mdCURGfKkUNtjrcCvBOjLrRwJFgZCL8PGfakjW43NKfQlNzyzu89J4FDbXgL9ogISl1jdPaIWzdJs20wudZxe6Z5JZtZCSY9S93ZmwcNU+SpFptGnzIp20bCFxMYL+o+A8d0SX0cNFQB2KD0MtVDypxdquil225/yIJuCBO7siM0Rl4TS2kaNY7Ux7nwiIW+LJ3y4GCLxOBPB5Ai0z2O56JomFESXb5KXJ2S2oX+nOG2DR1yt5DE/Hcvp8TM97g8ksIoNrpRHwSRFQlpWVUa6u6oCd0MFy5v16Pjw93rhSzsgkCqiVTzzA0Tm7KEBY76mmbbZnITndiYW74S1qpYzLwz5yOQJnjIcQnNsopsAUu1HAJ3cZj4h5JjTkCemUp59CH6FzMCFgl4l3GgHFR3OdbdFK0wkSh5i8AalglhYtikOf/p/8tzf5hAwgXPciqVKS8BPPxUeznkHliJnrfPZ/FOu6RNiFv8XK2DSlGaUCiB6ZSt9zzVzy6s+RVm++Cq2Li/gwYudpDJacVAiVkHPObL9Lmaz2lX+An+eESWOWpd3yZ92VRBmkB5L0LbnGvdlo4NAbKbuym0ruBLLfvHUYuegqjFd1yxEtpFwVNQW06vyOsiuikaRY2fFVfK0QW8lY9RxGo0VMiNXi0o9mYkllkvsPWo95I9blRQ4WSkoI5zHtzokXRGW8J0edqEI8ZLSIwT+wthTy0bUSj5VlW6phVIEyS68PblPumZGOo5GDon/Bme4GsuXmtT9jz+He8gqcNEptn0OUy/CQos16C9Ck8qhDOSR3yW5Y+jmIudR45Tq6uqqOy6EiQCt4MCMxV8LEDATDGFw0e/5bBQgY7dLzhpEoGlhkumQzY34JMgMSNhwOSAzSdzwBiCzSHrRfwUym2yB2gvIHJITxk+XPKAtBHx9SfTRkflo2pWNAtkEoMQ/wHWBmZcGMFcAxssBw3oACu41T8LhacqCMgLkmyAgZCJuUMQeZWJGiYP8XheoDLwbTNb9hnKWySCrLmrHM4MZ96ZErGhQQxXecn25gdAAVoKx2dHe3TyLrjLHoNVV8B9y7kk5XqfqwEQR9Yz16WjDCbJxGlpSwWM7GxfjVLuvvnROAB4Ot4vf2jalo2exRc3qCMlylqI6HItKUmjVjPT0zbMIIW38P+SSdGPBqaF3/ggVsCnL3ecRq9QpapTj3Hf/Vox22D24d0iZFoHFytvVtqamK9zW46q83HezZ2r/aM9T1C7X2ZSrD+kglFrUeq5zjJreMDJ8Keez9x2FshY/8o/Ho+pSoSnQhwmD2BKaIZ4zlTpZmhzpn4nfubH1oNSKRVr4fKGMoaNIMzh6g+lFPJYLfQIBJgqVz1VR4YCd3GMbz9RRkCHpKAf4QpQqV9YcXwmcbwG6Tt9Wg7bpeeeoEWpDumLgzFJYqaiNTF6W76/rIZ0Q7OxksBW8Uz3UVBEap2UzQGOH7y/RH0KyX6wTtTfzFsfqAvmRNPtcEyxdTgJdSbaBBLKPs3LUs9mP8EpEmDrF4IImFBUr7s7kDZa6u91Sa7dCB9E6dvKAXOLkrdwTyGfBybl8nh4bn1B4PcNx0D/Qkk1STnggLlJ4IT3fAjBZJB2xRShpcF1kqsiyD8EXI1iRnvrnLxlu17B5sQfzdz4k7M+jXqMahHm1MUthiNvDF0S0mbtCarqfLjs6BbS414U2RcU1VQNiAe4L9ZTNHrvFWzXGSE6Yk4dyPBwbWqMnB+jySjYusVRs1iCboY7AL8wRrOmpRUsxc9tvEmAbw5iGfBitjoY+33Ifk0TpSZhhY2+6DdPSX3BWx61fAFDvbKOpImdkm82e6yOilQ+3yHP7Mx8oxmg+gp4ypqMZ70PNtjYwA+WNODYCuQKhz/9qPuPsnxF1fFrPzzldnNjlc9mWjnlFm2yM3DWZT7SXMLV1vIVtIb5+DS7R3cgYJa6SIAvdPkiKVsJvS9ljD8dNbFCBXGZ8yPHJRFoBS2P+1L7rUfHJ/kbpXtL9bUSS6/Lvugp3vwjP7CV8Z4cXIB+yWODKV7eDLHvwzxGx4QDFlP4jZSisJx7OGdnlUFsf37x5vtPoJO7adVABtRGPPnccNK+PSH3dmdHbcI8KN4l4aL0RFK8c1vSPwzctWd1wY+xhsvRtZKQruWSzMMUb71h/2OHQl8k+uhjoBkFGeDcKmhUgHa4s+kSXbW5/Ns9mrtbAG/NA+pVLq8CGLf/N6TTUW8/eegXbLc1Ru9m9pEpmb2nhaHg0GLsjA9fFA6QXQ03wGW3gl2c+2/lK7cjIcO/jzUW0welssG0YiWSAQy3MrghuOPVgDqWu3Tf5zaFha+C5uj8yLcrtgaLKZRiRHxdeOuv4hbcOOhqqRzUOpjqg45Mp2s7Jw+KowbhkqWP8HH9m1EO1QyFKyw7IwWd9/pth6Py0BcjDnkx6pyeUbnrQa6dT9JpojyY2xtEuqsdHcHrrcjZN30LAZ5vqD0NoCDObjBdOrh3fBFiYvPXOXfMeMOOYh+YFA3StytRS8faMldhpwIdEud1z1WZ+OPuFI61Faqk1dWNqxhuknd0NeMh46kfGEVtmelPG2426zhm5IdXEYyeHK2/Nw74UnwO8H3BmKyRsKbecAPC7SGxgPgTf9bGPrpd87gC9Mdl4aDONxW+ZvX1f1+yyJoEFHgNcSyBnVAvuENPIaSg0WQ45i3+UwQC0/sLG20iNC5pj1HAgGA5GECYYNlyTV2P9gW/wcvYarwYOU9DoBwYxK2K+TEQ6JNR0Jv76VYfKVAbSS6Sd2mskWvchb96D4nDs7SON7zJBMA1ZG8mQg0Y3Zx3QJ5MlXTeVK9IOALu6pEMn0KWZ7NjBZeDjSWLbi6iDCM/FwR+Lo5obu4jPCoIfFA/s7z1wLrhCpzXimxgOcup8szsy7syfXtBJ8a5jX9H6d3v1CuJnm0gb4+Vju/G+mTePM5EJ3Ew8xdHB5lb/VSjurblSdmQZ2sUvXT+3jfxvdm+ajy3z1p+r62PtnXOlTxR0dw+Z8Xja21rTLeHj9jR+sRHbsRC7MsQ6OoKW1Gz1zo248aqZFLbs64tQCcmKZHZe2osTbLcvcd60A7QuLpzByPJGQwflQCAbTuD+1Xi2uE2L4cNtNP3GhRUVm0cxNToziS8O5zCtg/Jlrm8C13RfZkaBeKGQ55oesyIlHiHas+/QIPsWAlmj1gBq6Na6t7HLY58UU5+BoZKaSonIC5rzjBbzF2lqOJO9vC6zSfOjdSw1NfJIdWZHaqeCjjNklM8VgnF7ZNwaPd4HbO9gju9Ild0P5hio6Qpki4ZDJN+YehjuVAy6lZ/cBmES4cUKC65nvFALwZeuI2TU5Mpx2CYqrC0FgF+8Pm+k6/dcqVpmuOtiyT+UUiNnO85jd4kT8NUPVnSwXxKwvXiXp1SBQoDqV8qfOyLXTFW+ZJxBH8+dXzVgmn7A9o3NW+nIL09NeIOXh0kcFzYh/5BM17SefSi50ZklMb1TlK72yKmlrLg7Xj7quqCck8BYyWHVx6OpoTKJq9jQl8sF+nv/vvdiVJATBJ3qe4ie9AVfs1nofPn0PYug897DttLeV25uL2u/SwOk6162noBuOPuotNMPHQPBUVbbcYs+n0RoipGUW+1ZCmKV+uan9hElA+W6xe2um8t7oc3xotViEUF8PViHzcvw8DCyZDIZXfUgzEB8jv7sfT8rJIVujhcM8NpaLemkUyidojL+733yOQY4ysotXRYIHkokSCes9As5nTvkdp8ZiUDHNrmfQe3QEuzMVSQODbkUWw7AI7zqqlMmUTtPXH+VhOnneSGddFqQHquTV+/vmmdc5R/+DwLnWBnruLjr/NCmq3zUWwdoMJoZO+GBGbEhUWnpuBOXMn/EFMs1Ze/Y+cTl/d0nFFHOKqyU35LgJoyE4PveecbB5p5z64sN0M6/pt3T4Mx99g++2iXG7n64cC/R+qOp/Y3vKA8dWy92xYsT8E4j3t0uXLNJI92qlXZeyN3Au5R3GdMeC8PR4P4Egm6Oi2WNTndyXB1YHri2+DJ/6FAiETp8WU7xAmhFZsXtOSsS8Zy5kpZxxVjBRN55ZgXKhF6nTOriPB8d+/XvY1xz+4vxxP7C3CfHwClNUqI60QV9ZFKt7/jm+LBNbNzfpC3tXfLiKT+cyQ/nKfoHPRLNqsyoOSEZRoON8R25f2FZIeOu7v854Gf++tcg3y3sDtPRQo93N8wjelOEytLQef9YRyZ7p/qs42yVkMWxJrkOUX4kdMPhkXvY+jCNqWHwo3VTvZP9r7VSwOJaM5znATz3kbNFynEfUP7oO9//+Tf+r9849uWRw+fiwPxBLwAkRfdw6/8Oe5N7wUDmfU+S/1I4fikBZhjMxLabgPwXQBhIDb1ss+0GYXr/SoPsXrlnmL1rj/tWl0FA8esh/WtzqPs9xuSo3KHfwJF+9L8sVp3LfBgUUQAc7pve/bjdabdJwuTBVSxDlQSmgn7nmx0S+yhNSSexrOP4C9CLPgMGS9xqszGiPnllYNoIfq8YtipJzFTsaeiZKv5sbyEcOBZ1+d6Qc52bMqBreK18z5hSPRoUrenAV6SPldXi3LRMoZA3qSinXqeVFXIyHA6RP18diNFEogTN4Bp8aB0mc0yRQQFrS5iiaTIr6lpCq61gyrrZpGwaruMzZqUTr4X3f9aFpWXSglYnzadRDCOdbJ021EcI4Hfoq5iyYTZbYVWpF0Wone/d9o/DqgyKJk0dghmZCvaT33ivM5IBnA43tGkyK+uW1j2tm02K5kwNoRxLoWg+WkjJKF33j+Nje4X4EgyopgWCmAoTRhIwrilhLaI1et6xVcn0mzLoBVem3xfGxYm0EIMilaw/VCmEp8pp/2SpyPxzeeeiZRB2GGsY1jSZZfU8plbnFfKacU0Hvi59atFnd2ki9iEK5grFChzdHSWs/r+osF8Y2/L71B+pCASwk5oZpna1WaAqy9lM7fILVliZWwvNxtGv6aoKrKI3YOXqhE5fnlCUDXpFpazQEdRpCZpR42hKiVqVkRBcjWbebaD2klgn9KpKFpciyOGFNVwiNxKN+dRRAX8aGwA1irge8B5VVwirg0KeXqghGsVy/JVHh52CqRMr/WHrZEG36kLB0rL+iY49Hzz3d/vyl8TPjvnEXvxbCmotw/oreDrBFitY7LaUbat1iKAp+zxyP4czioZTMTc2JeAdu9swPr5njPhwToeuvMzXKmM6XUXX46UFoxo2pcY4gUsnGOquMaK3S+7AvEydiHe5AQ25ITfW3P8E8X514bOXAJVlIDveqJX75UpmTSL55QY05EakAagsA9kalPLSQuZ+4hns/4+eQmBUaYOVuGYtHpJqpnrBl3iiQH7+gUP5FHnIOsEnBT4zbjN2fZNKHw3aSArO5O4nHuhx9jPcJiVnPPS5cZuh6+tkGnnFNQwqeHcq6Uhu3C2dpAqsInctGEShWDHswKM+b6CYL/5Nn7QI09OIUhFkcq185hC+TzMwfjyeYoo9chnqTbLB7/kncPFfxOPCrTA8uEqI/jMDRSCgwNhUauwsFgsqJwXcmHKAuNqQnMVMfEUzuL1R3ZuDLxj4YiyDvn/W81C0DlOHybRd8iGCEwZjG4WutxLDdx/NNkjZE2nfa0WBx9JOszxw+dKiLw3+sO/VheG7/1pzV/DT6CC5uemhmq/cFcK4y3A41O8HU28vbms/36Vt2GwQgtabdJ0NtoxPesxxqKbuJ0l/Fz5xKhK9Tx6xqZa7lv1f7BnWcNmX/5x5FKODp3cYB5CpGiaLirPFhijOYlI1/odyu0kma4xymWO7JlA9/sQ0Q5+7/sUg3DUq0MYkGaIe4Nja9mCHczno2mO1tSCphRAMRbvsrGRKdiaIQV+y26lkqOMjCdy/q/6I9My9QO9i8Z5lqv6SRmOesC5DDazmqkwTFqHxraJhNlu7SqLe8RQEOjqS9gm/PXu6jZjT2bDNlg/Xxro+N/WeAW2mxF3z7ZxXAnuTHMB8oeu4+/1+nkck0A0vvAjdQVwOtnUMtPJPrYWY8umERcyzt2jpg2NhMciXGmH6Z/OLHKFfLuIHknxgxMG2Gz2cbxouOCrRTzNu+6i5OWYbdfGcyzYpWZbbFtco5VMZrkKT5IqCcrkoGOcpCGiAyXeKXKX4tCLCRVwwg+uaFoC7A3fc3n3M78zaz7pE1wJBh73CRN1SMeqo0O32Kl3mEEtRd41pI1Tmg1azMJXyXNBsXXYpmSg5NLqqczpacWo1RWesy5CkIEZYILKkqBqtccQWwesAY4oCvsIDXbMmdjtlXzuW+YEn0zylpZwaPVRoGFYOFknLPVGBYQJoOQ4msW3Gozqcy4muU2yQEclY2S5X5WeWDRCHHuoUAIel947dXH/14z1wc8MZCESFEt63PLV4kMHShGlGPD9+wvPXTqAanGkO18oeCcPaLg7l8fcgYMSeg4uyYQ5xV3IRVVldP2buhLra3QOzs1AF3qykl5ySc/890K3/HnxYHO03UNPv/jiN7zZHeEwnF+ZY68zkCimsBMVTo0z/Kfl5HuKVCPihjBDMYd+8HVspe5kHnb4aU0Mydv3QLMa3kbwHjYYzS70brWekOhSqQI4t12T5aECGoqEUX0GQT7IRp0CIOCIs1USMJXYIqTxPQgw2OG64nVhatU9oE4Wwb4Y14RaJ5c5Zps8vogmnWKRwz7K8hLmDkyaT6Z6bW1YdJWeTpZZbjc+68/k2xA13cYejSBea+LDUVKKbLehDTTBfFGTBro7B7q/At+N9GyxHUoPqYJY9geecHURhB9MwJrjXBRV3QKqYvlKngMZzhzLJptiIQyhAnFEWeB1ZIpVIWFIW1Z0OxNyNe5J+vyeBGznxrk+CgOTkY+c11EsWnt1QKQF4+xO7D3TvJP2spWt628+cH7+Ta9PLGIO/f3m0bZNJAp5GQs+g6LAgcS+iVSFMphraoa7ztsuUBPr2H7Sv2GKdgEdgfA8YbW1/Q9H3Zv+RIKHVahMy0M/gqoOFMhg6bjjZ9/wPkn3tnnvbk7ht1/DICN+9ib9EvslcXM2fDHFkAyLaEvWNPkcqEt6Gxu1kPypjq/Z6xsa82N4HUY2ExZY3iVJqkbD7XvwBVtw6sz6qHSTEA9tfa4bXkMi6e3lYu9+6SyQ26GkjTqdbd+83O2A63XSbTXbVsUzji7iBM04xstQqA4tM1nNU2612EYvlFhtNHjEqOkTgGjRAFS+Jn+hzJqNTg2kw7pPJWeqhJI+Kuya5tXPMtnL/PYQ3xX9gX9816E6nBr3gb7/2JHkNGGPnKdMny7ZzYQ90z8g/+fIUW4R8muM0Bp1Te8DiRXt6ADO0+3X8XbN2qAAzeLu4n9B8T2rghZznuhvXDWQPzk+4KT9qte5/MOf5nsY5aLtPLzR6mgqDbfF7nuM+01HCT+igpztA1i0wZrczK1thecqaM4rvwC72Pd4qvWXr1j1BfDIAVy3cUD0/5RSf2nwsOCmldoSwoXYSK7UZBuyDw+n3EP3Ak69CaujRl6BVtddzARQjHrmekYOBzpo+gHnVm7eSLlT0UgsQ+L8PNyWfBZHiL4/DAfG3J8zp9xHeDInC8Besi66PBsQPdZtQQk/Fk/47OAD+3LrsSpizO907Co32pnZzEAU8AA1RAhQOsf3vo+QjvWVETtMfgkD/Q+PVVMPVt99C3mqjGKgDB2AFwtmdciKly8JKGBw8fmWVtHi5aNrYORXLVy5ve0AfkA1s5TqLoJTuTYTbRHefHXD6nbUqX3hnBhj6tiXnvEXBcXzNnzLoTwAquEw501JeGk9gl842r5goiF0uL29gl8Rdo/VvKNQheuI+6her9xDXM2sHtb69OUtk4oJ6+bB0eOQi2aTKxKFIWH6oVj0sH85I9RxVuSPXw3roEeU/M4hxm+eNj3p/J9WoGmbRvyWTRzdb5GqqhmZT/WemuLiPJDFWpaaZ7sm1hGn70ozMOhGlCY0weRR36LQ0jGwU/zqc+VIqV0/A/e+4empngQ/yN6J+MlfH5XG1/nH0JwNR+LQQvD+KpO9+kP/A3cMpQrMLlZHNd+sIOsIDOB1Rqv++cQOOImTrs7puLfS8ms543jY48tdKaQwqIFuf0RG00HNqGmvVPSQb+ic1cX94hNMvlTsKo2bASg04HxuXkHAEXjIYkCVF9iHxxn3w0DC8aFxkXySSWY6BoG3zgwHerEbLbfkDM1ytdoYXCPLaGo3Y/mDgm2elIWTVlstJV7GUaRm++Lsl7SAVcbDZHrEYOmyEGjpL310cmaBX33hq+uJ+f1qun+k+KF646OwYu1YmE0y7fDZcWWnRSAUCgyj2gytUa7qvOTtpmd0XQlXrn43d8nzsxmXJvMskQwmXnQQvLXKPJJNVNBp07aHSVJAO7WmkDXQXEu0IaTPNdYx+JPGae0B6S8ZIfZvZgpz6ocQpSO8m7UU4jKb+K3UcDPGWxKkmAz0qFNGnNRCnSaQJmtkQ2CLhSCckQY2RV1vtb7cXD9xqu/3mr2VWL0QCpr6p0pRxjabSVOu1wuEVDY6XR+76a96185eDjybPzVP1a6F28NOrvtwBAqGX0HPc400KzuK+GQ5P54VONL176YViZKeons9HXjuBC3EgtotwBwFwo2Xigj6fozcVZt/LcAt77Yrkb8L0cVQBbDurmWl+/T7pcggMg+jAxadWh4dXtw0jrgnR9K5HjsjpdKpbz8nHO5e9bcff3Dv3CMfnypZdLYNPNh/jaOQl3clnpZdRl7bgMLbjggcHqX/uIGlSJas7QJVg4MXV++qyuU+C6earl8m8uuFETiecfVML2kXTVUySSywWXXvoDAzSwd0sjvFbrbZFDE6Pp0MaSwEz/XbdsHDLwq5b5jtT5d4ykOm7+2+Y33VPBp6+UDHrqTugGUCX2QlIps4qUE4ogP8+FHDg4qEzhSFPdlXCG3BADwqMKATtVPBYbH4fbIbWmlBAc+06tt0/MHPeTvvzZgb62+deomncoz5hyPH4QXUbZAt71l29V6y4Za+0tzgEvesf2QqtWwRH5jAiIhi1Xfjtr0ruv53aw+W3At39wxO9e5lg16s96LbrD/G6B0/eY6cc2dFjgbbanxoZk4DZBPuhXqoI+kbX9I+9/UnPwCN7oY7pMeARd7622UXJVg6UhsCFUXtu0fXJYwD6GRM9xYUZPkkEoP7YGGUxZi6qdOxrkhZxdPvR/w4UlT2dTWE/U4PbPAz/FJfy/xRwF6fw85gauGXkxBb8rG188pZ7/1xQvjSX/QOYOgXjPF+b51vKhZc/gDhw9/N9UxpP9m3uWf5cCOF6a0LrXvAP4Qx1lHzv+LYbkLp3De2rB22wbtl2C/zmAQQA3IjBwfIjV9b3+M20dhoXzgCJJRGBIX7iu9BUEgT6+vZfRlQe+IsVB0vnSSXK4meCFAQxHC7L1F1Z/EyQEKRVK2bvdIwC/JkwykahjCLKUKp+B3lLWvtqkeUdIlsmhc6CIE41Tma6Rm9mK4Bl8ByQuYhkGjQ50Lf/JEdymBC8OLupT2LWZbvTwSt34Gaz7KOzj8rGgjjbDO9tPT2zPcMzezDGMngOyNwCIkSO3Ib2WdKDckAGu6dekDBTEaNORPRagMS9S0qNf/ZNNOjHJ+S2lCeXgMwvfhdLxR+iRSwTy8UKsdJeNRo3v3tbsj3t/pZWIuCLlvn+0VxKbMktlZFu7JPfgFUPrrW/ryUqPH0Ya2JVpszMFSSuqOJ1cZ03xA3eTty2lHfEHd6z722vMXR2ldk3Qj95bzYwnmUapQ8T4wZ+2L/3MdqTMWGzN+MRMpR1mSbHJ+aWUqYBxkPZCAP89/tzW+j3qo4HFtDuJm9b+L6nAcgEn5cRPi1T9wMQAUPlJr9fRQUVMkagC3JMGnjXTyBk7CpFCAuU4/VjzMtgGwtWlYJV3u9qvU9DsSNFNrmkKbRt426Mvq7rYMOrjrUP69jp9vHOYfwUPn4z0PrvUAdw6kKAOX264nV6dgc7BWBqUI9Hvu2uiM8rXrQ2yiaor3Czj8EMv+NvqGVZe0a+Gw8/D2QOQGFu3xn4T7WPA7wTM0/r1zORQ1e2Pp6jW+C8rNkR/9UVufHk06D2oiWMu5PKk+imDQMir+Mwfn2F3jub9YxLqq7g7jON84Hb6yzJIMMAX/8eeOnP1yVp8n31L+CpQ6qtB7Gy8yeCWvF/SoeVXdj6fRwtIiXfoQg1XZDYd8mL9aSC9O/MbchBPm8/3nssfexV56PkxEGFtqqALkW7Zz0WuOgmtAmUal90RaW9QT1cdaNpAygflwPae0WLbwr36XMSo0K/RL++1D1sSZTGmmr5FCYXB0L6W0bRCMH4DIP/+ExW7nwrT6S8GpafQHEplxVvUPT6U9LJz+qtt7UycRHHxN7dnqZgd81US/jSMbAJrdPvDR4sr8Fqw3YcveimKtbu0ApfFWNxHtQIp1Cf5y5JHUbRZUD/v8Cx3qKjzVFLxHNDS5Hn6cAmtObt8daxsf7RA5HP8vqkixG/0ILt6N+yqZHInINGxUnmgRZ+sBMHwudOvFdevRrzSp2no4Rq8T42VvSzfZFfwh6sx/7Hu1z3qCH40Fq/aa9PDMx98rV0d09NhRJRXpTXq/ZR9t8NAgKDukvhAHUfgKUESjBUqSpLbPImB7VNx4wwYz/HOsfjPMurgiJcIjAaY0Vsi2NxNXPJwEzNmtyWx5q6mVp4S2ujWllraq+69V1ZT7HT+q7eN1QPfkPskDOMG+YOHUNsrB79xpFj12gdgxPbecw+eB4+Ht7O3ey7xOvjVyF/5uP5kF1H59Dj0N+g6XLdf5f/Of/7/q8FpwTNgqFCCpvDbsC+Ep4R5VbWbN6++TZcUvRW0cGipWKsqhHPzaqSv6dy6vVt/6VX0xdt/zc9yH+F/yn/REmQWb/jq4yqZG/JiVKdLbOjO//OuudkuG9w/3PxslW7r9/9wtwNe5qB3JGvBMzzPaOn7ftv0FxeFO8VPQsuOXC8IiGv1/xQhhYik5u1Dy7cW7lBd586XvlG5d7KzyuXq3zTvGZqOa1XW68/R3+N/qvar9o/WrMmrnqx6sNlHfuHvUjRtxouMtxk+L4+vtg2c3nNB9Xo7EDtV0NtoSW8MPYhaStJQrKSoqQa6SjSXtKzccf4A+P3xn8lp8kY2U1Ok4+QH5F/ojgpoxQlxUUpUJXUN2jraHfSQ+hH6D0MBgNnZBgLjLMYH5kXMD9luVkXsR6yvmNvYu9hy9nHsNexO9kfc9ZzNJxJziLnZK49V86Nci/i7uR2cF/k/snDeMM8IU/PS/FO593k9/BJfISP8938FL/FP5a/jH+Z/x68C2bAKtgGR+AyvA+eB6+B2+Gj8E8ERfYgTESCGJAgkkcWkBOR1chO5JagV8AQYIIlwWmC0z7h3OI8zihnyt3lUddm19muy1w3u75ePlG+XB7calb+GYwKgBj0ScAAgJoAzSzxvlSABvAt7ANuYv2O+HwhOJrJLJUKvFYhvyaCXKo6lMG4TfQEw762ZvuPi8DVTGadWQsqbt3957ZWuIU7/0Uhfx4osOdH3QGu/tsDRHBFXF+N/BDCaKQA5QCddPUSSgfZmn7FAP+iWZv5eN76A7yWhDlnNqamOB8dk2W0Zje3eaetXftYyFGhMYVbSyNviWIKAWHkQ9MAvFza/H3+Q10C7Iv6yi79ACx8A//mNfg5S6hTdMptPVBx6zkQDMIzsxtu1QjG9jzLcOa+LTcglzUKgyGjJDKE7xRouY+1sarVRdtAWFviFOBzq3NjiSKLY8tn6py54tsgRmLGKFUT97amnRUVt95asn2AFZ1mNFaslatnalCIaW1Qssa31p83nfyp7dTKQbfaPsUWOYNU2rkhWqUeXsZTiMndcDDgrw6bB7sq1edt0P8rpCI0XxwJjMJ2rnmKiYd+RGEqETap70VTGpMdzCAKWhiXRF2LFAzKrhNNg0wCZhpNsVa+RSPWEeAcWIujSXWrW4golsA8EEvwYDQyBuNPaZN25lIZXvaiSt7ptQyaa0cOBmtACPTQfRkwy6aRXeM+ilWoomjO+bzwBCi9Cgg8wo7icLoG822iNg3lA9gwCxbUeWbfxnYYdjQGxacsewavigY9qVPa7QwOhZxx4UYYNwMOSZo1Il7r3gzegDwPC9PTAaXk8E1ULjXqLWs4OYrvKMzSIaXdBsrQjefbCfD6cSEFk8YGGNwiu1ECw60AAQ2CHwD0f29sDniEPShYO1G/L9ryrG6iStt2Us3JKN4E0JMeAiii9iajc+fkHJcj1cYBjuHAubJkwR+hu4LYyFLMFVZo906yGTKX15A6UKBaje20oM9d235Wh3XRC9rOsfQWMaGGprC0m/0ChN9bTtvHHhosB8tCk6lXEcGn/7e6kuWE+F9vHTPVULshTce32foJJKg5ln1uhqnkBHn7k+KPS/Yknaft2bMHLDJW8W33lK4IeQrUPiB3xkB2obDfKwcCrAW0KG1q7GWVbVfl4UTDVvtm8v7TEtzaNzbHqFr90rDd95cN8O6J3m47lz8u2w1EvsxhI4zhSUN2wdMtoLd1VIfIUdJmoArIfLJKtR0ycpAw+5xrgy/K5zqAuzTDINflq5OKWxGXnIWSorRlLwV8eAvaoJMka19bBbGIjktESg9llX23HvYVpcax/vmB731tGw8cl6AojJ4NfJSSEHqIbzmWBF3p6pZ9NcgVtqDh+ExSqLYAxmKVoLayZCEKJYQM9ibEnClQR6pS6cWoESTw0XSan9YXJcyB//xHyK7xCxGyNTjjuifnMt6kP9g5E3WY96tgMnbSzuS8UsxpG7K6nigbF9sBedozgAzxfOzo1PObur3H5zfb48yJWaAAEY+fhdJvNEGTJZP2Ixdefz0D5ZJbb70JChQ1V3/Bgl8HvQAPBTgphJhjk6zfvJoYU316RwChXJAs7yLwJhiE0u0jtNRs1uBbWkEkEsH3IQBi37aSOaReqD4+qpt9cEm1ClaEF1h7ett1KlVJOP7meV0iWm992vzKb72iV+w5vVJ57+HD+J+OfHRT2/+Glcd614yaeyYEJ8RiC2248pP+/eXlL5R1d4PFHbXvXVeFPq9vysn200q88OAnRz5co6IF3y7XQVa/uDX8OVaj9S0LxxmQLZMGQb+duiE+0Hb6lXRTJZiFH3JtPuKHiuMk7vYH/k9S68yUs7aYBKppTCbEJa3HWv5fXBdHeiSEENFQEyFyyObzsmVwDQpq2FjcFLHlEyLKla0+JucT3q9JruXXlFevIbl+OKaIbZdoHPbPgAcy7lM+uiCkuYrWXFx4snAzAznTOM4BJrOghB5Wumwk+0TkK4NB2OEbf4nIL4kySdXRnnVqIOgIv41WqmMxrTIUMugAp5WRYoCSXXQzjAQBTNHE1GqY50ckIxuQZf2R3IS1U/uhYy/WD2i/22WaX07fFuWolNEtwxyui4lDq1FIKyNBI6+2y3cPyeO3WMmrL+rexb0U5dp46XBa4y8ibSjCEB/Yt/FwQS4VcLjeTShHc8B2ZdzDgN+t5idJD3baJHlAriGop2rWOkThrXvLqiv9+UKITzZA4bW90v1SOGXDuI+9sgZqBrm0i2Ieq3asV1IGTh7O2//+aSFNwslx0K3UjGg2uowmaBrTNhzGuHywoznwNCMJT8g4vLzLb53WS/lILC7C7TmOHwP+95zzM0jb+mmThklvb3SnH9yvB0rW9u4VcT0t2uuq7oR3q3jNagUQcvMwXvO9F6cVJtteG0JpLMqkGb+ZMuuIi8UpbNeMLzc5b4SXYr62ZYuWrGfW2ectzYZZ9fjwpG4YUctSD3sOMnwSf1AoJuD0ZgDT9bTUW+gNSg0bM+Nxx1wM8xQd9k8P5+00vG5cb7qWT4gdNbE+K088yrIiAHG8ZgHE1ZJkEBdAjZLdECWDQhEL/A8mFGaqOhzOduKJb07Us+TCIPJeGXx8UUzzlwXSRSr3cBBJc0GlZS17ZKmNrG9z38PV6r6E2tzoaLvspXmTdGr1OiSFHVSwGlX1vRgqWRXdOcKoJGXaXHi0JeI+hbKWl4UmU2MddtRca3CQdkUBwsXKPDQrwqhmTHaPDw8xggslCNRxpioDMJK/UkglcZ0APBZN97a39w4jEGRMbTmsDrfPT4IGNfSXDncuR2LHAR2nqRLP+ZEQKQV4RVOsq8S+KzTMr2evdI2MXwyUFy6uG2iQdGM0CCymCtrQgg3vXDRkxUQjqOAgyX36IxJQjFi0802/vKIf6T8sU6pcadTCGt5PjSpXHi5h6/hRazri62PubEa2czH4qoksAunJumC6DlI1RtujwC9sGbjQgpc5hkKzNC+tIR6p+oD6w2yVdhFxBRqUFgj8kAvtNK35XFbBgatAm/0uztWEyJGYaWWdw/fsXeq8KbNbfTJaMBs9DLbZFlS+RRz8jtX9YstWil73VOUxBkQrSxYIEAq9W+T13mXXnuGr8IWyVllfgpTOOpwGX1FCXAc9vhksmzjkkdMuVwIaZJdCXBFXeOCwwQy198e/LExMoIOyVEsW24b+Xt/EmrTUYTekSj8ToMav2HVmmmuTpYvPYtg+gw2dpM6SW62TfE7GH2DumTfLAl8I/ei9gnfzkKdj/CNu4TR0p8mqfFMIValZZVyyIGOTvw2sTNfhKGiq5Lm92AJJJevdJX6X4epRGJpVpf6fyt6GciPxoOu7OwUJIrtD17zJzlXCSWhnZkBB03Vl/l6lOnSZXPMn7WNjscU67ANRrLcPShaKG/cMpqWV3Q8qd65Li0cztmVqS0HygPXgbJBak7HWDyKJvzZJiwl5U0SvAYYmZ89rzbyQM7hiIhVvFUJbQCUf/2tg6Jf8FzVkGsDqigrNDVpkdLQI2+AMN3EEWYohMeIre2HFgmXIcjJoayIM/xgqjQ+FaCHm3BavPwxjNGvJeOfbMahKXx4gMWgDLDHIbVYFCekjEreNHsQkXnYyDVksbgbTICxG/BjNwc68GfK1w6Ar48/m77ln1+siHNgdn0gtfIAfmbCDOs1aD+7opEPPXtm4xsTsX4B5ivhrupVEepmkRhvTT5WomfJTTlVbAsTYWlC/YpaFP8B/Dun1lMembp+3NOG1UuC941cTpyj1jkZmaCkZzgZaWuBMc2poeMrD9FslEzaMgij8zM0nPHm0s+leyMEMSm7o0sP9tfpqypmhr1i4V8la+pPDSgwnXvX3XdK5R1rWwcHQQHm0foOgvMxgcdcLeuGi4Sudj4Gvcvfdu17rP/m4eaGZDqtRgHP9fL7ve0YDfCRZbaBcvGLh5jo1p9wjP3s9uePUUwhZqbF3ZGOrIxRYJPbOrFNoBvB0Db1WIJKB9Ho3kCtPT+ZcdrRPmL7BoU6ljnyDhTP7m/r7btj2xqkUDrPDnoPPF6HB3NZ75/ybSB3qQVY7hFJcAusjO3NA1M0qV0BR7gwGKYc1XbuZanUZUYgZBZKqWF1lLRygrpBhwphzBgtFIBxJZhe1f5UUjDa4BHc4M6o7E+HCLVcl1ln1soxsyeYqPQMruQceuAkaLGFrO6H+QUiFG88fuhOz54hQiuLpEJDAKKqXOkbCVBwKYCSjdtVAu+DvIBCz/Pq1PLZ1ReExrsCF+UsZzPYBDZjwFX93GhJPOW6UCkdIhk13ryKcX8OYj20sGUBBYhhg3CzXOBIcHZeMQBcLKjp8SYRXYx0b8wad0MTJw68784xVMih4HJIaDxrIPt2RkylIYShKGli/YnrE/Mz3mi5KciPyabS++ZXjJbKJ2nyYPKAaDMJa2O5HXVXUa32kNKhgFMEKu+phdqZ/zqvTCrllMYC6ztZL5C5Vn80A544jhYkQnOQOfkkgiE1XmADR7S3JGEd0v+W+n47sS0UmZNBswxw9Nv7mN7/oPTmAPMvUZwQbCdkJ4/hUhFKLDJ1ZXwsEgOZM2AQ71sdsAvM15jDJ5TqrzbZQC9/eccjKkMTNVhpi/ayzIguCRBKJAjChjFAjCdm25crEFdPgnFkd1zlWR5jHDWTrbVZgWqRwfOOkgF2nv/+vvatzbzhdIMP3Q+mfvKn8wQYUJES35/2hui50hItEUmCabqbS8afzFephnt6XUq2+sI6J/nAr+dpX7kqa7mFQhjyz22ZC2NB6jnliga6YEzopRpIpnYj39CzO6H1sUuscM7jXYLCC3j8sA5mw9UC54fT4NeliVi2b9zIzcafrNbBaLDzjQrVwfs1A/b5eDt206478/0+yjOiYAhlVQkj5eHtaO07ckBUhRKYoMJ1+1fRFC4uwahqNGwtuoTrHxSe1hTARqwKNlSULOWjY3HWxnHA8mRLlcKLUQKAov0cPjIMcTb7Sx4Fy6y1xLyqbjnwMnizE3hVFKJm7YGhN3yhTSgOnZViw5Mab33+4B0tpck9d5lpQqu7uo1aVoEQeXxf4HcD/xUWS1oadMFmqeT0DO3kumntVlarTrciSDnlqmvJgJ1WYH1lZcWn6XGlc30W4TwOYa2aYKDipPypmZ9/Ia2CFk2iRRZ1ecmoCMYjkSW39eq5DYv0oC9DHSmo9W01mCo++1E/aI78Y9cyZJ2nzFOyxMR7Y51H2MEpP9WLvjx+jNxHyShV9EOThoKht75sSULREFIeNvwsCyPdUyL3SfH7qqoJqDrdigofZZ4Jq8OS0Vzh6VeGWV/G5fRwk1fqADPRafGDgY1Y0EDTikV6kMJvL9hQAzK3i8rsTeyZ84pCW4RRMo7EFaOBYHfMCmwd29CTixR6law5XZBcvZWThDPLYnV3cVeKyQs7tInuLkGbJ2fKJy76sa20x0O/tEjAegRszyyNwc7cOMBc0Ocf9JIt2r3hkoRPWIWJ2VJNSMZlwVrotrPypa1f3LHlagme2qxBBMEyWnDLILt0pzDmcXwKO46KMOAI/fUpUHO+V6xGzZ4HbOP1zc5mUi1EAEkDvJ8rpOu6Df88C2GiVF3ofi9BDcHz7DI28wzIPdkZW3BAnYqkDloE1EIqk5gK4K84p2wM9V8iR0mY3+RlGxAMQHBtYEsHzCTBXyS6Yh5qpB43PxHeAgdpB15RWGkVdPnZ4/pMGtmPj9Xwvs3MEPXA67t1U6E82QbLSSdurVz5cRw2M1zH2x4qu8eqAjPJZAPUCDgqwOSrkz34jWN96Ny1oGCoOAjokJ14SYAPsMmPfCLdVY1aYpwLKDI0XU9xf6Umq9DJDYelZz5dmzGdWwbSwWVTo9Hetn5kgpw0HK+baWwgMbHP/9kpUjCQ3lAVwXNCaaZATc1vfn48ft1npqiOlIDXqgIVPhUhxhUx1lYP644gXsqfjYzt5I/T+1gveekrdO9wV26pnpyKn0Fk3ej5uOFebvAp5vTYHnAP4QId4zQb1E4KAjUytNBXe+KIiqWNpSOOTJiYdKpUjFVmN9MvUEjBrpCO+1Uejro88AEIi6tnK4Pl6eeMQk3fp850/GNlJ6WMy1PC4X+0GII6bupTOzU+NymC6gnEF5EhBbCHoX+mykeSJyFUGP4J/Znv9tNjc17AhzWiHxhvewOvi2Y5jzoSZM3mCgsEtbehj4ltt28fsQTXSZOYRgMdHTfosRw5yYe+lVZW5fczkFELeCV16ta7EWaECMa+fJ2caoZ6yaAZuV8N7o1fLZa7LTF6OMJxjtpQkapePcxd23flO6vhT8NlEgPYp/+cKuB6YOxGOFcPdzxIqYUPbxUmcZden+S3QLwsF1zzk6U5LdP5kVMdPA8c5zyPje4WAJ4pI7onqgQock+1/b94G+xWtSqAOeYkvHDPpGbHgD3+5gHHRt7zXvaveVe8yZ3K6nI6OkA9vRwjI35qTyj0AGyleGJOXUfn7rbo+CvdI/YNgxLP+YZ7ih9fTEpqSYqhYvfJnqJMxj6/nD15VXIU3XDay9rMTupFd4VYEQeH/U8hzPQ177FN4T+IalH8gFKeyh7DCBSWCuG1l3AhCfD9yygZ0Ijtjw3c87K+/Hu2+1q4XBBsxdkDSxASZHp+dzKxvRQIwqpA9L5hQtAi2FWZyGcuKyAHr219SpXy1fEzYuefevh5swc/7FzI8fs746GhH0Heut5d6S1mq5+hMfj9VqlYN0qOOB7xb7PRsBWZ58Tw6pCjUcUsZm9OHEj6qBVWz0MGTglIdg4kozFcp4WESWCQYJumd0D0M3sy4Q9jrg4M+xkkoy7+kkIR3xxmvmSEtyKO4EMkV3FJwh5UxjvXBDEpVBrtrHuaAgfTE0ZCvd3g+CLaGODFBQfQfXWelIR84FydFeb6X50QgIDh1qMHftuiNDhgHfIo0af3lT6derjJayfaFFX82qcNxC1wIN6D5SB7HRjiScTYVMkHuszwVwblSj7SXwYGnpkY0ZjiRLaVicTaqARGBIfK8UIR6FMRTMHMDKx5Nh2aGdhk8BqQ+J7YCfpknNqhkGtzOaizZVQwFplu+BWMuFoS3fu5R5w1YyD4wIKNnSpGRsibuVmmrXujxKiq6r5pQhDjEgDHLwa3ere15/0QGbdi0IDkjnMII6saPFmMOpLgXJ7wWo2ZqYqJSlXkKlq4MklBx6Vj3ltK+gUJcE9MJ44YPVSAZxklQVKwy6KH+k0yx1x1Q7y+ze+EmI/DVk+NstDeR6O20F26KmtrSGN24IEWKuwDpiEj6d7niG+tFC8mN+xFpuSvtoZorMKtyVyRe13kcHnAihpEapjqWG3e8On+CukRS42IaTq1OPmwyHF2/uUs4dD1bsrTbfiMbGgY6HooqyposD09L8BEXi9tL95+6lj2v6U3Ca7PBic0G+sqSBQakEF4vdqXL3d2noivNzELnoMRmngVkgAXY64+J9+vgullIKabcCnlrOaPNXkApDPFOXeIhbBdXcdtlE3/Nza1BL9I5ShuRnsV1/dnEcmN14EG16IQAPr/BHlIzrNzmFecy8GdJnc45XKPY0arPQo3imaK5BTxkOLYPOfzhPYGeie9zcmsBv2EvOLjYB8Q3b67t+S3IaWnyN/GcXwmwx+8Zh/fiMPg+DDutKLucYccsgGGRq3+iQt6a0X79Zh9zsJVgUHRoOWk67jswmgjrJEyN7r6OfMh2PHalE3TB4is4sybUt2B7xohjzgxlKygHO7qNPrC62TijUoorTby37/29cHEBPAp+57c+M3CePgCwKE63kUV+DuTQmAiKr58YLmrk4QZnGtoXuYhJe3hjlaCrg3XbwZp2J968qJTv8oNIqW9ctDjEWiObM8CgmbN1SiotxL5ZOhSaiXmFaefvB8jzOLbh1MtrVrz5/NdZlyYYmMQbPFFEHOv7MIwvHQXrDbhZgFP3xqVt7XqwQX4zegA26YcEuLFr2FMsmAJhvbBChIq6GO7lFWS/v0CKHW2PeDUAYxEouW7U5HRWjaVWR5aLagVKxbFUGiytkzhCxhFUzvhijZhCMQpm9NMcWcWAfXYU9RunnaX0ZyYqG10h3OyMclSlcwGRSMjps0uuQ7sHi/y6NtCH2hhdWIj0DSGwkN8oOJpuzAuBXpPQzhi/FTqGGD8bW29NB2fRjKN9PJrY4gNpFnViKscOivPY/CGttigM0BKiBFGMW71upETXi6SKNNW6dctLk1qknfZ4Yuy2fe9cvjMfqC5WZW86GE/5qtM3KYsuj7+mhexQSGOjsYezgd+tyD33cdzotAln0t22Ev/o6yIjbtftO6au6LPzwz0X/jOutMXs7KndnN+lrOPgeEButyeEEGl6/tf12GXAIJzmax5aTsrkmtcaUBjWZ/hqMaMmDaWWmZtpAYlC03ECujFHj0ISE5fEbRh0JltEJ4PgHLWqSvJdHQgvqNEaf2wUNPqjXyPWOeLXJ/xBGQx7iIjxflACRpK9GIyy3QFlA+KQv9KmMF80wHu/CCmG+PzlATCG2eOE/QHchi3CV6FQ+/KW6/XQUjPGHrBP1MFKP9k1zYxeKG6ENbz8STVNqsmigQw2lj5K6P7BUJJQViK2NWbQAUdz3h7Br7rrqhZoVz+5qIVACdnzUHTlROo8TxCv/O2n46CTvPw5x9/QJaayE4O8VsP9XRzHwD/i0Gq0oykA1rYZ0B7lGTElMV+q2fWoI99C3HG77BbLg9xUSatAP6zFVGdD4qUyZV+ZjAjhfRH6ypXIDowPra8yk3SEmZCfp+l2YGvvKkkL1lNoi19v5oU5g8lhMYljVIiY3NqKd3lHyP7GcUKoyz6wXT4QOX59iUE9lo9lB6lUMIMGTpJcVLx2UoQd+/096r4zZhddqBcgcjVaHGJrPTysyp7cAlAg/NsRi6IfrjndbBh7XV7vnl4gA2nntFxzTPM18FrNl+x+/xdTGM5n7VqbfvSBsbE60NAzEAOdNwpda8bV+0Dlw5cbIjqBuOgFViJRjr3yiEyJgRPR+TAzltmXiEQTHC1EAQUMeuuQ2JjmhRHNO+34gvgcQSA4GJVbWXLXVnTby40WXIzkDvrvK1pyAfiGafd5A339nlm2DQyNB9c1StOdPzUtBHfqf7DVTZaui658EDg/8g0P5LwNO0JlJWAUKxwjiPl1QRKRlo6uhCwbMRiFdEeWKYrypI4Ry7s4EczQdNgNY9CkKn/y9g6tlYvMZS7KtnE4jaNc0mfLjoCnPQlqpQ0q3V+Fq/gFiIujdnRNHGZAclOmWj8SOrNEW6lkjVDgO5/MJXLdMjETcaBZO0JX1ieDoAKLFN4HJPhIctMVwAFqoYydTbFKVwbw7BbOHetnsE7vDpsUx/WgPyfPAA6+eiaHv3eaLQbCZPQ0BlwnEITIuwpp6byL1mf/og5KrEYuzUxLM28fHhaCQ03+kp9PHORgYYMg7uxn2DyDvjTBzjsoFM8D1aKTLukUcDV8za9684wsk1CkTzWpSCAbY8Sfl1pHjMiWlMB5yQnahjBBMkJDarKJKBTgKdO04vdtlhdlCYQrcbbciC9YQOhKtF+nOj1DL+UMWIa6z+vHwwKd9ZgIe36vKLYcPw7JxOqiWcvl80bxuXqawxs8WX6heATy/YL4Qj0twdpWl58jYkffruf203Nv1JO2GO8XtJugRJkkc4tWkrmiSYX25eTvT0cPfNEHEpJGTwd6fHvaUdB2O6/nuUmNHY4QlGeLhLBdM8m+6E2IcxbwcL0Mb8lFlFpyBSIBZREYZZOsnmBUrA9a0TJOwKXXU81m6EWOi0egNcyTi8pf6tR+Bgn6ArsEVtnSQWzI6+4YU/UinvDGa/l2IiecGi1ifPSjr0B+ODnRfdhBxN01GHogZI0NMGqtZXv91OD+NFyRYP4qPL8KJKuUBmPv2cCFheC5/3NPm1tA6YNfuUNVRmdzhyhacUBkcTD9eB9fj+n/EdICDMo/LwVntrsfCNdsUzcuwIZMUXmULMJbsnrM7w9WOA4/IOvcKSstD4ddxEKSuTSW05c4iCMTLWew4iJo7gyZvIofgvJcoZtMP3zctJrzWk2XQG78XNZHuXaQAikSRgDi4dQnini3e+s4K/i7/ZmNE/Xvrwg3lxwt4Tyi15P/+B5msbw4sbbGbDfriri6dt/lgTtBd+nWlwIZbOSl18jS9NhAcTmcSWixKR/Hb9RkEE3XNuR2su3m/OsctAiumEaorr03eOJGuAx22jC6os/u8fxP/yeXuHYU7Pza02klO/HCkGs2kxpo2aAicuzCq/W59gXtkbptOvhE2UrgBrlqr4fMVA8dDtutPHDrGpj8m4o35qhwbpDENJ+hfoU1Fs+GeuzlwbBPmII2gtmWrSyHvDAUXOguIhXuejz3WfnJzQjSEDu2p2e4mM+qsbq2gyT3Gt6XgKMpeuFVefm6cT1JvmOy2zcW2jvgsRcTyyIkki9mMJQNDbHY3//e0XHkcJXLwNP1e9RaMABbcOUpHm3as1Dum0b6KpLaw02olIWO60VMq08EoyYJmg473dPqcWY5WU9iuZhRgUA1eRFeBIfkA9Bs974WEc0fjTDDsZOp14Y25J0/r0E2FOtWR292nUEaFElumHVHJCBjsr03K/xM90VtY0YP0ratYju3/PxvZN3RfDee9vEJq/DcGp1bQDrLciTEkXRADsN6Uu+UmFH4GSdexZN4O0/TcRj5kdKgkN+4tQORojx4xjo/2sDhMTiq+bU+G++JzVxnjumkT1JeWVfmHdIzw+UdI/tlMdh1mQQdxuSbj9YOVNoLpd4BN9rJY9Jvl0AW5rcX4tNnisCRQM+YbYQkg27LjaTsDEbJTRSpGK/x7ds7JexQ51Srm96UElUogoKun0jjx/p/G78/iOtbbgAFAcxPDP6i52zZSOQHvAjPt2sjgOZ28uhLv9SklffknZqrqgENroSv+M2b0pHtMmQG1K5TH4ZvW4keRJpIA3i7nZhAuIHWg6XwNhMugJTq3QhpXPql5u/joJPy67a7njhJsWQ1HLO1TaVMKFud8nmRkCCGISLU8vpcVuaeDuNLIcdw8nDRje6frTrCF9H996M490OXB8tL1vY1dHcDVQvZcd+S9Mb09LQzjuCJZDLJ2xuX0pnJalY2m7U0Fs5MLKyZiYXl4Zhnd0epDlt2z/NTKos/wsz1sdBvUU3BTvi6mX8pqNOE/SBYVQy1YEQGGcw+DH7UigvEiW9IkQ0SEOnqJMx0kPO5WoeFZZ4P9NKxiIhAz0aWNL9vM/jphXEy/UvL1QzTtE3E+4a8iTRpG6FpHq9Xdtrmglzuke9FVCFY+0D73yf+G5TLhnrKyFFuoDx0tEDUri+d8UmH3ysqX36XZBm9UWjbSRL0s29NJvwb396MHPR3+aa6yqFv3Lmn1poplfvOuKGHe8RNQcv5y4XB7dSVoNM4wwmBrSmqH2ZgjQ2NRGz0Cg6q1XBJKsV484wUfuw4EKykQHMf6SghoTxJ/PDpr0QJMkPE3ObiKhi6bcAdd1NFBz78z4fbgfpoIUitEk+VDiPWR45EFE0qx3mwYdak7S2VSuUcli7t8Yx37Qrv9+8POnh+innkNOH1fzhz61GS4lCGMid8UmtWXbEA8AxIX4RyzV1ntyxTSfnLjYo5NYRHEE21IdqwoGoRiZDhdHpSwPGx6yzYZJoSBj8wETaeICcZv2ZMr63zBw2o7xz/X3qh2QRnv1CqjSPwxjN7g060gfylQy8T1iViUhQkX4SW/LToo6PuKs1jU275ZDIJd4RTkoA3dbm8KZVKx8Q44pah41zUXMDy7Dz2fVt9yYCJ+4Gt7wzpf+av2RxJlcRSXJuMxz3/zfEOiJX6XKrlP/cPJ8xp+SZt5CjSkegdlFaFawSd4NLCLOOz1rwYtkhH8RaELxhg94F9pUvMAmoy3RBOWAKBJ6VG48H4pSIv37I8mXwWPLtygR401KBWKL3Ftr0MBtFKGIEPHMHzUTwbcZq2U+mT+VRju98OnPm0hRF2oMnziIuYBrrGJDy0pmeheGvwzwpk6Tf0FbLj0s3rSiXDxJVcDcH1mpazLurQ00ptYYSOIXaIm8JBlnZuwelwupv8j7dFSaljQ0E313k9hjZqcgrhM+0K9ZE8oCGBlB2mEtzwSpJUKEpBqVTqfF+Wqy/QrTsRZupU5ftHaWcEiUSZbyzaTjLE16CuVE2r9GAVirBOR1vJO4aNuqSaVHAnyv+JKjW/CVP2t5PxeNzzpQ5F8r8/ntdM56MHlDb4gqhA454ifrFaB7elbA/jscXxYBAVSi0rrYWJxPGICU8bBlGpMItlN3eawtoWtSx+oPyFdw43PsHozrDGjh3FtiT3NWfr9Nz4h8BacDrPCGUTm4b0o2ZqmQ7DlHgsi+P1qSkgFObAAZWqNJ0+Sfo5RW06dTLFYNu2TSaT8+xCIEAP0PQJvzHGpkMpdSSEP6UA6MDGq2b8wsLvNZE31yRUEKukItgI7nj/h9NbLnE9/4dt3bMjtmWnM2ZJkmNyLp73BapvO/TJ+AV/GgzLR2qPTHdczQp95kvpHunzUAD5CK25qTRJWzNq9Sa/A4tEfoeGBXLXKIqRb6TOCGESFgO+Qul0Sg2/QLc8w1aSCaIkRw6UcY7yChnOwk09LpIwZRHMJhkiPBRX/632v0sTnZeskN1EvRTxH0glG168SHtc2Zltlhl8hU85paSmdZr8ZvzyUXe/FwkmxFVi5TJOtlaI2cBEq4cbo9VKDWxgS03i96om4AWv0Lnuq40CnC9nymQPd6LwaBwLHN0tF8XNL+3VGmBeLnYudwMFJzj9Jkm0t1Lr8cvdlq2qwiF1YmpAhriLjro2S7KCqTHMCIr4GGYoPdiHNmjil0TuXdgXhxV2Xyimczy/ANbMV3QfuV0u0ifIxu/48dx8JxCFMke+5gXdrXZni5lrb1j0Jo4D8OiWlXTY+s5Dprjiy6MNr3teJ9phRHnl4DBB+DBYgxN5/f/UEdtl6Dt+Ib7fHt/E9i0iiyLgGbabdoBNl4594typ0dQl2aLw7EW+N10EWNh1aY30de8lr0AY8gHi2rjfji86ShIVs0dkAgVQDLJ0iRmMd29G6I9zSyJIdR4GOxwJzXSTFw5tEKHFi/DdoBdgEM7GeerwzadEbBG2Ex9vNs9nIloLnT64LXjjINYs8PnAnV+oXLFah59wqTpx9vmrR87H2aO8JntqCtSfzOEPp89gNXWPSE7Dx0lzwha4PBA/8zgtBo0yKJIfzFSnozojRtJoc5WuhqLshNYJi030i1oAR3SpwjOkN/FNd0K7B5CY9sIwSBkgWnnMKAFEq5X31p74SZFyducuBnyyWTOzPVsmyZ87KgFDdWXm9utt75rHzu0Q4cQX6SdAWzyNNXM46N1U/Ce+8TLS3dW7X5QSDpPIbY9Xv9bRRhnd2WHPctVxt92oVavXZQsdPf2hYi1w4bNWa37U0kAQFpu2WITRdEYQU9doEfo2iJFhXFh8cjizQ3y7R5jCL+TEJqmVh3s2X/zvv8M9o0dkKLDixejep/TzkuvDC0bb579L1OzcztfOCgrQ4XBIGAIr6ZlzasrkxePc6DxdhhV2nAG5dyozJgS5WNTO5UyVmTMaI3aot70hNDRCRg/I794lvzzEcX2Xf97oXbQ7Im4L7L+OAzq6CdR8oAxV1zIjJSuS2c/HFApLVBeSJdQqeCKLQhTaEJvWZCR5wNiUDB/H8MX+QS8DWKxL1q9L29CiwoUF+0PbCwX8cJtZLZSg60OqeYBFqyeCnbjqRHBkgaV1NkSvZmVzIAdskI5OUL01eyFNtOBiGtvtDaUfjEoNoug0hucPms3wEh9WP35zRJWgwJz45fU+cN7sApYCN8/7/MfQXnl/1jKjBS+Oyfc/6wr948vfNPcGNNAqE3f4ysRsdId+BFuRmIvPhL6FLyvHUi6+J/J3LTb2imJn9E8NfB04lHh95sn+79A70ug8SToCt98xe+zWyDOigLc38DNx7NwgumVZCJK2dmcBqNPJbQEShILQHL3bwzeLo8UcYBSf202bQpqKAizcIuhAbLdt2fiMCBvO6FWwHJjPlUqJ/vL2zHYxn0tF7UdjygGcOyfWsVbHA9bKwTCbjdV1m1jblsr9GXXtltMWT9r1CbbglwyrtaB02vloYzxS8i/pBDxbefK6v+RxvgMf+RmwtSpgfPdzAAj8lyNYGz0m2j+jHI2pj0SylHNCcO5awLEAB6gQ68DWH473nb7dHeWG7egBCi0OC1SaDMfAKC2wxge2oh0Yr4MO0h99wzlIdDOQ0sxIYyBTrsOHATJ8spNo1Nnj8Us9ji3d9V5/GajLwjwD4rBrTytBf2B3dMrMDHWs8yRphmQV/vBLaBkJjvg2plKAVbQB6+Hq3lgOOVv1hlEcP+JoWLP6JDWZylOMopgaeMdOqs8QdKWVX1H6wGKKXM1oT0PH4rvK9w4sngVlCeZUbUudm+w7TzzXOIU8bwBBAt53srXnhyfTxga2sp3w7ni+xsbCh6aPMltpaI7OAqgWYf7uSx6+s7VSw6aIdM1Dxzz6K1Ku1niLCYVRE1aLnWIoodMeW18aZPQy75PqbDcGxMuq6k/eM4PPup3EEOWFg4oSDL/TsAWDk2nOFsn8PSztdGYJRBoP3Ntlg2P50HhVSHqnlMW2Wd7DEcSidtrkoZWjUd1hsLWmZxt37IijlNRzsLhTLCWR5yd00MfWo4+jiGmUY+e9NAxHEWQOy9RaEkPlL6CDP4gisUoPzO7sezWw537vOwPI3S/vrHYVm1BXzFmw9S4oweTFsmaqThksyyx1FdakyfRaB3TeXSoR72qOg+stWCqzomO2PeHb85veD9ay57r079YZgNW8VnOItlYHa0VyYxAhhVWLBdMjTRlpge5fl16TyPV+ynUN/HdiSXLNLMrehRcvb8YTHa3B5Md6Lw6U8ovdDSLVYR7M479fURFujeYCw3rUdRR8vHW18+PuMPC+EckX+OPtv0u71X5OL4hN9eTQNfYPyO0nBl0vee2/Ppy9yo33xVnz0ZmksymlldWimuiZcHcymgMB7GV1t0PtHXUvSNHkcB2HL2CdTVcPOUbkM5jdfyoKJ2RsQcFD9VHydF9NhbTQQxpQYRhby9oa0C/fE3UU9XPj8A68MQUUwEtfShRoVhwZhxRw3iQNBHfDm9leZ1WlKxDEknpKZadUDx2KXtLR2cmlMtLZO6OxwQmKjMVzflxEqPYJP8yhXSJMZMORz4m228p4guiwvJuRoyy6MCK008DmhtJ0rhCQaeyEpYxbJimQesKRrj6CbajWYG2iN3NrJzUaOwnWeCLnZ3OLSfE6n6dx0Bs6piAt4k5YnCm2wrFr8BK4GIpZqUaV5hWoG0LjQpImJWnGQPfi8J8SKmA1VnH7Gly6jJt6azQ9upgp1TrGBB1MA1fQwWpFfdERimG6u5WyC9qCy5Pct38QUhqG5A93ucUbJ704PiwCpxtKknGBVrKC+sJyrTTgkzSy35bVxKNvGx+dPAZbaqJOyK96NJeGPGlGmOj2u7p/i/mv834LRb3ZH7o0N4ziEXEGCIh4iD08fBMtlgdvuRjDaOkpDIS14Hr4Bdfp2iU8OEzU4kPFXqaSTlSGYuUC0SDpZeSiUUGd2dZlBPOgNEI4H+sSd1ZKBdBDNe1zunwBQlIEktxyGw02NI1QenUAVvTmBM4jyknmrgYCDAK+f9pQYEJChe4/qe0r+L/VoHITXFZae2yF6VyoXjxLAYaXGrIYbXu4J8ag+pmglkrQnbe18alDjjAom+ftgOLy6TJUKJwc1B9eC1h0yxxGMTKm1EAJw0vIXVpp29ZBC0tKji5KLfij7w3bM/i0eGFT4Wo5wZ50KptVDG3ROSlHvM5gwLSGMvlpdAvOaCzWwKigVL1j24jb8fWMmchcsH/Jyf7RKvKKU0oSfEUfzoOk/AksLra3O4QwtZcO4Ddt/3s8H9GRoByK8ke2Mg53AAsFtNubStaZ9s5yPm1tCFHWCpmv7SDBnoK8Igb1pMWRNB1BT4fxdxQzVjxjAf2Bjr4sCo7v+Er4VsqdBFsoHvKjAr8x46UoJSqKKPDP7SL9GR70FJgbgtxeP0qTMozzN4cHFpOrQRMmxdI4bJi0oagK+pIl3Y5yrFWma0g+Y3dvdMUuHJaXVQZo5Cc/WpwYlqn41/zvaGba+mVqk32XGL9c6O8etsfi1sa/6tIo+EaH9y4e7u3t7ccAXNO0sIXftLfd14B/4TAYTFark2L/aJcTeqTa29uRz0bQlLm26MTnjbKhIemUyhjmZSzH+WvD0V1fMJA1Ix7VgwI06jUlDEe+npOfCFgnhC6CL4e7MII0xon3fpfcMe1Qq2fsaAbtT6PdTjcCTj7XI9GZXM6YRfRqjhtWj+bOA/O42+Ghq4qLQk4LD5ZLxGIlNitTY+4CR7oAeo8Q0XRxv2n+6ZqGgpZqsaqvE/BANhzyBADu9p9WdWDW6hnCJ7YeyHj5XzO3qAWOCg1V+xRPBIWecawH4ZgxBOX5joEN+SaFPOqT/93Yz6p6mkc3nqfvAXNQBDEo39npiaL8CZWa7eqlRwJaJ01GkXAjfByIYjIyPanJtq19HZwRIUKvXDw0gniOgjBXxjOCOxv1vc7BCwY/HAdyDKAPllBo4S9pUq4QMvDj49ZZmV90jYUZnOPFkvv2hXprxm0drwioKc3IUZCAwB/woEO2jMP9ZHyLuM1WKz+V+vRECdjWvsTxTRNI9jlE+KQuCKyjA7V4/Meg61wgWRYIspu1NNJ2Xtgand2sEbIUisU3QctiNTj8Xjdbhxxl5hqjV3sbYNyzI7P5Jw32DYyOoht322i1To5VVjD8xlugM2vFYk2puXWl5boBRI8WWUuk7ON2GStUm1Il3NFyuRAuGQiQblX73ENRBywXmb2IOY1OnOY4IPwhRMi6p9P9MqQy49Q7s4WQcFQiwfOLRTQvelodAh12qytPGG9s9semgjawIK739uNbs5+v6u+EfG0UQutCdZwFD2RbRqhg7B4MTSkbK7PcYNm2NgOwG2jd+8o08gAF1PLKJ1usnpOTbBX5OozA5hNgVKB4CUyT+0eBglqF4uwDx1nYjG6d84+hhzufRyG3NpCzDztbL42e/es4mmF1kKERKKiqpeJivxPE9Oex/bQ3rQVe2Bi5JjPiB2zxRAgv61/S57T75FompwTLpGBZucR2yk0rWmkeNU3ziFm8Jrk27RPs2+OtCMZRjtC19p1i+EtRzkIIhaDHRhF5KCtDKP2Rd9eg0+4XGJStQR78wW+sB96HH1Tv/n8V/9m9NFM6WsqtUfX/P/JLOQajRSwoKNZ/6KH4+4NXaNEh68GKhM3g9UZ6W27+v87/48Dh3NYbF/4nsWSYPRvdTXLZsNvr57A+L/e6Hu0uHRb5HLZFLuOB5oxyKq4ozZGjboSnCAwPF0cLCKMOAcZd3xKDakEc4hKcQ6gRq57s+edw+0VeFJ9Lk2ArSwgm1HfIRPEVWxbXcb2MGo5j8d+H9zs41/LUfam2FpStu0ROVzi0mrI8eao16ZdgFN5oGR6lETahmpZKmyZak4zetRWfhRYqLfvyONDgM7/1JjVoqf5o7xaB3JwJLm/D03JxrygCohKrsC5XzGuiI8MSLOzG+k+U/YPY49vRDw/v4e6kncF1pZ8WqqjtoPh5Pw+cUXbxKpJt1ScgBRWLKa215krXvM1by9uhi40lthT2W+Vo2oVH2eCz9Mo6tIietXVDB0Fb4a7+sZRdnYDGZ24pGX8sx6db8GckuPe/pXthtAUgcOW16MakMEVY3QRIESRd8O12bcOJxQHHwIHq94Dj41e+bfQ5DnnlwIMgQxffStmKlK1os60BG2HfrsDLjmb2lRScayCAW5uTOKGNHeRtcPN+lnl87dXrx0AX7vOS+78///7+raOAHugJSO+xGQMtfCWMLeW3kiQCECBoqQ69NzJiRNO0yApqHEEQNh3uggvTtpYoc/EbU5p5qYSaaCxuJdYE6EqwbVx9cLLphj51oMiy/gah02XEJ06wg1PNjq9FQHf6bAA5dN/cl3UNOFu3P7XlN8bw4piNDsgAjWY+e8C9Kvx2FkEWaGrAjfwbsOoV6cOJS2O3Zc1sdPnLwBqXWJ8GSoNWI3RpFWB3H+p8TrOqMoEy3YbF42Wh64LYEMaHAtd6vPwiNGBmuFhmAfZpDcjCQymU4F3i1KiJ0eh0CPvLdZbwqBN0vygPAnBer9OsL3UiSE5Alc3Y8hWWnfOKUudLwaCZH6xUPoEyNUXXOG8EOR6oOEHX5/7k5HBrtXRYp+OU1FqyfARrs1byjwHeGq4O/G3km9hMwL5U8xGwP/q20Wd/KuEx/SFNeE1xhpoygYCG4dgLxsMZZFDx4tHPghfm0ZkXmc5yCXrJSi+gGk4kR9kga0wguBa+Gez+pE7sgLJwt0yQIXe5Sv0cBWYSRtg8xY5MmjpjJnOV3gZtr+RCKJnN1Yo4QxvabIZRuxqLgCLkitLMgXEKHNbhIYDO/Inq7NhlU4/R4NAIFFCZbYggrqj9s5zUby3jpwgyHqUSQhavEhMnuYW2Xj5ainul0fnjUUTaQjiq/+Dy6IEMHJ2X4eAEVPj5DJbT3kJRSQaMA8Ygi6dXZg6AT65ytp1A6pBJeGTggV+Qd4+DpSjQbnuV1vaq+SH6ZaOT9HtI9yH2/sGl7fsPqOSedW9o+u3/RnEqRKA9JDEa40P8m/q5ArnO8LGp0kw1dBHsYjW2ufSHP2zfTu6o99XumS8akAQoQMHlfMCTAHQ4QYRpj5Z4SFXVroj2I0jC5KPb8HCGSPRXnAXQ/0NYUuU0Inwi+YdInKkZc1lOp4v2Zde7jYWe1UnGw6S+PTPIczxOEqlcreLVMATIGl17QjhUqA27k4UZDBiIpLm3UTbd2UnbYOekP1+iB5G+LRrajunpjOT6my8n7kreT2yBr8XXsWv/XlI7uU1WGf86GflF7DOe/9LEC8fe5iALNxD3sx0EwhZQ/pVK99Fvu9PeubfOnQWzTfXq72kAQAE10v2pZXHmwPRKVvE8LaiYmHRf3NlY+Ey2Jaji8Ba0SFcDKqihm+ugxTyb8kCMotU63kYZxuJ5JVpT2Tu+QvQebm7bsnQpBh294WC0Fp6iBnO5ejYmTyu3iAyhmm49JNYfPFlgFUYSfpMivFOYgGFCw/oZrIgnQHW9ssRYpBbWSB8eonDYrNAgaAutqjLWMPLPZKjhRwlG4giuY76GPUVR3sz1J0Blq8k70s2luKkQPBWymSi1KR/anUHOAKb0f8ZAPENOCjKZz4dZ/EgkCHxpnKa2oYZCpq8qChIaepYPpVSOnOyhbVNYRHEPhSxxVdZKJhDwPgbpB0K9kZGoair7jA8ztucAmny5JpsY169r+XTaXQnNzrBuj1ty25Si48xXNd19u9wFAwEEfTK+Ht2GZEsC9VPB87Hud8UDhNgM5jSfuITQpugSBjM5qtQdkYRvBkhv/thd+KlzWszi8vuH9RHMFAZA7G0yviwmkyiGoLPXVg6LGPVgJAeOiOOoYJJ3IgJ4UchBDmNfcY8LDwdR0Ix+4NbgEl6W5L0NGUl2t4+N3/9iOV1gKLaNM0CCbLBep0Jht1mshrFq9K4J5bpCdwlBGzK322VbHE9BJDiFXgyZTgqCPeO2CAcA4wAJi9TyOHMiKsM9qJvRw307k1a/O4LTp+TOLrdKuAviVoCXHVODiXvACbQzcZc3ulPvxkNTeaawU/tK649lyhMlxAEx3rpgsNu70U4QlKLRaCQcFxs/5jcslytRUNhxnjloiKTIRYtYt3tBpFGITvwFB4UJ6nhl2OvoVJXmpO/p16/G42Dy++N73O18qtfLoJl3WU9tgU58zNKofUkxN9r+MkfWnrFmnwAQQXSbE6wugQGdq2XaPpstZopFrYwkNhHCk/9I5CA/prW1fT2HUX7HrrMV4I/0UMfxUp4k7WMjhJ0NGEkgiknTJgfDNKcMt6HcApboccqWLelMDYU0ztTUFcmUj2WY0KD/xY3XU6uyjZGaM0qM2picX7dPVyutKnRW/z+8Kfs0eourNg0r5H0ujRnbm1Xy0iSVZgVzLpr8sZwVYLnMnMnbHG5cK4xjS3KDQU9gWL5XJqXSEOvRHUqU1lxUxpPL01ZMr7Kb+jBsVnlVpXoOcjlkLbBUT9UI9kIc4h7plye+XwlmKvNIRf3DQYg2mchDOIYCIgf4gIvpWDx0K2cjWyKhRISLrqQpVzFNebpMwBgISba/lT1bKu4UZnYCnaGEkXKayEccKuLAaMsUeijKmEd/Gw7OUYkeZwnaKskP95xBAu8MnSVDJrLvhE1HtGPHXw9y1LCUUHa1a5i4k/OCcTn8FXcToNqmukaUAjkkwaL2MJ4EsuodmMeRTWE+nJc1ob+dbz/tm5YegFQ46AQumV1OZphvF/OCEM8Mns1Y+KzSsfWPmvlW86G53WxMsxwXyBeQORZZE6wr7uE1s69uBnYn5jrwXBbcnLI+tL+6wZqp9sIdHiYe0mzsViRolLN/ToGffxIIMDXYf+T1cM+m4N/8XKIH4Lt/1w74yRqLd/0/SWn7GlbAGAYIaJ8sChgv8L/Jv4mBr7/xH84mjkdfO+GKdnt3pXpLbR0h6JwWSO01M7WSWjJ5srHQKIkpjJor1HnKoiYPKHDu5uQBZO0rRCTHNKtl2q1Iguwh69w6Ta0DDdD1T2YTWC6QzY7Z9CW1GnoIwLuKUFYeDNfWbMwVQpjdrl2l1jCxnPCDNY1QgiueTHTFH3ltpHMlE32TD7OQDHzfyzunR0Ulv/pTFJVZdLAHL4wz7FYefvZgwFIuyn6ZbZfIZTQ19yOmBnm1UISh+QGrRcPPZ1RhbzlwWRhD+SD/2WnCJ3+gr9VMrLkEJQO6PFGVC9KqweCjNZVMUAXiUqX4q+laVpIVrCZIgTjIhQLIhPhGTrajxwO4gwuYwBe8wfUeMciXsLZnED9cQnjRum+A4PwAA/FrwiiE2GPKK/lsGM4pD5hLZ3soPXjUKOyrDed4FTJyEL5gOOQ8wvI30H4JQDllTabnAuNFWE4ZDbVKmTKVAECYl1zNZgKJvSN2EDcSSXGQIQMHgqqcgMq6MZFbaJoOwsL3kGklWMQIPkFo2N2YWHG74zuaANRVKLzDsfQNXks8QcW24nWUTczkX/GepsFcWZQr1wR8ELxEuUdAZsk9CtwFHZ6Dh+AJ/wvifT1G23ok+JYOvgzTDDw3LTMJ2XrU1nfgLP8BeDiyx/2/Rbq8XVl0bNgIv2A9XLZah3U7IkKvMMsdW8aGI+ileAkmEcr+Q2AiRstBNWE1JATMnzwIaOACeKFKmRmIulJhgopEMJfkJkUUu3zBos7dIOCX1gkBTJcW4AEnzY0fy2ADTGYQgEdSCYFOLBGa6Ju4YAYJLiFJ4fuCQesmW0ROk6GztsvhAAVq5ZRIjGGHnoU9ND8qNGQc4KO/VUMDuyhRZIRiA0wywjhj5RuoRLFJJhppgglG8MdbuHFGyPfb952BEaXMJDdRS+aroLceUUIH4XiQkYqMLXx/uElvoFewbbIiVmTIS10cbfKeVzLh+4EEY8toTOD3ctVwIN87kGZMeKJYppHAJvi8ZqmJAhmjEotGlumoiXLl0EPyAYMSrWB0GaYkGf1oYkD4mRr9GJhWWeePESRdgjBByrKVDTWRJGIfd04zYZ/frWFm4sMn/P2MpFFFycezSxQaKZ8vhplcE44dTVS7vrLxeqONDR45WR6D/DveM4or7I018sY36eXnb9zuDvvK4yr0e5jBnzqbABZzLmw4I882+bZr5kqngJtX9EY667wL3Hnw5BUCulx0yeUOHy9/FLMrrhrtmoV22KmPd3z1Dft4sdfdMMZN/QQKEuyN/iKNRRdOr8ha3y6UBK/FKn3NxvEGdOd49lsmmWJqSJgcCgaGFQQSlEk1bdTQt1dunZl2GeS9NOkyNMqUZZYKlWbLlmOwXG8dMkSH41ZZHTZI40QcRdzHtapwEHfQTxTxL8QCJEQiiSWRVIxsJZPcL+g6WP3tH/96Bv3rh4i7POQpL3kjJuRA7X9IG2itd0I9GywSoTHIiMhue4Tj4RtquBAWJ52y1z77HbBVm6OOodCccTWoM0eTuapjkg/D9KhxBDtmai1NHwQ++OggDSeOFhuh1b8tB1dAOLkI3Dy8fPwC2jFKGBU1nIaWjp6BkYmZhZWNnYOTi5uHl49fQFDIpClhEVHTYuISklLSMrJy8gqlJZXGmywMjKwZJWUV1VbeaqKZ2KGPxhr1RNjAypdieYtJ3Zkxe10O447MRShbs7ExGQ6PLyzb+Jhq41/cDqsnN5QmsVFtVP822TQ1czDjjeszq7QvzdaptbTVys7IajZn5FOLKSadTxFpFW+SqiCQbJZS0illIGlDCiU5KckNpBCh4xWQCgANJMAIAKhdEAlAgFFfup2DiUuPt4d/rJLT53Eq5hGsQ3XWbfp/IMP0/h6e09hvX1oF/+dQKV27hPjrO5sNv9dos+EP+xyv+/NxKPTbeVzEu6+zfa97b6tR7gT44zvLMt7OEW0BgdQ50ExuCptsFHb+c6WbiT/3s854nBHcmSgWv841TXmdnuCwys568nE9VV8QQfxhuK+syFma5qPT25Kd1kx4Cv6ObaNbykWnSx7u3Rrf+m8zGnmxN88TdvaIb+eLtvpCBbq+Ay8n5+1yu/Bw+4QstRkcTs4CM7hhEAiImwJH9S8fRjyKr6c0DZN0ct4up8ttEvyoyo1uLLPuNvCR7q4o7Uyi21mZrlCpJH7Qo3d1F8jjjAjC2RJotGm42TPKkD/Y3mdSTH19sceTw2weU3X2YAIZlapnrSEszKFUGXEXq7kxSJmvc7h9f5Ds0cVCxf/nYalbTI4fA0WIrCiHRSmZSNFcAJsbFFsosHMGlKyuZDQurf3ZU4ViKXZShp2Qt5VmyY5JG0qjqGiCogZSiioyq0icLPLBLmEl7ytXD1RxDrOnOWof/+4elG4md9+yGd99a/bm7A2b1+ltc6avszN7QzpmaA7L2XksHyVXuHk7faWe0nt1l67NpM+QfY2geRvT2V32CRZ63LEge0YoscBlj1A/AH0AWpBQw8y2BjW195Ae3k4fsp29wY4O9TDP9jE/Mnf/DsRGt69AB9X8weyy8Rf8d4ld4CY/cwE1fMC7/vL1zh0XWCyE9H0qpYsIzX/q0nkfwGGTeE7zzF6XCGhx5YsYRzwxpZAEt8kCPHlW0hWZRXgy8bIDnkT8LEsQU6H6dDzzSdIgDcIwi8PiAQAAAA=="}},"time_used":32,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/5994.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.699Z","timestamp":1785126646699,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/5994.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 3014\r\nage: 11261\r\nlast-modified: Tue, 19 Oct 2021 05:35:35 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 04:08:41 GMT\r\ncache-control: max-age=86400\r\netag: \"570db8310832b88c50ab986a819a0764\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: jRLE8aqDRSpTkK2GVNe2F9ZhjCwl6r0_pOIPZCt-X_cErNfLHHZtPA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":3014,"size_decoded":3540,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"570db8310832b88c50ab986a819a0764","sha1":"d4abd6f12354fb40df26c3aa51a1de62998d2e12","sha256":"a8f6ffea983f46e8f2b83abe8561938c10de36484ca79ca5432683f4c2634ea6","sha512":"a772dd550924c8ed53c12286a3a7572694110c47645a13904184e5591ac35dd0442a239f7d6a4d918fc1717e7a7f90f4e704b5cce2a7cfc461b6eb882067ef43","ssdeep":"","tlshash":"52516b4366536127d84a8b1e0cf0684aa0a78c8b3573d1067c1d7cec87fc251de2828d","first_seen":"2023-05-08T12:03:54Z","last_seen":"2026-07-27T08:07:37.340754Z","times_seen":1351,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcdceB70dCcIeCccfCdIgCv8FAFwECv8cAAAAAP7//xIUG84dB5kDACASEcEdCjQPDeMiCQAWKYsaDEYUD4MWCQUSF58bC5kaC7oZBm0RCkgVEH4VCsYbBrMdCrAUBHgVCU8AAJcPBmUaEYJPQIEMB44XCdkkDHwMB+P09IQkGakbCq8cCswUA6MUA7seCqwZB1kaEcgcB7GJQ+/8+8PPzmIQCsAfCnpZVpQfEvX28/////SkKegxGe+KFOwsEvOmL+cuFfHy7/OiKPOnM+o5Iuk1HPOqOfOlLOs/KPOuROoqEPT08vkjCN4fB+xELfX08PTVo/GgJswhC/X39/XPlvIiCPO3XfOrPe5JM+xNOe2HEvSwSv+vLv+qJ/XKieUsFAAAAPUiB+0hB+c3H+ggB/SzT/OgIvW9ZvOdG/Q4H/PEfeUoD/GjK/T9//ExF/TIhObn4/ilKfupKumBE/OnN/TDdvr69/Pbt/79+8kiD90lDvrpzPS1VPc/JvT5+5JbN/biwvS/buigOKp+PZM3KggHCKMlFqUSBf8lCPVTPvStP7yOPY9ANPfw4bYQAPyjIhsWD/Pr246Pjv736I1pXO2ECr3FwbYcCeYXAe+RHdwyIKovJP62RfLkzeuLG6COiUZGRJ9vOaSko7u2sP7w1v/pw9jc2f7DZgECBgAABPbbssUQAa0iFtbj4bRDOvXNj+03HfWtMvnYp/xKMaAsIYllNtSdNu6bI7Suo7aIO1dXV7y8uZiYl83Rz3RcNlI6GPybG+l+DIQRB4l/fPcsEJYpG/1ZQftYQZxFOfW4a5NRSj4+Pf+8UtMXA//NdkUxFPTy6O66c5VuaeqOLLSdmKJ4cv+xOcREO5d0Pv9XPrQqHd6sWmtsazEoHe3Eh5h7Vf7PfvCuT+ErFptmFtyVKI1fGr1+IceGIf7WmZmDX3xCLN7cxolORcSROqyzs14vKGUXEIphXJ5xRu3nzddIPMcyJdNHPL84Lr2aWsCBImVGFeWyYqx0HP/XiczCnItVZDwAAADHdFJOUwD+/v7+/gICAQH+EvwEJ/wy/QurPXYb0MLPe0uM7OzGaJD1b/44l/5c/v7Z5fyl84Fe9f3+/f3c/en//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////////////////////////////////////////////////////////4MkkDGAAAHkUlEQVRYw+2Xd1hT9xrHT0IGGYcAsmXVvVq7731yEkJOUCIZDUlIvIwYEiIz7A2ylxRkC1hAKyigyHWhuK2r7t1pp21v29vW3vbufd9zGIIg5fo89/7V75PnyXNy8n5+7/otBPlZ/1uxmKRYT2TMRBkPHxjof0lhoeQXx87eycnejkM+oMzZD06Mbef7jLsXl6JUUrhe7s842xN+MGc9uouzD1en0FmUFDqdorToFKbr7s52gJhFIDCKyyIvnUlJ41FtaBpQrg2Vx1WaTM8vsiNfzywUQZ29FGYu1YaeIJOJRpSQR7ehcs2K5z0dEfSn7O19dGYalZ4gEgnFYiFIDN9ikSxBQ9XoTMudEMZM9gxkCXcjvY0uExHGq8dEYMSiBE0bRUH3nSkRKOJcV1enEcnAHOxWkYqCDwEhEQNPV3k+nkDYn+tpuaBMEo5YrxnVKpJhTEqo/Gb7Cxc8H5cHFJnffmFwx85/L+DFRRHWr4yJZETF8b6p2W+IKLruMT2BiThp2r+7lb17d3DLngLS/FejIhkFew4FGtTDhjJe3tzpCEwGZ4Wi7sfmu3dvh3z926GDhHXoqAjGwaH3IiTDW9Pra+Zt9HaxZU5TgDkKTd2d/M2bz5TG/wsIoaHV1RcvXnzzzYvV1aGhBzvei1BvSU9Pf+PBWaViztRiQgB0B6ryTn6Yn9+Zu7c//aTj/erQP777a9C7fw6tfv8vhwj7ML+wN47uoVkoc6e0JANxU1Dz2n/M9wOd2aq/8Un5paLfl71QU3O0bHvRpUsL9kdvBXsAQA54ClcmY6oDShuR5UrjljCCkK6P+esHGzo733knArS/tKY0lbT3C6vfnptEdZjiApEBXp5YVJuSsRn+ll4ao7+2PihobWBGgL+/1ZpqSLUOh5GA1KI8EZ32aBZYCMfbQpUZk4Z6LxMAfWaMfsP68KBXAwMBIJVarVKBQL2FCK+0XGRMoJpXukxyAUXmKrkamTFuz/GvAXA5uWQEQHgQIPX3l0gEAolEsgVS8GAoySijURyem9QLKOJpggiEcbnbdm7dfHlvZuYEgD8MDwCQGlJQdi9OLFpMUyyaBIAa6Hgyo3DVZy2bSu8HJ8ePA4gQIAYBfMCF6LC0otf2CSEGkytiOzEFjissPJl4dVRc7bchwSHr4kv0G8YARBIEktjYaIIQW1obFyUUy6hmbw7CmlBEl5VKmsgojCq4d2QnAcg8cCAmfCwEqVUiXbc3EAhqQ01HQZTQKONZeHYTsshE7GgUjUi8etWa11qKAZCZj2E7xnMglUYfgGdwQA0RrIlaLRbRlBr7yQANRSMbByQn52AYlrx2LAeScHjE1kdL1YbtfwIPAECh20/nQVRBBxlCZn7zjuKYoKBX15IAQcCB/E35GdESSf3h8gLwQDbFAxeeMpcIYd93f9gNgE9v9OnDw0caiQhBEqu2GgwCtUQdAVUgATYTcwBV8Hagicg+2EEATp36oE9/P5z0IIDsxIi0f57+Kk2tNhztiIMq2FhWTqwClNTVDGUUxg215gPg44bIhkP3r42HAHPhy5v9uz43DEtSD5cnEX2gW86cCIC5pOMlGIUwmYqzwYPTkf27GsqujXgQ4J/2xemK/v6KL9Mghv1FnwmNMKEnzyYU8bXQFov25d1pJgG3TzX0R0Ye6gzwzwiQRKd+0bCrv+Lm38BeYo2A6Syjc3XzJ7UyUQbopCTathFA/I1/lJ26eTooPrurK/vjzs8/+vtvvkozgL3Eajh6L0lmo8y1n7wgEJOBmpDU1tNcvJts5Zi+vs6+RjZRfwxPro+ISJOoBVJopfoHlefzqLAk2T6yJzxn0dDPV7Y2d2UH700GgP5+PM4+/jqom50YMmxVCyTRsbHWgNTDF87ncs3zH1nZWbaOK8xt5ytfysHxTV3BmSUl+hIVjh2LBH2UpUqMj/WPjg1aV9zY2PhtubnN5M2xZU3Zlsy0vLZWDOdrC7WNe/X6rkIc+7C/oqLiag6uvbU2NiNYnlhYqGUPVkIKp25OLAbqauINbMNwOUirDUkulOPsHsKDJgxXJSYHbUqUq1RyHDtSRTMtd5y6wcK6zHWwKV/Kl5MEeaNWLsdzmhoqPiR+0TbeKlSRbwoX1Mmm2RbIIDzMi6vOjbhAIOR8Nh87eRzTZgFCS4L5ONZ91kE3/f7MgnY00c9+P0aQa1NOpuDd5/CUFPmYcOzkDxSFGzr9CYHFcHRT0H9ofUi4euzEsddPHLuaNW4/+LunN7pybJmPO6Bx3BSUl7/HVPjI34839Tad6z3RPYrEsV7C3uXxRzUm4jhHZ3m5KTGLtODzU/gpvfwUORk/rsJal7Wb3DgzHfXglQd3Y9UvBzH+SDnlWVlEOsEcx15smqegeDJnPipCJp18FO3LTiwFBP4weaocduuCAYX7XMT2pw6rDAT1/YVuoLZ7KTtHhZNSZbETX2qpavdydpzNYRc8dPR1v15Xvu3ki2xSiYNHrlQNuDtzZnHSHT/r2z/rM+9s7dtv9fS89faVZfN8nl0IQ6OsWV8XiMnOWbjE4ymQx5KF5I0BZT3xhQVWXfQJLj4sJjqqJ7w1/az/m/4Dvg7lpGWpzr0AAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/4705.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.821Z","timestamp":1785126646821,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/4705.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2948\r\nage: 76483\r\nlast-modified: Tue, 19 Oct 2021 05:35:06 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:16:13 GMT\r\ncache-control: max-age=86400\r\netag: \"127a7bdf804468096a60ffca81bccfac\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: v2T1XtscR1lsUXOmcdpA7xqsRQ5_oHSSvUZ8OZnEiwVmLTEy6iJWsA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2948,"size_decoded":3474,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"127a7bdf804468096a60ffca81bccfac","sha1":"e4b6d66bacfd5a6f6a847874dff49589eebf3136","sha256":"9ac8b8dad05370893f13d3c4148618d073ed55945e225b8a4e0a819bd5979757","sha512":"23f48dd56b95cccf64e5919854e619e580087a74be3d1ec99287043483a3ffe0f209174b9b2b34b0436fa53fdc0f18fb21cabafae5c3ef0829aedd575e48c8e1","ssdeep":"","tlshash":"47512ce7227040bfdfb0f9f520588662a01673994013559fab737171da604fb818796b","first_seen":"2023-09-24T22:56:46Z","last_seen":"2026-07-27T08:07:37.476145Z","times_seen":1105,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/7278.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.849Z","timestamp":1785126646849,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/7278.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 832\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Mon, 27 Jul 2026 03:09:13 GMT\r\nlast-modified: Tue, 09 Jul 2024 07:55:55 GMT\r\netag: \"ff1cba08edcc514d5676fdfe1fc32ccc\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: public, max-age=86400\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nage: 4894\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nvary: Origin\r\nx-amz-cf-id: q8JNBjbfUtoRDDz2SNjTf-VJkK-g36apZgl7-eI1Mc1TZrfKYex4Ow==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":832,"size_decoded":1385,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"ff1cba08edcc514d5676fdfe1fc32ccc","sha1":"ac95fa2487d2e18d3f2bd895b4a8be23399fd463","sha256":"5e7048442d6bae4b57dafd847ae3e424a8eb7ea4f2c3b0acc325339163f943b0","sha512":"f6ce372da2ac2a1692ec07cbe2f3c25ffd9399d0bf006015526a62d8e13b6d8e954de23201fb80bbfef8a688933c88ac360e108d8b35d66be9c517ee8c31dac6","ssdeep":"","tlshash":"5a01cad40ee95188ae5b4c13350141328b6328f952f7be6decbdf41d28c1f00360c791","first_seen":"2024-11-30T20:42:41.062812Z","last_seen":"2026-07-27T08:07:37.361905Z","times_seen":899,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADB0lEQVR4Xu2aPXLUQBBGfQSOwFE4go/AjWRLWwVFshC4HMEBIIIIIjuhOABEEFAO1tJisPHYrJh989fSzox+vK/qJd6vZ7rHrrWk0sFBJqpqfVgd1zciq/oJ6yfHomwKY7CeLsp6yfVHC5uPLfcbBepPlo2mtizrp+wjO8vi5hEby+2zon7MvrLARoaW/SWFm49F9hkdbjhW2XcUuElXu/Dt6x+jvqvsfye4uNRYcF2pnKMXXFRiKriPRM7TCS4WMhfcNyTnEsOFXP74fs0ek8MefHIuEVzE5ZCcnqyNflxyPi8sdtkHrqH7atkwLoLruOScVtSlJQttdoG1UrvAWpvF7aU75zVgkU0prOurhE8fr4w6m5x3C3WHxQIqgTUxlMAaq4XnYYsRthiC+ZienoS/I1hjk3O3MEhDMJ/KEMxTzn0HQzQE8ykN/bdg3ibn3+kAmM1hCObp1vDqoSMD0s0uLq6NfC59MGt6edQegPlhzI3S6oNZKjqAd29/cd0WZnVdMKd7fnbF+B3MSfZRMEtFB+CDWUmNgnll6IaKecl+L543Rlb3fvjAI20X6puY2VCNTowaSS2zWxarQ+9v37c4c6E80WvevF7zYyvca6O6DHbBLPUegHo254LZjVJ2raEumKPeA/DBrKRGR6/58N79RavDvST7Mkd7HUDozktCjBpJPXO01wEwR0MwL6nxfen66r98/m1kdZMcgK9W3dExG6pRMEtdhK5UvQcQww3nZ/7fhK2mafzNxzD5AYzd/QHwBw/N20vhlfzlpbm5eT5ofPBAFN0Nztn9Afw/gMsjfjh3F+V62R7A/SGYoTm7Nfz+AP7B0Fzl3C0MzlXO3aIuDBiem2UReMWWBXOT8xoUxc/B3/9NZSF9r5iFc5FzemHx1OV8IrjIVOVcYrjQVOVcneBiU5Pz9IKLTkXOsRNcfOyy/yhwk7HKvqPDDcci+0wKNx9a9pcFdWnJRnIrev83NeoOi40l1/fK65AYjUaW+42W6nj1ks33V3unb6p0etiiXl7KxF+YoCfQVyFWbgAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/images/user-icon-shadow-60x60.png","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:54.183Z","timestamp":1785126654183,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /images/user-icon-shadow-60x60.png HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://assets.chaport.com/assets/widget-feab807cfdea6b377d896e38e88479b9.css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:54 GMT\r\ncontent-type: image/png\r\ncontent-length: 434\r\nserver: cloudflare\r\nlast-modified: Thu, 11 Jun 2026 09:43:35 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=z0cMLZ41yRziSkFvaiVgDSKSDt6WQ%2B4Yow3pjeCkATZuHOBe%2F48qmnIFJ9XYDr477Ul%2BVI2a1WTgnCX5l60jOyAhouqDG6dMeWCZYVZsqPuD8OothLGT%2BW5aLpit5TANnZZd9g%3D%3D\"}]}\r\netag: \"6a2a8347-687\"\r\nexpires: Tue, 11 Aug 2026 21:01:36 GMT\r\ncache-control: max-age=2592000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-bgj: imgq:100,h2pri\r\ncf-polished: ok, orig_size=1671\r\npriority: u=4;i=?0,cf-chb=(45;u=4;i=?0)\r\nage: 1236557\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\ncf-ray: a218e954adfcb1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":434,"size_decoded":1452,"mime_type":"image/png","magic":"PNG image data, 60 x 60, 8-bit gray+alpha, non-interlaced","md5":"fab149bfc10e3ab440113d531c0d0c2f","sha1":"d417fb259d13553288a6cf20199704983380a165","sha256":"6f4a76e05ba4e89aae3ec57dde897c7eea392dd125538dbff27a9ff3ac288135","sha512":"99dfb909ad5179579be01bbc278caab86ea83ac791d127ed3421b89941ced3e365762dbff7dc12dfee0d6fa1299b23dab32efe73958650c2ca9190bf98dfc4f7","ssdeep":"","tlshash":"68e023c24b802ceb8d0558a34615462be6b03eaf1561039fd803e47a0f07e1311cd0c5","first_seen":"2024-03-24T18:50:30Z","last_seen":"2026-07-27T08:03:47.449717Z","times_seen":291,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAABeUlEQVR42u3VXW6EIBSG4U8QUPBn/GmX0eV0Fb3oVdffk5PJMJU4GYeAacJ54/UTFAFlypQpU6ZMmTL/cz6q82yNk3CFHifNjOEceMQbunPglcpOCyzUjCU3bbFivuZy7unlik7UDJuGqVDT48cQtdzYCzWlogU6OGiq5U01e5Yb6WlT0Re8Y+UClhowpqIrXuuyw3Lp6AHrLttzTSq6Y27itmxH9TBAKlyghoHDwDSzN9jRY9KfXoaY8Z69ppF8KugNazmd59x2f9iWU3lou2EbKgutAtZQGWgZslydHg5Zzck8cMN5VkF9yqRwuFpmqR+BZ+ZLQkNtqjfJILXHPv2VvwUu4S0Unsucg+XaB6w4dgstj8jguNhnJQ5NRcAcz1IVcJyeolnx8t3rWe4YK2Ou/fEJtolnQ9q9uFr+unG0xZCb9XR/iJWejae7iC0VRbcRP1Ak3Txm919xPG1gd38g6deahA5W6y+CxKPv4fD1ply1gn7li/4C+KIdHz83CqoAAAAASUVORK5CYII="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/images/user-icon-body-60x60.png","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:54.185Z","timestamp":1785126654185,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /images/user-icon-body-60x60.png HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://assets.chaport.com/assets/widget-feab807cfdea6b377d896e38e88479b9.css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:54 GMT\r\ncontent-type: image/png\r\ncontent-length: 341\r\nserver: cloudflare\r\nlast-modified: Thu, 11 Jun 2026 09:43:35 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=tr6ld0x%2F79qwN8IhOasG0LXKv1WLJpNJRdEbaAQSV4cBhxI8VL1RwoI%2B%2FBjWXzQQlcEq13LFy8vRjObyR63pQwWKI5w07vXnb2hckPyedpRIKUdGGKdJDrDFxwISZNweIXrQZw%3D%3D\"}]}\r\netag: \"6a2a8347-58d\"\r\nexpires: Wed, 26 Aug 2026 03:55:35 GMT\r\ncache-control: max-age=2592000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\npriority: u=4;i=?0,cf-chb=(45;u=4;i=?0)\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-bgj: h2pri,imgq:100\r\ncf-polished: ok, orig_size=1421\r\nage: 2118\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\ncf-ray: a218e954ae03b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":341,"size_decoded":1354,"mime_type":"image/png","magic":"PNG image data, 60 x 60, 8-bit gray+alpha, non-interlaced","md5":"62ad6b4427b2c67982216d2467288743","sha1":"1f6fee0446cfcca04efa3337cf183cb6fccfe940","sha256":"3ee2126c339172af24383dbfce1d1710aaa3b0daa3a42af3881a6fcde1ea51e2","sha512":"955e288623446b11862ee5d50e649ab69b41380c9479d3f45ef714ecbd30d870056ffecc433548b77e702ce4c4bedc86959f9c4aacb3d67c240888df879d4599","ssdeep":"","tlshash":"c8e028c9a3405bf6dd719b16c04705361f10d28022c023f10e07f82d99f345c800f1ce","first_seen":"2024-03-24T18:50:30Z","last_seen":"2026-07-27T08:03:47.546281Z","times_seen":295,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAABHElEQVR42u3VMUuCURSH8RsiFBkGEQ1RU1TTGwQtUR+gqa2pwKEam2sqokEsoaGpoSVoCGpwEIIoGhrbanEJFRwcnHQR5HEQEeQKeq/3onJ+5wM8cJa/EkIIIcSwYoY9rogTY8Fn9pA8TSXOGfOTPaPdg4/sJjox9+EXdH4Ju81GKKBTY9VteJ4Kettuw9MU0QuUW7yj88+E6/AuOqfKPe5p98G4j3CIBFVanogqX1jjgldSJNiS5RpFhJhlmXU2CFgk4iMZcMIzf5So0lAmxxc37BB1k5zimG9qdJYlyUq/s/tk6EaZeN9ezySP9OKHJWWPMCl6lWHOPnyAiWv78C0m3uzDSUykhzh8h4lP+/ARaYO7lGERQgghBl8dteAhSGTRElsAAAAASUVORK5CYII="}},"time_used":5,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/particles.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.852Z","timestamp":1785126645852,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/particles.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 5756\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":23383,"size_decoded":6011,"mime_type":"text/javascript","magic":"ASCII text, with very long lines (23021)","md5":"ee3154e19c062776bddd2e8a6061a606","sha1":"a72370604d6e5741adbc80ba4932674c1823d727","sha256":"36840b7e55a9eb1c46e845a0f31b939d58304d0320c19d69cfb10d617b12975e","sha512":"0bff11b00280a4b4e3c60ecbb1a6cb901dfa3faa13f5da46d3f38d436cedbcac9da7b81ee7eeb8bcc6bbd142b80e18b28d5dab4c94c493765385c66377680cf2","ssdeep":"384:NkfJtGvWjT6uYvqhCz8wSEHESxtVAFPQcYpeib+9riEKXWdO:NC7T6uYvn8wRxwyryViEKXWY","tlshash":"59b2934d23f73e77338ab2e05be9d122c774a4d1399b04b0f93c667da52559201ee7a0","first_seen":"2023-03-07T13:49:46Z","last_seen":"2026-07-27T04:32:40.485675Z","times_seen":68,"resource_available":true,"data":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyogQXV0aG9yIDogVmluY2VudCBHYXJyZWF1ICAtIHZpbmNlbnRnYXJyZWF1LmNvbQovKiBNSVQgbGljZW5zZTogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAovKiBEZW1vIC8gR2VuZXJhdG9yIDogdmluY2VudGdhcnJlYXUuY29tL3BhcnRpY2xlcy5qcwovKiBHaXRIdWIgOiBnaXRodWIuY29tL1ZpbmNlbnRHYXJyZWF1L3BhcnRpY2xlcy5qcwovKiBIb3cgdG8gdXNlPyA6IENoZWNrIHRoZSBHaXRIdWIgUkVBRE1FCi8qIHYyLjAuMAovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpmdW5jdGlvbiBoZXhUb1JnYihlKXt2YXIgYT0vXiM/KFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pJC9pO2U9ZS5yZXBsYWNlKGEsZnVuY3Rpb24oZSxhLHQsaSl7cmV0dXJuIGErYSt0K3QraStpfSk7dmFyIHQ9L14jPyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KSQvaS5leGVjKGUpO3JldHVybiB0P3tyOnBhcnNlSW50KHRbMV0sMTYpLGc6cGFyc2VJbnQodFsyXSwxNiksYjpwYXJzZUludCh0WzNdLDE2KX06bnVsbH1mdW5jdGlvbiBjbGFtcChlLGEsdCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsYSksdCl9ZnVuY3Rpb24gaXNJbkFycmF5KGUsYSl7cmV0dXJuIGEuaW5kZXhPZihlKT4tMX12YXIgcEpTPWZ1bmN0aW9uKGUsYSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIyIrZSsiID4gLnBhcnRpY2xlcy1qcy1jYW52YXMtZWwiKTt0aGlzLnBKUz17Y2FudmFzOntlbDp0LHc6dC5vZmZzZXRXaWR0aCxoOnQub2Zmc2V0SGVpZ2h0fSxwYXJ0aWNsZXM6e251bWJlcjp7dmFsdWU6NDAwLGRlbnNpdHk6e2VuYWJsZTohMCx2YWx1ZV9hcmVhOjgwMH19LGNvbG9yOnt2YWx1ZToiI2ZmZiJ9LHNoYXBlOnt0eXBlOiJjaXJjbGUiLHN0cm9rZTp7d2lkdGg6MCxjb2xvcjoiI2ZmMDAwMCJ9LHBvbHlnb246e25iX3NpZGVzOjV9LGltYWdlOntzcmM6IiIsd2lkdGg6MTAwLGhlaWdodDoxMDB9fSxvcGFjaXR5Ont2YWx1ZToxLHJhbmRvbTohMSxhbmltOntlbmFibGU6ITEsc3BlZWQ6MixvcGFjaXR5X21pbjowLHN5bmM6ITF9fSxzaXplOnt2YWx1ZToyMCxyYW5kb206ITEsYW5pbTp7ZW5hYmxlOiExLHNwZWVkOjIwLHNpemVfbWluOjAsc3luYzohMX19LGxpbmVfbGlua2VkOntlbmFibGU6ITAsZGlzdGFuY2U6MTAwLGNvbG9yOiIjZmZmIixvcGFjaXR5OjEsd2lkdGg6MX0sbW92ZTp7ZW5hYmxlOiEwLHNwZWVkOjIsZGlyZWN0aW9uOiJub25lIixyYW5kb206ITEsc3RyYWlnaHQ6ITEsb3V0X21vZGU6Im91dCIsYm91bmNlOiExLGF0dHJhY3Q6e2VuYWJsZTohMSxyb3RhdGVYOjNlMyxyb3RhdGVZOjNlM319LGFycmF5OltdfSxpbnRlcmFjdGl2aXR5OntkZXRlY3Rfb246ImNhbnZhcyIsZXZlbnRzOntvbmhvdmVyOntlbmFibGU6ITAsbW9kZToiZ3JhYiJ9LG9uY2xpY2s6e2VuYWJsZTohMCxtb2RlOiJwdXNoIn0scmVzaXplOiEwfSxtb2Rlczp7Z3JhYjp7ZGlzdGFuY2U6MTAwLGxpbmVfbGlua2VkOntvcGFjaXR5OjF9fSxidWJibGU6e2Rpc3RhbmNlOjIwMCxzaXplOjgwLGR1cmF0aW9uOi40fSxyZXB1bHNlOntkaXN0YW5jZToyMDAsZHVyYXRpb246LjR9LHB1c2g6e3BhcnRpY2xlc19uYjo0fSxyZW1vdmU6e3BhcnRpY2xlc19uYjoyfX0sbW91c2U6e319LHJldGluYV9kZXRlY3Q6ITEsZm46e2ludGVyYWN0Ont9LG1vZGVzOnt9LHZlbmRvcnM6e319LHRtcDp7fX07dmFyIGk9dGhpcy5wSlM7YSYmT2JqZWN0LmRlZXBFeHRlbmQoaSxhKSxpLnRtcC5vYmo9e3NpemVfdmFsdWU6aS5wYXJ0aWNsZXMuc2l6ZS52YWx1ZSxzaXplX2FuaW1fc3BlZWQ6aS5wYXJ0aWNsZXMuc2l6ZS5hbmltLnNwZWVkLG1vdmVfc3BlZWQ6aS5wYXJ0aWNsZXMubW92ZS5zcGVlZCxsaW5lX2xpbmtlZF9kaXN0YW5jZTppLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5kaXN0YW5jZSxsaW5lX2xpbmtlZF93aWR0aDppLnBhcnRpY2xlcy5saW5lX2xpbmtlZC53aWR0aCxtb2RlX2dyYWJfZGlzdGFuY2U6aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmdyYWIuZGlzdGFuY2UsbW9kZV9idWJibGVfZGlzdGFuY2U6aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXN0YW5jZSxtb2RlX2J1YmJsZV9zaXplOmkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuc2l6ZSxtb2RlX3JlcHVsc2VfZGlzdGFuY2U6aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlcHVsc2UuZGlzdGFuY2V9LGkuZm4ucmV0aW5hSW5pdD1mdW5jdGlvbigpe2kucmV0aW5hX2RldGVjdCYmd2luZG93LmRldmljZVBpeGVsUmF0aW8+MT8oaS5jYW52YXMucHhyYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxpLnRtcC5yZXRpbmE9ITApOihpLmNhbnZhcy5weHJhdGlvPTEsaS50bXAucmV0aW5hPSExKSxpLmNhbnZhcy53PWkuY2FudmFzLmVsLm9mZnNldFdpZHRoKmkuY2FudmFzLnB4cmF0aW8saS5jYW52YXMuaD1pLmNhbnZhcy5lbC5vZmZzZXRIZWlnaHQqaS5jYW52YXMucHhyYXRpbyxpLnBhcnRpY2xlcy5zaXplLnZhbHVlPWkudG1wLm9iai5zaXplX3ZhbHVlKmkuY2FudmFzLnB4cmF0aW8saS5wYXJ0aWNsZXMuc2l6ZS5hbmltLnNwZWVkPWkudG1wLm9iai5zaXplX2FuaW1fc3BlZWQqaS5jYW52YXMucHhyYXRpbyxpLnBhcnRpY2xlcy5tb3ZlLnNwZWVkPWkudG1wLm9iai5tb3ZlX3NwZWVkKmkuY2FudmFzLnB4cmF0aW8saS5wYXJ0aWNsZXMubGluZV9saW5rZWQuZGlzdGFuY2U9aS50bXAub2JqLmxpbmVfbGlua2VkX2Rpc3RhbmNlKmkuY2FudmFzLnB4cmF0aW8saS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmdyYWIuZGlzdGFuY2U9aS50bXAub2JqLm1vZGVfZ3JhYl9kaXN0YW5jZSppLmNhbnZhcy5weHJhdGlvLGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZGlzdGFuY2U9aS50bXAub2JqLm1vZGVfYnViYmxlX2Rpc3RhbmNlKmkuY2FudmFzLnB4cmF0aW8saS5wYXJ0aWNsZXMubGluZV9saW5rZWQud2lkdGg9aS50bXAub2JqLmxpbmVfbGlua2VkX3dpZHRoKmkuY2FudmFzLnB4cmF0aW8saS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5zaXplPWkudG1wLm9iai5tb2RlX2J1YmJsZV9zaXplKmkuY2FudmFzLnB4cmF0aW8saS5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlcHVsc2UuZGlzdGFuY2U9aS50bXAub2JqLm1vZGVfcmVwdWxzZV9kaXN0YW5jZSppLmNhbnZhcy5weHJhdGlvfSxpLmZuLmNhbnZhc0luaXQ9ZnVuY3Rpb24oKXtpLmNhbnZhcy5jdHg9aS5jYW52YXMuZWwuZ2V0Q29udGV4dCgiMmQiKX0saS5mbi5jYW52YXNTaXplPWZ1bmN0aW9uKCl7aS5jYW52YXMuZWwud2lkdGg9aS5jYW52YXMudyxpLmNhbnZhcy5lbC5oZWlnaHQ9aS5jYW52YXMuaCxpJiZpLmludGVyYWN0aXZpdHkuZXZlbnRzLnJlc2l6ZSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtpLmNhbnZhcy53PWkuY2FudmFzLmVsLm9mZnNldFdpZHRoLGkuY2FudmFzLmg9aS5jYW52YXMuZWwub2Zmc2V0SGVpZ2h0LGkudG1wLnJldGluYSYmKGkuY2FudmFzLncqPWkuY2FudmFzLnB4cmF0aW8saS5jYW52YXMuaCo9aS5jYW52YXMucHhyYXRpbyksaS5jYW52YXMuZWwud2lkdGg9aS5jYW52YXMudyxpLmNhbnZhcy5lbC5oZWlnaHQ9aS5jYW52YXMuaCxpLnBhcnRpY2xlcy5tb3ZlLmVuYWJsZXx8KGkuZm4ucGFydGljbGVzRW1wdHkoKSxpLmZuLnBhcnRpY2xlc0NyZWF0ZSgpLGkuZm4ucGFydGljbGVzRHJhdygpLGkuZm4udmVuZG9ycy5kZW5zaXR5QXV0b1BhcnRpY2xlcygpKSxpLmZuLnZlbmRvcnMuZGVuc2l0eUF1dG9QYXJ0aWNsZXMoKX0pfSxpLmZuLmNhbnZhc1BhaW50PWZ1bmN0aW9uKCl7aS5jYW52YXMuY3R4LmZpbGxSZWN0KDAsMCxpLmNhbnZhcy53LGkuY2FudmFzLmgpfSxpLmZuLmNhbnZhc0NsZWFyPWZ1bmN0aW9uKCl7aS5jYW52YXMuY3R4LmNsZWFyUmVjdCgwLDAsaS5jYW52YXMudyxpLmNhbnZhcy5oKX0saS5mbi5wYXJ0aWNsZT1mdW5jdGlvbihlLGEsdCl7aWYodGhpcy5yYWRpdXM9KGkucGFydGljbGVzLnNpemUucmFuZG9tP01hdGgucmFuZG9tKCk6MSkqaS5wYXJ0aWNsZXMuc2l6ZS52YWx1ZSxpLnBhcnRpY2xlcy5zaXplLmFuaW0uZW5hYmxlJiYodGhpcy5zaXplX3N0YXR1cz0hMSx0aGlzLnZzPWkucGFydGljbGVzLnNpemUuYW5pbS5zcGVlZC8xMDAsaS5wYXJ0aWNsZXMuc2l6ZS5hbmltLnN5bmN8fCh0aGlzLnZzPXRoaXMudnMqTWF0aC5yYW5kb20oKSkpLHRoaXMueD10P3QueDpNYXRoLnJhbmRvbSgpKmkuY2FudmFzLncsdGhpcy55PXQ/dC55Ok1hdGgucmFuZG9tKCkqaS5jYW52YXMuaCx0aGlzLng+aS5jYW52YXMudy0yKnRoaXMucmFkaXVzP3RoaXMueD10aGlzLngtdGhpcy5yYWRpdXM6dGhpcy54PDIqdGhpcy5yYWRpdXMmJih0aGlzLng9dGhpcy54K3RoaXMucmFkaXVzKSx0aGlzLnk+aS5jYW52YXMuaC0yKnRoaXMucmFkaXVzP3RoaXMueT10aGlzLnktdGhpcy5yYWRpdXM6dGhpcy55PDIqdGhpcy5yYWRpdXMmJih0aGlzLnk9dGhpcy55K3RoaXMucmFkaXVzKSxpLnBhcnRpY2xlcy5tb3ZlLmJvdW5jZSYmaS5mbi52ZW5kb3JzLmNoZWNrT3ZlcmxhcCh0aGlzLHQpLHRoaXMuY29sb3I9e30sIm9iamVjdCI9PXR5cGVvZiBlLnZhbHVlKWlmKGUudmFsdWUgaW5zdGFuY2VvZiBBcnJheSl7dmFyIHM9ZS52YWx1ZVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqaS5wYXJ0aWNsZXMuY29sb3IudmFsdWUubGVuZ3RoKV07dGhpcy5jb2xvci5yZ2I9aGV4VG9SZ2Iocyl9ZWxzZSB2b2lkIDAhPWUudmFsdWUuciYmdm9pZCAwIT1lLnZhbHVlLmcmJnZvaWQgMCE9ZS52YWx1ZS5iJiYodGhpcy5jb2xvci5yZ2I9e3I6ZS52YWx1ZS5yLGc6ZS52YWx1ZS5nLGI6ZS52YWx1ZS5ifSksdm9pZCAwIT1lLnZhbHVlLmgmJnZvaWQgMCE9ZS52YWx1ZS5zJiZ2b2lkIDAhPWUudmFsdWUubCYmKHRoaXMuY29sb3IuaHNsPXtoOmUudmFsdWUuaCxzOmUudmFsdWUucyxsOmUudmFsdWUubH0pO2Vsc2UicmFuZG9tIj09ZS52YWx1ZT90aGlzLmNvbG9yLnJnYj17cjpNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSswLGc6TWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkrMCxiOk1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpKzB9OiJzdHJpbmciPT10eXBlb2YgZS52YWx1ZSYmKHRoaXMuY29sb3I9ZSx0aGlzLmNvbG9yLnJnYj1oZXhUb1JnYih0aGlzLmNvbG9yLnZhbHVlKSk7dGhpcy5vcGFjaXR5PShpLnBhcnRpY2xlcy5vcGFjaXR5LnJhbmRvbT9NYXRoLnJhbmRvbSgpOjEpKmkucGFydGljbGVzLm9wYWNpdHkudmFsdWUsaS5wYXJ0aWNsZXMub3BhY2l0eS5hbmltLmVuYWJsZSYmKHRoaXMub3BhY2l0eV9zdGF0dXM9ITEsdGhpcy52bz1pLnBhcnRpY2xlcy5vcGFjaXR5LmFuaW0uc3BlZWQvMTAwLGkucGFydGljbGVzLm9wYWNpdHkuYW5pbS5zeW5jfHwodGhpcy52bz10aGlzLnZvKk1hdGgucmFuZG9tKCkpKTt2YXIgbj17fTtzd2l0Y2goaS5wYXJ0aWNsZXMubW92ZS5kaXJlY3Rpb24pe2Nhc2UidG9wIjpuPXt4OjAseTotMX07YnJlYWs7Y2FzZSJ0b3AtcmlnaHQiOm49e3g6LjUseTotLjV9O2JyZWFrO2Nhc2UicmlnaHQiOm49e3g6MSx5Oi0wfTticmVhaztjYXNlImJvdHRvbS1yaWdodCI6bj17eDouNSx5Oi41fTticmVhaztjYXNlImJvdHRvbSI6bj17eDowLHk6MX07YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6bj17eDotLjUseToxfTticmVhaztjYXNlImxlZnQiOm49e3g6LTEseTowfTticmVhaztjYXNlInRvcC1sZWZ0IjpuPXt4Oi0uNSx5Oi0uNX07YnJlYWs7ZGVmYXVsdDpuPXt4OjAseTowfX1pLnBhcnRpY2xlcy5tb3ZlLnN0cmFpZ2h0Pyh0aGlzLnZ4PW4ueCx0aGlzLnZ5PW4ueSxpLnBhcnRpY2xlcy5tb3ZlLnJhbmRvbSYmKHRoaXMudng9dGhpcy52eCpNYXRoLnJhbmRvbSgpLHRoaXMudnk9dGhpcy52eSpNYXRoLnJhbmRvbSgpKSk6KHRoaXMudng9bi54K01hdGgucmFuZG9tKCktLjUsdGhpcy52eT1uLnkrTWF0aC5yYW5kb20oKS0uNSksdGhpcy52eF9pPXRoaXMudngsdGhpcy52eV9pPXRoaXMudnk7dmFyIHI9aS5wYXJ0aWNsZXMuc2hhcGUudHlwZTtpZigib2JqZWN0Ij09dHlwZW9mIHIpe2lmKHIgaW5zdGFuY2VvZiBBcnJheSl7dmFyIGM9cltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqci5sZW5ndGgpXTt0aGlzLnNoYXBlPWN9fWVsc2UgdGhpcy5zaGFwZT1yO2lmKCJpbWFnZSI9PXRoaXMuc2hhcGUpe3ZhciBvPWkucGFydGljbGVzLnNoYXBlO3RoaXMuaW1nPXtzcmM6by5pbWFnZS5zcmMscmF0aW86by5pbWFnZS53aWR0aC9vLmltYWdlLmhlaWdodH0sdGhpcy5pbWcucmF0aW98fCh0aGlzLmltZy5yYXRpbz0xKSwic3ZnIj09aS50bXAuaW1nX3R5cGUmJnZvaWQgMCE9aS50bXAuc291cmNlX3N2ZyYmKGkuZm4udmVuZG9ycy5jcmVhdGVTdmdJbWcodGhpcyksaS50bXAucHVzaGluZyYmKHRoaXMuaW1nLmxvYWRlZD0hMSkpfX0saS5mbi5wYXJ0aWNsZS5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpLmNhbnZhcy5jdHguZHJhd0ltYWdlKHIsYS54LXQsYS55LXQsMip0LDIqdC9hLmltZy5yYXRpbyl9dmFyIGE9dGhpcztpZih2b2lkIDAhPWEucmFkaXVzX2J1YmJsZSl2YXIgdD1hLnJhZGl1c19idWJibGU7ZWxzZSB2YXIgdD1hLnJhZGl1cztpZih2b2lkIDAhPWEub3BhY2l0eV9idWJibGUpdmFyIHM9YS5vcGFjaXR5X2J1YmJsZTtlbHNlIHZhciBzPWEub3BhY2l0eTtpZihhLmNvbG9yLnJnYil2YXIgbj0icmdiYSgiK2EuY29sb3IucmdiLnIrIiwiK2EuY29sb3IucmdiLmcrIiwiK2EuY29sb3IucmdiLmIrIiwiK3MrIikiO2Vsc2UgdmFyIG49ImhzbGEoIithLmNvbG9yLmhzbC5oKyIsIithLmNvbG9yLmhzbC5zKyIlLCIrYS5jb2xvci5oc2wubCsiJSwiK3MrIikiO3N3aXRjaChpLmNhbnZhcy5jdHguZmlsbFN0eWxlPW4saS5jYW52YXMuY3R4LmJlZ2luUGF0aCgpLGEuc2hhcGUpe2Nhc2UiY2lyY2xlIjppLmNhbnZhcy5jdHguYXJjKGEueCxhLnksdCwwLDIqTWF0aC5QSSwhMSk7YnJlYWs7Y2FzZSJlZGdlIjppLmNhbnZhcy5jdHgucmVjdChhLngtdCxhLnktdCwyKnQsMip0KTticmVhaztjYXNlInRyaWFuZ2xlIjppLmZuLnZlbmRvcnMuZHJhd1NoYXBlKGkuY2FudmFzLmN0eCxhLngtdCxhLnkrdC8xLjY2LDIqdCwzLDIpO2JyZWFrO2Nhc2UicG9seWdvbiI6aS5mbi52ZW5kb3JzLmRyYXdTaGFwZShpLmNhbnZhcy5jdHgsYS54LXQvKGkucGFydGljbGVzLnNoYXBlLnBvbHlnb24ubmJfc2lkZXMvMy41KSxhLnktdC8uNzYsMi42Nip0LyhpLnBhcnRpY2xlcy5zaGFwZS5wb2x5Z29uLm5iX3NpZGVzLzMpLGkucGFydGljbGVzLnNoYXBlLnBvbHlnb24ubmJfc2lkZXMsMSk7YnJlYWs7Y2FzZSJzdGFyIjppLmZuLnZlbmRvcnMuZHJhd1NoYXBlKGkuY2FudmFzLmN0eCxhLngtMip0LyhpLnBhcnRpY2xlcy5zaGFwZS5wb2x5Z29uLm5iX3NpZGVzLzQpLGEueS10LzEuNTIsMip0KjIuNjYvKGkucGFydGljbGVzLnNoYXBlLnBvbHlnb24ubmJfc2lkZXMvMyksaS5wYXJ0aWNsZXMuc2hhcGUucG9seWdvbi5uYl9zaWRlcywyKTticmVhaztjYXNlImltYWdlIjppZigic3ZnIj09aS50bXAuaW1nX3R5cGUpdmFyIHI9YS5pbWcub2JqO2Vsc2UgdmFyIHI9aS50bXAuaW1nX29iajtyJiZlKCl9aS5jYW52YXMuY3R4LmNsb3NlUGF0aCgpLGkucGFydGljbGVzLnNoYXBlLnN0cm9rZS53aWR0aD4wJiYoaS5jYW52YXMuY3R4LnN0cm9rZVN0eWxlPWkucGFydGljbGVzLnNoYXBlLnN0cm9rZS5jb2xvcixpLmNhbnZhcy5jdHgubGluZVdpZHRoPWkucGFydGljbGVzLnNoYXBlLnN0cm9rZS53aWR0aCxpLmNhbnZhcy5jdHguc3Ryb2tlKCkpLGkuY2FudmFzLmN0eC5maWxsKCl9LGkuZm4ucGFydGljbGVzQ3JlYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxpLnBhcnRpY2xlcy5udW1iZXIudmFsdWU7ZSsrKWkucGFydGljbGVzLmFycmF5LnB1c2gobmV3IGkuZm4ucGFydGljbGUoaS5wYXJ0aWNsZXMuY29sb3IsaS5wYXJ0aWNsZXMub3BhY2l0eS52YWx1ZSkpfSxpLmZuLnBhcnRpY2xlc1VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8aS5wYXJ0aWNsZXMuYXJyYXkubGVuZ3RoO2UrKyl7dmFyIGE9aS5wYXJ0aWNsZXMuYXJyYXlbZV07aWYoaS5wYXJ0aWNsZXMubW92ZS5lbmFibGUpe3ZhciB0PWkucGFydGljbGVzLm1vdmUuc3BlZWQvMjthLngrPWEudngqdCxhLnkrPWEudnkqdH1pZihpLnBhcnRpY2xlcy5vcGFjaXR5LmFuaW0uZW5hYmxlJiYoMT09YS5vcGFjaXR5X3N0YXR1cz8oYS5vcGFjaXR5Pj1pLnBhcnRpY2xlcy5vcGFjaXR5LnZhbHVlJiYoYS5vcGFjaXR5X3N0YXR1cz0hMSksYS5vcGFjaXR5Kz1hLnZvKTooYS5vcGFjaXR5PD1pLnBhcnRpY2xlcy5vcGFjaXR5LmFuaW0ub3BhY2l0eV9taW4mJihhLm9wYWNpdHlfc3RhdHVzPSEwKSxhLm9wYWNpdHktPWEudm8pLGEub3BhY2l0eTwwJiYoYS5vcGFjaXR5PTApKSxpLnBhcnRpY2xlcy5zaXplLmFuaW0uZW5hYmxlJiYoMT09YS5zaXplX3N0YXR1cz8oYS5yYWRpdXM+PWkucGFydGljbGVzLnNpemUudmFsdWUmJihhLnNpemVfc3RhdHVzPSExKSxhLnJhZGl1cys9YS52cyk6KGEucmFkaXVzPD1pLnBhcnRpY2xlcy5zaXplLmFuaW0uc2l6ZV9taW4mJihhLnNpemVfc3RhdHVzPSEwKSxhLnJhZGl1cy09YS52cyksYS5yYWRpdXM8MCYmKGEucmFkaXVzPTApKSwiYm91bmNlIj09aS5wYXJ0aWNsZXMubW92ZS5vdXRfbW9kZSl2YXIgcz17eF9sZWZ0OmEucmFkaXVzLHhfcmlnaHQ6aS5jYW52YXMudyx5X3RvcDphLnJhZGl1cyx5X2JvdHRvbTppLmNhbnZhcy5ofTtlbHNlIHZhciBzPXt4X2xlZnQ6LWEucmFkaXVzLHhfcmlnaHQ6aS5jYW52YXMudythLnJhZGl1cyx5X3RvcDotYS5yYWRpdXMseV9ib3R0b206aS5jYW52YXMuaCthLnJhZGl1c307c3dpdGNoKGEueC1hLnJhZGl1cz5pLmNhbnZhcy53PyhhLng9cy54X2xlZnQsYS55PU1hdGgucmFuZG9tKCkqaS5jYW52YXMuaCk6YS54K2EucmFkaXVzPDAmJihhLng9cy54X3JpZ2h0LGEueT1NYXRoLnJhbmRvbSgpKmkuY2FudmFzLmgpLGEueS1hLnJhZGl1cz5pLmNhbnZhcy5oPyhhLnk9cy55X3RvcCxhLng9TWF0aC5yYW5kb20oKSppLmNhbnZhcy53KTphLnkrYS5yYWRpdXM8MCYmKGEueT1zLnlfYm90dG9tLGEueD1NYXRoLnJhbmRvbSgpKmkuY2FudmFzLncpLGkucGFydGljbGVzLm1vdmUub3V0X21vZGUpe2Nhc2UiYm91bmNlIjphLngrYS5yYWRpdXM+aS5jYW52YXMudz9hLnZ4PS1hLnZ4OmEueC1hLnJhZGl1czwwJiYoYS52eD0tYS52eCksYS55K2EucmFkaXVzPmkuY2FudmFzLmg/YS52eT0tYS52eTphLnktYS5yYWRpdXM8MCYmKGEudnk9LWEudnkpfWlmKGlzSW5BcnJheSgiZ3JhYiIsaS5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbmhvdmVyLm1vZGUpJiZpLmZuLm1vZGVzLmdyYWJQYXJ0aWNsZShhKSwoaXNJbkFycmF5KCJidWJibGUiLGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25ob3Zlci5tb2RlKXx8aXNJbkFycmF5KCJidWJibGUiLGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5tb2RlKSkmJmkuZm4ubW9kZXMuYnViYmxlUGFydGljbGUoYSksKGlzSW5BcnJheSgicmVwdWxzZSIsaS5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbmhvdmVyLm1vZGUpfHxpc0luQXJyYXkoInJlcHVsc2UiLGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5tb2RlKSkmJmkuZm4ubW9kZXMucmVwdWxzZVBhcnRpY2xlKGEpLGkucGFydGljbGVzLmxpbmVfbGlua2VkLmVuYWJsZXx8aS5wYXJ0aWNsZXMubW92ZS5hdHRyYWN0LmVuYWJsZSlmb3IodmFyIG49ZSsxO248aS5wYXJ0aWNsZXMuYXJyYXkubGVuZ3RoO24rKyl7dmFyIHI9aS5wYXJ0aWNsZXMuYXJyYXlbbl07aS5wYXJ0aWNsZXMubGluZV9saW5rZWQuZW5hYmxlJiZpLmZuLmludGVyYWN0LmxpbmtQYXJ0aWNsZXMoYSxyKSxpLnBhcnRpY2xlcy5tb3ZlLmF0dHJhY3QuZW5hYmxlJiZpLmZuLmludGVyYWN0LmF0dHJhY3RQYXJ0aWNsZXMoYSxyKSxpLnBhcnRpY2xlcy5tb3ZlLmJvdW5jZSYmaS5mbi5pbnRlcmFjdC5ib3VuY2VQYXJ0aWNsZXMoYSxyKX19fSxpLmZuLnBhcnRpY2xlc0RyYXc9ZnVuY3Rpb24oKXtpLmNhbnZhcy5jdHguY2xlYXJSZWN0KDAsMCxpLmNhbnZhcy53LGkuY2FudmFzLmgpLGkuZm4ucGFydGljbGVzVXBkYXRlKCk7Zm9yKHZhciBlPTA7ZTxpLnBhcnRpY2xlcy5hcnJheS5sZW5ndGg7ZSsrKXt2YXIgYT1pLnBhcnRpY2xlcy5hcnJheVtlXTthLmRyYXcoKX19LGkuZm4ucGFydGljbGVzRW1wdHk9ZnVuY3Rpb24oKXtpLnBhcnRpY2xlcy5hcnJheT1bXX0saS5mbi5wYXJ0aWNsZXNSZWZyZXNoPWZ1bmN0aW9uKCl7Y2FuY2VsUmVxdWVzdEFuaW1GcmFtZShpLmZuLmNoZWNrQW5pbUZyYW1lKSxjYW5jZWxSZXF1ZXN0QW5pbUZyYW1lKGkuZm4uZHJhd0FuaW1GcmFtZSksaS50bXAuc291cmNlX3N2Zz12b2lkIDAsaS50bXAuaW1nX29iaj12b2lkIDAsaS50bXAuY291bnRfc3ZnPTAsaS5mbi5wYXJ0aWNsZXNFbXB0eSgpLGkuZm4uY2FudmFzQ2xlYXIoKSxpLmZuLnZlbmRvcnMuc3RhcnQoKX0saS5mbi5pbnRlcmFjdC5saW5rUGFydGljbGVzPWZ1bmN0aW9uKGUsYSl7dmFyIHQ9ZS54LWEueCxzPWUueS1hLnksbj1NYXRoLnNxcnQodCp0K3Mqcyk7aWYobjw9aS5wYXJ0aWNsZXMubGluZV9saW5rZWQuZGlzdGFuY2Upe3ZhciByPWkucGFydGljbGVzLmxpbmVfbGlua2VkLm9wYWNpdHktbi8oMS9pLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5vcGFjaXR5KS9pLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5kaXN0YW5jZTtpZihyPjApe3ZhciBjPWkucGFydGljbGVzLmxpbmVfbGlua2VkLmNvbG9yX3JnYl9saW5lO2kuY2FudmFzLmN0eC5zdHJva2VTdHlsZT0icmdiYSgiK2MucisiLCIrYy5nKyIsIitjLmIrIiwiK3IrIikiLGkuY2FudmFzLmN0eC5saW5lV2lkdGg9aS5wYXJ0aWNsZXMubGluZV9saW5rZWQud2lkdGgsaS5jYW52YXMuY3R4LmJlZ2luUGF0aCgpLGkuY2FudmFzLmN0eC5tb3ZlVG8oZS54LGUueSksaS5jYW52YXMuY3R4LmxpbmVUbyhhLngsYS55KSxpLmNhbnZhcy5jdHguc3Ryb2tlKCksaS5jYW52YXMuY3R4LmNsb3NlUGF0aCgpfX19LGkuZm4uaW50ZXJhY3QuYXR0cmFjdFBhcnRpY2xlcz1mdW5jdGlvbihlLGEpe3ZhciB0PWUueC1hLngscz1lLnktYS55LG49TWF0aC5zcXJ0KHQqdCtzKnMpO2lmKG48PWkucGFydGljbGVzLmxpbmVfbGlua2VkLmRpc3RhbmNlKXt2YXIgcj10LygxZTMqaS5wYXJ0aWNsZXMubW92ZS5hdHRyYWN0LnJvdGF0ZVgpLGM9cy8oMWUzKmkucGFydGljbGVzLm1vdmUuYXR0cmFjdC5yb3RhdGVZKTtlLnZ4LT1yLGUudnktPWMsYS52eCs9cixhLnZ5Kz1jfX0saS5mbi5pbnRlcmFjdC5ib3VuY2VQYXJ0aWNsZXM9ZnVuY3Rpb24oZSxhKXt2YXIgdD1lLngtYS54LGk9ZS55LWEueSxzPU1hdGguc3FydCh0KnQraSppKSxuPWUucmFkaXVzK2EucmFkaXVzO24+PXMmJihlLnZ4PS1lLnZ4LGUudnk9LWUudnksYS52eD0tYS52eCxhLnZ5PS1hLnZ5KX0saS5mbi5tb2Rlcy5wdXNoUGFydGljbGVzPWZ1bmN0aW9uKGUsYSl7aS50bXAucHVzaGluZz0hMDtmb3IodmFyIHQ9MDtlPnQ7dCsrKWkucGFydGljbGVzLmFycmF5LnB1c2gobmV3IGkuZm4ucGFydGljbGUoaS5wYXJ0aWNsZXMuY29sb3IsaS5wYXJ0aWNsZXMub3BhY2l0eS52YWx1ZSx7eDphP2EucG9zX3g6TWF0aC5yYW5kb20oKSppLmNhbnZhcy53LHk6YT9hLnBvc195Ok1hdGgucmFuZG9tKCkqaS5jYW52YXMuaH0pKSx0PT1lLTEmJihpLnBhcnRpY2xlcy5tb3ZlLmVuYWJsZXx8aS5mbi5wYXJ0aWNsZXNEcmF3KCksaS50bXAucHVzaGluZz0hMSl9LGkuZm4ubW9kZXMucmVtb3ZlUGFydGljbGVzPWZ1bmN0aW9uKGUpe2kucGFydGljbGVzLmFycmF5LnNwbGljZSgwLGUpLGkucGFydGljbGVzLm1vdmUuZW5hYmxlfHxpLmZuLnBhcnRpY2xlc0RyYXcoKX0saS5mbi5tb2Rlcy5idWJibGVQYXJ0aWNsZT1mdW5jdGlvbihlKXtmdW5jdGlvbiBhKCl7ZS5vcGFjaXR5X2J1YmJsZT1lLm9wYWNpdHksZS5yYWRpdXNfYnViYmxlPWUucmFkaXVzfWZ1bmN0aW9uIHQoYSx0LHMsbixjKXtpZihhIT10KWlmKGkudG1wLmJ1YmJsZV9kdXJhdGlvbl9lbmQpe2lmKHZvaWQgMCE9cyl7dmFyIG89bi1wKihuLWEpL2kuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24sbD1hLW87ZD1hK2wsInNpemUiPT1jJiYoZS5yYWRpdXNfYnViYmxlPWQpLCJvcGFjaXR5Ij09YyYmKGUub3BhY2l0eV9idWJibGU9ZCl9fWVsc2UgaWYocjw9aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXN0YW5jZSl7aWYodm9pZCAwIT1zKXZhciB2PXM7ZWxzZSB2YXIgdj1uO2lmKHYhPWEpe3ZhciBkPW4tcCoobi1hKS9pLmludGVyYWN0aXZpdHkubW9kZXMuYnViYmxlLmR1cmF0aW9uOyJzaXplIj09YyYmKGUucmFkaXVzX2J1YmJsZT1kKSwib3BhY2l0eSI9PWMmJihlLm9wYWNpdHlfYnViYmxlPWQpfX1lbHNlInNpemUiPT1jJiYoZS5yYWRpdXNfYnViYmxlPXZvaWQgMCksIm9wYWNpdHkiPT1jJiYoZS5vcGFjaXR5X2J1YmJsZT12b2lkIDApfWlmKGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25ob3Zlci5lbmFibGUmJmlzSW5BcnJheSgiYnViYmxlIixpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uaG92ZXIubW9kZSkpe3ZhciBzPWUueC1pLmludGVyYWN0aXZpdHkubW91c2UucG9zX3gsbj1lLnktaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195LHI9TWF0aC5zcXJ0KHMqcytuKm4pLGM9MS1yL2kuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZGlzdGFuY2U7aWYocjw9aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXN0YW5jZSl7aWYoYz49MCYmIm1vdXNlbW92ZSI9PWkuaW50ZXJhY3Rpdml0eS5zdGF0dXMpe2lmKGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuc2l6ZSE9aS5wYXJ0aWNsZXMuc2l6ZS52YWx1ZSlpZihpLmludGVyYWN0aXZpdHkubW9kZXMuYnViYmxlLnNpemU+aS5wYXJ0aWNsZXMuc2l6ZS52YWx1ZSl7dmFyIG89ZS5yYWRpdXMraS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5zaXplKmM7bz49MCYmKGUucmFkaXVzX2J1YmJsZT1vKX1lbHNle3ZhciBsPWUucmFkaXVzLWkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuc2l6ZSxvPWUucmFkaXVzLWwqYztvPjA/ZS5yYWRpdXNfYnViYmxlPW86ZS5yYWRpdXNfYnViYmxlPTB9aWYoaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5vcGFjaXR5IT1pLnBhcnRpY2xlcy5vcGFjaXR5LnZhbHVlKWlmKGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUub3BhY2l0eT5pLnBhcnRpY2xlcy5vcGFjaXR5LnZhbHVlKXt2YXIgdj1pLmludGVyYWN0aXZpdHkubW9kZXMuYnViYmxlLm9wYWNpdHkqYzt2PmUub3BhY2l0eSYmdjw9aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5vcGFjaXR5JiYoZS5vcGFjaXR5X2J1YmJsZT12KX1lbHNle3ZhciB2PWUub3BhY2l0eS0oaS5wYXJ0aWNsZXMub3BhY2l0eS52YWx1ZS1pLmludGVyYWN0aXZpdHkubW9kZXMuYnViYmxlLm9wYWNpdHkpKmM7djxlLm9wYWNpdHkmJnY+PWkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUub3BhY2l0eSYmKGUub3BhY2l0eV9idWJibGU9dil9fX1lbHNlIGEoKTsibW91c2VsZWF2ZSI9PWkuaW50ZXJhY3Rpdml0eS5zdGF0dXMmJmEoKX1lbHNlIGlmKGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUmJmlzSW5BcnJheSgiYnViYmxlIixpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2subW9kZSkpe2lmKGkudG1wLmJ1YmJsZV9jbGlja2luZyl7dmFyIHM9ZS54LWkuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja19wb3NfeCxuPWUueS1pLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tfcG9zX3kscj1NYXRoLnNxcnQocypzK24qbikscD0oKG5ldyBEYXRlKS5nZXRUaW1lKCktaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrX3RpbWUpLzFlMztwPmkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24mJihpLnRtcC5idWJibGVfZHVyYXRpb25fZW5kPSEwKSxwPjIqaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kdXJhdGlvbiYmKGkudG1wLmJ1YmJsZV9jbGlja2luZz0hMSxpLnRtcC5idWJibGVfZHVyYXRpb25fZW5kPSExKX1pLnRtcC5idWJibGVfY2xpY2tpbmcmJih0KGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuc2l6ZSxpLnBhcnRpY2xlcy5zaXplLnZhbHVlLGUucmFkaXVzX2J1YmJsZSxlLnJhZGl1cywic2l6ZSIpLHQoaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5vcGFjaXR5LGkucGFydGljbGVzLm9wYWNpdHkudmFsdWUsZS5vcGFjaXR5X2J1YmJsZSxlLm9wYWNpdHksIm9wYWNpdHkiKSl9fSxpLmZuLm1vZGVzLnJlcHVsc2VQYXJ0aWNsZT1mdW5jdGlvbihlKXtmdW5jdGlvbiBhKCl7dmFyIGE9TWF0aC5hdGFuMihkLHApO2lmKGUudng9dSpNYXRoLmNvcyhhKSxlLnZ5PXUqTWF0aC5zaW4oYSksImJvdW5jZSI9PWkucGFydGljbGVzLm1vdmUub3V0X21vZGUpe3ZhciB0PXt4OmUueCtlLnZ4LHk6ZS55K2Uudnl9O3QueCtlLnJhZGl1cz5pLmNhbnZhcy53P2Uudng9LWUudng6dC54LWUucmFkaXVzPDAmJihlLnZ4PS1lLnZ4KSx0LnkrZS5yYWRpdXM+aS5jYW52YXMuaD9lLnZ5PS1lLnZ5OnQueS1lLnJhZGl1czwwJiYoZS52eT0tZS52eSl9fWlmKGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25ob3Zlci5lbmFibGUmJmlzSW5BcnJheSgicmVwdWxzZSIsaS5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbmhvdmVyLm1vZGUpJiYibW91c2Vtb3ZlIj09aS5pbnRlcmFjdGl2aXR5LnN0YXR1cyl7dmFyIHQ9ZS54LWkuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeCxzPWUueS1pLmludGVyYWN0aXZpdHkubW91c2UucG9zX3ksbj1NYXRoLnNxcnQodCp0K3Mqcykscj17eDp0L24seTpzL259LGM9aS5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlcHVsc2UuZGlzdGFuY2Usbz0xMDAsbD1jbGFtcCgxL2MqKC0xKk1hdGgucG93KG4vYywyKSsxKSpjKm8sMCw1MCksdj17eDplLngrci54KmwseTplLnkrci55Kmx9OyJib3VuY2UiPT1pLnBhcnRpY2xlcy5tb3ZlLm91dF9tb2RlPyh2LngtZS5yYWRpdXM+MCYmdi54K2UucmFkaXVzPGkuY2FudmFzLncmJihlLng9di54KSx2LnktZS5yYWRpdXM+MCYmdi55K2UucmFkaXVzPGkuY2FudmFzLmgmJihlLnk9di55KSk6KGUueD12LngsZS55PXYueSl9ZWxzZSBpZihpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2suZW5hYmxlJiZpc0luQXJyYXkoInJlcHVsc2UiLGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5tb2RlKSlpZihpLnRtcC5yZXB1bHNlX2ZpbmlzaHx8KGkudG1wLnJlcHVsc2VfY291bnQrKyxpLnRtcC5yZXB1bHNlX2NvdW50PT1pLnBhcnRpY2xlcy5hcnJheS5sZW5ndGgmJihpLnRtcC5yZXB1bHNlX2ZpbmlzaD0hMCkpLGkudG1wLnJlcHVsc2VfY2xpY2tpbmcpe3ZhciBjPU1hdGgucG93KGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZXB1bHNlLmRpc3RhbmNlLzYsMykscD1pLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tfcG9zX3gtZS54LGQ9aS5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrX3Bvc195LWUueSxtPXAqcCtkKmQsdT0tYy9tKjE7Yz49bSYmYSgpfWVsc2UgMD09aS50bXAucmVwdWxzZV9jbGlja2luZyYmKGUudng9ZS52eF9pLGUudnk9ZS52eV9pKX0saS5mbi5tb2Rlcy5ncmFiUGFydGljbGU9ZnVuY3Rpb24oZSl7aWYoaS5pbnRlcmFjdGl2aXR5LmV2ZW50cy5vbmhvdmVyLmVuYWJsZSYmIm1vdXNlbW92ZSI9PWkuaW50ZXJhY3Rpdml0eS5zdGF0dXMpe3ZhciBhPWUueC1pLmludGVyYWN0aXZpdHkubW91c2UucG9zX3gsdD1lLnktaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195LHM9TWF0aC5zcXJ0KGEqYSt0KnQpO2lmKHM8PWkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5ncmFiLmRpc3RhbmNlKXt2YXIgbj1pLmludGVyYWN0aXZpdHkubW9kZXMuZ3JhYi5saW5lX2xpbmtlZC5vcGFjaXR5LXMvKDEvaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmdyYWIubGluZV9saW5rZWQub3BhY2l0eSkvaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLmdyYWIuZGlzdGFuY2U7aWYobj4wKXt2YXIgcj1pLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5jb2xvcl9yZ2JfbGluZTtpLmNhbnZhcy5jdHguc3Ryb2tlU3R5bGU9InJnYmEoIityLnIrIiwiK3IuZysiLCIrci5iKyIsIituKyIpIixpLmNhbnZhcy5jdHgubGluZVdpZHRoPWkucGFydGljbGVzLmxpbmVfbGlua2VkLndpZHRoLGkuY2FudmFzLmN0eC5iZWdpblBhdGgoKSxpLmNhbnZhcy5jdHgubW92ZVRvKGUueCxlLnkpLGkuY2FudmFzLmN0eC5saW5lVG8oaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194LGkuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeSksaS5jYW52YXMuY3R4LnN0cm9rZSgpLGkuY2FudmFzLmN0eC5jbG9zZVBhdGgoKX19fX0saS5mbi52ZW5kb3JzLmV2ZW50c0xpc3RlbmVycz1mdW5jdGlvbigpeyJ3aW5kb3ciPT1pLmludGVyYWN0aXZpdHkuZGV0ZWN0X29uP2kuaW50ZXJhY3Rpdml0eS5lbD13aW5kb3c6aS5pbnRlcmFjdGl2aXR5LmVsPWkuY2FudmFzLmVsLChpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uaG92ZXIuZW5hYmxlfHxpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2suZW5hYmxlKSYmKGkuaW50ZXJhY3Rpdml0eS5lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGUpe2lmKGkuaW50ZXJhY3Rpdml0eS5lbD09d2luZG93KXZhciBhPWUuY2xpZW50WCx0PWUuY2xpZW50WTtlbHNlIHZhciBhPWUub2Zmc2V0WHx8ZS5jbGllbnRYLHQ9ZS5vZmZzZXRZfHxlLmNsaWVudFk7aS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194PWEsaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195PXQsaS50bXAucmV0aW5hJiYoaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194Kj1pLmNhbnZhcy5weHJhdGlvLGkuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeSo9aS5jYW52YXMucHhyYXRpbyksaS5pbnRlcmFjdGl2aXR5LnN0YXR1cz0ibW91c2Vtb3ZlIn0pLGkuaW50ZXJhY3Rpdml0eS5lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixmdW5jdGlvbihlKXtpLmludGVyYWN0aXZpdHkubW91c2UucG9zX3g9bnVsbCxpLmludGVyYWN0aXZpdHkubW91c2UucG9zX3k9bnVsbCxpLmludGVyYWN0aXZpdHkuc3RhdHVzPSJtb3VzZWxlYXZlIn0pKSxpLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2suZW5hYmxlJiZpLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoaS5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrX3Bvc194PWkuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeCxpLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tfcG9zX3k9aS5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195LGkuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja190aW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUpc3dpdGNoKGkuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5tb2RlKXtjYXNlInB1c2giOmkucGFydGljbGVzLm1vdmUuZW5hYmxlP2kuZm4ubW9kZXMucHVzaFBhcnRpY2xlcyhpLmludGVyYWN0aXZpdHkubW9kZXMucHVzaC5wYXJ0aWNsZXNfbmIsaS5pbnRlcmFjdGl2aXR5Lm1vdXNlKToxPT1pLmludGVyYWN0aXZpdHkubW9kZXMucHVzaC5wYXJ0aWNsZXNfbmI/aS5mbi5tb2Rlcy5wdXNoUGFydGljbGVzKGkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnBhcnRpY2xlc19uYixpLmludGVyYWN0aXZpdHkubW91c2UpOmkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnBhcnRpY2xlc19uYj4xJiZpLmZuLm1vZGVzLnB1c2hQYXJ0aWNsZXMoaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iKTticmVhaztjYXNlInJlbW92ZSI6aS5mbi5tb2Rlcy5yZW1vdmVQYXJ0aWNsZXMoaS5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlbW92ZS5wYXJ0aWNsZXNfbmIpO2JyZWFrO2Nhc2UiYnViYmxlIjppLnRtcC5idWJibGVfY2xpY2tpbmc9ITA7YnJlYWs7Y2FzZSJyZXB1bHNlIjppLnRtcC5yZXB1bHNlX2NsaWNraW5nPSEwLGkudG1wLnJlcHVsc2VfY291bnQ9MCxpLnRtcC5yZXB1bHNlX2ZpbmlzaD0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS50bXAucmVwdWxzZV9jbGlja2luZz0hMX0sMWUzKmkuaW50ZXJhY3Rpdml0eS5tb2Rlcy5yZXB1bHNlLmR1cmF0aW9uKX19KX0saS5mbi52ZW5kb3JzLmRlbnNpdHlBdXRvUGFydGljbGVzPWZ1bmN0aW9uKCl7aWYoaS5wYXJ0aWNsZXMubnVtYmVyLmRlbnNpdHkuZW5hYmxlKXt2YXIgZT1pLmNhbnZhcy5lbC53aWR0aCppLmNhbnZhcy5lbC5oZWlnaHQvMWUzO2kudG1wLnJldGluYSYmKGUvPTIqaS5jYW52YXMucHhyYXRpbyk7dmFyIGE9ZSppLnBhcnRpY2xlcy5udW1iZXIudmFsdWUvaS5wYXJ0aWNsZXMubnVtYmVyLmRlbnNpdHkudmFsdWVfYXJlYSx0PWkucGFydGljbGVzLmFycmF5Lmxlbmd0aC1hOzA+dD9pLmZuLm1vZGVzLnB1c2hQYXJ0aWNsZXMoTWF0aC5hYnModCkpOmkuZm4ubW9kZXMucmVtb3ZlUGFydGljbGVzKHQpfX0saS5mbi52ZW5kb3JzLmNoZWNrT3ZlcmxhcD1mdW5jdGlvbihlLGEpe2Zvcih2YXIgdD0wO3Q8aS5wYXJ0aWNsZXMuYXJyYXkubGVuZ3RoO3QrKyl7dmFyIHM9aS5wYXJ0aWNsZXMuYXJyYXlbdF0sbj1lLngtcy54LHI9ZS55LXMueSxjPU1hdGguc3FydChuKm4rcipyKTtjPD1lLnJhZGl1cytzLnJhZGl1cyYmKGUueD1hP2EueDpNYXRoLnJhbmRvbSgpKmkuY2FudmFzLncsZS55PWE/YS55Ok1hdGgucmFuZG9tKCkqaS5jYW52YXMuaCxpLmZuLnZlbmRvcnMuY2hlY2tPdmVybGFwKGUpKX19LGkuZm4udmVuZG9ycy5jcmVhdGVTdmdJbWc9ZnVuY3Rpb24oZSl7dmFyIGE9aS50bXAuc291cmNlX3N2Zyx0PS8jKFswLTlBLUZdezMsNn0pL2dpLHM9YS5yZXBsYWNlKHQsZnVuY3Rpb24oYSx0LGkscyl7aWYoZS5jb2xvci5yZ2IpdmFyIG49InJnYmEoIitlLmNvbG9yLnJnYi5yKyIsIitlLmNvbG9yLnJnYi5nKyIsIitlLmNvbG9yLnJnYi5iKyIsIitlLm9wYWNpdHkrIikiO2Vsc2UgdmFyIG49ImhzbGEoIitlLmNvbG9yLmhzbC5oKyIsIitlLmNvbG9yLmhzbC5zKyIlLCIrZS5jb2xvci5oc2wubCsiJSwiK2Uub3BhY2l0eSsiKSI7cmV0dXJuIG59KSxuPW5ldyBCbG9iKFtzXSx7dHlwZToiaW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04In0pLHI9d2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTHx8d2luZG93LGM9ci5jcmVhdGVPYmplY3RVUkwobiksbz1uZXcgSW1hZ2U7by5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2UuaW1nLm9iaj1vLGUuaW1nLmxvYWRlZD0hMCxyLnJldm9rZU9iamVjdFVSTChjKSxpLnRtcC5jb3VudF9zdmcrK30pLG8uc3JjPWN9LGkuZm4udmVuZG9ycy5kZXN0cm95cEpTPWZ1bmN0aW9uKCl7Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaS5mbi5kcmF3QW5pbUZyYW1lKSx0LnJlbW92ZSgpLHBKU0RvbT1udWxsfSxpLmZuLnZlbmRvcnMuZHJhd1NoYXBlPWZ1bmN0aW9uKGUsYSx0LGkscyxuKXt2YXIgcj1zKm4sYz1zL24sbz0xODAqKGMtMikvYyxsPU1hdGguUEktTWF0aC5QSSpvLzE4MDtlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUudHJhbnNsYXRlKGEsdCksZS5tb3ZlVG8oMCwwKTtmb3IodmFyIHY9MDtyPnY7disrKWUubGluZVRvKGksMCksZS50cmFuc2xhdGUoaSwwKSxlLnJvdGF0ZShsKTtlLmZpbGwoKSxlLnJlc3RvcmUoKX0saS5mbi52ZW5kb3JzLmV4cG9ydEltZz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKGkuY2FudmFzLmVsLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIiksIl9ibGFuayIpfSxpLmZuLnZlbmRvcnMubG9hZEltZz1mdW5jdGlvbihlKXtpZihpLnRtcC5pbWdfZXJyb3I9dm9pZCAwLCIiIT1pLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmMpaWYoInN2ZyI9PWUpe3ZhciBhPW5ldyBYTUxIdHRwUmVxdWVzdDthLm9wZW4oIkdFVC5odG1sIixpLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmMpLGEub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGUpezQ9PWEucmVhZHlTdGF0ZSYmKDIwMD09YS5zdGF0dXM/KGkudG1wLnNvdXJjZV9zdmc9ZS5jdXJyZW50VGFyZ2V0LnJlc3BvbnNlLGkuZm4udmVuZG9ycy5jaGVja0JlZm9yZURyYXcoKSk6KGNvbnNvbGUubG9nKCJFcnJvciBwSlMgLSBJbWFnZSBub3QgZm91bmQiKSxpLnRtcC5pbWdfZXJyb3I9ITApKX0sYS5zZW5kKCl9ZWxzZXt2YXIgdD1uZXcgSW1hZ2U7dC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2kudG1wLmltZ19vYmo9dCxpLmZuLnZlbmRvcnMuY2hlY2tCZWZvcmVEcmF3KCl9KSx0LnNyYz1pLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmN9ZWxzZSBjb25zb2xlLmxvZygiRXJyb3IlMjBwSlMlMjAtJTIwTm8lMjBpbWFnZS5odG1sIiksaS50bXAuaW1nX2Vycm9yPSEwfSxpLmZuLnZlbmRvcnMuZHJhdz1mdW5jdGlvbigpeyJpbWFnZSI9PWkucGFydGljbGVzLnNoYXBlLnR5cGU/InN2ZyI9PWkudG1wLmltZ190eXBlP2kudG1wLmNvdW50X3N2Zz49aS5wYXJ0aWNsZXMubnVtYmVyLnZhbHVlPyhpLmZuLnBhcnRpY2xlc0RyYXcoKSxpLnBhcnRpY2xlcy5tb3ZlLmVuYWJsZT9pLmZuLmRyYXdBbmltRnJhbWU9cmVxdWVzdEFuaW1GcmFtZShpLmZuLnZlbmRvcnMuZHJhdyk6Y2FuY2VsUmVxdWVzdEFuaW1GcmFtZShpLmZuLmRyYXdBbmltRnJhbWUpKTppLnRtcC5pbWdfZXJyb3J8fChpLmZuLmRyYXdBbmltRnJhbWU9cmVxdWVzdEFuaW1GcmFtZShpLmZuLnZlbmRvcnMuZHJhdykpOnZvaWQgMCE9aS50bXAuaW1nX29iaj8oaS5mbi5wYXJ0aWNsZXNEcmF3KCksaS5wYXJ0aWNsZXMubW92ZS5lbmFibGU/aS5mbi5kcmF3QW5pbUZyYW1lPXJlcXVlc3RBbmltRnJhbWUoaS5mbi52ZW5kb3JzLmRyYXcpOmNhbmNlbFJlcXVlc3RBbmltRnJhbWUoaS5mbi5kcmF3QW5pbUZyYW1lKSk6aS50bXAuaW1nX2Vycm9yfHwoaS5mbi5kcmF3QW5pbUZyYW1lPXJlcXVlc3RBbmltRnJhbWUoaS5mbi52ZW5kb3JzLmRyYXcpKTooaS5mbi5wYXJ0aWNsZXNEcmF3KCksaS5wYXJ0aWNsZXMubW92ZS5lbmFibGU/aS5mbi5kcmF3QW5pbUZyYW1lPXJlcXVlc3RBbmltRnJhbWUoaS5mbi52ZW5kb3JzLmRyYXcpOmNhbmNlbFJlcXVlc3RBbmltRnJhbWUoaS5mbi5kcmF3QW5pbUZyYW1lKSl9LGkuZm4udmVuZG9ycy5jaGVja0JlZm9yZURyYXc9ZnVuY3Rpb24oKXsiaW1hZ2UiPT1pLnBhcnRpY2xlcy5zaGFwZS50eXBlPyJzdmciPT1pLnRtcC5pbWdfdHlwZSYmdm9pZCAwPT1pLnRtcC5zb3VyY2Vfc3ZnP2kudG1wLmNoZWNrQW5pbUZyYW1lPXJlcXVlc3RBbmltRnJhbWUoY2hlY2spOihjYW5jZWxSZXF1ZXN0QW5pbUZyYW1lKGkudG1wLmNoZWNrQW5pbUZyYW1lKSxpLnRtcC5pbWdfZXJyb3J8fChpLmZuLnZlbmRvcnMuaW5pdCgpLGkuZm4udmVuZG9ycy5kcmF3KCkpKTooaS5mbi52ZW5kb3JzLmluaXQoKSxpLmZuLnZlbmRvcnMuZHJhdygpKX0saS5mbi52ZW5kb3JzLmluaXQ9ZnVuY3Rpb24oKXtpLmZuLnJldGluYUluaXQoKSxpLmZuLmNhbnZhc0luaXQoKSxpLmZuLmNhbnZhc1NpemUoKSxpLmZuLmNhbnZhc1BhaW50KCksaS5mbi5wYXJ0aWNsZXNDcmVhdGUoKSxpLmZuLnZlbmRvcnMuZGVuc2l0eUF1dG9QYXJ0aWNsZXMoKSxpLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5jb2xvcl9yZ2JfbGluZT1oZXhUb1JnYihpLnBhcnRpY2xlcy5saW5lX2xpbmtlZC5jb2xvcil9LGkuZm4udmVuZG9ycy5zdGFydD1mdW5jdGlvbigpe2lzSW5BcnJheSgiaW1hZ2UiLGkucGFydGljbGVzLnNoYXBlLnR5cGUpPyhpLnRtcC5pbWdfdHlwZT1pLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmMuc3Vic3RyKGkucGFydGljbGVzLnNoYXBlLmltYWdlLnNyYy5sZW5ndGgtMyksaS5mbi52ZW5kb3JzLmxvYWRJbWcoaS50bXAuaW1nX3R5cGUpKTppLmZuLnZlbmRvcnMuY2hlY2tCZWZvcmVEcmF3KCl9LGkuZm4udmVuZG9ycy5ldmVudHNMaXN0ZW5lcnMoKSxpLmZuLnZlbmRvcnMuc3RhcnQoKX07T2JqZWN0LmRlZXBFeHRlbmQ9ZnVuY3Rpb24oZSxhKXtmb3IodmFyIHQgaW4gYSlhW3RdJiZhW3RdLmNvbnN0cnVjdG9yJiZhW3RdLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhlW3RdPWVbdF18fHt9LGFyZ3VtZW50cy5jYWxsZWUoZVt0XSxhW3RdKSk6ZVt0XT1hW3RdO3JldHVybiBlfSx3aW5kb3cucmVxdWVzdEFuaW1GcmFtZT1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihlKXt3aW5kb3cuc2V0VGltZW91dChlLDFlMy82MCl9fSgpLHdpbmRvdy5jYW5jZWxSZXF1ZXN0QW5pbUZyYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZXx8d2luZG93LndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1vekNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm9DYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5tc0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8Y2xlYXJUaW1lb3V0fSgpLHdpbmRvdy5wSlNEb209W10sd2luZG93LnBhcnRpY2xlc0pTPWZ1bmN0aW9uKGUsYSl7InN0cmluZyIhPXR5cGVvZiBlJiYoYT1lLGU9InBhcnRpY2xlcy1qcyIpLGV8fChlPSJwYXJ0aWNsZXMtanMiKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKSxpPSJwYXJ0aWNsZXMtanMtY2FudmFzLWVsIixzPXQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpKTtpZihzLmxlbmd0aClmb3IoO3MubGVuZ3RoPjA7KXQucmVtb3ZlQ2hpbGQoc1swXSk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7bi5jbGFzc05hbWU9aSxuLnN0eWxlLndpZHRoPSIxMDAlIixuLnN0eWxlLmhlaWdodD0iMTAwJSI7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkuYXBwZW5kQ2hpbGQobik7bnVsbCE9ciYmcEpTRG9tLnB1c2gobmV3IHBKUyhlLGEpKX0sd2luZG93LnBhcnRpY2xlc0pTLmxvYWQ9ZnVuY3Rpb24oZSxhLHQpe3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdDtpLm9wZW4oIkdFVC5odG1sIixhKSxpLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihhKXtpZig0PT1pLnJlYWR5U3RhdGUpaWYoMjAwPT1pLnN0YXR1cyl7dmFyIHM9SlNPTi5wYXJzZShhLmN1cnJlbnRUYXJnZXQucmVzcG9uc2UpO3dpbmRvdy5wYXJ0aWNsZXNKUyhlLHMpLHQmJnQoKX1lbHNlIGNvbnNvbGUubG9nKCJFcnJvciBwSlMgLSBYTUxIdHRwUmVxdWVzdCBzdGF0dXM6ICIraS5zdGF0dXMpLGNvbnNvbGUubG9nKCJFcnJvciBwSlMgLSBGaWxlIGNvbmZpZyBub3QgZm91bmQiKX0saS5zZW5kKCl9Ow=="}},"time_used":76,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":76,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/21159.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.820Z","timestamp":1785126646820,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/21159.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1109\r\nage: 76481\r\nlast-modified: Mon, 27 Feb 2023 08:52:26 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:16:26 GMT\r\netag: \"7fc6b4e871a3083132fe9efd2c32810b\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: ZzaN3XaUSHUf45JNXuGhh1KCu8kHsaP8JEr7kiI1g-EOLbFI_fHTvw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1109,"size_decoded":1643,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"7fc6b4e871a3083132fe9efd2c32810b","sha1":"af58b11f58be987c5046adfe366e54ffc442dab4","sha256":"fafa5f5e91dcd9a9df807a32d2e2f632e82116d3a6315ac4880e9faeec0c842d","sha512":"e50f074d52a4ebe7e26a28e016141af04d28452709296826a865587c6d846ea7e66e74afaacf99449a8275ebb85c53561c5990d41dac1069ec51eb435571c701","ssdeep":"","tlshash":"9611b9dbf1dfb46dd9f66a2d4a586b637cd074b500d10823a44ae025343ca4d7cd97b1","first_seen":"2024-08-19T19:26:13.825682Z","last_seen":"2026-07-27T08:07:37.380187Z","times_seen":1086,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEHElEQVR4XuWZ4ZWrNhBGp4SUQAkpgRJSAiW8DtYd5HWAO8jrgBJSAiWkhGTHRot0ZyQExhhv7jnfH+bOSNr1GuwVOZY/P/PPZ/7NRGvqfAs6sQfcmk7ehE7s5vdOJyekF7vRZ6eXk8CNrck4hdfX5GVwI7mMoWED2st5uRwKF2eGWd2Nv8Suwzyd0i1M89usPhWuG0f3+BR6sYvFORquH0f3uiuj2EVCmlmr4o/P/C12jl5rZ62KRuyckHHWHqP0t1fDh9i+2vyQOtgXont/CA5cM5g9j2aJR39RLhxUM/BDrL9XPqQM/ZBNcIjmGgtA7wD0n5USV7H+Uo+BzUtDBrEu0wW5gk5sPzME2YFuSDVsLDXTizNG3lZ0Budu3VfVcwqbSo304jSz9jCN2PlxPHJ/kkVGsQ25Ju9eXvL3gOuE6F486GmGxACUNR6NWE/TzkoR/e30cn9s1egtLPcqI/ogxXU1uX56uTO5j7o56Gl+TwzLILYnl37qydGK7dHkoHdJqhOUcgN1c/RyboBubUrQ1eS+T6TnzqbQp+Uv6LnDJpY+Pdak9OmOrsbjIgteHxVcYYKOpomFCHqPxmPNOz2dn6Vi7ZA+LX9BL46+ieXoxPpxPAap8+gkHgu/4uJEL9bLQW/JJ+xb6qc3pOUbV7HeF9lCBJ01Xu4+XSL3nOFBp9a70eYKgE6TVO+MYr3cvBo4R6NrkEas50Hnduv2ftIeW5yctwbOy83c4ozeRa/5IsuOQqdJqttoxc71oJO8y0/Quc3iBW8B1j3He0TdC87tkuodOt76rN8cXhiCHUHHG+499OwF53oPR3S89QdxHF7ogx1BxxvOuudshXO92ax7zlUchxf6SY6h4w1n3XO2wrnebNY95yqOwwvDJMfQ8Yaz7jlb4VxvNuueM4jj8ILXyLrn/JBlZyucq2sROt76rN8cXvAar7LsKHRyX1KshXM96PRp+Qad26yad2/vU5cHnZy3Bs7LzaTj/fDp3O4mtfdvOjULaLZ8DjgcbtqDzhpv6euyl8MNX5LqnZo/lQA9zZAYJ4ObzR2OTpdUZ+gtzX05g9RtlE7OU+idMQkstkn1TiPWM4Mi6J0pBgquJP57gffhJODdQs8QwyAV0gS9khug/+q4UMqJ3mNvzvXQf4Wx98hk8V7eY2LM0Asp/Tm8BTxQ6SdGr6bn9LRiD1M6EL047ay9FzyIZkiMFLpe3g4eQFN6pr+I9UsZ5f5m2B+U1TRiN60ZI8fDeyN9dS6yEQ4KaSLHoxPb88o8BIeF6Mu3BvYdnV3g0K0L6Jcv3r/inpVd4fA4Y+R9a3hw5n9BI/bgjDrfHh46l3byvyWd2APXZJD7J8p2h3jfTh8OD3hUTscodpPPyFuw9yPxKV7qj/BT7KFyGeWgA/8HnQmb9kre5jAAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/19891.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.847Z","timestamp":1785126646847,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/19891.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 958\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Sun, 26 Jul 2026 08:33:21 GMT\r\nlast-modified: Sun, 08 May 2022 19:17:08 GMT\r\netag: \"c31a8ad908f213778980e620b7a38a95\"\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nage: 71846\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nvary: Origin\r\nx-amz-cf-id: x7NZ5XssfeykyeW6MMbbk6lZYd84Ixs8Xeq31_xnf4zR0-mdCOGLAg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":958,"size_decoded":1436,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"c31a8ad908f213778980e620b7a38a95","sha1":"69c6acd7300eda51040cf03fc3b726a1bddc0d80","sha256":"4a2125caa6fd094e4bb5998fdef721f48100d8394259d2f79cc42a673aceb8a9","sha512":"b3625f5e067acac0628975306f29997c91db3298a37c2e2ed9d30016eb62080b666d6364c91549c6ed97e64f2cd68ba862c90ef5c5eb59893a802a5cdf2981e9","ssdeep":"","tlshash":"ca11c8bbc09e72b5ad344ef34152ef0413480ad4a2212d6c21a194c1560d2ebc7ec706","first_seen":"2025-11-23T13:22:53.396084Z","last_seen":"2026-07-27T08:07:37.465327Z","times_seen":1081,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADhUlEQVR4Xs2aMW5UQRBEfRVOwAk4ARdwTAwZiIyAhBQSLkAIKQEZGUhEBE5IsGQugIRIQY00qPf9mpmePz1//aQKtqe7elzyWrvrvfhzIHceXoZ0JBcsZMIfbK9Wkh4AL5+tbNIC4EWpUThPZTEdAC9W9OnbFVt3c3VzvfHPCmJ3ALxI60LsiUrBnlZvhF0BcLm6AM9nRXiueiIMB9BbyvNskd55j3AAXMRlPFut3u4ooQBofvfJg+rZ0SrYnWpnLboBtEx5di617tRjKIBaXWkV3KP21eqKZgA1Iy6nVsN9am+tTqoBeIPR5/y7zx+dUz7c51Xg34QaMoCaKeu3VbX7KroBqNqsPKw9fvN6079H9Pc1zyYANUDzWXlYywrAxB2+VjhLAEdJ3Z+cBKAaaTqrCJyZkfL0HBLADPQalfLx/A9ANdBsVJnQe0TKo7AsgBVwR1RqvrAJ4Orm+8njPVoJd0Vl2KdUvOO/ANjI2oiOgDsjUrPG2QPg3NWPa3eq4c6I1KwhA+BwVD1UH2vlhVAP7o6Ic8ZJADPmfr6G6mNtdQB+1rhoNYyqh+pjzb8UrnH56vlmd0QFX7vVAWSLO02HBmCwl4/PGsCsRqjNrgxAKTUA0x5+/v618TlK6QGYMqDnKi0JwJQJvTOV+keQyob+o1I+SwMoyvxXOb1HpDwOCYCahX5RqfnUl8JReezx6G+If1s7ooJ/nPpmKCoPax++fnGndegZEecMGQBr2fKwturNkJozUgN4+f6tFPs8rEXeDBnKt6UCa5uPxMrzkQY99aj1shYNwOAdWjLswxZ6bwLwhzRpqUetl7VoACNviQuqlhaAXagH/VWNj2twf0tqppD6j5EInFGKwJmaVL/n8AAyuPfs0WZ3TQVVM04CMFQjTVs6Au6sSfWT9ADUkky4qyU1QzYBGGqA5j2tgDtaUjOKbgA1s6gyoGdPtTmFDMDwg6NfkqppBM5GVZj6klShZsClo1JehZkPRT21OmkGYNSMuHxEyqewNwBPra4YCoCGPItKeRTuv3i66e/J0zpTdAMwaJr1NyFDBT7n/VmLUAAGzbmAZ6vV2x0lHECht4jn2SK98x7DARhcqhbzfFaE56onwq4ADC5vXYI9USnY0+qNsDuAAi9SVL5slUHrU+BZpgMo8GLUKJynskgLoMCLZiub9AA8vPxerWRpAIQ/WE1H8hfLatbVj65uIAAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/24478.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.866Z","timestamp":1785126646866,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/24478.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 5281\r\nage: 75474\r\nlast-modified: Thu, 10 Aug 2023 04:10:01 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:33:12 GMT\r\ncache-control: public, max-age=86400\r\netag: \"ad12f5c035cc80c127981051cbcc352e\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: l3Gs5qnWZiO2e2XlbioBnUtStUnqAzR2NUswI1MTzFzB-pGFlIpPhw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":5281,"size_decoded":5853,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"ad12f5c035cc80c127981051cbcc352e","sha1":"41c31c90fc78394ce8114dc4c1df7ee9055220ed","sha256":"ec537de040a73db93b37350b1e6ec11f9d51f663c121ddc9fed6ad9b9f803eac","sha512":"0da5bbd7ba132fe249125efa243e4d05869fcc37b10ec398b844854b3b7f49f242736927998310587db25e3f34be4d7cfc0f67b73dc6702e977a290de7e14791","ssdeep":"96:Sx8GlMxymDWozd9jYO3n8WBxIdEpu0GKDU648UVhXncrbVJD1Dn:Sx88qDTzd90OX8WBxIdau0GKW8idncHh","tlshash":"1eb18e4e2ed2662ac2cc35f9e3d913387d003984f5946b1d313b6e966534623518ded6","first_seen":"2023-08-15T00:41:51Z","last_seen":"2026-07-27T08:07:37.458104Z","times_seen":808,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/api/public/v1/stats/trigger-views","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:54.176Z","timestamp":1785126654176,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"OPTIONS /api/public/v1/stats/trigger-views HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-type,cp-app-id\r\nReferer: https://www.bitifinex.live/\r\nOrigin: https://www.bitifinex.live\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/2 204 \r\ndate: Mon, 27 Jul 2026 04:30:54 GMT\r\ncontent-type: text/plain\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-allow-headers: Content-Type, cp-app-id\r\naccess-control-allow-credentials: true\r\ncf-cache-status: DYNAMIC\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=jGEWGTnVLw2XhKOPYbur2PBu%2BTLTY99syyQjOFUTxKt%2F%2BZ1ZoLgN5pxrRABr1Yk40xgr6BtDQuWRT%2BFpDwlLOaaPdLWAd%2BElsouUYfM00%2FJyUQbxCnTuUjPUc%2FGryd0h4g%3D%3D\"}]}\r\ncf-ray: a218e9549defb1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":659,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":33,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":33,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/5805.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.703Z","timestamp":1785126646703,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/5805.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 685\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Mon, 27 Jul 2026 03:08:31 GMT\r\nlast-modified: Wed, 27 Apr 2022 07:39:01 GMT\r\netag: \"b9913f5599faab08d2addf87011c61e0\"\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\nx-cache: Hit from cloudfront\r\nage: 4936\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nvary: Origin\r\nx-amz-cf-id: kX0J_sIcj8KCudUUQvZfbqFPz-GyMK6eSi5p8IMC6RWDaW1ZRrYdpQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":685,"size_decoded":1162,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"b9913f5599faab08d2addf87011c61e0","sha1":"d9ae6e6a8ca0e50e02a991d032d9b9a461079f95","sha256":"68ba1605b3a54d7f827c22cc7252f01c6bf9412cfa6573be2c91fcd4b9e908cd","sha512":"7baea45f411fc30232bd93d04b8cf34414d333096ec669558ee6dd4a4a725785786f488b387e6c38654ba4fd3aecfda5526de2d949851796582c75214a42150f","ssdeep":"","tlshash":"8d01d8fb0957c025408f01f8224f7372d160c4eec9c7e20d89d9f7301862ad24c4524d","first_seen":"2023-05-15T13:26:32Z","last_seen":"2026-07-27T08:07:37.47508Z","times_seen":1463,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACdElEQVR4Xu2bPU7DQBBGuRlrcwTugejgLCBElxZBAQeABiREDzX5awEJIpSAI2Elz9jZ3Zm1dw1Peo298+3MVImibG21xNTkB+MsX9hYnGV9cnAoqcyPFjauLe+LgonJT9locE1+xj46odJYy7Kf1mAjXcv+gsLLY5F9qsMLY5V9q8BLYpf9i2B4KnIOLxiampzHCYalKueyhkHa/sDn2nIuKxiiLeF7bTlfIywOIeH7EHLOWliobR08py3n/BUWhbAJntWW864xzrIHFmi7CZ7XdmTMJecu4WFtbWGdtpy7hAe1tYV12nLuJTykrSus15bz/+0F8KW2vjBH2/8FtLEAX6a7u5UsbYMvYPb0xLmsYVYIl8MPTb7PF1r6Mnt8rGSFcFT8AsWHWkpgVkijWwBzQhtkARKYFdqoFsCcNlRfgARmrfp+e7eYf3xUnktVXcDrYMCZrGHWqi9Hx9ZnXVVdgARmNeXyvUS1BUhglk0uz/na+QKYQ+vgOV9VFiCBWS65PO9j8VH4kA9d9YU5dBOfz8NKjZvZnvjLkARm+eSyzkXxt8G38wv2Yw2zVnWF9baKFyCBWZJc1tsqWoAEZmnkMsfGcgE+S/CFOdQX5mxybfg+LKCAWU1y/iU81OT79Q3vb4T1dfrCnCY5dwkP9lXOXTIx2RUP983Rdn7PuddgQd/kvL/Cor7IOWthYV/knI2wOHU5nxUMSVXOZQ2DUpVzOcGw1OQ8XjA0FTmHCIbHLvtXgZfEKvtWhxfGIvsMCi/vWvbXGmykbdlPJxR/YmRjwd3eOWEfUVBpVFneFy3fzc7ZvMA585NjZIz13+eLs6wPxRfcM7S6mfjOrgAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/27772.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.705Z","timestamp":1785126646705,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/27772.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1840\r\nage: 73810\r\nlast-modified: Tue, 16 Dec 2025 19:42:45 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 08:00:40 GMT\r\ncache-control: public, max-age=86400\r\netag: \"ba53b6c577ea73bf426df505b732ad48\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: SrugkqEWG8XMOFy_DlzxsRAsUouVW14hyIqtua6C6F10MyhRK1KcXg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":1840,"size_decoded":2412,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"ba53b6c577ea73bf426df505b732ad48","sha1":"674433b4de3fa0dde8732c9031f31494dd09fc67","sha256":"b24e2e57a40eccd8224fe4ffb458555a5727a3abd3c33b78e1bc55126b72c6ef","sha512":"59ff544b7a4c87e63f093faad0c609c08a63356f09e92474e7e2ce5313d98114658f78616c626aca649f9689024e7aa376120fd0d1cf009f6fbfcaff325935f7","ssdeep":"","tlshash":"40314bcdc2e8f15f798644d80058aaa489216f75e4b84acac0ed3734c2275ec29ec074","first_seen":"2026-03-04T08:47:10.934258Z","last_seen":"2026-07-27T08:07:37.357422Z","times_seen":1096,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAG90lEQVR4XuWbW0hWSxTHt2kqlRFdDLEbBIH10nkIggpKrIcwAh8SqVNEhVBZSEhGJNXBhx40i26aGHTxoQcfksBDPUgFQURHKUjoJpwuSl7K0jLTOfs/nW8zs9bXt/fs7+In34If1LfXXrPWds/MmjWzLSu6kmyTY/OnTZVNs81Tmx6bURvxP/g3fsM16EAX9+Be2JhQkmqTa1Nn86+lB2oK7oUN2IJN2I5bybL5y6bT4oFEik7rVxtoK24k26baZtDiDkcLtIU20fa4SbpNmc2AxR2MFWgbPsCXmMofNv9Y3KHxAr7Ap6hLkk2JzZDFnRhv4BN8g49REbxm9RZvON6AjxHvEhk2f1u8sXilxfrlc0QEhlot3ki802pF4CHgVZpIf3kKfPfdHTCYTIQ+7wZi8DUwYkSlxjxTVFQkjhw54ptDhw6JwsJCsWTJEpGUlMTsG4JYjARzqu+pDg4/f/5cjI2NRYQXL16IiooKkZ2dzdryCGLxnCegz4SV5KSmporv37+zQMJlYGBAHDt2TNqnbXoAMXkaD5Ba0puNWLp0KXM+kjx48EBkZWWxdj2A2EIKFhdh5/YFBQWaw3iFT506ZUR1dbW4ffu26OnpYQ8gYHPBggWsbRcQW8gFFFZY9CZjMIipzp4/f57peGXKlCli+/bt4uXLl+whPH78WF6n97iAGIMK1tgRWdI2NDRojh44cIDpmJKRkSHq6+vZQzh79izTdQExBq0noNBAlX1x//59zcn169czHT9MmjRJXLp0SbM9PDwsli1bxnRdQKyaoNTUaXHFkGzdulXU1NQwPn36pDl57tw5cfz4cSN2794t5s6dy9pMS0sTT5480ew3NjYyPRc6LVJeQ72NKrnS2trKXslIggdZWlrK2s3LyxOjo6OO3tevX8WcOXOYnguI2REUHalCSCZPnizevn3LnI4GyArVtpOTk0VHR4emg5mH+ugCYpaCsjMqr1QhJHjiP3/+ZM5Gg6GhIZYFnjlzRtOprKxkPrqAmGXJHbV349L17Nmzxd69exn37t3THLt27ZrYtm2bEXv27BGvXr3S7Bw8eFBrf+fOndp1H+MAYkbscgOCXvTN3bt3Ncfy8/OZjhd27dql2cHgql6nyVZzczOz4QHELndh6AVXkIDMmDHDYdasWXLUfv/+veMUBiqkxenp6UZMmzZNXLlyRQvwxIkTWvtbtmzRrjc1NTEfPYDY5VYUveDKrVu3xJcvXxwGBwflnKw6Bfr7+0VfX58Rnz9/ZnZWrVqltU+zzYsXLzIfPYDY5X4cveDKmzdvmJPRoqWlhdUE8JuqU1JSwnz0AGKXm5L0QkjwymPupY5Gg7a2NrbymzdvnnzjAjroasuXL2d+egCxm88AOTk58rXHQ1D58eOH5vy3b99kMuOHZ8+eifLycjF16lTW/unTp7V2oIvcgOp5ALGzH11BTo5BkHLjxg3NMaSz9N5wwbqCPugw22E/+Obhw4eaY3TgCpc1a9aI3t5erY329na5PqC6Bph3gd+BETzgGPrlzJkzmY4f0A2OHj0qM0I1eHSxlStXMn0DZBcwHgSDgVRVde7du3esX2IkV3MHFVR3Fi5c6LB48WKZRCHlhS3VNkAavmPHDuaHIXIQ9DUNUtA3VQeRElOdRYsWsUD8gIIr0mVq3wdyGvSVCFH279+vOXn58mWms3HjRhaMKVgjrF27ltn2iUyEfKXCFLo6KysrYzo0ezOhq6tLHD58WJbGqN0wkKlwRBZDNDPbvHkz07l69aqmg0Hz9evXsuD54cMHB9QZsLGChRXm/E2bNsk1ArUXAeRiyNdyWAV5AcrUanBIlqjeo0ePNB1Ma7gXYMBMSUmR4N809Y0CznLYV0FEZfr06VpqikURnZvx/48fP2o6wWp+McQpiECMS2IqqMqqf1mkplRn/vz5YmRkxNHBqx6Dv3IonJIYxFdRNAAtTty8eZPp5ObmajooqFKdGKMVRX2VxQPQ0f3kyZNMB+UyVcfHhkYk6bSCnDr1vTFy/fp1LTjU9agOAlZ1iouLmU4MYRsjEN9bY9ijU4NbsWIF07lz546ms3r1aqYTI367NQYx3hzFtKUugpCmZmZmMr3u7m5HB4NhMJ0Y8dvNUYjx9jgWMerojhVabW2tuHDhgkNdXZ22k4PCKTZWqK0Y4Lo9DjE6ILFu3Trt1fbCOM4ArgckIEZHZDCY0QDdwA4vtRMDEFOa5VE8H5KqqqpiAboRbMMzyhgdkgqIp2NyGzZsEPv27TMCxQ5qJ8oYH5ODJPxBSchEPyqLQ9OejsaFkoQ+LB0QGMLTpI3EK3hrIxZ8QBL6g4mAJPQnM6ok7EdTqiT0Z3OqJOyHk1QS9tNZKgn78XQwQdk5rj+f/w9IgP0pU1qUfAAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/6535.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.817Z","timestamp":1785126646817,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/6535.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1806\r\nage: 42633\r\nlast-modified: Mon, 08 May 2023 03:42:18 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 16:40:26 GMT\r\netag: \"de7112f39c6623341a6f2e9d89ab31e6\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: ISaXsJXtSceKePNcQXluiSewzwASfx9zNNb4_tMfUs_IRoDyQR6UMQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1806,"size_decoded":2340,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"de7112f39c6623341a6f2e9d89ab31e6","sha1":"fa9dd8e57b43b4f0e041a86fdcae6f9d93db1a7a","sha256":"ddc134f6755b95cfa468aebe1528788a4cb82af807a7e887ad88c986e5a3f770","sha512":"2e9f9ff3bcb43c1a828a13ce4e8ae0d42152a1a3b6fd18eb6dcb6bfa8f20aff6a088c252580d9396ad95ba018a2552200f9fc30670254cf68030ae3021cc7367","ssdeep":"","tlshash":"59312bdb4fc71fb05d640aa848041b83e60f09dfcbbb159d41a094dd86c1be253e216b","first_seen":"2023-07-14T07:00:22Z","last_seen":"2026-07-27T08:07:37.479893Z","times_seen":1124,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/33251.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.824Z","timestamp":1785126646824,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/33251.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 670\r\nage: 73877\r\nlast-modified: Mon, 01 Sep 2025 11:02:49 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:59:39 GMT\r\ncache-control: public, max-age=86400\r\netag: \"ec9dd93a241b707c75a67b74596e9b5e\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: Tpvz1yR5yki70HuKsYVZGKJwrOA-XYuHlmdJILQI6FlsnwkDMd_Mxw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":670,"size_decoded":1241,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"ec9dd93a241b707c75a67b74596e9b5e","sha1":"ccb63f92f95d2d2a3a79e0a1af4a5c4ae8163b3a","sha256":"3929c3a945e23b6246a734d12e96c3d0b8dfe5786d4c25b7b1891a3692f780a5","sha512":"7edb6748d2be6e6b80a20638bb1deded70e45a5c32fcdd8c63059753227817ebcc0c1dbb59b79bed61178ef406b364f06e1b4a9a6fffa759e98060b86f6c200d","ssdeep":"","tlshash":"ce0188ce03224c20dd972397b2d0e491f002f209575a04c4530d44d84147606e9dcf03","first_seen":"2025-09-21T19:23:24.386227Z","last_seen":"2026-07-27T08:07:37.440105Z","times_seen":1141,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACZUlEQVR4Xu2aO07DQBRFUwIKhfNRsgNasgFgKalpqZFYAdBCSUWBFHYQCTbABhA9mwAGYeOcmXHG9nh+zpWOFMXz3tz7DFKczGDgSLPJeDWbjL7MGK9ZH53kUO1g/yA1n0zOaNw28+l4yX29azYdfdBo5/zsSR9eJBlzDP04E434hv46FTcPBfq0Lm4YKvRtRdwkdOi/ldg8Fpijkdg0NpinltgsVpjLWGwUK8xlJDaJHearFItTgTm1YmEqMKdSLEoN5t2Ql6c611Q9RUqLE4W5fyW+aODCVBFf3DB/b+5+DvP3ewC82Bd2A9gNwGAAn097BbwWKo+XQyPPf+HHa15QUR5ESEOhn3resufKu6/j5eZA2qzM6SKTamzAfQjXm9BoAALVpjSU83a3L9WbwD451+fDYo14rfJiSuMBCGisbITv1THJmpzXW/VfHuvr0GoA5OQ4k8ypYF0O16m4v/i/+zawOgBdSIbgmqvloXRtWw/u3RSrAxDQqAl167hnG6wPoMziyOxfohyM79kOTDodgA4GdBVWhfMBMLAO1nWFswEwIFGtY48uEB+Faxxeqg+DEq53yTw/jMULtiiH1L32idHTYBN4h3WvfWN9AOXg7w/7lYMIAesDiI1iAH0cwkb43QAGbk55hoL2tCkXpgpzF+r9j6NCUkFiMK9SLEoF5tSKhanAnJVicewwn5HYJFaYy1hsFCvMVUtsFhvM00hsGgvM0UpsHjr0b0XcJFTo27q4YSjQZ6fi5r6hP2eiEdfQjxd5eYrc9lTnQy5OmypPeYYoGm8L+0cn8SsMQ+nJVqzvSt+FCLb7X+qEIQAAAABJRU5ErkJggg=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/825.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.620Z","timestamp":1785126646620,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/825.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 674\r\nage: 75017\r\nlast-modified: Fri, 28 Jul 2023 07:44:51 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:40:35 GMT\r\netag: \"25a8a1e3479b793e8bcddc8b2ba726a9\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: -nlRlAvV14-mSLpEJWA4GOT5WGfVjPnbPPC4CMQHWNKw798Gmm2KCg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":674,"size_decoded":1207,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"25a8a1e3479b793e8bcddc8b2ba726a9","sha1":"248492192bb393c84661daab721fcc5d0b82d165","sha256":"2d5a29e2c8a731b9c0891dfa54c3bf753ad5bba2911e71ebca654c273cf08748","sha512":"758bae768d116e95d923a254204ae52624a0bf3a4578fe62bc9039659c45655240b77e9bb92433669cc90f6de32c4df4e5bd83fc632f7c71a85a285446272159","ssdeep":"","tlshash":"dd014e4a0e257a702f230e7325bf2d4f102964e012b55986604eb1338e1eaed142062a","first_seen":"2023-08-15T00:41:50Z","last_seen":"2026-07-27T08:07:37.461119Z","times_seen":1551,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACaUlEQVR4Xu2aPW7CMBiGOQJH6BE4AkfoEThCj8ANIiWwsCAmNnoBJCQ2JtiYUBc2Bla2Vl9Vq+R1En/+xQY/0rMQ298PdpSU9nqZTCaTyfCpqu+onU4HmLI7iqIvBYxRb2CgeL1i6vZU1aYhULw6BwOkoDNw4XQcYin6TCZfDQunozW4YIoagwt1GBqM32lRvGFpaqpqLC3UYWgwvlJtcAGFocH4SsuywBLbwckMQ4PxWbKg84ITGYYG4zNlPCHKk1gOVyuW+8sFa6mB49vE+Gw70bzxmbg5n7HmGjjei63gQA/G2wAc5MkoGkDWMLzxdUnnVFUsB1rD6sy3WZaj/wbgRQP7sxnm7o23xUKKb+Rf8RvpgoaUzKOw3hn0oid9qGkTtG0Hy6U0llQdCxxPUpM/Tycc+ov1bpA+0FQwWq+la02aNAClb15gvQtc3QO4umjAvVYNqIEXmRJ0A8TPVbp4siNM59aLF+AghvfQYy5edy0+Shs1oBMcrFAFbfmP7VZ7l9A9RXVcCJynVAk9IOAkhZRsaMa7nZQHw3cstxmDJgiLwwFzdcb8eJTisdX+yYwm4CIW0lmlb+16u2FdNWiM0bnuUrt4geMmkKpzjeOtNS7+HlzUwqANcAoubmiwBngBgxgYpAFewWCaem+Adyz/ScJrA4KCwZl6a8BDwCQYemnAQ8FkFNIfSvBN0OqtMAowqVBGBSbnV8ZPXI9ATtSHkRYvkBN2axJg0q5MCkze1iTBIkxNGixG16egqvZSYSonkzkukzZUEBbZ5tMVL+A04WmLF2DB6EuARb9U8YKXLj6TyWQycfADMiVWaB1DBnAAAAAASUVORK5CYII="}},"time_used":23,"timings":{"blocked":9,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/512.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.675Z","timestamp":1785126646675,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/512.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2552\r\nage: 3964\r\nlast-modified: Tue, 19 Oct 2021 05:35:14 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:24:43 GMT\r\ncache-control: max-age=86400\r\netag: \"51cec93b9021a4e88470ef0ff6a4ff76\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: fGDPl_Kpl12MdfZw0nZuqO-9FyhITFFBbj_ZJYOu81T0Rfk6Sv-PwQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2552,"size_decoded":3077,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"51cec93b9021a4e88470ef0ff6a4ff76","sha1":"4dce5c11e1c9988f8c2985dfdd9eaf25057b9c64","sha256":"ee839df8763a293723c6b3727d4891d06fe4f151216b5e7b7b900bf8f03cecae","sha512":"7b04b9e4013baea8aaeeced565a4665138cdbd24609d34b618172d3ddac01cca48506257de05ec0e8c6c1b1d9569f53e17dbcaed45fd6ec4a60db57dc05c7b10","ssdeep":"","tlshash":"0c511a6873a9aae7f44fb03096f265114e20aeb007e24d82b63565b5ca1481282367bb","first_seen":"2023-05-25T22:55:54Z","last_seen":"2026-07-27T08:07:37.435464Z","times_seen":1224,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/2010.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.677Z","timestamp":1785126646677,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/2010.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 854\r\nage: 72153\r\nlast-modified: Wed, 30 Jul 2025 12:26:03 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 08:28:16 GMT\r\ncache-control: public, max-age=86400\r\netag: \"8a5e9b87a7c053bb9d65cd8bcbc4b171\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: x3vzdpT83x8a5QFDb21NzE5u_UOy7Yh-Ek4XsQrZ6BCSFDW15dGb3A==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":854,"size_decoded":1425,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"8a5e9b87a7c053bb9d65cd8bcbc4b171","sha1":"2168aa11330c0401cfc5e0974b7ca94093c9d48b","sha256":"0b1d6af59fc52f5e8f88909ae09fdd4ee303dbcd00004c210b8e375759893cb4","sha512":"47a77cb24f98b7862798354660849992762cf9b9df17cdd872793f36467addba4fa78b7751c167297120010aa62e36fcf2b27c5d46f1fdc2270ae62665872e86","ssdeep":"","tlshash":"af011a7a5f05106ffe733a7083576661d745826711081e4880b3907c36b9c405d4bd03","first_seen":"2025-08-01T01:41:04.546261Z","last_seen":"2026-07-27T08:07:37.453003Z","times_seen":1338,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADHUlEQVR4Xu2au47UMBSGR0sNFYiKnmsxcVZbUCJeAIl3AEEBWgkoFrEl1CCBRAEF1WBHM6IHITqKpYDH2G4RSNzHCTOxf1/GnjiJo/Unncbn98l/7Ewmk8lolEgkEn1B2N8yDiWL5qsoMD0cCPuy1k6KC5DTm5i2spxbXMNU94iN+ELo13m8w+GVNDlmIpFItEobF6g2arZCeVUXzGbFGZRIuDSVsZlUkxR3URIPF2dHnXdLaspDGz2E/SyNuu6+S2Ob9FxVkz3G1HDxWYBeGU9OtGKQFC+XzefFZUw3YuvVsf9n4Q1M+TOIXQKCeg5arCPCet7daFxINFTFH5RoNA2PSZ/iUHsQtj3amp3E4RJsahn0+2qNYREy9mg+/xMO94PNcMY+KnmdFsfleC5UVLW9cnVyxGoIcxi+Op22d2yGMIfhq9Npe0c29APTimGdeRzXaWrtvjUfHdiQyTjmTbpBkrFbTk1JzdPTmB4G/OtN3sX7KHEmZ++HdUbwGxw0XMVvlK5ErdHjIoxfX3I6OBptYhrnu9aqdR8wZcdW3MVAxh4oOjFydgenGCFsR5kvBr8T1IE6hEwvGHO10eI8plYW5pS3p6CTYwenGOGLpc4XQ39dQZ0OW84IP51cJqKBVWZs4HzXWgsN/9h2Dhp1Na2DsF9KjSrUX5JRoRp+ixJn1GvBN5QMA/6A1OVsEDV5cRvTw0Q9I/SLgHmTLjpkw/uYVhrSNYfjOk2trR67m/KdYzOMOQxfnU7bOzZDmMPw1em0/KFMr6AhOfdCyeu0OC4Gf6wmgvkoIGxvHg9xuAQN68wThr8gVY0IfwDLH8R2Rsae4ZAX2JSuMd0vySaU83c3cNifUIa6JKjnoMU6Iqhn/gcjL8T/+w8JYfXLFG1cycvab47jcDyIuxRkp2Ihp0/KhvhLDSb4/3Y+C7B4QYLfBUaPa1M+CyDqQn8Ug0LoPbkxOkWJhEvz48lZWKwDlMSF66760EbNRCKRCEKTC1Q1T34DxIUmxwwOodfXMiM2sTk9hWkr9dzPmBoO4gJkxRVMHw7WOXMSiUQiIP8AkShaO1yVGykAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/2.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.693Z","timestamp":1785126646693,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/2.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2456\r\nage: 85978\r\nlast-modified: Tue, 19 Oct 2021 05:33:54 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 04:37:56 GMT\r\ncache-control: max-age=86400\r\netag: \"bdaeb947a2eb31bae0a170559df9013c\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: COz0kVMP2GNl6MovwVMOF7tV6MmhVgPE9dI4NtokaAbWb_wk3EoxvQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2456,"size_decoded":2982,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"bdaeb947a2eb31bae0a170559df9013c","sha1":"7fc8496c9bf51eea98dc9060262f87a792a24a43","sha256":"3225172adc122cc7f8f09fbcc94757061330651a485f17091f41726767f7ea3f","sha512":"710a1ac11f6fdb3915479bf6b9eccf34f4dedd8f30e6bed5275f52d1ec634a754b252e385eb9cd388a5a69c64aaf5818c13cb783090ae68a8696af067cb67341","ssdeep":"","tlshash":"9e512b90d3f3d98a7d930935f8b27a34cfda87da97098523ea834854e279442cd24943","first_seen":"2023-05-02T21:54:45Z","last_seen":"2026-07-27T08:07:37.462124Z","times_seen":19353,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/20947.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.701Z","timestamp":1785126646701,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/20947.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1010\r\nage: 82344\r\nlast-modified: Wed, 30 Aug 2023 05:52:21 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 05:38:44 GMT\r\ncache-control: public, max-age=86400\r\netag: \"0fb70690288109f594a3ee773a489890\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: a3mgqQ1G_nlpxp4bViUOifyNH5cMVv0gBGXwc393I7xif76O94IU1A==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1010,"size_decoded":1582,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"0fb70690288109f594a3ee773a489890","sha1":"0063896e70219950943a66b781db9d3799702fb3","sha256":"8fc174251647f28d51d31f696603bcbae579788915ac49818f93b1ef695f5853","sha512":"4b37ebf118d32fb1193365836acf307907777b736e73795b3cc292a13e148f0476a840fbe02f98067e354c7408a2275b0c18b8c1552c71143a0ad185ec9632bf","ssdeep":"","tlshash":"e811c877e52c93f6dc90c4d0439e3824da355f1adbc3b5d98ac1a424f9d93140488c2b","first_seen":"2024-08-20T10:34:45.05581Z","last_seen":"2026-07-27T08:07:37.381858Z","times_seen":1236,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADuUlEQVR4XtWbPW8TMRiA+xP4Cf0/vaJs7LAXVqZGonv7DwokBTGFARZUKSyoI4KFhaoSLHSADnRhOuykl/geO/6618nlkR4J5X1959e52OfesbOzJvZf1k/2R/VNNaprn3c5Q7bfOvbH9TGLy1Ud65TH7y3svLQ8Xy8YTOp77GhpB6/rXfZj7aiOTNmxDThhv9aCoyMblf0rhprNxSY3afXEy/6Kcn9UP+ZJe+gh+y1CNa4/O07WT1Vf2f9OqEvryjpJz9V9Zh1ZbNU3T7teCdVZfWgddMvcU7fgrCuKPs/2qWatDjxICRv4eQlZnxc2LiFhvISs04najk7YUNqvv1j+/DPmFXDKei0cjUQ9eM/Slxy8s/OlZb0t9A6LDaQNwXxp9c6VdS9gsrS3/9rFvvoy10TnsJ20rHsBEyU9Q6HXf5cx/W+Tt9/s9pKy7hlMkpQFXvy0cy5+tHMu/9g5krL+YgNwNG0XpmFOIzn+ZOdI2Spe/9GRCVKSpx/sHF8+44KeLAbAERTRBXOo/tYJc6QsOgCrYJ5Lzhmx7VItNgBc7kyYu0pSYnlsih8y0EW9hPlgvk8ivTzujdVWOeZxVYohmB+SMN7RG9HLn6z6LFXCeBfFBuDhpN3JR5P557wDPPpotw354E37GKGlNEWxASCxsVgJ47kWGQDGXPt/5sTYtb1LkQHgzM+41gVzQppIrQgiA2By+duOu/IazF1hyOvbdlvGcxQfgNAEtYpm0vSpJ1ATxnMUHwDGKFcLk5i7PRPGchS5EcrplG8gmGsamxfpzezlJUcgSZNnUzvu07Xx0TBPW+AnMBTZDJmkTGqNq64G5nGwGE9VbDcoNTsTTqgmvtUmVrEB4K0q47HyODyWScyqEdIcgBMGUyWMx0r0oLg+Z7tUrXcPmZAqb3dzvyFunvTSyDkiZ56hreIlBkBLGI81BPNzZP0zmJSq6zec86dtH8zNkXUvYGKOLlIvWR/MzZF1LxicyrzyuorzSzuXci4xYW6OqsZd1t2CDXINoSc3/Tjs/Lv/r8gNPH6urNeiGsu9/8s7txwkbngWnkW+V2w17GguPE5XWacXNpbQ9/tuKPWqDOsLUgncHfbI5YPQFCS2yhv3Rcf/f6QOsr2vyo46virboK6EK8fBe63uM+voRLVdV4LMN08q4SfJJZw98S1J1e/VIW+2z8Fx8o3K/q2FdbxXHHQc8f5vafQOy+pYYfXOlf3oBeyotDxfb1E/j+fsfAfXN7mVQhUxjHkMp3P0LTjbl+I/FOSziVJW7ugAAAAASUVORK5CYII="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.289Z","timestamp":1785126647289,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 235736\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 13:04:24 GMT\r\nexpires: Sat, 24 Jul 2027 13:04:24 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 05:09:16 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 228383\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":942843,"size_decoded":236650,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65533), with no line terminators","md5":"6f2dc696d3e2c5e8b0536728ac5a3aea","sha1":"8da6a7915f0b3ff607db13862fc417574d8d4999","sha256":"4036991c2199a96276eabd866d75631508768ad958639f2ef3d985061bddef47","sha512":"481bcb7979552bb2b61e9faaf2cc6abdeeb36c7e5e4e0a483ba1e93c62bea4c29bd94f525ec183b9a9bb4518f02e3e9748be080d771f801fa3cc7d4e73a09116","ssdeep":"12288:Rhrh0EencTyXGld16WDVcIm4zDSG8UvCeoBJjlXc7WPz6/wWXqkZTNvl6hkTeubf:R41jofemc+tD70LCSn4AqVnYU1YtsxDT","tlshash":"a2159ff0b25271b4d147b926fab7c003b57e4903e2081879f0a7ae9c55fca942e77729","first_seen":"2026-07-24T13:38:07.888738Z","last_seen":"2026-07-27T08:11:45.687103Z","times_seen":432,"resource_available":true,"data":"InVzZSBzdHJpY3QiO19GX2luc3RhbGxDc3MoIjpyb290ey0tdDdmNGYyYzZkNTQ4MzZjZTA6aW5pdGlhbDstLXQ3ZDhiOGU1ZWUyOTFhZWMwOmluaXRpYWw7LS10NDcyNmM2OGVmNmQ3YjA4Zjppbml0aWFsOy0tdGYwYTBkMTE1NDgyNzg0N2Y6aW5pdGlhbDstLXQzZTQxZDdiMTdiMTg3ZjY5OmluaXRpYWw7LS10ZmY2NTk5MzM4NGJiNDU2MDppbml0aWFsOy0tdGUyODY3YjEzZDc3MWQwNTU6aW5pdGlhbDstLXQ5MzNkNzkyMmYzMTU4ZGM1OmluaXRpYWw7LS10MjY0ZTJjOWNiODc4OTFmOTppbml0aWFsOy0tdDIwNmYzZmEyZTAxYWYyMmQ6aW5pdGlhbDstLXQzNGY0NmYwZjJjMTNkMzI4OmluaXRpYWw7LS10ODU0Yzc5MzM4ZDhjYThhNzppbml0aWFsOy0tdDIwNDgwNzE3ZGU4MGY1NTU6aW5pdGlhbDstLXQyZDgwN2JiNzllNzU2MDZkOmluaXRpYWw7LS10NjE3ZGI3NzZhZjBkZTE5Njppbml0aWFsOy0tdGI2MjgxMTdmYzE2NGFkODc6aW5pdGlhbDstLXRkNTQ1ZGYwNGUyYzY1OWQ3OmluaXRpYWw7LS10NTM5OTFkNTk5YjE0ODhmNTppbml0aWFsOy0tdGE4ODlkZmRhOTYwNWEzNTg6aW5pdGlhbDstLXQ1OTc4ZGE4ZDU4NGI4ZmU5OmluaXRpYWw7LS10MTI0YjdkYWZlOWJjMzY2ZDppbml0aWFsOy0tdGRiZTUwZDI3ZDUxZjUwOTM6aW5pdGlhbDstLXRhNTY0ZDgyMTJiY2NiMTZhOmluaXRpYWw7LS10OTlmNzc0Njg0Y2JiOTcwMzppbml0aWFsOy0tdDRlNmRmOWIyYjZiOTdlMDA6aW5pdGlhbDstLXRiOGIzMWFjNTYyZmJlOWI1OmluaXRpYWw7LS10NTg4NDY3MjAwNGQ1NjEyMDppbml0aWFsOy0tdGVmNzBjYTI0NTQ0NWI1MmI6aW5pdGlhbDstLXQ0ZjA5MjJlNWEzZDBjMjBmOmluaXRpYWw7LS10N2RmYTZmODRjOTM0NmVkZjppbml0aWFsOy0tdGVjYmRmOTI0YjYzYjI3ZmM6aW5pdGlhbDstLXQxNDA1ZTcwYTM5Mjc2MjkzOmluaXRpYWw7LS10YWQ4NDQzZmFlZDY2YzExMTppbml0aWFsOy0tdGU2ZDJiNDI4ZGU2ODU1NGE6aW5pdGlhbDstLXRjOTgwYzU0NzgxMjRjOGM3OmluaXRpYWw7LS10OTY1NjQ0ZWNkYmU0YjdiODppbml0aWFsOy0tdGIxNGExMGMzYjQzYTE1YTM6aW5pdGlhbDstLXRiMTNmZjg3OTc4MjllNzllOmluaXRpYWw7LS10ZTU2NjhlNjExMWFiYTBlZDppbml0aWFsOy0tdGE3ZDYyOGZhY2ZlODRkMTg6aW5pdGlhbDstLXRiZTQyMjY5NTM0NjU1ZTY3OmluaXRpYWw7LS10YWI4MDU5MjM2MDYzY2FkYjppbml0aWFsOy0tdDczNWU0MzVhOGI3YWQ2N2M6aW5pdGlhbDstLXQyMWFmMDhmZGJmNmExNDA2OmluaXRpYWw7LS10YzYwNDExM2QwOWZlZTA1ZDppbml0aWFsOy0tdDA4YTdjNmMxNzZjYmM1YzI6aW5pdGlhbDstLXQ4Y2RjOTg0NmE3NmNhZjFmOmluaXRpYWw7LS10ZTFiNjRlNjk3MTA0MDM5Njppbml0aWFsOy0tdDQxNmU1OTMxZmM0NjQ1ODk6aW5pdGlhbDstLXRiN2Q3NGJiMzI5MWM5NTFkOmluaXRpYWw7LS10ZjNmYzg1NWFmMjI4NWY1Zjppbml0aWFsOy0tdDBhMTI0OWY3YzllODJiNWU6aW5pdGlhbDstLXQwMmMwYTJjODY4YzE0Y2U4OmluaXRpYWw7LS10ZDg1NjJjZGMyMDNiYzY4Mzppbml0aWFsOy0tdDUzZGRhOTEyNWU4ZDEzMjQ6aW5pdGlhbDstLXQ1NDRlMzE3MTRmNjNkNTNjOmluaXRpYWw7LS10ODdlYWJmMTEzYTE1YWM5Njppbml0aWFsOy0tdDg1OGI4MDlmODA0NGU5NjI6aW5pdGlhbDstLXQwZjU5MjkxY2U1NTA0NTQzOmluaXRpYWw7LS10ZmFhZTk2NjkyY2MxODJlNDppbml0aWFsOy0tdDUxOGU5MjVmNjFiZGNiOTE6aW5pdGlhbDstLXRiOTI3ZjVjMDE0OTAwNGM2OmluaXRpYWw7LS10ODMyZjIyY2U2NjE4ZTk5ZTppbml0aWFsOy0tdDQ1YjJhMzgzMTQ5MjQzNTc6aW5pdGlhbDstLXQ2OTMxYWExODI2YjM3M2IyOmluaXRpYWw7LS10ZWQ0MjM2NTM2ODk5ZTRiMzppbml0aWFsOy0tdGRjOGFmNjc1MGYwZGFkMGQ6aW5pdGlhbDstLXQzNDEwYzkxNjQ5ZTVlYjhhOmluaXRpYWw7LS10NGFlYWE4NTdkZThhNzg2Yjppbml0aWFsOy0tdDI5NmM3ZjgxZGQwOWE5YzM6aW5pdGlhbDstLXRmYTM0NzVjNTA4ZjVkZmVmOmluaXRpYWw7LS10OWJjMGI3NDAyNDJkYTAxNzppbml0aWFsOy0tdDQ0MWEwZTQ0ZTQ5NTM4MWE6aW5pdGlhbDstLXRkZTQxMzM4ZmMyYmQ0YmE1OmluaXRpYWw7LS10NGQ3Nzc2YzI4ZGIyMTEyMjppbml0aWFsOy0tdDdlMzRkNWJhYTRlYTYyNzc6aW5pdGlhbDstLXRjNGIyNjA0MmQ0Y2IxNDFmOmluaXRpYWw7LS10NTIwOGZkMTc3YTc4OGNmYTppbml0aWFsOy0tdGZmYzJmZDNhNjQ0ZjYyNzU6aW5pdGlhbDstLXQ2MjE2MTg2YzI4YjM4MzRiOmluaXRpYWw7LS10NGE2ZGExOWUxNmJmMjIxYTppbml0aWFsOy0tdGQ5YzE5ZjRmOGNlY2Q1NmU6aW5pdGlhbDstLXQzZjNiZGI0MTQwZDNlYWQ3OmluaXRpYWw7LS10OTA0YTg4YzYyM2NhMjdhYjppbml0aWFsOy0tdDJjM2JiZmY2YzE1YTNlYjI6aW5pdGlhbDstLXQwY2NkMWFjZTAwMGQ1ZTkzOmluaXRpYWw7LS10Yzg3ZjZhN2YwNWU2NWZjNDppbml0aWFsOy0tdGMwNGJhM2U3MzU2MTk1M2M6aW5pdGlhbDstLXQ3YzQ5NjVjMTFmODUzN2MwOmluaXRpYWw7LS10NDMyZmJkYmQ3ZjJmM2Y3MTppbml0aWFsOy0tdGFmMWJkZDk2MTQyM2MxNWY6aW5pdGlhbDstLXQ5ZDdiZGNhZWZjOTc1ZDQ0OmluaXRpYWw7LS10NGZiMGY2N2IyNTFlMWE0Mjppbml0aWFsOy0tdGEwOGUwMzY0MTBjMTQ1Mzg6aW5pdGlhbDstLXQ3ZjliN2UxNjAzZTIwYjk0OmluaXRpYWx9LmRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxNnB4O21hcmdpbjowIGF1dG87b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2ZvbnQtc2l6ZToxLjNyZW07Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9LmRpYWxvZy5tb2Rlcm4tZGlhbG9ne2JveC1zaGFkb3c6MCAwIDI0cHggMTJweCByZ2JhKDAsMCwwLDAuMjUpfS5kaWFsb2cucm91bmRlZC1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czoxMnB4fS5kaWFsb2cubW9kZXJuLWRpYWxvZy1sYXlvdXR7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6MjRweH0uZGlhbG9nLWJvZHl7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC1oZWlnaHQ6MzAwcHg7bWF4LWhlaWdodDoxMDB2aH0uZGlhbG9nLnNjcm9sbGFibGUgLmRpYWxvZy1ib2R5e292ZXJmbG93LXk6dmlzaWJsZTtvdmVyZmxvdy14OnZpc2libGU7bWF4LWhlaWdodDp1bnNldH0uZGlhbG9nLWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo0fS5kaWFsb2ctaGVhZGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZGlhbG9nLWJ1dHRvbnMsLmRpYWxvZy1oZWFkZXJ7ZmxleC1zaHJpbms6MH0uZGlhbG9nLWJ1dHRvbnN7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLXRvcDoxMnB4fS5kaWFsb2ctYnV0dG9ucz4qe21hcmdpbi1sZWZ0OjhweH0uZGlhbG9nLWJ1dHRvbnM+OmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LmRpYWxvZy1mbGV4LWJ1dHRvbnstbW96LWJveC1mbGV4OjE7ZmxleDoxfS5kaWFsb2ctZmxleC1idXR0b24gLmJ1dHRvbi13aXRoLWljb24uY29tcGFjdHttYXJnaW46MH0uZGlhbG9nLWJvZHkgYSwuZGlhbG9nLWhlYWRlciBhe2NvbG9yOiMwNjVmZDR9LmRpYWxvZy1ib2R5IHl0bS1tZW51LWl0ZW0gYXtjb2xvcjpjdXJyZW50Y29sb3J9QG1lZGlhIChtaW4td2lkdGg6MzMwcHgpIGFuZCAobWluLWhlaWdodDozMzBweCl7LmRpYWxvZ3ttaW4td2lkdGg6MjUwcHg7bWF4LXdpZHRoOjM1NnB4fS5kaWFsb2ctY29udGFpbmVye21hcmdpbjowIDQwcHg7cGFkZGluZzowO3BhZGRpbmc6MCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KX19LmRpYWxvZy1mdWxsc2NyZWVue21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjFweH0uZGlhbG9nLWZ1bGxzY3JlZW4+LmRpYWxvZy1ib2R5e2hlaWdodDoxMDAlfS5kaWFsb2cubW9kZXJuLWRpYWxvZy1sYXlvdXQuZGlhbG9nLWZ1bGxzY3JlZW57Ym9yZGVyLXJhZGl1czowfS5kaWFsb2ctY29udGFpbmVyLmRpYWxvZy1mdWxsc2NyZWVue21hcmdpbjowfWMzLXRvYXN0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo1O2xlZnQ6MDtyaWdodDowO2JvdHRvbTowOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjE0cHggMjRweDtmb250LXNpemU6MS40cmVtO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMGYwZjBmO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTttYXJnaW4tYm90dG9tOi0xMDAlfWMzLXRvYXN0Lmh1Zy10b2FzdHttYXgtd2lkdGg6MzQ0cHh9YzMtdG9hc3QuaW52ZXJzZS10aGVtZXtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAzMDMwM31jMy10b2FzdC5pbnZlcnNlLXRoZW1lIC5idXR0b24td2l0aC1pY29ue2NvbG9yOiMwNjVmZDR9W2hhcy1zYWZlLWFyZWEtaW4tbWF4PXRydWVdIGMzLXRvYXN0e3BhZGRpbmc6MTRweCAyNHB4O3BhZGRpbmc6MTRweCBtYXgoMjRweCxlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSkgMTRweCBtYXgoMjRweCxlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKX1baGFzLXBpdm90LWJhcj10cnVlXSBjMy10b2FzdHstLXNhZmUtYXJlYS1pbnNldC10b3A6ZW52KHNhZmUtYXJlYS1pbnNldC10b3ApOy0tc2FmZS1hcmVhLWluc2V0LWJvdHRvbTplbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7Ym90dG9tOjQ4cHg7Ym90dG9tOmNhbGMoNDhweCArIHZhcigtLXNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTttYXJnaW4tYm90dG9tOi0xMDAlO21hcmdpbi1ib3R0b206Y2FsYygtMTAwJSArIHZhcigtLXNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTt6LWluZGV4OjJ9W21vZGFsLW9wZW4tYm9keV0gYzMtdG9hc3QsW3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gYzMtdG9hc3R7Ym90dG9tOjhweDttYXJnaW4tYm90dG9tOi0xMDAlO3otaW5kZXg6NX1jMy10b2FzdFtkaXI9b3V0XXt0cmFuc2l0aW9uOm1hcmdpbiAxOTVtcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfWMzLXRvYXN0W2Rpcj1pbl17dHJhbnNpdGlvbjptYXJnaW4gMjI1bXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTttYXJnaW4tYm90dG9tOjB9QGtleWZyYW1lcyBzcGlubmVyezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fS5zcGlubmVyV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5zcGlubmVye2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjoxMnB4IGF1dG87d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkICNlZWU7Ym9yZGVyLXRvcC1jb2xvcjojNjY2O2FuaW1hdGlvbjpzcGlubmVyIC44cyBsaW5lYXIgaW5maW5pdGV9LnNwaW5uZXI+LmhpZGRlbntkaXNwbGF5Om5vbmV9LnNwaW5uZXI6bm90KFtoaWRkZW5dKXtjb2xvcjojMzMzO2ZvbnQtc2l6ZToxLjZyZW19aHRtbHtjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmb250LXNpemU6MTBweDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZn1ib2R5e21hcmdpbjowO3BhZGRpbmc6MDtwYWRkaW5nOjAgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7Zm9udC1zaXplOjEuMnJlbTtvdmVyZmxvdy14OmhpZGRlbn1baGlkZGVuXVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbn15dG0tYXBwPi5zcGlubmVye21hcmdpbi10b3A6MTAwcHh9eXRtLWhlYWRlcntkaXNwbGF5OmJsb2NrfWhlYWRlcntoZWlnaHQ6NDhweH0ucGxheWVyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDhweDtyaWdodDowO3JpZ2h0OmVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO2xlZnQ6MDtsZWZ0OmVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6Mn1baGFzLXBsYXllci1jdXN0b20tY29udHJvbD10cnVlXSAucGxheWVyLWNvbnRhaW5lcntvdmVyZmxvdzp2aXNpYmxlIWltcG9ydGFudH0jcGxheWVyLmlubGluZS1wbGF5ZXItaGlkZGVuLC5pbmxpbmUtcGxheWVyLWhpZGRlbntvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0ucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUseXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3BhZGRpbmctYm90dG9tOjU2LjI1JTtvdmVyZmxvdzpoaWRkZW59LnBsYXllci1jb250YWluZXIgI3BsYXllci5wbGF5ZXItc2l6ZSx5dG0td2F0Y2ggLnBsYXllci1zaXple2JhY2tncm91bmQtY29sb3I6IzAwMH0ucGxheWVyLWNpbmVtYXRpY3N7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6IzAwMH0ucGxheWVyLWNpbmVtYXRpY3N+I3BsYXllci5wbGF5ZXItc2l6ZSwucGxheWVyLWNpbmVtYXRpY3N+LnBsYXllci1zaXple2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnBhZ2Utc2hvcnRzIC5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItc2l6ZSwucGFnZS1zaG9ydHMgeXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTowfS5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItYXBpe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ucGxheWVyLWFwaVtoaWRkZW5dLC5wbGF5ZXItYXBpW2xvYWRpbmc9dHJ1ZV0sLnBsYXllci1hcGlbcGxheWFibGU9ZmFsc2Vde2Rpc3BsYXk6bm9uZX0jcGxheWVyLmlubGluZS1vbi10aHVtYm5haWx7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowfS5wbGF5ZXItY29udGFpbmVyIC5odG1sNS12aWRlby1wbGF5ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9eXRtLWFwcHtkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6aGlkZGVufVtoYXMtc29mdC1iYXI9dHJ1ZV0geXRtLWFwcHtwYWRkaW5nLWJvdHRvbTozMHB4fVtoYXMtcGl2b3QtYmFyPXRydWVdIHl0bS1hcHB7cGFkZGluZy1ib3R0b206NDhweH15dG0taGVhZGVyLmlzLWF1dG9tb3RpdmUseXRtLWhlYWRlci5zdGlja3ktcGxheWVyLHl0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVyLmlzLWF1dG9tb3RpdmUseXRtLW1vYmlsZS10b3BiYXItcmVuZGVyZXIuc2hvcnRzLXRvcGJhcix5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6NDtwYWRkaW5nOjA7cGFkZGluZzowIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpIDAgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KX15dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVyLm91dHt0b3A6LTQ4cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMTk1bXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbH15dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVyLmlue3RvcDowO3RyYW5zaXRpb246dHJhbnNmb3JtIDIyNW1zIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGx9LnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntwb3NpdGlvbjpmaXhlZDt0b3A6NDhweDtyaWdodDowO3JpZ2h0OmVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO2xlZnQ6MDtsZWZ0OmVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6Mn0ucGxheWVyLWNvbnRhaW5lci5oZWFkZXItaW4tcGxheWVyLC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXIuaGVhZGVyLWluLXBsYXllcnt0b3A6MH15dG0tYXBwLmlzLWF1dG9tb3RpdmUseXRtLWFwcC5zdGlja3ktcGxheWVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZy10b3A6NDhweH15dG0tYXBwLmlzLWF1dG9tb3RpdmUuaGVhZGVyLWluLXBsYXllcix5dG0tYXBwLnN0aWNreS1wbGF5ZXIuaGVhZGVyLWluLXBsYXllcntwYWRkaW5nLXRvcDowfUBtZWRpYSAobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Ym9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjI1NnB4fWJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMjU2cHgpfWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIsYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjI1NnB4fWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDI1NnB4KX0ubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6MzM2cHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcnt3aWR0aDpjYWxjKDEwMCUgLSAzMzZweCl9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5Om5vdCgucGFnZS1zaG9ydHMpIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6MzM2cHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMzM2cHgpfS5td2ViLWFsbC1sYW5kc2NhcGUtdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgLnBsYXllci1jb250YWluZXJ7Ym90dG9tOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1Ac3VwcG9ydHMgKGFzcGVjdC1yYXRpbzoxNi85KXsubXdlYi1sYW5kc2NhcGUtZnVsbC1zaXplLXBsYXllciAucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUsLm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgeXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTp1bnNldDthc3BlY3QtcmF0aW86MTYvOX19Lm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIHl0bS13YXRjaCAucGxheWVyLXNpemV7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7bWF4LWhlaWdodDpjYWxjKDEwMHN2aCAtIDQ4cHgpfX1AbWVkaWEgKG1pbi1hc3BlY3QtcmF0aW86MjEvMTApIGFuZCAobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgLnBsYXllci1jb250YWluZXJ7Ym90dG9tOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn19QG1lZGlhIChtaW4tYXNwZWN0LXJhdGlvOjE2LzkpIGFuZCAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntyaWdodDozMzZweH0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMzM2cHgpfS5td2ViLXBob25lLW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntyaWdodDozMzZweH0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDMzNnB4KX0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IC5wbGF5ZXItY29udGFpbmVye2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QHN1cHBvcnRzIChhc3BlY3QtcmF0aW86MTYvOSl7Lm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyAucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUsLm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyB5dG0td2F0Y2ggLnBsYXllci1zaXple3BhZGRpbmctYm90dG9tOnVuc2V0O2hlaWdodDphdXRvO2FzcGVjdC1yYXRpbzoxNi85fX19QG1lZGlhIChtaW4td2lkdGg6MTI4MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Ym9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjUwMHB4fWJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNTAwcHgpfWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIsYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjUwMHB4fWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDUwMHB4KX0ubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6NTAwcHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcnt3aWR0aDpjYWxjKDEwMCUgLSA1MDBweCl9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5Om5vdCgucGFnZS1zaG9ydHMpIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6NTAwcHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNTAwcHgpfX1AbWVkaWEgKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpe3l0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVyLnNob3J0cy10b3BiYXJ7cmlnaHQ6NzJweH0ucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUseXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTpjYWxjKDU2LjI1JSAtIDk2cHgpfS5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItc2l6ZSwubXdlYi1sYW5kc2NhcGUtZnVsbC1zaXplLXBsYXllciB5dG0td2F0Y2ggLnBsYXllci1zaXple2hlaWdodDpjYWxjKDU2LjI1dncgLSA5NnB4KTtwYWRkaW5nLWJvdHRvbTp1bnNldDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4KTttYXgtaGVpZ2h0OmNhbGMoMTAwc3ZoIC0gNDhweCl9fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7LnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLHl0bS13YXRjaCAucGxheWVyLXNpemV7cGFkZGluZy1ib3R0b206NTYuMjUlfX1AbWVkaWEgKG1heC13aWR0aDozMjBweCkgYW5kIChtYXgtaGVpZ2h0OjI0MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLHl0bS13YXRjaCAucGxheWVyLXNpemV7cGFkZGluZy1ib3R0b206NTYuMjUlfX1AbWVkaWEgKG1pbi13aWR0aDo1NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1pbi13aWR0aDo5MzFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpe3l0bS1hcHB7cGFkZGluZy10b3A6NDhweH15dG0taGVhZGVyLHl0bS1oZWFkZXItYmFyLHl0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6NH19LmNvbnRlbnQtZXJyb3J7Zm9udC1zaXplOjEuNHJlbTtwYWRkaW5nOjEycHg7dGV4dC1hbGlnbjpjZW50ZXJ9I3BsYXllci10aHVtYm5haWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvYmplY3QtZml0OmNvdmVyO21pbi1oZWlnaHQ6MH0jcGxheWVyLWNvbnRhaW5lci1pZFtwbGF5YWJsZT10cnVlXSAjcGxheWVyLXRodW1ibmFpbC1vdmVybGF5e3Zpc2liaWxpdHk6aGlkZGVufWJvZHkucGFnZS1zaG9ydHMsaHRtbFtwYWdlLXNob3J0c117b3ZlcnNjcm9sbC1iZWhhdmlvci15Om5vbmV9Ym9keS5sb2FkaW5nLnBhZ2Utc2hvcnRzICNoZWFkZXIsYm9keS5sb2FkaW5nLnBhZ2Utc2hvcnRzIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9Ym9keS5wYWdlLXNob3J0cyAjcGxheWVyLWNvbnRhaW5lci1pZCxib2R5LnBhZ2Utc2hvcnRzIC5wbGF5ZXItY29udGFpbmVyICNwbGF5ZXJ7aGVpZ2h0OjEwMCU7dG9wOjB9KnstbXMtZmxleDowIDEgYXV0b31idXR0b257cGFkZGluZzowO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtmb250OmluaGVyaXQ7dGV4dC10cmFuc2Zvcm06aW5oZXJpdDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9aHRtbHt3b3JkLXdyYXA6YnJlYWstd29yZDtjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5W2Rpc2FibGUtdGFwLWhpZ2hsaWdodD10cnVlXSBbcm9sZT1idXR0b25dLGJvZHlbZGlzYWJsZS10YXAtaGlnaGxpZ2h0PXRydWVdIGEsYm9keVtkaXNhYmxlLXRhcC1oaWdobGlnaHQ9dHJ1ZV0gYnV0dG9uey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1odG1sW2Rhcmtlci1kYXJrLXRoZW1lXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9aHRtbC53YXRjaC1zY3JvbGx7c2Nyb2xsLXBhZGRpbmctdG9wOjQ4cHh9aHRtbC53YXRjaC1zY3JvbGwuc3RpY2t5LXBsYXllcntzY3JvbGwtcGFkZGluZy10b3A6Y2FsYyg0OHB4ICsgNTYuMjV2dyl9aW5wdXR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nLWJvdHRvbTo0cHg7b3V0bGluZTpub25lOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7bWFyZ2luLWJvdHRvbToxcHg7Zm9udDppbmhlcml0O2NvbG9yOiMwMzAzMDM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzczNzM3Mzt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfWlucHV0OmZvY3Vze21hcmdpbi1ib3R0b206MDtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMzAzMDN9aW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9aW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfXRleHRhcmVhe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZy1ib3R0b206NHB4O291dGxpbmU6bm9uZTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO21hcmdpbi1ib3R0b206MXB4O2ZvbnQ6aW5oZXJpdDtjb2xvcjojMDMwMzAzOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTttaW4taGVpZ2h0OjguNHJlbTt3aWR0aDoxMDAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO3BhZGRpbmc6OHB4fXRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojNjA2MDYwO29wYWNpdHk6MX1mb3Jte21hcmdpbjowfWF7Y29sb3I6Y3VycmVudENvbG9yO3RleHQtZGVjb3JhdGlvbjpub25lfWgxe2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7bWFyZ2luOjAgMCAzcHg7bWFyZ2luLWJvdHRvbTowfWgye2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7bWFyZ2luOjAgMCAzcHg7Zm9udC1zaXplOjEuOHJlbTttYXJnaW4tYm90dG9tOjB9aDN7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7bWF4LWhlaWdodDoyLjVlbTstd2Via2l0LWxpbmUtY2xhbXA6MjtvdmVyZmxvdzpoaWRkZW47bGluZS1oZWlnaHQ6MS4yNTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MCAwIDNweDtmb250LXNpemU6MS40cmVtO21hcmdpbi1ib3R0b206MH1oNHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDttYXgtaGVpZ2h0OjIuNWVtOy13ZWJraXQtbGluZS1jbGFtcDoyO292ZXJmbG93OmhpZGRlbjtsaW5lLWhlaWdodDoxLjI1O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowIDAgM3B4O2ZvbnQtc2l6ZToxLjNyZW07bWFyZ2luLWJvdHRvbTowfWltZ3ttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4O2ZpbHRlcjpub25lfWltZzpub3QoW3NyY10pe3Zpc2liaWxpdHk6aGlkZGVufTpmb2N1c3tvdXRsaW5lOm5vbmV9cHttYXJnaW46MH0uaXRlbXttYXJnaW4tdG9wOjEycHg7ZGlzcGxheTpibG9ja30uaXRlbTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MTJweH1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5pdGVte21hcmdpbi10b3A6OHB4fX0uaW1hZ2Utb3ZlcmxheS10ZXh0e3RleHQtc2hhZG93OjFweCAxcHggaHNsYSgwLDAlLDYuNyUsLjIpLC0xcHggMXB4IGhzbGEoMCwwJSw2LjclLC4yKSwtMXB4IC0xcHggaHNsYSgwLDAlLDYuNyUsLjIpLDFweCAtMXB4IGhzbGEoMCwwJSw2LjclLC4yKX0jcGxheWVyLWNvbnRyb2wtY29udGFpbmVyey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX1bZGlyPXJ0bF0gI3BsYXllci1zaG9ydHMtY29udGFpbmVye2RpcmVjdGlvbjpydGx9W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAjcGxheWVyLWNvbnRyb2wtY29udGFpbmVyLFtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIgI3BsYXllcixbc2hvcnRzLXBsYXllcj10cnVlXSAjcGxheWVyLXNob3J0cy1jb250YWluZXIsW3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gLnBsYXllci1jb250YWluZXIgI3BsYXllcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwYWRkaW5nLWJvdHRvbTowfS5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyOi13ZWJraXQtZnVsbC1zY3JlZW4gLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyOmZ1bGxzY3JlZW4gLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIFtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXple2hlaWdodDoxMDAlO21heC1oZWlnaHQ6MTAwJTthc3BlY3QtcmF0aW86YXV0b31bZmF1eC1mdWxsc2NyZWVuPXRydWVdW2Z1bGxzY3JlZW4tcmVqZWN0ZWQ9dHJ1ZV0gI2FwcHtkaXNwbGF5Om5vbmV9W3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gLnBsYXllci1jb250YWluZXIgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfVtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIsW2ZhdXgtZnVsbHNjcmVlbj10cnVlXSB5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlcixbc2hvcnRzLXBsYXllcj10cnVlXSAucGxheWVyLWNvbnRhaW5lcixbc2hvcnRzLXBsYXllcj10cnVlXSB5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlcjpub3QoLnNob3J0cy10b3BiYXIpe292ZXJmbG93OnZpc2libGU7ei1pbmRleDo0fVtzaG9ydHMtcGxheWVyPXRydWVdIC5wbGF5ZXItY29udGFpbmVyIC55dHAtdW5tdXRlLnl0cC1wb3B1cHt0b3A6NzVweDtsZWZ0OjA7bGVmdDplbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpfVtyb2xlPWJ1dHRvbl0sYnV0dG9uLGlucHV0W3R5cGU9Y2hlY2tib3hdLHNlbGVjdHtjdXJzb3I6cG9pbnRlcn15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl17d2lkdGg6dmFyKC0teXRkLXNob3J0cy1wbGF5ZXItd2lkdGgpO2hlaWdodDp2YXIoLS15dGQtc2hvcnRzLXBsYXllci1oZWlnaHQpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl0gLnJlZWwtcGxheWVyLW92ZXJsYXktbWV0YWRhdGF7bWFyZ2luLXJpZ2h0OnZhcigtLWFjdGlvbi1idXR0b24tZnVsbC13aWR0aC1uZWdhdGl2ZSk7cGFkZGluZy1yaWdodDp2YXIoLS1hY3Rpb24tYnV0dG9uLWZ1bGwtd2lkdGgpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1hY3Rpb24tYmFyXXt3aWR0aDpjYWxjKHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSArIDcycHgpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1hY3Rpb24tYmFyXSAucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjB9eXRtLXJlZWwtcGxheWVyLW92ZXJsYXktcmVuZGVyZXJbaXMtd2ViXVtleHRyYWN0LWFjdGlvbi1iYXJdIC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnN7bWFyZ2luLWJvdHRvbToxNnB4fXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1vdmVybGF5XXt3aWR0aDoxMDAlfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1vdmVybGF5XSAucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXt3aWR0aDpjYWxjKCgxMDAlIC0gbWF4KHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSwgMzE1cHgpKS8yKTttYXJnaW4tcmlnaHQ6bWF4KHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSwzMTVweCk7cGFkZGluZy1yaWdodDowO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtmaWx0ZXI6dW5zZXQ7bWluLXdpZHRoOjM2MHB4O21heC13aWR0aDo0ODBweDtwYWRkaW5nLWxlZnQ6MTZweH15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlcltpcy13ZWJdW2V4dHJhY3Qtb3ZlcmxheV0gLnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9uc3stbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjF9eXRtLXJlZWwtcGxheWVyLW92ZXJsYXktcmVuZGVyZXIgYnV0dG9uOm5vdChbYXJpYS1wcmVzc2VkPXRydWVdKSBjMy1pY29ue2ZpbHRlcjpkcm9wLXNoYWRvdygwIDFweCA2cHggcmdiYSgwLDAsMCwuNCkpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyIC55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbExhYmVse3RleHQtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLDAuOCl9LnJlZWwtcGxheWVyLW92ZXJsYXktbWFpbi1jb250ZW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZW5kOy1tb3otYm94LWFsaWduOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtZmxleDoxO2ZsZXg6MSAxIDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7LW1vei1ib3gtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21pbi13aWR0aDowO21hcmdpbjowIDAgMTZweCAxNnB4fXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2RhdGEtaGFzLWluZm8tcGFuZWw9dHJ1ZV0rLlByb2dyZXNzQmFyU2hvd2luZ3twYWRkaW5nLXRvcDoxNnB4fS5yZWVsLXBsYXllci1vdmVybGF5LW1ldGFkYXRhIHl0LW1ldGFkYXRhLWJhZGdlLXJlbmRlcmVye2hlaWdodDoyNHB4O3BhZGRpbmc6M3B4IDRweCAzcHggMH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25ze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjowIDRweCAxNnB4IDRweDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnJlZWwtcGxheWVyLW92ZXJsYXktdG9wLWJhcntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctdG9wOjJweH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIC5idXR0b24td2l0aC1pY29ue21hcmdpbjowIWltcG9ydGFudDttaW4td2lkdGg6MDt0ZXh0LXRyYW5zZm9ybTpub25lfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLmJ1dHRvbi13aXRoLWljb24gLmJ1dHRvbi1yZW5kZXJlci10ZXh0e21hcmdpbi10b3A6N3B4O21heC13aWR0aDo2NHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1idXR0b24tcmVuZGVyZXJ7bWF4LXdpZHRoOjY0cHh9LnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyB5dG0tYm90dG9tLXNoZWV0LXJlbmRlcmVyLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLW1lbnUtcmVuZGVyZXJ7bWFyZ2luLXRvcDo0cHg7ZGlzcGxheTpibG9jazstbW96LWJveC1mbGV4OjE7ZmxleDoxO3BhZGRpbmctcmlnaHQ6NHB4O3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHh9LnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyBwaXZvdC1idXR0b24tdmlldy1tb2RlbCwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1idXR0b24tcmVuZGVyZXIsLnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyB5dG0tdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlcntkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHg7bWFyZ2luOjB9QG1lZGlhIChtYXgtd2lkdGg6OTMwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4KX0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHBpdm90LWJ1dHRvbi12aWV3LW1vZGVsLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWJ1dHRvbi1yZW5kZXJlciwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS10b2dnbGUtYnV0dG9uLXJlbmRlcmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDouM2VtfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWJvdHRvbS1zaGVldC1yZW5kZXJlciwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1tZW51LXJlbmRlcmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDowfX0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1tZW51LXJlbmRlcmVyIC5pY29uLWJ1dHRvbntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgYnV0dG9uPi5idXR0b24td2l0aC1pY29uLWlubmVyey1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlciB5dG0tcHJvZmlsZS1pY29ue2JvcmRlcjoxcHggc29saWQgI2ZmZn1AbWVkaWEgKG1heC1oZWlnaHQ6NDExcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIC5idXR0b24td2l0aC1pY29uLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UtcmVuZGVyZXJ7bWluLWhlaWdodDo0MHB4fS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLmJ1dHRvbi13aXRoLWljb24gLmJ1dHRvbi1yZW5kZXJlci10ZXh0LC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLnl0QXR0cmlidXRlZFN0cmluZ0hvc3R7ZGlzcGxheTpub25lfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLW1lbnUtcmVuZGVyZXIgLmljb24tYnV0dG9ue2hlaWdodDozMnB4fX0ubG9nby1pbi1wbGF5ZXIsLm1vYmlsZS10b3BiYXItbG9nb3tjb2xvcjojZjAzO3BhZGRpbmc6MCAxMnB4O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luLWxlZnQ6LTFweH0ubG9nby1pbi1wbGF5ZXIuZnVsbC1sb2dvLC5tb2JpbGUtdG9wYmFyLWxvZ28uZnVsbC1sb2dve3dpZHRoOjkzcHg7aGVpZ2h0OjIwcHg7Y29sb3I6IzAwMDttYXJnaW4tbGVmdDowfS5sb2dvLWluLXBsYXllci5zaG9ydHMtbG9nbywubW9iaWxlLXRvcGJhci1sb2dvLnNob3J0cy1sb2dve3dpZHRoOjczcHg7aGVpZ2h0OjI1cHg7Y29sb3I6IzAwMDttYXJnaW4tbGVmdDowfS5sb2dvLWluLXBsYXllci5mdWxsLWxvZ28tcmVkLC5tb2JpbGUtdG9wYmFyLWxvZ28uZnVsbC1sb2dvLXJlZHt3aWR0aDoxMDFweH0ubG9nby1pbi1wbGF5ZXItZW5kcG9pbnQsLm1vYmlsZS10b3BiYXItaGVhZGVyLWVuZHBvaW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHg7dGV4dC1hbGlnbjpsZWZ0fS5sb2dvLWluLXBsYXllci5mdWxsLWxvZ297Y29sb3I6I2ZmZn0ubW9ub2Nocm9tYXRpYyBzdmcgcGF0aHtmaWxsOiNmZmZ9eXRtLXN1YnNjcmliZS1idXR0b24tcmVuZGVyZXJ7ZGlzcGxheTpibG9ja315dG0tc3Vic2NyaWJlLWJ1dHRvbi1yZW5kZXJlciAuYnV0dG9uLXJlbmRlcmVyLWljb257aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ubW9kZXJuLXN1YnNjcmliZS1idXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uc3Vic2NyaWJlLWJ1dHRvbi1jb3VudHtjb2xvcjojNjA2MDYwO2ZvbnQtc2l6ZToxLjRyZW07bWFyZ2luOjAgOHB4fUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLWJlbGwtZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19Lm5vdGlmaWNhdGlvbi1iZWxsLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW59Lm5vdGlmaWNhdGlvbi1iZWxsLWNvbnRhaW5lci5oaWRkZW57ZGlzcGxheTpub25lfS5ub3RpZmljYXRpb24tYmVsbHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LTJweDthbmltYXRpb246bm90aWZpY2F0aW9uLWJlbGwtZmFkZS1pbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lm1vZGVybi1zdWJzY3JpYmUtYnV0dG9uLWNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5tb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHt0cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7cGFkZGluZy1sZWZ0OjB9Lll0bVZpZGVvSW5mb0V4cGFuZGVkIC5tb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdCwueXRtVmlkZW9JbmZvRXhwYW5kZWQgLm1vZGVybi1zdWJzY3JpYmUtYnV0dG9uIC55dEF0dHJpYnV0ZWRTdHJpbmdIb3N0e3RyYW5zaXRpb246bm9uZX0ud2l0aC1ub3RpZmljYXRpb24tYmVsbCAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHtwYWRkaW5nLWxlZnQ6MjRweH0ueXRDb3JlSW1hZ2VIb3N0e3Zpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6MXB4O21pbi13aWR0aDoxcHh9Lnl0Q29yZUltYWdlTG9hZGVke3Zpc2liaWxpdHk6aW5oZXJpdH0ueXRDb3JlSW1hZ2VGaWxsUGFyZW50SGVpZ2h0e2hlaWdodDoxMDAlfS55dENvcmVJbWFnZUZpbGxQYXJlbnRXaWR0aHt3aWR0aDoxMDAlfS55dENvcmVJbWFnZU9iamVjdFBvc2l0aW9uVG9wTGVmdHtvYmplY3QtcG9zaXRpb246dG9wIGxlZnR9Lnl0Q29yZUltYWdlT2JqZWN0UG9zaXRpb25Ub3BSaWdodHtvYmplY3QtcG9zaXRpb246dG9wIHJpZ2h0fS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVUb0ZpbGx7b2JqZWN0LWZpdDpmaWxsfS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaXR7b2JqZWN0LWZpdDpjb250YWlufS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaWxse29iamVjdC1maXQ6Y292ZXJ9Lnl0Q29yZUltYWdlQ29udGVudE1vZGVDZW50ZXJ7b2JqZWN0LWZpdDpub25lO29iamVjdC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyfS55dENvcmVJbWFnZUZsaXBSdGx7dHJhbnNmb3JtOnNjYWxlWCgtMSl9Lnl0Q29yZUltYWdlR3JhZGllbnRDb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRDb3JlSW1hZ2VHcmFkaWVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX06cm9vdHstLXl0LWF0dHJpYnV0ZWQtc3RyaW5nLWxpbmstaG92ZXItY29sb3I6dW5zZXR9Lnl0QXR0cmlidXRlZFN0cmluZ0lubGluZUJsb2NrTW9ke2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dEF0dHJpYnV0ZWRTdHJpbmdJbWFnZUFsaWdubWVudEJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lnl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50QmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lnl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50VmVydGljYWxDZW50ZXJ7dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotLjA3ZW19Lnl0QXR0cmlidXRlZFN0cmluZ0xpc3RHcm91cHstbW96LXBhZGRpbmctc3RhcnQ6MjBweDtwYWRkaW5nLWlubGluZS1zdGFydDoyMHB4fS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5re3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6aW5saW5lfS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5rQ2FsbFRvQWN0aW9uQ29sb3J7Y29sb3I6IzA2NWZkNH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGlua092ZXJsYXlDYWxsVG9BY3Rpb25Db2xvcntjb2xvcjojM2VhNmZmfS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5rW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn0ueXRBdHRyaWJ1dGVkU3RyaW5nTGlua0luaGVyaXRDb2xvciAueXRBdHRyaWJ1dGVkU3RyaW5nTGlua0NhbGxUb0FjdGlvbkNvbG9ye2NvbG9yOmluaGVyaXR9Lnl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IgLnl0QXR0cmlidXRlZFN0cmluZ0xpbmtDYWxsVG9BY3Rpb25Db2xvcjpob3Zlcntjb2xvcjp2YXIoLS15dC1hdHRyaWJ1dGVkLXN0cmluZy1saW5rLWhvdmVyLWNvbG9yKX0ueXRBdHRyaWJ1dGVkU3RyaW5nRWxsaXBzaXNUcnVuY2F0ZXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRBdHRyaWJ1dGVkU3RyaW5nV2hpdGVTcGFjZU5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0QXR0cmlidXRlZFN0cmluZ1doaXRlU3BhY2VQcmVXcmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS55dEF0dHJpYnV0ZWRTdHJpbmdJZ25vcmVTcGxpdExpbmVze3doaXRlLXNwYWNlOm5vcm1hbH0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudExlZnR7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmxlZnR9Lnl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRSaWdodHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHR9Lnl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRDZW50ZXJ7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcn0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudEp1c3RpZmllZHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246anVzdGlmeX0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudExheW91dFN0YXJ0e2Rpc3BsYXk6YmxvY2s7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS55dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50VW5rbm93bntkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246aW5oZXJpdH0ueXRBdHRyaWJ1dGVkU3RyaW5nV29yZFdyYXBwaW5ne292ZXJmbG93LXdyYXA6YW55d2hlcmV9Lnl0QXR0cmlidXRlZFN0cmluZ1VuZGVybGluZWR7LW1vei10ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS55dEF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoey1tb3otdGV4dC1kZWNvcmF0aW9uLWxpbmU6bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbi1saW5lOmxpbmUtdGhyb3VnaH0ueXRBdHRyaWJ1dGVkU3RyaW5nVW5kZXJsaW5lU3RyaWtldGhyb3VnaHstbW96LXRleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZSBsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lIGxpbmUtdGhyb3VnaH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlTm9uZXt0ZXh0LWRlY29yYXRpb246bm9uZX0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlU2luZ2xley1tb3otdGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlRG90ey1tb3otdGV4dC1kZWNvcmF0aW9uLXN0eWxlOmRvdHRlZDt0ZXh0LWRlY29yYXRpb24tc3R5bGU6ZG90dGVkfS55dEF0dHJpYnV0ZWRTdHJpbmdCYXNlbGluZU9mZnNldFN1YnNjcmlwdHt2ZXJ0aWNhbC1hbGlnbjpzdWJ9Lnl0QXR0cmlidXRlZFN0cmluZ0Jhc2VsaW5lT2Zmc2V0U3VwZXJzY3JpcHR7dmVydGljYWwtYWxpZ246c3VwZXJ9Lnl0QXR0cmlidXRlZFN0cmluZ0Jhc2VsaW5lT2Zmc2V0VW5rbm93bnt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ueXRBdHRyaWJ1dGVkU3RyaW5nSXRhbGljaXplZHtmb250LXN0eWxlOml0YWxpY30ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzF7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzJ7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzN7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDB9Lnl0QnV0dG9uT3JBbmNob3JIb3N0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dEJ1dHRvbk9yQW5jaG9yQnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjpub25lO2NvbG9yOmluaGVyaXQ7cGFkZGluZzowO21hcmdpbjowO2N1cnNvcjpwb2ludGVyO291dGxpbmUtd2lkdGg6MDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZDpub25lO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtYWxpZ246dW5zZXQ7d2lkdGg6MTAwJTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lnl0QnV0dG9uT3JBbmNob3JBbmNob3J7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjA7bWFyZ2luOjA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lnl0UmFkaW9TaGFwZUhvc3R7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9ja30ueXRSYWRpb1NoYXBlSW5wdXR7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTouMDAwMDAxO21hcmdpbjowO2xlZnQ6MTJweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0UmFkaW9TaGFwZUxhYmVsQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo0OHB4O3dpZHRoOjEwMCU7Y29sb3I6IzAzMDMwM30ueXRSYWRpb1NoYXBlS2V5Ym9hcmRGb2N1c2Vke291dGxpbmU6MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtvdXRsaW5lLW9mZnNldDotMnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dFJhZGlvU2hhcGVEaXNhYmxlZHtjb2xvcjojOTA5MDkwfS55dFJhZGlvU2hhcGVMYWJlbHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoxMnB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9aW5wdXQ6Y2hlY2tlZCtsYWJlbD4ueXRSYWRpb1NoYXBlUmFkaW8+OmZpcnN0LWNoaWxke2Rpc3BsYXk6bm9uZX1pbnB1dDpub3QoOmNoZWNrZWQpK2xhYmVsPi55dFJhZGlvU2hhcGVSYWRpbz46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9Lnl0UmFkaW9TaGFwZVJhZGlvRGVmYXVsdFN0eWxle2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAxMnB4O2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9aW5wdXQ6bm90KDpjaGVja2VkKStsYWJlbD4ueXRSYWRpb1NoYXBlQ2hlY2tJY29uPjpmaXJzdC1jaGlsZHt2aXNpYmlsaXR5OmhpZGRlbn0ueXRSYWRpb1NoYXBlQ29tcGFjdHttaW4taGVpZ2h0OjQwcHh9Lnl0UmFkaW9TaGFwZUV2ZW50UGFzc3Rocm91Z2h7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRSYWRpb1NoYXBlVGFwcGFibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzAzMDMwM30ueXRMaXN0SXRlbVZpZXdNb2RlbEhvc3Q6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIaWRkZW57ZGlzcGxheTpub25lfS55dExpc3RJdGVtVmlld01vZGVsS2V5Ym9hcmRGb2N1c2VkOmZvY3VzLXdpdGhpbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSk7b3V0bGluZToycHggc29saWQgY3VycmVudENvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25PckFuY2hvcnt3aWR0aDphdXRvfS55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uT3JBbmNob3I6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxOb1RyYWlsaW5nVGV4dCAueXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbk9yQW5jaG9yLC55dExpc3RJdGVtVmlld01vZGVsTm9UcmFpbGluZ1RleHQgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUZXh0V3JhcHBlcnttaW4td2lkdGg6MH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7bWluLWhlaWdodDo0NHB4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZVdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle2NvbG9yOiMwMzAzMDM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0LjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7bWF4LWhlaWdodDo0LjRyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuMnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MTttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxle21heC1oZWlnaHQ6Mi4ycmVtfS55dExpc3RJdGVtVmlld01vZGVsU3VidGl0bGV7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NDAwfS55dExpc3RJdGVtVmlld01vZGVsV2l0aEJhZGdle21hcmdpbi1sZWZ0OjhweH0ueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxlQ29udGFpbmVye21hcmdpbi10b3A6MnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTdXBlcmxhYmVse2NvbG9yOiM2MDYwNjA7bWFyZ2luLWJvdHRvbToycHg7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRMaXN0SXRlbVZpZXdNb2RlbFNlbGVjdGlvblRleHR7Y29sb3I6IzYwNjA2MDttYXJnaW4tbGVmdDo0cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ1NlbGVjdGlvblRleHR7bWFyZ2luLWxlZnQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Y29sb3I6IzAzMDMwMztmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NC40cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHttYXgtaGVpZ2h0OjQuNHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbE5ld0NvbnRlbnRJbmRpY2F0b3J7d2lkdGg6NHB4O2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dExpc3RJdGVtVmlld01vZGVsQ2hldnJvbkljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtmbGV4LXNocmluazowfS55dExpc3RJdGVtVmlld01vZGVsTGVhZGluZ3ttYXJnaW4tcmlnaHQ6MTJweH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjEycHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDoxMnB4fS55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uT3JBbmNob3IsLnl0TGlzdEl0ZW1WaWV3TW9kZWxQcmlvcml0aXplVHJhaWxpbmcgLnl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUNvbnRhaW5lciwueXRMaXN0SXRlbVZpZXdNb2RlbFByaW9yaXRpemVUcmFpbGluZyAueXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVyLC55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGVXcmFwcGVye21pbi13aWR0aDowfS55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmcsLnl0TGlzdEl0ZW1WaWV3TW9kZWxQcmlvcml0aXplVHJhaWxpbmcgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsLC55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0e2ZsZXgtc2hyaW5rOjB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIsLnl0TGlzdEl0ZW1WaWV3TW9kZWxJbWFnZUNvbnRhaW5lcnthbGlnbi1zZWxmOnN0YXJ0O2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjQ0cHg7bWluLXdpZHRoOjM2cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dExpc3RJdGVtVmlld01vZGVsQXZhdGFyLC55dExpc3RJdGVtVmlld01vZGVsSW1hZ2V7bWF4LWhlaWdodDozNnB4fS55dExpc3RJdGVtVmlld01vZGVsQWNjZXNzb3J5e2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93OmhpZGRlbjtjb2xvcjojMDMwMzAzfS55dExpc3RJdGVtVmlld01vZGVsTGF5b3V0V3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCb3R0b21BY2Nlc3Nvcnl7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmctdG9wOjRweH0ueXRMaXN0SXRlbVZpZXdNb2RlbE1haW5Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxlQmFkZ2VXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUJhZGdlV3JhcHBlcjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDo4cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb250YWluZXJ7cGFkZGluZzoycHggMTZweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweH0ueXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVIb3Jpem9udGFsUGFkZGluZ3twYWRkaW5nOjJweCAwfS55dExpc3RJdGVtVmlld01vZGVsSW5Qb3B1cHtib3JkZXItcmFkaXVzOjB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlZHtjb2xvcjojNjA2MDYwO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlZCAueXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeSwueXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVkIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7Y29sb3I6IzYwNjA2MH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxle2N1cnNvcjpwb2ludGVyOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMDUpfS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NC40cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXttYXgtaGVpZ2h0OjQuNHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6Mi4ycmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZS55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7bWF4LWhlaWdodDoyLjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZS55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjQuNHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVse21heC1oZWlnaHQ6NC40cmVtfS55dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGV7cGFkZGluZzo2cHggMTZweH0ueXRMaXN0SXRlbVZpZXdNb2RlbEhhc1N1YnRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmd7cGFkZGluZzo2cHggMH0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUZXh0V3JhcHBlcnttaW4taGVpZ2h0OjM2cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle21heC1oZWlnaHQ6NHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6MnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXttYXgtaGVpZ2h0OjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0e2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7bWF4LWhlaWdodDo0cmVtfS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxley13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle21heC1oZWlnaHQ6NHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjJyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXttYXgtaGVpZ2h0OjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsey13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7bWF4LWhlaWdodDo0cmVtfS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbENoZXZyb25JY29ue2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uQ29udGFpbmVye2hlaWdodDozNnB4O21pbi13aWR0aDozNnB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVye2hlaWdodDozNnB4O21pbi13aWR0aDoyNHB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdle21heC1oZWlnaHQ6MjRweH0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEhhc1N1YnRpdGxlIC55dExpc3RJdGVtVmlld01vZGVsVGV4dFdyYXBwZXJ7bWluLWhlaWdodDo0MnB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIsLnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIYXNTdWJ0aXRsZSAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVye2hlaWdodDo0MnB4fS55dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5LC55dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7Y29sb3I6I2ZmZn0ueXRMaXN0SXRlbVZpZXdNb2RlbElzT3ZlcmxheSAueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXRMaXN0SXRlbVZpZXdNb2RlbElzT3ZlcmxheSAueXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeXtjb2xvcjojZmZmfS55dENoZWNrYm94U2hhcGVIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo0OHB4O3dpZHRoOjEwMCU7Y29sb3I6IzAzMDMwMztwb3NpdGlvbjpyZWxhdGl2ZX0ueXRDaGVja2JveFNoYXBlSG9zdENvbXBhY3R7bWluLWhlaWdodDo0MHB4fS55dENoZWNrYm94U2hhcGVJbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW46MDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO29wYWNpdHk6LjAwMDAwMTt6LWluZGV4OjE7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRDaGVja2JveFNoYXBlTGFiZWx7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwfS55dENoZWNrYm94U2hhcGVEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmcgLnl0Q2hlY2tib3hTaGFwZUxhYmVse3BhZGRpbmctcmlnaHQ6MH0ueXRDaGVja2JveFNoYXBlQ2hlY2tib3hEZWZhdWx0U3R5bGV7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDEycHh9aW5wdXQ6Y2hlY2tlZH4ueXRDaGVja2JveFNoYXBlQ2hlY2tib3g+OmZpcnN0LWNoaWxke2Rpc3BsYXk6bm9uZX1pbnB1dDpub3QoOmNoZWNrZWQpfi55dENoZWNrYm94U2hhcGVDaGVja2JveD46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9Lnl0U3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2t9LnRvZ2dsZWFibGVMaXN0SXRlbVZpZXdNb2RlbEhvc3R7ZGlzcGxheTpibG9ja30ueXRMaXN0Vmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59QG1lZGlhIChtYXgtd2lkdGg6Mjk5LjlweCl7Lnl0TGlzdFZpZXdNb2RlbEhvc3RLYWlvc1NwYXROYXZ7cGFkZGluZzozcHh9fS55dERvd25sb2FkTGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3R7cGFkZGluZzowIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0W2RhdGEtaGFzLXN1YnNjcmliZS1idXR0b249dHJ1ZV0gLll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YXtwYWRkaW5nOjA7LW1vei1ib3gtYWxpZ246bm9ybWFsO2FsaWduLWl0ZW1zOm5vcm1hbDttYXJnaW46YXV0bzstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0W2RhdGEtaGFzLXN1YnNjcmliZS1idXR0b249dHJ1ZV0gLll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YSB5dG0tbWVudS1yZW5kZXJlcntoZWlnaHQ6MTAwJX0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbUNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAudmlkZW8tdGh1bWJuYWlsLWltZ3t3aWR0aDo2N3B4O2hlaWdodDo2N3B4O21pbi1oZWlnaHQ6MDtib3JkZXItcmFkaXVzOjUwJX0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAuY2hhbm5lbC1zdWJzY3JpYmUtYnV0dG9ue3BhZGRpbmc6MCAwIDAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdFtkYXRhLWNvbG9yLXBhbGV0dGUtYXBwbGllZD10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbVN1YmhlYWR7b3BhY2l0eToxfS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdD5he2Rpc3BsYXk6YmxvY2t9QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSwobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3R7ZGlzcGxheTpibG9jaztwYWRkaW5nOjAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdCAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItY29tcGFjdHt3aWR0aDoxMDAlO2hlaWdodDphdXRvO3BhZGRpbmctYm90dG9tOjU2LjI1JX19Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0IC5lbmdhZ2VtZW50LWJhcntoZWlnaHQ6MjRweDttYXJnaW4tdG9wOjRweH0uWXRtQ29tcGFjdE1lZGlhSXRlbU11bHRpY29sdW1ue3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uWXRtQ29tcGFjdE1lZGlhSXRlbUltYWdle2ZsZXgtc2hyaW5rOjB9Lll0bUNvbXBhY3RNZWRpYUl0ZW1JbWFnZS5zdGFja2Vke3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6NnB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGF7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDowO292ZXJmbG93OnZpc2libGV9QG1lZGlhIChtaW4td2lkdGg6NTUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhW2RhdGEtaGFzLWJhZGdlcz10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfX1AbWVkaWEgKG1heC13aWR0aDo1NDlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDoyLjVlbTstd2Via2l0LWxpbmUtY2xhbXA6Mn0uWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhLmhhcy1lbmdhZ2VtZW50LWJhciAuWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjJ9Lll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YS5oYXMtZW5nYWdlbWVudC1iYXJbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDoxLjI1ZW07LXdlYmtpdC1saW5lLWNsYW1wOjF9fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YXtwYWRkaW5nOjRweCAwfS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7ZGlzcGxheTotd2Via2l0LWJveDt3aGl0ZS1zcGFjZTpub3JtYWx9fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFDb250ZW50e2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFDb250ZW50LnN0YWNrZWR7bWFyZ2luLXRvcDo4cHh9QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSwobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhQ29udGVudHtwYWRkaW5nOjB9fS5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmVQbGFjZWhvbGRlcntoZWlnaHQ6MTZweDttYXgtd2lkdGg6MzAwcHg7bWFyZ2luLWJvdHRvbTo4cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLXJhZGl1czoycHh9Lll0bUNvbXBhY3RNZWRpYUl0ZW1TdWJoZWFke2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7b3BhY2l0eTouNn0uWXRtQ29tcGFjdE1lZGlhSXRlbVN1YmhlYWRQbGFjZWhvbGRlcntoZWlnaHQ6MTZweDt3aWR0aDoxMjBweDttYXJnaW4tYm90dG9tOjNweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjJweH0uWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7bGluZS1oZWlnaHQ6MS4yNTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MCAwIDNweDtmb250LXNpemU6MS4zcmVtO292ZXJmbG93OmhpZGRlbjttYXJnaW46MDtmb250LXNpemU6MS40cmVtfS5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmUgLnl0bS1jaGFubmVsLW5hbWV7Zm9udC1zaXplOjEuNHJlbX1AbWVkaWEgKG1heC13aWR0aDo1NDlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDozLjc1ZW07LXdlYmtpdC1saW5lLWNsYW1wOjN9fS5ZdG1Db21wYWN0TWVkaWFJdGVtQnlsaW5le2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtc2l6ZToxLjJyZW19Lll0bUNvbXBhY3RNZWRpYUl0ZW1TdGF0c3tkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjEuMnJlbX0uWXRtQ29tcGFjdE1lZGlhSXRlbVN0YXRzfi5ZdG1Db21wYWN0TWVkaWFJdGVtU3RhdHM6YmVmb3Jle2NvbnRlbnQ6XCLCoMK3wqBcIn0uWXRtQ29tcGFjdE1lZGlhSXRlbURlc2NyaXB0aW9ue21hcmdpbjo4cHggMDtwYWRkaW5nOjA7Zm9udC1zaXplOjEuMnJlbX0uWXRtQ29tcGFjdE1lZGlhSXRlbU1lbnV7ZmxleC1zaHJpbms6MDtjb2xvcjojMDMwMzAzfS5mb3JtYXR0ZWQtc3RyaW5nLWRlZW1waGFzaXple2NvbG9yOiM2MDYwNjB9LmZvcm1hdHRlZC1zdHJpbmctYm9sZHtmb250LXdlaWdodDo1MDB9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvc3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUcmlnZ2VyRXZlbnRze3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0e3RyYW5zaXRpb246YWxsIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksdHJhbnNmb3JtO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjEpO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjkpO3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG92ZXJlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG92ZXJFZmZlY3R7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle3dpbGwtY2hhbmdlOm9wYWNpdHk7b3BhY2l0eTowO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRG93biAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRm9jdXNlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtvcGFjaXR5Oi4xfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplU21hbGx7bWFyZ2luOi00cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZVNtYWxsIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZVNtYWxsIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW17bWFyZ2luOi04cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0gLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGwsLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0gLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0LC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplTWVkaXVtIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVMYXJnZXttYXJnaW46LTEycHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVMYXJnZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZUxhcmdlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZUxhcmdlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czoxNnB4fS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVDaXJjdWxhciAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlQ2lyY3VsYXIgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0LC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVDaXJjdWxhciAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlci1yYWRpdXM6NTAlfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVGaWxse2JhY2tncm91bmQtY29sb3I6IzAwMH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlcjoxcHggc29saWQgIzAwMH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlSW52ZXJzZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlcjoxcHggc29saWQgI2ZmZn0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRG93biAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRm9jdXNlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtvcGFjaXR5Oi4yfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZU92ZXJsYXlUb3VjaFJlc3BvbnNlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGx7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVN0cm9rZXtib3JkZXI6MXB4IHNvbGlkICMwMDB9QGtleWZyYW1lcyBwb3BvdmVyLWZhZGUtaW57MCV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHBvcG92ZXItZmFkZS1vdXR7dG97b3BhY2l0eTowfX0ueXRQb3BvdmVyQ29tcG9uZW50SG9zdHttYXJnaW46MDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRQb3BvdmVyQ29tcG9uZW50SG9zdC5cXDpwb3BvdmVyLW9wZW4sLnl0UG9wb3ZlckNvbXBvbmVudEhvc3Q6cG9wb3Zlci1vcGVue2FuaW1hdGlvbjpwb3BvdmVyLWZhZGUtaW4gLjE1cyBlYXNlLWlufS55dFBvcG92ZXJDb21wb25lbnRIb3N0Q2xvc2luZy5cXDpwb3BvdmVyLW9wZW4sLnl0UG9wb3ZlckNvbXBvbmVudEhvc3RDbG9zaW5nOnBvcG92ZXItb3BlbnthbmltYXRpb246cG9wb3Zlci1mYWRlLW91dCA3NW1zIGVhc2Utb3V0IGZvcndhcmRzfS55dFRvb2x0aXBDb250YWluZXJIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0VG9vbHRpcENvbnRhaW5lckRlZmF1bHRUb29sdGlwQ29udGVudHtwYWRkaW5nOjhweDtib3JkZXItc3R5bGU6bm9uZTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzYwNjA2MDtvcGFjaXR5Oi45O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0VG9vbHRpcENvbnRhaW5lclBsYXllclRvb2x0aXBDb250ZW50LC55dFRvb2x0aXBDb250YWluZXJQbGF5ZXJUb29sdGlwQ29udGVudEJsdXJyZWR7cGFkZGluZzo0cHggOHB4O2JvcmRlci1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAycHggOHB4ICMwMDA7b3BhY2l0eTouOTtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRUb29sdGlwQ29udGFpbmVyUGxheWVyVG9vbHRpcENvbnRlbnRCbHVycmVke29wYWNpdHk6dW5zZXQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KX0ueXRUb29sdGlwQ29udGFpbmVyRWZmZWN0TWFrZXJUb29sdGlwQ29udGVudHtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZjBmMGY7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRUb29sdGlwQ29udGFpbmVySG90a2V5e2Rpc3BsYXk6aW5saW5lO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MCA2cHg7bWFyZ2luLWxlZnQ6OHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwfTpyb290ey0teXQtbGlnaHQtcmltLWNvbG9yOnVuc2V0Oy0teXQtbGlnaHQtd2FzaC1vcGFjaXR5OjA7LS15dC1saWdodC13YXNoLXg6MDstLXl0LWxpZ2h0LXdhc2gteTowOy0teXQtbGlnaHQtd2FzaC1zaXplOjk2cHg7LS15dC1saWdodC13YXNoLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKX0uY29udHJpYll0TGlnaHRTaGFwZUhvc3R7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0OmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOmluaGVyaXQ7cGFkZGluZzouNXB4Oy13ZWJraXQtbWFzazpsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCk7bWFzay1jb21wb3NpdGU6ZXhjbHVkZTtwb2ludGVyLWV2ZW50czpub25lfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRTb2xpZDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4yKSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWw6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDAsMCwwLDAuMDUpKSx0cmFuc3BhcmVudCA3NSUpfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRPdXRsaW5le2luc2V0Oi0xcHh9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE91dGxpbmU6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMykpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodFNvbGlkSW52ZXJzZTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4yKSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWxJbnZlcnNlOmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS15dC1saWdodC1yaW0tY29sb3IscmdiYSgyNTUsMjU1LDI1NSwwLjE1KSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2V7aW5zZXQ6LTFweH0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2U6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpKSx0cmFuc3BhcmVudCA3NSUpfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRPdmVybGF5U29saWQ6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMikpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlUb25hbDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5le2luc2V0Oi0xcHh9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5lOmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS15dC1saWdodC1yaW0tY29sb3IscmdiYSgyNTUsMjU1LDI1NSwwLjE1KSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodHtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3R0b206NTAlO2xlZnQ6MDtib3JkZXItcmFkaXVzOmluaGVyaXQ7ZmlsdGVyOmJsdXIoMTBweCl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTYWZhcml7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTb2xpZHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xNSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRUb25hbHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFNvbGlkSW52ZXJzZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4zKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFRvbmFsSW52ZXJzZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wNSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRPdmVybGF5U29saWR7YmFja2dyb3VuZDojZmZmfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0T3ZlcmxheVRvbmFse2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjE1KX0uY29udHJpYll0TGlnaHRTaGFwZUR5bmFtaWNXYXNoTGlnaHR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgdHJhbnNsYXRlKHZhcigtLXl0LWxpZ2h0LXdhc2gteCwwKSx2YXIoLS15dC1saWdodC13YXNoLXksMCkpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDt3aWR0aDp2YXIoLS15dC1saWdodC13YXNoLXNpemUsOTZweCk7aGVpZ2h0OnZhcigtLXl0LWxpZ2h0LXdhc2gtc2l6ZSw5NnB4KTtvcGFjaXR5OnZhcigtLXl0LWxpZ2h0LXdhc2gtb3BhY2l0eSwwKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgZmFydGhlc3QtY29ybmVyIGF0IGNlbnRlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSAwLHRyYW5zcGFyZW50IDEwMCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZmlsdGVyOmJsdXIoMTVweCl9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3N0e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztjb250YWluOmxheW91dCBzdHlsZSBwYWludDstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXt0cmFuc2l0aW9uOm9wYWNpdHkgLjQ1cyBjdWJpYy1iZXppZXIoLjI1LDEsLjgsMSl9fS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXt0cmFuc2l0aW9uLWR1cmF0aW9uOjQwbXN9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0IC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQ6aG92ZXIgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouMDV9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVQcmVzc2VkIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e29wYWNpdHk6LjF9OnJvb3RbZGFya10gLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0IC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e2JhY2tncm91bmQtY29sb3I6IzAwMH06cm9vdFtkYXJrXSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQ6aG92ZXIgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouMn06cm9vdFtkYXJrXSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVByZXNzZWQgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouM30ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheUludmVyc2UgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZTpob3ZlciAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4yfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4zfTpyb290W2RhcmtdIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9OnJvb3RbZGFya10gLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlJbnZlcnNlOmhvdmVyIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e29wYWNpdHk6LjA1fTpyb290W2RhcmtdIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4xfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlVG91Y2hMaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtmaWx0ZXI6Ymx1cigyNHB4KTtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsI2ZmZiAwLHJnYmEoMjU1LDI1NSwyNTUsLjYpIDM1JSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzAlLHRyYW5zcGFyZW50IDEwMCUpO2JvcmRlci1yYWRpdXM6NTAlfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7ZmlsdGVyOmJsdXIoMzJweCk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCNmZmYgMCxyZ2JhKDI1NSwyNTUsMjU1LC41KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDgwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JvcmRlci1yYWRpdXM6NTAlfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyTGlnaHR7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlLHdpZHRoIC4xNXMgY3ViaWMtYmV6aWVyKC4yNSwxLC41LDEpLGhlaWdodCAuMTVzIGN1YmljLWJlemllciguMjUsMSwuNSwxKX19Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3N0OmhvdmVyIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodHtvcGFjaXR5Oi4yfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG9zdC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyTGlnaHR7b3BhY2l0eTouMzU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDRzfS5hbmltYXRlZFJvbGxpbmdDaGFyYWN0ZXJIb3N0e2Rpc3BsYXk6aW5saW5lfS5hbmltYXRlZFJvbGxpbmdOdW1iZXJIb3N0e2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O292ZXJmbG93OmhpZGRlbn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lLXdpZHRoOjA7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LW1vei1ib3gtZmxleDoxO2ZsZXg6MTtmbGV4LWJhc2lzOjAuMDAwMDAwMDAxcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dFNwZWNCdXR0b25TaGFwZU5leHRFbGV2YXRlZENvbnRlbnR7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb24sLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bGluZS1oZWlnaHQ6MDtmaWxsOmN1cnJlbnRDb2xvcn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnstbW96LWJveC1mbGV4OjA7ZmxleDpub25lfS55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWlkZGxlZ3JvdW5kQXNzZXR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7d2lkdGg6cm91bmQodXAsMTAwJSwxcHgpO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lfS55dFNwZWNCdXR0b25TaGFwZU5leHRGZWF0dXJlUGhvbmVXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYc3twYWRkaW5nOjAgOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgN3B4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgNnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDhweDt3aWR0aDozMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MnB4O21hcmdpbi1sZWZ0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MnB4O21hcmdpbi1sZWZ0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6LTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhze2hlaWdodDoyNHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9ue3dpZHRoOjI0cHg7cGFkZGluZzowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnR7Ym9yZGVyLXJhZGl1czoxMnB4IDAgMCAxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnQ6YWZ0ZXJ7Y29udGVudDpcIlwiO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjRweDtoZWlnaHQ6MTZweDt3aWR0aDoxcHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDEycHggMTJweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZ05vVGV4dCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZUljb25TaXplIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue2hlaWdodDoxMnB4O3dpZHRoOjEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5ne3BhZGRpbmc6MCA4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDdweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgNnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDhweDt3aWR0aDozMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplU3twYWRkaW5nOjAgMTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMTFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMTBweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMTJweDt3aWR0aDo0NHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplU3toZWlnaHQ6MzJweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnt3aWR0aDozMnB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVycmlkZVNtYWxsU2l6ZUljb24gLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnR7Ym9yZGVyLXJhZGl1czoxNnB4IDAgMCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydDphZnRlcntjb250ZW50OlwiXCI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6OHB4O2hlaWdodDoxNnB4O3dpZHRoOjFweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke2JvcmRlci1yYWRpdXM6MCAxNnB4IDE2cHggMH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZ05vVGV4dCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVycmlkZVNtYWxsU2l6ZUljb24pIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmd7cGFkZGluZzowIDEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMTFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke3BhZGRpbmc6MCAxMHB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke3BhZGRpbmc6MCAxMnB4O3dpZHRoOjQ0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo0cHg7bWFyZ2luLWxlZnQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU17cGFkZGluZzowIDE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDE1cHg7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDE0cHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDE2cHg7d2lkdGg6NTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjZweDttYXJnaW4tcmlnaHQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1sZWZ0Oi02cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NnB4O21hcmdpbi1yaWdodDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTXtoZWlnaHQ6MzZweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0gLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0gLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnt3aWR0aDozNnB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydHtib3JkZXItcmFkaXVzOjE4cHggMCAwIDE4cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0OmFmdGVye2NvbnRlbnQ6XCJcIjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDo2cHg7aGVpZ2h0OjI0cHg7d2lkdGg6MXB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDE4cHggMThweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VJY29uU2l6ZS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbiwueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uKTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25Pbmx5RGVmYXVsdCkgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZ3twYWRkaW5nOjAgMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le3BhZGRpbmc6MCAxNXB4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDE0cHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDE2cHg7d2lkdGg6NTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDo2cHg7bWFyZ2luLXJpZ2h0Oi02cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NnB4O21hcmdpbi1yaWdodDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEwcHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMe3BhZGRpbmc6MCAyNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le3BhZGRpbmc6MCAyM3B4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke3BhZGRpbmc6MCAyMnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke3BhZGRpbmc6MCAyNHB4O3dpZHRoOjcycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUx7aGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMIC55dFNwZWNCdXR0b25TaGFwZU5leHRNaWRkbGVncm91bmRBc3NldHtib3JkZXItcmFkaXVzOjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b257d2lkdGg6NDhweDtwYWRkaW5nOjB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0e2JvcmRlci1yYWRpdXM6MjRweCAwIDAgMjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnQ6YWZ0ZXJ7Y29udGVudDpcIlwiO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEycHg7aGVpZ2h0OjI0cHg7d2lkdGg6MXB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDI0cHggMjRweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5ne3BhZGRpbmc6MCAyMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDE5cHg7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMThweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMjBweDt3aWR0aDo2OHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2Vjb25kYXJ5SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhse3BhZGRpbmc6MCAzMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMzFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDMwcHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0zMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDMycHg7d2lkdGg6ODhweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhse2hlaWdodDo1NnB4O2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czoyOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MjhweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9ue3dpZHRoOjU2cHg7cGFkZGluZzowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0e2JvcmRlci1yYWRpdXM6MjhweCAwIDAgMjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0OmFmdGVye2NvbnRlbnQ6XCJcIjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoxNnB4O2hlaWdodDoyNHB4O3dpZHRoOjFweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtib3JkZXItcmFkaXVzOjAgMjhweCAyOHB4IDB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZ3twYWRkaW5nOjAgMjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMjNweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMjJweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0yNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMjRweDt3aWR0aDo4MHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2Vjb25kYXJ5SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVye2hlaWdodDphdXRvO3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVyIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjhyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVyIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHstd2Via2l0LWxpbmUtY2xhbXA6NDttYXgtaGVpZ2h0Om5vbmV9fS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlVGV4dEVsbGlwc2lzIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHt0ZXh0LW92ZXJmbG93OmNsaXB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25Pbmx5RGVmYXVsdHttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbk9ubHlEZWZhdWx0Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFdvcmthcm91bmRJY29uTm9Cb3JkZXJSYWRpdXN7Ym9yZGVyLXJhZGl1czp1bnNldH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzA1NTZiZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwNjVmZDR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzA1NTZiZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Y29sb3I6IzA2NWZkNH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2RlZjFmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZTphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZGVmMWZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2NvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6IzA2NWZkNH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2RlZjFmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkYWRmZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZGFkZmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2NvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwNjVmZDR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Y29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMyNjM4NTA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbkludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnRyYW5zcGFyZW50fX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI2Mzg1MDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMzZWE2ZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiM2NWI4ZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzNlYTZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzY1YjhmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAwMDtib3JkZXItY29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiM2NWI4ZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWNvbG9yOiMzZWE2ZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojNjViOGZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMjcyNzI3O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2Q5ZDlkOTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkOWQ5ZDk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMil9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5lOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZTphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnRyYW5zcGFyZW50fX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojZmZmfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Y29sb3I6IzAwMH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZTZlNmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNmZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwwLjgpKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlQmFja2Ryb3BGaWx0ZXJFeHBlcmltZW50e2JhY2tkcm9wLWZpbHRlcjpibHVyKDRweCl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDAwO2JvcmRlci1jb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDAwO2JvcmRlci1jb2xvcjojZmZmfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwwLjgpKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVCYWNrZHJvcEZpbHRlckV4cGVyaW1lbnR7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAwMDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjMpfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4zKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDQwLDQwLDQwLDAuNik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNlMTAwMmQgMzAlLCNlMDEzNzggODUlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNlMTAwMmQgMzAlLCNlMDEzNzggODUlKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2UxMDAyZCAzMCUsI2UwMTM3OCA4NSUpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2UxMDAyZCAzMCUsI2UwMTM3OCA4NSUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp1bnNldDtib3JkZXItY29sb3I6IzAzMDMwM319QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmIDAsI2FhMDlhYSAyMCUsI2ZmNGU0NSAxMDAlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMwMDdhNjUgMCwjN2YwZTdmIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmIDAsI2FhMDlhYSAyMCUsI2ZmNGU0NSAxMDAlKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMwMDdhNjUgMCwjN2YwZTdmIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEoMTI3LDE0LDEyNywwLjIpIDAscmdiYSgxNzAsOSwxNzAsMC4yKSAyMCUscmdiYSgyNTUsNzgsNjksMC4yKSAxMDAlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgwLDEyMiwxMDEsMC4yKSAwLHJnYmEoMTI3LDE0LDEyNywwLjIpIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEoMTI3LDE0LDEyNywwLjIpIDAscmdiYSgxNzAsOSwxNzAsMC4yKSAyMCUscmdiYSgyNTUsNzgsNjksMC4yKSAxMDAlKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgwLDEyMiwxMDEsMC4yKSAwLHJnYmEoMTI3LDE0LDEyNywwLjIpIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVkLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojOTA5MDkwfS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiM5MDkwOTB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojOTA5MDkwfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6IzkwOTA5MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFJhaXNlZC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzowIDRweCAxNnB4IDAgcmdiYSgwLDAsMCwwLjEpLDAgMnB4IDhweCAwIHJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHttYXJnaW46NHB4IC04cHggMDtjb2xvcjojMDMwMzAzO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6MnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MTttYXgtaGVpZ2h0Om5vbmV9fS55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbElzT3ZlcmxheSAueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHttYXgtd2lkdGg6NjRweDtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4fS55dEJhZGdlVmlld01vZGVsSG9zdHtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRCck56QmFkZ2VTaGFwZUhvc3R7ZGlzcGxheTpibG9ja30ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdSZWRTcXVhcmV7YmFja2dyb3VuZDojZjAzOTM2O2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2JvcmRlci1yYWRpdXM6MDtjb2xvcjpibGFjazt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1llbGxvd0NpcmNsZXtiYWNrZ3JvdW5kOiNmZmVmMDA7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6YmxhY2s7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdHcmVlbkNpcmNsZXtiYWNrZ3JvdW5kOiM0MmM3NTg7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6YmxhY2s7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbEdyZWVuU3F1YXJle2JhY2tncm91bmQ6cmdiKDAsMTY2LDgxKTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbHVlU3F1YXJle2JhY2tncm91bmQ6cmdiKDAsMTQ5LDIxOCk7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ0xhcmdlQmx1ZVNxdWFyZXtiYWNrZ3JvdW5kOnJnYigwLDE0OSwyMTgpO2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbFllbGxvd1NxdWFyZXtiYWNrZ3JvdW5kOnJnYigyNTEsMTkzLDIxKTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VZZWxsb3dTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjUxLDE5MywyMSk7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsT3JhbmdlU3F1YXJle2JhY2tncm91bmQ6cmdiKDI0NSwxMzAsMzIpO2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZU9yYW5nZVNxdWFyZXtiYWNrZ3JvdW5kOnJnYigyNDUsMTMwLDMyKTtoZWlnaHQ6Mi4ycmVtO3dpZHRoOjIuMnJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxSZWRTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjM2LDI5LDM3KTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VSZWRTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjM2LDI5LDM3KTtoZWlnaHQ6Mi4ycmVtO3dpZHRoOjIuMnJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbGFja1NxdWFyZXtiYWNrZ3JvdW5kOnJnYigwLDAsMCk7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ0xhcmdlQmxhY2tTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMCwwLDApO2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRTZWN0aW9uSGVhZGVyVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxCYWRnZVdpdGhMYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazstbW96LW1hcmdpbi1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtZW5kOjhweH0ueXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VzOm5vdCg6bGFzdC1jaGlsZCl7LW1vei1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQWN0aW9uc0NvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxUcmFpbGluZ0FjdGlvbnNDb250YWluZXI+Om5vdCg6bGFzdC1jaGlsZCl7LW1vei1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb25zQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb246bm90KDpsYXN0LWNoaWxkKXstbW96LW1hcmdpbi1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtZW5kOjhweH0ueXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFJhZGlvQnV0dG9uR3JvdXBWaWV3TW9kZWxGaWVsZHNldHtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9Lnl0UmFkaW9CdXR0b25Hcm91cFZpZXdNb2RlbEVycm9ye2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6I2MzMDAyN30ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbEhvc3R7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9ja30ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbENvbnRhaW5lcntwYWRkaW5nLWJvdHRvbToyMHB4fS55dFNlbGVjdGFibGVJdGVtVmlld01vZGVsTmF0aXZlQ29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNlbGVjdGFibGVJdGVtVmlld01vZGVsTmF0aXZlUmFkaW9CdXR0b257aGVpZ2h0OjA7bGVmdDowO21hcmdpbjowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjB9Lnl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVMYWJlbHtjdXJzb3I6cG9pbnRlcn0ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbERpc2FibGVke2N1cnNvcjpkZWZhdWx0fS55dENhcmRWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ueXRDYXJkVmlld01vZGVsT3V0bGluZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9Lnl0Q2FyZFZpZXdNb2RlbFJhaXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLDAuMjUpO291dGxpbmUtc3R5bGU6c29saWQ7b3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjE4cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvdXRsaW5lLWNvbG9yIC4xOHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3V0bGluZS13aWR0aCAuMThzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dENhcmRWaWV3TW9kZWxDYXJkU2VsZWN0ZWR7Ym94LXNoYWRvdzowIDJweCA4cHggMCByZ2JhKDAsMCwwLDAuMjUpO291dGxpbmU6IzAzMDMwMyBzb2xpZCAycHg7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4xOHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3V0bGluZS1jb2xvciAuMThzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG91dGxpbmUtd2lkdGggLjE4cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRDYXJkVmlld01vZGVsVG9uYWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMDUpfS55dENhcmRWaWV3TW9kZWxJbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwZjBmMGZ9Lnl0Q2FyZFZpZXdNb2RlbENvbnRlbnRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lnl0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7d2lkdGg6MTAwJX0ueXRDYXJkVmlld01vZGVsVG9wQ29udGVudHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjF9Lnl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9ue2FsaWduLXNlbGY6ZmxleC1zdGFydH0ueXRDYXJkVmlld01vZGVsSW5saW5lQ2VudGVyVHJhaWxpbmdBY3Rpb257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9uTWFyZ2lue21hcmdpbjo2cHh9Lnl0Q2FyZFZpZXdNb2RlbE92ZXJsYXlUcmFpbGluZ0FjdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDoxMnB4fS55dENhcmRWaWV3TW9kZWxDYXJkVmlld01vZGVsSW5uZXJ7Ym9yZGVyLXJhZGl1czoxMnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1mbGV4OjE7ZmxleDoxfS55dENhcmRWaWV3TW9kZWxTZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjMDMwMzAzfS55dENhcmRWaWV3TW9kZWxCb3R0b21Db250ZW50UGFkZGluZywueXRDYXJkVmlld01vZGVsVG9wQ29udGVudFBhZGRpbmd7cGFkZGluZzoxMnB4fS55dENhcmRWaWV3TW9kZWxDbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0Q2FyZFZpZXdNb2RlbERpc2FibGVkT3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTtpbnNldDowO3Bvc2l0aW9uOmFic29sdXRlfS55dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kV3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0ueXRDYXJkVmlld01vZGVsQmFja2dyb3VuZHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6ZmlsbH0ueXRDaGVja2JveEdyb3VwVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dENoZWNrYm94R3JvdXBWaWV3TW9kZWxGaWVsZHNldHtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9Lnl0Q2hlY2tib3hJdGVtVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFBhbmVsRm9vdGVyVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO3BhZGRpbmc6MTJweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEhpZGVEaXZpZGVye2JvcmRlci10b3A6bm9uZX0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbERpc2FibGVQYWRkaW5ne3BhZGRpbmc6MTJweCAwIDB9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxEaXNhYmxlUGFkZGluZy55dFBhbmVsRm9vdGVyVmlld01vZGVsSGlkZURpdmlkZXJ7cGFkZGluZy10b3A6MH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFJvd0JvdHRvbVBhZGRpbmd7cGFkZGluZy1ib3R0b206MTJweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFRleHRQYWRkaW5ne3BhZGRpbmctcmlnaHQ6MjRweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFRleHRSb3d7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2NvbG9yOiM2MDYwNjA7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDB9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25TdGFja3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25TdGFja1RvcEJ1dHRvbnttYXJnaW46MCAwIDhweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd1RyYWlsaW5ney1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0xlZnRCdXR0b257bWFyZ2luLXJpZ2h0OjhweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0Z1bGxXaWR0aHt3aWR0aDoxMDAlfS55dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93RXhwYW5key1tb3otYm94LWZsZXg6MTtmbGV4OjF9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dTaHJpbmt7LW1vei1ib3gtZmxleDowO2ZsZXg6MH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0hpZGRlbntkaXNwbGF5Om5vbmV9Lnl0U3BlY0ljb25TaGFwZUhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0U3Bpbm5lclNoYXBlV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNwaW5uZXJTaGFwZVNwaW5uZXJ7ZGlzcGxheTpibG9jazstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjEycHggYXV0bzt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoycHggc29saWQgI2VlZTtib3JkZXItdG9wLWNvbG9yOiM2NjY7YW5pbWF0aW9uOnNwaW5uZXIgLjhzIGxpbmVhciBpbmZpbml0ZX0ueXRTcGlubmVyU2hhcGVTcGlubmVyOm5vdChbaGlkZGVuXSl7Y29sb3I6IzMzMztmb250LXNpemU6MS42cmVtfUBrZXlmcmFtZXMgc3Bpbm5lcnswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0ueXRMb3R0aWVDb21wb25lbnRIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0TG90dGllQ29tcG9uZW50SG9zdCBzdmd7ZGlzcGxheTpibG9ja30ueXRBbmltYXRlZEljb25Ib3N0e2Rpc3BsYXk6YmxvY2t9Lnl0QW5pbWF0ZWRJY29uSG9zdCAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3QgLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDttYXJnaW46MH0ueXRBbmltYXRlZEljb25Ib3N0IC5hbmltYXRlZC1saWtlLWljb24gLmFuaW1hdGVkLWxpa2UtaWNvbiwueXRBbmltYXRlZEljb25Ib3N0IC5hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24sLnl0QW5pbWF0ZWRJY29uSG9zdCAuY3VzdG9tLWFuaW1hdGVkLWxpa2UtaWNvbiAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3QgLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LC0xMnB4KTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS55dEFuaW1hdGVkSWNvbkhvc3QgLmFuaW1hdGVkLXN1YnNjcmliZS1pY29ue3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEycHgsLTEycHgpO2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9Lnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3RbZGF0YS1zaXplPVwiMThcIl0gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ueXRBbmltYXRlZEljb25Ib3N0W2RhdGEtc2l6ZT1cIjE4XCJdIC5hbmltYXRlZC1saWtlLWljb24gLmFuaW1hdGVkLWxpa2UtaWNvbiwueXRBbmltYXRlZEljb25Ib3N0W2RhdGEtc2l6ZT1cIjE4XCJdIC5hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24sLnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuY3VzdG9tLWFuaW1hdGVkLWxpa2UtaWNvbiAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3RbZGF0YS1zaXplPVwiMThcIl0gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZSgtOXB4LC05cHgpO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuYW5pbWF0ZWQtc3Vic2NyaWJlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZSgtOXB4LC05cHgpO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0SG9yaXpvbnRhbFNsaWRlclZpZXdNb2RlbEhvc3R7ZGlzcGxheTpibG9ja30ueXRTbGlkZXJTaGFwZUhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxNnB4IDEycHh9Lnl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9ue2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9Lnl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjA1KTtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dFNsaWRlclNoYXBlSG9zdEluY3JlbWVudEJ1dHRvbkljb257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMzAzMDM7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ueXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b246ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6IzkwOTA5MH0ueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXJ7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMzstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjAgMTJweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nLWJvdHRvbTowOy0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoyNHB4fS55dFNsaWRlclNoYXBlSG9zdFNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIzAzMDMwMyAwLCMwMzAzMDMgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgMTAwJSk7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0U2xpZGVyU2hhcGVIb3N0U2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCMwMzAzMDMgMCwjMDMwMzAzIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjOTA5MDkwIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjOTA5MDkwIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNsaWRlclNoYXBlSG9zdFNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6IzAzMDMwMzt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi10b3A6LTZweH0ueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7YmFja2dyb3VuZDojMDMwMzAzO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U2xpZGVyU2hhcGVIb3N0U2xpZGVyOjotbXMtdGh1bWJ7YmFja2dyb3VuZDojMDMwMzAzO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U2xpZGVyU2hhcGVWZXJ0aWNhbHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW46MDt3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7ZGlyZWN0aW9uOnJ0bH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Zm9udDppbmhlcml0O2NvbG9yOiMwMzAzMDM7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbjowIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7cGFkZGluZy1ib3R0b206MDstLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MjRweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AsIzAzMDMwMyAwLCMwMzAzMDMgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgMTAwJSk7d2lkdGg6NHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwjMDMwMzAzIDAsIzAzMDMwMyB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKTt3aWR0aDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1ie2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOiMwMzAzMDM7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tcmlnaHQ6LTZweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotbW96LXJhbmdlLXRodW1ie2JhY2tncm91bmQ6IzAzMDMwMzt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXI6Oi1tcy10aHVtYntiYWNrZ3JvdW5kOiMwMzAzMDM7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweH1AbWVkaWEgKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXJ7LW1vei1hcHBlYXJhbmNlOmF1dG87YXBwZWFyYW5jZTphdXRvOy13ZWJraXQtYXBwZWFyYW5jZTphdXRvfX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzoxMHB4IDE2cHg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7bWluLWhlaWdodDo0OHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxIb3N0SGlkZURpdmlkZXJ7Ym9yZGVyLWJvdHRvbTpub25lfS55dFBhbmVsSGVhZGVyVmlld01vZGVsSG9zdENvbXBhY3R7cGFkZGluZzo4cHggMTJweH0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZUhlYWRlcnttYXJnaW46MH0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyTm9uSW50ZXJhY3RpdmV7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxle2NvbG9yOiMwMzAzMDM7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZXttYXgtaGVpZ2h0OjIuNnJlbX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFN1YnRpdGxle21hcmdpbi10b3A6MnB4O2NvbG9yOiM2MDYwNjA7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjEuOHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRQYW5lbEhlYWRlclZpZXdNb2RlbFN1YnRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxTdWJ0aXRsZXttYXgtaGVpZ2h0OjEuOHJlbX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQnV0dG9uc3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO21hcmdpbi1sZWZ0OjEycHh9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b246bm90KDpsYXN0LWNoaWxkKXtwYWRkaW5nLXJpZ2h0OjI0cHh9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtvdXRsaW5lOm5vbmV9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvckZvY3VzZWR7b3V0bGluZToycHggc29saWQgY3VycmVudENvbG9yfS55dFNoZWV0Vmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0U2hlZXRWaWV3TW9kZWxDb250ZXh0dWFse2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCA0cHggMzJweCAwIHJnYmEoMCwwLDAsMC4xKTtvdmVyZmxvdzpoaWRkZW59Lnl0U2hlZXRWaWV3TW9kZWxQYWRkZWRDb250ZW50e3BhZGRpbmc6MTZweCAwfS55dFNoZWV0Vmlld01vZGVsRGlzYWJsZUJhY2tkcm9wRmlsdGVye2JhY2tkcm9wLWZpbHRlcjpub25lfS55dFNwZWNCb3R0b21TaGVldExheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWluLWhlaWdodDowfS55dFNwZWNCb3R0b21TaGVldExheW91dENvbnRhaW5lcntib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO21hcmdpbjowIDhweCAyNHB4O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwfUBtZWRpYSAobWluLWFzcGVjdC1yYXRpbzoxMy85KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSkgYW5kIChtaW4td2lkdGg6NDE2cHgpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSBhbmQgKG1pbi13aWR0aDo0MTZweCl7Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Q29udGFpbmVye3dpZHRoOjQwMHB4O21hcmdpbjowIGF1dG8gMjRweCBhdXRvfX0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVye292ZXJmbG93OmhpZGRlbjstbW96LWJveC1mbGV4OjA7ZmxleDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmY7Y3Vyc29yOi1tb3otZ3JhYjtjdXJzb3I6Z3JhYn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVySXNEcmFnZ2luZ3tjdXJzb3I6LW1vei1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV3JhcHBlckJvdHRvbUJvcmRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0RHJhZ0xpbmV7YmFja2dyb3VuZDojMDMwMzAzO29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDo0cHg7bWFyZ2luOjAgYXV0bzt3aWR0aDo0MHB4O21hcmdpbi10b3A6OHB4fS55dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcnstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDo4cHh9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV2l0aFRpdGxle21hcmdpbi1ib3R0b206N3B4fS55dFNwZWNCb3R0b21TaGVldExheW91dFRpdGxlV3JhcHBlcnstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLWxlZnQ6MTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiMwMzAzMDM7bWF4LWhlaWdodDoyMHB4O21hcmdpbjowfS55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6IzYwNjA2MDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDo0cHg7bWF4LWhlaWdodDoxNnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dE1vZGVybiAueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuOHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX1AbWVkaWEgKG1heC13aWR0aDo1MjcuOXB4KXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFRpdGxle21heC1oZWlnaHQ6Mi44cmVtfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dFNwZWNCb3R0b21TaGVldExheW91dE1vZGVybiAueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXttYXgtaGVpZ2h0OjIuNnJlbX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDoxLjhyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle21heC1oZWlnaHQ6MS44cmVtfS55dFNwZWNCb3R0b21TaGVldExheW91dEFjdGlvbkhlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMzAzMDM7bWFyZ2luOjAgMTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRDb250ZW50V3JhcHBlcnstbW96LWJveC1mbGV4OjE7ZmxleDoxOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO292ZXJmbG93LXk6c2Nyb2xsfS55dFNwZWNCb3R0b21TaGVldExheW91dEJvdHRvbVNoZWV0Q29udGVudHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Y29sb3I6IzAzMDMwM30ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJXcmFwcGVye2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47LW1vei1ib3gtZmxleDowO2ZsZXg6bm9uZTtwb3NpdGlvbjpzdGlja3k7Ym90dG9tOjB9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyQnV0dG9uV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW46MTJweCAwfS55dFNwZWNCb3R0b21TaGVldExheW91dEZvb3RlckJ1dHRvbldyYXBwZXJMYW5kc2NhcGVCdXR0b25XcmFwcGVye21hcmdpbjo2cHggMH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDoxMnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dFNlY29uZGFyeUJ1dHRvblRyYWlsaW5nUGFpcnstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0U2Vjb25kYXJ5QnV0dG9uU3BsaXRQYWlyey1tb3otYm94LWZsZXg6MTtmbGV4OjE7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25QcmltYXJ5U3BsaXRQYWlyey1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dFNwZWNCb3R0b21TaGVldExheW91dFByaW1hcnlCdXR0b25EZWZhdWx0e21hcmdpbjowIDEycHg7d2lkdGg6MTAwJX0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uVHJhaWxpbmdQYWlyey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tcmlnaHQ6MTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uUHJpbWFyeVNwbGl0UGFpciwueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uU3BsaXRQYWlyey1tb3otYm94LWZsZXg6MTtmbGV4OjE7bWFyZ2luLXJpZ2h0OjEycHg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJMYWJlbFdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjowIDEycHg7aGVpZ2h0OjMwcHh9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyTGFiZWxXcmFwcGVyV2l0aG91dEJ1dHRvbnN7bWFyZ2luLWJvdHRvbToxMnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dExlYWRpbmdMYWJlbCwueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUcmFpbGluZ0xhYmVse21hcmdpbi10b3A6MTJweDtjb2xvcjojNjA2MDYwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwfS55dENvbnRleHR1YWxTaGVldExheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MTAwJTttaW4td2lkdGg6MTI4cHg7bWF4LXdpZHRoOjQwMHB4O3dpZHRoOjEwMCU7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7bWluLWhlaWdodDowfS55dENvbnRleHR1YWxTaGVldExheW91dEhvc3RPbGRNaW5XaWR0aHttaW4td2lkdGg6MjU2cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0QWRkUGFkZGluZ3twYWRkaW5nLWJvdHRvbTo4cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0SGVhZGVyQ29udGFpbmVyey1tb3otYm94LWZsZXg6MDtmbGV4OjB9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0Q29udGVudENvbnRhaW5lcnstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtzY3JvbGxiYXItd2lkdGg6dGhpbn0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRDb250ZW50Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjE2cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0Q29udGVudENvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjRweCBzb2xpZCB0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRDb250ZW50Q29udGFpbmVyOmhvdmVye3Njcm9sbGJhci1jb2xvcjojOTA5MDkwIHRyYW5zcGFyZW50fS55dENvbnRleHR1YWxTaGVldExheW91dENvbnRlbnRDb250YWluZXI6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzkwOTA5MH0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRGb290ZXJDb250YWluZXJ7LW1vei1ib3gtZmxleDowO2ZsZXg6MH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MTJweH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTcGVlZEluZGljYXRvckNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOmF1dG99Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXl7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtjb2xvcjojMDMwMzAzO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6Mi44cmVtO2xpbmUtaGVpZ2h0OjMuOHJlbTtmb250LXdlaWdodDo5MDB9QG1lZGlhIChtYXgtd2lkdGg6NTI3LjlweCl7Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXl7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjkwMH19Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUHJlbWl1bUJhZGdle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwMCU7bWFyZ2luLXJpZ2h0OjhweH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTbGlkZXJDb250YWluZXJ7bWFyZ2luOjhweCAwfS55dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFBsYXliYWNrU3BlZWRCdXR0b257bWFyZ2luOjAgNHB4fS55dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmZsZXgtc3RhcnR9Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWxTcGVlZExhYmVse21hcmdpbi10b3A6NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6IzAzMDMwM30ueXRXZWJTY3JpbUhvc3R7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjgpfS55dFdlYlNjcmltSG9zdFJlbGF0aXZle3Bvc2l0aW9uOmFic29sdXRlfS55dFdlYlNjcmltSG9zdE1vZGVybk92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyl9Lnl0V2ViU2NyaW1Ib3N0Qm90dG9tU2hlZXR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNil9Lnl0V2ViU2NyaW1Ib3N0RW5nYWdlbWVudFBhbmVse3otaW5kZXg6MDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTt0b3A6MTAwdnd9Lnl0V2ViU2NyaW1Ib3N0RHJhZ2dhYmxlRW5nYWdlbWVudFBhbmVse3otaW5kZXg6Mzt0b3A6MH0ueXRXZWJTY3JpbUhvc3REcmF3ZXJMYXlvdXR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9Lnl0V2ViU2NyaW1EaWFsb2dDb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo0fS55dFdlYlNjcmltSGlkZGVuQnV0dG9ue3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4O3BhZGRpbmc6MDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7Zm9udDppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWJvdHRvbS1zaGVldC1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo1fWJvdHRvbS1zaGVldC1jb250YWluZXIgLmNsb3NlLWJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH1jMy1vdmVybGF5LmJvdHRvbS1zaGVldC1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjYpfVtib3R0b20tc2hlZXQtb3Blbl17b3ZlcmZsb3c6aGlkZGVufVttb2RhbC1vcGVuLWJvZHlde3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowfS5iMy1pZnJhbWUtYW5jZXN0b3JbbW9kYWwtb3Blbi1ib2R5XXtwb3NpdGlvbjphYnNvbHV0ZX0ubW9kYWwtaGlkZGVuLWJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0uYnV0dG9uLXdpdGgtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTttaW4td2lkdGg6NS4xNGVtO21hcmdpbjowIC4yOWVtO2ZvbnQtc2l6ZToxLjRyZW07Ym9yZGVyLXJhZGl1czozcHh9LmJ1dHRvbi13aXRoLWljb24tYnV0dG9ue3BhZGRpbmc6LjdlbSAuNTdlbX0uYnV0dG9uLXdpdGgtaWNvbi5jb21wYWN0e21hcmdpbjotLjdlbSAtLjU3ZW19LmJ1dHRvbi13aXRoLWljb24uY29tcGFjdCsuYnV0dG9uLXdpdGgtaWNvbi5jb21wYWN0e21hcmdpbi1sZWZ0Oi43ZW19LmJ1dHRvbi13aXRoLWljb24taW5uZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYnV0dG9uLXdpdGgtaWNvbi1idXR0b25bZGlzYWJsZWRdLC5idXR0b24td2l0aC1pY29uLmRpc2FibGVkIC5idXR0b24td2l0aC1pY29uLWJ1dHRvbntjb2xvcjojOTA5MDkwfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9CUkFORF17Y29sb3I6I2UxMDAyZH0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtc3R5bGU9U1RZTEVfUFJJTUFSWV06bm90KFtkaXNhYmxlZD10cnVlXSl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwNjVmZDR9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1BSSU1BUlldW2Rpc2FibGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1RFWFRde2NvbG9yOiM2MDYwNjB9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1RFWFRdIC5sb2dvLWFycm93e2ZpbGw6I2ZmZn0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtc3R5bGU9U1RZTEVfQkxVRV9URVhUXXtjb2xvcjojMDY1ZmQ0fS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9CTFVFX1RFWFRfV0lUSF9JTlZFUlNFX1RIRU1FXXtjb2xvcjojM2VhNmZmfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9ERVNUUlVDVElWRV17YmFja2dyb3VuZC1jb2xvcjojZTEwMDJkO2JvcmRlci1jb2xvcjojZTEwMDJkO2NvbG9yOiNmZmZ9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1NVR0dFU1RJVkVde2JvcmRlcjoxcHggc29saWQgIzA2NWZkNDtjb2xvcjojMDY1ZmQ0fS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9PVkVSTEFZXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKTtjb2xvcjojZmZmfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9EQVJLXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX0lOQUNUSVZFX09VVExJTkVde2NvbG9yOiM2MDYwNjA7Ym9yZGVyOjFweCBzb2xpZCAjNjA2MDYwO3BhZGRpbmc6NXB4IDExcHh9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLWljb24tb25seT10cnVlXXttaW4td2lkdGg6MDttYXJnaW46MH0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtaWNvbi1vbmx5PWZhbHNlXSAuYnV0dG9uLXJlbmRlcmVyLWljb257bWFyZ2luOjAgOHB4fS5idXR0b24tcmVuZGVyZXItdGV4dHthbGlnbi1zZWxmOmNlbnRlcjttaW4taGVpZ2h0OjFlbTtsaW5lLWhlaWdodDoxZW07Zm9udC13ZWlnaHQ6NTAwfVtpcy1idXN5PXRydWVdIC5idXR0b24tcmVuZGVyZXItaWNvbixbaXMtYnVzeT10cnVlXSAuYnV0dG9uLXJlbmRlcmVyLXRleHR7dmlzaWJpbGl0eTpoaWRkZW59LmJ1dHRvbi13aXRoLWljb24tc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDttYXJnaW46YXV0b30uYnV0dG9uLXJlbmRlcmVyLXdpdGgtYW5pbWF0aW9uIC5idXR0b24td2l0aC1pY29uLWJ1dHRvbntvdmVyZmxvdzp2aXNpYmxlfWMzLWljb257ZGlzcGxheTotbW96LWlubGluZS1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXNocmluazowO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7ZmlsbDpjdXJyZW50Q29sb3I7c3Ryb2tlOm5vbmV9W2Rpcj1ydGxdIGMzLWljb25bZmxpcC1mb3ItcnRsPXRydWVde3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5pY29uLWJ1dHRvbntib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cGFkZGluZzo4cHg7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fWMzLWljb24gc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9YzMtaWNvbi5pY29uLXN0YXRlLW91dGxpbmVbaWNvbi1zdGF0ZS1maWxsZWRde2Rpc3BsYXk6bm9uZX1jMy1pY29uLmljb24tc3RhdGUtZmlsbGVkW2ljb24tc3RhdGUtb3V0bGluZV17ZGlzcGxheTpub25lfS5waXZvdC1iYXItaXRlbS10YWIgYzMtaWNvbltpY29uLXN0YXRlLWZpbGxlZF17ZGlzcGxheTpub25lfS5waXZvdC1iYXItaXRlbS10YWIgYzMtaWNvbltpY29uLXN0YXRlLW91dGxpbmVde2Rpc3BsYXk6YmxvY2t9LnBpdm90LWJhci1pdGVtLXRhYlthcmlhLXNlbGVjdGVkPXRydWVdIGMzLWljb25baWNvbi1zdGF0ZS1maWxsZWRde2Rpc3BsYXk6YmxvY2t9LnBpdm90LWJhci1pdGVtLXRhYlthcmlhLXNlbGVjdGVkPXRydWVdIGMzLWljb25baWNvbi1zdGF0ZS1vdXRsaW5lXXtkaXNwbGF5Om5vbmV9I21lbnUsLm1lbnUtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjR9Lm1lbnUtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7bWF4LWhlaWdodDoxMDAlO292ZXJmbG93LXk6YXV0bztjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjNweH0ubWVudS1jb250ZW50Lm1lbnUtYm90dG9te2JvdHRvbTowO2NvbG9yOiMwMzAzMDM7cGFkZGluZzowO3Bvc2l0aW9uOmZpeGVkO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmJvdHRvbS1tZW51LWNhbmNlbHtib3JkZXItdG9wOjFweCBzb2xpZCAjZjFmMWYxO3BhZGRpbmc6OHB4IDB9Lm1lbnUtY29udGVudD5he2Rpc3BsYXk6YmxvY2t9Lm1lbnUtY2FuY2VsLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5tZW51LWNhbmNlbC1pY29ue21hcmdpbjowIDhweH0ubWVudS1jb250ZW50Lm1lbnUtYm90dG9tIGMzLWljb257Y29sb3I6IzAzMDMwMzttYXJnaW46MCAzMnB4IDAgMH0ubWVudS1jb250ZW50Om5vdCgubWVudS1zaG93LWljb25zKSAubWVudS1pdGVtLWJ1dHRvbiBjMy1pY29ue2Rpc3BsYXk6bm9uZX1AbWVkaWEgKG1pbi13aWR0aDozMzBweCl7Lm1lbnUtY29udGVudDpub3QoLm1lbnUtYm90dG9tKXttaW4td2lkdGg6MjUwcHg7bWF4LXdpZHRoOjM1NnB4O21hcmdpbjo0MHB4fX0ubWVudS1mdWxsLXdpZHRoIC5tZW51LWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjFweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1lbnUtY29udGVudC5yb3VuZGVkLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjhweH0uaWNvbi1idXR0b24uc21hbGx7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3dpZHRoOjE2cHh9eXRtLW1lbnUtaXRlbXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDB9eXRtLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4taGVpZ2h0OjQ4cHg7cGFkZGluZzo4cHggMTZweDttYXJnaW4tbGVmdDowO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjppbml0aWFsO3RleHQtdHJhbnNmb3JtOnVuc2V0Oy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9eXRtLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSl9eXRtLW1lbnUtaXRlbSBjMy1pY29ue21hcmdpbi1yaWdodDoyNHB4fS5tZW51LWJvdHRvbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxLjZyZW07cGFkZGluZzoxMXB4IDE2cHh9Lnl0d1BsYXllckJvdHRvbUNvbnRyb2xzSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJCb3R0b21Db250cm9sc0Z1bGxzY3JlZW5CdXR0b25XcmFwcGVyey1tb3otbWFyZ2luLXN0YXJ0OmF1dG87bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS55dEJhZGdlU2hhcGVIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzowIDRweH0ueXRCYWRnZVNoYXBlVHlwb2dyYXBoeXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NTAwfS55dEJhZGdlU2hhcGVJY29ue2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0OjJweDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257bWFyZ2luLXJpZ2h0OjJweDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS55dEJhZGdlU2hhcGVOb1RleHR7cGFkZGluZzowIDFweDttaW4taGVpZ2h0OjE4cHh9Lnl0QmFkZ2VTaGFwZU5vVGV4dCAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2V7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzoxcHggNHB4fS55dEJhZGdlU2hhcGVUaHVtYm5haWxCYWRnZSAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6NHB4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbEJhZGdlLnl0QmFkZ2VTaGFwZU5vVGV4dCAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2VSZWRlc2lnbntiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjAgNnB4fS55dEJhZGdlU2hhcGVTdGF0dXNCYWRnZXtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjFweCA0cHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c0JhZGdlIC55dEJhZGdlU2hhcGVJY29ue21hcmdpbi1yaWdodDo0cHg7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0ueXRCYWRnZVNoYXBlU3RhdHVzQmFkZ2UueXRCYWRnZVNoYXBlTm9UZXh0IC55dEJhZGdlU2hhcGVJY29ue21hcmdpbi1yaWdodDowfS55dEJhZGdlU2hhcGVUZXh0e2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS55dEJhZGdlU2hhcGVUZXh0Q2xpcFRleHRPdmVyZmxvd3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRCYWRnZVNoYXBlVGV4dEhhc011bHRpcGxlQmFkZ2VzSW5Sb3d7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjIwY2h9Lnl0QmFkZ2VTaGFwZURlZmF1bHR7XG4gIC8qICFrZWVwICovY29sb3I6IzYwNjA2MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lnl0QmFkZ2VTaGFwZURlZmF1bHQueXRCYWRnZVNoYXBlT3ZlcmxheXtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVEZWZhdWx0Lnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojNjA2MDYwO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlTWVkaWF7XG4gIC8qICFrZWVwICovY29sb3I6IzYwNjA2MDtvdXRsaW5lOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7b3V0bGluZS1vZmZzZXQ6LTFweH0ueXRCYWRnZVNoYXBlTWVkaWEueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM2MDYwNjA7b3V0bGluZToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZU1lZGlhT3ZlcmxheXtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO291dGxpbmU6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtvdXRsaW5lLW9mZnNldDotMXB4fS55dEJhZGdlU2hhcGVNZWRpYU92ZXJsYXkueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7b3V0bGluZToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVByb21vdGVke1xuICAvKiAha2VlcCAqL2NvbG9yOiMwMzAzMDM7cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZVByb21vdGVkLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojMDMwMzAzO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlUHJvbW90ZWRJbnZlcnRlZC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZVRpbWVseXtcbiAgLyogIWtlZXAgKi9jb2xvcjojNjA2MDYwfS55dEJhZGdlU2hhcGVUaW1lbHkgLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGltZWx5e3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVUaW1lbHkueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM2MDYwNjB9Lnl0QmFkZ2VTaGFwZVRpbWVseS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGltZWx5Lnl0QmFkZ2VTaGFwZU1vZGVybntwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlUHJlbWl1bXtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6I2UxMDAyZH0ueXRCYWRnZVNoYXBlUHJlbWl1bS55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNlMTAwMmR9Lnl0QmFkZ2VTaGFwZVNhbGV7XG4gIC8qICFrZWVwICovY29sb3I6I2MzMDAyN30ueXRCYWRnZVNoYXBlU2FsZSAueXRCYWRnZVNoYXBlSWNvbntjb2xvcjojYzMwMDI3fS55dEJhZGdlU2hhcGVTYWxle3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVTYWxlLnl0QmFkZ2VTaGFwZU1vZGVybiwueXRCYWRnZVNoYXBlU2FsZS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2MzMDAyN30ueXRCYWRnZVNoYXBlU2FsZS55dEJhZGdlU2hhcGVNb2Rlcm57cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZU1lbWJlcnNoaXB7XG4gIC8qICFrZWVwICovY29sb3I6IzEwNzUxNjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lnl0QmFkZ2VTaGFwZU1lbWJlcnNoaXAueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiMxMDc1MTY7YmFja2dyb3VuZDpub25lO3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVDb21tZXJjZXtcbiAgLyogIWtlZXAgKi9jb2xvcjojMTA3NTE2O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ueXRCYWRnZVNoYXBlQ29tbWVyY2UueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiMxMDc1MTY7YmFja2dyb3VuZDpub25lO3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVMaXZle1xuICAvKiAha2VlcCAqL2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZUxpdmUueXRCYWRnZVNoYXBlT3ZlcmxheXtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyMjUsMCw0NSwwLjkpfS55dEJhZGdlU2hhcGVMaXZlLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyMjUsMCw0NSwwLjkpfS55dEJhZGdlU2hhcGVTdGF0dXNOZXd7XG4gIC8qICFrZWVwICovY29sb3I6IzA2NWZkNDtvdXRsaW5lOjFweCBzb2xpZCAjMDY1ZmQ0O291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c05ldy55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzA2NWZkNDtvdXRsaW5lOjFweCBzb2xpZCAjMDY1ZmQ0O291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c0NvbXBsZXRle1xuICAvKiAha2VlcCAqL2NvbG9yOiMwMDU5MTc7YmFja2dyb3VuZDojZGVmZmRlfS55dEJhZGdlU2hhcGVTdGF0dXNDb21wbGV0ZS55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAwNTkxNztiYWNrZ3JvdW5kOiNkZWZmZGV9Lnl0QmFkZ2VTaGFwZVN0YXR1c1dhcm5pbmd7XG4gIC8qICFrZWVwICovY29sb3I6IzdjMjkwMDtiYWNrZ3JvdW5kOiNmZmVhY2Z9Lnl0QmFkZ2VTaGFwZVN0YXR1c1dhcm5pbmcueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM3YzI5MDA7YmFja2dyb3VuZDojZmZlYWNmfS55dEJhZGdlU2hhcGVTdGF0dXNFcnJvcntcbiAgLyogIWtlZXAgKi9jb2xvcjojOTkwNDEyO2JhY2tncm91bmQ6cmdiYSgyNTUsODUsMTE5LDAuMil9Lnl0QmFkZ2VTaGFwZVN0YXR1c0Vycm9yLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojOTkwNDEyO2JhY2tncm91bmQ6cmdiYSgyNTUsODUsMTE5LDAuMil9Lnl0QmFkZ2VTaGFwZVN0YXR1c0RlZmF1bHR7XG4gIC8qICFrZWVwICovY29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ueXRCYWRnZVNoYXBlU3RhdHVzRGVmYXVsdC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsRGVmYXVsdHtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxEZWZhdWx0Lnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxMaXZle1xuICAvKiAha2VlcCAqL2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbExpdmUueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWx7XG4gIC8qICFrZWVwICovY29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOiNmZmZ9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwgLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsU3BlY2lhbC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOiNmZmZ9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwueXRCYWRnZVNoYXBlTW9kZXJuIC55dEJhZGdlU2hhcGVJY29ue2NvbG9yOiNlMTAwMmR9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHRSZWRlc2lnbntcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxEZWZhdWx0UmVkZXNpZ24ueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9Lnl0QmFkZ2VTaGFwZUFke2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDMwMzAzO3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjA7Zm9udC1zaXplOnVuc2V0O2xpbmUtaGVpZ2h0OnVuc2V0fS55dEJhZGdlU2hhcGVBZC55dEJhZGdlU2hhcGVBZHNJbmNsdWRlRG90OmFmdGVye2NvbnRlbnQ6XCLCt1wiOy1tb3otcGFkZGluZy1lbmQ6NHB4O3BhZGRpbmctaW5saW5lLWVuZDo0cHg7LW1vei1wYWRkaW5nLXN0YXJ0OjRweDtwYWRkaW5nLWlubGluZS1zdGFydDo0cHh9Lnl0QmFkZ2VTaGFwZUFkLnl0QmFkZ2VTaGFwZU92ZXJsYXl7Y29sb3I6I2ZmZn0ueXRCYWRnZVNoYXBlTWVkaXVtRm9udEFkQmFkZ2V7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDB9Lnl0QmFkZ2VTaGFwZUxhcmdlRm9udEFkQmFkZ2V7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRCYWRnZVNoYXBlSXNFbXB0eXtkaXNwbGF5Om5vbmV9LmFjY291bnRJbmZvSG9zdHtkaXNwbGF5OmJsb2NrfS5saWtlLWJ1dHRvbi1yZW5kZXJlciBbYXJpYS1wcmVzc2VkPXRydWVdIGMzLWljb257Y29sb3I6IzA2NWZkNH0ubGlrZS1idXR0b24tcmVuZGVyZXIgW2FyaWEtcHJlc3NlZD10cnVlXSBjMy1pY29uIHBhdGh7ZmlsbDojM2VhNmZmO3N0cm9rZTojZmZmO3N0cm9rZS13aWR0aDoxcHh9eXRtLW1lbnUtcmVuZGVyZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9LmJvdHRvbS1zaGVldC1tZWRpYS1tZW51LWl0ZW0geXRtLW1lbnUtaXRlbXtwYWRkaW5nOjA7aGVpZ2h0OjQ4cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYm90dG9tLXNoZWV0LW1lZGlhLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjA7bWFyZ2luLWxlZnQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwfS5ib3R0b20tc2hlZXQtbWVkaWEtbWVudS1pdGVtIGMzLWljb257bWFyZ2luLXJpZ2h0OjEycHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVye21hcmdpbjo1cHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyW3RodW1ibmFpbC1zaXplPXNtYWxsXXttYXJnaW46MnB4fXl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlclt0aHVtYm5haWwtc2l6ZT1tZWRpdW1de21hcmdpbjo0cHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyW3RodW1ibmFpbC1zaXplPWxhcmdlXXttYXJnaW46OHB4fXl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlcltkYXRhLXN0eWxlPUxJVkVdLHl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlcltkYXRhLXN0eWxlPVNIT1JUU117dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWltZy5jdXN0b20tdGh1bWJuYWlsLnZpZGVvLXRodW1ibmFpbC1pbWd7b2JqZWN0LWZpdDpzY2FsZS1kb3duO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJX0udmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LC52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWxhcmdle3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7b3ZlcmZsb3c6aGlkZGVufS52aWRlby10aHVtYm5haWwtaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3dpZHRoOjEwMCU7bWluLWhlaWdodDoxMDAlO21hcmdpbjphdXRvfS52aWRlby10aHVtYm5haWwtYmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMSl9LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctYm90dG9tOjU2LjI1JX0udmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5zdGFja2Vke2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmfS52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWNvbXBhY3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2MHB4O2hlaWdodDo5MHB4fS5jdXN0b20tdGh1bWJuYWlsLWJhY2tncm91bmQtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4MHB4O2hlaWdodDoxODBweH0uY3VzdG9tLXRodW1ibmFpbC1iYWNrZ3JvdW5kLWNvbnRhaW5lciAuY3VzdG9tLXRodW1ibmFpbHtvcGFjaXR5Oi43O2ZpbHRlcjpibHVyKDMwcHgpfS52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWNvbXBhY3Qtcm91bmRlZHtib3JkZXItcmFkaXVzOjhweH0ub3JpZ2luYWwtYXNwZWN0LXJhdGlvIGltZ3toZWlnaHQ6MTAwJTt3aWR0aDphdXRvfS5zdGFja2Vke2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmfUBtZWRpYSAobWF4LXdpZHRoOjU0OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuYmlnLXNob3J0cy1zaW5nbGV0b24gLnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7cGFkZGluZy1ib3R0b206MTI1JX0uYmlnLXNob3J0cy1zaW5nbGV0b24gLnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2UgaW1ne29iamVjdC1maXQ6Y292ZXI7d2lkdGg6MTAwJX19QG1lZGlhIChtYXgtd2lkdGg6NTQ5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe3l0bS1pdGVtLXNlY3Rpb24tcmVuZGVyZXI6Zmlyc3Qtb2YtdHlwZSAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZXttYXJnaW4tdG9wOjB9LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2U6d2hlcmUoLm5vdC1yZW5kZXJlZC1mcm9tLXJpY2gtaXRlbSl7bWFyZ2luOi0xM3B4IC0xMnB4IDA7cGFkZGluZy10b3A6MTNweH0uc3R5bGUtcmVjb21tZW5kYXRpb25zLWluLXBvcnRyYWl0IC52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWxhcmdlLnJvdW5kZWQtdGh1bWJuYWlse2JvcmRlci1yYWRpdXM6MTJweDttYXJnaW46MDtwYWRkaW5nLXRvcDowfX1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7bWFyZ2luOjA7cGFkZGluZy10b3A6MH19LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2UudGh1bWJuYWlsLWNvdmVyLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czoxMnB4fUBtZWRpYSAobWluLXdpZHRoOjU1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KSwobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2Uucm91bmRlZC10aHVtYm5haWx7Ym9yZGVyLXJhZGl1czoxMnB4fX1AbWVkaWEgKG1pbi1hc3BlY3QtcmF0aW86MTMvOSkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbHtib3JkZXItcmFkaXVzOjEycHh9fUBtZWRpYSAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnN0eWxlLXJlY29tbWVuZGF0aW9ucy1pbi1wb3J0cmFpdCAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbCxwbGF5ZXItZnVsbHNjcmVlbi1jb250cm9scyAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbHtib3JkZXItcmFkaXVzOjEycHh9fS52aWRlby10aHVtYm5haWwtZmlsbC1wYXJlbnR7bWFyZ2luOjA7cGFkZGluZy10b3A6MDtib3JkZXItcmFkaXVzOjEycHh9Lnl0U3BlY0RpYWxvZ0xheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRTcGVjRGlhbG9nTGF5b3V0Q29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206MjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0VG9wUGFkZGluZ3twYWRkaW5nLXRvcDoyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRJY29ue21hcmdpbjoyNHB4IDI0cHggMH0ueXRTcGVjRGlhbG9nTGF5b3V0SWNvbkFib3ZlTWVkaWF7bWFyZ2luLWJvdHRvbToyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRJY29uQ2VudGVyQWxpZ257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dEFzc2V0e3dpZHRoOjEwMCU7bWluLWhlaWdodDowO2ZsZXgtc2hyaW5rOjQ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS55dFNwZWNEaWFsb2dMYXlvdXRBc3NldEl0ZW17d2lkdGg6MTAwJTtmbGV4LXNocmluazowO29iamVjdC1maXQ6Y292ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckNvbnRhaW5lcntwYWRkaW5nOjI0cHggMjRweCA4cHh9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjB9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckFib3ZlQXNzZXR7cGFkZGluZy1ib3R0b206MjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7Y29sb3I6IzAzMDMwMzstbW96LWJveC1mbGV4OjE7ZmxleDoxO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjUuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7bWF4LWhlaWdodDo1LjZyZW19Lnl0U3BlY0RpYWxvZ0xheW91dExlYWRpbmdBY3Rpb25IZWFkZXJ7Y29sb3I6IzAzMDMwMzttYXJnaW4tcmlnaHQ6MTJweH0ueXRTcGVjRGlhbG9nTGF5b3V0VHJhaWxpbmdBY3Rpb25IZWFkZXJ7Y29sb3I6IzAzMDMwMzttYXJnaW4tbGVmdDphdXRvfS55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50e2NvbG9yOiMwMzAzMDM7b3ZlcmZsb3cteTphdXRvfS55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50SW5uZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjAgMjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0Rm9vdGVyQ29udGFpbmVye3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1sZWZ0OjI0cHg7cGFkZGluZy1yaWdodDoyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRGb290ZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWZsb3c6cm93IHdyYXAtcmV2ZXJzZTtmbGV4LXNocmluazowO21hcmdpbjotOHB4IDAgMCAtOHB4fS55dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lRW5key1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDplbmR9Lnl0U3BlY0RpYWxvZ0xheW91dEJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjhweCAwIDAgOHB4fS55dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lU3RyZXRjaGVkey1tb3otYm94LWZsZXg6MTtmbGV4OjF9Lnl0U3BlY0RpYWxvZ0xheW91dENlbnRlckFsaWduIC55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50LC55dFNwZWNEaWFsb2dMYXlvdXRDZW50ZXJBbGlnbiAueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0J1dHRvbnNTdGFja2Vkey1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1AbWVkaWEgKG1heC13aWR0aDozMzBweCl7Lnl0U3BlY0RpYWxvZ0xheW91dFJlc3BvbnNpdmV7bWluLXdpZHRoOmNhbGMoMTAwdncgLSA5NnB4KTttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMHZofX1AbWVkaWEgKG1pbi13aWR0aDozMzFweCkgYW5kIChtYXgtd2lkdGg6NTI3cHgpey55dFNwZWNEaWFsb2dMYXlvdXRSZXNwb25zaXZle21pbi13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWluLXdpZHRoOm1pbigzMjBweCwxMDB2dyAtIDk2cHgpO21heC13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWF4LXdpZHRoOm1pbig0MDBweCwxMDB2dyAtIDk2cHgpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDk2cHgpfX1AbWVkaWEgKG1pbi13aWR0aDo1MjhweCl7Lnl0U3BlY0RpYWxvZ0xheW91dFJlc3BvbnNpdmV7bWluLXdpZHRoOjMyMHB4O21heC13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWF4LXdpZHRoOm1pbig1NjBweCwxMDB2dyAtIDk2cHgpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDk2cHgpO21heC1oZWlnaHQ6bWluKDU2MHB4LDEwMHZoIC0gOTZweCl9fS55dFNwZWNEaWFsb2dMYXlvdXRGdWxsc2NyZWVue2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW4gLnl0U3BlY0RpYWxvZ0xheW91dENvbnRhaW5lciwueXRTcGVjRGlhbG9nTGF5b3V0RnVsbHNjcmVlbiAueXRTcGVjRGlhbG9nTGF5b3V0Q29udGVudHtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW4gLnl0U3BlY0RpYWxvZ0xheW91dENvbnRlbnRJbm5lcntkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjUyOHB4KXsueXRTcGVjRGlhbG9nTGF5b3V0RXh0ZW5kZWRNYXhIZWlnaHR7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gOTZweCl9fS55dFNwZWNEaWFsb2dMYXlvdXRBc3NldEluc2V0IC55dFNwZWNEaWFsb2dMYXlvdXRBc3NldHt3aWR0aDphdXRvO3BhZGRpbmc6MCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJbnNldCAueXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJdGVte2JvcmRlci1yYWRpdXM6MTJweH0ueXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lnl0d1Bpdm90QnV0dG9uVmlld01vZGVsSG9zdEltYWdle2JvcmRlci1yYWRpdXM6NnB4O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZGlzcGxheTpibG9ja30ueXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0SWNvbntib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo2cHh9Lnl0d1Bpdm90QnV0dG9uVmlld01vZGVsSG9zdFtkYXRhLWJhY2tncm91bmQtY29sb3I9VEhFTUVfQVRUUklCVVRFX09WRVJMQVlfQkFDS0dST1VORF9NRURJVU1dIC55dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJY29ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjYpfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0Pip7bWFyZ2luLXRvcDoxNnB4fS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdD50b2dnbGUtYnV0dG9uLXZpZXctbW9kZWx7bWFyZ2luLXRvcDowfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdE1vYmlsZXt3aWR0aDo1NnB4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlIC55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbExhYmVse2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTZweDttYXJnaW46MH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3RNb2JpbGUgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEhvc3Q6Zm9jdXN7YmFja2dyb3VuZDp1bnNldH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3RNb2JpbGUgYnV0dG9uOm5vdChbYXJpYS1wcmVzc2VkPXRydWVdKSBjMy1pY29ue2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4IHJnYmEoMCwwLDAsMC4zKSl9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlQWN0aW9uQnV0dG9ue3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHg7bWFyZ2luOjB9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0RGVza3RvcHstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdERlc2t0b3AgLnl0U3BlY0J1dHRvblNoYXBlV2l0aExhYmVsTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3REZXNrdG9wQWN0aW9uQnV0dG9ue3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206OHB4O21hcmdpbjowfUBtZWRpYSAobWF4LWhlaWdodDo0MTFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdD4qe21hcmdpbi10b3A6MH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3QgLnl0U3BlY0J1dHRvblNoYXBlV2l0aExhYmVsTGFiZWx7ZGlzcGxheTpub25lfX0ueXRSZWVsTWV0YXBhbmVsVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXgtd2lkdGg6NDgwcHh9Lnl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW06bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy10b3A6NHB4O21heC13aWR0aDoxMDAlfS55dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1ib3R0b206NHB4O21heC13aWR0aDoxMDAlfS55dEFuaW1hdGVkQWN0aW9uSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS55dEFuaW1hdGVkQWN0aW9uTG90dGlle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lfS55dEFuaW1hdGVkQWN0aW9uQmFja2dyb3VuZHt3aWR0aDoxMDAlfS55dEFuaW1hdGVkQWN0aW9uQmFja2dyb3VuZENvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoxOHB4fS55dEFuaW1hdGVkQWN0aW9uQ29udGVudFdpdGhCYWNrZ3JvdW5ke3Bvc2l0aW9uOnJlbGF0aXZlfS5wbGF5ZXItc2V0dGluZ3MtaGVhZGVye21hcmdpbi1ib3R0b206MjBweH0ucGxheWVyLWNhcHRpb24tc2V0dGluZ3MsLnBsYXllci1xdWFsaXR5LXNldHRpbmdzLC5wbGF5ZXItc3BlZWQtc2V0dGluZ3N7d2lkdGg6MTAwJTttYXJnaW46NHB4IDAgMTJweH0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mb3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmctYm90dG9tOjRweDtvdXRsaW5lOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDttYXJnaW4tYm90dG9tOjFweDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMzstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7bWluLWhlaWdodDo4LjRyZW07d2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtwYWRkaW5nOjhweH0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbzo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojNjA2MDYwO29wYWNpdHk6MX0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbzo6cGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9LmNvcHlEZWJ1Z0luZm9QbGF5ZXJEZWJ1Z0luZm97aGVpZ2h0OjQwdmg7ZGlyZWN0aW9uOmx0cn0uc3RhYmxlVm9sdW1lVG9nZ2xlSG9zdHtkaXNwbGF5OmJsb2NrfS55dFBsYXllckNvbnRyb2xzQ29udGFpbmVySG9zdHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9Lnl0UGxheWVyQ29udHJvbHNDb250YWluZXJSZW5kZXJlZHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3BhZGRpbmctYm90dG9tOjB9Lnl0U2hvcnRzRW1iZWRzSG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMCwwLDAsLjQpIDAscmdiYSgwLDAsMCwwKSAxNjBweCksbGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC40KSAwLHJnYmEoMCwwLDAsMCkgOTZweCl9Lnl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciAucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zLC55dFNob3J0c0VtYmVkc1JlZWxQbGF5ZXJPdmVybGF5UmVuZGVyZXIgLnJlZWwtcGxheWVyLW92ZXJsYXktbWV0YWRhdGEsLnl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciAucmVlbC1wbGF5ZXItb3ZlcmxheS10b3AtYmFye3otaW5kZXg6Mn0ueXRTaG9ydHNFbWJlZHNUb3BiYXJDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6Mjt3aWR0aDoxMDAlfS55dFNob3J0c0VtYmVkc1ZvbHVtZUNvbnRyb2xze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjQ4cHh9Lnl0bUN1ZWRPdmVybGF5SG9zdHtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuN3M7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS55dG1DdWVkT3ZlcmxheUhpZGRlbiwueXRtQ3VlZE92ZXJsYXlIb3N0LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0zNnB4O21hcmdpbi10b3A6LTM2cHg7d2lkdGg6NzJweDtoZWlnaHQ6NzJweDtwYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcn0ueXRtQ3VlZE92ZXJsYXlQbGF5QnV0dG9uLnNob3J0cywueXRtQ3VlZE92ZXJsYXlTaG9ydHN7bWFyZ2luLWxlZnQ6LTUwcHg7bWFyZ2luLXRvcDotNTBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHh9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb257d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjb2xvcjojZjAzfUBtZWRpYSAoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dG1DdWVkT3ZlcmxheVBsYXlCdXR0b25JY29ue2NvbG9yOkJ1dHRvblRleHR9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gcGF0aDpmaXJzdC1jaGlsZHtmaWxsOkJ1dHRvblRleHR9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gLmxvZ28tYXJyb3csLnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gcGF0aDpudGgtY2hpbGQoMil7ZmlsbDpDYW52YXN9fS55dG1DdWVkT3ZlcmxheUdyYWRpZW50e3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikscmdiYSgwLDAsMCwwKSk7aGVpZ2h0OjdyZW19Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjNweH0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXJ7aGVpZ2h0OjNweDttYXJnaW46MCAxcHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyU2VlbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXJJc1NjcnViYmluZ3ttYXJnaW46MCAycHh9Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyOmZpcnN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6MH0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXI6bGFzdC1vZi10eXBle21hcmdpbi1yaWdodDowfS55dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyRmlsbHtoZWlnaHQ6M3B4O3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyTG9hZGVke2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7aGVpZ2h0OjNweDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckhvdmVyZWRNYWNyb01hcmtlcnt0cmFuc2Zvcm06c2NhbGVZKDIpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS55dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9Lnl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmV7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjNweDt3aWR0aDoxMDAlfS55dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5lUm91bmRlZHtib3JkZXItcmFkaXVzOjEuNXB4O292ZXJmbG93OmhpZGRlbn0ueXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0e2hlaWdodDo1cHg7Ym9yZGVyLXJhZGl1czoyLjVweDtvdmVyZmxvdzpoaWRkZW59Lnl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjY7d2lkdGg6MTAwJX0ueXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVke3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2JvdHRvbTowO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55dEhlYXRTZWVrZXJIb3N0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2ZpbGw6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lnl0SGVhdFNlZWtlckhpZ2hDb250cmFzdHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLDkwJSxyZ2JhKDAsMCwwLC42KSk7ZmlsbDpyZ2JhKDI1NSwyNTUsMjU1LC41KX0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3R7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTtkaXJlY3Rpb246bHRyfS55dFBsYXllclByb2dyZXNzQmFySG9zdFJlYWRPbmx5e3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0SGlkZGVue29wYWNpdHk6MH0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RMb3dlclBsYXllcntib3R0b206MDtsZWZ0OjMwcHg7cmlnaHQ6MzBweDtoZWlnaHQ6NDRweH0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RCb3R0b21FZGdle2hlaWdodDoyOHB4O2xlZnQ6MDtyaWdodDowO2JvdHRvbTotN3B4fS55dFBsYXllclByb2dyZXNzQmFySG9zdEJvdHRvbUluc2V0e2hlaWdodDoyOHB4O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfS55dFBsYXllclByb2dyZXNzQmFySG9zdEN1c3RvbXtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRQbGF5ZXJQcm9ncmVzc0JhckJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMCkscmdiYSgwLDAsMCwuNSkpO29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguMiwwLC42LDEpfS55dFBsYXllclByb2dyZXNzQmFyQmFja2dyb3VuZEhpZGV7b3BhY2l0eTowfS55dFBsYXllclByb2dyZXNzQmFyRHJhZ0NvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRQbGF5ZXJQcm9ncmVzc0JhckRyYWdDb250YWluZXJCb3R0b21FZGdle2hlaWdodDowO3BhZGRpbmc6MTkuNXB4IDAgOC41cHh9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJIZWF0c2Vla2VyQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbToxLjVweH0ueXRQbGF5ZXJQcm9ncmVzc0JhckhlYXRzZWVrZXJDb250YWluZXJJbnNldHtib3R0b206MTQuNXB4fS55dFBsYXllclByb2dyZXNzQmFyUHJvZ3Jlc3NCYXJ7d2lkdGg6MTAwJTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0e3BhZGRpbmc6MTZweCAwIDEycHg7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNpdGlvbjp3aWR0aCAuMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRQbGF5ZXJQcm9ncmVzc0JhclByb2dyZXNzQmFySW5zZXRNaW5pbWl6ZWR7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTJweCl9Lnl0UHJvZ3Jlc3NCYXJMaW5lSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5le3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDozcHg7d2lkdGg6MTAwJX0ueXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVke2JvcmRlci1yYWRpdXM6MS41cHg7b3ZlcmZsb3c6aGlkZGVufS55dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0e2hlaWdodDo1cHg7Ym9yZGVyLXJhZGl1czoyLjVweDtvdmVyZmxvdzpoaWRkZW59Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5ke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4zO3dpZHRoOjEwMCV9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMb2FkZWR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjZ9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJIb3ZlcmVke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi43fS55dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRQcm9ncmVzc0JhclBsYXloZWFkSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlfS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO2JhY2tncm91bmQtY29sb3I6I2YwMzt0cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2V9Lnl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3RMYXJnZXtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90SGlkZXt0cmFuc2Zvcm06c2NhbGUoMCl9Lnl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWRDdXN0b217aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtwb2ludGVyLWV2ZW50czpub25lfS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tTGFyZ2V7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQcm9ncmVzc0JhclBsYXloZWFkUHJvZ3Jlc3NCYXJQbGF5aGVhZEN1c3RvbUhpZGV7dHJhbnNmb3JtOnNjYWxlKDApfS55dFBsYXllclN0b3J5Ym9hcmRIb3N0e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3RCaWdib2FyZHt3aWR0aDoxMDAlO2xlZnQ6NTAlfS55dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0c3ttYXJnaW4tYm90dG9tOjQ4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3RJbmxpbmVQbGF5ZXJ7Ym90dG9tOmNhbGMoNTZweCp2YXIoLS1zdG9yeWJvYXJkLXNjYWxlLCAxKSl9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3REZXNrdG9wU2hvcnRze21hcmdpbi1ib3R0b206MTZweH0ueXRQbGF5ZXJTdG9yeWJvYXJkSG9zdElzRHJhZ2dpbmd7bWFyZ2luLWJvdHRvbTo4MHB4fS55dFBsYXllclN0b3J5Ym9hcmRIb3N0RmFkZUlue2FuaW1hdGlvbjpmYWRlLWluIC4xcyBjdWJpYy1iZXppZXIoLjIsMCwuNiwxKX0ueXRQbGF5ZXJTdG9yeWJvYXJkU3Rvcnlib2FyZEltYWdlV3JhcHBlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZEJpZ2JvYXJkV3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQ6IzAwMH0ueXRQbGF5ZXJTdG9yeWJvYXJkQmlnYm9hcmRJbWFnZVdyYXBwZXJ7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVufS55dFBsYXllclN0b3J5Ym9hcmRUaW1lc3RhbXB7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSl9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0c3tmb250LWZhbWlseTpZb3VUdWJlIFNhbnMsUm9ib3RvLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIuOHJlbTtsaW5lLWhlaWdodDozLjhyZW07Zm9udC13ZWlnaHQ6NzAwfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dFBsYXllclN0b3J5Ym9hcmRUaW1lc3RhbXBTaG9ydHN7Zm9udC1mYW1pbHk6WW91VHViZSBTYW5zLFJvYm90byxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH19Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0c3twYWRkaW5nLXRvcDo4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcElzSG92ZXJpbmd7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Y2FsYygxLjZyZW0qdmFyKC0tc3Rvcnlib2FyZC1zY2FsZSwgMSkpO2xpbmUtaGVpZ2h0OmNhbGMoMi4ycmVtKnZhcigtLXN0b3J5Ym9hcmQtc2NhbGUsIDEpKX0ueXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGF7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmNhbGMoLTZweCp2YXIoLS1zdG9yeWJvYXJkLXNjYWxlLCAxKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDEwMCUpO2xlZnQ6NTAlO2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTtmb250LXNpemU6Y2FsYygxMnB4KnZhcigtLXN0b3J5Ym9hcmQtc2NhbGUsIDEpKX0ueXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGFCaWdib2FyZHt3aWR0aDphdXRvO2NvbG9yOiNmZmY7bWF4LXdpZHRoOjEwMCU7Ym90dG9tOjZweDtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7cGFkZGluZzo4cHggMTZweDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWNvbHVtbi1nYXA6MXJlbTtjb2x1bW4tZ2FwOjFyZW07bWluLXdpZHRoOjB9Lnl0UGxheWVyU3Rvcnlib2FyZFRpdGxle21heC13aWR0aDoxMDAlO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tYm90dG9tOjRweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFBsYXllclN0b3J5Ym9hcmRUaXRsZUJpZ2JvYXJke21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo3MDB9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVkTWFya2VySWNvbldyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVkTWFya2VySWNvbntoZWlnaHQ6MTRweDt3aWR0aDoxNHB4O21hcmdpbi1yaWdodDo0cHh9Lnl0UGxheWVyU3Rvcnlib2FyZFN0b3J5Ym9hcmRJbWFnZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlfUBrZXlmcmFtZXMgZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0ueXRNd2ViU2hvcnRzUGxheWVyQ29udHJvbHNIb3N0e3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjNweDtkaXJlY3Rpb246bHRyO3RyYW5zaXRpb24tcHJvcGVydHk6aGVpZ2h0LG1hcmdpbi1sZWZ0LG1hcmdpbi1yaWdodCxwYWRkaW5nLHZpc2liaWxpdHk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzfS55dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3RJc1NjcnViYmFibGVNb2Rle21hcmdpbi1yaWdodDoxNnB4O21hcmdpbi1sZWZ0OjE2cHg7aGVpZ2h0OjE2cHg7cGFkZGluZy1ib3R0b206MTZweDt0cmFuc2l0aW9uLWR1cmF0aW9uOi41c30ueXRNd2ViU2hvcnRzUGxheWVyQ29udHJvbHNIb3N0SGlkZVByb2dyZXNzQmFye3Zpc2liaWxpdHk6aGlkZGVuO2hlaWdodDowfS55dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0dlc3R1cmVPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDB2aDt3aWR0aDoxMDB2dztpbnNldDowO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0d0F1dG9uYXZUb29sdGlwSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjI1JTt3aWR0aDoxMDAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2NvbG9yOiNmZmZ9Lnl0d1BsYXllclVzZXJFZHVUb29sdGlwSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjAgOHB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7bWFyZ2luLXRvcDoxNnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo2O2JvcmRlci1yYWRpdXM6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KTtwYWRkaW5nOjdweCAxNnB4O21heC13aWR0aDoxMDAlOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXR3UGxheWVyVXNlckVkdVRvb2x0aXBUb29sdGlwV3JhcHBlcjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0d1NwZWVkbWFzdGVyVG9vbHRpcEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1NwZWVkbWFzdGVyVG9vbHRpcEhvc3Q6bm90KC55dHdTcGVlZG1hc3RlclRvb2x0aXBLaWxsc3dpdGNoKXstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7cmlnaHQ6MH0ueXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWx7dGV4dC1hbGlnbjpqdXN0aWZ5O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4fVtkaXI9cnRsXSAueXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWx7ZGlyZWN0aW9uOnJ0bH0ueXR3U3BlZWRtYXN0ZXJUb29sdGlwSWNvbnttYXJnaW4tbGVmdDo0cHh9Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3d9Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNTcGVlZG1hc3Rlckdlc3R1cmVBcmVhe2hlaWdodDoxMDAlO3dpZHRoOjI1JX0ueXRtU2hvcnRzR2VzdHVyZU92ZXJsYXlDb250cm9sc01lbnVHZXN0dXJlQXJlYXtoZWlnaHQ6MTAwJTt3aWR0aDo1MCV9Lnl0bVZpZGVvQ292ZXJIb3N0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxO3RyYW5zaXRpb246dHJhbnNmb3JtIC43czt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHl9Lnl0bVZpZGVvQ292ZXJIb3N0LmVuZGVke3otaW5kZXg6MH0ueXRtVmlkZW9Db3Zlckhvc3QuaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0ueXRtVmlkZW9Db3ZlclRodW1ibmFpbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvdmVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0ZFZvbHVtZUNvbnRyb2xzSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDttYXgtaGVpZ2h0OjQ4cHh9Lnl0ZFZvbHVtZUNvbnRyb2xzRGlzYWJsZVNsaWRlcnt3aWR0aDo0OHB4fS55dGRWb2x1bWVDb250cm9sc1ZvbHVtZUNvbnRyb2xzQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy1tb3otYm94LWZsZXg6MTtmbGV4OjEgMSBhdXRvO21heC13aWR0aDoxNjhweH0ueXRkVm9sdW1lQ29udHJvbHNWb2x1bWVDb250cm9sc0NvbnRhaW5lclZlcnRpY2Fse21heC13aWR0aDo0OHB4O3dpZHRoOjQ4cHg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7Z2FwOjYwcHg7aGVpZ2h0Oi1tb3otZml0LWNvbnRlbnQ7aGVpZ2h0OmZpdC1jb250ZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJFeHBhbmRlZHtwb2ludGVyLWV2ZW50czphbGx9Lnl0ZFZvbHVtZUNvbnRyb2xzTXV0ZUljb25CdXR0b25Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjUwcHh9Lnl0ZFZvbHVtZUNvbnRyb2xzTXV0ZUljb25CdXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZW5kO3otaW5kZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzoxMnB4O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmFsbDtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLDAuOCkpfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb246dmlzaWJpbGl0eSAuMTJzIGxpbmVhcixvcGFjaXR5IC4xMnMgbGluZWFyLHdpZHRoIC4xMnMgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lckV4cGFuZGVke3Zpc2liaWxpdHk6dmlzaWJsZTt3aWR0aDoxMDAlO29wYWNpdHk6MTt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzIGxpbmVhcixvcGFjaXR5IC4zcyBsaW5lYXIsd2lkdGggLjNzIGxpbmVhcjt6LWluZGV4OjF9Lnl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyV2l0aFNjcmlte3BhZGRpbmctcmlnaHQ6MTJweH0ueXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJWZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtib3JkZXItcmFkaXVzOjUwcHg7aGVpZ2h0OjQ4cHg7bWluLWhlaWdodDo0OHB4O3BhZGRpbmc6MCAxMnB4O21hcmdpbjowO3RyYW5zaXRpb246dmlzaWJpbGl0eSAuM3MgbGluZWFyLG9wYWNpdHkgLjNzIGxpbmVhcix3aWR0aCAwcyBsaW5lYXIgLjNzLG1hcmdpbiAuM3MgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lclZlcnRpY2FsRG93bnt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9Lnl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWxFeHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNDAsNDAsNDAsMC42KTttYXJnaW4tdG9wOjhweDt3aWR0aDoxMzNweDt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzIGxpbmVhcixvcGFjaXR5IC4zcyBsaW5lYXIsd2lkdGggMHMgbGluZWFyLG1hcmdpbiAuM3MgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lckRpc2FibGVTbGlkZXJ7ZGlzcGxheTpub25lfS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcnstLWdyYWRpZW50LXBlcmNlbnQ6MDstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7bWFyZ2luLWJvdHRvbToxcHg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzo4cHggMDtmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzTmF0aXZlU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LDAuMykgdmFyKC0tZ3JhZGllbnQtcGVyY2VudCkscmdiYSgyNTUsMjU1LDI1NSwwLjMpIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDAsMCwwLDAuMSkgdmFyKC0tZ3JhZGllbnQtcGVyY2VudCkscmdiYSgwLDAsMCwwLjEpIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi10b3A6LTYuNXB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzTmF0aXZlU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3toZWlnaHQ6MnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10cmFja3toZWlnaHQ6MnB4fS55dGRWb2x1bWVDb250cm9sc011dGVJY29ue2NvbG9yOndoaXRlfS55dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbXtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3otaW5kZXg6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTt0cmFuc2l0aW9uOndpZHRoIC4yNXMgbGluZWFyO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTBweH0ueXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW1FeHBhbmRlZHt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjMpfS55dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbUV4cGFuZGVkSG92ZXJTdGF0ZTphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoyOHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGgsYmFja2dyb3VuZC1jb2xvcn0ueXR3UGxheWVyRnVsbHNjcmVlbkFjdGlvbk1lbnVIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckZ1bGxzY3JlZW5BY3Rpb25NZW51Q2lyY2xlQnV0dG9uc3ttYXJnaW4tcmlnaHQ6OHB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo0OHB4O2JvcmRlci1yYWRpdXM6MjRweDtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjEycHg7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxCdXR0b24gYnV0dG9ue3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsQnV0dG9uIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbFNpbmdsZVRodW1ibmFpbHtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czoxNnB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0Om5vdCgueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGl0bGVIaWRkZW4pIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTaW5nbGVUaHVtYm5haWx7cGFkZGluZzo2cHggMTJweH0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsU3RhY2t7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXRvcDotMXB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0Om5vdCgueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGl0bGVIaWRkZW4pIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWxTdGFja3ttYXJnaW4tbGVmdDo4cHh9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEZhZGVkVGh1bWJuYWlse2hlaWdodDoycHg7bWFyZ2luLWJvdHRvbToxcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoycHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MnB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTbWFsbEZhZGVkVGh1bWJuYWlse3dpZHRoOjEwcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMyl9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbExhcmdlRmFkZWRUaHVtYm5haWx7d2lkdGg6MjBweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MzZweDtoZWlnaHQ6MjBweDtib3JkZXI6MnB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbn0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsU2luZ2xlVGh1bWJuYWlsIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWxDb250YWluZXJ7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDtib3JkZXI6bm9uZTtvdXRsaW5lOjJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6OHB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWx7ZGlzcGxheTpibG9ja30ueXRtU2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXJIb3N0e21hcmdpbi1yaWdodDoxMnB4fXl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnN7bWFyZ2luLXJpZ2h0OjEycHh9eXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9ucyAuYnV0dG9uLXJlbmRlcmVyLXRleHR7ZGlzcGxheTpub25lfXl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnMgLmJ1dHRvbi1yZW5kZXJlcnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21pbi13aWR0aDphdXRvO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luOjB9eXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9ucyAuYnV0dG9uLXJlbmRlcmVyLWljb257d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0uZnVsbHNjcmVlbi1jb250cm9sc3stLWNvbnRyb2xzLWhlaWdodDoyMTVweDtib3R0b206Y2FsYyh2YXIoLS1jb250cm9scy1oZWlnaHQpKi0xKTtsZWZ0OjA7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6dmFyKC0tY29udHJvbHMtaGVpZ2h0KTt6LWluZGV4OjI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MTJweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZ1bGxzY3JlZW4tY29udHJvbHMtdmlkZW8tdGl0bGV7Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi1jb250cm9scy5leHBhbmRlZHtib3R0b206MH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcnstbW96LWJveC1mbGV4OjE7ZmxleDoxO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O292ZXJmbG93LXg6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtzY3JvbGxiYXItd2lkdGg6bm9uZX0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfUBtZWRpYSAocG9pbnRlcjpmaW5lKXsuZnVsbHNjcmVlbi1jb250cm9sc3stLWNvbnRyb2xzLWhlaWdodDoyMjhweH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcntzY3JvbGxiYXItd2lkdGg6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6YXV0bztvdmVyZmxvdy15OmF1dG99LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb25zLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE2cHh9LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb25zLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2hlaWdodDo1NnB4O2JvcmRlci1yYWRpdXM6OHB4O2JvcmRlcjo0cHggc29saWQgdHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6IzYwNjA2MH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOTA5MDkwfS5mdWxsc2NyZWVuLXJlY29tbWVuZGF0aW9ucy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5OmJsb2NrfX0uZnVsbHNjcmVlbi1idXR0b25zLXdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQ0cHh9LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb257d2lkdGg6MjAwcHg7bWluLXdpZHRoOjIwMHB4O21hcmdpbjowIDhweH0udG9wLWZ1bGxzY3JlZW4tY29udHJvbHN7cGFkZGluZzoxMnB4O2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDo2fS5mdWxsc2NyZWVuLWNsb3NlLWJ1dHRvbi13cmFwcGVye21hcmdpbi10b3A6LThweDttYXJnaW4tbGVmdDphdXRvfS5mdWxsc2NyZWVuLWFjdGlvbi1tZW51e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMnB4O2hlaWdodDo0OHB4O2xlZnQ6MjRweDtyaWdodDoyNHB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ei1pbmRleDoyfS5hY3Rpb24tbWVudS1lbmdhZ2VtZW50LWJ1dHRvbnMtd3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtib3JkZXItcmFkaXVzOjQ4cHg7cGFkZGluZzo0cHggMDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4zKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyPjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDo4cHh9LmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnUsLmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnUgLnl0QXR0cmlidXRlZFN0cmluZ0hvc3QsLmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb257Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi13YXRjaC1uZXh0LWVudHJ5cG9pbnQtd3JhcHBlcnttYXJnaW4tbGVmdDphdXRvO2hlaWdodDoxMDAlfS5mdWxsc2NyZWVuLW1vcmUtdmlkZW9zLWVuZHBvaW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4fS5zdGFja2VkLXZpZGVvcy13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt3aWR0aDo2NHB4O2hlaWdodDoxMDAlfS5zdGFja2VkLXZpZGVvLXByZXZpZXd7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7YmFja2dyb3VuZDpibGFjaztib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnN0YWNrZWQtdmlkZW8tcHJldmlldyAuc3RhY2tlZC12aWRlby1wcmV2aWV3LWltYWdle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0uc3RhY2tlZC12aWRlby1wcmV2aWV3OmZpcnN0LWNoaWxke3otaW5kZXg6M30uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgyKXt6LWluZGV4OjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoLjg3NSl9LnN0YWNrZWQtdmlkZW8tcHJldmlldzpudGgtY2hpbGQoMikgLnN0YWNrZWQtdmlkZW8tcHJldmlldy1pbWFnZXtvcGFjaXR5Oi43NX0uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgzKXt6LWluZGV4OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCkgc2NhbGUoLjc1KX0uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgzKSAuc3RhY2tlZC12aWRlby1wcmV2aWV3LWltYWdle29wYWNpdHk6LjV9Lm1vcmUtdmlkZW9zLW1lc3NhZ2V7bWFyZ2luLXJpZ2h0OjEycHg7dGV4dC1hbGlnbjpyaWdodH0ubW9yZS12aWRlb3MtbWVzc2FnZS10aXRsZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS5tb3JlLXZpZGVvcy1tZXNzYWdlLXN1YnRpdGxle2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjE0cHg7b3BhY2l0eTouN30ucXVpY2stYWN0aW9ucy13cmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6YXV0b30ucXVpY2stYWN0aW9ucy1iYXItYnV0dG9ucy13cmFwcGVye3BhZGRpbmctbGVmdDoxMnB4fS53YXRjaC1vbi15b3V0dWJlLWJ1dHRvbi13cmFwcGVye2RpcmVjdGlvbjpsdHJ9QG1lZGlhIChtYXgtaGVpZ2h0OjIyMXB4KXsud2F0Y2gtb24teW91dHViZS1idXR0b24td3JhcHBlciAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdHtoZWlnaHQ6NDBweDtwYWRkaW5nOjAgMjBweH19LndhdGNoLW9uLXlvdXR1YmUtYnV0dG9ue3BhZGRpbmctbGVmdDo0cHh9Lm5vLWxhYmVsLWV4cCB5dG0tc2xpbS1tZXRhZGF0YS1idXR0b24tcmVuZGVyZXIsLm5vLWxhYmVsLWV4cCB5dG0tc2xpbS1tZXRhZGF0YS10b2dnbGUtYnV0dG9uLXJlbmRlcmVyLmNpcmNsZS1idXR0b25zLC5uby1sYWJlbC1leHA+eXRtLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9uc3ttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubm8tbGFiZWwtZXhwIHl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnMubGlrZS1idXR0b24tbm8tbGFiZWwtZXhwe2RpcmVjdGlvbjpydGx9QG1lZGlhIChtYXgtd2lkdGg6NTQ5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5mcy13YXRjaC1zeXN0ZW06bm90KC5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbik6bm90KC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scy1mb3ItcG9ydHJhaXQpIC5mdWxsc2NyZWVuLWFjdGlvbi1tZW51LC5mcy13YXRjaC1zeXN0ZW06bm90KC5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbik6bm90KC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scy1mb3ItcG9ydHJhaXQpIC5mdWxsc2NyZWVuLWNvbnRyb2xze2Rpc3BsYXk6bm9uZX19eXRtLWN1c3RvbS1jb250cm9sIC5pY29uLWJ1dHRvbntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3BhZGRpbmc6MTJweH1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe3l0bS1jdXN0b20tY29udHJvbCAuaWNvbi1idXR0b246bm90KC5wbGF5ZXItc2V0dGluZ3MtaWNvbil7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDtwYWRkaW5nOjhweH15dG0tY3VzdG9tLWNvbnRyb2wgLmljb24tYnV0dG9uOm5vdCgucGxheWVyLXNldHRpbmdzLWljb24pPmMzLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH19eXRtLWN1c3RvbS1jb250cm9sIC5hdXRvbmF2LXVzZXItZWR1Y2F0aW9uLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjUlO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Y29sb3I6I2ZmZn0uaW50ZXJjZXB0LWVsZW1lbnQtY2xpY2tzIC5wbGF5ZXItY29udHJvbHMtYm90dG9tLC5pbnRlcmNlcHQtZWxlbWVudC1jbGlja3MgLnBsYXllci1jb250cm9scy1taWRkbGUsLmludGVyY2VwdC1lbGVtZW50LWNsaWNrcyAucGxheWVyLWNvbnRyb2xzLXRvcCwuaW50ZXJjZXB0LWVsZW1lbnQtY2xpY2tzIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntwb2ludGVyLWV2ZW50czpub25lfXl0bS1jdXN0b20tY29udHJvbCAuZmluZS1zY3J1YmJpbmctb3ZlcmxheSAuaWNvbi1idXR0b24+YzMtaWNvbiBzdmcgcGF0aCx5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1ib3R0b20gLmZ1bGxzY3JlZW4taWNvbiBjMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAuaWNvbi1idXR0b24+YzMtaWNvbiBzdmcgcGF0aCx5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9uIGMzLWljb24gc3ZnIHBhdGgseXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtcGIgLmljb24tYnV0dG9uPmMzLWljb24seXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtdG9wIC5pY29uLWJ1dHRvbj5jMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcCB5dG0tY2xvc2VkLWNhcHRpb25pbmctYnV0dG9uIGJ1dHRvblthcmlhLXByZXNzZWQ9ZmFsc2VdPmMzLWljb24gc3ZnIHBhdGgseXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtdG9wIHl0bS1jbG9zZWQtY2FwdGlvbmluZy1idXR0b24gYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXT5jMy1pY29uIHN2ZyBwYXRoe2ZpbGw6I2ZmZn15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9uLmljb24tZGlzYWJsZSBjMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcCB5dG0tY2xvc2VkLWNhcHRpb25pbmctYnV0dG9uIGJ1dHRvbj5jMy1pY29uIHN2ZyBwYXRoe2ZpbGw6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt6LWluZGV4OjI7cmlnaHQ6MjRweH1AbWVkaWEgKG1heC1oZWlnaHQ6MjIxcHgpe3l0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtyaWdodDowfX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7bGVmdDowfUBtZWRpYSAobWluLXdpZHRoOjM4MHB4KXt5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7bGVmdDoxNHB4fX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AtcmlnaHR7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9W2Rpcj1ydGxdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLWJhY2tncm91bmQsW2Rpcj1ydGxdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtkaXJlY3Rpb246cnRsfWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHt0b3A6ZW52KHNhZmUtYXJlYS1pbnNldC10b3ApfXl0bS1jdXN0b20tY29udHJvbCBjMy1vdmVybGF5e3Zpc2liaWxpdHk6dmlzaWJsZX0jcGxheWVyLWNvbnRyb2wtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47dmlzaWJpbGl0eTpoaWRkZW59I3BsYXllci1jb250cm9sLW92ZXJsYXkudXNlLW9wYWNpdHkgLnBsYXllci1jb250cm9scy1jb250ZW50e29wYWNpdHk6MDt2aXNpYmlsaXR5OnVuc2V0fSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjA7b3BhY2l0eTowfSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZDpub3QoLmZ1bGxzY3JlZW4tcmVjcy1leHBhbmRlZCl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsLjYpIDAscmdiYSgwLDAsMCwuNTQpIDI1JSxyZ2JhKDAsMCwwLC4zNikgNTAlLHJnYmEoMCwwLDAsLjE4KSA3NSUscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1zaXplOjFweCA1MCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9I3BsYXllci1jb250cm9sLW92ZXJsYXkgLnBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLmZ1bGxzY3JlZW4tcmVjcy1leHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KX0jcGxheWVyLWNvbnRyb2wtb3ZlcmxheSAucGxheWVyLWNvbnRyb2xzLWJhY2tncm91bmQtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3A6MDt2aXNpYmlsaXR5OnZpc2libGV9I3BsYXllci1jb250cm9sLW92ZXJsYXkgLnBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLWFjdGlvbi1pdGVtc3twb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjJ9I3BsYXllci1jb250cm9sLW92ZXJsYXkuYW5pbWF0aW9uLWVuYWJsZWR7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjdzO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmFuaW1hdGlvbi1lbmFibGVkIC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMnN9I3BsYXllci1jb250cm9sLW92ZXJsYXkucG9pbnRlci1ldmVudHMtb2Zme3BvaW50ZXItZXZlbnRzOm5vbmV9I3BsYXllci1jb250cm9sLW92ZXJsYXkuZmFkZWlue3BvaW50ZXItZXZlbnRzOmF1dG99I3BsYXllci1jb250cm9sLW92ZXJsYXkuZmFkZWluIC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHt6LWluZGV4OjI7b3BhY2l0eToxfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmZhZGVpbiAucGxheWVyLWNvbnRyb2xzLWNvbnRlbnR7dmlzaWJpbGl0eTp2aXNpYmxlfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmZhZGVpbi51c2Utb3BhY2l0eSAucGxheWVyLWNvbnRyb2xzLWNvbnRlbnR7b3BhY2l0eToxO3Zpc2liaWxpdHk6dW5zZXR9I3BsYXllci1jb250cm9sLW92ZXJsYXkuaGlkZGVue2Rpc3BsYXk6bm9uZX1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAud2F0Y2gtcGFnZS1wcm9ncmVzcy1iYXJ7bGVmdDoyNHB4O3JpZ2h0OjI0cHh9Ym9keVtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLmVuYWJsZS1mdWxsc2NyZWVuLWNvbnRyb2xzIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntib3R0b206MzBweH1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAuZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMuZnMtd2F0Y2gtc3lzdGVtIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntib3R0b206NTBweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFye2JvdHRvbTo1MnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206ODJweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnV7bGVmdDoxMnB4O3JpZ2h0OjEycHh9QG1lZGlhIChtaW4td2lkdGg6MzgwcHgpey5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAuZnVsbHNjcmVlbi1hY3Rpb24tbWVudXtsZWZ0OjMwcHg7cmlnaHQ6MzBweH19QG1lZGlhIChtYXgtaGVpZ2h0OjIyMXB4KXsuZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFye2JvdHRvbTozMnB4O3otaW5kZXg6MztoZWlnaHQ6NDBweDtsZWZ0OjEycHg7cmlnaHQ6MTJweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFyIC55dFBsYXllclByb2dyZXNzQmFyRHJhZ0NvbnRhaW5lcnstbW96LWJveC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZW5kfS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAud2F0Y2gtcGFnZS1wcm9ncmVzcy1iYXIgLnl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0JhcntwYWRkaW5nLWJvdHRvbToxMnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206NThweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLnBsYXllci1jb250cm9scy1ib3R0b20ucGxheWVyLWNvbnRyb2xzLWJvdHRvbS1sZWZ0e2xlZnQ6MDtyaWdodDo0NHB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbS5wbGF5ZXItY29udHJvbHMtYm90dG9tLXJpZ2h0e2xlZnQ6dW5zZXQ7cmlnaHQ6MDt6LWluZGV4OjR9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5mdWxsc2NyZWVuLWFjdGlvbi1tZW51e2xlZnQ6MnB4O3JpZ2h0OjJweDtib3R0b206MnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAuZnVsbHNjcmVlbi1tb3JlLXZpZGVvcy1lbmRwb2ludHttYXJnaW4tdG9wOjEycHh9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5zdGFja2VkLXZpZGVvLXByZXZpZXcsLmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5zdGFja2VkLXZpZGVvcy13cmFwcGVye3dpZHRoOjQycHg7aGVpZ2h0OjI0cHh9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5wbGF5ZXItdGltZS1jaGFwdGVyLXRpdGxle2Rpc3BsYXk6bm9uZX19LnBsYXllci1jb250cm9scy1oaWRle2Rpc3BsYXk6bm9uZX0ueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIb3N0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5QnJhbmRpbmdJY29ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2cHg7cmlnaHQ6MTJweDtjb2xvcjojZmZmfVtkaXI9cnRsXSAueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCcmFuZGluZ0ljb257bGVmdDoxMnB4O3JpZ2h0OmF1dG99Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5QmFja2dyb3VuZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUFjdGlvbk1lbnV7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuN3M7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGx9Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5SGlkZUFjdGlvbk1lbnV7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVufS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTVweDtyaWdodDoxMnB4fVtkaXI9cnRsXSAueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlFcXVhbGl6ZXJ7bGVmdDoxMnB4O3JpZ2h0OmF1dG99QGtleWZyYW1lcyB5dG0tZXF1YWxpemVyLWFuaW1hdGlvbnswJXt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGVZKC41KX10b3t0cmFuc2Zvcm06c2NhbGVZKDEpfX0ueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlFcXVhbGl6ZXIgLnl0bS1lcXVhbGl6ZXItYmFyLWxlZnQsLnl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIC55dG0tZXF1YWxpemVyLWJhci1taWRkbGUsLnl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIC55dG0tZXF1YWxpemVyLWJhci1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDt0cmFuc2Zvcm0tb3JpZ2luOjhweCAxNnB4Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDthbmltYXRpb24tbmFtZTp5dG0tZXF1YWxpemVyLWFuaW1hdGlvbjthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItbGVmdHthbmltYXRpb24tZHVyYXRpb246LjVzfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItbWlkZGxle2FuaW1hdGlvbi1kdXJhdGlvbjoxLjNzfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItcmlnaHR7YW5pbWF0aW9uLWR1cmF0aW9uOi43c30ueXRTaG9ydHNUb3VjaEZlZWRiYWNrSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS55dFNob3J0c1RvdWNoRmVlZGJhY2tIaWRkZW57ZGlzcGxheTpub25lfS55dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNre2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9uV3JhcHBlcnt3aWR0aDoyNDBweDtoZWlnaHQ6MjQwcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9ue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0U2hvcnRzVG91Y2hGZWVkYmFja1BsYXlQYXVzZUFuaW1hdGlvbnt3aWR0aDo5NnB4O2hlaWdodDo5NnB4fUBtZWRpYSAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVySG9zdHtvdmVyZmxvdy15OnNjcm9sbH19Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyU2NyaW1Db250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo1fS5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNvbnRhaW5lcntib3JkZXItcmFkaXVzOjIwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO21hcmdpbjowIDhweCAyNHB4O21heC13aWR0aDo0MDBweDtkaXNwbGF5OmJsb2NrO292ZXJmbG93OnNjcm9sbH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIZWFkZXJ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTQwcHg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjIwcHggMDt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTJweH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDZW50cmFsSWNvbntoZWlnaHQ6NjVweDt3aWR0aDo2NXB4O2NvbG9yOiNmMDM7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTVweDtib3JkZXItcmFkaXVzOjQ1cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7cmlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjI0cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyRHJhZ0hhbmRsZXtiYWNrZ3JvdW5kOiMwMzAzMDM7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czo0cHg7aGVpZ2h0OjRweDttYXJnaW46MCBhdXRvO3dpZHRoOjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250ZW50c3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyNHB4fS5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNvbnRlbnRzPmRpdntwYWRkaW5nLWJvdHRvbTo2cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ29udGVudHM+eXRtLWJ1dHRvbi1yZW5kZXJlcntwYWRkaW5nLXRvcDo2cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyVGl0bGV7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtfUBtZWRpYSAobWluLXdpZHRoOjMwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1pbi13aWR0aDozMDBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyVGl0bGV7bGV0dGVyLXNwYWNpbmc6LjAwNWVtfX0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTdWJ0aXRsZXtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjEuOHJlbX1AbWVkaWEgKG1pbi13aWR0aDozMDBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtaW4td2lkdGg6MzAwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlclN1YnRpdGxle2xldHRlci1zcGFjaW5nOi4wMWVtfX0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJPdmVybGF5Q29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3otaW5kZXg6NTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6OTMwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJPdmVybGF5Q29udGFpbmVye3RvcDowfX1AbWVkaWEgKG1pbi13aWR0aDo1NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lcntib3R0b206NTAlfX1AbWVkaWEgKG1pbi13aWR0aDo5MzFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlck92ZXJsYXlDb250YWluZXJ7Ym90dG9tOjI1JX19QG1lZGlhIChtYXgtaGVpZ2h0OjUwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lcntib3R0b206MH19W2JvdHRvbS1zaGVldC1vdmVybGF5LWJvZHktb3Blbl17cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7dG9wOjA7b3ZlcmZsb3c6aGlkZGVufS55dG0tZm9yY2VkLW11dGUtbWVzc2FnZSAuYnV0dG9uLXdpdGgtaWNvbi1pbm5lcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjZweH0ueXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UgLmJ1dHRvbi13aXRoLWljb24taW5uZXIgYzMtaWNvbntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlci5pdGVte21hcmdpbi10b3A6MH15dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXJ7YmFja2dyb3VuZC1jb2xvcjojZGVmMWZmO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn15dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXJbYmFja2dyb3VuZD1JTkZPX1BBTkVMX0NPTlRBSU5FUl9CQUNLR1JPVU5EX1NZU1RFTV06Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9eXRtLWluZm8tcGFuZWwtY29udGFpbmVyLXJlbmRlcmVyW2JhY2tncm91bmQ9SU5GT19QQU5FTF9DT05UQUlORVJfQkFDS0dST1VORF9TWVNURU1de2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlcltiYWNrZ3JvdW5kPUlORk9fUEFORUxfQ09OVEFJTkVSX0JBQ0tHUk9VTkRfR1JBWV17YmFja2dyb3VuZC1jb2xvcjojZmZmfXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlcltiYWNrZ3JvdW5kPUlORk9fUEFORUxfQ09OVEFJTkVSX0JBQ0tHUk9VTkRfT1ZFUkxBWV9CTEFDS117YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNil9Lnl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXJ7aGVpZ2h0OjM2cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwfS55dG0taW5mby1wYW5lbC1jb250YWluZXItaGVhZGVyLWxlZnQtaXRlbXN7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRtLWluZm8tcGFuZWwtY29udGFpbmVyLWhlYWRlci1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFt5dG0taW5mby1wYW5lbC1jb250ZW50LWhhcy1tZW51PXRydWVde2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3d9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RbeXRtLWluZm8tcGFuZWwtY29udGVudC1oYXMtbWVudT10cnVlXSAueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlcntwYWRkaW5nLWJvdHRvbToxMnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RJc1dhdGNoSW5mb1BhbmVse21hcmdpbjoxMnB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFt5dG0taW5mby1wYW5lbC1jb250ZW50LXRydW5jYXRlLXBhcmFncmFwaHM9dHJ1ZV0gLnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclBhcmFncmFwaHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczstd2Via2l0LWxpbmUtY2xhbXA6M30ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFtkYXRhLWJhY2tncm91bmQ9SU5GT19QQU5FTF9DT05URU5UX0JBQ0tHUk9VTkRfT1ZFUkxBWV9CTEFDS10gLnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZXtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFtkYXRhLWJhY2tncm91bmQ9SU5GT19QQU5FTF9DT05URU5UX0JBQ0tHUk9VTkRfQkxVRV17YmFja2dyb3VuZC1jb2xvcjojZGVmMWZmfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RDaW5lbWF0aWNCYWNrZ3JvdW5ke2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJXcmFwcGVye3BhZGRpbmc6MTJweCAxNnB4IDE2cHggMTZweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlcltkYXRhLWhhcy1pY29uPXRydWVde3BhZGRpbmc6MTRweCAxMnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJCb2R5e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUZXh0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaXRsZUNvbnRhaW5lcntjb2xvcjojMDY1ZmQ0O21hcmdpbi1ib3R0b206NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGl0bGVDb250YWluZXJ7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGl0bGVDb250YWluZXJ7bWF4LWhlaWdodDo0cmVtfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbntwYWRkaW5nLWxlZnQ6MXB4O3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7dmVydGljYWwtYWxpZ246dGV4dC10b3B9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlck1ldGFkYXRhe21hcmdpbi1ib3R0b206NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclB1Ymxpc2hUaW1le2Rpc3BsYXk6aW5saW5lO2NvbG9yOiM2MDYwNjA7cGFkZGluZy1sZWZ0OjNweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUGFyYWdyYXBoe2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojMDY1ZmQ0O3BhZGRpbmctbGVmdDoycHh9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZVRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclRodW1ibmFpbHtmbGV4LXNocmluazowO2hlaWdodDo2NHB4O3dpZHRoOjY0cHg7bWFyZ2luLWxlZnQ6OHB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJFbmRwb2ludHt3aWR0aDoxMDAlfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIZWFkZXJSaWdodEl0ZW1ze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySGVhZGVySWNvbnttYXJnaW4tbGVmdDo0cHg7bWFyZ2luLXJpZ2h0OjRweDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJNZW51e2Rpc3BsYXk6YmxvY2t9Lnl0bUxvZ29FbnRpdHlIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHh9Lnl0bUxvZ29FbnRpdHlDb250YWluZXJ7d2lkdGg6MTIycHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0bUxvZ29FbnRpdHlMb2dve3BhZGRpbmc6MDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvO2NvbG9yOnVuc2V0fS5wbGF5ZXJJbnRlcnN0aXRpYWxSZW5kZXJlckhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiM2MDYwNjB9LnBsYXllckludGVyc3RpdGlhbFJlbmRlcmVyU2NyaW17d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC40KSAwLHJnYmEoMCwwLDAsLjYpIDc1JSxyZ2JhKDAsMCwwLC42KSl9Lnl0QmlnYm9hcmRTdG9yeWJvYXJkSG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbn0ueXRtQTExeVN0eWxlc0hpZGRlbkJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0ueXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHh9Lnl0bUNsb3NlZENhcHRpb25pbmdCdXR0b25JY29uRGlzYWJsZWR7Y29sb3I6IzkwOTA5MH0ueXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZE92ZXJsYXl7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS55dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uWXRJY29uT3ZlcmxheXtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLDAuOCkpfS55dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uQnV0dG9ue2N1cnNvcjpwb2ludGVyO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4O2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtmb250OmluaGVyaXQ7dGV4dC10cmFuc2Zvcm06aW5oZXJpdDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Ib3N0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxLjJyZW07dmlzaWJpbGl0eTpoaWRkZW59Lnl0bUNyZWF0b3JFbmRzY3JlZW5JbkN1ZVJhbmdle3Zpc2liaWxpdHk6dmlzaWJsZX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTN7Zm9udC1zaXplOjEuNHJlbX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwe2ZvbnQtc2l6ZToxLjhyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMHtmb250LXNpemU6Mi40cmVtfS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudFZpc2libGV7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0bUNyZWF0b3JFbmRzY3JlZW5TY3JpbXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4yczt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRtQ3JlYXRvckVuZHNjcmVlblNjcmltVmlzaWJsZXtvcGFjaXR5Oi4yNX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudEhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RyYW5zaXRpb246ei1pbmRleCAuMnMgc3RlcC1lbmQ7ei1pbmRleDo2O3Bvc2l0aW9uOnJlbGF0aXZlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50SG9zdEFjdGl2ZXt0cmFuc2l0aW9uOnotaW5kZXggLjJzIHN0ZXAtc3RhcnQ7ei1pbmRleDo3fS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlse2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsMC42KX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFJvdW5ke2JvcmRlci1yYWRpdXM6NTAlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC44KTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjhweDttYXJnaW46LThweDtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47YWxpZ24tY29udGVudDpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdTbWFsbCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXl7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Sb3VuZGluZ01lZGl1bSAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Sb3VuZGluZ0xhcmdlIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheXtib3JkZXItcmFkaXVzOjEycHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5UmlnaHR7bGVmdDowfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZle3BhZGRpbmctbGVmdDpjYWxjKDEwMCUgKyA4cHgpfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUxlZnR7cmlnaHQ6MH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlMZWZ0QWN0aXZle3BhZGRpbmctcmlnaHQ6Y2FsYygxMDAlICsgOHB4KX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlMZWZ0QWN0aXZlLC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZle29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7bWF4LXdpZHRoOm5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoxMTVweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tcmlnaHQ6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlBY3RpdmVSaWdodCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MTJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0NzAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU1MDYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU1NzAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoxMzZweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNDI2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tcmlnaHQ6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTY0MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e3dpZHRoOjEzNnB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNjQwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e3dpZHRoOjE3NnB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoyNjRweDttYXJnaW4tbGVmdDozMnB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlBY3RpdmVSaWdodCAueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MzJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxOTIwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7d2lkdGg6MzkycHg7bWFyZ2luLWxlZnQ6NDhweDttYXJnaW4tcmlnaHQ6MjRweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e21hcmdpbi1sZWZ0OjI0cHg7bWFyZ2luLXJpZ2h0OjQ4cHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHttYXgtaGVpZ2h0OjEwMCU7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6MS4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjI1O21hcmdpbi1ib3R0b206MnB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6MS42cmVtfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5VGl0bGV7Zm9udC1zaXplOjJyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6Mi40cmVtfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGV7Zm9udC1zaXplOjEuMnJlbTttYXJnaW4tdG9wOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTMgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGV7Zm9udC1zaXplOjEuNnJlbX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhV2Vic2l0ZXtmb250LXNpemU6MS44cmVtO21hcmdpbi10b3A6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFXZWJzaXRle2ZvbnQtc2l6ZToycmVtO21hcmdpbi10b3A6MTJweH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWx7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO3BhZGRpbmctdG9wOjRweDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6M30ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU2NDAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsey13ZWJraXQtbGluZS1jbGFtcDoyfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTU3MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWx7LXdlYmtpdC1saW5lLWNsYW1wOjF9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMzQ2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTQ3MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWwsLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNTA2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbHtkaXNwbGF5Om5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFXZWJzaXRle3doaXRlLXNwYWNlOm5vd3JhcH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb257Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZToxcmVtO3RyYW5zaXRpb246YWxsIC4yc30ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb246aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjdXJzb3I6cG9pbnRlcn0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlCdXR0b257bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMzQ2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRTY3JpbXtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO3otaW5kZXg6NjtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1DaGFubmVse2JvcmRlci1yYWRpdXM6NTAlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmV7b3BhY2l0eTouMjV9Lnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uSG9zdHt3aWR0aDoxMDAlfS55dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkNvbnRlbnRDb250YWluZXJ7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoxOHB4fS55dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkZsZXhDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0ueXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25DYW5BbmltYXRle3RyYW5zaXRpb246d2lkdGggLjVzIGVhc2V9Lnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uU3RhdGljV2lkdGggLnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uRmxleENvbnRhaW5lcnt3aWR0aDphdXRvfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50SG9zdHtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JveC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLDAuNik7dHJhbnNpdGlvbjphbGwgLjJzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO3otaW5kZXg6NX0ueXRtQ3JlYXRvckVuZHNjcmVlblJvdW5kaW5nU21hbGwgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0e2JvcmRlci1yYWRpdXM6NHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdNZWRpdW0gLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0e2JvcmRlci1yYWRpdXM6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdMYXJnZSAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudEhvc3R7Ym9yZGVyLXJhZGl1czoxMnB4fS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50SG9zdEFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZn0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcE92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjMzJX0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbFRpdGxle2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjEuMnJlbTtmb250LXdlaWdodDo1MDA7bWFyZ2luOjZweCA4cHggMDtsaW5lLWhlaWdodDoxLjI1O3RleHQtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwwLjMpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTY0MCAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbFRpdGxle2ZvbnQtc2l6ZToxLjRyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlsVGl0bGV7Zm9udC1zaXplOjEuNnJlbTttYXJnaW46MTBweCAxMnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZXtmb250LXNpemU6MnJlbTttYXJnaW46MTRweCAxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZXtmb250LXNpemU6Mi40cmVtO21hcmdpbjoxOHB4IDIwcHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWx7b2JqZWN0LWZpdDpjb3Zlcn0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MH0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXMgLnl0QmFkZ2VTaGFwZUhvc3R7Zm9udC1zaXplOmluaGVyaXR9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjJweCA0cHg7bWFyZ2luLWJvdHRvbToycHg7bWFyZ2luLXJpZ2h0OjJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjZweCA4cHg7bWFyZ2luLWJvdHRvbTo4cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxOTIwIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjEwcHggMTJweDttYXJnaW4tYm90dG9tOjE2cHg7bWFyZ2luLXJpZ2h0OjE2cHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUb3BHcmFkaWVudHtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5Oi44O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYigwLDAsMCksdHJhbnNwYXJlbnQpfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5e3BhZGRpbmc6NHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdExlbmd0aE92ZXJsYXl7cGFkZGluZzo4cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFBsYXlsaXN0TGVuZ3RoT3ZlcmxheXtwYWRkaW5nOjEycHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdExlbmd0aHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpO21hcmdpbjowIDJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTMgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgNHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgOHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgMTJweH0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFNjcmlte2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO3otaW5kZXg6NTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmV7b3BhY2l0eTouMjV9Lnl0UGZwQXV0b25hdkhvc3R7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmJsb2NrfS55dFBmcEF1dG9uYXZWaXNpYmxle3BvaW50ZXItZXZlbnRzOmF1dG87YmFja2dyb3VuZDpibGFja30ueXRQZnBBdXRvbmF2U2NyaW17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOndoaXRlO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0UGZwQXV0b25hdkhlYWRlcntmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjhweH0ueXRQZnBBdXRvbmF2VGl0bGV7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206NHB4fS55dFBmcEF1dG9uYXZCeWxpbmV7Zm9udC1zaXplOjE2cHg7bWFyZ2luLWJvdHRvbToyNHB4fS55dFBmcEF1dG9uYXZCeWxpbmUsLnl0UGZwQXV0b25hdlRpdGxle21heC13aWR0aDo4MCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcEF1dG9uYXZQbGF5QnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjcycHg7aGVpZ2h0OjcycHg7bWFyZ2luLWJvdHRvbToyNHB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MDtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6d2hpdGV9Lnl0UGZwQXV0b25hdlJpbmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjcycHg7aGVpZ2h0OjcycHh9Lnl0UGZwQXV0b25hdlBsYXlJY29ue3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmlsbDp3aGl0ZX0ueXRQZnBDb250cm9sc0hvc3R7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS55dFBmcENvbnRyb2xzSG9zdCA6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjM2VhNmZmfS55dFBmcENvbnRyb2xzT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czphdXRvO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lnl0UGZwQ29udHJvbHNDcmVhdG9yRW5kc2NyZWVuQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mn0ueXRQZnBDb250cm9sc0ZhZGVJbntwb2ludGVyLWV2ZW50czphdXRvfS55dFBmcENvbnRyb2xzQmlnYm9hcmQsLnl0UGZwQ29udHJvbHNCb3R0b21CYXIsLnl0UGZwQ29udHJvbHNHcmFkaWVudFRvcCwueXRQZnBDb250cm9sc1Byb2dyZXNzQmFyQ29udGFpbmVyLC55dFBmcENvbnRyb2xzVmlkZW9UaXRsZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyx2aXNpYmlsaXR5IC4yNXN9Lnl0UGZwQ29udHJvbHNPdmVybGF5Om5vdCgueXRQZnBDb250cm9sc0ZhZGVJbikgLnl0UGZwQ29udHJvbHNCaWdib2FyZCwueXRQZnBDb250cm9sc092ZXJsYXk6bm90KC55dFBmcENvbnRyb2xzRmFkZUluKSAueXRQZnBDb250cm9sc0JvdHRvbUJhciwueXRQZnBDb250cm9sc092ZXJsYXk6bm90KC55dFBmcENvbnRyb2xzRmFkZUluKSAueXRQZnBDb250cm9sc0dyYWRpZW50VG9wLC55dFBmcENvbnRyb2xzT3ZlcmxheTpub3QoLnl0UGZwQ29udHJvbHNGYWRlSW4pIC55dFBmcENvbnRyb2xzUHJvZ3Jlc3NCYXJDb250YWluZXIsLnl0UGZwQ29udHJvbHNPdmVybGF5Om5vdCgueXRQZnBDb250cm9sc0ZhZGVJbikgLnl0UGZwQ29udHJvbHNWaWRlb1RpdGxle29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbn0ueXRQZnBDb250cm9sc0dyYWRpZW50VG9we3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikscmdiYSgwLDAsMCwwKSk7cG9pbnRlci1ldmVudHM6bm9uZTtoZWlnaHQ6NDlweDt6LWluZGV4OjV9Lnl0UGZwQ29udHJvbHNWaWRlb1RpdGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjEycHg7bWFyZ2luOjA7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOndoaXRlO2ZvbnQtc2l6ZToxOHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcENvbnRyb2xzTGFyZ2VQbGF5QnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOjc1cHg7aGVpZ2h0Ojc1cHg7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MjtwYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZC1jb2xvcjp1bnNldH0ueXRQZnBDb250cm9sc0xhcmdlUGxheUJ1dHRvbkljb25CZ3tmaWxsLW9wYWNpdHk6Ljg7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRQZnBDb250cm9sc092ZXJsYXk6aG92ZXIgLnl0UGZwQ29udHJvbHNMYXJnZVBsYXlCdXR0b25JY29uQmd7ZmlsbC1vcGFjaXR5OjE7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRQZnBDb250cm9sc1ZpZGVvV2FsbEVuZHNjcmVlbntwYWRkaW5nOjQ4cHggMDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoyfS55dFBmcENvbnRyb2xzQXV0b25hdntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjJ9Lnl0UGZwQ29udHJvbHNQcm9ncmVzc0JhckNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NDBweDtsZWZ0OjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czphdXRvO3otaW5kZXg6M30ueXRQZnBDb250cm9sc0JvdHRvbUJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6NDBweDtwYWRkaW5nLWxlZnQ6M3B4O2NvbG9yOndoaXRlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cG9pbnRlci1ldmVudHM6YXV0bzt6LWluZGV4OjJ9Lnl0UGZwQ29udHJvbHNMZWZ0Q29udHJvbHMsLnl0UGZwQ29udHJvbHNSaWdodENvbnRyb2xze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0UGZwQ29udHJvbHNWb2x1bWVDb250cm9sc3ttYXgtd2lkdGg6MTEycHh9Lnl0UGZwQ29udHJvbHNUaW1lRGlzcGxheS55dFBmcENvbnRyb2xzVGltZURpc3BsYXl7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEuNHJlbTttYXJnaW4tbGVmdDo4cHg7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6MzQ5cHgpey55dFBmcENvbnRyb2xzVGltZURpc3BsYXkueXRQZnBDb250cm9sc1RpbWVEaXNwbGF5e2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpey55dFBmcENvbnRyb2xzQ2FwdGlvbnNCdXR0b257ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoyNDlweCl7Lnl0UGZwQ29udHJvbHNWb2x1bWVDb250cm9scy55dFBmcENvbnRyb2xzVm9sdW1lQ29udHJvbHN7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoxOTlweCl7Lnl0UGZwQ29udHJvbHNTZXR0aW5nc0J1dHRvbntkaXNwbGF5Om5vbmV9fS55dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbi55dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbntoZWlnaHQ6MTJweDt3aWR0aDoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCV9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3R7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6YmxvY2t9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3Q6Zm9jdXMtdmlzaWJsZSAueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheSwueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVySG9zdDpmb2N1cy13aXRoaW4gLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXksLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3Q6aG92ZXIgLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXl7b3BhY2l0eToxfS55dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJUaHVtYm5haWx7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDtjb2xvcjp3aGl0ZX0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheVRpdGxlQnlsaW5le3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo2MHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsLjgpLHJnYmEoMCwwLDAsLjYpIDYwJSxyZ2JhKDAsMCwwLDApKTtwYWRkaW5nOjhweH0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyVGl0bGV7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6d2hpdGV9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckJ5bGluZXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTZweDttYXJnaW4tdG9wOjRweDtjb2xvcjp3aGl0ZX0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyRHVyYXRpb257cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjhweDtyaWdodDo4cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEycHg7Y29sb3I6d2hpdGV9Lnl0UGZwTW9yZVZpZGVvc0hvc3R7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfUBtZWRpYSAobWF4LWhlaWdodDoyODlweCl7Lnl0UGZwTW9yZVZpZGVvc0hvc3R7ZGlzcGxheTpub25lfX0ueXRQZnBNb3JlVmlkZW9zT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NDhweDtsZWZ0OjEycHg7cmlnaHQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTIsMTIsMTIsLjgpO3otaW5kZXg6MjtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9pbnRlci1ldmVudHM6YXV0bztib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzo4cHggMDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0UGZwTW9yZVZpZGVvc0hlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6MCAxNnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRQZnBNb3JlVmlkZW9zVGl0bGV7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcE1vcmVWaWRlb3NDbG9zZUJ1dHRvbntwYWRkaW5nOjRweDttYXJnaW4tcmlnaHQ6LTRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlfS55dFBmcE1vcmVWaWRlb3NDbG9zZUJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS55dFBmcE1vcmVWaWRlb3NDbG9zZUljb257Y29sb3I6d2hpdGU7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQZnBNb3JlVmlkZW9zVmlkZW9MaXN0Q29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7cGFkZGluZzowIDEycHggNHB4IDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdy14OmF1dG87aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Njcm9sbGJhci13aWR0aDpub25lO3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdDo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS55dFBmcE1vcmVWaWRlb3NWaWRlb0xpc3R7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnl9Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtoZWlnaHQ6MDttYXJnaW46MCA2cHg7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6YmxhY2s7c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7cGFkZGluZy1ib3R0b206MTM1cHg7d2lkdGg6MjQwcHg7bWluLXdpZHRoOjI0MHB4fUBtZWRpYSAobWF4LXdpZHRoOjEwNDBweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDE0LjA2MjUlIC0gNi43NXB4KTt3aWR0aDpjYWxjKDI1JSAtIDEycHgpO21pbi13aWR0aDpjYWxjKDI1JSAtIDEycHgpfX1AbWVkaWEgKG1heC13aWR0aDo3ODBweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDE4LjU2MjUlIC0gMy4zNzVweCk7d2lkdGg6Y2FsYygzMyUgLSA2cHgpO21pbi13aWR0aDpjYWxjKDMzJSAtIDZweCl9fUBtZWRpYSAobWF4LXdpZHRoOjUzNHB4KXsueXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVte3BhZGRpbmctYm90dG9tOmNhbGMoMjguMTI1JSAtIDMuMzc1cHgpO3dpZHRoOmNhbGMoNTAlIC0gNnB4KTttaW4td2lkdGg6Y2FsYyg1MCUgLSA2cHgpfX1AbWVkaWEgKG1heC13aWR0aDoyODhweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDU2LjI1JSAtIDMuMzc1cHgpO3dpZHRoOmNhbGMoMTAwJSAtIDZweCk7bWluLXdpZHRoOmNhbGMoMTAwJSAtIDZweCl9fS55dFBmcE1vcmVWaWRlb3NWaWRlb0l0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6YXV0b30ueXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVtOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OmF1dG99Lnl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnQsLnl0UGZwTW9yZVZpZGVvc1BhZGRsZVJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzMsMzMsMzMsLjgpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDRweCA0cHggcmdiYSgwLDAsMCwuMjUpfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVMZWZ0OmhvdmVyLC55dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYig1MCw1MCw1MCl9Lnl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnR7bGVmdDowfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodHtyaWdodDowfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVJY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0UGZwTW9yZVZpZGVvc01vcmVWaWRlb3NCdXR0b257cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjU2cHg7bGVmdDoxMnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7Y29sb3I6d2hpdGU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6OHB4IDE2cHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6NTtwb2ludGVyLWV2ZW50czphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRQZnBNb3JlVmlkZW9zTW9yZVZpZGVvc0J1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJIb3N0e3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6YmxvY2t9Lnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlckhvc3Q6Zm9jdXMtdmlzaWJsZSAueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyT3ZlcmxheSwueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVySG9zdDpmb2N1cy13aXRoaW4gLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlck92ZXJsYXksLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlckhvc3Q6aG92ZXIgLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlck92ZXJsYXl7b3BhY2l0eToxfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJUaHVtYm5haWx7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O2NvbG9yOndoaXRlfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5VGl0bGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjYwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikgNjAlLHJnYmEoMCwwLDAsMCkpO3BhZGRpbmc6OHB4fS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJUaXRsZXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweDttYXgtaGVpZ2h0OjM2cHg7Y29sb3I6d2hpdGU7b3ZlcmZsb3c6aGlkZGVufS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJCb3R0b21PdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOndoaXRlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVySWNvbntmaWxsOmN1cnJlbnRDb2xvcjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDo0cHh9Lnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaXNpYmxle2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6cmdiKDEyLDEyLDEyKX0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5Jc09ic2N1cmVke3Zpc2liaWxpdHk6aGlkZGVufS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpZGVvTGlzdENvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BvaW50ZXItZXZlbnRzOmF1dG87cGFkZGluZzoxMnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaWRlb0xpc3R7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmc6MH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVMZWZ0LC55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZVJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzMsMzMsMzMsLjkpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDRweCA0cHggcmdiYSgwLDAsMCwuMjUpfS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUxlZnQ6aG92ZXIsLnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlUmlnaHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNTAsNTAsNTApfS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUxlZnR7bGVmdDo4cHh9Lnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlUmlnaHR7cmlnaHQ6OHB4fS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaWRlb0l0ZW17cG9zaXRpb246YWJzb2x1dGU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dFBsYXllckNvbnRyb2xzUGxheWVyQWN0aW9uSW5kaWNhdG9ySG9zdHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6N30ueXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckFjdGlvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvcGFjaXR5OjA7YW5pbWF0aW9uOmFjdGlvbi1mYWRlLW91dCAuNXMgbGluZWFyIDEgbm9ybWFsIGZvcndhcmRzfS55dFBsYXllckNvbnRyb2xzUGxheWVyQWN0aW9uSW5kaWNhdG9ySWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O2ZpbGw6I2ZmZn1Aa2V5ZnJhbWVzIGFjdGlvbi1mYWRlLW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKX19Lnl0d1BsYXllclRpbWVEaXNwbGF5SG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbn0ueXR3UGxheWVyVGltZURpc3BsYXlUaW1lQ2h1bmtze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZURvdDpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjZweDt3aWR0aDo2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7bWFyZ2luLXJpZ2h0OjRweH0ueXR3UGxheWVyVGltZURpc3BsYXlMaXZlRG90Lnl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZUhlYWQ6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjUsMCw0NSwwLjkpO29wYWNpdHk6MX0ueXR3UGxheWVyVGltZURpc3BsYXlUaW1lRGVsaW1pdGVye2NvbG9yOiNmZmY7bWFyZ2luOjAgNHB4O29wYWNpdHk6Ljd9Lnl0d1BsYXllclRpbWVEaXNwbGF5VGltZVNlY29uZHtvcGFjaXR5Oi43fS55dHdQbGF5ZXJUaW1lRGlzcGxheUNoYXB0ZXJUZXh0e21hcmdpbi1sZWZ0OjhweH0ueXR3UGxheWVyVGltZURpc3BsYXlQbGF5ZXJCYXJBY3Rpb25Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXR3UGxheWVyVGltZURpc3BsYXlQbGF5ZXJCYXJCdXR0b24ueXR3UGxheWVyVGltZURpc3BsYXlQaWxse21hcmdpbjowIDAgMCA4cHh9Lnl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQnV0dG9ue292ZXJmbG93OmhpZGRlbjttYXgtd2lkdGg6MjQwcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXR3UGxheWVyVGltZURpc3BsYXlDaGV2cm9ue2NvbG9yOiNmZmY7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDttYXJnaW4tcmlnaHQ6LTRweH0ueXR3UGxheWVyVGltZURpc3BsYXlQaWxse2hlaWdodDoyNHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjRweCA2cHg7Ym9yZGVyLXJhZGl1czoxNnB4O2ZvbnQtc2l6ZToxLjRyZW07YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHdQbGF5ZXJUaW1lRGlzcGxheVBpbGwgYnV0dG9ue3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXR3UGxheWVyVGltZURpc3BsYXlQaWxsIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0d1BsYXllclRpbWVEaXNwbGF5UGlsbHttYXJnaW4tbGVmdDoxNnB4fUBtZWRpYSAobWF4LWhlaWdodDoyMjFweCl7Lnl0d1BsYXllclRpbWVEaXNwbGF5RnVsbHNjcmVlbkNvbnRyb2xzQWx3YXlzT257ZGlzcGxheTpub25lfX0ueXR3UGxheWVyVGltZURpc3BsYXlTY3JlZW5SZWFkZXJPbmx5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BhZGRpbmc6MDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItd2lkdGg6MH0ueXR3UGxheWVyU2Vla092ZXJsYXlIb3N0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lO2RpcmVjdGlvbjpsdHJ9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5OjB9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uQmFja3tsZWZ0OjQ4cHh9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uRm9yd2FyZHtyaWdodDo0OHB4fS55dHdQbGF5ZXJTZWVrT3ZlcmxheUR1cmF0aW9ue2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwIDFweCByZ2JhKDAsMCwwLDAuOCk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH1AbWVkaWEgKG1heC13aWR0aDo1MjcuOXB4KXsueXR3UGxheWVyU2Vla092ZXJsYXlEdXJhdGlvbntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMH19Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uQmFjayAueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd3ttYXJnaW4tcmlnaHQ6MjBweH0ueXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIC55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93e21hcmdpbi1sZWZ0OjIwcHh9Lnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3cgLnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dTdmd7ZGlzcGxheTpibG9ja30ueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvdyAueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BhdGh7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAuNXB4IHJnYmEoMCwwLDAsMC44KSl9Lnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQZXJzaXN0ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0ueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd0FkZGl0aW9uYWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2xhdGU6MCAtNTAlfS55dHdQbGF5ZXJTZWVrT3ZlcmxheUFuaW1hdGlvbkJhY2sgLnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dBZGRpdGlvbmFse2xlZnQ6MH0ueXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIC55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93QWRkaXRpb25hbHtyaWdodDowfS55dHdQbGF5ZXJFbmRzY3JlZW5Ib3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckVuZHNjcmVlbkNvbnRhaW5lcntjb2xvcjojZmZmfS55dHdQbGF5ZXJFbmRzY3JlZW5QbGF5ZXJFbmRzY3JlZW57cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyk7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDB9Lnl0d1BsYXllckVuZHNjcmVlblBsYXllckVuZHNjcmVlbltkYXRhLWhhcy10aW1lci1jb3VudGRvd249dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjojMDAwO3BhZGRpbmc6OHB4IDE2cHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5QbGF5ZXJFbmRzY3JlZW5bZGF0YS1oYXMtdGltZXItY291bnRkb3duPXRydWVde3BhZGRpbmc6OHB4fX1bZGlyPXJ0bF0gLnl0d1BsYXllckVuZHNjcmVlblBsYXllckVuZHNjcmVlbltkYXRhLWhhcy10aW1lci1jb3VudGRvd249dHJ1ZV17ZGlyZWN0aW9uOnJ0bH0ueXR3UGxheWVyRW5kc2NyZWVuVG9wUGFuZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5Ub3BQYW5lbHtkaXNwbGF5Om5vbmV9fS55dHdQbGF5ZXJFbmRzY3JlZW5IZWFkZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjE2cHh9Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bkNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7bWFyZ2luLWJvdHRvbToxMnB4O21hcmdpbi10b3A6NHB4fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bkNvbnRhaW5lcnttYXJnaW4tYm90dG9tOjhweH19Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bk51bWJlcntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojZmZmfS55dHdQbGF5ZXJFbmRzY3JlZW5DdWVkVmlkZW9Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tb3otYm94LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0d1BsYXllckVuZHNjcmVlbkN1ZWRWaWRlb0NvbnRhaW5lcjpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MTJweH0ueXR3UGxheWVyRW5kc2NyZWVuQ3VlZFRodW1ibmFpbE92ZXJsYXl7d2lkdGg6NTAlO2ZsZXgtYmFzaXM6Y2FsYyg1MCUgLSA2cHgpO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lnl0d1BsYXllckVuZHNjcmVlbkN1ZWRUaHVtYm5haWxPdmVybGF5e2ZsZXgtYmFzaXM6Y2FsYyg1MCUgLSA0cHgpfX0ueXR3UGxheWVyRW5kc2NyZWVuQ3VlZFRodW1ibmFpbE92ZXJsYXk+Lnl0d1BsYXllckVuZHNjcmVlblRodW1ibmFpbENvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDphdXRvO3BhZGRpbmctYm90dG9tOjU2LjI1JX0ueXR3UGxheWVyRW5kc2NyZWVuVGh1bWJuYWlsT3ZlcmxheXN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MH0ueXR3UGxheWVyRW5kc2NyZWVuVmlkZW9JbmZve3dpZHRoOjUwJTtmbGV4LWJhc2lzOmNhbGMoNTAlIC0gNnB4KX1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0luZm97ZmxleC1iYXNpczpjYWxjKDUwJSAtIDRweCl9fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXR3UGxheWVyRW5kc2NyZWVuVmlkZW9UaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb1RpdGxle21heC1oZWlnaHQ6NHJlbTtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206NHB4fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0F1dGhvcntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXR3UGxheWVyRW5kc2NyZWVuQnV0dG9uQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ueXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9ue3dpZHRoOjEwMCV9Lnl0d1BsYXllckVuZHNjcmVlbkFjdGlvbkJ1dHRvbj46Zmlyc3QtY2hpbGR7d2lkdGg6MTAwJX0ueXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9uOmZpcnN0LWNoaWxke21hcmdpbi1yaWdodDoxMnB4fS55dG1DdXN0b21Db250cm9sSG9zdHtkaXNwbGF5OmJsb2NrfS55dG1DdXN0b21Db250cm9sSG9zdCA6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjM2VhNmZmfS55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3R7Y29sb3I6I2ZmZjtwYWRkaW5nOjEycHggMCAwIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO3RvcDo1MnB4O21pbi13aWR0aDoxMzBweDttYXgtd2lkdGg6bWluKDUwJSAtIDY0cHgsMjcycHgpfS55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RBdXRvaGlkZXthbmltYXRpb246ZmFkZSAzcyBlYXNlLWluIDEwcyBmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfUBtZWRpYSAobWF4LWFzcGVjdC1yYXRpbzozLzQpey55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RUb3BDb250cm9sc1N0YWNrZWRJblBvcnRyYWl0e3RvcDoxMTJweH19Lnl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVySGlkZGVue2Rpc3BsYXk6bm9uZX0ueXRtRW1iZWRzSW5mb1BhbmVsUmVuZGVyZXJCdXR0b257LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KTtib3JkZXItbGVmdDo0cHggc29saWQgIzNlYTZmZjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MzEycHg7cGFkZGluZzo4cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lnl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVyVGV4dHtmb250LXNpemU6MS4zcmVtO3BhZGRpbmctbGVmdDo4cHg7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlclRleHR7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRtRW1iZWRzSW5mb1BhbmVsUmVuZGVyZXJUZXh0e21heC1oZWlnaHQ6NHJlbX1Aa2V5ZnJhbWVzIGZhZGV7dG97b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9fS55dEVtYmVkc0luZm9QYW5lbERldGFpbHNWaWV3TW9kZWxCb2R5VGV4dHtwYWRkaW5nOjAgMTJweCAxMnB4IDEycHg7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRBdXRvY3JvcEJ1dHRvbkhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlO21hcmdpbi10b3A6NjBweH0ueXRBdXRvY3JvcEJ1dHRvblZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS55dEF1dG9jcm9wQnV0dG9uSGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufS55dEF1dG9jcm9wQnV0dG9uQXV0b0Nyb3BCdXR0b257Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQwLDQwLDQwLDAuNik7Ym9yZGVyLXJhZGl1czoxOHB4fS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3R7LW1vei1ib3gtZmxleDoxO2ZsZXg6MTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdy14OmF1dG99QG1lZGlhIG5vdCAocG9pbnRlcjpmaW5lKXsueXRGdWxsc2NyZWVuVmlkZW9SZWNvbW1lbmRhdGlvbnNIb3N0ey1tcy1vdmVyZmxvdy1zdHlsZTpub25lO3Njcm9sbGJhci13aWR0aDpub25lfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX19QG1lZGlhIChwb2ludGVyOmZpbmUpey55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3R7b3ZlcmZsb3cteTphdXRvfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE2cHh9Lnl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zSG9zdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjRweCBzb2xpZCB0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjojNjA2MDYwfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzkwOTA5MH19Lnl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zUmVjb21tZW5kYXRpb257d2lkdGg6MjAwcHg7bWluLXdpZHRoOjIwMHB4O21hcmdpbjowIDhweDtjb2xvcjojZmZmfS55dHdQbGF5ZXJGdWxsc2NyZWVuQ29udHJvbHNIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckZ1bGxzY3JlZW5Ub3BDb250cm9sc0hvc3R7cGFkZGluZzoxMnB4O2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDo2fS55dHdQbGF5ZXJGdWxsc2NyZWVuVG9wQ29udHJvbHNGdWxsc2NyZWVuQ29udHJvbHNWaWRlb1RpdGxle21hcmdpbjowO2NvbG9yOiNmZmZ9Lnl0d1BsYXllckZ1bGxzY3JlZW5Ub3BDb250cm9sc0Z1bGxzY3JlZW5DbG9zZUJ1dHRvbldyYXBwZXJ7bWFyZ2luLXRvcDotOHB4O21hcmdpbi1sZWZ0OmF1dG99Lnl0bVBhaWRDb250ZW50T3ZlcmxheUhvc3R7Y29sb3I6I2ZmZjthbmltYXRpb246ZmFkZSAzcyBlYXNlLWluIDIwcyBmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO3BhZGRpbmc6MTJweCAwIDEycHggMTJweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0ueXRtUGFpZENvbnRlbnRPdmVybGF5SGlkZGVue2Rpc3BsYXk6bm9uZX0ueXRtUGFpZENvbnRlbnRPdmVybGF5TGlua3stbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMzZWE2ZmY7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjMxMnB4O3BhZGRpbmc6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lfS55dG1QYWlkQ29udGVudE92ZXJsYXlUZXh0e2ZvbnQtc2l6ZToxLjNyZW07cGFkZGluZy1sZWZ0OjhweH1Aa2V5ZnJhbWVzIGZhZGV7dG97b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9fS5wbGF5ZXItY29udHJvbHMtYm90dG9te2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTozMHB4O3otaW5kZXg6MjtoZWlnaHQ6NDRweH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAucGxheWVyLWJvdHRvbS1jb250cm9scy1mdWxsc2NyZWVuLWljb24tdmlzaWJsZS1hcmVhey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NTAlO3BhZGRpbmc6NnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAucGxheWVyLWJvdHRvbS1jb250cm9scy1mdWxsc2NyZWVuLWljb24tdmlzaWJsZS1hcmVhIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LnBsYXllci1jb250cm9scy1ib3R0b20gLnBsYXllci1ib3R0b20tY29udHJvbHMtZnVsbHNjcmVlbi1pY29uLXZpc2libGUtYXJlYSBzdmd7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS5wbGF5ZXItY29udHJvbHMtYm90dG9tLnBsYXllci1jb250cm9scy1ib3R0b20tbGVmdHtsZWZ0OjEycHg7cmlnaHQ6NzhweH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbS5wbGF5ZXItY29udHJvbHMtYm90dG9tLXJpZ2h0e3JpZ2h0OjI0cHh9LnBsYXllci1jb250cm9scy1ib3R0b20gLmljb24tYnV0dG9uLmZ1bGxzY3JlZW4taWNvbntkaXNwbGF5OmJsb2NrOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3BhZGRpbmc6NnB4fWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIC5wbGF5ZXItY29udHJvbHMtYm90dG9te2JvdHRvbTo0NHB4fWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scyAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206NzRweH1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAuZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMuZnMtd2F0Y2gtc3lzdGVtIC5wbGF5ZXItY29udHJvbHMtYm90dG9te2JvdHRvbTo5NHB4fS55dHdQbGF5ZXJNaWRkbGVDb250cm9sc0hvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2hlaWdodDoxMnB4O3dpZHRoOjEycHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxle2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ei1pbmRleDo2fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZS5wcmV2ZW50LWNvbnRyb2xzLWNvbGxpc2lvbnt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHg7cGFkZGluZzo2cHg7Ym9yZGVyLXJhZGl1czoyNHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjMpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuaWNvbi1idXR0b24+YzMtaWNvbntoZWlnaHQ6MzJweDt3aWR0aDozMnB4fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHg7cGFkZGluZzo2cHg7YmFja2dyb3VuZDpub25lfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9uIGMzLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtdmlzaWJsZS1hcmVhey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MzZweDt3aWR0aDozNnB4O3BhZGRpbmc6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtdmlzaWJsZS1hcmVhIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItbWlkZGxlLWNvbnRyb2xzLXByZXYtbmV4dC1idXR0b24gLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LXZpc2libGUtYXJlYSBzdmd7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuaWNvbi1idXR0b24uZW5kc2NyZWVuLXJlcGxheS1idXR0b257aGVpZ2h0OmF1dG87d2lkdGg6YXV0bztib3JkZXItcmFkaXVzOjU2cHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5pY29uLWJ1dHRvbi5lbmRzY3JlZW4tcmVwbGF5LWJ1dHRvbj5jMy1pY29ue2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7cGFkZGluZzo4cHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24uaWNvbi1idXR0b257aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czo1MCV9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24uaWNvbi1idXR0b24+YzMtaWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O3BhZGRpbmc6dW5zZXR9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5lbmRzY3JlZW4tcmVwbGF5LWJ1dHRvbi5pY29uLWJ1dHRvbix5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1jb250cm9sLXBsYXktcGF1c2UtaWNvbnttYXJnaW46MCAzNHB4fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuc2NyZWVucmVhZGVyLXNhZmUtaGlkZS1taWRkbGUtYnV0dG9uc3twb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1jb250cm9scy1zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfVtkaXI9cnRsXSB5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGU6bm90KC5wcmV2ZW50LWNvbnRyb2xzLWNvbGxpc2lvbil7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlLWNvcmUtYnV0dG9uc3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlyZWN0aW9uOmx0cn0ueXRtVmlkZW9JbmZvSG9zdHstbW96LWJveC1mbGV4OjE7ZmxleDoxO292ZXJmbG93OmhpZGRlbjttaW4td2lkdGg6MH0ueXRtVmlkZW9JbmZvVmlkZW9EZXRhaWxzQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmctbGVmdDoxMnB4O21pbi1oZWlnaHQ6NS4ycmVtfS55dG1WaWRlb0luZm9WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MnJlbTtsaW5lLWhlaWdodDoyLjhyZW07Zm9udC13ZWlnaHQ6NzAwfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dG1WaWRlb0luZm9WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS44cmVtO2xpbmUtaGVpZ2h0OjIuNnJlbTtmb250LXdlaWdodDo3MDB9fS55dG1WaWRlb0luZm9WaWRlb1RpdGxle2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7cGFkZGluZy10b3A6MTBweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgOTUlLHJnYmEoMCwwLDAsMCkpfVtkaXI9cnRsXSAueXRtVmlkZW9JbmZvVmlkZW9UaXRsZXttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCNmZmYgOTUlLHJnYmEoMCwwLDAsMCkpfS55dG1WaWRlb0luZm9DaGFubmVsVGl0bGV7bWF4LXdpZHRoOjEwMCU7Zm9udC1zaXplOjEuMnJlbTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO29wYWNpdHk6MTtsaW5lLWhlaWdodDoxLjF9Lnl0bVZpZGVvSW5mb1ZpZGVvVGl0bGVDb250YWluZXJ7bWluLWhlaWdodDozNnB4Oy1tb3otYm94LWZsZXg6MTtmbGV4OjE7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiNmZmY7bWFyZ2luLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjB9Lnl0bVZpZGVvSW5mb0xvZ29FbmFibGVke3BhZGRpbmctbGVmdDo1MnB4fS55dG1WaWRlb0luZm9DaGFubmVsTG9nb3t3aWR0aDozNnB4O2hlaWdodDozNnB4O2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2ZsZXgtc2hyaW5rOjA7bWFyZ2luOjEycHg7bWFyZ2luLXRvcDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDo3O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS55dG1WaWRlb0luZm9DaGFubmVsQ29udGFpbmVye2hlaWdodDo1LjJyZW07cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO21pbi13aWR0aDo1MnB4O21heC13aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTttYXJnaW46NHB4O21hcmdpbi10b3A6OHB4O292ZXJmbG93OmhpZGRlbn1bZGlyPXJ0bF0gLnl0bVZpZGVvSW5mb0NoYW5uZWxDb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lnl0bVZpZGVvSW5mb092ZXJsYXl7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjgpO21hcmdpbi1sZWZ0OjRweDtoZWlnaHQ6MTAwJTt0cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7b3BhY2l0eTowO21heC13aWR0aDowO3BhZGRpbmctbGVmdDo1MnB4O3BhZGRpbmctcmlnaHQ6MTBweDt6LWluZGV4OjU7cG9zaXRpb246cmVsYXRpdmV9Lnl0bVZpZGVvSW5mb0V4cGFuZGVke29wYWNpdHk6MTttYXgtd2lkdGg6MTAwJX0ueXRtVmlkZW9JbmZvQ2hhbm5lbEluZm97ZGlzcGxheTpibG9jaztwYWRkaW5nLXJpZ2h0OjhweDstbW96LWJveC1mbGV4OjE7ZmxleDoxO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczthbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJX0ueXRtVmlkZW9JbmZvRmx5b3V0Q2hhbm5lbFRpdGxle2ZvbnQtc2l6ZToxLjRyZW07Y29sb3I6I2ZmZjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToycHg7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0bVZpZGVvSW5mb0ZseW91dENoYW5uZWxTdWJ0aXRsZXtmb250LXNpemU6MS4ycmVtO2NvbG9yOiNmZmY7dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS55dG1WaWRlb0luZm9TdWJzY3JpYmVCdXR0b257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiAuaXMtc3Vic2NyaWJlZCAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bVZpZGVvSW5mb0hpZGUsLnl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiAuc3Vic2NyaWJlLWJ1dHRvbi1jb3VudHtkaXNwbGF5Om5vbmV9Lnl0bVZpZGVvSW5mb0xpbms6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9Lnl0bVZpZGVvSW5mb0NoYW5uZWxBdmF0YXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0OHB4O2hlaWdodDo0OHB4fS55dG1NdXRlQnV0dG9uSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXRtTXV0ZUJ1dHRvbkJ1dHRvbntjdXJzb3I6cG9pbnRlcjt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MTJweDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7Zm9udDppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblNwYW5uZXJJY29uT2ZmLC55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25Pbnt3aWR0aDozNnB4O2hlaWdodDoxNHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PZmYgc3ZnLC55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PbiBzdmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjM2cHg7aGVpZ2h0OjE0cHh9Lnl0d0F1dG9uYXZUb2dnbGVCdXR0b25QbGF5SWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2xlZnQ6MjJweDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fVtkaXI9cnRsXSAueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblBsYXlJY29ue2xlZnQ6NnB4fS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uUGF1c2VJY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDo2cHg7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH1bZGlyPXJ0bF0gLnl0d0F1dG9uYXZUb2dnbGVCdXR0b25QYXVzZUljb257bGVmdDoyMnB4fS55dHdQbGF5ZXJBdXRvbmF2VG9nZ2xlSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJBdXRvbmF2VG9nZ2xlSG9zdCAueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblBsYXlJY29ue2NvbG9yOiNmZmZ9Lnl0d1BsYXllclRvcENvbnRyb2xzSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJUb3BDb250cm9sc1BsYXllckNvbnRyb2xzVG9wUmlnaHR7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1BsYXllclRvcENvbnRyb2xzQ29udGFpbmVyV2l0aEVtYmVkZGVkVmlkZW9EZXRhaWxzey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1AbWVkaWEgKG1heC1hc3BlY3QtcmF0aW86My80KXsueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpyZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfX1AbWVkaWEgKG1heC1hc3BlY3QtcmF0aW86My80KXsueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHNQbGF5ZXJDb250cm9sc1RvcFJpZ2h0ey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH19Lnl0bVdhdGNoUGxheWVyQ29udHJvbHNIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0bVdhdGNoUGxheWVyQ29udHJvbHNCYWNrZ3JvdW5kQWN0aW9uSXRlbXN7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyfXl0bS1ub3RpZmljYXRpb24tYWN0aW9uLXJlbmRlcmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lm5vdGlmaWNhdGlvbi1hY3Rpb24tcmVzcG9uc2UtdGV4dHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7cGFkZGluZy1yaWdodDoxcmVtfS5ub3RpZmljYXRpb24tYWN0aW9uLWJ1dHRvbntmbGV4LXNocmluazowfS51bmlmaWVkLXNoYXJlLXVybC1pbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmctYm90dG9tOjRweDtvdXRsaW5lOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDttYXJnaW4tYm90dG9tOjFweDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNzM3MzczO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0OmZvY3Vze21hcmdpbi1ib3R0b206MDtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMzAzMDN9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfS51bmlmaWVkLXNoYXJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0e3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEycHg7Y29sb3I6IzA2NWZkNDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6OHB4fS5ib3R0b20tc2hlZXQtc2hhcmUtaXRlbSAudW5pZmllZC1zaGFyZS11cmwtaW5wdXR7aGVpZ2h0OjQ4cHg7bWFyZ2luLWJvdHRvbToxMnB4fS5zaGFyZS10YXJnZXQtbGlua3tkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTJweH0uYm90dG9tLXNoZWV0LXNoYXJlLWl0ZW0gLnNoYXJlLXRhcmdldC1saW5re3BhZGRpbmc6MDttYXJnaW4tbGVmdDoxMnB4O2hlaWdodDo0OHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9ZnVsbHNjcmVlbi1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93OnNjcm9sbDt6LWluZGV4OjR9c2VudGluZWx7fSIpOwp0aGlzLmRlZmF1bHRfYmFzZT10aGlzLmRlZmF1bHRfYmFzZXx8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewpfLkN0PWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5zZXJ2aWNlSWQ9bmV3IF8uTnIoYSxiKX10b1N0cmluZygpe3JldHVybiB0aGlzLnNlcnZpY2VJZC50b1N0cmluZygpfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIml1VDVPYyIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgd3Q7Xy52dD1mdW5jdGlvbihhLGIpe3JldHVybiBhPT1iPyEwOmEmJmI/YS53aWR0aD09Yi53aWR0aCYmYS5oZWlnaHQ9PWIuaGVpZ2h0OiExfTtfLnh0PWZ1bmN0aW9uKGEsYil7Yi5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheU5hbWUiKXx8KGIuZGlzcGxheU5hbWU9YS50b1N0cmluZygpKTtiW3d0XT1hfTt3dD1TeW1ib2woIklhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uSWU9ZnVuY3Rpb24oKXt0aGlzLmlkPSJiIn07Xy5JZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZH07Xy5GdD1uZXcgXy5OcigiTXBKd1pjIiwiTXBKd1pjIik7dmFyIEd0O0d0PW5ldyBfLkllO18uSHQ9Y2xhc3MgZXh0ZW5kcyBfLkple2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoR3QsYSk7dGhpcy5ub2RlPWE7dGhpcy5raW5kPWJ9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQoqLwp2YXIgQUEsQkEsREEsV2FhLFhhYSxPQSxQQSwkYWEsYWJhLFNBLFRBLGRiYSxlYmEsZmJhLGRCLGdiYSxqYmEsa2JhLGhCLGtCLGxCLHJCLHNCLHRCLHVCLHZCLHdCLG5iYSxwYmEsb2JhLEVCLHNiYSxEQixGQixIQix0YmEsdWJhLHZiYSxRQixTQixUQix3YmEsYUMsWUIsY0MsVUIsZUMsaEMsaUMsa0MseWJhLHpiYSxBYmEsc0MsdkMsRGJhLHpDLENDLEZiYSxHYmEsRWJhLFZhYSxLQSxvQztfLnlBPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmZiKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O18uekE9ZnVuY3Rpb24oYSxiKXtpZihhLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGEudGFnTmFtZSkpdGhyb3cgRXJyb3IoImgiKTthLmlubmVySFRNTD1fLnlBKGIpfTtBQT1mdW5jdGlvbihhLGIpe3ZhciBjPXt9O2ZvcihsZXQgZCBpbiBhKWNbZF09Yi5jYWxsKHZvaWQgMCxhW2RdLGQsYSk7cmV0dXJuIGN9OwpfLkl0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIk1hIik7fTtCQT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gbnVsbDthPV8uWHQoXy5lZChhLDIsdm9pZCAwLF8uRHYpKTtyZXR1cm4gYT09PW51bGx8fGE9PT12b2lkIDA/bnVsbDpfLmdiKGEpfTtfLkNBPWZ1bmN0aW9uKGE9Myl7dmFyIGI9Xy5adDtpZighYil7c3dpdGNoKGEpe2Nhc2UgMDphPUVycm9yKCJSYSIpO2JyZWFrO2Nhc2UgMTphPUVycm9yKCJVYSIpO2JyZWFrO2Nhc2UgMjphPUVycm9yKCJWYSIpO2JyZWFrO2RlZmF1bHQ6YT1FcnJvcigiV2EiKX10aHJvdyBhO31yZXR1cm4gYn07REE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU9iamVjdC5jcmVhdGUoVmFhKTtkLnNvdXJjZT1hO2QuVGc9YjtjIT12b2lkIDAmJihkLmVxdWFsPWMpO2E9KCk9PntfLnJ1KGQpO18ucHUoZCk7aWYoZC52YWx1ZT09PV8uSXYpdGhyb3cgZC5lcnJvcjtyZXR1cm4gZC52YWx1ZX07YVtfLlp1XT1kO3JldHVybiBhfTsKXy5FQT1mdW5jdGlvbihhKXt2YXIgYj1fLmt1KG51bGwpO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7Xy5rdShiKX19O1dhYT1mdW5jdGlvbihhKXthPXtbXy5FdV06ITAsZGVidWdOYW1lOmF9OyFfLlp0fHxfLkJ1KGEpO3JldHVybiBhfTtfLkZBPWZ1bmN0aW9uKGEpe3JldHVybiBhLmRlYnVnTmFtZXx8YS5uYW1lfHwiW2NvbXBvbmVudF0ifTtfLkdBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLkZBKGEpO18uTXU9e25hbWU6Yz9gJHtkfSAoJHtjfSlgOmQsbGo6YS5jb21wb25lbnRUeXBlIT09Xy5LdixwYXJlbnQ6Xy5NdX07YT1iKCk7Xy5NdT1fLk11LnBhcmVudDtyZXR1cm4gYX07Xy5IQT1mdW5jdGlvbigpe3ZhciBhPV8uTXU7cmV0dXJuIGE/YS5sajohMX07Xy5JQT1mdW5jdGlvbihhKXtfLmd2LS07aWYoYSlmb3IobGV0IGIgb2YgXy5ZdiliLmNsZWFyKCk7ZWxzZSBfLmd2PjB8fF8uY3YuaXNGbHVzaGluZyYmIV8uS3UuUml8fF8uanYoKX07Cl8uSkE9ZnVuY3Rpb24oYSxiKXtiPXtjb21wb25lbnRTdGFjazpfLlN1KF8uUHUpLHByOl8uUXU/LnNsaWNlKCk/P1tdLGZoOjMsQWw6Xy5MdSgpLHRhZ05hbWU6Yn07cmV0dXJuW2EsYl19O18uTEE9ZnVuY3Rpb24oKXtpZih0eXBlb2YgS0E9PT0iZnVuY3Rpb24iKXZhciBhPUtBO2Vsc2UgaWYodHlwZW9mIEtBPT09Im9iamVjdCIpYT1LQS5jb25zdHJ1Y3RvcjtlbHNlIHRocm93IEVycm9yKHZvaWQgMCk7cmV0dXJuIF8uQ2MoYj0+YiBpbnN0YW5jZW9mIGEpfTtYYWE9ZnVuY3Rpb24oKXtpZighXy51Py5TeW1ib2w/LmZvcilyZXR1cm4gbmV3IFdlYWtNYXA7dmFyIGE9U3ltYm9sLmZvcigiZ29vZ2xlLmdvZW0iKSxiPV8udVthXTtpZihiKXJldHVybiBiO2I9bmV3IFdlYWtNYXA7cmV0dXJuIF8udVthXT1ifTsKT0E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnRhZ05hbWUsZD1hLnRhZ05hbWU7YT1NQS5oYXMoZCkmJiFZYWEuaGFzKGQpOygoYj1NQS5oYXMoYykpfHxhKSYmYSYmIWImJk5BLmhhcyhjLnRvTG93ZXJDYXNlKCkpJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhyb3cgXy5VdShFcnJvcigiSWJgIitjKyJgIitkKSwyLGMpO30pfTtQQT1mdW5jdGlvbigpe307Xy5RQT1mdW5jdGlvbihhLGIsYyl7aWYoYz09bnVsbClhLnJlbW92ZUF0dHJpYnV0ZShiKTtlbHNle3ZhciBkOyhkPWIubGFzdEluZGV4T2YoInhtbDoiLDApPT09MD8iaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjpiLmxhc3RJbmRleE9mKCJ4bGluazoiLDApPT09MD8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI6bnVsbCk/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKX19OwokYWE9ZnVuY3Rpb24oYSxiLGMpe2E9YS5zdHlsZTtpZih0eXBlb2YgYz09PSJzdHJpbmciKWEuY3NzVGV4dD1jO2Vsc2V7YS5jc3NUZXh0PSIiO2ZvcihsZXQgZiBpbiBjKWlmKFphYS5jYWxsKGMsZikpe2I9YTt2YXIgZD1mLGU9Y1tmXTtkLmluZGV4T2YoIi0iKT49MD9iLnNldFByb3BlcnR5KGQsZSk6YltkXT1lfX19O2FiYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dHlwZW9mIGM7ZD09PSJvYmplY3QifHxkPT09ImZ1bmN0aW9uIj9hW2JdPWM6Xy5RQShhLGIsYyl9O1NBPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IFBBO2FbXy5SQS5kZWZhdWx0XT1hYmE7YS5zdHlsZT0kYWE7cmV0dXJuIGF9O1RBPWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGI9PWMmJmQ9PWV9O18uWEE9ZnVuY3Rpb24oKXtmb3IodmFyIGE9Xy5VQSxiPV8uVkEoKTtiIT09bnVsbDspe2xldCBjPWIubmV4dFNpYmxpbmc7YS5yZW1vdmVDaGlsZChiKTtfLldBLmRlbGV0ZWQucHVzaChiKTtiPWN9fTsKXy5WQT1mdW5jdGlvbigpe3JldHVybiBfLllBP18uWUEubmV4dFNpYmxpbmc6Xy5VQS5maXJzdENoaWxkfTsKZGJhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLldBLGU9Xy5aQSxmPV8uJEEsaD1fLmFCLGs9Xy5ZQSxsPV8uVUEsbT1fLmJCO18uWkE9YS5vd25lckRvY3VtZW50O18uV0E9bmV3IGJiYShhKTtfLmJCPWI7Xy5hQj1bXTtfLllBPW51bGw7Yj1fLlVBPWEucGFyZW50Tm9kZTt2YXIgbj1jYmEuY2FsbChhKTtpZigobj1uLm5vZGVUeXBlPT09MTF8fG4ubm9kZVR5cGU9PT05P24uYWN0aXZlRWxlbWVudDpudWxsKSYmYS5jb250YWlucyhuKSl7Zm9yKGE9W107biE9PWI7KWEucHVzaChuKSxuPW4ucGFyZW50Tm9kZXx8KGI/bi5ob3N0Om51bGwpO2I9YX1lbHNlIGI9W107Xy4kQT1iO3RyeXtyZXR1cm4gYygpfWZpbmFsbHl7Yz1fLldBLF8uY0ImJmMuZGVsZXRlZC5sZW5ndGg+MCYmKDAsXy5jQikoYy5kZWxldGVkKSxfLlpBPWUsXy5XQT1kLF8uYkI9bSxfLmFCPWgsXy5ZQT1rLF8uVUE9bCxfLiRBPWZ9fTsKZWJhPWZ1bmN0aW9uKGEsYj17fSl7dmFyIHttYXRjaGVzOmM9VEF9PWI7cmV0dXJuKGQsZSxmKT0+ZGJhKGQsYywoKT0+YShkLGUsZikpfTtmYmE9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7Zm9yKHZhciBiPShkLGUsZik9Pnt2YXIgaD1NYXRoLm1pbihlLmxlbmd0aC1mLGQubGVuZ3RoKTtmb3IobGV0IGw9MDtsPGg7bCsrKXt2YXIgaz1lW2YrbF07aWYoZFtsXSE9PSgiQSI8PWsmJms8PSJaIj9rLnRvTG93ZXJDYXNlKCk6aykpcmV0dXJuITF9cmV0dXJuITB9LGM9MDsoYz1hLmluZGV4T2YoIjwiLGMpKSE9LTE7KXtpZihiKCJceDNjL3NjcmlwdCIsYSxjKXx8YigiXHgzYyEtLSIsYSxjKSlyZXR1cm4ielNveXoiO2MrPTF9cmV0dXJuIGF9OwpkQj1mdW5jdGlvbihhKXtpZihhLmlzQ29ubmVjdGVkIT09dm9pZCAwKXJldHVybiBhLmlzQ29ubmVjdGVkO3ZhciBiPWEub3duZXJEb2N1bWVudDtpZighYilyZXR1cm4gYT09PWRvY3VtZW50O2lmKHR5cGVvZiBiLmNvbnRhaW5zPT09ImZ1bmN0aW9uIilyZXR1cm4gYi5jb250YWlucyhhKTtmb3IoO2E7KXtpZihhPT09YilyZXR1cm4hMDthPWEucGFyZW50Tm9kZX1yZXR1cm4hMX07Z2JhPWZ1bmN0aW9uKGEsYj0hMSl7dmFyIGM9Xy5DQSgpLGQ9Xy5NdTtyZXR1cm4gZT0+e3ZhciBmPSExLGg9ZS5jdXJyZW50VGFyZ2V0O2gmJihmPSFkQihoKXx8YiYmaFtlQl09PT0hMCk7dmFyIGs9Yz8uaWEsbD1iJiZoJiZoW2VCXT09PSEwO2lmKGZ8fGspe2lmKGgmJmRCKGgpJiYoa3x8bCkpdGhyb3cgXy5VdShFcnJvcigia2MiKSw0KTt9ZWxzZXt2YXIgbT0oKT0+YShlKTt0cnl7Xy5SdSgoKT0+Xy5FQShtKSxkKX1jYXRjaChuKXtfLm92KG4sYyl9fX19OwpfLmdCPWZ1bmN0aW9uKGEsYixjKXtpZihPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChmQixhKSYmKGE9ZkJbYV0sT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoYSxiKSYmKGE9YVtiXSxhIGluc3RhbmNlb2YgQXJyYXkpKSl7bGV0IGU9bnVsbCxmPSExO2ZvcihsZXQgaD0wLGs9YS5sZW5ndGg7aDxrOysraCl7bGV0IGw9YVtoXTt2YXIgZD1sLmliO2lmKCFkKXJldHVybiBsLmthO2U9PT1udWxsJiYoZT17fSk7ZD1PYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLGQpP2VbZF06ZVtkXT1jKGQpO2lmKGQ9PT1sLm5iKXJldHVybiBsLmthO2Q9PW51bGwmJihmPSEwKX1pZihmKXJldHVybiBudWxsfWI9aGJhW2JdO3JldHVybiB0eXBlb2YgYj09PSJudW1iZXIiP2I6bnVsbH07CmpiYT1mdW5jdGlvbihhLGIpe2I9Xy5nQihhLnRvTG93ZXJDYXNlKCksYiwoKT0+e3Rocm93IF8uVXUoRXJyb3IoIm1jIiksNCxhLnRvTG93ZXJDYXNlKCkpO30pO3JldHVybiBiPT09bnVsbD9udWxsOmliYVtiXT8/bnVsbH07a2JhPWZ1bmN0aW9uKGEsYixjKXtpZihjPT09bnVsbHx8Yz09PXZvaWQgMClyZXR1cm4gYztiPWIudG9Mb3dlckNhc2UoKTthPWpiYShhLGIpO3JldHVybiBhPT09bnVsbD9jOmEoYixjKX07aEI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1XYWEoYik7Yj1fLiR0KGMpO3RyeXthKGMpfWZpbmFsbHl7Xy4kdChiKX1yZXR1cm4oKT0+dm9pZCBfLkN1KGMpfTtfLmlCPWZ1bmN0aW9uKGEpe3JldHVybiBfLkFhKGEpPyJub2RlVHlwZSJpbiBhOiExfTtfLmpCPWZ1bmN0aW9uKGEpe3JldHVybiBfLmlCKGEpJiZhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9O2tCPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKX07CmxCPWZ1bmN0aW9uKGEpe2E9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGEpKTthLl9pc1NpZ25hbFRleHROb2RlPSEwO3JldHVybiBhfTtfLm9CPWZ1bmN0aW9uKGEpe3JldHVybiBhIT1udWxsJiZhLkdpPT09Xy5tQnx8YSBpbnN0YW5jZW9mIF8uZmJ8fG5CKGEpfTtfLnBCPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG5CKGEpJiZCQShhKSlfLnpBKGIsQkEoYSkpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIF8uZmIpXy56QShiLGEpO2Vsc2UgaWYoYSE9bnVsbCYmYS5HaT09PV8ubUIpe2lmKGEuR2khPT1fLm1CKXRocm93IEVycm9yKCJOYSIpO2E9Xy5nYihhLnRvU3RyaW5nKCkpO18uekEoYixhKX1mb3IobGV0IGMgb2YgYi5jaGlsZE5vZGVzKWMuX2lzU2FmZU9yU2FuaXRpemVkSHRtbE5vZGU9ITA7cmV0dXJuIGJ9OwpfLnFCPWZ1bmN0aW9uKGEpe2E9dHlwZW9mIGE7cmV0dXJuIGE9PT0ic3RyaW5nInx8YT09PSJudW1iZXIifHxhPT09ImJvb2xlYW4ifTtyQj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uU2F8fF8uWGEoYSl8fCExfTtzQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEucGFyZW50RWxlbWVudDtpZighYylyZXR1cm4gYjtfLmpCKGIpJiZPQShjLGIpO2MucmVwbGFjZUNoaWxkKGIsYSk7cmV0dXJuIGJ9O3RCPWZ1bmN0aW9uKGEsYil7dmFyIGM9YVswXS5wYXJlbnRFbGVtZW50O2lmKGMpaWYoYVswXS5wcmV2aW91c1NpYmxpbmd8fGFbYS5sZW5ndGgtMV0ubmV4dFNpYmxpbmcpe2MuaW5zZXJ0QmVmb3JlKGIsYVswXSk7Zm9yKGxldCBkPWEubGVuZ3RoLTE7ZD49MDtkLS0pYy5yZW1vdmVDaGlsZChhW2RdKX1lbHNlIGMudGV4dENvbnRlbnQ9IiIsYy5hcHBlbmRDaGlsZChiKTtyZXR1cm4gYn07CnVCPWZ1bmN0aW9uKGEsYil7aWYoYVswXS5wYXJlbnRFbGVtZW50KXt2YXIgYz1hWzBdLnBhcmVudEVsZW1lbnQ7bGV0IGY9Yi5sZW5ndGgsaD1hLmxlbmd0aCxrPWYsbD0wLG09MCxuPWFbaC0xXS5uZXh0U2libGluZyxwPW51bGw7Zm9yKDtsPGh8fG08azspaWYoYVtsXT09PWJbbV0pbCsrLG0rKztlbHNle2Zvcig7YVtoLTFdPT09YltrLTFdOyloLS0say0tO2lmKGg9PT1sKWZvcih2YXIgZD1rPGY/bT9iW20tMV0ubmV4dFNpYmxpbmc6YltrLW1dOm47bTxrOyl7dmFyIGU9YlttKytdO18uakIoZSkmJk9BKGMsZSk7Yy5pbnNlcnRCZWZvcmUoZSxkKX1lbHNlIGlmKGs9PT1tKWZvcig7bDxoOylkPWFbbF0scCYmcC5oYXMoZCl8fGMucmVtb3ZlQ2hpbGQoZCksbCsrO2Vsc2UgaWYoYVtsXT09PWJbay0xXSYmYlttXT09PWFbaC0xXSlkPWFbLS1oXS5uZXh0U2libGluZyxjLmluc2VydEJlZm9yZShiW20rK10sYVtsKytdLm5leHRTaWJsaW5nKSxjLmluc2VydEJlZm9yZShiWy0ta10sZCksCmFbaF09YltrXTtlbHNle2lmKCFwKWZvcihwPW5ldyBNYXAsZD1tO2Q8azspcC5zZXQoYltkXSxkKyspO2Q9cC5nZXQoYVtsXSk7aWYoZD09bnVsbCljLnJlbW92ZUNoaWxkKGFbbF0pLGwrKztlbHNlIGlmKG08ZCYmZDxrKXtlPWw7bGV0IHI9MSx0O2Zvcig7KytlPGgmJmU8azspe3Q9cC5nZXQoYVtlXSk7aWYodD09bnVsbHx8dCE9PWQrcilicmVhaztyKyt9aWYocj5kLW0pZm9yKGU9YVtsXTttPGQ7KWMuaW5zZXJ0QmVmb3JlKGJbbSsrXSxlKTtlbHNlIGMucmVwbGFjZUNoaWxkKGJbbSsrXSxhW2wrK10pfWVsc2UgbCsrfX19cmV0dXJuIGJ9O3ZCPWZ1bmN0aW9uKGEpe2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBhPy5wYXJlbnRFbGVtZW50O2ZvcihsZXQgYiBvZiBhKWlmKGE9dkIoYikpcmV0dXJuIGE7cmV0dXJuIG51bGx9O3dCPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5fZGlzcG9zZUVmZmVjdHM7YS5fZGlzcG9zZUVmZmVjdHM9Yz8oKT0+e2MoKTtiKCl9OmJ9OwpfLnpCPWZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYz09PSJib29sZWFuIiYmbGJhLmhhcyhiKSlfLlFBKGEsYixTdHJpbmcoYykpO2Vsc2UgaWYoYz09PSExJiZtYmEuaGFzKGIpKV8uUUEoYSxiLG51bGwpO2Vsc2UgaWYoYiE9PSJpZG9tS2V5IiYmYiE9PSJza2lwIiYmYiE9PSJza2lwY2hpbGRyZW4iJiZiIT09ImNoaWxkcmVuIiYmYiE9PSJlbCIpaWYoYi5zdGFydHNXaXRoKCJvbiIpKXtpZihiWzJdIT09IjoiKXRocm93IF8uVXUoRXJyb3IoImxjYCIrYiksNCxhLnRhZ05hbWUpO2xldCBmPWIuc2xpY2UoMyk7dmFyIGQ9Xy5IQSgpO2lmKGM9PT12b2lkIDApZHx8Zj09PSJqc2FjdGlvbiJ8fHhCLmluY2x1ZGVzKGYpfHwoYVtgb24ke2Z9YF09bnVsbCk7ZWxzZSBpZihmPT09ImpzYWN0aW9uIil7Yz1BcnJheS5pc0FycmF5KGMpP2M6W2NdO2ZvcihsZXQgaCBvZiBjKXtpZih0eXBlb2YgaCE9PSJvYmplY3QifHxoPT09bnVsbHx8dHlwZW9mIGgucW4hPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJzY2AiKwpiKTtoLnFuKDAsYSxkP18uWXU6KCk9Pnt9KX19ZWxzZXtpZih0eXBlb2YgYz09PSJmdW5jdGlvbiIpe2R8fGFbZUJdIT09dm9pZCAwfHwoYVtlQl09ITEsd0IoYSwoKT0+e2FbZUJdPSEwfSkpO3ZhciBlPWdiYShjLCFkKX1lbHNle25iYShiLGMpO2lmKGMucW4pe2MucW4oMCxhLGYsZD9fLll1OigpPT57fSk7cmV0dXJufWU9Yy5VcCgwKX1pZihkJiZhW2BvbiR7Zn1gXT09PXZvaWQgMClhLmFkZEV2ZW50TGlzdGVuZXIoZixlKSxfLll1KCgpPT52b2lkIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihmLGUpKTtlbHNlIGlmKGR8fCF4Qi5pbmNsdWRlcyhmKSlhW2BvbiR7Zn1gXT1lfX1lbHNle2lmKGIuc3RhcnRzV2l0aCgiZGF0YS0iKSYmdHlwZW9mIGM9PT0ic3RyaW5nIil0cnl7Yz1mYmEoYyl9Y2F0Y2goZil7Yz0ielNveXoifXR5cGVvZiBjIT09ImZ1bmN0aW9uInx8YS5fZGlzcG9zZUVmZmVjdHMhPW51bGw/KChkPWIuc3RhcnRzV2l0aCgicHJvcDoiKSkmJihiPWIuc2xpY2UoNSkpLGI9PT0KInN0eWxlIj9fLkhBKCk/dHlwZW9mIGM9PT0ib2JqZWN0IiYmYyE9PW51bGw/b2JhKGEsYyk6eUIoYSxiLGMpOnlCKGEsYixjKTooXy5LdS55diYmKGQmJnBiYShhLnRhZ05hbWUpfHwoYz1rYmEoYS50YWdOYW1lLGIsYykpKSxkP2FbYl09YzpxYmEoYSxiLGMpKSk6KGEuX3NpZ25hbFByb3BzfHwoYS5fc2lnbmFsUHJvcHM9W10pLGEuX3NpZ25hbFZhbHVlc3x8KGEuX3NpZ25hbFZhbHVlcz1bXSksYS5fc2lnbmFsUHJvcHMucHVzaChiKSl9fTtfLkFCPWZ1bmN0aW9uKGEsYix7bGo6Y309e30pe2lmKGI/LmVsKXtsZXQgZD1iLmVsO2QubXo/LihhKTthLl9kaXNwb3NlUmVmfHwoYS5fZGlzcG9zZVJlZj0oKT0+e2QudXo/LigpO2RlbGV0ZSBhLl9kaXNwb3NlUmVmfSxjJiZfLll1KCgpPT57YS5fZGlzcG9zZVJlZj8uKCl9KSl9fTsKbmJhPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIhPT0ib2JqZWN0Inx8Yj09PW51bGwpdGhyb3cgXy5VdShFcnJvcigicWNgIithKyJgIit0eXBlb2YgYiksNCk7aWYodHlwZW9mIGIuVXAhPT0iZnVuY3Rpb24iKXRocm93IF8uVXUoRXJyb3IoInJjYCIrYSsiYCIrT2JqZWN0LmtleXMoYikpLDQpO307cGJhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aD4wJiZhLmluY2x1ZGVzKCItIikmJiFyYmEuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKX07Cm9iYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uWnQsZD1hW0JCXSxlPWFbQ0JdO2lmKGUpZm9yKHZhciBmIG9mIHNiYShlLGIpKURCKGQsZiksRUIoYS5zdHlsZSxmLG51bGwpO2U9bmV3IFNldDtmb3IobGV0IGggaW4gYil7aWYoIWIuaGFzT3duUHJvcGVydHkoaCkpY29udGludWU7ZS5hZGQoaCk7bGV0IGs9YltoXTtpZih0eXBlb2Ygaz09PSJmdW5jdGlvbiImJmMpe2lmKCFkKXtkPW5ldyBNYXA7bGV0IGw9YVtCQl09ZDt3QihhLCgpPT57Zm9yKGxldCBtIG9mIGwudmFsdWVzKCkpbSgpO2wuY2xlYXIoKX0pfURCKGQsaCk7Zj1fLnV2KCgpPT57Xy50digoKT0+e3ZhciBsPWsoKTtFQihhLnN0eWxlLGgsbCl9LCJRRHpISmUiKX0pO2Quc2V0KGgsZil9ZWxzZSBEQihkLGgpLEVCKGEuc3R5bGUsaCxrKX1hW0NCXT1lfTsKRUI9ZnVuY3Rpb24oYSxiLGMpe2M9PW51bGx8fGM9PT0hMT9iLnN0YXJ0c1dpdGgoIi0tIil8fGIuaW5jbHVkZXMoIi0iKT9hLnJlbW92ZVByb3BlcnR5KGIpOmFbYl09IiI6Yi5zdGFydHNXaXRoKCItLSIpfHxiLmluY2x1ZGVzKCItIik/YS5zZXRQcm9wZXJ0eShiLFN0cmluZyhjKSk6YVtiXT1jfTtzYmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKGxldCBjIG9mIGEpYyBpbiBifHwoeWllbGQgYyl9KCl9O0RCPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS5nZXQoYik7YyYmKGMoKSxhLmRlbGV0ZShiKSl9fTtGQj1mdW5jdGlvbihhKXtyZXR1cm4oMCxfLnFyKShhKSYmIl9fd2l6X1JxTVlNImluIGF9O18uR0I9ZnVuY3Rpb24oYSl7cmV0dXJuIEZCKGEpP2EuX193aXpfUnFNWU0uUWU6YX07SEI9ZnVuY3Rpb24oYSxiLC4uLmMpe2I9Yj8/e307cmV0dXJue3R5cGU6YSxwcm9wczpiLGNoaWxkcmVuOmMsW18uTHZdOiEwfX07Xy5JQj1mdW5jdGlvbihhKXtyZXR1cm4gYS5jaGlsZHJlbn07Cl8uTEI9ZnVuY3Rpb24oYSl7dmFyIGI9SkIhPT1IQjtKQj1hP18uS0I6SEI7cmV0dXJuIGJ9O3RiYT1mdW5jdGlvbigpe3ZhciBhPV8uQ0EoMSksYj1fLmN1KGEsXy5NQik7aWYoIV8uYnUoYikpcmV0dXJuIGI7YT1fLmN1KGEsXy5OQik7aWYoIV8uYnUoYSkpcmV0dXJuIGEubncoKX07Xy5QQj1mdW5jdGlvbihhLGIpe2I9PW51bGwmJihiPShfLk9CLnN2Pz9kb2N1bWVudCkuX193aXpkaXNwYXRjaGVyLmFKKCkpO2IuZ2V0KF8uRnQpLm8uZGlzcGF0Y2hFdmVudChuZXcgXy5IdChhLF8ubUIpKX07CnViYT1mdW5jdGlvbihhKXtpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aD4xKXRocm93IF8uVXUoRXJyb3IoInZjYCIrYS5sZW5ndGgrImAiK2EubWFwKFFCKS5qb2luKCIsICIpKSw0LCJTQ1JJUFQiKTthPWFbMF19aWYoYT09bnVsbClyZXR1cm4gbnVsbDtpZighKGEgaW5zdGFuY2VvZiBfLmpiKSl7aWYod2luZG93Py50cnVzdGVkVHlwZXM/LmlzU2NyaXB0KGEpKXRocm93IEVycm9yKCJ1YyIpO2lmKFN0cmluZyhhKS50cmltKCkubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt0aHJvdyBFcnJvcigid2NgIitRQihhKSk7fXJldHVybiBhfTt2YmE9ZnVuY3Rpb24oYSxiKXtiPXViYShiKTtiIT09bnVsbCYmXy5uYihhLGIpfTsKXy5SQj1mdW5jdGlvbihhKXtpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aD4xKXRocm93IF8uVXUoRXJyb3IoInhjYCIrYS5sZW5ndGgrImAiK2EubWFwKFFCKS5qb2luKCIsICIpKSw0LCJTVFlMRSIpO2E9YVswXX1pZihhPT1udWxsfHxTdHJpbmcoYSkudHJpbSgpLmxlbmd0aD09PTApcmV0dXJuIG51bGw7dGhyb3cgRXJyb3IoInljYCIrUUIoYSkpO307UUI9ZnVuY3Rpb24oYSl7cmV0dXJuYCgke3R5cGVvZiBhfSkgJHthIT1udWxsJiZ0eXBlb2YgYT09PSJvYmplY3QiP2EuY29uc3RydWN0b3IubmFtZTp0eXBlb2YgYX0gJHthfWB9O1NCPWZ1bmN0aW9uKCl7fTtUQj1mdW5jdGlvbigpe3JldHVybiBudWxsfTsKXy5YQj1mdW5jdGlvbihhLGI9e30pe3ZhciBjPVVCKCksZD0hMCxlLGY9ISFfLkt1LkpxO2YmJihlPXRiYSgpKTtfLnR2KCgpPT57dmFyIGg9IWQmJmIuV2UmJmYsaz1oP3ZCKGNbMF0pOnZvaWQgMDtkPSExO2IuV2UmJl8uZ3YrKzt2YXIgbD1jWzBdLG09Yy5fX3dpel9ScU1ZTS5RZSxuPV8uTEIoITApO3RyeXtsZXQgdjt0cnl7dj1hKCl9Y2F0Y2goRil7Xy5vdihGKSx2PWtCKCl9bGV0IHo9d2JhKGwsdixjKSxFPV8uVkIudnkoeik/P3o7QXJyYXkuaXNBcnJheShFKXx8KGMuX193aXpfUnFNWU0uUWU9W0VdKTtsZXQgQT1jLl9fd2l6X1JxTVlNLlFlO2lmKG0mJighQXJyYXkuaXNBcnJheShtKXx8bS5sZW5ndGghPT0wKSl7dmFyIHA9QXJyYXkuaXNBcnJheShtKT9tWzBdOm0scj1wW18uV0JdLHQ9cC5fZGlzcG9zZUVmZmVjdHM7cC5fZGlzcG9zZUVmZmVjdHM9dm9pZCAwO3A9QXJyYXkuaXNBcnJheShBKT9BWzBdOkE7cFtfLldCXT1yO3BbXy5XQl0mJihwW18uV0JdLlVxPXA9PT1BPwoxOkEubGVuZ3RoKTtwLl9kaXNwb3NlRWZmZWN0cz10fWNbMF09RTtiLldlJiZfLklBKCExKX1jYXRjaCh2KXt0aHJvdyBiLldlJiZfLklBKCEwKSxfLlV1KHYsNCk7fWZpbmFsbHl7Xy5MQihuKX1oJiZfLlBCKGssZSl9LGIuZGVidWdOYW1lKTtyZXR1cm4gY307CndiYT1mdW5jdGlvbihhLGIsYyl7Zm9yKDt0eXBlb2YgYj09PSJmdW5jdGlvbiI7KWI9YigpO2lmKGI/LltfLkx2XSl0aHJvdyBfLlV1KEVycm9yKCJ6Y2AiK2IudHlwZT8uWmMpLDQsYi50eXBlPy5aYyk7aWYoYT09bnVsbClyZXR1cm4gYj09bnVsbD9rQigpOl8ucUIoYik/bEIoYik6ckIoYik/bEIoYi50b1N0cmluZygpKTpfLmlCKGIpP2I6Yi5sZW5ndGg9PT0wP2tCKCk6WUIoYixjKTtpZihfLmlCKGEpKXtpZihiPT1udWxsKXJldHVybiBzQihhLGtCKCkpO2lmKF8ucUIoYikpcmV0dXJuIGFDKGEsYik7aWYockIoYikpcmV0dXJuIGFDKGEsYi50b1N0cmluZygpKTtpZihfLmlCKGIpKXJldHVybiBzQihhLGIpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gc0IoYSxrQigpKTtiPVlCKGIsYyk7dUIoW2FdLGMuX193aXpfUnFNWU0uUWUpO3JldHVybiBifWE9Xy5iQyhhKTtpZihiPT1udWxsKXJldHVybiB0QihhLGtCKCkpO2lmKF8ucUIoYikpcmV0dXJuIHRCKGEsbEIoYikpO2lmKHJCKGIpKXJldHVybiB0QihhLApsQihiLnRvU3RyaW5nKCkpKTtpZihfLmlCKGIpKXJldHVybiB1QihhLFtiXSlbMF07aWYoYi5sZW5ndGg9PT0wKXJldHVybiB0QihhLGtCKCkpO2I9WUIoYixjKTt1QihhLGMuX193aXpfUnFNWU0uUWUpO3JldHVybiBifTthQz1mdW5jdGlvbihhLGIpe2Eubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnRleHRDb250ZW50IT09U3RyaW5nKGIpJiYoYS50ZXh0Q29udGVudD1TdHJpbmcoYikpOmE9c0IoYSxsQihiKSk7cmV0dXJuIGF9O18uYkM9ZnVuY3Rpb24oYSxiLGM9ITEpe3JldHVybiBjQyhhLGI/P1tdLGMpfTtZQj1mdW5jdGlvbihhLGIpe3ZhciBjPV8uYkMoYSx2b2lkIDAsITApO2lmKGMubGVuZ3RoPT09MClyZXR1cm4ga0IoKTtiLl9fd2l6X1JxTVlNLlFlPWM7cmV0dXJuIGF9OwpjQz1mdW5jdGlvbihhLGI9W10sYz0hMSxkLGU9LTEpe2lmKGE9PW51bGwpcmV0dXJuIGI7aWYoIUFycmF5LmlzQXJyYXkoYikmJl8uakIoYikpc3dpdGNoKF8uakIoYSkmJk9BKGIsYSksYi50YWdOYW1lKXtjYXNlICJTQ1JJUFQiOnZiYShiLGEpO3JldHVybjtjYXNlICJTVFlMRSI6aWYoXy5SQihhKSE9PW51bGwpdGhyb3cgRXJyb3IoImgiKTtyZXR1cm59aWYoQXJyYXkuaXNBcnJheShhKSl7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspY0MoYVtmXSxiLGMsYSxmKTtyZXR1cm4gYn1pZihhIGluc3RhbmNlb2YgXy5kQylyZXR1cm4gZj1hLm9jKCksY0MoZixiLGMsZCxlKTtpZihfLnFCKGEpKXJldHVybiBhPWxCKGEpLGQmJmMmJihkW2VdPWEpLGVDKGIsYSk7aWYoXy5vQihhKSl7Yz1fLnBCKGEpO2ZvcihjPWMuZmlyc3RDaGlsZDtjOylmPWMubmV4dFNpYmxpbmcsZUMoYixjKSxjPWY7cmV0dXJuIGJ9aWYockIoYSkpcmV0dXJuIGE9bEIoYS50b1N0cmluZygpKSxkJiZjJiYoZFtlXT0KYSksZUMoYixhKTtpZihfLmlCKGEpKXJldHVybiBlQyhiLGEpO2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIil7Zj1fLlhCKCgpPT57dmFyIGs9YSgpO2lmKGs9PW51bGx8fF8ucUIoaykpcmV0dXJuIGs7aWYoXy5vQihrKSlyZXR1cm4gaz1fLnBCKGspLEFycmF5LmZyb20oay5jaGlsZE5vZGVzKTt0aHJvdyBfLlV1KEVycm9yKCJBYmAiKyhfLk11Py5uYW1lPz8idW5rbm93biIpKyJgIit0eXBlb2YgayksNCk7fSx7ZGVidWdOYW1lOiJxbUYybmUiLHpwOmF9KVswXTtpZihBcnJheS5pc0FycmF5KGYpKXtmb3IodmFyIGggb2YgZillQyhiLGgpO3JldHVybiBifWQmJmMmJihkW2VdPWYpO3JldHVybiBlQyhiLGYpfWlmKGE/LltfLkx2XSl7ZD1hO2U9Xy5MQighMCk7aD1KQjt0cnl7Zj1oKGQudHlwZSxkLnByb3BzLC4uLmQuY2hpbGRyZW4pfWZpbmFsbHl7Xy5MQihlKX1yZXR1cm4gY0MoZixiLGMpfXRocm93IF8uVXUoRXJyb3IoIkFjIiksNCk7fTsKVUI9ZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmFzc2lnbihbXSx7X193aXpfUnFNWU06e1FlOltdfX0pO2lmKCFhKXJldHVybiBiO2JbMF09WUIoYSxiKTtyZXR1cm4gYn07ZUM9ZnVuY3Rpb24oYSxiKXtBcnJheS5pc0FycmF5KGEpP2EucHVzaChiKTphLmFwcGVuZENoaWxkKGIpO3JldHVybiBhfTtfLmZDPWZ1bmN0aW9uKGEpe2lmKEFycmF5LmlzQXJyYXkoYSkpe2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl09Xy5mQyhhW2JdKTtyZXR1cm4gYX1yZXR1cm4gYSBpbnN0YW5jZW9mIF8uZEM/KGE9YS5vYygpLF8uZkMoYSkpOmF9OwpfLmdDPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPV8uRkEoYSksZj1sPT57ZD1sO3ZhciBtPV8uTEIoITApLG49Xy5rdShfLnp2KTt0cnl7Yz1fLmZDKGEoYikpfWZpbmFsbHl7Xy5rdShuKSxfLkxCKG0pfSFBcnJheS5pc0FycmF5KGMpJiZfLkZ1KGwpfTtlPV8uS3UuR3A/aEIoZixlKTpfLnV2KGYsXy5LdS5yaXx8ISFfLlp0KTtpZighYi5qbil7Zj1fLiR0KGQpO3RyeXtyZXR1cm4oMCxfLnZ2KShhLGIsYyksY31maW5hbGx5e18uJHQoZil9fSFGQihjKSYmQXJyYXkuaXNBcnJheShjKSYmKGM9VUIoYykpO3ZhciBoPV8uR0IoYyk7Zj1BcnJheS5pc0FycmF5KGgpP2hbMF06aDt2YXIgaz0hMTtpZihmKXtsZXQgbD1iPy5pZG9tS2V5Pz9hLG09aCE9PWY7Zi5fZGlzcG9zZUVmZmVjdHM9ZTtsZXQgbj1mW18uV0JdfHx7fSxwPUZCKGMpP2M6bi55bjtPYmplY3QuYXNzaWduKG4se2tleTpsLFVxOm0/aC5sZW5ndGg6MSxvd25lcjpkLGxKOiEhZltfLldCXSx5bjpwfSk7ZltfLldCXT1ufWVsc2Ugaz0KITA7KCgpPT57dmFyIGw9Xy4kdChkKTt0cnl7KDAsXy52dikoYSxiLGgpfWZpbmFsbHl7Xy4kdChsKX19KSgpO2smJmUoKTtyZXR1cm4gY307aEM9ZnVuY3Rpb24oYSxiKXtpZighYS52JiZiKXthLnY9ITA7dHJ5e2EuSGYoKX1jYXRjaChjKXtfLkt1LmhhbmRsZUVycm9yPy4oLi4uXy5KQShjLGEuaj8uWmMpKX1fLmJ3LkhmKGEpO2EuZWw9bnVsbDtiLl9faW5zdGFuY2UmJmRlbGV0ZSBiLl9faW5zdGFuY2V9fTtfLmpDPWZ1bmN0aW9uKGEsYixjPSExKXthLl9zaWduYWxQcm9wcyE9bnVsbCYmYS5fZGlzcG9zZUVmZmVjdHM9PW51bGwmJihjP2EuX2Rpc3Bvc2VFZmZlY3RzPV8udXYoKCk9PnZvaWQgaUMoYSxiKSxfLkt1LnJpfHwhIV8uWnQpOmlDKGEsYikpfTsKaUM9ZnVuY3Rpb24oYSxiKXtfLnR2KCgpPT57dmFyIGM9YS5fc2lnbmFsUHJvcHMsZD1hLl9zaWduYWxWYWx1ZXM7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2xldCBmPWNbZV0saD1iW2ZdKCk7ZFtlXSE9PWgmJihkW2VdPWgsXy56QihhLGYsaCkpfX0sImUzWVZiYiIpfTtfLmxDPWZ1bmN0aW9uKGEsYiwuLi5jKXtiPz8oYj17fSk7cmV0dXJuIF8uSEEoKXx8Xy5NdT09bnVsbD9uZXcgeGJhKGEsYixjKTprQyhhLGIsYyl9OwprQz1mdW5jdGlvbihhLGIsYyl7aWYoYT09PV8uSUIpcmV0dXJuIGM7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBfLk11JiYhXy5IQSgpJiYoYi5qbj0hMCksXy5HQShhLCgpPT57Yy5sZW5ndGg+MCYmKGIuY2hpbGRyZW49Yy5sZW5ndGg9PT0xP2NbMF06Yyk7aWYoYS5jb21wb25lbnRUeXBlPT09Xy5Ldil7bGV0IGU7aEIoKCk9Pnt2YXIgZj1iO2lmKGEuY29tcG9uZW50VHlwZSE9PV8uS3YpZT0hMTtlbHNle2Z8fChmPXt9KTt2YXIgaD1uZXcgXy5tQyhmLGEpLGs9Xy5rdShfLnp2KTt0cnl7dmFyIGw9aC5vYyhmKX1maW5hbGx5e18ua3Uoayl9bCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhsLl9faW5zdGFuY2U9aCxoLmVsPWwsaC5qPWEsYS5aYz1sLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxfLmJ3LkdmKGgpLGU9bCk6ZT1sfX0sYS5uYW1lKTtpZihlKXJldHVybiBlfXJldHVybiBfLmdDKGEsYil9LGIuZGVidWdJbnN0YW5jZSk7dmFyIGQ9eWJhKGEsYik7Zm9yKGxldCBlIGluIGIpXy56QihkLAplLGJbZV0pO18uakMoZCxiKTtfLmJDKGMsZCk7Xy5BQihkLGIse2xqOiEwfSk7KDAsXy54dikoZCxiKTtyZXR1cm4gZH07eWJhPWZ1bmN0aW9uKGEsYil7YT0oTkEuaGFzKGEudG9Mb3dlckNhc2UoKSk/MDpNQS5oYXMoYS5zdGFydHNXaXRoKCJzdmc6Iik/YS5yZXBsYWNlKCJzdmc6IiwiIik6YSkpP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGEuc3RhcnRzV2l0aCgic3ZnOiIpP2EucmVwbGFjZSgic3ZnOiIsIiIpOmEpOigwLF8ud3YpKGEsYil8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk7YVtfLm5DXT0hMDtyZXR1cm4gYX07Cl8ucEM9ZnVuY3Rpb24oYSl7aWYoYSl7YS5fZGlzcG9zZVJlZj8uKCk7YS5fZGlzcG9zZUVmZmVjdHM/LigpO2lmKGEuX19pbnN0YW5jZSYmYS5fX2luc3RhbmNlIGluc3RhbmNlb2Ygb0Mpe3ZhciBiPWEuX19pbnN0YW5jZTtoQyhiLGEpO2IgaW5zdGFuY2VvZiBfLm1DJiZiLkQoKX1mb3IoYj0wO2I8YS5jaGlsZE5vZGVzLmxlbmd0aDtiKyspXy5wQyhhLmNoaWxkTm9kZXNbYl0pfX07emJhPWZ1bmN0aW9uKGEpe3FDLnB1c2goYSk9PT0xJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntzZXRUaW1lb3V0KCgpPT57dmFyIGI9Wy4uLnFDXTtxQz1bXTtmb3IobGV0IGMgb2YgYil0cnl7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKylfLnBDKGNbYl0pfWNhdGNoKGQpe18uS3UuaGFuZGxlRXJyb3I/LiguLi5fLkpBKGQpKX19KX0pfTtfLks9ZnVuY3Rpb24oYSxiLC4uLmMpe3JldHVybiBKQihhLGIsLi4uYyl9O18uckM9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5rdShfLnl2KTt0cnl7YSgpfWZpbmFsbHl7Xy5rdShiKX19OwpBYmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O3NDPWZ1bmN0aW9uKGEsYixjPSIiKXtmdW5jdGlvbiBkKCl7cmV0dXJuIGUoKX12YXIgZT10eXBlb2YgYT09PSJmdW5jdGlvbiI/REEoYSxBYmEsYj8uZXF1YWxzKTpEQShhLnNvdXJjZSxhLlRnLGI/LmVxdWFscyk7dmFyIGY9ZVtfLlp1XTtmLmRlYnVnTmFtZT1fLmV1KGI/LmRlYnVnTmFtZSxjLCJbbGlua2VkU2lnbmFsXSIpO2RbXy5adV09ZjtyZXR1cm5bZCxoPT57Xy5ydShmKTtfLnl1KGYsaCk7Zi5QYj0hMTtmLnJqPV8ubXV9LGg9PntfLnJ1KGYpO2lmKGYudmFsdWU9PT1fLkl2KXRocm93IGYuZXJyb3I7Xy5qdT8uTGUhPT0hMXx8Xy53dShmKTtfLnl1KGYsaChmLnZhbHVlKSk7Zi5QYj0hMTtmLnJqPV8ubXV9XX07Xy51Qz1mdW5jdGlvbigpe3RDfHwodEM9e09jOiExLFV5OjAsc3RhY2s6W10sc2Vzc2lvbklkOiIiLGRoOnZvaWQgMCxwcm9jZXNzb3JzOltdLFdoOigpPT4hMH0pO3JldHVybiB0Q307CnZDPWZ1bmN0aW9uKCl7dmFyIGE9Xy51QygpO3JldHVybiBhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTFdfTtfLndDPWZ1bmN0aW9uKGEpe3ZhciBiPV8udUMoKTtyZXR1cm4gYi5PYz9iLmRoP2IuZGhbYV06ITA6ITF9O0RiYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8ud0MoYSkmJl8udUMoKS5XaChhLGIsQmJhKT9uZXcgQ2JhKGEsYixjKTp4Q307Cl8ueUM9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBjPT09ImZ1bmN0aW9uIil7dmFyIGQ9YztjPXZvaWQgMH12YXIgZT1EYmEoYSxiLGMpO2lmKGM/LmVuZFRpbWUhPW51bGwpcmV0dXJuIGQmJl8uSXAoRXJyb3IoIkVjIikpLGU7ZSE9PXhDJiZjPy5hY3RpdmUhPT0hMSYmXy51QygpLnN0YWNrLnB1c2goZSk7aWYoIWQpcmV0dXJuIGU7aWYoZT09PXhDKXJldHVybiBkKGUpO3RyeXtsZXQgZj1kKGUpO2lmKGYgaW5zdGFuY2VvZiBQcm9taXNlKXJldHVybiBmLnRoZW4oaD0+e2UuZW5kKCk7cmV0dXJuIGh9LGg9PntlLmVuZCgiU1BBTl9TVEFUVVNfRVJST1IiKTt0aHJvdyBoO30pO2UuZW5kKCk7cmV0dXJuIGZ9Y2F0Y2goZil7dGhyb3cgZS5lbmQoIlNQQU5fU1RBVFVTX0VSUk9SIiksZjt9fTsKekM9ZnVuY3Rpb24oYSxiLGMsZCl7YSBpbnN0YW5jZW9mIEVsZW1lbnQmJihjLmRlYnVnTmFtZXx8KGMuZGVidWdOYW1lPWA8JHthLnRhZ05hbWUudG9Mb3dlckNhc2UoKX1gKyhhLnRhZ05hbWUuaW5jbHVkZXMoIi0iKT8iPiI6YC4ke2EuY2xhc3NOYW1lfT5gKSksXy54KCJ5dHdpel9lbmFibGVfZGVidWdfY29tcG9uZW50X3Byb3BzIikmJihhLmRlYnVnUHJvcHN8fChhLmRlYnVnUHJvcHM9QUEoYixlPT4oKT0+ZSgpKSksYi5kYXRhPT09dm9pZCAwfHwiZGF0YSJpbiBhJiYhYS5pc1dlYkNvbXBvbmVudFdyYXBwZXJ8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLmRlYnVnUHJvcHMsImRhdGEiLHtnZXQ6KCk9Pl8uQnYoYi5kYXRhKSxzZXQ6ZT0+e2Q/LmRhdGE/LihlKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSkpfTsKXy5BQz1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09MCYmIWI/LmluaXRpYWwpcmV0dXJuIHNDKGEse2RlYnVnTmFtZTpiPy5kZWJ1Z05hbWV9LCJoIik7dmFyIFtjLGQsZV09c0Moe3NvdXJjZTooKT0+YSgpLFRnOihmLGgpPT5oPy52YWx1ZT9hKGgudmFsdWUpOmI/LmluaXRpYWw/YShiLmluaXRpYWwpOmZ9LHtkZWJ1Z05hbWU6Yj8uZGVidWdOYW1lfSwiaSIpO3JldHVybltjLGQsZV19OwpfLkw9ZnVuY3Rpb24oYSxiPSIiKXt2YXIgYz1kPT5fLnlDKCJ5dENvbXBvbmVudCIse30sZT0+e3ZhciBmPUJDPXt9O2lmKGM/Lmlkb21Db21wYXQmJmQuam4pe2xldCBbayxsXT1FYmEoZCx0eXBlb2YgYy5pZG9tQ29tcGF0PT09Im9iamVjdCI/Yz8uaWRvbUNvbXBhdC5jYWxsYmFja3M6e30pO3ZhciBoPUNDKGEsZCk7Zi5Hej1oO0JDPXZvaWQgMDt6QyhoLGQsYyxrKTtlLkRlKHtkZWJ1Z05hbWU6Yy5kZWJ1Z05hbWV9KTtlPV8uR0IoaCk7ZT1BcnJheS5pc0FycmF5KGUpP2VbMF06ZTtlW18uV0JdfHwoZVtfLldCXT17fSk7ZVtfLldCXS5xQj1sO18uQ3YoZCxoKTtyZXR1cm4gaH1kPUFBKGQsRmJhKTtoPUNDKGEsZCk7ekMoaCxkLGMpO2YuR3o9aDtCQz12b2lkIDA7ZS5EZSh7ZGVidWdOYW1lOmMuZGVidWdOYW1lfSk7Xy5DdihkLGgpO3JldHVybiBofSk7Yy5kZWJ1Z05hbWU9YjtyZXR1cm4gY307Q0M9ZnVuY3Rpb24oYSxiKXthPWEoYik7cmV0dXJuIF8uZkMoYSl9OwpGYmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PSJjaGlsZHJlbiJ8fGI9PT0icmVmInx8dHlwZW9mIGE9PT0iZnVuY3Rpb24ifHxhPT09dm9pZCAwP2E6KCk9PmF9O0diYT1mdW5jdGlvbihhLGIpe3JldHVybigpPT5fLkJ2KGEpPz9ifTtfLkRDPWZ1bmN0aW9uKGEsYil7dmFyIGM9ey4uLmF9O2ZvcihsZXQgZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPUdiYShhW2RdLGJbZF0pKTtyZXR1cm4gY307CkViYT1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9e307Zm9yKGxldCBlIGluIGEpe2xldCBmPWFbZV07aWYoZSE9PSJjaGlsZHJlbiImJmUhPT0icmVmIilpZih0eXBlb2YgZj09PSJmdW5jdGlvbiIpaWYoZSBpbiBifHxmLmxlbmd0aD4wKWRbZV09ZixhW2VdPSguLi5oKT0+ZFtlXSguLi5oKTtlbHNle2lmKGU9PT0iZGF0YSIpe2xldCBbaCxrXT1fLkFDKGYse2RlYnVnTmFtZTpgJHtlfTpjd2lzYH0pO2FbZV09aDtjW2VdPWt9fWVsc2UgaWYoIShhW2VdPT09dm9pZCAwJiZlIGluIGIpKXtsZXQgW2gsa109Xy5KKGFbZV0se2RlYnVnTmFtZTpgJHtlfTpjd2lzYH0sIlZiY2dDZCIpO2FbZV09aDtjW2VdPWt9fXJldHVybltjLGZ1bmN0aW9uKGUpe2ZvcihsZXQgZiBpbiBlKXtsZXQgaD1lW2ZdO2YhPT0iY2hpbGRyZW4iJiZmIT09InJlZiImJih0eXBlb2YgaD09PSJmdW5jdGlvbiI/ZiBpbiBiP2RbZl09aDpoLmxlbmd0aD4wJiYoZFtmXT1oLF8uSXAobmV3IF8uWGooSGJhLGYpKSk6ZiBpbgpiJiZoPT09dm9pZCAwfHwoY1tmXXx8Xy5IcChuZXcgXy5YaihJYmEsZikpLF8uckMoKCk9PntjW2ZdKGgpfSkpKX19XX07ClZhYT17Li4uXy5YdSx2YWx1ZTpfLkd2LFBiOiEwLGVycm9yOm51bGwsZXF1YWw6Xy5pdSxraW5kOiJsaW5rZWRTaWduYWwiLFhtKGEpe3JldHVybiBhLnZhbHVlPT09Xy5Hdnx8YS52YWx1ZT09PV8uSHZ9LFltKGEpe2lmKGEudmFsdWU9PT1fLkh2KXRocm93IEVycm9yKCJoIik7dmFyIGI9YS52YWx1ZTthLnZhbHVlPV8uSHY7dmFyIGM9Xy50dShhKSxkPSExO3RyeXtsZXQgZj1hLnNvdXJjZSgpLGg9YiE9PV8uR3YmJmIhPT1fLkl2O3ZhciBlPWEuVGcoZixoP3tzb3VyY2U6YS5zb3VyY2VWYWx1ZSx2YWx1ZTpifTp2b2lkIDApO2Euc291cmNlVmFsdWU9ZjtfLmt1KG51bGwpO2Q9aCYmZSE9PV8uSXYmJmEuZXF1YWwoYixlKX1jYXRjaChmKXtlPV8uSXYsYS5lcnJvcj1mfWZpbmFsbHl7Xy5rdShjKSxhJiZfLnZ1KGEpfWQ/YS52YWx1ZT1iOihhLnZhbHVlPWUsYS52ZXJzaW9uKyspfX07Xy5tQj17fTtfLkl0LnByb3RvdHlwZS5qPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Cl8uSXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07S0E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5kQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQ289bnVsbH19O29DPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucHJvcHM9YTt0aGlzLnY9ITF9R2YoKXt9SmkoKXt9SGYoKXt9S2koKXt9fTt0cnl7bGV0IGE9d2luZG93Py50b3A/P18udTthLlUzYkhIZj8/KGEuVTNiSEhmPTApO2EuVTNiSEhmKyt9Y2F0Y2goYSl7Xy51LlUzYkhIZj8/KF8udS5VM2JISGY9MCksXy51LlUzYkhIZisrfTtfLkZDPW5ldyBXZWFrTWFwO18uR0M9WGFhKCk7dmFyIG1iYT1uZXcgU2V0KCJhbGxvd2Z1bGxzY3JlZW4gYWxsb3d0cmFuc3BhcmVuY3kgYXN5bmMgYXV0b2ZvY3VzIGF1dG9wbGF5IGNoZWNrZWQgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlcmVtb3RlcGxheWJhY2sgZm9ybW5vdmFsaWRhdGUgaGlkZGVuIGluZXJ0IGlzbWFwIGl0ZW1zY29wZSBqc3NoYWRvdyBqc3Nsb3QgbG9vcCBtdWx0aXBsZSBtdXRlZCBub21vZHVsZSBub3ZhbGlkYXRlIG9wZW4gcGxheXNpbmxpbmUgcmVhZG9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIHNlbGVjdGVkIHNvcnRhYmxlIHR5cGVtdXN0bWF0Y2giLnNwbGl0KCIgIikpLGxiYT1uZXcgU2V0KFsiY29udGVudGVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxjaGVjayJdKTt2YXIgTUE9bmV3IFNldCgiYSBhbHRHbHlwaCBhbHRHbHlwaERlZiBhbHRHbHlwaEl0ZW0gYW5pbWF0ZSBhbmltYXRlQ29sb3IgYW5pbWF0ZU1vdGlvbiBhbmltYXRlVHJhbnNmb3JtIGNpcmNsZSBjbGlwUGF0aCBjb2xvci1wcm9maWxlIGN1cnNvciBkZWZzIGRlc2MgZWxsaXBzZSBmZUJsZW5kIGZlQ29sb3JNYXRyaXggZmVDb21wb25lbnRUcmFuc2ZlciBmZUNvbXBvc2l0ZSBmZUNvbnZvbHZlTWF0cml4IGZlRGlmZnVzZUxpZ2h0aW5nIGZlRGlzcGxhY2VtZW50TWFwIGZlRGlzdGFudExpZ2h0IGZlRHJvcFNoYWRvdyBmZUZsb29kIGZlRnVuY0EgZmVGdW5jQiBmZUZ1bmNHIGZlRnVuY1IgZmVHYXVzc2lhbkJsdXIgZmVJbWFnZSBmZU1lcmdlIGZlTWVyZ2VOb2RlIGZlTW9ycGhvbG9neSBmZU9mZnNldCBmZVBvaW50TGlnaHQgZmVTcGVjdWxhckxpZ2h0aW5nIGZlU3BvdExpZ2h0IGZlVGlsZSBmZVR1cmJ1bGVuY2UgZmlsdGVyIGZvbnQgZm9udC1mYWNlIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgZm9udC1mYWNlLXNyYyBmb250LWZhY2UtdXJpIGZvcmVpZ25PYmplY3QgZyBnbHlwaCBnbHlwaFJlZiBoa2VybiBpbWFnZSBsaW5lIGxpbmVhckdyYWRpZW50IG1hcmtlciBtYXNrIG1ldGFkYXRhIG1pc3NpbmctZ2x5cGggbXBhdGggcGF0aCBwYXR0ZXJuIHBvbHlnb24gcG9seWxpbmUgcmFkaWFsR3JhZGllbnQgcmVjdCBzY3JpcHQgc2V0IHN0b3Agc3R5bGUgc3ZnIHN3aXRjaCBzeW1ib2wgdGV4dCB0ZXh0UGF0aCB0aXRsZSB0cmVmIHRzcGFuIHVzZSB2aWV3IHZrZXJuIi5zcGxpdCgiICIpKSwKTkE9bmV3IFNldChbImEiLCJmb250Iiwic2NyaXB0Iiwic3R5bGUiLCJ0aXRsZSJdKSxZYWE9bmV3IFNldChbImRlc2MiLCJmb3JlaWduT2JqZWN0IiwidGl0bGUiXSk7Xy5SQT17ZGVmYXVsdDoiX19kZWZhdWx0In07dmFyIFphYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1BBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG51bGwpO18uSEM9U0EoKTtfLmNCPW51bGw7dmFyIGJiYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNyZWF0ZWQ9W107dGhpcy5kZWxldGVkPVtdO3RoaXMubm9kZT1hfX07dmFyIGNiYT10eXBlb2YgTm9kZSE9PSJ1bmRlZmluZWQiJiZOb2RlLnByb3RvdHlwZS5nZXRSb290Tm9kZXx8ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxiPWE7YTspYj1hLGE9YS5wYXJlbnROb2RlO3JldHVybiBifTtfLldBPW51bGw7Xy5ZQT1udWxsO18uVUE9bnVsbDtfLlpBPW51bGw7Xy4kQT1bXTtfLmJCPVRBO18uYUI9W107Xy5JQz1mdW5jdGlvbihhKXtyZXR1cm4gZWJhKChiLGMsZCk9PntfLlVBPV8uWUE9YjtfLllBPW51bGw7YyhkKTtfLlhBKCk7Xy5ZQT1fLlVBO18uVUE9Xy5VQS5wYXJlbnROb2RlO3JldHVybiBifSxhKX0oKTtfLkpDPW5ldyBQQTtSZWdFeHAucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJzdGlja3kiKTt2YXIgZUI9U3ltYm9sKCJqYyIpO3ZhciBoYmE9e2FsaWduOjEsYWx0OjEsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6MTAsImFyaWEtYXRvbWljIjoxLCJhcmlhLWF1dG9jb21wbGV0ZSI6MSwiYXJpYS1idXN5IjoxLCJhcmlhLWNoZWNrZWQiOjEsImFyaWEtY29udHJvbHMiOjEwLCJhcmlhLWN1cnJlbnQiOjEsImFyaWEtZGVzY3JpYmVkYnkiOjEwLCJhcmlhLWRpc2FibGVkIjoxLCJhcmlhLWRyb3BlZmZlY3QiOjEsImFyaWEtZXhwYW5kZWQiOjEsImFyaWEtaGFzcG9wdXAiOjEsImFyaWEtaGlkZGVuIjoxLCJhcmlhLWludmFsaWQiOjEsImFyaWEtbGFiZWwiOjEsImFyaWEtbGFiZWxsZWRieSI6MTAsImFyaWEtbGV2ZWwiOjEsImFyaWEtbGl2ZSI6MSwiYXJpYS1tdWx0aWxpbmUiOjEsImFyaWEtbXVsdGlzZWxlY3RhYmxlIjoxLCJhcmlhLW9yaWVudGF0aW9uIjoxLCJhcmlhLW93bnMiOjEwLCJhcmlhLXBvc2luc2V0IjoxLCJhcmlhLXByZXNzZWQiOjEsImFyaWEtcmVhZG9ubHkiOjEsImFyaWEtcmVsZXZhbnQiOjEsImFyaWEtcmVxdWlyZWQiOjEsCiJhcmlhLXNlbGVjdGVkIjoxLCJhcmlhLXNldHNpemUiOjEsImFyaWEtc29ydCI6MSwiYXJpYS12YWx1ZW1heCI6MSwiYXJpYS12YWx1ZW1pbiI6MSwiYXJpYS12YWx1ZW5vdyI6MSwiYXJpYS12YWx1ZXRleHQiOjEsYXN5bmM6OCxhdXRvY2FwaXRhbGl6ZToxLGF1dG9jb21wbGV0ZToxLGF1dG9jb3JyZWN0OjEsYXV0b2ZvY3VzOjEsYXV0b3BsYXk6MSxiZ2NvbG9yOjEsYm9yZGVyOjEsY2VsbHBhZGRpbmc6MSxjZWxsc3BhY2luZzoxLGNoZWNrZWQ6MSxjaXRlOjEsImNsYXNzIjoxLGNvbG9yOjEsY29sczoxLGNvbHNwYW46MSxjb250ZW50ZWRpdGFibGU6MSxjb250cm9sczoxLGNvbnRyb2xzbGlzdDoxLGNvb3JkczoxLGNyb3Nzb3JpZ2luOjEsZGF0ZXRpbWU6MSxkaXI6OCxkaXNhYmxlZDoxLGRvd25sb2FkOjEsZHJhZ2dhYmxlOjEsZW5jdHlwZToxLGZhY2U6MSwiZm9yIjoxMCxmb3JtZW5jdHlwZToxLGZyYW1lYm9yZGVyOjEsaGVpZ2h0OjEsaGlkZGVuOjEsaHJlZjo0LGhyZWZsYW5nOjEsCmlkOjEwLGluZXJ0OjEsaXNtYXA6MSxpdGVtaWQ6MSxpdGVtcHJvcDoxLGl0ZW1yZWY6MSxpdGVtc2NvcGU6MSxpdGVtdHlwZToxLGxhYmVsOjEsbGFuZzoxLGxpc3Q6MTAsbG9hZGluZzo4LGxvb3A6MSxtYXg6MSxtYXhsZW5ndGg6MSxtZWRpYToxLG1pbjoxLG1pbmxlbmd0aDoxLG11bHRpcGxlOjEsbXV0ZWQ6MSxuYW1lOjEwLG5vbmNlOjEsb3BlbjoxLHBsYWNlaG9sZGVyOjEscGxheXNpbmxpbmU6MSxwb3N0ZXI6MSxwcmVsb2FkOjEscmVsOjEscmVxdWlyZWQ6MSxyZXZlcnNlZDoxLHJvbGU6MSxyb3dzOjEscm93c3BhbjoxLHNlbGVjdGVkOjEsc2hhcGU6MSxzaXplOjEsc2l6ZXM6MSxzbG90OjEsc3BhbjoxLHNwZWxsY2hlY2s6MSxzcmM6NCxzcmNzZXQ6MTIsc3RhcnQ6MSxzdGVwOjEsc3R5bGU6NSxzdW1tYXJ5OjEsdGFiaW5kZXg6MSx0YXJnZXQ6OCx0aXRsZToxLHRyYW5zbGF0ZToxLHR5cGU6MSx1c2VtYXA6MSx2YWxpZ246MSx2YWx1ZToxLHdpZHRoOjEsd3JhcDoxfSxmQj0Ke2E6e2hyZWY6W3trYTozfV19LGFyZWE6e2hyZWY6W3trYTozfV19LGF1ZGlvOntzcmM6W3trYTozfV19LGJ1dHRvbjp7Zm9ybWFjdGlvbjpbe2thOjN9XSxmb3JtbWV0aG9kOlt7a2E6MX1dfSxmb3JtOnthY3Rpb246W3trYTozfV0sbWV0aG9kOlt7a2E6MX1dfSxpZnJhbWU6e3NyY2RvYzpbe2thOjJ9XX0saW1nOntzcmM6W3trYTozfV0sc3Jjc2V0Olt7a2E6MTF9XX0saW5wdXQ6e2FjY2VwdDpbe2thOjF9XSxmb3JtYWN0aW9uOlt7a2E6M31dLGZvcm1tZXRob2Q6W3trYToxfV0scGF0dGVybjpbe2thOjF9XSxyZWFkb25seTpbe2thOjF9XSxzcmM6W3trYTozfV19LGxpbms6e2hyZWY6W3trYTozLGliOiJyZWwiLG5iOiJhbHRlcm5hdGUifSx7a2E6MyxpYjoicmVsIixuYjoiYXV0aG9yIn0se2thOjMsaWI6InJlbCIsbmI6ImJvb2ttYXJrIn0se2thOjMsaWI6InJlbCIsbmI6ImNhbm9uaWNhbCJ9LHtrYTozLGliOiJyZWwiLG5iOiJjaXRlIn0se2thOjMsaWI6InJlbCIsbmI6ImhlbHAifSwKe2thOjMsaWI6InJlbCIsbmI6Imljb24ifSx7a2E6MyxpYjoicmVsIixuYjoibGljZW5zZSJ9LHtrYTozLGliOiJyZWwiLG5iOiJuZXh0In0se2thOjMsaWI6InJlbCIsbmI6InByZWZldGNoIn0se2thOjMsaWI6InJlbCIsbmI6ImRucy1wcmVmZXRjaCJ9LHtrYTozLGliOiJyZWwiLG5iOiJwcmVyZW5kZXIifSx7a2E6MyxpYjoicmVsIixuYjoicHJlY29ubmVjdCJ9LHtrYTozLGliOiJyZWwiLG5iOiJwcmVsb2FkIn0se2thOjMsaWI6InJlbCIsbmI6InByZXYifSx7a2E6MyxpYjoicmVsIixuYjoic2VhcmNoIn0se2thOjMsaWI6InJlbCIsbmI6InN1YnJlc291cmNlIn1dfSxzY3JpcHQ6e2RlZmVyOlt7a2E6MX1dfSxzb3VyY2U6e3NyYzpbe2thOjN9XSxzcmNzZXQ6W3trYToxMX1dfSx0ZXh0YXJlYTp7cmVhZG9ubHk6W3trYToxfV19LHZpZGVvOntzcmM6W3trYTozfV19fTt2YXIgSmJhPS9eKD8hamF2YXNjcmlwdDopKD86W2EtejAtOSsuLV0rOnxbXiY6XC8/I10qKD86W1wvPyNdfCQpKS9pLGliYT17WzFdOm51bGwsWzJdOihhLGIpPT5iIGluc3RhbmNlb2YgXy5mYj9fLnlBKGIpOl8uRnEudG9TdHJpbmcoKSxbM106KGEsYik9Pl8uWGEoYik/Xy5ZYShiKTpKYmEudGVzdChTdHJpbmcoYikpP1N0cmluZyhiKTpfLkZxLnRvU3RyaW5nKCksWzRdOihhLGIpPT5iIGluc3RhbmNlb2YgXy5TYT9fLlVhKGIpOl8uRnEudG9TdHJpbmcoKSxbNV06KGEsYik9PlN0cmluZyhiKSxbN106bnVsbCxbOF06bnVsbCxbMTBdOm51bGx9O18uS2JhPVN5bWJvbCgibmMiKTt2YXIgbkI9Xy5MQSgpO3ZhciBLQz1TQSgpLHFiYT1LQ1tfLlJBLmRlZmF1bHRdLHlCPUtDLnN0eWxlLHhCPVsiZm9jdXNpbiIsImZvY3Vzb3V0Il0sQkI9U3ltYm9sKCJvYyIpLENCPVN5bWJvbCgicGMiKSxyYmE9ImFubm90YXRpb24teG1sIGNvbG9yLXByb2ZpbGUgZm9udC1mYWNlIGZvbnQtZmFjZS1zcmMgZm9udC1mYWNlLXVyaSBmb250LWZhY2UtZm9ybWF0IGZvbnQtZmFjZS1uYW1lIG1pc3NpbmctZ2x5cGgiLnNwbGl0KCIgIik7dmFyIEpCO0pCPUhCO18uV0I9U3ltYm9sKCJ0YyIpO18uTGJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfTW9kZWxSb290RWxlbWVudCIpO18uTWJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfUmVuZGVyZXJEYXRhIik7Xy5OYmE9Xy5kdSgiV2l6SW5qZWN0aW9uQ29udGV4dF9JbmplY3RpbmdDb25zdHJ1Y3RvciIpO18uTUI9Xy5kdSgiV2l6SW5qZWN0aW9uQ29udGV4dF9BcHBDb250ZXh0Iik7Xy5OQj1fLmR1KCJXaXpJbmplY3Rpb25Db250ZXh0X0Rpc3BhdGNoZXIiKTtfLkxDPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfUm9vdEVsZW1lbnQiKTtfLk9iYT1fLmR1KCJXaXpJbmplY3Rpb25Db250ZXh0X0FzeW5jRGVwcyIpO18uUGJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfT2JqZWN0Q3JlYXRpb25UcmFja2VyIik7Xy5PQj17fTtfLlZCPXtNSzpTQixjTDpTQixsb2c6U0IsUko6VEIsdnk6VEIsZko6KGEsYik9PntiKCl9fTtfLk1DPW51bGw7Xy5tQz1jbGFzcyBleHRlbmRzIG9De2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSk7dGhpcy5vPWI7dGhpcy5aZj1bXTt0aGlzLkI9MDt0aGlzLkQ9Xy51dihjPT57dGhpcy5xbD1jO18uWXUoKCk9PntoQyh0aGlzLHRoaXMuZWwpfSl9LF8uS3Uucml8fCEhXy5adCl9b2MoYSl7dmFyIGI9Xy5NQztfLk1DPXRoaXM7dGhpcy5CPTA7dmFyIGM9Xy5rdShfLnp2KSxkPV8uJHQodGhpcy5xbCk7dHJ5e3JldHVybiB0aGlzLm8oYSl9ZmluYWxseXtfLiR0KGQpLF8ua3UoYyksXy5NQz1ifX1nZXQgY29tcG9uZW50TmFtZSgpe3JldHVybiBfLkZBKHRoaXMubyl9fTt2YXIgeGJhO18ubkM9U3ltYm9sKCJDYyIpO3hiYT1jbGFzcyBleHRlbmRzIF8uZEN7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKCk7dGhpcy5raW5kPWE7dGhpcy5wcm9wcz1iO3RoaXMuY2hpbGRyZW49Y31vYygpe3ZhciBhPWtDKHRoaXMua2luZCx0aGlzLnByb3BzLHRoaXMuY2hpbGRyZW4pO2lmKHRoaXMuQ28hPW51bGwpZm9yKGxldCBiIG9mIHRoaXMuQ28pYT1iKGEpO3JldHVybiBhfX07dmFyIHFDPVtdO18ud3U9YT0+e3Rocm93IF8uVXUoRXJyb3IoImJiYCIrYS5kZWJ1Z05hbWUpLDQpO307KGZ1bmN0aW9uKCl7dmFyIGE9Xy5jQjtfLmNCPWI9PnthPy4oYik7emJhKGIpfX0pKCk7dmFyIENiYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYz17fSl7dmFyIGQ9Xy51QygpO3RoaXMubmFtZT1hO3RoaXMuaWQ9ZC5VeSsrO3RoaXMuc2Vzc2lvbklkPWQuc2Vzc2lvbklkO3RoaXMuYXR0cmlidXRlcz1iO3RoaXMuc3RhdHVzPSJTUEFOX1NUQVRVU19VTlNFVCI7dGhpcy5zdGFydFRpbWU9Yy5zdGFydFRpbWU/PygwLF8uZWwpKCk7dGhpcy5qPWMuYWN0aXZlO2lmKGE9dkMoKSl0aGlzLnBhcmVudElkPWEuaWQsYS5jaGlsZHJlbnx8KGEuY2hpbGRyZW49W10pLGEuY2hpbGRyZW4ucHVzaCh0aGlzKTtmb3IobGV0IGUgb2YgZC5wcm9jZXNzb3JzKXRyeXtlLkdtPy4odGhpcyl9Y2F0Y2goZil7Xy5JcChmKX1jLmVuZFRpbWUhPW51bGwmJih0aGlzLmo9ITEsdGhpcy5lbmQoIlNQQU5fU1RBVFVTX09LIixjLmVuZFRpbWUpKX1lbmQoYT0iU1BBTl9TVEFUVVNfT0siLGI9KDAsXy5lbCkoKSl7dmFyIGM9Xy51QygpO3RoaXMuZW5kVGltZT1iO3RoaXMuZHVyYXRpb249dGhpcy5lbmRUaW1lLQp0aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXR1cz1hO3RoaXMuaiE9PSExJiYodkMoKT09PXRoaXM/Yy5zdGFjay5wb3AoKTpfLklwKEVycm9yKCJEY2AiK1N0cmluZyh0aGlzLm5hbWUpKSkpO2ZvcihsZXQgZCBvZiBjLnByb2Nlc3NvcnMpdHJ5e2QubHI/Lih0aGlzKX1jYXRjaChlKXtfLklwKGUpfX1EZShhKXtPYmplY3QuYXNzaWduKHRoaXMuYXR0cmlidXRlcyxhKX19LHhDPXtlbmQoKXt9LERlKCl7fX0sdEMsQmJhPXtXeigpe3JldHVybiBfLnVDKCkuc3RhY2tbMF19fTt2YXIgQkM9dm9pZCAwO3ZhciBJYmE9IklET00gaW50ZXJvcCBzZXR0ZXIgdW5kZWZpbmVkLiBLZXk6IixIYmE9IkNhbGxiYWNrIGRldGVjdGVkIHRoYXQgd2FzIG5vdCBzZXQgaW4gdGhlIGlkb21Db21wYXQgY2FsbGJhY2tzIG1hcC4gS2V5OiI7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBSYmEsUWJhO1JiYT1mdW5jdGlvbihhKXt2YXIgYj1PYmplY3QuY3JlYXRlKFFiYSk7Yi5UZz1hO2E9KCk9PntfLnJ1KGIpO18ucHUoYik7aWYoYi52YWx1ZT09PV8uSXYpdGhyb3cgYi5lcnJvcjtyZXR1cm4gYi52YWx1ZX07YVtfLlp1XT1iO3JldHVybiBhfTtfLk49ZnVuY3Rpb24oYSxiLGM9IiIpe3ZhciBkPVJiYShhKTthPWRbXy5adV07YS5kZWJ1Z05hbWU9Xy5ldShiPy5kZWJ1Z05hbWUsYywiW2NvbXB1dGVkXSIpO2I/LmVxdWFscyE9bnVsbCYmKGEuZXF1YWw9Yi5lcXVhbHMpO3JldHVybiBkfTsKUWJhPXsuLi5fLlh1LHZhbHVlOl8uR3YsUGI6ITAsZXJyb3I6bnVsbCxlcXVhbDpfLml1LGtpbmQ6ImNvbXB1dGVkIixYbShhKXtyZXR1cm4gYS52YWx1ZT09PV8uR3Z8fGEudmFsdWU9PT1fLkh2fSxZbShhKXtpZihhLnZhbHVlPT09Xy5Idil0aHJvdyBFcnJvcigiaCIpO3ZhciBiPWEudmFsdWU7YS52YWx1ZT1fLkh2O3ZhciBjPV8udHUoYSksZD0hMTt0cnl7dmFyIGU9YS5UZygpO18ua3UobnVsbCk7ZD1iIT09Xy5HdiYmYiE9PV8uSXYmJmUhPT1fLkl2JiZhLmVxdWFsKGIsZSl9Y2F0Y2goZil7ZT1fLkl2LGEuZXJyb3I9Zn1maW5hbGx5e18ua3UoYyksYSYmXy52dShhKX1kP2EudmFsdWU9YjooYS52YWx1ZT1lLGEudmVyc2lvbisrKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgU2JhO18uTkM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oKT0+e3ZhciBjPWEoKTtpZighYyl7bGV0IGQ9RXJyb3IoIk9jYCIrYik7UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoZCwyLGIpO30pfXJldHVybiBjfX07Xy5PPWZ1bmN0aW9uKGEpe3JldHVybiBTYmEoYSl9OwpTYmE9ZnVuY3Rpb24oYSl7aWYoYS5BPT09dm9pZCAwKXJldHVybiBhLlc/LigpO2lmKHR5cGVvZiBhLkEhPT0iZnVuY3Rpb24iKXtsZXQgZT1hLnRoZW4sZj1hLlcsaD1hLkE7cmV0dXJuIGg/ZShoKTpmPy4oKX12YXIgYj1hLkEsYz1fLk4oKCk9PiEhYigpLHZvaWQgMCwiQmpRUlEiKSxkPV8uTkMoYiwiSWYiKTtyZXR1cm4gXy5YQigoKT0+e3ZhciBlPWMoKSxmO18udXYoKCk9Pnt2YXIgaD1fLmt1KF8uenYpO3RyeXtmPV8uZkMoZT9hLnRoZW4oZCk6YS5XPy4oKSl9ZmluYWxseXtfLmt1KGgpfX0sITApO3JldHVybiBmfSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/IlJsRHVkZCIsenA6YS50aGVuLFdlOiEwfSl9O18uV0M9bmV3IE1hcDtfLlhDPVN5bWJvbCgiTmMiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rRz1mdW5jdGlvbihhKXt2YXIgYj1fLkNBKDEpO2lmKCgwLF8ubHYpKGIpKXRocm93IEVycm9yKCJpYiIpO3JldHVybiBfLmh1KGEsYil9O18ubUc9ZnVuY3Rpb24oKXtyZXR1cm4gXy5adD9fLmtHKF8ubEcpOnZvaWQgMH07Xy5mZGE9U3ltYm9sKCIkYyIpO18uZ2RhPVN5bWJvbCgiYWQiKTtfLmxHPV8uZ3Uoe2RlZmF1bHRWYWx1ZTp2b2lkIDB9LCJ5RHA1T2MiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGhjYTtfLm5FPWZ1bmN0aW9uKGEsYil7YT1fLnB2KGhjYSxhLGIpO18uZnYoYSl9O2hjYT17Li4uXy4kdixlZmZlY3RUeXBlOl8uZHZ9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9IPWZ1bmN0aW9uKGEsYil7YT1fLiR0KGEpO3RyeXtfLkVBKGIpfWZpbmFsbHl7Xy4kdChhKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9FPWZ1bmN0aW9uKCl7aWYoXy5IQSgpKXRocm93IEVycm9yKCJCYyIpO3JldHVybiBfLk1DfTtfLnBFPWZ1bmN0aW9uKGEpe3ZhciBiPV8ub0UoKTtpZihiPT1udWxsKXRocm93IEVycm9yKCJUYyIpO3ZhciBjPWIuQisrO2IuWmZ8fChiLlpmPVtdKTt2YXIgZD1iLlpmO2RbY118fChkW2NdPXtrZXk6YSxob3N0OmJ9KTtpZihhIT09ZFtjXS5rZXkpdGhyb3cgRXJyb3IoIlNjYCIrKGIuaj9iLmo/Lm5hbWU6YiBpbnN0YW5jZW9mIF8ubUM/Xy5GQShiLm8pOmA8JHtiLmVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0+YCkpO3JldHVybiBkW2NdfTtfLnFFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIWF8fGEubGVuZ3RoIT09Yj8ubGVuZ3RofHxhLnNvbWUoKGMsZCk9PmMhPT1iW2RdKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBpY2EsdEUsamNhLHdFO2ljYT1mdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZD17Q2s6bnVsbCxnZXQgdmFsdWUoKXtkLnZMPy4oKTtyZXR1cm4gZC5Da30sdm86ITEsa3U6ITEsc2V0IHZhbHVlKGUpe2Qud0w/LihlKTtkLkNrPWU7ZC52bz0hMH0sbXooZSl7YyYmZSE9PWMmJihjLl9kaXNwb3NlUmVmPXZvaWQgMCxiPy4oKSk7Yz1lO2I9YShlKXx8bnVsbH0sdXooKXtiPy4oKTtiPWQudmFsdWU9bnVsbH0sW18uTXZdOiEwfTtyZXR1cm4gZH07Xy5zRT1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihfLkhBKCkpcmV0dXJuIGEoKTt2YXIgYz1fLnBFKCJ1c2VNZW1vSW50ZXJuYWwiKTtfLnFFKGMubWwsYikmJihjLm1sPWIsYy52YWx1ZT1hKCkpO3JldHVybiBjLnZhbHVlfTtfLnVFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRFKGEsITEsYil9O18udkU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdEUoYSwhMCxiKX07CnRFPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5IQSgpP3dFKGEsYixjKTpqY2EoYSxiLGMpfTtqY2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLnNFKCgpPT53RShhLGIsYykpfTt3RT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy5adCxlPWljYShmPT57ZS52YWx1ZT1mO3ZhciBoPSgoKT0+e3ZhciBrPV8ua3UobnVsbCk7dHJ5e3JldHVybiBjPy4oZil9Y2F0Y2gobCl7Xy5vdihsLGQpfWZpbmFsbHl7Xy5rdShrKX19KSgpO3JldHVybigpPT57aD8uKCl9fSk7ZS5qdT1hO2UubHU9YjtlLnZKPSFfLkhBKCk7cmV0dXJuIGV9O18uQkU9U3ltYm9sKCJXYyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1GPXtWYjohMSxzdGF0ZToidmlzaWJsZSJ9O18ubkY9e1ZiOiExLHN0YXRlOiJoaWRkZW4ifTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5wSD1mdW5jdGlvbihhKXt2YXIgYj1fLkNBKCk7cmV0dXJuIGM9Pnt2YXIgZD1hLm9ic2VydmVyPz9fLnkoKS5yZXNvbHZlKF8uTHgpLGU9Yy5qZj8/YyxmPVtdO2EuZWImJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTmIoITAsYyl9KX0sYS5lYikpO2EuTmMmJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTmIoITEsYyl9KX0sYS5OYykpO2EuTGgmJmEuTGomJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTGooKX0pfSxhLkxoKSk7ZS52aXNpYmlsaXR5TW9uaXRvcktleXM9KGUudmlzaWJpbGl0eU1vbml0b3JLZXlzPz9bXSkuY29uY2F0KGYpfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBQRDtfLlJEPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQihhLF8uT0QpO2lmKGIpcmV0dXJuIGI7aWYoKGI9Xy5CKGEsV2JhKSkmJmIuY29tbWFuZHMpcmV0dXJuIFBEKGIuY29tbWFuZHMpO2lmKChiPV8uQihhLFhiYSkpJiZiLmNvbW1hbmRzKXJldHVybiBQRChiLmNvbW1hbmRzKTtpZigoYT1fLkIoYSxZYmEpKSYmYS5pZGVudGlmaWVyJiZhLmNvbW1hbmQmJihRRHx8KFFEPVtdKSwhUUQuaW5jbHVkZXMoYS5pZGVudGlmaWVyKSkpcmV0dXJuIFFELnB1c2goYS5pZGVudGlmaWVyKSxfLkIoYS5jb21tYW5kLF8uT0QpfTtQRD1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKShhPV8uUkQoYykpJiZiLnB1c2goYSk7cmV0dXJue2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOmJ9fX19O18uU0Q9bmV3IF8uSSgiY29tbWFuZEV4ZWN1dG9yQ29tbWFuZCIpO18uT0Q9bmV3IF8uSSgiaW5uZXJ0dWJlQ29tbWFuZCIpO3ZhciBXYmE9bmV3IF8uSSgicGFyYWxsZWxDb21tYW5kIik7dmFyIFliYT1uZXcgXy5JKCJwZXJmb3JtT25jZUNvbW1hbmQiKTt2YXIgWGJhPW5ldyBfLkkoInNlcmlhbENvbW1hbmQiKTt2YXIgUUQ9dm9pZCAwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlREPW5ldyBfLkkoInJlZWxXYXRjaEVuZHBvaW50Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uVUQ9bmV3IF8uVnMoIkNPTU1BTkRfSEFORExFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZEPW5ldyBfLkkoInVybEVuZHBvaW50Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBaYmEsZGNhLCRiYSxlY2E7Xy5XRD1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEoKX1jYXRjaChiKXtfLklwKGIpfX07Xy5ZRD1mdW5jdGlvbihhLGIsYyl7cmV0dXJue2Zvcm06e2N1cnJlbnREYXRhOl8uWEQ/LnJlc3BvbnNlPz97fSxzb3VyY2VEYXRhOmEsZXZlbnQ6Yj8uZXZlbnQsY2xpY2tlZFZpc3VhbEVsZW1lbnQ6Yj8uY2xpY2tlZFZpc3VhbEVsZW1lbnQsaW1wbGljaXRHZXN0dXJlVHlwZTpiPy5pbXBsaWNpdEdlc3R1cmVUeXBlLGF1dG9uYXY6Yj8uYXV0b25hdixCZDpiPy5CZH0sbWQ6Y319OwpfLmJFPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaHYsYz1hLnV4LGQ9YS5iaCxlPWEuSWQsZj1hLnFkLGg9YS5BbyxrPWEuaW5uZXJ0dWJlQ29tbWFuZHx8Xy5SRChkKTtpZihrKXthPXt9O3ZhciB7UnE6bCxocmVmOm19PV8uWkQoayk7bCYmbT8oYS5ocmVmPW0sWmJhKGEsbCxtLGIpLCRiYShhLGwpLGYmJihhLnFkPSEwKSk6KGEucm9sZT0iYnV0dG9uIixhLnRhYmluZGV4PSIwIik7Xy5CKGssYWNhKSYmKGEuYXJpYUhhc1BvcHVwPSEwKTtlfHwoYS5vbmNsaWNrPW49PntsJiZtfHxuLnByZXZlbnREZWZhdWx0KCk7Xy4kRChrKTt2YXIgcD17Li4uXy5ZRChrLHtldmVudDpufSksLi4uaH07bi5wcmV2ZW50RGVmYXVsdCgpO18uYUUoayxwKTtuLnN0b3BQcm9wYWdhdGlvbigpfSxsJiZtfHwoYS5vbmtleWRvd249bj0+e2lmKG4ua2V5PT09IkVudGVyInx8bi5rZXk9PT0iICIpbi5zdG9wUHJvcGFnYXRpb24oKSxuLnByZXZlbnREZWZhdWx0KCksbi5jdXJyZW50VGFyZ2V0LmNsaWNrKCl9KSk7CnJldHVybnsuLi5jLC4uLmF9fX07Xy5aRD1mdW5jdGlvbihhKXthPV8uQihhLF8uU0QpPy5jb21tYW5kc3x8W2FdO2ZvcihsZXQgYiBvZiBhKWlmKGE9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8udXJsLF8ueCgid2ViX3JlbW92ZV93ZWJfbmF2aWdhdGlvbl9lbmRwb2ludF9kYXRhIil8fChhPWF8fF8uQihiLGJjYSk/LnVybCksYSYmYSE9PSIvc2VydmljZV9hamF4Iil7bGV0IGM9Xy5iYihhLGNjYSk7aWYoYylyZXR1cm4gYT1fLllhKGMpLHtScTpiLGhyZWY6YX07Xy5JcChuZXcgXy5YaigiQXR0cmlidXRlZFN0cmluZyBVUkwgY291bGQgbm90IGJlIHNhbml0aXplZCIsYSkpfXJldHVybnt9fTsKWmJhPWZ1bmN0aW9uKGEsYixjLGQpe2M9IV8uZmooYyk7aWYoXy5CKGIsXy5jRSk/Lm5vZm9sbG93fHxfLkIoYixfLkF3KT8ubm9mb2xsb3d8fF8uQihiLF8uVkQpPy5ub2ZvbGxvd3x8Xy5CKGIsXy5URCk/Lm5vZm9sbG93fHxjKWEucmVsPSJub2ZvbGxvdyI7YS50YXJnZXQ9ZGNhKGIsZCl9O2RjYT1mdW5jdGlvbihhLGI9IiIpe3JldHVybiBfLkIoYSxfLlZEKT8udGFyZ2V0PT09IlRBUkdFVF9ORVdfV0lORE9XIj8iX2JsYW5rIjpifTskYmE9ZnVuY3Rpb24oYSxiKXtiLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihhLnBhcmFtcz17aXRjdDpiLmNsaWNrVHJhY2tpbmdQYXJhbXN9KTthLm9ucG9pbnRlcmRvd249Yz0+e2VjYShjLGIpfTthLm51PWJ9OwpfLiREPWZ1bmN0aW9uKGEpeyhhLmxvZ2dpbmdVcmxzfHxbXSkuZm9yRWFjaChiPT57dmFyIGM9Yi5iYXNlVXJsO2IuYXR0cmlidXRpb25TcmNNb2RlPT09IkFUVFJJQlVUSU9OX1NSQ19NT0RFX1hIUl9PUFRJT04iPyhjPWRvY3VtZW50LmZlYXR1cmVQb2xpY3k/LmFsbG93ZWRGZWF0dXJlcygpLmluY2x1ZGVzKCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmciKT9jKyImbmlzPTYiOmMrIiZuaXM9NSIsXy5hbihjLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCIiLCEwLCEwKSk6Xy5hbihjKX0pfTtlY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmN1cnJlbnRUYXJnZXQ7YT1fLldEKCgpPT5jLmhyZWYpO2I9Yi5jbGlja1RyYWNraW5nUGFyYW1zP3tpdGN0OmIuY2xpY2tUcmFja2luZ1BhcmFtc306e307YSYmXy51eihhLGIsOCwhMCl9O18uZEU9ZnVuY3Rpb24oYSxiKXsoYT1fLlJEKGEpKSYmXy5hRShhLGIpfTsKXy5hRT1mdW5jdGlvbihhLGIpe18uWXQoXy5VRCxjPT57Yj9jLnJlc29sdmVDb21tYW5kKGEsYik6Yy5yZXNvbHZlQ29tbWFuZChhKX0pfTtfLmNFPW5ldyBfLkkoImJyb3dzZUVuZHBvaW50Iik7dmFyIGJjYT1uZXcgXy5JKCJ3ZWJOYXZpZ2F0aW9uRW5kcG9pbnREYXRhIik7dmFyIGFjYT1uZXcgXy5JKCJtb2RhbEVuZHBvaW50Iik7Xy5mY2E9bmV3IF8uSSgidXNlckZlZWRiYWNrRW5kcG9pbnQiKTtfLmVFPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5kYXRhPVtdO3RoaXMuRGY9bnVsbH1wdXNoKGEpe3RoaXMuRGY/dGhpcy5EZihhKTp0aGlzLmRhdGEucHVzaChhKX19O18uWEQ9e307Xy5mRT1fLkooXy5YRCx2b2lkIDAsIlRIUk9PIilbMF07Xy5KKG51bGwsdm9pZCAwLCJjeDRUSWQiKTtfLkoobnVsbCx2b2lkIDAsIlFYYU91ZCIpO18uSigiIix2b2lkIDAsIkRSV085YyIpO18uSihfLnF6KCk/ITE6ITAsdm9pZCAwLCJ2eXp5aWQiKTtfLmdFPW5ldyBfLmVFO3ZhciBjY2E9W18uSXEsXy5KcSxfLktxLF8uTXEsXy5McSxfLkdxLF8uTnEsXy5QcV07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ucUg9ZnVuY3Rpb24oYSl7aWYoYS5jb21wb3NlZFBhdGgpcmV0dXJuIGEuY29tcG9zZWRQYXRoKCk7aWYoIWEudW8pe2xldCBiPVtdLGM9YS50YXJnZXQ7Zm9yKDtjOyliLnB1c2goYyksYz1jLnBhcmVudE5vZGU7Yi5wdXNoKHdpbmRvdyk7YS51bz1ifXJldHVybiBhLnVvfTtfLnJIPWZ1bmN0aW9uKGEsYixjKXtmb3IobGV0IGQgb2YgYSl7aWYoZD09PWIpYnJlYWs7Zm9yKGxldCBlIG9mIGMpaWYoZC50YWdOYW1lPT09ZXx8ZC5yb2xlPT09ImJ1dHRvbiImJmU9PT0iQlVUVE9OIilyZXR1cm4hMH1yZXR1cm4hMX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBCZGEsQ2RhLERkYSx2SCx3SCxFZGE7QmRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vYnNlcnZlcj8/Xy55KCkucmVzb2x2ZShfLkx4KTtpZihhKXt2YXIgZD1hLmpmPz9hLGU9W107Yi5lYiYmZS5wdXNoKGMub2JzZXJ2ZShhLCgpPT57Yi5OYighMCxhKX0sYi5lYikpO2IuTmMmJmUucHVzaChjLm9ic2VydmUoYSwoKT0+e2IuTmIoITEsYSl9LGIuTmMpKTtiLkxoJiZiLkxqJiZlLnB1c2goYy5vYnNlcnZlKGEsKCk9PntiLkxqKCl9LGIuTGgpKTtkLnZpc2liaWxpdHlNb25pdG9yS2V5cz0oZC52aXNpYmlsaXR5TW9uaXRvcktleXM/P1tdKS5jb25jYXQoZSl9fTtfLnRIPWZ1bmN0aW9uKGEpe3JldHVybiEhXy5zSChhKX07Xy51SD1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBmPT57dmFyIGg9Xy5tRygpO18ubkUoKCk9PntpZihmKXtDZGEoZixhKCksZSk7dmFyIGs9RGRhKGYsYSgpLGIsYyxkLGgpO18uWXUoayl9fSwiYWpRWTYiKX19OwpDZGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXZIKGIpLGU9d0goYiksZj1kJiZfLm1GLGg9ZSYmXy5uRjsoZHx8ZSkmJkJkYShhLHtOYjprPT57dmFyIGw9Xy55KCkucmVzb2x2ZShfLlVEKTtrJiZkPyhsLnJlc29sdmVDb21tYW5kKGQse2Zvcm06e2VsZW1lbnQ6Yz9hOnZvaWQgMH0sbWQ6ITB9KSxkPXZIKGIpKTohayYmZSYmKGwucmVzb2x2ZUNvbW1hbmQoZSx7Zm9ybTp7ZWxlbWVudDpjP2E6dm9pZCAwfSxtZDohMH0pLGU9d0goYikpfSxlYjpmLE5jOmh9KX07CkRkYT1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGg9bmV3IE1hcDtpZihiPV8uc0goYikpYT1kPy5vblRhcD8udmFsdWV8fGEsYz1FZGEoYixhLGM/Lm9uVGFwLGUsZiksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYyksaC5zZXQoImNsaWNrIixjKSxfLngoIndlYl9lbmFibGVfYWRkaXRpb25hbF9ldmVudF9saXN0ZW5lcl9mb3JfdGFwX2NvbW1hbmQiKSYmKGM9az0+e3ZhciBsPWEudGFnTmFtZTtsPT09IkJVVFRPTiJ8fGw9PT0iQSJ8fGw9PT0iSU5QVVQifHxrLmtleSE9PSJFbnRlciImJmsua2V5IT09IiAifHxlJiZfLnJIKF8ucUgoayksYSxlKXx8KGsucHJldmVudERlZmF1bHQoKSxhLmNsaWNrKCkpfSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGMpLGguc2V0KCJrZXlkb3duIixjKSk7cmV0dXJuKCk9Pntmb3IobGV0IFtrLGxdb2YgaClhLnJlbW92ZUV2ZW50TGlzdGVuZXIoayxsKX19OwpfLnNIPWZ1bmN0aW9uKGEpe3JldHVybihhPV8uQihhLF8ueEgpPy5vblRhcCkmJl8uUkQoYSl9O3ZIPWZ1bmN0aW9uKGEpe3JldHVybihhPV8uQihhLF8ueEgpPy5vblZpc2libGUpJiZfLlJEKGEpfTt3SD1mdW5jdGlvbihhKXtyZXR1cm4oYT1fLkIoYSxfLnhIKT8ub25IaWRkZW4pJiZfLlJEKGEpfTtfLnlIPWZ1bmN0aW9uKGEpe3JldHVybiBfLlJEKF8uQihhLF8ueEgpPy5vbkhvdmVyU3RhcnQpfTtfLnpIPWZ1bmN0aW9uKGEpe3JldHVybiBfLlJEKF8uQihhLF8ueEgpPy5vbkhvdmVyRW5kKX07RWRhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9az0+e18ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoYSxrKX0saD1rPT57ZCYmXy5ySChfLnFIKGspLGIsZCl8fGYoay50YXJnZXQ/e2Zvcm06e2VsZW1lbnQ6ay50YXJnZXQsc291cmNlRGF0YTphLG11dGF0aW9uQ29udGV4dDplfX06dm9pZCAwKX07YyYmKGg9az0+e2MoayxmKX0pO3JldHVybiBofTtfLnhIPW5ldyBfLkkoImNvbW1hbmRDb250ZXh0Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uakg9bmV3IF8uVnMoIktFWV9NQU5BR0VSX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUD1mdW5jdGlvbiguLi5hKXt2YXIgYj0hMDtmb3IobGV0IGMgb2YgYSlpZih0eXBlb2YgYyE9PSJzdHJpbmciKXtiPSExO2JyZWFrfXJldHVybiBiP2Euam9pbigiICIpLnRyaW0oKXx8dm9pZCAwOigpPT57dmFyIGM9IiI7Zm9yKGxldCBkIG9mIGEpaWYodHlwZW9mIGQ9PT0iZnVuY3Rpb24iJiYoZD1kKCkpLGQpaWYodHlwZW9mIGQ9PT0ic3RyaW5nIiljKz0iICIrZDtlbHNlIGZvcihsZXQgZSBpbiBkKXtpZighZC5oYXNPd25Qcm9wZXJ0eShlKSljb250aW51ZTtsZXQgZj1kW2VdO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpKTtmJiYoYys9IiAiK2UpfWM9Yy50cmltKCl8fHZvaWQgMDtyZXR1cm4gXy5CdihjKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga0g7a0g9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9PmEoKT9hKCk6dm9pZCAwfTsKXy5uSD1fLkwoYT0+e3ZhciBiPV8udUUoImEiLGEucmVmKSxjPWEudWM/YS51YzpfLk4oKCk9Pl8uYkUoe2lubmVydHViZUNvbW1hbmQ6Xy5SRChhLmNvbW1hbmQ/LigpKT8/YS5jb21tYW5kPy4oKSxJZDphLklkPy4oKSxodjphLnRhcmdldD8uKCl9KXx8e30sdm9pZCAwLCJUQXZ6MCIpO3JldHVybiBfLksoImEiLHtlbDpiLGhyZWY6KCk9PmMoKS5ocmVmLHJlbDooKT0+YygpLnJlbCxjbGFzczooKT0+YygpLmNsYXNzTmFtZT8/YS5jbGFzc05hbWU/LigpLHN0eWxlOigpPT57aWYoYS5zdHlsZT8uKCkpcmV0dXJuIGEuc3R5bGUoKTtpZihhLmRpc2FibGVkPy4oKSlyZXR1cm4icG9pbnRlci1ldmVudHM6bm9uZSJ9LCJhcmlhLWhhc3BvcHVwIjooKT0+ISFjKCkuYXJpYUhhc1BvcHVwLCJmb3JjZS1uZXctc3RhdGUiOmtIKCgpPT5jKCkucWQpLHRpdGxlOmtIKCgpPT5jKCkudGl0bGU/P2EudGl0bGU/LigpKSxyb2xlOmtIKCgpPT5hLnJvbGU/LigpfHxjKCkucm9sZSksdGFyZ2V0OmtIKCgpPT4KYygpLnRhcmdldCksZGlyOmtIKCgpPT5hLmRpcj8uKCl8fGMoKS5kaXIpLHRhYmluZGV4OigpPT5jKCkudGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGMoKS50YWJpbmRleCk6YS50YWJJbmRleD8uKCksImFyaWEtaGlkZGVuIjooKT0+YygpLmFyaWFIaWRkZW4/P2EuYXJpYUhpZGRlbj8uKCksImFyaWEtbGFiZWwiOigpPT5jKCkuYXJpYUxhYmVsPz9hLmFyaWFMYWJlbD8uKCksImFyaWEtY3VycmVudCI6YS5hcmlhQ3VycmVudCwiYXJpYS1kaXNhYmxlZCI6YS5kaXNhYmxlZCwiYXJpYS1leHBhbmRlZCI6YS5hcmlhRXhwYW5kZWQsImFyaWEtbGFiZWxsZWRieSI6YS5IbywiYXJpYS1kZXNjcmliZWRieSI6YS5IZSwiYXJpYS1zZWxlY3RlZCI6YS5hcmlhU2VsZWN0ZWQsInRhYi1pZGVudGlmaWVyIjphLnRhYklkZW50aWZpZXIsIm9uOnBvaW50ZXJkb3duIjpmdW5jdGlvbihkKXtjKCkub25wb2ludGVyZG93bj8uKGQpfSwib246Y2xpY2siOmZ1bmN0aW9uKGQpe2MoKS5vbmNsaWNrPy4oZCk7CmEub25DbGljaz8uKGQpfSwib246Zm9jdXNpbiI6YS5keiwib246Zm9jdXNvdXQiOmEuZXosIm9uOm1vdXNlZW50ZXIiOmZ1bmN0aW9uKGQpe2Eub25Ib3Zlcj8uKGQpO2EuaXo/LihkKX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKGQpe2Euano/LihkKX0sIm9uOmtleWRvd24iOmZ1bmN0aW9uKGQpe2MoKS5vbmtleWRvd24/LihkKX19LGEuY2hpbGRyZW4pfSwidCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZDPV8uTCgoe2NvbW1hbmQ6YSxyZW5kZXJlckNvbnRleHQ6YixjaGlsZHJlbjpjLGNsYXNzTmFtZTpkLFp2OmUsc3R5bGU6ZixvbkNsaWNrOmgsYXJpYUN1cnJlbnQ6ayxIZTpsLGFyaWFIaWRkZW46bSxhcmlhTGFiZWw6bixIbzpwLGFyaWFTZWxlY3RlZDpyLGRpc2FibGVkOnQsZGlyOnYsdGFiSW5kZXg6eix0YXJnZXQ6RSx0aXRsZTpBLHRvZ2dsZWFibGU6Rix0b2dnbGVkOkN9KT0+e2Z1bmN0aW9uIEcobWEpe3ZhciB0YT1fLnNIKGI/LigpKT8/YT8uKCk7aWYodGEpe2xldCBUPW1hLnRhcmdldD97Zm9ybTp7ZWxlbWVudDptYS50YXJnZXQsc291cmNlRGF0YTp0YSxtdXRhdGlvbkNvbnRleHQ6VX19OnZvaWQgMDtfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKHRhLFQpfWg/LihtYSl9ZnVuY3Rpb24gRCgpe29hKFM/LlhlKCk/PyExKX1mdW5jdGlvbiBIKCl7b2EoITEpfWZ1bmN0aW9uIFIoKXt2YXIgbWE9Xy55SChiPy4oKSk7bWEmJl8ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQobWEpfQpmdW5jdGlvbiBNKCl7dmFyIG1hPV8uekgoYj8uKCkpO21hJiZfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKG1hKX12YXIgUz1fLnkoKS5yZXNvbHZlKF8uSW4oXy5qSCkpLFtZLHBhXT1fLkooITEsdm9pZCAwLCJUTkxKRWMiKSxvYT1wYSxVPV8ubUcoKSxoYT0oKT0+Rj8uKCk/Qz8uKCk6dm9pZCAwO3JldHVybiBfLksoXy5PLHtBOmZ1bmN0aW9uKCl7dmFyIG1hPV8uc0goYj8uKCkpPz9hPy4oKSx0YTtpZih0YT1tYSl7bGV0IHtScTpULGhyZWY6YmF9PV8uWkQobWEpO3RhPSEoIVR8fCFiYSl9cmV0dXJuIHRhfSx0aGVuOigpPT5fLksoXy5uSCx7Y29tbWFuZDphLHN0eWxlOmYsSGU6bCxhcmlhSGlkZGVuOm0sYXJpYUxhYmVsOm4sSG86cCxhcmlhU2VsZWN0ZWQ6cixkaXNhYmxlZDp0LGRpcjp2LHRhYkluZGV4OnosdGFyZ2V0OkUsdGl0bGU6QSxvbkNsaWNrOmgsY2xhc3NOYW1lOl8uUCgieXRCdXR0b25PckFuY2hvckhvc3QiLCJ5dEJ1dHRvbk9yQW5jaG9yQW5jaG9yIiwKZCwoKT0+WSgpP2U/LigpOiIiKSxkejpELGV6OkgsaXo6UixqejpNLGFyaWFDdXJyZW50OigpPT5rPy4oKT8/aGEoKX0sYyksVzooKT0+Xy5LKCJidXR0b24iLHsib246Y2xpY2siOkcsIm9uOmZvY3VzaW4iOkQsIm9uOmZvY3Vzb3V0IjpILCJvbjptb3VzZWVudGVyIjpSLCJvbjptb3VzZWxlYXZlIjpNLGNsYXNzOl8uUCgieXRCdXR0b25PckFuY2hvckhvc3QiLCJ5dEJ1dHRvbk9yQW5jaG9yQnV0dG9uIixkLCgpPT5ZKCk/ZT8uKCk6IiIpLHN0eWxlOmYsImFyaWEtZGVzY3JpYmVkYnkiOmwsImFyaWEtaGlkZGVuIjptLCJhcmlhLWxhYmVsIjpuLCJhcmlhLWxhYmVsbGVkYnkiOnAsImFyaWEtcHJlc3NlZCI6aGEsZGlyOnYsZGlzYWJsZWQ6dCx0YWJpbmRleDooKT0+ej8uKCk/PygoXy5Pa3x8Xy5yeigpKSYmXy54KCJ3ZWJfZW5hYmxlX3NhZmFyaV9idXR0b25fdGFiaW5kZXhfZml4Iik/MDp2b2lkIDApLHRpdGxlOkF9LGMpfSl9LCJ2Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIlpRS3gxIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uSUU9ZnVuY3Rpb24oLi4uYSl7cmV0dXJuKCk9Pnt2YXIgYj0iIjtmb3IobGV0IGMgb2YgYSl7bGV0IGQ9dHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoKTpjO2lmKGQpZm9yKGxldCBlIGluIGQpe2xldCBmPWRbZV07Zm9yKDt0eXBlb2YgZj09PSJmdW5jdGlvbiI7KWY9ZigpO2YhPT12b2lkIDAmJmYhPT1udWxsJiYoYis9YDsgJHtlfTogJHtmfWApfX1yZXR1cm4gYi5sZW5ndGg+MD9fLkJ2KGIuc2xpY2UoMikpOl8uQnYoKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnJGPWZ1bmN0aW9uKC4uLmEpe3JldHVybiBfLnZFKF8uQkUsYj0+e3ZhciBjPWEubWFwKGQ9PmQ/LihiKSk7cmV0dXJuKCk9PnZvaWQgYy5mb3JFYWNoKGQ9PnZvaWQgZD8uKCkpfSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmhLPWZ1bmN0aW9uKCl7Z0t8fChnSz1uZXcgTGVhKTtyZXR1cm4gZ0t9O3ZhciBNZWE9Xy5MKGE9PntmdW5jdGlvbiBiKGhhKXtpZihoYSl7dmFyIG1hPU0uZ2V0KGhhKTttYSYmKG1hLmNhbmNlbCgpLE0uZGVsZXRlKGhhKSk7Zm9yKGxldCB0YSBvZiBoYS5nZXRBbmltYXRpb25zKCkpdGEuY2FuY2VsKCl9fWZ1bmN0aW9uIGMoaGEsbWEsdGEpe21hPV8uamYuR2EobWEsMyx0YSk7Uy5zZXQoaGEsbWEpfWZ1bmN0aW9uIGQoKXttKCExKTtpZihSKXt2YXIgaGE9UjtSPW51bGw7dmFyIG1hPURhdGUubm93KCktRztjKGhhLCgpPT57Uy5kZWxldGUoaGEpO3ZhciB7d2lkdGg6dGEsaGVpZ2h0OlQsb3BhY2l0eTpiYX09d2luZG93LmdldENvbXB1dGVkU3R5bGUoaGEpLGFhPU51bWJlci5wYXJzZUZsb2F0KHRhKXx8MCxPYT1OdW1iZXIucGFyc2VGbG9hdChUKXx8MCxKYj1OdW1iZXIucGFyc2VGbG9hdChiYSl8fC41O2hhLnN0eWxlLndpZHRoPWAke2FhfXB4YDtoYS5zdHlsZS5oZWlnaHQ9YCR7T2F9cHhgO2hhLnN0eWxlLm9wYWNpdHk9YCR7SmJ9YDtiKGhhKTthYT0KVT8wOjJFMztoYS5zdHlsZS50cmFuc2l0aW9uPWBvcGFjaXR5ICR7YWF9bXMgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSlgO2hhLnN0eWxlLm9wYWNpdHk9aGEub2Zmc2V0V2lkdGg9PT0tMT8iMSI6IjAiO2MoaGEsKCk9PntTLmRlbGV0ZShoYSk7aGEuc3R5bGUuY3NzVGV4dD0iIn0sYWErMTAwKX0sTWF0aC5tYXgoMCwzMDAtbWEpKX19ZnVuY3Rpb24gZSgpe2QoKTtDPW51bGx9dmFyIHtjbGFzc05hbWU6ZixzdHlsZTpofT1fLkRDKGEse2NsYXNzTmFtZToiIixzdHlsZToiZGVmYXVsdCJ9KSxbayxsXT1fLkooITEsdm9pZCAwLCJLYlVUamYiKSxtPWwsW24scF09Xy5KKHZvaWQgMCx2b2lkIDAsIkdlRnZFZiIpLFtyLHRdPV8uSih2b2lkIDAsdm9pZCAwLCJpM2ZkVmUiKSxbdix6XT1fLkoodm9pZCAwLHZvaWQgMCwiTGVkVjRiIiksRT1fLnJGKCksQT1fLnJGKCksRj1fLnJGKCksQz1udWxsLEc9MCxEPTAsSD0hMCxSPW51bGwsTT1uZXcgTWFwLFM9bmV3IE1hcCxZPTAscGE9CjAsb2E9bnVsbCxVPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7Xy5ZdSgoKT0+e2ZvcihsZXQgaGEgb2YgUy52YWx1ZXMoKSlfLmpmLkFhKGhhKTtTLmNsZWFyKCk7YihBLnZhbHVlKTtiKEYudmFsdWUpO29hIT09bnVsbCYmXy5qZi5BYShvYSl9KTtyZXR1cm4gXy5LKCJ5dC1saWdodC10b3VjaC1mZWVkYmFjay1zaGFwZSIse2VsOkUsY2xhc3M6Xy5QKCJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG9zdCIsZix7eXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVByZXNzZWQ6ayx5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5RGVmYXVsdDooKT0+aCgpPT09ImRlZmF1bHQiLHl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlJbnZlcnNlOigpPT5oKCk9PT0iaW52ZXJzZSJ9KSwib246cG9pbnRlcmVudGVyIjpmdW5jdGlvbigpe3ZhciBoYT1DPz8oQz1FLnZhbHVlPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8/Cm51bGwpO2hhJiZ6KGAkeyhoYS5oZWlnaHR8fDApKjIuNX1weGApfSwib246cG9pbnRlcmRvd24iOmZ1bmN0aW9uKGhhKXt2YXIgbWE9RGF0ZS5ub3coKTtpZighKG1hLUQ8MTAwKSl7RD1tYTttKCEwKTt2YXIgdGE9Qz8/KEM9RS52YWx1ZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/P251bGwpO2lmKHRhKXt2YXIgVD1oYS5jbGllbnRYLXRhLmxlZnQ7aGE9aGEuY2xpZW50WS10YS50b3A7dmFyIGJhPU1hdGgubWF4KCh0YS53aWR0aHx8MCkqMiwodGEuaGVpZ2h0fHwwKSo4LjUpLGFhPWJhLzQwOCoxNDAwO3RhPUg/QS52YWx1ZTpGLnZhbHVlO0g9IUg7aWYoUj10YSl7dGEuc3R5bGUuY3NzVGV4dD0iIjtiKHRhKTtsZXQgT2E9Uy5nZXQodGEpO09hIT09dm9pZCAwJiYoXy5qZi5BYShPYSksUy5kZWxldGUodGEpKTt0YS5zdHlsZS5sZWZ0PWAke1R9cHhgO3RhLnN0eWxlLnRvcD1gJHtoYX1weGA7VXx8KFQ9bmV3IEtleWZyYW1lRWZmZWN0KHRhLFt7d2lkdGg6IjBweCIsaGVpZ2h0OiIwcHgiLApvcGFjaXR5OiIwLjMwNiJ9LHt3aWR0aDpgJHtiYSouMjV9cHhgLGhlaWdodDpgJHtiYSouMjV9cHhgLG9wYWNpdHk6IjAuNzc0IixvZmZzZXQ6LjI1fSx7d2lkdGg6YCR7YmEqLjZ9cHhgLGhlaWdodDpgJHtiYSouNn1weGAsb3BhY2l0eToiMC44MjgiLG9mZnNldDouNn0se3dpZHRoOmAke2JhfXB4YCxoZWlnaHQ6YCR7YmF9cHhgLG9wYWNpdHk6IjAuOSJ9XSx7ZHVyYXRpb246YWEsZmlsbDoiZm9yd2FyZHMiLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMTcsIDAuMTcsIDAuMSwgMSkifSksVD1uZXcgQW5pbWF0aW9uKFQsZG9jdW1lbnQudGltZWxpbmUpLE0uc2V0KHRhLFQpLFQucGxheSgpKX1HPW1hfX19LCJvbjpwb2ludGVydXAiOmQsIm9uOnBvaW50ZXJsZWF2ZSI6ZSwib246cG9pbnRlcmNhbmNlbCI6ZSwib246cG9pbnRlcm1vdmUiOmZ1bmN0aW9uKGhhKXt2YXIgbWE9Qz8/KEM9RS52YWx1ZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/P251bGwpO21hJiYoWT1oYS5jbGllbnRYLQptYS5sZWZ0LHBhPWhhLmNsaWVudFktbWEudG9wLGsoKSYmKGhhLmNsaWVudFg8bWEubGVmdHx8aGEuY2xpZW50WD5tYS5yaWdodHx8aGEuY2xpZW50WTxtYS50b3B8fGhhLmNsaWVudFk+bWEuYm90dG9tKT9kKCk6b2E9PT1udWxsJiYob2E9Xy5qZi5HYSgoKT0+e29hPW51bGw7cChgJHtZfXB4YCk7dChgJHtwYX1weGApfSwzKSkpfSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKCJkaXYiLHtjbGFzczoieXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheSJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodCIsc3R5bGU6Xy5JRSh7bGVmdDpuLHRvcDpyLHdpZHRoOnYsaGVpZ2h0OnZ9KX0pLF8uSygiZGl2Iix7ZWw6QSxjbGFzczoieXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVRvdWNoTGlnaHQifSksXy5LKCJkaXYiLHtlbDpGLGNsYXNzOiJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlVG91Y2hMaWdodCJ9KSl9LCJhYSIpO3ZhciBMZWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLmo9bmV3IE1hcDt2YXIgW2EsYl09Xy5KKFtdLHZvaWQgMCwiSUtmWkJkIik7dGhpcy52PWI7dGhpcy5vPV8uTigoKT0+e3ZhciBjPWEoKTtmb3IobGV0IGQgb2YgYylkLlB5Py4oKTtyZXR1cm4gYy5tYXAoZD0+ZC5lbGVtZW50KX0sdm9pZCAwLCJaTVJ0d2QiKX1sYSgpe2dLPW51bGw7c3VwZXIubGEoKX19LGdLPW51bGw7Xy55RT1fLkwoYT0+e3ZhciBiPV8udkUoXy5CRSksW2MsZF09Xy5KKHt4OjAseTowLG9wYWNpdHk6MCxzaXplOjB9LHZvaWQgMCwiR3dYY0RkIiksZT0oKT0+e2lmKGEuY29uZmlnKCk/LmprKXt2YXIgaD1iLnZhbHVlO2lmKGgpe3ZhciBrPV8uaEsoKS5vO3ZhciBsPWsoKTtpZihsLmxlbmd0aCl7bGV0IHQ9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtrPXQubGVmdCt0LndpZHRoLzI7dmFyIG09dC50b3ArdC5oZWlnaHQvMjtsZXQgdj1JbmZpbml0eTt2YXIgbj0wLHA9MDtsZXQgej05Njtmb3IobGV0IEUgb2YgbCl7aWYoRT09PWh8fCFFLmlzQ29ubmVjdGVkfHxFLm9mZnNldFBhcmVudD09PW51bGwpY29udGludWU7bD1FLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGwud2lkdGg9PT0wJiZsLmhlaWdodD09PTApY29udGludWU7bGV0IEE9TWF0aC5tYXgobC5sZWZ0LE1hdGgubWluKGssbC5yaWdodCkpLEY9TWF0aC5tYXgobC50b3AsTWF0aC5taW4obSxsLmJvdHRvbSkpO3ZhciByPQpBLU1hdGgubWF4KHQubGVmdCxNYXRoLm1pbihBLHQucmlnaHQpKTtsZXQgQz1GLU1hdGgubWF4KHQudG9wLE1hdGgubWluKEYsdC5ib3R0b20pKTtyPXIqcitDKkM7cjx2JiYodj1yLG49QSxwPUYsej1NYXRoLm1heChsLndpZHRoLGwuaGVpZ2h0KSl9aD1NYXRoLnNxcnQodik7ZChoPDEwMD97eDpuLWsseTpwLW0sb3BhY2l0eToxLWgvMzAwLHNpemU6TWF0aC5tYXgoOTYseioyLjUpfTp7eDowLHk6MCxvcGFjaXR5OjAsc2l6ZTowfSl9ZWxzZSBkKHt4OjAseTowLG9wYWNpdHk6MCxzaXplOjB9KX19fTtfLm5FKCgpPT57aWYoYS5jb25maWcoKT8uamspe3ZhciBoPW5ldyBfLld0KGUsMTAwKSxrPSgpPT57aC52KCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGspO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsayk7aC5kaXNwb3NlKCl9fX0sInJQWUMxZCIpO18ubkUoKCk9PnthLmNvbmZpZygpPy5qayYmZSgpfSwiUXA2UFJkIik7CnZhciBmPSgpPT5hLmNvbmZpZygpPy5WYSE9PTUmJmEuY29uZmlnKCk/LlZhIT09OSYmYS5jb25maWcoKT8uVmEhPT02O3JldHVybiBfLksoXy5PLHtBOigpPT5hLmNvbmZpZygpPy5WYSE9PTAmJiFfLmdyLHRoZW46KCk9Pl8uSygieXQtbGlnaHQtc2hhcGUiLHtlbDpiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNsYXNzOl8uUCgiY29udHJpYll0TGlnaHRTaGFwZUhvc3QiLGEuY2xhc3NOYW1lLHtjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHQ6KCk9PiEwLGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodFNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTEsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09Myxjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRTb2xpZEludmVyc2U6KCk9PmEuY29uZmlnKCk/LlZhPT09Mixjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRUb25hbEludmVyc2U6KCk9PgphLmNvbmZpZygpPy5WYT09PTQsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3ZlcmxheVRvbmFsOigpPT5hLmNvbmZpZygpPy5WYT09PTgsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3ZlcmxheVNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTcsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZTooKT0+YS5jb25maWcoKT8uVmE9PT01LGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5lOigpPT5hLmNvbmZpZygpPy5WYT09PTksY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2U6KCk9PmEuY29uZmlnKCk/LlZhPT09Nn0pLHN0eWxlOl8uSUUoeyItLXl0LWxpZ2h0LXJpbS1jb2xvciI6KCk9PmEuY29uZmlnKCk/LmR2LCItLXl0LWxpZ2h0LXdhc2gtb3BhY2l0eSI6KCk9PmMoKS5vcGFjaXR5LCItLXl0LWxpZ2h0LXdhc2gteCI6KCk9PmAke2MoKS54fXB4YCwiLS15dC1saWdodC13YXNoLXkiOigpPT4KYCR7YygpLnl9cHhgLCItLXl0LWxpZ2h0LXdhc2gtc2l6ZSI6KCk9PmAke2MoKS5zaXplfXB4YH0pfSxfLksoXy5PLHtBOigpPT5hLmNvbmZpZygpPy5qayx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJjb250cmliWXRMaWdodFNoYXBlRHluYW1pY1dhc2hMaWdodCJ9KX0pLF8uSyhfLk8se0E6KCk9PmEuY29uZmlnKCk/LkNCLHRoZW46KCk9Pl8uSyhNZWEse3N0eWxlOigpPT57dmFyIGg7YTp7aWYoaD1hLmNvbmZpZygpPy5WYSlzd2l0Y2goaCl7Y2FzZSAxOmNhc2UgNDpoPSJkZWZhdWx0IjticmVhayBhO2Nhc2UgMjpjYXNlIDM6Y2FzZSA1Omg9ImludmVyc2UiO2JyZWFrIGF9aD12b2lkIDB9cmV0dXJuIGh9fSl9KSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoImNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHQiLHtjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0U2FmYXJpOigpPT5fLk9rfHxfLklsLGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTb2xpZDooKT0+CmEuY29uZmlnKCk/LlZhPT09MSxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09Myxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0U29saWRJbnZlcnNlOigpPT5hLmNvbmZpZygpPy5WYT09PTIsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFRvbmFsSW52ZXJzZTooKT0+YS5jb25maWcoKT8uVmE9PT00LGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRPdmVybGF5VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09OCxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0T3ZlcmxheVNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTd9KSxzdHlsZTpfLklFKHtiYWNrZ3JvdW5kOigpPT5gcmFkaWFsLWdyYWRpZW50KCR7YS5jb25maWcoKT8uZXZ9LCB0cmFuc3BhcmVudClgfSl9KX0pKX0pfSwiZGEiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgibnZYNFZiIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBoRyxkZGEsY2RhLGlHLGpHO18uZkc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oQXJyYXkuaXNBcnJheShhKT9hOkFycmF5LmZyb20oYSkpLm1hcChiKX07Xy5nRz1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEucGEhPT0iZnVuY3Rpb24iP18uZkcoYS5wYSxhLmNoaWxkcmVuKTphLnRiPT09IklOREVYIj9jZGEoYSk6ZGRhKGEpfTtoRz1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgYSliPy4oKX07CmRkYT1mdW5jdGlvbihhKXt2YXIgYj1hLnRiPT09dm9pZCAwfHxhLnRiPT09IlJFRkVSRU5DRSIsYz1iP249Pm46YS50YixkPVtdLGU9W10sZj1bXSxoPVtdLGs9W10sbD1bXSxtPSEwO18uWXUoKCk9PntoRyhoKX0pO3JldHVybiBfLlhCKCgpPT57dmFyIG49aUcoYSkscD1uLmxlbmd0aDtpZihwPT09MCl7aWYoZC5sZW5ndGg9PT0wJiYhbSlyZXR1cm4gZjtoRyhoKTtkPW47ZT1bXTtmb3Iobj0wO248ZC5sZW5ndGg7bisrKWUucHVzaChjKGRbbl0pKTtmPVtdO2g9W107az1bXTtsPVtdO2EuZmFsbGJhY2smJihoWzBdPWpHKCgpPT57ZlswXT1fLmZDKGEuZmFsbGJhY2soKSl9KSk7bT0hMTtyZXR1cm4gZn12YXIgcj1uZXcgZWRhO2Zvcih2YXIgdD1kLmxlbmd0aC0xO3Q+PTA7dC0tKXIucHVzaChlW3RdLHQpO3Q9QXJyYXkocCk7dmFyIHY9QXJyYXkocCksej1BcnJheShwKSxFPUFycmF5KHApLEE9QXJyYXkoYj8wOnApO2ZvcihsZXQgRj0wO0Y8cDtGKyspe2xldCBDPW5bRl0sRz1jKEMpLApEPXIucG9wKEcpO0QhPW51bGw/KHpbRl09ZltEXSx2W0ZdPWVbRF0sdFtGXT1oW0RdLEVbRl09a1tEXSxifHwoQVtGXT1sW0RdKSxfLnJDKCgpPT57RVtGXShGKTtpZighYilBW0ZdKEMpfSksZGVsZXRlIGhbRF0pOnRbRl09akcoKCk9Pnt2YXIgSD1fLkooRix2b2lkIDAsIlBMVDFzIiksUj1IWzBdO0VbRl09SFsxXTt2W0ZdPUc7aWYoYil6W0ZdPV8uZkMoYS5jaGlsZHJlbihDLFIpKTtlbHNle2xldCBNPV8uSihDLHZvaWQgMCwiYms4UkpkIiksUz1NWzBdO0FbRl09TVsxXTt6W0ZdPV8uZkMoYS5jaGlsZHJlbihTLFIpKX19KX1oRyhoKTtkPW47ZT12O2Y9ejtoPXQ7az1FO2w9QTttPSExO3JldHVybiB6fSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/Im5zVEdIZCIsenA6YS5wYSxXZTohMH0pfTsKY2RhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1bXSxlPVtdLGY9ITE7Xy5ZdSgoKT0+e2hHKGUpfSk7cmV0dXJuIF8uWEIoKCk9Pnt2YXIgaD1pRyhhKTtmJiZoLmxlbmd0aD4wJiYoZS5wb3AoKSgpLGIucG9wKCksZj0hMSk7dmFyIGs9QXJyYXkoaC5sZW5ndGgpO2ZvcihsZXQgbT0wO208aC5sZW5ndGg7bSsrKXtpZihtPGIubGVuZ3RoKXtiW21dIT09aFttXSYmKF8uckMoKCk9PnZvaWQgY1ttXShoW21dKSksYlttXT1oW21dKTtrW21dPWRbbV07Y29udGludWV9dmFyIGw9akcoKCk9PntiW21dPWhbbV07dmFyIG49Xy5KKGhbbV0sdm9pZCAwLCJ1aUMwY2IiKSxwPW5bMF07Y1ttXT1uWzFdO2tbbV09Xy5mQyhhLmNoaWxkcmVuKHAsbSkpfSk7ZVttXT1sfWZvcig7Yi5sZW5ndGg+aC5sZW5ndGg7KWIucG9wKCksZS5wb3AoKSgpLGMucG9wKCk7aC5sZW5ndGg9PT0wJiYhZiYmYS5mYWxsYmFjayYmKGw9akcoKCk9PntrWzBdPV8uZkMoYS5mYWxsYmFjaygpKX0pLGVbMF09bCxmPQohMCk7cmV0dXJuIGQ9a30se2RlYnVnTmFtZTphLmRlYnVnSW5zdGFuY2U/PyJuc1RHSGQiLFdlOiEwfSl9O2lHPWZ1bmN0aW9uKGEpe2E9YS5wYSgpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6QXJyYXkuZnJvbShhKX07akc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DQSgpO3JldHVybiBfLnV2KGM9Pnt2YXIgZD1fLmt1KF8uenYpO3RyeXtjLnBhcmVudD1iLGEoYyl9ZmluYWxseXtfLmt1KGQpfX0sITEpfTt2YXIgZWRhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9bmV3IE1hcH1wdXNoKGEsYil7dmFyIGM9dGhpcy5tYXA7aWYoYy5oYXMoYSkpe3RoaXMuanx8KHRoaXMuaj1uZXcgTWFwKTtpZih0aGlzLmo/LmhhcyhiKSl0aHJvdyBfLlV1KEVycm9yKCJaY2AiK2IpLDQpO3RoaXMuai5zZXQoYixjLmdldChhKSl9Yy5zZXQoYSxiKX1wb3AoYSl7dmFyIGI9dGhpcy5tYXAsYz1iLmdldChhKTtjIT09dm9pZCAwJiZ0aGlzLmo/LmhhcyhjKT8oYi5zZXQoYSx0aGlzLmouZ2V0KGMpKSx0aGlzLmouZGVsZXRlKGMpKTpiLmRlbGV0ZShhKTtyZXR1cm4gY319Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga2NhLGxjYSxGRSxHRTtfLkNFPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtfLkRFPWZ1bmN0aW9uKGEpe3JldHVybntpc0RlZmF1bHQ6ITAsY2hpbGRyZW46YS5jaGlsZHJlbn19O18uRUU9ZnVuY3Rpb24oYSl7cmV0dXJuIGtjYShhKX07CmtjYT1mdW5jdGlvbihhKXt2YXIgYj1sY2EoYSksYz1fLk4oKCk9PnthOnt2YXIgZD0tMTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKyl7bGV0IGY9YltlXTtmPy5bXy5Mdl0mJihmPUZFKGYpKTtmIGluc3RhbmNlb2YgXy5kQyYmKGY9R0UoZikpO2lmKGYuaXNEZWZhdWx0KWQ9PT0tMSYmKGQ9ZSk7ZWxzZSBpZihfLkJ2KGYud2hlbikpe2Q9ZTticmVhayBhfX19cmV0dXJuIGR9LHZvaWQgMCwiTVNUeFdiIik7cmV0dXJuIF8uWEIoKCk9Pnt2YXIgZD1jKCksZTtfLnV2KCgpPT57dmFyIGY9Xy5rdShfLnp2KTt0cnl7aWYoZD09PS0xKWU9bnVsbDtlbHNle3ZhciBoPWJbZF07dmFyIGs9aD8uW18uTHZdP0ZFKGgpOmggaW5zdGFuY2VvZiBfLmRDP0dFKGgpOmg7dmFyIGw9az09PW51bGw/bnVsbDprLmlzRGVmYXVsdD9rLmNoaWxkcmVuKCk6dHlwZW9mIGsud2hlbj09PSJmdW5jdGlvbiI/ay5jaGlsZHJlbihfLk5DKGsud2hlbiwiQ2FzZSIpKTprLmNoaWxkcmVuKGsud2hlbik7ZT1fLmZDKGwpfX1maW5hbGx5e18ua3UoZil9fSk7CnJldHVybiBlfSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/InZJMXJ0ZiIsV2U6ITB9KX07bGNhPWZ1bmN0aW9uKGEpe2E9YS5jaGlsZHJlbjtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX07RkU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZT09PV8uREU/e2lzRGVmYXVsdDohMCxjaGlsZHJlbjphLmNoaWxkcmVuWzBdfTp7d2hlbjphLnByb3BzLndoZW4sY2hpbGRyZW46YS5jaGlsZHJlblswXX19O0dFPWZ1bmN0aW9uKGEpe3ZhciBiPWEucHJvcHM7YT1hLmNoaWxkcmVuWzBdO3JldHVybiBiLndoZW4/e3doZW46Yi53aGVuLGNoaWxkcmVuOmF9Ontpc0RlZmF1bHQ6ITAsY2hpbGRyZW46YX19O18uQ0UuZGVidWdOYW1lPSJ0YmhNY2YiO18uREUuZGVidWdOYW1lPSJ6eU1GemIiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRGNhO0RjYT1mdW5jdGlvbihhKXtzd2l0Y2goYS5acSl7Y2FzZSBfLlF2Ol8uVXYuc2NoZWR1bGUoYSk7YnJlYWs7ZGVmYXVsdDpfLmViKGEuWnEsdm9pZCAwKX19O18ub0Y9ZnVuY3Rpb24oYSl7aWYoXy5qdT09PV8uV3UpUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoInliIiksMik7fSk7ZWxzZXtpZigoMCxfLmx2KShfLmp1KSl0aHJvdyBfLlV1KEVycm9yKCJ6YiIpLDQpO3ZhciBiPV8uWnQsYz1fLk11O0RjYSh7WnE6Xy5RdixydW46KCk9PntpZihiJiYhYi5pYSl7dmFyIGQ9Xy4kdChiKTt0cnl7Xy5SdSgoKT0+e3ZhciBlPWEoKTt0eXBlb2YgZT09PSJmdW5jdGlvbiImJl8uWXUoZSl9LGMpfWNhdGNoKGUpe18uVXUoZSw0KSxfLm92KGUpfWZpbmFsbHl7Xy4kdChkKX19fX0pfX07Xy5LQj1fLmxDO18ucUY9U3ltYm9sKCJYYyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgV0osVko7Xy5USj1mdW5jdGlvbihhLGIpe3ZhciBjPV8ucEUoIm9uQ2hhbmdlIiksZD1fLm9FKCk7Xy5xRShjLm1sLGIpJiYoYy5tbD1iLGMuc3I9YSxkLnVmfHwoZC51Zj1bXSksZC51Zi5wdXNoKGMpKX07Xy5VSj1mdW5jdGlvbihhKXtfLkhBKCk/Xy5vRigoKT0+Xy5FQShhKSk6Xy5USigoKT0+Xy5FQShhKSxbXSl9O1dKPWZ1bmN0aW9uKGEpe3ZhciBiPVsuLi5hXTthLmxlbmd0aD0wO2ZvcihsZXQgYyBvZiBiKWlmKFZKKGMpLGE9Yy5zcixjLnNyPW51bGwsYT1hPy4oKSljLnJyPWF9O1ZKPWZ1bmN0aW9uKGEpe3ZhciBiPWEucnI7YS5ycj1udWxsO2I/LigpfTtfLmR3KHtTbyhhKXt2YXIgYj1fLiR0KGEucWwpO3RyeXthLnVmPy5sZW5ndGgmJldKKGEudWYpfWZpbmFsbHl7Xy4kdChiKX19LEdmKGEpe3ZhciBiPV8uJHQoYS5xbCk7dHJ5e2EudWY/Lmxlbmd0aCYmV0ooYS51Zil9ZmluYWxseXtfLiR0KGIpfX0sSGYoYSl7YS5aZj8ubGVuZ3RoJiZhLlpmLmZvckVhY2goVkopfX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFEPW51bGw7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBoZGEsaWRhLGtkYSxtZGEscUcsbmRhLHNHLHJHLHVHLHdHLHZHLHhHLHRHLG9kYSxwZGEsc2RhLEJHLHRkYSxBRyxyZGEscWRhLGpkYSxsZGE7aGRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5hRCxkPTA7Xy5hRD17c3U6KCk9PntkKys7Xy5yQygoKT0+e2EoITEpfSl9LEhyOigpPT57LS1kPT09MCYmXy5yQygoKT0+e2EoITApfSl9fTt0cnl7cmV0dXJuIGIoKX1maW5hbGx5e18uYUQ9Y319O2lkYT1mdW5jdGlvbihhKXt2YXIgW2IsY109Xy5KKCEwLHZvaWQgMCwiYkt0TzZkIik7cmV0dXJuIGhkYShjLCgpPT57dmFyIGQ9Xy5mQyhhLmNoaWxkcmVuKCkpO3JldHVybiBfLksoXy5PLHtBOmIsdGhlbjooKT0+ZCxXOmEuZmFsbGJhY2t9KX0pfTsKXy5uRz1mdW5jdGlvbih7Y2hpbGRyZW46YSxFZjpiLGNhbGxiYWNrczpjfSl7dmFyIGQ9bmV3IE1hcDtiPWI/P1tdO2ZvcihsZXQgZSBvZiBiKWQuc2V0KGUuaWQuQ2IudG9rZW4sZSk7Yz1jPz9bXTtmb3IobGV0IGUgb2YgYylkLnNldChlLmlkLkNiLnRva2VuLGUpO2Q9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKGpkYSkse2RlYnVnTmFtZToiW2NvbnRleHRPd25lcl0iLGVudHJpZXM6ZH0pO18uQnUoZCk7ZD1fLiR0KGQpO3RyeXtsZXQgZT1fLmZDKGEpO3JldHVybiBfLksoXy5JQixudWxsLGUpfWZpbmFsbHl7Xy4kdChkKX19O18ub0c9ZnVuY3Rpb24oYSxiKXtyZXR1cm57W18uZ2RhXTohMCxpZDphLHZhbHVlOmJ9fTtrZGE9ZnVuY3Rpb24oe1NnOmF9KXtyZXR1cm4gXy5LKF8uSUIsbnVsbCxhKCkpfTtfLnBHPWZ1bmN0aW9uKGEsYil7YT17Li4uYSxwYXJlbnQ6Xy5tRygpfTtyZXR1cm4gXy5LKF8ubkcse0VmOltfLm9HKF8ubEcsYSldfSxfLksoa2RhLHtTZzpifSkpfTsKbWRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBsZGEoYSxiKX07cUc9ZnVuY3Rpb24oYSxiKXt0aGlzLm89e307dGhpcy5qPVtdO3RoaXMuQWU9dGhpcy5zaXplPTA7dmFyIGM9YXJndW1lbnRzLmxlbmd0aDtpZihjPjEpe2lmKGMlMil0aHJvdyBFcnJvcigiYmQiKTtmb3IodmFyIGQ9MDtkPGM7ZCs9Mil0aGlzLnNldChhcmd1bWVudHNbZF0sYXJndW1lbnRzW2QrMV0pfWVsc2UgaWYoYSlpZihhIGluc3RhbmNlb2YgcUcpZm9yKGM9YS5yZCgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl0aGlzLnNldChjW2RdLGEuZ2V0KGNbZF0pKTtlbHNlIGZvcihkIGluIGEpdGhpcy5zZXQoZCxhW2RdKX07bmRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1ifTsKc0c9ZnVuY3Rpb24oYSl7aWYoYS5zaXplIT1hLmoubGVuZ3RoKXtmb3IodmFyIGI9MCxjPTA7YjxhLmoubGVuZ3RoOyl7dmFyIGQ9YS5qW2JdO3JHKGEubyxkKSYmKGEualtjKytdPWQpO2IrK31hLmoubGVuZ3RoPWN9aWYoYS5zaXplIT1hLmoubGVuZ3RoKXtiPXt9O2ZvcihkPWM9MDtjPGEuai5sZW5ndGg7KXtsZXQgZT1hLmpbY107ckcoYixlKXx8KGEualtkKytdPWUsYltlXT0xKTtjKyt9YS5qLmxlbmd0aD1kfX07ckc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9O3VHPWZ1bmN0aW9uKCl7dGhpcy5vPW5ldyBxRzt0aGlzLmo9bmV3IHRHKCIiKTt0aGlzLmoubmV4dD10aGlzLmouVWE9dGhpcy5qfTt3Rz1mdW5jdGlvbihhLGIpe2lmKGI9YS5vLmdldChiKSliLnJlbW92ZSgpLHZHKGEsYik7cmV0dXJuIGJ9Owp2Rz1mdW5jdGlvbihhLGIpe2IubmV4dD1hLmoubmV4dDtiLlVhPWEuajthLmoubmV4dD1iO2ZvcihiLm5leHQuVWE9YjthLm8uc2l6ZT4xMDA7KWEucmVtb3ZlTm9kZShhLmouVWEpfTt4Rz1mdW5jdGlvbihhLGIpe2EuaiE9YiYmYS5yZW1vdmVOb2RlKGIpO3JldHVybiBiLnZhbHVlfTt0Rz1mdW5jdGlvbihhLGIpe3RoaXMua2V5PWE7dGhpcy52YWx1ZT1ifTtvZGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9eUc7aWYoYT09bnVsbHx8IWMuRWcpcmV0dXJuIGI7ZS5qLmdldChhKT09PXZvaWQgMCYmZS5qLnNldChhLFtiLGQ/P1tdLCExXSk7Yz1lLmouZ2V0KGEpO2lmKCFjKXJldHVybiBiO3ZhciBbZixoLGtdPWM7aWYoaD8ubGVuZ3RoJiZkPy5sZW5ndGgmJmQuc29tZSgobCxtKT0+bCE9PWhbbV0pKXJldHVybiBlLmoucmVtb3ZlKGEpLGI7ZD8ubGVuZ3RoJiZlLmouc2V0KGEsW2YsZCxrXSk7cmV0dXJuIGs/ZjpifTsKXy56Rz1mdW5jdGlvbihhLGI9e0VnOiEwfSl7cmV0dXJue01nOmZ1bmN0aW9uKGMsZCl7dmFyIGU9Xy5OKCgpPT5hKGMoKSksdm9pZCAwLCJHbXJibGIiKSxbZixoXT1fLkFDKCgpPT57dmFyIGs9YygpLGw9ZSgpLG09ZD8ubWFwKG49Pm4oKSk/P1tdO3JldHVybiBvZGEobCxrLGIsbSl9KTtfLm5FKCgpPT57dmFyIGs9ZSgpO2shPW51bGwmJihrPXlHLnJlZ2lzdGVyKGssW2YsaF0sKCk9PmQ/Lm1hcChsPT5sKCkpPz9bXSksXy5ZdShrKSl9LCJVbWFjNmMiKTtyZXR1cm5bZixmdW5jdGlvbihrKXtoKGspO3ZhciBsPWUoKTtsIT1udWxsJiZ5Ry51cGRhdGUobCwoKT0+ayxiKX1dfSxnZXREYXRhOmZ1bmN0aW9uKGMpe2M9YShjKTtyZXR1cm4geUcuZ2V0KGMsYil9LGdrOmZ1bmN0aW9uKGMsZCl7Yz1hKGMpO3JldHVybiB5Ry51cGRhdGUoYyxkLGIpfX19OwpfLlc9ZnVuY3Rpb24oYSl7dmFyIHtkYXRhOmIsbWFwcGluZzpjLHdyYXBwZXI6ZCxySzplfT1wZGEoYSk7cWRhKGIsYyk7dmFyIGY9KCk9PkFHKF8uQnYoYikpLGg9KCk9Pnt2YXIgaz1BRyhfLkJ2KGIpKSxsPVtdO2ZvcihsZXQgbSBvZiBrKShrPUJHKG0pKSYmbC5wdXNoKGspO3JldHVybiBsfTtyZXR1cm4gYS5kYXRhP18uSyhpZGEse2ZhbGxiYWNrOmV9LCgpPT5fLksoXy5nRyx7cGE6aH0sKGssbCk9Pnt2YXIgbT1kP3A9PmQoKCk9PmNba10ocCxsKSxuLGwpOnA9PmNba10ocCxsKTttLmRlYnVnTmFtZXx8KG0uZGVidWdOYW1lPVN0cmluZyhrKSk7aWYoIWNbU3RyaW5nKGspXSlyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIik7bS5jb21wb25lbnRUeXBlIT09Xy5LdiYmcmRhKFN0cmluZyhrKSk7dmFyIG49c2RhKGYsayxsKTtyZXR1cm4gXy5LKG0se2RhdGE6bn0pfSkpOl8uSyhfLklCLG51bGwpfTsKcGRhPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0SWR8fHRkYShhLmNoaWxkcmVuKTtpZighYS5kYXRhfHwhYilyZXR1cm57Li4uYSxtYXBwaW5nOmEuY2hpbGRyZW59O3ZhciBjPWBzdGFtcGVyLSR7dWRhKyt9YCxkPSgpPT4odHlwZW9mIGEudGFyZ2V0SWQ9PT0iZnVuY3Rpb24iP2EudGFyZ2V0SWQoYyk6YS50YXJnZXRJZCk/P2M7W2JdPXZkYSgoKT0+e3ZhciBmPVsuLi5BRyhhLmRhdGEoKSldO2YudGFyZ2V0SWQ9ZDtyZXR1cm4gZn0pO3ZhciBlPXsuLi4oXy55KCkucmVzb2x2ZShfLkluKHdkYSkpfHx7fSkuQUssLi4uYS5jaGlsZHJlbn07aWYoYS5Kcil7bGV0IGY9ZS5ub3RpZmljYXRpb25UZXh0UmVuZGVyZXIsaD1lLm5vdGlmaWNhdGlvbk11bHRpQWN0aW9uUmVuZGVyZXI7ZiYmKGUubm90aWZpY2F0aW9uVGV4dFJlbmRlcmVyPSh7ZGF0YTprfSxsKT0+YS5KcihmKHtkYXRhOmt9LGwpKSk7aCYmKGUubm90aWZpY2F0aW9uTXVsdGlBY3Rpb25SZW5kZXJlcj0oe2RhdGE6a30sCmwpPT5hLkpyKGgoe2RhdGE6a30sbCkpKX1yZXR1cm57Li4uYSxkYXRhOmIsbWFwcGluZzplLHdyYXBwZXI6KGYsaCxrKT0+Xy5wRyh7dGFyZ2V0SWQ6ZCxZSzprfSxhLndyYXBwZXI/KCk9PmEud3JhcHBlcihmLGgsayk6Zil9fTtzZGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBfLk4oKCk9Pnt2YXIgZT1hKClbYygpXTtpZihlKWQ9ZVtiXTtlbHNlIHJldHVybiBfLklwKG5ldyBfLlhqKGBTdGFtcGVyIGZhaWxlZCB0byBmaW5kICR7U3RyaW5nKGIpfSBhdCBpbmRleCAke2MoKX0gb2YgZGF0YSBhcnJheSBvZiBsZW5ndGggJHthKCkubGVuZ3RofSAoYi8zNjU2NDMzNTkpLiBEaWQgeW91IGFjY2VzcyBhIHNpZ25hbCBhZnRlciBhIGNvbXBvbmVudCBoYXMgYmVlbiBjbGVhbmVkIHVwP2ApKSxkO3JldHVybiBlW2JdfSx2b2lkIDAsInNFcnRqZCIpfTsKQkc9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO2ZvcihsZXQgYyBpbiBhKWlmKCEoIWEpLmhhc093blByb3BlcnR5KGMpKXtiPWM7YnJlYWt9cmV0dXJuIGJ9O3RkYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMoYSkpaWYoeGRhLmluY2x1ZGVzKGIpfHx5ZGEuaW5jbHVkZXMoYil8fHpkYS5pbmNsdWRlcyhiKSlyZXR1cm4hMDtyZXR1cm4hMX07QUc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/QXJyYXkuaXNBcnJheShhKSYmYSBpbnN0YW5jZW9mIEFycmF5P2E6W2FdOltdfTtyZGE9ZnVuY3Rpb24oYSl7Xy54KCJ3ZWJfZW5hYmxlX3JlbmRlcmVyX2xvZ2dlciIpJiZfLnkoKS5yZXNvbHZlKF8uSW4oXy5DRykpPy53eShhKX07CnFkYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8ueSgpLnJlc29sdmUoXy5JbihBZGEpKTtjJiZfLm5FKCgpPT57dmFyIGQ9QUcoXy5CdihhKSksZT0wLGY9ITE7Zm9yKHZhciBoIG9mIGQpe2Q9QkcoaCk7aWYoIWR8fCFiW1N0cmluZyhkKV0pe2Y9ITA7YnJlYWt9ZSsrfWg9Yy5WSztkPWMuV0s7ZT4wJiYhZj9oLm8oZCgpKTpoLmooZCgpKX0sIkRoT1V4ZSIpfTtqZGE9e1JoKGEpe2lmKF8uZnUgaW4gYXx8Xy5mZGEgaW4gYSl7bGV0IGI9dGhpcy5lbnRyaWVzLmdldChhLkNiLnRva2VuKTtpZihiIT09dm9pZCAwKXJldHVybiBiLnZhbHVlfXJldHVybiB0aGlzLnBhcmVudD9fLmN1KHRoaXMucGFyZW50LGEpOl8uYXV9fTsKbGRhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWFbXy51LlN5bWJvbC5pdGVyYXRvcl0oKTt0aGlzLm89Yn1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfW5leHQoKXt2YXIgYT10aGlzLmoubmV4dCgpO3JldHVybnt2YWx1ZTphLmRvbmU/dm9pZCAwOnRoaXMuby5jYWxsKHZvaWQgMCxhLnZhbHVlKSxkb25lOmEuZG9uZX19fTtfLmc9cUcucHJvdG90eXBlO18uZy5NYz1mdW5jdGlvbigpe3NHKHRoaXMpO3ZhciBhPVtdO2ZvcihsZXQgYj0wO2I8dGhpcy5qLmxlbmd0aDtiKyspYS5wdXNoKHRoaXMub1t0aGlzLmpbYl1dKTtyZXR1cm4gYX07Xy5nLnJkPWZ1bmN0aW9uKCl7c0codGhpcyk7cmV0dXJuIHRoaXMuai5jb25jYXQoKX07Xy5nLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gckcodGhpcy5vLGEpfTtfLmcuZXF1YWxzPWZ1bmN0aW9uKGEsYil7aWYodGhpcz09PWEpcmV0dXJuITA7aWYodGhpcy5zaXplIT1hLnNpemUpcmV0dXJuITE7Yj1ifHxuZGE7c0codGhpcyk7dmFyIGM7Zm9yKGxldCBkPTA7Yz10aGlzLmpbZF07ZCsrKWlmKCFiKHRoaXMuZ2V0KGMpLGEuZ2V0KGMpKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5nLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplPT0wfTtfLmcuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLm89e307dGhpcy5BZT10aGlzLnNpemU9dGhpcy5qLmxlbmd0aD0wfTsKXy5nLnJlbW92ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kZWxldGUoYSl9O18uZy5kZWxldGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHJHKHRoaXMubyxhKT8oZGVsZXRlIHRoaXMub1thXSwtLXRoaXMuc2l6ZSx0aGlzLkFlKyssdGhpcy5qLmxlbmd0aD4yKnRoaXMuc2l6ZSYmc0codGhpcyksITApOiExfTtfLmcuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHJHKHRoaXMubyxhKT90aGlzLm9bYV06Yn07Xy5nLnNldD1mdW5jdGlvbihhLGIpe3JHKHRoaXMubyxhKXx8KHRoaXMuc2l6ZSs9MSx0aGlzLmoucHVzaChhKSx0aGlzLkFlKyspO3RoaXMub1thXT1ifTtfLmcuZm9yRWFjaD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucmQoKTtmb3IobGV0IGQ9MDtkPGMubGVuZ3RoO2QrKyl7bGV0IGU9Y1tkXSxmPXRoaXMuZ2V0KGUpO2EuY2FsbChiLGYsZSx0aGlzKX19O18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgcUcodGhpcyl9O18uZy5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIF8uc2godGhpcy5iZCghMCkpLmooKX07Cl8uZy52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5zaCh0aGlzLmJkKCExKSkuaigpfTtfLmcuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIG1kYSh0aGlzLmtleXMoKSxmdW5jdGlvbihiKXtyZXR1cm5bYixhLmdldChiKV19KX07Xy5nLmJkPWZ1bmN0aW9uKGEpe3NHKHRoaXMpO3ZhciBiPTAsYz10aGlzLkFlLGQ9dGhpcyxlPW5ldyBfLm9oO2UubmV4dD1mdW5jdGlvbigpe2lmKGMhPWQuQWUpdGhyb3cgRXJyb3IoImNkIik7aWYoYj49ZC5qLmxlbmd0aClyZXR1cm4gXy5hczt2YXIgZj1kLmpbYisrXTtyZXR1cm57dmFsdWU6YT9mOmQub1tmXSxkb25lOiExfX07cmV0dXJuIGV9O18uZz11Ry5wcm90b3R5cGU7Xy5nLmdldD1mdW5jdGlvbihhLGIpe3JldHVybihhPXdHKHRoaXMsYSkpP2EudmFsdWU6Yn07Xy5nLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXdHKHRoaXMsYSk7Yz9jLnZhbHVlPWI6KGM9bmV3IHRHKGEsYiksdGhpcy5vLnNldChhLGMpLHZHKHRoaXMsYykpfTtfLmcudWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qLm5leHQudmFsdWV9O18uZy5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB4Ryh0aGlzLHRoaXMuai5uZXh0KX07Xy5nLnBvcD1mdW5jdGlvbigpe3JldHVybiB4Ryh0aGlzLHRoaXMuai5VYSl9O18uZy5yZW1vdmU9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9dGhpcy5vLmdldChhKSk/KHRoaXMucmVtb3ZlTm9kZShhKSwhMCk6ITF9O18uZy5yZW1vdmVOb2RlPWZ1bmN0aW9uKGEpe2EucmVtb3ZlKCk7dGhpcy5vLnJlbW92ZShhLmtleSl9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuby5pc0VtcHR5KCl9OwpfLmcucmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYn0pfTtfLmcuTWM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGF9KX07Xy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGI9PWF9KX07Xy5nLmNsZWFyPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLm8uc2l6ZT4wOyl0aGlzLnJlbW92ZU5vZGUodGhpcy5qLlVhKX07Xy5nLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGM9dGhpcy5qLm5leHQ7YyE9dGhpcy5qO2M9Yy5uZXh0KWEuY2FsbChiLGMudmFsdWUsYy5rZXksdGhpcyl9O18uZy5tYXA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9dGhpcy5qLm5leHQ7ZCE9dGhpcy5qO2Q9ZC5uZXh0KWMucHVzaChhLmNhbGwoYixkLnZhbHVlLGQua2V5LHRoaXMpKTtyZXR1cm4gY307Cl8uZy5zb21lPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPXRoaXMuai5uZXh0O2MhPXRoaXMuajtjPWMubmV4dClpZihhLmNhbGwoYixjLnZhbHVlLGMua2V5LHRoaXMpKXJldHVybiEwO3JldHVybiExfTtfLmcuZXZlcnk9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGM9dGhpcy5qLm5leHQ7YyE9dGhpcy5qO2M9Yy5uZXh0KWlmKCFhLmNhbGwoYixjLnZhbHVlLGMua2V5LHRoaXMpKXJldHVybiExO3JldHVybiEwfTt0Ry5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5VYS5uZXh0PXRoaXMubmV4dDt0aGlzLm5leHQuVWE9dGhpcy5VYTtkZWxldGUgdGhpcy5VYTtkZWxldGUgdGhpcy5uZXh0fTt2YXIgeUc9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vPW5ldyBNYXA7dGhpcy52PW5ldyBNYXA7dGhpcy5qPW5ldyB1R31nZXQoYSxiKXt2YXIgYz10aGlzLm8uZ2V0KGEpO2lmKGMpcmV0dXJuIGNbMF0oKTtpZihiLkVnJiZhIT1udWxsKXJldHVybiB0aGlzLmouZ2V0KGEpPy5bMF19dXBkYXRlKGEsYixjKXt2YXIgZD10aGlzLm8uZ2V0KGEpO2lmKGQpe2xldCBbZSxmXT1kO2I9YihlKCkpO2YoYik7Yy5FZyYmYSE9bnVsbCYmKGM9dGhpcy52LmdldChhKSx0aGlzLmouc2V0KGEsW2IsYz8uKCk/P1tdLCEwXSkpO3JldHVybiEwfWlmKGMuRWcmJmEhPW51bGwmJihjPXRoaXMuai5nZXQoYSkpKXtsZXQgW2UsZl09YztiPWIoZSk7dGhpcy5qLnNldChhLFtiLGYsITBdKTtyZXR1cm4hMH1yZXR1cm4hMX1yZWdpc3RlcihhLGIsYyl7aWYoYT09bnVsbClyZXR1cm4oKT0+e307dGhpcy5vLnNldChhLGIpO2MmJnRoaXMudi5zZXQoYSxjKTtyZXR1cm4oKT0+e3RoaXMuby5nZXQoYSk9PT0KYiYmKHRoaXMuby5kZWxldGUoYSksdGhpcy52LmRlbGV0ZShhKSl9fX07Xy5DRz1uZXcgXy5WcygiUkVOREVSRVJfTE9HR0VSX1RPS0VOIik7dmFyIHdkYT1uZXcgXy5WcygiUkVOREVSRVJfU1RBTVBFUl9PUFRJT05TX1RPS0VOIik7dmFyIEFkYT1uZXcgXy5WcygiUkVOREVSRVJfU1RBTVBFUl9TVUNDRVNTX1NMSV9UT0tFTiIpO3ZhciB4ZGE9ImNvbXBhY3RSYWRpb1JlbmRlcmVyIGNvbXBhY3RQbGF5bGlzdFJlbmRlcmVyIHBsYXlsaXN0VmlkZW9SZW5kZXJlciBjb21wYWN0VmlkZW9SZW5kZXJlciBmZWVkTnVkZ2VSZW5kZXJlciBncmlkVmlkZW9SZW5kZXJlciBwcmltZXRpbWVQcm9tb1JlbmRlcmVyIHJhZGlvUmVuZGVyZXIgcHJpbWV0aW1lUHJvbW9SZW5kZXJlciByZWVsSXRlbVJlbmRlcmVyIHJlZWxTaGVsZlJlbmRlcmVyIHJpY2hTaGVsZlJlbmRlcmVyIHNlYXJjaEhpc3RvcnlRdWVyeVJlbmRlcmVyIHNoZWxmUmVuZGVyZXIgdmlkZW9XaXRoQ29udGV4dFJlbmRlcmVyIHZpZGVvQ2FyZFJlbmRlcmVyIHN0YXRlbWVudEJhbm5lclJlbmRlcmVyIG1pbmlHYW1lQ2FyZFZpZXdNb2RlbCBzaG9ydHNMb2NrdXBWaWV3TW9kZWwgbG9ja3VwVmlld01vZGVsIGdyaWRTaGVsZlZpZXdNb2RlbCIuc3BsaXQoIiAiKSx6ZGE9WyJub3RpZmljYXRpb25UZXh0UmVuZGVyZXIiLCJub3RpZmljYXRpb25NdWx0aUFjdGlvblJlbmRlcmVyIl0sCnlkYT0icHJpbWV0aW1lUHJvbW9SZW5kZXJlciBzdGF0ZW1lbnRCYW5uZXJSZW5kZXJlciBicmFuZFZpZGVvU2hlbGZSZW5kZXJlciBicmFuZFZpZGVvU2luZ2xldG9uUmVuZGVyZXIgZmVlZE51ZGdlUmVuZGVyZXIgcGxheWxpc3RWaWRlb1JlbmRlcmVyIi5zcGxpdCgiICIpLHtNZzp2ZGF9PV8uekcoYT0+Xy5CdihhPy50YXJnZXRJZCkpO3ZhciB1ZGE9MDtfLlcuZGVidWdOYW1lPSJFakpiQ2UiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgVmJhO1ZiYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChhLGIsdm9pZCAwKX07Xy5ORD1mdW5jdGlvbihhKXthPVsoYSYxNjcxMTY4MCk+Pj4xNiwoYSY2NTI4MCk+Pj44LGEmMjU1LChhJjQyNzgxOTAwODApPj4+MjRdO2lmKCFWYmEoYSxiPT5iPT09KGImMjU1KSkpdGhyb3cgRXJyb3IoIlJjYCIrYS5qb2luKCIsIikpO3JldHVybmByZ2JhKCR7YVswXX0sJHthWzFdfSwke2FbMl19LCR7KGFbM10vMjU1KS50b0ZpeGVkKDMpfSlgfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rQT1mdW5jdGlvbih7dHlwZTphLHBheWxvYWQ6Yn0pe2E9e3R5cGU6YX07YiE9PXZvaWQgMCYmKGEucGF5bG9hZD1iKTtyZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgMjAxNS1wcmVzZW50IERhbiBBYnJhbW92CiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiovCl8ubEE9KCk9Pk1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgiIikuam9pbigiLiIpO18ubUE9YEBAcmVkdXgvSU5JVCR7Xy5sQSgpfWA7Xy5SYWE9YEBAcmVkdXgvUkVQTEFDRSR7Xy5sQSgpfWA7Xy5uQT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9BPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5rQSh7dHlwZToiUkVQTEFDRV9FTlRJVFkiLHBheWxvYWQ6e3hsOmMsZW50aXR5VHlwZTphLGtleTpifX0pfTtfLnBBPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5rQSh7dHlwZToiVVBEQVRFX0VOVElUWSIscGF5bG9hZDp7eGw6YyxlbnRpdHlUeXBlOmEsa2V5OmIsSXk6dm9pZCAwfX0pfTtfLnFBPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYVtiXT9hW2JdW2NdfHxudWxsOm51bGx9OygoKT0+e3ZhciBhPWQ9Pm5ldyBVaW50OEFycmF5KGQpLGI9ZD0+e3ZhciBlPW5ldyBVaW50OEFycmF5KGQubGVuZ3RoKTtmb3IobGV0IGY9MDtmPGQubGVuZ3RoO2YrKyllW2ZdPWRbZl07cmV0dXJuIGV9LGM9bmV3IFVpbnQ4QXJyYXkoWzFdKTtyZXR1cm4gYy5sZW5ndGg9PT0xJiZjWzBdPT09MT9hOmJ9KSgpO18uckE9QXJyYXkoMTAyNCk7Xy5zQT10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXI6dm9pZCAwO18udEE9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOnZvaWQgMDtfLnVBPXthbmltYXRpb25FbnRpdHk6MzAyLGFjY291bnRMaW5rU3RhdHVzRW50aXR5OjEyMixhc2tTdHVkaW9HZW5lcmF0ZWREYXRhRW50aXR5OjYzMCxib29sZWFuRW50aXR5OjMwNyxhc2tTdHVkaW9Db252ZXJzYXRpb25TdW1tYXJ5RW50aXR5OjYzNyxidXR0b25FbnRpdHk6MzU4LGNhcHRpb25UcmFjazoyMjUsY2hhbm5lbEhhbmRsZToyNzUsY2hpcEVudGl0eTo0OTgsY29tbWVyY2VBY3F1aXNpdGlvbkNsaWVudFBheWxvYWRFbnRpdHk6Mjc2LGNvbW1lcmNlQ2FydExpc3RFbnRpdHk6MjM2LGNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5OjUzMixjb21wb3NpdGVTb3VyY2VFbnRpdHk6NTk0LGNvbnRleHROb3RlRmVlZEVudGl0eVBheWxvYWQ6NDgzLGNvbnRleHROb3RlVXNlclJhdGluZ0VudGl0eVBheWxvYWQ6NTc2LGNvbnRpbnVhdGlvblRva2VuRW50aXR5OjQwNixkb3dubG9hZFF1YWxpdHlQaWNrZXJFbnRpdHk6MjAyLGRvd25sb2Fkc1BhZ2VSZWZyZXNoVG9rZW5FbnRpdHk6Mjk5LApkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHk6MjY0LGRvd25sb2FkU3RhdHVzRW50aXR5OjE0MSxkaXNtaXNzU3RhdGU6NTQwLHNmdkF1ZGlvSXRlbUN1cnJlbnRseVBsYXlpbmdFbnRpdHk6MTg2LGVtb2ppRm91bnRhaW5EYXRhRW50aXR5OjM5MyxlbW9qaUN1c3RvbWl6YXRpb25TZXRFbnRpdHk6NDk2LGZha2VDaGFubmVsOjIsZmFrZVBsYXlsaXN0OjI3OSxmYWtlUGxheWxpc3RFbnRyeUNvbGxlY3Rpb246MjgwLGZha2VWaWRlbzoxODIsZmFrZVZpZGVvRGVzY3JpcHRpb246Mjc4LGZlYXR1cmVkUHJvZHVjdHNFbnRpdHk6MzkyLHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTo1OTgsZmxvd1N0YXRlRW50aXR5OjI1MixpY29uQmFkZ2VFbnRpdHk6MjI5LGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6NDQzLGxpa2VCdXR0b25BbmltYXRpb25FbnRpdHk6NTY3LGxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OjIxNyxsaXZlVmlld2VyTGVhZGVyYm9hcmRDaGF0RW50cnlQb2ludFN0YXRlRW50aXR5OjU2MywKbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OjU2NCxsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTo1MDMsbG9nb0VudGl0eToyNDUsbWFjcm9NYXJrZXJFbnRpdHk6MzI5LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OjE1OCxtYWluRG93bmxvYWRzTGlzdEVudGl0eToxNjQsbWFpblBsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTozNzMsbWFpblBsYXlsaXN0RW50aXR5OjMwNixtYWluUGxheWxpc3RWaWRlb0VudGl0eTozNjgsbWFpblZpZGVvRG93bmxvYWRTdGF0ZUVudGl0eToyNjIsbWFpblZpZGVvRW50aXR5OjI2MSxtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eToxOTYsbWFya2Vyc1Zpc2liaWxpdHlPdmVycmlkZUVudGl0eTozMTIsbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6MTgsbXVzaWNBbGJ1bVJlbGVhc2VEb3dubG9hZE1ldGFkYXRhRW50aXR5OjI1OSxtdXNpY0FsYnVtUmVsZWFzZToxNyxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6MTksbXVzaWNBcnRpc3REZXRhaWw6MjEsCm11c2ljQXJ0aXN0OjIwLG11c2ljQXJ0aXN0VXNlckRldGFpbDoyMixtdXNpY0Rvd25sb2Fkc0xpYnJhcnlFbnRpdHk6MjU3LG11c2ljTGlicmFyeUVkaXQ6MTIxLG11c2ljTGlicmFyeVN0YXR1c0VudGl0eTozMTgsbXVzaWNQbGF5bGlzdDoyNCxtdXNpY1BsYXlsaXN0RG93bmxvYWRNZXRhZGF0YUVudGl0eToyNDgsbXVzaWNTaGFyZToxMDAsbXVzaWNUcmFja0RldGFpbDoyOSxtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eToyMzQsbXVzaWNUcmFjazoyOCxtdXNpY1RyYWNrVXNlckRldGFpbDozMCxvZmZsaW5lT3JjaGVzdHJhdGlvbkFjdGlvbldyYXBwZXJFbnRpdHk6MTY5LG9mZmxpbmVWaWRlb1BvbGljeToxMzAsb2ZmbGluZVZpZGVvU3RyZWFtczoxOTgsb2ZmbGluZWFiaWxpdHlFbnRpdHk6MjQ2LG9yY2hlc3RyYXRpb25XZWJTYW1wbGluZ0VudGl0eToyNDIscGFnZUhlYWRlckVudGl0eTo0OTUscGFydHlHYW1lUGFuZWxFbnRpdHk6NjE4LHNsaWRlckdhbWVQYW5lbEVudGl0eTo2MzMsCnBkcFN0YXRlRW50aXR5OjUyNCxwaW5uZWRQcm9kdWN0RW50aXR5OjI3MyxwbGF5YmFja0RhdGE6MTE5LHBsYXllclN0YXRlRW50aXR5OjMyMyxwbGF5bGlzdFRodW1ibmFpbEVkaXRzRW50aXR5OjUzOSxxdWFudGl0eUluY3JlbWVudGVyRW50aXR5OjM1NixyZWZyZXNoOjE0OCxzYXZlVG9QbGF5bGlzdExpc3RFbnRpdHk6MjMxLHNlbGVjdGVkQ2hpcEluZGV4RW50aXR5UGF5bG9hZDo0Nzksc2VsZWN0aW9uVmFsdWVMaXN0RW50aXR5OjYzNCxzZXR0aW5nRW50aXR5OjI5NyxzdHJpbmdFbnRpdHk6MzgyLHN1Z2dlc3RlZEZlZWRiYWNrQ2hpcFN0YXRlRW50aXR5OjQ4NSx0cmFuc2ZlcjoxMjAsdHJlbmRpbmdPZmZlckVudGl0eTo0NjksdW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHk6NjM1LHZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5OjQ2MSx2aWRlb092ZXJ2aWV3QXN5bmNEYXRhRW50aXR5OjU0NSx2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHk6NzYsdm90aW5nRW50aXR5OjU2MSwKeXRNYWluQ2hhbm5lbEVudGl0eToxNTIseW91Y2hhdFBlbmRpbmdSZXNwb25zZUVudGl0eTo1NTMseXRNYWluRG93bmxvYWRlZFZpZGVvRW50aXR5OjE1NSx5dE1haW5WaWRlb0VudGl0eToxNTF9O18udkE9e307Zm9yKGxldCBbYSxiXW9mIE9iamVjdC5lbnRyaWVzKF8udUEpKXtsZXQgYz1hLGQ9YjtkJiYoXy52QVtkXT1jKX07KCgpPT57dmFyIGE9ZD0+bmV3IFVpbnQ4QXJyYXkoZCksYj1kPT57dmFyIGU9bmV3IFVpbnQ4QXJyYXkoZC5sZW5ndGgpO2ZvcihsZXQgZj0wO2Y8ZC5sZW5ndGg7ZisrKWVbZl09ZFtmXTtyZXR1cm4gZX0sYz1uZXcgVWludDhBcnJheShbMV0pO3JldHVybiBjLmxlbmd0aD09PTEmJmNbMF09PT0xP2E6Yn0pKCk7Xy5TYWE9Xy4kbCgieXQtaWRiLXByZWYtc3RvcmFnZSIse3NlOntwcmVmczp7UGQ6MX19LHNoYXJlZDohMSx1cGdyYWRlKGEsYil7YigxKSYmXy5vbChfLmtsKGEsInByZWZzIix7a2V5UGF0aDoia2V5In0pLCJieUV4cGlyYXRpb24iLCJleHBpcmF0aW9uVGltZXN0YW1wTXMiKX0sdmVyc2lvbjoxfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBqRTtfLmlFPWZ1bmN0aW9uKGEsYil7YT1bKGEmMTY3MTE2ODApPj4+MTYsKGEmNjUyODApPj4+OCxhJjI1NV07cmV0dXJuYHJnYmEoJHthWzBdfSwgJHthWzFdfSwgJHthWzJdfSwgJHtifSlgfTtfLmtFPWZ1bmN0aW9uKGEpe2lmKGEuc291cmNlcylmb3IobGV0IGIgb2YgYS5zb3VyY2VzKWlmKGIuY2xpZW50UmVzb3VyY2U/LmltYWdlTmFtZXx8Yi5jdXN0b21JbWFnZVNvdXJjZSYmXy5CKGIuY3VzdG9tSW1hZ2VTb3VyY2UsakUpPy5jbGllbnRSZXNvdXJjZT8uaWNvbilyZXR1cm4gYn07Cl8ubEU9ZnVuY3Rpb24oYSl7aWYoYT8uY2xpZW50UmVzb3VyY2U/LmltYWdlTmFtZSl7bGV0IGI9YS5jbGllbnRSZXNvdXJjZT8uaW1hZ2VOYW1lO2E6e3N3aXRjaChiKXtjYXNlICJ5dF9wcmVtaXVtX3dvcmRtYXJrX2hlYWRlcl9saWdodCI6Y2FzZSAieXRfcHJlbWl1bV93b3JkbWFya19oZWFkZXJfZGFyayI6YT0iWU9VVFVCRV9QUkVNSVVNX0xPR09fU0hPUlQiO2JyZWFrIGE7Y2FzZSAieXRfd29yZG1hcmtfaGVhZGVyX2xpZ2h0IjpjYXNlICJ5dF93b3JkbWFya19oZWFkZXJfZGFyayI6YT0iTE9HT19XSVRIX1RFWFQiO2JyZWFrIGF9YT12b2lkIDB9cmV0dXJuIGF8fGdjYS5nZXQoYil8fGJ9aWYoYT8uY3VzdG9tSW1hZ2VTb3VyY2UmJihhPV8uQihhLmN1c3RvbUltYWdlU291cmNlLGpFKT8uY2xpZW50UmVzb3VyY2U/Lmljb24pKXJldHVybiBhfTtqRT1uZXcgXy5JKCJ5b3V0dWJlSWNvblNvdXJjZSIpO18ubUU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGdjYT1uZXcgTWFwKFtbInl0X291dGxpbmVfYmFnX2JsYWNrXzI0IiwiYmFnIl1dKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5LRD1mdW5jdGlvbihhKXtpZihhPWEubWF0Y2goVWJhKSlyZXR1cm57aWNvbk5hbWU6YVsyXSxoeDphWzFdLnRvVXBwZXJDYXNlKCk9PT0iRklMTCIsaWNvblNpemU6TnVtYmVyKGFbM10pfX07Xy5MRD1uZXcgXy5WcygiSUNPTl9XSVpfQ09NUE9ORU5UX1RPS0VOIik7dmFyIFViYTtVYmE9L15ZVElDT05fKGZpbGx8b3V0bGluZSlfKFthLXpBLVowLTlfXSspX3MoWzAtOV0rKSQvaTsKXy5NRD1fLkwoKHtpY29uOmEsYWN0aXZlOmIsY2xhc3NOYW1lOmMsc3R5bGU6ZCx5cDplLGhjOmYscm9sZTpoLEdlOmssSGM6bCxhcmlhSGlkZGVuOm0sYXJpYUV4cGFuZGVkOm4sYXJpYUxhYmVsOnAsdGFiaW5kZXg6cixpZDp0LHNpemU6dixhZzp6LFpwOkUsZXI6QSx0aXRsZTpGfSk9Pnt2YXIgQz1fLk4oKCk9Pnt2YXIgUj1hPy4oKTtpZihSKXJldHVybiBfLktEKFIpfSx2b2lkIDAsIk0waTV2ZiIpLEc9KCk9PkMoKT8uaWNvbk5hbWU/P2E/LigpLEQ9KCk9PnY/LigpPz9DKCk/Lmljb25TaXplLEg9KCk9PmI/LigpPz9DKCk/Lmh4O3JldHVybiBfLksoXy5PLHtBOmEsdGhlbjooKT0+e3ZhciBSPV8ueSgpLnJlc29sdmUoXy5MRCk7cmV0dXJuIF8uSyhSLHtpY29uOkcseXA6ZSxoYzpmLEdlOmssSGM6bCxhcmlhRXhwYW5kZWQ6bix0YWJpbmRleDpyLGlkOnQsYWN0aXZlOkgsc2l6ZTpELHJvbGU6aCxjbGFzc05hbWU6YyxhcmlhSGlkZGVuOm0sYXJpYUxhYmVsOnAsc3R5bGU6KCk9Pgp7aWYoIUQoKSlyZXR1cm4gZD8uKCk7dmFyIE09YHdpZHRoOiAke0QoKX1weDsgaGVpZ2h0OiAke0QoKX1weDtgO3JldHVybiBkPy4oKT9gJHtNfSAke2QoKX1gOk19LHRpdGxlOkYsYWc6eixacDpFLGVyOkF9KX19KX0sImoiKTtfLk1ELmlkb21Db21wYXQ9e2NhbGxiYWNrczp7ZXI6ITB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEtFLExFLG1jYSxuY2EsTkUscGNhLHFjYSxyY2EsdWNhLHdjYSx2Y2EsWEUseGNhLHljYSxBY2EsemNhO18uSkU9ZnVuY3Rpb24oYSl7YSY9MTY3NzcyMTU7dmFyIGI9WyhhJjE2NzExNjgwKT4+MTYsKGEmNjUyODApPj44LGEmMjU1XTthPWJbMF07dmFyIGM9YlsxXTtiPWJbMl07YT1OdW1iZXIoYSk7Yz1OdW1iZXIoYyk7Yj1OdW1iZXIoYik7aWYoYSE9KGEmMjU1KXx8YyE9KGMmMjU1KXx8YiE9KGImMjU1KSl0aHJvdyBFcnJvcigiUWNgIithKyJgIitjKyJgIitiKTtjPWE8PDE2fGM8PDh8YjtyZXR1cm4gYTwxNj8iIyIrKDE2Nzc3MjE2fGMpLnRvU3RyaW5nKDE2KS5zbGljZSgxKToiIyIrYy50b1N0cmluZygxNil9O0tFPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvdXJjZXMhPT12b2lkIDB8fGEucHJvY2Vzc29yIT09dm9pZCAwfTsKTEU9ZnVuY3Rpb24oYSl7dmFyIGI9YS50aHVtYm5haWxzO2lmKGIpe2E9e3NvdXJjZXM6W119O2ZvcihsZXQgYyBvZiBiKWI9e30sYi51cmw9Yy51cmwsYi53aWR0aD1jLndpZHRoLGIuaGVpZ2h0PWMuaGVpZ2h0LGEuc291cmNlcy5wdXNoKGIpO3JldHVybiBhfX07bWNhPWZ1bmN0aW9uKGEsYixjKXtjPWM/W2NdOltdO2Eub3BhY2l0eSYmYy5wdXNoKGBvcGFjaXR5OiAke2Eub3BhY2l0eX07YCk7YiYmYS5wbGFjZWhvbGRlckNvbG9yPyhhPV8uTkQoYS5wbGFjZWhvbGRlckNvbG9yKSxjLnB1c2goYGJhY2tncm91bmQtY29sb3I6ICR7YX07YCkpOmMucHVzaCgiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Iik7cmV0dXJuIGMuam9pbigiICIpfTsKbmNhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9WyJ5dENvcmVJbWFnZUhvc3QiXTtiJiZmLnB1c2goYik7Y3x8Zi5wdXNoKCJ5dENvcmVJbWFnZUZpbGxQYXJlbnRIZWlnaHQiKTtkfHxmLnB1c2goInl0Q29yZUltYWdlRmlsbFBhcmVudFdpZHRoIik7c3dpdGNoKGEuY29udGVudE1vZGUpe2Nhc2UgIkNPTlRFTlRfTU9ERV9TQ0FMRV9BU1BFQ1RfRklUIjpmLnB1c2goInl0Q29yZUltYWdlQ29udGVudE1vZGVTY2FsZUFzcGVjdEZpdCIpO2JyZWFrO2Nhc2UgIkNPTlRFTlRfTU9ERV9TQ0FMRV9BU1BFQ1RfRklMTCI6Zi5wdXNoKCJ5dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaWxsIik7YnJlYWs7Y2FzZSAiQ09OVEVOVF9NT0RFX0NFTlRFUiI6Zi5wdXNoKCJ5dENvcmVJbWFnZUNvbnRlbnRNb2RlQ2VudGVyIik7YnJlYWs7ZGVmYXVsdDpmLnB1c2goInl0Q29yZUltYWdlQ29udGVudE1vZGVTY2FsZVRvRmlsbCIpfWEuZmxpcEZvclJ0bExheW91dCYmZi5wdXNoKCJ5dENvcmVJbWFnZUZsaXBSdGwiKTsKc3dpdGNoKGUpe2Nhc2UgIlRPUF9TVEFSVCI6Zi5wdXNoKGRvY3VtZW50LmJvZHk/LmdldEF0dHJpYnV0ZSgiZGlyIik9PT0icnRsIj8ieXRDb3JlSW1hZ2VPYmplY3RQb3NpdGlvblRvcFJpZ2h0IjoieXRDb3JlSW1hZ2VPYmplY3RQb3NpdGlvblRvcExlZnQiKX1yZXR1cm4gZi5qb2luKCIgIil9O18uTUU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKS5tYXRjaGVzfTtORT1mdW5jdGlvbihhKXt2YXIgYj17fTthPV8uQihhLnByb2Nlc3NvcixvY2EpO3ZhciBjPShjPWE/LmltYWdlVGludD8uY29sb3IpP18uTkQoYyk6dm9pZCAwO2MmJihiLmNvbG9yPWMpO2lmKGM9cGNhKGEpKWIubnk9YztpZihhPXFjYShhKSliLk56PWE7cmV0dXJuIGJ9OwpwY2E9ZnVuY3Rpb24oYSl7dmFyIGI9YT8ubGluZWFyR3JhZGllbnQ7aWYoYiYmYj8uY29sb3JzJiZiPy5jb2xvcnM/Lmxlbmd0aCE9PTApe3ZhciBjPWIuY29sb3JzLm1hcChlPT5fLk5EKGUpKTthPWIuYW5nbGUhPT12b2lkIDA/YCR7Yi5hbmdsZX1kZWcsIGA6IiI7dmFyIGQ9Yi5wb3NpdGlvbnM7aWYoIWR8fGQubGVuZ3RoIT09Yy5sZW5ndGgpcmV0dXJuYGxpbmVhci1ncmFkaWVudCgke2F9JHtjLmpvaW4oIiwgIil9KWA7Yj1jLm1hcCgoZSxmKT0+YCR7ZX0gJHtkW2ZdKjEwMH0lYCk7cmV0dXJuYGxpbmVhci1ncmFkaWVudCgke2F9JHtiLmpvaW4oIiwgIil9KWB9fTsKcWNhPWZ1bmN0aW9uKGEpe2lmKChhPWE/LnJhZGlhbEdyYWRpZW50KSYmYT8uY29sb3JzJiZhPy5jb2xvcnM/Lmxlbmd0aCE9PTApe3ZhciBiPWEuY29sb3JzLm1hcChrPT5fLk5EKGspKSxjPWEuY2VudGVyVW5pdD8/IkRJTUVOU0lPTl9VTklUX0ZSQUNUSU9OIixkPWM9PT0iRElNRU5TSU9OX1VOSVRfUE9JTlQiPyJweCI6IiUiLGU9Yz09PSJESU1FTlNJT05fVU5JVF9GUkFDVElPTiI/MTAwOjE7Yz1gJHsoYS5jZW50ZXJYPz8uNSkqZX0ke2R9YDtkPWAkeyhhLmNlbnRlclk/Py41KSplfSR7ZH1gO3ZhciBmPWEucmFkaXVzO2U9IiI7ZT1mIT09dm9pZCAwP2BjaXJjbGUgJHtmfXB4YDoiZWxsaXBzZSI7dmFyIGg9YS5wb3NpdGlvbnM7aWYoIWh8fGgubGVuZ3RoIT09Yi5sZW5ndGgpcmV0dXJuYHJhZGlhbC1ncmFkaWVudCgke2V9IGF0ICR7Y30gJHtkfSwgJHtiLmpvaW4oIiwgIil9KWA7YT1iLm1hcCgoayxsKT0+YCR7a30gJHtoW2xdKjEwMH0lYCk7cmV0dXJuYHJhZGlhbC1ncmFkaWVudCgke2V9IGF0ICR7Y30gJHtkfSwgJHthLmpvaW4oIiwgIil9KWB9fTsKXy5PRT1mdW5jdGlvbihhKXtfLmpmLkdhKCgpPT57dHJ5e2EoKX1jYXRjaChiKXtfLk90KGIpfX0sOCl9O3JjYT1mdW5jdGlvbihhKXt2YXIgYj0oMSthLm1hcmdpbikqKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodCk7YS5qPWEuai5maWx0ZXIoYz0+e3ZhciBkPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7KGQ9Yj5kLnRvcCYmISFkLmhlaWdodCkmJmEuQihjKTtyZXR1cm4hZCYmYy5wYXJlbnROb2RlfSk7YS52PSExfTtfLlBFPWZ1bmN0aW9uKGEpe2lmKCJtYXRjaE1lZGlhImluIHdpbmRvdylyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoYS5sYW5kc2NhcGUrIiwiK2EucG9ydHJhaXQpLm1hdGNoZXN9O18uVEU9ZnVuY3Rpb24oKXtpZihRRT09PXZvaWQgMCl7bGV0IGE9Xy5QRShzY2EpO1FFPWEhPT12b2lkIDA/YTpfLlJFPj05MzAmJlNFPj01NTB8fF8uUkU+PTU1MCYmU0U+PTkzMH1yZXR1cm4gUUV9Owp1Y2E9ZnVuY3Rpb24oYSxiKXthLkptPWI7dGNhLm9ic2VydmUoYSl9Owp3Y2E9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGspe3ZhciBsPU1hdGgucm91bmQoKDAsXy5lbCkoKS1kKTtVRT1NYXRoLm1heCgwLFVFLTEpO2w9e2R1cmF0aW9uTG9hZGluZ01zOmwsd2lkdGhQeDphLm5hdHVyYWxXaWR0aCxoZWlnaHRQeDphLm5hdHVyYWxIZWlnaHQsdmlld1dpZHRoUHg6YS5jbGllbnRXaWR0aCx2aWV3SGVpZ2h0UHg6YS5jbGllbnRIZWlnaHQsZmluaXNoZWRMb2FkaW5nOiEwLGlzTG9hZEVycm9yOmssbG9hZE51bWJlcjplLGNvbmN1cnJlbnRMb2FkczpVRX07YiYmYi5pbWFnZUNsYXNzaWZpY2F0aW9uVHlwZSE9bnVsbCYmKGwuaW1hZ2VDbGFzc2lmaWNhdGlvblR5cGU9Yi5pbWFnZUNsYXNzaWZpY2F0aW9uVHlwZSk7aWYoIWspdHJ5e2xldCBtPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoYS5zcmMpO2lmKG0mJm0ubGVuZ3RoPjApe2xldCBuPW1bbS5sZW5ndGgtMV07bi50cmFuc2ZlclNpemUmJihsLmRvd25sb2FkZWRCeXRlcz1uLnRyYW5zZmVyU2l6ZSl9fWNhdGNoKG0pe31fLkVwKCJ0aHVtYm5haWxMb2FkZWQiLApsKTtpZihrPVZFLmdldChhKSlhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGsub25Mb2FkKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixrLm9uRXJyb3IpO1ZFLmRlbGV0ZShhKX1pZihfLngoIndlYl9pbWFnZV9sb2FkX3RlbGVtZXRyeSIpKXt2Y2EoYSk7VUUrKztXRSsrO3ZhciBkPSgwLF8uZWwpKCksZT1XRSxmPSgpPT57YyghMSl9LGg9KCk9PntjKCEwKX07YS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmKTthLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixoKTtWRS5zZXQoYSx7b25Mb2FkOmYsb25FcnJvcjpofSl9fTt2Y2E9ZnVuY3Rpb24oYSl7dmFyIGI9VkUuZ2V0KGEpO2ImJihhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGIub25Mb2FkKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixiLm9uRXJyb3IpLFVFPU1hdGgubWF4KDAsVUUtMSksVkUuZGVsZXRlKGEpKX07ClhFPWZ1bmN0aW9uKGEsYixjKXtiJiZfLlR0KGEsYik7YyYmYS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW1hZ2UtdW5sb2FkZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfTt4Y2E9ZnVuY3Rpb24oYSxiLGMsZCxlPSEwKXtmdW5jdGlvbiBmKCl7dmFyIGg9YyhiLGEpO2gmJmEuZ2V0QXR0cmlidXRlKCJzcmMiKSE9PWgmJihoIT09YS5zcmMmJihhLnNyYz1oKSx3Y2EoYSxkKSxkJiZYRShhLGQudGosZC5CbSkpfWEucmVtb3ZlQXR0cmlidXRlKCJzcmMiKTtkJiZYRShhLGQudGosZC5CbSk7YiYmKGU/dWNhKGEsZik6ZigpKX07eWNhPWZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4hMTtiPWMoYixhKTtjPWEuZ2V0QXR0cmlidXRlKCJzcmMiKTtyZXR1cm4gYiYmYj09PWMmJmEuY29tcGxldGV9OwpBY2E9ZnVuY3Rpb24oYSxiLGM9ITEpe3ZhciBkPUtFKGEpP3suLi5hfTpMRShhKTtpZihkKXtkLmNvbnRlbnRNb2RlPWQuY29udGVudE1vZGU/P2IuY29udGVudE1vZGU7dmFyIGU9Yi5vbkxvYWQ7Yi5vbkxvYWQ9bD0+e3ZhciBtPWwudGFyZ2V0O2MmJm0ubmF0dXJhbFdpZHRoPT09MTIwfHxfLlN0KG0sInl0Q29yZUltYWdlTG9hZGVkIik7Yi5zZyYmbS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW1hZ2UtbG9hZGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKTtlPy4obCl9O2IuQWImJmIuVGEmJihiLndpZHRoPWIuQWIpO2IuZGMmJmIuWWEmJihiLmhlaWdodD1iLmRjKTt2YXIgZj1fLmtFKGQpLGg9ZiYmXy5sRShmKSxrPU5FKGQpO2lmKGgpe2E9Zi5jbGllbnRSZXNvdXJjZT8uaW1hZ2VDb2xvcj9fLk5EKGYuY2xpZW50UmVzb3VyY2UuaW1hZ2VDb2xvcik6dm9pZCAwO2lmKGs9YXx8ay5jb2xvciliLnN0eWxlPWIuc3R5bGU/Yi5zdHlsZS5lbmRzV2l0aCgiOyIpP2Iuc3R5bGUrCmAgY29sb3I6ICR7a307YDpiLnN0eWxlK2A7IGNvbG9yOiAke2t9O2A6YGNvbG9yOiAke2t9O2A7cmV0dXJue3R5cGU6Imljb24iLGljb25OYW1lOmgsY29uZmlnOnsuLi5iLC4uLihiLmFsdD97fTp7YXJpYUhpZGRlbjoidHJ1ZSJ9KSxhcmlhTGFiZWw6Yi5hbHQscm9sZToiaW1nIn19fUtFKGEpfHwoYi5hbHQ9YS5hY2Nlc3NpYmlsaXR5JiZhLmFjY2Vzc2liaWxpdHkuYWNjZXNzaWJpbGl0eURhdGEmJmEuYWNjZXNzaWJpbGl0eS5hY2Nlc3NpYmlsaXR5RGF0YS5sYWJlbHx8Yi5hbHQsYi5zdHlsZT1tY2EoYSxiLldyLGIuc3R5bGUpLGIuaXNQcmVsb2FkZWQ9ISFfLkIoYSx6Y2EpPy5pc1ByZWxvYWRlZCk7Yi5jbGFzc05hbWU9bmNhKGQsYi5jbGFzc05hbWUsYi5ZYSxiLlRhLGIub2JqZWN0UG9zaXRpb24pO2IudGo9Inl0Q29yZUltYWdlTG9hZGVkIjtyZXR1cm57dHlwZToiaW1hZ2UiLGltYWdlOmQsY29uZmlnOmJ9fX07emNhPW5ldyBfLkkoIndlYlRodW1ibmFpbERldGFpbHNFeHRlbnNpb25EYXRhIik7dmFyIG9jYT1uZXcgXy5JKCJib3JkZXJJbWFnZVByb2Nlc3NvciIpO3ZhciBDY2E7W18uQmNhLENjYV09Xy5KKF8uTUUoKSx2b2lkIDAsIk8zWDJ3ZCIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCgpPT57Q2NhKF8uTUUoKSl9KTtfLmZGPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5tYXJnaW49YTt0aGlzLkI9Yjt0aGlzLmo9W107dGhpcy52PSExO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCgpPT57dGhpcy5vKCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCgpPT57dGhpcy5vKCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRldWkiLCgpPT57dGhpcy5vKCl9KTt2YXIgYz1uZXcgXy5XdCgoMCxfLkNhKSh0aGlzLm8sdGhpcyksMTAwKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2MudigpfSwhMCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKDAsXy5DYSkodGhpcy5vLHRoaXMpKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtbmF2aWdhdGVzdGFydCIsKCk9Pnt0aGlzLmo9W119KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtbmF2aWdhdGVlbmQiLCgwLF8uQ2EpKHRoaXMubyx0aGlzKSl9b2JzZXJ2ZShhKXt0aGlzLmouaW5jbHVkZXMoYSl8fAp0aGlzLmoucHVzaChhKX11bm9ic2VydmUoYSl7dGhpcy5qPXRoaXMuai5maWx0ZXIoYj0+YiE9PWEpfW8oKXt0aGlzLnZ8fChfLk9FKCgpPT57cmNhKHRoaXMpfSksdGhpcy52PSEwKX1kaXNjb25uZWN0KCl7dGhpcy5qPVtdfX07dmFyIHNjYSxRRSxTRTtzY2E9e2xhbmRzY2FwZToiKG1pbi13aWR0aDogOTMxcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiLHBvcnRyYWl0OiIobWluLXdpZHRoOiA1NTBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIn07UUU9dm9pZCAwO18uZ0Y9dm9pZCAwO18uUkU9d2luZG93LmlubmVyV2lkdGg7U0U9d2luZG93LmlubmVySGVpZ2h0O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCgpPT57Xy5nRj1RRT12b2lkIDB9KTt2YXIgdGNhPSJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3c/bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChhLGIpPT57YS5maWx0ZXIoYz0+Yy5pbnRlcnNlY3Rpb25SZWN0LmhlaWdodD4wKS5mb3JFYWNoKCh7dGFyZ2V0OmN9KT0+e2MuSm0/LigpO2IudW5vYnNlcnZlKGMpfSl9LHtyb290TWFyZ2luOiIxMCUiLHRocmVzaG9sZDouMDF9KTpfLlRFKCk/e29ic2VydmUoYSl7Xy5qZi5HYSgoKT0+e3RyeXthLkptPy4oKX1jYXRjaChiKXtfLk90KGIpfX0sOCl9LHVub2JzZXJ2ZSgpe319Om5ldyBfLmZGKC4xLGE9PntfLmpmLkdhKCgpPT57dHJ5e2EuSm0/LigpfWNhdGNoKGIpe18uT3QoYil9fSw4KX0pO3ZhciBWRT1uZXcgV2Vha01hcCxXRT0wLFVFPTA7Xy5oRj1fLkwoYT0+e3ZhciBiPSExLGM9Xy51RSgiaW1nIixkPT57Xy5ZdSgoKT0+e2I9ITA7ZC5vbmxvYWQ9bnVsbH0pfSk7Xy5uRSgoKT0+e3ZhciBkPWEuZGF0YT8uKCksZT1hLkdsPy4oKS5TZyxmPWEuY29uZmlnKCksaD1jLnZhbHVlO2lmKGgpe3ZhciBrPShsLG0pPT57aWYoIWIpcmV0dXJuIGU/ZShsLG0pOmx9O18ueCgid2ViX2ltYWdlX2RvbnRfcmVsb2FkX3NhbWVfc3JjIikmJnljYShoLGQsayk/Xy54KCJ3ZWJfaW1hZ2VfZG9udF9yZWxvYWRfc2FtZV9zcmNfc2ltdWxhdGVfbG9hZCIpJiZoLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2FkIix7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLGRldGFpbDp7bWVzc2FnZToiU2ltdWxhdGluZyBsb2FkIGV2ZW50IGZvciBhbHJlYWR5IGxvYWRlZCBpbWFnZSJ9fSkpOnhjYShoLGR8fG51bGwsayxmLGEubGF6eT8uKCkpfX0sIlJmRWdCYyIpO3JldHVybiBfLksoImltZyIse2VsOmMsY2xhc3M6KCk9PmEuY29uZmlnKCkuY2xhc3NOYW1lLAphbHQ6KCk9PmEuY29uZmlnKCkuYWx0LCJhcmlhLWhpZGRlbiI6KCk9PmEuY29uZmlnKCkuYXJpYUhpZGRlbiwiZGF0YS1kaXNhYmxlZCI6KCk9PmEuY29uZmlnKCkuaGMsc3R5bGU6KCk9PmEuY29uZmlnKCkuc3R5bGUsd2lkdGg6KCk9PmEuY29uZmlnKCkud2lkdGgsaGVpZ2h0OigpPT5hLmNvbmZpZygpLmhlaWdodCxkcmFnZ2FibGU6KCk9PmEuY29uZmlnKCkuZHJhZ2dhYmxlLCJvbjplcnJvciI6ZD0+YS5jb25maWcoKS5vbkVycm9yPy4oZCksIm9uOmxvYWQiOmQ9PmEuY29uZmlnKCkub25Mb2FkPy4oZCl9KX0sImwiKTtfLmhGLmlkb21Db21wYXQ9ITA7dmFyIGlGO18uakY9Xy5MKGE9Pnt2YXIgW2IsY109Xy5KKCExLHZvaWQgMCwiVEZhRUtkIiksZD0oKT0+e3ZhciBmPWEuZGF0YSgpO3JldHVybiBLRShmKT97Li4uZn06TEUoZik/P3t9fSxlPSgpPT4hZCgpLnNvdXJjZXM/Lmxlbmd0aHx8YigpO3JldHVybiBfLksoXy5PLHtBOigpPT57aWYoIV8ueCgid2ViX2xpbmVhcl9ncmFkaWVudF9raWxsc3dpdGNoIikpcmV0dXJuIE5FKGQoKSkubnl8fE5FKGQoKSkuTnp9LHRoZW46Zj0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0Q29yZUltYWdlSG9zdCIsInl0Q29yZUltYWdlR3JhZGllbnRDb250YWluZXIiLHt5dENvcmVJbWFnZUxvYWRlZDplfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Q29yZUltYWdlR3JhZGllbnQiLCJhcmlhLWhpZGRlbiI6InRydWUiLHN0eWxlOl8uSUUoe2JhY2tncm91bmQ6Zn0pfSksXy5LKGlGLHsuLi5hLG9uTG9hZDpoPT57YyghMCk7YS5vbkxvYWQ/LihoKX19KSksVzooKT0+Xy5LKGlGLHsuLi5hfSl9KX0sIm0iKTsKaUY9Xy5MKGE9Pnt2YXIgYj0oKT0+QWNhKGEuZGF0YSgpLHtjb250ZW50TW9kZTphLmNvbnRlbnRNb2RlPy4oKSx0ajphLnRqPy4oKSxpc1ByZWxvYWRlZDphLmlzUHJlbG9hZGVkPy4oKSxzZzphLnNnPy4oKSxCbTphLkJtPy4oKSx5cjphLnlyPy4oKSxZYTphLllhPy4oKSxUYTphLlRhPy4oKSxvYmplY3RQb3NpdGlvbjphLm9iamVjdFBvc2l0aW9uPy4oKSxBYjphLkFiPy4oKSxkYzphLmRjPy4oKSxXcjphLldyPy4oKSxOZzphLk5nPy4oKSxpc1RvZ2dsZWQ6YS5pc1RvZ2dsZWQ/LigpLGFsdDphLmFsdD8uKCksY2xhc3NOYW1lOmEuY2xhc3NOYW1lPy4oKSxvbkVycm9yOmEub25FcnJvcixvbkxvYWQ6YS5vbkxvYWQsc3R5bGU6YS5zdHlsZT8uKCksY29sb3I6YS5jb2xvcj8uKCksd2lkdGg6YS53aWR0aD8uKCksaGVpZ2h0OmEuaGVpZ2h0Py4oKSxhcmlhSGlkZGVuOmEuYXJpYUhpZGRlbj8uKCksZHJhZ2dhYmxlOmEuZHJhZ2dhYmxlPy4oKSxoYzphLmhjPy4oKSxzaXplOmEuc2l6ZT8uKCksCmltYWdlQ2xhc3NpZmljYXRpb25UeXBlOmEuaW1hZ2VDbGFzc2lmaWNhdGlvblR5cGU/LigpfSxhLlV3Py4oKSk7cmV0dXJuIF8uSyhfLkVFLG51bGwsXy5LKF8uQ0Use3doZW46KCk9PmIoKT8udHlwZT09PSJpbWFnZSJ9LCgpPT5fLksoXy5oRix7ZGF0YTooKT0+YigpLmltYWdlLEdsOntTZzooYyxkKT0+e3ZhciBlPWIoKS5pbWFnZS5zb3VyY2VzO3ZhciBmPWIoKS5jb25maWcuaXNQcmVsb2FkZWQsaD1iKCkuY29uZmlnLk5nLGs9YigpLmNvbmZpZy5BYixsPWIoKS5jb25maWcuZGMsbT1iKCkuY29uZmlnLnlyO2lmKCFlfHxlLmxlbmd0aD09PTB8fGVbMF0uY2xpZW50UmVzb3VyY2UpZT1udWxsO2Vsc2UgaWYoZiYmZVswXS51cmwpZT1lWzBdLnVybDtlbHNle2g9PT12b2lkIDAmJihoPSEwKTtkPWg/Xy5tRSooa3x8ZD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LndpZHRofHwwKTpfLm1FKihsfHxkPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8uaGVpZ2h0fHwwKTtiOmlmKGQpe2lmKG0pZm9yKGxldCBuIG9mIGUpaWYoZj0Kbi51cmw/LmluZGV4T2YobSksZiE9PXZvaWQgMCYmZj49MCl7ZT1uO2JyZWFrIGJ9Zm9yKGxldCBuIG9mIGUpaWYobi53aWR0aCYmbi5oZWlnaHQmJihoJiZuLndpZHRoPj1kfHwhaCYmbi5oZWlnaHQ+PWQpKXtlPW47YnJlYWsgYn1mb3IobT1lLmxlbmd0aC0xO20+PTA7bS0tKWlmKGgmJmVbbV0ud2lkdGh8fCFoJiZlW21dLmhlaWdodCl7ZT1lW21dO2JyZWFrIGJ9ZT1lWzBdfWVsc2UgZT1lLmxlbmd0aD49MT9lW2UubGVuZ3RoLTFdOm51bGw7ZT1lPy51cmw/ZS51cmw6ZT8uaW1hZ2VEYXRhP2UuaW1hZ2VEYXRhOm51bGx9cmV0dXJuIGV8fCIifX0sY29uZmlnOigpPT57dmFyIGM9YigpLmNvbmZpZztmb3IobGV0IGQgaW4gYyljW2RdPT09dm9pZCAwJiZkZWxldGUgY1tkXTtyZXR1cm4gY30sbGF6eTphLlRifSkpLF8uSyhfLkNFLHt3aGVuOigpPT5iKCk/LnR5cGU9PT0iaWNvbiJ9LCgpPT5fLksoXy5NRCx7aWNvbjooKT0+YigpLmljb25OYW1lLHJvbGU6KCk9PmIoKS5jb25maWcucm9sZSwKY2xhc3NOYW1lOigpPT5iKCkuY29uZmlnLmNsYXNzTmFtZSxzdHlsZTooKT0+YigpLmNvbmZpZy5zdHlsZSxhcmlhTGFiZWw6KCk9PmIoKS5jb25maWcuYXJpYUxhYmVsLGFyaWFIaWRkZW46KCk9PmIoKS5jb25maWcuYXJpYUhpZGRlbixoYzooKT0+YigpLmNvbmZpZy5oYyxhY3RpdmU6KCk9PmIoKS5jb25maWcuaXNUb2dnbGVkLHNpemU6KCk9PmIoKS5jb25maWcuc2l6ZX0pKSl9LCJuIik7Xy5qRi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2NhbGxiYWNrOiEwLG9uRXJyb3I6ITAsb25Mb2FkOiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTko9bmV3IF8uSSgic2lnbmFsQWN0aW9uIik7Xy5PSj1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9ITEsYz1udWxsKXt0aGlzLmFjdGlvbk5hbWU9YTt0aGlzLmo9Yjt0aGlzLmFyZ3M9Yzt0aGlzLnJldHVyblZhbHVlPVtdfX07Xy5QSj1uZXcgTWFwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmhFPW5ldyBfLkkoImxheW91dFByb3BlcnRpZXMiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rRj1uZXcgXy5WcygiREFSS19USEVNRV9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmxGPW5ldyBfLlZzKCJBUFBfRElSRUNUSU9OX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8udUY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iPy5pbml0aWFsO3JldHVybiBfLk4oKCk9PntfLkJ2KCEwKTtyZXR1cm4gYz1hKGMpfSx7ZXF1YWxzOmI/LmlzRXF1YWx9LCJyU2xLc2MiKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBFY2EsRmNhLHZGLEdjYSx5RixCRixDRixKY2EsTGNhLERGLEVGLE5jYSxIRixPY2EsUWNhLElGLFJjYSxKRixTY2EsS0YsTEYsVGNhLE1GLFVjYSxORixWY2EsV2NhLEljYSxIY2E7CkVjYT1mdW5jdGlvbihhKXt2YXIgYj17c3RhdGU6Ik5PTkUifSxjPXtSaDpkPT57c3dpdGNoKGQuQ2IudG9rZW4pe2Nhc2UgXy5QYmEuQ2IudG9rZW46dmFyIGU9YjticmVhaztjYXNlIF8uT2JhLkNiLnRva2VuOmU9YS5XSDticmVhaztjYXNlIF8uTEMuQ2IudG9rZW46ZT1hLnJvb3RFbGVtZW50O2JyZWFrO2Nhc2UgXy5MYmEuQ2IudG9rZW46ZT1hLllKO2JyZWFrO2Nhc2UgXy5NQi5DYi50b2tlbjplPWEuRm87YnJlYWs7Y2FzZSBfLk1iYS5DYi50b2tlbjplPWEucmVuZGVyZXJEYXRhO2JyZWFrO2Nhc2UgXy5OYmEuQ2IudG9rZW46ZT1hLm9KO2JyZWFrO2Nhc2UgXy5OQi5DYi50b2tlbjplPWEucnZ9aWYoZSlkPWU7ZWxzZSBhOntmb3IoZT1jLnBhcmVudDtlOyl7dmFyIGY9ZTtpZihmLlJoKXtkPWYuUmgoZCk7YnJlYWsgYX1lPWUucGFyZW50fWU9ZC5DYi50b2tlbjtmPV8uV0MuZ2V0KGUpO2YhPT12b2lkIDA/ZD1mOihmPWQuQ2IuTXosZC5DYi5LcD8oZD1kLkNiLktwKCksZSYmZj09PQoicm9vdCImJl8uV0Muc2V0KGUsZCkpOmQ9Xy5hdSl9cmV0dXJuIGR9fTtfLkJ1KGMpO3JldHVybiBjfTtGY2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWJ9O3ZGPWZ1bmN0aW9uKGEsYil7aWYoYT09PWIpYT0hMDtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkmJkFycmF5LmlzQXJyYXkoYikpYTppZihfLnlhKGEpJiZfLnlhKGIpJiZhLmxlbmd0aD09Yi5sZW5ndGgpe3ZhciBjPWEubGVuZ3RoLGQ9dkZ8fEZjYTtmb3IobGV0IGU9MDtlPGM7ZSsrKWlmKCFkKGFbZV0sYltlXSkpe2E9ITE7YnJlYWsgYX1hPSEwfWVsc2UgYT0hMTtlbHNlIGlmKF8uQWEoYSkmJl8uQWEoYikpYTppZihfLkZ4KGEpLmxlbmd0aCE9Xy5GeChiKS5sZW5ndGgpYT0hMTtlbHNle2ZvcihjIGluIGEpaWYoIXZGKGFbY10sYltjXSkpe2E9ITE7YnJlYWsgYX1hPSEwfWVsc2UgYT0hMTtyZXR1cm4gYX07Xy53Rj1mdW5jdGlvbihhLGIsYyl7Yz09PXZvaWQgMD9kZWxldGUgYVtiLm5hbWVdOmFbYi5uYW1lXT1jfTsKR2NhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPSExO2FbXy5xRl0/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIkhiIiksMixhLnRhZ05hbWUpO30pOl8uWnQmJmQhPT1fLlhDP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aHJvdyBfLlV1KEVycm9yKCJFYiIpLDIsYS50YWdOYW1lKTt9KTooYS50ZXh0Q29udGVudCE9PSIiJiZhLnRleHRDb250ZW50IT09bnVsbHx8YS5jaGlsZEVsZW1lbnRDb3VudD4wKSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIkZiIiksMixhLnRhZ05hbWUpO30pO3ZhciBmPV8uUnUoKCk9Pnt2YXIgaD1fLmt1KF8uenYpLGs9KCk9Pnt2YXIgbD0oXy5PQi5zdj8/Xy52ZChhKSkuX193aXpkaXNwYXRjaGVyO2w9RWNhKHtyb290RWxlbWVudDp7dmFsdWU6YX0sRm86Y3x8bD8ubnc/LigpLHJ2Omx9KTtsPV8uJHQobCk7dmFyIG09Xy5MQighMCk7Xy5ndisrO3RyeXtfLmJDKGIoKSxhKSwKXy5JQSghMSl9Y2F0Y2gobil7dGhyb3cgXy5JQSghMCksbjt9ZmluYWxseXtfLkxCKG0pLF8uJHQobCl9fTt0cnl7cmV0dXJuIGQ9PT1fLlhDP18udXYoaywhMSk6Xy5pdyhrKX1jYXRjaChsKXt0aHJvdyBfLlV1KGwsNCksbDt9ZmluYWxseXtfLmt1KGgpfX0pO2FbXy5xRl09ITA7cmV0dXJuKCk9PntlP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aHJvdyBfLlV1KEVycm9yKCJHYiIpLDIsYS50YWdOYW1lKTt9KTooYS50ZXh0Q29udGVudD0iIixmKCksZT0hMCxhW18ucUZdPSExKX19O18ueEY9ZnVuY3Rpb24oYSxiLGMpe2M/PyhjPXt9KTt2YXIgZD1jLkZvLGU9ISFfLkt1LkpxO2I9R2NhKGEsYixkLGMuSWspO2UmJl8uUEIoYSxkKTtfLlZCLmxvZyhhKTtyZXR1cm4gYn07Cl8uQUY9ZnVuY3Rpb24oYSl7dmFyIGI9e2FuZHJvaWRJbmNsdWRlRm9udFBhZGRpbmc6ITF9LGM9MCxkPVtdLGU9W10sZj1bXTtpZihhLnNpbXBsZVRleHQpcmV0dXJuIGIuY29udGVudD1hLnNpbXBsZVRleHQsYjtpZihhLnJ1bnM9PT12b2lkIDApcmV0dXJuIGIuY29udGVudD0iIixiO2ZvcihsZXQgbSBvZiBhLnJ1bnMpe3ZhciBoPW0udGV4dDthPWg/Lmxlbmd0aDtpZihoJiZhKXtkLnB1c2goaCk7aWYobS5ib2xkfHxtLml0YWxpY3N8fG0uc3RyaWtldGhyb3VnaHx8bS51bmRlcmxpbmV8fG0udGV4dENvbG9yIT1udWxsJiZtLnRleHRDb2xvciE9PTB8fG0uZGVlbXBoYXNpemUpe2g9ZTt2YXIgaz1oLnB1c2gsbD17c3RhcnRJbmRleDpjLGxlbmd0aDphfTttLmJvbGQmJihsLndlaWdodExhYmVsPSJGT05UX1dFSUdIVF9NRURJVU0iKTttLml0YWxpY3MmJihsLml0YWxpYz0hMCk7bS5zdHJpa2V0aHJvdWdoJiYobC5zdHJpa2V0aHJvdWdoPSJMSU5FX1NUWUxFX1NJTkdMRSIpO20udW5kZXJsaW5lJiYKKGwudW5kZXJsaW5lPSJMSU5FX1NUWUxFX1NJTkdMRSIpO20udGV4dENvbG9yIT1udWxsJiZtLnRleHRDb2xvciE9PTA/bC5mb250Q29sb3I9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgiZGFyayIpP20uZGFya01vZGVUZXh0Q29sb3J8fG0udGV4dENvbG9yOm0udGV4dENvbG9yOm0uZGVlbXBoYXNpemUmJihsLmZvbnRDb2xvcj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXJrIik/eUYoIiNhYWEiKTp5RigiIzYwNjA2MCIpKTtrLmNhbGwoaCxsKX1tLm5hdmlnYXRpb25FbmRwb2ludCYmKGg9ZixrPWgucHVzaCxsPXtzdGFydEluZGV4OmMsbGVuZ3RoOmEsb25UYXA6e2lubmVydHViZUNvbW1hbmQ6bS5uYXZpZ2F0aW9uRW5kcG9pbnR9fSxtLmxvZ2dpbmdEaXJlY3RpdmVzJiZfLndGKGwsekYsbS5sb2dnaW5nRGlyZWN0aXZlcyksay5jYWxsKGgsbCkpO2MrPWF9fWIuY29udGVudD1kLmpvaW4oIiIpO2Iuc3R5bGVSdW5zPWUubGVuZ3RoPwplOnZvaWQgMDtiLmNvbW1hbmRSdW5zPWYubGVuZ3RoP2Y6dm9pZCAwO3JldHVybiBifTt5Rj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludDtpZighSGNhLnRlc3QoYSkpdGhyb3cgRXJyb3IoIlBjYCIrYSk7YS5sZW5ndGg9PTQmJihhPWEucmVwbGFjZShJY2EsIiMkMSQxJDIkMiQzJDMiKSk7cmV0dXJuIGIoImZmIithLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDEpLDE2KX07QkY9ZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gT2JqZWN0LmVudHJpZXMoYSkuZmlsdGVyKChbLGJdKT0+YiE9PXZvaWQgMCYmYiE9PW51bGwmJmIhPT0iIikubWFwKChbYixjXSk9PmAke2IucmVwbGFjZSgvKFthLXpBLVpdKSg/PVtBLVpdKS9nLCIkMS0iKS50b0xvd2VyQ2FzZSgpfTogJHtjfTtgKS5qb2luKCIiKXx8dm9pZCAwfTsKQ0Y9ZnVuY3Rpb24oYSl7aWYoIWE/LnZhbHVlfHwhYT8udW5pdClyZXR1cm4iIjtzd2l0Y2goYS51bml0KXtjYXNlICJESU1FTlNJT05fVU5JVF9GUkFDVElPTiI6dmFyIGI9IiUiO2JyZWFrO2RlZmF1bHQ6Yj0icHgifWE9YS52YWx1ZTtiPT09IiUiJiYoYSo9MTAwKTtyZXR1cm5gJHthfSR7Yn1gfTtKY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz17Li4uYn07Zm9yKGxldCBbZCxlXW9mIG5ldyBNYXAoW1sib250b3VjaHN0YXJ0IixhLm9udG91Y2hzdGFydF0sWyJvbnRvdWNoZW5kIixhLm9udG91Y2hlbmRdLFsib250b3VjaG1vdmUiLGEub250b3VjaG1vdmVdXSkpe2xldCBmPWQsaD1lO2JbZl09az0+e2NbZl0/LihrKTtoKGspfX19OwpMY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bInl0QXR0cmlidXRlZFN0cmluZ0xpbmsiXTtiPy51Ynx8KGI/LmlzT3ZlcmxheT9jLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtPdmVybGF5Q2FsbFRvQWN0aW9uQ29sb3IiKTpjLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtDYWxsVG9BY3Rpb25Db2xvciIpLGI/LlhhJiZjLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IiKSk7Yz17Y2xhc3NOYW1lOmMuam9pbigiICIpLHRhYmluZGV4OiIwIn07dmFyIGQ9YS5vblRhcHx8YS5vbkxvbmdQcmVzcztpZighZClyZXR1cm4gYzt2YXIgZT1hLm9uVGFwT3B0aW9ucz8uYWNjZXNzaWJpbGl0eUluZm8/LmFjY2Vzc2liaWxpdHlMYWJlbDtlJiYoYy5hcmlhTGFiZWw9ZSk7Yj1fLmJFKHtiaDpkLHV4OmMsSWQ6ISFiPy5JZCxxZDohMH0pO2Eub25Mb25nUHJlc3MmJihkPW5ldyBLY2EoKCk9Pnt2YXIgZj1fLlJEKGEub25Mb25nUHJlc3MpO2YmJl8ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoZil9KSwKYiYmSmNhKGQsYikpO3JldHVybiBifHxjfTtERj1mdW5jdGlvbihhKXt2YXIgYj1hO2E8PTE2Nzc3MjE1JiYoYis9cGFyc2VJbnQoImZmMDAwMDAwIiwxNikpO3JldHVybiBfLk5EKGIpfTtFRj1mdW5jdGlvbih7aXNEYXJrVGhlbWU6YSxleHRlbnNpb246YixPcjpjfSl7dmFyIGQ9dm9pZCAwO2lmKGI9Yj8uY29sb3JNYXApe2E9YT8iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyI6IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjtmb3IobGV0IGUgb2YgYilpZihhPT09ZS5rZXkpe2Q9ZS52YWx1ZTticmVha319ZD09bnVsbCYmYyYmKGQ9Yyk7aWYoZClyZXR1cm4gREYoZCl9OwpOY2E9ZnVuY3Rpb24oYSxiPSExKXt2YXIgYz17fTtpZihhLnRleHREZWNvcmF0b3Ipe3ZhciBkPWEudGV4dERlY29yYXRvcjt2YXIgZT17fTt2YXIgZj1fLkIoZCxfLkZGKSxoPV8uQihkLEdGKTtpZihmKXtkPU9iamVjdDtoPWQuYXNzaWduO2xldCBrPXt9OyhiPUVGKHtleHRlbnNpb246Xy5CKGYuaGlnaGxpZ2h0VGV4dERlY29yYXRvckV4dGVuc2lvbnMsTWNhKSxpc0RhcmtUaGVtZTpiLE9yOmYuYmFja2dyb3VuZENvbG9yfSkpJiYoa1siYmFja2dyb3VuZC1jb2xvciJdPWIpO2YuYmFja2dyb3VuZENvcm5lclJhZGl1cyE9PXZvaWQgMCYmKGtbImJvcmRlci1yYWRpdXMiXT1gJHtmLmJhY2tncm91bmRDb3JuZXJSYWRpdXN9cHhgKTtmLmxlZnRQYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1sZWZ0Il09YCR7Zi5sZWZ0UGFkZGluZ31weGApO2YucmlnaHRQYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1yaWdodCJdPWAke2YucmlnaHRQYWRkaW5nfXB4YCk7Zi50b3BQYWRkaW5nIT09CnZvaWQgMCYmKGtbInBhZGRpbmctdG9wIl09YCR7Zi50b3BQYWRkaW5nfXB4YCk7Zi5ib3R0b21QYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1ib3R0b20iXT1gJHtmLmJvdHRvbVBhZGRpbmd9cHhgKTtoLmNhbGwoZCxlLGspfWVsc2UgaCYmKGY9T2JqZWN0LGQ9Zi5hc3NpZ24sYj1iPyIjMmJhNjQwIjoiIzEwNzUxNiIsYj1oLmNvbG9yP0RGKGguY29sb3IpOmIsZC5jYWxsKGYsZSx7cGFkZGluZzoiMnB4IiwiYm9yZGVyLXRvcCI6YHNvbGlkICR7Yn0gMnB4YCwiYm9yZGVyLWJvdHRvbSI6YHNvbGlkICR7Yn0gMnB4YCxiYWNrZ3JvdW5kOmBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke2J9IDNweCwgcmdiYSgwLCAwLCAwLCAwKSAzcHgpLCBsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCAke2J9IDNweCwgcmdiYSgwLCAwLCAwLCAwKSAzcHgpYH0pKTtlPU9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PTA/ZTp2b2lkIDA7Yy5zdHlsZT1lO2E9YS50ZXh0RGVjb3JhdG9yO2U9W107Yj1fLkIoYSwKR0YpO18uQihhLF8uRkYpP2UucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nSGlnaGxpZ2h0VGV4dERlY29yYXRvciIpOmImJmUucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nQnJhY2tldFRleHREZWNvcmF0b3IiKTthPWUuam9pbigiICIpO2MuY2xhc3NOYW1lPWE7Yy5kaXI9ImF1dG8ifXJldHVybiBjfTtIRj1mdW5jdGlvbih7Y29uZmlnOmEsaW1hZ2U6YixnajpjLE9sOmQscnVuOmUsdGFnOmYsdGV4dExlbmd0aDpoLHN0YXJ0SW5kZXg6az0wLGxlbmd0aDpsfSl7az09PXZvaWQgMCYmKGs9MCk7ZT17cnVuOmUsc3RhcnRJbmRleDprLHdsOmwhPT12b2lkIDA/aytsOmgsdGFnOmZ9O2ImJihlLmltYWdlPWIpO2MmJihlLmdqPWMpO2QmJihlLk9sPWQpO2EmJihlLmNvbmZpZz1hKTtyZXR1cm4gZX07Ck9jYT1mdW5jdGlvbihhLGIpe2lmKGEud2VpZ2h0KXJldHVybiBhLndlaWdodDtzd2l0Y2goYS53ZWlnaHRMYWJlbCl7Y2FzZSAiRk9OVF9XRUlHSFRfVEhJTiI6cmV0dXJuIDEwMDtjYXNlICJGT05UX1dFSUdIVF9FWFRSQV9MSUdIVCI6cmV0dXJuIDIwMDtjYXNlICJGT05UX1dFSUdIVF9MSUdIVCI6cmV0dXJuIDMwMDtjYXNlICJGT05UX1dFSUdIVF9NRURJVU0iOnJldHVybiA1MDA7Y2FzZSAiRk9OVF9XRUlHSFRfU0VNSV9CT0xEIjpyZXR1cm4gNjAwO2Nhc2UgIkZPTlRfV0VJR0hUX0JPTEQiOnJldHVybiBiPzkwMDo3MDA7Y2FzZSAiRk9OVF9XRUlHSFRfRVhUUkFfQk9MRCI6cmV0dXJuIDgwMDtjYXNlICJGT05UX1dFSUdIVF9CTEFDSyI6cmV0dXJuIDkwMDtkZWZhdWx0OnJldHVybiA0MDB9fTsKUWNhPWZ1bmN0aW9uKGEsYj0hMSxjKXtiPUVGKHtleHRlbnNpb246Xy5CKGEuc3R5bGVSdW5FeHRlbnNpb25zLFBjYSksaXNEYXJrVGhlbWU6YixPcjphLmZvbnRDb2xvcn0pO3ZhciBkPVtdO2ImJmQucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nTGlua0luaGVyaXRDb2xvciIpO2EuaXRhbGljJiZkLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0l0YWxpY2l6ZWQiKTthLnVuZGVybGluZSYmYS5zdHJpa2V0aHJvdWdoP2QucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nVW5kZXJsaW5lU3RyaWtldGhyb3VnaCIsSUYoYS51bmRlcmxpbmUpKTphLnVuZGVybGluZT9kLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1VuZGVybGluZWQiLElGKGEudW5kZXJsaW5lKSk6YS5zdHJpa2V0aHJvdWdoJiZkLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2giLElGKGEuc3RyaWtldGhyb3VnaCkpO2lmKGEuYmFzZWxpbmVPZmZzZXQpe2E6c3dpdGNoKGEuYmFzZWxpbmVPZmZzZXQpe2Nhc2UgIkJBU0VMSU5FX09GRlNFVF9TVUJTQ1JJUFQiOnZhciBlPQoieXRBdHRyaWJ1dGVkU3RyaW5nQmFzZWxpbmVPZmZzZXRTdWJzY3JpcHQiO2JyZWFrIGE7Y2FzZSAiQkFTRUxJTkVfT0ZGU0VUX1NVUEVSU0NSSVBUIjplPSJ5dEF0dHJpYnV0ZWRTdHJpbmdCYXNlbGluZU9mZnNldFN1cGVyc2NyaXB0IjticmVhayBhO2RlZmF1bHQ6ZT0ieXRBdHRyaWJ1dGVkU3RyaW5nQmFzZWxpbmVPZmZzZXRVbmtub3duIn1kLnB1c2goZSl9ZD1kLmpvaW4oIiAiKTtlPXt9O2lmKGEud2VpZ2h0fHxhLndlaWdodExhYmVsKWUuZm9udFdlaWdodD1PY2EoYSxjPy5xaCkudG9TdHJpbmcoKTtiJiYoZS5jb2xvcj1iKTtyZXR1cm57Y2xhc3NOYW1lOmQsc3R5bGU6ZX19O0lGPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJMSU5FX1NUWUxFX0RPVCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ0xpbmVTdHlsZURvdCI7Y2FzZSAiTElORV9TVFlMRV9OT05FIjpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlTm9uZSI7ZGVmYXVsdDpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlU2luZ2xlIn19OwpSY2E9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIlRFWFRfQUxJR05NRU5UX0xFRlQiOnJldHVybiJ5dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50TGVmdCI7Y2FzZSAiVEVYVF9BTElHTk1FTlRfUklHSFQiOnJldHVybiJ5dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50UmlnaHQiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0NFTlRFUiI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRDZW50ZXIiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0pVU1RJRklFRCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRKdXN0aWZpZWQiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0xBWU9VVF9TVEFSVCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRMYXlvdXRTdGFydCI7ZGVmYXVsdDpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudFVua25vd24ifX07CkpGPWZ1bmN0aW9uKGEsYil7cmV0dXJuISFifHwhKGEuY29tbWFuZFJ1bnMmJmEuY29tbWFuZFJ1bnMubGVuZ3RoIT09MHx8YS5wYXJhZ3JhcGhTdHlsZVJ1bnMmJmEucGFyYWdyYXBoU3R5bGVSdW5zLmxlbmd0aCE9PTApfTtTY2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pnt2YXIgYz1hLnJ1bjsoYy5vblRhcCE9PXZvaWQgMHx8Yy5vbkxvbmdQcmVzcyE9PXZvaWQgMCkmJl8uQihjLHpGKSYmXy5KeChiLHtkYXRhOntsb2dnaW5nRGlyZWN0aXZlczpfLkIoYyx6Ril9LG9ic2VydmVyOl8ueSgpLnJlc29sdmUoXy5MeCksTmM6Xy5uRixlYjpfLm1GLGxheWVyOmIubGF5ZXJ9KX19O0tGPWZ1bmN0aW9uKGEsYixjLGQpe2ZvcihsZXQgZSBvZiBhLmxjKXtpZih0eXBlb2YgZT09PSJzdHJpbmciKXRocm93IEVycm9yKCJZYyIpO2lmKGUuc3RhcnQ8PWImJmM8PWUuZW5kKXtLRihlLGIsYyxkKTtyZXR1cm59fWEubGMucHVzaCh7ZGF0YTpkLGxjOltdLHN0YXJ0OmIsZW5kOmN9KX07CkxGPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBkPWIubGMubGVuZ3RoO2Q+PTA7ZC0tKXtsZXQgZT1iLmxjW2RdO3ZhciBjPWIubGNbZC0xXTtsZXQgZj1kPT09Yi5sYy5sZW5ndGg/Yi5lbmQ6ZS5zdGFydDtjPWQ9PT0wP2Iuc3RhcnQ6Yy5lbmQ7ZiE9PWMmJmIubGMuc3BsaWNlKGQsMCxhLnNsaWNlKGMsZikpO2UmJkxGKGEsZSl9fTtUY2E9ZnVuY3Rpb24oYSl7YS5zb3J0KChiLGMpPT57aWYoYi5zdGFydEluZGV4PGMuc3RhcnRJbmRleClyZXR1cm4tMTtpZihjLnN0YXJ0SW5kZXg8Yi5zdGFydEluZGV4KXJldHVybiAxO2I9Yi53bC1iLnN0YXJ0SW5kZXg7Yz1jLndsLWMuc3RhcnRJbmRleDtyZXR1cm4gYj5jPy0xOmM+Yj8xOjB9KX07Ck1GPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iPyEwOmE9PT12b2lkIDB8fGI9PT12b2lkIDA/ITE6Xy54KCJ3ZWJfYXR0cmlidXRlZF9zdHJpbmdfZGVlcF9lcXVhbF9idWdmaXgiKT92RihhLGIpOmEuY29udGVudD09PWIuY29udGVudCYmYS5zdHlsZVJ1bnM/Lmxlbmd0aD09PWIuc3R5bGVSdW5zPy5sZW5ndGgmJmEuY29tbWFuZFJ1bnM/Lmxlbmd0aD09PWIuY29tbWFuZFJ1bnM/Lmxlbmd0aCYmYS5hdHRhY2htZW50UnVucz8ubGVuZ3RoPT09Yi5hdHRhY2htZW50UnVucz8ubGVuZ3RoJiZhLmRlY29yYXRpb25SdW5zPy5sZW5ndGg9PT1iLmRlY29yYXRpb25SdW5zPy5sZW5ndGh9O1VjYT1mdW5jdGlvbih7bGM6YX0pe3JldHVybiBhLm1hcChORil9OwpORj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhO3ZhciBiPWEuZGF0YTtiLmltYWdlIT09dm9pZCAwJiZiLmdqIT09dm9pZCAwPyhiPWEuZGF0YS5PbCxhPV8uSygic3BhbiIse2NsYXNzOmI/LmNsYXNzTmFtZSxzdHlsZTpCRihiPy5zdHlsZSksZGlyOmI/LmRpcixyb2xlOmI/LnJvbGUsdGFiaW5kZXg6Yj8udGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGIudGFiaW5kZXgpOnZvaWQgMCwiZm9yY2UtbmV3LXN0YXRlIjpiPy5xZCwib246Y2xpY2siOmI/Lm9uY2xpY2ssIm9uOnRvdWNoZW5kIjpiPy5vbnRvdWNoZW5kLCJvbjp0b3VjaG1vdmUiOmI/Lm9udG91Y2htb3ZlLCJvbjp0b3VjaHN0YXJ0IjpiPy5vbnRvdWNoc3RhcnR9LF8uSyhfLmpGLHtkYXRhOmEuZGF0YS5pbWFnZSwuLi5hLmRhdGEuZ2p9KSkpOihiPWEuZGF0YS5jb25maWcsYT1fLksoYS5kYXRhLnRhZyx7ZWw6Xy5yRihTY2EoYS5kYXRhKSksInByb3A6X2RhdGEiOmI/Lm51LCJwcm9wOnBhcmFtcyI6Yj8ucGFyYW1zLApjbGFzczpiPy5jbGFzc05hbWUsc3R5bGU6QkYoYj8uc3R5bGUpLGRpcjpiPy5kaXIsaHJlZjpiPy5ocmVmLHJlbDpiPy5yZWwscm9sZTpiPy5yb2xlLHRhcmdldDpiPy50YXJnZXQsdGl0bGU6Yj8udGl0bGUsdGFiaW5kZXg6Yj8udGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGIudGFiaW5kZXgpOnZvaWQgMCwiYXJpYS1oYXNwb3B1cCI6Yj8uYXJpYUhhc1BvcHVwLCJmb3JjZS1uZXctc3RhdGUiOmI/LnFkLCJhcmlhLWhpZGRlbiI6Yj8uYXJpYUhpZGRlbiwiYXJpYS1leHBhbmRlZCI6Yj8uYXJpYUV4cGFuZGVkLCJhcmlhLWxhYmVsIjpiPy5hcmlhTGFiZWwsIm9uOmNsaWNrIjpiPy5vbmNsaWNrLCJvbjp0b3VjaGVuZCI6Yj8ub250b3VjaGVuZCwib246dG91Y2htb3ZlIjpiPy5vbnRvdWNobW92ZSwib246dG91Y2hzdGFydCI6Yj8ub250b3VjaHN0YXJ0LCJvbjpwb2ludGVyZG93biI6Yj8ub25wb2ludGVyZG93biwib246a2V5ZG93biI6Yj8ub25rZXlkb3dufSxhLmxjLm1hcChORikpKTsKcmV0dXJuIF8uZkMoYSl9O1ZjYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPT09Yj8hMDphPT09dm9pZCAwfHxiPT09dm9pZCAwPyExOmEuQ2o9PT1iLkNqJiZhLnViPT09Yi51YiYmYS5tYT09PWIubWEmJmEuaGVhZGVyUnVucz09PWIuaGVhZGVyUnVucyYmYS5pc092ZXJsYXk9PT1iLmlzT3ZlcmxheSYmYS5YYT09PWIuWGEmJmEudXNlcklucHV0PT09Yi51c2VySW5wdXQmJmEucWg9PT1iLnFofTtXY2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pih7YXJpYUxhYmVsOmEuYXJpYUxhYmVsPy4oKSxjbGFzc05hbWU6YS5jbGFzc05hbWU/LigpLHljOmEueWM/LigpLGlzT3ZlcmxheTphLmlzT3ZlcmxheT8uKCksWGE6YS5YYT8uKCksbWE6YS5tYT8uKCksQ2o6YS5Daj8uKCksdWI6YS51Yj8uKCkscmc6YS5yZz8uKCksbm9XcmFwOmEubm9XcmFwPy4oKSxJZDphLklkPy4oKSx1c2VySW5wdXQ6YS51c2VySW5wdXQ/LigpLGhlYWRlclJ1bnM6YS5oZWFkZXJSdW5zPy4oKSxxaDphLnFoPy4oKX0pfTsKSWNhPS8jKC4pKC4pKC4pLztIY2E9L14jKD86WzAtOWEtZl17M30pezEsMn0kL2k7Xy5YY2E9bmV3IF8uSSgiZW1vamkiKTt2YXIgekY9bmV3IF8uSSgibG9nZ2luZ0RpcmVjdGl2ZXMiKTtfLlljYT1uZXcgXy5JKCJ1bnBsdWdnZWRTdHJpbmdSdW5JbWFnZSIpO3ZhciBNY2E9bmV3IF8uSSgiaGlnaGxpZ2h0VGV4dERlY29yYXRvckNvbG9yTWFwRXh0ZW5zaW9uIik7dmFyIFBjYT1uZXcgXy5JKCJzdHlsZVJ1bkNvbG9yTWFwRXh0ZW5zaW9uIik7dmFyIFpjYT1uZXcgXy5JKCJhY2Nlc3NpYmlsaXR5UHJvcGVydGllcyIpO3ZhciBHRj1uZXcgXy5JKCJicmFja2V0VGV4dERlY29yYXRvciIpO18uRkY9bmV3IF8uSSgiaGlnaGxpZ2h0VGV4dERlY29yYXRvciIpO3ZhciAkY2E9bmV3IF8uSSgiaW1hZ2VUeXBlIik7dmFyIGFkYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD01MDA7dGhpcy5qPU5hTjt0aGlzLnY9dGhpcy5vPSExO3RoaXMuQj1hPT57dmFyIGI9bmV3IEN1c3RvbUV2ZW50KCJMT05HX1BSRVNTIik7YS5jaGFuZ2VkVG91Y2hlc1swXS50YXJnZXQ/LmRpc3BhdGNoRXZlbnQoYil9O3RoaXMub250b3VjaHN0YXJ0PWE9Pnt0aGlzLmo9Xy5xeChfLmpmLCgpPT57dGhpcy5CKGEpO3RoaXMubz0hMH0sdGhpcy5EKX07dGhpcy5vbnRvdWNobW92ZT0oKT0+e18uamYuQWEodGhpcy5qKTt0aGlzLmo9TmFOO3RoaXMubz0hMTt0aGlzLnY9ITB9O3RoaXMub250b3VjaGVuZD1hPT57dGhpcy5qJiYhdGhpcy5vJiYhdGhpcy52JiZhLmNoYW5nZWRUb3VjaGVzWzBdLnRhcmdldD8uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNsaWNrIikpO18uamYuQWEodGhpcy5qKTt0aGlzLmo9TmFOO3RoaXMudj10aGlzLm89ITF9fX07dmFyIEtjYT1jbGFzcyBleHRlbmRzIGFkYXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuY2FsbGJhY2s9YTt0aGlzLkI9Yj0+e3RoaXMuY2FsbGJhY2s/LihiKX19fTt2YXIgYmRhO2JkYT1fLngoImFsbG93X25lc3RlZF9yZW5kZXJfa3MiKT92b2lkIDA6e0lrOl8uWEN9OwpfLlY9Xy5MKGE9Pnt2YXIgYj1XY2EoYSksYz1lPT57dmFyIGYsaCxrPV8uckYocD0+e2Y9ZSgpO2g9Xy51digoKT0+e2Zvcih2YXIgciBvZiBtKCkpe2xldCB0PU5GKHIpO3Q9dHlwZW9mIHQ9PT0ic3RyaW5nIj9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KTp0O2lmKCEodCBpbnN0YW5jZW9mIE5vZGUpKXtyPW5ldyBfLlhqKCJQYXJ0IGlzIG5vdCBhIG5vZGUiLHQsdHlwZW9mIHQpO18uR3Aocik7YnJlYWt9cC5hcHBlbmRDaGlsZCh0KX19KX0pLGw9Xy51RihiLHtpc0VxdWFsOlZjYX0pLG09KCk9Pnt2YXIgcD1lKCkscj1sKCksdD1bXSx2PXAuY29udGVudC5sZW5ndGgsej1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtpZihwLnBhcmFncmFwaFN0eWxlUnVucylmb3IobGV0IE0gb2YgcC5wYXJhZ3JhcGhTdHlsZVJ1bnMpe3ZhciBFPXQsQT1FLnB1c2g7YTp7aWYoIU0ubGlzdEdyb3VwPy5saXN0SXRlbXMpe3ZhciBGPVtdO2JyZWFrIGF9Rj1bXTtiOnN3aXRjaChNLmxpc3RHcm91cC5saXN0VHlwZSl7Y2FzZSAiTElTVF9UWVBFX0JVTExFVCI6dmFyIEM9CiJ1bCI7YnJlYWsgYjtkZWZhdWx0OkM9InNwYW4ifUYucHVzaChIRih7cnVuOk0sdGV4dExlbmd0aDp2LHRhZzpDLGNvbmZpZzp7Y2xhc3NOYW1lOiJ5dEF0dHJpYnV0ZWRTdHJpbmdMaXN0R3JvdXAifSxzdGFydEluZGV4Ok0uc3RhcnRJbmRleCxsZW5ndGg6TS5sZW5ndGh9KSk7Zm9yKGxldCBTIG9mIE0ubGlzdEdyb3VwLmxpc3RJdGVtcyl7Yjpzd2l0Y2goTS5saXN0R3JvdXAubGlzdFR5cGUpe2Nhc2UgIkxJU1RfVFlQRV9CVUxMRVQiOkM9ImxpIjticmVhayBiO2RlZmF1bHQ6Qz0ic3BhbiJ9Ri5wdXNoKEhGKHtydW46TSx0ZXh0TGVuZ3RoOnYsdGFnOkMsc3RhcnRJbmRleDpTLnN0YXJ0SW5kZXgsbGVuZ3RoOlMubGVuZ3RofSkpfX1BLmNhbGwoRSwuLi5GKX1pZihwLnN0eWxlUnVucyYmIXI/LkNqKWZvcih2YXIgRyBvZiBwLnN0eWxlUnVucylFPVFjYShHLHosciksdC5wdXNoKEhGKHtydW46Ryx0ZXh0TGVuZ3RoOnYsdGFnOiJzcGFuIixjb25maWc6RSxzdGFydEluZGV4Okcuc3RhcnRJbmRleCwKbGVuZ3RoOkcubGVuZ3RofSkpO2lmKHAuZGVjb3JhdGlvblJ1bnMpZm9yKHZhciBEIG9mIHAuZGVjb3JhdGlvblJ1bnMpRz1OY2EoRCx6KSxFPV8uQihELnRleHREZWNvcmF0b3IsR0YpLEE9Xy5CKEQudGV4dERlY29yYXRvcixHRiksdC5wdXNoKEhGKHtydW46RCx0ZXh0TGVuZ3RoOnYsdGFnOiJzcGFuIixjb25maWc6RyxzdGFydEluZGV4Ol8uQihELnRleHREZWNvcmF0b3IsXy5GRik/LnN0YXJ0SW5kZXh8fEU/LnN0YXJ0SW5kZXh8fDAsbGVuZ3RoOl8uQihELnRleHREZWNvcmF0b3IsXy5GRik/Lmxlbmd0aHx8QT8ubGVuZ3RofHwwfSkpO2lmKHAuY29tbWFuZFJ1bnMmJiFyPy5tYSlmb3IodmFyIEggb2YgcC5jb21tYW5kUnVucyl6PUxjYShILHIpLHQucHVzaChIRih7cnVuOkgsdGV4dExlbmd0aDp2LHRhZzoiYSIsY29uZmlnOnosc3RhcnRJbmRleDpILnN0YXJ0SW5kZXgsbGVuZ3RoOkgubGVuZ3RofSkpO2lmKHAuYXR0YWNobWVudFJ1bnMpZm9yKGxldCBNIG9mIHAuYXR0YWNobWVudFJ1bnMpe3A9CntjbGFzc05hbWU6Inl0QXR0cmlidXRlZFN0cmluZ0lubGluZUJsb2NrTW9kIn07TS5lbGVtZW50Py5wcm9wZXJ0aWVzJiYoSD17fSx6PV8uQihNLmVsZW1lbnQ/LnByb3BlcnRpZXMsXy5oRSksej8ubWFyZ2luJiYoej16Lm1hcmdpbixEPShHPV8udygiSFRNTF9ESVIiKT09PSJydGwifHxkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiZGlyIik9PT0icnRsIik/ei5lbmR8fHoucmlnaHQ6ei5zdGFydHx8ei5sZWZ0LEc9Rz96LnN0YXJ0fHx6LmxlZnQ6ei5lbmR8fHoucmlnaHQsRCYmKEhbIm1hcmdpbi1sZWZ0Il09Q0YoRCkpLEcmJihIWyJtYXJnaW4tcmlnaHQiXT1DRihHKSksei50b3AmJihIWyJtYXJnaW4tdG9wIl09Q0Yoei50b3ApKSx6LmJvdHRvbSYmKEhbIm1hcmdpbi1ib3R0b20iXT1DRih6LmJvdHRvbSkpKSxIPU9iamVjdC5rZXlzKEgpLmxlbmd0aCE9PTA/SDp2b2lkIDAscC5zdHlsZT1IKTtIPXthbHQ6IiIsWWE6ITAsVGE6ITB9O3o9WyJ5dEF0dHJpYnV0ZWRTdHJpbmdJbWFnZUVsZW1lbnQiXTsKaWYoTS5hbGlnbm1lbnQpe2E6c3dpdGNoKE0uYWxpZ25tZW50KXtjYXNlICJBTElHTk1FTlRfQkFTRUxJTkUiOkQ9Inl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50QmFzZWxpbmUiO2JyZWFrIGE7Y2FzZSAiQUxJR05NRU5UX1ZFUlRJQ0FMX0NFTlRFUiI6RD0ieXRBdHRyaWJ1dGVkU3RyaW5nSW1hZ2VBbGlnbm1lbnRWZXJ0aWNhbENlbnRlciI7YnJlYWsgYTtkZWZhdWx0OkQ9Inl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50Qm90dG9tIn16LnB1c2goRCl9TS5lbGVtZW50Py5wcm9wZXJ0aWVzJiYoRD17fSxHPV8uQihNLmVsZW1lbnQucHJvcGVydGllcyxfLmhFKSxHPy5oZWlnaHQmJihELmhlaWdodD1DRihHLmhlaWdodCkpLEc/LndpZHRoJiYoRC53aWR0aD1DRihHLndpZHRoKSksRD1PYmplY3Qua2V5cyhEKS5sZW5ndGghPT0wP0Q6dm9pZCAwLEguc3R5bGU9QkYoRCksSC5hbHQ9Xy5CKE0uZWxlbWVudC5wcm9wZXJ0aWVzLFpjYSk/LmxhYmVsfHwiIik7SC5jbGFzc05hbWU9Cnouam9pbigiICIpO3o9TS5lbGVtZW50Py50eXBlP18uQihNLmVsZW1lbnQudHlwZSwkY2EpPy5pbWFnZTp2b2lkIDA7dC5wdXNoKEhGKHtydW46TSx0ZXh0TGVuZ3RoOnYsdGFnOiJpbWciLGltYWdlOnosZ2o6SCxPbDpwLHN0YXJ0SW5kZXg6TS5zdGFydEluZGV4LGxlbmd0aDpNLmxlbmd0aD8/MH0pKX1pZihyPy5oZWFkZXJSdW5zKWZvcih2YXIgUiBvZiByLmhlYWRlclJ1bnMpaWYoUi5oZWFkZXJNYXBwaW5nJiZbIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMSIsIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMiIsIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMyJdLmluY2x1ZGVzKFIuaGVhZGVyTWFwcGluZykpe2E6e3N3aXRjaChSLmhlYWRlck1hcHBpbmcpe2Nhc2UgIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMSI6cj0ieXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzEiOwpicmVhayBhO2Nhc2UgIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMiI6cj0ieXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzIiO2JyZWFrIGE7Y2FzZSAiQVRUUklCVVRFRF9TVFJJTkdfSEVBREVSX01BUFBJTkdfSEVBRElOR18zIjpyPSJ5dEF0dHJpYnV0ZWRTdHJpbmdIZWFkaW5nMyI7YnJlYWsgYX1yPXZvaWQgMH10LnB1c2goSEYoe3J1bjpSLHRleHRMZW5ndGg6dix0YWc6InNwYW4iLGNvbmZpZzpyP3tjbGFzc05hbWU6cn06dm9pZCAwLHN0YXJ0SW5kZXg6Ui5zdGFydEluZGV4LGxlbmd0aDpSLmxlbmd0aH0pKX1pZihsKCk/LnVzZXJJbnB1dClmb3IobGV0IE0gb2YgdCl7aWYoTS50YWc9PT0iYSJ8fE0udGFnPT09ImxpIiljb250aW51ZTtsZXQgUzsoUz1NKS5jb25maWd8fChTLmNvbmZpZz17fSk7TS50YWc9PT0idWwiP00uY29uZmlnLmRpcj1fLnkoKS5yZXNvbHZlKF8ubEYpOk0uY29uZmlnLmRpcj0iYXV0byJ9aWYoZSgpLmNvbnRlbnQpe3Y9ZSgpLmNvbnRlbnQ7ClRjYSh0KTtSPXtkYXRhOm51bGwsc3RhcnQ6MCxlbmQ6di5sZW5ndGgsbGM6W119O2ZvcihsZXQgTSBvZiB0KUtGKFIsTS5zdGFydEluZGV4LE0ud2wsTSk7TEYodixSKTt0PVIubGN9ZWxzZSB0PVtdO3JldHVybiB0fSxuPSEwO18ubkUoKCk9PntlKCk7bCgpO2lmKG4mJihuPSExLE1GKGUoKSxmKSkpcmV0dXJuO3ZhciBwPW0oKTtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dmFyIHI9ay52YWx1ZTtyJiYoci5pbm5lclRleHQ9IiIsaD8uKCksaD1fLnhGKHIsKCk9Pl8uSyhVY2Ese2xjOnB9KSxiZGEpKX0pfSwidjJaMG9lIik7cmV0dXJuIF8uSygic3BhbiIse2VsOmssY2xhc3M6KCk9Pnt2YXIgcDtpZihwPWUoKSl7cD1lKCk7dmFyIHI9YigpO2xldCB0PVtdO3QucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nSG9zdCIpO3I/LmNsYXNzTmFtZSYmdC5wdXNoKHI/LmNsYXNzTmFtZSk7cj8ueWM/dC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdFbGxpcHNpc1RydW5jYXRlIik6cj8ubm9XcmFwPwp0LnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1doaXRlU3BhY2VOb1dyYXAiKTpyPy5yZ3x8dC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdXaGl0ZVNwYWNlUHJlV3JhcCIpO3I/LlhhJiZ0LnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IiKTtwLmFsaWdubWVudCYmdC5wdXNoKFJjYShwLmFsaWdubWVudCkpO3AubGluZUJyZWFrTW9kZSYmdC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdXb3JkV3JhcHBpbmciKTtwPXQuam9pbigiICIpfXJldHVybiBwfSxzdHlsZTphLnN0eWxlLGRpcjooKT0+YigpLnVzZXJJbnB1dD8iYXV0byI6dm9pZCAwLCJhcmlhLWxhYmVsIjooKT0+SkYoZSgpLGIoKS5hcmlhTGFiZWwpP2IoKS5hcmlhTGFiZWw6dm9pZCAwLHJvbGU6KCk9PkpGKGUoKSxiKCkuYXJpYUxhYmVsKT8idGV4dCI6dm9pZCAwfSl9LGQ9Xy51RigoKT0+e3ZhciBlPWEudGV4dD8uKCk7aWYoZSlyZXR1cm4gZT1lPy5jb250ZW50IT09dm9pZCAwP2U6Xy5BRihlKSwKZT8uY29udGVudD9lOnZvaWQgMH0se2lzRXF1YWw6TUZ9KTtyZXR1cm4gYS5ZdT9jKGQpOl8uSyhfLk8se0E6ZCx0aGVuOmN9KX0sInEiKTtfLlYuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFFKO1FKPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIG51bGw7YT1PYmplY3Qua2V5cyhhKTtmb3IobGV0IGMgb2YgYSlpZihhPWMudG9Mb3dlckNhc2UoKSxhLmluZGV4T2YoYixhLmxlbmd0aC1iLmxlbmd0aCk+LTEpcmV0dXJuIGM7cmV0dXJuIG51bGx9O18uUko9ZnVuY3Rpb24oYSl7dmFyIGI9UUooYSwiYWN0aW9uIil8fFFKKGEsImNvbW1hbmQiKXx8UUooYSwiZW5kcG9pbnQiKTtpZighYilyZXR1cm4gbnVsbDt7dmFyIGM9Inl0IitiO2xldCBkPV8uUEouZ2V0KGMpO2Q/Yz1kOihiPWB5dC0ke2IucmVwbGFjZSgvKFtBLVpdKS9nLCItJDEiKS50b0xvd2VyQ2FzZSgpfWAsXy5QSi5zZXQoYyxiKSxjPWIpfV8uQihhLF8uTkopJiYoYys9Ii0iK18uQihhLF8uTkopLnNpZ25hbC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKTtyZXR1cm4gY307Xy5TSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj1uZXcgTWFwfX07Xy53YShfLlNKKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEZkYSxHZGEsQ0gsSGRhLERILEVILEZILElkYTtGZGE9ZnVuY3Rpb24oYSxiPTAsYz0tMSl7aWYoIWEudG90YWxMZW5ndGh8fCFjKXJldHVybiBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDApKTtjPDAmJihjPWEudG90YWxMZW5ndGgtYik7YS5mb2N1cyhiKTtpZighKGItYS52K2M8PWEualthLm9dLmxlbmd0aCkpe3ZhciBkPWEubyxlPWEudjthLmZvY3VzKGIrYy0xKTtlPW5ldyBVaW50OEFycmF5KGEudithLmpbYS5vXS5sZW5ndGgtZSk7bGV0IGY9MDtmb3IobGV0IGg9ZDtoPD1hLm87aCsrKWUuc2V0KGEualtoXSxmKSxmKz1hLmpbaF0ubGVuZ3RoO2Euai5zcGxpY2UoZCxhLm8tZCsxLGUpO2Eubz0wO2Eudj0wO2EuZm9jdXMoYil9ZD1hLmpbYS5vXTtyZXR1cm4gbmV3IERhdGFWaWV3KGQuYnVmZmVyLGQuYnl0ZU9mZnNldCtiLWEudixjKX07CkdkYT1mdW5jdGlvbihhLGI9MCxjPS0xKXthPUZkYShhLGIsYyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpfTtDSD1mdW5jdGlvbihhLGIpe2EuZm9jdXMoYik7cmV0dXJuIGEualthLm9dW2ItYS52XX07CkhkYT1mdW5jdGlvbihhKXtpZighYS5sZW5ndGgpcmV0dXJuIiI7dHJ5e2lmKF8uc0EpcmV0dXJuIF8uc0EuZGVjb2RlKGEpO2lmKHR5cGVvZiBGZXRjaEludGVybmFsIT09InVuZGVmaW5lZCIpcmV0dXJuIEZldGNoSW50ZXJuYWwuZGVjb2RlRnJvbVVURjgoYSl9Y2F0Y2h7fWZvcih2YXIgYj0wLGM9W10sZD1hLmxlbmd0aDtiPGQ7KXtsZXQgZj0wO2Zvcig7ZjwxMDI0JiZiPGQ7KXt2YXIgZT1hW2IrK107aWYoZTwxMjgpe18uckFbZisrXT1lO2NvbnRpbnVlfWlmKGU8MjI0KWU9KGUmMzEpPDw2fGFbYisrXSY2MztlbHNlIGlmKGU8MjQwKWU9KGUmMTUpPDwxMnwoYVtiKytdJjYzKTw8NnxhW2IrK10mNjM7ZWxzZXtpZihmKzE9PT0xMDI0KXstLWI7YnJlYWt9ZT0oZSY3KTw8MTh8KGFbYisrXSY2Myk8PDEyfChhW2IrK10mNjMpPDw2fGFbYisrXSY2MztlLT02NTUzNjtfLnJBW2YrK109NTUyOTZ8ZT4+MTA7ZT01NjMyMHxlJjEwMjN9Xy5yQVtmKytdPWV9ZT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywKXy5yQSk7ZjwxMDI0JiYoZT1lLnN1YnN0cmluZygwLGYpKTtjLnB1c2goZSl9cmV0dXJuIGMuam9pbigiIil9O0RIPWZ1bmN0aW9uKGEpe3ZhciBiPUNIKGEuaixhLnBvcyk7KythLnBvcztpZihiPDEyOClyZXR1cm4gYjtmb3IodmFyIGM9YiYxMjcsZD0xO2I+PTEyODspYj1DSChhLmosYS5wb3MpLCsrYS5wb3MsZCo9MTI4LGMrPShiJjEyNykqZDtyZXR1cm4gY307RUg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm87Zm9yKGEubz0tMTthLnBvcysxPD1hLmoudG90YWxMZW5ndGg7KXtjPDAmJihjPURIKGEpKTt2YXIgZD1jPj4zO2xldCBlPWMmNztpZihkPT09YilyZXR1cm4hMDtpZihkPmIpe2Eubz1jO2JyZWFrfWM9LTE7c3dpdGNoKGUpe2Nhc2UgMDpESChhKTticmVhaztjYXNlIDE6YS5wb3MrPTg7YnJlYWs7Y2FzZSAyOmQ9REgoYSk7YS5wb3MrPWQ7YnJlYWs7Y2FzZSA1OmEucG9zKz00fX1yZXR1cm4hMX07Cl8uR0g9ZnVuY3Rpb24oYSl7YT1uZXcgSWRhKG5ldyBGSChbXy51YyhkZWNvZGVVUklDb21wb25lbnQoYSkpXSkpO2lmKEVIKGEsMikpe3ZhciBiPURIKGEpO3ZhciBjPUdkYShhLmosYS5wb3MsYik7YS5wb3MrPWI7Yj1jfWVsc2UgYj12b2lkIDA7Yj1iP0hkYShiKTp2b2lkIDA7YT1FSChhLDQpP0RIKGEpOnZvaWQgMDtjPV8udkFbYV07aWYodHlwZW9mIGM9PT0idW5kZWZpbmVkIil0aHJvdyBhPW5ldyBfLlhqKCJGYWlsZWQgdG8gcmVjb2duaXplIGZpZWxkIG51bWJlciIse25hbWU6IkVudGl0eUtleUhlbHBlckVycm9yIixXSTphfSksXy5HcChhKSxhO3JldHVybntSSTphLGVudGl0eVR5cGU6YyxlbnRpdHlJZDpifX07Xy5ISD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInBsYXllclN0YXRlRW50aXR5IixiKX07Xy5JSD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImJvb2xlYW5FbnRpdHkiLGIpfTsKRkg9Y2xhc3N7Y29uc3RydWN0b3IoYT1bXSl7dGhpcy5qPVtdO3RoaXMudG90YWxMZW5ndGg9dGhpcy52PXRoaXMubz0wO2EuZm9yRWFjaChiPT57dGhpcy5hcHBlbmQoYil9KX1hcHBlbmQoYSl7dmFyIGI9dGhpcy5qLmxlbmd0aD09PTA/ITE6KGI9dGhpcy5qW3RoaXMuai5sZW5ndGgtMV0pJiZiLmJ1ZmZlcj09PWEuYnVmZmVyJiZiLmJ5dGVPZmZzZXQrYi5sZW5ndGg9PT1hLmJ5dGVPZmZzZXQ7Yj8oYj10aGlzLmpbdGhpcy5qLmxlbmd0aC0xXSx0aGlzLmpbdGhpcy5qLmxlbmd0aC0xXT1uZXcgVWludDhBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQsYi5sZW5ndGgrYS5sZW5ndGgpLHRoaXMudj10aGlzLm89MCk6dGhpcy5qLnB1c2goYSk7dGhpcy50b3RhbExlbmd0aCs9YS5sZW5ndGh9c3BsaXQoYSl7dmFyIGI9bmV3IEZILGM9bmV3IEZIO2ZvcihsZXQgZCBvZiB0aGlzLmopYT49ZC5sZW5ndGg/KGIuYXBwZW5kKGQpLGEtPWQubGVuZ3RoKTphPyhiLmFwcGVuZChuZXcgVWludDhBcnJheShkLmJ1ZmZlciwKZC5ieXRlT2Zmc2V0LGEpKSxjLmFwcGVuZChuZXcgVWludDhBcnJheShkLmJ1ZmZlcixkLmJ5dGVPZmZzZXQrYSxkLmxlbmd0aC1hKSksYT0wKTpjLmFwcGVuZChkKTtyZXR1cm57ako6YixiTDpjfX1pc0ZvY3VzZWQoYSl7cmV0dXJuIGE+PXRoaXMudiYmYTx0aGlzLnYrdGhpcy5qW3RoaXMub10ubGVuZ3RofWZvY3VzKGEpe2lmKCF0aGlzLmlzRm9jdXNlZChhKSlmb3IoYTx0aGlzLnYmJih0aGlzLnY9dGhpcy5vPTApO3RoaXMudit0aGlzLmpbdGhpcy5vXS5sZW5ndGg8PWEmJnRoaXMubzx0aGlzLmoubGVuZ3RoOyl0aGlzLnYrPXRoaXMualt0aGlzLm9dLmxlbmd0aCx0aGlzLm8rPTF9fTtJZGE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWE7dGhpcy5wb3M9MDt0aGlzLm89LTF9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEplYSxhSztKZWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1aSixkPV8uamYuR2EoKCk9PntjLlMoe3RleHQ6Yi50ZXh0LGxvY2F0aW9uOiRKLGFuY2hvcjphLG9mZnNldDpiLm9mZnNldCxzdHlsZTpiLnN0eWxlLGhvdGtleTpiLmhvdGtleX0pO2MubyghMCl9LDQsYi5kZWxheSk7Yy5qKGQpfTthSz1mdW5jdGlvbigpe3ZhciBhPVpKLGI9YS52KCk7YiYmKF8uamYuQWEoYiksYS5qKHZvaWQgMCkpO2EubyghMSl9OwpfLmJLPWZ1bmN0aW9uKGEsYil7dmFyIFtjLGRdPV8uQUMoKCk9PmEoKT8/Yj8uKCk/LnRleHQpO3JldHVybltlPT57dmFyIGY9Xy5OKCgpPT4oe2xvY2F0aW9uOiJib3R0b20iLG9mZnNldDoxNixkZWxheToxLC4uLmI/LigpLHRleHQ6YygpPz8iIn0pLHZvaWQgMCwiSUpVMzhkIik7Xy5uRSgoKT0+e3ZhciBsPWYoKTtfLkVBKCgpPT57Xy5qZi5HYSgoKT0+e1pKLm5vdGlmeShlLGwpfSw0KX0pfSwiV2xzZ1pjIik7dmFyIGg9KCk9PntKZWEoZSxmKCkpfSxrPSgpPT57YUsoKX07ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixoKTtlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixoKTtlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGspO2UuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsayk7ZS5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLGspO18uWXUoKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGgpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsCmspO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGgpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsayk7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0YXAiLGspO2FLKCl9KX0sZF19O3ZhciAkSj17bGVmdDoiMHB4IixyaWdodDoiYXV0byIsdG9wOiItMTAwcHgiLGJvdHRvbToiYXV0byJ9O3ZhciBaSj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtbdGhpcy5zdGF0ZSx0aGlzLlNdPV8uSih2b2lkIDAsdm9pZCAwLCJMZmt4b2YiKTtbdGhpcy5zaG93LHRoaXMub109Xy5KKCExLHZvaWQgMCwiazFGa29lIik7W3RoaXMudix0aGlzLmpdPV8uSih2b2lkIDAsdm9pZCAwLCJVbDhNSWMiKX1ub3RpZnkoYSxiKXt0aGlzLnN0YXRlKCk/LmFuY2hvcj09PWEmJnRoaXMuUyh7dGV4dDpiLnRleHQsbG9jYXRpb246JEosYW5jaG9yOmEsb2Zmc2V0OmIub2Zmc2V0LHN0eWxlOmIuc3R5bGUsaG90a2V5OmIuaG90a2V5fSl9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5jSz1uZXcgXy5JKCJ0b29sdGlwVmlld01vZGVsIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZEs9ZnVuY3Rpb24oYSxiKXtfLmFFKGEsey4uLmIsUHA6ITB9KX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBUYmE7VGJhPWZ1bmN0aW9uKGEsYil7dmFyIFtjLGRdPV8uSighMSx2b2lkIDAsIm1OeXd6YyIpLGU9ITEsZixoPWs9PntpZihmKXJldHVybiBfLksoZix7Li4ua30pO2lmKCFlKXtsZXQgbD1hKCk7ZT0hMDtpZihsIGluc3RhbmNlb2YgUHJvbWlzZSl7bGV0IG09Xy5hRDttPy5zdSgpO2wudGhlbihuPT57Zj1uO2QoITApO20/LkhyKCl9KS5jYXRjaChuPT57bT8uSHIoKTtpZihiPy5kZWJ1Z05hbWUpe3ZhciBwPW5ldyBfLlhqKCJmYWlsZWQgdG8gbG9hZCBjaHVuayIsYi5kZWJ1Z05hbWUsbj8udG9TdHJpbmc/LigpKTtfLkdwKHApfWVsc2UgXy5HcChuKTt0aHJvdyBuO30pfWVsc2UgcmV0dXJuIGY9bCxfLksoZix7Li4ua30pfXJldHVybiBfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKGYsey4uLmt9KX0pfTtfLmJELnNldChoLGEpO3JldHVybiBofTtfLmNEPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFRiYShhLGI/e2RlYnVnTmFtZTpifTp2b2lkIDApfTtfLkpEPW5ldyBfLlZzKCJDSFVOS19SRUdJU1RSWV9UT0tFTiIpO18uYkQ9bmV3IFdlYWtNYXA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZUs9bmV3IF8uVnMoIkxJR0hUX0VGRkVDVF9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgS2VhO18uZks9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9IiI7Zm9yKGxldCBjIG9mIEtlYSlpZihhLmVuZHNXaXRoKGMpKXtiPWEuc2xpY2UoMCwtYy5sZW5ndGgpO2JyZWFrfWlmKGImJihhPU51bWJlcihiKSwhaXNOYU4oYSkpKXJldHVybiBhfX07S2VhPVsicmVtIiwicHgiLCJtcyIsIiUiLCJzIl07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBLZGEsUkg7Xy5RSD1mdW5jdGlvbihhKXt2YXIgYj1fLlBIKCk7cmV0dXJuIEtkYShhLGIpfTtfLlBIPWZ1bmN0aW9uKCl7dmFyIGE9Xy55KCkucmVzb2x2ZShfLkluKFJIKSksW2IsY109Xy5KKGEsdm9pZCAwLCJ6TElZUmMiKTthfHxfLll0KFJILGMpO3JldHVybiBifTtLZGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5OKCgpPT57dmFyIGM9YSgpO3JldHVybiBjP2IoKT8uKGMpOnZvaWQgMH0sdm9pZCAwLCJlUXhobWIiKX07Ukg9bmV3IF8uVnMoIlNFTUFOVElDX0xBWU9VVF9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmlLPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiT3RLU0plIik7cmV0dXJuIF8uVUN9O18uaks9Xy5jRCgoKT0+Xy5pSygpLCJ0b3VjaEZlZWRiYWNrU2hhcGUiKTtfLll0KF8uSkQsYT0+e2EuSigidG91Y2hGZWVkYmFja1NoYXBlIiwiT3RLU0plIixfLmlLKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga0ssTmVhLGxLLFBlYSxtSyxRZWEsUmVhLG5LLHBLLFZlYSxXZWEsWGVhLFllYTtrSz1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IobGV0IFtjLGRdb2YgYS5qLmVudHJpZXMoKSliLnB1c2goe2VsZW1lbnQ6YyxQeTpkfSk7YS52KGIpfTtOZWE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7ZD0wfXZhciBkPTA7cmV0dXJuIGZ1bmN0aW9uKGUpe2R8fChkPV8udS5zZXRUaW1lb3V0KGMsYiksYS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fTtsSz1mdW5jdGlvbihhKXtyZXR1cm4haXNOYU4oTnVtYmVyKGEpKSYmIS9eW1xzXHhhMF0qJC8udGVzdChhKX07ClBlYT1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtjPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGEsW3t0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMHB4KSJ9LHt0cmFuc2Zvcm06YHRyYW5zbGF0ZVkoJHsoZj9tSyhiLGMsZCxlKTpkPy0xOjEpKmh9cHgpYH1dLE9lYSksZG9jdW1lbnQudGltZWxpbmUpO2I/KGEuc3R5bGUuZGlzcGxheT0iIixjLm9uZmluaXNoPW51bGwpOmMub25maW5pc2g9KCk9PnthLnN0eWxlLmRpc3BsYXk9Im5vbmUifTtjLnBsYXkoKTtyZXR1cm4gY307bUs9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9TnVtYmVyKGEpKzEwO2I/YT8oYT1OdW1iZXIoYSksYj1OdW1iZXIoYiksYz1jP2I8YT9lOmUrMTA6YjxhP2UtMTA6ZSk6Yz1jPzMwOjA6Yz1hPT09IjAiP2U6Yz9lLTEwOmUrMTA7cmV0dXJuIGQtY307ClFlYT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlICJtb25vIjpzd2l0Y2goYil7Y2FzZSAiZmlsbGVkIjpyZXR1cm4gMTtjYXNlICJ0b25hbCI6cmV0dXJuIDM7Y2FzZSAib3V0bGluZSI6cmV0dXJuIDU7ZGVmYXVsdDpyZXR1cm4gMH1jYXNlICJtb25vLWludmVyc2UiOnN3aXRjaChiKXtjYXNlICJmaWxsZWQiOnJldHVybiAyO2Nhc2UgInRvbmFsIjpyZXR1cm4gNDtjYXNlICJvdXRsaW5lIjpyZXR1cm4gNjtkZWZhdWx0OnJldHVybiAwfWRlZmF1bHQ6cmV0dXJuIDB9fTsKUmVhPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGgpe3ZhciB7ZGlzYWJsZWQ6ayxpY29uUG9zaXRpb246bCxzdHlsZTptLGZvY3VzZWQ6bix1c2VPdXRsaW5lZEljb246cCxBYzpyfT1uSyhhKSx0PSgpPT4hIUEoKSYmbCgpPT09Imljb24tb25seSIsdj0oKT0+ISFBKCkmJmwoKT09PSJpY29uLW9ubHktNDAiLHo9KCk9PiEhQSgpJiZsKCk9PT0iaWNvbi13aXRoLWxhYmVsIixFPSgpPT4oaygpPyJkaXNhYmxlZCI6YSgpLnN0YXRlKT09PSJkaXNhYmxlZCJ8fGsoKSxBPSgpPT4hIWJ8fCEhZD8uKCl8fCEhcj8uKCksRj0oKT0+Xy54KCJhbmltYXRlX2ljb25fZGlzYWJsZWRfa2lsbHN3aXRjaCIpP2g/LigpOmg/LigpJiYhRSgpLEM9Xy5QSCgpLEc9KCk9Pl8ub0soYSgpLCEwLEMsYSgpLmlnbm9yZUljb25TaXplT3ZlcnJpZGUpO3JldHVybnt0eXBlOigpPT5tKCk9PT0iY2FsbC10by1hY3Rpb24taW52ZXJzZSI/InRleHQiOm0oKT09PSJvdmVybGF5LWRhcmsiJiZhKCkudHlwZSE9PSJmaWxsZWQiJiYKYSgpLnR5cGUhPT0idG9uYWwiPyJ0b25hbCI6YSgpLnR5cGUsdG46KCk9PihuKCl8fGY/LigpKSYmIWsoKSxJbDooKT0+ISFBKCkmJmwoKT09PSJsZWFkaW5nIixLbDooKT0+ISFBKCkmJmwoKT09PSJ0cmFpbGluZyIsSmw6KCk9PiEhQSgpJiYhKCFjJiYhZT8uKCkpJiZsKCk9PT0ibGVhZGluZy10cmFpbGluZyIsRXc6dCxGdzp2LEd3OnosaWNvbkJ1dHRvbjooKT0+dCgpfHx2KCl8fHooKSxqaTpFLHZ6OigpPT4hYSgpLmlnbm9yZUljb25TaXplT3ZlcnJpZGUmJnBLKGEoKSxBKCkpLG14OmI/YjooKT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjpyfSwoKT0+Xy5LKCJkaXYiLHtzdHlsZTpfLklFKHt3aWR0aDooKT0+YCR7RygpfXB4YCxoZWlnaHQ6KCk9PmAke0coKX1weGB9KSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uVyx7ZGF0YTpyfSx7YW5pbWF0ZWRBc3NldFZpZXdNb2RlbDooe2RhdGE6RH0pPT5fLksoXy5xSyx7ZGF0YTpELHNuOiEwfSl9KSkpLF8uSyhfLkRFLApudWxsLCgpPT5fLksoXy5NRCx7aWNvbjpkLFpwOigpPT5hKCkuY3VzdG9tQ29sb3JzPy5tSixzaXplOkcsYWN0aXZlOigpPT5hKCkudG9nZ2xlZCYmIXA/LigpLGFnOigpPT57YSgpfSxHZTpGfSkpKSxhQTpjP2M6KCk9Pl8uSyhfLk1ELHtpY29uOmUsc2l6ZTpHLGFjdGl2ZTooKT0+YSgpLnRvZ2dsZWQmJiFwPy4oKSxhZzooKT0+e2EoKX19KX19OwpuSz1mdW5jdGlvbihhKXtyZXR1cm57c2l6ZTooKT0+YSgpLnNpemUsc3R5bGU6KCk9PmEoKS5zdHlsZSxmb2N1c2VkOigpPT5hKCkuZm9jdXNlZCxkaXNhYmxlZDooKT0+YSgpLmRpc2FibGVkLG9uVGFwOmI9PmEoKS5vblRhcD8uKGIpLG9pOigpPT5hKCkub2ksdWM6KCk9PmEoKS51YyxjdXN0b21Db2xvcnM6KCk9PmEoKS5jdXN0b21Db2xvcnMsc2VnbWVudGVkUG9zaXRpb246KCk9PmEoKS5zZWdtZW50ZWRQb3NpdGlvbix0b2dnbGVkOigpPT5hKCkudG9nZ2xlZCx0b2dnbGVhYmxlOigpPT5hKCkudG9nZ2xlYWJsZSxhY2Nlc3NpYmlsaXR5TGFiZWw6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5TGFiZWwsSGU6KCk9PmEoKS5IZSxvblRvZ2dsZTpiPT5hKCkub25Ub2dnbGU/LihiKSxpY29uUG9zaXRpb246KCk9PmEoKS5pY29uUG9zaXRpb24sb25lT2ZmQ3VzdG9tVGV4dFdyYXA6KCk9PmEoKS5vbmVPZmZDdXN0b21UZXh0V3JhcCxJZjooKT0+YSgpLklmLEFwOigpPT5hKCkuQXAsdG9vbHRpcFRleHQ6KCk9PgphKCkudG9vbHRpcFRleHQsRG46KCk9PmEoKS5EbixhcmlhSGlkZGVuOigpPT5hKCkuYXJpYUhpZGRlbixhcmlhRXhwYW5kZWQ6KCk9PmEoKS5hcmlhRXhwYW5kZWQsdGFiSW5kZXg6KCk9PmEoKS50YWJJbmRleCxidXR0b25UZXh0OigpPT5hKCkuYnV0dG9uVGV4dCxXYTooKT0+YSgpLldhLGFiOigpPT5hKCkuYWIsb25DbGlja1JhdGVMaW1pdE1zOigpPT5hKCkub25DbGlja1JhdGVMaW1pdE1zLG9uSG92ZXI6Yj0+YSgpLm9uSG92ZXI/LihiKSxtaWRkbGVncm91bmRBc3NldDooKT0+YSgpLm1pZGRsZWdyb3VuZEFzc2V0LEFjOigpPT5hKCkuQWMsZGlzYWJsZUxpZ2h0U2hhcGU6KCk9PmEoKS5kaXNhYmxlTGlnaHRTaGFwZSx1c2VPdXRsaW5lZEljb246KCk9PmEoKS51c2VPdXRsaW5lZEljb259fTsKcEs9ZnVuY3Rpb24oYSxiKXtiPShhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHkifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHktNDAifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLXdpdGgtbGFiZWwiKSYmYjtyZXR1cm4hYS5zZWdtZW50ZWRQb3NpdGlvbiYmYiYmYS5zaXplPT09IlMifTsKXy5vSz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jKCk7aWYoXy54KCJ3ZWJfYnV0dG9uX2ljb25fc2l6ZV9leHBlcmltZW50Iikpe2E6e2M9Xy5mSyhlPy4oU2VhKSk/PzEyO3ZhciBmPV8uZksoZT8uKFRlYSkpPz8xODtlPV8uZksoZT8uKHJLKSk/PzI0O2xldCBoPWEuaWNvblBvc2l0aW9uPT09Imljb24tb25seSImJiFhLnNlZ21lbnRlZFBvc2l0aW9ufHxhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHktNDAifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLXdpdGgtbGFiZWwiO3N3aXRjaChhLnNpemUpe2Nhc2UgIlhTIjphPWM7YnJlYWsgYTtjYXNlICJTIjphPSFkJiZwSyhhLGIpP2U6ZjticmVhayBhO2Nhc2UgIk0iOmE9aD9lOmY7YnJlYWsgYTtkZWZhdWx0OmE9ZX19cmV0dXJuIGF9Yz1fLmZLKGU/LihVZWEpKT8/MTY7Zj1fLmZLKGU/LihySykpPz8yNDtzd2l0Y2goYS5zaXplKXtjYXNlICJYUyI6cmV0dXJuIGM7Y2FzZSAiUyI6cmV0dXJuIWQmJnBLKGEsYik/ZjpjO2RlZmF1bHQ6cmV0dXJuIGZ9fTsKVmVhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJmaWxsZWQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQiO2Nhc2UgIm91dGxpbmUiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5lIjtjYXNlICJ0b25hbCI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0In19OwpXZWE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgImNhbGwtdG8tYWN0aW9uIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uIjtjYXNlICJjYWxsLXRvLWFjdGlvbi1vdmVybGF5IjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheSI7Y2FzZSAibW9ubyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8iO2Nhc2UgIm92ZXJsYXkiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5IjtjYXNlICJvdmVybGF5LWRhcmsiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyayI7Y2FzZSAiY2FsbC10by1hY3Rpb24taW52ZXJzZSI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbkludmVyc2UiO2Nhc2UgIm1vbm8taW52ZXJzZSI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlIjtjYXNlICJicmFuZC1ncmFkaWVudCI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQiOwpjYXNlICJnZW4tYWktZ3JhZGllbnQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50IjtjYXNlICJyYWlzZWQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRSYWlzZWQiO2RlZmF1bHQ6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ifX07WGVhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJYUyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcyI7Y2FzZSAiUyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTIjtjYXNlICJMIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwiO2Nhc2UgIlhMIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTSJ9fTsKWWVhPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9Xy5oSygpO18ubkUoKCk9PntiJiYoYSgpP2Muai5zZXQoYix2b2lkIDApOmMuai5kZWxldGUoYiksa0soYykpfSwib0dRY2ljIik7Xy5ZdSgoKT0+e2Muai5kZWxldGUoYik7a0soYyl9KX19O18udEs9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJuTzVkVGQiKTtyZXR1cm4gXy5ZSn07Xy5xSz1fLmNEKCgpPT5fLnRLKCksImFuaW1hdGVkQXNzZXRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYW5pbWF0ZWRBc3NldFZpZXdNb2RlbCIsIm5PNWRUZCIsXy50Syl9KTt2YXIgT2VhPXtkdXJhdGlvbjoxRTMsZWFzaW5nOiJlYXNlIixmaWxsOiJmb3J3YXJkcyJ9LHVLPV8uTChhPT57dmFyIGI9Xy51RSgiYW5pbWF0ZWQtcm9sbGluZy1jaGFyYWN0ZXIiKSxjPXZvaWQgMCxkPV8uTigoKT0+bEsoYS5KYz8uKCkpfHxsSyhhLnhlPy4oKSksdm9pZCAwLCJxU0REOWQiKSxbZSxmXT1fLkooMCx2b2lkIDAsIlNJZ0tEZCIpO18ub0YoKCk9PntpZih3aW5kb3cuUmVzaXplT2JzZXJ2ZXImJl8ueCgid2ViX2ZpeF9yb2xsaW5nX251bWJlcnNfem9vbV9zYWZhcmkiKSl7bGV0IGg9bmV3IF8uV3QoKCk9Pnt2YXIgbD1NYXRoLnJvdW5kKChiLnZhbHVlLnF1ZXJ5U2VsZWN0b3IoImRpdiIpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ/PzApKjEwMCkvMTAwO2wmJmYobCl9LDUwMCksaz1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9PntoLnYoKX0pO2sub2JzZXJ2ZShiLnZhbHVlKTtfLll1KCgpPT57ay5kaXNjb25uZWN0KCk7aC5kaXNwb3NlKCl9KX19KTtfLm5FKCgpPT4Ke3ZhciBoPV8ueCgid2ViX2ZpeF9yb2xsaW5nX251bWJlcnNfem9vbV9zYWZhcmkiKT9lOmEuQmg7aWYoaCgpKXtjPy5jYW5jZWwoKTtpZihkKCkpe3ZhciBrPWEueGU/LigpP051bWJlcihhLnhlKCkpKzEwOmEuRWQoKT8wOjMwO2EueGI/LigpfHwoay09bUsoYS5KYz8uKCksYS54ZT8uKCksYS5FZCgpLGspKX1lbHNlIGlmKGs9YS5FZCgpPzA6MiwhYS54Yj8uKCkpe3ZhciBsPWEuRWQoKT8tMToxO2stPWx9Yi52YWx1ZS5zdHlsZS5tYXJnaW5Ub3A9YC0ke2sqaCgpfXB4YDthLnhiPy4oKT9jPVBlYShiLnZhbHVlLGEuSmM/LigpLGEueGU/LigpLGEuRWQoKSxrLGQoKSxoKCkpOmIudmFsdWUuc3R5bGUuZGlzcGxheT1hLkpjPy4oKT8iIjoibm9uZSJ9fSwiTko0Z0EiKTtyZXR1cm4gXy5LKCJhbmltYXRlZC1yb2xsaW5nLWNoYXJhY3RlciIse2VsOmIsY2xhc3M6ImFuaW1hdGVkUm9sbGluZ0NoYXJhY3Rlckhvc3QifSxfLksoXy5PLHtBOmQsdGhlbjooKT0+Xy5LKFplYSxudWxsKSxXOigpPT4KXy5LKCRlYSx7SmM6YS5KY30pfSkpfSwiZ2EiKTt1Sy5pZG9tQ29tcGF0PSEwO3ZhciBaZWE9Xy5MKCgpPT57dmFyIGE9W107Zm9yKGxldCBiPTE7YjwzMDtiKyspYS5wdXNoKF8uSygiZGl2IixudWxsLGIlMTApKTtyZXR1cm4gXy5LKF8uSUIsbnVsbCxfLksoImRpdiIsbnVsbCwiXHUwMGEwIiksYSxfLksoImRpdiIsbnVsbCwiXHUwMGEwIikpfSwiaGEiKSwkZWE9Xy5MKCh7SmM6YX0pPT5fLksoXy5JQixudWxsLF8uSygiZGl2IixudWxsLCJcdTAwYTAiKSxfLksoXy5PLHtBOigpPT4hYT8uKCl8fC9eW1xzXHhhMF0qJC8udGVzdChhPy4oKSksdGhlbjooKT0+Xy5LKCJkaXYiLG51bGwsIlx1MDBhMCIpLFc6KCk9Pl8uSygiZGl2IixudWxsLGEpfSksXy5LKCJkaXYiLG51bGwsIlx1MDBhMCIpKSwiaWEiKTt2YXIgdks9Xy5MKGE9Pnt2YXIgYj12b2lkIDAsYz12b2lkIDA7Xy5uRSgoKT0+e2I9YS5YYigpO2M9YS5udW1iZXJWYWx1ZT8uKCl9LCJyN3RxUWQiKTt2YXIgZD1fLk4oKCk9PntpZighYS5YYigpKXJldHVybltdO3ZhciBlPWEuUXA/LigpfHwhY3x8IWEubnVtYmVyVmFsdWU/LigpfHxjPGEubnVtYmVyVmFsdWUoKSxmPWEuWGIoKSxoPWEuZ2g/LigpP2EuaGVpZ2h0UHgoKSphLmdoKCk6YS5oZWlnaHRQeCgpLGs9ISFhLnhiPy4oKSxsPVtdLG09MCxuPTAscD0oYj9iLnJlcGxhY2UoL1xEL2csIiIpLmxlbmd0aDowKS0oZj9mLnJlcGxhY2UoL1xEL2csIiIpLmxlbmd0aDowKSxyPWI/Yi5zcGxpdCgvKFxkKS8pLmZpbHRlcihCb29sZWFuKTpbXTtmb3IoZj1mLnNwbGl0KC8oXGQpLykuZmlsdGVyKEJvb2xlYW4pO3A8MDspe3ZhciB0PWZbbl07bC5wdXNoKHtKYzp0LEVkOmUsQmg6aCx4YjprfSk7bisrO2xLKHQpJiZwKyt9Zm9yKDttPHA7KXQ9clttXSxsLnB1c2goe3hlOnQsRWQ6ZSwKQmg6aCx4YjprfSksbSsrLGxLKHQpfHxwKys7Zm9yKDtuPGYubGVuZ3RoOylwPWZbbl0sdD1yW21dLGxLKHApPT09bEsodCk/KG4rKyxtKyspOmxLKHApPyhtKysscD12b2lkIDApOmxLKHQpJiYobisrLHQ9dm9pZCAwKSxsLnB1c2goe0pjOnAseGU6dCxFZDplLEJoOmgseGI6a30pO3JldHVybiBsfSx2b2lkIDAsIndtbkhSIik7cmV0dXJuIF8uSygieXQtYW5pbWF0ZWQtcm9sbGluZy1udW1iZXIiLHtjbGFzczoiYW5pbWF0ZWRSb2xsaW5nTnVtYmVySG9zdCIsc3R5bGU6KCk9PmEuWGIoKT9bYGhlaWdodDogJHthLmdoPy4oKT9hLmhlaWdodFB4KCkqYS5naCgpOmEuaGVpZ2h0UHgoKX1weDtgLGBsaW5lLWhlaWdodDogJHthLmhlaWdodFB4KCl9cHg7YF0uam9pbigiICIpOiIiLGRpcjoibHRyIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uZ0cse3BhOmQsdGI6IklOREVYIn0sZT0+Xy5LKHVLLHtKYzooKT0+ZSgpLkpjLHhlOigpPT5lKCkueGUsQmg6KCk9PmUoKS5CaCxFZDooKT0+CmUoKS5FZCx4YjooKT0+ZSgpLnhifSkpKX0sImthIik7dksuaWRvbUNvbXBhdD0hMDt2YXIgYWZhPVsibW9ubyIsIm1vbm8taW52ZXJzZSIsIm92ZXJsYXkiXSxiZmE9WyJmaWxsZWQiXTt2YXIgd0s9e2N1cGNha2U6MS41LGRvbnV0OjEuNixlY2xhaXI6Mixmcm95bzoyLjIsZ2luZ2VyYnJlYWQ6Mi4zLGhvbmV5Y29tYjozLCJpY2UgY3JlYW0gc2FuZHdpY2giOjQsamVsbHliZWFuOjQuMSxraXRrYXQ6NC40LGxvbGxpcG9wOjUuMSxtYXJzaG1hbGxvdzo2LG5vdWdhdDo3LjF9LHhLO2E6e3ZhciB5Sz1fLmJjKCk7eUs9eUsudG9Mb3dlckNhc2UoKTtpZih5Sy5pbmRleE9mKCJhbmRyb2lkIikhPS0xKXt2YXIgeks9eUsubWF0Y2goL2FuZHJvaWRccyooXGQrKFwuXGQrKT8pW147fCldKls7KV0vKTtpZih6Syl7bGV0IGE9cGFyc2VGbG9hdCh6S1sxXSk7aWYoYTwxMDApe3hLPWE7YnJlYWsgYX19dmFyIEFLPXlLLm1hdGNoKCIoIitPYmplY3Qua2V5cyh3Sykuam9pbigifCIpKyIpIik7eEs9QUs/d0tbQUtbMF1dOjB9ZWxzZSB4Sz12b2lkIDB9Xy5CSz14Sz49MDt2YXIgQ0ssRks7e3ZhciBESz1fLmJjKCk7bGV0IGE9REsubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsvKTtpZighYXx8YS5sZW5ndGg8MilDSz12b2lkIDA7ZWxzZXt2YXIgRUs9REsubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsgKFU7ICk/Q1BVIChpUGhvbmUgKT9PUyAoXGQrX1xkKVtfIF0vKTtDSz1FSyYmRUsubGVuZ3RoPT09Nj9OdW1iZXIoRUtbNV0ucmVwbGFjZSgiXyIsIi4iKSk6MH19Rks9Q0s7Xy5HSz1GSz49MDt2YXIgVWVhPXt5dFN5c01lYXN1cmVtZW50UmVmZXJlbmNlOiJZVF9TWVNfTUVBU1VSRU1FTlRfUkVGRVJFTkNFX0lDT05fU0laRV9DT05ERU5TRUQifSxySz17eXRTeXNNZWFzdXJlbWVudFJlZmVyZW5jZToiWVRfU1lTX01FQVNVUkVNRU5UX1JFRkVSRU5DRV9JQ09OX1NJWkVfQ09NRk9SVEFCTEUifSxTZWE9e3l0U3lzTWVhc3VyZW1lbnRSZWZlcmVuY2U6IllUX1NZU19NRUFTVVJFTUVOVF9SRUZFUkVOQ0VfSUNPTl9TSVpFX01JTkkifSxUZWE9e3l0U3lzTWVhc3VyZW1lbnRSZWZlcmVuY2U6IllUX1NZU19NRUFTVVJFTUVOVF9SRUZFUkVOQ0VfSUNPTl9TSVpFX0NPTVBBQ1QifSxjZmE9Xy5MKGE9Pl8uSyhfLk8se0E6YS51Yyx0aGVuOmI9Pl8uSyhfLm5ILHt1YzpiLGRpc2FibGVkOmEuZGlzYWJsZWQsY2xhc3NOYW1lOmEuY2xhc3NOYW1lLHN0eWxlOmEuc3R5bGUsdGl0bGU6YS50aXRsZSxhcmlhTGFiZWw6YS5hcmlhTGFiZWwsSGU6YS5IZSxhcmlhQ3VycmVudDooKT0+YS50b2dnbGVhYmxlPy4oKSYmCmEudG9nZ2xlZD8uKCksYXJpYUV4cGFuZGVkOmEuYXJpYUV4cGFuZGVkLHJlZjphLnJlZixvbkhvdmVyOmEub25Ib3Zlcn0sYS5jaGlsZHJlbiksVzooKT0+Xy5LKCJidXR0b24iLHtlbDpfLnJGKGEucmVmKSwib246Y2xpY2siOmEub25DbGljaywib246bW91c2VlbnRlciI6YS5vbkhvdmVyLGNsYXNzOmEuY2xhc3NOYW1lLHRpdGxlOmEudGl0bGUsc3R5bGU6YS5zdHlsZSxkaXNhYmxlZDphLmRpc2FibGVkLCJhcmlhLXByZXNzZWQiOigpPT5hLnRvZ2dsZWFibGU/LigpPyEhYS50b2dnbGVkPy4oKTp2b2lkIDAsImFyaWEtbGFiZWwiOmEuYXJpYUxhYmVsLCJhcmlhLWRlc2NyaWJlZGJ5IjphLkhlLCJhcmlhLWRpc2FibGVkIjphLmppLCJhcmlhLWhpZGRlbiI6YS5hcmlhSGlkZGVuLCJhcmlhLWV4cGFuZGVkIjphLmFyaWFFeHBhbmRlZCx0YWJpbmRleDooKT0+YS50YWJJbmRleD8uKCk/PygoXy5Pa3x8Xy5yeigpKSYmXy54KCJ3ZWJfZW5hYmxlX3NhZmFyaV9idXR0b25fdGFiaW5kZXhfZml4Iik/CjA6dm9pZCAwKX0sYS5jaGlsZHJlbil9KSwibGEiKSxkZmE9Xy5MKCh7ZGF0YTphLElsOmIsSmw6YyxLbDpkLGljb25CdXR0b246ZSxpeDpmLFp6OmgsaWNvbjprLHNlY29uZGFyeUljb246bCxVQTptLEp5Om4samk6cCxkaXNhYmxlTGlnaHRTaGFwZTpyfSk9Pnt2YXIgdD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5lSykpLHY9Xy5JRSh7Y29sb3I6KCk9PmEoKS5jdXN0b21Db2xvcnM/Lmljb25Db2xvcn0pO3JldHVybiBfLksoSEsse2NsYXNzTmFtZToiIixzdHlsZToiZGlzcGxheTogaW5oZXJpdDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIifSxfLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJWNHoxVWMiLEE6KCk9PmsmJihiKCl8fGMoKXx8ZT8uKCkpLHRoZW46KCk9Pl8uSyhISyxudWxsLF8uSygiZGl2Iix7Y2xhc3M6ZixzdHlsZTp2LCJhcmlhLWhpZGRlbiI6InRydWUifSxrPy4oKSkpfSksXy5LKF8uTyx7ZGVidWdJbnN0YW5jZToib2szYnRiIixBOigpPT4oYSgpLmJ1dHRvblRleHR8fAphKCkuYWJ8fGEoKS5XYSkmJiFlPy4oKSx0aGVuOigpPT5fLksoSEssbnVsbCxfLksoSUsse2NsYXNzTmFtZTptLGljb25Qb3NpdGlvbjooKT0+YSgpLmljb25Qb3NpdGlvbix0ZXh0OigpPT5hKCkuYnV0dG9uVGV4dCxvbmVPZmZDdXN0b21UZXh0V3JhcDooKT0+YSgpLm9uZU9mZkN1c3RvbVRleHRXcmFwLFdhOigpPT5hKCkuV2EsYWI6KCk9PmEoKS5hYn0pKX0pLF8uSyhfLk8se2RlYnVnSW5zdGFuY2U6IkRPNVJ6IixBOmQsdGhlbjooKT0+Xy5LKEhLLG51bGwsXy5LKCJkaXYiLHtjbGFzczpmLHN0eWxlOnZ9LGs/LigpKSl9KSxfLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJibm9qU2MiLEE6Yyx0aGVuOigpPT5fLksoSEssbnVsbCxfLksoImRpdiIse2NsYXNzOmgsc3R5bGU6dn0sbD8uKCkpKX0pLF8uSyhfLk8se2RlYnVnSW5zdGFuY2U6IkhOM2thZCIsQTooKT0+IWEoKS5kaXNhYmxlZCYmISh0Py5XbyYmIXA/LigpKSx0aGVuOigpPT5fLksoXy5qSyx7bW9kZWw6KCk9Pnt2YXIgej0KYSgpO3JldHVybntjb2xvcjp6LnN0eWxlPT09Im92ZXJsYXktZGFyayI/NDp6LnN0eWxlPT09Im92ZXJsYXkiP3oudHlwZT09PSJmaWxsZWQiPzQ6Mzp6LnR5cGU9PT0iZmlsbGVkInx8ei5zdHlsZT09PSJjYWxsLXRvLWFjdGlvbi1pbnZlcnNlInx8ei5zdHlsZT09PSJtb25vLWludmVyc2UiPzI6MX19fSl9KSxfLksoXy5XLHtkYXRhOigpPT5hKCkubWlkZGxlZ3JvdW5kQXNzZXR9LHthbmltYXRlZEFzc2V0Vmlld01vZGVsOih7ZGF0YTp6fSk9Pl8uSyhfLnFLLHtkYXRhOnosY2xhc3NOYW1lOm4sc246ITB9KX0pLF8uSyhfLk8se0E6KCk9PnQ/Lkl1JiYhcD8uKCkmJiFyPy4oKSx0aGVuOigpPT5fLksoXy55RSx7Y29uZmlnOigpPT57dmFyIHo9YSgpLEU9ei5zdHlsZSxBPXoudHlwZSxGPV8ueSgpLnJlc29sdmUoXy5JbihfLmVLKSk7cmV0dXJue1ZhOlFlYShFLEEpLGprOkY/LlZvJiZBPT09InRvbmFsIixldjp6LmN1c3RvbUNvbG9ycz8uYmFja2dyb3VuZENvbG9yLGR2OnouY3VzdG9tQ29sb3JzPy5ib3JkZXJDb2xvciwKQ0I6Rj8uV299fX0pfSkpfSwibWEiKSxJSz1fLkwoYT0+e3ZhciBiPSgpPT5hLmljb25Qb3NpdGlvbj8uKCk9PT0iaWNvbi13aXRoLWxhYmVsInx8YS5vbmVPZmZDdXN0b21UZXh0V3JhcD8uKCk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6YS5jbGFzc05hbWUsImFyaWEtaGlkZGVuIjooKT0+YS5hcmlhSGlkZGVuPy4oKSYmKCEhYS5hYj8uKCl8fCEhYS5XYT8uKCkpfSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hLmFiPy4oKX0sKCk9Pl8uSyh2Syx7WGI6KCk9PmEuYWIoKS5YYixudW1iZXJWYWx1ZTooKT0+YS5hYigpLm51bWJlclZhbHVlLGhlaWdodFB4OigpPT5hLmFiKCkuaGVpZ2h0UHgsZ2g6KCk9PmEuYWIoKS5naCx4YjooKT0+YS5hYigpLnhiLFFwOigpPT5hLmFiKCkuUXB9KSksXy5LKF8uQ0Use3doZW46KCk9PmEuV2E/LigpfSwoKT0+Xy5LKF8uVix7dGV4dDooKT0+KHsuLi5hLldhKCksbGluZUJyZWFrTW9kZTpiKCk/IkxJTkVfQlJFQUtfTU9ERV9CWV9XT1JEX1dSQVBQSU5HIjoKYS5XYSgpLmxpbmVCcmVha01vZGUsYWxpZ25tZW50OmIoKT8iVEVYVF9BTElHTk1FTlRfQ0VOVEVSIjphLldhKCkuYWxpZ25tZW50fSksdWI6ITAsbm9XcmFwOigpPT4hYigpfSkpLF8uSyhfLkNFLHt3aGVuOigpPT5hLmljb25Qb3NpdGlvbj8uKCk9PT0iaWNvbi13aXRoLWxhYmVsIiYmYS50ZXh0Py4oKX0sKCk9Pl8uSyhfLlYse3RleHQ6KCk9Pih7Y29udGVudDphLnRleHQoKSxsaW5lQnJlYWtNb2RlOiJMSU5FX0JSRUFLX01PREVfQllfV09SRF9XUkFQUElORyIsYWxpZ25tZW50OiJURVhUX0FMSUdOTUVOVF9DRU5URVIifSksdWI6ITAsbm9XcmFwOiExfSkpLF8uSyhfLkRFLG51bGwsKCk9PmEudGV4dCkpKX0sIm5hIiksZWZhPV8uTChhPT5fLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJrTTdTZ2MiLEE6YS5oYXNMYWJlbCx0aGVuOigpPT5fLksoImxhYmVsIix7Y2xhc3M6YS5jbGFzc05hbWV9LGEuY2hpbGRyZW4sYS50ZXh0Q29udGVudD8uKCkpLFc6KCk9PmEuY2hpbGRyZW59KSwib2EiKSwKSEs9Xy5MKGE9PmEuY2hpbGRyZW4sInBhIik7Xy5KSz1fLkwoKHtkYXRhOmEsaWNvbjpiLGljb25OYW1lOmMsR2U6ZCxzZWNvbmRhcnlJY29uOmUsUXI6ZixYSTpoLGFwOmt9KT0+e18ubUcoKTt2YXIge3NpemU6bCxzdHlsZTptLGRpc2FibGVkOm4sb25UYXA6cCxvaTpyLHVjOnQsY3VzdG9tQ29sb3JzOnYsc2VnbWVudGVkUG9zaXRpb246eix0b2dnbGVkOkUsdG9nZ2xlYWJsZTpBLGFjY2Vzc2liaWxpdHlMYWJlbDpGLG9uVG9nZ2xlOkMsaWNvblBvc2l0aW9uOkcsb25lT2ZmQ3VzdG9tVGV4dFdyYXA6RCxJZjpILEFwOlIsdG9vbHRpcFRleHQ6TSxEbjpTLGFyaWFIaWRkZW46WSxhcmlhRXhwYW5kZWQ6cGEsdGFiSW5kZXg6b2EsYnV0dG9uVGV4dDpVLFdhOmhhLGFiOm1hLG9uQ2xpY2tSYXRlTGltaXRNczp0YSxvbkhvdmVyOlQsbWlkZGxlZ3JvdW5kQXNzZXQ6YmEsZGlzYWJsZUxpZ2h0U2hhcGU6YWF9PW5LKGEpLHt0eXBlOk9hLHRuOkpiLElsOnphLEtsOkxiLEpsOmNjLEV3OmxjLEZ3OlZiLEd3OnRkLGljb25CdXR0b246QmUsCmppOmFkLHZ6Om5zLG14Ok1nLGFBOlpCfT1SZWEoYSxiLGUsYyxmLGgsZCksW2ZmYV09Xy5iSyhNLFMpLExUPXJiPT57cD8uKHJiKTtBKCkmJkM/LihyYil9LE1UPV8uTigoKT0+dGE/LigpLHZvaWQgMCwic2lLeXdiIiksZ2ZhPV8uTigoKT0+TVQoKT9OZWEoTFQsTVQoKSk6TFQsdm9pZCAwLCJ3RFRjTiIpLCRCPV8ueSgpLnJlc29sdmUoXy5JbihfLmVLKSk7Yj1fLk4oKCk9PmJhKCl8fCRCPy5JdSx2b2lkIDAsInpVUVJPZSIpO3ZhciBoZmE9WWVhKCgpPT57dmFyIHJiPW0oKSxhaT1PYSgpO3JldHVybiEhXy55KCkucmVzb2x2ZShfLkluKF8uZUspKT8uVm8mJmFmYS5pbmNsdWRlcyhyYikmJmJmYS5pbmNsdWRlcyhhaSl9KTtyZXR1cm4gXy5LKGVmYSx7Y2xhc3NOYW1lOl8uUCgieXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxIb3N0Iix7eXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxJc092ZXJsYXk6KCk9Pm0oKT09PSJvdmVybGF5Inx8bSgpPT09Im92ZXJsYXktZGFyayJ9KSxoYXNMYWJlbDp0ZCwKdGV4dENvbnRlbnQ6KCk9Pl8uSyhJSyx7dGV4dDpVLGNsYXNzTmFtZToieXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbCIsYXJpYUhpZGRlbjohMCxvbmVPZmZDdXN0b21UZXh0V3JhcDpELGljb25Qb3NpdGlvbjpHLFdhOmhhLGFiOm1hfSl9LF8uSyhjZmEse3VjOnQsY2xhc3NOYW1lOl8uUCgieXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdCIsKCk9PlZlYShPYSgpKSwoKT0+YWQoKT92b2lkIDA6V2VhKG0oKSksKCk9PlhlYShsKCkpLHt5dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZDphZCx5dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOkpiLHl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZzpMYix5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZzp6YSx5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nOmNjLHl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmdOb1RleHQ6KCk9PmNjKCkmJiEoVSgpfHxoYSgpKSwKeXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbjooKT0+bGMoKXx8dGQoKSx5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uT25seURlZmF1bHQ6VmIseXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHQ6cix5dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydDooKT0+eigpPT09InN0YXJ0Iix5dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQ6KCk9PnooKT09PSJlbmQiLHl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJyaWRlU21hbGxTaXplSWNvbjpucyx5dFNwZWNCdXR0b25TaGFwZU5leHRPbmVPZmZDdXN0b21UZXh0V3JhcENvbnRhaW5lcjpELHl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVUZXh0RWxsaXBzaXM6SCx5dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVCYWNrZHJvcEZpbHRlckV4cGVyaW1lbnQ6KCk9Pnt2YXIgcmI7aWYocmI9IVIoKSkhKHJiPV8uR0smJkZLPj0xNCkmJihyYj1fLkJLKSYmKHJiPV8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeT49CjgpLHJiPXJiPyFfLngoIndlYl9kaXNhYmxlX2JhY2tkcm9wX2ZpbHRlciIpOiExO3JldHVybiByYn0seXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlOigpPT4hISRCPy5XbyYmIWFkKCkseXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6KCk9Pl8ueCgid2ViX2J1dHRvbl9pY29uX3NpemVfZXhwZXJpbWVudCIpLHl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmc6KCk9Pl8ueCgid2ViX2J1dHRvbl9tYWluc3RhZ2VfcGFkZGluZyIpfSksc3R5bGU6KCk9Pnt2YXIgcmI9digpO2lmKHJiKXt2YXIgYWk9cmIuY29sb3I7dmFyIE5UPXJiLmJhY2tncm91bmRDb2xvcjtyYj1yYi5ib3JkZXJDb2xvcjt2YXIgcHM9IiI7YWkmJihwcys9YGNvbG9yOiAke2FpfTtgKTtOVCYmKHBzKz1gYmFja2dyb3VuZC1jb2xvcjogJHtOVH07YCk7cmImJihwcys9YGJvcmRlci1jb2xvcjogJHtyYn07YCk7YWk9e3N0eWxlOnBzfX1lbHNlIGFpPQp7fTtyZXR1cm4gYWkuc3R5bGV9LG9uQ2xpY2s6cmI9PntnZmEoKShyYil9LG9uSG92ZXI6cmI9PntUPy4ocmIpfSxkaXNhYmxlZDpuLGFyaWFMYWJlbDpGLHRvZ2dsZWFibGU6QSx0b2dnbGVkOkUsdGl0bGU6KCk9PiFrPy4oKSYmTSgpP00oKToiIixqaTphZCxhcmlhSGlkZGVuOlksYXJpYUV4cGFuZGVkOnBhLHRhYkluZGV4Om9hLHJlZjpyYj0+eyRCPy5WbyYmaGZhKHJiKTtrPy4oKSYmZmZhKHJiKX19LF8uSyhkZmEse2RhdGE6YSxJbDp6YSxKbDpjYyxLbDpMYixpY29uQnV0dG9uOkJlLGljb246TWcsVUE6Xy5QKCJ5dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudCIse3l0U3BlY0J1dHRvblNoYXBlTmV4dEVsZXZhdGVkQ29udGVudDpifSksaXg6Xy5QKCJ5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uIix7eXRTcGVjQnV0dG9uU2hhcGVOZXh0RWxldmF0ZWRDb250ZW50OmJ9KSxaejpfLlAoInl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb24iLHt5dFNwZWNCdXR0b25TaGFwZU5leHRFbGV2YXRlZENvbnRlbnQ6Yn0pLApzZWNvbmRhcnlJY29uOlpCLEp5OiJ5dFNwZWNCdXR0b25TaGFwZU5leHRNaWRkbGVncm91bmRBc3NldCIsamk6YWQsZGlzYWJsZUxpZ2h0U2hhcGU6YWF9KSkpfSwicmEiKTtfLkpLLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7aWNvbjohMCxzZWNvbmRhcnlJY29uOiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBMZGEsTWRhLE5kYSxPZGE7TGRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5WSC5UZSgpLmdldFN0YXRlKCk7cmV0dXJuIGI/YShjLC4uLmIpOmEoYyl9O18uWEg9ZnVuY3Rpb24oKXtpZihXSClyZXR1cm4gV0g7dmFyIFthLCxiXT1fLkooMCx2b2lkIDAsIk1CMUhiIik7Xy5WSC5UZSgpLnN1YnNjcmliZSgoKT0+e01kYShiKX0pO3JldHVybiBXSD1hfTtNZGE9ZnVuY3Rpb24oYSl7WUh8fChZSD0hMCxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YShiPT5iKzEpO1lIPSExfSkpfTtfLlpIPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uVkgucHcoKShhLGIpfTtfLmJJPW5ldyBfLlZzKCJTVEFURV9TVE9SRV9UT0tFTiIpO05kYT1uZXcgXy5WcygiU0VMRUNUX1RPS0VOIik7T2RhPW5ldyBfLlZzKCJESVNQQVRDSF9UT0tFTiIpO3ZhciBXSCxZSDtfLlZIPXtwdzooKT0+Xy55KCkucmVzb2x2ZShfLkluKE5kYSkpPz9MZGEsbXc6KCk9Pl8ueSgpLnJlc29sdmUoXy5JbihPZGEpKT8/Xy5WSC5UZSgpLmRpc3BhdGNoLmJpbmQoXy5WSC5UZSgpKSxUZTooKT0+Xy55KCkucmVzb2x2ZShfLmJJKX07WUg9ITE7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uY0k9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uTigoKT0+e18uWEgoKSgpO3JldHVybiBfLlpIKGEpfSx7ZGVidWdOYW1lOiJkOEI2MmMifSwiREVYa2hkIil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgaWZhLGpmYSxPSyxOSyxuZmEsUkssb2ZhLHBmYSxUSyxxZmEscmZhLFNLLHNmYSx0ZmEsdWZhLHZmYTtpZmE9ZnVuY3Rpb24oYSxiKXtiLmZvckVhY2goYz0+e3ZhciBkPW51bGw7Yz9kPWMuYXBwbHkobnVsbCxhLmFyZ3MpOihjPUVycm9yKCJyZCIpLGMucGFyYW1zPWEuYWN0aW9uTmFtZSxfLlVpKGMpKTthLnJldHVyblZhbHVlLnB1c2goZCl9KX07amZhPWZ1bmN0aW9uKGEsYixjKXtiLmZvckVhY2goZD0+e3ZhciBlPV8uUkooZCk7ZSYmKGQ9bmV3IF8uT0ooZSwhMCxbZCxjLHZvaWQgMF0pLChlPWEuai5nZXQoZC5hY3Rpb25OYW1lKSkmJmlmYShkLGUpLGQuanx8ZC5yZXR1cm5WYWx1ZS5sZW5ndGghPT0wfHwoZD1uZXcgXy5YaigiVW5oYW5kbGVkIGFjdGlvbiIsZC5hY3Rpb25OYW1lKSxfLldpKGQpKSl9KX07Xy5LSz1mdW5jdGlvbihhKXtyZXR1cm4oYSY0Mjc4MTkwMDgwKT4+PjI0PT09MD9fLmlFKGEsIjEiKTpfLk5EKGEpfTsKXy5NSz1mdW5jdGlvbigpe0xLfHwoTEs9bmV3IGtmYSk7cmV0dXJuIExLfTtPSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy5hY3Rpb24sZT1jLmVsZW1lbnQ7ZSYmZCYmKGxmYS5pbmNsdWRlcyhiKXx8Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfUkVNSVgifHxhLkQmJmEuRC5BSihlKT9OSyhhLGIsYyk6YS52JiYoYS5vfHwoYS5vPW5ldyBXZWFrTWFwKSxkPWEudi5vYnNlcnZlKGUsKCk9PntOSyhhLGIsYyk7YS5vLmRlbGV0ZShlKX0se1ZiOiEwLHN0YXRlOiJ2aXNpYmxlIn0pLGEuby5zZXQoZSxkKSkpfTtfLlBLPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5CLmdldChiKTtpZihjKXt2YXIgZD1hLmouZ2V0KGMpO2QmJihkZWxldGUgZC5lbGVtZW50LGEuai5zZXQoYyxkKSk7YS5CLmRlbGV0ZShiKTthLnYmJmEubyYmKGM9YS5vLmdldChiKSkmJihhLnYucmYoYyksYS5vLmRlbGV0ZShiKSl9fTsKXy5RSz1mdW5jdGlvbihhLGIsYyl7Xy5QSyhhLGMpO3ZhciBkPWEuai5nZXQoYik7ZHx8KGQ9e30sYS5qLnNldChiLGQpKTtkLmVsZW1lbnQ9YzthLkIuc2V0KGMsYik7T0soYSxiLGQpfTtOSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy5hY3Rpb247KGM9Yy5lbGVtZW50KSYmZCYmKGpmYShhLkssW2RdLGMpLGEuai5kZWxldGUoYiksYS5CLmRlbGV0ZShjKSxhLlkuYWRkKGIpKX07Cm5mYT1mdW5jdGlvbihhLGIsYyl7aWYoYyYmYilzd2l0Y2goYyl7Y2FzZSAiQlVUVE9OX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1JFTU9WRV9BRFNfQURfU1RBVEUiOnJldHVybihhPV8uSEgoYSxiKSk/e2lzSGlkZGVuOmEuYWRzU3RhdGU9PT0iQURTX1NUQVRFX05PTkUifHxhLmFkc1N0YXRlPT09IkFEU19TVEFURV9VTktOT1dOIn06e2lzSGlkZGVuOiEwfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQ0hBVEJPVF9QRU5ESU5HX1JFU1BPTlNFIjpyZXR1cm57aXNIaWRkZW46ITEsaXNEaXNhYmxlZDohIV8ucUEoYS5lbnRpdGllcywieW91Y2hhdFBlbmRpbmdSZXNwb25zZUVudGl0eSIsYik/LmlzUGVuZGluZ1Jlc3BvbnNlfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQk9PTEVBTl9ESVNBQkxFRCI6cmV0dXJue2lzSGlkZGVuOiExLGlzRGlzYWJsZWQ6ISFfLklIKGEsYik/LnZhbHVlfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQVNLX1NUVURJT19DT05WRVJTQVRJT05fU1VNTUFSWSI6cmV0dXJuIGE9Cl8ucUEoYS5lbnRpdGllcywiYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eSIsYik/LnN0YXRlLGE9PT0iQVNLX1NUVURJT19DT05WRVJTQVRJT05fU1VNTUFSWV9TVEFURV9QRU5ESU5HIj97aXNIaWRkZW46ITEsYXJpYURpc2FibGVkOiEwLGFyaWFCdXN5OiEwLGFjY2Vzc2liaWxpdHlMYWJlbDoiR2VuZXJhdGluZyBzdW1tYXJ5Li4uIixpY29uTmFtZTp2b2lkIDAsQWM6bWZhfTphPT09IkFTS19TVFVESU9fQ09OVkVSU0FUSU9OX1NVTU1BUllfU1RBVEVfVU5SRUFEInx8YT09PSJBU0tfU1RVRElPX0NPTlZFUlNBVElPTl9TVU1NQVJZX1NUQVRFX0ZBSUxFRCI/KGE9YT09PSJBU0tfU1RVRElPX0NPTlZFUlNBVElPTl9TVU1NQVJZX1NUQVRFX1VOUkVBRCIse2lzSGlkZGVuOiExLGFyaWFEaXNhYmxlZDohMCxhY2Nlc3NpYmlsaXR5TGFiZWw6YT8iVW5yZWFkIHN1bW1hcnkiOiJGYWlsZWQgdG8gZ2VuZXJhdGUgc3VtbWFyeSIsaWNvbk5hbWU6IllUSUNPTl9GSUxMX0RPVF9TMjQiLApBYzp2b2lkIDAsLi4uKGEmJntjdXN0b21Db2xvcnM6e2NvbG9yOiJ2YXIoLS15dC1zcGVjLWNhbGwtdG8tYWN0aW9uKSIsaWNvbkNvbG9yOiJ2YXIoLS15dC1zcGVjLWNhbGwtdG8tYWN0aW9uKSJ9fSl9KTp7aXNIaWRkZW46ITB9O2Nhc2UgIkJVVFRPTl9FTlRJVFlfU0VMRUNUT1JfVFlQRV9DT01NRVJDRV9UT0tFTl9CQUxBTkNFIjpyZXR1cm4gYT1fLnFBKGEuZW50aXRpZXMsImNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5IixiKSxhPy5zZXJ2ZXJUb2tlbkJhbGFuY2UhPW51bGw/KGE9TnVtYmVyKGEuc2VydmVyVG9rZW5CYWxhbmNlKSxhPWlzTmFOKGEpP3ZvaWQgMDpTdHJpbmcoYS8xRTYpLHtpc0hpZGRlbjohMSxXYTphP3tjb250ZW50OmF9OnZvaWQgMH0pOntpc0hpZGRlbjohMX07ZGVmYXVsdDpyZXR1cm57aXNIaWRkZW46ITF9fX07ClJLPWZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OmEudG9vbHRpcFRleHQ/PyIiLGxvY2F0aW9uOm9mYShhLnBsYWNlbWVudCksc3R5bGU6YS5zdHlsZSxob3RrZXk6YS5ob3RrZXl9fTtvZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIlRPT0xUSVBfVklFV19NT0RFTF9QTEFDRU1FTlRfQk9UVE9NIjpyZXR1cm4iYm90dG9tIjtjYXNlICJUT09MVElQX1ZJRVdfTU9ERUxfUExBQ0VNRU5UX1RPUCI6cmV0dXJuInRvcCI7Y2FzZSAiVE9PTFRJUF9WSUVXX01PREVMX1BMQUNFTUVOVF9MRUZUIjpyZXR1cm4ibGVmdCI7Y2FzZSAiVE9PTFRJUF9WSUVXX01PREVMX1BMQUNFTUVOVF9SSUdIVCI6cmV0dXJuInJpZ2h0IjtkZWZhdWx0OnJldHVybiJib3R0b20ifX07CnBmYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uUkQoYT8ub25UYXApLGQ9e307YyYmKGQuYko9KCk9PlNLKGEsYyxiPy52YWx1ZT8udmlzdWFsRWxlbWVudCkpO2Q9Xy5iRSh7Ymg6YS5vblRhcCxxZDohMCxBbzpkfSk7cmV0dXJuIGQ/LmhyZWY/ZDp2b2lkIDB9O1RLPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yz17ckM6Y307Xy5kSyhhLHtmb3JtOntjdXJyZW50RGF0YTpjLHNvdXJjZURhdGE6YyxlbGVtZW50OmIsZXZlbnQ6ZH0sLi4uZX0pfTsKcWZhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9dm9pZCAwO3JldHVybiBoPT57dmFyIGs9Xy5SRChjP2E/Lm9uRGlzYWJsZWRUYXA6YT8ub25UYXApO2lmKGspaWYoZj1mPz9iPy52YWx1ZSxfLngoIndlYl9idXR0b25fdm1fY2xpY2tfY2xpZW50X3ZlX2tpbGxzd2l0Y2giKSlUSyhrLGYsYSxoKTtlbHNle2xldCBsPVNLKGEsayxmPy52aXN1YWxFbGVtZW50KTtpZihlKXtUSyhrLGUsYSxoLHtjbGlja2VkVmlzdWFsRWxlbWVudDpsLGZvcm06e2VsZW1lbnQ6ZX19KTtyZXR1cm59VEsoayxmLGEsaCx7Y2xpY2tlZFZpc3VhbEVsZW1lbnQ6bH0pfWQmJmQoaCl9fTtyZmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXZvaWQgMDtyZXR1cm4gZT0+e3ZhciBmPV8uUkQoYT8ub25Ib3Zlcik7ZiYmKGQ9ZD8/Yj8udmFsdWUsYz9USyhmLGMsYSxlLHtmb3JtOntlbGVtZW50OmN9fSk6VEsoZixkLGEsZSkpfX07ClNLPWZ1bmN0aW9uKGEsYixjKXtiPWI/LmNsaWNrVHJhY2tpbmdQYXJhbXM7YT1hPy5sb2dnaW5nRGlyZWN0aXZlcz8uY2xpZW50VmVTcGVjPy51aVR5cGU7aWYoYyYmYSYmIWIpcmV0dXJuIGN9OwpzZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0NUQSI6cmV0dXJuImNhbGwtdG8tYWN0aW9uIjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9NT05PIjpjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9CUkFORCI6cmV0dXJuIm1vbm8iO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX09WRVJMQVkiOnJldHVybiJvdmVybGF5IjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9PVkVSTEFZX0RBUksiOnJldHVybiJvdmVybGF5LWRhcmsiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0JSQU5EX0dSQURJRU5UIjpyZXR1cm4iYnJhbmQtZ3JhZGllbnQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0JSQU5EX0FJIjpyZXR1cm4iZ2VuLWFpLWdyYWRpZW50IjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9SQUlTRUQiOnJldHVybiJyYWlzZWQiO2RlZmF1bHQ6cmV0dXJuIm1vbm8ifX07CnRmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfVFlQRV9GSUxMRUQiOnJldHVybiJmaWxsZWQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfT1VUTElORSI6cmV0dXJuIm91dGxpbmUiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfVEVYVCI6cmV0dXJuInRleHQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfVE9OQUwiOnJldHVybiJ0b25hbCI7ZGVmYXVsdDpyZXR1cm4idGV4dCJ9fTt1ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUQVRFX0FDVElWRSI6cmV0dXJuImFjdGl2ZSI7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfU1RBVEVfSU5BQ1RJVkUiOnJldHVybiJkaXNhYmxlZCI7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfU1RBVEVfRElTQUJMRUQiOnJldHVybiJkaXNhYmxlZCI7ZGVmYXVsdDpyZXR1cm4iYWN0aXZlIn19Owp2ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfWFNNQUxMIjpyZXR1cm4iWFMiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfQ09NUEFDVCI6cmV0dXJuIlMiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfREVGQVVMVCI6cmV0dXJuIk0iO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfTEFSR0UiOnJldHVybiJMIjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TSVpFX1hMQVJHRSI6cmV0dXJuIlhMIjtkZWZhdWx0OnJldHVybiJNIn19O3ZhciBsZmE9WyJicm93c2UtdmlkZW8tbWVudS1idXR0b24iLCJ1bmlmaWVkLXZlcmlmaWVkLWJhZGdlIiwidG9wYmFyLWd1aWRlLW1lbnUiXSxrZmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLks9Xy5TSi5qYygpO3RoaXMuaj1uZXcgTWFwO3RoaXMuQj1uZXcgV2Vha01hcDt0aGlzLlk9bmV3IFNldH1kaXNwb3NlKCl7dGhpcy5EJiZfLmNmKHRoaXMuRCwieXQtdmlzaWJpbGl0eS1tb25pdG9yLXJlZnJlc2hlZCIsdGhpcy5JLCExLHRoaXMpO3RoaXMudiYmdGhpcy52LmRpc3Bvc2UoKX1JKCl7Zm9yKGxldCBbYSxiXW9mIHRoaXMuai5lbnRyaWVzKCkpT0sodGhpcyxhLGIpfX0sTEs7dmFyIG1mYT17YW5pbWF0ZWRBc3NldFZpZXdNb2RlbDp7Z2VuZXJpY0JlaGF2aW9yOnthdXRvcGxheTohMCxsb29wOiEwfSxsb3R0aWVBc3NldDp7dGhlbWVkVXJsOntsaWdodDoiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20veW91dHViZS9pbWcvbG90dGllL3lvdWNoYXRfYW5pbWF0aW9ucy9wcm9ncmVzc19pbmRpY2F0b3Jfc29sb192MS5qc29uIixkYXJrOiJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUveW91Y2hhdF9hbmltYXRpb25zL3Byb2dyZXNzX2luZGljYXRvcl9zb2xvX3YxLmpzb24ifX19fTt2YXIgd2ZhPVsieW91LWNoYXQtZW50cnlwb2ludC1idXR0b24iXTsKXy5IRD1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsc3R5bGU6YyxidXR0b25PdmVycmlkZXM6ZCxhYjplLG9uQ2xpY2s6Zix0YXJnZXQ6aH0pPT57dmFyIGs9Xy51RSgiYnV0dG9uLXZpZXctbW9kZWwiLEQ9PntELmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ5dC1yZW5kZXJpZG9tLWZpbmlzaGVkIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiExLGNvbXBvc2VkOiEwfSkpO3ZhciBIPWEoKS50YXJnZXRJZDtIJiZfLlFLKF8uTUsoKSxILEQpO3JldHVybigpPT57Xy5QSyhfLk1LKCksRCl9fSksbD1fLmNJKEQ9Pm5mYShELGEoKT8uZW50aXR5S2V5LGEoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlKSksbT0oKT0+YSgpPy5lbnRpdHlLZXkmJmEoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlP2woKTp2b2lkIDAsbj0oKT0+Xy54KCJXZWJGRUFsbFN0dWRpb0J5Q2hhbm5lbF9fd2ViX2J1dHRvbl92aWV3X21vZGVsX2VudGl0eV9vdmVycmlkZXMiKT9tKCk6dm9pZCAwLHA9CigpPT57dmFyIEQ9bigpO2lmKEQ/Lmljb25OYW1lIT09dm9pZCAwKXJldHVybiBELmljb25OYW1lO2lmKEQ/LkFjPT09dm9pZCAwKXJldHVybiBhKCk/Lmljb25OYW1lfHxhKCk/Lnl0SWNvbn0scj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKSx0PSgpPT57dmFyIEQ9ZD8uKCksSD1tKCksUj1uKCksTT1EO2EoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlJiYoTT17Li4uRCxkaXNhYmxlZDohIUg/LmlzRGlzYWJsZWR8fCEhRD8uZGlzYWJsZWR9KTtEPWEoKTt2YXIgUz1NLFk9ZT8uKCkscGE9Uj8uYXJpYURpc2FibGVkfHxIPy5pc0Rpc2FibGVkfHxSPy5hcmlhQnVzeXx8TT8uZGlzYWJsZWQ/dm9pZCAwOmY7TT1oPy4oKTtpZihEKXt2YXIgb2E9dGZhKEQudHlwZSk7dmFyIFU9ISFELnRpdGxlfHwhIUQudGl0bGVGb3JtYXR0ZWQ7dmFyIGhhPSEhKEQuaWNvbk5hbWV8fEQuaWNvbkltYWdlfHxELnl0SWNvbnx8RC5sZWFkaW5nQXNzZXQpO1U9aGEmJiFVPyJpY29uLW9ubHkiOgpoYT9ELmljb25Qb3NpdGlvbj09PSJCVVRUT05fVklFV19NT0RFTF9JQ09OX1BPU0lUSU9OX0FCT1ZFIj8iaWNvbi13aXRoLWxhYmVsIjpELmljb25UcmFpbGluZ3x8RC5pY29uUG9zaXRpb249PT0iQlVUVE9OX1ZJRVdfTU9ERUxfSUNPTl9QT1NJVElPTl9UUkFJTElORyI/InRyYWlsaW5nIjoibGVhZGluZyI6dm9pZCAwO1U9PT0iaWNvbi1vbmx5LTQwIiYmKG9hPSJ0ZXh0Iik7aGE9Uz8uc3RhdGU/P3VmYShELnN0YXRlKTt2YXIgbWE9Uz8uZGlzYWJsZWQ/PyhELnN0YXRlPT09IkJVVFRPTl9WSUVXX01PREVMX1NUQVRFX0RJU0FCTEVEInx8RC5zdGF0ZT09PSJCVVRUT05fVklFV19NT0RFTF9TVEFURV9JTkFDVElWRSIpO18ueCgid2ViX2J1dHRvbl92bV9yZWZhY3Rvcl9kaXNhYmxlZCIpJiYobWE9Uz8uZGlzYWJsZWQ/P2hhPT09ImRpc2FibGVkIik7WT1ZJiZZLlhiJiYhaXNOYU4oTnVtYmVyKFkubnVtYmVyVmFsdWUpKT9ZOnZvaWQgMDt2YXIgdGE9RC50aXRsZSxUPUQudGl0bGVGb3JtYXR0ZWQsCmJhPUQuYWNjZXNzaWJpbGl0eVRleHQsYWE9c2ZhKEQuc3R5bGUpLE9hPXZmYShELmJ1dHRvblNpemUpO3BhPXFmYShELGssbWEscGEsTSk7dmFyIEpiPW1hJiYhRC5vbkRpc2FibGVkVGFwLHphPXBmYShELGspLExiPUQuY3VzdG9tRm9udENvbG9yLGNjPUQuY3VzdG9tQmFja2dyb3VuZENvbG9yO3ZhciBsYz1ELmN1c3RvbUJvcmRlckNvbG9yO2xldCB0ZD1ELmN1c3RvbURhcmtUaGVtZUZvbnRDb2xvcixCZT1ELmN1c3RvbURhcmtUaGVtZUJhY2tncm91bmRDb2xvcjt2YXIgVmI9RC5jdXN0b21EYXJrVGhlbWVCb3JkZXJDb2xvcjtMYj1yJiZ0ZD90ZDpMYjtjYz1yJiZCZT9CZTpjYztsYz1yJiZWYj9WYjpsYztsYz17Y29sb3I6TGI/Xy5ORChMYik6dm9pZCAwLGJhY2tncm91bmRDb2xvcjpjYz9fLk5EKGNjKTp2b2lkIDAsYm9yZGVyQ29sb3I6bGM/Xy5ORChsYyk6dm9pZCAwfTtWYj1fLkIoRC50b29sdGlwRGF0YSxfLmNLKTtjYz1fLkIoRC5kaXNhYmxlZFRvb2x0aXBEYXRhLF8uY0spOwpEPXtidXR0b25UZXh0OnRhLFdhOlQsYWI6WSxhY2Nlc3NpYmlsaXR5TGFiZWw6YmEsc3R5bGU6YWEsdHlwZTpvYSxzdGF0ZTpoYSxzaXplOk9hLGljb25Qb3NpdGlvbjpVLG9uVGFwOnBhLGRpc2FibGVkOkpiLHVjOnphLGN1c3RvbUNvbG9yczpsYyx0b29sdGlwVGV4dDpELnRvb2x0aXAsRG46bWEmJmNjP1JLKGNjKTpWYj9SSyhWYik6dm9pZCAwLG9uSG92ZXI6cmZhKEQsayxNKSxtaWRkbGVncm91bmRBc3NldDpELm1pZGRsZWdyb3VuZEFzc2V0LEFjOkQubGVhZGluZ0Fzc2V0LC4uLlN9fWVsc2UgRD17c3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUiLHNpemU6Ik0ifTtELmZvY3VzZWQ9RigpO1I/LmFjY2Vzc2liaWxpdHlMYWJlbCE9PXZvaWQgMCYmKEQuYWNjZXNzaWJpbGl0eUxhYmVsPVIuYWNjZXNzaWJpbGl0eUxhYmVsKTtSPy5jdXN0b21Db2xvcnMhPT12b2lkIDAmJihELmN1c3RvbUNvbG9ycz1SLmN1c3RvbUNvbG9ycyk7Uj8uQWMhPT12b2lkIDA/KEQuQWM9ClIuQWMsRC5pY29uUG9zaXRpb249Imljb24tb25seSIpOlI/Lmljb25OYW1lIT09dm9pZCAwJiYoRC5BYz12b2lkIDAsRC5pY29uUG9zaXRpb249Imljb24tb25seSIpO0g/LldhJiYoRC5XYT1ILldhKTtyZXR1cm4gRH0sdj1fLlBIKCksej0oKT0+e3ZhciBEPXQoKTtyZXR1cm4gXy5vSyhELCEhcCgpfHwhIUQuQWMsdil9LFtFLEFdPV8uSighMSx2b2lkIDAsIlBwbk5BIiksRj1FO18ubkUoKCk9Pnt2YXIgRD1fLkIoYSgpPy5vblZpc2libGUsXy5PRCk7RCYmXy5hRShELHttZDohMH0pfSwiZWZldXkiKTt2YXIgQz0oKT0+e3ZhciBEPWEoKT8uaWNvbkltYWdlO3JldHVybiBEP3tzb3VyY2VzOltEXX06dm9pZCAwfSxHPUhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgicG9wb3ZlciIpO3JldHVybiBfLksoImJ1dHRvbi12aWV3LW1vZGVsIix7ZWw6ayxjbGFzczpfLlAoInl0U3BlY0J1dHRvblZpZXdNb2RlbEhvc3QiLGIsKCk9Pnt2YXIgRD1hKCk/LnRhcmdldElkOwppZihEKXJldHVybiB3ZmEuaW5jbHVkZXMoRCk/RDp2b2lkIDB9KSwib246Zm9jdXNpbiI6ZnVuY3Rpb24oKXt2YXIgRD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5qSCkpO0QmJkEoRC5YZSgpKX0sIm9uOmZvY3Vzb3V0IjpmdW5jdGlvbigpe0EoITEpfSwiYXJpYS1kaXNhYmxlZCI6KCk9Pm4oKT8uYXJpYURpc2FibGVkPyJ0cnVlIjp2b2lkIDAsImFyaWEtYnVzeSI6KCk9Pm4oKT8uYXJpYUJ1c3k/InRydWUiOnZvaWQgMH0sXy5LKF8uTyx7QTooKT0+IShtKCk/LmlzSGlkZGVuPz8hMSksdGhlbjooKT0+Xy5LKF8uTyx7QTpDLHRoZW46RD0+Xy5LKF8uSksse2RhdGE6dCxpY29uOigpPT5fLksoXy5qRix7ZGF0YTpELGFsdDoiIixBYjp6LGRjOnosVGE6ITAsWWE6ITB9KSxhcDpHfSksVzooKT0+Xy5LKF8uSksse2RhdGE6dCxpY29uTmFtZTpwLEdlOigpPT4hIWM/LigpPy5hbmltYXRlSWNvbixhcDpHfSl9KX0pKX0sInRhIik7Xy5IRC5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e29uQ2xpY2s6ITB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiRGx2RjFkIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWUM9bmV3IF8uSSgiYWNjZXNzaWJpbGl0eUNvbnRleHQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5zTD1uZXcgXy5JKCJhdmF0YXJWaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RRj1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKSxjPWEuZGFya1RoZW1lSW1hZ2U/P2EuaW1hZ2U7cmV0dXJuIGI/YzphLmltYWdlfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUkY9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJSYXE0Y2IiKTtyZXR1cm4gXy5JRH07Xy5TRj1fLmNEKCgpPT5fLlJGKCksImF2YXRhclZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJhdmF0YXJWaWV3TW9kZWwiLCJSYXE0Y2IiLF8uUkYpfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uJEY9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJQelVkWmIiKTtyZXR1cm4gXy5FRH07Xy5hRz1fLmNEKCgpPT5fLiRGKCksImJhZGdlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImJhZGdlVmlld01vZGVsIiwiUHpVZFpiIixfLiRGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnVMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiV3FsY1ZiIik7cmV0dXJuIF8ueER9O18udkw9Xy5jRCgoKT0+Xy51TCgpLCJkZXNjcmlwdGlvblByZXZpZXdWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZGVzY3JpcHRpb25QcmV2aWV3Vmlld01vZGVsIiwiV3FsY1ZiIixfLnVMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLndMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgidWhsTEdiIik7cmV0dXJuIF8ud0R9O18ueEw9Xy5jRCgoKT0+Xy53TCgpLCJmbGV4aWJsZUFjdGlvbnNWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZmxleGlibGVBY3Rpb25zVmlld01vZGVsIiwidWhsTEdiIixfLndMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnlMPWZ1bmN0aW9uKCl7aWYoISgibWF0Y2hNZWRpYSJpbiB3aW5kb3cpKXJldHVybiBfLldpKEVycm9yKCJ0ZCIpKSwoKT0+MDt2YXIgYT13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNTI3LjlweCkiKSxiPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiA1MjhweCkgYW5kIChtYXgtd2lkdGg6IDgzOS45cHgpIiksYz13aW5kb3cubWF0Y2hNZWRpYSgiKG1pbi13aWR0aDogODQwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzLjlweCkiKSxkPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiAxMDI0cHgpIiksW2UsZl09Xy5KKGEubWF0Y2hlcyx2b2lkIDAsIlRtSUtjYiIpLFtoLGtdPV8uSihiLm1hdGNoZXMsdm9pZCAwLCJaMGZUS2QiKSxbbCxtXT1fLkooYy5tYXRjaGVzLHZvaWQgMCwidzR4eTdiIiksW24scF09Xy5KKGQubWF0Y2hlcyx2b2lkIDAsIkRyYk5DIikscj1FPT57ZihFLm1hdGNoZXMpfSx0PUU9PntrKEUubWF0Y2hlcyl9LHY9RT0+e20oRS5tYXRjaGVzKX0sCno9RT0+e3AoRS5tYXRjaGVzKX07Xy5VSigoKT0+e2EuYWRkRXZlbnRMaXN0ZW5lcj8oYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHIpLGIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0KSxjLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdiksZC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHopKTphLmFkZExpc3RlbmVyJiYoYS5hZGRMaXN0ZW5lcihyKSxiLmFkZExpc3RlbmVyKHQpLGMuYWRkTGlzdGVuZXIodiksZC5hZGRMaXN0ZW5lcih6KSk7Xy5ZdSgoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcj8oYS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHIpLGIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0KSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdiksZC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHopKTphLnJlbW92ZUxpc3RlbmVyJiYoYS5yZW1vdmVMaXN0ZW5lcihyKSxiLnJlbW92ZUxpc3RlbmVyKHQpLGMucmVtb3ZlTGlzdGVuZXIodiksCmQucmVtb3ZlTGlzdGVuZXIoeikpfSl9KTtyZXR1cm4oKT0+ZSgpPzE6aCgpPzI6bCgpPzM6bigpPzQ6MH07Xy5BTD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy55KCkucmVzb2x2ZShfLkluKHpMKSksW2UsZl09Xy5KKGQsdm9pZCAwLCJ4R3NSUSIpO2R8fF8uWXQoekwsZik7cmV0dXJuIF8uTigoKT0+e3ZhciBoPWEoKTtyZXR1cm4gaCYmYigpP2UoKT8uKGgsYixjKTp2b2lkIDB9LHZvaWQgMCwiYnNvc2RkIil9O3ZhciB6TD1uZXcgXy5WcygiU0VNQU5USUNfVFlQT0dSQVBIWV9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlRIPWZ1bmN0aW9uKGEpe3JldHVybigpPT5fLkIoYSgpLF8uWUMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEJMPWZ1bmN0aW9uKGEpe2lmKGEpcmV0dXJuIF8ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpP2EuZGFya1RoZW1lOmEubGlnaHRUaGVtZX0sQ0w9bmV3IF8uSSgiYmFkZ2VWaWV3TW9kZWwiKTt2YXIgQ2ZhPW5ldyBfLlZzKCJDT01NT05fTUFSS19WSUVXX01PREVMX1RPS0VOIik7dmFyIERmYTtfLkRMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRnFIY0dlIik7cmV0dXJuIF8udEZ9O0RmYT1fLmNEKCgpPT5fLkRMKCksInNlY3Rpb25IZWFkZXJMYXlvdXQiKTtfLll0KF8uSkQsYT0+e2EuSigic2VjdGlvbkhlYWRlckxheW91dCIsIkZxSGNHZSIsXy5ETCl9KTtfLnZEPV8uTCgoe2NsYXNzTmFtZTphLGRhdGE6YixkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6YyxkaXNhYmxlVmVydGljYWxQYWRkaW5nOmQsVGk6ZSxLbjpmLGlzT3ZlcmxheTpoLEVzOmssZ0w6bCxpSjptfSk9Pnt2YXIgbj1fLlRIKCgpPT5iKCkucmVuZGVyZXJDb250ZXh0KSxwPV8ueUwoKSxyPV8uQUwoKCk9PmIoKS5oZWFkbGluZVR5cG9ncmFwaHlUb2tlbixwLHttYXhMaW5lczoyfSk7cD1fLkFMKCgpPT5iKCkuc3VidGl0bGVUeXBvZ3JhcGh5VG9rZW4scCk7dmFyIHQ9Xy5RSCgoKT0+YigpLmhvcml6b250YWxQYWRkaW5nKSx2PV8uUUgoKCk9PmIoKS50b3BQYWRkaW5nKSx6PV8uUUgoKCk9PmIoKS5ib3R0b21QYWRkaW5nKTtyZXR1cm4gXy5LKCJ5dC1zZWN0aW9uLWhlYWRlci12aWV3LW1vZGVsIix7Y2xhc3M6Xy5QKCJ5dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxIb3N0IixhKSxzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6KCk9PkJMKGIoKS5iYWNrZ3JvdW5kQ29sb3IpPwpfLk5EKEJMKGIoKS5iYWNrZ3JvdW5kQ29sb3IpKTp2b2lkIDB9KX0sXy5LKERmYSx7YXJpYUxhYmVsOigpPT5uKCk/LmxhYmVsLEF3OiExLHRpdGxlOigpPT5fLksoXy5WLHt0ZXh0OigpPT5iKCkuaGVhZGxpbmUsWGE6ITB9KSxraDohMCxzdWJsYWJlbDooKT0+Xy5LKEVmYSx7ZGF0YTpifSksTHc6KCk9PiEhYigpLnN1YmxhYmVsfHwhIWIoKS5ib3R0b21CYWRnZXx8ISFiKCkuYm90dG9tQmFkZ2VzLHN1cGVybGFiZWw6KCk9Pl8uSyhGZmEse2RhdGE6Yn0pLE13OigpPT4hIWIoKS5zdXBlcmxhYmVsfHwhIWIoKS50b3BCYWRnZSxsZWFkaW5nSW1hZ2U6KCk9Pl8uSyhHZmEse2xlYWRpbmdBY2Nlc3Nvcnk6KCk9PmIoKS5sZWFkaW5nQWNjZXNzb3J5fSksSHc6KCk9PiEhYigpLmxlYWRpbmdBY2Nlc3NvcnksdHJhaWxpbmdBY3Rpb25zOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxUcmFpbGluZ0FjdGlvbnNDb250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT4KYigpLnRyYWlsaW5nQWN0aW9uc30se2ZsZXhpYmxlQWN0aW9uc1ZpZXdNb2RlbDpfLnhMfSksXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb25zQ29udGFpbmVyIn0sXy5LKF8uZ0cse3BhOigpPT5sPy4oKXx8W119LEU9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb24ifSxFKSkpfSkpLE53OigpPT5tPy4oKXx8ISFiKCkudHJhaWxpbmdBY3Rpb25zLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzooKT0+Yz8uKCl8fGIoKS5kaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmcsZGlzYWJsZVZlcnRpY2FsUGFkZGluZzooKT0+ZD8uKCl8fGIoKS5kaXNhYmxlVmVydGljYWxQYWRkaW5nLFRpOmUsS246Zixpc092ZXJsYXk6aCxyaDooKT0+ISFfLnNIKGIoKS5yZW5kZXJlckNvbnRleHQpLGhvdmVyRWZmZWN0RW5hYmxlZDooKT0+YigpLmhvdmVyRWZmZWN0RW5hYmxlZCxvbkNsaWNrOkU9Pgp7dmFyIEE9Xy5zSChiKCkucmVuZGVyZXJDb250ZXh0KTtBJiZfLmFFKEEse2Zvcm06e2VsZW1lbnQ6RS50YXJnZXQsZXZlbnQ6RX19KX0sYm90dG9tQWNjZXNzb3J5OigpPT5fLksoXy5XLHtkYXRhOigpPT5iKCkuYm90dG9tQWNjZXNzb3J5fSx7ZGVzY3JpcHRpb25QcmV2aWV3Vmlld01vZGVsOih7ZGF0YTpFfSk9Pl8uSyhfLnZMLHtkYXRhOkUsWGM6ITB9KSxjb21tb25NYXJrVmlld01vZGVsOih7ZGF0YTpFfSk9Pl8uSyhfLklCLG51bGwsXy55KCkucmVzb2x2ZShfLkluKENmYSkpPy4oe2RhdGE6RX0pKX0pLHp3OigpPT4hIWIoKS5ib3R0b21BY2Nlc3NvcnksRXM6ayxoZWFkbGluZVR5cG9ncmFwaHlUb2tlbjpyLHN1YnRpdGxlVHlwb2dyYXBoeVRva2VuOnAsanE6dCxmQjp2LEh1Onp9KSl9LCJ3YSIpOwp2YXIgR2ZhPV8uTCgoe2xlYWRpbmdBY2Nlc3Nvcnk6YX0pPT5fLksoXy5JQixudWxsLF8uSyhfLk8se0E6KCk9PmEoKS5pbWFnZT8/Xy5RRihhKCkudGhlbWVkSW1hZ2UpLHRoZW46Yj0+Xy5LKF8uakYse2RhdGE6YixhbHQ6IiIsVGE6ITAsWWE6ITB9KX0pLF8uSyhfLk8se0E6KCk9Pl8uQihhKCkuYXZhdGFyLF8uc0wpLHRoZW46Yj0+Xy5LKF8uU0Yse2RhdGE6Yn0pfSkpLCJ4YSIpLEVmYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKF8uSUIsbnVsbCxfLksoInNwYW4iLHtjbGFzczpfLlAoe3l0U2VjdGlvbkhlYWRlclZpZXdNb2RlbEJhZGdlV2l0aExhYmVsOigpPT4oISFhKCkuYm90dG9tQmFkZ2VzfHwhIWEoKS5ib3R0b21CYWRnZSkmJiEhYSgpLnN1YmxhYmVsfSl9LF8uSyhfLk8se0E6KCk9Pl8uQihhKCkuYm90dG9tQmFkZ2UsQ0wpLHRoZW46Yj0+Xy5LKF8uYUcse2RhdGE6Yn0pfSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJvdHRvbUJhZGdlc30se2JhZGdlVmlld01vZGVsOih7ZGF0YTpifSk9PgpfLksoXy5hRyx7ZGF0YTpiLGNsYXNzOl8uUCgieXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VzIil9KX0pKSxfLksoXy5PLHtBOigpPT5hKCkuc3VibGFiZWwsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmJ9KX0pKSwieWEiKSxGZmE9Xy5MKCh7ZGF0YTphfSk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+Xy5CKGEoKS50b3BCYWRnZSxDTCksdGhlbjpiPT5fLksoXy5hRyx7ZGF0YTpiLGNsYXNzOl8uUCh7eXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VXaXRoTGFiZWw6KCk9PiEhYigpJiYhIWEoKS5zdXBlcmxhYmVsfSl9KX0pLF8uSyhfLk8se0E6KCk9PmEoKS5zdXBlcmxhYmVsLHRoZW46Yj0+Xy5LKF8uVix7dGV4dDpifSl9KSksInphIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImN5Q1ZsZCIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgTkg7Tkg9ZnVuY3Rpb24oKXt9O18uT0g9ZnVuY3Rpb24oKXtyZXR1cm4iOiIrKEpkYS5qKyspLnRvU3RyaW5nKDM2KX07Xy53YShOSCk7TkgucHJvdG90eXBlLmo9MDt2YXIgSmRhPU5ILmpjKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uRkk9bmV3IF8uVnMoIlNVQk1JVF9BUElfU0VSVklDRV9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmtMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgib3NUdHhlIik7cmV0dXJuIF8uQUR9O18ubEw9Xy5jRCgoKT0+Xy5rTCgpLCJiYXNpY0NvbnRlbnRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYmFzaWNDb250ZW50Vmlld01vZGVsIiwib3NUdHhlIixfLmtMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlRGPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRGx2RjFkIik7cmV0dXJuIF8uSER9O18uVUY9Xy5jRCgoKT0+Xy5URigpLCJidXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYnV0dG9uVmlld01vZGVsIiwiRGx2RjFkIixfLlRGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1MPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRnNvWHpjIik7cmV0dXJuIF8uekR9O18ubkw9Xy5jRCgoKT0+Xy5tTCgpLCJjb250ZW50TGlzdEl0ZW1WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY29udGVudExpc3RJdGVtVmlld01vZGVsIiwiRnNvWHpjIixfLm1MKX0pO18ub0w9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwZTJvamIiKTtyZXR1cm4gXy5DRH07Xy5wTD1fLmNEKCgpPT5fLm9MKCksImxpc3RJdGVtVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxpc3RJdGVtVmlld01vZGVsIiwicGUyb2piIixfLm9MKX0pO18ucUw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJVQU01bSIpO3JldHVybiBfLnlEfTtfLnJMPV8uY0QoKCk9Pl8ucUwoKSwibG9ja3VwVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxvY2t1cFZpZXdNb2RlbCIsIlVBTTVtIixfLnFMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkZMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVk9VUDlkIik7cmV0dXJuIF8udUR9O18uR0w9Xy5jRCgoKT0+Xy5GTCgpLCJsaW5lYXJMYXlvdXRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGluZWFyTGF5b3V0Vmlld01vZGVsIiwiVk9VUDlkIixfLkZMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgS0ksYWVhLCRJLGFKLGJlYTtfLkdJPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iPyEwOmE/LmZvcm1JZD09PWI/LmZvcm1JZCYmYT8uZmllbGRJZD09PWI/LmZpZWxkSWR9O18uSEk9ZnVuY3Rpb24oYSl7cmV0dXJuIEVycm9yKCJuZGAiK2EucmVwbGFjZSgvXG5ccyovZywiICIpKX07Xy5JST1mdW5jdGlvbihhKXtyZXR1cm4gRXJyb3IoIm9kYCIrYS5yZXBsYWNlKC9cblxzKi9nLCIgIikpfTtfLkpJPWZ1bmN0aW9uKCl7cmV0dXJue25qOiExLGZiOiEwLHpkOiExLGlzU3VibWl0dGluZzohMSxjczowfX07S0k9ZnVuY3Rpb24oYSxiKXt2YXIgYz0hMDtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYSkpe2lmKGQ9PT0iZm9ybUlkIiljb250aW51ZTtsZXQgZT1hW2RdO2Uua2luZD09PTEmJihLSShlLnZhbHVlLGIpfHwoYz0hMSkpfWIoYS5mb3JtSWQpfHwoYz0hMSk7cmV0dXJuIGN9OwpfLk1JPWZ1bmN0aW9uKGEpe3ZhciBiPUxJLmdldChhKTtpZihiKXJldHVybiBiO2I9YS5yZXBsYWNlKC9fKFthLXpBLVowLTldKS9nLChjLGQpPT5kLnRvVXBwZXJDYXNlKCkpO0xJLnNldChhLGIpO3JldHVybiBifTtfLk9JPWZ1bmN0aW9uKCl7Tkk/LihhPT5hKzEpfTtfLlJJPWZ1bmN0aW9uKGEpe1BJP1BJKCk6KFtQSSwsTkldPV8uSigwLHZvaWQgMCwiVnhZMGZiIiksUEkoKSk7cmV0dXJuIF8uUUkuZ2V0KGEpfTtfLlNJPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9Xy5SSShhKTtpZihjKXtpZihiJiZiIT09Yy5VaSl0aHJvdyBfLklJKGBGb3JtIHR5cGUgbWlzbWF0Y2ggZm9yIGZvcm1JZCAke2F9OiBwcm92aWRlZCBmb3JtVHlwZSAiJHtifSIgZG9lcyBub3QgbWF0Y2ggc3RvcmVkIGZvcm1UeXBlICIke2MuVWl9Ii5gKTtyZXR1cm4gYy5mb3JtfX19OwpfLlZJPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUkkoYSk7aWYoIWIpdGhyb3cgXy5USShhKTtpZihiLlNwPT09MClyZXR1cm4gYi5mb3JtO2I9Yi5wZztpZighYil0aHJvdyBfLlVJKGEpO2E9Xy5TSShiLlZ6KTtpZighYSl0aHJvdyBfLkhJKGBGb3JtSWQgJHtiLlZ6fSBub3QgZm91bmQuYCk7cmV0dXJuIGF9O2FlYT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9Xy5WSShhKX1jYXRjaChjKXtyZXR1cm4hMX0oYT1LSShiLGM9Pl8uUUkuZGVsZXRlKGMpKSkmJl8uT0koKTtyZXR1cm4gYX07Xy5XST1mdW5jdGlvbihhLGIpe2lmKGI9PT0iZm9ybUlkIil0aHJvdyBfLklJKCJGaWVsZCBpZCBjYW5ub3QgYmUgZm9ybUlkLiIpO2lmKGE9Xy5TSShhKSlyZXR1cm4gYj1fLk1JKGIpLGFbYl19O18uWEk9ZnVuY3Rpb24oYSl7aWYoYT1fLlJJKGEpKXJldHVybiBhLkRsfTsKXy5aST1mdW5jdGlvbihhKXt2YXIgYj1fLk4oKCk9Pl8uQnYoYSk/P3t9LHtlcXVhbHM6Xy5HSX0sIkxETkxiZCIpLGM9Xy5OKCgpPT57dmFyIHtmb3JtSWQ6ZCxmaWVsZElkOmV9PWIoKTtpZihkJiZlKXt2YXIgZjtpZihmPV8uV0koZCxlKSl7aWYoISgiZnVuY3Rpb24iPT10eXBlb2YgXy5ZSSYmZiBpbnN0YW5jZW9mIF8uWUkpKXRocm93IF8uSUkoYEZpZWxkICR7ZX0gaW4gZm9ybSAke2R9IGlzIG5vdCBhIFNjYWxhckZpZWxkLmApO31lbHNlIGY9dm9pZCAwO3JldHVybiBmfX0sdm9pZCAwLCJvOG8wMGQiKTtyZXR1cm4oKT0+YygpfTskST1mdW5jdGlvbihhLGIpe3ZhciBjPShjPV8uUkkoYSkpP2MuQ246dm9pZCAwO2lmKCFjKXRocm93IF8uSEkoYE1pc3NpbmcgdG9Gb3JtRGF0YSBmdW5jdGlvbiBmb3IgRm9ybUlkICR7YX0uYCk7cmV0dXJuIGMoYil9OwphSj1mdW5jdGlvbihhLGIpe3ZhciBjPShjPV8uUkkoYSkpP2MuQ2w6dm9pZCAwO2lmKCFjKXRocm93IF8uSEkoYE1pc3NpbmcgZm9ybURhdGFFeHRlbnNpb25GaWVsZCBmb3IgRm9ybUlkICR7YX0uYCk7cmV0dXJue1tjXTpifX07CmJlYT1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj1fLlZJKGEpLGM9Xy5YSShhKTt2YXIgZD0oZD1fLlJJKGEpKT9kLnN1Ym1pdENvbmZpZzp2b2lkIDA7dmFyIGU9Xy55KCkucmVzb2x2ZShfLkluKF8uRkkpKSxmPV8uUkkoYSk7ZiYmKGYuWmQ9ey4uLmYuWmQsaXNTdWJtaXR0aW5nOiEwfSxfLk9JKCkpO3RyeXtpZihkJiZlKXtsZXQgaz0kSShhLGIpO3ZhciBoPWFKKGEsayk7bGV0IGw9YXdhaXQgZS5iaShkLnN1Ym1pdElkLGgse3N1Ym1pdEFjdGlvbjoiU1VCTUlUX0FDVElPTl9TVUJNSVNTSU9OIixhbGxGaWVsZHM6ITB9LGQucGFyYW1zLGQuY2xpY2tUcmFja2luZ1BhcmFtcyk7aWYobC5zdWJtaXRFcnJvcil0aHJvdyBiSihsLnN1Ym1pdEVycm9yKTthd2FpdCBjPy5IbT8uKGwpfWVsc2UgYXdhaXQgYz8ub25TdWJtaXQ/LihiKX1jYXRjaChrKXtyZXR1cm4gayBpbnN0YW5jZW9mIEVycm9yP1Byb21pc2UucmVqZWN0KGspOlByb21pc2UucmVqZWN0KGJKKGspKX1maW5hbGx5e2lmKGE9Cl8uUkkoYSkpYS5aZD17Li4uYS5aZCxpc1N1Ym1pdHRpbmc6ITEsY3M6YS5aZC5jcysxfSxfLk9JKCl9fTtfLmNKPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5OKCgpPT5fLkJ2KGEpPz8iIix2b2lkIDAsIkdSbXByIiksZD1fLk4oKCk9Pl8uU0koYygpLGIpLHZvaWQgMCwicGJUZUJiIiksZT1fLk4oKCk9Pnt2YXIgaD1jKCk7cmV0dXJuKGg9Xy5SSShoKSk/aC5aZDpfLkpJKCl9LHZvaWQgMCwidWN2NkxiIiksZj1fLk4oKCk9Pnt2YXIgaD1kKCk7aWYoIWgpcmV0dXJue2Zvcm1EYXRhOnZvaWQgMCxldzp2b2lkIDB9O2g9JEkoYygpLGgpO3JldHVybntmb3JtRGF0YTpoLGV3OmFKKGMoKSxoKX19LHZvaWQgMCwiaEg2MXFjIik7cmV0dXJue2Zvcm06KCk9PmQoKSxkYXRhOigpPT5mKCksc3RhdGU6KCk9PmUoKSxzdWJtaXQ6YXN5bmMoKT0+e2F3YWl0IGJlYShjKCkpfSxkaXNwb3NlOigpPT5hZWEoYygpKX19O18uZEo9U3ltYm9sKCJkZCIpO3ZhciBiSjtfLlRJPWE9Pl8uSEkoYEZvcm0gc2Vzc2lvbiBmb3IgRm9ybUlkICR7YX0gbm90IGZvdW5kLmApO18uVUk9YT0+Xy5ISShgTmVzdGVkIGZvcm0gYWNjZXNzb3IgZm9yIEZvcm1JZCAke2F9IG5vdCBmb3VuZC5gKTtiSj1hPT5fLklJKGBVbmtub3duIGVycm9yIGR1cmluZyBmb3JtIHN1Ym1pc3Npb246ICR7SlNPTi5zdHJpbmdpZnkoYSl9YCk7dmFyIExJPW5ldyBNYXA7dmFyIFBJLE5JO18uUUk9bmV3IE1hcDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEhmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQ0FSRF9TVFlMRV9PVVRMSU5FIjpyZXR1cm4ieXRDYXJkVmlld01vZGVsT3V0bGluZSI7Y2FzZSAiQ0FSRF9TVFlMRV9UT05BTCI6cmV0dXJuInl0Q2FyZFZpZXdNb2RlbFRvbmFsIjtjYXNlICJDQVJEX1NUWUxFX0lOVkVSU0UiOnJldHVybiJ5dENhcmRWaWV3TW9kZWxJbnZlcnRlZCI7ZGVmYXVsdDpyZXR1cm4ieXRDYXJkVmlld01vZGVsUmFpc2VkIn19O3ZhciBITD1uZXcgXy5JKCJzZWN0aW9uSGVhZGVyVmlld01vZGVsIik7dmFyIElmYTtfLklMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVmJYclVlIik7cmV0dXJuIF8uaEh9O0lmYT1fLmNEKCgpPT5fLklMKCksImNvbnZlcnNhdGlvblZpZGVvSWRlYUNhcmRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY29udmVyc2F0aW9uVmlkZW9JZGVhQ2FyZFZpZXdNb2RlbCIsIlZiWHJVZSIsXy5JTCl9KTt2YXIgSmZhO18uSkw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwRVNsRGIiKTtyZXR1cm4gXy5lRn07SmZhPV8uY0QoKCk9Pl8uSkwoKSwidGhlbWVkSW1hZ2VWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidGhlbWVkSW1hZ2VWaWV3TW9kZWwiLCJwRVNsRGIiLF8uSkwpfSk7dmFyIEtmYT1uZXcgXy5WcygiQVNLX1NUVURJT19DQVJEX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgTGZhPW5ldyBfLlZzKCJBU0tfU1RVRElPX1ZJREVPX0VESVRfUFJFVklFV19WSUVXX01PREVMX1RPS0VOIik7dmFyIE1mYT1uZXcgXy5WcygiQVVESUVOQ0VfT05MSU5FX0hFQVRNQVBfVklFV19NT0RFTF9UT0tFTiIpO3ZhciBOZmE9bmV3IF8uVnMoIkNPTU1FTlRTX0RJR0VTVF9DT05URU5UX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgT2ZhPW5ldyBfLlZzKCJQUklNRVRJTUVfT0ZGRVJJTkdfSU5fUkVWSUVXX0NBUkRfQ09OVEVOVF9WSUVXX01PREVMX1RPS0VOIik7dmFyIFBmYT1uZXcgXy5WcygiWVRDUF9GVU5ORUxfVklFV19NT0RFTF9UT0tFTiIpO3ZhciBRZmE7Xy5LTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInFWRGdCZCIpO3JldHVybiBfLmRGfTtRZmE9Xy5jRCgoKT0+Xy5LTCgpLCJjaW5lbWF0aWNDb250YWluZXJWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY2luZW1hdGljQ29udGFpbmVyVmlld01vZGVsIiwicVZEZ0JkIixfLktMKX0pO3ZhciBSZmE7Xy5MTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImk2WG9tZSIpO3JldHVybiBfLlBGfTtSZmE9Xy5jRCgoKT0+Xy5MTCgpLCJyYWRpb0J1dHRvbkl0ZW1WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmFkaW9CdXR0b25JdGVtVmlld01vZGVsIiwiaTZYb21lIixfLkxMKX0pO3ZhciBTZmE7Xy5NTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImJ6ajBqZCIpO3JldHVybiBfLnRMfTtTZmE9Xy5jRCgoKT0+Xy5NTCgpLCJpbmxpbmVFeHBhbmRlclZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJpbmxpbmVFeHBhbmRlclZpZXdNb2RlbCIsImJ6ajBqZCIsXy5NTCl9KTt2YXIgVGZhO18uTkw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJGaU5HT2MiKTtyZXR1cm4gXy5nSH07VGZhPV8uY0QoKCk9Pl8uTkwoKSwiZGlzbWlzc2libGVJdGVtIik7Xy5ZdChfLkpELGE9PnthLkooImRpc21pc3NpYmxlSXRlbSIsIkZpTkdPYyIsXy5OTCl9KTt2YXIgVWZhPW5ldyBfLlZzKCJDT05URU5UX1NFQ1RJT05fVklFV19NT0RFTF9UT0tFTiIpO3ZhciBWZmE7Xy5PTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInVSSWFDIik7cmV0dXJuIF8uQkh9O1ZmYT1fLmNEKCgpPT5fLk9MKCksImNoYW5uZWxBdHRyaWJ1dGlvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJjaGFubmVsQXR0cmlidXRpb25WaWV3TW9kZWwiLCJ1UklhQyIsXy5PTCl9KTt2YXIgUEw9Xy5MKGE9Pnt2YXIgYj1fLlFIKCgpPT5hLmRhdGEoKS50b3BDb250ZW50UGFkZGluZ1Rva2VuKSxjPV8uUUgoKCk9PmEuZGF0YSgpLmJvZHlDb250ZW50UGFkZGluZ1ZhbHVlcz8udG9wUGFkZGluZ1Rva2VufHxhLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdUb2tlbiksZD1fLlFIKCgpPT5hLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdWYWx1ZXM/LmJvdHRvbVBhZGRpbmdUb2tlbnx8YS5kYXRhKCkuYm9keUNvbnRlbnRQYWRkaW5nVG9rZW4pLGU9Xy5RSCgoKT0+YS5kYXRhKCkuYm9keUNvbnRlbnRQYWRkaW5nVmFsdWVzPy5ob3Jpem9udGFsUGFkZGluZ1Rva2VufHxhLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdUb2tlbiksZj0oKT0+YS5kYXRhKCkuYmFja2dyb3VuZCxoPSgpPT5hLmRhdGEoKS50cmFpbGluZ0FjdGlvbkxheW91dD09PSJDQVJEX1RSQUlMSU5HX0FDVElPTl9MQVlPVVRfT1ZFUkxBWSIsaz0oKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb25MYXlvdXQ9PT0KIkNBUkRfVFJBSUxJTkdfQUNUSU9OX0xBWU9VVF9JTkxJTkVfQ0VOVEVSIixsPV8ueSgpLnJlc29sdmUoXy5JbihVZmEpKSxtPV8ueSgpLnJlc29sdmUoXy5JbihLZmEpKSxuPV8ueSgpLnJlc29sdmUoXy5JbihMZmEpKSxwPV8ueSgpLnJlc29sdmUoXy5JbihOZmEpKSxyPV8ueSgpLnJlc29sdmUoXy5JbihNZmEpKSx0PV8ueSgpLnJlc29sdmUoXy5JbihQZmEpKSx2PV8ueSgpLnJlc29sdmUoXy5JbihPZmEpKSx6PSgpPT5hLmRhdGEoKS5jYXJkU3RhdGU/LmVuYWJsZW1lbnRTdGF0ZT09PSJDQVJEX0VOQUJMRU1FTlRfU1RBVEVfRElTQUJMRUQiLEU9KCk9PiF6KCkmJl8udEgoYS5kYXRhKCkucmVuZGVyZXJDb250ZXh0KSxBPSgpPT57aWYoYS5pc0V4cGFuZGVkPy4oKSE9PXZvaWQgMClyZXR1cm4gYS5pc0V4cGFuZGVkPy4oKTtzd2l0Y2goYS5kYXRhKCkuY2FyZFN0YXRlPy5leHBhbnNpb25TdGF0ZSl7Y2FzZSAiQ0FSRF9FWFBBTlNJT05fU1RBVEVfRVhQQU5ERUQiOnJldHVybiEwOwpjYXNlICJDQVJEX0VYUEFOU0lPTl9TVEFURV9DT0xMQVBTRUQiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuIGEuaXNTZWxlY3RlZD8uKCl9fTtyZXR1cm4gXy5LKCJ5dC1jYXJkLXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbEhvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKFRmYSx7Y29udGVudElkOigpPT5hLmRhdGEoKS5jb250ZW50SWR9LCgpPT5fLksoImRpdiIse2VsOl8uckYoXy51SCgoKT0+RSgpP2EuZGF0YSgpLnJlbmRlcmVyQ29udGV4dDp2b2lkIDAsdm9pZCAwLHZvaWQgMCxbIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKSwuLi4oXy54KCJXZWJGRUFsbFN0dWRpb0J5Q2hhbm5lbF9fZW5hYmxlX2FuYWx5dGljc19odWJfd2ViIik/WyJZVC1MSVNULUlURU0tVklFVy1NT0RFTCJdOltdKV0pKSxjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbENhcmRWaWV3TW9kZWxJbm5lciIse3l0Q2FyZFZpZXdNb2RlbENsaWNrYWJsZTpFfSwoKT0+SGZhKGEuZGF0YSgpLmNhcmRTdHlsZSksCnt5dENhcmRWaWV3TW9kZWxDYXJkU2VsZWN0ZWQ6KCk9PiEhYS5pc1NlbGVjdGVkPy4oKX0sKCk9PntpZihhLmlzU2VsZWN0ZWQ/LigpPT09dm9pZCAwKXthOntzd2l0Y2goYS5kYXRhKCkuY2FyZFN0YXRlPy5zZWxlY3Rpb25TdGF0ZSl7Y2FzZSAiQ0FSRF9TRUxFQ1RJT05fU1RBVEVfU0VMRUNURUQiOnZhciBGPSJ5dENhcmRWaWV3TW9kZWxTZWxlY3RlZCI7YnJlYWsgYX1GPXZvaWQgMH1yZXR1cm4gRn19KSxyb2xlOigpPT5FKCkmJiFfLkIoYS5kYXRhKCkudG9wQ29udGVudCxITCk/ImJ1dHRvbiI6dm9pZCAwLCJhcmlhLWRpc2FibGVkIjp6LHRhYmluZGV4OigpPT56KCk/LTE6RSgpJiYhXy5CKGEuZGF0YSgpLnRvcENvbnRlbnQsSEwpPzA6dm9pZCAwfSxfLksoXy5XLHtkYXRhOmYsd3JhcHBlcjpGPT5fLksoImRpdiIse2NsYXNzOiJ5dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kV3JhcHBlciJ9LEYoKSl9LHtjaW5lbWF0aWNDb250YWluZXJWaWV3TW9kZWw6UWZhLHRoZW1lZEltYWdlVmlld01vZGVsOih7ZGF0YTpGfSk9PgpfLksoSmZhLHtkYXRhOkYsY2xhc3NOYW1lOiJ5dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kIn0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRDYXJkVmlld01vZGVsQ29udGVudFdyYXBwZXIifSxfLksoXy5PLHtBOigpPT4haCgpLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRDb250YWluZXIifSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRDYXJkVmlld01vZGVsVG9wQ29udGVudCIse3l0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRQYWRkaW5nOigpPT4hYS5kYXRhKCkuZGlzYWJsZVRvcENvbnRlbnRQYWRkaW5nJiZhLmRhdGEoKS50b3BDb250ZW50fSksc3R5bGU6Xy5JRSh7cGFkZGluZzpifSl9LF8uSyhfLlcse2RhdGE6KCk9PmEuZGF0YSgpLnRvcENvbnRlbnR9LHtjb250ZW50TGlzdEl0ZW1WaWV3TW9kZWw6Xy5uTCxiYXNpY0NvbnRlbnRWaWV3TW9kZWw6Xy5sTCxsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCxsaXN0SXRlbVZpZXdNb2RlbDpfLnBMLApzZWN0aW9uSGVhZGVyVmlld01vZGVsOl8udkR9KSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9uIix7eXRDYXJkVmlld01vZGVsSW5saW5lQ2VudGVyVHJhaWxpbmdBY3Rpb246ayx5dENhcmRWaWV3TW9kZWxJbmxpbmVUcmFpbGluZ0FjdGlvbk1hcmdpbjooKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb259KX0sXy5LKF8uVyx7ZGF0YTooKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb259LHtidXR0b25WaWV3TW9kZWw6Xy5VRn0pKSl9KSxfLksoImRpdiIse2NsYXNzOl8uUCh7eXRDYXJkVmlld01vZGVsQm90dG9tQ29udGVudFBhZGRpbmc6KCk9PiFhLmRhdGEoKS5kaXNhYmxlQm9keUNvbnRlbnRQYWRkaW5nJiZhLmRhdGEoKS5ib2R5Q29udGVudH0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLXRvcCI6YywicGFkZGluZy1ib3R0b20iOmQsInBhZGRpbmctbGVmdCI6ZSwicGFkZGluZy1yaWdodCI6ZX0pfSxfLksoXy5XLHtkYXRhOigpPT4KYS5kYXRhKCkuYm9keUNvbnRlbnR9LHtiYXNpY0NvbnRlbnRWaWV3TW9kZWw6Xy5sTCxjaGFubmVsQXR0cmlidXRpb25WaWV3TW9kZWw6VmZhLGNvbnRlbnRJbnNwaXJhdGlvbkNvbnZlcnNhdGlvblZpZGVvSWRlYUNhcmRWaWV3TW9kZWw6SWZhLGNvbnRlbnRMaXN0SXRlbVZpZXdNb2RlbDpfLm5MLGRlc2NyaXB0aW9uUHJldmlld1ZpZXdNb2RlbDpfLnZMLGlubGluZUV4cGFuZGVyVmlld01vZGVsOih7ZGF0YTpGfSk9Pl8uSyhTZmEse2RhdGE6Rixpc1NlbGVjdGVkOkF9KSxsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCxsaXN0SXRlbVZpZXdNb2RlbDpfLnBMLGxvY2t1cFZpZXdNb2RlbDooe2RhdGE6Rn0pPT5fLksoXy5yTCx7ZGF0YTpGLHdxOiEwfSksLi4uKG0mJnthc2tTdHVkaW9DYXJkVmlld01vZGVsOm19KSwuLi4obiYme2Fza1N0dWRpb1ZpZGVvRWRpdFByZXZpZXdWaWV3TW9kZWw6bn0pLC4uLihyJiZ7YXVkaWVuY2VPbmxpbmVIZWF0bWFwVmlld01vZGVsOnJ9KSwuLi4ocCYmCntjb21tZW50c0RpZ2VzdENvbnRlbnRWaWV3TW9kZWw6cH0pLC4uLihsJiZ7Y29udGVudFNlY3Rpb25WaWV3TW9kZWw6bH0pLC4uLih2JiZ7cHJpbWV0aW1lT2ZmZXJpbmdJblJldmlld0NhcmRDb250ZW50Vmlld01vZGVsOnZ9KSwuLi4odCYme2Z1bm5lbFZpZXdNb2RlbDp0fSl9KSkpLF8uSyhfLk8se0E6KCk9PmgoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENhcmRWaWV3TW9kZWxPdmVybGF5VHJhaWxpbmdBY3Rpb24ifSxfLksoXy5XLHtkYXRhOigpPT5hLmRhdGEoKS50cmFpbGluZ0FjdGlvbn0se2J1dHRvblZpZXdNb2RlbDpfLlVGfSkpfSksXy5LKF8uTyx7QTp6LHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q2FyZFZpZXdNb2RlbERpc2FibGVkT3ZlcmxheSIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KX0pKSkpfSwiQWEiKTt2YXIgV2ZhPVsiQSIudG9TdHJpbmcoKSwiQlVUVE9OIi50b1N0cmluZygpXSxYZmE9Xy5MKGE9PntmdW5jdGlvbiBiKEgpe2UoKS5pc0Rpc2FibGVkfHwoZj9mKEgudGFyZ2V0LGUoKSxrPy4oKSk6QSghRSgpKSl9ZnVuY3Rpb24gYyhIKXtILmtleT09PSIgIiYmKEgucHJldmVudERlZmF1bHQoKSxILnRhcmdldC5jbGljaygpKX12YXIgZD1fLngoImVuYWJsZV9uYXRpdmVfaW5wdXRfc2VsZWN0YWJsZV9pdGVtIiksZT1hLmRhdGEsZj1hLm9uU2VsZWN0ZWQsaD1hLlNoLGs9YS5ncm91cE5hbWUsbD1hLmNsYXNzTmFtZSxtPWEucm9sZSxuPSJyYWRpbyIrXy5PSCgpLHA9Xy5RSCgoKT0+ZSgpLnZlcnRpY2FsUGFkZGluZ1Rva2VuKSxyPV8uUUgoKCk9PmUoKS5ob3Jpem9udGFsUGFkZGluZ1Rva2VuKSx0PSgpPT5lKCkuY29udGVudCxbdix6XT1fLkooITEsdm9pZCAwLCJVbTdGZ2MiKSxFPXYsQT16LEY9KCk9PiEhZSgpLmlzRGlzYWJsZWQsQz0oKT0+e2lmKGghPT12b2lkIDApe2xldCBIPQpoKCk7cmV0dXJuISghSHx8ZSgpLmtleSE9PUgpfXJldHVybiBFKCl9LEc9KCk9PmghPT12b2lkIDAmJmUoKS5iZWhhdmlvcj09PSJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfRVhQQU5ERURfTk9UX1NFTEVDVEVEIj8hMTpDKCksRD0oKT0+e2lmKGghPT12b2lkIDAmJkMoKSlzd2l0Y2goZSgpLmJlaGF2aW9yKXtjYXNlICJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfU0VMRUNURURfTk9UX0VYUEFOREVEIjpyZXR1cm4hMTtjYXNlICJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfRVhQQU5ERURfTk9UX1NFTEVDVEVEIjpyZXR1cm4hMH19O3JldHVybiBkP18uSygieXQtc2VsZWN0YWJsZS1pdGVtLXZpZXctbW9kZWwiLHtzdHlsZTpfLklFKHsicGFkZGluZy10b3AiOnAsInBhZGRpbmctYm90dG9tIjpwLCJwYWRkaW5nLWxlZnQiOnIsInBhZGRpbmctcmlnaHQiOnJ9KSxjbGFzczpfLlAoInl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxIb3N0IixsLCJ5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsQ29udGFpbmVyIiwKInl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVDb250YWluZXIiLHt5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsRGlzYWJsZWQ6Rn0pLCJwcm9wOmNoZWNrZWQiOkd9LF8uSygiaW5wdXQiLHtpZDpuLHR5cGU6InJhZGlvIixuYW1lOmEuZ3JvdXBOYW1lLCJwcm9wOmNoZWNrZWQiOkcsZGlzYWJsZWQ6Riwib246Y2xpY2siOmIsIm9uOmtleWRvd24iOmMsY2xhc3M6Inl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVSYWRpb0J1dHRvbiJ9KSxfLksoImxhYmVsIix7Zm9yOm4sY2xhc3M6Inl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVMYWJlbCIsIm9uOmtleWRvd24iOmN9LF8uSyhfLlcse2RhdGE6dH0se2NhcmRWaWV3TW9kZWw6KHtkYXRhOkh9KT0+Xy5LKFBMLHtkYXRhOkgsaXNTZWxlY3RlZDpHLGlzRXhwYW5kZWQ6RH0pfSkpKTpfLksoInl0LXNlbGVjdGFibGUtaXRlbS12aWV3LW1vZGVsIix7c3R5bGU6Xy5JRSh7InBhZGRpbmctdG9wIjpwLCJwYWRkaW5nLWJvdHRvbSI6cCwKInBhZGRpbmctbGVmdCI6ciwicGFkZGluZy1yaWdodCI6cn0pLCJhcmlhLWNoZWNrZWQiOkcsY2xhc3M6Xy5QKCJ5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsSG9zdCIsbCwieXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbENvbnRhaW5lciIse3l0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxEaXNhYmxlZDpGfSksIm9uOmNsaWNrIjpmdW5jdGlvbihIKXtpZighZSgpLmlzRGlzYWJsZWQpe3ZhciBSPUguY3VycmVudFRhcmdldDtpZihfLngoIndlYl9zZWxlY3RhYmxlX2l0ZW1fY2hpbGRfdGFwX2tpbGxfc3dpdGNoIikpUj0hMTtlbHNle3ZhciBNPV8ucUgoSCk7Uj1fLnJIKE0sUixXZmEpfVJ8fChmP2YoSC5jdXJyZW50VGFyZ2V0LGUoKSxrPy4oKSk6QSghRSgpKSl9fSwicHJvcDpjaGVja2VkIjpHLHJvbGU6bSwiYXJpYS1kaXNhYmxlZCI6Rix0YWJpbmRleDowfSxfLksoXy5XLHtkYXRhOnR9LHtjYXJkVmlld01vZGVsOih7ZGF0YTpIfSk9Pl8uSyhQTCx7ZGF0YTpILGlzU2VsZWN0ZWQ6RywKaXNFeHBhbmRlZDpEfSl9KSl9LCJCYSIpO18uRUw9Xy5MKGE9PntmdW5jdGlvbiBiKHosRSxBKXt2YXIgRj1jKCkuZm9ybUZpZWxkTWV0YWRhdGEmJm0oKSE9PXZvaWQgMD8zOmQoKT8yOjE7Rj09PTEmJkUua2V5IT1udWxsJiZ0KEUua2V5KTtGPT09MyYmRS5rZXkhPW51bGwmJm0oKT8udXBkYXRlVmFsdWUoRS5rZXkpO2U/Lih6LEUsQSl9dmFyIHtkYXRhOmMsV2I6ZCxvblNlbGVjdGVkOmUsU2g6Zixncm91cE5hbWU6aCxjbGFzc05hbWU6ayxuYTpsfT1fLkRDKGEse1diOiEwfSksbT1fLlpJKCgpPT5jKCkuZm9ybUZpZWxkTWV0YWRhdGEpLG49KCk9Pmg/LigpfHxjKCkua2V5LFtwLHJdPV8uQUMoKCk9PmMoKS5kZWZhdWx0U2VsZWN0ZWRLZXkpLHQ9cix2PSgpPT4oYygpLmZvcm1GaWVsZE1ldGFkYXRhJiZtKCkhPT12b2lkIDA/MzpkKCk/MjoxKT09PTM/bSgpPy52YWx1ZTpkKCk/Zj8uKCk6cCgpO3JldHVybiBfLksoInl0LXJhZGlvLWJ1dHRvbi1ncm91cC12aWV3LW1vZGVsIix7Y2xhc3M6Xy5QKCJ5dFJhZGlvQnV0dG9uR3JvdXBWaWV3TW9kZWxIb3N0IiwKayl9LF8uSygiZmllbGRzZXQiLHtjbGFzczoieXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsRmllbGRzZXQiLHJvbGU6InJhZGlvZ3JvdXAiLCJhcmlhLWludmFsaWQiOigpPT4hIW0oKT8uZXJyb3JzPy5bMF0sImFyaWEtZGVzY3JpYmVkYnkiOigpPT5tKCk/LmVycm9ycz8uWzBdP2BlcnJvci0ke2MoKS5rZXl9YDp2b2lkIDB9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5yYWRpb0J1dHRvbnN9LHtyYWRpb0J1dHRvbkl0ZW1WaWV3TW9kZWw6KHtkYXRhOnp9KT0+Xy5LKFJmYSx7ZGF0YTp6LG9uU2VsZWN0ZWQ6YixTaDp2LGdyb3VwTmFtZTpuLG5hOmx9KSxzZWxlY3RhYmxlSXRlbVZpZXdNb2RlbDooe2RhdGE6en0pPT5fLksoWGZhLHtkYXRhOnosb25TZWxlY3RlZDpiLFNoOnYsZ3JvdXBOYW1lOm4scm9sZToicmFkaW8ifSl9KSksXy5LKF8uTyx7QTooKT0+bSgpPy5lcnJvcnM/LlswXSx0aGVuOno9Pl8uSygiZGl2Iix7aWQ6KCk9PmBlcnJvci0ke2MoKS5rZXl9YCxjbGFzczoieXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsRXJyb3IifSwKKCk9PnooKS5tZXNzYWdlKX0pKX0sIkNhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImQyTFR4YiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkFFPV8uTCgoe25hbWU6YSxvbkNoYW5nZTpiLG9uQ2xpY2s6YyxjaGVja2VkOmQsWWU6ZSxoazpmLFlpOmgscWo6ayxuYTpsLFZjOm0sYXJpYUxhYmVsOm4sY2xhc3NOYW1lOnAsZGlzYWJsZWQ6cixob3Jpem9udGFsUGFkZGluZzp0LHZlcnRpY2FsUGFkZGluZzp2fSk9Pnt2YXIgej0icmFkaW8iK18uT0goKSxFPV8udUUoImlucHV0IiksQT1fLngoImVuYWJsZV9pb3Nfd2Vidmlld19yYWRpb19idXR0b25fcmVzcG9uc2l2ZW5lc3MiKSxbRixDXT1fLkooITEsdm9pZCAwLCJmTHJYNmQiKTtyZXR1cm4gXy5LKCJyYWRpby1zaGFwZSIse2NsYXNzOl8uUCgieXRSYWRpb1NoYXBlSG9zdCIscCl9LF8uSygiaW5wdXQiLHtlbDpFLGNsYXNzOl8uUCgieXRSYWRpb1NoYXBlSW5wdXQiLHt5dFJhZGlvU2hhcGVUYXBwYWJsZTooKT0+KCEhYnx8ISFjKSYmIXI/LigpfSksaWQ6eiwicHJvcDpjaGVja2VkIjpkLG5hbWU6YSx0eXBlOiJyYWRpbyIsZGlzYWJsZWQ6ciwib246Y2hhbmdlIjpmdW5jdGlvbihHKXtFLnZhbHVlLmNoZWNrZWQ9CiEhZD8uKCk7Yj8uKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpjbGljayI6ZnVuY3Rpb24oRyl7Yz8uKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJhcmlhLWxhYmVsIjpuLCJvbjpmb2N1c2luIjpmdW5jdGlvbigpe18ueSgpLnJlc29sdmUoXy5JbihfLmpIKSk/LlhlKCkmJkMoITApfSwib246Zm9jdXNvdXQiOmZ1bmN0aW9uKCl7QyghMSl9fSksXy5LKCJsYWJlbCIse2NsYXNzOl8uUCgieXRSYWRpb1NoYXBlTGFiZWxDb250YWluZXIiLGsse3l0UmFkaW9TaGFwZUNvbXBhY3Q6bCx5dFJhZGlvU2hhcGVLZXlib2FyZEZvY3VzZWQ6Rix5dFJhZGlvU2hhcGVUYXBwYWJsZTooKT0+KCEhYnx8ISFjKSYmIXI/LigpLHl0UmFkaW9TaGFwZURpc2FibGVkOnJ9KSxmb3I6en0sXy5LKF8uTyx7QTooKT0+IWg/LigpLHRoZW46KCk9Pl8uSyhTSCx7Y2hlY2tlZDpkLGhrOmYsZ2c6ITAsVmM6bSxEczpBfSl9KSxfLksoXy5PLHtBOigpPT4hIWUsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0UmFkaW9TaGFwZUxhYmVsIiwKe3l0UmFkaW9TaGFwZUV2ZW50UGFzc3Rocm91Z2g6QX0pLCJhcmlhLWhpZGRlbiI6KCk9PiEhbj8uKCksc3R5bGU6Xy5JRSh7InBhZGRpbmctbGVmdCI6dCwicGFkZGluZy1yaWdodCI6dCwicGFkZGluZy10b3AiOnYsInBhZGRpbmctYm90dG9tIjp2fSl9LGU/LigpKX0pLF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoU0gse2NoZWNrZWQ6ZCxoazpmLGdnOiExLFZjOm0sRHM6QX0pfSkpKX0sInciKTtfLkFFLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7b25DaGFuZ2U6ITAsb25DbGljazohMCxZZTohMH19Owp2YXIgU0g9Xy5MKCh7aGs6YSxWYzpiLERzOmN9KT0+e3ZhciBkPV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpPyJDSVJDTEVfRlVMTCI6IkNJUkNMRSI7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFJhZGlvU2hhcGVSYWRpbyIsYix7eXRSYWRpb1NoYXBlQ2hlY2tJY29uOmEseXRSYWRpb1NoYXBlUmFkaW9EZWZhdWx0U3R5bGU6KCk9PiFiPy4oKSx5dFJhZGlvU2hhcGVFdmVudFBhc3N0aHJvdWdoOmN9KSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uTUQse2ljb246KCk9PmE/LigpPyJDSEVDSyI6IkNJUkNMRSJ9KSxfLksoXy5NRCx7aWNvbjooKT0+YT8uKCk/IkNIRUNLIjpkLGFjdGl2ZTooKT0+IWE/LigpfSkpfSwieCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJ6Q2tLQmMiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5WRj1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImFjRnVWYyIpO3JldHVybiBfLkdEfTtfLldGPV8uY0QoKCk9Pl8uVkYoKSwiY29sbGVjdGlvblRodW1ibmFpbFZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJjb2xsZWN0aW9uVGh1bWJuYWlsVmlld01vZGVsIiwiYWNGdVZjIixfLlZGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLllGPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiZjkwdENiIik7cmV0dXJuIF8uRkR9O18uWkY9Xy5jRCgoKT0+Xy5ZRigpLCJ0b2dnbGVCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidG9nZ2xlQnV0dG9uVmlld01vZGVsIiwiZjkwdENiIixfLllGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmJHPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiTFZpTU0iKTtyZXR1cm4gXy5ERH07Xy5jRz1fLmNEKCgpPT5fLmJHKCksInN1YnNjcmliZUJ1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzdWJzY3JpYmVCdXR0b25WaWV3TW9kZWwiLCJMVmlNTSIsXy5iRyl9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGRHO18uZUc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy55KCkucmVzb2x2ZShfLkluKGRHKSksW2MsZF09Xy5KKGIsdm9pZCAwLCJIZkRkSyIpO2J8fF8uWXQoZEcsZCk7cmV0dXJuIF8uTigoKT0+e3ZhciBlPWEoKTtyZXR1cm4gZT9jKCk/LihlKTp2b2lkIDB9LHZvaWQgMCwidjcwRTdiIil9O2RHPW5ldyBfLlZzKCJTRU1BTlRJQ19DT0xPUl9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmlIPW5ldyBfLlZzKCJIT1JJWk9OVEFMX0JBUl9WSUVXX01PREVMX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTEg9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBfLnkoKS5yZXNvbHZlKF8uSkgpO3JldHVybiBfLnkoKS5yZXNvbHZlKF8uS0gpKCl9O18uTUg9ZnVuY3Rpb24oKXtyZXR1cm4gXy55KCkucmVzb2x2ZShfLktIKSgpfTtuZXcgXy5jcztfLkpIPW5ldyBfLlZzKCJXQVRDSF9QTEFZRVJfUFJPTUlTRV9UT0tFTiIpO25ldyBfLmNzO18uS0g9bmV3IF8uVnMoIkdFVF9TSE9SVFNfUExBWUVSX0ZVTkNUSU9OX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uVUg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYz0+e3ZhciBkPU9iamVjdC5rZXlzKGIpO18ubkUoKCk9PntpZihhPy4oKSl7Zm9yKGxldCBlIG9mIGQpYy5hZGRFdmVudExpc3RlbmVyKGUsYltlXSk7Xy5ZdSgoKT0+e2ZvcihsZXQgZSBvZiBkKWMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGJbZV0pfSl9fSwiYlhaR2ZlIil9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGRJLFBkYSxmSSxRZGEsaUksU2RhO2RJPWZ1bmN0aW9uKGEpe2lmKGEpc3dpdGNoKGEpe2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1hTTUFMTCI6cmV0dXJuIDE2O2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1NNQUxMIjpyZXR1cm4gMTg7Y2FzZSAiTElTVF9JVEVNX0lDT05fQUNDRVNTT1JZX1NJWkVfU1RBTkRBUkQiOnJldHVybiAyNDtjYXNlICJMSVNUX0lURU1fSUNPTl9BQ0NFU1NPUllfU0laRV9MQVJHRSI6cmV0dXJuIDM2O2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1hMQVJHRSI6cmV0dXJuIDQ4O2RlZmF1bHQ6cmV0dXJuIDI0fX07ClBkYT1mdW5jdGlvbihhLGIpe2lmKCFhPy5lbnRpdHlTZWxlY3RvclR5cGV8fCFhPy5lbnRpdHlLZXkpcmV0dXJue307c3dpdGNoKGEuZW50aXR5U2VsZWN0b3JUeXBlKXtjYXNlICJMSVNUX0lURU1fVklFV19NT0RFTF9FTlRJVFlfU0VMRUNUT1JfVFlQRV9DQVBUSU9OX0xBTkdVQUdFX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT1fLk1IKCk/LmdldE9wdGlvbigiY2FwdGlvbnMiLCJ0cmFjayIpLGI9dHlwZW9mIGE/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U9PT0ib2JqZWN0IiYmYS50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fGE/LmRpc3BsYXlOYW1lfHwiIix7ZGF0YTp7Li4uKCEhYiYme3NlbGVjdGlvblRleHQ6e2NvbnRlbnQ6Yn19KSwuLi4oISFiJiZ7bGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZToiQ0xPU0VEX0NBUFRJT05fU0VMRUNURUQifX1dfX0pLGlzRGlzYWJsZWQ6dHlwZW9mIGE9PT0idW5kZWZpbmVkIn19O2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX0FVRElPX1RSQUNLX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT0KXy5NSCgpPy5nZXRBdWRpb1RyYWNrKCl8fHZvaWQgMCxiPWE/LmdldExhbmd1YWdlSW5mbygpPy5nZXROYW1lKCkse2RhdGE6e3NlbGVjdGlvblRleHQ6e2NvbnRlbnQ6Yn0sLi4uKGImJiFhPy5nZXRMYW5ndWFnZUluZm8oKT8uZ2V0SXNEZWZhdWx0KCkmJntsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOiJQRVJTT05fUkFEQVJfRklMTEVEIn19XX19KX19O2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1BMQVlCQUNLX1NQRUVEX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT1fLngoIndlYl9zaG9ydHNfcGxheWJhY2tfcmF0ZV9waWNrZXIiKSxfLmVJWyJjb3VudGVyZmFjdHVhbHMud2ViX3Nob3J0c19wbGF5YmFja19yYXRlX3BpY2tlciJdPVN0cmluZyhhKSxhPyhhPV8uTUgoKT8uZ2V0UGxheWJhY2tSYXRlKCksYj1fLk1IKCk/LmdldEF2YWlsYWJsZVBsYXliYWNrUmF0ZXMoKSxhPXtkYXRhOntzZWxlY3Rpb25UZXh0Ontjb250ZW50OmE9PT0KMT9fLmFBKCJQTEFZRVJfU1BFRURfTk9STUFMIix2b2lkIDAsIk5vcm1hbCIpOl8uYUEoIlBMQVlCQUNLX1NQRUVEX1giLHtzcGVlZF9yYXRlX3BsYWNlaG9sZGVyOmAke2E/LnRvRml4ZWQoMil9YH0pfSxpc0Rpc2FibGVkOiFiPy5sZW5ndGh9fSk6YT17fSxhO2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1JFTU9WRV9BRFNfQURfU1RBVEUiOnJldHVybiBhPWE/LmVudGl0eUtleT8oYT1fLkhIKGIsYS5lbnRpdHlLZXkpKT97aXNIaWRkZW46YT8uYWRzU3RhdGUhPT0iQURTX1NUQVRFX1BMQVlJTkcifTp7aXNIaWRkZW46ITB9Ont9LGE7ZGVmYXVsdDpyZXR1cm57fX19O2ZJPWZ1bmN0aW9uKGEpe2lmKGEmJihhPWEuc3BsaXQoIjoiKSxhLmxlbmd0aD4xKSlyZXR1cm4gYVswXS5sZW5ndGg+MD9hWzBdOnZvaWQgMH07UWRhPWZ1bmN0aW9uKGEpe2lmKGEmJiFnSS5oYXMoYSkpe3ZhciBiPWZJKGEpO2ImJmdJLnNldChhLGIpfX07CmlJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17Li4uaEkoKX07aWYoYiYmYz09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIil7bGV0IGU9ZkkoYSk7ZSYmZ0kuZm9yRWFjaCgoZixoKT0+e2Y9PT1lJiZoIT09YSYmKGRbaF09ITEpfSl9ZFthXT1iO1JkYShkKX07U2RhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e2lmKCFjPy4oKSl7dmFyIGU9Zj0+e18uckgoXy5xSChmKSxkLGIpfHxhKGYpfTtkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlKTtyZXR1cm4oKT0+e2QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUpfX19fTtfLmVJPXt9O18uakk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJtbTJOMGMiKTtyZXR1cm4gXy56RX07Xy5rST1fLmNEKCgpPT5fLmpJKCksInN3aXRjaEJ1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzd2l0Y2hCdXR0b25WaWV3TW9kZWwiLCJtbTJOMGMiLF8uakkpfSk7dmFyIG1JO18ubEk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJoYjBXbWYiKTtyZXR1cm4gXy5YRn07bUk9Xy5jRCgoKT0+Xy5sSSgpLCJhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbCIsImhiMFdtZiIsXy5sSSl9KTt2YXIgVGRhO18ubkk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJoTmVsdmQiKTtyZXR1cm4gXy5hSX07VGRhPV8uY0QoKCk9Pl8ubkkoKSwibGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWwiLCJoTmVsdmQiLF8ubkkpfSk7dmFyIFVkYTtfLm9JPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgicjVDT0hmIik7cmV0dXJuIF8uJEh9O1VkYT1fLmNEKCgpPT5fLm9JKCksImxpc3RJdGVtVmlld0NvdW50Vmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxpc3RJdGVtVmlld0NvdW50Vmlld01vZGVsIiwicjVDT0hmIixfLm9JKX0pO3ZhciBwST1fLkwoKHtkYXRhOmEsZ2c6YixjZTpjLGlzVG9nZ2xlZDpkLERnOmUsbmE6Zn0pPT57dmFyIGg9KCk9PmIoKT9hKCkubGVhZGluZ0ltYWdlOmEoKS50cmFpbGluZ0ltYWdlPz9fLlFGKGEoKS50aGVtZWRUcmFpbGluZ0ltYWdlKSxrPSgpPT57YTp7dmFyIHI9YSgpLmxpc3RJdGVtSWNvbkFmdGVyU2VsZWN0aW9uVGV4dDtpZighYz8uKCkpc3dpdGNoKHIpe2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FGVEVSX1NFTEVDVElPTl9URVhUX0VYUEFORF9NT1JFIjpyPSJleHBhbmRfbW9yZSI7YnJlYWsgYTtjYXNlICJMSVNUX0lURU1fSUNPTl9BRlRFUl9TRUxFQ1RJT05fVEVYVF9OT05FIjpicmVhaztkZWZhdWx0OnI9ImNoZXZyb25fcmlnaHQiO2JyZWFrIGF9cj12b2lkIDB9cmV0dXJuIHJ9LGw9Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsSW1hZ2VDb250YWluZXIiLHt5dExpc3RJdGVtVmlld01vZGVsTGVhZGluZzpiLHl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZzooKT0+IWIoKX0pLAptPV8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeSIsInl0TGlzdEl0ZW1WaWV3TW9kZWxJbWFnZSIpLG49Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsQWNjZXNzb3J5Iix7eXRMaXN0SXRlbVZpZXdNb2RlbExlYWRpbmc6Yix5dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmc6KCk9PiFiKCl9KSxwPV8uZUcoKCk9PmIoKT9hKCkubGVhZGluZ0ljb25Db2xvclRva2VuOmEoKS50cmFpbGluZ0ljb25Db2xvclRva2VuKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+e3ZhciByPWEoKSx0PWIoKTtyZXR1cm4hISh0JiYoci5sZWFkaW5nSW1hZ2V8fHIubGVhZGluZ0FjY2Vzc29yeSl8fCF0JiYoci50cmFpbGluZ0ltYWdlfHxyLnRyYWlsaW5nQnV0dG9ufHxyLnRyYWlsaW5nQnV0dG9uc3x8ci50cmFpbGluZ0FjY2Vzc29yaWVzTGlzdHx8ci5zZWxlY3Rpb25UZXh0fHxyLnRoZW1lZFRyYWlsaW5nSW1hZ2V8fHIudHJhaWxpbmdJbWFnZUFjY2Vzc29yeVR5cGU9PT0iTElTVF9JVEVNX0lNQUdFX0FDQ0VTU09SWV9UWVBFX05FV19DT05URU5UX0lORElDQVRPUiJ8fApyLnRyYWlsaW5nTGFiZWwpKX0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOmgsdGhlbjpyPT5fLksoImRpdiIse2NsYXNzOmwsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyhfLmpGLHtkYXRhOnIsYWx0OiIiLFRhOiEwLFlhOiEwLEFiOigpPT57dmFyIHQ9KGIoKT9hKCkubGVhZGluZ0ltYWdlQWNjZXNzb3J5VHlwZT09PSJMSVNUX0lURU1fSU1BR0VfQUNDRVNTT1JZX1RZUEVfSUNPTiI6YSgpLnRyYWlsaW5nSW1hZ2VBY2Nlc3NvcnlUeXBlPT09IkxJU1RfSVRFTV9JTUFHRV9BQ0NFU1NPUllfVFlQRV9JQ09OIik/YigpP2RJKGEoKS5sZWFkaW5nSWNvbkFjY2Vzc29yeVNpemUpOmRJKGEoKS50cmFpbGluZ0ljb25BY2Nlc3NvcnlTaXplKTp2b2lkIDA7cmV0dXJuIHR9LGNsYXNzTmFtZTptLGlzVG9nZ2xlZDooKT0+IWU/LigpJiZkPy4oKSxzdHlsZTpfLklFKHtjb2xvcjpwfSl9KSl9KSxfLksoXy5PLHtBOigpPT5iKCkmJmEoKS5sZWFkaW5nQWNjZXNzb3J5LHRoZW46KCk9PgpfLksoImRpdiIse2NsYXNzOmx9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5sZWFkaW5nQWNjZXNzb3J5fSx7YXZhdGFyVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlNGLHtkYXRhOnIsZ2Q6bSxNazooKT0+Zj8uKCk/e3NpemU6ImV4dHJhLXNtYWxsIn06e3NpemU6Im1lZGl1bSJ9fSksY29sbGVjdGlvblRodW1ibmFpbFZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5XRix7ZGF0YTpyLG1heEhlaWdodDozNix3aWR0aDo1NixjZzohMH0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQnV0dG9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT5hKCkudHJhaWxpbmdCdXR0b259LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uVUYse2RhdGE6cixjbGFzc05hbWU6bn0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQnV0dG9ucz8uYnV0dG9ucywKdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lciJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS50cmFpbGluZ0J1dHRvbnM/LmJ1dHRvbnN9LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uVUYse2RhdGE6cixjbGFzc05hbWU6bn0pLGFjY291bnRMaW5rQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhtSSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksc3dpdGNoQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmtJLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxzdWJzY3JpYmVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uY0cse2RhdGE6cixpc092ZXJsYXk6ITEsUWQ6ITEsY2xhc3NOYW1lOm59KSx0b2dnbGVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uWkYse2RhdGE6cixjbGFzc05hbWU6bn0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQWNjZXNzb3JpZXNMaXN0Py50cmFpbGluZ0FjY2Vzc29yaWVzLAp0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsQnV0dG9uQ29udGFpbmVyIn0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLnRyYWlsaW5nQWNjZXNzb3JpZXNMaXN0Py50cmFpbGluZ0FjY2Vzc29yaWVzfSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlVGLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksobUkse2RhdGE6cixjbGFzc05hbWU6bn0pLHN3aXRjaEJ1dHRvblZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5rSSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksc3Vic2NyaWJlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmNHLHtkYXRhOnIsaXNPdmVybGF5OiExLFFkOiExLGNsYXNzTmFtZTpufSksdG9nZ2xlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlpGLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxiYWRnZVZpZXdNb2RlbDooe2RhdGE6cn0pPT4KXy5LKF8uYUcse2RhdGE6cixjbGFzczpufSksbGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKFRkYSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksbGlzdEl0ZW1WaWV3Q291bnRWaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKFVkYSx7ZGF0YTpyLGNsYXNzTmFtZTpufSl9KSl9KSxfLksoXy5PLHtBOigpPT4hYigpJiYhIWEoKS5zZWxlY3Rpb25UZXh0LHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uVix7dGV4dDooKT0+YSgpLnNlbGVjdGlvblRleHQsY2xhc3NOYW1lOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbFNlbGVjdGlvblRleHQiLCJ5dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0Iil9KSxfLksoXy5PLHtBOmssdGhlbjpyPT5fLksoXy5NRCx7aWNvbjpyLGNsYXNzTmFtZToieXRMaXN0SXRlbVZpZXdNb2RlbENoZXZyb25JY29uIixhcmlhSGlkZGVuOiEwLHN0eWxlOl8uSUUoe2NvbG9yOnB9KX0pfSkpfSksXy5LKF8uTyx7QTooKT0+CiFiKCkmJmEoKS50cmFpbGluZ0ltYWdlQWNjZXNzb3J5VHlwZT09PSJMSVNUX0lURU1fSU1BR0VfQUNDRVNTT1JZX1RZUEVfTkVXX0NPTlRFTlRfSU5ESUNBVE9SIix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmx9LF8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxOZXdDb250ZW50SW5kaWNhdG9yIn0pKX0pLF8uSyhfLk8se0E6KCk9PiFiKCkmJmEoKS50cmFpbGluZ0xhYmVsLHRoZW46KCk9Pl8uSyhfLlYse3RleHQ6KCk9PmEoKS50cmFpbGluZ0xhYmVsLGNsYXNzTmFtZTpfLlAoInl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsIiwieXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nIil9KX0pKX0pfSwieiIpO3ZhciBWZGE9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5pSCkpO3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsQm90dG9tQWNjZXNzb3J5In0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJvdHRvbUFjY2Vzc29yeX0sey4uLihiJiZ7aG9yaXpvbnRhbEJhclZpZXdNb2RlbDpifSl9KSl9LCJBIik7dmFyIHFJPV8uTChhPT57dmFyIGI9YS5kYXRhLGM9YS5jbGFzc05hbWUsZD1fLmVHKCgpPT5iKCkuaXNEaXNhYmxlZCYmYigpLmxhYmVsRGlzYWJsZWRDb2xvclRva2VuP2IoKS5sYWJlbERpc2FibGVkQ29sb3JUb2tlbjpiKCkubGFiZWxUZXh0Q29sb3JUb2tlbiksZT1fLmVHKCgpPT5iKCkuc3VwZXJMYWJlbENvbG9yVG9rZW4pO3JldHVybiBfLksoXy5PLHtBOigpPT5iKCkuc3VwZXJsYWJlbHx8YigpLnRpdGxlfHxiKCkuc3VidGl0bGV8fGIoKS5zdWJ0aXRsZUJhZGdlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKF8uTyx7QTooKT0+YigpLnN1cGVybGFiZWwsdGhlbjpmPT5fLksoXy5WLHt0ZXh0OmYsY2xhc3NOYW1lOiJ5dExpc3RJdGVtVmlld01vZGVsU3VwZXJsYWJlbCIsc3R5bGU6Xy5JRSh7Y29sb3I6ZX0pfSl9KSxfLksoXy5PLHtBOigpPT5iKCkudGl0bGUsdGhlbjpmPT5fLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsVGl0bGVXcmFwcGVyIn0sCl8uSyhfLlYse3RleHQ6ZixjbGFzc05hbWU6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsVGl0bGUiLHt5dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxlOigpPT5iKCkudGl0bGVNYXhMaW5lcz09PTF9KSxzdHlsZTpfLklFKHtjb2xvcjpkfSl9KSl9KSxfLksoXy5PLHtBOigpPT5iKCkuc3VidGl0bGVCYWRnZXx8YigpLnN1YnRpdGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUJhZGdlV3JhcHBlciJ9LF8uSyhfLlcse2RhdGE6KCk9PmIoKS5zdWJ0aXRsZUJhZGdlfSx7YmFkZ2VWaWV3TW9kZWw6KHtkYXRhOmZ9KT0+Xy5LKF8uYUcse2RhdGE6Zn0pfSkpLF8uSyhXZGEse2RhdGE6Yix5dzooKT0+ISFiKCkuc3VidGl0bGVCYWRnZX0pKX0pKX0pfSwiQiIpLFdkYT1fLkwoYT0+e3ZhciBiPV8uZUcoKCk9PmEuZGF0YSgpLnN1YkxhYmVsQ29sb3JUb2tlbik7CnJldHVybiBfLksoXy5PLHtBOigpPT5hLmRhdGEoKS5zdWJ0aXRsZSx0aGVuOmM9Pl8uSyhfLlYse3RleHQ6YyxjbGFzc05hbWU6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsU3VidGl0bGUiLHt5dExpc3RJdGVtVmlld01vZGVsV2l0aEJhZGdlOmEueXd9KSxzdHlsZTpfLklFKHtjb2xvcjpifSl9KX0pfSwiQyIpO3ZhciBYZGE9Xy5MKCh7ZGF0YTphLGNlOmIsZnU6Yyxpc1RvZ2dsZWQ6ZCxkaXNhYmxlZDplLFh4OmYsbmE6aCxCYzprLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpsLGhvcml6b250YWxQYWRkaW5nOm0sWXg6bix1QjpwLG9uVGFwOnIsYXJpYUxhYmVsOnQsRGc6dn0pPT57dmFyIHo9KCk9PiEhYSgpLmlzRGlzYWJsZWR8fCEhZT8uKCksRT1fLmVHKCgpPT5hKCkudHJhaWxpbmdJY29uQ29sb3JUb2tlbik7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsTGF5b3V0V3JhcHBlciIse3l0TGlzdEl0ZW1WaWV3TW9kZWxDb250YWluZXI6KCk9PiFmPy4oKSx5dExpc3RJdGVtVmlld01vZGVsRGlzYWJsZWQ6eix5dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGU6KCk9PiEhYSgpLnN1YnRpdGxlLHl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0OmgseXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlOm4seXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHk6Xy54KCJ3ZWJfZW5hYmxlX2xpc3RfaXRlbV9hY3Rpb25fdHlwb2dyYXBoeSIpLAp5dExpc3RJdGVtVmlld01vZGVsSW5Qb3B1cDprLHl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6KCk9Pmw/LigpJiYhZj8uKCkseXRMaXN0SXRlbVZpZXdNb2RlbE5vVHJhaWxpbmdUZXh0OigpPT4hYSgpLnNlbGVjdGlvblRleHQmJiFhKCkudHJhaWxpbmdMYWJlbH0sKCk9PnthOntzd2l0Y2goYSgpLmxheW91dFByaW9yaXR5KXtjYXNlICJMSVNUX0lURU1fTEFZT1VUX1BSSU9SSVRZX1RSQUlMSU5HIjp2YXIgQT0ieXRMaXN0SXRlbVZpZXdNb2RlbFByaW9yaXRpemVUcmFpbGluZyI7YnJlYWsgYX1BPXZvaWQgMH1yZXR1cm4gQX0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLWxlZnQiOm0sInBhZGRpbmctcmlnaHQiOm19KX0sXy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbE1haW5Db250YWluZXIifSxfLksocEkse2RhdGE6YSxnZzohMCxjZTpiLGlzVG9nZ2xlZDpkLERnOnYsbmE6aH0pLF8uSyhfLk8se0E6cCx0aGVuOigpPT5fLksoXy5WQywKe2NvbW1hbmQ6KCk9Pl8uc0goYSgpLnJlbmRlcmVyQ29udGV4dCksb25DbGljazpyLGRpc2FibGVkOnosY2xhc3NOYW1lOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbk9yQW5jaG9yIiwieXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVyIiksdG9nZ2xlYWJsZTpkIT09dm9pZCAwLHRvZ2dsZWQ6ZCxhcmlhTGFiZWw6dH0sXy5LKHFJLHtkYXRhOmF9KSksVzooKT0+Xy5LKHFJLHtkYXRhOmEsY2xhc3NOYW1lOiJ5dExpc3RJdGVtVmlld01vZGVsVGV4dFdyYXBwZXIifSl9KSxfLksoXy5PLHtBOigpPT4hIWMsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nIixzdHlsZTpfLklFKHtjb2xvcjpFfSl9LGMmJl8uSyhjLG51bGwpKSxXOigpPT5fLksocEkse2RhdGE6YSxnZzohMSxjZTpiLGlzVG9nZ2xlZDpkLERnOnYsbmE6aH0pfSkpLF8uSyhfLk8se0E6KCk9PmEoKS5ib3R0b21BY2Nlc3NvcnksdGhlbjooKT0+Xy5LKFZkYSx7ZGF0YTphfSl9KSl9LAoiRCIpO3ZhciBbaEksUmRhXT1fLkooe30sdm9pZCAwLCJwZHJhRiIpLGdJPW5ldyBNYXA7dmFyIHNJPV8uTChhPT57dmFyIHtuYW1lOmIsb25DaGFuZ2U6YyxvbkNsaWNrOmQsY2hlY2tlZDplLFllOmYsWWk6aCxxajprLG5hOmwsVmM6bSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bixob3Jpem9udGFsUGFkZGluZzpwLGRpc2FibGVkOnIsYXJpYUxhYmVsOnR9PV8uREMoYSx7Y2hlY2tlZDohMSxkaXNhYmxlZDohMX0pO2E9ImNoZWNrYm94IitfLk9IKCk7cmV0dXJuIF8uSygiY2hlY2tib3gtc2hhcGUiLG51bGwsXy5LKCJsYWJlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveFNoYXBlSG9zdCIsayx7eXRDaGVja2JveFNoYXBlSG9zdENvbXBhY3Q6bCx5dENoZWNrYm94U2hhcGVEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bn0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLWxlZnQiOnAsInBhZGRpbmctcmlnaHQiOnB9KX0sXy5LKCJpbnB1dCIse2NsYXNzOiJ5dENoZWNrYm94U2hhcGVJbnB1dCIsaWQ6YSxjaGVja2VkOmUsbmFtZTpiLHR5cGU6ImNoZWNrYm94IixkaXNhYmxlZDpyLAoiYXJpYS1sYWJlbCI6dCwicHJvcDpjaGVja2VkIjplLCJvbjpjaGFuZ2UiOmZ1bmN0aW9uKHYpe2M/Lih2KTt2LnN0b3BQcm9wYWdhdGlvbigpfSwib246Y2xpY2siOmZ1bmN0aW9uKHYpe2Q/Lih2KTt2LnN0b3BQcm9wYWdhdGlvbigpfX0pLF8uSyhfLk8se0E6KCk9PiFoPy4oKSx0aGVuOigpPT5fLksockkse2dnOiEwLFZjOm19KX0pLF8uSyhfLk8se0E6KCk9PiEhZix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENoZWNrYm94U2hhcGVMYWJlbCJ9LGY/LigpKX0pLF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksockkse2dnOiExLFZjOm19KX0pKSl9LCJFIik7c0kuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbkNoYW5nZTohMCxvbkNsaWNrOiEwLFllOiEwfX07CnZhciByST1fLkwoKHtWYzphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dENoZWNrYm94U2hhcGVDaGVja2JveCIsYSx7eXRDaGVja2JveFNoYXBlQ2hlY2tib3hEZWZhdWx0U3R5bGU6KCk9PiFhPy4oKX0pLCJhcmlhLWhpZGRlbiI6InRydWUifSxfLksoXy5NRCx7aWNvbjpfLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8ic3F1YXJlIjoiQk9YX0VNUFRZIn0pLF8uSyhfLk1ELHtpY29uOl8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpPyJjaGVja19zcXVhcmUiOiJCT1hfQ0hFQ0siLGFjdGl2ZTohMH0pKSwiRiIpO3ZhciB0ST1fLkwoKHtkYXRhOmEsSWE6YixuYTpjLG9uVGFwOmQseHM6ZSxjZTpmLGRpc2FibGVkOmgsQmM6ayxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bCxpc092ZXJsYXk6bSxpc1RvZ2dsZWQ6bixhcmlhTGFiZWw6cCxhcmlhUHJlc3NlZDpyLERnOnQsYnA6dn0pPT57ZnVuY3Rpb24geihiYSl7YmEuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGFhPWEoKS5lbnRpdHlLZXksT2E9RygpLmlzU2VsZWN0ZWQ7aWYoYWEmJk0oKSl7aWYoRygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfUkFESU8iJiZPYSlyZXR1cm47aUkoYWEsIU9hLEcoKS5zZWxlY3Rpb25TdHlsZSl9ZD9kKGJhKTooYWE9Xy5zSChHKCkucmVuZGVyZXJDb250ZXh0KSxPYT1fLnkoKS5yZXNvbHZlKF8uVUQpLGFhJiZPYSYmT2EucmVzb2x2ZUNvbW1hbmQoYWEsYmEudGFyZ2V0P3tmb3JtOntlbGVtZW50OmJhLnRhcmdldCxzb3VyY2VEYXRhOmFhfX06dm9pZCAwKSl9dmFyIEU9IV8ueCgid2ViX2VuYWJsZV9raWxsc3dpdGNoX2Zvcl9zZWxlY3RhYmxlX2xpc3RfaXRlbV9vbl90YXBfZml4IiksCkE9IV8ueCgid2ViX2VuYWJsZV9raWxsc3dpdGNoX2Zvcl9za2lwX2NoaWxkX3RhZ3MiKSxGPV8uUUgoKCk9PmEoKS5ob3Jpem9udGFsUGFkZGluZ1Rva2VuKSxDPSgpPT5sPy4oKXx8YSgpLmRpc2FibGVIb3Jpem9udGFsUGFkZGluZyxHPV8uTigoKT0+e3ZhciBiYT1hKCksYWE9digpLE9hPWEoKT8uZW50aXR5U2VsZWN0b3JUeXBlP3suLi5iYSwuLi5hYS5kYXRhfTpiYTtPYS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIiYmUWRhKE9hLmVudGl0eUtleSk7dmFyIEpiPU9hLmVudGl0eUtleTtiYT1KYj9oSSgpW0piXTp2b2lkIDA7YWE9ISFPYS5pc1NlbGVjdGVkO3ZhciB6YT1iYSE9PXZvaWQgMD9iYTphYTtKYiYmT2Euc2VsZWN0aW9uU3R5bGU9PT0iTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9SQURJTyImJmFhJiZiYT09PXZvaWQgMCYmcXVldWVNaWNyb3Rhc2soKCk9PntpSShKYiwhMCxPYS5zZWxlY3Rpb25TdHlsZSl9KTtyZXR1cm57Li4uT2EsCmlzU2VsZWN0ZWQ6emF9fSx2b2lkIDAsInZSa255IiksRD0oKT0+ISFHKCkuaXNEaXNhYmxlZHx8ISFoPy4oKSxIPV8uVEgoKCk9PkcoKS5yZW5kZXJlckNvbnRleHQpLFI9KCk9PnA/LigpfHxIKCk/LmxhYmVsLE09KCk9PiEoIUcoKS5zZWxlY3Rpb25TdHlsZXx8RygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfVU5TUEVDSUZJRUQiKSxTPSgpPT4oXy50SChHKCkucmVuZGVyZXJDb250ZXh0KXx8ZCkmJiFNKCksWT0oKT0+Xy50SChHKCkucmVuZGVyZXJDb250ZXh0KXx8ISFkfHxNKCkscGE9Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsQ29udGFpbmVyIix7eXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlOlkseXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHk6Xy54KCJ3ZWJfZW5hYmxlX2xpc3RfaXRlbV9hY3Rpb25fdHlwb2dyYXBoeSIpLHl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0OmMseXRMaXN0SXRlbVZpZXdNb2RlbEluUG9wdXA6aywKeXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVIb3Jpem9udGFsUGFkZGluZzooKT0+Qz8uKCkmJk0oKX0pLG9hPV8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVyIiwoKT0+RygpLmxlYWRpbmdJbWFnZXx8RygpLmxlYWRpbmdBY2Nlc3Nvcnk/Inl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZyI6Inl0TGlzdEl0ZW1WaWV3TW9kZWxMZWFkaW5nIiksW1UsaGFdPV8uSighMSx2b2lkIDAsImN1WTRtZiIpLG1hPSgpPT57dmFyIGJhO2lmKGJhPV8ueCgid2ViX2J1dHRvbl9vcl9hbmNob3JfbGlzdF9pdGVtIikmJlM/LigpKWJhPWEoKSxiYT0hKGJhLnRyYWlsaW5nTGFiZWx8fGJhLnNlbGVjdGlvblRleHQpO3JldHVybiBiYX0sdGE9KCk9Pl8uSyhYZGEse2RhdGE6RyxjZTpmLGZ1OmUsaXNUb2dnbGVkOm4sZGlzYWJsZWQ6aCxYeDpNLG5hOmMsQmM6ayxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6Qyxob3Jpem9udGFsUGFkZGluZzpGLFl4OlMsdUI6bWEsb25UYXA6ZCxhcmlhTGFiZWw6UiwKRGc6dH0pLFQ9KCk9PntpZihiPy4oKSl7bGV0IGJhPUcoKS5zZWxlY3Rpb25TdHlsZTtyZXR1cm4gYmE9PT0iTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9DSEVDS0JPWCI/Im1lbnVpdGVtY2hlY2tib3giOmJhPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfUkFESU8ifHxiYT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQiPyJtZW51aXRlbXJhZGlvIjoibWVudWl0ZW0ifXJldHVybiJsaXN0aXRlbSJ9O3JldHVybiBfLksoInl0LWxpc3QtaXRlbS12aWV3LW1vZGVsIix7ZWw6Xy5yRihfLnVIKCgpPT5EKCk/dm9pZCAwOkcoKS5yZW5kZXJlckNvbnRleHQsdm9pZCAwLHZvaWQgMCxfLngoIndlYl9idXR0b25fb3JfYW5jaG9yX2xpc3RfaXRlbSIpP1siQSIudG9TdHJpbmcoKSwiQlVUVE9OIi50b1N0cmluZygpXTpbXSksU2RhKGZ1bmN0aW9uKGJhKXtEKCl8fEUmJk0oKXx8KE0oKT96KGJhKTpkPy4oYmEpKX0sQT9bIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKV06CltdLCgpPT4hWSgpKSxfLlVIKCgpPT5TPy4oKSx7Zm9jdXNpbjpmdW5jdGlvbigpe18ueSgpLnJlc29sdmUoXy5JbihfLmpIKSk/LlhlKCkmJmhhKCEwKX0sZm9jdXNvdXQ6ZnVuY3Rpb24oKXtoYSghMSl9fSkpLGNsYXNzOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEhvc3QiLHt5dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5Om0seXRMaXN0SXRlbVZpZXdNb2RlbEtleWJvYXJkRm9jdXNlZDpVLHl0TGlzdEl0ZW1WaWV3TW9kZWxIaWRkZW46KCk9PmEoKT8uZW50aXR5U2VsZWN0b3JUeXBlP3YoKS5pc0hpZGRlbjohMX0pLCJkYXRhLXRhcmdldC1pZCI6KCk9PkcoKS50YXJnZXRJZCxyb2xlOlQsdGFiaW5kZXg6KCk9Pnt2YXIgYmE9UygpO1koKTt2YXIgYWE9bWEoKSxPYT1EKCk7YmE9IWFhJiYoXy54KCJ3ZWJfZW5hYmxlX2tpbGxzd2l0Y2hfdGFiaW5kZXhfZml4Iik/ZHx8YmE6YmEpP09hPy0xOjA6dm9pZCAwO3JldHVybiBiYX0sIm9uOmtleWRvd24iOmZ1bmN0aW9uKGJhKXtpZighQXx8CiFbIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKV0uaW5jbHVkZXMoYmEudGFyZ2V0LnRhZ05hbWUpKWlmKGJhLmtleT09PSJFbnRlciJ8fE0oKSYmYmEua2V5PT09IiAiKWJhLnByZXZlbnREZWZhdWx0KCksRCgpfHwoRSYmTSgpP3ooYmEpOmJhLmN1cnJlbnRUYXJnZXQuY2xpY2soKSl9LCJhcmlhLWxhYmVsIjpSLCJhcmlhLWNoZWNrZWQiOigpPT57dmFyIGJhPVQoKTtyZXR1cm4gYmE9PT0ibWVudWl0ZW1jaGVja2JveCJ8fGJhPT09Im1lbnVpdGVtcmFkaW8iP0coKS5pc1NlbGVjdGVkOnZvaWQgMH0sImFyaWEtcHJlc3NlZCI6KCk9PmI/LigpfHxNKCk/dm9pZCAwOnI/LigpfSxfLksoXy5PLHtBOk0sdGhlbjooKT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+RygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfQ0hFQ0tCT1gifSwoKT0+Xy5LKHNJLHtZZTp0YSxuYTpjLGNoZWNrZWQ6KCk9PiEhRygpLmlzU2VsZWN0ZWQsCllpOigpPT4hKCFHKCkubGVhZGluZ0ltYWdlJiYhRygpLmxlYWRpbmdBY2Nlc3NvcnkpLHFqOnBhLFZjOm9hLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpDLGhvcml6b250YWxQYWRkaW5nOkYsb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uQ0Use3doZW46KCk9PkcoKS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIn0sKCk9Pl8uSyhfLkFFLHtZZTp0YSxuYTpjLGNoZWNrZWQ6KCk9PiEhRygpLmlzU2VsZWN0ZWQsWWk6KCk9PiEoIUcoKS5sZWFkaW5nSW1hZ2UmJiFHKCkubGVhZGluZ0FjY2Vzc29yeSkscWo6cGEsVmM6b2Esb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uQ0Use3doZW46KCk9PkcoKS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQifSwoKT0+Xy5LKF8uQUUse1llOnRhLG5hOmMsY2hlY2tlZDooKT0+CiEhRygpLmlzU2VsZWN0ZWQsWWk6KCk9PiEoIUcoKS5sZWFkaW5nSW1hZ2UmJiFHKCkubGVhZGluZ0FjY2Vzc29yeSkscWo6cGEsVmM6b2EsaGs6ITAsb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uREUsbnVsbCx0YSkpLFc6dGF9KSl9LCJHIiksWWRhPV8uTChhPT57dmFyIGI9Xy5jSShjPT5QZGEoYS5kYXRhKCksYykpO3JldHVybiBfLksodEksey4uLmEsYnA6Yn0pfSwiSCIpO18uQ0Q9Xy5MKGE9Pl8uSyhfLk8se0E6KCk9PiEhYS5kYXRhKCk/LmVudGl0eVNlbGVjdG9yVHlwZSx0aGVuOigpPT5fLksoWWRhLHsuLi5hfSksVzooKT0+Xy5LKHRJLHsuLi5hLGJwOigpPT4oe30pfSl9KSwiSSIpO18uQ0QuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvblRhcDohMCx4czohMH19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJwZTJvamIiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RTD1mdW5jdGlvbihhLGIpe2lmKGEmJmIpc3dpdGNoKGIpe2Nhc2UgIlNFTEVDVElPTl9UWVBFX0JPT0wiOnJldHVybiBhLmJvb2xWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9JTlQiOnJldHVybiBhLmludFZhbHVlO2Nhc2UgIlNFTEVDVElPTl9UWVBFX1NUUklORyI6cmV0dXJuIGEuc3RyaW5nVmFsdWU7Y2FzZSAiU0VMRUNUSU9OX1RZUEVfUFJJVkFDWV9TVEFUVVMiOnJldHVybiBhLnByaXZhY3lTdGF0dXNWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9USU1FX1BJQ0tFUl9GT1JNQVQiOnJldHVybiBhLnRpbWVQaWNrZXJGb3JtYXRWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9FTkdBR0VNRU5UX1BFUk1JU1NJT04iOnJldHVybiBhLmVuZ2FnZW1lbnRQZXJtaXNzaW9uVmFsdWV9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5DST1mdW5jdGlvbihhKXtfLlZILm13KCkoYSl9O18uREk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlhIKCk7cmV0dXJuIF8uTigoKT0+e2MoKTtyZXR1cm4gXy5aSChhLFtfLkJ2KGIpfHwiIl0pfSx7ZGVidWdOYW1lOiJMVVpzbGYifSwiWjEwNXQiKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUkw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLmVudGl0aWVzLCJsaWtlU3RhdHVzRW50aXR5IixiKX07Xy5TTD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImxpa2VDb3VudEVudGl0eSIsYil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgWWZhPWZ1bmN0aW9uKGEpe3ZhciBiPV8uTigoKT0+Xy5CdihhKT8/e30se2VxdWFsczpfLkdJfSwielRVWlFjIiksYz1fLk4oKCk9Pnt2YXIge2Zvcm1JZDpkLGZpZWxkSWQ6ZX09YigpO2lmKGQmJmUpe2E6e2xldCBoPV8uU0koZCk7aWYoaCl7dmFyIGY9Xy5NSShlKTtpZihmPWhbZl0pe2lmKCEoImZ1bmN0aW9uIj09dHlwZW9mIF8uVEwmJmYgaW5zdGFuY2VvZiBfLlRMKSl0aHJvdyBfLklJKGBGaWVsZCAke2V9IGluIGZvcm0gJHtkfSBpcyBub3QgYSBTY2FsYXJMaXN0RmllbGQuYCk7YnJlYWsgYX19Zj12b2lkIDB9cmV0dXJuIGZ9fSx2b2lkIDAsIkUwS1NGZCIpO3JldHVybigpPT5jKCl9LFpmYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInNlbGVjdGlvblZhbHVlTGlzdEVudGl0eSIsYil9LCRmYT1mdW5jdGlvbihhLGIpe2IuaW5jbHVkZXMoYSk/Yj1iLmZpbHRlcihjPT5jIT09YSk6Yi5wdXNoKGEpO3JldHVyblsuLi5iXX0sVUw9bmV3IF8uSSgiY2hlY2tib3hJdGVtVmlld01vZGVsIik7dmFyIGFnYT1fLkwoYT0+e3ZhciB7ZGF0YTpiLFdiOmMsc2VsZWN0ZWQ6ZCxvblRhcDplLGdyb3VwTmFtZTpmLGNsYXNzTmFtZTpoLG5hOmssZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmwsTGk6bX09Xy5EQyhhLHtXYjohMSxzZWxlY3RlZDohMSxuYTohMSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ITEsTGk6ITF9KSxuPSgpPT5jKCk/MjpiKCkuZm9ybUZpZWxkTWV0YWRhdGEmJiFtKCk/MzoxO18uVUooKCk9PntuKCk9PT0yJiZiKCkuZGVmYXVsdFNlbGVjdGVkP18uR3AoRXJyb3IoInVkIikpOm4oKT09PTEmJmQoKT9fLkdwKEVycm9yKCJ2ZCIpKTpuKCk9PT0zJiZkKCkmJl8uR3AoRXJyb3IoIndkIikpfSk7dmFyIHA9Xy5aSSgoKT0+YigpLmZvcm1GaWVsZE1ldGFkYXRhKSxbcix0XT1fLkFDKCgpPT57aWYobigpPT09MSlyZXR1cm4gYigpLmRlZmF1bHRTZWxlY3RlZH0pO3JldHVybiBfLksoInl0LWNoZWNrYm94LWl0ZW0tdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveEl0ZW1WaWV3TW9kZWxIb3N0IiwKaCl9LF8uSyhfLkNELHtkYXRhOigpPT57dmFyIHY9YigpLHo9bigpPT09Mz9wKCk/LnZhbHVlfHwhMTpuKCk9PT0xP3IoKTpkKCk7cmV0dXJue3RpdGxlOnYudGV4dCxzdWJ0aXRsZTp2LnN1YnRleHQsc3VwZXJsYWJlbDp2LnN1cGVybGFiZWwsaXNTZWxlY3RlZDohIXosaXNEaXNhYmxlZDp2LmlzRGlzYWJsZWQsc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfQ0hFQ0tCT1gifX0sb25UYXA6KCk9Pnt2YXIgdj0hKG4oKT09PTM/cCgpPy52YWx1ZTpuKCk9PT0xP3IoKTpkKCkpO24oKT09PTM/cCgpPy51cGRhdGVWYWx1ZSh2KTpuKCk9PT0xJiZ0KHYpO2U/Lih2LGIoKSxmPy4oKSl9LG5hOmssZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmx9KSl9LCJEYSIpO18udEQ9Xy5MKCh7ZGF0YTphLFdiOmIsZEE6YyxnejpkLGdyb3VwTmFtZTplLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpmLG5hOmh9KT0+e3ZhciBrPV8uREkoWmZhLCgpPT5hKCkuaGlkZUl0ZW1zRW50aXR5S2V5KSxsPSgpPT5iPy4oKT8yOmEoKS5mb3JtRmllbGRNZXRhZGF0YT8zOjEsbT0oKT0+ZT8uKCl8fGEoKS5rZXk7Xy5VSigoKT0+e2woKT09PTImJmEoKS5kZWZhdWx0U2VsZWN0ZWRLZXlzP18uR3AoRXJyb3IoInhkIikpOmwoKT09PTEmJmM/LigpP18uR3AoRXJyb3IoInlkIikpOmwoKT09PTMmJihjPy4oKSE9PXZvaWQgMCYmXy5HcChFcnJvcigiemQiKSksYSgpLmRlZmF1bHRTZWxlY3RlZEtleXMmJl8uR3AoRXJyb3IoIkFkIikpKX0pO3ZhciBuPVlmYSgoKT0+YSgpLmZvcm1GaWVsZE1ldGFkYXRhKSxbcCxyXT1fLkFDKCgpPT57aWYobCgpPT09MSlyZXR1cm4gYSgpLmRlZmF1bHRTZWxlY3RlZEtleXN9KSx0PV8uWkkoKCk9Pih7Zm9ybUlkOmEoKS5zZWFyY2hRdWVyeUZpZWxkTWV0YWRhdGE/LmZvcm1JZHx8CiIiLGZpZWxkSWQ6YSgpLnNlYXJjaFF1ZXJ5RmllbGRNZXRhZGF0YT8uZmllbGRJZHx8IiJ9KSksdj1fLk4oKCk9Pnt2YXIgRT1hKCkuY2hlY2tib3hlc3x8W10sQT1rKCk7aWYoQT8udmFsdWVzJiZBLnZhbHVlcy5sZW5ndGg+MCl7bGV0IEM9QS50eXBlLEc9bmV3IFNldChBLnZhbHVlcy5tYXAoRD0+Xy5RTChELEMpKS5maWx0ZXIoRD0+RCE9PXZvaWQgMCkpO0U9RS5maWx0ZXIoRD0+e0Q9Xy5CKEQsVUwpO2lmKCFEPy52YWx1ZSlyZXR1cm4hMDtEPV8uUUwoRC52YWx1ZSxDKTtyZXR1cm4gRD09PXZvaWQgMHx8IUcuaGFzKEQpfSl9dmFyIEY9KHQoKT8udmFsdWV8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBGP0UuZmlsdGVyKEM9PntDPV8uQihDLFVMKTtyZXR1cm4gQz8udGV4dD8uY29udGVudD9DLnRleHQuY29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKEYpOiExfSk6RX0sdm9pZCAwLCJYNlk1TWMiKSx6PWFzeW5jKEUsQSxGKT0+e0U9W107bCgpPT09MSYmQS5rZXk/KEU9CiRmYShBLmtleSxwKCl8fFtdKSxyKEUpKTpsKCk9PT0zJiZBLmtleSYmKEU9bigpPy52YWx1ZXx8W10sRS5pbmNsdWRlcyhBLmtleSk/KEU9RS5pbmRleE9mKEEua2V5KSxFIT09LTEmJmF3YWl0IG4oKT8ucmVtb3ZlKEUpKTphd2FpdCBuKCk/LmFkZChBLmtleSksRT1uKCk/LnZhbHVlfHxbXSk7ZD8uKEEsRSxGKX07cmV0dXJuIF8uSygieXQtY2hlY2tib3gtZ3JvdXAtdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveEdyb3VwVmlld01vZGVsSG9zdCIpfSxfLksoImZpZWxkc2V0Iix7Y2xhc3M6Xy5QKCJ5dENoZWNrYm94R3JvdXBWaWV3TW9kZWxGaWVsZHNldCIpfSxfLksoImRpdiIse3JvbGU6Imxpc3QifSxfLksoXy5XLHtkYXRhOnZ9LHtjaGVja2JveEl0ZW1WaWV3TW9kZWw6KHtkYXRhOkV9KT0+Xy5LKGFnYSx7ZGF0YTpFLFdiOiEwLHNlbGVjdGVkOigpPT57dmFyIEE9bCgpPT09Mj9jPy4oKXx8W106bCgpPT09Mz9uKCk/LnZhbHVlfHxbXTpwKCl8fFtdLEY9RSgpLmtleTsKcmV0dXJuIEY/QS5pbmNsdWRlcyhGKTohMX0sb25UYXA6eixncm91cE5hbWU6bSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ZixuYTpofSl9KSkpKX0sIkVhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInZEY2sxZCIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkpKPWZ1bmN0aW9uKGEsYil7aWYoIWEmJiFiKXJldHVybiJtZWRpdW0iO2E9TWF0aC5tYXgoYXx8MCxifHwwKTtyZXR1cm4gYT49MjU2PyJsYXJnZSI6YT49OTY/Im1lZGl1bSI6InNtYWxsIn07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBHZWE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMjpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UiO2Nhc2UgMzpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlT3ZlcmxheVRvdWNoUmVzcG9uc2UiO2Nhc2UgNDpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlT3ZlcmxheVRvdWNoUmVzcG9uc2VJbnZlcnNlIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlIn19LEhlYT1mdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCI7aWYoYSlzd2l0Y2goYSl7Y2FzZSAibGFyZ2UiOnJldHVybiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplTGFyZ2UiO2Nhc2UgIm1lZGl1bSI6cmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0iO2RlZmF1bHQ6cmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCJ9fSwKSWVhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGEsW3tvZmZzZXQ6MCxvcGFjaXR5Oi4xLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMDUsIDAuMDAsIDAuMDAsIDEuMDApIn0se29mZnNldDoxLG9wYWNpdHk6MH1dLHtkdXJhdGlvbjo0MDB9KSxkb2N1bWVudC50aW1lbGluZSk7dGhpcy5vPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGIsW3tvZmZzZXQ6MCxvcGFjaXR5Oi4yLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMjAsIDAuMDAsIDAuNjAsIDEuMDApIn0se29mZnNldDoxLG9wYWNpdHk6MH1dLHtkdXJhdGlvbjo0MDB9KSxkb2N1bWVudC50aW1lbGluZSl9cGxheSgpe3RoaXMuai5wbGF5Py4oKTt0aGlzLm8ucGxheT8uKCl9Y2FuY2VsKCl7dGhpcy5qLmNhbmNlbD8uKCk7dGhpcy5vLmNhbmNlbD8uKCl9fTtfLlVDPV8uTCgoe21vZGVsOmEsVG06YixWbTpjLFVtOmQsUmI6ZX0pPT57ZnVuY3Rpb24gZigpe3YoKTtyKCExKX1mdW5jdGlvbiBoKCl7dD8uY2FuY2VsKCk7cighMCl9dmFyIGs9Xy51RSgieXQtdG91Y2gtZmVlZGJhY2stc2hhcGUiKSxsPV8udUUoImRpdiIpLG09Xy51RSgiZGl2IiksW24scF09Xy5BQygoKT0+Yz8uKCl8fGQ/LigpPyExOiEhYj8uKCl8fCExKSxyPXAsdD12b2lkIDAsdj0oKT0+eyF0JiZtLnZhbHVlJiZsLnZhbHVlJiZ0eXBlb2YgQW5pbWF0aW9uPT09ImZ1bmN0aW9uIiYmdHlwZW9mIEtleWZyYW1lRWZmZWN0PT09ImZ1bmN0aW9uIiYmKHQ9bmV3IEllYShtLnZhbHVlLGwudmFsdWUpKTt0Py5wbGF5KCl9O18ubkUoKCk9PntjPy4oKSYmdigpfSwiQ1kyUyIpO18ubkUoKCk9PntiPy4oKSYmdD8uY2FuY2VsKCl9LCJ2ZXFmNmIiKTtfLm5FKCgpPT57ZD8uKCkmJnQ/LmNhbmNlbCgpfSwiVFZyZkNjIik7Xy5ZdSgoKT0+e3QmJih0Py5jYW5jZWwoKSx0PXZvaWQgMCl9KTsKcmV0dXJuIF8uSygieXQtdG91Y2gtZmVlZGJhY2stc2hhcGUiLHtlbDprLGNsYXNzOl8uUCgieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG9zdCIsKCk9PkdlYShhKCkuY29sb3IpLCgpPT5IZWEoYSgpLnRodW1ibmFpbFNpemUsISFhKCkuaXNFeHRlbmRlZCkse3l0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZvY3VzZWQ6KCk9PiEhYSgpLmZvY3VzZWQmJiFhKCkuZGlzYWJsZWQseXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlQ2lyY3VsYXI6KCk9PiEhYSgpLmNpcmN1bGFyLHl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZURvd246bix5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUcmlnZ2VyRXZlbnRzOigpPT4hIWEoKS5tQix5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlcmVkOigpPT5lPy4oKX0pLHN0eWxlOl8uSUUoe21hcmdpbjooKT0+YSgpLm1hcmdpbj9gLSR7YSgpLm1hcmdpbn1weGA6dm9pZCAwLCJtYXJnaW4tdG9wIjooKT0+YSgpLnhwP2AtJHthKCkueHB9cHhgOnZvaWQgMH0pLCJvbjptb3VzZWRvd24iOmgsCiJvbjptb3VzZXVwIjpmLCJvbjpwb2ludGVybGVhdmUiOmZ1bmN0aW9uKCl7dD8uY2FuY2VsKCk7cighMSl9LCJvbjp0b3VjaHN0YXJ0IjpoLCJvbjp0b3VjaGVuZCI6ZiwiYXJpYS1oaWRkZW4iOiEwfSxfLksoXy5PLHtBOigpPT4hIWEoKS5ObCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCIsc3R5bGU6Xy5JRSh7ImJvcmRlci1yYWRpdXMiOigpPT5hKCkuYm9yZGVyUmFkaXVzLGJhY2tncm91bmQ6KCk9Pnt7bGV0IEU9YSgpLk5sO2lmKEUpe3ZhciB6PVtdO2ZvcihsZXQgQSBvZiBFPy5saWdodGluZ1RlY2huaXF1ZXN8fFtdKXN3aXRjaChBKXtjYXNlIDI6ei5wdXNoKGBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAke0U/LnBhbGV0dGU/LmtleUxpZ2h0fSwgJHtFPy5wYWxldHRlPy5iYWNrZ3JvdW5kfSlgKX16LnB1c2goYSgpLk5sPy5wYWxldHRlPy5iYWNrZ3JvdW5kKTt6PXouam9pbigiLCAiKX1lbHNlIHo9dm9pZCAwfXJldHVybiB6fX0pfSl9KSwKXy5LKCJkaXYiLHtjbGFzczoieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tlIixzdHlsZTpfLklFKHsiYm9yZGVyLXJhZGl1cyI6KCk9PmEoKS5ib3JkZXJSYWRpdXMsImJvcmRlci1jb2xvciI6KCk9PmEoKS50cz8ucGFsZXR0ZT8uYmFja2dyb3VuZH0pLGVsOmx9KSxfLksoImRpdiIse2NsYXNzOiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVGaWxsIixzdHlsZTpfLklFKHsiYm9yZGVyLXJhZGl1cyI6KCk9PmEoKS5ib3JkZXJSYWRpdXMsImJhY2tncm91bmQtY29sb3IiOigpPT5hKCkudHM/LnBhbGV0dGU/LmJhY2tncm91bmR9KSxlbDptfSkpfSwiVCIpO18uVUMuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiT3RLU0plIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBPYWEsUGFhLFFhYTtPYWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkPU9iamVjdC5rZXlzKGEpO2ZvcihsZXQgZSBvZiBkKWNbZV09YihlLGFbZV0pO3JldHVybiBjfTtQYWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/ITE6T2JqZWN0LmtleXMoYikuZXZlcnkoYz0+YyBpbiBhKX07Xy5pQT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5rZXlzKGEpLm1hcChiPT5bYixiXSkpfTtRYWE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPYWEoYywoZCxlKT0+KGYsLi4uaCk9PlBhYShmLGEpP2UoZltiXSwuLi5oKTplKGYsLi4uaCkpfTtfLmpBPWZ1bmN0aW9uKGEpe3JldHVybihiLGMpPT5RYWEoYSxiLGMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFRhYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEsInBsYXlsaXN0TG9vcFN0YXRlRW50aXR5IixiKT8/dm9pZCAwfSxVYWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLCJ0b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHkiLGIpPz92b2lkIDB9LHdBPV8uaUEoe2VudGl0aWVzOnt9fSk7Xy54QT1fLmpBKHdBKSh3QS5lbnRpdGllcyx7YkE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4oXy5xQShhLCJzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5IixiKT8/dm9pZCAwKT8uc2Z2QXVkaW9JdGVtUGxheWJhY2tTdGF0ZT8/dm9pZCAwfSx0SzpUYWEsZUI6VWFhfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWkM9bmV3IF8uSSgibGlzdEl0ZW1WaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHZJO18udUk9ZnVuY3Rpb24oYSxiKXtpZihfLnRBPy5lbmNvZGVJbnRvKXtsZXQge3JlYWQ6ZCx3cml0dGVuOmV9PV8udEEuZW5jb2RlSW50byhhLGIpO3JldHVybiBkPGEubGVuZ3RoP2EubGVuZ3RoKjQ6ZX12YXIgYz0wO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtsZXQgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09PTU1Mjk2JiZkKzE8YS5sZW5ndGgmJihhLmNoYXJDb2RlQXQoZCsxKSY2NDUxMik9PT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gY307CnZJPWZ1bmN0aW9uKGEsYixjKXtpZihiJiZjJiZjLmJ1ZmZlcj09PWIuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKXtsZXQgZD1iLm1lbW9yeS5yZWFsbG9jKGMuYnl0ZU9mZnNldCxhKTtpZihkKXJldHVybiBuZXcgVWludDhBcnJheShiLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcixkLGEpfWE9Yj9uZXcgVWludDhBcnJheShiLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcixiLm1lbW9yeS5tYWxsb2MoYSksYSk6bmV3IFVpbnQ4QXJyYXkoYSk7YyYmYS5zZXQoYyk7cmV0dXJuIGF9O18ud0k9ZnVuY3Rpb24oYSxiKXtiPWEucG9zK2I7aWYoIShhLmJ1Zi5sZW5ndGg+PWIpKXtmb3IodmFyIGM9YS5idWYubGVuZ3RoKjI7YzxiOyljKj0yO2EuYnVmPXZJKGMsYS53YXNtLGEuYnVmLnN1YmFycmF5KDAsYS5wb3MpKTthLnZpZXc9bmV3IERhdGFWaWV3KGEuYnVmLmJ1ZmZlcixhLmJ1Zi5ieXRlT2Zmc2V0LGEuYnVmLmJ5dGVMZW5ndGgpfX07Cl8ueEk9ZnVuY3Rpb24oYSxiKXtpZihiPjI2ODQzNTQ1NSl7Xy53SShhLDQpO2xldCBjPWImMTA3Mzc0MTgyMztmb3IobGV0IGQ9MDtkPDQ7ZCsrKWEudmlldy5zZXRVaW50OChhLnBvcyxjJjEyN3wxMjgpLGM+Pj49NyxhLnBvcys9MTtiPU1hdGguZmxvb3IoYi8yNjg0MzU0NTYpfWZvcihfLndJKGEsNCk7Yj4xMjc7KWEudmlldy5zZXRVaW50OChhLnBvcyxiJjEyN3wxMjgpLGI+Pj49NyxhLnBvcys9MTthLnZpZXcuc2V0VWludDgoYS5wb3MsYik7YS5wb3MrPTF9OwpfLnpJPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IF8ueUk7aWYoXy50QSlhPV8udEEuZW5jb2RlKGEpO2Vsc2V7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKGEubGVuZ3RoKjEuMikpLGU9Xy51SShhLGQpO2QubGVuZ3RoPGUmJihkPW5ldyBVaW50OEFycmF5KGUpLGU9Xy51SShhLGQpKTtkLmxlbmd0aD5lJiYoZD1kLnN1YmFycmF5KDAsZSkpO2E9ZH1hIT09dm9pZCAwJiYoXy54SShjLDE4KSxkPWEubGVuZ3RoLF8ueEkoYyxkKSxfLndJKGMsZCksYy5idWYuc2V0KGEsYy5wb3MpLGMucG9zKz1kKTthPV8udUFbYl07aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIil0aHJvdyBiPW5ldyBfLlhqKCJGYWlsZWQgdG8gcmVjb2duaXplIGVudGl0eSB0eXBlIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGVudGl0eVR5cGU6Yn0pLF8uR3AoYiksYjthIT09dm9pZCAwJiYoXy54SShjLDMyKSxfLnhJKGMsYSkpO18ueEkoYyw0MCk7Xy54SShjLDEpO2I9bmV3IFVpbnQ4QXJyYXkoYy5idWYuYnVmZmVyLApjLmJ1Zi5ieXRlT2Zmc2V0LGMucG9zKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KF8uc2MoYiwwKSl9O18ueUk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLndhc209dm9pZCAwO3RoaXMucG9zPTA7dGhpcy5qPVtdO3RoaXMuYnVmPXZJKDQwOTYpO3RoaXMudmlldz1uZXcgRGF0YVZpZXcodGhpcy5idWYuYnVmZmVyLHRoaXMuYnVmLmJ5dGVPZmZzZXQsdGhpcy5idWYuYnl0ZUxlbmd0aCl9fTtfLnpJKCIiLCJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkiKTtfLnpJKCJET1dOTE9BRFNfTElTVF9FTlRJVFlfSURfTUFOVUFMX0RPV05MT0FEUyIsIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5Iik7Xy56SSgiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5Iik7Xy56SSgiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsInJlZnJlc2giKTtfLnpJKCJTTUFSVF9ET1dOTE9BRFNfRU5BQkxFRCIsInNldHRpbmdFbnRpdHkiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5BST1uZXcgXy5JKCJvZmZsaW5lUGxheWxpc3RFbmRwb2ludCIpO18uQkk9bmV3IF8uSSgib2ZmbGluZVZpZGVvRW5kcG9pbnQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFpkYTtfLkVJPWZ1bmN0aW9uKGEsYixjLGQsZSl7YT1iP2Euc3dpdGNoT2ZmQ29tbWFuZDphLnN3aXRjaE9uQ29tbWFuZDtpZihkJiZlKVpkYShhLGMsZSk7ZWxzZSBfLmJFKHtiaDphfSk/Lm9uY2xpY2s/LihjKX07WmRhPWZ1bmN0aW9uKGEsYixjKXthPV8uYkUoe2JoOmEsQW86e0VpOntvblN1Y2Nlc3M6KCk9PntjKCExKX0sbno6KCk9PntjKCExKX19fX0pO2E/Lm9uY2xpY2smJihhLm9uY2xpY2soYiksYyghMCkpfTtfLiRkYT1uZXcgXy5JKCJzd2l0Y2hCdXR0b25WaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGVKPWZ1bmN0aW9uKGEpe2lmKGEpcmV0dXJuIF8uQihhLF8uJGRhKX07Xy5mSj1fLkwoKHtkYXRhOmEsb25UYXA6YixrSzpjLG1LOmQsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmUsTGk6ZixuYTpofSk9PntmdW5jdGlvbiBrKEYpe2lmKCFGLm91KXtGLm91PSEwO3ZhciBDPWVKKEEoKSk7IUN8fEMuaXNEaXNhYmxlZHx8YSgpLmlnbm9yZVRhcFVudGlsQ29tbWFuZENvbXBsZXRlcyYmdigpfHwoYj8uKEYpLF8uRUkoQyxFKCksRixhKCkuaWdub3JlVGFwVW50aWxDb21tYW5kQ29tcGxldGVzLHopLChhKCkuZm9ybUZpZWxkTWV0YWRhdGEmJiFmPy4oKT8zOjEpPT09Mz9sKCk/LnVwZGF0ZVZhbHVlKCFFKCkpOnAoIUUoKSksYz8uKEUoKSkpfX12YXIgbD1fLlpJKCgpPT5hKCkuZm9ybUZpZWxkTWV0YWRhdGEpLFttLG5dPV8uQUMoKCk9PmVKKEEoKSk/LnN3aXRjaGVkT25CeURlZmF1bHR8fCExKSxwPW4sW3IsdF09Xy5KKCExLHZvaWQgMCwiT3ZrdWxlIiksdj1yLHo9dCxFPSgpPT4oYSgpLmZvcm1GaWVsZE1ldGFkYXRhJiYhZj8uKCk/MzoxKT09PTM/bCgpPy52YWx1ZXx8CiExOm0oKSxBPSgpPT57dmFyIEY7aWYoIShGPWEoKS5zd2l0Y2hCdXR0b24pKXt2YXIgQz1hKCk7Rj1kPy4oKTtDPXtzd2l0Y2hPbkNvbW1hbmQ6Qy5zd2l0Y2hPbkNvbW1hbmQsc3dpdGNoT2ZmQ29tbWFuZDpDLnN3aXRjaE9mZkNvbW1hbmQsc3dpdGNoZWRPbkJ5RGVmYXVsdDpDLnN3aXRjaGVkT25CeURlZmF1bHQsaXNEaXNhYmxlZDpDLmlzRGlzYWJsZWQsYTExeUxhYmVsU3dpdGNoZWRPbjpDLmExMXlMYWJlbFN3aXRjaGVkT24sYTExeUxhYmVsU3dpdGNoZWRPZmY6Qy5hMTF5TGFiZWxTd2l0Y2hlZE9mZn07RiE9PXZvaWQgMCYmKEMuaXNEaXNhYmxlZD1GKTtGPXtzd2l0Y2hCdXR0b25WaWV3TW9kZWw6Q319Qz1lSihGKTtpZighQylyZXR1cm4gRjt2YXIgRz1hKCkudGl0bGU/LmNvbnRlbnQ7cmV0dXJuIEc/e3N3aXRjaEJ1dHRvblZpZXdNb2RlbDp7Li4uQyxhMTF5TGFiZWxTd2l0Y2hlZE9uOkcsYTExeUxhYmVsU3dpdGNoZWRPZmY6R319OkZ9O3JldHVybiBfLksoInN3aXRjaC1saXN0LWl0ZW0tdmlldy1tb2RlbCIsCntjbGFzczoieXRTd2l0Y2hMaXN0SXRlbVZpZXdNb2RlbEhvc3QiLCJvbjpjbGljayI6a30sXy5LKF8uQ0Qse2RhdGE6KCk9Pih7dGl0bGU6YSgpLnRpdGxlLHN1YnRpdGxlOmEoKS5hdHRyaWJ1dGVkU3VidGl0bGUsbGVhZGluZ0ltYWdlOmEoKS5sZWFkaW5nSW1hZ2UsbGVhZGluZ0FjY2Vzc29yeTphKCkubGVhZGluZ0FjY2Vzc29yeSxpc0Rpc2FibGVkOmEoKS5pc0Rpc2FibGVkfSksaXNUb2dnbGVkOkUsRGc6ITAsbmE6aCx4czooKT0+Xy5LKF8uVyx7ZGF0YTpBfSx7c3dpdGNoQnV0dG9uVmlld01vZGVsOih7ZGF0YTpGfSk9Pl8uSyhfLmtJLHtkYXRhOkYscXI6RSxvblRhcDprfSl9KSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ZX0pKX0sIkoiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGNlYSxnSixkZWEsaEosaUosZWVhLGZlYSxnZWEsaGVhLGplYSxrZWEsbGVhLG1lYSxqSixrSixtSixuZWEsb2VhLHBlYSx0ZWEsdWVhLHFKLHJKLHNKLHdlYSx0SixpZWEsdUo7Y2VhPWZ1bmN0aW9uKGEsYj0yKXtfLnhJKGEsMTApO2Euai5wdXNoKGEucG9zKTthLmoucHVzaChiKTthLnBvcys9Yn07CmdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLnlJO2lmKGEhPT12b2lkIDApe2NlYShiLE1hdGguY2VpbChNYXRoLmxvZzIoYS5sZW5ndGgqNCsyKS83KSk7Xy53SShiLGEubGVuZ3RoKjEuMik7dmFyIGM9Xy51SShhLGIuYnVmLnN1YmFycmF5KGIucG9zKSk7Yi5wb3MrYz5iLmJ1Zi5sZW5ndGgmJihfLndJKGIsYyksYz1fLnVJKGEsYi5idWYuc3ViYXJyYXkoYi5wb3MpKSk7Yi5wb3MrPWM7YT1iLmoucG9wKCk7Yz1iLmoucG9wKCk7bGV0IGQ9Yi5wb3MtYy1hO2Zvcig7YS0tOyl7bGV0IGU9YT8xMjg6MDtiLnZpZXcuc2V0VWludDgoYysrLGQmMTI3fGUpO2Q+Pj03fX1iPW5ldyBVaW50OEFycmF5KGIuYnVmLmJ1ZmZlcixiLmJ1Zi5ieXRlT2Zmc2V0LGIucG9zKTtyZXR1cm4obmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpKS5kZWNvZGUoYil9OwpkZWE9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm5bXTtiPV8uekkoYiwibWFpblBsYXlsaXN0RW50aXR5Iik7dmFyIGM9YS5tYWluUGxheWxpc3RFbnRpdHk/LltiXTtiPVtdO2lmKCFjPy52aWRlb3MpcmV0dXJuIGI7Zm9yKGxldCBkIG9mIGMudmlkZW9zKXtjPWE/Lm1haW5QbGF5bGlzdFZpZGVvRW50aXR5Py5bZF0/LnZpZGVvO2lmKCFjKWNvbnRpbnVlOyh7ZW50aXR5SWQ6Y309Xy5HSChjKSk7YyYmYi5wdXNoKGMpfXJldHVybiBifTtoSj1mdW5jdGlvbihhKXtyZXR1cm4iZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllcyJpbiBhfTsKaUo9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tdXNpY1BsYXlsaXN0RG93bmxvYWRNZXRhZGF0YUVudGl0eSxjPVtdO2lmKCFiKXJldHVybiBjO2ZvcihsZXQgaCBvZiBPYmplY3Qua2V5cyhiKSl7YTp7dmFyIGQ9YSxlPV8uR0goaCkuZW50aXR5SWQ7aWYoZSl7dmFyIGY9Xy5xQShkLCJtdXNpY1BsYXlsaXN0IixfLnpJKGUsIm11c2ljUGxheWxpc3QiKSk7ZD1fLnFBKGQsIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5IixfLnpJKGUsIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5IikpO2lmKGYmJmQpe2Y9e211c2ljUGxheWxpc3RFbnRpdHk6ZixtdXNpY1BsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTpkfTticmVhayBhfX1mPXZvaWQgMH1kPU51bWJlcihiW2hdPy5hZGRlZFRpbWVzdGFtcE1pbGxpcyk7ZD1pc05hTihkKT8oMCxfLmVsKSgpOmQ7ZiE9PXZvaWQgMCYmYy5wdXNoKHtkb3dubG9hZGVkTXVzaWNQbGF5bGlzdEVudGl0aWVzOmYsYWRkZWRUaW1lc3RhbXBNaWxsaXM6ZH0pfXJldHVybiBjfTsKZWVhPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBTZXQ7Zm9yKGxldCBjIG9mIGEpaWYoIm11c2ljUGxheWxpc3RFbnRpdHkiaW4gYyYmIm11c2ljUGxheWxpc3REb3dubG9hZFN0YXRlRW50aXR5ImluIGMpZm9yKGxldCBkIG9mIGMubXVzaWNQbGF5bGlzdEVudGl0eS50cmFja3MpYi5hZGQoZCk7cmV0dXJuIGJ9OwpmZWE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eSxjPVtdO2lmKCFiKXJldHVybltdO2ZvcihsZXQgbSBvZiBPYmplY3Qua2V5cyhiKSl7YTp7dmFyIGQ9YSxlPV8uR0gobSkuZW50aXR5SWQ7aWYoZSl7Yj1fLnFBKGQsIm11c2ljVHJhY2siLF8uekkoZSwibXVzaWNUcmFjayIpKTt2YXIgZj1fLnFBKGQsIm11c2ljQXJ0aXN0IixfLnpJKGUsIm11c2ljQXJ0aXN0IikpfHx7fTtiOnt2YXIgaD1lO2lmKGgpe2U9Xy5xQShkLCJwbGF5YmFja0RhdGEiLF8uekkoaCwicGxheWJhY2tEYXRhIikpPz9udWxsO3ZhciBrPV8ucUEoZCwidHJhbnNmZXIiLF8uekkoaCwidHJhbnNmZXIiKSk/P251bGwsbD1fLnFBKGQsIm9mZmxpbmVWaWRlb1N0cmVhbXMiLF8uekkoaCwib2ZmbGluZVZpZGVvU3RyZWFtcyIpKT8/bnVsbDtkPV8ucUEoZCwib2ZmbGluZVZpZGVvUG9saWN5IixfLnpJKGgsIm9mZmxpbmVWaWRlb1BvbGljeSIpKT8/bnVsbDtpZihlfHwKa3x8bHx8ZCl7ZD17cGxheWJhY2tEYXRhRW50aXR5OmUsdHJhbnNmZXJFbnRpdHk6ayxzdHJlYW1FbnRpdHk6bCxwb2xpY3lFbnRpdHk6ZH07YnJlYWsgYn19ZD12b2lkIDB9aWYoZCYmYiYmZil7Yj17bXVzaWNUcmFja0VudGl0eTpiLG11c2ljQXJ0aXN0RW50aXR5OmYsLi4uZH07YnJlYWsgYX19Yj12b2lkIDB9Zj1OdW1iZXIoXy5xQShhLCJtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eSIsbSk/LmFkZGVkVGltZXN0YW1wTWlsbGlzKTtmPWlzTmFOKGYpPygwLF8uZWwpKCk6ZjtiIT09dm9pZCAwJiZjLnB1c2goe2Rvd25sb2FkZWRNdXNpY0VudGl0aWVzOmIsYWRkZWRUaW1lc3RhbXBNaWxsaXM6Zn0pfXJldHVybiBjfTsKZ2VhPWZ1bmN0aW9uKGEpe3ZhciBiPWZlYShhKS5zb3J0KChjLGQpPT5kLmFkZGVkVGltZXN0YW1wTWlsbGlzLWMuYWRkZWRUaW1lc3RhbXBNaWxsaXMpLm1hcChjPT4iZG93bmxvYWRlZE11c2ljRW50aXRpZXMiaW4gYz9jLmRvd25sb2FkZWRNdXNpY0VudGl0aWVzOmhKKGMpP2MuZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczp7fSk7YT1pSihhKS5zb3J0KChjLGQpPT5kLmFkZGVkVGltZXN0YW1wTWlsbGlzLWMuYWRkZWRUaW1lc3RhbXBNaWxsaXMpLm1hcChjPT4iZG93bmxvYWRlZE11c2ljRW50aXRpZXMiaW4gYz9jLmRvd25sb2FkZWRNdXNpY0VudGl0aWVzOmhKKGMpP2MuZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczp7fSk7cmV0dXJue2Rvd25sb2FkZWRNdXNpY0VudGl0aWVzOmIsZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczphfX07CmhlYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBTZXQsZD1pSihhKS5tYXAoZT0+ZS5kb3dubG9hZGVkTXVzaWNQbGF5bGlzdEVudGl0aWVzKTtkPWVlYShkKTtmb3IobGV0IGUgb2YgZCkoe2VudGl0eUlkOmR9PV8uR0goZSkpLGQmJmMuYWRkKGQpOyh7ZG93bmxvYWRlZE11c2ljRW50aXRpZXM6YX09Z2VhKGEpKTtyZXR1cm4gYS5maWx0ZXIoZT0+e2lmKGUubXVzaWNUcmFja0VudGl0eT8udmlkZW9JZCl7ZT1lLm11c2ljVHJhY2tFbnRpdHk7dmFyIGY7aWYoZj1iPT09IlBQT00iPyEwOiFjLmhhcyhlLnZpZGVvSWQpKWI6c3dpdGNoKGU9ZS5tdXNpY1ZpZGVvVHlwZSxiKXtjYXNlICJQUFNFIjpmPWU9PT0iTVVTSUNfVklERU9fVFlQRV9QT0RDQVNUX0VQSVNPREUiO2JyZWFrIGI7ZGVmYXVsdDpmPWUhPT0iTVVTSUNfVklERU9fVFlQRV9QT0RDQVNUX0VQSVNPREUifWU9Zn1lbHNlIGU9ITE7cmV0dXJuIGV9KS5tYXAoZT0+ZS5tdXNpY1RyYWNrRW50aXR5Py52aWRlb0lkKX07CmplYT1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybltdO2lmKE9iamVjdC52YWx1ZXMoaWVhKS5pbmNsdWRlcyhiKSlyZXR1cm4gaGVhKGEsYik7Yj1fLnpJKGIsIm11c2ljUGxheWxpc3QiKTtiPWEubXVzaWNQbGF5bGlzdD8uW2JdO2E9W107aWYoIWI/LnRyYWNrcylyZXR1cm4gYTtmb3IobGV0IGMgb2YgYi50cmFja3MpKHtlbnRpdHlJZDpifT1fLkdIKGMpKSxiJiZhLnB1c2goYik7cmV0dXJuIGF9OwprZWE9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFNldChhKTtpZihiLmhhcygiVFJBTlNGRVJfU1RBVEVfRkFJTEVEIikmJmIuc2l6ZT09PTEpcmV0dXJuIlRSQU5TRkVSX1NUQVRFX0ZBSUxFRCI7Yi5kZWxldGUoIlRSQU5TRkVSX1NUQVRFX0ZBSUxFRCIpO2lmKGIuaGFzKCJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIikmJmIuc2l6ZT09PTEpcmV0dXJuIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI7Yi5kZWxldGUoIlRSQU5TRkVSX1NUQVRFX1VOS05PV04iKTtpZihiLmhhcygiVFJBTlNGRVJfU1RBVEVfUFJFX1RSQU5TRkVSIikmJmIuc2l6ZT09PTF8fGIuc2l6ZT09PTApcmV0dXJuIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI7YT1iLmhhcygiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIik7Yj1iLmhhcygiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJfSU5fUVVFVUUiKTtyZXR1cm4gYXx8Yj8iVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIjoiVFJBTlNGRVJfU1RBVEVfQ09NUExFVEUifTsKbGVhPWZ1bmN0aW9uKGEsYil7Yj1fLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpPT09IldFQl9SRU1JWCI/amVhKGEsYik6ZGVhKGEsYik7aWYoIWIubGVuZ3RoKXJldHVybiJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIjtiPWIubWFwKGM9PntjPWM/KGM9Xy5xQShhLCJ0cmFuc2ZlciIsXy56SShjLCJ0cmFuc2ZlciIpKSk/Yy50cmFuc2ZlclN0YXRlPz8iVFJBTlNGRVJfU1RBVEVfVU5LTk9XTiI6IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iOiJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIjtyZXR1cm4gY30pO3JldHVybiBrZWEoYil9O21lYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImRvd25sb2FkU3RhdHVzRW50aXR5IixfLnpJKGIsImRvd25sb2FkU3RhdHVzRW50aXR5IikpPy5kb3dubG9hZFN0YXRlPT09IkRPV05MT0FEX1NUQVRFX1VTRVJfREVMRVRFRCI/ITA6ITF9O2pKPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBDU1MhPT0idW5kZWZpbmVkIiYmQ1NTLnN1cHBvcnRzPy4oInNlbGVjdG9yKDpoYXMoKikpIil9OwprSj1mdW5jdGlvbihhKXtyZXR1cm4gYS52aXNpYmlsaXR5IT09ImhpZGRlbiImJmEuZGlzcGxheSE9PSJub25lIn07bUo9ZnVuY3Rpb24oYSl7aWYoakooKXx8YS50YWdOYW1lIT09IkRFVEFJTFMiPyFhLm1hdGNoZXMobEopOmEucXVlcnlTZWxlY3Rvcigic3VtbWFyeSIpIT09bnVsbClyZXR1cm4tMTthPWEuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpfHwiMCI7cmV0dXJuIE51bWJlcihhKX07bmVhPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoYj0+bUooYik+MCl9O29lYT1mdW5jdGlvbihhKXtpZihhLnRleHRDb250ZW50fHxhLmFyaWFMYWJlbClyZXR1cm4hMDtpZihhIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCl7aWYoIWEubGFiZWxzKXJldHVybiExO2ZvcihsZXQgYiBvZiBhLmxhYmVscylpZihiLnRleHRDb250ZW50KXJldHVybiEwfXJldHVybiExfTtwZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc29ydCgoYixjKT0+bUooYyktbUooYikpfTsKXy5uSj1mdW5jdGlvbihhKXthPUFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKGxKKSkuZmlsdGVyKGI9PihrSihiLnN0eWxlKT9rSih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShiKSk6ITEpJiZvZWEoYikpO3JldHVybiBuZWEoYSk/cGVhKGEpOmF9Owp0ZWE9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpcmV0dXJuW29KXTtzd2l0Y2goYSl7Y2FzZSAiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJfSU5fUVVFVUUiOmNhc2UgIlRSQU5TRkVSX1NUQVRFX0NPTVBMRVRFIjpyZXR1cm5bcEpdO2Nhc2UgIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI6Y2FzZSAiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIjpyZXR1cm4gYz9bcEpdOltxZWEscEpdO2Nhc2UgIlRSQU5TRkVSX1NUQVRFX1BBVVNFRF9CWV9VU0VSIjpyZXR1cm5bcmVhLHBKXTtjYXNlICJUUkFOU0ZFUl9TVEFURV9GQUlMRUQiOmNhc2UgIlRSQU5TRkVSX1NUQVRFX1dBSVRJTkdfRk9SX1BMQVlFUl9SRVNQT05TRV9SRUZSRVNIIjpyZXR1cm5bc2VhLHBKXTtkZWZhdWx0OnJldHVybltvSl19fTsKdWVhPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0ZWEoYSxiLGQpLm1hcChlPT57dmFyIGY9ZS50ZXh0LGg9ZS5pY29uVHlwZSxrPWUuaWk7ZT1lLktoO2Y9Zj97Y29udGVudDpmfTp2b2lkIDA7aD1oJiZ7c291cmNlczpbe2NsaWVudFJlc291cmNlOntpbWFnZU5hbWU6aH19XX07dmFyIGw9Xy5xZChjKTtpZihsKXtsZXQgbT1fLkIobCxfLkJJKSxuPV8uQihsLF8uQUkpO20mJms/bS5hY3Rpb249azpuJiZlJiYobi5hY3Rpb249ZSl9cmV0dXJue3RpdGxlOmYsbGVhZGluZ0ltYWdlOmgscmVuZGVyZXJDb250ZXh0OmwmJntjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6bH19fX19KX07cUo9ZnVuY3Rpb24oYSl7YT1fLnNIKGEucmVuZGVyZXJDb250ZXh0KTtyZXR1cm4gXy5CKGEsXy5CSSk/LnZpZGVvSWR9O3JKPWZ1bmN0aW9uKGEpe2E9Xy5zSChhLnJlbmRlcmVyQ29udGV4dCk7cmV0dXJuIF8uQihhLF8uQUkpPy5wbGF5bGlzdElkfTsKc0o9ZnVuY3Rpb24oYSl7YT1fLkIoYSxfLlpDKTtyZXR1cm4hIWEmJl8udEgoYS5yZW5kZXJlckNvbnRleHQpfTt3ZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdEl0ZW1zPy5zb21lKGI9PntpZihzSihiKSlyZXR1cm4hMDtiPV8uQihiLHZlYSk7cmV0dXJuISFiJiYoXy50SChiLnJlbmRlcmVyQ29udGV4dCl8fHNKKGIuZGVmYXVsdExpc3RJdGVtKXx8c0ooYi50b2dnbGVkTGlzdEl0ZW0pKX0pfTt0Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoO2FbYj09PS0xP2MtMTooYi0xK2MpJWNdPy5mb2N1cygpfTtpZWE9e2RDOiJQUEFEIixPQzoiUFBEUCIsTEY6IlBQT00iLHFHOiJQUFJDIix3RzoiUFBTRSIseEc6IlBQU1YifTt1Sj0iYVtocmVmXSBhW3RhYmluZGV4XSBhcmVhW2hyZWZdIGlmcmFtZSBbdGFiaW5kZXhdIFtjb250ZW50RWRpdGFibGVdIHN1bW1hcnkgaW5wdXQ6bm90KFtkaXNhYmxlZF0pIHNlbGVjdDpub3QoW2Rpc2FibGVkXSkgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSkgb2JqZWN0Om5vdChbZGlzYWJsZWRdKSIuc3BsaXQoIiAiKTsKakooKSYmdUoucHVzaCgiZGV0YWlsczpub3QoOmhhcyhzdW1tYXJ5KSkiKTt2YXIgbEo9dUouam9pbigiLCIpO3ZhciB2ZWE9bmV3IF8uSSgidG9nZ2xlYWJsZUxpc3RJdGVtVmlld01vZGVsIik7dmFyIHhlYT1fLkwoYT0+e3ZhciB7ZGF0YTpiLGNsYXNzTmFtZTpjLG5hOmQsSWE6ZSxCYzpmfT1fLkRDKGEse25hOiExLElhOiExLEJjOiExfSksaD1fLmNJKG49PnthOnt2YXIgcD1iKCkuZW50aXR5S2V5LHI9YigpLmVudGl0eVNlbGVjdG9yVHlwZTtpZihyKXN3aXRjaChyKXtjYXNlICJUT0dHTEVBQkxFX0xJU1RfSVRFTV9FTlRJVFlfU0VMRUNUT1JfVFlQRV9UT0dHTEVfTUVOVV9TRVJWSUNFX0lURU1fRU5USVRZIjppZighcClicmVhaztuPShuPV8ueEEuZUIobixwKSkmJm4uaXNUb2dnbGVkIT09dm9pZCAwP3tpc1RvZ2dsZWQ6bi5pc1RvZ2dsZWR9OnZvaWQgMDticmVhayBhO2RlZmF1bHQ6Xy5JcChuZXcgXy5YaigiRXJyb3I6IGVudGl0eVNlbGVjdG9yVHlwZSBkZWZpbmVkIGJ1dCBub3QgbWF0Y2hlZCBpbiBzZWxlY3Rvci4iLG4scikpfW49dm9pZCAwfXJldHVybiBufSksW2ssbF09Xy5BQygoKT0+aCgpPy5pc1RvZ2dsZWQhPT12b2lkIDA/aCgpPy5pc1RvZ2dsZWQ6YigpLmluaXRpYWxTdGF0ZT8uaXNUb2dnbGVkPz8KYigpLmluaXRpYWxJc1RvZ2dsZWQ/PyExKSxtPSgpPT57dmFyIG49aygpP2IoKS50b2dnbGVkTGlzdEl0ZW06YigpLmRlZmF1bHRMaXN0SXRlbTtyZXR1cm4gXy5CKF8uQihuLF8uWkMpPy5yZW5kZXJlckNvbnRleHQsXy5ZQyk/LmxhYmVsfTtyZXR1cm4gXy5LKCJ0b2dnbGVhYmxlLWxpc3QtaXRlbS12aWV3LW1vZGVsIix7ZWw6Xy5yRihfLnVIKCgpPT5iKCkucmVuZGVyZXJDb250ZXh0LHtvblRhcDoobixwKT0+e3AoKTtoKCk/LmlzVG9nZ2xlZCE9PXZvaWQgMHx8bCghaygpKX19KSksY2xhc3M6Xy5QKCJ0b2dnbGVhYmxlTGlzdEl0ZW1WaWV3TW9kZWxIb3N0IixjKX0sXy5LKF8uTyx7QTooKT0+e2lmKGsoKSl7dmFyIG49YigpLnRvZ2dsZWRMaXN0SXRlbTtuPV8uQihuLF8uWkMpfWVsc2Ugbj1iKCkuZGVmYXVsdExpc3RJdGVtLG49Xy5CKG4sXy5aQyk7cmV0dXJuIG59LHRoZW46bj0+Xy5LKF8uQ0Qse2RhdGE6bixpc1RvZ2dsZWQ6ayxuYTpkLElhOmUsQmM6ZixhcmlhTGFiZWw6bSwKYXJpYVByZXNzZWQ6a30pfSkpfSwiSyIpO3ZhciB5ZWE9Xy5hQSgiRE9XTkxPQUQiLHt9LCJEb3dubG9hZCIpLHplYT1fLmFBKCJERUxFVEVfRlJPTV9ET1dOTE9BRFMiLHt9LCJEZWxldGUgZnJvbSBkb3dubG9hZHMiKSxBZWE9Xy5hQSgiUkVUUlkiLHt9LCJSZXRyeSIpLEJlYT1fLmFBKCJQQVVTRV9ET1dOTE9BRElORyIse30sIlBhdXNlIGRvd25sb2FkaW5nIiksQ2VhPV8uYUEoIlJFU1VNRV9ET1dOTE9BRCIse30sIlJlc3VtZSBkb3dubG9hZCIpLG9KPXt0ZXh0OnllYSxpY29uVHlwZToiT0ZGTElORV9ET1dOTE9BRCIsaWk6IkFDVElPTl9BREQiLEtoOiJBQ1RJT05fQUREIn0scEo9e3RleHQ6emVhLGljb25UeXBlOiJERUxFVEUiLGlpOiJBQ1RJT05fUkVNT1ZFIixLaDoiQUNUSU9OX1JFTU9WRSJ9LHNlYT17dGV4dDpBZWEsaWNvblR5cGU6Ik9GRkxJTkVfRE9XTkxPQUQiLGlpOiJBQ1RJT05fUkVUUlkiLEtoOiJBQ1RJT05fUkVNT1ZFIn0scWVhPXt0ZXh0OkJlYSxpY29uVHlwZToiT0ZGTElORV9QQVVTRSIsaWk6IkFDVElPTl9QQVVTRSIsCktoOiJBQ1RJT05fUEFVU0UifSxyZWE9e3RleHQ6Q2VhLGljb25UeXBlOiJPRkZMSU5FX0RPV05MT0FEIixpaToiQUNUSU9OX1JFU1VNRSIsS2g6IkFDVElPTl9SRVNVTUUifTtfLkwoYT0+e3ZhciBiPV8uY0koaD0+e3ZhciBrPXFKKGEuZGF0YSgpKSxsPXJKKGEuZGF0YSgpKTtrPyhoPWguZW50aXRpZXMsaz8obD1fLnFBKGgsInRyYW5zZmVyIixfLnpJKGssInRyYW5zZmVyIikpKT9rPWwudHJhbnNmZXJTdGF0ZT8/IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iOihsPV8ucUEoaCwib2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5IixfLnpJKGssIm9mZmxpbmVPcmNoZXN0cmF0aW9uQWN0aW9uV3JhcHBlckVudGl0eSIpKSxrPV8ucUEoaCwibWFpblZpZGVvRW50aXR5IixfLnpJKGssIm1haW5WaWRlb0VudGl0eSIpKSxrPWx8fGs/IlRSQU5TRkVSX1NUQVRFX1RSQU5TRkVSX0lOX1FVRVVFIjoiVFJBTlNGRVJfU1RBVEVfVU5LTk9XTiIpOms9IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iKTprPWw/bGVhKGguZW50aXRpZXMsbCk6IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iO3JldHVybiBrfSksYz1fLkRJKG1lYSwoKT0+cUooYS5kYXRhKCkpKSwKZD1fLmNJKGg9Pnt2YXIgaz1xSihhLmRhdGEoKSksbD1ySihhLmRhdGEoKSk7IWsmJmw/KGs9aC5lbnRpdGllcyxsPyhsPWdKKGwpLGs9Xy5xQShrLCJvZmZsaW5lYWJpbGl0eUVudGl0eSIsXy56SShsLCJvZmZsaW5lYWJpbGl0eUVudGl0eSIpKT8uYWRkVG9PZmZsaW5lQnV0dG9uU3RhdGU/PyJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRU5BQkxFRCIpOms9IkFERF9UT19PRkZMSU5FX0JVVFRPTl9TVEFURV9ESVNBQkxFRCIpOihsPWguZW50aXRpZXMsaz8oaz1nSihrKSxrPV8ucUEobCwib2ZmbGluZWFiaWxpdHlFbnRpdHkiLF8uekkoaywib2ZmbGluZWFiaWxpdHlFbnRpdHkiKSk/LmFkZFRvT2ZmbGluZUJ1dHRvblN0YXRlPz8iQUREX1RPX09GRkxJTkVfQlVUVE9OX1NUQVRFX0VOQUJMRUQiKTprPSJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRElTQUJMRUQiKTtyZXR1cm4ga30pLGU9KCk9PnVlYShiKCksYygpLF8uc0goYS5kYXRhKCkucmVuZGVyZXJDb250ZXh0KSwKISFySihhLmRhdGEoKSkpLGY9KCk9PmQoKSE9PSJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRU5BQkxFRCI7cmV0dXJuIF8uSygieXQtZG93bmxvYWQtbGlzdC1pdGVtLXZpZXctbW9kZWwiLHtjbGFzczoieXREb3dubG9hZExpc3RJdGVtVmlld01vZGVsSG9zdCIsaGlkZGVuOmZ9LF8uSyhfLk8se0E6KCk9PiFmKCksdGhlbjooKT0+Xy5LKF8uTyx7QTplLHRoZW46aD0+Xy5LKF8uZ0cse3BhOmh9LGs9Pl8uSyhfLkNELHtkYXRhOmssbmE6YS5uYSxJYTphLklhLEJjOmEuQmMsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmEuZGlzYWJsZUhvcml6b250YWxQYWRkaW5nfSkpfSl9KSl9LCJMIikuaWRvbUNvbXBhdD0hMDtfLkJEPV8uTCgoe2RhdGE6YSxuYTpiLGNlOmMsQmM6ZCxpc092ZXJsYXk6ZSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6Zn0pPT57dmFyIGg9KCk9PndlYShhKCkpJiZkPy4oKTtyZXR1cm4gXy5LKCJ5dC1saXN0LXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0TGlzdFZpZXdNb2RlbEhvc3QiLHt5dExpc3RWaWV3TW9kZWxIb3N0S2Fpb3NTcGF0TmF2Ol8uZ3ImJmRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKCJzcGF0aWFsLW5hdmlnYXRpb24tZW5hYmxlZCIpJiZkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgic3BhdGlhbC1uYXZpZ2F0aW9uLWVuYWJsZWQiKT09PSJ0cnVlIn0pLHJvbGU6KCk9PmgoKT8ibWVudSI6Imxpc3QiLHN0eWxlOl8uSUUoeyJtYXgtaGVpZ2h0IjooKT0+e3ZhciBrPWEoKT8udmlzaWJsZUVsZW1lbnRDb3VudDtpZihrKXJldHVybmAkeyhrKy41KSo0MH1weGB9fSksIm9uOmtleWRvd24iOmZ1bmN0aW9uKGspe2lmKGQ/LigpJiZfLngoIndlYl9lbmFibGVfYXJyb3dfa2V5X25hdmlnYXRpb25faW5fZHJvcGRvd24iKSl7dmFyIGw9Cl8ubkooay5jdXJyZW50VGFyZ2V0KTtpZihsLmxlbmd0aCE9PTApe3ZhciBtPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobCxkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtzd2l0Y2goay5rZXkpe2Nhc2UgIkFycm93RG93biI6ay5wcmV2ZW50RGVmYXVsdCgpO2xbKG0rMSklbC5sZW5ndGhdPy5mb2N1cygpO2JyZWFrO2Nhc2UgIkFycm93VXAiOmsucHJldmVudERlZmF1bHQoKTt0SihsLG0pO2JyZWFrO2Nhc2UgIlRhYiI6ay5wcmV2ZW50RGVmYXVsdCgpLGsuc2hpZnRLZXk/dEoobCxtKTpsWyhtKzEpJWwubGVuZ3RoXT8uZm9jdXMoKX19fX19LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5saXN0SXRlbXN9LHtsaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6a30pPT5fLksoXy5DRCx7ZGF0YTprLElhOmgsbmE6YixjZTpjLEJjOmQsaXNPdmVybGF5OmUsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmZ9KSx0b2dnbGVhYmxlTGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOmt9KT0+Xy5LKHhlYSwKe2RhdGE6ayxJYTpoLG5hOmIsQmM6ZH0pLGRvd25sb2FkTGlzdEl0ZW1WaWV3TW9kZWw6KCk9Pl8uSyhfLklCLG51bGwpLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOigpPT5fLksoXy5JQixudWxsKX0pKX0sIk0iKTtfLkJELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIkh4amxiYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLktKPW5ldyBfLkkoImJ1dHRvblZpZXdNb2RlbCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnNEPV8uTChhPT57ZnVuY3Rpb24gYihuKXt2YXIgcD1jKCk7dmFyIHI9ZCgpO3IhPT12b2lkIDA/cD1yOihyPV8uQihwLnNlY29uZGFyeUJ1dHRvbixfLktKKSxwPV8uQihwLnByaW1hcnlCdXR0b24sXy5LSik/LmlzRnVsbFdpZHRoIT09ITF8fHImJnI/LmlzRnVsbFdpZHRoIT09ITE/MTozKTtyZXR1cm4gbj09PXB9dmFyIHtkYXRhOmMsdHlwZTpkLGRpc2FibGVQYWRkaW5nOmUsTmk6ZixYcTpofT1fLkRDKGEse3R5cGU6dm9pZCAwLGRpc2FibGVQYWRkaW5nOiExLE5pOiExfSksaz0oKT0+YygpLnN0YWNraW5nPT09IlBBTkVMX0ZPT1RFUl9TVEFDS0lOR19WRVJUSUNBTCIsbD0oKT0+KHtkaXNhYmxlZDpmKCksc3RhdGU6ZigpPyJkaXNhYmxlZCI6ImFjdGl2ZSJ9KSxtPSgpPT5jKCkubGVhZGluZ0xhYmVsfHxjKCkudHJhaWxpbmdMYWJlbDtyZXR1cm4gXy5LKCJ5dC1wYW5lbC1mb290ZXItdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEhvc3QiLAp7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEhpZGVEaXZpZGVyOigpPT5jKCkuc2hvdWxkSGlkZURpdmlkZXIseXRQYW5lbEZvb3RlclZpZXdNb2RlbERpc2FibGVQYWRkaW5nOmV9KX0sXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFBhbmVsRm9vdGVyVmlld01vZGVsVGV4dFJvdyIse3l0UGFuZWxGb290ZXJWaWV3TW9kZWxSb3dCb3R0b21QYWRkaW5nOigpPT57dmFyIG49YygpO3JldHVybiEoIW4ubGVhZGluZ0xhYmVsJiYhbi50cmFpbGluZ0xhYmVsfHwhbi5wcmltYXJ5QnV0dG9uJiYhbi5zZWNvbmRhcnlCdXR0b24pfX0pfSxfLksoXy5WLHt0ZXh0OigpPT5jKCkubGVhZGluZ0xhYmVsLGNsYXNzTmFtZTpfLlAoe3l0UGFuZWxGb290ZXJWaWV3TW9kZWxUZXh0UGFkZGluZzptfSl9KSxfLksoXy5WLHt0ZXh0OigpPT5jKCkudHJhaWxpbmdMYWJlbH0pKX0pLF8uSyhfLk8se0E6ayx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uU3RhY2sifSwKXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0UGFuZWxGb290ZXJWaWV3TW9kZWxQcmltYXJ5QnV0dG9uIix7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblN0YWNrVG9wQnV0dG9uOigpPT5jKCkuc2Vjb25kYXJ5QnV0dG9ufSl9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5wcmltYXJ5QnV0dG9ufSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpufSk9Pl8uSyhfLkhELHtkYXRhOm4sYnV0dG9uT3ZlcnJpZGVzOmwsb25DbGljazpofSl9KSksXy5LKF8uVyx7ZGF0YTooKT0+YygpLnNlY29uZGFyeUJ1dHRvbn0se2J1dHRvblZpZXdNb2RlbDpfLkhEfSkpfSksXy5LKF8uTyx7QTooKT0+IWsoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvdyIse3l0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dUcmFpbGluZzooKT0+YigzKX0pfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0xlZnRCdXR0b24iLAp7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0Z1bGxXaWR0aDooKT0+YigxKSx5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93SGlkZGVuOigpPT4hYygpLnNlY29uZGFyeUJ1dHRvbnx8YigwKSx5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93U2hyaW5rOigpPT5iKDIpfSl9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5zZWNvbmRhcnlCdXR0b259LHtidXR0b25WaWV3TW9kZWw6Xy5IRH0pKSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbFByaW1hcnlCdXR0b24iLHt5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93RnVsbFdpZHRoOigpPT5iKDApfHxiKDEpLHl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dFeHBhbmQ6KCk9PmIoMil9KX0sXy5LKF8uVyx7ZGF0YTooKT0+YygpLnByaW1hcnlCdXR0b259LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOm59KT0+Xy5LKF8uSEQse2RhdGE6bixidXR0b25PdmVycmlkZXM6bCwKb25DbGljazpofSl9KSkpfSkpfSwiRmEiKTtfLnNELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImxQV2prYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmVMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiakJpc2FmIik7cmV0dXJuIF8uVEN9O18uZkw9Xy5jRCgoKT0+Xy5lTCgpLCJiYWRnZVNoYXBlIik7Xy5ZdChfLkpELGE9PnthLkooImJhZGdlU2hhcGUiLCJqQmlzYWYiLF8uZUwpfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciB5ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdHcmVlbkNpcmNsZSI7Y2FzZSAxOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1llbGxvd0NpcmNsZSI7Y2FzZSAyOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1JlZFNxdWFyZSI7Y2FzZSAzOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsR3JlZW5TcXVhcmUiO2Nhc2UgNDpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbEJsdWVTcXVhcmUiO2Nhc2UgNTpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZUJsdWVTcXVhcmUiO2Nhc2UgNjpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbFllbGxvd1NxdWFyZSI7CmNhc2UgNzpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZVllbGxvd1NxdWFyZSI7Y2FzZSA4OnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsT3JhbmdlU3F1YXJlIjtjYXNlIDk6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VPcmFuZ2VTcXVhcmUiO2Nhc2UgMTA6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxSZWRTcXVhcmUiO2Nhc2UgMTE6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VSZWRTcXVhcmUiO2Nhc2UgMTI6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbGFja1NxdWFyZSI7Y2FzZSAxMzpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZUJsYWNrU3F1YXJlIn19LHpmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQkFER0VfQ09NTUVSQ0UiOmNhc2UgIkJBREdFX01FTUJFUlNfT05MWSI6cmV0dXJuIDEwOwpjYXNlICJCQURHRV9ESVNDT1VOVCI6cmV0dXJuIDg7Y2FzZSAiQkFER0VfU1RBVFVTX05FVyI6cmV0dXJuIDEzO2Nhc2UgIkJBREdFX1BSRU1JVU0iOnJldHVybiA3O2Nhc2UgIkJBREdFX1BST01PVEVEIjpyZXR1cm4gNDtjYXNlICJCQURHRV9QUk9NT1RFRF9JTlZFUlRFRCI6cmV0dXJuIDU7Y2FzZSAiQkFER0VfTUVESUEiOnJldHVybiAxO2Nhc2UgIkJBREdFX1RJTUVMWSI6cmV0dXJuIDY7Y2FzZSAiQkFER0VfTElWRV9OT1ciOnJldHVybiAxOTtjYXNlICJCQURHRV9TVEFUVVNfQ09NUExFVEUiOnJldHVybiAxNDtjYXNlICJCQURHRV9TVEFUVVNfV0FSTklORyI6cmV0dXJuIDE1O2Nhc2UgIkJBREdFX1NUQVRVU19FUlJPUiI6cmV0dXJuIDE2O2Nhc2UgIkJBREdFX1NUQVRVU19ERUZBVUxUIjpyZXR1cm4gMTc7ZGVmYXVsdDpyZXR1cm4gMH19LEFmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQkFER0VfTlpfUkFUSU5HX0dSRUVOX0NJUkNMRSI6cmV0dXJuIDA7Y2FzZSAiQkFER0VfTlpfUkFUSU5HX1lFTExPV19DSVJDTEUiOnJldHVybiAxOwpjYXNlICJCQURHRV9OWl9SQVRJTkdfUkVEX1NRVUFSRSI6cmV0dXJuIDI7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX0dSRUVOX1NRVUFSRSI6cmV0dXJuIDM7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX0JMVUVfU1FVQVJFIjpyZXR1cm4gNDtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfQkxVRV9TUVVBUkUiOnJldHVybiA1O2Nhc2UgIkJBREdFX0JSX1JBVElOR19TTUFMTF9ZRUxMT1dfU1FVQVJFIjpyZXR1cm4gNjtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfWUVMTE9XX1NRVUFSRSI6cmV0dXJuIDc7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX09SQU5HRV9TUVVBUkUiOnJldHVybiA4O2Nhc2UgIkJBREdFX0JSX1JBVElOR19MQVJHRV9PUkFOR0VfU1FVQVJFIjpyZXR1cm4gOTtjYXNlICJCQURHRV9CUl9SQVRJTkdfU01BTExfUkVEX1NRVUFSRSI6cmV0dXJuIDEwO2Nhc2UgIkJBREdFX0JSX1JBVElOR19MQVJHRV9SRURfU1FVQVJFIjpyZXR1cm4gMTE7CmNhc2UgIkJBREdFX0JSX1JBVElOR19TTUFMTF9CTEFDS19TUVVBUkUiOnJldHVybiAxMjtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfQkxBQ0tfU1FVQVJFIjpyZXR1cm4gMTN9fTt2YXIgQmZhPV8uTCgoe2RhdGE6YX0pPT5fLksoImJyLW56LWJhZGdlLXNoYXBlIix7Y2xhc3M6Xy5QKCgpPT55ZmEoYSgpLnVpKSkscm9sZTooKT0+YSgpLmFjY2Vzc2liaWxpdHlUZXh0PyJpbWciOnZvaWQgMCwiYXJpYS1sYWJlbCI6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5VGV4dH0sKCk9PmEoKT8udGV4dCksInVhIik7Xy5FRD1fLkwoYT0+e3ZhciBiPSgpPT57dmFyIGM9YS5kYXRhKCk7aWYoYyl7dmFyIGQ9ISFhLnpMPy4oKSxlPWEub2c/LigpLGY9YS5Eaj8uKCksaD1hLmVwPy4oKSxrPWEucXg/LigpO2E6c3dpdGNoKGMuYmFkZ2VTdHlsZSl7Y2FzZSAiQkFER0VfT1ZFUkxBWSI6dmFyIGw9ITA7YnJlYWsgYTtkZWZhdWx0Omw9ITF9Yz17dHlwZTpkPzE4OnpmYShjLmJhZGdlU3R5bGUpLHVpOkFmYShjLmJhZGdlU3R5bGUpLHRleHQ6Yy5iYWRnZVRleHQsaWNvbjpjLmljb25OYW1lLGlzT3ZlcmxheTpsLG9nOmV8fF8ueCgid2ViX21vZGVybl9iYWRnZV92aWV3X21vZGVsIiksYWNjZXNzaWJpbGl0eVRleHQ6Yy5hY2Nlc3NpYmlsaXR5TGFiZWx8fF8uQihjLnJlbmRlcmVyQ29udGV4dCxfLllDKT8ubGFiZWwsRGo6ZixlcDpoLG9BOmssbnM6Xy5CKGMudG9vbHRpcE9uSG92ZXIsXy5jSyk/LnRvb2x0aXBUZXh0fX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfTtyZXR1cm4gXy5LKCJ5dC1iYWRnZS12aWV3LW1vZGVsIiwKe2NsYXNzOl8uUCgieXRCYWRnZVZpZXdNb2RlbEhvc3QiLGEuY2xhc3MpfSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT4hIWIoKT8udWl9LCgpPT5fLksoQmZhLHtkYXRhOigpPT5iKCl9KSksXy5LKF8uQ0Use3doZW46KCk9PiEhYigpJiYhYigpLnVpfSwoKT0+Xy5LKF8uZkwse2RhdGE6KCk9PmIoKX0pKSkpfSwidmEiKTtfLkVELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIlB6VWRaYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnZKPWZ1bmN0aW9uKGEsYixjLGQpe2R8fChkPXtidWJibGVzOiEwLGNhbmNlbGFibGU6ITEsY29tcG9zZWQ6ITB9KTtjIT09bnVsbCYmYyE9PXZvaWQgMCYmKGQuZGV0YWlsPWMpO3ZhciBlPW5ldyBDdXN0b21FdmVudChiLGQpO18uRUEoKCk9PnZvaWQgYS5kaXNwYXRjaEV2ZW50KGUpKTtyZXR1cm4gZX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZEw9ZnVuY3Rpb24oKXt9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnJFPV8uTChhPT57dmFyIHtGSTpiLGZGOmMscEM6ZCxhc3NldFR5cGU6ZSxRZzpmLGtoOmgsdms6ayx6azpsLFB3Om0scWs6bixVbzpwLGJ1dHRvblN0eWxlOnIsRXo6dCxQcjp2LGNvbnRlbnRBbGlnbm1lbnQ6eixpc0Z1bGxzY3JlZW46RSxrcDpBLHdpZHRoOkYsbWF4SGVpZ2h0OkMsdXE6RyxudDpELHNxOkgsbHQ6Un09Xy5EQyhhLHtQdzowLFVvOjAsYnV0dG9uU3R5bGU6MCxjb250ZW50QWxpZ25tZW50OjAsbWF4SGVpZ2h0OjAsaXNGdWxsc2NyZWVuOiExLGtwOiExLGtoOiEwLHVxOiExLHNxOiExfSk7YT10PygpPT50KHtidXR0b25PdmVycmlkZXM6KCk9Pih7c3R5bGU6cj8uKCk9PT0xPyJjYWxsLXRvLWFjdGlvbiI6Im1vbm8iLHR5cGU6ImZpbGxlZCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSJ9KSxjbGFzc05hbWU6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRCdXR0b246ITAseXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nQnV0dG9uc0lubGluZVN0cmV0Y2hlZDooKT0+cD8uKCk9PT0KMHx8cD8uKCk9PT0yfSl9KTp2b2lkIDA7dmFyIE09dj8oKT0+dih7YnV0dG9uT3ZlcnJpZGVzOntzdHlsZToibW9ubyIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSJ9LGNsYXNzTmFtZTpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dEJ1dHRvbjohMCx5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lU3RyZXRjaGVkOigpPT5wPy4oKT09PTB8fHA/LigpPT09Mn0pfSk6dm9pZCAwLFM9KCk9PighIWYmJmgoKXx8ISFrfHwhIWwpJiZtKCk9PT0wO3JldHVybiBfLksoImRpYWxvZy1sYXlvdXQiLHtlbDpfLnJGKGIsXy5kTCksY2xhc3M6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRIb3N0OiEwLHl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW46RSx5dFNwZWNEaWFsb2dMYXlvdXRSZXNwb25zaXZlOigpPT4hRSgpJiYhQSgpLHl0U3BlY0RpYWxvZ0xheW91dEV4dGVuZGVkTWF4SGVpZ2h0OigpPT5DKCk9PT0xLHl0U3BlY0RpYWxvZ0xheW91dEFzc2V0SW5zZXQ6KCk9PgplPy4oKT09PTF9KSxzdHlsZTooKT0+Rj8uKCkhPT12b2lkIDA/YHdpZHRoOiAke0YoKX1weDtgOiIifSxjP18uSygiZGl2Iix7Y2xhc3M6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRJY29uOiEwLHl0U3BlY0RpYWxvZ0xheW91dEljb25BYm92ZU1lZGlhOigpPT4hIWQmJm0oKT09PTEseXRTcGVjRGlhbG9nTGF5b3V0SWNvbkNlbnRlckFsaWduOigpPT56KCk9PT0xfSl9LF8uSyhjLG51bGwpKTpudWxsLF8uSyhfLk8se0E6Ryx0aGVuOigpPT5EP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckNvbnRhaW5lciJ9LF8uSyhELG51bGwpKTpudWxsLFc6KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTpTLHRoZW46KCk9Pl8uSyhZUCx7Y29udGVudEFsaWdubWVudDp6LHZrOmssems6bCxRZzpmLGtoOmgsVGw6ISFkfSl9KSxkP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dEFzc2V0In0sXy5LKGQse2NsYXNzTmFtZToieXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJdGVtIn0pKToKbnVsbCl9KSxfLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjRGlhbG9nTGF5b3V0Q29udGFpbmVyOigpPT4hQSgpLHl0U3BlY0RpYWxvZ0xheW91dENlbnRlckFsaWduOigpPT56Py4oKT09PTEseXRTcGVjRGlhbG9nTGF5b3V0VG9wUGFkZGluZzooKT0+IVMoKSYmIUEoKSYmIUcoKSYmIShmJiZoKCkmJiFEJiZtPy4oKT09PTEpfHwhIWQmJm0/LigpPT09MH0pfSxfLksoXy5PLHtBOigpPT5mJiZoKCkmJiFEJiZtPy4oKT09PTEsdGhlbjooKT0+Xy5LKFlQLHtjb250ZW50QWxpZ25tZW50Onosdms6ayx6azpsLFFnOmYsa2g6aCxUbDohMX0pfSksbj9fLksoImRpdiIse2NsYXNzOiJ5dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50In0sXy5LKCJkaXYiLHtjbGFzczpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dENvbnRlbnRJbm5lcjooKT0+IUEoKX0pfSxfLksobixudWxsKSkpOm51bGwsXy5LKF8uTyx7QTpILHRoZW46KCk9PlI/Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjRGlhbG9nTGF5b3V0Rm9vdGVyQ29udGFpbmVyIn0sCl8uSyhSLG51bGwpKTpudWxsfSksYXx8TT9fLksoUmlhLHthdzpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dEZvb3RlckNvbnRhaW5lcjohMCx5dFNwZWNEaWFsb2dMYXlvdXRGb290ZXI6ITAseXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nQnV0dG9uc1N0YWNrZWQ6KCk9PnA/LigpPT09Mix5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lRW5kOigpPT5wPy4oKT09PTF9KSxZdDphLGN1Ok19KTpudWxsKSl9LCJQYiIpOwp2YXIgWVA9Xy5MKGE9Pnt2YXIge2NvbnRlbnRBbGlnbm1lbnQ6Yix2azpjLFFnOmQsa2g6ZSx6azpmLFRsOmgsRXY6a309Xy5EQyhhLHtUbDohMSxFdjohMH0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nSGVhZGVyQ29udGFpbmVyOiEwLHl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlcjohMCx5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dIZWFkZXJBYm92ZUFzc2V0OmgseXRTcGVjRGlhbG9nTGF5b3V0Q2VudGVyQWxpZ246KCk9PmI/LigpPT09MSYmaygpfSl9LF8uSyhfLk8se0E6KCk9PmsoKSx0aGVuOigpPT5jP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dExlYWRpbmdBY3Rpb25IZWFkZXIifSxfLksoYyxudWxsKSk6bnVsbH0pLGQ/Xy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSygiaDIiLHtjbGFzczoieXRTcGVjRGlhbG9nTGF5b3V0VGl0bGUifSxfLksoZCxudWxsKSl9KTpudWxsLGY/Xy5LKCJkaXYiLG51bGwsCl8uSyhmLG51bGwpKTpudWxsKX0sIlFiIiksUmlhPV8uTCgoe2F3OmEsWXQ6YixjdTpjfSk9Pl8uSygiZGl2Iix7Y2xhc3M6YX0sYz9fLksoYyxudWxsKTpudWxsLGI/Xy5LKGIsbnVsbCk6bnVsbCksIlJiIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInZpVVdWIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYk09bmV3IF8uVnMoIkxPVFRJRV9MT0FERVJfVE9LRU4iKTtfLmNNPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixhbmltYXRpb25OYW1lOmMsYW5pbWF0aW9uUmVmOmQsR0k6ZX0pPT57dmFyIGY9Xy52RSgibG90dGllLWNvbXBvbmVudCIpLGg7Xy5ZdSgoKT0+dm9pZCBoPy5kZXN0cm95KCkpO3ZhciBrO18ubkUoKCk9Pnt2YXIgbD1fLkJ2KGMpO2lmKGwhPT1rKXtrPWw7dmFyIG09e2FuaW1hdGlvbk5hbWU6bCxhbmltYXRpb25SZWY6Xy5CdihkKSwuLi5fLkJ2KGEpfTt0cnl7Xy55KCkucmVzb2x2ZShfLmJNKSgpLnRoZW4obj0+e2g/LmRlc3Ryb3koKTt2YXIgcD1lPy4oKT8udmFsdWU/P2YudmFsdWUscj1tLmFuaW1hdGlvblJlZix0PW0ubGlzdGVuZXJzO249bi5sb2FkQW5pbWF0aW9uKHtjb250YWluZXI6cCxyZW5kZXJlclNldHRpbmdzOm0ucmVuZGVyZXJTZXR0aW5ncywuLi5tLmFuaW1hdGlvbkNvbmZpZ30pO3ImJihyLmxvdHRpZUVsPW4pO2lmKHQpZm9yKGxldCBbdix6XW9mIE9iamVjdC5lbnRyaWVzKHQpKXI9diwodD16KSYmbi5hZGRFdmVudExpc3RlbmVyKHIsCnQpO2g9bn0pfWNhdGNoKG4pe2w9IkxvdHRpZUNvbXBvbmVudCBlcnJvci4iLG4ubWVzc2FnZSYmKGwrPWAgT3JpZ2luYWwgZGVzY3JpcHRpb246ICR7bi5tZXNzYWdlfWApLF8uY3cobixsKSxfLklwKG4pLG0ubGlzdGVuZXJzPy5lcnJvciYmbS5saXN0ZW5lcnMuZXJyb3Iobil9fX0sInhPQ2s1Iik7cmV0dXJuIF8uSyhfLk8se0E6KCk9PiFlPy4oKSx0aGVuOigpPT5fLksoImxvdHRpZS1jb21wb25lbnQiLHtjbGFzczpfLlAoInl0TG90dGllQ29tcG9uZW50SG9zdCIsYiksZWw6Zn0pfSl9LCJLYSIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgYmdhO2JnYT1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGgsayl7aWYoYi52YWx1ZT09PWsmJiFiLmNhbmNlbGxlZCl7Zm9yKDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTthLmNsYXNzTGlzdC5hZGQoInl0U3BlY0ljb25TaGFwZUhvc3QiKTtoKGEsZCl9fXZhciBmPV8ueSgpLnJlc29sdmUoXy5YTCkucHkoYyk7dHlwZW9mIGY9PT0iZnVuY3Rpb24iPyhiLnZhbHVlPW51bGwsZShmLG51bGwpKTooYi52YWx1ZT1mLGYudGhlbihoPT57ZShoLGYpfSkpfTtfLlhMPW5ldyBfLlZzKCJJQ09OX01BTkFHRVJfVE9LRU4iKTtfLllMPV8uTChhPT57dmFyIGI9e3ZhbHVlOm51bGwsY2FuY2VsbGVkOiExfTtfLll1KCgpPT57Yi5jYW5jZWxsZWQ9ITB9KTt2YXIgYz1fLk4oYS5kYXRhLHtlcXVhbHM6KGQsZSk9PmQuaWNvbk5hbWU9PT1lLmljb25OYW1lJiZkLmljb25TdHlsZT09PWUuaWNvblN0eWxlJiZkLmljb25TaXplPT09ZS5pY29uU2l6ZSYmZC5seD09PWUubHgmJmQua3g9PT1lLmt4fSwiY2syNGpiIik7cmV0dXJuIF8uSygic3BhbiIse2NsYXNzOiJ5dC1pY29uLXNoYXBlIixlbDpfLnJGKGQ9PntfLm5FKCgpPT57dmFyIGU9YS5vcHRpb25zPy4oKSxmPWMoKTtiZ2EoZCxiLGYsZSl9LCJ2ODc4SmUiKX0pfSl9LCJIYSIpO18uWUwuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEVQPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE4OmNhc2UgMTk6Y2FzZSAyMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sR2lhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDM6cmV0dXJuInl0QmFkZ2VTaGFwZUFkIjtjYXNlIDE6cmV0dXJuInl0QmFkZ2VTaGFwZU1lZGlhIjtjYXNlIDI6cmV0dXJuInl0QmFkZ2VTaGFwZU1lZGlhT3ZlcmxheSI7Y2FzZSA0OnJldHVybiJ5dEJhZGdlU2hhcGVQcm9tb3RlZCI7Y2FzZSA1OnJldHVybiJ5dEJhZGdlU2hhcGVQcm9tb3RlZEludmVydGVkIjtjYXNlIDY6cmV0dXJuInl0QmFkZ2VTaGFwZVRpbWVseSI7Y2FzZSA3OnJldHVybiJ5dEJhZGdlU2hhcGVQcmVtaXVtIjtjYXNlIDg6cmV0dXJuInl0QmFkZ2VTaGFwZVNhbGUiO2Nhc2UgOTpyZXR1cm4ieXRCYWRnZVNoYXBlTWVtYmVyc2hpcCI7Y2FzZSAxMDpyZXR1cm4ieXRCYWRnZVNoYXBlQ29tbWVyY2UiO2Nhc2UgMTI6cmV0dXJuInl0QmFkZ2VTaGFwZUxpdmUiO2Nhc2UgMTM6cmV0dXJuInl0QmFkZ2VTaGFwZVN0YXR1c05ldyI7CmNhc2UgMTQ6cmV0dXJuInl0QmFkZ2VTaGFwZVN0YXR1c0NvbXBsZXRlIjtjYXNlIDE1OnJldHVybiJ5dEJhZGdlU2hhcGVTdGF0dXNXYXJuaW5nIjtjYXNlIDE2OnJldHVybiJ5dEJhZGdlU2hhcGVTdGF0dXNFcnJvciI7Y2FzZSAxNzpyZXR1cm4ieXRCYWRnZVNoYXBlU3RhdHVzRGVmYXVsdCI7Y2FzZSAxODpyZXR1cm4gXy54KCJlbmFibGVfbG9ja3VwX3JlZGVzaWduIik/Inl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHRSZWRlc2lnbiI6Inl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHQiO2Nhc2UgMTk6cmV0dXJuInl0QmFkZ2VTaGFwZVRodW1ibmFpbExpdmUiO2Nhc2UgMjA6cmV0dXJuInl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwiO2RlZmF1bHQ6cmV0dXJuInl0QmFkZ2VTaGFwZURlZmF1bHQifX07dmFyIEhpYT1uZXcgU2V0KFsiT1VUTElORV9CQUciXSk7Cl8uVEM9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj0oKT0+e3ZhciBkPWEoKS5pY29uO2lmKGQpYTp7ZD1fLktEKGQpPy5pY29uTmFtZT8/ZDtsZXQgaD0ieW91dHViZV9maWxsIjtIaWEuaGFzKGQudG9VcHBlckNhc2UoKSkmJihoPSJ5b3V0dWJlX291dGxpbmUiKTtsZXQgaz1oPT09InlvdXR1YmVfZmlsbCI/InlvdXR1YmVfb3V0bGluZSI6InlvdXR1YmVfZmlsbCIsbD1fLnkoKS5yZXNvbHZlKF8uWEwpO3ZhciBlPVsxMiwyNF07Zm9yKGYgb2YgZSl7ZT17aWNvbk5hbWU6ZCxpY29uU3R5bGU6aCxpY29uU2l6ZTpmfTtsZXQgbT17aWNvbk5hbWU6ZCxpY29uU3R5bGU6ayxpY29uU2l6ZTpmfTtpZihsLmooZSkpe3ZhciBmPWU7YnJlYWsgYX1pZihsLmoobSkpe2Y9bTticmVhayBhfX1mPXZvaWQgMH1lbHNlIGY9dm9pZCAwO3JldHVybiBmfSxbY109Xy5iSygoKT0+YSgpLm5zKTtyZXR1cm4gXy5LKCJiYWRnZS1zaGFwZSIse2VsOl8uckYoZD0+e2MoZCl9KSxjbGFzczpfLlAoInl0QmFkZ2VTaGFwZUhvc3QiLAooKT0+R2lhKGEoKS50eXBlKSx7eXRCYWRnZVNoYXBlT3ZlcmxheTooKT0+YSgpLmlzT3ZlcmxheSx5dEJhZGdlU2hhcGVBZHNJbmNsdWRlRG90OigpPT5hKCkuQm8seXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2U6KCk9PkVQKGEoKS50eXBlKSx5dEJhZGdlU2hhcGVUaHVtYm5haWxCYWRnZVJlZGVzaWduOigpPT5fLngoImVuYWJsZV9sb2NrdXBfcmVkZXNpZ24iKSYmRVAoYSgpLnR5cGUpLHl0QmFkZ2VTaGFwZVN0YXR1c0JhZGdlOigpPT57YTpzd2l0Y2goYSgpLnR5cGUpe2Nhc2UgMTM6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzp2YXIgZD0hMDticmVhayBhO2RlZmF1bHQ6ZD0hMX1yZXR1cm4gZH0seXRCYWRnZVNoYXBlTm9UZXh0OigpPT4hYSgpLnRleHQseXRCYWRnZVNoYXBlSXNFbXB0eTooKT0+IWEoKS50ZXh0JiYhYSgpLmljb24mJiFhKCkuYW5pbWF0aW9uLHl0QmFkZ2VTaGFwZU1vZGVybjooKT0+YSgpLm9nfHxfLngoIndlYl9tb2Rlcm5fYmFkZ2Vfc2hhcGUiKSwKeXRCYWRnZVNoYXBlVHlwb2dyYXBoeTooKT0+e2E6e3ZhciBkPWEoKTtpZihkLm9BKXN3aXRjaChkLnR5cGUpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAxMDpkPSEwO2JyZWFrIGE7ZGVmYXVsdDpkPSExfWVsc2UgZD0hMX1yZXR1cm4hZH0seXRCYWRnZVNoYXBlTWVkaXVtRm9udEFkQmFkZ2U6KCk9PmEoKS5HeSx5dEJhZGdlU2hhcGVMYXJnZUZvbnRBZEJhZGdlOigpPT5hKCkuanl9KSxzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6KCk9PmEoKS5jdXN0b21Db2xvcnM/LmJhY2tncm91bmRDb2xvcn0pLHJvbGU6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5VGV4dD8iaW1nIjp2b2lkIDAsImFyaWEtbGFiZWwiOigpPT5hKCkuYWNjZXNzaWJpbGl0eVRleHR9LF8uSyhfLk8se0E6KCk9PmEoKS5hbmltYXRpb24sdGhlbjpkPT5fLksoXy5jTSx7Y2xhc3NOYW1lOiJ5dEJhZGdlU2hhcGVJY29uIixkYXRhOmQsYW5pbWF0aW9uTmFtZTooKT0+ZCgpLmFuaW1hdGlvbkNvbmZpZy5uYW1lfHwiIn0pfSksCl8uSyhfLk8se0E6KCk9PmIoKSYmIWEoKT8uYW5pbWF0aW9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0QmFkZ2VTaGFwZUljb24ifSxfLksoXy5ZTCx7ZGF0YTooKT0+YigpfSkpfSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0QmFkZ2VTaGFwZVRleHQiLHt5dEJhZGdlU2hhcGVUZXh0Q2xpcFRleHRPdmVyZmxvdzooKT0+YSgpLmVwLHl0QmFkZ2VTaGFwZVRleHRIYXNNdWx0aXBsZUJhZGdlc0luUm93OigpPT4oYSgpLkRqfHwwKT4xfSl9LCgpPT5hKCk/LnRleHQpKX0sInliIik7Xy5UQy5pZG9tQ29tcGF0PSEwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJqQmlzYWYiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEJKO18ud0o9ZnVuY3Rpb24oYSxiLGMsZD0wKXsoZD1fLmlxKGQpKSYmXy5meChhLmNsaWVudCxkLGIsYyl9O18ueEo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmdldFNjcmVlbkxheWVyJiZiLmdldFNjcmVlbkxheWVyKCk7Yi52aXN1YWxFbGVtZW50P18ud0ooYSxiLnZpc3VhbEVsZW1lbnQsdm9pZCAwLGMpOihfLkR4KCksYj1fLlZpKF8uQngoKS5qKS5iaW5kKF8uQngoKSkoYiksYS5DZihiLHZvaWQgMCxjKSl9O18ueUo9ZnVuY3Rpb24oYSxiLGMpe18uVmkoXy5meCkodm9pZCAwLGEsYixjLHZvaWQgMCl9O18ueko9ZnVuY3Rpb24oYSxiPTApeyhiPV8uaXEoYikpJiZhJiZfLnlKKGIsXy5VdyhhKSl9O18uQUo9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5nRS5wdXNoKHtjb21tYW5kOmEsc291cmNlRGF0YTpiLGNvbW1hbmRDb250ZXh0OmR9KTtjJiZhLmNsaWNrVHJhY2tpbmdQYXJhbXMmJl8uekooYS5jbGlja1RyYWNraW5nUGFyYW1zKX07CkJKPWZ1bmN0aW9uKGEpe2lmKCFhPy5ydW5zKXJldHVybiEwO2ZvcihsZXQgYiBvZiBhLnJ1bnMpaWYoYi5icmFja2V0fHxiLmVycm9yVW5kZXJsaW5lfHxiLmRlZW1waGFzaXplfHxfLkIoYixfLlhjYSl8fF8uQihiLF8uWWNhKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5DSj1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLnNpbXBsZVRleHQ/YS5zaW1wbGVUZXh0OmEucnVucz9hLnJ1bnMubWFwKGI9PmIudGV4dCkuam9pbigiIik6IiI6IiJ9O18uREo9ZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYS5sYWJlbD9hLmxhYmVsOl8uREooYS5hY2Nlc3NpYmlsaXR5RGF0YSl9O18uRGVhPW5ldyBfLkkoInlwY09mZmVyc0VuZHBvaW50Iik7Xy5FZWE9bmV3IF8uSSgieXBjR2V0T2ZmZXJzRW5kcG9pbnQiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlbWUtbWV0YSIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtfLkZlYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyIik7Xy5FSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWNvbnRhaW5lci1pZCIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItY29udHJvbC1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWVuZHNjcmVlbi1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXNob3J0cy1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWNpbmVtYXRpY3MtY29udGFpbmVyIik7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZ1bGwtc2NyZWVuLWNvbnRlbnQtaWQiKTtfLkZKPV8uS3koImluaXQiKTt2YXIgR0o7CkdKPV8uTCgoe3J1bjphLG1hOmJ9KT0+e3ZhciBjPSgpPT5hKCkubmF2aWdhdGlvbkVuZHBvaW50O3JldHVybiBfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkuYm9sZH0sKCk9Pnt2YXIgZD1fLk4oKCk9Pih7Li4uYSgpLGJvbGQ6dm9pZCAwfSksdm9pZCAwLCJTbFpsNiIpO3JldHVybiBfLksoInN0cm9uZyIse2NsYXNzOiJmb3JtYXR0ZWQtc3RyaW5nLWJvbGQifSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLmRlZW1waGFzaXplfSwoKT0+e3ZhciBkPV8uTigoKT0+KHsuLi5hKCksZGVlbXBoYXNpemU6dm9pZCAwfSksdm9pZCAwLCJ5SXh3ZGQiKTtyZXR1cm4gXy5LKCJzcGFuIix7Y2xhc3M6ImZvcm1hdHRlZC1zdHJpbmctZGVlbXBoYXNpemUifSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLml0YWxpY3N9LCgpPT57dmFyIGQ9Xy5OKCgpPT4oey4uLmEoKSxpdGFsaWNzOnZvaWQgMH0pLHZvaWQgMCwKIlFOWEhIYiIpO3JldHVybiBfLksoImVtIixudWxsLF8uSyhHSix7cnVuOmQsbWE6Yn0pKX0pLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkudGV4dENvbG9yfSwoKT0+e3ZhciBkPV8uTigoKT0+KHsuLi5hKCksdGV4dENvbG9yOnZvaWQgMH0pLHZvaWQgMCwieEplRzNiIik7cmV0dXJuIF8uSygic3BhbiIse3N0eWxlOigpPT5gY29sb3I6ICR7Xy5KRShhKCkudGV4dENvbG9yKX1gfSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLnN0cmlrZXRocm91Z2h9LCgpPT57dmFyIGQ9Xy5OKCgpPT4oey4uLmEoKSxzdHJpa2V0aHJvdWdoOnZvaWQgMH0pLHZvaWQgMCwiWENSNmhkIik7cmV0dXJuIF8uSygicyIsbnVsbCxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+IWEoKS5uYXZpZ2F0aW9uRW5kcG9pbnR8fGIoKX0sKCk9Pl8uSyhfLklCLG51bGwsKCk9PmEoKS50ZXh0KSksXy5LKF8uREUsbnVsbCwoKT0+Xy5LKF8ubkgse2NvbW1hbmQ6YywKdGFiSW5kZXg6MH0sXy5LKF8uSUIsbnVsbCwoKT0+YSgpLnRleHQpKSkpfSwiTiIpOwpfLklKPV8uTCgoe2RhdGE6YSwuLi5ifSk9Pnt2YXIgYz0oKT0+Yi5tYT8uKCksZD0oKT0+Yi51Yj8uKCksZT0oKT0+Yi5JZD8uKCksZj0oKT0+Yi51c2VySW5wdXQ/LigpLGg9KCk9PmIuWGE/LigpLGs9KCk9PmIucmc/LigpPz8hMDtyZXR1cm4gXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+IShhPy4oKSYmT2JqZWN0LmtleXMoYSgpKS5sZW5ndGgpfSwoKT0+bnVsbCksXy5LKF8uQ0Use3doZW46KCk9Pnt2YXIgbDtpZihsPUJKKGEoKSkpbD1hKCksbD0hIShsPy5jb250ZW50IT09dm9pZCAwP2w6Xy5BRihsKSkuY29udGVudDtyZXR1cm4gbH19LCgpPT5fLksoXy5WLHt0ZXh0OmEsYXJpYUxhYmVsOigpPT5fLkRKKGEoKS5hY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YSksWGE6aCxtYTpjLHViOmQscmc6ayxJZDplLHVzZXJJbnB1dDpmLFl1OiEwfSkpLF8uSyhfLkNFLHt3aGVuOigpPT5CSihhKCkpfSwoKT0+bnVsbCksXy5LKF8uQ0Use3doZW46KCk9Pnt2YXIgbDsKaWYoKGw9YT8uKCkmJk9iamVjdC5rZXlzKGEoKSkubGVuZ3RoKSYmIShsPWEoKS5hY2Nlc3NpYmlsaXR5KSlhOntsPWEoKTtpZihsLnJ1bnMpZm9yKGxldCBtIG9mIGwucnVucylpZihtLm5hdmlnYXRpb25FbmRwb2ludCl7bD0hMTticmVhayBhfWw9ITB9cmV0dXJuIGwmJmEoKS5ydW5zJiZhKCkucnVucy5sZW5ndGg+MX19LCgpPT5fLksoInNwYW4iLHsiYXJpYS1sYWJlbCI6KCk9Pl8uREooYSgpLmFjY2Vzc2liaWxpdHk/LmFjY2Vzc2liaWxpdHlEYXRhKSxjbGFzczoiZm9ybWF0dGVkLXN0cmluZy10ZXh0Iixyb2xlOiJ0ZXh0In0sXy5LKEhKLHtzaW1wbGVUZXh0OigpPT5hKCkuc2ltcGxlVGV4dCxydW5zOigpPT5hKCkucnVucyxtYTpjfSkpKSxfLksoXy5ERSxudWxsLCgpPT5fLksoSEose3NpbXBsZVRleHQ6KCk9PmEoKS5zaW1wbGVUZXh0LHJ1bnM6KCk9PmEoKS5ydW5zLG1hOmN9KSkpfSwiTyIpO18uSUouaWRvbUNvbXBhdD0hMDsKdmFyIEhKPV8uTCgoe3NpbXBsZVRleHQ6YSxydW5zOmIsbWE6Y30pPT5fLksoXy5PLHtBOigpPT5hJiZhKCksdGhlbjpkPT5kLFc6KCk9Pl8uSyhfLk8se0E6KCk9PmImJmIoKSx0aGVuOmQ9Pl8uSyhfLmdHLHtwYTpkLHRiOiJJTkRFWCJ9LGU9Pl8uSyhHSix7cnVuOmUsbWE6KCk9PiEhYz8uKCl9KSl9KX0pLCJQIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTEo9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJaUUt4MSIpO3JldHVybiBfLlZDfTtfLk1KPV8uY0QoKCk9Pl8uTEooKSwiYnV0dG9uT3JBbmNob3IiKTtfLll0KF8uSkQsYT0+e2EuSigiYnV0dG9uT3JBbmNob3IiLCJaUUt4MSIsXy5MSil9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFlLO1lLPWE9PmI9PigpPT5iPy4oKSE9PXZvaWQgMD9TdHJpbmcoYigpKSthOnZvaWQgMDtfLlpLPVlLKCJweCIpO18ueGZhPVlLKCIlIik7Xy4kSz1ZSygicyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFMPWZ1bmN0aW9uKC4uLmEpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKWlmKGMpaWYodHlwZW9mIGM9PT0ic3RyaW5nIiliLnB1c2goYyk7ZWxzZSBmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYykpYT1kLGUmJmIucHVzaChhKTtyZXR1cm4gYi5qb2luKCIgIil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmJMPW5ldyBfLlZzKCJQQU5FTF9DT05UUk9MTEVSX1RPS0VOIik7Xy5jTD1uZXcgXy5WcygiU0hFRVRfQ09OVFJPTExFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmdMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgicjlLTWpiIik7cmV0dXJuIF8uJEN9O18uaEw9Xy5jRCgoKT0+Xy5nTCgpLCJ1cHNlbGxWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidXBzZWxsVmlld01vZGVsIiwicjlLTWpiIixfLmdMKX0pO18uaUw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJWY0dTOCIpO3JldHVybiBfLkVDfTtfLmpMPV8uY0QoKCk9Pl8uaUwoKSwibWluaUFwcFNjb3JlQ2hhbGxlbmdlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooIm1pbmlBcHBTY29yZUNoYWxsZW5nZVZpZXdNb2RlbCIsIlZjR1M4IixfLmlMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZMPW5ldyBfLkkoImJ1dHRvblJlbmRlcmVyIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV0w9ZnVuY3Rpb24oYSl7cmV0dXJue3J1bnM6W3t0ZXh0OmF9XX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlpMPV8uTChhPT57KHt3cmFwcGVyOmF9PV8uREMoYSx7d3JhcHBlcjohMX0pKTtyZXR1cm4gXy5LKF8uTyx7QTphLHRoZW46KCk9Pl8uSygieXQtc3Bpbm5lci1zaGFwZSIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVdyYXBwZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVNwaW5uZXIifSkpLFc6KCk9Pl8uSygieXQtc3Bpbm5lci1zaGFwZSIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVNwaW5uZXIifSl9KX0sIklhIik7Xy5aTC5pZG9tQ29tcGF0PSEwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLiRMPXtFbzohMSxscTohMSx2cDoiIix1cDoiIix3cjohMSxDcTohMX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYU09ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0wfHxhPT09MX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBlTSxjZ2EsZGdhLGZNLGdNLGlNLGpNLGVnYSxnZ2EsaWdhLGtnYSxtZ2Esb2dhLHBNLHBnYSxxZ2Esbk07Xy5kTT1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gYSlyZXR1cm4gYn07ZU09ZnVuY3Rpb24oLi4uYSl7cmV0dXJuIGEubGVuZ3RoPT09MD9iPT5iOmEubGVuZ3RoPT09MT9hWzBdOmEucmVkdWNlKChiLGMpPT4oLi4uZCk9PmIoYyguLi5kKSkpfTtjZ2E9ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gYj0+KGMsZCk9PntjPWIoYyxkKTt2YXIgZT0oKT0+e3Rocm93IEVycm9yKCJRYiIpO30sZj17Z2V0U3RhdGU6Yy5nZXRTdGF0ZSxkaXNwYXRjaDooaCwuLi5rKT0+ZShoLC4uLmspfTtkPWEubWFwKGg9PmgoZikpO2U9ZU0oLi4uZCkoYy5kaXNwYXRjaCk7cmV0dXJuey4uLmMsZGlzcGF0Y2g6ZX19fTsKZGdhPWZ1bmN0aW9uKGEpe09iamVjdC5rZXlzKGEpLmZvckVhY2goYj0+e3ZhciBjPWFbYl07aWYodHlwZW9mIGModm9pZCAwLHt0eXBlOl8ubUF9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCJSYmAiK2IpO2lmKHR5cGVvZiBjKHZvaWQgMCx7dHlwZTpgQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiR7Xy5sQSgpfWB9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCJTYmAiK2IrImAiK18ubUEpO30pfTsKZk09ZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmtleXMoYSksYz17fTtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKyl7bGV0IGg9YltmXTt0eXBlb2YgYVtoXT09PSJmdW5jdGlvbiImJihjW2hdPWFbaF0pfXZhciBkPU9iamVjdC5rZXlzKGMpO3RyeXtkZ2EoYyl9Y2F0Y2goZil7dmFyIGU9Zn1yZXR1cm4gZnVuY3Rpb24oZj17fSxoKXtpZihlKXRocm93IGU7dmFyIGs9ITEsbD17fTtmb3IobGV0IG09MDttPGQubGVuZ3RoO20rKyl7bGV0IG49ZFttXSxwPWZbbl0scj0oMCxjW25dKShwLGgpO2lmKHR5cGVvZiByPT09InVuZGVmaW5lZCIpdGhyb3cgZj1oJiZoLnR5cGUsRXJyb3IoIlRiYCIrKGY/YCIke1N0cmluZyhmKX0iYDoiKHVua25vd24gdHlwZSkiKSsiYCIrbik7bFtuXT1yO2s9a3x8ciE9PXB9cmV0dXJuKGs9a3x8ZC5sZW5ndGghPT1PYmplY3Qua2V5cyhmKS5sZW5ndGgpP2w6Zn19OwpnTT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZCgpe2lmKG4pdGhyb3cgRXJyb3IoIlViIik7cmV0dXJuIGt9ZnVuY3Rpb24gZShyKXtpZih0eXBlb2YgciE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIlZiYCIrdHlwZW9mIHIpO2lmKG4pdGhyb3cgRXJyb3IoIldiIik7dmFyIHQ9ITA7bT09PWwmJihtPWwuc2xpY2UoKSk7bS5wdXNoKHIpO3JldHVybiBmdW5jdGlvbigpe2lmKHQpe2lmKG4pdGhyb3cgRXJyb3IoIlhiIik7dD0hMTttPT09bCYmKG09bC5zbGljZSgpKTt2YXIgdj1tLmluZGV4T2Yocik7bS5zcGxpY2UodiwxKTtsPW51bGx9fX1mdW5jdGlvbiBmKHIpe2lmKHR5cGVvZiByIT09Im9iamVjdCJ8fHI9PT1udWxsKXZhciB0PSExO2Vsc2V7Zm9yKHQ9cjtPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkhPT1udWxsOyl0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTt0PU9iamVjdC5nZXRQcm90b3R5cGVPZihyKT09PXR9aWYoIXQpdGhyb3cgRXJyb3IoIlliYCIrdHlwZW9mIHIpOwppZih0eXBlb2Ygci50eXBlPT09InVuZGVmaW5lZCIpdGhyb3cgRXJyb3IoIlpiIik7aWYobil0aHJvdyBFcnJvcigiJGIiKTt0cnl7bj0hMCxrPWgoayxyKX1maW5hbGx5e249ITF9dD1sPW07Zm9yKGxldCB2PTA7djx0Lmxlbmd0aDt2KyspKDAsdFt2XSkoKTtyZXR1cm4gcn1pZih0eXBlb2YgYj09PSJmdW5jdGlvbiImJnR5cGVvZiBjPT09ImZ1bmN0aW9uInx8dHlwZW9mIGM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYXJndW1lbnRzWzNdPT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiYWMiKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJnR5cGVvZiBjPT09InVuZGVmaW5lZCImJihjPWIsYj12b2lkIDApO2lmKHR5cGVvZiBjIT09InVuZGVmaW5lZCIpe2lmKHR5cGVvZiBjIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiYmNgIit0eXBlb2YgYyk7cmV0dXJuIGMoZ00pKGEsYil9aWYodHlwZW9mIGEhPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJjY2AiK3R5cGVvZiBhKTt2YXIgaD1hLGs9CmIsbD1bXSxtPWwsbj0hMTtmKHt0eXBlOl8ubUF9KTt2YXIgcD17ZGlzcGF0Y2g6ZixzdWJzY3JpYmU6ZSxnZXRTdGF0ZTpkLHJlcGxhY2VSZWR1Y2VyOmZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiZGNgIit0eXBlb2Ygcik7aD1yO2Yoe3R5cGU6Xy5SYWF9KTtyZXR1cm4gcH0sW18ubkFdOmZ1bmN0aW9uKCl7cmV0dXJue3N1YnNjcmliZShyKXtmdW5jdGlvbiB0KCl7ci5uZXh0JiZyLm5leHQoZCgpKX1pZih0eXBlb2YgciE9PSJvYmplY3QifHxyPT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJlY2AiK3R5cGVvZiByKTt0KCk7cmV0dXJue3Vuc3Vic2NyaWJlOmUodCl9fSxbXy5uQV0oKXtyZXR1cm4gdGhpc319fX07cmV0dXJuIHB9OwpfLmhNPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17Li4uYX07Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKGIpKXtsZXQgZj1hW2VdLGg9YltlXTtpZihoPT09dm9pZCAwKWRlbGV0ZSBkW2VdO2Vsc2UgaWYoZj09PXZvaWQgMClkW2VdPWg7ZWxzZSBpZihBcnJheS5pc0FycmF5KGgpJiZBcnJheS5pc0FycmF5KGYpKWRbZV09Yz9bLi4uZiwuLi5oXTpoO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoaCkmJl8uQWEoaCkmJiFBcnJheS5pc0FycmF5KGYpJiZfLkFhKGYpKWRbZV09Xy5oTShmLGgsYyk7ZWxzZSBpZih0eXBlb2YgaD09PXR5cGVvZiBmKWRbZV09aDtlbHNlIHJldHVybiBiPW5ldyBfLlhqKCJBdHRlbXB0ZWQgdG8gbWVyZ2UgZmllbGRzIG9mIGRpZmZlcmluZyB0eXBlcy4iLHtuYW1lOiJEZWVwTWVyZ2VFcnJvciIsa2V5OmUsSGo6Zix1cGRhdGVWYWx1ZTpofSksXy5HcChiKSxhfXJldHVybiBkfTsKaU09ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZD09PXZvaWQgMCl7bGV0IHtbY106ZSwuLi5mfT1hW2JdfHx7fTtyZXR1cm57Li4uYSxbYl06Zn19cmV0dXJuey4uLmEsW2JdOnsuLi5hW2JdLFtjXTpkfX19O2pNPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YVtiXXx8e30saD1mW2NdO2lmKCFoJiYhXy54KCJ3ZWJfZW5hYmxlX2VudGl0eV91cHNlcnRfb25fdXBkYXRlIikpcmV0dXJuIGE7ZD1fLmhNKGh8fHt9LGQsZT09PSJSRVBFQVRFRF9GSUVMRFNfTUVSR0VfT1BUSU9OX0FQUEVORCIpO3JldHVybnsuLi5hLFtiXTp7Li4uZixbY106ZH19fTsKZWdhPWZ1bmN0aW9uKGE9e30sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiRU5USVRZX0xPQURFRCI6cmV0dXJuIGIucGF5bG9hZC5yZWR1Y2UoKGMsZCk9Pnt2YXIgZT1kLm9wdGlvbnM/LnBlcnNpc3RlbmNlT3B0aW9uO2lmKGUmJmUhPT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9VTktOT1dOIiYmZSE9PSJFTlRJVFlfUEVSU0lTVEVOQ0VfT1BUSU9OX0lOTUVNT1JZX0FORF9QRVJTSVNUIilyZXR1cm4gYztpZighZC5lbnRpdHlLZXkpcmV0dXJuIF8uR3AoRXJyb3IoImdjIikpLGM7aWYoZC50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1JFUExBQ0UiKXtpZighZC5wYXlsb2FkKXJldHVybiBkPW5ldyBfLlhqKCJSRVBMQUNFIGVudGl0eSBtdXRhdGlvbiBpcyBtaXNzaW5nIGEgcGF5bG9hZCIse2VudGl0eUtleTpkLmVudGl0eUtleX0pLF8uR3AoZCksYzt2YXIgZj1fLmRNKGQucGF5bG9hZCk7cmV0dXJuIGlNKGMsZixkLmVudGl0eUtleSxkLnBheWxvYWRbZl0pfWlmKGQudHlwZT09PQoiRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIil7YTp7ZD1kLmVudGl0eUtleTt0cnl7bGV0IGg9Xy5HSChkKS5lbnRpdHlUeXBlO2Y9aU0oYyxoLGQpO2JyZWFrIGF9Y2F0Y2goaCl7aWYoaCBpbnN0YW5jZW9mIEVycm9yKXtkPW5ldyBfLlhqKCJGYWlsZWQgdG8gZGVzZXJpYWxpemUgZW50aXR5IGtleSIse2VudGl0eUtleTpkLG9yaWdpbmFsTWVzc2FnZTpoLm1lc3NhZ2V9KTtfLkdwKGQpO2Y9YzticmVhayBhfXRocm93IGg7fWY9dm9pZCAwfXJldHVybiBmfWlmKGQudHlwZT09PSJFTlRJVFlfTVVUQVRJT05fVFlQRV9VUERBVEUiKXtpZighZC5wYXlsb2FkKXJldHVybiBkPW5ldyBfLlhqKCJVUERBVEUgZW50aXR5IG11dGF0aW9uIGlzIG1pc3NpbmcgYSBwYXlsb2FkIix7ZW50aXR5S2V5OmQuZW50aXR5S2V5fSksXy5HcChkKSxjO2Y9Xy5kTShkLnBheWxvYWQpO3JldHVybiBqTShjLGYsZC5lbnRpdHlLZXksZC5wYXlsb2FkW2ZdLGQuZmllbGRNYXNrPy5tZXJnZU9wdGlvbnM/LnJlcGVhdGVkRmllbGRzTWVyZ2VPcHRpb24pfXJldHVybiBjfSwKYSk7Y2FzZSAiUkVQTEFDRV9FTlRJVFkiOnJldHVybiBpTShhLGIucGF5bG9hZC5lbnRpdHlUeXBlLGIucGF5bG9hZC5rZXksYi5wYXlsb2FkLnhsKTtjYXNlICJSRVBMQUNFX0VOVElUSUVTIjpyZXR1cm4gT2JqZWN0LmtleXMoYi5wYXlsb2FkKS5yZWR1Y2UoKGMsZCk9Pnt2YXIgZT1iLnBheWxvYWRbZF07cmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoZixoKT0+aU0oZixkLGgsZVtoXSksYyl9LGEpO2Nhc2UgIlVQREFURV9FTlRJVFkiOnJldHVybiBqTShhLGIucGF5bG9hZC5lbnRpdHlUeXBlLGIucGF5bG9hZC5rZXksYi5wYXlsb2FkLnhsLGIucGF5bG9hZC5JeSk7ZGVmYXVsdDpyZXR1cm4gYX19OwpfLmxNPWZ1bmN0aW9uKCl7aWYoXy5rTSlyZXR1cm4gXy5rTTtpZih3aW5kb3cubG90dGllKXJldHVybiBfLmtNPVByb21pc2UucmVzb2x2ZSh3aW5kb3cubG90dGllKTt2YXIgYT1fLmh3KF8udygiTE9UVElFX1VSTCIpKTtyZXR1cm4gYT9fLmtNPW5ldyBQcm9taXNlKChiLGMpPT57dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e2IobG90dGllKX0pO2QuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGU9Pnt2YXIgZj0iTG90dGllIGxpYnJhcnkgZmFpbGVkIHRvIGxvYWQuIjtlP2UubWVzc2FnZSYmKGYrPWAgT3JpZ2luYWwgZGVzY3JpcHRpb246ICR7ZS5tZXNzYWdlfWAsXy5jdyhlLGYpKTplPUVycm9yKGYpO18uSXAoZSk7YyhlKX0pO2Quc2V0QXR0cmlidXRlKCJhc3luYyIsIiIpO18ub2IoZCxhKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGQpfSk6UHJvbWlzZS5yZWplY3QoRXJyb3IoIkJkIikpfTsKZ2dhPWZ1bmN0aW9uKGE9ZmdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9JU19CT1RUT01fU0hFRVRfT1BFTl9TVEFURSI6cmV0dXJuey4uLmEsamo6Yi5wYXlsb2FkfTtkZWZhdWx0OnJldHVybiBhfX07aWdhPWZ1bmN0aW9uKGE9aGdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9DSU5FTUFUSUNfU0VUVElOR19TVEFURSI6cmV0dXJuey4uLmEsaXNBbGxvd2VkOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19OwprZ2E9ZnVuY3Rpb24oYT1qZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0VSUk9SX01FU1NBR0VfQ1JFQVRFX1BMQVlMSVNUX1NUQVRFIjpyZXR1cm57Li4uYSxlcnJvck1lc3NhZ2U6Yi5wYXlsb2FkfTtjYXNlICJTRVRfVElUTEVfQ1JFQVRFX1BMQVlMSVNUX1NUQVRFIjpyZXR1cm57Li4uYSx0aXRsZTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9QUklWQUNZX0NSRUFURV9QTEFZTElTVF9TVEFURSI6cmV0dXJuey4uLmEscHJpdmFjeTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9JU19ESVNBQkxFRF9DUkVBVEVfUExBWUxJU1RfU1RBVEUiOnJldHVybnsuLi5hLGlzRGlzYWJsZWQ6Yi5wYXlsb2FkfTtkZWZhdWx0OnJldHVybiBhfX07bWdhPWZ1bmN0aW9uKGE9bGdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9JU19EUkFXRVJfTEFZT1VUX09QRU5fU1RBVEUiOnJldHVybnsuLi5hLGpqOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19OwpvZ2E9ZnVuY3Rpb24oYT1uZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX0ZVTExTQ1JFRU5fU1RBVEUiOnJldHVybnsuLi5hLGlzRnVsbHNjcmVlbjpiLnBheWxvYWR9O2Nhc2UgIlNFVF9OQVZJR0FUSU9OX0JVVFRPTiI6dmFyIGM9ey4uLmEubmF2aWdhdGlvbkJ1dHRvbnN9O2NbYi5wYXlsb2FkLnRhcmdldElkXT1iLnBheWxvYWQuYnV0dG9uO3JldHVybnsuLi5hLG5hdmlnYXRpb25CdXR0b25zOmN9O2Nhc2UgIlNFVF9UT1BfUEFORUxfSURfU1RBVEUiOnJldHVybnsuLi5hLHFzOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NFQ09OREFSWV9IRUFERVIiOnJldHVybiBjPXsuLi5hLnNlY29uZGFyeUhlYWRlcn0sY1tiLnBheWxvYWQucGFuZWxJZF09Yi5wYXlsb2FkLnNlY29uZGFyeUhlYWRlcix7Li4uYSxzZWNvbmRhcnlIZWFkZXI6Y307ZGVmYXVsdDpyZXR1cm4gYX19O18ub009ZnVuY3Rpb24oKXttTXx8KG1NPW5ldyBuTSk7cmV0dXJuIG1NfTsKcE09ZnVuY3Rpb24oYSxiKXtiPWI/LkFzfHxfLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtzd2l0Y2goYSl7Y2FzZSAiTElLRSI6YT1fLm9NKCkuZ2V0U3RhdGUoKTthPShhPV8ucUEoYS5lbnRpdGllcywibGlrZUJ1dHRvbkFuaW1hdGlvbkVudGl0eSIsIkVoeHNhV3RsWDJKMWRIUnZibDloYm1sdFlYUnBiMjVmWlc1MGFYUjVJTGNFS0FFJTNEIikpJiZhLmFuaW1hdGlvbkxpZ2h0VXJsJiZhLmFuaW1hdGlvbkRhcmtVcmw/e0VjOnthbmltYXRpb25Db25maWc6e25hbWU6Yj8iY3VzdG9tX2FuaW1hdGVkX2xpa2VfaWNvbl9kYXJrIjoiY3VzdG9tX2FuaW1hdGVkX2xpa2VfaWNvbiIscGF0aDpiP2EuYW5pbWF0aW9uRGFya1VybDphLmFuaW1hdGlvbkxpZ2h0VXJsLGxvb3A6ITEsYXV0b3BsYXk6ITEscmVuZGVyZXJTZXR0aW5nczp7dmlld0JveE9ubHk6ITAsY2xhc3NOYW1lOiJjdXN0b20tYW5pbWF0ZWQtbGlrZS1pY29uIn19fSx0b3RhbEZyYW1lczoxMjAsemg6ITB9OnZvaWQgMDsKaWYoYSlyZXR1cm4gYTtiPWBhbmltYXRlZF9saWtlX2ljb25fJHtiPyJkYXJrIjoibGlnaHQifV92NWA7cmV0dXJue0VjOnthbmltYXRpb25Db25maWc6e25hbWU6YixwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvYW5pbWF0ZWRfbGlrZV9pY29uLyR7Yn0uanNvbmAsbG9vcDohMSxhdXRvcGxheTohMSxyZW5kZXJlclNldHRpbmdzOnt2aWV3Qm94T25seTohMCxjbGFzc05hbWU6ImFuaW1hdGVkLWxpa2UtaWNvbiJ9fX0sdG90YWxGcmFtZXM6MTIwLHpoOiEwfTtjYXNlICJOT1RJRklDQVRJT05fQkVMTCI6cmV0dXJue0VjOnthbmltYXRpb25Db25maWc6e25hbWU6Yj8ibm90aWZpY2F0aW9uX2JlbGxfZGFyayI6Im5vdGlmaWNhdGlvbl9iZWxsX2xpZ2h0IixwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvc3Vic2NyaWJlX2FjdGlvbi9zdWJzY3JpYmVfYWN0aW9uX2JlbGxfaWNvbl8ke2I/ImRhcmsiOiJsaWdodCJ9X3Y0Lmpzb25gLApsb29wOiExLGF1dG9wbGF5OiExLHJlbmRlcmVyU2V0dGluZ3M6e2NsYXNzTmFtZToiYW5pbWF0ZWQtc3Vic2NyaWJlLWljb24ifX19LHRvdGFsRnJhbWVzOjEyMCx6aDohMX19fTtwZ2E9ZnVuY3Rpb24oYSxiKXtfLmpmLnBiKGFzeW5jKCk9Pnt0cnl7YXdhaXQgXy5sTSgpO2xldCBjPWF3YWl0IChhd2FpdCBmZXRjaChhKSkuanNvbigpO3FNLnNldChhLGMpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2IoYyl9KX1jYXRjaChjKXtfLklwKGMpfX0pfTtxZ2E9ZnVuY3Rpb24oYSl7dmFyIGI9e2FuaW1hdGlvbkNvbmZpZzp7fSxsaXN0ZW5lcnM6e319LGM9KCk9PnthKCEwKX07Yi5saXN0ZW5lcnMuckk9YztiLmxpc3RlbmVycy5lcnJvcj1jO2IubGlzdGVuZXJzLnNJPSgpPT57YSghMSl9O3JldHVybiBifTsKbk09Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgYT1mTSh7ZW5nYWdlbWVudFBhbmVsOm9nYSx0aTpnZ2EsZUk6aWdhLERwOm1nYSxtSTprZ2EsUUo6cmdhLEJLOnNnYSxDSzp0Z2EsLi4udWdhLC4uLnZnYX0pLGI9ZU0oY2dhKCkpO3RoaXMuc3RvcmU9Z00oYSx2b2lkIDAsYil9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdG9yZS5nZXRTdGF0ZSgpfWRpc3BhdGNoKGEpe3JldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKGEpfXN1YnNjcmliZShhKXtyZXR1cm4gdGhpcy5zdG9yZS5zdWJzY3JpYmUoYSl9cmVwbGFjZVJlZHVjZXIoYSl7cmV0dXJuIHRoaXMuc3RvcmUucmVwbGFjZVJlZHVjZXIoYSl9W1N5bWJvbC5vYnNlcnZhYmxlXSgpe3JldHVybiB0aGlzLnN0b3JlW1N5bWJvbC5vYnNlcnZhYmxlXSgpfX07dmFyIHFNPW5ldyBNYXA7dmFyIHdnYT17SnA6bnVsbH07dmFyIHVnYT17VHI6ZnVuY3Rpb24oYT1fLiRMLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9TSEFSRURfQU5JTUFURURfVEhVTUJOQUlMX0VOQUJMRUQiOnJldHVybnsuLi5hLEVvOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9JTkxJTkVfUFJFVklFV19FTkFCTEVEIjpyZXR1cm57Li4uYSxscTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9TSEFSRURfQ1VSUkVOVF9QQUdFX1RZUEUiOnJldHVybnsuLi5hLHZwOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9DVVJSRU5UX1BBR0VfU1VCX1RZUEUiOnJldHVybnsuLi5hLHVwOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9QRVJTSVNURU5UX1BBTkVMX1ZJU0lCTEUiOnJldHVybnsuLi5hLHdyOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9JU19TRUFSQ0hCT1hfSElEREVOIjpyZXR1cm57Li4uYSxDcTpiLnBheWxvYWR9O2RlZmF1bHQ6cmV0dXJuIGF9fSxhMTF5OmZNKHtKcDpmdW5jdGlvbihhPXdnYS5KcCxiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfRVBIRU1FUkFMX0FDVElPTiI6cmV0dXJuIGIucGF5bG9hZDsKZGVmYXVsdDpyZXR1cm4gYX19fSksZW50aXRpZXM6ZnVuY3Rpb24oYT17fSxiKXtyZXR1cm4gZWdhKGEsYil9fTt2YXIgck09e1hsOiExLGZtOiExLGptOiExLHBsYXllclN0YXRlOi0xLGlzRnVsbHNjcmVlbjohMSxtajohMSxabDohMSxnbTohMSxUajoyLHhqOjB9O3ZhciB4Z2E9Zk0oe1hsOmZ1bmN0aW9uKGE9ck0uWGwsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX0RFU0tUT1BfU01BTExfV0lEVEgiOnJldHVybiBiLnBheWxvYWQuWGw7ZGVmYXVsdDpyZXR1cm4gYX19LGZtOmZ1bmN0aW9uKGE9ck0uZm0sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1NIT1JUU19BQ1RJVkUiOnJldHVybiBiLnBheWxvYWQuZm07ZGVmYXVsdDpyZXR1cm4gYX19LGptOmZ1bmN0aW9uKGE9ck0uam0sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1dBVENIX1dISUxFX01PREUiOnJldHVybiBiLnBheWxvYWQuam07ZGVmYXVsdDpyZXR1cm4gYX19LHBsYXllclN0YXRlOmZ1bmN0aW9uKGE9ck0ucGxheWVyU3RhdGUsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1BMQVlFUl9TVEFURSI6cmV0dXJuIGIucGF5bG9hZC5wbGF5ZXJTdGF0ZTtkZWZhdWx0OnJldHVybiBhfX0saXNGdWxsc2NyZWVuOmZ1bmN0aW9uKGE9ck0uaXNGdWxsc2NyZWVuLApiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfSVNfRlVMTFNDUkVFTiI6cmV0dXJuIGIucGF5bG9hZC5pc0Z1bGxzY3JlZW47ZGVmYXVsdDpyZXR1cm4gYX19LG1qOmZ1bmN0aW9uKGE9ck0ubWosYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1NNQUxMX1NDUkVFTl9TUVVFRVpFQkFDSyI6cmV0dXJuIGIucGF5bG9hZC5tajtkZWZhdWx0OnJldHVybiBhfX0sZ206ZnVuY3Rpb24oYT1yTS5nbSxiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfSVNfU0hPUlRTX1BJUF9BQ1RJVkUiOnJldHVybiBiLnBheWxvYWQuZ207ZGVmYXVsdDpyZXR1cm4gYX19LFpsOmZ1bmN0aW9uKGE9ck0uWmwsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1BMQVlCQUNLX1NUQVJURUQiOnJldHVybiBiLnBheWxvYWQuWmw7ZGVmYXVsdDpyZXR1cm4gYX19LFRqOmZ1bmN0aW9uKGE9ck0uVGosYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1NIT1JUU19MQVlPVVQiOnJldHVybiBiLnBheWxvYWQuVGo7CmRlZmF1bHQ6cmV0dXJuIGF9fSx4ajpmdW5jdGlvbihhPXJNLnhqLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9NRVRBUEFORUxfU1RZTEUiOnJldHVybiBiLnBheWxvYWQueGo7ZGVmYXVsdDpyZXR1cm4gYX19fSk7dmFyIGZnYT17amo6ITF9O3ZhciBoZ2E9e2lzQWxsb3dlZDohMX07dmFyIGpnYT17ZXJyb3JNZXNzYWdlOiIiLHRpdGxlOiIiLHByaXZhY3k6IiIsaXNEaXNhYmxlZDohMH07dmFyIGxnYT17amo6ITF9O3ZhciBuZ2E9e2lzRnVsbHNjcmVlbjohMSxxczp2b2lkIDAsbmF2aWdhdGlvbkJ1dHRvbnM6e30sc2Vjb25kYXJ5SGVhZGVyOnt9fTt2YXIgeWdhPXtyZXNwb25zZTp2b2lkIDB9O3ZhciByZ2E9KGE9eWdhLGIpPT57c3dpdGNoKGIudHlwZSl7Y2FzZSAiTE9DQVRJT05fQ09MTEVDVElPTl9SRVNQT05TRV9DSEFOR0UiOnJldHVybnsuLi5hLHJlc3BvbnNlOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19O3ZhciB6Z2E9e25leHRDb21tYW5kOnZvaWQgMCxUeTohMSxidzp2b2lkIDAsUHg6ITF9O3ZhciBzZ2E9KGE9emdhLGIpPT57c3dpdGNoKGIudHlwZSl7Y2FzZSAiUkVQT1JUX0NIQU5ORUxfTkVYVF9ESVNBQkxFRF9DSEFOR0UiOnJldHVybnsuLi5hLFR5OmIucGF5bG9hZH07Y2FzZSAiUkVQT1JUX0NIQU5ORUxfTkVYVF9DT01NQU5EX0NIQU5HRSI6cmV0dXJuey4uLmEsbmV4dENvbW1hbmQ6Yi5wYXlsb2FkfTtjYXNlICJSRVBPUlRfQ0hBTk5FTF9NT0RBTF9GT09URVJfUkVOREVSRVJfU1VCTUlTU0lPTl9EQVRBX0NIQU5HRSI6cmV0dXJuey4uLmEsYnc6Yi5wYXlsb2FkfTtjYXNlICJSRVBPUlRfQ0hBTk5FTF9ORVhUX0lNUEVSU09OQVRJT05fVkFMSURJVFlfQ0hBTkdFIjpyZXR1cm57Li4uYSxQeDpiLnBheWxvYWR9O2RlZmF1bHQ6cmV0dXJuIGF9fTt2YXIgQWdhPXtVejp2b2lkIDAsVHo6dm9pZCAwfTt2YXIgdGdhPShhPUFnYSxiKT0+e3N3aXRjaChiLnR5cGUpe2Nhc2UgIlJFUE9SVF9GT1JNX01PREFMX1JFTkRFUkVSX0RBVEFfQ0hBTkdFIjpyZXR1cm57Li4uYSxVejpiLnBheWxvYWR9O2Nhc2UgIlJFUE9SVF9ERVRBSUxTX0ZPUk1fUkVOREVSRVJfREFUQV9DSEFOR0UiOnJldHVybnsuLi5hLFR6OmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19O3ZhciBCZ2E9e307dmFyIHNNPXtzaDohMSx3aDpfLngoIndlYl9wbGF5bGlzdF9wYW5lbF9kZWZhdWx0X2NvbGxhcHNlZCIpLHZnOltdLFppOiExfTt2YXIgQ2dhPWZNKHtzaDpmdW5jdGlvbihhPXNNLnNoLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9JU19MSVZFX0NIQVRfQ09MTEFQU0VEIjpyZXR1cm4gYi5wYXlsb2FkP2IucGF5bG9hZC5zaDphO2RlZmF1bHQ6cmV0dXJuIGF9fSx3aDpmdW5jdGlvbihhPXNNLndoLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9JU19QTEFZTElTVF9QQU5FTF9DT0xMQVBTRUQiOnJldHVybiBiLnBheWxvYWQud2g7ZGVmYXVsdDpyZXR1cm4gYX19LHZnOmZ1bmN0aW9uKGE9c00udmcsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiTUFJTl9BUFBfQUREX09QRU5fRU5HQUdFTUVOVF9QQU5FTCI6cmV0dXJuWy4uLmEsYi5wYXlsb2FkLnh6XTtjYXNlICJNQUlOX0FQUF9SRU1PVkVfT1BFTl9FTkdBR0VNRU5UX1BBTkVMIjpyZXR1cm4gYS5sZW5ndGg9PT0wP2E6YS5maWx0ZXIoYz0+YyE9PWIucGF5bG9hZC5vSyk7ZGVmYXVsdDpyZXR1cm4gYX19LFppOmZ1bmN0aW9uKGE9CnNNLlppLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9IQVNfUExBWUxJU1QiOnJldHVybiBiLnBheWxvYWQuWmk7ZGVmYXVsdDpyZXR1cm4gYX19fSk7dmFyIHZnYT17eEw6ZnVuY3Rpb24oYT1CZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1RSQU5TQ1JJUFRJT05fU1RBVEUiOnJldHVybnsuLi5hLGpMOmIucGF5bG9hZH07Y2FzZSAiU0VUX09WRVJMQVlfU1RBVEUiOnJldHVybnsuLi5hLG92ZXJsYXk6Yi5wYXlsb2FkfTtjYXNlICJSRVNFVF9WT0lDRV9TRUFSQ0hfU1RBVEUiOnJldHVybnt9O2RlZmF1bHQ6cmV0dXJuIGF9fSxzaG9ydHM6eGdhLEFkOkNnYX07dmFyIG1NPXZvaWQgMDttTT1uZXcgbk07Xy50TT1fLkwoYT0+e3ZhciB7YW5pbWF0ZWRJY29uVHlwZTpiLGFjdGl2ZTpjLEhjOmQsYW5pbWF0aW9uUmVmOmUsSEE6ZixzaXplOmh9PV8uREMoYSx7SGM6dm9pZCAwLGFuaW1hdGlvblJlZjp7fSxzaXplOjI0fSksW2ssbF09Xy5KKHZvaWQgMCx2b2lkIDAsIlR2Z21DZSIpLG09KCk9PnBNKGIoKSxkPy4oKSk/LkVjLmFuaW1hdGlvbkNvbmZpZy5uYW1lPz8iIixuPSgpPT57aWYocE0oYigpLGQ/LigpKSl7dmFyIHtwYXRoOkF9PXBNKGIoKSxkPy4oKSkuRWMuYW5pbWF0aW9uQ29uZmlnO3JldHVybiBxTS5nZXQoQSl8fGsoKX19LFtwLHJdPV8uSighMSx2b2lkIDAsImpmMkR5YiIpLHQ9cWdhKHIpLHY9KCk9PnBNKGIoKSxkPy4oKSk/LkVjLmFuaW1hdGlvbkNvbmZpZz8ucmVuZGVyZXJTZXR0aW5ncz8uY2xhc3NOYW1lPz8iIix6PXZvaWQgMCxFPXZvaWQgMDtfLm5FKCgpPT57dmFyIEE9cE0oYigpLGQ/LigpKSxGPW0oKSxDPW4oKSxHPXAoKSxEPWMoKTtpZihBJiYoRSE9PUYmJihFPQpGLHo9RCxGPWUoKSx0LmFuaW1hdGlvbkNvbmZpZz1BLkVjLmFuaW1hdGlvbkNvbmZpZyx0LmFuaW1hdGlvblJlZj1GLEMmJih0LmFuaW1hdGlvbkNvbmZpZy5hbmltYXRpb25EYXRhPUMsdC5hbmltYXRpb25Db25maWcucGF0aD12b2lkIDApLEY9QS5FYy5hbmltYXRpb25Db25maWcucGF0aCwhcU0uZ2V0KEYpJiZBLnpoJiZGJiZwZ2EoRixsKSksIShHfHxBLnpoJiYhQykpKXtpZihDPSFlKCkubG90dGllRWwpRD8oRz1BLnRvdGFsRnJhbWVzLHQuYW5pbWF0aW9uQ29uZmlnLmluaXRpYWxTZWdtZW50PVtHLTEsR10pOnQuYW5pbWF0aW9uQ29uZmlnLmluaXRpYWxTZWdtZW50PXZvaWQgMDt6PT09RHx8Q3x8KEM9ZSgpLEQ/Qy5sb3R0aWVFbD8ucGxheVNlZ21lbnRzKFswLEEudG90YWxGcmFtZXNdLCEwKTpDLmxvdHRpZUVsPy5wbGF5U2VnbWVudHMoWzAsMV0sITApKTt6PUR9fSwiWEIxR1NiIik7cmV0dXJuIF8uSygiYW5pbWF0ZWQtaWNvbiIse2NsYXNzOiJ5dEFuaW1hdGVkSWNvbkhvc3QiLAoiZGF0YS1zaXplIjooKT0+aCgpfSxfLksoXy5PLHtBOigpPT4hKCFwTShiKCksZD8uKCkpPy5FYy5hbmltYXRpb25Db25maWcucGF0aHx8cE0oYigpLGQ/LigpKT8uemgmJiFuKCl8fHAoKSksdGhlbjooKT0+Xy5LKF8uY00se2RhdGE6dCxhbmltYXRpb25OYW1lOm0sY2xhc3NOYW1lOnYsYW5pbWF0aW9uUmVmOmV9KSxXOmZ9KSl9LCJNYSIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnVNPWZ1bmN0aW9uKGEpe3JldHVybiBfLnNFKCgpPT4oe3ZhbHVlOmF9KSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeU0sek0sRGdhLEFNLEJNLENNLERNLEVNLEdNLEZnYSxJTSxHZ2EsTE0sSGdhLE1NLFJNLFNNLFRNLGJOLEtnYSxjTixlTixMZ2EsT2dhLE5nYSxNZ2EsaE4sUGdhLFJnYSxpTixqTixrTixTZ2EsVGdhLGxOLFVnYSxtTixuTixwTixWZ2EsV2dhLFhnYSxxTixhaGEsJGdhLHJOLFpnYSxZZ2EsZGhhLGNoYSxzTixiaGEsZmhhLHZOLFgsQU4sQ04sZ2hhLGloYSxoaGEsamhhLE1OLGxoYSxtaGEsUU4sbmhhLG9oYSxUTixxaGEsYU8scmhhLHNoYSx0aGEsdWhhLHZoYSx3aGEseGhhLEVnYSxGTSxITSxiTyx5aGEsT00sUU0sSWdhLEpnYSx6aGEsQWhhO18udk09ZnVuY3Rpb24oYSl7dmFyIGI9Xy4kdChhKTtyZXR1cm57W1N5bWJvbC5kaXNwb3NlXSgpe18uJHQoYil9fX07Xy54TT1mdW5jdGlvbigpe2lmKF8uWHooKSl7dmFyIGE9Xy5HaChgJHtfLlZqKCl9Ojp5dC1tYXctcGxheWVyYCk7aWYoYSlyZXR1cm4gbmV3IF8ud00oYSl9fTsKeU09ZnVuY3Rpb24oYSxiKXtmb3IoO2EubGVuZ3RoPmI7KWEucG9wKCl9O3pNPWZ1bmN0aW9uKGEpe2E9QXJyYXkoYSk7eU0oYSwwKTtyZXR1cm4gYX07RGdhPWZ1bmN0aW9uKGEsYixjLGQpeyhkW2JdfHxkW18uUkEuZGVmYXVsdF0pKGEsYixjKX07QU09ZnVuY3Rpb24oYSxiLGMpe2I9bmV3IEVnYShiLGMpO3JldHVybiBhLl9faW5jcmVtZW50YWxET01EYXRhPWJ9OwpCTT1mdW5jdGlvbihhLGIpe2lmKGEuX19pbmNyZW1lbnRhbERPTURhdGEpcmV0dXJuIGEuX19pbmNyZW1lbnRhbERPTURhdGE7dmFyIGM9YS5ub2RlVHlwZT09PTE/YS5sb2NhbE5hbWU6YS5ub2RlTmFtZSxkPWEubm9kZVR5cGU9PT0xP2EuZ2V0QXR0cmlidXRlKCJrZXkiKTpudWxsO2I9QU0oYSxjLGEubm9kZVR5cGU9PT0xP2R8fGI6bnVsbCk7aWYoYS5ub2RlVHlwZT09PTEmJihjPWEuYXR0cmlidXRlcyxkPWMubGVuZ3RoKSl7YT1iLmp8fChiLmo9ek0oZCoyKSk7Zm9yKGxldCBlPTAsZj0wO2U8ZDtlKz0xLGYrPTIpe2xldCBoPWNbZV0saz1oLnZhbHVlO2FbZl09aC5uYW1lO2FbZisxXT1rfX1yZXR1cm4gYn07Q009ZnVuY3Rpb24oKXtfLllBPV8uVkEoKX07CkRNPWZ1bmN0aW9uKGEsYil7Q00oKTt2YXIgYzthOntpZihjPV8uWUEpe2Rve2lmKGM9PT1udWxsKWJyZWFrO3ZhciBkPWMsZT1hLGY9YjtsZXQgaD1CTShkLGYpO2lmKCgwLF8uYkIpKGQsZSxoLm8sZixoLmtleSkpYnJlYWsgYX13aGlsZShiJiYoYz1jLm5leHRTaWJsaW5nKSl9Yz1udWxsfWN8fChhPT09IiN0ZXh0Ij8oYT1fLlpBLmNyZWF0ZVRleHROb2RlKCIiKSxBTShhLCIjdGV4dCIsbnVsbCkpOihjPV8uWkEsZD1fLlVBLHR5cGVvZiBhPT09ImZ1bmN0aW9uIj9jPW5ldyBhOmM9KGQ9YT09PSJzdmciPyJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6YT09PSJtYXRoIj8iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI6ZD09bnVsbHx8Qk0oZCkubz09PSJmb3JlaWduT2JqZWN0Ij9udWxsOmQubmFtZXNwYWNlVVJJKT9jLmNyZWF0ZUVsZW1lbnROUyhkLGEpOmMuY3JlYXRlRWxlbWVudChhKSxBTShjLGEsYiksYT1jKSxfLldBLmNyZWF0ZWQucHVzaChhKSxjPQphKTthPWM7aWYoYSE9PV8uWUEpe2lmKF8uJEEuaW5kZXhPZihhKT49MClmb3IoYj1fLlVBLGM9YS5uZXh0U2libGluZyxkPV8uWUE7ZCE9PW51bGwmJmQhPT1hOyllPWQubmV4dFNpYmxpbmcsYi5pbnNlcnRCZWZvcmUoZCxjKSxkPWU7ZWxzZSBfLlVBLmluc2VydEJlZm9yZShhLF8uWUEpO18uWUE9YX19O0VNPWZ1bmN0aW9uKGEsYil7RE0oYSxiKTtfLlVBPV8uWUE7Xy5ZQT1udWxsO3JldHVybiBfLlVBfTtHTT1mdW5jdGlvbihhLGIsYyxkKXtGTS5wdXNoKERnYSk7Rk0ucHVzaChhKTtGTS5wdXNoKGIpO0ZNLnB1c2goYyk7Rk0ucHVzaChkKX07CkZnYT1mdW5jdGlvbihhPV8uSEMpe3ZhciBiPV8uVUEsYz1CTShiKSxkPV8uYUI7Yz1jLmp8fChjLmo9ek0oZC5sZW5ndGgpKTtmb3IodmFyIGU9IWMubGVuZ3RofHwhMSxmPTA7ZjxkLmxlbmd0aDtmKz0yKXt2YXIgaD1kW2ZdO2lmKGUpY1tmXT1oO2Vsc2UgaWYoY1tmXSE9PWgpYnJlYWs7bGV0IGw9ZFtmKzFdO2lmKGV8fGNbZisxXSE9PWwpY1tmKzFdPWwsR00oYixoLGwsYSl9aWYoZjxkLmxlbmd0aHx8ZjxjLmxlbmd0aCl7Zm9yKGY9ZT1mO2Y8Yy5sZW5ndGg7Zis9MilfLkpDW2NbZl1dPWNbZisxXTtmb3IoZj1lO2Y8ZC5sZW5ndGg7Zis9MillPWRbZl0saD1kW2YrMV0sXy5KQ1tlXSE9PWgmJkdNKGIsZSxoLGEpLGNbZl09ZSxjW2YrMV09aCxkZWxldGUgXy5KQ1tlXTt5TShjLGQubGVuZ3RoKTtmb3IodmFyIGsgaW4gXy5KQylHTShiLGssdm9pZCAwLGEpLGRlbGV0ZSBfLkpDW2tdfWE9SE07SE09Yj1GTS5sZW5ndGg7Zm9yKGs9YTtrPGI7ays9NSkoMCxGTVtrXSkoRk1baysxXSwKRk1baysyXSxGTVtrKzNdLEZNW2srNF0pO0hNPWE7eU0oRk0sYSk7eU0oZCwwKX07SU09ZnVuY3Rpb24oYSwuLi5iKXtETSgiI3RleHQiLG51bGwpO2I9Xy5ZQTt2YXIgYz1CTShiKTtpZihjLnRleHQhPT1hKXtjPWMudGV4dD1hO2ZvcihsZXQgZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKz0xKWM9KDAsYXJndW1lbnRzW2RdKShjKTtiLmRhdGEhPT1jJiYoYi5kYXRhPWMpfX07CkdnYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT1bXTthLl9kaXNwb3NlRWZmZWN0cz1fLnV2KCgpPT57Xy50digoKT0+e3ZhciBmPWMoKTtpZihmPT09bnVsbHx8Zj09PXZvaWQgMClmPSIiO2lmKF8ucUIoZil8fGY9PT1udWxsKWQ/PyhkPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSksZC5wYXJlbnROb2RlIT09YSYmKGQuX2lzU2lnbmFsVGV4dE5vZGU9ITAsYS5pbnNlcnRCZWZvcmUoZCxiKSksZC50ZXh0Q29udGVudD1TdHJpbmcoZik7ZWxzZSBpZihfLm9CKGYpKXtsZXQgaD1lLmxlbmd0aD4wP2VbZS5sZW5ndGgtMV0ubmV4dFNpYmxpbmc6Yjtmb3IobGV0IGsgb2YgZSlhLnJlbW92ZUNoaWxkKGspO2Y9Xy5wQihmKTtlPUFycmF5LmZyb20oZi5jaGlsZE5vZGVzKTtmb3IobGV0IGsgb2YgZSlhLmluc2VydEJlZm9yZShrLGgpfWVsc2UgdGhyb3cgRXJyb3IoIkFiYCIrKF8uTXU/Lm5hbWU/PyJ1bmtub3duIikrImAiK3R5cGVvZiBmKTt9LCJWdkRnQyIpfSxfLkt1LnJpfHwhIV8uWnQpfTsKXy5LTT1mdW5jdGlvbihhKXtpZighXy5KTSlyZXR1cm4hMTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMoXy5KTSkpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSlyZXR1cm4hMDtyZXR1cm4hMX07TE09ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGgpe2lmKGEubGVuZ3RoPT09MSlyZXR1cm4gYVswXTt2YXIgYj17fTtfLndGKGIsXy5TRCx7Y29tbWFuZHM6YX0pO3JldHVybiBifX07SGdhPWZ1bmN0aW9uKGEpe3ZhciBiPUFycmF5LmlzQXJyYXkoYS5pdGVtcyk/YS5pdGVtczpBcnJheS5mcm9tKGEuaXRlbXMpO3JldHVybiBfLmZHKGIsYS5jaGlsZHJlbil9O01NPWZ1bmN0aW9uKGEpe2E9Xy5uSihhKTthLmxlbmd0aD4wJiZhWzBdLmZvY3VzKCl9O18uTk09ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWU9PnthLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixkKTtyZXR1cm4gYy5jYWxsKGEsZSl9O2EuYWRkRXZlbnRMaXN0ZW5lcihiLGQsdm9pZCAwKX07Cl8uUE09ZnVuY3Rpb24oYSl7T018fChPTT1fLkNkKCJBIikpO09NLmhyZWYhPT1hJiZfLkx5KE9NLGEpO3JldHVybiBPTX07Uk09ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoUU1bYV0pcmV0dXJuIFFNW2FdO3ZhciBiPV8uUE0oYSkucGF0aG5hbWU7UU1bYV09Yi5zdGFydHNXaXRoKCIvIik/YjoiLyIrYjtyZXR1cm4gUU1bYV19OwpTTT1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSIvIj8iaG9tZSI6YS5zdGFydHNXaXRoKCIvcmVzdWx0cyIpPyJzZWFyY2giOmEuc3RhcnRzV2l0aCgiL3dhdGNoIik/IndhdGNoIjphLnN0YXJ0c1dpdGgoIi9zaG9ydHMiKT8ic2hvcnRzIjphLnN0YXJ0c1dpdGgoIi9oYXNodGFnIik/Imhhc2h0YWciOmEuc3RhcnRzV2l0aCgiL2NyZWF0ZV9jaGFubmVsIik/ImNyZWF0ZV9jaGFubmVsIjphLnN0YXJ0c1dpdGgoIi9wb3N0LyIpPyJwb3N0IjphLnN0YXJ0c1dpdGgoIi9AIil8fGEuc3RhcnRzV2l0aCgiL3VzZXIvIil8fGEuc3RhcnRzV2l0aCgiL2NoYW5uZWwvIik/ImNoYW5uZWwiOmEuc3RhcnRzV2l0aCgiL2V4cGVyaW1lbnRzIik/ImV4cGVyaW1lbnRzIjphLnN0YXJ0c1dpdGgoIi9zcG9uc29yX2NoYW5uZWwiKT8ic3BvbnNvcnNoaXAiOmEuc3RhcnRzV2l0aCgiL3NlbGVjdF9zaXRlIik/InNldHRpbmdzIjphLnN0YXJ0c1dpdGgoIi9sb2NhdGUiKT8ibG9jYXRlIjphLnN0YXJ0c1dpdGgoIi9yZWRlZW0iKT8KInJlZGVlbSI6YS5zdGFydHNXaXRoKCIvbXVzaWNwcmVtaXVtIil8fGEuc3RhcnRzV2l0aCgiL3ByZW1pdW0iKXx8YS5zdGFydHNXaXRoKCIvcmVkIik/InByZW1pdW0iOmEuc3RhcnRzV2l0aCgiL3BhaWRfbWVtYmVyc2hpcHMiKT8icGFpZF9tZW1iZXJzaGlwcyI6YS5zdGFydHNXaXRoKCIvb29wcyIpPyJvb3BzIjphLnN0YXJ0c1dpdGgoIi9jbGlwIik/ImNsaXAiOl8uWEQ/LnJlc3BvbnNlPy5wYWdlPT09IjQwNCI/IjQwNCI6YS5zdGFydHNXaXRoKCIvZmVlZC9oaXN0b3J5Iik/Imhpc3RvcnkiOmEuc3RhcnRzV2l0aCgiL2ZlZWQvbGlicmFyeSIpPyJsaWJyYXJ5IjphLnN0YXJ0c1dpdGgoIi9mZWVkL3N1YnNjcmlwdGlvbnMiKT8ic3Vic2NyaXB0aW9ucyI6YS5zdGFydHNXaXRoKCIvZmVlZC90cmVuZGluZyIpPyJ0cmVuZGluZyI6YS5zdGFydHNXaXRoKCIvZmVlZC9uZXdzX2Rlc3RpbmF0aW9uIik/Im5ld3MiOmEuc3RhcnRzV2l0aCgiL3BsYXlsaXN0Iik/InBsYXlsaXN0IjphLnN0YXJ0c1dpdGgoIi9taW5vcl9tb21lbnQiKT8KIm1pbm9yX21vbWVudCI6YS5zdGFydHNXaXRoKCIvcGxheWFibGUvIil8fGEubWF0Y2goIl4vcGxheWFibGVzLyg/IXNhdmVkKS4iKT8ibWluaV9hcHAiOmEuc3RhcnRzV2l0aCgiL3BsYXlhYmxlcyIpPyJwbGF5YWJsZXMiOmEuc3RhcnRzV2l0aCgiL2NyZWF0ZS9saXZlL2pvaW4iKT8ib3Blbl9pbl9hcHAiOmEuc3RhcnRzV2l0aCgiL2ZlZWQvZXhwbG9yZSIpPyJleHBsb3JlIjoiYnJvd3NlIn07ClRNPWZ1bmN0aW9uKCl7dmFyIGE9Xy5YRD8ucmVzcG9uc2UsYj1hPy5lbmRwb2ludDtpZighYilyZXR1cm4gYT8ucGFnZT09PSJ3YXRjaCI/IndhdGNoIjpTTShSTSh3aW5kb3cubG9jYXRpb24uaHJlZikpO2E9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ud2ViUGFnZVR5cGU7dmFyIGM9ITE7aWYoYSYmIUlnYS5pbmNsdWRlcyhhKSlzd2l0Y2goYSl7Y2FzZSAiV0VCX1BBR0VfVFlQRV9TRUFSQ0giOnJldHVybiJzZWFyY2giO2Nhc2UgIldFQl9QQUdFX1RZUEVfU0hPUlRTIjpyZXR1cm4ic2hvcnRzIjtjYXNlICJXRUJfUEFHRV9UWVBFX0NIQU5ORUwiOnJldHVybiJjaGFubmVsIjtjYXNlICJXRUJfUEFHRV9UWVBFX1NFVFRJTkdTIjpyZXR1cm4ic2V0dGluZ3MiO2Nhc2UgIldFQl9QQUdFX1RZUEVfUExBWUxJU1QiOnJldHVybiJwbGF5bGlzdCI7Y2FzZSAiV0VCX1BBR0VfVFlQRV9PUEVOX0lOX0FQUCI6cmV0dXJuIm9wZW5faW5fYXBwIjtjYXNlICJXRUJfUEFHRV9UWVBFX01JTklfQVBQIjpyZXR1cm4ibWluaV9hcHAiOwpjYXNlICJXRUJfUEFHRV9UWVBFX1dBVENIIjpyZXR1cm4gXy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8udXJsJiZSTShfLkIoYi5jb21tYW5kTWV0YWRhdGEsXy56dykudXJsKS5zdGFydHNXaXRoKCIvY2xpcCIpPyJjbGlwIjoid2F0Y2giO2Nhc2UgIldFQl9QQUdFX1RZUEVfQlJPV1NFIjpyZXR1cm4oYj1fLkIoYixfLmNFKT8uYnJvd3NlSWQpP0pnYVtiXXx8ImJyb3dzZSI6ImJyb3dzZSI7ZGVmYXVsdDpjPSEwfWlmKF8uQihiLF8uRWVhKXx8Xy5CKGIsXy5EZWEpKXJldHVybiJzcG9uc29yc2hpcCI7dmFyIGQ9Uk0od2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKGQuc3RhcnRzV2l0aCgiL2V4cGVyaW1lbnRzIikpcmV0dXJuImV4cGVyaW1lbnRzIjtpZihkLnN0YXJ0c1dpdGgoIi9jcmVhdGVfY2hhbm5lbCIpKXJldHVybiJjcmVhdGVfY2hhbm5lbCI7aWYoXy5CKGIsXy5WRCkmJmQuc3RhcnRzV2l0aCgiL3Nob3J0cyIpKXJldHVybiJzaG9ydHMiO2lmKF8uQihiLF8uVkQpJiYKZC5zdGFydHNXaXRoKCIvd2F0Y2giKSlyZXR1cm4id2F0Y2giO2MmJihiPW5ldyBfLlhqKCJVbnN1cHBvcnRlZCBtV2ViIHBhZ2UgdHlwZSIse3BhdGhuYW1lOmQsd2ViUGFnZVR5cGU6YX0pLF8uR3AoYikpO3JldHVybiJicm93c2UifTtfLlVNPWZ1bmN0aW9uKGEpe2E/LmhyZWY/YT0oYT1hLmhyZWYpP1NNKFJNKGE/YTp3aW5kb3cubG9jYXRpb24uaHJlZikpOlRNKCk6YT1hPy5wYWdlVHlwZTtyZXR1cm4gYXx8VE0oKX07Xy5WTT1mdW5jdGlvbihhKXtyZXR1cm4gXy5VTShhKT09PSJ3YXRjaCJ9O18uV009ZnVuY3Rpb24oKXtyZXR1cm4gXy5VTSgpPT09InNob3J0cyJ9O18uWE09ZnVuY3Rpb24oYSxiKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoYSx7ZGV0YWlsOmJ9KSl9OwpfLlpNPWZ1bmN0aW9uKCl7Xy5ZTSYmXy5IcChuZXcgXy5YaihgVW5leHBlY3RlZCBjYWxsIHRvIHJlcXVlc3RCYWNrTmF2aWdhdGlvbiwgZnJhZ21lbnQ6ICR7d2luZG93LmxvY2F0aW9uLmhhc2h9YCkpO18uRko9bmV3IF8uQmYoYT0+e2Z1bmN0aW9uIGIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGIpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKTthKCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYil9KTtfLk5NKHdpbmRvdywicG9wc3RhdGUiLCgpPT57c2V0VGltZW91dCgoKT0+e30pfSk7aGlzdG9yeS5iYWNrKCk7cmV0dXJuIF8uRkp9OwpfLiRNPWZ1bmN0aW9uKGEsYj0hMSl7aWYoXy5ZTSl7dmFyIGM9d2luZG93LmxvY2F0aW9uO2E9Xy5kYihgIyR7YX1gKTthIT09dm9pZCAwJiZjLnJlcGxhY2UoYSl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaGFzaD1hO2J8fF8ueCgibXdlYl9lbmFibGVfa2V0b19jb250ZW50Iil8fF8uWE0oInVwZGF0ZXVpIil9O18uYU49ZnVuY3Rpb24oYSl7aWYoYSYmYS5zaW1wbGVUZXh0KXJldHVybiBhLnNpbXBsZVRleHQ7dmFyIGI9IiI7aWYoYSYmYS5ydW5zKWZvcihsZXQgYz0wO2M8YS5ydW5zLmxlbmd0aDtjKyspYS5ydW5zW2NdLnRleHQmJihiKz1hLnJ1bnNbY10udGV4dCk7cmV0dXJuIGJ9O2JOPWZ1bmN0aW9uKGEpe3JldHVybiBfLmtBKHt0eXBlOiJTRVRfSVNfQk9UVE9NX1NIRUVUX09QRU5fU1RBVEUiLHBheWxvYWQ6YX0pfTsKS2dhPWZ1bmN0aW9uKGEpe2lmKGEmJmEuZm9jdXMpaWYoYSE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpYS5mb2N1cygpO2Vsc2UgcmV0dXJuIGNOKGFzeW5jKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtyZXR1cm4gY04oKCk9PnthLmZvY3VzKCl9KX0pfTtfLmROPWZ1bmN0aW9uKGEpe3ZhciBiPTU7c2V0VGltZW91dChhc3luYygpPT57Zm9yKHZhciBjPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1jfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZG9jdW1lbnQuYm9keSkmJmI+PTAmJmE7KXthd2FpdCBLZ2EoYSk7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEpYnJlYWs7YT1hLnBhcmVudEVsZW1lbnQ7LS1ifX0sMTUpfTtjTj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoYj0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2IoYSgpKX0pfSl9OwplTj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYS5jaGlsZHJlbj09PSJmdW5jdGlvbiIpcmV0dXJuIGEuY2hpbGRyZW4oKSxudWxsO2ZvcihsZXQgYiBvZiBhLmNoaWxkcmVuKWIoKTtyZXR1cm4gbnVsbH07Xy5mTj1mdW5jdGlvbihhLGIpe18uUnUoKCk9PkxnYShhLGIpKX07TGdhPWZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDtfLmd2Kys7dHJ5e2M9KDAsXy5JQykoYSwoKT0+e18uZ04oYil9KSxfLklBKCExKX1jYXRjaChkKXt0aHJvdyBfLklBKCEwKSxkO31yZXR1cm4gYz09PW51bGw/YTpjfTsKXy5nTj1mdW5jdGlvbihhKXtpZihhIT09dm9pZCAwJiZhIT09bnVsbClpZihhIGluc3RhbmNlb2YgXy5kQylmb3IodmFyIGI9Xy5VQTtfLlZBKCkhPW51bGwmJl8ubkMgaW4gXy5WQSgpJiZiLmNvbnRhaW5zKF8uVkEoKSk7KUNNKCk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYyBvZiBhKV8uZ04oYyk7ZWxzZSBpZihhIGluc3RhbmNlb2YgXy5TYSlJTShhLnRvU3RyaW5nKCkpO2Vsc2UgaWYoXy5pQihhKSl7aWYoXy5WQSgpIT09YSl0aHJvdyBFcnJvcigiRGJgIithLnRhZ05hbWUrImAiKyhfLk11Py5uYW1lPz8idW5rbm93biIpKTtDTSgpfWVsc2UgaWYoYz1hLGMhPW51bGwmJmMuR2k9PT1fLm1CfHxjIGluc3RhbmNlb2YgXy5mYnx8Xy5MQSgpKGMpKXtiPV8ucEIoYSk7Yj1BcnJheS5mcm9tKGIuY2hpbGROb2Rlcyk7Zm9yKHZhciBkIG9mIGIpXy5VQS5hcHBlbmRDaGlsZChkKSxDTSgpfWVsc2UgaWYoXy5YYShhKSYmKGE9YS50b1N0cmluZygpKSxkPXR5cGVvZiBhLApkPT09ImJvb2xlYW4ifHxkPT09Im51bWJlciJ8fGQ9PT0ic3RyaW5nIilJTShhKTtlbHNlIGlmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIiliPV8uVUEsKGQ9Xy5WQSgpKSYmKGQuX2lzU2lnbmFsVGV4dE5vZGV8fGQuX2lzU2FmZU9yU2FuaXRpemVkSHRtbE5vZGUpfHxHZ2EoYixkLGEpLENNKCk7ZWxzZSBpZihhLnR5cGU9PT1IZ2EpXy5nTihhLnR5cGUoT2JqZWN0LmFzc2lnbih7fSxhLnByb3BzLHtjaGlsZHJlbjphLmNoaWxkcmVuWzBdfSkpKTtlbHNle2lmKHR5cGVvZiBhLnR5cGU9PT0ic3RyaW5nIil7YTp7YS5jZHx8RU0oYS50eXBlLGEucHJvcHMuaWRvbUtleSk7Yz1fLlVBO2ZvcihiIGluIGEucHJvcHMpaWYoYS5wcm9wc1tiXSE9PV8uS2JhKXtkPWEucHJvcHNbYl07bGV0IGU9Xy5hQjtlLnB1c2goYik7ZS5wdXNoKGQpfUZnYShfLkt1LmF0dHJpYnV0ZXMpO18uakMoYyxhLnByb3BzLCEwKTtpZigoYS5wcm9wcy5za2lwfHxhLnByb3BzLnNraXBjaGlsZHJlbikmJl8uVUEuaGFzQ2hpbGROb2RlcygpKV8uWUE9Cl8uVUEubGFzdENoaWxkO2Vsc2V7aWYoYS50eXBlPT09InN0eWxlIiYmXy5SQihhLmNoaWxkcmVuKT09PW51bGwpe18uWUE9Xy5VQS5sYXN0Q2hpbGQ7Yj12b2lkIDA7YnJlYWsgYX1fLmdOKGEuY2hpbGRyZW4pfV8uWEEoKTtfLllBPV8uVUE7Xy5VQT1fLlVBLnBhcmVudE5vZGU7YS5jZCYmKGEuY2Q9ITEpO18uQUIoYyxhLnByb3BzKTtiPWN9cmV0dXJuIGJ9aWYoYS50eXBlPT09Xy5JQilfLmdOKGEuY2hpbGRyZW4pO2Vsc2UgaWYoIU1nYShhKSl7Yj1hO3RyeXtOZ2EoYil9Y2F0Y2goZSl7Xy5LdS5oYW5kbGVFcnJvcj8uKC4uLl8uSkEoZSxiLnR5cGU/LlpjKSl9Yi5jZCYmKF8uWEEoKSxfLllBPV8uVUEsXy5VQT1fLlVBLnBhcmVudE5vZGUsYi5jZD0hMSl9fX07T2dhPWZ1bmN0aW9uKGEsYil7dmFyIGM7YS5wcm90b3R5cGU/Lm9jPT09dm9pZCAwP2M9bmV3IF8ubUMoYixhKTpjPW5ldyBhKGIpO2Muaj1hO2Mud289e25leHRTdGF0ZTpjLnN0YXRlLE14OiExfTtyZXR1cm4gY307Ck5nYT1mdW5jdGlvbihhKXt2YXIgYj1hLnR5cGUsYz1iLlpjO2lmKGI9PT1lTilhLnByb3BzLmNoaWxkcmVuPWEuY2hpbGRyZW4sYihhLnByb3BzKTtlbHNle2EuY2hpbGRyZW4ubGVuZ3RoPjAmJihhLnByb3BzLmNoaWxkcmVuPWEuY2hpbGRyZW4pO3ZhciBkOyhkPWEucHJvcHMpLmlkb21LZXl8fChkLmlkb21LZXk9Yik7dmFyIGU9ITE7aWYoYyl7dmFyIGY9RU0oYyxhLnByb3BzLmlkb21LZXkpO2EuY2Q9ITA7dmFyIGg9Zi5fX2luc3RhbmNlfWh8fChlPSEwLGg9T2dhKGIsYS5wcm9wcyksaC5wcm9wcz1udWxsLGYmJihmLl9faW5zdGFuY2U9aCxoLmVsPWYpKTsoe25leHRTdGF0ZTpjfT1oLndvPz97bmV4dFN0YXRlOmguc3RhdGUsTXg6ITF9KTtoLndvPXZvaWQgMDtiLmx3JiYoYz1iLmx3KGEucHJvcHMsYykpO3ZhciBrPWgucHJvcHMsbD1oLnN0YXRlO2gucHJvcHM9YS5wcm9wcztoLnN0YXRlPWM7Yz0oKT0+e3ZhciBtPWg7Xy5idy5TbyhtKTt2YXIgbj1tLm9jKG0ucHJvcHMpOwpuPyhtLnByb3BzLmlkb21LZXkmJihuLnByb3BzLmlkb21LZXk9bS5wcm9wcy5pZG9tS2V5KSxtPW4pOm09dm9pZCAwO2lmKG49bSluLmNkPWEuY2QsbT1fLmdOKG4pLGEuY2Q9bi5jZCxiLlpjfHwobT8oYi5aYz1tLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxtLl9faW5zdGFuY2U9aCxoLmVsPW0pOmguWmY/Lmxlbmd0aCYmXy5LdS5oYW5kbGVFcnJvcj8uKC4uLl8uSkEoRXJyb3IoIkNkIikpKSk7ZT8oaC5KaSgpLF8uYncuSmkoaCkpOihoLktpKGssbCksXy5idy5LaShoLGssYS5wcm9wcykpO2guR2YoKTtfLmJ3LkdmKGgpfTsoZD1oLm8pP18uR0EoZCxjLGgucHJvcHMuZGVidWdJbnN0YW5jZSk6YygpfX07Ck1nYT1mdW5jdGlvbihhKXt2YXIgYj1hLnR5cGU7aWYoYi5wcm90b3R5cGU/Lm9jIT09dm9pZCAwfHxiPT09ZU58fGIuY29tcG9uZW50VHlwZT09PV8uS3YpcmV0dXJuITE7YS5wcm9wcy5jaGlsZHJlbj1hLmNoaWxkcmVuLmxlbmd0aD4xP2EuY2hpbGRyZW46YS5jaGlsZHJlblswXTt2YXIgYz1hLnByb3BzLmlkb21LZXk/P2EudHlwZTtpZihfLlZBKCkmJl8uVkEoKVtfLldCXT8ua2V5PT09Yyl7Yj1fLlZBKCk7Yz1iW18uV0JdO2lmKCFjKXRocm93IEVycm9yKCJDYmAiK2IudGFnTmFtZSk7Yy5xQj8uKGEucHJvcHMpO1BnYShjKTtyZXR1cm4hMH1pZihRZ2EuaGFzKGIubmFtZSkpdGhyb3cgRXJyb3IoIkJiYCIrYi5uYW1lKyJgIisoXy5NdT8ubmFtZT8/InVua25vd24iKSk7YS5wcm9wcy5qbj0hMDsoYj1fLkdBKGEudHlwZSwoKT0+Xy5nQyhhLnR5cGUsYS5wcm9wcyksYS5wcm9wcy5kZWJ1Z0luc3RhbmNlKSkmJlJnYShiKTtyZXR1cm4hMH07CmhOPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8Xy5iQyhhKS5sZW5ndGg7YisrKUNNKCl9O1BnYT1mdW5jdGlvbihhKXt2YXIgYj1fLlZBKClbXy5XQl0/LnluO2lmKGIpaE4oYik7ZWxzZSBmb3IobGV0IGM9MDtjPGEuVXE7YysrKShiPV8uVkEoKVtfLldCXT8ueW4pP2hOKGIpOkNNKCl9O1JnYT1mdW5jdGlvbihhKXthPV8uR0IoYSk7YT1BcnJheS5pc0FycmF5KGEpP2E6W2FdO2ZvcihsZXQgYiBvZiBhKV8uVUEuaW5zZXJ0QmVmb3JlKGIsXy5WQSgpKSxDTSgpfTtpTj1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57YSYmXy5kRShhKTtiJiZiKGMpfX07ak49ZnVuY3Rpb24oYSl7dmFyIGI9MjE7aWYoIWEpcmV0dXJuIGI7Yis9YS5oZWFkZXJUaXRsZT8yNzowO2IrPWEuaGVhZGVyVGl0bGUmJmEuaWg/NDowO3JldHVybiBiKz1hLmhlYWRlclRpdGxlJiZhLmhlYWRlclN1YnRpdGxlPzE2OjB9OwprTj1mdW5jdGlvbihhKXt2YXIgYj0wO2lmKCFhKXJldHVybiBiO2IrPWEuVWZ8fGEuVmY/NDg6MDtiKz1hLlBmfHxhLk1mPzMwOjA7cmV0dXJuIGIrPWEuVWZ8fGEuVmZ8fCFhLlBmJiYhYS5NZj8wOjEyfTsKU2dhPWZ1bmN0aW9uKGEse2tleTpiLHBheWxvYWQ6Y30pe2lmKGI9PT0iRHJhZyBTdGFydCIpcmV0dXJuey4uLmEsQ2M6ITEsVmU6Yy5jbGllbnRZfTtpZihiPT09IkRyYWcgTW92ZSIpe2I9TWF0aC5taW4oYy5UcCxjLmhxW2MuSGldKyhjLmZxPz9qTihjLmhlYWRlcikpLShjLk5wPz9rTihjLmZvb3RlcikpKTtsZXQgZD1NYXRoLm1heChjLm1wPy0xKihhLlZlLTI0KTowLGMuY2xpZW50WS1hLlZlKTtyZXR1cm57Li4uYSxPYjpkLEZjOk1hdGgubWluKGIsTWF0aC5tYXgoMCwoYS5QYz9iOmMucXApLWQpKX19cmV0dXJuIGI9PT0iU25hcCBUbyBGdWxsIFNjcmVlbiI/ey4uLmEsQ2M6ITEsT2I6MCxQYzohMCxGYzpjLm1heEhlaWdodH06Yj09PSJTbmFwIFRvIE5ldXRyYWwgUG9zaXRpb24iP3suLi5hLENjOiExLE9iOjAsUGM6ITEsRmM6Yy5tYXhIZWlnaHR9OmI9PT0iQ2xvc2UgU2hlZXQiP3suLi5hLENjOiEwLE9iOmMuY2xpZW50SGVpZ2h0LFBjOiExLEZjOmMubWF4SGVpZ2h0fTphfTsKVGdhPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLnRoLGM9YTtyZXR1cm57c3Vic2NyaWJlKGQpe2Iuc3Vic2NyaWJlKCJjaGFuZ2VkIixkKX0sZGlzcGF0Y2goZCxlKXtjPVNnYShjLHtrZXk6ZCxwYXlsb2FkOmV9KTtiLnB1Ymxpc2goImNoYW5nZWQiLGMpfX19O2xOPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57Yi5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm4gYT8uKGIpfX07VWdhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbkRlZmF1bHQiO2Nhc2UgMTpyZXR1cm4ieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uVHJhaWxpbmdQYWlyIjtjYXNlIDI6cmV0dXJuInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvblNwbGl0UGFpciI7Y2FzZSAzOnJldHVybiJ5dFNwZWNCb3R0b21TaGVldExheW91dFByaW1hcnlCdXR0b25QcmltYXJ5U3BsaXRQYWlyIn19O21OPWZ1bmN0aW9uKCl7Xy55KCkucmVzb2x2ZShfLmNMKS5KZSgpfTsKbk49ZnVuY3Rpb24oYSl7cmV0dXJue2hlYWRlclRpdGxlOmEuaGVhZGVyVGl0bGU/LigpLGhlYWRlclN1YnRpdGxlOmEuaGVhZGVyU3VidGl0bGU/LigpLFdmOmEuV2YsTmY6YS5OZixPZjphLk9mLFJlOmEuUmU/LigpLE1mOmEuTWY/LigpLFBmOmEuUGY/LigpLEhhOmEuSGE/LigpLHBmOmEucGY/LigpLEdrOmEuR2s/LigpLEdoOmEuR2gsZm9jdXNPbkNsb3NlOmEuZm9jdXNPbkNsb3NlPy4oKSxpc0Rpc2FibGVkOmEuaXNEaXNhYmxlZD8uKCksZGlzYWJsZWRDb21tYW5kOmEuZGlzYWJsZWRDb21tYW5kPy4oKSxVZTphLlVlLEdiOmEuR2IsU2U6YS5TZSxqaDphLmpoKCksWGk6YS5YaSgpLGhoOmEuaGgoKSxVZjphLlVmKCksVmY6YS5WZigpLGloOmEuaWgoKX19O3BOPWZ1bmN0aW9uKGEpe29OfHwob049Xy54TSgpKTtvTj8uc2V0KCJyZWNlbnQtY3VzdG9tLXNwZWVkIixTdHJpbmcoYSoxMDApKX07VmdhPWZ1bmN0aW9uKGEpe2E9YS50YXJnZXQudmFsdWVBc051bWJlcjtfLk1IKCk/LnNldFBsYXliYWNrUmF0ZShhKX07CldnYT1mdW5jdGlvbihhKXtwTihhLnRhcmdldC52YWx1ZUFzTnVtYmVyKX07WGdhPWZ1bmN0aW9uKGEpe18uTUgoKT8uc2V0UGxheWJhY2tSYXRlKGEpO3BOKGEpfTtxTj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm57fTt2YXIgYj1hLmZvcmVncm91bmRUaXRsZUNvbG9yLGM9YS5iYWNrZ3JvdW5kQ29sb3I7YT1hLmJvcmRlckNvbG9yO3ZhciBkPSJ0ZXh0IjthP2Q9Im91dGxpbmUiOmMmJihkPSJmaWxsZWQiKTtyZXR1cm57dHlwZTpkLGN1c3RvbUNvbG9yczp7Y29sb3I6Yj9fLk5EKGIpOnZvaWQgMCxiYWNrZ3JvdW5kQ29sb3I6Yz9fLk5EKGMpOnZvaWQgMCxib3JkZXJDb2xvcjphP18uTkQoYSk6dm9pZCAwfX19OwphaGE9ZnVuY3Rpb24oe3JlbmRlcmVyOmEsSW06Yix3QTpjLFNjOmQsZHc6ZSxRZjpmLEJsOmgsaXNTdWJzY3JpYmU6az0hMSxDSjpsPSExLG9MOm09ITF9KXt2YXIgbj1ZZ2EoYSk7ayYmKG4uc3R5bGU9Im1vbm8iLG4udHlwZT0iZmlsbGVkIik7ZT0hYS5pY29ufHwhZSYmYS50ZXh0P2EuaWNvbj9hLmljb25Qb3NpdGlvbj09PSJCVVRUT05fSUNPTl9QT1NJVElPTl9UWVBFX1JJR0hUX09GX1RFWFQiPyJ0cmFpbGluZyI6ImxlYWRpbmciOnZvaWQgMDpmPyJpY29uLW9ubHkiOiJpY29uLW9ubHktNDAiO2U9PT0iaWNvbi1vbmx5LTQwIiYmKG4udHlwZT0idGV4dCIpO209ey4uLlpnYShhLG0pfTtsPSEhYS5pc1NlbGVjdGVkfHwhXy54KCJ3ZWJfcHJvcGFnYXRlX2lzX3ByZXNzZWRfa2lsbHN3aXRjaCIpJiYhIWw7Zj1hLmlzU2VsZWN0ZWQhPT12b2lkIDA7aD1oPT09dm9pZCAwP2EuaXNEaXNhYmxlZDpoO2s9YS50ZXh0P18uQUYoYS50ZXh0KTp2b2lkIDA7dmFyIHA9KHA9YS5hY2Nlc3NpYmlsaXR5RGF0YT8uYWNjZXNzaWJpbGl0eURhdGE/LmxhYmVsfHwKYS5hY2Nlc3NpYmlsaXR5Py5sYWJlbCk/cDpfLmFOKGEudGV4dCk7Yj0kZ2EoYSxiLGMpO2M9ck4oYSk7Yz8ubGVuZ3RoPyhjPV8uYkUoe2lubmVydHViZUNvbW1hbmQ6TE0oYykscWQ6ITB9KSxjPWM/LmhyZWY/Yzp2b2lkIDApOmM9dm9pZCAwO3JldHVybnsuLi5uLC4uLm0saWNvblBvc2l0aW9uOmUsLi4uZCxmb2N1c2VkOiExLHRvZ2dsZWQ6bCx0b2dnbGVhYmxlOmYsZGlzYWJsZWQ6aCxXYTprLGFjY2Vzc2liaWxpdHlMYWJlbDpwLG9uVGFwOmIsdWM6YywuLi5xTihhLmNvbG9yRGF0YT8uYmFzaWNDb2xvclBhbGV0dGVEYXRhKSxvbmVPZmZDdXN0b21UZXh0V3JhcDphLm9uZU9mZkN1c3RvbVRleHRXcmFwfX07JGdhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e3ZhciBlPXJOKGEpO2IoZSxkKTtpZighYylmb3IobGV0IGYgb2YgZSlfLmRLKGYpfX07CnJOPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuY29tbWFuZCYmYi5wdXNoKGEuY29tbWFuZCk7YS5zZXJ2aWNlRW5kcG9pbnQmJmIucHVzaChhLnNlcnZpY2VFbmRwb2ludCk7YS5uYXZpZ2F0aW9uRW5kcG9pbnQmJmIucHVzaChhLm5hdmlnYXRpb25FbmRwb2ludCk7cmV0dXJuIGJ9O1pnYT1mdW5jdGlvbihhLGIpe2lmKGIpc3dpdGNoKGEuc2l6ZSl7Y2FzZSAiU0laRV9TTUFMTCI6cmV0dXJue3NpemU6IlMifTtjYXNlICJTSVpFX0xBUkdFIjpyZXR1cm57c2l6ZToiTCJ9O2Nhc2UgIlNJWkVfWExBUkdFIjpyZXR1cm57c2l6ZToiWEwifTtjYXNlICJTSVpFX1hTTUFMTCI6cmV0dXJue3NpemU6IlhTIn07ZGVmYXVsdDpyZXR1cm57c2l6ZToiTSJ9fXN3aXRjaChhLnN0eWxlKXtjYXNlICJTVFlMRV9DT01QQUNUX0dSQVkiOnJldHVybntzaXplOiJTIn07ZGVmYXVsdDpyZXR1cm57c2l6ZToiTSJ9fX07CllnYT1mdW5jdGlvbihhKXtzd2l0Y2goYS5zdHlsZSl7Y2FzZSAiU1RZTEVfVklTSUJMWV9ESVNBQkxFRCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImRpc2FibGVkIn07Y2FzZSAiU1RZTEVfUFJJTUFSWSI6Y2FzZSAiU1RZTEVfUEFZTUVOVCI6Y2FzZSAiU1RZTEVfQ0FMTF9UT19BQ1RJT05fRklMTEVEIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9DQUxMX1RPX0FDVElPTl9UT05BTCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9PVVRMSU5FIjpjYXNlICJTVFlMRV9TVUdHRVNUSVZFIjpjYXNlICJTVFlMRV9TVUdHRVNURURfQUNUSU9OIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIix0eXBlOiJvdXRsaW5lIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfQkxVRV9URVhUIjpjYXNlICJTVFlMRV9BTEVSVF9JTkZPIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIiwKdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfV0hJVEVfV0lUSF9CT1JERVIiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0xJR0hUX1RFWFQiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX01PTk9fRklMTEVEX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfTU9OT19UT05BTF9PVkVSTEFZIjpjYXNlICJTVFlMRV9EQVJLX09OX0JMQUNLIjpyZXR1cm57c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRvbmFsIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfT1ZFUkxBWV9QUk9URUNURUQiOnJldHVybntzdHlsZToib3ZlcmxheS1kYXJrIiwKdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9NT05PX0ZJTExFRCI6Y2FzZSAiU1RZTEVfREVTVFJVQ1RJVkUiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfREVGQVVMVCI6Y2FzZSAiU1RZTEVfQ09NUEFDVF9HUkFZIjpjYXNlICJTVFlMRV9NT05PX1RPTkFMIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRvbmFsIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfSU5BQ1RJVkVfT1VUTElORSI6Y2FzZSAiU1RZTEVfTU9OT19PVVRMSU5FIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6Im91dGxpbmUiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9CTFVFX1RFWFRfV0lUSF9JTlZFUlNFX1RIRU1FIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uLWludmVyc2UiLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9CUkFORF9HUkFESUVOVCI6cmV0dXJue3N0eWxlOiJicmFuZC1ncmFkaWVudCIsCnR5cGU6ImZpbGxlZCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0dFTkVSQVRJVkVfR1JBRElFTlQiOnJldHVybntzdHlsZToiZ2VuLWFpLWdyYWRpZW50Iix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtkZWZhdWx0OnJldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9fX07CmRoYT1mdW5jdGlvbih7cmVuZGVyZXI6YSxlbGVtZW50OmIsdG9nZ2xlZDpjLEltOmQsUnU6ZSxTYzpmLGR3OmgsUWY6ayxCbDpsLG5MOm0sYWI6bn0pe3ZhciBwPWJoYShhLGMpO2g9IWEuZGVmYXVsdEljb258fCFoJiZhLmRlZmF1bHRUZXh0P2EuZGVmYXVsdEljb24/ImxlYWRpbmciOnZvaWQgMDprPyJpY29uLW9ubHkiOiJpY29uLW9ubHktNDAiO2g9PT0iaWNvbi1vbmx5LTQwIiYmKHAudHlwZT0idGV4dCIpO2E6c3dpdGNoKGEuc3R5bGU/LnN0eWxlVHlwZSl7Y2FzZSAiU1RZTEVfQ09NUEFDVF9HUkFZIjprPXtzaXplOiJTIn07YnJlYWsgYTtkZWZhdWx0Oms9e3NpemU6Ik0ifX1rPXsuLi5rfTt2YXIgcj0ocj1jJiZhLnRvZ2dsZWRUZXh0fHxhLmRlZmF1bHRUZXh0KT9fLkFGKHIpOnZvaWQgMDttPyhtPV8uYU4oYyYmYS50b2dnbGVkVGV4dHx8YS5kZWZhdWx0VGV4dCkpJiZuJiYhaXNOYU4oTnVtYmVyKG4ubnVtYmVyVmFsdWUpKT8obi5YYj1tLGMmJihuLm51bWJlclZhbHVlKz0KMSkpOm49dm9pZCAwOm49dm9pZCAwO209KG09KGM/YS50b2dnbGVkQWNjZXNzaWJpbGl0eURhdGF8fGEudG9nZ2xlZFRleHQ/LmFjY2Vzc2liaWxpdHk6YS5hY2Nlc3NpYmlsaXR5RGF0YXx8YS5kZWZhdWx0VGV4dD8uYWNjZXNzaWJpbGl0eSk/LmFjY2Vzc2liaWxpdHlEYXRhPy5sYWJlbHx8YS5hY2Nlc3NpYmlsaXR5Py5sYWJlbCk/bTpfLmFOKGMmJmEudG9nZ2xlZFRleHR8fGEuZGVmYXVsdFRleHQpO2w9bD09PXZvaWQgMD9hLmlzRGlzYWJsZWQ6bDtiPWNoYShhLGMsZCxiLGUpO2Q9c04oYSxjKTtkPy5sZW5ndGg/KGQ9Xy5iRSh7aW5uZXJ0dWJlQ29tbWFuZDpMTShkKSxxZDohMH0pLGQ9ZD8uaHJlZj9kOnZvaWQgMCk6ZD12b2lkIDA7cmV0dXJuey4uLnAsLi4uayxpY29uUG9zaXRpb246aCwuLi5mLGZvY3VzZWQ6ITEsdG9nZ2xlZDohIWMsdG9nZ2xlYWJsZTohMCxXYTpyLGFiOm4sYWNjZXNzaWJpbGl0eUxhYmVsOm0sZGlzYWJsZWQ6bCxvblRhcDpiLHVjOmQsLi4ucU4oYS5jb2xvckRhdGE/LmJhc2ljQ29sb3JQYWxldHRlRGF0YSl9fTsKY2hhPWZ1bmN0aW9uKGEsYixjLGQsZT17fSl7cmV0dXJuIGY9Pnt2YXIgaD1hLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZT9fLnV4KGEubG9nZ2luZ0RpcmVjdGl2ZXMuY2xpZW50VmVTcGVjLnVpVHlwZSk6dm9pZCAwO2UuY2xpY2tlZFZpc3VhbEVsZW1lbnR8fChlLmNsaWNrZWRWaXN1YWxFbGVtZW50PWgpO2g9c04oYSxiKTtjKGgsZik7Zm9yKGxldCBuIG9mIGgpe2g9bjt2YXIgaz1kLGw9ZixtPWU7bS5mb3JtP20uZm9ybS5ldmVudD1sOm0uZm9ybT17ZWxlbWVudDprLGV2ZW50Omx9O18uZEsoaCxtKX19fTsKc049ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtiPyhhLnRvZ2dsZWRDb21tYW5kJiZjLnB1c2goYS50b2dnbGVkQ29tbWFuZCksYS50b2dnbGVkU2VydmljZUVuZHBvaW50JiZjLnB1c2goYS50b2dnbGVkU2VydmljZUVuZHBvaW50KSk6KGEuZGVmYXVsdENvbW1hbmQmJmMucHVzaChhLmRlZmF1bHRDb21tYW5kKSxhLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQmJmMucHVzaChhLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQpLGEuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCYmYy5wdXNoKGEuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCkpO3JldHVybiBjfTsKYmhhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b2dnbGVkU3R5bGV8fGEuc3R5bGU7c3dpdGNoKChiP2M6YS5zdHlsZSk/LnN0eWxlVHlwZSl7Y2FzZSAiU1RZTEVfVklTSUJMWV9ESVNBQkxFRCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImRpc2FibGVkIn07Y2FzZSAiU1RZTEVfUFJJTUFSWSI6Y2FzZSAiU1RZTEVfUEFZTUVOVCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfU1VHR0VTVElWRSI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0JMVUVfVEVYVCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0RFU1RSVUNUSVZFIjpjYXNlICJTVFlMRV9NT05PX0ZJTExFRCI6cmV0dXJue3N0eWxlOiJtb25vIiwKdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfT1ZFUkxBWSI6cmV0dXJue3N0eWxlOiJvdmVybGF5Iix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9MSUdIVF9URVhUIjpyZXR1cm57c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9NT05PX1RPTkFMX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9ERUZBVUxUIjpjYXNlICJTVFlMRV9DT01QQUNUX0dSQVkiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9JTkFDVElWRV9PVVRMSU5FIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6Im91dGxpbmUiLHN0YXRlOiJhY3RpdmUifTtkZWZhdWx0OnJldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9fX07Cl8udE49ZnVuY3Rpb24oYSl7cmV0dXJuIF8uSyhfLmdHLHtwYTooKT0+W2EuY29tcG9uZW50KCldfSxiPT5iPy4oKSl9O2ZoYT1mdW5jdGlvbihhLGIsYyl7aWYoYz09PW51bGx8fGM9PT12b2lkIDApcmV0dXJuIGM7dmFyIGQ9Xy5nQihhLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxiLCgpPT57dGhyb3cgRXJyb3IoIm1jIik7fSk7aWYoZD09PW51bGwpcmV0dXJuIGM7ZD1laGFbZF07aWYoZC5oZT8uKGMpKXtpZihkLktkKXJldHVybiBkLktkKGMpO3Rocm93IEVycm9yKCJEZCIpO31yZXR1cm4gZC5wZD9kLnBkKGEudGFnTmFtZSxiLFN0cmluZyhjKSk6Y307Xy51Tj1mdW5jdGlvbihhKXtyZXR1cm4gYS5mb3JlZ3JvdW5kVGl0bGVDb2xvcj09PSJUSEVNRV9BVFRSSUJVVEVfVEVYVF9ESVNBQkxFRCJ8fGEuZm9yZWdyb3VuZEljb25Db2xvcj09PSJUSEVNRV9BVFRSSUJVVEVfSUNPTl9ESVNBQkxFRCJ9O3ZOPWZ1bmN0aW9uKGEpe2lmKGEmJl8uS00oYSkpcmV0dXJuIGF9OwpYPWZ1bmN0aW9uKGEsYil7KGI9Xy5hQShhLHt9LGIpKXx8Xy5XaShFcnJvcigiRWRgIithKSk7cmV0dXJuIGJ9O18ud049ZnVuY3Rpb24oYSl7cmV0dXJue3VybEVuZHBvaW50Ont1cmw6YX0sY29tbWFuZE1ldGFkYXRhOnt3ZWJDb21tYW5kTWV0YWRhdGE6e3VybDphfX19fTtfLnhOPWZ1bmN0aW9uKCl7cmV0dXJuIF8ub00oKS5nZXRTdGF0ZSgpLnRpPy5qan07Xy55Tj1mdW5jdGlvbihhKXtfLnkoKS5yZXNvbHZlKF8uY0wpLndnKHtRazphfSl9O18uek49ZnVuY3Rpb24oKXtfLnkoKS5yZXNvbHZlKF8uY0wpLkplKCl9O18uQk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1hPy5wYXJlbnRFbGVtZW50Py5jaGlsZHJlbjtpZihjKWZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXtsZXQgZT1jW2RdO2NbZF0hPT1hJiYoYj9lLnNldEF0dHJpYnV0ZSgiaW5lcnQiLCJ0cnVlIik6ZS5yZW1vdmVBdHRyaWJ1dGUoImluZXJ0IiksQU4oZSxiKSl9fTsKQU49ZnVuY3Rpb24oYSxiKXtiPyhhLmhhc0F0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSYmYS5zZXRBdHRyaWJ1dGUoImRhdGEtb2xkLWFyaWEtaGlkZGVuIixhLmdldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSksYS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpKTooYS5oYXNBdHRyaWJ1dGUoImRhdGEtb2xkLWFyaWEtaGlkZGVuIikmJihhLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLGEuZ2V0QXR0cmlidXRlKCJkYXRhLW9sZC1hcmlhLWhpZGRlbiIpKSxhLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1vbGQtYXJpYS1oaWRkZW4iKSksYS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpfTtDTj1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGxheWVyLWNvbnRhaW5lci1pZCIpO2ImJkFOKGIsYSl9OwpnaGE9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudDtyZXR1cm4oYT1hLnNjcm9sbGluZ0VsZW1lbnQ/YS5zY3JvbGxpbmdFbGVtZW50Ol8uY3J8fGEuY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP2EuYm9keXx8YS5kb2N1bWVudEVsZW1lbnQ6YS5kb2N1bWVudEVsZW1lbnQpJiZ0eXBlb2YgYS5zY3JvbGxUb3A9PT0ibnVtYmVyIj9hLnNjcm9sbFRvcDp0eXBlb2Ygd2luZG93LnBhZ2VZT2Zmc2V0PT09Im51bWJlciI/d2luZG93LnBhZ2VZT2Zmc2V0OjB9OwpfLkpOPWZ1bmN0aW9uKGEsYj1kb2N1bWVudC5hY3RpdmVFbGVtZW50LGM9ITEpe2EhPT1fLkROW18uRE4ubGVuZ3RoLTFdJiZfLkROLnB1c2goYSk7YiE9PWRvY3VtZW50LmJvZHk/RU4uc2V0KGEsYik6RU4uaGFzKGEpfHxFTi5zZXQoYSxudWxsKTtjP18uT0UoKCk9PntoaGEoYSxhLnF1ZXJ5U2VsZWN0b3IoImRpYWxvZyIpKX0pOl8uT0UoKCk9PnthPy5xdWVyeVNlbGVjdG9yKCJkaWFsb2ciKT8uZm9jdXMoKX0pO18uRE4ubGVuZ3RoPjF8fChGTj1naGEoKSxfLkJOKGEsITApLEdOJiZITiYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoR04pLElOPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e18ueE4oKXx8KGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJtb2RhbC1vcGVuLWJvZHkiLCIiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnRvcD1gLSR7Rk59cHhgLHdpbmRvdy5zY3JvbGxUbygwLC1GTiksSU49bnVsbCl9KSl9OwppaGE9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKCdhLGlucHV0Om5vdChbZGlzYWJsZWRdKSxzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLGJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6bm90KC5tb2RhbC1oaWRkZW4tYnV0dG9uKSxbdGFiaW5kZXg9IjAiXScpKS5maWx0ZXIoYj0+e2lmKGIudGV4dENvbnRlbnQpcmV0dXJuITA7aWYoYiBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpe2lmKCFiLmxhYmVscylyZXR1cm4hMTtmb3IobGV0IGMgb2YgYi5sYWJlbHMpaWYoYy50ZXh0Q29udGVudClyZXR1cm4hMH1yZXR1cm4hMX0pfTsKaGhhPWZ1bmN0aW9uKGEsYil7dmFyIGM9aWhhKGEpLGQ9Y1swXTtpZighZCYmYiliLmZvY3VzKCk7ZWxzZXt2YXIgZT1jW2MubGVuZ3RoLTFdO2lmKGQpe2QuZm9jdXMoKTtsZXQgZj1oPT57aC5rZXlDb2RlPT09MjcmJihhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGYpLF8uS04oYSkpO2gua2V5Q29kZSE9PTM4JiZoLmtleUNvZGUhPT00MCYmaC5rZXlDb2RlIT09OXx8amhhKGQsZSl9O2EuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZil9fX07amhhPWZ1bmN0aW9uKGEsYil7aWYoIUxOKXtMTj0hMDt2YXIgYz1NTigpO2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYyxhKTtjLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCgpPT57Yi5mb2N1cygpfSk7Yz1NTigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYyxiLm5leHRTaWJsaW5nKTtjLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCgpPT57YS5mb2N1cygpfSl9fTsKTU49ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5jbGFzc05hbWU9Im1vZGFsLWhpZGRlbi1idXR0b24iO2Euc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIik7YS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpO3JldHVybiBhfTsKXy5LTj1mdW5jdGlvbihhKXt2YXIgYj1FTi5nZXQoYSk7RU4uZGVsZXRlKGEpO2lmKGtoYSl7aWYoXy5CTihhLCExKSxfLldNKCkmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInl0bS1lbmdhZ2VtZW50LXBhbmVsIikmJkNOKCEwKSxfLnhiKF8uRE4sYSksXy5ETi5sZW5ndGghPT0wKXtiJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntfLmROKGIpfSk7cmV0dXJufX1lbHNle18ueGIoXy5ETixhKTtpZihfLkROLmxlbmd0aCE9PTApe2ImJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e18uZE4oYil9KTtyZXR1cm59Xy5CTihhLCExKTtfLldNKCkmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInl0bS1lbmdhZ2VtZW50LXBhbmVsIikmJkNOKCEwKX1JTiYmSE4mJmNhbmNlbEFuaW1hdGlvbkZyYW1lKElOKTtHTj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibW9kYWwtb3Blbi1ib2R5Iik7ZG9jdW1lbnQuYm9keS5zdHlsZS50b3A9CiIiO2ImJl8uZE4oYik7Xy5mcj9fLk9FKCgpPT57d2luZG93LnNjcm9sbFRvKDAsRk4pfSk6d2luZG93LnNjcm9sbFRvKDAsRk4pO0dOPW51bGx9KX07bGhhPWZ1bmN0aW9uKGEsYixjPV8uTk4pe2lmKGEpe3ZhciBkPV8ueSgpLnJlc29sdmUoXy5MeCk7ZD9fLkp4KGEse2RhdGE6YixvYnNlcnZlcjpkLE5iOmMsTmM6Xy5uRixlYjpfLm1GLGxheWVyOmEubGF5ZXJ9KTpfLklwKG5ldyBfLlhqKCJXYXJuaW5nOiBtb25pdG9yVmlzaWJpbGl0eSBjYWxsZWQgd2l0aCBudWxsIG9ic2VydmVyIixhLnRhZ05hbWUsYj8ubG9nZ2luZ0RpcmVjdGl2ZXMsYj8udHJhY2tpbmdQYXJhbXMpKX1lbHNlIF8uSXAobmV3IF8uWGooIldhcm5pbmc6IG1vbml0b3JWaXNpYmlsaXR5IGNhbGxlZCB3aXRoIG51bGwgZWxlbWVudCIsYj8ubG9nZ2luZ0RpcmVjdGl2ZXMsYj8udHJhY2tpbmdQYXJhbXMsYj8ucmVuZGVyZXJDb250ZXh0KSl9OwptaGE9ZnVuY3Rpb24oYSxiKXthJiZfLk9FKCgpPT57bGhhKGEsYixfLk5OKX0pfTtRTj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJTSE9SVFNfTElLRSImJl8ueCgiZW5hYmxlX3Nob3J0c19oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIik/InNob3J0c190aHVtYnNfdXAiOl8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiZhJiZPTlthXT9PTlthXTphJiZQTlthXT9QTlthXTphfTtuaGE9ZnVuY3Rpb24oKXtpZihSTil7dmFyIGE9Xy55KCkucmVzb2x2ZShfLkluKFNOKSk7Uk49ITE7YT8udigpfX07b2hhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iW2IubGVuZ3RoLTFdIT09IiQiO2M9ZmhhKGEsYixjKTtkP2FbYl09YzooZD1jPT1udWxsP251bGw6U3RyaW5nKGMpLF8uUUEoYSxiLnNsaWNlKDAsLTEpLGQpKX07ClROPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEuY29tcG9uZW50O2ImJihiPy5ldmVudHM/LnB1Ymxpc2goIkRJU0NPTk5FQ1RFRCIpLGI/LmRLPy4oKSk7YS5MSD8uSGY/LigpO2ZvcihiPTA7YjxhLmNoaWxkTm9kZXMubGVuZ3RoO2IrKylUTihhLmNoaWxkTm9kZXNbYl0pfX07Xy5VTj1mdW5jdGlvbigpe3JldHVybiBfLkZKLnRoZW4oKCk9Pnt3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjbWVudSImJihfLllNP18uJE0oIiIpOl8uWk0oKSk7cmV0dXJuIF8uRkp9KX07CnFoYT1mdW5jdGlvbihhKXt2YXIgYj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7aWYoYS5pc0Rpc2FibGVkJiZhLmRpc2FibGVkQ29tbWFuZClfLkFKKGEuZGlzYWJsZWRDb21tYW5kLGEsITEpO2Vsc2V7Vk49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUiKTtWTnx8KFZOPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFZOLmlkPSJtZW51Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFZOKSk7d2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI21lbnUiJiZfLiRNKCJtZW51Iik7Vk4uY2xhc3NOYW1lPWEuaXNGdWxsV2lkdGg/Im1lbnUtY29udGFpbmVyIG1lbnUtZnVsbC13aWR0aCI6Im1lbnUtY29udGFpbmVyIjthLmNsYXNzTmFtZSYmKFZOLmNsYXNzTmFtZSs9IiAiK2EuY2xhc3NOYW1lKTsic2Nyb2xsVG8iaW4gVk4mJlZOLnNjcm9sbFRvKDAsMCk7dmFyIGM9YS5GQXx8Xy5tRygpO18uVnooYixfLnZNKGEub3duZXImJiFhLm93bmVyLmlhPwphLm93bmVyOm51bGwpKTtfLngoIm13ZWJfYzNfbWVudV9zaWduYWxzX3JlbmRlciIpPyhwaGEoYSksV058fChXTj1fLnhGKFZOLCgpPT5fLksoXy5JQixudWxsLF8uSyhYTix7RGg6KCk9PllOKCl9LF8uSyhfLnROLHtjb21wb25lbnQ6KCk9Pnt2YXIgZD1ZTigpO2lmKGQpcmV0dXJuKCk9Pl8ucEcoY3x8e30sKCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PmQuY29udGVudH0pKX19KSksXy5LKF8uWk4se2xhYmVsOl8uJE4uQ0xPU0Usb25jbGljazpfLlVOfSkpLHtJazpfLlhDfSkpKTooXy5mTihWTixudWxsKSxfLmZOKFZOLF8uSyhfLklCLG51bGwsXy5LKFhOLHtEaDphfSxhLmNvbnRlbnQoKSksXy5LKF8uWk4se2xhYmVsOl8uJE4uQ0xPU0Usb25jbGljazpfLlVOfSkpKSk7YS5ybj09PXZvaWQgMCYmKGEucm49ITApO18uSk4oVk4sYS5mb2N1c09uQ2xvc2UsYS5ybil9fWNhdGNoKGQpe2IuZXJyb3I9ZCxiLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihiKX19OwphTz1mdW5jdGlvbigpe1ZOJiZ3aW5kb3cubG9jYXRpb24uaGFzaCE9PSIjbWVudSImJihfLktOKFZOKSxfLngoIm13ZWJfYzNfbWVudV9zaWduYWxzX3JlbmRlciIpPyhXTj8uKCksV049dm9pZCAwKTpUTihWTiksVk4uaXNDb25uZWN0ZWQmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoVk4pLFZOPW51bGwpfTtyaGE9LyYvZztzaGE9LzwvZzt0aGE9Lz4vZzt1aGE9LyIvZzt2aGE9LycvZzt3aGE9L1x4MDAvZzt4aGE9L1tceDAwJjw+IiddLztfLndNPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1uZXcgXy56aChhKX1zZXQoYSxiLGMpe2M9YyE9PXZvaWQgMD9EYXRlLm5vdygpK2M6dm9pZCAwO3RoaXMuai5zZXQoYSxiLGMpfWdldChhKXtyZXR1cm4gdGhpcy5qLmdldChhKX1yZW1vdmUoYSl7dGhpcy5qLnJlbW92ZShhKX19O0VnYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1udWxsO3RoaXMubz1hO3RoaXMua2V5PWI7dGhpcy50ZXh0PXZvaWQgMH19O0ZNPVtdOwpITT0wO2JPPXsiKiI6e2FzeW5jOjEsZGlyOjAsbG9hZGluZzoyLHRhcmdldDozfX07eWhhPVt7YXV0bzohMCxsdHI6ITAscnRsOiEwfSx7YXN5bmM6ITB9LHtlYWdlcjohMCxsYXp5OiEwfSx7X3NlbGY6ITAsX2JsYW5rOiEwfV07T009bnVsbDtRTT17fTtJZ2E9IldFQl9QQUdFX1RZUEVfQUNDT1VOVFMgV0VCX1BBR0VfVFlQRV9XRUxDT01FIFdFQl9QQUdFX1RZUEVfQUNDT1VOVF9TRUxFQ1RPUiBXRUJfUEFHRV9UWVBFX1NJR05fSU5fSURFTlRJRklFUl9FTlRSWSBXRUJfUEFHRV9UWVBFX1NJR05fSU5fUEFTU1dPUkRfRU5UUlkgV0VCX1BBR0VfVFlQRV9TSUdOX0lOX0RFVklDRV9QUk9NUFRfQ0hBTExFTkdFIFdFQl9QQUdFX1RZUEVfUFJFTUlVTV9MSVRFX1VQU0VMTCBXRUJfUEFHRV9UWVBFX1VOS05PV04iLnNwbGl0KCIgIik7CkpnYT17RkV3aGF0X3RvX3dhdGNoOiJob21lIixGRWhhc2h0YWc6Imhhc2h0YWciLEZFdHJlbmRpbmc6InRyZW5kaW5nIixGRWhpc3Rvcnk6Imhpc3RvcnkiLFNQdW5saW1pdGVkOiJwcmVtaXVtIixGRW1lbWJlcnNoaXBzX2FuZF9wdXJjaGFzZXM6InBhaWRfbWVtYmVyc2hpcHMiLFNQcmVkZWVtX2NvZGU6InJlZGVlbSIsU1B2ZXJpZnlfbG9jYXRpb246ImxvY2F0ZSIsU1BtaW5vcl9tb21lbnQ6Im1pbm9yX21vbWVudCIsRkVtaW5pX2FwcF9jb250YWluZXI6Im1pbmlfYXBwIixGRW5ld3NfZGVzdGluYXRpb246Im5ld3MiLFNQb3Blbl9pbl9hcHA6Im9wZW5faW5fYXBwIixGRWV4cGxvcmU6ImV4cGxvcmUiLEZFc3Vic2NyaXB0aW9uczoic3Vic2NyaXB0aW9ucyIsRkVzZnZfYXVkaW9fcGl2b3Q6InNmdl9hdWRpb19waXZvdCIsRkVwbGF5bGlzdF9hZ2dyZWdhdGlvbjoicGxheWxpc3RfYWdncmVnYXRpb24ifTtfLllNPSExO3poYT17YUQ6InlvdXR1YmVfZmlsbCIsUkY6InlvdXR1YmVfb3V0bGluZSJ9OwpBaGE9e2pGOiJMSUtFIixFRjoiTk9USUZJQ0FUSU9OX0JFTEwifTtfLktCPV8ubEM7dmFyIFFnYT1uZXcgU2V0KFsiRm9yIiwiSWYiLCJNYXRjaCIsIldhdGNoIl0pLGNPPXtbXy5SQS5kZWZhdWx0XTooKT0+Xy56QixzdHlsZTooKT0+Xy56Qn07Zm9yKGxldCBhIGluIGNPKV8uS3UuYXR0cmlidXRlc1thXT1jT1thXShfLkt1LmF0dHJpYnV0ZXNbYV0pO18uQmhhPW5ldyBfLkkoInNpZ25JbkVuZHBvaW50Iik7Xy5kTz1uZXcgXy5JKCJsaWtlRW5kcG9pbnQiKTt2YXIgQ2hhPW5ldyBfLkkoImhvcml6b250YWxTbGlkZXJWaWV3TW9kZWwiKTt2YXIgRGhhPW5ldyBfLlZzKCJWSURFT19OT1RJQ0VTX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgRWhhPV8uTChhPT57ZnVuY3Rpb24gYihrKXt2YXIgbD1oKCktYS5zdGVwU2l6ZSgpO2QudmFsdWUudmFsdWVBc051bWJlcj1sO2QudmFsdWUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpO2QudmFsdWUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNoYW5nZSIpKTtrLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGMoayl7dmFyIGw9aCgpK2Euc3RlcFNpemUoKTtkLnZhbHVlLnZhbHVlQXNOdW1iZXI9bDtkLnZhbHVlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKTtkLnZhbHVlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJjaGFuZ2UiKSk7ay5zdG9wUHJvcGFnYXRpb24oKX12YXIgZD1fLnVFKCJpbnB1dCIpLFtlLGZdPV8uQUMoKCk9PmEudmFsdWUoKT8/MCksaD1lO18ubkUoKCk9Pnt2YXIgaz1kLnZhbHVlO2sudmFsdWVBc051bWJlcj1oKCk7dmFyIGw9aCgpLG09YS5taW5WYWx1ZSgpLG49YS5SbCgpO2suc3R5bGUuc2V0UHJvcGVydHkoIi0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQiLApgJHsobC1tKS9uKjEwMH0lYCl9LCJqVDVDQ2YiKTtyZXR1cm4gXy5LKCJzbGlkZXItc2hhcGUiLHtjbGFzczpfLlAoInl0U2xpZGVyU2hhcGVIb3N0Iix7eXRTbGlkZXJTaGFwZVZlcnRpY2FsOigpPT5hLmlzVmVydGljYWwoKX0pfSxfLksoXy5PLHtBOmEuVWosdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b24iLCJhcmlhLWxhYmVsIjphLmpsLGRpc2FibGVkOigpPT5oKCk9PT1hLm1pblZhbHVlKCksIm9uOmNsaWNrIjpifSxfLksoXy5VQyx7bW9kZWw6e2NpcmN1bGFyOiEwfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXIifSxfLksoXy5NRCx7aWNvbjoiQkFSX0hPUklaT05UQUwiLGNsYXNzTmFtZToieXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b25JY29uIn0pKSl9KSxfLksoImlucHV0Iix7Y2xhc3M6KCk9PmEuaXNWZXJ0aWNhbCgpPyJ5dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXIiOgoieXRTbGlkZXJTaGFwZUhvc3RTbGlkZXIiLHR5cGU6InJhbmdlIixpZDoic2xpZGVyIixlbDpkLG1pbjphLm1pblZhbHVlLG1heDphLm1heFZhbHVlLCJhcmlhLWxhYmVsIjphLmFyaWFMYWJlbCwiYXJpYS12YWx1ZW1pbiI6YS5taW5WYWx1ZSwiYXJpYS12YWx1ZW1heCI6YS5tYXhWYWx1ZSwiYXJpYS12YWx1ZW5vdyI6aCwiYXJpYS12YWx1ZXRleHQiOigpPT5TdHJpbmcoaCgpKSx2YWx1ZTpoLHN0ZXA6YS5zdGVwU2l6ZSwib246aW5wdXQiOmZ1bmN0aW9uKGspe2EuUmM/LihrKTtmKE51bWJlcihkLnZhbHVlPy52YWx1ZT8/MCkpO2suc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpjaGFuZ2UiOmZ1bmN0aW9uKGspe2Eub25DaGFuZ2U/LihrKTtrLnN0b3BQcm9wYWdhdGlvbigpfX0pLF8uSyhfLk8se0E6YS5Vaix0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFNsaWRlclNoYXBlSG9zdEluY3JlbWVudEJ1dHRvbiIsImFyaWEtbGFiZWwiOmEuUGwsZGlzYWJsZWQ6KCk9PmgoKT09PQphLm1heFZhbHVlKCksIm9uOmNsaWNrIjpjfSxfLksoXy5VQyx7bW9kZWw6e2NpcmN1bGFyOiEwfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXIifSxfLksoXy5NRCx7aWNvbjoiQUREIixjbGFzc05hbWU6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbiJ9KSkpfSkpfSwiT2EiKTt2YXIgRmhhPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgYztpZigoYz1hLmRhdGEoKSkmJmMubWF4VmFsdWUmJmMubWluVmFsdWUmJmMuc3RlcENvdW50KXt2YXIgZD1jLnZhbHVlRGVub21pbmF0b3I/PzEsZT0oYy5tYXhWYWx1ZS1jLm1pblZhbHVlKS9kO2M9e3ZhbHVlOihjLmluaXRpYWxWYWx1ZT8/Yy5taW5WYWx1ZSkvZCxhcmlhTGFiZWw6Xy5CKGMucmVuZGVyZXJDb250ZXh0LF8uWUMpPy5sYWJlbD8/IiIsbWluVmFsdWU6Yy5taW5WYWx1ZS9kLG1heFZhbHVlOmMubWF4VmFsdWUvZCxSbDplLHN0ZXBTaXplOmUvYy5zdGVwQ291bnQsb25DaGFuZ2U6aU4oYy5vblNsaWRlclZhbHVlU2V0Q29tbWFuZCxhLll5KSxSYzppTihjLm9uU2xpZGVyVG91Y2hDb21tYW5kLGEuZnopLFBsOl8uQihjLmluY3JlYXNlQnV0dG9uLF8uS0opPy5hY2Nlc3NpYmlsaXR5VGV4dD8/IiIsamw6Xy5CKGMuZGVjcmVhc2VCdXR0b24sXy5LSik/LmFjY2Vzc2liaWxpdHlUZXh0Pz8iIixpc1ZlcnRpY2FsOiExLApVajohIV8uQihjLmluY3JlYXNlQnV0dG9uLF8uS0opJiYhIV8uQihjLmRlY3JlYXNlQnV0dG9uLF8uS0opfX1lbHNlIGM9e307cmV0dXJuIGN9O3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dEhvcml6b250YWxTbGlkZXJWaWV3TW9kZWxIb3N0In0sXy5LKEVoYSx7dmFsdWU6KCk9PmIoKS52YWx1ZSxhcmlhTGFiZWw6KCk9PmIoKS5hcmlhTGFiZWwsbWluVmFsdWU6KCk9PmIoKS5taW5WYWx1ZSxtYXhWYWx1ZTooKT0+YigpLm1heFZhbHVlLHN0ZXBTaXplOigpPT5iKCkuc3RlcFNpemUsUmw6KCk9PmIoKS5SbCxQbDooKT0+YigpLlBsLGpsOigpPT5iKCkuamwsaXNWZXJ0aWNhbDooKT0+YigpLmlzVmVydGljYWwsb25DaGFuZ2U6Yz0+e2IoKS5vbkNoYW5nZShjKX0sUmM6Yz0+e2IoKS5SYyhjKX0sVWo6KCk9PmIoKS5Van0pKX0sIlBhIik7dmFyIGVPPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsVGl0bGVXcmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+YSgpLnRpdGxlLHRoZW46Yj0+Xy5LKCJoMiIse2NsYXNzOl8uUCgieXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyIix7eXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyTm9uSW50ZXJhY3RpdmU6IV8ueCgid2ViX3BhbmVsX2hlYWRlcl90aXRsZV9ub25faW50ZXJhY3RpdmVfa2lsbHN3aXRjaCIpfSl9LF8uSyhfLlYse3RleHQ6YixjbGFzc05hbWU6Inl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZSJ9KSl9KSxfLksoXy5PLHtBOigpPT5hKCkuc3VidGl0bGUsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmIsY2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsU3VidGl0bGUifSl9KSksIlFhIiksZk89Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLlRIKCgpPT5hKCkucmVuZGVyZXJDb250ZXh0KTtyZXR1cm4gXy5LKCJ5dC1wYW5lbC1oZWFkZXItdmlldy1tb2RlbCIsCntjbGFzczpfLlAoInl0UGFuZWxIZWFkZXJWaWV3TW9kZWxIb3N0Iix7eXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3RIaWRlRGl2aWRlcjooKT0+ISFhKCkuc2hvdWxkSGlkZURpdmlkZXIseXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3RDb21wYWN0OigpPT4hIWEoKS5zdWJ0aXRsZX0pLCJhcmlhLWxhYmVsIjooKT0+YigpPy5sYWJlbH0sXy5LKF8uTyx7QTooKT0+Xy50SChhKCkucmVuZGVyZXJDb250ZXh0KSx0aGVuOigpPT5fLksoXy5NSix7Y2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsQnV0dG9uT3JBbmNob3IiLGNvbW1hbmQ6KCk9Pl8uc0goYSgpLnJlbmRlcmVyQ29udGV4dCksWnY6Inl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvckZvY3VzZWQifSxfLksoZU8se2RhdGE6YX0pKSxXOigpPT5fLksoZU8se2RhdGE6YX0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRQYW5lbEhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQnV0dG9ucyJ9LF8uSyhfLlcse2RhdGE6KCk9PgphKCkudHJhaWxpbmdCdXR0b25zfSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpjfSk9Pl8uSyhfLkhELHtkYXRhOmMsY2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsQnV0dG9uIn0pfSkpKX0sIlJhIik7Zk8uaWRvbUNvbXBhdD0hMDt2YXIgZ089Xy5MKGE9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFNwZWNCb3R0b21TaGVldExheW91dEhvc3QiLCJ5dFNwZWNCb3R0b21TaGVldExheW91dENvbnRhaW5lciIsInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIiksc3R5bGU6KCk9PmEuQ2MoKT9gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7YS5PYigpfXB4KTt0cmFuc2l0aW9uOiAwLjJzYDoiIn0sYS5oZWFkZXI/LigpLF8uSygiZGl2Iix7aWQ6YS5IaSxjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRDb250ZW50V3JhcHBlciIsc3R5bGU6Xy5JRSh7Im1heC1oZWlnaHQiOigwLF8uWkspKGEuRmMpfSksIm9uOnNjcm9sbCI6bE4oYS5qciksIm9uOnRvdWNobW92ZSI6bE4oKX0sXy5LKCJkaXYiLHtlbDpfLnJGKGEubnApLGNsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dEJvdHRvbVNoZWV0Q29udGVudCIsIm9uOmNsaWNrIjpmdW5jdGlvbihiKXthLnBmPy4oKT9iLnN0b3BQcm9wYWdhdGlvbigpOmEuWXEoYil9fSwKYS5ib2R5Py4oKSkpLGEuZm9vdGVyPy4oKSksIlNhIik7Z08uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntqcjohMCxucDohMCxZcTohMH19O3ZhciBoTz1fLkwoYT0+e3ZhciB7bGVhZGluZ0xhYmVsOmIsdHJhaWxpbmdMYWJlbDpjLFJlOmQscHJpbWFyeUJ1dHRvbjplLEl3OmYsc2Vjb25kYXJ5QnV0dG9uOmgsS3c6ayxPcDpsLEN3Om19PV8uREMoYSx7bGVhZGluZ0xhYmVsOnZvaWQgMCx0cmFpbGluZ0xhYmVsOnZvaWQgMCxSZTp2b2lkIDB9KSxuPSgpPT5iKCl8fGMoKXx8ZigpfHxrKCk7cmV0dXJuIF8uSyhfLk8se0E6bSx0aGVuOigpPT5fLksoXy5JQixudWxsLGw/LigpKSxXOigpPT5fLksoXy5PLHtBOm4sdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJXcmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+YigpfHxjKCksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyTGFiZWxXcmFwcGVyIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJMYWJlbFdyYXBwZXJXaXRob3V0QnV0dG9uczooKT0+IWYoKX0pfSxfLksoXy5PLAp7QTpiLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TGVhZGluZ0xhYmVsIn0sYil9KSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUcmFpbGluZ0xhYmVsIn0sYyl9KSl9KSxfLksoXy5PLHtBOigpPT5mKCl8fGsoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJCdXR0b25XcmFwcGVyIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJCdXR0b25XcmFwcGVyTGFuZHNjYXBlQnV0dG9uV3JhcHBlcjpfLkJjYX0pfSxfLksoXy5PLHtBOigpPT5rKCkmJmQoKSE9PTAsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0U2Vjb25kYXJ5QnV0dG9uIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25UcmFpbGluZ1BhaXI6KCk9PmQoKT09PTEmJmsoKSwKeXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25TcGxpdFBhaXI6KCk9PmQoKT09PTImJmsoKSx5dFNwZWNCb3R0b21TaGVldExheW91dFNlY29uZGFyeUJ1dHRvblByaW1hcnlTcGxpdFBhaXI6KCk9PmQoKT09PTMmJmYoKX0pfSxoPy4oKSl9KSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbiIsKCk9PlVnYShkKCkpKX0sZT8uKCkpfSkpfSkpfSl9KX0sIlRhIik7aE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntwcmltYXJ5QnV0dG9uOiEwLHNlY29uZGFyeUJ1dHRvbjohMCxPcDohMH19O3ZhciBpTz1fLkwoYT0+e3ZhciB7dGl0bGU6YixzdWJ0aXRsZTpjLGdxOmQsRHc6ZSx4bzpmLHh3Omgsd3M6ayx2czpsLHVzOm0sUXE6bixPdzpwLGlzRHJhZ2dpbmc6cn09Xy5EQyhhLHt0aXRsZTp2b2lkIDAsc3VidGl0bGU6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXIiLHt5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXJJc0RyYWdnaW5nOnJ9KSxpZDpwLCJvbjp0b3VjaHN0YXJ0IjpsTihrKSwib246dG91Y2htb3ZlIjpsTihsKSwib246dG91Y2hlbmQiOmxOKG0pLCJvbjptb3VzZWRvd24iOmxOKG4pfSxfLksoImRpdiIse2NsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dERyYWdMaW5lIn0pLF8uSyhfLk8se0E6ZSx0aGVuOigpPT5fLksoXy5JQixudWxsLGQ/LigpKSxXOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXI6ITAsCnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV2l0aFRpdGxlOmJ9KX0sXy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZVdyYXBwZXIifSxfLksoXy5PLHtBOmIsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoImgyIix7Y2xhc3M6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGUifSxiKSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKCJoMyIse2NsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxlIn0sYyl9KSl9KSksXy5LKF8uTyx7QTooKT0+YigpJiZoKCksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRBY3Rpb25IZWFkZXIifSxmPy4oKSl9KSl9KSl9LCJVYSIpO2lPLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7d3M6ITAsdnM6ITAsdXM6ITAsUXE6ITAseG86ITAsZ3E6ITAsaXNEcmFnZ2luZzohMH19O3ZhciBqTz1fLkwoYT0+e2Z1bmN0aW9uIGIoYWEpe2lmKCFZJiZ0eXBlb2YgTXV0YXRpb25PYnNlcnZlciE9PSJ1bmRlZmluZWQiKXt2YXIgT2E9e2NoaWxkTGlzdDohMH07Ik11dGF0aW9uT2JzZXJ2ZXIiaW4gd2luZG93JiYoWT1uZXcgTXV0YXRpb25PYnNlcnZlcihjLmJpbmQodm9pZCAwLGFhKSksWS5vYnNlcnZlKGFhLE9hKSl9fWZ1bmN0aW9uIGMoYWEpe3R5cGVvZiBZIT09InVuZGVmaW5lZCImJihwYVsiY29udGVudC13cmFwcGVyIl09PT12b2lkIDAmJihwYVsiY29udGVudC13cmFwcGVyIl09YWEuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0KSxHKHBhWyJjb250ZW50LXdyYXBwZXIiXSksIShDKCk+UigpKSYmQygpPjAmJk0oQygpKSl9ZnVuY3Rpb24gZCgpe0Uod2luZG93LmlubmVySGVpZ2h0KTshKEMoKT5SKCkpJiZDKCk+MCYmTShDKCkpO29hLlBjWzBdKCkmJkMoKT5SKCk/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOlUoKS5kaXNwYXRjaCgiU25hcCBUbyBOZXV0cmFsIFBvc2l0aW9uIiwKe21heEhlaWdodDpSKCl9KX1mdW5jdGlvbiBlKGFhKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSI7YWEucHJldmVudERlZmF1bHQoKTtVKCkuZGlzcGF0Y2goIkRyYWcgU3RhcnQiLHtjbGllbnRZOmFhLnRvdWNoZXNbMF0uY2xpZW50WX0pfWZ1bmN0aW9uIGYoYWEpe2FhLnByZXZlbnREZWZhdWx0KCk7VSgpLmRpc3BhdGNoKCJEcmFnIE1vdmUiLHtjbGllbnRZOmFhLnRvdWNoZXNbMF0uY2xpZW50WSxtcDpDKCk+UigpLFRwOlMoKSxxcDpSKCksaHE6cGEsSGk6ImNvbnRlbnQtd3JhcHBlciIsaGVhZGVyOm5OKGEpLGZvb3RlcjpuTihhKSxmcTpwYVsiYm90dG9tLXNoZWV0LWhlYWRlciJdLE5wOnBhWyJib3R0b20tc2hlZXQtZm9vdGVyIl19KX1mdW5jdGlvbiBoKGFhKXthYS5idXR0b249PT0wJiYoYWEucHJldmVudERlZmF1bHQoKSx0YSghMCksVSgpLmRpc3BhdGNoKCJEcmFnIFN0YXJ0Iix7Y2xpZW50WTphYS5jbGllbnRZfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsClQpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixrKSl9ZnVuY3Rpb24gaygpe3RhKCExKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixUKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsayk7bSgpfWZ1bmN0aW9uIGwoKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0iIjttKCl9ZnVuY3Rpb24gbSgpe29hLlBjWzBdKCk/b2EuT2JbMF0oKT49NjA/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIE5ldXRyYWwgUG9zaXRpb24iLHttYXhIZWlnaHQ6UigpfSk6VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOm9hLk9iWzBdKCk+PTYwP24oKTpvYS5PYlswXSgpPD0tNjAmJkMoKT5SKCk/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOlUoKS5kaXNwYXRjaCgiU25hcCBUbyBOZXV0cmFsIFBvc2l0aW9uIix7bWF4SGVpZ2h0OlIoKX0pfQpmdW5jdGlvbiBuKCl7VSgpLmRpc3BhdGNoKCJDbG9zZSBTaGVldCIse2NsaWVudEhlaWdodDp6KCksbWF4SGVpZ2h0OjB9KTtzZXRUaW1lb3V0KCgpPT57bU4oKX0sMjUwKX12YXIgcD1fLnVFKCJkaXYiKSxyPV8udUUoImRpdiIpLFt0LHZdPV8uSih3aW5kb3cuaW5uZXJIZWlnaHQsdm9pZCAwLCJDbU9zVSIpLHo9dCxFPXYsW0EsRl09Xy5KKDAsdm9pZCAwLCJwMEZsaGIiKSxDPUEsRz1GLFtELEhdPV8uQUMoKCk9Pnt2YXIgYWE9bk4oYSk7cmV0dXJuLjYqeigpLWpOKGFhKS1rTihhYSl9KSxSPUQsTT1ILFM9KCk9Pnt2YXIgYWE9bk4oYSksT2E9eigpLEpiPXBhWyJib3R0b20tc2hlZXQtaGVhZGVyIl0semE9cGFbImJvdHRvbS1zaGVldC1mb290ZXIiXTtyZXR1cm4gT2EtKGFhLmpoJiZKYiE9PXZvaWQgMD9KYjpqTihhYSkpLShhYS5oaCYmemEhPT12b2lkIDA/emE6a04oYWEpKS0yNC0yNH0sWT1udWxsLHBhPXt9LG9hPXtWZTpfLkooMCx2b2lkIDAsInN4ZEVTZCIpLE9iOl8uSigwLAp2b2lkIDAsIkdaenFlYiIpLENjOl8uSighMSx2b2lkIDAsInZKQnVwYyIpLFBjOl8uSighMSx2b2lkIDAsIlh5UkRwIiksRmM6Xy5BQyhSKX0sVT0oKCk9Pnt2YXIgYWE9bnVsbDtyZXR1cm4oKT0+e2lmKCFhYSl7bGV0IE9hPXtWZTpvYS5WZVswXSgpLE9iOm9hLk9iWzBdKCksQ2M6b2EuQ2NbMF0oKSxQYzpvYS5QY1swXSgpLEZjOm9hLkZjWzBdKCl9O2FhPVRnYShPYSl9cmV0dXJuIGFhfX0pKCk7Xy5VSigoKT0+e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGQpO1UoKS5zdWJzY3JpYmUoYWE9PntvYS5WZVsxXShhYS5WZSk7b2EuT2JbMV0oYWEuT2IpO29hLkNjWzFdKGFhLkNjKTtvYS5QY1sxXShhYS5QYyk7b2EuRmNbMV0oYWEuRmMpfSk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57cC52YWx1ZSYmKHBhWyJib3R0b20tc2hlZXQtaGVhZGVyIl09cC52YWx1ZS5jbGllbnRIZWlnaHQpO3IudmFsdWUmJihwYVsiYm90dG9tLXNoZWV0LWZvb3RlciJdPXIudmFsdWUuY2xpZW50SGVpZ2h0KX0pfSk7Cl8uWXUoKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixkKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixUKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsayk7WSYmKFkuZGlzY29ubmVjdCgpLFk9bnVsbCl9KTt2YXIgW2hhLG1hXT1fLkooITEsdm9pZCAwLCJLc2lUWWUiKSx0YT1tYSxUPWFhPT57VSgpLmRpc3BhdGNoKCJEcmFnIE1vdmUiLHtjbGllbnRZOmFhLmNsaWVudFksbXA6QygpPlIoKSxUcDpTKCkscXA6UigpLGhxOnBhLEhpOiJjb250ZW50LXdyYXBwZXIiLGhlYWRlcjpuTihhKSxmb290ZXI6bk4oYSksZnE6cGFbImJvdHRvbS1zaGVldC1oZWFkZXIiXSxOcDpwYVsiYm90dG9tLXNoZWV0LWZvb3RlciJdfSl9LGJhPV8uUCh7ImJvdHRvbS1zaGVldC1jb250ZW50LXdpdGhvdXQtaWNvbiI6KCk9PiFhLkhhPy4oKX0pO3JldHVybiBfLksoImJvdHRvbS1zaGVldC1sYXlvdXQiLG51bGwsXy5LKGdPLHtIaToiY29udGVudC13cmFwcGVyIiwKQ2M6KCk9Pm9hLkNjWzBdKCksT2I6KCk9Pm9hLk9iWzBdKCksRmM6KCk9Pm9hLkZjWzBdKCksSGE6YS5IYSxwZjphLnBmLGpyOigpPT57dmFyIGFhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3R0b20tc2hlZXQtaGVhZGVyIiksT2E9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQtd3JhcHBlciIpO2lmKGFhJiZPYSl7dmFyIEpiPXt5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXI6ITAseXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVyQm90dG9tQm9yZGVyOiEwfTthYS5jbGFzc05hbWU9T2Euc2Nyb2xsVG9wPjE/Xy5hTChKYik6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV3JhcHBlciJ9fSxZcTptTixucDphYT0+e2IoYWEpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2MoYWEpfSl9LGhlYWRlcjooKT0+Xy5LKCJkaXYiLHtlbDpwfSxfLksoaU8se2lzRHJhZ2dpbmc6aGEsd3M6ZSx2czpmLHVzOmwsUXE6aCx0aXRsZTphLmhlYWRlclRpdGxlLApzdWJ0aXRsZTphLmhlYWRlclN1YnRpdGxlLE93OiJib3R0b20tc2hlZXQtaGVhZGVyIixncTphLlVlLER3OmEuamgseG86YS5XZix4dzphLmlofSkpLGZvb3RlcjooKT0+Xy5LKCJkaXYiLHtlbDpyfSxfLksoaE8se1JlOmEuUmUsbGVhZGluZ0xhYmVsOmEuTWYsdHJhaWxpbmdMYWJlbDphLlBmLHByaW1hcnlCdXR0b246YS5OZixJdzphLlVmLHNlY29uZGFyeUJ1dHRvbjphLk9mLEt3OmEuVmYsT3A6YS5TZSxDdzphLmhofSkpLGJvZHk6KCk9Pl8uSyhfLk8se0E6YS5YaSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmJhfSxhLkdiPy4oKSl9KX0pKX0sIlZhIik7ak8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntXZjohMCxVZTohMCxHYjohMCxTZTohMCxOZjohMCxPZjohMH19O18uTChhPT57dmFyIGI9Xy55KCkucmVzb2x2ZShfLmNMKTtyZXR1cm4gXy5LKCJ5dC1jb250ZXh0dWFsLXNoZWV0LWxheW91dCIse2NsYXNzOl8uUCgieXRDb250ZXh0dWFsU2hlZXRMYXlvdXRIb3N0Iix7eXRDb250ZXh0dWFsU2hlZXRMYXlvdXRBZGRQYWRkaW5nOmEucnUseXRDb250ZXh0dWFsU2hlZXRMYXlvdXRIb3N0T2xkTWluV2lkdGg6KCk9PiEhYS5oYXNIZWFkZXI/LigpfHwhIWEuQnc/LigpfHxfLngoImVuYWJsZV9jb250ZXh0dWFsX3NoZWV0X29sZF9taW5fd2lkdGhfa2lsbHN3aXRjaCIpfSksZWw6Xy5yRihfLmRMKSwib246Y2xpY2siOigpPT57YT8udks/LigpfHxiLkplKCl9fSxfLksoXy5PLHtBOigpPT4hIWEuaGVhZGVyLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q29udGV4dHVhbFNoZWV0TGF5b3V0SGVhZGVyQ29udGFpbmVyIn0sYS5oZWFkZXIoKSl9KSxfLksoXy5PLHtBOigpPT4hIWEuY29udGVudCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENvbnRleHR1YWxTaGVldExheW91dENvbnRlbnRDb250YWluZXIifSwKYS5jb250ZW50KCkpfSksXy5LKF8uTyx7QTooKT0+ISFhLmZvb3Rlcix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENvbnRleHR1YWxTaGVldExheW91dEZvb3RlckNvbnRhaW5lciJ9LGEuZm9vdGVyKCkpfSkpfSwiV2EiKS5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2hlYWRlcjohMCxjb250ZW50OiEwLGZvb3RlcjohMCxoYXNIZWFkZXI6ITAsZ0o6ITAsQnc6ITAscnU6ITB9fTt2YXIgR2hhPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixvbkNsaWNrOmN9KT0+Xy5LKCJ5dHctdmFyaWFibGUtc3BlZWQtY29udHJvbGxlci1zcGVlZC1idXR0b24tdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJTcGVlZEJ1dHRvblZpZXdNb2RlbEhvc3QiLGIpfSxfLksoXy5XLHtkYXRhOigpPT5hKCkucGxheWJhY2tTcGVlZEJ1dHRvbn0se2J1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5IRCx7ZGF0YTpkLG9uQ2xpY2s6Y30pfSksXy5LKF8uVix7Y2xhc3NOYW1lOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclNwZWVkQnV0dG9uVmlld01vZGVsU3BlZWRMYWJlbCIsdGV4dDooKT0+YSgpLmJ1dHRvbkxhYmVsfSkpLCJYYSIpO3ZhciBvTjsKXy5rTz1fLkwoKHtkYXRhOmEscHo6Yj1WZ2Esb3o6Yz1XZ2EscXo6ZD1YZ2F9KT0+e3ZhciBbZSxmXT1fLkooMTAwLHZvaWQgMCwiZDBOS3liIiksW2gsa109Xy5KKCExLHZvaWQgMCwiWFh2Z2tiIiksbD1tPT57ZihtLnRhcmdldC52YWx1ZUFzTnVtYmVyKTtiPy4obSl9O18ubkUoKCk9PntpZihhKCkuc2xpZGVyKXt2YXIgbT1fLkIoYSgpLnNsaWRlcixDaGEpO20mJihtLmluaXRpYWxWYWx1ZSYmbS52YWx1ZURlbm9taW5hdG9yP2YobS5pbml0aWFsVmFsdWUvbS52YWx1ZURlbm9taW5hdG9yKTpmKDApKX19LCJSdkhEcmYiKTtyZXR1cm4gXy5LKCJ2YXJpYWJsZS1zcGVlZC1jb250cm9sbGVyLXZpZXctbW9kZWwiLHtjbGFzczoieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTcGVlZEluZGljYXRvckNvbnRhaW5lciJ9LF8uSyhfLk8se0E6KCk9PmUoKT4yLHRoZW46KCk9PgpfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFByZW1pdW1CYWRnZSJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5iYWRnZX0se2JhZGdlVmlld01vZGVsOih7ZGF0YTptfSk9Pl8uSyhfLkVELHtkYXRhOm19KX0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXkiLCJhcmlhLWxpdmUiOiJwb2xpdGUiLCJhcmlhLWF0b21pYyI6InRydWUiLCJhcmlhLWJ1c3kiOmh9LCgpPT5fLmFBKCJQTEFZQkFDS19TUEVFRF9YIix7c3BlZWRfcmF0ZV9wbGFjZWhvbGRlcjpgJHtlKCkudG9GaXhlZCgyKX1gfSkpKSxfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFNsaWRlckNvbnRhaW5lciIsIm9uOmZvY3VzaW4iOmZ1bmN0aW9uKG0pe20udGFyZ2V0LnRhZ05hbWU9PT0iSU5QVVQiJiZrKCEwKX0sIm9uOmZvY3Vzb3V0IjpmdW5jdGlvbihtKXttLnRhcmdldC50YWdOYW1lPT09CiJJTlBVVCImJmsoITEpfX0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLnNsaWRlcn0se2hvcml6b250YWxTbGlkZXJWaWV3TW9kZWw6KHtkYXRhOm19KT0+Xy5LKEZoYSx7ZGF0YTooKT0+KHsuLi5tKCksaW5pdGlhbFZhbHVlOmUoKSoxMDB9KSxmejpsLFl5OmN9KX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lciJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5wbGF5YmFja1NwZWVkQnV0dG9uc30se3ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWw6KHtkYXRhOm19KT0+Xy5LKEdoYSx7ZGF0YTptLGNsYXNzTmFtZToieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxQbGF5YmFja1NwZWVkQnV0dG9uIixvbkNsaWNrOigpPT57dmFyIG49bSgpPy5wbGF5YmFja1NwZWVkQnV0dG9uQ2VudGlWYWx1ZTtuJiYoZihuLzEwMCksZD8uKG4vMTAwKSl9fSl9KSkpfSwiWmEiKTt2YXIgSGhhPW5ldyBfLlZzKCJDT05URU5UX0ZFRURCQUNLX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgbE89Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uVUQpLGM9Xy5wSCh7TmI6KGYsaCk9PntfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKXx8IWZ8fF8uekgoYT8uKCk/LnJlbmRlcmVyQ29udGV4dCl8fE1NKGgpfSxlYjp7VmI6ITEsc3RhdGU6InZpc2libGUifX0pLGQ9Xy55KCkucmVzb2x2ZShfLkluKEhoYSkpLGU9Xy55KCkucmVzb2x2ZShfLkluKERoYSkpO3JldHVybiBfLksoInl0LXNoZWV0LXZpZXctbW9kZWwiLHsib246bW91c2Vkb3duIjpmdW5jdGlvbihmKXtfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKSYmZi5jdXJyZW50VGFyZ2V0IT09Zi50YXJnZXQmJmYucHJldmVudERlZmF1bHQoKX0sIm9uOmZvY3VzIjpmdW5jdGlvbihmKXtfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKSYmTU0oZi5jdXJyZW50VGFyZ2V0KX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKCl7dmFyIGY9Xy56SChhPy4oKT8ucmVuZGVyZXJDb250ZXh0KTsKZiYmYi5yZXNvbHZlQ29tbWFuZChmKX0sY2xhc3M6Xy5QKCJ5dFNoZWV0Vmlld01vZGVsSG9zdCIse3l0U2hlZXRWaWV3TW9kZWxDb250ZXh0dWFsOiExLHl0U2hlZXRWaWV3TW9kZWxEaXNhYmxlQmFja2Ryb3BGaWx0ZXI6ITF9KSxlbDpfLnJGKGMpLHRhYmluZGV4Oi0xfSxfLksoXy5PLHtBOmEsdGhlbjpmPT5fLksoak8se1VlOigpPT5fLksoXy5XLHtkYXRhOigpPT5mKCkuaGVhZGVyfSx7cGFuZWxIZWFkZXJWaWV3TW9kZWw6Zk99KSxqaDohMCxpaDohMSxHYjooKT0+Xy5LKF8uVyx7ZGF0YTooKT0+ZigpLmNvbnRlbnR9LHtjaGVja2JveEdyb3VwVmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLnRELHtkYXRhOmgsV2I6ITF9KSxyYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLkVMLHtkYXRhOmgsV2I6ITF9KSxsaXN0Vmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLkJELHtkYXRhOmgsQmM6ITB9KSx2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbDpfLmtPLApsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCx1cHNlbGxWaWV3TW9kZWw6Xy5oTCxtaW5pQXBwU2NvcmVDaGFsbGVuZ2VWaWV3TW9kZWw6Xy5qTCwuLi4oZSYme3ZpZGVvTm90aWNlc1ZpZXdNb2RlbDplfSksLi4uKGQmJntjb250ZW50RmVlZGJhY2tWaWV3TW9kZWw6KHtkYXRhOmh9KT0+Xy5LKGQse2RhdGE6aCxjbGFzc05hbWU6Inl0U2hlZXRWaWV3TW9kZWxQYWRkZWRDb250ZW50In0pfSl9KSxYaTohMCxTZTooKT0+Xy5LKF8uVyx7ZGF0YTooKT0+ZigpLmZvb3Rlcn0se3BhbmVsRm9vdGVyVmlld01vZGVsOl8uc0R9KSxoaDohMCxVZjohMSxWZjohMSxIYTohMH0pfSkpfSwiJGEiKTtsTy5pZG9tQ29tcGF0PSEwO18ubU89bmV3IF8uVnMoIklDT05fU0VUX1RPS0VOIik7Xy5uTz1uZXcgXy5WcygiSUNPTl9VUkxfUFJPVklERVJfVE9LRU4iKTtfLm9PPW5ldyBfLlZzKCJJQ09OX01BUF9GTl9UT0tFTiIpO3ZhciBTTj1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1hO3RoaXMubz1ifXYoKXt2YXIgYT0oXy54KCJlbmFibGVfd2ViX2RlbGhpX2ljb25zIik/SWhhOkpoYSk/P3RoaXMubztpZihhPy5sZW5ndGgpe2xldCBiPVtdO2E9KG5ldyBTZXQoYSkpLnZhbHVlcygpO2ZvcihsZXQgYyBvZiBhKWZvcihsZXQgZCBvZiBPYmplY3QudmFsdWVzKHpoYSkpYi5wdXNoKHtpY29uTmFtZTpjLGljb25TdHlsZTpkfSk7dGhpcy5qLnlhKGIpfWVsc2UgUHJvbWlzZS5yZXNvbHZlKCl9fTtTTltfLkxuXT1bXy5YTCxfLkluKG5ldyBfLlZzKCJQUkVGRVRDSF9JQ09OU19UT0tFTiIpKV07dmFyIEtoYT0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSxlaGE9e1sxXTp7cGQ6bnVsbCxoZTpudWxsLEtkOm51bGx9LFsyXTp7cGQ6ZnVuY3Rpb24oYSxiLGMpe2E9Yzt4aGEudGVzdChhKSYmKGEuaW5kZXhPZigiJiIpIT0tMSYmKGE9YS5yZXBsYWNlKHJoYSwiJmFtcDsiKSksYS5pbmRleE9mKCI8IikhPS0xJiYoYT1hLnJlcGxhY2Uoc2hhLCImbHQ7IikpLGEuaW5kZXhPZigiPiIpIT0tMSYmKGE9YS5yZXBsYWNlKHRoYSwiJmd0OyIpKSxhLmluZGV4T2YoJyInKSE9LTEmJihhPWEucmVwbGFjZSh1aGEsIiZxdW90OyIpKSxhLmluZGV4T2YoIiciKSE9LTEmJihhPWEucmVwbGFjZSh2aGEsIiYjMzk7IikpLGEuaW5kZXhPZigiXHgwMCIpIT0tMSYmKGE9YS5yZXBsYWNlKHdoYSwiJiMwOyIpKSk7cmV0dXJuIGF9LGhlKGEpe3JldHVybiBhIGluc3RhbmNlb2YgXy5mYn0sS2Q6YT0+Xy55QShhKX0sWzNdOntwZDpmdW5jdGlvbihhLApiLGMpe3JldHVybiBLaGEudGVzdChjKT9jOl8uRnEudG9TdHJpbmcoKX0saGUoYSl7cmV0dXJuIF8uWGEoYSl9LEtkOmE9Pl8uWWEoYSl9LFs0XTp7cGQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5GcS50b1N0cmluZygpfSxoZShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uU2F9LEtkOmE9Pl8uVWEoYSkudG9TdHJpbmcoKX0sWzVdOntwZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGN9LGhlKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSxLZDphPT5hLnRvU3RyaW5nKCl9LFs3XTp7cGQ6ZnVuY3Rpb24oKXtyZXR1cm4iIC8qekNsb3N1cmV6Ki8gIn0saGUoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLmpifSxLZDphPT5fLmxiKGEpfSxbOF06e3BkKGEsYixjKXtjPVN0cmluZyhjKS50b0xvd2VyQ2FzZSgpO2E6e2xldCBkPW51bGw7KGE9Yk9bYV0pJiYoZD1hW2JdKTtpZih0eXBlb2YgZCE9PSJudW1iZXIiJiYoKGE9Yk9bIioiXSkmJihkPWFbYl0pLHR5cGVvZiBkIT09Im51bWJlciIpKXtiPQohMTticmVhayBhfWI9ITA9PT15aGFbZF1bU3RyaW5nKGMpLnRvTG93ZXJDYXNlKCldfXJldHVybiBiP2M6InpDbG9zdXJleiJ9LGhlOm51bGwsS2Q6bnVsbH0sWzEwXTp7cGQ6bnVsbCxoZTpudWxsLEtkOm51bGx9fTtfLnBPPV8uTCgoe2RhdGE6YSx0ZzpiLEhhOmMsaWNvbjpkLHByb2Nlc3NBbGxFbmRwb2ludHM6ZSxwcmV2ZW50RGVmYXVsdDpmLHN0b3BQcm9wYWdhdGlvbjpoLHdJOmssY2xhc3NOYW1lOmwsYnV0dG9uT3ZlcnJpZGVzOm0sUWY6bixpc1N1YnNjcmliZTpwLG9pOnIsQmw6dH0pPT57dmFyIHY9Xy5tRygpLHo9KEYsQyk9PntmPy4oKSYmQy5wcmV2ZW50RGVmYXVsdCgpO2g/LigpJiZDLnN0b3BQcm9wYWdhdGlvbigpO2lmKCFrPy4oKSl7Rj1hKCk7dmFyIEc9ISFlPy4oKTtpZighRi5faXNCdXN5KXtiJiZiKCk7dmFyIEQ9IUYubmF2aWdhdGlvbkVuZHBvaW50fHwhIV8uQihGLm5hdmlnYXRpb25FbmRwb2ludCxfLll6KXx8ISFfLkIoRi5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5aeik7Rz8oRi50cmFja2luZ1BhcmFtcyYmRCYmXy56SihGLnRyYWNraW5nUGFyYW1zKSxGLnNlcnZpY2VFbmRwb2ludCYmXy5BSihGLnNlcnZpY2VFbmRwb2ludCxGLCExLHtldmVudDpDLEJkOnZ9KSxGLm5hdmlnYXRpb25FbmRwb2ludCYmCl8uQUooRi5uYXZpZ2F0aW9uRW5kcG9pbnQsRiwhMSx7ZXZlbnQ6QyxCZDp2fSksRi5jb21tYW5kJiZfLkFKKEYuY29tbWFuZCxGLCExLHtldmVudDpDLEJkOnZ9KSk6KEc9dk4oRi5zZXJ2aWNlRW5kcG9pbnQpfHx2TihGLm5hdmlnYXRpb25FbmRwb2ludCl8fHZOKEYuY29tbWFuZCkpJiZfLkFKKEcsRixELHtldmVudDpDLEJkOnZ9KX19fSxFPSgpPT57aWYoYz8uKCkhPT0hMSlyZXR1cm4gZD8uKCl8fGEoKS5pY29uPy5pY29uVHlwZX0sQT1fLk4oKCk9Pih7Li4uYWhhKHtyZW5kZXJlcjphKCksSW06eix3QTohMCxTYzptPy4oKSxWeTohMCxRZjpuPy4oKSxpc1N1YnNjcmliZTpwPy4oKXx8ITEsQmw6dD8uKCl9KSxvaTpyPy4oKX0pLHZvaWQgMCwiUGM0dDNiIik7cmV0dXJuIF8uSygieXRtLWJ1dHRvbi1yZW5kZXJlciIse2hpZGRlbjooKT0+IWEoKS50ZXh0JiYhXy5ESihhKCkuYWNjZXNzaWJpbGl0eURhdGF8fGEoKS5hY2Nlc3NpYmlsaXR5KSxjbGFzczpfLlAobCwoKT0+RT8uKCk/CmBpY29uLSR7RSgpLnRvTG93ZXJDYXNlKCl9YDp2b2lkIDAse2Rpc2FibGVkOigpPT5hKCkudGhlbWVkQmFzaWNDb2xvclBhbGV0dGUmJl8udU4oYSgpLnRoZW1lZEJhc2ljQ29sb3JQYWxldHRlKX0pfSxfLksoXy5KSyx7ZGF0YTpBLGljb25OYW1lOkV9KSl9LCJhYiIpO18ucE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbkJ1dHRvbkNsaWNrQ2FsbGJhY2s6ITB9fTtfLnFPPV8uTCgoe2RhdGE6YSxRZjpiLHN0eWxlOmMsYnV0dG9uT3ZlcnJpZGVzOmQsY2xhc3NOYW1lOmUsc3RvcFByb3BhZ2F0aW9uOmYsUms6aCxIYzprLHN6Omx9KT0+e3ZhciBbbSxuXT1fLkFDKGEpLHA9KCk9Pnt2YXIgdD1tKCk7dmFyIHY9Yz8uKCk/LmFuaW1hdGVJY29uPT09InRydWUiLHo9dC50b2dnbGVkSWNvbiYmdC50b2dnbGVkSWNvbi5pY29uVHlwZSxFPXQuZGVmYXVsdEljb24mJnQuZGVmYXVsdEljb24uaWNvblR5cGU7dD12P0V8fG51bGw6dC5pc1RvZ2dsZWQmJnp8fEV8fG51bGw7dj1tKCk7cmV0dXJuKGM/LigpPy5hbmltYXRlSWNvbj09PSJ0cnVlIj90OnQ9PT0iTElLRSImJnYuaXNUb2dnbGVkPyJMSUtFX0ZJTExFRCI6dD09PSJESVNMSUtFIiYmdi5pc1RvZ2dsZWQ/IkRJU0xJS0VfRklMTEVEIjp0KT8/dm9pZCAwfSxyPSh0LHYpPT57aD9oKHQsdik6KGY/LigpJiZ2LnN0b3BQcm9wYWdhdGlvbigpLHQ9IW0oKS5pc1RvZ2dsZWQsbih7Li4ubSgpLGlzVG9nZ2xlZDp0fSksCmw/Lih0KSl9O3JldHVybiBfLksoInl0bS10b2dnbGUtYnV0dG9uLXJlbmRlcmVyIix7Y2xhc3M6ZX0sXy5LKF8uSksse2RhdGE6KCk9Pnt2YXIgdD1tKCksdj1tKCksej0hKHYuaXNUb2dnbGVkPyF2LnRvZ2dsZWRTZXJ2aWNlRW5kcG9pbnQ6IXYuZGVmYXVsdFNlcnZpY2VFbmRwb2ludCksRT12O3YuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCYmKEU9e30pO3JldHVybiBkaGEoe3JlbmRlcmVyOnQsSW06cixSdTpfLllEKEUse30seiksU2M6ZD8uKCksVnk6ITAsdG9nZ2xlZDohIW0oKS5pc1RvZ2dsZWQsUWY6Yj8uKCl9KX0saWNvbjooKT0+Xy5LKF8uTUQse2ljb246cCxHZTooKT0+ISFjPy4oKT8uYW5pbWF0ZUljb24sYWN0aXZlOigpPT5tKCkuaXNUb2dnbGVkLEhjOmt9KX0pKX0sImJiIik7Xy5xTy5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e1JrOiEwLHN6OiEwfX07Xy4kTj17S0I6WCgiQUNDT1VOVF9MQUJFTCIpLE1COlgoIkFDVF9PTl9USElTX0NPTU1FTlQiKSxOQjpYKCJBRERfVE9fRFJPUERPV05fTEFCRUwiKSxPQjpYKCJBRF9CQURHRV9ISU5UIiksUEI6WCgiQURfQkFER0VfVEVYVCIpLGNDOlgoIkFMTF9DSEFOTkVMU19MQUJFTCIpLGVDOlgoIkFNQklFTlRfTU9ERSIpLGZDOlgoIkFNQklFTlRfTU9ERV9PRkYiKSxnQzpYKCJBTUJJRU5UX01PREVfT04iKSxoQzpYKCJBTkRST0lEX0RFUFJFQ0FUSU9OX01FU1NBR0VfQk9EWSIpLGlDOlgoIkFORFJPSURfREVQUkVDQVRJT05fTUVTU0FHRV9IRUFERVIiKSxrQzpYKCJBUFBfVVBTRUxMX1NVQlRJVExFIiksbEM6WCgiQVBQX1VQU0VMTF9USVRMRSIpLE5zOlgoIkFVRElPX1RSQUNLIiwiQXVkaW8gVHJhY2siKSxuazpYKCJBVVRPTkFWX1RPR0dMRSIpLG1DOlgoIkFVVE9QTEFZX0lOX1RFTl9TRUNPTkRTIiksbkM6WCgiQVVUT1BMQVlfUEFVU0VEIiksb0M6WCgiQVVUT1BMQVlfUExBWV9OT1ciKSwKT3M6WCgiQVVUT1BMQVlfVVBfTkVYVF9JTiIpLFBzOlgoIkFVVE9fWk9PTSIsIkF1dG8gem9vbSIpLEJBQ0s6WCgiQkFDSyIpLHFDOlgoIkJSQU5ERURfU0lHTl9JTl9ESUFMT0dfREVTQ1JJUFRJT04iLCJBY2Nlc3MgYWxsIGZlYXR1cmVzIGFuZCBnZXQgYSBzZWFtbGVzcyBleHBlcmllbmNlIiksQ0FOQ0VMOlgoIkNBTkNFTCIpLHVDOlgoIkNIQU5ORUxfU1dJVENIRVJfTEFCRUwiKSxDTE9TRTpYKCJDTE9TRSIsImNsb3NlIiksUnM6WCgiQ0xPU0VEX0NBUFRJT05TX0RJU0FCTEVEIiksU3M6WCgiQ0xPU0VEX0NBUFRJT05TX09GRiIpLFRzOlgoIkNMT1NFRF9DQVBUSU9OU19PTiIpLFVzOlgoIkNMT1NFRF9DQVBUSU9OU19PTl9MQU5HVUFHRSIpLHhDOlgoIkNMT1NFX1NFQVJDSF9MQUJFTCIpLHlDOlgoIkNMT1NFX1NFVFRJTkdTX0xBQkVMIiksekM6WCgiQ09NTUVOVF9NT0RBTF9DT05URU5UIiksV3M6WCgiQ09ORklSTV9PSyIpLEFDOlgoIkNPTk5FQ1RfVE9fVEhFX0lOVEVSTkVUIiksClhzOlgoIkNPUElFRF9UT19DTElQQk9BUkQiKSxZczpYKCJDT1BZIiksVG46WCgiQ09QWV9ERUJVR19JTkZPIiksWnM6WCgiQ09QWV9FTUJFRF9DT0RFIiksQ0M6WCgiQ09QWV9MSU5LX0xBQkVMIiksYnQ6WCgiQ09QWV9WSURFT19VUkwiKSxmdDpYKCJDT1BZX1ZJREVPX1VSTF9BVF9DVVJSRU5UX1RJTUUiKSxEQzpYKCJDUkVBVEVfQ0hBTk5FTF9USVRMRSIpLElDOlgoIkRFTEVURV9GUk9NX0RPV05MT0FEUyIpLFhuOlgoIkRJQUxPRyIpLERPTkU6WCgiRE9ORSIpLE5DOlgoIkRPV05MT0FEIiksa3Q6WCgiRkFJTEVEX0NPUFlfRVJST1JfTUVTU0FHRSIpLGJEOlgoIkZMQUdfQ09ORklSTSIpLGNEOlgoIkZMQUdfQ09OVEVOVCIpLGREOlgoIkZMQUdfTEFCRUwiKSxlRDpYKCJGTEFHX1RJVExFIiksZkQ6WCgiRlVMTFNDUkVFTl9HRU5FUklDX0VSUk9SIiksVkU6WCgiR0lGVFMiLCJHaWZ0cyIpLFdFOlgoIkdPT0dMRV9DT01QQU5ZIiksbXQ6WCgiSElERV9QTEFZRVJfQ09OVFJPTFMiLAoiSGlkZSBwbGF5ZXIgY29udHJvbHMiKSxZRTpYKCJISURFX1BMQVlMSVNUX1ZJREVPUyIpLFpFOlgoIkhJREVfU0VBUkNIX0ZJTFRFUlNfTEFCRUwiKSxIT01FOlgoIkhPTUUiLCJIb21lIiksZEY6WCgiSU5WQUxJRF9SRVNQT05TRV9SRUNFSVZFRCIpLGdGOlgoIkxFQVZFX0FfQ09NTUVOVF9USVRMRSIsIkxlYXZlIGEgY29tbWVudD8iKSxoRjpYKCJMSUJSQVJZIiwiTGlicmFyeSIpLGtGOlgoIkxJU1RFTklORyIpLExPQURJTkc6WCgiTE9BRElORyIpLGxGOlgoIkxPTkdfUFJFU1NfTUlDX1RPX1NQRUFLIiwiTG9uZyBwcmVzcyBtaWNfaWNvbl9wbGFjZWhvbGRlciB0byBzcGVhayIpLHV0OlgoIkxPT1AiKSxvRjpYKCJNRU5VX0RFU0tUT1AiKSxwRjpYKCJNRU5VX0VYSVQiKSxxRjpYKCJNRU5VX0ZFRURCQUNLIiksckY6WCgiTUVOVV9IRUxQIiksc0Y6WCgiTUVOVV9JTVBSRVNTVU0iKSx2dDpYKCJNRU5VX1BMQVlFUl9TRVRUSU5HUyIpLHRGOlgoIk1FTlVfU0VUVElOR1MiKSx1RjpYKCJNRU5VX1NJR05fSU4iKSwKdkY6WCgiTUVOVV9USVRMRSIpLHdGOlgoIk1FTlVfWU9VUl9EQVRBIiksQUY6WCgiTU9SRV9JTkZPIiksd3Q6WCgiTU9SRV9PUFRJT05TIiksYm86WCgiTU9SRV9WSURFT1MiLCJNb3JlIHZpZGVvcyIpLHh0OlgoIk1PUkVfVklERU9TX0NMT1NFX0JVVFRPTl9BUklBX0xBQkVMIiwiSGlkZSBtb3JlIHZpZGVvcyIpLHp0OlgoIk1PUkVfVklERU9TX0ZST01fQ0hBTk5FTCIsIk1vcmUgdmlkZW9zIGZyb20gJGNoYW5uZWxfbmFtZV9wbGFjZWhvbGRlciIpLGVvOlgoIk1PUkVfVklERU9TX05FWFRfQlVUVE9OX0FSSUFfTEFCRUwiLCJOZXh0IHZpZGVvcyIpLGZvOlgoIk1PUkVfVklERU9TX1BSRVZJT1VTX0JVVFRPTl9BUklBX0xBQkVMIiwiUHJldmlvdXMgdmlkZW9zIiksQXQ6WCgiTVVURV9WT0xVTUUiKSxDRjpYKCJORVdfUExBWUxJU1QiKSxERjpYKCJORVhUX1ZJREVPIiksQ3Q6WCgiTk9USUZJQ0FUSU9OX0VSUk9SX01FU1NBR0UiKSxGRjpYKCJOT1RfRk9VTkRfQ1RBIiksR0Y6WCgiTk9UX0ZPVU5EX01FU1NBR0UiKSwKSEY6WCgiTk9UX0ZPVU5EX1RJVExFIiksSUY6WCgiTk9fRE9XTkxPQURTIiksSkY6WCgiTk9fTUlDX0lOUFVUIiksS0Y6WCgiT0ZGTElORV9DSEVDS19DT05ORUNUSU9OIiksRHQ6WCgiT09QU19NRVNTQUdFIiksTUY6WCgiT1BFTl9BUFAiKSxORjpYKCJPUEVOX1lPVVRVQkUiKSxPRjpYKCJPUEVOX1lPVVRVQkVfQVBQIiwiT3BlbiBZb3VUdWJlIGFwcCIpLFBBVVNFOlgoIlBBVVNFIiksVUY6WCgiUExBWSIpLEV0OlgoIlBMQVlFUl9DQVBUSU9OIiksRnQ6WCgiUExBWUVSX0NBUFRJT05fT0ZGIiksVkY6WCgiUExBWUVSX0NBUFRJT05fT04iKSxHdDpYKCJQTEFZRVJfRE9VQkxFX1NQRUVEX1VTRVJfRURVIiksV0Y6WCgiUExBWUVSX0RPVUJMRV9UQVBfVE9fU0VFSyIpLFhGOlgoIlBMQVlFUl9ET1VCTEVfVEFQX1RPX1NIT1dfT1JfSElERV9QTEFZRVJfQ09OVFJPTFMiKSxIdDpYKCJQTEFZRVJfRVhJVF9GVUxMU0NSRUVOIiksSXQ6WCgiUExBWUVSX0ZBU1RGT1JXQVJEX1NFQ09ORFMiKSwKSnQ6WCgiUExBWUVSX0ZVTExTQ1JFRU4iKSxsbzpYKCJQTEFZRVJfTElWRV9MQUJFTCIpLFlGOlgoIlBMQVlFUl9MSVZFX05PVyIpLFpGOlgoIlBMQVlFUl9NSU5JTUlaRSIpLEt0OlgoIlBMQVlFUl9ORVhUIiksTHQ6WCgiUExBWUVSX1BBVVNFIiksUGc6WCgiUExBWUVSX1BMQVkiKSxNdDpYKCJQTEFZRVJfUFJFVklPVVMiKSxhRzpYKCJQTEFZRVJfUFJPR1JFU1NfQkFSIiksTnQ6WCgiUExBWUVSX1FVQUxJVFkiKSxPdDpYKCJQTEFZRVJfUVVBTElUWV9BVVRPIiksUHQ6WCgiUExBWUVSX1JFUExBWSIpLFF0OlgoIlBMQVlFUl9SRVdJTkRfU0VDT05EUyIpLG1vOlgoIlBMQVlFUl9TUEVFRCIpLGJHOlgoIlBMQVlFUl9TUEVFRFVQX1VTRVJfRURVIiksUnQ6WCgiUExBWUVSX1NQRUVEX0RFQ1JFQVNFIiksU3Q6WCgiUExBWUVSX1NQRUVEX0lOQ1JFQVNFIiksbm86WCgiUExBWUVSX1NQRUVEX05PUk1BTCIpLFR0OlgoIlBMQVlFUl9TUEVFRF9SRUNFTlQiKSxVdDpYKCJQTEFZRVJfVElNRV9EVVJBVElPTiIpLApWdDpYKCJQTEFZRVJfVElNRV9FTEFQU0VEIiksY0c6WCgiUExBWUxJU1RfREVTQ1JJUFRJT05fSU5WQUxJRF9DSEFSQUNURVJTIiksZEc6WCgiUExBWUxJU1RfTUlYX0RFVEFJTEVEX0xPTkdfQllMSU5FIiksZUc6WCgiUExBWUxJU1RfTkFNRV9JTlZBTElEX0NIQVJBQ1RFUlMiKSxmRzpYKCJQTEFZTElTVF9OQU1FX01JU1NJTkciKSxnRzpYKCJQTEFZTElTVF9OQU1FX1RPT19MT05HIiksaEc6WCgiUExBWUxJU1RfUEFORUxfRU5EX09GX1BMQVlMSVNUIiksaUc6WCgiUExBWUxJU1RfUEFORUxfTkVYVCIpLGpHOlgoIlBMQVlMSVNUX1BBTkVMX1VOTElTVEVEX1BMQVlMSVNUIiksa0c6WCgiUExBWUxJU1RfVEVYVF9JTlBVVF9DSEFSX0NPVU5UIiksbEc6WCgiUExBWV9BTEwiKSxtRzpYKCJQTEVBU0VfRklYX0VSUk9SUyIpLFh0OlgoIlBSRU1JVU1fQkFER0VfTEFCRUwiLCJQcmVtaXVtIiksbkc6WCgiUFJFVklPVVNfVklERU8iKSxvRzpYKCJQUklWQUNZX1BPTElDWSIpLHJHOlgoIlJFTE9BRCIpLApzRzpYKCJSRVFVSVJFRF9MQUJFTCIpLHlHOlgoIlNBVkVfUExBWUxJU1QiKSxBRzpYKCJTQ1JVQl9TTElERV9VU0VSX0VEVSIpLENHOlgoIlNFQVJDSCIsIlNlYXJjaCIpLERHOlgoIlNFQVJDSF9BUFBFTkRfTEFCRUwiKSxFRzpYKCJTRUFSQ0hfQ0hBTk5FTCIpLEZHOlgoIlNFQVJDSF9DTEVBUl9MQUJFTCIpLEdHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9BTEJVTV9OT19BUlRJU1QiLCJBbGJ1bSIpLEhHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9NT1ZJRSIsIk1vdmllIiksSUc6WCgiU0VBUkNIX0VOVElUWV9TVUdHRVNUSU9OX1NPTkdfTk9fQVJUSVNUIiwiU29uZyIpLEpHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9UVl9TSE9XIiwiVFYgU2hvdyIpLEtHOlgoIlNFQVJDSF9GSUxURVJTX0xBQkVMIiksTEc6WCgiU0VBUkNIX0xBQkVMIiksTUc6WCgiU0VBUkNIX1BQUF9QTEFDRUhPTERFUl9URVhUIiksTkc6WCgiU0VFS19TTElERVIiKSxPRzpYKCJTRVRUSU5HU19MQUJFTCIpLApQRzpYKCJTRVRUSU5HU19NSUNfUEVSTUlTU0lPTiIpLFNHOlgoIlNIT1JUU19UQUJfTEFCRUwiLCJTaG9ydHMiKSxURzpYKCJTSE9XX0xFU1MiKSxVRzpYKCJTSE9XX01PUkUiKSxadDpYKCJTSE9XX1BMQVlFUl9DT05UUk9MUyIsIlNob3cgcGxheWVyIGNvbnRyb2xzIiksVkc6WCgiU0hPV19QTEFZTElTVF9WSURFT1MiKSxXRzpYKCJTSE9XX1NFQVJDSF9GSUxURVJTX0xBQkVMIiksYXU6WCgiU0lHTl9JTl9MQUJFTCIpLFpHOlgoIlNJR05fSU5fT05fV0VCIikseWs6WCgiU1RBQkxFX1ZPTFVNRSIpLGpIOlgoIlNUQUJMRV9WT0xVTUVfT0ZGIiksa0g6WCgiU1RBQkxFX1ZPTFVNRV9PTiIpLGJ1OlgoIlNUQVRTX0ZPUl9ORVJEUyIpLGxIOlgoIlNVR0dFU1RJT05fRElTTUlTU0VEX0xBQkVMIiksbUg6WCgiU1VHR0VTVElPTl9ESVNNSVNTX0xBQkVMIiksbkg6WCgiU1VHR0VTVElPTl9ORVdfVklERU9TX1RFWFQiKSxvSDpYKCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9MQUJFTCIsCiJWaWV3IGltYWdlIHNvdXJjZSIpLHBIOlgoIlNVR0dFU1RJT05fVEhVTUJOQUlMX0xBQkVMIikscUg6WCgiVEVSTVNfT0ZfU0VSVklDRSIpLHJIOlgoIlRJTUVTVEFNUF9NSU5VVEVTIiksc0g6WCgiVElNRVNUQU1QX1NFQ09ORFMiKSx0SDpYKCJUT0dHTEVfT0ZGIiksdUg6WCgiVE9HR0xFX09OIiksdkg6WCgiVFJFTkRJTkciKSxkdTpYKCJUUk9VQkxFU0hPT1RfUExBWUJBQ0tfSVNTVUUiKSxldTpYKCJUUllfQUdBSU5fTEFURVIiKSx3SDpYKCJUUllfQUdBSU5fTUlDX1BFUk1JU1NJT04iKSx4SDpYKCJUVVJOX09GRl9BVVRPUExBWV9DT05GSVJNX0JVVFRPTl9USVRMRSIpLHlIOlgoIlRVUk5fT0ZGX0FVVE9QTEFZX0RJQUxPR19ERVNDUklQVElPTiIpLHpIOlgoIlRVUk5fT0ZGX0FVVE9QTEFZX0RJQUxPR19USVRMRSIpLGd1OlgoIlVOTVVURV9WT0xVTUUiKSxzbzpYKCJWSURFT19MSU5LX0xBQkVMIil9O18uTGhhPU9iamVjdC5mcmVlemU/T2JqZWN0LmZyZWV6ZShPYmplY3QuY3JlYXRlKG51bGwpKTp7fTtfLk5OPSgpPT57fTt3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz8uYmluZCh3aW5kb3cpO18uWk49Xy5MKGE9Pnt2YXIge2xhYmVsOmIsb25jbGljazpjLHNob3dTcGlubmVyOmQsdGk6ZSxlbmdhZ2VtZW50UGFuZWw6ZixLeDpoLERwOmsscmVsYXRpdmU6bCxvcGFjaXR5Om19PV8uREMoYSx7c2hvd1NwaW5uZXI6ITEsUks6ITEsdGk6ITEsZW5nYWdlbWVudFBhbmVsOiExLERwOiExLHJlbGF0aXZlOiExLEt4OiExLG9wYWNpdHk6dm9pZCAwfSk7cmV0dXJuIF8uSygieXR3LXNjcmltIix7Y2xhc3M6Xy5QKCJ5dFdlYlNjcmltSG9zdCIsInl0V2ViU2NyaW1Ib3N0TW9kZXJuT3ZlcmxheSIse3l0V2ViU2NyaW1Ib3N0Qm90dG9tU2hlZXQ6ZSx5dFdlYlNjcmltSG9zdEVuZ2FnZW1lbnRQYW5lbDooKT0+IWUoKSYmZigpLHl0V2ViU2NyaW1Ib3N0RHJhZ2dhYmxlRW5nYWdlbWVudFBhbmVsOigpPT4hZSgpJiZmKCkmJmgoKSx5dFdlYlNjcmltSG9zdERyYXdlckxheW91dDooKT0+IWUoKSYmIWYoKSYmaygpLHl0V2ViU2NyaW1Ib3N0UmVsYXRpdmU6bH0pLCJvbjpjbGljayI6Yywib246dG91Y2htb3ZlIjpmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCk7Cm4uc3RvcFByb3BhZ2F0aW9uKCl9LHN0eWxlOigpPT5tKCkhPT12b2lkIDA/YGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAke20oKX0pO2A6IiJ9LF8uSyhfLk8se0E6ZCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFdlYlNjcmltRGlhbG9nQ29udGFpbmVyIn0sXy5LKF8uWkwsbnVsbCkpfSksXy5LKCJidXR0b24iLHtjbGFzczoieXRXZWJTY3JpbUhpZGRlbkJ1dHRvbiIsImFyaWEtbGFiZWwiOmJ9KSl9LCJjYiIpO3ZhciBGTixFTixJTixHTixMTixITixraGE7Rk49MDtFTj1uZXcgTWFwO0lOPW51bGw7R049bnVsbDtMTj0hMTtfLkROPVtdO0hOPSFfLngoImNhbmNlbF9tb2RhbF9wZW5kaW5nX2FuaW1hdGlvbnNfa2lsbHN3aXRjaCIpO2toYT0hXy54KCJyZXNob3dfbmVzdGVkX21vZGFsX3NpYmxpbmdzX2tpbGxzd2l0Y2giKTt2YXIgck87Cl8uc089Xy5MKCh7dHE6YX0pPT57ZnVuY3Rpb24gYihHKXtpZigoYSgpJiZkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8IWEoKSYmIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50KSYmRyl7dmFyIEQ9Ry5RayxIPUcudmlld01vZGVsO2sudmFsdWU/RihHKTpEPy5pc0Rpc2FibGVkJiZEPy5kaXNhYmxlZENvbW1hbmQ/KENOKCEwKSxfLkFKKEQuZGlzYWJsZWRDb21tYW5kLGgudmFsdWUsITEpKTood2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI2JvdHRvbS1zaGVldCImJl8uJE0oImJvdHRvbS1zaGVldCIsITApLGsudmFsdWU9ITAsZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImJvdHRvbS1zaGVldC1vcGVuIiwiIiksXy5vTSgpLmRpc3BhdGNoKGJOKCEwKSksck89Xy5tRygpLHAoRCksdihIKSxDTighMCksaC52YWx1ZXx8Xy5JcChFcnJvcigiRmQiKSksXy5KTihoLnZhbHVlLEQ/LmZvY3VzT25DbG9zZSwhMCkpfX1mdW5jdGlvbiBjKCl7ay52YWx1ZSYmKGsudmFsdWU9ITEsZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbS1zaGVldC1vcGVuIiksCm4oKT8uR2g/LigpLHJPPXZvaWQgMCxwKHZvaWQgMCksdih2b2lkIDApLENOKCExKSxfLktOKGgudmFsdWUpLF8ub00oKS5kaXNwYXRjaChiTighMSkpKX1mdW5jdGlvbiBkKCl7ay52YWx1ZSYmd2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI2JvdHRvbS1zaGVldCImJmMoKX1hc3luYyBmdW5jdGlvbiBlKCl7YXdhaXQgXy5GSjt3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjYm90dG9tLXNoZWV0IiYmKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fHxfLllNP18uJE0oIiIsITApOmF3YWl0IF8uWk0oKSxkKCkpO0EoKSYmKGIoQSgpKSxGKHZvaWQgMCkpfWZ1bmN0aW9uIGYoRyl7Xy56TigpO0cuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGg9Xy51RSgiYm90dG9tLXNoZWV0LWNvbnRhaW5lciIpLGs9Xy51TSghMSksW2wsbV09Xy5KKHZvaWQgMCx2b2lkIDAsInZXdVhrYiIpLG49bCxwPW0sW3IsdF09Xy5KKHZvaWQgMCx2b2lkIDAsIkJmUkFMYiIpLHY9dCxbeixFXT1fLkoodm9pZCAwLHZvaWQgMCwKInk3dE5sYyIpLEE9eixGPUUsQz0oKT0+ISghbigpJiYhcigpKTtfLlVKKCgpPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGQpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdGF0ZS1uYXZpZ2F0ZXN0YXJ0IixjKTtfLnkoKS5yZXNvbHZlKF8uY0wpLlB6KHt3ZzpHPT57RyYmYih7dmlld01vZGVsOkcudmlld01vZGVsLFFrOkcuUWt9KX0sSmU6YXN5bmMoKT0+e2F3YWl0IGUoKX0sZG06YXN5bmMoKT0+ISFfLnhOKCksWHA6KCk9PmgudmFsdWUsb3c6Rz0+R30sYSgpKTtfLll1KCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGQpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdGF0ZS1uYXZpZ2F0ZXN0YXJ0IixjKX0pfSk7cmV0dXJuIF8uSygiYm90dG9tLXNoZWV0LWNvbnRhaW5lciIse2VsOmgscm9sZToiZGlhbG9nIixoaWRkZW46KCk9PiFDKCksImFyaWEtbW9kYWwiOiEwLCJhcmlhLWxhYmVsIjooKT0+bigpPy5oZWFkZXJUaXRsZT8KbigpLmhlYWRlclRpdGxlOl8uJE4uWG59LF8uSyhfLk8se0E6Qyx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLlpOLHtsYWJlbDpfLiROLkNMT1NFLG9uY2xpY2s6Xy56Tix0aTohMH0pLF8uSyhfLk8se0E6cix0aGVuOkc9Pl8uSyhsTyx7ZGF0YTpHfSksVzooKT0+Xy5LKF8uTyx7QTpuLHRoZW46Rz0+Xy5wRyhyT3x8e30sKCk9Pl8uSyhqTyx7SGE6KCk9PkcoKS5IYSxwZjooKT0+RygpLnBmLEdrOigpPT5HKCkuR2ssR2g6KCk9PkcoKS5HaCxmb2N1c09uQ2xvc2U6KCk9PkcoKS5mb2N1c09uQ2xvc2UsaXNEaXNhYmxlZDooKT0+RygpLmlzRGlzYWJsZWQsZGlzYWJsZWRDb21tYW5kOigpPT5HKCkuZGlzYWJsZWRDb21tYW5kLFVlOigpPT5fLksoXy50Tix7Y29tcG9uZW50OigpPT5HKCkuVWV9KSxqaDooKT0+ISFHKCkuVWUsR2I6KCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PkcoKS5HYn0pLFhpOigpPT4hIUcoKS5HYixTZTooKT0+Xy5LKF8udE4se2NvbXBvbmVudDooKT0+CkcoKS5TZX0pLGhoOigpPT4hIUcoKS5TZSxoZWFkZXJUaXRsZTooKT0+RygpLmhlYWRlclRpdGxlLGhlYWRlclN1YnRpdGxlOigpPT5HKCkuaGVhZGVyU3VidGl0bGUsV2Y6KCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PkcoKS5XZn0pLGloOigpPT4hIUcoKS5XZixOZjooKT0+Xy5LKF8udE4se2NvbXBvbmVudDooKT0+RygpLk5mfSksVWY6KCk9PiEhRygpLk5mLE9mOigpPT5fLksoXy50Tix7Y29tcG9uZW50OigpPT5HKCkuT2Z9KSxWZjooKT0+ISFHKCkuT2YsUmU6KCk9PkcoKS5SZSxNZjooKT0+RygpLk1mLFBmOigpPT5HKCkuUGZ9KSl9KX0pLF8uSygiYnV0dG9uIix7Y2xhc3M6ImNsb3NlLWJ1dHRvbiIsImFyaWEtbGFiZWwiOl8uJE4uQ0xPU0UsIm9uOmNsaWNrIjpmfSkpfSkpfSwiZGIiKTtfLnNPLmlkb21Db21wYXQ9ITA7Xy50Tz1fLkwoKHthcmlhTGFiZWw6YSxVSDpiLGFyaWFQcmVzc2VkOmMsYXJpYUV4cGFuZGVkOmQsYXJpYURpc2FibGVkOmUsY2xhc3NOYW1lOmYsY29udGVudDpoLGJxOmssaWQ6bCxuYW1lOm0sb25jbGljazpuLG9udG91Y2hzdGFydDpwLG9udG91Y2htb3ZlOnIsb250b3VjaGVuZDp0LGJ4OnZ9KT0+e3Y9Xy51RSgiYnV0dG9uIix2KTtyZXR1cm4gXy5LKCJidXR0b24iLHtpZDpsLGNsYXNzOl8uUCgiaWNvbi1idXR0b24iLGYpLGVsOnYsImFyaWEtbGFiZWwiOmEsImFyaWEtbGFiZWxsZWRieSI6YiwiYXJpYS1wcmVzc2VkIjpjLCJhcmlhLWV4cGFuZGVkIjpkLCJhcmlhLWhhc3BvcHVwIjprLCJhcmlhLWRpc2FibGVkIjplLCJvbjpjbGljayI6biwib246dG91Y2hzdGFydCI6bE4ocCksIm9uOnRvdWNobW92ZSI6bE4ociksIm9uOnRvdWNoZW5kIjpsTih0KX0sXy5LKF8uTyx7QTooKT0+ISFoLHRoZW46KCk9Pmg/LigpLFc6KCk9Pl8uSyhfLk1ELHtpY29uOm19KX0pKX0sImViIik7Cl8udE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntjb250ZW50OiEwLG9uY2xpY2s6ITAsb250b3VjaHN0YXJ0OiEwLG9udG91Y2htb3ZlOiEwLG9udG91Y2hlbmQ6ITAsYng6ITB9fTt2YXIgUk4sUE4sT047Uk49ITA7ClBOPXtBVkFUQVJfQ0lSQ0xFX0JMVUU6IkFWQVRBUl9MT0dHRURfT1VUIixCQUNLOiJBUlJPV19CQUNLIixCTE9DS19VU0VSOiJCTE9DSyIsQlJPQURDQVNUOiJwb2RjYXN0IixDQVBUSU9OUzoiQ0xPU0VEX0NBUFRJT04iLENIRUNLX0JMVUU6IkNIRUNLIixDSEVDS19DSVJDTEVfRklMTEVEOiJDSEVDS19DSVJDTEVfRklMTEVEIixDSEVDS19DSVJDTEVfVEhJQ0s6IkNIRUNLX0NJUkNMRV9PVVRMSU5FIixDT1VSU0U6ImxpZ2h0YnVsYiIsRElTTElLRV9DT01NRU5UOiJESVNMSUtFIixESVNMSUtFX0NPTU1FTlRfRklMTEVEOiJESVNMSUtFX0ZJTExFRCIsRElTTElLRV9TRUxFQ1RFRDoiRElTTElLRV9GSUxMRUQiLERJU01JU1NBTF9CTEFDSzoiRElTTUlTU0FMIixFWFBBTkRfTU9SRToiRVhQQU5EIixGQVNISU9OX0xPR086ImZhc2hpb24iLEdBTUlORzoiZ2FtaW5nIixHQU1JTkdfTE9HTzoiZ2FtaW5nIixHRUFSOiJTRVRUSU5HUyIsSEVMUDoiSEVMUF9PVVRMSU5FIixMSUtFX0NPTU1FTlQ6IkxJS0UiLApMSUtFX0NPTU1FTlRfRklMTEVEOiJMSUtFX0ZJTExFRCIsTElLRV9TRUxFQ1RFRDoiTElLRV9GSUxMRUQiLExJVkU6IlJBREFSX0xJVkUiLExPR086IllPVVRVQkUiLE1PUkVfQ0hFVlJPTjoiRVhQQU5EIixNT1JFX1ZFUlRfV0hJVEU6Ik1PUkVfVkVSVCIsTVVTSUM6ImF1ZGlvIixNVVNJQ19GSUxMRUQ6ImF1ZGlvX2ZpbGxlZCIsTkVXUzoibmV3cyIsT0ZGSUNJQUxfQVJUSVNUX0JBREdFOiJhdWRpbyIsUExBWUFCTEVTX0xPR086InRpY190YWNfdG9lIixQTEFZRVJfTkVYVDoiU0tJUF9ORVhUX0ZJTExFRCIsUExBWUVSX1BBVVNFOiJQQVVTRV9GSUxMRUQiLFBMQVlFUl9QTEFZOiJQTEFZX0FSUk9XX0ZJTExFRCIsUExBWUVSX1BSRVZJT1VTOiJTS0lQX1BSRVZJT1VTX0ZJTExFRCIsUExBWUVSX1JFUExBWToiUkVQTEFZIixQTEFZX0FMTDoiUExBWV9BUlJPV19GSUxMRUQiLFJFTU9WRToiRElTTUlTU0FMIixTSE9SVFNfRElTTElLRToic2hvcnRzX3RodW1ic19kb3duIixTSE9SVFNfTElLRToic2hvcnRzX3RodW1ic191cCIsClNQT05TT1JTSElQX1NUQVI6IlNQT05TT1JTSElQX1NUQVJfRklMTEVEIixUQUJfQUNDT1VOVDoiQVZBVEFSX0xPR0dFRF9PVVQiLFRBQl9UUkVORElORzoiZmlyZSIsVEFCX1RSRU5ESU5HX0ZJTExFRDoiZmlyZV9maWxsZWQiLFRSRU5ESU5HOiJmaXJlIixUUk9QSFk6InRyb3BoeSIsVk9MVU1FX0RPV05fT1VUTElORToiVk9MVU1FX0RPV04iLFZPTFVNRV9VUDoiVk9MVU1FX1VQX0ZJTExFRCIsVk9MVU1FX1VQX09VVExJTkU6IlZPTFVNRV9VUCIsWU9VVFVCRV9MT0dPOiJMT0dPX1dJVEhfVEVYVCIsWU9VVFVCRV9QUkVNSVVNX0xPR086IllPVVRVQkVfUFJFTUlVTV9MT0dPX1NIT1JUIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1JFRF8xNjoieW91dHViZV9zaG9ydHNfbm9fdHJpYW5nbGVfZmlsbGVkIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1dISVRFXzE2OiJ5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZV9maWxsZWQifTsKT049e0xPR086IkxPR08iLFBMQVlBQkxFU19MT0dPOiJwbGF5YWJsZXMiLFNIT1JUU19ESVNMSUtFOiJ0aHVtYl9kb3duIixTSE9SVFNfTElLRToidGh1bWJfdXAiLFRBQl9UUkVORElORzoidHJlbmRpbmciLFRBQl9UUkVORElOR19GSUxMRUQ6InRyZW5kaW5nX2ZpbGxlZCIsVFJFTkRJTkc6InRyZW5kaW5nIn07Cl8udU89Xy5MKCh7aWNvbjphLGFjdGl2ZTpiLGNsYXNzTmFtZTpjLHN0eWxlOmQseXA6ZSxoYzpmLHJvbGU6aCxHZTprLEhjOmwsYXJpYUhpZGRlbjptLGFyaWFFeHBhbmRlZDpuLGFyaWFMYWJlbDpwLGlkOnIsYWc6dCxzaXplOnZ9KT0+e25oYSgpO3ZhciB6PSgpPT5RTihhPy4oKSksRT1fLk4oKCk9PnthOnt2YXIgRj1RTihhPy4oKSksQz1iPy4oKTt2YXIgRz12Py4oKTtpZihGKXt2YXIgRD1fLnkoKS5yZXNvbHZlKF8uWEwpLEg9Ri50b0xvd2VyQ2FzZSgpO0Y9e2ljb25OYW1lOkgsaWNvblN0eWxlOkguZW5kc1dpdGgoIl9maWxsZWQiKXx8Ri5lbmRzV2l0aCgiX29uIil8fEM/InlvdXR1YmVfZmlsbCI6dm9pZCAwLGljb25TaXplOkd9O0M9RC5qKEYpOyFDJiZHJiYoRi5pY29uU2l6ZT12b2lkIDAsQz1ELmooRikpOyFDJiZILmVuZHNXaXRoKCJfZmlsbGVkIikmJihGLmljb25OYW1lPUguc3Vic3RyaW5nKDAsSC5sZW5ndGgtNyksQz1ELmooRikpO0N8fChGLmljb25TdHlsZT12b2lkIDAsCkM9RC5qKEYpKTtpZihDKXtHPUY7YnJlYWsgYX1fLklwKG5ldyBfLlhqKCJJY29uIG5vdCBzdXBwb3J0ZWQiLHtpY29uTmFtZTpGLmljb25OYW1lfSkpfUc9dm9pZCAwfXJldHVybiBHfSx2b2lkIDAsIk02WGtHYiIpLEE9KCk9Pih7aWNvbldpZHRoOiIxMDAlIixpY29uSGVpZ2h0OiIxMDAlIixhZzp0Py4oKX0pO3JldHVybiBfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5RTihhPy4oKSkmJms/LigpJiZiPy4oKSE9PXZvaWQgMCYmT2JqZWN0LnZhbHVlcyhBaGEpLmluY2x1ZGVzKFFOKGE/LigpKXx8IiIpfSwoKT0+Xy5LKF8udE0se2FuaW1hdGVkSWNvblR5cGU6eixhY3RpdmU6KCk9PiEhYj8uKCksSGM6bCxzaXplOnYsSEE6KCk9Pl8uSyhfLnVPLHtpY29uOmEsYWN0aXZlOmIsR2U6ITF9KX0pKSxfLksoXy5DRSx7d2hlbjooKT0+UU4oYT8uKCkpJiZFKCl9LCgpPT5fLksoImMzLWljb24iLHtjbGFzczpjLHN0eWxlOmQscm9sZTpoLCJkYXRhLXNlbGVjdGVkIjplLCJkYXRhLWRpc2FibGVkIjpmLAoiZmlsbC1pY29uIjooKT0+Yj8uKCk9PT0hMCxpZDpyLCJpY29uLXN0YXRlLW91dGxpbmUiOigpPT5iPy4oKT09PSExPyIiOnZvaWQgMCwiaWNvbi1zdGF0ZS1maWxsZWQiOigpPT5iPy4oKT09PSEwPyIiOnZvaWQgMCwiYXJpYS1oaWRkZW4iOm0sImFyaWEtZXhwYW5kZWQiOm4sImFyaWEtbGFiZWwiOnB9LF8uSyhfLllMLHtkYXRhOigpPT5FKCksb3B0aW9uczpBfSkpKSl9LCJmYiIpO18udU8uaWRvbUNvbXBhdD0hMDtfLkwoKHtuYW1lOmEsbGFiZWw6YixvbmNsaWNrOmMsYnE6ZCxyb2xlOmV9KT0+Xy5LKCJkaXYiLHtjbGFzczoiaWNvbi1idXR0b24iLHJvbGU6ZSwiYXJpYS1sYWJlbCI6YiwiYXJpYS1oYXNwb3B1cCI6ZCwib246Y2xpY2siOmN9LF8uSyhfLnVPLHtpY29uOmF9KSksImdiIikuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbmNsaWNrOiEwfX07CnZhciBKaGE9ImFsaWduX2xlZnQgYXJyb3dfbGVmdCBmbGFnIGhvbWUgbG9nb193aXRoX3RleHQgbWVzc2FnZV9idWJibGVfYWxlcnQgbWljIG9wZW5fbmV3IG92ZXJmbG93X2hvcml6b250YWwgb3ZlcmZsb3dfdmVydGljYWwgcGxheV9jaXJjbGVfc2hvcnRzIHNlYXJjaCBzaG9ydHNfY29tbWVudCBzaG9ydHNfc2hhcmUgc2hvcnRzX3RodW1ic19kb3duIHNob3J0c190aHVtYnNfdXAgd2F2ZWZvcm0geF9tYXJrIHlvdXR1YmVfc2hvcnRzIHlvdXR1YmVfc2hvcnRzX2JyYW5kXzI0Ii5zcGxpdCgiICIpLEloYT0iYWxlcnRfYnViYmxlIGFycm93X2xlZnQgYXJyb3dfdXBfcmlnaHQgZmxhZyBob21lIGxvZ29fd2l0aF90ZXh0IG1pYyBvdmVyZmxvd19ob3Jpem9udGFsIG92ZXJmbG93X3ZlcnRpY2FsIHBsYXlfY2lyY2xlX3Nob3J0cyBzZWFyY2ggc2hhcmUgc2hvcnRzIHRleHRfYWxpZ25fbGVmdCB0ZXh0X2J1YmJsZSB0aHVtYl9kb3duIHRodW1iX3VwIHdhdmVmb3JtIHggeW91dHViZV9zaG9ydHNfYnJhbmRfMjQiLnNwbGl0KCIgIik7Xy52Tz1fLkwoYT0+e3ZhciB7aWNvblR5cGU6YixsYWJlbDpjLGFyaWFMYWJlbDpkLGFyaWFQcmVzc2VkOmUsZGlzYWJsZWQ6ZixvbmNsaWNrOmgsc3R5bGU6ayxWbDpsLExtOm0sT3g6bixiYXNpY0NvbG9yUGFsZXR0ZURhdGE6cCxkYXRhOnIsYXJpYUhpZGRlbjp0fT1fLkRDKGEse2ljb25UeXBlOiIiLFZsOiExLExtOiIiLE94OiExLGFyaWFIaWRkZW46ITF9KTtfLnVFKCJkaXYiLHY9PntyPy4oKSYmbWhhKHYscj8uKCkpfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJidXR0b24td2l0aC1pY29uIGJ1dHRvbi1yZW5kZXJlciBjb21wYWN0IixtKSxzdHlsZTooKT0+e3ZhciB2O2lmKHY9cD8uKCkpe3ZhciB6PSIiLEU7Zm9yKEUgaW4gdil7aWYoIXYuaGFzT3duUHJvcGVydHkoRSkpY29udGludWU7bGV0IEE9dltFXSxGPUUuaW5jbHVkZXMoImZvcmVncm91bmQiKT8iY29sb3IiOlN0cmluZyhFKS5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7QSYmCih6Kz1gJHtGfToke18uTkQoQSl9O2ApfXY9en1lbHNlIHY9dm9pZCAwO3JldHVybiB2Py50b1N0cmluZygpfSwiZGF0YS1zdHlsZSI6KCk9PnR5cGVvZiBrPy4oKT09PSJzdHJpbmciP2soKTprPy4oKT8uc3R5bGVUeXBlLCJkYXRhLWljb24tb25seSI6KCk9PiFjPy4oKSwiaXMtYnVzeSI6bCwiYXJpYS1idXN5IjpsLCJhcmlhLWhpZGRlbiI6dH0sXy5LKCJidXR0b24iLHtjbGFzczoiYnV0dG9uLXdpdGgtaWNvbi1idXR0b24iLCJvbjpjbGljayI6ZnVuY3Rpb24odil7aD8uKHYpO3Yuc3RvcFByb3BhZ2F0aW9uKCl9LGRpc2FibGVkOmYsImFyaWEtbGFiZWwiOigpPT5kPy4oKXx8IiIsImFyaWEtcHJlc3NlZCI6KCk9PmU/LigpPz92b2lkIDB9LF8uSygiZGl2Iix7Y2xhc3M6ImJ1dHRvbi13aXRoLWljb24taW5uZXIifSxfLksoXy5PLHtBOigpPT4hbj8uKCkmJmIoKSx0aGVuOigpPT5fLksoXy51Tyx7aWNvbjpiLGNsYXNzTmFtZToiYnV0dG9uLXJlbmRlcmVyLWljb24ifSl9KSxfLksoImRpdiIsCntjbGFzczoiYnV0dG9uLXJlbmRlcmVyLXRleHQifSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKF8uSUose2RhdGE6Y30pfSkpLF8uSyhfLk8se0E6KCk9Pm4oKSYmYigpLHRoZW46KCk9Pl8uSyhfLnVPLHtpY29uOmIsY2xhc3NOYW1lOiJidXR0b24tcmVuZGVyZXItaWNvbiJ9KX0pLF8uSyhfLk8se0E6bCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJidXR0b24td2l0aC1pY29uLXNwaW5uZXIgc3Bpbm5lciJ9KX0pKSkpfSwiaWIiKTtfLkhDW18uUkFbImRlZmF1bHQiXV09b2hhOyhmdW5jdGlvbigpe3ZhciBhPV8uY0I7Xy5jQj1iPT57YT8uKGIpO18uT0UoKCk9Pntmb3IobGV0IGM9MDtjPGIubGVuZ3RoO2MrKylUTihiW2NdKX0pfX0pKCk7Xy53Tz1fLkwoKHtjaGlsZHJlbjphLG9uY2xpY2s6Yixyb2xlOmMsSHk6ZH0pPT57dmFyIGU9Xy51RSgiYnV0dG9uIik7Xy5VSigoKT0+e2Q/LihlLnZhbHVlKX0pO3JldHVybiBfLksoInl0bS1tZW51LWl0ZW0iLG51bGwsXy5LKCJidXR0b24iLHtjbGFzczoibWVudS1pdGVtLWJ1dHRvbiIsZWw6ZSwib246Y2xpY2siOmIscm9sZTpjfSxhKSl9LCJqYiIpO18ud08uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbmNsaWNrOiEwLEh5OiEwfX07Xy5MKCh7dXJsOmEsbEs6YixjaGlsZHJlbjpjfSk9Pl8uSygieXRtLW1lbnUtaXRlbSIsbnVsbCxfLksoImEiLHtocmVmOmEsY2xhc3M6Im1lbnUtaXRlbS1idXR0b24iLHRhcmdldDooKT0+Yj8uKCk/Il9ibGFuayI6dm9pZCAwfSxjKSksImtiIikuaWRvbUNvbXBhdD0hMDsKXy5MKCh7Y29tbWFuZDphLGNoaWxkcmVuOmJ9KT0+Xy5LKCJ5dG0tbWVudS1pdGVtIixudWxsLF8uSyhfLm5ILHtjb21tYW5kOigpPT5hKCk/P3ZvaWQgMCxjbGFzc05hbWU6Im1lbnUtaXRlbS1idXR0b24ifSxiKSksImxiIikuaWRvbUNvbXBhdD0hMDt2YXIgVk4sV04sW1lOLHBoYV09Xy5KKG51bGwsdm9pZCAwLCJHQ0tnOGUiKSx4Tz1fLkwoKHtEaDphfSk9Pl8uSyhfLndPLG51bGwsXy5LKCJkaXYiLHtjbGFzczoibWVudS1jYW5jZWwtYnV0dG9uIn0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5UZCxjbGFzc05hbWU6Im1lbnUtY2FuY2VsLWljb24ifSksKCk9PmEoKS5jYW5jZWxCdXR0b25MYWJlbCkpLCJtYiIpLFhOPV8uTCgoe0RoOmEsY2hpbGRyZW46Yn0pPT57dmFyIGM9Xy51RSgiZGl2IiwoKT0+e30pO3JldHVybiBfLksoImRpdiIse2VsOmMsY2xhc3M6Xy5QKCJtZW51LWNvbnRlbnQiLHsibWVudS1ib3R0b20iOigpPT5hKCkubnEsIm1lbnUtc2hvdy1pY29ucyI6KCk9PmEoKS5IYXx8YSgpLm5xfHxhKCkuaXNGdWxsV2lkdGgsInJvdW5kZWQtY29udGFpbmVyIjooKT0+IWEoKS5pc0Z1bGxXaWR0aH0pLCJvbjpjbGljayI6ZnVuY3Rpb24oKXthKCkuU3d8fGEoKS5FSXx8Xy5VTigpfSxyb2xlOigpPT5hKCkuaXNGdWxsV2lkdGg/CnZvaWQgMDoiZGlhbG9nIiwiYXJpYS1tb2RhbCI6KCk9PiFhKCkuaXNGdWxsV2lkdGgsImFyaWEtbGFiZWxsZWRieSI6KCk9PmEoKS5WSH0sYixfLksoXy5PLHtBOigpPT4hYSgpLlN3LHRoZW46KCk9Pl8uSyhfLk8se0E6KCk9PiEhYSgpLm5xLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6ImJvdHRvbS1tZW51LWNhbmNlbCJ9LF8uSyh4Tyx7RGg6YX0pKSxXOigpPT5fLksoeE8se0RoOmF9KX0pfSkpfSwibmIiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtY2hhbmdlIixhTyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGFPKTt2YXIgeU87eU89Xy5MKGE9Pnt2YXIgYj1hLmNoaWxkcmVuLGM9Xy5adHx8dm9pZCAwLGQ9Xy5tRygpO3JldHVybiBfLksoInl0bS1tZW51IixudWxsLGIoe29uQ2xpY2s6ZT0+e2Euc3RvcFByb3BhZ2F0aW9uPy4oKSYmZS5zdG9wUHJvcGFnYXRpb24oKTthLnByZXZlbnREZWZhdWx0Py4oKSYmZS5wcmV2ZW50RGVmYXVsdCgpO3FoYSh7Y29udGVudDphLmNvbnRlbnQsY2FuY2VsQnV0dG9uTGFiZWw6YS5jYW5jZWxCdXR0b25MYWJlbD8uKCksVGQ6YS5UZD8uKCksY2xhc3NOYW1lOmEuZGY/LigpLGZvY3VzT25DbG9zZTplLmN1cnJlbnRUYXJnZXQsSGE6YS5IYT8uKCksaXNEaXNhYmxlZDphLmlzRGlzYWJsZWQ/LigpLGRpc2FibGVkQ29tbWFuZDphLmRpc2FibGVkQ29tbWFuZD8uKCksb3duZXI6YyxGQTpkfSl9fSkpfSwicGIiKTsKXy56Tz1fLkwoYT0+Xy5LKHlPLHsuLi5hLGNvbnRlbnQ6YS5jaGlsZHJlbn0sKHtvbkNsaWNrOmJ9KT0+Xy5LKF8uTyx7QTooKT0+YS5idXR0b25PdmVycmlkZXM/LigpLHRoZW46Yz0+Xy5LKF8uSksse2RhdGE6KCk9Pih7b25UYXA6YixpY29uUG9zaXRpb246Imljb24tb25seSIsc3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHNpemU6Ik0iLHN0YXRlOiJhY3RpdmUiLGFjY2Vzc2liaWxpdHlMYWJlbDphLmxhYmVsPy4oKSwuLi5jKCl9KSxpY29uTmFtZTphLmljb25UeXBlfSksVzooKT0+Xy5LKF8udE8se25hbWU6YS5pY29uVHlwZSxhcmlhTGFiZWw6YS5sYWJlbCxjbGFzc05hbWU6Xy5QKGEuRmgse3NtYWxsOmEubGJ9KSxvbmNsaWNrOmIsYnE6ITB9KX0pKSwicWIiKTtfLnpPLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7Y2hpbGRyZW46ITB9fTsKXy5NaGE9Xy5MKGE9Pl8uSyh5Tyx7Li4uYSxjb250ZW50OmEuY2hpbGRyZW59LCh7b25DbGljazpifSk9Pl8uSyhfLk8se0E6KCk9PmEuYnV0dG9uT3ZlcnJpZGVzPy4oKSx0aGVuOmM9Pl8uSyhfLkpLLHtkYXRhOigpPT4oe29uVGFwOmIsaWNvblBvc2l0aW9uOiJpY29uLXdpdGgtbGFiZWwiLHN0eWxlOiJtb25vIix0eXBlOiJ0ZXh0IixzaXplOiJNIixzdGF0ZToiYWN0aXZlIixhY2Nlc3NpYmlsaXR5TGFiZWw6YS5hcmlhTGFiZWw/LigpLFdhOmEubGFiZWw/LigpP18uQUYoYS5sYWJlbCgpKTp2b2lkIDAsLi4uYygpfSksaWNvbk5hbWU6YS5pY29uVHlwZX0pLFc6KCk9Pl8uSyhfLnZPLHtpY29uVHlwZTphLmljb25UeXBlLGxhYmVsOmEubGFiZWwsYXJpYUxhYmVsOmEuYXJpYUxhYmVsLGFyaWFQcmVzc2VkOiExLG9uY2xpY2s6YixzdHlsZTphLnN0eWxlLFZsOmEuVmwsTG06YS5hSX0pfSkpLCJyYiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgT2hhLFBoYSxCTyxRaGEsUmhhLENPLFNoYSxHTyxITyxWaGEsVWhhLFdoYSxYaGEsWWhhLFpoYSxhaWEsUE8sYmlhLGNpYSxkaWEsZWlhLGZpYSxoaWEsZ2lhLFdPLGlpYSxYTyxqaWEsa2lhLGVQLGhQLGxQLG1pYSxuaWEsa1AsalAsTmhhLFRoYTtPaGE9ZnVuY3Rpb24oYSl7Zm9yKGxldCBiIG9mIE9iamVjdC52YWx1ZXMoTmhhKSlpZihfLmlxKGIpPT09YSlyZXR1cm4hMDtyZXR1cm4hMX07ClBoYT1mdW5jdGlvbihhLGIsYyxkLGUsZixoLGssbCl7dmFyIG09KDAsXy5EdykoKTtmPW5ldyBfLlR3KHt2ZVR5cGU6Yix5b3V0dWJlRGF0YTpmLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTtsPV8uV3coe2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOmx9LG0pO2UmJihsLmN0dEF1dGhJbmZvPWUpO2U9e2NzbjptLHBhZ2VWZTpmLmdldEFzSnNvbigpfTtfLngoImV4cGVjdGF0aW9uX2xvZ2dpbmciKSYmayYmay5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyYmKGUuc2NyZWVuQ3JlYXRlZExvZ2dpbmdFeHBlY3RhdGlvbnM9ay5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyk7YyYmYy52aXN1YWxFbGVtZW50PyhlLmltcGxpY2l0R2VzdHVyZT17cGFyZW50Q3NuOmMuY2xpZW50U2NyZWVuTm9uY2UsZ2VzdHVyZWRWZTpjLnZpc3VhbEVsZW1lbnQuZ2V0QXNKc29uKCl9LGgmJihlLmltcGxpY2l0R2VzdHVyZS5nZXN0dXJlVHlwZT1oKSk6YyYmXy5JcChuZXcgXy5YaigibmV3U2NyZWVuKCkgcGFyZW50IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIFZFIC0gcm9vdFZlIiwKYikpO2QmJihlLmNsb25lQ3NuPWQpO2E/Xy5DcCgic2NyZWVuQ3JlYXRlZCIsZSxhLGwpOl8uRXAoInNjcmVlbkNyZWF0ZWQiLGUsbCk7Xy5zbShfLkN3LG5ldyBfLkJ3KG0pKTtfLkV3LmNsZWFyKCk7Xy5Gdy5jbGVhcigpO18uR3cuY2xlYXIoKTtyZXR1cm4gbX07Xy5BTz1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtfLnd4KGEsYixjLGUsaCl9O0JPPWZ1bmN0aW9uKGEsYil7YS5LLmhhcyhiKXx8YS5LLnNldChiLFtdKTtyZXR1cm4gYS5LLmdldChiKX07ClFoYT1mdW5jdGlvbihhLGIsYz0wKXtfLlZpKCgpPT57Yi50aGVuKGQ9PnthLmouaGFzKGMpJiZhLkImJmEuQigpO3ZhciBlPV8uaXEoYyksZj1fLlZ3KGMpO2lmKGUmJmYpe3ZhciBoPXthdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTozfTtkPy5yZXNwb25zZT8udHJhY2tpbmdQYXJhbXMmJl8uYngoYS5jbGllbnQsZSxmLF8uVXcoZC5yZXNwb25zZS50cmFja2luZ1BhcmFtcyksITEsaCk7ZD8ucGxheWVyUmVzcG9uc2U/LnRyYWNraW5nUGFyYW1zJiZfLmJ4KGEuY2xpZW50LGUsZixfLlV3KGQucGxheWVyUmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpfX0pfSkoKX07UmhhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5ELmxlbmd0aDtiKyspe3ZhciBjPWEuRFtiXTt0cnl7YygpfWNhdGNoKGQpe18uR3AoZCl9fWEuRC5sZW5ndGg9MDtmb3IoYj0wO2I8YS5VLmxlbmd0aDtiKyspe2M9YS5VW2JdO3RyeXtjKCl9Y2F0Y2goZCl7Xy5HcChkKX19fTsKQ089ZnVuY3Rpb24oYSxiLGMsZD17fSl7dmFyIGU9dm9pZCAwO2QubGF5ZXJ8fChkLmxheWVyPTApO2U9ZC5wYXJlbnRMYXllciE9PXZvaWQgMD9kLnBhcmVudExheWVyOmQubGF5ZXI7dmFyIGY9Xy5pcShlKTtlPV8uVncoZSk7dmFyIGg9Y3x8ZSxrO2gmJihkLnBhcmVudENzbiE9PXZvaWQgMD9rPXtjbGllbnRTY3JlZW5Ob25jZTpkLnBhcmVudENzbix2aXN1YWxFbGVtZW50Omh9OmYmJmYhPT0iVU5ERUZJTkVEX0NTTiImJihrPXtjbGllbnRTY3JlZW5Ob25jZTpmLHZpc3VhbEVsZW1lbnQ6aH0pKTt2YXIgbCxtPV8udygiRVZFTlRfSUQiKTtmPT09IlVOREVGSU5FRF9DU04iJiZtJiYobD17c2VydmxldERhdGE6e3NlcmlhbGl6ZWRTZXJ2bGV0RXZlbnRJZDptfX0pO18ueCgiY29tYmluZV92ZV9ncmFmdHMiKSYmZiYmXy5reChhLGYpO18ueCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSYmaCYmZiYmXy5jeChoLGYpO3RyeXt2YXIgbj1QaGEoYS5jbGllbnQsYixrLApkLnRwLGQuY3R0QXV0aEluZm8sbCxkLmltcGxpY2l0R2VzdHVyZVR5cGUsZC5sb2dnaW5nRXhwZWN0YXRpb25zLGQuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpfWNhdGNoKHIpe18uY3cocix7R0s6Yixyb290VmU6ZSxxSzpjLG5JOmYscEs6ayx0cDpkLnRwfSk7Xy5HcChyKTtyZXR1cm59Xy5tcShuLGIsZC5sYXllcixkLmN0dEF1dGhJbmZvKTtmJiZmIT09IlVOREVGSU5FRF9DU04iJiZlJiYhT2hhKGYpJiYoXy52eChhLmNsaWVudCxmLGUsITApLGEuby5kZWxldGUoZikpO2I9Qk8oYSxkLmxheWVyfHwwKTtiLmxlbmd0aD4wJiYhYltiLmxlbmd0aC0xXS5jc24mJihiW2IubGVuZ3RoLTFdLmNzbj1ufHwiIik7Xy56cSh7Y2xpZW50U2NyZWVuTm9uY2U6bn0pO18uRHgoKTtfLlZpKF8uQngoKS5LKS5iaW5kKF8uQngoKSkoKTt2YXIgcD1fLlZ3KGQubGF5ZXIpO2YmJmYhPT0iVU5ERUZJTkVEX0NTTiImJnAmJl8ueCgibXVzaWNfd2ViX21hcmtfcm9vdF92aXNpYmxlIikmJl8uVmkoXy5BTykodm9pZCAwLApuLHAsdm9pZCAwLHZvaWQgMCx2b2lkIDApO2Euai5kZWxldGUoZC5sYXllcnx8MCk7YS5CPXZvaWQgMDthLmhhLmdldChkLmxheWVyKT8uZm9yRWFjaCgocix0KT0+e3I/Xy5peChhLHQscixkLmxheWVyKTpwJiZfLml4KGEsdCxwLGQubGF5ZXIpfSk7UmhhKGEpfTtTaGE9ZnVuY3Rpb24oYSxiLGMsZD17fSl7YS5qLmFkZChkLmxheWVyfHwwKTthLkI9KCk9PntDTyhhLGIsYyxkKTt2YXIgZT1fLlZ3KGQubGF5ZXIpO2lmKGUpe2xldCBmPV8uaXEoZC5sYXllcik7Zm9yKGxldCBoIG9mIGEuWSl7bGV0IGs9aFswXSxsPWhbMV18fGU7Zj9fLmp4KGEsayxsLGQubGF5ZXIsZik6Xy5peChhLGssbCxkLmxheWVyKX1mb3IobGV0IGggb2YgYS5NKV8ubXgoYSxoWzBdLGhbMV0pfX07Y3x8Xy5pcShkLmxheWVyKXx8YS5CKCk7aWYoZC5mbClmb3IobGV0IGUgb2YgZC5mbClRaGEoYSxlLGQubGF5ZXIpO2Vsc2UgXy5HcChFcnJvcigiTmIiKSl9OwpfLkRPPWZ1bmN0aW9uKGEsYixjLGQ9e30pe18uVmkoKCk9PntUaGEuaW5jbHVkZXMoYil8fChfLklwKG5ldyBfLlhqKCJjcmVhdGVDbGllbnRTY3JlZW4oKSBjYWxsZWQgd2l0aCBhIG5vbi1wYWdlIFZFIixiKSksYj04Mzc2OSk7aWYoIWQuaXNIaXN0b3J5TmF2aWdhdGlvbil7bGV0IGU9ZC5sYXllcnx8MDthLmdhLnNldChlLFtdKTtCTyhhLGUpLnB1c2goe3Jvb3RWZTpiLGtleTpkLmtleXx8IiJ9KX1hLlk9W107YS5NPVtdO2QuZmw/U2hhKGEsYixjLGQpOkNPKGEsYixjLGQpfSkoKX07Xy5FTz1mdW5jdGlvbihhLGIsYyxkKXtiPV8uZGIoYik7cmV0dXJuIGIhPT12b2lkIDA/YS5vcGVuKGIsYyxkKTpudWxsfTtfLkZPPWZ1bmN0aW9uKGEsYixjKXtjPWMhPW51bGw/Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYykpOiIiO3JldHVybiBfLlNiKGEsYitjKX07R089ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5ReShfLmVkKGEsYikpPz8hMX07CkhPPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5XeChhLGIsXy54dyhjKSwhMSl9O18uSU89ZnVuY3Rpb24oYSxiKXt2YXIgYztfLnViKGEsZD0+e2M9YltkXTtyZXR1cm4hIWN9KTtyZXR1cm4gY307Xy5KTz1mdW5jdGlvbihhLGIsYz0wKXsoYz1fLmlxKGMpKSYmYSYmXy5WaShfLkFPKSh2b2lkIDAsYyxhLHZvaWQgMCxiLHZvaWQgMCl9O18uS089ZnVuY3Rpb24oKXtyZXR1cm4hIV8udygiTVdFQl9GSVJFRk9YX1lUX0xBVU5DSEVSIil9O18uTE89ZnVuY3Rpb24oKXtyZXR1cm4gXy5rTT9fLmtNOl8ubE0oKX07Xy5NTz1mdW5jdGlvbihhLGI9NSxjKXtpZihiIT09MCl7dmFyIGQ9dHlwZW9mIGE9PT0iZnVuY3Rpb24iP2EoKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGEpO2Q/Yz8ucmw/Xy5kTihkKTpkLmZvY3VzKCk6c2V0VGltZW91dCgoKT0+e18uTU8oYSxiLTEsYyl9LDUwMCl9fTtWaGE9ZnVuY3Rpb24oKXt2YXIgYT1VaGEoKTtyZXR1cm4gSE8oYSw3LCEwKX07ClVoYT1mdW5jdGlvbigpe3ZhciBhPW5ldyBOTzthPUhPKGEsNSwhMCk7YT1ITyhhLDIsITApO2E9SE8oYSw0LCExKTthPUhPKGEsOCwhMCk7cmV0dXJuIEhPKGEsOSwhMCl9O1doYT1mdW5jdGlvbigpe3ZhciBhPVZoYSgpO3JldHVybiBITyhhLDEwLCEwKX07WGhhPWZ1bmN0aW9uKCl7dmFyIGE9V2hhKCk7cmV0dXJuIEhPKGEsMTIsITApfTtZaGE9ZnVuY3Rpb24oKXt2YXIgYT1YaGEoKTtyZXR1cm4gSE8oYSwxMywhMSl9O1poYT1mdW5jdGlvbigpe3ZhciBhPVloYSgpO3JldHVybiBITyhhLDE0LCEwKX07YWlhPWZ1bmN0aW9uKGEpe3JldHVybiAkaGEuc29tZShiPT5iLnRlc3QoYSkpfTsKUE89ZnVuY3Rpb24oYSxiKXt7dmFyIGM9YS5mb3JtQ29udGVudD8ubG9jYWxlO2xldCBkPWM/LnNwbGl0KCItIilbMF07Yz1jJiZPTy5pbmNsdWRlcyhjKT9jOmQmJk9PLmluY2x1ZGVzKGQpP2Q6dm9pZCAwfWM9KGM/PyJlbiIpLnJlcGxhY2VBbGwoIi0iLCJfIikudG9Mb3dlckNhc2UoKTthPWEuaW5pdGlhbGl6YXRpb25EYXRhPy51c2VOaWdodGx5UmVsZWFzZT8ibmlnaHRseSI6ImxpdmUiO3JldHVybiBiPy5nZXRFbmFibGVBbG9oYUJpbmFyeVNwbGl0Py4oKT8oMCxfLll4KWBodHRwczovL3d3dy5nc3RhdGljLmNvbS91c2Vydm9pY2UvZmVlZGJhY2svY2xpZW50L3dlYi8ke2F9L21haW5fbGlnaHRfYmluYXJ5LmpzYDooMCxfLll4KWBodHRwczovL3d3dy5nc3RhdGljLmNvbS91c2Vydm9pY2UvZmVlZGJhY2svY2xpZW50L3dlYi8ke2F9L21haW5fYmluYXJ5X18ke2N9LmpzYH07CmJpYT1mdW5jdGlvbihhLGIsYyxkKXtpZihRTyYmUk89PT1iKXJldHVybiBRTztSTz1iO3ZhciBlPVBPKGEsZCk7cmV0dXJuIFFPPWIuZmVlZGJhY2tWMkdsb2JhbE9iamVjdD9Qcm9taXNlLnJlc29sdmUoYi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0KTpuZXcgUHJvbWlzZSgoZixoKT0+e3ZhciBrPV8uQ2QoIlNDUklQVCIpO18ub2IoayxlKTtrLm9ubG9hZD0oKT0+e2IuZmVlZGJhY2tWMkdsb2JhbE9iamVjdD9mKGIuZmVlZGJhY2tWMkdsb2JhbE9iamVjdCk6aChFcnJvcigiR2QiKSl9O2sub25lcnJvcj0oKT0+e2goRXJyb3IoIkhkYCIrZS50b1N0cmluZygpKSl9O2MuYm9keS5hcHBlbmRDaGlsZChrKX0pfTsKY2lhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKFNPJiZUTz09PWIpcmV0dXJuIFNPO1RPPWI7dmFyIGU9UE8oYSxkKTtyZXR1cm4gU089Yi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0P1Byb21pc2UucmVzb2x2ZShiLmZlZWRiYWNrVjJHbG9iYWxPYmplY3QpOm5ldyBQcm9taXNlKChmLGgpPT57dmFyIGs9Xy5DZCgiU0NSSVBUIik7Xy5vYihrLGUpO2sub25sb2FkPSgpPT57Yi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0P2YoYi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0KTpoKEVycm9yKCJHZCIpKX07ay5vbmVycm9yPSgpPT57aChFcnJvcigiSGRgIitlLnRvU3RyaW5nKCkpKX07Yy5ib2R5LmFwcGVuZENoaWxkKGspfSl9O2RpYT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1EYXRlLm5vdygpO2E9YXdhaXQgKGF3YWl0IGJpYShhLGMsZCxiKSkuaW5pdGlhbGl6ZUZlZWRiYWNrQ2xpZW50QXN5bmMoYSxlLGIpO2EuaW5pdGlhdGVBbG9oYSgpO3JldHVybiBhfTsKZWlhPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPURhdGUubm93KCk7YT1hd2FpdCAoYXdhaXQgY2lhKGEsYyxkLmRvY3VtZW50LGIpKS5pbml0aWFsaXplRmVlZGJhY2tDbGllbnRBc3luYyhhLGUsYixkKTthLmluaXRpYXRlQWxvaGEoKTtyZXR1cm4gYX07CmZpYT1hc3luYyBmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Y3x8Xy51O2lmKGI/LmdldEVuYWJsZUFsb2hhQmluYXJ5U3BsaXQ/LigpKXtpZihkLmlzRm9ybU9wZW5lZCl0aHJvdyBuZXcgVU87ZC5pc0Zvcm1PcGVuZWQ9ITA7YS5jYWxsYmFja3M9YS5jYWxsYmFja3N8fHt9O2xldCBlPWEuY2FsbGJhY2tzLm9uQ2xvc2V8fCgoKT0+e30pO2EuY2FsbGJhY2tzLm9uQ2xvc2U9Zj0+e2QuaXNGb3JtT3BlbmVkPSExO2UoZil9O3RyeXtyZXR1cm4gZWlhKGEsYixkLGQpfWNhdGNoKGYpe3Rocm93IGQuaXNGb3JtT3BlbmVkPSExLGY7fX1lbHNle2lmKGQuaXNGb3JtT3BlbmVkKXRocm93IG5ldyBVTztkLmlzRm9ybU9wZW5lZD0hMDthLmNhbGxiYWNrcz1hLmNhbGxiYWNrc3x8e307bGV0IGU9YS5jYWxsYmFja3Mub25DbG9zZXx8KCgpPT57fSk7YS5jYWxsYmFja3Mub25DbG9zZT1mPT57ZC5pc0Zvcm1PcGVuZWQ9ITE7ZShmKX07dHJ5e3JldHVybiBkaWEoYSxiLGQsZC5kb2N1bWVudCl9Y2F0Y2goZil7dGhyb3cgZC5pc0Zvcm1PcGVuZWQ9CiExLGY7fX19O2hpYT1hc3luYyBmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUHJvbWlzZSgoYyxkKT0+e051bWJlci5pc0ludGVnZXIoTnVtYmVyKGEpKSYmTnVtYmVyKGEpPjA/KGQ9Z2lhKGI/PyIiKSsiL2Fsb2hhX2Zvcm1fcHJvcGVydGllcz9wcm9kdWN0SWQ9IithLF8ubHkoZCxlPT57ZT1lLnRhcmdldDt2YXIgZj1udWxsO3RyeXt2YXIgaD1KU09OLGs9aC5zdHJpbmdpZnk7aWYoZS5yYSl7dmFyIGw9ZS5yYS5yZXNwb25zZVRleHQ7bC5pbmRleE9mKCIpXX0nXG4iKT09MCYmKGw9bC5zdWJzdHJpbmcoNSkpO3ZhciBtPV8uRXYobCl9ZWxzZSBtPXZvaWQgMDtmPV8uWHgoVk8say5jYWxsKGgsbSkpfWNhdGNoKG4pe2s9bmV3IFZPLG09WmhhKCksbT1ITyhtLDE1LCEwKSxtPUhPKG0sMjAsITEpLG09SE8obSwyNSwhMSksbT1ITyhtLDI2LCExKSxmPV8uS3coaywxLG0pfWMoZil9LCJHRVQiLCIiLHt9LDJFMywhMCkpOmQoRXJyb3IoIklkYCIrYSkpfSl9OwpnaWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGFpYShhKT9hOiJodHRwczovL3d3dy5nb29nbGUuY29tL3Rvb2xzL2ZlZWRiYWNrIn07CldPPWZ1bmN0aW9uKGEsYixjLGQpe2EudGltZU9mU3RhcnRDYWxsPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3ZhciBlPWN8fF8udSxmPWUuZG9jdW1lbnQsaD1hLm5vbmNlfHxfLmliKGUuZG9jdW1lbnQpO2gmJiFhLm5vbmNlJiYoYS5ub25jZT1oKTtpZihhLmZsb3c9PSJoZWxwIil7dmFyIGs9Xy5zYSgiZG9jdW1lbnQubG9jYXRpb24uaHJlZiIsZSk7IWEuaGVscENlbnRlckNvbnRleHQmJmsmJihhLmhlbHBDZW50ZXJDb250ZXh0PWsuc3Vic3RyaW5nKDAsMTIwMCkpO2s9ITA7aWYoYiYmSlNPTiYmSlNPTi5zdHJpbmdpZnkpe2xldCBsPUpTT04uc3RyaW5naWZ5KGIpOyhrPWwubGVuZ3RoPD0xMjAwKSYmKGEucHNkSnNvbj1sKX1rfHwoYj17aW52YWxpZFBzZDohMH0pfWI9W2EsYixjLGRdO2UuR09PR0xFX0ZFRURCQUNLX1NUQVJUX0FSR1VNRU5UUz1iO2M9YS5mZWVkYmFja1NlcnZlclVyaXx8Ii8vd3d3Lmdvb2dsZS5jb20vdG9vbHMvZmVlZGJhY2siO2lmKGQ9ZS5HT09HTEVfRkVFREJBQ0tfU1RBUlQpZC5hcHBseShlLApiKTtlbHNle2U9YysiL2xvYWQuanM/Ijtmb3IobGV0IGwgaW4gYSliPWFbbF0sYj09bnVsbHx8Xy5BYShiKXx8KGUrPWVuY29kZVVSSUNvbXBvbmVudChsKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyImIik7YT1fLnhkKGYpLmNyZWF0ZUVsZW1lbnQoIlNDUklQVCIpO2gmJmEuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7Xy5vYihhLF8uVGEoZSkpO2YuYm9keS5hcHBlbmRDaGlsZChhKX19OwppaWE9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5mbG93PT09InN1Ym1pdCIsZj0hIV8uZHIsaD10eXBlb2Ygd2luZG93IT09InVuZGVmaW5lZCImJiEhKHdpbmRvdy5fX2thcm1hX198fHdpbmRvdy5qYXNtaW5lfHx3aW5kb3cubW9jaGF8fHdpbmRvdy5qZXN0KTtpZihlJiZoKVdPKGEsYixjLGQpO2Vsc2V7aD0oYXdhaXQgaGlhKGEucHJvZHVjdElkLGEuZmVlZGJhY2tTZXJ2ZXJVcmkpKT8udigpO2Y9IWZ8fGg/LmdldEVuYWJsZU13ZWIoKTt2YXIgaz0hYS50aW55Tm9Qb2ludGVyfHxoPy5nZXRFbmFibGVUaW55Tm9Qb2ludGVyKCk7Zj0hZSYmKCFofHxoLmdldEFsb2hhQXV0b0dhUm9sbG91dCgpJiZmJiZrKTtlPWUmJmg/LmdldEVuYWJsZUFsb2hhSGVhZGxlc3MoKSYmYS5yZXBvcnQ7Znx8ZT9hd2FpdCBYTyhhLGIsYyxoLGQpOldPKGEsYixjLGQpfX07ClhPPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Y3x8Xy51LGg9YS5zZXJ2ZXJFbnZpcm9ubWVudD09PSJERVYiO2M9Y3x8Xy51O2M9YS5ub25jZXx8Xy5pYihjLmRvY3VtZW50KTtoPXtpbnRlZ3JhdGlvbktleXM6e3Byb2R1Y3RJZDphLnByb2R1Y3RJZCxmZWVkYmFja0J1Y2tldDphLmJ1Y2tldCx0cmlnZ2VySWQ6YS50cmlnZ2VySWQsbWljcm9mZWVkYmFja1Njb3JlOmEubWljcm9mZWVkYmFja1Njb3JlfSxjYWxsYmFja3M6e29uQ2xvc2U6YS5jYWxsYmFjayxvbkxvYWQ6YS5vbkxvYWRDYWxsYmFja30sZm9ybUNvbnRlbnQ6e2xvY2FsZTphLmxvY2FsZSxkaXNhYmxlU2NyZWVuc2hvdDphLmRpc2FibGVTY3JlZW5zaG90dGluZyxwcm9kdWN0RGlzcGxheU5hbWU6dm9pZCAwLGFubm91bmNlbWVudDp2b2lkIDAsaXNzdWVDYXRlZ29yaWVzOnZvaWQgMCxpbmNsdWRlU2V2ZXJpdHlTZWxlY3Rpb246dm9pZCAwLGN1c3RvbUltYWdlU3JjOnZvaWQgMCx0aGFua1lvdU1lc3NhZ2U6dm9pZCAwLAp1c2VyRW1haWw6dm9pZCAwLGRlZmF1bHRGb3JtSW5wdXRWYWx1ZXM6dm9pZCAwLGRlZmF1bHRGb3JtSW5wdXRWYWx1ZXNTdHJpbmc6dm9pZCAwLGFidXNlTGluazphLmFidXNlTGluayxhZGRpdGlvbmFsRGF0YUNvbnNlbnQ6YS5hZGRpdGlvbmFsRGF0YUNvbnNlbnR9LGluaXRpYWxpemF0aW9uRGF0YTp7aXNMb2NhbFNlcnZlcjpoLG5vbmNlOmMsdXNlTmlnaHRseVJlbGVhc2U6aCxmZWVkYmFja0pzVXJsOnZvaWQgMCxmZWVkYmFja0Nzc1VybDp2b2lkIDAsZmVlZGJhY2tKc1VybFNlcmlhbGl6ZWQ6dm9pZCAwLGZlZWRiYWNrQ3NzVXJsU2VyaWFsaXplZDp2b2lkIDAsc3VibWlzc2lvblNlcnZlclVyaTphLmZlZWRiYWNrU2VydmVyVXJpLGNvbG9yU2NoZW1lOmEuY29sb3JTY2hlbWV9LGV4dHJhRGF0YTp7cHJvZHVjdFZlcnNpb246YS5wcm9kdWN0VmVyc2lvbixhdXRoVXNlcjphLmF1dGh1c2VyLGNvbmZpZ3VyYXRvcklkOmEuY29uZmlndXJhdG9ySWQsY3VzdG9tWkluZGV4OmEuY3VzdG9tWkluZGV4LAp0aW55Tm9Qb2ludGVyOmEudGlueU5vUG9pbnRlcixhbGxvd05vbkxvZ2dlZEluRmVlZGJhY2s6YS5hbGxvd05vbkxvZ2dlZEluRmVlZGJhY2ssZW5hYmxlQW5vbnltb3VzRmVlZGJhY2s6YS5lbmFibGVBbm9ueW1vdXNGZWVkYmFja319O2EucmVwb3J0JiYoaC5oZWFkbGVzc1JlcG9ydD1hLnJlcG9ydCk7YiYmKGE9bmV3IE1hcChPYmplY3QuZW50cmllcyhiKSksaC5leHRyYURhdGEucHJvZHVjdFNwZWNpZmljRGF0YT1hKTtlJiYoZT1uZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSxoLmV4dHJhRGF0YS5wcm9kdWN0U3BlY2lmaWNCaW5hcnlEYXRhPWUpO2F3YWl0IGZpYShoLGQsZil9OwpfLllPPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXtpZihhLmZsb3c9PT0iaGVscCIpe2xldCBlPWEuaGVscENlbnRlclBhdGgucmVwbGFjZSgvXlwvLywiIik7Xy5FTyhjfHx3aW5kb3csYGh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tLyR7ZX1gKX1lbHNlIGlpYShhLGIsYyxkKS5jYXRjaChlPT57IWV8fGUgaW5zdGFuY2VvZiBVT3x8V08oYSxiLGMsZCl9KX1jYXRjaChlKXtYTyhhLGIsYyxudWxsLGQpLmNhdGNoKGY9PnshZnx8ZiBpbnN0YW5jZW9mIFVPfHxXTyhhLGIsYyxkKX0pfX07Xy5aTz1mdW5jdGlvbigpe3ZhciBhPV8uSU8oWyJmdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJtc0Z1bGxzY3JlZW5FbGVtZW50Il0sZG9jdW1lbnQpO3JldHVybiBhP2E6bnVsbH07Cl8uJE89ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2tsaXN0Iix7aW5jbHVkZUFzcjohMH0pPz9bXTtyZXR1cm4gYj1qaWEoYixhKX07Xy5hUD1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhbnNsYXRpb25MYW5ndWFnZXMiLHtpbmNsdWRlQXNyOiEwfSl8fFtdfTtqaWE9ZnVuY3Rpb24oYSxiKXtiPV8uYVAoYik7aWYoIWI/Lmxlbmd0aClyZXR1cm4gYTt2YXIgYz1iLmZpbHRlcihkPT5kKTtiPWEuZmlsdGVyKGQ9PmQubGFuZ3VhZ2VDb2RlPy5zdGFydHNXaXRoKCJlbiIpKTtmb3IobGV0IGQgb2YgYylpZihiLmxlbmd0aCl7Yz1iWzBdO2xldCBlPXsuLi5jfTtjLmxhbmd1YWdlQ29kZSE9PWQubGFuZ3VhZ2VDb2RlJiYoZS5kaXNwbGF5TmFtZT1gJHtjLmxhbmd1YWdlTmFtZX0gPj4gJHtkLmxhbmd1YWdlTmFtZX1gLGUudHJhbnNsYXRpb25MYW5ndWFnZT1kLGEucHVzaChlKSl9cmV0dXJuIGF9OwpraWE9ZnVuY3Rpb24oKXtfLk1PKCdbYXJpYS1sYWJlbD0iWW91VHViZSJdJyw1LHtybDohMH0pfTtlUD1mdW5jdGlvbihhKXt2YXIgYj1iUDtiJiYoYT9jUD1fLnhGKGIsKCk9Pl8uSyhkUCxudWxsLF8uSyhfLnROLHtjb21wb25lbnQ6bGlhfSkpLHtJazpfLlhDfSk6KGNQPy4oKSxjUD1udWxsKSl9O2hQPWZ1bmN0aW9uKCl7Y1AmJihjUCgpLGNQPW51bGwpO2ZQKHZvaWQgMCk7Z1AoIm91dCIpO2JQJiYoYlAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChiUCksYlA9bnVsbCl9O2xQPWZ1bmN0aW9uKCl7aVAubGVuZ3RoJiYoZ1AoIm91dCIpLHNldFRpbWVvdXQoKCk9PntpUC5zaGlmdCgpO2lQLmxlbmd0aD4wPyhoUCgpLGpQKCksa1AoKSk6KGVQKCksaFAoKSl9LDE5NSkpfTttaWE9ZnVuY3Rpb24oKXtfLk5NKHdpbmRvdywic3RhdGUtbmF2aWdhdGVlbmQiLCgpPT57c2V0VGltZW91dChraWEsMUUzKX0pfTsKbmlhPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImMzLXRvYXN0Iik7aWYoYil7bGV0IGM9Yi5xdWVyeVNlbGVjdG9yKCJidXR0b24iKTtjJiZfLk5NKGMsImZvY3VzIiwoKT0+e2NsZWFyVGltZW91dChtUCk7bVA9c2V0VGltZW91dChsUCxhKTtfLk5NKGMsImJsdXIiLCgpPT57Xy5PRShfLm5QKX0pfSl9fTtrUD1mdW5jdGlvbigpe2dQKCJpbiIpO3ZhciB7Y29udGVudDphLGR1cmF0aW9uTXM6Yn09aVAubGVuZ3RoP2lQWzBdOnt9O2ZQKGEpO2NQfHxlUChhKTttUD1zZXRUaW1lb3V0KCgpPT57bFAoKX0sMjI1KyhifHwwKSk7Xy5VTSgpPT09ImxpYnJhcnkiP21pYSgpOmIhPT12b2lkIDAmJm5pYShiKX07alA9ZnVuY3Rpb24oKXtiUHx8KGJQPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGJQLmlkPSJ0b2FzdHMiLChfLlpPKCl8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKGJQKSxlUCgpKX07Cl8ucFA9ZnVuY3Rpb24oYSxiPW9QLGM9ITEpe2pQKCk7Yj1ifHxvUDtjJiZpUC5sZW5ndGg+MD8oY2xlYXJUaW1lb3V0KG1QKSxfLk9FKCgpPT57aVBbMF09e2NvbnRlbnQ6YSxkdXJhdGlvbk1zOmJ9O2tQKCl9KSk6KGlQLnB1c2goe2NvbnRlbnQ6YSxkdXJhdGlvbk1zOmJ9KSxpUC5sZW5ndGg9PT0xJiZfLk9FKGtQKSl9O18ublA9ZnVuY3Rpb24oKXtpUC5sZW5ndGg+MCYmKGNsZWFyVGltZW91dChtUCksbFAoKSl9O18ucVA9ZnVuY3Rpb24oYSl7Xy5YTSgibmF2aWdhdGUiLGEpfTtfLnJQPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgibXdlYl9uZXdfZnVsbHNjcmVlbiIpPyEhXy5aTygpOiEhXy5aTygpfHx3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjZmF1eGZ1bGxzY3JlZW4ifTsKXy5zUD1mdW5jdGlvbihhKXthPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEudG9TdHJpbmcoKSk7YS5mb2N1cygpO2Euc2V0U2VsZWN0aW9uUmFuZ2UoMCxhLnZhbHVlLmxlbmd0aCk7YT0hMTt0cnl7YT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfWNhdGNoKGIpe31fLnBQKGE/KCk9Pm9pYTooKT0+cGlhKX07Xy50UD1mdW5jdGlvbigpe3JldHVybiEhXy53KCJJRF9UT0tFTiIpfTtOaGE9e0hDOjAsdkM6MSxCQzoyLHlGOjMsWG46NCxESDo1LEJGOjYsUUc6NyxwRzo4LHVHOjksVEY6MTAsbkY6MTEsMDoiREVGQVVMVCIsMToiQ0hBVCIsMjoiQ09OVkVSU0FUSU9OUyIsMzoiTUlOSVBMQVlFUiIsNDoiRElBTE9HIiw1OiJWT1oiLDY6Ik1VU0lDX1dBVENIX1RBQlMiLDc6IlNIQVJFIiw4OiJQVVNIX05PVElGSUNBVElPTlMiLDk6IlJJQ0hfR1JJRF9XQVRDSCIsMTA6IlBJQ1RVUkVfSU5fUElDVFVSRSIsMTE6Ik1FRElBX0NMSUVOVCJ9OwpUaGE9WzM2MTEsMjc2ODYsMjIxMDU4LDg1MDEzLDIzNDYyLDI0MTE4NywxNTc1NTcsNDIwMTYsMjY5MjYsNTEyMzYsNzkxNDgsNTAxNjAsNzc1MDQsMzEwMjgxLDE1MzU4Nyw4NzkwNywxODYzMCwxNzcwMTgsMTc3MDIzLDU0NDQ1LDMyMTY2NiwzMjYzNTMsMzI2MzU0LDgwOTM1LDE1MjE3MiwxODQ1NTMsMTA1Njc1LDE1MDcyMywzNzUyMSwxNDcyODUsNDc3ODYsMjMxMjU1LDIzMTI1NCwyMzEyNTgsMjMxMjU5LDk4MzQ5LDIzNzI5OSwxNjgyNzEsMTY4OTU0LDE2ODI3NywxNjgyNzMsMTY4MjcwLDEyMzY5NSwyNzIwMTgsMzM4NDk3LDIyNjk4NywyMjY5OTAsMjI2OTg4LDY4MjcsMjk0MzQsMjU1MDEwLDE3MTM4OCwyNDQxODksMjM2MjA4LDcyODIsMTI0NDQ4LDI5OTkwMywyOTk4OTcsMjk5OTA0LDI5OTkwMSwyOTk4OTksMjk5OTAyLDI5OTkwMCwyOTk4OTgsMTk2MDg4LDI1MDg5NywxOTgxMDQsMzIyNzYsMTk1MTE1LDE5NTExNCw3NjI3OCwyMDA2MzUsMjMwNTk0LDE0Nzg2OCwxNDc4NjksCjI3NjI0Myw5MzkxMSwyNzQxODgsMjc2NjUxLDMxMzY4MCwxMDY1MzEsMjU3MjM0LDI1MjU5OCwyNTI1OTcsMjUyNjAwLDI1MjU5OSwyNTI1OTYsMjI1MDMxLDE3Nzg0MywyNzI1OSwyNzI2MiwyNzI2MywyMTc1OSwyODM2NzAsMTYwODY2LDIwNDI0OSwyMjI5MDAsMjA0MjUwLDE4MDYyNiwxNzc5NTksMTc3OTU3LDE4MDYyOCwyMDU3MTYsMTk3ODc4LDI3Mzc2NiwxNzEyNDMsMTYwNzg5LDE3MTI0NCwxNzEyNDEsMTcxMjQ1LDE3MTI0MiwyMjU1NjAsMTgwNjI3LDE3Nzk2MCwyMzE1ODksMTc3OTU4LDE4MDYyOSwyMDU3MTcsMTk3ODc5LDE3NzU2NSwyMTI1NzMsMjEwNzA5LDk5NDQxMiwyMzA2ODQsMjI5ODAxLDIzMDY4NSwzMzQzMTAsMzM0MzExLDMzNDMxMiwxOTczMzcsMjA5MDEwLDE5NzMzNiwxOTczMzgsMTk4NjE4LDMwMDg4NCwxNzU0OTIsMTk4MDUyLDE5ODA1MSwxOTc4NTIsMTk3OTc2LDMxNzM3NywxNzU0OTMsMTc1NDk0LDE3NTQ5NSwxODkyNTQsMTc1NDk2LDE3NTQ5NywzODQwOCwKMTc1NDk4LDE3NTUwMywxNzU1MDQsMTc1NTA1LDE3NTUwNiwxNzU1MDcsMTc1NTA4LDgwNjM3LDY4NzI3LDIwNjkzMywyMDc5NDQsMjA2OTM0LDMwMzEyMywyMDY5MjksMjIxNTc1LDY4NzI4LDIyMTU3Niw4MDM1Myw4MDM1NiwzMDgwMzMsMjQ5MTA3LDE4MDYzNSw3NDYxMCw0NTcwNyw4Mzk2Miw4Mzk3MCw0NjcxMywxNjY1OTEsODk3MTEsNzQ2MTIsMjEzODA5LDE3OTYwNywyNDUwMDYsMTU1NzkyLDkzMjY1LDc0NjExLDEzMTM4MCwxMjg5NzksMTM5MzExLDEyODk3OCwxMzEzOTEsMTA1MzUwLDEzOTMxMiwzMzM2MzcsMTM0ODAwLDEzMTM5MiwxMTM1MzMsMjI5Mjk4LDkzMjUyLDk5MzU3LDk0NTIxLDExNDI1MiwxMTM1MzIsOTQ1MjIsOTQ1ODMsMjAyMzcxLDg4RTMsMTM5NTgwLDkzMjUzLDkzMjU0LDk0Mzg3LDk0Mzg4LDkzMjU1LDk3NDI0LDcyNTAyLDIxOTg2OCwyMTI5OTEsMTEwMTExLDc2MDE5LDExNzA5MiwxMTcwOTMsODk0MzEsMTkxODMxLDExMDQ2NiwyMzEzNDYsNzcyNDAsCjYwNTA4LDE4NjA5MSwxNDgxMjMsMTQ4MTI0LDEzNzQwMSwxMzc0MDIsMTM3MDQ2LDczMzkzLDI0Njc3NiwxMTM1MzQsMjc2MjAwLDkyMDk4LDEzMTM4MSw4NDUxNyw4Mzc1OSwzMDk1ODAsMjMwNjc2LDI0OTE4MywyMzA2NzksMjMwNjc4LDIzMDY3NywyMzA2ODEsMjMwNjgwLDE2MjcxMSwyMzUyMzQsMTYyNzEyLDgwMzU3LDk5NDQxMSwyNDMzMTUsMzEzNTA2LDMyMTk2NCw4NjExMyw3MjU5OCwxNjg0MTMsNzI3MzMsMTA3MzQ5LDEyNDI3NSwxMTgyMDMsMjAwNDEwLDEzMzI3NSwxNjAxNTcsMTUyNTY5LDE1NjY1MSwxMzMyNzQsMTYwMTU5LDE2MDE1OCwxMzMyNzIsMTMzMjczLDEzMzI3NiwxNDQ1MDcsMTQzMjQ3LDE3NTk5NCwxNTY2NTIsMTQzMjQ4LDE0MzI0OSwxNDMyNTAsMTQzMjUxLDE4OTg5MiwxODk4OTQsMTg5ODkzLDE1NjY1MywyMTQyMzYsMTQ0NDAxLDExNzQzMSwxMzM3OTcsMjI1MTM3LDI3MzkwNSwyMjI2MTIsMjIyNjEzLDE1Mzk2NCwyMDExMzMsMjAxMTM0LDIwMTEzNSwKMjAxMTM2LDIwMTEzNywxMjg1NzIsMjAwNDExLDIwMDQxMiwxOTAzMzcsMTMzNDA1LDExNzQyOSwxMTc0MzAsMTc3OTUwLDE3NDczNCwxNzc5NTEsMjAxMTM4LDIwMTEzOSwyMDExNDAsMjAxMTQxLDIwMTE0MiwxMTc0MzIsMTczOTk2LDE3Mzk5NSwxNzQ5NTMsMTczOTk0LDE3Mzk5NywxMjAwODAsMTE3MjU5LDE3ODU0NiwyOTc3NTIsMTk3ODkxLDE1NjY1NSwxNTY2NTQsMTIxNjkyLDIxMTQxNCwyMTE0MTEsMjExNDEyLDIxMTQxMywyMTE0MDMsMTg0ODQ2LDE4NTk5MywzMzUwNDgsMTQ1NjU2LDE1NjY1NiwxNDU2NTUsMTQ1NjUzLDE0NTY1NCwxNDU2NTcsMTMyOTcyLDEzMzA1MSwxMzM2NTgsMTMyOTcxLDMzNjcyOCw5NzYxNSwxODEyNjIsMTkwNzYyLDI1MDM0NCwyNTQwMjcsMTQzMzU5LDE0MzM1NiwxNDMzNjEsMTQzMzU4LDE0MzM2MCwxNDMzNTcsMTQyMzAzLDE0MzM1MywyODIxNTksMTcyODU5LDE0MzM1NCwxNDQ0NzksMTQzMzU1LDMxNDAyLDE4MTU5MCwxMzM2MjQsMTQ2NDc3LAoxMzM2MjMsMTMzNjIyLDEzMzYyMSwxOTI0MTgsODQ3NzQsMzA0Nzc2LDE5Nzk5MywyNDE0NjAsMTYwODAxLDE5Nzk5NSw5NTExNywxNzI3MjEsMTUwNDk3LDk4OTMwLDk4OTMxLDk4OTMyLDMzODU3MCwzMzg0NzQsMzM4NDc4LDMzODQ3MywxNTMzMjAsMTUzMzIxLDQzMzQ3LDMwNTI2OCwyNDkyOTUsMjEwMDE2LDIxMDAxNywyNjI2ODYsMjExODUxLDIxMTg1MiwzMDcyMTksMjExODUzLDMyNzgxMCwxMjk4ODksMTk3ODg4LDE5Nzg4OSwxNDkxMjMsMjIxOTU5LDIyMTYyNywyMjE5NTgsNDU0NzQsMTAwMzUyLDk4NDQzLDExNzk4NSwzMzM3MDgsNzQ2MTMsMTU1OTExLDc0NjE0LDY0NTAyLDEzNjAzMiw3NDYxNSw3NDYxNiwxMjIyMjQsNzQ2MTcsNzc4MjAsNzQ2MTgsMjYyOTg4LDI2Mjk4OSwyMjY5ODEsOTMyNzgsOTMyNzQsOTMyNzUsOTMyNzYsMjAwNjg4LDIwMDY4NiwyMDA2ODcsMTk5ODQxLDIyMTEwLDI5NDMzLDEzMzc5OCwxMzIyOTUsMjgxMzMyLDEyMDU0MSwyMjIxMTIsODIwNDcsCjExMzU1MCw3NTgzNiw3NTgzNywzMDM4ODIsMTkyNDA5LDIwMzIyMSw0MjM1Miw4NDUxMiw3NjA2NSw3NTk4OSwyMDU5MTEsMjA1OTEyLDI1MjY0OSwyMDU5MTMsMjUyNjUwLDI1MjY1MSw1MTg3OSwxNjYyMywzMjU5NCwyNzI0MCwzMzgxMDksMjkzMzI0LDMyNjMzLDc0ODU4LDMwNDE1MCwyOTcwNDUsMjc1MTk4LDI3MTg4NCwyMjI5MzIsMjc5MTE5LDMxMjU4MSwyNzE4ODYsMjEzOTE1LDI3NTE5OSwzMTA3NDgsMjI1MjE2LDI1MTI0NCwyNTgyNTEsMjE4Njc0LDI1MTI2NiwyNTgyNTAsMjUxMjY1LDMwMTY2MiwyNTEyNDUsMjcxODg1LDMxNTgxOCwxNTY5OTksMzk0NSwxNjk4OSw0NTUyMCwyNTQ4OCwyNTQ5MiwyNTQ5NCwyMzIxMTMsNTU3NjAsMTQwNTcsMTg0NTEsNTcyMDQsNTcyMDMsMTc4OTcsMTgxOTgsMTc4OTgsMTc5MDksNDM5ODAsMjIxMDUzLDE5NTUyOSwxODk2NjAsMzA4MDg4LDMwNjQ0OCwzMDY0NDcsMzA4MDg3LDMwODA4Niw0NjIyMCwxMTcyMSwxNDc5OTQsNDk5NTQsOTYzNjksCjM4NTQsMjE3NjQwLDE1MTYzMyw1NjI1MSwyMDUxOTIsMjE2Nzk3LDE1OTEwOCwxODE1NjgsMjM0Nzg5LDI1NjI0LDE1MjAzNiwxNjkwNiw5OTk5OSw2ODE3Miw0Nzk3Myw3Mjc3MywyNjk3MCwyNjk3MSw5NjgwNSwxNzc1MiwyODIxODEsMjc4OTI2LDczMjMzLDIwNTkyMywxMDk1MTIsMjIyNTYsMTQxMTUsMjI2OTYsMjM0NDA5LDIzNDQwOCw4OTI3OCw4OTI3NywxOTU3NDUsMTA5NTEzLDQzMjc4LDQzNDU5LDQzNDY0LDg5Mjc5LDQzNzE3LDU1NzY0LDIyMjU1LDE0NzkxMiw4OTI4MSw0MDk2Myw0MzI3Nyw0MzQ0Miw5MTgyNCwyODM4OTgsMTIwMTM3LDE4NjM1MCwxODYzNTEsMjU2NjkwLDI2NDM0OSwyNjQzNTEsMjY0MzUwLDI2NDM1MiwyMTEwMjYsMjUwODk2LDk2MzY3LDM2ODUwLDcyNjk0LDM3NDE0LDM2ODUxLDEyNDg2MywxMjEzNDMsNzM0OTEsNTQ0NzMsMTY2ODYxLDQzMzc1LDQ2Njc0LDMwMjYzMSwzMzE0NzMsMjQyNTI4LDE0MzgxNSwxMzkwOTUsMTQ0NDAyLDE0OTk2OCwxNDk5NjksCjMyNDczLDcyOTAxLDcyOTA2LDUwNjEyLDUwNjEzLDUwOTQyLDg0OTM4LDg0OTQzLDg0OTM5LDg0OTQxLDg0OTQ0LDg0OTQwLDg0OTQyLDM1NTg1LDUxOTI2LDc5OTgzLDE4OTIxLDU3ODkzLDQxMTgyLDEzNTczMiwzMzQyNCwyMjIwNywzNjIyOSwyMjIwNiwyMjIwNSw0NDc2MywzMzQyNyw2Nzc5MywyMjE4MiwzNzA5MSwzNDY1MCw1MDYxNywyMjI4NywyNTE0NCw5NzkxNywyMjAxMjIsNjIzOTcsMTUwODcxLDE1MDg3NCwxMjU1OTgsMTM3OTM1LDM2OTYxLDEwODAzNSwzMjM0OTMsMjc0MjYsMjc4NTcsMjc4NDYsMjc4NTQsNjk2OTIsNjE0MTEsMzkyOTksMzg2OTYsNjI1MjAsMzYzODIsMTA4NzAxLDE5MjY4MiwyNzk1MzEsNTA2NjMsMzYzODcsMTQ5MDgsMzc1MzMsMTA1NDQzLDYxNjM1LDYyMjc0LDE2MTY3MCwxMzM4MTgsMTgyMTE5LDY1NzAyLDY1NzAzLDY1NzAxLDMyMDQ2NCw3NjI1NiwyOTgxNTcsMjYzODQzLDMxNTIzNCwxOTYwNzUsMTk0NzY4LDI1MjIwMSwxOTQ3NjksMTkxODg1LAoyODE0ODAsMjMzNjM0LDI2NTgxMCwxOTQ3NzAsMjk2OTMzLDE5NTM1MCwzMjczODUsMzI0NTg2LDMwMTYwNywxOTUzNDksMTk0NzcxLDI5MzA0MSwzMDExMjEsMjkzMDQyLDI5MzA0MywzMDExMTYsMTY2MzgyLDM3NjcxLDQ5OTUzLDIyMDY2OSw2MDAwMDEsNjAwMDAyLDZFNSwzMzUxMzQsMjQ5MjI5LDIxMzc3NCwyMDQ1NzIsMTkxMzg5LDI3MjI1NCwyNzIyNTMsMjUzODMwLDI1MzgzMSwyNTM4MzIsMjcyMjUyLDI1MzgzMywyNTM4MzQsMjA0NTc0LDE5MTM5MCwxNzk1NTYsMjM4NTk2LDIxMjY2MSwxOTEzOTIsMTk3ODI2LDE5MTM5MywyMDQ1NzMsMzYyMTYsMjgyMzcsMjQxMjEyLDI3MjA0OSwxNzM3MTgsMzk1NTMsMTkyNTQ3LDI5MjIyLDMwNDg0NSwyNjEwNywyNDEyMTEsMzgwNTAsMjYxMDgsMjc1ODEwLDEyMDc0NSwyNjEwOSwyNjExMCw2Njg4MSwyODIzNiwxNDU4NiwyOTc2NzIsMTYwNTk4LDU3OTI5LDIyNjczNiw3NDcyMyw0NDA5OCwxNzM2ODksNDQwOTksMjM1MjgsNjE2OTksCjEzNDEwNCwxMzQxMDMsMTk4MzEzLDU5MTQ5LDE4MTAxMywyNzgzMDYsMjgyNDcyLDI3Nzg0OCwxNzMxOTEsMTczMTkyLDE3MzE5MywxMDE5NTEsMTcxNTAyLDE5NjA0MywxOTgzMDUsOTczNDYsMTE4MDUxLDk1MTAyLDY0ODgyLDExOTUwNSw2MzU5NSwyOTQxMTksMjU3MjY4LDYzMzQ5LDI4MTEyNywyNDA1NTMsOTUxMDEsNzUyNDAsMjcwMzksNjg4MjMsMjE1MzcsODM0NjQsNzU3MDcsMjUyOTA0LDE3MDIxNSwyMjMwMzMsODMxMTMsMTAxOTUyLDEwMTk1Myw3OTYxMCwxMjU3NTUsMjQ0MDIsMjQ0MDAsMzI5MjUsMTkzNDA2LDU3MTczLDE4MzM1MSwxNTY0MjEsMTIyNTAyLDE0NTI2OCwxMzg0ODAsNjQ0MjMsNjQ0MjQsMzM5ODYsMTAwODI4LDEyOTA4OSwyOTk1NDEsMjE0MDksMjgyMjE4LDI5OTUwNiwzMzM5NTYsMjk5NTQwLDI5OTUwNywyOTk1MDksMjk5NTM5LDI5OTUwOCwyOTk1MTAsMTg1NjEyLDIyMjgyNSwzMjMzMzEsMjQ1MzY2LDEzNTE1NSwxMzUxNTYsMTM1MTU3LDEzNTE1OCwKMTU4MjI1LDEzNTE1OSwxMzUxNjAsMTY3NjUxLDEzNTE2MSwxMzUxNjIsMTM1MTYzLDE1ODIyNiwxNTgyMjcsMTM1MTY0LDEzNTE2NSwxMzUxNjYsMTEwNzAsMTEwNzQsMTc4ODAsMjcwNTYwLDMwNzA5LDMwNzA3LDMwNzExLDMwNzEwLDMwNzA4LDE4NTIxMywxODUyNzMsMTQ2MTQzLDYzNjQ4LDYzNjQ5LDIyMTA1NiwyNjQ0OTAsMjExMTg5LDExMTA1OSwyMTExODgsNTc1NCwyNjQ0OTEsMjA0NDUsMjMzNDcxLDE1MTMwOCwzMTM3NTAsMTUxMTUyLDIyODA2NywxMzA5NzUsMTMwOTc2LDI0NzI0NCwyNzE2MjIsMjcxODEzLDI2MTIxMCwyMTA4MTUsMjk1MDY5LDI0NjEyNywzMTY4NTgsMjQ1MjU2LDI0NDk1MCwxOTE5MjUsMTY3NjM3LDIzNDU0NSwxOTcxOTYsMzAyNzM1LDIxNDI5NSwxMTAzODYsMjIxMDU0LDI3Mzk2MCwyODIxMTEsMzEyMjkwLDExMzc0NiwzMjU1OTMsMjY4ODg2LDY2NTU3LDE4MzIxNSwxNzMxMCwyODYzMSwyMDE5MzUsMjE1ODksMjQyMDM2LDIzODM1MSwxNjQ4MTcsCjE2ODAxMSwxNTQ5NDYsNjgwMTIsMTYyNjE3LDYwNDgwLDE4NDQzMSwxMzg2NjQsMjk0MDg5LDI0OTgyNywxOTRFMywxNDExMjEsMTY0NTAyLDMxNTcxLDE5NTAwMiwyMDY3OTMsMTQxOTc4LDIzMzk4NSwyNTA4OTUsMjU0MDUyLDI1NDA1MywyNTQwNTQsMjU0MDUxLDI1NDA1MCwyNTQwNTUsMTUwMTA1LDMwNDE2OSwxNTAxMDYsMTUwMTA3LDE1MDEwOCw3Njk4MCw0MTU3Nyw0NTQ2OSwzODY2OSwxMzc2OCwxMzc3NywxNDE4NDIsNjI5ODUsMjEzMTkwLDQ3MjQsMjIzMDUyLDU5MzY5LDQzOTI3LDQzOTI4LDEyOTI0LDE5Nzg1MywxMDAzNTUsNTYyMTksMjc2NjksMjA5OTI4LDEwMzM3LDIwMzY0OCwyMDM2NDksNDc4OTYsMzI2OTM3LDEyMjYyOSwxODYyMDQsMjIyODI0LDI3NTg2OSwzMTIyOTUsMjcxNjczLDI3NDYzNywzMTc0NjIsMTM5NzIzLDEzOTcyMiwxMjEyNTgsMjUzNzg5LDI1Mzc4NywyNTM3ODYsMjUzNzg4LDI1Mzc5MCwxMDc1OTgsMTI3OTkxLDk2NjM5LDEwNzUzNiwxMzAxNjksCjIxNjUyMiwyOTYzMTYsOTY2NjEsMTQ1MTg4LDMyMDQyOCwyMTM5MDQsMjY5MzQyLDk2NjU4LDExNjY0NiwxNTk0MjgsMTY4NjExLDE2ODYxMiwxMjExMjIsMjE5ODYyLDk2NjYwLDI4MjIwOCwxMjc3MzgsMTI3MDgzLDE1NTI4MSwxNjI5NTksMjIwODg2LDIyNzM1NiwyNDgwMDcsMTYzNTY2LDMwNzY0NiwxODY2NDEsMTQ3ODQyLDI3MzY0NiwyNzM2NDcsMjE3OTMyLDEwNDQ0Myw5NjY1OSwxNDc1OTUsMTA2NDQyLDI0NzE2MiwyMzE0OTMsMjEzNDI3LDI5NjgxMywyNDY1NzUsMTgyNDIzLDE2Mjc3NiwyMjg5MDgsMTM0ODQwLDYzNjY3LDYzNjY4LDYzNjY5LDEzMDY4NiwzMzcxNzIsMjQ4MzgxLDE0NzAzNiwyMzkwOTQsMjYyNzQzLDE4OTgxMCwyMzkwOTUsNzgzMTQsMTQ3Nzk5LDMwNTkxOSwzMDU5MjQsMjM3MTQ2LDE3NDA0OSwxNDg2NDksNTU3NjEsMTI3MDk4LDEzNDg0MSw5NjM2OCw2NzM3NCw0ODk5MiwxNDYxNzYsMTc2MTA1LDMyMzMyMSwzMjMzMjIsMjMzMDM1LDQ5OTU2LDI2NzY0NSwKMjc1NzgyLDE5MDE5MCwyMjU3MzksMzE5NjEsMjYzODgsMjM4MTEsNUU0LDEyNjI1MCw5NjM3MCwyMTA1NDksMzI5NDkwLDQ3MzU1LDQ3MzU2LDM3OTM1LDQ1NTIxLDMzMTUzNiwzMzE1MzQsMzMxNTM1LDMzMTUzMywyMTc2MCw4Mzc2OSw0OTk3Nyw0OTk3NCw5MzQ5Nyw5MzQ5OCwzNDMyNSwxNDA3NTksMTE1ODAzLDEyMzcwNywxMDAwODEsMzUzMDksMjM3NzA2LDY4MzE0LDI1NjAyLDEwMDMzOSwxNzA4NzMsMTQzNTE2LDI5OTI0NywxNzg5MjEsMjY4NTc0LDI1NDg4NCwyNTgyMzIsNTkwMTgsMTgyNDgsNTA2MjUsOTcyOSwzNzE2OCwzNzE2OSwyMTY2NywxNjc0OSwxODYzNSwzOTMwNSwxODA0NiwyMjEwNTcsMzAxODk3LDMwMTkwMCwyNjk5OTAsNTM5NjksODIxMyw5MzkyNiwyMjEwNTUsMjEwNTQyLDIxMjU1MiwxMDI4NTIsMTEwMDk5LDIyNjc4LDY5MDc2LDEzNzU3NSwxMzkyMjQsMTAwODU2LDIzNTc3MCwxNTQ0MzAsMjM1ODYxLDIwOTc1NywxNzczNiwzODMyLDE0NzExMSw1NTc1OSwKNjQwMzEsMjM0NzQ2LDkzMDQ0LDkzMDQ1LDI4MTMwMiwxNzA3MDEsMTcwNzAyLDE5NDc5NiwzNDM4OCwxNjc4NDEsMTcwNDE5LDE3NjU3LDE3NjU1LDM5NTc5LDM5NTc4LDE3MDQxMiw3NzQ0OCw4MTk2LDExMzU3LDY5ODc3LDgxOTcsMTY4NTAxLDE1NjUxMiwxNjE2MTMsMTU2NTA5LDIwODI3NCwxNjE2MTIsMTYxNjE0LDI2NzY5MiwyNjc4NTEsMjY3NTc3LDI3OTc1NSwyNjc2OTMsMjY3Njk0LDI2NzU3OCwyNjI4MDEsMzM0NDk2LDMzNTg0NCwyNzEyMTgsMjY2MTMxLDI2NjEzMiwyNjc5NzcsMjY3NTc5LDI2MjgwMCwyNjI3OTksMjYyODAyLDI2NzU4MCwyNjI3OTgsMjY3Njk1LDI2NzU4MSwyNzMyMzIsODIwMzldO3ZhciBOTz1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0RW5hYmxlU3NFbmdpbmUoKXtyZXR1cm4gR08odGhpcywyKX1nZXRFbmFibGVBd3IoKXtyZXR1cm4gR08odGhpcywzKX1nZXRBbG9oYUF1dG9HYVJvbGxvdXQoKXtyZXR1cm4gR08odGhpcyw1KX1nZXRFbmFibGVDb25maWd1cmF0b3IoKXtyZXR1cm4gR08odGhpcyw2KX1nZXRFbmFibGVNd2ViKCl7cmV0dXJuIEdPKHRoaXMsNyl9Z2V0RW5hYmxlQ3RsQ29uc2VudENoZWNrYm94KCl7cmV0dXJuIEdPKHRoaXMsOCl9Z2V0RW5hYmxlSWZyYW1lKCl7cmV0dXJuIEdPKHRoaXMsOSl9Z2V0RW5hYmxlU2NyZWVuc2hvdE51ZGdlKCl7cmV0dXJuIEdPKHRoaXMsMTApfWdldEVuYWJsZVdlYlN0YXJ0dXBDb25maWdFbmRwb2ludCgpe3JldHVybiBHTyh0aGlzLDExKX1nZXRFbmFibGVKdW5rTnVkZ2UoKXtyZXR1cm4gR08odGhpcywxMil9Z2V0RW5hYmxlQ29uZmlndXJhdG9yTG9jYWxlKCl7cmV0dXJuIEdPKHRoaXMsCjEzKX1nZXRFbmFibGVUaW55Tm9Qb2ludGVyKCl7cmV0dXJuIEdPKHRoaXMsMTQpfWdldEVuYWJsZVN1cHBvcnRTZXNzaW9uTG9nZ2luZygpe3JldHVybiBHTyh0aGlzLDE1KX1nZXRFbmFibGVGaWxlVXBsb2FkRm9yU2NyZWVuc2hvdCgpe3JldHVybiBHTyh0aGlzLDE2KX1nZXRFbmFibGVEaXJlY3REZWZsZWN0aW9uRm9yU2luZ2xlQ2F0ZWdvcnkoKXtyZXR1cm4gR08odGhpcywxNyl9Z2V0RW5hYmxlSW1hZ2VTYW5pdGl6YXRpb24oKXtyZXR1cm4gR08odGhpcywxOCl9Z2V0RW5hYmxlQWxvaGFCaW5hcnlTcGxpdCgpe3JldHVybiBHTyh0aGlzLDE5KX1nZXRFbmFibGVEYkZlZWRiYWNrSW50ZW50cygpe3JldHVybiBHTyh0aGlzLDIwKX1nZXRFbmFibGVNYXJrTWFuZGF0b3J5RmllbGRzV2l0aFJlcXVpcmVkKCl7cmV0dXJuIEdPKHRoaXMsMjEpfWdldEVuYWJsZUZlZWRiYWNrQ2F0ZWdvcnlDdXN0b21VaSgpe3JldHVybiBHTyh0aGlzLDIyKX1nZXRFbmFibGVSZWFsdGltZUN0bCgpe3JldHVybiBHTyh0aGlzLAoyMyl9Z2V0RW5hYmxlQWxvaGFIZWFkbGVzcygpe3JldHVybiBHTyh0aGlzLDI0KX1nZXRVcGRhdGVGZWVkYmFja0NvbmZpcm1hdGlvbkNsYXJpdHkoKXtyZXR1cm4gR08odGhpcywyNSl9Z2V0RW5hYmxlVmlld0ZlZWRiYWNrUmVwb3J0c0xpbmsoKXtyZXR1cm4gR08odGhpcywyNil9fTt2YXIgVk89Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXYoKXtyZXR1cm4gXy5OeCh0aGlzLE5PLDEpfX07dmFyICRoYT1bL2h0dHBzOlwvXC9zYW5kYm94XC5nb29nbGVcLmNvbVwvdG9vbHNcL2ZlZWRiYWNrLywvaHR0cHM6XC9cL2ZlZWRiYWNrLWZyb250ZW5kLXF1YWxbYS16MC05Ll0qXC5nb29nbGVcLmNvbVwvaW5hcHAvLC9odHRwczpcL1wvZmVlZGJhY2stZnJvbnRlbmQtcXVhbFthLXowLTkuXSpcLmdvb2dsZVwuY29tXC90b29sc1wvZmVlZGJhY2svLC9odHRwczpcL1wvLipcLmdvb2dsZXVzZXJjb250ZW50XC5jb21cL2luYXBwL107dmFyIE9PPSJhZiBhbSBhci1FRyBhci1KTyBhci1NQSBhci1TQSBhci1YQiBhciBheiBiZSBiZyBibiBicyBjYSBjcyBjeSBkYSBkZS1BVCBkZS1DSCBkZSBlbCBlbiBlbi1HQiBlbi1BVSBlbi1DQSBlbi1JRSBlbi1JTiBlbi1OWiBlbi1TRyBlbi1YQSBlbi1YQyBlbi1aQSBlcyBlcy00MTkgZXMtQVIgZXMtQk8gZXMtQ0wgZXMtQ08gZXMtQ1IgZXMtRE8gZXMtRUMgZXMtR1QgZXMtSE4gZXMtTVggZXMtTkkgZXMtUEEgZXMtUEUgZXMtUFIgZXMtUFkgZXMtU1YgZXMtVVMgZXMtVVkgZXMtVkUgZXQgZXUgZmEgZmkgZmlsIGZyLUNBIGZyLUNIIGZyIGdsIGdzdyBndSBoZSBoaSBociBodSBoeSBpZCBpbiBpcyBpdCBpdyBqYSBrYSBrayBrbSBrbiBrbyBreSBsbiBsbyBsdCBsdiBtayBtbCBtbiBtbyBtciBtcyBteSBuYiBuZSBubCBubyBwYSBwbCBwdCBwdC1CUiBwdC1QVCBybyBydSBzaSBzayBzbCBzcSBzci1MYXRuIHNyIHN2IHN3IHRhIHRlIHRoIHRsIHRyIHVrIHVyIHV6IHZpIHpoIHpoLUNOIHpoLUhLIHpoLVRXIHp1Ii5zcGxpdCgiICIpO3ZhciBVTz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkZvcm0gaXMgZWl0aGVyIGxvYWRpbmcgb3IgYWxyZWFkeSBvcGVuZWQiKTt0aGlzLm5hbWU9IkR1cGxpY2F0ZUZvcm1FcnJvciJ9fSxRTyxTTyxSTyxUTztfLnJhKCJ1c2VyZmVlZGJhY2suQ29sb3JTY2hlbWVzIix7aUY6MSxHQzoyfSk7Xy5yYSgidXNlcmZlZWRiYWNrLmFwaS5zdGFydEZlZWRiYWNrIixfLllPKTtfLnFpYT1uZXcgXy5JKCJuYXRpdmVBcHBEZWVwbGlua0VuZHBvaW50Iik7Xy5yaWE9TWF0aC5yYW5kb20oKTt2YXIgc2lhPW5ldyBfLlZzKCJTVEFUSUNfQVBQX1BST1BTX1RPS0VOIik7Xy52UD1uZXcgXy5WcygiVE9BU1RfT1BUSU9OUyIpO3ZhciBvUD1fLnNqKCJtd2ViX2MzX3RvYXN0X2R1cmF0aW9uX21zIiw1RTMpLGJQLGNQPW51bGwsW3dQLGdQXT1fLkooIm91dCIsdm9pZCAwLCJXY1pjZWUiKSxbbGlhLGZQXT1fLkoodm9pZCAwLHZvaWQgMCwiWFZ5eHhmIiksaVA9W10sbVAsZFA9Xy5MKGE9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy52UCkpO3JldHVybiBfLksoImMzLXRvYXN0Iix7ZGlyOndQLHJvbGU6KCk9PndQKCk9PT0iaW4iPyJhbGVydCI6IiIsY2xhc3M6Xy5QKHsiaHVnLXRvYXN0IjohIWI/LlZ1LCJpbnZlcnNlLXRoZW1lIjohIWI/LkN4fSl9LGEuY2hpbGRyZW4pfSwic2IiKTtkUC5pZG9tQ29tcGF0PSEwO18udGlhPV8udXgoMzA3OTUzKTsoe01nOl8udWlhLGdrOl8ueFB9PV8uekcoYT0+YS5jaGFubmVsSWQpKTsoe01nOl8udmlhLGdrOl8ud2lhfT1fLnpHKGE9Pl8uQihhLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24/LnRvZ2dsZUJ1dHRvblJlbmRlcmVyPy5kZWZhdWx0U2VydmljZUVuZHBvaW50LF8uQnkpPy5wYXJhbXMpKTtfLnlQPW5ldyBfLlZzKCJMQVlFUl9UT0tFTiIpO18uelA9Xy5MKCh7VW86YSxzdGF5T3Blbk9uQ2xpY2s6Yixpc1BlcnNpc3RlbnQ6YyxjaGlsZHJlbjpkfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKHsiZGlhbG9nLWZsZXgtYnV0dG9uIjooKT0+YT8uKCkhPT0xfSksIm9uOmNsaWNrIjpmdW5jdGlvbigpe2I/LigpfHxjPy4oKXx8Xy55KCkucmVzb2x2ZShfLnlQKS5sZCgpfSx0YWJpbmRleDooKT0+KGI/LigpfHxjPy4oKSx2b2lkIDApfSxkKSwidWIiKTtfLnpQLmlkb21Db21wYXQ9ITA7Xy5BUD1fLkwoKHtjaGlsZHJlbjphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oc2lhKSk/LlVJO3JldHVybiBfLksoImRpdiIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLHRhYmluZGV4OmI/MDp2b2lkIDB9LGEpfSwidmIiKTtfLkFQLmlkb21Db21wYXQ9ITA7Xy54aWE9Xy5zaigibXdlYl9pb3NfZnVsbHNjcmVlbl9wbGF5YmFja190cmFuc2l0aW9uX2RlbGF5X21zIil8fDUwMDtfLnlpYT1fLnNqKCJtd2ViX2lvc19mdWxsc2NyZWVuX3N5c3RlbV9wYXVzZV9lcGlsc29uX21zIil8fDM1MDt2YXIgb2lhPV8uJE4uWHMscGlhPV8uJE4ua3Q7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYVE9ZnVuY3Rpb24oYSxiKXtyZXR1cm57b3BlblBvcHVwQWN0aW9uOntwb3B1cFR5cGU6IlRPQVNUIixwb3B1cDp7bm90aWZpY2F0aW9uQWN0aW9uUmVuZGVyZXI6e3Jlc3BvbnNlVGV4dDphfX0sLi4uKGIhPT12b2lkIDA/e2R1cmF0aW9uSGludE1zOmJ9Ont9KX19fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy53bmE9bmV3IF8uSSgiZW50aXR5VXBkYXRlQ29tbWFuZCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLk5XPW5ldyBfLkkoInNob3dTaGVldENvbW1hbmQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy54bmE9bmV3IF8uSSgibGlzdFZpZXdNb2RlbCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLk9XPW5ldyBfLlZzKCJTQ1JFRU5fTUFOQUdFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeW5hO18uUFc9ZnVuY3Rpb24oYSl7cmV0dXJuIHluYVthXT8/IkVWRU5UX1NQQU5fVFlQRV9VTktOT1dOIn07CnluYT17Y2xpY2s6IkVWRU5UX1NQQU5fVFlQRV9DTElDSyIsZGJsY2xpY2s6IkVWRU5UX1NQQU5fVFlQRV9EQkxDTElDSyIsbW91c2Vkb3duOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VET1dOIixtb3VzZXVwOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VVUCIsbW91c2VvdmVyOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VPVkVSIixtb3VzZW91dDoiRVZFTlRfU1BBTl9UWVBFX01PVVNFT1VUIixtb3VzZWVudGVyOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VFTlRFUiIsbW91c2VsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX01PVVNFTEVBVkUiLG1vdXNlbW92ZToiRVZFTlRfU1BBTl9UWVBFX01PVVNFTU9WRSIsY29udGV4dG1lbnU6IkVWRU5UX1NQQU5fVFlQRV9DT05URVhUTUVOVSIsa2V5ZG93bjoiRVZFTlRfU1BBTl9UWVBFX0tFWURPV04iLGtleXVwOiJFVkVOVF9TUEFOX1RZUEVfS0VZVVAiLGtleXByZXNzOiJFVkVOVF9TUEFOX1RZUEVfS0VZUFJFU1MiLHRvdWNoc3RhcnQ6IkVWRU5UX1NQQU5fVFlQRV9UT1VDSFNUQVJUIiwKdG91Y2hlbmQ6IkVWRU5UX1NQQU5fVFlQRV9UT1VDSEVORCIsdG91Y2htb3ZlOiJFVkVOVF9TUEFOX1RZUEVfVE9VQ0hNT1ZFIix0b3VjaGNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1RPVUNIQ0FOQ0VMIixwb2ludGVyZG93bjoiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJET1dOIixwb2ludGVydXA6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVSVVAiLHBvaW50ZXJtb3ZlOiJFVkVOVF9TUEFOX1RZUEVfUE9JTlRFUk1PVkUiLHBvaW50ZXJvdmVyOiJFVkVOVF9TUEFOX1RZUEVfUE9JTlRFUk9WRVIiLHBvaW50ZXJvdXQ6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVST1VUIixwb2ludGVyZW50ZXI6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVSRU5URVIiLHBvaW50ZXJsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJMRUFWRSIscG9pbnRlcmNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJDQU5DRUwiLGdvdHBvaW50ZXJjYXB0dXJlOiJFVkVOVF9TUEFOX1RZUEVfR09UUE9JTlRFUkNBUFRVUkUiLApsb3N0cG9pbnRlcmNhcHR1cmU6IkVWRU5UX1NQQU5fVFlQRV9MT1NUUE9JTlRFUkNBUFRVUkUiLHN1Ym1pdDoiRVZFTlRfU1BBTl9UWVBFX1NVQk1JVCIsY2hhbmdlOiJFVkVOVF9TUEFOX1RZUEVfQ0hBTkdFIixpbnB1dDoiRVZFTlRfU1BBTl9UWVBFX0lOUFVUIixmb2N1czoiRVZFTlRfU1BBTl9UWVBFX0ZPQ1VTIixibHVyOiJFVkVOVF9TUEFOX1RZUEVfQkxVUiIscmVzZXQ6IkVWRU5UX1NQQU5fVFlQRV9SRVNFVCIsc2VsZWN0OiJFVkVOVF9TUEFOX1RZUEVfU0VMRUNUIixpbnZhbGlkOiJFVkVOVF9TUEFOX1RZUEVfSU5WQUxJRCIsbG9hZDoiRVZFTlRfU1BBTl9UWVBFX0xPQUQiLHVubG9hZDoiRVZFTlRfU1BBTl9UWVBFX1VOTE9BRCIsYmVmb3JldW5sb2FkOiJFVkVOVF9TUEFOX1RZUEVfQkVGT1JFVU5MT0FEIixkb21jb250ZW50bG9hZGVkOiJFVkVOVF9TUEFOX1RZUEVfRE9NQ09OVEVOVExPQURFRCIscmVzaXplOiJFVkVOVF9TUEFOX1RZUEVfUkVTSVpFIixzY3JvbGw6IkVWRU5UX1NQQU5fVFlQRV9TQ1JPTEwiLApwYWdlc2hvdzoiRVZFTlRfU1BBTl9UWVBFX1BBR0VTSE9XIixwYWdlaGlkZToiRVZFTlRfU1BBTl9UWVBFX1BBR0VISURFIixwbGF5OiJFVkVOVF9TUEFOX1RZUEVfUExBWSIscGF1c2U6IkVWRU5UX1NQQU5fVFlQRV9QQVVTRSIscGxheWluZzoiRVZFTlRfU1BBTl9UWVBFX1BMQVlJTkciLHdhaXRpbmc6IkVWRU5UX1NQQU5fVFlQRV9XQUlUSU5HIixzZWVraW5nOiJFVkVOVF9TUEFOX1RZUEVfU0VFS0lORyIsc2Vla2VkOiJFVkVOVF9TUEFOX1RZUEVfU0VFS0VEIixlbmRlZDoiRVZFTlRfU1BBTl9UWVBFX0VOREVEIix2b2x1bWVjaGFuZ2U6IkVWRU5UX1NQQU5fVFlQRV9WT0xVTUVDSEFOR0UiLHRpbWV1cGRhdGU6IkVWRU5UX1NQQU5fVFlQRV9USU1FVVBEQVRFIixyYXRlY2hhbmdlOiJFVkVOVF9TUEFOX1RZUEVfUkFURUNIQU5HRSIsZHJhZ3N0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfRFJBR1NUQVJUIixkcmFnOiJFVkVOVF9TUEFOX1RZUEVfRFJBRyIsZHJhZ2VuZDoiRVZFTlRfU1BBTl9UWVBFX0RSQUdFTkQiLApkcmFnZW50ZXI6IkVWRU5UX1NQQU5fVFlQRV9EUkFHRU5URVIiLGRyYWdsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX0RSQUdMRUFWRSIsZHJhZ292ZXI6IkVWRU5UX1NQQU5fVFlQRV9EUkFHT1ZFUiIsZHJvcDoiRVZFTlRfU1BBTl9UWVBFX0RST1AiLGFuaW1hdGlvbnN0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfQU5JTUFUSU9OU1RBUlQiLGFuaW1hdGlvbmVuZDoiRVZFTlRfU1BBTl9UWVBFX0FOSU1BVElPTkVORCIsYW5pbWF0aW9uaXRlcmF0aW9uOiJFVkVOVF9TUEFOX1RZUEVfQU5JTUFUSU9OSVRFUkFUSU9OIix0cmFuc2l0aW9ucnVuOiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTlJVTiIsdHJhbnNpdGlvbnN0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTlNUQVJUIix0cmFuc2l0aW9uZW5kOiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTkVORCIsdHJhbnNpdGlvbmNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1RSQU5TSVRJT05DQU5DRUwifTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RVz1uZXcgXy5JKCJzaG93RW5nYWdlbWVudFBhbmVsRW5kcG9pbnQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCk1hdGgudXVpZC5qcyAodjEuNCkKaHR0cDovL3d3dy5icm9vZmEuY29tCm1haWx0bzpyb2JlcnRAYnJvb2ZhLmNvbQpDb3B5cmlnaHQgKGMpIDIwMTAgUm9iZXJ0IEtpZWZmZXIKRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuCiovCnZhciB6bmEsUlcsQW5hLEJuYSxDbmEsRG5hLEVuYSxUVyxGbmEsVVcsR25hLEhuYSxWVyxJbmEsSm5hLFhXLFlXLFpXLCRXLExuYSxNbmEsYlgsaFgsTm5hLE9uYSxQbmEsalgsa1gsUm5hLG1YLFNuYSxvWCxwWCxVbmEsVm5hLG5YLFduYSxUbmEsbFgscVgsWW5hLGFvYSxib2EsY29hLGRvYSxlb2Esc1gsZm9hLGdvYSx0WCxob2EsdVgsdlgsaW9hLGtvYSx4WCxsb2EseVgsbm9hLG9vYSxwb2EscW9hLEJYLHJvYSxzb2EsQ1gsdG9hLHVvYSx2b2Esd29hLHhvYSx5b2Esem9hLEFvYSxCb2EsQ29hLEhYLElYLEZvYSxtb2EsS1gsSG9hLEpYLElvYSxKb2EsS29hLE1YLExvYSxOWCxNb2EsTm9hLE9vYSxQb2EsUW9hLFJvYSxTb2EsT1gsVG9hLFBYLFFYLFZvYSxVb2EsV29hLFhvYSxZb2EsWm9hLCRvYSxWWCxVWCxXWCwkWCxYWCxZWCxaWCxhWSxhcGEsYnBhLGNwYSxiWSxlWSxkWSxkcGEsZlksZXBhLGZwYSxncGEsaHBhLGdZLGpwYSxpcGEsbHBhLHBwYSxqWSxxcGEsa1ksbFksblksbVksCmlZLHJwYSxzcGEsdXBhLHBZLHdwYSxvWSxyWSxzWSx0WSx1WSx6cGEsQXBhLHdZLHhZLHlZLEFZLENwYSxCWSxEcGEsRFksRXBhLEZZLEhZLEZwYSxJWSxKWSxIcGEsS1ksTVksSXBhLEpwYSxMcGEsTXBhLE5wYSxQcGEsUnBhLFRwYSxVcGEsTlksV3BhLFZwYSxQWSxTWSxPWSxSWSxacGEsWXBhLGJxYSxkcWEsZXFhLGZxYSxncWEsV1ksaHFhLGlxYSxqcWEsa3FhLGxxYSxtcWEsY3FhLFZZLHRxYSxucWEselgsdXFhLFdXLERvYSxjWixLbmEseHFhLGRaLGVaLHlxYSx6cWEsQXFhLEJxYSxDcWEsRHFhLGFYLGZaLGdYLGNYLGRYLGVYLGZYLEVxYSxnWixoWixGcWEsaVosR3FhLEhxYSxpWCxqWixJcWEsUW5hLFhuYSxKcWEsWm5hLCRuYSxyWCxMcWEsam9hLFhZLGtaLE1xYSxxWSxBWDt6bmE9ZnVuY3Rpb24oYSxiKXtiPSgwLF8ueWcpKGIpO2I9Xy5FZihiLGIpO2Iudj0hMDtfLkpmKGEsYik7cmV0dXJuIGF9OwpSVz1mdW5jdGlvbihhLGIpe2E9YS53YXRjaEVuZHBvaW50U3VwcG9ydGVkQXV0aG9yaXphdGlvblRva2VuQ29uZmlnPy52aWRlb0F1dGhvcml6YXRpb25Ub2tlbj8uY3JlZGVudGlhbFRyYW5zZmVyVG9rZW5zfHxbXTtmb3IobGV0IGM9MDtjPGEubGVuZ3RoOysrYylpZihhW2NdLnNjb3BlPT09YilyZXR1cm4gYVtjXS50b2tlbnx8dm9pZCAwfTsKQW5hPWZ1bmN0aW9uKGEsYixjPXt9KXtfLlZpKCgpPT57dmFyIGQ9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucm9vdFZlfHxfLkIoYj8uY29tbWFuZE1ldGFkYXRhLF8ubngpPy5zY3JlZW5WaXN1YWxFbGVtZW50Py51aVR5cGU7aWYoZCl7dmFyIGU9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLmVhYSk7aWYoZT8ucGFyZW50VHJhY2tpbmdQYXJhbXMpe3ZhciBmPV8uVXcoZS5wYXJlbnRUcmFja2luZ1BhcmFtcyk7aWYoZS5wYXJlbnRDc24pdmFyIGg9ZS5wYXJlbnRDc259ZWxzZSBjLmNsaWNrZWRWaXN1YWxFbGVtZW50P2Y9Yy5jbGlja2VkVmlzdWFsRWxlbWVudDpiLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihmPV8uVXcoYi5jbGlja1RyYWNraW5nUGFyYW1zKSk7YTp7ZT1fLkIoYixfLkF3KTt2YXIgaz1fLkIoYixfLmRhYSk7aWYoZSl7aWYoaz1SVyhlLCJWSURFTyIpKXtlPXt0b2tlbjprLHZpZGVvSWQ6ZS52aWRlb0lkfTticmVhayBhfX1lbHNlIGlmKGsmJihlPVJXKGssCiJQTEFZTElTVCIpKSl7ZT17dG9rZW46ZSxwbGF5bGlzdElkOmsucGxheWxpc3RJZH07YnJlYWsgYX1lPXZvaWQgMH1jPXtjdHRBdXRoSW5mbzplLHBhcmVudENzbjpoLC4uLmN9O18ueCgiZXhwZWN0YXRpb25fbG9nZ2luZyIpJiYoYy5sb2dnaW5nRXhwZWN0YXRpb25zPV8uQihiPy5jb21tYW5kTWV0YWRhdGEsXy5ueCk/LmxvZ2dpbmdFeHBlY3RhdGlvbnN8fHZvaWQgMCk7Xy5ETyhhLGQsZixjKX1lbHNlIF8uSXAobmV3IF8uWGooIkVycm9yOiBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHNjcmVlbiB3aXRob3V0IGEgcm9vdFZlVHlwZSIsYikpfSkoKX07Qm5hPWZ1bmN0aW9uKGEsYil7YT1gU0xJX05BTUVfWU9VVFVCRV9FTUJFRFNfV0VCX0ZVTExTQ1JFRU5fUkVRVUVTVF9TTElfJHthfWA7Xy5FeS5yZWdpc3Rlci5oYXMoYSk/Yj1fLkV5LnJlZ2lzdGVyLmdldChhKTooYj1iKCksXy5FeS5yZWdpc3Rlci5zZXQoYSxiKSk7cmV0dXJuIGJ9O0NuYT1mdW5jdGlvbih7c2VydmljZUlkOmF9KXtyZXR1cm4gYS5vfTsKRG5hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5HeSxiPVtTV10sYz1iLm1hcChsPT5DbmEobCkpLGQ9Yi5tYXAobD0+YS5tYXBwaW5ncy5nZXQobC50b1N0cmluZygpKSkuZmlsdGVyKGw9PmwpO2lmKGQubGVuZ3RoPT09Yi5sZW5ndGgpcmV0dXJuIF8uS3koZC5tYXAoKGwsbSk9Pl8ubnkoYSxsLGJbbV0pKSk7dmFyIGU9Xy5WZCgpLmFmKGMpO2Q9Xy5JZihjLm1hcChsPT5lW2xdKSk7dmFyIGY9ZG9jdW1lbnQuaGlkZGVuLGg9LTEsaz1fLnNqKCJnZXRfYXN5bmNfdGltZW91dF9tcyIsLTEpO2s+LTEmJihoPXNldFRpbWVvdXQoKCk9PntfLklwKG5ldyBfLlhqKCJNb2R1bGUgdGltZW91dC4iLGMsZixkb2N1bWVudC5oaWRkZW4pKX0saykpO3JldHVybiB6bmEoZC50aGVuKCgpPT5iLm1hcChsPT5fLm55KGEsYS5tYXBwaW5ncy5nZXQobC50b1N0cmluZygpKSxsKSkpLktnKGw9Pntmb3IobGV0IG0gb2YgYS5qKW0obCk7dGhyb3cgbDt9KSwoKT0+e2NsZWFyVGltZW91dChoKX0pfTsKRW5hPWZ1bmN0aW9uKCl7cmV0dXJuIERuYSgpLnRoZW4oYT0+YVswXSl9O1RXPWZ1bmN0aW9uKGEsYil7YS5EZj1iO2ZvcihsZXQgYyBvZiBhLmRhdGEpYihjKTthLmRhdGE9W119O0ZuYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSxiKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLGIsYyl9O1VXPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspe2xldCBlPWFyZ3VtZW50c1tkXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihsZXQgZj0wO2Y8ZS5sZW5ndGg7Zis9ODE5Mil7dmFyIGM9Rm5hKGUsZixmKzgxOTIpO2M9VVcuYXBwbHkobnVsbCxjKTtmb3IobGV0IGg9MDtoPGMubGVuZ3RoO2grKyliLnB1c2goY1toXSl9ZWxzZSBiLnB1c2goZSl9cmV0dXJuIGJ9OwpHbmE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLkJmKGZ1bmN0aW9uKGIpe3ZhciBjPWEubGVuZ3RoLGQ9W107aWYoYyl7dmFyIGU9ZnVuY3Rpb24oaCxrLGwpe2MtLTtkW2hdPWs/e2Z1bGZpbGxlZDohMCx2YWx1ZTpsfTp7ZnVsZmlsbGVkOiExLHJlYXNvbjpsfTtjPT0wJiZiKGQpfTtmb3IobGV0IGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGY9YVtoXTtfLkhmKGYsXy5EYShlLGgsITApLF8uRGEoZSxoLCExKSl9fWVsc2UgYihkKX0pfTtIbmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5NeigiTE9HR0VEX0lOIixmdW5jdGlvbihjKXthLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpO18uTnooYil9KX07Vlc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oKT0+e3ZhciBjPV8ueSgpO2MucmVzb2x2ZShfLkluKGEpKXx8Xy5KeihjLHtqYTphLFBhOmEsW18uTG5dOmJ9KTtyZXR1cm4gYy5yZXNvbHZlKGEpfX07CkluYT1mdW5jdGlvbihhKXtpZihXVz09PXZvaWQgMCl0aHJvdyBFcnJvcigic2IiKTtpZihXVylmb3IobGV0IFtiLGNdb2YgV1cpYShiLGMpO18uTnYuYWRkKGEpO1dXPXZvaWQgMH07Sm5hPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJjYW5hcnkiOnJldHVybiJDTElFTlRfQ0FOQVJZX1NUQVRFX0NBTkFSWSI7Y2FzZSAiY29udHJvbCI6cmV0dXJuIkNMSUVOVF9DQU5BUllfU1RBVEVfQ09OVFJPTCI7Y2FzZSAibm9uZSI6cmV0dXJuIkNMSUVOVF9DQU5BUllfU1RBVEVfTk9ORSI7ZGVmYXVsdDpyZXR1cm4iQ0xJRU5UX0NBTkFSWV9TVEFURV9VTktOT1dOIn19O1hXPWZ1bmN0aW9uKGEsYj0iIil7dmFyIGM9W107Zm9yKGxldCBkIGluIGEpe2lmKCFhLmhhc093blByb3BlcnR5KGQpKWNvbnRpbnVlO2xldCBlPWIhPT0iIj9iKyIuIitkOmQ7dHlwZW9mIGFbZF09PT0ib2JqZWN0Ij9jLnB1c2goLi4uWFcoYVtkXSxlKSk6Yy5wdXNoKFtlLGFbZF1dKX1jLnNvcnQoKTtyZXR1cm4gY307CllXPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhLmV2ZW50cy52YWx1ZXMoKSliLnB1c2goYyk7cmV0dXJuIGJ9O1pXPWZ1bmN0aW9uKGEpe18uRnk9PW51bGwmJihfLkZ5PW5ldyBLbmEpO3ZhciBiPV8uRnk7dmFyIGM9Yi52O2EuZGltZW5zaW9ucz1hLmRpbWVuc2lvbnN8fHt9O2EuZGltZW5zaW9ucy5jc249Xy5pcSgpfHwiIjt2YXIgZD1YVyhhLmRpbWVuc2lvbnMpLmpvaW4oIjsiKTthLnJlY29yZHMhPW51bGwmJihjLmV2ZW50cy5oYXMoZCk/Yy5ldmVudHMuZ2V0KGQpLnJlY29yZHM/LnB1c2goLi4uYS5yZWNvcmRzKTpjLmV2ZW50cy5zZXQoZCxhKSk7Yi5qLmVuYWJsZWR8fGIuai5zdGFydCgpO2IubysrO2Iubz49MTAwJiZiLmZsdXNoKCl9OyRXPWZ1bmN0aW9uKGEpe2E9YS5rZXl8fGEuaWQ7aWYoIWEpdGhyb3cgRXJyb3IoImZjIik7cmV0dXJuIGF9OwpMbmE9ZnVuY3Rpb24oKXtpZihhWClyZXR1cm4gYVgoKTthWD1fLiRsKCJQZXJzaXN0ZW50RW50aXR5U3RvcmVEYiIse3NlOntFbnRpdHlTdG9yZTp7UGQ6MX0sRW50aXR5QXNzb2NpYXRpb25TdG9yZTp7UGQ6Mn19LHNoYXJlZDohMSx1cGdyYWRlKGEsYil7YigxKSYmXy5vbChfLmtsKGEsIkVudGl0eVN0b3JlIix7a2V5UGF0aDoia2V5In0pLCJlbnRpdHlUeXBlIiwiZW50aXR5VHlwZSIpO2IoMikmJihhPV8ua2woYSwiRW50aXR5QXNzb2NpYXRpb25TdG9yZSIse2tleVBhdGg6WyJwYXJlbnRFbnRpdHlLZXkiLCJjaGlsZEVudGl0eUtleSJdfSksXy5vbChhLCJieVBhcmVudEVudGl0eUtleSIsInBhcmVudEVudGl0eUtleSIpLF8ub2woYSwiYnlDaGlsZEVudGl0eUtleSIsImNoaWxkRW50aXR5S2V5IikpfSx2ZXJzaW9uOjN9KTtyZXR1cm4gYVgoKX07TW5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLkNsKExuYSgpLGEpfTsKYlg9ZnVuY3Rpb24oYSl7cmV0dXJuIHdpbmRvdy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KGEpOkFycmF5KGEpfTsKaFg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5rZXksYz1hLmNvdW50ZXJbMF1eYlswXSxkPWEuY291bnRlclsxXV5iWzFdLGU9YS5jb3VudGVyWzJdXmJbMl0sZj1hLmNvdW50ZXJbM11eYlszXTtmb3IodmFyIGg9MztoPj0wJiYhKGEuY291bnRlcltoXT0tfmEuY291bnRlcltoXSk7aC0tKTtmb3IodmFyIGssbCxtPTQ7bTw0MDspaD1jWFtjPj4+MjRdXmRYW2Q+PjE2JjI1NV1eZVhbZT4+OCYyNTVdXmZYW2YmMjU1XV5iW20rK10saz1jWFtkPj4+MjRdXmRYW2U+PjE2JjI1NV1eZVhbZj4+OCYyNTVdXmZYW2MmMjU1XV5iW20rK10sbD1jWFtlPj4+MjRdXmRYW2Y+PjE2JjI1NV1eZVhbYz4+OCYyNTVdXmZYW2QmMjU1XV5iW20rK10sZj1jWFtmPj4+MjRdXmRYW2M+PjE2JjI1NV1eZVhbZD4+OCYyNTVdXmZYW2UmMjU1XV5iW20rK10sYz1oLGQ9ayxlPWw7YT1hLm87aD1iWzQwXTthWzBdPWdYW2M+Pj4yNF1eaD4+PjI0O2FbMV09Z1hbZD4+MTYmMjU1XV5oPj4xNiYyNTU7YVsyXT1nWFtlPj44JgoyNTVdXmg+PjgmMjU1O2FbM109Z1hbZiYyNTVdXmgmMjU1O2g9Yls0MV07YVs0XT1nWFtkPj4+MjRdXmg+Pj4yNDthWzVdPWdYW2U+PjE2JjI1NV1eaD4+MTYmMjU1O2FbNl09Z1hbZj4+OCYyNTVdXmg+PjgmMjU1O2FbN109Z1hbYyYyNTVdXmgmMjU1O2g9Yls0Ml07YVs4XT1nWFtlPj4+MjRdXmg+Pj4yNDthWzldPWdYW2Y+PjE2JjI1NV1eaD4+MTYmMjU1O2FbMTBdPWdYW2M+PjgmMjU1XV5oPj44JjI1NTthWzExXT1nWFtkJjI1NV1eaCYyNTU7aD1iWzQzXTthWzEyXT1nWFtmPj4+MjRdXmg+Pj4yNDthWzEzXT1nWFtjPj4xNiYyNTVdXmg+PjE2JjI1NTthWzE0XT1nWFtkPj44JjI1NV1eaD4+OCYyNTU7YVsxNV09Z1hbZSYyNTVdXmgmMjU1fTsKTm5hPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXthLmp8fChhLmo9YXdhaXQgYS5vLmltcG9ydEtleSgicmF3IixhLnYse25hbWU6IkFFUy1DVFIifSwhMSxbImVuY3J5cHQiXSkpO2E9YXdhaXQgYS5vLmVuY3J5cHQoe25hbWU6IkFFUy1DVFIiLGNvdW50ZXI6YyxsZW5ndGg6MTI4fSxhLmosYik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpfTtPbmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBFcnJvcj9uZXcgaVgoIlVOS05PV05fRU5DT0RFX0VSUk9SIix7b3JpZ2luYWxNZXNzYWdlOmEubWVzc2FnZX0pOm5ldyBpWCgiVU5LTk9XTl9FTkNPREVfRVJST1IiKX07UG5hPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgRXJyb3I/bmV3IGlYKCJVTktOT1dOX0RFQ09ERV9FUlJPUiIse29yaWdpbmFsTWVzc2FnZTphLm1lc3NhZ2V9KTpuZXcgaVgoIlVOS05PV05fREVDT0RFX0VSUk9SIil9OwpqWD1mdW5jdGlvbihhLGIpe2E9YSBpbnN0YW5jZW9mIGlYP2E6YihhKTtfLkdwKGEpO3Rocm93IGE7fTtrWD1mdW5jdGlvbihhKXthPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKS5zdWJhcnJheSgwLDE2KTt2YXIgYj1uZXcgVWludDhBcnJheSgxNik7Yi5zZXQoYSk7cmV0dXJuIGJ9O1JuYT1mdW5jdGlvbihhKXt2YXIgYj1RbmFbYV07aWYoYilyZXR1cm4gYjtfLklwKG5ldyBfLlhqKCJFbnRpdHkgbW9kZWwgbm90IGZvdW5kLiIse2VudGl0eVR5cGU6YX0pKX07bVg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbFgoYS5vLGIudmVyc2lvbikuZGVjb2RlKGIuZGF0YSxiLmtleSl9O1NuYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5nZXQoYikudGhlbihkPT57aWYoZCl7aWYoYyYmZC5lbnRpdHlUeXBlIT09Yyl0aHJvdyBFcnJvcigiaGMiKTtyZXR1cm4gbVgoYSxkKX19KX07Cm9YPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kVyhiKTtyZXR1cm4gblgoYSxkKS50aGVuKCgpPT5UbmEoYSxiLGMpKX07cFg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEudltjXTtkfHwoZD1uZXcgU2V0LGEudltjXT1kKTtkLmFkZChiKX07ClVuYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JFcoYiksZT1sWChhLm8sMSksZj17Li4uYn07cmV0dXJuIGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5nZXQoZCkudGhlbihoPT57aWYoaCl7aWYoaC5lbnRpdHlUeXBlIT09Yyl0aHJvdyBFcnJvcigiaGMiKTtmLmVudGl0eU1ldGFkYXRhfHwoaD1tWChhLGgpLGYuZW50aXR5TWV0YWRhdGE9aC5lbnRpdHlNZXRhZGF0YSl9fSkudGhlbigoKT0+e3ZhciBoPXtrZXk6ZCxlbnRpdHlUeXBlOmMsZGF0YTplLmVuY29kZShmLGQpLHZlcnNpb246MX07cmV0dXJuIF8uVmsuYWxsKFtfLmxsKGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKSxoKSxvWChhLGYsYyldKX0pLnRoZW4oKCk9PntwWChhLGQsYyk7cmV0dXJuIGR9KX07ClZuYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uR0goYikuZW50aXR5VHlwZTtyZXR1cm4gXy5Way5hbGwoW2Euai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5kZWxldGUoYiksblgoYSxiKV0pLnRoZW4oKCk9PntwWChhLGIsYyl9KX07blg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5qLm9iamVjdFN0b3JlKCJFbnRpdHlBc3NvY2lhdGlvblN0b3JlIikuaW5kZXgoImJ5UGFyZW50RW50aXR5S2V5IikuZGVsZXRlKElEQktleVJhbmdlLm9ubHkoYikpfTsKV25hPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWxYKGEubywxKTtyZXR1cm4gU25hKGEsYixkKS50aGVuKGY9PntpZihmfHxfLngoIndlYl9lbmFibGVfZW50aXR5X3Vwc2VydF9vbl91cGRhdGUiKSl7Zj1fLmhNKGZ8fHt9LGMpO3ZhciBoPXtrZXk6YixlbnRpdHlUeXBlOmQsZGF0YTplLmVuY29kZShmLGIpLHZlcnNpb246MX07cmV0dXJuIF8uVmsuYWxsKFtfLmxsKGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKSxoKSxvWChhLGYsZCldKX19KS50aGVuKCgpPT57cFgoYSxiLGQpO3JldHVybiBifSl9OwpUbmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRXKGIpO2M9Um5hKGMpO2lmKCFjKXJldHVybiBfLlZrLnJlc29sdmUoW10pO2I9bmV3IGMoYik7YT1hLmoub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKTtjPVtdO2ZvcihsZXQgZSBvZiBiLm8oKSljLnB1c2goXy5sbChhLHtwYXJlbnRFbnRpdHlLZXk6ZCxjaGlsZEVudGl0eUtleTplfSkpO3JldHVybiBfLlZrLmFsbChjKS50aGVuKGU9PmUubWFwKGY9PmZbMV0pKX07bFg9ZnVuY3Rpb24oYSxiPTApe2E9YS5qW2JdO2lmKCFhKXRocm93IGI9bmV3IGlYKCJJTlZBTElEX0VOQ09ERVJfVkVSU0lPTiIse0lwOmJ9KSxfLkdwKGIpLGI7cmV0dXJuIGF9O3FYPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIG9mIGEub2JzZXJ2ZXJzKWMoYil9OwpZbmE9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1hd2FpdCBNbmEoYS50b2tlbiksZDtjPWF3YWl0IF8uaWwoYyxbIkVudGl0eVN0b3JlIiwiRW50aXR5QXNzb2NpYXRpb25TdG9yZSJdLCJyZWFkd3JpdGUiLGU9PntkPW5ldyBYbmEoZSxhLmopO3JldHVybiBiKGQpfSk7aWYoZCl7bGV0IGU9ZC52O09iamVjdC5rZXlzKGUpLmxlbmd0aD4wJiYoYS5jaGFubmVsLnBvc3RNZXNzYWdlKGUpLHFYKGEsZSkpfXJldHVybiBjfTthb2E9YXN5bmMgZnVuY3Rpb24oKXt0cnl7bGV0IGI9YXdhaXQgXy5QbCgpO2lmKGImJl8uV2ooKSYmdHlwZW9mIF8udS5Ccm9hZGNhc3RDaGFubmVsIT09InVuZGVmaW5lZCIpe3ZhciBhPW5ldyBabmE7cmV0dXJuIG5ldyAkbmEoYixhKX19Y2F0Y2goYil7YiBpbnN0YW5jZW9mIEVycm9yJiZfLkdwKGIpfX07CmJvYT1mdW5jdGlvbihhKXthPWEub3B0aW9ucz8ucGVyc2lzdGVuY2VPcHRpb247cmV0dXJuIGE9PT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9QRVJTSVNUInx8YT09PSJFTlRJVFlfUEVSU0lTVEVOQ0VfT1BUSU9OX0lOTUVNT1JZX0FORF9QRVJTSVNUIn07CmNvYT1hc3luYyBmdW5jdGlvbihhKXtyWHx8KHJYPWFvYSgpKTt2YXIgYj1hd2FpdCByWDtiJiZhd2FpdCBZbmEoYixjPT57dmFyIGQ9e307Zm9yKGxldCBlIG9mIGEpe2lmKCFlLmVudGl0eUtleXx8IWJvYShlKSljb250aW51ZTtsZXQgZj1fLmRNKGUucGF5bG9hZCksaD12b2lkIDA7ZS50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1JFUExBQ0UiJiYoaD0oKT0+VW5hKGMsZS5wYXlsb2FkW2ZdLGYpKTtlLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIiYmKGg9KCk9PlZuYShjLGUuZW50aXR5S2V5KSk7ZS50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1VQREFURSImJihoPSgpPT5XbmEoYyxlLmVudGl0eUtleSxlLnBheWxvYWRbZl0sZikpO2gmJihkW2UuZW50aXR5S2V5XT1kW2UuZW50aXR5S2V5XT9kW2UuZW50aXR5S2V5XS50aGVuKGgpOmgoKSl9cmV0dXJuIF8uVmsuYWxsKE9iamVjdC52YWx1ZXMoZCkpfSl9Owpkb2E9YXN5bmMgZnVuY3Rpb24oYSxiKXshKGE9YS5tdXRhdGlvbnMpfHxhLmxlbmd0aDw9MHx8KGImJmIuZGlzcGF0Y2goXy5rQSh7dHlwZToiRU5USVRZX0xPQURFRCIscGF5bG9hZDphfSkpLGF3YWl0IGNvYShhKSxhLmxlbmd0aD0wKX07ZW9hPWZ1bmN0aW9uKGEpe3ZhciBiPV8udUMoKTtiLk9jPSEwO2Iuc2Vzc2lvbklkPWEuc2Vzc2lvbklkfHwiIjtiLmRoPWEuZGg7YS5XaCE9bnVsbCYmKGIuV2g9YS5XaCl9O3NYPWZ1bmN0aW9uKGEpe18udUMoKS5wcm9jZXNzb3JzLnB1c2goYSl9O2ZvYT1mdW5jdGlvbigpe18uVnAuc3Vic2NyaWJlKCJoYW5kbGVFcnJvciIsYT0+e3RyeXtmb3IobGV0IGIgaW4gXy5lSSl0cnl7bGV0IGM9Xy5lSVtiXTt0eXBlb2YgXy5lSVtiXT09PSJmdW5jdGlvbiImJihjPWMoKSk7YS5wYXJhbXNbYl09dHlwZW9mIF8uZUlbYl09PT0ib2JqZWN0Ij9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyl9Y2F0Y2goYyl7Xy5JcChjKX19Y2F0Y2goYil7Xy5JcChiKX19KX07CmdvYT1mdW5jdGlvbigpe307dFg9ZnVuY3Rpb24oYSxiLGM9MCl7KGM9Xy5pcShjKSkmJmEmJl8ueUooYyxhLGIpfTtob2E9ZnVuY3Rpb24oYSl7cmV0dXJuIFVXKE9iamVjdC5rZXlzKGEpLm1hcChiPT5iPT09InBsYXlsaXN0RWRpdEVuZHBvaW50Ij9fLkIoYSxfLkF6KS5jbGllbnRBY3Rpb25zfHxbXTphW2JdLmFjdGlvbnN8fGFbYl0uY2xpZW50QWN0aW9uc3x8W10pKX07dVg9ZnVuY3Rpb24oYSl7YT1fLkIoYT8uY29tbWFuZE1ldGFkYXRhLF8uencpO3JldHVybiBhPy51cmw/YS51cmw6bnVsbH07dlg9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgb2YgYSlfLkFKKGMsYiwhMCl9Owppb2E9ZnVuY3Rpb24oKXtfLkpNPXdYO1RXKF8uZ0UsKHtjb21tYW5kOmEsc291cmNlRGF0YTpiLGNvbW1hbmRDb250ZXh0OmN9KT0+e18ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoYSxfLllEKGIsYykpfHwoYT1uZXcgXy5YaigiQ29tbWFuZCBub3QgaGFuZGxlZCBieSBDb21tYW5kSGFuZGxlciIsT2JqZWN0LmtleXMoYSksYyksXy5HcChhKSl9KX07a29hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5QRShqb2EpO3JldHVybiBhIT09dm9pZCAwP2E6Xy5SRTw9Mjk5fTt4WD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50O3JldHVybiBfLnZiKFsiZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwiTVNGdWxsc2NyZWVuQ2hhbmdlIl0sYj0+YG9uJHtiLnRvTG93ZXJDYXNlKCl9YGluIGEpfTsKbG9hPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQ7cmV0dXJuIF8udmIoWyJmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJNU0Z1bGxzY3JlZW5FcnJvciJdLGI9PmBvbiR7Yi50b0xvd2VyQ2FzZSgpfWBpbiBhKX07eVg9ZnVuY3Rpb24oYSxiLGMpe18ucmlhPF8uc2ooIndlYl9zbGlfbG9nX3dhcm5pbmdfc2FtcGxlX3NpemVfcmF0ZSIsLjAwMSkmJl8uSXAobmV3IF8uWGooYFtTTEldICIke2F9IiBlcnJvcmAse3NsaU5hbWU6YSxkaW1lbnNpb25zOmIsZGV0YWlsczpjfSkpfTsKbm9hPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2N8fF8uSXAobmV3IF8uWGooIkZ1bGxzY3JlZW4gY2hhbmdlIHNsaSBjYWxsZWQgYmVmb3JlIHN0YXJ0LiIpKX12YXIgYj16WCxjPSExLGQ9e2p3Om1vYX0uancoImZ1bGxzY3JlZW5fcmVxdWVzdCIpLGU9bG9hKCl8fCJmdWxsc2NyZWVuZXJyb3IiO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsZj0+e2EoKTtkLnpnKCJGQUlMVVJFIik7eVgoImZ1bGxzY3JlZW4gcmVxdWVzdCIsYigpLHtldmVudDpmfSk7Yz0hMX0pO2U9eFgoKXx8ImZ1bGxzY3JlZW5jaGFuZ2UiO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsKCk9PnthKCk7ZC56ZygiU1VDQ0VTUyIpO2M9ITF9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbnJlcXVlc3QiLCgpPT57Yz0hMDtkLkRyKGIoKSl9KX07Cm9vYT1mdW5jdGlvbihhKXt2YXIgYj1hLmZhbGxiYWNrRW5kcG9pbnQsYz1hLnRpbWVvdXRNcztpZighXy54KCJtd2ViX2MzX25pdHJhdGVfY2xpZW50X29wZW5fYXBwX2ZhbGxiYWNrX2tzIikmJmEudXJsKXt2YXIgZD1fLlpiKGEudXJsLCJmZWF0dXJlIil8fCIiO2Q9ZC5zdGFydHNXaXRoKCJlMTVtXyIpfHxkLnN0YXJ0c1dpdGgoImUxZF8iKXx8ZC5zdGFydHNXaXRoKCJlM2RfIik7Xy5mciYmZCYmIWImJihhPWEudXJsLGEuc3RhcnRzV2l0aCgidm5kLnlvdXR1YmU6Ly8iKT9hPWEucmVwbGFjZSgidm5kLnlvdXR1YmU6Ly8iLCJodHRwczovLyIpOmEuc3RhcnRzV2l0aCgieW91dHViZTovLyIpJiYoYT1hLnJlcGxhY2UoInlvdXR1YmU6Ly8iLCJodHRwczovLyIpKSxfLlhiKGEsMCwicmVkaXJlY3RfYXBwX3N0b3JlX2lvcyIsYS5zZWFyY2goXy5ZYikpPj0wfHwoYT1fLkZPKGEsInJlZGlyZWN0X2FwcF9zdG9yZV9pb3MiLCIxIikpLGI9Xy53TihhKSwhY3x8Yzw9MCkmJihjPV8uc2ooIm13ZWJfZGVlcF9saW5rX2ZhbGxiYWNrX3RpbWVvdXRfbXMiLAozRTMpKX1yZXR1cm57ZmFsbGJhY2tFbmRwb2ludDpiLHRpbWVvdXRNczpjfX07cG9hPWZ1bmN0aW9uKGEsYil7Xy54KCJtd2ViX2FwcF9idXR0b25fbG9nX2tzIil8fHRYKF8udGlhKTtiLmV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTthPV8uQihhLF8ucWlhKTthPy51cmwmJih3aW5kb3cubG9jYXRpb249YS51cmwpO3ZhciB7ZmFsbGJhY2tFbmRwb2ludDpjLHRpbWVvdXRNczpkfT1hP29vYShhKTp7ZmFsbGJhY2tFbmRwb2ludDp2b2lkIDAsdGltZW91dE1zOnZvaWQgMH07QVg9PT12b2lkIDAmJmQmJmQ+MCYmKEFYPXNldFRpbWVvdXQoKCk9PntBWD12b2lkIDA7YyYmXy5BSihjLGIuc291cmNlRGF0YSwhMCl9LGQpLF8uTk0od2luZG93LCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e0FYJiYod2luZG93LmNsZWFyVGltZW91dChBWCksQVg9dm9pZCAwKX0pKX07CnFvYT1mdW5jdGlvbihhKXt2YXIgYj14WCgpO2ImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKGIsKCk9Pnt2YXIgYz0hIV8uWk8oKTtjfHxfLk1PKCIueXR3UGxheWVyQm90dG9tQ29udHJvbHNGdWxsc2NyZWVuQnV0dG9uV3JhcHBlciAuZnVsbHNjcmVlbi1pY29uIC5idXR0b24iKTthLnNldEZhdXhGdWxsc2NyZWVuKGMpfSl9O0JYPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNnb29nbGUtZmVlZGJhY2siKTtiJiYoXy5CTihiLGEpLGEmJl8uTU8oKCk9PmIucXVlcnlTZWxlY3RvcigiaWZyYW1lIik/LmNvbnRlbnREb2N1bWVudD8ucXVlcnlTZWxlY3RvcigiLnV2RmVlZGJhY2tGb3JtZm9ybS1pbml0aWFsLWZvY3VzLWVsZW1lbnQsIC51dkZlZWRiYWNrUnNhZGlhbG9nZGlhbG9nIC5zY1NoYXJlZE1hdGVyaWFsYnV0dG9ucm9vdCIpLDUse3JsOiEwfSkpfTsKcm9hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5YRC5yZXNwb25zZT8ucmVzcG9uc2U/LnJlc3BvbnNlQ29udGV4dD8uc2VydmljZVRyYWNraW5nUGFyYW1zPy5maWx0ZXIoYz0+Yy5zZXJ2aWNlPT09IkdGRUVEQkFDSyIpWzBdLnBhcmFtcz8uZmlsdGVyKGM9PmMua2V5PT09ImUiKVswXSxiPW5ldyBTZXQoXy53KCJGRVhQX0VYUEVSSU1FTlRTIixbXSkpOyhhPy52YWx1ZT8uc3BsaXQoIiwiKXx8W10pLmZvckVhY2goYz0+e2IuYWRkKE51bWJlcihjKSl9KTtyZXR1cm4gQXJyYXkuZnJvbShiKS5qb2luKCIsIil9Owpzb2E9ZnVuY3Rpb24oKXtyZXR1cm4gXy5XRCgoKT0+e3ZhciBhPV8uWEQucmVzcG9uc2U/LnJlc3BvbnNlPy5yZXNwb25zZUNvbnRleHQ/LnNlcnZpY2VUcmFja2luZ1BhcmFtcz8uZmlsdGVyKGM9PmMuc2VydmljZT09PSJHRkVFREJBQ0siKVswXS5wYXJhbXM/LmZpbHRlcihjPT5jLmtleT09PSJwcmVtaXVtX21lbWJlcnNoaXAiKVswXSxiPV8uWEQucmVzcG9uc2U/LnBsYXllclJlc3BvbnNlPy5yZXNwb25zZUNvbnRleHQ/LnNlcnZpY2VUcmFja2luZ1BhcmFtcz8uZmlsdGVyKGM9PmMuc2VydmljZT09PSJHRkVFREJBQ0siKVswXS5wYXJhbXM/LmZpbHRlcihjPT5jLmtleT09PSJwcmVtaXVtX21lbWJlcnNoaXAiKVswXTtyZXR1cm4gYT9hLnZhbHVlOmI/Yi52YWx1ZTpudWxsfSl9OwpDWD1mdW5jdGlvbihhKXsobmV3IF8uZnkoYS5vbGRVUkwpKS52PT09IiNmZWVkYmFjayImJndpbmRvdy5sb2NhdGlvbi5oYXNoIT09IiNmZWVkYmFjayImJihCWCghMSksKGE9d2luZG93LkdPT0dMRV9GRUVEQkFDS19ERVNUUk9ZX0ZVTkNUSU9OKSYmYSgpKX07dG9hPWZ1bmN0aW9uKCl7Xy5GSi50aGVuKCgpPT57d2luZG93LmxvY2F0aW9uLmhhc2g9PT0iI2ZlZWRiYWNrIiYmKF8uWU0/Xy4kTSgiIik6Xy5aTSgpKTtyZXR1cm4gXy5GSn0pfTt1b2E9ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsQ1gpO3RvYSgpO0JYKCExKTtfLkVwKCJ1c2VyRmVlZGJhY2tFdmVudCIse30pfTt2b2E9ZnVuY3Rpb24oKXtyZXR1cm57cHJvZHVjdElkOiI3NzUyMiIsbG9jYWxlOl8udygiSFRNTF9MQU5HIiwiZW4iKSxhbGxvd05vbkxvZ2dlZEluRmVlZGJhY2s6ITAsYnVja2V0OiJDMyIsY2FsbGJhY2s6dW9hLG9uTG9hZENhbGxiYWNrOigpPT57QlgoITApfX19Owp3b2E9ZnVuY3Rpb24oYSl7dmFyIGI9dm9hKCksYz17Y2xpZW50QXBwVmVyc2lvbjpfLncoIkNMSUVOVF9BUFBfVkVSU0lPTiIsIiIpLGV4cGVyaW1lbnRzOnJvYSgpLGxvZ2dlZF9pbjpfLnRQKCksRGV2aWNlOl8uYmMoKSxwcmVtaXVtX21lbWJlcnNoaXA6c29hKCl9O18uVk0oKXx8Xy5XTSgpO2EmJmEuZm9yRWFjaChkPT57KGQ9ZC51c2VyRmVlZGJhY2tFbmRwb2ludFByb2R1Y3RTcGVjaWZpY1ZhbHVlRGF0YSkmJmQua2V5JiYoY1tkLmtleV09ZC52YWx1ZSl9KTtfLlVOKCkudGhlbigoKT0+e18uJE0oImZlZWRiYWNrIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLENYKTtfLllPKGIsYyl9KX07eG9hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBEWDtiLmFib3J0KGEpO3JldHVybiBiLnNpZ25hbH07CnlvYT1mdW5jdGlvbigpe2lmKHRoaXMuYWJvcnRlZCl0aHJvdyB0aGlzLnJlYXNvbj8/bmV3IERPTUV4Y2VwdGlvbigic2lnbmFsIGlzIGFib3J0ZWQgd2l0aG91dCByZWFzb24iLCJBYm9ydEVycm9yIik7fTt6b2E9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERYO2ZvcihsZXQgYyBvZiBhKWlmKGMuYWJvcnRlZCl7Yi5hYm9ydChjLnJlYXNvbik7YnJlYWt9ZWxzZSBFWC5zZXQoYi5zaWduYWwsYiksRlguYWRkKGMsYi5zaWduYWwpO3JldHVybiBiLnNpZ25hbH07QW9hPWZ1bmN0aW9uKCl7Zm9yKGxldCBhIG9mIEZYLmdldCh0aGlzKSlFWC5nZXQoYSkuYWJvcnQodGhpcy5yZWFzb24pfTtCb2E9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERYO3NldFRpbWVvdXQoKCk9PntiLmFib3J0KG5ldyBET01FeGNlcHRpb24oInNpZ25hbCB0aW1lZCBvdXQiLCJUaW1lb3V0RXJyb3IiKSl9LGEpO3JldHVybiBiLnNpZ25hbH07CkNvYT1mdW5jdGlvbigpe3ZhciBhPVtdLGI7dmFyIGM9Y3x8R1gubGVuZ3RoO2ZvcihiPTA7Yjw4O2IrKylhW2JdPUdYWzB8TWF0aC5yYW5kb20oKSpjXTtyZXR1cm4gYS5qb2luKCIiKX07SFg9ZnVuY3Rpb24oYSl7Zm9yKGxldCBbLGJdb2YgT2JqZWN0LmVudHJpZXMoRG9hKSl7bGV0IGM9YjtpZihjPT09IlNMSV9TVEFUVVNfIithKXJldHVybiBjfXJldHVybiJTTElfU1RBVFVTX1VOS05PV04ifTtJWD1mdW5jdGlvbihhLGIsYyl7Yj1IWChiKTtaVyh7ZGltZW5zaW9uczpjLHJlY29yZHM6W3tuYW1lOmEsc3RhdGU6IlNMSV9TVEFURV9FTkQiLHN0YXR1czpifV19KX07Rm9hPWZ1bmN0aW9uKGEpe3JldHVybiBCbmEoYSwoKT0+bmV3IEVvYShhKSl9O21vYT1mdW5jdGlvbihhKXtyZXR1cm4gRm9hKGEpfTtLWD1mdW5jdGlvbihhLGIpe0pYKGEsYCR7Yn0gd2FzIGNhbGxlZCBidXQgbm90IHNldGApfTtIb2E9ZnVuY3Rpb24oYSl7cmV0dXJuIEdvYS5pbmRleE9mKGEpPi0xfTsKSlg9ZnVuY3Rpb24oYSxiLGMpe2M9YyE9PXZvaWQgMD9PYmplY3Qua2V5cyhhKS5maWx0ZXIoYyk6T2JqZWN0LmtleXMoYSk7YT1uZXcgXy5YaihgW0NvbW1hbmQgSGFuZGxlcl0gJHtifWAse2ZpbHRlcmVkQ29tbWFuZE5hbWVzOmMsb3JpZ2luYWxDb21tYW5kOmF9KTtfLkdwKGEpfTtJb2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkIoYSxfLk5KKTtpZihjJiYoYz1iW2Muc2lnbmFsXSkpcmV0dXJuIGMoKTtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYSkpaWYoYltkXSYmKGE9YltkXSkpcmV0dXJuIGEoKX07Sm9hPWZ1bmN0aW9uKGEsYixjPSExLGQ9ITEsZT1bXSl7TFguaW5zdGFuY2U9bmV3IExYKGEsYixjLGQsZSl9OwpLb2E9ZnVuY3Rpb24oYSl7aWYoIWEuRCYmXy53QygiY29tbWFuZCIpKXtsZXQgYj1hLnJlc29sdmVDb21tYW5kO2EucmVzb2x2ZUNvbW1hbmQ9ZnVuY3Rpb24oYyxkKXthOntmb3IoZSBpbiBjKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGUpKXt2YXIgZT17Y29tbWFuZFR5cGU6ZX07YnJlYWsgYX1lPXt9fXJldHVybiBfLnlDKCJjb21tYW5kIixlLGIuYmluZCh0aGlzLGMsZCkpfTthLkQ9ITB9fTsKTVg9ZnVuY3Rpb24oYSxiLGMpeyFjPy5tZCYmYS5qJiYoYi5jbGlja1RyYWNraW5nUGFyYW1zPyhjPWM/LmZvcm0/LmVsZW1lbnQsYS5qLmNsaWNrQ29tbWFuZChiLG51bGwsYyYmYy5nZXRTY3JlZW5MYXllciYmYy5nZXRTY3JlZW5MYXllcigpKSk6Yi5jbGlja1RyYWNraW5nUGFyYW1zP2Euai5jbGlja0NvbW1hbmQoYik6IV8ueCgiZGlzYWJsZV9jbGlja2VkX3Zpc3VhbF9lbGVtZW50X2luX2NvbW1hbmRfaGFuZGxlciIpJiZjPy5jbGlja2VkVmlzdWFsRWxlbWVudCYmXy53SihhLmosYy5jbGlja2VkVmlzdWFsRWxlbWVudCkpfTsKTG9hPWZ1bmN0aW9uKGEsYixjKXtpZighYS5CKXJldHVybntoYW5kbGVkOiExfTt2YXIgZD1Jb2EoYixhLkIpO3JldHVybiBkPygoYS5LLnNvbWUoZT0+ISFfLkIoYixlKSl8fGM/LlBwfHwhYS5JKSYmTVgoYSxiLGMpLHtoYW5kbGVkOiEwLFprOihhc3luYygpPT57YXdhaXQgKGQgaW5zdGFuY2VvZiBQcm9taXNlP2F3YWl0IGQ6ZCkucmVzb2x2ZShiLGMpfSkoKX0pOntoYW5kbGVkOiExfX07Ck5YPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1Nb2EoYik7aWYoIWM/LlRLKXtsZXQgZj1Mb2EoYSxiLGMpO2lmKGYuaGFuZGxlZClyZXR1cm4gZn1pZihkKXJldHVybiBOb2EoYSxiLGMpO2lmKCFhLnYpcmV0dXJuIEpYKGIsIlVuaGFuZGxlZCBjb21tYW5kIGJ5IGJ1aWxkQ29tbWFuZFBheWxvYWQiKSx7aGFuZGxlZDohMX07dmFyIGU9YS52KGIsYyk7Yz8uRWkmJihlLkVpPWMuRWkpO2lmKGUudHlwZT09PTApe2lmKCFhLm5hdmlnYXRlKXJldHVybiBLWChiLCJuYXZpZ2F0ZSIpLHtoYW5kbGVkOiExfTtpZighXy5CKGUuY29tbWFuZD8uY29tbWFuZE1ldGFkYXRhLF8uencpPy51cmwpcmV0dXJuIEpYKGIsIlBhZ2UgcmVxdWVzdHMgbmVlZCB0byBzcGVjaWZ5IGEgdXJsIikse2hhbmRsZWQ6ITF9O2lmKE9vYShhLGUuY29tbWFuZCkpcmV0dXJue2hhbmRsZWQ6ITF9O18ueCgibG9nZ2luZ19hdm9pZF9ibG9ja2luZ19kdXJpbmdfbmF2aWdhdGlvbiIpJiZfLmlvKCkudHJhbnNpdGlvbigiYXBwbGljYXRpb25fbmF2aWdhdGluZyIpOwpiPWEubmF2aWdhdGUoZSl8fFtdO2Q9UHJvbWlzZS5yZXNvbHZlKEduYShiKS50aGVuKCgpPT57YS5vLmRlbGV0ZShlLmNvbW1hbmQpfSkpO2EuaiYmIWEuWSYmQW5hKGEuaixlLmNvbW1hbmQse2NsaWNrZWRWaXN1YWxFbGVtZW50OmM/LmNsaWNrZWRWaXN1YWxFbGVtZW50LGZsOmIsbGF5ZXI6ZS5sYXllcixhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTo0fSk7cmV0dXJue2hhbmRsZWQ6ITAsWms6ZH19aWYoZS50eXBlPT09MSlyZXR1cm4gS1goYiwiaGFuZGxlU2VydmljZVJlcXVlc3QiKSx7aGFuZGxlZDohMX07ZS50eXBlPT09MiYmS1goYiwic2VuZEFjdGlvbiIpO3JldHVybntoYW5kbGVkOiExfX07TW9hPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQihhLF8uenopPy5zaWduYWw9PT0iQ0xJRU5UX1NJR05BTCI7cmV0dXJuISFfLkIoYSxfLlNEKXx8Yn07Ck5vYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT1fLkIoYixfLlNEKTtlP2Q9ZT8uY29tbWFuZHN8fFtdOl8uQihiLF8uenopPy5zaWduYWw9PT0iQ0xJRU5UX1NJR05BTCImJihkPV8uQihiLF8uenopPy5hY3Rpb25zfHxbXSk7aWYoZCl7KGU9UG9hKGEsZCkpJiZNWChhLGIsYyk7Yj1bXTtmb3IobGV0IGYgb2YgZCl0cnl7ZD17Li4uY307ZSYmKGQubWQ9ITApO2xldCBoPU5YKGEsZixkKTtoLmhhbmRsZWQmJmIucHVzaChoLlprKX1jYXRjaChoKXtoIGluc3RhbmNlb2YgRXJyb3ImJl8uR3AoaCl9cmV0dXJue2hhbmRsZWQ6ITAsWms6UHJvbWlzZS5hbGxTZXR0bGVkKGIpLnRoZW4oKCk9Pnt9KX19SlgoYiwiQ291bGQgbm90IGhhbmRsZSB0aGUgbWV0YSBjb21tYW5kIik7cmV0dXJue2hhbmRsZWQ6ITF9fTtPb2E9ZnVuY3Rpb24oYSxiKXtpZihhLm8uaGFzKGIpKXJldHVybiEwO2Euby5hZGQoYik7cmV0dXJuITF9OwpQb2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5ldmVyeShjPT5hLk0uc29tZShkPT4hIV8uQihjLGQpKSl9O1FvYT1mdW5jdGlvbihhLGIpe2E9YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpO2lmKGEubGVuZ3RoKXJldHVybiBhPy5maW5kKGM9PmM/LmdldExhbmd1YWdlSW5mbygpPy5nZXRJZCgpPT09Yil9O1JvYT1mdW5jdGlvbihhLGIsYyl7YT1fLiRPKGEpO2lmKGEubGVuZ3RoKXJldHVybiBjP2EuZmluZChkPT5kLnRyYW5zbGF0aW9uTGFuZ3VhZ2U/ZC50cmFuc2xhdGlvbkxhbmd1YWdlLmxhbmd1YWdlQ29kZT09PWI6ITEpOmE/LmZpbmQoZD0+ZC5sYW5ndWFnZUNvZGU9PT1iKX07ClNvYT1mdW5jdGlvbihhKXt2YXIgYj1hLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7aWYoYj8ubGVuZ3RoKXt2YXIgYz1hLmdldEF1ZGlvVHJhY2soKTthPXtsaXN0SXRlbXM6Wy4uLmIubWFwKGQ9Pih7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50OmQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0TmFtZSgpfSxpc1NlbGVjdGVkOmQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0SWQoKT09PWM/LmdldExhbmd1YWdlSW5mbygpLmdldElkKCksc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfREVGQVVMVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e3NpZ25hbFNlcnZpY2VFbmRwb2ludDp7c2lnbmFsOiJDTElFTlRfU0lHTkFMIixhY3Rpb25zOlt7YXVkaW9UcmFja1NlbGVjdEFjdGlvbkNvbW1hbmQ6e2xhbmd1YWdlQ29kZTpkLmdldExhbmd1YWdlSW5mbygpLmdldElkKCl9fV19fX19fX19KSldLAp2aXNpYmxlRWxlbWVudENvdW50OjV9O3JldHVybntzaG93U2hlZXRDb21tYW5kOntwYW5lbExvYWRpbmdTdHJhdGVneTp7aW5saW5lQ29udGVudDp7c2hlZXRWaWV3TW9kZWw6e2hlYWRlcjp7cGFuZWxIZWFkZXJWaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoIkFVRElPX1RSQUNLIix2b2lkIDAsIkF1ZGlvIFRyYWNrIil9fX0sY29udGVudDp7bGlzdFZpZXdNb2RlbDphfX19fX19fX07T1g9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0T3B0aW9uKCJjYXB0aW9ucyIsInRyYWNrbGlzdCIse2luY2x1ZGVBc3I6ITB9KX07VG9hPWZ1bmN0aW9uKGEpe3ZhciBiPU9YKGEpO2lmKGI/Lmxlbmd0aClyZXR1cm4gYjthLmxvYWRNb2R1bGUoImNhcHRpb25zIik7cmV0dXJuIE9YKGEpfTsKUFg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKTtpZihiKXJldHVybiBiO2EubG9hZE1vZHVsZSgiY2FwdGlvbnMiKTtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKX07UVg9ZnVuY3Rpb24oYSxiKXtyZXR1cm57cGFuZWxIZWFkZXJWaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoYSx2b2lkIDAsYil9fX19OwpWb2E9ZnVuY3Rpb24oYSl7dmFyIGI9VG9hKGEpO2lmKGI/Lmxlbmd0aCl7dmFyIGM9UFgoYSk7YT17bGlzdEl0ZW1zOlt7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoIlBMQVlFUl9DQVBUSU9OX09GRiIsdm9pZCAwLCJPZmYiKX0saXNTZWxlY3RlZDohYz8ubGFuZ3VhZ2VDb2RlLHNlbGVjdGlvblN0eWxlOiJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQiLHJlbmRlcmVyQ29udGV4dDp7Y29tbWFuZENvbnRleHQ6e29uVGFwOntpbm5lcnR1YmVDb21tYW5kOntzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiQ0xJRU5UX1NJR05BTCIsYWN0aW9uczpbe2NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6e2xhbmd1YWdlQ29kZToiIn19LHtoaWRlU2hlZXRDb21tYW5kOnt9fV19fX19fX19LC4uLmIubWFwKGQ9Pih7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50OmQuZGlzcGxheU5hbWV9LGlzU2VsZWN0ZWQ6ZC5kaXNwbGF5TmFtZT09PQpjPy5kaXNwbGF5TmFtZSxzZWxlY3Rpb25TdHlsZToiTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9ERUZBVUxUIixyZW5kZXJlckNvbnRleHQ6e2NvbW1hbmRDb250ZXh0OntvblRhcDp7aW5uZXJ0dWJlQ29tbWFuZDp7c2lnbmFsU2VydmljZUVuZHBvaW50OntzaWduYWw6IkNMSUVOVF9TSUdOQUwiLGFjdGlvbnM6W3tjYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kOntsYW5ndWFnZUNvZGU6ZC5sYW5ndWFnZUNvZGV9fSx7aGlkZVNoZWV0Q29tbWFuZDp7fX1dfX19fX19fSkpLHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6e2NvbnRlbnQ6Xy5hQSgiQVVUT19UUkFOU0xBVEUiLHZvaWQgMCwiQXV0by10cmFuc2xhdGUiKX0saXNTZWxlY3RlZDohIWMudHJhbnNsYXRpb25MYW5ndWFnZSxzZWxlY3Rpb25TdHlsZToiTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9ERUZBVUxUIiwuLi4oISFjLnRyYW5zbGF0aW9uTGFuZ3VhZ2UmJntzZWxlY3Rpb25UZXh0Ontjb250ZW50OmM/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U/Lmxhbmd1YWdlTmFtZXx8CiIifX0pLHJlbmRlcmVyQ29udGV4dDp7Y29tbWFuZENvbnRleHQ6e29uVGFwOntpbm5lcnR1YmVDb21tYW5kOntzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiQ0xJRU5UX1NJR05BTCIsYWN0aW9uczpbVW9hKGEpXX19fX19fX1dLHZpc2libGVFbGVtZW50Q291bnQ6NX07cmV0dXJue3Nob3dTaGVldENvbW1hbmQ6e3BhbmVsTG9hZGluZ1N0cmF0ZWd5OntpbmxpbmVDb250ZW50OntzaGVldFZpZXdNb2RlbDp7aGVhZGVyOlFYKCJQTEFZRVJfQ0FQVElPTiIsIkNhcHRpb25zIiksY29udGVudDp7bGlzdFZpZXdNb2RlbDphfX19fX19fX07ClVvYT1mdW5jdGlvbihhKXt2YXIgYj1fLmFQKGEpO2lmKCFiPy5sZW5ndGgpdGhyb3cgRXJyb3IoImJlIik7dmFyIGM9UFgoYSk7YT17bGlzdEl0ZW1zOlsuLi5iLmZpbHRlcihkPT4hZC5sYW5ndWFnZUNvZGU/LnN0YXJ0c1dpdGgoImVuIikpLm1hcChkPT4oe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTp7Y29udGVudDpkLmxhbmd1YWdlTmFtZXx8IiJ9LGlzU2VsZWN0ZWQ6ZC5sYW5ndWFnZU5hbWU9PT1jPy50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWUsc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfREVGQVVMVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e3NpZ25hbFNlcnZpY2VFbmRwb2ludDp7c2lnbmFsOiJDTElFTlRfU0lHTkFMIixhY3Rpb25zOlt7Y2FwdGlvbkxhbmd1YWdlU2VsZWN0QWN0aW9uQ29tbWFuZDp7bGFuZ3VhZ2VDb2RlOmQubGFuZ3VhZ2VDb2RlLGlzQXV0b1RyYW5zbGF0ZWQ6ITB9fSwKe2hpZGVTaGVldENvbW1hbmQ6e319XX19fX19fX0pKV0sdmlzaWJsZUVsZW1lbnRDb3VudDo1fTtyZXR1cm57c2hvd1NoZWV0Q29tbWFuZDp7cGFuZWxMb2FkaW5nU3RyYXRlZ3k6e2lubGluZUNvbnRlbnQ6e3NoZWV0Vmlld01vZGVsOntoZWFkZXI6UVgoIkFVVE9fVFJBTlNMQVRFIiwiQXV0by10cmFuc2xhdGUiKSxjb250ZW50OntsaXN0Vmlld01vZGVsOmF9fX19fX19O1dvYT1mdW5jdGlvbihhKXt2YXIgYj1fLlZ3KCk7aWYoYil7dmFyIGM9e3dlYkNsaWVudENvbXBvbmVudHNEYXRhOntjb21wb25lbnRzOkFycmF5LmZyb20oYS5pZHMsZD0+KHtpZDpkfSkpfX07YS5pZHMuY2xlYXIoKTtfLmh4KCkudmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChiLGMpfX07ClhvYT1mdW5jdGlvbihhKXt2YXIgYj16WDthLmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLGM9PntpZihhKXt2YXIgZD1hLmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkO2QhPT1SWCYmYz09PTEmJihSWD1kLFNYLm8oYigpKSxUWC5vKGIoKSkpfX0pO2EuYWRkRXZlbnRMaXN0ZW5lcigib25FcnJvciIsYz0+e1NYLmooYigpKTt5WCgicGxheWVyIGVycm9yIixiKCkse2Vycm9yQ29kZTpjfSl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGxheWJhY2stdW5wbGF5YWJsZSIsYz0+e1RYLmooYigpKTt5WCgicGxheWVyIHVucGxheWFibGUiLGIoKSx7cmVhc29uOmMuZGV0YWlsPy5yZWFzb259KX0pfTtZb2E9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmouZ2V0KGIpO2lmKGMpcmV0dXJuIGMucHJvbWlzZTtjPW5ldyBfLmNzO2Euai5zZXQoYixjKTtyZXR1cm4gYy5wcm9taXNlfTsKWm9hPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5PbS5nZXQoYik7cmV0dXJuIGM/YzpZb2EoYSxiKX07JG9hPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYS5wYW5lbExvYWRpbmdTdHJhdGVneT8ucmVxdWVzdFRlbXBsYXRlKXRyeXtsZXQgYz1hd2FpdCBhLm8uUWkoYik7aWYoYylyZXR1cm4gYy5jb250ZW50O18uR3AoRXJyb3IoImNlIikpfWNhdGNoKGMpe18uR3AoYyl9fTtWWD1mdW5jdGlvbihhLGIpe3JldHVybiBVWChhKT8ub3coYik/P2J9O1VYPWZ1bmN0aW9uKGEpe3JldHVybiBfLlpPKCkmJmEuTT9hLk06YS5jb250YWluZXJ9O1dYPWZ1bmN0aW9uKGEpe2EuWSYmKGNsZWFyVGltZW91dChhLlkpLGEuWT12b2lkIDApO2EuQiYmKGNsZWFyVGltZW91dChhLkIpLGEuQj12b2lkIDApfTsKJFg9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZD1jKXt2YXIgZT17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7bGV0IGY9Xy5adCxoPWF3YWl0IGEuZG0oKTtfLlZ6KGUsXy52TShmKSk7aWYoaClpZihhLm8pe2lmKGEuY3VycmVudFRhcmdldD09PWMpcmV0dXJuO1hYKGEpO1lYKGEpO2F3YWl0IFVYKGEpPy5KZSgpfWVsc2UgaWYoIV8ueCgiZGVsYXlfc2hlZXRfb3Blbl9raWxsc3dpdGNoIikpe2lmKF8ueCgid2ViX2Nsb3NlX3NoZWV0X2lmX3NhbWVfdGFyZ2V0X2tpbGxzd2l0Y2giKSYmYyYmYS5jdXJyZW50VGFyZ2V0PT09Yyl7VVgoYSk/LkplKCk7cmV0dXJufWEudj17ZGF0YTpiLHRhcmdldDpWWChhLGMpfTtyZXR1cm59Yi52aWV3TW9kZWwmJihiPXt2aWV3TW9kZWw6Yi52aWV3TW9kZWwsVXI6Yi5VcixleHBhbmRUb0Z1bGxXaWR0aDpiLmV4cGFuZFRvRnVsbFdpZHRoLG9wZW5Ub1NpZGU6Yi5vcGVuVG9TaWRlfSk7VVgoYSk/LndnKGIsYyxkKTthLmN1cnJlbnRUYXJnZXQ9CmM7YS5vPyhhLkkoKSxhLmN1cnJlbnRUYXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuSSksYS5jdXJyZW50VGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixhLlopLFpYKGEpKTphLkQmJlpYKGEpfWNhdGNoKGYpe2UuZXJyb3I9ZixlLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihlKX19O1hYPWZ1bmN0aW9uKGEpe2EuY3VycmVudFRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYS5JKTthLmN1cnJlbnRUYXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGEuWil9O1lYPWZ1bmN0aW9uKGEpe3ZhciBiPVVYKGEpPy5YcCgpO2I/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuVSk7Yj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsYS5LKX07ClpYPWZ1bmN0aW9uKGEpe3ZhciBiPVVYKGEpPy5YcCgpO2I/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuVSk7Yj8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsYS5LKX07YVk9YXN5bmMgZnVuY3Rpb24oYSl7aWYoYS5vKXtpZihhLmopcmV0dXJuO1hYKGEpO1lYKGEpfWVsc2UgYS5EJiYoWVgoYSksYS5LKCkpO2F3YWl0IFVYKGEpPy5KZSgpO2EuY3VycmVudFRhcmdldD12b2lkIDA7YS5qPSExO2Eubz0hMTthLmhpZGVEZWxheU1zPTA7YS5zaG93RGVsYXlNcz0wO2EuRD0hMTthLnYmJiFfLngoImRlbGF5X3NoZWV0X29wZW5fa2lsbHN3aXRjaCIpJiYoYXdhaXQgYS53ZyhhLnYuZGF0YSxhLnYudGFyZ2V0KSxhLnY9dm9pZCAwKX07CmFwYT1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7cmV0dXJue2NsZWFyOmZ1bmN0aW9uKCl7Yz1iLmxlbmd0aD0wfSxwdXNoOmZ1bmN0aW9uKGQpe2JbY109ZDtjPShjKzEpJWF9LFp4OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBkPWIubGVuZ3RoO2ZvcihsZXQgZT0wO2U8ZDtlKyspeWllbGQgYlsoYytlKSVkXX0oKX19fTticGE9ZnVuY3Rpb24oYSl7YS55bHx8KGEueWw9W10pO3ZhciBiPWEueWwubWFwKF8uUFcpLGM9bmV3IFNldChiKSxkPWFwYShhLmJ1ZmZlclNpemUpO3JldHVybntmbHVzaDpmdW5jdGlvbigpe3ZhciBlPUFycmF5LmZyb20oZC5aeCgpKTtkLmNsZWFyKCk7ZT1lLm1hcChmPT4oe25hbWU6Zi5uYW1lLHRpbWVzdGFtcDpmLnN0YXJ0VGltZSxhdHRyaWJ1dGVzOmYuYXR0cmlidXRlc30pKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9LEdtKGUpe2UubmFtZT09PSJldmVudCImJmMuaGFzKGUuYXR0cmlidXRlcy50eXBlKXx8ZC5wdXNoKGUpfX19OwpjcGE9ZnVuY3Rpb24oYSl7dmFyIHtmbHVzaDpiLEdtOmN9PWJwYShhKTtzWCh7R206Y30pO18uVnAuc3Vic2NyaWJlKCJoYW5kbGVFcnJvciIsZD0+e3RyeXtkLnBhcmFtcy5icmVhZGNydW1icz1iKCl9Y2F0Y2goZSl7Xy5HcChlLCJXQVJOSU5HIil9fSl9O2JZPWZ1bmN0aW9uKCl7Xy5Teigid2ViX3RyYWNpbmdfYWN0aW9uIik7Xy5Ueigid2ViX3RyYWNpbmdfYWN0aW9uIix7fSx2b2lkIDAsIkxBVEVOQ1lfQUNUSU9OX1dFQl9UUkFDSU5HIil9O2VZPWZ1bmN0aW9uKCl7aWYoY1kpcmV0dXJuIndlYl90cmFjaW5nX2FjdGlvbiI7ZFkoKTtzZXRJbnRlcnZhbChkWSw2RTUpO2NZPSEwO3JldHVybiJ3ZWJfdHJhY2luZ19hY3Rpb24ifTtkWT1mdW5jdGlvbigpe18uU3ooIndlYl90cmFjaW5nX2FjdGlvbiIpO18uVHooIndlYl90cmFjaW5nX2FjdGlvbiIse30sdm9pZCAwLCJMQVRFTkNZX0FDVElPTl9XRUJfVFJBQ0lORyIpfTsKZHBhPWZ1bmN0aW9uKGEsYj1lWSgpLGMpe3JldHVybigwLF8uY3QpKGEubmFtZSwoYS5lbmRUaW1lPz9hLnN0YXJ0VGltZSktYS5zdGFydFRpbWUsYS5zdGFydFRpbWUse3dlYlRyYWNpbmc6e1thLm5hbWVdOmEuYXR0cmlidXRlc319LGMsYix7c3BhblN0YXR1czphLnN0YXR1cyxyb290U3Bhbk5vbmNlOnZvaWQgMCxxdTp2b2lkIDB9KX07Zlk9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1kcGEoYSxiLGMpO2lmKGEuY2hpbGRyZW4pZm9yKGxldCBlIG9mIGEuY2hpbGRyZW4pZlkoZSxiLGMsZHx8Yyl9OwplcGE9ZnVuY3Rpb24oYSl7dmFyIGI9Z29hLmJpbmQobnVsbCwieXQudGVsZW1ldHJ5X2V4dGVuc2lvbiIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixjPT57Yy5kYXRhJiZ0eXBlb2YgYy5kYXRhPT09Im9iamVjdCImJihjPWMuZGF0YSxjLmZyb209PT0iZXh0ZW5zaW9uIiYmYy5hcHA9PT0ieXQudGVsZW1ldHJ5IiYmKGIoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24iLGMpLGEub25NZXNzYWdlKGMpKSl9KTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtjPXthcHA6Inl0LnRlbGVtZXRyeSIsZnJvbToiYXBwIixrZXk6YyxwYXlsb2FkOmR9O2IoIlNlbmRpbmcgbWVzc2FnZSB0byBleHRlbnNpb24iLGMpO3dpbmRvdy5wb3N0TWVzc2FnZShjLCIqIil9fTsKZnBhPWZ1bmN0aW9uKCl7dmFyIGE9ZXBhKHtvbk1lc3NhZ2UoKXt9fSksYj1bXTtyZXR1cm57bHIoYyl7Yy5wYXJlbnRJZD09bnVsbCYmYi5wdXNoKGMpPT09MSYmc2V0VGltZW91dCgoKT0+e3ZhciBkPVsuLi5iXTtiLmxlbmd0aD0wO2EoInNwYW5zUmVwb3J0ZWQiLHtzcGFuczpkfSl9LDNFMyl9fX07Z3BhPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LmZldGNoO3dpbmRvdy5mZXRjaD0oLi4uYik9Pnt2YXIgW2MsZD17fV09YixlPV8ueUMoImh0dHBFdmVudCIse21ldGhvZDpkLm1ldGhvZHx8IkdFVCIscGF0aDpnWShjKSx0eXBlOiJmZXRjaCJ9LHthY3RpdmU6ITF9KTtyZXR1cm4gYSguLi5iKS50aGVuKGY9PntlLkRlKHtzdGF0dXNDb2RlOmYuc3RhdHVzLHN0YXR1c1RleHQ6Zi5zdGF0dXNUZXh0fSk7ZS5lbmQoKTtyZXR1cm4gZn0pLmNhdGNoKGY9PntlLmVuZCgiU1BBTl9TVEFUVVNfRVJST1IiKTt0aHJvdyBmO30pfX07CmhwYT1mdW5jdGlvbigpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5vcGVuLGI9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNlbmQ7WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oYyxkLGU9ITAsZixoKXt0aGlzLnY9e21ldGhvZDpjLHVybDpkLnRvU3RyaW5nKCl9O3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt2YXIgaz10aGlzLmo7az8uRGUoe3N0YXR1c0NvZGU6dGhpcy5zdGF0dXMscmVzcG9uc2VDb250ZW50TGVuZ3RoOnRoaXMucmVzcG9uc2VUZXh0Lmxlbmd0aH0pO2s/LmVuZCgpfSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt2YXIgaz10aGlzLmo7az8uRGUoe3N0YXR1c0NvZGU6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHR9KTtrPy5lbmQoIlNQQU5fU1RBVFVTX0VSUk9SIil9KTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKT0+e3ZhciBrPXRoaXMuajtrPy5EZSh7c3RhdHVzQ29kZTp0aGlzLnN0YXR1cywKYWJvcnRlZDohMH0pO2s/LmVuZCgpfSk7YS5hcHBseSh0aGlzLFtjLGQsZSxmLGhdKX07WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYyl7dmFyIHttZXRob2Q6ZCx1cmw6ZX09dGhpcy52fHx7bWV0aG9kOiJOL0EiLHVybDoiTi9BIn07dGhpcy5qPV8ueUMoImh0dHBFdmVudCIse21ldGhvZDpkLHBhdGg6Z1koZSksdHlwZToieGhyIn0se2FjdGl2ZTohMX0pO2IuYXBwbHkodGhpcyxbY10pfX07Z1k9ZnVuY3Rpb24oYSl7dHJ5e2lmKGEgaW5zdGFuY2VvZiBVUkwpcmV0dXJuIGEucGF0aG5hbWU7YSBpbnN0YW5jZW9mIFJlcXVlc3QmJihhPWEudXJsKTtyZXR1cm4obmV3IFVSTChhLCJodHRwczovL3lvdXR1YmUuY29tIikpLnBhdGhuYW1lfWNhdGNoKGIpe3JldHVybiI8dW5hYmxlIHRvIHBhcnNlIHBhdGg+In19OwpqcGE9ZnVuY3Rpb24oKXt3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0cnl7bGV0IGE9d2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKTtpZihhLmxlbmd0aD4wKXtsZXQgYj1hWzBdLGM9d2luZG93LnBlcmZvcm1hbmNlLnRpbWVPcmlnaW47Xy55QygicGFnZUxvYWQiLHtuYXZpZ2F0aW9uVHlwZTppcGEoYi50eXBlKSx1bmxvYWRFdmVudFN0YXJ0Ok1hdGgucm91bmQoYi51bmxvYWRFdmVudFN0YXJ0KSx1bmxvYWRFdmVudEVuZDpNYXRoLnJvdW5kKGIudW5sb2FkRXZlbnRFbmQpLGRvbUludGVyYWN0aXZlOk1hdGgucm91bmQoYi5kb21JbnRlcmFjdGl2ZSksZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQ6TWF0aC5yb3VuZChiLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0KSxkb21Db250ZW50TG9hZGVkRXZlbnRFbmQ6TWF0aC5yb3VuZChiLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCksCmRvbUNvbXBsZXRlOk1hdGgucm91bmQoYi5kb21Db21wbGV0ZSksbG9hZEV2ZW50U3RhcnQ6TWF0aC5yb3VuZChiLmxvYWRFdmVudFN0YXJ0KSxsb2FkRXZlbnRFbmQ6TWF0aC5yb3VuZChiLmxvYWRFdmVudEVuZCkscmVkaXJlY3RDb3VudDpiLnJlZGlyZWN0Q291bnR9LHthY3RpdmU6ITEsc3RhcnRUaW1lOmMrYi5zdGFydFRpbWUsZW5kVGltZTpjK2IubG9hZEV2ZW50RW5kfSl9fWNhdGNoKGEpe319KX07CmlwYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX05BVklHQVRFIjtjYXNlICJyZWxvYWQiOnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX1JFTE9BRCI7Y2FzZSAiYmFja19mb3J3YXJkIjpyZXR1cm4iUEVSRk9STUFOQ0VfTkFWSUdBVElPTl9USU1JTkdfVFlQRV9CQUNLX0ZPUldBUkQiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuIlBFUkZPUk1BTkNFX05BVklHQVRJT05fVElNSU5HX1RZUEVfUFJFUkVOREVSIjtkZWZhdWx0OnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX1VOS05PV04ifX07CmxwYT1mdW5jdGlvbigpe0luYSgoYSxiKT0+e3ZhciBjPW5ldyBNYXAsZCxlPWVZKCk7Zm9yKGxldCBoIG9mIGEuc3BhbnMpe2lmKGgubWFya2VyKWNvbnRpbnVlO3ZhciBmPWIuZ2V0KGguaWQpPy5nZXQoXy5Pdik7bGV0IGs9Zj9rcGFbZi50eXBlXTp2b2lkIDA7aWYoIWZ8fGguZHVyYXRpb25Ncz09PXZvaWQgMHx8az09PXZvaWQgMCl7aC5wYXJlbnRJZCE9PXZvaWQgMCYmKGY9Yy5nZXQoaC5wYXJlbnRJZCksZiE9PXZvaWQgMCYmYy5zZXQoaC5pZCxmKSk7Y29udGludWV9bGV0IGw9YS5uSytoLnlLLG09aC5wYXJlbnRJZCE9PXZvaWQgMD9jLmdldChoLnBhcmVudElkKTp2b2lkIDAsbixwO3N3aXRjaChmLnR5cGUpe2Nhc2UgIlJlbmRlciI6Y2FzZSAiRWZmZWN0IjpjYXNlICJPbkluaXQiOmNhc2UgIlJlbmRlckVmZmVjdCI6cD1mLmxvY2F0aW9uO2JyZWFrO2Nhc2UgIkNyZWF0ZVJlYWN0aXZlQ29tcG9uZW50IjpuPWYuY29tcG9uZW50TmFtZTticmVhaztjYXNlICJDb21wdXRlZCI6bj0KZi5oSTtwPWYubG9jYXRpb247YnJlYWs7Y2FzZSAiU2lnbmFsVXBkYXRlIjpuPWYuU0t9aWYoZj0oMCxfLmN0KSgiY293X3NwYW4iLGguZHVyYXRpb25NcyxsLHt3ZWJUcmFjaW5nOntjb3dTcGFuOnt0eXBlOmssbmFtZTpuLGNvZGVMb2NhdGlvbjpwfX19LG0sZSx7cm9vdFNwYW5Ob25jZTpkfSkpYy5zZXQoaC5pZCxmKSxkPT09dm9pZCAwJiYoZD1mKX19KX07CnBwYT1mdW5jdGlvbigpe3ZhciBhPWhZLnZhbHVlLGI9e307Zm9yKGxldCBjIG9mIGEuSHYpYltjXT0hMDtlb2Eoe3Nlc3Npb25JZDpfLkZuKCksZGg6YixXaChjLGQsZSl7cmV0dXJuIG1wYT9jPT09InNob3J0VG9TaG9ydCJ8fGU/Lld6KCk/Lm5hbWU9PT0ic2hvcnRUb1Nob3J0IjohMH19KTtmb2EoKTtfLndDKCJwYWdlTG9hZCIpJiZqcGEoKTtfLndDKCJjb3dTcGFuIikmJmxwYSgpO18ud0MoImh0dHBFdmVudCIpJiYoZ3BhKCksaHBhKCkpO2EuUXYmJnNYKG5wYSk7YS5SdiYmc1goZnBhKCkpO2EuTXE+MCYmY3BhKHt5bDpvcGEsYnVmZmVyU2l6ZTphLk1xfSl9OwpqWT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDB8fGEuZ2V0QXR0cmlidXRlKCJ2aWV3Qm94Iil8fGEuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IixgMCAwICR7Yn0gJHtifWApO2Euc2V0QXR0cmlidXRlKCJmb2N1c2FibGUiLCJmYWxzZSIpO2Euc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTtiPV8ueCgia2lsbHN3aXRjaF9yZW1vdmVfaWNvbl9maWxsX2NvbG9yIik7YS5nZXRBdHRyaWJ1dGUoImZpbGwiKSE9PSJjdXJyZW50Y29sb3IiJiZhLmdldEF0dHJpYnV0ZSgiZmlsbCIpIT09ImN1cnJlbnRDb2xvciJ8fGJ8fGEucmVtb3ZlQXR0cmlidXRlKCJmaWxsIik7dHJ5e2Euc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYS5zdHlsZS5kaXNwbGF5PSJpbmhlcml0IixhLnN0eWxlLndpZHRoPSIxMDAlIixhLnN0eWxlLmhlaWdodD0iMTAwJSJ9Y2F0Y2goYyl7aVkoe2Vycm9yOmM/LnRvU3RyaW5nP2MudG9TdHJpbmcoKToiIn0pO3RyeXthLnN0eWxlLmNzc1RleHQ9InBvaW50ZXItZXZlbnRzOiBub25lOyBkaXNwbGF5OiBpbmhlcml0OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyJ9Y2F0Y2goZCl7aVkoe2Vycm9yOmQ/LnRvU3RyaW5nPwpkLnRvU3RyaW5nKCk6IiJ9KX19cmV0dXJuIGF9OwpxcGE9ZnVuY3Rpb24oYSl7aWYoXy54KCJ3aWxfaWNvbnNfY2FjaGVfcHVyZ2Vfa2lsbHN3aXRjaCIpKXJldHVybiExO3RyeXt2YXIgYj1fLnUubG9jYWxTdG9yYWdlfWNhdGNoKGUpe3JldHVybiExfWlmKCFifHwhYS5CKXJldHVybiExO3ZhciBjPWU9Pnt0cnl7Yj8uc2V0SXRlbSgieXQtaWNvbnMtbGFzdC1wdXJnZWQiLGUudG9TdHJpbmcoKSl9Y2F0Y2goZil7aVkoe2Vycm9yOmY/LnRvU3RyaW5nP2YudG9TdHJpbmcoKToiIn0pfX0sZD1OdW1iZXIoYi5nZXRJdGVtKCJ5dC1pY29ucy1sYXN0LXB1cmdlZCIpKTtpZighZClyZXR1cm4gZD1uZXcgRGF0ZSxkPWQuc2V0RGF0ZShkLmdldERhdGUoKS1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTArMSkpLGMoZCksITE7aWYoZnVuY3Rpb24oZSxmKXtlPW5ldyBEYXRlKGUpO2Y9bmV3IERhdGUoZik7cmV0dXJuIGYuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCkrMTIqKGYuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCkpfShkLERhdGUubm93KCkpPAozKXJldHVybiExO3RyeXtyZXR1cm4gXy51LmNhY2hlcy5kZWxldGUoInl0LWljb25zIikudGhlbihlPT57ZSYmYyhEYXRlLm5vdygpKTtyZXR1cm4gZX0pLmNhdGNoKCgpPT4hMSkuZmluYWxseSgoKT0+e2EuSz0hMX0pfWNhdGNoKGUpe3JldHVybiBpWSh7ZXJyb3I6ZT8udG9TdHJpbmc/ZS50b1N0cmluZygpOiIifSksITF9fTsKa1k9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnVybDtpZighcnBhKGMpKXRocm93IEVycm9yKCJkZSIpO3JldHVybiBzcGEoYSxjKS50aGVuKGQ9PmQuY2xvbmUoKS50ZXh0KCkpLnRoZW4oZD0+e3ZhciBlPV8uZ2IoZCk7ZD1iLnNpemU7dmFyIGY9Xy5DZCgiRElWIik7Xy56QShmLGUpO2lmKGYuZmlyc3RFbGVtZW50Q2hpbGQhPT12b2lkIDApZT1mLmZpcnN0RWxlbWVudENoaWxkO2Vsc2UgZm9yKGU9Zi5maXJzdENoaWxkO2UmJmUubm9kZVR5cGUhPTE7KWU9ZS5uZXh0U2libGluZztlPV8uRGQoZSk7ZD1qWShlLGQpO2EuRFtjXT1kLmNsb25lTm9kZSghMCk7ZGVsZXRlIGEuWVtjXTtyZXR1cm4gZH0pLmNhdGNoKCgpPT57fSl9OwpsWT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4oZSxmKT0+e3ZhciBoPV8uQ2QoIkRJViIpLGs9e2ljb25XaWR0aDpgJHtiLnNpemV9cHhgLGljb25IZWlnaHQ6YCR7Yi5zaXplfXB4YCxqeDoiYmxvY2siLC4uLmYsaWNvbkNvbG9yOmY/Lmljb25Db2xvcj8/ImN1cnJlbnRjb2xvciJ9O2Y9ay5pY29uQ29sb3I7dmFyIGw9ay5hZztrPWB3aWR0aDogJHtrLmljb25XaWR0aH07IGhlaWdodDogJHtrLmljb25IZWlnaHR9OyBkaXNwbGF5OiAke2suanh9O2A7bCYmKGsrPWAgZmlsdGVyOiAke2x9O2ApO2M9PT0wJiYoays9YCBmaWxsOiAke2Z9O2ApO2M9PT0xJiYobD1iLnVybCxrKz1gIC13ZWJraXQtbWFzazogdXJsKCR7bH0pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjsgbWFzazogdXJsKCR7bH0pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjsgYmFja2dyb3VuZC1jb2xvcjogJHtmfWApO2IudnUmJmEuS2s9PT0icnRsIiYmKGsrPSIgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Iik7Cmguc2V0QXR0cmlidXRlKCJzdHlsZSIsayk7Yz09PTAmJmQmJmguYXBwZW5kQ2hpbGQoZCk7ZS5hcHBlbmRDaGlsZChoKX19OwpuWT1mdW5jdGlvbihhLGIpe2lmKGIpe2EuY291bnRlcis9MTthPWBfeXQke2EuY291bnRlcn1gO2I9W2IsLi4uYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpXTtmb3IobGV0IGMgb2YgYilpZihjLnRhZ05hbWU9PT0ic3R5bGUiJiZjLnRleHRDb250ZW50KWMudGV4dENvbnRlbnQ9bVkoYy50ZXh0Q29udGVudCxhLCEwKTtlbHNlIGZvcihsZXQgZCBvZiBjLmF0dHJpYnV0ZXMpe2QubmFtZT09PSJpZCImJihkLnZhbHVlKz1hKTtbIm1hc2siLCJmaWxsIiwiY2xpcC1wYXRoIl0uaW5jbHVkZXMoZC5uYW1lKSYmKGQudmFsdWU9bVkoZC52YWx1ZSxhKSk7aWYoZC5uYW1lPT09InN0eWxlIil7Yj1jLnN0eWxlO3RyeXtiLmNzc1RleHQ9bVkoYi5jc3NUZXh0LGEsITApfWNhdGNoKGUpe2lZKHtlcnJvcjplPy50b1N0cmluZz8uKCl8fCIiLGVsOmMub3V0ZXJIVE1MLHN0eWxlOiEhYixjc3NUZXh0OmI/LmNzc1RleHR9KX19ZC5uYW1lPT09InhsaW5rOmhyZWYiJiYoZC52YWx1ZT1kLnZhbHVlLnJlcGxhY2UoLyMoLiopLywKYCMkMSR7YX1gKSl9fX07bVk9ZnVuY3Rpb24oYSxiLGM9ITEpe3ZhciBkPS91cmxcKFsiJ10/IyguKj8pWyInXT9cKS87YyYmKGQ9L3VybFwoWyInXT8jKC4qPylbIiddP1wpL2cpO3JldHVybiBhLnJlcGxhY2UoZCxgdXJsKCMkMSR7Yn0pYCl9O2lZPWZ1bmN0aW9uKGEpe18uSXAobmV3IF8uWGooIkVycm9yIGluIEljb25NYW5hZ2VyIixhKSl9O3JwYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgdHBhKWlmKGEuc3RhcnRzV2l0aChiKSYmYS5lbmRzV2l0aCgiLnN2ZyIpKXJldHVybiEwO3JldHVybiExfTsKc3BhPWFzeW5jIGZ1bmN0aW9uKGEsYil7YS5RYSYmYXdhaXQgdXBhKGEpO3ZhciBjPWEuWVtiXTtpZighYyl7bGV0IGQ9YXN5bmMoKT0+e3ZhciBlPWEuQj9hLlp8fGF3YWl0IGEuVTp2b2lkIDA7cmV0dXJuIGEub2E/YS5nYShiLGUpLmNhdGNoKGEuaGEuYmluZChhLGIsZSkpOmEuaGEoYixlKS5jYXRjaChhLmdhLmJpbmQoYSxiLGUpKX07Yz1hLk1hP25ldyBQcm9taXNlKChlLGYpPT57Xy5ZaigoKT0+e2QoKS50aGVuKGUpLmNhdGNoKGYpfSwxMCl9KTpkKCk7YS5ZW2JdPWN9cmV0dXJuIGMuY2F0Y2goZD0+e2RlbGV0ZSBhLllbYl07aVkoe2Vycm9yOmQ/LnRvU3RyaW5nP2QudG9TdHJpbmcoKToiIix1cmw6Yn0pO3Rocm93IGQ7fSl9O3VwYT1mdW5jdGlvbihhKXt2YXIgYj1hLnY/LnByb21pc2U7Ynx8KGEudj1uZXcgXy5jcyxiPWEudi5wcm9taXNlLF8udS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnthLnY/LnJlc29sdmUoKTthLnY9bnVsbH0pKTtyZXR1cm4gYn07CnBZPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYS5JPHZwYSlyZXR1cm4gYS5JKz0xLG9ZKGEsYikuZmluYWxseSgoKT0+ey0tYS5JO2lmKE9iamVjdC5rZXlzKGEubykubGVuZ3RoKXtsZXQgZD1PYmplY3Qua2V5cyhhLm8pWzBdLGU9YS5vW2RdO2RlbGV0ZSBhLm9bZF07ZS5yZXNvbHZlKHBZKGEsZCkpfX0pO3ZhciBjPW5ldyBfLmNzO2Eub1tiXT1jO3JldHVybiBjLnByb21pc2V9O3dwYT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXtkJiZuZXcgUHJvbWlzZShlPT57Xy5Zaihhc3luYygpPT57YS5vYSYmYXdhaXQgZC5tYXRjaChiKS5jYXRjaCgoKT0+e30pfHxhd2FpdCBkLnB1dChiLGMuY2xvbmUoKSkuY2F0Y2goZj0+e2lZKHtlcnJvcjpmPy50b1N0cmluZz9mLnRvU3RyaW5nKCk6IiIsdXJsOmJ9KX0pO2UoKX0sNTApfSl9OwpvWT1hc3luYyBmdW5jdGlvbihhLGIsYz0yKXtyZXR1cm4gXy51LmZldGNoKGIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIscHJpb3JpdHk6ImxvdyJ9KS50aGVuKGQ9PmQub2s/ZDpQcm9taXNlLnJlamVjdChFcnJvcigiZWVgIitkLnN0YXR1cysiYCIrZC5zdGF0dXNUZXh0KSkpLmNhdGNoKGQ9PntpZihjPjApcmV0dXJuIG9ZKGEsYixjLTEpO3Rocm93IGQ7fSl9OwpyWT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hW2IuaWNvbk5hbWVdfHxbXTthPXZvaWQgMDtmb3IobGV0IGggb2YgZSl7YTp7dmFyIGY9Yi5pY29uU2l6ZTtlPWIuaWNvblN0eWxlO2Y9IWZ8fGY9PT1oWzJdO2xldCBrPXFZW2hbMF1dO2lmKGQmJmQhPT1oWzFdfHwhZnx8ZSYmZSE9PWspe2U9ITE7YnJlYWsgYX1pZighYSl7ZT0hMDticmVhayBhfWU9cVlbaFswXV07ZT0hIWIuaWNvblN0eWxlfHxlPT09InlvdXR1YmVfb3V0bGluZSI7Zj1hLnZlcnNpb248PWhbMV07ZT0oISFiLmljb25TaXplfHxoWzJdPT09MjQpJiZlJiZmfWUmJihhPXtuYW1lOmIuaWNvbk5hbWUsc3R5bGU6cVlbaFswXV0sc2l6ZTpoWzJdLHZlcnNpb246aFsxXSx2dTohIWhbM10sdXJsOmMoYi5pY29uTmFtZSxoKX0pfXJldHVybiBhfTtzWT1mdW5jdGlvbihhLGIsYyxkPSExKXtyZXR1cm5gJHthfSR7cVlbY1swXV19JHtkPyJfZXhwZXJpbWVudGFsIjoiIn0vJHtifS92JHtjWzFdfS8ke2NbMl19cHguc3ZnYH07CnRZPWZ1bmN0aW9uKGEpe3JldHVybiBfLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpIT09IldFQl9SRU1JWCImJl8udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIikhPT0iV0VCX0NSRUFUT1IiPyJib29rbWFyayI6YX07dVk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy54KCJlbmFibGVfd2ViX2RlbGhpX2ljb25zIil8fGI/eHBhW2EudG9VcHBlckNhc2UoKV06eXBhW2EudG9VcHBlckNhc2UoKV19O3pwYT1mdW5jdGlvbihhLGIpe3JldHVybiBzWSgiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kvIixhLGIpfTtBcGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gc1koImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pLyIsYSxiLCEwKX07d1k9ZnVuY3Rpb24oKXt2WS5pbnN0YW5jZXx8KHZZLmluc3RhbmNlPW5ldyB2WSk7cmV0dXJuIHZZLmluc3RhbmNlfTsKeFk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQnBhLmhhcyhiKXx8Xy53KCJJU19IT01FUEFHRV9DT0xEIil8fF8udygiSVNfUkVTVUxUU19QQUdFX0NPTEQiKXx8Xy53KCJJU19XQVRDSF9QQUdFX0NPTEQiKT9hLnNpZ25hbHMuaW5kZXhPZihiKT49MDohMH07eVk9ZnVuY3Rpb24oYSl7dmFyIGI9ITE7cmV0dXJuKCk9PntifHwoYj0hMCxhKCkpfX07QVk9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZih6WS5oYXMoZCkpXy5DaygpLkdhKGIsYyxlKTtlbHNle2xldCBmPWEuai5nZXQoZCk7ZiYmXy5DaygpLkdhKCgpPT57eFkoYSxkKXx8KGYuaGc/Xy5DaygpLkdhKGIsYyk6Zi5Cbi5wdXNoKCgpPT57Xy5DaygpLkdhKGIsYyl9KSl9LGMsZSl9fTtDcGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9KCk9PnthLldtKGIpfTtmb3IobGV0IGYgb2YgZClhLmFkZExpc3RlbmVyKGYsZSk7YS5qLnNldChiLHtzaWduYWxzOmMsVng6ITAsaXNJbml0aWFsaXplZDohMSxoZzohMSxCbjpbXX0pO0JZKGEsYil9OwpCWT1mdW5jdGlvbihhLGIpe2lmKCF4WShhLGIpKXt2YXIgYz1hLmouZ2V0KGIpO2lmKGMmJiFjLmhnKXt2YXIgZD0hMSxlPTAsZj0wO2ZvcihsZXQgaCBvZiBjLnNpZ25hbHMpe2xldCBrPSF4WShhLGgpO2lmKHpZLmhhcyhoKSlkPSEwO2Vsc2V7bGV0IGw9YS5qLmdldChoKTtsP2smJiFsLmhnJiYoZisrLGMuaXNJbml0aWFsaXplZHx8bC5Cbi5wdXNoKCgpPT57QlkoYSxiKX0pKTprJiZlKyt9fWMuaXNJbml0aWFsaXplZD0hMDtjLlZ4P2QmJihjLmhnPSEwKTplPT09MCYmZj09PTAmJihjLmhnPSEwKTtpZihjLmhnKWZvcihsZXQgaCBvZiBjLkJuKWgoKX19fTsKRHBhPWZ1bmN0aW9uKGEpe2E9YS5vcGVuUG9wdXBBY3Rpb258fGE7dmFyIGI9YS5wb3B1cFR5cGUsYz1hLnBvcHVwO3N3aXRjaChiKXtjYXNlICJUT0FTVCI6Zm9yKGxldCBkIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShkKSYmXy5wUCgoKT0+Xy5LKF8uVyx7ZGF0YTooKT0+Y30se25vdGlmaWNhdGlvbkFjdGlvblJlbmRlcmVyOkNZfSksYS5kdXJhdGlvbkhpbnRNcyxhLnJldXNlUG9wdXApO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImZlYCIrYik7fX07CkRZPWZ1bmN0aW9uKGEsYil7dmFyIGM9dVgoYSk7aWYoYyl7dmFyIGQ9dm9pZCAwLGU9Xy5CKGE/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KTtlJiZlLnJvb3RWZSYmKGQ9ZS5yb290VmUpO18ucVAoe2hyZWY6YyxwYXJhbXM6e2l0Y3Q6YS5jbGlja1RyYWNraW5nUGFyYW1zLGF1dG9uYXY6Yj8uYXV0b25hdn0sdGFyZ2V0Ol8uS08oKSYmXy5CKGEsXy5CaGEpPyJfYmxhbmsiOnZvaWQgMCxhazpkLGNsaWNrZWRWaXN1YWxFbGVtZW50OmIuY2xpY2tlZFZpc3VhbEVsZW1lbnQsaW1wbGljaXRHZXN0dXJlVHlwZTpiLmltcGxpY2l0R2VzdHVyZVR5cGUsZWxlbWVudDpiLmV2ZW50Py50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50P2IuZXZlbnQudGFyZ2V0OnZvaWQgMCxlbmRwb2ludDphLHBhcmVudExheWVyOmIucGFyZW50TGF5ZXJ9KX19OwpFcGE9ZnVuY3Rpb24oYSxiKXtpZihfLngoImVtYmVkc19lbmFibGVfZW1jM2RzX3BmcCIpKWlmKEVZKXt2YXIgYz1fLkIoYSxfLkF3KSxkPWM/LnZpZGVvSWQsZT1jPy5wbGF5bGlzdElkO2R8fGU/KGE9e3ZpZGVvX2lkOmR9LGMmJihhLnBsYXllcl9wYXJhbXM9Yy5wbGF5ZXJQYXJhbXMpLGU/KGEubGlzdD1lLEVZLmxvYWRQbGF5bGlzdChhKSk6RVkubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKGEpKTooYz1uZXcgXy5YaigiRW1jM2RzIFdhdGNoRW5kcG9pbnQgbWFsZm9ybWVkIix7Y29tbWFuZDpKU09OLnN0cmluZ2lmeShhKX0pLF8uR3AoYyksRFkoYSxiKSl9ZWxzZSBjPW5ldyBfLlhqKCJFbWMzZHMgV2F0Y2hFbmRwb2ludCByZXNvbHZlZCB3aXRob3V0IHBsYXllckFwaSIse2NvbW1hbmQ6SlNPTi5zdHJpbmdpZnkoYSl9KSxfLkdwKGMpLERZKGEsYik7ZWxzZSBEWShhLGIpfTtGWT1mdW5jdGlvbihhKXtyZXR1cm57cmVzb2x2ZTooYixjPXt9KT0+e2EoYixjLmZvcm18fHt9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9fX07CkhZPWZ1bmN0aW9uKGEsYil7R1kucHVzaCh7YWN0aW9uOmEsY29udGV4dDpifSl9O0ZwYT1mdW5jdGlvbigpe1RXKEdZLCh7YWN0aW9uOmEsY29udGV4dDpifSk9PntfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKGEse2Zvcm06Yn0pfHxKWChhLCJBY3Rpb24gbm90IGhhbmRsZWQgYnkgQ29tbWFuZEhhbmRsZXIiLEhvYSl9KX07CklZPWZ1bmN0aW9uKGEsYixjKXtmb3IobGV0IGYgb2YgaG9hKGEpKUhZKGYsYyk7YT1iLmRhdGE/LmFjdGlvbnM/P1tdO2Zvcih2YXIgZCBvZiBhKUhZKGQsYyk7ZD1iLmRhdGE/LmNvbW1hbmRzPz9bXTtmb3IodmFyIGUgb2YgZClIWShlLGMpOyhlPWIuZGF0YT8uY29tbWFuZCkmJkhZKGUsYyk7dlgoYi5kYXRhPy5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zPz9bXSxjLnNvdXJjZURhdGEpO3ZYKGIuZGF0YT8ub25SZXNwb25zZVJlY2VpdmVkQ29tbWFuZHM/P1tdLGMuc291cmNlRGF0YSk7dlgoYi5kYXRhPy5vblJlc3BvbnNlUmVjZWl2ZWRFbmRwb2ludHM/P1tdLGMuc291cmNlRGF0YSk7KGI9Yi5kYXRhPy51cGRhdGVGbG93Q29tbWFuZCkmJkhZKGIsYyl9OwpKWT1hc3luYyBmdW5jdGlvbihhLGI9Xy5MaGEpe3ZhciBjPWI7Xy5CKGEsXy5BeSl8fChjPU9iamVjdC5hc3NpZ24oe2NzbjpfLmlxKCl8fCIifSxiKSk7Yj1hd2FpdCBfLnkoKS5yZXNvbHZlKF8uSHkpKCk7aWYoYi5KdyhhKSlyZXR1cm4gYi5RaShhLGMpLnRoZW4oZD0+ZD8uZGF0YT9kLmRhdGE6ZCkudGhlbihkPT57dmFyIGU7KGU9ZD8uZGF0YT8udHJhY2tpbmdQYXJhbXMpJiZfLmx4KF8uaHgoKSxlKTtyZXR1cm57Y29kZTpkJiZkLmVycm9yPyJFUlJPUiI6IlNVQ0NFU1MiLGRhdGE6ZH19KTt0aHJvdyBuZXcgXy5Yaigibm8gcmVxdWVzdCBidWlsZGVyIGZvdW5kIixhKTt9O0hwYT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkuc29tZShiPT5iIGluIEdwYSl9OwpLWT1mdW5jdGlvbihhKXt2YXIgYj1hLmRhdGE/LmNvbnRlbnRzPy5bMF07aWYoIWJ8fCFIcGEoYikpcmV0dXJuIGE7Yj17b3BlblBvcHVwQWN0aW9uOntwb3B1cFR5cGU6IkRJQUxPRyIscG9wdXA6Yn19O2EuZGF0YS5hY3Rpb25zfHwoYS5kYXRhLmFjdGlvbnM9W10pO2EuZGF0YS5hY3Rpb25zLnB1c2goYik7cmV0dXJuIGF9OwpNWT1mdW5jdGlvbihhLGIsYyl7Xy5CKGEsXy5BeSkmJmEuY2xpY2tUcmFja2luZ1BhcmFtcyYmKExZPV8uVXcoYS5jbGlja1RyYWNraW5nUGFyYW1zKSk7cmV0dXJuIEpZKGEsYykudGhlbihkPT57aWYoXy5CKGEsXy5BeSk/LnJlcXVlc3Q9PT0iQ09OVElOVUFUSU9OX1JFUVVFU1RfVFlQRV9SRUVMX1dBVENIX1NFUVVFTkNFIil7dmFyIGU9ZC5kYXRhO2UmJiFlLm9uUmVzcG9uc2VSZWNlaXZlZEFjdGlvbnMmJihlLmVudHJpZXN8fGUucHJldkVudHJpZXMpJiYoZS5lbnRyaWVzPyhlLm9uUmVzcG9uc2VSZWNlaXZlZEFjdGlvbnM9W10sZS5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zLnB1c2goe2FwcGVuZFJlZWxXYXRjaFNlcXVlbmNlQ29udGludWF0aW9uRW50cmllc0FjdGlvbjp7ZW50cmllczplLmVudHJpZXMsY29udGludWF0aW9uRW5kcG9pbnQ6ZS5jb250aW51YXRpb25FbmRwb2ludH19KSk6ZS5wcmV2RW50cmllcyYmKGUub25SZXNwb25zZVJlY2VpdmVkQWN0aW9ucz1bXSwKZS5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zLnB1c2goe2FwcGVuZFJlZWxXYXRjaFNlcXVlbmNlQ29udGludWF0aW9uRW50cmllc0FjdGlvbjp7cHJldkVudHJpZXM6ZS5wcmV2RW50cmllcyxwcmV2Q29udGludWF0aW9uRW5kcG9pbnQ6ZS5wcmV2Q29udGludWF0aW9uRW5kcG9pbnR9fSkpKX1pZihfLkIoYSxfLlV6KXx8Xy5CKGEsXy5kTykpYi5jdXJyZW50RGF0YXx8KGIuY3VycmVudERhdGE9Xy5YRD8ucmVzcG9uc2U/P3t9KSxiLnNvdXJjZURhdGF8fChiLnNvdXJjZURhdGE9YSk7SVkoYSxLWShkKSxiKTtfLkIoYSxfLkF5KSYmZD8uZGF0YT8udHJhY2tpbmdQYXJhbXMmJl8ubHgoXy5oeCgpLGQuZGF0YS50cmFja2luZ1BhcmFtcyxMWSk7cmV0dXJuIGR9LGQ9Pnt2YXIgZT1PYmplY3Qua2V5cyhhKS5maWx0ZXIoZj0+Xy5NYShmLCJFbmRwb2ludCIpKVswXTtlJiYoZT1hW2VdLChlPWU/Lm9uRmFpbHVyZUFjdGlvbj8/ZT8ub25GYWlsdXJlQ29tbWFuZCkmJkhZKGUsYikpO3Rocm93IGQ7Cn0pfTtJcGE9ZnVuY3Rpb24oYSxiKXtfLkIoYSxfLmNFKT8ubmF2aWdhdGlvblR5cGU9PT0iQlJPV1NFX05BVklHQVRJT05fVFlQRV9TVEFZX09OX1BBR0UiP01ZKGEsYik6RFkoYSxiKX07SnBhPWZ1bmN0aW9uKGEsYil7aWYoYT0oXy5CKGEsXy5TRCl8fGEpLmNvbW1hbmRzKWZvcihsZXQgYyBvZiBhKV8uS00oYyk/Xy5BSihjLGIuc291cmNlRGF0YSwhMCxiKTpIWShjLGIpfTsKTHBhPWFzeW5jIGZ1bmN0aW9uKGEpe2E9Xy5CKGEsS3BhKTtpZihhPy50ZXh0JiZuYXZpZ2F0b3IuY2xpcGJvYXJkKXRyeXtpZihhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChhLnRleHQpLGEuc3VjY2Vzc0FjdGlvbnMmJmEuc3VjY2Vzc0FjdGlvbnMubGVuZ3RoIT09MClmb3IobGV0IGIgb2YgYS5zdWNjZXNzQWN0aW9ucylfLkFKKGIse30sITEpfWNhdGNoKGIpe2lmKGEuZmFpbHVyZUFjdGlvbnMmJmEuZmFpbHVyZUFjdGlvbnMubGVuZ3RoIT09MClmb3IobGV0IGMgb2YgYS5mYWlsdXJlQWN0aW9ucylfLkFKKGMse30sITEpfX07TXBhPWZ1bmN0aW9uKGEpeygwLF8ud2lhKSh7bm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbjp7dG9nZ2xlQnV0dG9uUmVuZGVyZXI6YS5zb3VyY2VEYXRhfX0sYj0+KHsuLi5iLG5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b246e3RvZ2dsZUJ1dHRvblJlbmRlcmVyOmEuc291cmNlRGF0YX19KSl9OwpOcGE9ZnVuY3Rpb24oYSxiKXtNWShhLGIpLnRoZW4oKCk9PntNcGEoYil9KX07UHBhPWZ1bmN0aW9uKGEpe18ucVAoe2hyZWY6Xy5LeihgdGVsOiR7Xy5CKGEsT3BhKS5waG9uZU51bWJlcn1gLFtfLkhxXSkudG9TdHJpbmcoKSxlbmRwb2ludDphfSl9O1JwYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEpZKGEsYykudGhlbihkPT57SVkoYSxLWShkKSxiKTt2YXIgZT1fLldEKCgpPT5kLmRhdGEucmVkaXJlY3RFbmRwb2ludCk7ZSYmXy5BSihlLGQuZGF0YSwhMSl9LGQ9PntfLnBQKCgpPT5RcGEpO3Rocm93IGQ7fSl9O1RwYT1mdW5jdGlvbihhKXt2YXIgYj1fLkIoYSxTcGEpLGM9YHNtczoke2IucGhvbmVOdW1iZXJzJiZiLnBob25lTnVtYmVyc1swXX1gO2IubWVzc2FnZVRleHQmJihjKz1gPyZib2R5PSR7ZW5jb2RlVVJJKGIubWVzc2FnZVRleHQpfWApO18ucVAoe2hyZWY6Xy5LeihjLFtfLk9xXSkudG9TdHJpbmcoKSxlbmRwb2ludDphfSl9OwpVcGE9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2g9PT0iI2RpYWxvZyJ9O05ZPWFzeW5jIGZ1bmN0aW9uKCl7YXdhaXQgXy5GSjtyZXR1cm4gbmV3IFByb21pc2UoYT0+e3ZhciBiPV8ueSgpLnJlc29sdmUoXy5JbihfLnlQKSk7Yj8ucnEoKSYmYi5sZCgpO3dpbmRvdy5sb2NhdGlvbi5oYXNoPT09IiNkaWFsb2ciP18uWU0/c2V0VGltZW91dCgoKT0+e18uJE0oIiIpO2EoKX0sMTAwKTpfLlpNKCkudGhlbigoKT0+e2EoKX0pOmEoKX0pfTsKV3BhPWZ1bmN0aW9uKGEsYixjLGQpe1ZwYShjKTtjPU9ZKGEpO3ZhciBlPW5hdmlnYXRvcixmPV8uZnImJl8udygiTVdFQl9JT1NfTkFUSVZFX1NIQVJFIiksaD17dXJsOmN9O2lmKCghXy5mcnx8ZikmJmUuc2hhcmUmJmMmJmUuY2FuU2hhcmUmJmUuY2FuU2hhcmUoaCkpe2xldCBrPV8uRXgoXy5oeCgpLHt2ZVR5cGU6OTc3MH0pLGw9e291dGJvdW5kQXBwRGF0YTp7b3V0Ym91bmRBcHA6IkRJUkVDVF9TWVNURU1fQUNUSVZJVFlfRElBTE9HIn0sc2hhcmluZ0RhdGE6e3NlcmlhbGl6ZWRTaGFyZUVudGl0eTpkfX07Xy5KTyhrLGwsNyk7ZS5zaGFyZShoKS50aGVuKCgpPT57dFgoayxsLDcpfSkuY2F0Y2gobT0+e20ubmFtZSE9PSJBYm9ydEVycm9yIiYmKF8uSXAobmV3IF8uWGooIlN5c3RlbSBTaGFyZSBQYW5lbCBmYWlsZWQgdG8gb3Blbi4iKSksUFkoYSxiKSl9KX1lbHNlIFBZKGEsYil9OwpWcGE9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9Xy5oeCgpO18uRE8oYiwyMTc2MCx2b2lkIDAse2xheWVyOjcscGFyZW50TGF5ZXI6MH0pO18ubHgoYixhLHZvaWQgMCw3KX19O1BZPWZ1bmN0aW9uKGEsYil7dmFyIGM9T1koYSk7Xy5ncnx8Xy5URSgpfHxfLnJQKCk/Xy55KCkucmVzb2x2ZShfLnlQKS5vcGVuRGlhbG9nKHtVbjooKT0+Xy5LKFhwYSx7ZGF0YTphfSl9KTpfLnlOKHtoZWFkZXJUaXRsZToiU2hhcmUiLEdiOigpPT5fLksoImRpdiIse2NsYXNzOiJib3R0b20tc2hlZXQtc2hhcmUtaXRlbSJ9LF8uSyhfLk8se0E6KCk9PmMsdGhlbjpkPT5fLksoUVkse3Nob3J0VXJsOmQsdHJhY2tpbmdQYXJhbXM6UlkoYSl9KX0pLFNZKGEpPy5tYXAoZD0+ZD8uc2hhcmVUYXJnZXRSZW5kZXJlcj9fLksoVFkse2RhdGE6ZC5zaGFyZVRhcmdldFJlbmRlcmVyfSk6bnVsbCkpLEhhOiExLGZvY3VzT25DbG9zZTpiPy5ldmVudD8udGFyZ2V0fSl9OwpTWT1mdW5jdGlvbihhKXtpZihhLmNvbnRlbnRzJiZhLmNvbnRlbnRzWzBdKXJldHVybihhPWEuY29udGVudHNbMF0udGhpcmRQYXJ0eU5ldHdvcmtTZWN0aW9uPy5zaGFyZVRhcmdldENvbnRhaW5lcj8udGhpcmRQYXJ0eVNoYXJlVGFyZ2V0U2VjdGlvblJlbmRlcmVyPy5zaGFyZVRhcmdldHMpJiZhLmxlbmd0aD41P2Euc2xpY2UoMCw1KTphfTtPWT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jb250ZW50cyYmYS5jb250ZW50c1swXT9fLkIoYS5jb250ZW50c1swXS50aGlyZFBhcnR5TmV0d29ya1NlY3Rpb24/LmNvcHlMaW5rQ29udGFpbmVyLFVZKT8uc2hvcnRVcmw6IiJ9O1JZPWZ1bmN0aW9uKGEpe3JldHVybiBfLkIoXy5CKGE/LmNvbnRlbnRzPy5bMF0udGhpcmRQYXJ0eU5ldHdvcmtTZWN0aW9uPy5jb3B5TGlua0NvbnRhaW5lcixVWSk/LmNvcHlCdXR0b24sXy5WTCk/LnRyYWNraW5nUGFyYW1zfTsKWnBhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5CKGEsXy5aeik/LnNoYXJlUGFuZWxUeXBlLGQ9Xy5CKGEsXy5aeik/LnNlcmlhbGl6ZWRTaGFyZUVudGl0eTtNWShhLGIpLnRoZW4oZT0+e1lwYShlLGIsYyxkKX0pfTtZcGE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5jb2RlPT09IlNVQ0NFU1MiJiZhLmRhdGEpYT1hLmRhdGEsYS5jb250ZW50cyYmYS5jb250ZW50cy51bmlmaWVkU2hhcmVQYW5lbFJlbmRlcmVyJiZjPT09IlNIQVJFX1BBTkVMX1RZUEVfVU5JRklFRF9TSEFSRV9QQU5FTCImJldwYShhLmNvbnRlbnRzLnVuaWZpZWRTaGFyZVBhbmVsUmVuZGVyZXIse2V2ZW50OmI/LmV2ZW50fSxhLnRyYWNraW5nUGFyYW1zLGQpO2Vsc2V7Xy5nRj09PXZvaWQgMCYmKF8uZ0Y9a29hKCkpO2xldCBlPV8uZ0Y/JHBhOmFxYTtfLnBQKCgpPT5lKX19O2JxYT1mdW5jdGlvbihhKXthPWEucGFuZWxJZGVudGlmaWVyfHxhLmlkZW50aWZpZXI/LnRhZztpZighYSl0aHJvdyBFcnJvcigiZ2UiKTtyZXR1cm4gYX07CmRxYT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPV8uQihhLF8uUVcpO2lmKGMpe3ZhciBkPV8uV0QoKCk9PmI/LmV2ZW50Py5jdXJyZW50VGFyZ2V0fHxiPy5lbGVtZW50KSxlPWJxYShjKTt2YXIgZj1jP2MuZ2xvYmFsQ29uZmlndXJhdGlvbj8uaW5pdGlhbFN0YXRlfHxjLmVuZ2FnZW1lbnRQYW5lbDp2b2lkIDA7aWYoZSl7bGV0IGg9Xy55KCkucmVzb2x2ZShfLmJMKSxrPWF3YWl0IF8ueSgpLnJlc29sdmUoXy5IeSkoKTthd2FpdCBjcWEoaCx7aWRlbnRpZmllcjplLElqOmYsdGFyZ2V0OmR9KTtjLmdsb2JhbENvbmZpZ3VyYXRpb24mJihhPWF3YWl0IGsuUWkoYSksYXdhaXQgVlkoaCx7aWRlbnRpZmllcjplLElqOmE/LmNvbnRlbnQsdG46ITF9KSl9fX07CmVxYT1mdW5jdGlvbihhLGIpe2lmKGE9Xy5FTyh3aW5kb3csYSwibG9naW5Qb3B1cCIsIndpZHRoPTgwMCxoZWlnaHQ9NjAwLHJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMiKSlIbmEoKCk9PntiKCl9KSxhLm1vdmVUbygoc2NyZWVuLndpZHRoLTgwMCkvMiwoc2NyZWVuLmhlaWdodC02MDApLzIpfTtmcWE9ZnVuY3Rpb24oYSxiKXtfLktPKCk/KChiPXVYKGEpKSYmXy5FTyh3aW5kb3csYiksYS5jbGlja1RyYWNraW5nUGFyYW1zJiZfLnpKKGEuY2xpY2tUcmFja2luZ1BhcmFtcykpOl8udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iV0VCX0VNQkVEREVEX1BMQVlFUiI/KGE9dVgoYSkpJiZlcWEoYSwoKT0+e3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pOkRZKGEsYil9OwpncWE9ZnVuY3Rpb24oYSl7aWYoYS5zb3VyY2VEYXRhLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyPy5jaGFubmVsSWQpKDAsXy54UCkoe2NoYW5uZWxJZDphLnNvdXJjZURhdGEuc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIuY2hhbm5lbElkfSxjPT4oey4uLmMsc3Vic2NyaWJlZDohYS5zb3VyY2VEYXRhLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLnN1YnNjcmliZWR9KSk7ZWxzZXt2YXIgYj1fLkIoYS5zb3VyY2VEYXRhLnNlcnZpY2VFbmRwb2ludCxfLkR5KTtiJiYoMCxfLnhQKSh7Y2hhbm5lbElkOmIuY2hhbm5lbElkcz8uWzBdfSxjPT4oey4uLmMsc3Vic2NyaWJlZDohMX0pKX19O1dZPWZ1bmN0aW9uKGEsYixjKXtNWShhLGIsYykudGhlbigoKT0+e2dxYShiKX0pfTsKaHFhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5CKGEsXy5WRCksZD1jLnVybDtjPWMudGFyZ2V0PT09IlRBUkdFVF9ORVdfV0lORE9XIj8iX2JsYW5rIjoiIjt2YXIgZTthLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihlPXtpdGN0OmEuY2xpY2tUcmFja2luZ1BhcmFtc30pO3ZhciBmPWI/LnNvdXJjZURhdGE/LnBhcmFtcz8udGltZXN0YW1wO2YmJihlPXsuLi5lLHRpbWVzdGFtcDpmfSk7Xy5xUCh7aHJlZjpkLHBhcmFtczplLHRhcmdldDpjLGVuZHBvaW50OmEsYWs6Xy5CKGE/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucm9vdFZlLGVsZW1lbnQ6Yi5ldmVudD8udGFyZ2V0fSl9O2lxYT1mdW5jdGlvbihhKXt3b2EoXy5CKGEsXy5mY2EpPy5hZGRpdGlvbmFsRGF0YXMpfTsKanFhPWZ1bmN0aW9uKGEpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZSIsYj0+e3ZhciBjPWIuZGV0YWlsO2MucGFyYW1zfHwoYy5wYXJhbXM9e30pO2I9Yy5wYXJhbXM7dmFyIGQ9Yi5pdGN0O2QmJihfLmh4KCkuQ2YoZCksZGVsZXRlIGIuaXRjdCk7Yj1jLmhyZWY7aWYoIVhZW2JdKXtkPSExO2lmKGIuc3RhcnRzV2l0aCgiaHR0cCIpfHxiLnN0YXJ0c1dpdGgoIi8vIikpe3ZhciBlPWI/Xy5QTShiKS5ob3N0bmFtZXx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lOiIiLGY9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO2lmKGQ9ZSE9PWYpZT1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLGY9Zi5zcGxpdCgiLiIpLnNsaWNlKC0yKSxlLmxlbmd0aCYmZi5sZW5ndGgmJihkPWUuam9pbigiLiIpIT09Zi5qb2luKCIuIikpfVhZW2JdPWR9ZD1YWVtiXTtpZihkKV8uRU8od2luZG93LGIpO2Vsc2V7ZD1hLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKTthOntpZighYS5nZXRWaWRlb0RhdGEoKS5pc0xpdmUpe2lmKChmPQpjLnBhcmFtcykmJmYudGltZXN0YW1wKXtmPWYudGltZXN0YW1wO2JyZWFrIGF9aWYoIV8ueCgiZW1iZWRzX2VtYzNkc19hbHdheXNfY3VydGltZV9rcyIpJiYoZj0vXmh0dHBzPzpcL1wvd3d3LnlvdXR1YmUuY29tXC93YXRjaFw/dj0oW0EtWmEtejAtOV8tXXsxMX0pLy5leGVjKGMuaHJlZik/LlsxXSkmJmY9PT1hLmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkJiYoZj1hLmdldEN1cnJlbnRUaW1lKCksZj4wKSl7Zj1NYXRoLmZsb29yKGYpLnRvU3RyaW5nKCk7YnJlYWsgYX19Zj12b2lkIDB9ZT0oZT1jLmVsZW1lbnQpP18uVXgoZSk/P3ZvaWQgMDp2b2lkIDA7YTp7aWYoZSl7dmFyIGg9ZS5nZXRBc0pzb24oKTtlPWgudmVUeXBlO2g9aC50cmFja2luZ1BhcmFtcztpZihlKXtlPVN0cmluZyhlKTticmVhayBhfWlmKGgmJihlPV8uRW8oXy5DbyhoKSwyKSkpe2U9ZS50b1N0cmluZygpO2JyZWFrIGF9fWU9dm9pZCAwfWV8fChNYXRoLnJhbmRvbSgpPF8uc2ooImVtYmVkc19sb2dfd2FybmluZ19zYW1wbGVfc2l6ZV9yYXRlIiwKLjAwMSkmJl8uSXAobmV3IF8uWGooIlVzaW5nIGZhbGxiYWNrIFZFIGZvciBlbGVtZW50OiAiLHt0YWdOYW1lOmMuZWxlbWVudD8udGFnTmFtZSxjbGFzc0xpc3Q6Yy5lbGVtZW50Py5jbGFzc0xpc3QudG9TdHJpbmcoKSxkZXRhaWw6Y30pKSxlPSgyMTQyODMpLnRvU3RyaW5nKCkpO2M9e307ZC53aWRnZXRSZWZlcnJlciYmKGMuZW1iZWRzX3dpZGdldF9yZWZlcnJlcj1kLndpZGdldFJlZmVycmVyKTtkLmxvYWRlclVybCYmKGMuZW1iZWRzX3JlZmVycmluZ19ldXJpPWQubG9hZGVyVXJsLnN1YnN0cmluZygwLDEyOCkpO2QuaXNFbWJlZCYmZC5lbWJlZHNJZnJhbWVPcmlnaW5QYXJhbSYmKGMuZW1iZWRzX3JlZmVycmluZ19vcmlnaW49ZC5lbWJlZHNJZnJhbWVPcmlnaW5QYXJhbSk7ZC5pc0VtYmVkJiZkLmVtYmVkc0ZlYXR1cmUmJihjLmZlYXR1cmU9ZC5lbWJlZHNGZWF0dXJlKTtkPWU7Yj0obmV3IFVSTChiLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIpKS50b1N0cmluZygpO2YmJgooYj1fLmVqKGIse3RpbWVfY29udGludWU6Zn0pKTtpZihkKXtpZighXy5NaygiY29iYWx0Iikpe2Y9W107ZT0wO2ZvcihoPTA7aDxkLmxlbmd0aDtoKyspe2xldCBrPWQuY2hhckNvZGVBdChoKTtrPjI1NSYmKGZbZSsrXT1rJjI1NSxrPj49OCk7ZltlKytdPWt9ZD1fLnNjKGYsNCl9Yj1fLmVqKGIse3NvdXJjZV92ZV9wYXRoOmR9KX1jJiYoYj1fLmVqKGIsYykpO18uRU8od2luZG93LGIpfX0pfTsKa3FhPWZ1bmN0aW9uKCl7dmFyIGE9e307YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsL2Nsb3NlZF9jYXB0aW9uL3YxMS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0zLjAxIDNDMyAzIDMgMyAzLjAxIDNMMyAyMWgxOFYzSDMuMDF6TTExIDExSDkuNXYtLjVoLTJ2M2gyVjEzSDExdjFjMCAuNTUtLjQ1IDEtMSAxSDdjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxem03IDBoLTEuNXYtLjVoLTJ2M2gyVjEzSDE4djFjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfZmlsbF9leHBlcmltZW50YWwvY2xvc2VkX2NhcHRpb25zL3YzLzI0cHguc3ZnIl09Cl8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIxIDNIM2EyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJoMThhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJaTTkuMDM4IDguMDg5Yy42OTcuMTc4IDEuMjk0LjYwNiAxLjczNyAxLjE3NmExIDEgMCAwMS0xLjU3OCAxLjIyOGMtLjIxLS4yNy0uNDQ0LS40MTMtLjY1NC0uNDY3YS44Ni44NiAwIDAwLS42MzIuMDg1Yy0uMjIyLjExOS0uNDUzLjM0Mi0uNjMxLjY4NEEyLjY0IDIuNjQgMCAwMDcgMTJhMi42NCAyLjY0IDAgMDAuMjgxIDEuMjA1Yy4xNzcuMzQyLjQwOC41NjUuNjMuNjg0YS44Ni44NiAwIDAwLjYzMi4wODVjLjIwOS0uMDU0LjQ0NC0uMTk3LjY1NC0uNDY3YTEgMSAwIDAxMS41NzggMS4yMjhjLS40NDMuNTctMS4wNC45OTgtMS43MzcgMS4xNzZhMi44NiAyLjg2IDAgMDEtMi4wNjYtLjI1N2MtLjYzMS0uMzM2LTEuMTMxLS44ODEtMS40NjYtMS41MjZBNC42IDQuNiAwIDAxNSAxMmMtLjAwNC0uNzQuMTctMS40Ny41MDYtMi4xMjguMzM2LS42NDUuODM1LTEuMTkgMS40NjYtMS41MjZhMi44NiAyLjg2IDAgMDEyLjA2Ni0uMjU3Wm04IDBjLjY5Ny4xNzggMS4yOTQuNjA2IDEuNzM3IDEuMTc2YTEgMSAwIDAxLTEuNTc4IDEuMjI4Yy0uMjEtLjI3LS40NDQtLjQxMy0uNjU0LS40NjdhLjg2Ljg2IDAgMDAtLjYzMi4wODVjLS4yMjIuMTE5LS40NTMuMzQyLS42MzEuNjg0QTIuNjQgMi42NCAwIDAwMTUgMTJhMi42NCAyLjY0IDAgMDAuMjgxIDEuMjA1Yy4xNzcuMzQyLjQwOC41NjUuNjMuNjg0YS44Ni44NiAwIDAwLjYzMi4wODVjLjIwOS0uMDU0LjQ0NC0uMTk3LjY1NC0uNDY3YTEgMSAwIDAxMS41NzggMS4yMjhjLS40NDMuNTctMS4wNC45OTgtMS43MzcgMS4xNzZhMi44NiAyLjg2IDAgMDEtMi4wNjYtLjI1N2MtLjYzMS0uMzM2LTEuMTMxLS44ODEtMS40NjYtMS41MjZBNC42IDQuNiAwIDAxMTMgMTJjLS4wMDQtLjc0LjE3LTEuNDcuNTA2LTIuMTI4LjMzNi0uNjQ1LjgzNS0xLjE5IDEuNDY2LTEuNTI2YTIuODYgMi44NiAwIDAxMi4wNjYtLjI1N1oifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX2ZpbGwvcGF1c2UvdjkvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNOSAxOUg3VjVoMlptOC0xNGgtMnYxNGgyWiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC9wYXVzZS92OS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTYuNSAzQTEuNSAxLjUgMCAwMDUgNC41djE1QTEuNSAxLjUgMCAwMDYuNSAyMWgyYTEuNSAxLjUgMCAwMDEuNS0xLjV2LTE1QTEuNSAxLjUgMCAwMDguNSAzaC0yWm05IDBBMS41IDEuNSAwIDAwMTQgNC41djE1YTEuNSAxLjUgMCAwMDEuNSAxLjVoMmExLjUgMS41IDAgMDAxLjUtMS41di0xNUExLjUgMS41IDAgMDAxNy41IDNoLTJaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsL3BsYXlfYXJyb3cvdjcvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJtNyA0IDEyIDgtMTIgOFY0eiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC9wbGF5L3Y0LzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNNSA0LjYyM1YxOS4zOGExLjUgMS41IDAgMDAyLjI2IDEuMjlMMjIgMTIgNy4yNiAzLjMzQTEuNSAxLjUgMCAwMDUgNC42MjNaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX2ZpbGwveW91dHViZV9sb2dvX2ljb24vdjYvMjRweC5zdmciXT0KXy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIxLjU4IDcuMTlhMi41MSAyLjUxIDAgMDAtMS43Ny0xLjc3QzE4LjI1IDUgMTIgNSAxMiA1cy02LjI1IDAtNy44MS40MmEyLjUxIDIuNTEgMCAwMC0xLjc3IDEuNzdBMjUuODcgMjUuODcgMCAwMDIgMTJhMjUuODcgMjUuODcgMCAwMC40MiA0LjgxIDIuNTEgMi41MSAwIDAwMS43NyAxLjc3QzUuNzUgMTkgMTIgMTkgMTIgMTlzNi4yNSAwIDcuODEtLjQyYTIuNTEgMi41MSAwIDAwMS43Ny0xLjc3QTI1Ljg3IDI1Ljg3IDAgMDAyMiAxMmEyNS44NyAyNS44NyAwIDAwLS40Mi00Ljgxek0xMCAxNC42NXYtNS4zTDE1IDEyeiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC95b3V0dWJlL3YyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLApmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTEyIDVzLTYuMjQ5IDAtNy44MS40MmMtLjg2LjIzLTEuNTQuOTEtMS43NyAxLjc3QzIgOC43NSAyIDEyIDIgMTJzMCAzLjI1LjQyIDQuODFjLjIzLjg2LjkxIDEuNTQgMS43NyAxLjc3QzUuNzUxIDE5IDEyIDE5IDEyIDE5czYuMjQ5IDAgNy44MS0uNDJjLjg2LS4yMyAxLjU0LS45MSAxLjc3LTEuNzdDMjIgMTUuMjUgMjIgMTIgMjIgMTJzMC0zLjI1LS40Mi00LjgxYy0uMjMtLjg2LS45MS0xLjU0LTEuNzctMS43N0MxOC4yNDkgNSAxMiA1IDEyIDVabS0yIDEwVjlsNSAzLTUgM1oifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZS9hcnJvd19jaXJjbGUvdjYvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsCmhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIyIDEyYzAgNS41MS00LjQ5IDEwLTEwIDEwUzIgMTcuNTEgMiAxMmgxYzAgNC45NiA0LjA0IDkgOSA5czktNC4wNCA5LTktNC4wNC05LTktOUM4LjgxIDMgNS45MiA0LjY0IDQuMjggNy4zOGMtLjExLjE4LS4yMi4zNy0uMzEuNTZMMy45NCA4SDh2MUgxLjk2VjNoMXY0Ljc0Yy4wNC0uMDkuMDctLjE3LjExLS4yNS4xMS0uMjIuMjMtLjQyLjM1LS42M0M1LjIyIDMuODYgOC41MSAyIDEyIDJjNS41MSAwIDEwIDQuNDkgMTAgMTB6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2Fycm93X2NvdW50ZXJjbG9ja3dpc2UvdjIvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLAp3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMyAyYTEgMSAwIDAwLTEgMXY2aDZhMSAxIDAgMDAwLTJINS43NTdhOCA4IDAgMTEtMS40ODUgNy4wNyAxIDEgMCAxMC0xLjkzMS41MTcgMTAuMDAyIDEwLjAwMiAwIDAwMTguMDkzIDIuNzgyQTkuOTk5IDkuOTk5IDAgMDA0IDZWM2ExIDEgMCAwMC0xLTFaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmUvYmVsbC92MTEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTAgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6bTEwLTIuNjVWMTlINHYtMS42NWwyLTEuODh2LTUuMTVDNiA3LjQgNy41NiA1LjEgMTAgNC4zNHYtLjM4YzAtMS40MiAxLjQ5LTIuNSAyLjk5LTEuNzYuNjUuMzIgMS4wMSAxLjAzIDEuMDEgMS43NnYuMzljMi40NC43NSA0IDMuMDYgNCA1Ljk4djUuMTVsMiAxLjg3em0tMSAuNDItMi0xLjg4di01LjQ3YzAtMi40Ny0xLjE5LTQuMzYtMy4xMy01LjEtMS4yNi0uNTMtMi42NC0uNS0zLjg0LjAzQzguMTUgNi4xMSA3IDcuOTkgNyAxMC40MnY1LjQ3bC0yIDEuODhWMThoMTR2LS4yM3oifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2JlbGwvdjExLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTYgMTlhNCA0IDAgMTEtOCAwSDQuNzY1QzMuMjEgMTkgMi4yNSAxNy4zMDQgMy4wNSAxNS45N2wxLjgwNi0zLjAxQTEgMSAwIDAwNSAxMi40NDZWOGE3IDcgMCAwMTE0IDB2NC40NDZjMCAuMTgxLjA1LjM2LjE0Mi41MTVsMS44MDcgMy4wMWMuOCAxLjMzMy0uMTYxIDMuMDI5LTEuNzE2IDMuMDI5SDE2Wk0xMiAzYTUgNSAwIDAwLTUgNXY0LjQ0NmEzIDMgMCAwMS0uNDI4IDEuNTQzTDQuNzY1IDE3aDE0LjQ2OGwtMS44MDUtMy4wMUEzIDMgMCAwMTE3IDEyLjQ0NVY4YTUgNSAwIDAwLTUtNVptLTIgMTZhMiAyIDAgMTA0IDBoLTRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2Nsb2NrL3YxMC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNC45NyAxNi45NSAxMCAxMy44N1Y3aDJ2NS43Nmw0LjAzIDIuNDktMS4wNiAxLjd6TTEyIDNjLTQuOTYgMC05IDQuMDQtOSA5czQuMDQgOSA5IDkgOS00LjA0IDktOS00LjA0LTktOS05bTAtMWM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJ6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2Nsb2NrL3YxMC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLApoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xMiAxQzUuOTI1IDEgMSA1LjkyNSAxIDEyczQuOTI1IDExIDExIDExIDExLTQuOTI1IDExLTExUzE4LjA3NSAxIDEyIDFabTAgMmE5IDkgMCAxMTAgMTguMDAxQTkgOSAwIDAxMTIgM1ptMCAzYTEgMSAwIDAwLTEgMXY1LjU2NWwuNDg1LjI5MiAzLjMzIDJhMSAxIDAgMDAxLjAzLTEuNzE0TDEzIDExLjQzNVY3YTEgMSAwIDAwLTEtMVoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZS9jbG9zZWRfY2FwdGlvbi92MTEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNNiAxNHYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDkuNXYtLjVoLTJ2M2gyVjEzSDExdjFjMCAuNTUtLjQ1IDEtMSAxSDdjLS41NSAwLTEtLjQ1LTEtMXptOCAxaDNjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTJ2LTNoMnYuNUgxOHYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem02LTExSDR2MTZoMTZWNG0xLTF2MThIM1YzLjAxQzMgMyAzIDMgMy4wMSAzSDIxeiJ9KSk7CmFbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZV9leHBlcmltZW50YWwvY2xvc2VkX2NhcHRpb25zL3YzLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMjEgM0gzYTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxOGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMlpNMyAxOVY1aDE4djE0SDNaTTYuOTcyIDguMzQ2Yy0uNjMxLjMzNi0xLjEzMS44ODEtMS40NjYgMS41MjZBNC42IDQuNiAwIDAwNSAxMmMtLjAwNC43NC4xNyAxLjQ3LjUwNiAyLjEyOC4zMzYuNjQ1LjgzNSAxLjE5MSAxLjQ2NiAxLjUyNmEyLjg2IDIuODYgMCAwMDIuMDY2LjI1N2MuNjk3LS4xNzggMS4yOTQtLjYwNiAxLjczNy0xLjE3NmExIDEgMCAwMC0xLjU3OC0xLjIyOGMtLjIxLjI3LS40NDQuNDEzLS42NTQuNDY3YS44Ni44NiAwIDAxLS42MzItLjA4NWMtLjIyMi0uMTE5LS40NTMtLjM0Mi0uNjMxLS42ODRBMi42NCAyLjY0IDAgMDE3IDEyYTIuNiAyLjYgMCAwMS4yODEtMS4yMDVjLjE3Ny0uMzQyLjQwOC0uNTY1LjYzLS42ODRhLjg2Ljg2IDAgMDEuNjMyLS4wODVjLjIwOS4wNTQuNDQ0LjE5Ny42NTQuNDY3YTEgMSAwIDAwMS41NzgtMS4yMjhjLS40NDMtLjU3LTEuMDQtLjk5OC0xLjczNy0xLjE3NmEyLjg2IDIuODYgMCAwMC0yLjA2Ni4yNTdabTggMGMtLjYzMS4zMzYtMS4xMzEuODgxLTEuNDY2IDEuNTI2QTQuNiA0LjYgMCAwMDEzIDEyYy0uMDA0Ljc0LjE3IDEuNDcuNTA2IDIuMTI4LjMzNi42NDUuODM1IDEuMTkxIDEuNDY2IDEuNTI2YTIuODYgMi44NiAwIDAwMi4wNjYuMjU3Yy42OTctLjE3OCAxLjI5NC0uNjA2IDEuNzM3LTEuMTc2YTEgMSAwIDAwLTEuNTc4LTEuMjI4Yy0uMjEuMjctLjQ0NC40MTMtLjY1NC40NjdhLjg2Ljg2IDAgMDEtLjYzMi0uMDg1Yy0uMjIyLS4xMTktLjQ1My0uMzQyLS42MzEtLjY4NEEyLjY0IDIuNjQgMCAwMTE1IDEyYTIuNiAyLjYgMCAwMS4yODEtMS4yMDVjLjE3Ny0uMzQyLjQwOC0uNTY1LjYzLS42ODRhLjg2Ljg2IDAgMDEuNjMyLS4wODVjLjIwOS4wNTQuNDQ0LjE5Ny42NTQuNDY3YTEgMSAwIDAwMS41NzgtMS4yMjhjLS40NDMtLjU3LTEuMDQtLjk5OC0xLjczNy0xLjE3NmEyLjg2IDIuODYgMCAwMC0yLjA2Ni4yNTdaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2dlYXIvdjEwLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJlbmFibGUtYmFja2dyb3VuZCI6Im5ldyAwIDAgMjQgMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTEyIDkuNWMxLjM4IDAgMi41IDEuMTIgMi41IDIuNXMtMS4xMiAyLjUtMi41IDIuNS0yLjUtMS4xMi0yLjUtMi41IDEuMTItMi41IDIuNS0yLjVtMC0xYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNXMxLjU3IDMuNSAzLjUgMy41IDMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNXpNMTMuMjIgM2wuNTUgMi4yLjEzLjUxLjUuMThjLjYxLjIzIDEuMTkuNTYgMS43Mi45OGwuNC4zMi41LS4xNCAyLjE3LS42MiAxLjIyIDIuMTEtMS42MyAxLjU5LS4zNy4zNi4wOC41MWMuMDUuMzIuMDguNjQuMDguOThzLS4wMy42Ni0uMDguOThsLS4wOC41MS4zNy4zNiAxLjYzIDEuNTktMS4yMiAyLjExLTIuMTctLjYyLS41LS4xNC0uNC4zMmMtLjUzLjQzLTEuMTEuNzYtMS43Mi45OGwtLjUuMTgtLjEzLjUxLS41NSAyLjI0aC0yLjQ0bC0uNTUtMi4yLS4xMy0uNTEtLjUtLjE4Yy0uNi0uMjMtMS4xOC0uNTYtMS43Mi0uOTlsLS40LS4zMi0uNS4xNC0yLjE3LjYyLTEuMjEtMi4xMiAxLjYzLTEuNTkuMzctLjM2LS4wOC0uNTFjLS4wNS0uMzItLjA4LS42NS0uMDgtLjk4cy4wMy0uNjYuMDgtLjk4bC4wOC0uNTEtLjM3LS4zNkwzLjYgOC41NmwxLjIyLTIuMTEgMi4xNy42Mi41LjE0LjQtLjMyYy41My0uNDQgMS4xMS0uNzcgMS43Mi0uOTlsLjUtLjE4LjEzLS41MS41NC0yLjIxaDIuNDRNMTQgMmgtNGwtLjc0IDIuOTZjLS43My4yNy0xLjQuNjYtMiAxLjE0bC0yLjkyLS44My0yIDMuNDYgMi4xOSAyLjEzYy0uMDYuMzctLjA5Ljc1LS4wOSAxLjE0cy4wMy43Ny4wOSAxLjE0bC0yLjE5IDIuMTMgMiAzLjQ2IDIuOTItLjgzYy42LjQ4IDEuMjcuODcgMiAxLjE0TDEwIDIyaDRsLjc0LTIuOTZjLjczLS4yNyAxLjQtLjY2IDItMS4xNGwyLjkyLjgzIDItMy40Ni0yLjE5LTIuMTNjLjA2LS4zNy4wOS0uNzUuMDktMS4xNHMtLjAzLS43Ny0uMDktMS4xNGwyLjE5LTIuMTMtMi0zLjQ2LTIuOTIuODNjLS42LS40OC0xLjI3LS44Ny0yLTEuMTRMMTQgMnoifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2dlYXIvdjEwLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTIuODQ0IDFoLTEuNjg3YTIgMiAwIDAwLTEuOTYyIDEuNjE2IDMgMyAwIDAxLTMuOTIgMi4yNjMgMiAyIDAgMDAtMi4zOC44OTFsLS44NDIgMS40NmEyIDIgMCAwMC40MTcgMi41MDcgMyAzIDAgMDEwIDQuNTI1IDIgMiAwIDAwLS40MTcgMi41MDdsLjg0MyAxLjQ2YTIgMiAwIDAwMi4zOC44OTIgMy4wMDEgMy4wMDEgMCAwMTMuOTE4IDIuMjYzQTIgMiAwIDAwMTEuMTU3IDIzaDEuNjg2YTIgMiAwIDAwMS45NjMtMS42MTUgMy4wMDIgMy4wMDIgMCAwMTMuOTItMi4yNjMgMiAyIDAgMDAyLjM4LS44OTJsLjg0Mi0xLjQ2YTIgMiAwIDAwLS40MTgtMi41MDcgMyAzIDAgMDEwLTQuNTI2IDIgMiAwIDAwLjQxOC0yLjUwOGwtLjg0My0xLjQ2YTIgMiAwIDAwLTIuMzgtLjg5MSAzIDMgMCAwMS0zLjkxOS0yLjI2M0EyIDIgMCAwMDEyLjg0NCAxWm0tMS43NjcgMi4zNDdhNiA2IDAgMDAuMDgtLjM0N2gxLjY4N2E0Ljk4IDQuOTggMCAwMDIuNDA3IDMuMzcgNC45OCA0Ljk4IDAgMDA0LjEyMi40bC44NDMgMS40NkE0Ljk4IDQuOTggMCAwMDE4LjUgMTJhNC45OCA0Ljk4IDAgMDAxLjcxNiAzLjc3bC0uODQzIDEuNDZhNC45OCA0Ljk4IDAgMDAtNC4xMjMuNEE0Ljk3OSA0Ljk3OSAwIDAwMTIuODQzIDIxaC0xLjY4NmE0Ljk4IDQuOTggMCAwMC0yLjQwOC0zLjM3MSA0Ljk5OSA0Ljk5OSAwIDAwLTQuMTItLjM5OWwtLjg0NC0xLjQ2QTQuOTc5IDQuOTc5IDAgMDA1LjUgMTJhNC45OCA0Ljk4IDAgMDAtMS43MTUtMy43N2wuODQyLTEuNDU5YTQuOTggNC45OCAwIDAwNC4xMjMtLjM5OSA0Ljk4MSA0Ljk4MSAwIDAwMi4zMjctMy4wMjVaTTE2IDEyYTQgNCAwIDExLTcuOTk5IDAgNCA0IDAgMDE4IDBabS00IDJhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2xpbmsvdjgvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTcuNzggMTZjMi4zNSAwIDQuMjYtMi4wMiA0LjI2LTQuNVMyMC4xMyA3IDE3Ljc4IDdIMTN2MWg0Ljc4YzEuOCAwIDMuMjYgMS41NyAzLjI2IDMuNVMxOS41OCAxNSAxNy43OCAxNUgxM3YxaDQuNzh6TTExIDE1SDYuMTljLTEuOCAwLTMuMjYtMS41Ny0zLjI2LTMuNVM0LjM5IDggNi4xOSA4SDExVjdINi4xOWMtMi4zNSAwLTQuMjYgMi4wMi00LjI2IDQuNVMzLjg0IDE2IDYuMTkgMTZIMTF2LTF6bTUtNEg4djFoOHYtMXoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZV9leHBlcmltZW50YWwvbGluay92OC8yNHB4LnN2ZyJdPV8uSygic3ZnIiwKe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik05IDE4Yy4yMjYgMCAuNDQ4LS4wMTIuNjY3LS4wMzdBOC4wMDEgOC4wMDEgMCAwMTguMDcgMTZIN2E0IDQgMCAxMTAtOGgyYTQgNCAwIDAxNCA0IDIgMiAwIDAwMS42NjggMS45NzNBNS45OTkgNS45OTkgMCAwMDkgNkg3YTYgNiAwIDEwMCAxMmgyWm04IDBhNiA2IDAgMTAwLTEyaC0yYy0uMjI1IDAtLjQ0OC4wMTItLjY2Ny4wMzZBOCA4IDAgMDExNS45MyA4SDE3YTQgNCAwIDExMCA4aC0yYTQgNCAwIDAxLTQtNCAyIDIgMCAwMC0xLjY2OC0xLjk3M0E2IDYgMCAwMDE1IDE4aDJaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmUvc2hhcmUvdjEyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLApoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNSA1LjYzIDIwLjY2IDEyIDE1IDE4LjM3VjE0aC0xYy0zLjk2IDAtNy4xNCAxLTkuNzUgMy4wOSAxLjg0LTQuMDcgNS4xMS02LjQgOS44OS03LjFsLjg2LS4xM1Y1LjYzTTE0IDN2NkM2LjIyIDEwLjEzIDMuMTEgMTUuMzMgMiAyMWMyLjc4LTMuOTcgNi40NC02IDEyLTZ2Nmw4LTktOC05eiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lX2V4cGVyaW1lbnRhbC9zaGFyZS92MTIvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xMCAzLjE1OFY3LjUxYy01LjQyOC4yMjMtOC4yNyAzLjc1LTguODc1IDExLjE5OS0uMDQuNDg3LS4wNy45NzUtLjA5IDEuNDY0bC0uMDE0LjM5NWMtLjAxNC40NzMuNTc4LjY4NC44OC4zMi4zMDItLjM2OC42MS0uNzMuOTI1LTEuMDg2bC4yNDQtLjI3M2MxLjc5LTEuOTY3IDMtMi42NzcgNC45My0yLjkxN2ExOC4wMTEgMTguMDExIDAgMDEyLS4xMTJ2NC4zNDZhMSAxIDAgMDAxLjY0Ni43NjNsOS44MDUtOC4yOTcgMS41NS0xLjMxLTEuNTUtMS4zMS05LjgwNS04LjI5N0ExIDEgMCAwMDEwIDMuMTU4Wm0yIDYuMjd2LjAwMi00LjExNmw3LjkwNCA2LjY4OEwxMiAxOC42ODl2LTQuMjEybC0yLjAyMy4wMjRjLTEuOTM1LjAyMi0zLjU4Ny4xNy01LjE5NyAxLjAyNGE5IDkgMCAwMC0xLjM0OC44OTNjLjM1NS0xLjk0Ny45MTYtMy4zOSAxLjYzLTQuNDI1IDEuMDYyLTEuNTQxIDIuNjA3LTIuMzg1IDUuMDItMi40ODVMMTIgOS40MjhaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3ZvbHVtZV9vZmYvdjQvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJtMy4xNSAzLjg1IDQuMTcgNC4xN0w2LjE2IDlIM3Y2aDMuMTZMMTIgMTkuOTN2LTcuMjJsMi40NSAyLjQ1Yy0uMTUuMDctLjMuMTMtLjQ1LjE4djEuMDRjLjQzLS4xLjgzLS4yNyAxLjItLjQ4bDEuODEgMS44MWMtLjg4LjYyLTEuOSAxLjA0LTMuMDEgMS4ydjEuMDFjMS4zOS0uMTcgMi42Ni0uNzEgMy43My0xLjQ5bDIuNDIgMi40Mi43MS0uNzEtMTctMTctLjcxLjcxek0xMSAxMS43MXY2LjA3TDYuNTIgMTRINHYtNGgyLjUybDEuNS0xLjI3TDExIDExLjcxem0tLjY3LTQuOTItLjcxLS43MUwxMiA0LjA3djQuMzlsLTEtMVY2LjIybC0uNjcuNTd6TTE0IDguNjZWNy42MmMyIC40NiAzLjUgMi4yNCAzLjUgNC4zOCAwIC41OC0uMTMgMS4xMy0uMzMgMS42NGwtLjc5LS43OWMuMDctLjI3LjEyLS41NS4xMi0uODUgMC0xLjU4LTEuMDYtMi45LTIuNS0zLjM0em0wLTMuNThWNC4wN2MzLjk1LjQ5IDcgMy44NSA3IDcuOTMgMCAxLjU2LS40NiAzLjAxLTEuMjMgNC4yNGwtLjczLS43M2MuNjEtMS4wMy45Ni0yLjIzLjk2LTMuNTEgMC0zLjUyLTIuNjEtNi40My02LTYuOTJ6In0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lX2V4cGVyaW1lbnRhbC92b2x1bWVfbXV0ZS92Mi8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTExLjQ4NSAyLjE0MyAzLjkxMyA2LjY4N0E2IDYgMCAwMDEgMTEuODMydi4zMzhhNiA2IDAgMDAyLjkxMyA1LjE0NGw3LjU3MiA0LjU0M0ExIDEgMCAwMDEzIDIxVjNhMS4wMDEgMS4wMDEgMCAwMC0xLjUxNS0uODU3Wk00Ljk0MiA4LjQgMTEgNC43Njd2MTQuNDY2bC02LjA1OC0zLjYzNEE0IDQgMCAwMTMgMTIuMTY5di0uMzM4QTQgNCAwIDAxNC45NDIgOC40Wm0xNi4zNTEtLjEwOEwxOSAxMC41ODZsLTIuMjkzLTIuMjkzYTEgMSAwIDEwLTEuNDE0IDEuNDE0TDE3LjU4NiAxMmwtMi4yOTMgMi4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxOSAxMy40MTRsMi4yOTMgMi4yOTNhMSAxIDAgMTAxLjQxNC0xLjQxNEwyMC40MTQgMTJsMi4yOTMtMi4yOTRhMSAxIDAgMTAtMS40MTQtMS40MTRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3ZvbHVtZV9vbi92My8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNy41IDEyYzAgMi4xNC0xLjUgMy45Mi0zLjUgNC4zOHYtMS4wNGMxLjQ0LS40MyAyLjUtMS43NiAyLjUtMy4zNCAwLTEuNTgtMS4wNi0yLjktMi41LTMuMzRWNy42MmMyIC40NiAzLjUgMi4yNCAzLjUgNC4zOHpNMTIgNC4wN3YxNS44Nkw2LjE2IDE1SDNWOWgzLjE2TDEyIDQuMDd6bS0xIDIuMTVMNi41MiAxMEg0djRoMi41MkwxMSAxNy43OFY2LjIyek0yMSAxMmMwIDQuMDgtMy4wNSA3LjQ0LTcgNy45M3YtMS4wMWMzLjM5LS40OSA2LTMuNCA2LTYuOTJzLTIuNjEtNi40My02LTYuOTJWNC4wN2MzLjk1LjQ5IDcgMy44NSA3IDcuOTN6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL3ZvbHVtZV9tYXgvdjIvMjRweC5zdmciXT0KXy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTEuNDg1IDIuMTQzIDMuOTEzIDYuNjg3QTYgNiAwIDAwMSAxMS44MzJ2LjMzOGE2IDYgMCAwMDIuOTEzIDUuMTQ0bDcuNTcyIDQuNTQzQTEgMSAwIDAwMTMgMjFWM2ExLjAwMSAxLjAwMSAwIDAwLTEuNTE1LS44NTdabTYuODggMi4wNzlhMSAxIDAgMDAtLjAwMSAxLjQxNCA5IDkgMCAwMTAgMTIuNzI4IDEgMSAwIDAwMS40MTQgMS40MTQgMTEgMTEgMCAwMDAtMTUuNTU2IDEgMSAwIDAwLTEuNDEzIDBaTTQuOTQxIDguNDAybC4wMDEtLjAwMkwxMSA0Ljc2N3YxNC40NjZsLTYuMDU4LTMuNjM1QTQgNCAwIDAxMyAxMi4xNjh2LS4zMzdhNCA0IDAgMDExLjk0MS0zLjQyOVpNMTUuNTM1IDcuMDVhMSAxIDAgMDAwIDEuNDE1IDUgNSAwIDAxMCA3LjA3IDEgMSAwIDAwMS40MTUgMS40MTUgNi45OTkgNi45OTkgMCAwMDAtOS45IDEgMSAwIDAwLTEuNDE1IDBaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3hfbWFyay92NC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcgMCAwIDI0IDI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Im0xMi43MSAxMiA4LjE1IDguMTUtLjcxLjcxTDEyIDEyLjcxbC04LjE1IDguMTUtLjcxLS43MUwxMS4yOSAxMiAzLjE1IDMuODVsLjcxLS43MUwxMiAxMS4yOWw4LjE1LTguMTUuNzEuNzFMMTIuNzEgMTJ6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL3gvdjExLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0IiwKd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTE3LjI5MyA1LjI5MyAxMiAxMC41ODYgNi43MDcgNS4yOTNhMSAxIDAgMTAtMS40MTQgMS40MTRMMTAuNTg2IDEybC01LjI5MyA1LjI5M2ExIDEgMCAwMDEuNDE0IDEuNDE0TDEyIDEzLjQxNGw1LjI5MyA1LjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEzLjQxNCAxMmw1LjI5My01LjI5M2ExIDEgMCAxMC0xLjQxNC0xLjQxNFoifSkpO2FbImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIveW91dHViZV9maWxsL2VxdWFsaXplci92MS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsdmlld0JveDoiLTQgLTQgMjQgMjQiLHZlcnNpb246IjEuMSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieG1sbnM6eXQiOiJodHRwOi8vd3d3LnlvdXR1YmUuY29tIn0sXy5LKCJnIiwKe2lkOiJ5dG0tZXF1YWxpemVyLWljb24iLGZpbGw6IiNmZmYifSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItbGVmdCIseDoiMSIseToiNyIsd2lkdGg6IjQiLGhlaWdodDoiOSJ9KSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItbWlkZGxlIix4OiI2Iix5OiIyIix3aWR0aDoiNCIsaGVpZ2h0OiIxNCJ9KSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItcmlnaHQiLHg6IjExIix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiJ9KSkpO2FbImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIveW91dHViZV9maWxsL3Nob3J0c190ZXh0X2xvZ28vdjIvNzJweC5zdmciXT1fLksoInN2ZyIse3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCA3MiAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sCl8uSygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDI0LCAyKSJ9LF8uSygicGF0aCIse2Q6Im0uNzMyMTcgMTMuNzg4NiAyLjU3NzMyLS4wNTE1Yy0uMDUxNTUgMi4zMTk1LjM2MDgyIDMuMDQxMiAxLjM0MDIxIDMuMDQxMi45NTM2MSAwIDEuMzQwMi0uNjE4NiAxLjM0MDItMS44ODE0IDAtMS44ODE1LS45NzkzOC0yLjgzNTEtMi4zNzExMy00LjA0NjRDMS40Nzk1OSA4Ljk5NDc5LjU1MTc1OCA3Ljk2Mzg2LjU1MTc1OCA1LjIzMTljMC0yLjYwMzA5IDEuMTU5NzkyLTQuMTQ5NDggNC4xNzUyNjItNC4xNDk0OCAyLjkxMjM3IDAgNC4xMjM3MSAxLjcwMTAzIDMuNzExMzMgNS4yMDYxOWwtMi41NzczMi4xNTQ2M2MuMDUxNTUtMi4zOTY5LS4yMDYxOC0zLjIyMTY0LTEuMjYyODgtMy4yMjE2NC0uOTc5MzggMC0xLjMxNDQ0LjY0NDMzLTEuMzE0NDQgMS44Mjk4OSAwIDEuNzc4MzUuNzQ3NDMgMi4zMTk1OSAyLjM0NTM3IDMuODQwMjEgMS45ODQ1MyAxLjg4MTQgMy4wOTI3OCAyLjk4OTcgMy4wOTI3OCA1LjU0MTIgMCAzLjI0NzUtMS4yNjI4OSA0LjQ4NDYtNC4yMDEwMyA0LjQ4NDYtMy4wNjcwMS4wMjU3LTQuMzA0MTI1LTEuNjIzNy0zLjc4ODY2LTUuMTI4OVpNOS42NzU1NC43NDc0MDVoMi44MzUwNlY0LjU4NzYxYzAgMS4xNTk3OS0uMDUxNiAxLjk1ODc2LS4xNTQ3IDIuOTM4MTRoLjA1MTZjLjU0MTItMS4xNTk3OSAxLjQ0MzMtMS43NTI1NyAyLjYwMzEtMS43NTI1NyAxLjc1MjYgMCAyLjUgMS4yMzcxMSAyLjUgMy4zNTA1MXY5LjUzNjExaC0yLjgzNTFWOS4zMjk4OGMwLTEuMDMwOTMtLjI1NzctMS41NDYzOS0uOTAyLTEuNTQ2MzktLjQ4OTcgMC0uOTI3OS4yODM1LTEuMjM3MS43OTg5N1YxOC42NTk4SDkuNzAxMzFWLjc0NzQwNWgtLjAyNTc3Wk0xOC42NzAzIDEzLjI3MzJ2LTEuODI5OWMwLTQuMDcyMTYgMS4xODU2LTUuNjQ0MzMgMy45OTQ4LTUuNjQ0MzMgMi44MDkzIDAgMy44NjYgMS42MjM3MSAzLjg2NiA1LjY0NDMzdjEuODI5OWMwIDMuOTY5MS0xLjAwNTIgNS41OTI4LTMuOTQzMyA1LjU5MjgtMi45ODk3IDAtMy45MTc1LTEuNjc1My0zLjkxNzUtNS41OTI4Wm01IDEuMDMwOXYtMy45NDMzYzAtMS43MjY3OC0uMjU3OC0yLjYwMzA3LTEuMDgyNS0yLjYwMzA3LS43OTkgMC0xLjA1NjcuODc2MjktMS4wNTY3IDIuNjAzMDd2My45NDMzYzAgMS44MDQxLjI1NzcgMi42Mjg5IDEuMDU2NyAyLjYyODkuODI0NyAwIDEuMDgyNS0uODI0OCAxLjA4MjUtMi42Mjg5Wk0yNy42NjUyIDYuMDMwODloMi4xOTA3bC4yNTc4IDIuNzMxOTZoLjEwM2MuMjgzNi0yLjAxMDMxIDEuMjExNC0zLjAxNTQ2IDIuMzk2OS0zLjAxNTQ2LjE1NDcgMCAuMzA5My4wMjU3Ny41MTU1LjA1MTU0bC0uMTU0NiAzLjI3MzJjLTEuMTg1Ni0uMjU3NzMtMi4xMzkyLS4wNTE1NS0yLjU3NzMuNzIxNjVWMTguNjM0aC0yLjczMlY2LjAzMDg5Wk0zNC44MDQ0IDE1LjY3MDFWOC4yNzMyaC0xLjAzMDlWNi4wNTY3aDEuMTU5OGwuMzYwOC0zLjczNzExaDIuMTEzNFY2LjA1NjdoMS45MzN2Mi4yMTY1aC0xLjgwNDF2Ni45ODQ1YzAgMS4xODU2LjE1NDYgMS40NDMzLjYxODUgMS40NDMzLjQxMjQgMCAuNzczMi0uMDUxNSAxLjEwODMtLjE4MDRsLjM2MDggMS44MDQxYy0uODUwNS40MTI0LTEuOTMzLjU0MTMtMi42MDMxLjU0MTMtMS44Mjk5LS4wMjU4LTIuMjE2NS0uOTc5NC0yLjIxNjUtMy4xOTU5Wk00MC4yNjgyIDE0LjgxOTZsMi4zOTY5LS4wNTE1Yy0uMTI4OSAxLjM5MTcuMzYwOCAyLjE5MDcgMS4yMTEzIDIuMTkwNy43MjE3IDAgMS4xMzQxLS40NjM5IDEuMTM0MS0xLjEwODMgMC0uODc2My0uNzk5LTEuNDY5LTIuMTY1LTIuNS0xLjYyMzctMS4yMzcxLTIuNjAzMS0yLjE2NDktMi42MDMxLTQuMjAxIDAtMi4yNDIyNyAxLjE4NTYtMy4zMjQ3NCAzLjYzNC0zLjMyNDc0IDIuNjAzMSAwIDMuNjM0MSAxLjI4ODY2IDMuNDI3OSA0LjM1NTY0bC0yLjM5NjkuMTAzMWMtLjAyNTgtMS45MDcxOS0uMjgzNS0yLjQ0ODQzLTEuMDgyNS0yLjQ0ODQzLS43NzMyIDAtMS4xMDgzLjM4NjYtMS4xMDgzIDEuMDgyNDcgMCAuOTc5MzguNTY3MSAxLjQ0MzI2IDEuNDk0OSAyLjExMzM2IDIuMjE2NSAxLjY0OTUgMy4yNDc0IDIuNDc0MyAzLjI0NzQgNC41MzYxIDAgMi4yNjgxLTEuMjg4NyAzLjQwMjEtMy43MzcxIDMuNDAyMS0yLjc4MzUtLjAyNTgtMy44MTQ0LTEuNTQ2NC0zLjQ1MzYtNC4xNDk1WiIsCmZpbGw6IiNmZmYifSkpLF8uSygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDAsIDApIn0sXy5LKCJwYXRoIix7ZDoiTTE4LjQ1IDguODUxYzEuOTA0LTEuMDY2IDIuNTQxLTMuNCAxLjQyMi01LjIxNC0xLjExOS0xLjgxNC0zLjU3LTIuNDItNS40NzUtMS4zNTVMNS41NSA3LjI0N2MtMS4yOS43MjItMi4wNDkgMi4wNjktMS45NjggMy40OTEuMDgxIDEuNDIzLjk4OSAyLjY4MyAyLjM1MyAzLjI2OGwuOTQyLjQwNC0xLjMyNy43NDJjLTEuOTA0IDEuMDY2LTIuNTQxIDMuNC0xLjQyMiA1LjIxNCAxLjExOSAxLjgxNCAzLjU3IDIuNDIxIDUuNDc1IDEuMzU1bDguODQ3LTQuOTY1YzEuMjktLjcyMiAyLjA0OS0yLjA2OCAxLjk2OC0zLjQ5LS4wODEtMS40MjMtLjk4OS0yLjY4NC0yLjM1My0zLjI2OWwtLjk0Mi0uNDAzIDEuMzI3LS43NDNaTTEwIDE0LjU2N2EuMjUuMjUgMCAwMC4zNzQuMjE3bDQuNDUtMi41NjdhLjI1LjI1IDAgMDAwLS40MzNsLTQuNDUtMi41NjdhLjI1LjI1IDAgMDAtLjM3NC4yMTZ2NS4xMzRaIiwKImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGZpbGw6IiNmZmYifSkpKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC93YXRlcm1hcmsvdjIvMTEwcHguc3ZnIl09Xy5LKCJzdmciLHt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIix2aWV3Qm94OiIwIDAgMTEwIDI2Iix2ZXJzaW9uOiIxLjEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhtbG5zOnl0IjoiaHR0cDovL3d3dy55b3V0dWJlLmNvbSJ9LF8uSygicGF0aCIse2lkOiJ5dHAtc3ZnLXdhdGVybWFyayIsZDoiTSAxNi42ODcwMDYsMC45OTk5ODUyNCBDIDEzLjU1MTA2OSwxLjAzMjc5NzIgNy4wMjQ1MTE0LDEuMTYyNDg1MiA0Ljk5OTUxMjYsMS42ODc0ODUyIGMgLTEuNDk5OTk5MSwwLjQgLTIuNTk5OTk4NCwxLjYgLTIuOTk5OTk4MiwzIC0wLjY5OTk5OTUsMi43IC0wLjY4NzQ5OTUsOC4zMTI0OTk4IC0wLjY4NzQ5OTUsOC4zMTI0OTk4IDAsMCAtMC4wMTI1LDUuNjEyNSAwLjY4NzQ5OTUsOC4zMTI1IDAuMzk5OTk5OCwxLjUgMS41OTk5OTkxLDIuNiAyLjk5OTk5ODIsMyAyLjY5OTk5ODQsMC43IDEzLjQwNjI0MjQsMC42ODc1IDEzLjQwNjI0MjQsMC42ODc1IDAsMCAxMC43MDYyNDMsMC4wMTI1IDEzLjQwNjI0MSwtMC42ODc1IDEuNSwtMC40IDIuNTk5OTk5LC0xLjYgMi45OTk5OTksLTMgMC42OTk5OTksLTIuNyAwLjY4NzQ5OSwtOC4zMTI1IDAuNjg3NDk5LC04LjMxMjUgMCwwIDAuMTEyNSwtNS42MTI0OTk4IC0wLjY4NzQ5OSwtOC4zMTI0OTk4IC0wLjQsLTEuNSAtMS41OTk5OTksLTIuNiAtMi45OTk5OTksLTMgQyAyOS4xMTE5OTgsMC45ODc0ODUyNCAxOC40MDU3NTUsMC45OTk5ODUyNCAxOC40MDU3NTUsMC45OTk5ODUyNCBjIDAsMCAtMC42NzM0MzcsLTAuMDEwOTM4IC0xLjcxODc0OSwwIHogbSA3Mi4yMTg3MDYsMC45MDYyNDk5NiAwLDIxLjI4MTI0OTggMi43ODEyNDgsMCAwLjMxMjUsLTEuMzc1IDAuMDkzNzUsMCBjIDAuMywwLjUgMC43MTg3NSwwLjg4NzUgMS4yMTg3NDksMS4xODc1IDAuNSwwLjMgMS4wODc1LDAuNDA2MjUgMS42ODc0OTksMC40MDYyNSAxLjEsMCAxLjk5OTk5OSwtMC40OTM3NSAyLjQ5OTk5OSwtMS41OTM3NSAwLjUsLTEuMSAwLjgxMjQ5OSwtMi43MDYyNSAwLjgxMjQ5OSwtNC45MDYyNSBsIDAsLTIuNDA2MjUgYyAwLC0xLjYgLTAuMTEyNSwtMi45MDYyNSAtMC4zMTI0OTksLTMuOTA2MjUgLTAuMiwtMC44OTk5OTk5IC0wLjUsLTEuNTkzNzQ5OSAtMSwtMi4wOTM3NDk5IC0wLjUsLTAuNCAtMS4xMDYyNDksLTAuNTkzNzQ5OSAtMS45MDYyNDksLTAuNTkzNzQ5OSAtMC41OTk5OTksMCAtMS4xODc0OTksMC4xOTk5OTk5IC0xLjY4NzQ5OSwwLjQ5OTk5OTkgLTAuNDk5OTk5LDAuMyAtMS4wMTg3NDksMC44MDYyNSAtMS4yMTg3NDksMS40MDYyNSBsIDAsLTcuOTA2MjQ5OSAtMy4yODEyNDgsMCB6IG0gLTQ5Ljk5OTk3LDAuNzgxMjUgMy45MDYyNDgsMTMuOTA2MjQ5OCAwLjE4NzUsNi43MTg3NSAzLjMxMjQ5OCwwIDAsLTYuNzE4NzUgMy44NzQ5OTcsLTEzLjkwNjI0OTggLTMuMzc0OTk4LDAgLTEuNDA2MjQ5LDYuMzEyNDk5OSBjIC0wLjQsMS44OTk5OTk5IC0wLjcxMjQ5OSwzLjE5OTk5OTkgLTAuODEyNDk5LDMuOTk5OTk5OSBsIC0wLjA5Mzc1LDAgYyAtMC4yLC0xLjEgLTAuNTEyNSwtMi40IC0wLjgxMjUsLTMuOTk5OTk5OSBsIC0xLjM3NDk5OSwtNi4zMTI0OTk5IC0zLjQwNjI0OCwwIHogbSAyOS41OTM3MzIsMCAwLDIuNzE4NzUgMy40MDYyNDgsMCAwLDE3LjkwNjI0OTggMy4yODEyNDgsMCAwLC0xNy45MDYyNDk4IDMuNDA2MjQ4LDAgYyAwLDAgMC4wMDYyLC0yLjcxODc1IC0wLjA5Mzc1LC0yLjcxODc1IGwgLTkuOTk5OTk0LDAgeiBtIC01My40OTk5NjcsNS4xMjUgOC45MDYyNDQsNS4xODc0OTk4IC04LjkwNjI0NCw1LjA5Mzc1IDAsLTEwLjI4MTI0OTggeiBtIDg5LjQwNjE5MywwLjA5Mzc1IGMgLTEuNywwIC0yLjg5Mzc1LDAuNTkzNzQ5OSAtMy41OTM3NSwxLjU5Mzc0OTkgLTAuNjk5OTksMC45OTk5OTk5IC0wLjk5OTk5NSwyLjYwNjI0OTkgLTAuOTk5OTk1LDQuOTA2MjQ5OSBsIDAsMi41OTM3NSBjIDAsMi4yIDAuMzAwMDA1LDMuOTA2MjUgMC45OTk5OTUsNC45MDYyNSAwLjcsMS4xIDEuOCwxLjU5Mzc1IDMuNSwxLjU5Mzc1IDEuNCwwIDIuMzg3NSwtMC4zIDMuMTg3NSwtMSAwLjcsLTAuNyAxLjA5Mzc1LC0xLjY5Mzc1IDEuMDkzNzUsLTMuMDkzNzUgbCAwLC0wLjUgLTIuOTA2MjUsLTAuMjE4NzUgYyAwLDEgLTAuMDgxMiwxLjYgLTAuMjgxMjUsMiAtMC4xLDAuNCAtMC41LDAuNjI1IC0xLDAuNjI1IC0wLjMsMCAtMC42MTI1LC0wLjExMjUgLTAuODEyNSwtMC4zMTI1IC0wLjIsLTAuMyAtMC4zMDYyNSwtMC41OTM3NSAtMC40MDYyNSwtMS4wOTM3NSAtMC4xLC0wLjUgLTAuMDkzNywtMS4yMTg3NSAtMC4wOTM3LC0yLjIxODc1IGwgMCwtMC43ODEyNSA1LjcxODc1LC0wLjA5Mzc1IDAsLTIuNjI1IGMgMCwtMS42IC0wLjEwNjI1LC0yLjc4NzUgLTAuNDA2MjUsLTMuNjg3NSAtMC4yLC0wLjg5OTk5OTkgLTAuNzEyNSwtMS41OTk5OTk5IC0xLjMxMjUsLTEuOTk5OTk5OSAtMC43LC0wLjQgLTEuNDg3NSwtMC41OTM3NDk5IC0yLjY4NzUsLTAuNTkzNzQ5OSB6IG0gLTUwLjQ5OTk2NywwLjA5Mzc1IGMgLTEuMDk5OTk5LDAgLTIuMDE4NzQ5LDAuMTg3NDk5OSAtMi43MTg3NDgsMC42ODc0OTk5IC0wLjcsMC40IC0xLjIsMS4xMjUgLTEuNDk5OTk5LDIuMTI0OTk5OSAtMC4zLDEgLTAuNSwyLjI3NSAtMC41LDMuODc1IGwgMCwyLjIxODc1IGMgMCwxLjUgMC4xMDYyNSwyLjc4MTI1IDAuNDA2MjUsMy43ODEyNSAwLjIsMC45IDAuNzA2MjQ5LDEuNjI1IDEuNDA2MjQ5LDIuMTI1IDAuNjk5OTk5LDAuNSAxLjcxMjQ5OSwwLjY4MTI1IDIuODEyNDk4LDAuNzgxMjUgMS4xOTk5OTksMCAyLjA4MTI0OSwtMC4yODc1IDIuNzgxMjQ5LC0wLjY4NzUgMC42OTk5OTksLTAuNCAxLjA5OTk5OSwtMS4wOTM3NSAxLjQ5OTk5OSwtMi4wOTM3NSAwLjM5OTk5OSwtMSAwLjQ5OTk5OSwtMi4zMDYyNSAwLjQ5OTk5OSwtMy45MDYyNSBsIDAsLTIuMjE4NzUgYyAwLC0xLjYgLTAuMiwtMi44NzUgLTAuNDk5OTk5LC0zLjg3NSAtMC4zLC0wLjg5OTk5OTkgLTAuOCwtMS42MjQ5OTk5IC0xLjQ5OTk5OSwtMi4xMjQ5OTk5IC0wLjcsLTAuNSAtMS41ODc1LC0wLjY4NzQ5OTkgLTIuNjg3NDk5LC0wLjY4NzQ5OTkgeiBtIDEyLjE4NzQ5MywwLjA5Mzc1IDAsMTEuOTA2MjQ5OCBjIC0wLjEsMC4zIC0wLjI5Mzc1LDAuNDg3NSAtMC41OTM3NSwwLjY4NzUgLTAuMiwwLjIgLTAuNTEyNSwwLjMxMjUgLTAuODEyNDk5LDAuMzEyNSAtMC4zLDAgLTAuNTg3NSwtMC4xMDYyNSAtMC42ODc1LC0wLjQwNjI1IC0wLjEsLTAuMyAtMC4xODc1LC0wLjcwNjI1IC0wLjE4NzUsLTEuNDA2MjUgbCAwLC0xMC45OTk5OTk4IC0zLjQwNjI0OCwwIDAsMTEuMjE4NzQ5OCBjIDAsMS40IDAuMTg3NSwyLjM5Mzc1IDAuNjg3NSwzLjA5Mzc1IDAuNDk5OTk5LDAuNyAxLjIxODc0OSwxIDIuMjE4NzQ4LDEgMS40LDAgMi40ODc0OTksLTAuNjkzNzUgMy4xODc0OTksLTIuMDkzNzUgbCAwLjA5Mzc1LDAgMC4zMTI1LDEuNzgxMjUgMi41OTM3NDksMCAwLC0xNC45OTk5OTk4IGMgMCwwIC0zLjQwNjI0OCwwLjAwNjIgLTMuNDA2MjQ4LC0wLjA5Mzc1IHogbSAxNy4zMTI0ODksMCAwLDExLjkwNjI0OTggYyAtMC4xLDAuMyAtMC4yOTM3NDksMC40ODc1IC0wLjU5Mzc0OSwwLjY4NzUgLTAuMiwwLjIgLTAuNTEyNSwwLjMxMjUgLTAuODEyNSwwLjMxMjUgLTAuMywwIC0wLjU4NzQ5OSwtMC4xMDYyNSAtMC42ODc0OTksLTAuNDA2MjUgLTAuMSwtMC4zIC0wLjIxODc1LC0wLjcwNjI1IC0wLjIxODc1LC0xLjQwNjI1IGwgMCwtMTAuOTk5OTk5OCAtMy40MDYyNDgsMCAwLDExLjIxODc0OTggYyAwLDEuNCAwLjIxODc1LDIuMzkzNzUgMC43MTg3NDksMy4wOTM3NSAwLjUsMC43IDEuMTg3NSwxIDIuMTg3NDk5LDEgMS4zOTk5OTksMCAyLjUxODc0OSwtMC42OTM3NSAzLjIxODc0OCwtMi4wOTM3NSBsIDAuMDkzNzUsMCAwLjI4MTI1LDEuNzgxMjUgMi42MjQ5OTgsMCAwLC0xNC45OTk5OTk4IGMgMCwwIC0zLjQwNjI0OCwwLjAwNjIgLTMuNDA2MjQ4LC0wLjA5Mzc1IHogbSAyMC45MDYyMzUsMi4wOTM3NDk4IGMgMC40LDAgMC41ODEyNSwwLjExMjUgMC43ODEyNSwwLjMxMjUgMC4yLDAuMyAwLjMwNjI1LDAuNTkzNzUgMC40MDYyNSwxLjA5Mzc1IDAuMSwwLjUgMC4wOTM3LDEuMjE4NzUgMC4wOTM3LDIuMjE4NzUgbCAwLDEuMDkzNzUgLTIuNSwwIDAsLTEuMDkzNzUgYyAwLC0xIC0wLjAwNiwtMS43MTg3NSAwLjA5MzcsLTIuMjE4NzUgMCwtMC40IDAuMTEyNSwtMC44IDAuMzEyNSwtMSAwLjIsLTAuMyAwLjUxMjUsLTAuNDA2MjUgMC44MTI1LC0wLjQwNjI1IHogbSAtNTAuNDk5OTY3LDAuMTI1IGMgMC41LDAgMC44LDAuMTg3NSAxLDAuNjg3NSAwLjE5OTk5OSwwLjUgMC4yODEyNDksMS4zMDYyNSAwLjI4MTI0OSwyLjQwNjI1IGwgMCw0LjY4NzUgYyAwLDEuMSAtMC4wODEyNSwxLjkwNjI1IC0wLjI4MTI0OSwyLjQwNjI1IC0wLjIsMC41IC0wLjUsMC42ODc1IC0xLDAuNjg3NSAtMC41LDAgLTAuNzk5OTk5LC0wLjE4NzUgLTAuOTk5OTk5LC0wLjY4NzUgLTAuMiwtMC41IC0wLjMxMjUsLTEuMzA2MjUgLTAuMzEyNSwtMi40MDYyNSBsIDAsLTQuNjg3NSBjIDAsLTEuMSAwLjExMjUsLTEuOTA2MjUgMC4zMTI1LC0yLjQwNjI1IDAuMiwtMC41IDAuNDk5OTk5LC0wLjY4NzUgMC45OTk5OTksLTAuNjg3NSB6IG0gMzkuNjg3NDc2LDAuMDkzNzUgYyAwLjMsMCAwLjYxMjUsMC4xMDYyNSAwLjgxMjUsMC40MDYyNSAwLjIsMC4zIDAuMjc1LDAuNjc1IDAuMzc1LDEuMzc1IDAuMSwwLjYgMC4xMjQ5OTksMS41MTg3NSAwLjEyNDk5OSwyLjcxODc1IGwgMC4wOTM3NSwxLjkwNjI1IGMgMCwxLjEgMC4wMDYyLDEuOTkzNzUgLTAuMDkzNzUsMi41OTM3NSAtMC4xLDAuNiAtMC4xOTk5OTksMS4wODEyNSAtMC40OTk5OTksMS4yODEyNSAtMC4yLDAuMyAtMC41MDYyNSwwLjQwNjI1IC0wLjkwNjI1LDAuNDA2MjUgLTAuMywwIC0wLjUxMjQ5OSwtMC4wODc1IC0wLjgxMjQ5OSwtMC4xODc1IC0wLjIsLTAuMSAtMC4zOTM3NSwtMC4yOTM3NSAtMC41OTM3NSwtMC41OTM3NSBsIDAsLTguNSBjIDAuMSwtMC40IDAuMjkzNzUsLTAuNyAwLjU5Mzc1LC0xIDAuMywtMC4zIDAuNjA2MjQ5LC0wLjQwNjI1IDAuOTA2MjQ5LC0wLjQwNjI1IHoiLApjbGFzczoieXRwLXN2Zy1maWxsIixmaWxsOiIjZmZmIn0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC95b3V0dWJlX3Nob3J0c19icmFuZF8yNC92Mi8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoiMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCJ9LF8uSygicGF0aCIse2Q6Im0xOS40NSwzLjg4YzEuMTIsMS44Mi40OCw0LjE1LTEuNDIsNS4yMmwtMS4zMi43NC45NC40MWMxLjM2LjU4LDIuMjcsMS44NSwyLjM1LDMuMjcuMDgsMS40My0uNjgsMi43Ny0xLjk3LDMuNDlsLTgsNC40N2MtMS45MSwxLjA2LTQuMzUuNDYtNS40OC0xLjM1LTEuMTItMS44Mi0uNDgtNC4xNSwxLjQyLTUuMjJsMS4zMy0uNzQtLjk0LS40MWMtMS4zNi0uNTgtMi4yNy0xLjg1LTIuMzUtMy4yNy0uMDgtMS40My42OC0yLjc3LDEuOTctMy40OWw4LTQuNDdjMS45MS0xLjA2LDQuMzUtLjQ2LDUuNDgsMS4zNVoiLApmaWxsOiIjZjAzIn0pLF8uSygicGF0aCIse2Q6Im0xMCwxNWw1LTMtNS0zdjZaIixmaWxsOiIjZmZmIn0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC95b3V0dWJlL3YyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCA2NyA2MCIsZmlsbDoiIn0sXy5LKCJwYXRoIix7ZDoiTTYzIDE0Ljg3YTcuODg1IDcuODg1IDAgMDAtNS41Ni01LjU2QzUyLjU0IDggMzIuODggOCAzMi44OCA4UzEzLjIzIDggOC4zMiA5LjMxYy0yLjcuNzItNC44MyAyLjg1LTUuNTYgNS41NkMxLjQ1IDE5Ljc3IDEuNDUgMzAgMS40NSAzMHMwIDEwLjIzIDEuMzEgMTUuMTNjLjcyIDIuNyAyLjg1IDQuODMgNS41NiA1LjU2QzEzLjIzIDUyIDMyLjg4IDUyIDMyLjg4IDUyczE5LjY2IDAgMjQuNTYtMS4zMWMyLjctLjcyIDQuODMtMi44NSA1LjU2LTUuNTZDNjQuMzEgNDAuMjMgNjQuMzEgMzAgNjQuMzEgMzBzMC0xMC4yMy0xLjMxLTE1LjEzeiJ9KSwKXy5LKCJwYXRoIix7ZmlsbDoiI0ZGRiIsY2xhc3M6ImxvZ28tYXJyb3ciLGQ6Ik0yNi42IDM5LjQzTDQyLjkzIDMwIDI2LjYgMjAuNTd6In0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfb3V0bGluZS9mdWxsc2NyZWVuX2V4aXQvdjEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTAsMTBINlY5aDNWNmgxVjEweiBNMTgsOWgtM1Y2aC0xdjRoNFY5eiBNMTUsMTVoM3YtMWgtNHY0aDFWMTV6IE0xMCwxNEg2djFoM3YzaDFWMTR6In0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfb3V0bGluZS9mdWxsc2NyZWVuL3YxLzI0cHguc3ZnIl09Cl8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcgMCAwIDI0IDI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik03LDExSDZWNmg1djFIN1YxMXogTTE4LDZoLTV2MWg0djRoMVY2eiBNMTgsMTNoLTF2NGgtNHYxaDVWMTN6IE0xMSwxN0g3di00SDZ2NWg1VjE3eiJ9KSk7cmV0dXJuIGF9O2xxYT1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoRW5hKCkpfTttcWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gc1koImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIvIixhLGIpfTsKY3FhPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pZGVudGlmaWVyLGQ9Yi5JaixlPWIuZXh0cmFzLGY9Yi50YXJnZXQsaD1iLlBtO2I9Yi5uQTtkJiZhd2FpdCBWWShhLHtpZGVudGlmaWVyOmMsSWo6ZCx0bjohMSxleHRyYXM6ZSxQbTpofSk7YXdhaXQgYS5pc1Zpc2libGUoYyl8fChhPWF3YWl0IFpvYShhLGMpLF8uWE0oImVuZ2FnZW1lbnQtcGFuZWwtcHVzaCIse2lkZW50aWZpZXI6Yyx3ejphLExKOmYsbkE6Yn0pLGMmJl8ub00oKS5kaXNwYXRjaChfLmtBKHt0eXBlOiJNQUlOX0FQUF9BRERfT1BFTl9FTkdBR0VNRU5UX1BBTkVMIixwYXlsb2FkOnt4ejpjfX0pKSl9O1ZZPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pZGVudGlmaWVyLGQ9Yi5JajtiPWIuUG07YyYmKGQmJmEuT20uc2V0KGMsZCksXy5YTSgiZW5nYWdlbWVudC1wYW5lbC11cGRhdGUiLHtpZGVudGlmaWVyOmMsd3o6ZCxQbTpifSkpfTsKdHFhPWZ1bmN0aW9uKGEpe3ZhciBiPV8ueSgpO25xYSgpO18uSnooYix7amE6Xy5MeCxNYjpvcWF9KTtfLkp6KGIse2phOl8ubEYsTWI6Xy53KCJIVE1MX0RJUiIpPT09InJ0bCI/InJ0bCI6Imx0ciJ9KTtfLkp6KGIse2phOl8ua0YsTWI6KCk9PiEwfSk7Xy5KeihiLHtqYTpfLm1PLFBhOllZfSk7Xy5KeihiLHtqYTpfLlhMLFBhOlpZfSk7Xy5KeihiLHtqYTpfLm9PLE1iOmtxYX0pO18uSnooYix7amE6Xy5MRCxNYjpfLnVPfSk7Xy5KeihiLHtqYTpfLmNMLFBhOnBxYX0pO18uSnooYix7amE6Xy5iSSxXYzpfLm9NfSk7Xy5KeihiLHtqYTpfLnlQLE1iOm5ldyBxcWF9KTtfLkp6KGIse2phOl8udlAsTWI6e1Z1OiEwLEN4OiEwfX0pO18uSnooYix7amE6Xy5KSCxXYzooKT0+UHJvbWlzZS5yZXNvbHZlKGEpfSk7Xy5KeihiLHtqYTpfLktILFdjOigpPT4oKT0+YX0pO18uSnooYix7amE6JFksUGE6YVp9KTtfLkp6KGIse2phOl8uYkwsUGE6cnFhfSk7Xy5KeihiLHtqYTpfLk9XLFdjOl8uaHh9KTsKXy5KeihiLHtqYTpfLmJNLE1iOl8uTE99KTtpZihfLngoIndlYl9lbmFibGVfcmVuZGVyZXJfbG9nZ2VyIikpe2xldCBjPW5ldyBEWDtfLk5NKHdpbmRvdywibmF2aWdhdGUiLCgpPT57Yy5hYm9ydCgpfSk7Xy5KeihiLHtqYTpfLkNHLE1iOm5ldyBzcWEoYy5zaWduYWwpfSl9fTtucWE9ZnVuY3Rpb24oKXt2YXIgYT1fLnkoKSxiPWEucmVzb2x2ZShfLkl5KTtfLkd5Lm1hcHBpbmdzLnNldChTVy50b1N0cmluZygpLHt0eXBlOiJtYXBwaW5nIix2YWx1ZTpifSk7Xy5KeihhLHtqYTpfLkh5LE1iOmxxYX0pfTt6WD1mdW5jdGlvbigpe3ZhciBhPXt9LGI9Xy5WdygpO2ImJihhLmRlc3RpbmF0aW9uU2NyZWVuPWIuZ2V0QXNKc29uKCkudmVUeXBlfHx2b2lkIDApO2EubmF2VHlwZT0iU0xJX05BVl9UWVBFX0NPTEQiO2EuYWN0aW9uVHlwZT0iTEFURU5DWV9BQ1RJT05fRU1CRUQiO3JldHVybntuYXZpZ2F0aW9uOmF9fTsKdXFhPWZ1bmN0aW9uKGEsYj17fSl7cmV0dXJue3R5cGU6Mixjb21tYW5kOmEsZm9ybTpiLmZvcm19fTsKXy5iWj1mdW5jdGlvbihhKXtfLkFxKCJlcF9pbml0X2lqcyIpO3RxYShhKTt2YXIgYj1kb2N1bWVudC5ib2R5O2lmKCFiKXRocm93IEVycm9yKCJpZSIpO2I9bmV3IHZxYSh7cm9vdDpiLHBKOl8ueSgpfSk7Yi5pbnN0YWxsKHdxYSk7Yi50cmFuc2l0aW9uKCJpbml0aWFsaXplZCIpO18uQXEoImVwX2luaXRfaWplIik7Xy54KCJlbWJlZHNfdHJhY2luZ19rcyIpfHxwcGEoKTtfLllNPSEwOyhfLk1rKCJpZW1vYmlsZSIpfHxfLk1rKCJ3aW5kb3dzIHBob25lIikmJl8uTWsoImVkZ2UiKSkmJl8uTWsoIjsgdmlydHVhbCIpfHwoWG9hKGEpLG5vYSgpKTtxb2EoYSk7RVk9YTtqcWEoYSk7YT0hXy54KCJtd2ViX2NvbW1hbmRfaGFuZGxlcl9zY3JlZW5fbWFuYWdlcl9raWxsc3dpdGNoIik7Yj1bXy5RVyxfLlV6LF8uQ3ldO0pvYShfLngoIm13ZWJfY29tbWFuZF9oYW5kbGVyX2Rpc2FibGVfYnVpbGRfY29tbWFuZF9wYXlsb2FkX3N0dWIiKT91cWE6dm9pZCAwLGE/Xy5oeCgpOnZvaWQgMCxhLAphLGIpO18uSnooXy55KCkse2phOl8uVUQsTWI6TFguaW5zdGFuY2V9KTtpb2EoKTtGcGEoKX07V1c9W107RG9hPXtnSDoiU0xJX1NUQVRVU19VTktOT1dOIixlSDoiU0xJX1NUQVRVU19TVUNDRVNTIixjSDoiU0xJX1NUQVRVU19GQUlMVVJFIixmSDoiU0xJX1NUQVRVU19USU1FT1VUIixhSDoiU0xJX1NUQVRVU19BQk9SVEVEIixiSDoiU0xJX1NUQVRVU19DQU5DRUxMRUQiLGRIOiJTTElfU1RBVFVTX1JFSkVDVEVEIn07Y1o9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50cz1uZXcgTWFwfWNsZWFyKCl7dGhpcy5ldmVudHMuY2xlYXIoKX19OwpLbmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLkQ9bmV3IHhxYTt0aGlzLnY9bmV3IGNaO3RoaXMuQj1uZXcgY1o7dGhpcy5vPTA7dGhpcy5mbHVzaEludGVydmFsPTNFNDt0aGlzLmo9bmV3IF8uankodGhpcy5mbHVzaEludGVydmFsKTt0aGlzLmoubGlzdGVuKCJ0aWNrIix0aGlzLmZsdXNoLCExLHRoaXMpfWZsdXNoKCl7aWYodGhpcy5vKXt2YXIgYT17bG9nZ2VkRXZlbnRzOllXKHRoaXMudiksdW5sb2dnZWRFdmVudHM6WVcodGhpcy5CKX07aWYoXy54KCJleHBvcnRfcGxheWVyX3ZlcnNpb25fdG9feXRjb25maWciKSl7dmFyIGI7KGI9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSk/KGI9Yi5zcGxpdCgiLSIpWzBdLnJlcGxhY2UoL1wuL2csIiIpLGI9aXNOYU4oTnVtYmVyKGIpKT8iMCI6Yik6Yj0iIjt2YXIgYz1fLncoIlBMQVlFUl9DTElFTlRfVkVSU0lPTiIpO2lmKGMpe2M9Yy5zcGxpdCgiLSIpO2xldCBkPSIiO2MubGVuZ3RoPjEmJihkPWNbYy5sZW5ndGgtMV0pO2M9CkpuYShkLnN0YXJ0c1dpdGgoImNhbmFyeV9leHBlcmltZW50Iik/ImNhbmFyeSI6ZC5zdGFydHNXaXRoKCJjYW5hcnlfY29udHJvbCIpPyJjb250cm9sIjoibm9uZSIpfWVsc2UgYz0iQ0xJRU5UX0NBTkFSWV9TVEFURV9VTktOT1dOIjthLmRpbWVuc2lvbnM9e3BsYXllckNsaWVudFZlcnNpb246YixwbGF5ZXJDYW5hcnlTdGF0ZTpjfX10aGlzLkQuZmx1c2goYSk7dGhpcy52LmNsZWFyKCk7dGhpcy5CLmNsZWFyKCk7dGhpcy5vPTA7dGhpcy5qLmVuYWJsZWQmJnRoaXMuai5zdG9wKCl9fX07eHFhPWNsYXNze2ZsdXNoKGEsYil7Xy54KCJlbmFibGVfY2xpZW50X3NsaV9sb2dnaW5nIikmJl8uRXAoInNsaUV2ZW50QmF0Y2giLGEse3NlbmRJc29sYXRlZFBheWxvYWQ6ISFifSl9fTtkWj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19OwplWj1jbGFzcyBleHRlbmRzIGRae2dldCBlbnRpdHlNZXRhZGF0YSgpe3JldHVybiB0aGlzLmouZW50aXR5TWV0YWRhdGF9c2V0IGVudGl0eU1ldGFkYXRhKGEpe3RoaXMuai5lbnRpdHlNZXRhZGF0YT1hfX07eXFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTt6cWE9Y2xhc3MgZXh0ZW5kcyBkWntvKCl7dmFyIGE9W107dGhpcy5qLnZpZGVvJiZhLnB1c2godGhpcy5qLnZpZGVvKTt0aGlzLmoucGxheWxpc3QmJmEucHVzaCh0aGlzLmoucGxheWxpc3QpO3RoaXMuai52aWRlb0l0ZW0mJmEucHVzaCh0aGlzLmoudmlkZW9JdGVtKTt0aGlzLmoucGxheWxpc3RJdGVtJiZhLnB1c2godGhpcy5qLnBsYXlsaXN0SXRlbSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTsKQXFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai5sb2NhbEltYWdlRW50aXRpZXMmJmEucHVzaCguLi50aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzKTt0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkmJmEucHVzaCh0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfX07QnFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai5yZWNvbW1lbmRlZFZpZGVvTWV0YWRhdGEmJmEucHVzaCguLi4obmV3IEFxYSh0aGlzLmoucmVjb21tZW5kZWRWaWRlb01ldGFkYXRhKSkubygpKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX19O0NxYT1jbGFzcyBleHRlbmRzIGRae28oKXt2YXIgYT1bXTt0aGlzLmoucGxheWJhY2tQb3NpdGlvbiYmYS5wdXNoKHRoaXMuai5wbGF5YmFja1Bvc2l0aW9uKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX19OwpEcWE9Y2xhc3MgZXh0ZW5kcyBkWntvKCl7dmFyIGE9W107dGhpcy5qLmNyZWF0b3JFbnRpdHkmJmEucHVzaCh0aGlzLmouY3JlYXRvckVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTtmWj0hMTsKRXFhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuY291bnRlcj1bMCwwLDAsMF07dGhpcy5vPW5ldyBVaW50OEFycmF5KDE2KTt0aGlzLmo9MTY7aWYoIWZaKXt2YXIgYixjPW5ldyBVaW50OEFycmF5KDI1NiksZD1uZXcgVWludDhBcnJheSgyNTYpO3ZhciBlPTE7Zm9yKGI9MDtiPDI1NjtiKyspY1tlXT1iLGRbYl09ZSxlXj1lPDwxXihlPj43JiYyODMpO2dYPW5ldyBVaW50OEFycmF5KDI1Nik7Y1g9YlgoMjU2KTtkWD1iWCgyNTYpO2VYPWJYKDI1Nik7Zlg9YlgoMjU2KTtmb3IobGV0IGg9MDtoPDI1NjtoKyspe2U9aD9kWzI1NV5jW2hdXTowO2VePWU8PDFeZTw8Ml5lPDwzXmU8PDQ7ZT1lJjI1NV5lPj4+OF45OTtnWFtoXT1lO2I9ZTw8MV4oZT4+NyYmMjgzKTt2YXIgZj1iXmU7Y1hbaF09Yjw8MjR8ZTw8MTZ8ZTw8OHxmO2RYW2hdPWY8PDI0fGNYW2hdPj4+ODtlWFtoXT1lPDwyNHxkWFtoXT4+Pjg7ZlhbaF09ZTw8MjR8ZVhbaF0+Pj44fWZaPQohMH1lPWJYKDQ0KTtmb3IoYz0wO2M8NDtjKyspZVtjXT1hWzQqY108PDI0fGFbNCpjKzFdPDwxNnxhWzQqYysyXTw8OHxhWzQqYyszXTtmb3IoZD0xO2M8NDQ7YysrKWE9ZVtjLTFdLGMlNHx8KGE9KGdYW2E+PjE2JjI1NV1eZCk8PDI0fGdYW2E+PjgmMjU1XTw8MTZ8Z1hbYSYyNTVdPDw4fGdYW2E+Pj4yNF0sZD1kPDwxXihkPj43JiYyODMpKSxlW2NdPWVbYy00XV5hO3RoaXMua2V5PWV9ZW5jcnlwdChhKXt2YXIgYj1hLmxlbmd0aDthPW5ldyBVaW50OEFycmF5KGEuYnVmZmVyLnNsaWNlKGEuYnl0ZU9mZnNldCxhLmJ5dGVPZmZzZXQrYikpO2Zvcih2YXIgYz10aGlzLm8sZD0wO2Q8YiYmdGhpcy5qPDE2OylhW2QrK11ePWNbdGhpcy5qKytdO2Zvcih2YXIgZT1iLShiLWQpJTE2O2Q8ZTspaFgodGhpcyksYVtkKytdXj1jWzBdLGFbZCsrXV49Y1sxXSxhW2QrK11ePWNbMl0sYVtkKytdXj1jWzNdLGFbZCsrXV49Y1s0XSxhW2QrK11ePWNbNV0sYVtkKytdXj1jWzZdLGFbZCsrXV49Y1s3XSwKYVtkKytdXj1jWzhdLGFbZCsrXV49Y1s5XSxhW2QrK11ePWNbMTBdLGFbZCsrXV49Y1sxMV0sYVtkKytdXj1jWzEyXSxhW2QrK11ePWNbMTNdLGFbZCsrXV49Y1sxNF0sYVtkKytdXj1jWzE1XTtpZihkPGIpZm9yKGhYKHRoaXMpLHRoaXMuaj0wO2Q8YjspYVtkKytdXj1jW3RoaXMuaisrXTtyZXR1cm4gYX19O2daPSExO0ZxYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMudj1hO3RoaXMubz1ifWFzeW5jIGVuY3J5cHQoYSxiKXt0cnl7cmV0dXJuIGF3YWl0IE5uYSh0aGlzLGEsYil9Y2F0Y2goYyl7dGhyb3cgXy5JcChjKSxnWj0hMCxjO319fTsKaVo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPWF9ZW5jcnlwdChhLGIpe3RoaXMuanx8KHRoaXMuaj1uZXcgRXFhKHRoaXMubykpO3ZhciBjPXRoaXMuajtmb3IobGV0IGQ9MDtkPDQ7ZCsrKWMuY291bnRlcltkXT1iW2QqNF08PDI0fGJbZCo0KzFdPDwxNnxiW2QqNCsyXTw8OHxiW2QqNCszXTtjLmo9MTY7cmV0dXJuIHRoaXMuai5lbmNyeXB0KGEpfWRlY3J5cHQoYSxiKXtyZXR1cm4gdGhpcy5lbmNyeXB0KGEsYil9fTsKR3FhPWNsYXNze2NvbnN0cnVjdG9yKGEpe2E6e2lmKCFnWiYmIV8uSmwpe2lmKGhaKXt2YXIgYj1oWjticmVhayBhfWhaPXdpbmRvdy5jcnlwdG8/LnN1YnRsZTtpZihoWj8uaW1wb3J0S2V5JiZoWj8uc2lnbiYmaFo/LmVuY3J5cHQpe2I9aFo7YnJlYWsgYX1oWj12b2lkIDB9Yj12b2lkIDB9YiYmKHRoaXMuaj1uZXcgRnFhKGEsYikpO3RoaXMubz1uZXcgaVooYSl9YXN5bmMgZW5jcnlwdChhLGIpe2lmKHRoaXMuail0cnl7cmV0dXJuIGF3YWl0IHRoaXMuai5lbmNyeXB0KGEsYil9Y2F0Y2goYyl7Xy5JcChjKSxnWj0hMCx0aGlzLmo9dm9pZCAwfXJldHVybiB0aGlzLm8uZW5jcnlwdChhLGIpfWRlY3J5cHQoYSxiKXtyZXR1cm4gdGhpcy5lbmNyeXB0KGEsYil9fTsKSHFhPXtJTlZBTElEX0VOQ09ERVJfVkVSU0lPTjoiSW52YWxpZCBlbmNvZGVyIHZlcnNpb24iLEtFWV9DUkVBVElPTl9GQUlMRUQ6IkZhaWxlZCB0byBjcmVhdGUgZW5jb2RlciBrZXkiLFVOS05PV05fREVDT0RFX0VSUk9SOiJGYWlsZWQgdG8gZGVjb2RlIFBFUyBkYXRhIixVTktOT1dOX0VOQ09ERV9FUlJPUjoiRmFpbGVkIHRvIGVuY29kZSBQRVMgZGF0YSIsV1JPTkdfREFUQV9UWVBFOiJFbmNvZGVyIGNhbm5vdCBwcm9jZXNzIHRoZSBkYXRhIHR5cGUifTtpWD1jbGFzcyBleHRlbmRzIF8uWGp7Y29uc3RydWN0b3IoYSxiPXt9KXtzdXBlcihIcWFbYV0se25hbWU6IlBFU0VuY29kZXJFcnJvciIsdHlwZTphLC4uLmJ9KTt0aGlzLnR5cGU9YTt0aGlzLmxldmVsPSJXQVJOSU5HIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxpWC5wcm90b3R5cGUpfX07CmpaPWNsYXNze2VuY29kZShhLGIpe3RyeXtyZXR1cm4gdGhpcy52KGEsYil9Y2F0Y2goYyl7algoYyxPbmEpfX1kZWNvZGUoYSxiKXt0cnl7cmV0dXJuIHRoaXMubyhhLGIpfWNhdGNoKGMpe2pYKGMsUG5hKX19fTtJcWE9Y2xhc3MgZXh0ZW5kcyBqWntjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuaj1hfXYoYSxiKXtiPWtYKGIpO2E9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEpKTtyZXR1cm4gdGhpcy5qLmVuY3J5cHQoYSxiKX1vKGEsYil7aWYoIShhIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IGlYKCJXUk9OR19EQVRBX1RZUEUiLHtJcDoxfSk7dmFyIGM9bmV3IFRleHREZWNvZGVyO2I9a1goYik7YT10aGlzLmouZGVjcnlwdChhLGIpO3JldHVybiBKU09OLnBhcnNlKGMuZGVjb2RlKGEpKX19OwpRbmE9e2FuaW1hdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhbmltYXRpb25FbnRpdHkifX0sYWNjb3VudExpbmtTdGF0dXNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYWNjb3VudExpbmtTdGF0dXNFbnRpdHkifX0sYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhc2tTdHVkaW9HZW5lcmF0ZWREYXRhRW50aXR5In19LGJvb2xlYW5FbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYm9vbGVhbkVudGl0eSJ9fSxidXR0b25FbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYnV0dG9uRW50aXR5In19LGNhcHRpb25UcmFjazpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjYXB0aW9uVHJhY2sifX0sCmNoYW5uZWxIYW5kbGU6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY2hhbm5lbEhhbmRsZSJ9fSxjaGF0TG9hZGluZ1N0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNoYXRMb2FkaW5nU3RhdGVFbnRpdHkifX0sYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhc2tTdHVkaW9Db252ZXJzYXRpb25TdW1tYXJ5RW50aXR5In19LGNoaXBFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY2hpcEVudGl0eSJ9fSxjb21tZXJjZUFjcXVpc2l0aW9uQ2xpZW50UGF5bG9hZEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21tZXJjZUFjcXVpc2l0aW9uQ2xpZW50UGF5bG9hZEVudGl0eSJ9fSwKY29tbWVyY2VDYXJ0TGlzdEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21tZXJjZUNhcnRMaXN0RW50aXR5In19LGNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5In19LGNvbXBvc2l0ZVNvdXJjZUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21wb3NpdGVTb3VyY2VFbnRpdHkifX0sbXVsdGl2aWV3U3RhZ2luZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmouY29tcG9zaXRlU291cmNlS2V5cyYmYS5wdXNoKC4uLnRoaXMuai5jb21wb3NpdGVTb3VyY2VLZXlzKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdWx0aXZpZXdTdGFnaW5nRW50aXR5In19LGNvbnRleHROb3RlRmVlZEVudGl0eVBheWxvYWQ6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY29udGV4dE5vdGVGZWVkRW50aXR5UGF5bG9hZCJ9fSwKY29udGV4dE5vdGVVc2VyUmF0aW5nRW50aXR5UGF5bG9hZDpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkIn19LGNvbnRpbnVhdGlvblRva2VuRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNvbnRpbnVhdGlvblRva2VuRW50aXR5In19LGRvd25sb2FkUXVhbGl0eVBpY2tlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZFF1YWxpdHlQaWNrZXJFbnRpdHkifX0sZG93bmxvYWRzUGFnZVJlZnJlc2hUb2tlbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZHNQYWdlUmVmcmVzaFRva2VuRW50aXR5In19LGRvd25sb2Fkc1BhZ2VWaWV3Q29uZmlndXJhdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkifX0sCmRvd25sb2FkU3RhdHVzRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImRvd25sb2FkU3RhdHVzRW50aXR5In19LGRpc21pc3NTdGF0ZTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkaXNtaXNzU3RhdGUifX0sc2Z2QXVkaW9JdGVtQ3VycmVudGx5UGxheWluZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5In19LGVtb2ppRm91bnRhaW5EYXRhRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImVtb2ppRm91bnRhaW5EYXRhRW50aXR5In19LGVtb2ppQ3VzdG9taXphdGlvblNldEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJlbW9qaUN1c3RvbWl6YXRpb25TZXRFbnRpdHkifX0sCmZha2VDaGFubmVsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5hbHRlcm5hdGVDaGFubmVsJiZhLnB1c2godGhpcy5qLmFsdGVybmF0ZUNoYW5uZWwpO3RoaXMuai5hbHRlcm5hdGVDaGFubmVsTGlzdCYmYS5wdXNoKC4uLnRoaXMuai5hbHRlcm5hdGVDaGFubmVsTGlzdCk7dGhpcy5qLm9uZW9mQ2hhbm5lbEVudGl0eSYmYS5wdXNoKHRoaXMuai5vbmVvZkNoYW5uZWxFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VDaGFubmVsIn19LGZha2VQbGF5bGlzdDpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmouZW50cnlDb2xsZWN0aW9uJiZhLnB1c2godGhpcy5qLmVudHJ5Q29sbGVjdGlvbik7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4iZmFrZVBsYXlsaXN0In19LGZha2VQbGF5bGlzdEVudHJ5Q29sbGVjdGlvbjpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT0KW107dGhpcy5qLnBhcmVudFBsYXlsaXN0JiZhLnB1c2godGhpcy5qLnBhcmVudFBsYXlsaXN0KTtpZih0aGlzLmouZW50cmllcylmb3IobGV0IGIgb2YgdGhpcy5qLmVudHJpZXMpYS5wdXNoKC4uLihuZXcgeXFhKGIpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VQbGF5bGlzdEVudHJ5Q29sbGVjdGlvbiJ9fSxmYWtlVmlkZW86Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmRlc2NyaXB0aW9uRW50aXR5JiZhLnB1c2godGhpcy5qLmRlc2NyaXB0aW9uRW50aXR5KTt0aGlzLmouY3JlYXRvcnMmJmEucHVzaCguLi50aGlzLmouY3JlYXRvcnMpO3RoaXMuai50aGVCaWdnZXN0RmFuJiZhLnB1c2godGhpcy5qLnRoZUJpZ2dlc3RGYW4pO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VWaWRlbyJ9fSxmYWtlVmlkZW9EZXNjcmlwdGlvbjpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJmYWtlVmlkZW9EZXNjcmlwdGlvbiJ9fSwKZmVhdHVyZWRQcm9kdWN0c0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJmZWF0dXJlZFByb2R1Y3RzRW50aXR5In19LHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzYXZlZFByb2R1Y3RzU3RhdGVFbnRpdHkifX0sZmxvd1N0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImZsb3dTdGF0ZUVudGl0eSJ9fSxpY29uQmFkZ2VFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iaWNvbkJhZGdlRW50aXR5In19LGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iaW50ZXJzdGl0aWFsSW50ZXJhY3Rpb25TdGF0ZUVudGl0eSJ9fSxsaWtlQnV0dG9uQW5pbWF0aW9uRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpa2VCdXR0b25BbmltYXRpb25FbnRpdHkifX0sCmxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVDaGF0UG9sbFN0YXRlRW50aXR5In19LGRhdGFGcmVzaG5lc3NFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iZGF0YUZyZXNobmVzc0VudGl0eSJ9fSxsaXZlVmlld2VyTGVhZGVyYm9hcmRDaGF0RW50cnlQb2ludFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVWaWV3ZXJMZWFkZXJib2FyZENoYXRFbnRyeVBvaW50U3RhdGVFbnRpdHkifX0sbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVWaWV3ZXJMZWFkZXJib2FyZFBvaW50c0VudGl0eSJ9fSxsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJsaXZlUmVhY3Rpb25zRGF0YUVudGl0eSJ9fSwKbG9nb0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJsb2dvRW50aXR5In19LG1hY3JvTWFya2VyRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1hY3JvTWFya2VyRW50aXR5In19LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5kb3dubG9hZHNMaXN0JiZhLnB1c2godGhpcy5qLmRvd25sb2Fkc0xpc3QpO3RoaXMuai5zbWFydERvd25sb2Fkc0xpc3QmJmEucHVzaCh0aGlzLmouc21hcnREb3dubG9hZHNMaXN0KTt0aGlzLmoucmVjb21tZW5kZWREb3dubG9hZHNMaXN0JiZhLnB1c2godGhpcy5qLnJlY29tbWVuZGVkRG93bmxvYWRzTGlzdCk7dGhpcy5qLnJlZnJlc2gmJmEucHVzaCh0aGlzLmoucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibWFpbkRvd25sb2Fkc0xpYnJhcnlFbnRpdHkifX0sCm1haW5Eb3dubG9hZHNMaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5yZWZyZXNoJiZhLnB1c2godGhpcy5qLnJlZnJlc2gpO2lmKHRoaXMuai5kb3dubG9hZHMpZm9yKGxldCBiIG9mIHRoaXMuai5kb3dubG9hZHMpYS5wdXNoKC4uLihuZXcgenFhKGIpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5In19LG1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyYmYS5wdXNoKC4uLnRoaXMuai5sb2NhbEltYWdlRW50aXRpZXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHkifX0sbWFpblBsYXlsaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5jaGFubmVsT3duZXImJgphLnB1c2godGhpcy5qLmNoYW5uZWxPd25lcik7dGhpcy5qLnZpZGVvcyYmYS5wdXNoKC4uLnRoaXMuai52aWRlb3MpO3RoaXMuai5jb2xsYWJvcmF0b3JDaGFubmVscyYmYS5wdXNoKC4uLnRoaXMuai5jb2xsYWJvcmF0b3JDaGFubmVscyk7dGhpcy5qLmRvd25sb2FkU3RhdGUmJmEucHVzaCh0aGlzLmouZG93bmxvYWRTdGF0ZSk7dGhpcy5qLnJlZnJlc2gmJmEucHVzaCh0aGlzLmoucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibWFpblBsYXlsaXN0RW50aXR5In19LG1haW5QbGF5bGlzdFZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7dGhpcy5qLmNoYW5uZWxDb250cmlidXRvciYmYS5wdXNoKHRoaXMuai5jaGFubmVsQ29udHJpYnV0b3IpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5QbGF5bGlzdFZpZGVvRW50aXR5In19LAptYWluVmlkZW9Eb3dubG9hZFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wbGF5YmFja0RhdGEmJmEucHVzaCh0aGlzLmoucGxheWJhY2tEYXRhKTt0aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzJiZhLnB1c2goLi4udGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5qLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZhLnB1c2godGhpcy5qLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtYWluVmlkZW9Eb3dubG9hZFN0YXRlRW50aXR5In19LG1haW5WaWRlb0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoub3duZXImJmEucHVzaCh0aGlzLmoub3duZXIpO3RoaXMuai5kb3dubG9hZFN0YXRlJiZhLnB1c2godGhpcy5qLmRvd25sb2FkU3RhdGUpO3RoaXMuai51c2VyU3RhdGUmJmEucHVzaCguLi4obmV3IENxYSh0aGlzLmoudXNlclN0YXRlKSkubygpKTsKdGhpcy5qLmFkZGl0aW9uYWxNZXRhZGF0YSYmYS5wdXNoKC4uLihuZXcgQnFhKHRoaXMuai5hZGRpdGlvbmFsTWV0YWRhdGEpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5WaWRlb0VudGl0eSJ9fSxtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eSJ9fSxtYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHkifX0sbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmFsYnVtUmVsZWFzZSYmYS5wdXNoKHRoaXMuai5hbGJ1bVJlbGVhc2UpO3RoaXMuai50cmFja3MmJmEucHVzaCguLi50aGlzLmoudHJhY2tzKTsKcmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWwifX0sbXVzaWNBbGJ1bVJlbGVhc2VEb3dubG9hZE1ldGFkYXRhRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eSJ9fSxtdXNpY0FsYnVtUmVsZWFzZTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5JiZhLnB1c2godGhpcy5qLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSk7dGhpcy5qLnByaW1hcnlBcnRpc3RzJiZhLnB1c2goLi4udGhpcy5qLnByaW1hcnlBcnRpc3RzKTt0aGlzLmouZGV0YWlscyYmYS5wdXNoKHRoaXMuai5kZXRhaWxzKTsKdGhpcy5qLnVzZXJEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJEZXRhaWxzKTt0aGlzLmoudHJhY2tzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrcyk7dGhpcy5qLnNoYXJlJiZhLnB1c2godGhpcy5qLnNoYXJlKTt0aGlzLmouZG93bmxvYWRNZXRhZGF0YSYmYS5wdXNoKHRoaXMuai5kb3dubG9hZE1ldGFkYXRhKTt0aGlzLmoucmVmcmVzaCYmYS5wdXNoKHRoaXMuai5yZWZyZXNoKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdXNpY0FsYnVtUmVsZWFzZSJ9fSxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmFsYnVtUmVsZWFzZSYmYS5wdXNoKHRoaXMuai5hbGJ1bVJlbGVhc2UpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQWxidW1SZWxlYXNlVXNlckRldGFpbCJ9fSxtdXNpY0FydGlzdERldGFpbDpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT0KW107dGhpcy5qLnBhcmVudEFydGlzdCYmYS5wdXNoKHRoaXMuai5wYXJlbnRBcnRpc3QpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQXJ0aXN0RGV0YWlsIn19LG11c2ljQXJ0aXN0OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5kZXRhaWxzJiZhLnB1c2godGhpcy5qLmRldGFpbHMpO3RoaXMuai51c2VyRGV0YWlscyYmYS5wdXNoKHRoaXMuai51c2VyRGV0YWlscyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNBcnRpc3QifX0sbXVzaWNBcnRpc3RVc2VyRGV0YWlsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wYXJlbnRBcnRpc3QmJmEucHVzaCh0aGlzLmoucGFyZW50QXJ0aXN0KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdXNpY0FydGlzdFVzZXJEZXRhaWwifX0sbXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPQpbXTt0aGlzLmouZG93bmxvYWRlZFRyYWNrcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkVHJhY2tzKTt0aGlzLmouc21hcnREb3dubG9hZGVkVHJhY2tzJiZhLnB1c2goLi4udGhpcy5qLnNtYXJ0RG93bmxvYWRlZFRyYWNrcyk7dGhpcy5qLmRvd25sb2FkZWRFcGlzb2RlcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkRXBpc29kZXMpO3RoaXMuai5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5qLnNtYXJ0RG93bmxvYWRlZEFsYnVtUmVsZWFzZXMmJmEucHVzaCguLi50aGlzLmouc21hcnREb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5qLmRvd25sb2FkZWRQbGF5bGlzdHMmJmEucHVzaCguLi50aGlzLmouZG93bmxvYWRlZFBsYXlsaXN0cyk7dGhpcy5qLnNtYXJ0RG93bmxvYWRlZFBsYXlsaXN0cyYmYS5wdXNoKC4uLnRoaXMuai5zbWFydERvd25sb2FkZWRQbGF5bGlzdHMpO3RoaXMuai5tZXRhZGF0YU9ubHlUcmFja3MmJgphLnB1c2goLi4udGhpcy5qLm1ldGFkYXRhT25seVRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5In19LG11c2ljTGlicmFyeUVkaXQ6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNMaWJyYXJ5RWRpdCJ9fSxtdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5In19LG11c2ljUGxheWxpc3Q6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnRyYWNrcyYmYS5wdXNoKC4uLnRoaXMuai50cmFja3MpO3RoaXMuai5yZWZyZXNoJiZhLnB1c2godGhpcy5qLnJlZnJlc2gpO3RoaXMuai5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJmEucHVzaCh0aGlzLmoubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTsKdGhpcy5qLmRldGFpbHMmJmEucHVzaCh0aGlzLmouZGV0YWlscyk7dGhpcy5qLmRvd25sb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5qLnNpZGVsb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouc2lkZWxvYWRNZXRhZGF0YSk7dGhpcy5qLnVzZXJEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJEZXRhaWxzKTt0aGlzLmouZW50cnlDb2xsZWN0aW9uJiZhLnB1c2godGhpcy5qLmVudHJ5Q29sbGVjdGlvbik7dGhpcy5qLnNoYXJlJiZhLnB1c2godGhpcy5qLnNoYXJlKTt0aGlzLmoucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEmJmEucHVzaCguLi4obmV3IERxYSh0aGlzLmoucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljUGxheWxpc3QifX0sbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9CltdO3RoaXMuai50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5In19LG11c2ljU2hhcmU6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNTaGFyZSJ9fSxtdXNpY1RyYWNrRGV0YWlsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wYXJlbnRUcmFjayYmYS5wdXNoKHRoaXMuai5wYXJlbnRUcmFjayk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNUcmFja0RldGFpbCJ9fSxtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoucGxheWJhY2tEYXRhJiZhLnB1c2godGhpcy5qLnBsYXliYWNrRGF0YSk7CnRoaXMuai5sb2NhbEltYWdlRW50aXRpZXMmJmEucHVzaCguLi50aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzKTt0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkmJmEucHVzaCh0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljVHJhY2tEb3dubG9hZE1ldGFkYXRhRW50aXR5In19LG11c2ljVHJhY2s6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSYmYS5wdXNoKHRoaXMuai5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkpO3RoaXMuai5hcnRpc3RzJiZhLnB1c2goLi4udGhpcy5qLmFydGlzdHMpO3RoaXMuai5hdWRpb01vZGVWZXJzaW9uJiZhLnB1c2godGhpcy5qLmF1ZGlvTW9kZVZlcnNpb24pO3RoaXMuai52aWRlb01vZGVWZXJzaW9uJiZhLnB1c2godGhpcy5qLnZpZGVvTW9kZVZlcnNpb24pO3RoaXMuai51c2VyRGV0YWlscyYmCmEucHVzaCh0aGlzLmoudXNlckRldGFpbHMpO3RoaXMuai5kZXRhaWxzJiZhLnB1c2godGhpcy5qLmRldGFpbHMpO3RoaXMuai5hbGJ1bVJlbGVhc2UmJmEucHVzaCh0aGlzLmouYWxidW1SZWxlYXNlKTt0aGlzLmouc2hhcmUmJmEucHVzaCh0aGlzLmouc2hhcmUpO3RoaXMuai5saWJyYXJ5RWRpdCYmYS5wdXNoKHRoaXMuai5saWJyYXJ5RWRpdCk7dGhpcy5qLmRvd25sb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5qLnBsYXliYWNrUG9zaXRpb24mJmEucHVzaCh0aGlzLmoucGxheWJhY2tQb3NpdGlvbik7dGhpcy5qLmx5cmljcyYmYS5wdXNoKHRoaXMuai5seXJpY3MpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljVHJhY2sifX0sbXVzaWNUcmFja1VzZXJEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnBhcmVudFRyYWNrJiZhLnB1c2godGhpcy5qLnBhcmVudFRyYWNrKTsKcmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNUcmFja1VzZXJEZXRhaWwifX0sb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm9mZmxpbmVPcmNoZXN0cmF0aW9uQWN0aW9uV3JhcHBlckVudGl0eSJ9fSxvZmZsaW5lVmlkZW9Qb2xpY3k6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ib2ZmbGluZVZpZGVvUG9saWN5In19LG9mZmxpbmVWaWRlb1N0cmVhbXM6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ib2ZmbGluZVZpZGVvU3RyZWFtcyJ9fSxvZmZsaW5lYWJpbGl0eUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJvZmZsaW5lYWJpbGl0eUVudGl0eSJ9fSxvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9CltdO3RoaXMuai5mYWtlQ2hpbGRyZW4mJmEucHVzaCguLi50aGlzLmouZmFrZUNoaWxkcmVuKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHkifX0scGFnZUhlYWRlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJwYWdlSGVhZGVyRW50aXR5In19LHBhcnR5R2FtZVBhbmVsRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInBhcnR5R2FtZVBhbmVsRW50aXR5In19LHNsaWRlckdhbWVQYW5lbEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzbGlkZXJHYW1lUGFuZWxFbnRpdHkifX0scGRwU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGRwU3RhdGVFbnRpdHkifX0scGlubmVkUHJvZHVjdEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJwaW5uZWRQcm9kdWN0RW50aXR5In19LApwbGF5YmFja0RhdGE6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnRyYW5zZmVyJiZhLnB1c2godGhpcy5qLnRyYW5zZmVyKTt0aGlzLmouYWRzUGxheWJhY2tEYXRhJiZhLnB1c2goLi4udGhpcy5qLmFkc1BsYXliYWNrRGF0YSk7dGhpcy5qLmRybUxpY2Vuc2UmJmEucHVzaCh0aGlzLmouZHJtTGljZW5zZSk7dGhpcy5qLm9mZmxpbmVWaWRlb1BvbGljeSYmYS5wdXNoKHRoaXMuai5vZmZsaW5lVmlkZW9Qb2xpY3kpO3RoaXMuai52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmYS5wdXNoKHRoaXMuai52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGxheWJhY2tEYXRhIn19LHBsYXllclN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInBsYXllclN0YXRlRW50aXR5In19LHBsYXlsaXN0VGh1bWJuYWlsRWRpdHNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eSJ9fSwKcXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJxdWFudGl0eUluY3JlbWVudGVyRW50aXR5In19LHJlZnJlc2g6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icmVmcmVzaCJ9fSxzYXZlVG9QbGF5bGlzdExpc3RFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ic2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5In19LHNlbGVjdGVkQ2hpcEluZGV4RW50aXR5UGF5bG9hZDpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQifX0sc2VsZWN0aW9uVmFsdWVMaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInNlbGVjdGlvblZhbHVlTGlzdEVudGl0eSJ9fSxzZXR0aW5nRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInNldHRpbmdFbnRpdHkifX0sCnN0cmluZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzdHJpbmdFbnRpdHkifX0sc3VnZ2VzdGVkRmVlZGJhY2tDaGlwU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ic3VnZ2VzdGVkRmVlZGJhY2tDaGlwU3RhdGVFbnRpdHkifX0sdHJhbnNmZXI6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLm9mZmxpbmVWaWRlb1N0cmVhbXMmJmEucHVzaCguLi50aGlzLmoub2ZmbGluZVZpZGVvU3RyZWFtcyk7dGhpcy5qLmNhcHRpb25UcmFjayYmYS5wdXNoKC4uLnRoaXMuai5jYXB0aW9uVHJhY2spO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuInRyYW5zZmVyIn19LHRyZW5kaW5nT2ZmZXJFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idHJlbmRpbmdPZmZlckVudGl0eSJ9fSwKdW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHkifX0sdmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkifX0sdmlkZW9PdmVydmlld0FzeW5jRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ2aWRlb092ZXJ2aWV3QXN5bmNEYXRhRW50aXR5In19LHZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkifX0sdm90aW5nRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInZvdGluZ0VudGl0eSJ9fSwKeXRNYWluQ2hhbm5lbEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoudXNlckNoYW5uZWxEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJDaGFubmVsRGV0YWlscyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ieXRNYWluQ2hhbm5lbEVudGl0eSJ9fSx5b3VjaGF0UGVuZGluZ1Jlc3BvbnNlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInlvdWNoYXRQZW5kaW5nUmVzcG9uc2VFbnRpdHkifX0seXRNYWluRG93bmxvYWRlZFZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7dGhpcy5qLnBsYXliYWNrRGF0YSYmYS5wdXNoKHRoaXMuai5wbGF5YmFja0RhdGEpO3RoaXMuai5vZmZsaW5lVmlkZW9Qb2xpY3kmJmEucHVzaCh0aGlzLmoub2ZmbGluZVZpZGVvUG9saWN5KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ5dE1haW5Eb3dubG9hZGVkVmlkZW9FbnRpdHkifX0sCnl0TWFpblZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5jaGFubmVsT3duZXImJmEucHVzaCh0aGlzLmouY2hhbm5lbE93bmVyKTt0aGlzLmoucGxheWJhY2tQb3NpdGlvbiYmYS5wdXNoKHRoaXMuai5wbGF5YmFja1Bvc2l0aW9uKTt0aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzJiZhLnB1c2goLi4udGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5qLmRvd25sb2FkU3RhdHVzJiZhLnB1c2godGhpcy5qLmRvd25sb2FkU3RhdHVzKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ5dE1haW5WaWRlb0VudGl0eSJ9fX07WG5hPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vPWI7dGhpcy52PXt9fX07CkpxYT1jbGFzcyBleHRlbmRzIGpae3YoYSl7cmV0dXJuIGF9byhhKXtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSl0aHJvdyBuZXcgaVgoIldST05HX0RBVEFfVFlQRSIse0lwOjB9KTtyZXR1cm4gYX19O1puYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj17fTt0aGlzLmpbMF09bmV3IEpxYTtpZighXy54KCJhZXNfcGVzX2VuY29kZXJfa2lsbHN3aXRjaCIpKXt2YXIgYT10aGlzLmo7dHJ5e2xldCBkPV8uVmooKTt2YXIgYj1rWChkKTt2YXIgYz1uZXcgSXFhKG5ldyBpWihiKSxuZXcgR3FhKGIpKX1jYXRjaChkKXt0aHJvdyBhPWQgaW5zdGFuY2VvZiBFcnJvcj9uZXcgaVgoIktFWV9DUkVBVElPTl9GQUlMRUQiLHtvcmlnaW5hbE1lc3NhZ2U6ZC5tZXNzYWdlfSk6bmV3IGlYKCJLRVlfQ1JFQVRJT05fRkFJTEVEIiksXy5HcChhKSxhO31hWzFdPWN9fX07CiRuYT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMudG9rZW49YTt0aGlzLmo9Yjt0aGlzLm9ic2VydmVycz1bXTthPW5ldyBfLnUuQnJvYWRjYXN0Q2hhbm5lbChgUEVSU0lTVEVOVF9FTlRJVFlfU1RPUkVfU1lOQzoke18uVmooKX1gKTthLm9ubWVzc2FnZT10aGlzLm8uYmluZCh0aGlzKTt0aGlzLmNoYW5uZWw9YX1vYnNlcnZlKGEpe3RoaXMub2JzZXJ2ZXJzLnB1c2goYSk7cmV0dXJuKCk9Pnt2YXIgYj10aGlzLm9ic2VydmVycy5pbmRleE9mKGEpO2I+PTAmJnRoaXMub2JzZXJ2ZXJzLnNwbGljZShiLDEpfX1vKGEpe3FYKHRoaXMsYS5kYXRhKX1sYSgpe3RoaXMuY2hhbm5lbC5jbG9zZSgpfX07CkxxYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3ZhciBhPUtxYTt0aGlzLm9ic2VydmVycz1bXTt0aGlzLnZhbHVlPWF9c3Vic2NyaWJlKGEpe2lmKGEuZWohPW51bGwpdGhyb3cgRXJyb3IoIkZjIik7YS5laj10aGlzLm9ic2VydmVycy5sZW5ndGg7dGhpcy5vYnNlcnZlcnMucHVzaChhKTt0cnl7YSh0aGlzLnZhbHVlKX1jYXRjaChiKXt9cmV0dXJuKCk9Pnt2YXIgYj10aGlzLm9ic2VydmVyc1t0aGlzLm9ic2VydmVycy5sZW5ndGgtMV07dGhpcy5vYnNlcnZlcnNbYS5lal09YjtiLmVqPWEuZWo7dGhpcy5vYnNlcnZlcnMucG9wKCl9fXVwZGF0ZShhKXt0aGlzLnZhbHVlPWEodGhpcy52YWx1ZSk7dGhpcy5ub3RpZnkoKX1zZXQoYSl7dGhpcy52YWx1ZT1hO3RoaXMubm90aWZ5KCl9bm90aWZ5KCl7Zm9yKGxldCBhIG9mIHRoaXMub2JzZXJ2ZXJzKXRyeXthKHRoaXMudmFsdWUpfWNhdGNoKGIpe319fTsKam9hPXtsYW5kc2NhcGU6IihtYXgtd2lkdGg6IDI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIixwb3J0cmFpdDoiKG1heC13aWR0aDogMjk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSJ9O1hZPXt9O2taPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5jb25zdHJ1Y3Rvcj09PWtaKXRocm93IG5ldyBUeXBlRXJyb3IoInNkIik7fWRpc3Bvc2UoKXt9ZGlzY29ubmVjdCgpe31vYnNlcnZlKGEsYixjKXtyZXR1cm57ZWxlbWVudDphLG9wdGlvbjpjfX1yZigpe319OwpNcWE9Y2xhc3MgZXh0ZW5kcyBrWntjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5pc0Nvbm5lY3RlZD0hMDt0aGlzLnY9ITE7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5CLmJpbmQodGhpcykse3Jvb3RNYXJnaW46Ii0wLjFweCJ9KTt0aGlzLm89bmV3IE1hcDt0aGlzLmo9bmV3IE1hcH1kaXNwb3NlKCl7dGhpcy5kaXNjb25uZWN0KCk7dGhpcy5qLmNsZWFyKCl9ZGlzY29ubmVjdChhPSExKXt0aGlzLmlzQ29ubmVjdGVkPSExO3RoaXMudj1hO3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO2ZvcihsZXQgYiBvZiB0aGlzLm8udmFsdWVzKCkpYi5kaXNjb25uZWN0KCl9QihhKXtmb3IobGV0IGMgb2YgYSl7dmFyIGI9dGhpcy5qLmdldChjLnRhcmdldCk7aWYoIWIpY29udGludWU7YT1jLmlzSW50ZXJzZWN0aW5nO2ZvcihsZXQgW2QsZV1vZiBiKXtiPWQ7bGV0IGY9ZTtiJiYoYi5zdGF0ZT09PSJ2aXNpYmxlIiYmYXx8Yi5zdGF0ZT09PSJoaWRkZW4iJiYKIWEpJiYoZihjLnRhcmdldCxiLnN0YXRlKSxiLlZiJiZ0aGlzLnJmKHtlbGVtZW50OmMudGFyZ2V0LG9wdGlvbjpifSkpfX19RChhKXtmb3IobGV0IGIgb2YgYSlpZigoYT10aGlzLmouZ2V0KGIudGFyZ2V0KSkmJmIuaXNJbnRlcnNlY3RpbmcpZm9yKGxldCBbYyxkXW9mIGEpe2E9YztsZXQgZT1kO2EmJmEuc3RhdGU9PT0icHJlc2NhbiImJihlKGIudGFyZ2V0LGEuc3RhdGUpLGEuVmImJnRoaXMucmYoe2VsZW1lbnQ6Yi50YXJnZXQsb3B0aW9uOmF9KSl9fW9ic2VydmUoYSxiLGMpe3ZhciBkPShkPXRoaXMuai5nZXQoYSkpJiZkLmhhcyhjKT97ZWxlbWVudDphLG9wdGlvbjpjfTp2b2lkIDA7aWYoZClyZXR1cm4gZDtkPXtlbGVtZW50OmEsb3B0aW9uOmN9O3RoaXMuai5oYXMoYSl8fHRoaXMuai5zZXQoYSxuZXcgTWFwKTt2YXIgZT10aGlzLmouZ2V0KGEpO2UmJiFlLmhhcyhjKSYmZS5zZXQoYyxiKTt0aGlzLnZ8fChjLnN0YXRlPT09InByZXNjYW4iJiYoYj0wLGEuaGFzQXR0cmlidXRlKCJwcmVzY2FuLWhlaWdodCIpJiYKKGM9TnVtYmVyKGEuZ2V0QXR0cmlidXRlKCJwcmVzY2FuLWhlaWdodCIpKSxpc05hTihjKXx8KGI9YykpLHRoaXMuby5oYXMoYik/Yj10aGlzLm8uZ2V0KGIpOihjPWAtMC4xcHggLTAuMXB4ICR7Yn1weCAtMC4xcHhgLGM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuRC5iaW5kKHRoaXMpLHtyb290TWFyZ2luOmN9KSx0aGlzLm8uc2V0KGIsYyksYj1jKSxiLm9ic2VydmUoYSkpLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShhKSk7cmV0dXJuIGR9cmYoYSl7dmFyIGI9dGhpcy5qLmdldChhLmVsZW1lbnQpO2lmKGImJmIuaGFzKGEub3B0aW9uKSl7Yi5kZWxldGUoYS5vcHRpb24pO2lmKGEmJmEub3B0aW9uLnN0YXRlPT09InByZXNjYW4iKWZvcihsZXQgYyBvZiB0aGlzLm8udmFsdWVzKCkpYy51bm9ic2VydmUoYS5lbGVtZW50KTtiLnNpemU9PT0wJiYodGhpcy5qLmRlbGV0ZShhLmVsZW1lbnQpLHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKGEuZWxlbWVudCkpfX19OwpxWT1bInlvdXR1YmVfZmlsbCIsInlvdXR1YmVfb3V0bGluZSJdO0FYPXZvaWQgMDt2YXIgTnFhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudmFsdWU9YX1kZXJlZigpe3JldHVybiB0aGlzLnZhbHVlfX0sT3FhPXR5cGVvZiBXZWFrUmVmPT09ImZ1bmN0aW9uIj9XZWFrUmVmOk5xYTt2YXIgRlg9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hO3RoaXMubWFwPW5ldyBXZWFrTWFwfWFkZChhLGIpe3RoaXMubWFwLmhhcyhhKXx8KHRoaXMuaihhKSx0aGlzLm1hcC5zZXQoYSxbXSkpO3RoaXMubWFwLmdldChhKS5wdXNoKG5ldyBPcWEoYikpfWdldChhKXt2YXIgYj10aGlzO3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1iLm1hcC5nZXQoYSk7aWYoYyl7dmFyIGQ9MDtmb3IobGV0IGUgb2YgYyl7bGV0IGY9ZS5kZXJlZigpO2YmJihkKysseWllbGQgZil9aWYoMipkPGMubGVuZ3RoKXtkPTA7Zm9yKGxldCBlIG9mIGMpZS5kZXJlZigpJiYoY1tkKytdPWUpO2MubGVuZ3RoPWR9fX0oKX19KGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixBb2Ese29uY2U6ITB9KX0pLEVYPW5ldyBXZWFrTWFwLERYPUFib3J0Q29udHJvbGxlcixsWj1BYm9ydFNpZ25hbDt0eXBlb2YgbFouYWJvcnQhPT0iZnVuY3Rpb24iJiYobFouYWJvcnQ9eG9hKTsKdHlwZW9mIGxaLnByb3RvdHlwZS50aHJvd0lmQWJvcnRlZCE9PSJmdW5jdGlvbiImJihsWi5wcm90b3R5cGUudGhyb3dJZkFib3J0ZWQ9eW9hKTt0eXBlb2YgbFouYW55IT09ImZ1bmN0aW9uIiYmKGxaLmFueT16b2EpO3R5cGVvZiBsWi50aW1lb3V0IT09ImZ1bmN0aW9uIiYmKGxaLnRpbWVvdXQ9Qm9hKTt2YXIgR1g9IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgiIik7dmFyIFVZPW5ldyBfLkkoImNvcHlMaW5rUmVuZGVyZXIiKTt2YXIgUHFhPW5ldyBfLkkoImF1ZGlvVHJhY2tTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIFFxYT1uZXcgXy5JKCJjYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIFJxYT1uZXcgXy5JKCJzaG93QXVkaW9UcmFja1BpY2tlckFjdGlvbkNvbW1hbmQiKTt2YXIgU3FhPW5ldyBfLkkoInNob3dDYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIE9wYT1uZXcgXy5JKCJwaG9uZURpYWxlckVuZHBvaW50Iik7dmFyIFNwYT1uZXcgXy5JKCJzZW5kU21zRW5kcG9pbnQiKTt2YXIgS3BhPW5ldyBfLkkoImNvcHlUZXh0RW5kcG9pbnQiKTt2YXIgbVo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5uYW1lPWF9byhhPXt9KXtJWCh0aGlzLm5hbWUsIlNVQ0NFU1MiLGEpfWooYT17fSl7SVgodGhpcy5uYW1lLCJGQUlMVVJFIixhKX19LEVvYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9IlNMSV9OQU1FX1lPVVRVQkVfRU1CRURTX1dFQl9GVUxMU0NSRUVOX1JFUVVFU1RfU0xJIjt0aGlzLnNsaUlkPWE7dGhpcy50aW1lb3V0TXM9M0U0O3RoaXMubz0iIjt0aGlzLnY9LTE7dGhpcy5qPSExO3RoaXMuZGltZW5zaW9ucz17fX1nZXRJZCgpe3JldHVybiB0aGlzLnNsaUlkfURyKGE9e30pe3RoaXMuanx8KHRoaXMuaj0hMCx0aGlzLmRpbWVuc2lvbnM9YSx0aGlzLm89Q29hKCksWlcoe2RpbWVuc2lvbnM6dGhpcy5kaW1lbnNpb25zLHJlY29yZHM6W3tuYW1lOnRoaXMubmFtZSxzdGF0ZToiU0xJX1NUQVRFX1NUQVJUIixzbGlJZDp0aGlzLm99XX0pLHRoaXMudGltZW91dE1zPjAmJih0aGlzLnY9c2V0VGltZW91dCgoKT0+Cnt0aGlzLnpnKCJUSU1FT1VUIil9LHRoaXMudGltZW91dE1zKSkpfXpnKGEpe3RoaXMuaiYmKHRoaXMudGltZW91dE1zPjAmJmNsZWFyVGltZW91dCh0aGlzLnYpLHRoaXMuaj0hMSxhPXtkaW1lbnNpb25zOnRoaXMuZGltZW5zaW9ucyxyZWNvcmRzOlt7bmFtZTp0aGlzLm5hbWUsc3RhdHVzOkhYKGEpLHN0YXRlOiJTTElfU1RBVEVfRU5EIixzbGlJZDp0aGlzLm99XX0sXy5FeS5yZWdpc3Rlci5kZWxldGUoYCR7dGhpcy5uYW1lfV8ke3RoaXMuc2xpSWR9YCksWlcoYSkpfX07dmFyIFNYPW5ldyBtWigiU0xJX05BTUVfWU9VVFVCRV9FTUJFRFNfV0VCX1BMQVlFUl9FUlJPUl9TTEkiKSxUWD1uZXcgbVooIlNMSV9OQU1FX1lPVVRVQkVfRU1CRURTX1dFQl9QTEFZRVJfVU5QTEFZQUJMRV9TTEkiKTt2YXIgR29hPVsiY2xpY2tUcmFja2luZ1BhcmFtcyIsImNvbW1hbmRNZXRhZGF0YSIsImxvZ2dpbmdVcmxzIiwiYnVpbGRDb21tYW5kUGF5bG9hZCJdO3ZhciBMWD1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYz0hMSxkPSExLGU9W10pe3ZhciBmPXdYO3RoaXMudj1hO3RoaXMubmF2aWdhdGU9dm9pZCAwO3RoaXMuaj1iO3RoaXMuWT1jO3RoaXMuST1kO3RoaXMuQj1mO3RoaXMuSz1lO3RoaXMuTT1bXTt0aGlzLm89bmV3IFNldDt0aGlzLkQ9ITE7S29hKHRoaXMpfXJlc29sdmVDb21tYW5kKGEsYil7cmV0dXJuIE5YKHRoaXMsYSxiKS5oYW5kbGVkfX07dmFyIG5aPW5ldyBfLlZzKCJFTlRJVFlfU1RBVEVfVE9LRU4iKTt2YXIgb1o9Y2xhc3N7YXN5bmMgcmVzb2x2ZShhLGIpe2F3YWl0IHRoaXMucmVzb2x2ZUNvbW1hbmQoYSxiKX19O3ZhciBwWj1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5zdG9yZT1hfWFzeW5jIHJlc29sdmVDb21tYW5kKGEpe2lmKGE9Xy5CKGEsXy53bmEpPy5lbnRpdHlCYXRjaFVwZGF0ZSlhPXsuLi5hLG11dGF0aW9uczpbLi4uKGEubXV0YXRpb25zfHxbXSldfSxhd2FpdCBkb2EoYSx0aGlzLnN0b3JlKX19O3BaW18uTG5dPVtuWl07dmFyICRZPW5ldyBfLlZzKCJQQU5FTF9MT0FESU5HX1NUUkFURUdZX1RPS0VOIik7dmFyIHFaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuY29udHJvbGxlcj1hO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k9Yn1hc3luYyByZXNvbHZlQ29tbWFuZChhLGIpe3ZhciBjPV8uQihhLF8uTlcpO2lmKGM/LnBhbmVsTG9hZGluZ1N0cmF0ZWd5KXt2YXIgZD1WWCh0aGlzLmNvbnRyb2xsZXIsYj8uZm9ybT8uZWxlbWVudCksZT1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8ucG9zaXRpb24sZj1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8uaG92ZXJDb25maWcsaD1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8uZXhwYW5kVG9GdWxsV2lkdGgsaz1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8ub3BlblRvU2lkZTthd2FpdCB0aGlzLnBhbmVsTG9hZGluZ1N0cmF0ZWd5LmV4ZWN1dGUoe2NvbW1hbmQ6YSxkYXRhOmMucGFuZWxMb2FkaW5nU3RyYXRlZ3ksZ246YXN5bmMgbD0+CntpZihsLnNoZWV0Vmlld01vZGVsKXtpZihmKXt2YXIgbT10aGlzLmNvbnRyb2xsZXI7bS5vPSEhZi5wcmV2ZW50Q2xvc2VXaGlsZUhvdmVyZWQ7bS5oaWRlRGVsYXlNcz1mLmhpZGVEZWxheU1zPz8wO20uc2hvd0RlbGF5TXM9Zi5zaG93RGVsYXlNcz8/MH1hd2FpdCB0aGlzLmNvbnRyb2xsZXIud2coe3ZpZXdNb2RlbDpsLnNoZWV0Vmlld01vZGVsLFVyOmUsZXhwYW5kVG9GdWxsV2lkdGg6aCxvcGVuVG9TaWRlOmt9LGQsYj8uZm9ybT8uZWxlbWVudCl9fSxidjp7bGF5ZXI6MH19KX19fTtxWltfLkxuXT1bXy5jTCwkWV07dmFyIFRxYT1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1hc3luYyByZXNvbHZlQ29tbWFuZChhKXt2YXIgYj1fLkIoYSxQcWEpO2ImJihhPWF3YWl0IF8uTEgoKSkmJmE/LmlzUmVhZHk/LigpJiYoYj1Rb2EoYSxiPy5sYW5ndWFnZUNvZGUpKSYmYS5zZXRBdWRpb1RyYWNrKGIpfX07dmFyIHJaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1hc3luYyByZXNvbHZlQ29tbWFuZChhKXt2YXIgYj1fLkIoYSxRcWEpO2lmKGImJihhPWF3YWl0IF8uTEgoKSkpe3ZhciBjPWI/Lmxhbmd1YWdlQ29kZTtiPWI/LmlzQXV0b1RyYW5zbGF0ZWQ7YS5nZXRWaWRlb0RhdGEmJl8uJE8oYSkubGVuZ3RoJiYoKGM9Um9hKGEsYyxiKSk/YS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLGMpOihhLnNldE9wdGlvbigiY2FwdGlvbnMiLCJzdGlja3lMb2FkaW5nIix7fSksYS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLHt9KSkpO2E9YS5pc1N1YnRpdGxlc09uKCk/Xy5hQSgiQ0FQVElPTl9PTl9UT0FTVCIsdm9pZCAwLCJTdWJ0aXRsZXMvQ0MgdHVybmVkIG9uIik6Xy5hQSgiQ0FQVElPTl9PRkZfVE9BU1QiLHZvaWQgMCwiU3VidGl0bGVzL0NDIHR1cm5lZCBvZmYiKTt0aGlzLmoucmVzb2x2ZUNvbW1hbmQoXy5hUShfLldMKGEpLDVFMykpfX19OwpyWltfLkxuXT1bXy5VRF07dmFyIHNaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1hc3luYyByZXNvbHZlQ29tbWFuZChhLGIpe18uQihhLFJxYSkmJihhPWF3YWl0IF8uTEgoKSkmJihhPVNvYShhKSkmJnRoaXMuai5yZXNvbHZlQ29tbWFuZChhLGIpfX07c1pbXy5Mbl09W18uVURdO3ZhciB0Wj1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9YXN5bmMgcmVzb2x2ZUNvbW1hbmQoYSxiKXtfLkIoYSxTcWEpJiYoYT1hd2FpdCBfLkxIKCkpJiYoKGE9Vm9hKGEpKT90aGlzLmoucmVzb2x2ZUNvbW1hbmQoYSxiKTooYj1fLmFBKCJDTE9TRURfQ0FQVElPTlNfRElTQUJMRUQiLHZvaWQgMCwiTm8gY2FwdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpcyB2aWRlbyIpLHRoaXMuai5yZXNvbHZlQ29tbWFuZChfLmFRKF8uV0woYikpKSkpfX07dFpbXy5Mbl09W18uVURdO3ZhciBzcWE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5zaWduYWw9YTt0aGlzLmo9dGhpcy5vLmJpbmQodGhpcyk7dGhpcy5sb2dnaW5nRW5hYmxlZD0hMDt0aGlzLmlkcz1uZXcgU2V0O2EuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHRoaXMuaik7dGhpcy5qb2JJZD1fLllqKHRoaXMuaiwxRTQpfXd5KGEpe3RoaXMubG9nZ2luZ0VuYWJsZWQmJiF0aGlzLmlkcy5oYXMoYSkmJnRoaXMuaWRzLmFkZChhKX1vKCl7dGhpcy5sb2dnaW5nRW5hYmxlZCYmKHRoaXMubG9nZ2luZ0VuYWJsZWQ9ITEsXy5qZi5BYSh0aGlzLmpvYklkKSx0aGlzLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdGhpcy5qKSxXb2EodGhpcykpfX07dmFyIFJYO3ZhciBVcWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk9tPW5ldyBNYXA7dGhpcy5qPW5ldyBNYXB9T3ooYSxiKXtpZihhKXt0aGlzLk9tLnNldChhLGIpO3ZhciBjPXRoaXMuai5nZXQoYSk7YyYmKGMucmVzb2x2ZShiKSx0aGlzLmouZGVsZXRlKGEpKX19fTt2YXIgYVo9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm89YTt0aGlzLnY9Yn1qKCl7aWYodGhpcy5wYW5lbExvYWRpbmdTdHJhdGVneSYmdGhpcy5wYW5lbExvYWRpbmdTdHJhdGVneS5pbmxpbmVDb250ZW50KXJldHVybiB0aGlzLnBhbmVsTG9hZGluZ1N0cmF0ZWd5LmlubGluZUNvbnRlbnR9YXN5bmMgZXhlY3V0ZShhKXt2YXIgYj1hLlRJLGM9YS5wYXJlbnRWZSxkPWEuYnYsZT1hLmduLGY9YS5jb21tYW5kO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k9YS5kYXRhOyhhPXRoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnNjcmVlblZlP3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnNjcmVlblZlOmIpJiZfLkRPKHRoaXMudixhLGMsZCk7KGM9dGhpcy5qKCkpJiZhd2FpdCBlKGMpO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnJlcXVlc3RUZW1wbGF0ZSYmKGY9YXdhaXQgJG9hKHRoaXMsZikpJiZhd2FpdCBlKGYpfX07YVpbXy5Mbl09W18uSXksXy5PV107dmFyIHBxYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj10aGlzLm89ITE7dGhpcy5zaG93RGVsYXlNcz10aGlzLmhpZGVEZWxheU1zPTA7dGhpcy5EPSExO3RoaXMuST0oKT0+e3RoaXMuaj0hMH07dGhpcy5aPSgpPT57dGhpcy5qPSExfTt0aGlzLlU9KCk9Pnt0aGlzLmo9ITB9O3RoaXMuSz0oKT0+e3RoaXMuaj0hMX19UHooYSxiPSExKXtiP3RoaXMuTT1hOnRoaXMuY29udGFpbmVyPWF9YXN5bmMgd2coYSxiLGM9Yil7V1godGhpcyk7dGhpcy5zaG93RGVsYXlNcz90aGlzLlk9c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgJFgodGhpcyxhLGIsYyl9LHRoaXMuc2hvd0RlbGF5TXMpOmF3YWl0ICRYKHRoaXMsYSxiLGMpfWFzeW5jIEplKCl7V1godGhpcyk7dGhpcy5oaWRlRGVsYXlNcz90aGlzLkI9c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgYVkodGhpcyl9LHRoaXMuaGlkZURlbGF5TXMpOmF3YWl0IGFZKHRoaXMpfWFzeW5jIGRtKCl7cmV0dXJuIFVYKHRoaXMpPy5kbSgpPz8KITF9fTt2YXIgb3BhPVsidG91Y2htb3ZlIiwic2Nyb2xsIl07dmFyIHVaPSExO3ZhciBjWT0hMTt2YXIgbnBhPXtscihhKXthLnBhcmVudElkPT1udWxsJiYodVp8fChiWSgpLHNldEludGVydmFsKGJZLDZFNSksdVo9ITApLGZZKGEsIndlYl90cmFjaW5nX2FjdGlvbiIpKX19O3ZhciBoWSxLcWE9e2lMOl8ueCgid2ViX3RyYWNpbmdfYWxsX2NvbXBvbmVudHMiKSxRdjpfLngoIndlYl90cmFjaW5nX2V4cG9ydF90b19jc2kiKSxIdjpmdW5jdGlvbihhLGIpe2E9Xy5yaihhLGIpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP18uSHcoYSxjPT5TdHJpbmcoY3x8IiIpKTpbU3RyaW5nKGF8fCIiKV19KCJ3ZWJfdHJhY2luZ19lbmFibGVkX3NwYW5zIiksUnY6Xy54KCJ3ZWJfdHJhY2luZ19leHBvcnRfdG9fZGV2dG9vbHMiKSxNcTpfLnNqKCJ0ZWxfbWF4X2JyZWFkY3J1bWJzIiwwKX07aFk9bmV3IExxYTt2YXIga3BhPXtSZW5kZXI6IkNPV19TUEFOX1RZUEVfUkVOREVSIixPbkluaXQ6IkNPV19TUEFOX1RZUEVfT05fSU5JVCIsRWZmZWN0OiJDT1dfU1BBTl9UWVBFX0VGRkVDVCIsQ29tcHV0ZWQ6IkNPV19TUEFOX1RZUEVfQ09NUFVURUQiLFNpZ25hbFVwZGF0ZToiQ09XX1NQQU5fVFlQRV9TSUdOQUxfVVBEQVRFIixSZW5kZXJFZmZlY3Q6IkNPV19TUEFOX1RZUEVfUkVOREVSX0VGRkVDVCIsQ3JlYXRlUmVhY3RpdmVDb21wb25lbnQ6IkNPV19TUEFOX1RZUEVfQ09NUE9ORU5UX1JFTkRFUiJ9O3ZhciBtcGE9Xy54KCJ3ZWJfc2hvcnRzX2VuYWJsZV90cmFjaW5nIik7dmFyIHRwYT1bImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iLCJodHRwczovL3R2LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSJdLHZwYT1fLnNqKCJ3aWxfaWNvbl9tYXhfY29uY3VycmVudF9mZXRjaGVzIixJbmZpbml0eSksWlk9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuRmE9YTt0aGlzLktrPWI7dGhpcy5ZPXt9O3RoaXMuRD17fTt0aGlzLm89e307dGhpcy5JPXRoaXMuY291bnRlcj0wO3RoaXMuQj0hIV8udS5jYWNoZXM7dGhpcy5VPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO3RoaXMuWj12b2lkIDA7dGhpcy52PW51bGw7dGhpcy5NPV8ueCgid2lsX2ljb25fdXNlX21hc2tfcmVuZGVyaW5nIik/MTowO3RoaXMub2E9Xy54KCJ3aWxfaWNvbl9uZXR3b3JrX2ZpcnN0Iik7dGhpcy5NYT1fLngoIndpbF9pY29uX3JlbmRlcl93aGVuX2lkbGUiKTt0aGlzLlFhPSFfLngoIndpbF9pY29uX2xvYWRfaW1tZWRpYXRlbHkiKTsKdGhpcy5LPSExO2E9KCk9Pnt0aGlzLkImJih0aGlzLlU9Xy51LmNhY2hlcy5vcGVuKCJ5dC1pY29ucyIpLnRoZW4oZD0+dGhpcy5aPWQpLmNhdGNoKCgpPT57dGhpcy5CPSExfSkpfTtjPWM/LigpfHx7fTtmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYykpYz1kLGI9Xy5mQyhlKSxqWShiKSx0aGlzLkRbY109Yi5jbG9uZU5vZGUoITApO3RoaXMuSz1xcGEodGhpcyk7dGhpcy5LIGluc3RhbmNlb2YgUHJvbWlzZT90aGlzLksudGhlbihhKTphKCl9aihhKXtyZXR1cm4hIXRoaXMubWYoYSl9YXN5bmMgeWEoYSl7aWYoYS5sZW5ndGgpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKShhPXRoaXMubWYoYykpJiYhdGhpcy5EW2EudXJsXSYmYi5wdXNoKGtZKHRoaXMsYSkudGhlbigoKT0+e30pLmNhdGNoKCgpPT57fSkpO1Byb21pc2UuYWxsKGIpfX1weShhKXt2YXIgYj10aGlzLm1mKGEpO3JldHVybiBiP3RoaXMuTT09PTE/bFkodGhpcyxiLHRoaXMuTSk6KGE9dGhpcy5EW2IudXJsXSk/CihhPWEuY2xvbmVOb2RlKCEwKSxuWSh0aGlzLGEpLGxZKHRoaXMsYix0aGlzLk0sYSkpOmtZKHRoaXMsYikudGhlbihjPT57dmFyIGQ9Yz8wOjE7blkodGhpcyxjKTtyZXR1cm4gbFkodGhpcyxiLGQsYyl9KTooXy5IcChuZXcgXy5YaigiSWNvbiBub3QgZm91bmQiLHtpY29uU2hhcGU6YX0pKSwoKT0+e30pfWFzeW5jIGdhKGEsYil7cmV0dXJuIHBZKHRoaXMsYSkudGhlbihjPT57d3BhKHRoaXMsYSxjLGIpO3JldHVybiBjfSl9YXN5bmMgaGEoYSxiKXtyZXR1cm4gYj9iLm1hdGNoKGEpLnRoZW4oYz0+YyYmYy5vaz9jOlByb21pc2UucmVqZWN0KCkpOlByb21pc2UucmVqZWN0KCl9bWYoYSl7cmV0dXJuIHRoaXMuRmEubWYoYSl9fTtaWVtfLkxuXT1bXy5tTyxfLmxGLF8uSW4oXy5vTyldO3ZhciB5cGE9e0FDQ0VTU19USU1FOiJjbG9jayIsQUNDT1VOVF9CT1g6Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfQ1JFQVRPUiI/InBlcnNvbl9ib3giOiJwZXJzb25fYWNjb3VudCIsQUNDT1VOVF9CT1hfQ0FJUk86InBlcnNvbl9hY2NvdW50X2NhaXJvIixBQ0NPVU5UX0NJUkNMRToicGVyc29uX2NpcmNsZSIsQUNDT1VOVF9DSVJDTEVfQ0FJUk86InBlcnNvbl9jaXJjbGVfY2Fpcm8iLEFDQ09VTlRfTElOS0VEOiJhY2NvdW50X2xpbmtfc3VjY2VzcyIsQUNDT1VOVF9VTkxJTktFRDoiYWNjb3VudF9saW5rIixBRERfRlJJRU5EOiJwZW9wbGUiLEFERF9NT0RFUkFUT1I6InNoaWVsZF9hZGQiLEFERF9UT19MSUJSQVJZOiJib29rbWFyayIsQUREX1RPX1BMQVlMSVNUOiJhZGQiLEFERF9UT19RVUVVRV9UQUlMOiJsaXN0X3F1ZXVlIixBRERfVE9fUkVNT1RFX1FVRVVFOiJsaXN0X211c2ljIixBRERfVE9fV0FUQ0hfTEFURVI6ImNsb2NrIixBRERfVklERU9fTElOSzoiZmlsbV9zdHJpcF9hZGQiLApBTEVSVF9XQVJOX1JFRDoiYWxlcnRfdHJpYW5nbGUiLEFSUk9XX0JBQ0s6ImFycm93X2xlZnQiLEFSUk9XX0RJQUdPTkFMX1VQX1JJR0hUX0ZJTExFRDoiYXJyb3dfZGlhZ29uYWxfdXBfcmlnaHQiLEFSUk9XX0RST1BfRE9XTjoiY2hldnJvbl9kb3duIixBUlJPV19EUk9QX1VQOiJjaGV2cm9uX3VwIixBUlJPV19GT1JXQVJEOiJhcnJvd19yaWdodCIsQVJUSVNUOiJwZXJzb25fbXVzaWMiLEFVRElPVFJBQ0s6ImF1ZGlvIixBVVRPX0FXRVNPTUU6InNwYXJrbGUiLEFWQVRBUl9BTk9OWU1PVVM6InBlcnNvbl9jaXJjbGUiLEFWQVRBUl9MT0dHRURfT1VUOiJwZXJzb25fY2lyY2xlIixCQUNLOiJhcnJvd19sZWZ0IixCQVJfQ0hBUlQ6ImJhcl9ncmFwaCIsQkxPQ0s6InNsYXNoX2NpcmNsZV9sZWZ0IixCTE9DS19VU0VSOiJzbGFzaF9jaXJjbGVfbGVmdCIsQk9PS01BUktfQk9SREVSOiJib29rbWFyayIsQlJFQUtJTkdfTkVXU19BTFRfMToiYXJ0aWNsZV9hbGVydCIsQlJPQURDQVNUX0NBSVJPOiJwb2RjYXN0X2NhaXJvIiwKQlVHX1JFUE9SVDoiYnVnIixDQU1FUkFfQUxUOiJjYW1lcmEiLENBTVBBSUdOOiJtZWdhcGhvbmUiLENBTkNFTDoieF9jaXJjbGUiLENBUFRJT05TOiJjbG9zZWRfY2FwdGlvbiIsQ0FTVF9PVVRMSU5FOiJjaHJvbWVjYXN0IixDSEFOTkVMX05PVElGSUNBVElPTl9QUkVGRVJFTkNFX09GRjoiYmVsbCIsQ0hBTk5FTF9OT1RJRklDQVRJT05fUFJFRkVSRU5DRV9PTjoiYmVsbF9vbiIsQ0hBVDoibWVzc2FnZV9idWJibGVfbGVmdCIsQ0hBVF9CVUJCTEU6Im1lc3NhZ2VfYnViYmxlX2VtcHR5IixDSEFUX1NQQVJLOiJzcGFya19tZXNzYWdlX2J1YmJsZV9sZWZ0IixDSEVDS19CT1hfT1VUTElORV9CTEFOSzoiYm94X2VtcHR5IixDSEVDS19DSVJDTEVfT1VUTElORToiY2hlY2tfY2lyY2xlIixDSEVDS19DSVJDTEVfVEhJQ0s6ImNoZWNrX2NpcmNsZSIsQ0xBUklGWToiYXJ0aWNsZV9jbGFyaWZ5IixDTE9TRURfQ0FQVElPTl9TRUxFQ1RFRDoiY2xvc2VkX2NhcHRpb24iLENMT1NFOiJ4X21hcmsiLApDTE9VRF9VUExPQUQ6ImNsb3VkX2Fycm93X3VwIixDT0xMQVBTRToiY2hldnJvbl91cCIsQ09MTEFQU0VfQ0FJUk86ImNoZXZyb25fdXBfY2Fpcm8iLENPTExFQ1RJT046ImxheWVycyIsQ09MT1JfTEVOUzoicGFsZXR0ZSIsQ09NTUVOVDoibWVzc2FnZV9idWJibGVfcmlnaHQiLENPTlNFTlRfU0hJRUxEOiJwZXJzb25fc2hpZWxkIixDT05URU5UX0NVVDoic2Npc3NvcnMiLENPTlRFTlRfQ1VUX0NBSVJPOiJzY2lzc29yc19jYWlybyIsQ09VUlNFOl8ueCgid2ViX2VuYWJsZV9jb3Vyc2VfaWNvbl91cGRhdGUiKT8iY3JlYXRvcl9hY2FkZW15IjoibGlnaHRidWxiIixDT1VSU0VfQ0FJUk86Xy54KCJ3ZWJfZW5hYmxlX2NvdXJzZV9pY29uX3VwZGF0ZSIpPyJjcmVhdG9yX2FjYWRlbXlfY2Fpcm8iOiJsaWdodGJ1bGJfY2Fpcm8iLENSRUFUSU9OX0xJVkU6InJhZGFyX2xpdmUiLENSRUFUSU9OX1BPU1Q6ImJveF9wZW5jaWwiLENSRUFUSU9OX1VQTE9BRDoibXlfdmlkZW9zIixDUkVBVElPTl9VUExPQURfUkVEOiJ1cGxvYWQiLApDUkVBVE9SX01FVEFEQVRBX01PTkVUSVpBVElPTjoiZG9sbGFyX3NpZ24iLENSRUFUT1JfTUVUQURBVEFfTU9ORVRJWkFUSU9OX09GRjoiZG9sbGFyX3NpZ25fb2ZmIixDUkVBVE9SX1NUVURJTzoieW91dHViZV9zdHVkaW8iLERBU0hCT0FSRDoiZ3JpZF9hc3ltbWV0cmljYWwiLERFTEVURToidHJhc2hfY2FuIixERUxFVEVfU1dFRVA6InRyYXNoX2NhbiIsREVTS1RPUDoibGFwdG9wIixESVNMSUtFOiJ0aHVtYl9kb3duIixESVNMSUtFX1NFTEVDVEVEOiJ0aHVtYl9kb3duIixESVNNSVNTQUw6InhfbWFyayIsRElTTUlTU19RVUVVRToibGlzdF9yZW1vdmUiLERPTkVfQUxMOiJjaGVja19kb3VibGUiLERPV05fQVJST1c6ImFycm93X2Rvd24iLERPX05PVF9ESVNUVVJCOiJzbGFzaF9jaXJjbGVfbGVmdCIsRFJBRlQ6InBhcGVyX2Nvcm5lcl9mb2xkZWQiLERSQUdfSEFORExFOiJiYXJzXzIiLEVESVQ6InBlbmNpbCIsRU1PSkk6ImZhY2VfdmVyeV9oYXBweSIsRU1PSklfRkxBR1M6ImZsYWciLApFTU9KSV9PQkpFQ1RTOiJsaWdodGJ1bGIiLEVNT0pJX1BFT1BMRToiZmFjZV92ZXJ5X2hhcHB5IixFTU9KSV9SRUNFTlQ6ImNsb2NrIixFTVBUWV9IRUFSVDoiaGVhcnQiLEVNUFRZX0xJS0U6InRodW1iX3VwIixFUlJPUl9CTEFDSzoiYWxlcnRfY2lyY2xlIixFUlJPUl9PVVRMSU5FOiJhbGVydF9jaXJjbGUiLEVYSVRfQVBQOiJhcnJvd19pbiIsRVhJVF9UT19BUFA6ImFycm93X2luIixFWFBBTkQ6ImNoZXZyb25fZG93biIsRVhQQU5EX0FMTDoiY2hldnJvbl9leHBhbmQiLEVYUEFORF9DQUlSTzoiY2hldnJvbl9kb3duX2NhaXJvIixFWFBBTkRfTEVTUzoiY2hldnJvbl91cCIsRVhQQU5EX01PUkU6ImNoZXZyb25fZG93biIsRVhQTE9SRToiY29tcGFzcyIsRVhQTE9SRV9ERVNUSU5BVElPTjoiY29tcGFzcyIsRVhURVJOQUxfTElOSzoib3Blbl9uZXciLEZBQl9VUExPQUQ6InVwbG9hZCIsRkFDRV9IQVBQWV9PVVRMSU5FOiJmYWNlX2hhcHB5IixGQUNUX0NIRUNLOiJhcnRpY2xlX2NoZWNrIiwKRkFTSElPTl9MT0dPOiJmYXNoaW9uIixGQVNISU9OX0xPR09fQ0FJUk86ImZhc2hpb25fY2Fpcm8iLEZBVk9SSVRFOiJoZWFydCIsRkVFREJBQ0s6Im1lc3NhZ2VfYnViYmxlX2FsZXJ0IixGRUVEQkFDS19DQUlSTzoibWVzc2FnZV9idWJibGVfYWxlcnRfY2Fpcm8iLEZJTExfQVJST1dfU09MSURfRE9XTl8xNjoiYXJyb3dfc29saWRfZG93biIsRklMTF9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLEZJTExfRE9MTEFSX1NJR05fSEVBUlRfMTI6ImRvbGxhcl9zaWduX2hlYXJ0IixGSUxURVI6Im1lbnVfZmlsdGVyIixGSVJTVF9QQUdFOiJjaGV2cm9uX2ZpcnN0IixGTEFHOiJmbGFnIixGVUxMX0hFQVJUOiJoZWFydCIsR0FNRV9DT05TT0xFX0RQQUQ6ImdhbWVfY29uc29sZV9kcGFkIixHQU1FX0NPTlNPTEVfRkFDRV9CVVRUT05TOiJnYW1lX2NvbnNvbGVfZmFjZV9idXR0b25zIixHQU1JTkdfTE9HTzoiZ2FtaW5nIixHQU1JTkdfTE9HT19DQUlSTzoiZ2FtaW5nX2NhaXJvIiwKR09fVE9fUEFHRToiYXJyb3dfcmlnaHQiLEdST1VQUzoicGVvcGxlX2dyb3VwIixIQVBQWToiZmFjZV9oYXBweSIsSEVBTFRIX0FORF9TQUZFVFk6InNoaWVsZF9wbHVzIixIRUxQOiJxdWVzdGlvbl9jaXJjbGUiLEhFTFBfQ0FJUk86InF1ZXN0aW9uX2NpcmNsZV9jYWlybyIsSEVMUF9PVVRMSU5FOiJxdWVzdGlvbl9jaXJjbGUiLEhJREU6InNsYXNoX2NpcmNsZV9sZWZ0IixJTUFHRToiaW1hZ2UiLElORklOSVRZX0lDT046ImluZmluaXR5IixJTkZPOiJpbmZvX2NpcmNsZSIsSU5GT19PVVRMSU5FOiJpbmZvX2NpcmNsZSIsSU5TRVJUX0NIQVJUOiJiYXJfZ3JhcGhfYm94X3ZlcnRpY2FsIixJTlNFUlRfQ0hBUlRfT1VUTElORUQ6ImJhcl9ncmFwaF9ib3hfdmVydGljYWwiLElOU0VSVF9QSE9UTzoiaW1hZ2UiLEtFRVA6InBpbiIsS0VFUF9PRkY6InBpbl9vZmYiLEtFWUJPQVJEOiJrZXlib2FyZCIsS0VZQk9BUkRfQVJST1dfRE9XTjoiY2hldnJvbl9kb3duIixLRVlCT0FSRF9BUlJPV19VUDoiY2hldnJvbl91cCIsCktJRFNfQkxPQ0s6InNsYXNoX2NpcmNsZV9sZWZ0IixMQU5HVUFHRToiZ2xvYmUiLExBU1RfUEFHRToiY2hldnJvbl9sYXN0IixMQVVOQ0g6Im9wZW5fbmV3IixMRUFSTklORzoibGlnaHRidWxiIixMRUFSTklOR19DQUlSTzoibGlnaHRidWxiX2NhaXJvIixMSUJSQVJZX0FERDp0WSgibGlicmFyeV9hZGQiKSxMSUJSQVJZX09VVExJTkU6ImxpYnJhcnkiLExJQlJBUllfUkVNT1ZFOnRZKCksTElHSFRCVUxCX1NQQVJLX09VVExJTkU6ImxpZ2h0YnVsYl9zcGFyayIsTElLRVNfUExBWUxJU1Q6InRodW1iX3VwIixMSUtFU19QTEFZTElTVF9DQUlSTzoidGh1bWJfdXBfY2Fpcm8iLExJS0U6InRodW1iX3VwIixMSUtFX1NFTEVDVEVEOiJ0aHVtYl91cCIsTElWRToicmFkYXJfbGl2ZSIsTElWRV9DQUlSTzoicmFkYXJfbGl2ZV9jYWlybyIsTElWRV9VTkxJU1RFRDoibGluayIsTE9DQVRJT05fT046ImxvY2F0aW9uX3BvaW50IixMT0NBVElPTl9QSU46ImxvY2F0aW9uX3BvaW50IixMT09QOiJhcnJvd19yZXBlYXQiLApMT09QX0FDVElWRToiYXJyb3dfcmVwZWF0IixMT09QX09ORToiYXJyb3dfcmVwZWF0XzEiLExPT1BfT05FX0FDVElWRToiYXJyb3dfcmVwZWF0XzEiLE1FSDoiZmFjZV9tZWgiLE1FTUJFUlNfT05MWV9NT0RFX09GRjoibWVzc2FnZV9idWJibGVfbGVmdCIsTUVOVToiYmFyc18zIixNRVNTQUdFOiJtZXNzYWdlX2J1YmJsZV9sZWZ0IixNSUNST1BIT05FX09OOiJtaWMiLE1JWDoieW91dHViZV9taXgiLE1PTkVUSVpBVElPTl9PTjoiZG9sbGFyX3NpZ25fY2lyY2xlIixNT05FWV9GSUxMOiJkb2xsYXJfc2lnbl9jb250YWluZXIiLE1PTkVZX0ZJTExfSlBZOiJ5ZW5fc2lnbl9jb250YWluZXIiLE1PTkVZX0hFQVJUOiJkb2xsYXJfc2lnbl9oZWFydCIsTU9SRV9IT1JJWjoib3ZlcmZsb3dfaG9yaXpvbnRhbCIsTU9SRV9WRVJUOiJvdmVyZmxvd192ZXJ0aWNhbCIsTVVTSUM6ImF1ZGlvIixNVVNJQ19DQUlSTzoiYXVkaW9fY2Fpcm8iLE1VU0lDX05PVEVfU1lNQk9MOiJtdXNpYyIsTVVTSUNfU0hVRkZMRToiYXJyb3dfc2h1ZmZsZSIsCk1ZX0NIQU5ORUw6InBlcnNvbl9jaXJjbGUiLE1ZX0xPQ0FUSU9OOiJsb2NhdGlvbl9wb2ludCIsTkVXU19TVE9SWToibmV3cyIsTkVYVDoiY2hldnJvbl9yaWdodCIsTk9USUZJQ0FUSU9OUzoiYmVsbCIsTk9USUZJQ0FUSU9OU19BQ1RJVkU6ImJlbGxfb24iLE5PVElGSUNBVElPTlNfQ0FJUk86ImJlbGxfY2Fpcm8iLE5PVElGSUNBVElPTlNfRE9ORV9DSEVDS01BUks6ImNoZWNrIixOT1RJRklDQVRJT05TX0lOQk9YOiJiZWxsIixOT1RJRklDQVRJT05TX05PTkU6ImJlbGwiLE5PVElGSUNBVElPTlNfT0ZGOiJiZWxsX29mZiIsTk9UX0lOVEVSRVNURUQ6InNsYXNoX2NpcmNsZV9sZWZ0IixPRkZJQ0lBTF9BUlRJU1RfQkFER0U6ImF1ZGlvIixPRkZMSU5FX0NMT1VEOiJjbG91ZF9vZmYiLE9GRkxJTkVfRE9XTkxPQUQ6ImRvd25sb2FkIixPRkZMSU5FX0RPV05MT0FEX0NBSVJPOiJkb3dubG9hZF9jYWlybyIsT0ZGTElORV9QQVVTRToicGF1c2UiLE9QRU5fSU5fTkVXOiJvcGVuX25ldyIsCk9VVExJTkVfQURKVVNUOiJhZGp1c3QiLE9VVExJTkVfQVJST1dfU09MSURfRE9XTl8xNjoiYXJyb3dfc29saWRfZG93biIsT1VUTElORV9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLE9VVExJTkVfQkFHOiJiYWciLE9VVExJTkVfQ0xPQ0tfSEFMRl9DSVJDTEU6ImNsb2NrX2hhbGZfY2lyY2xlIixPVVRMSU5FX01PQklMRV9ET1dOTE9BRDoibW9iaWxlX2Rvd25sb2FkIixPVVRMSU5FX09WRVJGTE9XX0hPUklaT05UQUxfMzI6Im92ZXJmbG93X2hvcml6b250YWwiLE9VVExJTkVfT1ZFUkZMT1dfVkVSVElDQUw6Im92ZXJmbG93X3ZlcnRpY2FsIixPVVRMSU5FX1lPVVRVQkVfSU1QUk9WRV9UVjoieW91dHViZV9pbXByb3ZlX3R2IixQQUlEOiJkb2xsYXJfc2lnbiIsUEFVU0VfT1VUTElORUQ6InBhdXNlIixQQVlNRU5UOiJjcmVkaXRfY2FyZCIsUEVSU09OX1JBREFSX0ZJTExFRDoicGVyc29uX3JhZGFyIixQSE9ORV9ET1dOTE9BRDoibW9iaWxlX2Rvd25sb2FkIixQTEFZQUJMRVNfTE9HTzoidGljX3RhY190b2UiLApQTEFZQUJMRVNfTE9HT19DQUlSTzoidGljX3RhY190b2VfY2Fpcm8iLFBMQVlMSVNUUzoibGlzdF9wbGF5X2Fycm93IixQTEFZTElTVFNfQ0FJUk86Imxpc3RfcGxheV9hcnJvd19jYWlybyIsUExBWUxJU1RfQUREOnRZKCJsaXN0X2FkZCIpLFBMQVlMSVNUX0FERF9DSEVDSzp0WSgibGlzdF9jaGVjayIpLFBMQVlMSVNUX1BMQVk6Imxpc3RfcGxheV9hcnJvdyIsUExBWV9BTEw6InBsYXlfYXJyb3ciLFBMQVlfQ0lSQ0xFOiJwbGF5X2Fycm93X2NpcmNsZSIsUExBWV9PVVRMSU5FRDoicGxheV9hcnJvd19jaXJjbGUiLFBSSVZBQ1lfSU5GTzoic2hpZWxkIixQUklWQUNZX1BSSVZBVEU6ImxvY2siLFBSSVZBQ1lfUFVCTElDOiJlYXJ0aCIsUFJJVkFDWV9VTkxJU1RFRDoibGluayIsUFJPTU9URToibWVnYXBob25lIixQVVJDSEFTRVM6InByaWNlX3RhZyIsUFVSQ0hBU0VfU1VQRVJfQ0hBVDoic3VwZXJfY2hhdCIsUFVSQ0hBU0VfU1VQRVJfU1RJQ0tFUjoic3VwZXJfc3RpY2tlciIsUVVFU1RJT05fQU5TV0VSOiJtZXNzYWdlX2J1YmJsZV9xdWVzdGlvbiIsClFVRVVFX1BMQVlfTEFTVDoibGlzdF9xdWV1ZV9sYXN0IixRVUVVRV9QTEFZX05FWFQ6Imxpc3RfcGxheV9hcnJvdyIsUkVNSVhfRklMTEVEOiJ5b3V0dWJlX3Nob3J0c19yZW1peCIsUkVNT1ZFOiJiYXJfY2lyY2xlIixSRU1PVkVfQ0lSQ0xFOiJiYXJfY2lyY2xlIixSRU1PVkVfQ0lSQ0xFX09VVExJTkU6ImJhcl9jaXJjbGUiLFJFTU9WRV9ET05FOiJjaGVja19kb3VibGVfb2ZmIixSRU1PVkVfRlJPTV9ISVNUT1JZOiJiYXJfY2lyY2xlIixSRU1PVkVfRlJPTV9QTEFZTElTVDoiYmFyX2NpcmNsZSIsUkVNT1ZFX01PREVSQVRPUjoic2hpZWxkX29mZiIsUkVQTEFZOiJhcnJvd19jaXJjbGUiLFJFUExBWV8xMDoic2tpcF9iYWNrXzEwIixSRVBPUlRfUFJPQkxFTToiYWxlcnRfdHJpYW5nbGUiLFNBRDoiZmFjZV9zYWQiLFNBVkVfUExBWUxJU1Q6ImJvb2ttYXJrIixTQ0hFRFVMRToiY2xvY2siLFNDSE9PTDoiY3JlYXRvcl9hY2FkZW15IixTQ1JFRU5fRlVMTFNDUkVFTjoic2NyZWVuX2Z1bGwiLApTRUFSQ0hfSElTVE9SWToiYXJyb3dfdGltZSIsU0VMTDoicHJpY2VfdGFnIixTRVRUSU5HUzoiZ2VhciIsU0VUVElOR1NfQ0FJUk86ImdlYXJfY2Fpcm8iLFNFVFRJTkdTX0xJR0hUOiJnZWFyIixTRVRUSU5HU19NQVRFUklBTDoiZ2VhciIsU0hBUkVfQVJST1c6InNoYXJlIixTSElFTERfV0lUSF9BVkFUQVI6InBlcnNvbl9zaGllbGQiLFNIT1BQSU5HX0JBRzoiYmFnIixTSE9QUElOR19CQUdfQ0FJUk86ImJhZ19jYWlybyIsU0hPUFBJTkdfQ0FSVDoiY2FydCIsU0hPUlRTX0NPTU1FTlQ6InlvdXR1YmVfc2hvcnRzX21lc3NhZ2VfYnViYmxlX3JpZ2h0IixTSE9SVFNfRElTTElLRToieW91dHViZV9zaG9ydHNfdGh1bWJfZG93biIsU0hPUlRTX0xJS0U6InlvdXR1YmVfc2hvcnRzX3RodW1iX3VwIixTSE9SVFNfU0hBUkU6InlvdXR1YmVfc2hvcnRzX3NoYXJlIixTSFVGRkxFOiJhcnJvd19zaHVmZmxlIixTTE9XX01PREVfT0ZGOiJtZXNzYWdlX2J1YmJsZV9sZWZ0IixTT0NJQUw6InBlb3BsZSIsClNPUlQ6Im1lbnVfc29ydCIsU1BBUktfTElHSFRCVUxCX09VVExJTkU6InNwYXJrX2xpZ2h0YnVsYiIsU1BFRURfMVg6IjF4IixTUEVFRF8xX1BPSU5UXzJYOiIxX3BvaW50XzJ4IixTUEVFRF8xX1BPSU5UXzVYOiIxX3BvaW50XzV4IixTUEVFRF8xX1BPSU5UXzhYOiIxX3BvaW50Xzh4IixTUEVFRF8yWDoiMngiLFNQRUVEX1BPSU5UXzJYOiJwb2ludF8yeCIsU1BFRURfUE9JTlRfOFg6InBvaW50Xzh4IixTUE9OU09SU0hJUF9TVEFSOiJzdGFyX2NpcmNsZSIsU1RBRkZfUElDSzoic3BvdGxpZ2h0IixTVEFSVF9EVlI6ImFkZCIsU1RBUl9CT1JERVI6InN0YXIiLFNUQVJfQ0lSQ0xFX1JJQkJPTl9PVVRMSU5FOiJzdGFyX2NpcmNsZV9yaWJib24iLFNUSUNLRVJfRU1PVElDT046ImZhY2VfaGFwcHkiLFNUT1BfRFZSOiJzdG9wIixTVUJTQ1JJQkU6InlvdXR1YmVfbG9nb19pY29uIixTVUJTQ1JJQkVfUExVUzoiYWRkX2NhaXJvIixTVUJTQ1JJUFRJT05fTUFOQUdFUjoiZ2VhciIsU1VQRVJWSVNPUl9BQ0NPVU5UOiJwZW9wbGUiLApTVVBFUl9DSEFUX0ZPUl9HT09EOiJoYW5kc19oZWFydCIsU1dBUF9IT1JJWjoiYXJyb3dfc3dhcF9ob3Jpem9udGFsIixTV0lUQ0hfQUNDT1VOVFM6InBlcnNvbl9hY2NvdW50IixUQUJfQUNDT1VOVDoicGVyc29uIixUQUJfQUNUSVZJVFk6ImJlbGwiLFRBQl9CT09LTUFSSzoiYm9va21hcmsiLFRBQl9FWFBMT1JFOiJjb21wYXNzIixUQUJfSE9NRToiaG9tZSIsVEFCX0hPTUVfQ0FJUk86ImhvbWVfY2Fpcm8iLFRBQl9JTkJPWDoibWFpbCIsVEFCX0xJS0VEOiJ0aHVtYl91cCIsVEFCX01VU0lDX1BSRU1JVU06InlvdXR1YmVfbXVzaWMiLFRBQl9TSE9SVFM6InlvdXR1YmVfc2hvcnRzIixUQUJfU0hPUlRTX0NBSVJPOiJ5b3V0dWJlX3Nob3J0c19jYWlybyIsVEFCX1NVQlNDUklQVElPTlM6InN1YnNjcmlwdGlvbnMiLFRBQl9TVUJTQ1JJUFRJT05TX0NBSVJPOiJzdWJzY3JpcHRpb25zX2NhaXJvIixUQUJfVFJFTkRJTkc6ImZpcmUiLFRJTUVSOiJzdG9wd2F0Y2giLFRSQUlMRVI6InlvdXR1YmVfb3JpZ2luYWxzIiwKVFJFTkRJTkc6ImZpcmUiLFRSRU5ESU5HX0NBSVJPOiJmaXJlX2NhaXJvIixUUkVORElOR19ET1dOOiJyYXRpbmdfZG93biIsVFJFTkRJTkdfVVA6InJhdGluZ191cCIsVFJPUEhZOiJ0cm9waHkiLFRST1BIWV9DRUxFQlJBVElPTlM6ImZpcmV3b3JrcyIsVFVORToiYWRqdXN0IixVTkJMT0NLX1VTRVI6ImJhcl9jaXJjbGUiLFVOTElNSVRFRDoieW91dHViZV9sb2dvX2ljb24iLFVOUExVR0dFRF9MSVZFX0dVSURFOiJyYWRhcl9saXZlIixVTlBMVUdHRURfU1BPUlRTOiJleWVfb2ZmIixVUExPQURTOiJsaWJyYXJ5IixVUF9BUlJPVzoiYXJyb3dfdXAiLFZFUlRJQ0FMX0FMSUdOX0JPVFRPTToiZG93bmxvYWQiLFZFUllfSEFQUFk6ImZhY2VfdmVyeV9oYXBweSIsVkVSWV9TQUQ6ImZhY2VfdmVyeV9zYWQiLFZJREVPR0FNRV9BU1NFVDoiZ2FtaW5nIixWSURFT1M6InBsYXlfYXJyb3dfY2lyY2xlIixWSURFT19DQUxMOiJ2aWRlb19jYW1lcmFfYWRkIixWSURFT19MSUJSQVJZX1dISVRFOiJsaWJyYXJ5IiwKVklERU9fWU9VVFVCRToieW91dHViZV9sb2dvX2ljb24iLFZJRVdfTElTVDoibGlzdF92aWV3IixWSUVXX0xJU1RfQ0FJUk86Imxpc3Rfdmlld19jYWlybyIsVklTSUJJTElUWToiZXllIixWSVNJQklMSVRZX09GRjoiZXllX29mZiIsVk9MVU1FX01VVEU6InZvbHVtZV9vZmYiLFZPTFVNRV9VUDoidm9sdW1lX29uIixXQUxMUEFQRVI6ImltYWdlIixXQVJOSU5HOiJhbGVydF90cmlhbmdsZSIsV0FUQ0hfSElTVE9SWToiYXJyb3dfdGltZSIsV0FUQ0hfSElTVE9SWV9DQUlSTzoiYXJyb3dfdGltZV9jYWlybyIsV0FUQ0hfTEFURVI6ImNsb2NrIixXQVRDSF9MQVRFUl9DQUlSTzoiY2xvY2tfY2Fpcm8iLFdBVENIX1JFTEFURURfTUlYOiJ5b3V0dWJlX21peCIsV0hBVF9UT19XQVRDSDoiaG9tZSIsWU9VVFVCRV9DUkVBVEVfUkVEX0xPR086InlvdXR1YmVfY3JlYXRlX2xvZ28iLFlPVVRVQkVfTVVTSUNfTU9OT0NIUk9NRToieW91dHViZV9tdXNpYyIsWU9VVFVCRV9NVVNJQ19NT05PQ0hST01FX0NBSVJPOiJ5b3V0dWJlX211c2ljX2NhaXJvIiwKWU9VVFVCRV9TSE9SVFNfRklMTF9OT19UUklBTkdMRV9SRURfMTY6InlvdXR1YmVfc2hvcnRzX25vX3RyaWFuZ2xlIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1dISVRFXzE2OiJ5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZSIsWU9VVFVCRV9TSE9SVFNfT1VUTElORV8yNDoieW91dHViZV9zaG9ydHMiLFlUX09VVExJTkVfTVVTSUNfMjQ6Im11c2ljIn07dmFyIHhwYT17QUNDRVNTX1RJTUU6ImNsb2NrIixBQ0NPVU5UX0JPWDoicGVyc29uX3NxdWFyZSIsQUNDT1VOVF9CT1hfQ0FJUk86InBlcnNvbl9zcXVhcmUiLEFDQ09VTlRfQ0lSQ0xFOiJwZXJzb25fY2lyY2xlIixBQ0NPVU5UX0NJUkNMRV9DQUlSTzoicGVyc29uX2NpcmNsZSIsQUNDT1VOVF9MSU5LRUQ6ImFjY291bnRfbGluayIsQUNDT1VOVF9VTkxJTktFRDoiYWNjb3VudF9saW5rIixBRERfQ0lSQ0xFOiJhZGRfY2lyY2xlIixBRERfQ0lSQ0xFX09VVExJTkU6ImFkZF9jaXJjbGUiLEFERF9GUklFTkQ6InBlcnNvbl9jaGlsZCIsQUREX01PREVSQVRPUjoic2hpZWxkX2FkZCIsQUREX1RPX0xJQlJBUlk6ImJvb2ttYXJrIixBRERfVE9fUExBWUxJU1Q6ImFkZCIsQUREX1RPX1FVRVVFX1RBSUw6InF1ZXVlIixBRERfVE9fUkVNT1RFX1FVRVVFOiJwbGF5bGlzdF9hdWRpbyIsQUREX1RPX1dBVENIX0xBVEVSOiJjbG9jayIsQUREX1ZJREVPX0xJTks6ImZpbG1fc3RyaXBfYWRkIixBRE1JTl9QQU5FTF9TRVRUSU5HUzoicGVyc29uX2dlYXIiLApBTEVSVF9XQVJOX1JFRDoiYWxlcnRfdHJpYW5nbGUiLEFMSUdOX0xFRlQ6InRleHRfYWxpZ25fbGVmdCIsQVJST1dTX0FMRVJUOiJhcnJvd19zcGxpdF9hbGVydCIsQVJST1dfQkFDSzoiYXJyb3dfbGVmdCIsQVJST1dfQ0lSQ0xFOiJhcnJvd19jb3VudGVyY2xvY2t3aXNlIixBUlJPV19DSVJDTEVfUExBWToicmVwbGF5IixBUlJPV19DSVJDTEVfUklHSFQ6ImFycm93X2Nsb2Nrd2lzZSIsQVJST1dfRElBR09OQUw6ImFycm93X3VwX2xlZnQiLEFSUk9XX0RJQUdPTkFMX1VQX1JJR0hUOiJhcnJvd191cF9yaWdodCIsQVJST1dfRFJPUF9ET1dOOiJ0cmlhbmdsZV9kb3duIixBUlJPV19EUk9QX1VQOiJ0cmlhbmdsZV91cCIsQVJST1dfRk9SV0FSRDoiYXJyb3dfcmlnaHQiLEFSUk9XX1BBVVNFOiJwYXVzZV9oaXN0b3J5IixBUlJPV19VTkRPOiJ1bmRvIixBUlRJQ0xFOiJ0ZXh0X3BhZ2UiLEFSVElDTEVfQUxFUlQ6InRleHRfcGFnZV9hbGVydCIsQVJUSUNMRV9DSEVDSzoidGV4dF9wYWdlX2NoZWNrIiwKQVJUSUNMRV9DTEFSSUZZOiJ0ZXh0X3BhZ2VfaW5mbyIsQVJUSVNUOiJwZXJzb25fYXVkaW8iLEFVRElPVFJBQ0s6ImF1ZGlvIixBVURJT19CQURHRToiYXVkaW9fYmFkZ2UiLEFVRElPX1NVUlJPVU5EOiJzdXJyb3VuZF9zb3VuZCIsQVVUT19BV0VTT01FOiJzcGFya2xlcyIsQVZBVEFSX0FOT05ZTU9VUzoicGVyc29uX2NpcmNsZSIsQVZBVEFSX0xPR0dFRF9PVVQ6InBlcnNvbl9jaXJjbGUiLEJBQ0s6ImFycm93X2xlZnQiLEJBUl9DSEFSVDoiY2hhcnRfYmFyIixCQVJfQ0lSQ0xFOiJtaW51c19jaXJjbGUiLEJBUl9IT1JJWk9OVEFMOiJtaW51cyIsQkxPQ0s6ImNpcmNsZV9zbGFzaCIsQkxPQ0tfVVNFUjoiY2lyY2xlX3NsYXNoIixCT09LTUFSS19CT1JERVI6ImJvb2ttYXJrIixCT1hfT1BFTl9DSEVDSzoicXVpeiIsQk9YX1BFTkNJTDoic3F1YXJlX3BlbmNpbCIsQk9YX1NUQUNLXzM6InNxdWFyZTNfc3RhY2siLEJSRUFLSU5HX05FV1NfQUxUXzE6InRleHRfcGFnZV9hbGVydCIsCkJST0FEQ0FTVDoicG9kY2FzdCIsQlJPQURDQVNUX0NBSVJPOiJwb2RjYXN0IixCVUdfUkVQT1JUOiJidWciLENBTUVSQV9BTFQ6ImNhbWVyYSIsQ0FNUEFJR046Im1lZ2FwaG9uZSIsQ0FOQ0VMOiJ4X2NpcmNsZSIsQ0FQVElPTlM6ImNsb3NlZF9jYXB0aW9ucyIsQ0FTVF9JQ09OOiJjaHJvbWVjYXN0IixDQVNUX09VVExJTkU6ImNocm9tZWNhc3QiLENIQU5ORUxfTk9USUZJQ0FUSU9OX1BSRUZFUkVOQ0VfT0ZGOiJiZWxsIixDSEFOTkVMX05PVElGSUNBVElPTl9QUkVGRVJFTkNFX09OOiJiZWxsX3dhdmVzIixDSEFUOiJ0ZXh0X2J1YmJsZSIsQ0hBVF9CVUJCTEU6ImJ1YmJsZSIsQ0hFQ0tfQk9YOiJjaGVja19zcXVhcmUiLENIRUNLX0JPWF9PVVRMSU5FX0JMQU5LOiJzcXVhcmUiLENIRUNLX0NJUkNMRV9GSUxMRUQ6ImNoZWNrX2NpcmNsZSIsQ0hFQ0tfQ0lSQ0xFX09VVExJTkU6ImNoZWNrX2NpcmNsZSIsQ0hFQ0tfQ0lSQ0xFX1RISUNLOiJjaGVja19jaXJjbGUiLENIRUNLX0RPVUJMRToiY2hlY2tfZG9uZSIsCkNIRUNLX0RPVUJMRV9PRkY6ImNoZWNrX2RvbmVfc2xhc2giLENIRVZST05fTEVGVDoiY2hldnJvbl9sZWZ0IixDSEVWUk9OX1JJR0hUOiJjaGV2cm9uX3JpZ2h0IixDSEVWUk9OX1JJR0hUX0NBSVJPOiJjaGV2cm9uX3JpZ2h0IixDSVJDTEVTX09WRVJMQVA6ImFjY291bnRfbGluayIsQ0xBUFBFUkJPQVJEX0NBSVJPOiJjbGFwcGVyYm9hcmQiLENMQVJJRlk6InRleHRfcGFnZV9pbmZvIixDTE9DS19BUlJPV1M6ImNsb2NrX3NwbGl0IixDTE9DS19BUlJPV1NfQUxFUlQ6ImNsb2NrX3NwbGl0X2FsZXJ0IixDTE9TRURfQ0FQVElPTjoiY2xvc2VkX2NhcHRpb25zIixDTE9TRURfQ0FQVElPTl9TRUxFQ1RFRDoiY2xvc2VkX2NhcHRpb25zIixDTE9TRToieCIsQ0xPVURfVVBMT0FEOiJjbG91ZF9hcnJvd191cCIsQ09MTEFQU0U6ImNoZXZyb25fdXAiLENPTExBUFNFX0NBSVJPOiJjaGV2cm9uX3VwIixDT0xMRUNUSU9OOiJzcXVhcmUzZF9zdGFjayIsQ09MT1JfTEVOUzoicGFpbnRfcGFsZXR0ZSIsCkNPTU1FTlQ6InRleHRfYnViYmxlIixDT05TRU5UX1NISUVMRDoicGVyc29uX3NoaWVsZCIsQ09OVEVOVF9DVVQ6InNjaXNzb3JzIixDT05URU5UX0NVVF9DQUlSTzoic2Npc3NvcnMiLENPVVJTRToiZ3JhZHVhdGlvbl9jYXAiLENPVVJTRV9DQUlSTzoiZ3JhZHVhdGlvbl9jYXAiLENSRUFUSU9OX0xJVkU6ImxpdmUiLENSRUFUSU9OX1BPU1Q6InNxdWFyZV9wZW5jaWwiLENSRUFUSU9OX1VQTE9BRDoidmlkZW8iLENSRUFUSU9OX1VQTE9BRF9SRUQ6InVwbG9hZCIsQ1JFQVRPUl9BQ0FERU1ZOiJncmFkdWF0aW9uX2NhcCIsQ1JFQVRPUl9NRVRBREFUQV9NT05FVElaQVRJT046ImRvbGxhcl9zaWduX2NpcmNsZSIsQ1JFQVRPUl9NRVRBREFUQV9NT05FVElaQVRJT05fT0ZGOiJkb2xsYXJfc2lnbl9jaXJjbGVfc2xhc2giLENSRUFUT1JfU1RVRElPOiJ5b3V0dWJlX3N0dWRpbyIsREFSS19USEVNRToidGhlbWUiLERFTEVURToidHJhc2hfY2FuIixERUxFVEVfU1dFRVA6InRyYXNoX2NhbiIsCkRFU0tUT1A6ImxhcHRvcCIsRElTTElLRToidGh1bWJfZG93biIsRElTTElLRV9TRUxFQ1RFRDoidGh1bWJfZG93biIsRElTTUlTU0FMOiJ4IixESVNNSVNTX1FVRVVFOiJwbGF5bGlzdF94IixET0dGT09EOiJwYXdwcmludCIsRE9MTEFSX1NJR046ImRvbGxhcl9zaWduX2NpcmNsZSIsRE9MTEFSX1NJR05fQ0lSQ0xFOiJkb2xsYXJfc2lnbl9jaXJjbGUiLERPTExBUl9TSUdOX0NPTlRBSU5FUjoiZG9sbGFyX3NpZ25fcmVjdGFuZ2xlIixET1dOX0FSUk9XOiJhcnJvd19kb3duIixET19OT1RfRElTVFVSQjoiY2lyY2xlX3NsYXNoIixEUkFGVDoiZG9jdW1lbnQiLERSQUdfSEFORExFOiJlcXVhbCIsRUFSVEg6Imdsb2JlIixFRElUOiJwZW5jaWwiLEVNT0pJOiJmYWNlX3ZlcnlfaGFwcHkiLEVNT0pJX0ZMQUdTOiJmbGFnIixFTU9KSV9PQkpFQ1RTOiJsaWdodGJ1bGIiLEVNT0pJX1BFT1BMRToiZmFjZV92ZXJ5X2hhcHB5IixFTU9KSV9SRUNFTlQ6ImNsb2NrIixFTVBUWV9IRUFSVDoiaGVhcnQiLApFTVBUWV9MSUtFOiJ0aHVtYl91cCIsRVJST1JfQkxBQ0s6ImFsZXJ0X2NpcmNsZSIsRVJST1JfT1VUTElORToiYWxlcnRfY2lyY2xlIixFUlJPUl9XSElURToiYWxlcnRfY2lyY2xlIixFWElUX0FQUDoiYXJyb3dfaW4iLEVYSVRfVE9fQVBQOiJhcnJvd19pbiIsRVhQQU5EOiJjaGV2cm9uX2Rvd24iLEVYUEFORF9BTEw6ImNoZXZyb25fZXhwYW5kIixFWFBBTkRfQ0FJUk86ImNoZXZyb25fZG93biIsRVhQQU5EX0xFU1M6ImNoZXZyb25fdXAiLEVYUEFORF9NT1JFOiJjaGV2cm9uX2Rvd24iLEVYUExPUkU6ImNvbXBhc3MiLEVYUExPUkVfREVTVElOQVRJT046ImNvbXBhc3MiLEVYVEVSTkFMX0xJTks6ImFycm93X3VwX3JpZ2h0IixFWUVfT0ZGOiJleWVfc2xhc2giLEZBQl9VUExPQUQ6InVwbG9hZCIsRkFDRV9IQVBQWV9PVVRMSU5FOiJmYWNlX2hhcHB5IixGQUNFX01FSDoiZmFjZV9uZXV0cmFsIixGQUNUX0NIRUNLOiJ0ZXh0X3BhZ2VfY2hlY2siLEZBU0hJT05fTE9HTzoiZmFzaGlvbiIsCkZBU0hJT05fTE9HT19DQUlSTzoiZmFzaGlvbiIsRkFWT1JJVEU6InRodW1iX3VwIixGRUVEQkFDSzoiYWxlcnRfYnViYmxlIixGRUVEQkFDS19DQUlSTzoiYWxlcnRfYnViYmxlIixGSUxMX0FSUk9XX1NPTElEX0RPV05fMTY6ImFycm93X3NvbGlkX2Rvd24iLEZJTExfQVJST1dfU09MSURfVVBfMTY6ImFycm93X3NvbGlkX3VwIixGSUxMX0RPTExBUl9TSUdOX0hFQVJUXzEyOiJkb2xsYXJfc2lnbl9oZWFydCIsRklSU1RfUEFHRToiY2hldnJvbl9sZWZ0X2VuZCIsRkxBR19DQUlSTzoiZmxhZyIsRkxBU0hfT0ZGOiJmbGFzaF9zbGFzaCIsRkxBU0hfT046ImZsYXNoIixGVUxMX0hFQVJUOiJoZWFydCIsR0FNSU5HX0xPR086ImdhbWluZyIsR0FNSU5HX0xPR09fQ0FJUk86ImdhbWluZyIsR09fVE9fUEFHRToiYXJyb3dfcmlnaHQiLEdSSURfQVNZTU1FVFJJQ0FMOiJkYXNoYm9hcmQiLEdST1VQUzoicGVyc29uMyIsSEFORF9TV0lQRV9MRUZUOiJnZXN0dXJlX3N3aXBlX2xlZnQiLEhBTkRfU1dJUEVfUklHSFQ6Imdlc3R1cmVfc3dpcGVfcmlnaHQiLApIQVBQWToiZmFjZV9oYXBweSIsSEVBTFRIX0FORF9TQUZFVFk6InNoaWVsZF9oZWFsdGgiLEhFQVJUX0JPWDoiaGVhcnRfY3ViZSIsSEVMUDoiaGVscF9jaXJjbGUiLEhFTFBfQ0FJUk86ImhlbHBfY2lyY2xlIixIRUxQX09VVExJTkU6ImhlbHBfY2lyY2xlIixISURFOiJjaXJjbGVfc2xhc2giLElOQ09HTklUT19DQUlSTzoiaW5jb2duaXRvIixJTkZJTklUWV9JQ09OOiJpbmZpbml0eSIsSU5GTzoiaW5mb19jaXJjbGUiLElORk9fT1VUTElORToiaW5mb19jaXJjbGUiLElOU0VSVF9DSEFSVDoiY2hhcnRfYmFyX3NxdWFyZSIsSU5TRVJUX0NIQVJUX09VVExJTkVEOiJjaGFydF9iYXJfc3F1YXJlIixJTlNFUlRfUEhPVE86ImltYWdlIixLRUVQOiJwaW4iLEtFRVBfT0ZGOiJwaW5fc2xhc2giLEtFWUJPQVJEOiJrZXlib2FyZCIsS0VZQk9BUkRfQVJST1dfRE9XTjoiY2hldnJvbl9kb3duIixLRVlCT0FSRF9BUlJPV19VUDoiY2hldnJvbl91cCIsS0lEU19CTE9DSzoiY2lyY2xlX3NsYXNoIiwKTEFOR1VBR0U6Imdsb2JlIixMQVNUX1BBR0U6ImNoZXZyb25fcmlnaHRfZW5kIixMQVVOQ0g6ImFycm93X3VwX3JpZ2h0IixMRUFSTklORzoibGlnaHRidWxiIixMRUFSTklOR19DQUlSTzoibGlnaHRidWxiIixMSUJSQVJZX0FERDoiYm9va21hcmsiLExJQlJBUllfSU1BR0U6ImltYWdlX3N0YWNrIixMSUJSQVJZX01VU0lDOiJhdWRpb19zcXVhcmVfc3RhY2siLExJQlJBUllfT1VUTElORToicGxheV9zcXVhcmVfc3RhY2siLExJQlJBUllfUkVNT1ZFOiJib29rbWFyayIsTElCUkFSWV9TQVZFRDoiY2hlY2tfc3F1YXJlX3N0YWNrIixMSUtFU19QTEFZTElTVDoidGh1bWJfdXAiLExJS0VTX1BMQVlMSVNUX0NBSVJPOiJ0aHVtYl91cCIsTElLRToidGh1bWJfdXAiLExJS0VfU0VMRUNURUQ6InRodW1iX3VwIixMSVNUX1FVRVVFOiJxdWV1ZSIsTElWRV9DQUlSTzoibGl2ZSIsTElWRV9VTkxJU1RFRDoibGluayIsTE9DQVRJT05fT046ImxvY2F0aW9uX3BpbiIsTE9DQVRJT05fUElOOiJsb2NhdGlvbl9waW4iLApMT0NBVElPTl9QT0lOVDoibG9jYXRpb25fcGluIixMT09QOiJyZXBlYXQiLExPT1BfQUNUSVZFOiJyZXBlYXQiLExPT1BfT05FOiJyZXBlYXQxIixMT09QX09ORV9BQ1RJVkU6InJlcGVhdDEiLE1FRVQ6Imdvb2dsZV9tZWV0IixNRUg6ImZhY2VfbmV1dHJhbCIsTUVNQkVSU0hJUFM6Im1lbWJlcnNoaXBzIixNRU1CRVJTX09OTFlfTU9ERV9PRkY6InRleHRfYnViYmxlIixNRU5VX0ZJTFRFUjoiZmlsdGVyIixNRVNTQUdFOiJ0ZXh0X2J1YmJsZSIsTUVTU0FHRV9CVUJCTEVfR0VBUjoiYnViYmxlX2dlYXIiLE1FU1NBR0VfQlVCQkxFX0xFRlQ6InRleHRfYnViYmxlIixNRVNTQUdFX0JVQkJMRV9MRUZUX0JPT1NUOiJidWJibGVfc3BhcmtsZXMiLE1FU1NBR0VfQlVCQkxFX09WRVJMQVA6ImJ1YmJsZV9zdGFjayIsTUVTU0FHRV9CVUJCTEVfUVVFU1RJT046ImhlbHBfYnViYmxlIixNSUNST1BIT05FX09OOiJtaWMiLE1PTkVUSVpBVElPTl9PTjoiZG9sbGFyX3NpZ25fY2lyY2xlIixNT05FWV9GSUxMOiJkb2xsYXJfc2lnbl9yZWN0YW5nbGUiLApNT05FWV9GSUxMX0pQWToieWVuX3NpZ25fcmVjdGFuZ2xlIixNT05FWV9IQU5EOiJkb2xsYXJfc2lnbl9jaXJjbGVfaGFuZCIsTU9ORVlfSEVBUlQ6ImRvbGxhcl9zaWduX2hlYXJ0IixNT09OX1o6InNsZWVwX3RpbWVyIixNT1JFX0hPUklaOiJvdmVyZmxvd19ob3Jpem9udGFsIixNT1JFX1ZFUlQ6Im92ZXJmbG93X3ZlcnRpY2FsIixNVVNJQzoiYXVkaW8iLE1VU0lDX0NBSVJPOiJhdWRpbyIsTVVTSUNfRVhQTElDSVRfQkFER0U6ImV4cGxpY2l0IixNVVNJQ19ORVdfUkVMRUFTRToiYXVkaW9fYmFkZ2UiLE1VU0lDX05PVEVfU1lNQk9MOiJhdWRpbyIsTVVTSUNfU0NJU1NPUlM6ImF1ZGlvX3NjaXNzb3JzIixNVVNJQ19TSFVGRkxFOiJzaHVmZmxlIixNWV9DSEFOTkVMOiJwZXJzb25fY2lyY2xlIixNWV9MT0NBVElPTjoibG9jYXRpb25fcGluIixNWV9WSURFT1M6InZpZGVvIixNWV9WSURFT1NfQ0FJUk86InZpZGVvIixORVdTX0NBSVJPOiJuZXdzIixORVdTX1NUT1JZOiJuZXdzIiwKTkVYVDoiY2hldnJvbl9yaWdodCIsTk9URV9BREQ6ImJ1YmJsZV9wZW5jaWwiLE5PVElGSUNBVElPTlM6ImJlbGwiLE5PVElGSUNBVElPTlNfQUNUSVZFOiJiZWxsX3dhdmVzIixOT1RJRklDQVRJT05TX0NBSVJPOiJiZWxsIixOT1RJRklDQVRJT05TX0RPTkVfQ0hFQ0tNQVJLOiJjaGVjayIsTk9USUZJQ0FUSU9OU19JTkJPWDoiYmVsbCIsTk9USUZJQ0FUSU9OU19OT05FOiJiZWxsIixOT1RJRklDQVRJT05TX09GRjoiYmVsbF9zbGFzaCIsTk9UX0lOVEVSRVNURUQ6ImNpcmNsZV9zbGFzaCIsT0ZGSUNJQUxfQVJUSVNUX0JBREdFOiJhdWRpbyIsT0ZGTElORV9DTE9VRDoiY2xvdWRfc2xhc2giLE9GRkxJTkVfRE9XTkxPQUQ6ImRvd25sb2FkIixPRkZMSU5FX0RPV05MT0FEX0NBSVJPOiJkb3dubG9hZCIsT0ZGTElORV9QQVVTRToicGF1c2UiLE9QRU5fSU5fTkVXOiJhcnJvd191cF9yaWdodCIsT1VUTElORV9BREpVU1Q6ImFkanVzdCIsT1VUTElORV9BUlJPV19TT0xJRF9ET1dOOiJhcnJvd19zb2xpZF9kb3duIiwKT1VUTElORV9BUlJPV19TT0xJRF9ET1dOXzE2OiJhcnJvd19zb2xpZF9kb3duIixPVVRMSU5FX0FSUk9XX1NPTElEX1VQOiJhcnJvd19zb2xpZF91cCIsT1VUTElORV9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLE9VVExJTkVfQkFHOiJiYWciLE9VVExJTkVfQ0xPQ0tfSEFMRl9DSVJDTEU6ImNsb2NrX2hhbGZfZGFzaGVkIixPVVRMSU5FX01PQklMRV9ET1dOTE9BRDoibW9iaWxlX2Fycm93X2Rvd24iLE9VVExJTkVfT1ZFUkZMT1dfSE9SSVpPTlRBTF8zMjoib3ZlcmZsb3dfaG9yaXpvbnRhbCIsT1VUTElORV9PVkVSRkxPV19WRVJUSUNBTDoib3ZlcmZsb3dfdmVydGljYWwiLE9VVExJTkVfWU9VVFVCRV9JTVBST1ZFX1RWOiJzdGFyX3R2IixPVVRMSU5FX1lPVVRVQkVfU0hPUlRTX1BMVVM6InNob3J0c19hZGQiLFBBSUQ6ImRvbGxhcl9zaWduX2NpcmNsZSIsUEFVU0VfT1VUTElORUQ6InBhdXNlIixQQVlNRU5UOiJjcmVkaXRfY2FyZCIsUEVPUExFOiJwZXJzb25fY2hpbGQiLApQRU9QTEVfMjoicGVyc29uMl9yZWN0YW5nbGUiLFBFT1BMRV9BTFQ6InBlcnNvbjIiLFBFT1BMRV9HUk9VUDoicGVyc29uMyIsUEVPUExFX05PVEU6ImJ1YmJsZV9hc3RlcmlzayIsUEVSU09OXzI6InBlcnNvbjIiLFBFUlNPTl9BQ0NPVU5UOiJwZXJzb25fc3F1YXJlX3N0YWNrIixQRVJTT05fTUlOVVM6InBlcnNvbl94IixQRVJTT05fTVVTSUM6InBlcnNvbl9hdWRpbyIsUEVSU09OX1JBREFSOiJwZXJzb25fd2F2ZXMiLFBFUlNPTl9SQURBUl9GSUxMRUQ6InBlcnNvbl93YXZlcyIsUEVSU09OX1NFVFRJTkc6InBlcnNvbl9nZWFyIixQSE9ORUxJTks6InFyX2NvZGUiLFBIT05FOiJwaG9uZSIsUEhPTkVfRE9XTkxPQUQ6Im1vYmlsZV9hcnJvd19kb3duIixQSUNUVVJFX0lOX1BJQ1RVUkU6InBpY3R1cmVfaW5fcGljdHVyZSIsUExBWUFCTEVTX0xPR086InBsYXlhYmxlcyIsUExBWUFCTEVTX0xPR09fQ0FJUk86InBsYXlhYmxlcyIsUExBWUxJU1RTOiJwbGF5bGlzdCIsUExBWUxJU1RTX0NBSVJPOiJwbGF5bGlzdCIsClBMQVlMSVNUX0FERF9DSEVDSzoiYm9va21hcmsiLFBMQVlfQUxMOiJwbGF5IixQTEFZX0FSUk9XOiJwbGF5IixQTEFZX0FSUk9XX0NJUkNMRToicGxheV9jaXJjbGUiLFBMQVlfQVJST1dfSEFMRl9DSVJDTEU6InBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkIixQTEFZX0FSUk9XX09VVExJTkVEOiJwbGF5IixQTEFZX0NJUkNMRToicGxheV9jaXJjbGUiLFBMQVlfT1VUTElORUQ6InBsYXlfY2lyY2xlIixQT0RDQVNUX0FERDoicG9kY2FzdF9hZGQiLFBPRENBU1RfQ0hFQ0s6InBvZGNhc3RfY2hlY2siLFBSSVZBQ1lfSU5GTzoic2hpZWxkX3giLFBSSVZBQ1lfUFJJVkFURToibG9jayIsUFJJVkFDWV9QVUJMSUM6Imdsb2JlIixQUklWQUNZX1VOTElTVEVEOiJsaW5rIixQUk9NT1RFOiJtZWdhcGhvbmUiLFBVUkNIQVNFUzoicHJpY2VfdGFnIixQVVJDSEFTRV9TVVBFUl9DSEFUOiJzdXBlcl9jaGF0IixQVVJDSEFTRV9TVVBFUl9TVElDS0VSOiJzdXBlcl9zdGlja2VyIixRVUVTVElPTl9BTlNXRVI6ImhlbHBfYnViYmxlIiwKUVVFU1RJT05fQ0lSQ0xFOiJoZWxwX2NpcmNsZSIsUVVFVUVfUExBWV9MQVNUOiJxdWV1ZV9sYXN0IixRVUVVRV9QTEFZX05FWFQ6InF1ZXVlX25leHQiLFFVT1RBVElPTl9NQVJLOiJxdW90ZSIsUkFEQVJfTElWRToibGl2ZSIsUkVNT1ZFOiJtaW51c19jaXJjbGUiLFJFTU9WRV9DSVJDTEU6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX0NJUkNMRV9PVVRMSU5FOiJtaW51c19jaXJjbGUiLFJFTU9WRV9GUk9NX0hJU1RPUlk6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX0ZST01fUExBWUxJU1Q6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX01PREVSQVRPUjoic2hpZWxkX3NsYXNoIixSRVBMQVk6ImFycm93X2NvdW50ZXJjbG9ja3dpc2UiLFJFUExBWV8xMDoic2tpcDEwX2JhY2siLFJFUExBWV9BUlJPVzoicmVwbGF5IixSRVBPUlRfUFJPQkxFTToiYWxlcnRfdHJpYW5nbGUiLFJTU19PRkY6InJzc19zbGFzaCIsU0FEOiJmYWNlX3NhZCIsU0FWRV9QTEFZTElTVDoiYm9va21hcmsiLFNDSEVEVUxFOiJjbG9jayIsClNDSE9PTDoiZ3JhZHVhdGlvbl9jYXAiLFNDUkVFTl9ERUZBVUxUOiJwbGF5ZXJfZGVmYXVsdCIsU0NSRUVOX0ZVTExTQ1JFRU46InBsYXllcl9mdWxsX2VudGVyIixTQ1JFRU5fTElHSFQ6ImFtYmllbnRfbW9kZSIsU0NSRUVOX1JPVEFUSU9OOiJyb3RhdGVfcG9ydHJhaXQiLFNDUkVFTl9TV0lUQ0g6InBsYXllcl9zd2l0Y2giLFNDUkVFTl9USEVBVFJFOiJwbGF5ZXJfdGhlYXRlciIsU0VBUkNIX0NBSVJPOiJzZWFyY2giLFNFQVJDSF9ISVNUT1JZOiJoaXN0b3J5IixTRUxMOiJwcmljZV90YWciLFNFVFRJTkdTOiJnZWFyIixTRVRUSU5HU19DQUlSTzoiZ2VhciIsU0VUVElOR1NfTElHSFQ6ImdlYXIiLFNFVFRJTkdTX01BVEVSSUFMOiJnZWFyIixTRVRUSU5HU19SRU1PVEU6InJlbW90ZV93YXZlcyIsU0hBUkU6InNoYXJlIixTSEFSRV9BUlJPVzoic2hhcmUiLFNIQVJFX0NBSVJPOiJzaGFyZSIsU0hJRUxEOiJzaGllbGRfeCIsU0hJRUxEX0VNUFRZOiJzaGllbGQiLFNISUVMRF9PRkY6InNoaWVsZF9zbGFzaCIsClNISUVMRF9XSVRIX0FWQVRBUjoicGVyc29uX3NoaWVsZCIsU0hPUFBJTkdfQkFHOiJiYWciLFNIT1BQSU5HX0JBR19DQUlSTzoiYmFnIixTSE9QUElOR19DQVJUOiJjYXJ0IixTSE9SVFNfQ09NTUVOVDoidGV4dF9idWJibGUiLFNIT1JUU19ESVNMSUtFOiJ0aHVtYl9kb3duIixTSE9SVFNfTElLRToidGh1bWJfdXAiLFNIT1JUU19TSEFSRToic2hhcmUiLFNLSVBfRk9SV0FSRF8zMDoic2tpcDMwX2ZvcndhcmQiLFNMQVNIX0NJUkNMRV9MRUZUOiJjaXJjbGVfc2xhc2giLFNMQVNIX0NJUkNMRV9SSUdIVDoiY2lyY2xlX3NsYXNoIixTTE9XX01PREU6ImJ1YmJsZV9zbG93IixTTE9XX01PREVfT0ZGOiJ0ZXh0X2J1YmJsZSIsU0xPV19NT1RJT05fVklERU86InBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkIixTT0NJQUw6InBlcnNvbl9jaGlsZCIsU1BBUktMRToic3BhcmtsZXMiLFNQQVJLX0lNQUdFOiJpbWFnZV9zcGFyayIsU1BBUktfTElHSFRCVUxCX09VVExJTkU6InNwYXJrX2xpZ2h0YnVsYiIsClNQQVJLX1BFTkNJTDoicGVuY2lsX3NwYXJrIixTUEFSS19SQURBUjoic3Bhcmtfd2F2ZXMiLFNQQVJLX1ZJREVPOiJ2aWRlb19zcGFyayIsU1BFQUtFUl9HUk9VUDoic3BlYWtlcl9zdGFjayIsU1BFQUtFUl9PRkY6InNwZWFrZXJfc2xhc2giLFNQRUVEXzFYOiJuMXgiLFNQRUVEXzFfUE9JTlRfMlg6Im4xcG9pbnQyeCIsU1BFRURfMV9QT0lOVF81WDoibjFwb2ludDV4IixTUEVFRF8xX1BPSU5UXzhYOiJuMXBvaW50OHgiLFNQRUVEXzJYOiJuMngiLFNQT05TT1JTSElQX1NUQVI6InN0YXJfY2lyY2xlIixTUE9SVFM6ImJhc2tldGJhbGwiLFNQT1RMSUdIVDoic3BvdGxpZ2h0IixTVEFGRl9QSUNLOiJzcG90bGlnaHQiLFNUQVJUX0RWUjoiYWRkIixTVEFSX0JPUkRFUjoic3RhciIsU1RBUl9DSVJDTEVfUklCQk9OOiJtZW1iZXJzaGlwc19naWZ0IixTVEFSX0hBTEY6InN0YXJfZnVsbF9oYWxmIixTVEFSX1NIT09USU5HOiJoeXBlIixTVElDS0VSOiJzdGlja2VyIixTVElDS0VSX0VNT1RJQ09OOiJmYWNlX2hhcHB5IiwKU1RPUF9EVlI6InN0b3AiLFNVQlNDUklCRToieW91dHViZSIsU1VCU0NSSUJFX1BMVVM6ImFkZCIsU1VCU0NSSVBUSU9OX01BTkFHRVI6ImdlYXIiLFNVUEVSU1RBUjoic3VwZXJfc3RhciIsU1VQRVJWSVNPUl9BQ0NPVU5UOiJwZXJzb25fY2hpbGQiLFNVUEVSX0NIQVRfRk9SX0dPT0Q6ImhhbmRzX2hlYXJ0IixTV0FQX0hPUklaOiJhcnJvd19zd2FwX2hvcml6b250YWwiLFNXSVRDSF9BQ0NPVU5UUzoicGVyc29uX3NxdWFyZV9zdGFjayIsVEFCX0FDQ09VTlQ6InBlcnNvbiIsVEFCX0FDVElWSVRZOiJiZWxsIixUQUJfQk9PS01BUks6ImJvb2ttYXJrIixUQUJfRVhQTE9SRToiY29tcGFzcyIsVEFCX0hPTUU6ImhvbWUiLFRBQl9IT01FX0NBSVJPOiJob21lIixUQUJfSU5CT1g6Im1haWwiLFRBQl9MSUtFRDoidGh1bWJfdXAiLFRBQl9NVVNJQ19QUkVNSVVNOiJ5b3V0dWJlX211c2ljIixUQUJfU0hPUlRTOiJzaG9ydHMiLFRBQl9TSE9SVFNfQ0FJUk86InNob3J0cyIsVEFCX1NVQlNDUklQVElPTlM6InN1YnNjcmlwdGlvbnMiLApUQUJfU1VCU0NSSVBUSU9OU19DQUlSTzoic3Vic2NyaXB0aW9ucyIsVEFCX1RSRU5ESU5HOiJ0cmVuZGluZyIsVEFSR0VUOiJ0YXJnZXQiLFRBUkdFVF9BREQ6InRhcmdldF9hZGQiLFRFTVBMQVRFX0FERDoidGVtcGxhdGVfYWRkIixURVhUOiJmb250IixUSUNLRVRfU1RBUjoic3Rhcl90aWNrZXQiLFRJTUVSOiJzdG9wd2F0Y2giLFRSRU5ESU5HX0NBSVJPOiJ0cmVuZGluZyIsVFJFTkRJTkdfRE9XTjoiYXJyb3dfdHJlbmRfZG93biIsVFJFTkRJTkdfVVA6ImFycm93X3RyZW5kX3VwIixUUk9QSFlfQ0FJUk86InRyb3BoeSIsVFJPUEhZX0NFTEVCUkFUSU9OUzoiZmlyZXdvcmtzIixUUk9QSFlfU1RBUjoic3Rhcl90cm9waHkiLFRVTkU6ImFkanVzdCIsVFZfT0ZGOiJ0dl9zbGFzaCIsVU5CTE9DS19VU0VSOiJtaW51c19jaXJjbGUiLFVORkFWT1JJVEU6InRodW1iX2Rvd24iLFVOTElNSVRFRDoieW91dHViZSIsVU5QTFVHR0VEX0xJVkVfR1VJREU6ImxpdmUiLFVOUExVR0dFRF9TUE9SVFM6ImV5ZV9zbGFzaCIsClVQTE9BRFM6InBsYXlfc3F1YXJlX3N0YWNrIixVUF9BUlJPVzoiYXJyb3dfdXAiLFZFUlRJQ0FMX0FMSUdOX0JPVFRPTToiY2hldnJvbl9kb3duX2VuZCIsVkVSVElDQUxfQUxJR05fVE9QOiJjaGV2cm9uX3VwX2VuZCIsVkVSWV9IQVBQWToiZmFjZV92ZXJ5X2hhcHB5IixWRVJZX1NBRDoiZmFjZV92ZXJ5X3NhZCIsVklERU9TOiJwbGF5X2NpcmNsZSIsVklERU9fQ0FMTDoidmlkZW9fY2FtZXJhX2FkZCIsVklERU9fTElCUkFSWV9XSElURToicGxheV9zcXVhcmVfc3RhY2siLFZJREVPX1FVQUxJVFlfNEs6Im40ayIsVklERU9fUVVBTElUWV84SzoibjhrIixWSURFT19ZT1VUVUJFOiJ5b3V0dWJlIixWSUVXX0xJU1RfQ0FJUk86InZpZXdfbGlzdCIsVklFV19NT0RVTEU6InZpZXdfY29sdW1uM19yb3cyIixWSVNJQklMSVRZOiJleWUiLFZJU0lCSUxJVFlfT0ZGOiJleWVfc2xhc2giLFZPTFVNRV9ET1dOOiJ2b2x1bWVfbWluIixWT0xVTUVfTVVURToidm9sdW1lX211dGUiLFZPTFVNRV9PRkY6InZvbHVtZV9tdXRlIiwKVk9MVU1FX1NUQUJMRToic3RhYmxlX3ZvbHVtZSIsVk9MVU1FX1VQOiJ2b2x1bWVfbWF4IixXQUxMUEFQRVI6ImltYWdlIixXQVJOSU5HOiJhbGVydF90cmlhbmdsZSIsV0FUQ0hfSElTVE9SWToiaGlzdG9yeSIsV0FUQ0hfSElTVE9SWV9DQUlSTzoiaGlzdG9yeSIsV0FUQ0hfTEFURVI6ImNsb2NrIixXQVRDSF9MQVRFUl9DQUlSTzoiY2xvY2siLFdBVENIX1JFTEFURURfTUlYOiJtaXgiLFdIQVRfVE9fV0FUQ0g6ImhvbWUiLFlPVVRVQkVfQ1JFQVRFX1JFRF9MT0dPOiJ5b3V0dWJlX2NyZWF0ZV9sb2dvIixZT1VUVUJFX0xJTktFRF9UVjoidHZfbW9iaWxlIixZT1VUVUJFX01VU0lDX01PTk9DSFJPTUU6InlvdXR1YmVfbXVzaWMiLFlPVVRVQkVfTVVTSUNfTU9OT0NIUk9NRV9DQUlSTzoieW91dHViZV9tdXNpYyIsWU9VVFVCRV9TSE9SVFNfQVJST1dfRE9XTjoiYXJyb3dfZG93biIsWU9VVFVCRV9TSE9SVFNfQVJST1dfVVA6ImFycm93X3VwIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1JFRF8xNjoic2hvcnRzX2VtcHR5IiwKWU9VVFVCRV9TSE9SVFNfRklMTF9OT19UUklBTkdMRV9XSElURV8xNjoic2hvcnRzX2VtcHR5IixZT1VUVUJFX1NIT1JUU19PVVRMSU5FXzI0OiJzaG9ydHMiLFlPVVRVQkVfU0hPUlRTX09VVExJTkVfV0lUSF9URVhUXzI0OiJzaG9ydHNfdGV4dF9sb2dvIixZVF9PVVRMSU5FX01VU0lDXzI0OiJhdWRpbyJ9O3ZhciBWcWE9ezE1OltbMSwzLDI0XV0sIjFfcG9pbnRfMngiOltbMSwxLDI0XV0sIjFfcG9pbnRfNXgiOltbMSwxLDI0XV0sIjFfcG9pbnRfOHgiOltbMSwxLDI0XV0sIjF4IjpbWzEsMSwyNF1dLCIyX3BvaW50XzV4IjpbWzEsMSwyNF1dLCIyZCI6W1sxLDEsMjRdXSwiMngiOltbMSwzLDI0XV0sIjNkIjpbWzEsMSwyNF1dLCIzeCI6W1sxLDMsMjRdXSwiNGQiOltbMSwxLDI0XV0sIjRrIjpbWzAsMywyNF0sWzEsMywyNF1dLDYwOltbMSwzLDI0XV0sIjhrIjpbWzAsMiwyNF0sWzEsMiwyNF1dLGFjY2Vzc2liaWxpdHk6W1sxLDQsMjRdXSxhY2NvdW50X2xpbms6W1sxLDgsMjRdXSxhY2NvdW50X2xpbmtfZXJyb3I6W1sxLDYsMjRdXSxhY2NvdW50X2xpbmtfc29tZTpbWzAsNSwyNF1dLGFjY291bnRfbGlua19zdWNjZXNzOltbMCw1LDI0XV0sYWRkOltbMSw5LDE2XSxbMSw5LDI0XV0sYWRkX2NhaXJvOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDI0XV0sYWRkX2NpcmNsZTpbWzEsNiwyNF0sClsxLDYsMzZdXSxhZGRfaGFsZl9jaXJjbGU6W1sxLDIsMjRdXSxhZGp1c3Q6W1swLDksMjRdLFsxLDksMThdLFsxLDksMjRdXSxhaXJwbGFuZTpbWzAsNSwyNF0sWzEsNSwyMF0sWzEsNSwyNF1dLGFpcnBsYXk6W1sxLDYsMTZdLFsxLDYsMjRdXSxhaXJwbGF5X29mZjpbWzEsMSwyNF1dLGFsYnVtOltbMCw4LDI0XSxbMSw4LDI0XV0sYWxlcnRfY2lyY2xlOltbMCwxMSwyNF0sWzEsMTEsMTZdLFsxLDExLDI0XV0sYWxlcnRfdHJpYW5nbGU6W1swLDEwLDEyXSxbMCwxMCwyNF0sWzEsMTAsMjRdXSxhbGlnbl9jZW50ZXI6W1swLDYsMjRdLFsxLDYsMjRdXSxhbGlnbl9sZWZ0OltbMCw2LDI0XSxbMSw2LDI0XV0sYWxpZ25fcmlnaHQ6W1swLDYsMjRdLFsxLDYsMjRdXSxhcnJvd19jYXBzOltbMCwyLDI0XSxbMSwyLDI0XV0sYXJyb3dfY2lyY2xlOltbMSw2LDI0XSxbMSw2LDQ4XV0sYXJyb3dfY2lyY2xlX2Rhc2g6W1sxLDEsMjRdXSxhcnJvd19jaXJjbGVfcGxheTpbWzEsMSwyNF0sWzEsMSwKMzZdLFsxLDEsNDhdXSxhcnJvd19jaXJjbGVfcmlnaHQ6W1swLDMsMjRdLFsxLDMsMTJdLFsxLDMsMTZdLFsxLDMsMThdLFsxLDMsMjRdXSxhcnJvd19kaWFnb25hbDpbWzEsNSwyNF1dLGFycm93X2RpYWdvbmFsX2Rvd25fcmlnaHQ6W1swLDEsMTJdLFswLDEsMTZdLFswLDEsMThdLFswLDEsMjRdLFsxLDEsMTJdLFsxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjRdXSxhcnJvd19kaWFnb25hbF91cF9yaWdodDpbWzAsMSwxMl0sWzAsMSwxNl0sWzAsMSwxOF0sWzAsMSwyNF0sWzEsMSwxMl0sWzEsMSwxNl0sWzEsMSwxOF0sWzEsMSwyNF1dLGFycm93X2Rvd246W1swLDMsMjRdLFsxLDMsMjRdXSxhcnJvd19kb3duX2NpcmNsZTpbWzAsNCwxMl0sWzAsNCwxNl0sWzAsNCwxOF0sWzAsNCwyNF1dLGFycm93X2ZsaXA6W1sxLDEwLDE2XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSxhcnJvd19mbGlwX2RvbGxhcl9zaWduOltbMSwyLDI0XV0sYXJyb3dfaW46W1swLDgsMjRdLFsxLDgsMjRdXSxhcnJvd19sZWZ0OltbMSwKOCwyNCwhMF1dLGFycm93X2xlZnRfY2Fpcm86W1sxLDIsMjQsITBdXSxhcnJvd19tZXJnZTpbWzEsMiwyNF1dLGFycm93X291dDpbWzAsMiwyNF1dLGFycm93X3BhdXNlOltbMSwxLDI0XV0sYXJyb3dfcmVkbzpbWzEsMSwyNF1dLGFycm93X3JlbWl4OltbMSwxLDI0XV0sYXJyb3dfcmVwZWF0OltbMCw1LDI0XSxbMSw1LDI0XV0sYXJyb3dfcmVwZWF0XzE6W1swLDMsMjRdLFsxLDMsMjRdXSxhcnJvd19yaWdodDpbWzEsMywyNCwhMF1dLGFycm93X3NodWZmbGU6W1swLDUsMjRdLFsxLDUsMjRdXSxhcnJvd19za2lwX2ZvcndhcmQ6W1swLDEsMjRdLFsxLDEsMjRdXSxhcnJvd19zb2xpZF9kb3duOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDE2XSxbMSw0LDI0XV0sYXJyb3dfc29saWRfdXA6W1swLDQsMTZdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSxhcnJvd19zcGxpdDpbWzAsMywyNF0sWzEsMywyNF1dLGFycm93X3N3YXBfaG9yaXpvbnRhbDpbWzAsNSwyNF0sWzEsNSwxOF0sClsxLDUsMjRdXSxhcnJvd190aW1lOltbMCw4LDI0XSxbMSw4LDI0XV0sYXJyb3dfdGltZV9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGFycm93X3RpbWVfZm9yd2FyZDpbWzEsMSwyNF1dLGFycm93X3VuZG86W1sxLDEsMjRdXSxhcnJvd191cDpbWzAsMywyNF0sWzEsMywyNF1dLGFycm93X3VwX2NpcmNsZTpbWzAsNCwxMl0sWzAsNCwxNl0sWzAsNCwxOF0sWzAsNCwyNF1dLGFycm93c19hbGVydDpbWzEsMSwyNF1dLGFydGljbGU6W1sxLDIsMjRdXSxhcnRpY2xlX2FsZXJ0OltbMSwyLDI0XV0sYXJ0aWNsZV9jaGVjazpbWzEsMiwyNF1dLGFydGljbGVfY2xhcmlmeTpbWzEsMiwyNF1dLGF1ZGlvOltbMCwxNCwxMl0sWzAsMTQsMTZdLFswLDE0LDE4XSxbMCwxNCwyNF0sWzEsMTQsMThdLFsxLDE0LDI0XV0sYXVkaW9fYmFkZ2U6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdXSxhdWRpb19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGF1ZGlvX29mZjpbWzEsMiwyNF1dLGF1ZGlvX3N1cnJvdW5kOltbMCwKMSwyNF0sWzEsMSwyNF1dLGJhY2tncm91bmQ6W1sxLDEsMjRdXSxiYWNrc3BhY2U6W1swLDUsMjRdLFsxLDUsMjRdXSxiYWc6W1swLDcsMTJdLFswLDcsMThdLFswLDcsMjRdLFsxLDcsMThdLFsxLDcsMjRdXSxiYWdfYm9va21hcms6W1sxLDIsMjRdXSxiYWdfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxiYXJfY2lyY2xlOltbMSw0LDI0XV0sYmFyX2dyYXBoOltbMCwyLDI0XSxbMSwyLDI0XV0sYmFyX2dyYXBoX2JveF92ZXJ0aWNhbDpbWzAsNiwyNF0sWzEsNiwyNF1dLGJhcl9ob3Jpem9udGFsOltbMSwyLDE2XSxbMSwyLDI0XV0sYmFyc18yOltbMSw5LDE2XSxbMSw5LDI0XV0sYmFyc18zOltbMCwyLDI0XSxbMSwyLDI0XV0sYmVha2VyOltbMSwyLDI0XV0sYmVsbDpbWzAsMTEsMjRdLFsxLDExLDI0XV0sYmVsbF9jYWlybzpbWzAsMywyNF0sWzEsMywyNF1dLGJlbGxfb2ZmOltbMSw1LDI0XV0sYmVsbF9vZmZfY2Fpcm86W1sxLDIsMjRdXSxiZWxsX29uOltbMCw3LDI0XV0sYmVsbF9vbl9jYWlybzpbWzAsCjIsMjRdXSxibHVyOltbMSwyLDI0XV0sYm9vazpbWzEsMywyNF1dLGJvb2ttYXJrOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxib29rbWFya19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGJveF8zZDpbWzAsMSwyNF0sWzEsMSwyNF1dLGJveF9iYXI6W1swLDMsMjRdXSxib3hfY2hlY2s6W1swLDYsMThdLFswLDYsMjRdLFswLDYsMzZdLFsxLDYsMjRdXSxib3hfY2hldnJvbl9yaWdodDpbWzEsMywyNF1dLGJveF9kYXNoZWRfdHJpYW5nbGU6W1sxLDMsMjRdXSxib3hfZW1wdHk6W1sxLDUsMjRdXSxib3hfb3Blbl9jaGVjazpbWzAsNCwyNF0sWzEsNCwxNl0sWzEsNCwyNF1dLGJveF9wZW5jaWw6W1sxLDMsMTZdLFsxLDMsMjRdXSxib3hfcGxhY2Vob2xkZXJfbGVmdDpbWzEsMSwyNF1dLGJveF9zZWFyY2g6W1sxLDEsMjRdXSxib3hfc3RhY2tfMzpbWzAsMSwyNF0sWzEsMSwyNF1dLGJveGVzXzI6W1sxLDMsMjRdXSxicmllZmNhc2U6W1sxLDIsMjRdXSxicmllZmNhc2Vfc2xhc2g6W1swLAozLDI0XV0sYnJpZ2h0bmVzczpbWzAsMywyNF0sWzEsMywyNF1dLGJyb2FkY2FzdDpbWzAsMywyNF0sWzEsMywxMl0sWzEsMywxNl0sWzEsMywxOF0sWzEsMywyNF0sWzEsMyw0OF1dLGJ1ZzpbWzAsNCwyNF0sWzEsNCwyNF1dLGJ1c2luZXNzOltbMSw0LDI0XV0sY2FibGU6W1sxLDIsMjRdXSxjYWxjdWxhdG9yOltbMCwzLDI0XSxbMSwzLDI0XV0sY2FsZW5kYXI6W1swLDQsMjRdLFsxLDQsMjRdXSxjYW1lcmE6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGNhbWVyYV9hdWRpbzpbWzEsNSwyNF1dLGNhbWVyYV9lZmZlY3RzOltbMSw0LDI0XV0sY2FtZXJhX2ZsaXA6W1sxLDQsMjRdXSxjYW1lcmFfaGFzaHRhZzpbWzEsNSwyNF1dLGNhbWVyYV9zd2l0Y2g6W1swLDMsMjRdLFsxLDMsMjRdXSxjYXJkOltbMCwzLDEyXSxbMCwzLDE2XSxbMCwzLDI0XV0sY2FydDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhcnRfc3Bhcms6W1sxLDEsMjRdXSxjYXQ6W1swLDMsMjRdLFsxLDMsMjRdXSxjZWxlYnJhdGlvbjpbWzEsCjIsMjRdXSxjaGVjazpbWzAsMTMsMTJdLFswLDEzLDE2XSxbMCwxMywyNF0sWzEsMTMsMTZdLFsxLDEzLDI0XV0sY2hlY2tfY2lyY2xlOltbMCwxMCwxOF0sWzAsMTAsMjRdLFsxLDEwLDI0XV0sY2hlY2tfZG91YmxlOltbMSwxLDI0XV0sY2hlY2tfZG91YmxlX29mZjpbWzEsMSwyNF1dLGNoZXZyb25fY29sbGFwc2U6W1sxLDMsMjRdXSxjaGV2cm9uX2Rvd246W1sxLDksMThdLFsxLDksMjRdXSxjaGV2cm9uX2Rvd25fY2Fpcm86W1sxLDIsMjRdXSxjaGV2cm9uX2Rvd25fY2lyY2xlOltbMCwzLDI0XV0sY2hldnJvbl9leHBhbmQ6W1sxLDUsMjRdXSxjaGV2cm9uX2ZpcnN0OltbMSwxLDI0XV0sY2hldnJvbl9sYXN0OltbMSwxLDI0XV0sY2hldnJvbl9sZWZ0OltbMSw5LDE2LCEwXSxbMSw5LDE4LCEwXSxbMSw5LDI0LCEwXV0sY2hldnJvbl9sZWZ0X2NpcmNsZTpbWzAsMywyNF1dLGNoZXZyb25fbGVmdF9pb3M6W1sxLDMsMjRdXSxjaGV2cm9uX2xlZnRfaW9zX2NhaXJvOltbMSwyLDI0XV0sCmNoZXZyb25fcmlnaHQ6W1swLDcsMTYsITBdLFswLDcsMTgsITBdLFswLDcsMjQsITBdLFsxLDcsMTYsITBdLFsxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxjaGV2cm9uX3JpZ2h0X2NhaXJvOltbMSwyLDI0XV0sY2hldnJvbl9yaWdodF9jaXJjbGU6W1swLDMsMjRdXSxjaGV2cm9uX3JpZ2h0X2lvczpbWzEsMSwyNF1dLGNoZXZyb25fdXA6W1sxLDksMTZdLFsxLDksMThdLFsxLDksMjRdXSxjaGV2cm9uX3VwX2NhaXJvOltbMSwyLDI0XV0sY2hldnJvbl91cF9jaXJjbGU6W1swLDMsMjRdXSxjaHJvbWVjYXN0OltbMCwxMSwyNF0sWzEsMTEsMjRdXSxjaHJvbWVjYXN0X2FuaW1hdGVfZnJhbWVfMTpbWzEsNSwyNF1dLGNocm9tZWNhc3RfYW5pbWF0ZV9mcmFtZV8yOltbMSw1LDI0XV0sY2hyb21lY2FzdF9hbmltYXRlX2ZyYW1lXzM6W1sxLDUsMjRdXSxjaHJvbWVjYXN0X2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sY2hyb21lY2FzdF9tb2JpbGU6W1sxLDQsMjRdLFsxLDQsMzZdXSxjaHJvbWVjYXN0X3dhdmVmb3JtOltbMSwKMiwyNF1dLGNpcmNsZTpbWzAsOSwyNF0sWzEsOSwyNF1dLGNpcmNsZV9mdWxsOltbMCwzLDI0XV0sY2lyY2xlX2hhbGZfZnVsbDpbWzEsMSwyNF1dLGNpcmNsZXNfNjpbWzAsMSwyNF1dLGNpcmNsZXNfb3ZlcmxhcDpbWzAsMSwyNF0sWzEsMSwyNF1dLGNpcmNsZXNfb3ZlcmxhcF9jaGVjazpbWzAsMSwxNl0sWzAsMSwyNF1dLGNsYXBwZXJib2FyZDpbWzAsMywyNF0sWzEsMywyNF1dLGNsYXBwZXJib2FyZF9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrOltbMCwxMCwyNF0sWzEsMTAsMTZdLFsxLDEwLDI0XV0sY2xvY2tfYXJyb3dzOltbMSwxLDI0XV0sY2xvY2tfYXJyb3dzX2FsZXJ0OltbMSwxLDI0XV0sY2xvY2tfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxjbG9ja19oYWxmX2NpcmNsZTpbWzAsMSwyNF0sWzEsMSwyNF1dLGNsb3NlZF9jYXB0aW9uOltbMCwxMSwyNF0sWzEsMTEsMjRdXSxjbG91ZDpbWzEsMiwyNF1dLGNsb3VkX2Fycm93X2Rvd246W1sxLDMsMjRdXSxjbG91ZF9hcnJvd191cDpbWzAsCjYsMjRdLFsxLDYsMjRdXSxjbG91ZF9jaGVjazpbWzAsMywyNF0sWzEsMywyNF1dLGNsb3VkX2VsbGlwc2lzOltbMCwzLDI0XSxbMSwzLDI0XV0sY2xvdWRfb2ZmOltbMSwyLDI0XV0sY29kZTpbWzEsMiwyNF1dLGNvbXBhc3M6W1swLDksMjRdLFsxLDksMjRdXSxjb21wYXNzX2NhaXJvOltbMCwxLDI0XSxbMSwxLDI0XV0sY29udHJvbGxlcjpbWzAsMiwyNF0sWzEsMiwyNF1dLGNvcHk6W1sxLDMsMjRdXSxjb3B5cmlnaHQ6W1swLDQsMjRdLFsxLDQsMjRdXSxjcmVhdG9yX2FjYWRlbXk6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdLFsxLDMsMjRdXSxjcmVhdG9yX2FjYWRlbXlfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxjcmVkaXRfY2FyZDpbWzEsNCwyNF1dLGNyb3A6W1sxLDQsMTZdLFsxLDQsMjRdXSxjcm9wX3JvdGF0ZTpbWzEsMiwyNF1dLGNyb3duOltbMCw1LDE2XSxbMCw1LDI0XSxbMSw1LDEyXSxbMSw1LDE2XSxbMSw1LDI0XV0sY3ViZV9zcGFyazpbWzEsMSwyNF1dLApjdXJ2ZV9zOltbMCwxLDI0XV0sZGFzaGJvYXJkX3BsdXM6W1sxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjBdLFsxLDEsMjRdXSxkaWVfMzpbWzAsNSwyNF0sWzEsNSwyNF1dLGRpcmVjdGlvbnM6W1sxLDMsMjRdXSxkb2dmb29kOltbMSwxLDI0XV0sZG9sbGFyX3NpZ246W1swLDcsMjRdLFsxLDcsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGU6W1swLDEyLDE2XSxbMCwxMiwyNF0sWzEsMTIsMTZdLFsxLDEyLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX3BhdXNlOltbMSwyLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX3BsdXM6W1sxLDEsMjRdXSxkb2xsYXJfc2lnbl9jb250YWluZXI6W1sxLDcsMjRdXSxkb2xsYXJfc2lnbl9oZWFydDpbWzAsMjQsMTJdLFswLDI0LDI0XSxbMSwyNCwxNl0sWzEsMjQsMjRdXSxkb2xsYXJfc2lnbl9vZmY6W1sxLDMsMjRdXSxkb3Q6W1swLDIsMTJdLFswLDIsMjRdXSxkb3dubG9hZDpbWzAsMTEsMjRdLFsxLDExLDE2XSxbMSwxMSwyNF1dLGRvd25sb2FkX2NhaXJvOltbMCwKMiwyNF0sWzEsMiwyNF1dLGRvd25sb2FkZWQ6W1swLDgsMjRdXSxkb3dubG9hZGluZzpbWzEsNSwyNF1dLGRvd25sb2FkaW5nXzA6W1sxLDUsMjRdXSxkb3dubG9hZGluZ18xOltbMSw2LDI0XV0sZG93bmxvYWRpbmdfMjpbWzEsNiwyNF1dLGRvd25sb2FkaW5nXzM6W1sxLDYsMjRdXSxkb3dubG9hZGluZ180OltbMSw2LDI0XV0sZG93bmxvYWRpbmdfNTpbWzEsNywyNF1dLGRvd25sb2FkaW5nXzY6W1sxLDYsMjRdXSxkcml2ZV9hZGQ6W1sxLDIsMjRdXSxlYXJ0aDpbWzAsMTIsMjRdLFsxLDEyLDE2XSxbMSwxMiwxOF0sWzEsMTIsMjRdXSxleHBsaWNpdDpbWzAsNywxOF0sWzAsNywyNF0sWzEsNywyNF1dLGV5ZTpbWzAsNiwyNF0sWzEsNiwyNF1dLGV5ZV9vZmY6W1sxLDQsMjRdXSxleWVkcm9wcGVyOltbMSwyLDI0XV0sZmFjZV9hZGQ6W1sxLDEsMjRdXSxmYWNlX2Fycm93c19kaWFnb25hbDpbWzEsMSwyNF1dLGZhY2VfaGFwcHk6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzEsMTIsMjRdLApbMSwxMiwzNl1dLGZhY2VfaW1hZ2U6W1sxLDIsMjRdXSxmYWNlX21laDpbWzAsMTAsMjRdLFswLDEwLDM2XSxbMSwxMCwyNF0sWzEsMTAsMzZdXSxmYWNlX21laF8yOltbMCw2LDI0XSxbMCw2LDM2XSxbMSw2LDI0XSxbMSw2LDM2XV0sZmFjZV9wYWludGJydXNoOltbMSwyLDI0XV0sZmFjZV9zYWQ6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzEsMTIsMjRdLFsxLDEyLDM2XV0sZmFjZV91bmhhcHB5OltbMCwxMCwyNF0sWzAsMTAsMzZdLFsxLDEwLDI0XSxbMSwxMCwzNl1dLGZhY2VfdXBzZXQ6W1swLDEwLDI0XSxbMCwxMCwzNl0sWzEsMTAsMjRdLFsxLDEwLDM2XV0sZmFjZV92ZXJ5X2hhcHB5OltbMCwxMiwyNF0sWzAsMTIsMzZdLFsxLDEyLDI0XSxbMSwxMiwzNl1dLGZhY2VfdmVyeV9zYWQ6W1swLDEwLDI0XSxbMCwxMCwzNl0sWzEsMTAsMjRdLFsxLDEwLDM2XV0sZmFzaGlvbjpbWzAsNCwyNF0sWzEsNCwyNF1dLGZhc2hpb25fY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxmYXN0X2JhY2s6W1swLAozLDI0XSxbMSwzLDI0XV0sZmFzdF9mb3J3YXJkOltbMCw1LDI0XV0sZmlsbV9zdHJpcDpbWzAsNywyNF0sWzEsNywyNF1dLGZpbG1fc3RyaXBfYWRkOltbMSwyLDI0XV0sZmlsdGVyX2ZhY2U6W1swLDUsMjRdLFsxLDUsMjRdXSxmaWx0ZXJfcGhvdG86W1swLDgsMjRdLFsxLDgsMjRdXSxmaXJlOltbMCwxMCwxMl0sWzAsMTAsMjRdLFsxLDEwLDE2XSxbMSwxMCwyNF1dLGZpcmVfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxmaXJld29ya3M6W1sxLDMsMjRdXSxmbGFnOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxmbGFnX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxhc2hfYXV0bzpbWzAsMywyNF0sWzEsMywyNF1dLGZsYXNoX2NpcmNsZTpbWzAsNSwxOF0sWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX29mZjpbWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX29uOltbMCw1LDI0XSxbMSw1LDI0XV0sZmxpcF9ob3Jpem9udGFsOltbMSw0LDI0XV0sZmxpcF9ob3Jpem9udGFsX2Rhc2g6W1sxLAoxLDI0XV0sZmxpcF92ZXJ0aWNhbF9kYXNoOltbMSwxLDI0XV0sZm9sZGVyOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDI0XV0sZm9udF9zcXVhcmVfc3Bhcms6W1sxLDEsMTZdLFsxLDEsMjRdXSxmb290YmFsbDpbWzAsNCwyNF0sWzEsNCwyNF1dLGdhbWluZzpbWzAsMywyNF0sWzEsMywyNF1dLGdhbWluZ19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGdlYXI6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGdlYXJfY2Fpcm86W1swLDMsMjRdLFsxLDMsMjRdXSxnaG9zdDpbWzAsNSwyNF0sWzEsNSwyNF1dLGdpZjpbWzEsMywyNF1dLGdpZnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxnbG9iZTpbWzAsNCwyNF0sWzAsNCwzNl0sWzEsNCwyNF0sWzEsNCwzNl1dLGdsb2JlX2ltYWdlOltbMCwzLDI0XSxbMCwzLDM2XSxbMSwzLDI0XSxbMSwzLDM2XV0sZ2xvdzpbWzEsMiwyNF1dLGdvb2dsZV9sZW5zOltbMSw0LDI0XV0sZ3JlYXRlcl90aGFuXzIwOltbMSwyLDI0XV0sZ3JpZF8yeDI6W1sxLDEsMjRdXSwKZ3JpZF8zX2J5XzM6W1swLDEsMjRdLFsxLDEsMjRdXSxncmlkX2FzeW1tZXRyaWNhbDpbWzAsMSwyNF0sWzEsMSwyNF1dLGhhbmQ6W1sxLDIsMjRdXSxoYW5kX2xvbmdfcHJlc3M6W1swLDMsMjRdLFsxLDMsMjRdXSxoYW5kX3BpbmNoX2luOltbMSwyLDI0XV0saGFuZF9zd2lwZV9sZWZ0OltbMSwxLDI0XV0saGFuZF9zd2lwZV9yaWdodDpbWzEsMiwyNF1dLGhhbmRfdGFwOltbMCwyLDI0XSxbMSwyLDI0XV0saGFuZF93YXZlOltbMSwyLDI0XV0saGFuZHNfaGVhcnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxoYXNodGFnOltbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDIwXSxbMSwyLDI0XV0saGQ6W1swLDgsMjRdLFsxLDgsMjRdXSxoZWFkc2V0OltbMCw4LDI0XSxbMSw4LDI0XV0saGVhcnQ6W1swLDE5LDEzXSxbMCwxOSwyNF0sWzEsMTksMTZdLFsxLDE5LDI0XV0saGVhcnRfYm94OltbMSwxLDI0XV0saGVhcnRfY2lyY2xlOltbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDIwXSxbMSwyLDI0XV0sCmhlYXJ0X29mZjpbWzEsMiwyNF1dLGhpZXJhcmNoeTpbWzAsNCwyNF0sWzEsNCwyNF1dLGhpZ2hsaWdodHM6W1sxLDIsMjRdXSxob21lOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxob21lX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0saG91cmdsYXNzOltbMSwzLDE2XSxbMSwzLDI0XV0saW1hZ2U6W1swLDgsMjRdLFsxLDgsMjRdXSxpbWFnZV9hZGQ6W1sxLDQsMjRdXSxpbWFnZV93YWxscGFwZXI6W1sxLDEsMjRdXSxpbmNvZ25pdG86W1swLDksMjRdLFsxLDksMjRdXSxpbmNvZ25pdG9fY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxpbmZpbml0ZTpbWzAsMiwyNF1dLGluZmluaXR5OltbMSwyLDI0XV0saW5mb19jaXJjbGU6W1sxLDExLDE2XSxbMSwxMSwxOF0sWzEsMTEsMjBdLFsxLDExLDI0XV0saW5mb19jaXJjbGVfc3Bhcms6W1sxLDIsMjRdXSxqb3VybmV5OltbMSwyLDI0XV0sa2V5OltbMSw1LDI0XV0sa2V5Ym9hcmQ6W1swLDQsMjRdLFsxLDQsMjRdXSxsYWJlbDpbWzAsNCwyNF0sClsxLDQsMjRdXSxsYXB0b3A6W1sxLDMsMjRdXSxsYXB0b3BfbW9iaWxlOltbMCw0LDI0XSxbMSw0LDI0XV0sbGF5ZXJzOltbMCwxLDI0XSxbMSwxLDI0XV0sbGVhZjpbWzEsMiwyNF1dLGxlbnM6W1sxLDEsMjRdXSxsZXNzX3RoYW5fNDpbWzEsMiwyNF1dLGxpYnJhcnk6W1swLDcsMjRdLFsxLDcsMjRdXSxsaWJyYXJ5X2FkZDpbWzEsNywxNl0sWzEsNywyNF1dLGxpYnJhcnlfaW1hZ2U6W1sxLDEsMjRdXSxsaWJyYXJ5X211c2ljOltbMCwzLDI0XSxbMSwzLDI0XV0sbGlicmFyeV9zYXZlZDpbWzAsNywyNF1dLGxpZ2h0YnVsYjpbWzAsNCwxMl0sWzAsNCwyNF0sWzEsNCwyNF1dLGxpZ2h0YnVsYl9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGxpZ2h0YnVsYl9zcGFyazpbWzEsMiwyNF1dLGxpbms6W1sxLDgsMThdLFsxLDgsMjRdXSxsaW5rX29mZjpbWzEsMSwyNF1dLGxpc3RfYWRkOltbMSw1LDI0XV0sbGlzdF9jaGVjazpbWzAsMiwyNF1dLGxpc3RfbXVzaWM6W1sxLDMsMjRdXSxsaXN0X3BlbmNpbDpbWzEsCjUsMjRdXSxsaXN0X3BsYXlfYXJyb3c6W1swLDgsMjRdLFsxLDgsMTJdLFsxLDgsMjRdXSxsaXN0X3BsYXlfYXJyb3dfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxsaXN0X3F1ZXVlOltbMSwxLDI0XV0sbGlzdF9xdWV1ZV9sYXN0OltbMCwzLDI0XSxbMSwzLDI0XV0sbGlzdF9xdWV1ZV9uZXh0OltbMSwxLDI0XV0sbGlzdF9yZW1vdmU6W1sxLDEsMjRdXSxsaXN0X3ZpZXc6W1sxLDIsMjRdXSxsaXN0X3ZpZXdfY2Fpcm86W1sxLDIsMjRdXSxsaXZlX21vYmlsZV9sYW5kc2NhcGVfb3JpZW50YXRpb246W1sxLDEsMjRdXSxsaXZlX3Bob3RvOltbMSwyLDI0XV0sbGl2ZV93YXZlczpbWzEsMiwxOF0sWzEsMiwyNF1dLGxvY2F0aW9uX3BvaW50OltbMCw2LDEyXSxbMCw2LDI0XSxbMSw2LDI0XV0sbG9jYXRpb25fcG9pbnRfb2ZmOltbMSwxLDI0XV0sbG9jazpbWzAsMTMsMTJdLFswLDEzLDI0XSxbMSwxMywxMl0sWzEsMTMsMTZdLFsxLDEzLDE4XSxbMSwxMywyNF1dLGxvY2tfb3BlbjpbWzEsCjQsMjRdXSxtYWdpY193YW5kOltbMCwzLDI0XSxbMSwzLDI0XV0sbWFpbDpbWzAsOSwyNF0sWzEsOSwyNF1dLG1hcDpbWzEsMywyNF1dLG1hdGhfYWRkOltbMCwzLDI0XV0sbWF0aF9hbmQ6W1swLDMsMjRdXSxtYXRoX2RpdmlkZTpbWzAsMywyNF1dLG1hdGhfZXF1YWxzOltbMCwzLDI0XV0sbWF0aF9lcXVhbHNfc2xhc2g6W1sxLDMsMjRdXSxtYXRoX2dyZWF0ZXJfdGhhbjpbWzAsMywyNF1dLG1hdGhfZ3JlYXRlcl90aGFuX29yX2VxdWFsOltbMSwxLDI0XV0sbWF0aF9sZXNzX3RoYW46W1swLDMsMjRdXSxtYXRoX2xlc3NfdGhhbl9vcl9lcXVhbDpbWzEsNCwyNF1dLG1hdGhfbXVsdGlwbHk6W1swLDMsMjRdXSxtYXRoX29yOltbMCwzLDI0XV0sbWF0aF9wZXJjZW50OltbMCwzLDI0XV0sbWF0aF9zdWJ0cmFjdDpbWzAsMywyNF1dLG1heGltaXplX2NhaXJvOltbMSwxLDI0XV0sbWVkYWw6W1sxLDIsMjRdXSxtZWRhbF9zdGFyOltbMSwyLDI0XV0sbWVldDpbWzEsMSwyNF1dLG1lZ2FwaG9uZTpbWzAsCjUsMjRdLFsxLDUsMjRdXSxtZW1iZXJzaGlwczpbWzAsOSwxMl0sWzAsOSwxNl0sWzAsOSwxOF0sWzAsOSwyNF0sWzEsOSwyNF1dLG1lbnRpb246W1sxLDUsMTZdLFsxLDUsMjRdXSxtZW51X2ZpbHRlcjpbWzAsMSwyNF0sWzEsMSwyNF1dLG1lbnVfc29ydDpbWzEsNCwyNF1dLG1lc3NhZ2VfYnViYmxlX2FsZXJ0OltbMCw2LDI0XSxbMSw2LDI0XV0sbWVzc2FnZV9idWJibGVfYWxlcnRfY2Fpcm86W1sxLDIsMjRdXSxtZXNzYWdlX2J1YmJsZV9lbXB0eTpbWzEsMSwyNF1dLG1lc3NhZ2VfYnViYmxlX2dlYXI6W1sxLDEsMjRdXSxtZXNzYWdlX2J1YmJsZV9sZWZ0OltbMCwxLDI0XSxbMSwxLDI0XV0sbWVzc2FnZV9idWJibGVfbGVmdF9ib29zdDpbWzEsMSwyNF1dLG1lc3NhZ2VfYnViYmxlX2xlZnRfb2ZmOltbMSwxLDE2XSxbMSwxLDI0XV0sbWVzc2FnZV9idWJibGVfb3ZlcmxhcDpbWzAsOCwyNF0sWzEsOCwyNF1dLG1lc3NhZ2VfYnViYmxlX3F1ZXN0aW9uOltbMCwyLDE2XSxbMCwyLAoyNF0sWzEsMiwxNl0sWzEsMiwyNF1dLG1lc3NhZ2VfYnViYmxlX3JpZ2h0OltbMCwxNCwyNF0sWzAsMTQsMzJdLFsxLDE0LDE2XSxbMSwxNCwyNF1dLG1lc3NhZ2VfYnViYmxlX3JpZ2h0X2NhcHRpb246W1sxLDEsMjRdXSxtaWM6W1swLDE0LDI0XSxbMSwxNCwyNF1dLG1pY19vZmY6W1sxLDIsMjRdXSxtaW5pcGxheWVyX2V4aXQ6W1sxLDEsMjRdXSxtb2JpbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxtb2JpbGVfY2hlY2s6W1sxLDIsMjRdXSxtb2JpbGVfZG93bmxvYWQ6W1sxLDMsMjRdXSxtb2JpbGVfbGFuZHNjYXBlOltbMSwzLDI0XV0sbW9iaWxlX3NjcmVlbl9ob3Jpem9udGFsOltbMSwxLDI0XV0sbW9iaWxlX3NjcmVlbl92ZXJ0aWNhbDpbWzEsMSwyNF1dLG1vbmV5X2hhbmQ6W1sxLDIsMjRdXSxtb25pdG9yX2Rpc3BsYXk6W1swLDQsMTZdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSxtb25pdG9yX2Rpc3BsYXlfb2ZmOltbMSwxLDI0XV0sbW9vbl96OltbMCwxLDI0XSxbMSwKMSwyNF1dLG1vdGlvbjpbWzEsMiwyNF1dLG1vdmU6W1sxLDQsMjRdXSxtdXNpYzpbWzAsNiwyNF0sWzEsNiwxNl0sWzEsNiwxOF0sWzEsNiwyNF1dLG11c2ljX29mZjpbWzEsMywyNF1dLG11c2ljX3NjaXNzb3JzOltbMSwzLDI0XV0sbXVzaWNfc2hhcGU6W1sxLDMsMjRdXSxtdXNpY192aWRlbzpbWzEsNCwyNF1dLG11c2ljX3ZpZGVvX29mZjpbWzEsMSwyNF1dLG15X3ZpZGVvczpbWzEsNiwyNF1dLG15X3ZpZGVvc19jYWlybzpbWzEsMiwyNF1dLG5ld3M6W1swLDMsMjRdLFsxLDMsMTJdLFsxLDMsMjRdXSxuZXdzX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sbm9kZV9sZWZ0OltbMSwyLDI0XV0sbm9kZV9yaWdodDpbWzEsMiwyNF1dLG5vdGU6W1swLDEsMTZdLFswLDEsMjRdLFsxLDEsMTZdLFsxLDEsMjRdXSxub3RlX2FkZDpbWzEsMSwxNl0sWzEsMSwyNF1dLG5vdGVfc3Bhcms6W1swLDIsMTZdLFswLDIsMjRdLFsxLDIsMTZdLFsxLDIsMjRdXSxvZG9tZXRlcjpbWzAsNCwyNF0sClsxLDQsMjRdXSxvcGVuX25ldzpbWzAsNywyNF0sWzEsNywxMl0sWzEsNywyNF1dLG92ZXJmbG93X2hvcml6b250YWw6W1sxLDYsMjRdLFsxLDYsMzJdXSxvdmVyZmxvd192ZXJ0aWNhbDpbWzEsMTMsMjRdXSxvdmVyZmxvd192ZXJ0aWNhbF9jYWlybzpbWzEsMSwyNF1dLHBhaW50X2J1Y2tldDpbWzEsMywyNF1dLHBhbGV0dGU6W1sxLDEsMjRdXSxwYW5lbHM6W1swLDIsMjRdLFsxLDIsMjRdXSxwYXBlcl9jb3JuZXJfZm9sZGVkOltbMCwyLDI0XSxbMSwyLDI0XV0scGFwZXJfb3Blbl9pbl9uZXc6W1swLDEsMjRdLFsxLDEsMjRdXSxwYXVzZTpbWzAsOSwyNF1dLHBhdXNlX2NpcmNsZTpbWzAsMiwxMl0sWzAsMiwxNl0sWzAsMiwyNF1dLHBkZjpbWzEsMiwyNF1dLHBlbmNpbDpbWzEsMTAsMTZdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLHBlb3BsZTpbWzAsNiwxMl0sWzAsNiwyNF0sWzEsNiwyNF1dLHBlb3BsZV8yOltbMCwxLDI0XSxbMSwxLDI0XV0scGVvcGxlX2dyb3VwOltbMCw0LDI0XSwKWzEsNCwxNl0sWzEsNCwyNF1dLHBlb3BsZV9ub3RlOltbMCwxLDE4XSxbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uOltbMCw3LDEyXSxbMCw3LDEzXSxbMCw3LDE2XSxbMCw3LDI0XSxbMCw3LDQ4XSxbMSw3LDEzXSxbMSw3LDE2XSxbMSw3LDI0XV0scGVyc29uXzI6W1sxLDEsMjRdXSxwZXJzb25fYWNjb3VudDpbWzEsNiwyNF1dLHBlcnNvbl9hY2NvdW50X2NhaXJvOltbMSwxLDI0XV0scGVyc29uX2FkZDpbWzEsNywyNF1dLHBlcnNvbl9ib3g6W1sxLDUsMjRdXSxwZXJzb25fY2lyY2xlOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxwZXJzb25fY2lyY2xlX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0scGVyc29uX2NpcmNsZV9zbGFzaDpbWzEsMiwyNF1dLHBlcnNvbl9taW51czpbWzAsMSwyNF0sWzEsMSwyNF1dLHBlcnNvbl9tdXNpYzpbWzAsNCwyNF0sWzEsNCwyNF1dLHBlcnNvbl9yYWRhcjpbWzAsNywxMl0sWzAsNywyNF0sWzEsNywxNl0sWzEsNywxOF0sWzEsNywyNF1dLHBlcnNvbl9zZXR0aW5nOltbMSwKNiwyNF1dLHBlcnNvbl9zaGllbGQ6W1sxLDgsMjRdXSxwZXJzb25fc3F1YXJlX3NwYXJrOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3dhdmVmb3JtOltbMSwyLDI0XV0scGhvbmU6W1swLDMsMjRdLFsxLDMsMjRdXSxwaWN0dXJlX2luX3BpY3R1cmU6W1swLDIsMjRdLFsxLDIsMjRdXSxwaWN0dXJlX2luX3BpY3R1cmVfY29tYmluZTpbWzEsMSwyNF1dLHBpbjpbWzAsNywxMl0sWzAsNywyNF0sWzEsNywxNl0sWzEsNywyNF1dLHBpbl9vZmY6W1sxLDEsMjRdXSxwbGF5X2Fycm93OltbMCw3LDI0XSxbMSw3LDI0XV0scGxheV9hcnJvd19jaXJjbGU6W1swLDIsMjRdLFsxLDIsMjRdXSxwbGF5X2Fycm93X2Rpc2FibGVkOltbMCwxLDEyXSxbMCwxLDI0XV0scGxheV9hcnJvd19oYWxmX2NpcmNsZTpbWzAsNSwyNF0sWzEsNSwyNF1dLHBvZGNhc3Q6W1swLDYsMjRdLFsxLDYsMTJdLFsxLDYsMTZdLFsxLDYsMThdLFsxLDYsMjRdXSxwb2RjYXN0X2FkZDpbWzAsMiwyNF0sWzEsMiwyNF1dLApwb2RjYXN0X2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0scG9kY2FzdF9jaGVjazpbWzAsMiwyNF1dLHBvaW50XzJ4OltbMSwxLDI0XV0scG9pbnRfM3g6W1sxLDMsMjRdXSxwb2ludF81eDpbWzEsMywyNF1dLHBvaW50Xzh4OltbMSwxLDI0XV0scG9sbDpbWzEsMTAsMTZdLFsxLDEwLDI0XSxbMSwxMCw0MF1dLHBvdW5kOltbMSwzLDI0XV0scHJlc2VudGF0aW9uOltbMSwzLDI0XV0scHJlc2VudGF0aW9uX3JlbW92ZTpbWzEsMSwyNF1dLHByaWNlX3RhZzpbWzAsOCwxMl0sWzAsOCwyNF0sWzEsOCwyNF1dLHByaWNlX3RhZ19oZWFydDpbWzEsMiwyNF1dLHFyX2NvZGU6W1sxLDMsMjRdXSxxdWVzdGlvbl9jaXJjbGU6W1sxLDUsMjRdXSxxdWVzdGlvbl9jaXJjbGVfY2Fpcm86W1sxLDIsMjRdXSxxdWVzdGlvbl9oZWFkOltbMSwyLDI0XV0scXVvdGF0aW9uX21hcms6W1swLDEsMjRdLFsxLDEsMjRdXSxxdW90YXRpb25fbWFya19vZmY6W1sxLDEsMjRdXSxyYWRhcl9saXZlOltbMCw3LDI0XSwKWzEsNywxMl0sWzEsNywxNl0sWzEsNywyNF1dLHJhZGFyX2xpdmVfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxyYXRpbmdfZG93bjpbWzEsMSwyNF1dLHJhdGluZ191cDpbWzEsNywxMl0sWzEsNywxNl0sWzEsNywyNF1dLHJlY29yZDpbWzAsMiwyNF1dLHJlbWl4OltbMSwyLDE2XSxbMSwyLDI0XV0scmVwbGF5X2Fycm93OltbMSwxLDI0XV0scm90YXRlXzkwOltbMSwxLDI0XV0scm90YXRlXzkwX2Nsb2Nrd2lzZTpbWzEsMiwyNF1dLHJzczpbWzEsMiwxNl0sWzEsMiwyNF1dLHJzc19vZmY6W1sxLDEsMTZdLFsxLDEsMjRdXSxydWJ5OltbMSwyLDEyXSxbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDI0XV0sc2FtcGxlczpbWzAsMiwyNF0sWzEsMiwyNF1dLHNhdHVyYXRpb246W1sxLDIsMjRdXSxzY2FsZTpbWzEsNCwyNF1dLHNjaXNzb3JzOltbMCw4LDEyXSxbMCw4LDI0XSxbMSw4LDI0XV0sc2Npc3NvcnNfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxzY2lzc29yc19jdXQ6W1sxLDQsCjE2XSxbMSw0LDE4XSxbMSw0LDI0XV0sc2NyZWVuX2RlZmF1bHQ6W1swLDEsMjRdLFswLDEsNDhdLFsxLDEsMjRdLFsxLDEsNDhdXSxzY3JlZW5fZnVsbDpbWzEsNywyNF1dLHNjcmVlbl9mdWxsX2NhaXJvOltbMSwxLDI0XV0sc2NyZWVuX2Z1bGxfZXhpdDpbWzEsNiwyNF1dLHNjcmVlbl9mdWxsX2V4aXRfY2Fpcm86W1sxLDEsMjRdXSxzY3JlZW5fZnVsbHNjcmVlbjpbWzAsMSwyNF0sWzAsMSw0OF0sWzEsMSwyNF0sWzEsMSw0OF1dLHNjcmVlbl9saWdodDpbWzEsMSwyNF1dLHNjcmVlbl9taW5pX3BsYXllcjpbWzAsMSwyNF0sWzAsMSw0OF0sWzEsMSwyNF0sWzEsMSw0OF1dLHNjcmVlbl9tdWx0aV92aWV3OltbMCwzLDI0XSxbMSwzLDI0XV0sc2NyZWVuX3JvdGF0aW9uOltbMSwyLDE4XSxbMSwyLDI0XV0sc2NyZWVuX3N3aXRjaDpbWzAsMSwyNF0sWzEsMSwyNF1dLHNjcmVlbl90aGVhdHJlOltbMCwxLDI0XSxbMCwxLDQ4XSxbMSwxLDI0XSxbMSwxLDQ4XV0sc2NyZWVuX3ZlcnRpY2FsOltbMSwKMSwyNF1dLHNjcmVlbl94OltbMSwyLDI0XV0sc2Q6W1swLDMsMjRdLFsxLDMsMjRdXSxzZWFyY2g6W1swLDE1LDI0XSxbMSwxNSwyNF1dLHNlYXJjaF9jYWlybzpbWzEsMiwyNF1dLHNlYXJjaF9zdXBlcnNjcmlwdDpbWzEsMSwyNF1dLHNlbmQ6W1swLDcsMTgsITBdLFswLDcsMjQsITBdLFsxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxzZXR0aW5nc19yZW1vdGU6W1sxLDEsMjRdXSxzaGFkb3dfaGFyZDpbWzAsMywyNF1dLHNoYWRvd19zb2Z0OltbMCwzLDI0XV0sc2hhcGVzOltbMCwzLDI0XSxbMSwzLDI0XV0sc2hhcmU6W1swLDEyLDI0LCEwXSxbMCwxMiwzMiwhMF0sWzEsMTIsMTYsITBdLFsxLDEyLDI0LCEwXV0sc2hhcmVfY2Fpcm86W1sxLDIsMjRdXSxzaGFyZV9pb3M6W1sxLDIsMjRdXSxzaGFyZV9saW5rOltbMCwxLDI0XSxbMSwxLDI0XV0sc2hpZWxkOltbMSw2LDI0XV0sc2hpZWxkX2FkZDpbWzEsMiwyNF1dLHNoaWVsZF9jaGVjazpbWzEsMSwyNF1dLHNoaWVsZF9lbXB0eTpbWzAsCjEsMTZdLFswLDEsMThdLFswLDEsMjRdLFsxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjRdXSxzaGllbGRfb2ZmOltbMSwxLDI0XV0sc2hpZWxkX292ZXJmbG93OltbMSwyLDI0XV0sc2hpZWxkX3BsdXM6W1sxLDEsMjRdXSxzaGllbGRfc2VhcmNoOltbMSwyLDI0XV0sc2hvcnRzX2xheW91dF9ib3R0b206W1sxLDEsMjRdXSxzaG9ydHNfbGF5b3V0X2NlbnRlcmVkX3NxdWFyZTpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfZm9yZWdyb3VuZDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGFuZHNjYXBlX2JvdHRvbTpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGFuZHNjYXBlX3RvcDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGVmdDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfcGlwOltbMSwxLDI0XV0sc2hvcnRzX2xheW91dF9yaWdodDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfc2luZ2xlOltbMSwxLDI0XV0sc2hvcnRzX2xheW91dF90b3A6W1sxLDEsMjRdXSxza2lwX2JhY2tfMTA6W1swLAoxLDI0XV0sc2tpcF9iYWNrXzE1OltbMCwxLDI0XV0sc2tpcF9iYWNrXzIwOltbMCwxLDI0XV0sc2tpcF9iYWNrXzMwOltbMCwxLDI0XV0sc2tpcF9iYWNrXzU6W1swLDEsMjRdXSxza2lwX2JhY2tfNjA6W1swLDEsMjRdXSxza2lwX2Rvd246W1swLDYsMjRdXSxza2lwX2ZvcndhcmRfMTA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMTU6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMjA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMzA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfNTpbWzAsMSwyNF1dLHNraXBfZm9yd2FyZF82MDpbWzAsMSwyNF1dLHNraXBfbmV4dDpbWzAsNywyNF1dLHNraXBfcHJldmlvdXM6W1swLDYsMjRdXSxza2lwX3VwOltbMCw2LDI0XV0sc2xhc2hfY2lyY2xlX2xlZnQ6W1sxLDcsMjRdXSxzbGFzaF9jaXJjbGVfcmlnaHQ6W1sxLDIsMjRdXSxzb2NjZXJfYmFsbDpbWzEsMywyNF1dLHNvY2Nlcl9jYXJkOltbMCwyLDEyXSxbMCwyLDE2XSxbMCwyLDI0XV0sc3BhY2ViYXI6W1sxLAoyLDI0XV0sc3Bhcms6W1swLDExLDEyXSxbMCwxMSwxNl0sWzAsMTEsMjRdLFsxLDExLDI0XV0sc3BhcmtfY2hhdDpbWzEsMSwxNl0sWzEsMSwyNF1dLHNwYXJrX2ltYWdlOltbMSwyLDI0XV0sc3BhcmtfbGlnaHRidWxiOltbMCwzLDI0XSxbMSwzLDI0XV0sc3BhcmtfbWVzc2FnZV9idWJibGU6W1sxLDQsMTZdLFsxLDQsMjRdXSxzcGFya19tZXNzYWdlX2J1YmJsZV9sZWZ0OltbMSwxLDI0XV0sc3BhcmtfbXVzaWM6W1sxLDIsMjRdXSxzcGFya19wZW5jaWw6W1sxLDIsMjRdXSxzcGFya19yYWRhcjpbWzAsMSwxMl0sWzAsMSwxNl0sWzAsMSwyNF0sWzEsMSwxMl0sWzEsMSwxNl0sWzEsMSwyNF1dLHNwYXJrX3RleHQ6W1sxLDEsMjRdXSxzcGFya192aWRlbzpbWzEsMiwyNF1dLHNwYXJrbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxzcGVha2VyOltbMSwyLDI0XV0sc3BlYWtlcl9ncm91cDpbWzEsMSwyNF1dLHNwZWFrZXJfZ3JvdXBfb2ZmOltbMSwxLDI0XV0sc3BlYWtlcl9oZWFkc2V0OltbMSwKMiwyNF1dLHNwZWFrZXJfb2ZmOltbMSwxLDI0XV0sc3BsaXQ6W1sxLDQsMjRdXSxzcG9ydHM6W1swLDEsMjRdXSxzcG90bGlnaHQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzdGFyOltbMCw2LDEyXSxbMCw2LDE2XSxbMCw2LDI0XSxbMSw2LDEyXSxbMSw2LDE2XSxbMSw2LDI0XV0sc3Rhcl9jaXJjbGU6W1swLDYsMTJdLFswLDYsMTZdLFswLDYsMThdLFswLDYsMjRdXSxzdGFyX2NpcmNsZV9yaWJib246W1swLDEsMTZdLFswLDEsMjBdLFswLDEsMjRdLFswLDEsMzZdLFsxLDEsMTZdLFsxLDEsMjBdLFsxLDEsMjRdLFsxLDEsMzZdXSxzdGFyX2hhbGY6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdXSxzdGFyX3Nob290aW5nOltbMCwzLDI0XSxbMSwzLDI0XV0sc3RhdGlzdGljc19ncmFwaDpbWzEsMiwyNF1dLHN0aWNrZXI6W1sxLDMsMjRdXSxzdG9wOltbMCw2LDI0XSxbMCw2LDM2XV0sc3RvcHdhdGNoOltbMCw1LDE2XSxbMCw1LDI0XSxbMSw1LDE2XSxbMSw1LDI0XV0sc3RvcHdhdGNoXzEwOltbMCwKMSwyNF1dLHN0b3B3YXRjaF8zOltbMCwxLDI0XV0sc3Vic2NyaXB0aW9uczpbWzAsMTIsMjRdLFsxLDEyLDE4XSxbMSwxMiwyNF1dLHN1YnNjcmlwdGlvbnNfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxzdWJ0aXRsZXM6W1swLDUsMTJdLFswLDUsMjRdLFsxLDUsMjRdXSxzdXBlcl9jaGF0OltbMSw4LDE4XSxbMSw4LDI0XV0sc3VwZXJfc3RpY2tlcjpbWzAsOCwxNl0sWzAsOCwyNF0sWzEsOCwxNl0sWzEsOCwyNF1dLHN1cGVyX3N0b3JlOltbMSwzLDI0XV0sc3VwZXJzdGFyOltbMSwxLDI0XV0sdGFibGV0OltbMSwxLDI0XV0sdGFyZ2V0OltbMCwyLDI0XSxbMSwyLDE2XSxbMSwyLDI0XV0sdGFyZ2V0X2FkZDpbWzAsMiwyNF0sWzEsMiwxNl0sWzEsMiwyNF1dLHRlbXBsYXRlX2FkZDpbWzEsMywxNl0sWzEsMywyNF1dLHRlbXBsYXRlX3BsYXk6W1swLDMsMjRdLFsxLDMsMjRdXSx0ZXh0OltbMCw5LDI0XSxbMSw5LDE2XSxbMSw5LDE4XSxbMSw5LDI0XV0sdGV4dF9iZWxsX2NhaXJvOltbMSwKMSwxMl0sWzEsMSwxNl0sWzEsMSwxOF0sWzEsMSwyNF1dLHRleHRfYm9sZDpbWzEsMSwyNF1dLHRleHRfYm94OltbMSw1LDI0XV0sdGV4dF9pdGFsaWM6W1sxLDEsMjRdXSx0ZXh0X291dGxpbmU6W1sxLDIsMjRdXSx0ZXh0X3ByZXNldDpbWzEsMSwyNF1dLHRleHRfc2VyaWY6W1sxLDEsMjRdXSx0ZXh0X3NoYWRvdzpbWzEsMiwyNF1dLHRleHRfc3RyaWtldGhyb3VnaDpbWzEsMSwyNF1dLHRleHRfdW5kZXJsaW5lOltbMSwxLDI0XV0sdGhlbWVfc3dpdGNoOltbMCwxLDI0XSxbMSwxLDI0XV0sdGhlcm1vbWV0ZXI6W1sxLDIsMjRdXSx0aHVtYl9kb3duOltbMCwyNSwxNl0sWzAsMjUsMjRdLFswLDI1LDM2XSxbMSwyNSwxNl0sWzEsMjUsMjRdLFsxLDI1LDM2XV0sdGh1bWJfdXA6W1swLDI0LDE2XSxbMCwyNCwyNF0sWzAsMjQsMzZdLFsxLDI0LDE2XSxbMSwyNCwyNF0sWzEsMjQsMzZdXSx0aHVtYl91cF9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLHRodW1iX3VwX2Rvd246W1swLDQsCjI0XSxbMSw0LDI0XV0sdGljX3RhY190b2U6W1swLDQsMTJdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSx0aWNfdGFjX3RvZV9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLHRpY2tldF9zdGFyOltbMSwxLDI0XV0sdGlsdDpbWzEsNCwyNF1dLHRpbWVfc3RhbXBfcGx1czpbWzEsMSwyNF1dLHRpbWVsaW5lOltbMSwzLDI0XV0sdG9vbGJveDpbWzEsNCwyNF1dLHRyYW5zY3JpcHQ6W1sxLDIsMTZdLFsxLDIsMjRdXSx0cmFuc2NyaXB0X3NlYXJjaDpbWzEsMSwxNl0sWzEsMSwyNF1dLHRyYW5zaXRpb246W1swLDUsMjRdLFsxLDUsMjRdXSx0cmFuc2xhdGU6W1sxLDQsMTZdLFsxLDQsMjRdXSx0cmFzaF9jYW46W1sxLDEwLDE2XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSx0cmlhbmdsZV9kb3duOltbMSw4LDI0XV0sdHJpYW5nbGVfdGhyZWVfbGVmdDpbWzAsMSwyNF1dLHRyaWFuZ2xlX3RocmVlX3JpZ2h0OltbMCwxLDI0XV0sdHJvcGh5OltbMCwzLDI0XSxbMSwzLDI0XV0sdHJvcGh5X2NhaXJvOltbMCwKMiwyNF0sWzEsMiwyNF1dLHRyb3BoeV9zdGFyOltbMSwxLDI0XV0sdHJ1Y2s6W1swLDUsMjRdLFsxLDUsMjRdXSx0djpbWzAsOCwxMl0sWzAsOCwxNl0sWzAsOCwyNF0sWzEsOCwxNl0sWzEsOCwyNF1dLHR2X2Fycm93X2xlZnQ6W1sxLDIsMjRdXSx0dl9jaXJjbGU6W1swLDMsMjRdLFsxLDMsMjRdXSx0dl9kb2xsYXJfc2lnbjpbWzAsMSwyNF0sWzEsMSwyNF1dLHR2X29mZjpbWzEsMiwyNF1dLHR2X3F1ZXVlOltbMSw0LDI0XV0sdHZfcXVldWVfY2hldnJvbjpbWzEsMiwyNF1dLHVwbG9hZDpbWzEsNSwyNF1dLHVwbG9hZGluZzpbWzEsMSwyNF1dLHZhcmlhYmxlOltbMSw0LDI0XV0sdmVyaWZpZWRfY2lyY2xlOltbMSw0LDI0XV0sdmlkZW9fY2FtZXJhOltbMCw5LDI0XSxbMSw5LDI0XV0sdmlkZW9fY2FtZXJhX2FkZDpbWzEsMiwyNF1dLHZpZGVvX2NhbWVyYV9vZmY6W1sxLDEsMjRdXSx2aWRlb19saW5rOltbMSw1LDE2XSxbMSw1LDI0XV0sdmlkZW9fcmV2ZXJzZTpbWzEsMSwyNF1dLAp2aWRlb19zcGFyazpbWzEsMiwyNF1dLHZpZGVvX3N0aXRjaDpbWzEsMiwyNF1dLHZpZGVvX3dhdmVmb3JtOltbMSwxLDI0XV0sdm9sdW1lX2Rvd246W1swLDIsMjRdLFsxLDIsMjRdXSx2b2x1bWVfZmFkZTpbWzEsMiwyNF1dLHZvbHVtZV9vZmY6W1swLDQsMjRdLFsxLDQsMjRdXSx2b2x1bWVfb246W1swLDMsMjRdLFsxLDMsMjRdXSx2b2x1bWVfc3RhYmxlOltbMCwxLDI0XSxbMSwxLDI0XV0sdnI6W1swLDcsMjRdLFsxLDcsMjRdXSx3YXZlZm9ybTpbWzEsMywyNF1dLHdhdmVmb3JtX211c2ljOltbMCwyLDE4XSxbMCwyLDI0XSxbMCwyLDQ4XV0sd2F2ZWZvcm1fc3Bhcms6W1sxLDIsMjRdXSx3cmVuY2g6W1swLDMsMjRdLFsxLDMsMjRdXSx4OltbMSwxMSwxOF0sWzEsMTEsMjRdXSx4X2NhaXJvOltbMSwxLDI0XV0seF9jaXJjbGU6W1swLDksMjRdLFsxLDksMjRdXSx4X21hcms6W1sxLDQsMjBdLFsxLDQsMjRdXSx4X29jdGFnb246W1sxLDMsMjRdXSx5ZW5fc2lnbl9jb250YWluZXI6W1swLAoyLDI0XSxbMSwyLDI0XV0seW91dHViZV9pbXByb3ZlX3R2OltbMSwxLDI0XV0seW91dHViZV9raWRzOltbMCw1LDI0XSxbMSw1LDI0XV0seW91dHViZV9sYWJzOltbMCwxLDI0XV0seW91dHViZV9saW5rZWRfdHY6W1sxLDQsMjRdXSx5b3V0dWJlX2xvZ29faWNvbjpbWzAsNiwyNF0sWzEsNiwyNF1dLHlvdXR1YmVfbWl4OltbMSw1LDEyXSxbMSw1LDE2XSxbMSw1LDI0XV0seW91dHViZV9tdXNpYzpbWzAsNywyNF0sWzEsNywyNF1dLHlvdXR1YmVfbXVzaWNfY2Fpcm86W1sxLDIsMjRdXSx5b3V0dWJlX29yaWdpbmFsczpbWzAsNiwyNF0sWzEsNiwyNF1dLHlvdXR1YmVfc2hvcnRzOltbMCwxMSwxMl0sWzAsMTEsMjBdLFswLDExLDI0XSxbMSwxMSwyMF0sWzEsMTEsMjRdXSx5b3V0dWJlX3Nob3J0c19hcnJvd19kb3duOltbMSwxLDI0XV0seW91dHViZV9zaG9ydHNfYXJyb3dfbGVmdDpbWzEsMiwyNF1dLHlvdXR1YmVfc2hvcnRzX2Fycm93X3VwOltbMSwxLDI0XV0seW91dHViZV9zaG9ydHNfY2Fpcm86W1swLAoyLDI0XSxbMSwyLDI0XV0seW91dHViZV9zaG9ydHNfY2FtZXJhOltbMSwzLDI0XV0seW91dHViZV9zaG9ydHNfY2hldnJvbl9sZWZ0X2lvczpbWzEsMiwyNF1dLHlvdXR1YmVfc2hvcnRzX2dyZWVuX3NjcmVlbjpbWzAsMSwyNF0sWzEsMSwyNF1dLHlvdXR1YmVfc2hvcnRzX2hlYXJ0OltbMCwyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfbWVzc2FnZV9idWJibGVfcmlnaHQ6W1swLDIsMjRdLFswLDIsMzJdXSx5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZTpbWzAsNCwxNl0sWzAsNCwyNF0sWzAsNCwzMl0sWzEsNCwxNl0sWzEsNCwyNF0sWzEsNCwzMl1dLHlvdXR1YmVfc2hvcnRzX292ZXJmbG93X3ZlcnRpY2FsOltbMSwyLDI0XV0seW91dHViZV9zaG9ydHNfcGx1czpbWzEsNSwxNl0sWzEsNSwyNF1dLHlvdXR1YmVfc2hvcnRzX3JlbWl4OltbMCwyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfc2VhcmNoOltbMSwzLDI0XV0seW91dHViZV9zaG9ydHNfc2hhcmU6W1swLAoyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfc3RpY2tlcjpbWzEsMSwxOF0sWzEsMSwyNF1dLHlvdXR1YmVfc2hvcnRzX3RodW1iX2Rvd246W1swLDIsMjRdLFswLDIsMzJdXSx5b3V0dWJlX3Nob3J0c190aHVtYl91cDpbWzAsMiwyNF0sWzAsMiwzMl1dLHlvdXR1YmVfc2hvcnRzX3dhdmVmb3JtOltbMSwyLDE4XSxbMSwyLDI0XV0seW91dHViZV9zdHVkaW86W1swLDgsMjRdLFsxLDgsMjRdXSx5b3V0dWJlX3R2OltbMCw4LDI0XSxbMSw4LDI0XV0sem9vbV9hdXRvOltbMCwyLDI0XSxbMSwyLDI0XV19O3ZhciBXcWE9e2FjY2Vzc2liaWxpdHk6W1swLDQsMjRdLFsxLDQsMjRdXSxhY2NvdW50X2xpbms6W1swLDgsMjRdLFsxLDgsMjRdXSxhY2NvdW50X2xpbmtfZXJyb3I6W1sxLDYsMjRdXSxhZGQ6W1sxLDksMThdLFsxLDksMjRdXSxhZGRfY2lyY2xlOltbMCw2LDE4XSxbMCw2LDI0XSxbMSw2LDI0XSxbMSw2LDM2XV0sYWRkX3NxdWFyZV9zdGFjazpbWzEsMSwyNF1dLGFkZF90djpbWzEsMSwyNF1dLGFkZF90dl9jaGV2cm9uX3JpZ2h0OltbMSwxLDI0XV0sYWRqdXN0OltbMCw5LDI0XSxbMSw5LDI0XV0sYWlycGxhbmU6W1swLDUsMjRdLFswLDUsNDhdLFsxLDUsMjRdXSxhaXJwbGF5OltbMSw2LDI0XV0sYWlycGxheV9zbGFzaDpbWzEsMSwyNF1dLGFsYnVtOltbMCw4LDI0XSxbMSw4LDE4XSxbMSw4LDI0XSxbMSw4LDQ4XV0sYWxlcnRfYnViYmxlOltbMSwyLDE4XSxbMSwyLDI0XV0sYWxlcnRfY2lyY2xlOltbMCwxMSwyNF0sWzEsMTEsMTJdLFsxLDExLDI0XSxbMSwxMSw0OF1dLGFsZXJ0X29jdGFnb246W1swLAoyLDI0XSxbMSwyLDI0XV0sYWxlcnRfdHJpYW5nbGU6W1swLDEwLDEyXSxbMCwxMCwyNF0sWzAsMTAsNDhdLFsxLDEwLDI0XV0sYW1iaWVudF9tb2RlOltbMSwxLDI0XV0sYW1wZXJzYW5kOltbMSwxLDI0XV0sYXBpOltbMCwyLDI0XSxbMSwyLDI0XV0sYXJjaGl2ZTpbWzEsMSwyNF1dLGFycm93X2FyY19mb3J3YXJkOltbMSwxLDI0XV0sYXJyb3dfY2xvY2t3aXNlOltbMSwxLDI0XV0sYXJyb3dfY291bnRlcmNsb2Nrd2lzZTpbWzEsMiwyNF0sWzEsMiw0OF1dLGFycm93X2NvdW50ZXJjbG9ja3dpc2VfZGFzaGVkOltbMSwxLDI0XV0sYXJyb3dfZG93bjpbWzEsMywyNF1dLGFycm93X2Rvd25fY2lyY2xlOltbMCw0LDI0XSxbMSw0LDI0XV0sYXJyb3dfZG93bl9jaXJjbGVfc2xhc2g6W1swLDEsMjRdLFsxLDEsMjRdXSxhcnJvd19kb3duX3JpZ2h0OltbMSwxLDI0XV0sYXJyb3dfZmxpcDpbWzEsMTAsMjRdXSxhcnJvd19pbjpbWzEsOCwxOF0sWzEsOCwyNF1dLGFycm93X2xlZnQ6W1sxLDgsCjI0LCEwXSxbMSw4LDM2LCEwXV0sYXJyb3dfbWVyZ2U6W1sxLDIsMjRdXSxhcnJvd19vdXQ6W1sxLDIsMjRdXSxhcnJvd19yaWdodDpbWzEsMywyNCwhMF1dLGFycm93X3JpZ2h0X3JlY3RhbmdsZTpbWzAsMiwyNF0sWzEsMiwyNF1dLGFycm93X3NvbGlkX2Rvd246W1swLDQsMThdLFswLDQsMjRdLFsxLDQsMThdLFsxLDQsMjRdXSxhcnJvd19zb2xpZF91cDpbWzAsNCwxOF0sWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF1dLGFycm93X3NwbGl0OltbMSwzLDI0XV0sYXJyb3dfc3BsaXRfYWxlcnQ6W1sxLDEsMjRdXSxhcnJvd19zd2FwX2hvcml6b250YWw6W1sxLDUsMjRdXSxhcnJvd190cmVuZF9kb3duOltbMSwxLDI0XV0sYXJyb3dfdHJlbmRfdXA6W1sxLDIsMTJdLFsxLDIsMjRdXSxhcnJvd190dXJuX2Rvd25fcmlnaHQ6W1sxLDIsMThdLFsxLDIsMjRdXSxhcnJvd191cDpbWzEsMywyNF1dLGFycm93X3VwX2NpcmNsZTpbWzAsNCwyNF0sWzEsNCwyNF1dLGFycm93X3VwX2xlZnQ6W1sxLAoxLDI0XV0sYXJyb3dfdXBfcmVjdGFuZ2xlX3BvcnRyYWl0OltbMSwxLDI0XV0sYXJyb3dfdXBfcmlnaHQ6W1sxLDIsMThdLFsxLDIsMjRdLFsxLDIsMzZdXSxhc3BlY3RfcmF0aW9fdzE2X2g5OltbMSwxLDI0XV0sYXNwZWN0X3JhdGlvX3c5X2gxNjpbWzEsMSwyNF1dLGF1ZGlvOltbMCwxNCwxMl0sWzAsMTQsMThdLFswLDE0LDI0XSxbMSwxNCwxMl0sWzEsMTQsMThdLFsxLDE0LDI0XSxbMSwxNCw0OF1dLGF1ZGlvX2Fycm93X2ZsaXA6W1swLDIsMjRdLFsxLDIsMjRdXSxhdWRpb19iYWRnZTpbWzAsMywyNF0sWzEsMywyNF1dLGF1ZGlvX3NjaXNzb3JzOltbMSwxLDI0XV0sYXVkaW9fc2xhc2g6W1swLDIsMjRdLFsxLDIsMjRdXSxhdWRpb19zcGFyazpbWzEsMSwyNF1dLGF1ZGlvX3NxdWFyZV9zdGFjazpbWzAsMiwyNF0sWzEsMiwyNF1dLGF1ZGlvX3N0YWZmOltbMCwyLDI0XSxbMSwyLDI0XV0sYmFja3NwYWNlOltbMCw1LDI0XSxbMSw1LDI0XV0sYmFnOltbMCw3LDI0XSxbMSw3LDI0XV0sCmJhZ19ib29rbWFyazpbWzEsMiwyNF1dLGJhc2tldGJhbGw6W1swLDIsMjRdLFsxLDIsMjRdXSxiZWFrZXI6W1sxLDIsMjRdXSxiZWQ6W1swLDEsMjRdLFswLDEsNDhdLFsxLDEsMjRdLFsxLDEsNDhdXSxiZWxsOltbMCwxMSwyNF0sWzEsMTEsMjRdXSxiZWxsX3NsYXNoOltbMSwxLDI0XV0sYmVsbF93YXZlczpbWzAsMiwyNF0sWzEsMiwyNF1dLGJsdXI6W1sxLDIsMjRdXSxib29rOltbMCwzLDI0XSxbMSwzLDI0XV0sYm9va19hdWRpbzpbWzEsMSwyNF1dLGJvb2ttYXJrOltbMCwxMCwxOF0sWzAsMTAsMjRdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLGJyaWVmY2FzZTpbWzEsMiwyNF1dLGJyaWVmY2FzZV9zbGFzaDpbWzAsMywyNF0sWzEsMywyNF1dLGJyaWdodG5lc3M6W1swLDMsMjRdLFsxLDMsMjRdXSxicm93c2VyOltbMCwyLDI0XSxbMSwyLDI0XV0sYnJvd3Nlcl9zbGFzaDpbWzEsMSwyNF1dLGJ1YmJsZTpbWzEsMSwyNF1dLGJ1YmJsZV9hc3RlcmlzazpbWzAsMiwyNF0sWzEsMiwyNF1dLApidWJibGVfZWxsaXBzaXM6W1sxLDEsMjRdXSxidWJibGVfZ2VhcjpbWzEsMSwyNF1dLGJ1YmJsZV9saXN0OltbMSwxLDI0XV0sYnViYmxlX3BlbmNpbDpbWzEsMSwyNF1dLGJ1YmJsZV9zbGFzaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGJ1YmJsZV9zbG93OltbMCwyLDI0XSxbMCwyLDQ4XSxbMSwyLDI0XSxbMSwyLDQ4XV0sYnViYmxlX3NwYXJrOltbMSwxLDI0XV0sYnViYmxlX3NwYXJrbGVzOltbMSwxLDI0XV0sYnViYmxlX3N0YWNrOltbMCwyLDI0XSxbMSwyLDI0XV0sYnVnOltbMCw0LDE4XSxbMCw0LDI0XSxbMSw0LDI0XV0sYnVzaW5lc3M6W1swLDQsMjRdLFsxLDQsMjRdXSxjYWJsZTpbWzEsMiwyNF1dLGNhbGN1bGF0b3I6W1swLDMsMjRdLFsxLDMsMjRdXSxjYWxlbmRhcjpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhbGVuZGFyX2V2ZW50OltbMCwyLDI0XSxbMSwyLDI0XV0sY2FsZW5kYXJfdG9kYXk6W1sxLDEsMjRdXSxjYW1lcmE6W1swLDEwLDI0XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSwKY2FtZXJhX2F1ZGlvOltbMSw1LDI0XV0sY2FtZXJhX2ZsaXA6W1sxLDQsMjRdXSxjYW1lcmFfaGFzaHRhZzpbWzEsNSwyNF1dLGNhbWVyYV9zcGFya2xlczpbWzEsMSwyNF1dLGNhbWVyYV9zd2l0Y2g6W1swLDMsMjRdLFsxLDMsMjRdXSxjYXJkOltbMCwzLDI0XV0sY2FydDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhcnRfYWRkOltbMSwxLDI0XV0sY2FydF9zcGFyazpbWzEsMSwyNF1dLGNhdDpbWzAsMywyNF0sWzEsMywyNF1dLGNlbGVicmF0aW9uOltbMSwyLDI0XV0sY2hhcnRfYmFyOltbMSwyLDEyXSxbMSwyLDI0XV0sY2hhcnRfYmFyX3NlYXJjaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGNoYXJ0X2Jhcl9zcXVhcmU6W1swLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdXSxjaGFydF9saW5lOltbMSwxLDI0XV0sY2hhcnRfcGllOltbMCwyLDI0XSxbMSwyLDI0XV0sY2hhcnRfc2NhdHRlcl9wbG90OltbMSwxLDI0XV0sY2hlY2s6W1sxLDEzLDEyXSxbMSwxMywxOF0sWzEsMTMsMjRdLFsxLDEzLAozNl1dLGNoZWNrX2NpcmNsZTpbWzAsMTAsMjRdLFsxLDEwLDI0XV0sY2hlY2tfZG9uZTpbWzEsMSwyNF1dLGNoZWNrX2RvbmVfc2xhc2g6W1sxLDEsMjRdXSxjaGVja19zaGllbGQ6W1sxLDEsMjRdXSxjaGVja19zcXVhcmU6W1swLDIsMjRdLFsxLDIsMjRdXSxjaGVja19zcXVhcmVfc3RhY2s6W1swLDEsMjRdXSxjaGV2cm9uX2NvbGxhcHNlOltbMSwzLDI0XV0sY2hldnJvbl9kb3duOltbMSw5LDE4XSxbMSw5LDI0XV0sY2hldnJvbl9kb3duX2NpcmNsZTpbWzAsMywyNF0sWzEsMywyNF1dLGNoZXZyb25fZG93bl9lbmQ6W1sxLDEsMjRdXSxjaGV2cm9uX2V4cGFuZDpbWzEsNSwyNF1dLGNoZXZyb25fbGVmdDpbWzEsOSwyNCwhMF1dLGNoZXZyb25fbGVmdF9jaXJjbGU6W1swLDMsMjRdLFsxLDMsMjRdXSxjaGV2cm9uX2xlZnRfZW5kOltbMSwxLDI0XV0sY2hldnJvbl9sZWZ0X2lvczpbWzEsMywyNF1dLGNoZXZyb25fcmlnaHQ6W1sxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxjaGV2cm9uX3JpZ2h0X2NpcmNsZTpbWzAsCjMsMjRdLFsxLDMsMjRdXSxjaGV2cm9uX3JpZ2h0X2VuZDpbWzEsMSwyNF1dLGNoZXZyb25fcmlnaHRfc3F1YXJlOltbMSwxLDI0XV0sY2hldnJvbl91cDpbWzEsOSwxMl0sWzEsOSwyNF1dLGNoZXZyb25fdXBfY2lyY2xlOltbMCwzLDI0XSxbMSwzLDI0XV0sY2hldnJvbl91cF9lbmQ6W1sxLDEsMjRdXSxjaHJvbWVjYXN0OltbMCwxMSwyNF0sWzEsMTEsMThdLFsxLDExLDI0XSxbMSwxMSwzNl1dLGNocm9tZWNhc3RfbW9iaWxlOltbMSw0LDI0XSxbMSw0LDM2XV0sY2hyb21lY2FzdF93YXZlZm9ybTpbWzEsMiwyNF1dLGNpcmNsZTpbWzAsOSwyNF0sWzEsOSwyNF1dLGNpcmNsZV9mdWxsOltbMCwzLDI0XV0sY2lyY2xlX2Z1bGxfaGFsZjpbWzAsMSwyNF1dLGNpcmNsZV9oYWxmX2ZpbGxlZDpbWzEsMSwyNF1dLGNpcmNsZV9zbGFzaDpbWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF0sWzEsNCw0OF1dLGNpcmNsZXM2OltbMSwxLDI0XV0sY2xhcHBlcmJvYXJkOltbMCwzLDI0XSxbMSwzLAoyNF1dLGNsYXBwZXJib2FyZF9zbGFzaDpbWzEsMSwyNF1dLGNsYXBwZXJib2FyZF9zcGFya2xlczpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrOltbMCwxMCwyNF0sWzAsMTAsNDhdLFsxLDEwLDI0XV0sY2xvY2tfYXJyb3dfY2xvY2t3aXNlOltbMSwxLDI0XV0sY2xvY2tfaGFsZl9kYXNoZWQ6W1sxLDEsMjRdXSxjbG9ja19zcGxpdDpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrX3NwbGl0X2FsZXJ0OltbMCwyLDI0XSxbMSwyLDI0XV0sY2xvc2VkX2NhcHRpb25zOltbMCwzLDI0XSxbMCwzLDQ4XSxbMSwzLDI0XSxbMSwzLDQ4XV0sY2xvdWQ6W1sxLDIsMjRdXSxjbG91ZF9hcnJvd19kb3duOltbMSwzLDI0XV0sY2xvdWRfYXJyb3dfdXA6W1swLDYsMjRdLFsxLDYsMThdLFsxLDYsMjRdXSxjbG91ZF9jaGVjazpbWzAsMywyNF0sWzEsMywyNF1dLGNsb3VkX2VsbGlwc2lzOltbMCwzLDI0XSxbMSwzLDI0XV0sY2xvdWRfc2xhc2g6W1sxLDIsMjRdLFsxLDIsNDhdXSxjbXNfYWxsb3dsaXN0OltbMCwKMiwyNF0sWzEsMiwyNF1dLGNvZGU6W1sxLDIsMjRdXSxjb21wYXJlOltbMSwyLDI0XV0sY29tcGFzczpbWzAsOSwyNF0sWzEsOSwyNF1dLGNvcHk6W1sxLDMsMjRdXSxjb3B5X3RvX2FsbDpbWzEsMSwyNF1dLGNvcHlyaWdodDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNvcHlyaWdodF9zZWFyY2g6W1swLDIsMjRdLFsxLDIsMjRdXSxjb3Zlcl9jbGFpbTpbWzEsMSwyNF1dLGNyZWF0aXZlX2NvbW1vbnM6W1swLDIsMjRdLFsxLDIsMjRdXSxjcmVkaXRfY2FyZDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNyb3A6W1sxLDQsMThdLFsxLDQsMjRdXSxjcm9wX3JvdGF0ZTpbWzEsMiwyNF1dLGNyb3NzaGFpcjpbWzEsMSwxOF0sWzEsMSwyNF1dLGNyb3duOltbMCw1LDE4XSxbMCw1LDI0XSxbMSw1LDI0XV0sY3N2OltbMCwyLDI0XSxbMSwyLDI0XV0sY3ViZTpbWzAsMiwyNF0sWzEsMiwyNF1dLGN1YmVfc3Bhcms6W1sxLDEsMjRdXSxjdXJzb3JfY2xpY2s6W1swLDIsMjRdLFsxLDIsMjRdXSxjdXJ2ZTpbWzEsCjEsMjRdXSxjdnA6W1swLDIsMjRdLFsxLDIsMjRdXSxkYW5jZV9zcGFyazpbWzAsMSwyNF1dLGRhc2hib2FyZDpbWzAsMiwyNF0sWzEsMiwyNF1dLGRhc2hib2FyZF9hZGQ6W1sxLDEsMjRdXSxkaWVfZmFjZTM6W1swLDIsMjRdLFsxLDIsMjRdXSxkaXJlY3Rpb25zOltbMSwzLDI0XV0sZGlzcGxheTpbWzAsMiwyNF0sWzEsMiwyNF1dLGRpc3BsYXlfc2xhc2g6W1sxLDEsMjRdXSxkaXZpZGU6W1sxLDEsMjRdXSxkb2N1bWVudDpbWzAsMiwyNF0sWzEsMiwyNF1dLGRvY3VtZW50X2Fycm93X3VwX3JpZ2h0OltbMCwyLDI0XSxbMSwyLDI0XV0sZG9sbGFyX3NpZ25fYXJyb3dfZmxpcDpbWzEsMSwyNF1dLGRvbGxhcl9zaWduX2NpcmNsZTpbWzAsMTIsMjRdLFsxLDEyLDEyXSxbMSwxMiwxOF0sWzEsMTIsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGVfYWRkOltbMSwxLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX2hhbmQ6W1sxLDEsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGVfcGF1c2U6W1sxLDIsMjRdXSwKZG9sbGFyX3NpZ25fY2lyY2xlX3NsYXNoOltbMSwyLDEyXSxbMSwyLDI0XV0sZG9sbGFyX3NpZ25faGVhcnQ6W1swLDI0LDEyXSxbMCwyNCwyNF0sWzEsMjQsMTJdLFsxLDI0LDI0XV0sZG9sbGFyX3NpZ25fcmVjdGFuZ2xlOltbMSwxLDI0XV0sZG9sbGFyX3NpZ25fdHY6W1swLDIsMjRdLFsxLDIsMjRdXSxkb3Q6W1swLDIsMTJdLFswLDIsMjRdXSxkb3dubG9hZDpbWzEsMTEsMThdLFsxLDExLDI0XV0sZHBhZDpbWzAsMiwyNF0sWzEsMiwyNF1dLGVtYmVkOltbMCwyLDI0XSxbMSwyLDI0XV0sZXF1YWw6W1sxLDIsMThdLFsxLDIsMjRdXSxlcXVhbF9zbGFzaDpbWzEsMSwyNF1dLGV4cGxpY2l0OltbMCw3LDI0XSxbMSw3LDI0XV0sZXllOltbMCw2LDI0XSxbMSw2LDI0XV0sZXllX3NsYXNoOltbMSwxLDI0XV0sZXllZHJvcHBlcjpbWzEsMiwyNF1dLGV5ZWdsYXNzZXM6W1sxLDEsMjRdXSxmYWNlX2FkZDpbWzEsMSwyNF1dLGZhY2VfaGFwcHk6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzAsCjEyLDQ4XSxbMSwxMiwyNF0sWzEsMTIsMzZdXSxmYWNlX2ltYWdlOltbMSwyLDI0XV0sZmFjZV9tZWg6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGZhY2VfbmV1dHJhbDpbWzAsNCwyNF0sWzAsNCwzNl0sWzEsNCwyNF0sWzEsNCwzNl1dLGZhY2VfcGFpbnRicnVzaDpbWzEsMiwyNF1dLGZhY2Vfc2FkOltbMCwxMiwyNF0sWzAsMTIsMzZdLFsxLDEyLDI0XSxbMSwxMiwzNl1dLGZhY2Vfc2NhbGU6W1sxLDEsMjRdXSxmYWNlX3NwYXJrbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sZmFjZV91bmhhcHB5OltbMCwxMCwyNF0sWzAsMTAsMzZdLFsxLDEwLDI0XSxbMSwxMCwzNl1dLGZhY2VfdXBzZXQ6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGZhY2VfdmVyeV9oYXBweTpbWzAsMTIsMjRdLFswLDEyLDM2XSxbMSwxMiwyNF0sWzEsMTIsMzZdXSxmYWNlX3Zlcnlfc2FkOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxmYXNoaW9uOltbMCw0LDI0XSxbMSw0LDI0XV0sZmFzdF9mb3J3YXJkOltbMCw1LDI0XSxbMSwKNSwyNF1dLGZhc3RfcmV3aW5kOltbMCwyLDI0XSxbMSwyLDI0XV0sZmlsbV9zdHJpcDpbWzAsNywyNF0sWzAsNyw0OF0sWzEsNywyNF1dLGZpbG1fc3RyaXBfYWRkOltbMSwyLDI0XV0sZmlsbV9zdHJpcF9hdWRpbzpbWzEsMSwyNF1dLGZpbHRlcjpbWzEsMSwyNF1dLGZpbHRlcl9hdWRpbzpbWzEsMSwyNF1dLGZpbHRlcl9waG90bzpbWzAsOCwyNF0sWzEsOCwyNF1dLGZpcmV3b3JrczpbWzEsMywyNF1dLGZsYWc6W1swLDEwLDI0XSxbMCwxMCw0OF0sWzEsMTAsMThdLFsxLDEwLDI0XSxbMSwxMCw0OF1dLGZsYXNoOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxhc2hfYXV0bzpbWzAsMywyNF0sWzEsMywyNF1dLGZsYXNoX2NpcmNsZTpbWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX3NsYXNoOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxpcF9ob3Jpem9udGFsOltbMSw0LDI0XV0sZmxpcF9ob3Jpem9udGFsX2hhbGZfZGFzaGVkOltbMSwxLDI0XV0sZmxpcF92ZXJ0aWNhbF9oYWxmX2Rhc2hlZDpbWzEsCjEsMjRdXSxmb2xkZXI6W1swLDQsMjRdLFsxLDQsMjRdXSxmb250OltbMSwxLDI0XV0sZm9udF9ib2xkOltbMSwxLDI0XV0sZm9udF9pdGFsaWM6W1sxLDEsMjRdXSxmb250X291dGxpbmU6W1sxLDEsMjRdXSxmb250X3ByZXNlbnQ6W1sxLDEsMjRdXSxmb250X3NlcmlmOltbMSwxLDI0XV0sZm9udF9zaGFkb3c6W1sxLDEsMjRdXSxmb250X3NwYXJrOltbMSwxLDI0XV0sZm9udF9zcXVhcmU6W1swLDIsMjRdLFsxLDIsMjRdXSxmb250X3NxdWFyZV9zcGFyazpbWzEsMSwxOF0sWzEsMSwyNF1dLGZvbnRfc3RyaWtldGhyb3VnaDpbWzEsMSwyNF1dLGZvbnRfc3R5bGU6W1sxLDIsMThdLFsxLDIsMjRdXSxmb250X3VuZGVybGluZTpbWzEsMSwyNF1dLGZvb3RiYWxsOltbMCw0LDI0XSxbMSw0LDI0XSxbMSw0LDM2XV0sZ2FtZV9jb250cm9sbGVyOltbMSwxLDI0XV0sZ2FtaW5nOltbMCwzLDI0XSxbMSwzLDI0XV0sZ2VhcjpbWzAsMTAsMjRdLFswLDEwLDQ4XSxbMSwxMCwxOF0sWzEsMTAsMjRdLApbMSwxMCw0OF1dLGdlc3R1cmVfbG9uZ19wcmVzczpbWzAsMiwyNF0sWzEsMiwyNF1dLGdlc3R1cmVfcGluY2hfaW46W1sxLDEsMjRdXSxnZXN0dXJlX3N3aXBlX2xlZnQ6W1sxLDEsMjRdXSxnZXN0dXJlX3N3aXBlX3JpZ2h0OltbMSwxLDI0XV0sZ2VzdHVyZV9zd2lwZV91cDpbWzEsMSwyNF1dLGdlc3R1cmVfdGFwOltbMCwyLDI0XSxbMSwyLDI0XV0sZ2hvc3Q6W1swLDUsMjRdLFsxLDUsMjRdXSxnaWY6W1swLDMsMThdLFswLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdXSxnaWZ0OltbMCwzLDI0XSxbMSwzLDI0XV0sZ2xvYmU6W1sxLDQsMjRdXSxnbG9iZV9pbWFnZTpbWzEsMywyNF1dLGdsb3c6W1sxLDIsMjRdXSxnb29nbGU6W1swLDEsMjRdXSxnb29nbGVfYmxvZ2dlcjpbWzAsMSwyNF1dLGdvb2dsZV9kcml2ZV9hZGQ6W1sxLDEsMjRdXSxnb29nbGVfbGVuczpbWzEsNCwyNF1dLGdvb2dsZV9tZWV0OltbMCwyLDI0XSxbMSwyLDI0XV0sZ29vZ2xlX3F1aWNrX3NoYXJlOltbMSwxLDI0XV0sCmdyYWR1YXRpb25fY2FwOltbMCwzLDE4XSxbMCwzLDI0XSxbMSwzLDI0XV0sZ3JlYXRlcl90aGFuOltbMSwxLDI0XV0sZ3JlYXRlcl90aGFuX24yMDpbWzEsMSwyNF1dLGdyZWF0ZXJfdGhhbl9vcl9lcXVhbF90bzpbWzEsMSwyNF1dLGhhbmQ6W1sxLDIsMjRdXSxoYW5kX3dhdmU6W1sxLDIsMjRdXSxoYW5kc19jbGFwOltbMSwxLDI0XV0saGFuZHNfaGVhcnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxoYXNodGFnOltbMSwyLDI0XV0saGQ6W1swLDgsMjRdLFsxLDgsMjRdXSxoZWFkc2V0OltbMCw4LDI0XSxbMSw4LDI0XV0saGVhcmluZzpbWzAsMiwyNF0sWzEsMiwyNF1dLGhlYXJ0OltbMCwxOSwyNF0sWzEsMTksMThdLFsxLDE5LDI0XV0saGVhcnRfY2lyY2xlOltbMSwyLDI0XV0saGVhcnRfY3ViZTpbWzEsMSwyNF1dLGhlYXJ0X3NsYXNoOltbMSwxLDI0XV0saGVscF9idWJibGU6W1swLDIsMjRdLFsxLDIsMjRdXSxoZWxwX2NpcmNsZTpbWzEsMiwxOF0sWzEsMiwyNF1dLGhpZXJhcmNoeTpbWzAsCjQsMjRdLFsxLDQsMjRdXSxoaWdobGlnaHRzOltbMSwyLDI0XV0saGlzdG9yeTpbWzEsMSwyNF1dLGhvbWU6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGhvdXJnbGFzczpbWzEsMywxOF0sWzEsMywyNF1dLGh5cGU6W1swLDIsMjRdLFsxLDIsMjRdXSxpbWFnZTpbWzAsOCwyNF0sWzEsOCwyNF1dLGltYWdlX2FkZDpbWzAsNCwyNF0sWzEsNCwyNF1dLGltYWdlX2ZyYW1lOltbMSwxLDI0XV0saW1hZ2VfbGlzdDpbWzAsMiwyNF0sWzEsMiwyNF1dLGltYWdlX2xpc3Rfc2xhc2g6W1sxLDEsMjRdXSxpbWFnZV9zcGFyazpbWzEsMSwyNF1dLGltYWdlX3N0YWNrOltbMCwyLDI0XSxbMSwyLDI0XV0saW1hZ2Vfdmlld2ZpbmRlcjpbWzEsMSwyNF1dLGluY29nbml0bzpbWzAsOSwyNF0sWzEsOSwyNF1dLGluZmluaXR5OltbMSwyLDI0XV0saW5mb19jaXJjbGU6W1sxLDEwLDE4XSxbMSwxMCwyNF1dLGluZm9fY2lyY2xlX3NwYXJrOltbMSwxLDI0XV0samV3ZWw6W1sxLDEsMjRdXSxqb3VybmV5OltbMSwKMiwyNF1dLGtleTpbWzEsNSwyNF1dLGtleWJvYXJkOltbMCw0LDI0XSxbMSw0LDI0XV0sbGFiZWw6W1swLDQsMjRdLFsxLDQsMjRdXSxsYWJlbF9zbGFzaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGxhcHRvcDpbWzEsMywyNF1dLGxhcHRvcF9tb2JpbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxsYXlvdXRfYm90dG9tOltbMSwxLDI0XV0sbGF5b3V0X2ZvcmVncm91bmQ6W1sxLDEsMjRdXSxsYXlvdXRfZnVsbDpbWzEsMSwyNF1dLGxheW91dF9sZWZ0OltbMSwxLDI0XV0sbGF5b3V0X21pZGRsZTpbWzEsMSwyNF1dLGxheW91dF9waWN0dXJlX2luX3BpY3R1cmU6W1sxLDEsMjRdXSxsYXlvdXRfcmlnaHQ6W1sxLDEsMjRdXSxsYXlvdXRfdG9wOltbMSwxLDI0XV0sbGVhZjpbWzEsMiwyNF1dLGxlc3NfdGhhbjpbWzEsMSwyNF1dLGxlc3NfdGhhbl9uNDpbWzEsMSwyNF1dLGxlc3NfdGhhbl9vcl9lcXVhbF90bzpbWzEsMSwyNF1dLGxpY2Vuc2U6W1swLDIsMjRdLFsxLDIsMjRdXSxsaWNlbnNlX2FsZXJ0OltbMSwKMSwyNF1dLGxpY2Vuc2Vfc2VhcmNoOltbMSwxLDI0XV0sbGljZW5zZV9zbGFzaDpbWzEsMSwyNF1dLGxpZ2h0YnVsYjpbWzAsNCwyNF0sWzEsNCwyNF1dLGxpbms6W1sxLDgsMThdLFsxLDgsMjRdXSxsaW5rX3NsYXNoOltbMSwxLDI0XV0sbGl2ZTpbWzEsMywxMl0sWzEsMywyNF1dLGxpdmVfcGhvdG86W1sxLDIsMjRdXSxsaXZlX3dhdmVzOltbMSwyLDE4XSxbMSwyLDI0XV0sbG9jYXRpb25fcGluOltbMCwyLDI0XSxbMSwyLDI0XV0sbG9jYXRpb25fcGluX3NsYXNoOltbMSwxLDI0XV0sbG9jazpbWzAsMTMsMTJdLFswLDEzLDI0XSxbMSwxMywxOF0sWzEsMTMsMjRdLFsxLDEzLDQ4XV0sbG9ja19jbG9jazpbWzEsMSwyNF1dLGxvY2tfbjI6W1sxLDEsMjRdXSxsb2NrX29wZW46W1swLDQsMjRdLFsxLDQsMjRdXSxtYWdpY193YW5kOltbMCwzLDI0XSxbMSwzLDI0XV0sbWFpbDpbWzAsOSwyNF0sWzEsOSwyNF1dLG1hcDpbWzEsMywyNF1dLG1lZGFsOltbMSwyLDI0XV0sbWVkYWxfc3RhcjpbWzEsCjIsMjRdXSxtZWdhcGhvbmU6W1swLDUsMjRdLFsxLDUsMTJdLFsxLDUsMjRdXSxtZW1iZXJzaGlwczpbWzAsOSwyNF0sWzAsOSwzNl0sWzEsOSwyNF1dLG1lbWJlcnNoaXBzX2dpZnQ6W1sxLDEsMjRdXSxtZW50aW9uOltbMSw1LDI0XV0sbWVudTpbWzEsMSwyNF1dLG1pYzpbWzAsMTQsMThdLFswLDE0LDI0XSxbMCwxNCwzNl0sWzAsMTQsNDhdLFsxLDE0LDE4XSxbMSwxNCwyNF0sWzEsMTQsNDhdXSxtaWNfc2xhc2g6W1sxLDIsMjRdXSxtaWNfc3Bhcms6W1swLDEsMThdLFswLDEsMjRdLFsxLDEsMThdLFsxLDEsMjRdXSxtaW51czpbWzEsMiwxOF0sWzEsMiwyNF1dLG1pbnVzX2NpcmNsZTpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLG1pbnVzX3NxdWFyZTpbWzAsMiwyNF0sWzEsMiwyNF1dLG1peDpbWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF1dLG1vYmlsZTpbWzAsNCwyNF0sWzEsNCwyNF1dLG1vYmlsZV9hcnJvd19kb3duOltbMSwxLDI0XV0sbW9iaWxlX2Fycm93X2luOltbMSwKMSwyNF1dLG1vYmlsZV9hcnJvd19vdXQ6W1sxLDEsMjRdXSxtb2JpbGVfY2hlY2s6W1sxLDIsMjRdXSxtb2JpbGVfbGFuZHNjYXBlOltbMCwzLDI0XSxbMSwzLDI0XV0sbW90aW9uOltbMSwyLDI0XV0sbW92ZTpbWzEsNCwxOF0sWzEsNCwyNF1dLG11c2ljX3ZpZGVvOltbMCw0LDI0XSxbMSw0LDI0XV0sbXVzaWNfdmlkZW9fc2xhc2g6W1sxLDEsMjRdXSxuMTU6W1sxLDEsMjRdXSxuMXBvaW50Mng6W1sxLDEsMjRdXSxuMXBvaW50NXg6W1sxLDEsMjRdXSxuMXBvaW50OHg6W1sxLDEsMjRdXSxuMXg6W1sxLDEsMjRdXSxuMmQ6W1sxLDEsMjRdXSxuMnBvaW50NXg6W1sxLDEsMjRdXSxuMng6W1sxLDEsMjRdXSxuM2Q6W1sxLDEsMjRdXSxuM3g6W1sxLDEsMjRdXSxuNGQ6W1sxLDEsMjRdXSxuNGs6W1swLDEsMjRdLFsxLDEsMjRdXSxuNjA6W1sxLDEsMjRdXSxuOGs6W1swLDEsMjRdLFsxLDEsMjRdXSxuZXdfcmVsZWFzZTpbWzEsMSwyNF1dLG5ld3M6W1swLDMsMjRdLFsxLDMsMjRdXSxuZXdzX2FsZXJ0OltbMCwKMSwyNF1dLG5vZGVfbGVmdDpbWzEsMiwyNF1dLG5vZGVfcmlnaHQ6W1sxLDIsMjRdXSxub3RlOltbMCwxLDE4XSxbMCwxLDI0XSxbMSwxLDE4XSxbMSwxLDI0XV0sbm90ZV9zcGFyazpbWzAsMiwxOF0sWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLG9wZW5faW5fcGFuZWw6W1sxLDIsMjRdXSxvcmlnaW5hbHM6W1swLDEsMjRdLFsxLDEsMjRdXSxvdmVyZmxvd19ob3Jpem9udGFsOltbMSw2LDI0XSxbMSw2LDM2XV0sb3ZlcmZsb3dfdmVydGljYWw6W1sxLDEzLDE4XSxbMSwxMywyNF0sWzEsMTMsMzZdXSxwYWdlX3NlYXJjaDpbWzEsMSwyNF1dLHBhaW50X2J1Y2tldDpbWzEsMywyNF1dLHBhaW50X3BhbGV0dGU6W1sxLDEsMjRdXSxwYW5lbHM6W1swLDIsMjRdLFsxLDIsMjRdXSxwYXVzZTpbWzAsOSwyNF0sWzAsOSwzNl0sWzAsOSw0OF0sWzEsOSwyNF1dLHBhdXNlX2NpcmNsZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHBhdXNlX2hpc3Rvcnk6W1sxLDEsMjRdXSxwYXdwcmludDpbWzAsCjIsMjRdLFsxLDIsMjRdXSxwZGY6W1sxLDIsMjRdXSxwZW5jaWw6W1swLDEwLDI0XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSxwZW5jaWxfc3Bhcms6W1sxLDEsMjRdXSxwZXJjZW50OltbMSwxLDI0XV0scGVyc29uOltbMCw3LDI0XSxbMSw3LDEyXSxbMSw3LDI0XV0scGVyc29uMjpbWzEsMSwyNF1dLHBlcnNvbjJfcmVjdGFuZ2xlOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uMzpbWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLHBlcnNvbl9hZGQ6W1swLDcsMjRdLFsxLDcsMThdLFsxLDcsMjRdXSxwZXJzb25fYXVkaW86W1swLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdLFsxLDMsNDhdXSxwZXJzb25fYmFja2dyb3VuZF9zcGFyazpbWzEsMSwyNF1dLHBlcnNvbl9jaGVjazpbWzEsMSwyNF1dLHBlcnNvbl9jaGlsZDpbWzAsMiwxMl0sWzAsMiwyNF0sWzEsMiwyNF1dLHBlcnNvbl9jaXJjbGU6W1swLDEwLDI0XSxbMSwxMCwyNF0sWzEsMTAsNDhdXSxwZXJzb25fY2lyY2xlX3NsYXNoOltbMSwKMiwyNF1dLHBlcnNvbl9nZWFyOltbMCwyLDI0XSxbMSwyLDI0XV0scGVyc29uX3NoaWVsZDpbWzEsNywyNF1dLHBlcnNvbl9zcXVhcmU6W1swLDIsMjRdLFsxLDIsMThdLFsxLDIsMjRdXSxwZXJzb25fc3F1YXJlX3NwYXJrOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3NxdWFyZV9zdGFjazpbWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLHBlcnNvbl92aWV3ZmluZGVyOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3dhdmVmb3JtOltbMSwyLDI0XV0scGVyc29uX3dhdmVzOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3g6W1sxLDEsMjRdXSxwaG9uZTpbWzAsMywyNF0sWzEsMywxMl0sWzEsMywyNF1dLHBpYW5vOltbMSwxLDI0XV0scGljdHVyZV9pbl9waWN0dXJlOltbMCwyLDI0XSxbMSwyLDI0XV0scGljdHVyZV9pbl9waWN0dXJlX3N0YWNrOltbMSwxLDI0XV0scGluOltbMCw3LDI0XSxbMSw3LDE4XSxbMSw3LDI0XV0scGluX3NsYXNoOltbMCwyLDI0XSxbMSwyLDE4XSwKWzEsMiwyNF1dLHBsYXk6W1swLDQsMThdLFswLDQsMjRdLFswLDQsMzZdLFswLDQsNDhdLFsxLDQsMjRdXSxwbGF5X2NpcmNsZTpbWzAsMiwyNF0sWzAsMiw0OF0sWzEsMiwyNF1dLHBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkOltbMSwxLDI0XV0scGxheV9wYXVzZTpbWzAsMSwyNF0sWzEsMSwyNF1dLHBsYXlfc2xhc2g6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5X3NxdWFyZV9oYWxmX2Rhc2hlZDpbWzEsMSwyNF1dLHBsYXlfc3F1YXJlX3N0YWNrOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWFibGVzOltbMCwyLDI0XSxbMSwyLDE4XSxbMSwyLDI0XV0scGxheWVyX2RlZmF1bHQ6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5ZXJfZnVsbF9lbnRlcjpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2VudGVyX2FsdDpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2VudGVyX3BvcnRyYWl0OltbMSwyLDI0XV0scGxheWVyX2Z1bGxfZXhpdDpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2V4aXRfYWx0OltbMSwxLAoyNF1dLHBsYXllcl9taW5pX2VudGVyOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWVyX21pbmlfZXhpdDpbWzEsMSwyNF1dLHBsYXllcl9tdWx0aXZpZXc6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5ZXJfc3dpdGNoOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWVyX3RoZWF0ZXI6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5bGlzdDpbWzEsNSwxMl0sWzEsNSwxOF0sWzEsNSwyNF0sWzEsNSw0OF1dLHBsYXlsaXN0X2FkZDpbWzEsMywxOF0sWzEsMywyNF1dLHBsYXlsaXN0X2F1ZGlvOltbMCwzLDI0XSxbMSwzLDE4XSxbMSwzLDI0XSxbMSwzLDQ4XV0scGxheWxpc3RfYXVkaW9fc2xhc2g6W1sxLDEsMjRdXSxwbGF5bGlzdF9jaGVjazpbWzEsMSwyNF1dLHBsYXlsaXN0X3BlbmNpbDpbWzEsMiwyNF0sWzEsMiw0OF1dLHBsYXlsaXN0X3g6W1sxLDMsMThdLFsxLDMsMjRdXSxwb2RjYXN0OltbMCw2LDEyXSxbMCw2LDI0XSxbMSw2LDEyXSxbMSw2LDE4XSxbMSw2LDI0XSxbMSw2LDQ4XV0scG9kY2FzdF9hZGQ6W1swLAoyLDI0XSxbMSwyLDI0XV0scG9kY2FzdF9jaGVjazpbWzAsMiwyNF1dLHBvaW50Mng6W1sxLDEsMjRdXSxwb2ludDN4OltbMSwxLDI0XV0scG9pbnQ1eDpbWzEsMSwyNF1dLHBvaW50OHg6W1sxLDEsMjRdXSxwb2xsOltbMSwxMCwxOF0sWzEsMTAsMjRdLFsxLDEwLDM2XV0scG9zdDpbWzAsMiwxMl0sWzAsMiwxOF0sWzAsMiwyNF0sWzEsMiwxMl0sWzEsMiwxOF0sWzEsMiwyNF1dLHByZW1pdW06W1swLDEsMjRdLFsxLDEsMjRdXSxwcmVzZW50YXRpb246W1sxLDMsMjRdXSxwcmljZV90YWc6W1swLDgsMjRdLFswLDgsNDhdLFsxLDgsMjRdXSxwcmljZV90YWdfaGVhcnQ6W1sxLDIsMjRdXSxwcmljZV90YWdfcmVjdGFuZ2xlOltbMSwxLDI0XV0scXJfY29kZTpbWzEsMywyNF1dLHFyX2NvZGVfdmlld2ZpbmRlcjpbWzEsMSwyNF1dLHF1ZXN0aW9uX2hlYWQ6W1sxLDIsMjRdXSxxdWV1ZTpbWzEsMSwyNF1dLHF1ZXVlX2xhc3Q6W1sxLDEsMjRdXSxxdWV1ZV9uZXh0OltbMSwxLDI0XV0scXVpejpbWzAsCjEsMjRdLFsxLDEsMjRdXSxxdW90ZTpbWzAsMSwyNF0sWzEsMSwyNF1dLHF1b3RlX3NsYXNoOltbMCwxLDI0XSxbMSwxLDI0XV0scmVjb3JkOltbMCwyLDI0XV0scmVkbzpbWzEsMiwxOF0sWzEsMiwyNF1dLHJlbWl4OltbMSwyLDI0XV0scmVtaXhfc3BhcmtsZXM6W1sxLDEsMjRdXSxyZW1vdGVfd2F2ZXM6W1sxLDEsMjRdXSxyZXBlYXQ6W1swLDIsMjRdLFsxLDIsMjRdXSxyZXBlYXQxOltbMCwxLDI0XSxbMSwxLDI0XV0scmVwbGF5OltbMSwyLDI0XSxbMSwyLDM2XV0scm90YXRlX2Nsb2Nrd2lzZTpbWzEsMSwyNF1dLHJvdGF0ZV9jb3VudGVyY2xvY2t3aXNlOltbMSwxLDI0XV0scm90YXRlX2xhbmRzY2FwZTpbWzEsMiwxOF0sWzEsMiwyNF1dLHJvdGF0ZV9wb3J0cmFpdDpbWzEsMSwyNF1dLHJzczpbWzEsMiwyNF1dLHJzc19zbGFzaDpbWzEsMSwyNF1dLHJ1Ynk6W1sxLDIsMjRdXSxzYW1wbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sc2F0dXJhdGlvbjpbWzEsMiwyNF1dLHNjYWxlOltbMSwKNCwyNF1dLHNjaXNzb3JzOltbMCw4LDI0XSxbMSw4LDE4XSxbMSw4LDI0XV0sc2Npc3NvcnNfY3V0OltbMSw0LDI0XV0sc2NyaWJibGU6W1sxLDEsMjRdXSxzZDpbWzAsMywyNF0sWzEsMywyNF1dLHNlYXJjaDpbWzAsMTUsMjRdLFsxLDE1LDE4XSxbMSwxNSwyNF0sWzEsMTUsNDhdXSxzZWFyY2hfc2hpZWxkOltbMCwxLDI0XSxbMSwxLDI0XV0sc2VhcmNoX3NwYXJrOltbMSwzLDE4XSxbMSwzLDI0XV0sc2Vla19mb3J3YXJkOltbMCwxLDI0XV0sc2Vla19yZXdpbmQ6W1swLDEsMjRdXSxzZW5kOltbMCw3LDE4LCEwXSxbMCw3LDI0LCEwXSxbMSw3LDE4LCEwXSxbMSw3LDI0LCEwXV0sc2hhZG93OltbMSwxLDI0XV0sc2hhZG93X2hhcmQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzaGFkb3dfc29mdDpbWzAsMywyNF0sWzEsMywyNF1dLHNoYXBlczpbWzAsMywyNF0sWzEsMywyNF1dLHNoYXJlOltbMCwxMiwyNCwhMF0sWzEsMTIsMTgsITBdLFsxLDEyLDI0LCEwXV0sc2hhcmVfYW5kcm9pZDpbWzAsCjIsMjRdLFsxLDIsMjRdXSxzaGFyZV9pb3M6W1sxLDIsMjRdXSxzaGFycGVuOltbMSwxLDI0XV0sc2hpZWxkOltbMCw2LDI0XSxbMSw2LDI0XV0sc2hpZWxkX2FkZDpbWzEsMiwyNF1dLHNoaWVsZF9oZWFsdGg6W1sxLDEsMjRdXSxzaGllbGRfb3ZlcmZsb3c6W1sxLDIsMjRdXSxzaGllbGRfc2xhc2g6W1sxLDEsMjRdXSxzaGllbGRfeDpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHNob3J0czpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywyNF1dLHNob3J0c19hZGQ6W1sxLDEsMThdLFsxLDEsMjRdXSxzaG9ydHNfZW1wdHk6W1swLDMsMThdLFswLDMsMjRdLFsxLDMsMjRdXSxzaHVmZmxlOltbMCw0LDI0XSxbMSw0LDE4XSxbMSw0LDI0XV0sc2tpcDEwX2JhY2s6W1sxLDIsMjRdLFsxLDIsMzZdXSxza2lwMTBfZm9yd2FyZDpbWzEsMSwyNF1dLHNraXAxNV9iYWNrOltbMSwxLDI0XV0sc2tpcDE1X2ZvcndhcmQ6W1sxLDEsMjRdXSxza2lwMjBfYmFjazpbWzEsMSwyNF1dLHNraXAyMF9mb3J3YXJkOltbMSwKMSwyNF1dLHNraXAzMF9iYWNrOltbMSwxLDI0XV0sc2tpcDMwX2ZvcndhcmQ6W1sxLDIsMjRdLFsxLDIsMzZdXSxza2lwNV9iYWNrOltbMSwxLDI0XV0sc2tpcDVfZm9yd2FyZDpbWzEsMSwyNF1dLHNraXA2MF9iYWNrOltbMSwxLDI0XV0sc2tpcDYwX2ZvcndhcmQ6W1sxLDEsMjRdXSxza2lwX2Rvd246W1swLDYsMjRdLFsxLDYsMjRdXSxza2lwX25leHQ6W1swLDcsMTJdLFswLDcsMjRdLFswLDcsMzZdLFsxLDcsMjRdXSxza2lwX3ByZXZpb3VzOltbMCw2LDI0XSxbMCw2LDM2XSxbMSw2LDI0XV0sc2tpcF91cDpbWzAsNiwyNF0sWzEsNiwyNF1dLHNsYXNoX2ZvcndhcmQ6W1sxLDEsMjRdXSxzbGVlcF90aW1lcjpbWzAsMiwyNF0sWzEsMiwyNF1dLHNsaXA6W1sxLDEsMThdLFsxLDEsMjRdXSxzbm93Zmxha2U6W1sxLDEsMjRdXSxzb2NjZXJfYmFsbDpbWzEsMywyNF1dLHNvbmFyOltbMSwxLDI0XV0sc29ydDpbWzEsMywxMl0sWzEsMywxOF0sWzEsMywyNF1dLHNwYWNlYmFyOltbMSwyLAoyNF1dLHNwYXJrOltbMCwxMSwxMl0sWzAsMTEsMjRdLFsxLDExLDI0XV0sc3BhcmtfYnViYmxlX2NoYXQ6W1sxLDEsMjRdXSxzcGFya19saWdodGJ1bGI6W1swLDMsMjRdLFsxLDMsMjRdXSxzcGFya19zZWFyY2g6W1sxLDEsMjRdXSxzcGFya193YXZlczpbWzAsMiwyNF0sWzEsMiwyNF1dLHNwYXJrbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sc3BlYWtlcjpbWzEsMiwyNF1dLHNwZWFrZXJfaGVhZHNldDpbWzEsMiwyNF1dLHNwZWFrZXJfc2xhc2g6W1sxLDEsMjRdXSxzcGVha2VyX3N0YWNrOltbMSwxLDI0XV0sc3BlYWtlcl9zdGFja19zbGFzaDpbWzEsMSwyNF1dLHNwZWVkb21ldGVyOltbMCwyLDI0XSxbMSwyLDI0XV0sc3BsaWNlOltbMSwxLDI0XV0sc3BsaXQ6W1sxLDQsMjRdXSxzcG90bGlnaHQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzcHJlYWRzaGVldDpbWzEsMSwyNF1dLHNxdWFyZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHNxdWFyZTNfc3RhY2s6W1swLDIsMjRdLFsxLDIsMjRdXSwKc3F1YXJlM2Rfc3RhY2s6W1swLDIsMjRdLFsxLDIsMjRdXSxzcXVhcmVfZ3JpZDJ4MjpbWzEsMSwyNF1dLHNxdWFyZV9ncmlkM3gzOltbMCwyLDI0XSxbMSwyLDI0XV0sc3F1YXJlX3BhaW50YnJ1c2g6W1sxLDEsMjRdXSxzcXVhcmVfcGVuY2lsOltbMCwzLDI0XSxbMSwzLDE4XSxbMSwzLDI0XV0sc3RhYmxlX3ZvbHVtZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHN0YXI6W1swLDYsMTJdLFswLDYsMjRdLFsxLDYsMTJdLFsxLDYsMjRdXSxzdGFyX2NpcmNsZTpbWzAsNiwxMl0sWzAsNiwxOF0sWzAsNiwyNF0sWzAsNiwzNl0sWzEsNiwyNF1dLHN0YXJfZnVsbF9oYWxmOltbMCwxLDEyXSxbMCwxLDI0XV0sc3Rhcl9oYWxmX2ZpbGxlZDpbWzEsMiwxMl0sWzEsMiwyNF1dLHN0YXJfdGlja2V0OltbMCwyLDI0XSxbMSwyLDI0XV0sc3Rhcl90cm9waHk6W1sxLDEsMjRdXSxzdGFyX3R2OltbMSwxLDI0XV0sc3RpY2tlcjpbWzEsMywxOF0sWzEsMywyNF1dLHN0b3A6W1swLDYsMjRdLFswLDYsMzZdLApbMSw2LDI0XV0sc3RvcF9jaXJjbGU6W1swLDIsMjRdLFsxLDIsMjRdXSxzdG9wd2F0Y2g6W1swLDUsMjRdLFsxLDUsMjRdXSxzdG9wd2F0Y2gxMDpbWzAsMSwyNF1dLHN0b3B3YXRjaDM6W1swLDEsMjRdXSxzdG9yYWdlOltbMCwyLDI0XSxbMSwyLDI0XV0sc3Vic2NyaXB0aW9uczpbWzAsMTIsMjRdLFsxLDEyLDI0XSxbMSwxMiw0OF1dLHN1YnRpdGxlczpbWzAsNSwyNF0sWzAsNSw0OF0sWzEsNSwyNF1dLHN1YnRpdGxlc19idWJibGU6W1sxLDEsMjRdXSxzdW06W1sxLDEsMjRdXSxzdXBlcl9jaGF0OltbMCw4LDI0XSxbMSw4LDI0XV0sc3VwZXJfc3RhcjpbWzEsMSwyNF1dLHN1cGVyX3N0aWNrZXI6W1swLDgsMjRdLFsxLDgsMjRdXSxzdXBlcl9zdG9yZTpbWzAsMywyNF0sWzEsMywyNF1dLHN1cHBvcnRfYWdlbnQ6W1sxLDEsMjRdXSxzdXJyb3VuZF9zb3VuZDpbWzAsMiwyNF0sWzEsMiwyNF1dLHRhYmxldF9sYW5kc2NhcGU6W1sxLDEsMjRdXSx0YXJnZXQ6W1sxLDIsMjRdXSx0YXJnZXRfYWRkOltbMSwKMiwyNF1dLHRlbXBsYXRlX2FkZDpbWzEsMywyNF1dLHRlbXBsYXRlX3BsYXk6W1swLDMsMjRdLFsxLDMsMjRdXSx0ZW1wbGF0ZV9wbGF5X3NwYXJrOltbMSwxLDI0XV0sdGV4dF9hbGlnbl9jZW50ZXI6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X2FsaWduX2xlZnQ6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X2FsaWduX3JpZ2h0OltbMCwyLDI0XSxbMSwyLDI0XV0sdGV4dF9idWJibGU6W1swLDQsMjRdLFsxLDQsMTJdLFsxLDQsMThdLFsxLDQsMjRdXSx0ZXh0X3BhZ2U6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X3BhZ2VfYWxlcnQ6W1sxLDEsMjRdXSx0ZXh0X3BhZ2VfY2hlY2s6W1sxLDEsMjRdXSx0ZXh0X3BhZ2VfaW5mbzpbWzEsMSwyNF1dLHRleHRfc3Bhcms6W1sxLDEsMjRdXSx0ZXh0dXJlOltbMSwxLDI0XV0sdGhlYXRlcjpbWzEsMSwyNF1dLHRoZW1lOltbMCwyLDI0XSxbMSwyLDI0XV0sdGhlcm1vbWV0ZXI6W1sxLDIsMjRdXSx0aHVtYl9kb3duOltbMCwyNSwxOF0sWzAsCjI1LDI0XSxbMCwyNSwzNl0sWzAsMjUsNDhdLFsxLDI1LDE4XSxbMSwyNSwyNF0sWzEsMjUsMzZdLFsxLDI1LDQ4XV0sdGh1bWJfdXA6W1swLDI0LDEyXSxbMCwyNCwxOF0sWzAsMjQsMjRdLFswLDI0LDM2XSxbMCwyNCw0OF0sWzEsMjQsMTJdLFsxLDI0LDE4XSxbMSwyNCwyNF0sWzEsMjQsMzZdLFsxLDI0LDQ4XV0sdGh1bWJfdXBfZG93bjpbWzAsNCwyNF0sWzEsNCwyNF1dLHRpbHQ6W1sxLDQsMjRdXSx0aW1lbGluZTpbWzEsMywyNF1dLHRpbWVsaW5lX3NwYXJrOltbMSwxLDI0XV0sdGltZXN0YW1wX2FkZDpbWzEsMSwyNF1dLHRvb2xib3g6W1swLDQsMjRdLFsxLDQsMjRdXSx0cmFuc2NyaXB0OltbMSwyLDI0XV0sdHJhbnNpdGlvbjpbWzAsNSwyNF0sWzEsNSwyNF1dLHRyYW5zbGF0ZTpbWzEsNCwxOF0sWzEsNCwyNF1dLHRyYXNoX2NhbjpbWzAsMTAsMjRdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLHRyZW5kaW5nOltbMCwyLDI0XSxbMSwyLDI0XV0sdHJpYW5nbGVfZG93bjpbWzAsOCwKMThdLFswLDgsMjRdLFsxLDgsMjRdXSx0cmlhbmdsZV91cDpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywyNF1dLHRyb3BoeTpbWzAsMywyNF0sWzEsMywyNF1dLHRydWNrOltbMCw1LDI0XSxbMSw1LDI0XV0sdHY6W1swLDgsMjRdLFsxLDgsMjRdLFsxLDgsNDhdXSx0dl9hcnJvd19sZWZ0OltbMSwyLDI0XV0sdHZfY2lyY2xlOltbMCwzLDI0XSxbMSwzLDI0XV0sdHZfbW9iaWxlOltbMSwyLDI0XSxbMSwyLDM2XV0sdHZfc2xhc2g6W1sxLDEsMjRdXSx1bmFyY2hpdmU6W1sxLDEsMjRdXSx1bmRvOltbMSwyLDE4XSxbMSwyLDI0XV0sdXBsb2FkOltbMSw1LDI0XV0sdmFyaWFibGU6W1sxLDQsMjRdXSx2aWRlbzpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHZpZGVvX2NhbWVyYTpbWzAsOSwyNF0sWzAsOSw0OF0sWzEsOSwyNF0sWzEsOSw0OF1dLHZpZGVvX2NhbWVyYV9hZGQ6W1sxLDIsMjRdXSx2aWRlb19jYW1lcmFfc2xhc2g6W1sxLDEsMjRdXSx2aWRlb19saW5rOltbMSw1LDE4XSwKWzEsNSwyNF1dLHZpZGVvX3BvcnRyYWl0X3NwYXJrOltbMSwxLDI0XV0sdmlkZW9fcmV2ZXJzZTpbWzEsMSwyNF1dLHZpZGVvX3NsYXNoOltbMSwxLDEyXSxbMSwxLDE4XSxbMSwxLDI0XSxbMSwxLDM2XSxbMSwxLDQ4XV0sdmlkZW9fc3Bhcms6W1sxLDIsMjRdXSx2aWRlb19zdGFja19zcGFyazpbWzEsMSwxOF0sWzEsMSwyNF1dLHZpZGVvX3N0aXRjaDpbWzEsMiwyNF1dLHZpZGVvX3dhdmVmb3JtOltbMSwxLDI0XV0sdmlld19jb2x1bW4yOltbMSwxLDI0XV0sdmlld19jb2x1bW4zOltbMCwyLDI0XSxbMSwyLDI0XV0sdmlld19jb2x1bW4zX3JvdzI6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2NvbXBhY3Q6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2ZlZWQ6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2xpc3Q6W1sxLDEsMjRdXSx2aWV3X3JvdzI6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X3RpbWVsaW5lOltbMSwxLDI0XV0sdmlld2ZpbmRlcjpbWzEsMSwxMl0sWzEsMSwxOF0sClsxLDEsMjRdXSx2aWduZXR0ZTpbWzEsMSwyNF1dLHZvbHVtZV9mYWRlOltbMSwyLDI0XV0sdm9sdW1lX21heDpbWzAsMiwyNF0sWzEsMiwyNF1dLHZvbHVtZV9taW46W1swLDIsMjRdLFsxLDIsMjRdXSx2b2x1bWVfbXV0ZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHZyOltbMCw3LDI0XSxbMSw3LDI0XV0sd2F0Y2g6W1sxLDEsMjRdXSx3YXRlcjpbWzEsMSwyNF1dLHdhdmVmb3JtOltbMSwzLDI0XSxbMSwzLDQ4XV0sd2F2ZWZvcm1fc3Bhcms6W1sxLDIsMjRdXSx3aWZpX3RldGhlcmluZzpbWzEsMSwyNF1dLHdyZW5jaDpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHg6W1sxLDExLDE4XSxbMSwxMSwyNF0sWzEsMTEsMzZdXSx4X2NpcmNsZTpbWzAsOSwyNF0sWzEsOSwxOF0sWzEsOSwyNF1dLHhfb2N0YWdvbjpbWzEsMywxMl0sWzEsMywyNF1dLHhfcmVjdGFuZ2xlOltbMSwxLDI0XV0seWVuX3NpZ25fcmVjdGFuZ2xlOltbMCwyLDI0XSxbMSwyLDI0XV0seW91dHViZTpbWzAsCjIsMjRdLFsxLDIsMjRdXSx5b3V0dWJlX2tpZHM6W1swLDUsMjRdLFsxLDUsMjRdXSx5b3V0dWJlX2xhYnM6W1swLDEsMjRdXSx5b3V0dWJlX211c2ljOltbMCw3LDI0XSxbMSw3LDI0XV0seW91dHViZV9zaG9ydHM6W1swLDExLDI0XSxbMSwxMSwyNF1dLHlvdXR1YmVfc3R1ZGlvOltbMCw4LDI0XSxbMSw4LDI0XV0seW91dHViZV90djpbWzAsOCwyNF0sWzEsOCwyNF1dLHpvb21fYXV0bzpbWzEsMiwyNF1dLHpvb21faW46W1swLDIsMjRdLFsxLDIsMjRdXSx6b29tX291dDpbWzAsMiwyNF0sWzEsMiwyNF1dfTt2YXIgWHFhPXtWT0xVTUVfVVBfREVMSElfUExBWUVSX0ZJTExFRDoiVk9MVU1FX01BWCIsVk9MVU1FX09GRl9ERUxISV9QTEFZRVI6IlZPTFVNRV9NVVRFIixWT0xVTUVfRE9XTl9ERUxISV9QTEFZRVJfRklMTEVEOiJWT0xVTUVfTUlOIixDTE9TRURfQ0FQVElPTl9ERUxISV9QTEFZRVI6IkNBUFRJT05TIixDTE9TRURfQ0FQVElPTl9ERUxISV9QTEFZRVJfRklMTEVEOiJDQVBUSU9OUyIsU1VCVElUTEVTX0RFTEhJX1BMQVlFUjoiU1VCVElUTEVTIixTVUJUSVRMRVNfREVMSElfUExBWUVSX0ZJTExFRDoiU1VCVElUTEVTIixQTEFZRVJfRlVMTF9FTlRFUl9BTFQ6IlBMQVlFUl9GVUxMX0VOVEVSX0FMVCIsUExBWUVSX0ZVTExfRVhJVF9BTFQ6IlBMQVlFUl9GVUxMX0VYSVRfQUxUIixQQVVTRV9ERUxISV9QTEFZRVJfRklMTEVEOiJQQVVTRSIsUExBWV9BUlJPV19ERUxISV9QTEFZRVJfRklMTEVEOiJQTEFZX0FSUk9XIn0sdlo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9bWYoYSwKYil7dmFyIGM9WHFhW2EuaWNvbk5hbWUudG9VcHBlckNhc2UoKV07YyYmKGEuaWNvbk5hbWU9Yyk7dmFyIGQ9YS5pY29uTmFtZTtkPWQucmVwbGFjZSgvLS9nLCJfIik7YT17Li4uYSxpY29uTmFtZTp1WShkLCEhYyl8fGQudG9Mb3dlckNhc2UoKX07cmV0dXJuIF8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpfHxjP3JZKFdxYSxhLHRoaXMuaj8ucnd8fEFwYSxiKTpyWShWcWEsYSx0aGlzLmo/LnJ3fHx6cGEsYil9fTt2WltfLkxuXT1bXy5JbihfLm5PKV07dmFyIEJwYT1uZXcgU2V0KFsiY2kiLCJjciIsImNhcm1sIl0pLHZZPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zaWduYWxzPVtdO3RoaXMuaj1uZXcgTWFwO3RoaXMuQj1uZXcgU2V0O3RoaXMubz1uZXcgTWFwO3RoaXMudj1uZXcgTWFwfVZxKGEpe2lmKGEubGVuZ3RoPjEpe3ZhciBiPVtdO2xldCBmPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBjIG9mIGEpZltjXXx8KGIucHVzaChjKSxmW2NdPSEwKTthPWJ9aWYoYS5sZW5ndGg9PT0xKXZhciBkPWFbMF07ZWxzZXtjPWE7Yj0iIjtjLnNvcnQoKTtmb3IoZSBvZiBjKWIrPWUrInwiO3ZhciBlPWI7aWYoIXRoaXMuai5nZXQoZSkpe2M9MDtiPVtdO2ZvcihkIG9mIGEpYysrLHhZKHRoaXMsZCl8fGIucHVzaChkKTtjPmIubGVuZ3RoP3RoaXMuc2lnbmFscy5wdXNoKGUpOkNwYSh0aGlzLGUsYSxiKX1kPWV9cmV0dXJuIGR9SGgoYSxiLGMsZCxlKXt4WSh0aGlzLGMpP18uQ2soKS5HYShhLGIsZCk6KGUmJihhPXlZKGEpLEFZKHRoaXMsCmEsYixjLGUpKSxlPXRoaXMuby5nZXQoYyksZXx8KHRoaXMuby5zZXQoYyxbXSksZT10aGlzLm8uZ2V0KGMpKSxlLnB1c2goe3hoOmEscHJpb3JpdHk6YixkZWxheTpkfSkpfWFkZExpc3RlbmVyKGEsYixjKXtjJiYoYj15WShiKSxBWSh0aGlzLGIsMCxhLGMpKTtjPXRoaXMudi5nZXQoYSk7Y3x8KHRoaXMudi5zZXQoYSxbXSksYz10aGlzLnYuZ2V0KGEpKTtjLnB1c2goYil9V20oYSl7aWYoIXhZKHRoaXMsYSkpe3RoaXMuQi5hZGQoYSk7dmFyIGI9dGhpcy5vLmdldChhKTtpZihiKXtmb3IobGV0IGMgb2YgYilfLkNrKCkuR2EoYy54aCxjLnByaW9yaXR5LGMuZGVsYXkpO3RoaXMuby5kZWxldGUoYSl9aWYoYj10aGlzLnYuZ2V0KGEpKXtmb3IobGV0IGMgb2YgYiljKCk7dGhpcy52LmRlbGV0ZShhKX10aGlzLnNpZ25hbHMucHVzaChhKTt0aGlzLkIuZGVsZXRlKGEpfX19O3ZZLnByb3RvdHlwZS5wcm9jZXNzU2lnbmFsPXZZLnByb3RvdHlwZS5XbTsKdlkucHJvdG90eXBlLnBhcmtPclNjaGVkdWxlSm9iPXZZLnByb3RvdHlwZS5IaDt2WS5wcm90b3R5cGUub25Bbnk9dlkucHJvdG90eXBlLlZxO18ucmEoInl0c2lnbmFscy5nZXRJbnN0YW5jZSIsd1kpO3ZZLnByb3RvdHlwZS5vbkFueT12WS5wcm90b3R5cGUuVnE7dlkucHJvdG90eXBlLnBhcmtPclNjaGVkdWxlSm9iPXZZLnByb3RvdHlwZS5IaDt2WS5wcm90b3R5cGUucHJvY2Vzc1NpZ25hbD12WS5wcm90b3R5cGUuV207dmFyIHpZPW5ldyBTZXQoWyJlb3AiLCJlb2NzIiwiZGwiLCJwY2wiXSk7dmFyIHZxYT1jbGFzcyBleHRlbmRzIF8uV3N7Y29uc3RydWN0b3IoYSl7dmFyIGI9e307c3VwZXIoInVuaW5pdGlhbGl6ZWQiKTt0aGlzLmVudj1hO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJ1bmluaXRpYWxpemVkIix0bzoiaW5pdGlhbGl6ZWQiLGFjdGlvbjp0aGlzLmluaXR9LHtmcm9tOiJpbml0aWFsaXplZCIsdG86InJlbmRlcmluZyIsYWN0aW9uOnRoaXMuS30se2Zyb206InJlbmRlcmluZyIsdG86InJlbmRlcmVkIixhY3Rpb246dGhpcy5EfSx7ZnJvbToicmVuZGVyZWQiLHRvOiJhZnRlci1yZW5kZXItZGVmZXJyZWQiLGFjdGlvbjp0aGlzLm99XTtiLkZnIT09dm9pZCAwJiYodGhpcy5CLkZnPWIuRmcpfWFzeW5jIGluaXQoYSl7dGhpcy5CLkZnP2F3YWl0IGEodGhpcy5lbnYpOmEodGhpcy5lbnYpO3RoaXMuaiYmYXdhaXQgdGhpcy5qLm8ucHJvbWlzZTt3WSgpLkhoKCgpPT57dGhpcy50cmFuc2l0aW9uKCJyZW5kZXJpbmciKX0sMTAsImNpIil9YXN5bmMgSyhhKXt0aGlzLkIuRmc/CmF3YWl0IGEodGhpcy5lbnYpOmEodGhpcy5lbnYpO3RoaXMuaiYmYXdhaXQgdGhpcy5qLm8ucHJvbWlzZTt3WSgpLkhoKCgpPT57dGhpcy50cmFuc2l0aW9uKCJyZW5kZXJlZCIpfSwxMCwiY3IiKX1hc3luYyBEKGEpe3RoaXMuQi5GZz9hd2FpdCBhKHRoaXMuZW52KTphKHRoaXMuZW52KTt0aGlzLmomJmF3YWl0IHRoaXMuai5vLnByb21pc2U7d1koKS5IaCgoKT0+e3RoaXMudHJhbnNpdGlvbigiYWZ0ZXItcmVuZGVyLWRlZmVycmVkIil9LDEwLCJjYXJtbCIpfWFzeW5jIG8oYSl7YSh0aGlzLmVudil9fTt2YXIgd1o9ITEsd3FhPXtpbml0aWFsaXplZDp7cHJpb3JpdHk6MTAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt3Wnx8KF8uZHcoe0dmOmE9PnthLmVsJiZfLnV5KGEuZWwsYS5wcm9wcyl9LEhmOmE9PntfLnN5KGEuZWwpfX0pLHdaPSEwKX19fTt2YXIgQ1k9Xy5MKCh7ZGF0YTphfSk9PntmdW5jdGlvbiBiKGYpe18ublAoKTtmLnN0b3BQcm9wYWdhdGlvbigpfXZhciBjPV8udkUoImRpdiIpLGQ9Xy54KCJ3ZWJfcmVtb3ZlX3NuYWNrYmFyX2FjdGlvbnMiKTtfLlVKKCgpPT57fSk7dmFyIGU9e2J1dHRvbk92ZXJyaWRlczp7c3R5bGU6ImNhbGwtdG8tYWN0aW9uLWludmVyc2UifX07cmV0dXJuIF8uSygieXRtLW5vdGlmaWNhdGlvbi1hY3Rpb24tcmVuZGVyZXIiLG51bGwsXy5LKCJkaXYiLHsiYXJpYS1saXZlIjpfLmZyPyJvZmYiOiJwb2xpdGUiLGNsYXNzOiJub3RpZmljYXRpb24tYWN0aW9uLXJlc3BvbnNlLXRleHQifSxfLksoXy5JSix7ZGF0YTooKT0+YSgpLnJlc3BvbnNlVGV4dH0pKSxfLksoXy5PLHtBOigpPT5hKCkuYWN0aW9uQnV0dG9uJiYhZCx0aGVuOigpPT5fLksoImRpdiIse2VsOmMsY2xhc3M6Im5vdGlmaWNhdGlvbi1hY3Rpb24tYnV0dG9uIiwib246Y2xpY2siOmJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5hY3Rpb25CdXR0b259LAp7YnV0dG9uUmVuZGVyZXI6KHtkYXRhOmZ9KT0+Xy5LKF8ucE8se2RhdGE6ZiwuLi5lfSksdG9nZ2xlQnV0dG9uUmVuZGVyZXI6KHtkYXRhOmZ9KT0+Xy5LKF8ucU8se2RhdGE6ZiwuLi5lfSl9KSl9KSl9LCJiZiIpO0NZLmlkb21Db21wYXQ9ITA7dmFyIEVZO3ZhciBHWT1uZXcgXy5lRTt2YXIgR3BhPXthZGRUb1BsYXlsaXN0UmVuZGVyZXI6ITB9O3ZhciBMWTt2YXIgUXBhPV8uJE4uQ3Q7dmFyIFRZPV8uTCgoe2RhdGE6YX0pPT57dmFyIGI9Xy51RSgieXRtLXNoYXJlLXRhcmdldC1yZW5kZXJlciIpO18uVUooKCk9PntiLnZhbHVlLmxheWVyPTd9KTt2YXIgYz0oKT0+Xy5CKGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5WRCk/LnVybCxkPSgpPT57YSgpO3JldHVybiExfTtyZXR1cm4gXy5LKCJ5dG0tc2hhcmUtdGFyZ2V0LXJlbmRlcmVyIix7ZWw6Yiwib246Y2xpY2siOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7aWYoZCgpKXt2YXIgZj1jKCksaD1hKCkubmF2aWdhdGlvbkVuZHBvaW50Py5jbGlja1RyYWNraW5nUGFyYW1zO18uekooaCw3KTtuZXcgTW96QWN0aXZpdHkoe25hbWU6Im5ldyIsZGF0YTp7dHlwZToid2Vic21zL3NtcyIsYm9keTpmfX0pO05ZKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBOWSgpfX0sXy5LKF8uTyx7QTpkLHRoZW46KCk9Pl8uSygiYSIse2hyZWY6YyxjbGFzczoic2hhcmUtdGFyZ2V0LWxpbmsifSwKXy5LKF8uSUose2RhdGE6KCk9PmEoKS50aXRsZX0pKSxXOigpPT5fLksoXy5uSCx7Y2xhc3NOYW1lOiJzaGFyZS10YXJnZXQtbGluayIsY29tbWFuZDooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCx0YXJnZXQ6Il9ibGFuayJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSl9KSl9LCJjZiIpO1RZLmlkb21Db21wYXQ9ITA7dmFyIFlxYT1fLiROLkNBTkNFTCxYcGE9Xy5MKCh7ZGF0YTphfSk9PntmdW5jdGlvbiBiKGYpe3ZhciBoPV8ueSgpLnJlc29sdmUoXy55UCksaz1SWShhKCkpO2YucHJldmVudERlZmF1bHQoKTtrJiZfLnpKKGssNyk7Xy5zUChlKTtoPy5sZCgpO18uek4oKTtmLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGMoZil7Xy55KCkucmVzb2x2ZShfLnlQKT8ubGQoKTtfLnpOKCk7Zi5zdG9wUHJvcGFnYXRpb24oKX12YXIgZD0oKT0+T1koYSgpKSxlPSJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIrXy5PSCgpO3JldHVybiBfLksoXy5yRSx7UWc6KCk9Pl8uSyhfLkFQLG51bGwsXy5LKF8uSUose2RhdGE6KCk9Pnt2YXIgZj1hKCkuaGVhZGVyPy5zaGFyZVBhbmVsSGVhZGVyUmVuZGVyZXI/LnRpdGxlPy5zaGFyZVBhbmVsVGl0bGVWMTVSZW5kZXJlcj8udGl0bGU7cmV0dXJuIGY/Zjp7c2ltcGxlVGV4dDoiU2hhcmUifX19KSkscWs6KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+CiEwLHRoZW46KCk9Pl8uSygiaW5wdXQiLHt2YWx1ZTpkLCJzZWxlY3Rpb24tZW5kIjowLGNsYXNzOiJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIsaWQ6ZSwib246Y2xpY2siOmIsImFyaWEtbGFiZWwiOigpPT5gJHtfLiROLnNvfSAke09ZKGEoKSl9YCxyZWFkb25seTohMH0pfSksXy5LKF8uZ0cse3BhOigpPT5TWShhKCkpfHxbXX0sZj0+Xy5LKF8uTyx7QTooKT0+Zi5zaGFyZVRhcmdldFJlbmRlcmVyLHRoZW46aD0+Xy5LKFRZLHtkYXRhOmh9KX0pKSksUHI6KCk9Pl8uSyhfLnpQLG51bGwsXy5LKCJidXR0b24iLHtjbGFzczoiY29tcGFjdCIsIm9uOmNsaWNrIjpjfSxZcWEpKX0pfSwiZGYiKSxRWT1fLkwoKHtzaG9ydFVybDphLHRyYWNraW5nUGFyYW1zOmJ9KT0+e2Z1bmN0aW9uIGMoZSl7dmFyIGY9ZCxoPWI/LigpO2UucHJldmVudERlZmF1bHQoKTtoJiZfLnpKKGgsNyk7Xy5zUChmKTtOWSgpO18uek4oKTtlLnN0b3BQcm9wYWdhdGlvbigpfXZhciBkPSJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIrCl8uT0goKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+ITAsdGhlbjooKT0+Xy5LKCJpbnB1dCIse2NsYXNzOiJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIsaWQ6ZCx2YWx1ZTphLHJlYWRvbmx5OiEwLCJhcmlhLWxhYmVsIjooKT0+YCR7Xy4kTi5zb30gJHthKCl9YCwib246Y2xpY2siOmMsInNlbGVjdGlvbi1lbmQiOjB9KX0pfSwiZWYiKTtRWS5pZG9tQ29tcGF0PSEwO3ZhciAkcGE9Xy4kTi5EdCxhcWE9Xy4kTi5ldTtfLnJhKCJ5dC5wdWJzdWIucHVibGlzaCIsXy5Peik7dmFyIHdYPXthdWRpb1RyYWNrU2VsZWN0QWN0aW9uQ29tbWFuZDpWVyhUcWEpLGJyb3dzZUVuZHBvaW50OigpPT5GWShJcGEpLGNhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6VlcoclopLGNvbW1hbmRFeGVjdXRvckNvbW1hbmQ6KCk9PkZZKEpwYSksY29weVRleHRFbmRwb2ludDooKT0+RlkoTHBhKSxlbnRpdHlVcGRhdGVDb21tYW5kOlZXKHBaLFtuWl0pLGZlZWRiYWNrRW5kcG9pbnQ6KCk9PkZZKE1ZKSxtb2RpZnlDaGFubmVsTm90aWZpY2F0aW9uUHJlZmVyZW5jZUVuZHBvaW50OigpPT5GWShOcGEpLG5hdGl2ZUFwcERlZXBsaW5rRW5kcG9pbnQ6KCk9PkZZKHBvYSksb3BlblBvcHVwQWN0aW9uOigpPT5GWShEcGEpLHBob25lRGlhbGVyRW5kcG9pbnQ6KCk9PkZZKFBwYSkscGxheWxpc3RFZGl0RW5kcG9pbnQ6KCk9PkZZKFJwYSksc2VuZFNtc0VuZHBvaW50OigpPT5GWShUcGEpLHNoYXJlRW50aXR5RW5kcG9pbnQ6KCk9PkZZKFpwYSksc2hvd0F1ZGlvVHJhY2tQaWNrZXJBY3Rpb25Db21tYW5kOlZXKHNaKSwKc2hvd0NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6VlcodFopLHNob3dFbmdhZ2VtZW50UGFuZWxFbmRwb2ludDooKT0+RlkoZHFhKSxzaG93U2hlZXRDb21tYW5kOlZXKHFaLFtfLmNMLCRZXSksc2lnbkluRW5kcG9pbnQ6KCk9PkZZKGZxYSksc3Vic2NyaWJlRW5kcG9pbnQ6KCk9PkZZKFdZKSx1bmRvRmVlZGJhY2tFbmRwb2ludDooKT0+RlkoTVkpLHVuc3Vic2NyaWJlRW5kcG9pbnQ6KCk9PkZZKFdZKSx1cmxFbmRwb2ludDooKT0+RlkoaHFhKSx1c2VyRmVlZGJhY2tFbmRwb2ludDooKT0+RlkoaXFhKSx3YXRjaEVuZHBvaW50OigpPT5GWShFcGEpfTt2YXIgeFo9Xy5MKCh7Y2hpbGRyZW46YSxCcTpiLGlzRnVsbHNjcmVlbjpjLHN0eWxlOmQsYXJpYUxhYmVsOmV9KT0+e3ZhciBmPV8udUUoImRpYWxvZyIpO18uVUooKCk9Pnt2YXIgaD0oKT0+e30saz1mLnZhbHVlO2suYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGgsITApO18uWXUoKCk9PntrLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixoLCEwKX0pfSk7cmV0dXJuIF8uSygiZGlhbG9nIix7ZWw6ZixjbGFzczpfLlAoImRpYWxvZyIsIm1vZGVybi1kaWFsb2ctbGF5b3V0IiwibW9kZXJuLWRpYWxvZyIse3Njcm9sbGFibGU6YiwiZGlhbG9nLWZ1bGxzY3JlZW4iOmMsInJvdW5kZWQtY29udGFpbmVyIjooKT0+IWM/LigpfSkscm9sZToiZGlhbG9nIiwiYXJpYS1tb2RhbCI6ITAsc3R5bGU6ZCwiYXJpYS1sYWJlbCI6ZX0sYSl9LCJmZiIpO3haLmlkb21Db21wYXQ9ITA7dmFyIFpxYT1jbGFzc3t9O3ZhciBxcWE9Y2xhc3MgZXh0ZW5kcyBacWF7Y29uc3RydWN0b3IoKXt2YXIgYT17WWw6VXBhLFdrOk5ZfTtzdXBlcigpO3RoaXMubz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLm8uaWQ9Imdsb2JhbC1sb2FkZXIiO2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRoaXMubyxkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpO3RoaXMuWWw9YT8uWWw7dGhpcy5Xaz1hPy5Xa31ycSgpe3JldHVybiEhdGhpcy5qfWFzeW5jIG9wZW5EaWFsb2coYSl7dmFyIGI9e3N0YWNrOltdLGVycm9yOnZvaWQgMCxoYXNFcnJvcjohMX07dHJ5e2xldCBjPV8uWnR8fHt9O3RoaXMuWWw/LigpJiZhd2FpdCB0aGlzLldrPy4oKTt0aGlzLnJxKCkmJnRoaXMubGQoKTtfLlZ6KGIsXy52TShjKSk7bGV0IGQ9YS5VbixlPWEuQnEsZj1hLmlzRnVsbHNjcmVlbixoPWEubkosaz1hLmlzUGVyc2lzdGVudCxsPWEuZm9jdXNPbkNsb3NlLG09YS5ybixuPWEuZksscD1hLnN0eWxlLHI9YS5hcmlhTGFiZWw7CnRoaXMuQj1hO3RoaXMudj10aGlzLmxkLmJpbmQodGhpcyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLWNoYW5nZSIsdGhpcy52KTt0aGlzLmo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5qLmlkPSJkaWFsb2ctY29udGFpbmVyIjt0aGlzLmouY2xhc3NOYW1lPV8uYUwoImRpYWxvZy1jb250YWluZXIiLHtbImRpYWxvZy1mdWxsc2NyZWVuIl06Zn0pOyhfLlpPKCl8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHRoaXMuaik7Xy5mTih0aGlzLmosXy5LKF8uSUIsbnVsbCxfLksoeFose0JxOmUsaXNGdWxsc2NyZWVuOmYsc3R5bGU6cCxhcmlhTGFiZWw6cn0sXy5LKGQsbnVsbCkpLF8uSyhfLlpOLHtsYWJlbDoiZGlhbG9nIixvbmNsaWNrOigpPT57aHx8a3x8dGhpcy5sZCgpfX0pKSk7Xy5KTih0aGlzLmosbCxtKTtuPy4oKX1jYXRjaChjKXtiLmVycm9yPWMsYi5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3ooYil9fWxkKCl7dGhpcy5qJiYodGhpcy5CLkdoPy4oKSwKdGhpcy5CPXZvaWQgMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RhdGUtY2hhbmdlIix0aGlzLnYpLHRoaXMudj12b2lkIDAsXy5LTih0aGlzLmopLF8ucEModGhpcy5qKSx0aGlzLmoucmVtb3ZlKCksdGhpcy5qPXZvaWQgMCl9UXUoKXt0aGlzLm8uZmlyc3RDaGlsZCYmdGhpcy5vLnJlbW92ZUNoaWxkKHRoaXMuby5maXJzdENoaWxkKX19O3ZhciBTVz1uZXcgXy5DdCgiSW5uZXJUdWJlVHJhbnNwb3J0IiwiUnYzZTNkIik7bmV3IF8uQ3QoIlBhZ2VSZXF1ZXN0IiwiUnYzZTNkIik7dmFyICRxYT17YXV0b25hdl9vZmZfdG9nZ2xlX3NwYW5uZXI6W1swLDEsMzZdXSxhdXRvbmF2X29uX3RvZ2dsZV9zcGFubmVyOltbMCwxLDM2XV0sYXV0b25hdl9wbGF5X2NpcmNsZTpbWzAsMSwyMF1dLGF1dG9wbGF5OltbMCwyLDI0XV0sY3JlYXRvcl9zdHVkaW9fcmVkX2xvZ286W1swLDIsMjRdXSxlcXVhbGl6ZXI6W1swLDEsMjRdXSxmdWxsc2NyZWVuOltbMSwxLDI0XV0sZnVsbHNjcmVlbl9leGl0OltbMSwxLDI0XV0sZnVsbHNjcmVlbl9mcDpbWzEsMiwyNF1dLGdvb2dsZTpbWzAsMSwyNF1dLGdvb2dsZV9sb2dvOltbMCwyLDI0XV0saW5jb2duaXRvX2NpcmNsZTpbWzAsMSwyNF1dLGtpZHNfcmVkX2xvZ286W1swLDIsMjRdXSxsb2dvOltbMCwyLDY3XV0sbG9nb193aXRoX3RleHQ6W1swLDMsMjBdXSxsb2dvX3dpdGhfdGV4dF9tb25vY2hyb21lOltbMCwxLDIwXV0sbXVzaWNfcmVkX2xvZ286W1swLDIsMjRdXSxwYXVzZV9jaXJjbGU6W1swLDEsMjRdXSxwYXVzZV9vdXRsaW5lZDpbWzAsCjEsMjRdXSxwaXZvdF9saWJyYXJ5OltbMCwxLDI0XV0scGxheV9jaXJjbGVfc2hvcnRzOltbMCwyLDI0XV0scGxheWVyX2F1dG9wbGF5X25leHQ6W1swLDIsMjRdXSxwcmVtaXVtOltbMCwyLDI0XV0scHJlbWl1bV9zdGFuZGFsb25lOltbMCwyLDI0XV0scHJlbWl1bV9zdGFuZGFsb25lX2NhaXJvOltbMCwxLDI0XV0scmluZ29fbG9nbzpbWzAsMiwyNF1dLHNjcmVlbl9saWdodDpbWzEsMSwyNF1dLCJzaG9ydHMtaGVhcnQiOltbMCwxLDI0XSxbMSwxLDI0XV0sInNob3J0cy1oZWFydC1ncmFkaWVudCI6W1swLDEsMjRdLFsxLDEsMjRdXSxzaG9ydHNfY29tbWVudDpbWzAsMSwzMl1dLHNob3J0c19zaGFyZTpbWzAsMSwzMl1dLHNob3J0c190ZXh0X2xvZ286W1swLDIsNzJdXSxzaG9ydHNfdGh1bWJzX2Rvd246W1swLDEsMzJdXSxzaG9ydHNfdGh1bWJzX3VwOltbMCwxLDMyXV0sc3Bhcms6W1swLDEsMjRdLFsxLDEsMjRdXSxzcGFya19zZWFyY2g6W1swLDEsMjRdXSxzdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQ6W1sxLAoxLDI0XV0sdW5wbHVnZ2VkX3JlZF9sb2dvOltbMCwyLDI0XV0sdmlkZW9feW91dHViZTpbWzAsMSwyNF1dLHdhdGVybWFyazpbWzAsMiwxMTBdXSx5b3V0dWJlOltbMCwyLDI0XV0seW91dHViZV9jcmVhdGVfbG9nbzpbWzAsMSwyNF1dLHlvdXR1YmVfcHJlbWl1bV9sb2dvX3Nob3J0OltbMCwyLDIwXV0seW91dHViZV9wcmVtaXVtX2xvZ29fc2hvcnRfbW9ub2Nocm9tZTpbWzAsMSwyMF1dLHlvdXR1YmVfc2hvcnRzX2JyYW5kXzI0OltbMCwyLDI0XV0seW91dHViZV9zaG9ydHNfZmlsbF9ub190cmlhbmdsZV9yZWRfMTY6W1swLDEsMTZdXX07dmFyIHlaPW5ldyBNYXAoW1sicGxheV9jaXJjbGVfZmlsbGVkIiwiYXV0b25hdl9wbGF5X2NpcmNsZSJdLFsic2VhcmNoIiwic2VhcmNoX2NhaXJvIl0sWyJ0YWJfaG9tZSIsImhvbWVfY2Fpcm8iXSxbInRhYl9zaG9ydHMiLCJ5b3V0dWJlX3Nob3J0c19jYWlybyJdLFsiYWNjb3VudF9jaXJjbGUiLCJwZXJzb25fY2lyY2xlX2NhaXJvIl0sWyJwcmVtaXVtX3N0YW5kYWxvbmUiLCJwcmVtaXVtX3N0YW5kYWxvbmVfY2Fpcm8iXV0pLGFyYT1uZXcgU2V0KFsiYXVkaW9fYmFkZ2UiLCJwYXVzZSIsInBsYXlfYXJyb3ciXSksWVk9Y2xhc3MgZXh0ZW5kcyB2Wntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKTt0aGlzLm89YX1tZihhLGIpe3ZhciBjPXsuLi5hfTthLmljb25OYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2hvcnRzX3RodW1ic191cCImJl8ueCgiZW5hYmxlX3Nob3J0c19oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIikmJihjLmljb25OYW1lPV8ueCgidXNlX3doaXRlX2ZpbGxlZF9oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIik/CiJzaG9ydHMtaGVhcnQiOiJzaG9ydHMtaGVhcnQtZ3JhZGllbnQiKTthcmEuaGFzKGEuaWNvbk5hbWUpJiYoYy5pY29uU3R5bGU9InlvdXR1YmVfZmlsbCIpO3laLmhhcyhhLmljb25OYW1lKSYmIV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiYoYS5pY29uTmFtZT15Wi5nZXQoYS5pY29uTmFtZSkpO2EuaWNvbk5hbWU9PT0iYWNjb3VudF9saW5rZWQiJiYoYy5pY29uTmFtZT0iY2lyY2xlc19vdmVybGFwX2NoZWNrIixjLmljb25TdHlsZT0ieW91dHViZV9maWxsIik7YS5pY29uTmFtZT09PSJhY2NvdW50X3VubGlua2VkIiYmKGMuaWNvbk5hbWU9ImNpcmNsZXNfb3ZlcmxhcCIsYy5pY29uU3R5bGU9InlvdXR1YmVfb3V0bGluZSIpO18ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiYoYS5pY29uTmFtZT09PSJwbGF5bGlzdF9hZGQiJiYoYy5pY29uTmFtZT0iYm9va21hcmsiKSxhLmljb25OYW1lPT09ImNpcmNsZXNfb3ZlcmxhcF9jaGVjayJ8fGMuaWNvbk5hbWU9PT0iY2lyY2xlc19vdmVybGFwX2NoZWNrIikmJgooYy5pY29uTmFtZT0iYWNjb3VudF9saW5rIixjLmljb25TdHlsZT0ieW91dHViZV9maWxsIik7YT0oYT11WShjLmljb25OYW1lKSk/ey4uLmMsaWNvbk5hbWU6YX06YzthPV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiZhLmljb25OYW1lPT09InlvdXR1YmUiP3ZvaWQgMDpyWSgkcWEsYSx0aGlzLm8/LmVKfHxtcWEsYik7cmV0dXJuIGE/YTpzdXBlci5tZihjLGIpfX07WVlbXy5Mbl09W18uSW4oXy5uTyldO3ZhciBycWE9Y2xhc3MgZXh0ZW5kcyBVcWF7aXNWaXNpYmxlKGEpe3ZhciBiPVByb21pc2UsYz1iLnJlc29sdmU7dmFyIGQ9Xy5vTSgpLmdldFN0YXRlKCkuZW5nYWdlbWVudFBhbmVsPy5xcztyZXR1cm4gYy5jYWxsKGIsYT09PWQpfX07dmFyIGJyYT1jbGFzcyBleHRlbmRzIGtae2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLm9ic2VydmVyPW5ldyBfLmZGKDAsYT0+e3RoaXMubG9nVmlzaWJpbGl0eShhKX0pfW9ic2VydmUoYSxiLGMpe2MuVmJ8fGMuc3RhdGUhPT0idmlzaWJsZSJ8fChjLlZiPSEwKTt2YXIgZD17ZWxlbWVudDphLG9wdGlvbjpjfTtpZighYy5WYnx8Yy5zdGF0ZSE9PSJ2aXNpYmxlIilyZXR1cm4gZDtpZih0eXBlb2YgYiE9PSJmdW5jdGlvbiIpcmV0dXJuIF8uV2koRXJyb3IoImhlYCIrdHlwZW9mIGIpKSxkO2EuX192aXNpYmlsaXR5Q2FsbGJhY2s9Yjt0aGlzLm9ic2VydmVyLm9ic2VydmUoYSk7cmV0dXJuIGR9bG9nVmlzaWJpbGl0eShhKXthLl9fdmlzaWJpbGl0eUNhbGxiYWNrJiZ0eXBlb2YgYS5fX3Zpc2liaWxpdHlDYWxsYmFjaz09PSJmdW5jdGlvbiImJmEuX192aXNpYmlsaXR5Q2FsbGJhY2soYSwidmlzaWJsZSIpfXJmKGEpe2RlbGV0ZSBhLmVsZW1lbnQuX192aXNpYmlsaXR5Q2FsbGJhY2s7CnRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKGEuZWxlbWVudCl9ZGlzcG9zZSgpe3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfX07dmFyIG9xYT0iSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93P25ldyBNcWE6bmV3IGJyYTtfLnVQPV8uYlo7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIm1lSDlFYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkJQPWZ1bmN0aW9uKGEsYj0hMSl7dmFyIGMsZD0oKT0+e3ZhciBlPV8uTEIoITApO18uZ3YrKzt0cnl7Yz1fLmJDKGEoKSksXy5JQSghMSl9Y2F0Y2goZil7dGhyb3cgXy5JQSghMCksXy5VdShmLDQpO31maW5hbGx5e18uTEIoZSl9fTtiPWJ8fF8uWnQ/Xy51dihkLGIpOl8uaXcoZCk7cmV0dXJuW2MsYl19O18uS0I9Xy5sQzsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHppYSxBaWEsQmlhLEVpYSxDaWEsRGlhLEZpYTt6aWE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQWEoYSkmJmEubm9kZVR5cGU9PTE/YS5nZXRBdHRyaWJ1dGUoImpzbmFtZSIpPT09ImNvRlN4ZSI6ITF9O0FpYT1mdW5jdGlvbihhLGIpe2IuaWR8fChiLmlkPSJvdyIrXy5mdyhiKSk7YS5zZXRBdHRyaWJ1dGUoImpzb3duZXIiLGIuaWQpO2EuX19vd25lcj1iO3ZhciBjPV8uZ3coYix6aWEpO2MmJihfLkdDLmhhcyhjKXx8Xy5HQy5zZXQoYyxbXSksXy5HQy5nZXQoYykucHVzaChhKSk7KGM9Xy5GQy5nZXQoYikpfHxfLkZDLnNldChiLGM9W10pO2MuaW5jbHVkZXMoYSl8fGMucHVzaChhKTtiLnNldEF0dHJpYnV0ZSgiX19JU19PV05FUiIsITApfTtCaWE9ZnVuY3Rpb24oKXt2YXIgYT1fLkNBKDEpO2E9Xy5jdShhLF8uTEMpO2lmKCEoXy5idShhKXx8YVtfLk12XSYmIWEudm8pKXJldHVybiBhLnZhbHVlfTsKRWlhPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DQSgyKSxiPW5ldyBTZXQsYz0oKT0+e2IuZm9yRWFjaChkPT52b2lkIGQoKSk7Yi5jbGVhcigpfTtfLll1KGMpO3JldHVyblsoZCxlKT0+e3ZhciBmPV8uJHQoYSk7dHJ5e2xldCBoPUNpYShEaWEoZCksZSk7Yi5hZGQoaCk7cmV0dXJuKCk9PntoKCk7Yi5kZWxldGUoaCl9fWZpbmFsbHl7Xy4kdChmKX19LGNdfTtfLkNQPWZ1bmN0aW9uKHtjaGlsZHJlbjphLHJvb3Q6Yn0pe18ub0YoKCk9Pnt2YXIgW2NdPUVpYSgpO2M9YyhiLGEpO18uWXUoYyl9KTtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpfTtDaWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaWEoYSk7KGE9QmlhKCkpJiZBaWEoYyxhKTt2YXIgW2QsZV09Xy5CUChiLCEwKTtmb3IobGV0IGYgb2YgZCljLmFwcGVuZENoaWxkKGYpO18uVkIubG9nKGMpO3JldHVybigpPT57ZSgpO2MucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQoYyl9fTsKRGlhPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpe2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhKTtpZighKDAsXy5wcikoYSkpdGhyb3cgRXJyb3IoInBgYCIrU3RyaW5nKGEpKTtyZXR1cm4gYX1pZihfLmpCKGEpKXJldHVybiBhO2lmKCFhLkNrJiYhYS5sdSl7dmFyIGI9YS5qdTtiPUVycm9yKCJVY2AiKyh0eXBlb2YgYj09PSJzeW1ib2wiP2IuZGVzY3JpcHRpb246YikpO2Eua3U9ITA7dGhyb3cgYjt9cmV0dXJuIGEudmFsdWV9O0ZpYT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYS5uYW1lc3BhY2VVUkksYS5uYW1lc3BhY2VVUkk9PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPyJnIjoiZGl2Iik7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoYil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkRQPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5DQSgpLGQ9ZT0+e18ub0goYywoKT0+e2IoZSl9KX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYSxkLHZvaWQgMCk7Xy5ZdSgoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZCx2b2lkIDApfSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgSWlhLEhQLEZQLEdQLEtpYSxNaWEsTGlhLExQO0lpYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInN0cmluZ0VudGl0eSIsYil9OwpIUD1mdW5jdGlvbihhLGIsYyl7aWYoYSl7dmFyIGQ9YS5saWtlU3RhdHVzO3JldHVybiBiP3tzdHlsZTp7c3R5bGVUeXBlOiJTVFlMRV9URVhUIn0sdG9nZ2xlZFN0eWxlOntzdHlsZVR5cGU6IlNUWUxFX0RFRkFVTFRfQUNUSVZFIn0saXNUb2dnbGVkOmQ9PT0iTElLRSIsaXNEaXNhYmxlZDohYS5saWtlc0FsbG93ZWQsZGVmYXVsdEljb246e2ljb25UeXBlOmN9LGRlZmF1bHRUZXh0OmQ9PT0iTElLRSI/YS5saWtlQ291bnRXaXRoVW5saWtlVGV4dDphLmxpa2VDb3VudFRleHQsdG9nZ2xlZFRleHQ6ZD09PSJMSUtFIj9hLmxpa2VDb3VudFRleHQ6YS5saWtlQ291bnRXaXRoTGlrZVRleHQsZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludDpGUChhLCJMSUtFIiksZGVmYXVsdFNlcnZpY2VFbmRwb2ludDpHUChhLCJMSUtFIiksdG9nZ2xlZFNlcnZpY2VFbmRwb2ludDpHUChhLCJJTkRJRkZFUkVOVCIpLGRlZmF1bHRUb29sdGlwOl8uYU4oYS5saWtlQ291bnRUb29sdGlwVGV4dCksdG9nZ2xlZFRvb2x0aXA6Xy5hTihhLmxpa2VDb3VudFRvb2x0aXBUZXh0KSwKdGFyZ2V0SWQ6YS50YXJnZXRJZH06e3N0eWxlOntzdHlsZVR5cGU6IlNUWUxFX1RFWFQifSx0b2dnbGVkU3R5bGU6e3N0eWxlVHlwZToiU1RZTEVfREVGQVVMVF9BQ1RJVkUifSxpc1RvZ2dsZWQ6ZD09PSJESVNMSUtFIixpc0Rpc2FibGVkOiFhLmxpa2VzQWxsb3dlZCxkZWZhdWx0SWNvbjp7aWNvblR5cGU6Y30sZGVmYXVsdFRleHQ6ZD09PSJESVNMSUtFIj9hLmRpc2xpa2VDb3VudFdpdGhVbmRpc2xpa2VUZXh0OmEuZGlzbGlrZUNvdW50VGV4dCx0b2dnbGVkVGV4dDpkPT09IkRJU0xJS0UiP2EuZGlzbGlrZUNvdW50VGV4dDphLmRpc2xpa2VDb3VudFdpdGhEaXNsaWtlVGV4dCxkZWZhdWx0TmF2aWdhdGlvbkVuZHBvaW50OkZQKGEsIkRJU0xJS0UiKSxkZWZhdWx0U2VydmljZUVuZHBvaW50OkdQKGEsIkRJU0xJS0UiKSx0b2dnbGVkU2VydmljZUVuZHBvaW50OkdQKGEsIklORElGRkVSRU5UIiksZGVmYXVsdFRvb2x0aXA6Xy5hTihhLmRpc2xpa2VDb3VudFRvb2x0aXBUZXh0KSx0b2dnbGVkVG9vbHRpcDpfLmFOKGEuZGlzbGlrZUNvdW50VG9vbHRpcFRleHQpfX19OwpGUD1mdW5jdGlvbihhLGIpe2lmKGI9PT0iTElLRSIpcmV0dXJuIGEubGlrZUNvbW1hbmQ7aWYoYj09PSJESVNMSUtFIilyZXR1cm4gYS5kaXNsaWtlTmF2aWdhdGlvbkVuZHBvaW50fTtHUD1mdW5jdGlvbihhLGIpe3JldHVybiBhLnNlcnZpY2VFbmRwb2ludHM/LmZpbmQoYz0+Xy5CKGMsXy5kTyk/LnN0YXR1cz09PWIpfTtfLklQPWZ1bmN0aW9uKGEpe3JldHVybntjb250ZW50OmF9fTsKXy5KUD1mdW5jdGlvbihhLGIsYyl7Yj1jfHwoYj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/PzApKkppYTthPWEudGh1bWJuYWlscztpZighYSlyZXR1cm4iIjtjPTA7dmFyIGQ9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsZT0wLGY9LU51bWJlci5NQVhfU0FGRV9JTlRFR0VSO2ZvcihsZXQgaz0wO2s8YS5sZW5ndGg7aysrKXtsZXQgbD1hW2tdLndpZHRoLWI7bD49MCYmbDw9ZD8oYz1rLGQ9bCk6bDwwJiZsPmYmJihlPWssZj1sKX12YXIgaD1bXTthLmZvckVhY2goaz0+e2gucHVzaChrLnVybCl9KTtyZXR1cm4gZDwxMDB8fGQ8LWY/YVtjXS51cmw6YVtlXS51cmx9O0tpYT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uQmYoYj0+e18uT0UoKCk9PntiKGEpfSl9KX07TWlhPWZ1bmN0aW9uKGEpe2E9YS5tYXAoTGlhKTtyZXR1cm4gXy5JZihhKS50aGVuKEtpYSl9OwpMaWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY29tcGxldGU/Xy5LeSgibG9hZCIpOm5ldyBfLkJmKGI9PntmdW5jdGlvbiBjKGQpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsYyk7YS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYyk7YihkLnR5cGUpfWEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYyk7YS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYyl9KX07TFA9ZnVuY3Rpb24oYSl7S1B8fE1pYShbYV0pLnRoZW4oKCk9PntpZighS1Ape3ZhciBiPSgwLF8uZWwpKCk7Xy5BcSgiZnRsIixiLHZvaWQgMCk7S1A9ITB9fSl9O18uTVA9bmV3IF8uSSgic3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWwiKTtfLk5QPV8uTCgoKT0+e3ZhciBhPV8udygiUExBWUVSX1ZBUlMiKSxiPWEudXNlcl9kaXNwbGF5X25hbWUsYz1hLnVzZXJfZGlzcGxheV9pbWFnZSxkPWEudXNlcl9kaXNwbGF5X2NoYW5uZWxfaGFuZGxlLGU9ZCYmXy5JUChkKSxmPSgpPT5fLkIoe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTpfLklQKGIpLGxlYWRpbmdBY2Nlc3Nvcnk6e2F2YXRhclZpZXdNb2RlbDp7aW1hZ2U6e3NvdXJjZXM6W3t1cmw6Y31dfX19LHN1YnRpdGxlOmV9fSxfLlpDKTtyZXR1cm4gXy5LKCJhY2NvdW50LWluZm8tbWVudS1pdGVtIix7Y2xhc3M6ImFjY291bnRJbmZvSG9zdCJ9LF8uSyhfLkNELHtkYXRhOmYsSWE6ITAsb25UYXA6KCk9PntkJiZfLkFKKF8ud04oYEAke2R9YCksZigpLCExKX19KSl9LCJ6YiIpO18uTlAuaWRvbUNvbXBhdD0hMDt2YXIge01nOk5pYX09Xy56RyhhPT5hLnRhcmdldD8udmlkZW9JZCk7dmFyIE9QPV8uTChhPT57dmFyIHtkYXRhOmIsYnV0dG9uT3ZlcnJpZGVzOmN9PV8uREMoYSx7YnV0dG9uT3ZlcnJpZGVzOnt9fSksW2QsZV09TmlhKGIpLGY9KCk9PkhQKGQoKSwhMCwiU0hPUlRTX0xJS0UiKSxoPSgpPT5IUChkKCksITEsIlNIT1JUU19ESVNMSUtFIiksaz0obCxtKT0+e20uc3RvcFByb3BhZ2F0aW9uKCk7Zm9yKGxldCBuIG9mIGwpKGw9Xy5CKG4sXy5kTykpJiZkJiZlKHsuLi5kKCksbGlrZVN0YXR1czpsLnN0YXR1c30pfTtyZXR1cm4gXy5LKCJ5dG0tbGlrZS1idXR0b24tcmVuZGVyZXIiLG51bGwsXy5LKF8uTyx7QTooKT0+ZCgpLmxpa2VTdGF0dXMmJiEhZigpJiYhIWgoKSx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLnFPLHtkYXRhOmYsYnV0dG9uT3ZlcnJpZGVzOigpPT4oe3R5cGU6ZCgpLmxpa2VTdGF0dXM9PT0iTElLRSI/ImZpbGxlZCI6InRvbmFsIiwuLi5jKCl9KSxSazprfSksXy5LKF8uTyx7QTooKT0+IWQoKS5oaWRlRGlzbGlrZUJ1dHRvbix0aGVuOigpPT4KXy5LKF8ucU8se2RhdGE6aCxidXR0b25PdmVycmlkZXM6KCk9Pih7dHlwZTpkKCkubGlrZVN0YXR1cz09PSJESVNMSUtFIj8iZmlsbGVkIjoidG9uYWwiLC4uLmMoKX0pLFJrOmt9KX0pKX0pKX0sIkFiIik7T1AuaWRvbUNvbXBhdD0hMDt2YXIgUFA9Xy5MKCh7ZGF0YTphfSk9Pl8uSygieXRtLW1lbnUtbmF2aWdhdGlvbi1pdGVtLXJlbmRlcmVyIixudWxsLF8uSyhfLndPLHtvbmNsaWNrOmI9Pnt2YXIgYz1hKCk7Xy54TigpJiZfLnpOKCk7Xy5BSihjLm5hdmlnYXRpb25FbmRwb2ludCxjLCExKTtfLkIoYy5uYXZpZ2F0aW9uRW5kcG9pbnQ/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8uaWdub3JlTmF2aWdhdGlvbnx8Yi5zdG9wUHJvcGFnYXRpb24oKX0scm9sZTooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCYmXy5CKGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5WRCk/ImxpbmsiOnZvaWQgMH0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5pY29uPy5pY29uVHlwZX0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGV4dH0pKSksIkJiIik7UFAuaWRvbUNvbXBhdD0hMDt2YXIgUVA9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLm1HKCk7cmV0dXJuIF8uSygieXRtLW1lbnUtc2VydmljZS1pdGVtLXJlbmRlcmVyIixudWxsLF8uSyhfLndPLHtvbmNsaWNrOigpPT57dmFyIGM9YSgpLGQ9Yy5zZXJ2aWNlRW5kcG9pbnQsZT1jLmNvbW1hbmQ7ZCYmXy5BSihkLGMsITAse0JkOmJ9KTtlJiZfLkFKKGUsYywhMCx7QmQ6Yn0pfX0sXy5LKF8uTyx7QTooKT0+YSgpLmljb24/Lmljb25UeXBlLHRoZW46KCk9Pl8uSyhfLk1ELHtpY29uOigpPT5hKCkuaWNvbj8uaWNvblR5cGV9KX0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGV4dCxtYTohMH0pKSl9LCJDYiIpO1FQLmlkb21Db21wYXQ9ITA7dmFyIFJQPV8uTCgoe2RhdGE6YSxCZDpifSk9Pnt2YXIgYz1fLkRJKElpYSwoKT0+YSgpPy50b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHlLZXl8fCIiKSxkPSgpPT5hKCk/LnRvZ2dsZU1lbnVTZXJ2aWNlSXRlbUVudGl0eUtleT8hIWMoKT8udmFsdWU6YSgpPy5pc1RvZ2dsZWQsZT0oKT0+YygpP3tydW5zOlt7dGV4dDpjKCk/LnZhbHVlfHwiIn1dfTphKCk/LnRvZ2dsZWRTZWNvbmRhcnlUZXh0O3JldHVybiBfLksoInl0bS10b2dnbGUtbWVudS1zZXJ2aWNlLWl0ZW0tcmVuZGVyZXIiLG51bGwsXy5LKF8ud08se29uY2xpY2s6KCk9Pnt2YXIgZj1hKCksaD1iPy4oKSxrPWYuaXNUb2dnbGVkP2YudG9nZ2xlZFNlcnZpY2VFbmRwb2ludDpmLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQ7ayYmKF8uQUooayxmLCEwLHtCZDpofSksZi50b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHlLZXl8fChmLmlzVG9nZ2xlZD0hZi5pc1RvZ2dsZWQpKX19LF8uSyhfLk1ELHtpY29uOigpPT5kKCk/YSgpLnRvZ2dsZWRJY29uPy5pY29uVHlwZT8udG9TdHJpbmcoKToKYSgpLmRlZmF1bHRJY29uPy5pY29uVHlwZT8udG9TdHJpbmcoKSxhY3RpdmU6ZH0pLF8uSyhfLklKLHtkYXRhOigpPT5kKCk/YSgpLnRvZ2dsZWRUZXh0OmEoKS5kZWZhdWx0VGV4dH0pLF8uSyhfLk8se0E6KCk9PmEoKS5kZWZhdWx0U2Vjb25kYXJ5VGV4dHx8ZSgpLHRoZW46KCk9Pl8uSyhfLklKLHtkYXRhOigpPT5kKCk/ZSgpOmEoKS5kZWZhdWx0U2Vjb25kYXJ5VGV4dH0pfSkpKX0sIkRiIik7UlAuaWRvbUNvbXBhdD0hMDt2YXIgT2lhOwpfLlNQPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixUZDpjLEVoOmQsRmg6ZSxkZjpmLEhhOmgsdW46ayxzdG9wUHJvcGFnYXRpb246bCxwcmV2ZW50RGVmYXVsdDptLGxiOm4sYnV0dG9uT3ZlcnJpZGVzOnB9KT0+Xy5LKCJ5dG0tbWVudS1yZW5kZXJlciIse2NsYXNzOmJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS50b3BMZXZlbEJ1dHRvbnN9LHtidXR0b25SZW5kZXJlcjpfLnBPLG1lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlFQLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOl8ucU8sdG9nZ2xlTWVudVNlcnZpY2VJdGVtUmVuZGVyZXI6UlAsbGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8ucEwse2RhdGE6cixJYTohMH0pLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmZKLHtkYXRhOnJ9KSxtZW51TmF2aWdhdGlvbkl0ZW1SZW5kZXJlcjpQUCxsaWtlQnV0dG9uUmVuZGVyZXI6T1B9KSxfLksoT2lhLHtkYXRhOmEsVGQ6YyxFaDpkLEZoOmUsZGY6ZiwKSGE6aCx1bjprLHN0b3BQcm9wYWdhdGlvbjpsLHByZXZlbnREZWZhdWx0Om0sbGI6bixidXR0b25PdmVycmlkZXM6cH0se21lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlFQLG1lbnVOYXZpZ2F0aW9uSXRlbVJlbmRlcmVyOlBQLHRvZ2dsZU1lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlJQLGxpc3RJdGVtVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLnBMLHtkYXRhOnIsSWE6ITB9KSxzd2l0Y2hMaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5mSix7ZGF0YTpyfSksbGlrZUJ1dHRvblJlbmRlcmVyOk9QLGJ1dHRvblJlbmRlcmVyOl8ucE8sYWNjb3VudEluZm9NZW51SXRlbTpfLk5QfSkpLCJFYiIpO18uU1AuaWRvbUNvbXBhdD0hMDsKT2lhPV8uTCgoe2RhdGE6YSxjaGlsZHJlbjpiLC4uLmN9KT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+KCFhKCkuaXRlbXN8fCFhKCkuaXRlbXMubGVuZ3RoKSYmIShhKCkuaXNEaXNhYmxlZCYmYSgpLmRpc2FibGVkQ29tbWFuZCl9LCgpPT5udWxsKSxfLksoXy5DRSx7d2hlbjooKT0+Yy51bj8uKCl9LCgpPT5fLksoXy5NaGEse2ljb25UeXBlOigpPT5jLkVoPy4oKT8/Ik1PUkVfVkVSVCIsbGFiZWw6KCk9Pl8uV0woXy5ESihhKCkuYWNjZXNzaWJpbGl0eSk/PyIiKSxhcmlhTGFiZWw6KCk9Pl8uREooYSgpLmFjY2Vzc2liaWxpdHkpfHwiIixjYW5jZWxCdXR0b25MYWJlbDpfLiROLkNBTkNFTCxUZDooKT0+Yy5UZD8uKCksZGY6KCk9PmMuZGY/LigpLEhhOigpPT5jLkhhPy4oKSxzdG9wUHJvcGFnYXRpb246KCk9PmMuc3RvcFByb3BhZ2F0aW9uPy4oKSxwcmV2ZW50RGVmYXVsdDooKT0+Yy5wcmV2ZW50RGVmYXVsdD8uKCksYnV0dG9uT3ZlcnJpZGVzOigpPT5jLmJ1dHRvbk92ZXJyaWRlcz8uKCksCmlzRGlzYWJsZWQ6KCk9PmEoKS5pc0Rpc2FibGVkLGRpc2FibGVkQ29tbWFuZDooKT0+YSgpLmRpc2FibGVkQ29tbWFuZH0sKCk9Pl8uSyhfLlcse2RhdGE6KCk9PmEoKS5pdGVtc30sYikpKSxfLksoXy5ERSxudWxsLCgpPT5fLksoXy56Tyx7aWNvblR5cGU6KCk9PmMuRWg/LigpPz8iTU9SRV9WRVJUIixsYWJlbDooKT0+Xy5ESihhKCkuYWNjZXNzaWJpbGl0eSl8fCIiLGNhbmNlbEJ1dHRvbkxhYmVsOl8uJE4uQ0FOQ0VMLFRkOigpPT5jLlRkPy4oKSxGaDooKT0+Yy5GaD8uKCksZGY6KCk9PmMuZGY/LigpLEhhOigpPT5jLkhhPy4oKSxzdG9wUHJvcGFnYXRpb246KCk9PmMuc3RvcFByb3BhZ2F0aW9uPy4oKSxwcmV2ZW50RGVmYXVsdDooKT0+Yy5wcmV2ZW50RGVmYXVsdD8uKCksbGI6KCk9PmMubGI/LigpLGJ1dHRvbk92ZXJyaWRlczooKT0+Yy5idXR0b25PdmVycmlkZXM/LigpLGlzRGlzYWJsZWQ6KCk9PmEoKS5pc0Rpc2FibGVkLGRpc2FibGVkQ29tbWFuZDooKT0+YSgpLmRpc2FibGVkQ29tbWFuZH0sCigpPT5fLksoXy5XLHtkYXRhOigpPT5hKCkuaXRlbXN9LGIpKSkpLCJGYiIpO18uVFA9Xy5MKGE9Pl8uSyhfLk8se0E6KCk9PmEuZGF0YSgpLml0ZW1zPy5sZW5ndGh8fGEuZGF0YSgpLmlzRGlzYWJsZWQmJmEuZGF0YSgpLmRpc2FibGVkQ29tbWFuZCx0aGVuOigpPT5fLksoUGlhLHsuLi5hfSl9KSwiR2IiKTtfLlRQLmlkb21Db21wYXQ9ITA7CnZhciBQaWE9Xy5MKGE9Pnt2YXIge2RhdGE6YixjbGFzc05hbWU6YyxFaDpkLHNob3dJY29uOmUsYnV0dG9uU2l6ZTpmLGJ1dHRvbk92ZXJyaWRlczpofT1fLkRDKGEse3Nob3dJY29uOiExLGJ1dHRvbk92ZXJyaWRlczp7fSxidXR0b25TaXplOiJMIixFaDoiTU9SRV9WRVJUIn0pLGs9Xy5adDtyZXR1cm4gXy5LKCJ5dG0tYm90dG9tLXNoZWV0LXJlbmRlcmVyIix7Y2xhc3M6Y30sXy5LKF8uSksse2RhdGE6KCk9Pnt2YXIgbD17R2I6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6ImJvdHRvbS1zaGVldC1tZWRpYS1tZW51LWl0ZW0ifSxfLksoXy5XLHtkYXRhOigpPT5iKCkuaXRlbXN9LHttZW51U2VydmljZUl0ZW1SZW5kZXJlcjpRUCxtZW51TmF2aWdhdGlvbkl0ZW1SZW5kZXJlcjpQUCx0b2dnbGVNZW51U2VydmljZUl0ZW1SZW5kZXJlcjpSUCxsaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6bX0pPT5fLksoXy5wTCx7ZGF0YTptLElhOiEwfSksc3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOm19KT0+Cl8uSyhfLmZKLHtkYXRhOm19KSxsaWtlQnV0dG9uUmVuZGVyZXI6T1AsYnV0dG9uUmVuZGVyZXI6Xy5wTyxhY2NvdW50SW5mb01lbnVJdGVtOl8uTlB9KSksSGE6ZSgpLGlzRGlzYWJsZWQ6YigpLmlzRGlzYWJsZWQsZGlzYWJsZWRDb21tYW5kOmIoKS5kaXNhYmxlZENvbW1hbmR9O3JldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZTpmKCksaWNvblBvc2l0aW9uOiJpY29uLW9ubHkiLGFjY2Vzc2liaWxpdHlMYWJlbDpfLkRKKGIoKT8uYWNjZXNzaWJpbGl0eSl8fCIiLG9uVGFwOm09Pnt2YXIgbj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7Xy54SihfLmh4KCkse2RhdGE6YigpfSksbC5mb2N1c09uQ2xvc2U9bS5jdXJyZW50VGFyZ2V0LF8uV00oKSYmbS5zdG9wUHJvcGFnYXRpb24oKSxfLlZ6KG4sXy52TShrKSksXy55TihsKX1jYXRjaChwKXtuLmVycm9yPXAsbi5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3oobil9fSwKLi4uaCgpfX0saWNvbk5hbWU6KCk9PmQoKX0pKX0sIkhiIik7dmFyIEppYT1fLnUuZGV2aWNlUGl4ZWxSYXRpb3x8Mjt2YXIgS1A9ITE7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIiwoKT0+e0tQPSExfSk7Cl8uVVA9Xy5MKGE9Pnt2YXIge3RodW1ibmFpbERldGFpbHM6YixjbGFzc05hbWU6YyxhbHQ6ZCxhcmlhTGFiZWw6ZSxNZDpmLFRiOmgsaGM6ayxhcmlhSGlkZGVuOmwsWWE6bSxUYTpufT1fLkRDKGEse1RiOiEwLHRodW1ibmFpbERldGFpbHM6dm9pZCAwLGNsYXNzTmFtZTp2b2lkIDAsYWx0OnZvaWQgMCxhcmlhTGFiZWw6dm9pZCAwLE1kOnZvaWQgMCxoYzp2b2lkIDAsYXJpYUhpZGRlbjp2b2lkIDAsWWE6dm9pZCAwLFRhOnZvaWQgMH0pLHA9Xy52RSgiaW1nIiksW3IsdF09Xy5BQyhiKTtfLlVKKCgpPT57dmFyIHY9ey4uLmIoKX07dCh2KX0pO18ubkUoKCk9PntpZihwLnZhbHVlKXtsZXQgdj1wLnZhbHVlO0xQKHYpO2xldCB6PWIoKTt6JiYodi5zcmM9Xy5KUCh6LHYsZigpKSl9fSwibjdrYzRjIik7cmV0dXJuIF8uSyhfLk8se0E6KCk9PmIoKSYmKGQoKXx8ZSgpfHxjKCl8fGsoKXx8bCgpKSx0aGVuOigpPT5fLksoXy5qRix7ZGF0YTooKT0+cigpLGNsYXNzTmFtZTpjLGFsdDooKT0+CmQoKXx8ZSgpfHwiIixjb250ZW50TW9kZToiQ09OVEVOVF9NT0RFX1NDQUxFX0FTUEVDVF9GSUxMIixoYzprLGFyaWFIaWRkZW46bCxjYWxsYmFjazpMUCxUYjpoLFlhOm0sVGE6bn0pLFc6KCk9Pl8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoXy5oRix7ZGF0YTpiLGNvbmZpZzooKT0+KHtjbGFzc05hbWU6YygpLGFsdDpkKCl8fGUoKXx8IiIsaGM6aygpLGFyaWFIaWRkZW46bCgpLFlhOm0oKSxUYTpuKCl9KSxHbDp7U2c6KHYseik9PntMUCh6KTtyZXR1cm4gdj9fLkpQKHYseixmKCkpOiIifX0sbGF6eTohMH0pLFc6KCk9Pl8uSygiaW1nIix7ZWw6cCxhbHQ6ZCwiYXJpYS1sYWJlbCI6ZSxjbGFzczpjLCJkYXRhLWRpc2FibGVkIjprLCJhcmlhLWhpZGRlbiI6bH0pfSl9KX0sIktiIik7Xy5VUC5pZG9tQ29tcGF0PSEwO18uVlA9Xy5MKGE9Pl8uSygieXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyIix7Y2xhc3M6YS5jbGFzc05hbWUsInRodW1ibmFpbC1zaXplIjphLnRodW1ibmFpbFNpemUsImRhdGEtc3R5bGUiOigpPT5hLmRhdGE/LigpLnN0eWxlLCJhcmlhLWhpZGRlbiI6YS5hcmlhSGlkZGVuLCJkYXRhLXR5cGUiOigpPT5hLmRhdGE/LigpLnR5cGU/LnJlcGxhY2UoIlRIVU1CTkFJTF9PVkVSTEFZX1RJTUVfU1RBVFVTX1RZUEVfIiwiIil9LF8uSyhfLlRDLHtkYXRhOigpPT4oe3R5cGU6YS5kYXRhKCkuc3R5bGU9PT0iTElWRSI/MTk6MTgsdGV4dDpfLkNKKGEuZGF0YSgpLnRleHQpLGljb246YS5kYXRhKCkuaWNvbj8uaWNvblR5cGV8fGEuZGF0YSgpLnl0SWNvbixxTDphLmRhdGEoKS5zdHlsZT09PSJTSE9SVFMifSl9KSksIkxiIik7dmFyIFFpYTtfLldQPV8uTChhPT57dmFyIHtkZXRhaWxzOmIsb3ZlcmxheTpjLFRiOmQsaGo6ZSxNZDpmfT1fLkRDKGEse2RldGFpbHM6dm9pZCAwLFRiOiEwLGhqOiExfSksaD1fLlAoInZpZGVvLXRodW1ibmFpbC1pbWciLHsiY3VzdG9tLXRodW1ibmFpbCI6ZX0pO3JldHVybiBfLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ2aWRlby10aHVtYm5haWwtaW1nIiwidmlkZW8tdGh1bWJuYWlsLWJnIil9KSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKFFpYSx7ZGV0YWlsczpiLGNsYXNzTmFtZTpoLFRiOmQsTWQ6Zn0pfSksXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6YixjbGFzc05hbWU6aCxUYjpkLE1kOmYsYWx0OiIifSksXy5LKCJkaXYiLHtjbGFzczoidmlkZW8tcHJldmlldy1zaGltIn0pLGM/LigpKX0sIk1iIik7ClFpYT1fLkwoKHtkZXRhaWxzOmEsY2xhc3NOYW1lOmIsVGI6YyxNZDpkfSk9Pl8uSygiZGl2Iix7Y2xhc3M6ImN1c3RvbS10aHVtYm5haWwtYmFja2dyb3VuZC1jb250YWluZXIiLHN0eWxlOigpPT57aWYoYT8uKCkuc2FtcGxlZFRodW1ibmFpbENvbG9yKXt2YXIge3JlZDplLGdyZWVuOmYsYmx1ZTpofT1hKCkuc2FtcGxlZFRodW1ibmFpbENvbG9yO3JldHVybmBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR7ZX0sJHtmfSwke2h9LDEpO2B9fX0sXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6YSxjbGFzc05hbWU6YixhbHQ6IiIsTWQ6ZCxUYjpjfSkpLCJOYiIpO18uWFA9Xy5MKGE9Pnt2YXIge3RodW1ibmFpbERldGFpbHM6YixvdmVybGF5OmMsTWQ6ZCxjbGFzc05hbWU6ZSxUYjpmLGhqOmgsaG06a309Xy5EQyhhLHtUYjohMCxoajohMSx0aHVtYm5haWxEZXRhaWxzOnZvaWQgMH0pO3JldHVybiBfLksoInl0bS1jb21wYWN0LXRodW1ibmFpbCIse2NsYXNzOl8uUCgidmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0IiwidmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LXJvdW5kZWQiLGUseyJvcmlnaW5hbC1hc3BlY3QtcmF0aW8iOigpPT5iKCk/LmlzT3JpZ2luYWxBc3BlY3RSYXRpbyxzdGFja2VkOmt9KX0sXy5LKF8uV1Ase2RldGFpbHM6YixvdmVybGF5OmMsTWQ6ZCxUYjpmLGhqOmh9KSl9LCJPYiIpO18uWFAuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvdmVybGF5OiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWlA9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2hvcnRzLlRqfTtfLiRQPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNob3J0cy54an07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYlE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwZXZ0dmMiKTtyZXR1cm4gXy5yRH07Xy5jUT1fLmNEKCgpPT5fLmJRKCksImRpc2xpa2VCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZGlzbGlrZUJ1dHRvblZpZXdNb2RlbCIsInBldnR2YyIsXy5iUSl9KTtfLmRRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiaXpqbVAiKTtyZXR1cm4gXy5xRH07Xy5lUT1fLmNEKCgpPT5fLmRRKCksImxpa2VCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGlrZUJ1dHRvblZpZXdNb2RlbCIsIml6am1QIixfLmRRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmZRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiQVQ4TFRlIik7cmV0dXJuIF8ucER9O18uZ1E9Xy5jRCgoKT0+Xy5mUSgpLCJvdmVybGF5UHJvZHVjdFN0aWNrZXIiKTtfLll0KF8uSkQsYT0+e2EuSigib3ZlcmxheVByb2R1Y3RTdGlja2VyIiwiQVQ4TFRlIixfLmZRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgU2lhO18uaFE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJYZVJYQmQiKTtyZXR1cm4gXy5jRn07U2lhPV8uY0QoKCk9Pl8uaFEoKSwicmVlbFNvdW5kTWV0YWRhdGFWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbFNvdW5kTWV0YWRhdGFWaWV3TW9kZWwiLCJYZVJYQmQiLF8uaFEpfSk7Xy5pUT1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmJ9KT0+e3ZhciBjPV8udUUoInBpdm90LWJ1dHRvbi12aWV3LW1vZGVsIik7Xy5VSigoKT0+e2EoKT8uYmFja2dyb3VuZENvbG9yJiZjLnZhbHVlLnNldEF0dHJpYnV0ZSgiZGF0YS1iYWNrZ3JvdW5kLWNvbG9yIixTdHJpbmcoYSgpLmJhY2tncm91bmRDb2xvcikpfSk7cmV0dXJuIF8uSygicGl2b3QtYnV0dG9uLXZpZXctbW9kZWwiLHtlbDpjLGNsYXNzOl8uUCgieXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0IixiKX0sXy5LKF8ubkgse2NvbW1hbmQ6KCk9Pnt2YXIgZD1hKCk7ZD1kLm9uQ2xpY2tDb21tYW5kP18uUkQoZC5vbkNsaWNrQ29tbWFuZCk6ZC5jb250ZW50RGVzY3JpcHRpb24/Xy5hUShfLldMKGQuY29udGVudERlc2NyaXB0aW9uKSk6dm9pZCAwO3JldHVybiBkfSxhcmlhTGFiZWw6KCk9PmEoKS5jb250ZW50RGVzY3JpcHRpb259LF8uSyhfLk8se0E6KCk9PmEoKS50aHVtYm5haWwsdGhlbjpkPT5fLksoXy5qRix7ZGF0YTpkLAphbHQ6IiIsY2xhc3NOYW1lOiJ5dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJbWFnZSJ9KSxXOigpPT5fLksoXy5PLHtBOigpPT5hKCkuaWNvbix0aGVuOmQ9Pl8uSyhfLk1ELHtpY29uOigpPT5kKCkuaWNvblR5cGUsY2xhc3NOYW1lOiJ5dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJY29uIn0pfSl9KSkpfSwiU2IiKTtfLmpRPV8uTCgoe2RhdGE6YSxBZjpifSk9Pnt2YXIgYz0oKT0+Inl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlQWN0aW9uQnV0dG9uIjtyZXR1cm4gXy5LKCJyZWVsLWFjdGlvbi1iYXItdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3QiLHt5dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdE1vYmlsZTooKT0+ITAseXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3REZXNrdG9wOigpPT4hMX0pfSxfLksoXy5XLHtkYXRhOigpPT5hKCkuYnV0dG9uVmlld01vZGVsc30se2J1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5VRix7Y2xhc3NOYW1lOmMsZGF0YTpkLGJ1dHRvbk92ZXJyaWRlczpifSksbGlrZUJ1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5lUSx7Y2xhc3NOYW1lOmMsZGF0YTpkLEFmOmJ9KSxkaXNsaWtlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpkfSk9Pl8uSyhfLmNRLHtjbGFzc05hbWU6YywKZGF0YTpkLEFmOmJ9KSx0b2dnbGVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOmR9KT0+Xy5LKF8uWkYse2NsYXNzTmFtZTpjLGRhdGE6ZCx3aTpifSkscGl2b3RCdXR0b25WaWV3TW9kZWw6KHtkYXRhOmR9KT0+Xy5LKF8uaVEse2NsYXNzTmFtZTpjLGRhdGE6ZH0pfSkpfSwiVGIiKTt2YXIgVGlhO18ua1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJzNjQ5aiIpO3JldHVybiBfLm1IfTtUaWE9Xy5jRCgoKT0+Xy5rUSgpLCJwbGF5ZXJEaXNjbG9zdXJlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInBsYXllckRpc2Nsb3N1cmVWaWV3TW9kZWwiLCJzNjQ5aiIsXy5rUSl9KTt2YXIgVWlhO18ubFE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJ1U3hkbmIiKTtyZXR1cm4gXy5mSH07VWlhPV8uY0QoKCk9Pl8ubFEoKSwicmVlbENhcm91c2VsVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInJlZWxDYXJvdXNlbFZpZXdNb2RlbCIsInVTeGRuYiIsXy5sUSl9KTt2YXIgVmlhO18ubVE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJXZmY2QmQiKTtyZXR1cm4gXy5lSH07VmlhPV8uY0QoKCk9Pl8ubVEoKSwicmVlbENoYW5uZWxCYXJWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbENoYW5uZWxCYXJWaWV3TW9kZWwiLCJXZmY2QmQiLF8ubVEpfSk7dmFyIFdpYTtfLm5RPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVTNtenNkIik7cmV0dXJuIF8ubEh9O1dpYT1fLmNEKCgpPT5fLm5RKCksInJlZWxNdWx0aUZvcm1hdExpbmtWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbE11bHRpRm9ybWF0TGlua1ZpZXdNb2RlbCIsIlUzbXpzZCIsXy5uUSl9KTt2YXIgWGlhO18ub1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJ5UDBKQmQiKTtyZXR1cm4gXy5iRn07WGlhPV8uY0QoKCk9Pl8ub1EoKSwic2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigic2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWwiLCJ5UDBKQmQiLF8ub1EpfSk7dmFyIFlpYTtfLnBRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiUnFhSnNkIik7cmV0dXJuIF8uWEp9O1lpYT1fLmNEKCgpPT5fLnBRKCksInNob3J0c1N1Z2dlc3RlZEFjdGlvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzaG9ydHNTdWdnZXN0ZWRBY3Rpb25WaWV3TW9kZWwiLCJScWFKc2QiLF8ucFEpfSk7dmFyIFppYTtfLnFRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRTNIZWJjIik7cmV0dXJuIF8uYUZ9O1ppYT1fLmNEKCgpPT5fLnFRKCksInNob3J0c1ZpZGVvVGl0bGVWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigic2hvcnRzVmlkZW9UaXRsZVZpZXdNb2RlbCIsIkUzSGViYyIsXy5xUSl9KTtfLnJRPV8uTCgoe2RhdGE6YX0pPT5fLksoInl0LXJlZWwtbWV0YXBhbmVsLXZpZXctbW9kZWwiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsSG9zdCJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5tZXRhZGF0YUl0ZW1zfSx7YmFkZ2VWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsTWV0YXBhbmVsSXRlbSJ9LF8uSyhfLmFHLHtkYXRhOmJ9KSkscGxheWVyRGlzY2xvc3VyZVZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFRpYSx7ZGF0YTpifSkpLHByb2R1Y3RTdGlja2VyVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoXy5nUSx7ZGF0YTooKT0+YigpLnN0aWNrZXJ9KSkscmVlbENhcm91c2VsVmlld01vZGVsOih7ZGF0YTpifSk9PgpfLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFVpYSx7ZGF0YTpifSkpLHJlZWxDaGFubmVsQmFyVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoVmlhLHtkYXRhOmJ9KSkscmVlbE11bHRpRm9ybWF0TGlua1ZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFdpYSx7ZGF0YTpifSkpLHJlZWxTb3VuZE1ldGFkYXRhVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoU2lhLHtkYXRhOmJ9KSksc2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsTWV0YXBhbmVsSXRlbSJ9LApfLksoWGlhLHtkYXRhOmJ9KSksc2hvcnRzU3VnZ2VzdGVkQWN0aW9uVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoWWlhLHtkYXRhOmJ9KSksc2hvcnRzVmlkZW9UaXRsZVZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFppYSx7ZGF0YTpifSkpLHRvZ2dsZUJ1dHRvblZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKF8uWkYse2RhdGE6Yn0pKX0pKSwiVWIiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5zUT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImZLRThxZCIpO3JldHVybiBfLm9EfTtfLiRpYT1fLmNEKCgpPT5fLnNRKCksImRpYWxvZ1ZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJkaWFsb2dWaWV3TW9kZWwiLCJmS0U4cWQiLF8uc1EpfSk7Xy50UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoIlJaZWtKIik7cmV0dXJuIF8uU0N9O18uYWphPV8uY0QoKCk9Pl8udFEoKSwic21hcnRpbWF0aW9ucyIpO18uWXQoXy5KRCxhPT57YS5KKCJzbWFydGltYXRpb25zIiwiUlpla0oiLF8udFEpfSk7Xy51UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInNET1RHZSIpO3JldHVybiBfLm5EfTtfLmJqYT1fLmNEKCgpPT5fLnVRKCksInJlZWxQbGF5ZXJPdmVybGF5Vmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInJlZWxQbGF5ZXJPdmVybGF5Vmlld01vZGVsIiwic0RPVEdlIixfLnVRKX0pO18udlE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJlY3VQQWMiKTtyZXR1cm4gXy5tRH07Xy5jamE9Xy5jRCgoKT0+Xy52USgpLCJwbGF5ZXJPdmVybGF5SW50ZXJhY3Rpb24iKTtfLll0KF8uSkQsYT0+e2EuSigicGxheWVyT3ZlcmxheUludGVyYWN0aW9uIiwiZWN1UEFjIixfLnZRKX0pO18ud1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJGUWRJSmUiKTtyZXR1cm4gXy5sRH07Xy5kamE9Xy5jRCgoKT0+Xy53USgpLCJzdGlja2Vyc0xheWVyIik7Xy5ZdChfLkpELGE9PnthLkooInN0aWNrZXJzTGF5ZXIiLCJGUWRJSmUiLF8ud1EpfSk7Xy54UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoIm43ZW8yIik7cmV0dXJuIF8ua0R9O18uZWphPV8uY0QoKCk9Pl8ueFEoKSwiaW50ZXJzdGl0aWFsVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImludGVyc3RpdGlhbFZpZXdNb2RlbCIsIm43ZW8yIixfLnhRKX0pO18ueVE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJOdWlsdWUiKTtyZXR1cm4gXy5qRH07Xy5mamE9Xy5jRCgoKT0+Xy55USgpLCJ2aWRlb1dpdGhDb250ZXh0UmVuZGVyZXIiKTtfLll0KF8uSkQsYT0+e2EuSigidmlkZW9XaXRoQ29udGV4dFJlbmRlcmVyIiwiTnVpbHVlIixfLnlRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkFRPV8uTCgoe09vOmEsUnA6YixjaGlsZHJlbjpjLFBuOmQsZGlzYWJsZUFuaW1hdGlvbjplfSk9Pnt2YXIgZj0oKT0+IWU/LigpO3JldHVybiBfLksoInl0LWFuaW1hdGVkLWFjdGlvbiIse2NsYXNzOl8uUCgieXRBbmltYXRlZEFjdGlvbkhvc3QiLGQpfSxfLksoImRpdiIse2NsYXNzOiJ5dEFuaW1hdGVkQWN0aW9uQ29udGVudFdpdGhCYWNrZ3JvdW5kIn0sXy5LKF8uTyx7QTpmLHRoZW46KCk9Pl8uSyh6USx7UG46Inl0QW5pbWF0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29udGFpbmVyIix5eToieXRBbmltYXRlZEFjdGlvbkJhY2tncm91bmQiLEVjOigpPT4oe2FuaW1hdGlvblJlZjphPy4oKSxhbmltYXRpb25Db25maWc6e25hbWU6ImFuaW1hdGVkLWFjdGlvbnMtYmFja2dyb3VuZCIsYXV0b3BsYXk6ITEsbG9vcDohMSxwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvc3Vic2NyaWJlX2FjdGlvbi9zdWJzY3JpYmVfYWN0aW9uX2NvbnRhaW5lcl8ke18ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpPz8KITE/ImRhcmsiOiJsaWdodCJ9X3Y1Lmpzb25gfX0pfSl9KSxjKSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKHpRLHtFYzooKT0+KHthbmltYXRpb25SZWY6Yj8uKCksYW5pbWF0aW9uQ29uZmlnOntuYW1lOiJhbmltYXRlZC1hY3Rpb25zLWZvcmVncm91bmQiLGF1dG9wbGF5OiExLGxvb3A6ITEscGF0aDpgaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20veW91dHViZS9pbWcvbG90dGllL3N1YnNjcmliZV9hY3Rpb24vc3Vic2NyaWJlX2FjdGlvbl9zcGFya2xlc18ke18ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpPz8hMT8iZGFyayI6ImxpZ2h0In1fdjQuanNvbmB9fSl9KX0pKX0sIlZiIik7Xy5BUS5pZG9tQ29tcGF0PSEwOwp2YXIgelE9Xy5MKCh7UG46YSx5eTpiLEVjOmN9KT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0QW5pbWF0ZWRBY3Rpb25Mb3R0aWUiLGEpLCJhcmlhLWhpZGRlbiI6InRydWUifSxfLksoXy5jTSx7Y2xhc3NOYW1lOmIsZGF0YTpjLGFuaW1hdGlvbk5hbWU6KCk9PmMoKS5hbmltYXRpb25Db25maWcubmFtZX0pKSwiV2IiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5CUT1mdW5jdGlvbigpe3JldHVybntsb3R0aWVFbDp2b2lkIDB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5DUT1mdW5jdGlvbihhLGIpe18ubkUoKCk9Pnt2YXIgYz1hKCk7Xy5FQSgoKT0+dm9pZCBiKGMpKX0sImNLUjlzZiIpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGdqYSxEUSxFUSxGUSxoamEsaWphLGpqYSxHUSxIUSxramEsSVEsbGphLEpRLEtRLExRLE1RLE5RLE9RLG1qYSxQUSxRUSxSUSxuamEsU1Esb2phLFRRLFVRLHBqYSxWUSxXUSxYUSxaUSxxamEscmphLCRRLGFSLHNqYSx0amEsdWphLGJSLGNSLHZqYSx3amEseGphLGhSLGZSLG1SLG5SLG9SLHBSLGdSLHRSLHVSLGtSLHZSLGxSLHpqYSxBamEselIsQVIsQlIsRWphLERSLEhSLEZqYSxHamEsSGphLElqYSxJUixKUixKamEsTFIsTGphLE1qYSxNUixRamEsUGphLFJqYSxPamEsTlIsTmphLFBSLE9SLFVqYSxXamEsUlIsWGphLFNSLGRTLGVTLGZTLGdTLGRrYSxpa2EsaVMsa2thLGpTLGtTLG9rYSxwUyxxa2EscmthLHFTLHNrYSx0a2EsclMsc1MsdFMsdVMsd1MseFMsdlMseVMselMsQVMsQlMsRVMsRlMsQ1MsR1MsemthLEpTLEhTLENrYSxMUyxNUyxOUyxQUyxJUyxGa2EsU1MsR2thLFVTLFdTLFhTLEhrYSxZUyxaUywkUyxjVCxiVCxJa2EsZFQsSmthLEtrYSxMa2EsTWthLGdULApmVCxoVCxrVCxsVCxOa2EsbVQsalQsaVQsblQsb1QscFQsT2thLHJULFBrYSxRa2EsdFQsUmthLHZULFNrYSxUa2Esc1QsVWthLFZrYSxXa2EsWGthLFlrYSx4VCx1VCxxVCx3VCx5VCx6VCxBVCxCVCxDVCxEVCwka2EsRVQsSFQsSVQsRlQsY2xhLGJsYSxKVCxLVCxPVCxQVCxlbGEsUVQsVFQsUlQsZmxhLGhsYSxnbGEsaWxhLFdULFhULGpsYSxaVCxrbGEsYVUsYlUsY1UsbGxhLGhVLG5sYSxvbGEsaVUsalUsbFUsbVUsblUsb1UscFUscGxhLHFVLHFsYSxyVSxybGEsc1UsdVUsc2xhLHVsYSx3VSxJVSx4VSxLVSxKVSx2bGEsd2xhLHhsYSx6bGEsTFUseWxhLE9VLE1VLEJsYSxDbGEsRGxhLFBVLEVsYSxGbGEsR2xhLEhsYSxJbGEsSmxhLEtsYSxMbGEsTWxhLE5sYSxRVSxSVSxTVSxVVSxQbGEsWFUsWVUsUWxhLFJsYSxaVSxTbGEsJFUsVWxhLGFWLFRsYTtnamE9ZnVuY3Rpb24oKXtyZXR1cm4hIV8uWk8oKX07CkRRPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoYSxiKSxjKX07RVE9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1iP1N0cmluZyhiKS50b1VwcGVyQ2FzZSgpOm51bGw7cmV0dXJuIF8uZ3coYSxmdW5jdGlvbihkKXtyZXR1cm4oIWN8fGQubm9kZU5hbWU9PWMpJiYhMH0sITApfTtGUT1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmxlZnQ9YTt0aGlzLnRvcD1iO3RoaXMud2lkdGg9Yzt0aGlzLmhlaWdodD1kfTtoamE9ZnVuY3Rpb24oYSxiKXtiP18uU3QoYSwieXRQbGF5ZXJDb250cm9sc0NvbnRhaW5lclJlbmRlcmVkIik6Xy5UdChhLCJ5dFBsYXllckNvbnRyb2xzQ29udGFpbmVyUmVuZGVyZWQiKX07CmlqYT1mdW5jdGlvbigpe18uVmkoKCk9PntpZighXy5CcSgiZnRsIikpe3ZhciBhPV8ucG8oKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntzZXRUaW1lb3V0KCgpPT57YSE9PV8ucG8oKXx8Xy5CcSgiZnRsIil8fF8uQXEoImZ0bCIsdm9pZCAwLHZvaWQgMCl9LDApfSl9fSkoKX07amphPWZ1bmN0aW9uKCl7aWYoXy5YeigpKXt2YXIgYT1fLkdoKCJwZnAtbWF3LXBsYXllciIpO2lmKGEpcmV0dXJuIG5ldyBfLndNKGEpfX07R1E9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2woKDAsXy5TYWEpKCksYSl9OwpIUT1mdW5jdGlvbigpe2lmKF8ueCgiZW5hYmxlX2F1dG9tb3RpdmVfZm9ybV9mYWN0b3JfY2hlY2siKSlyZXR1cm4gXy53KCJJTk5FUlRVQkVfQ09OVEVYVCIse30pLmNsaWVudD8uY2xpZW50Rm9ybUZhY3Rvcj09PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIjt2YXIgYT1fLncoIklOTkVSVFVCRV9DT05URVhUIix7fSk7cmV0dXJuIGEuY2xpZW50Py5vc05hbWUmJmEuY2xpZW50Lm9zTmFtZT09PSJBbmRyb2lkIEF1dG9tb3RpdmUifTtramE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLmVudGl0aWVzLCJkaXNtaXNzU3RhdGUiLGIpfTtJUT1mdW5jdGlvbigpe3JldHVybiBfLlVNKCk9PT0iaGFzaHRhZyJ9O2xqYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImxvZ29FbnRpdHkiLGIpfTsKSlE9ZnVuY3Rpb24oKXtyZXR1cm4gYT0+e3ZhciBiPV8uTEIoITEpO3RyeXtsZXQgYz1hLmNoaWxkcmVuO18uVUE/Yz9fLmdOKF8uSyhfLnNPLGEsYykpOl8uZ04oXy5LKF8uc08sYSkpOl8uSXAobmV3IF8uWGooImtldG9Ub0MzIGNhbGxlZCBvdXRzaWRlIG9mIGEgcGF0Y2giLHt0YWdOYW1lOl8uc08uWmN9KSl9ZmluYWxseXtfLkxCKGIpfX19OwpLUT1mdW5jdGlvbihhLGIpe2lmKGEucmVxdWVzdEZ1bGxzY3JlZW4pYT1hLnJlcXVlc3RGdWxsc2NyZWVuKGIpO2Vsc2UgaWYoYS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbilhPWEud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKGEubW96UmVxdWVzdEZ1bGxTY3JlZW4pYT1hLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7ZWxzZSBpZihhLm1zUmVxdWVzdEZ1bGxzY3JlZW4pYT1hLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKGEud2Via2l0RW50ZXJGdWxsc2NyZWVuKWE9YS53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKTtlbHNlIHJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiSmQiKSk7cmV0dXJuIGEgaW5zdGFuY2VvZiBQcm9taXNlP2E6UHJvbWlzZS5yZXNvbHZlKCl9OwpMUT1mdW5jdGlvbigpe3JldHVybiEhXy5JTyhbImZ1bGxzY3JlZW5FbmFibGVkIiwid2Via2l0RnVsbHNjcmVlbkVuYWJsZWQiLCJtb3pGdWxsU2NyZWVuRW5hYmxlZCIsIm1zRnVsbHNjcmVlbkVuYWJsZWQiXSxkb2N1bWVudCl9O01RPWZ1bmN0aW9uKGEpe3ZhciBiO0xRKCk/Xy5aTygpPT1hJiYoYj1kb2N1bWVudCk6Yj1hO2lmKGImJihhPV8uSU8oWyJleGl0RnVsbHNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwibW96Q2FuY2VsRnVsbFNjcmVlbiIsIm1zRXhpdEZ1bGxzY3JlZW4iXSxiKSkpe2EuY2FsbChiKWluc3RhbmNlb2YgUHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJufVByb21pc2UucmVzb2x2ZSgpfTtOUT1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKX07T1E9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9TlEoYSkpPyEhYS5kaXNwbGF5TmFtZTohMX07Cm1qYT1mdW5jdGlvbihhKXtyZXR1cm4gXy52YihhLGI9PmIubGFuZ3VhZ2VDb2RlPT09ImVuIil9O1BRPWZ1bmN0aW9uKGEpe2lmKCFhLmdldE9wdGlvbnMoImNhcHRpb25zIikpcmV0dXJuIiI7YT1fLiRPKGEpO2lmKCFhLmxlbmd0aClyZXR1cm4iIjt2YXIgYj1tamEoYSk7cmV0dXJuIGI/Yi5kaXNwbGF5TmFtZXx8IiI6YVswXS5kaXNwbGF5TmFtZXx8IiJ9OwpRUT1mdW5jdGlvbihhLGIsYyl7aWYoT1EoYSkpXy54KCJtd2ViX2VuYWJsZV9wbGF5ZXJfY2FwdGlvbnNfcGVyc2lzdGVuY2Vfc3RhdGVfbWFjaGluZSIpP2Euc2V0T3B0aW9uKCJjYXB0aW9ucyIsInN0aWNreUxvYWRpbmciLHt1c2VySW5pdGlhdGVkOmN9KTphLnNldE9wdGlvbigiY2FwdGlvbnMiLCJzdGlja3lMb2FkaW5nIix7fSksYS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLHt9KTtlbHNle2xldCBkPV8udmIoXy4kTyhhKSxlPT5lLmRpc3BsYXlOYW1lPT09Yik7YS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLGQpO18ueCgibXdlYl9lbmFibGVfcGxheWVyX2NhcHRpb25zX3BlcnNpc3RlbmNlX3N0YXRlX21hY2hpbmUiKSYmYS5zZXRPcHRpb24oImNhcHRpb25zIiwic3RpY2t5TG9hZGluZyIse3VzZXJJbml0aWF0ZWQ6Y30pfX07UlE9ZnVuY3Rpb24oKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZ1bGxzY3JlZW5yZXF1ZXN0IikpfTsKbmphPWZ1bmN0aW9uKGEpe3ZhciBbYl09KDAsXy51aWEpKGEpLFtjXT0oMCxfLnZpYSkoYSk7cmV0dXJuW18uTigoKT0+e3ZhciBkPXsuLi5iKCl9O2Qubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbiYmKGQubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbj17Li4uYygpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b259KTtyZXR1cm4gZH0sdm9pZCAwLCJ1dlM4N2IiKV19O1NRPWZ1bmN0aW9uKGEpe01RKGF8fGRvY3VtZW50LmJvZHkpfTsKb2phPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTthJiYoUlEoKSxLUShhKS5jYXRjaChiPT57aWYoYj8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKV8uV2koYik7ZWxzZSB0aHJvdyBiO30pKX07VFE9ZnVuY3Rpb24oYSxiKXtfLlpPKCk/KFJRKCksU1EoYikpOkxRKCk/KFJRKCksYj1LUShifHxkb2N1bWVudC5ib2R5LHtuYXZpZ2F0aW9uVUk6ImhpZGUifSksYT8uZHMmJmI/LmNhdGNoKCgpPT5udWxsKSk6b2phKCl9OwpVUT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gMDt2YXIgYj1hLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCksYz1hLmdldFZpZGVvRGF0YSgpO3JldHVybiBjJiZjLmlzTGl2ZT8oYT1hLmdldFByb2dyZXNzU3RhdGUoYiksYS5zZWVrYWJsZUVuZC1hLnNlZWthYmxlU3RhcnQpOmEuZ2V0RHVyYXRpb24oYil9O3BqYT1mdW5jdGlvbihhLGIsYyl7YXx8Xy5PRSgoKT0+e2I/LnByZXZpb3VzVmlkZW8oYyl9KX07VlE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRQbGF5ZXJTdGF0ZSgpO2lmKGI9PT0yKXJldHVybiEwO2lmKGIhPT0zKXJldHVybiExO2E9YS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpO3JldHVybiFhLmlzQnVmZmVyaW5nJiYhYS5pc1Vuc3RhcnRlZCYmIWEuaXNQbGF5aW5nJiZhLmlzUGF1c2VkfTsKV1E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRQbGF5ZXJTdGF0ZSgpO2lmKGI9PT0xKXJldHVybiBhLnBhdXNlVmlkZW8oKSwiUExBWUVSX1BBVVNFIjtpZihiPT09LTEpYS5wbGF5VmlkZW8oKTtlbHNlIGlmKGI9PT0yfHxWUShhKSlyZXR1cm4gYS5wbGF5VmlkZW8oKSwiUExBWUVSX1BMQVkifTtYUT1mdW5jdGlvbihhKXthPWEmJmEuZ2V0UGxheWxpc3RJbmRleCYmYS5nZXRQbGF5bGlzdEluZGV4KCk+PTA7cmV0dXJuISFfLlpiKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCJsaXN0Iil8fCEhYX07WlE9ZnVuY3Rpb24oYSl7WVE9YX07cWphPWZ1bmN0aW9uKGEpe3ZhciBiPVlRO2I/KGE9YS50aW1lU3RhbXAsYj1iLnRpbWVTdGFtcCxiPWlzTmFOKGEpfHxpc05hTihiKT8hMTpNYXRoLmFicyhhLWIpPD1fLnlpYSk6Yj0hMTtyZXR1cm4gYn07CnJqYT1mdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtpZihiKXt2YXIgYz0hYi5wYXVzZWQ7KHFqYShhKXx8YykmJnNldFRpbWVvdXQoKCk9PntiLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhdXNlIixaUSk7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiZfLlZNKCl9LF8ueGlhKX19OyRRPWZ1bmN0aW9uKCl7Xy54KCJtd2ViX25ld19mdWxsc2NyZWVuIik/U1EoXy5FSik6Xy5FSiYmKE1RKF8uRUopLF8ueCgibXdlYl9uZXdfZnVsbHNjcmVlbl9yZXNpemUiKXx8Xy5YTSgicmVzaXplIikpfTsKYVI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpO2EmJihfLmZyJiZfLngoIm13ZWJfaW9zX2Z1bGxzY3JlZW5fcGxheWJhY2tfdHJhbnNpdGlvbiIpJiYoYS5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsWlEpLF8uTk0oYSwid2Via2l0ZW5kZnVsbHNjcmVlbiIscmphKSksXy5YTSgiZnVsbHNjcmVlbnJlcXVlc3QiKSxLUShhKS5jYXRjaChiPT57aWYoYj8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKV8uV2koYik7ZWxzZSB0aHJvdyBiO30pKX07c2phPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LnNjcmVlbi5vcmllbnRhdGlvbjtpZihhPy5sb2NrJiYhXy5NRSgpJiYhXy5URSgpKXRyeXthLmxvY2soImxhbmRzY2FwZSIpLmNhdGNoKCgpPT57fSl9Y2F0Y2goYil7fX07CnRqYT1mdW5jdGlvbihhKXtfLlhNKCJmdWxsc2NyZWVucmVxdWVzdCIpO3ZhciBiPUtRKF8uRUose25hdmlnYXRpb25VSToiaGlkZSJ9KTthfHxzamEoKTtfLngoIm13ZWJfbmV3X2Z1bGxzY3JlZW5fcmVzaXplIil8fF8uWE0oInJlc2l6ZSIpO3JldHVybiBifTsKdWphPWZ1bmN0aW9uKGEpe2RvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIik9PT0idHJ1ZSImJmRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIik7aWYoXy54KCJtd2ViX25ld19mdWxsc2NyZWVuIikpVFEoYSxfLkVKKTtlbHNle3ZhciBiPV8uclAoKSxjO18uZnI/Yz1hUigpOkxRKCk/Yj8kUSgpOmM9dGphKGE/LnpJKTpfLngoIm13ZWJfbmF0aXZlX2NvbnRyb2xfaW5fZmF1eF9mdWxsc2NyZWVuX3NoYXJlZCIpP2M9YVIoKTpfLlhNKCJwbGF5ZXItZnVsbHNjcmVlbi10b2dnbGVkIix7aXNDdXJyZW50bHlGdWxsc2NyZWVuOmJ9KTtjPy5jYXRjaChkPT57aWYoZD8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxkPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxkPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKWRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIiwKInRydWUiKSxfLlhNKCJwbGF5ZXItZnVsbHNjcmVlbi10b2dnbGVkIix7aXNDdXJyZW50bHlGdWxsc2NyZWVuOmJ9KX0pO2E/LmRzJiZjPy5jYXRjaCgoKT0+bnVsbCl9fTtiUj1mdW5jdGlvbihhKXtyZXR1cm57bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOmEudGl0bGUsc2VsZWN0aW9uVGV4dDphLnNlbGVjdGlvblRleHQsbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTphLmljb25UeXBlfX1dfSxpc0Rpc2FibGVkOmEuaXNEaXNhYmxlZCxpc1NlbGVjdGVkOmEuaXNTZWxlY3RlZCxzZWxlY3Rpb25TdHlsZTphLnNlbGVjdGlvblN0eWxlfX19OwpjUj1mdW5jdGlvbihhKXtyZXR1cm57c3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOmEudGl0bGUsbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTphLmljb25UeXBlfX1dfSxzd2l0Y2hlZE9uQnlEZWZhdWx0OmEua2wsYTExeUxhYmVsU3dpdGNoZWRPbjphLkVrLGExMXlMYWJlbFN3aXRjaGVkT2ZmOmEuRGssaXNEaXNhYmxlZDphLmlzRGlzYWJsZWR9fX07dmphPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNob3J0cy5pc0Z1bGxzY3JlZW59O3dqYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5zaG9ydHMubWp9Owp4amE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmxlbmd0aDtzd2l0Y2goYyl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgMTpyZXR1cm4gU3RyaW5nKGJbMF0pO2Nhc2UgMjpyZXR1cm4gYS5ELnJlcGxhY2UoInswfSIsU3RyaW5nKGJbMF0pKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiWzFdKSl9dmFyIGQ9YS5CLnJlcGxhY2UoInswfSIsU3RyaW5nKGJbMF0pKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiWzFdKSk7Zm9yKGxldCBlPTI7ZTxjLTE7KytlKWQ9YS52LnJlcGxhY2UoInswfSIsZCkucmVwbGFjZSgiezF9IixTdHJpbmcoYltlXSkpO3JldHVybiBhLm8ucmVwbGFjZSgiezB9IixkKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiW2MtMV0pKX07CmhSPWZ1bmN0aW9uKCl7dGhpcy5LPW51bGw7dGhpcy5WZD10aGlzLk1hPXRoaXMuUWE9ITE7dGhpcy5aPTQwO3RoaXMubz0xO3RoaXMuaGE9MDt0aGlzLmo9Mzt0aGlzLnlhPXRoaXMuQj0wO3RoaXMuRWI9ITE7dGhpcy5nYT10aGlzLk09IiI7dGhpcy5EPWRSLmFvO3RoaXMuVT0iIjt0aGlzLnY9MTt0aGlzLlk9ITE7dGhpcy5JPVtdO3RoaXMuRmE9dGhpcy5mYz0hMTt0aGlzLm9hPTA7aWYoZVIpZlIodGhpcyk7ZWxzZXt0aGlzLks9bnVsbDt2YXIgYT1kUi5ndDtsZXQgZT1bMF07dGhpcy5NPWdSKHRoaXMsYSxlKTt2YXIgYj1lWzBdO2xldCBmPS0xLGg9MDt2YXIgYz0wLGQ9MDtsZXQgaz0tMSxsPWEubGVuZ3RoO2ZvcihsZXQgbT0hMDtlWzBdPGwmJm07ZVswXSsrKXN3aXRjaChhLmNoYXJBdChlWzBdKSl7Y2FzZSAiIyI6Yz4wP2QrKzpoKys7az49MCYmZjwwJiZrKys7YnJlYWs7Y2FzZSAiMCI6aWYoZD4wKXRocm93IEVycm9yKCJWZGAiK2EpO2MrKztrPj0wJiZmPDAmJmsrKzticmVhazsKY2FzZSAiLCI6az4wJiZ0aGlzLkkucHVzaChrKTtrPTA7YnJlYWs7Y2FzZSAiLiI6aWYoZj49MCl0aHJvdyBFcnJvcigiV2RgIithKTtmPWgrYytkO2JyZWFrO2Nhc2UgIkUiOmlmKHRoaXMuRmEpdGhyb3cgRXJyb3IoIlhkYCIrYSk7dGhpcy5GYT0hMDt0aGlzLnlhPTA7ZVswXSsxPGwmJmEuY2hhckF0KGVbMF0rMSk9PSIrIiYmKGVbMF0rKyx0aGlzLkViPSEwKTtmb3IoO2VbMF0rMTxsJiZhLmNoYXJBdChlWzBdKzEpPT0iMCI7KWVbMF0rKyx0aGlzLnlhKys7aWYoaCtjPDF8fHRoaXMueWE8MSl0aHJvdyBFcnJvcigiWWRgIithKTttPSExO2JyZWFrO2RlZmF1bHQ6ZVswXS0tLG09ITF9Yz09MCYmaD4wJiZmPj0wJiYoYz1mLGM9PTAmJmMrKyxkPWgtYyxoPWMtMSxjPTEpO2lmKGY8MCYmZD4wfHxmPj0wJiYoZjxofHxmPmgrYyl8fGs9PTApdGhyb3cgRXJyb3IoIlpkYCIrYSk7ZD1oK2MrZDt0aGlzLmo9Zj49MD9kLWY6MDtmPj0wJiYodGhpcy5CPWgrYy1mLHRoaXMuQjwwJiYodGhpcy5CPQowKSk7dGhpcy5vPShmPj0wP2Y6ZCktaDt0aGlzLkZhJiYodGhpcy5aPWgrdGhpcy5vLHRoaXMuaj09MCYmdGhpcy5vPT0wJiYodGhpcy5vPTEpKTt0aGlzLkkucHVzaChNYXRoLm1heCgwLGspKTt0aGlzLmZjPWY9PTB8fGY9PWQ7Yj1lWzBdLWI7dGhpcy5nYT1nUih0aGlzLGEsZSk7ZVswXTxhLmxlbmd0aCYmYS5jaGFyQXQoZVswXSk9PSI7Ij8oZVswXSsrLHRoaXMudiE9MSYmKHRoaXMuWT0hMCksdGhpcy5EPWdSKHRoaXMsYSxlKSxlWzBdKz1iLHRoaXMuVT1nUih0aGlzLGEsZSkpOih0aGlzLkQrPXRoaXMuTSx0aGlzLlUrPXRoaXMuZ2EpfX07CmZSPWZ1bmN0aW9uKGEpe3ZhciBiPXtub3RhdGlvbjoic3RhbmRhcmQiLG1pbmltdW1JbnRlZ2VyRGlnaXRzOk1hdGgubWluKDIxLE1hdGgubWF4KDEsYS5vKSl9O2EuRWImJihiLnNpZ25EaXNwbGF5PSJhbHdheXMiKTthLlFhPyhiLm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz0xLGIubWF4aW11bVNpZ25pZmljYW50RGlnaXRzPU1hdGgubWF4KDEsTWF0aC5taW4oMjEsYS5oYSkpKTphLk1hJiYoYi5taW5pbXVtRnJhY3Rpb25EaWdpdHM9TWF0aC5tYXgoMCxhLkIpLGIubWF4aW11bUZyYWN0aW9uRGlnaXRzPU1hdGgubWluKDIwLE1hdGgubWF4KDAsYS5qKSkpO2Iuc3R5bGU9ImRlY2ltYWwiO3RyeXtsZXQgYzsoYz0iZW4tVVMiLnJlcGxhY2UoIl8iLCItIikpJiZjIGluIGlSJiYoYi5udW1iZXJpbmdTeXN0ZW09aVJbY10pO2EuSz1uZXcgSW50bC5OdW1iZXJGb3JtYXQoYyxiKX1jYXRjaChjKXt0aHJvdyBhLks9bnVsbCxFcnJvcigiUmRgIitjKTt9alI9YS5WZD1hLlFhPWEuTWE9ITF9OwptUj1mdW5jdGlvbihhLGIpe3ZhciBjPWtSKGIsYS5qKTthLmhhPjAmJihjPWxSKGMsYS5oYSxhLmopKTtjPU1hdGgucm91bmQoYyk7aWYoaXNGaW5pdGUoYykpe3ZhciBkPU1hdGguZmxvb3Ioa1IoYywtYS5qKSk7Yz1NYXRoLmZsb29yKGMta1IoZCxhLmopKTtpZihjPDB8fGM+PWtSKDEsYS5qKSlkPU1hdGgucm91bmQoYiksYz0wfWVsc2UgZD1iLGM9MDtyZXR1cm57aW50VmFsdWU6ZCxodzpjfX07Cm5SPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEuQj5hLmopdGhyb3cgRXJyb3IoIlNkIik7ZHx8KGQ9W10pO2I9bVIoYSxiKTt2YXIgZT1iLmludFZhbHVlLGY9Yi5odyxoPWEuQj4wfHxmPjB8fCExO2I9YS5CO2gmJihiPWEuQik7Zm9yKHZhciBrPSIiLGw9ZTtsPjFFMjA7KWs9IjAiK2ssbD1NYXRoLnJvdW5kKGtSKGwsLTEpKTtrPWwrazt2YXIgbT1kUi5WbjtsPWRSLkJrLmNvZGVQb2ludEF0KDApO3ZhciBuPWsubGVuZ3RoLHA9MDtpZihlPjB8fGM+MCl7Zm9yKGU9bjtlPGM7ZSsrKWQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsKSk7aWYoYS5JLmxlbmd0aD49Milmb3IoYz0xO2M8YS5JLmxlbmd0aDtjKyspcCs9YS5JW2NdO2M9bi1wO2lmKGM+MCl7ZT1hLkk7cD1uPTA7dmFyIHI9ZFIucmssdD1rLmxlbmd0aDtmb3IobGV0IHo9MDt6PHQ7eisrKWlmKGQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsK051bWJlcihrLmNoYXJBdCh6KSkpKSx0LXo+MSl7dmFyIHY9ZVtwXTtpZih6PApjKXtsZXQgRT1jLXo7KHY9PT0xfHx2PjAmJkUldj09PTEpJiZkLnB1c2gocil9ZWxzZSBwPGUubGVuZ3RoJiYoej09PWM/cCs9MTp2PT09ei1jLW4rMSYmKGQucHVzaChyKSxuKz12LHArPTEpKX19ZWxzZXtjPWs7az1hLkk7ZT1kUi5yazt2PWMubGVuZ3RoO3I9W107Zm9yKG49ay5sZW5ndGgtMTtuPj0wJiZ2PjA7bi0tKXtwPWtbbl07Zm9yKHQ9MDt0PHAmJnYtdC0xPj0wO3QrKylyLnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQobCtOdW1iZXIoYy5jaGFyQXQodi10LTEpKSkpO3YtPXA7dj4wJiZyLnB1c2goZSl9ZC5wdXNoLmFwcGx5KGQsci5yZXZlcnNlKCkpfX1lbHNlIGh8fGQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsKSk7KGEuZmN8fGgpJiZkLnB1c2gobSk7Zj1TdHJpbmcoZik7aD1mLnNwbGl0KCJlKyIpO2gubGVuZ3RoPT0yJiYoZj1TdHJpbmcobFIocGFyc2VGbG9hdChoWzBdKSxhLmhhLDEpKSxmPWYucmVwbGFjZSgiLiIsIiIpLGYrPSIwIi5yZXBlYXQocGFyc2VJbnQoaFsxXSwKMTApLWYubGVuZ3RoKzEpKTthLmorMT5mLmxlbmd0aCYmKGY9IjEiKyIwIi5yZXBlYXQoYS5qLWYubGVuZ3RoKStmKTtmb3IoYT1mLmxlbmd0aDtmLmNoYXJBdChhLTEpPT0iMCImJmE+YisxOylhLS07Zm9yKGI9MTtiPGE7YisrKWQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsK051bWJlcihmLmNoYXJBdChiKSkpKX07b1I9ZnVuY3Rpb24oYSxiLGMpe2MucHVzaChkUi5Zbik7YjwwPyhiPS1iLGMucHVzaChkUi5hbykpOmEuRWImJmMucHVzaChkUi5XdCk7Yj0iIitiO3ZhciBkPWRSLkJrO2ZvcihsZXQgZT1iLmxlbmd0aDtlPGEueWE7ZSsrKWMucHVzaChkKTthPWQuY29kZVBvaW50QXQoMCkteWphO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspYy5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGErYi5jb2RlUG9pbnRBdChkKSkpfTsKcFI9ZnVuY3Rpb24oYSl7YT1hLmNvZGVQb2ludEF0KDApO2lmKDQ4PD1hJiZhPDU4KXJldHVybiBhLTQ4O3ZhciBiPWRSLkJrLmNvZGVQb2ludEF0KDApO3JldHVybiBiPD1hJiZhPGIrMTA/YS1iOi0xfTsKZ1I9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0iIixlPSExLGY9Yi5sZW5ndGg7Y1swXTxmO2NbMF0rKyl7dmFyIGg9Yi5jaGFyQXQoY1swXSk7aWYoaD09IiciKWNbMF0rMTxmJiZiLmNoYXJBdChjWzBdKzEpPT0iJyI/KGNbMF0rKyxkKz0iJyIpOmU9IWU7ZWxzZSBpZihlKWQrPWg7ZWxzZSBzd2l0Y2goaCl7Y2FzZSAiIyI6Y2FzZSAiMCI6Y2FzZSAiLCI6Y2FzZSAiLiI6Y2FzZSAiOyI6cmV0dXJuIGQ7Y2FzZSAiXHUwMGE0IjpjWzBdKzE8ZiYmYi5jaGFyQXQoY1swXSsxKT09Ilx1MDBhNCI/KGNbMF0rKyxkKz1kUi5Xbik6KGg9ZFIuV24sZCs9aCBpbiBxUj9xUltoXVsxXTpoKTticmVhaztjYXNlICIlIjppZighYS5ZJiZhLnYhPTEpdGhyb3cgRXJyb3IoIlRkIik7aWYoYS5ZJiZhLnYhPTEwMCl0aHJvdyBFcnJvcigiVWQiKTthLnY9MTAwO2EuWT0hMTtkKz1kUi5qbzticmVhaztjYXNlICJcdTIwMzAiOmlmKCFhLlkmJmEudiE9MSl0aHJvdyBFcnJvcigiVGQiKTtpZihhLlkmJgphLnYhPTFFMyl0aHJvdyBFcnJvcigiVWQiKTthLnY9MUUzO2EuWT0hMTtkKz1kUi5rbzticmVhaztkZWZhdWx0OmQrPWh9fXJldHVybiBkfTt0Uj1mdW5jdGlvbihhLGIpe2E9YS5vYT09MT9yUi5TbjpyUi5WczthPT1udWxsJiYoYT1yUi5Tbik7aWYoYjwzKXJldHVybiBzUjtiPU1hdGgubWluKDE0LGIpO3ZhciBjPWFba1IoMSxiKV07Zm9yKC0tYjshYyYmYj49MzspYz1hW2tSKDEsYildLGItLTtpZighYylyZXR1cm4gc1I7Yz1jLm90aGVyO3ZhciBkPWE9IiIsZT1jLmluZGV4T2YoIjsiKTtlPj0wJiYoYz1jLnN1YnN0cmluZygwLGUpLGU9Yy5zdWJzdHJpbmcoZSsxKSkmJihkPS8oW14wXSopKDArKSguKikvLmV4ZWMoZSksYT1kWzFdLGQ9ZFszXSk7cmV0dXJuIGMmJmMhPSIwIj8oYz0vKFteMF0qKSgwKykoLiopLy5leGVjKGMpKT97cGw6YisxLShjWzJdLmxlbmd0aC0xKSx3bTphLHhtOmQscHJlZml4OmNbMV0sc3VmZml4OmNbM119OnNSOnNSfTsKdVI9ZnVuY3Rpb24oYSl7aWYoIWlzRmluaXRlKGEpKXJldHVybiBhPjA/YTowO2Zvcih2YXIgYj0wOyhhLz0xMCk+PTE7KWIrKztyZXR1cm4gYn07a1I9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWlzRmluaXRlKGEpfHxiPT0wKXJldHVybiBhO2E9U3RyaW5nKGEpLnNwbGl0KCJlIik7cmV0dXJuIHBhcnNlRmxvYXQoYVswXSsiZSIrKHBhcnNlSW50KGFbMV18fDAsMTApK2IpKX07dlI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmaXNGaW5pdGUoYSk/a1IoTWF0aC5yb3VuZChrUihhLGIpKSwtYik6YX07bFI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhKXJldHVybiBhO2I9Yi11UihhKS0xO3JldHVybiBiPC1jP3ZSKGEsLWMpOnZSKGEsYil9O3pqYT1mdW5jdGlvbihhKXtyZXR1cm4gYSUxMD09MSYmYSUxMDAhPTExPyJvbmUiOmElMTA9PTImJmElMTAwIT0xMj8idHdvIjphJTEwPT0zJiZhJTEwMCE9MTM/ImZldyI6Im90aGVyIn07CkFqYT1mdW5jdGlvbihhLGIpe3ZhciBjPWF8MDtpZih2b2lkIDA9PT1iKXtiPU1hdGg7dmFyIGQ9Yi5taW47bGV0IGU9YSsiIixmPWUuaW5kZXhPZigiLiIpO2I9ZC5jYWxsKGIsZj09PS0xPzA6ZS5sZW5ndGgtZi0xLDMpfWQ9TWF0aC5wb3coMTAsYik7YT17RkI6YixmOihhKmR8MCklZH07cmV0dXJuIGM9PTEmJmEuRkI9PTA/Im9uZSI6Im90aGVyIn07elI9ZnVuY3Rpb24oYSl7dGhpcy52PWE7dGhpcy5vPXRoaXMuaj10aGlzLkQ9bnVsbDthPWRSO3ZhciBiPXJSO2lmKHdSIT09YXx8eFIhPT1iKXdSPWEseFI9Yix5Uj1uZXcgaFI7dGhpcy5LPXlSfTsKQVI9ZnVuY3Rpb24oYSxiLGMsZCxlKXtmb3IobGV0IHA9MDtwPGIubGVuZ3RoO3ArKyl7dmFyIGY9dm9pZCAwO3N3aXRjaChiW3BdLnR5cGUpe2Nhc2UgNDplLnB1c2goYltwXS52YWx1ZSk7YnJlYWs7Y2FzZSAzOmY9YltwXS52YWx1ZTt2YXIgaD1hLGs9ZSxsPWNbZl07bD09PXZvaWQgMD9rLnB1c2goIlVuZGVmaW5lZCBwYXJhbWV0ZXIgLSAiK2YpOihoLmoucHVzaChsKSxrLnB1c2goaC5CKGguaikpKTticmVhaztjYXNlIDI6Zj1iW3BdLnZhbHVlO2g9YTtrPWM7bD1kO3ZhciBtPWUsbj1mLnNpO2tbbl09PT12b2lkIDA/bS5wdXNoKCJVbmRlZmluZWQgcGFyYW1ldGVyIC0gIituKToobj1mW2tbbl1dLG49PT12b2lkIDAmJihuPWYub3RoZXIpLEFSKGgsbixrLGwsbSkpO2JyZWFrO2Nhc2UgMDpmPWJbcF0udmFsdWU7QlIoYSxmLGMsQ1IsZCxlKTticmVhaztjYXNlIDE6Zj1iW3BdLnZhbHVlLEJSKGEsZixjLEJqYSxkLGUpfX19OwpCUj1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGg9Yi5zaSxrPWIuR28sbD0rY1toXTtpc05hTihsKT9mLnB1c2goIlVuZGVmaW5lZCBvciBpbnZhbGlkIHBhcmFtZXRlciAtICIraCk6KGs9bC1rLGg9YltjW2hdXSxoPT09dm9pZCAwJiYoZD1kKE1hdGguYWJzKGspKSxoPWJbZF0saD09PXZvaWQgMCYmKGg9Yi5vdGhlcikpLGI9W10sQVIoYSxoLGMsZSxiKSxjPWIuam9pbigiIiksZT9mLnB1c2goYyk6KGE9YS5LLmZvcm1hdChrKSxmLnB1c2goYy5yZXBsYWNlKC8jL2csYSkpKSl9O0VqYT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuRCxkPWEuQi5iaW5kKGEpO2I9Yi5yZXBsYWNlKENqYSxmdW5jdGlvbigpe2MucHVzaCgiJyIpO3JldHVybiBkKGMpfSk7cmV0dXJuIGI9Yi5yZXBsYWNlKERqYSxmdW5jdGlvbihlLGYpe2MucHVzaChmKTtyZXR1cm4gZChjKX0pfTsKRFI9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPVtdLGQ9W10sZT0vW3t9XS9nO2UubGFzdEluZGV4PTA7Zm9yKHZhciBmO2Y9ZS5leGVjKGEpOyl7bGV0IGg9Zi5pbmRleDtmWzBdPT0ifSI/KGMucG9wKCksYy5sZW5ndGg9PTAmJihmPXt0eXBlOjF9LGYudmFsdWU9YS5zdWJzdHJpbmcoYixoKSxkLnB1c2goZiksYj1oKzEpKTooYy5sZW5ndGg9PTAmJihiPWEuc3Vic3RyaW5nKGIsaCksYiE9IiImJmQucHVzaCh7dHlwZTowLHZhbHVlOmJ9KSxiPWgrMSksYy5wdXNoKCJ7IikpfWE9YS5zdWJzdHJpbmcoYik7YSE9IiImJmQucHVzaCh7dHlwZTowLHZhbHVlOmF9KTtyZXR1cm4gZH07CkhSPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107Yj1EUihiKTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKyl7bGV0IGY9e307aWYoMD09YltlXS50eXBlKWYudHlwZT00LGYudmFsdWU9YltlXS52YWx1ZTtlbHNlIGlmKDE9PWJbZV0udHlwZSl7dmFyIGQ9YltlXS52YWx1ZTtzd2l0Y2goRVIudGVzdChkKT8wOkZSLnRlc3QoZCk/MTpHUi50ZXN0KGQpPzI6L15ccypcdytccyovLnRlc3QoZCk/Mzo1KXtjYXNlIDI6Zi50eXBlPTI7Zi52YWx1ZT1GamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDA6Zi50eXBlPTA7Zi52YWx1ZT1HamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDE6Zi50eXBlPTE7Zi52YWx1ZT1IamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDM6Zi50eXBlPTMsZi52YWx1ZT1iW2VdLnZhbHVlfX1jLnB1c2goZil9cmV0dXJuIGN9OwpGamE9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtiPWIucmVwbGFjZShHUixmdW5jdGlvbihmLGgpe2M9aDtyZXR1cm4iIn0pO3ZhciBkPXt9O2Quc2k9YztiPURSKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXtsZXQgZj1iW2VdLnZhbHVlO2UrKztsZXQgaDsxPT1iW2VdLnR5cGUmJihoPUhSKGEsYltlXS52YWx1ZSkpO2RbZi5yZXBsYWNlKC9ccy9nLCIiKV09aDtlKyt9cmV0dXJuIGR9O0dqYT1mdW5jdGlvbihhLGIpe3ZhciBjPSIiLGQ9MDtiPWIucmVwbGFjZShFUixmdW5jdGlvbihoLGssbCl7Yz1rO2wmJihkPXBhcnNlSW50KGwsMTApKTtyZXR1cm4iIn0pO3ZhciBlPXt9O2Uuc2k9YztlLkdvPWQ7Yj1EUihiKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoOyl7bGV0IGg9YltmXS52YWx1ZTtmKys7bGV0IGs7MT09YltmXS50eXBlJiYoaz1IUihhLGJbZl0udmFsdWUpKTtlW2gucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpXT1rO2YrK31yZXR1cm4gZX07CkhqYT1mdW5jdGlvbihhLGIpe3ZhciBjPSIiO2I9Yi5yZXBsYWNlKEZSLGZ1bmN0aW9uKGYsaCl7Yz1oO3JldHVybiIifSk7dmFyIGQ9e307ZC5zaT1jO2QuR289MDtiPURSKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXtsZXQgZj1iW2VdLnZhbHVlO2UrKztsZXQgaDsxPT1iW2VdLnR5cGUmJihoPUhSKGEsYltlXS52YWx1ZSkpO2RbZi5yZXBsYWNlKC9ccyooPzo9KT8oXHcrKVxzKi8sIiQxIildPWg7ZSsrfXJldHVybiBkfTtJamE9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYil7ZGVmYXVsdDpjYXNlICJ5ZWFycyI6cmV0dXJuIGEuai5ZRUFSO2Nhc2UgIm1vbnRocyI6cmV0dXJuIGEuai5NT05USDtjYXNlICJ3ZWVrcyI6cmV0dXJuIGEuai5XRUVLO2Nhc2UgImRheXMiOnJldHVybiBhLmouREFZO2Nhc2UgImhvdXJzIjpyZXR1cm4gYS5qLkhPVVI7Y2FzZSAibWludXRlcyI6cmV0dXJuIGEuai5NSU5VVEU7Y2FzZSAic2Vjb25kcyI6cmV0dXJuIGEuai5TRUNPTkR9fTsKSVI9ZnVuY3Rpb24oYSxiLGMpe2E9SWphKGEsYyk7cmV0dXJuKGE9YS5MT05HIT12b2lkIDA/YS5MT05HOmEuTkFSUk9XIT12b2lkIDA/YS5OQVJST1c6YS5TSE9SVCk/KG5ldyB6Uigie0RVUkFUSU9OX1ZBTFVFLHBsdXJhbCwiK2ErIn0iKSkuZm9ybWF0KHtEVVJBVElPTl9WQUxVRTpifSk6IiJ9O0pSPWZ1bmN0aW9uKCl7Xy5IeigpO3JldHVybiFfLkN6KDE0MSkmJl8udygiQVVUT05BVl9PRkZfQllfREVGQVVMVCIpPyExOiFfLkN6KDE0MCl9O0pqYT1mdW5jdGlvbigpe2lmKCFLUil7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BsYXllci5za2VsZXRvbiIpO2EmJihfLkRkKGEpLEtSPSEwKX19O0xSPWZ1bmN0aW9uKGEsYixjLGQ9ITEpe2I9bmV3IEtqYShifHxhLGN8fGEpO3JldHVybnt4OmEueCtMamEoYixkKSouMix5OmEueStNamEoYixkKSouMn19O0xqYT1mdW5jdGlvbihhLGI9ITEpe3JldHVybiBiP2EuaiotMTphLmp9OwpNamE9ZnVuY3Rpb24oYSxiPSExKXtyZXR1cm4gYj9hLm8qLTE6YS5vfTtNUj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLmVycm9yU2NyZWVuPy5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjVHJhaWxlclJlbmRlcmVyPz9hLmVycm9yU2NyZWVuPy55cGNUcmFpbGVyUmVuZGVyZXI7cmV0dXJuIShhLnN0YXR1cyE9PSJPSyImJmEuc3RhdHVzIT09IkxJVkVfU1RSRUFNX09GRkxJTkUiKXx8ISFifTsKUWphPWZ1bmN0aW9uKHtyZW5kZXJlcjphLHN1YnNjcmliZWQ6Yixpc092ZXJsYXk6YyxzdG9wUHJvcGFnYXRpb246ZH0pe3ZhciBlPU5qYShhLGIpO2MmJihlLnN0eWxlPSJvdmVybGF5Iik7YTpzd2l0Y2goYS5zdHlsZT8uc3R5bGVUeXBlKXtjYXNlICJDT01QQUNUX0dSQVkiOmNhc2UgIkNPTVBBQ1RfUkVEIjpjPXtzaXplOiJTIn07YnJlYWsgYTtkZWZhdWx0OmM9e3NpemU6Ik0ifX1jPXsuLi5jfTt2YXIgZj1PamEoYSxiKTt2YXIgaD0oaD1iP2Euc3Vic2NyaWJlZEJ1dHRvblRleHQ6YS51bnN1YnNjcmliZWRCdXR0b25UZXh0KT9fLkFGKGgpOnZvaWQgMDtyZXR1cm57Li4uZSwuLi5jLGZvY3VzZWQ6ITEsdG9nZ2xlZDpiLGFjY2Vzc2liaWxpdHlMYWJlbDpmLFdhOmgsb25UYXA6UGphKGEsYixkKX19OwpQamE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9UmphKGEsYik7aWYoZSl7bGV0IGY9e3N1YnNjcmliZUJ1dHRvblJlbmRlcmVyOmF9O18uZEsoZSx7Zm9ybTp7Y3VycmVudERhdGE6Zixzb3VyY2VEYXRhOmYsZXZlbnQ6ZH19KX1jJiZkLnN0b3BQcm9wYWdhdGlvbigpfX07UmphPWZ1bmN0aW9uKGEsYil7aWYoYS5zaWduSW5FbmRwb2ludCYmIV8ueCgid2ViX3N1YnNjcmliZV9zaWduX2luX2VuZHBvaW50X2tpbGxzd2l0Y2giKSlyZXR1cm4gYS5zaWduSW5FbmRwb2ludDtpZihiKXtpZihhLnNlcnZpY2VFbmRwb2ludHMpcmV0dXJuIGEuc2VydmljZUVuZHBvaW50c1sxXTtpZihhLm9uVW5zdWJzY3JpYmVFbmRwb2ludHMpcmV0dXJuIGEub25VbnN1YnNjcmliZUVuZHBvaW50c1swXX1lbHNle2lmKGEuc2VydmljZUVuZHBvaW50cylyZXR1cm4gYS5zZXJ2aWNlRW5kcG9pbnRzWzBdO2lmKGEub25TdWJzY3JpYmVFbmRwb2ludHMpcmV0dXJuIGEub25TdWJzY3JpYmVFbmRwb2ludHNbMF19fTsKT2phPWZ1bmN0aW9uKGEsYil7Yj1iP2EudW5zdWJzY3JpYmVBY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YT8ubGFiZWw6YS5zdWJzY3JpYmVBY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YT8ubGFiZWw7cmV0dXJuIGEubG9uZ1N1YnNjcmliZXJDb3VudFRleHQ/W2IsXy5hTihhLmxvbmdTdWJzY3JpYmVyQ291bnRUZXh0KV0uZmlsdGVyKGM9PmMpLmpvaW4oIiAiKTpifTtOUj1mdW5jdGlvbihhLGIpe3JldHVybiBifHxhPy5pc0NoYW5uZWxEZWxlZ2F0ZT8iZGlzYWJsZWQiOiJhY3RpdmUifTsKTmphPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEuc3R5bGU/LnN0eWxlVHlwZSl7Y2FzZSAiQ09NUEFDVF9HUkFZIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRvbmFsIixzdGF0ZTpOUihhKX07Y2FzZSAiTUVESVVNX0dSQVkiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOk5SKGEpfTtjYXNlICJWSVNJQkxZX0RJU0FCTEVEIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHN0YXRlOk5SKGEsITApfTtjYXNlICJPVkVSTEFZIjpyZXR1cm4gYj97c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRvbmFsIixzdGF0ZTpOUihhKX06e3N0eWxlOiJvdmVybGF5Iix0eXBlOiJmaWxsZWQiLHN0YXRlOk5SKGEpfTtkZWZhdWx0OnJldHVybiBiP3tzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOk5SKGEpfTp7c3R5bGU6Im1vbm8iLHR5cGU6ImZpbGxlZCIsc3RhdGU6TlIoYSl9fX07ClBSPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaG91cnN8fDA7dmFyIGM9YS5taW51dGVzfHwwLGQ9YS5zZWNvbmRzfHwwO2I9ZCtjKjYwK2IqMzYwMCsoYS5kYXlzfHwwKSo4NjQwMCsoYS53ZWVrc3x8MCkqNjA0ODAwKyhhLm1vbnRoc3x8MCkqMjYyOTgwMCsoYS55ZWFyc3x8MCkqMzE1NTc2MDA7Yjw9MD9iPXtob3VyczowLG1pbnV0ZXM6MCxzZWNvbmRzOjB9OihhPWIsYj1NYXRoLmZsb29yKGEvMzYwMCksYSU9MzYwMCxjPU1hdGguZmxvb3IoYS82MCksZD1NYXRoLmZsb29yKGElNjApLGI9e2hvdXJzOmIsbWludXRlczpjLHNlY29uZHM6ZH0pO3ZhciB7aG91cnM6ZT0wLG1pbnV0ZXM6Zj0wLHNlY29uZHM6aD0wfT1iO2I9W107aWYoZT4wKXtjPU9SKCkuZm9ybWF0KHtob3VyczplfSk7aWYoISJiZSBiZyBlcyBldCBodSBpdCBrYSBsdiBwbCBwdC1QVCBzbCBzcSIuc3BsaXQoIiAiKS5pbmNsdWRlcyhaKXx8ZT45OTk5KXthPWMucmVwbGFjZTtkPWUudG9TdHJpbmcoKTt2YXIgaz0obmV3IEludGwuTnVtYmVyRm9ybWF0KCJlbi11LW51LWxhdG4iKSkuZm9ybWF0KGUpOwp2YXIgbD1bImZyIl07bGV0IG09ImF6IGJzIGNhIGRhIGRlIGVsIGVzIGV1IGdsIGhyIGlkIGlzIGl0IGttIGxvIG1rIG5sIHB0LUJSIHJvIHNsIHNyIHNyLUxhdG4gdHIgdmkiLnNwbGl0KCIgIik7az0iYWYgYmUgYmcgY3MgZXQgZmkgZnItQ0EgaHUgaHkga2Ega2sga3kgbHQgbHYgbm8gcGwgcHQtUFQgcnUgc2sgc3Egc3YgdWsgdXoiLnNwbGl0KCIgIikuaW5jbHVkZXMoWik/ay5yZXBsYWNlKCIsIiwiXHUwMGEwIik6bC5pbmNsdWRlcyhaKT9rLnJlcGxhY2UoIiwiLCJcdTIwMmYiKTptLmluY2x1ZGVzKFopP2sucmVwbGFjZSgiLCIsIi4iKTprO2M9YS5jYWxsKGMsZCxrKTtaPT09ImttIiYmKGM9Yy5yZXBsYWNlKCIuIiwiLCIpKX1iLnB1c2goYyl9Zj4wJiZiLnB1c2goT1IoKS5mb3JtYXQoe21pbnV0ZXM6Zn0pKTsoaD4wfHxlPT09MCYmZj09PTApJiZiLnB1c2goT1IoKS5mb3JtYXQoe3NlY29uZHM6aH0pKTtjPSJiZSBndSBqYSBrayBrbSBrbyBtbiBydSB0ciB1eiB6aC1ISyB6aC1UVyIuc3BsaXQoIiAiKTsKYT1aPT0iYW0iPyJ7MH1cdTEzNjMgIjpaPT0iZmEiPyJ7MH1cdTA2MGNcdTIwMGYgIjpaPT0ibXkiPyJ7MH0gLSAiOlo9PSJ0aCI/InswfSAiOlo9PSJ1ciI/InswfVx1MDYwYyAiOlo9PSJhciJ8fFo9PSJhci1YQiI/InswfSBcdTA2NDgiOlo9PSJqYSJ8fFo9PSJ6aC1DTiJ8fFo9PSJ6aC1ISyJ8fFo9PSJ6aC1UVyI/InswfVx1MzAwMSI6InswfSwgIjtkPVo9PSJhbSI/Ilx1MTM2MyAiOlo9PSJmYSI/Ilx1MDYwY1x1MjAwZiAiOlo9PSJteSI/IiAtICI6Wj09InRoIj8iICI6Wj09InVyIj8iXHUwNjBjICI6Wj09ImFyInx8Wj09ImFyLVhCIj8iIFx1MDY0OCI6Wj09ImphInx8Wj09InpoLUNOInx8Wj09InpoLUhLInx8Wj09InpoLVRXIj8iXHUzMDAxIjoiLCAiO2s9Wj09ImFtIj8iIFx1MTJhNVx1MTI5MyB7MH0iOlo9PSJhcyI/IiBcdTA5ODZcdTA5ZjBcdTA5YzEgezB9IjpaPT0iYXoiPyIgdlx1MDI1OSB7MH0iOlo9PSJibiI/IiBcdTA5OGZcdTA5YWNcdTA5ODIgezB9IjpaPT0iY3MiPwoiIGFcdTAwYTB7MH0iOlo9PSJkZSI/IiB1bmQgezB9IjpaPT0iZWwiPyIgXHUwM2JhXHUwM2IxXHUwM2I5IHswfSI6Wj09ImV1Ij8iIGV0YSB7MH0iOlo9PSJmYSI/Ilx1MDYwYyBcdTA2NDggezB9IjpaPT0iZmlsIj8iLCBhdCB7MH0iOlo9PSJndSI/IiBcdTBhODVcdTBhYThcdTBhYzcgezB9IjpaPT0iaGkiPyIsIFx1MDkxNFx1MDkzMCB7MH0iOlo9PSJodSI/IiBcdTAwZTlzIHswfSI6Wj09Imh5Ij8iIFx1MDU4NyB7MH0iOlo9PSJpZCI/IiwgZGFuIHswfSI6Wj09Iml3Ij8iIFx1MDVkNS17MH0iOlo9PSJqYSI/Ilx1MzAwMXswfSI6Wj09ImthIj8iIFx1MTBkM1x1MTBkMCB7MH0iOlo9PSJrbSI/IiBcdTE3OTNcdTE3YjdcdTE3ODQgezB9IjpaPT0ia24iPyIsIFx1MGNhZVx1MGNhNFx1MGNjZFx1MGNhNFx1MGNjMSB7MH0iOlo9PSJrbyI/IiBcdWJjMGYgezB9IjpaPT0ia3kiPyIgXHUwNDM2XHUwNDMwXHUwNDNkXHUwNDMwIHswfSI6Wj09Imx0Ij8iIGlyIHswfSI6Wj09Imx2Ij8KIiB1biB7MH0iOlo9PSJtciI/IiBcdTA5MDZcdTA5MjNcdTA5M2YgezB9IjpaPT0ibXMiPyIgZGFuIHswfSI6Wj09Im15Ij8iXHUxMDE0XHUxMDNlXHUxMDA0XHUxMDM3XHUxMDNhIHswfSI6Wj09Im5lIj8iIFx1MDkzMCB7MH0iOlo9PSJvciI/IiwgXHUwYjEzIHswfSI6Wj09InBhIj8iIFx1MGEwNVx1MGEyNFx1MGE0NyB7MH0iOlo9PSJybyI/IiBcdTAyMTlpIHswfSI6Wj09InNpIj8iLCBcdTBkYzNcdTBkYzQgezB9IjpaPT0ic2siPyIgYSB7MH0iOlo9PSJzbCI/IiBpbiB7MH0iOlo9PSJzcSI/IiBkaGUgezB9IjpaPT0ic3YiPyIgb2NoIHswfSI6Wj09InN3Ij8iIG5hIHswfSI6Wj09InRhIj8iIFx1MGJhZVx1MGJiMVx1MGJjZFx1MGJiMVx1MGJjMVx1MGJhZVx1MGJjZCB7MH0iOlo9PSJ0ZSI/IiBcdTBjMmVcdTBjMzBcdTBjM2ZcdTBjMmZcdTBjNDEgezB9IjpaPT0idGgiPyIgXHUwZTQxXHUwZTI1XHUwZTMwezB9IjpaPT0idHIiPyIgdmUgezB9IjpaPT0idXIiPyJcdTA2MGMgXHUwNjI3XHUwNjQ4XHUwNjMxIHswfSI6Clo9PSJ1eiI/IiB2YSB7MH0iOlo9PSJ2aSI/IiB2XHUwMGUwIHswfSI6Wj09InpoLUhLIj8iXHU1M2NhezB9IjpaPT0ienUiPyIsIG5lLXswfSI6Wj09ImFmInx8Wj09Im5sIj8iIGVuIHswfSI6Wj09ImFyInx8Wj09ImFyLVhCIj8iIFx1MDY0OHswfSI6Wj09ImJlInx8Wj09InVrIj8iIFx1MDQ1NiB7MH0iOlo9PSJlbi1HQiJ8fFo9PSJlbi1JTiI/IiBhbmQgezB9IjpaPT0iZW4ifHxaPT0iZW4tWEEiPyIsIGFuZCB7MH0iOlo9PSJldCJ8fFo9PSJmaSI/IiBqYSB7MH0iOlo9PSJmciJ8fFo9PSJmci1DQSI/IiBldCB7MH0iOlo9PSJ6aC1DTiJ8fFo9PSJ6aC1UVyI/Ilx1NTQ4Y3swfSI6Wj09ImRhInx8Wj09ImlzInx8Wj09Im5vIj8iIG9nIHswfSI6Wj09ImVzInx8Wj09ImVzLTQxOSJ8fFo9PSJlcy1VUyI/IiB5IHswfSI6Wj09ImJnInx8Wj09Im1rInx8Wj09InJ1Inx8Wj09InNyIj8iIFx1MDQzOCB7MH0iOlo9PSJnbCJ8fFo9PSJpdCJ8fFo9PSJwdC1CUiJ8fFo9PSJwdC1QVCI/IiBlIHswfSI6Clo9PSJrayJ8fFo9PSJsbyJ8fFo9PSJtbCJ8fFo9PSJtbiI/IiwgezB9IjoiIGkgezB9IjtsPVo9PSJhbSI/InswfSBcdTEyYTVcdTEyOTMgezF9IjpaPT0iYXMiPyJ7MH0gXHUwOTg2XHUwOWYwXHUwOWMxIHsxfSI6Wj09ImF6Ij8iezB9IHZcdTAyNTkgezF9IjpaPT0iYm4iPyJ7MH0gXHUwOThmXHUwOWFjXHUwOTgyIHsxfSI6Wj09ImRlIj8iezB9IHVuZCB7MX0iOlo9PSJlbCI/InswfSBcdTAzYmFcdTAzYjFcdTAzYjkgezF9IjpaPT0iZXUiPyJ7MH0gZXRhIHsxfSI6Wj09ImZhIj8iezB9IFx1MDY0OCB7MX0iOlo9PSJmaWwiPyJ7MH0gYXQgezF9IjpaPT0iZ3UiPyJ7MH0gXHUwYTg1XHUwYWE4XHUwYWM3IHsxfSI6Wj09ImhpIj8iezB9IFx1MDkxNFx1MDkzMCB7MX0iOlo9PSJodSI/InswfSBcdTAwZTlzIHsxfSI6Wj09Imh5Ij8iezB9IFx1MDU4NyB7MX0iOlo9PSJpdyI/InswfSBcdTA1ZDUtezF9IjpaPT0iamEiPyJ7MH1cdTMwMDF7MX0iOlo9PSJrYSI/InswfSBcdTEwZDNcdTEwZDAgezF9IjoKWj09ImtrIj8iezB9IFx1MDQzNlx1MDRkOVx1MDQzZFx1MDQzNSB7MX0iOlo9PSJrbSI/InswfSBcdTE3OTNcdTE3YjdcdTE3ODRcdTIwMGJ7MX0iOlo9PSJrbiI/InswfSBcdTBjYWVcdTBjYTRcdTBjY2RcdTBjYTRcdTBjYzEgezF9IjpaPT0ia28iPyJ7MH0gXHViYzBmIHsxfSI6Wj09Imt5Ij8iezB9IFx1MDQzNlx1MDQzMFx1MDQzZFx1MDQzMCB7MX0iOlo9PSJsbyI/InswfSBcdTBlYzFcdTBlYTVcdTBlYjAgezF9IjpaPT0ibHQiPyJ7MH0gaXIgezF9IjpaPT0ibHYiPyJ7MH0gdW4gezF9IjpaPT0ibXIiPyJ7MH0gXHUwOTA2XHUwOTIzXHUwOTNmIHsxfSI6Wj09Im15Ij8iezB9XHUxMDE0XHUxMDNlXHUxMDA0XHUxMDM3XHUxMDNhIHsxfSI6Wj09Im5lIj8iezB9IFx1MDkzMCB7MX0iOlo9PSJvciI/InswfSBcdTBiMTMgezF9IjpaPT0icGEiPyJ7MH0gXHUwYTA1XHUwYTI0XHUwYTQ3IHsxfSI6Wj09InJvIj8iezB9IFx1MDIxOWkgezF9IjpaPT0ic2kiPyJ7MH0gXHUwZGMzXHUwZGM0IHsxfSI6Clo9PSJzbCI/InswfSBpbiB7MX0iOlo9PSJzcSI/InswfSBkaGUgezF9IjpaPT0ic3YiPyJ7MH0gb2NoIHsxfSI6Wj09InN3Ij8iezB9IG5hIHsxfSI6Wj09InRhIj8iezB9IFx1MGJhZVx1MGJiMVx1MGJjZFx1MGJiMVx1MGJjMVx1MGJhZVx1MGJjZCB7MX0iOlo9PSJ0ZSI/InswfSBcdTBjMmVcdTBjMzBcdTBjM2ZcdTBjMmZcdTBjNDEgezF9IjpaPT0idGgiPyJ7MH1cdTBlNDFcdTBlMjVcdTBlMzB7MX0iOlo9PSJ0ciI/InswfSB2ZSB7MX0iOlo9PSJ1ciI/InswfSBcdTA2MjdcdTA2NDhcdTA2MzEgezF9IjpaPT0idXoiPyJ7MH0gdmEgezF9IjpaPT0idmkiPyJ7MH0gdlx1MDBlMCB7MX0iOlo9PSJ6aC1ISyI/InswfVx1NTNjYXsxfSI6Wj09Inp1Ij8iezB9IG5lLXsxfSI6Wj09ImFmInx8Wj09Im5sIj8iezB9IGVuIHsxfSI6Wj09ImFyInx8Wj09ImFyLVhCIj8iezB9IFx1MDY0OHsxfSI6Wj09ImJlInx8Wj09InVrIj8iezB9IFx1MDQ1NiB7MX0iOlo9PSJjcyJ8fFo9PSJzayI/InswfSBhXHUwMGEwezF9IjoKWj09ImV0Inx8Wj09ImZpIj8iezB9IGphIHsxfSI6Wj09ImZyInx8Wj09ImZyLUNBIj8iezB9IGV0IHsxfSI6Wj09ImlkInx8Wj09Im1zIj8iezB9IGRhbiB7MX0iOlo9PSJtbCJ8fFo9PSJtbiI/InswfSwgezF9IjpaPT0iemgtQ04ifHxaPT0iemgtVFciPyJ7MH1cdTU0OGN7MX0iOlo9PSJkYSJ8fFo9PSJpcyJ8fFo9PSJubyI/InswfSBvZyB7MX0iOlo9PSJlcyJ8fFo9PSJlcy00MTkifHxaPT0iZXMtVVMiPyJ7MH0geSB7MX0iOlo9PSJiZyJ8fFo9PSJtayJ8fFo9PSJydSJ8fFo9PSJzciI/InswfSBcdTA0MzggezF9IjpaPT0iZW4ifHxaPT0iZW4tR0IifHxaPT0iZW4tSU4ifHxaPT0iZW4tWEEiPyJ7MH0gYW5kIHsxfSI6Wj09ImdsInx8Wj09Iml0Inx8Wj09InB0LUJSInx8Wj09InB0LVBUIj8iezB9IGUgezF9IjoiezB9IGkgezF9IjtaPT09InNxIj8oaz1rLnJlcGxhY2UoImRoZSIsImUiKSxsPWwucmVwbGFjZSgiZGhlIiwiZSIpKTpaPT09InRoIj8oZD1kLnJlcGxhY2UoInswfSIsCiIgezB9IiksbD1sLnJlcGxhY2UoInswfSIsInswfSAiKSxsPWwucmVwbGFjZSgiezF9IiwiIHsxfSIpKTpaPT09Im5lIj9kPSIsIjpaPT09InpoLUNOIj9kPSIiOmMuaW5jbHVkZXMoWikmJihkPSIgIik7cmV0dXJuIGIubGVuZ3RoPDI/Yi5qb2luKCIiKToiYW0gYXIgYmcgYnMgY2EgY3MgZGEgZXMgZXMtNDE5IGVzLVVTIGV1IGZhIGZpIGZyLUNBIGZyIGdsIGd1IGhpIGhyIGh1IGh5IGlzIGl0IGx0IGx2IG1rIG15IG5vIG5sIHBsIHB0LUJSIHB0LVBUIHJvIHNpIHNsIHNxIHNyLUxhdG4gc3Igc3cgdGggdWsiLnNwbGl0KCIgIikuaW5jbHVkZXMoWik/Yi5sZW5ndGg9PT0yP2wucmVwbGFjZSgiezB9IixiWzBdKS5yZXBsYWNlKCJ7MX0iLGJbMV0pOmEucmVwbGFjZSgiezB9IixiWzBdKStiLnNsaWNlKDEsLTEpLmpvaW4oZCkray5yZXBsYWNlKCJ7MH0iLGJbYi5sZW5ndGgtMV0pOmIuam9pbihkKX07T1I9ZnVuY3Rpb24oKXtRUnx8KENSPVNqYSxRUj1uZXcgVGphKTtyZXR1cm4gUVJ9OwpVamE9ZnVuY3Rpb24oKXtKUSgpKHt0cTohMH0pO0pRKCkoe3RxOiExfSl9O1dqYT1mdW5jdGlvbihhKXt2YXIgYj1fLldEKCgpPT5hLmdldERlYnVnVGV4dCghMCkpO2ImJl8ueSgpLnJlc29sdmUoXy55UCkub3BlbkRpYWxvZyh7VW46KCk9Pl8uSyhWamEse2Z2OmJ9KX0pfTtSUj1mdW5jdGlvbihhLGIpe2lmKGIpYT1hLmdldFZpZGVvVXJsKCk7ZWxzZXthPWEuZ2V0UGxheWVyUmVzcG9uc2UoKS52aWRlb0RldGFpbHM/LnZpZGVvSWQ7aWYoIWEpcmV0dXJuO2E9YGh0dHBzOi8veW91dHUuYmUvJHthfWB9YSYmd2luZG93Lm5hdmlnYXRvcj8uY2xpcGJvYXJkJiZ3aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYSl9OwpYamE9ZnVuY3Rpb24oYSxiLGMsZCl7Xy55Tih7R2I6KCk9Pl8uSyhfLklCLG51bGwsU1IoYSxiKSxfLksoXy5PLHtBOigpPT5kJiZjLHRoZW46KCk9Pl8uSyhUUix7SDphLHRhOmN9KX0pLF8uSyhVUix7SDphfSksXy5LKFZSLHtIOmF9KSxfLksoV1Ise0g6YX0pLF8uSyhZUix7SDphfSksXy5LKFpSLHtIOmF9KSxfLksoJFIse0g6YX0pLF8uSyhhUyx7SDphfSksXy5LKGJTLHtIOmF9KSksSGE6ITB9KX07U1I9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5LKF8uTyx7QTooKT0+Xy50UCgpLHRoZW46KCk9Pl8uSyhfLk5QLG51bGwpLFc6KCk9Pl8uSyhfLk8se0E6KCk9PiFiLHRoZW46KCk9Pl8uSyhjUyx7SDphfSl9KX0pfTtkUz1mdW5jdGlvbihhLGIpe18ueU4oe0diOmIsSGE6ITB9KTthLnN0b3BQcm9wYWdhdGlvbigpfTtlUz1mdW5jdGlvbihhKXthPWEuZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcygpO3JldHVybiBhW2EubGVuZ3RoLTFdPjJ9O2ZTPWZ1bmN0aW9uKGEpe3JldHVybntidXR0b25WaWV3TW9kZWw6e2FjY2Vzc2liaWxpdHlUZXh0OmF9fX07CmdTPWZ1bmN0aW9uKGEsYil7Yj1hPT09MTAwP1lqYTphPT09Yj9aamE6dm9pZCAwO3JldHVybnt2YXJpYWJsZVNwZWVkQ29udHJvbGxlclNwZWVkQnV0dG9uVmlld01vZGVsOntwbGF5YmFja1NwZWVkQnV0dG9uOntidXR0b25WaWV3TW9kZWw6e3RpdGxlOmAke2EvMTAwfXhgLHN0eWxlOiJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9NT05PIix0eXBlOiJCVVRUT05fVklFV19NT0RFTF9UWVBFX1RPTkFMIixidXR0b25TaXplOiJCVVRUT05fVklFV19NT0RFTF9TSVpFX0NPTVBBQ1QiLGljb25UcmFpbGluZzohMH19LGJ1dHRvbkxhYmVsOntjb250ZW50OmJ9LHBsYXliYWNrU3BlZWRCdXR0b25DZW50aVZhbHVlOmF9fX07CmRrYT1mdW5jdGlvbihhKXtpZihhPy5pc1JlYWR5Py4oKSl7dmFyIGI9YS5nZXRQbGF5YmFja1JhdGUoKTtpZihiKXtoU3x8KGhTPV8ueE0oKSk7dmFyIGM9ZVMoYSk/JGphOmFrYTtpZighaFM/LmdldCgicmVjZW50LWN1c3RvbS1zcGVlZCIpfHxiIT09MSlyZXR1cm4gYy5tYXAoZT0+Z1MoZSkpO3ZhciBkPU51bWJlcihoUy5nZXQoInJlY2VudC1jdXN0b20tc3BlZWQiKSk7aWYoYy5pbmNsdWRlcyhkKSlyZXR1cm4gYy5tYXAoZT0+Z1MoZSxkKSk7YT1lUyhhKT9ia2Euc2xpY2UoKTpja2Euc2xpY2UoKTthLnB1c2goZCk7YS5zb3J0KChlLGYpPT5lLWYpO3JldHVybiBhLm1hcChlPT5nUyhlLGQpKX19fTsKaWthPWZ1bmN0aW9uKGEpe2lmKGE/LmlzUmVhZHk/LigpKXt2YXIgYj1hLmdldFBsYXliYWNrUmF0ZSgpLGM9YS5nZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzKCk7aWYoYiYmYyl7dmFyIGQ9Y1tjLmxlbmd0aC0xXSoxMDA7Yz1jWzBdKjEwMDtiPXtob3Jpem9udGFsU2xpZGVyVmlld01vZGVsOnttYXhWYWx1ZTpkLG1pblZhbHVlOmMsaW5pdGlhbFZhbHVlOmIqMTAwLHN0ZXBDb3VudDooZC1jKS81LHZhbHVlRGVub21pbmF0b3I6MTAwLGluY3JlYXNlQnV0dG9uOmZTKGVrYSksZGVjcmVhc2VCdXR0b246ZlMoZmthKSxyZW5kZXJlckNvbnRleHQ6e2FjY2Vzc2liaWxpdHlDb250ZXh0OntsYWJlbDpna2F9fX19O2E9ZGthKGEpO3JldHVybnt2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbDp7c2xpZGVyOmIscGxheWJhY2tTcGVlZEJ1dHRvbnM6YSxiYWRnZTp7YmFkZ2VWaWV3TW9kZWw6e2JhZGdlVGV4dDoiUCIsYmFkZ2VTdHlsZToiQkFER0VfUFJFTUlVTSIsYWNjZXNzaWJpbGl0eUxhYmVsOmhrYX19fX19fX07CmlTPWZ1bmN0aW9uKGEpe2hTfHwoaFM9Xy54TSgpKTtoUyYmaFMuc2V0KCJyZWNlbnQtY3VzdG9tLXNwZWVkIixTdHJpbmcoYSoxMDApKX07a2thPWZ1bmN0aW9uKGEpe3ZhciBiPWlrYShhKSxjPV8uQihiLGprYSk7YyYmXy55Tih7SGE6ITAscGY6ITAsR2I6KCk9Pl8uSyhfLmtPLHtkYXRhOmMscHo6ZD0+e2Euc2V0UGxheWJhY2tSYXRlKGQudGFyZ2V0LnZhbHVlQXNOdW1iZXIpfSxvejpkPT57aVMoZC50YXJnZXQudmFsdWVBc051bWJlcil9LHF6OmQ9PnthLnNldFBsYXliYWNrUmF0ZShkKTtkIT09MSYmaVMoZCk7Xy56TigpfX0pfSl9O2pTPWZ1bmN0aW9uKGEpe3JldHVybihhPWxrYVthXSk/YCR7YX1wYDpta2F9O2tTPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5XRCgoKT0+YS5nZXRQbGF5YmFja1F1YWxpdHkoKSksZD1fLldEKCgpPT5hLmdldFByZWZlcnJlZFF1YWxpdHkoKSksZT1qUyhiKTtiPT09ImF1dG8iJiZkPT09ImF1dG8iJiYoZSs9YCAoJHtqUyhjKX0pYCk7cmV0dXJuIGV9Owpva2E9ZnVuY3Rpb24oYSl7Xy55Tih7R2I6KCk9Pl8uSyhua2Ese0g6YX0pLEhhOiEwfSl9O3BTPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZFMoYSwoKT0+Xy5LKF8uSUIsbnVsbCxfLksobFMse0g6Yn0pLF8uSyhtUyx7SDpifSksXy5LKHBrYSx7SDpifSksXy5LKF8uTyx7QTooKT0+Yi5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpPy5sZW5ndGgsdGhlbjooKT0+Xy5LKG5TLHtIOmJ9KX0pLF8uSyhvUyx7SDpiLG9oOmMsdGE6ZCx0QTplfSkpKX07cWthPWZ1bmN0aW9uKGEsYixjKXtkUyhhLCgpPT5fLksoXy5JQixudWxsLFNSKGIsYykpKX07CnJrYT1mdW5jdGlvbihhKXtfLm5QKCk7aWYoYS54YylpZihhLmNhcHRpb25zRW5hYmxlZClxUyhfLiROLlNzKTtlbHNle3ZhciBiPWEuSDtpZihiKXtpZihhPVBRKGIpLGI9TlEoYikpYjp7aWYoYi50cmFuc2xhdGlvbkxhbmd1YWdlJiYoYT1iLnRyYW5zbGF0aW9uTGFuZ3VhZ2U/Yi50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fCIiOiIiKSlicmVhayBiO2E9Yi5kaXNwbGF5TmFtZX19ZWxzZSBhPSIiO3FTKGE/Xy4kTi5Vcy5yZXBsYWNlKCJsYW5ndWFnZV9wbGFjZWhvbGRlciIsYSk6Xy4kTi5Ucyl9ZWxzZSBxUyhfLiROLlJzKX07cVM9ZnVuY3Rpb24oYSl7Xy5wUCgoKT0+YSl9O3NrYT1mdW5jdGlvbihhLGIpe3ZhciBjPXJTKGEpO2E9YS5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk7YT17Li4uc1MoYSksRWU6ITB9O3JldHVybnt0YTpjLGJhOmEsVGM6ZG9jdW1lbnQuYm9keSxHYzpifX07CnRrYT1mdW5jdGlvbihhLGIpe3ZhciBjPWpqYSgpLGQ9ey4uLnJTKGEpLFNqOmY9Pnt2YXIgaD0hdFMoKSxrPWEuaXNSZWFkeT8uKCkmJiEhYS5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5hdXRvcGxheTtwUyhmLGEsaCxkLGspfSxkZTooKT0+e3ZhciBmPWM/LmdldCgiYXV0b25hdl9lbmFibGVkIik7cmV0dXJuIGY9PT12b2lkIDB8fGY9PT0idHJ1ZSJ9LFJqOihmLGgpPT57aCYmYz8uc2V0KCJhdXRvbmF2X2VuYWJsZWQiLFN0cmluZyhmKSl9LFVsOigpPT5jPy5nZXQoImF1dG9uYXZfZW5hYmxlZCIpIT09dm9pZCAwfSxlPWEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpO2U9ey4uLnNTKGUpLHZ2OjM1MCx6djohMCxNbDo0RTMsaGlkZVZpZGVvSW5mbzplLmhpZGVJbmZvfTtyZXR1cm57dGE6ZCxiYTplLFRjOmRvY3VtZW50LmJvZHksR2M6Yn19OwpyUz1mdW5jdGlvbihhKXt2YXIgYj1hLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKSxjPWdqYSxkPVRRLGU9U1E7aWYoYj8uZW1iZWRzSG9zdEZsYWdzPy5hbGxvd1NldEZhdXhGdWxsc2NyZWVuJiZiPy5leHRlcm5hbEZ1bGxzY3JlZW4pe2xldCBmPW5ldyB1a2EoYSk7Yz0oKT0+Zi5pc0Z1bGxzY3JlZW4oKTtkPSgpPT57Zi50b2dnbGVGdWxsc2NyZWVuKCl9O2U9KCk9PntmLmV4aXRGdWxsc2NyZWVuKCl9fXJldHVybntTajpmPT57dmFyIGg9IXRTKCk7YT8uZ2V0U2l6ZSgpPy53aWR0aDwzMjA/cWthKGYsYSxoKTpwUyhmLGEsaCl9LHFBOnJrYSxpc0Z1bGxzY3JlZW46Yyx0b2dnbGVGdWxsc2NyZWVuOmQsZXhpdEZ1bGxzY3JlZW46ZSxkZTooKT0+ITEsUmo6KCk9Pnt9LFVsOigpPT4hMX19OwpzUz1mdW5jdGlvbihhKXtyZXR1cm57RWU6ITAsTWk6ITAsTWw6Xy54KCJlbWJlZHNfZW5hYmxlX2RlbGF5X2NvbnRyb2xzX2hpZGUiKT80RTM6dm9pZCAwLGlxOmEuZGlzYWJsZUZ1bGxzY3JlZW4sbmg6YS5jb250cm9sc1R5cGU9PT0wLG9oOiF0UygpLGhpZGVWaWRlb0luZm86YS5oaWRlSW5mbyYmYS5lbWJlZHNIb3N0RmxhZ3M/Lm9wdE91dEFwaURlcHJlY2F0aW9uLHVqOiEwLER6OiFfLngoImVtYmVkc19lbWMzZHNfcHJlc2VydmVfZnVsbHNjcmVlbl9rcyIpLHpyOiEwLHJBOiEwLFpoOiEwLHZuOiEwLFpBOiFfLngoImVtYmVkc19lbWMzZHNfZnRsX2tzIiksdm9sdW1lQ29udHJvbFR5cGU6Xy54KCJlbWJlZHNfZGVza3RvcF9lbmFibGVfdm9sdW1lX3NsaWRlciIpJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2ludGVyOiBmaW5lKSIpLm1hdGNoZXM/InZvbHVtZS1zbGlkZXIiOiJtdXRlLWJ1dHRvbiJ9fTsKdFM9ZnVuY3Rpb24oKXtyZXR1cm4gXy50UCgpfHxfLnF6KCkmJiFfLncoIlBMQVlFUl9WQVJTIik/LnByaXZlbWJlZCYmIShfLmVyJiZfLk1rKCJ2ZXJzaW9uLyIpKSYmIV8ucnooKX07dVM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGxheWVyU3RhdGU9PT0wfTt3Uz1mdW5jdGlvbihhKXtyZXR1cm4gYS52aWRlb0R1cmF0aW9uP3ZTKGEpP0RRKGEuQ2EvYS52aWRlb0R1cmF0aW9uLDAsMSk6RFEoKGEudmF8fDApL2EudmlkZW9EdXJhdGlvbiwwLDEpOjB9O3hTPWZ1bmN0aW9uKGEpe3JldHVybiBhLnZpZGVvRHVyYXRpb24/YS5pc0RyYWdnaW5nfHx2UyhhKT9EUShhLkNhL2EudmlkZW9EdXJhdGlvbiwwLDEpOkRRKChhLnZhfHwwKS9hLnZpZGVvRHVyYXRpb24sMCwxKTowfTt2Uz1mdW5jdGlvbihhKXtyZXR1cm4gYS5LYj4xJiZhLkpkIT09MH07CnlTPWZ1bmN0aW9uKGEpe3JldHVybihfLngoIndlYl9lbmFibGVfZGlic19pbXBsZW1lbnRhdGlvbiIpfHxfLngoIm13ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSkmJmEuSD8uZ2V0VmlkZW9EYXRhKGEucGxheWVyVHlwZSk/LmlzU2Vla2FibGV8fGEucGxheWVyVHlwZT09PTE/ITE6YS5iYT8uWmg/IWEuSD8uZ2V0UGxheWVyU3RhdGVPYmplY3QoYS5wbGF5ZXJUeXBlKS5pc0RvbVBhdXNlZDohMH07elM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5hdXRvbmF2VG9nZ2xlLHZrYSl9O0FTPWZ1bmN0aW9uKGEpe3JldHVybiBhPy5jb250ZW50cz8uc2luZ2xlQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cz8uYXV0b3BsYXk/LmF1dG9wbGF5fTtCUz1mdW5jdGlvbihhKXtyZXR1cm4gYT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uYXV0b3BsYXk/LnBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyfTsKRVM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihDUyhhKT8ucGxheWVyQmFyLERTKX07RlM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5tYXJrZXJzTWFwPy5maW5kKGI9PmIua2V5PT09IkhFQVRTRUVLRVIiKT8udmFsdWU/LmhlYXRtYXAsd2thKX07Q1M9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5kZWNvcmF0ZWRQbGF5ZXJCYXJSZW5kZXJlcix4a2EpfTtHUz1mdW5jdGlvbihhKXtyZXR1cm4gXy5CKENTKGEpPy5wbGF5aGVhZCx5a2EpfTt6a2E9ZnVuY3Rpb24oYSl7cmV0dXJuISFhPy5tYXJrZXJzTWFwPy5maW5kKGI9PlsiREVTQ1JJUFRJT05fQ0hBUFRFUlMiLCJBVVRPX0NIQVBURVJTIl0uaW5jbHVkZXMoYi5rZXkpKX07SlM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSFMoYSxiKXx8SVMoYSk/ITE6IWEuaXNEcmFnZ2luZyYmIXZTKGEpJiYhYS5zYiYmYS5MZiE9PSJvbiJ9OwpIUz1mdW5jdGlvbihhLGIpe3JldHVybiFhLmF1dG9uYXZFbmFibGVkfHxhLnhmfHwhYnx8YS5yY3x8YS5pc1BsYXlsaXN0JiZiPy5zZXRzPy5bMF0uYXV0b3BsYXlWaWRlbz8hMTp1UyhhKX07Q2thPWZ1bmN0aW9uKGEsYil7Yj1iPy5hY3Rpb25CYXJCdXR0b25zO3JldHVybiBfLkIoXy5CKGE/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LmZ1bGxzY3JlZW5FbmdhZ2VtZW50LEFrYSk/LmFjdGlvbkJhcixCa2EpPy5hY3Rpb25CYXJCdXR0b25zfHxifHxbXX07TFM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihfLkIoYT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uZnVsbHNjcmVlblF1aWNrQWN0aW9uc0JhcixLUyk/LmZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludCxEa2EpfTsKTVM9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LmVuZFNjcmVlbj8ud2F0Y2hOZXh0RW5kU2NyZWVuUmVuZGVyZXI/LnJlc3VsdHN8fFtdfTtOUz1mdW5jdGlvbihhLGIpe3JldHVybiBhP2EudmlkZW9EZXRhaWxzPy5lbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlcjpfLkIoYj8udmlkZW9EZXRhaWxzLEVrYSl9O1BTPWZ1bmN0aW9uKGEsYil7Yj1fLkIoYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI/LmluZm9QYW5lbCxPUyk7cmV0dXJuIF8uQihhPy5pbmZvUGFuZWwsT1MpfHxifTtJUz1mdW5jdGlvbihhKXtyZXR1cm4gYS5OYT8hMDphLkpmIT09MH07CkZrYT1mdW5jdGlvbih7ZWxlbWVudDphLHZlVHlwZTpiLExBOmM9bnVsbCxlbGVtZW50SW5kZXg6ZD0wLGNsaWVudFlvdVR1YmVEYXRhOmV9KXt2YXIgZj1fLmlxKCk7ZiE9PVFTJiYoUlMuY2xlYXIoKSxRUz1mKTtpZihhLnZpc3VhbEVsZW1lbnQmJlJTLmhhcyhhLnZpc3VhbEVsZW1lbnQpKXJldHVybiBudWxsO2lmKGMmJlJTLmhhcyhjKSlyZXR1cm4gYS52aXN1YWxFbGVtZW50PWMsbnVsbDtiPV8uRXgoXy5oeCgpLHt2ZVR5cGU6YixlbGVtZW50SW5kZXg6ZCxjbGllbnRZb3VUdWJlRGF0YTplfSk7aWYoIWIpcmV0dXJuIG51bGw7YS52aXN1YWxFbGVtZW50PWI7UlMuYWRkKGIpO3JldHVybiBifTsKU1M9ZnVuY3Rpb24oYSxiLGM9bnVsbCxkPV8uTk4sZT1udWxsLGYsaCl7dmFyIGs9KCk9PntpZihiKXtjIGluc3RhbmNlb2YgRnVuY3Rpb24mJihjPWMoKSk7dmFyIGw9RmthKHtlbGVtZW50OmIsdmVUeXBlOmEsTEE6YyxjbGllbnRZb3VUdWJlRGF0YTpmfSk7bCYmKF8uSngoYix7ZGF0YTplLG9ic2VydmVyOl8ueSgpLnJlc29sdmUoXy5MeCksTmM6Xy5uRixlYjpfLm1GLGxheWVyOmIubGF5ZXJ9KSxkKGwpKX19O2g/aygpOl8uT0UoKCk9PntrKCl9KX07R2thPWZ1bmN0aW9uKGEpe1NTKDExMjM5NCxhLCgpPT5UUyxiPT57VFM9Yn0pfTsKVVM9ZnVuY3Rpb24oYSl7dmFyIGI9VFMsYz1fLmlxKDApO2lmKGMmJmIpe3ZhciBkPU1hdGgucm91bmQoYS52YSoxRTMpO2E9TWF0aC5yb3VuZChhLkNhKjFFMyk7ZD4yKiozMS0xfHxhPjIqKjMxLTF8fF8uVmkoXy5leCkodm9pZCAwLGMsYiwiSU5URVJBQ1RJT05fTE9HR0lOR19HRVNUVVJFX1RZUEVfR0VORVJJQ19DTElDSyIse3NlZWtEYXRhOntzdGFydE1lZGlhVGltZU1zOlN0cmluZyhkKSxlbmRNZWRpYVRpbWVNczpTdHJpbmcoYSksc2Vla1NvdXJjZToiU0VFS19TT1VSQ0VfU0xJREVfT05fU0NSVUJCRVJfQkFSIn19LHZvaWQgMCl9fTtXUz1mdW5jdGlvbihhLGIsYyl7U1MoYixhLCgpPT5WU1tiXSxkPT57VlNbYl09ZDtfLkpPKGQpfSx2b2lkIDAsdm9pZCAwLGMpfTtYUz1mdW5jdGlvbihhKXsoYT1WU1thXSkmJl8ud0ooXy5oeCgpLGEpfTtIa2E9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5WdygwKSxjPV8uaXEoMCk7YyYmYiYmYSYmXy5WaShfLmJ4KSh2b2lkIDAsYyxiLGEpfTsKWVM9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5pcSgwKTtiJiZhJiZfLnlKKGIsYSl9O1pTPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaXEoMCk7YiYmYSYmXy5WaShfLkFPKSh2b2lkIDAsYixhLHZvaWQgMCx2b2lkIDAsdm9pZCAwKX07JFM9ZnVuY3Rpb24oYSxiKXtpZighYS5iYT8uWmh8fCFhLkgpcmV0dXJuITE7YT1hLkguZ2V0UGxheWVyU3RhdGVPYmplY3QoKTtyZXR1cm4gYS5pc0Vycm9yfHxiJiYhTVIoYik/ITE6YS5pc0N1ZWR8fGEuaXNEb21QYXVzZWR9O2NUPWZ1bmN0aW9uKGEsYil7YVQmJiFiPy5JY3x8YS5wbGF5ZXJTdGF0ZT09PTJ8fGEucGxheWVyU3RhdGU9PT0tMXx8dVMoYSl8fGEucGxheWVyU3RhdGU9PT01fHwoYj8uSWMmJmJUKCksYVQ9c2V0VGltZW91dCgoKT0+e2EuUyh7ZWE6ITF9KX0sYS5iYT8uTWw/PzJFMykpfTtiVD1mdW5jdGlvbigpe2FUJiYoY2xlYXJUaW1lb3V0KGFUKSxhVD12b2lkIDApfTtJa2E9ZnVuY3Rpb24oYSl7YVQ9YX07CmRUPWZ1bmN0aW9uKGEpe3JldHVybntpc0xpdmU6ITEsaXNMaXZlRHZyRW5hYmxlZDohMCxpc1BsYXlsaXN0OiExLHBsYXllclR5cGU6MSx5cTohMSx2aWRlb0lkOnZvaWQgMCxjYXB0aW9uc0VuYWJsZWQ6ITEseGM6ITEsdm9sdW1lOjAscmM6ITAsSmY6MCxSeDohMSxzYjohMSxXZDohMSxOYTohMSxpc0Z1bGxzY3JlZW46ITEsS2I6MCx5aDowLEpkOjAseGY6ITEsYXV0b25hdkVuYWJsZWQ6ITEsemY6ITEseWY6MCxZaDohMSxpc0RyYWdnaW5nOiExLENhOjAsUWM6ITEsZGo6MCxRbTowLHBsYXllclN0YXRlOmE/LmdldFBsYXllclN0YXRlKCk/Py0xLHZpZGVvRHVyYXRpb246MCx2YTowLE9uOiExLGplOnZvaWQgMCxwbGF5YmFja1JhdGU6MSxlYTohMSx5YjohMSxnZTohMSxMZjoib2ZmIixacjowLExwOjAsWXY6MH19O0prYT1mdW5jdGlvbihhKXthVCYmYlQoKTtJa2Eoc2V0VGltZW91dCgoKT0+e2EuUyh7ZWE6ITEseWI6ITF9KX0sMkUzKSl9OwpLa2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLkg/LmdldFBsYXllclN0YXRlKCk7IWN8fGM9PT1iLnBsYXllclN0YXRlfHxjIT09MSYmYyE9PTJ8fChjJiYoYz09PTI/Yi5lYT8oYi5TKHt5YjohMX0pLGJUKCkpOmIuUyh7ZWE6ITAseWI6ITF9KTpjPT09MSYmYi5lYSYmIWIuaXNEcmFnZ2luZyYmKGIueWI/SmthKGIpOmIuUyh7ZWE6ITEseWI6ITF9KSkpLGIuUyh7cGxheWVyU3RhdGU6Y30pKX19O0xrYT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e3ZhciBjPWEoKSxkPWMuSCxlPWQ/LmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkO2UhPT1jLnZpZGVvSWQmJmI/LnR5cGU9PT0ibmV3ZGF0YSImJihiPWQ/LmdldER1cmF0aW9uKGI/LnBsYXllcnR5cGUpLGJUKCksYy5TKHt2aWRlb0R1cmF0aW9uOmIsdmE6MCx2aWRlb0lkOmUsZWE6ITEseWI6ITF9KSl9fTsKTWthPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9YSgpLGQ9Yy5IO2lmKGQpe3ZhciBlPWQuZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKTtfLngoIndlYl9zaG9ydHNfdXNlX3Byb2dyZXNzX3N0YXRlX2Zvcl9nYXBsZXNzIik/KGQ9ZC5nZXRQcm9ncmVzc1N0YXRlKGUpLGQ9ZC5zZWVrYWJsZUVuZC1kLnNlZWthYmxlU3RhcnQpOmQ9ZC5nZXREdXJhdGlvbihlKTtjLlMoe3ZhOmIsdmlkZW9EdXJhdGlvbjpkfSl9fX07Z1Q9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm5bXTthPWEubWFya2Vyc01hcD8uZmluZChjPT5bIkRFU0NSSVBUSU9OX0NIQVBURVJTIiwiQVVUT19DSEFQVEVSUyJdLmluY2x1ZGVzKGMua2V5KSk/LnZhbHVlPy5jaGFwdGVyc3x8W107KGEubGVuZ3RoPT09MD8wOl8uQihhWzBdLGVUKT8udGltZVJhbmdlU3RhcnRNaWxsaXMhPT0wKSYmIWI/Lm54JiYoYT1bZlQoKSwuLi5hXSk7cmV0dXJuIGF9O2ZUPWZ1bmN0aW9uKCl7cmV0dXJue2NoYXB0ZXJSZW5kZXJlcjp7dGltZVJhbmdlU3RhcnRNaWxsaXM6MH19fTsKaFQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS50aW1lUmFuZ2VTdGFydE1pbGxpc3x8MDowfTtrVD1mdW5jdGlvbihhLGIpe3JldHVybiBnVChiKS5maW5kKChjLGQsZSk9PmlUKGpUKGEpLGUsZCkuTGQ9PT0iYWN0aXZlIil9O2xUPWZ1bmN0aW9uKGEsYil7aWYoYS5pc0RyYWdnaW5nJiZiKXJldHVybiBhPU5rYShhLGIpLGE9PT0tMT9mVCgpOmdUKGIpW2FdfTtOa2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5pc0RyYWdnaW5nJiZiP2dUKGIse254OiEwfSkuZmluZEluZGV4KChjLGQsZSk9PmlUKGpUKGEpLGUsZCkuQmcpOi0xfTttVD1mdW5jdGlvbihhKXthPV8uQihhLGVUKTthPy5vbkFjdGl2ZUNvbW1hbmQmJl8uYUUoYS5vbkFjdGl2ZUNvbW1hbmQpfTtqVD1mdW5jdGlvbihhKXtyZXR1cm57Li4uYSx2aWRlb0R1cmF0aW9uOmEudmlkZW9EdXJhdGlvbioxRTMsdmE6YS52YSoxRTMsQ2E6YS5DYSoxRTN9fTsKaVQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWhUKF8uQihiW2NdLGVUKSk7Yj1oVChfLkIoYltjKzFdLGVUKSl8fGEudmlkZW9EdXJhdGlvbjtjPWEuaXNEcmFnZ2luZzt2YXIgZTtpZihlPWEuaXNEcmFnZ2luZyllPWEuQ2EsZT1lIT09bnVsbCYmZT49ZCYmZTxiO3ZhciBmPWEudmE7cmV0dXJuIGYhPT1udWxsJiZmPj1kJiZmPGI/e0xkOiJhY3RpdmUiLGJtOmMsQmc6ZX06YS52YTxkP3tMZDoicGVuZGluZyIsYm06YyxCZzplfTp7TGQ6InNlZW4iLGJtOmMsQmc6ZX19O25UPWZ1bmN0aW9uKGEsYixjKXtpZihpVChhLGIsYykuTGQhPT0iYWN0aXZlIilyZXR1cm4gMDt2YXIgZD1oVChfLkIoYltjXSxlVCkpO3JldHVybihhLnZhLWQpLygoaFQoXy5CKGJbYysxXSxlVCkpfHxhLnZpZGVvRHVyYXRpb24pLWQpfTtvVD1mdW5jdGlvbihhLGI9MCl7cmV0dXJuIGEuTGQ9PT0ic2VlbiJ8fGI+MH07CnBUPWZ1bmN0aW9uKGEsYixjKXtiPWEvYi5acjtjPWdUKGMpO2lmKCFjLmxlbmd0aClyZXR1cm4tYio3Mjt2YXIgZD0wO2ZvcihsZXQgZSBvZiBjKWlmKGhUKF8uQihlLGVUKSkvMUUzPGEpZCsrO2Vsc2UgYnJlYWs7cmV0dXJuLShiKjcyKS1kKjU2fTtPa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO2EuQigpO2Quc3RvcFByb3BhZ2F0aW9uKCk7ZD1xVChhLGUsZC5jbGllbnRYKSplLnZpZGVvRHVyYXRpb247ZS5TKHt2YTpkfSk7ZS5wbGF5ZXJTdGF0ZT09PTJ8fGYuRm4/LigpO2EuRC52KGQsZSw3KX19O3JUPWZ1bmN0aW9uKGEpe2E9YS50b3VjaGVzWzBdO3JldHVybnt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX19O1BrYT1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57dmFyIGQ9clQoYyksZT1iKCk7YS5zdGFydFBvc2l0aW9ufHwoYS5zdGFydFBvc2l0aW9uPWQsYS5CKCksYS5qPWUuZWEsYy5zdG9wUHJvcGFnYXRpb24oKSl9fTsKUWthPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD17eDpjLmNsaWVudFgseTpjLmNsaWVudFl9LGU9YigpO2Euc3RhcnRQb3NpdGlvbnx8KGEuc3RhcnRQb3NpdGlvbj1kLGEuQigpLGEuaj1lLmVhLGMuc3RvcFByb3BhZ2F0aW9uKCkpfX07CnRUPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXthLnN0YXJ0UG9zaXRpb24mJihmJiZlLmlqJiZhLnN0YXJ0UG9zaXRpb24mJiFhLm8mJk1hdGguYWJzKGMueS1hLnN0YXJ0UG9zaXRpb24ueSk+TWF0aC5hYnMoYy54LWEuc3RhcnRQb3NpdGlvbi54KT9zVChhLGQsZSk6KGIucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLGQudmlkZW9EdXJhdGlvbiYmKGEuc3RhcnRQb3NpdGlvbiYmIWEubyYmKGEubz1NYXRoLmFicyhjLngtYS5zdGFydFBvc2l0aW9uLngpPj0xKSxlLktmJiYoYS5zdGFydFBvc2l0aW9uJiYoYS52PS0oYy55LWEuc3RhcnRQb3NpdGlvbi55KT49NjApLCFhLnN0YXJ0UG9zaXRpb258fGMueT49YS5zdGFydFBvc2l0aW9uLnl8fChkLlMoe0xmOiJkcmFnZ2luZyIsTHA6cFQoZC5DYSxkLGUuUmEpfSksYS5VKGQuQ2EpLGEuWihhLnN0YXJ0UG9zaXRpb24ueSxjLnksZCkpKSxhLm8mJihiPXFUKGEsZCxjLngpLGEudiYmKGQuSD8ucGF1c2VWaWRlbygpLGQuUyh7TGY6Im9uIiwKWXY6ZC5DYSxMcDpwVChiKmQudmlkZW9EdXJhdGlvbixkLGUuUmEpfSkpLGUuS2YmJighZS5LZnx8YS5LKGQpPDY4KXx8KGQuaXNEcmFnZ2luZ3x8ZC50YS5rej8uKCksZC5TKHtDYTpiKmQudmlkZW9EdXJhdGlvbixlYTohMCxpc0RyYWdnaW5nOiEwLHliOmEuan0pKSxlLllvPy4oKSkpKSl9O1JrYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQ9Pnt2YXIgZT1iKCksZj1jKCk7dFQoYSxkLHJUKGQpLGUsZiwhMCk7aWYoZi5vblRvdWNoTW92ZSlmLm9uVG91Y2hNb3ZlKGUpfX07dlQ9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYi5idXR0b25zIT09MSl7aWYoYi5tb3ZlbWVudFh8fGIubW92ZW1lbnRZKWIucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLGE9cVQoYSxjLGIuY2xpZW50WCksYy5RY3x8Yy50YS5rej8uKCksYy5TKHtRYzohMCxkajphKmMudmlkZW9EdXJhdGlvbn0pfWVsc2UgdVQoYyksdFQoYSxiLHt4OmIuY2xpZW50WCx5OmIuY2xpZW50WX0sYyxkLCExKX07ClNrYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQ9Pnt2VChhLGQsYigpLGMoKSl9fTtUa2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCk7dVQoYil9fTtzVD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jLktmJiZiLkxmIT09Im9mZiI7Yi5pc0RyYWdnaW5nfHxlPyhkPXtpc0RyYWdnaW5nOiExLHZhOmIuQ2EsZWE6YS5qfSxjLktmJiZiLkxmIT09Im9uIiYmKGEuTSgpLGQuTGY9Im9mZiIpLFVTKGIpLGIuUyhkKSxhLkQudihiLkNhLGIsNyksYy5JbiYmYi5yYyYmYi5IPy51bk11dGUoKSx3VChhKSk6KF8ueCgibWF3cGNfdG91Y2hfZW5kX2hhbmRsZXJfYnVnX2ZpeF9raWxsc3dpdGNoIik/Yi5TKHtlYTohYi5lYX0pOmIuUyh7ZWE6ITB9KSxjLkZuPy4oKSx3VChhKSxfLngoIm1hd3BjX3RvdWNoX2VuZF9oYW5kbGVyX2J1Z19maXhfa2lsbHN3aXRjaCIpfHxkPy5zdG9wUHJvcGFnYXRpb24oKSl9OwpVa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO3NUKGEsZSxmLGQpO2lmKGYub25Ub3VjaEVuZClmLm9uVG91Y2hFbmQoZSl9fTtWa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO3NUKGEsZSxmLGQpO2lmKGYub25Ub3VjaEVuZClmLm9uVG91Y2hFbmQoZSl9fTtXa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57c1QoYSxiKCksYygpLGQpfX07WGthPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57Yi5rZXlDb2RlPT09Mzl8fGIua2V5Q29kZT09PTM4P2EoKT8uSD8uc2Vla0J5KDUsdm9pZCAwLHZvaWQgMCw3Mik6KGIua2V5Q29kZT09PTM3fHxiLmtleUNvZGU9PT00MCkmJmEoKT8uSD8uc2Vla0J5KC01LHZvaWQgMCx2b2lkIDAsNzEpfX07WWthPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+eyFjKCkuZGlzYWJsZVNjcnViYmluZyYmYS5zdGFydFBvc2l0aW9uJiZ2VChhLGQsYigpLGMoKSl9fTsKeFQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57aWYoIWMoKS5kaXNhYmxlU2NydWJiaW5nKWlmKGEuc3RhcnRQb3NpdGlvbil7dmFyIGU9YigpLGY9YygpO3NUKGEsYigpLGMoKSxkKTtpZihmLm9uVG91Y2hFbmQpZi5vblRvdWNoRW5kKGUpfWVsc2UgYigpLlMoe2lzRHJhZ2dpbmc6ITF9KX19O3VUPWZ1bmN0aW9uKGEpe2EuUWMmJmEuUyh7UWM6ITEsZGo6MH0pfTtxVD1mdW5jdGlvbihhLGIsYyl7YT1hLkkoYik7cmV0dXJuIERRKDAsKGMtYS5sZWZ0KS9hLndpZHRoLDEpfTt3VD1mdW5jdGlvbihhKXthLnN0YXJ0UG9zaXRpb249bnVsbDthLm89ITE7YS52PSExO2Euaj0hMX07eVQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS53aWR0aC9hLmNvbHVtbnM6MH07elQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS5oZWlnaHQvYS5yb3dzOjB9O0FUPWZ1bmN0aW9uKGEpe3JldHVybiBhLlFjP2EuZGo6YS5DYX07CkJUPWZ1bmN0aW9uKGEsYil7YT1hLkNhKjFFMztyZXR1cm4gYT49Yi52aXNpYmxlVGltZVJhbmdlU3RhcnRNaWxsaXMmJmE8PWIudmlzaWJsZVRpbWVSYW5nZUVuZE1pbGxpc307Q1Q9ZnVuY3Rpb24oYSl7aWYoYT09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKGEpKXJldHVybiItLTotLSI7dmFyIGI9TWF0aC5hYnMoTWF0aC5mbG9vcihhKSksYz1NYXRoLmZsb29yKGIvODY0MDApLGQ9TWF0aC5mbG9vcihiJTg2NDAwLzM2MDApLGU9TWF0aC5mbG9vcihiJTM2MDAvNjApO2I9TWF0aC5mbG9vcihiJTYwKTt2YXIgZj0iIjtjPjAmJihmKz1gJHtjfTpgLGQ8MTAmJihmKz0iMCIpKTtpZihjPjB8fGQ+MClmKz1gJHtkfTpgLGU8MTAmJihmKz0iMCIpO2YrPWAke2V9OmA7YjwxMCYmKGYrPSIwIik7Zis9YjtyZXR1cm4gYT49MD9mOmAtJHtmfWB9OwpEVD1mdW5jdGlvbihhLGIpe3JldHVybigpPT57dmFyIGM9QVQoYSgpKTt2YXIgZD1iKCk7dmFyIGU9YSgpLkg7aWYoZSYmZS5nZXROdW1iZXJPZlN0b3J5Ym9hcmRMZXZlbHMoKSE9PTApe3ZhciBmPWUuZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgoYywxKTtmIT09LTE/ZD1lLmdldFN0b3J5Ym9hcmRGcmFtZShmLDEpOihjPWUuZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgoYywwKSxlPWUuZ2V0U3Rvcnlib2FyZEZyYW1lKGMsMCksZCYmZSYmKGUuaGVpZ2h0Kj0zLGUud2lkdGgqPTMpLGQ9ZSl9ZWxzZSBkPW51bGw7aWYoIWQpcmV0dXJuIG51bGw7YigpJiYoZC53aWR0aD05MCpkLmNvbHVtbnMsZC5oZWlnaHQ9MTYwKmQucm93cyk7cmV0dXJuIGR9fTsKJGthPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBhLk5hfHxhLmlzTGl2ZT9kOmI+MT9FVChkKTpzZXRUaW1lb3V0KCgpPT57YygpO25hdmlnYXRvcj8udmlicmF0ZSYmbmF2aWdhdG9yLnZpYnJhdGUoWmthKX0sXy5zaigic3BlZWRtYXN0ZXJfdG91Y2hfYWN0aXZhdGlvbl9tcyIsNTAwKSl9O0VUPWZ1bmN0aW9uKGEpe2EhPT12b2lkIDAmJmNsZWFyVGltZW91dChhKX07CkhUPWZ1bmN0aW9uKGEsYil7YS5OYXx8YS5pc0xpdmV8fChiPjEmJkZUKGEpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgicHJldmVudC1oaWdobGlnaHRzIiksR1Q9c2V0VGltZW91dCgoKT0+e2EuSD8ucGxheVZpZGVvKCk7YlQoKTthLlMoe3NiOiEwLGVhOiEwfSk7dmFyIGM9Xy5zaigic3BlZWRtYXN0ZXJfcGxheWJhY2tfcmF0ZSIsMiksZD1hLkg7ZD8uc2V0UGxheWJhY2tSYXRlPy4oYyk7Xy54KCJtd2ViX2xvbmdfcHJlc3Nfc3BlZWR1cF92aWJyYXRpb24iKSYmZD8uZ2V0UGxheWJhY2tSYXRlKCk9PT1jJiZuYXZpZ2F0b3I/LnZpYnJhdGUmJm5hdmlnYXRvci52aWJyYXRlKGFsYSl9LF8uc2ooInNwZWVkbWFzdGVyX3RvdWNoX2FjdGl2YXRpb25fbXMiLDUwMCkpKX07CklUPWZ1bmN0aW9uKGEsYixjKXtjLnNiJiZhLnByZXZlbnREZWZhdWx0KCk7YT1iLmxrO2I9Yi5PZDtNYXRoLnNxcnQoYSphK2IqYik+Xy5zaigic3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwIiwxMCkmJiFjLnNiJiZGVChjKX07RlQ9ZnVuY3Rpb24oYSl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJwcmV2ZW50LWhpZ2hsaWdodHMiKTtHVCYmY2xlYXJUaW1lb3V0KEdUKTthLnNiJiYoYS5TKHtzYjohMSxlYTp1UyhhKX0pLGE9YS5ILHR5cGVvZiBhPy5zZXRQbGF5YmFja1JhdGU9PT0iZnVuY3Rpb24iP2Euc2V0UGxheWJhY2tSYXRlKDEpOl8uV2koRXJyb3IoIiRkIikpKX07CmNsYT1mdW5jdGlvbihhLGIsYyl7aWYoYiYmYSl7dmFyIGQ9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiPWJsYShiLGQud2lkdGgsZC5oZWlnaHQpKWM/LlpBJiYoYz1uZXcgSW1hZ2UsYy5vbmxvYWQ9KCk9PntpamEoKX0sYy5zcmM9YixfLkl6KCJmdHIiKSksYS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgke2J9KWB9fTtibGE9ZnVuY3Rpb24oYSxiLGMpe2lmKChhPWEudGh1bWJuYWlscykmJmEubGVuZ3RoIT09MCl7dmFyIGQ9d2luZG93LmRldmljZVBpeGVsUmF0aW8+MT93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzoxO2IqPWQ7Yyo9ZDtpZihiPjY0MHx8Yz40ODApcmV0dXJuIGEuYXQoLTEpLnVybDtpZihiPjMyMHx8Yz4xODApe3ZhciBlO2Q9Yj1jPXZvaWQgMDtmb3IoZSBvZiBhKSFkJiZlLndpZHRoPj0zMjA/ZD1lLnVybDohYiYmZS53aWR0aD49NDgwP2I9ZS51cmw6IWMmJmUud2lkdGg+PTY0MCYmKGM9ZS51cmwpO2lmKGU9Y3x8Ynx8ZClyZXR1cm4gZX1yZXR1cm4gYVswXS51cmx9fTsKSlQ9ZnVuY3Rpb24oYSl7KGE9YT8uaGVhZGVyPy5wbGF5bGlzdEhlYWRlclJlbmRlcmVyKT8oYT1fLkIoYS5jaW5lbWF0aWNDb250YWluZXIsZGxhKT8uYmFja2dyb3VuZEltYWdlQ29uZmlnPy50aHVtYm5haWw/LnRodW1ibmFpbHMsYT1hPy5sZW5ndGg/YVthLmxlbmd0aC0xXS51cmw6dm9pZCAwLGE9IWEpOmE9ITE7cmV0dXJuIGF9O0tUPWZ1bmN0aW9uKGEpe2E9YXx8Xy5YRD8ucmVzcG9uc2U/LnJlc3BvbnNlO3JldHVybiBhPy5oZWFkZXI/LnBhZ2VIZWFkZXJSZW5kZXJlcn07T1Q9ZnVuY3Rpb24oKXt2YXIgYT1fLlhEPy5yZXNwb25zZT8ucmVzcG9uc2U7cmV0dXJuISFLVCgpPy50aXRsZUFuaW1hdGlvbnx8SlQoYSl9OwpQVD1mdW5jdGlvbigpe3ZhciBhPV8uWEQ/LnJlc3BvbnNlPy5yZXNwb25zZSxiPUtUKGEpO2lmKGIpYT1iLnRvcEJhckFuaW1hdGlvbj8hMDohMTtlbHNle2lmKGI9WFEoKSYmIV8uVk0oKSliPV8uWmIod2luZG93LmxvY2F0aW9uLmhyZWYsImxpc3QiKSxiPSEoYj8uc3RhcnRzV2l0aCgiRUwiKXx8Yj8uc3RhcnRzV2l0aCgiU0MiKSk7YT1iJiYhSlQoYSl9cmV0dXJuIGF9OwplbGE9ZnVuY3Rpb24oKXtpZihfLncoIk1XRUJfU1RJQ0tZX1BMQVlFUiIsITEpJiZRVCgpJiZ3aW5kb3cubG9jYXRpb24uaGFzaCE9PSIjc2VhcmNoaW5nIiYmXy5VTSgpIT09InNlYXJjaCIpe3ZhciBhPXdpbmRvdy5zY3JvbGxZLGI7KGI9Xy5WTSgpKXx8KGI9Xy5VTSgpPT09ImNsaXAiKTtpZihiKSFfLlRFKCkmJiFIUSgpfHwoXy5GZWEub2Zmc2V0SGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodCouNj9fLlR0KF8uRUosInN0aWNreS1wbGF5ZXIiKTpfLlN0KF8uRUosInN0aWNreS1wbGF5ZXIiKSksUlQoImluIiksU1Q9YTtlbHNle2I9U1Q+YTt2YXIgYz1hPj00OCxkPWE8MTI2O1NUPWE7Yj8oYz9SVCgiZmlsbGVkIik6UlQoImluIiksSVEoKSYmZD9UVCgiZmlsdGVyLWNoaXAtYmFyLXN0YXRpYyIpOlRUKCJmaWx0ZXItY2hpcC1iYXItaW4iKSk6Yz9QVCgpfHxPVCgpP1JUKCJmaWxsZWQiKTooUlQoIm91dCIpLElRKCkmJmQ/VFQoImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKTpUVCgiZmlsdGVyLWNoaXAtYmFyLW91dCIpKToKKFJUKCJpbiIpLElRKCk/VFQoImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKTpUVCgiZmlsdGVyLWNoaXAtYmFyLWluIikpfX12YXIgZTtfLlZNKCkmJihlPVFUKCkpIT1udWxsJiYoYT1lLnNldEF0dHJpYnV0ZSxiPV8uTUUoKT8xOjI0LF8uRE4ubGVuZ3RoPjAmJiFfLnhOKCk/KGM9TnVtYmVyKGRvY3VtZW50LmJvZHkuc3R5bGUudG9wLnJlcGxhY2UoLyhweCl8LS9nLCIiKSksYj0haXNOYU4oYykmJmM8Yik6Yj1TVDxiLGEuY2FsbChlLCJhbWJpZW50LXRvcGJhciIsYi50b1N0cmluZygpKSl9O1FUPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkZXItYmFyIi50b1N0cmluZygpKX07ClRUPWZ1bmN0aW9uKGEpe3ZhciBiPV8uVU0oKT09PSJob21lInx8SVEoKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsdGVyLWNoaXAtYmFyIi50b1N0cmluZygpKTpudWxsO2ImJihfLlR0KGIsImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKSxfLlR0KGIsImZpbHRlci1jaGlwLWJhci1pbiIpLF8uVHQoYiwiZmlsdGVyLWNoaXAtYmFyLW91dCIpLF8uU3QoYixhKSl9OwpSVD1mdW5jdGlvbihhKXt2YXIgYj1RVCgpO2lmKGIpe2xldCBjPV8uYUwoe1sic3RpY2t5LXBsYXllciJdOl8udygiTVdFQl9TVElDS1lfUExBWUVSIiwhMSksWyJpcy1hdXRvbW90aXZlIl06SFEoKX0pO18uV00oKT9jPV8uYUwoYywidG9wYmFyLXRyYW5zcGFyZW50LWJhY2tncm91bmQiLCJzaG9ydHMtdG9wYmFyIik6UFQoKT9jPV8uYUwoYywidG9wYmFyLXRyYW5zcGFyZW50LWJhY2tncm91bmQiKTpPVCgpJiYoYz1fLmFMKGMsInRvcGJhci10cmFuc3BhcmVudC10aXRsZSIpKTtiLmNsYXNzTmFtZT1fLmFMKGEsYyl9fTtmbGE9ZnVuY3Rpb24oKXtyZXR1cm4gVVR9O2hsYT1mdW5jdGlvbihhLGIpe2ImJihWVD0hMCk7YT1VVD1hO2I9SlIoKTthIT09YiYmKGI9Xy5IeigpLF8uRHooMTQxLCEwKSxfLkR6KDE0MCwhYSksYi5zYXZlKCkpO2dsYSgpfTtnbGE9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KCgpPT57Xy5YTSgicGxheWVyLWF1dG9uYXYtcGF1c2UiLHtwYXVzZWQ6ITF9KX0pfTsKaWxhPWZ1bmN0aW9uKCl7cmV0dXJuIFZUfTtXVD1mdW5jdGlvbihhLGIpe3JldHVybiBfLk1FKCk/YiYmYT8udmlkZW9EdXJhdGlvbj4zMDpiJiYhYS5lYX07WFQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiYmYS5lYSYmIV8uTUUoKX07amxhPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYj1iPz9hd2FpdCBfLkxIKCkpYi51bk11dGUoITApLGIuc2V0Vm9sdW1lKGEsITApfTtaVD1mdW5jdGlvbihhLGIpe2EmJihhLnZhbHVlPWAke2J9YCxhLnN0eWxlLnNldFByb3BlcnR5KCItLWdyYWRpZW50LXBlcmNlbnQiLGAke2J9JWApKX07a2xhPWZ1bmN0aW9uKGEpe3JldHVybiBfLngoInBsYXllcl9jb250cm9sc191c2VfcGxheWVyX2FwaV9jb250ZXh0Iik/Xy5rRygkVCk6YX07YVU9ZnVuY3Rpb24oYSl7cmV0dXJuYGh0dHBzOi8vbS55b3V0dWJlLmNvbS9zdGF0aWMvbG90dGllLyR7YX0uanNvbmB9OwpiVT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiYW5pbWF0ZWRfbGlrZV9pY29uIjpyZXR1cm57bmFtZToiYW5pbWF0ZWRfbGlrZV9pY29uX3YyX2RhcmsiLHBhdGg6YVUoImFuaW1hdGVkX2xpa2VfaWNvbl92Ml9kYXJrIiksbG9vcDohMSxhdXRvcGxheTohMSxyZW5kZXJlclNldHRpbmdzOnt2aWV3Qm94T25seTohMCxjbGFzc05hbWU6ImFuaW1hdGVkLWxpa2UtaWNvbiJ9fTtjYXNlICJsaWtlXzI0MGRwX2FuaW1hdGlvbl92MiI6Y2FzZSAibGlrZV90YXBfZmVlZGJhY2tfc2hvcnRzX2hlYXJ0IjpjYXNlICJwYXVzZV85NmRwX2FuaW1hdGlvbiI6Y2FzZSAicGxheV85NmRwX2FuaW1hdGlvbiI6Y2FzZSAic2Vla185NmRwX2FuaW1hdGlvbiI6cmV0dXJue25hbWU6YSxwYXRoOmFVKGEpLGxvb3A6ITEsYXV0b3BsYXk6ITF9O2RlZmF1bHQ6cmV0dXJue25hbWU6IiIscGF0aDoiIn19fTsKY1U9ZnVuY3Rpb24oYSl7Xy5MTygpLnRoZW4oYj0+e2Iuc3RvcCgibGlrZV8yNDBkcF9hbmltYXRpb25fdjIiKTtiLnN0b3AoImxpa2VfdGFwX2ZlZWRiYWNrX3Nob3J0c19oZWFydCIpO2Iuc3RvcCgicGxheV85NmRwX2FuaW1hdGlvbiIpO2Iuc3RvcCgicGF1c2VfOTZkcF9hbmltYXRpb24iKTtiLnBsYXkoYSl9KX07CmxsYT1mdW5jdGlvbihhKXt2YXIgYj1fLkh6KCk7SFEoKXx8YS5xdnx8YS5zdXBwcmVzc0FmdGVyQ2xvc2luZyYmTnVtYmVyKGIuZ2V0KCJzdXBwcmVzc19hcHBfdXBzZWxsIikpJiYhXy54KCJtd2ViX2FwcF91cHNlbGxfYnV0dG9uIil8fChkVXx8KGRVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRVLGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCkpLF8uSk4oZFUsbnVsbCwhMCksYSE9PWVVJiYoZlU/LigpLGZVPV8ueEYoZFUsKCk9PntfLm9GKCgpPT57Xy5NTygiLll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVySG9zdCAuWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250ZW50cyIpfSk7cmV0dXJuIF8uSyhfLklCLG51bGwsXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTY3JpbUNvbnRhaW5lciJ9LF8uSyhfLlpOLHtsYWJlbDpfLiROLkNMT1NFfSkpLF8uSygiZGl2Iix7Y2xhc3M6Ill0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lciJ9LApfLksoZ1Use2RhdGE6YX0pKSl9LCJkZCIpKSxlVT1hKX07aFU9ZnVuY3Rpb24oKXtyZXR1cm57c3R5bGU6Im92ZXJsYXktZGFyayIsaWNvblBvc2l0aW9uOiJpY29uLXdpdGgtbGFiZWwiLHNpemU6IkwiLHNpemU6IlMiLHR5cGU6InRleHQiLHN0eWxlOiJvdmVybGF5In19O25sYT1mdW5jdGlvbihhKXt2YXIgYj1fLkIoYS5zaG9wcGluZ1Vwc2VsbCxtbGEpO2ImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntsbGEoYil9KX07b2xhPWZ1bmN0aW9uKGEpe2E/LmxvZ2dpbmdEaXJlY3RpdmVzPy50cmFja2luZ1BhcmFtcyYmXy5seChfLmh4KCksYS5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtcyl9O2lVPWZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLlZNKCl8fF8uVU0oKT09PSJob21lIn07alU9ZnVuY3Rpb24oYSxiKXtpZihiKXtpZihhJiZiLmRhcmtUaGVtZUxvZ28/Lmljb24/Lmljb25UeXBlKXJldHVybiBiLmRhcmtUaGVtZUxvZ28uaWNvbi5pY29uVHlwZTtpZihiLmxpZ2h0VGhlbWVMb2dvPy5pY29uPy5pY29uVHlwZSlyZXR1cm4gYi5saWdodFRoZW1lTG9nby5pY29uLmljb25UeXBlfX07CmxVPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSDtiJiYoa1U9KGE9a1UpPygoYj1OUShiKSk/Yi5kaXNwbGF5TmFtZXx8IiI6bnVsbCl8fGE6UFEoYikpO3JldHVybiBrVX07bVU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSgpLnBsYXllclN0YXRlPT09MCYmISFiJiYhYSgpLnhmJiZhKCkuYXV0b25hdkVuYWJsZWR9O25VPWZ1bmN0aW9uKGEsYil7Yj1NUyhiKTtyZXR1cm4gYSgpLnBsYXllclN0YXRlPT09MCYmYi5sZW5ndGg+MH07b1U9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSD8uaXNSZWFkeT8uKCkmJmEuSD8uaXNBdExpdmVIZWFkKCl9O3BVPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItY29udHJvbC1vdmVybGF5Iil9O3BsYT1mdW5jdGlvbihhKXthIT09LTEmJl8ueCgicGxheWVyX2NvbnRyb2xzX2xvZ19jcmVhdGlvbl9lbmFibGVkIikmJnBVKCkmJihfLkFxKCJwY3VfY3MiLGEpLF8uQXEoInBjdV9jZSIpKX07CnFVPWZ1bmN0aW9uKGEpe2lmKCFhfHxhLmdldFZpZGVvRGF0YSlyZXR1cm4gYX07cWxhPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIG9mIE9iamVjdC5rZXlzKGEpKWlmKGFbY10hPT1iW2NdKXJldHVybiExO3JldHVybiEwfTtyVT1mdW5jdGlvbigpe3JldHVybiBfLncoIk1XRUJfU1VQUE9SVFNfRE9VQkxFX1RBUF9UT19TRUVLIil9O3JsYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPGIvMz8tMTphPjIqYi8zPzE6MH07c1U9ZnVuY3Rpb24oYSxiLGMpe3JVKCkmJnZTKHsuLi5jLEpkOmIsS2I6YX0pJiYoKGE9Yy5IKSYmYS5zZWVrQnkoTWF0aC5zaWduKGIpKjEwLHZvaWQgMCx2b2lkIDAsNCksYy5wbGF5ZXJTdGF0ZT09PTJ8fGMuSD8ucGF1c2VWaWRlbygpLGI9PT0tMT9YUygyODIzOSk6WFMoMjgyNDApKX07CnVVPWZ1bmN0aW9uKGEsYil7clUoKSYmKGNsZWFyVGltZW91dCh0VSksdFU9c2V0VGltZW91dCgoKT0+e3ZhciBjPXtLYjowLEpkOjAseWg6MH07aWYodlMoYSkpe3ZhciBkPXVTKGEpfHxhLkNhPj1hLnZpZGVvRHVyYXRpb247Yy5lYT1hLnBsYXllclN0YXRlPT09Mnx8YS5wbGF5ZXJTdGF0ZT09PTN8fGQ7Yy52YT1hLkNhO2MueWI9ITE7YS5IPy5pc1JlYWR5Py4oKSYmKGEuSC5zZWVrVG8oYS5DYSksZD17Li4uYSwuLi5jfSwoZC5pc0xpdmV8fGQudmE8ZC52aWRlb0R1cmF0aW9uKSYmZC5PbiYmZC5IPy5nZXRQbGF5ZXJTdGF0ZSgpIT09MSYmZC5IPy5wbGF5VmlkZW8oKSl9ZWxzZSBhLktiPT09MSYmYj8uKCk7YS5TKGMpO2NsZWFyVGltZW91dCh0VSl9LGEuYmE/LnZ2Pz82MDApKX07c2xhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHJVKCkmJmIhPT0wP2EuSmQhPT1iPzE6KDAsXy5lbCkoKS1hLnloPjM1MD9hLktiOmEuS2IrMTowfTsKdWxhPWFzeW5jIGZ1bmN0aW9uKCl7dmFyIGE9YXdhaXQgdlUuamMoKTthJiYoYT1hd2FpdCBhLmdldCgiYXV0by16b29tLWVuYWJsZWQiKSx0bGEodHlwZW9mIGE9PT0iYm9vbGVhbiI/YTohMCkpfTt3VT1mdW5jdGlvbihhKXt2YXIgYj1hLnRvdWNoZXNbMF0sYz1hLnRvdWNoZXNbMV07YT1iLnBhZ2VYLWMucGFnZVg7Yj1iLnBhZ2VZLWMucGFnZVk7cmV0dXJuIE1hdGguc3FydChhKmErYipiKX07CklVPWZ1bmN0aW9uKGEsYil7eFUoYSkmJihhLnN0b3BQcm9wYWdhdGlvbigpLGE9eVUtelUsQVV8fChhPTApLEZUKGIpLF8ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJihCVT0wLENVKCkmJkRVKCExKSksYi5iYT8uTWl8fChiLk5hfHxiLldkfHxiLnNifHxfLlRFKCl8fF8uTUUoKSYmIWIuaXNGdWxsc2NyZWVufHwoYi5pc0Z1bGxzY3JlZW4mJihhKj0tMSksKGE8LTEwMHx8TWF0aC5hYnMoYSk+MTAwJiZiLmlzRnVsbHNjcmVlbikmJmIudGEudG9nZ2xlRnVsbHNjcmVlbih7ZHM6ITB9KSxFVSYmT2JqZWN0LmFzc2lnbihFVS5zdHlsZSx7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNpdGlvbjoiMC4ycyBlYXNlIn0pKSxiLldkJiYoKGE9TWF0aC5hYnMoYi5KZik+NTA/IWIuTmE6Yi5OYSl8fGNUKGIpLGIuUyh7V2Q6ITEsTmE6YSxKZjowfSkpKSxGVT0oMCxfLmVsKSgpLHlVPUdVPXpVPUhVPTAsQVU9ITEpfTsKeFU9ZnVuY3Rpb24oYSl7dmFyIGI9W2EudGFyZ2V0Py5nZXRBdHRyaWJ1dGUoImlkIiksLi4uKGEudGFyZ2V0Py5jbGFzc0xpc3R8fFtdKV07cmV0dXJuISEicGxheWVyLWNvbnRyb2wtb3ZlcmxheSBwbGF5ZXItY29udHJvbHMtbWlkZGxlIHBsYXllci1jb250cm9scy1ib3R0b20gZnVsbHNjcmVlbi1jb250cm9scyBwbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZCB0b3AtZnVsbC1zY3JlZW4tY29udHJvbHMiLnNwbGl0KCIgIikuZmluZChjPT5iLmZpbmQoZD0+ZD09PWMpKX07CktVPWZ1bmN0aW9uKGEsYil7aWYoYi5OYSlKVShhKSYmYi5TKHtOYTohMX0pO2Vsc2UgaWYoYi5wbGF5ZXJTdGF0ZSE9PS0xJiZiLnBsYXllclN0YXRlIT09NSlpZihKVShhKSl7dmFyIGM9V1EoYi5IKTtiLlMoe2VhOiEwLHliOiEwLGplOmN9KX1lbHNle3ZhciBkPXJsYShhLmNsaWVudFgsYi5UYy5vZmZzZXRXaWR0aCk7Yz1zbGEoYixkKTt2YXIgZT1jPmIuS2I7bGV0IGY9Yi5DYTtlJiYoZj1jPDI/Yi52YTpEUShiLkNhKyhkPT09LTE/LTE6MSkqMTAsMCxiLnZpZGVvRHVyYXRpb24pLHNVKGMsZCxiKSk7IWIuZWEmJmM8PTE/Y1QoYix7SWM6ITB9KTpiVCgpO2E9Yi5iYT8uenYmJmIuZWEmJiFKVShhKTtkPXtlYTp2bGEoey4uLmIsS2I6Y30pfHxhLFloOiExLEpkOmQsQ2E6ZixLYjpjLHliOiEwLHloOigwLF8uZWwpKCl9O2U/dVUoey4uLmIsS2I6YyxDYTpmfSxhPygpPT57aWYoYi5IPy5pc1JlYWR5Py4oKSl7bGV0IGg9V1EoYi5IKTtiLlMoe2plOmh9KX19OnZvaWQgMCk6YSYmYi5IJiYKKGU9V1EoYi5IKSxiLlMoe2plOmV9KSk7Yz09PTEmJihkLk9uPWIucGxheWVyU3RhdGU9PT0xfHxiLnBsYXllclN0YXRlPT09Myk7Yi5TKGQpfX07SlU9ZnVuY3Rpb24oYSl7cmV0dXJuIV8ueCgibXdlYl9pb3NfZGV0ZWN0X2Zha2VfY2xpY2tfa2lsbHN3aXRjaCIpJiZfLkdLJiZGVT4wJiYoMCxfLmVsKSgpLUZVPDEwMD8hMTp0eXBlb2YgUG9pbnRlckV2ZW50IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBQb2ludGVyRXZlbnQmJmEucG9pbnRlclR5cGU9PT0ibW91c2UifTt2bGE9ZnVuY3Rpb24oYSl7cmV0dXJuIHVTKGEpfHxhLnBsYXllclN0YXRlPT09M3x8YS5LYj4xPyEwOiFhLmVhfTt3bGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz17dm9sdW1lOmIuSD8uZ2V0Vm9sdW1lKCk/PzAscmM6ISFiLkg/LmlzTXV0ZWQoKX07Yi5TKGMpfX07CnhsYT1mdW5jdGlvbihhKXtyZXR1cm4oKT0+e3ZhciBiPWEoKSxjPWIuSDtpZihjKXt2YXIgZD17eGM6ISFjLmdldE9wdGlvbnMoImNhcHRpb25zIil9O2QueGMmJihkLmNhcHRpb25zRW5hYmxlZD1PUShjKSk7Yi5TKGQpfX19Owp6bGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pnt2YXIgYz1hKCksZD1jLkg7aWYoZCYmIWQuaXNLZXlib2FyZERpc2FibGVkPy4oKSYmIXlsYShiLnRhcmdldCxiKSl7c3dpdGNoKGIuY29kZSl7Y2FzZSAiU3BhY2UiOmNhc2UgIktleUsiOmQ9V1EoZCk7Yy5TKHtlYTohMCxqZTpkfSk7YnJlYWs7Y2FzZSAiQXJyb3dMZWZ0IjpjYXNlICJLZXlKIjpMVShjLC0xKTticmVhaztjYXNlICJBcnJvd1JpZ2h0IjpjYXNlICJLZXlMIjpMVShjLDEpO2JyZWFrO2Nhc2UgIktleU0iOmMucmM/ZC51bk11dGUoKTpkLm11dGUoKTtjLlMoe2VhOiEwfSk7YnJlYWs7Y2FzZSAiS2V5RiI6UlEoKTtkLnRvZ2dsZUZ1bGxzY3JlZW4oKTtjLlMoe2VhOiEwfSk7Yi5zdG9wUHJvcGFnYXRpb24oKTticmVhaztjYXNlICJLZXlDIjpjLnhjJiZRUShkLGxVKGMpKTtjLlMoe2VhOiEwfSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Yi5wcmV2ZW50RGVmYXVsdCgpO2Iuc3RvcFByb3BhZ2F0aW9uKCl9fX07CkxVPWZ1bmN0aW9uKGEsYil7aWYoXy54KCJtd2ViX2tleWJvYXJkX3NlZWtfb3ZlcmxheV9raWxsc3dpdGNoIikpYS5IPy5zZWVrQnkoMTAqKGI9PT0tMT8tMToxKSksYS5TKHtlYTohMH0pO2Vsc2V7dmFyIGM9YS5LYixkPWEuSmQsZT0oMCxfLmVsKSgpLGY9ZS1hLnloO2M9ZCE9PWJ8fGY+MzUwPzI6YysxO2Q9Yj09PS0xPy0xOjE7ZD1jPT09Mj8oYS52YXx8MCkrZCoxMDphLkNhK2QqMTA7ZD1EUShkLDAsYS52aWRlb0R1cmF0aW9uKTtlPXtlYTohMCxZaDohMSxKZDpiLENhOmQsS2I6Yyx5YjohMCx5aDplfTtjPT09MiYmKGUuT249YS5wbGF5ZXJTdGF0ZT09PTF8fGEucGxheWVyU3RhdGU9PT0zKTtzVShjLGIsey4uLmEsLi4uZX0pO3VVKHsuLi5hLC4uLmV9KTthLlMoZSl9fTsKeWxhPWZ1bmN0aW9uKGEsYil7aWYoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXJldHVybiEwO3ZhciBjPWEudGFnTmFtZTtyZXR1cm4gYz09PSJJTlBVVCJ8fGM9PT0iVEVYVEFSRUEifHxjPT09IlNFTEVDVCJ8fGIua2V5PT09IlRhYiJ8fGIuY29kZT09PSJTcGFjZSImJihjPT09IkJVVFRPTiJ8fGM9PT0iQSJ8fChhPWEuZ2V0QXR0cmlidXRlKCJyb2xlIikpJiYoYT09PSJidXR0b24ifHxhPT09Im9wdGlvbiJ8fGEuc3RhcnRzV2l0aCgibWVudWl0ZW0iKSkpPyEwOiExfTsKT1U9ZnVuY3Rpb24oYSxiKXt2YXIgYz17Li4uYSgpLHBsYXllclN0YXRlOjB9LGQ9QVMoYigpPy53YXRjaE5leHRSZXNwb25zZSksZT1CUyhiKCk/LndhdGNoTmV4dFJlc3BvbnNlKTtIUyhjLGQpJiYoTVUoYSksYy5TKHt5ZjohZT8uY291bnREb3duU2Vjc3x8ZS5jb3VudERvd25TZWNzPD0wPzEwOmUuY291bnREb3duU2Vjc30pLGM9d2luZG93LnNldEludGVydmFsKCgpPT57dmFyIGY9YSgpO2lmKGYueWYhPT0xKWYuUyh7eWY6Zi55Zi0xfSk7ZWxzZXtNVShhKTtmPWIoKT8ud2F0Y2hOZXh0UmVzcG9uc2U7Zj1BUyhmKTtsZXQgaD1mPy5zZXRzPy5bMF0uYXV0b3BsYXlWaWRlbztoJiZfLkFKKGgsZiwhMSx7YXV0b25hdjoiMSJ9KX19LDFFMyksXy54KCJtd2ViX3BsYXllcl91bmlmaWNhdGlvbl9zdGF0ZV9yZWZhY3Rvcl9raWxsc3dpdGNoIik/TlU9YzphKCkuUyh7Rms6Y30pKX07Ck1VPWZ1bmN0aW9uKGEpeyFfLngoIm13ZWJfcGxheWVyX3VuaWZpY2F0aW9uX3N0YXRlX3JlZmFjdG9yX2tpbGxzd2l0Y2giKSYmYT8oYT1hKCksYS5GayE9PXZvaWQgMCYmKGNsZWFySW50ZXJ2YWwoYS5GayksYS5TKHtGazp2b2lkIDB9KSkpOk5VJiYoY2xlYXJJbnRlcnZhbChOVSksTlU9dm9pZCAwKX07CkJsYT1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57dmFyIGQ9YSgpLGU9e3hmOiExfTtlLnBsYXllclN0YXRlPWM7ZC5IJiZWUShkLkgpJiYoZS5wbGF5ZXJTdGF0ZT0yKTtjPT09MSYmKGQuSD8ubG9hZE1vZHVsZSgiY2FwdGlvbnMiKSxfLngoIm13ZWJfYmV0dGVyX2NhcHRpb25zX3BsYWNlbWVudCIpJiZkLkg/LnNldFN1YnRpdGxlc1RhcmdldENvbnRhaW5lcklkKCJjYXB0aW9ucy1nYWxvcmUtY29udGFpbmVyIikpO2M9PT0wJiYoZC5IPy51bmxvYWRNb2R1bGUoImNhcHRpb25zIiksXy54KCJtd2ViX2JldHRlcl9jYXB0aW9uc19wbGFjZW1lbnQiKSYmZC5IPy5jbGVhclN1YnRpdGxlc1RhcmdldENvbnRhaW5lcklkKCkpO2lmKGUucGxheWVyU3RhdGU9PT0tMSllLmVhPSEwO2Vsc2UgaWYoZS5wbGF5ZXJTdGF0ZT09PTUpZS5lYT0hMDtlbHNlIGlmKGUucGxheWVyU3RhdGU9PT0zKWUuZWE9ITAsYlQoKTtlbHNlIGlmKGUucGxheWVyU3RhdGU9PT0xKWQuc2J8fGQueXF8fChkLnliPwpjVCh7Li4uZCwuLi5lfSk6ZS5lYT0hMSk7ZWxzZSBpZihlLnBsYXllclN0YXRlPT09MiliVCgpO2Vsc2UgaWYoZS5wbGF5ZXJTdGF0ZT09PTApe2UuZWE9ITA7YlQoKTtjPWEoKTt2YXIgZj1iKCk/LndhdGNoTmV4dFJlc3BvbnNlO2lmKGY9Xy5CKGY/LmNvbnRlbnRzPy5zaW5nbGVDb2x1bW5XYXRjaE5leHRSZXN1bHRzPy5hdXRvcGxheT8uYXV0b3BsYXk/LmF1dG9wbGF5RXhwbGljaXRDaG9pY2VEaWFsb2dSZW5kZXJlcixBbGEpKWYuZGlzYWJsZUJ1dHRvblN0eWxlT3ZlcnJpZGVzPSEwOyFjLnRhLlVsKCkmJmYmJihjLnRhLmV4aXRGdWxsc2NyZWVuKCksXy5BSih7b3BlblBvcHVwQWN0aW9uOntwb3B1cDp7Y29uZmlybURpYWxvZ1JlbmRlcmVyOmZ9LHBvcHVwVHlwZToiRElBTE9HIn19LHt9LCExKSk7ZC5hdXRvbmF2RW5hYmxlZCYmKE9VKGEsYiksXy5NTygiI3BsYXllci1lbmRzY3JlZW4gLnl0d1BsYXllckVuZHNjcmVlblRvcFBhbmVsIGJ1dHRvbiIsNSx7cmw6ITB9KSl9ZC5TKGUpfX07CkNsYT1mdW5jdGlvbihhKXtQVSgoKT0+YSkoKX07RGxhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpLGM9Yi5IO2MmJlZRKGMpJiZiLlMoe3BsYXllclN0YXRlOjJ9KX19OwpQVT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e3ZhciBjPWEoKTt2YXIgZD1jLkg7dmFyIGU9ZD8uZ2V0VmlkZW9EYXRhKCksZj1lPy5pc0xpdmV8fCExLGg9ZT8udmlkZW9faWQ7ZT1lPy5hbGxvd0xpdmVEdnI/PyEwO2Y9e3ZpZGVvRHVyYXRpb246VVEoZHx8dm9pZCAwKSxpc0xpdmU6Zix2aWRlb0lkOmgsaXNMaXZlRHZyRW5hYmxlZDplfTtmLnZpZGVvSWQhPT1jLnZpZGVvSWQmJihmPXsuLi5kVChkKSwuLi5mfSk7Yj8ucGxheWVydHlwZSYmKGYucGxheWVyVHlwZT1iLnBsYXllcnR5cGUpO2QmJihmLnhjPSEhZC5nZXRPcHRpb25zKCJjYXB0aW9ucyIpLGI9ZixoPShoPWQuZ2V0U3Rvcnlib2FyZExldmVsKGQuZ2V0TnVtYmVyT2ZTdG9yeWJvYXJkTGV2ZWxzKCktMSk/LmludGVydmFsTXMpP2gvMUUzOnZvaWQgMCxiLlpyPWgsZi54YyYmKGYuY2FwdGlvbnNFbmFibGVkPU9RKGQpKSk7Zi5yYz0hIWQ/LmlzTXV0ZWQoKTtkPWY7ZC5hdXRvbmF2RW5hYmxlZD1jLnRhLmRlKCk7ZC5pc1BsYXlsaXN0PQpYUSgpO2MuYmE/Lk1sIT09dm9pZCAwJiYoZC55Yj0hMCk7ZC5pc0Z1bGxzY3JlZW49Yy5pc0Z1bGxzY3JlZW47ZC5wbGF5ZXJTdGF0ZT09PTMmJihkLmVhPSEwKTtkLnBsYXllclN0YXRlPT09LTEmJihkLmVhPSEwKTtiPWMuR2M7eVMoey4uLmMsLi4uZH0pP2ImJihiLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTpiJiYoYi5zdHlsZS5kaXNwbGF5PSIiKTtNVShhKTtjLlMoZCl9fTsKRWxhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD1hKCksZT1iKCksZj1kLkg7aWYoZil7ZC52aWRlb0lkPT09dm9pZCAwJiZDbGEoZCk7aWYoZSYmYyE9PXZvaWQgMCl7dmFyIGg9ey4uLmQsdmE6Y307KGU9RVMoZS5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpKSYmIWguaXNEcmFnZ2luZyYmKGg9a1QoaCxlKSxtVChoKSl9aD1mLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk7Yz17dmE6Y3x8MCxRbTpmLmdldFZpZGVvTG9hZGVkRnJhY3Rpb24oKSxwbGF5ZXJUeXBlOmh9O3VTKGQpJiYoYy52YT1kLnZpZGVvRHVyYXRpb24pO2QuaXNMaXZlJiYoaD1mLmdldFByb2dyZXNzU3RhdGUoaCksYy52YS09aC5zZWVrYWJsZVN0YXJ0LGMudmlkZW9EdXJhdGlvbj1VUShmKSk7eVMoZCkmJmRlbGV0ZSBjLnZhO2Y9Yzt5Uyh7Li4uZCwuLi5mfSkmJihjPWQuR2MpJiYoYy5zdHlsZS5kaXNwbGF5PSJub25lIik7ZC5TKGYpfX19OwpGbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9PnthKCkuUyh7ZWE6ITEscmM6ITF9KX19O0dsYT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e2EoKS5TKHtpc0Z1bGxzY3JlZW46Yi5mdWxsc2NyZWVuLE5hOiExfSl9fTtIbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLkg7Yi5TKHtpc0Z1bGxzY3JlZW46Yi50YS5pc0Z1bGxzY3JlZW4oKSxjYXB0aW9uc0VuYWJsZWQ6Yz9PUShjKTpiLmNhcHRpb25zRW5hYmxlZH0pfX07SWxhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpO18uVk0oe2hyZWY6d2luZG93LmxvY2F0aW9uLmhyZWZ9KXx8Yi5TKHtpc0Z1bGxzY3JlZW46ITF9KX19OwpKbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCk7WzkwLDI3MF0uaW5jbHVkZXMoTWF0aC5hYnMod2luZG93Lm9yaWVudGF0aW9uP3dpbmRvdy5vcmllbnRhdGlvbjp3aW5kb3cuc2NyZWVuPy5vcmllbnRhdGlvbj8uYW5nbGU/d2luZG93LnNjcmVlbi5vcmllbnRhdGlvbi5hbmdsZTowKSk/ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImxhbmRzY2FwZSIsInRydWUiKTpkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibGFuZHNjYXBlIik7Yi5OYSYmYi5TKHtOYTohMX0pfX07S2xhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpO2IudGEuZXhpdEZ1bGxzY3JlZW4oKTtiLlMoe2lzRnVsbHNjcmVlbjohMX0pfX07TGxhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD1hKCk7Yy5kZXRhaWw/LnBhdXNlZD8oTVUoYSksZC56Znx8ZC5TKHt6ZjohMH0pKToodVMoZCkmJk9VKGEsYiksZC56ZiYmZC5TKHt6ZjohMX0pKX19OwpNbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLnRhLmRlKCk7Y3x8TVUoYSk7Yi5TKHthdXRvbmF2RW5hYmxlZDpjfSl9fTtObGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9PnthKCkuUyh7Ung6ISFifSl9fTtRVT1mdW5jdGlvbihhKXtNVShhLnByb3BzKTthLnByb3BzKCkuUyh7eGY6ITB9KX07UlU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5XRCgoKT0+YS5zZXRzWzBdLnByZXZpb3VzQnV0dG9uVmlkZW8pLGM9Xy5XRCgoKT0+YS5zZXRzWzBdLm5leHRCdXR0b25WaWRlbyk7cmV0dXJue1VhOmIsbmV4dDpjfX07U1U9ZnVuY3Rpb24oYSxiKXtiPWIoKT8ucnVucz8uWzBdLm5hdmlnYXRpb25FbmRwb2ludDt2YXIgYz1fLkIoYixfLlZEKT8udXJsO2EoKS5IPy5pc0VtYmVkc1Nob3J0c01vZGU/LigpJiZjJiZjLmluY2x1ZGVzKCIvd2F0Y2g/dj0iKSYmKF8uQihiLF8uVkQpLnVybD1jLnJlcGxhY2UoIi93YXRjaD92PSIsIi9zaG9ydHMvIikpO3JldHVybiBifTsKVVU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIiLGU9IiI7c3dpdGNoKGEpe2Nhc2UgLTE6Y2FzZSAwOmQ9Yj8iVk9MVU1FX09GRiI6Yz8iVk9MVU1FX09GRl9ERUxISV9QTEFZRVIiOiJWT0xVTUVfT0ZGX0ZJTExFRCI7ZT1PbGE7YnJlYWs7Y2FzZSAxOmQ9Yj8iVk9MVU1FX1VQX09VVExJTkUiOmM/IlZPTFVNRV9VUF9ERUxISV9QTEFZRVJfRklMTEVEIjoiVk9MVU1FX1VQX0ZJTExFRCI7ZT1UVTticmVhaztjYXNlIDI6ZD1iPyJWT0xVTUVfRE9XTl9PVVRMSU5FIjpjPyJWT0xVTUVfRE9XTl9ERUxISV9QTEFZRVJfRklMTEVEIjoiVk9MVU1FX0RPV05fRklMTEVEIjtlPVRVO2JyZWFrO2RlZmF1bHQ6Xy5lYihhLHZvaWQgMCl9cmV0dXJue2ljb25OYW1lOmQsYXJpYUxhYmVsOmV9fTsKUGxhPWZ1bmN0aW9uKGEsYil7dHlwZW9mIFZVPT09Im51bWJlciImJmNsZWFyVGltZW91dChWVSk7VlU9c2V0VGltZW91dCgoKT0+e2EuUyh7WWg6ITF9KTtWVT12b2lkIDB9LF8uQihiLmVuYWJsZWRFZHVDb21tYW5kLFdVKT8uZHVyYXRpb25Nc3x8NEUzKX07WFU9ZnVuY3Rpb24oYSxiLGMpe2EuUyh7YXV0b25hdkVuYWJsZWQ6YixZaDpjfSk7YS50YS5SaihiLGMpfTtZVT1mdW5jdGlvbihhKXtyZXR1cm4gXy5JRSh7ZGlzcGxheTooKT0+YSgpPyIiOiJub25lIn0pfTtRbGE9ZnVuY3Rpb24oYSl7aWYoXy54KCJlbmFibGVfY3VzdG9tX3NjcnViYmVyX3YyIikmJmEpcmV0dXJue3BsYXloZWFkSW1hZ2U6YS5wbGF5aGVhZEltYWdlLHBsYXloZWFkUmV3aW5kSW1hZ2U6YS5wbGF5aGVhZFJld2luZEltYWdlLHBsYXloZWFkRmFzdEZvcndhcmRJbWFnZTphLnBsYXloZWFkRmFzdEZvcndhcmRJbWFnZX19OwpSbGE9ZnVuY3Rpb24oYSl7YT1hPy5nZXRQbGF5ZXJTdGF0ZU9iamVjdD8uKCk7cmV0dXJuKGE/LmlzQ3VlZHx8YT8uaXNVbnN0YXJ0ZWQpJiYhYT8uaXNFcnJvcn07WlU9ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGI9PntiKCl9KTthLmxlbmd0aD0wfTtTbGE9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5pZD0icGxheWVyLWNvbnRyb2xzIjtiLmNsYXNzTGlzdC5hZGQoInl0UGxheWVyQ29udHJvbHNDb250YWluZXJIb3N0Iik7dmFyIFtjLGRdPV8uSih7fSx2b2lkIDAsImJqSklsZCIpO2EuYWRkRXZlbnRMaXN0ZW5lcigib25WaWRlb0RhdGFDaGFuZ2UiLCgpPT57JFUoYSxiLGMsZCl9KTthLmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLCgpPT57JFUoYSxiLGMsZCl9KTtyZXR1cm4gYn07CiRVPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVRsYShhKTtkKGUpO2hqYShiLCFhLmdldFBsYXllclN0YXRlT2JqZWN0KCk/LmlzRXJyb3J8fCEhYVYoZSkpO2IuaGFzQ2hpbGROb2RlcygpfHxfLnhGKGIsKCk9PlVsYShhLGIsYyksIiRlIil9OwpVbGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPV8uTigoKT0+YVYoYygpKSx2b2lkIDAsImRXNThiZCIpLGU9Xy51RihrPT57aWYoIV8ueCgiZW1iZWRzX2VuYWJsZV9lbWMzZHNfcGZwIikpcmV0dXJuITE7dmFyIGw9YygpO3JldHVybihsPWwuamI/LmVtYmVkZGVkUGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllck1vZGU/P2wucGxheWVyUmVzcG9uc2U/LnBsYXllckNvbmZpZz8uZW1iZWRkZWRQbGF5ZXJDb25maWc/LmVtYmVkZGVkUGxheWVyTW9kZSk/bD09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRlAiOmt9LHtpbml0aWFsOiExfSksZj1fLnVGKGs9PntpZighXy54KCJlbWJlZHNfZW5hYmxlX2VtYzNkc19wZmwiKSlyZXR1cm4hMTt2YXIgbD1jKCk7cmV0dXJuKGw9bC5qYj8uZW1iZWRkZWRQbGF5ZXJDb25maWc/LmVtYmVkZGVkUGxheWVyTW9kZT8/bC5wbGF5ZXJSZXNwb25zZT8ucGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllckNvbmZpZz8uZW1iZWRkZWRQbGF5ZXJNb2RlKT8KbD09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiOmt9LHtpbml0aWFsOiExfSksaD1fLk4oKCk9PntpZighXy54KCJlbWJlZHNfZW5hYmxlX3Nob3J0cyIpfHxfLngoImVtYmVkc19lbmFibGVfc2hvcnRzX2NvdW50ZXJmYWN0dWFsIikpcmV0dXJuITE7dmFyIGs9YygpLlBoPy5lbmRwb2ludDtyZXR1cm4hKCFrfHwhXy5CKGssXy5URCkpfSx2b2lkIDAsIldxZ0pyYiIpO18ubkUoKCk9PntfLngoImVtYmVkc19lbmFibGVfc2hvcnRzIikmJihfLngoImVtYmVkc19lbmFibGVfc2hvcnRzX2NvdW50ZXJmYWN0dWFsIil8fChlKCl8fGYoKXx8IWgoKT9hLnNldExvb3BWaWRlbyghMSk6YS5zZXRMb29wVmlkZW8oITApKSl9LCJaZ1V3Z2UiKTtyZXR1cm4gXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+ZCgpfSwoKT0+Xy5LKGJWLHtkYXRhOigpPT5kKCl9KSksXy5LKF8uQ0Use3doZW46ZX0sKCk9Pl8uSyhWbGEse0g6YSxjb250ZXh0OnRrYShhLGIpLGRhdGE6Y30pKSxfLksoXy5DRSwKe3doZW46Zn0sKCk9Pnt2YXIgaz1yUyhhKSxsPWEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpO2w9ey4uLnNTKGwpLFh3OiEwLFl3OiEwfTtyZXR1cm4gXy5LKGNWLHtjb250ZXh0Ont0YTprLGJhOmwsVGM6ZG9jdW1lbnQuYm9keSxHYzpifSxkYXRhOmN9KX0pLF8uSyhfLkNFLHt3aGVuOmh9LCgpPT5fLksoV2xhLHtyZWVsSXRlbVdhdGNoUmVzcG9uc2U6KCk9PmMoKS5yZWVsSXRlbVdhdGNoUmVzcG9uc2UsamI6KCk9PmMoKS5qYixQaDooKT0+YygpLlBoLEg6KCk9PmEsY29udGV4dDpza2EoYSxiKX0pKSxfLksoXy5ERSxudWxsLCgpPT57dmFyIGs9clMoYSksbD1zUyhhLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKSk7cmV0dXJuIF8uSyhjVix7Y29udGV4dDp7dGE6ayxiYTpsLFRjOmRvY3VtZW50LmJvZHksR2M6Yn0sZGF0YTpjfSl9KSl9OwphVj1mdW5jdGlvbihhKXtyZXR1cm4gYS5qYj8ucHJldmlld1BsYXlhYmlsaXR5U3RhdHVzPy5lcnJvclNjcmVlbj8ucGxheWVySW50ZXJzdGl0aWFsUmVuZGVyZXJ8fGEucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzPy5lcnJvclNjcmVlbj8ucGxheWVySW50ZXJzdGl0aWFsUmVuZGVyZXJ9O1RsYT1mdW5jdGlvbihhKXt2YXIgYj1hLmdldFBsYXllclJlc3BvbnNlKCksYz1hLmdldFdhdGNoTmV4dFJlc3BvbnNlKCksZD1hLmdldFJlZWxJdGVtV2F0Y2hSZXNwb25zZSgpLGU9YS5nZXRFbWJlZGRlZFBsYXllclJlc3BvbnNlKCksZj1hLmdldFJlc29sdmVVcmxSZXNwb25zZSgpO3JldHVybntwbGF5ZXJPdmVybGF5UmVuZGVyZXI6Yz8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcixwbGF5ZXJSZXNwb25zZTpiLFBoOmYsd2F0Y2hOZXh0UmVzcG9uc2U6YyxyZWVsSXRlbVdhdGNoUmVzcG9uc2U6ZCxqYjplLEg6YX19OwpfLmRWPWZ1bmN0aW9uKGEpe18uQXEoImVwX2luaXRfcnMiKTt2YXIgYj1kb2N1bWVudC5ib2R5O2E9U2xhKGEpO2IuYXBwZW5kQ2hpbGQoYSk7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmlkPSJib3R0b20tc2hlZXQtd3JhcHBlciI7KDAsXy5JQykoYSxVamEpO2IuYXBwZW5kQ2hpbGQoYSk7Xy5BcSgiZXBfaW5pdF9yZSIpfTtfLmc9RlEucHJvdG90eXBlO18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRlEodGhpcy5sZWZ0LHRoaXMudG9wLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKXy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBfLmVWJiZhIGluc3RhbmNlb2YgXy5lVj9hLng+PXRoaXMubGVmdCYmYS54PD10aGlzLmxlZnQrdGhpcy53aWR0aCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLnRvcCt0aGlzLmhlaWdodDp0aGlzLmxlZnQ8PWEubGVmdCYmdGhpcy5sZWZ0K3RoaXMud2lkdGg+PWEubGVmdCthLndpZHRoJiZ0aGlzLnRvcDw9YS50b3AmJnRoaXMudG9wK3RoaXMuaGVpZ2h0Pj1hLnRvcCthLmhlaWdodH07Xy5nLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF8ubmQodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9O18uZy5jZWlsPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGguY2VpbCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGguY2VpbCh0aGlzLnRvcCk7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Cl8uZy5mbG9vcj1mdW5jdGlvbigpe3RoaXMubGVmdD1NYXRoLmZsb29yKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5mbG9vcih0aGlzLnRvcCk7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLmcucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5nLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBfLmVWJiZhIGluc3RhbmNlb2YgXy5lVj8odGhpcy5sZWZ0Kz1hLngsdGhpcy50b3ArPWEueSk6KHRoaXMubGVmdCs9YSx0eXBlb2YgYj09PSJudW1iZXIiJiYodGhpcy50b3ArPWIpKTtyZXR1cm4gdGhpc307Cl8uZy5zY2FsZT1mdW5jdGlvbihhLGIpe2I9dHlwZW9mIGI9PT0ibnVtYmVyIj9iOmE7dGhpcy5sZWZ0Kj1hO3RoaXMud2lkdGgqPWE7dGhpcy50b3AqPWI7dGhpcy5oZWlnaHQqPWI7cmV0dXJuIHRoaXN9Owp2YXIgdlU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy50b2tlbj1hfXN0YXRpYyBhc3luYyBqYygpe3JldHVybiBuZXcgUHJvbWlzZShhPT57Xy5QbCgpLnRoZW4oYj0+e2I/KHZVLmluc3RhbmNlfHwodlUuaW5zdGFuY2U9bmV3IHZVKGIpKSxhKHZVLmluc3RhbmNlKSk6YSh2b2lkIDApfSl9KX1hc3luYyBnZXQoYSl7aWYoYT1hd2FpdCAoYXdhaXQgR1EodGhpcy50b2tlbikpLmdldCgicHJlZnMiLGEpKXt2YXIgYj0oMCxfLmVsKSgpO3JldHVybiBhLmV4cGlyYXRpb25UaW1lc3RhbXBNczw9Yj92b2lkIDA6YS52YWx1ZX19YXN5bmMgc2V0KGEsYixjPTMxNTM2RTMpe3ZhciBkPSgwLF8uZWwpKCk7YT17a2V5OmEsdmFsdWU6YixleHBpcmF0aW9uVGltZXN0YW1wTXM6ZCtjKjFFM307Yj1hd2FpdCBHUSh0aGlzLnRva2VuKTthd2FpdCBfLm1sKGIsInByZWZzIixhKX1hc3luYyByZW1vdmUoYSl7YXdhaXQgKGF3YWl0IEdRKHRoaXMudG9rZW4pKS5kZWxldGUoInByZWZzIixhKX19LFlRPQpudWxsLGZWPXtTbjp7MUUzOntvdGhlcjoiMEsifSwxRTQ6e290aGVyOiIwMEsifSwxRTU6e290aGVyOiIwMDBLIn0sMUU2OntvdGhlcjoiME0ifSwxRTc6e290aGVyOiIwME0ifSwxRTg6e290aGVyOiIwMDBNIn0sMUU5OntvdGhlcjoiMEIifSwxRTEwOntvdGhlcjoiMDBCIn0sMUUxMTp7b3RoZXI6IjAwMEIifSwxRTEyOntvdGhlcjoiMFQifSwxRTEzOntvdGhlcjoiMDBUIn0sMUUxNDp7b3RoZXI6IjAwMFQifX0sVnM6ezFFMzp7b3RoZXI6IjAgdGhvdXNhbmQifSwxRTQ6e290aGVyOiIwMCB0aG91c2FuZCJ9LDFFNTp7b3RoZXI6IjAwMCB0aG91c2FuZCJ9LDFFNjp7b3RoZXI6IjAgbWlsbGlvbiJ9LDFFNzp7b3RoZXI6IjAwIG1pbGxpb24ifSwxRTg6e290aGVyOiIwMDAgbWlsbGlvbiJ9LDFFOTp7b3RoZXI6IjAgYmlsbGlvbiJ9LDFFMTA6e290aGVyOiIwMCBiaWxsaW9uIn0sMUUxMTp7b3RoZXI6IjAwMCBiaWxsaW9uIn0sMUUxMjp7b3RoZXI6IjAgdHJpbGxpb24ifSwxRTEzOntvdGhlcjoiMDAgdHJpbGxpb24ifSwKMUUxNDp7b3RoZXI6IjAwMCB0cmlsbGlvbiJ9fX0sclI9ZlY7clI9ZlY7dmFyIHFSPXtBRUQ6WzIsImRoIiwiXHUwNjJmLlx1MDYyNS4iXSxBTEw6WzAsIkxlayIsIkxlayJdLEFVRDpbMiwiJCIsIkFVJCJdLEJEVDpbMiwiXHUwOWYzIiwiVGsiXSxCR046WzIsImxldiIsImxldiJdLEJSTDpbMiwiUiQiLCJSJCJdLENBRDpbMiwiJCIsIkMkIl0sQ0RGOlsyLCJGckNEIiwiQ0RGIl0sQ0hGOlsyLCJDSEYiLCJDSEYiXSxDTFA6WzAsIiQiLCJDTCQiXSxDTlk6WzIsIlx1MDBhNSIsIlJNQlx1MDBhNSJdLENPUDpbMzIsIiQiLCJDT0wkIl0sQ1JDOlswLCJcdTIwYTEiLCJDUlx1MjBhMSJdLENaSzpbNTAsIktcdTAxMGQiLCJLXHUwMTBkIl0sREtLOls1MCwia3IuIiwia3IuIl0sRE9QOlsyLCJSRCQiLCJSRCQiXSxFR1A6WzIsIlx1MDBhMyIsIkxFIl0sRVRCOlsyLCJCaXJyIiwiQmlyciJdLEVVUjpbMiwiXHUyMGFjIiwiXHUyMGFjIl0sR0JQOlsyLCJcdTAwYTMiLCJHQlx1MDBhMyJdLEhLRDpbMiwiJCIsIkhLJCJdLEhSSzpbMiwia24iLCJrbiJdLEhVRjpbMzQsCiJGdCIsIkZ0Il0sSURSOlswLCJScCIsIlJwIl0sSUxTOlszNCwiXHUyMGFhIiwiSUxcdTIwYWEiXSxJTlI6WzIsIlx1MjBiOSIsIlJzIl0sSVJSOlswLCJSaWFsIiwiSVJSIl0sSVNLOlswLCJrciIsImtyIl0sSk1EOlsyLCIkIiwiSkEkIl0sSlBZOlswLCJcdTAwYTUiLCJKUFx1MDBhNSJdLEtSVzpbMCwiXHUyMGE5IiwiS1JcdTIwYTkiXSxMS1I6WzIsIlJzIiwiU0xScyJdLExUTDpbMiwiTHQiLCJMdCJdLE1OVDpbMCwiXHUyMGFlIiwiTU5cdTIwYWUiXSxNVlI6WzIsIlJmIiwiTVZSIl0sTVhOOlsyLCIkIiwiTWV4JCJdLE1ZUjpbMiwiUk0iLCJSTSJdLE5PSzpbNTAsImtyIiwiTk9rciJdLFBBQjpbMiwiQi8uIiwiQi8uIl0sUEVOOlsyLCJTLy4iLCJTLy4iXSxQSFA6WzIsIlx1MjBiMSIsIlBIUCJdLFBLUjpbMCwiUnMiLCJQS1JzLiJdLFBMTjpbNTAsInpcdTAxNDIiLCJ6XHUwMTQyIl0sUk9OOlsyLCJST04iLCJST04iXSxSU0Q6WzAsImRpbiIsIlJTRCJdLFJVQjpbNTAsIlx1MjBiZCIsCiJSVUIiXSxTQVI6WzIsIlNBUiIsIlNBUiJdLFNFSzpbNTAsImtyIiwia3IiXSxTR0Q6WzIsIiQiLCJTJCJdLFRIQjpbMiwiXHUwZTNmIiwiVEhCIl0sVFJZOlsyLCJcdTIwYmEiLCJUUlkiXSxUV0Q6WzIsIiQiLCJOVCQiXSxUWlM6WzAsIlRTaCIsIlRTaCJdLFVBSDpbMiwiXHUwNDMzXHUwNDQwXHUwNDNkLiIsIlVBSCJdLFVTRDpbMiwiJCIsIlVTJCJdLFVZVTpbMiwiJCIsIiRVIl0sVk5EOls0OCwiXHUyMGFiIiwiVk5cdTIwYWIiXSxZRVI6WzAsIlJpYWwiLCJSaWFsIl0sWkFSOlsyLCJSIiwiWkFSIl19O3ZhciBnVjsKZ1Y9e0RBWTp7TE9ORzoib25leyMgZGF5fW90aGVyeyMgZGF5c30iLFNIT1JUOiJvbmV7IyBkYXl9b3RoZXJ7IyBkYXlzfSIsTkFSUk9XOiJvbmV7I2R9b3RoZXJ7I2R9In0sSE9VUjp7TE9ORzoib25leyMgaG91cn1vdGhlcnsjIGhvdXJzfSIsU0hPUlQ6Im9uZXsjIGhyfW90aGVyeyMgaHJ9IixOQVJST1c6Im9uZXsjaH1vdGhlcnsjaH0ifSxNSU5VVEU6e0xPTkc6Im9uZXsjIG1pbnV0ZX1vdGhlcnsjIG1pbnV0ZXN9IixTSE9SVDoib25leyMgbWlufW90aGVyeyMgbWlufSIsTkFSUk9XOiJvbmV7I219b3RoZXJ7I219In0sTU9OVEg6e0xPTkc6Im9uZXsjIG1vbnRofW90aGVyeyMgbW9udGhzfSIsU0hPUlQ6Im9uZXsjIG10aH1vdGhlcnsjIG10aHN9IixOQVJST1c6Im9uZXsjbX1vdGhlcnsjbX0ifSxTRUNPTkQ6e0xPTkc6Im9uZXsjIHNlY29uZH1vdGhlcnsjIHNlY29uZHN9IixTSE9SVDoib25leyMgc2VjfW90aGVyeyMgc2VjfSIsTkFSUk9XOiJvbmV7I3N9b3RoZXJ7I3N9In0sV0VFSzp7TE9ORzoib25leyMgd2Vla31vdGhlcnsjIHdlZWtzfSIsClNIT1JUOiJvbmV7IyB3a31vdGhlcnsjIHdrc30iLE5BUlJPVzoib25leyN3fW90aGVyeyN3fSJ9LFlFQVI6e0xPTkc6Im9uZXsjIHllYXJ9b3RoZXJ7IyB5ZWFyc30iLFNIT1JUOiJvbmV7IyB5cn1vdGhlcnsjIHlyc30iLE5BUlJPVzoib25leyN5fW90aGVyeyN5fSJ9fTt2YXIgaFY9e0NlOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSwgezF9Il0sUm46WyJ7MH0gYW5kIHsxfSIsInswfSAmIHsxfSIsInswfSwgezF9Il0sbWs6WyJ7MH0sIGFuZCB7MX0iLCJ7MH0sICYgezF9IiwiezB9LCB7MX0iXSxpbzpbInswfSBvciB7MX0iLCJ7MH0gb3IgezF9IiwiezB9IG9yIHsxfSJdLHhrOlsiezB9LCBvciB7MX0iLCJ7MH0sIG9yIHsxfSIsInswfSwgb3IgezF9Il0scm86WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9IHsxfSJdLHFvOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSB7MX0iXSxBazpbInswfSwgezF9IiwiezB9LCB7MX0iLCJ7MH0gezF9Il19OwpoVj17Q2U6WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9LCB7MX0iXSxSbjpbInswfSBhbmQgezF9IiwiezB9ICYgezF9IiwiezB9LCB7MX0iXSxtazpbInswfSwgYW5kIHsxfSIsInswfSwgJiB7MX0iLCJ7MH0sIHsxfSJdLGlvOlsiezB9IG9yIHsxfSIsInswfSBvciB7MX0iLCJ7MH0gb3IgezF9Il0seGs6WyJ7MH0sIG9yIHsxfSIsInswfSwgb3IgezF9IiwiezB9LCBvciB7MX0iXSxybzpbInswfSwgezF9IiwiezB9LCB7MX0iLCJ7MH0gezF9Il0scW86WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9IHsxfSJdLEFrOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSB7MX0iXX07dmFyIFhsYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3ZhciBhPXt0eXBlOiJ1bml0IixzdHlsZToibmFycm93In07dGhpcy5JPWEmJmEudHlwZT9hLnR5cGU6ImNvbmp1bmN0aW9uIjt0aGlzLks9YSYmYS5zdHlsZT9hLnN0eWxlOiJsb25nIjt0aGlzLmo9aFY7YT0wO3N3aXRjaCh0aGlzLkspe2Nhc2UgInNob3J0IjphPTE7YnJlYWs7Y2FzZSAibmFycm93IjphPTJ9c3dpdGNoKHRoaXMuSSl7Y2FzZSAiY29uanVuY3Rpb24iOnRoaXMuQj10aGlzLmouQ2VbYV07dGhpcy5EPSh0aGlzLmouUm58fHRoaXMuai5taylbYV07dGhpcy52PSh0aGlzLmouakN8fHRoaXMuai5DZSlbYV07dGhpcy5vPXRoaXMuai5ta1thXTticmVhaztjYXNlICJkaXNqdW5jdGlvbiI6dGhpcy5CPSh0aGlzLmouUUZ8fHRoaXMuai5DZSlbYV07dGhpcy5EPSh0aGlzLmouaW98fHRoaXMuai54aylbYV07dGhpcy52PSh0aGlzLmouUEZ8fHRoaXMuai5DZSlbYV07dGhpcy5vPXRoaXMuai54a1thXTticmVhaztjYXNlICJ1bml0Ijp0aGlzLkI9Cih0aGlzLmoucm98fHRoaXMuai5DZSlbYV0sdGhpcy5EPSh0aGlzLmouQUh8fHRoaXMuai5BaylbYV0sdGhpcy52PSh0aGlzLmoucW98fHRoaXMuai5DZSlbYV0sdGhpcy5vPXRoaXMuai5Ba1thXX19Zm9ybWF0KGEpe3JldHVybiB4amEodGhpcyxhKX19O3ZhciBpUj17YXI6ImxhdG4iLCJhci1FRyI6ImFyYWIiLGJuOiJiZW5nIixmYToiYXJhYmV4dCIsbXI6ImRldmEiLG15OiJteW1yIixuZToiZGV2YSJ9O3ZhciBpVj17Vm46Ii4iLHJrOiIsIixqbzoiJSIsQms6IjAiLFd0OiIrIixhbzoiLSIsWW46IkUiLGtvOiJcdTIwMzAiLHNrOiJcdTIyMWUiLEJ0OiJOYU4iLGd0OiIjLCMjMC4jIyMiLHpHOiIjRTAiLFNGOiIjLCMjMCUiLEZDOiJcdTAwYTQjLCMjMC4wMCIsV246IlVTRCJ9LGRSPWlWO2RSPWlWO3ZhciBlUj1JbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoWyJlbi1VUyIucmVwbGFjZSgiXyIsIi0iKV0pLmxlbmd0aD4wLGpSPSExOwpoUi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oYSxiKXtiPWJ8fFswXTtpZih0aGlzLm9hIT09MCl0aHJvdyBFcnJvcigiT2QiKTthPWEucmVwbGFjZSgvIHxcdTIwMmYvZywiXHUwMGEwIik7dmFyIGM9YS5pbmRleE9mKHRoaXMuTSxiWzBdKT09YlswXSxkPWEuaW5kZXhPZih0aGlzLkQsYlswXSk9PWJbMF07YyYmZCYmKHRoaXMuTS5sZW5ndGg+dGhpcy5ELmxlbmd0aD9kPSExOnRoaXMuTS5sZW5ndGg8dGhpcy5ELmxlbmd0aCYmKGM9ITEpKTtjP2JbMF0rPXRoaXMuTS5sZW5ndGg6ZCYmKGJbMF0rPXRoaXMuRC5sZW5ndGgpO2lmKGEuaW5kZXhPZihkUi5zayxiWzBdKT09YlswXSl7YlswXSs9ZFIuc2subGVuZ3RoO3ZhciBlPUluZmluaXR5fWVsc2V7ZT1hO2xldCBmPSExLGg9ITEsaz0hMSxsPS0xLG09MSxuPWRSLlZuLHA9ZFIucmsscj1kUi5ZbjtpZih0aGlzLm9hIT0wKXRocm93IEVycm9yKCJQZCIpO3A9cC5yZXBsYWNlKC9cdTIwMmYvZywiXHUwMGEwIik7bGV0IHQ9IiI7Zm9yKDtiWzBdPAplLmxlbmd0aDtiWzBdKyspe2xldCB2PWUuY2hhckF0KGJbMF0pLHo9cFIodik7aWYoej49MCYmejw9OSl0Kz16LGs9ITA7ZWxzZSBpZih2PT1uLmNoYXJBdCgwKSl7aWYoZnx8aClicmVhazt0Kz0iLiI7Zj0hMH1lbHNlIGlmKHY9PXAuY2hhckF0KDApJiYoIlx1MDBhMCIhPXAuY2hhckF0KDApfHxiWzBdKzE8ZS5sZW5ndGgmJnBSKGUuY2hhckF0KGJbMF0rMSkpPj0wKSl7aWYoZnx8aClicmVha31lbHNlIGlmKHY9PXIuY2hhckF0KDApKXtpZihoKWJyZWFrO3QrPSJFIjtoPSEwO2w9YlswXX1lbHNlIGlmKHY9PSIrInx8dj09Ii0iKXtpZihrJiZsIT1iWzBdLTEpYnJlYWs7dCs9dn1lbHNlIGlmKHRoaXMudj09MSYmdj09ZFIuam8uY2hhckF0KDApKXtpZihtIT0xKWJyZWFrO209MTAwO2lmKGspe2JbMF0rKzticmVha319ZWxzZSBpZih0aGlzLnY9PTEmJnY9PWRSLmtvLmNoYXJBdCgwKSl7aWYobSE9MSlicmVhazttPTFFMztpZihrKXtiWzBdKys7YnJlYWt9fWVsc2UgYnJlYWt9dGhpcy52IT0KMSYmKG09dGhpcy52KTtlPXBhcnNlRmxvYXQodCkvbX1pZihjKXtpZihhLmluZGV4T2YodGhpcy5nYSxiWzBdKSE9YlswXSlyZXR1cm4gTmFOO2JbMF0rPXRoaXMuZ2EubGVuZ3RofWVsc2UgaWYoZCl7aWYoYS5pbmRleE9mKHRoaXMuVSxiWzBdKSE9YlswXSlyZXR1cm4gTmFOO2JbMF0rPXRoaXMuVS5sZW5ndGh9cmV0dXJuIGQ/LWU6ZX07CmhSLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7aWYodGhpcy5CPnRoaXMuail0aHJvdyBFcnJvcigiU2QiKTtpZihlUiYmdGhpcy5LKXsodGhpcy5LLmZvcm1hdD09bnVsbHx8dGhpcy5RYXx8dGhpcy5NYXx8dGhpcy5WZHx8alIpJiZmUih0aGlzKTtpZihNYXRoLmFicyhhKTwxJiZ0aGlzLmhhPnRoaXMuail7dmFyIGI9TWF0aC5wb3coMTAsdGhpcy5qKTthPU1hdGgucm91bmQoTWF0aC5hYnMoYSkqYikqTWF0aC5zaWduKGEpL2J9dGhpcy5LLnJlc29sdmVkT3B0aW9ucygpO3JldHVybiB0aGlzLksuZm9ybWF0KGEpfWlmKGlzTmFOKGEpKXJldHVybiBkUi5CdDtiPVtdO3ZhciBjPWE7aWYodGhpcy5vYT09MCljPXNSO2Vsc2V7Yz1NYXRoLmFicyhjKTt2YXIgZD10Uih0aGlzLGM8PTE/MDp1UihjKSkucGw7Yz10Uih0aGlzLGQrdVIobVIodGhpcyxrUihjLC1kKSkuaW50VmFsdWUpKX1hPWtSKGEsLWMucGwpOyhkPWE8MHx8YT09MCYmMS9hPDApP2Mud20/Yi5wdXNoKGMud20pOgooYi5wdXNoKGMucHJlZml4KSxiLnB1c2godGhpcy5EKSk6KGIucHVzaChjLnByZWZpeCksYi5wdXNoKHRoaXMuTSkpO2lmKGlzRmluaXRlKGEpKWlmKGEqPWQ/LTE6MSxhKj10aGlzLnYsdGhpcy5GYSl7dmFyIGU9YTtpZihlPT0wKW5SKHRoaXMsZSx0aGlzLm8sYiksb1IodGhpcywwLGIpO2Vsc2V7dmFyIGY9TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLmxvZygxMCkrMkUtMTUpO2U9a1IoZSwtZik7dmFyIGg9dGhpcy5vO3RoaXMuWj4xJiZ0aGlzLlo+dGhpcy5vPyhoPWYldGhpcy5aLGg8MCYmKGg9dGhpcy5aK2gpLGU9a1IoZSxoKSxmLT1oLGg9MSk6dGhpcy5vPDE/KGYrKyxlPWtSKGUsLTEpKTooZi09dGhpcy5vLTEsZT1rUihlLHRoaXMuby0xKSk7blIodGhpcyxlLGgsYik7b1IodGhpcyxmLGIpfX1lbHNlIG5SKHRoaXMsYSx0aGlzLm8sYik7ZWxzZSBiLnB1c2goZFIuc2spO2Q/Yy54bT9iLnB1c2goYy54bSk6KGlzRmluaXRlKGEpJiZiLnB1c2goYy5zdWZmaXgpLGIucHVzaCh0aGlzLlUpKToKKGlzRmluaXRlKGEpJiZiLnB1c2goYy5zdWZmaXgpLGIucHVzaCh0aGlzLmdhKSk7cmV0dXJuIGIuam9pbigiIil9O3ZhciB5amE9IjAiLmNvZGVQb2ludEF0KDApLHNSPXtwbDowLHdtOiIiLHhtOiIiLHByZWZpeDoiIixzdWZmaXg6IiJ9O3ZhciBqVixCamE9alY9alY9emphO3ZhciBrVixDUj1rVj1rVj1BamE7dmFyIHdSPW51bGwseFI9bnVsbCx5Uj1udWxsLERqYT1SZWdFeHAoIicoW3t9I10uKj8pJyIsImciKSxDamE9UmVnRXhwKCInJyIsImciKTt6Ui5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKGEpe2lmKHRoaXMudil7dGhpcy5EPVtdO3ZhciBiPUVqYSh0aGlzLHRoaXMudik7dGhpcy5vPUhSKHRoaXMsYik7dGhpcy52PW51bGx9aWYodGhpcy5vJiZ0aGlzLm8ubGVuZ3RoIT0wKWZvcih0aGlzLmo9Xy55Yih0aGlzLkQpLGI9W10sQVIodGhpcyx0aGlzLm8sYSwhMSxiKSxhPWIuam9pbigiIik7dGhpcy5qLmxlbmd0aD4wOylhPWEucmVwbGFjZSh0aGlzLkIodGhpcy5qKSxTdHJpbmcodGhpcy5qLnBvcCgpKS5yZXBsYWNlKCIkIiwiJCQkJCIpKTtlbHNlIGE9IiI7cmV0dXJuIGF9O3ZhciBFUj0vXlxzKihcdyspXHMqLFxzKnBsdXJhbFxzKiwoPzpccypvZmZzZXQ6KFxkKykpPy8sRlI9L15ccyooXHcrKVxzKixccypzZWxlY3RvcmRpbmFsXHMqLC8sR1I9L15ccyooXHcrKVxzKixccypzZWxlY3RccyosLzsKelIucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7cmV0dXJuIlx1ZmRkZl8iKyhhLmxlbmd0aC0xKS50b1N0cmluZygxMCkrIl8ifTt2YXIgVGphPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPVlsYXx8Z1Z9Zm9ybWF0KGEpe3ZhciBiPVtdLGM9YS55ZWFycyxkPWEubW9udGhzLGU9YS53ZWVrcyxmPWEuZGF5cyxoPWEuaG91cnMsaz1hLm1pbnV0ZXM7YT1hLnNlY29uZHM7YyE9bnVsbCYmYi5wdXNoKElSKHRoaXMsYywieWVhcnMiKSk7ZCE9bnVsbCYmYi5wdXNoKElSKHRoaXMsZCwibW9udGhzIikpO2UhPW51bGwmJmIucHVzaChJUih0aGlzLGUsIndlZWtzIikpO2YhPW51bGwmJmIucHVzaChJUih0aGlzLGYsImRheXMiKSk7aCE9bnVsbCYmYi5wdXNoKElSKHRoaXMsaCwiaG91cnMiKSk7ayE9bnVsbCYmYi5wdXNoKElSKHRoaXMsaywibWludXRlcyIpKTthIT1udWxsJiZiLnB1c2goSVIodGhpcyxhLCJzZWNvbmRzIikpO3JldHVybihuZXcgWGxhKS5mb3JtYXQoYil9fTsvKgoKIE1JVCBMaWNlbnNlCgogQ29weXJpZ2h0IChjKSAyMDE3IEFsZXhhbmRlciBSZWFyZG9uCgogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFCiovCnZhciBabGE9KGEsYik9PntpZihhLmxlbmd0aCE9PWIubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7KytjKWlmKGFbY10hPT1iW2NdKXJldHVybiExO3JldHVybiEwfTt2YXIgbFY9bmV3IF8uSSgid2F0Y2hPbllvdXR1YmVCdXR0b25WaWV3TW9kZWwiKTt2YXIgRWthPW5ldyBfLkkoImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc1JlbmRlcmVyIiksbVY9bmV3IF8uSSgiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzQ29sbGFwc2VkUmVuZGVyZXIiKSxuVj1uZXcgXy5JKCJlbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNFeHBhbmRlZFJlbmRlcmVyIik7dmFyIE9TPW5ldyBfLkkoImVtYmVkc0luZm9QYW5lbFJlbmRlcmVyIik7dmFyICRsYT1uZXcgXy5JKCJtb2JpbGVUb3BiYXJSZW5kZXJlciIpO3ZhciBhbWE9bmV3IF8uSSgiY2FsbFRvQWN0aW9uQnV0dG9uVmlld01vZGVsIik7dmFyIGJtYT1uZXcgXy5JKCJpbnRlcnN0aXRpYWxWaWV3TW9kZWwiKTt2YXIgZGxhPW5ldyBfLkkoImNpbmVtYXRpY0NvbnRhaW5lclJlbmRlcmVyIik7dmFyIGprYT1uZXcgXy5JKCJ2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbCIpO3ZhciBEa2E9bmV3IF8uSSgiZnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsIik7dmFyIG9WPW5ldyBfLkkoInBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXIiKSxwVj1uZXcgXy5JKCJwbGF5ZXJNdXRlZEF1dG9wbGF5RW5kU2NyZWVuUmVuZGVyZXIiKTt2YXIgS1M9bmV3IF8uSSgicXVpY2tBY3Rpb25zVmlld01vZGVsIik7dmFyIGNtYT1uZXcgXy5JKCJyZWVsUGxheWVyT3ZlcmxheVZpZXdNb2RlbCIpO3ZhciBBbGE9bmV3IF8uSSgiY29uZmlybURpYWxvZ1JlbmRlcmVyIik7dmFyIG1sYT1uZXcgXy5JKCJib3R0b21TaGVldE92ZXJsYXlSZW5kZXJlciIpO3ZhciBkbWE9bmV3IF8uSSgiZGlhbG9nSGVhZGVyVmlld01vZGVsIik7dmFyIGVtYT1uZXcgXy5JKCJkaWFsb2dWaWV3TW9kZWwiKTt2YXIgV1U9bmV3IF8uSSgicGxheWVyVG9hc3RDb21tYW5kIik7dmFyIHZrYT1uZXcgXy5JKCJhdXRvcGxheVN3aXRjaEJ1dHRvblJlbmRlcmVyIik7dmFyIHhrYT1uZXcgXy5JKCJkZWNvcmF0ZWRQbGF5ZXJCYXJSZW5kZXJlciIpLERTPW5ldyBfLkkoIm11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyIiksZVQ9bmV3IF8uSSgiY2hhcHRlclJlbmRlcmVyIik7dmFyIHlrYT1uZXcgXy5JKCJkZWNvcmF0ZWRQbGF5aGVhZFJlbmRlcmVyIik7dmFyIEFrYT1uZXcgXy5JKCJmdWxsc2NyZWVuRW5nYWdlbWVudE92ZXJsYXlSZW5kZXJlciIpLEJrYT1uZXcgXy5JKCJmdWxsc2NyZWVuRW5nYWdlbWVudEFjdGlvbkJhclJlbmRlcmVyIiksZm1hPW5ldyBfLkkoImZ1bGxzY3JlZW5FbmdhZ2VtZW50QWN0aW9uQmFyU2F2ZUJ1dHRvblJlbmRlcmVyIik7dmFyIGdtYT1uZXcgXy5JKCJoZWF0TWFya2VyUmVuZGVyZXIiKTt2YXIgd2thPW5ldyBfLkkoImhlYXRtYXBSZW5kZXJlciIpO3ZhciBxVj1uZXcgXy5JKCJ0aW1lZE1hcmtlckRlY29yYXRpb25SZW5kZXJlciIpO3ZhciBobWE9WyJlbi1DQSIsImVuIiwiZXMtTVgiLCJmci1DQSJdO3ZhciByVjtyVj17YnJvd3NlRW5kcG9pbnQ6e2Jyb3dzZUlkOiJGRXdoYXRfdG9fd2F0Y2gifSxjb21tYW5kTWV0YWRhdGE6e3dlYkNvbW1hbmRNZXRhZGF0YTp7dXJsOiIvIixyb290VmU6Mzg1NCx3ZWJQYWdlVHlwZToiV0VCX1BBR0VfVFlQRV9CUk9XU0UifX19O3ZhciBLUj0hMTt2YXIgS2phPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5vPXRoaXMuaj0wO3RoaXMuaj1iLngtYS54O3RoaXMubz1iLnktYS55fX07dmFyICRUPV8uZ3Uodm9pZCAwLCJCREVxSmIiKTt2YXIgc1Y9d2luZG93LFo9c1YuR0h8fCJlbi1VUyIsU2phPXNWLkhIfHxDUixZbGE9c1YuRkh8fGdWO3ZhciBRUjt2YXIgdWthPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuSD1hfXRvZ2dsZUZ1bGxzY3JlZW4oKXt0aGlzLkgudG9nZ2xlRnVsbHNjcmVlbigpfWV4aXRGdWxsc2NyZWVuKCl7dGhpcy5pc0Z1bGxzY3JlZW4oKSYmdGhpcy50b2dnbGVGdWxsc2NyZWVuKCl9aXNGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuSC5pc0Z1bGxzY3JlZW4oKX19O3ZhciBUUj1fLkwoKHt0YTphfSk9Pl8uSyhfLmZKLHtkYXRhOigpPT57dmFyIGI9Y1Ioe3RpdGxlOl8uSVAoXy4kTi5uayksa2w6YSgpLmRlKCksaWNvblR5cGU6IkFVVE9QTEFZIixFazpfLiROLm5rLERrOl8uJE4ubmt9KTtyZXR1cm4gXy5CKGIsXy5NUCl9LG9uVGFwOmZ1bmN0aW9uKGIpe3ZhciBjPSFhKCkuZGUoKTthKCkuUmooYywhMCk7Yi5zdG9wUHJvcGFnYXRpb24oKTtfLlhNKCJwZnAtYXV0b25hdi11cGRhdGUiLHthdXRvbmF2RW5hYmxlZDpjfSl9fSksIlliIik7VFIuaWRvbUNvbXBhdD0hMDt2YXIgaW1hPV8uJE4uYXUsY1M9Xy5MKCgpPT57dmFyIGE9KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChpbWEpLGljb25UeXBlOiJQRVJTT05fQ0lSQ0xFIn0pLF8uWkMpO3JldHVybiBfLksoXy5DRCx7ZGF0YTphLElhOiEwLG9uVGFwOigpPT57dmFyIGI9Xy5LTygpP18uRk8oIi8veW91dHViZS5jb20vc2lnbmluIiwibmV4dCIsIi9zaWduaW4/YWN0aW9uX2Nsb3NlX3RhYj10cnVlIik6Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfRU1CRURERURfUExBWUVSIj9fLkZPKCIvL3lvdXR1YmUuY29tL3NpZ25pbiIsIm5leHQiLCIvcG9zdF9sb2dpbiIpOl8uRk8oIi8veW91dHViZS5jb20vc2lnbmluIiwibmV4dCIsbG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uc2VhcmNoKTtfLkFKKHtzaWduSW5FbmRwb2ludDp7fSxjb21tYW5kTWV0YWRhdGE6e3dlYkNvbW1hbmRNZXRhZGF0YTp7dXJsOmJ9fX0sYSgpLCExKX19KX0sIlpiIik7Y1MuaWRvbUNvbXBhdD0hMDt2YXIgam1hPV8uJE4uV3Msa21hPV8uJE4uWXMsbG1hPV8uJE4uVG4sVmphPV8uTCgoe2Z2OmF9KT0+e3ZhciBiPSJjb3B5LWRlYnVnLWluZm8tdGV4dGFyZWEiK18uT0goKTtyZXR1cm4gXy5LKF8uckUse1FnOigpPT5fLksoXy5BUCxudWxsLGxtYSkscWs6KCk9Pl8uSygidGV4dGFyZWEiLHtjbGFzczoiY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbyIsaWQ6Yn0sYSksRXo6KCk9Pl8uSyhfLnpQLG51bGwsXy5LKF8uSksse2RhdGE6e2J1dHRvblRleHQ6am1hLHN0eWxlOiJtb25vIix0eXBlOiJ0ZXh0IixzdGF0ZToiYWN0aXZlIixzaXplOiJNIixvblRhcDooKT0+e18ueSgpLnJlc29sdmUoXy55UCkubGQoKX19fSkpLFByOigpPT5fLksoXy56UCxudWxsLF8uSyhfLkpLLHtkYXRhOntidXR0b25UZXh0OmttYSxzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSIsb25UYXA6KCk9PntfLnNQKGIpO18ueSgpLnJlc29sdmUoXy55UCkubGQoKX19fSkpfSl9LAoiJGIiKTt2YXIgbW1hPV8uJE4uVG4sJFI9Xy5MKCh7SDphfSk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoYlIoe3RpdGxlOl8uSVAobW1hKSxpY29uVHlwZToiQlVHX1JFUE9SVCJ9KSxfLlpDKSxJYTohMCxvblRhcDooKT0+e1dqYShhKCkpfX0pLCJhYyIpOyRSLmlkb21Db21wYXQ9ITA7dmFyIG5tYT1fLiROLlpzLFpSPV8uTCgoe0g6YX0pPT5fLksoXy5DRCx7ZGF0YTooKT0+Xy5CKGJSKHt0aXRsZTpfLklQKG5tYSksaWNvblR5cGU6IkNPREUifSksXy5aQyksSWE6ITAsb25UYXA6KCk9Pnt2YXIgYj1hKCkuZ2V0VmlkZW9FbWJlZENvZGUoKTtiJiZiJiZ3aW5kb3cubmF2aWdhdG9yPy5jbGlwYm9hcmQmJndpbmRvdy5uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChiKX19KSwiYmMiKTtaUi5pZG9tQ29tcGF0PSEwO3ZhciBvbWE9Xy4kTi5idCxwbWE9Xy4kTi5mdCxXUj1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChvbWEpLGljb25UeXBlOiJMSU5LIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57UlIoYSgpLCExKX19KSwiY2MiKTtXUi5pZG9tQ29tcGF0PSEwO3ZhciBZUj1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChwbWEpLGljb25UeXBlOiJMSU5LIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57UlIoYSgpLCEwKX19KSwiZGMiKTtZUi5pZG9tQ29tcGF0PSEwO3ZhciB0Vj1fLiROLnV0LFZSPV8uTCgoe0g6YX0pPT5fLksoXy5mSix7ZGF0YTooKT0+e3ZhciBiPWNSKHt0aXRsZTpfLklQKHRWKSxrbDphKCkuZ2V0TG9vcFZpZGVvKCksRWs6dFYsRGs6dFYsaWNvblR5cGU6IkxPT1AifSk7cmV0dXJuIF8uQihiLF8uTVApfSxvblRhcDpiPT57YSgpLnNldExvb3BWaWRlbyghYSgpLmdldExvb3BWaWRlbygpKTtiLnN0b3BQcm9wYWdhdGlvbigpfX0pLCJlYyIpO1ZSLmlkb21Db21wYXQ9ITA7dmFyIFVSPV8uTCgoe0g6YX0pPT5fLksoInN0YWJsZS12b2x1bWUtdG9nZ2xlIix7Y2xhc3M6InN0YWJsZVZvbHVtZVRvZ2dsZUhvc3QifSxfLksoXy5mSix7ZGF0YTooKT0+Xy5CKGNSKHt0aXRsZTpfLklQKF8uJE4ueWspLGtsOmEoKS5oYXNEcmNBdWRpb1RyYWNrKCkmJmEoKS5nZXREcmNVc2VyUHJlZmVyZW5jZSgpPT09MSxpY29uVHlwZToiVk9MVU1FX1NUQUJMRSIsRWs6Xy4kTi55ayxEazpfLiROLnlrLGlzRGlzYWJsZWQ6IWEoKS5oYXNEcmNBdWRpb1RyYWNrKCl9KSxfLk1QKSxvblRhcDpmdW5jdGlvbihiKXthKCkuc2V0RHJjVXNlclByZWZlcmVuY2UoYSgpLmhhc0RyY0F1ZGlvVHJhY2soKSYmYSgpLmdldERyY1VzZXJQcmVmZXJlbmNlKCk9PT0xPzA6MSk7Yi5zdG9wUHJvcGFnYXRpb24oKX19KSksImZjIik7VVIuaWRvbUNvbXBhdD0hMDt2YXIgcW1hPV8uJE4uYnUsYlM9Xy5MKCh7SDphfSk9Pnt2YXIgYj0oKT0+Xy5CKGJSKHt0aXRsZTpfLklQKHFtYSksaWNvblR5cGU6IklORk8ifSksXy5aQyk7cmV0dXJuIF8uSyhfLk8se0E6KCk9PiEhYSgpLmdldFZpZGVvRGF0YSx0aGVuOigpPT5fLksoXy5DRCx7ZGF0YTpiLElhOiEwLG9uVGFwOigpPT57dmFyIGM9YSgpOyFjLmdldFZpZGVvRGF0YXx8KGMuaXNWaWRlb0luZm9WaXNpYmxlKCk/Yy5oaWRlVmlkZW9JbmZvKCk6Yy5zaG93VmlkZW9JbmZvKCkpfX0pfSl9LCJnYyIpO2JTLmlkb21Db21wYXQ9ITA7dmFyIHJtYT1fLiROLmR1LGFTPV8uTCgoe0g6YX0pPT5fLksoXy5DRCx7ZGF0YTooKT0+Xy5CKGJSKHt0aXRsZTpfLklQKHJtYSksaWNvblR5cGU6IlFVRVNUSU9OX0NJUkNMRSJ9KSxfLlpDKSxJYTohMCxvblRhcDooKT0+e2EoKS5yZXBvcnRQbGF5YmFja0lzc3VlJiYoYSgpLnJlcG9ydFBsYXliYWNrSXNzdWUoKSxfLnFQKHtocmVmOiJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS95b3V0dWJlLz9wPXJlcG9ydF9wbGF5YmFjayJ9KSl9fSksImhjIik7YVMuaWRvbUNvbXBhdD0hMDt2YXIgc21hPV8uJE4ud3Qsb1M9Xy5MKCh7SDphLG9oOmIsdGE6Yyx0QTpkfSk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoYlIoe3RpdGxlOl8uSVAoc21hKSxpY29uVHlwZToiT1VUTElORV9PVkVSRkxPV19IT1JJWk9OVEFMXzMyIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57WGphKGEoKSxiKCksYz8uKCksZD8uKCkpfX0pLCJpYyIpO29TLmlkb21Db21wYXQ9ITA7dmFyIGdrYT1fLiROLm1vLFlqYT1fLiROLm5vLFpqYT1fLiROLlR0LGZrYT1fLiROLlJ0LGVrYT1fLiROLlN0LGhrYT1fLiROLlh0LGFrYT1bNTAsMTAwLDEyNSwxNTAsMTc1LDIwMF0sJGphPVsxMDAsMTI1LDE1MCwxNzUsMjAwLDMwMF0sY2thPVs1MCwxMDAsMTI1LDE1MCwyMDBdLGJrYT1bMTAwLDEyNSwxNTAsMjAwLDMwMF0saFM7dmFyIHRtYT1fLiROLm1vLHVtYT1fLiROLm5vLG1TPV8uTCgoe0g6YX0pPT57dmFyIGI9KCk9Pnt2YXIgZD1hKCk/LmdldFBsYXliYWNrUmF0ZSgpLGU9Xy5hQSgiUExBWUJBQ0tfU1BFRURfWCIse3NwZWVkX3JhdGVfcGxhY2Vob2xkZXI6YCR7ZH1gfSk7cmV0dXJuIF8uQihiUih7dGl0bGU6Xy5JUCh0bWEpLHNlbGVjdGlvblRleHQ6Xy5JUChkPT09MT91bWE6ZSksaWNvblR5cGU6IlBMQVlfQVJST1dfSEFMRl9DSVJDTEUifSksXy5aQyl9LGM9KCk9Pntra2EoYSgpKX07cmV0dXJuIF8uSyhfLk8se0E6KCk9PiEhYSgpPy5nZXRQbGF5YmFja1JhdGUoKSx0aGVuOigpPT5fLksoXy5DRCx7ZGF0YTpiLElhOiEwLG9uVGFwOmN9KX0pfSwiamMiKTttUy5pZG9tQ29tcGF0PSEwO3ZhciB2bWE9Xy4kTi5OcyxuUz1fLkwoKCk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTpfLklQKHZtYSksbGlzdEl0ZW1JY29uQWZ0ZXJTZWxlY3Rpb25UZXh0OiJMSVNUX0lURU1fSUNPTl9BRlRFUl9TRUxFQ1RJT05fVEVYVF9ERUZBVUxUIixsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOiJQRVJTT05fUkFEQVIifX1dfSxlbnRpdHlLZXk6IkVpb3ZlVzkxZEhWaVpTOWhjSEF2Y0d4aGVXVnlYMkYxWkdsdlgzUnlZV05yWDJWdWRHbDBlVjlyWlhrZ19nSW9BUSUzRCUzRCIsZW50aXR5U2VsZWN0b3JUeXBlOiJMSVNUX0lURU1fVklFV19NT0RFTF9FTlRJVFlfU0VMRUNUT1JfVFlQRV9BVURJT19UUkFDS19TRUxFQ1RJT05fVEVYVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOlt7c2hvd0F1ZGlvVHJhY2tQaWNrZXJBY3Rpb25Db21tYW5kOnt9fV19fX19fX19LApfLlpDKSxJYTohMH0pLCJrYyIpO25TLmlkb21Db21wYXQ9ITA7dmFyIHdtYT1fLiROLkV0LHhtYT1fLiROLkZ0LHBrYT1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYj1hKCk/LmdldE9wdGlvbigiY2FwdGlvbnMiLCJ0cmFjayIpLGM9dHlwZW9mIGI/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U9PT0ib2JqZWN0IiYmYi50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fGI/LmRpc3BsYXlOYW1lfHwiIjtyZXR1cm4gXy5CKHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6Xy5JUCh3bWEpLGxpc3RJdGVtSWNvbkFmdGVyU2VsZWN0aW9uVGV4dDoiTElTVF9JVEVNX0lDT05fQUZURVJfU0VMRUNUSU9OX1RFWFRfREVGQVVMVCIsc2VsZWN0aW9uVGV4dDp7Y29udGVudDpjP2M6eG1hfSxsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOmM/IkNMT1NFRF9DQVBUSU9OX1NFTEVDVEVEIjoiQ0xPU0VEX0NBUFRJT04ifX1dfSxlbnRpdHlLZXk6IkVpOHZlVzkxZEhWaVpTOWhjSEF2Y0d4aGVXVnlYMk5oY0hScGIyNWZiR0Z1WjNWaFoyVmZaVzUwYVhSNVgydGxlU0QtQWlnQiIsCmVudGl0eVNlbGVjdG9yVHlwZToiTElTVF9JVEVNX1ZJRVdfTU9ERUxfRU5USVRZX1NFTEVDVE9SX1RZUEVfQ0FQVElPTl9MQU5HVUFHRV9TRUxFQ1RJT05fVEVYVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOlt7c2hvd0NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6e319XX19fX19LGlzRGlzYWJsZWQ6dHlwZW9mIGI9PT0idW5kZWZpbmVkIn19LF8uWkMpfSxJYTohMH0pLCJsYyIpO3ZhciBsa2E9e2F1dG86MCx0aW55OjE0NCxsaWdodDoxNDQsc21hbGw6MjQwLG1lZGl1bTozNjAsbGFyZ2U6NDgwLGhkNzIwOjcyMCxoZDEwODA6MTA4MCxoZDE0NDA6MTQ0MCxoZDIxNjA6MjE2MCxoZDI4ODA6Mjg4MCxoaWdocmVzOjQzMjB9O3ZhciB5bWE9Xy4kTi5OdCxta2E9Xy4kTi5PdCxsUz1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYj1iUih7dGl0bGU6Xy5JUCh5bWEpLHNlbGVjdGlvblRleHQ6Xy5JUChrUyhhKCksYSgpLmdldFBsYXliYWNrUXVhbGl0eSgpKSksaWNvblR5cGU6Ik9VVExJTkVfQURKVVNUIn0pO3JldHVybiBfLkIoYixfLlpDKX0sSWE6ITAsb25UYXA6KCk9PnthKCkuZ2V0QXZhaWxhYmxlUXVhbGl0eUxldmVscygpJiZva2EoYSgpKX19KSwibWMiKTtsUy5pZG9tQ29tcGF0PSEwOwp2YXIgbmthPV8uTCgoe0g6YX0pPT5fLksoXy5nRyx7cGE6KCk9PmEoKS5nZXRBdmFpbGFibGVRdWFsaXR5TGV2ZWxzKCksdGI6IklOREVYIn0sYj0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYz1iKCksZD1hKCkuZ2V0UHJlZmVycmVkUXVhbGl0eSgpO2M9YlIoe3RpdGxlOl8uSVAoa1MoYSgpLGMpKSxpY29uVHlwZTpjPT09ZD8iQ0hFQ0siOnZvaWQgMH0pO3JldHVybiBfLkIoYyxfLlpDKX0sSWE6ITAsb25UYXA6KCk9Pnt2YXIgYz1iKCk7YSgpLnNldFBsYXliYWNrUXVhbGl0eVJhbmdlKGMsYyl9fSkpLCJuYyIpO3ZhciBSUz1uZXcgU2V0LFFTPW51bGw7dmFyIFRTPW51bGwsVlM9e307dmFyIHVWPV8uTChhPT57dmFyIGI9Xy52RSgiYnV0dG9uIixkPT57ZCYmV1MoZCwyODU3MiwhXy54KCJlbWJlZHNfY3VlZF9vdmVybGF5X3ZlX2tzIikpfSksYz0oKT0+YS5HKCkuSD8uaXNFbWJlZHNTaG9ydHNNb2RlPy4oKTtyZXR1cm4gXy5LKCJjdWVkLW92ZXJsYXkiLHtjbGFzczpfLlAoInl0bUN1ZWRPdmVybGF5SG9zdCIse3l0bUN1ZWRPdmVybGF5SGlkZGVuOigpPT4hJFMoYS5HKCksYS5wbGF5YWJpbGl0eVN0YXR1cz8uKCkpfSksIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtiLnZhbHVlJiYoWFMoMjg1NzIpLGEuRygpLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDAsXy5LLnZpc3VhbEVsZW1lbnQpLGEuSD8uKCkucGxheVZpZGVvKCkpO2Quc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOigpPT4hYS5HKCkuYmE/LmhpZGVWaWRlb0luZm8mJiF1UyhhLkcoKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtQ3VlZE92ZXJsYXlHcmFkaWVudCJ9KX0pLF8uSygiYnV0dG9uIiwKe2NsYXNzOl8uUCgieXRtQ3VlZE92ZXJsYXlQbGF5QnV0dG9uIix7eXRtQ3VlZE92ZXJsYXlTaG9ydHM6Y30pLGVsOmIsImFyaWEtbGFiZWwiOl8uJE4uUGcsdGl0bGU6Xy4kTi5QZ30sXy5LKF8uTUQse2ljb246KCk9PmMoKT8iWU9VVFVCRV9TSE9SVFNfQlJBTkRfMjQiOiJMT0dPIixjbGFzc05hbWU6Inl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24ifSkpKX0sIm9jIik7dVYuaWRvbUNvbXBhdD0hMDt2YXIgYVQ7dmFyIEFtYT1fLkwoKHtKejphLG11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyOmIscHJvZ3Jlc3NCYXJXaWR0aDpjLHByb2dyZXNzQ29sb3I6ZH0pPT57dmFyIGU9KCk9PmdUKGIoKSksZj0oKT0+alQoYSgpKSxoPSgpPT5jKCkqKGEoKS52YS9hKCkudmlkZW9EdXJhdGlvbik7cmV0dXJuIF8uSygieXQtY2hhcHRlcmVkLXByb2dyZXNzLWJhci1saW5lIix7Y2xhc3M6Inl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJIb3N0In0sXy5LKF8uZ0cse3BhOmV9LChrLGwpPT5fLksoem1hLHtOeTpmLGNoYXB0ZXJzOmUsaW5kZXg6bCxDejpoLHByb2dyZXNzQ29sb3I6ZCxEdTooKT0+e3ZhciBtPWpUKGEoKSksbj1nVChiKCkpLHA9bCgpLHI9aCgpO3JldHVybihtLnZhLWhUKF8uQihuW3BdLGVUKSkpL20udmEqcn19KSkpfSwicGMiKSx6bWE9Xy5MKCh7Tnk6YSxjaGFwdGVyczpiLGluZGV4OmMsQ3o6ZCxEdTplLHByb2dyZXNzQ29sb3I6Zn0pPT57dmFyIGg9Xy5QKCJ5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyQ2hhcHRlciIsCnt5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyQ2hhcHRlcklzU2NydWJiaW5nOigpPT5rKCkuYm0seXRDaGFwdGVyZWRQcm9ncmVzc0JhckhvdmVyZWRNYWNyb01hcmtlcjooKT0+aygpLkJnLHl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyU2VlbjooKT0+aygpLkxkPT09InNlZW4ifSksaz0oKT0+aVQoYSgpLGIoKSxjKCkpLGw9KCk9Pnt2YXIgbT1mPy4oKTtyZXR1cm4gbSE9PXZvaWQgMD9fLkpFKG0pOnZvaWQgMH07cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6aCxzdHlsZTpfLklFKHt3aWR0aDooKT0+e3ZhciBtPWEoKSxuPWIoKSxwPWMoKSxyPV8uQihuW3BdLGVUKTtuPV8uQihuW3ArMV0sZVQpO3JldHVybmAkeyhuP2hUKG4pLWhUKHIpOm0udmlkZW9EdXJhdGlvbi1oVChyKSkvbS52aWRlb0R1cmF0aW9uKjEwMH0lYH0sImJhY2tncm91bmQtY29sb3IiOigpPT57YTp7dmFyIG09aygpO3N3aXRjaChtLkxkKXtjYXNlICJwZW5kaW5nIjptPQptLkJnPyJ3aGl0ZSI6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkiO2JyZWFrIGE7Y2FzZSAiYWN0aXZlIjptPW0uQmc/IndoaXRlIjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSI7YnJlYWsgYTtkZWZhdWx0Om09IiJ9fXJldHVybmAke219YH0sImJhY2tncm91bmQtc2l6ZSI6KCk9PmAke29UKGsoKSk/ZCgpOiIifXB4YCwiYmFja2dyb3VuZC1wb3NpdGlvbi14IjooKT0+YCR7b1QoaygpKT9lKCk6IiJ9cHhgLGJhY2tncm91bmQ6KCk9PmsoKS5MZD09PSJzZWVuIj9sKCk6dm9pZCAwfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJMb2FkZWQiLHN0eWxlOigpPT57dmFyIG09YSgpLG49YigpLHA9YygpO2lmKGlUKG0sbixwKS5MZD09PSJzZWVuIil2YXIgcj0wO2Vsc2Ugcj1oVChfLkIobltwXSxlVCkpLG49aFQoXy5CKG5bcCsxXSxlVCkpfHxtLnZpZGVvRHVyYXRpb24sbT1tLnZpZGVvRHVyYXRpb24qbS5RbSxyPW48PQptPzE6cj49bT8wOihtLXIpLyhuLXIpO3JldHVybmB3aWR0aDogJHtyKjEwMH0lYH19KSxfLksoImRpdiIse2NsYXNzOiJ5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyRmlsbCIsc3R5bGU6Xy5JRSh7d2lkdGg6KCk9PmAke25UKGEoKSxiKCksYygpKSoxMDB9JWAsImJhY2tncm91bmQtc2l6ZSI6KCk9PmAke29UKGsoKSxuVChhKCksYigpLGMoKSkpP2QoKToiIn1weGAsImJhY2tncm91bmQtcG9zaXRpb24teCI6KCk9PmAke29UKGsoKSxuVChhKCksYigpLGMoKSkpP2UoKToiIn1weGAsYmFja2dyb3VuZDpsfSl9KSl9LCJxYyIpO3ZhciB2Vj1fLkwoKHtMYjphLGNvbmZpZzpifSk9Pnt2YXIgYz0oKT0+e3ZhciBkPShiKCkuU2k/Lk11Pz8wKSoxMDAsZT0oYigpLlNpPy5MdT8/MCkqMTAwLGY9ZS1kO3JldHVybiBmPjAmJmY8MTA/KGY9KDEwLWYpLzIsZC1mPj0wJiZlK2Y8MTAwP1tkLWYsZStmXTpkLWY8MD9bMCwxMF06WzkwLDEwMF0pOltkLGVdfTtyZXR1cm4gXy5LKCJ5dC1mb2N1c2VkLWNoYXB0ZXItcHJvZ3Jlc3MtYmFyLWxpbmUiLHtjbGFzczoieXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZUhvc3QifSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZSIse3l0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVkOigpPT5iKCkuWHoseXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0OigpPT5iKCkucG9zaXRpb249PT0yfSl9LF8uSygiZGl2IiwKe2NsYXNzOiJ5dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kIixzdHlsZTooKT0+YHdpZHRoOiAke2MoKVsxXS1jKClbMF19JTsgbGVmdDogJHtjKClbMF19JWB9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhclBsYXllZCIsc3R5bGU6KCk9Pnt2YXIgZD1iKCkuU2k/Lk11Pz8wLGU9YigpLlNpPy5MdT8/MCxmPXdTKGEoKSk7cmV0dXJuYHdpZHRoOiAke2Y8ZD8wOmY+ZXx8ZT09PWQ/MTAwOihmLWQpLyhlLWQpKjEwMH0lO2B9fSkpKSl9LCJyYyIpO3ZWLmlkb21Db21wYXQ9ITA7dmFyIEJtYT0oKGEsYj1abGEpPT57dmFyIGMsZD1bXSxlLGY9ITE7cmV0dXJuIGZ1bmN0aW9uKC4uLmgpe2lmKGYmJmM9PT10aGlzJiZiKGgsZCkpcmV0dXJuIGU7ZT1hLmFwcGx5KHRoaXMsaCk7Zj0hMDtjPXRoaXM7ZD1oO3JldHVybiBlfX0pKGE9Pnt2YXIge21pbkhlaWdodERwOmI9MCxtYXhIZWlnaHREcDpjPTYwLGhlYXRNYXJrZXJzOmR9PWEsZT0xRTMvZC5sZW5ndGg7YT1bXTthLnB1c2goe3g6MCx5OjEwMH0pO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgaD0oZisuNSkqZSxrPTEwMC1EUSgoXy5CKGRbZl0sZ21hKT8uaGVhdE1hcmtlckludGVuc2l0eVNjb3JlTm9ybWFsaXplZHx8MCkqMTAwLGIvMzIxKjEwMCxjLzMyMSoxMDApO2YhPT0wfHxhLnB1c2goe3g6MCx5Omt9KTthLnB1c2goe3g6aCx5Omt9KTtmPT09ZC5sZW5ndGgtMSYmYS5wdXNoKHt4OjFFMyx5Omt9KX1hLnB1c2goe3g6MUUzLHk6MTAwfSk7ZT0iIjtmb3IoZj0wO2Y8YS5sZW5ndGg7ZisrKXtoPQphW2ZdO2lmKGY9PT0wKWg9YE0gJHtoLngudG9GaXhlZCgxKX0sJHtoLnkudG9GaXhlZCgxKX1gO2Vsc2V7az1MUihhW2YtMV0sYVtmLTJdLGgpO2xldCBsPUxSKGgsYVtmLTFdLGFbZisxXSwhMCk7aD1gICR7YEMgJHtrLngudG9GaXhlZCgxKX0sJHtrLnkudG9GaXhlZCgxKX0gJHtsLngudG9GaXhlZCgxKX0sJHtsLnkudG9GaXhlZCgxKX0gJHtoLngudG9GaXhlZCgxKX0sJHtoLnkudG9GaXhlZCgxKX1gfWB9ZSs9aH1yZXR1cm4gZX0pO3ZhciBDbWE9Xy5MKCh7TGI6YSxjb25maWc6YixoaWdoQ29udHJhc3Q6Y30pPT57Yz1fLlAoInl0SGVhdFNlZWtlckhvc3QiLHt5dEhlYXRTZWVrZXJIaWdoQ29udHJhc3Q6Y30pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1oZWF0c2Vla2VyIix7Y2xhc3M6YyxzdHlsZTooKT0+YGhlaWdodDogMzIwcHg7IGRpc3BsYXk6ICR7YSgpLmlzRHJhZ2dpbmcmJkZTKGIoKS5SYSk/LmhlYXRNYXJrZXJzPyJibG9jayI6Im5vbmUifWB9LF8uSyhfLk8se0E6KCk9PkZTKGIoKS5SYSksdGhlbjpkPT5fLksoXy5PLHtBOigpPT5kKCkuaGVhdE1hcmtlcnMsdGhlbjooKT0+Xy5LKCJzdmciLHt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIzMjBweCIsdmlld0JveDoiMCAwIDEwMDAgMTAwIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0sXy5LKCJwYXRoIix7ZDooKT0+Qm1hKGQoKSl9KSksZGVidWdJbnN0YW5jZToiR2ppMFNlIn0pLGRlYnVnSW5zdGFuY2U6ImlWVFh3ZiJ9KSl9LCJzYyIpO3ZhciB3Vj1fLkwoKHtMYjphLGNvbmZpZzpifSk9Pnt2YXIgYz1fLlAoInl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5lIix7eXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVkOigpPT5iKCkuWHoseXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVCb3R0b21JbnNldDooKT0+YigpLnBvc2l0aW9uPT09Mn0pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1saW5lIix7Y2xhc3M6Inl0UHJvZ3Jlc3NCYXJMaW5lSG9zdCJ9LF8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckJhY2tncm91bmQifSksXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxvYWRlZCIsc3R5bGU6KCk9PmB3aWR0aDogJHthKCkuUW0qMTAwfSVgfSksXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckhvdmVyZWQiLHN0eWxlOigpPT57dmFyIGQ9CmEoKTtyZXR1cm5gd2lkdGg6ICR7KGQudmlkZW9EdXJhdGlvbj9EUShkLmRqL2QudmlkZW9EdXJhdGlvbiwwLDEpOjApKjEwMH0lYH19KSxfLksoImRpdiIse2NsYXNzOiJ5dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVkIixzdHlsZTpfLklFKHt3aWR0aDooKT0+YCR7d1MoYSgpKSoxMDB9JWAsYmFja2dyb3VuZDooKT0+YigpLnByb2dyZXNzQ29sb3IhPT12b2lkIDA/Xy5KRShiKCkucHJvZ3Jlc3NDb2xvcik6dm9pZCAwfSl9KSkpfSwidGMiKTt3Vi5pZG9tQ29tcGF0PSEwO3ZhciB4Vj1fLkwoKHtMYjphLGhmOmIsQng6YyxXdzpkfSk9Pnt2YXIgZT1fLlAoInl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3QiLHt5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90TGFyZ2U6KCk9PmEoKS5pc0RyYWdnaW5nLHl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3RIaWRlOigpPT4hYSgpLmlzRHJhZ2dpbmcmJmQoKX0pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1wbGF5aGVhZCIse2NsYXNzOiJ5dFByb2dyZXNzQmFyUGxheWhlYWRIb3N0IixzdHlsZTpfLklFKHsibWFyZ2luLWxlZnQiOigpPT5gJHt4UyhhKCkpKjEwMH0lYCx0cmFuc2Zvcm06KCk9PmI/LigpPy5wbGF5aGVhZEltYWdlP2B0cmFuc2xhdGVYKC0ke2MoKT94UyhhKCkpKjIwOjEwfXB4KWA6YHRyYW5zbGF0ZVgoLSR7YygpP3hTKGEoKSkqMTI6Nn1weClgfSl9LF8uSyhfLk8se0E6KCk9PmI/LigpPy5wbGF5aGVhZEltYWdlLAp0aGVuOmY9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tIix7eXRQcm9ncmVzc0JhclBsYXloZWFkUHJvZ3Jlc3NCYXJQbGF5aGVhZEN1c3RvbUxhcmdlOigpPT5hKCkuaXNEcmFnZ2luZyx5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tSGlkZTooKT0+IWEoKS5pc0RyYWdnaW5nJiZkKCl9KSxzdHlsZTpfLklFKHsidHJhbnNmb3JtLW9yaWdpbiI6KCk9PmAke2MoKT94UyhhKCkpKjIwOjEwfXB4IGNlbnRlcmB9KX0sXy5LKF8uakYse2RhdGE6ZixhbHQ6IiIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsVGI6ITF9KSksVzooKT0+Xy5LKCJkaXYiLHtjbGFzczplLHN0eWxlOl8uSUUoeyJ0cmFuc2Zvcm0tb3JpZ2luIjooKT0+YCR7YygpP3hTKGEoKSkqMTI6Nn1weCBjZW50ZXJgfSl9KX0pKX0sInVjIik7eFYuaWRvbUNvbXBhdD0hMDt2YXIgRG1hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQsZSxmKXt0aGlzLkk9YTt0aGlzLkI9Yjt0aGlzLks9Yzt0aGlzLlU9ZDt0aGlzLlo9ZTt0aGlzLk09Zjt0aGlzLnN0YXJ0UG9zaXRpb249bnVsbDt0aGlzLmo9dGhpcy52PXRoaXMubz0hMTt0aGlzLkQ9bmV3IF8uV3QodGhpcy5ZLDEwMCx0aGlzKX1ZKGEsYixjKXtpZihiPWIuSCl7aWYoYi5nZXRWaWRlb0RhdGEoKT8uaXNMaXZlKXtsZXQgZD10aGlzLmdldFByb2dyZXNzU3RhdGUoYik7YSs9ZD8uc2Vla2FibGVTdGFydHx8MH1iLnNlZWtUbyhhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGMpfX1nZXRQcm9ncmVzc1N0YXRlKGEpe3ZhciBiPWE/LmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk7cmV0dXJuIGE/LmdldFByb2dyZXNzU3RhdGUoYil9fTt2YXIgRm1hPV8uTCgoe0xiOmEsY29uZmlnOmIsWm06YyxSYTpkfSk9Pnt2YXIgZT1EVChhLCgpPT5iKCkuSWIpLGY9KCk9PiFhKCkuUWMmJiFiKCkuSWIsaD1fLlAoInl0UGxheWVyU3Rvcnlib2FyZEhvc3QiLCJ5dFBsYXllclN0b3J5Ym9hcmRIb3N0QmlnYm9hcmQiLHt5dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0czooKT0+YigpLkliJiYhMH0pO3JldHVybiBfLksoInl0LXBsYXllci1zdG9yeWJvYXJkIixudWxsLF8uSyhfLk8se0E6KCk9PmEoKS5pc0RyYWdnaW5nfHxhKCkuUWMsdGhlbjooKT0+Xy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSyhfLk8se0E6Zix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmgsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyh5Vix7cHJvcHM6YSxjb25maWc6YixlZTohMCxSYTpkfSkpLFc6KCk9Pl8uSyhFbWEse3Byb3BzOmEsZnJhbWU6ZSxjb25maWc6YixabTpjLFJhOmR9KX0pfSl9KSl9LCJ2YyIpLEdtYT1fLkwoKHtMYjphLEliOmJ9KT0+Cnt2YXIgYz1EVChhLGIpO3JldHVybiBfLksoInl0LXBsYXllci1iaWctc3Rvcnlib2FyZCIse2NsYXNzOiJ5dFBsYXllclN0b3J5Ym9hcmRCaWdib2FyZFdyYXBwZXIifSxfLksoXy5PLHtBOigpPT5hKCkuaXNEcmFnZ2luZ3x8YSgpLlFjLHRoZW46KCk9Pl8uSyhfLk8se0E6Yyx0aGVuOigpPT5fLksoelYse2ZyYW1lOmMscHJvcHM6YSxlZTohMH0pfSl9KSl9LCJ3YyIpLEVtYT1fLkwoKHtwcm9wczphLGZyYW1lOmIsY29uZmlnOmMsWm06ZCxSYTplfSk9Pnt2YXIgZj1fLlAoInl0UGxheWVyU3Rvcnlib2FyZEhvc3QiLHt5dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0czooKT0+YygpLkliJiYhMCx5dFBsYXllclN0b3J5Ym9hcmRIb3N0SW5saW5lUGxheWVyOigpPT5jKCkueHEseXRQbGF5ZXJTdG9yeWJvYXJkSG9zdEZhZGVJbjooKT0+YygpLnVzZUZhZGVJbkFuaW1hdGlvbn0pLGg9KCk9PntpZighXy54KCJlbmFibGVfd2ViX3dhdGNoX25leHRfaW1wX2NsaWVudCIpfHwhYygpLnhxKXJldHVybiAxOwp2YXIgaz1hKCkuSD8uZ2V0U2l6ZSgpPy5oZWlnaHQ/PzA7cmV0dXJuIGs+MCYmazwxNjA/ay8xNjA6MX07cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6ZiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixzdHlsZTpfLklFKCgpPT57dmFyIGs9YSgpLGw9eVQoYigpKSpoKCksbT1kKCk7az1BVChrKS9rLnZpZGVvRHVyYXRpb247dmFyIG49bSprLHA9bC8yKzY7bD1tLShsLzIrNik7cmV0dXJue2xlZnQ6YCR7bjw9cD9wL20qMTAwOm4+PWw/bC9tKjEwMDprKjEwMH0lYCwiLS1zdG9yeWJvYXJkLXNjYWxlIjpgJHtoKCl9YH19KX0sXy5LKF8uTyx7QTooKT0+e3ZhciBrPWEoKTtyZXR1cm4hKGMoKS5JYiYmay52aWRlb0R1cmF0aW9uPDE1KX0sdGhlbjooKT0+Xy5LKHpWLHtmcmFtZTpiLHByb3BzOmEsZWU6ITEsekE6aH0pfSksXy5LKHlWLHtwcm9wczphLGNvbmZpZzpjLGVlOiExLFJhOmV9KSl9LCJ4YyIpLHpWPV8uTCgoe2ZyYW1lOmEscHJvcHM6YixlZTpjLHpBOmR9KT0+e3ZhciBlPSgpPT5iKCkuSD8uZ2V0VmlkZW9Db250ZW50UmVjdCgpPz8Ke3dpZHRoOjAsaGVpZ2h0OjB9LGY9Xy5QKHt5dFBsYXllclN0b3J5Ym9hcmRCaWdib2FyZEltYWdlV3JhcHBlcjpjLHl0UGxheWVyU3Rvcnlib2FyZFN0b3J5Ym9hcmRJbWFnZVdyYXBwZXI6KCk9PiFjKCl9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczpmLHN0eWxlOl8uSUUoKCk9Pih7d2lkdGg6YCR7YygpP2UoKS53aWR0aDp5VChhKCkpKihkPy4oKT8/MSl9cHhgLGhlaWdodDpgJHtjKCk/ZSgpLmhlaWdodDp6VChhKCkpKihkPy4oKT8/MSl9cHhgfSkpfSxfLksoSG1hLHtmcmFtZTphLFBBOigpPT55VChhKCkpLE5BOigpPT56VChhKCkpLE9BOigpPT57dmFyIGg9eVQoYSgpKTtyZXR1cm4gaD4wPyhjKCk/ZSgpLndpZHRoOnlUKGEoKSkqKGQ/LigpPz8xKSkvaDoxfX0pKX0sInljIiksSG1hPV8uTCgoe2ZyYW1lOmEsUEE6YixOQTpjLE9BOmR9KT0+Xy5LKCJpbWciLHtzcmM6KCk9PmEoKT8udXJsPz8iIixjbGFzczoieXRQbGF5ZXJTdG9yeWJvYXJkU3Rvcnlib2FyZEltYWdlIixhbHQ6InByZXZpZXctaW1hZ2UiLApzdHlsZTpfLklFKCgpPT57dmFyIGU9YSgpPz97cm93OjAsY29sdW1uOjAsd2lkdGg6MCxoZWlnaHQ6MH0sZj1iKCksaD1jKCksaz1kKCkse2xlZnQ6bCx0b3A6bX09e2xlZnQ6LWUuY29sdW1uKmYqayx0b3A6LWUucm93Kmgqa307cmV0dXJue2xlZnQ6YCR7bH1weGAsdG9wOmAke219cHhgLHdpZHRoOmAke2Uud2lkdGgqa31weGAsaGVpZ2h0OmAke2UuaGVpZ2h0Kmt9cHhgfX0pfSksInpjIikseVY9Xy5MKCh7cHJvcHM6YSxjb25maWc6YixlZTpjLFJhOmR9KT0+e3ZhciBlPV8uUCgieXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGEiLHt5dFBsYXllclN0b3J5Ym9hcmRNZXRhZGF0YUJpZ2JvYXJkOmN9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczplfSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoQVYse3Byb3BzOmEsY29uZmlnOmJ9KSxfLksoXy5PLHtBOigpPT57YTp7dmFyIGY9YSgpO3ZhciBoPWIoKSxrPWQoKTtpZihoPy5SZyYmXy5CKGg/LlJnLGVUKT8udGl0bGUpZj0KITA7ZWxzZXtmb3IobGV0IGwgb2YgRlMoayk/LmhlYXRNYXJrZXJzRGVjb3JhdGlvbnM/P1tdKXtmPShoPV8uQihsLHFWKSkmJkJUKGYsaCk7YnJlYWsgYX1mPSExfX1yZXR1cm4gZn0sdGhlbjooKT0+Xy5LKEJWLHtwcm9wczphLGNvbmZpZzpiLGVlOiEwLFJhOmR9KX0pKSxXOigpPT5fLksoXy5JQixudWxsLF8uSyhCVix7cHJvcHM6YSxjb25maWc6YixlZTohMCxSYTpkfSksXy5LKEFWLHtwcm9wczphLGNvbmZpZzpifSkpfSkpfSwiQWMiKSxBVj1fLkwoKHtwcm9wczphLGNvbmZpZzpifSk9Pnt2YXIgYz1fLlAoInl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcCIse3l0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0czooKT0+YigpLkliLHl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcElzSG92ZXJpbmc6KCk9PmEoKS5RY3x8YigpLkliJiYhMX0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOmN9LF8uSyhfLklCLG51bGwsKCk9PkNUKEFUKGEoKSkpKSl9LCJCYyIpLEJWPV8uTCgoe3Byb3BzOmEsCmNvbmZpZzpiLGVlOmMsUmE6ZH0pPT57Yz1fLlAoInl0UGxheWVyU3Rvcnlib2FyZFRpdGxlIix7eXRQbGF5ZXJTdG9yeWJvYXJkVGl0bGVCaWdib2FyZDpjfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKF8uTyx7QTooKT0+IWIoKS5JYix0aGVuOigpPT5fLksoSW1hLHtwcm9wczphLFJnOigpPT5iKCkuUmcsUmE6ZH0pfSkpfSwiQ2MiKSxJbWE9Xy5MKCh7cHJvcHM6YSxSZzpiLFJhOmN9KT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5nRyx7cGE6KCk9Pnt2YXIgZD1jKCk7cmV0dXJuIEZTKGQpPy5oZWF0TWFya2Vyc0RlY29yYXRpb25zPz9bXX0sdGI6IklOREVYIn0sZD0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOigpPT5fLkIoZCgpLHFWKSYmQlQoYSgpLF8uQihkKCkscVYpKSx0aGVuOigpPT5fLksoSm1hLHtjQjooKT0+Xy5CKGQoKSxxVil9KX0pKSksXy5LKF8uTyx7QTooKT0+YigpJiZfLkIoYigpLGVUKT8udGl0bGUsdGhlbjpkPT5fLksoXy5WLHt0ZXh0OmQscmc6ITB9KX0pKSwKIkRjIiksSm1hPV8uTCgoe2NCOmF9KT0+Xy5LKF8uSUIsbnVsbCxfLksoImRpdiIse2NsYXNzOiJ5dFBsYXllclN0b3J5Ym9hcmRUaW1lZE1hcmtlckljb25XcmFwcGVyIn0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5pY29uLGNsYXNzTmFtZToieXRQbGF5ZXJTdG9yeWJvYXJkVGltZWRNYXJrZXJJY29uIn0pKSxfLksoXy5WLHt0ZXh0OigpPT5hKCkubGFiZWwscmc6ITB9KSksIkVjIik7dmFyIENWPV8uTCgoe0xiOmEsaGY6Yixjb25maWc6Y30pPT57dmFyIGQ9Xy51RSgieXQtcHJvZ3Jlc3MtYmFyIiksZT1fLnVFKCJkaXYiKSxmPV8udUUoImRpdiIpLFtoLGtdPV8uSih7d2lkdGg6MCxsZWZ0OjB9LHZvaWQgMCwiZDFic2JmIiksbD0oKT0+e2YudmFsdWUmJmsoZi52YWx1ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSl9LG09KCk9PntoKCkud2lkdGg8PTAmJmwoKTtyZXR1cm4gaCgpfTtfLkRQKCJyZXNpemUiLGwpO3ZhciBuPW5ldyBEbWEobSwoKT0+e30sKCk9PjAsKCk9Pnt9LCgpPT57fSwoKT0+e30pLHA9KCk9PmEoKSxbcix0XT1fLkooITEsdm9pZCAwLCJjVnNUSyIpO18uRFAoIm1vdXNlbW92ZSIsWWthKG4scCxjKSk7Xy5EUCgibW91c2V1cCIseFQobixwLGMpKTt2YXIgdjtfLlVKKCgpPT57R2thKGUudmFsdWUpO3QoITEpO2woKTt4VChuLHAsYykoKTtjKCkuaWomJih2PW5ldyBSZXNpemVPYnNlcnZlcihsKSx2Lm9ic2VydmUoZi52YWx1ZSkpO18uWXUoKCk9Pgp7dj8uZGlzY29ubmVjdCgpfSl9KTt2YXIgej1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0IiwoKT0+YygpLmNsYXNzTmFtZSx7eXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RSZWFkT25seTooKT0+YygpLmRpc2FibGVTY3J1YmJpbmcseXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RIaWRkZW46KCk9PmMoKS5rSiYmIXIoKSx5dFBsYXllclByb2dyZXNzQmFySG9zdExvd2VyUGxheWVyOigpPT5jKCkucG9zaXRpb249PT0wLHl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0Qm90dG9tRWRnZTooKT0+YygpLnBvc2l0aW9uPT09MSx5dFBsYXllclByb2dyZXNzQmFySG9zdEJvdHRvbUluc2V0OigpPT5jKCkucG9zaXRpb249PT0yLHl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0Q3VzdG9tOigpPT5jKCkucG9zaXRpb249PT0zfSksRT1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kIix7eXRQbGF5ZXJQcm9ncmVzc0JhckJhY2tncm91bmRIaWRlOigpPT5jKCkucG9zaXRpb249PT0yJiYhcigpJiYKIWEoKS5pc0RyYWdnaW5nfSksQT1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJEcmFnQ29udGFpbmVyIix7eXRQbGF5ZXJQcm9ncmVzc0JhckRyYWdDb250YWluZXJCb3R0b21FZGdlOigpPT5jKCkucG9zaXRpb249PT0xfSksRj1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0JhciIse3l0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0OigpPT5jKCkucG9zaXRpb249PT0yLHl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0TWluaW1pemVkOigpPT5jKCkucG9zaXRpb249PT0yJiYhcigpJiYhYSgpLmlzRHJhZ2dpbmd9KSxDPSgpPT5NYXRoLmZsb29yKHdTKGEoKSkqMTAwKTtyZXR1cm4gXy5LKCJ5dC1wcm9ncmVzcy1iYXIiLHtlbDpkLGNsYXNzOnp9LF8uSyhfLk8se0E6KCk9PmMoKS5wb3NpdGlvbj09PTIsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpFfSl9KSxfLksoImRpdiIse2VsOmUsIm9uOmNsaWNrIjpmdW5jdGlvbihHKXsoYygpLkRJfHx0eXBlb2YgUG9pbnRlckV2ZW50IT09CiJ1bmRlZmluZWQiJiZHIGluc3RhbmNlb2YgUG9pbnRlckV2ZW50JiZHLnBvaW50ZXJUeXBlPT09Im1vdXNlIikmJk9rYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOnRvdWNoc3RhcnQiOmZ1bmN0aW9uKEcpe1BrYShuLHApKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaG1vdmUiOmZ1bmN0aW9uKEcpe1JrYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNlZW50ZXIiOmZ1bmN0aW9uKCl7dCghMCk7YygpLnBvc2l0aW9uPT09Mj9zZXRUaW1lb3V0KCgpPT57bCgpfSwxMDApOmwoKX0sIm9uOm1vdXNlZG93biI6ZnVuY3Rpb24oRyl7UWthKG4scCkoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKCl7dCghMSk7VGthKHApKCl9LCJvbjptb3VzZW1vdmUiOmZ1bmN0aW9uKEcpe1NrYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNldXAiOmZ1bmN0aW9uKEcpe1ZrYShuLApwLGMpKEcpO3IoKSYmYSgpLlMoe1FjOiEwfSk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOnRvdWNoZW5kIjpmdW5jdGlvbihHKXtVa2EobixwLGMpKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaGNhbmNlbCI6ZnVuY3Rpb24oRyl7V2thKG4scCxjKShHKTtHLnN0b3BQcm9wYWdhdGlvbigpfSwib246a2V5ZG93biI6ZnVuY3Rpb24oRyl7WGthKHApKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LGNsYXNzOkEscm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW5vdyI6QywiYXJpYS12YWx1ZXRleHQiOigpPT5gJHtDKCl9JWAsImFyaWEtdmFsdWVtaW4iOigpPT4wLCJhcmlhLXZhbHVlbWF4IjooKT0+MTAwLGRyYWdnYWJsZToiZmFsc2UiLHRhYmluZGV4OjAsImFyaWEtbGFiZWwiOl8uYUEoIlNFRUtfU0xJREVSIil9LF8uSygiZGl2Iix7ZWw6ZixjbGFzczpGfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQbGF5ZXJQcm9ncmVzc0JhckhlYXRzZWVrZXJDb250YWluZXIiLHt5dFBsYXllclByb2dyZXNzQmFySGVhdHNlZWtlckNvbnRhaW5lckluc2V0OigpPT4KYygpLnBvc2l0aW9uPT09Mn0pfSxfLksoQ21hLHtMYjphLGNvbmZpZzpjLGhpZ2hDb250cmFzdDooKT0+ISFjKCkuaWomJmMoKS5wb3NpdGlvbiE9PTJ9KSksXy5LKF8uTyx7QTooKT0+YygpLlJhJiZ6a2EoYygpLlJhKSx0aGVuOigpPT5fLksoQW1hLHtKejphLG11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyOigpPT5jKCkuUmEscHJvZ3Jlc3NCYXJXaWR0aDooKT0+aCgpLndpZHRoLHByb2dyZXNzQ29sb3I6KCk9PmMoKS5wcm9ncmVzc0NvbG9yfSksVzooKT0+Xy5LKF8uTyx7QTooKT0+YygpLlNpLHRoZW46KCk9Pl8uSyh2Vix7TGI6YSxjb25maWc6Y30pLFc6KCk9Pl8uSyh3Vix7TGI6YSxjb25maWc6Y30pfSl9KSxfLksoeFYse0xiOmEsaGY6KCk9Pl8ueCgiZW5hYmxlX2N1c3RvbV9zY3J1YmJlcl92MiIpP2MoKS5oZjpiPy4oKSxCeDooKT0+YygpLnBvc2l0aW9uIT09MixXdzooKT0+YygpLnhyPT09MSYmIXIoKXx8YygpLnhyPT09Mn0pKSksXy5LKEZtYSx7TGI6YSxjb25maWc6KCk9Pgooe1JnOmxUKGEoKSxjKCkuUmEpLGRKOigpPT5tKCkud2lkdGgsSWI6ISFjKCkuSWIseHE6ISFjKCkuaWosdXNlRmFkZUluQW5pbWF0aW9uOiEhYygpLmlqfSksWm06KCk9PmgoKS53aWR0aCxSYTooKT0+YygpLlJhfSkpfSwiRmMiKTtDVi5pZG9tQ29tcGF0PSEwO3ZhciBEVj1fLkwoYT0+e3ZhciBiPSgpPT57dmFyIGQ9YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LigpO2lmKGQpcmV0dXJuIHpTKGQpfSxjPSgpPT57dmFyIGQ9YigpO2lmKGQpe3ZhciBlPWEuSm8oKS5hdXRvbmF2RW5hYmxlZDtyZXR1cm4gXy5hTihlP18uQihkLmVuYWJsZWRFZHVDb21tYW5kLFdVKT8udGV4dDpfLkIoZC5kaXNhYmxlZEVkdUNvbW1hbmQsV1UpPy50ZXh0KX19O3JldHVybiBfLksoXy5PLHtBOigpPT5hLkpvKCkuWWgmJiEhYigpLHRoZW46KCk9Pl8uSygiYXV0b25hdi10b29sdGlwIix7Y2xhc3M6Inl0d0F1dG9uYXZUb29sdGlwSG9zdCIscm9sZToiYWxlcnQifSxfLksoInNwYW4iLHsiYXJpYS1sYWJlbCI6Yyxyb2xlOiJ0ZXh0In0sYykpfSl9LCJHYyIpO0RWLmlkb21Db21wYXQ9ITA7dmFyIEVWPV8uTChhPT57dmFyIGI9Xy52RSgic3BlZWRtYXN0ZXItdG9vbHRpcCIpLGM9Xy5OKCgpPT5hLkcoKS5zYix2b2lkIDAsIkVzVFJsYyIpO18ubkUoKCk9PntpZihjKCkmJmIudmFsdWUpe2xldCBkPW51bGw7U1MoMTczMDQwLGIudmFsdWUsZCxlPT57ZD1lfSl9fSwiQXZwR0lmIik7cmV0dXJuIF8uSyhfLk8se0E6Yyx0aGVuOigpPT5fLksoInNwZWVkbWFzdGVyLXRvb2x0aXAiLHtlbDpiLGNsYXNzOiJ5dHdTcGVlZG1hc3RlclRvb2x0aXBIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWwifSxfLiROLkd0KSxfLksoXy5NRCx7aWNvbjoiRkFTVF9GT1JXQVJEIixhY3RpdmU6ITAsY2xhc3NOYW1lOiJ5dHdTcGVlZG1hc3RlclRvb2x0aXBJY29uIn0pKX0pfSwiSWMiKTtFVi5pZG9tQ29tcGF0PSEwO3ZhciBGVj1fLkwoYT0+Xy5LKCJwbGF5ZXItdXNlci1lZHUtdG9vbHRpcCIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcEhvc3QifSxfLksoRFYse0pvOmEuRyxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBDb250YWluZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBXcmFwcGVyIn0sXy5LKEVWLHtHOmEuR30pKSkpLCJKYyIpO0ZWLmlkb21Db21wYXQ9ITA7dmFyIFprYT1bMCwxLDIwLDIxXTt2YXIgYWxhPVswLDEsMjAsMjFdLEdUPXZvaWQgMDt2YXIgS21hPV8uTCgoe3VkOmEsRXI6Yn0pPT57ZnVuY3Rpb24gYyhwKXtwLnRvdWNoZXM/LlswXSYmKHA9cC50b3VjaGVzWzBdLGsoe3g6cC5wYWdlWCx5OnAucGFnZVl9KSl9ZnVuY3Rpb24gZChwKXt2YXIgcj1oKCk7aWYoIXJ8fCFwLnRvdWNoZXM/LlswXSlyZXR1cm4gbnVsbDtwPXAudG91Y2hlc1swXTtyZXR1cm57bGs6cC5wYWdlWC1yLngsT2Q6cC5wYWdlWS1yLnl9fXZhciBbZSxmXT1fLkoobnVsbCx2b2lkIDAsIkFoMzBnIiksaD1lLGs9ZixbbCxtXT1fLkoodm9pZCAwLHZvaWQgMCwiUW83NmhkIik7Xy5ZdSgoKT0+e0ZUKGEoKSk7bShFVChsKCkpKX0pO3ZhciBuPXtHYjooKT0+Xy5LKCJkaXYiLG51bGwsXy5LKF8uVyx7ZGF0YTooKT0+Yj8uKCk/Lm1lbnVSZW5kZXJlcj8uaXRlbXN8fFtdfSx7bGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOnB9KT0+Xy5LKF8ucEwse2RhdGE6cCxJYTohMH0pLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOl8uZkp9KSksSGE6ITB9O3JldHVybiBfLksoInl0bS1zaG9ydHMtZ2VzdHVyZS1vdmVybGF5LWNvbnRyb2xzIiwKe2NsYXNzOiJ5dG1TaG9ydHNHZXN0dXJlT3ZlcmxheUNvbnRyb2xzR2VzdHVyZU92ZXJsYXkifSxfLksoRlYse0c6YX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlQ29udGFpbmVyIn0sXy5LKCJkaXYiLHtjbGFzczoieXRtU2hvcnRzR2VzdHVyZU92ZXJsYXlDb250cm9sc1NwZWVkbWFzdGVyR2VzdHVyZUFyZWEiLCJvbjp0b3VjaHN0YXJ0IjpwPT57YyhwKTtIVChhKCkscC50b3VjaGVzLmxlbmd0aCl9LCJvbjp0b3VjaG1vdmUiOnA9Pnt2YXIgcj1kKHApO3ImJklUKHAscixhKCkpfSwib246dG91Y2hlbmQiOigpPT57RlQoYSgpKTtrKG51bGwpfSwib246dG91Y2hjYW5jZWwiOigpPT57RlQoYSgpKTtrKG51bGwpfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNNZW51R2VzdHVyZUFyZWEiLCJvbjp0b3VjaHN0YXJ0IjpwPT57YyhwKTttKCRrYShhKCkscC50b3VjaGVzLmxlbmd0aCwKKCk9PntfLnlOKG4pfSxsKCkpKX0sIm9uOnRvdWNobW92ZSI6cD0+e3ZhciByPWQocCk7aWYocil7cD1sKCk7dmFyIHQ9ci5saztyPXIuT2Q7cD1NYXRoLnNxcnQodCp0K3Iqcik+Xy5zaigic3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwIiwxMCk/RVQocCk6cDttKHApfX0sIm9uOnRvdWNoZW5kIjooKT0+e20oRVQobCgpKSk7ayhudWxsKX0sIm9uOnRvdWNoY2FuY2VsIjooKT0+e20oRVQobCgpKSk7ayhudWxsKX19KSxfLksoImRpdiIse2NsYXNzOiJ5dG1TaG9ydHNHZXN0dXJlT3ZlcmxheUNvbnRyb2xzU3BlZWRtYXN0ZXJHZXN0dXJlQXJlYSIsIm9uOnRvdWNoc3RhcnQiOnA9PntjKHApO0hUKGEoKSxwLnRvdWNoZXMubGVuZ3RoKX0sIm9uOnRvdWNobW92ZSI6cD0+e3ZhciByPWQocCk7ciYmSVQocCxyLGEoKSl9LCJvbjp0b3VjaGVuZCI6KCk9PntGVChhKCkpO2sobnVsbCl9LCJvbjp0b3VjaGNhbmNlbCI6KCk9PntGVChhKCkpO2sobnVsbCl9fSkpKX0sIktjIik7dmFyIEdWPV8uTChhPT57dmFyIGI9Xy51RSgiZGl2IiksYz1fLk4oKCk9PmEudGh1bWJuYWlsRGV0YWlscz8uKCksdm9pZCAwLCJFODhVR2QiKSxkPV8uTigoKT0+YS5HKCkuYmEsdm9pZCAwLCJYdEdBbWUiKTtfLm5FKCgpPT57Y2xhKGIudmFsdWUsYygpLGQoKSl9LCJ5QWtpaWMiKTtyZXR1cm4gXy5LKCJ2aWRlby1jb3ZlciIse2NsYXNzOl8uUCgieXRtVmlkZW9Db3Zlckhvc3QiLHtlbmRlZDooKT0+dVMoYS5HKCkpLGhpZGRlbjooKT0+e3ZhciBlPWEuRygpO3JldHVybiEoJFMoZSl8fHVTKGUpKX19KX0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9Db3ZlclRodW1ibmFpbCIsZWw6Yn0pKX0sIk1jIik7R1YuaWRvbUNvbXBhdD0hMDtuZXcgXy5XdChlbGEsMjAwKTt2YXIgU1Q9MDt2YXIgVVQ9SlIoKSxWVD0hMTtuZXcgXy5DdCgicGxheWVyU2V0dGluZ3NNZW51IiwiTnhkM3VmIik7dmFyIExtYT1fLkwoKHtnZjphLEV4OmIscmVlbFBsYXllclNjcnViYmVyUmVuZGVyZXI6Y30pPT57dmFyIGQ9Xy5QKCJ5dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3QiLHt5dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3RJc1NjcnViYmFibGVNb2RlOigpPT5YVChhKCksYigpKX0se3l0TXdlYlNob3J0c1BsYXllckNvbnRyb2xzSG9zdEhpZGVQcm9ncmVzc0JhcjooKT0+V1QoYSgpLGIoKSkmJmEoKS52aWRlb0R1cmF0aW9uPD0zMH0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOmR9LF8uSyhDVix7TGI6YSxjb25maWc6KCk9Pnt2YXIgZT17SWI6ITAscG9zaXRpb246MyxkaXNhYmxlU2NydWJiaW5nOiFYVChhKCksYigpKSxJbjohMSx4cjpYVChhKCksYigpKT8wOjEsb25Ub3VjaE1vdmU6KCk9PnthKCkuZ2V8fChhKCkuUyh7Z2U6ITB9KSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS1zaG9ydHMtb3ZlcmxheS12aXNpYmlsaXR5Iix7YnViYmxlczohMCwKZGV0YWlsOntnZTohMH19KSkpfSxvblRvdWNoRW5kOmg9PntVUyhoKTthKCkuUyh7Z2U6ITF9KTt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS1zaG9ydHMtb3ZlcmxheS12aXNpYmlsaXR5Iix7YnViYmxlczohMCxkZXRhaWw6e2dlOiExfX0pKX19LGY9Yz8uKCk7cmV0dXJuIGY/LnBsYXloZWFkSW1hZ2U/ey4uLmUsaGY6e3BsYXloZWFkSW1hZ2U6Zi5wbGF5aGVhZEltYWdlfX06ZX19KSl9LCJRYyIpLE1tYT1fLkwoKHtIOmEsY29udGV4dDpiLHJlZWxQbGF5ZXJTY3J1YmJlclJlbmRlcmVyOmMsRXI6ZH0pPT57dmFyIFtlLGZdPV8uSighMSx2b2lkIDAsIlFjWlNnZCIpLFtoLGtdPV8uSighMSx2b2lkIDAsImNudHpyZiIpLFtsLG1dPV8uSighMSx2b2lkIDAsIlNUSWFlYiIpLFtuLHBdPV8uSighMSx2b2lkIDAsIkN3WGZiYyIpLFtyLHRdPV8uSigwLHZvaWQgMCwiczVLTE1iIiksW3Ysel09Xy5KKDAsdm9pZCAwLCJnamxxTmMiKSxbRSxBXT1fLkooMCwKdm9pZCAwLCJHVWNpWmUiKSxbRixDXT1fLkooIiIsdm9pZCAwLCJ4R0llOCIpLFtHLERdPV8uSighMSx2b2lkIDAsIkZwNUQ0YiIpLEg9Xy5OKCgpPT57dmFyIHBhPXtlYTplKCksZ2U6aCgpLHliOmwoKSxpc0RyYWdnaW5nOm4oKSx2aWRlb0R1cmF0aW9uOnYoKSx2YTpFKCksdmlkZW9JZDpGKCksQ2E6cigpLHNiOkcoKX07cmV0dXJuey4uLmRUKCksLi4ucGEsLi4uKGI/LigpPz97fSksUzpvYT0+e29hLmVhIT09dm9pZCAwJiZmKG9hLmVhKTtvYS5nZSE9PXZvaWQgMCYmayhvYS5nZSk7b2EueWIhPT12b2lkIDAmJm0ob2EueWIpO29hLmlzRHJhZ2dpbmchPT12b2lkIDAmJnAob2EuaXNEcmFnZ2luZyk7b2EuQ2EhPT12b2lkIDAmJnQob2EuQ2EpO29hLnZpZGVvRHVyYXRpb24hPT12b2lkIDAmJnoob2EudmlkZW9EdXJhdGlvbik7b2EudmEhPT12b2lkIDAmJkEob2EudmEpO29hLnZpZGVvSWQhPT12b2lkIDAmJkMob2EudmlkZW9JZCk7b2Euc2IhPT12b2lkIDAmJkQob2Euc2IpfSx0YTp7aXNGdWxsc2NyZWVuOl8uclAsCnRvZ2dsZUZ1bGxzY3JlZW46dWphLGV4aXRGdWxsc2NyZWVuOiRRLGRlOmZsYSxSajpobGEsVWw6aWxhfSxIOmEoKX19LHZvaWQgMCwiVXljTVNiIiksUj1Na2EoSCksTT1Ma2EoSCksUz1La2EoSCksWT0oKT0+e307Xy5vRigoKT0+e3ZhciBwYT1hKCk7cGEmJihwYS5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvUHJvZ3Jlc3MiLFIpLHBhLmFkZEV2ZW50TGlzdGVuZXIoIm9uVmlkZW9EYXRhQ2hhbmdlIixNKSxwYS5hZGRFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIixTKSl9KTtfLll1KCgpPT57dmFyIHBhPWEoKTtwYSYmcGE/LmlzUmVhZHk/LigpJiYocGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25WaWRlb1Byb2dyZXNzIixSKSxwYS5yZW1vdmVFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTSkscGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25TdGF0ZUNoYW5nZSIsUykpfSk7cmV0dXJuIF8uSygieXQtbXdlYi1zaG9ydHMtcGxheWVyLWNvbnRyb2xzIix7Y2xhc3M6Xy5QKHtQcm9ncmVzc0JhclNob3dpbmc6KCk9PgpYVChIKCksITApfSl9LF8uSyhfLk8se0E6KCk9PkgoKS5iYT8uWmgsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6SCx0aHVtYm5haWxEZXRhaWxzOll9KSxfLksodVYse0c6SCxIOmF9KSl9KSxfLksoXy5PLHtBOigpPT57dmFyIHBhPUgoKTtyZXR1cm4gWFQocGEsITApfHxXVChwYSwhMCl9LHRoZW46KCk9Pl8uSyhMbWEse2dmOkgsRXg6KCk9PiEwLHJlZWxQbGF5ZXJTY3J1YmJlclJlbmRlcmVyOmN9KX0pLF8uSyhfLk8se0E6KCk9Pl8ueCgibXdlYl9zaG9ydHNfZW5hYmxlX2xvbmdfcHJlc3Nfc3BlZWR1cCIpLHRoZW46KCk9Pl8uSyhfLkNQLHtyb290OiIjZ2VzdHVyZS1sYXllciJ9LCgpPT5fLksoS21hLHt1ZDpILEVyOmR9KSl9KSl9LCJTYyIpO3ZhciBIVj1fLkwoYT0+e2Z1bmN0aW9uIGIoVSl7VSE9PTB8fHIoKT9VPjUwJiYocigpfHwhRSgpKT8odCghMSksQSghMCkpOlU8PTUwJiYocigpfHxFKCkpJiYodCghMSksQSghMSkpOnQoITApfWFzeW5jIGZ1bmN0aW9uIGMoVSxoYSl7KFU9ZSgpPz9hd2FpdCBfLkxIKCkpJiYoaGE/VS51bk11dGUoITApOlUubXV0ZSghMCkpfWFzeW5jIGZ1bmN0aW9uIGQoVSl7dmFyIGhhPWUoKT8/YXdhaXQgXy5MSCgpLG1hPTUwO2hhJiYobWE9aGEuZ2V0Vm9sdW1lKCksaGEuaXNNdXRlZCgpP1pUKFUsMCk6WlQoVSxtYSkpO0cobWEpfXZhciBlPWtsYShhLkgpLGY9Xy51RSgidm9sdW1lLWNvbnRyb2xzIiksaD1fLnVFKCJidXR0b24iKSxrPV8udkUoImlucHV0IiksW2wsbV09Xy5KKCExLHZvaWQgMCwic01jTGxiIiksW24scF09Xy5KKCExLHZvaWQgMCwiZ29OcHYiKSxyPW4sdD1wLFt2LHpdPV8uSighMCx2b2lkIDAsImtBVDk1IiksRT12LEE9eixbRixDXT1fLkooNTAsdm9pZCAwLCJxNXFEMmMiKSwKRz1DLEQ9Xy5OKCgpPT57dmFyIFU9cigpO3JldHVybiBfLngoIndlYl9zaG9ydHNfa2V5Ym9hcmRfZW5hYmxlX211dGVfc2hvcnRjdXQiKT9VP18uYUEoIlBMQVlFUl9MQUJFTF9VTk1VVEUiLHZvaWQgMCwiVW5tdXRlIChtKSIpOl8uYUEoIlBMQVlFUl9MQUJFTF9NVVRFIix2b2lkIDAsIk11dGUgKG0pIik6VT9fLmFBKCJVTk1VVEVfVk9MVU1FIix2b2lkIDAsIlVubXV0ZSIpOl8uYUEoIk1VVEVfVk9MVU1FIix2b2lkIDAsIk11dGUiKX0sdm9pZCAwLCJsUjFzR2MiKSxIPV8uTigoKT0+e3ZhciBVPXIoKSxoYT1FKCk7cmV0dXJue3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOlU/IlZPTFVNRV9PRkZfRklMTEVEIjpoYT8iVk9MVU1FX1VQX0ZJTExFRCI6IlZPTFVNRV9ET1dOX0ZJTExFRCJ9fV19fSx2b2lkIDAsIlNJcWtlYyIpLFI9Xy5OKCgpPT57dmFyIFU9RigpO3JldHVybiByKCk/YCR7VX0lIHZvbHVtZSBtdXRlZGA6YCR7VX0lIHZvbHVtZWB9LHZvaWQgMCwiVGZIUDBkIiksCk09Xy5OKCgpPT5hLm9yaWVudGF0aW9uKCk9PT0idmVydGljYWxfZG93biIsdm9pZCAwLCJaN0YzdWIiKSxTPV8uTigoKT0+TSgpPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiLHZvaWQgMCwic1YyTXBiIiksWT1fLk4oKCk9PmEuRHY/LigpPz8hMSx2b2lkIDAsInpvdlVMZSIpLHBhPV8uTigoKT0+YS5DcD8uKCk/PyExLHZvaWQgMCwicEVVaHFlIik7Xy5VSigoKT0+e2Z1bmN0aW9uIFUoKXttKCEwKX1mdW5jdGlvbiBoYSgpe20oITEpfWsmJmsudmFsdWUmJihrLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixVKSxrLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixoYSksZChrLnZhbHVlKS50aGVuKCgpPT57YihOdW1iZXIoay52YWx1ZT8udmFsdWU/PzApKX0pKTtoJiZoLnZhbHVlJiYoV1MoaC52YWx1ZSwyODY2MiksaC52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsVSksaC52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsaGEpKTtfLll1KCgpPT4Ke2s/LnZhbHVlPy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVSk7az8udmFsdWU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixoYSk7aD8udmFsdWU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixVKTtoPy52YWx1ZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGhhKX0pfSk7dmFyIG9hPVU9PntVPVUubXV0ZWQ/MDpVLnZvbHVtZTtHKFUpO2IoVSk7ay52YWx1ZSYmWlQoay52YWx1ZSxVKX07Xy5uRSgoKT0+e3ZhciBVPWUoKTtVJiYoVS5hZGRFdmVudExpc3RlbmVyKCJvblZvbHVtZUNoYW5nZSIsb2EpLF8uWXUoKCk9PntVLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uVm9sdW1lQ2hhbmdlIixvYSl9KSl9LCJ4aDNHWmMiKTtyZXR1cm4gXy5LKCJ2b2x1bWUtY29udHJvbHMiLHtjbGFzczpfLlAoInl0ZFZvbHVtZUNvbnRyb2xzSG9zdCIse3l0ZFZvbHVtZUNvbnRyb2xzRGlzYWJsZVNsaWRlcjpwYX0sYS5jbGFzc05hbWUpLGVsOmZ9LF8uSygiZGl2IiwKeyJvbjpwb2ludGVybGVhdmUiOmZ1bmN0aW9uKCl7bSghMSl9LGNsYXNzOl8uUCgieXRkVm9sdW1lQ29udHJvbHNWb2x1bWVDb250cm9sc0NvbnRhaW5lciIse3l0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJWZXJ0aWNhbDpNLHl0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJFeHBhbmRlZDooKT0+bCgpfSl9LF8uSyhfLk8se0E6KCk9PiFhLmJqPy4oKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW0iLHt5dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbUV4cGFuZGVkOmwseXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW1FeHBhbmRlZEhvdmVyU3RhdGU6KCk9PmwoKSYmWSgpfSl9KX0pLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKHt5dGRWb2x1bWVDb250cm9sc011dGVJY29uQnV0dG9uQ29udGFpbmVyOk19KX0sXy5LKCJidXR0b24iLHsiYXJpYS1sYWJlbCI6RCwKdGl0bGU6RCxlbDpoLCJvbjpjbGljayI6ZnVuY3Rpb24oVSl7WFMoMjg2NjIpO2smJmsudmFsdWUmJmMoay52YWx1ZSxyKCkpO1Uuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpwb2ludGVyZW50ZXIiOmZ1bmN0aW9uKCl7bSghMCl9LGNsYXNzOiJ5dGRWb2x1bWVDb250cm9sc011dGVJY29uQnV0dG9uIn0sSD9fLksoXy5qRix7ZGF0YTpILGFsdDpELGNsYXNzTmFtZToieXRkVm9sdW1lQ29udHJvbHNNdXRlSWNvbiJ9KTpudWxsKSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyIix7eXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJFeHBhbmRlZDpsLHl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWw6TSx5dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lclZlcnRpY2FsRG93bjpNLHl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWxFeHBhbmRlZDooKT0+bCgpJiZNKCkseXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJEaXNhYmxlU2xpZGVyOnBhLAp5dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lcldpdGhTY3JpbTooKT0+IWEuYmo/LigpfSksIm9uOmNsaWNrIjpmdW5jdGlvbihVKXtVLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKCJpbnB1dCIse2RpcjoibHRyIiwiYXJpYS1sYWJlbCI6Xy5hQSgiVk9MVU1FIiksdGl0bGU6Xy5hQSgiVk9MVU1FIiksZWw6aywib246aW5wdXQiOmZ1bmN0aW9uKFUpe2smJmsudmFsdWUmJmpsYShOdW1iZXIoay52YWx1ZT8udmFsdWU/PzApLGUoKSk7VS5zdG9wUHJvcGFnYXRpb24oKX0sdHlwZToicmFuZ2UiLGNsYXNzOiJ5dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlciIsaWQ6InZvbHVtZS1pbnB1dCIscm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW5vdyI6RiwiYXJpYS12YWx1ZXRleHQiOlIsImFyaWEtdmFsdWVtaW4iOjAsImFyaWEtdmFsdWVtYXgiOjEwMCwiYXJpYS1vcmllbnRhdGlvbiI6U30pKSkpfSwiVWMiKTt2YXIgTm1hPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgYz1hLkcoKSxkPWMuSD8uZ2V0U2l6ZT8uKCk/LndpZHRoO3JldHVybihjLmJhPy5FZXx8Xy54KCJtd2ViX2VuYWJsZV9wb3J0cmFpdF9mdWxsc2NyZWVuX2FjdGlvbnMiKSkmJiEhZCYmZDw0MjB9O3JldHVybiBfLksoInl0bS1mdWxsc2NyZWVuLXJlbGF0ZWQtdmlkZW9zLWVudHJ5LXBvaW50LXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEhvc3QiLHt5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaXRsZUhpZGRlbjpifSl9LF8uSygiYnV0dG9uIix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxCdXR0b24iLHt5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTaW5nbGVUaHVtYm5haWw6Xy54KCJtd2ViX2VuYWJsZV9wb3J0cmFpdF9mdWxsc2NyZWVuX2FjdGlvbnMiKX0pLAoib246Y2xpY2siOmZ1bmN0aW9uKGMpe2EuRygpLlMoe05hOiEwfSk7Xy5NTygiLmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb24gLm1lZGlhLWl0ZW0taW5mbyBhIik7YlQoKTtjLnN0b3BQcm9wYWdhdGlvbigpfSwiYXJpYS1sYWJlbCI6KCk9PmEuZGF0YSgpLnRpdGxlPy5jb250ZW50Pz8iIn0sXy5LKF8uTyx7QTooKT0+IWIoKSx0aGVuOigpPT5fLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS50aXRsZX0pfSksXy5LKF8uTyx7QTooKT0+YS5kYXRhKCkuaW1hZ2VGcm9udCx0aGVuOmM9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbFRodW1ibmFpbFN0YWNrIn0sXy5LKF8uTyx7QTooKT0+IV8ueCgibXdlYl9lbmFibGVfcG9ydHJhaXRfZnVsbHNjcmVlbl9hY3Rpb25zIil8fCEhYS5kYXRhKCkuaW1hZ2VCYWNrLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxGYWRlZFRodW1ibmFpbCIsCiJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTbWFsbEZhZGVkVGh1bWJuYWlsIil9KX0pLF8uSyhfLk8se0E6KCk9PiFfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfHwhIWEuZGF0YSgpLmltYWdlTWlkZGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxGYWRlZFRodW1ibmFpbCIsInl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbExhcmdlRmFkZWRUaHVtYm5haWwiKX0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsQ29udGFpbmVyIn0sXy5LKF8uakYse2RhdGE6YyxhbHQ6IiIsY2xhc3NOYW1lOiJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWwiLGFyaWFIaWRkZW46ITAsCllhOiEwfSkpKX0pKSl9LCJWYyIpO3ZhciBJVj1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmN9KT0+Xy5LKCJ5dG0tc2xpbS1tZXRhZGF0YS1idXR0b24tcmVuZGVyZXIiLHtjbGFzczoieXRtU2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXJIb3N0In0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmN9KX0pKSwiV2MiKTtJVi5pZG9tQ29tcGF0PSEwO3ZhciBKVj1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmMsSGM6ZH0pPT57dmFyIGU9Xy5ESShfLlJMLCgpPT5hKCkubGlrZVN0YXR1c0VudGl0eUtleXx8IiIpLGY9KCk9Pl8udFAoKSYmYSgpLmlzTGlrZSYmYSgpLmJ1dHRvbj8udG9nZ2xlQnV0dG9uUmVuZGVyZXI/e3N0eWxlOiJtb25vIn06Yz8uKCksaD0oKT0+Xy50UCgpJiZhKCkuaXNMaWtlJiZhKCkuYnV0dG9uPy50b2dnbGVCdXR0b25SZW5kZXJlcj97YW5pbWF0ZUljb246InRydWUifTp2b2lkIDA7cmV0dXJuIF8uSygieXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlciIse2NsYXNzOmJ9LF8uSyhfLk8se0E6KCk9Pnt2YXIgaz1hKCkuYnV0dG9uPy50b2dnbGVCdXR0b25SZW5kZXJlcjtpZihrJiZhKCkubGlrZVN0YXR1c0VudGl0eUtleSl7bGV0IGw9YSgpLmlzTGlrZT9lKCk/Lmxpa2VTdGF0dXM9PT0iTElLRSI6ZSgpPy5saWtlU3RhdHVzPT09IkRJU0xJS0UiO3JldHVybnsuLi5rLAppc1RvZ2dsZWQ6bH19cmV0dXJuIGt9LHRoZW46az0+Xy5LKF8ucU8se2RhdGE6ayxzdHlsZTpoLGNsYXNzTmFtZTpiLGJ1dHRvbk92ZXJyaWRlczpmLEhjOmR9KX0pKX0sIlhjIik7SlYuaWRvbUNvbXBhdD0hMDt2YXIgS1Y9Xy5MKGE9PntmdW5jdGlvbiBiKHIpe3ZhciB0PWMoKTt0LmJhPy5Eenx8Xy50UCgpfHx0LmlzRnVsbHNjcmVlbiYmdC50YS50b2dnbGVGdWxsc2NyZWVuKCk7ci5zdG9wUHJvcGFnYXRpb24oKX12YXIgYz1hLkcsZD0oKT0+YS5HKCkuSD8uZ2V0U2l6ZT8uKCk/LndpZHRoLGU9Xy5OKCgpPT4hIWEuRygpLkg/LmlzRW1iZWRzU2hvcnRzTW9kZT8uKCksdm9pZCAwLCJ3c0hEWiIpLGY9Xy5QKHsicGxheWVyLWNvbnRyb2xzLWhpZGUiOigpPT4hKCFJUyhhLkcoKSl8fGEuRygpLmJhPy5FZSYmIWEuRygpLk5hKX0pLGg9YS53YXRjaE5leHRSZXNwb25zZSxrPWEudGh1bWJuYWlsUHJldmlld1JlbmRlcmVyLGw9YS5wbGF5ZXJNdXRlZEF1dG9wbGF5T3ZlcmxheVJlbmRlcmVyLG09KCk9Pnt2YXIgcj1Da2EoaD8uKCksaz8uKCkpO3JldHVybiBlKCl8fGEuRygpLmJhPy5vaD9yLmZpbHRlcih0PT5fLkIodCxmbWEpPyExOl8uQih0LF8uVkwpPy5pY29uPy5pY29uVHlwZSE9PSJBRERfVE9fV0FUQ0hfTEFURVIiKToKcn0sbj0oKT0+e3ZhciByPWg/LigpLHQ9az8uKCksdj1sPy4oKSx6PSRTKGEuRygpKTt2YXIgRT1lKCk7aWYodilFPXY/LnlvdXR1YmVXYXRlcm1hcms7ZWxzZSBpZih0PV8uQih0Py5xdWlja0FjdGlvbnNCYXIsS1MpPy53YXRjaE9uWW91dHViZUJ1dHRvbix2PV8uQihyPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5mdWxsc2NyZWVuUXVpY2tBY3Rpb25zQmFyLEtTKT8ud2F0Y2hPbllvdXR1YmVCdXR0b24scj1fLkIodHx8dixsVik/LndhdGNoT25ZdExhYmVsQnV0dG9uLHQ9Xy5CKHR8fHYsbFYpPy55dExvZ29Pbmx5QnV0dG9uLHopRT1yO2Vsc2V7aWYoRSl0cnl7bGV0IEE9dC5idXR0b25WaWV3TW9kZWwsRj1BLnRpdGxlRm9ybWF0dGVkLmF0dGFjaG1lbnRSdW5zWzBdLmVsZW1lbnQ7Ri50eXBlLmltYWdlVHlwZS5pbWFnZS5zb3VyY2VzWzBdLmNsaWVudFJlc291cmNlLmltYWdlTmFtZT0ic2hvcnRzX3RleHRfbG9nbyI7Ri5wcm9wZXJ0aWVzLmxheW91dFByb3BlcnRpZXMuaGVpZ2h0LnZhbHVlPQoyNDtGLnByb3BlcnRpZXMubGF5b3V0UHJvcGVydGllcy53aWR0aC52YWx1ZT03Mjt6PUE/Lm9uVGFwPy5pbm5lcnR1YmVDb21tYW5kPy51cmxFbmRwb2ludD8udXJsO2lmKEUmJnomJnouaW5jbHVkZXMoIi93YXRjaD92PSIpKXtsZXQgQz16LnJlcGxhY2UoIi93YXRjaD92PSIsIi9zaG9ydHMvIik7QS5vblRhcC5pbm5lcnR1YmVDb21tYW5kLnVybEVuZHBvaW50LnVybD1DfX1jYXRjaChBKXt9RT10fXJldHVybiBFfSxwPXtjbGFzc05hbWU6ImNpcmNsZS1idXR0b25zIixidXR0b25PdmVycmlkZXM6e3N0eWxlOiJvdmVybGF5In19O3JldHVybiBfLksoInBsYXllci1mdWxsc2NyZWVuLWFjdGlvbi1tZW51Iix7Y2xhc3M6Inl0d1BsYXllckZ1bGxzY3JlZW5BY3Rpb25NZW51SG9zdCJ9LF8uSygiZGl2Iix7Y2xhc3M6Zn0sXy5LKCJkaXYiLHtjbGFzczoiZnVsbHNjcmVlbi1hY3Rpb24tbWVudSIsIm9uOmNsaWNrIjpmdW5jdGlvbihyKXt2YXIgdD1jKCk7Y1QodCx7SWM6ITB9KTtyLnN0b3BQcm9wYWdhdGlvbigpOwpyLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTooKT0+IShhLkcoKS5iYT8uaGlkZVZpZGVvSW5mb3x8YS5HKCkuYmE/Lll3fHxkKCkmJmQoKTwzMjApLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJhY3Rpb24tbWVudS1lbmdhZ2VtZW50LWJ1dHRvbnMtd3JhcHBlciIsIm5vLWxhYmVsLWV4cCIpLCJvbjpjbGljayI6Yn0sXy5LKF8uVyx7ZGF0YTptfSx7YnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Xy5LKF8ucE8se2RhdGE6ciwuLi5wfSksc2xpbU1ldGFkYXRhVG9nZ2xlQnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Xy5LKEpWLHtkYXRhOnIsY2xhc3NOYW1lOl8uUChwLmNsYXNzTmFtZSx7Imxpa2UtYnV0dG9uLW5vLWxhYmVsLWV4cCI6KCk9PnIoKS5pc0xpa2V9KSxIYzooKT0+cigpLmlzTGlrZT97QXM6ITB9OnZvaWQgMCxidXR0b25PdmVycmlkZXM6KCk9PnIoKS5pc0xpa2U/dm9pZCAwOnAuYnV0dG9uT3ZlcnJpZGVzfSksc2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Cl8uSyhJVix7ZGF0YTpyLC4uLnB9KSxmdWxsc2NyZWVuRW5nYWdlbWVudEFjdGlvbkJhclNhdmVCdXR0b25SZW5kZXJlcjooe2RhdGE6cn0pPT5fLksoSVYse2RhdGE6ciwuLi5wfSksYnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLkhELHtkYXRhOnIsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJGdWxsc2NyZWVuQWN0aW9uTWVudUNpcmNsZUJ1dHRvbnMiLGJ1dHRvbk92ZXJyaWRlczp7aWNvblBvc2l0aW9uOiJpY29uLW9ubHktNDAifX0pLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOih7ZGF0YTpyfSk9Pl8uSyhfLnFPLHtkYXRhOnIsLi4ucH0pfSkpfSksXy5LKCJkaXYiLHtjbGFzczoicXVpY2stYWN0aW9ucy13cmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+IWEuRygpLmJhPy5YdyYmISRTKGEuRygpKSYmIShkKCkmJmQoKTwzMjApJiYhZSgpJiZMUyhhLndhdGNoTmV4dFJlc3BvbnNlPy4oKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoiZnVsbHNjcmVlbi13YXRjaC1uZXh0LWVudHJ5cG9pbnQtd3JhcHBlciJ9LApfLksoTm1hLHtkYXRhOigpPT5MUyhhLndhdGNoTmV4dFJlc3BvbnNlPy4oKSksRzpjfSkpfSksXy5LKF8uTyx7QTooKT0+JFMoYS5HKCkpJiYoZSgpfHxkKCkmJmQoKTwzMjApPyExOiEwLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6IndhdGNoLW9uLXlvdXR1YmUtYnV0dG9uLXdyYXBwZXIifSxfLksoXy5XLHtkYXRhOm59LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uSEQse2RhdGE6cixjbGFzc05hbWU6IndhdGNoLW9uLXlvdXR1YmUtYnV0dG9uIixidXR0b25PdmVycmlkZXM6KCk9Pnt2YXIgdD1yKCk7cmV0dXJue3NpemU6IkwiLGRpc2FibGVkOiFfLkIoXy5CKHQ/Lm9uVGFwLF8uT0QpLF8uVkQpfX19KSxidXR0b25SZW5kZXJlcjpfLnBPLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOl8ucU99KSl9KSkpKSl9LCJZYyIpO0tWLmlkb21Db21wYXQ9ITA7dmFyIExWPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgbT1hLnBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXI/LigpO3JldHVybiBfLkIobT8uZW5kU2NyZWVuLHBWKT8uY29udGludWVXYXRjaGluZ30sYz0oKT0+e3ZhciBtPWEucGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcj8uKCk7cmV0dXJuIF8uQihtPy5lbmRTY3JlZW4scFYpPy5icmFuZGluZ0ljb259LFtkLGVdPV8uSighMSx2b2lkIDAsIkVlWFhCYyIpLGYsaD0oKT0+e2NsZWFyVGltZW91dChmKTtlKCExKTtmPXNldFRpbWVvdXQoKCk9PntlKCEwKX0sNEUzKX0saz0oKT0+e3ZhciBtPWEuRygpLkg/LmdldFZpZGVvRGF0YSgpPy52aWRlb19pZDttJiZhLkcoKS5IPy5jdWVWaWRlb0J5SWQobSl9LGw9KCk9Pnt2YXIgbT1fLlV3KGEucGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcj8uKCkudHJhY2tpbmdQYXJhbXMpO20mJl8uSk8obSl9O18uVUooKCk9PntoKCk7YS5HKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25NdXRlZEF1dG9wbGF5U3RhcnRzIiwKaCk7YS5HKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25BdXRvcGxheUJsb2NrZWQiLGspO2EuRygpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uVmlkZW9EYXRhQ2hhbmdlIixsKX0pO18uWXUoKCk9PntjbGVhclRpbWVvdXQoZik7YS5HKCkuSD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25NdXRlZEF1dG9wbGF5U3RhcnRzIixoKTthLkcoKS5IPy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbkF1dG9wbGF5QmxvY2tlZCIsayk7YS5HKCkuSD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25WaWRlb0RhdGFDaGFuZ2UiLGwpfSk7cmV0dXJuIF8uSygieXRtLW11dGVkLWF1dG9wbGF5LW92ZXJsYXkiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIb3N0Iiwib246Y2xpY2siOmZ1bmN0aW9uKG0pe3ZhciBuPWEuRz8uKCkuSCxwPW4/LmdldFZpZGVvRGF0YSgpPy52aWRlb19pZCxyPW4/LmdldEN1cnJlbnRUaW1lKCk7cCYmciYmKG4/LnVuTXV0ZSgpLG4/LmxvYWRWaWRlb0J5SWQocCxyKSk7Cm0uc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOigpPT51UyhhLkcoKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCYWNrZ3JvdW5kIn0sXy5LKCJkaXYiLG51bGwsXy5LKF8uVyx7ZGF0YTpifSx7YnV0dG9uVmlld01vZGVsOl8uSER9KSksXy5LKCJkaXYiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCcmFuZGluZ0ljb24ifSxfLksoXy5PLHtBOmMsdGhlbjptPT5fLksoXy5qRix7ZGF0YTptLGFsdDoiWW91VHViZSBMb2dvIn0pfSkpKSxXOigpPT5fLksoImRpdiIsbnVsbCxfLksoImRpdiIse2NsYXNzOl8uUCgieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlBY3Rpb25NZW51Iix7eXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIaWRlQWN0aW9uTWVudTpkfSl9LF8uSyhLVix7RzphLkcscGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcjphLnBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXJ9KSksXy5LKCJkaXYiLAp7Y2xhc3M6Inl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIn0sXy5LKF8uTUQse2ljb246ImVxdWFsaXplciJ9KSkpfSkpfSwiWmMiKTtMVi5pZG9tQ29tcGF0PSEwO3ZhciBPbWE9Xy5MKCh7Rng6YSxhbmltYXRpb246Yn0pPT57dmFyIGM9Xy51RSgiZGl2IiksW2QsZV09Xy5KKCExLHZvaWQgMCwidGkwMm8iKSxmPTAsaD1fLngoIm13ZWJfZW5hYmxlX3Nob3J0c19oZWFydF9uZXdfZG91YmxlX3RhcCIpPyJsaWtlX3RhcF9mZWVkYmFja19zaG9ydHNfaGVhcnQiOiJsaWtlXzI0MGRwX2FuaW1hdGlvbl92MiI7Xy5uRSgoKT0+e2UoITApO18uamYuQWEoZik7Zj1fLllqKCgpPT57ZSghMSl9LDJFMyk7dmFyIGs9Yj8uKCk/Lm5hbWU7aWYoaz09PWgpe2NVKGgpO2s9Yj8uKCk/Lng7dmFyIGw9Yj8uKCk/Lnk7bGV0IG09Yy52YWx1ZTttJiYoayE9PXZvaWQgMCYmbCE9PXZvaWQgMD8obS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG0uc3R5bGUubGVmdD1gJHtrfXB4YCxtLnN0eWxlLnRvcD1gJHtsfXB4YCxtLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKC01MCUsIC01MCUpIik6KG0uc3R5bGUucG9zaXRpb249IiIsbS5zdHlsZS5sZWZ0PSIiLG0uc3R5bGUudG9wPQoiIixtLnN0eWxlLnRyYW5zZm9ybT0iIikpfWVsc2V7aWYobD1jLnZhbHVlKWwuc3R5bGUucG9zaXRpb249IiIsbC5zdHlsZS5sZWZ0PSIiLGwuc3R5bGUudG9wPSIiLGwuc3R5bGUudHJhbnNmb3JtPSIiO2s9PT0icGxheV85NmRwX2FuaW1hdGlvbiI/Y1UoInBsYXlfOTZkcF9hbmltYXRpb24iKTprPT09InBhdXNlXzk2ZHBfYW5pbWF0aW9uIiYmY1UoInBhdXNlXzk2ZHBfYW5pbWF0aW9uIil9fSwiRUNKVWRkIik7cmV0dXJuIF8uSygic2hvcnRzLXRvdWNoLWZlZWRiYWNrIix7Y2xhc3M6Xy5QKCJ5dFNob3J0c1RvdWNoRmVlZGJhY2tIb3N0Iix7eXRTaG9ydHNUb3VjaEZlZWRiYWNrSGlkZGVuOigpPT4hZCgpfSl9LF8uSyhfLk8se0E6YSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNrIn0sXy5LKCJkaXYiLHtlbDpjLGNsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9uV3JhcHBlciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LApfLksoXy5jTSx7YW5pbWF0aW9uTmFtZTooKT0+aCxkYXRhOnthbmltYXRpb25Db25maWc6YlUoaCl9LGNsYXNzTmFtZToieXRTaG9ydHNUb3VjaEZlZWRiYWNrTGlrZUFuaW1hdGlvbiJ9KSkpfSksXy5LKCJkaXYiLHtjbGFzczoieXRTaG9ydHNUb3VjaEZlZWRiYWNrVG91Y2hGZWVkYmFjayJ9LF8uSyhfLmNNLHthbmltYXRpb25OYW1lOigpPT4icGxheV85NmRwX2FuaW1hdGlvbiIsZGF0YTp7YW5pbWF0aW9uQ29uZmlnOmJVKCJwbGF5Xzk2ZHBfYW5pbWF0aW9uIil9LGNsYXNzTmFtZToieXRTaG9ydHNUb3VjaEZlZWRiYWNrUGxheVBhdXNlQW5pbWF0aW9uIn0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNrIn0sXy5LKF8uY00se2FuaW1hdGlvbk5hbWU6KCk9PiJwYXVzZV85NmRwX2FuaW1hdGlvbiIsZGF0YTp7YW5pbWF0aW9uQ29uZmlnOmJVKCJwYXVzZV85NmRwX2FuaW1hdGlvbiIpfSxjbGFzc05hbWU6Inl0U2hvcnRzVG91Y2hGZWVkYmFja1BsYXlQYXVzZUFuaW1hdGlvbiJ9KSkpfSwKImFkIik7dmFyIGRVPXZvaWQgMCxlVT12b2lkIDAsZlUsZ1U9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgW2IsY109Xy5KKDAsdm9pZCAwLCJWZnY1OCIpLFtkLGVdPV8uSigwLHZvaWQgMCwiZ0dDTjlkIiksW2YsaF09Xy5KKCExLHZvaWQgMCwiblNhTGgiKTtyZXR1cm4gXy5LKCJ5dG0tYm90dG9tLXNoZWV0LW92ZXJsYXktcmVuZGVyZXIiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250YWluZXIiLHN0eWxlOigpPT57dmFyIGs9YigpLGw9ZCgpLG09ZigpO2s9YHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke01hdGgubWF4KDAsTWF0aC5yb3VuZChsLWspKX1weCk7YDttJiYoays9InRyYW5zaXRpb246IDAuMnM7Iik7cmV0dXJuIGt9LCJvbjp0b3VjaHN0YXJ0IjpmdW5jdGlvbihrKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSI7YyhrLnRvdWNoZXNbMF0uY2xpZW50WSk7Cmsuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaG1vdmUiOmZ1bmN0aW9uKGspe2Uoay50b3VjaGVzWzBdLmNsaWVudFkpO2suc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaGVuZCI6ZnVuY3Rpb24oayl7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3I9IiI7d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodC1kKCk8PTMwMD8oaCghMCksZSh3aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0KSxzZXRUaW1lb3V0KCgpPT57aWYoZFUhPW51bGwpe3ZhciBsPV8uSHooKTtsLnNldCgic3VwcHJlc3NfYXBwX3Vwc2VsbCIsMSk7bC5zYXZlKCk7ZVUmJihlVS5xdj0hMCxlVT12b2lkIDApO18uS04oZFUpO2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZFUpO2RVPXZvaWQgMDtmVT8uKCk7ZlU9dm9pZCAwO18ueSgpLnJlc29sdmUoXy55UCkuUXUoKX19LDI1MCkpOihoKCEwKSxlKDApKTtrLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIZWFkZXIiLApzdHlsZTooKT0+YSgpLmJhY2tncm91bmRJbWFnZT9gYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7YSgpLmJhY2tncm91bmRJbWFnZX0pO2A6dm9pZCAwfSxfLksoImRpdiIse2NsYXNzOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckRyYWdIYW5kbGUifSksXy5LKF8uTUQse2ljb246KCk9PmEoKS5jZW50cmFsSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNlbnRyYWxJY29uIn0pLF8uSyhfLlcse2RhdGE6KCk9PmEoKS5jbG9zZUJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTprfSk9Pl8uSyhfLnBPLHtkYXRhOmssY2xhc3NOYW1lOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNsb3NlIixwcmV2ZW50RGVmYXVsdDohMCxRZjohMH0pfSkpLF8uSygiZGl2Iix7Y2xhc3M6Ill0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ29udGVudHMifSxfLksoImRpdiIse2NsYXNzOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlclRpdGxlIn0sCl8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSksXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTdWJ0aXRsZSJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkuc3VidGl0bGV9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbnN9LHtidXR0b25SZW5kZXJlcjpfLnBPfSkpKSl9LCJiZCIpO2dVLmlkb21Db21wYXQ9ITA7dmFyIE1WPV8uTCgoe2RhdGE6YSxzdG9wUHJvcGFnYXRpb246Yn0pPT5fLksoInl0bS1mb3JjZWQtbXV0ZS1tZXNzYWdlLXJlbmRlcmVyIixudWxsLF8uSyhfLnZPLHtpY29uVHlwZTpfLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8iYXVkaW9fc2xhc2giOiJhdWRpb19vZmYiLGFyaWFMYWJlbDooKT0+Xy5hTihhKCkuZm9yY2VkTXV0ZU1lc3NhZ2VUZXh0KSxvbmNsaWNrOmM9PntiPy4oKSYmYy5zdG9wUHJvcGFnYXRpb24oKTtjPWEoKTtfLkIoYy5oZWxwQnV0dG9uLF8uVkwpPy5uYXZpZ2F0aW9uRW5kcG9pbnQmJl8uQUooXy5CKGMuaGVscEJ1dHRvbixfLlZMKT8ubmF2aWdhdGlvbkVuZHBvaW50LGMsITApfSxMbToieXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UifSkpLCJlZCIpO01WLmlkb21Db21wYXQ9ITA7dmFyIE5WPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixHSjpjfSk9Pnt2YXIgZD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtyZXR1cm4gXy5LKCJ5dG0taW5mby1wYW5lbC1jb250ZW50LXJlbmRlcmVyIix7Y2xhc3M6Xy5QKGIsInl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3QiLHt5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0SXNXYXRjaEluZm9QYW5lbDpjLHl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RDaW5lbWF0aWNCYWNrZ3JvdW5kOigpPT5kJiZjPy4oKX0pLCJ5dG0taW5mby1wYW5lbC1jb250ZW50LXRydW5jYXRlLXBhcmFncmFwaHMiOigpPT4hIWEoKS50cnVuY2F0ZVBhcmFncmFwaHN8fHZvaWQgMCwieXRtLWluZm8tcGFuZWwtY29udGVudC1oYXMtbWVudSI6KCk9PiEhYSgpLm1lbnV8fHZvaWQgMCwiZGF0YS1iYWNrZ3JvdW5kIjooKT0+YSgpLmJhY2tncm91bmR9LF8uSyhfLm5ILHtjb21tYW5kOigpPT5hKCkuc291cmNlRW5kcG9pbnQsCmNsYXNzTmFtZToieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyRW5kcG9pbnQifSxfLksoUG1hLHtkYXRhOmF9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm1lbnV9LHttZW51UmVuZGVyZXI6KHtkYXRhOmV9KT0+Xy5LKF8uU1Ase2RhdGE6ZSxjbGFzc05hbWU6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlck1lbnUifSl9KSl9LCJmZCIpLFBtYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlciIsImRhdGEtaGFzLWljb24iOigpPT4hIWEoKS5pY29ufSxfLksoXy5PLHtBOigpPT5hKCkuc291cmNlQXRUb3AmJmEoKS5zb3VyY2UsdGhlbjooKT0+Xy5LKE9WLHtkYXRhOmF9KX0pLF8uSyhfLk8se0E6KCk9PmEoKS50aXRsZSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaXRsZUNvbnRhaW5lciJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSxfLksoXy5NRCwKe2ljb246KCk9PmEoKS5pbmxpbmVMaW5rSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbiJ9KSl9KSxfLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJCb2R5In0sXy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGV4dCJ9LF8uSyhfLk8se0E6KCk9PiFhKCkuc291cmNlQXRUb3AmJmEoKS5zb3VyY2UsdGhlbjooKT0+Xy5LKE9WLHtkYXRhOmF9KX0pLF8uSyhfLmdHLHtwYTooKT0+YSgpLnBhcmFncmFwaHN8fFtdfSwoYixjKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUGFyYWdyYXBoIn0sXy5LKF8uSUose2RhdGE6Yn0pLF8uSyhfLk8se0E6KCk9PmMoKT09PWEoKS5wYXJhZ3JhcGhzLmxlbmd0aC0xJiZhKCkuaW5saW5lU291cmNlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZSJ9LApfLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJJbmxpbmVTb3VyY2VUZXh0In0sXy5LKF8uSUose2RhdGE6KCk9PmEoKS5pbmxpbmVTb3VyY2V9KSksXy5LKF8uTUQse2ljb246KCk9PmEoKS5pbmxpbmVMaW5rSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbiJ9KSl9KSkpKSxfLksoXy5PLHtBOigpPT5hKCkuaWNvbix0aGVuOmI9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhlYWRlclJpZ2h0SXRlbXMifSxfLksoXy5NRCx7aWNvbjooKT0+YigpLmljb25UeXBlLGNsYXNzTmFtZToieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySGVhZGVySWNvbiJ9KSxfLksoXy5JSix7ZGF0YTooKT0+YSgpLnRpdGxlfSkpfSksXy5LKF8uTyx7QTooKT0+YSgpLnRodW1ibmFpbCx0aGVuOmI9Pl8uSyhfLlVQLHt0aHVtYm5haWxEZXRhaWxzOmIsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaHVtYm5haWwiLAphbHQ6IiIsWWE6Xy54KCJjM19wcmVzZXJ2ZV9kaW1lbnNpb25zX2tzIik/dm9pZCAwOiEwLFRhOl8ueCgiYzNfcHJlc2VydmVfZGltZW5zaW9uc19rcyIpP3ZvaWQgMDohMH0pfSkpKSwiZ2QiKSxPVj1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyTWV0YWRhdGEifSxfLksoXy5PLHtBOigpPT5hKCkuc291cmNlLHRoZW46Yj0+Xy5LKF8uSUose2RhdGE6Yn0pfSksXy5LKF8uTyx7QTooKT0+YSgpLnB1Ymxpc2hlZFRpbWVUZXh0LHRoZW46Yj0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUHVibGlzaFRpbWUifSwiXHUyMDIyICIsXy5LKF8uSUose2RhdGE6Yn0pKX0pKSwiaGQiKTtOVi5pZG9tQ29tcGF0PSEwO3ZhciBQVj1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJ5dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXIiLHtiYWNrZ3JvdW5kOigpPT5hKCkuYmFja2dyb3VuZH0sXy5LKF8uTyx7QTooKT0+YSgpLnRpdGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dG0taW5mby1wYW5lbC1jb250YWluZXItaGVhZGVyLWxlZnQtaXRlbXMifSxfLksoXy5NRCx7aWNvbjooKT0+YSgpLmljb24/Lmljb25UeXBlLGNsYXNzTmFtZToieXRtLWluZm8tcGFuZWwtY29udGFpbmVyLWhlYWRlci1pY29uIn0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm1lbnV9LHttZW51UmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKF8uU1Ase2RhdGE6YixjbGFzc05hbWU6Inl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXItbWVudSJ9KX0pKX0pLF8uSyhfLlcse2RhdGE6KCk9PgphKCkuY29udGVudH0se2luZm9QYW5lbENvbnRlbnRSZW5kZXJlcjpOVn0pKSwiaWQiKTtQVi5pZG9tQ29tcGF0PSEwO3ZhciBSVj1fLkwoKHtkYXRhOmEsaXNBY3RpdmU6YixISjpjLGNsYXNzTmFtZTpkfSk9Pnt2YXIgZT1fLmNJKF8uWlApLGY9Xy5jSSh3amEpLGg9Xy5jSSh2amEpLGs7Xy5uRSgoKT0+e2I/LigpJiZhKCk/LnRyYWNraW5nUGFyYW1zJiZhKCkudHJhY2tpbmdQYXJhbXMhPT1rJiZfLmlxKCkhPT1rJiYoXy5seChfLmh4KCksYSgpLnRyYWNraW5nUGFyYW1zKSxrPV8uaXEoKSl9LCJMUmVTbGIiKTtfLlVKKCgpPT57bmxhKGEoKSl9KTtyZXR1cm4gXy5LKCJ5dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlciIse2NsYXNzOmQsImRhdGEtaXMtYWN0aXZlIjpifHx2b2lkIDAsImRhdGEtaGFzLWluZm8tcGFuZWwiOigpPT57dmFyIGw9YSgpLG09Xy5CKGwucGxheWVyT3ZlcmxheSxjbWEpO3JldHVybiEhbC5pbmZvUGFuZWx8fCEhbT8uaW5mb1BhbmVsfHx2b2lkIDB9LCJleHRyYWN0LW92ZXJsYXkiOigpPT5lKCk9PT0xfHx2b2lkIDAsImV4dHJhY3QtYWN0aW9uLWJhciI6KCk9Pl8uYU0oZSgpKXx8CnZvaWQgMCwic21hbGxlci1zY3JlZW4tc3F1ZWV6ZWJhY2siOigpPT5mKCl8fHZvaWQgMCwiaXMtZnVsbHNjcmVlbiI6KCk9PmgoKXx8dm9pZCAwLCJpcy13ZWIiOigpPT5jPy4oKXx8dm9pZCAwfSxfLksoXy5PLHtBOigpPT5hKCkucGxheWVyT3ZlcmxheSx0aGVuOmw9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+ITAsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoicmVlbC1wbGF5ZXItb3ZlcmxheS10b3AtYmFyIn0sXy5LKFFWLHtkYXRhOmF9KSl9KSxfLksoXy5XLHtkYXRhOmx9LHtyZWVsUGxheWVyT3ZlcmxheVZpZXdNb2RlbDpfLmJqYX0pKSxXOigpPT5fLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6InJlZWwtcGxheWVyLW92ZXJsYXktbWFpbi1jb250ZW50In0sXy5LKCJkaXYiLHtjbGFzczoicmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YSJ9LF8uSyhRbWEse2RhdGE6YX0pKSxudWxsLF8uSyhSbWEse2RhdGE6YX0pKSxfLksoU21hLHtkYXRhOmF9KSl9KSwKXy5LKFRtYSx7ZGF0YTphfSkpfSwia2QiKTtSVi5pZG9tQ29tcGF0PSEwOwp2YXIgUW1hPV8uTCgoe2RhdGE6YX0pPT5fLksoXy5XLHtkYXRhOigpPT5hKCkubWV0YXBhbmVsfSx7cmVlbE1ldGFwYW5lbFZpZXdNb2RlbDpfLnJRfSksImxkIiksU21hPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJyZWVsLXBsYXllci1vdmVybGF5LWluZm8tcGFuZWwifSxfLksoXy5XLHtkYXRhOigpPT5hKCkuaW5mb1BhbmVsfSx7aW5mb1BhbmVsQ29udGFpbmVyUmVuZGVyZXI6UFZ9KSksIm1kIiksUm1hPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJyZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMifSxfLksoUVYse2RhdGE6YX0pLF8uSyhVbWEse2RhdGE6YX0pLF8uSyhfLlcse2RhdGE6KCk9PmEoKS5waXZvdEJ1dHRvbn0se3Bpdm90QnV0dG9uVmlld01vZGVsOl8uaVF9KSxfLksoXy5XLHtkYXRhOigpPT5hKCkuZm9yY2VkTXV0ZU1lc3NhZ2VSZW5kZXJlcn0se2ZvcmNlZE11dGVNZXNzYWdlUmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKE1WLHtkYXRhOmIsCnN0b3BQcm9wYWdhdGlvbjohMH0pfSkpLCJuZCIpLFFWPV8uTCgoe2RhdGE6YX0pPT5fLksoXy5PLHtBOigpPT4hXy5URSgpLHRoZW46KCk9Pl8uSyhfLlcse2RhdGE6KCk9PmEoKS5tZW51fSx7bWVudVJlbmRlcmVyOih7ZGF0YTpifSk9Pl8uSyhfLlRQLHtkYXRhOmIsc2hvd0ljb246ITAsYnV0dG9uT3ZlcnJpZGVzOmhVKCl9KX0pLFc6KCk9Pl8uSyhfLk8se0E6KCk9Pl8uVEUoKSx0aGVuOigpPT5fLksoXy5XLHtkYXRhOigpPT5hKCkubWVudX0se21lbnVSZW5kZXJlcjooe2RhdGE6Yn0pPT5fLksoXy5TUCx7ZGF0YTpiLGRmOiJyZWVsLXBsYXllci1vdmVybGF5LW92ZXJmbG93LW1lbnUiLEhhOiExLHVuOiExLHN0b3BQcm9wYWdhdGlvbjohMCxidXR0b25PdmVycmlkZXM6aFUoKX0pfSl9KX0pLCJxZCIpLFVtYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbkJhcn0se3JlZWxBY3Rpb25CYXJWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKF8ualEse2RhdGE6YiwKQWY6e2ljb25Qb3NpdGlvbjoiaWNvbi13aXRoLWxhYmVsIixzaXplOiJTIix0eXBlOiJ0ZXh0IixzdHlsZToib3ZlcmxheSJ9fSl9KSwicmQiKSxUbWE9Xy5MKCh7ZGF0YTphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6InN0aWNrZXItbGF5ZXIifSxfLksoXy5PLHtBOigpPT4hIWEoKS52aWRlb0ludGVyYWN0aW9ucyYmXy54KCJtd2ViX2VuYWJsZV9zaG9ydHNfc3RpY2tlcnMiKSx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLmdHLHtwYTooKT0+YSgpLnZpZGVvSW50ZXJhY3Rpb25zPy5pbnRlcmFjdGlvbnN8fFtdfSxiPT5fLksoXy5jamEse2RhdGE6Yn0pKSxfLksoXy5XLHtkYXRhOigpPT5hKCk/LnZpZGVvSW50ZXJhY3Rpb25zPy5lbGVtZW50c0ludGVyYWN0aW9uc0xheWVyfSx7c3RpY2tlcnNMYXllclJlbmRlcmVyOl8uZGphfSkpfSkpLCJzZCIpO3ZhciBTVj1fLkwoKHtkYXRhOmEsWWY6YixjajpjLHZCOmQsSXI6ZSxlaDpmfSk9PntmdW5jdGlvbiBoKHApe24ubG90dGllRWwmJm4ubG90dGllRWwuaXNQYXVzZWQmJm4ubG90dGllRWwuZ29Ub0FuZFBsYXkoMCk7cC5zdG9wUHJvcGFnYXRpb24oKX1fLlVKKCgpPT57dmFyIHA9b2xhLmJpbmQodm9pZCAwLGEoKSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIixwKTtfLll1KCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIixwKX0pfSk7dmFyIGs9KCk9Pnt2YXIgcD1hKCk7cmV0dXJuIGQ/LigpP3AuZGFya1RoZW1lTG9nbz8ubG90dGllQW5pbWF0aW9uPy51cmw6cC5saWdodFRoZW1lTG9nbz8ubG90dGllQW5pbWF0aW9uPy51cmx9LGw9KCk9PmEoKS5hY2Nlc3NpYmlsaXR5RGF0YT8uYWNjZXNzaWJpbGl0eURhdGE/LmxhYmVsfHxfLmFOKGEoKS50b29sdGlwVGV4dCl8fCIiLG09KCk9PmQ/LigpPyJsb2dvLWVudGl0eS1sb3R0aWUtYW5pbWF0aW9uLWRhcmsiOgoibG9nby1lbnRpdHktbG90dGllLWFuaW1hdGlvbi1saWdodCIsbj17fTtyZXR1cm4gXy5LKCJ5dG0tbG9nby1lbnRpdHkiLHtjbGFzczoieXRtTG9nb0VudGl0eUhvc3QifSxlPy4oKSxfLksoXy5PLHtBOigpPT4hZSYmYj8uKCkhPT12b2lkIDAmJmM/LigpIT09dm9pZCAwJiZkPy4oKSE9PXZvaWQgMCx0aGVuOigpPT5fLksoXy5PLHtBOmssdGhlbjooKT0+Xy5LKCJkaXYiLHtpZDpjLGNsYXNzOiJ5dG1Mb2dvRW50aXR5Q29udGFpbmVyIiwib246Y2xpY2siOmh9LF8uSyhfLmNNLHtjbGFzc05hbWU6Xy5QKGIsInl0bUxvZ29FbnRpdHlMb2dvIiksZGF0YTooKT0+KHthbmltYXRpb25Db25maWc6e3BhdGg6aygpLGF1dG9wbGF5OiEwLGxvb3A6ITEscmVuZGVyZXJTZXR0aW5nczp7dmlld0JveE9ubHk6ITB9fSxsaXN0ZW5lcnM6e2RhdGFfZmFpbGVkOmYsZXJyb3I6Zn19KSxhbmltYXRpb25SZWY6bixhbmltYXRpb25OYW1lOm19KSksVzooKT0+Xy5LKFZtYSx7Y2xhc3NOYW1lOiJ5dG1Mb2dvRW50aXR5Q29udGFpbmVyIiwKWWY6YixpZDooKT0+Yz8uKCk/PyIiLERBOnA9Pnt2YXIgcj1hKCksdD0hIWQ/LigpO3JldHVybiB0JiZyLmRhcmtUaGVtZUxvZ28/LnRodW1ibmFpbD9fLkpQKHIuZGFya1RoZW1lTG9nby50aHVtYm5haWwscHx8dm9pZCAwKTohdCYmci5saWdodFRoZW1lTG9nbz8udGh1bWJuYWlsP18uSlAoci5saWdodFRoZW1lTG9nby50aHVtYm5haWwscHx8dm9pZCAwKToiIn0sYWx0VGV4dDpsLGVoOmZ9KX0pfSkpfSwidGQiKTtTVi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e0lyOiEwLGVoOiEwfX07CnZhciBWbWE9Xy5MKCh7Y2xhc3NOYW1lOmEsWWY6YixpZDpjLERBOmQsYWx0VGV4dDplLGVoOmZ9KT0+e3ZhciBoPV8udUUoImRpdiIpLGs9Xy51RSgiaW1nIik7Xy5VSigoKT0+e2sudmFsdWUuc3JjPWQoaC52YWx1ZSl9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczphLGVsOmh9LF8uSygiaW1nIix7ZWw6aywib246ZXJyb3IiOmZ1bmN0aW9uKGwpe2Y/LigpO2wuc3RvcFByb3BhZ2F0aW9uKCl9LGlkOmMsY2xhc3M6Xy5QKGIsInl0bUxvZ29FbnRpdHlMb2dvIiksYWx0OmV9KSl9LCJ1ZCIpO3ZhciBVVj1fLkwoKHt0b3BiYXJMb2dvUmVuZGVyZXI6YSxWajpiLFdqOmMsWGo6ZCx1bTplLGljb25PdmVycmlkZTpmLGh6OmgsYWs6a30pPT57ZnVuY3Rpb24gbCgpe3QoITApfXZhciBtPV8uREkobGphLCgpPT5hPy4oKT8ub3ZlcnJpZGVFbnRpdHlLZXl8fF8uVk0oKT8iRWdaMGIzQmlZWElnOVFFb0FRJTNEJTNEIjoiIiksbj0oKT0+YT8uKCk/Lmljb25JbWFnZT8uaWNvblR5cGUsW3Ascl09Xy5KKCExLHZvaWQgMCwiWmFQUGxiIiksdD1yLHY9Xy55KCkucmVzb2x2ZShfLkluKF8ua0YpKSx6PShfLlZNKCl8fHY/LigpKT8/ITEsRT1udWxsLEE9Xy51RSgiYnV0dG9uIik7Xy5VSihmdW5jdGlvbigpeyhtPy4oKT8/dm9pZCAwKXx8U1MoMTIwODEsQS52YWx1ZSxFLEY9PntFPUZ9LG51bGwpfSk7cmV0dXJuIF8uSygieXRtLWhvbWUtbG9nbyIsbnVsbCxfLksoImJ1dHRvbiIse2VsOkEsImFyaWEtbGFiZWwiOigpPT5fLkNKKGE/LigpPy50b29sdGlwVGV4dCk/Xy5DSihhPy4oKT8udG9vbHRpcFRleHQpOgoiWW91VHViZSIscm9sZToibGluayIsY2xhc3M6Xy5QKHsibG9nby1pbi1wbGF5ZXItZW5kcG9pbnQiOmMsIm1vYmlsZS10b3BiYXItaGVhZGVyLWVuZHBvaW50IjooKT0+IWMoKX0pLGtleTooKT0+bT8uKCk/P3ZvaWQgMD8ieW9vZGxlIjoibG9nbyIsIm9uOmNsaWNrIjpmdW5jdGlvbihGKXt2YXIgQz1hPy4oKT8uZW5kcG9pbnQ/P3JWLEc9bT8uKCk/P3ZvaWQgMCxEPSIvIjtHPyhDPUcub25UYXBDb21tYW5kfHxDLEQ9Xy5CKEcub25UYXBDb21tYW5kPy5jb21tYW5kTWV0YWRhdGEsXy56dyk/LnVybHx8RCk6RD1fLkIoQz8uY29tbWFuZE1ldGFkYXRhLF8uencpPy51cmx8fEQ7dmFyIEg9az8uKCk/PzM4NTQsUj1GLmN1cnJlbnRUYXJnZXQ7RyYmKFIuZGF0YT1HKTtoPy4oRik7Xy5xUCh7aHJlZjpELGFrOkgsZWxlbWVudDpSLHB1c2hTdGF0ZTohMCxlbmRwb2ludDpDfSk7Ri5zdG9wUHJvcGFnYXRpb24oKX19LF8uSyhfLk8se0E6KCk9PiFwKCkmJihtPy4oKT8/dm9pZCAwKSYmaVUoYigpKSYmCmpVKHosbT8uKCk/P3ZvaWQgMCksdGhlbjooKT0+Xy5LKFNWLHtkYXRhOigpPT5tPy4oKT8/dm9pZCAwLElyOigpPT5fLksoVFYse1ZqOmIsV2o6YyxYajpkLFlmOiJtb2JpbGUtdG9wYmFyLWxvZ28iLGNqOiJob21lLWljb24iLHVtOmUsaWNvbk92ZXJyaWRlOmYscnM6bn0pLGVoOmx9KX0pLF8uSyhfLk8se0E6KCk9PiFwKCkmJihtPy4oKT8/dm9pZCAwKSYmaVUoYigpKSYmIWpVKHosbT8uKCk/P3ZvaWQgMCksdGhlbjooKT0+Xy5LKFNWLHtkYXRhOigpPT5tPy4oKT8/dm9pZCAwLFlmOiJtb2JpbGUtdG9wYmFyLWxvZ28iLGNqOiJob21lLWljb24iLHZCOnosZWg6bH0pfSksXy5LKF8uTyx7QTooKT0+ISghcCgpJiYobT8uKCk/P3ZvaWQgMCkmJmlVKGIoKSkpLHRoZW46KCk9Pl8uSyhUVix7Vmo6YixXajpjLFhqOmQsWWY6Im1vYmlsZS10b3BiYXItbG9nbyIsY2o6ImhvbWUtaWNvbiIsdW06ZSxpY29uT3ZlcnJpZGU6ZixyczpufSl9KSkpfSwidmQiKTtVVi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2h6OiEwfX07CnZhciBUVj1fLkwoKHtWajphLFdqOmIsWGo6YyxZZjpkLGNqOmUsdW06ZixpY29uT3ZlcnJpZGU6aCxyczprfSk9Pnt2YXIgbD0oKT0+YSgpP2g/LigpfHwiTE9HT19XSVRIX1RFWFQiOmM/LigpP2s/LigpOiJMT0dPIjtyZXR1cm4gXy5LKF8uTUQse2ljb246KCk9Pnt2YXIgbT1sKCk7Zj8uKCkmJmE/LigpJiYobSs9Il9NT05PQ0hST01FIik7cmV0dXJuIG19LGNsYXNzTmFtZTpfLlAoKCk9PmIoKT8ibG9nby1pbi1wbGF5ZXIiOmQoKSx7ImZ1bGwtbG9nbyI6YSwiZnVsbC1sb2dvLXJlZCI6KCk9PmEoKSYmbCgpPT09IllPVVRVQkVfUFJFTUlVTV9MT0dPX1NIT1JUIiwic2hvcnRzLWxvZ28iOmMsbW9ub2Nocm9tYXRpYzpmfSksaWQ6ZX0pfSwid2QiKTt2YXIgV21hPV8uTChhPT5fLksoXy5JQixudWxsLF8uSyhPbWEse0Z4OiExLGFuaW1hdGlvbjphLmFuaW1hdGlvbn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2hvcnRzRW1iZWRzVG9wYmFyQ29udGFpbmVyIn0sXy5LKFVWLHt0b3BiYXJMb2dvUmVuZGVyZXI6YS54eSxWajohMSxXajohMCxYajohMCxhazoxMzQ4NDB9KSxfLksoXy5PLHtBOmEucmVlbEl0ZW1XYXRjaFJlc3BvbnNlLHRoZW46KCk9Pl8uSyhIVix7b3JpZW50YXRpb246InZlcnRpY2FsX2Rvd24iLEg6YS5ILENwOiEwLGNsYXNzTmFtZToieXRTaG9ydHNFbWJlZHNWb2x1bWVDb250cm9scyIsYmo6ITB9KX0pKSxfLksoXy5PLHtBOmEub3ZlcmxheSx0aGVuOmI9Pl8uSyhSVix7ZGF0YTooKT0+e3ZhciBjPWIoKTtpZihfLnRQKCkpe3ZhciBkPWMubWVudT8ubWVudVJlbmRlcmVyO2M9ZD8uaXRlbXM/ey4uLmMsbWVudTp7Li4uYy5tZW51LG1lbnVSZW5kZXJlcjp7Li4uZCxpdGVtczpbe2FjY291bnRJbmZvTWVudUl0ZW06ITB9LAouLi5kLml0ZW1zXX19fTpjfXJldHVybiBjfSxjbGFzc05hbWU6Inl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciJ9KX0pLF8uSyhNbWEse0g6YS5ILGNvbnRleHQ6YS5jb250ZXh0fSkpLCJ4ZCIpLFdsYT1fLkwoYT0+e3ZhciB7SDpiLHJlZWxJdGVtV2F0Y2hSZXNwb25zZTpjLGpiOmQsUGg6ZSxjb250ZXh0OmZ9PV8uREMoYSx7SDp2b2lkIDAscmVlbEl0ZW1XYXRjaFJlc3BvbnNlOnZvaWQgMCxqYjp2b2lkIDAsUGg6dm9pZCAwfSksW2gsa109Xy5KKHZvaWQgMCx2b2lkIDAsIkNQU3pJZSIpLFtsLG1dPV8uSih2b2lkIDAsdm9pZCAwLCJJSTRIQ2QiKTtfLm9GKCgpPT57dmFyIEE9Yj8uKCk7QT8uaXNSZWFkeSgpJiZtKEEuZ2V0UGxheWVyU3RhdGUoKSl9KTt2YXIgbj1BPT57Yj8uKCkmJm0oQSl9O18ubkUoKCk9Pnt2YXIgQT1iPy4oKTtBJiYoQS5hZGRFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIixuKSxfLll1KCgpPT57QS5yZW1vdmVFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIiwKbil9KSl9LCJDN0Q1OWQiKTtfLm5FKCgpPT57dmFyIEE9YygpO2lmKEEpe2xldCBGPV8ueSgpLnJlc29sdmUoXy5iTCk7Zm9yKGxldCBDIG9mIEEuZW5nYWdlbWVudFBhbmVsc3x8W10pKEE9Qy5lbmdhZ2VtZW50UGFuZWxTZWN0aW9uTGlzdFJlbmRlcmVyKSYmRi5PeihBLmlkZW50aWZpZXI/LnRhZ3x8QS50YXJnZXRJZHx8QS5wYW5lbElkZW50aWZpZXIsQyl9fSwiUWRTZVRiIik7Xy5uRSgoKT0+e2Z1bmN0aW9uIEEoKXtpZihDKXtsZXQgRz1DLmdldE9wdGlvbnM/LigiY2FwdGlvbnMiKTtHJiZHLmxlbmd0aD4wJiZDPy51cGRhdGVTdWJ0aXRsZXNVc2VyU2V0dGluZ3M/Lih7Zm9udFNpemVJbmNyZW1lbnQ6Mn0sITEpfX12YXIgRj1iPy4oKTtpZihGKXt2YXIgQz1GO0EoKTtDLmFkZEV2ZW50TGlzdGVuZXIoIm9uQ2FwdGlvbnNNb2R1bGVBdmFpbGFibGUiLEEpO18uWXUoKCk9PntDLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ2FwdGlvbnNNb2R1bGVBdmFpbGFibGUiLEEpfSl9fSwibDhXMXZiIik7CnZhciBwPV8uTigoKT0+YygpPy5vdmVybGF5Py5yZWVsUGxheWVyT3ZlcmxheVJlbmRlcmVyfHxkKCk/LmVtYmVkUHJldmlldz8ucmVlbFBsYXllck92ZXJsYXlSZW5kZXJlcix2b2lkIDAsInplaFlZYiIpLHI9Xy5OKCgpPT57dmFyIEE7KEE9Xy5CKGMoKT8udG9wYmFyLCRsYSk/LnRvcGJhckxvZ28/LnRvcGJhckxvZ29SZW5kZXJlcil8fChBPWUoKT8uZW5kcG9pbnQsQT0oQT0oQSYmXy5CKEEsXy5URCkpPy52aWRlb0lkKT9gaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLyR7QX1gOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMiLEE9e2ljb25JbWFnZTp7aWNvblR5cGU6IllPVVRVQkVfU0hPUlRTX09VVExJTkVfV0lUSF9URVhUXzI0In0sdG9vbHRpcFRleHQ6e3J1bnM6W3t0ZXh0OiJZb3VUdWJlIFNob3J0cyJ9XX0sZW5kcG9pbnQ6e2NvbW1hbmRNZXRhZGF0YTp7d2ViQ29tbWFuZE1ldGFkYXRhOnt1cmw6QSx3ZWJQYWdlVHlwZToiV0VCX1BBR0VfVFlQRV9TSE9SVFMiLApyb290VmU6MzgzMn19LHVybEVuZHBvaW50Ont1cmw6QSx0YXJnZXQ6IlRBUkdFVF9ORVdfV0lORE9XIn19fSk7cmV0dXJuIEF9LHZvaWQgMCwiTk4yNzJjIik7YT1fLk4oKCk9PntpZihsKCk9PT01KXt2YXIgQT1lKCk/LmVuZHBvaW50O2lmKEEmJihBPV8uQihBLF8uVEQpPy50aHVtYm5haWw/LnRodW1ibmFpbHM/LlswXT8udXJsKSlyZXR1cm4gXy5JRSh7ImJhY2tncm91bmQtc2l6ZSI6ImNvdmVyIiwiYmFja2dyb3VuZC1wb3NpdGlvbiI6ImNlbnRlciIsImJhY2tncm91bmQtcmVwZWF0Ijoibm8tcmVwZWF0IiwiYmFja2dyb3VuZC1pbWFnZSI6YCR7ImxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC40KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxNjBweCksXG4gICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgOTZweCkifSwgdXJsKCR7QX0pYH0pKCl9fSx2b2lkIDAsImkxNkZEZSIpOwp2YXIgdD1fLk4oKCk9PmIoKT8/dm9pZCAwLHZvaWQgMCwiVWZZdEZmIiksdj1fLk4oKCk9PnQoKT8uaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheT8uKCksdm9pZCAwLCJsS2NBbWQiKSx6PV8uTigoKT0+KHt0YTpmKCkudGEsVGM6ZigpLlRjLEdjOmYoKS5HYyxiYTpmKCkuYmEsSDp0KCkscGxheWVyU3RhdGU6bCgpPz8tMSxTOigpPT57fX0pLHZvaWQgMCwiZTZsU2llIiksRT1fLk4oKCk9Pnt2YXIgQT10KCk/LmdldFBsYXllclJlc3BvbnNlPy4oKTtyZXR1cm4gQT9fLkIoQT8ub3ZlcmxheT8ucGxheWVyQ29udHJvbHNPdmVybGF5UmVuZGVyZXI/Lm11dGVkQXV0b3BsYXksb1YpOnZvaWQgMH0sdm9pZCAwLCJER1RTbmQiKTtyZXR1cm4gXy5LKF8ubkcse0VmOltfLm9HKCRULHQpXX0sXy5LKCJzaG9ydHMtZW1iZWRzIix7Y2xhc3M6Inl0U2hvcnRzRW1iZWRzSG9zdCIsIm9uOmNsaWNrIjpmdW5jdGlvbihBKXtBLnN0b3BQcm9wYWdhdGlvbigpO2lmKCFFUShBLnRhcmdldCwiQSIpJiYKIUVRKEEudGFyZ2V0LCJCVVRUT04iKSYmKEE9YigpKSYmQS5pc1JlYWR5KCkpaWYoQS5pc011dGVkQnlFbWJlZHNNdXRlZEF1dG9wbGF5KCkpe3ZhciBGPUEuZ2V0VmlkZW9EYXRhKCk/LnZpZGVvX2lkLEM9QS5nZXRDdXJyZW50VGltZSgpO0YmJihBLnVuTXV0ZSgpLEEubG9hZFZpZGVvQnlJZChGLEMpKX1lbHNlIEY9QS5nZXRQbGF5ZXJTdGF0ZSgpPT09MSxDPUEuaXNNdXRlZEJ5TXV0ZWRBdXRvcGxheSgpLEYmJkM/QS51bk11dGUoKTooRj1BLmdldFBsYXllclN0YXRlKCk9PT0xLEM9QS5pc011dGVkQnlNdXRlZEF1dG9wbGF5KCksRiYmIUM/KEEucGF1c2VWaWRlbygpLGsoe25hbWU6InBhdXNlXzk2ZHBfYW5pbWF0aW9uIn0pKTpGfHwoQyYmQS51bk11dGUoKSxBLnBsYXlWaWRlbygpLGsoe25hbWU6InBsYXlfOTZkcF9hbmltYXRpb24ifSkpKX0sc3R5bGU6YX0sXy5LKF8uTyx7QTooKT0+digpLHRoZW46KCk9Pl8uSyhMVix7Rzp6LHBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXI6RX0pLApXOigpPT5fLksoV21hLHthbmltYXRpb246aCx4eTpyLHJlZWxJdGVtV2F0Y2hSZXNwb25zZTpjLEg6dCxvdmVybGF5OnAsY29udGV4dDpmfSl9KSkpfSwiQ2QiKTt2YXIgYlY9Xy5MKCh7ZGF0YTphfSk9PntKamEoKTtyZXR1cm4gXy5LKCJ5dC1wbGF5ZXItaW50ZXJzdGl0aWFsLXJlbmRlcmVyIix7Y2xhc3M6InBsYXllckludGVyc3RpdGlhbFJlbmRlcmVySG9zdCIscm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbCI6KCk9Pnt2YXIgYjthOntpZihiPWEoKS5jb250ZW50KXt2YXIgYz1fLkIoYixibWEpO2lmKGM/LnRpdGxlPy5jb250ZW50KXtiPWMudGl0bGUuY29udGVudDticmVhayBhfWI9Xy5CKGIsZW1hKTtiPWI/LmhlYWRlciYmXy5CKGIuaGVhZGVyLGRtYSk7aWYoYj8uaGVhZGxpbmU/LmNvbnRlbnQpe2I9Yi5oZWFkbGluZS5jb250ZW50O2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifSx0YWJpbmRleDotMSxlbDpfLnJGKGI9PnZvaWQgYj8uZm9jdXMoKSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllckludGVyc3RpdGlhbFJlbmRlcmVyU2NyaW0ifSxfLksoXy5XLHtkYXRhOigpPT5hKCkuY29udGVudH0se2ludGVyc3RpdGlhbFZpZXdNb2RlbDpfLmVqYSwKZGlhbG9nVmlld01vZGVsOl8uJGlhfSkpKX0sIkRkIik7YlYuaWRvbUNvbXBhdD0hMDt2YXIgVlY9Xy5MKCh7Z2Y6YSxJYjpifSk9Pl8uSygieXQtYmlnYm9hcmQiLG51bGwsXy5LKF8uTyx7QTooKT0+YSgpLmlzRHJhZ2dpbmcsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRCaWdib2FyZFN0b3J5Ym9hcmRIb3N0In0sXy5LKEdtYSx7TGI6YSxJYjpifSkpfSkpLCJFZCIpO1ZWLmlkb21Db21wYXQ9ITA7dmFyIFdWPV8uTChhPT57dmFyIGI9YS5HO2E9Xy5OKCgpPT5iKCkuZWE/Xy4kTi5tdDpfLiROLlp0LHZvaWQgMCwieGlkenVkIik7cmV0dXJuIF8uSygiYnV0dG9uIix7Im9uOmNsaWNrIjpmdW5jdGlvbihjKXt2YXIgZD17ZWE6IWIoKS5lYSx5cTohMH07YigpLlMoZCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0saWQ6InBsYXllci1jb250cm9scy1hMTF5LXRvZ2dsZSIsY2xhc3M6Inl0bUExMXlTdHlsZXNIaWRkZW5CdXR0b24iLCJhcmlhLWxhYmVsIjphfSl9LCJGZCIpO3ZhciBYVj1fLkwoYT0+e2Z1bmN0aW9uIGIoaCl7WFMoYS5GZCgpPT09LTE/MTQxOTAyOjE0MTkwMyk7dmFyIGs9Yz8uKCksbD1hLkZkKCk7az8uc2Vla0J5KGwqMTAsdm9pZCAwLHZvaWQgMCxsPT09LTE/ODM6ODIpO2guc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGM9Xy5rRygkVCksZD0oKT0+YS5GZCgpPT09LTE/Xy4kTi5RdC5yZXBsYWNlKCIkc2Vjb25kc19wbGFjZWhvbGRlciIsKDEwKS50b1N0cmluZygpKTpfLiROLkl0LnJlcGxhY2UoIiRzZWNvbmRzX3BsYWNlaG9sZGVyIiwoMTApLnRvU3RyaW5nKCkpLGU9Xy5OKCgpPT57dmFyIGg9YS5HKCk7cmV0dXJuIF8ueCgibXdlYl9wY19saXZlX2R2cl9rcyIpPyEwOiEoaC5pc0xpdmUmJiFoLmlzTGl2ZUR2ckVuYWJsZWQpfSx2b2lkIDAsIkthcklLYyIpLGY9Xy51RSgiYnV0dG9uIixoPT57V1MoaCxhLkZkKCk9PT0tMT8xNDE5MDI6MTQxOTAzKX0pO3JldHVybiBfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKCJidXR0b24iLHsiYXJpYS1sYWJlbCI6ZCwKY2xhc3M6Xy5QKGEuY2xhc3NOYW1lLCJ5dG1BMTF5U3R5bGVzSGlkZGVuQnV0dG9uIiwicGxheWVyLWNvbnRyb2wtc2Vlay1pY29uLWExMXkiKSxzdHlsZTpfLklFKHtsZWZ0OigpPT5hLkZkKCk9PT0tMT8iMCI6InVuc2V0IixyaWdodDooKT0+YS5GZCgpPT09MT8iMCI6InVuc2V0In0pLGVsOmYsIm9uOmNsaWNrIjpifSl9KX0sIkdkIik7dmFyIFlWPV8uTChhPT57dmFyIHtVZDpiLG9uY2xpY2s6YywuLi5kfT1hO2E9Xy51RSgiZGl2IixlPT57V1MoZSxiKCkpfSk7cmV0dXJuIF8uSygiZGl2Iix7ZWw6YX0sXy5LKF8udE8sey4uLmQsb25jbGljazplPT57WFMoYigpKTtjPy4oZSl9fSkpfSwiSGQiKTt2YXIgWlY9Xy5MKGE9Pnt2YXIgYj1fLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8icGxheWVyX2Z1bGxfZW50ZXJfYWx0IjoiRlVMTFNDUkVFTiIsYz1fLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8icGxheWVyX2Z1bGxfZXhpdF9hbHQiOiJGVUxMU0NSRUVOX0VYSVQiLGQ9KCk9PmEuRygpLmlzRnVsbHNjcmVlbj9jOmI7cmV0dXJuIF8uSyhZVix7bmFtZTpkLGFyaWFMYWJlbDooKT0+YS5HKCkuaXNGdWxsc2NyZWVuP18uJE4uSHQ6Xy4kTi5KdCxjb250ZW50OigpPT5fLksoImRpdiIse2NsYXNzOiJwbGF5ZXItYm90dG9tLWNvbnRyb2xzLWZ1bGxzY3JlZW4taWNvbi12aXNpYmxlLWFyZWEifSxfLksoXy5NRCx7aWNvbjpkfSkpLGNsYXNzTmFtZToiZnVsbHNjcmVlbi1pY29uIixVZDoxMzkxMTcsb25jbGljazplPT57YS5HKCkudGEudG9nZ2xlRnVsbHNjcmVlbigpO2Uuc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJJZCIpO3ZhciAkVj1fLkwoYT0+e3ZhciBiPV8ua0coJFQpO3JldHVybiBfLksoWVYse25hbWU6KCk9PmEuRygpLnBsYXllclN0YXRlPT09MXx8YS55cyYmYS5HKCkucGxheWVyU3RhdGU9PT0zPyJQQVVTRV9GSUxMRUQiOiJQTEFZX0FSUk9XX0ZJTExFRCIsYXJpYUxhYmVsOigpPT5hLkcoKS5wbGF5ZXJTdGF0ZT09PTF8fGEueXMmJmEuRygpLnBsYXllclN0YXRlPT09Mz9fLiROLkx0Ol8uJE4uUGcsY2xhc3NOYW1lOiJwbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24iLFVkOjM2ODQyLG9uY2xpY2s6Yz0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZSYmKGU9V1EoZSksZC5TKHtqZTplfSkpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJKZCIpO3ZhciBhVz1fLkwoYT0+e3ZhciBiPV8ua0coJFQpO3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9SRVBMQVkiLGFyaWFMYWJlbDpfLiROLlB0LGNsYXNzTmFtZToiZW5kc2NyZWVuLXJlcGxheS1idXR0b24iLFVkOjU2Mzg2LG9uY2xpY2s6Yz0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZSYmKGQucmMmJmU/LnVuTXV0ZSgpLGUucGxheVZpZGVvKCkpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJLZCIpO3ZhciBiVz1fLkwoYT0+Xy5LKFlWLHtuYW1lOiJHRUFSIixhcmlhTGFiZWw6Xy4kTi52dCxjbGFzc05hbWU6Xy5QKCJwbGF5ZXItc2V0dGluZ3MtaWNvbiIsYS5jbGFzc05hbWUpLFVkOjI4NjYzLG9uY2xpY2s6Yj0+e2EuRygpLnRhLlNqKGIpfX0pLCJMZCIpO3ZhciBjVz1fLkwoYT0+e3ZhciB7S3U6YixvbkNsaWNrOmMsYXJpYUxhYmVsOmQsYXJpYVByZXNzZWQ6ZSxpc092ZXJsYXk6Zn09Xy5EQyhhLHtpc092ZXJsYXk6ITF9KTthPV8udUUoImJ1dHRvbiIsaD0+e1dTKGgsMTI3Mjk5KX0pO3JldHVybiBfLksoInl0bS1jbG9zZWQtY2FwdGlvbmluZy1idXR0b24iLHtjbGFzczpfLlAoInl0bUNsb3NlZENhcHRpb25pbmdCdXR0b25Ib3N0Iix7eXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZE92ZXJsYXk6KCk9PmIoKT09PS0xJiZmKCkseXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZDooKT0+YigpPT09LTEmJiFmKCl9KX0sXy5LKCJidXR0b24iLHtlbDphLGNsYXNzOiJ5dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uQnV0dG9uIix0aXRsZTpkLCJhcmlhLWxhYmVsIjpkLCJhcmlhLXByZXNzZWQiOmUsImFyaWEtZGlzYWJsZWQiOigpPT5iKCk9PT0tMT8idHJ1ZSI6dm9pZCAwLCJvbjpjbGljayI6ZnVuY3Rpb24oaCl7WFMoMTI3Mjk5KTsKYz8uKGgpO2guc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5NRCx7aWNvbjooKT0+e3ZhciBoPSIiO2lmKF8ueCgibXdlYl9sb2NhbGl6ZWRfY2NfaWNvbiIpKXt2YXIgaz1fLkh6KCkuZ2V0KCJobCIpO2s9IWt8fGhtYS5pbmNsdWRlcyhrKT8iQ0xPU0VEX0NBUFRJT04iOiJTVUJUSVRMRVMifWVsc2Ugaz0iQ0xPU0VEX0NBUFRJT04iO3ZhciBsPWIoKTtzd2l0Y2gobCl7Y2FzZSAtMTpjYXNlIDA6aD1rO2JyZWFrO2Nhc2UgMTpoPWsrIl9GSUxMRUQiO2JyZWFrO2RlZmF1bHQ6Xy5lYihsLHZvaWQgMCl9cmV0dXJuIGh9LGNsYXNzTmFtZTpfLlAoe3l0bUNsb3NlZENhcHRpb25pbmdCdXR0b25ZdEljb25PdmVybGF5OmZ9KX0pKSl9LCJNZCIpO2NXLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7b25DbGljazohMH19O3ZhciBrVT0iIjt2YXIgZFc9Xy5MKGE9Pnt2YXIgYj1hLmdmLGM9YS5zTCxkPWEuV3EsZT1hLmNsYXNzTmFtZSxmPWEuVnIsaD1wPT57dmFyIHI9YigpLHQ9Yz8uKCksdj1mKCk7ci54YyYmKHQ/ci5IPy50b2dnbGVTdWJ0aXRsZXModik6KHQ9ci5IKSYmUVEodCxsVShyKSx2KSk7Xy54KCJ3ZWJfZGVsZXRlX3NuYWNrYmFycyIpfHxyLnRhLnFBPy4ocik7ZD8uKHApfSxrPV8uTigoKT0+e3ZhciBwPWIoKSxyPS0xO3AueGMmJihyPXAuY2FwdGlvbnNFbmFibGVkPzE6MCk7cmV0dXJuIHJ9LHZvaWQgMCwiSE1vMnJjIiksbD1fLk4oKCk9Pnt2YXIgcD1iKCk7cmV0dXJuIHAueGM/Xy5hQShwLmNhcHRpb25zRW5hYmxlZD8iQ0xPU0VEX0NBUFRJT05TX09OIjoiQ0xPU0VEX0NBUFRJT05TX09GRiIpOl8uYUEoIkNMT1NFRF9DQVBUSU9OU19ESVNBQkxFRCIpfSx2b2lkIDAsIldRNTFZZSIpLG09Xy5OKCgpPT57dmFyIHA9YigpO3A9cC54Yz9wLmNhcHRpb25zRW5hYmxlZDp2b2lkIDA7cmV0dXJuIHB9LHZvaWQgMCwKIkkwTFR1YiIpLG49Xy5OKCgpPT5iKCkueGMsdm9pZCAwLCJMdmVPV2UiKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+Xy54KCJtd2ViX3BsYXllcl9oaWRlX3VuYXZhaWxhYmxlX3N1YnRpdGxlc19idXR0b24iKT9uKCk6ITAsdGhlbjooKT0+Xy5LKCJ5dC1jbG9zZWQtY2FwdGlvbnMtdG9nZ2xlLWJ1dHRvbiIse2NsYXNzOmV9LF8uSyhjVyx7S3U6ayxhcmlhTGFiZWw6bCxhcmlhUHJlc3NlZDptLG9uQ2xpY2s6aCxpc092ZXJsYXk6ITB9KSl9KX0sIk5kIik7dmFyIGVXPV8uTCgoe0lBOmEsZGF0YTpiLGNoaWxkcmVuOmN9KT0+e2Z1bmN0aW9uIGQoKXthPy4oKXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Zi52YWx1ZSYmKGgudmFsdWUuc3R5bGUud2lkdGg9YCR7Zi52YWx1ZS5vZmZzZXRXaWR0aH1weGApfSl9dmFyIGU9dm9pZCAwLGY9Xy51RSgiZGl2IiksaD1fLnVFKCJkaXYiKSxrPV8uQlEoKSxsPV8uQlEoKTtfLm5FKCgpPT57ZCgpOyFlJiZiKCkuc3Vic2NyaWJlZCYmKGsubG90dGllRWw/LmdvVG9BbmRQbGF5KDApLGwubG90dGllRWw/LmdvVG9BbmRQbGF5KDApKTtlPSEhYigpLnN1YnNjcmliZWR9LCJNTTBqQWYiKTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczoieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25Ib3N0In0sXy5LKF8uQVEse09vOmssUnA6bH0sXy5LKCJkaXYiLHtlbDpoLGNsYXNzOl8uUCgieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25Db250ZW50Q29udGFpbmVyIix7eXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25TdGF0aWNXaWR0aDphLAp5dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkNhbkFuaW1hdGU6KCk9PmIoKS5zdWJzY3JpYmVkfSl9LF8uSygiZGl2Iix7ZWw6ZixjbGFzczoieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25GbGV4Q29udGFpbmVyIn0sYykpKSl9LCJQZCIpO2VXLmlkb21Db21wYXQ9ITA7dmFyIGZXPV8uTCgoe2RhdGE6YSxidXR0b25PdmVycmlkZXM6Yn0pPT57dmFyIFtjXT1uamEoYSk7cmV0dXJuIF8uSygieXRtLXN1YnNjcmliZS1idXR0b24tcmVuZGVyZXIiLHtjbGFzczpfLlAoeyJpcy1zdWJzY3JpYmVkIjooKT0+YygpLnN1YnNjcmliZWQsImlzLW5vdC1zdWJzY3JpYmVkIjooKT0+IWMoKS5zdWJzY3JpYmVkLGRpc2FibGVkOigpPT57dmFyIGQ7aWYoZD0hIWMoKS50aGVtZSl7ZD0hIWMoKS5zdWJzY3JpYmVkO3ZhciBlPWMoKS50aGVtZTtkPWQ/ISFlLnN1YnNjcmliZWRDb2xvclBhbGV0dGUmJl8udU4oZS5zdWJzY3JpYmVkQ29sb3JQYWxldHRlKTohIWUudW5zdWJzY3JpYmVkQ29sb3JQYWxldHRlJiZfLnVOKGUudW5zdWJzY3JpYmVkQ29sb3JQYWxldHRlKX1yZXR1cm4gZH19KX0sXy5LKF8uYWphLHtzZXR0aW5nczooKT0+KHt1bmlxdWVJZDoic3Vic2NyaWJlIixmazpjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fFtdLFhkOihjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fApbXSkubGVuZ3RoPjAsZW5hYmxlZDohYygpLnN1YnNjcmliZWQmJihjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fFtdKS5sZW5ndGg+MH0pfSxfLksoWG1hLHtkYXRhOmMsYnV0dG9uT3ZlcnJpZGVzOmJ9KSkpfSwiUWQiKTtmVy5pZG9tQ29tcGF0PSEwOwp2YXIgWG1hPV8uTCgoe2RhdGE6YSxidXR0b25PdmVycmlkZXM6Yn0pPT57dmFyIGM9KCk9PiEoIWEoKS5zdWJzY3JpYmVkfHwhYSgpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24pLGQ9Xy5OKCgpPT4oey4uLlFqYSh7cmVuZGVyZXI6YSgpLHN1YnNjcmliZWQ6ISFhKCkuc3Vic2NyaWJlZCxpc092ZXJsYXk6Xy5XTSgpPyEwOiExLHN0b3BQcm9wYWdhdGlvbjohMH0pLGRpc2FibGVkOiFhKCkuZW5hYmxlZCwuLi4oYj8uKCl8fHt9KX0pLHZvaWQgMCwieW9DZGNlIik7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Im1vZGVybi1zdWJzY3JpYmUtYnV0dG9uLWNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJub3RpZmljYXRpb24tYmVsbC1jb250YWluZXIiLHtoaWRkZW46KCk9PiFjKCl9KX0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b259LHt0b2dnbGVCdXR0b25SZW5kZXJlcjooe2RhdGE6ZX0pPT5fLksoXy5xTywKe2RhdGE6ZSxidXR0b25PdmVycmlkZXM6e3N0eWxlOiJvdmVybGF5In0sY2xhc3NOYW1lOl8uUCgibm90aWZpY2F0aW9uLWJlbGwiLHtoaWRkZW46KCk9PiFjKCl9KX0pfSkpLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJtb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiIseyJ3aXRoLW5vdGlmaWNhdGlvbi1iZWxsIjpjfSl9LF8uSyhfLk8se0E6KCk9PiFfLldNKCksdGhlbjooKT0+e3ZhciBlPV8uVU0oKT09PSJjaGFubmVsIjtyZXR1cm4gXy5LKGVXLHtkYXRhOmEsSUE6ZX0sXy5LKF8uSksse2RhdGE6ZH0pKX0sVzooKT0+Xy5LKF8uSksse2RhdGE6ZH0pfSksXy5LKCJkaXYiLHtjbGFzczoic3Vic2NyaWJlLWJ1dHRvbi1jb3VudCJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkuc3Vic2NyaWJlckNvdW50VGV4dH0pKSkpfSwiUmQiKTt2YXIgZ1c9Xy5MKCh7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOmEsaXNBY3RpdmU6YixYaDpjfSk9PntmdW5jdGlvbiBkKCl7Xy5BSihhKCkuZW5kcG9pbnQsYSgpLCEwKX12YXIgZT0oKT0+YSgpLnN0eWxlPT09IkNIQU5ORUwiLGY9Xy5QKCJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlsIix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFJvdW5kOmV9KSxoPSgpPT5OdW1iZXIoYSgpLmxlZnQpK051bWJlcihhKCkud2lkdGgvMik8LjUsaz1fLlAoInl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Iix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlSaWdodDpoLHl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TGVmdDooKT0+IWgoKSx5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZlOigpPT5iKCkmJmgoKSx5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUxlZnRBY3RpdmU6KCk9PgpiKCkmJiFoKCl9KSxsPSgpPT5hKCkudGl0bGUsbT0oKT0+YSgpLmhvdmVyY2FyZEJ1dHRvbixuPSgpPT5hKCkubWV0YWRhdGEscD0oKT0+YSgpLmNhbGxUb0FjdGlvbixyPV8uUCh7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGU6KCk9PiFlKCkseXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWw6ZX0pO2M9Xy5QKCJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW0iLHt5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1DaGFubmVsOmUseXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFNjcmltQWN0aXZlOmN9KTt2YXIgdD1fLlAoInl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRIb3N0Iix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudEhvc3RBY3RpdmU6Yn0pO3JldHVybiBfLksoImV4cGFuZGluZy1lbmRzY3JlZW4tZWxlbWVudCIse2NsYXNzOnR9LF8uSygiZGl2Iix7Y2xhc3M6Y30pLApfLksoImRpdiIse2NsYXNzOmt9LF8uSygiZGl2Iix7Y2xhc3M6Inl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCJ9LF8uSyhfLk8se0E6bCx0aGVuOigpPT5fLksoXy5WLHt0ZXh0OmwsY2xhc3NOYW1lOiJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVRpdGxlIn0pfSksXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5QnV0dG9uIn0sXy5LKF8uVyx7ZGF0YTptfSx7c3Vic2NyaWJlQnV0dG9uUmVuZGVyZXI6Zld9KSl9KSxfLksoXy5PLHtBOm4sdGhlbjooKT0+Xy5LKF8uVix7Y2xhc3NOYW1lOnIsdGV4dDpufSl9KSxfLksoXy5PLHtBOigpPT4hZSgpJiZhKCkuY2FsbFRvQWN0aW9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Im9uOmNsaWNrIjpkLHN0eWxlOiJkaXNwbGF5OiBjb250ZW50cyJ9LF8uSyhfLlYse2NsYXNzTmFtZToieXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb24iLAp0ZXh0OnB9KSl9KSkpLF8uSygiZGl2Iix7Im9uOmNsaWNrIjpkfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YSgpLmltYWdlLGNsYXNzTmFtZTpmfSkpKX0sIlNkIik7Z1cuaWRvbUNvbXBhdD0hMDt2YXIgaFc9Xy5MKCh7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOmEsaXNBY3RpdmU6YixYaDpjfSk9Pnt2YXIgZD0oKT0+YSgpLnRpdGxlLGU9KCk9PmEoKS50aHVtYm5haWxPdmVybGF5cyxmPSgpPT5hKCkucGxheWxpc3RMZW5ndGg7Yj1fLlAoInl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0Iix7eXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudEhvc3RBY3RpdmU6Yn0pO2M9Xy5QKCJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW0iLHt5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmU6Y30pO3JldHVybiBfLksoInRodW1ibmFpbC1lbmRzY3JlZW4tZWxlbWVudCIse2NsYXNzOmIsIm9uOmNsaWNrIjpmdW5jdGlvbigpe18uQUooYSgpLmVuZHBvaW50LGEoKSwhMCl9fSxfLksoImRpdiIse2NsYXNzOmN9KSxfLksoXy5PLHtBOmQsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcE92ZXJsYXkifSwKXy5LKCJkaXYiLHtjbGFzczoieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcEdyYWRpZW50In0pLF8uSyhfLlYse3RleHQ6ZCxjbGFzc05hbWU6Inl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZSIsdWI6ITAsbWE6ITB9KSl9KSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YSgpLmltYWdlLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbCJ9KSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKF8uVyx7ZGF0YTplfSx7dGh1bWJuYWlsT3ZlcmxheVRpbWVTdGF0dXNSZW5kZXJlcjooe2RhdGE6aH0pPT5fLksoXy5WUCx7ZGF0YTpoLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXMifSl9KX0pLF8uSyhfLk8se0E6Zix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5In0sXy5LKF8uTUQsCntpY29uOiJQTEFZTElTVFNfQ0FJUk8iLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFBsYXlsaXN0SWNvbiJ9KSxfLksoXy5WLHt0ZXh0OmYsY2xhc3NOYW1lOiJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGgiLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKX0pKX0sIlRkIik7aFcuaWRvbUNvbXBhdD0hMDt2YXIgaVc9WzM0Niw0MjYsNDcwLDUwNiw1NzAsNjQwLDg1MywxMjgwLDE5MjBdLGpXPVsieXRtQ3JlYXRvckVuZHNjcmVlblJvdW5kaW5nU21hbGwiLCJ5dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdNZWRpdW0iLCJ5dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdMYXJnZSJdLGxXPV8uTCgoe2VuZHNjcmVlblJlbmRlcmVyOmEsRzpifSk9Pnt2YXIgW2MsZF09Xy5KKG5ldyBGUSgwLDAsMCwwKSx2b2lkIDAsInV1dU1LYyIpLFtlLGZdPV8uSihuZXcgXy5uZCgwLDApLHZvaWQgMCwicHlhaWpiIiksW2gsa109Xy5KKCIiLHZvaWQgMCwiTUszaUFmIiksW2wsbV09Xy5KKCExLHZvaWQgMCwiZU1PZmliIiksbj1fLk4oKCk9PmIoKS5ILHZvaWQgMCwicEY2ODRiIikscD1fLk4oKCk9Pl8uVXcoYSgpLnRyYWNraW5nUGFyYW1zKSx2b2lkIDAsImpib1BGZiIpLHI9KCk9Pnt2YXIgQT1uKCk/LmdldFZpZGVvQ29udGVudFJlY3QoKTtBJiZBLndpZHRoPjAmJkEuaGVpZ2h0PjAmJmQobmV3IEZRKEEubGVmdCwKQS50b3AsQS53aWR0aCxBLmhlaWdodCkpOyhBPW4oKT8uZ2V0U2l6ZSgpKSYmQS53aWR0aD4wJiZBLmhlaWdodD4wJiZmKG5ldyBfLm5kKEEud2lkdGgsQS5oZWlnaHQpKX0sdD1BPT57QT09PSJ5dG0tY2UtaW4tZW5kc2NyZWVuIiYmKG0oITApLFpTKHAoKSkpfSx2PUE9PntBPT09Inl0bS1jZS1pbi1lbmRzY3JlZW4iJiZtKCExKX07Xy5VSigoKT0+e3IoKTtIa2EocCgpKTtuKCk/LmFkZEV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdCk7bigpPy5hZGRFdmVudExpc3RlbmVyKCJvbkN1ZVJhbmdlRXhpdCIsdik7bigpPy5hZGRDdWVSYW5nZSgieXRtLWNlLWluLWVuZHNjcmVlbiIsTnVtYmVyKGEoKS5zdGFydE1zKS8xRTMsTnVtYmVyKDB4N2ZmZmZmZmZmZmZmZikvMUUzKTtfLll1KCgpPT57YigpLkg/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdCk7YigpLkg/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdik7bigpPy5yZW1vdmVDdWVSYW5nZSgieXRtLWNlLWluLWVuZHNjcmVlbiIpfSl9KTsKXy5EUCgicmVzaXplIixyKTt2YXIgej1fLlAoInl0bUNyZWF0b3JFbmRzY3JlZW5Ib3N0IiwoKT0+e3ZhciBBPWMoKS53aWR0aCxGPTAsQz0tMTtmb3IobGV0IEc9MDtHPGlXLmxlbmd0aDtHKyspe2xldCBEPU1hdGguYWJzKEEtaVdbR10pO2lmKEM9PT0tMXx8Rj49RClDPUcsRj1EfXJldHVybmB5dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZSR7aVdbQ119YH0se3l0bUNyZWF0b3JFbmRzY3JlZW5JbkN1ZVJhbmdlOmx9KSxFPV8uUCgieXRtQ3JlYXRvckVuZHNjcmVlblNjcmltIix7eXRtQ3JlYXRvckVuZHNjcmVlblNjcmltVmlzaWJsZTooKT0+aCgpfSk7cmV0dXJuIF8uSygiY3JlYXRvci1lbmRzY3JlZW4iLHtjbGFzczp6fSxfLksoImRpdiIse2NsYXNzOkUsc3R5bGU6Xy5JRSh7d2lkdGg6KDAsXy5aSykoKCk9PmUoKS53aWR0aCksaGVpZ2h0OigwLF8uWkspKCgpPT5lKCkuaGVpZ2h0KX0pfSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmVsZW1lbnRzfSx7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOih7ZGF0YTpBfSk9PgpfLksoa1cse2RhdGE6QSxHQjpjLGlzQWN0aXZlOigpPT5oKCk9PT1BKCkuaWQsWGg6KCk9PiEhaCgpJiZoKCkhPT1BKCkuaWQsZUE6ayxIOm59KX0pKX0sIlVkIik7bFcuaWRvbUNvbXBhdD0hMDsKdmFyIGtXPV8uTCgoe2RhdGE6YSxHQjpiLGlzQWN0aXZlOmMsWGg6ZCxlQTplLEg6Zn0pPT57dmFyIFtoLGtdPV8uSighMSx2b2lkIDAsIktXWUpJZSIpLGw9Xy5OKCgpPT5fLlV3KGEoKS50cmFja2luZ1BhcmFtcyksdm9pZCAwLCJVeHB5VWIiKSxtPXQ9Pnt0LnN1YnN0cmluZygxNSk9PT1hKCkuaWQmJihrKCEwKSxaUyhsKCkpKX0sbj10PT57dC5zdWJzdHJpbmcoMTUpPT09YSgpLmlkJiZrKCExKX07Xy5VSigoKT0+e2Y/LigpLmFkZEV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsbSk7Zj8uKCkuYWRkRXZlbnRMaXN0ZW5lcigib25DdWVSYW5nZUV4aXQiLG4pO3ZhciB0PWB5dG0tY2UtZWxlbWVudC0ke2EoKS5pZH1gO2Y/LigpLmFkZEN1ZVJhbmdlKHQsTnVtYmVyKGEoKS5zdGFydE1zKS8xRTMsTnVtYmVyKGEoKS5lbmRNcykvMUUzKTtfLll1KCgpPT57Zj8uKCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25DdWVSYW5nZUVudGVyIixtKTtmPy4oKS5yZW1vdmVFdmVudExpc3RlbmVyKCJvbkN1ZVJhbmdlRW50ZXIiLApuKTtmPy4oKS5yZW1vdmVDdWVSYW5nZSh0KX0pfSk7dmFyIHA9KCk9PmIoKS5jbG9uZSgpLnNjYWxlKGEoKS53aWR0aCxhKCkud2lkdGgqYigpLmdldFNpemUoKS5hc3BlY3RSYXRpbygpL2EoKS5hc3BlY3RSYXRpbykudHJhbnNsYXRlKGEoKS5sZWZ0KmIoKS53aWR0aC1iKCkubGVmdCooYSgpLndpZHRoLTEpLGEoKS50b3AqYigpLmhlaWdodC1iKCkudG9wKihhKCkud2lkdGgqYigpLmdldFNpemUoKS5hc3BlY3RSYXRpbygpL2EoKS5hc3BlY3RSYXRpby0xKSkscj1fLlAoInl0bUNyZWF0b3JFbmRzY3JlZW5FbGVtZW50Iix7eXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRWaXNpYmxlOigpPT5oKCl9LCgpPT5wKCkud2lkdGg+MjU2fHxwKCkuaGVpZ2h0PjI1Nj9qV1syXTpwKCkud2lkdGg+OTZ8fHAoKS5oZWlnaHQ+OTY/aldbMV06aldbMF0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOnIsc3R5bGU6Xy5JRSh7d2lkdGg6KDAsXy5aSykoKCk9PnAoKS53aWR0aCksaGVpZ2h0OigwLF8uWkspKCgpPT4KcCgpLmhlaWdodCksdG9wOigwLF8uWkspKCgpPT5wKCkudG9wKSxsZWZ0Ol8ueSgpLnJlc29sdmUoXy5sRik9PT0ibHRyIj8oMCxfLlpLKSgoKT0+cCgpLmxlZnQpOiJhdXRvIixyaWdodDpfLnkoKS5yZXNvbHZlKF8ubEYpPT09InJ0bCI/KDAsXy5aSykoKCk9PihmPy4oKS5nZXRTaXplKCk/LndpZHRoPz8wKS1wKCkubGVmdC1wKCkud2lkdGgpOiJhdXRvIn0pLCJvbjptb3VzZW92ZXIiOmZ1bmN0aW9uKHQpe2UoYSgpLmlkKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwib246bW91c2VvdXQiOmZ1bmN0aW9uKHQpe2UoIiIpO3Quc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpmb2N1c2luIjpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KCgpPT57ZShhKCkuaWQpfSwwKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwib246Zm9jdXNvdXQiOmZ1bmN0aW9uKHQpe2UoIiIpO3Quc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaHN0YXJ0IjpmdW5jdGlvbih0KXtlKGEoKS5pZCk7WVMobCgpKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwKIm9uOmNsaWNrIjpmdW5jdGlvbih0KXtZUyhsKCkpO3Quc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkuc3R5bGU9PT0iVklERU8ifHxhKCkuc3R5bGU9PT0iUExBWUxJU1QifSwoKT0+Xy5LKGhXLHtlbmRzY3JlZW5FbGVtZW50UmVuZGVyZXI6YSxpc0FjdGl2ZTpjLFhoOmR9KSksXy5LKF8uQ0Use3doZW46KCk9PmEoKS5zdHlsZT09PSJDSEFOTkVMInx8YSgpLnN0eWxlPT09IldFQlNJVEUifSwoKT0+Xy5LKGdXLHtlbmRzY3JlZW5FbGVtZW50UmVuZGVyZXI6YSxpc0FjdGl2ZTpjLFhoOmR9KSkpKX0sIlZkIik7a1cuaWRvbUNvbXBhdD0hMDt2YXIgWW1hPV8uTChhPT57ZnVuY3Rpb24gYih6KXt2YXIgRT1mKCk/Lm5leHRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5uYXZpZ2F0aW9uRW5kcG9pbnQsQT1mKCk/LnZpZGVvSWQ7RSYmIXo/Xy55KCkucmVzb2x2ZShfLlVEKS5yZXNvbHZlQ29tbWFuZChFKTpBJiZhLkgoKT8ubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKHt2aWRlb0lkOkEsYXV0b25hdjp6LGF1dG9wbGF5Onp9KX1mdW5jdGlvbiBjKHope1hTKDExNTEzMCk7YighMSk7ei5zdG9wUHJvcGFnYXRpb24oKX12YXIgW2QsZV09Xy5KKDAsdm9pZCAwLCJZYkRNZmIiKSxmPV8uTigoKT0+QlMoYS53YXRjaE5leHRSZXNwb25zZT8uKCkpLHZvaWQgMCwiSGFGS01iIiksaD1hLkcsaz1fLk4oKCk9PmgoKS55Zix2b2lkIDAsInNZZ256ZSIpLGw9Xy5OKCgpPT5oKCkuemYsdm9pZCAwLCJkeUN2S2YiKSxtPV8uTigoKT0+bVUoYS5HLGYoKSksdm9pZCAwLCJDWkZvTWIiKSxuPV8udkUoImJ1dHRvbiIsej0+e3omJldTKHosMTE1MTMwKX0pLApwPV8udkUoImRpdiIsej0+e3omJldTKHosMTE1MTI5KX0pO18ubkUoKCk9Pnt2YXIgej1tKCksRT1sKCksQT1rKCksRj1hLkgoKSxDPWYoKTtpZih6KXt6PUM/LmNvdW50RG93blNlY3N8fDEwO3ZhciBHPXoqMUUzO2lmKEUmJkE+MCllKE1hdGgubWF4KDAsKHotQSkveikpO2Vsc2V7dmFyIEQ9KDAsXy5lbCkoKSxIPSgpPT57dmFyIE09KDAsXy5lbCkoKS1EO009TWF0aC5taW4oTS9HLDEpO2UoTSk7TT49MT8od2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKFIpLEY/LmlzUmVhZHk/LigpJiZiKCEwKSk6Uj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpfTt2YXIgUj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpO18uWXUoKCk9Pnt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoUil9KX19ZWxzZSBlKDApfSwiR1NPdHdiIik7dmFyIHI9KCk9PntYUygxMTUxMjkpO2EuRygpLlMoe3hmOiEwfSl9LHQ9Xy5OKCgpPT5gJHstMjExKihkKCkrMSl9YCx2b2lkIDAsIlY1c213ZCIpLAp2PSgpPT5mKCk/LmJhY2tncm91bmQ7cmV0dXJuIF8uSygicGZwLWF1dG9uYXYiLHtjbGFzczpfLlAoInl0UGZwQXV0b25hdkhvc3QiLGEuY2xhc3NOYW1lLHt5dFBmcEF1dG9uYXZWaXNpYmxlOm19KSwib246Y2xpY2siOmZ1bmN0aW9uKHope3ouc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOm0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6YS5HLHRodW1ibmFpbERldGFpbHM6dn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwQXV0b25hdlNjcmltIn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBBdXRvbmF2SGVhZGVyIn0sXy5LKF8uVix7dGV4dDooKT0+ZigpPy50aXRsZSxtYTohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEF1dG9uYXZUaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmYoKT8udmlkZW9UaXRsZSxtYTohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEF1dG9uYXZCeWxpbmUifSxfLksoXy5WLHt0ZXh0OigpPT5mKCk/LmJ5bGluZSxtYTohMH0pKSwKXy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBBdXRvbmF2UGxheUJ1dHRvbiIsIm9uOmNsaWNrIjpjLGVsOm4sImFyaWEtbGFiZWwiOigpPT5mKCk/Lm5leHRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5hY2Nlc3NpYmlsaXR5Py5sYWJlbH0sXy5LKCJzdmciLHtjbGFzczoieXRQZnBBdXRvbmF2UmluZyIsdmlld0JveDoiMCAwIDcyIDcyIn0sXy5LKCJjaXJjbGUiLHtjeDoiMzYiLGN5OiIzNiIscjoiMzEuNSIsZmlsbDoid2hpdGUiLCJmaWxsLW9wYWNpdHkiOiIwLjMifSksXy5LKCJjaXJjbGUiLHtjeDoiLTM2IixjeToiMzYiLHI6IjMzLjUiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0IixmaWxsOiJub25lIix0cmFuc2Zvcm06InJvdGF0ZSgtOTApIiwic3Ryb2tlLWRhc2hhcnJheSI6IjIxMSIsc3R5bGU6Xy5JRSh7InN0cm9rZS1kYXNob2Zmc2V0Ijp0fSl9KSksXy5LKF8uTUQse2ljb246IlBMQVlFUl9QTEFZIixjbGFzc05hbWU6Inl0UGZwQXV0b25hdlBsYXlJY29uIn0pKSwKXy5LKF8uVyx7ZGF0YTooKT0+ZigpPy5jYW5jZWxCdXR0b259LHtidXR0b25SZW5kZXJlcjooe2RhdGE6en0pPT5fLksoImRpdiIse2VsOnAsY2xhc3M6Inl0UGZwQXV0b25hdkNhbmNlbEJ1dHRvbiJ9LF8uSyhfLnBPLHtkYXRhOnosdGc6cixzdG9wUHJvcGFnYXRpb246ITAsYnV0dG9uT3ZlcnJpZGVzOntzdHlsZToib3ZlcmxheSJ9fSkpfSkpKX0pKX0sIlhkIik7dmFyIG1XPV8uTChhPT5fLksoInBmcC1lbmRzY3JlZW4tdmlkZW8tcmVuZGVyZXIiLHtjbGFzczpfLlAoInl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKF8ubkgse2NvbW1hbmQ6KCk9PmEuZGF0YSgpLm5hdmlnYXRpb25FbmRwb2ludCxhcmlhTGFiZWw6KCk9Pl8uYU4oYS5kYXRhKCkudGl0bGUpfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YS5kYXRhKCkudGh1bWJuYWlsLGNsYXNzTmFtZToieXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyVGh1bWJuYWlsIn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXkifSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJPdmVybGF5VGl0bGVCeWxpbmUifSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJUaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnRpdGxlLAptYTohMCx5YzohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJCeWxpbmUifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS5zaG9ydEJ5bGluZVRleHQsbWE6ITAseWM6ITB9KSxfLksoXy5PLHtBOigpPT5hLmRhdGEoKS5zaG9ydFZpZXdDb3VudFRleHQsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCwiIFx1MjAyMiAiLF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnNob3J0Vmlld0NvdW50VGV4dCxtYTohMH0pKX0pKSksXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyRHVyYXRpb24ifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS5sZW5ndGhUZXh0LG1hOiEwfSkpKSkpLCJZZCIpO3ZhciBabWE9Xy5MKGE9PntmdW5jdGlvbiBiKEQpe0Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gYyhEKXt0KCExKTtELnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGQoRCl7dCghMCk7RD8uc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZSgpe0coKX1mdW5jdGlvbiBmKEQpe3ZhciBIPUYudmFsdWU7SCYmKEguc2Nyb2xsVG8oe2xlZnQ6SC5zY3JvbGxMZWZ0LUguY2xpZW50V2lkdGgqLjgsYmVoYXZpb3I6InNtb290aCJ9KSxELnN0b3BQcm9wYWdhdGlvbigpKX1mdW5jdGlvbiBoKEQpe3ZhciBIPUYudmFsdWU7SCYmKEguc2Nyb2xsVG8oe2xlZnQ6SC5zY3JvbGxMZWZ0K0guY2xpZW50V2lkdGgqLjgsYmVoYXZpb3I6InNtb290aCJ9KSxELnN0b3BQcm9wYWdhdGlvbigpKX12YXIgaz1fLk4oKCk9PmEuVWMoKS53YXRjaE5leHRSZXNwb25zZSx2b2lkIDAsIldYNlJCZSIpLGw9Xy5OKCgpPT5NUyhrKCkpLmZpbHRlcihEPT5ELmVuZFNjcmVlblZpZGVvUmVuZGVyZXIpLHZvaWQgMCwKIlZWVWRyYyIpLG09Xy5OKCgpPT57dmFyIEQ9YS5VYygpLnBsYXllclJlc3BvbnNlPy5lbmRzY3JlZW4/LmVuZHNjcmVlblJlbmRlcmVyPy5zdGFydE1zO0Q9RD8rRDp2b2lkIDA7cmV0dXJuIGEuRygpLnBsYXllclN0YXRlPT09MiYmbD8uKCk/Lmxlbmd0aD4wJiYoIUR8fGEuRygpLnZhKjFFMzxEKX0sdm9pZCAwLCJwUVNRS2IiKSxuPV8uTigoKT0+YS5VYygpLnBsYXllclJlc3BvbnNlPy52aWRlb0RldGFpbHM/LnZpZGVvSWQsdm9pZCAwLCJ5UWJOMWUiKSxbcCxyXT1fLkFDKCgpPT57bigpO3JldHVybiExfSksdD1yLFt2LHpdPV8uSighMSx2b2lkIDAsInFRUjczYiIpLFtFLEFdPV8uSighMSx2b2lkIDAsInZjYTNJZCIpLEY9Xy52RSgiZGl2IiksQz1fLk4oKCk9PmEuVWMoKS5wbGF5ZXJSZXNwb25zZT8udmlkZW9EZXRhaWxzPy5hdXRob3I/PyIiLHZvaWQgMCwib0pFMHNkIiksRz0oKT0+e3ZhciBEPUYudmFsdWU7RCYmKHooRC5zY3JvbGxMZWZ0PjEpLEEoRC5zY3JvbGxMZWZ0PApELnNjcm9sbFdpZHRoLUQuY2xpZW50V2lkdGgtMSkpfTtfLm5FKCgpPT57cCgpO20oKSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57RygpfSl9LCJ0QTExN2QiKTtyZXR1cm4gXy5LKCJwZnAtbW9yZS12aWRlb3MiLHtjbGFzczpfLlAoInl0UGZwTW9yZVZpZGVvc0hvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKF8uTyx7QTooKT0+bSgpJiYhcCgpLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc092ZXJsYXkiLCJvbjpjbGljayI6Yn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zSGVhZGVyIn0sXy5LKCJoMyIse2NsYXNzOiJ5dFBmcE1vcmVWaWRlb3NUaXRsZSJ9LCgpPT5fLiROLnp0LnJlcGxhY2UoIiRjaGFubmVsX25hbWVfcGxhY2Vob2xkZXIiLEMoKSkpLF8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc0Nsb3NlQnV0dG9uIiwib246Y2xpY2siOmQsImFyaWEtbGFiZWwiOl8uJE4ueHR9LF8uSyhfLk1ELHtpY29uOiJDTE9TRSIsCmNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zQ2xvc2VJY29uIn0pKSksXy5LKCJkaXYiLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zVmlkZW9MaXN0Q29udGFpbmVyIn0sXy5LKF8uTyx7QTp2LHRoZW46KCk9Pl8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnQiLCJvbjpjbGljayI6ZiwiYXJpYS1sYWJlbCI6Xy4kTi5mb30sXy5LKF8uTUQse2ljb246IkNIRVZST05fTEVGVCIsY2xhc3NOYW1lOiJ5dFBmcE1vcmVWaWRlb3NQYWRkbGVJY29uIn0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdCIsZWw6Riwib246c2Nyb2xsIjplfSxfLksoXy5XLHtkYXRhOmwsSGs6ITB9LHtlbmRTY3JlZW5WaWRlb1JlbmRlcmVyOih7ZGF0YTpEfSk9Pl8uSyhtVyx7ZGF0YTpELGNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVtIn0pfSkpLF8uSyhfLk8se0E6RSx0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodCIsCiJvbjpjbGljayI6aCwiYXJpYS1sYWJlbCI6Xy4kTi5lb30sXy5LKF8uTUQse2ljb246IkNIRVZST05fUklHSFQiLGNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zUGFkZGxlSWNvbiJ9KSl9KSkpfSksXy5LKF8uTyx7QTooKT0+bSgpJiZwKCksdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zTW9yZVZpZGVvc0J1dHRvbiIsIm9uOmNsaWNrIjpjLCJhcmlhLWxhYmVsIjpfLiROLmJvfSxfLiROLmJvKX0pKX0sIiRkIik7dmFyICRtYT1fLkwoYT0+Xy5LKCJwZnAtZW5kc2NyZWVuLXBsYXlsaXN0LXJlbmRlcmVyIix7Y2xhc3M6Xy5QKCJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJIb3N0IixhLmNsYXNzTmFtZSl9LF8uSyhfLm5ILHtjb21tYW5kOigpPT5hLmRhdGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsYXJpYUxhYmVsOigpPT5fLmFOKGEuZGF0YSgpLnRpdGxlKX0sXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6KCk9PmEuZGF0YSgpLnRodW1ibmFpbCxjbGFzc05hbWU6Inl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlclRodW1ibmFpbCJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5In0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyT3ZlcmxheVRpdGxlIn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyVGl0bGUifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS50aXRsZSwKbWE6ITB9KSkpKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJCb3R0b21PdmVybGF5In0sXy5LKF8uTUQse2ljb246IlBMQVlMSVNUUyIsY2xhc3NOYW1lOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJJY29uIn0pLF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnZpZGVvQ291bnRUZXh0LHljOiEwfSkpKSksImFlIik7dmFyIGFuYT1fLkwoYT0+e2Z1bmN0aW9uIGIoRil7Ri5zdG9wUHJvcGFnYXRpb24oKTtGPXooKS5sZW5ndGg7bSgobCgpLXIoKStGKnIoKSklRil9ZnVuY3Rpb24gYyhGKXtGLnN0b3BQcm9wYWdhdGlvbigpO0Y9eigpLmxlbmd0aDttKChsKCkrcigpKSVGKX12YXIgZD1fLnZFKCJkaXYiKSxbZSxmXT1fLkooW10sdm9pZCAwLCJFclVRSWUiKSxbaCxrXT1fLkooMCx2b2lkIDAsIldNZVlvZCIpLGw9aCxtPWssW24scF09Xy5KKDAsdm9pZCAwLCJPelBTa2UiKSxyPW4sW3QsLHZdPV8uSigwLHZvaWQgMCwibENUbXBlIik7Xy5EUCgicmVzaXplIiwoKT0+e3YoRj0+RisxKX0pO3ZhciB6PV8uTigoKT0+TVMoYS53YXRjaE5leHRSZXNwb25zZT8uKCkpLHZvaWQgMCwicnkyRFQiKSxFPV8uTigoKT0+blUoYS5HLGEud2F0Y2hOZXh0UmVzcG9uc2U/LigpKSx2b2lkIDAsIkZoVVpyIiksQT1fLk4oKCk9PnIoKSYmeigpLmxlbmd0aD5yKCksdm9pZCAwLCJVd0VjNWIiKTtfLm5FKCgpPT57dCgpOwp2YXIgRj16KCksQz1sKCk7aWYoRSgpJiZkLnZhbHVlKWlmKEYubGVuZ3RoKXt2YXIgRz1kLnZhbHVlLEQ9Ry5jbGllbnRXaWR0aDtHPUcuY2xpZW50SGVpZ2h0O2xldCBUPUYubGVuZ3RoO2Zvcih2YXIgSD0yLFI9MixNPU1hdGgubWF4KEQvOTYsMiksUz1NYXRoLm1heChHLzU0LDIpLFk9KFQtMSkqNDtZPjAmJihIPE18fFI8Uyk7KXt2YXIgcGE9SC8yLG9hPVIvMixVPUg8PU0tMiYmWT49b2EqNCxoYT1SPD1TLTImJlk+PXBhKjQ7aWYoKHBhKzEpL29hKm5XLyhEL0cpPkQvRy8ocGEvKG9hKzEpKm5XKSYmaGEpWS09cGEqNCxSKz0yO2Vsc2UgaWYoVSlZLT1vYSo0LEgrPTI7ZWxzZSBpZihoYSlZLT1wYSo0LFIrPTI7ZWxzZSBicmVha31sZXQge2NvbHVtbkNvdW50OmJhLFl6OmFhLFJ6Ok9hfT17Y29sdW1uQ291bnQ6SCxZejpSLFJ6Oll9O0g9ITE7T2E+PTEyJiZUKjQtT2E8PTYmJihhYT49NHx8YmE+PTQpJiYoSD0hMCk7Uj1iYSo5NjtNPWFhKjU0O1M9TWF0aC5taW4oUi9NPEQvRz8KRy9NOkQvUiwyKTtSPU1hdGguZmxvb3IoTWF0aC5taW4oRCxSKlMpKTtNPU1hdGguZmxvb3IoTWF0aC5taW4oRyxNKlMpKTtsZXQge1NBOkpiLFJBOnphfT17U0E6UixSQTpNfTtSPUpiKzQ7TT16YSs0O1M9MDtZPVtdO2ZvcihwYT0wO3BhPGJhO3BhKyspZm9yKG9hPTA7b2E8YWE7b2ErKylpZihVPTAsSCYmcGE+PWJhLTImJm9hPj1hYS0yP1U9MTpvYSUyPT09MCYmcGElMj09PTAmJihVPTIpLGhhPVMlVCxVIT09MCl7bGV0IExiPU1hdGguZmxvb3IoTSpvYS9hYSksY2M9TWF0aC5mbG9vcihSKnBhL2JhKTtZLnB1c2goe2RhdGE6RlsoaGErQyklVF0sbGVmdDpjYysoRC1KYikvMix0b3A6TGIrKEctemEpLzIsd2lkdGg6TWF0aC5mbG9vcihSKihwYStVKS9iYSktY2MtNCxoZWlnaHQ6TWF0aC5mbG9vcihNKihvYStVKS9hYSktTGItNH0pO1MrK312YXIge1N5Om1hLGluZGV4OnRhfT17U3k6WSxpbmRleDpTfTtmKG1hKTtwKHRhKX1lbHNlIGYoW10pfSwid2VZNEIiKTtyZXR1cm4gXy5LKCJwZnAtdmlkZW8td2FsbC1lbmRzY3JlZW4iLAp7Y2xhc3M6Xy5QKCJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlbkhvc3QiLGEuY2xhc3NOYW1lLHt5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpc2libGU6RSx5dFBmcFZpZGVvV2FsbEVuZHNjcmVlbklzT2JzY3VyZWQ6YS5VeH0pLCJvbjpjbGljayI6ZnVuY3Rpb24oRil7Ri5zdG9wUHJvcGFnYXRpb24oKX19LF8uSyhfLk8se0E6RSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpZGVvTGlzdENvbnRhaW5lciJ9LF8uSyhfLk8se0EsdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVMZWZ0Iiwib246Y2xpY2siOmIsImFyaWEtbGFiZWwiOl8uJE4uZm99LF8uSyhfLk1ELHtpY29uOiJDSEVWUk9OX0xFRlQiLGNsYXNzTmFtZToieXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVJY29uIn0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuVmlkZW9MaXN0IiwKZWw6ZH0sXy5LKF8uZ0cse3BhOmV9LEY9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuVmlkZW9JdGVtIixzdHlsZTpfLklFKHt0b3A6KDAsXy5aSykoKCk9PkYudG9wKSxsZWZ0OigwLF8uWkspKCgpPT5GLmxlZnQpLHdpZHRoOigwLF8uWkspKCgpPT5GLndpZHRoKSxoZWlnaHQ6KDAsXy5aSykoKCk9PkYuaGVpZ2h0KX0pfSxfLksoXy5XLHtkYXRhOigpPT5GLmRhdGF9LHtlbmRTY3JlZW5WaWRlb1JlbmRlcmVyOm1XLGVuZFNjcmVlblBsYXlsaXN0UmVuZGVyZXI6JG1hfSkpKSksXy5LKF8uTyx7QSx0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZVJpZ2h0Iiwib246Y2xpY2siOmMsImFyaWEtbGFiZWwiOl8uJE4uZW99LF8uSyhfLk1ELHtpY29uOiJDSEVWUk9OX1JJR0hUIixjbGFzc05hbWU6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlSWNvbiJ9KSl9KSl9KSl9LCJjZSIpLG5XPTk2LzU0O3ZhciBvVz1fLkwoKHtqZTphfSk9Pnt2YXIgYj1fLk4oKCk9PmEoKSx2b2lkIDAsIkVUZ2U3ZCIpLFtjLCxkXT1fLkooMCx2b2lkIDAsIlpDQklzIik7Xy5uRSgoKT0+e2IoKSYmZChlPT5lKzEpfSwiS3NYM3JmIik7cmV0dXJuIF8uSygicGxheWVyLWFjdGlvbi1pbmRpY2F0b3IiLHtjbGFzczoieXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckhvc3QifSxfLksoXy5nRyx7cGE6KCk9PmIoKT9bYygpXTpbXX0sKCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGxheWVyQ29udHJvbHNQbGF5ZXJBY3Rpb25JbmRpY2F0b3JBY3Rpb24ifSxfLksoXy5NRCx7aWNvbjpiLGNsYXNzTmFtZToieXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckljb24ifSkpKSl9LCJlZSIpO29XLmlkb21Db21wYXQ9ITA7dmFyIHBXPV8uTCgoe0c6YSxTbTpiLHBsYXllck92ZXJsYXlSZW5kZXJlcjpjLFZ3OmQsY2xhc3NOYW1lOmV9KT0+e3ZhciBmPSgpPT5fLkIoYj8uKCk/LnBsYXllckJhckFjdGlvbkJ1dHRvbixfLlZMKTtyZXR1cm4gXy5LKCJwbGF5ZXItdGltZS1kaXNwbGF5Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUaW1lRGlzcGxheUhvc3QiLGUpfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXR3UGxheWVyVGltZURpc3BsYXlUaW1lQ2h1bmtzIix7eXR3UGxheWVyVGltZURpc3BsYXlQaWxsOigpPT4hZD8uKCkseXR3UGxheWVyVGltZURpc3BsYXlMaXZlRG90OigpPT5hKCkuaXNMaXZlLHl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZUhlYWQ6KCk9Pm9VKGEoKSl9KSwib246Y2xpY2siOmZ1bmN0aW9uKGgpe2lmKGEoKS5pc0xpdmUmJiFvVShhKCkpKXthKCkuSD8uc2Vla1RvKEluZmluaXR5KTt2YXIgaz1VUShhKCkuSCk7ayYmYSgpLlMoe3ZpZGVvRHVyYXRpb246a30pfWguc3RvcFByb3BhZ2F0aW9uKCl9fSwKXy5LKCJkaXYiLHtkaXI6Imx0ciJ9LF8uSyhibmEse0c6YSxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6Y30pLF8uSyhfLk8se0E6KCk9PiFvVShhKCkpLHRoZW46KCk9Pl8uSyhjbmEse0c6YX0pfSkpKSxfLksoXy5PLHtBOigpPT57dmFyIGg9Xy5CKGI/LigpPy5wbGF5ZXJCYXIsRFMpP18uQihrVChhKCksXy5CKGI/LigpPy5wbGF5ZXJCYXIsRFMpKSxlVCk/LnRpdGxlOnZvaWQgMCxrPWYoKT8udGV4dDtyZXR1cm4gaD8/a30sdGhlbjpoPT5fLksoZG5hLHt0aXRsZTpoLGJ1dHRvbjpmLEc6YX0pfSkpfSwiZmUiKSxibmE9Xy5MKCh7RzphLHBsYXllck92ZXJsYXlSZW5kZXJlcjpifSk9Pnt2YXIgYz0oKT0+YSgpLmlzTGl2ZT9fLiROLmxvOkNUKGEoKS52YSk7cmV0dXJuIF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVRpbWVFbGFwc2VkIn0sXy5LKCJzcGFuIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyhfLk8se0E6KCk9PmI/LigpPy5saXZlSW5kaWNhdG9yVGV4dCwKdGhlbjpkPT5fLksoXy5WLHt0ZXh0OmR9KSxXOigpPT5fLksoXy5JQixudWxsLGMpfSkpLF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVNjcmVlblJlYWRlck9ubHkifSwoKT0+e2lmKGEoKS5pc0xpdmUpcmV0dXJuIF8uJE4ubG87dmFyIGQ9UFIoe3NlY29uZHM6YSgpLnZhfSk7cmV0dXJuYCR7Xy4kTi5WdH0gJHtkfWB9KSl9LCJnZSIpLGNuYT1fLkwoKHtHOmF9KT0+e3ZhciBiPSgpPT57aWYob1UoYSgpKSl2YXIgYz0wO2Vsc2V7Yz1NYXRoO3ZhciBkPWMucm91bmQsZT1hKCk7Yz1kLmNhbGwoYyxlLmlzRHJhZ2dpbmc/ZS5DYTplLnZhKS1NYXRoLnJvdW5kKFVRKGEoKS5IKSl9cmV0dXJuIGN9O3JldHVybiBfLksoXy5JQixudWxsLF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVRpbWVTZWNvbmQifSksXy5LKCJzcGFuIix7Y2xhc3M6Inl0d1BsYXllclRpbWVEaXNwbGF5VGltZURlbGltaXRlciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LAoiLyIpLF8uSygic3BhbiIse2NsYXNzOl8uUCgieXR3UGxheWVyVGltZURpc3BsYXlUaW1lU2Vjb25kIiwieXR3UGxheWVyVGltZURpc3BsYXlUaW1lRHVyYXRpb24iKX0sXy5LKCJzcGFuIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LCgpPT5hKCkuaXNMaXZlP0NUKGIoKSk6Q1QoYSgpLnZpZGVvRHVyYXRpb24pKSxfLksoInNwYW4iLHtjbGFzczoieXR3UGxheWVyVGltZURpc3BsYXlTY3JlZW5SZWFkZXJPbmx5In0sKCk9PntpZihhKCkuaXNMaXZlKXJldHVybiBDVChiKCkpO3ZhciBjPVBSKHtzZWNvbmRzOmEoKS52aWRlb0R1cmF0aW9ufSk7cmV0dXJuYCR7Xy4kTi5VdH0gJHtjfWB9KSkpfSwiaGUiKSxkbmE9Xy5MKCh7dGl0bGU6YSxidXR0b246YixHOmN9KT0+e2Z1bmN0aW9uIGQoZil7Yj8uKCk/LmNvbW1hbmQmJihfLkFKKGIoKS5jb21tYW5kLHt9LCExKSxmLnN0b3BQcm9wYWdhdGlvbigpKX12YXIgZT1fLk4oKCk9PmMoKS5iYT8uRWUsdm9pZCAwLCJqZzJPTWMiKTtyZXR1cm4gXy5LKF8uTywKe0E6Yix0aGVuOmY9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQWN0aW9uQ29udGFpbmVyIn0sXy5LKCJidXR0b24iLHtjbGFzczpfLlAoInl0d1BsYXllclRpbWVEaXNwbGF5UGlsbCIsInl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQnV0dG9uIiksIm9uOmNsaWNrIjpkLCJhcmlhLWxhYmVsIjooKT0+Xy5hTihmKCkudGV4dCl9LF8uSyhfLlYse3RleHQ6YSx5YzohMH0pLF8uSyhfLk8se0E6KCk9PiEoXy54KCJtd2ViX3VzZV9vbmx5X2NoYXB0ZXJfdGl0bGVfaW5fZnVsbHNjcmVlbiIpJiZjKCkuaXNGdWxsc2NyZWVuKSx0aGVuOigpPT5fLksoXy5NRCx7aWNvbjoiQ0hFVlJPTl9SSUdIVF9DQUlSTyIsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheUNoZXZyb24ifSl9KSkpLFc6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUaW1lRGlzcGxheUNoYXB0ZXJUZXh0Iix7eXR3UGxheWVyVGltZURpc3BsYXlGdWxsc2NyZWVuQ29udHJvbHNBbHdheXNPbjplfSl9LApfLksoXy5WLHt0ZXh0OmEseWM6ITB9KSl9KX0sImllIik7dmFyIHFXPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMuZ249YTt0aGlzLmxpc3RlbmVycz1bXTt0aGlzLmNvbnRleHQ9Yjt0aGlzLm89ZDt0aGlzLnY9cVUodGhpcy5VYz8uSCk7dGhpcy5EPXRoaXMuUy5iaW5kKHRoaXMpO3RoaXMuc3RhdGU9ey4uLmRUKCksLi4uY307YT10aGlzLnVkKCk7W3RoaXMuQix0aGlzLmpdPV8uSihhLHZvaWQgMCwicDNOd3EiKX1TKGEpe2lmKCFxbGEoYSx0aGlzLnN0YXRlKSl7dGhpcy5zdGF0ZT17Li4udGhpcy5zdGF0ZSwuLi5hfTthPV8ueCgicGxheWVyX2NvbnRyb2xzX2xvZ19jcmVhdGlvbl9lbmFibGVkIik7dmFyIGI9LTE7YSYmIXBVKCkmJihiPSgwLF8uZWwpKCkpO2EmJl8uQXEoInBjdV9zIik7dGhpcy5qJiZ0aGlzLmoodGhpcy51ZCgpKTthJiYoXy5BcSgicGN1X3NlIiksXy5BcSgicGN1X3JzIikpO3RoaXMuZ24odGhpcy51ZCgpKTthJiYoXy5BcSgicGN1X3JlIikscGxhKGIpLF8uamYuR2EoKCk9PntfLkFxKCJwY3VfYXAiKX0sCjgpKX19dWQoKXt2YXIgYT10aGlzLm8/cVUodGhpcy5vKCkpOnFVKHRoaXMuVWM/LkgpO3JldHVybnsuLi50aGlzLnN0YXRlLFM6dGhpcy5ELEg6YSx0YTp0aGlzLmNvbnRleHQudGEsVGM6dGhpcy5jb250ZXh0LlRjLEdjOnRoaXMuY29udGV4dC5HYyxiYTp0aGlzLmNvbnRleHQuYmF9fWdldERhdGEoKXtyZXR1cm4gdGhpcy5VY319O3ZhciByVz1fLkwoYT0+e2Z1bmN0aW9uIGIoWSl7TT1ILmFuaW1hdGUoW3tvZmZzZXQ6MCxlYXNpbmc6ImN1YmljLWJlemllcigwLjIwLCAwLjAwLCAwLjYwLCAxLjAwKSIsb3BhY2l0eTpZfSx7b2Zmc2V0OjEsb3BhY2l0eToxfV0se2R1cmF0aW9uOjIwMCxmaWxsOiJmb3J3YXJkcyJ9KTtNLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PntNPXZvaWQgMDtlKCk7Rj0ibGluZ2VyaW5nIn0pfWZ1bmN0aW9uIGMoWSxwYT0hMSxvYT0hMSl7dmFyIFU9W107VS5wdXNoKHtvZmZzZXQ6MCx0cmFuc2Zvcm06YHRyYW5zbGF0ZVgoJHtDPT09LTE/MjA6LTIwfXB4KWAsb3BhY2l0eTpwYT8iMCI6IjEifSk7cGEmJlUucHVzaCh7b2Zmc2V0Oi41LG9wYWNpdHk6IjEifSk7VS5wdXNoKHtvZmZzZXQ6MSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoMCkiLG9wYWNpdHk6IjEifSk7cGE9WS5hbmltYXRlKFUse2R1cmF0aW9uOjQwMCxlYXNpbmc6ImN1YmljLWJlemllcigwLjA1LCAwLjAwLCAwLjAwLCAxLjAwKSJ9KTsKWT1ZLnF1ZXJ5U2VsZWN0b3IoInBhdGgiKTtVPVtdO3ZhciBoYT17b2Zmc2V0OjAsZDpDPT09LTE/J3BhdGgoIk0gMTggNCBMIDE4IDE2IEwgMTggMjgiKSc6J3BhdGgoIk0gNCA0IEwgNCAxNiBMIDQgMjgiKSd9O29hJiYoaGEuZmlsdGVyPSJkcm9wLXNoYWRvdygwIDAgMC41cHggcmdiYSgwLCAwLCAwLCAwLjgpKSIpO1UucHVzaChoYSk7b2EmJlUucHVzaCh7b2Zmc2V0Oi44LGZpbHRlcjoiZHJvcC1zaGFkb3coMCAwIDAuNXB4IHJnYmEoMCwgMCwgMCwgMC44KSkifSk7aGE9e29mZnNldDoxLGQ6Qz09PS0xPydwYXRoKCJNIDE4IDQgTCA2IDE2IEwgMTggMjgiKSc6J3BhdGgoIk0gNCA0IEwgMTYgMTYgTCA0IDI4IiknfTtvYSYmKGhhLmZpbHRlcj0iZHJvcC1zaGFkb3coMCAwIDAuNXB4IHJnYmEoMCwgMCwgMCwgMCkpIik7VS5wdXNoKGhhKTtZLmFuaW1hdGUoVSx7ZHVyYXRpb246MzMzLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMDUsIDAuMDAsIDAuMDAsIDEuMDApIixmaWxsOiJmb3J3YXJkcyJ9KTsKcmV0dXJuIHBhfWZ1bmN0aW9uIGQoKXt2YXIgWT1ILnF1ZXJ5U2VsZWN0b3IoIi55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGVyc2lzdGVudCIpLmNsb25lTm9kZSghMCk7WS5jbGFzc0xpc3QuYWRkKCJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93QWRkaXRpb25hbCIpO1kuY2xhc3NMaXN0LnJlbW92ZSgieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BlcnNpc3RlbnQiKTtILmFwcGVuZENoaWxkKFkpO2MoWSwhMCwhMCkuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKT0+e1kucmVtb3ZlKCl9KX1mdW5jdGlvbiBlKCl7Y2xlYXJUaW1lb3V0KFIpO1I9c2V0VGltZW91dCgoKT0+e2YoKX0sXy5zaigid2ViX3BsYXllcl9zZWVrX292ZXJsYXlfbGluZ2VyX2R1cmF0aW9uIiwzMDApKX1mdW5jdGlvbiBmKFk9MSxwYT0hMCl7TT1ILmFuaW1hdGUoW3tvZmZzZXQ6MCxvcGFjaXR5Oll9LHtvZmZzZXQ6MSxvcGFjaXR5OjB9XSx7ZHVyYXRpb246MjAwLGZpbGw6ImZvcndhcmRzIixlYXNpbmc6ImN1YmljLWJlemllcigwLjIwLCAwLjAwLCAwLjYwLCAxLjAwKSJ9KTsKcGEmJihNLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PntTPy4oKTtNPXZvaWQgMDtrKCk7QSghMSl9KSxGPSJmYWRpbmctb3V0Iil9ZnVuY3Rpb24gaCgpe2lmKCFNKXJldHVybiAwO3ZhciBZPU51bWJlcihnZXRDb21wdXRlZFN0eWxlKEgpLm9wYWNpdHkpO00uY2FuY2VsKCk7TT12b2lkIDA7cmV0dXJuIFl9ZnVuY3Rpb24gaygpe0Y9ImhpZGRlbiI7SD1DPXZvaWQgMDtjbGVhclRpbWVvdXQoUil9dmFyIGw9Xy5OKCgpPT5hLkcoKS5KZCx2b2lkIDAsInBkbG1ZYiIpLG09Xy5OKCgpPT5hLkcoKS5LYix2b2lkIDAsImFQUzlKIiksbj1fLk4oKCk9PmEuRygpLkgsdm9pZCAwLCJ4dkJybGYiKSxbcCxyXT1fLkooIiIsdm9pZCAwLCJWSnVnemQiKSxbdCx2XT1fLkooIiIsdm9pZCAwLCJZU0tTT2QiKSxbeixFXT1fLkooITEsdm9pZCAwLCJPc21pbmMiKSxBPUUsRj0iaGlkZGVuIixDLEcsRCxILFI9MCxNLFM7Xy5uRSgoKT0+e2lmKEVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGUpe3ZhciBZPQpsKCk7aWYoIShtKCk8PTF8fFk9PT0wKSl7QSghMCk7aWYoQyYmWSE9PUMpe2xldCBwYT0xO00mJihwYT1oKCkpO2YocGEsITEpO2soKX1DPVk7SD1DPT09LTE/RzpEO2lmKEcmJkQpaWYoWT1uKCksWT1ZPy5pc1JlYWR5Py4oKT9ZLmdldEN1cnJlbnRUaW1lKCk6MCxZPUM9PT0tMSYmWTw9MTA/MTA6KG0oKS0xKSoxMCxZPWAke0M9PT0tMT8iXHUyMjEyIjoiKyJ9ICR7WX1gLEM9PT0tMT9yKFkpOnYoWSksRj09PSJoaWRkZW4ifHxGPT09ImZhZGluZy1vdXQiKVk9MCxGPT09ImZhZGluZy1vdXQiJiYoWT1oKCksZCgpKSxiKFkpLEYhPT0iZmFkaW5nLW91dCImJmMoSC5xdWVyeVNlbGVjdG9yKCIueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BlcnNpc3RlbnQiKSksRj0iZmFkaW5nLWluIjtlbHNlIGlmKEY9PT0iZmFkaW5nLWluInx8Rj09PSJsaW5nZXJpbmciKUgucXVlcnlTZWxlY3RvcigiLnl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24iKS5hbmltYXRlKFt7b2Zmc2V0OjAsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC4yMCwgMC4wMCwgMC42MCwgMS4wMCkiLAp0cmFuc2Zvcm06InNjYWxlKDEpIn0se29mZnNldDouNjQsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC4yMCwgMC4wMCwgMC42MCwgMS4wMCkiLHRyYW5zZm9ybTpgc2NhbGUoJHtfLnNqKCJ3ZWJfcGxheWVyX3NlZWtfb3ZlcmxheV9kdXJhdGlvbl9idW1wX3NjYWxlIil8fC45fSlgfSx7b2Zmc2V0OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSJ9XSx7ZHVyYXRpb246MTg0fSksZCgpLEY9PT0ibGluZ2VyaW5nIiYmZSgpfX19LCJoem55RCIpO18uWXUoKCk9PntoKCk7aygpfSk7cmV0dXJuIF8uSygieXR3LXBsYXllci1zZWVrLW92ZXJsYXkiLHtjbGFzczoieXR3UGxheWVyU2Vla092ZXJsYXlIb3N0IixzdHlsZTpfLklFKHtkaXNwbGF5OigpPT56KCk/ImJsb2NrIjoibm9uZSJ9KX0sXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uIiwieXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25CYWNrIiksZWw6Xy5yRihZPT57Rz1ZfSl9LF8uSygiZGl2IiwKe2NsYXNzOl8uUCgieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvdyIsInl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQZXJzaXN0ZW50Iil9LF8uSygic3ZnIix7dmlld0JveDoiMCAwIDIyIDMyIix3aWR0aDoiMjIiLGhlaWdodDoiMjQiLGNsYXNzOiJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93U3ZnIn0sXy5LKCJwYXRoIix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQYXRoIixkOiJNIDE4IDQgTCA2IDE2IEwgMTggMjgiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0Iiwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsZmlsbDoibm9uZSJ9KSkpLF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24ifSxwKSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uIiwieXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIiksZWw6Xy5yRihZPT57RD1ZfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24ifSwKdCksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QXJyb3ciLCJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGVyc2lzdGVudCIpfSxfLksoInN2ZyIse3ZpZXdCb3g6IjAgMCAyMiAzMiIsd2lkdGg6IjIyIixoZWlnaHQ6IjI0IixjbGFzczoieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1N2ZyJ9LF8uSygicGF0aCIse2NsYXNzOiJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGF0aCIsZDoiTSA0IDQgTCAxNiAxNiBMIDQgMjgiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0Iiwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsZmlsbDoibm9uZSJ9KSkpKSl9LCJrZSIpO3ZhciB0VTt2YXIgW2VuYSxzV109Xy5KKCExLHZvaWQgMCwiR05XM1MiKSxbQ1UsRFVdPV8uSighMSx2b2lkIDAsIkdBRWtKIiksW3RXLHRsYV09Xy5KKHZvaWQgMCx2b2lkIDAsIk9WUDFlZSIpO3ZhciBCVT0wO3ZhciBFVT12b2lkIDA7dmFyIHpVPTAsSFU9MCxHVT0wLHlVPTAsQVU9ITEsRlU9MDt2YXIgTlU7dmFyIHVXPVt7cmVnaXN0ZXI6YT0+e3ZhciBiPXdsYShhKTthKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25Wb2x1bWVDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9eGxhKGEpO2E9YSgpLkg7YT8uYWRkRXZlbnRMaXN0ZW5lcigiY2FwdGlvbnNjaGFuZ2VkIixiKTthPy5hZGRFdmVudExpc3RlbmVyKCJjYXB0aW9uc3NldHRpbmdzY2hhbmdlZCIsYik7YT8uYWRkRXZlbnRMaXN0ZW5lcigib25DYXB0aW9uc1RyYWNrTGlzdENoYW5nZWQiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjooYSxiKT0+e2I9QmxhKGEsYik7YSgpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9RGxhKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJTRUVLX0NPTVBMRVRFIixiKTtyZXR1cm4oKT0+e319fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPVBVKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsCmIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjooYSxiKT0+e2I9RWxhKGEsYik7YSgpPy5IPy5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvUHJvZ3Jlc3MiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9RmxhKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJvbk11dGVkQXV0b3BsYXlDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9SGxhKGEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPUlsYShhKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGIpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixiKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPUdsYShhKTthKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25GdWxsc2NyZWVuQ2hhbmdlIiwKYik7cmV0dXJuKCk9Pnt9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1KbGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsYil9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1LbGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5lcnJvciIsYik7cmV0dXJuKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmVycm9yIixiKX19fSx7cmVnaXN0ZXI6KGEsYik9Pnt2YXIgYz1MbGEoYSxiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGxheWVyLWF1dG9uYXYtcGF1c2UiLGMpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBsYXllci1hdXRvbmF2LXBhdXNlIixjKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPU1sYShhKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYXV0b25hdi10b2dnbGUtY2xpY2siLApiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJhdXRvbmF2LXRvZ2dsZS1jbGljayIsYil9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1ObGEoYSk7YSgpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uTG9vcFJhbmdlQ2hhbmdlIixiKTtyZXR1cm4oKT0+e319fSx7cmVnaXN0ZXI6YT0+e2lmKCFfLngoImVuYWJsZV9td2ViX2tleWJvYXJkX3Nob3J0Y3V0cyIpKXJldHVybigpPT57fTt2YXIgYj16bGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGIpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGIpfX19XTt2YXIgVmxhPV8uTChhPT57dmFyIGI9Xy5OKCgpPT5hLkgoKSx2b2lkIDAsInE4V3NLZiIpLGM9Xy5OKCgpPT5hLmRhdGEoKSx2b2lkIDAsIms2VWVWIiksZD1fLk4oKCk9Pnt2YXIgQz1hLmNvbnRleHQoKTtyZXR1cm4gbmV3IHFXKCgpPT57fSxDLHthdXRvbmF2RW5hYmxlZDpDLnRhLmRlKCksZWE6ITB9LGIpfSx2b2lkIDAsIk9BeElKYiIpLGU9Xy5OKCgpPT4oMCxkKCkuQikoKSx2b2lkIDAsIlV1MVJpIiksZj1fLk4oKCk9Pnt2YXIgQz1lKCk7cmV0dXJuIF8ueCgibXdlYl9wY19saXZlX2R2cl9rcyIpPyExOkMuaXNMaXZlJiYhQy5pc0xpdmVEdnJFbmFibGVkfSx2b2lkIDAsImN0VWczZCIpLGg9Xy5OKCgpPT57dmFyIEM9ZigpO3JldHVybiByVSgpJiYhQ30sdm9pZCAwLCJuSmRrMGMiKSxrPV8uTigoKT0+YygpLnBsYXllclJlc3BvbnNlPy5wbGF5YWJpbGl0eVN0YXR1c3x8YygpLmpiPy5wcmV2aWV3UGxheWFiaWxpdHlTdGF0dXMsdm9pZCAwLCJCVlhDOSIpLGw9Xy5OKCgpPT4KZSgpLmJhPy5aaCYmJFMoZSgpLGsoKSksdm9pZCAwLCJNSHZId2YiKSxtPV8uTigoKT0+blUoZSxjKCkud2F0Y2hOZXh0UmVzcG9uc2UpLHZvaWQgMCwiY3R4VXMiKSxuPV8uTigoKT0+bVUoZSxCUyhjKCkud2F0Y2hOZXh0UmVzcG9uc2UpKSx2b2lkIDAsIkdMa0JVIikscD1fLk4oKCk9Pnt2YXIgQz1sKCksRz1tKCksRD1uKCksSD1lKCkucGxheWVyU3RhdGU7cmV0dXJuIEM/ITA6R3x8RD8hMTpIPT09MH0sdm9pZCAwLCJYRUV2QiIpLHI9Xy52RSgiYnV0dG9uIixDPT57QyYmV1MoQywyODU3MiwhXy54KCJlbWJlZHNfY3VlZF9vdmVybGF5X3ZlX2tzIikpfSksdD1fLk4oKCk9Pnt2YXIgQz1jKCk7cmV0dXJuKEM9Xy5CKE5TKEMud2F0Y2hOZXh0UmVzcG9uc2U/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIsQy5qYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIpPy5jb2xsYXBzZWRSZW5kZXJlcixtVik/LnRpdGxlKT9fLmFOKEMpOnZvaWQgMH0sCnZvaWQgMCwiZ3NHV3kiKSx2PV8udUYoQz0+e3ZhciBHPWUoKSxEPWMoKSxIPXQoKTtyZXR1cm4gRy5iYT8uaGlkZVZpZGVvSW5mbz8hMTpELndhdGNoTmV4dFJlc3BvbnNlfHxELmpiP0ghPT12b2lkIDA6Q30se2luaXRpYWw6ITB9KSx6PV8uTigoKT0+ZSgpLmVhLHZvaWQgMCwiVFI5S0dkIiksRT1fLnVGKEM9Pnt2YXIgRz1jKCk7cmV0dXJuKEcucGxheWVyUmVzcG9uc2U/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyfHxHLmpiPy5lbWJlZFByZXZpZXc/LnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcik/LmNvbnRyb2xCZ0h0bWw/P0N9LHtpbml0aWFsOnZvaWQgMH0pLEE9W107Xy5uRSgoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntBLmZvckVhY2goQz0+dm9pZCBDKCkpO0EubGVuZ3RoPTA7dVcuZm9yRWFjaChDPT57QS5wdXNoKEMucmVnaXN0ZXIoKCk9PmQoKS51ZCgpLCgpPT5jKCkpKX0pfSl9LCJZMnFZN2IiKTtfLm5FKCgpPT57dmFyIEM9ZCgpLApHPWMoKTtDLlVjPUc7dmFyIEQ9Qy52PT09Ry5IO0Mudj1xVShHLkgpO0R8fEMuaiYmQy5qKEMudWQoKSl9LCJhMTc4UmQiKTt2YXIgRj1DPT57Qz1DLmRldGFpbC5hdXRvbmF2RW5hYmxlZDt2YXIgRz17YXV0b25hdkVuYWJsZWQ6Q307QyYmKEcueGY9ITApO2UoKS5TKEcpfTtfLm9GKCgpPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBmcC1hdXRvbmF2LXVwZGF0ZSIsRil9KTtfLll1KCgpPT57QS5mb3JFYWNoKEM9PnZvaWQgQygpKTtBLmxlbmd0aD0wO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwZnAtYXV0b25hdi11cGRhdGUiLEYpfSk7cmV0dXJuIF8uSyhfLm5HLHtFZjpbXy5vRygkVCxiKV19LF8uSygicGZwLWNvbnRyb2xzIix7Y2xhc3M6Inl0UGZwQ29udHJvbHNIb3N0Iiwib246Y29udGV4dG1lbnUiOmZ1bmN0aW9uKEMpe2EuY29udGV4dCgpLnRhLlNqPy4oQyk7Qy5wcmV2ZW50RGVmYXVsdCgpfX0sXy5LKEdWLHtHOmUsdGh1bWJuYWlsRGV0YWlsczooKT0+e3ZhciBDPQpjKCk7cmV0dXJuIEMuamI/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5kZWZhdWx0VGh1bWJuYWlsfHxDLnBsYXllclJlc3BvbnNlPy52aWRlb0RldGFpbHM/LnRodW1ibmFpbH19KSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzQ3JlYXRvckVuZHNjcmVlbkNvbnRhaW5lciIsIm9uOmNsaWNrIjpmdW5jdGlvbihDKXtDLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTooKT0+YygpLnBsYXllclJlc3BvbnNlPy5lbmRzY3JlZW4/LmVuZHNjcmVlblJlbmRlcmVyLHRoZW46KCk9Pl8uSyhsVyx7ZW5kc2NyZWVuUmVuZGVyZXI6KCk9PmMoKS5wbGF5ZXJSZXNwb25zZT8uZW5kc2NyZWVuPy5lbmRzY3JlZW5SZW5kZXJlcixHOmV9KX0pKSxfLksoImRpdiIse2lkOiJwbGF5ZXItY29udHJvbC1vdmVybGF5IixjbGFzczpfLlAoInl0UGZwQ29udHJvbHNPdmVybGF5Iix7eXRQZnBDb250cm9sc0ZhZGVJbjp6fSksIm9uOmNsaWNrIjpmdW5jdGlvbihDKXtwKCk/CihYUygyODU3MiksZSgpLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDAsQy5jdXJyZW50VGFyZ2V0LnZpc3VhbEVsZW1lbnQpLGIoKS5wbGF5VmlkZW8oKSk6S1UoQyxlKCkpfSwib246cG9pbnRlcm1vdmUiOmZ1bmN0aW9uKEMpe0MucG9pbnRlclR5cGU9PT0ibW91c2UiJiYoZSgpLlMoe2VhOiEwfSksY1QoZSgpLHtJYzohMH0pKX19LF8uSyhfLk8se0E6dix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzR3JhZGllbnRUb3AifSxfLksoXy5PLHtBOnQsdGhlbjooKT0+Xy5LKCJoMiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzVmlkZW9UaXRsZSJ9LHQpfSkpfSksXy5LKG9XLHtqZTooKT0+ZSgpLmplfSksXy5LKF8uTyx7QTpwLHRoZW46KCk9Pl8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwQ29udHJvbHNMYXJnZVBsYXlCdXR0b24iLGVsOnIsImFyaWEtbGFiZWwiOl8uJE4uUGcsdGl0bGU6Xy4kTi5QZ30sXy5LKCJzdmciLHtoZWlnaHQ6IjEwMCUiLHZlcnNpb246IjEuMSIsCnZpZXdCb3g6IjAgMCA2MCA2MCIsd2lkdGg6IjEwMCUifSxfLksoInBhdGgiLHtjbGFzczoieXRQZnBDb250cm9sc0xhcmdlUGxheUJ1dHRvbkljb25CZyIsZDoiTTMwLDBBMzAsMzAsMCwxLDAsNjAsMzAsMzAsMzAsMCwwLDAsMzAsMFoiLGZpbGw6KCk9PkUoKT8/IiMxZjFmMWYifSksXy5LKCJwYXRoIix7ZDoiTTIxLDQxLjY1VjE4TDQzLjcsMjkuODVaIixmaWxsOiIjZmZmIn0pKSl9KSxfLksoWm1hLHtHOmUsVWM6Y30pLF8uSyhhbmEse0c6ZSx3YXRjaE5leHRSZXNwb25zZTooKT0+YygpLndhdGNoTmV4dFJlc3BvbnNlLFV4Om4sY2xhc3NOYW1lOiJ5dFBmcENvbnRyb2xzVmlkZW9XYWxsRW5kc2NyZWVuIn0pLF8uSyhZbWEse0g6YixHOmUsd2F0Y2hOZXh0UmVzcG9uc2U6KCk9PmMoKS53YXRjaE5leHRSZXNwb25zZSxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNBdXRvbmF2In0pLF8uSyhfLk8se0E6KCk9PiFsKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoV1Yse0c6ZX0pLApfLksoVlYse2dmOmUsSWI6ITF9KSxfLksoWFYse0c6ZSxGZDotMSxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNIaWRkZW5TZWVrQnV0dG9uIn0pLF8uSyhYVix7RzplLEZkOjEsY2xhc3NOYW1lOiJ5dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbiJ9KSxfLksoXy5PLHtBOmgsdGhlbjooKT0+Xy5LKHJXLHtHOmV9KX0pLF8uSyhmbmEse0g6YixHOmUsVWM6YyxGejpFLGRpc2FibGVTY3J1YmJpbmc6Zn0pKX0pKSkpfSwib2UiKSxmbmE9Xy5MKCh7SDphLEc6YixVYzpjLEZ6OmQsZGlzYWJsZVNjcnViYmluZzplfSk9PntmdW5jdGlvbiBmKHIpe3Iuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGg9Xy5OKCgpPT4hYigpLmJhPy5uaCx2b2lkIDAsInBGdERYYiIpLGs9Xy5OKCgpPT4hYigpLmJhPy5pcSx2b2lkIDAsInY0WDVzZSIpLGw9Xy5OKCgpPT5jKCkucGxheWVyT3ZlcmxheVJlbmRlcmVyLHZvaWQgMCwiakxoaFdjIiksbT1fLk4oKCk9PkdTKGwoKSksdm9pZCAwLCJzNjd4U2IiKSxuPV8uTigoKT0+CkVTKGwoKSksdm9pZCAwLCJwQ2lhdSIpLHA9Xy5OKCgpPT4hYigpLmJhPy56cix2b2lkIDAsInN2dXhCIik7cmV0dXJuIF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwQ29udHJvbHNQcm9ncmVzc0JhckNvbnRhaW5lciJ9LF8uSyhDVix7TGI6YixoZjptLGNvbmZpZzooKT0+KHtwb3NpdGlvbjoxLEtmOiExLEluOnAoKSxSYTpuKCksZGlzYWJsZVNjcnViYmluZzplKCksWW86KCk9PntiVCgpfSxGbjooKT0+e2NUKGIoKSx7SWM6ITB9KX19KX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzQm90dG9tQmFyIixzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6ZH0pLCJvbjpjbGljayI6Zn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBDb250cm9sc0xlZnRDb250cm9scyJ9LF8uSyhfLk8se0E6KCk9PmIoKS5wbGF5ZXJTdGF0ZT09PTAsdGhlbjooKT0+Xy5LKGFXLHtHOmJ9KSxXOigpPT5fLksoJFYse0c6Yix5czohMH0pfSksCl8uSyhIVix7b3JpZW50YXRpb246Imhvcml6b250YWxfcmlnaHQiLEg6YSxEdjohMCxDcDpfLkJLfHxfLkdLLGJqOiEwLGNsYXNzTmFtZToieXRQZnBDb250cm9sc1ZvbHVtZUNvbnRyb2xzIn0pLF8uSyhwVyx7RzpiLHBsYXllck92ZXJsYXlSZW5kZXJlcjpsLFZ3OiEwLGNsYXNzTmFtZToieXRQZnBDb250cm9sc1RpbWVEaXNwbGF5In0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzUmlnaHRDb250cm9scyJ9LF8uSyhkVyx7Z2Y6YixWcjohMCxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNDYXB0aW9uc0J1dHRvbiJ9KSxfLksoYlcse0c6YixjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNTZXR0aW5nc0J1dHRvbiJ9KSxfLksoXy5PLHtBOmssdGhlbjooKT0+Xy5LKFpWLHtHOmJ9KX0pKSkpfSl9LCJwZSIpO3ZhciBnbmE9Xy5MKCh7ZGF0YTphfSk9Pl8uSygieXQtZW1iZWRzLWluZm8tcGFuZWwtZGV0YWlscy12aWV3LW1vZGVsIix7Y2xhc3M6Inl0RW1iZWRzSW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbEhvc3QifSxfLksoXy5WLHtjbGFzc05hbWU6Inl0RW1iZWRzSW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbEJvZHlUZXh0Iix0ZXh0OigpPT5hKCkuYm9keVRleHR9KSxfLksoXy5nRyx7cGE6KCk9PmEoKS5jdGFCdXR0b25zfHxbXX0sYj0+KGI9KGI9Xy5CKGIsYW1hKSk/Xy5CKHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6e2NvbnRlbnQ6Yi5ib2R5VGV4dD8uY29udGVudH0sbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTpiPy5pY29uPy5pY29uVHlwZX19XX0scmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6Yj8ub25UYXB9fX19LF8uWkMpOnZvaWQgMCk/Xy5LKF8uQ0Qse2RhdGE6Yn0pOm51bGwpKSwicWUiKTt2YXIgaG5hPV8uTCgoe2RhdGE6YSxvbkNsaWNrOmJ9KT0+Xy5LKCJ5dC1lbWJlZHMtaW5mby1wYW5lbC1vdmVydmlldy12aWV3LW1vZGVsIixudWxsLF8uSygiYnV0dG9uIix7Im9uOmNsaWNrIjpiLGNsYXNzOiJ5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckJ1dHRvbiJ9LF8uSyhfLk8se0E6KCk9PmEoKS5oZWFkZXJJY29uPy5pY29uVHlwZSx0aGVuOigpPT5fLksoInNwYW4iLG51bGwsXy5LKF8uTUQse2ljb246KCk9PmEoKS5oZWFkZXJJY29uPy5pY29uVHlwZX0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVyVGV4dCJ9LF8uSyhfLlYse3RleHQ6KCk9PmEoKS50aXRsZX0pLF8uSyhfLlYse3RleHQ6KCk9Pih7Y29udGVudDphKCkudGl0bGUmJmEoKS5ib2R5VGV4dD8iIFx1MjAyMiAiOiIifSl9KSxfLksoXy5WLHt0ZXh0OigpPT5hKCkuYm9keVRleHR9KSkpKSwicmUiKTt2YXIgdlc9Xy5MKCh7ZGF0YTphLHByb3BzOmJ9KT0+e2Z1bmN0aW9uIGMoZCl7dmFyIGU9YSgpLmluZm9QYW5lbERldGFpbHNWaWV3TW9kZWw7aWYoZSl7dmFyIGY9e307ZS50aXRsZT8uY29udGVudCYmKGYuaGVhZGVyVGl0bGU9ZS50aXRsZS5jb250ZW50KTtfLnlOKHsuLi5mLEdiOigpPT5fLksoZ25hLHtkYXRhOmV9KSxIYTohMH0pfWQuc3RvcFByb3BhZ2F0aW9uKCl9cmV0dXJuIF8uSygieXRtLWVtYmVkcy1pbmZvLXBhbmVsLXJlbmRlcmVyIix7Y2xhc3M6Xy5QKCJ5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3QiLHt5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RBdXRvaGlkZTooKT0+YigpLnBsYXllclN0YXRlPT09MSx5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RUb3BDb250cm9sc1N0YWNrZWRJblBvcnRyYWl0OigpPT4hJFMoYigpKSYmIWIoKS5iYT8uaGlkZVZpZGVvSW5mbyYmIWIoKS5iYT8ubmh9KSxzdHlsZTpfLklFKHsiYW5pbWF0aW9uLWRlbGF5IjooKT0+CmAke2EoKS5kdXJhdGlvbk1zfHwxRTR9bXNgfSl9LF8uSyhfLk8se0E6KCk9PmEoKS5pbmZvUGFuZWxPdmVydmlld1ZpZXdNb2RlbCx0aGVuOmQ9Pl8uSyhobmEse2RhdGE6ZCxvbkNsaWNrOmN9KX0pKX0sInNlIik7dlcuaWRvbUNvbXBhdD0hMDt2YXIgd1c9Xy5MKCh7RzphfSk9Pnt2YXIgW2IsY109Xy5KKCJoaWRkZW4iLHZvaWQgMCwiU0JoYkhlIiksZCxlLFtmLGhdPV8uSighMSx2b2lkIDAsIkhnN3huZiIpLFtrLGxdPV8uSighMSx2b2lkIDAsIm5LSGxaZSIpO18uVUooKCk9Pnt0VygpPT09dm9pZCAwJiZ1bGEoKTtlPXNldFRpbWVvdXQoKCk9Pnt0VygpJiZtKCEwKTtsKCEwKX0sMkUzKX0pO18uWXUoKCk9PnttKCExKTtjbGVhclRpbWVvdXQoZSk7Y2xlYXJUaW1lb3V0KGQpfSk7Xy5uRSgoKT0+e0NVKCkmJmYoKSYmKG0oITEpLHNXKCEwKSk7IXRXKCkmJmYoKSYmbSghMSk7dFcoKSYmIWVuYSgpJiYhZigpJiZrKCkmJm0oITApfSwiVkNGQkliIik7dmFyIG09bj0+e2gobik7YSgpLkg/LnNldEF1dG9jcm9wRW5hYmxlZChuKTtjbGVhclRpbWVvdXQoZCk7bj8oYygidmlzaWJsZSIpLGQ9c2V0VGltZW91dCgoKT0+e2MoIiIpfSwzRTMpKTooYygiIiksZD1zZXRUaW1lb3V0KCgpPT57YygiaGlkZGVuIil9LDNFMykpfTtyZXR1cm4gXy5LKCJkaXYiLAp7Y2xhc3M6Xy5QKCJ5dEF1dG9jcm9wQnV0dG9uSG9zdCIse3l0QXV0b2Nyb3BCdXR0b25WaXNpYmxlOigpPT5iKCk9PT0idmlzaWJsZSIseXRBdXRvY3JvcEJ1dHRvbkhpZGRlbjooKT0+YigpPT09ImhpZGRlbiJ9KX0sXy5LKF8uTyx7QTpmLHRoZW46KCk9Pl8uSyhfLnBPLHtkYXRhOntzdHlsZToiU1RZTEVfTElHSFRfVEVYVCIsc2l6ZToiU0laRV9ERUZBVUxUIix0ZXh0OntydW5zOlt7dGV4dDpfLiROLlBzfV19fSxjbGFzc05hbWU6Inl0QXV0b2Nyb3BCdXR0b25BdXRvQ3JvcEJ1dHRvbiIscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLHRnOigpPT57bSghZigpKTtzVyghZigpKX19KSxXOigpPT5fLksoXy5wTyx7ZGF0YTp7c3R5bGU6IlNUWUxFX0xJR0hUX1RFWFQiLHNpemU6IlNJWkVfREVGQVVMVCIsdGV4dDp7cnVuczpbe3RleHQ6IjEwMCUifV19fSxjbGFzc05hbWU6Inl0QXV0b2Nyb3BCdXR0b25BdXRvQ3JvcEJ1dHRvbiIscHJldmVudERlZmF1bHQ6ITAsCnN0b3BQcm9wYWdhdGlvbjohMCx0ZzooKT0+e20oIWYoKSk7c1coIWYoKSl9fSl9KSl9LCJ1ZSIpO3dXLmlkb21Db21wYXQ9ITA7dmFyIHhXPV8uTCgoe2RhdGE6YSxGZTpifSk9Pl8uSygieXRtLWVuZHNjcmVlbi12aWRlby1yZW5kZXJlciIsbnVsbCxfLksoXy5mamEse2RhdGE6KCk9Pih7dGh1bWJuYWlsOmEoKS50aHVtYm5haWwsdGh1bWJuYWlsT3ZlcmxheXM6YSgpLnRodW1ibmFpbE92ZXJsYXlzLHZpZGVvSWQ6YSgpLnZpZGVvSWQsbGVuZ3RoVGV4dDphKCkubGVuZ3RoVGV4dCxwdWJsaXNoZWRUaW1lVGV4dDphKCkucHVibGlzaGVkVGltZVRleHQsbmF2aWdhdGlvbkVuZHBvaW50OmEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsaGVhZGxpbmU6YSgpLnRpdGxlfSksRmU6Yn0pKSwidmUiKTt4Vy5pZG9tQ29tcGF0PSEwO3ZhciB6Vz1fLkwoKHt3YXRjaE5leHRSZXNwb25zZTphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zSG9zdCIsaWRvbUtleToiZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlciJ9LF8uSyhfLmdHLHtwYTooKT0+TVMoYT8uKCkpfSxiPT5fLksoeVcse3ZpZGVvOmJ9KSkpLCJ3ZSIpO3pXLmlkb21Db21wYXQ9ITA7dmFyIHlXPV8uTCgoe3ZpZGVvOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRGdWxsc2NyZWVuVmlkZW9SZWNvbW1lbmRhdGlvbnNSZWNvbW1lbmRhdGlvbiJ9LF8uSyhfLlcse2RhdGE6YX0se2VuZFNjcmVlblZpZGVvUmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKHhXLHtkYXRhOmIsRmU6ITB9KX0pKSwieGUiKTt5Vy5pZG9tQ29tcGF0PSEwO3ZhciBCVz1fLkwoYT0+Xy5LKCJwbGF5ZXItZnVsbHNjcmVlbi10b3AtY29udHJvbHMiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzSG9zdCIsc3R5bGU6Xy5JRSh7dmlzaWJpbGl0eTooKT0+YS5HKCkuTmE/InZpc2libGUiOiJoaWRkZW4ifSl9LF8uSygiaDIiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzRnVsbHNjcmVlbkNvbnRyb2xzVmlkZW9UaXRsZSJ9LF8uSyhfLk8se0E6KCk9PmEud2F0Y2hOZXh0UmVzcG9uc2U/LigpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy52aWRlb0RldGFpbHM/LnBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlcj8udGl0bGUsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmJ9KX0pKSxfLksoQVcse0c6YS5HfSkpLCJ5ZSIpO0JXLmlkb21Db21wYXQ9ITA7CnZhciBBVz1fLkwoKHtHOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzRnVsbHNjcmVlbkNsb3NlQnV0dG9uV3JhcHBlciJ9LF8uSyhfLnBPLHtkYXRhOntzdHlsZToiU1RZTEVfTElHSFRfVEVYVCIsc2l6ZToiU0laRV9ERUZBVUxUIixpY29uOntpY29uVHlwZToiQ0xPU0UifSxhY2Nlc3NpYmlsaXR5OntsYWJlbDoiQ2xvc2UifSxhY2Nlc3NpYmlsaXR5RGF0YTp7YWNjZXNzaWJpbGl0eURhdGE6e2xhYmVsOiJDbG9zZSJ9fX0scHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLHRnOigpPT57YSgpLlMoe05hOiExfSk7Xy5NTygiLmZ1bGxzY3JlZW4tbW9yZS12aWRlb3MtZW5kcG9pbnQiKTtjVChhKCkpfX0pKSwiemUiKTtBVy5pZG9tQ29tcGF0PSEwO3ZhciBDVz1fLkwoYT0+e3ZhciBiPSgpPT5hLkcoKS5pc0Z1bGxzY3JlZW58fGEuRygpLmJhPy5FZSxjPSgpPT57dmFyIGY9YS5HKCk7cmV0dXJuIF8uYUwoImZ1bGxzY3JlZW4tY29udHJvbHMiLHtleHBhbmRlZDpmLk5hLCJzdHlsZS1yZWNvbW1lbmRhdGlvbnMtaW4tcG9ydHJhaXQiOmYuYmE/LkVlfHxfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfSl9LGQ9KCk9Pnt2YXIgZj1hLkcoKTtyZXR1cm5gCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke2YuSmZ9cHgpOwogICAgICB0cmFuc2l0aW9uOiAke2YuV2Q/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3R0b20gMC4ycyBlYXNlIn07CiAgICAgIHZpc2liaWxpdHk6ICR7Zi5KZnx8Zi5OYT8idmlzaWJsZSI6ImluaGVyaXQifTsKICAgICAgcG9pbnRlci1ldmVudHM6ICAke2YuTmE/ImFsbCI6Im5vbmUifTsKICAgIGB9LGU9KCk9Pl8ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJmEuYXV0b2Nyb3BDb25maWc/LigpO3JldHVybiBfLksoInBsYXllci1mdWxsc2NyZWVuLWNvbnRyb2xzIix7aGlkZGVuOiFiLGNsYXNzOiJ5dHdQbGF5ZXJGdWxsc2NyZWVuQ29udHJvbHNIb3N0In0sXy5LKF8uTyx7QTpiLHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKEJXLHtHOmEuRyx3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSksXy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSyh3Vyx7RzphLkd9KX0pLF8uSyhLVix7RzphLkcsd2F0Y2hOZXh0UmVzcG9uc2U6YS53YXRjaE5leHRSZXNwb25zZSx0aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI6YS50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXJ9KSxfLksoImRpdiIse2NsYXNzOmMsc3R5bGU6ZH0sXy5LKHpXLHt3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSkpKX0pKX0sIkFlIik7Q1cuaWRvbUNvbXBhdD0hMDt2YXIgRFc9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnVFKCJ5dG0tcGFpZC1jb250ZW50LW92ZXJsYXktcmVuZGVyZXIiKTtyZXR1cm4gXy5LKCJ5dG0tcGFpZC1jb250ZW50LW92ZXJsYXktcmVuZGVyZXIiLHtjbGFzczoieXRtUGFpZENvbnRlbnRPdmVybGF5SG9zdCIsZWw6Yiwib246YW5pbWF0aW9uZW5kIjpmdW5jdGlvbihjKXtiLnZhbHVlLmNsYXNzTGlzdC5hZGQoInl0bVBhaWRDb250ZW50T3ZlcmxheUhpZGRlbiIpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5uSCx7Y29tbWFuZDooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCxjbGFzc05hbWU6Inl0bVBhaWRDb250ZW50T3ZlcmxheUxpbmsifSxfLksoXy5PLHtBOigpPT5hKCkuaWNvbj8uaWNvblR5cGUsdGhlbjooKT0+Xy5LKCJzcGFuIixudWxsLF8uSyhfLk1ELHtpY29uOigpPT5hKCkuaWNvbj8uaWNvblR5cGV9KSl9KSxfLksoImRpdiIse2NsYXNzOiJ5dG1QYWlkQ29udGVudE92ZXJsYXlUZXh0In0sXy5LKF8uViwKe3RleHQ6KCk9PmEoKS50ZXh0fSkpLF8uSyhfLk8se0E6KCk9PmEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsdGhlbjooKT0+Xy5LKF8uTUQse2ljb246IkNIRVZST05fUklHSFQifSl9KSkpfSwiQmUiKTtEVy5pZG9tQ29tcGF0PSEwO3ZhciBFVz1fLkwoYT0+e3ZhciBiPSgpPT5hLkcoKS5IPy5nZXRTaXplPy4oKT8ud2lkdGg7cmV0dXJuIF8uSygicGxheWVyLWJvdHRvbS1jb250cm9scyIse2NsYXNzOl8uUCgieXR3UGxheWVyQm90dG9tQ29udHJvbHNIb3N0Iix7ImRlbGhpLXBsYXllciI6Xy54KCJtd2ViX3dhdGNoX2RlbGhpX3BsYXllciIpfSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1jb250cm9scy1ib3R0b20gcGxheWVyLWNvbnRyb2xzLWJvdHRvbS1sZWZ0In0sXy5LKF8uTyx7QTooKT0+IShiKCkmJmIoKTwzMjApLHRoZW46KCk9Pl8uSyhwVyx7RzphLkcsU206YS5TbSxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXJ9KX0pKSxfLksoImRpdiIse2NsYXNzOl8uUCgicGxheWVyLWNvbnRyb2xzLWJvdHRvbSIsInBsYXllci1jb250cm9scy1ib3R0b20tcmlnaHQiKX0sXy5LKF8uTyx7QTooKT0+IShhLkcoKS5iYT8uaXF8fGIoKSYmYigpPDI0MCksdGhlbjooKT0+Xy5LKCJkaXYiLAp7Y2xhc3M6Inl0d1BsYXllckJvdHRvbUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbldyYXBwZXIifSxfLksoWlYse0c6YS5HfSkpfSkpKX0sIkNlIik7RVcuaWRvbUNvbXBhdD0hMDt2YXIgRlc9Xy5MKGE9Pnt2YXIge0c6Yix3YXRjaE5leHRSZXNwb25zZTpjfT1fLkRDKGEse3dhdGNoTmV4dFJlc3BvbnNlOnZvaWQgMH0pO3JldHVybiBfLksoXy5PLHtBOigpPT5IUyhiKCksQVMoYygpKSksdGhlbjooKT0+Xy5LKCJwbGF5ZXItZW5kc2NyZWVuIix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkhvc3QifSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5Db250YWluZXIifSxfLksoImRpdiIse2lkOiJwbGF5ZXItZW5kc2NyZWVuIixjbGFzczoieXR3UGxheWVyRW5kc2NyZWVuUGxheWVyRW5kc2NyZWVuIiwiZGF0YS1oYXMtdGltZXItY291bnRkb3duIjohMH0sXy5LKGluYSx7cHJvcHM6YixwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjooKT0+QlMoYygpKX0pLF8uSyhqbmEse3Byb3BzOmIscGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6KCk9PkJTKGMoKSl9KSxfLksoa25hLHtwcm9wczpiLHBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOigpPT4KQlMoYygpKX0pKSkpfSl9LCJEZSIpO0ZXLmlkb21Db21wYXQ9ITA7CnZhciBpbmE9Xy5MKGE9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlblRvcFBhbmVsIn0sXy5LKGxuYSx7Li4uYX0pLF8uSyhtbmEsey4uLmF9KSksIkVlIiksbG5hPV8uTChhPT57dmFyIHtwcm9wczpiLHBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmN9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSksW2QsZV09Xy4kTi5Pcy5zcGxpdCgic2Vjb25kc19wbGFjZWhvbGRlciIpO3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5IZWFkZXIiLHJvbGU6InRleHQifSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5iKCkuemYmJmMoKX0sKCk9Pl8uSyhfLlYse3RleHQ6KCk9PmMoKT8ucGF1c2VUZXh0fSkpLF8uSyhfLkRFLG51bGwsKCk9Pl8uSygic3BhbiIse2lkOiJ1cG5leHQtaW4tbWVzc2FnZSJ9LGQsXy5LKG5uYSx7Li4uYX0pLGUpKSkpfSwiRmUiKSxubmE9Xy5MKGE9Pnt2YXIgYj0KYS5wcm9wcztyZXR1cm4gXy5LKCJzcGFuIix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bk51bWJlciIsImFyaWEtaGlkZGVuIjohMH0sKCk9PmIoKS55Zil9LCJHZSIpLG1uYT1fLkwoYT0+e3ZhciB7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6Yn09Xy5EQyhhLHtwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjp2b2lkIDB9KTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+YigpPy5jbG9zZUJ1dHRvbix0aGVuOmM9Pl8uSyhfLlcse2RhdGE6Y30se3RodW1ibmFpbE92ZXJsYXlUaW1lU3RhdHVzUmVuZGVyZXI6KHtkYXRhOmR9KT0+Xy5LKF8uVlAse2RhdGE6ZH0pLGJ1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsdGc6KCk9PntRVShhKX0sYnV0dG9uT3ZlcnJpZGVzOntzdHlsZToib3ZlcmxheSJ9fSl9KX0pfSwiSGUiKSxqbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7CnJldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5Db3VudGRvd25Db250YWluZXIifSxfLksoXy5uSCx7Y29tbWFuZDooKT0+YigpPy5uZXh0QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50LGNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuQ3VlZFZpZGVvQ29udGFpbmVyIixhcmlhTGFiZWw6KCk9Pl8uREooYigpPy52aWRlb1RpdGxlPy5hY2Nlc3NpYmlsaXR5KX0sXy5LKG9uYSx7Li4uYX0pLF8uSyhwbmEsey4uLmF9KSkpfSwiSWUiKSxvbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkN1ZWRUaHVtYm5haWxPdmVybGF5In0sXy5LKF8uWFAse3RodW1ibmFpbERldGFpbHM6KCk9PmIoKT8uYmFja2dyb3VuZCxNZDp2b2lkIDAsVGI6ITEsCmNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuVGh1bWJuYWlsQ29udGFpbmVyIn0pLF8uSyhfLlcse2RhdGE6KCk9PmIoKT8udGh1bWJuYWlsT3ZlcmxheXN9LHt0aHVtYm5haWxPdmVybGF5VGltZVN0YXR1c1JlbmRlcmVyOih7ZGF0YTpjfSk9Pl8uSyhfLlZQLHtkYXRhOmMsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJFbmRzY3JlZW5UaHVtYm5haWxPdmVybGF5cyIsYXJpYUhpZGRlbjohMH0pfSkpfSwiSmUiKSxwbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlblZpZGVvSW5mbyIsImFyaWEtaGlkZGVuIjohMH0sXy5LKCJkaXYiLHtjbGFzczoieXR3UGxheWVyRW5kc2NyZWVuVmlkZW9UaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmIoKT8udmlkZW9UaXRsZX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0F1dGhvciJ9LApfLksoXy5WLHt0ZXh0OigpPT5iKCk/LmJ5bGluZSxtYTohMH0pKSl9LCJLZSIpLGtuYT1fLkwoYT0+e3ZhciB7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6Yn09Xy5EQyhhLHtwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjp2b2lkIDB9KSxjPXtzdHlsZToib3ZlcmxheSJ9O3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5CdXR0b25Db250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT5iKCk/LmNhbmNlbEJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJFbmRzY3JlZW5BY3Rpb25CdXR0b24iLHRnOigpPT57UVUoYSl9LGJ1dHRvbk92ZXJyaWRlczpjfSl9KSxfLksoXy5XLHtkYXRhOigpPT5iKCk/Lm5leHRCdXR0b259LHtidXR0b25SZW5kZXJlcjooe2RhdGE6ZH0pPT5fLksoXy5wTyx7ZGF0YTpkLGNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9uIiwKYnV0dG9uT3ZlcnJpZGVzOmN9KX0pKX0sIkxlIik7dmFyIEdXPV8uTChhPT57dmFyIGI9Xy5rRygkVCksYz1fLlAoInl0d1BsYXllck1pZGRsZUNvbnRyb2xzSG9zdCIsInBsYXllci1jb250cm9scy1taWRkbGUiLHsicHJldmVudC1jb250cm9scy1jb2xsaXNpb24iOigpPT57dmFyIGg9Yj8uKCk7aWYoIWg/LmlzUmVhZHk/LigpKXJldHVybiExO2g9aD8uZ2V0U2l6ZSgpPy5oZWlnaHQ7aD0hIWgmJmg8Mjc1O3ZhciBrPWEuRygpLmJhPy52b2x1bWVDb250cm9sVHlwZT09PSJ2b2x1bWUtc2xpZGVyIjtyZXR1cm4gaHx8a319KSxkPSgpPT57dmFyIGg9YS5HKCk7cmV0dXJuIGgucGxheWVyU3RhdGU9PT0zfHxoLnBsYXllclN0YXRlPT09LTF9LGU9KCk9Pnt2YXIgaD1hLkcoKTt2YXIgaz1iPy4oKTtYUShrKXx8IWs/LmlzUmVhZHk/LigpP2s9ITE6aD8uYmE/LnZuP2s9ITA6KGg9ay5nZXRWaWRlb0RhdGEoKSxrPSFoLmlzTGlzdGVkfHxoLnlwY1ByZXZpZXd8fGguaXNMaXZlfHx0eXBlb2Ygay5nZXRMb29wUmFuZ2U9PT0iZnVuY3Rpb24iJiYKay5nZXRMb29wUmFuZ2UoKT8hMDohMSk7cmV0dXJuIWt9LGY9Xy5QKCJwbGF5ZXItY29udHJvbHMtbWlkZGxlLWNvcmUtYnV0dG9ucyIseyJzY3JlZW5yZWFkZXItc2FmZS1oaWRlLW1pZGRsZS1idXR0b25zIjpkfSk7cmV0dXJuIF8uSygicGxheWVyLW1pZGRsZS1jb250cm9scyIse2NsYXNzOmN9LF8uSyhfLk8se0E6ZCx0aGVuOigpPT5fLksocW5hLG51bGwpfSksXy5LKCJkaXYiLHtjbGFzczpmfSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKHJuYSx7RzphLkcsd2F0Y2hOZXh0UmVzcG9uc2U6YS53YXRjaE5leHRSZXNwb25zZX0pfSksXy5LKFhWLHtGZDotMSxHOmEuRyxjbGFzc05hbWU6Inl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b24ifSksXy5LKF8uTyx7QTooKT0+e3ZhciBoPWEuRygpO3JldHVybiF1UyhoKX0sdGhlbjooKT0+Xy5LKCRWLHtHOmEuR30pLFc6KCk9Pl8uSyhhVyx7RzphLkd9KX0pLF8uSyhYVix7RmQ6MSxHOmEuRyxjbGFzc05hbWU6Inl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b24ifSksCl8uSyhfLk8se0E6ZSx0aGVuOigpPT5fLksoc25hLHtHOmEuRyx3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSl9KSkpfSwiTWUiKTtHVy5pZG9tQ29tcGF0PSEwOwp2YXIgcW5hPV8uTCgoKT0+Xy5LKCJkaXYiLHtjbGFzczoicGxheWVyLWNvbnRyb2xzLXNwaW5uZXIifSxfLksoImRpdiIse2NsYXNzOiJzcGlubmVyIn0pKSwiTmUiKSxybmE9Xy5MKGE9Pnt2YXIgYj1fLmtHKCRUKSxjPSgpPT4hYS5HKCkuYmE/LnZuO3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9QUkVWSU9VUyIsYXJpYUxhYmVsOl8uJE4uTXQsYXJpYURpc2FibGVkOmMsY2xhc3NOYW1lOl8uUCgicGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9uIix7Imljb24tZGlzYWJsZSI6Y30pLFVkOjM2ODQwLGNvbnRlbnQ6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LXZpc2libGUtYXJlYSJ9LF8uSyhfLk1ELHtpY29uOiJQTEFZRVJfUFJFVklPVVMifSkpLG9uY2xpY2s6KCk9Pnt2YXIgZD1hLkcoKSxlPWI/LigpO2QucmMmJmU/LnVuTXV0ZSgpO3ZhciBmPWEud2F0Y2hOZXh0UmVzcG9uc2U/LigpLGg9QVMoZik7CmlmKFhRKGUpJiZmJiZoKXtpZihkPVJVKGgpLlVhKV8uJEQoZCksXy5BSihkLHt9LCExKX1lbHNlIGY9YS5HKCkuYmE/LnZuLHBqYShjKCksZSxmKSxkLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDApfX0pfSwiT2UiKSxzbmE9Xy5MKGE9Pnt2YXIgYj1fLmtHKCRUKSxjPSgpPT57dmFyIGQ9Yj8uKCk7aWYoIWQ/LmlzUmVhZHk/LigpKXJldHVybiEwO3ZhciBlPWQ/LmdldFBsYXlsaXN0KCk7ZD1kPy5nZXRQbGF5bGlzdEluZGV4KCk7dmFyIGY9ITE7ZSYmZCE9PXZvaWQgMCYmKGY9ZD49ZS5sZW5ndGgtMSk7cmV0dXJuIGZ9O3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9ORVhUIixhcmlhTGFiZWw6Xy4kTi5LdCxhcmlhRGlzYWJsZWQ6YyxVZDozNjg0MSxjb250ZW50OigpPT5fLksoImRpdiIse2NsYXNzOiJwbGF5ZXItbWlkZGxlLWNvbnRyb2xzLXByZXYtbmV4dC12aXNpYmxlLWFyZWEifSxfLksoXy5NRCx7aWNvbjoiUExBWUVSX05FWFQifSkpLGNsYXNzTmFtZTpfLlAoInBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiIsCnsiaWNvbi1kaXNhYmxlIjpjfSksb25jbGljazooKT0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZC5yYyYmZT8udW5NdXRlKCk7dmFyIGY9YS53YXRjaE5leHRSZXNwb25zZT8uKCksaD1BUyhmKTtpZihYUShlKSYmZiYmaCl7aWYoZD1SVShoKS5uZXh0KV8uJEQoZCksXy5BSihkLHt9LCExKX1lbHNlIGMoKXx8KGU/Lm5leHRWaWRlbygpLGQuYmE/LnVqJiZfLkRPKF8uaHgoKSwyNzI0MCkpfX0pfSwiUGUiKTt2YXIgSFc9Xy5MKCh7dmlkZW9EZXRhaWxzOmEsRzpifSk9PntmdW5jdGlvbiBjKFQpe0MoKTtULnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGQoVCl7RygpO1Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZShUKXtDKCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBmKFQpe0U/LnZhbHVlPy5jb250YWlucyhULnRhcmdldCl8fEcoKTtULnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGgoVCl7VC5wcmV2ZW50RGVmYXVsdCgpO1hTKDIzODUxKTt2YXIgYmE9U1UoYixEKTtpZihiYSl7dmFyIGFhPWIoKT8uSD8uZ2V0Q3VycmVudFRpbWUoKTtfLkFKKGJhLHtwYXJhbXM6e3RpbWVzdGFtcDphYT9NYXRoLmZsb29yKGFhKS50b1N0cmluZygpOnZvaWQgMH19LCExLHtldmVudDpUfSl9VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBrKFQpe1UoVCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBsKFQpe1QucHJldmVudERlZmF1bHQoKTt6KCl8fEYoKSYmRigpPDMyMD8KVShUKTpDKCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBtKFQpe1QucHJldmVudERlZmF1bHQoKTtHKDI1MDApO1Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gbihUKXtHKDI1MDApO1Quc3RvcFByb3BhZ2F0aW9uKCl9dmFyIFtwLHJdPV8uSighMSx2b2lkIDAsImlaTVFtZiIpLFt0LHZdPV8uSighMSx2b2lkIDAsIkNoaEgwYiIpLHo9dCxFPV8udkUoImRpdiIpLEEsRj0oKT0+YigpLkg/LmdldFNpemU/LigpPy53aWR0aCxDPSgpPT57RigpJiZGKCk8MzIwfHwocighMCksQSYmY2xlYXJUaW1lb3V0KEEpLHooKXx8KGJUKCksdighMCkpKX0sRz0oVD01MDApPT57RigpJiZGKCk8MzIwfHwocighMSksQT1zZXRUaW1lb3V0KCgpPT57IXAoKSYmeigpJiYodighMSksY1QoYigpLHtJYzohMH0pKX0sVCkpfSxEPSgpPT5fLkIoYT8uKCkuY29sbGFwc2VkUmVuZGVyZXIsbVYpPy50aXRsZSxIPSgpPT5hPy4oKS5jaGFubmVsVGh1bWJuYWlsRW5kcG9pbnQsUj0oKT0+YT8uKCkuY2hhbm5lbFRodW1ibmFpbCwKTT0oKT0+Xy5CKGE/LigpLmV4cGFuZGVkUmVuZGVyZXIsblYpPy50aXRsZT8/KF8ueCgiZW1iZWRzX3ZpZF9kZXRhaWxzX2ZhbGxiYWNrX2NoYW5uZWxfbmFtZV9rcyIpP3ZvaWQgMDpfLkIoYT8uKCkuY29sbGFwc2VkUmVuZGVyZXIsbVYpPy5zdWJ0aXRsZSksUz0oKT0+Xy5CKGE/LigpLmV4cGFuZGVkUmVuZGVyZXIsblYpPy5zdWJ0aXRsZSxZPSgpPT5fLkIoYT8uKCkuZXhwYW5kZWRSZW5kZXJlcixuVik/LnN1YnNjcmliZUJ1dHRvbixwYT1fLk4oKCk9Pl8uQihTVShiLEQpLF8uVkQpPy51cmwsdm9pZCAwLCJ5VEhOaiIpLG9hPV8uTigoKT0+Xy5CKGE/LigpLmNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCxfLlZEKT8udXJsLHZvaWQgMCwicHdsM0ljIiksVT1UPT57VC5wcmV2ZW50RGVmYXVsdCgpO2lmKGE/LigpLmNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCYmYT8uKCkpe3ZhciBiYT1hPy4oKS5jaGFubmVsVGh1bWJuYWlsRW5kcG9pbnQ7WFMoMzY5MjUpO18uQUooYmEse30sITEsCntldmVudDpUfSl9fSxoYT1fLlAoInl0bVZpZGVvSW5mb1ZpZGVvVGl0bGVDb250YWluZXIiLHt5dG1WaWRlb0luZm9Mb2dvRW5hYmxlZDooKT0+ISFhPy4oKS5jaGFubmVsVGh1bWJuYWlsfSksbWE9Xy5QKCJ5dG1WaWRlb0luZm9PdmVybGF5Iix7eXRtVmlkZW9JbmZvRXhwYW5kZWQ6KCk9PnooKX0pLHRhPSgpPT4hIV8uQihhPy4oKS5leHBhbmRlZFJlbmRlcmVyLG5WKT8uc3Vic2NyaWJlQnV0dG9uJiYhYigpLmJhPy5vaDtyZXR1cm4gXy5LKCJlbWJlZGRlZC1wbGF5ZXItdmlkZW8tZGV0YWlscyIse2NsYXNzOiJ5dG1WaWRlb0luZm9Ib3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9JbmZvVmlkZW9EZXRhaWxzQ29udGFpbmVyIn0sXy5LKCJkaXYiLHtjbGFzczpoYX0sXy5LKF8uTyx7QTpELHRoZW46KCk9Pl8uSyhfLk8se0E6cGEsdGhlbjooKT0+Xy5LKCJhIix7Im9uOmNsaWNrIjpoLGNsYXNzOiJ5dG1WaWRlb0luZm9WaWRlb1RpdGxlIixlbDpfLnJGKFQ9PntXUyhULAoyMzg1MSl9KSxocmVmOnBhfSxfLksoXy5WLHt0ZXh0OkQsY2xhc3NOYW1lOl8uUCgieXRtVmlkZW9JbmZvTGluayIpLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKSxXOigpPT5fLksoInNwYW4iLHtjbGFzczoieXRtVmlkZW9JbmZvVmlkZW9UaXRsZSJ9LF8uSyhfLlYse3RleHQ6RCx1YjohMCxub1dyYXA6ITAsbWE6ITB9KSl9KX0pLF8uSyhfLk8se0E6Xy54KCJlbWJlZHNfdmlkX2RldGFpbHNfZmFsbGJhY2tfY2hhbm5lbF9uYW1lX2tzIik/SDpNLHRoZW46KCk9Pl8uSyhfLk8se0E6b2EsdGhlbjooKT0+Xy5LKCJhIix7Im9uOmNsaWNrIjprLGNsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsVGl0bGUiLGhyZWY6b2F9LF8uSyhfLlYse3RleHQ6TSxjbGFzc05hbWU6Xy5QKCJ5dG1WaWRlb0luZm9MaW5rIikseWM6ITAsdWI6ITAsbm9XcmFwOiEwLG1hOiEwfSkpLFc6KCk9Pl8uSygic3BhbiIse2NsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsVGl0bGUifSxfLksoXy5WLHt0ZXh0Ok0seWM6ITAsCnViOiEwLG5vV3JhcDohMCxtYTohMH0pKX0pfSkpLF8uSyhfLk8se0E6Uix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsQ29udGFpbmVyIixlbDpFLCJvbjpmb2N1c2luIjplLCJvbjpmb2N1c291dCI6Ziwib246bW91c2VvdmVyIjpjLCJvbjptb3VzZW91dCI6ZH0sXy5LKCJidXR0b24iLHsib246dG91Y2hzdGFydCI6bCwib246dG91Y2hlbmQiOm0sIm9uOmNsaWNrIjprLGNsYXNzOl8uUCgieXRtVmlkZW9JbmZvTGluayIsInl0bVZpZGVvSW5mb0NoYW5uZWxBdmF0YXIiKSxlbDpfLnJGKFQ9PntXUyhULDM2OTI1KX0pfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczpSLGNsYXNzTmFtZToieXRtVmlkZW9JbmZvQ2hhbm5lbExvZ28iLGFsdDoidGh1bWJuYWlsLWltYWdlIn0pKSxfLksoImRpdiIse2NsYXNzOm1hLCJvbjp0b3VjaHN0YXJ0IjpDLCJvbjp0b3VjaGVuZCI6bn0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9JbmZvQ2hhbm5lbEluZm8iLApyb2xlOiJ0ZXh0In0sXy5LKF8uVix7dGV4dDpNLGNsYXNzTmFtZToieXRtVmlkZW9JbmZvRmx5b3V0Q2hhbm5lbFRpdGxlIix5YzohMCx1YjohMCxub1dyYXA6ITAsbWE6ITB9KSxfLksoXy5WLHt0ZXh0OlMsY2xhc3NOYW1lOiJ5dG1WaWRlb0luZm9GbHlvdXRDaGFubmVsU3VidGl0bGUiLHljOiEwLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKSxfLksoXy5PLHtBOnRhLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiJ9LF8uSyhfLlcse2RhdGE6WX0se3N1YnNjcmliZUJ1dHRvblJlbmRlcmVyOmZXfSkpfSkpKX0pKSl9LCJRZSIpO0hXLmlkb21Db21wYXQ9ITA7dmFyIFRVPV8uJE4uQXQsT2xhPV8uJE4uZ3UsdG5hPV8uTCgoe1F5OmEsb25DbGljazpiLEpuOmMsQnM6ZH0pPT57dmFyIGU9Xy51RSgiYnV0dG9uIixoPT57V1MoaCwyODY2Mil9KSxmPSgpPT5VVShhKCksYz8uKCksZD8uKCkpLmFyaWFMYWJlbDtyZXR1cm4gXy5LKCJ5dG0tbXV0ZS1idXR0b24iLHtjbGFzczoieXRtTXV0ZUJ1dHRvbkhvc3QifSxfLksoImJ1dHRvbiIse2VsOmUsY2xhc3M6Inl0bU11dGVCdXR0b25CdXR0b24iLHRpdGxlOmYsImFyaWEtbGFiZWwiOmYsIm9uOmNsaWNrIjpmdW5jdGlvbihoKXtYUygyODY2Mik7Yj8uKGgpO2guc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoInNwYW4iLG51bGwsXy5LKF8uTUQse2ljb246KCk9PlVVKGEoKSxjPy4oKSxkPy4oKSkuaWNvbk5hbWV9KSkpKX0sIlJlIik7dmFyIElXPV8uTCgoe0hCOmEsV3E6YixKbjpjLEJzOmQsY2xhc3NOYW1lOmV9KT0+Xy5LKCJ5dC1tdXRlLXRvZ2dsZS1idXR0b24iLHtjbGFzczplfSxfLksodG5hLHtReTooKT0+e3ZhciBmPWEoKTtyZXR1cm4gZi5yY3x8Zi52b2x1bWU9PT0wPzA6Zi52b2x1bWU+NTA/MToyfSxvbkNsaWNrOmY9Pnt2YXIgaD1hKCkuSDtoJiYoaC5pc011dGVkKCk/aC51bk11dGUoKTpoLm11dGUoITEpKTtiPy4oZil9LEpuOigpPT4hIWM/LigpLEJzOigpPT4hIWQ/LigpfSkpLCJTZSIpO0lXLmlkb21Db21wYXQ9ITA7dmFyIFZVO3ZhciB1bmE9Xy5MKCh7ZW5hYmxlZDphLGFyaWFMYWJlbDpiLG9uQ2xpY2s6Y30pPT5fLksoImJ1dHRvbiIseyJhcmlhLWxhYmVsIjpiLCJhcmlhLXByZXNzZWQiOmEsIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtjPy4oZCk7ZC5zdG9wUHJvcGFnYXRpb24oKX0sY2xhc3M6Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25Ib3N0In0sXy5LKF8uTUQse2ljb246KCk9PmEoKT8iQVVUT05BVl9PTl9UT0dHTEVfU1BBTk5FUiI6IkFVVE9OQVZfT0ZGX1RPR0dMRV9TUEFOTkVSIixjbGFzc05hbWU6KCk9PmEoKT8ieXR3QXV0b25hdlRvZ2dsZUJ1dHRvblNwYW5uZXJJY29uT24iOiJ5dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PZmYifSksXy5LKF8uTUQse2ljb246KCk9PmEoKT8iUExBWV9DSVJDTEVfRklMTEVEIjoiUEFVU0VfQ0lSQ0xFX0ZJTExFRCIsY2xhc3NOYW1lOigpPT5hKCk/Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25QbGF5SWNvbiI6Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25QYXVzZUljb24ifSkpLAoiVGUiKTt2YXIgSlc9Xy5MKCh7RzphLEN1OmJ9KT0+e18uQ1EoYixlPT57ZSYmZS5lbmFibGVkIT09dm9pZCAwJiZlLmVuYWJsZWQhPT1hKCkuYXV0b25hdkVuYWJsZWQmJlhVKGEoKSxlLmVuYWJsZWQsITEpfSk7dmFyIGM9Xy5OKCgpPT5hKCkuYXV0b25hdkVuYWJsZWQ/Xy5ESihiKCkuZW5hYmxlZEFjY2Vzc2liaWxpdHlEYXRhKTpfLkRKKGIoKS5kaXNhYmxlZEFjY2Vzc2liaWxpdHlEYXRhKSx2b2lkIDAsIlE5Z3Z6YyIpLGQ9Xy5OKCgpPT5hKCkuYXV0b25hdkVuYWJsZWQsdm9pZCAwLCJJUUNaa2YiKTtyZXR1cm4gXy5LKCJwbGF5ZXItYXV0b25hdi10b2dnbGUiLHtjbGFzczoieXR3UGxheWVyQXV0b25hdlRvZ2dsZUhvc3QifSxfLksodW5hLHtlbmFibGVkOmQsYXJpYUxhYmVsOmMsb25DbGljazplPT57dmFyIGY9YSgpLGg9Zi5hdXRvbmF2RW5hYmxlZDtYVShmLCFmLmF1dG9uYXZFbmFibGVkLCEwKTt2YXIgaz1iKCk7IWgmJmsub25FbmFibGVkQ29tbWFuZD9fLkFKKGsub25FbmFibGVkQ29tbWFuZCwKaywhMCk6aCYmay5vbkRpc2FibGVkQ29tbWFuZCYmXy5BSihrLm9uRGlzYWJsZWRDb21tYW5kLGssITApO1BsYShmLGIoKSk7dVMoZil8fGNUKGYse0ljOiEwfSk7ZS5zdG9wUHJvcGFnYXRpb24oKX19KSl9LCJVZSIpO0pXLmlkb21Db21wYXQ9ITA7dmFyIExXPV8uTChhPT57dmFyIGI9KCk9Pk5TKGEucGxheWVyT3ZlcmxheVJlbmRlcmVyPy4oKSxhLnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcj8uKCkpLGM9KCk9PmIoKSYmIWEuRygpLmJhPy5oaWRlVmlkZW9JbmZvO3JldHVybiBfLksoInBsYXllci10b3AtY29udHJvbHMiLHtjbGFzczoieXR3UGxheWVyVG9wQ29udHJvbHNIb3N0In0sXy5LKCJkaXYiLHtjbGFzczpfLlAoInBsYXllci1jb250cm9scy10b3AiLHt5dHdQbGF5ZXJUb3BDb250cm9sc0NvbnRhaW5lcldpdGhFbWJlZGRlZFZpZGVvRGV0YWlsczpjfSksIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTpjLHRoZW46KCk9Pl8uSyhIVyx7dmlkZW9EZXRhaWxzOmIsRzphLkd9KX0pLF8uSyhfLk8se0E6KCk9PiFhLkcoKS5iYT8ubmgmJiEkUyhhLkcoKSksdGhlbjooKT0+Xy5LKF8uTyx7QTpjLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUb3BDb250cm9sc1BsYXllckNvbnRyb2xzVG9wUmlnaHQiLAoicGxheWVyLWNvbnRyb2xzLXRvcC1yaWdodCIse3l0d1BsYXllclRvcENvbnRyb2xzQ29udGFpbmVyV2l0aEVtYmVkZGVkVmlkZW9EZXRhaWxzUGxheWVyQ29udHJvbHNUb3BSaWdodDpjfSl9LF8uSyhLVyx7RzphLkcscGxheWVyT3ZlcmxheVJlbmRlcmVyOmEucGxheWVyT3ZlcmxheVJlbmRlcmVyfSkpLFc6KCk9Pl8uSyhLVyx7RzphLkcscGxheWVyT3ZlcmxheVJlbmRlcmVyOmEucGxheWVyT3ZlcmxheVJlbmRlcmVyfSl9KX0pKSl9LCJWZSIpO0xXLmlkb21Db21wYXQ9ITA7CnZhciB2bmE9KGEsYik9Pl8uSyhkVyx7Z2Y6YSxWcjohMCxXcTpifSksS1c9Xy5MKCh7RzphLHBsYXllck92ZXJsYXlSZW5kZXJlcjpifSk9Pnt2YXIgYz0oKT0+YSgpLkg7cmV0dXJuIF8uSyhfLklCLG51bGwsXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+YSgpLmJhPy52b2x1bWVDb250cm9sVHlwZT09PSJ2b2x1bWUtc2xpZGVyIn0sKCk9Pl8uSyhIVix7b3JpZW50YXRpb246InZlcnRpY2FsX2Rvd24iLGJqOiEwLEg6Y30pKSxfLksoXy5DRSx7d2hlbjooKT0+e3ZhciBkPWEoKS5IPy5nZXRTaXplKCksZT1kPy53aWR0aCYmZC53aWR0aD49MjUwO2Q9ZD8uaGVpZ2h0JiZkLmhlaWdodD49MjAwO3JldHVybiBhKCkuYmE/LnZvbHVtZUNvbnRyb2xUeXBlPT09Im11dGUtYnV0dG9uIiYmZSYmZH19LCgpPT5fLksoSVcse0hCOmEsSm46ITB9KSksXy5LKF8uREUsbnVsbCwoKT0+Xy5LKF8uSUIsbnVsbCkpKSxfLksoXy5PLHtBOigpPT4hIXpTKGI/LigpKSx0aGVuOigpPT5fLksoSlcsCntHOmEsQ3U6KCk9PnpTKGI/LigpKX0pfSksdm5hKGEsZnVuY3Rpb24oKXtjVChhKCkse0ljOiEwfSl9KSxfLksoXy5PLHtBOigpPT57dmFyIGQ9YSgpLkg/LmdldFNpemUoKTtkPWQ/LndpZHRoJiZkLndpZHRoPj0zMjB8fCFhKCkuYmE/Lm9oO3JldHVybiEhYSgpLnRhLlNqJiZkfSx0aGVuOigpPT5fLksoYlcse0c6YX0pfSkpfSwiV2UiKTtLVy5pZG9tQ29tcGF0PSEwO3ZhciBNVz1fLkwoYT0+e2Z1bmN0aW9uIGIoVCl7VC5wb2ludGVyVHlwZT09PSJtb3VzZSImJihsKCkuUyh7ZWE6ITB9KSxjVChsKCkse0ljOiEwfSkpfWZ1bmN0aW9uIGMoVCl7S1UoVCxsKCkpfWZ1bmN0aW9uIGQoVCl7dmFyIGJhPWwoKTtpZih4VShUKSl7VC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYWE9VC50b3VjaGVzWzBdO0hVPWFhLnBhZ2VYO3pVPWFhLnBhZ2VZO18ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJlQudG91Y2hlcy5sZW5ndGg9PT0yJiYoQlU9d1UoVCkpO0hUKGJhLFQudG91Y2hlcy5sZW5ndGgpO2JhLmJhPy5NaXx8YmEuTmF8fGJhLldkfHxiYS5zYnx8Xy5URSgpfHwoRVU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vdmllX3BsYXllciIpKSYmT2JqZWN0LmFzc2lnbihFVS5zdHlsZSx7dHJhbnNpdGlvbjoiIix0cmFuc2Zvcm1PcmlnaW46IiJ9KX19ZnVuY3Rpb24gZShUKXt2YXIgYmE9bCgpO2lmKHhVKFQpKXtULnN0b3BQcm9wYWdhdGlvbigpO3ZhciBhYT0KVC50b3VjaGVzWzBdO0FVPSEwO0dVPWFhLnBhZ2VYO3lVPWFhLnBhZ2VZO2FhPXtsazpHVS1IVSxPZDp5VS16VX07YWEuT2Q9PT0wJiZhYS5saz09PTB8fF8uTUUoKSYmIWJhLmlzRnVsbHNjcmVlbnx8YmEuYmE/Lk1pfHxULnByZXZlbnREZWZhdWx0KCk7SVQoVCxhYSxiYSk7Xy54KCJ3ZWJfZW5hYmxlX3NtYXJ0X3pvb20iKSYmVC50b3VjaGVzLmxlbmd0aD09PTImJkJVIT09MCYmTWF0aC5hYnMod1UoVCktQlUpPjEwJiZEVSghMCk7IWJhLmJhPy5NaSYmKGJhLk5hfHxiYS5XZHx8YmEuc2J8fF8uVEUoKXx8Xy5NRSgpJiYhYmEuaXNGdWxsc2NyZWVufHwoYmEuUyh7ZWE6ITF9KSxUPWFhLk9kLGJhLmlzRnVsbHNjcmVlbiYmKFQqPS0xKSwhYmEuaXNGdWxsc2NyZWVuJiZUPjAmJihUPTApLFQ8LTEwMCYmKFQ9LTEwMCksYmEuaXNGdWxsc2NyZWVuP0VVJiZPYmplY3QuYXNzaWduKEVVLnN0eWxlLHt0cmFuc2Zvcm06YHNjYWxlKCR7MS0uMDUqTWF0aC5taW4oNCpNYXRoLmFicyhULy0xMDApLAoxKX0pIHRyYW5zbGF0ZVkoJHstVH1weClgfSk6RVUmJk9iamVjdC5hc3NpZ24oRVUuc3R5bGUse3RyYW5zZm9ybTpgc2NhbGUoJHsxKy4yNSpNYXRoLmFicyhULy0xMDApfSlgLHRyYW5zZm9ybU9yaWdpbjoiYm90dG9tIGNlbnRlciJ9KSksIWJhLmlzRnVsbHNjcmVlbnx8YmEuaXNEcmFnZ2luZ3x8YmEuc2J8fCFfLk1FKCkmJiFfLlRFKCk/MDpiYS5XZHx8KGJhLk5hP0RRKGFhLk9kLDAsMjE1KTpEUShhYS5PZCwtMjE1LDApKSE9PTApJiYoYlQoKSxiYS5TKHtXZDohMCxlYTohMCxKZjpiYS5OYT9EUShhYS5PZCwwLDIxNSk6RFEoYWEuT2QsLTIxNSwwKX0pKX19ZnVuY3Rpb24gZihUKXtJVShULGwoKSxtKCkpfWZ1bmN0aW9uIGgoVCl7SVUoVCxsKCksbSgpKX1mdW5jdGlvbiBrKFQpe1Quc3RvcFByb3BhZ2F0aW9uKCl9dmFyIHtHOmwsZGF0YTptfT1fLkRDKGEse2RhdGE6dm9pZCAwfSksbj1fLk4oKCk9PmwoKS5ILHZvaWQgMCwiWjdIOXJlIik7YT1fLk4oKCk9PmwoKS5lYSx2b2lkIDAsCiJkcmhxN2QiKTt2YXIgcD1fLk4oKCk9PmwoKS5zYix2b2lkIDAsInZzdFlFZSIpLHI9Xy5OKCgpPT5sKCkuYmE/LkVlLHZvaWQgMCwiTGJGd0piIiksdD1fLk4oKCk9PmwoKS5LYj4oXy54KCJtd2ViX3BsYXllcl90YXBwaW5nX3RocmVzaG9sZF9raWxsc3dpdGNoIik/ODowKSx2b2lkIDAsImU0anFNZCIpLHY9Xy5OKCgpPT5sKCkuSmQhPT0wLHZvaWQgMCwicHFnRDVlIiksej1fLk4oKCk9PmwoKS5iYT8uWmgsdm9pZCAwLCJ0bVFkZyIpLEU9KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzLEE9Xy5OKCgpPT4kUyhsKCksbSgpPy5wbGF5ZXJSZXNwb25zZT8ucGxheWFiaWxpdHlTdGF0dXMpLHZvaWQgMCwiWGE5cXhmIiksRj1fLk4oKCk9PiFsKCkuYmE/LnpyLHZvaWQgMCwibUZPbHQiKSxDPV8uTigoKT0+e3ZhciBUPWwoKTtyZXR1cm4gXy54KCJtd2ViX3BjX2xpdmVfZHZyX2tzIik/ITE6VC5pc0xpdmUmJiFULmlzTGl2ZUR2ckVuYWJsZWR9LHZvaWQgMCwKIkQxaTY3IiksRz1fLk4oKCk9Pnt2YXIgVD1DKCk7cmV0dXJuIHJVKCkmJiFUfSx2b2lkIDAsInZRemltZSIpLEQ9Xy5OKCgpPT50KCkmJnYoKSx2b2lkIDAsIkJlR3A3IiksSD1fLlAoIm5ldy1jb250cm9scyIsImJpZ2JhciIsIm1lZGl1bS1tb2RpZmljYXRpb24iLCJhbmltYXRpb24tZW5hYmxlZCIsImVuYWJsZS1mdWxsc2NyZWVuLWNvbnRyb2xzIiwiZnMtd2F0Y2gtc3lzdGVtIix7ZmFkZWluOmEsImJhY2tncm91bmQtaGlkZGVuIjpwLCJmdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiI6ciwiZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMtZm9yLXBvcnRyYWl0IjpfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfSksUj0oKT0+bT8uKCk/LndhdGNoTmV4dFJlc3BvbnNlLE09KCk9Pm0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIsUz0oKT0+bSgpPy5qYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIsWT0oKT0+CkdTKG0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpLHBhPSgpPT5tKCk/LmpiPy5lbWJlZFByZXZpZXc/LnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcj8uZGVmYXVsdFRodW1ibmFpbHx8bSgpPy5wbGF5ZXJSZXNwb25zZT8udmlkZW9EZXRhaWxzPy50aHVtYm5haWwsb2E9KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXllckNvbmZpZz8uYXV0b2Nyb3BDb25maWcsVT0oKT0+bSgpPy5wbGF5ZXJSZXNwb25zZT8uZW5kc2NyZWVuPy5lbmRzY3JlZW5SZW5kZXJlciYmbigpLGhhPSgpPT57dmFyIFQ7aWYoVD1QUyhtKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcixtKCk/LmpiKSl7VD1sKCk7dmFyIGJhPW4oKSxhYT1QUyhtKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcixtKCk/LmpiKTtpZihhYSYmYWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihhYS5pbmZvUGFuZWxPdmVydmlld1ZpZXdNb2RlbC50aXRsZXx8YWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwuYm9keVRleHQpJiYKYmEmJmJhLmdldFBsYXllclN0YXRlT2JqZWN0JiZiYS5nZXRQbGF5ZXJTaXplJiYhXy5ESShramEsYWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwuZGlzbWlzc1N0YXRlRW50aXR5S2V5KSgpPy5pc0Rpc21pc3NlZCl7YWE9YmEuZ2V0UGxheWVyU3RhdGVPYmplY3QoKT8uaXNFcnJvcjtpZihhYT0hdVMoVCkmJiFhYSlhYT1iYS5nZXRQbGF5ZXJTaXplKCksYmE9YWEud2lkdGg8MzYwLGFhPWFhLmhlaWdodDwzMjAsYWE9ISgoVC5wbGF5ZXJTdGF0ZT09PS0xfHxULnBsYXllclN0YXRlPT09NSkmJmJhJiZhYSk7VD1hYX1lbHNlIFQ9ITF9cmV0dXJuIFR9LG1hPSgpPT57dmFyIFQ9bSgpPy5wbGF5ZXJSZXNwb25zZTtyZXR1cm4gXy5CKFQ/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyPy5tdXRlZEF1dG9wbGF5LG9WKX0sdGE9KCk9Pm0oKT8uSD8uaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheT8uKCk7cmV0dXJuIF8uSygieXRtLXdhdGNoLXBsYXllci1jb250cm9scyIsCntjbGFzczoieXRtV2F0Y2hQbGF5ZXJDb250cm9sc0hvc3QifSxfLksoXy5PLHtBOigpPT57dmFyIFQ9bCgpLGJhPW0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzO3JldHVybiBfLngoIm13ZWJfaGlkZV9jb250cm9sc19mb3JfdW5wbGF5YWJsZV92aWRlb19rcyIpfHwhYmF8fE1SKGJhKXx8VC5pc0Z1bGxzY3JlZW4/KHlTKFQpfHxULnBsYXllclN0YXRlPT09LTF8fFQucGxheWVyU3RhdGU9PT01fHxULnJjJiYhVC5iYT8uckE/ITE6dVMoVCk/ITA6VC5wbGF5ZXJTdGF0ZT09PTF8fFQucGxheWVyU3RhdGU9PT0zfHxULnBsYXllclN0YXRlPT09Mil8fFQucmMmJnVTKFQpfHwkUyhULGJhKTohMX0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOnosdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6bCx0aHVtYm5haWxEZXRhaWxzOnBhfSksXy5LKHVWLHtHOmwsSDpuLHBsYXlhYmlsaXR5U3RhdHVzOkV9KSl9KSxfLksoXy5PLHtBOmhhLHRoZW46KCk9PgpfLksodlcse2RhdGE6KCk9PlBTKG0oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyLG0oKT8uamIpLHByb3BzOmx9KX0pLF8uSyhfLk8se0E6dGEsdGhlbjooKT0+Xy5LKExWLHtHOmwscGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcjptYX0pfSksXy5LKF8uTyx7QTooKT0+IXRhKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoV1Yse0c6bH0pLF8uSyhfLk8se0E6KCk9Pl8ueCgibXdlYl9iZXR0ZXJfY2FwdGlvbnNfcGxhY2VtZW50IiksdGhlbjooKT0+Xy5LKCJkaXYiLHtpZDoiY2FwdGlvbnMtZ2Fsb3JlLWNvbnRhaW5lciJ9KX0pLF8uSygiZGl2Iix7aWQ6InBsYXllci1jb250cm9sLW92ZXJsYXkiLGNsYXNzOkgsIm9uOmNsaWNrIjpjLCJvbjpwb2ludGVybW92ZSI6Yiwib246dG91Y2hzdGFydCI6ZCwib246dG91Y2htb3ZlIjplLCJvbjp0b3VjaGVuZCI6Ziwib246dG91Y2hjYW5jZWwiOmh9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJwbGF5ZXItY29udHJvbHMtY29udGVudCIsCnsicG9pbnRlci1ldmVudHMtb2ZmIjpEfSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLWNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJwbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZCIseyJmdWxsc2NyZWVuLXJlY3MtZXhwYW5kZWQiOigpPT5JUyhsKCkpfSksIm9uOnRvdWNoc3RhcnQiOmQsIm9uOnRvdWNobW92ZSI6ZSwib246dG91Y2hlbmQiOmYsIm9uOnRvdWNoY2FuY2VsIjpofSksXy5LKCJkaXYiLHtjbGFzczoieXRtV2F0Y2hQbGF5ZXJDb250cm9sc0JhY2tncm91bmRBY3Rpb25JdGVtcyIsIm9uOmNsaWNrIjprfSxfLksoXy5PLHtBOigpPT57dmFyIFQ7aWYoVD0hQSgpKVQ9bSgpPy5wbGF5ZXJSZXNwb25zZT8ucGFpZENvbnRlbnRPdmVybGF5Py5wYWlkQ29udGVudE92ZXJsYXlSZW5kZXJlcjtyZXR1cm4gVH0sdGhlbjooKT0+Xy5LKERXLHtkYXRhOigpPT5tKCk/LnBsYXllclJlc3BvbnNlPy5wYWlkQ29udGVudE92ZXJsYXk/LnBhaWRDb250ZW50T3ZlcmxheVJlbmRlcmVyfSl9KSwKXy5LKF8uTyx7QTpVLHRoZW46KCk9Pl8uSyhsVyx7ZW5kc2NyZWVuUmVuZGVyZXI6KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LmVuZHNjcmVlbj8uZW5kc2NyZWVuUmVuZGVyZXIsRzpsfSl9KSkpLF8uSyhfLk8se0E6KCk9PiFBKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOkcsdGhlbjooKT0+Xy5LKHJXLHtHOmx9KX0pLF8uSyhGVix7RzpsLHBsYXllck92ZXJsYXlSZW5kZXJlcjpNfSksXy5LKFZWLHtnZjpsLEliOiExfSkpfSksXy5LKCJkaXYiLHtzdHlsZTpZVSgoKT0+SlMobCgpLEFTKG0/LigpPy53YXRjaE5leHRSZXNwb25zZSkpKX0sXy5LKExXLHtHOmwscGxheWVyT3ZlcmxheVJlbmRlcmVyOk0sdGh1bWJuYWlsUHJldmlld1JlbmRlcmVyOlN9KSxfLksoXy5PLHtBOigpPT4hQSgpLHRoZW46KCk9Pl8uSyhHVyx7RzpsLHdhdGNoTmV4dFJlc3BvbnNlOlJ9KX0pKSxfLksoXy5PLHtBOigpPT4hQSgpLHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKCJkaXYiLAp7c3R5bGU6WVUoKCk9Pnt2YXIgVD1sKCksYmE9QVMobT8uKCk/LndhdGNoTmV4dFJlc3BvbnNlKTtyZXR1cm4gSFMoVCxiYSl8fFQuYmE/Lm5oPyExOlQuaXNMaXZlfHxKUyhUKX0pfSxfLksoRVcse0c6bCxTbTooKT0+Q1MobT8uKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcikscGxheWVyT3ZlcmxheVJlbmRlcmVyOk19KSksXy5LKCJkaXYiLHtzdHlsZTpZVSgoKT0+e3ZhciBUPWwoKTtyZXR1cm4gVC5iYT8ubmg/ITE6IUlTKFQpfSl9LF8uSyhDVix7TGI6bCxoZjpZLGNvbmZpZzooKT0+KHtjbGFzc05hbWU6IndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFyIixwb3NpdGlvbjowLEluOkYoKSxSYTpFUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKSxLZjohMSxkaXNhYmxlU2NydWJiaW5nOkMoKSxvblRvdWNoTW92ZTooKT0+e3ZhciBUPWwoKSxiYT1FUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKTtiYSYmKFQ9bFQoVCxiYSksbVQoVCkpfSxZbzooKT0+e2JUKCl9LEZuOigpPT4Ke2NUKGwoKSx7SWM6ITB9KX0scHJvZ3Jlc3NDb2xvcjpfLngoImVuYWJsZV9jdXN0b21fc2NydWJiZXJfdjIiKT9DUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKT8ucHJvZ3Jlc3NDb2xvcjp2b2lkIDAsaGY6UWxhKEdTKG0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpKX0pfSkpLF8uSyhGVyx7RzpsLHdhdGNoTmV4dFJlc3BvbnNlOlJ9KSl9KSxfLksoQ1cse0c6bCx3YXRjaE5leHRSZXNwb25zZTpSLHRodW1ibmFpbFByZXZpZXdSZW5kZXJlcjpTLGF1dG9jcm9wQ29uZmlnOm9hfSkpKSl9KSl9KSl9LCJYZSIpO01XLmlkb21Db21wYXQ9ITA7dmFyIGNWPV8uTChhPT57dmFyIGI9Xy5OKCgpPT5hLmRhdGEoKS5ILHZvaWQgMCwiRHVmbU0iKSxjPV8uTigoKT0+bmV3IHFXKCgpPT57fSx7dGE6YS5jb250ZXh0KCkudGEsVGM6YS5jb250ZXh0KCkuVGMsR2M6YS5jb250ZXh0KCkuR2MsYmE6YS5jb250ZXh0KCkuYmF9LHthdXRvbmF2RW5hYmxlZDphLmNvbnRleHQoKS50YS5kZSgpLGVhOlJsYShiKCkpfSxiKSx2b2lkIDAsImpQeDhkZSIpLGQ9W107Xy5uRSgoKT0+e2IoKSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e1pVKGQpO3VXLmZvckVhY2goZT0+e2QucHVzaChlLnJlZ2lzdGVyKCgpPT5jKCkudWQoKSwoKT0+YS5kYXRhKCkpKX0pfSl9LCJIdVlNSmIiKTtfLll1KCgpPT57TVUoKCk9PmMoKS51ZCgpKTtiVCgpO2EuY29udGV4dCgpLnRhLmV4aXRGdWxsc2NyZWVuPy4oKTtaVShkKX0pO3JldHVybiBfLksoXy5uRyx7RWY6W18ub0coJFQsYildfSxfLksoInl0bS1jdXN0b20tY29udHJvbCIse2NsYXNzOiJ5dG1DdXN0b21Db250cm9sSG9zdCJ9LApfLksoTVcse0c6KCk9PigwLGMoKS5CKSgpLGRhdGE6YS5kYXRhfSkpKX0sIlplIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uelo9ZnVuY3Rpb24oYSl7Xy5iWihhKTtfLmRWKGEpfTtfLnp5PV8uelo7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInI3OERyYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF9iYXNlKTsKLy8gR29vZ2xlIEluYy4K"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/css/ranger-style.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.621Z","timestamp":1785126645621,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/css/ranger-style.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 674\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":2310,"size_decoded":921,"mime_type":"text/css","magic":"magic text fragment for file(1) cmd, 2nd line \"/*-----------------------------------------*/\", 3rd line \".custom-input{\"","md5":"878c7902307f90e4368e1cf87a432947","sha1":"65eceaaa00652646b2a9c09f54854c7ce1f9b90f","sha256":"7403ff80ad03b71d831b254891bfd6e9b1e8f55c17f6986d324489118d82ba28","sha512":"845eb5a9948115eb2a30577060a0a3e18b7e37c58128b25c13d4447314082e62eee3893bf60667630d565564698afd857f7d8b74053606bd1dfab4de98bb0e2c","ssdeep":"","tlshash":"9841dd63bd052885f225e669fe54bf5ed72e3817680e1f30bd94341cc2840d965baf8d","first_seen":"2023-11-30T19:44:02Z","last_seen":"2026-07-27T04:47:12.487631Z","times_seen":12,"resource_available":false,"data":"Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwouY3VzdG9tLWlucHV0ewoJYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwoJdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7Cglmb250LXNpemU6IDE1cHggIWltcG9ydGFudDsKCWJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwoJd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKfQouaXJzLWdyaWQgewoJICAgIHRvcDogMjVweDsKfQouaXJzLWdyaWQtcG9sLnNtYWxsIHsKCWRpc3BsYXk6IG5vbmU7Cn0KLmlycy1ncmlkLXRleHQgIHsKCWNvbG9yOiAjM2M0MDQzOwoJZm9udC1mYW1pbHk6ICJPcGVuIFNhbnMiOwoJZm9udC1zaXplOiAxNHB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCSAgICB0b3A6IDI4cHg7Cn0KLmlycy1ncmlkLXRleHQ6YWZ0ZXIgewoJY29udGVudDogJyQnCn0KLmlycy1ncmlkLXBvbCB7Cgl3aWR0aDogMnB4OwoJaGVpZ2h0OiAyMnB4OwoJIGJhY2tncm91bmQ6ICNkMWQxZDE7Cn0KLyouaXJzLWxpbmUgewoJaGVpZ2h0OiAxMnB4OwoJYmFja2dyb3VuZC1jb2xvcjogIzA3MmU0MTsKCWJvcmRlci10b3A6IDJweCBzb2xpZCAjMzQ3YzlmOwoJYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzNDdjOWY7Cgp9Ki8KLmlycy1saW5lLW1pZCwKLmlycy1saW5lLXJpZ2h0LAouaXJzLWxpbmUtbGVmdCwKLmlycy1iYXIsCi5pcnMtYmFyLWVkZ2UgewoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLmlycy1iYXItZWRnZSB7CgliYWNrZ3JvdW5kOiAjMDcyZTQxOwoJYm9yZGVyOiAycHggc29saWQgIzM0N2M5ZjsKCWJvcmRlci1yYWRpdXM6IDRweDsKCXdpZHRoOiAxMDAlOwoJd2lkdGg6IGNhbGMoMTAwJSArIDUwcHgpOwogICAgbGVmdDogLTIwcHg7Cn0KLmlycy1zaW5nbGUgewoJZGlzcGxheTogbm9uZTsKfQouaXJzLXNsaWRlci5zaW5nbGUgewoJd2lkdGg6IDMwcHg7CgloZWlnaHQ6IDMwcHg7CgliYWNrZ3JvdW5kOiAjNGQ1MzU4OwoJYm9yZGVyOiAycHggc29saWQgIzM0N2M5ZjsKCWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDEsIDIsIDMsIDAuNjIpOwoJYm9yZGVyLXJhZGl1czogNTAlOwoJdG9wOiAxNXB4Owp9Ci5pcnMtd2l0aC1ncmlkIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRvcDogLTEycHg7Cn0KLnBsYW4tY2FsYyB7CgltYXJnaW4tdG9wOiAzNnB4OwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDE7CglwYWRkaW5nLWJvdHRvbTogNTBweDsKfQoucGxhbi1jYWxjOmxhc3QtY2hpbGQgewoJcGFkZGluZy1ib3R0b206IDA7Cglib3JkZXItYm90dG9tOiAwOwp9Ci5wbGFuLWNhbGMgYiB7Cglmb250LXdlaWdodDogNzAwOwp9Ci5wbGFuX19uYW1lIHsKCWNvbG9yOiAjM2M0MDQzOwoJZm9udC1zaXplOiAxOHB4OwoJZm9udC13ZWlnaHQ6IDcwMDsKCXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CgltYXJnaW4tYm90dG9tOiAyOHB4Owp9Ci5wbGFuX19pbWcgewoJbWFyZ2luLWJvdHRvbTogMjBweDsKfQoucGxhbl9fZnJvbXRvIHsKCWNvbG9yOiAjMzQ3YzlmOwoJZm9udC1zaXplOiAxNHB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCW1hcmdpbi10b3A6IDQ4cHg7Cn0KLnBsYW5fX2luZm8gewoJbWFyZ2luLXRvcDogMjNweDsKCW1hcmdpbi1ib3R0b206IDYwcHg7Cgljb2xvcjogIzNjNDA0MzsKCWZvbnQtc2l6ZTogMTRweDsKCWZvbnQtd2VpZ2h0OiA2MDA7CglsaW5lLWhlaWdodDogMS43NTsKfQoucGxhbl9fdmFsdWUgewoJd2lkdGg6IDk0cHg7CgloZWlnaHQ6IDM4cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiAjMDcyZTQxOwoJYm9yZGVyLXJhZGl1czogNnB4OwoJZGlzcGxheTogYmxvY2s7Cgljb2xvcjogI2ZmZjsKCWZvbnQtc2l6ZTogMThweDsKCWZvbnQtd2VpZ2h0OiA2MDA7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CglsaW5lLWhlaWdodDogMzhweDsKfQoucGxhbl9fcHJvZml0IHsKCWhlaWdodDogMzZweDsKCWJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7Cglib3JkZXItcmFkaXVzOiA2cHg7CglsaW5lLWhlaWdodDogMzZweDsKCWNvbG9yOiAjM2M0MDQzOwoJZm9udC1zaXplOiAxOHB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CglwYWRkaW5nOiAwIDEwcHg7Cglwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0b3A6IDE1cHg7Cn0KLnBsYW5fX3Byb2ZpdHZhbHVlIHsKCWNvbG9yOiAjMzQ3YzlmOwoJZm9udC13ZWlnaHQ6IDcwMDsKCWZsb2F0OiByaWdodDsKfQoucGxhbl9fc2xpZGVyIHsKCXBhZGRpbmc6IDAgMzBweDsKfQoucHJvZml0IHsKCW1hcmdpbjogMCAtMTVweCAwIC0xMHB4Owp9"}},"time_used":63,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":63,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/logo/icon.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:47.354Z","timestamp":1785126647354,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/logo/icon.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 796\r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":null,"data":{"size":796,"size_decoded":984,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"265e51037981a14ed99a5fc8c5ec1b51","sha1":"d12ac588953298fdaf46dd5b4af8eb4cf6b06f0a","sha256":"c4b07931b3fc37bc80d56a367783e7fa7c04ced4befec7f57ed079c38c960400","sha512":"b18aa610811c5f9bc1dd829ad90a95568e81a41e1fd1472983dc00147f65045fd91fbc498b5263ce4f4c88b041be21f186ed2ce357d3bcf86c0429ca18991151","ssdeep":"","tlshash":"1101f12ac182a80fe0231070fa91e37451594212629b4f647b9ff676f6ce1ab56b22cc","first_seen":"2024-02-05T05:35:22Z","last_seen":"2026-07-27T07:39:56.303276Z","times_seen":52417,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+Cg=="}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":33,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/api/public/v1/accounts/6a506dba4dab3ead5e8ea2e6-0cddc0dbed5c3d1cd67ae238090c5a617cd23b1345a76f0671c86cdc980f2580","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.107Z","timestamp":1785126648107,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /api/public/v1/accounts/6a506dba4dab3ead5e8ea2e6-0cddc0dbed5c3d1cd67ae238090c5a617cd23b1345a76f0671c86cdc980f2580 HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://www.bitifinex.live\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: application/json; charset=utf-8\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nx-powered-by: Express\r\naccess-control-allow-credentials: true\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-allow-headers: Content-Type, cp-app-id\r\ncache-control: public, max-age=31536000, immutable, no-store\r\nvary: Origin, accept-encoding\r\netag: W/\"457-YJcokbjl1bUYKVLGA6wfuFv1F60\"\r\nx-frame-options: sameorigin\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\nage: 2403\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rquP5Hli%2ByZ%2BEnmYvoD7i7V%2BVWSy%2BFiEhMrgO1SH4OfRSNG%2FK6o4vM2E2fwWCCcbHF0ALQvsFDRxy24Dcyzt%2FXy8d3X8UXaJUbFPNYFHXIBsLDjJL5ZKAQ9HOdQD1PM7FA%3D%3D\"}]}\r\ncf-cache-status: HIT\r\ncontent-encoding: br\r\ncf-ray: a218e92eafe8b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]}],"data":{"size":1111,"size_decoded":1525,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"c38e2d5e14a805d0372e84726e401ff4","sha1":"60972891b8e5d5b5182952c603ac1fb85bf517ad","sha256":"0cddc0dbed5c3d1cd67ae238090c5a617cd23b1345a76f0671c86cdc980f2580","sha512":"99847b97046e6152ee8516686410174e5504f823fef52fecf61e7113144bcac23ba32111dc40251ec7d0098a31af7b0f45b1fd9ff7e4b24dbc39aa5cec14ea38","ssdeep":"","tlshash":"a221f07d08001cbd996bd317f4573a8307aca5bb33c07819e6988a0c36e34e9197b603","first_seen":"2026-07-27T03:51:33.388237Z","last_seen":"2026-07-27T04:32:40.397564Z","times_seen":3,"resource_available":false,"data":"eyJyZXN1bHQiOnsic2V0dGluZ3MiOnsibXVsdGlEb21haW5WaXNpdG9ycyI6ZmFsc2UsIndpZGdldENvdW50cmllcyI6bnVsbCwic2hvcnRlbkNoYXRMaW5rcyI6dHJ1ZSwid2lkZ2V0RmlsZVRyYW5zZmVycyI6dHJ1ZSwicmVxdWVzdEVtYWlsIjp7Im9ubGluZSI6ZmFsc2UsIm9mZmxpbmUiOnRydWUsInJlcXVpcmVkIjpmYWxzZSwicHJpb3JpdHkiOjF9LCJwcmVjaGF0Rm9ybSI6eyJvbmxpbmUiOmZhbHNlLCJvZmZsaW5lIjpmYWxzZX0sImF1dG9JbnZpdGF0aW9uU291bmQiOnRydWUsInByb2Nlc3NpbmdJbmZvcm0iOnsiZW5hYmxlZCI6ZmFsc2UsInRleHQiOm51bGx9LCJlbWFpbE1hcmtldGluZ0NvbnNlbnQiOnsiZW5hYmxlZCI6ZmFsc2UsInRleHQiOm51bGx9fSwiY2hhbm5lbHMiOltdLCJhcHBlYXJhbmNlIjp7IndpbmRvd0NvbG9yIjoiZGFyay1ncmF5In0sInRyaWdnZXJzIjpbeyJpZCI6IjZhNjVmNDRiZjA5MDBkMGRkZjlhMDRlOCIsImJyYW5kZWQiOnRydWUsImNvbmRpdGlvbiI6eyJtYXRjaGVyIjoiYWxsIiwic3ViQ29uZGl0aW9ucyI6W3sicGFyYW1ldGVyIjoidGltZV9vbl9wYWdlIiwibWF0Y2hlciI6ImdyZWF0ZXJfdGhhbiIsInZhbHVlIjoiNSJ9LHsicGFyYW1ldGVyIjoidGltZV9hZnRlcl9jbG9zZSIsIm1hdGNoZXIiOiJncmVhdGVyX3RoYW4iLCJ2YWx1ZSI6IjE4MDAwIn1dfSwiYWN0aW9ucyI6W3sibmFtZSI6InByb2FjdGl2ZSIsInBhcmFtcyI6eyJtZXNzYWdlIjpbImF1dG9JbnZpdGF0aW9ucyIsImluaXRpYWxBdXRvSW52aXRhdGlvbk1lc3NhZ2UiXX19XX1dLCJhcHBJZCI6IjZhNTA2ZGJhNGRhYjNlYWQ1ZThlYTJlNiIsImludGVncmF0aW9uIjpudWxsLCJhc3NpZ25tZW50UnVsZXMiOltdLCJmb3JtcyI6W10sImZlYXR1cmVzIjp7InRyaWdnZXJzIjoiZnJlZSIsImJvdHMiOmZhbHNlLCJhc3NpZ25tZW50UnVsZXMiOmZhbHNlLCJhbGxBcHBlYXJhbmNlIjpmYWxzZSwid2hpdGVMYWJlbCI6ZmFsc2UsImpzQXBpIjpmYWxzZSwianNWaXNpdG9yIjpmYWxzZSwid2lkZ2V0QW5hbHl0aWNzIjpmYWxzZSwiY291bnRyeUZpbHRlciI6ZmFsc2UsImZpbGVUcmFuc2ZlciI6ZmFsc2UsImZhcSI6ZmFsc2UsImVtb2ppIjpmYWxzZX19fQ=="}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/css/colorba36ba36ba36.css?color=2ecc71","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.617Z","timestamp":1785126645617,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/css/colorba36ba36ba36.css?color=2ecc71 HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2451\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":13968,"size_decoded":2699,"mime_type":"text/css","magic":"ASCII text","md5":"95ae67088d245f7b9e1e9c9e899d9831","sha1":"0db4b793c6ac8727072b2db80c80398c96cdccc4","sha256":"b1b807e0a7fa5eea880948a4c9536e2450b556107ab817276891f4261e9ac55e","sha512":"81391d0db1456ef95206fe32aaea6c76499dbb90c01b4168872257eb7f69f4bc581be22ac179c23f1df662d26745af755ff20de36a29c65e98942c37b14576b2","ssdeep":"96:7D1BtA5bwkaDbdjfp3fBREt42uT+wX9ag0jUWfo8uKswwnrchzSjJBWQfKs/vEWq:7ZM5bwPlp3vjQAnQhzSbfv4t3","tlshash":"52525860e2e70d57312751fa6c6df540237db38289186fbc7bb961280fd82cca7ba195","first_seen":"2025-03-17T20:39:33.138475Z","last_seen":"2026-07-27T04:32:40.524894Z","times_seen":5,"resource_available":false,"data":"Ci5zZWN0aW9uLWhlYWRlciBoM3sKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGNvbG9yOiMyZWNjNzE7Cgp9Ci5zZWN0aW9uLWhlYWRlciBwOmJlZm9yZXsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnNlY3Rpb24taGVhZGVyIHA6YWZ0ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5iYWNrLXRvLXRvcCB7CiAgICBiYWNrZ3JvdW5kOiAjMmVjYzcxOwoJcG9zaXRpb246IGZpeGVkOwoJcmlnaHQ6IDMwcHg7Cglib3R0b206IDMwcHg7CgloZWlnaHQ6IDQwcHg7Cgl3aWR0aDogNDBweDsKCWZvbnQtc2l6ZTogMjBweDsKCXRleHQtYWxpZ246IGNlbnRlcjsKCWxpbmUtaGVpZ2h0OiA0MHB4OwoJei1pbmRleDogOTk5OwoJYm9yZGVyLXJhZGl1czogNXB4OwoKfQouc3VwcG9ydC1iYXItdG9wIHsKICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjMmVjYzcxOwp9Ci5zdXBwb3J0LWJhci10b3AgYTpob3ZlciB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoubWFpbi1tZW51IHVsICBsaSBhOjpiZWZvcmUgewogICAgYmFja2dyb3VuZDogIzJlY2M3MTsKfQoubWFpbi1tZW51IHVsIGxpIGE6aG92ZXJ7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoubWFpbi1tZW51IHVsIGxpICAgLm1lZ2EtbWVudSAubWVnYS1iYW5uZXIgLm1lZ2EtbWVudS1iYW5uZXJ7CiAgIGJhY2tncm91bmQ6ICMyZWNjNzE7Cn0KLm1haW4tbWVudSB1bCBsaSAgIC5tZWdhLW1lbnUgLm1lZ2EtYmFubmVyIC5tZWdhLW1lbnUtYmFubmVyIGF7CiAgICBjb2xvcjogIzJlY2M3MTsKfQojaGVhZGVyLW1lbnU+Lm1lbnUtYWN0aXZlPmEsIC5tYWluLW1lbnUtYWN0aXZlPi5tZW51LWFjdGl2ZT5hOmZvY3VzLCAubWFpbi1tZW51LWFjdGl2ZT4ubWVudS1hY3RpdmU+YTpob3ZlciB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wxIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5oZWFkZXItb3ZlcmxheTpiZWZvcmUgewogIGJhY2tncm91bmQtY29sb3I6ICAjMmVjYzcxOwp9Ci5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT10ZXh0XSB7CiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMmVjYzcxOwp9Ci5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICAgIGJhY2tncm91bmQ6ICMyZWNjNzE7Cn0KLmFkbWluLXNlY3Rpb257CiAgICBib3JkZXItdG9wOjhweCBzb2xpZCAjMmVjYzcxOwp9Ci5hZG1pbi1jb250ZW50IC5hZG1pbi11c2VyIGJ1dHRvbnsKICAgIGJvcmRlcjoycHggc29saWQgIzJlY2M3MTsKfQouYWRtaW4tY29udGVudCAuYWRtaW4tdXNlciBidXR0b246aG92ZXJ7CiAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZTpiZWZvcmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmFmdGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgLnNlcnZpY2UtdGh1bWJ7CiAgICBib3JkZXI6MXB4IHNvbGlkICMyZWNjNzE7CiB9CiAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlIGEgIGl7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQogIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSBzcGFuIGl7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwogfQogIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSBwewogICAgY29sb3I6IzJlY2M3MTsKCiB9CiAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlIHAgewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1pdGVtIC5zZXJ2aWNlLXRleHQgYTpob3ZlcnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoucHJpY2luZy1saXN0IC5wcmljaW5nLWl0ZW06aG92ZXIgLnByaWNpbmctaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnByaWNpbmctbGlzdCAucHJpY2luZy1pdGVtOmhvdmVyIC5wcmljaW5nLWluZm97CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbSAucHJpY2luZy1pbmZvIHVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHsKICAgIGJvcmRlci10b3A6IDNweCAgZG90dGVkICMyZWNjNzE7Cn0KLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgLm90aGVyLXNlbGVjdC1ib3JkZXIgewogICAgICAgIGJvcmRlcjogMnB4IGRvdHRlZCAjMmVjYzcxOwogICAgfQoub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7CiAgICB9ICAgIAoub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1jb250ZW50IC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQxIC5vdGhlci1zZXJ2aWNlLXRleHQgdWwgbGkgcCBpIHsKICAgICAgICBjb2xvcjogIzJlY2M3MTsKICAgIH0KLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IGEgewogYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoubmV3c2xldHRlci1zZWN0aW9uewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMiAub25saW5lLXRleHQgYnV0dG9uOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKCn0KLnNhbGUtaGVhZGVyewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyZWNjNzE7Cn0KLnNhbGUtaGVhZGVyIGgyewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyZWNjNzE7Cn0KLnNhbGUtaGVhZGVyIGgyIHNwYW57CiAgICBjb2xvcjojMmVjYzcxOwp9Ci5zYWxlLWNvbnRlbnQgcCBzcGFuewogICAgY29sb3I6IzJlY2M3MTsKfQouc2FsZS1jb250ZW50IGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5zYWxlLWNvbnRlbnQgYnV0dG9uOmhvdmVyIHsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Ci50ZWFtLWl0ZW0gLnRlYW0tb3ZlcmxheSB1bCBsaSBhIGkgewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLnN1cHBvcnQtY29udGVudCBhewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouc3VwcG9ydC1iYXItdG9wIGEgc3Bhbjpob3ZlciwKLnN1cHBvcnQtYmFyLXRvcCBhOmhvdmVyIHNwYW4gewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLmNvdW50ZXItbGlzdCAuY291bnRlci10aHVtYnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7CiAgICBib3JkZXI6NXB4IHNvbGlkICMyZWNjNzE7Cn0KLmJsb2ctbGlzdCAuYmxvZy10aHVtYiAuYmxvZy10ZXh0MiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5ibG9nLWxpc3QgLmJsb2ctY29udGVudDpob3ZlciAgYXsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnRlc3RpbW9uaWFsLW92ZXJsYXl7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMyw2MiwzMywuOSk7Cn0KLmZvb3Rlci1zdXBwb3J0LWxpc3R7CiBib3JkZXItYm90dG9tOiA4cHggc29saWQgIzJlY2M3MTsKfQoud2lkZ2V0LXJlYWQtbW9yZSB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoud2lkZ2V0LW9uZS1mb290ZXIgaSB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoud2lkZ2V0LXR3by1ib2R5IHVsIGxpIGE6aG92ZXIgewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLmZvb3Rlci1jb250YWN0LWZvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywKLmZvb3Rlci1jb250YWN0LWZvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMgewogICAgYm9yZGVyOiAxcHggc29saWQgIzJlY2M3MTsKfQouZm9vdGVyLWNvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF0gewogICAgYmFja2dyb3VuZDogIzJlY2M3MTsKfQouZm9vdGVyLW1lbnUgdWwgbGkgYTpob3ZlciB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoubGl2ZS1jaGF0LWJ0biB7CiAgICBiYWNrZ3JvdW5kOiAjMmVjYzcxOwp9Ci5saXZlLWNoYXQtYnRuIGkgewogICAgYmFja2dyb3VuZDogIzJlY2M3MTsKfQouZm9vdGVyLXNvY2lhbC1saW5rcyBhIGkgewogICAgY29sb3I6ICMyZWNjNzE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwp9Ci5wcmljaW5nLWxpc3QxIHsKICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAjMmVjYzcxOwp9Ci5wcmljaW5nLWxpc3QxOmhvdmVyewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoucHJpY2luZy1saXN0MSAucHJpY2luZy1oZWFkZXIxOmFmdGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnByaWNpbmctbGlzdDEgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5wcmljaW5nLWxpc3QyIC5wcmljaW5nLXRodW1iIGl7CiAgICBjb2xvcjogICMyZWNjNzE7Cn0KI3ByaWNpbmctMiAuc2xpZGVyLWJnIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMyw2MiwzMywgMC40KTsKfQojcHJpY2luZy0yICNwcmljaW5nLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOyB9CgojcHJpY2luZy0yICNwcmljaW5nLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoKI3ByaWNpbmctMiAuaW5mby1pdGVtIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9CiNwcmljaW5nLTIgLm9yZGVyLWJ1dHRvbiBhIHsKICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwp9CiNwcmljaW5nLTIgLm9yZGVyLWJ1dHRvbiBhOmhvdmVyIC5yaWdodCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQojcHJpY2luZy0yIC5vcmRlci1idXR0b24gLnJpZ2h0IHsKICBjb2xvcjogIzJlY2M3MTsKfQouaG9zdGluZy1jb250ZW50IHRhYmxlIHRib2R5IHRyIHRkIGE6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsgCn0KLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10aHVtYiBpewogICAgY29sb3I6ICMyZWNjNzE7IAogICAgYm9yZGVyOjFweCBzb2xpZCAjMmVjYzcxOyAKfQouZmVhdHVyZS1saXN0IC5mZWF0dXJlLWNvbnRlbnQgaDZ7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouZmVhdHVyZS1saXN0MTpob3ZlciAuZmVhdHVyZS10aHVtYiBpewogICAgY29sb3I6ICAjMmVjYzcxOwogICAgYm9yZGVyOjFweCBzb2xpZCAjMmVjYzcxOwoKfQouZmVhdHVyZS1saXN0MTpob3ZlciAuZmVhdHVyZS1jb250ZW50IGg2ewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLmhvc3RwcmVzcy1jb250ZW50IGg2ewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLmhvc3RpbmdzcGVlZC1jb250ZW50IC5ob3N0aW5nc3BlZWQtdGV4dCBoNnsKICAgIGNvbG9yOiMyZWNjNzE7Cn0KICAuc2VydmljZS1saXN0MSBpIHsKICAgIGNvbG9yOiAjMmVjYzcxOwogICAgYm9yZGVyOiAxcHggc29saWQgIzJlY2M3MTsKIH0KLnNlcnZpY2UtbGlzdDEgLnNlcnZpY2UtdGV4dCBhIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzJlY2M3MTsKIH0KLnNlcnZpY2UtbGlzdDEgLnNlcnZpY2UtdGV4dCBhOmhvdmVyIHsKICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwogIGNvbG9yOiAjMmVjYzcxOwp9Ci52cHMtZmVhdHVyZSAuZmVhdHVyZS1oZWFkZXIgaDEgewogICAgY29sb3I6ICMyZWNjNzE7IH0KLnZwcy1mZWF0dXJlIC5mZWF0dXJlLWxpc3QgbGkgaSB7CiAgICAgIGNvbG9yOiAjMmVjYzcxOwogfQoudnBzLWZlYXR1cmUgYSB7CiAgYm9yZGVyOiAxcHggc29saWQgIzJlY2M3MTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwogfQoucGFyYWxsYXgtY29udGVudCBhIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnBhcmFsbGF4LWNvbnRlbnQgYTpob3ZlciB7CiAgY29sb3I6ICMyZWNjNzE7IAp9Ci53aWRnZXQtbGlzdCBoNHsKICBjb2xvcjogIzJlY2M3MTsKfQoud2lkZ2V0LXNlYXJjaCBidXR0b257CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoud2lkZ2V0LXNlYXJjaCBidXR0b24gewogIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLndpZGdldC1zZWFyY2ggYnV0dG9uOmhvdmVyewogIGNvbG9yOiAjMmVjYzcxOwp9Ci53aWRnZXQtbGlzdCB1bCBsaSBhewogIGNvbG9yOiAjNDQzYTQ0Owp9Ci53aWRnZXQtbGlzdCB1bCBsaTpob3ZlciBhewogIGNvbG9yOiAjMmVjYzcxOwp9Ci53aWRnZXQtbGlzdCB1bCBsaTpob3ZlciBzcGFuewogICAgY29sb3I6ICMyZWNjNzE7CiAgICBib3JkZXI6MXB4IHNvbGlkICMyZWNjNzE7Cn0KLndpZGdldC10YWdzIHVsIGxpOmhvdmVyIHsKICAgYm9yZGVyOiAxcHggc29saWQgICMyZWNjNzE7Cn0KLndpZGdldC10YWdzIHVsIGxpIGF7CiAgY29sb3I6ICMyZWNjNzE7Cn0KLndpZGdldC10YWdzIHVsIGxpOmhvdmVyIGF7CiAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLmJsb2ctbGF0ZXN0IC5zaWRlYmFyLXBvc3RzIC50ZXh0LWJveC1yaWdodCBoNiBhIHsKICBjb2xvcjogIzJlY2M3MTsKfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy10aHVtYiBwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDQgewogIGNvbG9yOiMyZWNjNzE7Cn0KLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAuYmxvZy10ZXh0IGg0IGEgewogICAgY29sb3I6IzJlY2M3MTsKfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLXRleHQgLmljb25saXN0IGxpIGkgewogIGNvbG9yOiAjMmVjYzcxOwp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCAuc29jaWFsLWljb25zLTIgbGkgYSBpIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCBhIHsKICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOyAKfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5ibG9nLWF1dGhvciAuYmxvZy1saXN0IC5ibG9nLXRleHQgYTpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOyAKfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb250ZW50IC5vdGhlci1ibG9nIGg0IGEgewogIGNvbG9yOiAjMmVjYzcxOwp9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLm90aGVyLWJsb2cgaDUgYSB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IHVsIGxpIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCBhIHsKICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOyAKICB9Ci5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IGE6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7CiAgYm9yZGVyOiAxcHggc29saWQgIzJlY2M3MTsgCiAgfQouYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IGEubG9hZG1vcmUtYnV0IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLmFkZC1yZXZpZXctbGlzdCBidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouc2VsZWN0ZWQtZG9tYWluLXRodW1iIGl7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouc2VsZWN0ZWQtZG9tYWluLXRleHQgcCBhewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLnNlbGVjdGVkLWRvbWFpbi1zdWJtaXQgc3BhbnsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Ci5zZWxlY3RlZC1kb21haW4tc3VibWl0IGJ1dHRvbnsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnNlbGVjdGVkLWxpc3R7CiAgICBib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgyMzMsNjIsMzMsLjkpOwogICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDIzMyw2MiwzMywuOSk7CiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDIzMyw2MiwzMywuOSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzMyw2MiwzMywuNSk7Cn0KLnNlbGVjdGVkLWxpc3QgLnNlbGVjdGVkLWxpc3QtY2FydCBidXR0b246aG92ZXJ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaSAuY29udGFjdC10aHVtYiBpewogIGNvbG9yOiMyZWNjNzE7Cn0KLmNvbnRhY3QtZm9ybSBoMjphZnRlcnsKICAgIGJhY2tncm91bmQtY29sb3I6IzJlY2M3MTsKfQouY29udGFjdC1mb3JtIGlucHV0OmZvY3VzLAouY29udGFjdC1mb3JtIHNlbGVjdDpmb2N1cywKLmNvbnRhY3QtZm9ybSB0ZXh0YXJlYTpmb2N1c3sKICAgIGJvcmRlci1jb2xvcjojMmVjYzcxOwp9Ci5jb250YWN0LWZvcm0gYnV0dG9uewogICAgYmFja2dyb3VuZDogIzJlY2M3MTsKICAgIGJvcmRlcjogMnB4IHNvbGlkICMyZWNjNzE7Cn0KI2lzb3RvcGVtZW51IHVsIGxpLmFjdGl2ZSBwewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLmxheWVyewogICAgYmFja2dyb3VuZDogcmdiYSgyMzMsNjIsMzMsLjcpOwp9Ci5pc290b3BlLXNvY2lhbCBhIGkgewogIGNvbG9yOiAjMmVjYzcxOwp9Ci5pc290b3BlLXNvY2lhbCBhIGk6aG92ZXJ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5hbGwtaW1hZ2UgYSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoubG9naW4tYWRtaW4gLmxvZ2luLWZvcm0gaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5sb2dpbi1hZG1pbiAuc29jaWFsLWxvZ2luIHVsIGxpIGEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouY29vbWluZy1jb250ZW50IGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXN7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5jb29taW5nLWNvbnRlbnQgaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGJvZHkgdHI6aG92ZXIgdGQgYSB7CiAgICBjb2xvcjojMmVjYzcxOwp9Ci5jYXJ0LWNvbnRlbnQgdGFibGUgdGZvb3QgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouY2FydC1wcmljZSAuY2FydC1jb3Vwb24gaW5wdXRbdHlwZT0ic3VibWl0Il17CiAgYmFja2dyb3VuZDogIzJlY2M3MTsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBwLmNhcnQtY29sb3IgewogICAgY29sb3I6IzJlY2M3MTsKfQouY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBidXR0b24gewogICAgYmFja2dyb3VuZDogIzJlY2M3MTsKfQouZXJyb3ItdGh1bWIgcCB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouZXJyb3ItY29udGVudCBoMXsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Ci5lcnJvci1jb250ZW50IGF7CiAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouYWZmaWxpYXRlLWl0ZW0gLmFmZmlsaWF0ZS1jb250ZW50IGg0IHNwYW57CiAgICBjb2xvcjogIzJlY2M3MTsKfQoucmVmZXJyYWwtYW1vdW50ewogICAgYm9yZGVyLXRvcDo1cHggc29saWQgIzJlY2M3MTsKfQoucmVmZXJyYWwtYW1vdW50OmJlZm9yZXsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnJlZmVycmFsLWFtb3VudCBwewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyZWNjNzE7Cn0KLnJlZmVycmFsLWFtb3VudCBoNXsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLnNpZ251cC1hZmZpbGlhdGUgYXsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQouYWJvdXQtaW5mby5hYm91dC1saWdodCAuYnRuLm1vZGVybjpob3ZlciB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQouYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGEsIC5mYXEtY2F0ZWdvcmllcyB1bCBsaSBhOmhvdmVyLCAuZmFxLWNhdGVnb3JpZXMgdWwgbGkuYWN0aXZlIGEgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoucG9wdWxhci1wbGFuLWNvbnRlbnQgaDMgc3BhbnsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Ci5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBpewogICAgY29sb3I6ICMyZWNjNzE7Cn0KLnBvcHVsYXItcGxhbi1jb250ZW50IHVsIGxpIHB7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgc3BhbnsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Ci5wb3B1bGFyLXBsYW4tdGh1bWIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKfQoucG9wdWxhci1wbGFuLXRodW1iIGJ1dHRvbjpob3ZlcnsKICAgIGJvcmRlcjogc29saWQgMnB4ICMyZWNjNzE7Cn0KLnBvcHVsYXItcGxhbi10aHVtYjEgYnV0dG9uewogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MTsKICAgIGJvcmRlcjogc29saWQgMnB4ICMyZWNjNzE7Cn0KLnBvcHVsYXItcGxhbi10aHVtYjEgLnBvcHVsYXItcmliYm9uIC5yaWJib257CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9Ci50ZXN0aW1vbmlhbC1hcmVhIC5zaW4tdGVzdGlJbWFnZSBpbWcgewogICAgYm9yZGVyOiAxcHggc29saWQgICMyZWNjNzE7Cn0KLnRlc3RpbW9uaWFsLWFyZWEgLnNpbi10ZXN0aUltYWdlLnNsaWNrLWN1cnJlbnQgaW1nIHsKICBib3JkZXI6IDNweCBzb2xpZCAjMmVjYzcxOwogfQouZGF0YWNlbnRlci1jb250ZW50IGg0IHsKICBjb2xvcjogIzJlY2M3MTsKfQouY2xpZW50LWxpc3QgLmNsaWVudC1jb250YWluZXIgLm91ci1jbGllbnQ6aG92ZXIgewogIGJvcmRlcjogMXB4IHNvbGlkICMyZWNjNzE7Cn0KLmNvb21pbmctY29udGVudCBhIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzE7Cn0KCi5mb290ZXItc29jaWFsLWxpbmtzIGE6aG92ZXIgaSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmMzZTUwOwp9Cgouc2VydmljZS13cmFwcGVyIHsKICAgIGJhY2tncm91bmQ6ICMyZWNjNzE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwp9Cgouc2VydmljZS13cmFwcGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMmVjYzcxOwp9Cgouc2VydmljZS13cmFwcGVyOmhvdmVyIGl7CiAgICBjb2xvcjogIzJlY2M3MTsKfQoKLnNlcnZpY2Utd3JhcHBlcjpob3ZlciBwewogICAgY29sb3I6ICMyZWNjNzE7Cn0KCi5kaXNjdW50LW1pZGRlbC10ZXh0IHsKICAgIGJhY2tncm91bmQ6IzJlY2M3MTsKfQoKI3ByZWxvYWRlciB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGJvdHRvbTogMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICB6LWluZGV4OiA5OTk5OTk5OQp9CgpbZGF0YS1sb2FkZXI9Y2lyY2xlLXNpZGVdIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiA1MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICBtYXJnaW4tbGVmdDogLTI1cHg7CiAgICBtYXJnaW4tdG9wOiAtMjVweDsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjaXJjbGUgaW5maW5pdGUgLjk1cyBsaW5lYXI7CiAgICAtbW96LWFuaW1hdGlvbjogY2lyY2xlIGluZmluaXRlIC45NXMgbGluZWFyOwogICAgLW8tYW5pbWF0aW9uOiBjaXJjbGUgaW5maW5pdGUgLjk1cyBsaW5lYXI7CiAgICBhbmltYXRpb246IGNpcmNsZSBpbmZpbml0ZSAuOTVzIGxpbmVhcjsKICAgIGJvcmRlcjogMnB4IHNvbGlkICMyZWNjNzE7CiAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yKTsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4yKTsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTAwJTsKICAgIC1tcy1ib3JkZXItcmFkaXVzOiAxMDAlOwogICAgYm9yZGVyLXJhZGl1czogMTAwJQp9CgoucGFuZWwtZ3JlZW4gewogICAgYm9yZGVyLWNvbG9yOiAjMmVjYzcxIWltcG9ydGFudDsKfQoKLnBhbmVsLWdyZWVuID4gLnBhbmVsLWhlYWRpbmcgewogICAgYm9yZGVyLWNvbG9yOiAjMmVjYzcxIWltcG9ydGFudDsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyZWNjNzEhaW1wb3J0YW50Owp9CgouYnRuLXByaW1hcnkgewogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxIWltcG9ydGFudDsKICAgIGJvcmRlci1jb2xvcjojMmVjYzcxIWltcG9ydGFudDsKfQoKLnBhbmVsLWRlZmF1bHQgewogICAgYm9yZGVyLWNvbG9yOiAjMmVjYzcxIWltcG9ydGFudDsKfQoKLnBhbmVsLWRlZmF1bHQ+IC5wYW5lbC1oZWFkaW5nIHsKICAgICBib3JkZXItY29sb3I6ICMyZWNjNzEhaW1wb3J0YW50OwogICAgY29sb3I6IHdoaXRlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MSFpbXBvcnRhbnQ7Cn0KCi5wYWdpbmF0aW9uPi5hY3RpdmU+YSwgLnBhZ2luYXRpb24+LmFjdGl2ZT5hOmZvY3VzLCAucGFnaW5hdGlvbj4uYWN0aXZlPmE6aG92ZXIsIC5wYWdpbmF0aW9uPi5hY3RpdmU+c3BhbiwgLnBhZ2luYXRpb24+LmFjdGl2ZT5zcGFuOmZvY3VzLCAucGFnaW5hdGlvbj4uYWN0aXZlPnNwYW46aG92ZXIgewogICAgei1pbmRleDogMzsKICAgIGNvbG9yOiAjZmZmOwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzJlY2M3MSFpbXBvcnRhbnQ7CiAgICBib3JkZXItY29sb3I6IzJlY2M3MSFpbXBvcnRhbnQ7Cn0KCi5uZXctYnRuLXN1Ym1pdCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwp9CgouYWRtaW4taGVhZGVyLWJ1dHRvbi5zdXBwb3J0LWJ0biB7CiAgICBiYWNrZ3JvdW5kOiAjMmMzZTUwOwp9Ci5vcGVuLXN1cHBvcnQtYnRuIGg1IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzNlNTA7Cn0KCi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bi1ncm91cCB7CiAgICB6LWluZGV4OiAyOwogICAgbWFyZ2luLWxlZnQ6IC0xcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmVjYzcxOwogICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KCiBoMiBzcGFuIHsKICAgIGNvbG9yOiAjMmVjYzcxOwp9Cgouc2VjdGlvbi1iYWNrZ3JvdW5kewpiYWNrZ3JvdW5kOiNlZWU7Cn0KLnNhbGUtc2VjdGlvbiBwewpjb2xvcjojZmZmOwp9CmlucHV0LCB7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMmVjYzcxICFpbXBvcnRhbnQ7CiAgICAKfQoK"}},"time_used":61,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":55,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.ripples-min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.848Z","timestamp":1785126645848,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery.ripples-min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4449\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":14804,"size_decoded":4704,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (14658)","md5":"ac017bdc5fcad92a2abbc0e338742d5c","sha1":"4aba8b07be06fe82d938cb58c86dc9b25e54ab57","sha256":"ec4be3cd1e88d3ff939be875fa351459aaaa0d1be3b1f45b5a805e8d13e4c5fd","sha512":"b0f33df0316f64cc8dff596fe21f8486e4e6f094a1c6c7a3be41b7e717f9e35cac63bc574aff1cc35bd16daa7949b3049a8b3b0c19ae19896b2fe0d5ec43d3cf","ssdeep":"192:BtXQeQ+kvWJ2V6puUhBTa68qF6KkFMjWVXs/pkGWEvushkoaMX2G1EZVp78ixRcU:DbQXWduSc5bVspuEvutT7nXc0H","tlshash":"c262f689117a34282a037152a4690f85026fd9e9b607c7ad357cf1eba4e1e0c733fbb5","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.520917Z","times_seen":19,"resource_available":true,"data":"LyoqCiAqIGpRdWVyeSBSaXBwbGVzIHBsdWdpbiB2MC42LjEgLyBodHRwczovL2dpdGh1Yi5jb20vc2lyeGVtaWMvanF1ZXJ5LnJpcHBsZXMKICogTUlUIExpY2Vuc2UKICogQGF1dGhvciBzaXJ4ZW1pYyAvIGh0dHBzOi8vc2lyeGVtaWMuY29tLwogKi8KCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/dChyZXF1aXJlKCJqcXVlcnkiKSk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSx0KTp0KGUuJCl9KHRoaXMsZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSl7cmV0dXJuIiUiPT1lW2UubGVuZ3RoLTFdfWZ1bmN0aW9uIHIoZSl7dmFyIHQ9ZS5zcGxpdCgiICIpO2lmKDEhPT10Lmxlbmd0aClyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7c3dpdGNoKGUpe2Nhc2UiY2VudGVyIjpyZXR1cm4iNTAlIjtjYXNlInRvcCI6Y2FzZSJsZWZ0IjpyZXR1cm4iMCI7Y2FzZSJyaWdodCI6Y2FzZSJib3R0b20iOnJldHVybiIxMDAlIjtkZWZhdWx0OnJldHVybiB0fX0pO3N3aXRjaChlKXtjYXNlImNlbnRlciI6cmV0dXJuWyI1MCUiLCI1MCUiXTtjYXNlInRvcCI6cmV0dXJuWyI1MCUiLCIwIl07Y2FzZSJib3R0b20iOnJldHVyblsiNTAlIiwiMTAwJSJdO2Nhc2UibGVmdCI6cmV0dXJuWyIwIiwiNTAlIl07Y2FzZSJyaWdodCI6cmV0dXJuWyIxMDAlIiwiNTAlIl07ZGVmYXVsdDpyZXR1cm5bZSwiNTAlIl19fWZ1bmN0aW9uIGkoZSx0LHIpe2Z1bmN0aW9uIGkoZSx0KXt2YXIgcj1zLmNyZWF0ZVNoYWRlcihlKTtpZihzLnNoYWRlclNvdXJjZShyLHQpLHMuY29tcGlsZVNoYWRlcihyKSwhcy5nZXRTaGFkZXJQYXJhbWV0ZXIocixzLkNPTVBJTEVfU1RBVFVTKSl0aHJvdyBuZXcgRXJyb3IoImNvbXBpbGUgZXJyb3I6ICIrcy5nZXRTaGFkZXJJbmZvTG9nKHIpKTtyZXR1cm4gcn12YXIgbz17fTtpZihvLmlkPXMuY3JlYXRlUHJvZ3JhbSgpLHMuYXR0YWNoU2hhZGVyKG8uaWQsaShzLlZFUlRFWF9TSEFERVIsZSkpLHMuYXR0YWNoU2hhZGVyKG8uaWQsaShzLkZSQUdNRU5UX1NIQURFUix0KSkscy5saW5rUHJvZ3JhbShvLmlkKSwhcy5nZXRQcm9ncmFtUGFyYW1ldGVyKG8uaWQscy5MSU5LX1NUQVRVUykpdGhyb3cgbmV3IEVycm9yKCJsaW5rIGVycm9yOiAiK3MuZ2V0UHJvZ3JhbUluZm9Mb2coby5pZCkpO28udW5pZm9ybXM9e30sby5sb2NhdGlvbnM9e30scy51c2VQcm9ncmFtKG8uaWQpLHMuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Zm9yKHZhciBuLGEsdT0vdW5pZm9ybSAoXHcrKSAoXHcrKS9nLGg9ZSt0O251bGwhPShuPXUuZXhlYyhoKSk7KWE9blsyXSxvLmxvY2F0aW9uc1thXT1zLmdldFVuaWZvcm1Mb2NhdGlvbihvLmlkLGEpO3JldHVybiBvfWZ1bmN0aW9uIG8oZSx0KXtzLmFjdGl2ZVRleHR1cmUocy5URVhUVVJFMCsodHx8MCkpLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELGUpfWZ1bmN0aW9uIG4oZSl7dmFyIHQ9L3VybFwoWyInXT8oW14iJ10qKVsiJ10/XCkvLmV4ZWMoZSk7cmV0dXJuIG51bGw9PXQ/bnVsbDp0WzFdfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGUubWF0Y2goL15kYXRhOi8pfXZhciBzLHU9KGU9ZSYmZS5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdCIpP2UuZGVmYXVsdDplKSh3aW5kb3cpLGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dmFyIGk9Ik9FU190ZXh0dXJlXyIrZSxvPWkrIl9saW5lYXIiLG49byBpbiByLGE9W2ldO3JldHVybiBuJiZhLnB1c2gobykse3R5cGU6dCxsaW5lYXJTdXBwb3J0Om4sZXh0ZW5zaW9uczphfX12YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtpZighKHM9dC5nZXRDb250ZXh0KCJ3ZWJnbCIpfHx0LmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpKSlyZXR1cm4gbnVsbDt2YXIgcj17fTtpZihbIk9FU190ZXh0dXJlX2Zsb2F0IiwiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIsIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIsIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIl0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zLmdldEV4dGVuc2lvbihlKTt0JiYocltlXT10KX0pLCFyLk9FU190ZXh0dXJlX2Zsb2F0KXJldHVybiBudWxsO3ZhciBpPVtdO2kucHVzaChlKCJmbG9hdCIscy5GTE9BVCkpLHIuT0VTX3RleHR1cmVfaGFsZl9mbG9hdCYmaS5wdXNoKGUoImhhbGZfZmxvYXQiLHIuT0VTX3RleHR1cmVfaGFsZl9mbG9hdC5IQUxGX0ZMT0FUX09FUykpO3ZhciBvPXMuY3JlYXRlVGV4dHVyZSgpLG49cy5jcmVhdGVGcmFtZWJ1ZmZlcigpO3MuYmluZEZyYW1lYnVmZmVyKHMuRlJBTUVCVUZGRVIsbikscy5iaW5kVGV4dHVyZShzLlRFWFRVUkVfMkQsbykscy50ZXhQYXJhbWV0ZXJpKHMuVEVYVFVSRV8yRCxzLlRFWFRVUkVfTUlOX0ZJTFRFUixzLk5FQVJFU1QpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX01BR19GSUxURVIscy5ORUFSRVNUKSxzLnRleFBhcmFtZXRlcmkocy5URVhUVVJFXzJELHMuVEVYVFVSRV9XUkFQX1Mscy5DTEFNUF9UT19FREdFKSxzLnRleFBhcmFtZXRlcmkocy5URVhUVVJFXzJELHMuVEVYVFVSRV9XUkFQX1Qscy5DTEFNUF9UT19FREdFKTtmb3IodmFyIGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1KyspaWYocy50ZXhJbWFnZTJEKHMuVEVYVFVSRV8yRCwwLHMuUkdCQSwzMiwzMiwwLHMuUkdCQSxpW3VdLnR5cGUsbnVsbCkscy5mcmFtZWJ1ZmZlclRleHR1cmUyRChzLkZSQU1FQlVGRkVSLHMuQ09MT1JfQVRUQUNITUVOVDAscy5URVhUVVJFXzJELG8sMCkscy5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKHMuRlJBTUVCVUZGRVIpPT09cy5GUkFNRUJVRkZFUl9DT01QTEVURSl7YT1pW3VdO2JyZWFrfXJldHVybiBhfSgpLGM9ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIG5ldyBJbWFnZURhdGEoZSx0KX1jYXRjaChyKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoZSx0KX19KDMyLDMyKTtlKCJoZWFkIikucHJlcGVuZCgiPHN0eWxlPi5qcXVlcnktcmlwcGxlcyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMDsgfTwvc3R5bGU+Iik7dmFyIGQ9ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBpKCl7by5kZXN0cm95ZWR8fChvLnN0ZXAoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSkpfXZhciBvPXRoaXM7dGhpcy4kZWw9ZSh0KSx0aGlzLmludGVyYWN0aXZlPXIuaW50ZXJhY3RpdmUsdGhpcy5yZXNvbHV0aW9uPXIucmVzb2x1dGlvbix0aGlzLnRleHR1cmVEZWx0YT1uZXcgRmxvYXQzMkFycmF5KFsxL3RoaXMucmVzb2x1dGlvbiwxL3RoaXMucmVzb2x1dGlvbl0pLHRoaXMucGVydHVyYmFuY2U9ci5wZXJ0dXJiYW5jZSx0aGlzLmRyb3BSYWRpdXM9ci5kcm9wUmFkaXVzLHRoaXMuY3Jvc3NPcmlnaW49ci5jcm9zc09yaWdpbix0aGlzLmltYWdlVXJsPXIuaW1hZ2VVcmw7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7bi53aWR0aD10aGlzLiRlbC5pbm5lcldpZHRoKCksbi5oZWlnaHQ9dGhpcy4kZWwuaW5uZXJIZWlnaHQoKSx0aGlzLmNhbnZhcz1uLHRoaXMuJGNhbnZhcz1lKG4pLHRoaXMuJGNhbnZhcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDowLHRvcDowLHJpZ2h0OjAsYm90dG9tOjAsekluZGV4Oi0xfSksdGhpcy4kZWwuYWRkQ2xhc3MoImpxdWVyeS1yaXBwbGVzIikuYXBwZW5kKG4pLHRoaXMuY29udGV4dD1zPW4uZ2V0Q29udGV4dCgid2ViZ2wiKXx8bi5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiKSxoLmV4dGVuc2lvbnMuZm9yRWFjaChmdW5jdGlvbihlKXtzLmdldEV4dGVuc2lvbihlKX0pLGUod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe28udXBkYXRlU2l6ZSgpfSksdGhpcy50ZXh0dXJlcz1bXSx0aGlzLmZyYW1lYnVmZmVycz1bXSx0aGlzLmJ1ZmZlcldyaXRlSW5kZXg9MCx0aGlzLmJ1ZmZlclJlYWRJbmRleD0xO2Zvcih2YXIgYT1uZXcgRmxvYXQzMkFycmF5KHRoaXMucmVzb2x1dGlvbip0aGlzLnJlc29sdXRpb24qNCksdT0wO3U8Mjt1Kyspe3ZhciBjPXMuY3JlYXRlVGV4dHVyZSgpLGQ9cy5jcmVhdGVGcmFtZWJ1ZmZlcigpO3MuYmluZEZyYW1lYnVmZmVyKHMuRlJBTUVCVUZGRVIsZCkscy5iaW5kVGV4dHVyZShzLlRFWFRVUkVfMkQsYykscy50ZXhQYXJhbWV0ZXJpKHMuVEVYVFVSRV8yRCxzLlRFWFRVUkVfTUlOX0ZJTFRFUixoLmxpbmVhclN1cHBvcnQ/cy5MSU5FQVI6cy5ORUFSRVNUKSxzLnRleFBhcmFtZXRlcmkocy5URVhUVVJFXzJELHMuVEVYVFVSRV9NQUdfRklMVEVSLGgubGluZWFyU3VwcG9ydD9zLkxJTkVBUjpzLk5FQVJFU1QpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX1dSQVBfUyxzLkNMQU1QX1RPX0VER0UpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX1dSQVBfVCxzLkNMQU1QX1RPX0VER0UpLHMudGV4SW1hZ2UyRChzLlRFWFRVUkVfMkQsMCxzLlJHQkEsdGhpcy5yZXNvbHV0aW9uLHRoaXMucmVzb2x1dGlvbiwwLHMuUkdCQSxoLnR5cGUsYSkscy5mcmFtZWJ1ZmZlclRleHR1cmUyRChzLkZSQU1FQlVGRkVSLHMuQ09MT1JfQVRUQUNITUVOVDAscy5URVhUVVJFXzJELGMsMCksdGhpcy50ZXh0dXJlcy5wdXNoKGMpLHRoaXMuZnJhbWVidWZmZXJzLnB1c2goZCl9dGhpcy5xdWFkPXMuY3JlYXRlQnVmZmVyKCkscy5iaW5kQnVmZmVyKHMuQVJSQVlfQlVGRkVSLHRoaXMucXVhZCkscy5idWZmZXJEYXRhKHMuQVJSQVlfQlVGRkVSLG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLDEsLTEsMSwxLC0xLDFdKSxzLlNUQVRJQ19EUkFXKSx0aGlzLmluaXRTaGFkZXJzKCksdGhpcy5pbml0VGV4dHVyZSgpLHRoaXMuc2V0VHJhbnNwYXJlbnRUZXh0dXJlKCksdGhpcy5sb2FkSW1hZ2UoKSxzLmNsZWFyQ29sb3IoMCwwLDAsMCkscy5ibGVuZEZ1bmMocy5TUkNfQUxQSEEscy5PTkVfTUlOVVNfU1JDX0FMUEhBKSx0aGlzLnZpc2libGU9ITAsdGhpcy5ydW5uaW5nPSEwLHRoaXMuaW5pdGVkPSEwLHRoaXMuZGVzdHJveWVkPSExLHRoaXMuc2V0dXBQb2ludGVyRXZlbnRzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkpfTtkLkRFRkFVTFRTPXtpbWFnZVVybDpudWxsLHJlc29sdXRpb246MjU2LGRyb3BSYWRpdXM6MjAscGVydHVyYmFuY2U6LjAzLGludGVyYWN0aXZlOiEwLGNyb3NzT3JpZ2luOiIifSxkLnByb3RvdHlwZT17c2V0dXBQb2ludGVyRXZlbnRzOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3JldHVybiByLnZpc2libGUmJnIucnVubmluZyYmci5pbnRlcmFjdGl2ZX1mdW5jdGlvbiB0KHQsaSl7ZSgpJiZyLmRyb3BBdFBvaW50ZXIodCxyLmRyb3BSYWRpdXMqKGk/MS41OjEpLGk/LjE0Oi4wMSl9dmFyIHI9dGhpczt0aGlzLiRlbC5vbigibW91c2Vtb3ZlLnJpcHBsZXMiLGZ1bmN0aW9uKGUpe3QoZSl9KS5vbigidG91Y2htb3ZlLnJpcHBsZXMsIHRvdWNoc3RhcnQucmlwcGxlcyIsZnVuY3Rpb24oZSl7Zm9yKHZhciByPWUub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlcyxpPTA7aTxyLmxlbmd0aDtpKyspdChyW2ldKX0pLm9uKCJtb3VzZWRvd24ucmlwcGxlcyIsZnVuY3Rpb24oZSl7dChlLCEwKX0pfSxsb2FkSW1hZ2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3M9dGhpcy5jb250ZXh0O3ZhciB0PXRoaXMuaW1hZ2VVcmx8fG4odGhpcy5vcmlnaW5hbENzc0JhY2tncm91bmRJbWFnZSl8fG4odGhpcy4kZWwuY3NzKCJiYWNrZ3JvdW5kSW1hZ2UiKSk7aWYodCE9dGhpcy5pbWFnZVNvdXJjZSlpZih0aGlzLmltYWdlU291cmNlPXQsdGhpcy5pbWFnZVNvdXJjZSl7dmFyIHI9bmV3IEltYWdlO3Iub25sb2FkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtyZXR1cm4gMD09KGUmZS0xKX1zPWUuY29udGV4dDt2YXIgaT10KHIud2lkdGgpJiZ0KHIuaGVpZ2h0KT9zLlJFUEVBVDpzLkNMQU1QX1RPX0VER0U7cy5iaW5kVGV4dHVyZShzLlRFWFRVUkVfMkQsZS5iYWNrZ3JvdW5kVGV4dHVyZSkscy50ZXhQYXJhbWV0ZXJpKHMuVEVYVFVSRV8yRCxzLlRFWFRVUkVfV1JBUF9TLGkpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX1dSQVBfVCxpKSxzLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAscy5SR0JBLHMuUkdCQSxzLlVOU0lHTkVEX0JZVEUsciksZS5iYWNrZ3JvdW5kV2lkdGg9ci53aWR0aCxlLmJhY2tncm91bmRIZWlnaHQ9ci5oZWlnaHQsZS5oaWRlQ3NzQmFja2dyb3VuZCgpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtzPWUuY29udGV4dCxlLnNldFRyYW5zcGFyZW50VGV4dHVyZSgpfSxyLmNyb3NzT3JpZ2luPWEodGhpcy5pbWFnZVNvdXJjZSk/bnVsbDp0aGlzLmNyb3NzT3JpZ2luLHIuc3JjPXRoaXMuaW1hZ2VTb3VyY2V9ZWxzZSB0aGlzLnNldFRyYW5zcGFyZW50VGV4dHVyZSgpfSxzdGVwOmZ1bmN0aW9uKCl7cz10aGlzLmNvbnRleHQsdGhpcy52aXNpYmxlJiYodGhpcy5jb21wdXRlVGV4dHVyZUJvdW5kYXJpZXMoKSx0aGlzLnJ1bm5pbmcmJnRoaXMudXBkYXRlKCksdGhpcy5yZW5kZXIoKSl9LGRyYXdRdWFkOmZ1bmN0aW9uKCl7cy5iaW5kQnVmZmVyKHMuQVJSQVlfQlVGRkVSLHRoaXMucXVhZCkscy52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsMixzLkZMT0FULCExLDAsMCkscy5kcmF3QXJyYXlzKHMuVFJJQU5HTEVfRkFOLDAsNCl9LHJlbmRlcjpmdW5jdGlvbigpe3MuYmluZEZyYW1lYnVmZmVyKHMuRlJBTUVCVUZGRVIsbnVsbCkscy52aWV3cG9ydCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSxzLmVuYWJsZShzLkJMRU5EKSxzLmNsZWFyKHMuQ09MT1JfQlVGRkVSX0JJVHxzLkRFUFRIX0JVRkZFUl9CSVQpLHMudXNlUHJvZ3JhbSh0aGlzLnJlbmRlclByb2dyYW0uaWQpLG8odGhpcy5iYWNrZ3JvdW5kVGV4dHVyZSwwKSxvKHRoaXMudGV4dHVyZXNbMF0sMSkscy51bmlmb3JtMWYodGhpcy5yZW5kZXJQcm9ncmFtLmxvY2F0aW9ucy5wZXJ0dXJiYW5jZSx0aGlzLnBlcnR1cmJhbmNlKSxzLnVuaWZvcm0yZnYodGhpcy5yZW5kZXJQcm9ncmFtLmxvY2F0aW9ucy50b3BMZWZ0LHRoaXMucmVuZGVyUHJvZ3JhbS51bmlmb3Jtcy50b3BMZWZ0KSxzLnVuaWZvcm0yZnYodGhpcy5yZW5kZXJQcm9ncmFtLmxvY2F0aW9ucy5ib3R0b21SaWdodCx0aGlzLnJlbmRlclByb2dyYW0udW5pZm9ybXMuYm90dG9tUmlnaHQpLHMudW5pZm9ybTJmdih0aGlzLnJlbmRlclByb2dyYW0ubG9jYXRpb25zLmNvbnRhaW5lclJhdGlvLHRoaXMucmVuZGVyUHJvZ3JhbS51bmlmb3Jtcy5jb250YWluZXJSYXRpbykscy51bmlmb3JtMWkodGhpcy5yZW5kZXJQcm9ncmFtLmxvY2F0aW9ucy5zYW1wbGVyQmFja2dyb3VuZCwwKSxzLnVuaWZvcm0xaSh0aGlzLnJlbmRlclByb2dyYW0ubG9jYXRpb25zLnNhbXBsZXJSaXBwbGVzLDEpLHRoaXMuZHJhd1F1YWQoKSxzLmRpc2FibGUocy5CTEVORCl9LHVwZGF0ZTpmdW5jdGlvbigpe3Mudmlld3BvcnQoMCwwLHRoaXMucmVzb2x1dGlvbix0aGlzLnJlc29sdXRpb24pLHMuYmluZEZyYW1lYnVmZmVyKHMuRlJBTUVCVUZGRVIsdGhpcy5mcmFtZWJ1ZmZlcnNbdGhpcy5idWZmZXJXcml0ZUluZGV4XSksbyh0aGlzLnRleHR1cmVzW3RoaXMuYnVmZmVyUmVhZEluZGV4XSkscy51c2VQcm9ncmFtKHRoaXMudXBkYXRlUHJvZ3JhbS5pZCksdGhpcy5kcmF3UXVhZCgpLHRoaXMuc3dhcEJ1ZmZlckluZGljZXMoKX0sc3dhcEJ1ZmZlckluZGljZXM6ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlcldyaXRlSW5kZXg9MS10aGlzLmJ1ZmZlcldyaXRlSW5kZXgsdGhpcy5idWZmZXJSZWFkSW5kZXg9MS10aGlzLmJ1ZmZlclJlYWRJbmRleH0sY29tcHV0ZVRleHR1cmVCb3VuZGFyaWVzOmZ1bmN0aW9uKCl7dmFyIGUsaT10aGlzLiRlbC5jc3MoImJhY2tncm91bmQtc2l6ZSIpLG89dGhpcy4kZWwuY3NzKCJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiKSxuPXIodGhpcy4kZWwuY3NzKCJiYWNrZ3JvdW5kLXBvc2l0aW9uIikpO2lmKCJmaXhlZCI9PW8/KChlPXtsZWZ0OndpbmRvdy5wYWdlWE9mZnNldCx0b3A6d2luZG93LnBhZ2VZT2Zmc2V0fSkud2lkdGg9dS53aWR0aCgpLGUuaGVpZ2h0PXUuaGVpZ2h0KCkpOigoZT10aGlzLiRlbC5vZmZzZXQoKSkud2lkdGg9dGhpcy4kZWwuaW5uZXJXaWR0aCgpLGUuaGVpZ2h0PXRoaXMuJGVsLmlubmVySGVpZ2h0KCkpLCJjb3ZlciI9PWkpdmFyIGE9TWF0aC5tYXgoZS53aWR0aC90aGlzLmJhY2tncm91bmRXaWR0aCxlLmhlaWdodC90aGlzLmJhY2tncm91bmRIZWlnaHQpLHM9dGhpcy5iYWNrZ3JvdW5kV2lkdGgqYSxoPXRoaXMuYmFja2dyb3VuZEhlaWdodCphO2Vsc2UgaWYoImNvbnRhaW4iPT1pKXZhciBhPU1hdGgubWluKGUud2lkdGgvdGhpcy5iYWNrZ3JvdW5kV2lkdGgsZS5oZWlnaHQvdGhpcy5iYWNrZ3JvdW5kSGVpZ2h0KSxzPXRoaXMuYmFja2dyb3VuZFdpZHRoKmEsaD10aGlzLmJhY2tncm91bmRIZWlnaHQqYTtlbHNle3ZhciBzPShpPWkuc3BsaXQoIiAiKSlbMF18fCIiLGg9aVsxXXx8czt0KHMpP3M9ZS53aWR0aCpwYXJzZUZsb2F0KHMpLzEwMDoiYXV0byIhPXMmJihzPXBhcnNlRmxvYXQocykpLHQoaCk/aD1lLmhlaWdodCpwYXJzZUZsb2F0KGgpLzEwMDoiYXV0byIhPWgmJihoPXBhcnNlRmxvYXQoaCkpLCJhdXRvIj09cyYmImF1dG8iPT1oPyhzPXRoaXMuYmFja2dyb3VuZFdpZHRoLGg9dGhpcy5iYWNrZ3JvdW5kSGVpZ2h0KTooImF1dG8iPT1zJiYocz10aGlzLmJhY2tncm91bmRXaWR0aCooaC90aGlzLmJhY2tncm91bmRIZWlnaHQpKSwiYXV0byI9PWgmJihoPXRoaXMuYmFja2dyb3VuZEhlaWdodCoocy90aGlzLmJhY2tncm91bmRXaWR0aCkpKX12YXIgYz1uWzBdLGQ9blsxXTtjPXQoYyk/ZS5sZWZ0KyhlLndpZHRoLXMpKnBhcnNlRmxvYXQoYykvMTAwOmUubGVmdCtwYXJzZUZsb2F0KGMpLGQ9dChkKT9lLnRvcCsoZS5oZWlnaHQtaCkqcGFyc2VGbG9hdChkKS8xMDA6ZS50b3ArcGFyc2VGbG9hdChkKTt2YXIgZj10aGlzLiRlbC5vZmZzZXQoKTt0aGlzLnJlbmRlclByb2dyYW0udW5pZm9ybXMudG9wTGVmdD1uZXcgRmxvYXQzMkFycmF5KFsoZi5sZWZ0LWMpL3MsKGYudG9wLWQpL2hdKSx0aGlzLnJlbmRlclByb2dyYW0udW5pZm9ybXMuYm90dG9tUmlnaHQ9bmV3IEZsb2F0MzJBcnJheShbdGhpcy5yZW5kZXJQcm9ncmFtLnVuaWZvcm1zLnRvcExlZnRbMF0rdGhpcy4kZWwuaW5uZXJXaWR0aCgpL3MsdGhpcy5yZW5kZXJQcm9ncmFtLnVuaWZvcm1zLnRvcExlZnRbMV0rdGhpcy4kZWwuaW5uZXJIZWlnaHQoKS9oXSk7dmFyIGw9TWF0aC5tYXgodGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KTt0aGlzLnJlbmRlclByb2dyYW0udW5pZm9ybXMuY29udGFpbmVyUmF0aW89bmV3IEZsb2F0MzJBcnJheShbdGhpcy5jYW52YXMud2lkdGgvbCx0aGlzLmNhbnZhcy5oZWlnaHQvbF0pfSxpbml0U2hhZGVyczpmdW5jdGlvbigpe3ZhciBlPVsiYXR0cmlidXRlIHZlYzIgdmVydGV4OyIsInZhcnlpbmcgdmVjMiBjb29yZDsiLCJ2b2lkIG1haW4oKSB7IiwiY29vcmQgPSB2ZXJ0ZXggKiAwLjUgKyAwLjU7IiwiZ2xfUG9zaXRpb24gPSB2ZWM0KHZlcnRleCwgMC4wLCAxLjApOyIsIn0iXS5qb2luKCJcbiIpO3RoaXMuZHJvcFByb2dyYW09aShlLFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0OyIsImNvbnN0IGZsb2F0IFBJID0gMy4xNDE1OTI2NTM1ODk3OTM7IiwidW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTsiLCJ1bmlmb3JtIHZlYzIgY2VudGVyOyIsInVuaWZvcm0gZmxvYXQgcmFkaXVzOyIsInVuaWZvcm0gZmxvYXQgc3RyZW5ndGg7IiwidmFyeWluZyB2ZWMyIGNvb3JkOyIsInZvaWQgbWFpbigpIHsiLCJ2ZWM0IGluZm8gPSB0ZXh0dXJlMkQodGV4dHVyZSwgY29vcmQpOyIsImZsb2F0IGRyb3AgPSBtYXgoMC4wLCAxLjAgLSBsZW5ndGgoY2VudGVyICogMC41ICsgMC41IC0gY29vcmQpIC8gcmFkaXVzKTsiLCJkcm9wID0gMC41IC0gY29zKGRyb3AgKiBQSSkgKiAwLjU7IiwiaW5mby5yICs9IGRyb3AgKiBzdHJlbmd0aDsiLCJnbF9GcmFnQ29sb3IgPSBpbmZvOyIsIn0iXS5qb2luKCJcbiIpKSx0aGlzLnVwZGF0ZVByb2dyYW09aShlLFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0OyIsInVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7IiwidW5pZm9ybSB2ZWMyIGRlbHRhOyIsInZhcnlpbmcgdmVjMiBjb29yZDsiLCJ2b2lkIG1haW4oKSB7IiwidmVjNCBpbmZvID0gdGV4dHVyZTJEKHRleHR1cmUsIGNvb3JkKTsiLCJ2ZWMyIGR4ID0gdmVjMihkZWx0YS54LCAwLjApOyIsInZlYzIgZHkgPSB2ZWMyKDAuMCwgZGVsdGEueSk7IiwiZmxvYXQgYXZlcmFnZSA9ICgiLCJ0ZXh0dXJlMkQodGV4dHVyZSwgY29vcmQgLSBkeCkuciArIiwidGV4dHVyZTJEKHRleHR1cmUsIGNvb3JkIC0gZHkpLnIgKyIsInRleHR1cmUyRCh0ZXh0dXJlLCBjb29yZCArIGR4KS5yICsiLCJ0ZXh0dXJlMkQodGV4dHVyZSwgY29vcmQgKyBkeSkuciIsIikgKiAwLjI1OyIsImluZm8uZyArPSAoYXZlcmFnZSAtIGluZm8ucikgKiAyLjA7IiwiaW5mby5nICo9IDAuOTk1OyIsImluZm8uciArPSBpbmZvLmc7IiwiZ2xfRnJhZ0NvbG9yID0gaW5mbzsiLCJ9Il0uam9pbigiXG4iKSkscy51bmlmb3JtMmZ2KHRoaXMudXBkYXRlUHJvZ3JhbS5sb2NhdGlvbnMuZGVsdGEsdGhpcy50ZXh0dXJlRGVsdGEpLHRoaXMucmVuZGVyUHJvZ3JhbT1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0OyIsImF0dHJpYnV0ZSB2ZWMyIHZlcnRleDsiLCJ1bmlmb3JtIHZlYzIgdG9wTGVmdDsiLCJ1bmlmb3JtIHZlYzIgYm90dG9tUmlnaHQ7IiwidW5pZm9ybSB2ZWMyIGNvbnRhaW5lclJhdGlvOyIsInZhcnlpbmcgdmVjMiByaXBwbGVzQ29vcmQ7IiwidmFyeWluZyB2ZWMyIGJhY2tncm91bmRDb29yZDsiLCJ2b2lkIG1haW4oKSB7IiwiYmFja2dyb3VuZENvb3JkID0gbWl4KHRvcExlZnQsIGJvdHRvbVJpZ2h0LCB2ZXJ0ZXggKiAwLjUgKyAwLjUpOyIsImJhY2tncm91bmRDb29yZC55ID0gMS4wIC0gYmFja2dyb3VuZENvb3JkLnk7IiwicmlwcGxlc0Nvb3JkID0gdmVjMih2ZXJ0ZXgueCwgLXZlcnRleC55KSAqIGNvbnRhaW5lclJhdGlvICogMC41ICsgMC41OyIsImdsX1Bvc2l0aW9uID0gdmVjNCh2ZXJ0ZXgueCwgLXZlcnRleC55LCAwLjAsIDEuMCk7IiwifSJdLmpvaW4oIlxuIiksWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7IiwidW5pZm9ybSBzYW1wbGVyMkQgc2FtcGxlckJhY2tncm91bmQ7IiwidW5pZm9ybSBzYW1wbGVyMkQgc2FtcGxlclJpcHBsZXM7IiwidW5pZm9ybSB2ZWMyIGRlbHRhOyIsInVuaWZvcm0gZmxvYXQgcGVydHVyYmFuY2U7IiwidmFyeWluZyB2ZWMyIHJpcHBsZXNDb29yZDsiLCJ2YXJ5aW5nIHZlYzIgYmFja2dyb3VuZENvb3JkOyIsInZvaWQgbWFpbigpIHsiLCJmbG9hdCBoZWlnaHQgPSB0ZXh0dXJlMkQoc2FtcGxlclJpcHBsZXMsIHJpcHBsZXNDb29yZCkucjsiLCJmbG9hdCBoZWlnaHRYID0gdGV4dHVyZTJEKHNhbXBsZXJSaXBwbGVzLCB2ZWMyKHJpcHBsZXNDb29yZC54ICsgZGVsdGEueCwgcmlwcGxlc0Nvb3JkLnkpKS5yOyIsImZsb2F0IGhlaWdodFkgPSB0ZXh0dXJlMkQoc2FtcGxlclJpcHBsZXMsIHZlYzIocmlwcGxlc0Nvb3JkLngsIHJpcHBsZXNDb29yZC55ICsgZGVsdGEueSkpLnI7IiwidmVjMyBkeCA9IHZlYzMoZGVsdGEueCwgaGVpZ2h0WCAtIGhlaWdodCwgMC4wKTsiLCJ2ZWMzIGR5ID0gdmVjMygwLjAsIGhlaWdodFkgLSBoZWlnaHQsIGRlbHRhLnkpOyIsInZlYzIgb2Zmc2V0ID0gLW5vcm1hbGl6ZShjcm9zcyhkeSwgZHgpKS54ejsiLCJmbG9hdCBzcGVjdWxhciA9IHBvdyhtYXgoMC4wLCBkb3Qob2Zmc2V0LCBub3JtYWxpemUodmVjMigtMC42LCAxLjApKSkpLCA0LjApOyIsImdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRChzYW1wbGVyQmFja2dyb3VuZCwgYmFja2dyb3VuZENvb3JkICsgb2Zmc2V0ICogcGVydHVyYmFuY2UpICsgc3BlY3VsYXI7IiwifSJdLmpvaW4oIlxuIikpLHMudW5pZm9ybTJmdih0aGlzLnJlbmRlclByb2dyYW0ubG9jYXRpb25zLmRlbHRhLHRoaXMudGV4dHVyZURlbHRhKX0saW5pdFRleHR1cmU6ZnVuY3Rpb24oKXt0aGlzLmJhY2tncm91bmRUZXh0dXJlPXMuY3JlYXRlVGV4dHVyZSgpLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELHRoaXMuYmFja2dyb3VuZFRleHR1cmUpLHMucGl4ZWxTdG9yZWkocy5VTlBBQ0tfRkxJUF9ZX1dFQkdMLDEpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX01BR19GSUxURVIscy5MSU5FQVIpLHMudGV4UGFyYW1ldGVyaShzLlRFWFRVUkVfMkQscy5URVhUVVJFX01JTl9GSUxURVIscy5MSU5FQVIpfSxzZXRUcmFuc3BhcmVudFRleHR1cmU6ZnVuY3Rpb24oKXtzLmJpbmRUZXh0dXJlKHMuVEVYVFVSRV8yRCx0aGlzLmJhY2tncm91bmRUZXh0dXJlKSxzLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAscy5SR0JBLHMuUkdCQSxzLlVOU0lHTkVEX0JZVEUsYyl9LGhpZGVDc3NCYWNrZ3JvdW5kOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kZWxbMF0uc3R5bGUuYmFja2dyb3VuZEltYWdlOyJub25lIiE9ZSYmKHRoaXMub3JpZ2luYWxJbmxpbmVDc3M9ZSx0aGlzLm9yaWdpbmFsQ3NzQmFja2dyb3VuZEltYWdlPXRoaXMuJGVsLmNzcygiYmFja2dyb3VuZEltYWdlIiksdGhpcy4kZWwuY3NzKCJiYWNrZ3JvdW5kSW1hZ2UiLCJub25lIikpfSxyZXN0b3JlQ3NzQmFja2dyb3VuZDpmdW5jdGlvbigpe3RoaXMuJGVsLmNzcygiYmFja2dyb3VuZEltYWdlIix0aGlzLm9yaWdpbmFsSW5saW5lQ3NzfHwiIil9LGRyb3BBdFBvaW50ZXI6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXBhcnNlSW50KHRoaXMuJGVsLmNzcygiYm9yZGVyLWxlZnQtd2lkdGgiKSl8fDAsbz1wYXJzZUludCh0aGlzLiRlbC5jc3MoImJvcmRlci10b3Atd2lkdGgiKSl8fDA7dGhpcy5kcm9wKGUucGFnZVgtdGhpcy4kZWwub2Zmc2V0KCkubGVmdC1pLGUucGFnZVktdGhpcy4kZWwub2Zmc2V0KCkudG9wLW8sdCxyKX0sZHJvcDpmdW5jdGlvbihlLHQscixpKXtzPXRoaXMuY29udGV4dDt2YXIgbj10aGlzLiRlbC5pbm5lcldpZHRoKCksYT10aGlzLiRlbC5pbm5lckhlaWdodCgpLHU9TWF0aC5tYXgobixhKTtyLz11O3ZhciBoPW5ldyBGbG9hdDMyQXJyYXkoWygyKmUtbikvdSwoYS0yKnQpL3VdKTtzLnZpZXdwb3J0KDAsMCx0aGlzLnJlc29sdXRpb24sdGhpcy5yZXNvbHV0aW9uKSxzLmJpbmRGcmFtZWJ1ZmZlcihzLkZSQU1FQlVGRkVSLHRoaXMuZnJhbWVidWZmZXJzW3RoaXMuYnVmZmVyV3JpdGVJbmRleF0pLG8odGhpcy50ZXh0dXJlc1t0aGlzLmJ1ZmZlclJlYWRJbmRleF0pLHMudXNlUHJvZ3JhbSh0aGlzLmRyb3BQcm9ncmFtLmlkKSxzLnVuaWZvcm0yZnYodGhpcy5kcm9wUHJvZ3JhbS5sb2NhdGlvbnMuY2VudGVyLGgpLHMudW5pZm9ybTFmKHRoaXMuZHJvcFByb2dyYW0ubG9jYXRpb25zLnJhZGl1cyxyKSxzLnVuaWZvcm0xZih0aGlzLmRyb3BQcm9ncmFtLmxvY2F0aW9ucy5zdHJlbmd0aCxpKSx0aGlzLmRyYXdRdWFkKCksdGhpcy5zd2FwQnVmZmVySW5kaWNlcygpfSx1cGRhdGVTaXplOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kZWwuaW5uZXJXaWR0aCgpLHQ9dGhpcy4kZWwuaW5uZXJIZWlnaHQoKTtlPT10aGlzLmNhbnZhcy53aWR0aCYmdD09dGhpcy5jYW52YXMuaGVpZ2h0fHwodGhpcy5jYW52YXMud2lkdGg9ZSx0aGlzLmNhbnZhcy5oZWlnaHQ9dCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRlbC5vZmYoIi5yaXBwbGVzIikucmVtb3ZlQ2xhc3MoImpxdWVyeS1yaXBwbGVzIikucmVtb3ZlRGF0YSgicmlwcGxlcyIpLHRoaXMuJGNhbnZhcy5yZW1vdmUoKSx0aGlzLnJlc3RvcmVDc3NCYWNrZ3JvdW5kKCksdGhpcy5kZXN0cm95ZWQ9ITB9LHNob3c6ZnVuY3Rpb24oKXt0aGlzLnZpc2libGU9ITAsdGhpcy4kY2FudmFzLnNob3coKSx0aGlzLmhpZGVDc3NCYWNrZ3JvdW5kKCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLnZpc2libGU9ITEsdGhpcy4kY2FudmFzLmhpZGUoKSx0aGlzLnJlc3RvcmVDc3NCYWNrZ3JvdW5kKCl9LHBhdXNlOmZ1bmN0aW9uKCl7dGhpcy5ydW5uaW5nPSExfSxwbGF5OmZ1bmN0aW9uKCl7dGhpcy5ydW5uaW5nPSEwfSxzZXQ6ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJkcm9wUmFkaXVzIjpjYXNlInBlcnR1cmJhbmNlIjpjYXNlImludGVyYWN0aXZlIjpjYXNlImNyb3NzT3JpZ2luIjp0aGlzW2VdPXQ7YnJlYWs7Y2FzZSJpbWFnZVVybCI6dGhpcy5pbWFnZVVybD10LHRoaXMubG9hZEltYWdlKCl9fX07dmFyIGY9ZS5mbi5yaXBwbGVzO2UuZm4ucmlwcGxlcz1mdW5jdGlvbih0KXtpZighaCl0aHJvdyBuZXcgRXJyb3IoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYkdMLCB0aGUgT0VTX3RleHR1cmVfZmxvYXQgZXh0ZW5zaW9uIG9yIHJlbmRlcmluZyB0byBmbG9hdGluZyBwb2ludCB0ZXh0dXJlcy4iKTt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjE/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpOnZvaWQgMDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxvPWkuZGF0YSgicmlwcGxlcyIpLG49ZS5leHRlbmQoe30sZC5ERUZBVUxUUyxpLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIHQmJnQpOyhvfHwic3RyaW5nIiE9dHlwZW9mIHQpJiYobz8ic3RyaW5nIj09dHlwZW9mIHQmJmQucHJvdG90eXBlW3RdLmFwcGx5KG8scik6aS5kYXRhKCJyaXBwbGVzIixvPW5ldyBkKHRoaXMsbikpKX0pfSxlLmZuLnJpcHBsZXMuQ29uc3RydWN0b3I9ZCxlLmZuLnJpcHBsZXMubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBlLmZuLnJpcHBsZXM9Zix0aGlzfX0pOwo="}},"time_used":75,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":74,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/#","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.191Z","timestamp":1785126646191,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\ncache-control: no-store, no-cache, must-revalidate\r\npragma: no-cache\r\ncontent-type: text/html; charset=UTF-8\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Google Maps","description":"Google Maps is a web mapping service. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bicycle and air, or public transportation.","website":"https://maps.google.com","common_platform_enumeration":"","icon":"Google Maps.svg","categories":["Maps"]},{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]},{"name":"Swiper","description":"Swiper is a JavaScript library that creates modern touch sliders with hardware-accelerated transitions.","website":"https://swiperjs.com","common_platform_enumeration":"","icon":"Swiper.svg","categories":["JavaScript libraries"]},{"name":"Highlight.js","description":"","website":"https://highlightjs.org/","common_platform_enumeration":"","icon":"Highlight.js.png","categories":["JavaScript libraries"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"Slick","description":"","website":"https://kenwheeler.github.io/slick","common_platform_enumeration":"","icon":"Slick.svg","categories":["JavaScript libraries"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"cdnjs","description":"cdnjs is a free distributed JS library delivery service.","website":"https://cdnjs.com","common_platform_enumeration":"","icon":"cdnjs.svg","categories":["CDN"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"particles.js","description":"Particles.js is a JavaScript library for creating particles.","website":"https://github.com/VincentGarreau/particles.js","common_platform_enumeration":"","icon":"","categories":["JavaScript graphics"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]}],"data":{"size":36842,"size_decoded":8199,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, ASCII text, with very long lines (1904)","md5":"0bc8214355a6d77eb02a719607883b7b","sha1":"3241a24581043f9b891a3555b4a7a2744f7e4bca","sha256":"2b88afc94d637b79ad1b602bc6f084ce0336d1062ef1e9819a842a36ebff95a7","sha512":"969db3e67a8477f2ea57db9acf222a23a81a5ae6d486ad6ca849a7541f8ce4061f511cb09716352c1435ae7de5745ef0137a72133ef982818b52b2db72cdcf41","ssdeep":"384:39PUuUGneTcqhuOev5A8h6b9oMqkjCLsVgMOM3wuasx2MgbGYBjmu1:pUuUmHDG8KCMq21VgMOM3w/9mu","tlshash":"c0f24229a8f110230097a0d67a616f5f6fb1ea0bda1b9a1432fc4bd85fd3d99cd0365c","first_seen":"2026-07-27T03:51:33.503345Z","last_seen":"2026-07-27T04:32:40.438285Z","times_seen":3,"resource_available":false,"data":"ICAKPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbiI+CgoKCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MTo0MyBHTVQgLS0+CjwhLS0gQWRkZWQgYnkgSFRUcmFjayAtLT48bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiAvPjwhLS0gL0FkZGVkIGJ5IEhUVHJhY2sgLS0+CjxoZWFkPgogICAgCgogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDx0aXRsZT5DcnlwdG9wbGMgfHwgSG9tZTwvdGl0bGU+CiAgICA8IS0tRmF2aWNvbiBhZGQtLT4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJhc3NldHMvaW1hZ2VzL2xvZ28vbG9nbzEuaHRtbCI+CiAgICA8IS0tYm9vdHN0cmFwIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1mb250LWF3ZXNvbWUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLSBMaWdodGNhc2UgIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9saWdodGNhc2UuY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLVdPVyBDc3MtLT4KICAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2FuaW1hdGUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBTbGlkZXIgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBOYXYgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrbmF2Lm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3dpcGVyICBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3Mvc3dpcGVyLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3R5bGUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS0gVGhlYW0gQ29sb3IgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvY3NzL2NvbG9yYmEzNmJhMzZiYTM2LmNzcz9jb2xvcj0yZWNjNzEiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tUmVzcG9uc2l2ZSBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3MvcmVzcG9uc2l2ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgoKCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9pb24ucmFuZ2VTbGlkZXIuY3NzIj4KICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJhc3NldHMvY3NzL3Jhbmdlci1zdHlsZS5jc3MiPgogICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImFzc2V0cy9jc3MvaW9uLnJhbmdlU2xpZGVyLnNraW5GbGF0LmNzcyI+CiAgICA8c3R5bGU+CiAgICAgICAucHJpY2UtdGFibGUgewogICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7CiAgICAgICB9CiAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Zyb250LzIvY3NzL3N0eWxlLmNzcyI+CiAgICAKICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tb2Rlcm5penIuanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zd2VldGFsZXJ0LzEuMS4zL3N3ZWV0YWxlcnQubWluLmh0bWwiPgoKICAgIDxzY3JpcHQgc3JjPSIuLi9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvc3dlZXRhbGVydC8xLjEuMy9zd2VldGFsZXJ0Lm1pbi0yLmh0bWwiPjwvc2NyaXB0PgogICAgCgogICAgCiAKPC9oZWFkPgo8Ym9keSAgZGF0YS1zcHk9InNjcm9sbCI+CiAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MzBweDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IHdpZHRoOiAxMDAlOyI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2lkZ2V0LmNvaW5saWIuaW8vd2lkZ2V0P3R5cGU9aG9yaXpvbnRhbF92MiZhbXA7dGhlbWU9bGlnaHQmYW1wO3ByZWZfY29pbl9pZD0xNTA1JmFtcDtpbnZlcnRfaG92ZXI9IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIzNnB4IiBzY3JvbGxpbmc9ImF1dG8iIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVyPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjA7Ij48L2lmcmFtZT4KICAgIDwvZGl2Pgo8IS0tIFN0YXJ0IFByZS1Mb2FkZXItLT4KCjxkaXYgaWQ9InByZWxvYWRlciI+CiAgICA8ZGl2IGRhdGEtbG9hZGVyPSJjaXJjbGUtc2lkZSI+PC9kaXY+CjwvZGl2Pgo8IS0tIEVuZCBQcmVsb2FkIC0tPgo8ZGl2IGNsYXNzPSJhbmltYXRpb24tZWxlbWVudCI+CjwhLS0gRW5kIFByZS1Mb2FkZXIgLS0+CjwhLS1zdXBwb3J0IGJhciAgdG9wIHN0YXJ0LS0+CjxkaXYgY2xhc3M9InN1cHBvcnQtYmFyLXRvcCB3b3cgc2xpZGVJbkxlZnQiIGRhdGEtd293LWR1cmF0aW9uPSIycyIgaWQ9InJhaW5kcm9wcy1ncmVlbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAYml0aWZpbmV4LmxpdmUiPiA8aSBjbGFzcz0iZmEgZmEtZW52ZWxvcGUgZW1haWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+IHN1cHBvcnRAYml0aWZpbmV4LmxpdmU8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+IDxpIGNsYXNzPSJmYSBmYS1waG9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4gKzEzMzAyNjUwMDQ1PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB0ZXh0LXJpZ2h0IGJvdW5jZUluIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtYWRtaW4iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxvZ2luLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXIiPjwvaT4gTE9HSU4gPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXItcGx1cyI+PC9pPiBSRUdJU1RFUjwvYT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdXBwb3J0LWJhci1zb2NpYWwtbGlua3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPCEtLXN1cHBvcnQgYmFyICB0b3AgZW5kLS0+CjwhLS1tYWluIG1lbnUgc2VjdGlvbiBzdGFydC0tPgo8bmF2IGNsYXNzPSJtYWluLW1lbnUgd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyIgPgogIDxwIHN0eWxlPSJmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSI+CiAgICAgIAogICAgICAgICAgICAgICAgYml0aWZpbmV4ICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05IHRleHQtcmlnaHQiPgogICAgICAgICAgICAgICAgPHVsIGlkPSJoZWFkZXItbWVudSIgY2xhc3M9ImhlYWRlci1uYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgucGhwIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imhvdy1pdC13b3Jrcy5waHAiPkhvdyBpdCBXb3JrczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJ0ZXJtLW9mLXVzZS5waHAiPlRlcm1zIG9mIHVzZTwvYT48L2xpPjxsaT48YSBocmVmPSIyLnBocCI+UGxhbnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29udGFjdC5waHAiPkNvbnRhY3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSIjIj5BY2NvdW50IDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZWdhLW1lbnUgbWVnYS1tZW51MSBtZWdhLW1lbnUyIG1lbnUtcG9zdGlvbi00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lZ2EtbGlzdCBtZWdhLWxpc3QxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSJsb2dpbi5waHAiPkxvZ2luPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icGFnZS1zY3JvbGwiIGhyZWY9InJlZ2lzdGVyLnBocCI+UmVnaXN0ZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvbmF2PgoKPCEtLW1haW4gbWVudSBzZWN0aW9uIGVuZC0tPgoKICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBzdGFydC0tPgogICAgPHNlY3Rpb24gaWQ9InBhcnRpY2xlcy1qcyIgY2xhc3M9ImhlYWRlci1hcmVhIGhlYWRlci1iZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ltYWdlcy9zbGlkZXIvbG9nbzQuanBnJykiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbi10b3AtcGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWZpcnN0IHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48aDEgY2xhc3M9ImZyb250aGVhZCIgYWxpZ249ImNlbnRlciI+PGJyPjwvaDE+PGgxIGNsYXNzPSJmcm9udGhlYWQiIGFsaWduPSJjZW50ZXIiPjxicj48L2gxPjxoMSBjbGFzcz0iZnJvbnRoZWFkIiBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0iIzY2RkYzMyI+PGZvbnQgY29sb3I9IiNGRkZGRkYiPjxiPmJpdGlmaW5leDxiPjxicj48Yj5DUllQVE9DVVJSRU5DWSBJTlZFU1RNRU5UIDwvYj48L2ZvbnQ+PC9mb250PjwvaDE+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAxLjVlbTsiIGNsYXNzPSIgd293IHNsaWRlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxkaXYgYWxpZ249ImNlbnRlciI+PGg0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgY29sb3I9IiNGRkZGRkYiPlNpZ24gdXAgYW5kIFN0YXJ0IEludmVzdGluZywgYW5kIGdldCBhbWF6aW5nIG9mZmVycyBhbmQgYm9udXNlcyB3ZWVrbHkgb24geW91ciBBY2NvdW50PC9mb250PjwvaDQ+PC9kaXY+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24tYm90dG9tLXBhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLXNlYXJjaC1mcm9tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBlbmQtLT4KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBzdGFydCAtLT4KICAgIDxkaXYgY2xhc3M9ImFkbWluLXNlY3Rpb24gd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIGNvbnRlbnQgc3RhcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HZXQgYWNjZXNzIHRvIFlvdXIgYWNjb3VudDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBlbmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdXNlciBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJsb2dpbi5waHAiPjxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiI+c2lnbiBpbjwvYnV0dG9uPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InJlZ2lzdGVyIj5yZWdpc3RlciBub3c8L2J1dHRvbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIHVzZXIgZW5kIC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4tY29udGVudCBlbmQgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBlbmQgLS0+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBTdGFydCAtLT4KICAgIDxzZWN0aW9uICBjbGFzcz0iY2lyY2xlLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHNlY3Rpb24tYmFja2dyb3VuZCB3b3cgc2xpZGVJblVwIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPldIQVQgSVMgPHNwYW4+Yml0aWZpbmV4Pzwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkyODBmMmE0LnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNSWVBUTyBJbnZlc3RtZW50PC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc2VydmljZSBtYWtlcyBJbnZlc3RpbmcgaW4gQ3J5cHRvY3VycmVuY3kgYWNjZXNzaWJsZSB0byBldmVyeW9uZS4gTm8gbG9uZ2VyIGlzIGl0IHJlcXVpcmVkIHRvIGJ1eSBleHBlbnNpdmUgZXF1aXBtZW50IGFuZCB3YXN0ZSB5b3VyIHRpbWUgb24gc2V0dGluZyBpdCB1cC4gU2ltcGx5IHNlbGVjdCB5b3VyIGRlc2lyZWQgcGxhbiBhbmQgZ2VuZXJhdGUgcmV2ZW51ZSE8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkzMWRjYmRjLnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkVBU1kgSU5WRVNUSU5HPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5JbnZlc3RpbmcgaXMgbWFkZSBzaW1wbGUgd2l0aCBiaXRpZmluZXguIERlcG9zaXQgdG8gc3RhcnQgZWFybmluZy4gV2l0aGRyYXcgd2l0aGluIGRheXMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5M2Q1MzI1NS5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5QUklWQVRFPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc3lzdGVtcyBhcmUgc2VjdXJlIGFuZCBzYWZlLiBObyBJbnRydXNpb24uIFdlIGhhdmUgdGhlIGJlc3QgVGVhbSEgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5NDY2N2U1My5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TRUNVUklUWTwvaDY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WW91ciB3YWxsZXQgaXMgc2VjdXJlIHdpdGggb3VyIDIgZmFjdG9yIHNlY3VyaXR5IHN5c3RlbS4gV2UgYWxlcnQgeW91IGlmIHRoZXJlIGlzIGEgbG9naW4gYXR0ZW1wdDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBFbmQgLS0+CjxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KCjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBTdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbi1wYWRkaW5nIHNhbGUtc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWhlYWRlciB3b3cgc2xpZGVJbkRvd24iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5hYm91dCA8c3Bhbj4gYml0aWZpbmV4IDwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgd2lkdGg9IjMxNSIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvR21PemloNkkxenMiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHAgY2xhc3M9ImFib3V0LWNvbW11bml0eS10ZXh0Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDxhIGhyZWY9ImF2Lmh0bWwiPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgIDxpbWcgc3JjPSJhdi5qcGciIGhlaWdodD0iMzE1IiB3aWR0aD0iMzE1Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDwvYT4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPC9wPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCB0ZXh0LWp1c3RpZnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iICJzZWdvZT0iIiB1aT0iIiBhcmlhbD0iIiB2ZXJkYW5hPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWE9IiIgc2Fucy1zZXJpZj0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweD0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+TGV0IHlvdXIgY29tcHV0ZXIgcmVsYXguIE91ciBDbG91ZCBzb2x1dGlvbiB3aWxsIG1pbmUgYW5kIGhhc2ggd2hhdGV2ZXIgY3J5cHRvY3VycmVuY3kgeW91IG5lZWQuIEdldCBzdGFydGVkIHdpdGggaW1tZWRpYXRlIG1pbmluZyBhbmQgaW52ZXN0bWVudCByZXN1bHRzLjwvZm9udD48L3NwYW4+PGRpdj48c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iInNlZ29lPSIiIHVpPSIiIGFyaWFsLD0iIiB2ZXJkYW5hLD0iIiBzYW5zPSIiIHVuaWNvZGU9IiIgdGFob21hLD0iIiBzYW5zLXNlcmlmOz0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweDs9IiI+PGRpdiBhbGlnbj0ibGVmdCIgc3R5bGU9IiIgb3Blbj0iIiBzYW5zPSIiIGx1Y2lkYT0iIiBncmFuZGU9IiIgc2Vnb2U9IiIgdWk9IiIgYXJpYWwsPSIiIHZlcmRhbmEsPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWEsPSIiIHNhbnMtc2VyaWY7PSIiIGZvbnQtc2l6ZTo9IiIgbWVkaXVtID0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+KkNyeXB0b2N1cnJlbmN5IEludmVzdG1lbnRzIHNob3VsZCBiZSBvbmUgb2YgdGhlIGJlc3QgYW5kIGZhc3QgZ3Jvd2luZyBzb3VyY2Ugb2YgaW5jb21lIG9yIGludmVzdG1lbnQuIFRoZSBhYm92ZSBudW1iZXJzIHJlZmxlY3Qgbm8gZGlmZmljdWx0eSBpbmNyZWFzZS4gSW52ZXN0aW5nIGludm9sdmVzIHJpc2ssIGluY2x1ZGluZyBwb3NzaWJsZSBsb3NzIG9mIHByaW5jaXBhbC4gQnV0IGhlcmUgYXQgYml0aWZpbmV4IHdlIGhhdmUgYSAxMDAlIGNhc2gtYmFjayBwb2xpY3kgaW4gc3VjaCBjYXNlcy4mbmJzcDs8YnI+PGJyPkluIGFkZGl0aW9uIHRvIHRoZSBub3JtYWwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGludmVzdGluZywgY3J5cHRvY3VycmVuY3kgaW52ZXN0bWVudHMgYW5kIHJlbGF0ZWQgaW5zdHJ1bWVudHMgbWF5IGludm9sdmUgcmlzayBvZiBjYXBpdGFsIGxvc3MgZnJvbSB1bmZhdm9yYWJsZSBmbHVjdHVhdGlvbiBpbiBjcnlwdG9jdXJyZW5jeSB2YWx1ZXMsIGV4Y2hhbmdlLXJlbGF0ZWQgcmlza3MsIHBvbGljeSByaXNrcywgbGlxdWlkaXR5LCBhbmQgbWFya2V0IHByaWNlIGZsdWN0dWF0aW9uIGFuZCBkZW1hbmQuJm5ic3A7PGJyPjxicj5UaGUgc3RyYXRlZ2llcyBkaXNjdXNzZWQgYXJlIHN0cmljdGx5IGZvciBpbGx1c3RyYXRpdmUgYW5kIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCBzaG91bGQgbm90IGJlIGNvbnN0cnVlZCBhcyBhIHJlY29tbWVuZGF0aW9uIHRvIHB1cmNoYXNlLiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbnkgc3RyYXRlZ2llcyBkaXNjdXNzZWQgd2lsbCBiZSBlZmZlY3RpdmUuIFRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBjb21wbGV0ZSBhbmFseXNpcyBvZiBldmVyeSBtYXRlcmlhbCBmYWN0IHJlc3BlY3RpbmcgYW55IHN0cmF0ZWd5LiBUaGUgZXhhbXBsZXMgcHJlc2VudGVkIGRvIG5vdCB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBjb21taXNzaW9ucywgdGF4IGltcGxpY2F0aW9ucywgb3Igb3RoZXIgdHJhbnNhY3Rpb25zIGNvc3RzLCB3aGljaCBtYXkgc2lnbmlmaWNhbnRseSBhZmZlY3QgdGhlIGVjb25vbWljIGNvbnNlcXVlbmNlcyBvZiBhIGdpdmVuIHN0cmF0ZWd5LjwvZm9udD48L2Rpdj48ZGl2PjxiPjxicj48L2I+PC9kaXY+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBlbmQtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc2VydmljZSBzZWN0aW9uIHN0YXJ0LS0+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uLXBhZGRpbmcgc2VydmljZS1zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUgdGV4dC1jZW50ZXIgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPk91ciA8c3Bhbj4gU2VydmljZXMgPC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSIjIiBhbHQ9IiI+PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwPldlIG9mZmVyIGV2ZXJ5b25lIHRoZSBjaGFuY2UgdG8gZWFybiBwcm9maXRzIGZyb20gaW52ZXN0aW5nIHRoZSBtb3N0IHByb2ZpdGFibGUgZS1jdXJyZW5jaWVzLiBXZSBoYXZlIHRoZSBiZXN0IG5ldHdvcmsgYW5kIHRlY2hub2xvZ3kgdG8gZW5zdXJlIHRoaXMhPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcm9ja2V0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD51cHBlciBGYXN0IFJlcGVhdDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXdyZW5jaCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+RUFTWSBTRVRVUDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1vbmV5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5JTlZFU1RNRU5UPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbW9uZXkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPldJVEhEUkFXPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkZVTExZIERZTkFNSUM8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2Utd3JhcHBlciB0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+QURNSU4gREFTSEJPQVJEPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBMQU5TPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtd3JlbmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5BRE1JTiBUT09MUzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1zZXJ2aWNlIHNlY3Rpb24gZW5kLS0+Cgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+CjwhLS0gU2FsZSBTZWN0aW9uIFN0YXJ0IC0tPgo8c2VjdGlvbiBjbGFzcz0ic2FsZS1zZWN0aW9uIHNlY3Rpb24tcGFkZGluZyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8IS0tIFNhbGUgSGVhZGVyIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5OZXcgPHNwYW4+Q3VzdG9tZXI/PC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gU2FsZSBoZWFkZXIgRW5kIC0tPgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIENvbnRlbnQgU3RhcnQgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIiBzdHlsZT0icGFkZGluZzogOHB4IDIwcHg7IiBocmVmPSJob3ctaXQtd29ya3MuaHRtbCI+SG93IEl0IFdvcmtzPzwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIGNvbnRlbnQgZW5kIC0tPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS0gU2FsZSBTZWN0aW9uIEVuZCAtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc3RhcnQgaW52ZXN0bWVudCBwbGFuLS0+CjxTZWN0aW9uIGNsYXNzPSJwcmljaW5nMi1zZWN0aW9uIHNlY3Rpb24tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIHNlY3Rpb24tcGFkZGluZyBwYWRkaW5nLWJvdHRvbS0wIHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PdXIgYXdlc29tZTxzcGFuPiBwbGFuczwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5DaGVjayBvdXQgb3VyIGFmZm9yZGFibGUgYW5kIGVmZmljaWVudCBwbGFucy4gWW91IGNhbiBhbHdheXMgdXBncmFkZSB5b3VyIHBhY2thZ2VzLiZuYnNwOzwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgIExpc3QxIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctbGlzdDEgcHJpY2luZy1saXN0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctdGh1bWIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWNlbnRlciIgc3R5bGU9ImNvbG9yOiAjZmZmO3BhZGRpbmctdG9wOiAyMHB4OyI+UGxhbnM8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNlcnZlciIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctaGVhZGVyMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+U1RBUlRFUjwvaDU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UcmFkaW5nPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1hbW91bnQxIj48cD4kPC9wPjxzcGFuPiAzMDAwPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWluZm8xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkludmVzdCBXZWVrbHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPldlZWtseSBXaXRoZHJhd2FsczwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+UGF5b3V0cyBQcm9jZXNzZWQgV2l0aGluIDcyIEhvdXJzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4yNCBIb3VycyBTZXJ2aWNlPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HdWFyYW50ZWVkIFBheW91dHM8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJyZWdpc3Rlci5waHAiPk1vcmUgUGxhbnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcmljaW5nIExpc3QxIEVuZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBFbmQgLS0+CgoKCgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KPCEtLWVuZCBzdGFydCBpbnZlc3RtZW50IHBsYW4tLT4KCgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+Cgo8IS0tcGF5bWVudCBtZXRob2Qgc2VjdGlvbiBzdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0iY2xpZW50LXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIHdvdyB6b29tSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxoMj5QQVlNRU5UIDxzcGFuPiBXRSBBQ0NFUFQ8L3NwYW4+PC9oMj4KICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gc2VjdGlvbi1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGllbnQtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dpcGVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItY29udGFpbmVyIGNsaWVudC1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzU5ZjgwOWM5MzFjYjAucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjY1NjBoNC5wbmciIGFsdD0iY2xpZW50Ij48L2E+PC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvMTUwODgyNjU3Nmg1LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvY29pbm1hbWEucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSI+PGRpdiBjbGFzcz0ib3VyLWNsaWVudCB3b3cgcm90YXRlSW4iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+PGEgaHJlZj0iIyI+PGltZyBjbGFzcz0iaW1nLXJlc3BvbnNpdmUiIHNyYz0iYXNzZXRzL2ltYWdlcy8xNTA4NzQwNzcwaDYucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjgyMjg2MGg4LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBZGQgQXJyb3dzIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLWJ1dHRvbi1uZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItYnV0dG9uLXByZXYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3VibGUtbGVmdCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIGNsaWVudCBjb250YWluZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBjbGllbnQgbGlzdC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBzd2lwZXIgd3JhcHBlciAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+PCEtLSByb3cgLS0+CiAgICA8L2Rpdj48IS0tIGNvbnRhaW5lciAtLT4KPC9zZWN0aW9uPgo8IS0tZW5kIHBheW1lbnQgbWV0aG9kIHNlY3Rpb24gc3RhcnQtLT4KPCEtLWZvb3RlciBhcmVhIHN0YXJ0LS0+Cjxmb290ZXIgaWQ9ImNvbnRhY3QiIGNsYXNzPSJmb290ZXItYXJlYSI+CiAgICA8IS0tZm9vdGVyIGFyZWEgc3RhcnQtLT4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zdXBwb3J0LWJhciI+CiAgICAgICAgICAgIDwhLS0gRm9vdGVyIFN1cHBvcnQgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXN1cHBvcnQtbGlzdCI+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIxcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWhlYWRwaG9uZXMiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MjQvNyBDdXN0b21lciBTdXBwb3J0PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0id293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjFzIiBkYXRhLXdvdy1kZWxheT0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItdGh1bWIiPjxpIGNsYXNzPSJmYSBmYS1lbnZlbG9wZSI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJjb250YWN0LnBocCI+c3VwcG9ydEBiaXRpZmluZXgubGl2ZTwvYT48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWNvbW1lbnRzLW8iPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+RnJpZW5kbHkgU3VwcG9ydCBUaWNrZXQ8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSI0cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLXBob25lIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisxMzMwMjY1MDA0NTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIEZvb3RlciBTdXBwb3J0IEVuZCAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgY29sLXNtLTEyIHdvdyBmYWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIChjKSAyMDEzIGJpdGlmaW5leCAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtc20tMTIgd293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjNzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1zbS0xMiB3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InRlcm0tb2YtdXNlLnBocCIgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5UZXJtIE9mIFVzZTwvYT4gfAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJwcml2YWN5LXBvbGljeS5waHAiIGNsYXNzPSJ0ZXh0LXJpZ2h0IiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5Qcml2YWN5IFBvbGljeTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJiYWNrLXRvLXRvcCIgY2xhc3M9InNjcm9sbC10b3AgYmFjay10by10b3AiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IiIgdGl0bGU9IiIgPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtdXAiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgbGkuZXhwb3J0LW1haW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KPC9zdHlsZT4KPCEtLUdvb2dsZSBNYXAgQVBpIEtleS0tPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT1BSXphU3lBSHpQU1YyanNoYmpJOGZxbkNfQzRMMDhmZm5qNUVOM0EiPjwvc2NyaXB0Pgo8IS0tanF1ZXJ5IHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4gCgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tIEdtYXAgTG9hZCBIZXJlIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2dtYXBzLmpzIj48L3NjcmlwdD4KPCEtLSBNYXAgSnMgRmlsZSBMb2FkIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL21hcC1zY3JpcHRiYTM2YmEzNmJhMzYuaHRtbD9jb2xvcj0yZWNjNzEiPjwvc2NyaXB0Pgo8IS0tIEhpZ2hsaWdodCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2hpZ2hsaWdodC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tSnF1ZXJ5IFVpIFNsaWRlciBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS11aS1zbGlkZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLUNpcmNsZWZ1bCBKcyBGaWxlIExvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9qcXVlcnkuY2lyY2xpZnVsLmpzIj48L3NjcmlwdD4KPCEtLUNvdW50ZXJVcCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5jb3VudGVydXAubWluLmpzIj48L3NjcmlwdD4KPCEtLSBSaXBwbGVzICBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5yaXBwbGVzLW1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1TbGljayBOYXYgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LnNsaWNrbmF2Lm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1MaWdodGNhc2UgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbGlnaHRjYXNlLmpzIj48L3NjcmlwdD4KPCEtLXBhcnRpY2xlIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tcGFydGljbGUgY3VzdG9tIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy1jdXN0b20uanMiPjwvc2NyaXB0Pgo8IS0tUmFpbkRyb3BzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvcmFpbmRyb3BzLmpzIj48L3NjcmlwdD4KPCEtLUVhc2luZyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Vhc2luZy1taW4uanMiPjwvc2NyaXB0Pgo8IS0tU2xpY2sgU2xpZGVyIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3NsaWNrLm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1Td2lwZXIgc2NyaXB0IGxvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9zd2lwZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLVdPVyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3dvdy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tV2F5UG9pbnRzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvd2F5cG9pbnRzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iYXNzZXRzL2pzL2lvbi5yYW5nZVNsaWRlci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgJCh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB3b3cgPSBuZXcgV09XKHsKICAgICAgICAgICAgICAgIGJveENsYXNzOiAnd293JywKICAgICAgICAgICAgICAgIGFuaW1hdGVDbGFzczogJ2FuaW1hdGVkJywKICAgICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSwKICAgICAgICAgICAgICAgIGxpdmU6IHRydWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHdvdy5pbml0KCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxzY3JpcHQ+CiAgICAgICAgJC5lYWNoKCQoJy5zbGlkZXItaW5wdXQnKSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkdCA9ICQodGhpcyksCgogICAgICAgICAgICAgICAgICAgIGZyb20gPSAkdC5kYXRhKCdmcm9tJyksCiAgICAgICAgICAgICAgICAgICAgdG8gPSAkdC5kYXRhKCd0bycpLAoKICAgICAgICAgICAgICAgICAgICAkZGFpbHlQcm9maXQgPSAkKCR0LmRhdGEoJ2RhaWx5cHJvZml0JykpLAogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdCA9ICQoJHQuZGF0YSgndG90YWxwcm9maXQnKSksCgogICAgICAgICAgICAgICAgICAgICR2YWwgPSAkKCR0LmRhdGEoJ3ZhbHVldGFnJykpLAoKICAgICAgICAgICAgICAgICAgICBwZXJEYXkgPSAkdC5kYXRhKCdwZXJkYXknKSwKICAgICAgICAgICAgICAgICAgICBwZXJZZWFyID0gJHQuZGF0YSgncGVyeWVhcicpOwoKCiAgICAgICAgICAgICR0LmlvblJhbmdlU2xpZGVyKHsKICAgICAgICAgICAgICAgIGlucHV0X3ZhbHVlc19zZXBhcmF0b3I6ICI7CiAgICAgICAgICAgICAgICBwcmVmaXg6ICckICcsCiAgICAgICAgICAgICAgICBoaWRlX21pbl9tYXg6IHRydWUsCiAgICAgICAgICAgICAgICBmb3JjZV9lZGdlczogdHJ1ZSwKICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAkdmFsLnZhbCggJyQgJyArIHZhbC5mcm9tKTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIHByb2ZpdCA9ICh2YWwuZnJvbSAqIHBlckRheSAvIDEwMCkudG9GaXhlZCgxKTsKICAgICAgICAgICAgICAgICAgICBwcm9maXQgID0gJyQgJyArIHByb2ZpdC5yZXBsYWNlKCcuJywgJy4nKSA7CiAgICAgICAgICAgICAgICAgICAgJGRhaWx5UHJvZml0LnRleHQocHJvZml0KSA7CgogICAgICAgICAgICAgICAgICAgIHByb2ZpdCA9ICggKHZhbC5mcm9tICogcGVyRGF5IC8gMTAwKSogcGVyWWVhciApLnRvRml4ZWQoMSk7CiAgICAgICAgICAgICAgICAgICAgcHJvZml0ICA9ICAnJCAnICsgcHJvZml0LnJlcGxhY2UoJy4nLCAnLicpOwogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdC50ZXh0KHByb2ZpdCk7CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICAkKCcuaW52ZXN0LXR5cGVfX3Byb2ZpdC0tdmFsJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKCiAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKCQodGhpcykuZGF0YSgnc2xpZGVyJykpLmRhdGEoImlvblJhbmdlU2xpZGVyIik7CgogICAgICAgICAgICBzbGlkZXIudXBkYXRlKHsKICAgICAgICAgICAgICAgIGZyb206ICQodGhpcykudmFsKCkucmVwbGFjZSgnJCAnLCAiIikKICAgICAgICAgICAgfSk7CiAgICAgICAgfSkgICAgICAKICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS1NYWluIGpzIGZpbGUgbG9hZC0tPgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbWFpbi5qcyI+PC9zY3JpcHQ+CgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tYWluLmpzIj48L3NjcmlwdD4KCiAgICAgICAgPCEtLXN3YWwgYWxlcnQgbWVzc2FnZS0tPgoKICAgICAgICA8IS0tZW5kIHN3YWwgYWxlcnQgbWVzc2FnZS0tPgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIG1vYmlsZSA9ICgvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpOwoKICAgICAgICBobGpzLmluaXRIaWdobGlnaHRpbmdPbkxvYWQoKTsKICAgICAgICBobGpzLmNvbmZpZ3VyZSh7dXNlQlI6IHRydWV9KTsKICAgICAgICBqUXVlcnkoJyNyYWluZHJvcHMnKS5yYWluZHJvcHMoe2NvbG9yOicjZmZmJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIGpRdWVyeSgnI3JhaW5kcm9wcy1ncmVlbicpLnJhaW5kcm9wcyh7Y29sb3I6JyMyZWNjNzEgJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIDwvc2NyaXB0PgoKICAgICAgICAgICAgPCEtLSBHZXRCdXR0b24uaW8gd2lkZ2V0IC0tPgogICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgICAgIC8vIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vICAgICB2YXIgb3B0aW9ucyA9IHsKICAgICAgICAgICAgLy8gICAgICAgICB3aGF0c2FwcDogIisxMzMwMjY1MDA0NSIsIC8vIFdoYXRzQXBwIG51bWJlcgogICAgICAgICAgICAvLyAgICAgICAgIGNhbGxfdG9fYWN0aW9uOiAiTWVzc2FnZSB1cyBOb3ciLCAvLyBDYWxsIHRvIGFjdGlvbgogICAgICAgICAgICAvLyAgICAgICAgIHBvc2l0aW9uOiAibGVmdCIsIC8vIFBvc2l0aW9uIG1heSBiZSAncmlnaHQnIG9yICdsZWZ0JwogICAgICAgICAgICAvLyAgICAgfTsKICAgICAgICAgICAgLy8gICAgIHZhciBwcm90byA9IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLCBob3N0ID0gImdldGJ1dHRvbi5pbyIsIHVybCA9IHByb3RvICsgIi8vc3RhdGljLiIgKyBob3N0OwogICAgICAgICAgICAvLyAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHMuYXN5bmMgPSB0cnVlOyBzLnNyYyA9IHVybCArICcvd2lkZ2V0LXNlbmQtYnV0dG9uL2pzL2luaXQuanMnOwogICAgICAgICAgICAvLyAgICAgcy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IFdoV2lkZ2V0U2VuZEJ1dHRvbi5pbml0KGhvc3QsIHByb3RvLCBvcHRpb25zKTsgfTsKICAgICAgICAgICAgLy8gICAgIHZhciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyB4LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsIHgpOwogICAgICAgICAgICAvLyB9KSgpOwogICAgICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS0gL0dldEJ1dHRvbi5pbyB3aWRnZXQgLS0+CiAgICAgICAgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubWdtIHsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgIHotaW5kZXg6IDkwOwogICAgICAgICAgICAgICAgYm90dG9tOiAyMHB4OwogICAgICAgICAgICAgICAgcmlnaHQ6IDQwJTsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZDk2MWE7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDI3cHg7CiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEzcHggMHB4IHJnYmEoMCwgMCwgMCwgLjMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubWdtIGEgewogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5tZ20gYSwKICAgICAgICAgICAgLm1nbSBhOmFjdGl2ZSB7CiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgfQoKICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9Im1nbSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHh0IiBzdHlsZT0iY29sb3I6YmxhY2s7Ij5JbnZlc3RvciBmcm9tIDxiPjwvYj4ganVzdCBlYXJuZWQgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+PC9hPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgdmFyIGxpc3RDb3VudHJpZXMgPSBbJ1VuaXRlZCBLaW5nZG9tJywgJ0luZGlhJywgJ1BoaWxpcHBpbmUnLCAnVVNBJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0l0YWx5JywgJ1NvdXRoIEtvcmVhJywgJ0F1c3RyYWxpYScsICdOb3J3YXknLCAnQ2FuYWRhJywgJ0FyZ2VudGluYScsICdTYXVkaSBBcmFiaWEnLCAnTWV4aWNvJywgJ1NwYWluJywgJ0F1c3RyaWEnLCAnVmVuZXp1ZWxhJywgJ1NvdXRoIEFmcmljYScsICdTd2VkZW4nLCAnU291dGggS29yZWEnLCAnQ2hpbmEnLCAnSXRhbHknLCAnR2VybWFueScsICdVbml0ZWQgS2luZ2RvbScsICdCYWhyYWluJywgJ0dyZWVjZScsICdDdWJhJywgJ0J1bGdhcmlhJywgJ1BvcnR1Z2FsJywgJ0F1c3RyaWEnLCAnQ3lwcnVzJywgJ1BhbmFtYScsICdBc2lhJywgJ05vcndheScsICdOZXRoZXJsYW5kcycsICdTd2l0emVybGFuZCcsICdCZWxnaXVtJywgJ0lzcmFlbCcsICdDeXBydXMnLCAnU3BhaW4nLCAnTm9yd2F5J107CiAgICAgICAgdmFyIGxpc3RQbGFucyA9IFsnJDIwMDAnLCAnJDEwMDAnLCAnJDUwMDAwJywgJyQxNTAwMCcsICckMTAwMDAnLCAnJDEwMDAwMCcsICckMjAwMDAnLCAnJDE1MDAnLCAnJDMwMDAwJywgJyQ0MDAwMCcsICckMTIwMCcsICckNjAwMDAnLCAnJDM0MDAnLCAnJDcwMDAnLCAnJDI1MDAwJywgJyQyNTAwMCcsICckMzUwMDAnLCAnJDUwMDAnLCAnJDcwMDAnLCAnJDQ1MDAwJywgJyQzNTAwJywgJyQ1MDAwJywgJyQxMjUwMCcsICckOTUwMCddOwogICAgICAgIGludGVydmFsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDQwMDAwIC0gODAwMCArIDEpICsgODAwMCk7CiAgICAgICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICAgICAgZnVuY3Rpb24gcmVxdWVzdCgpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChydW4pOwogICAgICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgICAgICAgICB2YXIgY291bnRyeSA9IGxpc3RDb3VudHJpZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdENvdW50cmllcy5sZW5ndGgpXTsKICAgICAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgICAgICB2YXIgbXNnID0gJ1NvbWVvbmUgZnJvbSA8Yj4nICsgY291bnRyeSArICc8L2I+IGp1c3QgZWFybmVkICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij4nICsgcGxhbiArICcgLjwvYT4nOwogICAgICAgICAgICAkKCIubWdtIC50eHQiKS5odG1sKG1zZyk7CiAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVJbigzMDApOwogICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVPdXQoMzAwKTsKICAgICAgICAgICAgfSwgNjAwMCk7CiAgICAgICAgICAgIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKICAgICAgICB9CgogICAgPC9zY3JpcHQ+CiAgICAgICAgCiA8IS0tIEJlZ2luIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gQmVnaW4gb2YgQ2hhcG9ydCBMaXZlIENoYXQgY29kZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgooZnVuY3Rpb24odyxkLHYzKXsKdy5jaGFwb3J0Q29uZmlnID0gewogIGFwcElkIDogJzZhNTA2ZGJhNGRhYjNlYWQ1ZThlYTJlNicsCn07CgppZih3LmNoYXBvcnQpcmV0dXJuO3YzPXcuY2hhcG9ydD17fTt2My5fcT1bXTt2My5fbD17fTt2My5xPWZ1bmN0aW9uKCl7djMuX3EucHVzaChhcmd1bWVudHMpfTt2My5vbj1mdW5jdGlvbihlLGZuKXtpZighdjMuX2xbZV0pdjMuX2xbZV09W107djMuX2xbZV0ucHVzaChmbil9O3ZhciBzPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO3MuYXN5bmM9dHJ1ZTtzLnNyYz0naHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20vamF2YXNjcmlwdHMvaW5zZXJ0LmpzJzt2YXIgc3M9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07c3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxzcyl9KSh3aW5kb3csIGRvY3VtZW50KTsKPC9zY3JpcHQ+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CiAgICA8L2JvZHk+CgoKPCEtLSBNaXJyb3JlZCBmcm9tIENyeXB0b3BsYy5vcmcvZW4vaG9tZS5waHAgYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUaHUsIDI1IEF1ZyAyMDIyIDAwOjU2OjA4IEdNVCAtLT4KCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MzozNSBHTVQgLS0+CjwvaHRtbD4="}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":36,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/33793.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.695Z","timestamp":1785126646695,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/33793.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1111\r\nage: 4674\r\nlast-modified: Mon, 04 Nov 2024 09:19:40 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:13:23 GMT\r\netag: \"788ee50bb0546f0424b1a69d0261366b\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: w7L5IIVcf-26pj0dSCZeYMVYCCvPQylwOdSuNcjQjFqGhnDKhZbecw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":1111,"size_decoded":1644,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"788ee50bb0546f0424b1a69d0261366b","sha1":"2604f3f320abe86452e5e2b95d75a69da69fa17d","sha256":"acaa78a48c7e360e07aaa47bae9524f0cdcc600c2d032aabcfaa4b4e540862b3","sha512":"3a697f6c1db55971f4df1b890dfca7c8b4648f405c9a146dc1b046a222b0bcd4a8845517f81464a8b9c0608019532c2ce870ec39eae9377cb4dd80763d4bcd6e","ssdeep":"","tlshash":"9621f9675554cbbc530680b2940bbce731dec21caf114199d8c26126101188c7a1e2c5","first_seen":"2026-03-04T08:47:10.82974Z","last_seen":"2026-07-27T08:07:37.384347Z","times_seen":1097,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEHklEQVR4Xu2bv2sUURDH8yfExMJGCdhoI3enjbHZImkSEAU1jaBWEhEUrxZtQqxMOgWFaJPGIimsBEkjWKa2SuEfcH9C3Hd4y97nzb6d92M3G8jAp7md+c7Mu9u3+3bfzcy0ZINs7mU/mxvlHNcwyn3fMv7U2SA7vyU0F8Qgm9+hfmeNxaeG+TphvWxhloU2TS+7sMA6Wrd+Nn/AwtomPz32WFcrxkJOGtbXmOUzdLLJLTVm4mW9Se16NveCSbtG/gW9Yd1JLBc/ZDJflu5dPP5++OT499/nIubY2vpVKy6AQ9YfZbngkZBExdcfD6xGtZgBoZ4HR+wjyPoB3/yt1QtWM7EE/jLifgnmfBJEnbDw1DBfHeYWnH2pzHe2Z6FNw/wugq4OFHHB4tqCdbhgf05jcBVNnOu+LN2/ZNVVBfsUbZCd22OgRBean6AfhPkD9muZHSTDIlJiLp3MV5eTvlWw3ykzKywGSDB5KtbWr1i5iOtGir4SZuXKvgujs8TPP0+txLEM39208rhgfBn6SrDvwugowYSxUF/D4kr1/ENfCfY9NjpJMFkM1PaFer7a7L/VAaBuCNQso7ltnmrePHSkA2GSUKgbCnUJ/Une83YxADwowQQhUDMGahP6S6gH4P3uqpXAF2rGQn2iWUqrB4DivlAvBcwhwRgybt68heEBQmEfzFMg6sVibn2ZR4JxZLxU7iteV1FYy8bnZUsrBdqbsduPLluxYFT789/4tGwJa9jaXbG0UsFcVajmAX5AtKNNqJMK3wmZ8aR2ACiogRpd5mwA+AFhc3UwvuucDQA/IK4HECRm5qdWKpiH1A6Az2WQsT5QKwVVj9bKJL0RYpwv1IvFPLhlDjCabF7iAe/CNGtwLT6nnQvqkmIzFg8QCkswJgXM4Qv1iHo1ONxctMQJY2Khvi8f9+9YmkQ9AAYmIPSPgdohUFOiGID8XNjmQcIEhP6hUDcU6pK8551iAIzRQYJJfBJqoGYommcQU813YQCoFwO1Jdj/2OgkwWQThpt+b3fq9EKhvgT7LoyOEt9+PbSS+iSf8GH/rhUfi3l2wTwS7LuwXjar2vLKxGXoS8xjMsakgrkk8h4X2PeUMaAKJi/zKr9vKPs+Hl6zfFLD+qpgv5b57P9lEScF66pCva+YgS5YTNuwHhfs02kMdsGi2oJ1uGB/taa5OyyTagWnQfO4u0yv/CLUx3qKpTJhsalhvjp6sf8/6gdslTWw8FioryRuq+zE+hGbpZ+9vmE1o8Usw6nnwRH7iLJ+4C+BmKaku0lzXkc2XCbNN08z55OQrFOYeYt1JzXfq0ObBM/2IcbkJw3ra8W0+4qbRbH/t2kzKyy7sGYxK1fW0Qljoalhvs5aXuwXFh+KmXipf+rs/2as2tdwxqfxS1nJ/gEsT1LO5BS32AAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/33038.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.864Z","timestamp":1785126646864,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/33038.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 3998\r\nage: 2947\r\nlast-modified: Tue, 17 Sep 2024 01:09:25 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:41:56 GMT\r\netag: \"8fae21ff4a6f0a8988b54b0e313a59a0\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: TiwVJMQInwdjspzApKVnIcogoeOUTDqra9RcpE7bvqk_Grw0g8Pp5w==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":3998,"size_decoded":4531,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"8fae21ff4a6f0a8988b54b0e313a59a0","sha1":"403478a6466c3040cc8f1ffd2a7c974a5d255462","sha256":"a7d5443eca9bbdd62c689dc413dc108db9684829b85987b613b92d1d3d1f4df1","sha512":"964939d60666d7977ff00acdb432a744a824477dea921acaba2b3da1a166ec7367eb373248718b8013005aed6ba8617e8679f5ac0fe164945bb266069f9058b7","ssdeep":"","tlshash":"6f816db04b910e247ffc91243ebe5540dbc38cc2095fd2a04816a63eef5c965f1903b6","first_seen":"2025-08-09T19:29:39.018282Z","last_seen":"2026-07-27T08:07:37.457559Z","times_seen":1077,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/8916.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.867Z","timestamp":1785126646867,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/8916.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 1559\r\nage: 76273\r\nlast-modified: Tue, 19 Oct 2021 05:36:37 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:19:46 GMT\r\ncache-control: max-age=86400\r\netag: \"e906697de32eb7e1420f46bd4da7cd67\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: maOHrCr5h_ltE2qh1ew3ShodT2U1ujUUkhS3tg8iEteVJBcqaSwB8A==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":1559,"size_decoded":2085,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"e906697de32eb7e1420f46bd4da7cd67","sha1":"d0f7184d0ff38878e831c144adff337cc0491674","sha256":"ce49c1f0b7dc5863f73c4423b606298fd367fbe32ee3696739ba1b72d807bb4d","sha512":"df582a3537249deb5266554b8c5f88458655fae63630f007436b43cb075a4a22663277dc3873758aeae50e4fc2abaf24b5ea224c54dcf8987195a043cbdab668","ssdeep":"","tlshash":"a7310ae99993516aaff8a51387383c787c4a20e0371c1a8442a3fe8f2b0d520188ad57","first_seen":"2023-06-06T18:28:25Z","last_seen":"2026-07-27T08:07:37.4772Z","times_seen":1187,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/generate_204?UtQyxQ","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.716Z","timestamp":1785126647716,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /generate_204?UtQyxQ HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 204 \r\ncontent-length: 0\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":172,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/81a298ddc7471070.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.413Z","timestamp":1785126646413,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/81a298ddc7471070.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 3814162\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"81a298ddc7471070.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"19fc6352b3bef54383c8770d74131cfa\"\r\nlast-modified: Sat, 13 Jun 2026 00:50:11 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/81a298ddc7471070.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::wcw4z-1781312483461-776bf6c194f6\r\nx-xss-protection: 1; mode=block\r\npriority: u=4,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8ExRSg12HGXpfsWCfJ3WiVmtF6Xfq8zhQYpjakukrn9d559f68TG0hBXHD8xRHuaBHG02xJ3MA5SPkvOUvWYNl2gIpaC3SslStOhyQ3qUZgddj5YCdYxHwBLLCVB\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9241ff32efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":8114,"size_decoded":4384,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (8114), with no line terminators","md5":"19fc6352b3bef54383c8770d74131cfa","sha1":"c67ec295996975fd662c06e0b614bd3b9f97d7bd","sha256":"9f43d8db2c14631ecaeb7f7ea5d8823bbfe41eeee26f6893c816d0aa348e9605","sha512":"64eba4d08add14b4c9728e2e5026234cf522dd62e2da45df50d967e4d337e6b38cbeaf471dbfba3420a5d3c992bb47c628f60618fca6d84114f7250b7407c5cd","ssdeep":"96:76gC8v2YWBRNY6v28COSXTnv2IDESf3vZ8kM2Lv2kyIWwzysv2hv2zthN1Vm5w7b:cjYWG8COJIDEiikyBwuzkx/T+AP","tlshash":"e4f1536636d4f9d1168b44d5c83b5006f22e0d3a216d70a8b7e5cefa369044ef472fea","first_seen":"2026-02-06T09:43:19.169507Z","last_seen":"2026-07-27T08:07:37.344587Z","times_seen":1345,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDk0OTQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIndvcmtBc3luY1N0b3JhZ2VJbnN0YW5jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49KDAsZS5yKDQ5MjExKS5jcmVhdGVBc3luY0xvY2FsU3RvcmFnZSkoKX0sODk3OTEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIndvcmtBc3luY1N0b3JhZ2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLndvcmtBc3luY1N0b3JhZ2VJbnN0YW5jZX19KTtsZXQgbj1lLnIoOTQ5NCl9LDcxMjM0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJIYW5kbGVJU1JFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7bGV0IG49InUiPHR5cGVvZiB3aW5kb3c/ZS5yKDg5NzkxKS53b3JrQXN5bmNTdG9yYWdlOnZvaWQgMDtmdW5jdGlvbiBvKHtlcnJvcjplfSl7aWYobil7bGV0IHQ9bi5nZXRTdG9yZSgpO2lmKHQ/LmlzU3RhdGljR2VuZXJhdGlvbil0aHJvdyBlJiZjb25zb2xlLmVycm9yKGUpLGV9cmV0dXJuIG51bGx9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzQwODQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVzZVVudHJhY2tlZFBhdGhuYW1lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTtsZXQgbj1lLnIoNzUyMDEpLG89ZS5yKDMxODk5KTtmdW5jdGlvbiB1KCl7cmV0dXJuIWZ1bmN0aW9uKCl7aWYoInUiPHR5cGVvZiB3aW5kb3cpe2xldHt3b3JrVW5pdEFzeW5jU3RvcmFnZTp0fT1lLnIoMTI5NjUpLHI9dC5nZXRTdG9yZSgpO2lmKCFyKXJldHVybiExO3N3aXRjaChyLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6bGV0IG49ci5mYWxsYmFja1JvdXRlUGFyYW1zO3JldHVybiEhbiYmbi5zaXplPjB9fXJldHVybiExfSgpPygwLG4udXNlQ29udGV4dCkoby5QYXRobmFtZUNvbnRleHQpOm51bGx9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODMzOTgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2hhbmRsZUhhcmROYXZFcnJvcjpmdW5jdGlvbigpe3JldHVybiBsfSx1c2VOYXZGYWlsdXJlSGFuZGxlcjpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2Uucig3NTIwMSk7bGV0IHU9ZS5yKDg1NTk0KTtmdW5jdGlvbiBsKGUpe3JldHVybiEhKGUmJiJ1Ij50eXBlb2Ygd2luZG93KSYmISF3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwmJigwLHUuY3JlYXRlSHJlZkZyb21VcmwpKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKSE9PSgwLHUuY3JlYXRlSHJlZkZyb21VcmwpKHdpbmRvdy5uZXh0Ll9fcGVuZGluZ1VybCkmJihjb25zb2xlLmVycm9yKCJFcnJvciBvY2N1cnJlZCBkdXJpbmcgbmF2aWdhdGlvbiwgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiIsZSksd2luZG93LmxvY2F0aW9uLmhyZWY9d2luZG93Lm5leHQuX19wZW5kaW5nVXJsLnRvU3RyaW5nKCksITApfWZ1bmN0aW9uIGkoKXt9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzQ4NDcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0Vycm9yQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gX30sRXJyb3JCb3VuZGFyeUhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcH19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoODEyNTgpLGw9ZS5yKDk4MTM0KSxpPXUuXyhlLnIoNzUyMDEpKSxhPWUucig3NDA4NCkscz1lLnIoNDk4NDMpO2Uucig4MzM5OCk7bGV0IGQ9ZS5yKDcxMjM0KSxjPWUucigzNDY1KSxmPSJ1Ij50eXBlb2Ygd2luZG93JiYoMCxjLmlzQm90KSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCk7Y2xhc3MgcCBleHRlbmRzIGkuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5yZXNldD0oKT0+e3RoaXMuc2V0U3RhdGUoe2Vycm9yOm51bGx9KX0sdGhpcy5zdGF0ZT17ZXJyb3I6bnVsbCxwcmV2aW91c1BhdGhuYW1lOnRoaXMucHJvcHMucGF0aG5hbWV9fXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7aWYoKDAscy5pc05leHRSb3V0ZXJFcnJvcikoZSkpdGhyb3cgZTtyZXR1cm57ZXJyb3I6ZX19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhlLHQpe2xldHtlcnJvcjpyfT10O3JldHVybiBlLnBhdGhuYW1lIT09dC5wcmV2aW91c1BhdGhuYW1lJiZ0LmVycm9yP3tlcnJvcjpudWxsLHByZXZpb3VzUGF0aG5hbWU6ZS5wYXRobmFtZX06e2Vycm9yOnQuZXJyb3IscHJldmlvdXNQYXRobmFtZTplLnBhdGhuYW1lfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciYmIWY/KDAsbC5qc3hzKShsLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsbC5qc3gpKGQuSGFuZGxlSVNSRXJyb3Ise2Vycm9yOnRoaXMuc3RhdGUuZXJyb3J9KSx0aGlzLnByb3BzLmVycm9yU3R5bGVzLHRoaXMucHJvcHMuZXJyb3JTY3JpcHRzLCgwLGwuanN4KSh0aGlzLnByb3BzLmVycm9yQ29tcG9uZW50LHtlcnJvcjp0aGlzLnN0YXRlLmVycm9yLHJlc2V0OnRoaXMucmVzZXR9KV19KTp0aGlzLnByb3BzLmNoaWxkcmVufX1mdW5jdGlvbiBfKHtlcnJvckNvbXBvbmVudDplLGVycm9yU3R5bGVzOnQsZXJyb3JTY3JpcHRzOnIsY2hpbGRyZW46bn0pe2xldCBvPSgwLGEudXNlVW50cmFja2VkUGF0aG5hbWUpKCk7cmV0dXJuIGU/KDAsbC5qc3gpKHAse3BhdGhuYW1lOm8sZXJyb3JDb21wb25lbnQ6ZSxlcnJvclN0eWxlczp0LGVycm9yU2NyaXB0czpyLGNoaWxkcmVuOm59KTooMCxsLmpzeCkobC5GcmFnbWVudCx7Y2hpbGRyZW46bn0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDU3MjQ3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtSZWRpcmVjdEJvdW5kYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LFJlZGlyZWN0RXJyb3JCb3VuZGFyeTpmdW5jdGlvbigpe3JldHVybiBmfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucig0NDA2NiksbD1lLnIoOTgxMzQpLGk9dS5fKGUucig3NTIwMSkpLGE9ZS5yKDI4OTk1KSxzPWUucig0MTcyMSksZD1lLnIoOTA4NjIpO2Z1bmN0aW9uIGMoe3JlZGlyZWN0OmUscmVzZXQ6dCxyZWRpcmVjdFR5cGU6cn0pe2xldCBuPSgwLGEudXNlUm91dGVyKSgpO3JldHVybigwLGkudXNlRWZmZWN0KSgoKT0+e2kuZGVmYXVsdC5zdGFydFRyYW5zaXRpb24oKCk9PntyPT09ZC5SZWRpcmVjdFR5cGUucHVzaD9uLnB1c2goZSx7fSk6bi5yZXBsYWNlKGUse30pLHQoKX0pfSxbZSxyLHQsbl0pLG51bGx9Y2xhc3MgZiBleHRlbmRzIGkuZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdGF0ZT17cmVkaXJlY3Q6bnVsbCxyZWRpcmVjdFR5cGU6bnVsbH19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlKXtpZigoMCxkLmlzUmVkaXJlY3RFcnJvcikoZSkpe2xldCB0PSgwLHMuZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IpKGUpLHI9KDAscy5nZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IpKGUpO3JldHVybiJoYW5kbGVkImluIGU/e3JlZGlyZWN0Om51bGwscmVkaXJlY3RUeXBlOm51bGx9OntyZWRpcmVjdDp0LHJlZGlyZWN0VHlwZTpyfX10aHJvdyBlfXJlbmRlcigpe2xldHtyZWRpcmVjdDplLHJlZGlyZWN0VHlwZTp0fT10aGlzLnN0YXRlO3JldHVybiBudWxsIT09ZSYmbnVsbCE9PXQ/KDAsbC5qc3gpKGMse3JlZGlyZWN0OmUscmVkaXJlY3RUeXBlOnQscmVzZXQ6KCk9PnRoaXMuc2V0U3RhdGUoe3JlZGlyZWN0Om51bGx9KX0pOnRoaXMucHJvcHMuY2hpbGRyZW59fWZ1bmN0aW9uIHAoe2NoaWxkcmVuOmV9KXtsZXQgdD0oMCxhLnVzZVJvdXRlcikoKTtyZXR1cm4oMCxsLmpzeCkoZix7cm91dGVyOnQsY2hpbGRyZW46ZX0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDUwMDk2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJ1bnJlc29sdmVkVGhlbmFibGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPXt0aGVuOigpPT57fX07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMzYzNDUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e01ldGFkYXRhQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sT3V0bGV0Qm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gc30sUm9vdExheW91dEJvdW5kYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFZpZXdwb3J0Qm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gYX19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoNTM0NTkpLGw9e1t1Lk1FVEFEQVRBX0JPVU5EQVJZX05BTUVdOmZ1bmN0aW9uKHtjaGlsZHJlbjplfSl7cmV0dXJuIGV9LFt1LlZJRVdQT1JUX0JPVU5EQVJZX05BTUVdOmZ1bmN0aW9uKHtjaGlsZHJlbjplfSl7cmV0dXJuIGV9LFt1Lk9VVExFVF9CT1VOREFSWV9OQU1FXTpmdW5jdGlvbih7Y2hpbGRyZW46ZX0pe3JldHVybiBlfSxbdS5ST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FXTpmdW5jdGlvbih7Y2hpbGRyZW46ZX0pe3JldHVybiBlfX0saT1sW3UuTUVUQURBVEFfQk9VTkRBUllfTkFNRS5zbGljZSgwKV0sYT1sW3UuVklFV1BPUlRfQk9VTkRBUllfTkFNRS5zbGljZSgwKV0scz1sW3UuT1VUTEVUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCldLGQ9bFt1LlJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCldfSw0NDkzNCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiSGVhZE1hbmFnZXJDb250ZXh0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj1lLnIoODEyNTgpLl8oZS5yKDc1MjAxKSkuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHt9KX0sMTYxNTMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX0pO2xldCBuPWUucig5ODEzNCksbz1lLnIoNzEyMzQpLHU9e2ZvbnRGYW1pbHk6J3N5c3RlbS11aSwiU2Vnb2UgVUkiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiwiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSInLGhlaWdodDoiMTAwdmgiLHRleHRBbGlnbjoiY2VudGVyIixkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciJ9LGw9e2ZvbnRTaXplOiIxNHB4Iixmb250V2VpZ2h0OjQwMCxsaW5lSGVpZ2h0OiIyOHB4IixtYXJnaW46IjAgOHB4In0saT1mdW5jdGlvbih7ZXJyb3I6ZX0pe2xldCB0PWU/LmRpZ2VzdDtyZXR1cm4oMCxuLmpzeHMpKCJodG1sIix7aWQ6Il9fbmV4dF9lcnJvcl9fIixjaGlsZHJlbjpbKDAsbi5qc3gpKCJoZWFkIix7fSksKDAsbi5qc3hzKSgiYm9keSIse2NoaWxkcmVuOlsoMCxuLmpzeCkoby5IYW5kbGVJU1JFcnJvcix7ZXJyb3I6ZX0pLCgwLG4uanN4KSgiZGl2Iix7c3R5bGU6dSxjaGlsZHJlbjooMCxuLmpzeHMpKCJkaXYiLHtjaGlsZHJlbjpbKDAsbi5qc3hzKSgiaDIiLHtzdHlsZTpsLGNoaWxkcmVuOlsiQXBwbGljYXRpb24gZXJyb3I6IGEgIix0PyJzZXJ2ZXIiOiJjbGllbnQiLCItc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgIix3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsIiAoc2VlIHRoZSIsIiAiLHQ/InNlcnZlciBsb2dzIjoiYnJvd3NlciBjb25zb2xlIiwiIGZvciBtb3JlIGluZm9ybWF0aW9uKS4iXX0pLHQ/KDAsbi5qc3gpKCJwIix7c3R5bGU6bCxjaGlsZHJlbjpgRGlnZXN0OiAke3R9YH0pOm51bGxdfSl9KV19KV19KX07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/800e836146d6e7eb.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.428Z","timestamp":1785126646428,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/800e836146d6e7eb.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 4105002\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"800e836146d6e7eb.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"7b2a7348e5acf7f61cd01b2152c769a6\"\r\nlast-modified: Tue, 09 Jun 2026 16:12:41 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/800e836146d6e7eb.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::dmlt9-1781021643910-30bb6f3b3b82\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=4lec6b%2FBYq4W1b5Vq%2FDURWbqwP1LjmOhCcC7p2nLVE4IsDZ70jumDRCxu71b0CPaamkxFlV5celA4%2FZVYveFFr%2Bl0fZ7bSIw6SQ7iXvqZGIkyfPMa7JjGsBvbuTh\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e92438012efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":19477,"size_decoded":7484,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (16974)","md5":"7b2a7348e5acf7f61cd01b2152c769a6","sha1":"1cc03a4809684838384744113d8a0e0093a62a3a","sha256":"c5bd83f87b5a8d38fee5230c1078de1f65ac83476cd29e8f5a41d63ea9bd22c5","sha512":"56b9d74b6b4d8a6f1e9909cb88c18e6c784c6bbab10d877a936f334ec5056d8720d20c2443e241c3064f536853f3ffa4578c1c8b3ab391ce8d671256a83a0ef3","ssdeep":"192:c0/B5NGI4y5Zzlqrvd2bcQFCx4zN2M15hNeSd4e+MQCC8h/PzM+kyhtTliuR3dQ5:cOq8bcj+Jz57b4e+MQCL2+k+Nll3dwA4","tlshash":"b492b81056143788f5b78289915fc40c302f2a4caf0e85b5bbbcac666b544e73a6ffd6","first_seen":"2026-06-09T20:30:37.829522Z","last_seen":"2026-07-27T08:07:37.36851Z","times_seen":1354,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDI0NjAxLChlLHQsaSk9Pnt0LmV4cG9ydHM9ZS5yKDI4OTk1KX0sNzkyOTQsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoOTgxMzQpLGk9ZS5pKDI0NjAxKSxuPWUuaSg3NTIwMSkscz1lLmkoNzUxNTcpO2Z1bmN0aW9uIG8oe3RoZW1lOmUsY250OmksZ3JhcGg6byxwcmVmQ29pbklkOmx9KXtsZXRbYyxkXT0oMCxuLnVzZVN0YXRlKShbXSksW2gsZl09KDAsbi51c2VTdGF0ZSkoe2NvZGU6IlVTRCIsc3ltYm9sOiIkIixyYXRlOjF9KSxbbSxwXT0oMCxuLnVzZVN0YXRlKSghMCk7KDAsbi51c2VFZmZlY3QpKCgpPT57bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh7dG9wOlN0cmluZyhpKX0pO2wmJmUuc2V0KCJwcmVmX2NvaW5faWQiLGwpLGZldGNoKGAvYXBpL3YxL3dpZGdldD8ke2V9YCkudGhlbihlPT5lLmpzb24oKSkudGhlbihlPT57ZS5kYXRhJiZkKGUuZGF0YSksZS5jdXJyZW5jeSYmZihlLmN1cnJlbmN5KX0pLmNhdGNoKCgpPT57fSkuZmluYWxseSgoKT0+cCghMSkpfSxbaSxsXSk7bGV0IGc9ImRhcmsiPT09ZSx4PWc/IiMxQjIwMzAiOiIjZmZmZmZmIix5PWc/IiNlNWU3ZWIiOiIjMWYyOTM3Iix1PWc/IiM5Y2EzYWYiOiIjNmI3MjgwIixiPWc/IiMzNzQxNTEiOiIjZTVlN2ViIixqPWc/IiMxZjI5MzciOiIjZjNmNGY2IixTPSIjMjJjNTVlIix2PSIjZWY0NDQ0IjtyZXR1cm4gbT8oMCx0LmpzeCkoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kOngsY29sb3I6eSxwYWRkaW5nOjIwLGZvbnRGYW1pbHk6InN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiIsZm9udFNpemU6MTN9LGNoaWxkcmVuOiJMb2FkaW5nLi4uIn0pOigwLHQuanN4cykoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kOngsY29sb3I6eSxmb250RmFtaWx5OiJzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiLGZvbnRTaXplOjEzLG92ZXJmbG93OiJhdXRvIixoZWlnaHQ6IjEwMCUifSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzdHlsZSIse2NoaWxkcmVuOmAKICAgICAgICAuZnZ3LWhpZGUtc20geyB9CiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7CiAgICAgICAgICAuZnZ3LWhpZGUtc20geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KICAgICAgICAgIC5mdnctcmFuayB7IHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDogNHB4ICFpbXBvcnRhbnQ7IH0KICAgICAgICAgIC5mdnctcHJpY2UgeyB3aWR0aDogODBweCAhaW1wb3J0YW50OyB9CiAgICAgICAgICAuZnZ3LXJvdyB7IHBhZGRpbmc6IDZweCA4cHggIWltcG9ydGFudDsgfQogICAgICAgIH0KICAgICAgYH0pLCgwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToiZnZ3LXJvdyIsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzoiOHB4IDEycHgiLGJhY2tncm91bmQ6Zz8iIzExMTgyNyI6IiNmOWZhZmIiLGJvcmRlckJvdHRvbTpgMXB4IHNvbGlkICR7Yn1gLGZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctcmFuayIsc3R5bGU6e3dpZHRoOjMwLHRleHRBbGlnbjoicmlnaHQiLG1hcmdpblJpZ2h0OjgsY29sb3I6dSxmb250U2l6ZToxMX0sY2hpbGRyZW46IiMifSksKDAsdC5qc3gpKCJzcGFuIix7c3R5bGU6e2ZsZXg6MX0sY2hpbGRyZW46Ik5hbWUifSksKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctcHJpY2UiLHN0eWxlOnt3aWR0aDoxMDAsdGV4dEFsaWduOiJyaWdodCJ9LGNoaWxkcmVuOiJQcmljZSJ9KSwoMCx0LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6ImZ2dy1oaWRlLXNtIixzdHlsZTp7d2lkdGg6MTAwLHRleHRBbGlnbjoicmlnaHQifSxjaGlsZHJlbjoiTWFya2V0IENhcCJ9KSwoMCx0LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6ImZ2dy1oaWRlLXNtIixzdHlsZTp7d2lkdGg6OTAsdGV4dEFsaWduOiJyaWdodCJ9LGNoaWxkcmVuOiJWb2x1bWUgMjRoIn0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOnt3aWR0aDo3MCx0ZXh0QWxpZ246InJpZ2h0In0sY2hpbGRyZW46IjI0aCAlIn0pLG8mJigwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZToiZnZ3LWhpZGUtc20iLHN0eWxlOnt3aWR0aDo4MCx0ZXh0QWxpZ246InJpZ2h0IixwYWRkaW5nTGVmdDoxMn0sY2hpbGRyZW46IjdkIn0pXX0pLGMubWFwKGU9Pnt2YXIgaSxuO2xldCBsPWUucGVyY2VudF9jaGFuZ2VfMjRoPj0wO3JldHVybigwLHQuanN4cykoImEiLHtocmVmOmBodHRwczovL2NvaW5saWIuaW8keygwLHMuY29pblVybCkoZS5zeW1ib2wsZS5uYW1lKX1gLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLGNsYXNzTmFtZToiZnZ3LXJvdyIsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzoiNnB4IDEycHgiLGJvcmRlckJvdHRvbTpgMXB4IHNvbGlkICR7Yn1gLHRleHREZWNvcmF0aW9uOiJub25lIixjb2xvcjp5LHRyYW5zaXRpb246ImJhY2tncm91bmQgMC4xNXMifSxvbk1vdXNlRW50ZXI6ZT0+ZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQ9aixvbk1vdXNlTGVhdmU6ZT0+ZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQ9InRyYW5zcGFyZW50IixjaGlsZHJlbjpbKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctcmFuayIsc3R5bGU6e3dpZHRoOjMwLHRleHRBbGlnbjoicmlnaHQiLG1hcmdpblJpZ2h0OjgsY29sb3I6dSxmb250U2l6ZToxMX0sY2hpbGRyZW46ZS5yYW5rfSksKDAsdC5qc3gpKCJpbWciLHtzcmM6ZS5pbWFnZSxhbHQ6ZS5uYW1lLHdpZHRoOjE4LGhlaWdodDoxOCxzdHlsZTp7Ym9yZGVyUmFkaXVzOiI1MCUiLG1hcmdpblJpZ2h0OjZ9fSksKDAsdC5qc3gpKCJzcGFuIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NTAwLG1hcmdpblJpZ2h0OjR9LGNoaWxkcmVuOmUubmFtZX0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjp1LGZvbnRTaXplOjExfSxjaGlsZHJlbjplLnN5bWJvbH0pLCgwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZToiZnZ3LXByaWNlIixzdHlsZTp7d2lkdGg6MTAwLHRleHRBbGlnbjoicmlnaHQiLG1hcmdpbkxlZnQ6ImF1dG8iLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSJ9LGNoaWxkcmVuOihpPWUucHJpY2VfdXNkKmgucmF0ZSxuPWguc3ltYm9sLGk+PTE/bitpLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyfSk6bitpLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czo2fSkpfSksKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctaGlkZS1zbSIsc3R5bGU6e3dpZHRoOjEwMCx0ZXh0QWxpZ246InJpZ2h0Iixmb250RmFtaWx5OiJtb25vc3BhY2UiLGZvbnRTaXplOjExfSxjaGlsZHJlbjphKGUubWFya2V0X2NhcCpoLnJhdGUsaC5zeW1ib2wpfSksKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctaGlkZS1zbSIsc3R5bGU6e3dpZHRoOjkwLHRleHRBbGlnbjoicmlnaHQiLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsZm9udFNpemU6MTF9LGNoaWxkcmVuOmEoZS52b2x1bWVfMjRoKmgucmF0ZSxoLnN5bWJvbCl9KSwoMCx0LmpzeHMpKCJzcGFuIix7c3R5bGU6e3dpZHRoOjcwLHRleHRBbGlnbjoicmlnaHQiLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsZm9udFdlaWdodDo1MDAsY29sb3I6bD9TOnZ9LGNoaWxkcmVuOltsPyIrIjoiIixlLnBlcmNlbnRfY2hhbmdlXzI0aD8udG9GaXhlZCgyKSwiJSJdfSksbyYmKDAsdC5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJmdnctaGlkZS1zbSIsc3R5bGU6e3dpZHRoOjgwLHRleHRBbGlnbjoicmlnaHQiLHBhZGRpbmdMZWZ0OjEyfSxjaGlsZHJlbjooMCx0LmpzeCkocix7Y29pbjplLGNvbG9yOmw/Uzp2fSl9KV19LGUuaWQpfSksKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7cGFkZGluZzoiNHB4IDEycHgiLGZvbnRTaXplOjEwLGNvbG9yOnUsdGV4dEFsaWduOiJyaWdodCJ9LGNoaWxkcmVuOigwLHQuanN4KSgiYSIse2hyZWY6Imh0dHBzOi8vY29pbmxpYi5pbyIsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsc3R5bGU6e2NvbG9yOnUsdGV4dERlY29yYXRpb246Im5vbmUifSxjaGlsZHJlbjoiUG93ZXJlZCBieSBDb2lubGliIn0pfSldfSl9ZnVuY3Rpb24gcih7Y29pbjplLGNvbG9yOml9KXtsZXQgbixzPWUuc3BhcmtsaW5lXzdkJiZlLnNwYXJrbGluZV83ZC5sZW5ndGg+PTI/ZS5zcGFya2xpbmVfN2Q6bnVsbDtpZihzKW49cztlbHNle2xldCB0PWUucHJpY2VfdXNkLGk9dC8oMStlLnBlcmNlbnRfY2hhbmdlXzI0aC8xMDApO249W107Zm9yKGxldCBlPTA7ZTw9NjtlKyspe2xldCBzPWUvNjtuLnB1c2goaSsodC1pKSpzKy4wMSp0Kk1hdGguc2luKHMqTWF0aC5QSSoyKSl9fWxldCBvPU1hdGgubWluKC4uLm4pLHI9TWF0aC5tYXgoLi4ubiktb3x8MSxhPTcwLyhuLmxlbmd0aC0xKSxsPW4ubWFwKChlLHQpPT5gJHsodCphKS50b0ZpeGVkKDIpfSwkeygyNi0oZS1vKS9yKjI0KS50b0ZpeGVkKDIpfWApLGM9YE0gJHtsLmpvaW4oIiBMICIpfWAsZD1gJHtjfSBMIDcwLjAwLDI4IEwgMCwyOCBaYCxoPWBzcGFyay1ncmFkLSR7ZS5pZH1gO3JldHVybigwLHQuanN4cykoInN2ZyIse3dpZHRoOjcwLGhlaWdodDoyOCx2aWV3Qm94OiIwIDAgNzAgMjgiLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUiLGNoaWxkcmVuOlsoMCx0LmpzeCkoImRlZnMiLHtjaGlsZHJlbjooMCx0LmpzeHMpKCJsaW5lYXJHcmFkaWVudCIse2lkOmgseDE6IjAiLHkxOiIwIix4MjoiMCIseTI6IjEiLGNoaWxkcmVuOlsoMCx0LmpzeCkoInN0b3AiLHtvZmZzZXQ6IjAlIixzdG9wQ29sb3I6aSxzdG9wT3BhY2l0eToiMC4yNSJ9KSwoMCx0LmpzeCkoInN0b3AiLHtvZmZzZXQ6IjEwMCUiLHN0b3BDb2xvcjppLHN0b3BPcGFjaXR5OiIwIn0pXX0pfSksKDAsdC5qc3gpKCJwYXRoIix7ZDpkLGZpbGw6YHVybCgjJHtofSlgLHN0cm9rZToibm9uZSJ9KSwoMCx0LmpzeCkoInBhdGgiLHtkOmMsZmlsbDoibm9uZSIsc3Ryb2tlOmksc3Ryb2tlV2lkdGg6MSxzdHJva2VMaW5lam9pbjoicm91bmQiLHN0cm9rZUxpbmVjYXA6InJvdW5kIn0pXX0pfWZ1bmN0aW9uIGEoZSx0KXtyZXR1cm4gZT49MWUxMj90KyhlLzFlMTIpLnRvRml4ZWQoMikrIlQiOmU+PTFlOT90KyhlLzFlOSkudG9GaXhlZCgyKSsiQiI6ZT49MWU2P3QrKGUvMWU2KS50b0ZpeGVkKDIpKyJNIjplPj0xZTM/dCsoZS8xZTMpLnRvRml4ZWQoMikrIksiOnQrZS50b0ZpeGVkKDIpfWZ1bmN0aW9uIGwoe3RoZW1lOmUsY29pbklkOmkscHJlZkNvaW5JZDpzfSl7bGV0W28scl09KDAsbi51c2VTdGF0ZSkobnVsbCksW2EsbF09KDAsbi51c2VTdGF0ZSkoe2NvZGU6IlVTRCIsc3ltYm9sOiIkIixyYXRlOjF9KSxbZCxoXT0oMCxuLnVzZVN0YXRlKShbXSksW2YsbV09KDAsbi51c2VTdGF0ZSkoNyksW3AsZ109KDAsbi51c2VTdGF0ZSkoITApLHg9KDAsbi51c2VSZWYpKG51bGwpLFt5LHVdPSgwLG4udXNlU3RhdGUpKG51bGwpOygwLG4udXNlRWZmZWN0KSgoKT0+e2xldCBlPW5ldyBVUkxTZWFyY2hQYXJhbXM7aT9lLnNldCgibGVnYWN5X2lkIixpKTplLnNldCgic3ltYm9sIiwiQlRDIikscyYmZS5zZXQoInByZWZfY29pbl9pZCIscyksZmV0Y2goYC9hcGkvdjEvd2lkZ2V0PyR7ZX1gKS50aGVuKGU9PmUuanNvbigpKS50aGVuKGU9PntlLmRhdGE/KHUoZS5kYXRhLnNsdWc/PyJiaXRjb2luIikscihlLmRhdGEpKTp1KCJiaXRjb2luIiksZS5jdXJyZW5jeSYmbChlLmN1cnJlbmN5KX0pLmNhdGNoKCgpPT51KCJiaXRjb2luIikpfSxbaSxzXSksKDAsbi51c2VFZmZlY3QpKCgpPT57eSYmKGcoITApLChhc3luYygpPT57bGV0IGU9YXdhaXQgZmV0Y2goYC9hcGkvdjEvY29pbnMvJHt5fS9jaGFydD9kYXlzPSR7Zn1gKS50aGVuKGU9PmUuanNvbigpKS5jYXRjaCgoKT0+bnVsbCk7ZT8uZGF0YT8ucHJpY2VzJiZoKGUuZGF0YS5wcmljZXMpLGcoITEpfSkoKSl9LFt5LGZdKSwoMCxuLnVzZUVmZmVjdCkoKCk9PntpZigheC5jdXJyZW50fHxkLmxlbmd0aDwyKXJldHVybjtsZXQgdD14LmN1cnJlbnQsaT10LmdldENvbnRleHQoIjJkIik7aWYoIWkpcmV0dXJuO2xldCBuPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLHM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LndpZHRoPXMud2lkdGgqbix0LmhlaWdodD1zLmhlaWdodCpuLGkuc2NhbGUobixuKTtsZXQgbz1zLndpZHRoLHI9cy5oZWlnaHQsbD0iZGFyayI9PT1lO2kuZmlsbFN0eWxlPWw/IiMxQjIwMzAiOiIjZmZmZmZmIixpLmZpbGxSZWN0KDAsMCxvLHIpO2xldCBoPW8tNjAtMTAsbT1yLTEwLTMwLHA9YS5yYXRlLGc9ZC5tYXAoZT0+ZVsxXSpwKSx5PU1hdGgubWluKC4uLmcpLHU9TWF0aC5tYXgoLi4uZyksYj11LXl8fDE7aS5zdHJva2VTdHlsZT1sPyIjMzc0MTUxIjoiI2U1ZTdlYiIsaS5saW5lV2lkdGg9LjU7Zm9yKGxldCBlPTA7ZTw9NDtlKyspe2xldCB0PTEwK20vNCplO2kuYmVnaW5QYXRoKCksaS5tb3ZlVG8oNjAsdCksaS5saW5lVG8oby0xMCx0KSxpLnN0cm9rZSgpO2xldCBuPXUtYi80KmU7aS5maWxsU3R5bGU9bD8iIzljYTNhZiI6IiM2YjcyODAiLGkuZm9udD0iMTBweCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYiLGkudGV4dEFsaWduPSJyaWdodCIsaS5maWxsVGV4dChjKG4sYS5zeW1ib2wpLDU1LHQrMyl9bGV0IGo9ZFswXVswXSxTPWRbZC5sZW5ndGgtMV1bMF07aS5maWxsU3R5bGU9bD8iIzljYTNhZiI6IiM2YjcyODAiLGkudGV4dEFsaWduPSJjZW50ZXIiO2ZvcihsZXQgZT0wO2U8PTQ7ZSsrKXtsZXQgdD1qKyhTLWopLzQqZSxuPTYwK2gvNCplLHM9bmV3IERhdGUodCk7aS5maWxsVGV4dChmPD0xP3MudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbiIse2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCJ9KTpzLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4iLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyJ9KSxuLHItOCl9bGV0IHY9Z1tnLmxlbmd0aC0xXT49Z1swXTtpLnN0cm9rZVN0eWxlPXY/IiMyMmM1NWUiOiIjZWY0NDQ0IixpLmxpbmVXaWR0aD0yLGkuYmVnaW5QYXRoKCksZC5mb3JFYWNoKChbZV0sdCk9PntsZXQgbj02MCsoZS1qKS8oUy1qKSpoLHM9MTArKDEtKGdbdF0teSkvYikqbTswPT09dD9pLm1vdmVUbyhuLHMpOmkubGluZVRvKG4scyl9KSxpLnN0cm9rZSgpO2xldCBfPWkuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwxMCwwLDEwK20pO18uYWRkQ29sb3JTdG9wKDAsdj8icmdiYSgzNCwxOTcsOTQsMC4xNSkiOiJyZ2JhKDIzOSw2OCw2OCwwLjE1KSIpLF8uYWRkQ29sb3JTdG9wKDEsdj8icmdiYSgzNCwxOTcsOTQsMCkiOiJyZ2JhKDIzOSw2OCw2OCwwKSIpLGkuZmlsbFN0eWxlPV8saS5saW5lVG8oNjAraCwxMCttKSxpLmxpbmVUbyg2MCwxMCttKSxpLmNsb3NlUGF0aCgpLGkuZmlsbCgpfSxbZCxlLGFdKTtsZXQgYj0iZGFyayI9PT1lLGo9Yj8iI2U1ZTdlYiI6IiMxZjI5MzciLFM9Yj8iIzljYTNhZiI6IiM2YjcyODAiLHY9Yj8iIzM3NDE1MSI6IiNlNWU3ZWIiO3JldHVybigwLHQuanN4cykoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kOmI/IiMxQjIwMzAiOiIjZmZmZmZmIixjb2xvcjpqLGZvbnRGYW1pbHk6InN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiIsaGVpZ2h0OiIxMDAlIixkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifSxjaGlsZHJlbjpbbyYmKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzoiMTBweCAxMnB4Iixib3JkZXJCb3R0b206YDFweCBzb2xpZCAke3Z9YCxnYXA6OH0sY2hpbGRyZW46WygwLHQuanN4KSgiaW1nIix7c3JjOm8uaW1hZ2UsYWx0Om8ubmFtZSx3aWR0aDoyNCxoZWlnaHQ6MjQsc3R5bGU6e2JvcmRlclJhZGl1czoiNTAlIn19KSwoMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Zm9udFdlaWdodDo2MDAsZm9udFNpemU6MTV9LGNoaWxkcmVuOm8ubmFtZX0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjpTLGZvbnRTaXplOjEyfSxjaGlsZHJlbjpvLnN5bWJvbH0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOnttYXJnaW5MZWZ0OiJhdXRvIixmb250RmFtaWx5OiJtb25vc3BhY2UiLGZvbnRXZWlnaHQ6NjAwLGZvbnRTaXplOjE2fSxjaGlsZHJlbjpjKG8ucHJpY2VfdXNkKmEucmF0ZSxhLnN5bWJvbCl9KSwoMCx0LmpzeHMpKCJzcGFuIix7c3R5bGU6e2ZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsZm9udFNpemU6MTMsZm9udFdlaWdodDo1MDAsY29sb3I6by5wZXJjZW50X2NoYW5nZV8yNGg+PTA/IiMyMmM1NWUiOiIjZWY0NDQ0In0sY2hpbGRyZW46W28ucGVyY2VudF9jaGFuZ2VfMjRoPj0wPyIrIjoiIixvLnBlcmNlbnRfY2hhbmdlXzI0aD8udG9GaXhlZCgyKSwiJSJdfSldfSksKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsZ2FwOjQscGFkZGluZzoiNnB4IDEycHgiLGJvcmRlckJvdHRvbTpgMXB4IHNvbGlkICR7dn1gfSxjaGlsZHJlbjpbMSw3LDMwLDkwLDM2NV0ubWFwKGU9PigwLHQuanN4KSgiYnV0dG9uIix7b25DbGljazooKT0+bShlKSxzdHlsZTp7cGFkZGluZzoiMnB4IDhweCIsZm9udFNpemU6MTEsZm9udFdlaWdodDpmPT09ZT82MDA6NDAwLGJhY2tncm91bmQ6Zj09PWU/Yj8iIzM3NDE1MSI6IiNlNWU3ZWIiOiJ0cmFuc3BhcmVudCIsY29sb3I6Zj09PWU/ajpTLGJvcmRlcjoibm9uZSIsYm9yZGVyUmFkaXVzOjQsY3Vyc29yOiJwb2ludGVyIn0sY2hpbGRyZW46MT09PWU/IjI0SCI6Nz09PWU/IjdEIjozMD09PWU/IjFNIjo5MD09PWU/IjNNIjoiMVkifSxlKSl9KSwoMCx0LmpzeCkoImRpdiIse3N0eWxlOntmbGV4OjEscGFkZGluZzoiOHB4IDAiLG1pbkhlaWdodDowfSxjaGlsZHJlbjpwPygwLHQuanN4KSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsaGVpZ2h0OiIxMDAlIixjb2xvcjpTLGZvbnRTaXplOjEzfSxjaGlsZHJlbjoiTG9hZGluZyBjaGFydC4uLiJ9KTooMCx0LmpzeCkoImNhbnZhcyIse3JlZjp4LHN0eWxlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19KX0pLCgwLHQuanN4KSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6IjRweCAxMnB4Iixmb250U2l6ZToxMCxjb2xvcjpTLHRleHRBbGlnbjoicmlnaHQiLGJvcmRlclRvcDpgMXB4IHNvbGlkICR7dn1gfSxjaGlsZHJlbjooMCx0LmpzeCkoImEiLHtocmVmOiJodHRwczovL2NvaW5saWIuaW8iLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLHN0eWxlOntjb2xvcjpTLHRleHREZWNvcmF0aW9uOiJub25lIn0sY2hpbGRyZW46IlBvd2VyZWQgYnkgQ29pbmxpYiJ9KX0pXX0pfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gZT49MT90K2UudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KTp0K2UudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjZ9KX1mdW5jdGlvbiBkKHt0aGVtZTplLGNvaW5JZDppLHByZWZDb2luSWQ6c30pe3ZhciBvLHI7bGV0W2EsbF09KDAsbi51c2VTdGF0ZSkobnVsbCksW2MsZF09KDAsbi51c2VTdGF0ZSkoe2NvZGU6IlVTRCIsc3ltYm9sOiIkIixyYXRlOjF9KSxbZixtXT0oMCxuLnVzZVN0YXRlKSghMCk7KDAsbi51c2VFZmZlY3QpKCgpPT57bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcztpP2Uuc2V0KCJsZWdhY3lfaWQiLGkpOmUuc2V0KCJzeW1ib2wiLCJCVEMiKSxzJiZlLnNldCgicHJlZl9jb2luX2lkIixzKSxmZXRjaChgL2FwaS92MS93aWRnZXQ/JHtlfWApLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+e2UuZGF0YSYmbChlLmRhdGEpLGUuY3VycmVuY3kmJmQoZS5jdXJyZW5jeSl9KS5jYXRjaCgoKT0+e30pLmZpbmFsbHkoKCk9Pm0oITEpKX0sW2ksc10pO2xldCBwPSJkYXJrIj09PWUsZz1wPyIjMUIyMDMwIjoiI2ZmZmZmZiIseD1wPyIjZTVlN2ViIjoiIzFmMjkzNyIseT1wPyIjOWNhM2FmIjoiIzZiNzI4MCIsdT0iIzIyYzU1ZSIsYj0iI2VmNDQ0NCI7aWYoZnx8IWEpcmV0dXJuKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDpnLGNvbG9yOngscGFkZGluZzoxNixmb250RmFtaWx5OiJzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiLGZvbnRTaXplOjEzfSxjaGlsZHJlbjoiTG9hZGluZy4uLiJ9KTtsZXQgaj1hLnBlcmNlbnRfY2hhbmdlXzI0aD49MDtyZXR1cm4oMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDpnLGNvbG9yOngsZm9udEZhbWlseToic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIixwYWRkaW5nOiIxMHB4IDEycHgiLGhlaWdodDoiMTAwJSIsYm94U2l6aW5nOiJib3JkZXItYm94In0sY2hpbGRyZW46WygwLHQuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo2LG1hcmdpbkJvdHRvbTo4fSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJpbWciLHtzcmM6YS5pbWFnZSxhbHQ6YS5uYW1lLHdpZHRoOjI4LGhlaWdodDoyOCxzdHlsZTp7Ym9yZGVyUmFkaXVzOiI1MCUifX0pLCgwLHQuanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCx0LmpzeCkoImRpdiIse3N0eWxlOntmb250V2VpZ2h0OjYwMCxmb250U2l6ZToxNCxsaW5lSGVpZ2h0OjEuMn0sY2hpbGRyZW46YS5uYW1lfSksKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e2NvbG9yOnksZm9udFNpemU6MTB9LGNoaWxkcmVuOlthLnN5bWJvbCwiIMK3IFJhbmsgIyIsYS5yYW5rXX0pXX0pXX0pLCgwLHQuanN4cykoImRpdiIse3N0eWxlOnttYXJnaW5Cb3R0b206OH0sY2hpbGRyZW46WygwLHQuanN4KSgiZGl2Iix7c3R5bGU6e2ZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsZm9udFdlaWdodDo3MDAsZm9udFNpemU6MjAsbGluZUhlaWdodDoxLjJ9LGNoaWxkcmVuOihvPWEucHJpY2VfdXNkKmMucmF0ZSxyPWMuc3ltYm9sLG8+PTE/citvLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyfSk6citvLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czo2fSkpfSksKDAsdC5qc3hzKSgic3BhbiIse3N0eWxlOntmb250RmFtaWx5OiJtb25vc3BhY2UiLGZvbnRTaXplOjEzLGZvbnRXZWlnaHQ6NTAwLGNvbG9yOmo/dTpifSxjaGlsZHJlbjpbaj8iKyI6IiIsYS5wZXJjZW50X2NoYW5nZV8yNGg/LnRvRml4ZWQoMiksIiUiXX0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjp5LGZvbnRTaXplOjEwLG1hcmdpbkxlZnQ6M30sY2hpbGRyZW46IjI0aCJ9KV19KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7Ym9yZGVyVG9wOmAxcHggc29saWQgJHtwPyIjMzc0MTUxIjoiI2U1ZTdlYiJ9YCxwYWRkaW5nVG9wOjYsZm9udFNpemU6MTF9LGNoaWxkcmVuOlsoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsanVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4iLG1hcmdpbkJvdHRvbTozfSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJzcGFuIix7c3R5bGU6e2NvbG9yOnl9LGNoaWxkcmVuOiJNYXJrZXQgQ2FwIn0pLCgwLHQuanN4KSgic3BhbiIse3N0eWxlOntmb250RmFtaWx5OiJtb25vc3BhY2UifSxjaGlsZHJlbjpoKGEubWFya2V0X2NhcCpjLnJhdGUsYy5zeW1ib2wpfSldfSksKDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixtYXJnaW5Cb3R0b206M30sY2hpbGRyZW46WygwLHQuanN4KSgic3BhbiIse3N0eWxlOntjb2xvcjp5fSxjaGlsZHJlbjoiVm9sdW1lIDI0aCJ9KSwoMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Zm9udEZhbWlseToibW9ub3NwYWNlIn0sY2hpbGRyZW46aChhLnZvbHVtZV8yNGgqYy5yYXRlLGMuc3ltYm9sKX0pXX0pLCgwLHQuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIsbWFyZ2luQm90dG9tOjN9LGNoaWxkcmVuOlsoMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Y29sb3I6eX0sY2hpbGRyZW46IkNoYW5nZSAxaCJ9KSwoMCx0LmpzeHMpKCJzcGFuIix7c3R5bGU6e2ZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsY29sb3I6KGEucGVyY2VudF9jaGFuZ2VfMWg/PzApPj0wP3U6Yn0sY2hpbGRyZW46WyhhLnBlcmNlbnRfY2hhbmdlXzFoPz8wKT49MD8iKyI6IiIsKGEucGVyY2VudF9jaGFuZ2VfMWg/PzApLnRvRml4ZWQoMiksIiUiXX0pXX0pLCgwLHQuanN4cykoImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiJ9LGNoaWxkcmVuOlsoMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Y29sb3I6eX0sY2hpbGRyZW46IkNoYW5nZSA3ZCJ9KSwoMCx0LmpzeHMpKCJzcGFuIix7c3R5bGU6e2ZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsY29sb3I6KGEucGVyY2VudF9jaGFuZ2VfN2Q/PzApPj0wP3U6Yn0sY2hpbGRyZW46WyhhLnBlcmNlbnRfY2hhbmdlXzdkPz8wKT49MD8iKyI6IiIsKGEucGVyY2VudF9jaGFuZ2VfN2Q/PzApLnRvRml4ZWQoMiksIiUiXX0pXX0pXX0pXX0pfWZ1bmN0aW9uIGgoZSx0KXtyZXR1cm4gZT49MWUxMj90KyhlLzFlMTIpLnRvRml4ZWQoMikrIlQiOmU+PTFlOT90KyhlLzFlOSkudG9GaXhlZCgyKSsiQiI6ZT49MWU2P3QrKGUvMWU2KS50b0ZpeGVkKDIpKyJNIjplPj0xZTM/dCsoZS8xZTMpLnRvRml4ZWQoMikrIksiOnQrZS50b0ZpeGVkKDIpfWZ1bmN0aW9uIGYoe3RoZW1lOmV9KXtsZXRbaSxzXT0oMCxuLnVzZVN0YXRlKShbXSksW28scl09KDAsbi51c2VTdGF0ZSkoIkJUQyIpLFthLGxdPSgwLG4udXNlU3RhdGUpKCJVU0QiKSxbYyxkXT0oMCxuLnVzZVN0YXRlKSgiMSIpLFtoLGZdPSgwLG4udXNlU3RhdGUpKCIiKSxbcCxnXT0oMCxuLnVzZVN0YXRlKSghMCk7KDAsbi51c2VFZmZlY3QpKCgpPT57ZmV0Y2goIi9hcGkvdjEvd2lkZ2V0P3RvcD01MCIpLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+e2UuZGF0YSYmcyhlLmRhdGEpfSkuY2F0Y2goKCk9Pnt9KS5maW5hbGx5KCgpPT5nKCExKSl9LFtdKTtsZXQgeD0oMCxuLnVzZUNhbGxiYWNrKSgoKT0+e2xldCBlPXBhcnNlRmxvYXQoYyl8fDA7aWYoIlVTRCI9PT1hKXtsZXQgdD1pLmZpbmQoZT0+ZS5zeW1ib2w9PT1vKTt0JiZmKG0oZSp0LnByaWNlX3VzZCkpfWVsc2UgaWYoIlVTRCI9PT1vKXtsZXQgdD1pLmZpbmQoZT0+ZS5zeW1ib2w9PT1hKTt0JiZ0LnByaWNlX3VzZD4wJiZmKG0oZS90LnByaWNlX3VzZCkpfWVsc2V7bGV0IHQ9aS5maW5kKGU9PmUuc3ltYm9sPT09byksbj1pLmZpbmQoZT0+ZS5zeW1ib2w9PT1hKTt0JiZuJiZuLnByaWNlX3VzZD4wJiZmKG0oZSp0LnByaWNlX3VzZC9uLnByaWNlX3VzZCkpfX0sW2MsbyxhLGldKTsoMCxuLnVzZUVmZmVjdCkoKCk9PntpLmxlbmd0aD4wJiZ4KCl9LFtpLHhdKTtsZXQgeT0iZGFyayI9PT1lLHU9eT8iIzFCMjAzMCI6IiNmZmZmZmYiLGI9eT8iI2U1ZTdlYiI6IiMxZjI5MzciLGo9eT8iIzljYTNhZiI6IiM2YjcyODAiLFM9eT8iIzM3NDE1MSI6IiNlNWU3ZWIiLHY9eT8iIzExMTgyNyI6IiNmOWZhZmIiLF89eT8iIzM3NDE1MSI6IiNlNWU3ZWIiLHc9e3dpZHRoOiIxMDAlIixwYWRkaW5nOiI2cHggOHB4Iixmb250U2l6ZToxMixiYWNrZ3JvdW5kOnYsY29sb3I6Yixib3JkZXI6YDFweCBzb2xpZCAke1N9YCxib3JkZXJSYWRpdXM6NSxvdXRsaW5lOiJub25lIixhcHBlYXJhbmNlOiJhdXRvIn0saz17d2lkdGg6IjEwMCUiLHBhZGRpbmc6IjZweCA4cHgiLGZvbnRTaXplOjEzLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsYmFja2dyb3VuZDp2LGNvbG9yOmIsYm9yZGVyOmAxcHggc29saWQgJHtTfWAsYm9yZGVyUmFkaXVzOjUsb3V0bGluZToibm9uZSIsYm94U2l6aW5nOiJib3JkZXItYm94In07aWYocClyZXR1cm4oMCx0LmpzeCkoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kOnUsY29sb3I6YixwYWRkaW5nOjE2LGZvbnRGYW1pbHk6InN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiIsZm9udFNpemU6MTN9LGNoaWxkcmVuOiJMb2FkaW5nLi4uIn0pO2xldCBGPVt7c3ltYm9sOiJVU0QiLG5hbWU6IlVTIERvbGxhciJ9LC4uLmkubWFwKGU9Pih7c3ltYm9sOmUuc3ltYm9sLG5hbWU6ZS5uYW1lfSkpXTtyZXR1cm4oMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDp1LGNvbG9yOmIsZm9udEZhbWlseToic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIixwYWRkaW5nOiIxMHB4IDEycHgiLGhlaWdodDoiMTAwJSIsYm94U2l6aW5nOiJib3JkZXItYm94IixkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7Zm9udFdlaWdodDo2MDAsZm9udFNpemU6MTMsbWFyZ2luQm90dG9tOjEwLHRleHRBbGlnbjoiY2VudGVyIn0sY2hpbGRyZW46IkNyeXB0b2N1cnJlbmN5IENvbnZlcnRlciJ9KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjh9LGNoaWxkcmVuOlsoMCx0LmpzeCkoImxhYmVsIix7c3R5bGU6e2Rpc3BsYXk6ImJsb2NrIixmb250U2l6ZToxMCxjb2xvcjpqLG1hcmdpbkJvdHRvbTozfSxjaGlsZHJlbjoiRnJvbSJ9KSwoMCx0LmpzeCkoInNlbGVjdCIse3ZhbHVlOm8sb25DaGFuZ2U6ZT0+cihlLnRhcmdldC52YWx1ZSksc3R5bGU6dyxjaGlsZHJlbjpGLm1hcChlPT4oMCx0LmpzeHMpKCJvcHRpb24iLHt2YWx1ZTplLnN5bWJvbCxjaGlsZHJlbjpbZS5zeW1ib2wsIiAtICIsZS5uYW1lXX0sYGZyb20tJHtlLnN5bWJvbH1gKSl9KSwoMCx0LmpzeCkoImlucHV0Iix7dHlwZToibnVtYmVyIix2YWx1ZTpjLG9uQ2hhbmdlOmU9PmQoZS50YXJnZXQudmFsdWUpLHN0eWxlOnsuLi5rLG1hcmdpblRvcDo0fSxwbGFjZWhvbGRlcjoiQW1vdW50In0pXX0pLCgwLHQuanN4KSgiZGl2Iix7c3R5bGU6e3RleHRBbGlnbjoiY2VudGVyIixtYXJnaW5Cb3R0b206OH0sY2hpbGRyZW46KDAsdC5qc3gpKCJidXR0b24iLHtvbkNsaWNrOigpPT57cihhKSxsKG8pfSxzdHlsZTp7YmFja2dyb3VuZDpfLGJvcmRlcjoibm9uZSIsYm9yZGVyUmFkaXVzOiI1MCUiLHdpZHRoOjI4LGhlaWdodDoyOCxmb250U2l6ZToxNCxjdXJzb3I6InBvaW50ZXIiLGNvbG9yOmIsbGluZUhlaWdodDoiMjhweCJ9LGNoaWxkcmVuOiLih4UifSl9KSwoMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOjEwfSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJsYWJlbCIse3N0eWxlOntkaXNwbGF5OiJibG9jayIsZm9udFNpemU6MTAsY29sb3I6aixtYXJnaW5Cb3R0b206M30sY2hpbGRyZW46IlRvIn0pLCgwLHQuanN4KSgic2VsZWN0Iix7dmFsdWU6YSxvbkNoYW5nZTplPT5sKGUudGFyZ2V0LnZhbHVlKSxzdHlsZTp3LGNoaWxkcmVuOkYubWFwKGU9PigwLHQuanN4cykoIm9wdGlvbiIse3ZhbHVlOmUuc3ltYm9sLGNoaWxkcmVuOltlLnN5bWJvbCwiIC0gIixlLm5hbWVdfSxgdG8tJHtlLnN5bWJvbH1gKSl9KSwoMCx0LmpzeCkoImRpdiIse3N0eWxlOnsuLi5rLG1hcmdpblRvcDo0LG1pbkhlaWdodDoxNixiYWNrZ3JvdW5kOl99LGNoaWxkcmVuOmh8fCIwLjAwIn0pXX0pLCgwLHQuanN4KSgiYnV0dG9uIix7b25DbGljazp4LHN0eWxlOnt3aWR0aDoiMTAwJSIscGFkZGluZzoiOHB4Iixmb250U2l6ZToxMyxmb250V2VpZ2h0OjYwMCxiYWNrZ3JvdW5kOiIjM2I4MmY2Iixjb2xvcjoiI2ZmZiIsYm9yZGVyOiJub25lIixib3JkZXJSYWRpdXM6NixjdXJzb3I6InBvaW50ZXIifSxjaGlsZHJlbjoiQ29udmVydCJ9KV19KX1mdW5jdGlvbiBtKGUpe3JldHVybiBlPj0xP2UudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KTplPj0uMDAxP2UudG9Mb2NhbGVTdHJpbmcoImVuLVVTIix7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjZ9KTplLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czo4fSl9ZnVuY3Rpb24gcCh7dGhlbWU6ZSxwcmVmQ29pbklkOmksaW52ZXJ0SG92ZXI6b30pe2xldFtyLGFdPSgwLG4udXNlU3RhdGUpKFtdKSxbbCxjXT0oMCxuLnVzZVN0YXRlKSh7Y29kZToiVVNEIixzeW1ib2w6IiQiLHJhdGU6MX0pLFtkLGhdPSgwLG4udXNlU3RhdGUpKCEwKSxmPSgwLG4udXNlUmVmKShudWxsKSxbbSxwXT0oMCxuLnVzZVN0YXRlKSghMSk7KDAsbi51c2VFZmZlY3QpKCgpPT57bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh7dG9wOiI1MCIsc3BhcmtsaW5lOiIwIn0pO2kmJmUuc2V0KCJwcmVmX2NvaW5faWQiLGkpLGZldGNoKGAvYXBpL3YxL3dpZGdldD8ke2V9YCkudGhlbihlPT5lLmpzb24oKSkudGhlbihlPT57ZS5kYXRhJiZhKGUuZGF0YSksZS5jdXJyZW5jeSYmYyhlLmN1cnJlbmN5KX0pLmNhdGNoKCgpPT57fSkuZmluYWxseSgoKT0+aCghMSkpfSxbaV0pO2xldCBnPSJkYXJrIj09PWUseD1nPyIjMUIyMDMwIjoiI2ZmZmZmZiIseT1nPyIjZTVlN2ViIjoiIzFmMjkzNyI7aWYoZClyZXR1cm4oMCx0LmpzeCkoImRpdiIse3N0eWxlOntiYWNrZ3JvdW5kOngsY29sb3I6eSxoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzoiMCAxMnB4Iixmb250U2l6ZToxMixmb250RmFtaWx5OiJzeXN0ZW0tdWksIHNhbnMtc2VyaWYifSxjaGlsZHJlbjoiTG9hZGluZy4uLiJ9KTtsZXQgdT1bLi4uciwuLi5yXTtyZXR1cm4oMCx0LmpzeHMpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDp4LGNvbG9yOnksZm9udEZhbWlseToic3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIixoZWlnaHQ6IjEwMHZoIixvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LG9uTW91c2VFbnRlcjooKT0+cCghMCksb25Nb3VzZUxlYXZlOigpPT5wKCExKSxjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtyZWY6ZixzdHlsZTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6MjQsd2hpdGVTcGFjZToibm93cmFwIixoZWlnaHQ6IjEwMCUiLHBhZGRpbmdMZWZ0OjEyLGFuaW1hdGlvbjooInllcyI9PT1vP206IW0pPyJ3aWRnZXQtbWFycXVlZSAxMjBzIGxpbmVhciBpbmZpbml0ZSI6Im5vbmUifSxjaGlsZHJlbjp1Lm1hcCgoZSxpKT0+e3ZhciBuLG87bGV0IHI9ZS5wZXJjZW50X2NoYW5nZV8yNGg+PTA7cmV0dXJuKDAsdC5qc3hzKSgiYSIse2hyZWY6YGh0dHBzOi8vY29pbmxpYi5pbyR7KDAscy5jb2luVXJsKShlLnN5bWJvbCxlLm5hbWUpfWAsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsc3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo1LGZvbnRTaXplOjEzLHRleHREZWNvcmF0aW9uOiJub25lIixjb2xvcjp5LGZsZXhTaHJpbms6MH0sY2hpbGRyZW46WygwLHQuanN4KSgiaW1nIix7c3JjOmUuaW1hZ2UsYWx0OmUubmFtZSx3aWR0aDoxNixoZWlnaHQ6MTYsc3R5bGU6e2JvcmRlclJhZGl1czoiNTAlIn19KSwoMCx0LmpzeCkoInNwYW4iLHtzdHlsZTp7Zm9udFdlaWdodDo1MDB9LGNoaWxkcmVuOmUuc3ltYm9sfSksKDAsdC5qc3gpKCJzcGFuIix7c3R5bGU6e2ZvbnRGYW1pbHk6Im1vbm9zcGFjZSJ9LGNoaWxkcmVuOihuPWUucHJpY2VfdXNkKmwucmF0ZSxvPWwuc3ltYm9sLG4+PTE/bytuLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyfSk6bytuLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czo2fSkpfSksKDAsdC5qc3hzKSgic3BhbiIse3N0eWxlOntmb250RmFtaWx5OiJtb25vc3BhY2UiLGZvbnRXZWlnaHQ6NTAwLGNvbG9yOnI/IiMyMmM1NWUiOiIjZWY0NDQ0Iixmb250U2l6ZToxMn0sY2hpbGRyZW46W3I/IisiOiIiLGUucGVyY2VudF9jaGFuZ2VfMjRoPy50b0ZpeGVkKDIpLCIlIl19KV19LGAke2Uuc3ltYm9sfS0ke2l9YCl9KX0pLCgwLHQuanN4KSgic3R5bGUiLHtjaGlsZHJlbjpgCiAgICAgICAgQGtleWZyYW1lcyB3aWRnZXQtbWFycXVlZSB7CiAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQogICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfQogICAgICAgIH0KICAgICAgYH0pXX0pfWZ1bmN0aW9uIGcoe3R5cGU6ZSxwYXJhbXM6aX0pe2xldCBuLHM9aS50aGVtZT8/ImRhcmsiLHI9ImRhcmsiPT09cz8iIzFCMjAzMCI6IiNmZmZmZmYiO3N3aXRjaChlKXtjYXNlImZ1bGxfdjIiOm49KDAsdC5qc3gpKG8se3RoZW1lOnMsY250OnBhcnNlSW50KGkuY250Pz8iNiIsMTApLGdyYXBoOiJubyIhPT1pLmdyYXBoLHByZWZDb2luSWQ6aS5wcmVmX2NvaW5faWR9KTticmVhaztjYXNlImNoYXJ0IjpuPSgwLHQuanN4KShsLHt0aGVtZTpzLGNvaW5JZDppLmNvaW5faWQscHJlZkNvaW5JZDppLnByZWZfY29pbl9pZH0pO2JyZWFrO2Nhc2Uic2luZ2xlX3YyIjpuPSgwLHQuanN4KShkLHt0aGVtZTpzLGNvaW5JZDppLmNvaW5faWQscHJlZkNvaW5JZDppLnByZWZfY29pbl9pZH0pO2JyZWFrO2Nhc2UiY29udmVydGVyIjpuPSgwLHQuanN4KShmLHt0aGVtZTpzfSk7YnJlYWs7Y2FzZSJob3Jpem9udGFsX3YyIjpuPSgwLHQuanN4KShwLHt0aGVtZTpzLHByZWZDb2luSWQ6aS5wcmVmX2NvaW5faWQsaW52ZXJ0SG92ZXI6aS5pbnZlcnRfaG92ZXJ9KTticmVhaztkZWZhdWx0Om49KDAsdC5qc3hzKSgiZGl2Iix7c3R5bGU6e3BhZGRpbmc6MTYsZm9udFNpemU6MTMsZm9udEZhbWlseToic3lzdGVtLXVpLCBzYW5zLXNlcmlmIn0sY2hpbGRyZW46WyJVbmtub3duIHdpZGdldCB0eXBlOiAiLGVdfSl9cmV0dXJuKDAsdC5qc3gpKCJkaXYiLHtzdHlsZTp7YmFja2dyb3VuZDpyLG1pbkhlaWdodDoiMTAwdmgifSxjaGlsZHJlbjpufSl9ZnVuY3Rpb24geCh7dHlwZTplfSl7bGV0IG49KDAsaS51c2VTZWFyY2hQYXJhbXMpKCkscz17fTtuLmZvckVhY2goKGUsdCk9PntzW3RdPWV9KTtsZXQgbz1lPz9zLnR5cGU/PyJmdWxsX3YyIjtyZXR1cm4oMCx0LmpzeCkoZyx7dHlwZTpvLHBhcmFtczpzfSl9ZS5zKFsiV2lkZ2V0Q2xpZW50IiwoKT0+eF0sNzkyOTQpfV0pOw=="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/responsive.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.618Z","timestamp":1785126645618,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/responsive.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 7273\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":53067,"size_decoded":7521,"mime_type":"text/css","magic":"ASCII text","md5":"5e181ff06e9ec90a7c9232ec8ce48552","sha1":"1bfbc848ae859f9b6a8b07912721fac989b46f56","sha256":"9995b250c43fe14d86bef7e23cee541aba40c021b3a67288fbf9db01b040cca7","sha512":"f07f9ab084c30702fc50124b921319808f3a353609d125c27dc0d3971388d9f7eae63c4ef2ed4e2ff2b4de707c9ae645bb34b6288c37c2368ebb006ab9704ef3","ssdeep":"1536:3ZJvtDQ4dYiJDWWnCJgDms9pl4JVYdRdEaiJbsJZUvfDX:ftD5YjW1DJh76X","tlshash":"3d33978fa6e311046c5bb47aafaa36417179e003d28ddca1be9c614dcfc56e84dd274c","first_seen":"2024-01-17T10:04:15Z","last_seen":"2026-07-27T04:32:40.512316Z","times_seen":9,"resource_available":false,"data":"LyogTWVkaXVtIExheW91dDogMTkyMHB4LiAqLwoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTIwcHgpIHsgCiAgICAudGVzdGltb25pYWwtY29udGVudCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwMHB4OwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyMSBwOmJlZm9yZXsKICAgICAgICByaWdodDo0MiU7CiAgICB9CiAgICAuc2VjdGlvbi1oZWFkZXIxIHA6YWZ0ZXJ7CiAgICAgICAgbGVmdDo0MiU7CiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsewogICAgICAgIGxlZnQ6MjclOwogICAgfQogICAgLmFib3V0LXRodW1iIGltZ3sKICAgICAgICB3aWR0aDoxMDAlOwogICAgfQogICAgLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgLnN1YmhlYWRpbmcgLnRpdGxlewogICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWJ7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1sZWZ0OjBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWIxIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wcHg7IAogICAgfQoKfQovKiBNZWRpdW0gTGF5b3V0OiAxMzYwcHguICovCgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDFweCkgYW5kIChtYXgtd2lkdGg6IDEzNzBweCkgeyAKLnNlY3Rpb24taGVhZGVyMSBwOmFmdGVyIHsKICAgIGxlZnQ6IDQwJTsKfQouc2VjdGlvbi1oZWFkZXIxIHA6YmVmb3JlIHsKICAgIHJpZ2h0OiA0MCU7Cn0KLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgd2lkdGg6IDEwMHB4OwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAxMDBweDsKICAgIGZvbnQtc2l6ZTogNTBweDsKfQoub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsewogICAgbGVmdDoyMCU7CiAgICB0b3A6LTYwcHg7Cn0KLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaXsKICAgIHBhZGRpbmctYm90dG9tOiA4MnB4Owp9Ci5wb3B1bGFyLXBsYW4tdGh1bWJ7CiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgICAgICBtYXJnaW4tbGVmdDowcHg7CiAgICAgICAgd2lkdGg6MzAlOwogICAgfQogICAgLnBvcHVsYXItcGxhbi10aHVtYjEgewogICAgICAgIG1hcmdpbi1yaWdodDogLTBweDsgCiAgICB9Cgp9Ci8qIE1lZGl1bSBMYXlvdXQ6IDEyODBweC4gKi8KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHsgCiAgICAuc3VwcG9ydC1iYXItdG9wIGEgewogICAgICAgIHBhZGRpbmc6IDEwcHggNXB4OwogICAgfQogICAgLm1haW4tbWVudSB1bCBsaSBhewogICAgICAgIHBhZGRpbmc6MzdweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIH0KICAgIC5tYWluLW1lbnUubWVudS1maXhlZCAgbGkgYXsKICAgICAgICBwYWRkaW5nOjIwcHggN3B4OwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyIHA6YmVmb3JlewogICAgICAgIHJpZ2h0OjM1JTsKICAgIH0KICAgIC5zZWN0aW9uLWhlYWRlciBwOmFmdGVyewogICAgICAgIGxlZnQ6MzUlOwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyMSBwOmJlZm9yZSB7CiAgICAgICAgcmlnaHQ6IDM2JTsKICAgIH0KICAgIC5zZWN0aW9uLWhlYWRlcjEgcDphZnRlciB7CiAgICAgICAgbGVmdDogMzYlOwogICAgfQogICAgLmhlYWRlci1hcmVhewogICAgICAgIHBhZGRpbmc6IDQwcHggMHB4OwogICAgfQogICAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpewogICAgICAgIG1hcmdpbi1yaWdodDo0MHB4OwogICAgfQogICAgLm5ld3NsZXR0ZXItdGV4dCBoM3sKICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICB9CiAgICAudGVhbS1pdGVtICAudGVhbS1vdmVybGF5ewogICAgICAgIHJpZ2h0OjIwcHg7CiAgICB9CiAgICAuaGVhZGVyLXRpdGxlIGgxIHsKICAgICAgICBmb250LXNpemU6IDM1cHg7CiAgICB9CgogICAgLmhlYWRlci10aXRsZSBwIHsKICAgICAgICBmb250LXNpemU6IDM1cHg7CiAgICB9CiAgICAuaGVhZGVyLXNlY3Rpb24tdG9wLXBhcnQgaDEsIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMnsKICAgICAgICBmb250LXNpemU6MzhweDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0zIC5vbmxpbmUtdGh1bWIxIHsKICAgICAgICBtYXJnaW46IDBweCAwcHg7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMiAub25saW5lLXRleHQgYnV0dG9uewogICAgICAgIHBhZGRpbmc6MTBweCAzNXB4OwogICAgfQoKICAgIC5kb21haW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF0gewogICAgICAgIHdpZHRoOiA1MCU7CiAgICB9CiAgICAuc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZSBwewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIH0KCiAgICAuc2hhZGUtYm94IHAgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIH0KCiAgICAuc2hhZGUtYm94IHA6Zmlyc3QtY2hpbGQ6YWZ0ZXIgewogICAgICAgIHdpZHRoOiA1MHB4OwogICAgfQoKICAgIC5zaGFkZS1ib3g6YWZ0ZXIgewogICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAzOHB4OwogICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMzhweDsKICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAyMHB4OwogICAgICAgIGJvdHRvbTogLTIwcHg7CiAgICB9CgogICAgLnNoYWRlLWJveDpiZWZvcmUgewogICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAzOHB4OwogICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMzhweDsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4OwogICAgICAgIHRvcDogLTIwcHg7CiAgICB9CgogICAgLm1haW4tbWVudSB1bCBsaS5tZWdhLW1lbnUgdWwgbGkgLmJveGVkLWJ0biB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQoKICAgIC5tZW51LXRpdGxlIHAgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQoKICAgIC5zZXJ2aWNlLWNvbnRlbnQgaDQgewogICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgIH0KCiAgICAuY2FsbC10by1hY3Rpb24gaDEgewogICAgICAgIGZvbnQtc2l6ZTogNDBweDsKICAgIH0KCiAgICAucmF0aW5nIHsKICAgICAgICBmb250LXNpemU6IDhweDsKICAgIH0KCiAgICAuZm9vdGVyLW1lbnUgdWwgbGkgYSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgfQoKICAgIC5mb290ZXItbWVudSB1bCBsaSB7CiAgICAgICAgcGFkZGluZzogMCA1cHg7CiAgICB9CgogICAgLmxpdmUtY2hhdC1idG4gewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICB9CgogICAgLnBheW1lbnQtbWV0aG9kIHsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgfQogICAgLmhlYWRlci1zZWN0aW9uLmhvbWUtMiBpbWd7CiAgICAgICAgd2lkdGg6ICAzODBweDsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi5ob21lLTMgaW1nIHsKICAgIHdpZHRoOiA0MjBweDsKICAgIH0KICAgIC5ob21lLTMtcG9pbnQtbGluayB7CiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi5ob21lLTQgLnN1Yi1oZWFkZXIgewogICAgZm9udC1zaXplOiAyOHB4OwogICAgfQogICAgLmhvbWU0LXNsaWRlci1idG4gewogICAgd2lkdGg6IDIwMHB4OwogICAgZm9udC1zaXplOiAxNXB4OwogICAgfQogICAgLnNsaWRlci1idG57CiAgICAgICAgcGFkZGluZy10b3A6IDA7CiAgICB9CiAgICAubG9naW4tcGFnZS13cmFwcGVyOmFmdGVyewogICAgYm9yZGVyLXJpZ2h0OiAzOTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1sZWZ0OiAzOTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIH0KICAgIC5sb2dpbi1wYWdlLXdyYXBwZXI6YmVmb3JlIHsKICAgIGJvcmRlci1yaWdodDogMzkwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItbGVmdDogMzkwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CiAgICAucGxhbi1idG46YmVmb3JlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnBsYW4tYnRuOmFmdGVyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnNpbmdsZS1wcmljaW5nLXRhYmxlLmhvbWUtNCAucHJpY2luZy1idG57CiAgICAgICAgbGVmdDogMjIlOwogICAgfQogICAgLnNpbmdsZS1wcmljaW5nLWJveC1maXZlIHsKICAgIHdpZHRoOiA0NDBweDsKICAgIGhlaWdodDogMjU0cHg7CiAgICB9CiAgICAucHJpY2luZy1ib2R5LWZvdXIgewogICAgcGFkZGluZzogMDsKICAgIHBhZGRpbmctdG9wOiAxMHB4OwogICAgfQogICAgLnNoYXJlZC1ib2R5IGgzewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAgIC5wYWdlLTQwNCAuaW1hZ2UtdG9wewogICAgICAgIGhlaWdodDogMTAwcHg7CiAgICB9CiAgICAuYWJvdXQtdGFicy1ib3h7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4NnB4OwogICAgfQogICAgLmFib3V0LXBhZ2UgLnBvc3QtaGVhZGVyIGgzewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAgIC5jb250YWN0LXBhZ2Utc29jaWFsLWljb24gaDIgewogICAgICAgICAgICBmb250LXNpemU6IDIzcHg7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1hcnJvdy1kb3duIHsKICAgICAgICAgICAgbGVmdDogMjJweDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWFycm93IHsKICAgICAgICAgICAgbGVmdDogMjJweDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWljb24gewogICAgICAgICAgICBtYXJnaW4tbGVmdDogLTVweDsKICAgICAgICB9CiAgICAgICAgLnZwcy1mZWF0dXJlIC5mZWF0dXJlLWhlYWRlciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIG1hcmdpbjowcHg7CiAgICAgICAgfQogICAgICAgIC52cHMtZmVhdHVyZSAuZmVhdHVyZS1saXN0IHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICB9CiAgICAgICAgLmJsb2ctbGlzdCAuYmxvZy10aHVtYiAuYmxvZy10ZXh0IHsKICAgICAgICAgICAgcmlnaHQ6IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5ibG9nLWxpc3QgLmJsb2ctY29udGVudCB1bCBsaXsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICAgICAgfQogICAgICAgIC5ibG9nLWxpc3QgLmJsb2ctY29udGVudCB1bCBsaSBzcGFuewogICAgICAgICAgICBmb250LXNpemU6IDlweDsKICAgICAgICB9CiAgICAgICAgLnRlc3RpbW9uaWFsLWNvbnRlbnR7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OjIwcHg7CiAgICAgICAgfQogICAgICAgIC50ZXN0aW1vbmlhbC1saXN0ewogICAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4OwogICAgICAgIH0KICAgICAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgaDN7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgICAgfQogICAgICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBpIHsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7CiAgICAgICAgfQogICAgICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgc3BhbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4OwogICAgICAgIH0KICAgICAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsewogICAgICAgICAgICBsZWZ0OjIwJTsKICAgICAgICAgICAgdG9wOi02MHB4OwogICAgICAgIH0KICAgICAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpewogICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAycHg7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTAwcHg7CiAgICAgICAgfQogICAgICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmJlZm9yZSB7CiAgICAgICAgICAgIGJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLXNvY2lhbC1saW5rcyBhIGkgewogICAgICAgICAgICB3aWR0aDogMzBweDsKICAgICAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICAgICB9CiAgICAgICAgLnBheW1lbnQtbWV0aG9kIGltZyB7CiAgICAgICAgICAgIHdpZHRoOiAzNXB4OwogICAgICAgICAgICBoZWlnaHQ6IDI1cHg7CiAgICAgICAgfQogICAgICAgIC53aWRnZXQtdGl0bGUgcDpiZWZvcmV7CiAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIH0KICAgICAgICAud2lkZ2V0LXRpdGxlIHA6YWZ0ZXJ7CiAgICAgICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIH0KICAgICAgICAucmVmZXJyYWwtYW1vdW50IGg1ewogICAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWluZm8gLmNvbnRhY3QtY29udGVudCAuY29udGFjdC1saXN0IHVsIGxpIC5jb250YWN0LXRleHQgcHsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaSAuY29udGFjdC10ZXh0IHAgc3BhbnsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIH0KICAgICAgICAuY2FydC1jb250ZW50IHRhYmxlewogICAgICAgICAgICB3aWR0aDoxMDAlOwogICAgICAgICAgICBtaW4td2lkdGg6IDExNDBweDsKICAgICAgICAgICAgb3ZlcmZsb3ctWDogYXV0bzsKICAgICAgICB9CiAgICAgICAgLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudCBoNHsKICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuYmxvZy1saXN0IC5ibG9nLWNvbnRlbnQgLmJsb2ctaGVhZGVyIGg0IGF7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICB9CiAgICAgICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAub3RoZXItYmxvZyB1bCBsaSB7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3B4OwogICAgICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgfQogICAgICAgIC53aWRnZXQtc2VhcmNoIGJ1dHRvbnsKICAgICAgICAgICAgd2lkdGg6MjglOwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1jb250ZW50IHsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDQ1cHg7CiAgICAgICAgfQogICAgICAgIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHsKICAgICAgICAgICAgYm90dG9tOiAtMzVweDsKICAgICAgICB9CiAgICAgICAgLnNpbmdsZS1kb21haW4tcmF0ZS1jaXJjbGV7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIH0KICAgICAgICAucG9wdWxhci1wbGFuLXRodW1iewogICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICAgICAgbWFyZ2luLWxlZnQ6MHB4OwogICAgICAgIHdpZHRoOjMwJTsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWIxIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wcHg7IAogICAgfQogICAgLnNlcnZpY2UtaXRlbSAuc2VydmljZXMtY29udGVudC1saXN0IC5zZXJ2aWNlLWNvbnRlbnQtaXRlbSAuc2VydmljZS10ZXh0ewogICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIH0KICAgIC5ibG9nLWxhdGVzdCAuc2lkZWJhci1wb3N0cyAudGV4dC1ib3gtcmlnaHQgaDYgYXsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CiAgICAubG9naW4tYWRtaW4gLnNvY2lhbC1sb2dpbiB1bCBsaSBhewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIH0KICAgIC5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWhlYWRlcjE6YWZ0ZXJ7CiAgICAgICAgbGVmdDo1JTsKICAgIH0KICAgIC5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWluZm8xIHVsIGxpewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5zbGljay1wcmV2IHsKICAgICAgICBsZWZ0OiAtODBweDsKICAgIH0KCiAgICAgICAgCn0KLyogVGFibGV0IExheW91dDogNzY4cHguICovCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzcwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkgeyAKICAuc3VwcG9ydC1wYXJ0LW9uZSB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgICNtb2JpbGUtbWVudSB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubWFpbi1tZW51IC5tZW51LWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItdGl0bGUgaDEsLmhlYWRlci10aXRsZSBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAzNXB4OwogICAgICAgIH0KICAgICAgICAubWFpbi1tZW51IHVsIGxpIC5tZWdhLW1lbnUzewogICAgICAgICAgICBsZWZ0OiAxMTBweDsKICAgICAgICB9CgogICAgICAgIC5kb21haW4taW5kaWNhdG9yIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5zaGFkZS1ib3ggewogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmRvbWFpbi1wcmljZSB7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMCU7CiAgICAgICAgfQogICAgICAgIC5zaW5nbGUtcHJpY2luZy10YWJsZSB7CiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKICAgICAgICB9CiAgICAgICAgLmNhbGwtdG8tYWN0aW9uIGgxIHsKICAgICAgICB0b3A6IDMwcHg7CiAgICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICAgIH0KICAgICAgICAuc2luZ2xlLXByb2plY3QtYm94IHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMCU7CiAgICAgICAgfQogICAgICAgIC50ZXN0aW1vbmFpbC1jYXJvdXNlbCAub3dsLW5hdiBkaXYgewogICAgICAgIG1hcmdpbjogMCA3JTsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1zb2NpYWwtbGlua3MgewogICAgICAgIGxlZnQ6IDM3JTsKICAgICAgICB9CiAgICAgICAgLmNvcHlyaWdodC10ZXh0ewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItc3VwcG9ydC1iYXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItc2VjdGlvbi5ob21lLTIgaW1nIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAuaGVhZGVyLXNlY3Rpb24uaG9tZS0yIC5oZWFkZXItdGl0bGUgcCB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLXN1cHBvcnQtYmFyLWhvbWUtMiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgICAgLnNjcm9sbC10by10b3AgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5zaW5nbGUtcHJvamVjdC1ib3gtaG9tZS0yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogMzAlOwogICAgICAgIH0KICAgICAgICAuc3VwcG9ydC1iYXIuaG9tZS00IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICAgIH0uc3VwcG9ydC1iYXIuaG9tZS00IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItdGl0bGUgewogICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuaGVhZGVyLXNlY3Rpb24uaG9tZS0zIGltZ3sKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgICAgLmhvbWUtMi1kb21haW4tcHJpY2UgewogICAgICAgICAgICBwYWRkaW5nLXRvcDogNTBweDsKICAgICAgICB9CiAgICAgICAgLnNpbmdsZS1wcmljaW5nLXRhYmxlLmhvbWUtNHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTAwcHg7IAogICAgICAgIH0KICAgICAgICAuc2luZ2xlLXByaWNpbmctdGFibGUuaG9tZS00IC5wcmljZS1ib3ggewogICAgICAgICAgICB0b3A6IDYlOwogICAgICAgICAgICBsZWZ0OiAzNyU7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLXRhYmxlLmhvbWUtNCAuc2VjdGlvbi10aXRsZSBwewogICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgICB9CgogICAgICAgIC5wcmljZS1ib3ggewogICAgICAgICAgICB0b3A6IDIxJTsKICAgICAgICAgICAgbGVmdDogMzclOwogICAgICAgIH0KICAgICAgICAubG9naW4tcGFnZS13cmFwcGVyOmFmdGVyewogICAgICAgICAgICBib3JkZXItcmlnaHQ6IDM2MHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItbGVmdDogMzYwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgfQogICAgICAgIC5sb2dpbi1wYWdlLXdyYXBwZXI6YmVmb3JlewogICAgICAgICAgICBib3JkZXItcmlnaHQ6IDM2MHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXItbGVmdDogMzYwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgfQogICAgICAgIC5zbGlja25hdl9tZW51IC5zbGlja25hdl9idG4gewogICAgICAgICAgICBtYXJnaW46IDVweCA1cHggMTdweDsKICAgICAgICB9CiAgICAgICAgLnNpbmdsZS1wcmljaW5nLWJveC1maXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMzOTU0NjE7CiAgICAgICAgbWFyZ2luOiAyMDBweCAwOwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzOTU0NjE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNDVweDsKICAgICAgICBoZWlnaHQ6IDE5N3B4OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWhlYWRlci1mb3VyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0yMSU7CiAgICAgICAgICAgIGxlZnQ6IDI1JTsKICAgICAgICB9CgogICAgICAgIC5wcmljaW5nLWhlYWRlci1mb3VyIGg0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgfQoKICAgICAgICAub3JkZXItYnRuIHsKICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctYm9keS1mb3VyewogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIH0KICAgICAgICAuc2xpZGVyLXByaWNlLWJveCB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5zaW5nbGUtcHJpY2Vib3gtYm90dG9tIC5pbnB1dC1ib3ggewogICAgICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgICAgIH0KICAgICAgICAuc2luZ2xlLXByaWNlYm94LWJvdHRvbSB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5wcmljZS10YWJsZS1zaXggdGhlYWQgdHIgdGh7CiAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgICB9CiAgICAgICAgLnNsaWNrbmF2X25hdiwgLnNsaWNrbmF2X25hdiB1bHsKICAgICAgICBwYWRkaW5nLXRvcDogMTFweCAhaW1wb3J0YW50OwogICAgICAgIH0KICAgICAgICAuc2xpY2tuYXZfbmF2ewogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzNDNEU2MjsKICAgICAgICB9CiAgICAgICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2J0biB7CiAgICAgICAgICAgIG1hcmdpbjogNXB4IDVweCAxOXB4OwogICAgICAgIH0KICAgICAgICAucGFnZS00MDQgLmltYWdlLXRvcCwKICAgICAgICAucGFnZS00MDQgLmltYWdlLWJvdHRvbXsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgICAgLmFib3V0LXRhYnMtYm94ewogICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7CiAgICAgICAgfQogICAgICAgIC5hYm91dC1wYWdlIC5wb3N0LWJ0biB7CiAgICAgICAgICAgIGxlZnQ6IDQwJTsKICAgICAgICAgICAgYm90dG9tOiAtNCU7CiAgICAgICAgfQogICAgICAgIC5zbGlja25hdl9tZW51IC5zbGlja25hdl9idG4gewogICAgICAgICAgICBtYXJnaW46IDVweCA1cHggMzhweDsKICAgICAgICB9CiAgICAgICAgLmJsb2ctcGFnZSAucG9zdC1idG57CiAgICAgICAgICAgIGJvdHRvbTogLTMlOwogICAgICAgIH0KICAgICAgICAuc2lkZXJiYXJ7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5ibG9nLTJjb2x1bW4gLnBvc3QtYnRuewogICAgICAgICAgICBsZWZ0OjMxJTsgCiAgICAgICAgfQogICAgICAgIC5zaWRlYmFyewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAuYmxvZy0zLWNvbHVtbiAucG9zdC1idG4gewogICAgICAgICAgICBsZWZ0OiA0MSU7CiAgICAgICAgICAgIGJvdHRvbTogLTQlOwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1hcnJvdyB7CiAgICAgICAgICAgIGxlZnQ6IDMzcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWFycm93LWRvd257CiAgICAgICAgICAgbGVmdDogMzNweDsgCiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWljb24gewogICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4OwogICAgICAgIH0KICAgICAgICAuYXNrLXN1YiBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LXBhZ2Utc29jaWFsLWljb24gLmZvb3Rlci1zb2NpYWwtbGlua3MgYXsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDgwcHg7CiAgICAgICAgfQogICAgICAgIC5zbGlja25hdl9tZW51IC5zbGlja25hdl9idG4gewogICAgICAgICAgICBtYXJnaW46IDVweCA1cHggMjRweDsKICAgICAgICB9CiAgICAgICAgIC5zZXJ2aWNlLWxpc3QxIC5zZXJ2aWNlLXRleHQgaDMgewogICAgICAgICAgZm9udC1zaXplOiAyMHB4OyB9CiAgICAgICAgICAuc3VwcG9ydC1iYXItdG9wIC5jb250YWN0LWluZm8gewogICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICB9CiAgICAgICAgICAgLnN1cHBvcnQtYmFyLXRvcCAuY29udGFjdC1hZG1pbiB7CiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxvZ28gewogICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgICAgICAgICB3aWR0aDoxMTBweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6MzBweCAwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgI2hlYWRlci1tZW51IHsKICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLm1haW4tbWVudSB1bCBsaSBhIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDM3cHggNXB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5zZWN0aW9uLWhlYWRlciBwOmJlZm9yZXsKICAgICAgICAgICAgcmlnaHQ6MzAlOwogICAgICAgIH0KICAgICAgICAuc2VjdGlvbi1oZWFkZXIgcDphZnRlcnsKICAgICAgICAgICAgbGVmdDozMCU7CiAgICAgICAgfQogICAgICAgIC5zZWN0aW9uLWhlYWRlcjEgcDpiZWZvcmV7CiAgICAgICAgICAgIHJpZ2h0OjM1JTsKICAgICAgICB9CiAgICAgICAgLnNlY3Rpb24taGVhZGVyMSBwOmFmdGVyewogICAgICAgICAgICBsZWZ0OjM1JTsKICAgICAgICB9CiAgICAgICAgLm1haW4tbWVudS5tZW51LWZpeGVkIC5sb2dvIHsKICAgICAgICAgICAgcGFkZGluZzogMjBweCAwOwogICAgICAgIH0KICAgICAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkgewogICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmUgYSBpIHsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc3YjA0NzsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc3YjA0NzsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgfQogICAgICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBhIGkgewogICAgICAgICAgICB3aWR0aDogNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgICAgIH0KICAgICAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkgcHsKICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmFmdGVyewogICAgICAgICAgICB3aWR0aDogMTEwcHg7CiAgICAgICAgfQogICAgICAgIC5wcmljaW5nLWxpc3QgLnByaWNpbmctaXRlbXsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bHsKICAgICAgICAgICAgdG9wOiAtNjBweDsKICAgICAgICAgICAgbGVmdDoyNSU7CiAgICAgICAgfQogICAgICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGl7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogODBweDsKICAgICAgICB9CiAgICAgICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDsKICAgICAgICAgICAgZm9udC1zaXplOiA0NXB4OwogICAgICAgIH0KICAgICAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpIHsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDgycHg7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLXRleHQgaDMgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10aHVtYnsKICAgICAgICAgICAgd2lkdGg6ODBweDsKICAgICAgICAgICAgaGVpZ2h0OiA4MHB4OwogICAgICAgICAgICBwYWRkaW5nOjIwcHggMjBweDsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7CiAgICAgICAgfQogICAgICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10ZXh0ewogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC50ZWFtLWl0ZW17CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgICB9CiAgICAgICAgLnRlYW0taXRlbSAgLnRlYW0tb3ZlcmxheXsKICAgICAgICAgICAgcmlnaHQ6IDI4MHB4OwogICAgICAgIH0KICAgICAgICAuY291bnRlci1saXN0IHsKICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICB9CiAgICAgICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQgewogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsKICAgICAgICB9CiAgICAgICAgLnRlc3RpbW9uaWFsLWxpc3QgewogICAgICAgICAgICBtaW4td2lkdGg6IDM1MHB4OwogICAgICAgIH0KICAgICAgICAud2lkZ2V0LXRpdGxlIHA6YWZ0ZXJ7CiAgICAgICAgICAgIHJpZ2h0OiA1MHB4OwogICAgICAgIH0KICAgICAgICAud2lkZ2V0LXRpdGxlIHA6YmVmb3JlewogICAgICAgICAgICBsZWZ0OiA1MHB4OwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLW1lbnUgdWwgbGkgYXsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgICAubWVudS1maXhlZCB1bCBsaSBhewogICAgICAgICAgICBwYWRkaW5nOjI1cHggNXB4OwogICAgICAgIH0KICAgICAgICAuYWJvdXQtaW5mby5hYm91dC1saWdodCAuaW1nLWFib3V0ewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICB9CiAgICAgICAgLnBvcHVsYXItcGxhbi1jb250ZW50ewogICAgICAgICAgICB3aWR0aDo2OCU7CiAgICAgICAgfQogICAgICAgIC5wb3B1bGFyLXBsYW4tY29udGVudDEgewogICAgICAgICAgICB3aWR0aDogNzAlOwogICAgICAgIH0KICAgICAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgaDN7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgLnBvcHVsYXItcGxhbi10aHVtYiAucG9wdWxhci1wcmljZS1hbW91bnQgcHsKICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgICAgIH0KICAgICAgICAuYWZmaWxpYXRlLWl0ZW0gewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAuYWZmaWxpYXRlLWl0ZW0gLmFmZmlsaWF0ZS10aHVtYnsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBmbG9hdDpub25lOwogICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MHB4OwogICAgICAgIH0KICAgICAgICAuYWZmaWxpYXRlLWl0ZW0gLmFmZmlsaWF0ZS1jb250ZW50ewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOjEwcHg7CiAgICAgICAgfQogICAgICAgIC50ZXN0aW1vbmlhbHMtaXRlbSAudGVzdGltb25pYWwtY29udGVudDN7CiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICB9CiAgICAgICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQzOmJlZm9yZSB7CiAgICAgICAgICAgIHRvcDogMTAlOwogICAgICAgIH0KICAgICAgICAucHJpY2luZy1saXN0MXsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgLnByaWNpbmctbGlzdDEgLnByaWNpbmctaGVhZGVyMTphZnRlcnsKICAgICAgICAgICAgbGVmdDo1MCU7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICB9CiAgICAgICAgLmxvZ2luLWFkbWluewogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuY2FydC1jb250ZW50IHRhYmxlewogICAgICAgICAgICB3aWR0aDoxMDAlOwogICAgICAgICAgICBtaW4td2lkdGg6IDk5MHB4OwogICAgICAgICAgICBvdmVyZmxvdy1YOiBhdXRvOwogICAgICAgIH0KICAgICAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMiAub25saW5lLXRleHQgYnV0dG9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5zdXBwb3J0LWNvbnRlbnQgewogICAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDsKICAgICAgICB9CiAgICAgICAgLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IHVsIGxpIGl7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmFib3V0LXRodW1iIGltZyB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KICAgICAgICAuc2VsZWN0ZWQtZG9tYWluLXN1Ym1pdHsKICAgICAgICAgICAgZmxvYXQ6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5jYXJ0LXByaWNlIC5jYXJ0LWNvdXBvbnsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7CiAgICAgICAgfQogICAgICAgIC5jYXJ0LXByaWNlIC5jYXJ0LXRvdGFsIHsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDMwcHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWZvcm0gewogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIH0KICAgICAgICAubG9naW4tYWRtaW4gewogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuYWJvdXQtaW5mby5hYm91dC1saWdodCAud3JhcCB7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1MHB4OwogICAgICAgIH0KICAgICAgICAudnBzLWZlYXR1cmUgewogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgIH0KICAgICAgICAuc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZXsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjVweDsKICAgICAgICB9CiAgICAgICAgLnBvcHVsYXItcGxhbi10aHVtYnsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwogICAgICAgIG1hcmdpbi1sZWZ0OjBweDsKICAgICAgICB3aWR0aDozMCU7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iMSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMHB4OyAKICAgIH0KICAgIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IHB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgI3ByaWNpbmctMiAuaW5mby1pdGVtewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICB9CiAgICAudGVhbV9iaW9fd3JhcCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgfQogICAgLnRlYW1fdGh1bWIgaW1newogICAgICAgIHdpZHRoOjEwMCU7CiAgICB9CgoKfQovKiBNb2JpbGUgTGF5b3V0OiAzMjBweC4gKi8KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjlweCkgewogICAgICAgIC5zbGlja25hdl9tZW51IHsKICAgICAgICB0b3A6IDIwJSAhaW1wb3J0YW50OwogICAgICAgIH0gCiAgICAgICAgLnNsaWNrbmF2X21lbnUgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgdG9wOiAxOCU7CiAgICAgICAgICAgIHotaW5kZXg6IDk7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgLnNsaWNrbmF2X21lbnV7CiAgICAgICAgICAgIHRvcDogMTElICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICAuc2xpY2tuYXZfbWVudSAuc2xpY2tuYXZfYnRuIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAjNzdiMDQ3OwogICAgICAgIH0KCiAgICAgICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X21lbnV0eHQgewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2ljb24gc3BhbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzQTRFNjE7CiAgICAgICAgfQogICAgICAgIC5zbGlja25hdl9uYXYgbGkubWVnYS1iYW5uZXJ7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICAgIC5zbGlja25hdl9uYXYgYSB7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgfQogICAgICAgIC5tYWluLW1lbnUgI2hlYWRlci1tZW51ewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAubWFpbi1tZW51Lm1lbnUtZml4ZWQgI2hlYWRlci1tZW51ewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KICAgICAgICAubWFpbi1tZW51Lm1lbnUtZml4ZWQgLmxvZ28gewogICAgICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICAgICAgd2lkdGg6IDExMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDBweDsKICAgICAgICB9CiAgICAgICAgLm1haW4tbWVudSB1bCBsaSBhIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDVweDsKICAgICAgICB9CiAgICAgICAgLm1haW4tbWVudSB1bCBsaSAubWVnYS1tZW51ewogICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgIC5zdXBwb3J0LWJhci5ob21lLTR7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi5ob21lLTIgaW1newogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLmZvb3Rlci1zdXBwb3J0LWJhci1ob21lLTJ7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAuc2xpY2tuYXZfbWVudSAuc2xpY2tuYXZfbWVudXR4dHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnNsaWNrbmF2X21lbnUgdWwgbGk+YT5zcGFuewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2xpY2tuYXZfbWVudSB1bCBsaT5hewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogICAgLmRvbWFpbi1pbmRpY2F0b3J7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5mb290ZXItc3VwcG9ydC1iYXJ7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgICNtb2JpbGUtbWVudXsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLm1haW4tbWVudSAubWVudS1idG57CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5tZWdhLW1lbnUtdGh1bWIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuZm9vdGVyLW1lbnV7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5kb21haW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF0gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7CiAgICB9CiAgICAuc2hhZGUtYm94IHsKICAgIHdpZHRoOiAxMDBweDsKICAgIG1hcmdpbi1ib3R0b206IDEwMHB4OwogICAgbWFyZ2luLWxlZnQ6IDI1JTsKICAgIH0KICAgIC5zaW5nbGUtcHJpY2luZy10YWJsZSB7CiAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC5wcmljZS1ib3ggewogICAgICAgIGxlZnQ6IDQwJTsKICAgIH0KCiAgICAucHJpY2luZy1idG4gewogICAgICAgIGxlZnQ6IDM1JTsKICAgIH0KCiAgICAuY2FsbC10by1hY3Rpb24gaDEgewogICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLmNhbGwtdG8tYWN0aW9uLWJ0biB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tbGVmdDogMjglOwogICAgfQogICAgLnNpbmdsZS1wcm9qZWN0LWJveCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2JTsKICAgIH0KCiAgICAuc2luZ2xlLWJsb2ctcG9zdDpob3ZlciAucG9zdC1idG4gewogICAgICAgIGxlZnQ6IDM4JTsKICAgICAgICBib3R0b206IC00JTsKICAgIH0KICAgIC5wb3N0LWJ0biB7CiAgICBsZWZ0OiAzNiU7CiAgICBib3R0b206IC00JTsKICAgIH0KICAgIC5mb290ZXItc29jaWFsLWxpbmtzewogICAgICAgIGxlZnQ6IDI1JTsKICAgIH0KICAgIC5jb3B5cmlnaHQtdGV4dCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CgogICAgLmZvb3Rlci1tZW51IHVsIGxpIHsKICAgICAgICBwYWRkaW5nOiAwIDVweDsKICAgIH0KCiAgICAuZm9vdGVyLW1lbnUgdWwgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4OwogICAgfQoKICAgIC5saXZlLWNoYXQtYnRuIHsKICAgICAgICBtYXJnaW4tbGVmdDogMCU7CiAgICB9CiAgICAuc2xpY2tuYXZfbWVudSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICB0b3A6IDE4JTsKICAgICAgICAgICAgei1pbmRleDogOTk5OTk5OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgICAuc2xpY2stcG9zaXRpb257CiAgICAgICAgei1pbmRleDogOTk5OwogICAgICAgIHRvcDowJSAhaW1wb3J0YW50OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIH0KCiAgICAgICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2J0biB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgfQoKCiAgICAgICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2ljb24gc3BhbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzQTRFNjE7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMSwgLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IGgyewogICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgfQogICAgICAgIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMnsKICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgICAgIH0KICAgICAgICAuZG9tYWluLXNlYXJjaCBzZWxlY3QgewogICAgICAgIG1hcmdpbi1sZWZ0OiAxNiU7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgICAgLmRvbWFpbi1wcmljZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgICAgfQogICAgLmRvbWFpbi1zZWFyY2guaG9tZS0yIHNlbGVjdHsKICAgICAgICB3aWR0aDogNDYlOwogICAgfQogICAgLnNpbmdsZS1wcm9qZWN0LWJveC1ob21lLTIgewogICAgICAgIG1hcmdpbi10b3A6IDEwMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxOCU7CiAgICB9CiAgICAKICAgIC5kb21haW4tc2VhcmNoLmhvbWUtMiBidXR0b25bdHlwZT1zdWJtaXRdewogICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICB9CgogICAgLmhlYWRlci1zZWN0aW9uLmhvbWUtMyAuaGVhZGVyLXRpdGxlIGgxIHsKICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAuaG9tZS0zIC5zdWItaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAgLmhlYWRlci1zZWN0aW9uLmhvbWUtMyBpbWd7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5ob21lLTMtcG9pbnQtbGluayBhIHsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIH0KCiAgICAuaGVhZGVyLTMtcG9pbnQgewogICAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4OwogICAgfQogICAgLnNpbmdsZS1wcmljaW5nLXRhYmxlLmhvbWUtNCB7CiAgICBtYXJnaW4tdG9wOiAxMDBweDsKICAgIH0KICAgIC5wcmljaW5nLXRhYmxlLmhvbWUtNCAuc2VjdGlvbi10aXRsZSBwIHsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgfQogICAgLmhlYWRlci1zZWN0aW9uLmhvbWUtNCAuaGVhZGVyLXRpdGxlIGgxIHsKICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICB9CgogICAgLmhlYWRlci1zZWN0aW9uLmhvbWUtNCAuc3ViLWhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLmhvbWU0LXNsaWRlci1idG4gewogICAgd2lkdGg6IDE4MHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLnNsaWNrbmF2X25hdiwgLnNsaWNrbmF2X25hdiB1bHsKICAgICAgICBwYWRkaW5nLXRvcDogMTFweCAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIH0KICAgIC5zbGlja25hdl9uYXZ7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTAwM2Q7CiAgICB9CiAgICAuc3VwcG9ydC1iYXIgewogICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5sb2dpbi1wYWdlLXdyYXBwZXI6YmVmb3JlIHsKICAgIGJvdHRvbTogLTE1MHB4OwogICAgYm9yZGVyLXJpZ2h0OiAyNTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1sZWZ0OiAyNTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci10b3A6IDE1MHB4IHNvbGlkICNERkRFREQ7CiAgICB9CiAgICAubG9naW4tcGFnZS13cmFwcGVyOmFmdGVyIHsKICAgIHRvcDogLTE1MHB4OwogICAgYm9yZGVyLXJpZ2h0OiAyNTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1sZWZ0OiAyNTBweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1ib3R0b206IDE1MHB4IHNvbGlkICNERkRFREQ7CiAgICB9CiAgICAubG9naW4taGVhZGVyIGgyOmJlZm9yZXsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLmxvZ2luLWhlYWRlciBoMjphZnRlcnsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnNsaWNrbmF2X21lbnUgLnNsaWNrbmF2X2J0biB7CiAgICAgICAgICAgIG1hcmdpbjogNXB4IDVweCAxOXB4OwogICAgfQogICAgLnNpbmdsZS1wcmljaW5nLWJveC1maXZlIHsKICAgIG1hcmdpbjogMzAwcHggMDsKICAgIHdpZHRoOiA0NTBweDsKICAgIGhlaWdodDogMjU4cHg7CiAgICB9CiAgICAucHJpY2luZy1ib2R5LWZvdXJ7CiAgICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5zbGlkZXItcHJpY2UtYm94ewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2luZ2xlLXByaWNlLWJveC10ZXh0IHAgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIC5zaW5nbGUtcHJpY2Vib3gtYm90dG9tIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMXB4OwogICAgfQogICAgLnNpbmdsZS1wcmljZS1ib3gtdGV4dCAuYWN0aXZlLnJhbmdlLTM6YWZ0ZXJ7CiAgICAgICAgbGVmdDogMzAlOwogICAgfQogICAgLnNpbmdsZS1wcmljZS1ib3gtdGV4dCAuYWN0aXZlLnJhbmdlLTQ6YWZ0ZXJ7CiAgICAgICAgbGVmdDogMzAlOwogICAgfQogICAgLnNpbmdsZS1wcmljZS1ib3gtdGV4dCAuYWN0aXZlLnJhbmdlLTU6YWZ0ZXJ7CiAgICAgICAgbGVmdDogNTUlOwogICAgfQogICAgLnNpbmdsZS1wcmljZS1ib3gtdGV4dCAuYWN0aXZlLnJhbmdlLTY6YWZ0ZXJ7CiAgICAgICAgbGVmdDogNTUlOwogICAgfQogICAgLnByaWNlLXRhYmxlLXRhYmxlLXN5c3RlbSB7CiAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnBhZ2UtNDA0IC5pbWFnZS10b3AsCiAgICAucGFnZS00MDQgLmltYWdlLWJvdHRvbXsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5hYm91dC10YWJzLWJveHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICB9CiAgICAuYmxvZy1wYWdlIC5wb3N0LWJ0bnsKICAgICAgICBib3R0b206IC0zJTsKICAgIH0KICAgIC5zaWRlcmJhcnsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnNpZGViYXJ7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuYXNrLXN1YiBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIG1hcmdpbi1sZWZ0OiAzMHB4OwogICAgfQogICAgICAgIC5jb250YWN0LWFycm93ewogICAgICAgICAgICBsZWZ0OiAxOHB4OwogICAgICAgIH0KICAgICAgICAuY29udGFjdC1hcnJvdy1kb3duewogICAgICAgICAgIGxlZnQ6IDE4cHg7IAogICAgICAgIH0KICAgICAgICAuY29udGFjdC1pY29uIHsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgIH0KCiAgICAuY2xpZW50LWxpc3QgLmNsaWVudC1jb250YWluZXIgLnN3aXBlci1idXR0b24tcHJldiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsgfQoKICAgIC5jb250YWN0LWFkbWluIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAuc2VjdGlvbi1oZWFkZXIgcDpiZWZvcmV7CiAgICAgICAgcmlnaHQ6MjglOwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyIHA6YWZ0ZXJ7CiAgICAgICAgbGVmdDoyOCU7CiAgICB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkgewogICAgICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgfQogICAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpIGEgaSB7CiAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBwewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmU6YWZ0ZXJ7CiAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgfQogICAgLnByaWNpbmctaXRlbXsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogLTUwcHg7CiAgICAgICAgbGVmdDogMjAlOwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSAub3RoZXItc2VsZWN0LWJvcmRlciBhIGkgewogICAgICAgIHdpZHRoOiA4MHB4OwogICAgICAgIGhlaWdodDogODBweDsKICAgICAgICBsaW5lLWhlaWdodDogODBweDsKICAgICAgICBmb250LXNpemU6IDM1cHg7CiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpewogICAgICAgIHBhZGRpbmctYm90dG9tOiA5MnB4OwogICAgfQogICAgLm9ubGluZS1jb250ZW50IHVsIGxpIC5vbmxpbmUtaXRlbSAub25saW5lLXRodW1iIHsKICAgICAgICBwYWRkaW5nOiAxNXB4IDE1cHg7CiAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgfQogICAgLm9ubGluZS1jb250ZW50IHVsIGxpIC5vbmxpbmUtaXRlbSAub25saW5lLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCBidXR0b257CiAgICAgICAgcGFkZGluZzogMTBweCAzMHB4OwogICAgfQogICAgLnRlYW0taXRlbXsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICB9CiAgICAudGVhbS1pdGVtIC50ZWFtLW92ZXJsYXkgewogICAgICAgIGxlZnQ6IDM4JTsKICAgIH0KICAgIC5zdXBwb3J0LWNvbnRlbnR7CiAgICAgICAgcGFkZGluZy10b3A6IDI1cHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtbGlzdHsKICAgICAgICBtaW4td2lkdGg6IDI4MHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQgewogICAgICAgIG1heC13aWR0aDogMzAwcHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtY29udGVudCBwewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgfQogICAgLndpZGdldC10aXRsZSBwOmFmdGVyewogICAgICAgIHJpZ2h0OjE1JTsKICAgIH0KICAgIC53aWRnZXQtdGl0bGUgcDpiZWZvcmV7CiAgICAgICAgbGVmdDoxNSU7CiAgICB9CiAgICAuYWRtaW4tY29udGVudCAuYWRtaW4tdGV4dCBwewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMjNweCAzMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKCiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iIHsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTlweDsKICAgICAgICB3aWR0aDoxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQxewogICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iMXsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgc3BhbnsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgaDN7CiAgICAgICAgZm9udC1zaXplOiAyM3B4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgaXsKICAgICAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgfQogICAgLnBvcHVsYXItcGxhbi1jb250ZW50IHVsIGxpIHB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OjBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWIgLnBvcHVsYXItcHJpY2UtYW1vdW50IHB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWIgaDZ7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAgLmZhcS1jYXRlZ29yaWVzIHVsIGxpIGF7CiAgICAgICAgcGFkZGluZzogMTJweCAxMHB4OwogICAgfQogICAgLnByaWNpbmctbGlzdDF7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIC5wcmljaW5nLWxpc3QxIC5wcmljaW5nLWhlYWRlcjE6YWZ0ZXJ7CiAgICAgICAgbGVmdDo1MCU7CiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICB9CiAgICAuc2xpY2stbmV4dHsKICAgICAgICByaWdodDowcHg7CiAgICB9CiAgICAuYWZmaWxpYXRlLWl0ZW0gewogICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAuYWZmaWxpYXRlLWl0ZW0gLmFmZmlsaWF0ZS10aHVtYiB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZsb2F0OiBub25lOwogICAgICAgIG1hcmdpbi1yaWdodDogMHB4OwogICAgfQogICAgLmFmZmlsaWF0ZS1pdGVtIC5hZmZpbGlhdGUtY29udGVudCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICB9CiAgICAuY2FydC1jb250ZW50IHRhYmxlewogICAgICAgIHdpZHRoOjEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAxMTQwcHg7CiAgICAgICAgb3ZlcmZsb3ctWDogYXV0bzsKICAgIH0KICAgIC5jYXJ0LWNvbnRlbnQgdGFibGV7CiAgICAgICAgd2lkdGg6MTAwJTsKICAgICAgICBtaW4td2lkdGg6IDcwMHB4OwogICAgICAgIG92ZXJmbG93LVg6IGF1dG87CiAgICB9CiAgICAuc2VsZWN0ZWQtZG9tYWluLXN1Ym1pdHsKICAgICAgICBmbG9hdDpub25lOwogICAgfQogICAgLmVycm9yLXRodW1iewogICAgICAgIGZsb2F0Om5vbmU7CiAgICB9CiAgICAuZXJyb3ItY29udGVudHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAubG9naW4tYWRtaW57CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlLXRodW1iIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgfQogICAgLmNvdW50ZXItbGlzdCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KICAgIC5jYXJ0LXByaWNlIC5jYXJ0LWNvdXBvbnsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKICAgIH0KICAgIC5jb250YWN0LWZvcm0gewogICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICB9CiAgICAubG9naW4tYWRtaW4gewogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIC5mb290ZXItYm90dG9tewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgIC5hYm91dC10aHVtYiBpbWd7CiAgICAgICAgd2lkdGg6MTAwJTsKICAgIH0KICAgIC5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5pbWctYWJvdXR7CiAgICAgICAgd2lkdGg6MTAwJTsKICAgIH0KICAgIC5zaW5nbGUtZG9tYWluLXJhdGUtY2lyY2xlewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OjVweDsKICAgIH0KICAgIC5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC5oZWFkaW5newogICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICB9CiAgICAudnBzLWZlYXR1cmUgLmZlYXR1cmUtaGVhZGVyIGgxewogICAgICAgIG1hcmdpbi10b3A6MjBweDsKICAgIH0KICAgICNwcmljaW5nLTIgLmluZm8taXRlbSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KICAgIC5jb29taW5nLXNlY3Rpb257CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQogICAgLmFib3V0LWRlc2MgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4OwogICAgfQogICAgLnZwcy1mZWF0dXJlIHsKICAgICAgICBwYWRkaW5nLXRvcDogNTBweDsKICAgIH0KICAgIC5jb250YWN0LWZvcm0gaDIgewogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CiAgICAuY29udGFjdC1pbmZvIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAuZm9vdGVyLXdpZGdldC0xLCAuZm9vdGVyLXdpZGdldC0yLCAuZm9vdGVyLXdpZGdldC0zIHsKICAgICAgICBtYXJnaW46IDgwcHggMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgIH0KICAgIC5mb290ZXItYm90dG9tIHsKICAgICAgICBtYXJnaW4tdG9wOiA4MHB4OwogICAgfQoKCn0KCi8qIFdpZGUgTW9iaWxlIExheW91dDogNDgwcHguICovCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHsgCiAgICAuc2VydmljZS1saXN0MSBpIHsKICAgICAgICB3aWR0aDoxMDBweDsKICAgICAgICBoZWlnaHQ6IDEwMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxMDBweDsKICAgICAgICBmb250LXNpemU6IDMwcHg7IH0gCiAgICAuc2VydmljZS1saXN0MSAuc2VydmljZS10ZXh0IGgzIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDsgfQogICAgIC5zZXJ2aWNlLWxpc3QxIC5zZXJ2aWNlLXRleHQgcCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7IH0KICAgIC5zbGlja25hdl9tZW51ewogICAgICAgIHRvcDoyMCUgIWltcG9ydGFudDsKICAgICB9CiAgICAubWFpbi1tZW51Lm1lbnUtZml4ZWQgLmxvZ297CiAgICAgICAgZmxvYXQ6IG5vbmU7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAubWFpbi1tZW51IHVsIGxpIGEgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBwYWRkaW5nOiAyMHB4IDJweDsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMSwgLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IGgyewogICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIH0KICAgIC5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT10ZXh0XSB7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIHdpZHRoOiA1MCU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmRvbWFpbi1zZWFyY2gtZnJvbSBzZWxlY3QgewogICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgICAgICB3aWR0aDogMjAlOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDklOwogICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KICAgIC5hZG1pbi1jb250ZW50IC5hZG1pbi10ZXh0ewogICAgICAgIGZsb2F0OiBub25lOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgIC5hZG1pbi1jb250ZW50IC5hZG1pbi11c2VyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZmxvYXQ6IG5vbmU7CiAgICB9CiAgICAuc2VjdGlvbi1oZWFkZXIgcDphZnRlcnsKICAgICAgICBsZWZ0OjI3JTsKICAgIH0gCiAgICAuc2VjdGlvbi1oZWFkZXIgcDpiZWZvcmV7CiAgICAgICAgcmlnaHQ6MjclOwogICAgfQogICAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpIGEgaSB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBwIHsKICAgICAgICBmb250LXNpemU6IDlweDsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmU6YWZ0ZXJ7CiAgICAgICAgd2lkdGg6IDgwcHg7CiAgICB9CiAgICAubmV3c2xldHRlci10ZXh0IGgzewogICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtIHsKICAgICAgICBtYXJnaW46IDBweDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCBzcGFuIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGl7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1saXN0IHsKICAgICAgICBtaW4td2lkdGg6IDE1MHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0gewogICAgICAgIG1hcmdpbjogMTdweCAwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtbGlzdCAudGVzdGltb25pYWwtaXRlbSAudGVzdGltb25pYWwtdGh1bWIgewogICAgICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgICAgIHdpZHRoOiA1MHB4OwogICAgICAgIGhlaWdodDogNTBweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1saXN0IC50ZXN0aW1vbmlhbC1pdGVtIC50ZXN0aW1vbmlhbC10ZXh0IHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBkaXNwbGF5OiB0YWJsZTsKICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1jb250ZW50IHsKICAgICAgICBtYXgtd2lkdGg6IDI1MHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQxIHsKICAgICAgICBwYWRkaW5nLXRvcDogMzBweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1jb250ZW50MiB7CiAgICAgICAgcGFkZGluZy10b3A6IDUwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtY29udGVudDpiZWZvcmV7CiAgICAgICAgdG9wOjYwJTsKICAgIH0KICAgIC53aWRnZXQtdGl0bGUgcDphZnRlciB7CiAgICAgICAgcmlnaHQ6IDI0JTsKICAgIH0KICAgIC53aWRnZXQtdGl0bGUgcDpiZWZvcmUgewogICAgICAgIGxlZnQ6IDI0JTsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBwewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBzcGFuewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCBwIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6MjBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWJ7CiAgICAgICAgcGFkZGluZy10b3A6IDZweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tdGh1bWIgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iIHsKICAgICAgICBwYWRkaW5nOiAwcHggMTBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOjEwMCU7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iewogICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudDF7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgICAucG9wdWxhci1wbGFuLXRodW1iMXsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICB9CiAgICAubWFpbi1tZW51IHVsIGxpICAgLm1lZ2EtbWVudSAubWVnYS1saXN0ewogICAgICAgIHdpZHRoOmNhbGMoMTAwJSAtIDIyNXB4KTsKICAgIH0KICAgIC5tYWluLW1lbnUgdWwgbGkgLm1lZ2EtbWVudSAubWVnYS1iYW5uZXIgewogICAgICAgIHdpZHRoOiAyMjVweDsKICAgIH0KICAgIC5jb29taW5nLXNlY3Rpb257CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQogICAgLmNhcnQtcHJpY2UgLmNhcnQtdG90YWwgdWwgbGkgcHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CiAgICAuY2FydC1wcmljZSAuY2FydC10b3RhbCB1bCBsaSBidXR0b257CiAgICAgICAgcGFkZGluZzogMHB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLmNhcnQtcHJpY2UgLmNhcnQtdG90YWx7CiAgICAgICAgZmxvYXQ6IG5vbmU7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLXRodW1iewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgfQogICAgLm1haW4tbWVudSB1bCBsaSAgIC5tZWdhLW1lbnUyIC5tZWdhLWxpc3QxewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgLnNsaWNrLXBvc2l0aW9uIHsKICAgICAgICB6LWluZGV4OiA5OTk7CiAgICAgICAgdG9wOiAwJSAhaW1wb3J0YW50OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0yIC5vbmxpbmUtdGV4dCBidXR0b257CiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10ZXh0IHB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLm9ubGluZS1jb250ZW50IHVsIGxpIC5vbmxpbmUtaXRlbTIgLm9ubGluZS10ZXh0IHNwYW4gewogICAgICAgIG1hcmdpbi1yaWdodDogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5zdXBwb3J0LWNvbnRlbnQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtY29udGVudDE6YmVmb3JlIHsKICAgICAgICB0b3A6IDYwJTsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1jb250ZW50MSB7CiAgICAgICAgcGFkZGluZy10b3A6IDEwMHB4OwogICAgfQoKfQovKiBXaWRlIE1vYmlsZSBMYXlvdXQ6IDQ4MHB4LiAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7IFwKICAgLnN1cHBvcnQtYmFyIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2xpY2tuYXZfbWVudXsKICAgICAgICB0b3A6IDI4JSAhaW1wb3J0YW50OwogICAgfQogICAgLmZvb3Rlci1tZW51IHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2hhZGUtYm94LWhvbWUtMiB7CiAgICBtYXJnaW4tbGVmdDogLTEzcHg7CiAgICB9CiAgICAuaG9tZS0zLXBvaW50LWxpbmsgewogICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAuaGVhZGVyLXNlY3Rpb24uaG9tZS00IC5oZWFkZXItdGl0bGUgaDEgc3BhbiB7CiAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgfQoKICAgIC5oZWFkZXItc2VjdGlvbi5ob21lLTQgLnN1Yi1oZWFkZXIgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQogICAgLmhvbWUtMy1wb2ludC1saW5rIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgIC5ob21lNC1zbGlkZXItYnRuIHsKICAgICAgICB3aWR0aDogMTMwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDNweDsKICAgIH0KICAgIC5sb2dpbi1wYWdlLXdyYXBwZXI6YWZ0ZXIgewogICAgdG9wOiAtMTAwcHg7CiAgICBib3JkZXItcmlnaHQ6IDE4NHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWxlZnQ6IDE4NHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWJvdHRvbTogMTAwcHggc29saWQgI0RGREVERDsKICAgIH0KICAgIC5sb2dpbi1wYWdlLXdyYXBwZXI6YmVmb3JlIHsKICAgIGJvdHRvbTogLTEwMHB4OwogICAgYm9yZGVyLXJpZ2h0OiAxODRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1sZWZ0OiAxODRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci10b3A6IDEwMHB4IHNvbGlkICNERkRFREQ7CiAgICB9CiAgICAuc2luZ2xlLXByaWNpbmctYm94LWZpdmUgewogICAgd2lkdGg6IDM2MHB4OwogICAgaGVpZ2h0OiAyMDZweDsKICAgIH0KICAgIC5wcmljaW5nLWhlYWRlci1mb3VyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDIwJTsKICAgIHRvcDogLTIwJTsKICAgIH0KICAgIC5vcmRlci1idG4gewogICAgcGFkZGluZzogNXB4IDMxcHg7CiAgICB9CiAgICAucHJpY2luZy1saXN0LXRleHQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLnNpbmdsZS1wcmljZWJveC1ib3R0b20gLmlucHV0LWJveCB7CiAgICAgICAgcGFkZGluZzogM3B4IDEycHg7CiAgICB9CiAgICAuYWJvdXQtdGFicy1ib3ggewogICAgd2lkdGg6IDQ1cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tdG9wOiAtMTJweDsKICAgIH0KICAgIC5hYm91dC10YWJzLm5hdi5uYXYtcGlsbHMgbGk+YSB7CiAgICBwYWRkaW5nOiAwcHggNHB4OwogICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogICAgLmJsb2ctcGFnZSAucG9zdC1idG57CiAgICAgICAgYm90dG9tOiAtMyU7CiAgICAgICAgbGVmdDogMzUlOwogICAgfQogICAgLmJsb2ctcGFnZSAuc2luZ2xlLWJsb2ctcG9zdDpob3ZlciAucG9zdC1idG57CiAgICAgICAgYm90dG9tOiAtMyU7CiAgICB9CiAgICAgICAgLmNvbnRhY3QtYXJyb3d7CiAgICAgICAgICAgIGxlZnQ6IDEycHg7CiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWFycm93LWRvd257CiAgICAgICAgICAgbGVmdDogMTJweDsgCiAgICAgICAgfQogICAgICAgIC5jb250YWN0LWljb24gewogICAgICAgIG1hcmdpbi1sZWZ0OiAtMTRweDsKICAgIH0KICAgIC5tYWluLW1lbnUgdWwgbGkgYSB7CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjBweCAxcHg7CiAgICB9CiAgICAuZG9tYWluLXNlYXJjaC1mcm9tIGlucHV0W3R5cGU9dGV4dF0gewogICAgICAgIHdpZHRoOiA0NSU7CiAgICAgICAgZm9udC1zaXplOiA3cHg7CiAgICB9CiAgICAuZG9tYWluLXNlYXJjaC1mcm9tIHNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDI0JTsKICAgICAgICBmb250LXNpemU6IDZweDsKICAgIH0KICAgIC5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICAgICAgICBmb250LXNpemU6IDdweDsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMSwgLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IGgyIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICB9CgogICAgLnNlY3Rpb24taGVhZGVyIHA6YmVmb3JlIHsKICAgICAgICByaWdodDogMjAlOwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyIHA6YWZ0ZXIgewogICAgICAgIGxlZnQ6IDIwJTsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaSBpIHsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICAgIG1hcmdpbi1yaWdodDoxcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgc3BhbiB7CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CiAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaSBhIGkgewogICAgICAgIHdpZHRoOiAyNXB4OwogICAgICAgIGhlaWdodDogMjVweDsKICAgICAgICBsaW5lLWhlaWdodDogMjVweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgdWwgbGkgcCB7CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkgcCB7CiAgICAgICAgZm9udC1zaXplOiA3cHg7CiAgICB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmFmdGVyIHsKICAgICAgICB3aWR0aDogNTBweDsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmU6YmVmb3JlewogICAgICAgIGxlZnQ6IDMwJTsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtaXRlbSAuc2VydmljZS10ZXh0IGgzewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgbGkgLm90aGVyLXNlbGVjdC1ib3JkZXIgYSBpIHsKICAgICAgICB3aWR0aDogNTBweDsKICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCBsaSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtbGlzdCB1bCB7CiAgICAgICAgdG9wOiAtMzVweDsKICAgICAgICBsZWZ0OiAyMCU7CiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIGxpLmFjdGl2ZTpiZWZvcmV7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWNvbnRlbnQgLm90aGVyLXNlcnZpY2UtY29udGVudDEgLm90aGVyLXNlcnZpY2UtdGV4dHsKICAgICAgICBtYXJnaW4tdG9wOjEwcHg7CiAgICB9CiAgICAubmV3c2xldHRlci10ZXh0IGgzIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICB9CiAgICAubmV3c2xldHRlci1mb3JtIGlucHV0W3R5cGU9InRleHQiXXsKICAgICAgICB3aWR0aDogNjAlOwogICAgfQogICAgLm5ld3NsZXR0ZXItZm9ybSBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDE1cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIH0KICAgIC5vbmxpbmUtY29udGVudCB1bCBsaSAub25saW5lLWl0ZW0gLm9ubGluZS10aHVtYiB7CiAgICAgICAgcGFkZGluZzogNXB4IDVweDsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtIC5vbmxpbmUtdGV4dCB7CiAgICAgICBtYXJnaW46MHB4OwogICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMiAub25saW5lLXRleHQgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAub25saW5lLWNvbnRlbnQgdWwgbGkgLm9ubGluZS1pdGVtMiAub25saW5lLXRleHQgc3BhbiB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgfQogICAgLnNhbGUtaGVhZGVyIGgyewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAgIC5zYWxlLWNvbnRlbnQgaDJ7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLnRlYW0taXRlbSAudGVhbS1vdmVybGF5IHsKICAgICAgICBsZWZ0OiAyNSU7CiAgICB9CiAgICAuc3VwcG9ydC1jb250ZW50IGgyewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1jb250ZW50IHsKICAgICAgICBtYXgtd2lkdGg6IDE1MHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQgcCB7CiAgICAgICAgZm9udC1zaXplOiA3cHg7CiAgICAgICAgcGFkZGluZzogNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0gLnRlc3RpbW9uaWFsLXRleHQgcCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWxpc3QgLnRlc3RpbW9uaWFsLWl0ZW0gLnRlc3RpbW9uaWFsLXRleHQgaDYgYXsKICAgICAgICBmb250LXNpemU6IDhweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1jb250ZW50OmJlZm9yZXsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQxewogICAgICAgIHBhZGRpbmctdG9wOiA4MHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWNvbnRlbnQyewogICAgICAgIHBhZGRpbmctdG9wOjEzMHB4OwogICAgfQogICAgLndpZGdldC10aXRsZSBwOmJlZm9yZXsKICAgICAgICBsZWZ0OjE1JTsKICAgIH0KICAgIC53aWRnZXQtdGl0bGUgcDphZnRlcnsKICAgICAgICByaWdodDoxNSU7CiAgICB9CiAgICAuYWJvdXQtY29udGVudCBoM3sKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICB9CiAgICAuYWJvdXQtaW5mby5hYm91dC1saWdodCAuaGVhZGluZ3sKICAgICAgICBmb250LXNpemU6IDI1cHg7CiAgICB9CiAgICAuYWJvdXQtaW5mby5hYm91dC1saWdodCAuc3ViaGVhZGluZyAudGl0bGV7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLmFib3V0LWluZm8uYWJvdXQtbGlnaHQgLmJ0bi5tb2Rlcm4gewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7CiAgICB9CiAgICAuc2VsZWN0ZWQtZG9tYWluLXN1Ym1pdCBidXR0b257CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KICAgIC5zZWxlY3RlZC1kb21haW4tc3VibWl0IHsKICAgICAgICBmbG9hdDogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAgLm1haW4tbWVudSB1bCBsaSAubWVnYS1tZW51IC5tZWdhLWJhbm5lcnsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLm1haW4tbWVudSB1bCBsaSAgIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIC5tZWdhLW1lbnUgLm1lZ2EtbGlzdCAubWVnYS1tZW51LWl0ZW0gLm1lZ2EtbWVudS1jb250ZW50IHB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IHVsIGxpIHNwYW57CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS1jb250ZW50IGg2ewogICAgICAgIGZvbnQtc2l6ZTogMTlweDsKICAgIH0KICAgIC5ob3N0aW5nc3BlZWQtY29udGVudCAuaG9zdGluZ3NwZWVkLXRleHQgaDZ7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmhvc3RpbmdzcGVlZC1jb250ZW50IC5ob3N0aW5nc3BlZWQtdGV4dCBwewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5mYXEtY2F0ZWdvcmllcyB1bCBsaSBhewogICAgICAgIGZvbnQtc2l6ZTogN3B4OwogICAgfQogICAgLmRhdGFjZW50ZXItY29udGVudCBoNHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICB9CiAgICAuY2FydC1wcmljZSAuY2FydC1jb3Vwb24gaW5wdXRbdHlwZT0idGV4dCJdewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgfQogICAgLmNhcnQtcHJpY2UgLmNhcnQtY291cG9uIGlucHV0W3R5cGU9InN1Ym1pdCJdewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgfQogICAgLmNhcnQtcHJpY2UgLmNhcnQtdG90YWx7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgICAuYnJlYWRjcnVtYi1jb250ZW50IGg1ewogICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDR7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29udGVudCAuYmxvZy10ZXh0IGg0IGF7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogICAgLnNsaWNrbmF2X21lbnV7CiAgICAgICAgdG9wOjE1JSAhaW1wb3J0YW50OwogICAgfQogICAgLnN1cHBvcnQtYmFyLXRvcCBhIHNwYW57CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5zdXBwb3J0LWJhci10b3AgYSB7CiAgICAgICAgcGFkZGluZzogNXB4IDVweDsKICAgIH0KICAgIC5jb250YWN0LWluZm97CiAgICAgICAgcGFkZGluZy10b3A6IDVweDsKICAgIH0KICAgIC5zbGljay1wb3NpdGlvbiB7CiAgICAgICAgei1pbmRleDogOTk5OwogICAgICAgIHRvcDogMCUgIWltcG9ydGFudDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB9CiAgICAuc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZSB7CiAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgIGZvbnQtc2l6ZTogOHB4OwogICAgfQogICAgLnNlbGVjdGVkLWxpc3QgLnNlbGVjdGVkLWxpc3QtY2FydCBidXR0b257CiAgICAgICAgd2lkdGg6IDE0MHB4OwogICAgfQogICAgLmNhcnQtcHJpY2UgLmNhcnQtY291cG9uewogICAgICAgIGZsb2F0Om5vbmU7CiAgICB9CiAgICAudGVzdGltb25pYWwtYXJlYSAuc2luLXRlc3RpSW1hZ2Uuc2xpY2stY3VycmVudCBpbWcgewogICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgfQogICAgLmVycm9yLXRodW1iIHsKICAgICAgICB3aWR0aDogMzY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNjVweDsKICAgICAgICBwYWRkaW5nLXRvcDogOTBweDsKICAgIH0KfQovKiBXaWRlIE1vYmlsZSBMYXlvdXQ6IDM4MHB4LiAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7IAogICAuc2xpY2tuYXZfbWVudSB7CiAgICB0b3A6IDQlICFpbXBvcnRhbnQ7CiAgICB9CiAgICAuc2xpY2stcG9zaXRpb257CiAgICAgICAgdG9wOjAlICFpbXBvcnRhbnQ7CiAgICB9IAogICAgLnN1cHBvcnQtYmFyLXRvcHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgfQogICAgICAgICAuZG9tYWluLXJhdGUtd3JhcHBlcnsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgfQogICAgICAgICAuY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wxewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICB9CiAgICAgICAgIC5zZWN0aW9uLWhlYWRlciBoMyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgICAgICB9CiAgICAgICAgLnNlY3Rpb24taGVhZGVyIHA6YmVmb3JlIHsKICAgICAgICAgICAgcmlnaHQ6IDglOwogICAgICAgIH0KICAgICAgICAuc2VjdGlvbi1oZWFkZXIgcDphZnRlciB7CiAgICAgICAgICAgIGxlZnQ6IDglOwogICAgICAgIH0KICAgICAgICAudGVzdGltb25pYWwtaXRlbSAudGVzdGltb25pYWwtdGh1bWIgaW1nIHsKICAgICAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICB9CiAgICAgICAgLnNlcnZpY2UtY29udGVudCAuc2VydmljZS1saXN0IHVsIGxpIHsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7CiAgICAgICAgfQogICAgICAgIC5vdGhlci1zZXJ2aWNlIC5vdGhlci1zZXJ2aWNlLWxpc3QgdWwgewogICAgICAgICAgICBsZWZ0OiAxNSU7CiAgICAgICAgfQogICAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDQgewogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbW1lbnQgdWwgbGkgLmJsb2ctbGlzdCAuYmxvZy10ZXh0IHsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5wYXJhbGxheC1jb250ZW50IGgyIHsKICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4OwogICAgICAgIH0KfQovKiBXaWRlIE1vYmlsZSBMYXlvdXQ6IDM2MHB4LiAqLwpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2MHB4KSB7CiAgICAgCiAgLmhvc3Rpbmctc2VjdGlvbiB7CiAgICBkaXNwbGF5OiBub25lOyB9CiAgICAuc2xpY2tuYXZfbWVudXsKICAgICAgICB0b3A6NCUgIWltcG9ydGFudDsKICAgIH0gCiAgICAuYWRtaW4tY29udGVudCAuYWRtaW4tdGV4dCBwewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIH0KICAgIC5hZG1pbi1jb250ZW50IC5hZG1pbi11c2VyIGJ1dHRvbnsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyIHA6YmVmb3JlewogICAgICAgIHJpZ2h0OjYlOwogICAgfQogICAgLnNlY3Rpb24taGVhZGVyIHA6YWZ0ZXJ7CiAgICAgICAgbGVmdDo2JTsKICAgIH0KICAgIC5zZXJ2aWNlLWNvbnRlbnQgLnNlcnZpY2UtbGlzdCB1bCBsaS5hY3RpdmU6YmVmb3JlewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkuYWN0aXZlOmFmdGVyewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuc2VydmljZS1jb250ZW50IC5zZXJ2aWNlLWxpc3QgdWwgbGkgcHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgLm1haW4tbWVudSB1bCBsaSBhewogICAgICAgIGZvbnQtc2l6ZTogN3B4OwogICAgfQogICAgLm90aGVyLXNlcnZpY2UgLm90aGVyLXNlcnZpY2UtY29udGVudCAub3RoZXItc2VydmljZS1jb250ZW50MSAub3RoZXItc2VydmljZS10ZXh0IGF7CiAgICAgICAgcGFkZGluZzogNXB4IDMwcHg7CiAgICB9CiAgICAubmV3c2xldHRlci1mb3JtIGJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogMTdweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CiAgICAuc3VwcG9ydC1jb250ZW50IGF7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgfQogICAgLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IHVsIGxpIHNwYW57CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICB9CiAgICAud2lkZ2V0LXRpdGxlIHA6YmVmb3JlewogICAgICAgIGxlZnQ6MTAlOwogICAgfQogICAgLndpZGdldC10aXRsZSBwOmFmdGVyewogICAgICAgcmlnaHQ6MTAlOwogICAgfQogICAgLnNpbmdsZS1kb21haW4tcmF0ZS1jaXJjbGV7CiAgICAgICAgd2lkdGg6IDE0JTsKICAgICAgICBoZWlnaHQ6IDQ1cHg7CiAgICB9CiAgICAuc2VsZWN0ZWQtbGlzdHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAuc2VsZWN0ZWQtbGlzdCAuc2VsZWN0ZWQtbGlzdC1uYW1lLC5zZWxlY3RlZC1saXN0IC5zZWxlY3RlZC1saXN0LWNhcnR7CiAgICAgICAgZmxvYXQ6IG5vbmU7CiAgICB9CiAgICAuY29udGFjdC1pbmZvIC5jb250YWN0LWNvbnRlbnQgLmNvbnRhY3QtbGlzdCB1bCBsaSAuY29udGFjdC10ZXh0IHB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogICAgLmJsb2ctbGlzdCAuYmxvZy1jb250ZW50IC5ibG9nLWhlYWRlciBoNCBhewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDR7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OyAKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCBwewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCBoNCBhewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctdGV4dCAuc29jaWFsLWljb25zLTIgbGkgYSBpewogICAgICAgIG1hcmdpbjogMHB4OyAKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgLmJsb2ctYXV0aG9yIC5ibG9nLWxpc3QgLmJsb2ctdGV4dHsKICAgICAgICBwYWRkaW5nLXRvcDoxMHB4OwogICAgfQogICAgLmJsb2ctc2luZ2xlLWNvbnRlbnQgLmJsb2ctY29tbWVudCB1bCBsaSAuYmxvZy1saXN0IC5ibG9nLXRodW1iewogICAgICAgIGZsb2F0OiBub25lOwogICAgICAgIG1hcmdpbjowIGF1dG87CiAgICB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IHVsIGxpIC5ibG9nLWxpc3QgLmJsb2ctdGV4dHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAuYmxvZy1zaW5nbGUtY29udGVudCAuYmxvZy1jb21tZW50IHVsIGxpIC5ibG9nLWxpc3QgLmJsb2ctdGV4dCB1bCBsaXsKICAgICAgICBmbG9hdDogbm9uZTsKICAgIH0KICAgIC53aWRnZXQtc2VhcmNoIGJ1dHRvbnsKICAgICAgICBwYWRkaW5nOiA5cHggNnB4OwogICAgfQogICAgLmJsb2ctbGF0ZXN0IC5zaWRlYmFyLXBvc3RzIC50ZXh0LWJveC1yaWdodCBoNiBhewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIH0KICAgIC5ibG9nLWxhdGVzdCAuc2lkZWJhci1wb3N0cyAudGV4dC1ib3gtcmlnaHQgcHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgICAuYmxvZy1sYXRlc3QgLnNpZGViYXItcG9zdHMgLnRleHQtYm94LXJpZ2h0IC5wb3N0LWluZm97CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgfQogICAgLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IGgxLCAuaGVhZGVyLXNlY3Rpb24tdG9wLXBhcnQgaDJ7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogICAgLmhlYWRlci1zZWN0aW9uLXRvcC1wYXJ0IHB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgIH0KICAgIC5oZWFkZXItYXJlYXsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICB9CiAgICAuaGVhZGVyLXNlY3Rpb24tdG9wLXBhcnQgaDEsIC5oZWFkZXItc2VjdGlvbi10b3AtcGFydCBoMnsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogMHB4OwogICAgfQogICAgLmRvbWFpbi1zZWFyY2gtZnJvbSBpbnB1dFt0eXBlPXRleHRdewogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgIH0KICAgIC5oZWFkZXItc2VjdGlvbi13cmFwcGVyewogICAgICAgIHBhZGRpbmc6MTVweCAwcHg7CiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7CiAgICB9CiAgICAuZmVhdHVyZS1saXN0IC5mZWF0dXJlLWNvbnRlbnQgaDZ7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgfQogICAgLnNlcnZpY2UtbGlzdDEgaSB7CiAgICAgICAgd2lkdGg6ODBweDsKICAgICAgICBoZWlnaHQ6IDgwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7CiAgICB9CiAgICAudnBzLWZlYXR1cmUgLmZlYXR1cmUtaGVhZGVyIGgxewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAgIC52cHMtZmVhdHVyZSAuZmVhdHVyZS1saXN0IGxpewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5wYXJhbGxheC1jb250ZW50IGgyewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAgIC5ob3N0aW5nc3BlZWQtY29udGVudCAuaG9zdGluZ3NwZWVkLXRleHQgaDZ7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICB9CiAgICAuaG9zdGluZ3NwZWVkLWNvbnRlbnQgLmhvc3RpbmdzcGVlZC10aHVtYiBpewogICAgICAgIHdpZHRoOjYwcHg7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgfQogICAgLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10aHVtYiBpewogICAgICAgIGZvbnQtc2l6ZTogMjVweDsKICAgICAgICB3aWR0aDo2MHB4OwogICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICBsaW5lLWhlaWdodDogNjBweDsKICAgIH0KICAgIC5mZWF0dXJlLWxpc3QxIC5mZWF0dXJlLXRodW1iIGl7CiAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgICAgIHdpZHRoOjYwcHg7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4OwogICAgfQogICAgLmNvbnRhY3QtaW5mbyAuY29udGFjdC1jb250ZW50IC5jb250YWN0LWxpc3QgdWwgbGkgLmNvbnRhY3QtdGV4dCBwIHNwYW57CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmNvbnRhY3QtZm9ybSB7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KICAgIC5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbDF7CiAgICAgICAgd2lkdGg6MjVweDsKICAgICAgICBoZWlnaHQ6IDI1cHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4OwogICAgfQogICAgLmNhcm91c2VsLWluZGljYXRvcnN7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5zbGljay1wb3NpdGlvbiB7CiAgICAgICAgei1pbmRleDogOTk5OwogICAgICAgIHRvcDogMCUgIWltcG9ydGFudDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB9CiAgICAubG9naW4tYWRtaW4gLmxvZ2luLWZvcm0gYSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogICAgLmRvbWFpbi1zZWFyY2gtZnJvbSBzZWxlY3QgewogICAgICAgIHdpZHRoOiAyOCU7ICAgIH0KICAgIC5hYm91dC1pbmZvLmFib3V0LWxpZ2h0IC53cmFwIHsKICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7CiAgICB9CiAgICAubG9naW4tYWRtaW4gLnNvY2lhbC1sb2dpbiB1bCBsaSBhIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CiAgICAuc2luZ2xlLWRvbWFpbi1yYXRlLWNpcmNsZXsKICAgICAgICBtYXJnaW46MHB4IDE1cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyAgICAgICAgCiAgICB9CiAgICAub3RoZXItc2VydmljZSAub3RoZXItc2VydmljZS1saXN0IHVsIHsKICAgICAgICBsZWZ0OiA1JTsKICAgIH0KICAgIC5wb3B1bGFyLXBsYW4tY29udGVudCB1bCBsaXsKICAgICAgICBtYXJnaW46MHB4IDEwcHg7CiAgICB9CiAgICAuYWNjb3JkaW9uIC5wYW5lbC1oZWFkaW5nIGg0IGEgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5wYW5lbC1kZWZhdWx0IHAgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIH0KICAgIC5sb2dpbi1hZG1pbiAuc29jaWFsLWxvZ2luIHVsIGxpIGEgaSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgfQogICAgLmlzb3RvcGUtc29jaWFsIGEgaSB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiA4cHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMHB4OyAKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAgLm5ld3NsZXR0ZXItdGV4dCBoMyB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIH0KICAgIC5zZWN0aW9uLWhlYWRlciBoMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogICAgLnRlc3RpbW9uaWFsLWl0ZW0gLnRlc3RpbW9uaWFsLXRodW1iIGltZyB7CiAgICAgICAgd2lkdGg6IDUwcHg7CiAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgfQogICAgLmVycm9yLXRodW1iIHsKICAgICAgICB3aWR0aDogMzIwcHg7CiAgICAgICAgaGVpZ2h0OiAzMjBweDsKICAgICAgICBwYWRkaW5nLXRvcDogNzBweDsKICAgIH0KICAgIC5lcnJvci1jb250ZW50IGEgewogICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgIH0KICAgIC5lcnJvci1jb250ZW50IGgxIHsKICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICB9CiAgICAuc2xpY2stbmV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC5ob3N0cHJlc3MtY29udGVudCB7CiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKICAgIH0gICAKCgp9Ci8qIFdpZGUgTW9iaWxlIExheW91dDogNDgwcHguICovCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHsKICAgIC5zbGlja25hdl9tZW51ewogICAgICAgdG9wOjIlICFpbXBvcnRhbnQ7IAogICAgfQogICAgLnNsaWNrLXBvc2l0aW9uIHsKICAgICAgICB6LWluZGV4OiA5OTk7CiAgICAgICAgdG9wOiAwJSAhaW1wb3J0YW50OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIH0KICAgIC5kb21haW4tc2VhcmNoLWZyb20gaW5wdXRbdHlwZT1zdWJtaXRdewogICAgICAgIHBhZGRpbmc6IDlweCAxMHB4OwogICAgfQogICAgLm9ubGluZS1jb250ZW50IHVsIGxpIC5vbmxpbmUtaXRlbSAub25saW5lLXRodW1iIHsKICAgICAgICBwYWRkaW5nOiAwcHggNnB4OwogICAgICAgIHdpZHRoOiAyNXB4OwogICAgICAgIGhlaWdodDogMjVweDsKICAgICAgICBtYXJnaW46MCBhdXRvOwogICAgfQogICAgLnNpbmdsZS1kb21haW4tcmF0ZS1jaXJjbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgICAuYWRtaW4tY29udGVudCAuYWRtaW4tdXNlciBidXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5zZWN0aW9uLWhlYWRlciBwOmJlZm9yZSB7CiAgICAgICAgcmlnaHQ6IDIlOwogICAgfSAKICAgIC5zZWN0aW9uLWhlYWRlciBwOmFmdGVyIHsKICAgICAgICBsZWZ0OiAyJTsKICAgIH0KICAgIC5sb2dpbi1hZG1pbiAubG9naW4tZm9ybSBhIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICB9CiAgICAubG9nbyBpbWcgewogICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICBoZWlnaHQ6IDMwcHg7CiAgICB9CiAgICAuc3VwcG9ydC10aHVtYiBpbWcgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtbGlzdCB7CiAgICAgICAgbWluLXdpZHRoOiAxMzBweDsKICAgIH0KICAgIC50ZXN0aW1vbmlhbC1pdGVtIC50ZXN0aW1vbmlhbC10aHVtYiBpbWcgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgIH0KICAgIC53aWRnZXQtdGl0bGUgcDpiZWZvcmUgewogICAgICAgIGxlZnQ6IDglOwogICAgfQogICAgLndpZGdldC10aXRsZSBwOmFmdGVyIHsKICAgICAgICByaWdodDogOCU7CiAgICB9CiAgICAuc2VjdGlvbi1oZWFkZXIgcDpiZWZvcmUgewogICAgICAgIHJpZ2h0OiAzJTsKICAgIH0KICAgIC5zZWN0aW9uLWhlYWRlciBwOmFmdGVyIHsKICAgICAgICBsZWZ0OiAzJTsKICAgIH0KICAgIC5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbDF7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIC50ZWFtLWl0ZW0gLnRlYW0tb3ZlcmxheSB1bCBsaSB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7CiAgICB9CiAgICAubG9naW4tYWRtaW4gLmxvZ2luLWZvcm0gbGFiZWwgewogICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgIH0KICAgIC5ibG9nLXNpbmdsZS1jb250ZW50IC5ibG9nLWNvbnRlbnQgaDQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIH0KICAgIC5ibG9nLWxpc3QxIC5ibG9nLXRleHQgaDQgewogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICB9CiAgICAucG9wdWxhci1wbGFuLWNvbnRlbnQgcCB7CiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7CiAgICB9CiAgICAuY2lyY2xlLWNvbnRlbnQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CiAgICAudGVzdGltb25pYWwtY29udGVudCBwIHsKICAgICAgICBsaW5lLWhlaWdodDogMTVweDsKICAgIH0KICAgIC5ob3N0cHJlc3MtY29udGVudHsKICAgICAgICBwYWRkaW5nLXRvcDoyMHB4OwogICAgfQogICAgLmZhcS1jYXRlZ29yaWVzIHVsIGxpIGEgewogICAgICAgIHBhZGRpbmc6IDEycHggNnB4OwogICAgfQogICAgLnN1cHBvcnQtY29udGVudCBoMiB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgfQogICAgLndpZGdldFRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICB9CiAgICAuc2xpY2stbmV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIAp9"}},"time_used":65,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":61,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/fonts/fontawesome-webfont5b625b625b62.woff2?v=4.6.3","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.250Z","timestamp":1785126646250,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/fonts/fontawesome-webfont5b625b625b62.woff2?v=4.6.3 HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/assets/front/css/font-awesome.min.css\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: font/woff2\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 71896\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":71896,"size_decoded":72065,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 71896, version 4.393","md5":"e6cf7c6ec7c2d6f670ae9d762604cb0b","sha1":"97e438cc545714309882fbceadbf344fcaddcec5","sha256":"7dacf83f51179de8d7980a513e67ab3a08f2c6272bb5946df8fd77c0d1763b73","sha512":"dd945face918edf20b7283b7416ae7b3735269945e3f3e379e770425024c1de1fcdc7cfb952381d295d0d1f58c8ab191fd29030f2051d10501557bd7bfbe3658","ssdeep":"1536:tA4xrPyfyECsyz2wCjYfhO/ORzc7erabg5Z06GEQMo:t3jayEC/2/OI/gcq+bg5C6G7","tlshash":"756302f87e71b01d5a306f74e56730e2491c9283e79593f8a8297cb681b2f493742c7a","first_seen":"2023-04-05T09:22:06Z","last_seen":"2026-07-27T08:08:01.202582Z","times_seen":41660,"resource_available":false,"data":"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"}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/52.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.635Z","timestamp":1785126646635,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/52.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2330\r\nage: 8186\r\nlast-modified: Tue, 19 Oct 2021 05:35:17 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:14:27 GMT\r\ncache-control: max-age=86400\r\netag: \"39edd8e5c80256300562f68afb1ab525\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: qf6xBgYI_hhHWC_E9yvxxPikaOYQXUw3Jf4ZZb8HCYvN0lYyx112_g==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2330,"size_decoded":2855,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"39edd8e5c80256300562f68afb1ab525","sha1":"506e80486e2b9e90f7344334cd95e93ac8fa0338","sha256":"cf4c3c2ec18de3d4dcd49151ffe00cb299f86fc98467cf806b9c447467935479","sha512":"029abf77a53608d0e0a92ca7764bbed17cf0960e540fee5f8eb0a9cb1bbbb490e730ec22e8dc186b07b784cd87410f5667207c22478773346d725579673e5e2c","ssdeep":"","tlshash":"a3410ad884a0624d2924177332a3193dfc6d3f949a066dffc81d563c84a1e8271b5d64","first_seen":"2023-05-04T14:58:57Z","last_seen":"2026-07-27T08:07:37.383496Z","times_seen":17283,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAACiFBMVEVHcEwAAAA/Pz8jKS4iKC4AVVURCQkAAAAjKS8jKS8iKS4iKC4jKS4iKC4iKC4AAFUjKS8tAD8iKC4jJywkKi4jKTAjKC4jKi8jKS4iKC4hKS4jKS8iKTAjKC4jKC4jKC4AVQAAPz8jKTAiJy0iKS8kKjAkJDAhLCweKCwjKS8jKS8kKzEiKC4iKC4jKC4iKS4jKS4jKS8jJy8jKS4kKC4iKS8jKC4zMzMjKS8jKS8jKTAjKC8iKS8hJjEjKS8jKS4jKjAkKTAjKC4iKC4iKS8iKi8jKC8jKS4iKC4kJC0kKC8iKC8kKjAkKi8jKC4jKS8iKC4jKS////8kKjD9/v0lKzH//v8mLDInLTMlLDIkKzH8/PwTGiAmLDMTGR8TGSBvc3eDh4oUGiD6+vuKjZEUGiEmKzESGB8nLTIcIih1eX0nLDIfJiwdJCoeJSsUGyH8/f0SGSAbISgbISciKC5DSE1FSk/7+/sVGyEkKS8lLDP8/P12en1obHAjKjAmLDF2eX1ARUoRGB59gYQlKjD9/v4wNjzw8PAxNzwVGyJ7f4P19fUZHyYvNDqKjZBuc3eDhor//v+KjpEVHCKAhIf6+/sfJSw6P0UXHSMaICfZ2tv4+Pjr7OwlKzJucnYcIymEh4tGS1D4+PkbIijx8vJ2en4hJy1wdHhydnoqMDbv7/Dw8PFZXmP7+/z7/PydoKMcIik2PEE4PUOjpagZHyVITVIpLzVKT1SvsbNBRkwyOD3s7e2VmJuJjI90eHx+goZqb3NpbnJlaW3S09S4urxkaGxzdnuPk5aWmZy6u72Slpn39/jU1dY8QUZSVltxdXnj4+Tj5ORVWV7a29zq6+t6fYHNz9HP0dKmhn9sAAAAUXRSTlMAAwT8+wMCAf79jvr36qkD/ASQKCn0++uP/GKtbfxr+gME52Hs/RUXGI54/tXW2Lm690FdP/heBfWH/obOLqf7wr/ELMeF7e8WHHd30tPR0M/Ql4MLAAAF8ElEQVRYw6VX918TSRQfIGQ3gSBNRcVyCIoIgmDvXey3s45b0jQBJBBCICioSDlZRBD1bKhnr2fXs5frd17xev13bmYTIMnuBjjfD/sJ7Hzfvjfz3ne+DwCF6aPJI6XImJ9niqeZeFNugbEolcL/jKbAwEbFAhBVmLZpuohEtonBxrIiQtMXGAuTAIgd0AWGr1m7XuRExhBjMNDEAW3APxnRijbkZMsLIpieAtnzR1pFWufH9htt0NEiZ1o5GVD6SJ+n0jM4VmdgVM2gY4WMdD2I1s5++VKB1dGMptHYxZKFGjtBUWD0cDQiAlx2MQINH03WquCpNIEdxQxoo3YJUyilBz2VlGCNoZlBGL3YuigpfCsp/YQxu+OYQVrc7jFRoTFQUVSCVccM2nTWBAwJcvAeMFrjmCFYnDUZg/psGJgojGeGZOOFiRgWsCiQOieRlqueWCRc3wo6cU4KCGwkNWzCCjSWvK7ynDzpcSNtPHJ7Tro9HvJz7Lll+sA2xIJxgn8DP2lv7+jortWMga3t7uhob39YJ2+kMM7fWRQ1KTOLVD/raunaf3v/rX02Th3P2fbd2n/7VtcNHwmSzsosls8yFswXRvgDPHYcEtPwgPHy6+PH/EnqhLkkBAoUr5oXqMCy7Z3QbPbCzy0qHrjS49BrNsPO7WWBipy3OhuQ3swR+kqIs3dCyeuF25QeOMs26PVK8Fr/K52wjrT27GlT+/u/vKYFblbz4Mdvhi228r7/JU6dNhtvwgwUzB+Vtgq8UOHBj/fCCltlMMOIM/AmGoWQJuDtFTiLPfCIhes7TpazHIF7cPwVdj6kJYQ0XIbvi6EMxvfHwPbhe7/Ph3KcuDEapM5kwliAtzXi5WZ45AOGJ4XLM9u3QTPGN4bhMXBmCpglKii00t4on8WPnoaq69erGtzfy/vfYq9U0Kw4CySjGMWRkyyIh68//vnmzZ5ff8J/SNJndl6xMAYlgwKkQuK8/TyE97wQfvTb728hNN+F8LyNVyF6lA9yWTUirKz+9ir0Ok+Q0j3hlODVr6rL1eiRzQOmJlUmLT/V+gNBSxJ5ftN6qlKVX1kTiNdoXc7l++PRmS4Iu/589MvBBxoNysQDbfJAjxvYnidPetgDB5EmydAgwlXAP2VOVzecZp7yEUhOMwWmrdlX7Xn54sVLd4MPtTGaKZhY9Ri4qlPPXv/z6u3bV/++fva4Sn0P6CYTyGM1TqHnuRkGTHr+UOsUckG+WiEx/IE7ZyF0OgmcPP+6c0CtDgyoQLWUcSXurYd3cQTms2fr8fMerN+rVomklFWaCffCXi/uH3jm753d3Ts6z+DfW7xqHkgzpSjamSm3fGkmvXSfqXa53Q+qm+6TbjR/YQnPArdzKojeGB4CX7NVIvjvHHU8YlnE11mOEg/S1vB+NIgLogBIC6U0nP9h3L5meNTS3MdIjqOYUSQY7kHHGTEnzgiNAOMlwoklpWX9nFhWWkI4Udoaug8yqVKY1hOV8ZeUNgddkWwz9iBnURPkwYBpHetfsC4oB952eAuJ/5ADhVyxLHIcIll8GByDTsjBcD3IXt17tWF87/fLwq5oOQtvSBb0vFXF+GbE9+Pc3hA4GW+GJQ5OccXjnSwhMUg3ajgm+HLF13txZpYcAnI04rqH8FPF9/0x4CzI62sOmR0MWZmT/FKtV2Ag3xvJ6ay/fNHCqUoMfL9cvFzvdHrfyPpAxwUEBtZ4+mXniMSpu7Rzx46drS4tmcSyrlay4hJRKGPRithhAaWnByl+kVXrc12pvRBJI1244nL5amWRNTwVq7MwmccibG2RVFobWcGGyzwiNJP5IQpNY7DQfHepi89yiGJ7gp5SyP1F1sWDk/sx1oQk5eSEZ4gpwq7/P3C8+8gjD10Llww8dC1drj1+4t5MzxAijX1cRjqlOfb5B8/JK02c1uBpHTk/O+Lg6R99s3M2IKty9OXE9WvXDDT6BobvpELjAnn4ZnuHb3H6prTCqMEM38QFyZFKLZpSkGuKZ+h4U16+sSiFBB6tEv1/F8gy0fK4tFYAAAAASUVORK5CYII="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/4943.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.683Z","timestamp":1785126646683,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/4943.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2671\r\nage: 10201\r\nlast-modified: Tue, 19 Oct 2021 05:35:11 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 01:41:09 GMT\r\ncache-control: max-age=86400\r\netag: \"8e26118d7a63338cfef1116720c92e0e\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: IsGzYbr1NmiZ6HTQofQFP39eIZwkYCVEl2-_qfDUuAzBM5oqmHz3pg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2671,"size_decoded":3197,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"8e26118d7a63338cfef1116720c92e0e","sha1":"8902985faa4db767ea26150e0058886b8874fb37","sha256":"a0ed329b8cd852688196ea87f4496585aeb0047c57b1fadbfc87f7bb8b9cada6","sha512":"d5137311b25651141f093713ba390fbf9403398c35ed1f1178a95a99101ddbdcc4791b7cb60e7f39d7cb8216c9b5a65ea6ab02e61730d398c6bc805f8efbbc49","ssdeep":"","tlshash":"39513bdc736f68c4999581dbda64c9cc91092c1ded09a4431ee838733cb8bc28b2749a","first_seen":"2023-05-06T12:21:16Z","last_seen":"2026-07-27T08:07:37.442737Z","times_seen":1219,"resource_available":false,"data":"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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/5176.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.707Z","timestamp":1785126646707,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/5176.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 746\r\nage: 78849\r\nlast-modified: Fri, 28 Jul 2023 07:43:45 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 06:37:04 GMT\r\netag: \"5b97c0a26ca9707d0aade8420216c659\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: s--TsTPjIOBJHVKaORO3YMscWlI2CBG8YHesuqKraI5r6-Rvd_hSLg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":746,"size_decoded":1279,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"5b97c0a26ca9707d0aade8420216c659","sha1":"00bd79b81ba15abe30772de87262fb62b704b954","sha256":"acf372af35817cf300680492e46a0788ba2b0afd14c62cd7a033c85b6f015e73","sha512":"9536a33d35ffcc11aba99ddd8b2be7a950015e2a62d017b0d6da2e62959f7d85bf3ddabefb749755e0133012019b75ae76a1a052c62faeb3dd73af3d0166e9d6","ssdeep":"","tlshash":"620165da57f155bed619c4839e084597106e1fc4826d24c992189dc4e470abc2b485da","first_seen":"2024-01-09T05:16:20Z","last_seen":"2026-07-27T08:07:37.454466Z","times_seen":1114,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACsUlEQVR4Xu2ay0ocQRSGfQQfIY+QR/AxguPCTfY+RNbJ2lUWrkUyIWQTCASyEWFAjeDGXBBDUBAhEhDBzBF6sL/prsupi9VjffAtdLrqnP/MdE/P6NJSpVKpVCrOHIxHdyX77cPqc/YcjcnO+jILlij7jgYLFewlew/mcDx621GoWNl/MCwwBJlBDTcejO/XVpjFm4N3o8ncxgOSebzhhkOUmZzhRiZzw/omJzsvnjGblelVf4MbmcwN69tkPivcwGZuWN/m/nj0hhl74WIXc8P6LjJnJ9rb3dywvqP2O8SORU6efH3l5OWvL8zSgsf3yfquMm+L/fHqOhfE9s/xNjO34PEpZO4ZPDCFJQxATnNmzxJeLGEAYiu89sJnUs7TvxdHzOeN7BFyzvcpp/tsAHxQ6+3NNftPwvGnjbnaGpvwn/mAj0cfX7K/bIS+MqZ3u9+Dn30TN9fn9+e86xoeezrZtJ5Goa+GqAOQwHy8yz44gC6vfu95rzEZfA0Q+DubffiG0ax56OwiGDIE4d/Vj7nfm5SmRXl5i83PPud0c0epHUArfAMPcpHw8dgSzQCYuwUPtmlDnmG5mHGdzZ+7r60XQIHrbDLvHJrPAxIwN5pnvnXzY0IzhEbbp70Q5B2A9Vx1Dt8gf2PjJiHKS1qeNXmrNCEDPDvcur/B4h5a1X8vjD0EMfeHIXX4h3DTEHMOgDmC4OZacw2A/UeBRTTmGAD7jgqL+Zp6AOw3OqFfnqQcQOdXXalgcVdTDYD9ZYFNuJhiAOwrK2zGpnyBwe/4Q77vZz+PApvKJft4VNhcalm/CNhkKlm3KNhsbFmvSNh0LFmnaNh8qNx/EDCEVu47KBjGV+43SFT/azhdw30Gjc//GsuxXL8QuAxhYcM3MDDl8QsJQz+p8A1POnylUqlUCuE/+/pKU82qDO4AAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/info/widget-assets?jsonpCallback=true\u0026id=6a506dba4dab3ead5e8ea2e6","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:47.373Z","timestamp":1785126647373,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /info/widget-assets?jsonpCallback=true\u0026id=6a506dba4dab3ead5e8ea2e6 HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\ncontent-type: text/javascript; charset=utf-8\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nx-powered-by: Express\r\netag: W/\"17f-jkJ6MfHVkGXITwBbnTzNtlMuUDM\"\r\nx-frame-options: sameorigin\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\ncf-cache-status: DYNAMIC\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=aJqcbyjipvYw4aARBCrW2B3sk7BH3fClDBzaTE78uvB6GpEHBDwqHd1HzrngP3CECWb5z7wuI%2FniTay510kkM78uWetAArwGAqW4hrfoiG3HFS9zUGIQA0E3aHwwOP4%2BTQ%3D%3D\"}]}\r\ncontent-encoding: br\r\ncf-ray: a218e92a1f3ab1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":383,"size_decoded":983,"mime_type":"text/javascript; charset=utf-8","magic":"ASCII text, with very long lines (383), with no line terminators","md5":"e5b7915581535d1a338e74c10361b787","sha1":"8e427a31f1d59065c84f005b9d3ccdb6532e5033","sha256":"91b716395d48fda57a1be424c51dfb858b1adf3ce16b23e7a2b550dd87df2314","sha512":"fec029ebfc85a50d5628fd0deece109d542a37f9c88a6c7fe09295d1e46a9f6c90ab34d50d2e46ab9e29e9dfcbece7de78e80ab241f55d79a3639d6633d695f5","ssdeep":"","tlshash":"c6e06802e74a0f521fa03679be0e2bc364abd7560f40d6a9a535ee216429cc55026c7a","first_seen":"2026-07-27T03:51:33.485058Z","last_seen":"2026-07-27T04:32:40.395508Z","times_seen":3,"resource_available":true,"data":"d2luZG93LmNoYXBvcnRJbml0UmVzdWx0ID0geyJyb290IjoiaHR0cHM6Ly9hc3NldHMuY2hhcG9ydC5jb20iLCJzZXR0aW5ncyI6IjBjZGRjMGRiZWQ1YzNkMWNkNjdhZTIzODA5MGM1YTYxN2NkMjNiMTM0NWE3NmYwNjcxYzg2Y2RjOTgwZjI1ODAiLCJqcyI6eyJib290c3RyYXAiOiIvYXNzZXRzL2luc2VydC1tYWluLTJjMTJkOWNjM2RlZDIwZThjZjA5YTkwMWI4NmY1YzY4LmpzIiwiYXVkaW8iOiIvYXNzZXRzL2F1ZGlvLXBsYXllci1kMjJhNjY5OWM2MzlkNDAwOGFhMWY2MWNmYzVkZTlkMC5qcyJ9LCJjc3MiOnsid2lkZ2V0IjoiaHR0cHM6Ly9hc3NldHMuY2hhcG9ydC5jb20vYXNzZXRzL3dpZGdldC1mZWFiODA3Y2ZkZWE2YjM3N2Q4OTZlMzhlODg0NzliOS5jc3MifX0="}},"time_used":132,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":131,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"maps.googleapis.com/maps-api-v3/api/js/65/10a/util.js","fqdn":"maps.googleapis.com","domain":"maps.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:51.274Z","timestamp":1785126651274,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /maps-api-v3/api/js/65/10a/util.js HTTP/1.1\r\nHost: maps.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/maps-api-js\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"maps-api-js\"\r\nreport-to: {\"group\":\"maps-api-js\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/maps-api-js\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 71838\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 18:01:05 GMT\r\nexpires: Thu, 22 Jul 2027 18:01:05 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 08:01:32 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding, Origin\r\nage: 383386\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":317352,"size_decoded":72677,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (523)","md5":"6a66b994a8cff590771a8cf7c8d22985","sha1":"75f991bb10c469f7602ad12bbefe3f0194d84ab7","sha256":"854d0de447affcb4cc29bd570d8311a969aa5d43b88f0c64950ac84233cb037b","sha512":"1469786d2b55b52ba1614146b7a32a99d4b354de0a36b36860309c9b18fe873713eb5616db80133d80537cb775e59052264a48a4b5661bbf5c5fc0243c16c440","ssdeep":"3072:gzIavX/CiQKjOnkJG7NJG7A8kwyuZmBFZq:gzIax4npCk8kxu0BFZq","tlshash":"7d64d77c32316b4ee973c85bc626300e90257ddbfad488bdfee59186d954988f0e4a34","first_seen":"2026-07-22T18:24:50.743146Z","last_seen":"2026-07-27T08:05:46.704053Z","times_seen":727,"resource_available":true,"data":"Z29vZ2xlLm1hcHMuX19nanNsb2FkX18oJ3V0aWwnLCBmdW5jdGlvbihfKXsvKgoKIENvcHlyaWdodCAyMDI0IEdvb2dsZSwgSW5jCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiovCi8qCgogQ29weXJpZ2h0IDIwMjIgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQoqLwp2YXIgSnlhLEx5YSxPeWEsUHlhLFV5YSxWeWEsWXlhLGN6YSxkemEsRUUsaHphLGx6YSxIRSxuemEsYkYsdnphLGZGLEJ6YSxpRixDemEsakYsRHphLEV6YSxGemEsa0YsSHphLEd6YSxJemEsS3phLE16YSxPemEsU3phLFF6YSxUemEsUnphLGxGLG1GLFd6YSxYemEsbkYsb0YsckYsc0YsdEYsWnphLHZGLHdGLCR6YSx4RixhQWEseUYsekYsYkFhLEFGLEJGLGNBYSxDRixpQWEsbUFhLG9BYSxwQWEscUFhLEVGLEZGLEdGLEhGLElGLHJBYSxKRixLRixMRixzQWEsdEFhLHVBYSxNRixORixPRix2QWEsd0FhLFBGLFFGLHhBYSxEQWEsRUFhLEdBYSxIQWEsSUFhLEpBYSxLQWEsTEFhLE1BYSxOQWEsT0FhLFBBYSxRQWEsUkFhLFNBYSxUQWEsV0YsWUYsWkYsJEYsYkcsY0csYUcsZEcsJEFhLGFCYSxpRyxqRyxsRyxkQmEsbUcsbkcsZUJhLGZCYSxvRyxjQmEsaUJhLGpCYSxrQmEsdUcsbEJhLHZHLG1CYSx3Ryx4Ryx6RyxBRyxCRyxvQmEsQ0csREcscUJhLHBCYSxIRyx0QmEsSUcsRUcsdUJhLApNRyxPRyxKRyxRRyx3QmEsekJhLFNHLHJCYSxVRyxWRyxXRyxURyxBQmEsQkJhLFhHLGFILFJHLHhCYSxDQmEsWkcsWUcsdkJhLExHLCRHLEdHLE5HLEtHLEVCYSxIQmEsc0JhLGRILEtCYSxQQmEsUUJhLE5CYSxPQmEsUkJhLEpCYSxUQmEsU0JhLHJILHNILHhILFlCYSxWQmEseUgsd0gsYkNhLGNDYSx6SCxkQ2EsQkgsQUgsZ0NhLEZDYSxUSCxLQ2EsTENhLFlILFBDYSxVQ2EsWENhLCRDYSxaQ2EsYkRhLGFJLGVJLG5EYSx0RGEsdkRhLHdEYSx4RGEsekRhLEFEYSx3SSx4SSx5SSxJRGEsQUksREksUURhLFJEYSx0emEsVERhLGJ6YSxlemEsaXphLGp6YSxwemEscnphLHF6YSxzemEsVURhLHd6YSxWRGEsV0RhLHh6YSx1Q2EsWERhLGhDYSxxQ2EsWURhLEhILEZILEVILG5DYSxwQ2EsbENhLG1DYSxvQ2EsakNhLHJDYSxmQ2Esa0NhLGlDYSx0Q2Esc0NhLFpEYSwkRGEsYUVhLGJFYSxMSSxjRWEsZEVhLE1JLGVFYSxmRWEsZ0VhLHp6YTsKXy5jRT1mdW5jdGlvbihhLGIpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1jLnNsaWNlKCk7ZC5wdXNoLmFwcGx5KGQsYXJndW1lbnRzKTtyZXR1cm4gYS5hcHBseSh0aGlzLGQpfX07Xy5kRT1mdW5jdGlvbihhLGIpe3JldHVybiBfLk9mKGEsYix2b2lkIDAsdm9pZCAwLF8udmUpIT1udWxsfTtfLmVFPWZ1bmN0aW9uKGEpe3JldHVybigwLF8uY2dhKShhKX07Xy5mRT1mdW5jdGlvbihhLGIpe3JldHVybihjLGQpPT57YTp7bGV0IGY9e0dGOiEwfTtkJiZPYmplY3QuYXNzaWduKGYsZCk7Yz1fLlB1KGMsdm9pZCAwLHZvaWQgMCxmKTt0cnl7bGV0IGc9bmV3IGEsaD1nLkxpO18uZHYoYikoaCxjKTt2YXIgZT1nO2JyZWFrIGF9Y2F0Y2goZyl7aWYoZyBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGc7fWZpbmFsbHl7Yy5RaSgpfWU9dm9pZCAwfXJldHVybiBlfX07Ckp5YT1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07Xy5LeWE9ZnVuY3Rpb24oYSxiKXthLkxoP2IoKTooYS5KaHx8KGEuSmg9W10pLGEuSmgucHVzaChiKSl9O18uZ0U9ZnVuY3Rpb24oYSxiKXtfLkt5YShhLF8uY0UoSnlhLGIpKX07THlhPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihBcnJheS5pc0FycmF5KGMpKWZvcihsZXQgZz0wO2c8Yy5sZW5ndGg7ZysrKUx5YShhLGIsY1tnXSxkLGUsZik7ZWxzZShiPV8udWsoYixjLGR8fGEuaGFuZGxlRXZlbnQsZSxmfHxhLndofHxhKSkmJihhLnFoW2Iua2V5XT1iKX07Xy5NeWE9ZnVuY3Rpb24oYSxiLGMsZCl7THlhKGEsYixjLGQpfTtfLmhFPWZ1bmN0aW9uKCl7dmFyIGE9Xy5HKF8uSmwsXy5SeCwyKTtyZXR1cm4gXy5HKGEsXy5SeSwxNil9O18uaUU9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn07Cl8uTnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5VbShhKSxkPV8uVW0oYiksZT1jLWQ7YT1fLlZtKGEpLV8uVm0oYik7cmV0dXJuIDIqTWF0aC5hc2luKE1hdGguc3FydChNYXRoLnBvdyhNYXRoLnNpbihlLzIpLDIpK01hdGguY29zKGMpKk1hdGguY29zKGQpKk1hdGgucG93KE1hdGguc2luKGEvMiksMikpKX07Xy5qRT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uTnlhKGEsYikqKGN8fDYzNzgxMzcpfTtfLmtFPWZ1bmN0aW9uKGEsYil7Y29uc29sZS53YXJuKF8uaHAoYSxiKSl9O18ubEU9ZnVuY3Rpb24oYSxiKXthLkJ2LmhhcyhiKXx8KGEuQnYuYWRkKGIpLF8ua0UoYSxiKSl9O095YT1mdW5jdGlvbihhKXsoMCxfLlVlKShhKT9hPV8uZGUoXy5WZShhKSk6KF8uQ2UoYSksYT0oMCxfLlJlKShhKSxhPj0wJiYoMCxfLlVlKShhKT9hPVN0cmluZyhhKTooXy5rZShhKSxhPV8ubmUoXy5lZSxfLmdlKSksYT1fLmRlKGEpKTtyZXR1cm4gYX07ClB5YT1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLlJlKShOdW1iZXIoYSkpO2lmKCgwLF8uVWUpKGIpJiZiPj0wKXJldHVybiBfLmRlKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gXy5kZSgoMCxfLlplKSg2NCxCaWdJbnQoYSkpKX07Xy5ReWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7aWYoYT09bnVsbClyZXR1cm4gYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIF8uZGUoKDAsXy5aZSkoNjQsYSkpO2lmKF8uQ2UoYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj9QeWEoYSk6T3lhKGEpfTtfLm1FPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uT2YoYSxiLHZvaWQgMCx2b2lkIDAsXy5ReWEpPz9fLk1nfTtfLlJ5YT1mdW5jdGlvbihhLGIsYyl7YT1fLmpnKGEsYixfLnZlLDMsITApO18uWWQoYSxjKTtyZXR1cm4gYVtjXX07Xy5uRT1mdW5jdGlvbihhLGIpe3JldHVybiBfLmpnKGEsYixfLnZlLDMsITApLmxlbmd0aH07Cl8ub0U9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLlFmKGEsYixjPT1udWxsP2M6Xy5RZShjLHZvaWQgMCkpfTtfLnBFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uSmUoXy5PZihhLGIpKSE9bnVsbH07Xy5TeWE9ZnVuY3Rpb24oYSl7YS5xaC5fX2dtX2ludGVybmFsX19ub0RyYWc9ITB9O18uVHlhPWZ1bmN0aW9uKGEsYixjPTApe3ZhciBkPV8uVngoYSx7a2k6Yi5raS1jLGxpOmIubGktYyx1aTpiLnVpfSk7YT1fLlZ4KGEse2tpOmIua2krMStjLGxpOmIubGkrMStjLHVpOmIudWl9KTtyZXR1cm57bWluOm5ldyBfLldwKE1hdGgubWluKGQucWgsYS5xaCksTWF0aC5taW4oZC5yaCxhLnJoKSksbWF4Om5ldyBfLldwKE1hdGgubWF4KGQucWgsYS5xaCksTWF0aC5tYXgoZC5yaCxhLnJoKSl9fTtVeWE9ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUubm93KCk+YS5xaH07Xy5xRT1mdW5jdGlvbihhLGIsYyl7Xy5KZyhfLkpsLDQ5KT9iKCk6KGEucWgoKSxhLnNoKGQ9PntkP2IoKTpjJiZjKCl9KSl9OwpfLnJFPWZ1bmN0aW9uKGEpe2Euc3R5bGUuZGlyZWN0aW9uPV8uREIuSWooKT8icnRsIjoibHRyIn07VnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgtYi5sZW5ndGg7cmV0dXJuIGM+PTAmJmEuaW5kZXhPZihiLGMpPT1jfTtfLnNFPWZ1bmN0aW9uKGEpe3JldHVybi9eW1xzXHhhMF0qKFtcc1xTXSo/KVtcc1x4YTBdKiQvLmV4ZWMoYSlbMV19O18uV3lhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uUmIoIkFuZHJvaWQiKSYmIShfLmhjKCl8fF8uZGMoKXx8Xy5VYigpfHxfLlJiKCJTaWxrIikpfTtfLlh5YT1mdW5jdGlvbihhKXtyZXR1cm4gYVthLmxlbmd0aC0xXX07WXlhPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7bGV0IGQ9YXJndW1lbnRzW2NdO2lmKF8uWWEoZCkpe2xldCBlPWEubGVuZ3RofHwwLGY9ZC5sZW5ndGh8fDA7YS5sZW5ndGg9ZStmO2ZvcihsZXQgZz0wO2c8ZjtnKyspYVtlK2ddPWRbZ119ZWxzZSBhLnB1c2goZCl9fTsKXy50RT1mdW5jdGlvbihhLGIpe2lmKCFfLllhKGEpfHwhXy5ZYShiKXx8YS5sZW5ndGghPWIubGVuZ3RoKXJldHVybiExO3ZhciBjPWEubGVuZ3RoO2ZvcihsZXQgZD0wO2Q8YztkKyspaWYoYVtkXSE9PWJbZF0pcmV0dXJuITE7cmV0dXJuITB9O18uWnlhPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD9kKGIpOmI7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGQpP2FbZF06YVtkXT1jKGIpfTtfLiR5YT1mdW5jdGlvbihhLGIpe2lmKGIpe2xldCBjPVtdLGQ9MDtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKyl7bGV0IGY9YS5jaGFyQ29kZUF0KGUpO2Y+MjU1JiYoY1tkKytdPWYmMjU1LGY+Pj04KTtjW2QrK109Zn1hPV8uVWMoYyxiKX1lbHNlIGE9Xy5VYS5idG9hKGEpO3JldHVybiBhfTsKXy51RT1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhO2lmKHR5cGVvZiBhPT09ImJpZ2ludCIpcmV0dXJuKDAsXy50ZikoYSk/YT1OdW1iZXIoYSk6KGE9KDAsXy5MZSkoNjQsYSksYT0oMCxfLnRmKShhKT9OdW1iZXIoYSk6U3RyaW5nKGEpKSxhO2lmKF8uQ2UoYSkpcmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciI/Xy5QZShhKTpfLktlKGEpfTtfLnZFPWZ1bmN0aW9uKGEpe2lmKCFfLkNlKGEpKXRocm93IF8udGQoInVpbnQ2NCIpO3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gUHlhKGEpO2Nhc2UgImJpZ2ludCI6cmV0dXJuIF8uZGUoKDAsXy5aZSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIE95YShhKX19O18ud0U9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy51RShfLk9mKGEsYix2b2lkIDAsdm9pZCAwLF8uWWUpKX07Xy54RT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uUWYoYSxiLGM9PW51bGw/YzpfLnZFKGMpKX07Cl8ueUU9ZnVuY3Rpb24oYSxiLGMpe18uSGcoYSxiLF8uYmYsYyx2b2lkIDAsXy5kZil9O18uekU9ZnVuY3Rpb24oYSxiLGMpe18uSGcoYSxiLF8uYmYsYyx2b2lkIDAsXy5kZix2b2lkIDAsdm9pZCAwLCEwKX07Xy5BRT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e3ZhciBjPW5ldyBfLktnYTtfLndpKGIuTGksYyxfLnRpKGEpKTtyZXR1cm4gXy5haShjKX19O18uYXphPWZ1bmN0aW9uKGEsYj1fLk9nYSl7aWYoYSBpbnN0YW5jZW9mIF8uc2opcmV0dXJuIGE7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDsrK2Mpe2xldCBkPWJbY107aWYoZCBpbnN0YW5jZW9mIF8udWomJmQuQWooYSkpcmV0dXJuIF8udGooYSl9fTtfLkJFPWZ1bmN0aW9uKGEpe3JldHVybiBfLmF6YShhLF8uT2dhKXx8Xy5Ncn07Xy5DRT1mdW5jdGlvbihhKXt2YXIgYj1fLm9qKCk7YT1iP2IuY3JlYXRlU2NyaXB0KGEpOmE7cmV0dXJuIG5ldyBiemEoYSl9OwpfLkRFPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBiemEpcmV0dXJuIGEucWg7dGhyb3cgRXJyb3IoIiIpO307Y3phPWZ1bmN0aW9uKGEsYil7Yj1fLkRFKGIpO3ZhciBjPWEuZXZhbChiKTtjPT09YiYmKGM9YS5ldmFsKGIudG9TdHJpbmcoKSkpO3JldHVybiBjfTtkemE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvJihbXjtdKyk7L2csZnVuY3Rpb24oYixjKXtzd2l0Y2goYyl7Y2FzZSAiYW1wIjpyZXR1cm4iJiI7Y2FzZSAibHQiOnJldHVybiI8IjtjYXNlICJndCI6cmV0dXJuIj4iO2Nhc2UgInF1b3QiOnJldHVybiciJztkZWZhdWx0OnJldHVybiBjLmNoYXJBdCgwKSE9IiMifHwoYz1OdW1iZXIoIjAiK2Muc2xpY2UoMSkpLGlzTmFOKGMpKT9iOlN0cmluZy5mcm9tQ2hhckNvZGUoYyl9fSl9OwpfLmZ6YT1mdW5jdGlvbihhLGIpe3ZhciBjPXsiJmFtcDsiOiImIiwiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZxdW90OyI6JyInfTt2YXIgZD1iP2IuY3JlYXRlRWxlbWVudCgiZGl2Iik6Xy5VYS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS5yZXBsYWNlKGV6YSxmdW5jdGlvbihlLGYpe3ZhciBnPWNbZV07aWYoZylyZXR1cm4gZztmLmNoYXJBdCgwKT09IiMiJiYoZj1OdW1iZXIoIjAiK2Yuc2xpY2UoMSkpLGlzTmFOKGYpfHwoZz1TdHJpbmcuZnJvbUNoYXJDb2RlKGYpKSk7Z3x8KGc9Xy54aihlKyIgIiksXy56aihkLGcpLGc9ZC5maXJzdENoaWxkLm5vZGVWYWx1ZS5zbGljZSgwLC0xKSk7cmV0dXJuIGNbZV09Z30pfTtFRT1mdW5jdGlvbihhKXtyZXR1cm4gYS5pbmRleE9mKCImIikhPS0xPyJkb2N1bWVudCJpbiBfLlVhP18uZnphKGEpOmR6YShhKTphfTsKXy5nemE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShSZWdFeHAoIihefFtcXHNdKykoW2Etel0pIiwiZyIpLGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYytkLnRvVXBwZXJDYXNlKCl9KX07Xy5GRT1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0iIjthJiYoaCs9YSsiOiIpO2MmJihoKz0iLy8iLGImJihoKz1iKyJAIiksaCs9YyxkJiYoaCs9IjoiK2QpKTtlJiYoaCs9ZSk7ZiYmKGgrPSI/IitmKTtnJiYoaCs9IiMiK2cpO3JldHVybiBofTtoemE9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWMubGVuZ3RoOyhiPWEuaW5kZXhPZihjLGIpKT49MCYmYjxkOyl7dmFyIGY9YS5jaGFyQ29kZUF0KGItMSk7aWYoZj09Mzh8fGY9PTYzKWlmKGY9YS5jaGFyQ29kZUF0KGIrZSksIWZ8fGY9PTYxfHxmPT0zOHx8Zj09MzUpcmV0dXJuIGI7Yis9ZSsxfXJldHVybi0xfTsKXy5remE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5zZWFyY2goaXphKSxkPTAsZSxmPVtdOyhlPWh6YShhLGQsYixjKSk+PTA7KWYucHVzaChhLnN1YnN0cmluZyhkLGUpKSxkPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZSkrMXx8YyxjKTtmLnB1c2goYS5zbGljZShkKSk7cmV0dXJuIGYuam9pbigiIikucmVwbGFjZShqemEsIiQxIil9O18uR0U9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBNYXRoLm1pbihNYXRoLm1heChhLGIpLGMpfTtsemE9ZnVuY3Rpb24oYSl7Zm9yKDthJiZhLm5vZGVUeXBlIT0xOylhPWEubmV4dFNpYmxpbmc7cmV0dXJuIGF9O0hFPWZ1bmN0aW9uKGEpe2E9Xy5DbChhKTtyZXR1cm4gXy5DRShhKX07Xy5JRT1hc3luYyBmdW5jdGlvbihhKXtpZihfLkxsKCkpdHJ5eyhhd2FpdCBfLkhsKCJsb2ciKSkueEgud2goYSl9Y2F0Y2goYil7fX07Xy5KRT1mdW5jdGlvbihhKXtyZXR1cm4gYT90eXBlb2YgYT09PSJudW1iZXIiP2E6cGFyc2VJbnQoYSwxMCk6TmFOfTsKXy5LRT1mdW5jdGlvbigpe3ZhciBhPW16YTthLmhhc093blByb3BlcnR5KCJfaW5zdGFuY2UiKXx8KGEuX2luc3RhbmNlPW5ldyBhKTtyZXR1cm4gYS5faW5zdGFuY2V9O18uTEU9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB3aW5kb3cuc2V0VGltZW91dCgoKT0+e2IuY2FsbChhKX0sYyl9O18uTUU9ZnVuY3Rpb24oYSl7cmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KGEsMCl9O18uTkU9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9YXJndW1lbnRzO18uTUUoKCk9PnthLmFwcGx5KHRoaXMsYil9KX19O18uT0U9ZnVuY3Rpb24oYSxiPTApe3JldHVybiBfLkxtKF8uT20sYz0+e2lmKGM8PWEpcmV0dXJuIGM7aWYoYj4wJiZjPD1hK2IpcmV0dXJuIGE7dGhyb3cgXy5BbShgJHtjfSBjYW5ub3QgZXhjZWVkICR7YX1gKTt9KX07Xy5QRT1mdW5jdGlvbihhLGIsYyxkKXtfLnFuKGEsYixfLlJjYShiLGMsIWQpKX07Cl8uUUU9ZnVuY3Rpb24oYSxiLGMpe2ZvcihsZXQgZCBvZiBiKWEuYmluZFRvKGQsYyl9O18uUkU9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWIpcmV0dXJuIDA7dmFyIGM9Xy50bChiLmxhdCgpLWEubGF0KCkpLGQ9Xy50bChiLmxuZygpLWEubG5nKCkpO2E9TWF0aC5zaW4oYy8yKSpNYXRoLnNpbihjLzIpK01hdGguY29zKF8udGwoYS5sYXQoKSkpKk1hdGguY29zKF8udGwoYi5sYXQoKSkpKk1hdGguc2luKGQvMikqTWF0aC5zaW4oZC8yKTtyZXR1cm4gMipNYXRoLmF0YW4yKE1hdGguc3FydChhKSxNYXRoLnNxcnQoMS1hKSl9OwpuemE9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm4gYTt2YXIgYz1JbmZpbml0eSxkPS1JbmZpbml0eSxlPUluZmluaXR5LGY9LUluZmluaXR5LGc9TWF0aC5zaW4oYik7Yj1NYXRoLmNvcyhiKTthPVthLm1pblgsYS5taW5ZLGEubWluWCxhLm1heFksYS5tYXhYLGEubWF4WSxhLm1heFgsYS5taW5ZXTtmb3IobGV0IGs9MDtrPDQ7KytrKXt2YXIgaD1hW2sqMl07bGV0IG09YVtrKjIrMV0scD1iKmgtZyptO2g9ZypoK2IqbTtjPU1hdGgubWluKGMscCk7ZD1NYXRoLm1heChkLHApO2U9TWF0aC5taW4oZSxoKTtmPU1hdGgubWF4KGYsaCl9cmV0dXJuIF8uem8oYyxlLGQsZil9O18uU0U9ZnVuY3Rpb24oYSxiKXt0cnl7cmV0dXJuIF8uVG8oYSkhPT1fLlRvKGIpfWNhdGNoe3JldHVybiBhIT09Yn19O18uVEU9ZnVuY3Rpb24oKXtyZXR1cm4gXy5IcD9fLkhwPT09IktFWUJPQVJEIjp2b2lkIDB9OwpfLlVFPWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QucmVtb3ZlKGIpOl8ubm1hKGEsYikmJl8ubW1hKGEsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGEuY2xhc3NMaXN0P2EuY2xhc3NMaXN0Ol8ucHcoYSkubWF0Y2goL1xTKy9nKXx8W10sZnVuY3Rpb24oYyl7cmV0dXJuIGMhPWJ9KS5qb2luKCIgIikpfTtfLlZFPWZ1bmN0aW9uKGEsYil7YS5zdHlsZS5kaXNwbGF5PWI/IiI6Im5vbmUifTtfLldFPWZ1bmN0aW9uKGEpe2Euc3R5bGUuZGlzcGxheT0iIn07Xy5YRT1mdW5jdGlvbihhKXtfLnFuKGEsImNvbnRleHRtZW51IixiPT57Xy5nbihiKTtfLmhuKGIpfSl9O18uWUU9ZnVuY3Rpb24oYSxiKXthLnN0eWxlLm9wYWNpdHk9Yj09PTE/IiI6YCR7Yn1gfTtfLlpFPWZ1bmN0aW9uKGEpe3ZhciBiPV8uSkUoYSk7cmV0dXJuIGlzTmFOKGIpfHxhIT09YCR7Yn1gJiZhIT09YCR7Yn1weGA/MDpifTsKXy4kRT1mdW5jdGlvbihhKXtyZXR1cm4gYS5zY3JlZW5YPjB8fGEuc2NyZWVuWT4wfTtfLmFGPWZ1bmN0aW9uKGEsYil7YS5pbm5lckhUTUwhPT1fLnlqKGIpJiYoXy5pcShhKSxfLnpqKGEsYikpfTtfLm96YT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoYj0+e3ZhciBjPSgpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKCJnbXAtbG9hZCIsYyk7YS5yZW1vdmVFdmVudExpc3RlbmVyKCJnbXAtZXJyb3IiLGMpO2IoKX07YS5hZGRFdmVudExpc3RlbmVyKCJnbXAtbG9hZCIsYyk7YS5hZGRFdmVudExpc3RlbmVyKCJnbXAtZXJyb3IiLGMpfSl9O2JGPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/YS5yZXBsYWNlKHB6YSwiIik6YX07Cl8uY0Y9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wLGQ9MCxlPSExO2E9YkYoYSxiKS5zcGxpdChxemEpO2ZvcihiPTA7YjxhLmxlbmd0aDtiKyspe2xldCBmPWFbYl07Xy5DamEudGVzdChiRihmKSk/KGMrKyxkKyspOnJ6YS50ZXN0KGYpP2U9ITA6Xy5CamEudGVzdChiRihmKSk/ZCsrOnN6YS50ZXN0KGYpJiYoZT0hMCl9cmV0dXJuIGQ9PTA/ZT8xOjA6Yy9kPi40Py0xOjF9O18udXphPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO2lmKGEgaW5zdGFuY2VvZiBEYXRlKXt2YXIgYz1gJHthLmdldEZ1bGxZZWFyKCl9YDtiPXR6YVthLmdldE1vbnRoKCldfWVsc2V7YT1hLnNwbGl0KCItIik7aWYoYS5sZW5ndGg8MSlyZXR1cm4iIjtjPWFbMF07YS5sZW5ndGg+MSYmKGE9Xy5KRShhWzFdKS0xLGE+PTAmJmE8MTImJihiPXR6YVthXSkpfXJldHVybihiKyIgIitjKS50cmltKCl9Owp2emE9ZnVuY3Rpb24oYSxiLGMsZCl7ZD8oYS5Mdy5oYXMoYil8fGEuTHcuc2V0KGIse1N4OigpPT57YS5Mdy5kZWxldGUoYil9LGRNOmN9KSx7U3g6Y309YS5Mdy5nZXQoYiksYihhLnZhbHVlLGMpKTpiKGEudmFsdWUpfTtfLmRGPWZ1bmN0aW9uKHtjb250ZXh0OmEsc3Vic2NyaWJlOmJ9KXtyZXR1cm4oYyxkKT0+e3R5cGVvZiBkPT09Im9iamVjdCI/ZC5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe25ldyB3emEodGhpcyx7Y29udGV4dDphLE5pOmU9PntjLnNldC5jYWxsKHRoaXMsZSl9LHN1YnNjcmliZTpifSl9KTpjLmNvbnN0cnVjdG9yLmFkZEluaXRpYWxpemVyKGU9PntuZXcgd3phKGUse2NvbnRleHQ6YSxOaTpmPT57ZVtkXT1mfSxzdWJzY3JpYmU6Yn0pfSl9fTsKXy55emE9ZnVuY3Rpb24oe2NvbnRleHQ6YX0pe3JldHVybihiLGMpPT57dmFyIGQ9bmV3IFdlYWtNYXA7aWYodHlwZW9mIGM9PT0ib2JqZWN0IilyZXR1cm57Z2V0KCl7cmV0dXJuIGIuZ2V0LmNhbGwodGhpcyl9LHNldChmKXtkLmdldCh0aGlzKS5zZXRWYWx1ZShmKTtyZXR1cm4gYi5zZXQuY2FsbCh0aGlzLGYpfSxpbml0KGYpe2Quc2V0KHRoaXMsbmV3IHh6YSh0aGlzLHtjb250ZXh0OmEsaW5pdGlhbFZhbHVlOmZ9KSk7cmV0dXJuIGZ9fTtiLmNvbnN0cnVjdG9yLmFkZEluaXRpYWxpemVyKGY9PntkLnNldChmLG5ldyB4emEoZix7Y29udGV4dDphfSkpfSk7dmFyIGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2lmKGU9PT12b2lkIDApe2xldCBmPW5ldyBXZWFrTWFwO2U9e2dldCgpe3JldHVybiBmLmdldCh0aGlzKX0sc2V0KGcpe2QuZ2V0KHRoaXMpLnNldFZhbHVlKGcpO2Yuc2V0KHRoaXMsZyl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1lbHNle2xldCBmPQplLnNldDtlPXsuLi5lLHNldChnKXtkLmdldCh0aGlzKS5zZXRWYWx1ZShnKTtmPy5jYWxsKHRoaXMsZyl9fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYixjLGUpfX07Xy5lRj1mdW5jdGlvbihhLGIpe3JldHVybiBfLkF1KGEsMixiKX07ZkY9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9jc3MiKTtiLnNldEF0dHJpYnV0ZSgicmVsIiwic3R5bGVzaGVldCIpO2Iuc2V0QXR0cmlidXRlKCJocmVmIixhKTtkb2N1bWVudC5oZWFkLmluc2VydEJlZm9yZShiLGRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZCl9OwpfLmdGPWZ1bmN0aW9uKCl7aWYoIXp6YSl7enphPSEwO3ZhciBhPV8uVkEuc3Vic3RyaW5nKDAsNSk9PT0iaHR0cHMiPyJodHRwcyI6Imh0dHAiLGI9Xy5KbD8ucmgoKS5yaCgpP2AmbGFuZz0ke18uSmwucmgoKS5yaCgpLnNwbGl0KCItIilbMF19YDoiIjtmRihgJHthfTovLyR7Xy5FcWF9JHtifWApO2ZGKGAke2F9Oi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwfEdvb2dsZStTYW5zOjQwMCw1MDAsNzAwfEdvb2dsZStTYW5zK1RleHQ6NDAwLDUwMCw3MDAke2J9YCk7ZkYoYCR7YX06Ly8ke18uRnFhfSR7Yn1gKX19O18uQXphPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09InJvYWRtYXAifHxhPT09InNhdGVsbGl0ZSJ8fGE9PT0iaHlicmlkInx8YT09PSJ0ZXJyYWluIn07CkJ6YT1mdW5jdGlvbigpe2lmKF8uRnkpcmV0dXJuIF8uR3k7aWYoIV8uV3cpcmV0dXJuIF8uUm5hKCk7Xy5GeT0hMDtyZXR1cm4gXy5HeT1uZXcgUHJvbWlzZShhc3luYyBhPT57dmFyIGI9YXdhaXQgXy5RbmEoKTthKGIpO18uRnk9ITF9KX07Xy5oRj1mdW5jdGlvbigpe3JldHVybiBfLm5yPyJXZWJraXQiOl8ub2dhPyJNb3oiOm51bGx9O2lGPWZ1bmN0aW9uKGEsYil7YS5zdHlsZS5kaXNwbGF5PWI/IiI6Im5vbmUifTsKQ3phPWZ1bmN0aW9uKCl7dmFyIGE9Xy5KbC50aCgpLGIsYz17fTthJiYoYj1qRigia2V5IixhKSkmJihjW2JdPSEwKTt2YXIgZD1fLkpsLnhoKCk7ZCYmKGI9akYoImNsaWVudCIsZCkpJiYoY1tiXT0hMCk7YXx8ZHx8KGMuTm9BcGlLZXlzPSEwKTthPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTtmb3IoZD0wO2Q8YS5sZW5ndGg7KytkKXtsZXQgZT1uZXcgXy5XdihhW2RdLnNyYyk7aWYoZS5nZXRQYXRoKCkhPT0iL21hcHMvYXBpL2pzIiljb250aW51ZTtsZXQgZj0hMSxnPSExLGg9ZS5yaC5ScygpO2ZvcihsZXQgaz0wO2s8aC5sZW5ndGg7KytrKXtoW2tdPT09ImtleSImJihmPSEwKTtoW2tdPT09ImNsaWVudCImJihnPSEwKTtsZXQgbT1lLnJoLkptKGhba10pO2ZvcihsZXQgcD0wO3A8bS5sZW5ndGg7KytwKShiPWpGKGhba10sbVtwXSkpJiYoY1tiXT0hMCl9Znx8Z3x8KGMuTm9BcGlLZXlzPSEwKX1mb3IobGV0IGUgaW4gYyljLmhhc093blByb3BlcnR5KGUpJiYKd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLndhcm4mJihiPV8uZ21hKGUpLHdpbmRvdy5jb25zb2xlLndhcm4oIkdvb2dsZSBNYXBzIEphdmFTY3JpcHQgQVBJIHdhcm5pbmc6ICIrZSsiIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Vycm9yLW1lc3NhZ2VzIyIrYikpfTsKakY9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAiY2xpZW50IjpyZXR1cm4gYi5pbmRleE9mKCJpbnRlcm5hbC0iKT09PTB8fGIuaW5kZXhPZigiZ29vZ2xlLSIpPT09MD9udWxsOmIuaW5kZXhPZigiQUl6Iik9PT0wPyJDbGllbnRJZExvb2tzTGlrZUtleSI6Yi5tYXRjaCgvW2EtekEtWjAtOS1fXXsyN309Lyk/IkNsaWVudElkTG9va3NMaWtlQ3J5cHRvS2V5IjpiLmluZGV4T2YoImdtZS0iKSE9PTA/IkludmFsaWRDbGllbnRJZCI6bnVsbDtjYXNlICJrZXkiOnJldHVybiBiLmluZGV4T2YoImdtZS0iKT09PTA/IktleUxvb2tzTGlrZUNsaWVudElkIjpiLm1hdGNoKC9eW2EtekEtWjAtOS1fXXsyN309JC8pPyJLZXlMb29rc0xpa2VDcnlwdG9LZXkiOmIubWF0Y2goL15bMS05XVswLTldKiQvKT8iS2V5TG9va3NMaWtlUHJvamVjdE51bWJlciI6Yi5pbmRleE9mKCJBSXoiKSE9PTA/IkludmFsaWRLZXkiOm51bGw7Y2FzZSAiY2hhbm5lbCI6cmV0dXJuIGIubWF0Y2goL15bYS16QS1aMC05Ll8tXSokLyk/Cm51bGw6IkludmFsaWRDaGFubmVsIjtjYXNlICJzaWduYXR1cmUiOnJldHVybiJTaWduYXR1cmVOb3RSZXF1aXJlZCI7Y2FzZSAic2lnbmVkX2luIjpyZXR1cm4iU2lnbmVkSW5Ob3RTdXBwb3J0ZWQiO2Nhc2UgInNlbnNvciI6cmV0dXJuIlNlbnNvck5vdFJlcXVpcmVkIjtjYXNlICJ2IjppZihhPWIubWF0Y2goL14zXC4oXGQrKShcLlxkK1thLXpdPyk/JC8pKXtpZigoYj13aW5kb3cuZ29vZ2xlLm1hcHMudmVyc2lvbi5tYXRjaCgvM1wuKFxkKykoXC5cZCtbYS16XT8pPy8pKSYmTnVtYmVyKGFbMV0pPE51bWJlcihiWzFdKSlyZXR1cm4iUmV0aXJlZFZlcnNpb24ifWVsc2UgaWYoIWIubWF0Y2goL14zXC5leHAkLykmJiFiLm1hdGNoKC9eM1wuPyQvKSYmWyJhbHBoYSIsImJldGEiLCJ3ZWVrbHkiLCJxdWFydGVybHkiXS5pbmRleE9mKGIpPT09LTEpcmV0dXJuIkludmFsaWRWZXJzaW9uIjtyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX07CkR6YT1mdW5jdGlvbihhKXtpZihhPWEucWguZWlhKXJldHVybntuYW1lOmFbMF0sZWxlbWVudDphWzFdfX07RXphPWZ1bmN0aW9uKGEsYil7YS5yaC5wdXNoKGIpO2EucWh8fChhLnFoPSEwLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnthLnFoPSExO2EueUEoYS5yaCl9KSl9O0Z6YT1mdW5jdGlvbihhLGIpe2EuZWNyZChjPT57Yi50dShjKX0sMCl9O2tGPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPTA7YzxhLnNoLmxlbmd0aDtjKyspYS5zaFtjXShiKX07SHphPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoR3phKGJbY10uZWxlbWVudCxhLmVsZW1lbnQpKXJldHVybiEwO3JldHVybiExfTtHemE9ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4hMTtmb3IoO2EhPT1iJiZiLnBhcmVudE5vZGU7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBhPT09Yn07SXphPWZ1bmN0aW9uKGEsYil7YS5zaD9hLnNoKGIpOihiLmVpcnA9ITAsYS5xaD8ucHVzaChiKSl9OwpLemE9ZnVuY3Rpb24oYSxiLGMpe2lmKCEoYiBpbiBhLlBpfHwhYS5yaHx8SnphLmluZGV4T2YoYik+PTApKXt2YXIgZD0oZixnLGgpPT57YS5oYW5kbGVFdmVudChmLGcsaCl9O2EuUGlbYl09ZDt2YXIgZT1iPT09Im1vdXNlZW50ZXIiPyJtb3VzZW92ZXIiOmI9PT0ibW91c2VsZWF2ZSI/Im1vdXNlb3V0IjpiPT09InBvaW50ZXJlbnRlciI/InBvaW50ZXJvdmVyIjpiPT09InBvaW50ZXJsZWF2ZSI/InBvaW50ZXJvdXQiOmI7aWYoZSE9PWIpe2xldCBmPWEudGhbZV18fFtdO2YucHVzaChiKTthLnRoW2VdPWZ9YS5yaC5hZGRFdmVudExpc3RlbmVyKGUsZj0+Zz0+e2QoYixnLGYpfSxjKX19O016YT1mdW5jdGlvbihhKXtpZihMemEudGVzdChhKSlyZXR1cm4gYTthPV8uQkUoYSkudG9TdHJpbmcoKTtyZXR1cm4gYT09PV8uTXIudG9TdHJpbmcoKT8iYWJvdXQ6aW52YWxpZCN6anNsYXlvdXR6IjphfTsKT3phPWZ1bmN0aW9uKGEpe3ZhciBiPU56YS5leGVjKGEpO2lmKCFiKXJldHVybiIwO3VybD1hYm91dDppbnZhbGlkI3pqc2xheW91dHoiO3ZhciBjPWJbMl07cmV0dXJuIGJbMV0/Xy5CRShjKS50b1N0cmluZygpPT1fLk1yLnRvU3RyaW5nKCk/IjA7dXJsPWFib3V0OmludmFsaWQjempzbGF5b3V0eiI6YTpjLmxlbmd0aD09MD9hOiIwO3VybD1hYm91dDppbnZhbGlkI3pqc2xheW91dHoifTtTemE9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gbnVsbDtpZighUHphLnRlc3QoYSl8fFF6YShhLDApIT0wKXJldHVybiJ6anNsYXlvdXR6aW52YWxpZCI7Zm9yKHZhciBiPVJlZ0V4cCgiKFstX2EtekEtWjAtOV0rKVxcKCIsImciKSxjOyhjPWIuZXhlYyhhKSkhPT1udWxsOylpZihSemEoY1sxXSwhMSk9PT1udWxsKXJldHVybiJ6anNsYXlvdXR6aW52YWxpZCI7cmV0dXJuIGF9OwpRemE9ZnVuY3Rpb24oYSxiKXtpZihiPDApcmV0dXJuLTE7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspe2xldCBkPWEuY2hhckF0KGMpO2lmKGQ9PSIoIiliKys7ZWxzZSBpZihkPT0iKSIpaWYoYj4wKWItLTtlbHNlIHJldHVybi0xfXJldHVybiBifTsKVHphPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIG51bGw7Zm9yKHZhciBiPVJlZ0V4cCgiKFstX2EtekEtWjAtOV0rKVxcKCIsImciKSxjPVJlZ0V4cCgiWyBcdF0qKCg/OlwiKD86W15cXHgwMFwiXFxcXFxcblxcclxcZlxcdTAwODVcXHUwMDBiXFx1MjAyOFxcdTIwMjldKilcInwnKD86W15cXHgwMCdcXFxcXFxuXFxyXFxmXFx1MDA4NVxcdTAwMGJcXHUyMDI4XFx1MjAyOV0qKScpfCg/Ols/Ji86PV18WytcXC0uLCEjJV9hLXpBLVowLTlcdF0pKilbIFx0XSoiLCJnIiksZD0hMCxlPTAsZj0iIjtkOyl7Yi5sYXN0SW5kZXg9MDt2YXIgZz1iLmV4ZWMoYSk7ZD1nIT09bnVsbDt2YXIgaD1hO2xldCBtO2lmKGQpe2lmKGdbMV09PT12b2lkIDApcmV0dXJuInpqc2xheW91dHppbnZhbGlkIjttPVJ6YShnWzFdLCEwKTtpZihtPT09bnVsbClyZXR1cm4iempzbGF5b3V0emludmFsaWQiO2g9YS5zdWJzdHJpbmcoMCxiLmxhc3RJbmRleCk7YT1hLnN1YnN0cmluZyhiLmxhc3RJbmRleCl9ZT0KUXphKGgsZSk7aWYoZTwwfHwhUHphLnRlc3QoaCkpcmV0dXJuInpqc2xheW91dHppbnZhbGlkIjtmKz1oO2lmKGQmJm09PSJ1cmwiKXtjLmxhc3RJbmRleD0wO2c9Yy5leGVjKGEpO2lmKGc9PT1udWxsfHxnLmluZGV4IT0wKXJldHVybiJ6anNsYXlvdXR6aW52YWxpZCI7dmFyIGs9Z1sxXTtpZihrPT09dm9pZCAwKXJldHVybiJ6anNsYXlvdXR6aW52YWxpZCI7Zz1rLmxlbmd0aD09MD8wOmMubGFzdEluZGV4O2lmKGEuY2hhckF0KGcpIT0iKSIpcmV0dXJuInpqc2xheW91dHppbnZhbGlkIjtoPSIiO2subGVuZ3RoPjEmJihfLkViKGssJyInKSYmVnlhKGssJyInKT8oaz1rLnN1YnN0cmluZygxLGsubGVuZ3RoLTEpLGg9JyInKTpfLkViKGssIiciKSYmVnlhKGssIiciKSYmKGs9ay5zdWJzdHJpbmcoMSxrLmxlbmd0aC0xKSxoPSInIikpO2s9TXphKGspO2lmKGs9PSJhYm91dDppbnZhbGlkI3pqc2xheW91dHoiKXJldHVybiJ6anNsYXlvdXR6aW52YWxpZCI7Zis9aCtrK2g7YT1hLnN1YnN0cmluZyhnKX19cmV0dXJuIGUhPQowPyJ6anNsYXlvdXR6aW52YWxpZCI6Zn07UnphPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO2E9VXphLmV4ZWMoYSk7aWYoYSE9PW51bGwpe2lmKGFbMV09PT12b2lkIDApcmV0dXJuIG51bGw7Yz1hWzFdfXJldHVybiBiJiZjPT0idXJsInx8YyBpbiBWemE/YzpudWxsfTtsRj1mdW5jdGlvbigpe307bUY9ZnVuY3Rpb24oYSxiLGMpe2E9YS5xaFtiXTtyZXR1cm4gYSE9bnVsbD9hOmN9O1d6YT1mdW5jdGlvbihhKXthPWEucWg7YS5wYXJhbXx8KGEucGFyYW09W10pO3JldHVybiBhLnBhcmFtfTtYemE9ZnVuY3Rpb24oYSl7dmFyIGI9e307V3phKGEpLnB1c2goYik7cmV0dXJuIGJ9O25GPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFd6YShhKVtiXX07b0Y9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucWgucGFyYW0/YS5xaC5wYXJhbS5sZW5ndGg6MH07Xy5wRj1mdW5jdGlvbihhKXt0aGlzLnFoPWF8fHt9fTtyRj1mdW5jdGlvbihhKXtxRi5xaC5jc3MzX3ByZWZpeD1hfTsKc0Y9ZnVuY3Rpb24oKXt0aGlzLnFoPXt9O3RoaXMucmg9bnVsbDt0aGlzLmVCPSsrWXphfTt0Rj1mdW5jdGlvbigpe3FGfHwocUY9bmV3IF8ucEYsXy5IYigpJiYhXy5SYigiRWRnZSIpP3JGKCItd2Via2l0LSIpOl8uZGMoKT9yRigiLW1vei0iKTpfLlhiKCk/ckYoIi1tcy0iKTpfLlViKCkmJnJGKCItby0iKSxxRi5xaC5pc19ydGw9ITEscUYua2ooImVuIikpO3JldHVybiBxRn07WnphPWZ1bmN0aW9uKCl7cmV0dXJuIHRGKCkucWh9O3ZGPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYi5jYWxsKGMsYS5xaCx1Ril9O3dGPWZ1bmN0aW9uKGEsYixjKXtiLnJoIT1udWxsJiYoYS5yaD1iLnJoKTthPWEucWg7Yj1iLnFoO2lmKGM9Y3x8bnVsbCl7YS52az1iLnZrO2EuV289Yi5Xbztmb3IodmFyIGQ9MDtkPGMubGVuZ3RoOysrZClhW2NbZF1dPWJbY1tkXV19ZWxzZSBmb3IoZCBpbiBiKWFbZF09YltkXX07CiR6YT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4geEYoKTtmb3IoYT1hLnBhcmVudE5vZGU7Xy5aYShhKSYmYS5ub2RlVHlwZT09MTthPWEucGFyZW50Tm9kZSl7bGV0IGI9YS5nZXRBdHRyaWJ1dGUoImRpciIpO2lmKGImJihiPWIudG9Mb3dlckNhc2UoKSxiPT0ibHRyInx8Yj09InJ0bCIpKXJldHVybiBifXJldHVybiB4RigpfTt4Rj1mdW5jdGlvbigpe3JldHVybiB0RigpLk1BKCk/InJ0bCI6Imx0ciJ9O2FBYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRLZXkoKX07CnlGPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5fX2lubmVyaHRtbDtjfHwoYz1hLl9faW5uZXJodG1sPVthLmlubmVySFRNTCxhLmlubmVySFRNTF0pO2lmKGNbMF0hPWJ8fGNbMV0hPWEuaW5uZXJIVE1MKV8uWmEoYSkmJl8uWmEoYSkmJl8uWmEoYSkmJmEubm9kZVR5cGU9PT0xJiYoIWEubmFtZXNwYWNlVVJJfHxhLm5hbWVzcGFjZVVSST09PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIikmJmEudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IlNDUklQVCIudG9TdHJpbmcoKT9hLnRleHRDb250ZW50PV8uREUoSEUoYikpOmEuaW5uZXJIVE1MPV8ueWooXy5EbChiKSksY1swXT1iLGNbMV09YS5pbm5lckhUTUx9O3pGPWZ1bmN0aW9uKGEpe2lmKGE9YS5nZXRBdHRyaWJ1dGUoImpzaW5zdGFuY2UiKSl7bGV0IGI9YS5pbmRleE9mKCI7Iik7cmV0dXJuKGI+PTA/YS5zdWJzdHIoMCxiKTphKS5zcGxpdCgiLCIpfXJldHVybltdfTsKYkFhPWZ1bmN0aW9uKGEpe2lmKGE9YS5nZXRBdHRyaWJ1dGUoImpzaW5zdGFuY2UiKSl7bGV0IGI9YS5pbmRleE9mKCI7Iik7cmV0dXJuIGI+PTA/YS5zdWJzdHIoYisxKTpudWxsfXJldHVybiBudWxsfTtBRj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVtjXXx8IjAiLGU9YltjXXx8IjAiO2Q9cGFyc2VJbnQoZC5jaGFyQXQoMCk9PSIqIj9kLnN1YnN0cmluZygxKTpkLDEwKTtlPXBhcnNlSW50KGUuY2hhckF0KDApPT0iKiI/ZS5zdWJzdHJpbmcoMSk6ZSwxMCk7cmV0dXJuIGQ9PWU/YS5sZW5ndGg+Y3x8Yi5sZW5ndGg+Yz9BRihhLGIsYysxKTohMTpkPmV9O0JGPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtiW2NdPWU+PWQtMT8iKiIrZTpTdHJpbmcoZSk7Yj1iLmpvaW4oIiwiKTtmJiYoYis9IjsiK2YpO2Euc2V0QXR0cmlidXRlKCJqc2luc3RhbmNlIixiKX07CmNBYT1mdW5jdGlvbihhKXtpZighYS5oYXNBdHRyaWJ1dGUoImpzaW5zdGFuY2UiKSlyZXR1cm4gYTtmb3IodmFyIGI9ekYoYSk7Oyl7bGV0IGM9YS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoIWMpcmV0dXJuIGE7bGV0IGQ9ekYoYyk7aWYoIUFGKGQsYiwwKSlyZXR1cm4gYTthPWM7Yj1kfX07Q0Y9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4iIjtpZighZEFhLnRlc3QoYSkpcmV0dXJuIGE7YS5pbmRleE9mKCImIikhPS0xJiYoYT1hLnJlcGxhY2UoZUFhLCImYW1wOyIpKTthLmluZGV4T2YoIjwiKSE9LTEmJihhPWEucmVwbGFjZShmQWEsIiZsdDsiKSk7YS5pbmRleE9mKCI+IikhPS0xJiYoYT1hLnJlcGxhY2UoZ0FhLCImZ3Q7IikpO2EuaW5kZXhPZignIicpIT0tMSYmKGE9YS5yZXBsYWNlKGhBYSwiJnF1b3Q7IikpO3JldHVybiBhfTsKaUFhPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIiI7YS5pbmRleE9mKCciJykhPS0xJiYoYT1hLnJlcGxhY2UoaEFhLCImcXVvdDsiKSk7cmV0dXJuIGF9O21BYT1mdW5jdGlvbihhKXt2YXIgYj0iIixjO2ZvcihsZXQgZD0wO2M9YVtkXTsrK2Qpc3dpdGNoKGMpe2Nhc2UgIjwiOmNhc2UgIiYiOmxldCBlPSgiPCI9PWM/akFhOmtBYSkuZXhlYyhhLnN1YnN0cihkKSk7aWYoZSYmZVswXSl7Yis9YS5zdWJzdHIoZCxlWzBdLmxlbmd0aCk7ZCs9ZVswXS5sZW5ndGgtMTtjb250aW51ZX1jYXNlICI+IjpjYXNlICciJzpiKz1sQWFbY107YnJlYWs7ZGVmYXVsdDpiKz1jfURGPT1udWxsJiYoREY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpO18uemooREYsXy5EbChiKSk7cmV0dXJuIERGLmlubmVySFRNTH07Cm9BYT1mdW5jdGlvbihhLGIsYyxkKXtpZihhWzFdPT1udWxsKXt2YXIgZT1hWzFdPWFbMF0ubWF0Y2goXy5Eaik7aWYoZVs2XSl7bGV0IGY9ZVs2XS5zcGxpdCgiJiIpLGc9e307Zm9yKGxldCBoPTAsaz1mLmxlbmd0aDtoPGs7KytoKXtsZXQgbT1mW2hdLnNwbGl0KCI9Iik7aWYobS5sZW5ndGg9PTIpe2xldCBwPW1bMV0ucmVwbGFjZSgvLC9naSwiJTJDIikucmVwbGFjZSgvWytdL2csIiUyMCIpLnJlcGxhY2UoLzovZywiJTNBIik7dHJ5e2dbZGVjb2RlVVJJQ29tcG9uZW50KG1bMF0pXT1kZWNvZGVVUklDb21wb25lbnQocCl9Y2F0Y2gocSl7fX19ZVs2XT1nfWFbMF09bnVsbH1hPWFbMV07YiBpbiBuQWEmJihlPW5BYVtiXSxiPT0xMz9jJiYoYj1hW2VdLGQhPW51bGw/KGJ8fChiPWFbZV09e30pLGJbY109ZCk6YiYmZGVsZXRlIGJbY10pOmFbZV09ZCl9OwpwQWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b0xvd2VyQ2FzZSgpPT0iaHJlZiI/IiMiOmEudG9Mb3dlckNhc2UoKT09ImltZyImJmIudG9Mb3dlckNhc2UoKT09InNyYyI/Ii9pbWFnZXMvY2xlYXJkb3QuZ2lmIjoiIn07cUFhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX07RUY9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSBudWxsOnJldHVybiBiO2Nhc2UgMjpyZXR1cm4gTXphKGIpO2Nhc2UgMTpyZXR1cm4gYT1fLkJFKGIpLnRvU3RyaW5nKCksYT09PV8uTXIudG9TdHJpbmcoKT8iYWJvdXQ6aW52YWxpZCN6anNsYXlvdXR6IjphO2Nhc2UgODpyZXR1cm4gT3phKGIpO2RlZmF1bHQ6cmV0dXJuInNhbml0aXphdGlvbl9lcnJvcl8iK2F9fTtGRj1mdW5jdGlvbihhKXthLnNoPWEucWg7YS5xaD1hLnNoLnNsaWNlKDAsYS5yaCk7YS5yaD0tMX07CkdGPWZ1bmN0aW9uKGEpe3ZhciBiPShhPWEucWgpP2EubGVuZ3RoOjA7Zm9yKGxldCBjPTA7YzxiO2MrPTcpaWYoYVtjKzBdPT0wJiZhW2MrMV09PSJkaXIiKXJldHVybiBhW2MrNV07cmV0dXJuIG51bGx9O0hGPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGs9YS5yaDtpZihrIT0tMSl7aWYoYS5xaFtrKzBdPT1iJiZhLnFoW2srMV09PWMmJmEucWhbaysyXT09ZCYmYS5xaFtrKzNdPT1lJiZhLnFoW2srNF09PWYmJmEucWhbays1XT09ZyYmYS5xaFtrKzZdPT1oKXthLnJoKz03O3JldHVybn1GRihhKX1lbHNlIGEucWh8fChhLnFoPVtdKTthLnFoLnB1c2goYik7YS5xaC5wdXNoKGMpO2EucWgucHVzaChkKTthLnFoLnB1c2goZSk7YS5xaC5wdXNoKGYpO2EucWgucHVzaChnKTthLnFoLnB1c2goaCl9O0lGPWZ1bmN0aW9uKGEsYil7YS50aHw9Yn07CnJBYT1mdW5jdGlvbihhKXtyZXR1cm4gYS50aCYxMDI0PyhhPUdGKGEpLGE9PSJydGwiPyJcdTIwMmNcdTIwMGUiOmE9PSJsdHIiPyJcdTIwMmNcdTIwMGYiOiIiKTphLnhoPT09ITE/IiI6IjwvIithLnpoKyI+In07SkY9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5yaCE9LTE/YS5yaDphLnFoP2EucWgubGVuZ3RoOjA7Zm9yKGxldCBmPTA7ZjxlO2YrPTcpaWYoYS5xaFtmKzBdPT1iJiZhLnFoW2YrMV09PWMmJmEucWhbZisyXT09ZClyZXR1cm4hMDtpZihhLndoKWZvcihlPTA7ZTxhLndoLmxlbmd0aDtlKz03KWlmKGEud2hbZSswXT09YiYmYS53aFtlKzFdPT1jJiZhLndoW2UrMl09PWQpcmV0dXJuITA7cmV0dXJuITF9O0tGPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtzd2l0Y2goYil7Y2FzZSA1OmM9InN0eWxlIjthLnJoIT0tMSYmZD09ImRpc3BsYXkiJiZGRihhKTticmVhaztjYXNlIDc6Yz0iY2xhc3MifUpGKGEsYixjLGQpfHxIRihhLGIsYyxkLG51bGwsbnVsbCxlLCEhZil9OwpMRj1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoYj09Nil7aWYoZClmb3IoZSYmKGQ9RUUoZCkpLGI9ZC5zcGxpdCgiICIpLGM9Yi5sZW5ndGgsZD0wO2Q8YztkKyspYltkXSE9IiImJktGKGEsNywiY2xhc3MiLGJbZF0sIiIsZil9ZWxzZSBiIT0xOCYmYiE9MjAmJmIhPTIyJiZKRihhLGIsYyl8fEhGKGEsYixjLG51bGwsbnVsbCxlfHxudWxsLGQsISFmKX07c0FhPWZ1bmN0aW9uKGEsYixjLGQsZSl7c3dpdGNoKGIpe2Nhc2UgMjpjYXNlIDE6dmFyIGY9ODticmVhaztjYXNlIDg6Zj0wO2Q9T3phKGQpO2JyZWFrO2RlZmF1bHQ6Zj0wLGQ9InNhbml0aXphdGlvbl9lcnJvcl8iK2J9SkYoYSxmLGMpfHxIRihhLGYsYyxudWxsLGIsbnVsbCxkLCEhZSl9O3RBYT1mdW5jdGlvbihhLGIpe2EueGg9PT1udWxsP2EueGg9YjphLnhoJiYhYiYmR0YoYSkhPW51bGwmJihhLnpoPSJzcGFuIil9Owp1QWE9ZnVuY3Rpb24oYSxiLGMpe2lmKGNbMV0pe3ZhciBkPWNbMV07aWYoZFs2XSl7dmFyIGU9ZFs2XSxmPVtdO2ZvcihsZXQgZyBpbiBlKXtsZXQgaD1lW2ddO2ghPW51bGwmJmYucHVzaChlbmNvZGVVUklDb21wb25lbnQoZykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChoKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyU3Qy9naSwifCIpKX1kWzZdPWYuam9pbigiJiIpfWRbMV09PSJodHRwIiYmZFs0XT09IjgwIiYmKGRbNF09bnVsbCk7ZFsxXT09Imh0dHBzIiYmZFs0XT09IjQ0MyImJihkWzRdPW51bGwpO2U9ZFszXTsvOlswLTldKyQvLnRlc3QoZSkmJihmPWUubGFzdEluZGV4T2YoIjoiKSxkWzNdPWUuc3Vic3RyKDAsZiksZFs0XT1lLnN1YnN0cihmKzEpKTtlPWRbNV07ZFszXSYmZSYmIWUuc3RhcnRzV2l0aCgiLyIpJiYoZFs1XT0iLyIrZSk7ZD1fLkZFKGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSwKZFs2XSxkWzddKX1lbHNlIGQ9Y1swXTsoYz1FRihjWzJdLGQpKXx8KGM9cEFhKGEuemgsYikpO3JldHVybiBjfTsKTUY9ZnVuY3Rpb24oYSxiLGMpe2lmKGEudGgmMTAyNClyZXR1cm4gYT1HRihhKSxhPT0icnRsIj8iXHUyMDJiIjphPT0ibHRyIj8iXHUyMDJhIjoiIjtpZihhLnhoPT09ITEpcmV0dXJuIiI7dmFyIGQ9IjwiK2EuemgsZT1udWxsLGY9IiIsZz1udWxsLGg9bnVsbCxrPSIiLG09IiIscD0iIixxPShhLnRoJjgzMikhPTA/IiI6bnVsbCx1PSIiLHg9YS5xaCx6PXg/eC5sZW5ndGg6MDtmb3IobGV0IE89MDtPPHo7Tys9Nyl7bGV0IEE9eFtPKzBdLFE9eFtPKzFdLGNhPXhbTysyXSxpYT14W08rNV07dmFyIEI9eFtPKzNdO2xldCBHYT14W08rNl07aWYoaWEhPW51bGwmJnEhPW51bGwmJiFHYSlzd2l0Y2goQSl7Y2FzZSAtMTpxKz1pYSsiLCI7YnJlYWs7Y2FzZSA3OmNhc2UgNTpxKz1BKyIuIitjYSsiLCI7YnJlYWs7Y2FzZSAxMzpxKz1BKyIuIitRKyIuIitjYSsiLCI7YnJlYWs7Y2FzZSAxODpjYXNlIDIwOmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpxKz1BKyIuIitRKyIsIn1zd2l0Y2goQSl7Y2FzZSA3OmlhPT09Cm51bGw/aCE9bnVsbCYmXy55YyhoLGNhKTppYSE9bnVsbCYmKGg9PW51bGw/aD1bY2FdOl8udmMoaCxjYSl8fGgucHVzaChjYSkpO2JyZWFrO2Nhc2UgNDp2YXIgSz0hMTtnPUI7aWE9PW51bGw/Zj1udWxsOmY9PSIiP2Y9aWE6aWEuY2hhckF0KGlhLmxlbmd0aC0xKT09IjsiP2Y9aWErZjpmPWlhKyI7IitmO2JyZWFrO2Nhc2UgNTpLPSExO2lhIT1udWxsJiZmIT09bnVsbCYmKGYhPSIiJiZmW2YubGVuZ3RoLTFdIT0iOyImJihmKz0iOyIpLGYrPWNhKyI6IitpYSk7YnJlYWs7Y2FzZSA4OmU9PW51bGwmJihlPXt9KTtpYT09PW51bGw/ZVtRXT1udWxsOmlhPyh4W08rNF0mJihpYT1FRShpYSkpLGVbUV09W2lhLG51bGwsQl0pOmVbUV09WyIiLG51bGwsQl07YnJlYWs7Y2FzZSAxODppYSE9bnVsbCYmKFE9PSJqc2wiPyhLPSEwLGsrPWlhKTpRPT0ianN2cyImJihtKz1pYSkpO2JyZWFrO2Nhc2UgMjA6aWEhPW51bGwmJihwJiYocCs9IiwiKSxwKz1pYSk7YnJlYWs7Y2FzZSAyMjppYSE9bnVsbCYmCih1JiYodSs9IjsiKSx1Kz1pYSk7YnJlYWs7Y2FzZSAwOmlhIT1udWxsJiYoZCs9IiAiK1ErIj0iLGlhPUVGKEIsaWEpLGQ9eFtPKzRdP2QrKCciJytpQWEoaWEpKyciJyk6ZCsoJyInK0NGKGlhKSsnIicpKTticmVhaztjYXNlIDE0OmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDEwOmNhc2UgOTpjYXNlIDEzOmU9PW51bGwmJihlPXt9KSxCPWVbUV0sQiE9PW51bGwmJihCfHwoQj1lW1FdPVsiIixudWxsLG51bGxdKSxvQWEoQixBLGNhLGlhKSl9fWlmKGUhPW51bGwpZm9yKGxldCBPIGluIGUpeD11QWEoYSxPLGVbT10pLGQrPSIgIitPKyc9IicrQ0YoeCkrJyInO3UmJihkKz0nIGpzYWN0aW9uPSInK2lBYSh1KSsnIicpO3AmJihkKz0nIGpzaW5zdGFuY2U9IicrQ0YocCkrJyInKTtoIT1udWxsJiZoLmxlbmd0aD4wJiYoZCs9JyBjbGFzcz0iJytDRihoLmpvaW4oIiAiKSkrJyInKTtrJiYhSyYmKGQrPScganNsPSInK0NGKGspKyciJyk7aWYoZiE9bnVsbCl7Zm9yKDtmIT0iIiYmZltmLmxlbmd0aC0KMV09PSI7IjspZj1mLnN1YnN0cigwLGYubGVuZ3RoLTEpO2YhPSIiJiYoZj1FRihnLGYpLGQrPScgc3R5bGU9IicrQ0YoZikrJyInKX1rJiZLJiYoZCs9JyBqc2w9IicrQ0YoaykrJyInKTttJiYoZCs9JyBqc3ZzPSInK0NGKG0pKyciJyk7cSE9bnVsbCYmcS5pbmRleE9mKCIuIikhPS0xJiYoZCs9JyBqc2FuPSInK3Euc3Vic3RyKDAscS5sZW5ndGgtMSkrJyInKTtjJiYoZCs9JyBqc3RpZD0iJythLkJoKyciJyk7cmV0dXJuIGQrKGI/Ii8+IjoiPiIpfTtORj1mdW5jdGlvbihhKXt0aGlzLnFoPWF8fHt9fTtPRj1mdW5jdGlvbihhKXt0aGlzLnFoPWF8fHt9fTt2QWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGwmJnR5cGVvZiBhPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUhPSJ1bmRlZmluZWQiJiYhYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgibGVuZ3RoIil9Owp3QWE9ZnVuY3Rpb24oYSxiLGMpe3N3aXRjaChfLmNGKGEsYikpe2Nhc2UgMTpyZXR1cm4hMTtjYXNlIC0xOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIGN9fTtQRj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/IV8uRWphLnRlc3QoYkYoYSxiKSk6Xy5GamEudGVzdChiRihhLGIpKX07ClFGPWZ1bmN0aW9uKGEpe2lmKGEucWgub3JpZ2luYWxfdmFsdWUhPW51bGwpe3ZhciBiPW5ldyBfLld2KG1GKGEsIm9yaWdpbmFsX3ZhbHVlIiwiIikpOyJvcmlnaW5hbF92YWx1ZSJpbiBhLnFoJiZkZWxldGUgYS5xaC5vcmlnaW5hbF92YWx1ZTtiLnNoJiYoYS5xaC5wcm90b2NvbD1iLnNoKTtiLnFoJiYoYS5xaC5ob3N0PWIucWgpO2IudGghPW51bGw/YS5xaC5wb3J0PWIudGg6Yi5zaCYmKGIuc2g9PSJodHRwIj9hLnFoLnBvcnQ9ODA6Yi5zaD09Imh0dHBzIiYmKGEucWgucG9ydD00NDMpKTtiLnpoJiZhLnNldFBhdGgoYi5nZXRQYXRoKCkpO2IueGgmJihhLnFoLmhhc2g9Yi54aCk7dmFyIGM9Yi5yaC5ScygpO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7KytkKXtsZXQgZT1jW2RdLGY9bmV3IE5GKFh6YShhKSk7Zi5xaC5rZXk9ZTtmLnNldFZhbHVlKGIucmguSm0oZSlbMF0pfX19Owp4QWE9ZnVuY3Rpb24oLi4uYSl7Zm9yKGE9MDthPGFyZ3VtZW50cy5sZW5ndGg7KythKWlmKCFhcmd1bWVudHNbYV0pcmV0dXJuITE7cmV0dXJuITB9O18uUkY9ZnVuY3Rpb24oYSxiKXt5QWEudGVzdChiKXx8KGI9Yi5pbmRleE9mKCJsZWZ0Iik+PTA/Yi5yZXBsYWNlKHpBYSwicmlnaHQiKTpiLnJlcGxhY2UoQUFhLCJsZWZ0IiksXy52YyhCQWEsYSkmJihhPWIuc3BsaXQoQ0FhKSxhLmxlbmd0aD49NCYmKGI9W2FbMF0sYVszXSxhWzJdLGFbMV1dLmpvaW4oIiAiKSkpKTtyZXR1cm4gYn07REFhPWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goXy5jRihhLGIpKXtjYXNlIDE6cmV0dXJuImx0ciI7Y2FzZSAtMTpyZXR1cm4icnRsIjtkZWZhdWx0OnJldHVybiBjfX07RUFhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUEYoYSxiLGM9PSJydGwiKT8icnRsIjoibHRyIn07Xy5TRj1mdW5jdGlvbihhLGIpe3JldHVybiBhPT1udWxsP251bGw6bmV3IEZBYShhLGIpfTsKR0FhPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/IiciK2EucmVwbGFjZSgvJy9nLCJcXCciKSsiJyI6U3RyaW5nKGEpfTtfLlRGPWZ1bmN0aW9uKGEsYiwuLi5jKXtmb3IobGV0IGQgb2YgYyl7aWYoIWEpcmV0dXJuIGI7YT1kKGEpfXJldHVybiBhPT1udWxsfHxhPT12b2lkIDA/YjphfTtfLlVGPWZ1bmN0aW9uKGEsLi4uYil7Zm9yKGxldCBjIG9mIGIpe2lmKCFhKXJldHVybiAwO2E9YyhhKX1yZXR1cm4gYT09bnVsbHx8YT09dm9pZCAwPzA6dkFhKGEpP2EubGVuZ3RoOi0xfTtIQWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT49Yn07SUFhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+Yn07SkFhPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5jYWxsKG51bGwpIT09dm9pZCAwfWNhdGNoKGIpe3JldHVybiExfX07Xy5WRj1mdW5jdGlvbihhLC4uLmIpe2ZvcihsZXQgYyBvZiBiKXtpZighYSlyZXR1cm4hMTthPWMoYSl9cmV0dXJuIGF9OwpLQWE9ZnVuY3Rpb24oYSxiKXthPW5ldyBPRihhKTtRRihhKTtmb3IobGV0IGM9MDtjPG9GKGEpOysrYylpZigobmV3IE5GKG5GKGEsYykpKS5nZXRLZXkoKT09YilyZXR1cm4hMDtyZXR1cm4hMX07TEFhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8PWJ9O01BYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPGJ9O05BYT1mdW5jdGlvbihhLGIsYyl7Yz1+fihjfHwwKTtjPT0wJiYoYz0xKTt2YXIgZD1bXTtpZihjPjApZm9yKGE9fn5hO2E8YjthKz1jKWQucHVzaChhKTtlbHNlIGZvcihhPX5+YTthPmI7YSs9YylkLnB1c2goYSk7cmV0dXJuIGR9O09BYT1mdW5jdGlvbihhKXt0cnl7bGV0IGI9YS5jYWxsKG51bGwpO3JldHVybiB2QWEoYik/Yi5sZW5ndGg6Yj09PXZvaWQgMD8wOjF9Y2F0Y2goYil7cmV0dXJuIDB9fTsKUEFhPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe2xldCBiPWEub3JkaW5hbDtiPT1udWxsJiYoYj1hLkRCKTtpZihiIT1udWxsJiZ0eXBlb2YgYj09ImZ1bmN0aW9uIilyZXR1cm4gU3RyaW5nKGIuY2FsbChhKSl9cmV0dXJuIiIrYX07UUFhPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIDA7dmFyIGI9YS5vcmRpbmFsO2I9PW51bGwmJihiPWEuREIpO3JldHVybiBiIT1udWxsJiZ0eXBlb2YgYj09ImZ1bmN0aW9uIj9iLmNhbGwoYSk6YT49MD9NYXRoLmZsb29yKGEpOk1hdGguY2VpbChhKX07ClJBYT1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7dmFyIGM9bmV3IE9GO2MucWgub3JpZ2luYWxfdmFsdWU9YX1lbHNlIGM9bmV3IE9GKGEpO1FGKGMpO2lmKGIpZm9yKGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGQ9YlthXTtsZXQgZT1kLmtleSE9bnVsbD9kLmtleTpkLmtleSxmPWQudmFsdWUhPW51bGw/ZC52YWx1ZTpkLnZhbHVlO2Q9ITE7Zm9yKGxldCBnPTA7ZzxvRihjKTsrK2cpaWYoKG5ldyBORihuRihjLGcpKSkuZ2V0S2V5KCk9PWUpeyhuZXcgTkYobkYoYyxnKSkpLnNldFZhbHVlKGYpO2Q9ITA7YnJlYWt9ZHx8KGQ9bmV3IE5GKFh6YShjKSksZC5xaC5rZXk9ZSxkLnNldFZhbHVlKGYpKX1yZXR1cm4gYy5xaH07U0FhPWZ1bmN0aW9uKGEsYil7YT1uZXcgT0YoYSk7UUYoYSk7Zm9yKGxldCBjPTA7YzxvRihhKTsrK2Mpe2xldCBkPW5ldyBORihuRihhLGMpKTtpZihkLmdldEtleSgpPT1iKXJldHVybiBkLmdldFZhbHVlKCl9cmV0dXJuIiJ9OwpUQWE9ZnVuY3Rpb24oYSl7YT1uZXcgT0YoYSk7UUYoYSk7dmFyIGI9YS5xaC5wcm90b2NvbCE9bnVsbD9tRihhLCJwcm90b2NvbCIsIiIpOm51bGwsYz1hLnFoLmhvc3QhPW51bGw/bUYoYSwiaG9zdCIsIiIpOm51bGwsZD1hLnFoLnBvcnQhPW51bGwmJihhLnFoLnByb3RvY29sPT1udWxsfHxtRihhLCJwcm90b2NvbCIsIiIpPT0iaHR0cCImJittRihhLCJwb3J0IiwwKSE9ODB8fG1GKGEsInByb3RvY29sIiwiIik9PSJodHRwcyImJittRihhLCJwb3J0IiwwKSE9NDQzKT8rbUYoYSwicG9ydCIsMCk6bnVsbCxlPWEucWgucGF0aCE9bnVsbD9hLmdldFBhdGgoKTpudWxsLGY9YS5xaC5oYXNoIT1udWxsP21GKGEsImhhc2giLCIiKTpudWxsLGc9bmV3IF8uV3YobnVsbCk7YiYmXy5YdihnLGIpO2MmJihnLnFoPWMpO2QmJl8uWnYoZyxkKTtlJiZnLnNldFBhdGgoZSk7ZiYmXy5hdyhnLGYpO2ZvcihiPTA7YjxvRihhKTsrK2IpYz1uZXcgTkYobkYoYSxiKSksZy5odihjLmdldEtleSgpLGMuZ2V0VmFsdWUoKSk7CnJldHVybiBnLnRvU3RyaW5nKCl9O1dGPWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goVUFhKTtiPT1udWxsJiYoYj1bXSk7aWYoYi5qb2luKCIiKS5sZW5ndGghPWEubGVuZ3RoKXtsZXQgYz0wO2ZvcihsZXQgZD0wO2Q8Yi5sZW5ndGgmJmEuc3Vic3RyKGMsYltkXS5sZW5ndGgpPT1iW2RdO2QrKyljKz1iW2RdLmxlbmd0aDt0aHJvdyBFcnJvcigiUGFyc2luZyBlcnJvciBhdCBwb3NpdGlvbiAiK2MrIiBvZiAiK2EpO31yZXR1cm4gYn07CllGPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9ITEsZT1bXTtiPGM7YisrKXt2YXIgZj1hW2JdO2lmKGY9PSJ7IilkPSEwLGUucHVzaCgifSIpO2Vsc2UgaWYoZj09Ii4ifHxmPT0ibmV3Inx8Zj09IiwiJiZlW2UubGVuZ3RoLTFdPT0ifSIpZD0hMDtlbHNlIGlmKFhGLnRlc3QoZikpYVtiXT0iICI7ZWxzZXtpZighZCYmVkFhLnRlc3QoZikmJiFXQWEudGVzdChmKSl7aWYoYVtiXT0odUZbZl0hPW51bGw/ImciOiJ2IikrIi4iK2YsZj09ImhhcyJ8fGY9PSJzaXplIil7ZD1hO2ZvcihiKz0xO2RbYl0hPSIoIiYmYjxkLmxlbmd0aDspYisrO2RbYl09IihmdW5jdGlvbigpe3JldHVybiAiO2lmKGI9PWQubGVuZ3RoKXRocm93IEVycm9yKCciKCIgbWlzc2luZyBmb3IgaGFzKCkgb3Igc2l6ZSgpLicpO2IrKztmPWI7Zm9yKHZhciBnPTAsaD0hMDtiPGQubGVuZ3RoOyl7bGV0IGs9ZFtiXTtpZihrPT0iKCIpZysrO2Vsc2UgaWYoaz09IikiKXtpZihnPT0wKWJyZWFrO2ctLX1lbHNlIGsudHJpbSgpIT0KIiImJmsuY2hhckF0KDApIT0nIicmJmsuY2hhckF0KDApIT0iJyImJmshPSIrIiYmKGg9ITEpO2IrK31pZihiPT1kLmxlbmd0aCl0aHJvdyBFcnJvcignbWF0Y2hpbmcgIikiIG1pc3NpbmcgZm9yIGhhcygpIG9yIHNpemUoKS4nKTtkW2JdPSJ9KSI7Zz1kLnNsaWNlKGYsYikuam9pbigiIikudHJpbSgpO2lmKGgpZm9yKGg9IiIrY3phKHdpbmRvdyxIRShnKSksaD1XRihoKSxZRihoLDAsaC5sZW5ndGgpLGRbZl09aC5qb2luKCIiKSxmKz0xO2Y8YjtmKyspZFtmXT0iIjtlbHNlIFlGKGQsZixiKX19ZWxzZSBpZihmPT0iKCIpZS5wdXNoKCIpIik7ZWxzZSBpZihmPT0iWyIpZS5wdXNoKCJdIik7ZWxzZSBpZihmPT0iKSJ8fGY9PSJdInx8Zj09In0iKXtpZihlLmxlbmd0aD09MCl0aHJvdyBFcnJvcignVW5leHBlY3RlZCAiJytmKyciLicpO2Q9ZS5wb3AoKTtpZihmIT1kKXRocm93IEVycm9yKCdFeHBlY3RlZCAiJytkKyciIGJ1dCBmb3VuZCAiJytmKyciLicpO31kPSExfX1pZihlLmxlbmd0aCE9CjApdGhyb3cgRXJyb3IoIk1pc3NpbmcgYnJhY2tldChzKTogIitlLmpvaW4oKSk7fTtaRj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aDtiPGM7YisrKXtsZXQgZD1hW2JdO2lmKGQ9PSI6IilyZXR1cm4gYjtpZihkPT0ieyJ8fGQ9PSI/Inx8ZD09IjsiKWJyZWFrfXJldHVybi0xfTskRj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aDtiPGM7YisrKWlmKGFbYl09PSI7IilyZXR1cm4gYjtyZXR1cm4gY307Ykc9ZnVuY3Rpb24oYSl7YT1XRihhKTtyZXR1cm4gYUcoYSl9O2NHPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiLGMpe2JbYV09Y319O2FHPWZ1bmN0aW9uKGEsYil7WUYoYSwwLGEubGVuZ3RoKTthPWEuam9pbigiIik7YiYmKGE9J3ZbIicrYisnIl0gPSAnK2EpO2I9WEFhW2FdO2J8fChiPW5ldyBGdW5jdGlvbigidiIsImciLF8uREUoSEUoInJldHVybiAiK2EpKSksWEFhW2FdPWIpO3JldHVybiBifTtkRz1mdW5jdGlvbihhKXtyZXR1cm4gYX07CiRBYT1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gZUcpZGVsZXRlIGVHW2NdO2E9V0YoYSk7dmFyIGQ9MDtmb3IoYz1hLmxlbmd0aDtkPGM7KXtsZXQgbT1bbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXTtmb3IodmFyIGU9IiIsZj0iIjtkPGM7ZCsrKXtmPWFbZF07aWYoZj09Ij8ifHxmPT0iOiIpe2UhPSIiJiZtLnB1c2goZSk7YnJlYWt9WEYudGVzdChmKXx8KGY9PSIuIj8oZSE9IiImJm0ucHVzaChlKSxlPSIiKTplPWYuY2hhckF0KDApPT0nIid8fGYuY2hhckF0KDApPT0iJyI/ZStjemEod2luZG93LEhFKGYpKTplK2YpfWlmKGQ+PWMpYnJlYWs7ZT0kRihhLGQrMSk7dmFyIGc9bTtmRy5sZW5ndGg9MDtmb3IodmFyIGg9NTtoPGcubGVuZ3RoOysraCl7dmFyIGs9Z1toXTtZQWEudGVzdChrKT9mRy5wdXNoKGsucmVwbGFjZShZQWEsIiYmIikpOmZHLnB1c2goayl9az1mRy5qb2luKCImIik7Zz1lR1trXTtpZihoPXR5cGVvZiBnPT0idW5kZWZpbmVkIilnPWVHW2tdPQpiLmxlbmd0aCxiLnB1c2gobSk7az1tPWJbZ107bGV0IHA9bS5sZW5ndGgtMSxxPW51bGw7c3dpdGNoKG1bcF0pe2Nhc2UgImZpbHRlcl91cmwiOnE9MTticmVhaztjYXNlICJmaWx0ZXJfaW1ndXJsIjpxPTI7YnJlYWs7Y2FzZSAiZmlsdGVyX2Nzc19yZWd1bGFyIjpxPTU7YnJlYWs7Y2FzZSAiZmlsdGVyX2Nzc19zdHJpbmciOnE9NjticmVhaztjYXNlICJmaWx0ZXJfY3NzX3VybCI6cT03fXEmJl8ueGMobSxwKTtrWzFdPXE7ZD1hRyhhLnNsaWNlKGQrMSxlKSk7Zj09IjoiP21bNF09ZDpmPT0iPyImJihtWzNdPWQpO2lmKGgpe2xldCB1O2Y9bVs1XTtmPT0iY2xhc3MifHxmPT0iY2xhc3NOYW1lIj9tLmxlbmd0aD09Nj91PTY6KG0uc3BsaWNlKDUsMSksdT03KTpmPT0ic3R5bGUiP20ubGVuZ3RoPT02P3U9NDoobS5zcGxpY2UoNSwxKSx1PTUpOmYgaW4gWkFhP20ubGVuZ3RoPT02P3U9ODptWzZdPT0iaGFzaCI/KHU9MTQsbS5sZW5ndGg9Nik6bVs2XT09Imhvc3QiPyh1PTExLG0ubGVuZ3RoPQo2KTptWzZdPT0icGF0aCI/KHU9MTIsbS5sZW5ndGg9Nik6bVs2XT09InBhcmFtIiYmbS5sZW5ndGg+PTg/KHU9MTMsbS5zcGxpY2UoNiwxKSk6bVs2XT09InBvcnQiPyh1PTEwLG0ubGVuZ3RoPTYpOm1bNl09PSJwcm90b2NvbCI/KHU9OSxtLmxlbmd0aD02KTpiLnNwbGljZShnLDEpOnU9MDttWzBdPXV9ZD1lKzF9cmV0dXJuIGJ9O2FCYT1mdW5jdGlvbihhLGIpe3ZhciBjPWNHKGEpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1iKGQpO2MoZCxlKTtyZXR1cm4gZX19O2lHPWZ1bmN0aW9uKGEsYil7dmFyIGM9U3RyaW5nKCsrYkJhKTtnR1tiXT1jO2hHW2NdPWE7cmV0dXJuIGN9O2pHPWZ1bmN0aW9uKGEsYil7YS5zZXRBdHRyaWJ1dGUoImpzdGNhY2hlIixiKTthLl9fanN0Y2FjaGU9aEdbYl19O2xHPWZ1bmN0aW9uKGEpe2EubGVuZ3RoPTA7a0cucHVzaChhKX07CmRCYT1mdW5jdGlvbihhLGIpe2lmKCFifHwhYi5nZXRBdHRyaWJ1dGUpcmV0dXJuIG51bGw7Y0JhKGEsYixudWxsKTt2YXIgYz1iLl9fcnQ7cmV0dXJuIGMmJmMubGVuZ3RoP2NbYy5sZW5ndGgtMV06ZEJhKGEsYi5wYXJlbnROb2RlKX07bUc9ZnVuY3Rpb24oYSl7dmFyIGI9aEdbZ0dbYSsiIDAiXXx8IjAiXTtiWzBdIT0iJHQiJiYoYj1bIiR0IixhXS5jb25jYXQoYikpO3JldHVybiBifTtuRz1mdW5jdGlvbihhLGIpe2E9Z0dbYisiICIrYV07cmV0dXJuIGhHW2FdP2E6bnVsbH07ZUJhPWZ1bmN0aW9uKGEsYil7YT1uRyhhLGIpO3JldHVybiBhIT1udWxsP2hHW2FdOm51bGx9O2ZCYT1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKGQ9PWUpcmV0dXJuIGxHKGIpLCIwIjtiWzBdPT0iJHQiP2E9YlsxXSsiIDAiOihhKz0iOiIsYT1kPT0wJiZlPT1jLmxlbmd0aD9hK2Muam9pbigiOiIpOmErYy5zbGljZShkLGUpLmpvaW4oIjoiKSk7KGM9Z0dbYV0pP2xHKGIpOmM9aUcoYixhKTtyZXR1cm4gY307Cm9HPWZ1bmN0aW9uKGEpe3ZhciBiPWEuX19ydDtifHwoYj1hLl9fcnQ9W10pO3JldHVybiBifTsKY0JhPWZ1bmN0aW9uKGEsYixjKXtpZighYi5fX2pzdGNhY2hlKXtiLmhhc0F0dHJpYnV0ZSgianN0aWQiKSYmKGIuZ2V0QXR0cmlidXRlKCJqc3RpZCIpLGIucmVtb3ZlQXR0cmlidXRlKCJqc3RpZCIpKTt2YXIgZD1iLmdldEF0dHJpYnV0ZSgianN0Y2FjaGUiKTtpZihkIT1udWxsJiZoR1tkXSliLl9fanN0Y2FjaGU9aEdbZF07ZWxzZXtkPWIuZ2V0QXR0cmlidXRlKCJqc2wiKTtnQmEubGFzdEluZGV4PTA7Zm9yKHZhciBlO2U9Z0JhLmV4ZWMoZCk7KW9HKGIpLnB1c2goZVsxXSk7Yz09bnVsbCYmKGM9U3RyaW5nKGRCYShhLGIucGFyZW50Tm9kZSkpKTtpZihhPWhCYS5leGVjKGQpKWU9YVsxXSxkPW5HKGUsYyksZD09bnVsbCYmKGE9a0cubGVuZ3RoP2tHLnBvcCgpOltdLGEucHVzaCgiJHgiKSxhLnB1c2goZSksYz1jKyI6IithLmpvaW4oIjoiKSwoZD1nR1tjXSkmJmhHW2RdP2xHKGEpOmQ9aUcoYSxjKSksakcoYixkKSxiLnJlbW92ZUF0dHJpYnV0ZSgianNsIik7ZWxzZXthPWtHLmxlbmd0aD8Ka0cucG9wKCk6W107ZD1wRy5sZW5ndGg7Zm9yKGU9MDtlPGQ7KytlKXt2YXIgZj1wR1tlXSxnPWZbMF07aWYoIWcpY29udGludWU7dmFyIGg9Yi5nZXRBdHRyaWJ1dGUoZyk7aWYoIWgpY29udGludWU7Zj1mWzJdO2lmKGc9PSJqc2wiKXtmPVdGKGgpO2Zvcih2YXIgaz1mLmxlbmd0aCxtPTAscD0iIjttPGs7KXt2YXIgcT0kRihmLG0pO1hGLnRlc3QoZlttXSkmJm0rKztpZihtPj1xKXttPXErMTtjb250aW51ZX12YXIgdT1mW20rK107aWYoIVZBYS50ZXN0KHUpKXRocm93IEVycm9yKCdDbWQgbmFtZSBleHBlY3RlZDsgZ290ICInK3UrJyIgaW4gIicraCsnIi4nKTtpZihtPHEmJiFYRi50ZXN0KGZbbV0pKXRocm93IEVycm9yKCciICIgZXhwZWN0ZWQgYmV0d2VlbiBjbWQgYW5kIHBhcmFtLicpO209Zi5zbGljZShtKzEscSkuam9pbigiIik7dT09IiRhIj9wKz1tKyI7IjoocCYmKGEucHVzaCgiJGEiKSxhLnB1c2gocCkscD0iIikscUdbdV0mJihhLnB1c2godSksYS5wdXNoKG0pKSk7Cm09cSsxfXAmJihhLnB1c2goIiRhIiksYS5wdXNoKHApKX1lbHNlIGlmKGc9PSJqc21hdGNoIilmb3IoaD1XRihoKSxmPWgubGVuZ3RoLHE9MDtxPGY7KWs9WkYoaCxxKSxwPSRGKGgscSkscT1oLnNsaWNlKHEscCkuam9pbigiIiksWEYudGVzdChxKXx8KGshPT0tMT8oYS5wdXNoKCJkaXNwbGF5IiksYS5wdXNoKGguc2xpY2UoaysxLHApLmpvaW4oIiIpKSxhLnB1c2goInZhciIpKTphLnB1c2goImRpc3BsYXkiKSxhLnB1c2gocSkpLHE9cCsxO2Vsc2UgYS5wdXNoKGYpLGEucHVzaChoKTtiLnJlbW92ZUF0dHJpYnV0ZShnKX1pZihhLmxlbmd0aD09MClqRyhiLCIwIik7ZWxzZXtpZihhWzBdPT0iJHUifHxhWzBdPT0iJHQiKWM9YVsxXTtkPWdHW2MrIjoiK2Euam9pbigiOiIpXTtpZighZHx8IWhHW2RdKWE6e2U9YztjPSIwIjtmPWtHLmxlbmd0aD9rRy5wb3AoKTpbXTtkPTA7Zz1hLmxlbmd0aDtmb3IoaD0wO2g8ZztoKz0yKXtrPWFbaF07cT1hW2grMV07cD1xR1trXTt1PXBbMV07cD0KKDAscFswXSkocSk7az09IiR0IiYmcSYmKGU9cSk7aWYoaz09IiRrIilmW2YubGVuZ3RoLTJdPT0iZm9yIiYmKGZbZi5sZW5ndGgtMl09IiRmayIsZltmLmxlbmd0aC0yKzFdLnB1c2gocCkpO2Vsc2UgaWYoaz09IiR0IiYmYVtoKzJdPT0iJHgiKXtwPW5HKCIwIixlKTtpZihwIT1udWxsKXtkPT0wJiYoYz1wKTtsRyhmKTtkPWM7YnJlYWsgYX1mLnB1c2goIiR0Iik7Zi5wdXNoKHEpfWVsc2UgaWYodSlmb3IocT1wLmxlbmd0aCx1PTA7dTxxOysrdSlpZihtPXBbdV0saz09Il9hIil7bGV0IHg9bVswXSx6PW1bNV0sQj16LmNoYXJBdCgwKTtCPT0iJCI/KGYucHVzaCgidmFyIiksZi5wdXNoKGFCYShtWzVdLG1bNF0pKSk6Qj09IkAiPyhmLnB1c2goIiRhIiksbVs1XT16LnN1YnN0cigxKSxmLnB1c2gobSkpOng9PTZ8fHg9PTd8fHg9PTR8fHg9PTV8fHo9PSJqc2FjdGlvbiJ8fHogaW4gWkFhPyhmLnB1c2goIiRhIiksZi5wdXNoKG0pKToockcuaGFzT3duUHJvcGVydHkoeikmJihtWzVdPQpyR1t6XSksbS5sZW5ndGg9PTYmJihmLnB1c2goIiRhIiksZi5wdXNoKG0pKSl9ZWxzZSBmLnB1c2goayksZi5wdXNoKG0pO2Vsc2UgZi5wdXNoKGspLGYucHVzaChwKTtpZihrPT0iJHUifHxrPT0iJHVlInx8az09IiR1cCJ8fGs9PSIkeCIpaz1oKzIsZj1mQmEoZSxmLGEsZCxrKSxkPT0wJiYoYz1mKSxmPVtdLGQ9a31lPWZCYShlLGYsYSxkLGEubGVuZ3RoKTtkPT0wJiYoYz1lKTtkPWN9akcoYixkKX1sRyhhKX19fX07aUJhPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhfX07akJhPWZ1bmN0aW9uKGEpe3ZhciBiPWEucWguY3JlYXRlRWxlbWVudCgiU1RZTEUiKTthLnFoLmhlYWQ/YS5xaC5oZWFkLmFwcGVuZENoaWxkKGIpOmEucWguYm9keS5hcHBlbmRDaGlsZChiKTtyZXR1cm4gYn07CmtCYT1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhWzNdPT0ibnVtYmVyIil7dmFyIGM9YVszXTthWzNdPWJbY107YS5IQz1jfWVsc2UgdHlwZW9mIGFbM109PSJ1bmRlZmluZWQiJiYoYVszXT1bXSxhLkhDPS0xKTt0eXBlb2YgYVsxXSE9Im51bWJlciImJihhWzFdPTApO2lmKChhPWFbNF0pJiZ0eXBlb2YgYSE9InN0cmluZyIpZm9yKGM9MDtjPGEubGVuZ3RoOysrYylhW2NdJiZ0eXBlb2YgYVtjXSE9InN0cmluZyImJmtCYShhW2NdLGIpfTtfLnNHPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtmb3IobGV0IGc9MDtnPGYubGVuZ3RoOysrZylmW2ddJiZpRyhmW2ddLGIrIiAiK1N0cmluZyhnKSk7a0JhKGQsZik7YT1hLnFoO2lmKCFBcnJheS5pc0FycmF5KGMpKXtmPVtdO2ZvcihsZXQgZyBpbiBjKWZbY1tnXV09ZztjPWZ9YVtiXT17cko6MCxlbGVtZW50czpkLFlHOmUsYXJnczpjLHJTOm51bGwsYXN5bmM6ITEsZmluZ2VycHJpbnQ6bnVsbH19OwpfLnRHPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIgaW4gYS5xaCYmIWEucWhbYl0uYk99O3VHPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucWhbYl18fGEueGhbYl18fG51bGx9OwpsQmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWM9PW51bGw/MDpjLmxlbmd0aDtmb3IobGV0IGc9MDtnPGQ7KytnKXtsZXQgaD1jW2ddO2ZvcihsZXQgaz0wO2s8aC5sZW5ndGg7ays9Mil7dmFyIGU9aFtrKzFdO3N3aXRjaChoW2tdKXtjYXNlICJjc3MiOmlmKGU9dHlwZW9mIGU9PSJzdHJpbmciP2U6dkYoYixlLG51bGwpKXt2YXIgZj1hLnRoO2UgaW4gZi50aHx8KGYudGhbZV09ITAsIiIuaW5kZXhPZihlKT09LTEmJmYucmgucHVzaChlKSl9YnJlYWs7Y2FzZSAiJHVwIjpmPXVHKGEsZVswXS5nZXRLZXkoKSk7aWYoIWYpYnJlYWs7aWYoZS5sZW5ndGg9PTImJiF2RihiLGVbMV0pKWJyZWFrO2U9Zi5lbGVtZW50cz9mLmVsZW1lbnRzWzNdOm51bGw7bGV0IG09ITA7aWYoZSE9bnVsbClmb3IobGV0IHA9MDtwPGUubGVuZ3RoO3ArPTIpaWYoZVtwXT09IiRpZiImJiF2RihiLGVbcCsxXSkpe209ITE7YnJlYWt9bSYmbEJhKGEsYixmLllHKTticmVhaztjYXNlICIkZyI6KDAsZVswXSkoYi5xaCwKYi5yaD9iLnJoLnFoW2VbMV1dOm51bGwpO2JyZWFrO2Nhc2UgInZhciI6dkYoYixlLG51bGwpfX19fTt2Rz1mdW5jdGlvbihhKXt0aGlzLmVsZW1lbnQ9YTt0aGlzLnNoPXRoaXMudGg9dGhpcy5xaD10aGlzLnRhZz10aGlzLm5leHQ9bnVsbDt0aGlzLnJoPSExfTttQmE9ZnVuY3Rpb24oKXt0aGlzLnJoPW51bGw7dGhpcy50aD1TdHJpbmc7dGhpcy5zaD0iIjt0aGlzLnFoPW51bGx9O3dHPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5xaD1hO3RoaXMudGg9Yjt0aGlzLkNoPXRoaXMuemg9dGhpcy54aD0wO3RoaXMuRmg9IiI7dGhpcy5BaD1bXTt0aGlzLkJoPSExO3RoaXMub2k9Yzt0aGlzLmNvbnRleHQ9ZDt0aGlzLnloPTA7dGhpcy53aD10aGlzLnJoPW51bGw7dGhpcy5zaD1lO3RoaXMuRGg9bnVsbH07CnhHPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PWJ8fGEud2ghPW51bGwmJnhHKGEud2gsYik/ITA6YS55aD09MiYmYS5yaCE9bnVsbCYmYS5yaFswXSE9bnVsbCYmeEcoYS5yaFswXSxiKX07ekc9ZnVuY3Rpb24oYSxiLGMpe2lmKGEucWg9PXlHJiZhLnNoPT1iKXJldHVybiBhO2lmKGEuQWghPW51bGwmJmEuQWgubGVuZ3RoPjAmJmEucWhbYS54aF09PSIkdCIpe2lmKGEucWhbYS54aCsxXT09YilyZXR1cm4gYTtjJiZjLnB1c2goYS5xaFthLnhoKzFdKX1pZihhLndoIT1udWxsKXtsZXQgZD16RyhhLndoLGIsYyk7aWYoZClyZXR1cm4gZH1yZXR1cm4gYS55aD09MiYmYS5yaCE9bnVsbCYmYS5yaFswXSE9bnVsbD96RyhhLnJoWzBdLGIsYyk6bnVsbH07CkFHPWZ1bmN0aW9uKGEpe3ZhciBiPWEuRGg7aWYoYiE9bnVsbCl7dmFyIGM9YlsiYWN0aW9uOmxvYWQiXTtjIT1udWxsJiYoYy5jYWxsKGEub2kuZWxlbWVudCksYlsiYWN0aW9uOmxvYWQiXT1udWxsKTtjPWJbImFjdGlvbjpjcmVhdGUiXTtjIT1udWxsJiYoYy5jYWxsKGEub2kuZWxlbWVudCksYlsiYWN0aW9uOmNyZWF0ZSJdPW51bGwpfWEud2ghPW51bGwmJkFHKGEud2gpO2EueWg9PTImJmEucmghPW51bGwmJmEucmhbMF0hPW51bGwmJkFHKGEucmhbMF0pfTtCRz1mdW5jdGlvbihhLGIsYyl7dGhpcy5yaD1hO3RoaXMueGg9YS5kb2N1bWVudCgpOysrbkJhO3RoaXMud2g9dGhpcy50aD10aGlzLnFoPW51bGw7dGhpcy5zaD0hMTt0aGlzLnloPShiJjIpPT0yO3RoaXMuemg9Yz09bnVsbD9udWxsOl8ubWIoKStjfTsKb0JhPWZ1bmN0aW9uKGEsYixjKXtpZihiPT1udWxsfHxiLmZpbmdlcnByaW50PT1udWxsKXJldHVybiExO2I9Yy5nZXRBdHRyaWJ1dGUoImpzc2MiKTtpZighYilyZXR1cm4hMTtjLnJlbW92ZUF0dHJpYnV0ZSgianNzYyIpO2M9Yi5zcGxpdCgiICIpO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXtiPWNbZF0uc3BsaXQoIjoiKTtsZXQgZT1iWzFdO2lmKChiPXVHKGEsYlswXSkpJiZiLmZpbmdlcnByaW50IT1lKXJldHVybiEwfXJldHVybiExfTtDRz1mdW5jdGlvbihhLGIsYyl7aWYoYS5zaD09YiliPW51bGw7ZWxzZSBpZihhLnNoPT1jKXJldHVybiBiPT1udWxsO2lmKGEud2ghPW51bGwpcmV0dXJuIENHKGEud2gsYixjKTtpZihhLnJoIT1udWxsKWZvcihsZXQgZT0wO2U8YS5yaC5sZW5ndGg7ZSsrKXt2YXIgZD1hLnJoW2VdO2lmKGQhPW51bGwpe2lmKGQub2kuZWxlbWVudCE9YS5vaS5lbGVtZW50KWJyZWFrO2Q9Q0coZCxiLGMpO2lmKGQhPW51bGwpcmV0dXJuIGR9fXJldHVybiBudWxsfTsKREc9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYyE9YSlyZXR1cm4gXy56bChhLGMpO2lmKGI9PWQpcmV0dXJuITA7YT1hLl9fY2RuO3JldHVybiBhIT1udWxsJiZDRyhhLGIsZCk9PTF9O3FCYT1mdW5jdGlvbihhLGIpe2lmKGI9PT0tMXx8cEJhKGEpIT0wKWI9ZnVuY3Rpb24oKXtxQmEoYSl9LHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUhPW51bGw/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShiKTpfLnpwKGIpfTtwQmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5tYigpO2ZvcihhPWEucmg7YS5sZW5ndGg+MDspe2xldCBjPWEuc3BsaWNlKDAsMSlbMF07dHJ5e3JCYShjKX1jYXRjaChkKXtjLnNoKCl9aWYoXy5tYigpPj1iKzUwKWJyZWFrfXJldHVybiBhLmxlbmd0aH07CkhHPWZ1bmN0aW9uKGEsYil7aWYoYi5vaS5lbGVtZW50JiYhYi5vaS5lbGVtZW50Ll9fY2RuKUVHKGEsYik7ZWxzZSBpZihzQmEoYikpe3ZhciBjPWIuc2g7aWYoYi5vaS5lbGVtZW50KXt2YXIgZD1iLm9pLmVsZW1lbnQ7aWYoYi5CaCl7dmFyIGU9Yi5vaS50YWc7ZSE9bnVsbCYmZS5yZXNldChjfHx2b2lkIDApfWM9Yi5BaDtlPSEhYi5jb250ZXh0LnFoLnZrO3ZhciBmPWMubGVuZ3RoLGc9Yi55aD09MSxoPWIueGg7Zm9yKGxldCBrPTA7azxmOysrayl7bGV0IG09Y1trXSxwPWIucWhbaF0scT1GR1twXTtpZihtIT1udWxsKWlmKG0ucmg9PW51bGwpcS5tZXRob2QuY2FsbChhLGIsbSxoKTtlbHNle2xldCB1PXZGKGIuY29udGV4dCxtLnJoLGQpLHg9bS50aCh1KTtpZihxLnFoIT0wKXtpZihxLm1ldGhvZC5jYWxsKGEsYixtLGgsdSxtLnNoIT14KSxtLnNoPXgsKHA9PSJkaXNwbGF5Inx8cD09IiRpZiIpJiYhdXx8cD09IiRzayImJnUpe2c9ITE7YnJlYWt9fWVsc2UgeCE9bS5zaCYmKG0uc2g9CngscS5tZXRob2QuY2FsbChhLGIsbSxoLHUpKX1oKz0yfWcmJihHRyhhLGIub2ksYiksdEJhKGEsYikpO2IuY29udGV4dC5xaC52az1lfWVsc2UgdEJhKGEsYil9fTt0QmE9ZnVuY3Rpb24oYSxiKXtpZihiLnloPT0xJiYoYj1iLnJoLGIhPW51bGwpKWZvcihsZXQgYz0wO2M8Yi5sZW5ndGg7KytjKXtsZXQgZD1iW2NdO2QhPW51bGwmJkhHKGEsZCl9fTtJRz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuX19jZG47YyE9bnVsbCYmeEcoYyxiKXx8KGEuX19jZG49Yil9O0VHPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vaS5lbGVtZW50O2lmKCFzQmEoYikpcmV0dXJuITE7dmFyIGQ9Yi5zaDtjLl9fdnMmJihjLl9fdnNbMF09MSk7SUcoYyxiKTtjPSEhYi5jb250ZXh0LnFoLnZrO2lmKCFiLnFoLmxlbmd0aClyZXR1cm4gYi5yaD1bXSxiLnloPTEsdUJhKGEsYixkKSxiLmNvbnRleHQucWgudms9YywhMDtiLkJoPSEwO0pHKGEsYik7Yi5jb250ZXh0LnFoLnZrPWM7cmV0dXJuITB9Owp1QmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuY29udGV4dCxlPWIub2kuZWxlbWVudDtmb3IoZT1lLmZpcnN0RWxlbWVudENoaWxkIT09dm9pZCAwP2UuZmlyc3RFbGVtZW50Q2hpbGQ6bHphKGUuZmlyc3RDaGlsZCk7ZTtlPWUubmV4dEVsZW1lbnRTaWJsaW5nKXtsZXQgZj1uZXcgd0coS0coYSxlLGMpLG51bGwsbmV3IHZHKGUpLGQsYyk7RUcoYSxmKTtlPWYub2kubmV4dHx8Zi5vaS5lbGVtZW50O2YuQWgubGVuZ3RoPT0wJiZlLl9fY2RuP2YucmghPW51bGwmJll5YShiLnJoLGYucmgpOmIucmgucHVzaChmKX19OwpNRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5jb250ZXh0LGU9Yi50aFs0XTtpZihlKWlmKHR5cGVvZiBlPT0ic3RyaW5nIilhLnFoKz1lO2Vsc2V7dmFyIGY9ISFkLnFoLnZrO2ZvcihsZXQgaD0wO2g8ZS5sZW5ndGg7KytoKXt2YXIgZz1lW2hdO2lmKHR5cGVvZiBnPT0ic3RyaW5nIil7YS5xaCs9Zztjb250aW51ZX1sZXQgaz1uZXcgd0coZ1szXSxnLG5ldyB2RyhudWxsKSxkLGMpO2c9YTtpZihrLnFoLmxlbmd0aD09MCl7bGV0IG09ay5zaCxwPWsub2k7ay5yaD1bXTtrLnloPTE7TEcoZyxrKTtHRyhnLHAsayk7aWYoKHAudGFnLnRoJjIwNDgpIT0wKXtsZXQgcT1rLmNvbnRleHQucWguV287ay5jb250ZXh0LnFoLldvPSExO01HKGcsayxtKTtrLmNvbnRleHQucWguV289cSE9PSExfWVsc2UgTUcoZyxrLG0pO05HKGcscCxrKX1lbHNlIGsuQmg9ITAsSkcoZyxrKTtrLkFoLmxlbmd0aCE9MD9iLnJoLnB1c2goayk6ay5yaCE9bnVsbCYmWXlhKGIucmgsay5yaCk7ZC5xaC52az1mfX19OwpPRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5vaTtkLnJoPSEwO2IuY29udGV4dC5xaC5Xbz09PSExPyhHRyhhLGQsYiksTkcoYSxkLGIpKTooZD1hLnNoLGEuc2g9ITAsSkcoYSxiLGMpLGEuc2g9ZCl9OwpKRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5vaSxlPWIuc2gsZj1iLnFoLGc9Y3x8Yi54aDtpZihnPT0wKWlmKGZbMF09PSIkdCImJmZbMl09PSIkeCIpe2M9ZlsxXTt2YXIgaD1lQmEoZlszXSxjKTtpZihoIT1udWxsKXtiLnFoPWg7Yi5zaD1jO0pHKGEsYik7cmV0dXJufX1lbHNlIGlmKGZbMF09PSIkeCImJihjPWVCYShmWzFdLGUpLGMhPW51bGwpKXtiLnFoPWM7SkcoYSxiKTtyZXR1cm59Zm9yKGM9Zi5sZW5ndGg7ZzxjO2crPTIpe2g9ZltnXTt2YXIgaz1mW2crMV07aD09IiR0IiYmKGU9ayk7ZC50YWd8fChhLnFoIT1udWxsP2ghPSJmb3IiJiZoIT0iJGZrIiYmTEcoYSxiKTooaD09IiRhInx8aD09IiR1Inx8aD09IiR1YSJ8fGg9PSIkdWFlInx8aD09IiR1ZSJ8fGg9PSIkdXAifHxoPT0iZGlzcGxheSJ8fGg9PSIkaWYifHxoPT0iJGRkInx8aD09IiRkYyJ8fGg9PSIkZGgifHxoPT0iJHNrIikmJnZCYShkLGUpKTtoPUZHW2hdO2lmKCFoKXtnPT1iLnhoP2IueGgrPTI6Yi5BaC5wdXNoKG51bGwpOwpjb250aW51ZX1rPW5ldyBtQmE7dmFyIG09YixwPW0ucWhbZysxXTtzd2l0Y2gobS5xaFtnXSl7Y2FzZSAiJHVlIjprLnRoPWFBYTtrLnJoPXA7YnJlYWs7Y2FzZSAiZm9yIjprLnRoPXdCYTtrLnJoPXBbM107YnJlYWs7Y2FzZSAiJGZrIjprLnFoPVtdO2sudGg9eEJhKG0uY29udGV4dCxtLm9pLHAsay5xaCk7ay5yaD1wWzNdO2JyZWFrO2Nhc2UgImRpc3BsYXkiOmNhc2UgIiRpZiI6Y2FzZSAiJHNrIjpjYXNlICIkcyI6ay5yaD1wO2JyZWFrO2Nhc2UgIiRjIjprLnJoPXBbMl19bT1hO3A9Yjt2YXIgcT1nLHU9cC5vaSx4PXUuZWxlbWVudCx6PXAucWhbcV07bGV0IEs9cC5jb250ZXh0O3ZhciBCPW51bGw7aWYoay5yaClpZihtLnNoKXtCPSIiO3N3aXRjaCh6KXtjYXNlICIkdWUiOkI9eUJhO2JyZWFrO2Nhc2UgImZvciI6Y2FzZSAiJGZrIjpCPVBHO2JyZWFrO2Nhc2UgImRpc3BsYXkiOmNhc2UgIiRpZiI6Y2FzZSAiJHNrIjpCPSEwO2JyZWFrO2Nhc2UgIiRzIjpCPTA7YnJlYWs7Y2FzZSAiJGMiOkI9CiIifUI9UUcoSyxrLnJoLHgsQil9ZWxzZSBCPXZGKEssay5yaCx4KTt4PWsudGgoQik7ay5zaD14O3o9Rkdbel07ei5xaD09ND8ocC5yaD1bXSxwLnloPXoucmgpOnoucWg9PTMmJih1PXAud2g9bmV3IHdHKHlHLG51bGwsdSxuZXcgc0YsIm51bGwiKSx1LnpoPXAuemgrMSx1LkNoPXAuQ2gpO3AuQWgucHVzaChrKTt6Lm1ldGhvZC5jYWxsKG0scCxrLHEsQiwhMCk7aWYoaC5xaCE9MClyZXR1cm59aWYoYS5xaD09bnVsbHx8ZC50YWcubmFtZSgpIT0ic3R5bGUiKUdHKGEsZCxiKSxiLnJoPVtdLGIueWg9MSxhLnFoIT1udWxsP01HKGEsYixlKTp1QmEoYSxiLGUpLGIucmgubGVuZ3RoPT0wJiYoYi5yaD1udWxsKSxORyhhLGQsYil9O1FHPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXtyZXR1cm4gdkYoYSxiLGMpfWNhdGNoKGUpe3JldHVybiBkfX07d0JhPWZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoUkcoYSkubGVuZ3RoKX07CnpCYT1mdW5jdGlvbihhLGIpe2E9YS5xaDtmb3IobGV0IGMgaW4gYSliLnFoW2NdPWFbY119O1NHPWZ1bmN0aW9uKGEsYil7dGhpcy5yaD1hO3RoaXMucWg9Yjt0aGlzLlV1PW51bGx9O3JCYT1mdW5jdGlvbihhLGIsYyl7YS5yaC5kb2N1bWVudCgpO2I9bmV3IEJHKGEucmgsYixjKTthLnFoLm9pLnRhZyYmIWEucWguQmgmJmEucWgub2kudGFnLnJlc2V0KGEucWguc2gpOyhjPXVHKGEucmgsYS5xaC5zaCkpJiZURyhiLG51bGwsYS5xaCxjLG51bGwpfTtVRz1mdW5jdGlvbihhKXthLkRoPT1udWxsJiYoYS5EaD17fSk7cmV0dXJuIGEuRGh9O1ZHPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5xaCE9bnVsbCYmYS5zaCYmYi50aFsyXT8oYy5zaD0iIiwhMCk6ITF9O1dHPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gVkcoYSxiLGMpPyhHRyhhLGIub2ksYiksTkcoYSxiLm9pLGIpLCEwKTohMX07ClRHPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihlPT1udWxsfHxkPT1udWxsfHwhZC5hc3luY3x8IWEudHYoYyxlLGYpKWlmKGMucWghPXlHKUhHKGEsYyk7ZWxzZXtmPWMub2k7KGU9Zi5lbGVtZW50KSYmSUcoZSxjKTtmLnFoPT1udWxsJiYoZi5xaD1lP29HKGUpOltdKTtmPWYucWg7dmFyIGc9Yy56aDtmLmxlbmd0aDxnLTE/KGMucWg9bUcoYy5zaCksSkcoYSxjKSk6Zi5sZW5ndGg9PWctMT9YRyhhLGIsYyk6ZltnLTFdIT1jLnNoPyhmLmxlbmd0aD1nLTEsYiE9bnVsbCYmWUcoYS5yaCxiLCExKSxYRyhhLGIsYykpOmUmJm9CYShhLnJoLGQsZSk/KGYubGVuZ3RoPWctMSxYRyhhLGIsYykpOihjLnFoPW1HKGMuc2gpLEpHKGEsYykpfX07CkFCYT1mdW5jdGlvbihhLGIsYyxkLGUsZil7ZS5xaC5Xbz0hMTt2YXIgZz0iIjtpZihjLmVsZW1lbnRzfHxjLnlJKWMueUk/Zz1DRihfLnNFKGMuTU4oYS5yaCxlLnFoKSkpOihjPWMuZWxlbWVudHMsZT1uZXcgd0coY1szXSxjLG5ldyB2RyhudWxsKSxlLGIpLGUub2kucWg9W10sYj1hLnFoLGEucWg9IiIsSkcoYSxlKSxlPWEucWgsYS5xaD1iLGc9ZSk7Z3x8KGc9cEFhKGYubmFtZSgpLGQpKTtnJiZMRihmLDAsZCxnLCEwLCExKX07QkJhPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yy5lbGVtZW50cyYmKGM9Yy5lbGVtZW50cyxiPW5ldyB3RyhjWzNdLGMsbmV3IHZHKG51bGwpLGQsYiksYi5vaS5xaD1bXSxiLm9pLnRhZz1lLElGKGUsY1sxXSksZT1hLnFoLGEucWg9IiIsSkcoYSxiKSxhLnFoPWUpfTsKWEc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMuc2gsZT1jLm9pLGY9ZS5xaHx8ZS5lbGVtZW50Ll9fcnQsZz11RyhhLnJoLGQpO2lmKGcmJmcuYk8pYS5xaCE9bnVsbCYmKGM9ZS50YWcuaWQoKSxhLnFoKz1NRihlLnRhZywhMSwhMCkrckFhKGUudGFnKSxhLnRoW2NdPWUpO2Vsc2UgaWYoZyYmZy5lbGVtZW50cyl7ZS5lbGVtZW50JiZMRihlLnRhZywwLCJqc3RjYWNoZSIsZS5lbGVtZW50LmdldEF0dHJpYnV0ZSgianN0Y2FjaGUiKXx8IjAiLCExLCEwKTtpZihlLmVsZW1lbnQ9PW51bGwmJmImJmIudGgmJmIudGhbMl0pe2xldCBoPWIudGguSEM7aCE9LTEmJmghPTAmJlpHKGUudGFnLGIuc2gsaCl9Zi5wdXNoKGQpO2xCYShhLnJoLGMuY29udGV4dCxnLllHKTtlLmVsZW1lbnQ9PW51bGwmJmUudGFnJiZiJiYkRyhlLnRhZyxiKTtnLmVsZW1lbnRzWzBdPT0ianNsIiYmKGUudGFnLm5hbWUoKSE9ImpzbCJ8fGIudGgmJmIudGhbMl0pJiZ0QWEoZS50YWcsITApO2MudGg9Zy5lbGVtZW50czsKZT1jLm9pO2Q9Yy50aDtpZihiPWEucWg9PW51bGwpYS5xaD0iIixhLnRoPXt9LGEud2g9e307Yy5xaD1kWzNdO0lGKGUudGFnLGRbMV0pO2Q9YS5xaDthLnFoPSIiOyhlLnRhZy50aCYyMDQ4KSE9MD8oZj1jLmNvbnRleHQucWguV28sYy5jb250ZXh0LnFoLldvPSExLEpHKGEsYyksYy5jb250ZXh0LnFoLldvPWYhPT0hMSk6SkcoYSxjKTthLnFoPWQrYS5xaDtpZihiKXtjPWEucmgudGg7Yy5xaCYmYy5yaC5sZW5ndGghPTAmJihiPWMucmguam9pbigiIiksXy5tcj8oYy5zaHx8KGMuc2g9akJhKGMpKSxkPWMuc2gpOmQ9akJhKGMpLGQuc3R5bGVTaGVldCYmIWQuc2hlZXQ/ZC5zdHlsZVNoZWV0LmNzc1RleHQrPWI6ZC50ZXh0Q29udGVudCs9YixjLnJoLmxlbmd0aD0wKTtlPWUuZWxlbWVudDtkPWEueGg7Yz1lO2Y9YS5xaDtpZihmIT0iInx8Yy5pbm5lckhUTUwhPSIiKWlmKGc9Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGI9MCxnPT0idGFibGUiPyhmPSI8dGFibGU+IitmKyI8L3RhYmxlPiIsCmI9MSk6Zz09InRib2R5Inx8Zz09InRoZWFkInx8Zz09InRmb290Inx8Zz09ImNhcHRpb24ifHxnPT0iY29sZ3JvdXAifHxnPT0iY29sIj8oZj0iPHRhYmxlPjx0Ym9keT4iK2YrIjwvdGJvZHk+PC90YWJsZT4iLGI9Mik6Zz09InRyIiYmKGY9Ijx0YWJsZT48dGJvZHk+PHRyPiIrZisiPC90cj48L3Rib2R5PjwvdGFibGU+IixiPTMpLGI9PTApXy56aihjLF8uRGwoZikpO2Vsc2V7ZD1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpO18uemooZCxfLkRsKGYpKTtmb3IoZj0wO2Y8YjsrK2YpZD1kLmZpcnN0Q2hpbGQ7Zm9yKDtiPWMuZmlyc3RDaGlsZDspYy5yZW1vdmVDaGlsZChiKTtmb3IoYj1kLmZpcnN0Q2hpbGQ7YjtiPWQuZmlyc3RDaGlsZCljLmFwcGVuZENoaWxkKGIpfWM9ZS5xdWVyeVNlbGVjdG9yQWxsP2UucXVlcnlTZWxlY3RvckFsbCgiW2pzdGlkXSIpOltdO2ZvcihlPTA7ZTxjLmxlbmd0aDsrK2Upe2Q9Y1tlXTtmPWQuZ2V0QXR0cmlidXRlKCJqc3RpZCIpO2I9YS50aFtmXTtmPQphLndoW2ZdO2QucmVtb3ZlQXR0cmlidXRlKCJqc3RpZCIpO2ZvcihnPWI7ZztnPWcudGgpZy5lbGVtZW50PWQ7Yi5xaCYmKGQuX19ydD1iLnFoLGIucWg9bnVsbCk7ZC5fX2Nkbj1mO0FHKGYpO2QuX19qc3RjYWNoZT1mLnFoO2lmKGIuc2gpe2ZvcihkPTA7ZDxiLnNoLmxlbmd0aDsrK2QpZj1iLnNoW2RdLGYuc2hpZnQoKS5hcHBseShhLGYpO2Iuc2g9bnVsbH19YS5xaD1udWxsO2EudGg9bnVsbDthLndoPW51bGx9fX07YUg9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yi5jbG9uZU5vZGUoITEpO2lmKGIuX19ydD09bnVsbClmb3IoYj1iLmZpcnN0Q2hpbGQ7YiE9bnVsbDtiPWIubmV4dFNpYmxpbmcpYi5ub2RlVHlwZT09MT9lLmFwcGVuZENoaWxkKGFIKGEsYixjLCEwKSk6ZS5hcHBlbmRDaGlsZChiLmNsb25lTm9kZSghMCkpO2Vsc2UgZS5fX3J0JiZkZWxldGUgZS5fX3J0O2UuX19jZG4mJmRlbGV0ZSBlLl9fY2RuO2R8fGlGKGUsITApO3JldHVybiBlfTsKUkc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/W106QXJyYXkuaXNBcnJheShhKT9hOlthXX07eEJhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWNbMF0sZj1jWzFdLGc9Y1syXSxoPWNbNF07cmV0dXJuIGZ1bmN0aW9uKGspe3ZhciBtPWIuZWxlbWVudDtrPVJHKGspO3ZhciBwPWsubGVuZ3RoO2coYS5xaCxwKTtkLmxlbmd0aD0wO2ZvcihsZXQgcT0wO3E8cDsrK3Epe2UoYS5xaCxrW3FdKTtmKGEucWgscSk7bGV0IHU9dkYoYSxoLG0pO2QucHVzaChTdHJpbmcodSkpfXJldHVybiBkLmpvaW4oIiwiKX19OwpDQmE9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIucmgsaD1iLnFoW2QrMV0saz1oWzBdO2g9aFsxXTt2YXIgbT1iLmNvbnRleHQ7Yz1WRyhhLGIsYyk/MDplLmxlbmd0aDt2YXIgcD1jPT0wLHE9Yi50aFsyXTtmb3IobGV0IHU9MDt1PGN8fHU9PTAmJnE7Kyt1KXtwfHwoayhtLnFoLGVbdV0pLGgobS5xaCx1KSk7bGV0IHg9Z1t1XT1uZXcgd0coYi5xaCxiLnRoLG5ldyB2RyhudWxsKSxtLGIuc2gpO3gueGg9ZCsyO3guemg9Yi56aDt4LkNoPWIuQ2grMTt4LkJoPSEwO3guRmg9KGIuRmg/Yi5GaCsiLCI6IiIpKyh1PT1jLTF8fHA/IioiOiIiKStTdHJpbmcodSkrKGYmJiFwPyI7IitmW3VdOiIiKTtsZXQgej1MRyhhLHgpO3EmJmM+MCYmTEYoeiwyMCwianNpbnN0YW5jZSIseC5GaCk7dT09MCYmKHgub2kudGg9Yi5vaSk7cD9PRyhhLHgpOkpHKGEseCl9fTtaRz1mdW5jdGlvbihhLGIsYyl7TEYoYSwwLCJqc3RjYWNoZSIsbkcoU3RyaW5nKGMpLGIpLCExLCEwKX07CllHPWZ1bmN0aW9uKGEsYixjKXtpZihiKXtpZihjJiYoYz1iLkRoLGMhPW51bGwpKXtmb3IodmFyIGQgaW4gYylpZihkLmluZGV4T2YoImNvbnRyb2xsZXI6Iik9PTB8fGQuaW5kZXhPZigib2JzZXJ2ZXI6Iik9PTApe2xldCBlPWNbZF07ZSE9bnVsbCYmZS5kaXNwb3NlJiZlLmRpc3Bvc2UoKX1iLkRoPW51bGx9Yi53aCE9bnVsbCYmWUcoYSxiLndoLCEwKTtpZihiLnJoIT1udWxsKWZvcihkPTA7ZDxiLnJoLmxlbmd0aDsrK2QpKGM9Yi5yaFtkXSkmJllHKGEsYywhMCl9fTsKdkJhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5lbGVtZW50LGQ9Yy5fX3RhZztpZihkIT1udWxsKWEudGFnPWQsZC5yZXNldChifHx2b2lkIDApO2Vsc2UgaWYoYT1kPWEudGFnPWMuX190YWc9bmV3IERCYShjLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpLGI9Ynx8dm9pZCAwLGQ9Yy5nZXRBdHRyaWJ1dGUoImpzYW4iKSl7SUYoYSw2NCk7ZD1kLnNwbGl0KCIsIik7dmFyIGU9ZC5sZW5ndGg7aWYoZT4wKXthLnFoPVtdO2ZvcihsZXQgaz0wO2s8ZTtrKyspe3ZhciBmPWRba10sZz1mLmluZGV4T2YoIi4iKTtpZihnPT0tMSlIRihhLC0xLG51bGwsbnVsbCxudWxsLG51bGwsZiwhMSk7ZWxzZXtsZXQgbT1wYXJzZUludChmLnN1YnN0cigwLGcpLDEwKTt2YXIgaD1mLnN1YnN0cihnKzEpO2xldCBwPW51bGw7Zz0iX2pzYW5fIjtzd2l0Y2gobSl7Y2FzZSA3OmY9ImNsYXNzIjtwPWg7Zz0iIjticmVhaztjYXNlIDU6Zj0ic3R5bGUiO3A9aDticmVhaztjYXNlIDEzOmg9aC5zcGxpdCgiLiIpO2Y9CmhbMF07cD1oWzFdO2JyZWFrO2Nhc2UgMDpmPWg7Zz1jLmdldEF0dHJpYnV0ZShoKTticmVhaztkZWZhdWx0OmY9aH1IRihhLG0sZixwLG51bGwsbnVsbCxnLCExKX19fWEuQWg9ITE7YS5yZXNldChiKX19O0xHPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi50aCxkPWIub2kudGFnPW5ldyBEQmEoY1swXSk7SUYoZCxjWzFdKTtiLmNvbnRleHQucWguV289PT0hMSYmSUYoZCwxMDI0KTthLndoJiYoYS53aFtkLmlkKCldPWIpO2IuQmg9ITA7cmV0dXJuIGR9OyRHPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5xaDtmb3IobGV0IGQ9MDtjJiZkPGMubGVuZ3RoO2QrPTIpaWYoY1tkXT09IiR0ZyIpe3ZGKGIuY29udGV4dCxjW2QrMV0sbnVsbCk9PT0hMSYmdEFhKGEsITEpO2JyZWFrfX07CkdHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLnRhZztpZihkIT1udWxsKXt2YXIgZT1iLmVsZW1lbnQ7ZT09bnVsbD8oJEcoZCxjKSxjLnRoJiYoZT1jLnRoLkhDLGUhPS0xJiZjLnRoWzJdJiZjLnRoWzNdWzBdIT0iJHQiJiZaRyhkLGMuc2gsZSkpLGMub2kucmgmJktGKGQsNSwic3R5bGUiLCJkaXNwbGF5Iiwibm9uZSIsITApLGU9ZC5pZCgpLGM9KGMudGhbMV0mMTYpIT0wLGEudGg/KGEucWgrPU1GKGQsYywhMCksYS50aFtlXT1iKTphLnFoKz1NRihkLGMsITEpKTplLl9fbmFycm93X3N0cmF0ZWd5IT0iTkFSUk9XX1BBVEgiJiYoYy5vaS5yaCYmS0YoZCw1LCJzdHlsZSIsImRpc3BsYXkiLCJub25lIiwhMCksZC5hcHBseShlKSl9fTtORz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5lbGVtZW50O2I9Yi50YWc7YiE9bnVsbCYmYS5xaCE9bnVsbCYmZD09bnVsbCYmKGM9Yy50aCwoY1sxXSYxNik9PTAmJihjWzFdJjgpPT0wJiYoYS5xaCs9ckFhKGIpKSl9OwpLRz1mdW5jdGlvbihhLGIsYyl7Y0JhKGEueGgsYixjKTtyZXR1cm4gYi5fX2pzdGNhY2hlfTtFQmE9ZnVuY3Rpb24oYSl7dGhpcy5tZXRob2Q9YTt0aGlzLnJoPXRoaXMucWg9MH07CkhCYT1mdW5jdGlvbigpe2lmKCFGQmEpe0ZCYT0hMDt2YXIgYT1CRy5wcm90b3R5cGUsYj1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IEVCYShjKX07RkcuJGE9YihhLk5MKTtGRy4kYz1iKGEuZU0pO0ZHLiRkaD1iKGEubU0pO0ZHLiRkYz1iKGEubk0pO0ZHLiRkZD1iKGEub00pO0ZHLmRpc3BsYXk9YihhLmtIKTtGRy4kZT1iKGEuQU0pO0ZHWyJmb3IiXT1iKGEuTE0pO0ZHLiRmaz1iKGEuTU0pO0ZHLiRnPWIoYS5rTik7RkcuJGlhPWIoYS5CTik7RkcuJGljPWIoYS5DTik7RkcuJGlmPWIoYS5rSCk7RkcuJG89YihhLkRPKTtGRy4kcj1iKGEublApO0ZHLiRzaz1iKGEuUlApO0ZHLiRzPWIoYS5BaCk7RkcuJHQ9YihhLmdRKTtGRy4kdT1iKGEub1EpO0ZHLiR1YT1iKGEuclEpO0ZHLiR1YWU9YihhLnNRKTtGRy4kdWU9YihhLnRRKTtGRy4kdXA9YihhLnVRKTtGR1sidmFyIl09YihhLnZRKTtGRy4kdnM9YihhLndRKTtGRy4kYy5xaD0xO0ZHLmRpc3BsYXkucWg9MTtGRy4kaWYucWg9MTtGRy4kc2sucWg9CjE7RkdbImZvciJdLnFoPTQ7RkdbImZvciJdLnJoPTI7RkcuJGZrLnFoPTQ7RkcuJGZrLnJoPTI7RkcuJHMucWg9NDtGRy4kcy5yaD0zO0ZHLiR1LnFoPTM7RkcuJHVlLnFoPTM7RkcuJHVwLnFoPTM7dUYucnVudGltZT1aemE7dUYuYW5kPXhBYTt1Ri5iaWRpQ3NzRmxpcD1fLlJGO3VGLmJpZGlEaXI9REFhO3VGLmJpZGlFeGl0RGlyPUVBYTt1Ri5iaWRpTG9jYWxlRGlyPUdCYTt1Ri51cmw9UkFhO3VGLnVybFRvU3RyaW5nPVRBYTt1Ri51cmxQYXJhbT1TQWE7dUYuaGFzVXJsUGFyYW09S0FhO3VGLmJpbmQ9Xy5TRjt1Ri5kZWJ1Zz1HQWE7dUYuZ2U9SEFhO3VGLmd0PUlBYTt1Ri5sZT1MQWE7dUYubHQ9TUFhO3VGLmhhcz1KQWE7dUYuc2l6ZT1PQWE7dUYucmFuZ2U9TkFhO3VGLnN0cmluZz1QQWE7dUZbImludCJdPVFBYX19OwpzQmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vaS5lbGVtZW50O2lmKCFifHwhYi5wYXJlbnROb2RlfHxiLnBhcmVudE5vZGUuX19uYXJyb3dfc3RyYXRlZ3khPSJOQVJST1dfUEFUSCJ8fGIuX19uYXJyb3dfc3RyYXRlZ3kpcmV0dXJuITA7Zm9yKGI9MDtiPGEucWgubGVuZ3RoO2IrPTIpe2xldCBjPWEucWhbYl07aWYoYz09ImZvciJ8fGM9PSIkZmsiJiZiPj1hLnhoKXJldHVybiEwfXJldHVybiExfTtfLmJIPWZ1bmN0aW9uKGEsYil7dGhpcy5yaD1hO3RoaXMuc2g9bmV3IHNGO3RoaXMuc2gucmg9dGhpcy5yaC5zaDt0aGlzLnFoPW51bGw7dGhpcy50aD1ifTtfLmNIPWZ1bmN0aW9uKGEsYixjKXthLnNoLnFoW3VHKGEucmgsYS50aCkuYXJnc1tiXV09Y307ZEg9ZnVuY3Rpb24oYSxiKXtfLmJILmNhbGwodGhpcyxhLGIpfTtfLmVIPWZ1bmN0aW9uKGEsYil7Xy5iSC5jYWxsKHRoaXMsYSxiKX07Cl8uSUJhPWZ1bmN0aW9uKGEsYixjKXtpZighYXx8IWJ8fHR5cGVvZiBjIT09Im51bWJlciIpcmV0dXJuIG51bGw7Yz1NYXRoLnBvdygyLC1jKTt2YXIgZD1hLmZyb21MYXRMbmdUb1BvaW50KGIpO3JldHVybiBfLmpFKGEuZnJvbVBvaW50VG9MYXRMbmcobmV3IF8uYm8oZC54K2MsZC55KSksYil9O18uZkg9ZnVuY3Rpb24oYSl7cmV0dXJuIGE+NDA/TWF0aC5yb3VuZChhLzIwKToyfTtfLmhIPWZ1bmN0aW9uKGEpe2E9Xy5PdihhKTt2YXIgYj1uZXcgXy5nSDtfLmloKGIsMyxhKTtyZXR1cm4gYn07Xy5pSD1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikuc3R5bGU7cmV0dXJuIHR5cGVvZiBFbGVtZW50IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBFbGVtZW50P3dpbmRvdyYmd2luZG93LmdldENvbXB1dGVkU3R5bGU/d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSwiIil8fGI6YS5zdHlsZTpifTsKXy5qSD1mdW5jdGlvbihhKXthLl9fZ21fdGlja2V0X198fChhLl9fZ21fdGlja2V0X189MCk7cmV0dXJuKythLl9fZ21fdGlja2V0X199O18ua0g9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PWEuX19nbV90aWNrZXRfX307S0JhPWZ1bmN0aW9uKGEsYixjKXtKQmEoYS5xaCwoKT0+e2Iuc3JjPWN9KX07Xy5sSD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IExCYShuZXcgTUJhKGEpKX07UEJhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjthLnFoPDEyJiYoYj1OQmEoYSkpOykrK2EucWgsT0JhKGEsYlswXSxiWzFdKX07UUJhPWZ1bmN0aW9uKGEpe2Eucmh8fChhLnJoPV8uTUUoKCk9PnthLnJoPTA7UEJhKGEpfSkpfTtOQmE9ZnVuY3Rpb24oYSl7YT1hLlZpO3ZhciBiPSIiO2ZvcihiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSlicmVhaztpZighYilyZXR1cm4gbnVsbDt2YXIgYz1hW2JdO2RlbGV0ZSBhW2JdO3JldHVybiBjfTsKT0JhPWZ1bmN0aW9uKGEsYixjKXthLnNoLmxvYWQoYixkPT57LS1hLnFoO1FCYShhKTtjKGQpfSl9O1JCYT1mdW5jdGlvbigpe3ZhciBhO3JldHVybiBiPT57dmFyIGM9RGF0ZS5ub3coKTtiJiYoYT1jKzIwKTtyZXR1cm4gYzxhfX07SkJhPWZ1bmN0aW9uKGEsYil7YS5WaS5wdXNoKGIpO2EucWh8fChiPWEuRUItKERhdGUubm93KCktYS5yaCksYS5xaD1fLkxFKGEsYS5yZXN1bWUsTWF0aC5tYXgoYiwwKSkpfTtUQmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWN8fHt9O2M9Xy5LRSgpO3ZhciBlPWEuZ21faWQ7YS5fX3NyY19fPWI7dmFyIGY9Yy5yaCxnPV8uakgoYSk7YS5nbV9pZD1jLnFoLmxvYWQobmV3IF8ubUgoYiksaD0+e2Z1bmN0aW9uIGsoKXtpZihfLmtIKGEsZykpe3ZhciBtPSEhaCxwPW0mJm5ldyBfLmdvKF8uSkUoaC53aWR0aCksXy5KRShoLmhlaWdodCkpfHxudWxsO1NCYShhLGIsbSxwLGQpfX1hLmdtX2lkPW51bGw7ZC5tRD9rKCk6SkJhKGYsayl9KTtlJiZjLnFoLmNhbmNlbChlKX07ClNCYT1mdW5jdGlvbihhLGIsYyxkLGUpe2MmJihfLmptKGUub3BhY2l0eSkmJl8uWUUoYSxlLm9wYWNpdHkpLGEuc3JjIT09YiYmKGEuc3JjPWIpLF8uUXAoYSxlLnNpemV8fGQpLGEuaW1hZ2VTaXplPWQsZS5XdSYmKGEuY29tcGxldGU/ZS5XdShiLGEpOmEub25sb2FkPSgpPT57ZS5XdShiLGEpO2Eub25sb2FkPW51bGx9KSl9OwpfLm5IPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1lfHx7fTt2YXIgZj17c2l6ZTpkLFd1OmUuV3UsSU86ZS5JTyxtRDplLm1ELG9wYWNpdHk6ZS5vcGFjaXR5fTtjPV8udncoImltZyIsYixjLGQsITApO2MuYWx0PSIiO2MmJihjLnNyYz1fLllBKTtfLlRwKGMpO2MuaW1hZ2VGZXRjaGVyT3B0cz1mO2EmJlRCYShjLGEsZik7Xy5UcChjKTtlLmFRP18ucXcoYyxlLmFRKTooYy5zdHlsZS5ib3JkZXI9IjBweCIsYy5zdHlsZS5wYWRkaW5nPSIwcHgiLGMuc3R5bGUubWFyZ2luPSIwcHgiKTtiJiYoYi5hcHBlbmRDaGlsZChjKSxhPWUuc2hhcGV8fHt9LGU9YS5jb29yZHN8fGEuY29vcmQpJiYoZD0iZ21pbWFwIitVQmErKyxjLnNldEF0dHJpYnV0ZSgidXNlbWFwIiwiIyIrZCksZj1fLnJ3KGMpLmNyZWF0ZUVsZW1lbnQoIm1hcCIpLGYuc2V0QXR0cmlidXRlKCJuYW1lIixkKSxmLnNldEF0dHJpYnV0ZSgiaWQiLGQpLGIuYXBwZW5kQ2hpbGQoZiksYj1fLnJ3KGMpLmNyZWF0ZUVsZW1lbnQoImFyZWEiKSwKYi5zZXRBdHRyaWJ1dGUoImxvZyIsIm1pdyIpLGIuc2V0QXR0cmlidXRlKCJjb29yZHMiLGUuam9pbigiLCIpKSxiLnNldEF0dHJpYnV0ZSgic2hhcGUiLF8ubG0oYS50eXBlLCJwb2x5IikpLGYuYXBwZW5kQ2hpbGQoYikpO3JldHVybiBjfTtfLm9IPWZ1bmN0aW9uKGEsYil7VEJhKGEsYixhLmltYWdlRmV0Y2hlck9wdHMpfTtfLnBIPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe2c9Z3x8e307Yj1fLnZ3KCJkaXYiLGIsZSxkKTtiLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO18udHcoYik7YT1fLm5IKGEsYixjP25ldyBfLmJvKC1jLngsLWMueSk6Xy5wbyxmLGcpO2Euc3R5bGVbIi1raHRtbC11c2VyLWRyYWciXT0ibm9uZSI7YS5zdHlsZVsibWF4LXdpZHRoIl09Im5vbmUiO3JldHVybiBifTsKXy5xSD1mdW5jdGlvbihhLGIsYyxkKXthJiZiJiZfLlFwKGEsYik7YT1hLmZpcnN0Q2hpbGQ7YyYmXy51dyhhLG5ldyBfLmJvKC1jLngsLWMueSkpO2EuaW1hZ2VGZXRjaGVyT3B0cy5zaXplPWQ7YS5pbWFnZVNpemUmJl8uUXAoYSxkfHxhLmltYWdlU2l6ZSl9O3JIPWZ1bmN0aW9uKGEpe3RoaXMubGVuZ3RoPWEubGVuZ3RofHxhO2ZvcihsZXQgYj0wO2I8dGhpcy5sZW5ndGg7YisrKXRoaXNbYl09YVtiXXx8MH07c0g9ZnVuY3Rpb24oYSl7dGhpcy5sZW5ndGg9YS5sZW5ndGh8fGE7Zm9yKGxldCBiPTA7Yjx0aGlzLmxlbmd0aDtiKyspdGhpc1tiXT1hW2JdfHwwfTtfLnRIPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoMyl9O18udUg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZsb2F0NjRBcnJheSg0KX07Xy52SD1mdW5jdGlvbigpe3JldHVybiBuZXcgRmxvYXQ2NEFycmF5KDE2KX07CnhIPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVZCYShkLFdCYSxYQmEpO2Q9SlNPTi5wYXJzZShiLmpqKCkpO2M9d0goZCxlLGMpO18uS3YoYixuZXcgYShkKSk7cmV0dXJuIGN9O1lCYT1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIj9NYXRoLnJvdW5kKGEqMUU3KS8xRTc6YX07ClZCYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlthXTtpZih0eXBlb2YgZD09PSJvYmplY3QiKXJldHVybiBkO3ZhciBlPW5ldyBaQmE7YlthXT1lO2E9MTtmb3IoZD1uZXcgJEJhKGQpOyFkLmRvbmUoKTspe2ErPXlIKGQpfHwwO2QuZG9uZSgpO3ZhciBmPWQuVmguY2hhckNvZGVBdChkLm5leHQrKyktNjUsZz0oZiYxKT4wO2xldCBrPShmJjgpPjA7dmFyIGg9dm9pZCAwO2xldCBtO2YmND9tPVZCYSh5SChkKSxiLGMpOmYmMiYmKGg9eUgoZCksaD1jW2hdKTtmPWU7Zz1uZXcgYUNhKGErKyxnLGssaCxtKTtmLmZpZWxkcy5zZXQoZy5zaCxnKTtkLmRvbmUoKXx8ZC5WaC5jaGFyQ29kZUF0KGQubmV4dCkhPT00NHx8ZC5uZXh0Kyt9cmV0dXJuIGV9Owp5SD1mdW5jdGlvbihhKXthLmRvbmUoKTt2YXIgYj12b2lkIDA7Zm9yKHZhciBjPWEuVmguY2hhckNvZGVBdChhLm5leHQpOyFhLmRvbmUoKSYmYz49NDgmJmM8PTU3O2M9YS5WaC5jaGFyQ29kZUF0KCsrYS5uZXh0KSljLT00OCxiPWI/YioxMCtjOmM7cmV0dXJuIGJ9O3dIPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmxlbmd0aDtpZighZClyZXR1cm4hMDt2YXIgZT1hW2QtMV0sZj0hMDtpZihlJiZ0eXBlb2YgZT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShlKSl7ZC0tO2Zvcih2YXIgZyBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWJDYShOdW1iZXIoZyksZVtnXSxiLGMpO2g9PW51bGw/ZGVsZXRlIGVbZ106KGY9ITEsZVtnXT1oKX19ZT0xO2c9MDtmb3IoaD0wO2g8ZDtoPWUrKyl7bGV0IGs9YkNhKGUsYVtoXSxiLGMpO2FbaF09aztrIT1udWxsJiYoZz1lKX1mJiYoYS5sZW5ndGg9Zyk7cmV0dXJuIWEubGVuZ3RofTsKYkNhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9PW51bGwpcmV0dXJuIGI7YT1jLmdldChhKTtpZighYSlyZXR1cm4gYjtpZihhLnRoKXtpZighQXJyYXkuaXNBcnJheShiKSlyZXR1cm4gYjtpZighYi5sZW5ndGgpcmV0dXJuIG51bGw7aWYoYS5yaCl7aWYoZCYyKWZvcihkPTA7ZDxiLmxlbmd0aDtkKyspYltkXT1ZQmEoYltkXSl9ZWxzZSBpZihhLm1lc3NhZ2UpZm9yKGxldCBlIG9mIGIpQXJyYXkuaXNBcnJheShlKSYmd0goZSxhLm1lc3NhZ2UsZCl9ZWxzZSBpZihhLnJoKXtpZihkJjImJihiPVlCYShiKSksZCYxJiZiPT09KGEucWh8fDApKXJldHVybiBudWxsfWVsc2UgaWYoYS5tZXNzYWdlKXtpZigoIUFycmF5LmlzQXJyYXkoYil8fHdIKGIsYS5tZXNzYWdlLGQpKSYmZCYxKXJldHVybiBudWxsfWVsc2UgZCYxJiYoYj1jQ2EoYixhLnFoKSk7cmV0dXJuIGJ9OwpjQ2E9ZnVuY3Rpb24oYSxiKXtzd2l0Y2godHlwZW9mIGIpe2Nhc2UgInVuZGVmaW5lZCI6cmV0dXJuIGF8fG51bGw7Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIGE/bnVsbDphO2Nhc2UgInN0cmluZyI6cmV0dXJuIGE9PT1iP251bGw6YTtjYXNlICJudW1iZXIiOnJldHVybiBhPT09Ynx8YT09PVN0cmluZyhiKT9udWxsOmE7ZGVmYXVsdDpfLnRlKGIsdm9pZCAwKX19O3pIPWZ1bmN0aW9uKGEsYil7YT1hLnRvRml4ZWQoYik7Zm9yKGI9YS5sZW5ndGgtMTtiPjA7Yi0tKXt2YXIgYz1hLmNoYXJDb2RlQXQoYik7aWYoYyE9PTQ4KWJyZWFrfXJldHVybiBhLnN1YnN0cmluZygwLGM9PT00Nj9iOmIrMSl9OwpkQ2E9ZnVuY3Rpb24oYSl7aWYoIV8uZEUoYSwyKXx8IV8uZEUoYSwzKSlyZXR1cm4gbnVsbDt2YXIgYj1bekgoXy5PZyhhLDMpLDcpLHpIKF8uT2coYSwyKSw3KV07c3dpdGNoKGEuZ2V0VHlwZSgpKXtjYXNlIDA6Yi5wdXNoKE1hdGgucm91bmQoYS5IbSgpKSsiYSIpO18uZEUoYSw3KSYmYi5wdXNoKHpIKF8uT2coYSw3KSwxKSsieSIpO2JyZWFrO2Nhc2UgMTppZighXy5kRShhLDQpKXJldHVybiBudWxsO2IucHVzaChTdHJpbmcoTWF0aC5yb3VuZChfLk9nKGEsNCkpKSsibSIpO2JyZWFrO2Nhc2UgMjppZighXy5kRShhLDYpKXJldHVybiBudWxsO2IucHVzaCh6SChfLk9nKGEsNiksMikrInoiKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXZhciBjPWEuZ2V0SGVhZGluZygpO2MhPT0wJiZiLnB1c2goekgoYywyKSsiaCIpO2M9YS5nZXRUaWx0KCk7YyE9PTAmJmIucHVzaCh6SChjLDIpKyJ0Iik7YT1hLmZuKCk7YSE9PTAmJmIucHVzaCh6SChhLDIpKyJyIik7cmV0dXJuIkAiK2Iuam9pbigiLCIpfTsKQkg9ZnVuY3Rpb24oYSxiLGMpe2Euc2gucHVzaChjP0FIKGIsITApOmIpfTsKXy53Q2E9ZnVuY3Rpb24oYSxiLGMpe2EucmVzZXQoKTthLnFoPW5ldyBfLkNIO18uS3YoYS5xaCxiKTtjJiZfLlFmKGEucWgsNCk7Xy5RZihhLnFoLDkpO2M9ITA7Yj0hMTtpZihfLlNmKGEucWgsXy5ESCw0KSl7dmFyIGQ9Xy53ZyhhLnFoLF8uREgsNCk7aWYoXy5TZihkLEVILDQpKXtjPV8ud2coZCxFSCw0KTtCSChhLCJkaXIiLCExKTtkPV8uWWYoYyxGSCwxKTtmb3IodmFyIGU9MDtlPGQ7ZSsrKXt2YXIgZj1fLkd2KGMsMSxGSCxlKTtpZihfLlNmKGYsXy5HSCwxKSl7Zj1fLndnKGYsXy5HSCwxKTt2YXIgZz1mLmdldFF1ZXJ5KCk7Xy5RZihmLDIpO2Y9Zy5sZW5ndGg9PT0wfHwvXlsnQF18JTQwLy50ZXN0KGcpfHxlQ2EudGVzdChnKT8iJyIrZysiJyI6Z31lbHNlIGlmKF8uU2YoZixISCwyKSl7Zz1fLkcoZixISCwyKTtsZXQgaD1bekgoXy5PZyhnLDIpLDcpLHpIKF8uT2coZywxKSw3KV07Xy5kRShnLDMpJiZnLkhtKCkhPT0wJiZoLnB1c2goTWF0aC5yb3VuZChnLkhtKCkpKTtnPQpoLmpvaW4oIiwiKTtfLlFmKGYsMik7Zj1nfWVsc2UgZj0iIjtCSChhLGYsITApfWM9ITF9ZWxzZSBpZihfLlNmKGQsZkNhLDIpKWM9Xy53ZyhkLGZDYSwyKSxCSChhLCJzZWFyY2giLCExKSxCSChhLGdDYShjLmdldFF1ZXJ5KCkpLCEwKSxfLlFmKGMsMSksYz0hMTtlbHNlIGlmKF8uU2YoZCxfLkdILDMpKWM9Xy53ZyhkLF8uR0gsMyksQkgoYSwicGxhY2UiLCExKSxCSChhLGdDYShjLmdldFF1ZXJ5KCkpLCEwKSxjPV8uUWYoYywyKSxfLlFmKGMsMyksYz0hMTtlbHNlIGlmKF8uU2YoZCxoQ2EsOCkpe2lmKGQ9Xy53ZyhkLGhDYSw4KSxCSChhLCJjb250cmliIiwhMSksXy5wdShkLDIpKWlmKEJIKGEsXy5IKGQsMiksITEpLF8uUWYoZCwyKSxfLnB1KGQsNCkpQkgoYSwicGxhY2UiLCExKSxCSChhLF8uSChkLDQpLCExKSxfLlFmKGQsNCk7ZWxzZSBpZihfLklnKGQsMSkhPW51bGwpZm9yKGU9Xy5QZyhkLDEpLGY9MDtmPElILmxlbmd0aDsrK2YpaWYoSUhbZl0uUnY9PT1lKXtCSChhLElIW2ZdLlJ3LAohMSk7Xy5RZihkLDEpO2JyZWFrfX1lbHNlIF8uU2YoZCxpQ2EsMjYpP0JIKGEsImNvbnRyaWIiLCExKTpfLlNmKGQsakNhLDE0KT8oQkgoYSwicmV2aWV3cyIsITEpLGM9ITEpOl8uU2YoZCxrQ2EsMjcpP2I9ITA6Xy5TZihkLGxDYSw5KXx8Xy5TZihkLG1DYSw2KXx8Xy5TZihkLG5DYSwxMyl8fF8uU2YoZCxvQ2EsNyl8fF8uU2YoZCxwQ2EsMTUpfHxfLlNmKGQscUNhLDIxKXx8Xy5TZihkLHJDYSwxMSl8fF8uU2YoZCxzQ2EsMTApfHxfLlNmKGQsdENhLDE2KXx8Xy5TZihkLF8uSkgsMTcpfHxfLlNmKGQsdUNhLDI5KX1lbHNle2lmKGQ9Xy5TZihhLnFoLF8uS0gsMykpZD1fLkcoYS5xaCxfLktILDMpLGQ9Xy5QZyhkLDYsMSkhPT0xO2lmKGQpe2M9Xy5HKGEucWgsXy5LSCwzKTtjPV8uUGcoYyw2LDEpO0xILmxlbmd0aD4wfHwoTEhbMF09bnVsbCxMSFsxXT1uZXcgTUgoMSwiZWFydGgiLCJFYXJ0aCIpLExIWzJdPW5ldyBNSCgyLCJtb29uIiwiTW9vbiIpLExIWzNdPW5ldyBNSCgzLCJtYXJzIiwKIk1hcnMiKSxMSFs1XT1uZXcgTUgoNSwibWVyY3VyeSIsIk1lcmN1cnkiKSxMSFs2XT1uZXcgTUgoNiwidmVudXMiLCJWZW51cyIpLExIWzRdPW5ldyBNSCg0LCJpc3MiLCJJbnRlcm5hdGlvbmFsIFNwYWNlIFN0YXRpb24iKSxMSFsxMV09bmV3IE1IKDExLCJjZXJlcyIsIkNlcmVzIiksTEhbMTJdPW5ldyBNSCgxMiwicGx1dG8iLCJQbHV0byIpLExIWzE3XT1uZXcgTUgoMTcsInZlc3RhIiwiVmVzdGEiKSxMSFsxOF09bmV3IE1IKDE4LCJpbyIsIklvIiksTEhbMTldPW5ldyBNSCgxOSwiZXVyb3BhIiwiRXVyb3BhIiksTEhbMjBdPW5ldyBNSCgyMCwiZ2FueW1lZGUiLCJHYW55bWVkZSIpLExIWzIxXT1uZXcgTUgoMjEsImNhbGxpc3RvIiwiQ2FsbGlzdG8iKSxMSFsyMl09bmV3IE1IKDIyLCJtaW1hcyIsIk1pbWFzIiksTEhbMjNdPW5ldyBNSCgyMywiZW5jZWxhZHVzIiwiRW5jZWxhZHVzIiksTEhbMjRdPW5ldyBNSCgyNCwidGV0aHlzIiwiVGV0aHlzIiksTEhbMjVdPW5ldyBNSCgyNSwKImRpb25lIiwiRGlvbmUiKSxMSFsyNl09bmV3IE1IKDI2LCJyaGVhIiwiUmhlYSIpLExIWzI3XT1uZXcgTUgoMjcsInRpdGFuIiwiVGl0YW4iKSxMSFsyOF09bmV3IE1IKDI4LCJpYXBldHVzIiwiSWFwZXR1cyIpLExIWzI5XT1uZXcgTUgoMjksImNoYXJvbiIsIkNoYXJvbiIpKTtpZihjPUxIW2NdfHxudWxsKUJIKGEsInNwYWNlIiwhMSksQkgoYSxjLm5hbWUsITApO2M9Xy53ZyhhLnFoLF8uS0gsMyk7Xy5RZihjLDYpO2M9ITF9fWQ9Xy53ZyhhLnFoLF8uS0gsMyk7ZT0hMTtfLlNmKGQsXy5OSCwyKSYmKGY9ZENhKF8uRyhkLF8uTkgsMikpLGYhPT1udWxsJiYoYS5zaC5wdXNoKGYpLGU9ITApLF8uUWYoZCwyKSk7IWUmJmMmJmEuc2gucHVzaCgiQCIpO18uUGcoYS5xaCwxKT09PTEmJihhLnRoLmFtPSJ0IixfLlFmKGEucWgsMSkpO18uUWYoYS5xaCwyKTtfLlNmKGEucWgsXy5LSCwzKSYmKGM9Xy53ZyhhLnFoLF8uS0gsMyksZD1fLlBnKGMsMSksZCE9PTAmJmQhPT0zfHxfLlFmKGMsCjMpKTt4SChfLkNILGEucWgsMiwwKTtpZihjPV8uU2YoYS5xaCxfLkRILDQpKWM9Xy5HKGEucWgsXy5ESCw0KSxjPV8uU2YoYyxFSCw0KTtpZihjKXtjPV8ud2coYS5xaCxfLkRILDQpO2M9Xy53ZyhjLEVILDQpO2Q9ITE7ZT1fLllmKGMsRkgsMSk7Zm9yKGY9MDtmPGU7ZisrKWlmKGc9Xy5HdihjLDEsRkgsZiksIXhIKEZILGcsMSwyMikpe2Q9ITA7YnJlYWt9ZHx8Xy5RZihjLDEpfXhIKF8uQ0gsYS5xaCwxLDApOyhjPV8uUXYoYS5xaCx2Q2EoKSkpJiYoYS50aC5kYXRhPWMpO2ImJkJIKGEsInNob3J0bGlzdCIsITEpO2I9YS50aC5kYXRhO2RlbGV0ZSBhLnRoLmRhdGE7Yz1PYmplY3Qua2V5cyhhLnRoKTtjLnNvcnQoKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKWU9Y1tkXSxhLnNoLnB1c2goZSsiPSIrQUgoYS50aFtlXSkpO2ImJmEuc2gucHVzaCgiZGF0YT0iK0FIKGIsITEpKTthLnNoLmxlbmd0aD4wJiYoYj1hLnNoLmxlbmd0aC0xLGEuc2hbYl09PT0iQCImJmEuc2guc3BsaWNlKGIsCjEpKTtyZXR1cm4gYS5zaC5sZW5ndGg+MD8iLyIrYS5zaC5qb2luKCIvIik6IiJ9O0FIPWZ1bmN0aW9uKGEsYil7YiYmKGI9Xy5BamEudGVzdChiRihhKSkpO2ImJihhKz0iXHUyMDJkIik7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7eENhLmxhc3RJbmRleD0wO2E9YS5yZXBsYWNlKHhDYSxkZWNvZGVVUklDb21wb25lbnQpO3lDYS5sYXN0SW5kZXg9MDtyZXR1cm4gYT1hLnJlcGxhY2UoeUNhLCIrIil9O2dDYT1mdW5jdGlvbihhKXtyZXR1cm4vXlsnQF18JTQwLy50ZXN0KGEpPyInIithKyInIjphfTtfLkFDYT1mdW5jdGlvbihhLGIpe2E9YitfLndDYShuZXcgXy56Q2EsYSwhMSk7cmV0dXJuIGE9Xy5GaihfLmt6YShhLCJzb3VyY2UiKSwic291cmNlIiwiYXBpdjMiKX07Cl8uUEg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IF8uT0g7aWYoYS5zdWJzdHJpbmcoMCwyKT09IkY6Iil7dmFyIGM9YS5zdWJzdHJpbmcoMik7Xy5raChiLDEsMyk7Xy5paChiLDIsYyl9ZWxzZSBpZihhLm1hdGNoKCJeWy1fQS1aYS16MC05XXsyMX1bQVFnd10kIikpXy5raChiLDEsMiksXy5paChiLDIsYSk7ZWxzZSB0cnl7Yz1fLldjKGEpLGI9QkNhKGMpfWNhdGNoKGQpe31iLmdldElkKCk9PSIiJiYoXy5raChiLDEsMiksXy5paChiLDIsYSkpO3JldHVybiBifTsKXy5EQ2E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IF8uQ0g7dmFyIGY9Xy53ZyhlLF8uS0gsMyk7Zj1fLmtoKGYsMSwxKTt2YXIgZz1fLndnKGYsXy5OSCwyKTtnPV8ua2goZywxLDApLnNldEhlYWRpbmcoYS5oZWFkaW5nKS5zZXRUaWx0KDkwK2EucGl0Y2gpO3ZhciBoPWIubGF0KCk7Zz1fLkF1KGcsMyxoKTtiPV8uZUYoZyxiLmxuZygpKTtfLkF1KGIsNyxfLnVsKE1hdGguYXRhbihNYXRoLnBvdygyLDEtYS56b29tKSouNzUpKjIpKTthPV8ud2coZixfLkNDYSwzKTtpZihjKXtjPV8uUEgoYyk7YTpzd2l0Y2goXy5QZyhjLDEpKXtjYXNlIDM6Yj00O2JyZWFrIGE7Y2FzZSAxMDpiPTEwO2JyZWFrIGE7ZGVmYXVsdDpiPTB9YT1fLmtoKGEsMixiKTtjPWMuZ2V0SWQoKTtfLmloKGEsMSxjKX1yZXR1cm4gXy5BQ2EoZSxkKX07Cl8uRUNhPWZ1bmN0aW9uKGEsYil7aWYoIWEuaXRlbXNbYl0pe2xldCBjPWEuaXRlbXNbMF0uc2VnbWVudDthLml0ZW1zW2JdPWEuaXRlbXNbYl18fHtzZWdtZW50Om5ldyBfLmJvKGMueCthLmdyaWQueCpiLGMueSthLmdyaWQueSpiKX19fTtfLlFIPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09NXx8YT09PTN8fGE9PT02fHxhPT09NH07Xy5SSD1mdW5jdGlvbihhKXtpZihhLnR5cGUuc3RhcnRzV2l0aCgidG91Y2giKSl7bGV0IGI9YS5jaGFuZ2VkVG91Y2hlcztyZXR1cm4oYT1hLnRvdWNoZXM/LlswXT8/Yj8uWzBdKT97Y2xpZW50WDphLmNsaWVudFgsY2xpZW50WTphLmNsaWVudFl9Om51bGx9cmV0dXJue2NsaWVudFg6YS5jbGllbnRYLGNsaWVudFk6YS5jbGllbnRZfX07Cl8uU0g9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IF8uZ0IsYz1fLkl3KF8uSHcoXy5HeChiKSwyKSwic3Z2Iik7dmFyIGQ9Xy5aZihjLDQsXy51eCk7ZD1fLmloKGQsMSwiY2JfY2xpZW50Iik7dmFyIGU9YS5nZXQoImNsaWVudCIpfHwiYXBpdjMiO2Quc2V0VmFsdWUoZSk7ZD1bImRlZmF1bHQiXTtpZihlPWEuZ2V0KCJzdHJlZXRWaWV3Q29udHJvbE9wdGlvbnMiKSlpZihkPV8uTW0oXy5IbShfLkZtKF8uQXQpLDEpKShlLnNvdXJjZXMpfHxbXSxkLmluY2x1ZGVzKCJvdXRkb29yIikpdGhyb3cgXy5BbSgiT1VURE9PUiBzb3VyY2Ugbm90IHN1cHBvcnRlZCBvbiBTdHJlZXRWaWV3Q29udHJvbE9wdGlvbnMiKTtjPV8uWmYoYyw0LF8udXgpO2M9Xy5paChjLDEsImNjIik7ZT0iITFtMyExZTIhMmIxITNlMiI7ZC5pbmNsdWRlcygiZ29vZ2xlIil8fChlKz0iITFtMyExZTEwITJiMSEzZTIiKTtjLnNldFZhbHVlKGUpO2M9Xy5KbC5yaCgpLnRoKCk7Xy56eChfLkp4KGIpLGMpO18uUHcoXy5DeChfLkp4KGIpKSwKNjgpO2I9e1NvOmJ9O2M9KGEuT3U/MDphLmdldCgidGlsdCIpKT9hLmdldCgibWFwSGVhZGluZyIpfHwwOnZvaWQgMDtyZXR1cm4gbmV3IF8ubkIoXy5UeChhLnNoKSxudWxsLF8uWXcoKT4xLF8uWHgoYyksbnVsbCxiLGMpfTtfLlVIPWZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIG5ldyBfLmJvKDAsMCk7aWYoXy5OcC5CaCYmIV8uc3YoXy5OcC52ZXJzaW9uLDUyOSl8fF8uTnAuRmgmJiFfLnN2KF8uTnAudmVyc2lvbiwxMikpe2lmKGE9RkNhKGEpLGIpe2xldCBjPUZDYShiKTthLngtPWMueDthLnktPWMueX19ZWxzZSBhPVRIKGEsYik7IWImJmEmJl8udGxhKCkmJiFfLnN2KF8uTnAudGgsNCwxKSYmKGEueC09d2luZG93LnBhZ2VYT2Zmc2V0LGEueS09d2luZG93LnBhZ2VZT2Zmc2V0KTtyZXR1cm4gYX07CkZDYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IF8uYm8oMCwwKSxjPV8uUHAoKS50cmFuc2Zvcm18fCIiLGQ9Xy5ydyhhKS5kb2N1bWVudEVsZW1lbnQsZT1hO2EhPT1kOyl7Zm9yKDtlJiZlIT09ZCYmIWUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjKTspZT1lLnBhcmVudE5vZGU7aWYoIWUpcmV0dXJuIG5ldyBfLmJvKDAsMCk7YT1USChhLGUpO2IueCs9YS54O2IueSs9YS55O2lmKGE9YyYmZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGMpKWlmKGE9R0NhLmV4ZWMoYSkpe3ZhciBmPXBhcnNlRmxvYXQoYVsxXSk7bGV0IGc9ZS5vZmZzZXRXaWR0aC8yLGg9ZS5vZmZzZXRIZWlnaHQvMjtiLng9KGIueC1nKSpmK2c7Yi55PShiLnktaCkqZitoO2Y9Xy5KRShhWzNdKTtiLngrPV8uSkUoYVsyXSk7Yi55Kz1mfWE9ZTtlPWUucGFyZW50Tm9kZX1jPVRIKGQsbnVsbCk7Yi54Kz1jLng7Yi55Kz1jLnk7cmV0dXJuIG5ldyBfLmJvKE1hdGguZmxvb3IoYi54KSxNYXRoLmZsb29yKGIueSkpfTsKVEg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgXy5ibygwLDApO2lmKGE9PT1iKXJldHVybiBjO3ZhciBkPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yy54Kz1kLmxlZnQ7Yy55Kz1kLnRvcDthPV8uaUgoYSk7Yy54Kz1fLlpFKGEuYm9yZGVyTGVmdFdpZHRoKTtjLnkrPV8uWkUoYS5ib3JkZXJUb3BXaWR0aCk7YiYmKGI9VEgoYixudWxsKSxjLngtPWIueCxjLnktPWIueSk7cmV0dXJuIGN9O18uSENhPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Yi50ZXh0Q29udGVudD1hO2Iuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixgJHthfS5gKTtyZXR1cm4gYn07Cl8uSkNhPWZ1bmN0aW9uKC4uLmEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Zm9yKGxldCBjIG9mIGEpaWYoSUNhLmhhcyhjKSl7bGV0IHtrZXlUZXh0OmQsYXJpYUxhYmVsOmV9PUlDYS5nZXQoYyk7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJrYmQiKTthLnRleHRDb250ZW50PWQ7ZSYmYS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUpO2IuYXBwZW5kQ2hpbGQoYSl9cmV0dXJuIGJ9O18uVkg9ZnVuY3Rpb24oKXtyZXR1cm5be2Rlc2NyaXB0aW9uOiJNb3ZlIGxlZnQiLGJtOlszN119LHtkZXNjcmlwdGlvbjoiTW92ZSByaWdodCIsYm06WzM5XX0se2Rlc2NyaXB0aW9uOiJNb3ZlIHVwIixibTpbMzhdfSx7ZGVzY3JpcHRpb246Ik1vdmUgZG93biIsYm06WzQwXX0se2Rlc2NyaXB0aW9uOiJab29tIGluIixibTpbMTA3XX0se2Rlc2NyaXB0aW9uOiJab29tIG91dCIsYm06WzEwOV19XX07Cl8uV0g9ZnVuY3Rpb24oYT0hMSl7cmV0dXJuW3tkZXNjcmlwdGlvbjphPyJSb3RhdGUgY291bnRlci1jbG9ja3dpc2UiOiJSb3RhdGUgY2xvY2t3aXNlIixibTpbMTYsMzddfSx7ZGVzY3JpcHRpb246YT8iUm90YXRlIGNsb2Nrd2lzZSI6IlJvdGF0ZSBjb3VudGVyLWNsb2Nrd2lzZSIsYm06WzE2LDM5XX1dfTtfLlhIPWZ1bmN0aW9uKGE9ITEpe3JldHVyblt7ZGVzY3JpcHRpb246YT8iVGlsdCBkb3duIjoiVGlsdCB1cCIsYm06WzE2LDM4XX0se2Rlc2NyaXB0aW9uOmE/IlRpbHQgdXAiOiJUaWx0IGRvd24iLGJtOlsxNiw0MF19XX07CktDYT1mdW5jdGlvbihhLGIpe3JldHVybiJtYXAiPT09Yj9bLi4uXy5WSCgpLHtkZXNjcmlwdGlvbjoiSnVtcCBsZWZ0IGJ5IDc1JSIsYm06WzM2XX0se2Rlc2NyaXB0aW9uOiJKdW1wIHJpZ2h0IGJ5IDc1JSIsYm06WzM1XX0se2Rlc2NyaXB0aW9uOiJKdW1wIHVwIGJ5IDc1JSIsYm06WzMzXX0se2Rlc2NyaXB0aW9uOiJKdW1wIGRvd24gYnkgNzUlIixibTpbMzRdfSwuLi4oYS5Lcz9fLldIKCk6W10pLC4uLihhLkxzP18uWEgoKTpbXSldOiJtYXBfM2QiPT09Yj9bLi4uXy5WSCgpLC4uLl8uV0goITApLC4uLl8uWEgoITEpXTpfLlZIKCl9OwpMQ2E9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKSxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5Iik7Yi5hcHBlbmRDaGlsZChjKTtmb3IobGV0IHtkZXNjcmlwdGlvbjpkLGJtOmV9b2YgYS5xaCl7bGV0IGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTtmLmFwcGVuZENoaWxkKGUpO2YuYXBwZW5kQ2hpbGQoZCk7Yy5hcHBlbmRDaGlsZChmKX1hLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYil9O1lIPWZ1bmN0aW9uKCl7dGhpcy5xaD1uZXcgTUNhO3RoaXMucmg9bmV3IE5DYSh0aGlzLnFoKTtGemEodGhpcy5yaCxuZXcgT0NhKGE9PntQQ2EodGhpcyxhKX0se2JBOm5ldyBRQ2EseUE6YT0+e2ZvcihsZXQgYiBvZiBhKVBDYSh0aGlzLGIpfX0pKTtmb3IobGV0IGEgb2YgUkNhKXtsZXQgYj1TQ2EuaGFzKGEpPyExOnZvaWQgMDtLemEodGhpcy5yaCxhLGIpfXRoaXMuc2g9e319OwpQQ2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1EemEoYik7aWYoYyl7aWYoIVRDYXx8Yi5xaC50YXJnZXRFbGVtZW50LnRhZ05hbWUhPT0iSU5QVVQiJiZiLnFoLnRhcmdldEVsZW1lbnQudGFnTmFtZSE9PSJURVhUQVJFQSJ8fGIucWguZXZlbnRUeXBlIT09ImZvY3VzIil7dmFyIGQ9Yi5xaC5ldmVudDtkLnN0b3BQcm9wYWdhdGlvbiYmZC5zdG9wUHJvcGFnYXRpb24oKX10cnl7bGV0IGU9KGEuc2hbYy5uYW1lXXx8e30pW2IucWguZXZlbnRUeXBlXTtlJiZlKG5ldyBfLm9rKGIucWguZXZlbnQsYy5lbGVtZW50KSl9Y2F0Y2goZSl7dGhyb3cgZTt9fX07ClVDYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LGY9ITE7aWYoIV8uemwoZS5ib2R5LGIpJiYhYi5pc0Nvbm5lY3RlZCl7Zm9yKDtiLnBhcmVudEVsZW1lbnQ7KWI9Yi5wYXJlbnRFbGVtZW50O3ZhciBnPWIuc3R5bGUuZGlzcGxheTtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2UuYm9keS5hcHBlbmRDaGlsZChiKTtmPSEwfWEuZmlsbC5hcHBseShhLGMpO2EudGkoZnVuY3Rpb24oKXtmJiYoZS5ib2R5LnJlbW92ZUNoaWxkKGIpLGIuc3R5bGUuZGlzcGxheT1nKTtkKCl9KX07WENhPWZ1bmN0aW9uKGE9ZG9jdW1lbnQpe3ZhciBiPV8uaGIoYSk7cmV0dXJuIFZDYVtiXXx8KFZDYVtiXT1uZXcgV0NhKGEpKX07Xy5aSD1mdW5jdGlvbihhKXtyZXR1cm4gYS50aWNrPGEucWh9OwpfLllDYT1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTAsZD0wLGU9MDtmb3IobGV0IGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGY9dm9pZCAwO2Y9YVtnXTtpZihmIGluc3RhbmNlb2YgXy54cyl7Zj1mLmdldFBvc2l0aW9uKCk7aWYoIWYpY29udGludWU7Zj1uZXcgXy4kbShmKTtjKyt9ZWxzZSBpZihmIGluc3RhbmNlb2YgXy53dCl7Zj1mLmdldFBhdGgoKTtpZighZiljb250aW51ZTtmPWYuZ2V0QXJyYXkoKTtmPW5ldyBfLkRuKGYpO2QrK31lbHNlIGlmKGYgaW5zdGFuY2VvZiBfLnZ0KXtmPWYuZ2V0UGF0aHMoKTtpZighZiljb250aW51ZTtmPWYuZ2V0QXJyYXkoKS5tYXAoaD0+aC5nZXRBcnJheSgpKTtmPW5ldyBfLkVuKGYpO2UrK31lbHNlIGNvbnRpbnVlO2IucHVzaChmKX1yZXR1cm4gYS5sZW5ndGg9PT0xP2JbMF06IWN8fGR8fGU/Y3x8IWR8fGU/Y3x8ZHx8IWU/bmV3IF8uSW4oYik6bmV3IF8uSG4oYik6bmV3IF8uR24oYik6KGE9Yi5tYXAoZz0+Zy5nZXQoKSksbmV3IF8uRm4oYSkpfTsKXy5hRGE9ZnVuY3Rpb24oYSxiKXtiPWJ8fHt9O2IuY3Jvc3NPcmlnaW4/WkNhKGEsYik6JENhKGEsYil9OyRDYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBfLlVhLlhNTEh0dHBSZXF1ZXN0LGQ9Yi5icHx8KCgpPT57fSk7Yy5vcGVuKGIuY29tbWFuZHx8IkdFVCIsYSwhMCk7Yi5jb250ZW50VHlwZSYmYy5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGIuY29udGVudFR5cGUpO2Mub25yZWFkeXN0YXRlY2hhbmdlPSgpPT57Yy5yZWFkeVN0YXRlIT09NHx8KGMuc3RhdHVzPT09MjAwfHxjLnN0YXR1cz09PTIwNCYmYi5xUD9iRGEoYy5yZXNwb25zZVRleHQsYik6Yy5zdGF0dXM+PTUwMCYmYy5zdGF0dXM8NjAwP2QoMixudWxsKTpkKDAsbnVsbCkpfTtjLm9uZXJyb3I9KCk9PntkKDMsbnVsbCl9O2Muc2VuZChiLmRhdGF8fG51bGwpfTsKWkNhPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IF8uVWEuWE1MSHR0cFJlcXVlc3QsZD1iLmJwfHwoKCk9Pnt9KTtpZigid2l0aENyZWRlbnRpYWxzImluIGMpYy5vcGVuKGIuY29tbWFuZHx8IkdFVCIsYSwhMCk7ZWxzZSBpZih0eXBlb2YgXy5VYS5YRG9tYWluUmVxdWVzdCE9PSJ1bmRlZmluZWQiKWM9bmV3IF8uVWEuWERvbWFpblJlcXVlc3QsYy5vcGVuKGIuY29tbWFuZHx8IkdFVCIsYSk7ZWxzZXtkKDAsbnVsbCk7cmV0dXJufWMub25sb2FkPSgpPT57YkRhKGMucmVzcG9uc2VUZXh0LGIpfTtjLm9uZXJyb3I9KCk9PntkKDMsbnVsbCl9O2Muc2VuZChiLmRhdGF8fG51bGwpfTsKYkRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDthPWF8fCIiO2IudUcmJmEuaW5kZXhPZigiKV19J1xuIikhPT0wfHwoYT1hLnN1YnN0cmluZyg1KSk7aWYoYi5xUCljPWE7ZWxzZSB0cnl7Yz1KU09OLnBhcnNlKGEpfWNhdGNoKGQpeyhiLmJwfHwoKCk9Pnt9KSkoMSxkKTtyZXR1cm59KGIuTml8fCgoKT0+e30pKShjKX07Xy4kSD1mdW5jdGlvbihhLGIpeyJxdWVyeSJpbiBiP18uaWgoYSwyLGIucXVlcnkpOmIubG9jYXRpb24/KF8uTHcoXy53ZyhhLF8ub0EsMSksYi5sb2NhdGlvbi5sYXQoKSksXy5OdyhfLndnKGEsXy5vQSwxKSxiLmxvY2F0aW9uLmxuZygpKSk6Yi5wbGFjZUlkJiZfLmloKGEsNSxiLnBsYWNlSWQpfTsKXy5lRGE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGUpe3JldHVybiBlJiZNYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyl9Yj1ifHx7fTt2YXIgZD1jKGIuYXJyaXZhbFRpbWUpO2Q/Xy54RShhLDIsU3RyaW5nKGQpKTooZD1jKGIuZGVwYXJ0dXJlVGltZSl8fE1hdGgucm91bmQoRGF0ZS5ub3coKS82RTQpKjYwLF8ueEUoYSwxLFN0cmluZyhkKSkpOyhkPWIucm91dGluZ1ByZWZlcmVuY2UpJiZfLmtoKGEsNCxjRGFbZF0pO2lmKGI9Yi5tb2Rlcylmb3IoZD0wO2Q8Yi5sZW5ndGg7KytkKV8uQnUoYSwzLGREYVtiW2RdXSl9O2FJPWZ1bmN0aW9uKGEpe2lmKGEmJnR5cGVvZiBhLmdldFRpbWU9PT0iZnVuY3Rpb24iKXJldHVybiBhO3Rocm93IF8uQW0oIm5vdCBhIERhdGUiKTt9O18uZkRhPWZ1bmN0aW9uKGEpe3JldHVybiBfLkNtKHtkZXBhcnR1cmVUaW1lOmFJLHRyYWZmaWNNb2RlbDpfLk1tKF8uRm0oXy5qcykpfSkoYSl9OwpfLmdEYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DbSh7YXJyaXZhbFRpbWU6Xy5NbShhSSksZGVwYXJ0dXJlVGltZTpfLk1tKGFJKSxtb2RlczpfLk1tKF8uR20oXy5GbShfLmtzKSkpLHJvdXRpbmdQcmVmZXJlbmNlOl8uTW0oXy5GbShfLmxzKSl9KShhKX07Xy5iST1mdW5jdGlvbihhLGIpe2lmKGEmJnR5cGVvZiBhPT09Im9iamVjdCIpaWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5KWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7KytjKXt2YXIgZD1iKGFbY10pO2Q/YVtjXT1kOl8uYkkoYVtjXSxiKX1lbHNlIGlmKGEuY29uc3RydWN0b3I9PT1PYmplY3QpZm9yKGMgaW4gYSl7aWYoIWEuaGFzT3duUHJvcGVydHkoYykpY29udGludWU7KGQ9YihhW2NdKSk/YVtjXT1kOl8uYkkoYVtjXSxiKX19OwpfLmNJPWZ1bmN0aW9uKGEpe2E6aWYoYSYmdHlwZW9mIGE9PT0ib2JqZWN0IiYmXy5qbShhLmxhdCkmJl8uam0oYS5sbmcpKXtmb3IoYiBvZiBPYmplY3Qua2V5cyhhKSlpZihiIT09ImxhdCImJmIhPT0ibG5nIil7dmFyIGI9ITE7YnJlYWsgYX1iPSEwfWVsc2UgYj0hMTtyZXR1cm4gYj9uZXcgXy5UbShhLmxhdCxhLmxuZyk6bnVsbH07Xy5oRGE9ZnVuY3Rpb24oYSl7YTppZihhJiZ0eXBlb2YgYT09PSJvYmplY3QiJiZhLnNvdXRod2VzdCBpbnN0YW5jZW9mIF8uVG0mJmEubm9ydGhlYXN0IGluc3RhbmNlb2YgXy5UbSl7Zm9yKGIgaW4gYSlpZihiIT09InNvdXRod2VzdCImJmIhPT0ibm9ydGhlYXN0Iil7dmFyIGI9ITE7YnJlYWsgYX1iPSEwfWVsc2UgYj0hMTtyZXR1cm4gYj9uZXcgXy5SbihhLnNvdXRod2VzdCxhLm5vcnRoZWFzdCk6bnVsbH07Xy5kST1mdW5jdGlvbihhKXthP18uTSh3aW5kb3csMTQ4NDQxKTpfLk0od2luZG93LDE0ODQ0Mil9OwpfLmxEYT1mdW5jdGlvbihhKXtfLmdGKCk7Xy5CeihlSSxhKTtfLlN0KGlEYSxhKTtfLlN0KGpEYSxhKTtfLlN0KGtEYSxhKX07CmVJPWZ1bmN0aW9uKCl7dmFyIGE9ZUkuR0guSWooKT8icmlnaHQiOiJsZWZ0Ijt2YXIgYj1lSS5HSC5JaigpPyJydGwiOiJsdHIiO3JldHVybiIuZ20taXcge3RleHQtYWxpZ246IithKyI7fS5nbS1pdyAuZ20tbnVtZXJpYy1yZXYge2Zsb2F0OiIrYSsiO30uZ20taXcgLmdtLXBob3RvcywuZ20taXcgLmdtLXJldiB7ZGlyZWN0aW9uOiIrYisnO30uZ20taXcgLmdtLXN0YXJzLWYsIC5nbS1pdyAuZ20tc3RhcnMtYiB7YmFja2dyb3VuZDp1cmwoIicrXy5adygiYXBpLTMvaW1hZ2VzL3Jldmlld19zdGFycyIsITApKyciKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOiA2NXB4ICcrU3RyaW5nKE51bWJlcigiMTMiKSoyKSsicHg7ZmxvYXQ6IithKyI7fS5nbS1pdyAuZ20tc3RhcnMtZiB7YmFja2dyb3VuZC1wb3NpdGlvbjoiK2ErIiAtMTNweDt9LmdtLWl3IC5nbS1zdi1sYWJlbCwuZ20taXcgLmdtLXBoLWxhYmVsIHsiK2ErIjogNHB4O30ifTsKXy5mST1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJmdW5jdGlvbiIpdmFyIGI9YTtlbHNlIGlmKHR5cGVvZiBhPT09Im9iamVjdCIpYj1hLmNvbnN0cnVjdG9yO2Vsc2UgdGhyb3cgRXJyb3Iodm9pZCAwKTtyZXR1cm4gXy5jZShjPT5jIGluc3RhbmNlb2YgYil9O18uZ0k9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudGg9YTt0aGlzLndoPWI7dGhpcy5xaD10aGlzLnNoPWE7dGhpcy54aD1jfHwwfTtfLm1EYT1mdW5jdGlvbihhKXthLnFoPU1hdGgubWluKGEud2gsYS5xaCoyKTthLnNoPU1hdGgubWluKGEud2gsYS5xaCsoYS54aD9NYXRoLnJvdW5kKGEueGgqKE1hdGgucmFuZG9tKCktLjUpKjIqYS5xaCk6MCkpO2EucmgrK307Xy5oST1mdW5jdGlvbihhKXt2YXIgYj1uZXcgXy5GcjtiPV8uZWgoYixNYXRoLmZsb29yKGEvMUUzKSk7cmV0dXJuIF8uY2goYiwyLE1hdGguZmxvb3IoYSoxRTYpJTFFOSl9OwpuRGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUFycmF5KDI1MCksZT1fLnRsKGEubGF0KSxmPV8udGwoYS5sbmcpLGc9TWF0aC5jb3MoYiksaD1NYXRoLnNpbihiKSxrPU1hdGguY29zKGUpO2U9TWF0aC5zaW4oZSk7aWYoaz4xRS02KWZvcihhPTA7YTwyNTA7KythKXtiPWEvMjUwKk1hdGguUEkqNDtiKz1NYXRoLnNpbihiK01hdGguUEkpO3ZhciBtPWIvMixwPWUqZytrKmgqTWF0aC5jb3MobSk7Yj1NYXRoLmFzaW4ocCk7bGV0IHE9ZitNYXRoLmF0YW4yKE1hdGguc2luKG0pKmgqayxnLWUqcCk7bT0tTWF0aC5QSTtwPU1hdGguUEktbTtxPSgocS1tKSVwK3ApJXArbTtkW2FdPWMoXy51bChiKSxfLnVsKHEpKX1lbHNlIGZvcihmPV8udWwoYiksZj1hLmxhdD4wP2EubGF0LWY6YS5sYXQrZixnPTA7ZzwyNTA7KytnKWRbZ109YyhmLDM2MCpnLzI1MCk7cmV0dXJuIGR9OwpfLm9EYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtuRGEoYSxiLChkLGUpPT5uZXcgXy5Rbyh7bGF0OmQsbG5nOmUsYWx0aXR1ZGU6YS5hbHRpdHVkZX0pKV07Xy50bChhLmxhdCktYjwtTWF0aC5QSS8yJiYoYj1bbmV3IF8uUW8oe2xhdDotOTAsbG5nOi0yMDAsYWx0aXR1ZGU6YS5hbHRpdHVkZX0sITApLG5ldyBfLlFvKHtsYXQ6OTAsbG5nOi0yMDAsYWx0aXR1ZGU6YS5hbHRpdHVkZX0sITApLG5ldyBfLlFvKHtsYXQ6OTAsbG5nOi0xMDAsYWx0aXR1ZGU6YS5hbHRpdHVkZX0sITApLG5ldyBfLlFvKHtsYXQ6OTAsbG5nOjAsYWx0aXR1ZGU6YS5hbHRpdHVkZX0sITApLG5ldyBfLlFvKHtsYXQ6OTAsbG5nOjEwMCxhbHRpdHVkZTphLmFsdGl0dWRlfSwhMCksbmV3IF8uUW8oe2xhdDo5MCxsbmc6MjAwLGFsdGl0dWRlOmEuYWx0aXR1ZGV9LCEwKSxuZXcgXy5Rbyh7bGF0Oi05MCxsbmc6MjAwLGFsdGl0dWRlOmEuYWx0aXR1ZGV9LCEwKSxuZXcgXy5Rbyh7bGF0Oi05MCxsbmc6MTAwLGFsdGl0dWRlOmEuYWx0aXR1ZGV9LAohMCksbmV3IF8uUW8oe2xhdDotOTAsbG5nOjAsYWx0aXR1ZGU6YS5hbHRpdHVkZX0sITApLG5ldyBfLlFvKHtsYXQ6LTkwLGxuZzotMTAwLGFsdGl0dWRlOmEuYWx0aXR1ZGV9LCEwKSxuZXcgXy5Rbyh7bGF0Oi05MCxsbmc6LTIwMCxhbHRpdHVkZTphLmFsdGl0dWRlfSwhMCldLGMucHVzaChiKSk7cmV0dXJuIGN9O18ucURhPWZ1bmN0aW9uKGEpe2E9YS50cmltKCkudG9Mb3dlckNhc2UoKTt2YXIgYjtpZighKGI9Xy5wRGEoYSkpKWlmKGlJLmhhcyhhKSliPWlJLmdldChhKTtlbHNle2I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGM9Yi5nZXRDb250ZXh0KCIyZCIpO2IuaGVpZ2h0PWIud2lkdGg9MTtjLmZpbGxTdHlsZT1hO2MuZmlsbFJlY3QoMCwwLGIud2lkdGgsYi5oZWlnaHQpO3ZhciBbZCxlLGYsZ109Yy5nZXRJbWFnZURhdGEoMCwwLGIud2lkdGgsYi5oZWlnaHQpLmRhdGE7Yj1uZXcgakkoZCxlLGYsZy8yNTUpO2lJLnNldChhLGIpfXJldHVybiBifTsKXy5wRGE9ZnVuY3Rpb24oYSl7YT1hLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3ZhciBiO2lmKCEoYj1yRGFbYV18fG51bGwpKXt2YXIgYz1rSS5QTS5leGVjKGEpO2lmKGMpe2I9cGFyc2VJbnQoY1sxXSwxNik7dmFyIGQ9cGFyc2VJbnQoY1syXSwxNiksZT1wYXJzZUludChjWzNdLDE2KTtjPWNbNF0/cGFyc2VJbnQoY1s0XSwxNik6MTU7Yj1uZXcgakkoYjw8NHxiLGQ8PDR8ZCxlPDw0fGUsKGM8PDR8YykvMjU1KX1lbHNlIGI9bnVsbH1ifHwoYj0oYj1rSS53TS5leGVjKGEpKT9uZXcgakkocGFyc2VJbnQoYlsxXSwxNikscGFyc2VJbnQoYlsyXSwxNikscGFyc2VJbnQoYlszXSwxNiksYls0XT9wYXJzZUludChiWzRdLDE2KS8yNTU6MSk6bnVsbCk7Ynx8KGI9KGI9a0kuc1AuZXhlYyhhKSk/bmV3IGpJKE1hdGgubWluKF8uSkUoYlsxXSksMjU1KSxNYXRoLm1pbihfLkpFKGJbMl0pLDI1NSksTWF0aC5taW4oXy5KRShiWzNdKSwyNTUpKTpudWxsKTtifHwoYj0oYj1rSS50UC5leGVjKGEpKT8KbmV3IGpJKE1hdGgubWluKE1hdGgucm91bmQocGFyc2VGbG9hdChiWzFdKSoyLjU1KSwyNTUpLE1hdGgubWluKE1hdGgucm91bmQocGFyc2VGbG9hdChiWzJdKSoyLjU1KSwyNTUpLE1hdGgubWluKE1hdGgucm91bmQocGFyc2VGbG9hdChiWzNdKSoyLjU1KSwyNTUpKTpudWxsKTtifHwoYj0oYj1rSS51UC5leGVjKGEpKT9uZXcgakkoTWF0aC5taW4oXy5KRShiWzFdKSwyNTUpLE1hdGgubWluKF8uSkUoYlsyXSksMjU1KSxNYXRoLm1pbihfLkpFKGJbM10pLDI1NSksXy5jbShwYXJzZUZsb2F0KGJbNF0pLDAsMSkpOm51bGwpO2J8fChiPShhPWtJLnZQLmV4ZWMoYSkpP25ldyBqSShNYXRoLm1pbihNYXRoLnJvdW5kKHBhcnNlRmxvYXQoYVsxXSkqMi41NSksMjU1KSxNYXRoLm1pbihNYXRoLnJvdW5kKHBhcnNlRmxvYXQoYVsyXSkqMi41NSksMjU1KSxNYXRoLm1pbihNYXRoLnJvdW5kKHBhcnNlRmxvYXQoYVszXSkqMi41NSksMjU1KSxfLmNtKHBhcnNlRmxvYXQoYVs0XSksMCwxKSk6Cm51bGwpO3JldHVybiBifHxudWxsfTtfLmxJPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe3ZhciBkPWEuZ2V0KCJzbmFwcGluZ0NhbGxiYWNrIik7aWYoIWQpcmV0dXJuIGM7dmFyIGU9YS5nZXQoInByb2plY3Rpb25Db250cm9sbGVyIiksZj1lLmZyb21EaXZQaXhlbFRvTGF0TG5nKGMpO3JldHVybihkPWQoe2xhdExuZzpmLG92ZXJsYXk6Yn0pKT9lLmZyb21MYXRMbmdUb0RpdlBpeGVsKGQpOmN9fTtfLm1JPWZ1bmN0aW9uKGEsYil7aWYoYS5jaGlsZHJlbilmb3IobGV0IGM9MDtjPDQ7KytjKXtsZXQgZD1hLmNoaWxkcmVuW2NdO2lmKGQuYm91bmRzLmNvbnRhaW5zQm91bmRzKGIpKXtfLm1JKGQsYik7cmV0dXJufX1hLml0ZW1zfHwoYS5pdGVtcz1bXSk7YS5pdGVtcy5wdXNoKGIpOyFhLmNoaWxkcmVuJiZhLml0ZW1zLmxlbmd0aD4xMCYmYS5kZXB0aDwxNSYmYS5zcGxpdCgpfTsKXy5uST1mdW5jdGlvbihhLGIsYyl7aWYoYS5pdGVtcylmb3IobGV0IGU9MCxmPWEuaXRlbXMubGVuZ3RoO2U8ZjsrK2Upe3ZhciBkPWEuaXRlbXNbZV07YyhkKSYmYihkKX1pZihhLmNoaWxkcmVuKWZvcihkPTA7ZDw0OysrZCl7bGV0IGU9YS5jaGlsZHJlbltkXTtjKGUuYm91bmRzKSYmXy5uSShlLGIsYyl9fTtfLnNEYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9MCxlPWNbMV0+Yjtmb3IobGV0IGc9MyxoPWMubGVuZ3RoO2c8aDtnKz0yKXt2YXIgZj1lO2U9Y1tnXT5iO2lmKGY9PT1lKWNvbnRpbnVlO2Y9KGY/MTowKS0oZT8xOjApO2YqKChjW2ctM10tYSkqKGNbZy0wXS1iKS0oY1tnLTJdLWIpKihjW2ctMV0tYSkpPjAmJihkKz1mKX1yZXR1cm4gZH07dERhPWZ1bmN0aW9uKGEsYil7dmFyIGM9TWF0aC5jb3MoYSk+MD8xOi0xO3JldHVybiBNYXRoLmF0YW4yKGMqTWF0aC50YW4oYSksYy9iKX07CnZEYT1mdW5jdGlvbihhKXthLnNofHwhYS53bXx8YS5xaC5jb250YWluc0JvdW5kcyhhLndtKXx8KGEud2g9bmV3IF8ub0kodURhKSxhLnpoKCkpfTtfLnBJPWZ1bmN0aW9uKGEsYil7YS53bSE9PWImJihhLndtPWIsdkRhKGEpKX07d0RhPWZ1bmN0aW9uKGEpe2lmKGEucmgmJmEuZW5hYmxlZCl7bGV0IGU9YS5yaC5nZXRTaXplKCk7dmFyIGI9YS5yaDt2YXIgYz1NYXRoLm1pbig1MCxlLndpZHRoLzEwKSxkPU1hdGgubWluKDUwLGUuaGVpZ2h0LzEwKTtiPV8uem8oYi5taW5YK2MsYi5taW5ZK2QsYi5tYXhYLWMsYi5tYXhZLWQpO2EucWg9YjthLnhoPW5ldyBfLmJvKGUud2lkdGgvMUUzKnFJLGUuaGVpZ2h0LzFFMypxSSk7dkRhKGEpfWVsc2UgYS5xaD1fLkVzfTtfLnJJPWZ1bmN0aW9uKGEsYil7YS5yaCE9PWImJihhLnJoPWIsd0RhKGEpKX07Xy5zST1mdW5jdGlvbihhLGIpe2EuZW5hYmxlZCE9PWImJihhLmVuYWJsZWQ9Yix3RGEoYSkpfTsKeERhPWZ1bmN0aW9uKGEpe2Euc2gmJih3aW5kb3cuY2xlYXJUaW1lb3V0KGEuc2gpLGEuc2g9MCl9O18ueURhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1uZXcgXy55bztkLm1pblg9YS54K2MueC1iLndpZHRoLzI7ZC5taW5ZPWEueStjLnk7ZC5tYXhYPWQubWluWCtiLndpZHRoO2QubWF4WT1kLm1pblkrYi5oZWlnaHQ7cmV0dXJuIGR9O3pEYT1mdW5jdGlvbihhLGIpe2Euc2V0KCJwaXhlbEJvdW5kcyIsYik7YS5xaCYmXy5wSShhLnFoLGIpfTtfLnRJPWZ1bmN0aW9uKGEsYil7YS5xaCYmYS5xaC5jbGllbnRYPT09Yi5jbGllbnRYJiZhLnFoLmNsaWVudFk9PT1iLmNsaWVudFl8fChhLnBvc2l0aW9uPW51bGwsYS5xaD1iLGEuUmgucmVmcmVzaCgpKX07Cl8udUk9ZnVuY3Rpb24oYSx7eDpiLHk6Y30sZCl7dmFyIGU9e2tpOjAsbGk6MCx1aTowfSxmPXtraTowLGxpOjB9LGc9bnVsbCxoPU9iamVjdC5rZXlzKGEudGlsZXMpLnJldmVyc2UoKTtmb3IobGV0IG09MDttPGgubGVuZ3RoJiYhZzttKyspe2lmKCFhLnRpbGVzLmhhc093blByb3BlcnR5KGhbbV0pKWNvbnRpbnVlO2xldCBwPWEudGlsZXNbaFttXV07dmFyIGs9ZS51aT1wLnpvb207aWYoYS5DaSl7Zj1hLkNpLnNpemU7bGV0IHE9YS5Ray53cmFwKG5ldyBfLldwKGIsYykpO2s9Xy5XeChhLkNpLHEsayx1PT51KTtlLmtpPXAucmoueDtlLmxpPXAucmoueTtmPXtraTprLmtpLWUua2krZC54L2YuWGgsbGk6ay5saS1lLmxpK2QueS9mLllofX0wPD1mLmtpJiZmLmtpPDEmJjA8PWYubGkmJmYubGk8MSYmKGc9cCl9cmV0dXJuIGc/e3ltOmcsQXA6ZSxTdjpmfTpudWxsfTsKXy52ST1mdW5jdGlvbihhLGIsYyxkLHtMTzplLE1POmZ9PXt9KXsoYT1hLl9fZ20pJiZhLnJoLnRoZW4oZz0+e3ZhciBoPWcuUmgsaz1nLm5uW2NdLG09bmV3IF8ub0IoKHEsdSk9PntxPW5ldyBfLnJCKGssZCxoLF8uYnkocSksdSk7aC5OaihxKTtyZXR1cm4gcX0sZnx8KCgpPT57fSkpLHA9cT0+e18uWXgobSxxKX07Xy5xdihiLHApO2UmJmUoe3JlbGVhc2U6KCk9PntiLnJlbW92ZUxpc3RlbmVyKHApO20uY2xlYXIoKX0sS1A6cT0+e3EgaW5zdGFuY2VvZiBfLkFxP2Iuc2V0KHEucWgoKSk6Yi5zZXQobmV3IF8ucEIocSkpfX0pfSl9O0FEYT1mdW5jdGlvbihhLGIsYyl7dGhyb3cgRXJyb3IoYEV4cGVjdGVkICR7Yn0gYXQgcG9zaXRpb24gJHthLnFofSwgZm91bmQgJHtjfWApO307d0k9ZnVuY3Rpb24oYSl7YS50b2tlbiE9PTImJkFEYShhLCJudW1iZXIiLGEudG9rZW49PT0wPyI8ZW5kPiI6YS5jb21tYW5kKTtyZXR1cm4gYS5udW1iZXJ9Owp4ST1mdW5jdGlvbihhKXtyZXR1cm4gYT8iMDEyMzQ1Njc4OSIuaW5kZXhPZihhKT49MDohMX07eUk9ZnVuY3Rpb24oYSxiLGMpe2EuYm91bmRzLmV4dGVuZChuZXcgXy5ibyhiLGMpKX07Cl8uTERhPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IEJEYTtyZXR1cm4gZnVuY3Rpb24oYixjLGQsZSl7Yz1fLmxtKGMsImJsYWNrIik7ZD1fLmxtKGQsMSk7ZT1fLmxtKGUsMSk7dmFyIGY9Yi5hbmNob3J8fF8ucG87e3ZhciBnPV8uam0oYi5wYXRoKT9DRGFbYi5wYXRoXTpiLnBhdGg7bGV0IG9jPWAke2d9fCR7Zi54fXwke2YueX1gLE1jPWEuY2FjaGVbb2NdO2lmKE1jKXZhciBoPU1jO2Vsc2V7dmFyIGs9YS5xaCxtPW5ldyBERGEoZyk7ay5pbnN0cnVjdGlvbnM9W107ay5xaD1uZXcgXy5ibygwLDApO2sudGg9bnVsbDtrLnJoPW51bGw7ay5zaD1udWxsO2ZvcihtLm5leHQoKTttLnRva2VuIT09MDspe3ZhciBwPW07cC50b2tlbiE9PTEmJkFEYShwLCJjb21tYW5kIixwLnRva2VuPT09MD8iPGVuZD4iOnAubnVtYmVyKTtsZXQgemQ9cC5jb21tYW5kLGdkPXpkLnRvTG93ZXJDYXNlKCksamQ9emQ9PT1nZDtpZighay5pbnN0cnVjdGlvbnMubGVuZ3RoJiZnZCE9PSJtIil0aHJvdyBFcnJvcignRmlyc3QgaW5zdHJ1Y3Rpb24gaW4gcGF0aCBtdXN0IGJlICJtb3ZldG8iLicpOwptLm5leHQoKTtzd2l0Y2goZ2Qpe2Nhc2UgIm0iOnZhciBxPWssdT1tLHg9ZjtsZXQgRGM9ITA7ZG97bGV0IE9hPXdJKHUpO3UubmV4dCgpO2xldCBRYj13SSh1KTt1Lm5leHQoKTtqZCYmKE9hKz1xLnFoLngsUWIrPXEucWgueSk7RGM/KHEuaW5zdHJ1Y3Rpb25zLnB1c2gobmV3IEVEYShPYS14LngsUWIteC55KSkscS50aD1uZXcgXy5ibyhPYSxRYiksRGM9ITEpOnEuaW5zdHJ1Y3Rpb25zLnB1c2gobmV3IHpJKE9hLXgueCxRYi14LnkpKTtxLnFoLng9T2E7cS5xaC55PVFifXdoaWxlKHUudG9rZW49PT0yKTticmVhaztjYXNlICJ6Ijp2YXIgej1rO3ouaW5zdHJ1Y3Rpb25zLnB1c2gobmV3IEZEYSk7ei5xaC54PXoudGgueDt6LnFoLnk9ei50aC55O2JyZWFrO2Nhc2UgImwiOnZhciBCPWssSz1tLE89Zjtkb3tsZXQgT2E9d0koSyk7Sy5uZXh0KCk7bGV0IFFiPXdJKEspO0submV4dCgpO2pkJiYoT2ErPUIucWgueCxRYis9Qi5xaC55KTtCLmluc3RydWN0aW9ucy5wdXNoKG5ldyB6SShPYS0KTy54LFFiLU8ueSkpO0IucWgueD1PYTtCLnFoLnk9UWJ9d2hpbGUoSy50b2tlbj09PTIpO2JyZWFrO2Nhc2UgImgiOnZhciBBPWssUT1tLGNhPWY7bGV0IEFkPUEucWgueTtkb3tsZXQgT2E9d0koUSk7US5uZXh0KCk7amQmJihPYSs9QS5xaC54KTtBLmluc3RydWN0aW9ucy5wdXNoKG5ldyB6SShPYS1jYS54LEFkLWNhLnkpKTtBLnFoLng9T2F9d2hpbGUoUS50b2tlbj09PTIpO2JyZWFrO2Nhc2UgInYiOnZhciBpYT1rLEdhPW0sTGE9ZjtsZXQgTmM9aWEucWgueDtkb3tsZXQgT2E9d0koR2EpO0dhLm5leHQoKTtqZCYmKE9hKz1pYS5xaC55KTtpYS5pbnN0cnVjdGlvbnMucHVzaChuZXcgekkoTmMtTGEueCxPYS1MYS55KSk7aWEucWgueT1PYX13aGlsZShHYS50b2tlbj09PTIpO2JyZWFrO2Nhc2UgImMiOnZhciBGYT1rLFZhPW0scmI9Zjtkb3tsZXQgT2E9d0koVmEpO1ZhLm5leHQoKTtsZXQgUWI9d0koVmEpO1ZhLm5leHQoKTtsZXQgdGM9d0koVmEpO1ZhLm5leHQoKTtsZXQgSWM9CndJKFZhKTtWYS5uZXh0KCk7bGV0IHZkPXdJKFZhKTtWYS5uZXh0KCk7bGV0IHVjPXdJKFZhKTtWYS5uZXh0KCk7amQmJihPYSs9RmEucWgueCxRYis9RmEucWgueSx0Yys9RmEucWgueCxJYys9RmEucWgueSx2ZCs9RmEucWgueCx1Yys9RmEucWgueSk7RmEuaW5zdHJ1Y3Rpb25zLnB1c2gobmV3IEdEYShPYS1yYi54LFFiLXJiLnksdGMtcmIueCxJYy1yYi55LHZkLXJiLngsdWMtcmIueSkpO0ZhLnFoLng9dmQ7RmEucWgueT11YztGYS5yaD1uZXcgXy5ibyh0YyxJYyl9d2hpbGUoVmEudG9rZW49PT0yKTticmVhaztjYXNlICJzIjp2YXIgRGI9ayxJYT1tLHNiPWY7ZG97bGV0IE9hPXdJKElhKTtJYS5uZXh0KCk7bGV0IFFiPXdJKElhKTtJYS5uZXh0KCk7bGV0IHRjPXdJKElhKTtJYS5uZXh0KCk7bGV0IEljPXdJKElhKTtJYS5uZXh0KCk7amQmJihPYSs9RGIucWgueCxRYis9RGIucWgueSx0Yys9RGIucWgueCxJYys9RGIucWgueSk7bGV0IHZkLHVjO0RiLnJoPyh2ZD0yKkRiLnFoLngtCkRiLnJoLngsdWM9MipEYi5xaC55LURiLnJoLnkpOih2ZD1EYi5xaC54LHVjPURiLnFoLnkpO0RiLmluc3RydWN0aW9ucy5wdXNoKG5ldyBHRGEodmQtc2IueCx1Yy1zYi55LE9hLXNiLngsUWItc2IueSx0Yy1zYi54LEljLXNiLnkpKTtEYi5xaC54PXRjO0RiLnFoLnk9SWM7RGIucmg9bmV3IF8uYm8oT2EsUWIpfXdoaWxlKElhLnRva2VuPT09Mik7YnJlYWs7Y2FzZSAicSI6dmFyIGNjPWssVmI9bSxFZD1mO2Rve2xldCBPYT13SShWYik7VmIubmV4dCgpO2xldCBRYj13SShWYik7VmIubmV4dCgpO2xldCB0Yz13SShWYik7VmIubmV4dCgpO2xldCBJYz13SShWYik7VmIubmV4dCgpO2pkJiYoT2ErPWNjLnFoLngsUWIrPWNjLnFoLnksdGMrPWNjLnFoLngsSWMrPWNjLnFoLnkpO2NjLmluc3RydWN0aW9ucy5wdXNoKG5ldyBIRGEoT2EtRWQueCxRYi1FZC55LHRjLUVkLngsSWMtRWQueSkpO2NjLnFoLng9dGM7Y2MucWgueT1JYztjYy5zaD1uZXcgXy5ibyhPYSxRYil9d2hpbGUoVmIudG9rZW49PT0KMik7YnJlYWs7Y2FzZSAidCI6dmFyIExiPWssd2E9bSxkYT1mO2Rve2xldCBPYT13SSh3YSk7d2EubmV4dCgpO2xldCBRYj13SSh3YSk7d2EubmV4dCgpO2pkJiYoT2ErPUxiLnFoLngsUWIrPUxiLnFoLnkpO2xldCB0YyxJYztMYi5zaD8odGM9MipMYi5xaC54LUxiLnNoLngsSWM9MipMYi5xaC55LUxiLnNoLnkpOih0Yz1MYi5xaC54LEljPUxiLnFoLnkpO0xiLmluc3RydWN0aW9ucy5wdXNoKG5ldyBIRGEodGMtZGEueCxJYy1kYS55LE9hLWRhLngsUWItZGEueSkpO0xiLnFoLng9T2E7TGIucWgueT1RYjtMYi5zaD1uZXcgXy5ibyh0YyxJYyl9d2hpbGUod2EudG9rZW49PT0yKTticmVhaztjYXNlICJhIjp2YXIgJGE9ayx3Yj1tLE5kPWY7ZG97bGV0IE9hPXdJKHdiKTt3Yi5uZXh0KCk7bGV0IFFiPXdJKHdiKTt3Yi5uZXh0KCk7bGV0IHRjPXdJKHdiKTt3Yi5uZXh0KCk7bGV0IEljPXdJKHdiKTt3Yi5uZXh0KCk7bGV0IHZkPXdJKHdiKTt3Yi5uZXh0KCk7bGV0IHVjPXdJKHdiKTt3Yi5uZXh0KCk7CmxldCBPYz13SSh3Yik7d2IubmV4dCgpO2pkJiYodWMrPSRhLnFoLngsT2MrPSRhLnFoLnkpO2I6e3ZhciBrYj0kYS5xaC54LHNhPSRhLnFoLnksV2E9dWMseGU9T2MseWU9ISFJYyxpZT0hIXZkLGlkPU9hLHdjPVFiLEpkPXRjO2lmKF8uaW0oa2IsV2EpJiZfLmltKHNhLHhlKSl7dmFyIEtkPW51bGw7YnJlYWsgYn1pZD1NYXRoLmFicyhpZCk7d2M9TWF0aC5hYnMod2MpO2lmKF8uaW0oaWQsMCl8fF8uaW0od2MsMCkpe0tkPW5ldyB6SShXYSx4ZSk7YnJlYWsgYn1KZD1fLnRsKEpkJTM2MCk7bGV0IGJjPU1hdGguc2luKEpkKSx3ZD1NYXRoLmNvcyhKZCkscGU9KGtiLVdhKS8yLEFiPShzYS14ZSkvMix6Yz13ZCpwZStiYypBYixKYz0tYmMqcGUrd2QqQWIsbmQ9aWQqaWQsa2Q9d2Mqd2MsUGM9emMqemMsS2M9SmMqSmMsU2I9TWF0aC5zcXJ0KChuZCprZC1uZCpLYy1rZCpQYykvKG5kKktjK2tkKlBjKSk7eWU9PWllJiYoU2I9LVNiKTtsZXQgZWM9U2IqaWQqSmMvd2MsWmI9U2IqLXdjKgp6Yy9pZCxXYj1JRGEoMSwwLCh6Yy1lYykvaWQsKEpjLVpiKS93YyksUmM9SURhKCh6Yy1lYykvaWQsKEpjLVpiKS93YywoLXpjLWVjKS9pZCwoLUpjLVpiKS93Yyk7UmMlPU1hdGguUEkqMjtpZT9SYzwwJiYoUmMrPU1hdGguUEkqMik6UmM+MCYmKFJjLT1NYXRoLlBJKjIpO0tkPW5ldyBKRGEod2QqZWMtYmMqWmIrKGtiK1dhKS8yLGJjKmVjK3dkKlpiKyhzYSt4ZSkvMixpZCx3YyxKZCxXYixSYyl9bGV0IFFjPUtkO1FjJiYoUWMueC09TmQueCxRYy55LT1OZC55LCRhLmluc3RydWN0aW9ucy5wdXNoKFFjKSk7JGEucWgueD11YzskYS5xaC55PU9jfXdoaWxlKHdiLnRva2VuPT09Mil9Z2QhPT0iYyImJmdkIT09InMiJiYoay5yaD1udWxsKTtnZCE9PSJxIiYmZ2QhPT0idCImJihrLnNoPW51bGwpfXZhciBQYj1rLmluc3RydWN0aW9ucztoPWEuY2FjaGVbb2NdPVBifX12YXIgUGQ9aCxDYz1fLmxtKGIuc2NhbGUsZSksamI9Xy50bChiLnJvdGF0aW9ufHwwKSxZYz1fLmxtKGIuc3Ryb2tlV2VpZ2h0LApDYyksTWE9bmV3IF8ueW8sb2I9bmV3IEtEYShNYSk7Zm9yKGxldCBvYz0wLE1jPVBkLmxlbmd0aDtvYzxNYzsrK29jKVBkW29jXS5hY2NlcHQob2IpO01hLm1pblg9TWEubWluWCpDYy1ZYy8yO01hLm1heFg9TWEubWF4WCpDYytZYy8yO01hLm1pblk9TWEubWluWSpDYy1ZYy8yO01hLm1heFk9TWEubWF4WSpDYytZYy8yO3ZhciBsYj1uemEoTWEsamIpO2xiLm1pblg9TWF0aC5mbG9vcihsYi5taW5YKTtsYi5tYXhYPU1hdGguY2VpbChsYi5tYXhYKTtsYi5taW5ZPU1hdGguZmxvb3IobGIubWluWSk7bGIubWF4WT1NYXRoLmNlaWwobGIubWF4WSk7dmFyIHhiPW5ldyBfLmJvKC1sYi5taW5YLC1sYi5taW5ZKSxpYz1fLmxtKGIubGFiZWxPcmlnaW4sbmV3IF8uYm8oMCwwKSksWmM9bnphKG5ldyBfLnlvKFtuZXcgXy5ibygoaWMueC1mLngpKkNjLChpYy55LWYueSkqQ2MpXSksamIpLFRkPW5ldyBfLmJvKE1hdGgucm91bmQoWmMubWluWCksTWF0aC5yb3VuZChaYy5taW5ZKSk7cmV0dXJue2FuY2hvcjp4YiwKZmlsbENvbG9yOl8ubG0oYi5maWxsQ29sb3IsYyksZmlsbE9wYWNpdHk6Xy5sbShiLmZpbGxPcGFjaXR5LDApLGxhYmVsT3JpZ2luOm5ldyBfLmJvKC1sYi5taW5YK1RkLngsLWxiLm1pblkrVGQueSksZko6UGQscm90YXRpb246amIsc2NhbGU6Q2Msc2l6ZTpsYi5nZXRTaXplKCksc3Ryb2tlQ29sb3I6Xy5sbShiLnN0cm9rZUNvbG9yLGMpLHN0cm9rZU9wYWNpdHk6Xy5sbShiLnN0cm9rZU9wYWNpdHksZCksc3Ryb2tlV2VpZ2h0OlljfX19O0lEYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1NYXRoLmFicyhNYXRoLmFjb3MoKGEqYytiKmQpLyhNYXRoLnNxcnQoYSphK2IqYikqTWF0aC5zcXJ0KGMqYytkKmQpKSkpO2EqZC1iKmM8MCYmKGU9LWUpO3JldHVybiBlfTsKXy5PRGE9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhKXJldHVybiBudWxsO3ZhciBkPSJGRUFUVVJFX1RZUEVfVU5TUEVDSUZJRUQiLGU9IiIsZj0iIixnPXt9LGg9ITEsaz1uZXcgTWFwKFtbImExIiwiQURNSU5JU1RSQVRJVkVfQVJFQV9MRVZFTF8xIl0sWyJhMiIsIkFETUlOSVNUUkFUSVZFX0FSRUFfTEVWRUxfMiJdLFsiYyIsIkNPVU5UUlkiXSxbImwiLCJMT0NBTElUWSJdLFsicCIsIlBPU1RBTF9DT0RFIl0sWyJzZCIsIlNDSE9PTF9ESVNUUklDVCJdXSksbT1hLll6KCk7Zm9yKGxldCBwPTA7cDxtO3ArKyl7bGV0IHE9YS55QyhwKTtxLmdldEtleSgpPT09Il8/cCI/ZT1xLmdldFZhbHVlKCk6cS5nZXRLZXkoKT09PSJfP2YiJiZrLmhhcyhxLmdldFZhbHVlKCkpJiYoZD1rLmdldChxLmdldFZhbHVlKCkpfHwiRkVBVFVSRV9UWVBFX1VOU1BFQ0lGSUVEIik7Yi5maW5kKHU9Pl8uZnYodSk9PT1xLmdldEtleSgpJiZfLkgodSwyKT09PXEuZ2V0VmFsdWUoKSk/KGY9cS5nZXRWYWx1ZSgpLApoPSEwKTpnW3EuZ2V0S2V5KCldPXEuZ2V0VmFsdWUoKX1hPW51bGw7aD9hPW5ldyBNRGEoZixnKTpkIT09IkZFQVRVUkVfVFlQRV9VTlNQRUNJRklFRCImJihhPW5ldyBORGEoZCxlLGMpKTtyZXR1cm4gYX07Xy5QRGE9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dHJ5e2xldCBiPWEuc3BsaXQoIjoiKTtpZihiLmxlbmd0aD09PTEpe2lmKCFBSShhKSlyZXR1cm4gbmV3IF8uQkkoQ0ksYS5zdGFydHNXaXRoKCIweCIpP0RJKGEpOmdsb2JhbFRoaXMuQmlnSW50KGEpKX1lbHNlIGlmKGIubGVuZ3RoPT09MiYmIUFJKGJbMF0pJiYhQUkoYlsxXSkpcmV0dXJuIG5ldyBfLkJJKERJKGJbMF0pLERJKGJbMV0pKX1jYXRjaChiKXtyZXR1cm4gbmV3IF8uQkkoQ0ksQ0kpfXJldHVybiBudWxsfTtBST1mdW5jdGlvbihhKXtyZXR1cm4hYS5sZW5ndGh8fC8uKy4qLS8udGVzdChhKX07REk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RoPDM/Q0k6Z2xvYmFsVGhpcy5CaWdJbnQoYSl9OwpRRGE9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkLGUsZixnKXtyZXR1cm4gZCYmIWUmJihnfHxmJiYhXy55dygpKX12YXIgYz1uZXcgXy5FSShbInBhbkF0RWRnZSIsInNjYWxpbmciLCJtb3VzZUluc2lkZSIsImRyYWdnaW5nIl0sImVuYWJsZWQiLGIpO18ua24oYywiZW5hYmxlZF9jaGFuZ2VkIiwoKT0+e2EucWgmJl8uc0koYS5xaCxiKGMuZ2V0KCJwYW5BdEVkZ2UiKSxjLmdldCgic2NhbGluZyIpLGMuZ2V0KCJtb3VzZUluc2lkZSIpLGMuZ2V0KCJkcmFnZ2luZyIpKSl9KTtjLnNldCgic2NhbGluZyIsITEpO3JldHVybiBjfTtSRGE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXQoInBhbmVzIik7YS5nZXQoImFjdGl2ZSIpJiZiP2Iub3ZlcmxheU1vdXNlVGFyZ2V0LmFwcGVuZENoaWxkKGEuZGl2KTphLmRpdi5wYXJlbnROb2RlJiZfLnlsKGEuZGl2KX07Xy5GST1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5FSShbInpJbmRleCJdLCJnaG9zdFpJbmRleCIsYT0+KGF8fDApKzEpfTsKXy5HST1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRRdWVyeSgpe3JldHVybiBfLkgodGhpcywyKX1zZXRRdWVyeShhKXtyZXR1cm4gXy5paCh0aGlzLDIsYSl9fTtfLkdJLnByb3RvdHlwZS5KbD1fLmhhKDQyKTtfLkdJLnByb3RvdHlwZS5KbD1fLmthKDQyLGZ1bmN0aW9uKCl7cmV0dXJuIF8uSCh0aGlzLDEpfSk7Xy5SeS5wcm90b3R5cGUucmg9Xy5rYSg0MSxmdW5jdGlvbigpe3JldHVybiBfLkgodGhpcyw2KX0pO18uaHkucHJvdG90eXBlLkttPV8ua2EoNDAsZnVuY3Rpb24oKXtyZXR1cm4gXy5wdSh0aGlzLDIpfSk7Xy5TQS5wcm90b3R5cGUuS209Xy5rYSgzOSxmdW5jdGlvbigpe3JldHVybiBfLnB1KHRoaXMsMTMpfSk7Xy5UQS5wcm90b3R5cGUuS209Xy5rYSgzOCxmdW5jdGlvbigpe3JldHVybiBfLnB1KHRoaXMsMSl9KTtfLkFCLnByb3RvdHlwZS5LbT1fLmthKDM3LGZ1bmN0aW9uKCl7cmV0dXJuIF8ucHUodGhpcywxKX0pOwpfLllwLnByb3RvdHlwZS5CaT1fLmthKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIF8uTGcodGhpcywyKX0pO18uWXAucHJvdG90eXBlLkZpPV8ua2EoMzMsZnVuY3Rpb24oKXtyZXR1cm4gXy5MZyh0aGlzLDEpfSk7Xy5tdC5wcm90b3R5cGUuRW49Xy5rYSgyNSxmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lcn0pO18uY3QucHJvdG90eXBlLnp4PV8ua2EoMjIsZnVuY3Rpb24oYSl7KHRoaXMuSWg/Pyh0aGlzLkloPW5ldyBTZXQpKS5hZGQoYSk7dGhpcy5QayE9PXZvaWQgMCYmdGhpcy5pc0Nvbm5lY3RlZCYmYS51eT8uKCl9KTtfLlhsLnByb3RvdHlwZS5saz1fLmthKDE3LGZ1bmN0aW9uKCl7dmFyIGE9MDtmb3IobGV0IGIgb2YgdGhpcylhKys7cmV0dXJuIGF9KTtfLllsLnByb3RvdHlwZS5saz1fLmthKDE2LGZ1bmN0aW9uKCl7Xy5abCh0aGlzKTtyZXR1cm4gdGhpcy5xaC5sZW5ndGh9KTtfLlJ2LnByb3RvdHlwZS5saz1fLmthKDE1LGZ1bmN0aW9uKCl7Xy5Tdih0aGlzKTtyZXR1cm4gdGhpcy5yaH0pOwpfLkkucHJvdG90eXBlLnFoPV8ua2EoMCxmdW5jdGlvbihhKXtfLnFmKHRoaXMuTGksYS5xaCk7Xy5wZih0aGlzLGEucWgsYS50aCk7YT1hLlduP2Euc2godGhpcyxhLlduLGEucWgsYS5yaCk6YS5zaCh0aGlzLGEucWgsbnVsbCxhLnJoKTtyZXR1cm4gYT09PW51bGw/dm9pZCAwOmF9KTtfLmFhPV8uaUUucHJvdG90eXBlO18uYWEuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF8uaUUodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9O18uYWEuTEw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aCp0aGlzLmhlaWdodH07Xy5hYS5hc3BlY3RSYXRpbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLndpZHRoL3RoaXMuaGVpZ2h0fTtfLmFhLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5MTCgpfTtfLmFhLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKXy5hYS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5hYS5yb3VuZD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5hYS5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGgqPWE7dGhpcy5oZWlnaHQqPXR5cGVvZiBiPT09Im51bWJlciI/YjphO3JldHVybiB0aGlzfTt0emE9IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIik7Xy5PSD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRJZCgpe3JldHVybiBfLkgodGhpcywyKX19OwpfLkhJPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWNpKCl7cmV0dXJuIF8uSCh0aGlzLDEpfXlrKCl7cmV0dXJuIF8ucHUodGhpcywxKX1raihhKXtyZXR1cm4gXy5paCh0aGlzLDIsYSl9fTtfLkhJLnByb3RvdHlwZS5wbD1fLmhhKDExKTtfLlNEYT17fTtURGE9Xy5BaShmdW5jdGlvbihhLGIsYyxkKXtpZihhLnFoIT09MSlyZXR1cm4hMTtfLkZ2KGIsYyxkLF8udmgoYS5yaCkpO3JldHVybiEwfSxfLkdpLF8uWGopOwpfLklJPV8uQ2koXy5RbGEsZnVuY3Rpb24oYSxiLGMpe2I9Xy55aShfLkN2LGIsITEpO2lmKGIhPW51bGwmJmIubGVuZ3RoKWZvcihfLlloKGEsYywyKSxfLlNoKGEucWgsYi5sZW5ndGgqOCksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO3N3aXRjaCh0eXBlb2YgZCl7Y2FzZSAibnVtYmVyIjpfLiR1KGEucWgsZCk7YnJlYWs7Y2FzZSAiYmlnaW50IjpkPV8uUGgoZCxfLlZ1LF8uV3UpO18uWnUoYS5xaCxkLmxvLGQuaGkpO2JyZWFrO2RlZmF1bHQ6ZD1fLlh1KGQpLF8uWnUoYS5xaCxkLmxvLGQuaGkpfX19LF8ua2spO18uSkk9WzAsXy54cixfLnpyXTtiemE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMucWgrIiJ9fTtlemE9LyYoW147XHM8Jl0rKTs/L2c7aXphPS8jfCQvO2p6YT0vWz8mXSgkfCMpLztwemE9LzxbXj5dKj58JlteO10rOy9nO3J6YT0vXmh0dHA6XC9cLy4qLztxemE9L1xzKy87c3phPS9bXGRcdTA2ZjAtXHUwNmY5XS87ClVEYT1jbGFzcyBleHRlbmRzIF8uVWdhe2NvbnN0cnVjdG9yKGEsYixjLGQpe3N1cGVyKCJjb250ZXh0LXJlcXVlc3QiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7dGhpcy5jb250ZXh0PWE7dGhpcy5xaD1iO3RoaXMuTmk9Yzt0aGlzLnN1YnNjcmliZT1kPz8hMX19Owp3emE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLlJFPXRoaXMuc3Vic2NyaWJlPSExO3RoaXMudmFsdWU9dm9pZCAwO3RoaXMucUw9KGMsZCk9Pnt0aGlzLnVuc3Vic2NyaWJlJiYodGhpcy51bnN1YnNjcmliZSE9PWQmJih0aGlzLlJFPSExLHRoaXMudW5zdWJzY3JpYmUoKSksdGhpcy5zdWJzY3JpYmV8fHRoaXMudW5zdWJzY3JpYmUoKSk7dGhpcy52YWx1ZT1jO18uY3AodGhpcy5ob3N0KTtpZighdGhpcy5SRXx8dGhpcy5zdWJzY3JpYmUpdGhpcy5SRT0hMCx0aGlzLk5pJiZ0aGlzLk5pKGMsZCk7dGhpcy51bnN1YnNjcmliZT1kfTt0aGlzLmhvc3Q9YTtiLmNvbnRleHQhPT12b2lkIDA/KHRoaXMuY29udGV4dD1iLmNvbnRleHQsdGhpcy5OaT1iLk5pLHRoaXMuc3Vic2NyaWJlPWIuc3Vic2NyaWJlPz8hMSk6KHRoaXMuY29udGV4dD1iLHRoaXMuTmk9dm9pZCAwLHRoaXMuc3Vic2NyaWJlPSExKTt0aGlzLmhvc3QuengodGhpcyl9dXkoKXt0aGlzLmhvc3QuZGlzcGF0Y2hFdmVudChuZXcgVURhKHRoaXMuY29udGV4dCwKdGhpcy5ob3N0LHRoaXMucUwsdGhpcy5zdWJzY3JpYmUpKX1GRCgpe3RoaXMudW5zdWJzY3JpYmUmJih0aGlzLnVuc3Vic2NyaWJlKCksdGhpcy51bnN1YnNjcmliZT12b2lkIDApfX07VkRhPWNsYXNze2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLnFofXNldCB2YWx1ZShhKXt0aGlzLnNldFZhbHVlKGEpfXNldFZhbHVlKGEsYj0hMSl7Yj1ifHwhT2JqZWN0LmlzKGEsdGhpcy5xaCk7dGhpcy5xaD1hO2ImJnRoaXMucmgoKX1jb25zdHJ1Y3RvcihhKXt0aGlzLkx3PW5ldyBNYXA7dGhpcy5yaD0oKT0+e2ZvcihsZXQgW2Ise1N4OmN9XW9mIHRoaXMuTHcpYih0aGlzLnFoLGMpfTthIT09dm9pZCAwJiYodGhpcy52YWx1ZT1hKX19O1dEYT1jbGFzcyBleHRlbmRzIF8uVWdhe2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoImNvbnRleHQtcHJvdmlkZXIiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7dGhpcy5jb250ZXh0PWE7dGhpcy5xaD1ifX07Cnh6YT1jbGFzcyBleHRlbmRzIFZEYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGIuY29udGV4dCE9PXZvaWQgMD9iLmluaXRpYWxWYWx1ZTp2b2lkIDApO3RoaXMuR089Yz0+e2lmKGMuY29udGV4dD09PXRoaXMuY29udGV4dCl7dmFyIGQ9Yy5xaD8/Yy5jb21wb3NlZFBhdGgoKVswXTtkIT09dGhpcy5ob3N0JiYoYy5zdG9wUHJvcGFnYXRpb24oKSx2emEodGhpcyxjLk5pLGQsYy5zdWJzY3JpYmUpKX19O3RoaXMuUE89Yz0+e2lmKGMuY29udGV4dD09PXRoaXMuY29udGV4dCYmKGMucWg/P2MuY29tcG9zZWRQYXRoKClbMF0pIT09dGhpcy5ob3N0KXt2YXIgZD1uZXcgU2V0O2ZvcihsZXQgW2Use2RNOmZ9XW9mIHRoaXMuTHcpZC5oYXMoZSl8fChkLmFkZChlKSxmLmRpc3BhdGNoRXZlbnQobmV3IFVEYSh0aGlzLmNvbnRleHQsZixlLCEwKSkpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fTt0aGlzLmhvc3Q9YTt0aGlzLmNvbnRleHQ9Yi5jb250ZXh0IT09dm9pZCAwP2IuY29udGV4dDpiO3RoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0LXJlcXVlc3QiLAp0aGlzLkdPKTt0aGlzLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dC1wcm92aWRlciIsdGhpcy5QTyk7dGhpcy5ob3N0Lnp4Py4odGhpcyl9dXkoKXt0aGlzLmhvc3QuZGlzcGF0Y2hFdmVudChuZXcgV0RhKHRoaXMuY29udGV4dCx0aGlzLmhvc3QpKX19O18uZ0g9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLktJPVswLF8udXIsLTFdO18uTkg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VHlwZSgpe3JldHVybiBfLlBnKHRoaXMsMSl9SG0oKXtyZXR1cm4gXy5PZyh0aGlzLDUpfWdldEhlYWRpbmcoKXtyZXR1cm4gXy5PZyh0aGlzLDgpfXNldEhlYWRpbmcoYSl7cmV0dXJuIF8uQXUodGhpcyw4LGEpfWdldFRpbHQoKXtyZXR1cm4gXy5PZyh0aGlzLDkpfXNldFRpbHQoYSl7cmV0dXJuIF8uQXUodGhpcyw5LGEpfWZuKCl7cmV0dXJuIF8uT2codGhpcywxMCl9fTsKXy5DQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0SWQoKXtyZXR1cm4gXy5IKHRoaXMsMSl9UXEoKXtyZXR1cm4gXy5QZyh0aGlzLDIsOTkpfWdldFR5cGUoKXtyZXR1cm4gXy5QZyh0aGlzLDMsMSl9RmkoKXtyZXR1cm4gXy5LZyh0aGlzLDcpfUJpKCl7cmV0dXJuIF8uS2codGhpcyw4KX19O18uS0g9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9b2ooKXtyZXR1cm4gXy5BZyh0aGlzLF8uTkgsMil9WWwoYSl7cmV0dXJuIF8uRWcodGhpcyxfLk5ILDIsYSl9fTt1Q2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtfLkdIPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfUpsKCl7cmV0dXJuIF8uSCh0aGlzLDEpfWdldFF1ZXJ5KCl7cmV0dXJuIF8uSCh0aGlzLDIpfXNldFF1ZXJ5KGEpe3JldHVybiBfLmloKHRoaXMsMixhKX19O1hEYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19OwpoQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtxQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtZRGE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0VGltZSgpe3JldHVybiBfLk5nKHRoaXMsOCl9fTtISD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1IbSgpe3JldHVybiBfLk9nKHRoaXMsMyl9fTtGSD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRMb2NhdGlvbigpe3JldHVybiBfLkFnKHRoaXMsSEgsMil9fTtFSD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1zZXRPcHRpb25zKGEpe3JldHVybiBfLkVnKHRoaXMsWURhLDIsYSl9bnAoKXtyZXR1cm4gXy5QZyh0aGlzLDMsNil9aGFzRm9jdXMoKXtyZXR1cm4gXy5JZyh0aGlzLDcpIT1udWxsfX07bkNhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07CnBDYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O2xDYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O21DYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1KbCgpe3JldHVybiBfLkgodGhpcywyKX19O29DYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O18uSkg9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9T2woYSl7cmV0dXJuIF8ua2godGhpcywxLGEpfWdldENvbnRlbnQoKXtyZXR1cm4gXy5QZyh0aGlzLDIpfXNldENvbnRlbnQoYSl7cmV0dXJuIF8ua2godGhpcywyLGEpfX07Xy5KSC5wcm90b3R5cGUucmg9Xy5oYSgzKTsKakNhPWNsYXNzIGV4dGVuZHMgXy5Je2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfWdldFF1ZXJ5KCl7cmV0dXJuIF8uQWcodGhpcyxYRGEsMSl9c2V0UXVlcnkoYSl7cmV0dXJuIF8uRWcodGhpcyxYRGEsMSxhKX19O3JDYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O2ZDYT1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRRdWVyeSgpe3JldHVybiBfLkgodGhpcywxKX1zZXRRdWVyeShhKXtyZXR1cm4gXy5paCh0aGlzLDEsYSl9fTtrQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtpQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt0Q2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTtzQ2E9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTsKXy5ESD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRDb250ZXh0KCl7cmV0dXJuIF8uQWcodGhpcyxfLkRILDEpfWdldERpcmVjdGlvbnMoKXtyZXR1cm4gXy5BZyh0aGlzLEVILDQpfXNldERpcmVjdGlvbnMoYSl7cmV0dXJuIF8uRWcodGhpcyxFSCw0LGEpfX07Xy5ESC5wcm90b3R5cGUuWWs9Xy5oYSg1NSk7Xy5ESC5wcm90b3R5cGUuWnY9Xy5oYSg0Myk7Xy5DSD1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O1pEYT1bMCxfLlUsXy5QLC0xLFswLF8uUF0sXy5SXTskRGE9WzAsXy5DcixfLlosXy5DcixfLlosWkRhLF8uQXIsXy5SLC0xLF8uUCxfLlosLTEsMSxfLkNyLFswLF8uWl0sXy5BcixfLlAsXy5ZLFswLF8uUF0sWzAsXy5aXSxbMCxfLlpdLFswLF8uVSxfLlosLTEsWzAsXy5QLC0xXV0sWzAsXy5SLC0yXSxbMCxfLlosLTFdLFswLF8uWixfLkFyXSxfLlksWzAsXy5XeSwtMSxfLlVdXTsKYUVhPVswLF8uWixfLnVyLC0xLF8uV3ksXy51cixfLld5LC00XTtiRWE9WzAsXy4keSxfLlIsLTEsXy5VLF8uWl07TEk9WzAsXy5VLC0xLF8uUiwtMSxaRGEsYkVhLF8uWixfLndBLFswLF8uUl0sXy5aLFswLF8uJHksXy5aXSxfLlosWzAsXy5VLF8uWl0sWzAsXy5uel0sXy5VLC0xLF8ubnosWzAsXy5VLF8uWl0sXy5VXTtjRWE9WzAsXy5VLExJLFswLF8uVV1dO2RFYT1bMCxbMCxfLlUsLTFdLGNFYV07TUk9WzAsXy51ciwtMl07ZUVhPVswLF8uVV07CmZFYT1bMCwoKT0+ZkVhLFswLF8uVSwtMSxbMCxfLlUsLTIsTUksXy5aXSxfLlIsJERhLF8uWixfLm56XSxMSSxbMCxfLlksWzAsTEksTUksXy5ZLFswLE1JLF8uV3ksXy5VXSxfLlosXy5VLC0xXSxbMCxfLlIsLTIsXy5aLF8uQ3IsXy5aLC0xLF8udnIsXy5VLF8uUiwtMl0sXy5aLC0xLF8uUCxbMCxfLlAsLTJdLF8uWiwxLF8ubnosLTEsXy5aXSxbMCxfLlIsXy5aLC0xLF8uVV0sWzAsXy5VLC0yXSxbMCxbMCxfLlUsLTFdLF8uWixbMCwxLF8ubnpdLFswLF8uVSwtMl0sWzAsXy5VLC0xLDEsXy5VXV0sWzAsXy5aLF8uVSxbMCxfLlpdLF8uVSxbMCxfLlosZEVhLFswLF8uWixfLnZyXSxbMCxfLlUsLTFdXSxbMCxfLlVdLFswLF8uWixbMCxbMCxfLlUsXy5QXV1dXSxbMCxfLlJdLFswLF8uWiwtMV0sWzAsMSxfLlUsXy5aLF8uVSwtMV0sWzAsXy5aLFswLF8uWSxiRWFdXSxlRWEsWzAsZEVhXSxbMCxlRWEsXy5aLFswLDIsXy5VeiwtMV1dLFswLF8ubnosXy5ZLFswLF8ubnpdLFswLFswLApfLlUsXy5uel0sXy5aXV0sWzAsXy5aLC0xXSxbMCxfLlUsLTFdLFswLF8uQ3IsXy5ZLFswLF8uVV1dLFswLDEsXy5aLFswLF8uVSxfLlBdXSxbMCxfLlVdLFswLF8uWl0sWzAsY0VhXSxbMCw4LF8uWl0sWzAsXy5VXSxbMCxfLlksWzAsXy5aLC0xLF8udnJdLF8uWSxbMCxfLlosXy5ZLFswLDEsXy5aLFswLF8uVV0sXy5VLC0yXSxfLnZyXV0sWzAsXy5ZLFswLExJXV0sWzAsXy5ZLFswLF8uWl1dLFswLF8uUixbMCxfLlpdLF8uVSwtMl1dOwpnRWE9WzAsXy5aLFswLF8uVSwtMV0sWzAsXy5aLGFFYSxbMCxfLlUsXy5aLC0xLF8uUixfLlUsLTEsXy5QLC0xLFswLF8uUixfLlAsYUVhLF8uWl0sWzAsXy5aXV0sXy5SLF8uVSxfLlpdLGZFYSxbMCxfLkNyLC0xLF8uUF0sWzAsXy5aXSxbMCxfLlVdLF8uVSxbMCxfLlUsLTddLFswLF8uWiwtMSxbMCxfLlUsLTEsXy53QSxfLlVdLF8uWixbMCxbMCxfLlUsXy5BcixfLlUsLTMsWzAsXy5VLC0xXV0sXy53QV1dLFswLFswLF8uWl0sWzAsXy53cixfLlUsXy5ZLFswLF8uVV0sJERhLF8uUiwtMV0sXy5SLC0xLF8uVSxfLlIsLTIsXy5QLFswLF8uWixfLlVdLF8uUixbMCxfLlVdXSxfLlIsXy5VLFswLF8uVV0sMSxbMCxbMCxfLm56LC0xXV0sWzAsXy5VLC0yLFswLF8uWl1dLFswLF8uWixfLlVdXTtfLk5JPVswLF8uS0ksLTFdO3p6YT0hMTtfLk9JPWNsYXNzIGV4dGVuZHMgXy50Qnt9O18uT0kucHJvdG90eXBlLkVBPV8uaGEoNTgpO18uT0kucHJvdG90eXBlLkZBPV8uaGEoNTcpO3ZhciBoRWE7aEVhPVtdO18uUEk9Y2xhc3MgZXh0ZW5kcyBfLk9Je2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLnhoPXRoaXMubWV0YWRhdGE9bnVsbH1yaCgpe3JldHVyblsuLi5oRWEsbmV3IF8uJHQoe1siWC1Hb29nLUFwaS1LZXkiXToiIn0pXX19O18uUEkucHJvdG90eXBlLkZBPV8uaGEoNTYpO3ZhciBpRWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk1KPV8uQkI7dGhpcy5lcj1fLnJyYTt0aGlzLldMPUN6YTt0aGlzLkFyPV8uZ0Y7dGhpcy5kTD1fLk9JO3RoaXMuZUw9Xy5QSX19O18uSWwoInV0aWwiLG5ldyBpRWEpO3ZhciBCQ2E9Xy5mRShfLk9ILF8uSnopO3ZhciBqRWE9e307dmFyIEp6YT1bIm1vdXNlZW50ZXIiLCJtb3VzZWxlYXZlIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmxlYXZlIl0sa0VhPVsiZm9jdXMiLCJibHVyIiwiZXJyb3IiLCJsb2FkIiwidG9nZ2xlIl07dmFyIGxFYT10eXBlb2YgbmF2aWdhdG9yIT09InVuZGVmaW5lZCImJi9NYWNpbnRvc2gvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksVENhPXR5cGVvZiBuYXZpZ2F0b3IhPT0idW5kZWZpbmVkIiYmIS9PcGVyYXxXZWJLaXQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJi9HZWNrby8udGVzdChuYXZpZ2F0b3IucHJvZHVjdCk7dmFyIG1FYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnFoPWF9RW4oKXtyZXR1cm4gdGhpcy5xaC5laWN9Y2xvbmUoKXt2YXIgYT10aGlzLnFoO3JldHVybiBuZXcgbUVhKHtldmVudFR5cGU6YS5ldmVudFR5cGUsZXZlbnQ6YS5ldmVudCx0YXJnZXRFbGVtZW50OmEudGFyZ2V0RWxlbWVudCxlaWM6YS5laWMsZWlhOmEuZWlhLHRpbWVTdGFtcDphLnRpbWVTdGFtcCxlaXJwOmEuZWlycCxlaWFjazphLmVpYWNrLGVpcjphLmVpcn0pfX07dmFyIG5FYT17fSxvRWE9L1xzKjtccyovLFFDYT1jbGFzc3tjb25zdHJ1Y3Rvcigpeyh7eUY6Yj0hMSxVQzphPSEwfT17eUY6ITB9KTt2YXIgYSxiO3RoaXMuVUM9ITA7dGhpcy55Rj1iO3RoaXMuVUM9YX1yaChhKXt2YXIgYjtpZihiPXRoaXMuVUMmJmEuZXZlbnRUeXBlPT09ImNsaWNrIiliPWEuZXZlbnQsYj1sRWEmJmIubWV0YUtleXx8IWxFYSYmYi5jdHJsS2V5fHxiLndoaWNoPT09Mnx8Yi53aGljaD09bnVsbCYmYi5idXR0b249PT00fHxiLnNoaWZ0S2V5O2ImJihhLmV2ZW50VHlwZT0iY2xpY2ttb2QiKX1xaChhKXtpZighYS5laXIpe2Zvcih2YXIgYj1hLnRhcmdldEVsZW1lbnQ7YiYmYiE9PWEuZWljOyl7aWYoYi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgYz1iLGQ9YSxlPWMuX19qc2FjdGlvbjtpZighZSl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImpzYWN0aW9uIik7aWYoZil7ZT1qRWFbZl07aWYoIWUpe2U9e307dmFyIGc9Zi5zcGxpdChvRWEpO2ZvcihsZXQgaD0KMDtoPGcubGVuZ3RoO2grKyl7bGV0IGs9Z1toXTtpZighayljb250aW51ZTtsZXQgbT1rLmluZGV4T2YoIjoiKSxwPW0hPT0tMTtlW3A/ay5zdWJzdHIoMCxtKS50cmltKCk6ImNsaWNrIl09cD9rLnN1YnN0cihtKzEpLnRyaW0oKTprfWpFYVtmXT1lfWMuX19qc2FjdGlvbj1lfWVsc2UgZT1uRWEsYy5fX2pzYWN0aW9uPWV9ZT1lW2QuZXZlbnRUeXBlXTtlIT09dm9pZCAwJiYoZC5laWE9W2UsY10pfWlmKGEuZWlhKWJyZWFrO2E6e2lmKGM9Yi5fX293bmVyKXtiPWM7YnJlYWsgYX1iPWIucGFyZW50Tm9kZTtiPWI/Lm5vZGVOYW1lPT09IiNkb2N1bWVudC1mcmFnbWVudCI/Yj8uaG9zdD8/bnVsbDpifX1pZigoYj1hLmVpYSkmJnRoaXMueUYmJihhLmV2ZW50VHlwZT09PSJtb3VzZWVudGVyInx8YS5ldmVudFR5cGU9PT0ibW91c2VsZWF2ZSJ8fGEuZXZlbnRUeXBlPT09InBvaW50ZXJlbnRlciJ8fGEuZXZlbnRUeXBlPT09InBvaW50ZXJsZWF2ZSIpKWlmKGM9YS5ldmVudCxkPWEuZXZlbnRUeXBlLAplPWJbMV0sZj1jLnJlbGF0ZWRUYXJnZXQsIShjLnR5cGU9PT0ibW91c2VvdmVyIiYmZD09PSJtb3VzZWVudGVyInx8Yy50eXBlPT09Im1vdXNlb3V0IiYmZD09PSJtb3VzZWxlYXZlInx8Yy50eXBlPT09InBvaW50ZXJvdmVyIiYmZD09PSJwb2ludGVyZW50ZXIifHxjLnR5cGU9PT0icG9pbnRlcm91dCImJmQ9PT0icG9pbnRlcmxlYXZlIil8fGYmJihmPT09ZXx8ZS5jb250YWlucyhmKSkpYS5laWE9dm9pZCAwO2Vsc2V7Yz1hLmV2ZW50O2Q9YlsxXTtlPXt9O2ZvcihsZXQgaCBpbiBjKXtpZihoPT09InNyY0VsZW1lbnQifHxoPT09InRhcmdldCIpY29udGludWU7Zj1oO2c9Y1tmXTt0eXBlb2YgZyE9PSJmdW5jdGlvbiImJihlW2ZdPWcpfWUudHlwZT1jLnR5cGU9PT0ibW91c2VvdmVyIj8ibW91c2VlbnRlciI6Yy50eXBlPT09Im1vdXNlb3V0Ij8ibW91c2VsZWF2ZSI6Yy50eXBlPT09InBvaW50ZXJvdmVyIj8icG9pbnRlcmVudGVyIjoicG9pbnRlcmxlYXZlIjtlLnRhcmdldD1lLnNyY0VsZW1lbnQ9CmQ7ZS5idWJibGVzPSExO2UuX29yaWdpbmFsRXZlbnQ9YzthLmV2ZW50PWU7YS50YXJnZXRFbGVtZW50PWJbMV19YS5laXI9ITB9fX07KGZ1bmN0aW9uKCl7dHJ5e2lmKHR5cGVvZiB3aW5kb3cuRXZlbnRUYXJnZXQ9PT0iZnVuY3Rpb24iKXJldHVybiBuZXcgRXZlbnRUYXJnZXR9Y2F0Y2goYSl7fXRyeXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9Y2F0Y2goYSl7fXJldHVybiBudWxsfSkoKTt2YXIgT0NhPWNsYXNze2NvbnN0cnVjdG9yKGEse2JBOmIseUE6Y309e30pe3RoaXMuc2g9YTt0aGlzLnFoPSExO3RoaXMucmg9W107dGhpcy5iQT1iO3RoaXMueUE9Y310dShhKXt2YXIgYj1uZXcgbUVhKGEpO3RoaXMuYkE/LnJoKGEpO3RoaXMuYkE/LnFoKGEpOyEoYT1EemEoYikpfHxhLmVsZW1lbnQudGFnTmFtZSE9PSJBInx8Yi5xaC5ldmVudFR5cGUhPT0iY2xpY2siJiZiLnFoLmV2ZW50VHlwZSE9PSJjbGlja21vZCJ8fChhPWIucWguZXZlbnQsYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6YS5yZXR1cm5WYWx1ZT0hMSk7dGhpcy55QSYmYi5xaC5laXJwP0V6YSh0aGlzLGIpOnRoaXMuc2goYil9fTt2YXIgcEVhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuZWxlbWVudD1hO3RoaXMucWg9W119YWRkRXZlbnRMaXN0ZW5lcihhLGIsYyl7dmFyIGQ9dGhpcy5xaCxlPWQucHVzaCxmPXRoaXMuZWxlbWVudDtiPWIodGhpcy5lbGVtZW50KTt2YXIgZz0hMTtrRWEuaW5kZXhPZihhKT49MCYmKGc9ITApO2YuYWRkRXZlbnRMaXN0ZW5lcihhLGIsdHlwZW9mIGM9PT0iYm9vbGVhbiI/e2NhcHR1cmU6ZyxwYXNzaXZlOmN9OmcpO2UuY2FsbChkLHtldmVudFR5cGU6YSxvcDpiLGNhcHR1cmU6ZyxwYXNzaXZlOmN9KX1abygpe2ZvcihsZXQgYz0wO2M8dGhpcy5xaC5sZW5ndGg7YysrKXt2YXIgYT10aGlzLmVsZW1lbnQsYj10aGlzLnFoW2NdO2EucmVtb3ZlRXZlbnRMaXN0ZW5lcj9hLnJlbW92ZUV2ZW50TGlzdGVuZXIoYi5ldmVudFR5cGUsYi5vcCx0eXBlb2YgYi5wYXNzaXZlPT09ImJvb2xlYW4iP3tjYXB0dXJlOmIuY2FwdHVyZX06Yi5jYXB0dXJlKTphLmRldGFjaEV2ZW50JiZhLmRldGFjaEV2ZW50KGBvbiR7Yi5ldmVudFR5cGV9YCwKYi5vcCl9dGhpcy5xaD1bXX19O3ZhciBNQ2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0b3BQcm9wYWdhdGlvbj0hMDt0aGlzLnFoPVtdO3RoaXMucmg9W107dGhpcy5zaD1bXX1hZGRFdmVudExpc3RlbmVyKGEsYixjKXtmb3IobGV0IGQ9MDtkPHRoaXMucWgubGVuZ3RoO2QrKyl0aGlzLnFoW2RdLmFkZEV2ZW50TGlzdGVuZXIoYSxiLGMpO3RoaXMuc2gucHVzaChkPT57ZC5hZGRFdmVudExpc3RlbmVyKGEsYixjKX0pfVpvKCl7dmFyIGE9Wy4uLnRoaXMucWgsLi4udGhpcy5yaF07Zm9yKGxldCBiPTA7YjxhLmxlbmd0aDtiKyspYVtiXS5abygpO3RoaXMucWg9W107dGhpcy5yaD1bXTt0aGlzLnNoPVtdfX07dmFyIE5DYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLlBpPXt9O3RoaXMudGg9e307dGhpcy5zaD1udWxsO3RoaXMucWg9W107dGhpcy5yaD1hfWhhbmRsZUV2ZW50KGEsYixjKXt2YXIgZD1iLnRhcmdldCxlPURhdGUubm93KCk7SXphKHRoaXMse2V2ZW50VHlwZTphLGV2ZW50OmIsdGFyZ2V0RWxlbWVudDpkLGVpYzpjLHRpbWVTdGFtcDplLGVpYTp2b2lkIDAsZWlycDp2b2lkIDAsZWlhY2s6dm9pZCAwfSl9b3AoYSl7cmV0dXJuIHRoaXMuUGlbYV19Wm8oKXt0aGlzLnJoPy5abygpO3RoaXMucmg9bnVsbDt0aGlzLlBpPXt9O3RoaXMudGg9e307dGhpcy5zaD1udWxsO3RoaXMucWg9W119ZWNyZChhKXt0aGlzLnNoPWE7aWYodGhpcy5xaD8ubGVuZ3RoKXtmb3IoYT0wO2E8dGhpcy5xaC5sZW5ndGg7YSsrKUl6YSh0aGlzLHRoaXMucWhbYV0pO3RoaXMucWg9bnVsbH19fTt2YXIgTHphPVJlZ0V4cCgiXmRhdGE6aW1hZ2UvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwfHgtaWNvbik7YmFzZTY0LFstKy9fYS16MC05XSsoPzo9fCUzZCkqJCIsImkiKSxOemE9UmVnRXhwKCJeKD86WzAtOV0rKShbIF0qO1sgXSp1cmw9KT8oLiopJCIpLFZ6YT17Ymx1cjohMCxicmlnaHRuZXNzOiEwLGNhbGM6ITAsY2lyY2xlOiEwLGNsYW1wOiEwLCJjb25pYy1ncmFkaWVudCI6ITAsY29udHJhc3Q6ITAsY291bnRlcjohMCxjb3VudGVyczohMCwiY3ViaWMtYmV6aWVyIjohMCwiZHJvcC1zaGFkb3ciOiEwLGVsbGlwc2U6ITAsZ3JheXNjYWxlOiEwLGhzbDohMCxoc2xhOiEwLCJodWUtcm90YXRlIjohMCxpbnNldDohMCxpbnZlcnQ6ITAsb3BhY2l0eTohMCwibGluZWFyLWdyYWRpZW50IjohMCxtYXRyaXg6ITAsbWF0cml4M2Q6ITAsbWF4OiEwLG1pbjohMCxtaW5tYXg6ITAscG9seWdvbjohMCwicmFkaWFsLWdyYWRpZW50IjohMCxyZ2I6ITAscmdiYTohMCxyZWN0OiEwLApyZXBlYXQ6ITAscm90YXRlOiEwLHJvdGF0ZTNkOiEwLHJvdGF0ZXg6ITAscm90YXRleTohMCxyb3RhdGV6OiEwLHNhdHVyYXRlOiEwLHNlcGlhOiEwLHNjYWxlOiEwLHNjYWxlM2Q6ITAsc2NhbGV4OiEwLHNjYWxleTohMCxzY2FsZXo6ITAsc3RlcHM6ITAsc2tldzohMCxza2V3eDohMCxza2V3eTohMCx0cmFuc2xhdGU6ITAsdHJhbnNsYXRlM2Q6ITAsdHJhbnNsYXRleDohMCx0cmFuc2xhdGV5OiEwLHRyYW5zbGF0ZXo6ITAsInZhciI6ITB9LFB6YT1SZWdFeHAoIl4oPzpbKi9dPyg/Oig/OlsrXFwtLiwhIyVfYS16QS1aMC05XHRdfCApfFxcKXxbYS16QS1aMC05XVxcKHwkKSkqJCIpLHFFYT1SZWdFeHAoIl4oPzpbKi9dPyg/Oig/OlwiKD86W15cXHgwMFwiXFxcXFxcblxcclxcZlxcdTAwODVcXHUwMDBiXFx1MjAyOFxcdTIwMjldfFxcXFwoPzpbXFx4MjEtXFx4MmZcXHgzYS1cXHg0MFxceDQ3LVxceDYwXFx4NjctXFx4N2VdfFswLTlhLWZBLUZdezEsNn1bIFx0XT8pKSpcInwnKD86W15cXHgwMCdcXFxcXFxuXFxyXFxmXFx1MDA4NVxcdTAwMGJcXHUyMDI4XFx1MjAyOV18XFxcXCg/OltcXHgyMS1cXHgyZlxceDNhLVxceDQwXFx4NDctXFx4NjBcXHg2Ny1cXHg3ZV18WzAtOWEtZkEtRl17MSw2fVsgXHRdPykpKicpfCg/OlsrXFwtLiwhIyVfYS16QS1aMC05XHRdfCApfCQpKSokIiksClV6YT1SZWdFeHAoIl4tKD86bW96fG1zfG98d2Via2l0fGNzczMpLSguKikkIik7dmFyIHVGPXt9O18ucWIoXy5wRixsRik7Xy5wRi5wcm90b3R5cGUucGw9Xy5oYSgxMCk7Xy5wRi5wcm90b3R5cGUua2o9ZnVuY3Rpb24oYSl7dGhpcy5xaC5sYW5ndWFnZT1hfTtfLnBGLnByb3RvdHlwZS5NQT1mdW5jdGlvbigpe3JldHVybiEhbUYodGhpcywiaXNfcnRsIil9O3ZhciBuQmE9MCxZemE9MCxxRj1udWxsO3NGLnByb3RvdHlwZS5zaD1mdW5jdGlvbigpe3ZhciBhPSJFdmFsQ29udGV4dHsiO2ZvcihsZXQgYiBpbiB0aGlzLnFoKWErPWIrIjogIit0eXBlb2YgdGhpcy5xaFtiXSsiLCAiO3JldHVybiBhKyJ9In07dmFyIHlBYT0vWyciXChdLyxCQWE9WyJib3JkZXItY29sb3IiLCJib3JkZXItc3R5bGUiLCJib3JkZXItd2lkdGgiLCJtYXJnaW4iLCJwYWRkaW5nIl0sekFhPS9sZWZ0L2csQUFhPS9yaWdodC9nLENBYT0vXHMrLzt2YXIgRkFhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5yaD0iIjt0aGlzLnFoPWJ8fHt9O2lmKHR5cGVvZiBhPT09InN0cmluZyIpdGhpcy5yaD1hO2Vsc2V7Yj1hLnFoO3RoaXMucmg9YS5nZXRLZXkoKTtmb3IobGV0IGMgaW4gYil0aGlzLnFoW2NdPT1udWxsJiYodGhpcy5xaFtjXT1iW2NdKX19Z2V0S2V5KCl7cmV0dXJuIHRoaXMucmh9fTt2YXIgWkFhPXthY3Rpb246ITAsY2l0ZTohMCxkYXRhOiEwLGZvcm1hY3Rpb246ITAsaHJlZjohMCxpY29uOiEwLG1hbmlmZXN0OiEwLHBvc3RlcjohMCxzcmM6ITB9O3ZhciByRWE9eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifSxyRz17fTtmb3IobGV0IGEgaW4gckVhKXJHW3JFYVthXV09YTt2YXIgakFhPVJlZ0V4cCgiXjwvPyhifHV8aXxlbXxicnxzdWJ8c3VwfHdicnxzcGFuKSggZGlyPShydGx8bHRyfCdsdHInfCdydGwnfFwibHRyXCJ8XCJydGxcIikpPz4iKSxrQWE9UmVnRXhwKCJeJihbYS16QS1aXSt8I1swLTldK3wjeFswLTlhLWZBLUZdKyk7IiksbEFhPXsiPCI6IiZsdDsiLCI+IjoiJmd0OyIsIiYiOiImYW1wOyIsJyInOiImcXVvdDsifSxlQWE9LyYvZyxmQWE9LzwvZyxnQWE9Lz4vZyxoQWE9LyIvZyxkQWE9L1smPD4iXS8sREY9bnVsbDt2YXIgbkFhPXs5OjEsMTE6MywxMDo0LDEyOjUsMTM6NiwxNDo3fTt2YXIgREJhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuemg9YTt0aGlzLnhoPXRoaXMud2g9dGhpcy5zaD10aGlzLnFoPW51bGw7dGhpcy55aD10aGlzLnRoPTA7dGhpcy5BaD0hMTt0aGlzLnJoPS0xO3RoaXMuQmg9KytzRWF9bmFtZSgpe3JldHVybiB0aGlzLnpofWlkKCl7cmV0dXJuIHRoaXMuQmh9cmVzZXQoYSl7aWYoIXRoaXMuQWgmJih0aGlzLkFoPSEwLHRoaXMucmg9LTEsdGhpcy5xaCE9bnVsbCkpe2Zvcih2YXIgYj0wO2I8dGhpcy5xaC5sZW5ndGg7Yis9NylpZih0aGlzLnFoW2IrNl0pe3ZhciBjPXRoaXMucWguc3BsaWNlKGIsNyk7Yi09Nzt0aGlzLndofHwodGhpcy53aD1bXSk7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy53aCxjKX10aGlzLnloPTA7aWYoYSlmb3IoYj0wO2I8dGhpcy5xaC5sZW5ndGg7Yis9NylpZihjPXRoaXMucWhbYis1XSx0aGlzLnFoW2IrMF09PS0xJiZjPT1hKXt0aGlzLnloPWI7YnJlYWt9dGhpcy55aD09MD90aGlzLnJoPTA6dGhpcy5zaD0KdGhpcy5xaC5zcGxpY2UodGhpcy55aCx0aGlzLnFoLmxlbmd0aCl9fWFwcGx5KGEpe3ZhciBiPWEubm9kZU5hbWU7Yj1iPT0iaW5wdXQifHxiPT0iSU5QVVQifHxiPT0ib3B0aW9uInx8Yj09Ik9QVElPTiJ8fGI9PSJzZWxlY3QifHxiPT0iU0VMRUNUInx8Yj09InRleHRhcmVhInx8Yj09IlRFWFRBUkVBIjt0aGlzLkFoPSExO2E6e3ZhciBjPXRoaXMucWg9PW51bGw/MDp0aGlzLnFoLmxlbmd0aDt2YXIgZD10aGlzLnJoPT1jO2Q/dGhpcy5zaD10aGlzLnFoOnRoaXMucmghPS0xJiZGRih0aGlzKTtpZihkKXtpZihiKWZvcihkPTA7ZDxjO2QrPTcpe3ZhciBlPXRoaXMucWhbZCsxXTtpZigoZT09ImNoZWNrZWQifHxlPT0idmFsdWUiKSYmdGhpcy5xaFtkKzVdIT1hW2VdKXtjPSExO2JyZWFrIGF9fWM9ITB9ZWxzZSBjPSExfWlmKCFjKXtjPW51bGw7aWYodGhpcy5zaCE9bnVsbCYmKGQ9Yz17fSwodGhpcy50aCY3NjgpIT0wJiZ0aGlzLnNoIT1udWxsKSl7ZT10aGlzLnNoLmxlbmd0aDtmb3IodmFyIGY9CjA7ZjxlO2YrPTcpe2lmKHRoaXMuc2hbZis1XT09bnVsbCljb250aW51ZTt2YXIgZz10aGlzLnNoW2YrMF0saD10aGlzLnNoW2YrMV0saz10aGlzLnNoW2YrMl07Zz09NXx8Zz09Nz9kW2grIi4iK2tdPSEwOmchPS0xJiZnIT0xOCYmZyE9MjAmJihkW2hdPSEwKX19dmFyIG09IiI7ZT1kPSIiO2Y9bnVsbDtnPSExO3ZhciBwPW51bGw7YS5oYXNBdHRyaWJ1dGUoImNsYXNzIikmJihwPWEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpLnNwbGl0KCIgIikpO2g9KHRoaXMudGgmODMyKSE9MD8iIjpudWxsO2s9IiI7dmFyIHE9dGhpcy5xaCx1PXE/cS5sZW5ndGg6MDtmb3IobGV0IFE9MDtRPHU7USs9Nyl7bGV0IGNhPXFbUSs1XTt2YXIgeD1xW1ErMF0sej1xW1ErMV07bGV0IGlhPXFbUSsyXTt2YXIgQj1xW1ErM107bGV0IEdhPXFbUSs2XTtpZihjYSE9PW51bGwmJmghPW51bGwmJiFHYSlzd2l0Y2goeCl7Y2FzZSAtMTpoKz1jYSsiLCI7YnJlYWs7Y2FzZSA3OmNhc2UgNTpoKz14KyIuIitpYSsiLCI7CmJyZWFrO2Nhc2UgMTM6aCs9eCsiLiIreisiLiIraWErIiwiO2JyZWFrO2Nhc2UgMTg6Y2FzZSAyMDpicmVhaztkZWZhdWx0OmgrPXgrIi4iK3orIiwifWlmKCEoUTx0aGlzLnloKSlzd2l0Y2goYyE9bnVsbCYmY2EhPT12b2lkIDAmJih4PT01fHx4PT03P2RlbGV0ZSBjW3orIi4iK2lhXTpkZWxldGUgY1t6XSkseCl7Y2FzZSA3OmNhPT09bnVsbD9wIT1udWxsJiZfLnljKHAsaWEpOmNhIT1udWxsJiYocD09bnVsbD9wPVtpYV06Xy52YyhwLGlhKXx8cC5wdXNoKGlhKSk7YnJlYWs7Y2FzZSA0OmNhPT09bnVsbD9hLnN0eWxlLmNzc1RleHQ9IiI6Y2EhPT12b2lkIDAmJihhLnN0eWxlLmNzc1RleHQ9RUYoQixjYSkpO2Zvcih2YXIgSyBpbiBjKV8uRWIoSywic3R5bGUuIikmJmRlbGV0ZSBjW0tdO2JyZWFrO2Nhc2UgNTp0cnl7dmFyIE89aWEucmVwbGFjZSgvLShcUykvZyxxQWEpO2Euc3R5bGVbT10hPWNhJiYoYS5zdHlsZVtPXT1jYXx8IiIpfWNhdGNoKExhKXt9YnJlYWs7Y2FzZSA4OmY9PQpudWxsJiYoZj17fSk7Zlt6XT1jYT09PW51bGw/bnVsbDpjYT9bY2EsbnVsbCxCXTpbYVt6XXx8YS5nZXRBdHRyaWJ1dGUoeil8fCIiLG51bGwsQl07YnJlYWs7Y2FzZSAxODpjYSE9bnVsbCYmKHo9PSJqc2wiP20rPWNhOno9PSJqc3ZzIiYmKGUrPWNhKSk7YnJlYWs7Y2FzZSAyMjpjYT09PW51bGw/YS5yZW1vdmVBdHRyaWJ1dGUoImpzYWN0aW9uIik6Y2EhPW51bGwmJihxW1ErNF0mJihjYT1FRShjYSkpLGsmJihrKz0iOyIpLGsrPWNhKTticmVhaztjYXNlIDIwOmNhIT1udWxsJiYoZCYmKGQrPSIsIiksZCs9Y2EpO2JyZWFrO2Nhc2UgMDpjYT09PW51bGw/YS5yZW1vdmVBdHRyaWJ1dGUoeik6Y2EhPW51bGwmJihxW1ErNF0mJihjYT1FRShjYSkpLGNhPUVGKEIsY2EpLHg9YS5ub2RlTmFtZSwhKHghPSJDQU5WQVMiJiZ4IT0iY2FudmFzInx8eiE9IndpZHRoIiYmeiE9ImhlaWdodCIpJiZjYT09YS5nZXRBdHRyaWJ1dGUoeil8fGEuc2V0QXR0cmlidXRlKHosY2EpKTtpZihiKWlmKHo9PQoiY2hlY2tlZCIpZz0hMDtlbHNlIGlmKHg9eix4PXgudG9Mb3dlckNhc2UoKSx4PT0idmFsdWUifHx4PT0iY2hlY2tlZCJ8fHg9PSJzZWxlY3RlZCJ8fHg9PSJzZWxlY3RlZGluZGV4Iil6PXJHLmhhc093blByb3BlcnR5KHopP3JHW3pdOnosYVt6XSE9Y2EmJihhW3pdPWNhKTticmVhaztjYXNlIDE0OmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDEwOmNhc2UgOTpjYXNlIDEzOmY9PW51bGwmJihmPXt9KSxCPWZbel0sQiE9PW51bGwmJihCfHwoQj1mW3pdPVthW3pdfHxhLmdldEF0dHJpYnV0ZSh6KXx8IiIsbnVsbCxudWxsXSksb0FhKEIseCxpYSxjYSkpfX1pZihjIT1udWxsKWZvcih2YXIgQSBpbiBjKWlmKF8uRWIoQSwiY2xhc3MuIikpXy55YyhwLEEuc3Vic3RyKDYpKTtlbHNlIGlmKF8uRWIoQSwic3R5bGUuIikpdHJ5e2Euc3R5bGVbQS5zdWJzdHIoNikucmVwbGFjZSgvLShcUykvZyxxQWEpXT0iIn1jYXRjaChRKXt9ZWxzZSh0aGlzLnRoJjUxMikhPTAmJkEhPSJkYXRhLXJ0aWQiJiYKYS5yZW1vdmVBdHRyaWJ1dGUoQSk7cCE9bnVsbCYmcC5sZW5ndGg+MD9hLnNldEF0dHJpYnV0ZSgiY2xhc3MiLENGKHAuam9pbigiICIpKSk6YS5oYXNBdHRyaWJ1dGUoImNsYXNzIikmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsIiIpO2lmKG0hPW51bGwmJm0hPSIiJiZhLmhhc0F0dHJpYnV0ZSgianNsIikpe0s9YS5nZXRBdHRyaWJ1dGUoImpzbCIpO089bS5jaGFyQXQoMCk7Zm9yKEE9MDs7KXtBPUsuaW5kZXhPZihPLEEpO2lmKEE9PS0xKXttPUsrbTticmVha31pZihfLkViKG0sSy5zdWJzdHIoQSkpKXttPUsuc3Vic3RyKDAsQSkrbTticmVha31BKz0xfWEuc2V0QXR0cmlidXRlKCJqc2wiLG0pfWlmKGYhPW51bGwpZm9yKGxldCBRIGluIGYpSz1mW1FdLEs9PT1udWxsPyhhLnJlbW92ZUF0dHJpYnV0ZShRKSxhW1FdPW51bGwpOihLPXVBYSh0aGlzLFEsSyksYVtRXT1LLGEuc2V0QXR0cmlidXRlKFEsSykpO2smJmEuc2V0QXR0cmlidXRlKCJqc2FjdGlvbiIsayk7ZCYmYS5zZXRBdHRyaWJ1dGUoImpzaW5zdGFuY2UiLApkKTtlJiZhLnNldEF0dHJpYnV0ZSgianN2cyIsZSk7aCE9bnVsbCYmKGguaW5kZXhPZigiLiIpIT0tMT9hLnNldEF0dHJpYnV0ZSgianNhbiIsaC5zdWJzdHIoMCxoLmxlbmd0aC0xKSk6YS5yZW1vdmVBdHRyaWJ1dGUoImpzYW4iKSk7ZyYmKGEuY2hlY2tlZD0hIWEuZ2V0QXR0cmlidXRlKCJjaGVja2VkIikpfX19LHNFYT0wO18ucWIoTkYsbEYpO05GLnByb3RvdHlwZS5nZXRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gbUYodGhpcywia2V5IiwiIil9O05GLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiBtRih0aGlzLCJ2YWx1ZSIsIiIpfTtORi5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24oYSl7dGhpcy5xaC52YWx1ZT1hfTtfLnFiKE9GLGxGKTtPRi5wcm90b3R5cGUuZ2V0UGF0aD1mdW5jdGlvbigpe3JldHVybiBtRih0aGlzLCJwYXRoIiwiIil9O09GLnByb3RvdHlwZS5zZXRQYXRoPWZ1bmN0aW9uKGEpe3RoaXMucWgucGF0aD1hfTt2YXIgR0JhPXhGO18uaWooe0hROiIkYSIsSVE6Il9hIixOUToiJGMiLENTUzoiY3NzIixQUToiJGRoIixRUToiJGRjIixSUToiJGRkIixTUToiZGlzcGxheSIsVVE6IiRlIixlUjoiZm9yIixmUjoiJGZrIixpUjoiJGciLG5SOiIkaWMiLG1SOiIkaWEiLG9SOiIkaWYiLHRSOiIkayIsd1I6IiRsZyIsQ1I6IiRvIixNUjoiJHJqIixOUjoiJHIiLFFSOiIkc2siLFNSOiIkeCIsVVI6IiRzIixWUjoiJHNjIixXUjoiJHNkIixYUjoiJHRnIixZUjoiJHQiLGVTOiIkdSIsZlM6IiR1YSIsZ1M6IiR1YWUiLGhTOiIkdWUiLGlTOiIkdXAiLGpTOiJ2YXIiLGtTOiIkdnMifSk7dmFyIHRFYT0vXHMqO1xzKi8sWUFhPS8mL2csdUVhPS9eWyRhLXpBLVpfXSokL2ksVkFhPS9eW1wkX2EtekEtWl1bXCRfMC05YS16QS1aXSokL2ksWEY9L15ccyokLyxXQWE9UmVnRXhwKCJeKChkZXxlbiljb2RlVVJJKENvbXBvbmVudCk/fGlzKEZpbml0ZXxOYU4pfHBhcnNlKEZsb2F0fEludCl8ZG9jdW1lbnR8ZmFsc2V8ZnVuY3Rpb258anNsYXlvdXR8bnVsbHx0aGlzfHRydWV8dW5kZWZpbmVkfHdpbmRvd3xBcnJheXxCb29sZWFufERhdGV8RXJyb3J8SlNPTnxNYXRofE51bWJlcnxPYmplY3R8UmVnRXhwfFN0cmluZ3xfX2V2ZW50KSQiKSxVQWE9UmVnRXhwKCJbXFwkX2EtekEtWl1bXFwkXzAtOWEtekEtWl0qfCcoXFxcXFxcXFx8XFxcXCd8XFxcXD9bXidcXFxcXSkqJ3xcIihcXFxcXFxcXHxcXFxcXCJ8XFxcXD9bXlwiXFxcXF0pKlwifFswLTldKlxcLj9bMC05XSsoW2VdWy0rXT9bMC05XSspP3wweFswLTlhLWZdK3xcXC18XFwrfFxcKnxcXC98XFwlfFxcPXxcXDx8XFw+fFxcJlxcJj98XFx8XFx8P3xcXCF8XFxefFxcfnxcXCh8XFwpfFxce3xcXH18XFxbfFxcXXxcXCx8XFw7fFxcLnxcXD98XFw6fFxcQHwjWzAtOV0rfFtcXHNdKyIsCiJnaSIpLGVHPXt9LFhBYT17fSxmRz1bXTt2YXIgdkVhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD17fX1hZGQoYSxiKXt0aGlzLnFoW2FdPWI7cmV0dXJuITF9fTt2YXIgYkJhPTAsaEc9ezA6W119LGdHPXt9LGtHPVtdLHBHPVtbImpzY2FzZSIsYkcsIiRzYyJdLFsianNjYXNlZGVmYXVsdCIsZEcsIiRzZCJdLFsianNsIixudWxsLG51bGxdLFsianNnbG9iYWxzIixmdW5jdGlvbihhKXt2YXIgYj1bXTthPWEuc3BsaXQodEVhKTtmb3IobGV0IGUgb2YgYSl7dmFyIGM9Xy5zRShlKTtpZihjKXt2YXIgZD1jLmluZGV4T2YoIjoiKTtkIT0tMSYmKGE9Xy5zRShjLnN1YnN0cmluZygwLGQpKSxjPV8uc0UoYy5zdWJzdHJpbmcoZCsxKSksZD1jLmluZGV4T2YoIiAiKSxkIT0tMSYmKGM9Yy5zdWJzdHJpbmcoZCsxKSksYi5wdXNoKFtjRyhhKSxjXSkpfX1yZXR1cm4gYn0sIiRnIiwhMF0sWyJqc2ZvciIsZnVuY3Rpb24oYSl7dmFyIGI9W107YT1XRihhKTtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDspe2xldCBlPVtdLGY9WkYoYSxjKTtpZihmPT0tMSl7aWYoWEYudGVzdChhLnNsaWNlKGMsZCkuam9pbigiIikpKWJyZWFrO2Y9Yy0xfWVsc2V7bGV0IGc9CmM7Zm9yKDtnPGY7KXtsZXQgaD1fLnFjKGEsIiwiLGcpO2lmKGg9PS0xfHxoPmYpaD1mO2UucHVzaChjRyhfLnNFKGEuc2xpY2UoZyxoKS5qb2luKCIiKSkpKTtnPWgrMX19ZS5sZW5ndGg9PTAmJmUucHVzaChjRygiJHRoaXMiKSk7ZS5sZW5ndGg9PTEmJmUucHVzaChjRygiJGluZGV4IikpO2UubGVuZ3RoPT0yJiZlLnB1c2goY0coIiRjb3VudCIpKTtpZihlLmxlbmd0aCE9Myl0aHJvdyBFcnJvcigiTWF4IDMgdmFycyBmb3IganNmb3I7IGdvdCAiK2UubGVuZ3RoKTtjPSRGKGEsYyk7ZS5wdXNoKGFHKGEuc2xpY2UoZisxLGMpKSk7Yi5wdXNoKGUpO2MrPTF9cmV0dXJuIGJ9LCJmb3IiLCEwXSxbImpza2V5IixiRywiJGsiXSxbImpzZGlzcGxheSIsYkcsImRpc3BsYXkiXSxbImpzbWF0Y2giLG51bGwsbnVsbF0sWyJqc2lmIixiRywiZGlzcGxheSJdLFtudWxsLGJHLCIkaWYiXSxbImpzdmFycyIsZnVuY3Rpb24oYSl7dmFyIGI9W107YT1XRihhKTtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8CmQ7KXtsZXQgZT1aRihhLGMpO2lmKGU9PS0xKWJyZWFrO2xldCBmPSRGKGEsZSsxKTtjPWFHKGEuc2xpY2UoZSsxLGYpLF8uc0UoYS5zbGljZShjLGUpLmpvaW4oIiIpKSk7Yi5wdXNoKGMpO2M9ZisxfXJldHVybiBifSwidmFyIiwhMF0sW251bGwsZnVuY3Rpb24oYSl7cmV0dXJuW2NHKGEpXX0sIiR2cyJdLFsianNhdHRycyIsJEFhLCJfYSIsITBdLFtudWxsLCRBYSwiJGEiLCEwXSxbbnVsbCxmdW5jdGlvbihhKXt2YXIgYj1hLmluZGV4T2YoIjoiKTtyZXR1cm5bYS5zdWJzdHIoMCxiKSxhLnN1YnN0cihiKzEpXX0sIiR1YSJdLFtudWxsLGZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5kZXhPZigiOiIpO3JldHVyblthLnN1YnN0cigwLGIpLGJHKGEuc3Vic3RyKGIrMSkpXX0sIiR1YWUiXSxbbnVsbCxmdW5jdGlvbihhKXt2YXIgYj1bXTthPVdGKGEpO2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkOyl7dmFyIGU9WkYoYSxjKTtpZihlPT0tMSlicmVhaztsZXQgZj0kRihhLGUrMSk7Yz1fLnNFKGEuc2xpY2UoYywKZSkuam9pbigiIikpO2U9YUcoYS5zbGljZShlKzEsZiksYyk7Yi5wdXNoKFtjLGVdKTtjPWYrMX1yZXR1cm4gYn0sIiRpYSIsITBdLFtudWxsLGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2E9V0YoYSk7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPGQ7KXt2YXIgZT1aRihhLGMpO2lmKGU9PS0xKWJyZWFrO2xldCBmPSRGKGEsZSsxKTtjPV8uc0UoYS5zbGljZShjLGUpLmpvaW4oIiIpKTtlPWFHKGEuc2xpY2UoZSsxLGYpLGMpO2IucHVzaChbYyxjRyhjKSxlXSk7Yz1mKzF9cmV0dXJuIGJ9LCIkaWMiLCEwXSxbbnVsbCxkRywiJHJqIl0sWyJqc2V2YWwiLGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2E9V0YoYSk7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPGQ7KXtsZXQgZT0kRihhLGMpO2IucHVzaChhRyhhLnNsaWNlKGMsZSkpKTtjPWUrMX1yZXR1cm4gYn0sIiRlIiwhMF0sWyJqc3NraXAiLGJHLCIkc2siXSxbImpzc3dpdGNoIixiRywiJHMiXSxbImpzY29udGVudCIsZnVuY3Rpb24oYSl7dmFyIGI9CmEuaW5kZXhPZigiOiIpLGM9bnVsbDtpZihiIT0tMSl7bGV0IGQ9Xy5zRShhLnN1YnN0cigwLGIpKTt1RWEudGVzdChkKSYmKGM9ZD09Imh0bWxfc25pcHBldCI/MTpkPT0icmF3Ij8yOmQ9PSJzYWZlIj83Om51bGwsYT1fLnNFKGEuc3Vic3RyKGIrMSkpKX1yZXR1cm5bYywhMSxiRyhhKV19LCIkYyJdLFsidHJhbnNjbHVkZSIsZEcsIiR1Il0sW251bGwsYkcsIiR1ZSJdLFtudWxsLG51bGwsIiR1cCJdXSxxRz17fTtmb3IobGV0IGE9MDthPHBHLmxlbmd0aDsrK2Epe2xldCBiPXBHW2FdO2JbMl0mJihxR1tiWzJdXT1bYlsxXSxiWzNdXSl9cUcuJHQ9W2RHLCExXTtxRy4keD1bZEcsITFdO3FHLiR1PVtkRywhMV07dmFyIGhCYT0vXlwkeCAoXGQrKTs/LyxnQmE9L1wkdCAoW147XSopL2c7dmFyIHdFYT1jbGFzc3tjb25zdHJ1Y3RvcihhPWRvY3VtZW50KXt0aGlzLnFoPWE7dGhpcy5zaD1udWxsO3RoaXMudGg9e307dGhpcy5yaD1bXX1kb2N1bWVudCgpe3JldHVybiB0aGlzLnFofX07dmFyIHhFYT1jbGFzc3tjb25zdHJ1Y3RvcihhPWRvY3VtZW50LGI9bmV3IHZFYSxjPW5ldyB3RWEoYSkpe3RoaXMud2g9YTt0aGlzLnRoPWM7dGhpcy5zaD1iO25ldyBjbGFzc3t9O3RoaXMueGg9e307dGhpcy56aD1bdEYoKS5NQSgpXX1kb2N1bWVudCgpe3JldHVybiB0aGlzLndofUlqKCl7cmV0dXJuIF8uWHlhKHRoaXMuemgpfX07dmFyIFdDYT1jbGFzcyBleHRlbmRzIHhFYXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhLHZvaWQgMCk7dGhpcy5xaD17fTt0aGlzLnJoPVtdfX07dmFyIHlHPVsidW5yZXNvbHZlZCIsbnVsbF07dmFyIFBHPVtdLHlCYT1uZXcgRkFhKCJudWxsIik7CkJHLnByb3RvdHlwZS5BaD1mdW5jdGlvbihhLGIsYyxkLGUpe0dHKHRoaXMsYS5vaSxhKTtjPWEucmg7aWYoZSlpZih0aGlzLnFoIT1udWxsKXtjPWEucmg7ZT1hLmNvbnRleHQ7dmFyIGY9YS50aFs0XSxnPS0xO2Zvcih2YXIgaD0wO2g8Zi5sZW5ndGg7KytoKXt2YXIgaz1mW2hdWzNdO2lmKGtbMF09PSIkc2MiKXtpZih2RihlLGtbMV0sbnVsbCk9PT1kKXtnPWg7YnJlYWt9fWVsc2Uga1swXT09IiRzZCImJihnPWgpfWIucWg9Zztmb3IoYj0wO2I8Zi5sZW5ndGg7KytiKWQ9ZltiXSxkPWNbYl09bmV3IHdHKGRbM10sZCxuZXcgdkcobnVsbCksZSxhLnNoKSx0aGlzLnNoJiYoZC5vaS5yaD0hMCksYj09Zz9KRyh0aGlzLGQpOmEudGhbMl0mJk9HKHRoaXMsZCk7TkcodGhpcyxhLm9pLGEpfWVsc2V7ZT1hLmNvbnRleHQ7aD1hLm9pLmVsZW1lbnQ7Zz1bXTtmPS0xO2ZvcihoPWguZmlyc3RFbGVtZW50Q2hpbGQhPT12b2lkIDA/aC5maXJzdEVsZW1lbnRDaGlsZDpsemEoaC5maXJzdENoaWxkKTtoO2g9CmgubmV4dEVsZW1lbnRTaWJsaW5nKWs9S0codGhpcyxoLGEuc2gpLGtbMF09PSIkc2MiPyhnLnB1c2goaCksdkYoZSxrWzFdLGgpPT09ZCYmKGY9Zy5sZW5ndGgtMSkpOmtbMF09PSIkc2QiJiYoZy5wdXNoKGgpLGY9PS0xJiYoZj1nLmxlbmd0aC0xKSksaD1jQWEoaCk7ZD1nLmxlbmd0aDtmb3IoaD0wO2g8ZDsrK2gpe2s9aD09Zjt2YXIgbT1jW2hdO2t8fG09PW51bGx8fFlHKHRoaXMucmgsbSwhMCk7dmFyIHA9Z1toXTttPWNBYShwKTtsZXQgcT0hMDtmb3IoO3E7cD1wLm5leHRTaWJsaW5nKWlGKHAsaykscD09bSYmKHE9ITEpfWIucWg9ZjtmIT0tMSYmKGI9Y1tmXSxiPT1udWxsPyhiPWdbZl0sYT1jW2ZdPW5ldyB3RyhLRyh0aGlzLGIsYS5zaCksbnVsbCxuZXcgdkcoYiksZSxhLnNoKSxFRyh0aGlzLGEpKTpIRyh0aGlzLGIpKX1lbHNlIGIucWghPS0xJiZIRyh0aGlzLGNbYi5xaF0pfTsKU0cucHJvdG90eXBlLmNzPWZ1bmN0aW9uKGEsYil7dmFyIGM9KGEmMik9PTI7aWYoKGEmNCk9PTR8fGMpckJhKHRoaXMsYz8yOjAsYik7ZWxzZXtiPXRoaXMucWgub2kuZWxlbWVudDtjPXRoaXMucWguc2g7dmFyIGQ9dGhpcy5yaC5yaDtpZihkLmxlbmd0aD09MCkoYSY4KSE9OCYmcUJhKHRoaXMucmgsLTEpO2Vsc2UgZm9yKGE9ZC5sZW5ndGgtMTthPj0wOy0tYSl7dmFyIGU9ZFthXTtsZXQgZj1lLnFoLm9pLmVsZW1lbnQ7ZT1lLnFoLnNoO2lmKERHKGYsZSxiLGMpKXJldHVybjtERyhiLGMsZixlKSYmZC5zcGxpY2UoYSwxKX1kLnB1c2godGhpcyl9fTtTRy5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKHRoaXMuVXUhPW51bGwpZm9yKGxldCBhPTA7YTx0aGlzLlV1Lmxlbmd0aDsrK2EpdGhpcy5VdVthXS5yaCh0aGlzKX07ClNHLnByb3RvdHlwZS5zaD1mdW5jdGlvbigpe3JldHVybiJVcGRhdGVSZXF1ZXN0IGZvciBlbGVtZW50OiAiK3RoaXMucWgub2kuZWxlbWVudCsiIHRlbXBsYXRlS2V5OiAiK3RoaXMucWguc2grIiBjb250ZXh0OiAiK3RoaXMucWguY29udGV4dC5zaCgpfTtfLmFhPUJHLnByb3RvdHlwZTtfLmFhLkRPPWZ1bmN0aW9uKGEsYixjKXtiPWEuY29udGV4dDt2YXIgZD1hLm9pLmVsZW1lbnQ7Yz1hLnFoW2MrMV07dmFyIGU9Y1swXSxmPWNbMV07Yz1VRyhhKTtlPSJvYnNlcnZlcjoiK2U7dmFyIGc9Y1tlXTtiPXZGKGIsZixkKTtpZihnIT1udWxsKXtpZihnLlV1WzBdPT1iKXJldHVybjtnLmRpc3Bvc2UoKX1hPW5ldyBTRyh0aGlzLnJoLGEpO2EuVXU9PW51bGw/YS5VdT1bYl06YS5VdS5wdXNoKGIpO2IucWgoYSk7Y1tlXT1hfTsKXy5hYS50UT1mdW5jdGlvbihhLGIsYyxkLGUpe2M9YS53aDtlJiYoYy5BaC5sZW5ndGg9MCxjLnNoPWQuZ2V0S2V5KCksYy5xaD15Ryk7aWYoIVdHKHRoaXMsYSxiKSl7ZT1hLm9pO3ZhciBmPXVHKHRoaXMucmgsZC5nZXRLZXkoKSk7ZiE9bnVsbCYmKElGKGUudGFnLDc2OCksd0YoYy5jb250ZXh0LGEuY29udGV4dCxQRyksekJhKGQsYy5jb250ZXh0KSxURyh0aGlzLGEsYyxmLGIsZC5xaCkpfX07Cl8uYWEudHY9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMucWghPW51bGwpcmV0dXJuITE7aWYodGhpcy56aCE9bnVsbCYmdGhpcy56aDw9Xy5tYigpKXJldHVybihuZXcgU0codGhpcy5yaCxhKSkuY3MoOCksITA7dmFyIGQ9Yi5xaDtpZihkPT1udWxsKWIucWg9ZD1uZXcgc0Ysd0YoZCxhLmNvbnRleHQpLGM9ITA7ZWxzZXtiPWQ7YT1hLmNvbnRleHQ7ZD0hMTtmb3IobGV0IGUgaW4gYi5xaCl7bGV0IGY9YS5xaFtlXTtiLnFoW2VdIT1mJiYoYi5xaFtlXT1mLGMmJkFycmF5LmlzQXJyYXkoYyk/Yy5pbmRleE9mKGUpIT0tMTpjW2VdIT1udWxsKSYmKGQ9ITApfWM9ZH1yZXR1cm4gdGhpcy55aCYmIWN9O18uYWEub1E9ZnVuY3Rpb24oYSxiLGMpe2lmKCFXRyh0aGlzLGEsYikpe3ZhciBkPWEud2g7Yz1hLnFoW2MrMV07ZC5zaD1jO2M9dUcodGhpcy5yaCxjKTtjIT1udWxsJiYod0YoZC5jb250ZXh0LGEuY29udGV4dCxjLmFyZ3MpLFRHKHRoaXMsYSxkLGMsYixjLmFyZ3MpKX19OwpfLmFhLnVRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLnFoW2MrMV07aWYoZFsyXXx8IVdHKHRoaXMsYSxiKSl7dmFyIGU9YS53aDtlLnNoPWRbMF07dmFyIGY9dUcodGhpcy5yaCxlLnNoKTtpZihmIT1udWxsKXt2YXIgZz1lLmNvbnRleHQ7d0YoZyxhLmNvbnRleHQsUEcpO2M9YS5vaS5lbGVtZW50O2lmKGQ9ZFsxXSlmb3IobGV0IHAgaW4gZCl7dmFyIGg9ZyxrPXAsbT12RihhLmNvbnRleHQsZFtwXSxjKTtoLnFoW2tdPW19Zi55ST8oR0codGhpcyxhLm9pLGEpLGI9Zi5NTih0aGlzLnJoLGcucWgpLHRoaXMucWghPW51bGw/dGhpcy5xaCs9YjooeUYoYyxiKSxjLm5vZGVOYW1lIT0iVEVYVEFSRUEiJiZjLm5vZGVOYW1lIT0idGV4dGFyZWEifHxjLnZhbHVlPT09Ynx8KGMudmFsdWU9YikpLE5HKHRoaXMsYS5vaSxhKSk6VEcodGhpcyxhLGUsZixiLGQpfX19OwpfLmFhLnJRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLnFoW2MrMV07Yz1kWzBdO3ZhciBlPWRbMV0sZj1hLm9pLGc9Zi50YWc7aWYoIWYuZWxlbWVudHx8Zi5lbGVtZW50Ll9fbmFycm93X3N0cmF0ZWd5IT0iTkFSUk9XX1BBVEgiKWlmKGY9dUcodGhpcy5yaCxlKSlpZihkPWRbMl0sZD09bnVsbHx8dkYoYS5jb250ZXh0LGQsbnVsbCkpZD1iLnFoLGQ9PW51bGwmJihiLnFoPWQ9bmV3IHNGKSx3RihkLGEuY29udGV4dCxmLmFyZ3MpLGM9PSIqIj9CQmEodGhpcyxlLGYsZCxnKTpBQmEodGhpcyxlLGYsYyxkLGcpfTsKXy5hYS5zUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5xaFtjKzFdO2M9ZFswXTt2YXIgZT1hLm9pLmVsZW1lbnQ7aWYoIWV8fGUuX19uYXJyb3dfc3RyYXRlZ3khPSJOQVJST1dfUEFUSCIpe3ZhciBmPWEub2kudGFnO2U9dkYoYS5jb250ZXh0LGRbMV0sZSk7dmFyIGc9ZS5nZXRLZXkoKSxoPXVHKHRoaXMucmgsZyk7aCYmKGQ9ZFsyXSxkPT1udWxsfHx2RihhLmNvbnRleHQsZCxudWxsKSkmJihkPWIucWgsZD09bnVsbCYmKGIucWg9ZD1uZXcgc0YpLHdGKGQsYS5jb250ZXh0LFBHKSx6QmEoZSxkKSxjPT0iKiI/QkJhKHRoaXMsZyxoLGQsZik6QUJhKHRoaXMsZyxoLGMsZCxmKSl9fTsKXy5hYS5MTT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEucmgsZz1hLnFoW2MrMV0saD1nWzBdLGs9Z1sxXSxtPWEuY29udGV4dCxwPWEub2k7ZD1SRyhkKTt2YXIgcT1kLmxlbmd0aDsoMCxnWzJdKShtLnFoLHEpO2lmKGUpaWYodGhpcy5xaCE9bnVsbClDQmEodGhpcyxhLGIsYyxkKTtlbHNle2ZvcihiPXE7YjxmLmxlbmd0aDsrK2IpWUcodGhpcy5yaCxmW2JdLCEwKTtmLmxlbmd0aD4wJiYoZi5sZW5ndGg9TWF0aC5tYXgocSwxKSk7dmFyIHU9cC5lbGVtZW50O2I9dTt2YXIgeD0hMTtlPWEuQ2g7Zz16RihiKTtmb3IobGV0IEI9MDtCPHF8fEI9PTA7KytCKXtpZih4KXt2YXIgej1hSCh0aGlzLHUsYS5zaCk7Xy54bCh6LGIpO2I9ejtnLmxlbmd0aD1lKzF9ZWxzZSBCPjAmJihiPWIubmV4dEVsZW1lbnRTaWJsaW5nLGc9ekYoYikpLGdbZV0mJmdbZV0uY2hhckF0KDApIT0iKiJ8fCh4PXE+MCk7QkYoYixnLGUscSxCKTtCPT0wJiZpRihiLHE+MCk7cT4wJiYoaChtLnFoLGRbQl0pLAprKG0ucWgsQiksS0codGhpcyxiLG51bGwpLHo9ZltCXSx6PT1udWxsPyh6PWZbQl09bmV3IHdHKGEucWgsYS50aCxuZXcgdkcoYiksbSxhLnNoKSx6LnhoPWMrMix6LnpoPWEuemgsei5DaD1lKzEsei5CaD0hMCxFRyh0aGlzLHopKTpIRyh0aGlzLHopLGI9ei5vaS5uZXh0fHx6Lm9pLmVsZW1lbnQpfWlmKCF4KWZvcihmPWIubmV4dEVsZW1lbnRTaWJsaW5nO2YmJkFGKHpGKGYpLGcsZSk7KWg9Zi5uZXh0RWxlbWVudFNpYmxpbmcsXy55bChmKSxmPWg7cC5uZXh0PWJ9ZWxzZSBmb3IocD0wO3A8cTsrK3ApaChtLnFoLGRbcF0pLGsobS5xaCxwKSxIRyh0aGlzLGZbcF0pfTsKXy5hYS5NTT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEucmgsZz1hLmNvbnRleHQsaD1hLnFoW2MrMV0saz1oWzBdLG09aFsxXTtoPWEub2k7ZD1SRyhkKTtpZihlfHwhaC5lbGVtZW50fHxoLmVsZW1lbnQuX19mb3JrZXlfaGFzX3VucHJvY2Vzc2VkX2VsZW1lbnRzKXt2YXIgcD1iLnFoLHE9ZC5sZW5ndGg7aWYodGhpcy5xaCE9bnVsbClDQmEodGhpcyxhLGIsYyxkLHApO2Vsc2V7dmFyIHU9aC5lbGVtZW50O2I9dTt2YXIgeD1hLkNoLHo9ekYoYik7ZT1bXTt2YXIgQj17fSxLPW51bGw7dmFyIE89dGhpcy54aDt0cnl7dmFyIEE9TyYmTy5hY3RpdmVFbGVtZW50O3ZhciBRPUEmJkEubm9kZU5hbWU/QTpudWxsfWNhdGNoKGlhKXtRPW51bGx9Tz1iO2ZvcihBPXo7Tzspe0tHKHRoaXMsTyxhLnNoKTt2YXIgY2E9YkFhKE8pO2NhJiYoQltjYV09ZS5sZW5ndGgpO2UucHVzaChPKTshSyYmUSYmXy56bChPLFEpJiYoSz1PKTsoTz1PLm5leHRFbGVtZW50U2libGluZyk/KGNhPXpGKE8pLApBRihjYSxBLHgpP0E9Y2E6Tz1udWxsKTpPPW51bGx9Tz1iLnByZXZpb3VzU2libGluZztPfHwoTz10aGlzLnhoLmNyZWF0ZUNvbW1lbnQoImpzZm9yIiksYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKE8sYikpO1E9W107dS5fX2ZvcmtleV9oYXNfdW5wcm9jZXNzZWRfZWxlbWVudHM9ITE7aWYocT4wKWZvcihBPTA7QTxxOysrQSl7Y2E9cFtBXTtpZihjYSBpbiBCKXtsZXQgaWE9QltjYV07ZGVsZXRlIEJbY2FdO2I9ZVtpYV07ZVtpYV09bnVsbDtpZihPLm5leHRTaWJsaW5nIT1iKWlmKGIhPUspXy54bChiLE8pO2Vsc2UgZm9yKDtPLm5leHRTaWJsaW5nIT1iOylfLnhsKE8ubmV4dFNpYmxpbmcsYik7UVtBXT1mW2lhXX1lbHNlIGI9YUgodGhpcyx1LGEuc2gpLF8ueGwoYixPKTtrKGcucWgsZFtBXSk7bShnLnFoLEEpO0JGKGIseix4LHEsQSxjYSk7QT09MCYmaUYoYiwhMCk7S0codGhpcyxiLG51bGwpO0E9PTAmJnUhPWImJih1PWguZWxlbWVudD1iKTtPPVFbQV07Ck89PW51bGw/KE89bmV3IHdHKGEucWgsYS50aCxuZXcgdkcoYiksZyxhLnNoKSxPLnhoPWMrMixPLnpoPWEuemgsTy5DaD14KzEsTy5CaD0hMCxFRyh0aGlzLE8pP1FbQV09Tzp1Ll9fZm9ya2V5X2hhc191bnByb2Nlc3NlZF9lbGVtZW50cz0hMCk6SEcodGhpcyxPKTtPPWI9Ty5vaS5uZXh0fHxPLm9pLmVsZW1lbnR9ZWxzZSBlWzBdPW51bGwsZlswXSYmKFFbMF09ZlswXSksaUYoYiwhMSksQkYoYix6LHgsMCwwLGJBYShiKSk7Zm9yKGxldCBpYSBpbiBCKShnPWZbQltpYV1dKSYmWUcodGhpcy5yaCxnLCEwKTthLnJoPVE7Zm9yKGY9MDtmPGUubGVuZ3RoOysrZillW2ZdJiZfLnlsKGVbZl0pO2gubmV4dD1ifX1lbHNlIGlmKGQubGVuZ3RoPjApZm9yKGE9MDthPGYubGVuZ3RoOysrYSlrKGcucWgsZFthXSksbShnLnFoLGEpLEhHKHRoaXMsZlthXSl9OwpfLmFhLnZRPWZ1bmN0aW9uKGEsYixjKXtiPWEuY29udGV4dDtjPWEucWhbYysxXTt2YXIgZD1hLm9pLmVsZW1lbnQ7dGhpcy5zaCYmYS50aCYmYS50aFsyXT9RRyhiLGMsZCwiIik6dkYoYixjLGQpfTtfLmFhLndRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmNvbnRleHQsZT1hLnFoW2MrMV07Yz1lWzBdO2lmKHRoaXMucWghPW51bGwpYT12RihkLGVbMV0sbnVsbCksYyhkLnFoLGEpLGIucWg9aUJhKGEpO2Vsc2V7YT1hLm9pLmVsZW1lbnQ7aWYoYi5xaD09bnVsbCl7ZT1hLl9fdnM7aWYoIWUpe2U9YS5fX3ZzPVsxXTt2YXIgZj1hLmdldEF0dHJpYnV0ZSgianN2cyIpO2Y9V0YoZik7bGV0IGc9MCxoPWYubGVuZ3RoO2Zvcig7ZzxoOyl7bGV0IGs9JEYoZixnKSxtPWYuc2xpY2UoZyxrKS5qb2luKCIiKTtnPWsrMTtlLnB1c2goYkcobSkpfX1mPWVbMF0rKztiLnFoPWVbZl19Yj12RihkLGIucWgsYSk7YyhkLnFoLGIpfX07Cl8uYWEuQU09ZnVuY3Rpb24oYSxiLGMpe3ZGKGEuY29udGV4dCxhLnFoW2MrMV0sYS5vaS5lbGVtZW50KX07Xy5hYS5rTj1mdW5jdGlvbihhLGIsYyl7Yj1hLnFoW2MrMV07YT1hLmNvbnRleHQ7KDAsYlswXSkoYS5xaCxhLnJoP2EucmgucWhbYlsxXV06bnVsbCl9O18uYWEuZ1E9ZnVuY3Rpb24oYSxiLGMpe2I9YS5vaTtjPWEucWhbYysxXTt0aGlzLnFoIT1udWxsJiZhLnRoWzJdJiZaRyhiLnRhZyxhLnNoLDApO2IudGFnJiZjJiZIRihiLnRhZywtMSxudWxsLG51bGwsbnVsbCxudWxsLGMsITEpfTsKXy5hYS5rSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEub2ksZz1hLnFoW2NdPT0iJGlmIjtpZih0aGlzLnFoIT1udWxsKWQmJnRoaXMuc2gmJihmLnJoPSEwLGIuc2g9IiIpLGMrPTIsZz9kP0pHKHRoaXMsYSxjKTphLnRoWzJdJiZPRyh0aGlzLGEsYyk6ZD9KRyh0aGlzLGEsYyk6T0codGhpcyxhLGMpLGIucWg9ITA7ZWxzZXt2YXIgaD1mLmVsZW1lbnQ7ZyYmZi50YWcmJklGKGYudGFnLDc2OCk7ZHx8R0codGhpcyxmLGEpO2lmKGUpaWYoaUYoaCwhIWQpLGQpYi5xaHx8KEpHKHRoaXMsYSxjKzIpLGIucWg9ITApO2Vsc2UgaWYoYi5xaCYmWUcodGhpcy5yaCxhLGEucWhbYS54aF0hPSIkdCIpLGcpe2Q9ITE7Zm9yKGc9YysyO2c8YS5xaC5sZW5ndGg7Zys9MilpZihlPWEucWhbZ10sZT09IiR1Inx8ZT09IiR1ZSJ8fGU9PSIkdXAiKXtkPSEwO2JyZWFrfWlmKGQpe2Zvcig7ZD1oLmZpcnN0Q2hpbGQ7KWgucmVtb3ZlQ2hpbGQoZCk7ZD1oLl9fY2RuO2ZvcihnPWEud2g7ZyE9bnVsbDspe2lmKGQ9PQpnKXtoLl9fY2RuPW51bGw7YnJlYWt9Zz1nLndofWIucWg9ITE7YS5BaC5sZW5ndGg9KGMtYS54aCkvMisxO2EueWg9MDthLndoPW51bGw7YS5yaD1udWxsO2I9b0coaCk7Yi5sZW5ndGg+YS56aCYmKGIubGVuZ3RoPWEuemgpfX19fTtfLmFhLm5QPWZ1bmN0aW9uKGEsYixjKXtiPWEub2k7YiE9bnVsbCYmYi5lbGVtZW50IT1udWxsJiZ2RihhLmNvbnRleHQsYS5xaFtjKzFdLGIuZWxlbWVudCl9O18uYWEuUlA9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnFoIT1udWxsPyhKRyh0aGlzLGEsYysyKSxiLnFoPSEwKTooZCYmR0codGhpcyxhLm9pLGEpLCFlfHxkfHxiLnFofHwoSkcodGhpcyxhLGMrMiksYi5xaD0hMCkpfTsKXy5hYS5CTj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5vaS5lbGVtZW50LGU9YS5xaFtjKzFdO2M9ZVswXTt2YXIgZj1lWzFdLGc9Yi5xaDtlPWchPW51bGw7ZXx8KGIucWg9Zz1uZXcgc0YpO3dGKGcsYS5jb250ZXh0KTtiPXZGKGcsZixkKTtjIT0iY3JlYXRlIiYmYyE9ImxvYWQifHwhZD9VRyhhKVsiYWN0aW9uOiIrY109YjplfHwoSUcoZCxhKSxiLmNhbGwoZCkpfTtfLmFhLkNOPWZ1bmN0aW9uKGEsYixjKXtiPWEuY29udGV4dDt2YXIgZD1hLnFoW2MrMV0sZT1kWzBdO2M9ZFsxXTt2YXIgZj1kWzJdO2Q9ZFszXTt2YXIgZz1hLm9pLmVsZW1lbnQ7YT1VRyhhKTtlPSJjb250cm9sbGVyOiIrZTt2YXIgaD1hW2VdO2g9PW51bGw/YVtlXT12RihiLGYsZyk6KGMoYi5xaCxoKSxkJiZ2RihiLGQsZykpfTsKXy5hYS5OTD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5xaFtjKzFdO2I9YS5vaS50YWc7dmFyIGU9YS5jb250ZXh0LGY9YS5vaS5lbGVtZW50O2lmKCFmfHxmLl9fbmFycm93X3N0cmF0ZWd5IT0iTkFSUk9XX1BBVEgiKXt2YXIgZz1kWzBdLGg9ZFsxXSxrPWRbM10sbT1kWzRdO2E9ZFs1XTtjPSEhZFs3XTtpZighY3x8dGhpcy5xaCE9bnVsbClpZighZFs4XXx8IXRoaXMuc2gpe3ZhciBwPSEwO2shPW51bGwmJihwPXRoaXMuc2gmJmEhPSJub25jZSI/ITA6ISF2RihlLGssZikpO2U9cD9tPT1udWxsP3ZvaWQgMDp0eXBlb2YgbT09InN0cmluZyI/bTp0aGlzLnNoP1FHKGUsbSxmLCIiKTp2RihlLG0sZik6bnVsbDt2YXIgcTtrIT1udWxsfHxlIT09ITAmJmUhPT0hMT9lPT09bnVsbD9xPW51bGw6ZT09PXZvaWQgMD9xPWE6cT1TdHJpbmcoZSk6cT0ocD1lKT9hOm51bGw7ZT1xIT09bnVsbHx8dGhpcy5xaD09bnVsbDtzd2l0Y2goZyl7Y2FzZSA2OklGKGIsMjU2KTtlJiZMRihiLGcsImNsYXNzIiwKcSwhMSxjKTticmVhaztjYXNlIDc6ZSYmS0YoYixnLCJjbGFzcyIsYSxwPyIiOm51bGwsYyk7YnJlYWs7Y2FzZSA0OmUmJkxGKGIsZywic3R5bGUiLHEsITEsYyk7YnJlYWs7Y2FzZSA1OmlmKHApe2lmKG0paWYoaCYmcSE9PW51bGwpe2Q9cTtxPTU7c3dpdGNoKGgpe2Nhc2UgNTpoPVN6YShkKTticmVhaztjYXNlIDY6aD1xRWEudGVzdChkKT9kOiJ6anNsYXlvdXR6aW52YWxpZCI7YnJlYWs7Y2FzZSA3Omg9VHphKGQpO2JyZWFrO2RlZmF1bHQ6cT02LGg9InNhbml0aXphdGlvbl9lcnJvcl8iK2h9S0YoYixxLCJzdHlsZSIsYSxoLGMpfWVsc2UgZSYmS0YoYixnLCJzdHlsZSIsYSxxLGMpfWVsc2UgZSYmS0YoYixnLCJzdHlsZSIsYSxudWxsLGMpO2JyZWFrO2Nhc2UgODpoJiZxIT09bnVsbD9zQWEoYixoLGEscSxjKTplJiZMRihiLGcsYSxxLCExLGMpO2JyZWFrO2Nhc2UgMTM6aD1kWzZdO2UmJktGKGIsZyxhLGgscSxjKTticmVhaztjYXNlIDE0OmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDEwOmNhc2UgOTplJiYKS0YoYixnLGEsIiIscSxjKTticmVhaztkZWZhdWx0OmE9PSJqc2FjdGlvbiI/KGUmJkxGKGIsZyxhLHEsITEsYyksZiYmIl9fanNhY3Rpb24iaW4gZiYmZGVsZXRlIGYuX19qc2FjdGlvbik6YSYmZFs2XT09bnVsbCYmKGgmJnEhPT1udWxsP3NBYShiLGgsYSxxLGMpOmUmJkxGKGIsZyxhLHEsITEsYykpfX19fTtfLmFhLm5NPWZ1bmN0aW9uKGEsYixjKXtpZighVkcodGhpcyxhLGIpKXt2YXIgZD1hLnFoW2MrMV07Yj1hLmNvbnRleHQ7Yz1hLm9pLnRhZzt2YXIgZT1kWzFdLGY9ISFiLnFoLnZrO2Q9dkYoYixkWzBdLGEub2kuZWxlbWVudCk7YT13QWEoZCxlLGYpO2U9UEYoZCxlLGYpO2lmKGYhPWF8fGYhPWUpYy54aD0hMCxMRihjLDAsImRpciIsYT8icnRsIjoibHRyIik7Yi5xaC52az1hfX07Cl8uYWEub009ZnVuY3Rpb24oYSxiLGMpe2lmKCFWRyh0aGlzLGEsYikpe3ZhciBkPWEucWhbYysxXTtiPWEuY29udGV4dDtjPWEub2kuZWxlbWVudDtpZighY3x8Yy5fX25hcnJvd19zdHJhdGVneSE9Ik5BUlJPV19QQVRIIil7YT1hLm9pLnRhZzt2YXIgZT1kWzBdLGY9ZFsxXSxnPWRbMl07ZD0hIWIucWgudms7Zj1mP3ZGKGIsZixjKTpudWxsO2M9dkYoYixlLGMpPT0icnRsIjtlPWYhPW51bGw/UEYoZixnLGQpOmQ7aWYoZCE9Y3x8ZCE9ZSlhLnhoPSEwLExGKGEsMCwiZGlyIixjPyJydGwiOiJsdHIiKTtiLnFoLnZrPWN9fX07Xy5hYS5tTT1mdW5jdGlvbihhLGIpe1ZHKHRoaXMsYSxiKXx8KGI9YS5jb250ZXh0LGE9YS5vaS5lbGVtZW50LGEmJmEuX19uYXJyb3dfc3RyYXRlZ3k9PSJOQVJST1dfUEFUSCJ8fChiLnFoLnZrPSEhYi5xaC52aykpfTsKXy5hYS5lTT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEucWhbYysxXSxnPWZbMF0saD1hLmNvbnRleHQ7ZD1TdHJpbmcoZCk7Yz1hLm9pO3ZhciBrPSExLG09ITE7Zi5sZW5ndGg+MyYmYy50YWchPW51bGwmJiFWRyh0aGlzLGEsYikmJihtPWZbM10sZj0hIXZGKGgsZls0XSxudWxsKSxrPWc9PTd8fGc9PTJ8fGc9PTEsbT1tIT1udWxsP3ZGKGgsbSxudWxsKTp3QWEoZCxrLGYpLGs9bSE9Znx8ZiE9UEYoZCxrLGYpKSYmKGMuZWxlbWVudD09bnVsbCYmJEcoYy50YWcsYSksdGhpcy5xaD09bnVsbHx8Yy50YWcueGghPT0hMSkmJihMRihjLnRhZywwLCJkaXIiLG0/InJ0bCI6Imx0ciIpLGs9ITEpO0dHKHRoaXMsYyxhKTtpZihlKXtpZih0aGlzLnFoIT1udWxsKXtpZighVkcodGhpcyxhLGIpKXtiPW51bGw7ayYmKGgucWguV28hPT0hMT8odGhpcy5xaCs9JzxzcGFuIGRpcj0iJysobT8icnRsIjoibHRyIikrJyI+JyxiPSI8L3NwYW4+Iik6KHRoaXMucWgrPW0/Ilx1MjAyYiI6Ilx1MjAyYSIsCmI9Ilx1MjAyYyIrKG0/Ilx1MjAwZSI6Ilx1MjAwZiIpKSk7c3dpdGNoKGcpe2Nhc2UgNzpjYXNlIDI6dGhpcy5xaCs9ZDticmVhaztjYXNlIDE6dGhpcy5xaCs9bUFhKGQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5xaCs9Q0YoZCl9YiE9bnVsbCYmKHRoaXMucWgrPWIpfX1lbHNle2I9Yy5lbGVtZW50O3N3aXRjaChnKXtjYXNlIDc6Y2FzZSAyOnlGKGIsZCk7YnJlYWs7Y2FzZSAxOmc9bUFhKGQpO3lGKGIsZyk7YnJlYWs7ZGVmYXVsdDpnPSExO2U9IiI7Zm9yKGg9Yi5maXJzdENoaWxkO2g7aD1oLm5leHRTaWJsaW5nKXtpZihoLm5vZGVUeXBlIT0zKXtnPSEwO2JyZWFrfWUrPWgubm9kZVZhbHVlfWlmKGg9Yi5maXJzdENoaWxkKXtpZihnfHxlIT1kKWZvcig7aC5uZXh0U2libGluZzspXy55bChoLm5leHRTaWJsaW5nKTtoLm5vZGVUeXBlIT0zJiZfLnlsKGgpfWIuZmlyc3RDaGlsZD9lIT1kJiYoYi5maXJzdENoaWxkLm5vZGVWYWx1ZT1kKTpiLmFwcGVuZENoaWxkKGIub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKSl9Yi5ub2RlTmFtZSE9CiJURVhUQVJFQSImJmIubm9kZU5hbWUhPSJ0ZXh0YXJlYSJ8fGIudmFsdWU9PT1kfHwoYi52YWx1ZT1kKX1ORyh0aGlzLGMsYSl9fTt2YXIgRkc9e30sRkJhPSExO18uYkgucHJvdG90eXBlLnRpPWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLnFoKXt2YXIgZD11Ryh0aGlzLnJoLHRoaXMudGgpO3RoaXMucWgmJnRoaXMucWguaGFzQXR0cmlidXRlKCJkYXRhLWRvbWRpZmYiKSYmKGQucko9MSk7dmFyIGU9dGhpcy5zaDtkPXRoaXMucWg7dmFyIGY9dGhpcy5yaCxnPXRoaXMudGg7SEJhKCk7aWYoKGImMik9PTApe3ZhciBoPWYucmg7Zm9yKHZhciBrPWgubGVuZ3RoLTE7az49MDstLWspe3ZhciBtPWhba107REcoZCxnLG0ucWgub2kuZWxlbWVudCxtLnFoLnNoKSYmaC5zcGxpY2UoaywxKX19aD0icnRsIj09JHphKGQpO2UucWgudms9aDtlLnFoLldvPSEwO209bnVsbDsoaz1kLl9fY2RuKSYmay5xaCE9eUcmJmchPSJub19rZXkiJiYoaD16RyhrLGcsbnVsbCkpJiYoaz1oLG09InJlYmluZCIsaD1uZXcgQkcoZixiLGMpLHdGKGsuY29udGV4dCxlKSxrLm9pLnRhZyYmIWsuQmgmJmQ9PWsub2kuZWxlbWVudCYmay5vaS50YWcucmVzZXQoZyksSEcoaCxrKSk7CmlmKG09PW51bGwpe2YuZG9jdW1lbnQoKTtoPW5ldyBCRyhmLGIsYyk7Yj1LRyhoLGQsbnVsbCk7Zj1iWzBdPT0iJHQiPzE6MDtjPTA7bGV0IHA7aWYoZyE9Im5vX2tleSImJmchPWQuZ2V0QXR0cmlidXRlKCJpZCIpKWlmKHA9ITEsaz1iLmxlbmd0aC0yLGJbMF09PSIkdCImJmJbMV09PWcpYz0wLHA9ITA7ZWxzZSBpZihiW2tdPT0iJHUiJiZiW2srMV09PWcpYz1rLHA9ITA7ZWxzZSBmb3Ioaz1vRyhkKSxtPTA7bTxrLmxlbmd0aDsrK20paWYoa1ttXT09Zyl7Yj1tRyhnKTtmPW0rMTtjPTA7cD0hMDticmVha31rPW5ldyBzRjt3RihrLGUpO2s9bmV3IHdHKGIsbnVsbCxuZXcgdkcoZCksayxnKTtrLnhoPWM7ay56aD1mO2sub2kucWg9b0coZCk7ZT0hMTtwJiZiW2NdPT0iJHQiJiYodkJhKGsub2ksZyksZT1vQmEoaC5yaCx1RyhoLnJoLGcpLGQpKTtlP1hHKGgsbnVsbCxrKTpFRyhoLGspfX1hJiZhKCk7cmV0dXJuIHRoaXMucWh9OwpfLmJILnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnFoO2lmKGEhPW51bGwpe3ZhciBiPWEucGFyZW50RWxlbWVudDtpZihiPT1udWxsfHwhYi5fX2Nkbil7Yj10aGlzLnJoO2lmKGEpe2xldCBjPWEuX19jZG47YyYmKGM9ekcoYyx0aGlzLnRoKSkmJllHKGIsYywhMCl9YS5wYXJlbnROb2RlIT1udWxsJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk7dGhpcy5xaD1udWxsO3RoaXMuc2g9bmV3IHNGO3RoaXMuc2gucmg9dGhpcy5yaC5zaH19fTtfLnFiKGRILF8uYkgpO2RILnByb3RvdHlwZS5pbnN0YW50aWF0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnJoO3ZhciBjPXRoaXMudGg7aWYoYi5kb2N1bWVudCgpKXt2YXIgZD1iLnFoW2NdO2lmKGQmJmQuZWxlbWVudHMpe3ZhciBlPWQuZWxlbWVudHNbMF07Yj1iLmRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChlKTtkLnJKIT0xJiZiLnNldEF0dHJpYnV0ZSgianNsIiwiJHUgIitjKyI7Iik7Yz1ifWVsc2UgYz1udWxsfWVsc2UgYz1udWxsOyh0aGlzLnFoPWMpJiYodGhpcy5xaC5fX2F0dGFjaGVkX3RlbXBsYXRlPXRoaXMpO2M9dGhpcy5xaDthJiZjJiZhLmFwcGVuZENoaWxkKGMpO2E9dGhpcy5zaDtjPSJydGwiPT0kemEodGhpcy5xaCk7YS5xaC52az1jO3JldHVybiB0aGlzLnFofTtfLnFiKF8uZUgsZEgpO18uUUk9eyJidWdfcmVwb3J0X2ljb24uc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMiUyMDIxcS0xLjYyNSUyMDAtMy4wMTItLjhRNy42JTIwMTkuNCUyMDYuOCUyMDE4SDR2LTJoMi4xcS0uMDc1LS41LS4wODctMVE2JTIwMTQuNSUyMDYlMjAxNEg0di0yaDJxMC0uNS4wMTMtMSUyMC4wMTItLjUuMDg3LTFINFY4aDIuOHEuMzUtLjU3NS43ODgtMS4wNzUuNDM3LS41JTIwMS4wMTItLjg3NUw3JTIwNC40JTIwOC40JTIwM2wyLjE1JTIwMi4xNXEuNy0uMjI1JTIwMS40MjUtLjIyNXQxLjQyNS4yMjVMMTUuNiUyMDMlMjAxNyUyMDQuNGwtMS42NSUyMDEuNjVxLjU3NS4zNzUlMjAxLjAzOC44NjJRMTYuODUlMjA3LjQlMjAxNy4yJTIwOEgyMHYyaC0yLjFxLjA3NS41LjA4OCUyMDElMjAuMDEyLjUuMDEyJTIwMWgydjJoLTJxMCUyMC41LS4wMTIlMjAxLS4wMTMuNS0uMDg4JTIwMUgyMHYyaC0yLjhxLS44JTIwMS40LTIuMTg4JTIwMi4yLTEuMzg3LjgtMy4wMTIuOFptMC0ycTEuNjUlMjAwJTIwMi44MjUtMS4xNzVUMTYlMjAxNXYtNHEwLTEuNjUtMS4xNzUtMi44MjVUMTIlMjA3JTIwOS4xNzUlMjA4LjE3NSUyMDglMjAxMXY0cTAlMjAxLjY1JTIwMS4xNzUlMjAyLjgyNVQxMiUyMDE5bS0yLTNoNHYtMmgtNFptMC00aDR2LTJoLTRabTIlMjAxJTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX2NvbnRyb2wuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfY29udHJvbF9hY3RpdmUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMWE3M2U4JTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX2NvbnRyb2xfYWN0aXZlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfY29udHJvbF9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2JkYzFjNiUyMiUyMGQlM0QlMjJtMTIlMjAxOS4xNzUlMjAyLjEyNS0yLjEyNSUyMDEuNDI1JTIwMS40TDEyJTIwMjJsLTMuNTUtMy41NSUyMDEuNDI1LTEuNHpNNC44MjUlMjAxMmwyLjEyNSUyMDIuMTI1LTEuNCUyMDEuNDI1TDIlMjAxMmwzLjU1LTMuNTUlMjAxLjQlMjAxLjQyNXptMTQuMzUlMjAwTDE3LjA1JTIwOS44NzVsMS40LTEuNDI1TDIyJTIwMTJsLTMuNTUlMjAzLjU1LTEuNC0xLjQyNXpNMTIlMjA0LjgyNSUyMDkuODc1JTIwNi45NSUyMDguNDUlMjA1LjU1JTIwMTIlMjAybDMuNTUlMjAzLjU1LTEuNDI1JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9jb250cm9sX2Rpc2FibGUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZDFkMWQxJTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfY29udHJvbF9kaXNhYmxlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNGU0ZTRlJTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX2NvbnRyb2xfaG92ZXIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwZCUzRCUyMm0xMiUyMDE5LjE3NSUyMDIuMTI1LTIuMTI1JTIwMS40MjUlMjAxLjRMMTIlMjAyMmwtMy41NS0zLjU1JTIwMS40MjUtMS40ek00LjgyNSUyMDEybDIuMTI1JTIwMi4xMjUtMS40JTIwMS40MjVMMiUyMDEybDMuNTUtMy41NSUyMDEuNCUyMDEuNDI1em0xNC4zNSUyMDBMMTcuMDUlMjA5Ljg3NWwxLjQtMS40MjVMMjIlMjAxMmwtMy41NSUyMDMuNTUtMS40LTEuNDI1ek0xMiUyMDQuODI1JTIwOS44NzUlMjA2Ljk1JTIwOC40NSUyMDUuNTUlMjAxMiUyMDJsMy41NSUyMDMuNTUtMS40MjUlMjAxLjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfY29udHJvbF9ob3Zlcl9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJtMTIlMjAxOS4xNzUlMjAyLjEyNS0yLjEyNSUyMDEuNDI1JTIwMS40TDEyJTIwMjJsLTMuNTUtMy41NSUyMDEuNDI1LTEuNHpNNC44MjUlMjAxMmwyLjEyNSUyMDIuMTI1LTEuNCUyMDEuNDI1TDIlMjAxMmwzLjU1LTMuNTUlMjAxLjQlMjAxLjQyNXptMTQuMzUlMjAwTDE3LjA1JTIwOS44NzVsMS40LTEuNDI1TDIyJTIwMTJsLTMuNTUlMjAzLjU1LTEuNC0xLjQyNXpNMTIlMjA0LjgyNSUyMDkuODc1JTIwNi45NSUyMDguNDUlMjA1LjU1JTIwMTIlMjAybDMuNTUlMjAzLjU1LTEuNDI1JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX2Rvd24uc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwZCUzRCUyMm0xMiUyMDE1LjQtNi02TDcuNCUyMDhsNC42JTIwNC42TDE2LjYlMjA4JTIwMTglMjA5LjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfbW92ZV9kb3duX2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBkJTNEJTIybTEyJTIwMTUuNC02LTZMNy40JTIwOGw0LjYlMjA0LjZMMTYuNiUyMDglMjAxOCUyMDkuNHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjYW1lcmFfbW92ZV9kb3duX2FjdGl2ZV9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJtMTIlMjAxNS40LTYtNkw3LjQlMjA4bDQuNiUyMDQuNkwxNi42JTIwOCUyMDE4JTIwOS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfZG93bl9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2JkYzFjNiUyMiUyMGQlM0QlMjJtMTIlMjAxNS40LTYtNkw3LjQlMjA4bDQuNiUyMDQuNkwxNi42JTIwOCUyMDE4JTIwOS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX2Rvd25fZGlzYWJsZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBkJTNEJTIybTEyJTIwMTUuNC02LTZMNy40JTIwOGw0LjYlMjA0LjZMMTYuNiUyMDglMjAxOCUyMDkuNHolMjIvJTNFJTNDL3N2ZyUzRSIsImNhbWVyYV9tb3ZlX2Rvd25fZGlzYWJsZV9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzRlNGU0ZSUyMiUyMGQlM0QlMjJtMTIlMjAxNS40LTYtNkw3LjQlMjA4bDQuNiUyMDQuNkwxNi42JTIwOCUyMDE4JTIwOS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX2Rvd25faG92ZXIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMm0xMiUyMDE1LjQtNi02TDcuNCUyMDhsNC42JTIwNC42TDE2LjYlMjA4JTIwMTglMjA5LjR6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfbW92ZV9kb3duX2hvdmVyX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTZlNmU2JTIyJTIwZCUzRCUyMm0xMiUyMDE1LjQtNi02TDcuNCUyMDhsNC42JTIwNC42TDE2LjYlMjA4JTIwMTglMjA5LjR6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX21vdmVfbGVmdC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBkJTNEJTIybTE0JTIwMTgtNi02JTIwNi02JTIwMS40JTIwMS40LTQuNiUyMDQuNiUyMDQuNiUyMDQuNnolMjIvJTNFJTNDL3N2ZyUzRSIsImNhbWVyYV9tb3ZlX2xlZnRfYWN0aXZlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJtMTQlMjAxOC02LTYlMjA2LTYlMjAxLjQlMjAxLjQtNC42JTIwNC42JTIwNC42JTIwNC42eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX2xlZnRfYWN0aXZlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTZlNmU2JTIyJTIwZCUzRCUyMm0xNCUyMDE4LTYtNiUyMDYtNiUyMDEuNCUyMDEuNC00LjYlMjA0LjYlMjA0LjYlMjA0LjZ6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfbW92ZV9sZWZ0X2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzYmRjMWM2JTIyJTIwZCUzRCUyMm0xNCUyMDE4LTYtNiUyMDYtNiUyMDEuNCUyMDEuNC00LjYlMjA0LjYlMjA0LjYlMjA0LjZ6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX21vdmVfbGVmdF9kaXNhYmxlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2QxZDFkMSUyMiUyMGQlM0QlMjJtMTQlMjAxOC02LTYlMjA2LTYlMjAxLjQlMjAxLjQtNC42JTIwNC42JTIwNC42JTIwNC42eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfbGVmdF9kaXNhYmxlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNGU0ZTRlJTIyJTIwZCUzRCUyMm0xNCUyMDE4LTYtNiUyMDYtNiUyMDEuNCUyMDEuNC00LjYlMjA0LjYlMjA0LjYlMjA0LjZ6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX21vdmVfbGVmdF9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIybTE0JTIwMTgtNi02JTIwNi02JTIwMS40JTIwMS40LTQuNiUyMDQuNiUyMDQuNiUyMDQuNnolMjIvJTNFJTNDL3N2ZyUzRSIsImNhbWVyYV9tb3ZlX2xlZnRfaG92ZXJfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNmU2ZTYlMjIlMjBkJTNEJTIybTE0JTIwMTgtNi02JTIwNi02JTIwMS40JTIwMS40LTQuNiUyMDQuNiUyMDQuNiUyMDQuNnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjYW1lcmFfbW92ZV9yaWdodC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBkJTNEJTIyTTEyLjYlMjAxMiUyMDglMjA3LjQlMjA5LjQlMjA2bDYlMjA2LTYlMjA2TDglMjAxNi42eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfcmlnaHRfYWN0aXZlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJNMTIuNiUyMDEyJTIwOCUyMDcuNCUyMDkuNCUyMDZsNiUyMDYtNiUyMDZMOCUyMDE2LjZ6JTIyLyUzRSUzQy9zdmclM0UiLAoiY2FtZXJhX21vdmVfcmlnaHRfYWN0aXZlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTZlNmU2JTIyJTIwZCUzRCUyMk0xMi42JTIwMTIlMjA4JTIwNy40JTIwOS40JTIwNmw2JTIwNi02JTIwNkw4JTIwMTYuNnolMjIvJTNFJTNDL3N2ZyUzRSIsImNhbWVyYV9tb3ZlX3JpZ2h0X2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzYmRjMWM2JTIyJTIwZCUzRCUyMk0xMi42JTIwMTIlMjA4JTIwNy40JTIwOS40JTIwNmw2JTIwNi02JTIwNkw4JTIwMTYuNnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjYW1lcmFfbW92ZV9yaWdodF9kaXNhYmxlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2QxZDFkMSUyMiUyMGQlM0QlMjJNMTIuNiUyMDEyJTIwOCUyMDcuNCUyMDkuNCUyMDZsNiUyMDYtNiUyMDZMOCUyMDE2LjZ6JTIyLyUzRSUzQy9zdmclM0UiLCJjYW1lcmFfbW92ZV9yaWdodF9kaXNhYmxlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNGU0ZTRlJTIyJTIwZCUzRCUyMk0xMi42JTIwMTIlMjA4JTIwNy40JTIwOS40JTIwNmw2JTIwNi02JTIwNkw4JTIwMTYuNnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjYW1lcmFfbW92ZV9yaWdodF9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTEyLjYlMjAxMiUyMDglMjA3LjQlMjA5LjQlMjA2bDYlMjA2LTYlMjA2TDglMjAxNi42eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfcmlnaHRfaG92ZXJfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNmU2ZTYlMjIlMjBkJTNEJTIyTTEyLjYlMjAxMiUyMDglMjA3LjQlMjA5LjQlMjA2bDYlMjA2LTYlMjA2TDglMjAxNi42eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX3VwLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfdXBfYWN0aXZlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX3VwX2FjdGl2ZV9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfdXBfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNiZGMxYzYlMjIlMjBkJTNEJTIybTEyJTIwMTAuOC00LjYlMjA0LjZMNiUyMDE0bDYtNiUyMDYlMjA2LTEuNCUyMDEuNHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjYW1lcmFfbW92ZV91cF9kaXNhYmxlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2QxZDFkMSUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfdXBfZGlzYWJsZV9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzRlNGU0ZSUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImNhbWVyYV9tb3ZlX3VwX2hvdmVyLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJtMTIlMjAxMC44LTQuNiUyMDQuNkw2JTIwMTRsNi02JTIwNiUyMDYtMS40JTIwMS40eiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY2FtZXJhX21vdmVfdXBfaG92ZXJfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNmU2ZTYlMjIlMjBkJTNEJTIybTEyJTIwMTAuOC00LjYlMjA0LjZMNiUyMDE0bDYtNiUyMDYlMjA2LTEuNCUyMDEuNHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjaGVja2JveF9jaGVja2VkLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwZCUzRCUyMk0wJTIwMGgyNHYyNEgweiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMk0xOSUyMDNINWMtMS4xMSUyMDAtMiUyMC45LTIlMjAydjE0YzAlMjAxLjEuODklMjAyJTIwMiUyMDJoMTRjMS4xMSUyMDAlMjAyLS45JTIwMi0yVjVjMC0xLjEtLjg5LTItMi0ybS05JTIwMTQtNS01JTIwMS40MS0xLjQxTDEwJTIwMTQuMTdsNy41OS03LjU5TDE5JTIwOHolMjIvJTNFJTNDL3N2ZyUzRSIsImNoZWNrYm94X2VtcHR5LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTklMjA1djE0SDVWNXptMC0ySDVjLTEuMSUyMDAtMiUyMC45LTIlMjAydjE0YzAlMjAxLjEuOSUyMDIlMjAyJTIwMmgxNGMxLjElMjAwJTIwMi0uOSUyMDItMlY1YzAtMS4xLS45LTItMi0yJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMGQlM0QlMjJNMCUyMDBoMjR2MjRIMHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjb21wYXNzX2JhY2tncm91bmQuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMCUyMDEwMCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyNTAlMjIlMjBjeSUzRCUyMjUwJTIyJTIwciUzRCUyMjUwJTIyJTIwZmlsbCUzRCUyMiUyMzIyMiUyMi8lM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjUwJTIyJTIwY3klM0QlMjI1MCUyMiUyMHIlM0QlMjIyMiUyMiUyMGZpbGwlM0QlMjIlMjM1OTU5NTklMjIvJTNFJTNDL3N2ZyUzRSIsImNvbXBhc3NfbmVlZGxlX2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMTk5OS94bGluayUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDQwJTIwMTAwJTIyJTNFJTNDaW1hZ2UlMjB4bGluayUzQWhyZWYlM0QlMjJkYXRhJTNBaW1hZ2UvcG5nJTNCYmFzZTY0JTJDaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVFQUFBQnRDQVlBQUFEJTJCbVF3SUFBQUFDWEJJV1hNQUFBc1NBQUFMRWdIUzNYNzhBQUFBJTIwR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQjRkSlJFRlVlTnJzbkl0dTR6b01SUFZLLy85NyUyMDE3WjBiNEI0d1hJNUpQV3dpMTFZZ0pHMlNaUG9hRGlrSk5zaFBPMXBUM3ZhMDU3Mk5LSEZ1ejZvdGRiemVTM0clMkJHOUE2T3o0andHSiUyMFA5QjU2elBiM1REaVRaMzMvSzA1Z1N5SEVTOEdFSlhQc2lBMDdibVZJT0pGQUtTZlJ5RWdHTXRBeEFzQlJBVkNkUGhCTXg2WGdZZzMlMjBBSWlHSW9LaEFQcDRDWWl5RUNJQ0VBRU1Ed1JrbHBFOEYvOGZqQ2tRWlZJRndSajU5NUdjaWtBajM0QmZmQU9ocE5aTGxlQVplUTJFJTIwQkVFQ1VCWEYvTzc4ZTFCRzFWQW1WV0FCU0FLRWFFQ1FGSUJnVUJERGFpZ0x2U0FJQUpJQUlna3E0cDNsS3FpZi82dGFSaGxWUTFtZyUyMGdnQVVnSTd6ZVExQ0phTWJBSWpHUG45WURXV0JDaXdBJTJCWE1rOWp3S2gwb08vcG9LalBVM2dCRTFsQVVxQ01yb1p3WWhDLzRnR2VINyUyME9KUjBXcFhzMHEyR3NsZ0ZFUUFvREFRTkNkcXg5dW44MmNsRE1VUFkyVjQxbEVVcXNBQVVRUlZSaVBrejdnL2hlWjQxSkJCRDNsQXUlMjA5b0xDRGdvaEFRZzdlTDRwSUt5MWlIa0lyRG9NRGhoWmdQQWlmOU1ncEElMkJJYU5RUERZeDZ0MEdXVGhYRXpveEFBYnpJN3dqQ0lUeEglMjBEVE9STklrS3IyNkRuQzJiTFJWa0FvQ0N5RUpIVHdpNzBLbktsQ0tCdUc3dW9CaGlFQ1pLV1ZIQ0Y0T1FBUVFKVGdVZ2tFbDJoVVJaJTIwWUlqUkVRcGY1SkdIUkNDcDBRdWhHbUhSRlJKbFFTaG9ma0RENEl0QnlHd0VENUlacEZBNFB2OXpnSUxyOHZXRTJPRUZVbGFnRUY0QyUyMGhMT2ptYW1EQWpnRUVKbzN1RU9pZEM2Y1JLTlV6b29TYUZpOEJFL2dvVUFCbEk5S3NqQVppN01oVVRvVTBGTXVGMEVOWHl3a3N1QUolMjBtWHhwV2p3VkJrSlN3MjNMYTk3NlFETkdibzY4UnBCU0pnZGhxYUVySklvek5VWmx6cENNS3ZFbEtPRUZsS0JCMklYNVJ3SnE2QXFKJTIwY2tFb2FNYkk2d1d1aE1oJTJCZjNkOEF4TXd6Uk11blVwYkt2QVlvd1dCcSUyQkJGUVBUQW1ETkdFQXJlNVRNdEpGNnNhTklnN0t6elhnQmklMjBTR2klMkJVQVoycG5wRG9UQS8lMkJGSWdCRUVGMG5RY0RVQlZRZ0lxb2t4a0JzL3NrWUtRSmxLSkZFczdNOGxkbUhRaFk0d3pGZVJNaWt5RyUyMEwxZ2d6bzd4TmNNcXBFVnBVU1lyQUxwOG9RejR3VWlkVUpRcE5ZVndxdUEwd3hmd2d3eVc4b2Q4b1hUNkFZS1R3Y0pxVVl5U2h3TTMlMjB4UUxlYXlaVmlvb29DLzBnZ1VXVkFvNFhNOGJBNWdvRkFFaks3dGJ0bnFDdEpYaEFaQllPSEVKMktDQ0JsZXQ0RllTb0ZFdlJxQmxRJTIwTVpXWVRLMmxlazhJZEJkTlpYRDBQYUdSallveUN4RDRUREU1ajJqTWNWUnpMSTZPajlZTENhdzc4alFYV0diSVlCJTJCenAvUFJXQk50JTIwRUlLeXYlMkJEWmZVTDFRektVY2piUDZIdFU2YW9TTlNWWUs4cWhJeXdpZUVSNXZRS3ZpV0JIRzUwQ2RIbDJRQnN5SHBVazhMZmdITjJvJTIwYkFaTnRSU3VhZHFYajA1bGhZbVI3b0tUTGdMUVc0WDJLbTJKQXE2RVlKMkUyUngvUSUyQjhUaFBkRTM2SGQ0UW5XbHd4S1J5MFFudWU3JTIwTyUyQnRWUW5PUTlYNzVDaDZsMTBpbjYvQ2ZMVWpEVUw1QmNHeGVTcEtVT2xDTmZjVFpRd1BpR1ZSWE9EVEYxSm94b25UbmlQOU10OU9rJTIwY3hNTzhQOFNnRG9ZSmtOVDZlWThwQzk4S0FjOXYwaDdMUUtpd1lBbTZWMVU2UTBGUzdvV0JMcXVTRGRiRGtFZGttSlFaa0haWmpvNyUyMFdHRndLSjJoTzBtSnpCZjR1dUl1dkE4Q1VwM2VzQ1JGV21Gd2dDJTJCJTJCZ3dPdEtFbXZsWUF1QlZGQWg2TURpQ1YvQkdJam9VRDNIcy9uJTIwNk9OdUFQQ1laRCUyQkV0M0Y4cHRUTm1SVzAyS2NkMzlqaWFoUDJIVGdzS1R3T3B5OEViOHFjOFlUS3dxR0MlMkJOL1lsbG95bExBcGlqZ00lMjBSYWhGVmU4MlhBJTJCSXF2akNKdXdwU2hETy8vLzFPVFlqTkt3Q2Fva3h0dUMvTW9XRGtHUk50OWZwSW9xbWhNMElpZDdxc1ElMkJDNFF2QiUyMG9RUUpCRDlGQjBINEpRQ1FWSURDQXMwa2w5VUpTQkdINGdjb0ZLb1FEcHNBWWh2MGhHJTJCZEh6cGR4eEVTVm5XSVZHQkIlMkJPVU1oMk8yJTIwU0RJaGtKQUliQU1Ed2RBQW9ETlklMkJlOGJNVWNKeHVHWVdIWFBKcjBUS005cDkxWElET1h6bUJtRSUyQm5tT244ZTRLd0JRMFRTY0dxOUklMjBrZFVBd1UvVXBGZTM4Qk8xYUZnZ0FFdEN3UU9CcThBYkVqdlpVdHZZZmdIZmFlSksyTzRNQlJNQ1M1VlJtVWtpSldSQkJmd0NEZzVoJTIwVjlMazhsQ1lXV2hGZnBBWWhNUTZTME5CdXQ1aEI3NWdGVXZoeW5Ed2hFUU4zODlVbHdDZ2E1MmtpejQyd3hTMSUyQm1EcEdtTnZTSEExJTIwcENCZjFXWmQ0WEtBV2FSVUtDMEpoUlg3RGg0UTB2Vk1LZURMZjNpVzhGYUtsNFlEQ2drJTJCaHpnM1dLV1Jsa0pCdXk0U3JTbDQxaFc3JTIwUXNFTkFZUUVNa2lhOThNZ2hLTmpWYWw3cmpDNzJ1eFJRd3o0WW05dWloSUV0Rmk3YkdGMUdJSlREUnhFRVB5QWhnNEgxTmdxbFpZYSUyMHJjMlhTNVRnVVlOMUQ1UWEvcnh3S3dCenJhT0dlT245RXh4cTBBQ2dxOWNvVURRWDhXN01obkRUblRTUUdxejdualRGRDdndldEdGIlMjBTd3h4R0lKU1BQRVJEYUElMkJxQVlFYTRkYkcvbGI3NjdEQVNCbDhOZExvZUJaMHZmc1F0OTdueVZCRFdnRUtwbHJXRGVic2xhMFBTZG8lMjBoRHVWd0FGWUlMdzNvdk9jQVNPbXdwbDdyODNlaGM4NnQ5QnpXbDR3VXE0RTVvL1gvOGdONkJSdmFNYnJlaUJJNmxnS1lGb0pIelh3JTIwOTduenBwVHZNSmd1bTMvcTlxUTlFRFR6JTJCL2s3Y3hvZ1BHQzhFSmFId0NVUUZCQVduT0RzJTJCQ1VBbGtOd3dQQjg1dDk5OCUyQnBPR082MyUyMCUyQlN0dlk3NEF5SzAzdEgvYTA1NzJ0S2M5N1dsUFElMkIwL0FRWUFMZjZPZk5rWlk3QUFBQUFBU1VWT1JLNUNZSUklM0QlMjIlMjB3aWR0aCUzRCUyMjY1JTIyJTIwaGVpZ2h0JTNEJTIyMTA5JTIyJTIwb3BhY2l0eSUzRCUyMi43NSUyMiUyMG92ZXJmbG93JTNEJTIydmlzaWJsZSUyMiUyMHRyYW5zZm9ybSUzRCUyMm1hdHJpeCUyOC45ODQ2JTIwMCUyMDAlMjAuOTkwOCUyMC0xMS42JTIwLTMuNiUyOSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjAlMjAxOCUyMDEwJTIwNTBsMTAlMjAzMiUyMDEwLTMyeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U1MzkzNSUyMiUyMGQlM0QlMjJtMTAlMjA1MCUyMDEwLTMyJTIwMTAlMjAzMnolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNkMWQxZDElMjIlMjBkJTNEJTIyTTMwJTIwNTAlMjAyMCUyMDgyJTIwMTAlMjA1MHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjb21wYXNzX25lZWRsZV9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMTk5OS94bGluayUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDQwJTIwMTAwJTIyJTNFJTNDaW1hZ2UlMjB4bGluayUzQWhyZWYlM0QlMjJkYXRhJTNBaW1hZ2UvcG5nJTNCYmFzZTY0JTJDaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVFQUFBQnRDQVlBQUFEJTJCbVF3SUFBQUFDWEJJV1hNQUFBc1NBQUFMRWdIUzNYNzhBQUFBJTIwR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQjRkSlJFRlVlTnJzbkl0dTR6b01SUFZLLy85NyUyMDE3WjBiNEI0d1hJNUpQV3dpMTFZZ0pHMlNaUG9hRGlrSk5zaFBPMXBUM3ZhMDU3Mk5LSEZ1ejZvdGRiemVTM0clMkJHOUE2T3o0andHSiUyMFA5QjU2elBiM1REaVRaMzMvSzA1Z1N5SEVTOEdFSlhQc2lBMDdibVZJT0pGQUtTZlJ5RWdHTXRBeEFzQlJBVkNkUGhCTXg2WGdZZzMlMjBBSWlHSW9LaEFQcDRDWWl5RUNJQ0VBRU1Ed1JrbHBFOEYvOGZqQ2tRWlZJRndSajU5NUdjaWtBajM0QmZmQU9ocE5aTGxlQVplUTJFJTIwQkVFQ1VCWEYvTzc4ZTFCRzFWQW1WV0FCU0FLRWFFQ1FGSUJnVUJERGFpZ0x2U0FJQUpJQUlna3E0cDNsS3FpZi82dGFSaGxWUTFtZyUyMGdnQVVnSTd6ZVExQ0phTWJBSWpHUG45WURXV0JDaXdBJTJCWE1rOWp3S2gwb08vcG9LalBVM2dCRTFsQVVxQ01yb1p3WWhDLzRnR2VINyUyME9KUjBXcFhzMHEyR3NsZ0ZFUUFvREFRTkNkcXg5dW44MmNsRE1VUFkyVjQxbEVVcXNBQVVRUlZSaVBrejdnL2hlWjQxSkJCRDNsQXUlMjA5b0xDRGdvaEFRZzdlTDRwSUt5MWlIa0lyRG9NRGhoWmdQQWlmOU1ncEElMkJJYU5RUERZeDZ0MEdXVGhYRXpveEFBYnpJN3dqQ0lUeEglMjBEVE9STklrS3IyNkRuQzJiTFJWa0FvQ0N5RUpIVHdpNzBLbktsQ0tCdUc3dW9CaGlFQ1pLV1ZIQ0Y0T1FBUVFKVGdVZ2tFbDJoVVJaJTIwWUlqUkVRcGY1SkdIUkNDcDBRdWhHbUhSRlJKbFFTaG9ma0RENEl0QnlHd0VENUlacEZBNFB2OXpnSUxyOHZXRTJPRUZVbGFnRUY0QyUyMGhMT2ptYW1EQWpnRUVKbzN1RU9pZEM2Y1JLTlV6b29TYUZpOEJFL2dvVUFCbEk5S3NqQVppN01oVVRvVTBGTXVGMEVOWHl3a3N1QUolMjBtWHhwV2p3VkJrSlN3MjNMYTk3NlFETkdibzY4UnBCU0pnZGhxYUVySklvek5VWmx6cENNS3ZFbEtPRUZsS0JCMklYNVJ3SnE2QXFKJTIwY2tFb2FNYkk2d1d1aE1oJTJCZjNkOEF4TXd6Uk11blVwYkt2QVlvd1dCcSUyQkJGUVBUQW1ETkdFQXJlNVRNdEpGNnNhTklnN0t6elhnQmklMjBTR2klMkJVQVoycG5wRG9UQS8lMkJGSWdCRUVGMG5RY0RVQlZRZ0lxb2t4a0JzL3NrWUtRSmxLSkZFczdNOGxkbUhRaFk0d3pGZVJNaWt5RyUyMEwxZ2d6bzd4TmNNcXBFVnBVU1lyQUxwOG9RejR3VWlkVUpRcE5ZVndxdUEwd3hmd2d3eVc4b2Q4b1hUNkFZS1R3Y0pxVVl5U2h3TTMlMjB4UUxlYXlaVmlvb29DLzBnZ1VXVkFvNFhNOGJBNWdvRkFFaks3dGJ0bnFDdEpYaEFaQllPSEVKMktDQ0JsZXQ0RllTb0ZFdlJxQmxRJTIwTVpXWVRLMmxlazhJZEJkTlpYRDBQYUdSallveUN4RDRUREU1ajJqTWNWUnpMSTZPajlZTENhdzc4alFYV0diSVlCJTJCenAvUFJXQk50JTIwRUlLeXYlMkJEWmZVTDFRektVY2piUDZIdFU2YW9TTlNWWUs4cWhJeXdpZUVSNXZRS3ZpV0JIRzUwQ2RIbDJRQnN5SHBVazhMZmdITjJvJTIwYkFaTnRSU3VhZHFYajA1bGhZbVI3b0tUTGdMUVc0WDJLbTJKQXE2RVlKMkUyUngvUSUyQjhUaFBkRTM2SGQ0UW5XbHd4S1J5MFFudWU3JTIwTyUyQnRWUW5PUTlYNzVDaDZsMTBpbjYvQ2ZMVWpEVUw1QmNHeGVTcEtVT2xDTmZjVFpRd1BpR1ZSWE9EVEYxSm94b25UbmlQOU10OU9rJTIwY3hNTzhQOFNnRG9ZSmtOVDZlWThwQzk4S0FjOXYwaDdMUUtpd1lBbTZWMVU2UTBGUzdvV0JMcXVTRGRiRGtFZGttSlFaa0haWmpvNyUyMFdHRndLSjJoTzBtSnpCZjR1dUl1dkE4Q1VwM2VzQ1JGV21Gd2dDJTJCJTJCZ3dPdEtFbXZsWUF1QlZGQWg2TURpQ1YvQkdJam9VRDNIcy9uJTIwNk9OdUFQQ1laRCUyQkV0M0Y4cHRUTm1SVzAyS2NkMzlqaWFoUDJIVGdzS1R3T3B5OEViOHFjOFlUS3dxR0MlMkJOL1lsbG95bExBcGlqZ00lMjBSYWhGVmU4MlhBJTJCSXF2akNKdXdwU2hETy8vLzFPVFlqTkt3Q2Fva3h0dUMvTW9XRGtHUk50OWZwSW9xbWhNMElpZDdxc1ElMkJDNFF2QiUyMG9RUUpCRDlGQjBINEpRQ1FWSURDQXMwa2w5VUpTQkdINGdjb0ZLb1FEcHNBWWh2MGhHJTJCZEh6cGR4eEVTVm5XSVZHQkIlMkJPVU1oMk8yJTIwU0RJaGtKQUliQU1Ed2RBQW9ETlklMkJlOGJNVWNKeHVHWVdIWFBKcjBUS005cDkxWElET1h6bUJtRSUyQm5tT244ZTRLd0JRMFRTY0dxOUklMjBrZFVBd1UvVXBGZTM4Qk8xYUZnZ0FFdEN3UU9CcThBYkVqdlpVdHZZZmdIZmFlSksyTzRNQlJNQ1M1VlJtVWtpSldSQkJmd0NEZzVoJTIwVjlMazhsQ1lXV2hGZnBBWWhNUTZTME5CdXQ1aEI3NWdGVXZoeW5Ed2hFUU4zODlVbHdDZ2E1MmtpejQyd3hTMSUyQm1EcEdtTnZTSEExJTIwcENCZjFXWmQ0WEtBV2FSVUtDMEpoUlg3RGg0UTB2Vk1LZURMZjNpVzhGYUtsNFlEQ2drJTJCaHpnM1dLV1Jsa0pCdXk0U3JTbDQxaFc3JTIwUXNFTkFZUUVNa2lhOThNZ2hLTmpWYWw3cmpDNzJ1eFJRd3o0WW05dWloSUV0Rmk3YkdGMUdJSlREUnhFRVB5QWhnNEgxTmdxbFpZYSUyMHJjMlhTNVRnVVlOMUQ1UWEvcnh3S3dCenJhT0dlT245RXh4cTBBQ2dxOWNvVURRWDhXN01obkRUblRTUUdxejdualRGRDdndldEdGIlMjBTd3h4R0lKU1BQRVJEYUElMkJxQVlFYTRkYkcvbGI3NjdEQVNCbDhOZExvZUJaMHZmc1F0OTdueVZCRFdnRUtwbHJXRGVic2xhMFBTZG8lMjBoRHVWd0FGWUlMdzNvdk9jQVNPbXdwbDdyODNlaGM4NnQ5QnpXbDR3VXE0RTVvL1gvOGdONkJSdmFNYnJlaUJJNmxnS1lGb0pIelh3JTIwOTduenBwVHZNSmd1bTMvcTlxUTlFRFR6JTJCL2s3Y3hvZ1BHQzhFSmFId0NVUUZCQVduT0RzJTJCQ1VBbGtOd3dQQjg1dDk5OCUyQnBPR082MyUyMCUyQlN0dlk3NEF5SzAzdEgvYTA1NzJ0S2M5N1dsUFElMkIwL0FRWUFMZjZPZk5rWlk3QUFBQUFBU1VWT1JLNUNZSUklM0QlMjIlMjB3aWR0aCUzRCUyMjY1JTIyJTIwaGVpZ2h0JTNEJTIyMTA5JTIyJTIwb3BhY2l0eSUzRCUyMi43NSUyMiUyMG92ZXJmbG93JTNEJTIydmlzaWJsZSUyMiUyMHRyYW5zZm9ybSUzRCUyMm1hdHJpeCUyOC45ODQ2JTIwMCUyMDAlMjAuOTkwOCUyMC0xMS42JTIwLTMuNiUyOSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjAlMjAxOCUyMDEwJTIwNTBsMTAlMjAzMiUyMDEwLTMyeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2MxMjcyZCUyMiUyMGQlM0QlMjJtMTAlMjA1MCUyMDEwLTMyJTIwMTAlMjAzMnolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNkMWQxZDElMjIlMjBkJTNEJTIyTTMwJTIwNTAlMjAyMCUyMDgyJTIwMTAlMjA1MHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjb21wYXNzX25lZWRsZV9ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDQwJTIwMTAwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjMTI3MmQlMjIlMjBkJTNEJTIybTEwJTIwNTAlMjAxMC0zMiUyMDEwJTIwMzJ6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZDFkMWQxJTIyJTIwZCUzRCUyMk0zMCUyMDUwJTIwMjAlMjA4MiUyMDEwJTIwNTB6JTIyLyUzRSUzQy9zdmclM0UiLCJjb21wYXNzX3JvdGF0ZV9hY3RpdmUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMwJTIwMTAwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIybTI0Ljg0JTIwNjkuNzYtLjg0LTExLjc2LTQuMjglMjAyLjM0QzE4LjYxJTIwNTcuMDklMjAxOCUyMDUzLjYyJTIwMTglMjA1MGMwLTYuMTclMjAxLjc1LTExLjkzJTIwNC43OC0xNi44MmwtMi41LTEuNjZDMTYuOTQlMjAzNi44ODAwMDAwMDAwMDAwMSUyMDE1JTIwNDMuMjElMjAxNSUyMDUwYzAlMjA0LjE0LjcyJTIwOC4xMSUyMDIuMDQlMjAxMS43OUwxMyUyMDY0bDcuNyUyMDUuMTNMMjUlMjA3MnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJjb21wYXNzX3JvdGF0ZV9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzAlMjAxMDAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJtMjQuODQlMjA2OS43Ni0uODQtMTEuNzYtNC4yOCUyMDIuMzRDMTguNjElMjA1Ny4wOSUyMDE4JTIwNTMuNjIlMjAxOCUyMDUwYzAtNi4xNyUyMDEuNzUtMTEuOTMlMjA0Ljc4LTE2LjgybC0yLjUtMS42NkMxNi45NCUyMDM2Ljg4MDAwMDAwMDAwMDAxJTIwMTUlMjA0My4yMSUyMDE1JTIwNTBjMCUyMDQuMTQuNzIlMjA4LjExJTIwMi4wNCUyMDExLjc5TDEzJTIwNjRsNy43JTIwNS4xM0wyNSUyMDcyeiUyMi8lM0UlM0Mvc3ZnJTNFIiwiY29tcGFzc19yb3RhdGVfbm9ybWFsLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzMCUyMDEwMCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzYjNiM2IzJTIyJTIwZCUzRCUyMm0yNC44NCUyMDY5Ljc2LS44NC0xMS43Ni00LjI4JTIwMi4zNEMxOC42MSUyMDU3LjA5JTIwMTglMjA1My42MiUyMDE4JTIwNTBjMC02LjE3JTIwMS43NS0xMS45MyUyMDQuNzgtMTYuODJsLTIuNS0xLjY2QzE2Ljk0JTIwMzYuODgwMDAwMDAwMDAwMDElMjAxNSUyMDQzLjIxJTIwMTUlMjA1MGMwJTIwNC4xNC43MiUyMDguMTElMjAyLjA0JTIwMTEuNzlMMTMlMjA2NGw3LjclMjA1LjEzTDI1JTIwNzJ6JTIyLyUzRSUzQy9zdmclM0UiLAoiZnVsbHNjcmVlbl9lbnRlcl9hY3RpdmUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMCUyMDB2NmgyVjJoNFYwem0xNiUyMDBoLTR2Mmg0djRoMlYwem0wJTIwMTZoLTR2Mmg2di02aC0yek0yJTIwMTJIMHY2aDZ2LTJIMnolMjIvJTNFJTNDL3N2ZyUzRSIsImZ1bGxzY3JlZW5fZW50ZXJfYWN0aXZlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMCUyMDB2NmgyVjJoNFYwem0xNiUyMDBoLTR2Mmg0djRoMlYwem0wJTIwMTZoLTR2Mmg2di02aC0yek0yJTIwMTJIMHY2aDZ2LTJIMnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJmdWxsc2NyZWVuX2VudGVyX2hvdmVyLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxOCUyMDE4JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTAlMjAwdjZoMlYyaDRWMHptMTYlMjAwaC00djJoNHY0aDJWMHptMCUyMDE2aC00djJoNnYtNmgtMnpNMiUyMDEySDB2Nmg2di0ySDJ6JTIyLyUzRSUzQy9zdmclM0UiLCJmdWxsc2NyZWVuX2VudGVyX2hvdmVyX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJNMCUyMDB2NmgyVjJoNFYwem0xNiUyMDBoLTR2Mmg0djRoMlYwem0wJTIwMTZoLTR2Mmg2di02aC0yek0yJTIwMTJIMHY2aDZ2LTJIMnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJmdWxsc2NyZWVuX2VudGVyX25vcm1hbC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTglMjAxOCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwZCUzRCUyMk0wJTIwMHY2aDJWMmg0VjB6bTE2JTIwMGgtNHYyaDR2NGgyVjB6bTAlMjAxNmgtNHYyaDZ2LTZoLTJ6TTIlMjAxMkgwdjZoNnYtMkgyeiUyMi8lM0UlM0Mvc3ZnJTNFIiwiZnVsbHNjcmVlbl9lbnRlcl9ub3JtYWxfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTglMjAxOCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzYjNiM2IzJTIyJTIwZCUzRCUyMk0wJTIwMHY2aDJWMmg0VjB6bTE2JTIwMGgtNHYyaDR2NGgyVjB6bTAlMjAxNmgtNHYyaDZ2LTZoLTJ6TTIlMjAxMkgwdjZoNnYtMkgyeiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImZ1bGxzY3JlZW5fZXhpdF9hY3RpdmUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNNCUyMDRIMHYyaDZWMEg0em0xMCUyMDBWMGgtMnY2aDZWNHptLTIlMjAxNGgydi00aDR2LTJoLTZ6TTAlMjAxNGg0djRoMnYtNkgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiZnVsbHNjcmVlbl9leGl0X2FjdGl2ZV9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxOCUyMDE4JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTQlMjA0SDB2Mmg2VjBINHptMTAlMjAwVjBoLTJ2Nmg2VjR6bS0yJTIwMTRoMnYtNGg0di0yaC02ek0wJTIwMTRoNHY0aDJ2LTZIMHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJmdWxsc2NyZWVuX2V4aXRfaG92ZXIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNNCUyMDRIMHYyaDZWMEg0em0xMCUyMDBWMGgtMnY2aDZWNHptLTIlMjAxNGgydi00aDR2LTJoLTZ6TTAlMjAxNGg0djRoMnYtNkgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiZnVsbHNjcmVlbl9leGl0X2hvdmVyX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U2ZTZlNiUyMiUyMGQlM0QlMjJNNCUyMDRIMHYyaDZWMEg0em0xMCUyMDBWMGgtMnY2aDZWNHptLTIlMjAxNGgydi00aDR2LTJoLTZ6TTAlMjAxNGg0djRoMnYtNkgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImZ1bGxzY3JlZW5fZXhpdF9ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJNNCUyMDRIMHYyaDZWMEg0em0xMCUyMDBWMGgtMnY2aDZWNHptLTIlMjAxNGgydi00aDR2LTJoLTZ6TTAlMjAxNGg0djRoMnYtNkgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiZnVsbHNjcmVlbl9leGl0X25vcm1hbF9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxOCUyMDE4JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNiM2IzYjMlMjIlMjBkJTNEJTIyTTQlMjA0SDB2Mmg2VjBINHptMTAlMjAwVjBoLTJ2Nmg2VjR6bS0yJTIwMTRoMnYtNGg0di0yaC02ek0wJTIwMTRoNHY0aDJ2LTZIMHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJnb29nbGVfbG9nb19jb2xvci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2OSUyMDI5JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBzdHJva2UlM0QlMjIlMjNmZmYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjUlMjIlMjBvcGFjaXR5JTNEJTIyLjYlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm0xNy40NzA2JTIwNy4zMzYxNi41NDEyLS41NDExMi0uNTUxOS0uNTMwMTFjLTEuMzYzNi0xLjMwOTc0LTMuMjAxNy0yLjMxOTcxLTUuNzU5MS0yLjMxOTcxLTQuNjEzNyUyMDAtOC41MDI2MiUyMDMuNzU1MTctOC41MDI2MiUyMDguMzk1NzglMjAwJTIwNC42NDA3JTIwMy44ODg5MiUyMDguMzk1OCUyMDguNTAyNjIlMjA4LjM5NTglMjAyLjQ3MDQlMjAwJTIwNC4zNzY1LS44MTg4JTIwNS44NzMyLTIuMzY3OSUyMDEuNTY5NS0xLjU3MjklMjAyLjAyMTYtMy43MzYzJTIwMi4wMjE2LTUuNDExOSUyMDAtLjUyMzItLjA0NC0xLjAyNTQtLjEyOTUtMS40NTI5bC0uMTIwNi0uNjAyOWgtOC4zOTQ3djMuNTk0Mmg0LjgzMDFjLS4xNzI0LjU5NjYtLjQzMjElMjAxLjAyODYtLjc0OTElMjAxLjM0NjEtLjYyODguNjIxNC0xLjU4MjMlMjAxLjMwOTQtMy4zMzElMjAxLjMwOTQtMi42NTI0NSUyMDAtNC43MzU5OC0yLjEzMTItNC43MzU5OC00LjgwOTklMjAwLTIuNjc4NjElMjAyLjA4MzUzLTQuODA5ODElMjA0LjczNTk4LTQuODA5ODElMjAxLjQzNjIlMjAwJTIwMi40NzUyLjU2MDclMjAzLjI1NyUyMDEuMjkyMjlsLjUyOTguNDk1NzQuNTEzLS41MTMwM3olMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJNMjQuODY1NiUyMDIwLjcyODZjMy4wODklMjAwJTIwNS42MDM2LTIuNDE5MiUyMDUuNjAzNi01LjY2OTIlMjAwLTMuMjY4MS0yLjUxNjItNS42NjkyOS01LjYwMzYtNS42NjkyOS0zLjA4NzMlMjAwLTUuNjAzNSUyMDIuNDAxMTktNS42MDM1JTIwNS42NjkyOSUyMDAlMjAzLjI1JTIwMi41MTQ1JTIwNS42NjkyJTIwNS42MDM1JTIwNS42NjkyWm0wLTcuOTAwNGMxLjAxNCUyMDAlMjAxLjk3NjYuODM3JTIwMS45NzY2JTIwMi4yMzEyJTIwMCUyMDEuMzgwNS0uOTY1MyUyMDIuMjMxMS0xLjk3NjYlMjAyLjIzMTEtMS4wMDk5JTIwMC0xLjk3NjUtLjg1NzQtMS45NzY1LTIuMjMxMSUyMDAtMS4zODc0Ljk2MzktMi4yMzEyJTIwMS45NzY1LTIuMjMxMlolMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzUuNzUxMSUyMDE3LjI5MDVoLS4wMDQyYy0xLjAwOTklMjAwLTEuOTc2Ni0uODU3NC0xLjk3NjYtMi4yMzExJTIwMC0xLjM4NzQuOTY0LTIuMjMxMiUyMDEuOTc2Ni0yLjIzMTIlMjAxLjAxMzklMjAwJTIwMS45NzY1LjgzNyUyMDEuOTc2NSUyMDIuMjMxMiUyMDAlMjAxLjM4NDUtLjk2OCUyMDIuMjM2OC0xLjk3MjMlMjAyLjIzMTFabS0uMDEyNCUyMDMuNDM4MWMzLjA4OSUyMDAlMjA1LjYwMzUtMi40MTkyJTIwNS42MDM1LTUuNjY5MiUyMDAtMy4yNjgxLTIuNTE2Mi01LjY2OTI5LTUuNjAzNS01LjY2OTI5LTMuMDg3NCUyMDAtNS42MDM2JTIwMi40MDExOS01LjYwMzYlMjA1LjY2OTI5JTIwMCUyMDMuMjUwOCUyMDIuNTIzNiUyMDUuNjY5MiUyMDUuNjAzNiUyMDUuNjY5MlolMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTEuOTUzJTIwMTAuNDM1N3YtLjc0OTk3aC0zLjU1MzF2LjEyMjUzYy0uNTUtLjI2MTc4LTEuMjAyMi0uNDI2MzktMS45MTkxLS40MjYzOS0yLjg4MzclMjAwLTUuNDY0JTIwMi41MTc5My01LjQ2NCUyMDUuNjkzOTMlMjAwJTIwMi4xMjY5JTIwMS4xNjQlMjAzLjk0NzklMjAyLjgwMzMlMjA0LjkxMzdsLS4wNjU4LjAyNzMtMS44ODA2Ljc4MDItLjY5MjkuMjg3NC4yODc2LjY5MjhjLjYyMjglMjAxLjUwMDQlMjAyLjI3NzYlMjAzLjM2OTclMjA1LjA1MzUlMjAzLjM2OTclMjAxLjQxMDUlMjAwJTIwMi43ODctLjQxNDUlMjAzLjgxNC0xLjQwOTMlMjAxLjAzMzItMS4wMDA5JTIwMS42MTcxLTIuNDk2NSUyMDEuNjE3MS00LjQ2NTN6bS03LjIxOTQlMjA5Ljk4NDQtLjAwMDItLjAwMDVjLjU1NTIuMjAwNSUyMDEuMTQ0Ni4zMDklMjAxLjc0NzQuMzA5LjY4MDglMjAwJTIwMS4zMDU4LS4xNDY3JTIwMS44NDEtLjM4OTEtLjA4NzYuMzg5MS0uMjQxNy42NzEtLjQyNTIuODY4Mi0uMjgxMi4zMDIyLS43MjAyLjUwMTEtMS4zNzQ3LjUwMTEtLjkxMTkwMDAwMDAwMDAxJTIwMC0xLjUyMDEtLjY0NzYtMS43ODgzLTEuMjg4N1ptMS45MzYxLTcuNTkxOWMuOTcyMiUyMDAlMjAxLjg3OC44NDgzJTIwMS44NzglMjAyLjI1NTglMjAwJTIwMS4zNzk2LS44OTU2JTIwMi4yMTQ3LTEuODc4JTIwMi4yMTQ3LTEuMDQyOCUyMDAtMS45OTMtLjg3MzgtMS45OTMtMi4yMTQ3JTIwMC0xLjM3NTQuOTU5NS0yLjI1NTglMjAxLjk5My0yLjI1NThabTkuMDY5LTcuNjA3Mzd2LS43NWgtMy42NTk5VjIwLjQ0MTJoMy42NTk5eiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMm02My45MTI4JTIwMTYuMDYxNC0uNjE4My0uNDEyMi0uNDE3OS42MTQ1Yy0uNDU2Mi42NzA5LTEuMDEwMiUyMDEuMDQzMi0xLjgwMjUlMjAxLjA0MzItLjQzMDYlMjAwLS43NTk1LS4wOTgxLTEuMDE5Ny0uMjYyMi0uMDctLjA0NDEtLjEzODMtLjA5NTEtLjIwNDYtLjE1MzZsNS42OTk5LTIuMzYyNS42ODI1LS4yODNMNjUuOTU5NiUyMDEzLjU1ODlsLS4yMTktLjU1MTRjLS40NTI4LTEuMjA3NS0xLjg4OTktMy42MDkxOC00LjkxMjgtMy42MDkxOC0yLjk4MzMlMjAwLTUuMzI0NCUyMDIuMzYzNTgtNS4zMjQ0JTIwNS42NjkyOCUyMDAlMjAzLjE0NzUlMjAyLjMyMjIlMjA1LjY2OTMlMjA1LjU2MjUlMjA1LjY2OTMlMjAyLjYwNDMlMjAwJTIwNC4xMTExLTEuNTk5MSUyMDQuNzI4My0yLjUxNTZsLjQyMS0uNjI1TDY1LjU4ODIlMjAxNy4xNzgzem0tMi41NjY3LTMuMjEwMy0xLjkzNTMuODAxNWMuMzc5NS0uNTc0MyUyMDEuMDEwNy0uODU3MiUyMDEuNDkwOS0uODU3Mi4xNjUzJTIwMCUyMC4zMTM2LjAyMDcuNDQ0NC4wNTU3WiUyMi8lM0UlM0MvZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNDI4NWY0JTIyJTIwZCUzRCUyMk0xMS43MDA4JTIwMTkuOTg2OGMtNC4yMTMwNCUyMDAtNy43NTI2Mi0zLjQzMjgtNy43NTI2Mi03LjY0NTglMjAwLTQuMjEyOTclMjAzLjUzOTU4LTcuNjQ1NzglMjA3Ljc1MjYyLTcuNjQ1NzglMjAyLjMzMjMlMjAwJTIwMy45OTEyLjkxMTU5JTIwNS4yMzk1JTIwMi4xMTA2MWwtMS40NyUyMDEuNDcwMDNjLS44OTUyLS44Mzc2Ny0yLjExMDYtMS40OTQ2Ny0zLjc2OTUtMS40OTQ2Ny0zLjA3OTcyJTIwMC01LjQ4NTk4JTIwMi40ODAxNi01LjQ4NTk4JTIwNS41NTk4MSUyMDAlMjAzLjA3OTclMjAyLjQwNjI2JTIwNS41NTk5JTIwNS40ODU5OCUyMDUuNTU5OSUyMDEuOTk1NiUyMDAlMjAzLjEyODktLjgwNDglMjAzLjg1OTgtMS41Mjc1LjU5OTUtLjU5OTYuOTg1NS0xLjQ1MzclMjAxLjEzMzMtMi42MjhoLTQuOTkzMXYtMi4wOTQyaDcuMDI5OGMuMDczOS4zNjk1LjExNS44MjEyLjExNSUyMDEuMzA1OCUyMDAlMjAxLjU2ODUtLjQyNyUyMDMuNTA2Ny0xLjgwNjclMjA0Ljg4NjQtMS4zNDY5JTIwMS4zOTYxLTMuMDU1MSUyMDIuMTQzNC01LjMzODElMjAyLjE0MzQlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlOTQyMzUlMjIlMjBkJTNEJTIyTTI5LjcxOTIlMjAxNS4wNTk0YzAlMjAyLjgzMzMtMi4xNzYzJTIwNC45MTkyLTQuODUzNiUyMDQuOTE5Mi0yLjY3NzIlMjAwLTQuODUzNS0yLjA4NTktNC44NTM1LTQuOTE5MiUyMDAtMi44NDk4JTIwMi4xNzYzLTQuOTE5MyUyMDQuODUzNS00LjkxOTMlMjAyLjY3NzMlMjAwJTIwNC44NTM2JTIwMi4wNjk1JTIwNC44NTM2JTIwNC45MTkzbS0yLjEyNyUyMDBjMC0xLjc3MzktMS4yNjQ4LTIuOTgxMi0yLjcyNjYtMi45ODEycy0yLjcyNjUlMjAxLjIxNTUtMi43MjY1JTIwMi45ODEyYzAlMjAxLjc0OTIlMjAxLjI2NDclMjAyLjk4MTElMjAyLjcyNjUlMjAyLjk4MTFzMi43MjY2LTEuMjIzNyUyMDIuNzI2Ni0yLjk4MTElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJiMDUlMjIlMjBkJTNEJTIyTTQwLjU5MjIlMjAxNS4wNTk0YzAlMjAyLjgzMzMtMi4xNzYzJTIwNC45MTkyLTQuODUzNSUyMDQuOTE5Mi0yLjY2OTElMjAwLTQuODUzNi0yLjA4NTktNC44NTM2LTQuOTE5MiUyMDAtMi44NDk4JTIwMi4xNzYzLTQuOTE5MyUyMDQuODUzNi00LjkxOTMlMjAyLjY3NzIlMjAwJTIwNC44NTM1JTIwMi4wNjk1JTIwNC44NTM1JTIwNC45MTkzbS0yLjExODglMjAwYzAtMS43NzM5LTEuMjY0Ny0yLjk4MTItMi43MjY1LTIuOTgxMnMtMi43MjY2JTIwMS4yMTU1LTIuNzI2NiUyMDIuOTgxMmMwJTIwMS43NDkyJTIwMS4yNjQ4JTIwMi45ODExJTIwMi43MjY2JTIwMi45ODExJTIwMS40NjE4LjAwODIlMjAyLjcyNjUtMS4yMjM3JTIwMi43MjY1LTIuOTgxMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzQyODVmNCUyMiUyMGQlM0QlMjJNNTEuMjAzJTIwMTAuNDM1N3Y4LjgzNjZjMCUyMDMuNjM4Mi0yLjE0MzUlMjA1LjEyNDYtNC42ODExJTIwNS4xMjQ2LTIuMzg5OSUyMDAtMy44MTg4LTEuNjAxNC00LjM2MDktMi45MDcybDEuODgwNy0uNzgwMmMuMzM2Ny44MDQ4JTIwMS4xNTglMjAxLjc0OTMlMjAyLjQ4MDIlMjAxLjc0OTMlMjAxLjYyNiUyMDAlMjAyLjYyOC0xLjAxMDElMjAyLjYyOC0yLjg5MDh2LS43MDYzaC0uMDc0Yy0uNDg0NS41OTk1LTEuNDIwNyUyMDEuMTE2OS0yLjU5NTElMjAxLjExNjktMi40NjM3JTIwMC00LjcxNC0yLjE0MzQtNC43MTQtNC45MDI4JTIwMC0yLjc3NTglMjAyLjI1ODUtNC45NDM5JTIwNC43MTQtNC45NDM5JTIwMS4xNzQ0JTIwMCUyMDIuMTEwNi41MjU2JTIwMi41OTUxJTIwMS4xMDA0aC4wNzR2LS43OTY2em0tMS45MDUzJTIwNC42NDgzYzAtMS43MzI4LTEuMTU4LTMuMDA1OC0yLjYyOC0zLjAwNTgtMS40OTQ3JTIwMC0yLjc0MyUyMDEuMjY0Ny0yLjc0MyUyMDMuMDA1OCUyMDAlMjAxLjcxNjQlMjAxLjI0ODMlMjAyLjk2NDclMjAyLjc0MyUyMDIuOTY0NyUyMDEuNDclMjAwJTIwMi42MjgtMS4yNDgzJTIwMi42MjgtMi45NjQ3JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzRhODUzJTIyJTIwZCUzRCUyMk01NC45ODg3JTIwNS4yMjA4M1YxOS42OTEyaC0yLjE1OTlWNS4yMjA4M3olMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlOTQyMzUlMjIlMjBkJTNEJTIybTYzLjQ5NjglMjAxNi42ODU0JTIwMS42NzU0JTIwMS4xMTY5Yy0uNTQyMS44MDQ5LTEuODQ3OCUyMDIuMTg0Ni00LjEwNjMlMjAyLjE4NDYtMi44MDA0JTIwMC00LjgxMjUtMi4xNTk5LTQuODEyNS00LjkxOTMlMjAwLTIuOTIzNyUyMDIuMDM2Ny00LjkxOTMlMjA0LjU3NDQtNC45MTkzJTIwMi41NTQlMjAwJTIwMy44MDIzJTIwMi4wMjg1JTIwNC4yMTMlMjAzLjEyOWwuMjIxNy41NTg0LTYuNTc4MiUyMDIuNzI2NmMuNTAxLjk4NTUlMjAxLjI4OTQlMjAxLjQ5NDYlMjAyLjM4OTglMjAxLjQ5NDYlMjAxLjEwMDUlMjAwJTIwMS44NjQzLS41NTAyJTIwMi40MjI3LTEuMzcxNW0tNS4xNjU2LTEuNzczOSUyMDQuNDAxOS0xLjgyMzFjLS4yNDY0LS42MTYtLjk2OTEtMS4wNDMtMS44MzE0LTEuMDQzLTEuMTAwNSUyMDAtMi42MjguOTY5MS0yLjU3MDUlMjAyLjg2NjElMjIvJTNFJTNDL3N2ZyUzRSIsCiJnb29nbGVfbG9nb19kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDY5JTIwMjklMjIlM0UlM0NnJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZSUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuNSUyMiUyMG9wYWNpdHklM0QlMjIuOSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIybTE3LjQ3MDYlMjA3LjMzNjE2LjU0MTItLjU0MTEyLS41NTE5LS41MzAxMWMtMS4zNjM2LTEuMzA5NzQtMy4yMDE3LTIuMzE5NzEtNS43NTkxLTIuMzE5NzEtNC42MTM3JTIwMC04LjUwMjYyJTIwMy43NTUxNy04LjUwMjYyJTIwOC4zOTU3OCUyMDAlMjA0LjY0MDclMjAzLjg4ODkyJTIwOC4zOTU4JTIwOC41MDI2MiUyMDguMzk1OCUyMDIuNDcwNCUyMDAlMjA0LjM3NjUtLjgxODglMjA1Ljg3MzItMi4zNjc5JTIwMS41Njk1LTEuNTcyOSUyMDIuMDIxNi0zLjczNjMlMjAyLjAyMTYtNS40MTE5JTIwMC0uNTIzMi0uMDQ0LTEuMDI1NC0uMTI5NS0xLjQ1MjlsLS4xMjA2LS42MDI5aC04LjM5NDd2My41OTQyaDQuODMwMWMtLjE3MjQuNTk2Ni0uNDMyMSUyMDEuMDI4Ni0uNzQ5MSUyMDEuMzQ2MS0uNjI4OC42MjE0LTEuNTgyMyUyMDEuMzA5NC0zLjMzMSUyMDEuMzA5NC0yLjY1MjQ1JTIwMC00LjczNTk4LTIuMTMxMi00LjczNTk4LTQuODA5OSUyMDAtMi42Nzg2MSUyMDIuMDgzNTMtNC44MDk4MSUyMDQuNzM1OTgtNC44MDk4MSUyMDEuNDM2MiUyMDAlMjAyLjQ3NTIuNTYwNyUyMDMuMjU3JTIwMS4yOTIyOWwuNTI5OC40OTU3NC41MTMtLjUxMzAzeiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMk0yNC44NjU2JTIwMjAuNzI4NmMzLjA4OSUyMDAlMjA1LjYwMzYtMi40MTkyJTIwNS42MDM2LTUuNjY5MiUyMDAtMy4yNjgxLTIuNTE2Mi01LjY2OTMxLTUuNjAzNi01LjY2OTMxLTMuMDg3MyUyMDAtNS42MDM1JTIwMi40MDEyMS01LjYwMzUlMjA1LjY2OTMxJTIwMCUyMDMuMjUlMjAyLjUxNDUlMjA1LjY2OTIlMjA1LjYwMzUlMjA1LjY2OTJabTAtNy45MDA0YzEuMDE0JTIwMCUyMDEuOTc2Ni44MzclMjAxLjk3NjYlMjAyLjIzMTIlMjAwJTIwMS4zODA1LS45NjUzJTIwMi4yMzExLTEuOTc2NiUyMDIuMjMxMS0xLjAwOTklMjAwLTEuOTc2NS0uODU3NC0xLjk3NjUtMi4yMzExJTIwMC0xLjM4NzQuOTYzOS0yLjIzMTIlMjAxLjk3NjUtMi4yMzEyWiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMk0zNS43NTExJTIwMTcuMjkwNWgtLjAwNDJjLTEuMDA5OSUyMDAtMS45NzY2LS44NTc0LTEuOTc2Ni0yLjIzMTElMjAwLTEuMzg3NC45NjQtMi4yMzEyJTIwMS45NzY2LTIuMjMxMiUyMDEuMDEzOSUyMDAlMjAxLjk3NjUuODM3JTIwMS45NzY1JTIwMi4yMzEyJTIwMCUyMDEuMzg0NS0uOTY4JTIwMi4yMzY3LTEuOTcyMyUyMDIuMjMxMVptLS4wMTI0JTIwMy40MzgxYzMuMDg5JTIwMCUyMDUuNjAzNS0yLjQxOTIlMjA1LjYwMzUtNS42NjkyJTIwMC0zLjI2ODEtMi41MTYyLTUuNjY5MzEtNS42MDM1LTUuNjY5MzEtMy4wODc0JTIwMC01LjYwMzYlMjAyLjQwMTIxLTUuNjAzNiUyMDUuNjY5MzElMjAwJTIwMy4yNTA4JTIwMi41MjM2JTIwNS42NjkyJTIwNS42MDM2JTIwNS42NjkyWiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMk01MS45NTMlMjAxMC40MzU3di0uNzQ5OTdoLTMuNTUzMXYuMTIyNTNjLS41NS0uMjYxNzgtMS4yMDIyLS40MjYzOS0xLjkxOTEtLjQyNjM5LTIuODgzNyUyMDAtNS40NjQlMjAyLjUxNzkzLTUuNDY0JTIwNS42OTM5MyUyMDAlMjAyLjEyNjklMjAxLjE2NCUyMDMuOTQ3OSUyMDIuODAzMyUyMDQuOTEzN2wtLjA2NTguMDI3My0xLjg4MDYuNzgwMi0uNjkyOS4yODc0LjI4NzYuNjkyOGMuNjIyOCUyMDEuNTAwNCUyMDIuMjc3NiUyMDMuMzY5NyUyMDUuMDUzNSUyMDMuMzY5NyUyMDEuNDEwNSUyMDAlMjAyLjc4Ny0uNDE0NSUyMDMuODE0LTEuNDA5MyUyMDEuMDMzMi0xLjAwMDklMjAxLjYxNzEtMi40OTY1JTIwMS42MTcxLTQuNDY1M3ptLTcuMjE5NCUyMDkuOTg0NC0uMDAwMi0uMDAwNWMuNTU1Mi4yMDA1JTIwMS4xNDQ2LjMwOSUyMDEuNzQ3NC4zMDkuNjgwOCUyMDAlMjAxLjMwNTgtLjE0NjclMjAxLjg0MS0uMzg5MS0uMDg3Ni4zODkxLS4yNDE3LjY3MS0uNDI1Mi44NjgyLS4yODEyLjMwMjItLjcyMDIuNTAxMS0xLjM3NDcuNTAxMS0uOTExOTAwMDAwMDAwMDElMjAwLTEuNTIwMS0uNjQ3Ni0xLjc4ODMtMS4yODg3Wm0xLjkzNjEtNy41OTE5Yy45NzIyJTIwMCUyMDEuODc4Ljg0ODMlMjAxLjg3OCUyMDIuMjU1OCUyMDAlMjAxLjM3OTYtLjg5NTYlMjAyLjIxNDctMS44NzglMjAyLjIxNDctMS4wNDI4JTIwMC0xLjk5My0uODczOC0xLjk5My0yLjIxNDclMjAwLTEuMzc1NC45NTk1LTIuMjU1OCUyMDEuOTkzLTIuMjU1OFptOS4wNjktNy42MDczOXYtLjc1aC0zLjY1OTlWMjAuNDQxMmgzLjY1OTl6JTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIybTYzLjkxMjglMjAxNi4wNjE0LS42MTgzLS40MTIyLS40MTc5LjYxNDVjLS40NTYyLjY3MDktMS4wMTAyJTIwMS4wNDMyLTEuODAyNSUyMDEuMDQzMi0uNDMwNiUyMDAtLjc1OTUtLjA5ODEtMS4wMTk3LS4yNjIyLS4wNy0uMDQ0MS0uMTM4My0uMDk1MS0uMjA0Ni0uMTUzNmw1LjY5OTktMi4zNjI1LjY4MjUtLjI4M0w2NS45NTk2JTIwMTMuNTU4OWwtLjIxOS0uNTUxNGMtLjQ1MjgtMS4yMDc1LTEuODg5OS0zLjYwOTE4LTQuOTEyOC0zLjYwOTE4LTIuOTgzMyUyMDAtNS4zMjQ0JTIwMi4zNjM1OC01LjMyNDQlMjA1LjY2OTI4JTIwMCUyMDMuMTQ3NSUyMDIuMzIyMiUyMDUuNjY5MyUyMDUuNTYyNSUyMDUuNjY5MyUyMDIuNjA0MyUyMDAlMjA0LjExMTEtMS41OTkxJTIwNC43MjgzLTIuNTE1NmwuNDIxLS42MjVMNjUuNTg4MiUyMDE3LjE3ODN6bS0yLjU2NjctMy4yMTAzLTEuOTM1My44MDE1Yy4zNzk1LS41NzQzJTIwMS4wMTA3LS44NTcyJTIwMS40OTA5LS44NTcyLjE2NTMlMjAwJTIwLjMxMzYuMDIwNy40NDQ0LjA1NTdaJTIyLyUzRSUzQy9nJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzYzQwNDMlMjIlMjBkJTNEJTIyTTExLjcwMDglMjAxOS45ODY4Yy00LjIxMzA0JTIwMC03Ljc1MjYyLTMuNDMyOC03Ljc1MjYyLTcuNjQ1OCUyMDAtNC4yMTI5NyUyMDMuNTM5NTgtNy42NDU3OCUyMDcuNzUyNjItNy42NDU3OCUyMDIuMzMyMyUyMDAlMjAzLjk5MTIuOTExNTklMjA1LjIzOTUlMjAyLjExMDYxbC0xLjQ3JTIwMS40NzAwM2MtLjg5NTItLjgzNzY3LTIuMTEwNi0xLjQ5NDY3LTMuNzY5NS0xLjQ5NDY3LTMuMDc5NzIlMjAwLTUuNDg1OTglMjAyLjQ4MDE2LTUuNDg1OTglMjA1LjU1OTgxJTIwMCUyMDMuMDc5NyUyMDIuNDA2MjYlMjA1LjU1OTklMjA1LjQ4NTk4JTIwNS41NTk5JTIwMS45OTU2JTIwMCUyMDMuMTI4OS0uODA0OCUyMDMuODU5OC0xLjUyNzUuNTk5NS0uNTk5Ni45ODU1LTEuNDUzNyUyMDEuMTMzMy0yLjYyOGgtNC45OTMxdi0yLjA5NDJoNy4wMjk4Yy4wNzM5LjM2OTUuMTE1LjgyMTIuMTE1JTIwMS4zMDU4JTIwMCUyMDEuNTY4NS0uNDI3JTIwMy41MDY3LTEuODA2NyUyMDQuODg2NC0xLjM0NjklMjAxLjM5NjEtMy4wNTUxJTIwMi4xNDM0LTUuMzM4MSUyMDIuMTQzNG0xOC4wMTg0LTQuOTI3NGMwJTIwMi44MzMzLTIuMTc2MyUyMDQuOTE5Mi00Ljg1MzYlMjA0LjkxOTItMi42NzcyJTIwMC00Ljg1MzUtMi4wODU5LTQuODUzNS00LjkxOTIlMjAwLTIuODQ5OCUyMDIuMTc2My00LjkxOTMlMjA0Ljg1MzUtNC45MTkzJTIwMi42NzczJTIwMCUyMDQuODUzNiUyMDIuMDY5NSUyMDQuODUzNiUyMDQuOTE5M20tMi4xMjclMjAwYzAtMS43NzM5LTEuMjY0OC0yLjk4MTItMi43MjY2LTIuOTgxMnMtMi43MjY1JTIwMS4yMTU1LTIuNzI2NSUyMDIuOTgxMmMwJTIwMS43NDkyJTIwMS4yNjQ3JTIwMi45ODExJTIwMi43MjY1JTIwMi45ODExczIuNzI2Ni0xLjIyMzclMjAyLjcyNjYtMi45ODExbTEzJTIwMGMwJTIwMi44MzMzLTIuMTc2MyUyMDQuOTE5Mi00Ljg1MzUlMjA0LjkxOTItMi42NjkxJTIwMC00Ljg1MzYtMi4wODU5LTQuODUzNi00LjkxOTIlMjAwLTIuODQ5OCUyMDIuMTc2My00LjkxOTMlMjA0Ljg1MzYtNC45MTkzJTIwMi42NzcyJTIwMCUyMDQuODUzNSUyMDIuMDY5NSUyMDQuODUzNSUyMDQuOTE5M20tMi4xMTg4JTIwMGMwLTEuNzczOS0xLjI2NDctMi45ODEyLTIuNzI2NS0yLjk4MTJzLTIuNzI2NiUyMDEuMjE1NS0yLjcyNjYlMjAyLjk4MTJjMCUyMDEuNzQ5MiUyMDEuMjY0OCUyMDIuOTgxMSUyMDIuNzI2NiUyMDIuOTgxMSUyMDEuNDYxOC4wMDgyJTIwMi43MjY1LTEuMjIzNyUyMDIuNzI2NS0yLjk4MTFtMTIuNzI5Ni00LjYyMzd2OC44MzY2YzAlMjAzLjYzODItMi4xNDM1JTIwNS4xMjQ2LTQuNjgxMSUyMDUuMTI0Ni0yLjM4OTklMjAwLTMuODE4OC0xLjYwMTQtNC4zNjA5LTIuOTA3MmwxLjg4MDctLjc4MDJjLjMzNjcuODA0OCUyMDEuMTU4JTIwMS43NDkzJTIwMi40ODAyJTIwMS43NDkzJTIwMS42MjYlMjAwJTIwMi42MjgtMS4wMTAxJTIwMi42MjgtMi44OTA4di0uNzA2M2gtLjA3NGMtLjQ4NDUuNTk5NS0xLjQyMDclMjAxLjExNjktMi41OTUxJTIwMS4xMTY5LTIuNDYzNyUyMDAtNC43MTQtMi4xNDM0LTQuNzE0LTQuOTAyOCUyMDAtMi43NzU4JTIwMi4yNTg1LTQuOTQzOSUyMDQuNzE0LTQuOTQzOSUyMDEuMTc0NCUyMDAlMjAyLjExMDYuNTI1NiUyMDIuNTk1MSUyMDEuMTAwNGguMDc0di0uNzk2NnptLTEuOTA1MyUyMDQuNjQ4M2MwLTEuNzMyOC0xLjE1OC0zLjAwNTgtMi42MjgtMy4wMDU4LTEuNDk0NyUyMDAtMi43NDMlMjAxLjI2NDctMi43NDMlMjAzLjAwNTglMjAwJTIwMS43MTY0JTIwMS4yNDgzJTIwMi45NjQ3JTIwMi43NDMlMjAyLjk2NDclMjAxLjQ3JTIwMCUyMDIuNjI4LTEuMjQ4MyUyMDIuNjI4LTIuOTY0N201LjY5MS05Ljg2MzE5VjE5LjY5MTJoLTIuMTU5OVY1LjIyMDgxem04LjUwODElMjAxMS40NjQ1OSUyMDEuNjc1NCUyMDEuMTE2OWMtLjU0MjEuODA0OS0xLjg0NzglMjAyLjE4NDYtNC4xMDYzJTIwMi4xODQ2LTIuODAwNCUyMDAtNC44MTI1LTIuMTU5OS00LjgxMjUtNC45MTkzJTIwMC0yLjkyMzclMjAyLjAzNjctNC45MTkzJTIwNC41NzQ0LTQuOTE5MyUyMDIuNTU0JTIwMCUyMDMuODAyMyUyMDIuMDI4NSUyMDQuMjEzJTIwMy4xMjlsLjIyMTcuNTU4NC02LjU3ODIlMjAyLjcyNjZjLjUwMS45ODU1JTIwMS4yODk0JTIwMS40OTQ2JTIwMi4zODk4JTIwMS40OTQ2JTIwMS4xMDA1JTIwMCUyMDEuODY0My0uNTUwMiUyMDIuNDIyNy0xLjM3MTVtLTUuMTY1Ni0xLjc3MzklMjA0LjQwMTktMS44MjMxYy0uMjQ2NC0uNjE2LS45NjkxLTEuMDQzLTEuODMxNC0xLjA0My0xLjEwMDUlMjAwLTIuNjI4Ljk2OTEtMi41NzA1JTIwMi44NjYxJTIyLyUzRSUzQy9zdmclM0UiLAoiZ29vZ2xlX2xvZ29fd2hpdGUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjklMjAyOSUyMiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzNDc0NzQ3JTIyJTIwc3Ryb2tlJTNEJTIyJTIzNDc0NzQ3JTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS41JTIyJTIwb3BhY2l0eSUzRCUyMi45JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJtMTcuNDcwNiUyMDcuMzM2MTYuNTQxMi0uNTQxMTItLjU1MTktLjUzMDExYy0xLjM2MzYtMS4zMDk3NC0zLjIwMTctMi4zMTk3MS01Ljc1OTEtMi4zMTk3MS00LjYxMzclMjAwLTguNTAyNjIlMjAzLjc1NTE3LTguNTAyNjIlMjA4LjM5NTc4JTIwMCUyMDQuNjQwNyUyMDMuODg4OTIlMjA4LjM5NTglMjA4LjUwMjYyJTIwOC4zOTU4JTIwMi40NzA0JTIwMCUyMDQuMzc2NS0uODE4OCUyMDUuODczMi0yLjM2NzklMjAxLjU2OTUtMS41NzI5JTIwMi4wMjE2LTMuNzM2MyUyMDIuMDIxNi01LjQxMTklMjAwLS41MjMyLS4wNDQtMS4wMjU0LS4xMjk1LTEuNDUyOWwtLjEyMDYtLjYwMjloLTguMzk0N3YzLjU5NDJoNC44MzAxYy0uMTcyNC41OTY2LS40MzIxJTIwMS4wMjg2LS43NDkxJTIwMS4zNDYxLS42Mjg4LjYyMTQtMS41ODIzJTIwMS4zMDk0LTMuMzMxJTIwMS4zMDk0LTIuNjUyNDUlMjAwLTQuNzM1OTgtMi4xMzEyLTQuNzM1OTgtNC44MDk5JTIwMC0yLjY3ODYxJTIwMi4wODM1My00LjgwOTgxJTIwNC43MzU5OC00LjgwOTgxJTIwMS40MzYyJTIwMCUyMDIuNDc1Mi41NjA3JTIwMy4yNTclMjAxLjI5MjI5bC41Mjk4LjQ5NTc0LjUxMy0uNTEzMDN6JTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTI0Ljg2NTYlMjAyMC43Mjg2YzMuMDg5JTIwMCUyMDUuNjAzNi0yLjQxOTIlMjA1LjYwMzYtNS42NjkyJTIwMC0zLjI2ODEtMi41MTYyLTUuNjY5MzEtNS42MDM2LTUuNjY5MzEtMy4wODczJTIwMC01LjYwMzUlMjAyLjQwMTIxLTUuNjAzNSUyMDUuNjY5MzElMjAwJTIwMy4yNSUyMDIuNTE0NSUyMDUuNjY5MiUyMDUuNjAzNSUyMDUuNjY5MlptMC03LjkwMDRjMS4wMTQlMjAwJTIwMS45NzY2LjgzNyUyMDEuOTc2NiUyMDIuMjMxMiUyMDAlMjAxLjM4MDUtLjk2NTMlMjAyLjIzMTEtMS45NzY2JTIwMi4yMzExLTEuMDA5OSUyMDAtMS45NzY1LS44NTc0LTEuOTc2NS0yLjIzMTElMjAwLTEuMzg3NC45NjM5LTIuMjMxMiUyMDEuOTc2NS0yLjIzMTJaJTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTM1Ljc1MTElMjAxNy4yOTA1aC0uMDA0MmMtMS4wMDk5JTIwMC0xLjk3NjYtLjg1NzQtMS45NzY2LTIuMjMxMSUyMDAtMS4zODc0Ljk2NC0yLjIzMTIlMjAxLjk3NjYtMi4yMzEyJTIwMS4wMTM5JTIwMCUyMDEuOTc2NS44MzclMjAxLjk3NjUlMjAyLjIzMTIlMjAwJTIwMS4zODQ1LS45NjglMjAyLjIzNjctMS45NzIzJTIwMi4yMzExWm0tLjAxMjQlMjAzLjQzODFjMy4wODklMjAwJTIwNS42MDM1LTIuNDE5MiUyMDUuNjAzNS01LjY2OTIlMjAwLTMuMjY4MS0yLjUxNjItNS42NjkzMS01LjYwMzUtNS42NjkzMS0zLjA4NzQlMjAwLTUuNjAzNiUyMDIuNDAxMjEtNS42MDM2JTIwNS42NjkzMSUyMDAlMjAzLjI1MDglMjAyLjUyMzYlMjA1LjY2OTIlMjA1LjYwMzYlMjA1LjY2OTJaJTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTUxLjk1MyUyMDEwLjQzNTd2LS43NDk5N2gtMy41NTMxdi4xMjI1M2MtLjU1LS4yNjE3OC0xLjIwMjItLjQyNjM5LTEuOTE5MS0uNDI2MzktMi44ODM3JTIwMC01LjQ2NCUyMDIuNTE3OTMtNS40NjQlMjA1LjY5MzkzJTIwMCUyMDIuMTI2OSUyMDEuMTY0JTIwMy45NDc5JTIwMi44MDMzJTIwNC45MTM3bC0uMDY1OC4wMjczLTEuODgwNi43ODAyLS42OTI5LjI4NzQuMjg3Ni42OTI4Yy42MjI4JTIwMS41MDA0JTIwMi4yNzc2JTIwMy4zNjk3JTIwNS4wNTM1JTIwMy4zNjk3JTIwMS40MTA1JTIwMCUyMDIuNzg3LS40MTQ1JTIwMy44MTQtMS40MDkzJTIwMS4wMzMyLTEuMDAwOSUyMDEuNjE3MS0yLjQ5NjUlMjAxLjYxNzEtNC40NjUzem0tNy4yMTk0JTIwOS45ODQ0LS4wMDAyLS4wMDA1Yy41NTUyLjIwMDUlMjAxLjE0NDYuMzA5JTIwMS43NDc0LjMwOS42ODA4JTIwMCUyMDEuMzA1OC0uMTQ2NyUyMDEuODQxLS4zODkxLS4wODc2LjM4OTEtLjI0MTcuNjcxLS40MjUyLjg2ODItLjI4MTIuMzAyMi0uNzIwMi41MDExLTEuMzc0Ny41MDExLS45MTE5MDAwMDAwMDAwMSUyMDAtMS41MjAxLS42NDc2LTEuNzg4My0xLjI4ODdabTEuOTM2MS03LjU5MTljLjk3MjIlMjAwJTIwMS44NzguODQ4MyUyMDEuODc4JTIwMi4yNTU4JTIwMCUyMDEuMzc5Ni0uODk1NiUyMDIuMjE0Ny0xLjg3OCUyMDIuMjE0Ny0xLjA0MjglMjAwLTEuOTkzLS44NzM4LTEuOTkzLTIuMjE0NyUyMDAtMS4zNzU0Ljk1OTUtMi4yNTU4JTIwMS45OTMtMi4yNTU4Wm05LjA2OS03LjYwNzM5di0uNzVoLTMuNjU5OVYyMC40NDEyaDMuNjU5OXolMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtNjMuOTEyOCUyMDE2LjA2MTQtLjYxODMtLjQxMjItLjQxNzkuNjE0NWMtLjQ1NjIuNjcwOS0xLjAxMDIlMjAxLjA0MzItMS44MDI1JTIwMS4wNDMyLS40MzA2JTIwMC0uNzU5NS0uMDk4MS0xLjAxOTctLjI2MjItLjA3LS4wNDQxLS4xMzgzLS4wOTUxLS4yMDQ2LS4xNTM2bDUuNjk5OS0yLjM2MjUuNjgyNS0uMjgzTDY1Ljk1OTYlMjAxMy41NTg5bC0uMjE5LS41NTE0Yy0uNDUyOC0xLjIwNzUtMS44ODk5LTMuNjA5MTgtNC45MTI4LTMuNjA5MTgtMi45ODMzJTIwMC01LjMyNDQlMjAyLjM2MzU4LTUuMzI0NCUyMDUuNjY5MjglMjAwJTIwMy4xNDc1JTIwMi4zMjIyJTIwNS42NjkzJTIwNS41NjI1JTIwNS42NjkzJTIwMi42MDQzJTIwMCUyMDQuMTExMS0xLjU5OTElMjA0LjcyODMtMi41MTU2bC40MjEtLjYyNUw2NS41ODgyJTIwMTcuMTc4M3ptLTIuNTY2Ny0zLjIxMDMtMS45MzUzLjgwMTVjLjM3OTUtLjU3NDMlMjAxLjAxMDctLjg1NzIlMjAxLjQ5MDktLjg1NzIuMTY1MyUyMDAlMjAuMzEzNi4wMjA3LjQ0NDQuMDU1N1olMjIvJTNFJTNDL2clM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMTEuNzAwOCUyMDE5Ljk4NjhjLTQuMjEzMDQlMjAwLTcuNzUyNjItMy40MzI4LTcuNzUyNjItNy42NDU4JTIwMC00LjIxMjk3JTIwMy41Mzk1OC03LjY0NTc4JTIwNy43NTI2Mi03LjY0NTc4JTIwMi4zMzIzJTIwMCUyMDMuOTkxMi45MTE1OSUyMDUuMjM5NSUyMDIuMTEwNjFsLTEuNDclMjAxLjQ3MDAzYy0uODk1Mi0uODM3NjctMi4xMTA2LTEuNDk0NjctMy43Njk1LTEuNDk0NjctMy4wNzk3MiUyMDAtNS40ODU5OCUyMDIuNDgwMTYtNS40ODU5OCUyMDUuNTU5ODElMjAwJTIwMy4wNzk3JTIwMi40MDYyNiUyMDUuNTU5OSUyMDUuNDg1OTglMjA1LjU1OTklMjAxLjk5NTYlMjAwJTIwMy4xMjg5LS44MDQ4JTIwMy44NTk4LTEuNTI3NS41OTk1LS41OTk2Ljk4NTUtMS40NTM3JTIwMS4xMzMzLTIuNjI4aC00Ljk5MzF2LTIuMDk0Mmg3LjAyOThjLjA3MzkuMzY5NS4xMTUuODIxMi4xMTUlMjAxLjMwNTglMjAwJTIwMS41Njg1LS40MjclMjAzLjUwNjctMS44MDY3JTIwNC44ODY0LTEuMzQ2OSUyMDEuMzk2MS0zLjA1NTElMjAyLjE0MzQtNS4zMzgxJTIwMi4xNDM0bTE4LjAxODQtNC45Mjc0YzAlMjAyLjgzMzMtMi4xNzYzJTIwNC45MTkyLTQuODUzNiUyMDQuOTE5Mi0yLjY3NzIlMjAwLTQuODUzNS0yLjA4NTktNC44NTM1LTQuOTE5MiUyMDAtMi44NDk4JTIwMi4xNzYzLTQuOTE5MyUyMDQuODUzNS00LjkxOTMlMjAyLjY3NzMlMjAwJTIwNC44NTM2JTIwMi4wNjk1JTIwNC44NTM2JTIwNC45MTkzbS0yLjEyNyUyMDBjMC0xLjc3MzktMS4yNjQ4LTIuOTgxMi0yLjcyNjYtMi45ODEycy0yLjcyNjUlMjAxLjIxNTUtMi43MjY1JTIwMi45ODEyYzAlMjAxLjc0OTIlMjAxLjI2NDclMjAyLjk4MTElMjAyLjcyNjUlMjAyLjk4MTFzMi43MjY2LTEuMjIzNyUyMDIuNzI2Ni0yLjk4MTFtMTMlMjAwYzAlMjAyLjgzMzMtMi4xNzYzJTIwNC45MTkyLTQuODUzNSUyMDQuOTE5Mi0yLjY2OTElMjAwLTQuODUzNi0yLjA4NTktNC44NTM2LTQuOTE5MiUyMDAtMi44NDk4JTIwMi4xNzYzLTQuOTE5MyUyMDQuODUzNi00LjkxOTMlMjAyLjY3NzIlMjAwJTIwNC44NTM1JTIwMi4wNjk1JTIwNC44NTM1JTIwNC45MTkzbS0yLjExODglMjAwYzAtMS43NzM5LTEuMjY0Ny0yLjk4MTItMi43MjY1LTIuOTgxMnMtMi43MjY2JTIwMS4yMTU1LTIuNzI2NiUyMDIuOTgxMmMwJTIwMS43NDkyJTIwMS4yNjQ4JTIwMi45ODExJTIwMi43MjY2JTIwMi45ODExJTIwMS40NjE4LjAwODIlMjAyLjcyNjUtMS4yMjM3JTIwMi43MjY1LTIuOTgxMW0xMi43Mjk2LTQuNjIzN3Y4LjgzNjZjMCUyMDMuNjM4Mi0yLjE0MzUlMjA1LjEyNDYtNC42ODExJTIwNS4xMjQ2LTIuMzg5OSUyMDAtMy44MTg4LTEuNjAxNC00LjM2MDktMi45MDcybDEuODgwNy0uNzgwMmMuMzM2Ny44MDQ4JTIwMS4xNTglMjAxLjc0OTMlMjAyLjQ4MDIlMjAxLjc0OTMlMjAxLjYyNiUyMDAlMjAyLjYyOC0xLjAxMDElMjAyLjYyOC0yLjg5MDh2LS43MDYzaC0uMDc0Yy0uNDg0NS41OTk1LTEuNDIwNyUyMDEuMTE2OS0yLjU5NTElMjAxLjExNjktMi40NjM3JTIwMC00LjcxNC0yLjE0MzQtNC43MTQtNC45MDI4JTIwMC0yLjc3NTglMjAyLjI1ODUtNC45NDM5JTIwNC43MTQtNC45NDM5JTIwMS4xNzQ0JTIwMCUyMDIuMTEwNi41MjU2JTIwMi41OTUxJTIwMS4xMDA0aC4wNzR2LS43OTY2em0tMS45MDUzJTIwNC42NDgzYzAtMS43MzI4LTEuMTU4LTMuMDA1OC0yLjYyOC0zLjAwNTgtMS40OTQ3JTIwMC0yLjc0MyUyMDEuMjY0Ny0yLjc0MyUyMDMuMDA1OCUyMDAlMjAxLjcxNjQlMjAxLjI0ODMlMjAyLjk2NDclMjAyLjc0MyUyMDIuOTY0NyUyMDEuNDclMjAwJTIwMi42MjgtMS4yNDgzJTIwMi42MjgtMi45NjQ3bTUuNjkxLTkuODYzMTlWMTkuNjkxMmgtMi4xNTk5VjUuMjIwODF6bTguNTA4MSUyMDExLjQ2NDU5JTIwMS42NzU0JTIwMS4xMTY5Yy0uNTQyMS44MDQ5LTEuODQ3OCUyMDIuMTg0Ni00LjEwNjMlMjAyLjE4NDYtMi44MDA0JTIwMC00LjgxMjUtMi4xNTk5LTQuODEyNS00LjkxOTMlMjAwLTIuOTIzNyUyMDIuMDM2Ny00LjkxOTMlMjA0LjU3NDQtNC45MTkzJTIwMi41NTQlMjAwJTIwMy44MDIzJTIwMi4wMjg1JTIwNC4yMTMlMjAzLjEyOWwuMjIxNy41NTg0LTYuNTc4MiUyMDIuNzI2NmMuNTAxLjk4NTUlMjAxLjI4OTQlMjAxLjQ5NDYlMjAyLjM4OTglMjAxLjQ5NDYlMjAxLjEwMDUlMjAwJTIwMS44NjQzLS41NTAyJTIwMi40MjI3LTEuMzcxNW0tNS4xNjU2LTEuNzczOSUyMDQuNDAxOS0xLjgyMzFjLS4yNDY0LS42MTYtLjk2OTEtMS4wNDMtMS44MzE0LTEuMDQzLTEuMTAwNSUyMDAtMi42MjguOTY5MS0yLjU3MDUlMjAyLjg2NjElMjIvJTNFJTNDL3N2ZyUzRSIsCiJrZXlib2FyZF9pY29uLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNjNDA0MyUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBkJTNEJTIyTTEuNSUyMDBDLjY3MTU3MyUyMDAlMjAwJTIwLjY3MTU3MyUyMDAlMjAxLjV2N0MwJTIwOS4zMjg0My42NzE1NzMlMjAxMCUyMDEuNSUyMDEwaDEzYy44Mjg0JTIwMCUyMDEuNS0uNjcxNTclMjAxLjUtMS41di03YzAtLjgyODQyNy0uNjcxNi0xLjUtMS41LTEuNXpNNSUyMDdjLS41NTIyOCUyMDAtMSUyMC40NDc3Mi0xJTIwMSUyMDAlMjAuNTUyMjkuNDQ3NzIlMjAxJTIwMSUyMDFoNmMuNTUyMyUyMDAlMjAxLS40NDc3MSUyMDEtMSUyMDAtLjU1MjI4LS40NDc3LTEtMS0xek0xJTIwNC4yNWMwLS4xMzgwNy4xMTE5My0uMjUuMjUtLjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LjExMTkzLjI1LjI1djEuNWMwJTIwLjEzODA3LS4xMTE5My4yNS0uMjUuMjVIMS41Yy0uMjc2MTQlMjAwLS41LS4yMjM4Ni0uNS0uNXpNMS41JTIwMWMtLjI3NjE0JTIwMC0uNS4yMjM4Ni0uNS41djEuMjVjMCUyMC4xMzgwNy4xMTE5My4yNS4yNS4yNWgxLjVjLjEzODA3JTIwMCUyMC4yNS0uMTExOTMuMjUtLjI1di0xLjVDMyUyMDEuMTExOTMlMjAyLjg4ODA3JTIwMSUyMDIuNzUlMjAxek00JTIwNC4yNWMwLS4xMzgwNy4xMTE5My0uMjUuMjUtLjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LjExMTkzLjI1LjI1djEuNWMwJTIwLjEzODA3LS4xMTE5My4yNS0uMjUuMjVoLTEuNUM0LjExMTkzJTIwNiUyMDQlMjA1Ljg4ODA3JTIwNCUyMDUuNzV6TTQuMjUlMjAxYy0uMTM4MDclMjAwLS4yNS4xMTE5My0uMjUuMjV2MS41YzAlMjAuMTM4MDcuMTExOTMuMjUuMjUuMjVoMS41Yy4xMzgwNyUyMDAlMjAuMjUtLjExMTkzLjI1LS4yNXYtMS41QzYlMjAxLjExMTkzJTIwNS44ODgwNyUyMDElMjA1Ljc1JTIwMXpNNyUyMDQuMjVjMC0uMTM4MDcuMTExOTMtLjI1LjI1LS4yNWgxLjVjLjEzODA3JTIwMCUyMC4yNS4xMTE5My4yNS4yNXYxLjVjMCUyMC4xMzgwNy0uMTExOTMuMjUtLjI1LjI1aC0xLjVDNy4xMTE5MyUyMDYlMjA3JTIwNS44ODgwNyUyMDclMjA1Ljc1ek03LjI1JTIwMWMtLjEzODA3JTIwMC0uMjUuMTExOTMtLjI1LjI1djEuNWMwJTIwLjEzODA3LjExMTkzLjI1LjI1LjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LS4xMTE5My4yNS0uMjV2LTEuNUM5JTIwMS4xMTE5MyUyMDguODg4MDclMjAxJTIwOC43NSUyMDF6TTEwJTIwNC4yNWMwLS4xMzgwNy4xMTE5LS4yNS4yNS0uMjVoMS41Yy4xMzgxJTIwMCUyMC4yNS4xMTE5My4yNS4yNXYxLjVjMCUyMC4xMzgwNy0uMTExOS4yNS0uMjUuMjVoLTEuNWMtLjEzODElMjAwLS4yNS0uMTExOTMtLjI1LS4yNXpNMTAuMjUlMjAxYy0uMTM4MSUyMDAtLjI1LjExMTkzLS4yNS4yNXYxLjVjMCUyMC4xMzgwNy4xMTE5LjI1LjI1LjI1aDEuNWMuMTM4MSUyMDAlMjAuMjUtLjExMTkzLjI1LS4yNXYtMS41YzAtLjEzODA3LS4xMTE5LS4yNS0uMjUtLjI1ek0xMyUyMDQuMjVjMC0uMTM4MDcuMTExOS0uMjUuMjUtLjI1aDEuNWMuMTM4MSUyMDAlMjAuMjUuMTExOTMuMjUuMjVWNS41YzAlMjAuMjc2MTQtLjIyMzkuNS0uNS41aC0xLjI1Yy0uMTM4MSUyMDAtLjI1LS4xMTE5My0uMjUtLjI1ek0xMy4yNSUyMDFjLS4xMzgxJTIwMC0uMjUuMTExOTMtLjI1LjI1djEuNWMwJTIwLjEzODA3LjExMTkuMjUuMjUuMjVoMS41Yy4xMzgxJTIwMCUyMC4yNS0uMTExOTMuMjUtLjI1VjEuNWMwLS4yNzYxNC0uMjIzOS0uNS0uNS0uNXolMjIlMjBjbGlwLXJ1bGUlM0QlMjJldmVub2RkJTIyLyUzRSUzQy9zdmclM0UiLAoia2V5Ym9hcmRfaWNvbl9kYXJrLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBkJTNEJTIyTTEuNSUyMDBDLjY3MTU3MyUyMDAlMjAwJTIwLjY3MTU3MyUyMDAlMjAxLjV2N0MwJTIwOS4zMjg0My42NzE1NzMlMjAxMCUyMDEuNSUyMDEwaDEzYy44Mjg0JTIwMCUyMDEuNS0uNjcxNTclMjAxLjUtMS41di03YzAtLjgyODQyNy0uNjcxNi0xLjUtMS41LTEuNXpNNSUyMDdjLS41NTIyOCUyMDAtMSUyMC40NDc3Mi0xJTIwMSUyMDAlMjAuNTUyMjkuNDQ3NzIlMjAxJTIwMSUyMDFoNmMuNTUyMyUyMDAlMjAxLS40NDc3MSUyMDEtMSUyMDAtLjU1MjI4LS40NDc3LTEtMS0xek0xJTIwNC4yNWMwLS4xMzgwNy4xMTE5My0uMjUuMjUtLjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LjExMTkzLjI1LjI1djEuNWMwJTIwLjEzODA3LS4xMTE5My4yNS0uMjUuMjVIMS41Yy0uMjc2MTQlMjAwLS41LS4yMjM4Ni0uNS0uNXpNMS41JTIwMWMtLjI3NjE0JTIwMC0uNS4yMjM4Ni0uNS41djEuMjVjMCUyMC4xMzgwNy4xMTE5My4yNS4yNS4yNWgxLjVjLjEzODA3JTIwMCUyMC4yNS0uMTExOTMuMjUtLjI1di0xLjVDMyUyMDEuMTExOTMlMjAyLjg4ODA3JTIwMSUyMDIuNzUlMjAxek00JTIwNC4yNWMwLS4xMzgwNy4xMTE5My0uMjUuMjUtLjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LjExMTkzLjI1LjI1djEuNWMwJTIwLjEzODA3LS4xMTE5My4yNS0uMjUuMjVoLTEuNUM0LjExMTkzJTIwNiUyMDQlMjA1Ljg4ODA3JTIwNCUyMDUuNzV6TTQuMjUlMjAxYy0uMTM4MDclMjAwLS4yNS4xMTE5My0uMjUuMjV2MS41YzAlMjAuMTM4MDcuMTExOTMuMjUuMjUuMjVoMS41Yy4xMzgwNyUyMDAlMjAuMjUtLjExMTkzLjI1LS4yNXYtMS41QzYlMjAxLjExMTkzJTIwNS44ODgwNyUyMDElMjA1Ljc1JTIwMXpNNyUyMDQuMjVjMC0uMTM4MDcuMTExOTMtLjI1LjI1LS4yNWgxLjVjLjEzODA3JTIwMCUyMC4yNS4xMTE5My4yNS4yNXYxLjVjMCUyMC4xMzgwNy0uMTExOTMuMjUtLjI1LjI1aC0xLjVDNy4xMTE5MyUyMDYlMjA3JTIwNS44ODgwNyUyMDclMjA1Ljc1ek03LjI1JTIwMWMtLjEzODA3JTIwMC0uMjUuMTExOTMtLjI1LjI1djEuNWMwJTIwLjEzODA3LjExMTkzLjI1LjI1LjI1aDEuNWMuMTM4MDclMjAwJTIwLjI1LS4xMTE5My4yNS0uMjV2LTEuNUM5JTIwMS4xMTE5MyUyMDguODg4MDclMjAxJTIwOC43NSUyMDF6TTEwJTIwNC4yNWMwLS4xMzgwNy4xMTE5LS4yNS4yNS0uMjVoMS41Yy4xMzgxJTIwMCUyMC4yNS4xMTE5My4yNS4yNXYxLjVjMCUyMC4xMzgwNy0uMTExOS4yNS0uMjUuMjVoLTEuNWMtLjEzODElMjAwLS4yNS0uMTExOTMtLjI1LS4yNXpNMTAuMjUlMjAxYy0uMTM4MSUyMDAtLjI1LjExMTkzLS4yNS4yNXYxLjVjMCUyMC4xMzgwNy4xMTE5LjI1LjI1LjI1aDEuNWMuMTM4MSUyMDAlMjAuMjUtLjExMTkzLjI1LS4yNXYtMS41YzAtLjEzODA3LS4xMTE5LS4yNS0uMjUtLjI1ek0xMyUyMDQuMjVjMC0uMTM4MDcuMTExOS0uMjUuMjUtLjI1aDEuNWMuMTM4MSUyMDAlMjAuMjUuMTExOTMuMjUuMjVWNS41YzAlMjAuMjc2MTQtLjIyMzkuNS0uNS41aC0xLjI1Yy0uMTM4MSUyMDAtLjI1LS4xMTE5My0uMjUtLjI1ek0xMy4yNSUyMDFjLS4xMzgxJTIwMC0uMjUuMTExOTMtLjI1LjI1djEuNWMwJTIwLjEzODA3LjExMTkuMjUuMjUuMjVoMS41Yy4xMzgxJTIwMCUyMC4yNS0uMTExOTMuMjUtLjI1VjEuNWMwLS4yNzYxNC0uMjIzOS0uNS0uNS0uNXolMjIlMjBjbGlwLXJ1bGUlM0QlMjJldmVub2RkJTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF8wLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuNDglMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTM1LjE2JTIwNDAuMjVjLS4wNCUyMDAtLjA5LS4wMS0uMTMtLjAyLTEuMDYtLjI4LTQuMDQtMS4wMS01LjAzLTEuMDEtLjg4JTIwMC0zLjY2LjY0LTQuNjYuODktLjE5LjA1LS4zOC0uMDItLjUxLS4xNy0uMTItLjE1LS4xNS0uMzUtLjA3LS41M2w0Ljc3OTk5OTk5OTk5OTk4LTEwLjI0Yy4wOC0uMTcuMjUtLjI5LjQ1LS4yOS4xNCUyMDAlMjAuMzcuMTEuNDUuMjhsNS4xNTk5OTk5OTk5OTk5OSUyMDEwLjM3Yy4wOS4xOC4wNi4zOS0uMDYuNTQtLjA5LjEyLS4yNC4xOC0uMzguMThtLTUuMTU5OTk5OTk5OTk5OTgtMi4wM2MuOSUyMDAlMjAyLjk2LjQ3JTIwNC4yMi43OGwtNC4yMS04LjQ2LTMuOSUyMDguMzZjMS4xOS0uMjglMjAzLjA5LS42OCUyMDMuODktLjY4JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yNS4yMiUyMDM5LjYyczMuNjQtLjklMjA0Ljc4LS45YzEuMTYlMjAwJTIwNS4xNiUyMDEuMDMlMjA1LjE2JTIwMS4wM0wzMCUyMDI5LjM5eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfMS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjQ4JTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0zNC44MiUyMDQxLjRjLS4yMSUyMDAtLjM5LS4xMy0uNDctLjMyLS41OC0xLjU2LTEuNDItMy4wMi0xLjc5LTMuMTMtLjQyLS4xMy0yLjM5LjctNC4yMiUyMDEuNzctLjIxLjEyLS40OC4wOC0uNjMtLjExLS4xNi0uMTgtLjE2LS40NS0uMDEtLjY0TDM1LjklMjAyOWMuMTQtLjE3LjM4LS4yMy41OC0uMTRzLjMzLjMuMy41MmwtMS40NiUyMDExLjU5Yy0uMDMuMjMtLjIxLjQxLS40NC40My0uMDMtLjAxLS4wNSUyMDAtLjA2JTIwMG0tMi4zMS00LjQ2Yy4xMyUyMDAlMjAuMjQuMDEuMzQuMDQuNjIuMTklMjAxLjI0JTIwMS4xMyUyMDEuNyUyMDIuMDVsMS4wMi04LjA3LTUuNTQlMjA2Ljc0Yy45LS40MSUyMDEuODQtLjc2JTIwMi40OC0uNzYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTM0LjgyJTIwNDAuOXMtMS4wOS0zLjEyLTIuMTEtMy40My00LjYyJTIwMS44Mi00LjYyJTIwMS44Mmw4LjItOS45N3olMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkXzEwLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuNDglMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTE1Ljg2JTIwNDguNzRjLS4xOSUyMDAtLjM2LS4xMS0uNDUtLjI4LS4xLS4yMS0uMDUtLjQ2LjE0LS42MWw5LTcuMjRjLjEyLS4xLjI5LS4xNC40NS0uMDkuMTYuMDQuMjguMTYuMzMuMzElMjAwJTIwLjAxLjUlMjAxLjM3JTIwMS4yNSUyMDIuMDEuNjQuNTQlMjAzLjAxJTIwMS4yOCUyMDMuODclMjAxLjUxLjIyLjA2LjM3LjI2LjM3LjQ5cy0uMTYuNDItLjM5LjQ4bC0xNC40NSUyMDMuNGMtLjA1LjAxLS4wOC4wMi0uMTIuMDJtOC43OS02Ljk0LTYuNzYlMjA1LjQ0JTIwMTAuNTMtMi40OGMtLjk0LS4zMy0yLS43NS0yLjQ5LTEuMTYtLjU4LS40OS0xLjAyLTEuMjYtMS4yOC0xLjglMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTMwLjMxJTIwNDQuODNzLTMuMTktLjg4LTQuMDYtMS42MS0xLjQtMi4yMi0xLjQtMi4yMmwtOC45OSUyMDcuMjR6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF8xMS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMTMuMjElMjA0NS4xNWMtLjI0JTIwMC0uNDQtLjE3LS40OS0uNHMuMDgtLjQ3LjMtLjU2TDI1JTIwMzkuMjJjLjE1LS4wNi4zMS0uMDUuNDUuMDNzLjIzLjIyLjI0LjM4YzAlMjAuMDEuMTQlMjAxLjQ2LjcxJTIwMi4yNi40OS42OSUyMDIuMzElMjAxLjg2JTIwMi45NiUyMDIuMjUuMTkuMTIuMjkuMzQuMjMuNTZzLS4yNi4zNy0uNDguMzd6bTExLjU4LTQuNzYtOS4wNCUyMDMuNzUlMjAxMS42OC0uMDZjLS43MS0uNS0xLjQ5LTEuMTEtMS44NS0xLjYxLS40NC0uNjItLjY3LTEuNDktLjc5LTIuMDglMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI5LjExJTIwNDQuNThzLTIuNDYtMS40Ny0zLjEyLTIuMzljLS42Ni0uOTMtLjgtMi41LS44LTIuNWwtMTEuOTglMjA0Ljk3eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfMTIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMzAuNiUyMDI3LjE5Yy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40Mi05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjcuMjUlMjA0My45aC0uMDZsLTE1LjE2LTEuOTljLS4yNS0uMDMtLjQ0LS4yNS0uNDQtLjVzLjE5LS40Ni40NC0uNUwyNi44NCUyMDM5Yy4yMS0uMDMuNDUuMS41My4zMnMuMDEuNDYtLjE4LjU5Yy0uMDEuMDEtMS4wNS43Ni0uNzclMjAxLjM5LjQzLjk0JTIwMS4xOCUyMDEuNzUlMjAxLjE5JTIwMS43NS4xNC4xNS4xOC4zOC4wOC41Ny0uMDguMTctLjI1LjI4LS40NC4yOG0tMTEuMjgtMi40OSUyMDEwLjEzJTIwMS4zM2MtLjItLjMtLjQyLS42NS0uNTktMS4wMi0uMjUtLjU1LS4xNC0xLjA5LjExLTEuNTV6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yNy4yNSUyMDQzLjRzLS44MS0uODYtMS4yOC0xLjg5Ljk0LTIuMDEuOTQtMi4wMUwxMi4xJTIwNDEuNDF6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF8xMy5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMmMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDJjMC03Ljk3LTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDU5OTk5OTk5OTk5OTklMjAxOS40NyUyMDEzLjUyOTk5OTk5OTk5OTk5LTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjQ4JTIyJTIwY3klM0QlMjI0MS41MSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjYuMDIlMjA0Mi42Yy0uMDclMjAwLS4xNC0uMDEtLjItLjA0TDEzLjQlMjAzNy4xMmMtLjIzLS4xLS4zNS0uMzUtLjI4LS41OS4wNi0uMjQuMy0uNC41NC0uMzdsMTUuMDMlMjAxLjY0Yy4yNC4wMy40Mi4yMS40NC40NXMtLjEyLjQ1LS4zNS41M2MtMS4wMy4zMy0yLjE4Ljk2LTIuMjYlMjAxLjM5LS4xOSUyMDEuMDEtLjAyJTIwMS44Mi0uMDElMjAxLjgzLjA0LjE4LS4wMy4zNy0uMTcuNDktLjA5LjA4LS4yMS4xMS0uMzIuMTFtLTkuMjMtNS4wOCUyMDguNjUlMjAzLjc5Yy0uMDEwMDAwMDAwMDAwMDEtLjM3LjAwOTk5OTk5OTk5OTk5LS44Mi4wOTk5OTk5OTk5OTk5OS0xLjMyLjEtLjU2LjYzLTEuMDMlMjAxLjIxLTEuMzl6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yNi4wMiUyMDQyLjFzLS4yMi0uOTIuMDEtMi4wM2MuMjItMS4wNCUyMDIuNi0xLjc4JTIwMi42LTEuNzhMMTMuNiUyMDM2LjY1eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfMTQuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMzAuNiUyMDI3LjJjLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA1OTk5OTk5OTk5OTk5JTIwMTkuNDclMjAxMy41Mjk5OTk5OTk5OTk5OS04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNTElMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTI1LjQ5JTIwNDEuODgwMDAwMDAwMDAwMDFjLS4xNCUyMDAtLjI3LS4wNi0uMzctLjE2bC03Ljg4LTguNTljLS4xNi0uMTctLjE4LS40My0uMDQtLjYyLjEzLS4xODk5OTk5OTk5OTk5OC4zOC0uMjU5OTk5OTk5OTk5OTguNi0uMTc5OTk5OTk5OTk5OThsMTMuOTUlMjA1LjYzMDAwMDAwMDAwMDAxYy4yMi4wOS4zNS4zMy4zLjU3cy0uMjUuNDEtLjUxLjRjLTIuMTYtLjA4LTQuMjUuMTEtNC41Ni40Mi0uNDkuNDktLjg5JTIwMS43My0xJTIwMi4xNi0uMDUuMTgwMDAwMDAwMDAwMDEtLjE5LjMxMDAwMDAwMDAwMDAxLS4zNi4zNjAwMDAwMDAwMDAwMS0uMDUuMDA5OTk5OTk5OTk5OTYtLjA5LjAwOTk5OTk5OTk5OTk2LS4xMy4wMDk5OTk5OTk5OTk5Nm0tNi4wMi03LjhMMjUuMjglMjA0MC40MWMuMjEtLjU4LjU1LTEuMzMlMjAxLTEuNzcuNDMtLjQzJTIwMS42MS0uNjIlMjAyLjc3LS42OXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI1LjQ5JTIwNDEuMzgwMDAwMDAwMDAwMDFzLjM4LTEuNjMlMjAxLjEzLTIuMzljLjc1LS43NSUyMDQuOTMtLjU3JTIwNC45My0uNTdMMTcuNiUyMDMyLjc5eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfMTUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMzAuNiUyMDI3LjJjLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA1OTk5OTk5OTk5OTk5JTIwMTkuNDclMjAxMy41Mjk5OTk5OTk5OTk5OS04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNTElMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTI1LjQ5JTIwNDEuODgwMDAwMDAwMDAwMDFjLS4yMSUyMDAtLjQtLjEzLS40Ny0uMzNsLTQuMy0xMS42N2MtLjA4LS4yMSUyMDAtLjQ1LjE4LS41OHMuNDQtLjEyLjYxLjAzbDEwLjM3JTIwOC43MWMuMTYuMTQuMjIuMzYuMTUuNTYtLjA4LjItLjI2LjMxLS40OS4zMi0yLjE2LS4wOC00LjI1LjExLTQuNTYuNDItLjQ5LjQ5LS44OSUyMDEuNzMtMSUyMDIuMTYtLjA1LjIxMDAwMDAwMDAwMDAyLS4yNC4zNjAwMDAwMDAwMDAwMi0uNDYuMzcwMDAwMDAwMDAwMDItLjAxLjAxLS4wMi4wMS0uMDMuMDFNMjIuMzElMjAzMS4zbDMuMTclMjA4LjZjLjItLjQ2LjQ3LS45NC43OS0xLjI3LjU4LS41OCUyMDIuNDctLjcxJTIwMy44OS0uNzN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yNS40OSUyMDQxLjM4MDAwMDAwMDAwMDAxcy4zOC0xLjYzJTIwMS4xMy0yLjM5Yy43NS0uNzUlMjA0LjkzLS41NyUyMDQuOTMtLjU3bC0xMC4zNy04LjcxeiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfMi5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMzUuNDUwMDAwMDAwMDAwMDElMjA0MS44ODAwMDAwMDAwMDAwMWMtLjA0JTIwMC0uMDglMjAwLS4xMi0uMDEtLjE4LS4wNC0uMzItLjE4LS4zNi0uMzYtLjEyLS40NC0uNTItMS42OC0xLTIuMTYtLjMxLS4zMS0yLjQtLjUtNC41Ni0uNDItLjI1LjAyLS40Ni0uMTYtLjUxLS40cy4wOC0uNDguMy0uNTdsMTMuOTUtNS42M2MuMjItLjA5LjQ3LS4wMS42LjE4cy4xMi40NS0uMDQuNjJsLTcuODglMjA4LjU5Yy0uMS4xLS4yNC4xNi0uMzguMTZtLTMuNTUtMy45NGMxLjE2LjA3JTIwMi4zNC4yNiUyMDIuNzcuNjkuNDQuNDQuNzglMjAxLjE5JTIwMSUyMDEuNzdsNS44MS02LjMzeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMzUuNDUwMDAwMDAwMDAwMDElMjA0MS4zODAwMDAwMDAwMDAwMXMtLjM4LTEuNjMtMS4xMy0yLjM5Yy0uNzUtLjc1LTQuOTMtLjU3LTQuOTMtLjU3bDEzLjk1LTUuNjN6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF8zLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuNDglMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTM0LjkyJTIwNDIuNmMtLjExJTIwMC0uMjItLjA0LS4zMi0uMTEtLjE1LS4xMi0uMjEtLjMxLS4xNy0uNDklMjAwLS4wMS4xNy0uODQtLjAxLTEuODMtLjA4LS40My0xLjIzLTEuMDYtMi4yNi0xLjM5LS4yMy0uMDctLjM3LS4yOS0uMzUtLjUzcy4yMS0uNDIuNDQtLjQ1bDE1LjAzLTEuNjRjLjI0LS4wMy40Ny4xMy41NC4zNy4wNi4yNC0uMDYuNDktLjI4LjU5bC0xMi40MiUyMDUuNDRjLS4wNi4wMy0uMTMuMDQtLjIuMDRtLS43My00Yy41OC4zNiUyMDEuMS44MiUyMDEuMjElMjAxLjM5LjA5LjQ5LjExLjk1LjElMjAxLjMybDguNjUtMy43OXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTM0LjkyJTIwNDIuMXMuMjItLjkyLS4wMS0yLjAzYy0uMjItMS4wNC0yLjYtMS43OC0yLjYtMS43OGwxNS4wMy0xLjY0eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfNC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjQ4JTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0zMy42OSUyMDQzLjljLS4xOSUyMDAtLjM2LS4xLS40NS0uMjctLjEtLjE5LS4wNi0uNDIuMDgtLjU3LjAxLS4wMS43Ni0uODElMjAxLjE5LTEuNzUuMjktLjYzLS43Ni0xLjM4LS43Ny0xLjM5LS4xOTAwMDAwMDAwMDAwMi0uMTMtLjI2MDAwMDAwMDAwMDAyLS4zOC0uMTgwMDAwMDAwMDAwMDItLjU5cy4yOTk5OTk5OTk5OTk5OS0uMzQuNTI5OTk5OTk5OTk5OTktLjMybDE0LjgxJTIwMS45MWMuMjUuMDI5OTk5OTk5OTk5OTguNDQuMjM5OTk5OTk5OTk5OTguNDQuNDk5OTk5OTk5OTk5OTglMjAwJTIwLjI0OTk5OTk5OTk5OTk5LS4xOS40NTk5OTk5OTk5OTk5OS0uNDQuNDk5OTk5OTk5OTk5OTlsLTE1LjE2JTIwMS45ODk5OTk5OTk5OTk5OGMtLjAxLS4wMTk5OTk5OTk5OTk5OS0uMDMtLjAxLS4wNS0uMDFtMS42My0zLjczYy4yNS40NTk5OTk5OTk5OTk5OS4zNi45OTk5OTk5OTk5OTk5OS4xMSUyMDEuNTQ5OTk5OTk5OTk5OTktLjE3LjM3LS4zOC43My0uNTklMjAxLjAzbDEwLjEzLTEuMzN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zMy42OSUyMDQzLjRzLjgxLS44NiUyMDEuMjgtMS44OS0uOTQtMi4wMS0uOTQtMi4wMWwxNC44MSUyMDEuOTF6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF81LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuNDglMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIybTQ3LjczJTIwNDUuMTUtMTUuOS0uMDhjLS4yMiUyMDAtLjQyLS4xNS0uNDgtLjM3cy4wMy0uNDUuMjMtLjU2Yy42Ni0uMzklMjAyLjQ4LTEuNTYlMjAyLjk2LTIuMjUuNTctLjguNzEtMi4yNC43MS0yLjI2LjAxLS4xNi4xLS4zLjI0LS4zOHMuMy0uMDkuNDUtLjAzbDExLjk4JTIwNC45N2MuMjIuMDkuMzUuMzMuMy41Ni0uMDQuMjQtLjI1LjQtLjQ5LjRtLTE0LjIyLTEuMDYlMjAxMS42OC4wNi05LjA0LTMuNzVjLS4xMS41OS0uMzQlMjAxLjQ1LS43OSUyMDIuMDgtLjM2LjUtMS4xNCUyMDEuMTEtMS44NSUyMDEuNjElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTMxLjg0JTIwNDQuNThzMi40Ni0xLjQ3JTIwMy4xMi0yLjM5Yy42Ni0uOTMuOC0yLjUuOC0yLjVsMTEuOTglMjA0Ljk3eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfNi5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC40OCUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNNDUuMDglMjA0OC43NGMtLjA0JTIwMC0uMDglMjAwLS4xMS0uMDFsLTE0LjQ1LTMuNGMtLjIyLS4wNS0uMzgtLjI1LS4zOS0uNDglMjAwLS4yMy4xNS0uNDMuMzctLjQ5Ljg2LS4yNCUyMDMuMjMtLjk3JTIwMy44Ny0xLjUxLjYzLS41MyUyMDEuMTEtMS42MyUyMDEuMjUtMi4wMS4wNS0uMTUuMTgtLjI3LjMzLS4zMS4xNi0uMDQuMzItLjAxLjQ1LjA5bDguOTklMjA3LjI0MDAwMDAwMDAwMDAzYy4xOC4xNS4yNC40LjE0LjYxLS4wOC4xNi0uMjYuMjctLjQ1LjI3bS0xMi41NS0zLjk3JTIwMTAuNTMlMjAyLjQ4LTYuNzYtNS40NGMtLjI2LjU0LS43JTIwMS4zMS0xLjI4JTIwMS44LS40OS40LTEuNTUuODMtMi40OSUyMDEuMTYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTMwLjYzJTIwNDQuODNzMy4xOS0uODglMjA0LjA2LTEuNjElMjAxLjQtMi4yMiUyMDEuNC0yLjIybDguOTklMjA3LjI0eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfNy5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC42JTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjQ4JTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk00MC40JTIwNTIuOTZjLS4wOSUyMDAtLjE4LS4wMi0uMjYtLjA3bC0xMi4yNy03LjMzYy0uMTktLjEyLS4yOS0uMzUtLjIyLS41Ni4wNi0uMjIuMjYtLjM3LjQ4LS4zNyUyMDEuMTguMDElMjA0LjI0LS4wNSUyMDUuMDYtLjMyLjY4LS4yMiUyMDEuNzQtMS4zNSUyMDIuMjYtMi4wMi4xMS0uMTQuMjgtLjIxLjQ1LS4xOXMuMzIuMTMuNC4yOWw0LjU1JTIwOS44NmMuMDkuMi4wNC40My0uMTIuNTgtLjA5LjA5LS4yMS4xMy0uMzMuMTNNMjkuOSUyMDQ1LjZsOS4zNiUyMDUuNi0zLjU0LTcuNjhjLS41NS42MS0xLjQyJTIwMS40Ny0yLjIxJTIwMS43My0uNjguMjMtMi4zMS4zMi0zLjYxLjM1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yOC4xMyUyMDQ1LjEzczQuMTQuMDElMjA1LjIyLS4zNWMxLjA4LS4zNSUyMDIuNS0yLjE4JTIwMi41LTIuMThsNC41NSUyMDkuODZ6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF84LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDJjMC03Ljk3LTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjQ4JTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0zMS4wNSUyMDU0LjhjLS4xOCUyMDAtLjM1LS4xLS40My0uMjVsLTUuODMtMTAuMjRjLS4xLS4xNy0uMDgtLjM4LjAzLS41NC4xMi0uMTYuMzEtLjIzLjUxLS4xOSUyMDEuMTYuMjUlMjA0LjM3Ljg5JTIwNS4yNi44OS45OCUyMDAlMjAzLjUyLS43MyUyMDQuNDItMS4wMS4xOC0uMDUuMzklMjAwJTIwLjUyLjE0cy4xNy4zNC4xLjUybC00LjExJTIwMTAuMzdjLS4wNjk5OTk5OTk5OTk5OC4xOC0uMjM5OTk5OTk5OTk5OTguMy0uNDI5OTk5OTk5OTk5OTguMzF6TTI2LjIlMjA0NC43NzAwMDAwMDAwMDAwMWw0Ljc2JTIwOC4zNyUyMDMuMzQtOC40NGMtMS4xLjMxLTIuODQuNzYtMy43My43Ni0uOCUyMDAtMy4wMi0uNDItNC4zNy0uNjklMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI1LjIyJTIwNDQuMDZzNC4yOS45JTIwNS40My45YzEuMTYlMjAwJTIwNC41LTEuMDMlMjA0LjUtMS4wM0wzMS4wNCUyMDU0LjN6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF85LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjYlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuNDglMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTIwLjU1JTIwNTIuOTZjLS4xMiUyMDAtLjI0LS4wNC0uMzMtLjEzLS4xNi0uMTUtLjIxLS4zOC0uMTItLjU4bDQuNTUtOS44NmMuMDctLjE2LjIyLS4yNy40LS4yOS4xNy0uMDIuMzUuMDUuNDUuMTkuMzcuNDglMjAxLjQ5JTIwMS43NiUyMDIuMjYlMjAyLjAyLjgyLjI3JTIwMy45My4zMiUyMDUuMDYuMzIuMjIlMjAwJTIwLjQyLjE1LjQ4LjM3cy0uMDMuNDUtLjIyLjU2bC0xMi4yNyUyMDcuMzNjLS4wOC4wNS0uMTcuMDctLjI2LjA3bTQuNjgtOS40NC0zLjU0JTIwNy42OCUyMDkuMzYtNS42Yy0xLjMtLjA0LTIuOTMtLjEyLTMuNi0uMzUtLjgtLjI1LTEuNjgtMS4xMi0yLjIyLTEuNzMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTMyLjgxJTIwNDUuMTNzLTQuMTQuMDEtNS4yMi0uMzVjLTEuMDgtLjM1LTIuNS0yLjE4LTIuNS0yLjE4bC00LjU1JTIwOS44NnolMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl8wLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjIxJTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMk0zNC4yNSUyMDIzLjc4aC04LjUxYy0uNDIlMjAwLS44LS4yNi0uOTQtLjY2cy0uMDItLjg0LjMtMS4xMWwuNjQtLjUzYy0xLjEyLTEuMTItMS43Ny0yLjY1LTEuNzctNC4yNSUyMDAtMy4zJTIwMi42OS01Ljk5JTIwNS45OC01Ljk5JTIwMS42JTIwMCUyMDMuMS42MyUyMDQuMjMlMjAxLjc2czEuNzUlMjAyLjY0JTIwMS43NSUyMDQuMjRjMCUyMDEuNDUtLjUzJTIwMi44NC0xLjQ5JTIwMy45NC0uMDMuMDUtLjA2LjA5LS4xLjE0bC0uMTMuMTMtLjAzLjAzLjY4LjUyYy4zNC4yNi40OC43MS4zNCUyMDEuMTItLjE0LjM5LS41Mi42Ni0uOTUuNjZtLTQuNzYtMmguOTNjLjA4LS4zMy4zMy0uNi42OC0uNzEuMDktLjAzLjE3LS4wNi4yNS0uMWwuMTItLjA1Yy4yNS0uMTEuNDUtLjIxLjY0LS4zNC4wMS0uMDEuMDgtLjA1LjA5LS4wNi4xNi0uMTEuMzEtLjI0LjQ1LS4zNy4wMS0uMDEuMDktLjA4LjEtLjA5bC4wNS0uMDVjLjAyLS4wMi4wMy0uMDQuMDUtLjA2LjcxLS43NSUyMDEuMS0xLjcyJTIwMS4xLTIuNzQlMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43NS0xLjE3LTIuODEtMS4xN0MyNy43OSUyMDEzLjIxJTIwMjYlMjAxNSUyMDI2JTIwMTcuMmMwJTIwMS4zLjY0JTIwMi41MiUyMDEuNzElMjAzLjI3LjA1LjAzLjA5LjA3LjEzLjExLjMuMTkuNjQuMzUlMjAxJTIwLjQ2LjMyLjE0LjU3LjQxLjY1Ljc0JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMk0zMy45NyUyMDQzLjU5MDAwMDAwMDAwMDAxaC0zLjA0Yy0uNDUlMjAwLS44NC0uMy0uOTYtLjcyLS4xMi40Mi0uNTEuNzItLjk2LjcyaC0zYy0uNTUlMjAwLS45OS0uNDQtMS0uOTlsLS4xMy05LjE4LS4zOC45N2MtLjMuNzEtMS4wNCUyMDEuMDgtMS43OS44OWwtMS4wMS0uMzNjLS43NC0uMjctMS4xMy0xLjAzLS45NC0xLjc4JTIwMC0uMDElMjAwLS4wMi4wMS0uMDIuMDYtLjIyJTIwMi41OS05LjU0JTIwMi41OS05LjU0LjIzLS45MyUyMDEuMDQtMS42NiUyMDEuOTUtMS43OS4wOC0uMDIuMTctLjAzLjI2LS4wM2g4Ljg0Yy4wNiUyMDAlMjAuMTUuMDEuMjIuMDIuOTYuMTElMjAxLjguODMlMjAyLjA0JTIwMS43OSUyMDIuMTUlMjA4LjMxJTIwMi40MiUyMDkuMzglMjAyLjQ2JTIwOS41My4yLjc4LS4xNCUyMDEuNS0uODMlMjAxLjc1bC0xLjA4LjM1Yy0uOC4yMS0xLjU1LS4xNi0xLjg0LS44NWwtLjI4LS43My0uMTMlMjA4Ljk2YzAlMjAuNTQtLjQ1Ljk4LTElMjAuOThtLTIuMS0yaDEuMTE5OTk5OTk5OTk5OTlsLjE5LTEzLjIyYy4wMS0uNDguMzUtLjg4LjgyLS45Ny40Njk5OTk5OTk5OTk5OS0uMDguOTI5OTk5OTk5OTk5OTkuMTclMjAxLjEwOTk5OTk5OTk5OTk5LjYybC4wOS4yMyUyMDEuODU5OTk5OTk5OTk5OTklMjA0LjkyaC4wMDk5OTk5OTk5OTk5OWMtLjQ4MDAwMDAwMDAwMDAxLTEuODgtMi4zNDAwMDAwMDAwMDAwMS05LjA5LTIuMzQwMDAwMDAwMDAwMDEtOS4wOS0uMDQtLjE1OTk5OTk5OTk5OTk5LS4yMS0uMjg5OTk5OTk5OTk5OTktLjMzLS4yODk5OTk5OTk5OTk5OS0uMDMlMjAwLS4wNiUyMDAtLjA5LS4wMWgtOC42Yy0uMDMlMjAwLS4wNy4wMS0uMS4wMS0uMDklMjAwLS4yNi4xMy0uMzEuMzItMS42JTIwNS45MS0yLjIyJTIwOC4xOS0yLjQ3JTIwOS4wOGwyLjA2LTUuMThjLjE4LS40NC42NC0uNyUyMDEuMTEtLjYxcy44MS40OS44Mi45N2wuMTglMjAxMy4yMjAwMDAwMDAwMDAwMWgxLjA4bC40OC02LjkyYy4wNi0uNzkuNjUtMS4zNCUyMDEuNDMtMS4zNC42JTIwMCUyMDEuMzIuMzYlMjAxLjQlMjAxLjM0em0tOS4xNzAwMDAwMDAwMDAwMS03LjkzYy4wMS0uMDEuMDEtLjAyLjAxLS4wNCUyMDAlMjAuMDItLjAxLjAzLS4wMS4wNCUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMjUuNzQlMjAyMi43OC45LS43NWg2LjYybC45OS43NSUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NSUyMiUyMGN5JTNEJTIyMjIuMzclMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjI1JTIyJTIwcnklM0QlMjIuMyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZkYmYyZCUyMiUyMGQlM0QlMjJNMzguMTUlMjAzMy4zN2MwLS4wMS0yLjQ2LTkuNTMtMi40Ni05LjUzLS4xNS0uNi0uNzItMS4wNS0xLjMxLTEuMDVIMjUuNmMtLjU5JTIwMC0xLjEzLjQ5LTEuMjglMjAxLjA4JTIwMCUyMDAtMi41OSUyMDkuNTQtMi41OSUyMDkuNTUtLjA2LjI0LjA0LjQ5LjI5LjU4bC45NC4zMWMuMjUuMDYuNTEtLjA1LjYxLS4yOWwyLjI0LTUuNjUuMiUyMDE0LjIxaDNsLjU1LTcuODVjLjAyLS4yMS4xMy0uNDEuNDQtLjQxcy4zOC4yLjM5LjQxbC41NCUyMDcuODVoMy4wNGwuMi0xNC4yMSUyMDIuMTIlMjA1LjYxYy4xLjIzLjM2LjM1LjYxLjI5bDEuMDQtLjM0Yy4yNC0uMDguMjctLjMzLjIxLS41NiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NmNTcyZSUyMiUyMGQlM0QlMjJtMzQuMTclMjAyOC4zOC4wOC01LjZoLjE3bC40OCUyMDUuNDQuNDUlMjAzLjEzbS05LjU0LTIuOTctLjA4LTUuNTloLS4xN3MtLjMxJTIwNC4yLS40OCUyMDUuNDNjLS4xNyUyMDEuMjQtLjQ1JTIwMy4xMy0uNDUlMjAzLjEzeiUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuOTUlMjIlMjBjeSUzRCUyMjE3LjIzJTIyJTIwZmlsbCUzRCUyMiUyM2ZkYmYyZCUyMiUyMHJ4JTNEJTIyNC45OCUyMiUyMHJ5JTNEJTIyNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJNMzAuMzUlMjAyMS43NGMtMS4xOC4xMS0yLjMxLS4wNi0zLjMtLjQ0Ljk0LjY4JTIwMi4xMiUyMDEuMDQlMjAzLjM2LjkyJTIwMS4yNy0uMTIlMjAyLjM4LS43MSUyMDMuMTktMS41OS0uOTEuNi0yLjAzJTIwMS0zLjI1JTIwMS4xMSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl8xLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjIxJTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0zNC41NiUyMDQxLjRjLS4yMSUyMDAtLjM5LS4xMy0uNDctLjMyLS41OC0xLjU2LTEuNDItMy4wMi0xLjc5LTMuMTMtLjQxLS4xMy0yLjM5LjctNC4yMiUyMDEuNzctLjIxLjEyLS40OC4wOC0uNjMtLjExLS4xNi0uMTgtLjE2LS40NS0uMDEtLjY0bDguMi05Ljk3Yy4xNC0uMTcuMzgtLjIzLjU4LS4xNHMuMzMuMy4zLjUybC0xLjQ2JTIwMTEuNTljLS4wMy4yMy0uMjEuNDEtLjQ0LjQzLS4wMy0uMDEtLjA1JTIwMC0uMDYlMjAwbS0yLjMxLTQuNDZjLjEzJTIwMCUyMC4yNC4wMS4zNC4wNC42Mi4xOSUyMDEuMjMlMjAxLjEzJTIwMS43JTIwMi4wNWwxLjAyLTguMDctNS41MyUyMDYuNzRjLjg5LS40MSUyMDEuODMtLjc2JTIwMi40Ny0uNzYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTM0LjU2JTIwNDAuOXMtMS4wOS0zLjEyLTIuMTEtMy40My00LjYyJTIwMS44Mi00LjYyJTIwMS44Mmw4LjItOS45N3olMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTMzLjM3JTIwNDMuNzAwMDAwMDAwMDAwMDFjLS4xOCUyMDAtLjM1LS4wMy0uNS0uMDktLjIyLS4wNi0xLjEtLjIzLTEuODItLjM3bC0uMjItLjA3Yy0uMjgtLjEyLS41OS0uMzktLjc3LS44LS4zNC4yOS0uNDEuMzEtLjUxLjM2LS4yOC4xMi0uNTUuMTEtLjY5LjA5bC0uMjktLjA2Yy0uMzgtLjA5LTIuMDgtLjQ0LTIuMDgtLjQ0bC0uMy0uMTFjLS4zMS0uMTgtLjY1LS41OC0uNy0xLjE3LS4wMS0uMTItLjE5LTMuMTgtLjQyLTYuNzUtLjE0LjI3LS4zNi41NC0uNy43Mi0uNDIuMjItLjkxLjI0LTEuNDUuMDYtMS42OS0uNTQtMS40MS0xLjk3LTEuMy0yLjUxLjAyLS4wOS4wNC0uMTguMDUtLjI3LjAyLS4xMi40Ni0yLjQ1LjY4LTMuMzcuMTQtLjU4LjY4LTMuMzguODktNC40OC4wMy0uMzYuMjMtMS42NCUyMDEuMzEtMi4zMS4zNS0uMjIuNzgtLjQ3JTIwMS4xNS0uNjgtMS4wOC0xLjEtMS43Mi0yLjYtMS43MS00LjIyJTIwMC0xLjYuNjItMy4xMSUyMDEuNzUtNC4yNCUyMDEuMTItMS4xMyUyMDIuNjItMS43NSUyMDQuMjEtMS43NWguMDFjMS41OSUyMDAlMjAzLjA5LjYzJTIwNC4yMSUyMDEuNzZzMS43NCUyMDIuNjQlMjAxLjc0JTIwNC4yNGMwJTIwMS40MzAwMDAwMDAwMDAwMi0uNSUyMDIuNzcwMDAwMDAwMDAwMDItMS4zNyUyMDMuODIwMDAwMDAwMDAwMDJsLjQ3LjAxYy4zMy4wMS42NS4xNS44OC4zOXMuMzUuNTYuMzQuODlsLS4wMi40NmMuMjguMzcuNDguODIuNTUlMjAxLjI3LjAxLjAxLjQ5JTIwMi4wNC44OSUyMDQuNTEuMyUyMDEuODcuNjclMjA0LjU0Ljc1JTIwNS4yMy4xMy44LS4yNyUyMDEuNDgtLjk4JTIwMS42Ny0uMjguMTEtLjk3LjMxLTEuNS4yMy0uMDQtLjAxLS4wOC0uMDEtLjEzLS4wMkwzNS42MiUyMDQwLjgzYy4wMy4yMi4wMS40NS0uMDEuNjUtLjA1LjUyLS40MiUyMDEuMS0xLjA5JTIwMS43MmwtLjEzLjI5LS40NS4xMmMtLjIuMDYtLjQuMDktLjU3LjA5bS00Ljg2LS45NzAwMDAwMDAwMDAwMS4wNDk5OTk5OTk5OTk5OS4wMnptMy4zODk5OTk5OTk5OTk5OS0xLjM2Yy43MS4xMyUyMDEuMTEuMjIlMjAxLjM2LjI4LjE2LS4xNi4yOS0uMzEuMzUtLjQxbC4zLTkuMjQlMjAxLjk3LS4xOS40NCUyMDEuOTE5OTk5OTk5OTk5OTljLjAxJTIwMCUyMC4wMy0uMDEuMDQtLjAxLS4xMS0uODMtLjM5LTIuODgtLjctNC44MS0uMzktMi4zOS0uODctNC40Mi0uODctNC40NC0uMDQtLjI0LS4xNS0uNDQtLjI3LS41NWwtLjM1MDAwMDAwMDAwMDAyLS4zMS4wMTk5OTk5OTk5OTk5OS0uNTctMi43MS0uMDgtLjI5LTEuOTVjMS42Mi0uNTQlMjAyLjcxLTIuMDclMjAyLjcxLTMuNzklMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43NC0xLjE3LTIuNzktMS4xNy0xLjA2JTIwMC0yLjA1LjQxLTIuNzklMjAxLjE2LS43NS43NS0xLjE2JTIwMS43Ni0xLjE2JTIwMi44MyUyMDAlMjAxLjY1Ljk4JTIwMy4xMSUyMDIuNSUyMDMuNzJsLS40JTIwMS45My0uODEwMDAwMDAwMDAwMDEtLjAyYy0uMzguMjEtMS4xMi42NC0xLjY4Ljk4LS4yNS4xNS0uMzYuNjEtLjM3LjhsLS4wMi4xMmMtLjAzLjE2LS43MyUyMDMuODgtLjkyJTIwNC42NC0uMTYuNjUtLjQ1JTIwMi4xNS0uNTglMjAyLjg2LjI3LS43Mi43MS0xLjk0JTIwMS4xLTMuMjFsMS45NS4yM2MuMjglMjA0LjQxLjYlMjA5LjY4LjY5JTIwMTEuMjEuNzMuMTUlMjAxLjE1LjI0JTIwMS40LjMuMDktLjA3LjE4LS4xNi4yNy0uMjNsLjExLTQuNzkwMDAwMDAwMDAwMDElMjAxLjk5LS4xYy40NyUyMDMuOS42MiUyMDUuMjMuNjclMjA1LjcybTQuOTMtNy43OWMtLjAyLjAwOTk5OTk5OTk5OTk5LS4wNC4wMDk5OTk5OTk5OTk5OS0uMDYuMDE5OTk5OTk5OTk5OTkuMDIlMjAwJTIwLjA0LS4wMS4wNi0uMDIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTIyLjY2JTIwMzIuNDRjLS4xMi43My0uNDIlMjAxLjM1LjU3JTIwMS42Ny45Ny4zMSUyMDEuMDMtLjUzJTIwMS4xNS0uNzklMjAwJTIwMCUyMC43OS0yLjAyJTIwMS40NC00LjE0JTIwMCUyMDAlMjAuOS0zLjY5Ljk4LTQuMTQuMjYtMS42Ni0uNDEtMi4yNy0xLjE3LTIuMjEtLjU2LjA0LTEuMi4zOC0xLjM4JTIwMS43NSUyMDAlMjAwLS43MiUyMDMuODUtLjkxJTIwNC41OC0uMjMuOS0uNjglMjAzLjI4LS42OCUyMDMuMjglMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIybTI1LjY3JTIwMjkuODctLjItNy4xMS0uNDEuMzFzLjA2JTIwNS40LS4xMSUyMDYuNjQtLjQ1JTIwMy4xMy0uNDUlMjAzLjEzeiUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwZCUzRCUyMk0yNy4wMyUyMDIyLjA4aDguMnYyMC41NmgtOC4yeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U1OGEyYyUyMiUyMGQlM0QlMjJtMzUuMjMlMjAyMi4wOC02LjE2LjM3LTIuMDQuMzIuNTElMjAxOC4wMyUyMDEuNDMlMjAxLjAzLjE5LS4wMi45NC0uODEuMTktOC4yMi4yNC0uNzclMjAxLjI1JTIwMTAuMDUlMjAxLjg3LjU2OTk5OTk5OTk5OTk5cy45LS43NzAwMDAwMDAwMDAwMS45NS0xLjI0MDAwMDAwMDAwMDAxYy4wNC0uNDQwMDAwMDAwMDAwMDElMjAwLS40NzAwMDAwMDAwMDAwMSUyMDAtLjQ3MDAwMDAwMDAwMDAxeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBkJTNEJTIyTTI1LjM5JTIwMjIuNzRoOC4zMVY0Mi43MDAwMDAwMDAwMDAwMWgtOC4zMXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIybTI1LjM5JTIwMjIuNzQlMjAxLjElMjAxOC4yMmMuMDIuMjcuMi4zNy4yLjM3czIuMTEuNDQlMjAyLjIuNDhoLjI4YzAtMmUtMTQtLjEzLS4wNDAwMDAwMDAwMDAwMi0uMTQtLjIzMDAwMDAwMDAwMDAyLS4wMi0uMTkwMDAwMDAwMDAwMDEuMjctNy41OTAwMDAwMDAwMDAwMS4yNy03LjU5MDAwMDAwMDAwMDAxLjAyLS4zNy4xMi0uNTIuMzYtLjUzLjI0LjAxLjM1LjExLjQuNzYlMjAwJTIwMCUyMC44NSUyMDcuMDUuODclMjA3LjQ4cy4zMS41Njk5OTk5OTk5OTk5OC4zMS41Njk5OTk5OTk5OTk5OCUyMDEuODYuMzQlMjAxLjk5LjQxYy4wMy4wMTk5OTk5OTk5OTk5OS4wOC4wMTk5OTk5OTk5OTk5OS4xMy4wMTk5OTk5OTk5OTk5OS4xNCUyMDAlMjAuMzItLjA1LjMyLS4wNXMuMDMtLjA0MDAwMDAwMDAwMDAxLjAyLS4zMjAwMDAwMDAwMDAwMWMtLjEtMy40NjAwMDAwMDAwMDAwMS40Ni00LjE0MDAwMDAwMDAwMDAxLS4wNC0xOS4zMjAwMDAwMDAwMDAwMXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwZCUzRCUyMk0yNS40MiUyMDIxLjg0aDkuODF2MS4xOWgtOS44MXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI3LjAzJTIwMjEuODQtMS42MS45JTIwOC4yNS4yOSUyMDEuNTYtLjk1eiUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45MiUyMiUyMGN5JTNEJTIyMjIuMzclMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjI1JTIyJTIwcnklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NSUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45MyUyMDIxLjc0Yy0xLjE5JTIwMC0yLjMtLjI3LTMuMjQtLjc1Ljg3Ljc3JTIwMi4wMSUyMDEuMjQlMjAzLjI2JTIwMS4yNCUyMDEuMjglMjAwJTIwMi40NC0uNDklMjAzLjMyLTEuMjgtLjk2LjUtMi4xMS43OS0zLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMzMuOTklMjAyNi4wNmMuMSUyMDEuNTkuOTIlMjA1Ljk3LjkyJTIwNS45N2wuNTQlMjAyLjMzYy4wOC4yNC4yNy4zMy42Mi4zOHMxLjA5LS4yMSUyMDEuMDktLjIxYy4yMy0uMDYuMjktLjMuMjUtLjU1JTIwMCUyMDAtLjM1LTIuNzItLjc1LTUuMjMtLjQtMi40Ni0uODktNC41MS0uODktNC41MS0uMS0uNjEtLjU5LTEuMjktMS4xNy0xLjM0JTIwMCUyMDAtLjY5JTIwMC0uNzElMjAxLjA2LS4wMyUyMDEuMTIuMSUyMDIuMS4xJTIwMi4xJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMk0zNC40MSUyMDIyLjk1Yy0uMi4wOC0uNS4zMi0uNTIlMjAxLjAxLS4wMyUyMDEuMTIuMSUyMDIuMS4xJTIwMi4xLjA5JTIwMS4zNi43JTIwNC43My44NyUyMDUuN2wuMDEuMDVjLjAxJTIwMC0uNTctNS40OS0uNDYtOC44NiUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl8xMC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjE5Yy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40Mi05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMTUuNiUyMDQ4Ljc0Yy0uMTklMjAwLS4zNi0uMTEtLjQ1LS4yOC0uMS0uMjEtLjA1LS40Ni4xNC0uNjFsOC45OS03LjI0Yy4xMi0uMS4yOS0uMTQuNDUtLjA5LjE2LjA0LjI4LjE2LjM0LjMxJTIwMCUyMC4wMS41JTIwMS4zNyUyMDEuMjUlMjAyLjAxLjY0LjU0JTIwMy4wMSUyMDEuMjglMjAzLjg3JTIwMS41MS4yMi4wNi4zNy4yNi4zNy40OXMtLjE2LjQyLS4zOS40OGwtMTQuNDUlMjAzLjRjLS4wNC4wMS0uMDguMDItLjEyLjAybTguNzktNi45NC02Ljc2JTIwNS40NCUyMDEwLjUzLTIuNDhjLS45NC0uMzMtMi0uNzUtMi40OS0xLjE2LS41OC0uNDktMS4wMi0xLjI2LTEuMjgtMS44JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zMC4wNSUyMDQ0Ljgzcy0zLjE5LS44OC00LjA2LTEuNjEtMS40LTIuMjItMS40LTIuMjJsLTguOTklMjA3LjI0eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMzIuNDUwMDAwMDAwMDAwMDElMjA0NC40OWMtLjA5JTIwMC0uMTctLjAxLS4yNi0uMDMtLjE3LS4wMS0uMzQtLjA2LS40OS0uMTQtLjEyLS4wNy0xLjM5LS44MS0xLjYtLjkzLS4zOS0uMi0uODEtLjY3LS44NC0xLjQxJTIwMC0uMDItLjAxLS4wNy0uMDItLjE2LS4xMi4wNC0uMjUuMDktLjM3LjE0LS4xMi4wOS0uMjUuMTYtLjQxLjE5JTIwMCUyMDAtLjEyLjAyLS4yNi4wMy0uMS4wMS0uMTkuMDEtLjI5LS4wMS0uMS0uMDEtLjItLjA0LS4yOC0uMDctLjExLS4wNS0uMi0uMDgtMS41OS0xLjAzLS4yNC0uMTMtLjU4LS41NC0uNjMtMS4xMy0uMDEtLjE1LS4xNy0yLjg1LS4zNy02LjA5LTEuNTQtLjMzLTEuNDctMS42NS0xLjQ0LTIuMTUlMjAwLS4wNzk5OTk5OTk5OTk5OC4wMS0uMTU5OTk5OTk5OTk5OTguMDEtLjI0OTk5OTk5OTk5OTk4JTIwMC0uMTIuMDktMi4yNy4xNy0zLjEzLjA1LS41NC4xNy0zLjIxLjIxLTQuMTktLjAxLS41OS4xLTEuMTMuMzMtMS41Ni0uMDItLjUuMjctLjkzLjcyLTEuMDguMDYtLjAyLjEyLS4wNC4xOC0uMDRsLjM3LS4xMWMtMS4wNC0xLjExLTEuNjMtMi41Ny0xLjYzLTQuMDklMjAwLTEuNi42Mi0zLjExJTIwMS43NS00LjI0JTIwMS4xMi0xLjEzJTIwMi42Mi0xLjc1JTIwNC4yMS0xLjc1aC4wMWMxLjU5JTIwMCUyMDMuMDkuNjMlMjA0LjIxJTIwMS43NnMxLjc0JTIwMi42NCUyMDEuNzQlMjA0LjI0YzAlMjAxLjU5LS42NSUyMDMuMTMtMS44JTIwNC4yNmwuODEwMDAwMDAwMDAwMDIuMTdjLjQ0LjA5Ljc3LjQ3LjguOTIuMDEwMDAwMDAwMDAwMDEuMTQtLjAwOTk5OTk5OTk5OTk5LjI4LS4wNTk5OTk5OTk5OTk5OS40MWwtLjAzLjQzYy4zLjQ3LjQ4JTIwMS4wOS41NCUyMDEuODQuMDQuNDgtLjElMjAzLjEtLjE0JTIwMy44OS0uMTQlMjAyLjI1LS42JTIwNC43My0uNjIlMjA0Ljg0bC0uMDYuMjVjLS4xMS40MS0uMjEuNzktLjQxJTIwMS4wOWwtLjM4JTIwNi40Njk5OTk5OTk5OTk5OWMwJTIwLjIxOTk5OTk5OTk5OTk5LS4wNC43ODk5OTk5OTk5OTk5OS0uNDElMjAxLjI5OTk5OTk5OTk5OTk5LS4yNS4zNC0uODcuOTctLjk5JTIwMS4xLS4xNjAwMDAwMDAwMDAwMi4xNTk5OTk5OTk5OTk5Ny0uNDIuMjU5OTk5OTk5OTk5OTctLjY4LjI1OTk5OTk5OTk5OTk3bS0xLjItMi43NGMuMjMuMTMuNjMuMzcuOTUuNTUuMTUtLjE2LjI4LS4zMS4zMy0uMzglMjAwLS4wNC4wMi0uMTYuMDMtLjJsLjQtNi44N2MuMDE5OTk5OTk5OTk5OTktLjI2LjEyOTk5OTk5OTk5OTk5LS41MS4zMjk5OTk5OTk5OTk5OS0uNjguMDM5OTk5OTk5OTk5OTktLjExLjA3OTk5OTk5OTk5OTk5LS4yOS4xMjk5OTk5OTk5OTk5OS0uNDVsLjA1LS4xOHMuNDQtMi40Mi41OC00LjUxYy4wOC0xLjU2LjE2LTMuMzUuMTQtMy42Mi0uMDQwMDAwMDAwMDAwMDEtLjU1LS4xNzAwMDAwMDAwMDAwMS0uODctLjI4MDAwMDAwMDAwMDAxLS45OC0uMTktLjItLjMtLjQ3LS4yOC0uNzVsLjAxLS4yNC0yLjM3LS40OWMtLjQ0MDAwMDAwMDAwMDAxLS4wOS0uNzcwMDAwMDAwMDAwMDEtLjQ3LS44MDAwMDAwMDAwMDAwMS0uOTJzLjI2LS44Ny42OS0xLjAxbC4xNS0uMDRjLjA1LS4wMS4xLS4wMy4xNC0uMDUuMDUtLjAyLjEtLjA1LjE1LS4wOEwzMS43MyUyMDIwLjc4Yy4xNy0uMDguMjgtLjE0LjM4LS4yLjA3LS4wNC4xMi0uMDguMTctLjEybC4yMi0uMTdjLjAyLS4wMy4wNS0uMDUuMDctLjA3Ljg4LS43OCUyMDEuMzYtMS44NCUyMDEuMzctMi45OSUyMDAtMS4wNzAwMDAwMDAwMDAwMi0uNDEtMi4wNzAwMDAwMDAwMDAwMi0xLjE2LTIuODMwMDAwMDAwMDAwMDItLjc1LS43NTAwMDAwMDAwMDAwMS0xLjc3LTEuMTgwMDAwMDAwMDAwMDEtMi44LTEuMTcwMDAwMDAwMDAwMDEtMS4wNiUyMDAtMi4wNS40MS0yLjc5JTIwMS4xNy0uNzUuNzUtMS4xNiUyMDEuNzYtMS4xNiUyMDIuODMlMjAwJTIwMS4xNi41MSUyMDIuMjYlMjAxLjQxJTIwMy4wMy4wMy4wMi4wNi4wNS4wOC4wOGwuMDguMDZjLjEzLjEuMi4xNS4yNy4yLjEuMDYuMjEuMTIuMzIuMTcuMDIuMDA5OTk5OTk5OTk5OTkuMTIuMDU5OTk5OTk5OTk5OTkuMTMuMDY5OTk5OTk5OTk5OTkuMzUuMi41Ni42LjUxJTIwMXMtLjMxLjc0LS43Ljg1bC0xLjU2LjQ1Yy0uMDkuMS0uMi4xOS0uMzIuMjUtLjAyLjAxLS4wMy4wMi0uMDUuMDIlMjAwJTIwLjAxLS4wMS4wMS0uMDIuMDItLjAzLjA0LS4xNC4yMS0uMTMuNzEtLjAxLjItLjE1JTIwMy42NS0uMjIlMjA0LjM1LS4wOC44MS0uMTYlMjAyLjk3LS4xNiUyMDIuOTklMjAwJTIwLjA5LS4wMS4yLS4wMS4zdi4wNGMuMjUtLjEuNTMtLjEuNzguMDEuMzQuMTUuNTcuNDguNTkuODUuMTklMjAzLjE2LjM3JTIwNi4wMi40MiUyMDYuODYuMjIuMTUuNTMuMzYuNzcuNTIuMDQtLjAyMDAwMDAwMDAwMDAxLjA5LS4wMzAwMDAwMDAwMDAwMS4xNC0uMDUwMDAwMDAwMDAwMDFsLjI4LTMuMThjLjA0LS41MS40Ni0uOS45Ny0uOTFoLjAzYy41JTIwMCUyMC45Mi4zNy45OS44Ni40NiUyMDMuNjMuNTklMjA0LjY0LjYyJTIwNC45N20tNC4xMi0yLjM5Yy4wMS4wMS4wNC4wMy4xLjA3LS4wNC0uMDItLjA3LS4wNS0uMS0uMDclMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNThhMmMlMjIlMjBkJTNEJTIybTM0LjY4JTIwMjIuNjQtNC40Ni0uODNzLTIuNDIuMzUtMi40My4zNWwtLjQ2JTIwMTcuOTguNzglMjAxLjAzczEuMDItLjM4JTIwMS4xLS40MS4wNy0uMTguMDctLjE4bC42Ni03LjU0JTIwMS40NiUyMDkuNzQlMjAxLjA0LjdjMCUyMDJlLTE0LjY4LS42ODk5OTk5OTk5OTk5OC44OS0uOTc5OTk5OTk5OTk5OTguMjQtLjMzLjIyLS43My4yMi0uNzN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zMi42NiUyMDMzLjUzYy0uMDIuNTctLjI3JTIwMS4yMy43NSUyMDEuNDEuNzQuMTMuNzUtLjExJTIwMS4wMi0xLjEzJTIwMCUyMDAlMjAuNDctMi41LjYxLTQuNzElMjAwJTIwMCUyMC4xOC0zLjMxLjE0LTMuNzYtLjEyLTEuNjYtLjkxLTIuMTEtMS42NC0xLjg3LS41My4xNy0xLjA4LjY1LS45NCUyMDIuMDElMjAwJTIwMCUyMC4xOCUyMDMuODkuMTglMjA0LjY0LS4wMi45My0uMTIlMjAzLjQxLS4xMiUyMDMuNDElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIyTTMyLjY2JTIwMzMuNTNjLS4wMi40LjE5LTEuODYuNDItNC45NC4xLTEuMzUtLjA4LTQuODctLjI3LTQuNTZzLS4yOS43Ny0uMjIlMjAxLjQ1YzAlMjAwJTIwLjE4JTIwMy44OS4xOCUyMDQuNjQtLjAxLjkzLS4xMSUyMDMuNDEtLjExJTIwMy40MSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTI0LjY0JTIwMzEuNDVjLS4wMS42Ny0uMiUyMDEuMjcuNzMlMjAxLjQzLjkxLjE1Ljg2LS42MS45My0uODclMjAwJTIwMCUyMC40NS0xLjkyLjc1LTMuOTElMjAwJTIwMCUyMC4zMy0zLjQ0LjMzLTMuODUuMDItMS41Mi0uNjYtMS45OS0xLjM1LTEuODQtLjUuMTEtMS4wMy41LTEuMDElMjAxLjc1JTIwMCUyMDAtLjE1JTIwMy41Ni0uMjElMjA0LjI0LS4wOS44NC0uMTclMjAzLjA1LS4xNyUyMDMuMDUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI0LjY0JTIwMzEuNDVjLS4wMS42Ny0uMiUyMDEuMjcuNzMlMjAxLjQzLjkxLjE1Ljg2LS42MS45My0uODclMjAwJTIwMCUyMC40NS0xLjkyLjc1LTMuOTElMjAwJTIwMCUyMC4zMy0zLjQ0LjMzLTMuODUuMDItMS41Mi0uNjYtMS45OS0xLjM1LTEuODQtLjUuMTEtMS4wMy41LTEuMDElMjAxLjc1JTIwMCUyMDAtLjE1JTIwMy41Ni0uMjElMjA0LjI0LS4wOS44NC0uMTclMjAzLjA1LS4xNyUyMDMuMDUlMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMm0zMS41NiUyMDIzLjcxLTYuMTctMS4yOXMtLjA1LjAxLS4wNC4wOWMuMTMlMjAxLjUlMjAxLjA3JTIwMTcuMDglMjAxLjA5JTIwMTcuMzQuMDIuMjcuMTkuMzcuMTkuMzdzMS4zLjg5JTIwMS4zOS45My4yNyUyMDAlMjAuMjclMjAwLS4xMy0uMDQtLjE0LS4yM2MtLjAyLS4xOS4zLTcuNDYuMy03LjQ2LjAxLS4zNy4xMS0uNTIuMzYtLjUzLjI0JTIwMCUyMC4yOS4xNS4zMS41MyUyMDAlMjAwJTIwMS4xNCUyMDguMDUlMjAxLjE1JTIwOC40OHMuMzEuNTYuMzEuNTYlMjAxLjQ3Ljg2JTIwMS41OS45Mi4zLjAxLjMuMDEtLjIyLS4wMS0uMjItLjNjMC0uMTktLjY5LTE5LjQyLS42OS0xOS40MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMjYuNzQlMjAyMi42NyUyMDIuMDIlMjA0Ljk4JTIwMS4yMy00LjI2JTIyJTIwb3BhY2l0eSUzRCUyMi42JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0yNS40MyUyMDIyLjQyJTIwNi4xMyUyMDEuMjklMjAzLjE2LTEuMDctNS44OC0xLjIlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuODklMjIlMjBjeSUzRCUyMjIyLjQxJTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMiUyMHJ4JTNEJTIyMi4yNSUyMiUyMHJ5JTNEJTIyLjQzJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk1JTIyJTIwY3klM0QlMjIxNy4yMyUyMiUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjByeCUzRCUyMjQuOTYlMjIlMjByeSUzRCUyMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI5LjkzJTIwMjEuNzRjLTEuMTklMjAwLTIuMy0uMjctMy4yNC0uNzUuODcuNzclMjAyLjAxJTIwMS4yNCUyMDMuMjYlMjAxLjI0JTIwMS4yOCUyMDAlMjAyLjQ0LS40OSUyMDMuMzItMS4yOC0uOTYuNS0yLjExLjc5LTMuMzQuNzklMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fMTEuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQy9nJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTEyLjk1JTIwNDUuMTVjLS4yNCUyMDAtLjQ0LS4xNy0uNDktLjRzLjA4LS40Ny4zLS41NmwxMS45OC00Ljk3Yy4xNS0uMDYuMzEtLjA1LjQ1LjAzcy4yMy4yMi4yNC4zOGMwJTIwLjAxLjE0JTIwMS40Ni43MSUyMDIuMjYuNDkuNjklMjAyLjMlMjAxLjg2JTIwMi45NiUyMDIuMjUuMTkuMTIuMjkuMzQuMjMuNTZzLS4yNi4zNy0uNDguMzd6bTExLjU5LTQuNzYtOS4wNCUyMDMuNzUlMjAxMS42OC0uMDZjLS43MS0uNS0xLjQ5LTEuMTEtMS44NS0xLjYxLS40NS0uNjItLjY4LTEuNDktLjc5LTIuMDglMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI4Ljg1JTIwNDQuNThzLTIuNDYtMS40Ny0zLjEyLTIuMzljLS42Ni0uOTMtLjgtMi41LS44LTIuNWwtMTEuOTglMjA0Ljk3eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMzAuNjglMjA0NC40NmMtLjI2JTIwMC0uNTItLjA5LS43My0uMjYtLjA4LS4wNy0uODMtLjgyLS45NS0uOTUtLjE5LS4xOC0uNDktLjU3LS41LTEuMjYlMjAwLS4wNC0uMDEtLjEyLS4wMS0uMjUtLjA1LjAxLS4wOC4wMi0uMDguMDItLjQ2LjEyLS43OCUyMDAtLjk3LS4xMi0uMTItLjA4LS4xNy0uMTEtMS4wOC0xLjEtLjA2LS4wNS0uMzYtLjM4LS4zOC0xLjAxLS4wMS0uMTYtLjE1LTIuNjktLjMxLTUuNzctLjcyLS4yMy0xLjQ0LS44My0xLjE3LTIuMzdsLjAzLS4xOGMwLS4wMS4yOS0yLjIzLjM3LTMuMDcuMDUtLjU0LjE3LTMuMjEuMjEtNC4xOSUyMDAtLjA4JTIwMC0uMTkuMDEtLjMxbC0uMDYtMS4wOWMtLjAyLS4zOS4yMS0uODQuNTUtMS4wMy4wNS0uMDMuMTEtLjA1LjE2LS4wNy0xLjEzLTEuMTMtMS43OC0yLjY1LTEuNzctNC4yNCUyMDAtMS42LjYyLTMuMTElMjAxLjc1LTQuMjQlMjAxLjEyLTEuMTMlMjAyLjYyLTEuNzUlMjA0LjIxLTEuNzVoLjAxYzEuNTkwMDAwMDAwMDAwMDIlMjAwJTIwMy4wOTAwMDAwMDAwMDAwMi42MyUyMDQuMjEwMDAwMDAwMDAwMDIlMjAxLjc2czEuNzQlMjAyLjY0JTIwMS43NCUyMDQuMjRjMCUyMDEuNjEtLjY2JTIwMy4xNS0xLjgzJTIwNC4yOS0uMDMuMDQtLjA2LjA4LS4xLjEybC4xNC4wNGMuNDYuMTMuNzYuNTYuNzMlMjAxLjA0bC0uMDcuODVjLjI1LjQ1LjQlMjAxLjAyLjQ1JTIwMS42OS4wMy40Ny4wMSUyMDMuNjcuMDElMjA0LjMxLS4xNCUyMDIuMzEtLjY2JTIwNC41NC0uNjklMjA0LjYzLS4xLjY4LS4zNCUyMDEuMTgtLjcxJTIwMS41bC0uNTIlMjA2LjcxYzAlMjAuNC0uMjYlMjAxLjA5LS45OSUyMDEuNDYtLjUwMDAwMDAwMDAwMDAxLjI1LS45OTAwMDAwMDAwMDAwMS40Mi0xLjE5MDAwMDAwMDAwMDAxLjQ5QzMxJTIwNDQuNDMlMjAzMC44NCUyMDQ0LjQ2JTIwMzAuNjglMjA0NC40Nm0tLjE4LTIuNTNjLjEuMS4yNS4yNi40LjQxLjE0LS4wNS4yOS0uMTIuNDUtLjJsLjU1LTcuMTJjLjAzLS4zOS4yOC0uNzIuNjQtLjg2LjAyLS4wOC4wNC0uMTkuMDUtLjI0JTIwMC0uMDEuMDItLjEyLjAyLS4xMy4wMS0uMDcuNTEtMi4yLjY0LTQuMjguMDEtMS43ODAwMDAwMDAwMDAwMi4wMS0zLjg0MDAwMDAwMDAwMDAyJTIwMC00LjA5MDAwMDAwMDAwMDAyLS4wNC0uNi0uMTktLjg2LS4yNy0uOTYtLjE2LS4yLS4yMy0uNDUtLjIxLS43bC4wMy0uMzctMS42MS0uNDVjLS40Mi0uMTItLjcyLS41LS43My0uOTRzLjI3LS44NC42OS0uOTdsLjE1LS4wNGMuMDUtLjAxLjEtLjAzLjE0LS4wNS4wNS0uMDIuMS0uMDUuMTUtLjA4bC4xMjk5OTk5OTk5OTk5OS0uMDdjLjE3LS4wOC4yOC0uMTQuMzgtLjIuMDctLjA0LjEyLS4wOC4xNy0uMTJsLjIyLS4xN2MuMDItLjAzMDAwMDAwMDAwMDAxLjA1LS4wNTAwMDAwMDAwMDAwMS4wNy0uMDcwMDAwMDAwMDAwMDEuODgtLjc4JTIwMS4zNi0xLjg0JTIwMS4zNy0yLjk5JTIwMC0xLjA3LS40MS0yLjA3LTEuMTYtMi44My0uNzUtLjc1MDAwMDAwMDAwMDAxLTEuNzQtMS4xNzAwMDAwMDAwMDAwMS0yLjc5LTEuMTcwMDAwMDAwMDAwMDEtMS4wNiUyMDAtMi4wNS40MS0yLjc5JTIwMS4xNy0uNzUuNzUtMS4xNiUyMDEuNzYtMS4xNiUyMDIuODMlMjAwJTIwMS4xNi41MSUyMDIuMjYlMjAxLjQxJTIwMy4wMy4wMy4wMTk5OTk5OTk5OTk5OS4wNi4wNDk5OTk5OTk5OTk5OS4wOC4wNzk5OTk5OTk5OTk5OWwuMDgwMDAwMDAwMDAwMDEuMDZjLjEzLjEuMi4xNS4yNy4yLjEuMDYuMjEuMTIuMzIuMTdsLjE5LjFjLjAzMDAwMDAwMDAwMDAxLjAxOTk5OTk5OTk5OTk5LjA3MDAwMDAwMDAwMDAxLjAzOTk5OTk5OTk5OTk5LjEwMDAwMDAwMDAwMDAxLjA0OTk5OTk5OTk5OTk5LjM5MDAwMDAwMDAwMDAxLjE2LjY0MDAwMDAwMDAwMDAxLjU1LjYyMDAwMDAwMDAwMDAxLjk4LS4wMi40Mi0uMzEuNzktLjcyLjkxbC0xLjI1LjM2LjAyLjQ0di4xM2MtLjAxLjA4LS4wMS4xNi0uMDEuMjUtLjAwOTk5OTk5OTk5OTk5LjItLjE0OTk5OTk5OTk5OTk5JTIwMy42NS0uMjE5OTk5OTk5OTk5OTklMjA0LjM1LS4wOC44NS0uMzglMjAzLjEyLS4zOCUyMDMuMTItLjAxLjA4LS4wMy4xOC0uMDQuMjglMjAwJTIwLjAxOTk5OTk5OTk5OTk5LS4wMS4wMzk5OTk5OTk5OTk5OS0uMDEuMDU5OTk5OTk5OTk5OTkuMjQtLjAzLjQ5LjAyLjcxLjE2LjI3LjE3LjQ0LjQ5LjQ1LjgxLjIzJTIwNC4yNzk5OTk5OTk5OTk5OS4zMyUyMDYuMTA5OTk5OTk5OTk5OTkuMzYlMjA2LjU2OTk5OTk5OTk5OTk5LjA3LjA3OTk5OTk5OTk5OTk4LjE2LjE2OTk5OTk5OTk5OTk4LjI1LjI2OTk5OTk5OTk5OTk4bC4wNy0uODJjLjA1LS41Mi40OC0uOTElMjAxLS45MWguMDFjLjUyJTIwMCUyMC45NS40MS45OS45My4xJTIwMS45Ny4xNiUyMDIuODcuMTclMjAzLjExbS0yLjczLTIuOC4xLjA5OTk5OTk5OTk5OTk5eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjUuNTElMjAzMS4zNGMtLjA2LjUyLS4zNiUyMDEuMy41NiUyMDEuNTFzMS4wMy0uNyUyMDEuMS0uOTVjMCUyMDAlMjAuNjUtMS45Ny45NS0zLjk2JTIwMCUyMDAlMjAuMzMtMy40NC4zMy0zLjg1LjAyLTEuNTItLjY2LTEuOTktMS4zNS0xLjg0LS41LjExLTEuMDMuNS0xLjAxJTIwMS43NSUyMDAlMjAwLS4xNSUyMDMuNTYtLjIxJTIwNC4yNC0uMDcuODUtLjM3JTIwMy4xLS4zNyUyMDMuMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJNMjUuNTElMjAzMS4zNGMtLjA2LjUyLS4zNiUyMDEuMy41NiUyMDEuNTFzMS4wMy0uNyUyMDEuMS0uOTVjMCUyMDAlMjAuNjUtMS45Ny45NS0zLjk2JTIwMCUyMDAlMjAuMzMtMy40NC4zMy0zLjg1LjAyLTEuNTItLjY2LTEuOTktMS4zNS0xLjg0LS41LjExLTEuMDMuNS0xLjAxJTIwMS43NSUyMDAlMjAwLS4xNSUyMDMuNTYtLjIxJTIwNC4yNC0uMDcuODUtLjM3JTIwMy4xLS4zNyUyMDMuMSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNThhMmMlMjIlMjBkJTNEJTIybTMzLjg2JTIwMjIuNjQtNC4zMS0xLjJzLTMuNDElMjAxLjAyLTMuNDMlMjAxLjAybC45OCUyMDE3LjMxJTIwMS4wNCUyMDEuMDNzLjgxLS4yMi45MS0uMjZjLjEtLjAzLjEtLjE4LjEtLjE4bC4xNS0xLjY4LjclMjA0LjEuNzIuNjZzLjYtLjE4JTIwMS4xNi0uNDdjLjQ1LS4yMy40NS0uNjUuNDUtLjY1eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjkuOTclMjAyMy43MS0zLjg5LTEuMjlzLS4wMy4wMS0uMDMuMDljLjA4JTIwMS41LjkxJTIwMTYuNzIuOTIlMjAxNi45OXMuMTIuMzcuMTIuMzcuODIuODkuODguOTMuMTclMjAwJTIwLjE3JTIwMC0uMDgtLjA0LS4wOS0uMjMuMzgtNy40OC4zOC03LjQ4Yy4wMS0uMzcuMDctLjUyLjIzLS41My4xNSUyMDAlMjAuMTkuMTUuMTkuNTMlMjAwJTIwMCUyMC42MyUyMDguNDUuNjQlMjA4Ljg4cy4yLjU2LjIuNTYuODIuODMuODkuODljLjA4LjA2LjE5LjAxLjE5LjAxcy0uMTQtLjAxLS4xNC0uM2MuMDEtLjE5LS42Ni0xOS40Mi0uNjYtMTkuNDIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI2LjA4JTIwMjIuNDIlMjAzLjg5JTIwMS4yOSUyMDMuODktMS4wNy00LjM3LTEuMiUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS43JTIyJTIwY3klM0QlMjIyMi40JTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMiUyMHJ4JTNEJTIyMi4xMyUyMiUyMHJ5JTNEJTIyLjUyJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0zMy45NyUyMDI1LjY2Yy0uMDQtMS42Ny0uNzItMi40Ni0xLjQ0LTIuMjItLjgxLjI3LTEuMjklMjAxLjAzLTEuMjElMjAyLjQlMjAwJTIwMCUyMC4wNyUyMDMuNzMuMDMlMjA0LjQ4LS4wNS45My0uMjclMjAzLjQtLjI3JTIwMy40LS4wNS41Ny0uMzMlMjAxLjQ0LjY4JTIwMS42My4yMi4wNC4zOS0uMDEuNTMtLjEybC4yOC0uNDNzLjk3LTIuNzIlMjAxLjIxLTQuOTFjMC0uMDIuMi0zLjc4LjE5LTQuMjMlMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zMS43MyUyMDMzLjUzYy0uMDIuNTctLjI3JTIwMS40NS43NiUyMDEuNTklMjAxLjAyLjE0JTIwMS4wNS0uODYlMjAxLjExLTEuMTQlMjAwJTIwMCUyMC41Mi0yLjIxLjY2LTQuNDElMjAwJTIwMCUyMC4wMy0zLjc4LS4wMS00LjIzLS4xMi0xLjY2LS45MS0yLjExLTEuNjQtMS44Ny0uNTMuMTctMS4wOC42NS0uOTQlMjAyLjAxJTIwMCUyMDAlMjAuMTglMjAzLjg5LjE4JTIwNC42NC0uMDIuOTMtLjEyJTIwMy40MS0uMTIlMjAzLjQxJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0zMi4wOCUyMDMzLjg0MDAwMDAwMDAwMDAxcy4wOC0yLjgxLjA4LTMuNzdjLjAxLS43OS0uMy00LjczLS4zLTQuNzMtLjA4LS43OS4wNi0xLjMxLjI5LTEuNjMtLjM0LjI4LS41OS44Mi0uNDklMjAxLjc5JTIwMCUyMDAlMjAuMTglMjAzLjg5LjE4JTIwNC42NC0uMDEuOTMtLjExJTIwMy40MS0uMTElMjAzLjQxLS4wMi40NS0uMTclMjAxLjEuMjglMjAxLjQyLjAyLS4yOC4wNi0uNzUuMDctMS4xMyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NSUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45MyUyMDIxLjc0Yy0xLjE5JTIwMC0yLjMtLjI3LTMuMjQtLjc1Ljg3Ljc3JTIwMi4wMSUyMDEuMjQlMjAzLjI2JTIwMS4yNCUyMDEuMjglMjAwJTIwMi40NC0uNDklMjAzLjMyLTEuMjgtLjk2LjUtMi4xMS43OS0zLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMjcuMTMlMjAyMi43Ny45NCUyMDQuNjYuNzYtNC4xJTIyJTIwb3BhY2l0eSUzRCUyMi42JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fMTIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjIxJTIyJTIwY3klM0QlMjI0MS41JTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDL2clM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMjkuNjclMjA0My44M2MtLjUlMjAwLS45NS0uMDQtMS4xNy0uMDctLjMzLjAyLS41Ni0uMDgtLjcxLS4xOHMtLjI5LS4xOC0uODgtMS4wNWMtLjEtLjE1LS4xNi0uMzMtLjE3LS41MS0uMDEtLjE5LTEuMDEtMTguNzQtMS4xMS0yMC4yMXEtLjAxNS0uMjEuMDYtLjQyYy0xLjA3LTEuMTEtMS42OS0yLjYtMS42OS00LjE2JTIwMC0xLjYuNjItMy4xMSUyMDEuNzUtNC4yNCUyMDEuMTItMS4xMyUyMDIuNjItMS43NSUyMDQuMjEtMS43NWguMDFjMS41OSUyMDAlMjAzLjA5LjYzJTIwNC4yMSUyMDEuNzZzMS43NCUyMDIuNjQlMjAxLjc0JTIwNC4yNGMwJTIwMS43NC0uNzUlMjAzLjM1LTIuMDIlMjA0LjQ3bC4xOS4xNWMuMjYuMjEuNC41NC4zNi44OEwzMi40OCUyMDQyLjRjLS4wNC43NS0uODMlMjAxLjA1LTEuMjIlMjAxLjItLjQ0LjE4LTEuMDUuMjMtMS41OS4yM20uODEtMS42MWMwJTIwLjA1LS4wMS4wOS0uMDEuMTR2LS4xMnptLTEuNjYtLjQ0Yy42My4wNiUyMDEuNDQuMDYlMjAxLjcxLS4wNGwxLjg3LTE4LjY2LS42OS0uNTZjLS4yMy0uMTQtLjQtLjM2LS40Ni0uNjItLjEtLjQ1LjA4LS45MS40OS0xLjEyJTIwMS4zNS0uNjklMjAyLjE4LTIuMDUlMjAyLjE4LTMuNTQlMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43Ny0xLjE0LTIuOC0xLjE3LTEuMDYlMjAwLTIuMDUuNDEtMi43OSUyMDEuMTctLjc1Ljc1LTEuMTYlMjAxLjc2LTEuMTYlMjAyLjgzJTIwMCUyMDEuNDIuNzMlMjAyLjclMjAxLjk3JTIwMy40NC4zNS4yMS41NC42MS40OCUyMDEuMDItLjA3LjQxLS4zNy43My0uNzcuODIuMjElMjAzLjY0LjkzJTIwMTYuOTQlMjAxLjA1JTIwMTkuMTMuMDEuMDMuMDQuMDguMDguMTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTI2Ljk5JTIwNDMuOWgtLjA2bC0xNS4xNi0xLjk5Yy0uMjUtLjAzLS40NC0uMjUtLjQ0LS41cy4xOS0uNDYuNDQtLjVMMjYuNTglMjAzOWMuMjMtLjAzLjQ1LjEuNTMuMzJzLjAxLjQ2LS4xOC41OWMtLjAxLjAxLTEuMDUuNzYtLjc3JTIwMS4zOS40My45NCUyMDEuMTglMjAxLjc1JTIwMS4xOSUyMDEuNzUuMTQuMTUuMTguMzguMDguNTctLjA4LjE3LS4yNS4yOC0uNDQuMjhtLTExLjI4LTIuNDklMjAxMC4xMyUyMDEuMzNjLS4yLS4zLS40Mi0uNjUtLjU5LTEuMDItLjI1LS41NS0uMTQtMS4wOS4xMS0xLjU1eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMjYuOTklMjA0My40cy0uODEtLjg2LTEuMjgtMS44OS45NC0yLjAxLjk0LTIuMDFsLTE0LjgxJTIwMS45MXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNThhMmMlMjIlMjBkJTNEJTIybTMzLjQ1MDAwMDAwMDAwMDAxJTIwMjIuNjQtNS42LTEuMnMtMS4xMi4yNC0xLjE0LjI0bDEuNDMlMjAyMC41NC4zNS41M3MxLjY4LjIxJTIwMi40MS0uMDhjLjU4LS4yMy41OC0uMzQuNTgtLjM0eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjcuMzglMjAyMi43LS43My0xLjA2cy0uMDQuMDEtLjAzLjA5Yy4xJTIwMS41JTIwMS4xMSUyMDIwLjIzJTIwMS4xMSUyMDIwLjIzcy40Ny43LjU4Ljc2Yy4xLjA2LjI1LjAxLjI1LjAxcy0uMTgtLjAxLS4xOC0uM2MtLjAxLS4xOS0xLTE5LjczLTEtMTkuNzMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI2LjY1JTIwMjEuNjUuNzMlMjAxLjA1JTIwNi4wNy0uMDYtMS4yLS45NyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45JTIyJTIwY3klM0QlMjIyMi4wMSUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBvcGFjaXR5JTNEJTIyLjUlMjIlMjByeCUzRCUyMjIuMTMlMjIlMjByeSUzRCUyMi41MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjkuMjYlMjAzMy41M2MtLjAyLjU3LS4zMSUyMDEuNDUuODclMjAxLjU5JTIwMS4xNy4xNCUyMDEuMjEtLjg2JTIwMS4yNy0xLjE0JTIwMCUyMDAlMjAuNDItMi4xNi41OC00LjM2JTIwMCUyMDAlMjAuMjEtMy44My4xNy00LjI4LS4xNC0xLjY2LTEuMDUtMi4xMS0xLjg4LTEuODctLjYxLjE3LTEuMjQuNjUtMS4wOCUyMDIuMDElMjAwJTIwMCUyMC4wMyUyMDMuOTQuMDIlMjA0LjY5LS4wMi45My4wNSUyMDMuMzYuMDUlMjAzLjM2JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS42NiUyMDMzLjg0MDAwMDAwMDAwMDAxcy0uMDktMi43Ni0uMDktMy43MmMuMDEtLjc5LS4xNi00Ljc4LS4xNi00Ljc4LS4wOS0uNzkuMDYtMS4zMS4zMy0xLjYzLS4zOS4yOC0uNjguODItLjU2JTIwMS43OSUyMDAlMjAwJTIwLjAzJTIwMy45NC4wMiUyMDQuNjktLjAxLjkzLjA1JTIwMy4zNi4wNSUyMDMuMzYtLjAyLjQ1LS4yJTIwMS4xLjMyJTIwMS40Mi4wMy0uMjguMDgtLjc1LjA5LTEuMTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuOTUlMjIlMjBjeSUzRCUyMjE3LjIzJTIyJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMHJ4JTNEJTIyNC45NiUyMiUyMHJ5JTNEJTIyNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJNMjkuOTMlMjAyMS43NGMtMS4xOSUyMDAtMi4zLS4yNy0zLjI0LS43NS44Ny43NyUyMDIuMDElMjAxLjI0JTIwMy4yNiUyMDEuMjQlMjAxLjI4JTIwMCUyMDIuNDQtLjQ5JTIwMy4zMi0xLjI4LS45Ni41LTIuMTEuNzktMy4zNC43OSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl8xMy5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzMTExJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzAuMzMlMjAyNy4yYy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40MmMwLTcuOTctOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNTk5OTk5OTk5OTk5OSUyMDE5LjQ3JTIwMTMuNTI5OTk5OTk5OTk5OTktOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUxJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDL2clM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjUuNzYlMjA0Mi42Yy0uMDclMjAwLS4xNC0uMDEtLjItLjA0bC0xMi40Mi01LjQ0Yy0uMjMtLjEtLjM1LS4zNS0uMjgtLjU5LjA2LS4yNC4yOS0uNC41NC0uMzdsMTUuMDMlMjAxLjY0Yy4yNC4wMy40Mi4yMS40NC40NXMtLjEyLjQ1LS4zNS41M2MtMS4wMy4zMy0yLjE4Ljk2LTIuMjYlMjAxLjM5LS4xOCUyMDEtLjAyJTIwMS44Mi0uMDElMjAxLjgzLjA0LjE4LS4wMy4zNy0uMTcuNDktLjA5LjA4LS4yMS4xMS0uMzIuMTFtLTkuMjMtNS4wOCUyMDguNjUlMjAzLjc5Yy0uMDEtLjM3LjAxLS44Mi4xLTEuMzIuMS0uNTYuNjMtMS4wMyUyMDEuMjEtMS4zOXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI1Ljc2JTIwNDIuMXMtLjIyLS45Mi4wMS0yLjAzYy4yMi0xLjA0JTIwMi42LTEuNzglMjAyLjYtMS43OGwtMTUuMDMtMS42NHolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTI4LjgxJTIwNDQuNDZjLS4xNiUyMDAtLjMxLS4wMy0uNDYtLjA5LS4yLS4wNy0uNjktLjI0LTEuMTktLjQ5LS43NC0uMzctMS0xLjA3LTEtMS41NGwtLjUxLTYuNTljLS44Mi0uNTgtLjczLTEuNjUtLjctMi4wNmwuMDEtLjJjMC0uMDEuMS0yLjQ2LjExLTMuMzglMjAwLS4yNC0uMDItMS4wMi0uMTItMy4zOGwtLjMxLTQuMDJjLS4wNC0uNDguMjctLjkxLjczLTEuMDRsLjQ2LS4xM2MtLjAxLS4wMS0uMDEtLjAyLS4wMi0uMDMtMS4xNi0xLjEzLTEuODItMi42OC0xLjgzLTQuMjglMjAwLTEuNi42Mi0zLjExJTIwMS43NC00LjI0czIuNjItMS43NiUyMDQuMjItMS43NmguMDFjMS41OSUyMDAlMjAzLjA5LjYyJTIwNC4yMSUyMDEuNzUlMjAxLjEzJTIwMS4xMyUyMDEuNzUlMjAyLjY0JTIwMS43NSUyMDQuMjQlMjAwJTIwMS42My0uNjclMjAzLjE5LTEuODYlMjA0LjMzLjA2LjA0LjEyLjA5LjE4LjE0LjU4LjUuODYlMjAxLjMxLjg1JTIwMi40MSUyMDAlMjAuNDMtLjI4JTIwMy4zNS0uMzQlMjAzLjkzLS4yJTIwMS4zMy0uNTMlMjAyLjYtLjc4JTIwMy40Ny0uMjIlMjA0LS40MyUyMDcuODUtLjQ0JTIwOC4wMy0uMDMuNjMtLjMyLjk2LS40NSUyMDEuMDctLjg0LjkyLS44OS45Ni0xLjAxJTIwMS4wMy0uNC4yNS0uODEuMTctLjk5LjEyLS4wMiUyMDAtLjA0LS4wMS0uMDYtLjAxLS4wMS4xMy0uMDEuMjEtLjAxLjI1LS4wMS42OS0uMzElMjAxLjA4LS41JTIwMS4yNi0uMTMuMTMtLjg3Ljg4LS45NS45NC0uMjEuMTgtLjQ3LjI3LS43NC4yN20tLjY2LTIuMzJjLjE2LjA4LjMyLjE0LjQ1LjIuMTQtLjE1LjMtLjMxLjQtLjQuMDItLjQ2LjE2LTIuMzEuMjItMy4xMi4wNC0uNTIuNDctLjkyLjk5LS45M2guMDFjLjUyJTIwMCUyMC45NS4zOSUyMDElMjAuOTFsLjA3LjgyYy4wOS0uMS4xOC0uMTkuMjUtLjI3LjAyLS40LjExLTIuMDMuNDQtOC4wNiUyMDAtLjA4LjAyLS4xNS4wNC0uMjMuMjQtLjgxLjU2LTIuMDQuNzUtMy4yNi4xNS0xLjYxMDAwMDAwMDAwMDAxLjMyLTMuNDcwMDAwMDAwMDAwMDEuMzItMy43MTAwMDAwMDAwMDAwMS4wMS0uNjktLjE2LS44Ny0uMTYtLjg3LS4xNS4wMi0uMjUuMDQtLjM5JTIwMGwtMS4xNC0uMzNjLS40MS0uMTIwMDAwMDAwMDAwMDEtLjctLjQ4MDAwMDAwMDAwMDAxLS43Mi0uOTEwMDAwMDAwMDAwMDFzLjIzLS44Mi42My0uOThsLjEyLS4wNWMuMDYtLjAzLjEyLS4wNi4xNy0uMDhsLjExLS4wNmMuMTMtLjA2LjI1LS4xMi4zNy0uMi4wNy0uMDQuMTMtLjEuMi0uMTUuMDYtLjA1LjExLS4wOC4xNS0uMTEuMDItLjAzLjA1LS4wNS4wOC0uMDcuOS0uNzclMjAxLjQxLTEuODglMjAxLjQxLTMuMDMlMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43NC0xLjE3LTIuNzktMS4xNy0xLjA2JTIwMC0yLjA1LjQyLTIuOCUyMDEuMTctLjc1Ljc2LTEuMTYlMjAxLjc2LTEuMTYlMjAyLjgzJTIwMCUyMDEuMTUuNDklMjAyLjIxJTIwMS4zNyUyMDIuOTkuMDMuMDIuMDUuMDUuMDguMDhsLjIyLjE3LjE1LjEyYy4xMS4wNy4yMi4xMy4zNC4xOGwuMTcuMDljLjA1LjAzLjEuMDUuMTUuMDglMjAwJTIwMCUyMC4xMi4wNS4xMy4wNS40MS4xNS42Ny41NS42NS45OHMtLjMxLjgxLS43My45MmwtMS44MS41MS4yNSUyMDMuMjNjLjA5JTIwMS45OS4xMyUyMDMuMTMuMTIlMjAzLjUxLS4wMS45NC0uMTElMjAzLjQ0LS4xMSUyMDMuNDQlMjAwJTIwLjA4LS4wMS4xOC0uMDIuMjgtLjAxLjA4LS4wMi4yLS4wMi4yOS4zNi4xNC42NC40OC42Ny44N3ptMy41Mi0yLjk0Yy0uMDMuMDItLjA1LjA0LS4wNi4wNy4wMy0uMDUuMDYtLjA3LjA2LS4wNyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJNMzEuMTQlMjAzMS4zNGMtLjA2LjUyLS4zNiUyMDEuMy41NiUyMDEuNTFzMS4wMy0uNyUyMDEuMS0uOTVjMCUyMDAlMjAuNjUtMS45Ny45NS0zLjk2JTIwMCUyMDAlMjAuMzMtMy40NC4zMy0zLjg1LjAyLTEuNTItLjY2LTEuOTktMS4zNS0xLjg0LS41LjExLTEuMDMuNS0xLjAxJTIwMS43NSUyMDAlMjAwLS4xNSUyMDMuNTYtLjIxJTIwNC4yNC0uMDguODUtLjM3JTIwMy4xLS4zNyUyMDMuMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZkYmYyZCUyMiUyMGQlM0QlMjJtMjUuNjQlMjAyMi42NCUyMDQuMzEtMS4yczMuNDElMjAxLjAyJTIwMy40MyUyMDEuMDJsLS45OCUyMDE3LjMxLTEuMDQlMjAxLjAzcy0uODEtLjIyLS45MS0uMjZjLS4xLS4wMy0uMS0uMTgtLjEtLjE4bC0uMTUtMS42OC0uNyUyMDQuMS0uNzIuNjZzLS42LS4xOC0xLjE2LS40N2MtLjQ1LS4yMy0uNDUtLjY1LS40NS0uNjV6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yNi40MyUyMDMzLjg1Yy0uMDEuNTgtLjE0JTIwMS4zMy45JTIwMS41MS43Ni4xMy43Ny0uMTMlMjAxLjAzLTEuMTclMjAwJTIwMCUyMC40NC0yLjU3LjU1LTQuODMlMjAwJTIwMCUyMC4xMy0zLjQuMDgtMy44Ni0uMTYtMS43MS0uOTgtMi4xNS0xLjcyLTEuOTEtLjU1LjE4LTEuMS42Ny0uOTMlMjAyLjA3JTIwMCUyMDAlMjAuMTQlMjAzLjkyLjE1JTIwNC43LjAxLjk0LS4wNiUyMDMuNDktLjA2JTIwMy40OSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjkuNTMlMjAyMy43MSUyMDMuODktMS4yOXMuMDMuMDEuMDMuMDljLS4wOCUyMDEuNS0uOTElMjAxNi43Mi0uOTIlMjAxNi45OXMtLjEyLjM3LS4xMi4zNy0uODIuODktLjg4LjkzLS4xNyUyMDAtLjE3JTIwMCUyMC4wOC0uMDQuMDktLjIzLS4zOC03LjQ4LS4zOC03LjQ4Yy0uMDEtLjM3LS4wNy0uNTItLjIzLS41My0uMTUlMjAwLS4xOS4xNS0uMTkuNTMlMjAwJTIwMC0uNjMlMjA4LjQ1LS42NCUyMDguODhzLS4yLjU2LS4yLjU2LS44Mi44My0uODkuODljLS4wOC4wNi0uMTkuMDEtLjE5LjAxcy4xNC0uMDEuMTQtLjNjLS4wMS0uMTkuNjYtMTkuNDIuNjYtMTkuNDIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI5LjUzJTIwMjMuNzElMjAzLjg5LTEuMjlzLjAzLjAxLjAzLjA5Yy0uMDglMjAxLjUtLjkxJTIwMTYuNzItLjkyJTIwMTYuOTlzLS4xMi4zNy0uMTIuMzctLjgyLjg5LS44OC45My0uMTclMjAwLS4xNyUyMDAlMjAuMDgtLjA0LjA5LS4yMy0uMzgtNy40OC0uMzgtNy40OGMtLjAxLS4zNy0uMDctLjUyLS4yMy0uNTMtLjE1JTIwMC0uMTkuMTUtLjE5LjUzJTIwMCUyMDAtLjYzJTIwOC40NS0uNjQlMjA4Ljg4cy0uMi41Ni0uMi41Ni0uODIuODMtLjg5Ljg5Yy0uMDguMDYtLjE5LjAxLS4xOS4wMXMuMTQtLjAxLjE0LS4zYy0uMDEtLjE5LjY2LTE5LjQyLjY2LTE5LjQyJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zMy40MiUyMDIyLjQyLTMuODklMjAxLjI5LTMuODktMS4wNyUyMDQuMzctMS4yJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5LjglMjIlMjBjeSUzRCUyMjIyLjQlMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjEzJTIyJTIwcnklM0QlMjIuNTIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTI1Ljk3JTIwMzMuNTNjLS4wMi41Ny0uMjclMjAxLjQ1Ljc2JTIwMS41OSUyMDEuMDIuMTQlMjAxLjA1LS44NiUyMDEuMTEtMS4xNCUyMDAlMjAwJTIwLjUyLTIuMjEuNjYtNC40MSUyMDAlMjAwJTIwLjAzLTMuNzgtLjAxLTQuMjMtLjEyLTEuNjYtLjkxLTIuMTEtMS42NC0xLjg3LS41My4xNy0xLjA4LjY1LS45NCUyMDIuMDElMjAwJTIwMCUyMC4xOCUyMDMuODkuMTglMjA0LjY0LS4wMi45My0uMTIlMjAzLjQxLS4xMiUyMDMuNDElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIyTTI1Ljk3JTIwMzMuNTNjLS4wMi41Ny0uMjclMjAxLjQ1Ljc2JTIwMS41OSUyMDEuMDIuMTQlMjAxLjA1LS44NiUyMDEuMTEtMS4xNCUyMDAlMjAwJTIwLjUyLTIuMjEuNjYtNC40MSUyMDAlMjAwJTIwLjAzLTMuNzgtLjAxLTQuMjMtLjEyLTEuNjYtLjkxLTIuMTEtMS42NC0xLjg3LS41My4xNy0xLjA4LjY1LS45NCUyMDIuMDElMjAwJTIwMCUyMC4xOCUyMDMuODkuMTglMjA0LjY0LS4wMi45My0uMTIlMjAzLjQxLS4xMiUyMDMuNDElMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk1JTIyJTIwY3klM0QlMjIxNy4yMyUyMiUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjByeCUzRCUyMjQuOTYlMjIlMjByeSUzRCUyMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI5Ljk4JTIwMjEuNzRjMS4xOSUyMDAlMjAyLjMtLjI3JTIwMy4yNC0uNzUtLjg3Ljc3LTIuMDElMjAxLjI0LTMuMjYlMjAxLjI0LTEuMjglMjAwLTIuNDQtLjQ5LTMuMzItMS4yOC45Ni41JTIwMi4xMS43OSUyMDMuMzQuNzklMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmRiZjJkJTIyJTIwZCUzRCUyMk0yNS45OSUyMDMzLjUzYy0uMDQlMjAxLjE2LjU0Ljk1LjgyLjgxLjk5LS41MiUyMDEuMDktNS4xMiUyMDEuMi02LjU2LjA3LS45Ny4xNi0zLjU4LS43OC00LjI2LS41NS0uMjEtMS4wNC40Mi0xLjA5LjUxLS4xOS4zMS0uMjkuNzctLjIyJTIwMS40NSUyMDAlMjAwJTIwLjE4JTIwMy44OS4xOCUyMDQuNjQtLjAxLjkzLS4xMSUyMDMuNDEtLjExJTIwMy40MSUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfcGVnbWFuXzE0LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjMxMTElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjJjLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA1OTk5OTk5OTk5OTk5JTIwMTkuNDclMjAxMy41Mjk5OTk5OTk5OTk5OS04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0MvZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0yNS4yMyUyMDQxLjg4MDAwMDAwMDAwMDAxYy0uMTQlMjAwLS4yNy0uMDYtLjM3LS4xNmwtNy44OC04LjU5Yy0uMTYtLjE3LS4xOC0uNDMtLjA0LS42Mi4xMy0uMTg5OTk5OTk5OTk5OTguMzgtLjI1OTk5OTk5OTk5OTk4LjYtLjE3OTk5OTk5OTk5OTk4bDEzLjk1JTIwNS42MzAwMDAwMDAwMDAwMWMuMjIuMDkuMzUuMzMuMy41N3MtLjI1LjQxLS41MS40Yy0yLjE2LS4wOC00LjI1LjExLTQuNTYuNDItLjQ5LjQ5LS44OSUyMDEuNzMtMSUyMDIuMTYtLjA1LjE4MDAwMDAwMDAwMDAxLS4xOS4zMjAwMDAwMDAwMDAwMS0uMzYuMzYwMDAwMDAwMDAwMDEtLjA1LjAwOTk5OTk5OTk5OTk2LS4wOS4wMDk5OTk5OTk5OTk5Ni0uMTMuMDA5OTk5OTk5OTk5OTZtLTYuMDItNy44TDI1LjAyJTIwNDAuNDFjLjIxLS41OC41NS0xLjMzLjk5LTEuNzcuNDMtLjQzJTIwMS42MS0uNjIlMjAyLjc3LS42OXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzZjNmM2YlMjIlMjBkJTNEJTIyTTI1LjIzJTIwNDEuMzgwMDAwMDAwMDAwMDFzLjM4LTEuNjMlMjAxLjEzLTIuMzljLjc1LS43NSUyMDQuOTMtLjU3JTIwNC45My0uNTdsLTEzLjk1LTUuNjN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMk0yNy40OCUyMDQ0LjQ3Yy0uMjYlMjAwLS41Mi0uMDktLjctLjI4LS4xMi0uMTItLjc1LS43Ni0uOTktMS4xLS4zNy0uNTEtLjQxLTEuMDctLjQxLTEuM2wtLjM2LTYuMTdjLS45Ni0uNTYtLjktMS42Ni0uODgtMi4wN2wuMDEtLjE0YzAtLjAxLjEtMi40Ni4xMS0zLjM4LjAxLS43NS0uMDctNC41NS0uMDctNC41NS0uMDYtLjU1LS4wMS0xLjA2LjE1LTEuNTFsLS4wNi0xLjA4Yy0uMDMtLjEtLjA0LS4yLS4wMy0uMzEuMDMtLjQ1LjMzLS44NC43OC0uOTNsLjc5LS4xNmMtMS4xNS0xLjEzLTEuOC0yLjY3LTEuODEtNC4yNiUyMDAtMS42LjYyLTMuMTElMjAxLjc0LTQuMjRzMi42Mi0xLjc2JTIwNC4yMi0xLjc2aC4wMWMxLjU5JTIwMCUyMDMuMDkuNjIlMjA0LjIxJTIwMS43NSUyMDEuMTMlMjAxLjEzJTIwMS43NSUyMDIuNjQlMjAxLjc1JTIwNC4yNCUyMDAlMjAxLjUyLS41OCUyMDIuOTctMS42MiUyMDQuMDlsLjQ2LjEzYy4xNi4wMy4zMS4xLjQzLjE5LjUxLjMlMjAxLjE3Ljk5JTIwMS4xNCUyMDIuNjElMjAwJTIwLjQzLS4yOCUyMDMuMzUtLjM0JTIwMy45My0uMzElMjAyLjA2LS43NSUyMDMuOTctLjc3JTIwNC4wNS0uMDQuMjUtLjEuNi0uMy45Mi0uMjIlMjAzLjUzLS40MSUyMDYuNjItLjQxJTIwNi43Ni0uMDQuNjEtLjM5JTIwMS4wMS0uNyUyMDEuMTktMS4zMi45MS0xLjQuOTQtMS41Mi45OS0uMDYuMDItLjE0LjA0LS4yMy4wNi0uMTEuMDMtLjIyLjAzLS4zMy4wMi0uMTQtLjAxLS4yNy0uMDMtLjI3LS4wMy0uMTYtLjAzLS4zMS0uMS0uNDMtLjE5LS4xMS0uMDQtLjIzLS4wOS0uMzQtLjEzLS4wMS4wOS0uMDIuMTUtLjAyLjE4LS4wMi43Mi0uNDUlMjAxLjE5LS44MyUyMDEuMzktLjIwOTk5OTk5OTk5OTk4LjEyLTEuNDc5OTk5OTk5OTk5OTguODYtMS41OTk5OTk5OTk5OTk5OC45Mi0uMTkuMS0uNDEuMTMtLjYzLjE1LS4wNi4wMi0uMTEwMDAwMDAwMDAwMDEuMDItLjE1LjAybS0xLjM1LTEwLjUzYy4wMSUyMDAlMjAuMDIlMjAwJTIwLjA0LjAxLjQ1LjA5Ljc5LjQ3LjgxLjkybC40JTIwNi44NXYuMTJjMCUyMC4wMS4wMS4wNy4wMy4wOS4wNS4wNy4xOC4yMi4zMy4zOC4zMi0uMTguNzItLjQyLjk1LS41NS4wNC0uMzYuMTctMS40MS42Ni00Ljk1LjA3LS41LjQ5LS44Ni45OS0uODZoLjAzYy41MS4wMS45My40MS45Ny45MWwuMjglMjAzLjE4Yy4wNS4wMi4wOS4wMy4xNC4wNS4yNC0uMTYuNTYtLjM4Ljc3LS41Mi4wNS0uODIuMjMtMy42OS40Mi02Ljg2LjAwOTk5OTk5OTk5OTk5LS4yNC4xMDk5OTk5OTk5OTk5OS0uNDYuMjY5OTk5OTk5OTk5OTktLjYzLjAxLS4wMy4wMS0uMDYuMDEtLjA5LjAyLS4xLjAzLS4xOC4wNS0uMjUlMjAwJTIwMCUyMC40My0xLjg4LjcyLTMuNzkuMTUtMS42MS4zMi0zLjQ3LjMyLTMuNzEuMDEtLjU1LS4xMS0uOC0uMTUtLjg2QzM0LjEyJTIwMjMuNDIlMjAzNC4wNzAwMDAwMDAwMDAwMSUyMDIzLjQ2JTIwMzQuMDIwMDAwMDAwMDAwMDElMjAyMy40OWMtLjEuMDctLjIyLjEyLS4zNC4xNGwtMS4zMS4yN2MtLjI5LjA2LS42LS4wMS0uODMtLjJzLS4zNy0uNDgtLjM3LS43OEMzMS4xNjk5OTk5OTk5OTk5OSUyMDIyLjcxOTk5OTk5OTk5OTk5JTIwMzEuMjMlMjAyMi41Mjk5OTk5OTk5OTk5OSUyMDMxLjM0JTIwMjIuMzY5OTk5OTk5OTk5OTljLS4xMy0uMTUtLjIxLS4zNS0uMjMtLjU1LS4wNC0uNDEuMTgtLjguNTUtLjk5LjE5LS4xLjMxLS4xNi40My0uMjMuMDctLjA1LjE0LS4xLjIxLS4xNi4wNi0uMDQuMS0uMDguMTQtLjEuMDItLjAzLjA1LS4wNS4wOC0uMDcuOS0uNzclMjAxLjQxLTEuODglMjAxLjQxLTMuMDMlMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUwMDAwMDAwMDAwMDMtMS43NC0xLjE3MDAwMDAwMDAwMDAzLTIuNzktMS4xNzAwMDAwMDAwMDAwMy0xLjA2JTIwMC0yLjA1LjQyLTIuOCUyMDEuMTctLjc1Ljc2LTEuMTYlMjAxLjc2LTEuMTYlMjAyLjgzJTIwMCUyMDEuMTUuNDklMjAyLjIxJTIwMS4zNyUyMDIuOTkuMDMuMDIuMDUuMDUuMDguMDhsLjIxLjE2Yy4wNS4wNC4xMS4wOS4xNi4xMi4xMS4wNy4yMi4xMy4zNC4xOGwuMTcuMDljLjA1LjAzLjEuMDUuMTUuMDguMDYuMDIuMTEuMDQuMTcuMDVsLjEzLjA0Yy40My4xNC43Mi41NS43JTIwMS4wMS0uMDIuNDQ5OTk5OTk5OTk5OTgtLjM1LjgzOTk5OTk5OTk5OTk4LS44LjkyOTk5OTk5OTk5OTk4bC0yLjM2LjQ4LjA0LjY1Yy4wMS4xNy0uMDIuMzMtLjA5LjQ5LS4wNi4xMi0uMTEuMzUtLjA3LjglMjAwJTIwLjA4LjA4JTIwMy45My4wOCUyMDQuNjgtLjAxLjk0LS4xMSUyMDMuNDQtLjExJTIwMy40NGwtLjAxLjE2Yy0uMDUuMDgtLjA1LjE4LS4wNS4yN202LjYxJTIwNS40Njk5OTk5OTk5OTk5OWMtLjAzLjAwOTk5OTk5OTk5OTk5LS4wNS4wMjk5OTk5OTk5OTk5OS0uMDcuMDQ5OTk5OTk5OTk5OTkuMDUtLjAzLjA3LS4wNS4wNy0uMDUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZGJmMmQlMjIlMjBkJTNEJTIybTI1LjI2JTIwMjIuNjQlMjA0LjQ2LS44M3MyLjQyLjM1JTIwMi40My4zNWwuNDYlMjAxNy45OC0uNzglMjAxLjAzcy0xLjAyLS4zOC0xLjEtLjQxLS4wNy0uMTgtLjA3LS4xOEwzMCUyMDMzLjA1bC0xLjQ2JTIwOS43NC0xLjA0LjdzLS42OC0uNjktLjg5LS45OGMtLjI0LS4zMy0uMjItLjczLS4yMi0uNzN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yNS41NSUyMDMzLjU3Yy0uMDEuNTctLjE0JTIwMS4zLjg3JTIwMS40Ni43NC4xMi43NS0uMTIlMjAxLTEuMTQlMjAwJTIwMCUyMC40NC0yLjUxLjU1LTQuNzElMjAwJTIwMCUyMC4xMy0zLjMxLjA5LTMuNzYtLjE1LTEuNjYtLjk0LTIuMDktMS42Ny0xLjg1LS41My4xOC0xLjA3LjY2LS45MSUyMDIuMDIlMjAwJTIwMCUyMC4xMyUyMDMuODIuMTMlMjA0LjU3LjAyLjkzLS4wNiUyMDMuNDEtLjA2JTIwMy40MSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjUuMTUlMjAzMy40NmMtLjAyLjU3LS4xNiUyMDEuMy44NSUyMDEuNDguNzQuMTMuNzUtLjExJTIwMS4wMi0xLjEzJTIwMCUyMDAlMjAuNDctMi41LjYxLTQuNzElMjAwJTIwMCUyMC4xOC0zLjMxLjE0LTMuNzYtLjEyLTEuNjYtLjkxLTIuMTEtMS42NC0xLjg3LS41My4xNy0xLjA4LjY1LS45NCUyMDIuMDElMjAwJTIwMCUyMC4wOCUyMDMuODIuMDclMjA0LjU4LS4wMS45Mi0uMTElMjAzLjQtLjExJTIwMy40JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yNS4xNSUyMDMzLjQ2Yy0uMDIuNTctLjE2JTIwMS4zLjg1JTIwMS40OC43NC4xMy43NS0uMTElMjAxLjAyLTEuMTMlMjAwJTIwMCUyMC40Ny0yLjUuNjEtNC43MSUyMDAlMjAwJTIwLjE4LTMuMzEuMTQtMy43Ni0uMTItMS42Ni0uOTEtMi4xMS0xLjY0LTEuODctLjUzLjE3LTEuMDguNjUtLjk0JTIwMi4wMSUyMDAlMjAwJTIwLjA4JTIwMy44Mi4wNyUyMDQuNTgtLjAxLjkyLS4xMSUyMDMuNC0uMTElMjAzLjQlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZGJmMmQlMjIlMjBkJTNEJTIyTTI1LjE1JTIwMzMuNDZjLS4wNCUyMDEuMTYuNjglMjAxLjA3LjkzLjg3LjYzLS41LjcxLTUuMjEuODItNi42NC4wNy0uOTctLjA5LTMuNC0uNC00LjE3LS41NS0uMjEtMS4wNC40Mi0xLjA5LjUxLS4xOS4zMS0uMjkuNzctLjIyJTIwMS40NSUyMDAlMjAwJTIwLjA4JTIwMy44Mi4wNyUyMDQuNTgtLjAxLjkyLS4xMSUyMDMuNC0uMTElMjAzLjQlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNThhMmMlMjIlMjBkJTNEJTIyTTMyLjU4JTIwMzEuNDVjLS4wMS42Ny0uMiUyMDEuMjcuNzMlMjAxLjQzLjkxLjE1Ljg2LS42MS45My0uODclMjAwJTIwMCUyMC40NS0xLjkyLjc1LTMuOTElMjAwJTIwMCUyMC4zMy0zLjQ0LjMzLTMuODUuMDItMS41Mi0uNjYtMS45OS0xLjM1LTEuODQtLjUuMTEtMS4wMy41LTEuMDElMjAxLjc1JTIwMCUyMDAtLjE1JTIwMy41Ni0uMjElMjA0LjI0LS4wOC44NC0uMTclMjAzLjA1LS4xNyUyMDMuMDUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIybTI4LjM4JTIwMjMuNzElMjA2LjE3LTEuMjlzLjA1LjAxLjA0LjA5Yy0uMTMlMjAxLjUtMS4wNyUyMDE3LjA4LTEuMDklMjAxNy4zNC0uMDIuMjctLjE5LjM3LS4xOS4zN3MtMS4zLjg5LTEuMzkuOTMtLjI3JTIwMC0uMjclMjAwJTIwLjEzLS4wNC4xNC0uMjNjLjAyLS4xOS0uMy03LjQ2LS4zLTcuNDYtLjAxLS4zNy0uMTEtLjUyLS4zNi0uNTMtLjI0JTIwMC0uMjkuMTUtLjMxLjUzJTIwMCUyMDAtMS4xNCUyMDguMDUtMS4xNSUyMDguNDhzLS4zMS41Ni0uMzEuNTYtMS40Ny44Ni0xLjU5LjkyLS4zLjAxLS4zLjAxLjIyLS4wMS4yMi0uM2MwLS4xOS42OS0xOS40Mi42OS0xOS40MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMjguMzglMjAyMy43MSUyMDYuMTctMS4yOXMuMDUuMDEuMDQuMDljLS4xMyUyMDEuNS0xLjA3JTIwMTcuMDgtMS4wOSUyMDE3LjM0LS4wMi4yNy0uMTkuMzctLjE5LjM3cy0xLjMuODktMS4zOS45My0uMjclMjAwLS4yNyUyMDAlMjAuMTMtLjA0LjE0LS4yM2MuMDItLjE5LS4zLTcuNDYtLjMtNy40Ni0uMDEtLjM3LS4xMS0uNTItLjM2LS41My0uMjQlMjAwLS4yOS4xNS0uMzEuNTMlMjAwJTIwMC0xLjE0JTIwOC4wNS0xLjE1JTIwOC40OHMtLjMxLjU2LS4zMS41Ni0xLjQ3Ljg2LTEuNTkuOTItLjMuMDEtLjMuMDEuMjItLjAxLjIyLS4zYzAtLjE5LjY5LTE5LjQyLjY5LTE5LjQyJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zNC41MSUyMDIyLjQyLTYuMTQlMjAxLjI5LTMuMTUtMS4wNyUyMDUuODgtMS4yJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjA1JTIyJTIwY3klM0QlMjIyMi40MSUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBvcGFjaXR5JTNEJTIyLjUlMjIlMjByeCUzRCUyMjIuMjUlMjIlMjByeSUzRCUyMi40MyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NSUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45OCUyMDIxLjc0YzEuMTklMjAwJTIwMi4zLS4yNyUyMDMuMjQtLjc1LS44Ny43Ny0yLjAxJTIwMS4yNC0zLjI2JTIwMS4yNC0xLjI4JTIwMC0yLjQ0LS40OS0zLjMyLTEuMjguOTYuNSUyMDIuMTEuNzklMjAzLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfcGVnbWFuXzE1LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjMxMTElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjJjLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA1OTk5OTk5OTk5OTk5JTIwMTkuNDclMjAxMy41Mjk5OTk5OTk5OTk5OS04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0MvZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0yNS4yMyUyMDQxLjg4MDAwMDAwMDAwMDAxYy0uMjElMjAwLS40LS4xMy0uNDctLjMzbC00LjMtMTEuNjdjLS4wOC0uMjElMjAwLS40NS4xOC0uNThzLjQ0LS4xMi42MS4wM2wxMC4zNyUyMDguNzFjLjE2LjE0LjIyLjM2LjE1LjU2LS4wOC4yLS4yOS4zMS0uNDkuMzItMi4xNi0uMDgtNC4yNS4xMS00LjU2LjQyLS40OS40OS0uODklMjAxLjczLTElMjAyLjE2LS4wNS4yMTAwMDAwMDAwMDAwMi0uMjQuMzYwMDAwMDAwMDAwMDItLjQ2LjM3MDAwMDAwMDAwMDAyLS4wMS4wMS0uMDIuMDEtLjAzLjAxTTIyLjA1JTIwMzEuM2wzLjE3JTIwOC42Yy4yLS40Ni40Ny0uOTQuNzktMS4yNy41OC0uNTglMjAyLjQ3LS43MSUyMDMuODktLjczeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMjUuMjMlMjA0MS4zODAwMDAwMDAwMDAwMXMuMzgtMS42MyUyMDEuMTMtMi4zOWMuNzUtLjc1JTIwNC45My0uNTclMjA0LjkzLS41N2wtMTAuMzctOC43MXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTI2LjU2JTIwNDMuNzAwMDAwMDAwMDAwMDFjLS4xOCUyMDAtLjM3LS4wMy0uNTgtLjA4bC0uNS0uMTQtLjExLS4zYy0uNjUtLjYxLTEuMDEtMS4xOC0xLjA2LTEuNjktLjAyLS4yMS0uMDQtLjQ0LS4wMS0uNjVsLS4xNy01LjEzYy0uMDUuMDEtLjA5LjAyLS4xMy4wMi0uNTMuMDgwMDAwMDAwMDAwMDItMS4yMS0uMTI5OTk5OTk5OTk5OTgtMS41OC0uMjU5OTk5OTk5OTk5OTgtLjYyLS4xNTk5OTk5OTk5OTk5OS0xLjAyLS44NDk5OTk5OTk5OTk5OS0uOS0xLjYzOTk5OTk5OTk5OTk5LjA4LS42OC40NS0zLjM2Ljc1LTUuMjMuNC0yLjQ3Ljg4LTQuNS45LTQuNThDMjMuMjMlMjAyMy42MyUyMDIzLjQyJTIwMjMuMTklMjAyMy43JTIwMjIuODJsLS4wMS0uNDZjLS4wMS0uMzMuMTEtLjY1LjM0LS45LjIzLS4yNC41NC0uMzguODgtLjM5bC40Ny0uMDFjLS44Ni0xLjA1LTEuMzctMi4zOS0xLjM3LTMuODIlMjAwLTEuNi42Mi0zLjExJTIwMS43NC00LjI0czIuNjItMS43NiUyMDQuMjItMS43NmguMDFjMS41OSUyMDAlMjAzLjA5LjYyJTIwNC4yMSUyMDEuNzVzMS43NCUyMDIuNjQlMjAxLjc1JTIwNC4yNGMwJTIwMS42Mi0uNjMlMjAzLjEyLTEuNzElMjA0LjIyLjM3LjIxLjguNDYlMjAxLjE1LjY4JTIwMS4wNzk5OTk5OTk5OTk5OS42NyUyMDEuMjc5OTk5OTk5OTk5OTklMjAxLjk1JTIwMS4zMDk5OTk5OTk5OTk5OSUyMDIuMzEuMjElMjAxLjEuNzQlMjAzLjkuODglMjA0LjQ4LjIzLjkzLjY2JTIwMy4yNS42OCUyMDMuMzQuMDIuMTIuMDQuMjEuMDYuMy4xMS41NC40JTIwMS45Ni0xLjMlMjAyLjUxLS41NC4xOC0xLjAzLjE2LTEuNDUtLjA2LS4zNS0uMTgtLjU3LS40Ni0uNy0uNzEtLjIyJTIwMy41Ny0uNDElMjA2LjYyLS40MiUyMDYuNzQtLjA0LjYxLS4zOSUyMDEuMDEtLjclMjAxLjE5bC0uMzAwMDAwMDAwMDAwMDEuMTFzLTEuNS4zMS0xLjk5LjQybC0uMDQuMDQtLjI0LjAzYy0uMDElMjAwLS4wMyUyMDAtLjA1LjAxbC0uMDUuMDFjLS4xNC4wMi0uNDEuMDMtLjY5LS4wOC0uMTEtLjA0LS4xOC0uMDctLjUyLS4zNi0uMTguNDEtLjQ5LjY4LS43Ny44bC0uMjIuMDdjLS43Mi4xMy0xLjU5LjMxLTEuODIuMzctLjE0LjAyLS4zLjA1LS40OS4wNW0tLjMxLTEuOTIwMDAwMDAwMDAwMDFjLS4wMS0xZS0xNC0uMDEuMDA5OTk5OTk5OTk5OTktLjAyLjAwOTk5OTk5OTk5OTk5JTIwMCUyMDAlMjAuMDEtLjAxLjAyLS4wMW0uMDYtLjU0MDAwMDAwMDAwMDAxYy4wNi4wOS4xOS4yNC4zNi40MS4yNS0uMDYuNjYtLjE0JTIwMS4zNi0uMjguMDctLjcyLjMtMi42NC42Ny01LjcxbDEuOTkuMS4xMSUyMDQuNzljLjA5LjA4LjE4LjE2LjI3LjIzLjI1LS4wNi42Ny0uMTUlMjAxLjQtLjMuMDktMS41MS40Mi02Ljc5LjY5LTExLjIxbDEuOTUtLjIzYy4zOSUyMDEuMjYuODMlMjAyLjQ4JTIwMS4xJTIwMy4yMS0uMTMtLjY5MDAwMDAwMDAwMDAxLS40Mi0yLjIwMDAwMDAwMDAwMDAxLS41OC0yLjg2MDAwMDAwMDAwMDAxLS4xOS0uNzUwMDAwMDAwMDAwMDEtLjg5LTQuNDgwMDAwMDAwMDAwMDEtLjkyLTQuNjMwMDAwMDAwMDAwMDFsLS4wMi0uMTNjLS4wMS0uMTktLjEyLS42NC0uMzctLjc5LS41NS0uMzQtMS4zLS43Ny0xLjY4LS45OGwtLjgxLjAyLS40LTEuOTNjMS41Mi0uNjElMjAyLjUtMi4wNyUyMDIuNS0zLjcxJTIwMC0xLjA3LS40MS0yLjA3LTEuMTYtMi44My0uNzUtLjc1LTEuNzQtMS4xNy0yLjc5LTEuMTctMS4wNiUyMDAtMi4wNS40Mi0yLjglMjAxLjE3LS43NS43Ni0xLjE2JTIwMS43Ni0xLjE2JTIwMi44MyUyMDAlMjAxLjcyJTIwMS4wOSUyMDMuMjQlMjAyLjcxJTIwMy43OWwtLjI5JTIwMS45NS0yLjcxLjA4LjAyMDAwMDAwMDAwMDAyLjU3LS4zNS4zMWMtLjEyLjEwOTk5OTk5OTk5OTk5LS4yMy4zMDk5OTk5OTk5OTk5OS0uMjUuNDY5OTk5OTk5OTk5OTktLjAyLjA5LS41JTIwMi4xMi0uODklMjA0LjUxLS4zMSUyMDEuOTM5OTk5OTk5OTk5OTktLjU5JTIwMy45Njk5OTk5OTk5OTk5OS0uNyUyMDQuNzk5OTk5OTk5OTk5OTkuMDIlMjAwJTIwLjAzLjAxLjA0LjAxbC40NC0xLjkyJTIwMS45Ny4xODk5OTk5OTk5OTk5OXptLTMuMjktNy42OGMuMDMuMDEuMDUuMDIuMDguMDMtLjAyLS4wMS0uMDUtLjAyLS4wOC0uMDMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTM3LjI3MDAwMDAwMDAwMDAxJTIwMzIuNDRjLjEyLjczLjQyJTIwMS4zNS0uNTclMjAxLjY3LS45Ny4zMS0xLjAzLS41My0xLjE1LS43OSUyMDAlMjAwLS43OS0yLjAyLTEuNDQtNC4xNCUyMDAlMjAwLS45LTMuNjktLjk4LTQuMTQtLjI2LTEuNjYuNDEtMi4yNyUyMDEuMTctMi4yMS41NjAwMDAwMDAwMDAwMi4wNCUyMDEuMjAwMDAwMDAwMDAwMDIuMzglMjAxLjM4MDAwMDAwMDAwMDAyJTIwMS43NSUyMDAlMjAwJTIwLjcyJTIwMy44NS45MSUyMDQuNTguMjMuOS42OCUyMDMuMjguNjglMjAzLjI4JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMk0zNy4yOSUyMDMyLjQ0Yy4xMi43My40MiUyMDEuMzUtLjU3JTIwMS42Ny0uOTcuMzEtMS4wMy0uNTMtMS4xNS0uNzklMjAwJTIwMC0uNzktMi4wMi0xLjQ0LTQuMTQlMjAwJTIwMC0uOS0zLjY5LS45OC00LjE0LS4yNi0xLjY2LjQxLTIuMjclMjAxLjE3LTIuMjEuNTYuMDQlMjAxLjIuMzglMjAxLjM4JTIwMS43NSUyMDAlMjAwJTIwLjcyJTIwMy44NS45MSUyMDQuNTguMjMuOS42OCUyMDMuMjguNjglMjAzLjI4JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMm0zNC4yNiUyMDI5Ljg3LjItNy4xMS40MS4zMXMtLjA2JTIwNS40LjExJTIwNi42NC40NSUyMDMuMTMuNDUlMjAzLjEzeiUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwZCUzRCUyMk0yNC42OSUyMDIyLjA3aDguMnYyMC41NmgtOC4yeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZkYmYyZCUyMiUyMGQlM0QlMjJtMjQuNjklMjAyMi4wNy42JTIwMTguODVzLS4wNC4wNC4wMS40N2MuMDQuNDguOTUlMjAxLjI0Ljk1JTIwMS4yNGwxLjg3LS41NyUyMDEuMjUtMTAuMDQuMjQuNzcuMTglMjA4LjIyLjk1LjgxLjE4LjAyJTIwMS40NC0xLjAzLjUxLTE4LjAzLTIuMDUtLjMyeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMzQuNTQlMjAyMi43NC04LjI3LjI2Yy0uNSUyMDE1LjE5LjA2JTIwMTUuODYtLjA0JTIwMTkuMzItLjAxLjMuMDEuMzIuMDEuMzJzLjE4LjA1LjMzLjA1Yy4wNSUyMDAlMjAuMS0uMDEuMTMtLjAyLjEyLS4wNiUyMDEuOTktLjQxJTIwMS45OS0uNDFzLjMtLjEzLjMyLS41NmMuMDEtLjQzLjg3LTcuNDkuODctNy40OS4wNS0uNjUuMTQtLjc1LjQtLjc1LjI0JTIwMCUyMC4zNC4xNS4zNS41MiUyMDAlMjAwJTIwLjMlMjA3LjQxLjI4JTIwNy42cy0uMTQuMjItLjE0LjIyaC4yN2MuMS0uMDQlMjAyLjIxLS40NyUyMDIuMjEtLjQ3cy4xNy0uMS4xOS0uMzh6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0zNC41NyUyMDIyLjc0JTIwMjYuMyUyMDIzYy0uNSUyMDE1LjE5LjA2JTIwMTUuODYtLjA1JTIwMTkuMzItLjAxLjMuMDIuMzIuMDIuMzJzLjE4LjA1LjMyLjA1Yy4wNSUyMDAlMjAuMDktLjAxLjEyLS4wMi4xMy0uMDYlMjAyLS40MSUyMDItLjQxcy4zLS4xMy4zMS0uNTZjLjAyLS40My44OC03LjQ5Ljg4LTcuNDkuMDQtLjY1LjE0LS43NS4zOS0uNzVzLjM1LjE1LjM2LjUyYzAlMjAwJTIwLjMlMjA3LjQxLjI3JTIwNy42LS4wMS4xOS0uMTQuMjItLjE0LjIyaC4yN2MuMDktLjA0JTIwMi4yLS40NyUyMDIuMi0uNDdzLjE4LS4xLjItLjM4Yy4wMi0uMjYlMjAxLjAyLTE2LjYzJTIwMS4xNC0xOC4xNHolMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTMyLjg5JTIwMjEuODQtOC4yLjIzJTIwMS41Ny45NiUyMDguMjUtLjI5eiUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4wMSUyMiUyMGN5JTNEJTIyMjIuMzclMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjI1JTIyJTIwcnklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45OCUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0zMCUyMDIxLjc0YzEuMTklMjAwJTIwMi4zLS4yNyUyMDMuMjQtLjc1LS44Ny43Ny0yLjAxJTIwMS4yNC0zLjI2JTIwMS4yNC0xLjI4JTIwMC0yLjQ0LS40OS0zLjMyLTEuMjguOTYuNSUyMDIuMTEuNzklMjAzLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjUuOTQlMjAyNi4wNmMtLjElMjAxLjU5LS45MiUyMDUuOTctLjkyJTIwNS45N2wtLjU0JTIwMi4zM2MtLjA4LjI0LS4yNy4zMy0uNjIuMzhzLTEuMDktLjIxLTEuMDktLjIxYy0uMjMtLjA2LS4yOS0uMy0uMjUtLjU1JTIwMCUyMDAlMjAuMzUtMi43Mi43NS01LjIzLjQtMi40Ni44OS00LjUxLjg5LTQuNTEuMS0uNjEuNTktMS4yOSUyMDEuMTctMS4zNCUyMDAlMjAwJTIwLjY5JTIwMCUyMC43MSUyMDEuMDYuMDIlMjAxLjEyLS4xJTIwMi4xLS4xJTIwMi4xJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMk0yNS41MiUyMDIyLjk1Yy4yLjA4LjUuMzIuNTIlMjAxLjAxLjAzJTIwMS4xMi0uMSUyMDIuMS0uMSUyMDIuMS0uMDklMjAxLjM2LS43JTIwNC43My0uODclMjA1LjdsLS4wMS4wNWMtLjAxJTIwMCUyMC41Ny01LjQ5LjQ2LTguODYlMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fMi5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjE5Yy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40MmMwLTcuOTctOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTM1LjE5JTIwNDEuODgwMDAwMDAwMDAwMDFjLS4wNCUyMDAtLjA4JTIwMC0uMTItLjAxLS4xOC0uMDQtLjMyLS4xOC0uMzYtLjM2LS4xMi0uNDQtLjUyLTEuNjgtMS0yLjE2LS4zMS0uMzEtMi4zOS0uNS00LjU2LS40Mi0uMjIuMDItLjQ2LS4xNi0uNTEtLjRzLjA4LS40OC4zLS41N2wxMy45NS01LjYzYy4yMi0uMDkuNDctLjAxLjYuMThzLjEyLjQ1LS4wNC42MmwtNy44OCUyMDguNTljLS4xLjEtLjI0LjE2LS4zOC4xNm0tMy41NS0zLjk0YzEuMTYuMDclMjAyLjM0LjI2JTIwMi43Ny42OS40NC40NC43OCUyMDEuMTklMjAxJTIwMS43N2w1LjgxLTYuMzN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zNS4xOSUyMDQxLjM4MDAwMDAwMDAwMDAxcy0uMzgtMS42My0xLjEzLTIuMzljLS43NS0uNzUtNC45My0uNTctNC45My0uNTdsMTMuOTUtNS42M3olMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTMyLjU2JTIwNDQuNDljLS4wOSUyMDAtLjE3LS4wMS0uMjYtLjAzLS4yMS0uMDItLjM3LS4wOC0uNDgtLjE0LS4xMi0uMDYtMS4zOS0uOC0xLjYtLjkzLS4zOS0uMi0uODEtLjY3LS44NC0xLjQxJTIwMC0uMDMtLjAxLS4wOC0uMDItLjE2LS4xMi4wNC0uMjUuMDktLjM3LjE0LS4xMS4wOS0uMjUuMTYtLjQuMTgtLjA0LjAxLS4xNC4wMi0uMjYuMDMtLjA5LjAxLS4xOS4wMS0uMjgtLjAxLS4xMS0uMDA5OTk5OTk5OTk5OTgtLjIxLS4wMzk5OTk5OTk5OTk5OC0uMzEtLjA3OTk5OTk5OTk5OTk4cy0uMTgtLjA2OTk5OTk5OTk5OTk5LTEuNTctMS4wMjk5OTk5OTk5OTk5OWMtLjI0LS4xMy0uNTktLjU0LS42My0xLjEzLS4wMS0uMTItLjItMy4yMi0uNDItNi43Ny0uMi0uMzItLjI1LS42NS0uMjgtLjgzLS4wNC0uMTcwMDAwMDAwMDAwMDEtLjQ3LTIuMDcwMDAwMDAwMDAwMDEtLjc4LTQuMDgwMDAwMDAwMDAwMDEtLjA2LS42NC0uMzQtMy41Ni0uMzQtMy45OS0uMDItMS42Mi42NC0yLjMyJTIwMS4xNC0yLjYxLjE0LS4xMi4zMi0uMTkuNS0uMjFsLjI4LS4wOGMtMS4wNi0xLjExLTEuNjUtMi41OC0xLjY1LTQuMTElMjAwLTEuNi42Mi0zLjExJTIwMS43NC00LjI0czIuNjItMS43NiUyMDQuMjItMS43NmguMDFjMS41OSUyMDAlMjAzLjA5LjYyJTIwNC4yMSUyMDEuNzUlMjAxLjEzJTIwMS4xMyUyMDEuNzUlMjAyLjY0JTIwMS43NSUyMDQuMjQlMjAwJTIwMS41OTAwMDAwMDAwMDAwMi0uNjQlMjAzLjEyMDAwMDAwMDAwMDAyLTEuNzglMjA0LjI1MDAwMDAwMDAwMDAybC45LjE5Yy40NC4wOS43Ny40Ny44LjkyLjAxLjE0LS4wMS4yOC0uMDYuNDFsLS4wNi45OWMuMTYuNDUuMjEuOTguMTQlMjAxLjU5JTIwMCUyMDAtLjA3JTIwMy43My0uMDclMjA0LjQ3LjAxLjkyLjExJTIwMy4zNy4xMSUyMDMuMzdsLjAxLjEzYy4wMi40MS4wOCUyMDEuNTEtLjg4JTIwMi4wOGwtLjM2MDAwMDAwMDAwMDAyJTIwNi4xN2MtMWUtMTQuMjItLjA0MDAwMDAwMDAwMDAxLjc5LS40MTAwMDAwMDAwMDAwMSUyMDEuMy0uMjUuMzQtLjg3Ljk3LS45OSUyMDEuMS0uMTkuMTktLjQ0OTk5OTk5OTk5OTk5LjI5LS43MDk5OTk5OTk5OTk5OS4yOW0tMS4yLTIuNzRjLjIzLjEzLjYzLjM3Ljk1LjU1LjE1LS4xNi4yOC0uMzEuMzMtLjM4LjAxLS4wMi4wMy0uMDguMDMtLjExbC40LTYuOTRjLjAzLS40NjAwMDAwMDAwMDAwMS4zNi0uODQwMDAwMDAwMDAwMDEuODEtLjkyMDAwMDAwMDAwMDAxLjAxJTIwMCUyMC4wMiUyMDAlMjAuMDQtLjAxJTIwMC0uMDgwMDAwMDAwMDAwMDElMjAwLS4xOTAwMDAwMDAwMDAwMS0uMDEtLjI3MDAwMDAwMDAwMDAxbC0uMDEtLjE2cy0uMS0yLjUwMDAwMDAwMDAwMDAxLS4xMS0zLjQ0MDAwMDAwMDAwMDAxYy0uMDEtLjc2LjA3LTQuNi4wNy00LjYuMDUtLjUzLS4wMS0uNzYtLjA2LS44OC0uMDctLjE1LS4xMS0uMzItLjEtLjQ5bC4wNC0uNjUwMDAwMDAwMDAwMDEtMi40My0uNWMtLjQ0MDAwMDAwMDAwMDAxLS4wOS0uNzcwMDAwMDAwMDAwMDEtLjQ3LS44MDAwMDAwMDAwMDAwMS0uOTJzLjI1LS44Ni42OC0xLjAxbC4xMS0uMDRjLjA0LS4wMS4wOC0uMDMuMTItLjA0LjA2LS4wMi4xMS0uMDUuMTctLjA4bC4xMS0uMDZjLjEzLS4wNi4yNi0uMTMuMzctLjIuMDYtLjA0LjEzLS4wOS4xOS0uMTQuMDctLjA1LjEyLS4wOS4xNi0uMTIuMDItLjAzLjA1LS4wNS4wOC0uMDcuOS0uNzclMjAxLjQxLTEuODclMjAxLjQxLTMuMDMtMWUtMTQtMS4wNy0uNDEwMDAwMDAwMDAwMDEtMi4wNy0xLjE2MDAwMDAwMDAwMDAxLTIuODMtLjc1LS43NS0xLjc0LTEuMTYtMi43OS0xLjE2LTEuMDYlMjAwLTIuMDUuNDItMi44JTIwMS4xNy0uNzUuNzYtMS4xNiUyMDEuNzYtMS4xNiUyMDIuODMlMjAwJTIwMS4xNS40OSUyMDIuMjElMjAxLjM3JTIwMi45OS4wMy4wMi4wNS4wNS4wOC4wN2wuMTE5OTk5OTk5OTk5OTkuMDlzLjA4LjA2LjA5LjA3Yy4wNi4wNS4xMS4wOS4xNy4xMy4xMS4wNy4yMi4xMi4zMy4xOGwuMTQuMDhjLjM1LjIuNTguNjEuNTMlMjAxLjAxcS0uMDMuMjQtLjE1LjQ1Yy4xMy4xNy4yMS4zOS4yMS42MiUyMDAlMjAuMy0uMTQuNTktLjM3Ljc4cy0uNTQuMjctLjgzLjIxbC0xLjMxLS4yN2MtLjE0LS4wMy0uMjctLjA5LS4zOC0uMTctLjAyLS4wMS0uMDQtLjAzLS4wNS0uMDQtLjAyLS4wMi0uMDQtLjAzLS4wNi0uMDUtMWUtMTQlMjAwLS4wMTAwMDAwMDAwMDAwMSUyMDAtLjAyMDAwMDAwMDAwMDAxLjAxLS4wMi4wMy0uMTUuMjctLjE0Ljg1JTIwMCUyMC4yNC4xNyUyMDIuMS4zMyUyMDMuNzcuMjklMjAxLjg3LjcyJTIwMy43Ni43MyUyMDMuNzhzLjAyLjExLjA0LjJjMCUyMC4wMy4wMS4wNi4wMS4wOS4xNi4xNjk5OTk5OTk5OTk5OS4yNi4zODk5OTk5OTk5OTk5OS4yNy42Mjk5OTk5OTk5OTk5OS4yJTIwMy4xNjAwMDAwMDAwMDAwMS4zNyUyMDYuMDMwMDAwMDAwMDAwMDIuNDIlMjA2Ljg2MDAwMDAwMDAwMDAyLjIxOTk5OTk5OTk5OTk5LjE1LjUyOTk5OTk5OTk5OTk5LjM2Ljc2OTk5OTk5OTk5OTk5LjUyLjA0LS4wMi4wOS0uMDMuMTQtLjA1bC4yOC0zLjE4MDAwMDAwMDAwMDAyQzI4Ljc2MDAwMDAwMDAwMDAyJTIwMzYuMzclMjAyOS4xODAwMDAwMDAwMDAwMiUyMDM1Ljk4JTIwMjkuNjkwMDAwMDAwMDAwMDMlMjAzNS45NyUyMDMwLjI1MDAwMDAwMDAwMDAxJTIwMzUuOTUwMDAwMDAwMDAwMDElMjAzMC42NCUyMDM2LjMzJTIwMzAuNzElMjAzNi44M2MuNDglMjAzLjQ5OTk5OTk5OTk5OTk4LjYyJTIwNC41NTk5OTk5OTk5OTk5OC42NSUyMDQuOTE5OTk5OTk5OTk5OThtLTQuMTItMi4zOWMuMDEuMDEuMDQuMDMuMS4wNy0uMDQtLjAyLS4wNy0uMDUtLjEtLjA3JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMm0zNC43OSUyMDIyLjY0LTQuNDYtLjgzcy0yLjQyLjM1LTIuNDMuMzVsLS40NiUyMDE3Ljk4Ljc4JTIwMS4wM3MxLjAyLS4zOCUyMDEuMS0uNDEuMDctLjE4LjA3LS4xOGwuNjYtNy41NCUyMDEuNDYlMjA5Ljc0JTIwMS4wNC43YzAlMjAyZS0xNC42OC0uNjg5OTk5OTk5OTk5OTguODktLjk3OTk5OTk5OTk5OTk4LjI0LS4zMy4yMi0uNzMuMjItLjczeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMzQuOSUyMDMzLjQ2Yy4wMi41Ny4xNiUyMDEuMy0uODUlMjAxLjQ4LS43NC4xMy0uNzUtLjExLTEuMDItMS4xMyUyMDAlMjAwLS40Ny0yLjUtLjYxLTQuNzElMjAwJTIwMC0uMTgtMy4zMS0uMTQtMy43Ni4xMi0xLjY2LjkxLTIuMTElMjAxLjY0LTEuODcuNTMuMTclMjAxLjA4LjY1Ljk0JTIwMi4wMSUyMDAlMjAwLS4wOCUyMDMuODItLjA3JTIwNC41OC4wMS45Mi4xMSUyMDMuNC4xMSUyMDMuNCUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NmNTcyZSUyMiUyMGQlM0QlMjJNMzQuOSUyMDMzLjQ2Yy4wNCUyMDEuMTYtLjY4JTIwMS4wNy0uOTMuODctLjYzLS41LS43MS01LjIxLS44Mi02LjY0LS4wNy0uOTcuMDktMy40LjQtNC4xNy41NS0uMjElMjAxLjA0LjQyJTIwMS4wOS41MS4xOS4zMS4yOS43Ny4yMiUyMDEuNDUlMjAwJTIwMC0uMDglMjAzLjgyLS4wNyUyMDQuNTguMDEuOTIuMTElMjAzLjQuMTElMjAzLjQlMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMk0yNy40NyUyMDMxLjQ1Yy4wMS42Ny4yJTIwMS4yNy0uNzMlMjAxLjQzLS45MS4xNS0uODYtLjYxLS45My0uODclMjAwJTIwMC0uNDUtMS45Mi0uNzUtMy45MSUyMDAlMjAwLS4zMy0zLjQ0LS4zMy0zLjg1LS4wMi0xLjUyLjY2LTEuOTklMjAxLjM1LTEuODQuNS4xMSUyMDEuMDMuNSUyMDEuMDElMjAxLjc1JTIwMCUyMDAlMjAuMTUlMjAzLjU2LjIxJTIwNC4yNC4wOC44NC4xNyUyMDMuMDUuMTclMjAzLjA1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMm0zMS42NyUyMDIzLjcxLTYuMTctMS4yOXMtLjA1LjAxLS4wNC4wOWMuMTMlMjAxLjUlMjAxLjA3JTIwMTcuMDglMjAxLjA5JTIwMTcuMzQuMDIuMjcuMTkuMzcuMTkuMzdzMS4zLjg5JTIwMS4zOS45My4yNyUyMDAlMjAuMjclMjAwLS4xMy0uMDQtLjE0LS4yM2MtLjAyLS4xOS4zLTcuNDYuMy03LjQ2LjAxLS4zNy4xMS0uNTIuMzYtLjUzLjI0JTIwMCUyMC4yOS4xNS4zMS41MyUyMDAlMjAwJTIwMS4xNCUyMDguMDUlMjAxLjE1JTIwOC40OHMuMzEuNTYuMzEuNTYlMjAxLjQ3Ljg2JTIwMS41OS45Mi4zLjAxLjMuMDEtLjIyLS4wMS0uMjItLjNjMC0uMTktLjY5LTE5LjQyLS42OS0xOS40MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMzEuNjclMjAyMy43MS02LjE3LTEuMjlzLS4wNS4wMS0uMDQuMDljLjEzJTIwMS41JTIwMS4wNyUyMDE3LjA4JTIwMS4wOSUyMDE3LjM0LjAyLjI3LjE5LjM3LjE5LjM3czEuMy44OSUyMDEuMzkuOTMuMjclMjAwJTIwLjI3JTIwMC0uMTMtLjA0LS4xNC0uMjNjLS4wMi0uMTkuMy03LjQ2LjMtNy40Ni4wMS0uMzcuMTEtLjUyLjM2LS41My4yNCUyMDAlMjAuMjkuMTUuMzEuNTMlMjAwJTIwMCUyMDEuMTQlMjA4LjA1JTIwMS4xNSUyMDguNDhzLjMxLjU2LjMxLjU2JTIwMS40Ny44NiUyMDEuNTkuOTIuMy4wMS4zLjAxLS4yMi0uMDEtLjIyLS4zYzAtLjE5LS42OS0xOS40Mi0uNjktMTkuNDIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI1LjU0JTIwMjIuNDIlMjA2LjEzJTIwMS4yOSUyMDMuMTYtMS4wNy01Ljg4LTEuMiUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMCUyMiUyMGN5JTNEJTIyMjIuNDElMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjI1JTIyJTIwcnklM0QlMjIuNDMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuOTUlMjIlMjBjeSUzRCUyMjE3LjIzJTIyJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMHJ4JTNEJTIyNC45NiUyMiUyMHJ5JTNEJTIyNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJNMjkuOTglMjAyMS43NGMxLjE5JTIwMCUyMDIuMy0uMjclMjAzLjI0LS43NS0uODcuNzctMi4wMSUyMDEuMjQtMy4yNiUyMDEuMjQtMS4yOCUyMDAtMi40NC0uNDktMy4zMi0xLjI4Ljk2LjUlMjAyLjExLjc5JTIwMy4zNC43OSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl8zLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyLTkuMTEtMTQuNDItMjAuMzUtMTQuNDJtLS4xMiUyMDI3Ljg0Yy0xMC43NSUyMDAtMTkuNDctNi4wNi0xOS40Ny0xMy41M3M4LjcyLTEzLjUzJTIwMTkuNDctMTMuNTMlMjAxOS40NyUyMDYuMDYlMjAxOS40NyUyMDEzLjUzLTguNzIlMjAxMy41My0xOS40NyUyMDEzLjUzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwLjIxJTIyJTIwY3klM0QlMjI0MS41JTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMiUyMHJ4JTNEJTIyMTkuNDclMjIlMjByeSUzRCUyMjEzLjUzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0zNC42NyUyMDQyLjZjLS4xMSUyMDAtLjIyLS4wNC0uMzItLjExLS4xNS0uMTItLjIxLS4zMS0uMTctLjQ5JTIwMC0uMDEuMTctLjg0LS4wMS0xLjgzLS4wOC0uNDMtMS4yMy0xLjA2LTIuMjYtMS4zOS0uMjMtLjA3LS4zNy0uMjktLjM1LS41M3MuMjEtLjQyLjQ0LS40NWwxNS4wMy0xLjY0Yy4yNS0uMDMuNDcuMTMuNTQuMzcuMDYuMjQtLjA2LjQ5LS4yOC41OWwtMTIuNDIlMjA1LjQ0Yy0uMDcuMDMtLjE0LjA0LS4yLjA0bS0uNzMtNGMuNTguMzYlMjAxLjEuODIlMjAxLjIxJTIwMS4zOS4wOS40OS4xMS45NS4xJTIwMS4zMmw4LjY1LTMuNzl6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zNC42NiUyMDQyLjFzLjIyLS45Mi0uMDEtMi4wM2MtLjIyLTEuMDQtMi42LTEuNzgtMi42LTEuNzhsMTUuMDMtMS42NHolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTMwLjkxJTIwNDQuNDZjLS4yNyUyMDAtLjUzLS4wOS0uNzMtLjI2LS4wNC0uMDMtLjEyLS4xLS45NS0uOTUtLjE5LS4xOC0uNDgtLjU3LS41LTEuMjYlMjAwLS4wMyUyMDAtLjEtLjAxLS4yNS0uMDUuMDEtLjA4LjAyLS4wOC4wMi0uNDguMTItLjc5LS4wMS0uOTgtLjEzLS4xMS0uMDctLjE2LS4xLTEuMDctMS4wOS0uMDYtLjA1LS4zNi0uMzgtLjM4LTEuMDEtLjAxLS4xOC0uMjItNC4wMy0uNDQtOC4wMy0uMjEtLjc0LS41Ny0yLjA3LS43OC0zLjQyLS4wNi0uNjQtLjM0LTMuNTYtLjM0LTMuOTktLjAxLTEuMS4yNy0xLjkxLjg1LTIuNDEuMDktLjA4LjE5LS4xNS4yOS0uMi0xLjE0LTEuMTMtMS43OS0yLjY2LTEuNzktNC4yNSUyMDAtMS42LjYyLTMuMTElMjAxLjc0LTQuMjRzMi42Mi0xLjc2JTIwNC4yMi0xLjc2aC4wMWMxLjU5JTIwMCUyMDMuMDkuNjIlMjA0LjIxJTIwMS43NSUyMDEuMTMlMjAxLjEzJTIwMS43NSUyMDIuNjQlMjAxLjc1JTIwNC4yNCUyMDAlMjAxLjY0LS42OCUyMDMuMjEtMS44OCUyMDQuMzUlMjAwJTIwMCUyMDAlMjAuMDEtLjAxLjAxbC4zMy4wOWMuNDYuMTMuNzYuNTYuNzMlMjAxLjA0bC0uMzElMjA0LjA1Yy0uMSUyMDIuMzItLjEyJTIwMy4xLS4xMiUyMDMuMzQuMDEuOTIuMTElMjAzLjM3LjExJTIwMy4zN2wuMDEuMmMuMDMuNC4xMiUyMDEuNDctLjclMjAyLjA2bC0uNTEwMDAwMDAwMDAwMDIlMjA2LjY3Yy0xZS0xNC40LS4yNjAwMDAwMDAwMDAwMSUyMDEuMDktLjk5MDAwMDAwMDAwMDAxJTIwMS40Ni0uNDkuMjUtLjk4LjQyLTEuMi40OS0uMTcwMDAwMDAwMDAwMDEuMDgtLjMyLjExLS40OC4xMW0tLjE5LTIuNTNjLjEuMS4yNS4yNi40LjQxLjE0LS4wNS4yOS0uMTIuNDUtLjJsLjU1LTcuMTNjLjAzLS40LjMtLjc0LjY3LS44NyUyMDAtLjA5LS4wMS0uMjEtLjAyLS4yOS0uMDEtLjEtLjAyLS4yLS4wMi0uMjktMWUtMTQlMjAwLS4xMDAwMDAwMDAwMDAwMS0yLjUtLjExMDAwMDAwMDAwMDAxLTMuNDQtMWUtMTQtLjM4LjAzOTk5OTk5OTk5OTk5LTEuNTIuMTE5OTk5OTk5OTk5OTktMy40OGwuMjQ5OTk5OTk5OTk5OTktMy4yNi0xLjcyMDAwMDAwMDAwMDAxLS40OGMtLjQyLS4xMi0uNzItLjUtLjczLS45My0uMDEtLjQ0LjI2LS44My42Ny0uOThsLjE4OTk5OTk5OTk5OTk5LS4wNmMuMDUtLjAyLjExLS4wNS4xNy0uMDhsLjExLS4wNmMuMTMtLjA2LjI2LS4xMy4zNy0uMi4wNi0uMDQuMTMtLjA5LjItLjE1LjA3LS4wNS4xMS0uMDkuMTUtLjExLjAyLS4wMjk5OTk5OTk5OTk5OS4wNS0uMDQ5OTk5OTk5OTk5OTkuMDgtLjA2OTk5OTk5OTk5OTk5LjktLjc3JTIwMS40MS0xLjg3JTIwMS40MS0zLjAzJTIwMC0xLjA3LS40MS0yLjA3LTEuMTYtMi44My0uNzUwMDAwMDAwMDAwMDEtLjc1LTEuNzQwMDAwMDAwMDAwMDEtMS4xNi0yLjc5MDAwMDAwMDAwMDAxLTEuMTYtMS4wNjAwMDAwMDAwMDAwMSUyMDAtMi4wNTAwMDAwMDAwMDAwMS40Mi0yLjgwMDAwMDAwMDAwMDAxJTIwMS4xNy0uNzUuNzYtMS4xNiUyMDEuNzYtMS4xNiUyMDIuODMlMjAwJTIwMS4xNTAwMDAwMDAwMDAwMS40OSUyMDIuMjEwMDAwMDAwMDAwMDElMjAxLjM3JTIwMi45OTAwMDAwMDAwMDAwMS4wMy4wMjAwMDAwMDAwMDAwMS4wNS4wNTAwMDAwMDAwMDAwMS4wOC4wNzAwMDAwMDAwMDAwMWwuMjIuMTZjLjA1LjA0LjExLjA5LjE2LjEyLjExLjA3LjIyLjEyLjMzLjE4bC4xOC4wOWMuMDUuMDIuMDkuMDUuMTQuMDdsLjE0LjA3Yy4zOS4xNi42MS41NC41OC45Ni0uMDIuNDMtLjM1Ljc3LS43Ni44OWwtMS4yMy4zNmMtLjE0LjA0LS4yOC4wNS0uNDMuMDMlMjAwJTIwLjAzLS4xMy4yNC0uMTIuODQlMjAwJTIwLjI0LjE3JTIwMi4xLjMzJTIwMy43Ny4xODk5OTk5OTk5OTk5OSUyMDEuMjUuNTQ5OTk5OTk5OTk5OTklMjAyLjU1LjczOTk5OTk5OTk5OTk5JTIwMy4yMS4wMTk5OTk5OTk5OTk5OS4wNy4wMzk5OTk5OTk5OTk5OS4xNS4wMzk5OTk5OTk5OTk5OS4yMy4zMyUyMDYuMDEuNDIlMjA3LjY2LjQ0JTIwOC4wNi4wNy4wOC4xNi4xNy4yNS4yN2wuMDctLjgyYy4wNS0uNTIuNDgtLjkxJTIwMS0uOTFoLjAxYy41MiUyMDAlMjAuOTUuNDEuOTkuOTMuMTUlMjAyLjM4LjE5JTIwMi45NS4xOSUyMDMuMTJtLTIuNzMtMi44LjEuMXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNlNThhMmMlMjIlMjBkJTNEJTIyTTI4LjU5JTIwMzEuMzRjLjA2LjUyLjM2JTIwMS4zLS41NiUyMDEuNTFzLTEuMDMtLjctMS4xLS45NWMwJTIwMC0uNjUtMS45Ny0uOTUtMy45NiUyMDAlMjAwLS4zMy0zLjQ0LS4zMy0zLjg1LS4wMi0xLjUyLjY2LTEuOTklMjAxLjM1LTEuODQuNS4xMSUyMDEuMDMuNSUyMDEuMDElMjAxLjc1JTIwMCUyMDAlMjAuMTUlMjAzLjU2LjIxJTIwNC4yNC4wOC44NS4zNyUyMDMuMS4zNyUyMDMuMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2U1OGEyYyUyMiUyMGQlM0QlMjJtMzQuMDglMjAyMi42NC00LjMxLTEuMnMtMy40MSUyMDEuMDItMy40MyUyMDEuMDJsLjk4JTIwMTcuMzElMjAxLjA0JTIwMS4wM3MuODEtLjIyLjkxLS4yNmMuMS0uMDMuMS0uMTguMS0uMThsLjE1LTEuNjguNyUyMDQuMS43Mi42NnMuNi0uMTglMjAxLjE2LS40N2MuNDUtLjIzLjQ1LS42NS40NS0uNjV6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMm0zMC4xOSUyMDIzLjcxLTMuODktMS4yOXMtLjAzLjAxLS4wMy4wOWMuMDglMjAxLjUuOTElMjAxNi43Mi45MiUyMDE2Ljk5cy4xMi4zNy4xMi4zNy44Mi44OS44OC45My4xNyUyMDAlMjAuMTclMjAwLS4wOC0uMDQtLjA5LS4yMy4zOC03LjQ4LjM4LTcuNDhjLjAxLS4zNy4wNy0uNTIuMjMtLjUzLjE1JTIwMCUyMC4xOS4xNS4xOS41MyUyMDAlMjAwJTIwLjYzJTIwOC40NS42NCUyMDguODhzLjIuNTYuMi41Ni44Mi44My44OS44OWMuMDguMDYuMTkuMDEuMTkuMDFzLS4xNC0uMDEtLjE0LS4zYy4wMi0uMTktLjY2LTE5LjQyLS42Ni0xOS40MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMzAuMTklMjAyMy43MS0zLjg5LTEuMjlzLS4wMy4wMS0uMDMuMDljLjA4JTIwMS41LjkxJTIwMTYuNzIuOTIlMjAxNi45OXMuMTIuMzcuMTIuMzcuODIuODkuODguOTMuMTclMjAwJTIwLjE3JTIwMC0uMDgtLjA0LS4wOS0uMjMuMzgtNy40OC4zOC03LjQ4Yy4wMS0uMzcuMDctLjUyLjIzLS41My4xNSUyMDAlMjAuMTkuMTUuMTkuNTMlMjAwJTIwMCUyMC42MyUyMDguNDUuNjQlMjA4Ljg4cy4yLjU2LjIuNTYuODIuODMuODkuODljLjA4LjA2LjE5LjAxLjE5LjAxcy0uMTQtLjAxLS4xNC0uM2MuMDItLjE5LS42Ni0xOS40Mi0uNjYtMTkuNDIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTI2LjMlMjAyMi40MiUyMDMuODklMjAxLjI5JTIwMy44OS0xLjA3LTQuMzctMS4yJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5LjkzJTIyJTIwY3klM0QlMjIyMi40JTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMiUyMHJ4JTNEJTIyMi4xMyUyMiUyMHJ5JTNEJTIyLjUyJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zMy43NiUyMDMzLjUzYy4wMi41Ny4yNyUyMDEuNDUtLjc2JTIwMS41OS0xLjAyLjE0LTEuMDUtLjg2LTEuMTEtMS4xNCUyMDAlMjAwLS41Mi0yLjIxLS42Ni00LjQxJTIwMCUyMDAtLjAzLTMuNzguMDEtNC4yMy4xMi0xLjY2LjkxLTIuMTElMjAxLjY0LTEuODcuNTMuMTclMjAxLjA4LjY1Ljk0JTIwMi4wMSUyMDAlMjAwLS4xOCUyMDMuODktLjE4JTIwNC42NC4wMS45My4xMiUyMDMuNDEuMTIlMjAzLjQxJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk1JTIyJTIwY3klM0QlMjIxNy4yMyUyMiUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjByeCUzRCUyMjQuOTYlMjIlMjByeSUzRCUyMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI5Ljk4JTIwMjEuNzRjMS4xOSUyMDAlMjAyLjMtLjI3JTIwMy4yNC0uNzUtLjg3Ljc3LTIuMDElMjAxLjI0LTMuMjYlMjAxLjI0LTEuMjglMjAwLTIuNDQtLjQ5LTMuMzItMS4yOC45Ni41JTIwMi4xMS43OSUyMDMuMzQuNzklMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMk0zMy43NCUyMDMzLjUzYy4wNCUyMDEuMTYtLjU0Ljk1LS44Mi44MS0uOTktLjUyLTEuMDktNS4xMi0xLjItNi41Ni0uMDctLjk3LS4xNi0zLjU4Ljc4LTQuMjYuNTUtLjIxJTIwMS4wNC40MiUyMDEuMDkuNTEuMTkuMzEuMjkuNzcuMjIlMjAxLjQ1JTIwMCUyMDAtLjE4JTIwMy44OS0uMTglMjA0LjY0JTIwMCUyMC45My4xMSUyMDMuNDEuMTElMjAzLjQxJTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfcGVnbWFuXzQuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMzAuMzMlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTMzLjQzJTIwNDMuOWMtLjE5JTIwMC0uMzYtLjEtLjQ1LS4yNy0uMS0uMTktLjA2LS40Mi4wOC0uNTcuMDEtLjAxLjc2LS44MSUyMDEuMTktMS43NS4yOS0uNjMtLjc2LTEuMzgtLjc3LTEuMzktLjE5LS4xMy0uMjYtLjM4LS4xOC0uNTlzLjMtLjM0LjUzLS4zMmwxNC44MSUyMDEuOTFjLjI1LjAyOTk5OTk5OTk5OTk4LjQ0LjIzOTk5OTk5OTk5OTk4LjQ0LjQ5OTk5OTk5OTk5OTk4JTIwMCUyMC4yNDk5OTk5OTk5OTk5OS0uMTkuNDU5OTk5OTk5OTk5OTktLjQ0LjQ5OTk5OTk5OTk5OTk5bC0xNS4xNiUyMDEuOTg5OTk5OTk5OTk5OThjLS4wMS0uMDE5OTk5OTk5OTk5OTktLjAzLS4wMS0uMDUtLjAxbTEuNjMtMy43M2MuMjUuNDU5OTk5OTk5OTk5OTkuMzYuOTk5OTk5OTk5OTk5OTkuMTElMjAxLjU0OTk5OTk5OTk5OTk5LS4xNy4zNy0uMzguNzMtLjU5JTIwMS4wM2wxMC4xMy0xLjMzeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMzMuNDMlMjA0My40cy44MS0uODYlMjAxLjI4LTEuODktLjk0LTIuMDEtLjk0LTIuMDFsMTQuODElMjAxLjkxeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMzAuMjIlMjA0My44M2MtLjU1JTIwMC0xLjE1LS4wNS0xLjU4LS4yMi0uMzktLjE1LTEuMTctLjQ2LTEuMjEtMS4ybC0xLjk3LTE5LjY2Yy0uMDMtLjMzLjEtLjY2LjM2LS44OGwuMTgtLjE0Yy0uMDEtLjAxLS4wMy0uMDItLjA0LS4wMy0uMDUtLjA1LS4xLS4xLS4xNC0uMTYtMS4xNi0xLjEzLTEuODMtMi42OC0xLjgzLTQuMjklMjAwLTEuNi42Mi0zLjExJTIwMS43NC00LjI0czIuNjItMS43NiUyMDQuMjItMS43NmguMDFjMS41OSUyMDAlMjAzLjA5LjYyJTIwNC4yMSUyMDEuNzVzMS43NSUyMDIuNjQlMjAxLjc1JTIwNC4yNGMwJTIwMS41NS0uNjElMjAzLjA0LTEuNjklMjA0LjE2cS4wNzUuMjEuMDYuNDJjLS4xJTIwMS40OC0xLjElMjAyMC4wMy0xLjExJTIwMjAuMjItLjAxLjE4LS4wNy4zNi0uMTcuNTEtLjU5Ljg3LS43My45Ni0uODclMjAxLjA1LS4xNi4wOTk5OTk5OTk5OTk5OS0uMzkuMjA5OTk5OTk5OTk5OTktLjcyLjE3OTk5OTk5OTk5OTk5LS4zLjAwOTk5OTk5OTk5OTk5LS43NC4wNDk5OTk5OTk5OTk5OS0xLjIuMDQ5OTk5OTk5OTk5OTltLS43OTk5OTk5OTk5OTk5OS0xLjYxdi4wMmMwJTIwLjAzOTk5OTk5OTk5OTk5LjAxLjA3OTk5OTk5OTk5OTk5JTIwMCUyMC4xMTk5OTk5OTk5OTk5OS4wMS0uMDUlMjAwLS4xJTIwMC0uMTRtLS4wNS0uNDhjLjI0LjA4OTk5OTk5OTk5OTk5Ljk4LjEwOTk5OTk5OTk5OTk5JTIwMS43MS4wMzk5OTk5OTk5OTk5OS4wNDAwMDAwMDAwMDAwMS0uMDUwMDAwMDAwMDAwMDEuMDcwMDAwMDAwMDAwMDEtLjEwMDAwMDAwMDAwMDAxLjExMDAwMDAwMDAwMDAxLS4xNTAwMDAwMDAwMDAwMS4xMi0yLjE5LjgzLTE1LjQ4JTIwMS4wNS0xOS4xMy0uMzktLjA5LS42OS0uNDItLjc1LS44MS0uMDYtLjQxLjEzLS44MS40OC0xLjAybC4xMi0uMDhjLjA2LS4wNC4xMi0uMDkuMTktLjE0cS4xMDUtLjA3NS4xNS0uMTJjLjAyLS4wMy4wNS0uMDUuMDgtLjA3LjktLjc3MDAwMDAwMDAwMDAxJTIwMS40MS0xLjg3MDAwMDAwMDAwMDAxJTIwMS40MS0zLjAzMDAwMDAwMDAwMDAxJTIwMC0xLjA3LS40MS0yLjA3LTEuMTYtMi44My0uNzUtLjc1LTEuNzQtMS4xNi0yLjc5LTEuMTYtMS4wNiUyMDAtMi4wNS40Mi0yLjglMjAxLjE3LS43NS43Ni0xLjE2JTIwMS43Ni0xLjE2JTIwMi44MyUyMDAlMjAxLjE1LjQ5JTIwMi4yMSUyMDEuMzYlMjAyLjk5LjAzLjAyLjA1LjA1LjA3LjA3bC4yMS4xNmMuMDYuMDQuMTEuMDkuMTcuMTMuMDkuMDYuMTkuMTEuMjkuMTYuNDEuMjEuNjYuNjkuNTUlMjAxLjE0LS4wNy4zMS0uMjcuNTYtLjUzLjY5bC0uNjIuNXolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIybTI2LjQ1JTIwMjIuNjQlMjA1LjYtMS4yczEuMTIuMjQlMjAxLjE0LjI0bC0xLjQzJTIwMjAuNTQtLjM1LjUzcy0xLjY4LjIxLTIuNDEtLjA4Yy0uNTgtLjIzLS41OC0uMzQtLjU4LS4zNHolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIybTMyLjUyMDAwMDAwMDAwMDAxJTIwMjIuNy43My0xLjA2cy4wNC4wMS4wMy4wOWMtLjElMjAxLjUtMS4xMSUyMDIwLjIzLTEuMTElMjAyMC4yM3MtLjQ3LjctLjU4Ljc2Yy0uMS4wNi0uMjUuMDEtLjI1LjAxcy4xOC0uMDEuMTgtLjNjLjAxLS4xOSUyMDEtMTkuNzMlMjAxLTE5LjczJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zMi41MjAwMDAwMDAwMDAwMSUyMDIyLjcuNzMtMS4wNnMuMDQuMDEuMDMuMDljLS4xJTIwMS41LTEuMTElMjAyMC4yMy0xLjExJTIwMjAuMjNzLS40Ny43LS41OC43NmMtLjEuMDYtLjI1LjAxLS4yNS4wMXMuMTgtLjAxLjE4LS4zYy4wMS0uMTklMjAxLTE5LjczJTIwMS0xOS43MyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMzMuMjUlMjAyMS42NS0uNzMlMjAxLjA1LTYuMDctLjA2JTIwMS4yLS45NyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMCUyMiUyMGN5JTNEJTIyMjIuMDElMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjEzJTIyJTIwcnklM0QlMjIuNTIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTMxLjI0JTIwMzMuMjVjLS4xMy43Mi4xMSUyMDEuNjgtMS4wNiUyMDEuODctLjgzLjEzLS44OC0uNy0uOTQtLjk5JTIwMCUyMDAtLjQ3LTMuOTgtLjYzLTYuMTglMjAwJTIwMC0uMjMtMy42OS0uMDEtNCUyMC4zNy0uNTIuOTItLjYzJTIwMS40NS0uNDkuNjEuMTclMjAxLjUyLjY0JTIwMS4zNiUyMDIlMjAwJTIwMC0uMDElMjAzLjklMjAwJTIwNC42NiUyMDAlMjAuOTQtLjE3JTIwMy4xMy0uMTclMjAzLjEzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMk0zMC42NCUyMDMzLjUzYy4wMi41Ny4zMSUyMDEuNDUtLjg3JTIwMS41OS0xLjE3LjE0LTEuMjEtLjg2LTEuMjctMS4xNCUyMDAlMjAwLS40Mi0yLjE2LS41OC00LjM2JTIwMCUyMDAtLjIxLTMuODMtLjE3LTQuMjguMTQtMS42NiUyMDEuMDUtMi4xMSUyMDEuODgtMS44Ny42MS4xNyUyMDEuMjQuNjUlMjAxLjA4JTIwMi4wMSUyMDAlMjAwLS4wMyUyMDMuOTQtLjAyJTIwNC42OS4wMi45My0uMDUlMjAzLjM2LS4wNSUyMDMuMzYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTMwLjY0JTIwMzMuNTNjLjAyLjU3LjMlMjAxLjQxLS44NyUyMDEuNTktLjgzLjEzLS44OC0uNy0uOTQtLjk5JTIwMCUyMDAtLjQ3LTMuOTgtLjYzLTYuMTglMjAwJTIwMC0uMjMtMy42OSUyMDAtNCUyMC4zNy0uNTIuOTItLjYzJTIwMS40NS0uNDkuNjEuMTclMjAxLjI0LjY1JTIwMS4wOCUyMDIuMDElMjAwJTIwMC0uMDMlMjAzLjk0LS4wMiUyMDQuNjklMjAwJTIwLjk0LS4wNyUyMDMuMzctLjA3JTIwMy4zNyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NSUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45NyUyMDIxLjc0YzEuMTklMjAwJTIwMi4zLS4yNyUyMDMuMjQtLjc1LS44Ny43Ny0yLjAxJTIwMS4yNC0zLjI2JTIwMS4yNC0xLjI4JTIwMC0yLjQ0LS40OS0zLjMyLTEuMjguOTYuNSUyMDIuMTEuNzklMjAzLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0Mvc3ZnJTNFIiwKImxpbHlwYWRfcGVnbWFuXzUuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNjAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMGQlM0QlMjJNMzAuMzMlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtMjkuNjUlMjA0NC4xNCUyMDguMjQtMy44NS00LjQ3LTIuNjklMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIyTTI5LjIxJTIwNDQuNDZjLS4xNiUyMDAtLjMxLS4wMy0uNDYtLjA5LS4yMS0uMDctLjctLjI0LTEuMi0uNDktLjc0LS4zNy0xLTEuMDctMS0xLjU0bC0uNTEtNi42M2MtLjM3LS4zMi0uNjEtLjgyLS43MS0xLjQ5LS4wMi0uMTEtLjU0LTIuMzMtLjY4LTQuNTktLjAxLS42OS0uMDMtMy45LjAxLTQuMzcuMDUtLjY3MDAwMDAwMDAwMDAyLjItMS4yNDAwMDAwMDAwMDAwMi40NS0xLjY5MDAwMDAwMDAwMDAybC0uMDctLjg1MDAwMDAwMDAwMDAyYy0uMDQtLjQ4LjI3LS45MS43My0xLjA0bC4xNC0uMDRjLS4wNC0uMDQtLjA3LS4wOC0uMS0uMTItMS4xNi0xLjEzLTEuODMtMi42OC0xLjgzLTQuMjklMjAwLTEuNi42Mi0zLjExJTIwMS43NC00LjI0JTIwMS4xMy0xLjE0JTIwMi42MS0xLjc2JTIwNC4yMi0xLjc2JTIwMS41OSUyMDAlMjAzLjA5LjYyJTIwNC4yMSUyMDEuNzVzMS43NCUyMDIuNjQlMjAxLjc1JTIwNC4yNGMwJTIwMS41OS0uNjQlMjAzLjExLTEuNzclMjA0LjI0LjA0OTk5OTk5OTk5OTk4LjAyLjA4OTk5OTk5OTk5OTk4LjAzLjEzOTk5OTk5OTk5OTk4LjA2LjM1OTk5OTk5OTk5OTk5LjE4LjU5OTk5OTk5OTk5OTk5LjY0LjU3OTk5OTk5OTk5OTk5JTIwMS4wNGwtLjA2MDAwMDAwMDAwMDAyJTIwMS4wOWMuMDEuMTIuMDEuMjQuMDEuMzcuMDQuOTIuMTYlMjAzLjU5LjIxJTIwNC4xMy4wOC44NC4zNyUyMDMuMDYuMzclMjAzLjA2bC4wMy4xODk5OTk5OTk5OTk5OGMuMjclMjAxLjU0LS40NCUyMDIuMTUtMS4xNyUyMDIuMzctLjE3JTIwMy4wNy0uMzElMjA1LjYxLS4zMSUyMDUuNzYtLjAzMDAwMDAwMDAwMDAyLjYzLS4zMjAwMDAwMDAwMDAwMi45Ni0uNDUwMDAwMDAwMDAwMDIlMjAxLjA4LS44NTAwMDAwMDAwMDAwMi45My0uOTAwMDAwMDAwMDAwMDIuOTYtMS4wMjAwMDAwMDAwMDAwMiUyMDEuMDQtLjI2MDAwMDAwMDAwMDAxLjE3LS42MTAwMDAwMDAwMDAwMS4yMi0uOTYwMDAwMDAwMDAwMDEuMTItLjAzLS4wMS0uMDYtLjAxLS4wOS0uMDItLjAwOTk5OTk5OTk5OTk4LjE3LS4wMDk5OTk5OTk5OTk5OC4yMy0uMDA5OTk5OTk5OTk5OTguMjUtLjAxLjY5LS4zMSUyMDEuMDgtLjUlMjAxLjI2LS44My44NS0uOTEuOTEtLjk1Ljk1LS4yMi4xNy0uNDguMjUtLjc0LjI1bS0uNjctMi4zMmMuMTYuMDguMzIuMTQuNDUuMi4xNS0uMTUwMDAwMDAwMDAwMDEuMy0uMzEwMDAwMDAwMDAwMDEuNC0uNDEwMDAwMDAwMDAwMDEuMDEtLjE3LjA0LS42OS4yMi0zLjEyLjA0LS41Mi40Ny0uOTIuOTktLjkzaC4wMWMuNTIlMjAwJTIwLjk1LjM5JTIwMSUyMC45MWwuMDcuODJjLjA5LS4xLjE4LS4xOS4yNS0uMjcuMDQtLjgxMDAwMDAwMDAwMDAxLjMtNS41NjAwMDAwMDAwMDAwMS4zNi02LjU3MDAwMDAwMDAwMDAxLjAxOTk5OTk5OTk5OTk5LS4zMjAwMDAwMDAwMDAwMS4xODk5OTk5OTk5OTk5OS0uNjIwMDAwMDAwMDAwMDEuNDU5OTk5OTk5OTk5OTktLjc5MDAwMDAwMDAwMDAxLjIxLS4xMy40Ni0uMTguNy0uMTQtLjAxLS4wNC0uMDEtLjA3LS4wMi0uMS0uMDItLjEtLjAzLS4xOS0uMDQtLjI4JTIwMCUyMDAtLjI5LTIuMjctLjM4LTMuMTItLjA3LS43LS4yMS00LjE1LS4yMS00LjNzLS4wMS0uMjItLjAxLS4zdi0uMTRsLjAxOTk5OTk5OTk5OTk5LS40NDAwMDAwMDAwMDAwMS0xLjI1LS4zNjAwMDAwMDAwMDAwMWMtLjQxLS4xMi0uNy0uNDgtLjcyLS45cy4yMi0uODIuNjEtLjk4Yy4wNC0uMDIuMDctLjA0LjExLS4wNmwuMTUtLjA4Yy4xMy0uMDYuMjUtLjEzLjM3LS4ybC4yMDk5OTk5OTk5OTk5OS0uMTUuMTQtLjEuMDgtLjA4Yy45LS43NyUyMDEuNDEtMS44NyUyMDEuNDEtMy4wMyUyMDAtMS4wNy0uNDEtMi4wNy0xLjE2LTIuODMtLjc1LS43NS0xLjc0LTEuMTYtMi43OS0xLjE2LTEuMDYwMDAwMDAwMDAwMDElMjAwLTIuMDUwMDAwMDAwMDAwMDEuNDItMi44MDAwMDAwMDAwMDAwMSUyMDEuMTctLjc1Ljc2LTEuMTYlMjAxLjc2LTEuMTYlMjAyLjgzJTIwMCUyMDEuMTUuNDklMjAyLjIxJTIwMS4zNiUyMDIuOTkuMDMuMDIwMDAwMDAwMDAwMDEuMDUuMDUwMDAwMDAwMDAwMDEuMDcuMDcwMDAwMDAwMDAwMDFsLjIyLjE2Yy4wNS4wNC4xMS4wOS4xNi4xMi4xLjA3LjIxLjEyLjMyLjE3bC4yLjEwMDAwMDAwMDAwMDAxYy4wNC4wMjAwMDAwMDAwMDAwMS4wOS4wNTAwMDAwMDAwMDAwMS4xMy4wNzAwMDAwMDAwMDAwMS4wNS4wMi4xLjAzLjE1LjA1TDI4Ljc1OTk5OTk5OTk5OTk5JTIwMjFjLjQyLjE0LjcuNTMuNjkuOTdzLS4zMS44Mi0uNzMuOTRsLTEuNi40NS4wMy4zN2MuMDIuMjUtLjA2LjUtLjIxLjctLjA2LjA4LS4yMi4zNC0uMjcuOTYtLjAyLjI2LS4wMiUyMDIuMzElMjAwJTIwNC4xNS4xMyUyMDIuMDMuNjMlMjA0LjE2LjYzJTIwNC4xOS4wMS4wMy4wMy4xNS4wMy4xOC4wMS4wNS4wMi4xNi4wNC4yNC4zNi4xNC42MS40Ny42NC44NnptMS4wOS0uNDJxLS4wMTUlMjAwJTIwMCUyMDAtLjAxNSUyMDAlMjAwJTIwMG0yLjQzLTIuNTJjLS4wMy4wMTk5OTk5OTk5OTk5OS0uMDUuMDM5OTk5OTk5OTk5OTktLjA2LjA2OTk5OTk5OTk5OTk5LjA0LS4wNTAwMDAwMDAwMDAwMS4wNi0uMDcwMDAwMDAwMDAwMDEuMDYtLjA3MDAwMDAwMDAwMDAxJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zNC4zODAwMDAwMDAwMDAwMSUyMDMxLjM0Yy4wNi41Mi4zNiUyMDEuMy0uNTYlMjAxLjUxcy0xLjAzLS43LTEuMS0uOTVjMCUyMDAtLjY1LTEuOTctLjk1LTMuOTYlMjAwJTIwMC0uMzMtMy40NC0uMzMtMy44NS0uMDItMS41Mi42Ni0xLjk5JTIwMS4zNS0xLjg0LjUuMTElMjAxLjAzLjUlMjAxLjAxJTIwMS43NSUyMDAlMjAwJTIwLjE1JTIwMy41Ni4yMSUyMDQuMjQuMDguODUuMzclMjAzLjEuMzclMjAzLjElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTM0LjM4MDAwMDAwMDAwMDAxJTIwMzEuMzRjLjA2LjUyLjM2JTIwMS4zLS41NiUyMDEuNTFzLTEuMDMtLjctMS4xLS45NWMwJTIwMC0uNjUtMS45Ny0uOTUtMy45NiUyMDAlMjAwLS4zMy0zLjQ0LS4zMy0zLjg1LS4wMi0xLjUyLjY2LTEuOTklMjAxLjM1LTEuODQuNS4xMSUyMDEuMDMuNSUyMDEuMDElMjAxLjc1JTIwMCUyMDAlMjAuMTUlMjAzLjU2LjIxJTIwNC4yNC4wOC44NS4zNyUyMDMuMS4zNyUyMDMuMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjYuMDQlMjAyMi42NCUyMDQuMzEtMS4yczMuNDElMjAxLjAyJTIwMy40MyUyMDEuMDJsLS45OCUyMDE3LjMxLTEuMDQlMjAxLjAzcy0uODEtLjIyLS45MS0uMjZjLS4xLS4wMy0uMS0uMTgtLjEtLjE4bC0uMTUtMS42OC0uNyUyMDQuMS0uNzIuNjZzLS42LS4xOC0xLjE2LS40N2MtLjQ1LS4yMy0uNDUtLjY1LS40NS0uNjV6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMm0yOS45MiUyMDIzLjcxJTIwMy44OS0xLjI5cy4wMy4wMS4wMy4wOWMtLjA4JTIwMS41LS45MSUyMDE2LjcyLS45MiUyMDE2Ljk5cy0uMTIuMzctLjEyLjM3LS44Mi44OS0uODguOTMtLjE3JTIwMC0uMTclMjAwJTIwLjA4LS4wNC4wOS0uMjMtLjM4LTcuNDgtLjM4LTcuNDhjLS4wMS0uMzctLjA3LS41Mi0uMjMtLjUyLS4xNSUyMDAtLjE5LjE1LS4xOS41MyUyMDAlMjAwLS42MyUyMDguNDUtLjY0JTIwOC44OHMtLjIuNTYtLjIuNTYtLjgyLjgzLS44OS44OWMtLjA4LjA2LS4xOS4wMS0uMTkuMDFzLjE0LS4wMS4xNC0uM2MtLjAxLS4yLjY2LTE5LjQzLjY2LTE5LjQzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0yOS45MiUyMDIzLjcxJTIwMy44OS0xLjI5cy4wMy4wMS4wMy4wOWMtLjA4JTIwMS41LS45MSUyMDE2LjcyLS45MiUyMDE2Ljk5cy0uMTIuMzctLjEyLjM3LS44Mi44OS0uODguOTMtLjE3JTIwMC0uMTclMjAwJTIwLjA4LS4wNC4wOS0uMjMtLjM4LTcuNDgtLjM4LTcuNDhjLS4wMS0uMzctLjA3LS41Mi0uMjMtLjUyLS4xNSUyMDAtLjE5LjE1LS4xOS41MyUyMDAlMjAwLS42MyUyMDguNDUtLjY0JTIwOC44OHMtLjIuNTYtLjIuNTYtLjgyLjgzLS44OS44OWMtLjA4LjA2LS4xOS4wMS0uMTkuMDFzLjE0LS4wMS4xNC0uM2MtLjAxLS4yLjY2LTE5LjQzLjY2LTE5LjQzJTIyJTIwb3BhY2l0eSUzRCUyMi4zJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zMy44MiUyMDIyLjQyLTMuOSUyMDEuMjktMy44OC0xLjA3JTIwNC4zNi0xLjIlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMTklMjIlMjBjeSUzRCUyMjIyLjQlMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjEzJTIyJTIwcnklM0QlMjIuNTIlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI1LjkyJTIwMjUuNjZjLjA0LTEuNjcuNzItMi40NiUyMDEuNDQtMi4yMi44MS4yNyUyMDEuMjklMjAxLjAzJTIwMS4yMSUyMDIuNCUyMDAlMjAwLS4wNyUyMDMuNzMtLjAzJTIwNC40OC4wNS45My4yNyUyMDMuNC4yNyUyMDMuNC4wNS41Ny4zMyUyMDEuNDQtLjY4JTIwMS42My0uMjIuMDQtLjM5LS4wMS0uNTMtLjEybC0uMjgtLjQzcy0uOTctMi43Mi0xLjIxLTQuOTFjMC0uMDItLjItMy43OC0uMTktNC4yMyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjguMTYlMjAzMy41M2MuMDIuNTcuMjclMjAxLjQ1LS43NiUyMDEuNTktMS4wMi4xNC0xLjA1LS44Ni0xLjExLTEuMTQlMjAwJTIwMC0uNTItMi4yMS0uNjYtNC40MSUyMDAlMjAwLS4wMy0zLjc4LjAxLTQuMjMuMTItMS42Ni45MS0yLjExJTIwMS42NC0xLjg3LjUzLjE3JTIwMS4wOC42NS45NCUyMDIuMDElMjAwJTIwMC0uMTglMjAzLjg5LS4xOCUyMDQuNjQuMDIuOTMuMTIlMjAzLjQxLjEyJTIwMy40MSUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NCUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45NiUyMDIxLjc0YzEuMTklMjAwJTIwMi4zLS4yNyUyMDMuMjQtLjc1LS44Ny43Ny0yLjAxJTIwMS4yNC0zLjI2JTIwMS4yNC0xLjI4JTIwMC0yLjQ0LS40OS0zLjMyLTEuMjguOTcuNSUyMDIuMTEuNzklMjAzLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMzIuNzYlMjAyMi43Ny0uOTQlMjA0LjY2LS43Ni00LjElMjIlMjBvcGFjaXR5JTNEJTIyLjglMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIyTTI4LjE0JTIwMzMuNTNjLjA0JTIwMS4xNi0uNTQuOTUtLjgyLjgxLS45OS0uNTItMS4wOS01LjEyLTEuMi02LjU2LS4wNy0uOTctLjE2LTMuNTguNzgtNC4yNi41NS0uMjElMjAxLjA0LjQyJTIwMS4wOS41MS4xOS4zMS4yOS43Ny4yMiUyMDEuNDUlMjAwJTIwMC0uMTglMjAzLjg5LS4xOCUyMDQuNjQuMDEuOTMuMTElMjAzLjQxLjExJTIwMy40MSUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTQ3LjQ4JTIwNDUuMTVxLS4wMTUlMjAwJTIwMCUyMDBsLTE1LjktLjA4Yy0uMjIlMjAwLS40Mi0uMTUtLjQ4LS4zN3MuMDMtLjQ1LjIzLS41NmMuNjYtLjM5JTIwMi40OC0xLjU2JTIwMi45Ni0yLjI1LjU3LS44LjcxLTIuMjQuNzEtMi4yNi4wMS0uMTYuMS0uMy4yNC0uMzhzLjMtLjA5LjQ1LS4wM2wxMS45OCUyMDQuOTdjLjIyLjA5LjM1LjMzLjMuNTYtLjA1LjI0LS4yNi40LS40OS40bS0xNC4yMy0xLjA2JTIwMTEuNjguMDYtOS4wNC0zLjc1Yy0uMTEuNTktLjM0JTIwMS40NS0uNzklMjAyLjA4LS4zNS41LTEuMTMlMjAxLjExLTEuODUlMjAxLjYxJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zMS41OCUyMDQ0LjU4czIuNDYtMS40NyUyMDMuMTItMi4zOWMuNjYtLjkzLjgtMi41LjgtMi41bDExLjk4JTIwNC45N3olMjIvJTNFJTNDL3N2ZyUzRSIsCiJsaWx5cGFkX3BlZ21hbl82LnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2MCUyMDYwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTMwLjMzJTIwMjcuMTljLTExLjI0JTIwMC0yMC4zNSUyMDYuNDYtMjAuMzUlMjAxNC40MnM5LjExJTIwMTQuNDIlMjAyMC4zNSUyMDE0LjQyJTIwMjAuMzUtNi40NiUyMDIwLjM1LTE0LjQyYzAtNy45Ny05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMjcuNDMlMjA0NC40N2MtLjI2JTIwMC0uNTItLjA5LS43LS4yOC0uMTItLjEyLS43NS0uNzYtLjk5LTEuMS0uMzctLjUxLS40MS0xLjA3LS40MS0xLjNsLS4zOC02LjQ3Yy0uMi0uMy0uMy0uNjgtLjQxLTEuMDlsLS4wNS0uMTdjLS4wNC0uMTgtLjUtMi42Ny0uNjQtNC45LS4wNC0uOC0uMTgtMy40Mi0uMTQtMy45LjA2LS43NS4yNC0xLjM3LjU0LTEuODRsLS4wMy0uNTJjLS4wMy0uMS0uMDQtLjItLjAzLS4zMS4wMy0uNDUuMzMtLjg0Ljc4LS45M2wuODEtLjE3Yy0xLjE1LTEuMTMtMS44LTIuNjYtMS44LTQuMjYlMjAwLTEuNjEuNjItMy4xMiUyMDEuNzUtNC4yNSUyMDEuMTItMS4xMyUyMDIuNjItMS43NSUyMDQuMi0xLjc1aC4wMWMxLjU5JTIwMCUyMDMuMDkuNjIlMjA0LjIxJTIwMS43NXMxLjc0JTIwMi42NCUyMDEuNzUlMjA0LjI0YzAlMjAxLjUyLS41OSUyMDIuOTgtMS42MyUyMDQuMDlsLjM3LjExYy4wNi4wMS4xMS4wMi4xNi4wNC40Ny4xNS43Ny41OS43NCUyMDEuMDlxLjM0NS42Ni4zMyUyMDEuNjJjLjA0LjkzLjE2JTIwMy41OS4yMSUyMDQuMTMuMDguODYuMTclMjAzLjAxLjE3JTIwMy4xdi4wMmMwJTIwLjA4LjAxLjE3LjAxLjI1LjAzLjUxLjElMjAxLjgzLTEuNDQlMjAyLjE2LS4yJTIwMy4yNC0uMzYlMjA1Ljk0LS4zNyUyMDYuMDctLjA0LjYxLS4zOSUyMDEuMDItLjclMjAxLjE5LTEuMzIuOTEtMS40MS45NS0xLjUyLjk5LS4wMS4wMS0uMDMuMDEtLjA1LjAyLS4xOS4wOS0uMzkuMTEtLjYxLjA2LS4wOC0uMDEtLjE0LS4wMi0uMTctLjAyLS4xNi0uMDMtLjMxLS4xLS40My0uMTktLjExLS4wNC0uMjMtLjA5LS4zNC0uMTMtLjAxLjEtLjAyLjE1LS4wMi4xOC0uMDIuNzItLjQ1JTIwMS4xOS0uODQlMjAxLjQtLjIxLjEyLTEuNDguODYtMS42LjkyLS4xODAwMDAwMDAwMDAwMi4xLS4zOTAwMDAwMDAwMDAwMi4xNC0uNjEwMDAwMDAwMDAwMDIuMTRoLS4wMWMtLjAyOTk5OTk5OTk5OTk5LjAxLS4wOC4wMS0uMTE5OTk5OTk5OTk5OTkuMDFtLS44My0xMC4zYy4xOS4xNy4zMS40Mi4zMy42OGwuNCUyMDYuODd2LjEyYzAlMjAuMDEuMDEuMDcuMDMuMDkuMDQ5OTk5OTk5OTk5OTkuMDcuMTc5OTk5OTk5OTk5OTkuMjIuMzI5OTk5OTk5OTk5OTkuMzguMzItLjE4LjcyLS40Mi45NS0uNTUuMDMtLjMzLjE2LTEuMzMuNjYtNC45NS4wNy0uNS40OS0uODYuOTktLjg2aC4wM2MuNTEuMDEuOTMuNDEuOTcuOTFsLjI4JTIwMy4xOGMuMDUuMDIuMS4wNC4xNC4wNS4yMi0uMTUuNTUtLjM4Ljc2LS41Mi4wNS0uODIuMjItMy42OS40Mi02Ljg2LjAxOTk5OTk5OTk5OTk5LS4zNy4yNDk5OTk5OTk5OTk5OS0uNy41OTk5OTk5OTk5OTk5OS0uODUuMjUtLjExLjUzLS4xMS43OC0uMDF2LS4wNTAwMDAwMDAwMDAwMWMtLjAxLS4xLS4wMS0uMjEtLjAxLS4zMS0uMDEtLjE3LS4wOS0yLjItLjE2LTIuOTgtLjA3LS43LS4yMS00LjE1LS4yMi00LjI5LjAxLS41NS0uMS0uNzItLjEzLS43NmwtLjAyLS4wMmMtLjAyLS4wMS0uMDMtLjAyLS4wNS0uMDItLjEzLS4wNi0uMjQtLjE1LS4zMi0uMjVsLTEuNTYtLjQ1Yy0uNC0uMTEtLjY4LS40Ni0uNzItLjg3cy4xOC0uOC41NS0uOTljLjItLjEuMzMtLjE3LjQ0LS4yNC4wNy0uMDQuMTMtLjEuMi0uMTVsLjE0LS4xYy4wMzAwMDAwMDAwMDAwMS0uMDMuMDUwMDAwMDAwMDAwMDEtLjA2LjA4MDAwMDAwMDAwMDAxLS4wOC45LS43NyUyMDEuNDEtMS44NyUyMDEuNDEtMy4wMyUyMDAtMS4wNy0uNDEtMi4wNy0xLjE2LTIuODMtLjc1LS43NS0xLjc0LTEuMTYtMi43OS0xLjE2cy0yLjAzOTk5OTk5OTk5OTk4LjQxLTIuNzg5OTk5OTk5OTk5OTglMjAxLjE2Yy0uNzUuNzYtMS4xNyUyMDEuNzYtMS4xNyUyMDIuODQlMjAwJTIwMS4xNS40OSUyMDIuMjElMjAxLjM2JTIwMi45OS4wMy4wMi4wNS4wNS4wOC4wN2wuMTE5OTk5OTk5OTk5OTkuMDlzLjA4LjA2LjA4LjA3Yy4wNi4wNS4xMS4wOS4xNy4xMy4xLjA3LjIxLjEyLjMyLjE3bC4yLjFjLjA0LjAyLjA5LjA1LjEzLjA3LjA1LjAyLjEuMDMuMTUuMDVsLjE0LjA0Yy40My4xNC43MS41NS42OSUyMDEuMDEtLjAzLjQ1MDAwMDAwMDAwMDAxLS4zNS44MzAwMDAwMDAwMDAwMS0uOC45MjAwMDAwMDAwMDAwMWwtMi4zNy40OTAwMDAwMDAwMDAwMi4wMS4yNGMuMDIuMjgtLjA4LjU1LS4yOC43NS0uMDUuMDYtLjIzLjI5LS4yOC45OS0uMDIuMjcuMDYlMjAyLjA2LjE0JTIwMy42My4xMyUyMDIuMS41OSUyMDQuNTUuNTklMjA0LjU3bC4wMy4xYy4wNS4xMy4xLjMxLjEzLjQybTYuMDklMjA1LjI0Yy0uMDMuMDItLjA1LjAzLS4wNy4wNS4wNS0uMDMuMDctLjA1LjA3LS4wNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjUuMjElMjAyMi42NCUyMDQuNDYtLjgzczIuNDIuMzUlMjAyLjQzLjM1bC40NiUyMDE3Ljk4LS43OCUyMDEuMDNzLTEuMDItLjM4LTEuMS0uNDEtLjA3LS4xOC0uMDctLjE4bC0uNjYtNy41NC0xLjQ2JTIwOS43NC0xLjA0LjdjMCUyMDJlLTE0LS42OC0uNjg5OTk5OTk5OTk5OTgtLjg5LS45Nzk5OTk5OTk5OTk5OC0uMjQtLjMzLS4yMi0uNzMtLjIyLS43M3olMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI0Ljc1JTIwMjUuNjZjLjA0LTEuNjcuNzItMi40NiUyMDEuNDQtMi4yMi44MS4yNyUyMDEuMjklMjAxLjAzJTIwMS4yMSUyMDIuNCUyMDAlMjAwLS4wNyUyMDMuNzMtLjAzJTIwNC40OC4wNS45My4yNyUyMDMuNC4yNyUyMDMuNC4wNS41Ny4zMyUyMDEuNDQtLjY4JTIwMS42My0uMjIuMDQtLjM5LS4wMS0uNTMtLjEybC0uMjgtLjQzcy0uOTctMi43Mi0xLjIxLTQuOTFjLjAxLS4wMi0uMi0zLjc4LS4xOS00LjIzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0yNy4yMyUyMDMzLjUzYy4wMi41Ny4yNyUyMDEuMjMtLjc1JTIwMS40MS0uNzQuMTMtLjc1LS4xMS0xLjAyLTEuMTMlMjAwJTIwMC0uNDctMi41LS42MS00LjcxJTIwMCUyMDAtLjE4LTMuMzEtLjE0LTMuNzYuMTItMS42Ni45MS0yLjExJTIwMS42NC0xLjg3LjUzLjE3JTIwMS4wOC42NS45NCUyMDIuMDElMjAwJTIwMC0uMTglMjAzLjg5LS4xOCUyMDQuNjQuMDEuOTMuMTIlMjAzLjQxLjEyJTIwMy40MSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NmNTcyZSUyMiUyMGQlM0QlMjJNMjcuMjMlMjAzMy41M2MuMDQlMjAxLjE2LS41OCUyMDEtLjgyLjgxLS42My0uNS0uNzEtNS4yMS0uODItNi42NC0uMDctLjk3LjA5LTMuNC40LTQuMTcuNTUtLjIxJTIwMS4wNC40MiUyMDEuMDkuNTEuMTkuMzEuMjkuNzcuMjIlMjAxLjQ1JTIwMCUyMDAtLjE4JTIwMy44OS0uMTglMjA0LjY0JTIwMCUyMC45Mi4xMSUyMDMuNC4xMSUyMDMuNCUyMiUyMG9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIyTTM1LjI1JTIwMzEuNDVjLjAxLjY3LjIlMjAxLjI3LS43MyUyMDEuNDMtLjkxLjE1LS44Ni0uNjEtLjkzLS44NyUyMDAlMjAwLS40NS0xLjkyLS43NS0zLjkxJTIwMCUyMDAtLjMzLTMuNDQtLjMzLTMuODUtLjAyLTEuNTIuNjYtMS45OSUyMDEuMzUtMS44NC41LjExJTIwMS4wMy41JTIwMS4wMSUyMDEuNzUlMjAwJTIwMCUyMC4xNSUyMDMuNTYuMjElMjA0LjI0LjA4Ljg0LjE3JTIwMy4wNS4xNyUyMDMuMDUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTM1LjI1JTIwMzEuNDVjLjAxLjY3LjIlMjAxLjI3LS43MyUyMDEuNDMtLjkxLjE1LS44Ni0uNjEtLjkzLS44NyUyMDAlMjAwLS40NS0xLjkyLS43NS0zLjkxJTIwMCUyMDAtLjMzLTMuNDQtLjMzLTMuODUtLjAyLTEuNTIuNjYtMS45OSUyMDEuMzUtMS44NC41LjExJTIwMS4wMy41JTIwMS4wMSUyMDEuNzUlMjAwJTIwMCUyMC4xNSUyMDMuNTYuMjElMjA0LjI0LjA4Ljg0LjE3JTIwMy4wNS4xNyUyMDMuMDUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjBkJTNEJTIybTI4LjMzJTIwMjMuNzElMjA2LjE3LTEuMjlzLjA1LjAxLjA0LjA5Yy0uMTMlMjAxLjUtMS4wNyUyMDE3LjA4LTEuMDklMjAxNy4zNC0uMDIuMjctLjE5LjM3LS4xOS4zN3MtMS4zLjg5LTEuMzkuOTMtLjI3JTIwMC0uMjclMjAwJTIwLjEzLS4wNC4xNC0uMjNjLjAyLS4xOS0uMy03LjQ2LS4zLTcuNDYtLjAxLS4zNy0uMTEtLjUyLS4zNi0uNTJzLS4yOS4xNS0uMzEuNTNjMCUyMDAtMS4xNCUyMDguMDUtMS4xNSUyMDguNDhzLS4zMS41Ni0uMzEuNTYtMS40Ny44Ni0xLjU5LjkyLS4zLjAxLS4zLjAxLjIyLS4wMS4yMi0uM2MwLS4yLjY5LTE5LjQzLjY5LTE5LjQzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0yOC4zMyUyMDIzLjcxJTIwNi4xNy0xLjI5cy4wNS4wMS4wNC4wOWMtLjEzJTIwMS41LTEuMDclMjAxNy4wOC0xLjA5JTIwMTcuMzQtLjAyLjI3LS4xOS4zNy0uMTkuMzdzLTEuMy44OS0xLjM5LjkzLS4yNyUyMDAtLjI3JTIwMCUyMC4xMy0uMDQuMTQtLjIzYy4wMi0uMTktLjMtNy40Ni0uMy03LjQ2LS4wMS0uMzctLjExLS41Mi0uMzYtLjUycy0uMjkuMTUtLjMxLjUzYzAlMjAwLTEuMTQlMjA4LjA1LTEuMTUlMjA4LjQ4cy0uMzEuNTYtLjMxLjU2LTEuNDcuODYtMS41OS45Mi0uMy4wMS0uMy4wMS4yMi0uMDEuMjItLjNjMC0uMi42OS0xOS40My42OS0xOS40MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMzMuMTUlMjAyMi42Ny0yLjAyJTIwNC45OC0xLjIzLTQuMjYlMjIlMjBvcGFjaXR5JTNEJTIyLjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIybTMzLjE1JTIwMjIuNjctMi4wMiUyMDQuOTgtMS4yMy00LjI2JTIyJTIwb3BhY2l0eSUzRCUyMi44JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zNC40NiUyMDIyLjQyLTYuMTQlMjAxLjI5LTMuMTUtMS4wNyUyMDUuODgtMS4yJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjMwJTIyJTIwY3klM0QlMjIyMi40JTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMiUyMHJ4JTNEJTIyMi4yNSUyMiUyMHJ5JTNEJTIyLjQzJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk0JTIyJTIwY3klM0QlMjIxNy4yMyUyMiUyMGZpbGwlM0QlMjIlMjNmYWJkMmMlMjIlMjByeCUzRCUyMjQuOTYlMjIlMjByeSUzRCUyMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI5Ljk2JTIwMjEuNzRjMS4xOSUyMDAlMjAyLjMtLjI3JTIwMy4yNC0uNzUtLjg3Ljc3LTIuMDElMjAxLjI0LTMuMjYlMjAxLjI0LTEuMjglMjAwLTIuNDQtLjQ5LTMuMzItMS4yOC45Ni41JTIwMi4xMS43OSUyMDMuMzQuNzklMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk00NC44MyUyMDQ4Ljc0Yy0uMDQlMjAwLS4wOCUyMDAtLjExLS4wMWwtMTQuNDUtMy40Yy0uMjItLjA1LS4zOC0uMjUtLjM5LS40OCUyMDAtLjIzLjE1LS40My4zNy0uNDkuODYtLjI0JTIwMy4yMy0uOTclMjAzLjg3LTEuNTEuNjItLjUzJTIwMS4xMS0xLjYzJTIwMS4yNS0yLjAxLjA1LS4xNS4xOC0uMjcuMzMtLjMxLjE2LS4wNC4zMi0uMDEuNDUuMDlsOC45OSUyMDcuMjQwMDAwMDAwMDAwMDNjLjE4LjE1LjI0LjQuMTQuNjEtLjA5LjE2LS4yNy4yNy0uNDUuMjdtLTEyLjU2LTMuOTclMjAxMC41MyUyMDIuNDgtNi43Ni01LjQ0Yy0uMjYuNTQtLjclMjAxLjMxLTEuMjglMjAxLjgtLjQ5LjQtMS41NS44My0yLjQ5JTIwMS4xNiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMzAuMzclMjA0NC44M3MzLjE5LS44OCUyMDQuMDYtMS42MSUyMDEuNC0yLjIyJTIwMS40LTIuMjJsOC45OSUyMDcuMjR6JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fNy5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjE5Yy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40Mi05LjExLTE0LjQyLTIwLjM1LTE0LjQybS0uMTIlMjAyNy44NGMtMTAuNzUlMjAwLTE5LjQ3LTYuMDYtMTkuNDctMTMuNTNzOC43Mi0xMy41MyUyMDE5LjQ3LTEzLjUzJTIwMTkuNDclMjA2LjA2JTIwMTkuNDclMjAxMy41My04LjcyJTIwMTMuNTMtMTkuNDclMjAxMy41MyUyMiUyMG9wYWNpdHklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIzMC4yMSUyMiUyMGN5JTNEJTIyNDEuNSUyMiUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNNDAuMTQlMjA1Mi45NmMtLjA5JTIwMC0uMTgtLjAyLS4yNi0uMDdsLTEyLjI3LTcuMzNjLS4xOS0uMTItLjI5LS4zNS0uMjItLjU2LjA2LS4yMi4yNi0uMzcuNDgtLjM3JTIwMS4xNi4wMSUyMDQuMjQtLjA1JTIwNS4wNi0uMzIuNjgtLjIyJTIwMS43NS0xLjM1JTIwMi4yNi0yLjAyLjExLS4xNC4yOC0uMjEuNDUtLjE5cy4zMi4xMy40LjI5bDQuNTUlMjA5Ljg2Yy4wOS4yLjA0LjQzLS4xMi41OC0uMDkuMDktLjIxLjEzLS4zMy4xM20tMTAuNS03LjM2JTIwOS4zNiUyMDUuNi0zLjU0LTcuNjhjLS41NS42MS0xLjQyJTIwMS40Ny0yLjIyJTIwMS43My0uNjcuMjMtMi4zLjMyLTMuNi4zNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzNmM2YzZiUyMiUyMGQlM0QlMjJNMjcuODclMjA0NS4xM3M0LjE0LjAxJTIwNS4yMi0uMzVjMS4wOC0uMzUlMjAyLjUtMi4xOCUyMDIuNS0yLjE4bDQuNTUlMjA5Ljg2eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMjYuNTMlMjA0My43MDAwMDAwMDAwMDAwMWMtLjE4JTIwMC0uMzctLjAzLS41OC0uMDhsLS41LS4xNC0uMTEtLjNjLS42NS0uNjEtMS4wMS0xLjE4LTEuMDYtMS42OS0uMDItLjItLjA0LS40Mi0uMDEtLjY1bC0uMTctNS4xM2MtLjA1LjAxLS4wOS4wMi0uMTMuMDItLjUzLjA4MDAwMDAwMDAwMDAyLTEuMjItLjEyOTk5OTk5OTk5OTk4LTEuNTgtLjI1OTk5OTk5OTk5OTk4LS42Mi0uMTU5OTk5OTk5OTk5OTktMS4wMi0uODQ5OTk5OTk5OTk5OTktLjktMS42Mzk5OTk5OTk5OTk5OS4wOC0uNjguNDUtMy4zNi43NS01LjIzLjQtMi40Ny44OC00LjUuOS00LjU4QzIzLjIlMjAyMy42MyUyMDIzLjM5JTIwMjMuMTklMjAyMy42NyUyMDIyLjgybC0uMDEtLjQ2Yy0uMDEtLjMzLjExLS42NS4zNC0uOXMuNTQtLjM4Ljg4LS4zOWwuNDctLjAxYy0uODYtMS4wNS0xLjM3LTIuMzktMS4zNy0zLjgyJTIwMC0xLjYuNjItMy4xMSUyMDEuNzQtNC4yNHMyLjYyLTEuNzYlMjA0LjIyLTEuNzZoLjAxYzEuNTklMjAwJTIwMy4wOS42MiUyMDQuMjElMjAxLjc1czEuNzQlMjAyLjY0JTIwMS43NSUyMDQuMjRjMCUyMDEuNjItLjYzJTIwMy4xMi0xLjcxJTIwNC4yMi4zNy4yMS44LjQ2JTIwMS4xNS42OCUyMDEuMDguNjclMjAxLjI4JTIwMS45NSUyMDEuMzElMjAyLjMxLjIxJTIwMS4xLjc0JTIwMy45Ljg4JTIwNC40OC4yMy45My42NiUyMDMuMjUuNjglMjAzLjM1LjAyLjEyLjA0LjIxLjA2LjMuMTEuNTQuNCUyMDEuOTYtMS4zJTIwMi41MS0uNTQuMTctMS4wMy4xNS0xLjQ1LS4wNi0uMzUtLjE4LS41Ny0uNDYtLjcxLS43Mi0uMjIlMjAzLjU3LS40MSUyMDYuNjItLjQyJTIwNi43NC0uMDQuNjEtLjM5JTIwMS4wMS0uNyUyMDEuMTlsLS4yOS4xMXMtMS43MS4zNS0yLjA4LjQ0bC0uMDQuMDMtLjI1LjA0Yy0uMTQuMDItLjQyLjAzLS43LS4wOS0uMS0uMDQtLjE3LS4wNy0uNTEtLjM2LS4xOC40MS0uNDkuNjgtLjc3LjhsLS4yMi4wNjk5OTk5OTk5OTk5OWMtLjcyLjEyOTk5OTk5OTk5OTk5LTEuNTkuMzA5OTk5OTk5OTk5OTktMS44Mi4zNjk5OTk5OTk5OTk5OS0uMTQuMDI5OTk5OTk5OTk5OTktLjMxLjA1OTk5OTk5OTk5OTk5LS40OS4wNTk5OTk5OTk5OTk5OW0tLjMyLTEuOTJzLS4wMSUyMDAtLjAxLjAxYzAlMjAwJTIwLjAxJTIwMCUyMC4wMS0uMDFtLjA3LS41NDAwMDAwMDAwMDAwMWMuMDYuMS4xOS4yNS4zNS40MS4yNS0uMDYuNjYtLjE0JTIwMS4zNi0uMjguMDctLjcyLjMtMi42NC42Ny01LjcxbDEuOTkuMS4xMSUyMDQuNzljLjA5LjA4LjE4LjE2LjI3LjIzLjI1LS4wNi42Ny0uMTUlMjAxLjQtLjMuMDktMS41MS40Mi02Ljc5LjY5LTExLjIxbDEuOTUtLjIzYy4zOSUyMDEuMjYuODMlMjAyLjQ4JTIwMS4xJTIwMy4yMS0uMTMtLjY5MDAwMDAwMDAwMDAxLS40Mi0yLjIwMDAwMDAwMDAwMDAxLS41OC0yLjg2MDAwMDAwMDAwMDAxLS4xOS0uNzUwMDAwMDAwMDAwMDEtLjg5LTQuNDgwMDAwMDAwMDAwMDEtLjkyLTQuNjMwMDAwMDAwMDAwMDFsLS4wMi0uMTNjLS4wMS0uMTktLjEyLS42NC0uMzctLjgtLjU1LS4zNC0xLjMtLjc3LTEuNjgtLjk4bC0uODEuMDItLjQtMS45M2MxLjUyLS42MSUyMDIuNS0yLjA3JTIwMi41LTMuNzElMjAwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43NC0xLjE2LTIuNzktMS4xNi0xLjA2JTIwMC0yLjA1LjQyLTIuOCUyMDEuMTctLjc1Ljc2LTEuMTYlMjAxLjc2LTEuMTYlMjAyLjgzJTIwMCUyMDEuNzIlMjAxLjA5JTIwMy4yNCUyMDIuNzElMjAzLjc5bC0uMjklMjAxLjk1LTIuNzEuMDguMDIuNTctLjM1LjMxYy0uMTIuMTA5OTk5OTk5OTk5OTktLjIzLjMwOTk5OTk5OTk5OTk5LS4yNS40Njk5OTk5OTk5OTk5OS0uMDIuMS0uNSUyMDIuMTItLjg5JTIwNC41MS0uMzElMjAxLjkxOTk5OTk5OTk5OTk5LS41OSUyMDMuOTY5OTk5OTk5OTk5OTktLjclMjA0Ljc5OTk5OTk5OTk5OTk5LjAyJTIwMCUyMC4wMy4wMS4wNC4wMWwuNDQtMS45MiUyMDEuOTcuMTg5OTk5OTk5OTk5OTl6bS0zLjI5LTcuNjhjLjAzLjAxLjA1LjAyLjA4LjAzLS4wMy0uMDEtLjA1LS4wMi0uMDgtLjAzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zNy4yNCUyMDMyLjQ0Yy4xMi43My40MiUyMDEuMzUtLjU3JTIwMS42Ny0uOTcuMzEtMS4wMy0uNTMtMS4xNS0uNzklMjAwJTIwMC0uNzktMi4wMi0xLjQ0LTQuMTQlMjAwJTIwMC0uOS0zLjY5LS45OC00LjE0LS4yNi0xLjY2LjQxLTIuMjclMjAxLjE3LTIuMjEuNTYuMDQlMjAxLjIuMzglMjAxLjM4JTIwMS43NSUyMDJlLTE0JTIwMCUyMC43MjAwMDAwMDAwMDAwMiUyMDMuODUuOTEwMDAwMDAwMDAwMDIlMjA0LjU4LjIzLjkuNjglMjAzLjI4LjY4JTIwMy4yOCUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NmNTcyZSUyMiUyMGQlM0QlMjJtMzQuMjMlMjAyOS44Ny4yLTcuMTEuNDEuMzFzLS4wNiUyMDUuNC4xMSUyMDYuNjQuNDUlMjAzLjEzLjQ1JTIwMy4xM3olMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMm0yNC42NiUyMDIyLjA4LjYxJTIwMTguODVzLS4wNC4wMy4wMS40N2MuMDUuNDguOTUlMjAxLjI0Ljk1JTIwMS4yNGwxLjg2LS41NyUyMDEuMjYtMTAuMDUuMjMuNzcuMTklMjA4LjIyLjk1LjgxLjE4LjAyJTIwMS40NC0xLjAzLjUxLTE4LjAzLTIuMDUtLjMyeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMzQuNTElMjAyMi43NC04LjI3LjI2Yy0uNDklMjAxNS4xOC4wNiUyMDE1Ljg2LS4wNCUyMDE5LjMyLS4wMS4yOS4wMi4zMi4wMi4zMnMuMTguMDUuMzMuMDVjLjA1JTIwMCUyMC4wOS0uMDEuMTItLjAyLjEzLS4wNyUyMDItLjQxJTIwMi0uNDFzLjMtLjE0LjMxLS41N2MuMDItLjQzLjg4LTcuNDguODgtNy40OC4wNS0uNjUuMTQtLjc1LjM5LS43Ni4yNS4wMS4zNS4xNi4zNi41MyUyMDAlMjAwJTIwLjMlMjA3LjQuMjglMjA3LjU5LS4wMi4yLS4xNC4yMy0uMTQuMjNIMzFjLjA5LS4wNCUyMDIuMjEtLjQ4JTIwMi4yMS0uNDhzLjE4LS4xLjItLjM3eiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMzQuNTElMjAyMi43NC04LjI3LjI2Yy0uNDklMjAxNS4xOC4wNiUyMDE1Ljg2LS4wNCUyMDE5LjMyLS4wMS4yOS4wMi4zMi4wMi4zMnMuMTguMDUuMzMuMDVjLjA1JTIwMCUyMC4wOS0uMDEuMTItLjAyLjEzLS4wNyUyMDItLjQxJTIwMi0uNDFzLjMtLjE0LjMxLS41N2MuMDItLjQzLjg4LTcuNDguODgtNy40OC4wNS0uNjUuMTQtLjc1LjM5LS43Ni4yNS4wMS4zNS4xNi4zNi41MyUyMDAlMjAwJTIwLjMlMjA3LjQuMjglMjA3LjU5LS4wMi4yLS4xNC4yMy0uMTQuMjNIMzFjLjA5LS4wNCUyMDIuMjEtLjQ4JTIwMi4yMS0uNDhzLjE4LS4xLjItLjM3eiUyMiUyMG9wYWNpdHklM0QlMjIuMSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMzIuODclMjAyMS44NC04LjIxLjI0JTIwMS41Ni45NSUyMDguMjUtLjI5eiUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45OCUyMiUyMGN5JTNEJTIyMjIuMzclMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyJTIwcnglM0QlMjIyLjI1JTIyJTIwcnklM0QlMjIuMyUyMi8lM0UlM0NlbGxpcHNlJTIwY3glM0QlMjIyOS45NCUyMiUyMGN5JTNEJTIyMTcuMjMlMjIlMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwcnglM0QlMjI0Ljk2JTIyJTIwcnklM0QlMjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0zMy4yOSUyMDIyLjc3LTMuMDklMjA1LjM2LTIuNzctNS4zJTIyJTIwb3BhY2l0eSUzRCUyMi44JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMk0yOS45NyUyMDIxLjc0YzEuMTklMjAwJTIwMi4zLS4yNyUyMDMuMjQtLjc1LS44Ny43Ny0yLjAxJTIwMS4yNC0zLjI2JTIwMS4yNC0xLjI4JTIwMC0yLjQ0LS40OS0zLjMyLTEuMjguOTYuNSUyMDIuMTEuNzklMjAzLjM0Ljc5JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjUuOTElMjAyNi4wNmMtLjElMjAxLjU5LS45MiUyMDUuOTctLjkyJTIwNS45N2wtLjU0JTIwMi4zM2MtLjA4LjI0LS4yNy4zMy0uNjIuMzhzLTEuMDktLjIxLTEuMDktLjIxYy0uMjMtLjA2LS4yOS0uMy0uMjUtLjU1JTIwMCUyMDAlMjAuMzUtMi43Mi43NS01LjIzLjQtMi40Ni44OS00LjUxLjg5LTQuNTEuMS0uNjEuNTktMS4yOSUyMDEuMTctMS4zNCUyMDAlMjAwJTIwLjY5JTIwMCUyMC43MSUyMDEuMDYuMDIlMjAxLjEyLS4xJTIwMi4xLS4xJTIwMi4xJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMk0yNS40OSUyMDIyLjk1Yy4yLjA4LjUuMzIuNTIlMjAxLjAxLjAzJTIwMS4xMi0uMSUyMDIuMS0uMSUyMDIuMS0uMDklMjAxLjM2LS43JTIwNC43My0uODclMjA1LjdsLS4wMS4wNWMtLjAxJTIwMCUyMC41Ny01LjQ5LjQ2LTguODYlMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fOC5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0zMC4zMyUyMDI3LjE5Yy0xMS4yNCUyMDAtMjAuMzUlMjA2LjQ2LTIwLjM1JTIwMTQuNDJzOS4xMSUyMDE0LjQyJTIwMjAuMzUlMjAxNC40MiUyMDIwLjM1LTYuNDYlMjAyMC4zNS0xNC40MmMwLTcuOTctOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwb3BhY2l0eSUzRCUyMi4xJTIyJTIwcnglM0QlMjIxOS40NyUyMiUyMHJ5JTNEJTIyMTMuNTMlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTMwLjc5JTIwNTQuOGMtLjE4JTIwMC0uMzUtLjEtLjQzLS4yNWwtNS44My0xMC4yNGMtLjEtLjE3LS4wOC0uMzguMDMtLjU0LjEyLS4xNi4zMS0uMjMuNTEtLjE5JTIwMS4xNi4yNSUyMDQuMzcuODklMjA1LjI2Ljg5Ljk4JTIwMCUyMDMuNTItLjczJTIwNC40Mi0xLjAxLjE4LS4wNS4zOCUyMDAlMjAuNTIuMTRzLjE3LjM0LjEuNTJsLTQuMTA5OTk5OTk5OTk5OTglMjAxMC4zN2MtLjA3LjE4LS4yNC4zLS40My4zMXptLTQuODQtMTAuMDMlMjA0Ljc2JTIwOC4zNyUyMDMuMzQtOC40NGMtMS4xLjMxLTIuODQuNzYtMy43My43Ni0uODElMjAwLTMuMDMtLjQyLTQuMzctLjY5JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0yNC45NiUyMDQ0LjA2czQuMjkuOSUyMDUuNDMuOWMxLjE2JTIwMCUyMDQuNS0xLjAzJTIwNC41LTEuMDNMMzAuNzglMjA1NC4zeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMzQuMjUlMjAyMy43OGgtOC41MWMtLjQyJTIwMC0uOC0uMjYtLjk0LS42NnMtLjAyLS44NC4zLTEuMTFsLjY0LS41M2MtMS4xMi0xLjEyLTEuNzctMi42NS0xLjc3LTQuMjUlMjAwLTMuMyUyMDIuNjktNS45OSUyMDUuOTgtNS45OSUyMDEuNiUyMDAlMjAzLjEuNjMlMjA0LjIzJTIwMS43NnMxLjc1JTIwMi42NCUyMDEuNzUlMjA0LjI0YzAlMjAxLjQ1LS41MyUyMDIuODMtMS40OSUyMDMuOTMtLjAzLjA1LS4wNy4xLS4xMS4xNGwtLjEzLjEzLS4wMy4wMy42OC41MmMuMzQuMjYuNDguNzEuMzQlMjAxLjEyLS4xMy40LS41MS42Ny0uOTQuNjdtLTQuNzYtMmguOTMwMDAwMDAwMDAwMDFjLjA4LS4zMy4zMy0uNi42OC0uNzEuMDgtLjAzLjE3LS4wNi4yNS0uMWwuMTItLjA1Yy4yNS0uMTEuNDUtLjIxLjYzLS4zNGwuMTEtLjA3Yy4xNC0uMS4yOC0uMjIuNDItLjM1LjAxLS4wMS4wOC0uMDcuMDktLjA4bC4wNS0uMDVjLjAyLS4wMi4wNC0uMDQuMDUtLjA2QzMzLjUzJTIwMTkuMjIlMjAzMy45MiUyMDE4LjI1JTIwMzMuOTIlMjAxNy4yM2MwLTEuMDctLjQxLTIuMDctMS4xNi0yLjgzLS43NS0uNzUtMS43NS0xLjE3LTIuODEtMS4xNy0yLjE5JTIwMC0zLjk4JTIwMS43OS0zLjk4JTIwMy45OSUyMDAlMjAxLjMuNjQlMjAyLjUyJTIwMS43MSUyMDMuMjcuMDUuMDMuMDkuMDcuMTMuMTEuMy4xOS42NC4zNSUyMDElMjAuNDYuMzUuMTIuNi4zOS42OC43MiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMzMuOTglMjA0My41OTAwMDAwMDAwMDAwMWgtMy4wNGMtLjQ1JTIwMC0uODQtLjMtLjk2LS43Mi0uMTIuNDItLjUxLjcyLS45Ni43MmgtM2MtLjU1JTIwMC0uOTktLjQ0LTEtLjk5bC0uMTMtOS4xOC0uMzguOTdjLS4zLjcxLTEuMDQlMjAxLjA4LTEuNzguODlsLTEuMDItLjMzYy0uNzQtLjI3LTEuMTMtMS4wMy0uOTQtMS43OC4wMS0uMDQuMDItLjA3LjAzLS4xLjAyLS4wOCUyMDIuNTYtOS40NiUyMDIuNTYtOS40Ni4yMy0uOTMlMjAxLjA0LTEuNjYlMjAxLjk2LTEuNzkuMDgtLjAyLjE3LS4wMy4yNi0uMDNoOC44NGMuMDclMjAwJTIwLjE0LjAxLjIxLjAyLjk2LjElMjAxLjguODMlMjAyLjA0JTIwMS43OSUyMDIuMDglMjA4LjA4JTIwMi40JTIwOS4zMiUyMDIuNDYlMjA5LjUzLjIuNzgtLjE0JTIwMS41LS44MyUyMDEuNzVsLTEuMDguMzVjLS44LjIxLTEuNTUtLjE2LTEuODQtLjg1bC0uMjgtLjczLS4xMyUyMDguOTZjMCUyMC41NC0uNDUuOTgtLjk5Ljk4bS0yLjExLTJoMS4xMmwuMTktMTMuMjJjLjAxLS40OC4zNS0uODguODItLjk3LjQ2LS4wOS45My4xNyUyMDEuMTEuNjJsLjA5LjIzJTIwMS44NiUyMDQuOTJoLjAxYy0uNDgtMS44OC0yLjM0LTkuMDktMi4zNC05LjA5LS4wNC0uMTU5OTk5OTk5OTk5OTktLjIxLS4yODk5OTk5OTk5OTk5OS0uMzMtLjI4OTk5OTk5OTk5OTk5LS4wMyUyMDAtLjA2JTIwMC0uMDgtLjAxSDI1LjdjLS4wMyUyMDAtLjA3LjAxLS4xLjAxLS4wOSUyMDAtLjI2LjEzLS4zMS4zMi0xLjYxJTIwNS45Mi0yLjIyJTIwOC4xOS0yLjQ2JTIwOS4wOGwyLjA2LTUuMThjLjE4LS40NC42NC0uNzElMjAxLjExLS42MS40Ny4wOS44MS40OS44Mi45N0wyNyUyMDQxLjU5MDAwMDAwMDAwMDAyaDEuMDhsLjQ4LTYuOTJjLjA3LS43OS42NS0xLjM0JTIwMS40My0xLjM0LjY1JTIwMCUyMDEuMzMuNDIlMjAxLjQlMjAxLjM0em0tOS4xNy03LjkzYzAtLjAxLjAxLS4wMi4wMS0uMDMlMjAwJTIwLjAxLS4wMS4wMi0uMDEuMDNtMTQuNDgtLjA1LjA0LS4wMXptLjA1LS4wMS45My0uMjN6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0yNS43NCUyMDIyLjc4LjktLjc1aDYuNjJsLjk5Ljc1JTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk1JTIyJTIwY3klM0QlMjIyMi4zNyUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBvcGFjaXR5JTNEJTIyLjUlMjIlMjByeCUzRCUyMjIuMjUlMjIlMjByeSUzRCUyMi4zJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmRiZjJkJTIyJTIwZCUzRCUyMk0zOC4xNSUyMDMzLjM2YzAtLjAxLTIuNDYtOS41My0yLjQ2LTkuNTMtLjE1LS42LS43Mi0xLjA1LTEuMzEtMS4wNUgyNS42Yy0uNTklMjAwLTEuMTMuNDktMS4yOCUyMDEuMDglMjAwJTIwMC0yLjU5JTIwOS41NC0yLjU5JTIwOS41NS0uMDYuMjQuMDQuNDkuMjkuNThsLjk0LjMxYy4yNS4wNi41MS0uMDUuNjEtLjI5bDIuMjQtNS42NS4yJTIwMTQuMjFoM2wuNTUtNy44NWMuMDItLjIxLjEzLS40MS40NC0uNDFzLjM4LjIuMzkuNDFsLjU0JTIwNy44NWgzLjA0bC4yLTE0LjIxJTIwMi4xMiUyMDUuNjFjLjEuMjMuMzYuMzUuNjEuMjlsMS4wNC0uMzRjLjI0LS4wNy4yNy0uMzIuMjEtLjU2JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwZCUzRCUyMk0yNi42OCUyMDIyLjc4JTIwMzAlMjAyOC40NmwzLjMyLTUuNjglMjIlMjBvcGFjaXR5JTNEJTIyLjYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIybTM0LjE3JTIwMjguMzguMDgtNS42aC4xN2wuNDglMjA1LjQ0LjQ1JTIwMy4xM20tOS41NC0yLjk3LS4wOC01LjU5aC0uMTdzLS4zMSUyMDQuMi0uNDglMjA1LjQzYy0uMTclMjAxLjI0LS40NSUyMDMuMTMtLjQ1JTIwMy4xM3olMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjI5Ljk1JTIyJTIwY3klM0QlMjIxNy4yMyUyMiUyMGZpbGwlM0QlMjIlMjNmZGJmMmQlMjIlMjByeCUzRCUyMjQuOTglMjIlMjByeSUzRCUyMjUlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTMwLjM1JTIwMjEuNzRjLTEuMTguMTEtMi4zMS0uMDYtMy4zLS40NC45NC42OCUyMDIuMTIlMjAxLjA0JTIwMy4zNi45MiUyMDEuMjctLjEyJTIwMi4zOC0uNzElMjAzLjE5LTEuNTktLjkxLjYtMi4wMyUyMDEtMy4yNSUyMDEuMTElMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQy9zdmclM0UiLAoibGlseXBhZF9wZWdtYW5fOS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA2MCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzMTExJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMzAuMzMlMjAyNy4xOWMtMTEuMjQlMjAwLTIwLjM1JTIwNi40Ni0yMC4zNSUyMDE0LjQyczkuMTElMjAxNC40MiUyMDIwLjM1JTIwMTQuNDIlMjAyMC4zNS02LjQ2JTIwMjAuMzUtMTQuNDItOS4xMS0xNC40Mi0yMC4zNS0xNC40Mm0tLjEyJTIwMjcuODRjLTEwLjc1JTIwMC0xOS40Ny02LjA2LTE5LjQ3LTEzLjUzczguNzItMTMuNTMlMjAxOS40Ny0xMy41MyUyMDE5LjQ3JTIwNi4wNiUyMDE5LjQ3JTIwMTMuNTMtOC43MiUyMDEzLjUzLTE5LjQ3JTIwMTMuNTMlMjIlMjBvcGFjaXR5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMzAuMjElMjIlMjBjeSUzRCUyMjQxLjUlMjIlMjBvcGFjaXR5JTNEJTIyLjElMjIlMjByeCUzRCUyMjE5LjQ3JTIyJTIwcnklM0QlMjIxMy41MyUyMi8lM0UlM0MvZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk0yMC4yOSUyMDUyLjk2Yy0uMTIlMjAwLS4yNC0uMDQtLjMzLS4xMy0uMTYtLjE1LS4yMS0uMzgtLjEyLS41OGw0LjU1LTkuODZjLjA3LS4xNi4yMi0uMjcuNC0uMjkuMTctLjAyLjM1LjA1LjQ1LjE5LjM3LjQ4JTIwMS40OSUyMDEuNzYlMjAyLjI2JTIwMi4wMi44Mi4yNyUyMDMuOTIuMzIlMjA1LjA2LjMyLjIyJTIwMCUyMC40Mi4xNS40OC4zN3MtLjAzLjQ1LS4yMi41NmwtMTIuMjclMjA3LjMzYy0uMDguMDUtLjE3LjA3LS4yNi4wN200LjY4LTkuNDQtMy41NCUyMDcuNjglMjA5LjM2LTUuNmMtMS4zLS4wNC0yLjkzLS4xMi0zLjYtLjM1LS44LS4yNS0xLjY4LTEuMTItMi4yMi0xLjczJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzM2YzZjNmJTIyJTIwZCUzRCUyMk0zMi41NiUyMDQ1LjEzcy00LjE0LjAxLTUuMjItLjM1Yy0xLjA4LS4zNS0yLjUtMi4xOC0yLjUtMi4xOGwtNC41NSUyMDkuODZ6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMk0zMy4zNyUyMDQzLjcwMDAwMDAwMDAwMDAxYy0uMTglMjAwLS4zNS0uMDMtLjQ5LS4wOS0uMjItLjA2LTEuMS0uMjMtMS44Mi0uMzdsLS4yMi0uMDdjLS4yOC0uMTItLjU5LS4zOS0uNzctLjgtLjM0LjI5LS40MS4zMS0uNTEuMzYtLjI4LjEyLS41NC4xMS0uNjkuMDlsLS4zMy0uMDdjLS40My0uMS0yLjA1LS40My0yLjA1LS40M2wtLjMtLjExYy0uMzEtLjE4LS42NS0uNTgtLjctMS4xNy0uMDEtLjEyLS4xOS0zLjE4LS40Mi02Ljc1LS4xNC4yNy0uMzYuNTQtLjcuNzItLjQyLjIyLS45MS4yNC0xLjQ1LjA2LTEuNjktLjU0LTEuNDEtMS45Ny0xLjMtMi41LjAyLS4wOS4wNC0uMTguMDUtLjI3LjAyLS4xMy40Ni0yLjQ1LjY4LTMuMzcuMTQtLjU4LjY4LTMuMzguODktNC40OC4wMy0uMzYuMjMtMS42NCUyMDEuMzEtMi4zMS4zNS0uMjIuNzgtLjQ3JTIwMS4xNS0uNjgtMS4wOC0xLjEtMS43Mi0yLjYtMS43MS00LjIyJTIwMC0xLjYuNjItMy4xMSUyMDEuNzUtNC4yNCUyMDEuMTItMS4xMyUyMDIuNjItMS43NSUyMDQuMjEtMS43NWguMDFjMS41OSUyMDAlMjAzLjA5LjYzJTIwNC4yMSUyMDEuNzZzMS43NCUyMDIuNjQlMjAxLjc0JTIwNC4yNGMwJTIwMS40My0uNSUyMDIuNzctMS4zNyUyMDMuODJsLjQ3LjAxYy4zMy4wMTAwMDAwMDAwMDAwMi42NS4xNTAwMDAwMDAwMDAwMi44OC4zOTAwMDAwMDAwMDAwMnMuMzUuNTYuMzQuODlsLS4wMi40NmMuMjguMzcuNDguODIuNTUlMjAxLjI3LjAxLjAxLjQ5JTIwMi4wNC44OSUyMDQuNTEuMyUyMDEuODcuNjclMjA0LjU0Ljc1JTIwNS4yMy4xMy44LS4yNyUyMDEuNDgtLjk4JTIwMS42Ny0uMjguMTEtLjk4LjMxLTEuNS4yMy0uMDMlMjAwLS4wOC0uMDEtLjEzLS4wMmwtLjE3JTIwNS4xMjk5OTk5OTk5OTk5N2MuMDMuMjIuMDEuNDUtLjAxLjY1LS4wNS41Mi0uNDIlMjAxLjA5LTEuMDklMjAxLjcybC0uMTMuMjktLjQ1LjEyYy0uMi4wNS0uNC4wOC0uNTcuMDhtLjMxLTEuOTJzLjAxJTIwMCUyMC4wMS4wMWMwLS4wMS0uMDEtLjAxLS4wMS0uMDFtLTEuNzgtLjQxYy43MS4xMyUyMDEuMTEuMjIlMjAxLjM2LjI4LjE3LS4xNy4yOS0uMzIuMzYtLjQxbC4zLTkuMjQlMjAxLjk2OTk5OTk5OTk5OTk5LS4xOS40Mzk5OTk5OTk5OTk5OSUyMDEuOTJjLjAxJTIwMCUyMC4wMy0uMDEuMDQtLjAxLS4xMS0uODMtLjM4LTIuODctLjctNC44MS0uMzkwMDAwMDAwMDAwMDItMi40LS44NzAwMDAwMDAwMDAwMi00LjQyLS44NzAwMDAwMDAwMDAwMi00LjQ0LS4wNC0uMjQtLjE1LS40NC0uMjctLjU1bC0uMzUtLjMxLjAyLS41Ny0yLjcxMDAwMDAwMDAwMDAyLS4wOC0uMjkwMDAwMDAwMDAwMDEtMS45NWMxLjYxOTk5OTk5OTk5OTk5LS41NCUyMDIuNzA5OTk5OTk5OTk5OTktMi4wNyUyMDIuNzA5OTk5OTk5OTk5OTktMy43OS0xZS0xNC0xLjA3LS40MTAwMDAwMDAwMDAwMS0yLjA3LTEuMTYwMDAwMDAwMDAwMDEtMi44My0uNzUtLjc1LTEuNzQtMS4xNy0yLjc5LTEuMTctMS4wNiUyMDAtMi4wNS40MS0yLjglMjAxLjE3LS43NS43NS0xLjE2JTIwMS43Ni0xLjE2JTIwMi44MyUyMDAlMjAxLjY1Ljk4JTIwMy4xMSUyMDIuNSUyMDMuNzJsLS40JTIwMS45My0uODItLjAyYy0uMzguMjEtMS4xMi42NC0xLjY4Ljk4LS4yNS4xNS0uMzYuNjEtLjM3LjhsLS4wMi4xMmMtLjAzLjE2LS43MyUyMDMuODgtLjkyJTIwNC42NC0uMTYuNjYtLjQ1JTIwMi4xNi0uNTglMjAyLjg2LjI3LS43Mi43MS0xLjk1JTIwMS4xLTMuMjJsMS45NS4yM2MuMjglMjA0LjQyLjYlMjA5LjY4LjY5JTIwMTEuMjEuNzMuMTUwMDAwMDAwMDAwMDElMjAxLjE1LjI0MDAwMDAwMDAwMDAxJTIwMS40LjMwMDAwMDAwMDAwMDAxLjA5LS4wNy4xOC0uMTYuMjctLjIzbC4xMS00Ljc5JTIwMS45ODk5OTk5OTk5OTk5OS0uMWMuNDc5OTk5OTk5OTk5OTklMjAzLjkuNjI5OTk5OTk5OTk5OTklMjA1LjIzLjY3OTk5OTk5OTk5OTk5JTIwNS43Mm00LjkyLTcuNzhjLS4wMiUyMDAtLjA0LjAxLS4wNi4wMi4wMi0uMDEuMDQtLjAyLjA2LS4wMiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJNMjIuNjYlMjAzMi40NGMtLjEyLjczLS40MiUyMDEuMzUuNTclMjAxLjY3Ljk3LjMxJTIwMS4wMy0uNTMlMjAxLjE1LS43OSUyMDAlMjAwJTIwLjc5LTIuMDIlMjAxLjQ0LTQuMTQlMjAwJTIwMCUyMC45LTMuNjkuOTgtNC4xNC4yNi0xLjY2LS40MS0yLjI3LTEuMTctMi4yMS0uNTYuMDQtMS4yLjM4LTEuMzglMjAxLjc1JTIwMCUyMDAtLjcyJTIwMy44NS0uOTElMjA0LjU4LS4yMy45LS42OCUyMDMuMjgtLjY4JTIwMy4yOCUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NmNTcyZSUyMiUyMGQlM0QlMjJtMjUuNjclMjAyOS44Ny0uMi03LjExLS40MS4zMXMuMDYlMjA1LjQtLjExJTIwNi42NC0uNDUlMjAzLjEzLS40NSUyMDMuMTN6JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBkJTNEJTIyTTI3LjAzJTIwMjIuMDdoOC4ydjIwLjU2aC04LjJ6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZTU4YTJjJTIyJTIwZCUzRCUyMm0zNS4yMyUyMDIyLjA3LTYuMTYuMzctMi4wNC4zMi41MSUyMDE4LjAzJTIwMS40MyUyMDEuMDMuMTktLjAyLjk0LS44MS4xOS04LjIyLjI0LS43NyUyMDEuMjUlMjAxMC4wNCUyMDEuODcuNTdzLjktLjc3Ljk1LTEuMjRjLjA0LS40MyUyMDAtLjQ3JTIwMC0uNDd6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMGQlM0QlMjJNMjUuMzklMjAyMi43NGg4LjMxVjQyLjcwMDAwMDAwMDAwMDAxaC04LjMxeiUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMGQlM0QlMjJtMjUuMzklMjAyMi43NCUyMDEuMSUyMDE4LjIyYy4wMi4yOC4yLjM4LjIuMzhzMi4xMS40MyUyMDIuMi40N2guMjhzLS4xMy0uMDQtLjE0LS4yMmMtLjAyLS4xOS4yNy03LjYuMjctNy42LjAyLS4zNy4xMi0uNTIuMzYtLjUycy4zNS4xLjQuNzVjMCUyMDAlMjAuODUlMjA3LjA2Ljg3JTIwNy40OXMuMzEuNTYuMzEuNTYlMjAxLjg2LjM1JTIwMS45OS40MWMuMDMuMDIuMDguMDIuMTMuMDIuMTQlMjAwJTIwLjMyLS4wNS4zMi0uMDVzLjAzLS4wMy4wMi0uMzJjLS4xLTMuNDYuNDYtNC4xMy0uMDQtMTkuMzJ6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMGQlM0QlMjJNMjUuNDIlMjAyMS44NGg5LjgxdjEuMTloLTkuODF6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwZCUzRCUyMm0yNy4wMyUyMDIxLjg0LTEuNjEuOSUyMDguMjUuMjklMjAxLjU2LS45NnolMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuOTIlMjIlMjBjeSUzRCUyMjIyLjM3JTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMG9wYWNpdHklM0QlMjIuNSUyMiUyMHJ4JTNEJTIyMi4yNSUyMiUyMHJ5JTNEJTIyLjMlMjIvJTNFJTNDZWxsaXBzZSUyMGN4JTNEJTIyMjkuOTUlMjIlMjBjeSUzRCUyMjE3LjIzJTIyJTIwZmlsbCUzRCUyMiUyM2ZhYmQyYyUyMiUyMHJ4JTNEJTIyNC45NiUyMiUyMHJ5JTNEJTIyNSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2NlNTkyYyUyMiUyMGQlM0QlMjJtMjYuNjElMjAyMi43NyUyMDMuMDklMjA1LjM2JTIwMi43Ni01LjMlMjIlMjBvcGFjaXR5JTNEJTIyLjYlMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZTU5MmMlMjIlMjBkJTNEJTIyTTI5LjkzJTIwMjEuNzRjLTEuMTklMjAwLTIuMy0uMjctMy4yNC0uNzUuODcuNzclMjAyLjAxJTIwMS4yNCUyMDMuMjYlMjAxLjI0JTIwMS4yOCUyMDAlMjAyLjQ0LS40OSUyMDMuMzItMS4yOC0uOTYuNS0yLjExLjc5LTMuMzQuNzklMjIlMjBvcGFjaXR5JTNEJTIyLjI1JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmFiZDJjJTIyJTIwZCUzRCUyMk0zMy45OSUyMDI2LjA2Yy4xJTIwMS41OS45MiUyMDUuOTcuOTIlMjA1Ljk3bC41NCUyMDIuMzNjLjA4LjI0LjI3LjMzLjYyLjM4czEuMDktLjIxJTIwMS4wOS0uMjFjLjIzLS4wNi4yOS0uMy4yNS0uNTUlMjAwJTIwMC0uMzUtMi43Mi0uNzUtNS4yMy0uNC0yLjQ2LS44OS00LjUxLS44OS00LjUxLS4xLS42MS0uNTktMS4yOS0xLjE3LTEuMzQlMjAwJTIwMC0uNjklMjAwLS43MSUyMDEuMDYtLjAzJTIwMS4xMi4xJTIwMi4xLjElMjAyLjElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBkJTNEJTIyTTM0LjQxJTIwMjIuOTVjLS4yLjA4LS41LjMyLS41MiUyMDEuMDEtLjAzJTIwMS4xMi4xJTIwMi4xLjElMjAyLjEuMDklMjAxLjM2LjclMjA0LjczLjg3JTIwNS43bC4wMS4wNWMuMDElMjAwLS41Ny01LjQ5LS40Ni04Ljg2JTIyJTIwb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0Mvc3ZnJTNFIiwKIm1vdGlvbl90cmFja2luZ19vZmYuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDQwJTIwNDAlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2IzYjNiMyUyMiUyMGQlM0QlMjJNMjcuNDIlMjAwSDEyLjU4QzEwLjYxJTIwMCUyMDklMjAxLjYxJTIwOSUyMDMuNTh2MzIuODNDOSUyMDM4LjM5JTIwMTAuNjElMjA0MCUyMDEyLjU4JTIwNDBoMTQuODNjMS45NyUyMDAlMjAzLjU4LTEuNjElMjAzLjU4LTMuNThWMy41OEMzMSUyMDEuNjElMjAyOS4zOSUyMDAlMjAyNy40MiUyMDBNMjklMjAzMmMwJTIwLjU1LS40NSUyMDEtMSUyMDFIMTJjLS41NSUyMDAtMS0uNDUtMS0xVjhjMC0uNTUuNDUtMSUyMDEtMWgxNmMuNTUlMjAwJTIwMSUyMC40NSUyMDElMjAxeiUyMi8lM0UlM0Mvc3ZnJTNFIiwibW90aW9uX3RyYWNraW5nX29uLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA0MCUyMDQwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNiM2IzYjMlMjIlMjBkJTNEJTIyTTI3LjQyJTIwMEgxMi41OEMxMC42MSUyMDAlMjA5JTIwMS42MSUyMDklMjAzLjU4djMyLjgzQzklMjAzOC4zOSUyMDEwLjYxJTIwNDAlMjAxMi41OCUyMDQwaDE0LjgzYzEuOTclMjAwJTIwMy41OC0xLjYxJTIwMy41OC0zLjU4VjMuNThDMzElMjAxLjYxJTIwMjkuMzklMjAwJTIwMjcuNDIlMjAwTTI5JTIwMzJjMCUyMC41NS0uNDUlMjAxLTElMjAxSDEyYy0uNTUlMjAwLTEtLjQ1LTEtMVY4YzAtLjU1LjQ1LTElMjAxLTFoMTZjLjU1JTIwMCUyMDElMjAuNDUlMjAxJTIwMXpNNiUyMDEzLjUxdjEzbC02LTYuNDl6bTI4JTIwMHYxM2w2LTYuNDl6JTIyLyUzRSUzQy9zdmclM0UiLAoibW90aW9uX3RyYWNraW5nX3Blcm1pc3Npb25fZGVuaWVkLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA0MCUyMDQwJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM0ZTRlNGUlMjIlMjBkJTNEJTIyTTI3LjQyJTIwMEgxMi41OEMxMC42MSUyMDAlMjA5JTIwMS42MSUyMDklMjAzLjU4djMyLjgzQzklMjAzOC4zOSUyMDEwLjYxJTIwNDAlMjAxMi41OCUyMDQwaDE0LjgzYzEuOTclMjAwJTIwMy41OC0xLjYxJTIwMy41OC0zLjU4VjMuNThDMzElMjAxLjYxJTIwMjkuMzklMjAwJTIwMjcuNDIlMjAwTTI5JTIwMzJjMCUyMC41NS0uNDUlMjAxLTElMjAxSDEyYy0uNTUlMjAwLTEtLjQ1LTEtMVY4YzAtLjU1LjQ1LTElMjAxLTFoMTZjLjU1JTIwMCUyMDElMjAuNDUlMjAxJTIwMXolMjIvJTNFJTNDL3N2ZyUzRSIsInBlZ21hbl9kb2NrX2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAzOCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIybTIyJTIwMjYuNi0yLjktMTEuM2EyLjc4JTIwMi43OCUyMDAlMjAwMC0yLjQtMmwtLjctLjVhNi44MiUyMDYuODIlMjAwJTIwMDAyLjItNSUyMDYuOSUyMDYuOSUyMDAlMjAwMC0xMy44JTIwMCUyMDclMjA3JTIwMCUyMDAwMi4yJTIwNS4xbC0uNi41YTIuNTUlMjAyLjU1JTIwMCUyMDAwLTIuMyUyMDJzLTMlMjAxMS4xLTMlMjAxMS4ydi4xYTEuNTglMjAxLjU4JTIwMCUyMDAwMSUyMDEuOWwxLjIuNGExLjYzJTIwMS42MyUyMDAlMjAwMDEuOS0uOWwuOC0yJTIwLjIlMjAxMi44aDExLjNsLjItMTIuNi43JTIwMS44YTEuNTQlMjAxLjU0JTIwMCUyMDAwMS41JTIwMSUyMDEuMDklMjAxLjA5JTIwMCUyMDAwLjUtLjFsMS4zLS40YTEuODUlMjAxLjg1JTIwMCUyMDAwLjctMlptLTEuMi45LTEuMi40YS42MS42MSUyMDAlMjAwMS0uNy0uM0wxNi40JTIwMjFsLS4yJTIwMTYuOEg2LjhMNi42JTIwMjFsLTIuNyUyMDYuN2EuNTIuNTIlMjAwJTIwMDEtLjY2LjMxbC0xLjEtLjRhLjUyLjUyJTIwMCUyMDAxLS4zMS0uNjZsMy4xLTExLjNhMS42OSUyMDEuNjklMjAwJTIwMDExLjUtMS4zaC4ybDEtLjloMi4zYTUuOSUyMDUuOSUyMDAlMjAxMTMuMiUyMDBoMi4zbDEuMS45aC4yYTEuNzElMjAxLjcxJTIwMCUyMDAxMS42JTIwMS4ybDIuOSUyMDExLjNhLjg0Ljg0JTIwMCUyMDAxLS40LjdaJTIyJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGZpbGwtb3BhY2l0eSUzRCUyMi4yJTIyLyUzRSUyNnF1b3QlM0IlM0Mvc3ZnJTNFIiwKInBlZ21hbl9kb2NrX2hvdmVyLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA0MCUyMDUwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJtMzQtMzAuNC0yLjktMTEuM2EyLjc4JTIwMi43OCUyMDAlMjAwMC0yLjQtMmwtLjctLjVhNi44MiUyMDYuODIlMjAwJTIwMDAyLjItNSUyMDYuOSUyMDYuOSUyMDAlMjAwMC0xMy44JTIwMCUyMDclMjA3JTIwMCUyMDAwMi4yJTIwNS4xbC0uNi41YTIuNTUlMjAyLjU1JTIwMCUyMDAwLTIuMyUyMDJzLTMlMjAxMS4xLTMlMjAxMS4ydi4xYTEuNTglMjAxLjU4JTIwMCUyMDAwMSUyMDEuOWwxLjIuNGExLjYzJTIwMS42MyUyMDAlMjAwMDEuOS0uOWwuOC0yJTIwLjIlMjAxMi44aDExLjNsLjItMTIuNi43JTIwMS44YTEuNTQlMjAxLjU0JTIwMCUyMDAwMS41JTIwMSUyMDEuMDklMjAxLjA5JTIwMCUyMDAwLjUtLjFsMS4zLS40YTEuODUlMjAxLjg1JTIwMCUyMDAwLjctMlptLTEuMi45LTEuMi40YS42MS42MSUyMDAlMjAwMS0uNy0uM0wyOC40LTM2bC0uMiUyMDE2LjhoLTkuNEwxOC42LTM2bC0yLjclMjA2LjdhLjUyLjUyJTIwMCUyMDAxLS42Ni4zMWwtMS4xLS40YS41Mi41MiUyMDAlMjAwMS0uMzEtLjY2bDMuMS0xMS4zYTEuNjklMjAxLjY5JTIwMCUyMDAxMS41LTEuM2guMmwxLS45aDIuM2E1LjklMjA1LjklMjAwJTIwMTEzLjIlMjAwaDIuM2wxLjEuOWguMmExLjcxJTIwMS43MSUyMDAlMjAwMTEuNiUyMDEuMmwyLjklMjAxMS4zYS44NC44NCUyMDAlMjAwMS0uNC43Wk0zNCUyMDI5LjZsLTIuOS0xMS4zYTIuNzglMjAyLjc4JTIwMCUyMDAwLTIuNC0ybC0uNy0uNWE2LjgyJTIwNi44MiUyMDAlMjAwMDIuMi01JTIwNi45JTIwNi45JTIwMCUyMDAwLTEzLjglMjAwJTIwNyUyMDclMjAwJTIwMDAyLjIlMjA1LjFsLS42LjVhMi41NSUyMDIuNTUlMjAwJTIwMDAtMi4zJTIwMnMtMyUyMDExLjEtMyUyMDExLjJ2LjFhMS41OCUyMDEuNTglMjAwJTIwMDAxJTIwMS45bDEuMi40YTEuNjMlMjAxLjYzJTIwMCUyMDAwMS45LS45bC44LTIlMjAuMiUyMDEyLjhoMTEuM2wuMi0xMi42LjclMjAxLjhhMS41NCUyMDEuNTQlMjAwJTIwMDAxLjUlMjAxJTIwMS4wOSUyMDEuMDklMjAwJTIwMDAuNS0uMWwxLjMtLjRhMS44NSUyMDEuODUlMjAwJTIwMDAuNy0yWm0tMS4yLjktMS4yLjRhLjYxLjYxJTIwMCUyMDAxLS43LS4zTDI4LjQlMjAyNGwtLjIlMjAxNi44aC05LjRMMTguNiUyMDI0bC0yLjclMjA2LjdhLjUyLjUyJTIwMCUyMDAxLS42Ni4zMWwtMS4xLS40YS41Mi41MiUyMDAlMjAwMS0uMzEtLjY2bDMuMS0xMS4zYTEuNjklMjAxLjY5JTIwMCUyMDAxMS41LTEuM2guMmwxLS45aDIuM2E1LjklMjA1LjklMjAwJTIwMTEzLjIlMjAwaDIuM2wxLjEuOWguMmExLjcxJTIwMS43MSUyMDAlMjAwMTEuNiUyMDEuMmwyLjklMjAxMS4zYS44NC44NCUyMDAlMjAwMS0uNC43WiUyMiUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBmaWxsLW9wYWNpdHklM0QlMjIuMiUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMk0xNS40JTIwMzguOGgtNGExLjY0JTIwMS42NCUyMDAlMjAwMS0xLjQtMS4xbC0zLjEtOGEuOS45JTIwMCUyMDAxLS41LjFsLTEuNC4xYTEuNjIlMjAxLjYyJTIwMCUyMDAxLTEuNi0xLjRMMi4zJTIwMTUuNGwxLjYtMS4zYTYuODclMjA2Ljg3JTIwMCUyMDAxLTMtNC42QTcuMTQlMjA3LjE0JTIwMCUyMDAxMiUyMDQlMjA3LjYlMjA3LjYlMjAwJTIwMDE2LjcuOSUyMDcuMTQlMjA3LjE0JTIwMCUyMDAxMTIuMiUyMDJhNy4yOCUyMDcuMjglMjAwJTIwMDEyLjMlMjA5LjZsMi4xLS4xLjElMjAxYzAlMjAuMi4xLjUuMS44YTIuNDElMjAyLjQxJTIwMCUyMDAxMSUyMDFzMS45JTIwMy4yJTIwMi44JTIwNC45Yy43JTIwMS4yJTIwMi4xJTIwNC4yJTIwMi44JTIwNS45YTIuMSUyMDIuMSUyMDAlMjAwMS0uOCUyMDIuNmwtLjYuNGExLjYzJTIwMS42MyUyMDAlMjAwMS0xLjUuMmwtLjYtLjNhOC45MyUyMDguOTMlMjAwJTIwMDAuNSUyMDEuMyUyMDcuOTElMjA3LjkxJTIwMCUyMDAwMS44JTIwMi42bC42LjN2NC42bC00LjUtLjFhNy4zMiUyMDcuMzIlMjAwJTIwMDEtMi41LTEuNXptLTEwLTE5LjIlMjAzLjUlMjA5LjglMjAyLjklMjA3LjVoMS42VjM1bC0xLjktOS40JTIwMy4xJTIwNS40YTguMjQlMjA4LjI0JTIwMCUyMDAwMy44JTIwMy44aDIuMXYtMS40YTE0JTIwMTQlMjAwJTIwMDEtMi4yLTMuMSUyMDQ0LjU1JTIwNDQuNTUlMjAwJTIwMDEtMi4yLThMMTQuOCUyMDE2bDMuMiUyMDUuNmMuNiUyMDEuMSUyMDIuMSUyMDMuNiUyMDIuOCUyMDQuOWwuNi0uNGMtLjgtMS42LTIuMS00LjYtMi44LTUuOC0uOS0xLjctMi44LTQuOS0yLjgtNC45YS41NC41NCUyMDAlMjAwMC0uNC0uM2wtLjctLjEtLjEtLjdhNC4zMyUyMDQuMzMlMjAwJTIwMDAtLjEtLjVsLTUuMy4zJTIwMi4yLTEuOWE0LjMlMjA0LjMlMjAwJTIwMDAuOS0xJTIwNS4xNyUyMDUuMTclMjAwJTIwMDAuOC00JTIwNS42NyUyMDUuNjclMjAwJTIwMDAtMi4yLTMuNCUyMDUuMDklMjA1LjA5JTIwMCUyMDAwLTQtLjglMjA1LjY3JTIwNS42NyUyMDAlMjAwMC0zLjQlMjAyLjIlMjA1LjE3JTIwNS4xNyUyMDAlMjAwMC0uOCUyMDQlMjA1LjY3JTIwNS42NyUyMDAlMjAwMDIuMiUyMDMuNCUyMDMuMTMlMjAzLjEzJTIwMCUyMDAwMSUyMC41bDEuNi42LTMuMiUyMDIuNiUyMDElMjAxMS41aC40eiUyMiUyMGZpbGwlM0QlMjIlMjMzMzMlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtMy4zNSUyMDE1LjklMjAxLjElMjAxMi41YS4zOS4zOSUyMDAlMjAwMC4zNi40MmguMTRsMS40LS4xYS42Ni42NiUyMDAlMjAwMC41LS40bC0uMi0zLjgtMy4zLTguNlolMjIlMjBmaWxsJTNEJTIyJTIzZmRiZjJkJTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIybTUuMiUyMDI4LjglMjAxLjEtLjFhLjY2LjY2JTIwMCUyMDAwLjUtLjRsLS4yLTMuOC0xLjItMy4xWiUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmIlMjIlMjBmaWxsLW9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtMjEuNCUyMDM1LjcwMDAwMDAwMDAwMDAxLTMuOC0xLjItMi43LTcuOEwxMiUyMDE1LjVsMy40LTIuOWMuMiUyMDIuNCUyMDIuMiUyMDE0LjElMjAzLjclMjAxNy4xJTIwMCUyMDAlMjAxLjMlMjAyLjYlMjAyLjMlMjAzLjF6TTEzJTIwMjcuNmwtMi0uMyUyMDIuNSUyMDEwLjEuOS40di0yLjklMjIlMjBmaWxsJTNEJTIyJTIzZTU4OTJiJTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTE3LjglMjAyNS40Yy0uNC0xLjUtLjctMy4xLTEuMS00LjgtLjEtLjQtLjEtLjctLjItMS4xbC0xLjEtMi0xLjctMS42cy45JTIwNSUyMDIuNCUyMDcuMWExOS4xMiUyMDE5LjEyJTIwMCUyMDAwMS43JTIwMi40WiUyMiUyMHN0eWxlJTNEJTIyaXNvbGF0aW9uJTNBaXNvbGF0ZSUyMiUyMGZpbGwlM0QlMjIlMjNjZjU3MmUlMjIlMjBvcGFjaXR5JTNEJTIyLjYlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTQuNCUyMDM3LjhoLTNhLjQzLjQzJTIwMCUyMDAxLS40LS40bC0zLTcuOC0xLjctNC44LTMtOSUyMDguOS0uNHMyLjklMjAxMS4zJTIwNC4zJTIwMTQuNGMxLjklMjA0LjElMjAzLjElMjA0LjclMjA1JTIwNS44aC0zLjJzLTQuMS0xLjItNS45LTcuN2EuNTkuNTklMjAwJTIwMDAtLjYtLjQuNjIuNjIlMjAwJTIwMDAtLjMuN3MuNSUyMDIuNC45JTIwMy42YTM0Ljg3JTIwMzQuODclMjAwJTIwMDAyJTIwNiUyMiUyMGZpbGwlM0QlMjIlMjNmZGJmMmQlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtMTUuNCUyMDEyLjctMy4zJTIwMi45LTguOS40JTIwMy4zLTIuNyUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmIlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtOS4xJTIwMjEuMSUyMDEuNC02LjItNS45LjUlMjIlMjBzdHlsZSUzRCUyMmlzb2xhdGlvbiUzQWlzb2xhdGUlMjIlMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwb3BhY2l0eSUzRCUyMi42JTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTEyJTIwMTMuNWE0Ljc1JTIwNC43NSUyMDAlMjAwMS0yLjYlMjAxLjFjLTEuNS4zLTIuOS4yLTIuOSUyMDBzMS4xLS42JTIwMi43LTElMjIlMjBmaWxsJTNEJTIyJTIzYmIzZDE5JTIyLyUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyNy45MiUyMiUyMGN5JTNEJTIyOC4xOSUyMiUyMHIlM0QlMjI2LjMlMjIlMjBmaWxsJTNEJTIyJTIzZmRiZjJkJTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIyTTQuNyUyMDEzLjZhNi4yMSUyMDYuMjElMjAwJTIwMDA4LjQtMS45di0uMWE4Ljg5JTIwOC44OSUyMDAlMjAwMS04LjQlMjAyJTIyJTIwZmlsbCUzRCUyMiUyM2NlNTkyYiUyMiUyMGZpbGwtb3BhY2l0eSUzRCUyMi4yNSUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMm0yMS4yJTIwMjcuMi42LS40YTEuMDklMjAxLjA5JTIwMCUyMDAwLjQtMS4zYy0uNy0xLjUtMi4xLTQuNi0yLjgtNS44LS45LTEuNy0yLjgtNC45LTIuOC00LjlhMS42JTIwMS42JTIwMCUyMDAwLTIuMTctLjY1bC0uMjMuMTVhMS42OCUyMDEuNjglMjAwJTIwMDAtLjQlMjAyLjFzMi4zJTIwMy45JTIwMy4xJTIwNS4zYy42JTIwMSUyMDIuMSUyMDMuNyUyMDIuOSUyMDUuMWEuOTQuOTQlMjAwJTIwMDAxLjI0LjQ5eiUyMiUyMGZpbGwlM0QlMjIlMjNmZGJmMmQlMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTkuNCUyMDE5LjhjLS45LTEuNy0yLjgtNC45LTIuOC00LjlhMS42JTIwMS42JTIwMCUyMDAwLTIuMTctLjY1bC0uMjMuMTUtLjMuM2MxLjElMjAxLjUlMjAyLjklMjAzLjglMjAzLjklMjA1LjQlMjAxLjElMjAxLjglMjAyLjklMjA1JTIwMy44JTIwNi43bC4xLS4xYTEuMDklMjAxLjA5JTIwMCUyMDAwLjQtMS4zJTIwNTcuNjclMjA1Ny42NyUyMDAlMjAwMC0yLjctNS42WiUyMiUyMGZpbGwlM0QlMjIlMjNjZTU5MmIlMjIlMjBmaWxsLW9wYWNpdHklM0QlMjIuMjUlMjIvJTNFJTNDL3N2ZyUzRSIsCiJwZWdtYW5fZG9ja19ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIzJTIwMzglMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xNi42JTIwMzguMWgtNS41bC0uMi0yLjktLjIlMjAyLjlINS4yTDUlMjAyNS4zbC0uOCUyMDJhMS41MyUyMDEuNTMlMjAwJTIwMDEtMS45LjlsLTEuMi0uNGExLjU4JTIwMS41OCUyMDAlMjAwMS0xLTEuOXYtLjFjLjMtLjklMjAzLjEtMTEuMiUyMDMuMS0xMS4yYTIuNjYlMjAyLjY2JTIwMCUyMDAxMi4zLTJsLjYtLjVhNi45MyUyMDYuOTMlMjAwJTIwMDE0LjctMTIlMjA2LjglMjA2LjglMjAwJTIwMDE0LjklMjAyJTIwNyUyMDclMjAwJTIwMDEyJTIwNC45JTIwNi42NSUyMDYuNjUlMjAwJTIwMDEtMi4yJTIwNWwuNy41YTIuNzglMjAyLjc4JTIwMCUyMDAxMi40JTIwMnMyLjklMjAxMS4yJTIwMi45JTIwMTEuM2ExLjUzJTIwMS41MyUyMDAlMjAwMS0uOSUyMDEuOWwtMS4zLjRhMS42MyUyMDEuNjMlMjAwJTIwMDEtMS45LS45bC0uNy0xLjh6bS0zLjYtMmgxLjdsLjItMTUuOCUyMDEuOS0uMyUyMDIuNCUyMDYuMy4zLS4xYy0uMi0uOC0uOC0zLjItMi44LTEwLjlhLjYzLjYzJTIwMCUyMDAwLS42LS41aC0uNmwtMS4xLS45aC0xLjlsLS4zLTJhNC44MyUyMDQuODMlMjAwJTIwMDAzLjUtNC43QTQuNzglMjA0Ljc4JTIwMCUyMDAwMTElMjAyLjNoLS4yYTQuOSUyMDQuOSUyMDAlMjAwMC0xLjQlMjA5LjZsLS4zJTIwMkg3LjJsLTElMjAuOWgtLjZhLjc0Ljc0JTIwMCUyMDAwLS42LjVjLTIlMjA3LjUtMi43JTIwMTAtMyUyMDEwLjlsLjMuMUw0LjglMjAyMGwxLjkuMy4yJTIwMTUuOGgxLjZsLjYtOC40YTEuNTIlMjAxLjUyJTIwMCUyMDAxMS41LTEuNCUyMDEuNSUyMDEuNSUyMDAlMjAwMTEuNSUyMDEuNHptNi42LTkuNyUyMiUyMHN0eWxlJTNEJTIyaXNvbGF0aW9uJTNBaXNvbGF0ZSUyMiUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBvcGFjaXR5JTNEJTIyLjclMjIvJTNFJTNDcGF0aCUyMGQlM0QlMjJtNS45JTIwMTMuNiUyMDEuMS0uOWg3LjhsMS4yLjklMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyLyUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjEwLjklMjIlMjBjeSUzRCUyMjEzLjElMjIlMjByeCUzRCUyMjIuNyUyMiUyMHJ5JTNEJTIyLjMlMjIlMjBzdHlsZSUzRCUyMmlzb2xhdGlvbiUzQWlzb2xhdGUlMjIlMjBmaWxsJTNEJTIyJTIzY2U1OTJjJTIyJTIwb3BhY2l0eSUzRCUyMi41JTIyLyUzRSUzQ3BhdGglMjBkJTNEJTIybTIwLjYlMjAyNi4xLTIuOS0xMS4zYTEuNzElMjAxLjcxJTIwMCUyMDAwLTEuNi0xLjJINS43YTEuNjklMjAxLjY5JTIwMCUyMDAwLTEuNSUyMDEuM0wxLjElMjAyNi4yYS42MS42MSUyMDAlMjAwMC4zLjdsMS4xLjRhLjYxLjYxJTIwMCUyMDAwLjctLjNsMi43LTYuNy4yJTIwMTYuOGgzLjZsLjYtOS4zYS40Ny40NyUyMDAlMjAwMS40NC0uNWguMDZjLjQlMjAwJTIwLjQuMi41LjVsLjYlMjA5LjNoMy42bC4yLTE2LjglMjAyLjUlMjA2LjZhLjUyLjUyJTIwMCUyMDAwLjY2LjMxbDEuMi0uNDAwMDAwMDAwMDAwMDFhLjU3LjU3JTIwMCUyMDAwLjUtLjdaJTIyJTIwZmlsbCUzRCUyMiUyM2ZkYmYyZCUyMi8lM0UlM0NwYXRoJTIwZCUzRCUyMm03JTIwMTMuNiUyMDMuOSUyMDYuNyUyMDMuOS02LjclMjIlMjBzdHlsZSUzRCUyMmlzb2xhdGlvbiUzQWlzb2xhdGUlMjIlMjBmaWxsJTNEJTIyJTIzY2Y1NzJlJTIyJTIwb3BhY2l0eSUzRCUyMi42JTIyLyUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMTAuOSUyMiUyMGN5JTNEJTIyNyUyMiUyMHIlM0QlMjI1LjklMjIlMjBmaWxsJTNEJTIyJTIzZmRiZjJkJTIyLyUzRSUzQy9zdmclM0UiLAoicm90YXRlX3JpZ2h0X2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMGQlM0QlMjJNMCUyMDBoMjR2MjRIMHolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIybTEyLjA2JTIwOS4wNiUyMDQtNC00LTQtMS40MSUyMDEuNDElMjAxLjU5JTIwMS41OWgtLjE4Yy0yLjMlMjAwLTQuNi44OC02LjM1JTIwMi42NC0zLjUyJTIwMy41MS0zLjUyJTIwOS4yMSUyMDAlMjAxMi43MiUyMDEuNSUyMDEuNSUyMDMuNCUyMDIuMzYlMjA1LjM2JTIwMi41OHYtMi4wMmMtMS40NC0uMjEtMi44NC0uODYtMy45NS0xLjk3LTIuNzMtMi43My0yLjczLTcuMTclMjAwLTkuOSUyMDEuMzctMS4zNyUyMDMuMTYtMi4wNSUyMDQuOTUtMi4wNWguMTdsLTEuNTklMjAxLjU5em04Ljk0JTIwM2MtLjE5LTEuNzQtLjg4LTMuMzItMS45MS00LjYxbC0xLjQzJTIwMS40M2MuNjkuOTIlMjAxLjE1JTIwMiUyMDEuMzIlMjAzLjE4em0tNy45NCUyMDcuOTJWMjJjMS43NC0uMTklMjAzLjMyLS44OCUyMDQuNjEtMS45MWwtMS40My0xLjQzYy0uOTEuNjgtMiUyMDEuMTUtMy4xOCUyMDEuMzJtNC42LTIuNzQlMjAxLjQzJTIwMS40M2MxLjA0LTEuMjklMjAxLjcyLTIuODglMjAxLjkxLTQuNjFoLTIuMDJjLS4xNyUyMDEuMTgtLjY0JTIwMi4yNy0xLjMyJTIwMy4xOCUyMi8lM0UlM0Mvc3ZnJTNFIiwKInJvdGF0ZV9yaWdodF9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMGQlM0QlMjJNMCUyMDBoMjR2MjRIMHolMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMzMzMlMjIlMjBkJTNEJTIybTEyLjA2JTIwOS4wNiUyMDQtNC00LTQtMS40MSUyMDEuNDElMjAxLjU5JTIwMS41OWgtLjE4Yy0yLjMlMjAwLTQuNi44OC02LjM1JTIwMi42NC0zLjUyJTIwMy41MS0zLjUyJTIwOS4yMSUyMDAlMjAxMi43MiUyMDEuNSUyMDEuNSUyMDMuNCUyMDIuMzYlMjA1LjM2JTIwMi41OHYtMi4wMmMtMS40NC0uMjEtMi44NC0uODYtMy45NS0xLjk3LTIuNzMtMi43My0yLjczLTcuMTclMjAwLTkuOSUyMDEuMzctMS4zNyUyMDMuMTYtMi4wNSUyMDQuOTUtMi4wNWguMTdsLTEuNTklMjAxLjU5em04Ljk0JTIwM2MtLjE5LTEuNzQtLjg4LTMuMzItMS45MS00LjYxbC0xLjQzJTIwMS40M2MuNjkuOTIlMjAxLjE1JTIwMiUyMDEuMzIlMjAzLjE4em0tNy45NCUyMDcuOTJWMjJjMS43NC0uMTklMjAzLjMyLS44OCUyMDQuNjEtMS45MWwtMS40My0xLjQzYy0uOTEuNjgtMiUyMDEuMTUtMy4xOCUyMDEuMzJtNC42LTIuNzQlMjAxLjQzJTIwMS40M2MxLjA0LTEuMjklMjAxLjcyLTIuODglMjAxLjkxLTQuNjFoLTIuMDJjLS4xNyUyMDEuMTgtLjY0JTIwMi4yNy0xLjMyJTIwMy4xOCUyMi8lM0UlM0Mvc3ZnJTNFIiwKInJvdGF0ZV9yaWdodF9ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBkJTNEJTIyTTAlMjAwaDI0djI0SDB6JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwZCUzRCUyMm0xMi4wNiUyMDkuMDYlMjA0LTQtNC00LTEuNDElMjAxLjQxJTIwMS41OSUyMDEuNTloLS4xOGMtMi4zJTIwMC00LjYuODgtNi4zNSUyMDIuNjQtMy41MiUyMDMuNTEtMy41MiUyMDkuMjElMjAwJTIwMTIuNzIlMjAxLjUlMjAxLjUlMjAzLjQlMjAyLjM2JTIwNS4zNiUyMDIuNTh2LTIuMDJjLTEuNDQtLjIxLTIuODQtLjg2LTMuOTUtMS45Ny0yLjczLTIuNzMtMi43My03LjE3JTIwMC05LjklMjAxLjM3LTEuMzclMjAzLjE2LTIuMDUlMjA0Ljk1LTIuMDVoLjE3bC0xLjU5JTIwMS41OXptOC45NCUyMDNjLS4xOS0xLjc0LS44OC0zLjMyLTEuOTEtNC42MWwtMS40MyUyMDEuNDNjLjY5LjkyJTIwMS4xNSUyMDIlMjAxLjMyJTIwMy4xOHptLTcuOTQlMjA3LjkyVjIyYzEuNzQtLjE5JTIwMy4zMi0uODglMjA0LjYxLTEuOTFsLTEuNDMtMS40M2MtLjkxLjY4LTIlMjAxLjE1LTMuMTglMjAxLjMybTQuNi0yLjc0JTIwMS40MyUyMDEuNDNjMS4wNC0xLjI5JTIwMS43Mi0yLjg4JTIwMS45MS00LjYxaC0yLjAyYy0uMTclMjAxLjE4LS42NCUyMDIuMjctMS4zMiUyMDMuMTglMjIvJTNFJTNDL3N2ZyUzRSIsCiJ0aWx0XzBfYWN0aXZlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxOCUyMDE2JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMxMTElMjIlMjBkJTNEJTIyTTAlMjAxNmg4VjlIMHptMTAlMjAwaDhWOWgtOHpNMCUyMDdoOFYwSDB6bTEwLTd2N2g4VjB6JTIyLyUzRSUzQy9zdmclM0UiLCJ0aWx0XzBfaG92ZXIuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTYlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzMzMyUyMiUyMGQlM0QlMjJNMCUyMDE2aDhWOUgwem0xMCUyMDBoOFY5aC04ek0wJTIwN2g4VjBIMHptMTAtN3Y3aDhWMHolMjIvJTNFJTNDL3N2ZyUzRSIsInRpbHRfMF9ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTYlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMGQlM0QlMjJNMCUyMDE2aDhWOUgwem0xMCUyMDBoOFY5aC04ek0wJTIwN2g4VjBIMHptMTAtN3Y3aDhWMHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJ0aWx0XzQ1X2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjIlMjAxMyUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwZCUzRCUyMk0yLjc1JTIwNUgxMFYwSDQuNHpNMCUyMDEzaDEwVjdIMnptMjAtNmgtOHY2aDEwem0tMi40LTdIMTJ2NWg3LjI1eiUyMi8lM0UlM0Mvc3ZnJTNFIiwidGlsdF80NV9ob3Zlci5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjIlMjAxMyUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwZCUzRCUyMk0yLjc1JTIwNUgxMFYwSDQuNHpNMCUyMDEzaDEwVjdIMnptMjAtNmgtOHY2aDEwem0tMi40LTdIMTJ2NWg3LjI1eiUyMi8lM0UlM0Mvc3ZnJTNFIiwKInRpbHRfNDVfbm9ybWFsLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMiUyMDEzJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBkJTNEJTIyTTIuNzUlMjA1SDEwVjBINC40ek0wJTIwMTNoMTBWN0gyem0yMC02aC04djZoMTB6bS0yLjQtN0gxMnY1aDcuMjV6JTIyLyUzRSUzQy9zdmclM0UiLCJ6b29tX2luX2FjdGl2ZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyMzExMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ0MC00NDBIMjAwdi04MGgyNDB2LTI0MGg4MHYyNDBoMjQwdjgwSDUyMHYyNDBoLTgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiem9vbV9pbl9hY3RpdmVfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ0MC00NDBIMjAwdi04MGgyNDB2LTI0MGg4MHYyNDBoMjQwdjgwSDUyMHYyNDBoLTgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwKInpvb21faW5fZGlzYWJsZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyM2QxZDFkMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ0MC00NDBIMjAwdi04MGgyNDB2LTI0MGg4MHYyNDBoMjQwdjgwSDUyMHYyNDBoLTgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiem9vbV9pbl9kaXNhYmxlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjIlMjM0ZTRlNGUlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMC05NjAlMjA5NjAlMjA5NjAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk00NDAtNDQwSDIwMHYtODBoMjQwdi0yNDBoODB2MjQwaDI0MHY4MEg1MjB2MjQwaC04MHolMjIvJTNFJTNDL3N2ZyUzRSIsCiJ6b29tX2luX2hvdmVyLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAtOTYwJTIwOTYwJTIwOTYwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNDQwLTQ0MEgyMDB2LTgwaDI0MHYtMjQwaDgwdjI0MGgyNDB2ODBINTIwdjI0MGgtODB6JTIyLyUzRSUzQy9zdmclM0UiLCJ6b29tX2luX2hvdmVyX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjIlMjNlNmU2ZTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMC05NjAlMjA5NjAlMjA5NjAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk00NDAtNDQwSDIwMHYtODBoMjQwdi0yNDBoODB2MjQwaDI0MHY4MEg1MjB2MjQwaC04MHolMjIvJTNFJTNDL3N2ZyUzRSIsInpvb21faW5fbm9ybWFsLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAtOTYwJTIwOTYwJTIwOTYwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNDQwLTQ0MEgyMDB2LTgwaDI0MHYtMjQwaDgwdjI0MGgyNDB2ODBINTIwdjI0MGgtODB6JTIyLyUzRSUzQy9zdmclM0UiLAoiem9vbV9pbl9ub3JtYWxfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyM2IzYjNiMyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTQ0MC00NDBIMjAwdi04MGgyNDB2LTI0MGg4MHYyNDBoMjQwdjgwSDUyMHYyNDBoLTgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiem9vbV9vdXRfYWN0aXZlLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIyJTIzMTExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAtOTYwJTIwOTYwJTIwOTYwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMjAwLTQ0MHYtODBoNTYwdjgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwiem9vbV9vdXRfYWN0aXZlX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMC05NjAlMjA5NjAlMjA5NjAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0yMDAtNDQwdi04MGg1NjB2ODB6JTIyLyUzRSUzQy9zdmclM0UiLAoiem9vbV9vdXRfZGlzYWJsZS5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyM2QxZDFkMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTIwMC00NDB2LTgwaDU2MHY4MHolMjIvJTNFJTNDL3N2ZyUzRSIsInpvb21fb3V0X2Rpc2FibGVfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyMzRlNGU0ZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTIwMC00NDB2LTgwaDU2MHY4MHolMjIvJTNFJTNDL3N2ZyUzRSIsInpvb21fb3V0X2hvdmVyLnN2ZyI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjBmaWxsJTNEJTIyJTIzMzMzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAtOTYwJTIwOTYwJTIwOTYwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMjAwLTQ0MHYtODBoNTYwdjgweiUyMi8lM0UlM0Mvc3ZnJTNFIiwKInpvb21fb3V0X2hvdmVyX2Rhcmsuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjIlMjNlNmU2ZTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMC05NjAlMjA5NjAlMjA5NjAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0yMDAtNDQwdi04MGg1NjB2ODB6JTIyLyUzRSUzQy9zdmclM0UiLCJ6b29tX291dF9ub3JtYWwuc3ZnIjoiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMC05NjAlMjA5NjAlMjA5NjAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0yMDAtNDQwdi04MGg1NjB2ODB6JTIyLyUzRSUzQy9zdmclM0UiLCJ6b29tX291dF9ub3JtYWxfZGFyay5zdmciOiJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJTIyJTIwZmlsbCUzRCUyMiUyM2IzYjNiMyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwLTk2MCUyMDk2MCUyMDk2MCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTIwMC00NDB2LTgwaDU2MHY4MHolMjIvJTNFJTNDL3N2ZyUzRSJ9O18ueUVhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YTt0aGlzLnJoPXt9fWxvYWQoYSxiKXt2YXIgYz10aGlzLnJoLGQ7KGQ9dGhpcy5xaC5sb2FkKGEsZT0+e2lmKCFkfHxkIGluIGMpZGVsZXRlIGNbZF0sYihlKX0pKSYmKGNbZF09MSk7cmV0dXJuIGR9Y2FuY2VsKGEpe2RlbGV0ZSB0aGlzLnJoW2FdO3RoaXMucWguY2FuY2VsKGEpfX07Xy5tSD1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnVybD1hO3RoaXMuY3Jvc3NPcmlnaW49dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5jcm9zc09yaWdpbn0ke3RoaXMudXJsfWB9fTt2YXIgekVhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucWg9YX1sb2FkKGEsYil7dmFyIGM9dGhpcy5xaDthLnVybC5zdWJzdHIoMCw1KT09PSJkYXRhOiImJihhPW5ldyBfLm1IKGEudXJsKSk7cmV0dXJuIGMubG9hZChhLGQ9PntkfHxhLmNyb3NzT3JpZ2luPT09dm9pZCAwP2IoZCk6Yy5sb2FkKG5ldyBfLm1IKGEudXJsKSxiKX0pfWNhbmNlbChhKXt0aGlzLnFoLmNhbmNlbChhKX19O3ZhciBBRWE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5yaD1fLllBO3RoaXMucWg9YTt0aGlzLnBlbmRpbmc9e319bG9hZChhLGIpe3ZhciBjPW5ldyBJbWFnZSxkPWEudXJsO3RoaXMucGVuZGluZ1tkXT1jO2MuTmk9YjtjLm9ubG9hZD0oKT0+e3RoaXMub25sb2FkKGQsITApfTtjLm9uZXJyb3I9KCk9Pnt0aGlzLm9ubG9hZChkLCExKX07Yy50aW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dGhpcy5vbmxvYWQoZCwhMCl9LDEyRTQpO2EuY3Jvc3NPcmlnaW4hPT12b2lkIDAmJihjLmNyb3NzT3JpZ2luPWEuY3Jvc3NPcmlnaW4pO0tCYSh0aGlzLGMsZCk7cmV0dXJuIGR9Y2FuY2VsKGEpe3RoaXMuWm8oYSwhMCl9Wm8oYSxiKXt2YXIgYz10aGlzLnBlbmRpbmdbYV07YyYmKGRlbGV0ZSB0aGlzLnBlbmRpbmdbYV0sd2luZG93LmNsZWFyVGltZW91dChjLnRpbWVvdXQpLGMub25sb2FkPWMub25lcnJvcj1udWxsLGMudGltZW91dD0tMSxjLk5pPSgpPT57fSxiJiYoYy5zcmM9dGhpcy5yaCkpfW9ubG9hZChhLApiKXt2YXIgYz10aGlzLnBlbmRpbmdbYV0sZD1jLk5pO3RoaXMuWm8oYSwhMSk7ZChiJiZjKX19O3ZhciBCRWE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5xaD1hfWxvYWQoYSxiKXtyZXR1cm4gdGhpcy5xaC5sb2FkKGEsXy5ORShjPT57dmFyIGQ9Yy53aWR0aCxlPWMuaGVpZ2h0O2lmKGQ9PT0wJiYhYy5wYXJlbnRFbGVtZW50KXtsZXQgZj1jLnN0eWxlLm9wYWNpdHk7Yy5zdHlsZS5vcGFjaXR5PSIwIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO2Q9Yy53aWR0aHx8Yy5jbGllbnRXaWR0aDtlPWMuaGVpZ2h0fHxjLmNsaWVudEhlaWdodDtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGMpO2Muc3R5bGUub3BhY2l0eT1mfWMmJihjLnNpemU9bmV3IF8uZ28oZCxlKSk7YihjKX0pKX1jYW5jZWwoYSl7dGhpcy5xaC5jYW5jZWwoYSl9fTt2YXIgTUJhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucmg9YTt0aGlzLnFoPTA7dGhpcy5jYWNoZT17fTt0aGlzLnNoPWI9PmIudG9TdHJpbmcoKX1sb2FkKGEsYil7dmFyIGM9dGhpcy5zaChhKSxkPXRoaXMuY2FjaGU7cmV0dXJuIGRbY10/KGIoZFtjXSksIiIpOnRoaXMucmgubG9hZChhLGU9PntkW2NdPWU7Kyt0aGlzLnFoO3ZhciBmPXRoaXMuY2FjaGU7aWYodGhpcy5xaD4xMDApZm9yKGxldCBnIG9mIE9iamVjdC5rZXlzKGYpKXtkZWxldGUgZltnXTstLXRoaXMucWg7YnJlYWt9YihlKX0pfWNhbmNlbChhKXt0aGlzLnJoLmNhbmNlbChhKX19O3ZhciBMQmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy50aD1hO3RoaXMuc2g9e307dGhpcy5xaD17fTt0aGlzLnJoPXt9O3RoaXMueGg9MDt0aGlzLndoPWI9PmIudG9TdHJpbmcoKX1sb2FkKGEsYil7dmFyIGM9YCR7Kyt0aGlzLnhofWAsZD10aGlzLnNoLGU9dGhpcy5xaCxmPXRoaXMud2goYSk7aWYoZVtmXSl2YXIgZz0hMDtlbHNlIGVbZl09e30sZz0hMTtkW2NdPWY7ZVtmXVtjXT1iO2d8fCgoYT10aGlzLnRoLmxvYWQoYSx0aGlzLm9ubG9hZC5iaW5kKHRoaXMsZikpKT90aGlzLnJoW2ZdPWE6Yz0iIik7cmV0dXJuIGN9b25sb2FkKGEsYil7ZGVsZXRlIHRoaXMucmhbYV07dmFyIGM9dGhpcy5xaFthXSxkPVtdO2ZvcihsZXQgZSBvZiBPYmplY3Qua2V5cyhjKSlkLnB1c2goY1tlXSksZGVsZXRlIGNbZV0sZGVsZXRlIHRoaXMuc2hbZV07ZGVsZXRlIHRoaXMucWhbYV07Zm9yKGxldCBlPTAsZjtmPWRbZV07KytlKWYoYil9Y2FuY2VsKGEpe3ZhciBiPXRoaXMuc2gsYz1iW2FdOwpkZWxldGUgYlthXTtpZihjKXtiPXRoaXMucWg7ZGVsZXRlIGJbY11bYV07YT1iW2NdO3ZhciBkPSEwO2ZvcihlIG9mIE9iamVjdC5rZXlzKGEpKXtkPSExO2JyZWFrfWlmKGQpe2RlbGV0ZSBiW2NdO2I9dGhpcy5yaDt2YXIgZT1iW2NdO2RlbGV0ZSBiW2NdO3RoaXMudGguY2FuY2VsKGUpfX19fTt2YXIgQ0VhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc2g9YTt0aGlzLlZpPXt9O3RoaXMucmg9dGhpcy5xaD0wfWxvYWQoYSxiKXt2YXIgYz0iIithO3RoaXMuVmlbY109W2EsYl07UEJhKHRoaXMpO3JldHVybiBjfWNhbmNlbChhKXt2YXIgYj10aGlzLlZpO2JbYV0/ZGVsZXRlIGJbYV06Xy5OcC5xaHx8KHRoaXMuc2guY2FuY2VsKGEpLC0tdGhpcy5xaCxRQmEodGhpcykpfX07dmFyIERFYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2g9UkJhKCk7dGhpcy5FQj0wO3RoaXMuVmk9W107dGhpcy5xaD1udWxsO3RoaXMucmg9MH1yZXN1bWUoKXt0aGlzLnFoPW51bGw7dmFyIGE9dGhpcy5WaSxiPTA7Zm9yKGxldCBjPWEubGVuZ3RoO2I8YyYmdGhpcy5zaChiPT09MCk7KytiKWFbYl0oKTthLnNwbGljZSgwLGIpO3RoaXMucmg9RGF0ZS5ub3coKTthLmxlbmd0aCYmKHRoaXMucWg9Xy5MRSh0aGlzLHRoaXMucmVzdW1lLHRoaXMuRUIpKX19O3ZhciBVQmE9MCxtemE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnJoPW5ldyBERWE7dmFyIGE9bmV3IHpFYShuZXcgQUVhKHRoaXMucmgpKTtfLk5wLnFoJiYoYT1uZXcgTEJhKGEpLGE9bmV3IENFYShhKSk7YT1uZXcgQkVhKGEpO2E9bmV3IF8ueUVhKGEpO3RoaXMucWg9Xy5sSChhKX19O3JILnByb3RvdHlwZS5CWVRFU19QRVJfRUxFTUVOVD00O3JILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aCYmYitjPHRoaXMubGVuZ3RoO2MrKyl0aGlzW2IrY109YVtjXX07ckgucHJvdG90eXBlLnRvU3RyaW5nPUFycmF5LnByb3RvdHlwZS5qb2luO3R5cGVvZiBGbG9hdDMyQXJyYXk9PSJ1bmRlZmluZWQiJiYockguQllURVNfUEVSX0VMRU1FTlQ9NCxySC5wcm90b3R5cGUuQllURVNfUEVSX0VMRU1FTlQ9ckgucHJvdG90eXBlLkJZVEVTX1BFUl9FTEVNRU5ULHJILnByb3RvdHlwZS5zZXQ9ckgucHJvdG90eXBlLnNldCxySC5wcm90b3R5cGUudG9TdHJpbmc9ckgucHJvdG90eXBlLnRvU3RyaW5nLF8ubmIoIkZsb2F0MzJBcnJheSIsckgpKTtzSC5wcm90b3R5cGUuQllURVNfUEVSX0VMRU1FTlQ9ODtzSC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7Yj1ifHwwO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGgmJmIrYzx0aGlzLmxlbmd0aDtjKyspdGhpc1tiK2NdPWFbY119O3NILnByb3RvdHlwZS50b1N0cmluZz1BcnJheS5wcm90b3R5cGUuam9pbjtpZih0eXBlb2YgRmxvYXQ2NEFycmF5PT0idW5kZWZpbmVkIil7dHJ5e3NILkJZVEVTX1BFUl9FTEVNRU5UPTh9Y2F0Y2goYSl7fXNILnByb3RvdHlwZS5CWVRFU19QRVJfRUxFTUVOVD1zSC5wcm90b3R5cGUuQllURVNfUEVSX0VMRU1FTlQ7c0gucHJvdG90eXBlLnNldD1zSC5wcm90b3R5cGUuc2V0O3NILnByb3RvdHlwZS50b1N0cmluZz1zSC5wcm90b3R5cGUudG9TdHJpbmc7Xy5uYigiRmxvYXQ2NEFycmF5IixzSCl9O18udEgoKTtfLnRIKCk7Xy51SCgpO18udUgoKTtfLnVIKCk7Xy52SCgpO18udEgoKTtfLnRIKCk7Xy50SCgpO18udEgoKTt2YXIgTUg9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuaWQ9YTt0aGlzLm5hbWU9Yjt0aGlzLnRpdGxlPWN9fSxMSD1bXTt2YXIgWkJhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5maWVsZHM9bmV3IE1hcH1nZXQoYSl7cmV0dXJuIHRoaXMuZmllbGRzLmdldChhKX19LGFDYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyxkLGUpe3RoaXMuc2g9YTt0aGlzLnRoPWI7dGhpcy5yaD1jO3RoaXMucWg9ZDt0aGlzLm1lc3NhZ2U9ZX19LCRCYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLlZoPWE7dGhpcy5uZXh0PTB9ZG9uZSgpe3JldHVybiB0aGlzLm5leHQ+PXRoaXMuVmgubGVuZ3RofX07dmFyIHZDYT1fLiRpKF8uQ0gsZ0VhKTt2YXIgV0JhPSJBRTFFMkU3RTU0RTZFNkFFNTVFNTZFNjBBQUU2LDFFNjJFNjNFMSBBQSBBRTNFNEFBQzEgQUlJSUlJSUlJSSBBQzBDMUFBQUFBRTVFNiBBQUUzQSBBIEU3RThFMTdFMjFFMjZFMTRFMjdFMjlFNkUxRTM1RTM2RTZFMzhFMzlFNDFFMUUxRTQzRTQ0RTZFNkU0NUU0NkU2RTQ3RTUwRTUyRTUzIEFBRTlBRTExQSBBQUFFMTBDMSBJSUkgQkFCQzJFMTJCQUFBQUExQkU2QkFGNkU2RTZFMTNFMTRFMUUxNUYxNiBBQzFBRTZBIEFBQUUxIEFBQSBBQiBJSUEgQUFBQUUxMkUxOEFFMTlFNkFFMUFFMUUyMEFBMUUxQSBBQUFBQSAySUkgIEYyMkUyNEM0QUFFMjVBM0EgRTE3RTEwRjIzQUFBIEUxMElBIEFBQUMxQkMzQzFBQUFBQSBDNUM1QzUgQUFBQSBFMUFFMjBFMTRFMjggQUExQSBBQUU2QUUzMEU2RTMzIEFFMzFFMUUxIEUxRTMyIEFFMTdFNiBBRTM0IEUxIDFBQUFBIEFFMzcgRjE4IEUzMSBFNkFFNDAgMkUxOUUxOSAxRjIwRTQyIEU2QSBCRjYgMUFFMSBFMzIgOEEgRjE0RjQ4IEFGNDlBIDFBRTZBQUEgRjUxIEUxNyBGNiBBRTZBQUEgQkJBIEFBQUFBQUFBIEFBRTU3QUU1OCBBQUUxOUEgRTU5RTE5IEFCQUFBQUUxIEU2RTYxQUFBQUFBQUUxQUU2IEJBRjZFMTFBQSBFMjAgQUFBRTYiLnNwbGl0KCIgIiksClhCYT1bOTksMSw1LDFFMyw2LC0xXTt2YXIgZUNhPS9eKC0/XGQrKFwuXGQrKT8pLCgtP1xkKyhcLlxkKyk/KSgsKC0/XGQrKFwuXGQrKT8pKT8kLzt2YXIgSUg9W3tSdjoxLFJ3OiJyZXZpZXdzIn0se1J2OjIsUnc6InBob3RvcyJ9LHtSdjozLFJ3OiJjb250cmlidXRlIn0se1J2OjQsUnc6ImVkaXRzIn0se1J2OjcsUnc6ImV2ZW50cyJ9LHtSdjo5LFJ3OiJhbnN3ZXJzIn1dO3ZhciB4Q2EseUNhO18uekNhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zaD1bXTt0aGlzLnFoPXRoaXMudGg9bnVsbH1yZXNldCgpe3RoaXMuc2gubGVuZ3RoPTA7dGhpcy50aD17fTt0aGlzLnFoPW51bGx9cmgoKXtyZXR1cm4gMX19O3hDYT0vJSg0MHwzQXwyNHwyQ3wzQikvZzt5Q2E9LyUyMC9nO18uUkk9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5yaD0hMTthP3RoaXMucWg9YSgoKT0+e3RoaXMuY2hhbmdlZCgibGF0TG5nUG9zaXRpb24iKX0pOihhPW5ldyBfLkRyYSxhLmJpbmRUbygiY2VudGVyIix0aGlzKSxhLmJpbmRUbygiem9vbSIsdGhpcyksYS5iaW5kVG8oInByb2plY3Rpb25Ub3BMZWZ0Iix0aGlzKSxhLmJpbmRUbygicHJvamVjdGlvbiIsdGhpcyksYS5iaW5kVG8oIm9mZnNldCIsdGhpcyksdGhpcy5xaD1hKX1mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChhKXtyZXR1cm4gdGhpcy5xaC5mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChhKX1mcm9tTGF0TG5nVG9EaXZQaXhlbChhKXtyZXR1cm4gdGhpcy5xaC5mcm9tTGF0TG5nVG9EaXZQaXhlbChhKX1mcm9tRGl2UGl4ZWxUb0xhdExuZyhhLGI9ITEpe3JldHVybiB0aGlzLnFoLmZyb21EaXZQaXhlbFRvTGF0TG5nKGEsYil9ZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoYSwKYj0hMSl7cmV0dXJuIHRoaXMucWguZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoYSxiKX1nZXRXb3JsZFdpZHRoKCl7cmV0dXJuIHRoaXMucWguZ2V0V29ybGRXaWR0aCgpfWdldFZpc2libGVSZWdpb24oKXtyZXR1cm4gdGhpcy5xaC5nZXRWaXNpYmxlUmVnaW9uKCl9cGl4ZWxQb3NpdGlvbl9jaGFuZ2VkKCl7aWYoIXRoaXMucmgpe3RoaXMucmg9ITA7bGV0IGE9dGhpcy5mcm9tRGl2UGl4ZWxUb0xhdExuZyh0aGlzLmdldCgicGl4ZWxQb3NpdGlvbiIpKSxiPXRoaXMuZ2V0KCJsYXRMbmdQb3NpdGlvbiIpO2EmJiFhLmVxdWFscyhiKSYmdGhpcy5zZXQoImxhdExuZ1Bvc2l0aW9uIixhKTt0aGlzLnJoPSExfX1jaGFuZ2VkKGEpe2lmKGEhPT0ic2NhbGUiKXt2YXIgYj10aGlzLmdldCgibGF0TG5nUG9zaXRpb24iKTtpZighdGhpcy5yaCYmYSE9PSJmb2N1cyIpe3RoaXMucmg9ITA7bGV0IGM9dGhpcy5nZXQoInBpeGVsUG9zaXRpb24iKSxkPXRoaXMuZnJvbUxhdExuZ1RvRGl2UGl4ZWwoYik7CmlmKGQmJiFkLmVxdWFscyhjKXx8ISFkIT09ISFjKWQmJihNYXRoLmFicyhkLngpPjFFNXx8TWF0aC5hYnMoZC55KT4xRTUpP3RoaXMuc2V0KCJwaXhlbFBvc2l0aW9uIixudWxsKTp0aGlzLnNldCgicGl4ZWxQb3NpdGlvbiIsZCk7dGhpcy5yaD0hMX1pZihhPT09ImZvY3VzInx8YT09PSJsYXRMbmdQb3NpdGlvbiIpYT10aGlzLmdldCgiZm9jdXMiKSxiJiZhJiYoYj1fLmpFKGIsYSksdGhpcy5zZXQoInNjYWxlIiwyMC8oYisxKSkpfX19O18uRUk9Y2xhc3MgZXh0ZW5kcyBfLnlue2NvbnN0cnVjdG9yKGEsYixjKXtzdXBlcigpO3ZhciBkPXRoaXM7dGhpcy5xaD1iO3RoaXMucmg9bmV3IF8uQXAoKCk9PntkZWxldGUgdGhpc1t0aGlzLnFoXTt0aGlzLm5vdGlmeSh0aGlzLnFoKX0sMCk7dmFyIGU9W10sZj1hLmxlbmd0aDtkWyJnZXQiK18uQm4oYildPSgpPT57aWYoIShiIGluIGQpKXtlLmxlbmd0aD0wO2ZvcihsZXQgZz0wO2c8ZjsrK2cpZVtnXT10aGlzLmdldChhW2ddKTtkW2JdPWMuYXBwbHkobnVsbCxlKX1yZXR1cm4gZFtiXX19Y2hhbmdlZChhKXthIT09dGhpcy5xaCYmXy5CcCh0aGlzLnJoKX19O3ZhciBTSTtTST17dXJsOiJhcGktMy9pbWFnZXMvY2Jfc2NvdXQ1IixzaXplOm5ldyBfLmdvKDIxNSw4MzUpLEJ5OiExfTsKXy5UST17eVA6e3BuOnt1cmw6ImNiL3RhcmdldF9sb2NraW5nIixzaXplOm51bGwsQnk6ITB9LE1uOm5ldyBfLmdvKDU2LDQwKSxhbmNob3I6bmV3IF8uYm8oMjgsMTkpLGl0ZW1zOlt7c2VnbWVudDpuZXcgXy5ibygwLDApfV19LHFCOntwbjpTSSxNbjpuZXcgXy5nbyg0OSw1MiksYW5jaG9yOm5ldyBfLmJvKDI1LDMzKSxncmlkOm5ldyBfLmJvKDAsNTIpLGl0ZW1zOlt7c2VnbWVudDpuZXcgXy5ibyg0OSwwKX1dfSxuVDp7cG46U0ksTW46bmV3IF8uZ28oNDksNTIpLGFuY2hvcjpuZXcgXy5ibygyNSwzMyksZ3JpZDpuZXcgXy5ibygwLDUyKSxpdGVtczpbe3NlZ21lbnQ6bmV3IF8uYm8oMCwwKX1dfSxHczp7cG46U0ksTW46bmV3IF8uZ28oNDksNTIpLGFuY2hvcjpuZXcgXy5ibygyOSw1NSksZ3JpZDpuZXcgXy5ibygwLDUyKSxpdGVtczpbe3NlZ21lbnQ6bmV3IF8uYm8oOTgsNTIpfV19LHBhZDp7cG46U0ksTW46bmV3IF8uZ28oMjYsMjYpLG9mZnNldDpuZXcgXy5ibygzMSwzMiksCmdyaWQ6bmV3IF8uYm8oMCwyNiksaXRlbXM6W3tzZWdtZW50Om5ldyBfLmJvKDE0NywwKX1dfSx5VDp7cG46U0ksTW46bmV3IF8uZ28oMTgsMTgpLG9mZnNldDpuZXcgXy5ibygzMSwzMiksZ3JpZDpuZXcgXy5ibygwLDE5KSxpdGVtczpbe3NlZ21lbnQ6bmV3IF8uYm8oMTc4LDIpfV19LGhQOntwbjpTSSxNbjpuZXcgXy5nbygxMDcsMTM3KSxpdGVtczpbe3NlZ21lbnQ6bmV3IF8uYm8oOTgsMzY0KX1dfSxlUTp7cG46U0ksTW46bmV3IF8uZ28oMjEsMjYpLGdyaWQ6bmV3IF8uYm8oMCw1MiksaXRlbXM6W3tzZWdtZW50Om5ldyBfLmJvKDE0NywxNTYpfV19fTtfLkVFYT1jbGFzcyBleHRlbmRzIF8uQXF7Y29uc3RydWN0b3IoYT0hMSl7c3VwZXIoKTt0aGlzLk91PWE7dGhpcy5zaD1fLlN4KCk7dGhpcy5yaD1fLlNIKHRoaXMpfXFoKCl7dmFyIGE9dGhpcztyZXR1cm57a206ZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5yaC5rbShiLGMpfSxJbjoxLENpOmEucmguQ2l9fWNoYW5nZWQoKXt0aGlzLnJoPV8uU0godGhpcyl9fTt2YXIgR0NhPS9tYXRyaXhcKC4qLCAoWzAtOS5dKyksICgtP1xkKykoPzpweCk/LCAoLT9cZCspKD86cHgpP1wpLzt2YXIgSUNhPW5ldyBNYXAoW1szNyx7a2V5VGV4dDoiXHUyMTkwIixhcmlhTGFiZWw6IkxlZnQgYXJyb3cifV0sWzM5LHtrZXlUZXh0OiJcdTIxOTIiLGFyaWFMYWJlbDoiUmlnaHQgYXJyb3cifV0sWzM4LHtrZXlUZXh0OiJcdTIxOTEiLGFyaWFMYWJlbDoiVXAgYXJyb3cifV0sWzQwLHtrZXlUZXh0OiJcdTIxOTMiLGFyaWFMYWJlbDoiRG93biBhcnJvdyJ9XSxbMzYse2tleVRleHQ6IkhvbWUifV0sWzM1LHtrZXlUZXh0OiJFbmQifV0sWzMzLHtrZXlUZXh0OiJQYWdlIFVwIn1dLFszNCx7a2V5VGV4dDoiUGFnZSBEb3duIn1dLFsxMDcse2tleVRleHQ6IisifV0sWzEwOSx7a2V5VGV4dDoiLSJ9XSxbMTYse2tleVRleHQ6IlNoaWZ0In1dXSk7dmFyIEZFYT0oMCxfLkdqKWAuTEdMZWVOLWtleWJvYXJkLXNob3J0Y3V0cy12aWV3e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uTEdMZWVOLWtleWJvYXJkLXNob3J0Y3V0cy12aWV3IHRhYmxlLC5MR0xlZU4ta2V5Ym9hcmQtc2hvcnRjdXRzLXZpZXcgdGJvZHksLkxHTGVlTi1rZXlib2FyZC1zaG9ydGN1dHMtdmlldyB0ZCwuTEdMZWVOLWtleWJvYXJkLXNob3J0Y3V0cy12aWV3IHRye2JhY2tncm91bmQ6aW5oZXJpdDtib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LkxHTGVlTi1rZXlib2FyZC1zaG9ydGN1dHMtdmlldyB0YWJsZXtkaXNwbGF5OnRhYmxlfS5MR0xlZU4ta2V5Ym9hcmQtc2hvcnRjdXRzLXZpZXcgdHJ7ZGlzcGxheTp0YWJsZS1yb3d9LkxHTGVlTi1rZXlib2FyZC1zaG9ydGN1dHMtdmlldyB0ZHstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTp0YWJsZS1jZWxsO2NvbG9yOmxpZ2h0LWRhcmsoIzAwMCwjZmZmKTtwYWRkaW5nOjZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwfS5MR0xlZU4ta2V5Ym9hcmQtc2hvcnRjdXRzLXZpZXcgdGQ6Zmlyc3QtY2hpbGR7dGV4dC1hbGlnbjplbmR9LkxHTGVlTi1rZXlib2FyZC1zaG9ydGN1dHMtdmlldyB0ZCBrYmR7YmFja2dyb3VuZC1jb2xvcjpsaWdodC1kYXJrKCNlOGVhZWQsIzNjNDA0Myk7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6R29vZ2xlIFNhbnMgVGV4dCxSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtsaW5lLWhlaWdodDoxNnB4O21hcmdpbjowIDJweDttaW4taGVpZ2h0OjIwcHg7bWluLXdpZHRoOjIwcHg7cGFkZGluZzoycHggNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyfVxuYDtfLlVJPWNsYXNzIGV4dGVuZHMgXy5HdHtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKTt0aGlzLlV3PWEuVXc7dGhpcy5Mcz0hIWEuTHM7dGhpcy5Lcz0hIWEuS3M7dGhpcy5vd25lckVsZW1lbnQ9YS5vd25lckVsZW1lbnQ7dGhpcy5wRj0hIWEucEY7dGhpcy5Hdz1hLkd3O3RoaXMucWg9S0NhKHRoaXMsYS5VdykubWFwKGI9Pnt2YXIgYz1fLkhDYShiLmRlc2NyaXB0aW9uKTtiPV8uSkNhKC4uLmIuYm0pO3JldHVybntkZXNjcmlwdGlvbjpjLGJtOmJ9fSk7dGhpcy5wRnx8Xy5TdChGRWEsdGhpcy5vd25lckVsZW1lbnQpO18uVHEodGhpcy5lbGVtZW50LCJrZXlib2FyZC1zaG9ydGN1dHMtdmlldyIpO3RoaXMuR3cmJl8uZ0YoKTtMQ2EodGhpcyk7dGhpcy54aShhLF8uVUksIktleWJvYXJkU2hvcnRjdXRzVmlldyIpfX07dmFyIFNDYT1uZXcgU2V0KFsidG91Y2hzdGFydCIsInRvdWNobW92ZSIsIndoZWVsIiwibW91c2V3aGVlbCJdKTtZSC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMucWguWm8oKX07WUgucHJvdG90eXBlLnRoPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnNoOyhkW2FdPWRbYV18fHt9KVtiXT1jfTtZSC5wcm90b3R5cGUuYWRkTGlzdGVuZXI9WUgucHJvdG90eXBlLnRoO3ZhciBSQ2E9ImJsdXIgY2hhbmdlIGNsaWNrIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2VlbnRlciBtb3VzZWxlYXZlIG1vdXNldXAgdG91Y2hzdGFydCB0b3VjaGNhbmNlbCB0b3VjaG1vdmUgdG91Y2hlbmQgcG9pbnRlcmRvd24gcG9pbnRlcmxlYXZlIHBvaW50ZXJtb3ZlIHBvaW50ZXJ1cCIuc3BsaXQoIiAiKTt2YXIgVkNhO1ZDYT17fTsKXy5WST1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe2I9Ynx8e307dmFyIGM9Yi5kb2N1bWVudHx8ZG9jdW1lbnQsZD1iLmRpdnx8Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTtjPVhDYShjKTthPW5ldyBhKGMpO2EuaW5zdGFudGlhdGUoZCk7Yi5DdCE9bnVsbCYmZC5zZXRBdHRyaWJ1dGUoImRpciIsYi5DdD8icnRsIjoibHRyIik7dGhpcy5kaXY9ZDt0aGlzLnJoPWE7dGhpcy5xaD1uZXcgWUg7YTp7Yj10aGlzLnFoLnFoO2ZvcihhPTA7YTxiLnFoLmxlbmd0aDthKyspaWYoZD09PWIucWhbYV0uZWxlbWVudClicmVhayBhO2Q9bmV3IHBFYShkKTtpZihiLnN0b3BQcm9wYWdhdGlvbilrRihiLGQpLGIucWgucHVzaChkKTtlbHNle2I6e2ZvcihhPTA7YTxiLnFoLmxlbmd0aDthKyspaWYoR3phKGIucWhbYV0uZWxlbWVudCxkLmVsZW1lbnQpKXthPSEwO2JyZWFrIGJ9YT0hMX1pZihhKWIucmgucHVzaChkKTtlbHNle2tGKGIsZCk7Yi5xaC5wdXNoKGQpO2Q9Wy4uLmIucmgsLi4uYi5xaF07YT1bXTsKYz1bXTtmb3IodmFyIGU9MDtlPGIucWgubGVuZ3RoOysrZSl7dmFyIGY9Yi5xaFtlXTtIemEoZixkKT8oYS5wdXNoKGYpLGYuWm8oKSk6Yy5wdXNoKGYpfWZvcihlPTA7ZTxiLnJoLmxlbmd0aDsrK2UpZj1iLnJoW2VdLEh6YShmLGQpP2EucHVzaChmKTooYy5wdXNoKGYpLGtGKGIsZikpO2IucWg9YztiLnJoPWF9fX19dXBkYXRlKGEsYil7VUNhKHRoaXMucmgsdGhpcy5kaXYsYSxifHxmdW5jdGlvbigpe30pfWFkZExpc3RlbmVyKGEsYixjKXt0aGlzLnFoLnRoKGEsYixjKX1kaXNwb3NlKCl7dGhpcy5xaC5kaXNwb3NlKCk7Xy55bCh0aGlzLmRpdil9fTtfLldJPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5xaD1hO3RoaXMuY2xpZW50PWJ8fCJhcGl2MyJ9Z2V0VXJsKGEsYixjKXtiPVsib3V0cHV0PSIrYSwiY2JfY2xpZW50PSIrdGhpcy5jbGllbnQsInY9NCIsImdsPSIrXy5KbC5yaCgpLnRoKCldLmNvbmNhdChifHxbXSk7cmV0dXJuIHRoaXMucWguZ2V0VXJsKGN8fDApK2Iuam9pbigiJiIpfWdldFRpbGVVcmwoYSxiLGMsZCl7dmFyIGU9MTw8ZDtiPShiJWUrZSklZTtlPShiKzIqYyklXy5XZyh0aGlzLnFoLDEpO3JldHVybiB0aGlzLmdldFVybChhLFsiem9vbT0iK2QsIng9IitiLCJ5PSIrY10sZSl9fTtfLm9JPWNsYXNze2NvbnN0cnVjdG9yKGEsYj0wKXt0aGlzLnFoPWE7dGhpcy5tb2RlPWI7dGhpcy5oQT10aGlzLnRpY2s9MH1yZXNldCgpe3RoaXMudGljaz0wfW5leHQoKXsrK3RoaXMudGljaztyZXR1cm4odGhpcy5ldmFsKCktdGhpcy5oQSkvKDEtdGhpcy5oQSl9ZXh0ZW5kKGEpe3RoaXMudGljaz1NYXRoLmZsb29yKGEqdGhpcy50aWNrL3RoaXMucWgpO3RoaXMucWg9YTt0aGlzLnRpY2s+dGhpcy5xaC8zJiYodGhpcy50aWNrPU1hdGgucm91bmQodGhpcy5xaC8zKSk7dGhpcy5oQT10aGlzLmV2YWwoKX1ldmFsKCl7cmV0dXJuIHRoaXMubW9kZT09PTE/TWF0aC5zaW4oTWF0aC5QSSoodGhpcy50aWNrL3RoaXMucWgvMi0xKSkrMTooTWF0aC5zaW4oTWF0aC5QSSoodGhpcy50aWNrL3RoaXMucWgtLjUpKSsxKS8yfX07Xy5HRWE9Y2xhc3MgZXh0ZW5kcyBfLkl7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9aHAoKXtyZXR1cm4gXy5tRSh0aGlzLDEpfWZwKCl7cmV0dXJuIF8ubUUodGhpcywyKX19O18uSEVhPVswLF8uYXosLTEsXy5DcixfLlpdO3ZhciBjRGEsZERhO18uSUVhPXtEUklWSU5HOjAsV0FMS0lORzoxLEJJQ1lDTElORzozLFRSQU5TSVQ6MixUV09fV0hFRUxFUjo0fTtjRGE9e0xFU1NfV0FMS0lORzoxLEZFV0VSX1RSQU5TRkVSUzoyfTtkRGE9e0JVUzoxLFJBSUw6MixTVUJXQVk6MyxUUkFJTjo0LFRSQU06NX07Xy5YST1jbGFzcyBleHRlbmRzIF8uSXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1nZXRIZWFkaW5nKCl7cmV0dXJuIF8uS2codGhpcyw2KX1zZXRIZWFkaW5nKGEpe3JldHVybiBfLmJoKHRoaXMsNixhKX19O18uSkVhPVswLF8uS0ksXy5VLF8uUCxbMCxfLld5LF8uUXpdLF8uVSxfLlAsXy5SLDkyLF8uWSxfLm5wYV07Xy5ZST1fLkxtKF8uS20oW2Z1bmN0aW9uKGEpe3JldHVybiBfLkttKFtfLmNyLF8uWG1dKShhKX0sXy5DbSh7cGxhY2VJZDpfLmJzLHF1ZXJ5Ol8uYnMsbG9jYXRpb246Xy5NbShfLlhtKX0pXSksZnVuY3Rpb24oYSl7aWYoXy5tbShhKSl7dmFyIGI9YS5zcGxpdCgiLCIpO2lmKGIubGVuZ3RoPT0yKXtsZXQgYz0rYlswXTtiPStiWzFdO2lmKE1hdGguYWJzKGMpPD05MCYmTWF0aC5hYnMoYik8PTE4MClyZXR1cm57bG9jYXRpb246bmV3IF8uVG0oYyxiKX19cmV0dXJue3F1ZXJ5OmF9fWlmKF8uV20oYSkpcmV0dXJue2xvY2F0aW9uOmF9O2lmKGEpe2lmKGEucGxhY2VJZCYmYS5xdWVyeSl0aHJvdyBfLkFtKCJjYW5ub3Qgc2V0IGJvdGggcGxhY2VJZCBhbmQgcXVlcnkiKTtpZihhLnF1ZXJ5JiZhLmxvY2F0aW9uKXRocm93IF8uQW0oImNhbm5vdCBzZXQgYm90aCBxdWVyeSBhbmQgbG9jYXRpb24iKTtpZihhLnBsYWNlSWQmJmEubG9jYXRpb24pdGhyb3cgXy5BbSgiY2Fubm90IHNldCBib3RoIHBsYWNlSWQgYW5kIGxvY2F0aW9uIik7CmlmKCFhLnBsYWNlSWQmJiFhLnF1ZXJ5JiYhYS5sb2NhdGlvbil0aHJvdyBfLkFtKCJtdXN0IHNldCBvbmUgb2YgbG9jYXRpb24sIHBsYWNlSWQgb3IgcXVlcnkiKTtyZXR1cm4gYX10aHJvdyBfLkFtKCJtdXN0IHNldCBvbmUgb2YgbG9jYXRpb24sIHBsYWNlSWQgb3IgcXVlcnkiKTt9KTt2YXIga0RhPSgwLF8uR2opYC5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTttYXgtd2lkdGg6MjY1cHg7b3ZlcmZsb3cteDpoaWRkZW59LmdtLXN0eWxlIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC10aXRsZSBzcGFue2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC5nbS10aXRsZXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7b3ZlcmZsb3c6aGlkZGVufS5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgLmdtLWZ1bGwtd2lkdGh7d2lkdGg6MTgwcHh9LmdtLXN0eWxlIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC10aXRsZXtwYWRkaW5nLWJvdHRvbTo2cHh9LmdtLXN0eWxlIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC13aGVlbGNoYWlyLWljb257YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoaHR0cHM6Ly9tYXBzLmdzdGF0aWMuY29tL21hcGZpbGVzL2FwaS0zL2ltYWdlcy9tYXBjbnQ2LnBuZyk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6NTlweCA0OTJweDtiYWNrZ3JvdW5kLXNpemU6NTlweCA0OTJweDtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTQ1MHB4O3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHh9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS4yKSwoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjEuMjA4MzMzMzMzMzMzMzMzMyksKG1pbi1yZXNvbHV0aW9uOjEuMmRwcHgpLChtaW4tcmVzb2x1dGlvbjoxMTZkcGkpey5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgLnRyYW5zaXQtd2hlZWxjaGFpci1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vbWFwcy5nc3RhdGljLmNvbS9tYXBmaWxlcy9hcGktMy9pbWFnZXMvbWFwY250Nl9oZHBpLnBuZyk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6NTlweCA0OTJweDtiYWNrZ3JvdW5kLXNpemU6NTlweCA0OTJweDtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTQ0OXB4O3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHh9LmdtLXN0eWxlLmdtLWNoaW5hIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC13aGVlbGNoYWlyLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL21hcHMuZ3N0YXRpYy5jbi9tYXBmaWxlcy9hcGktMy9pbWFnZXMvbWFwY250Nl9oZHBpLnBuZyl9fS5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgZGl2e2JhY2tncm91bmQtY29sb3I6d2hpdGU7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjE1cHh9LmdtLXN0eWxlIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC1saW5lLWdyb3Vwe292ZXJmbG93OmhpZGRlbjttYXJnaW4tcmlnaHQ6LTZweH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC50cmFuc2l0LWxpbmUtZ3JvdXAtc2VwYXJhdG9ye2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmU2ZTY7cGFkZGluZy10b3A6NXB4fS5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgLnRyYW5zaXQtbmxpbmVzLW1vcmUtbXNne2NvbG9yOiM5OTk7bWFyZ2luLXRvcDotM3B4O3BhZGRpbmctYm90dG9tOjZweH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC50cmFuc2l0LWxpbmUtZ3JvdXAtdmVoaWNsZS1pY29uc3tkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjEwcHg7dmVydGljYWwtYWxpZ246dG9wO21hcmdpbi10b3A6MXB4fS5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgLnRyYW5zaXQtbGluZS1ncm91cC1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDoxMDBweDttYXgtd2lkdGg6MjI4cHg7bWFyZ2luLWJvdHRvbTotM3B4fS5nbS1zdHlsZSAudHJhbnNpdC1jb250YWluZXIgLnRyYW5zaXQtY2xlYXItbGluZXN7Y2xlYXI6Ym90aH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC50cmFuc2l0LWRpdi1saW5lLW5hbWV7ZmxvYXQ6bGVmdDtwYWRkaW5nOjAgNnB4IDZweCAwO3doaXRlLXNwYWNlOm5vd3JhcH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLmdtLXRyYW5zaXQtbG9uZ3t3aWR0aDoxMDdweH0uZ20tc3R5bGUgLnRyYW5zaXQtY29udGFpbmVyIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLmdtLXRyYW5zaXQtbWVkaXVte3dpZHRoOjUwcHh9LmdtLXN0eWxlIC50cmFuc2l0LWNvbnRhaW5lciAudHJhbnNpdC1kaXYtbGluZS1uYW1lIC5nbS10cmFuc2l0LXNob3J0e3dpZHRoOjM3cHh9LmdtLXN0eWxlIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LWljb257ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MnB4fS5nbS1zdHlsZSAudHJhbnNpdC1kaXYtbGluZS1uYW1lIC5yZW5kZXJhYmxlLWNvbXBvbmVudC1jb2xvci1ib3h7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9tYXBzLmdzdGF0aWMuY29tL21hcGZpbGVzL3RyYW5zcGFyZW50LnBuZyk7aGVpZ2h0OjEwcHg7d2lkdGg6NHB4O2Zsb2F0OmxlZnQ7bWFyZ2luLXRvcDozcHg7bWFyZ2luLXJpZ2h0OjNweDttYXJnaW4tbGVmdDoxcHh9LmdtLXN0eWxlLmdtLWNoaW5hIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LWNvbG9yLWJveHtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOi8vbWFwcy5nc3RhdGljLmNuL21hcGZpbGVzL3RyYW5zcGFyZW50LnBuZyl9LmdtLXN0eWxlIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LXRleHQsLmdtLXN0eWxlIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LXRleHQtYm94e3RleHQtYWxpZ246bGVmdDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrfS5nbS1zdHlsZSAudHJhbnNpdC1kaXYtbGluZS1uYW1lIC5yZW5kZXJhYmxlLWNvbXBvbmVudC10ZXh0LWJveHtmb250LXNpemU6OHB0O2ZvbnQtd2VpZ2h0OjQwMDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjFweCAycHh9LmdtLXN0eWxlIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LXRleHQtYm94LXdoaXRle2JvcmRlcjoxcHggc29saWQgI2NjYztiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3BhZGRpbmc6MCAycHh9LmdtLXN0eWxlIC50cmFuc2l0LWRpdi1saW5lLW5hbWUgLnJlbmRlcmFibGUtY29tcG9uZW50LWJvbGR7Zm9udC13ZWlnaHQ6NDAwfXNlbnRpbmVse31cbmA7dmFyIGpEYT0oMCxfLkdqKWAucG9pLWluZm8td2luZG93IGEsLnBvaS1pbmZvLXdpbmRvdyBkaXZ7Y29sb3I6IzMzMztmb250LWZhbWlseTpSb2JvdG8sQXJpYWw7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTstbW96LXVzZXItc2VsZWN0OnRleHQ7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0Oy1tcy11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHR9LnBvaS1pbmZvLXdpbmRvd3tjdXJzb3I6ZGVmYXVsdH0ucG9pLWluZm8td2luZG93IGE6bGlua3t0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojMWE3M2U4fS5wb2ktaW5mby13aW5kb3cgLnZpZXctbGluaywucG9pLWluZm8td2luZG93IGE6dmlzaXRlZHtjb2xvcjojMWE3M2U4fS5wb2ktaW5mby13aW5kb3cgLnZpZXctbGluazpob3ZlciwucG9pLWluZm8td2luZG93IGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ucG9pLWluZm8td2luZG93IC5mdWxsLXdpZHRoe3dpZHRoOjE4MHB4fS5wb2ktaW5mby13aW5kb3cgLnRpdGxle292ZXJmbG93OmhpZGRlbjtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjE0cHh9LnBvaS1pbmZvLXdpbmRvdyAuYWRkcmVzc3ttYXJnaW4tdG9wOjJweDtjb2xvcjojNTU1fXNlbnRpbmVse31cbmA7dmFyIGlEYT0oMCxfLkdqKWAuZ20tc3R5bGUgLmdtLXN0eWxlLWl3e2ZvbnQtd2VpZ2h0OjMwMDtmb250LXNpemU6MTNweDtvdmVyZmxvdzpoaWRkZW59LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1he3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjk5OTlweDtoZWlnaHQ6MH0uZ20tc3R5bGUgLmdtLXN0eWxlLWl3LXR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0uZ20tc3R5bGUgLmdtLXN0eWxlLWl3LXRjey13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgNHB4IDJweCByZ2JhKDE3OCwxNzgsMTc4LC40KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgNHB4IDJweCByZ2JhKDE3OCwxNzgsMTc4LC40KSk7aGVpZ2h0OjEycHg7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3dpZHRoOjI1cHh9LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy10YzphZnRlcntiYWNrZ3JvdW5kOiNmZmY7LXdlYmtpdC1jbGlwLXBhdGg6cG9seWdvbigwIDAsNTAlIDEwMCUsMTAwJSAwKTtjbGlwLXBhdGg6cG9seWdvbigwIDAsNTAlIDEwMCUsMTAwJSAwKTtjb250ZW50OiIiO2hlaWdodDoxMnB4O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTFweDt3aWR0aDoyNXB4fS5nbS1zdHlsZSAuZ20tc3R5bGUtaXctY3twb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO3RvcDowO2xlZnQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC0xMDAlLDApO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDJweCA3cHggMXB4IHJnYmEoMCwwLDAsLjMpO2JveC1zaGFkb3c6MCAycHggN3B4IDFweCByZ2JhKDAsMCwwLC4zKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1jLmdtLXN0eWxlLWl3LXBvaXtwYWRkaW5nOjB9LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1key13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzphdXRvfS5nbS1zdHlsZSAuZ20tc3R5bGUtaXctZDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MThweDtoZWlnaHQ6MTJweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0uZ20tc3R5bGUgLmdtLXN0eWxlLWl3LWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLC5nbS1zdHlsZSAuZ20tc3R5bGUtaXctZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2V7YmFja2dyb3VuZDojZmZmfS5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyAuZ20tc3R5bGUtaXctZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMik7Ym9yZGVyOjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjlweDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3h9LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1jIC5nbS1zdHlsZS1pdy1kOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Jpem9udGFse2JvcmRlcjozcHggc29saWQgdHJhbnNwYXJlbnR9LmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1jIC5nbS1zdHlsZS1pdy1kOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjMpfS5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyAuZ20tc3R5bGUtaXctZDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmdtLXN0eWxlIC5nbS1pd3tjb2xvcjojMmMyYzJjfS5nbS1zdHlsZSAuZ20taXcgYntmb250LXdlaWdodDo0MDB9LmdtLXN0eWxlIC5nbS1pdyBhOmxpbmssLmdtLXN0eWxlIC5nbS1pdyBhOnZpc2l0ZWR7Y29sb3I6IzQyNzJkYjt0ZXh0LWRlY29yYXRpb246bm9uZX0uZ20tc3R5bGUgLmdtLWl3IGE6aG92ZXJ7Y29sb3I6IzQyNzJkYjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5nbS1zdHlsZSAuZ20taXcgLmdtLXRpdGxle2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tYm90dG9tOjFweH0uZ20tc3R5bGUgLmdtLWl3IC5nbS1iYXNpY2luZm97bGluZS1oZWlnaHQ6MThweDtwYWRkaW5nLWJvdHRvbToxMnB4fS5nbS1zdHlsZSAuZ20taXcgLmdtLXdlYnNpdGV7cGFkZGluZy10b3A6NnB4fS5nbS1zdHlsZSAuZ20taXcgLmdtLXBob3Rvc3twYWRkaW5nLWJvdHRvbTo4cHg7LW1zLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0uZ20tc3R5bGUgLmdtLWl3IC5nbS1waCwuZ20tc3R5bGUgLmdtLWl3IC5nbS1zdntjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6NTBweDt3aWR0aDoxMDBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LmdtLXN0eWxlIC5nbS1pdyAuZ20tc3Z7cGFkZGluZy1yaWdodDo0cHh9LmdtLXN0eWxlIC5nbS1pdyAuZ20td3N2e2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uZ20tc3R5bGUgLmdtLWl3IC5nbS1waC1sYWJlbCwuZ20tc3R5bGUgLmdtLWl3IC5nbS1zdi1sYWJlbHtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NnB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NDAwO3RleHQtc2hhZG93OnJnYmEoMCwwLDAsLjcpIDAgMXB4IDRweDtmb250LXNpemU6MTJweH0uZ20tc3R5bGUgLmdtLWl3IC5nbS1zdGFycy1iLC5nbS1zdHlsZSAuZ20taXcgLmdtLXN0YXJzLWZ7aGVpZ2h0OjEzcHg7Zm9udC1zaXplOjB9LmdtLXN0eWxlIC5nbS1pdyAuZ20tc3RhcnMtYntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDt3aWR0aDo2NXB4O3RvcDozcHg7bWFyZ2luOjAgNXB4fS5nbS1zdHlsZSAuZ20taXcgLmdtLXJldntsaW5lLWhlaWdodDoyMHB4Oy1tcy11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9LmdtLXN0eWxlIC5nbS1pdyAuZ20tbnVtZXJpYy1yZXZ7Zm9udC1zaXplOjE2cHg7Y29sb3I6I2RkNGIzOTtmb250LXdlaWdodDo0MDB9LmdtLXN0eWxlIC5nbS1pdy5nbS10cmFuc2l0e21hcmdpbi1sZWZ0OjE1cHh9LmdtLXN0eWxlIC5nbS1pdy5nbS10cmFuc2l0IHRke3ZlcnRpY2FsLWFsaWduOnRvcH0uZ20tc3R5bGUgLmdtLWl3LmdtLXRyYW5zaXQgLmdtLXRpbWV7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiM2NzY3Njc7Zm9udC13ZWlnaHQ6NzAwfS5nbS1zdHlsZSAuZ20taXcuZ20tdHJhbnNpdCBpbWd7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDttYXJnaW46MXB4IDVweCAwIC0yMHB4O2Zsb2F0OmxlZnR9LmdtLXN0eWxlLWl3LWNocntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzp2aXNpYmxlfS5nbS1zdHlsZS1pdy1jaHstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MTstd2Via2l0LWZsZXgtc2hyaW5rOjE7ZmxleC1zaHJpbms6MTtwYWRkaW5nLXRvcDoxN3B4O292ZXJmbG93OmhpZGRlbn1zZW50aW5lbHt9XG5gO2VJLkdIPV8uREI7Xy5aST1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoYSxiKT0+e3RoaXMucmVzb2x2ZT1hO3RoaXMucmVqZWN0PWJ9KX19O18uZ0kucHJvdG90eXBlLnJoPTA7Xy5nSS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnFoPXRoaXMuc2g9dGhpcy50aDt0aGlzLnJoPTB9O18uZ0kucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2h9O18uS0VhPXtzdHJva2VDb2xvcjoiIzAwMDAwMCIsc3Ryb2tlT3BhY2l0eToxLHN0cm9rZVdlaWdodDozLGNsaWNrYWJsZTohMH07Xy5MRWE9e3N0cm9rZUNvbG9yOiIjMDAwMDAwIixzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2VpZ2h0OjMsc3Ryb2tlUG9zaXRpb246MCxmaWxsQ29sb3I6IiMwMDAwMDAiLGZpbGxPcGFjaXR5Oi4zLGNsaWNrYWJsZTohMH07dmFyIGpJPWNsYXNze2NvbnN0cnVjdG9yKGE9MCxiPTAsYz0wLGQ9MSl7dGhpcy5yZWQ9YTt0aGlzLmdyZWVuPWI7dGhpcy5ibHVlPWM7dGhpcy5hbHBoYT1kfWVxdWFscyhhKXtyZXR1cm4gdGhpcy5yZWQ9PT1hLnJlZCYmdGhpcy5ncmVlbj09PWEuZ3JlZW4mJnRoaXMuYmx1ZT09PWEuYmx1ZSYmdGhpcy5hbHBoYT09PWEuYWxwaGF9fTt2YXIgaUk9bmV3IE1hcCxyRGE9e3RyYW5zcGFyZW50Om5ldyBqSSgwLDAsMCwwKSxibGFjazpuZXcgakkoMCwwLDApLHNpbHZlcjpuZXcgakkoMTkyLDE5MiwxOTIpLGdyYXk6bmV3IGpJKDEyOCwxMjgsMTI4KSx3aGl0ZTpuZXcgakkoMjU1LDI1NSwyNTUpLG1hcm9vbjpuZXcgakkoMTI4LDAsMCkscmVkOm5ldyBqSSgyNTUsMCwwKSxwdXJwbGU6bmV3IGpJKDEyOCwwLDEyOCksZnVjaHNpYTpuZXcgakkoMjU1LDAsMjU1KSxncmVlbjpuZXcgakkoMCwxMjgsMCksbGltZTpuZXcgakkoMCwyNTUsMCksb2xpdmU6bmV3IGpJKDEyOCwxMjgsMCkseWVsbG93Om5ldyBqSSgyNTUsMjU1LDApLG5hdnk6bmV3IGpJKDAsMCwxMjgpLGJsdWU6bmV3IGpJKDAsMCwyNTUpLHRlYWw6bmV3IGpJKDAsMTI4LDEyOCksYXF1YTpuZXcgakkoMCwyNTUsMjU1KX0sa0k9e1BNOi9eIyhbXGRhLWZdKShbXGRhLWZdKShbXGRhLWZdKShbXGRhLWZdKT8kLyx3TTovXiMoW1xkYS1mXXsyfSkoW1xkYS1mXXsyfSkoW1xkYS1mXXsyfSkoW1xkYS1mXXsyfSk/JC8sCnNQOlJlZ0V4cCgiXnJnYlxcKFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqXFwpJCIpLHVQOlJlZ0V4cCgiXnJnYmFcXChcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pXFxzKlxcKSQiKSx0UDpSZWdFeHAoIl5yZ2JcXChcXHMqKFxcZCsoPzpcXC5cXGQrKT8pJVxccyosXFxzKihcXGQrKD86XFwuXFxkKyk/KSVcXHMqLFxccyooXFxkKyg/OlxcLlxcZCspPyklXFxzKlxcKSQiKSx2UDpSZWdFeHAoIl5yZ2JhXFwoXFxzKihcXGQrKD86XFwuXFxkKyk/KSVcXHMqLFxccyooXFxkKyg/OlxcLlxcZCspPyklXFxzKixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pJVxccyosXFxzKihcXGQrKD86XFwuXFxkKyk/KVxccypcXCkkIil9O3ZhciBNRWE9KDAsXy5HailgLmV4Q1ZSTi1zaXplLW9ic2VydmVyLXZpZXd7Ym90dG9tOjA7bGVmdDowO29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3otaW5kZXg6LTF9LmV4Q1ZSTi1zaXplLW9ic2VydmVyLXZpZXcgaWZyYW1le2JvcmRlcjowO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfVxuYDtfLiRJPWNsYXNzIGV4dGVuZHMgXy5HdHtjb25zdHJ1Y3RvcihhPXt9KXtzdXBlcihhKTtfLlN0KE1FYSx0aGlzLmVsZW1lbnQpO18uVHEodGhpcy5lbGVtZW50LCJzaXplLW9ic2VydmVyLXZpZXciKTt0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTt2YXIgYj0wLGM9MCxkPSgpPT57dmFyIGY9dGhpcy5lbGVtZW50LmNsaWVudFdpZHRoLGc9dGhpcy5lbGVtZW50LmNsaWVudEhlaWdodDtpZihiIT09Znx8YyE9PWcpYj1mLGM9ZyxfLnduKHRoaXMsInNpemVjaGFuZ2UiLHt3aWR0aDpmLGhlaWdodDpnfSl9LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e2QoKTtlLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixkKX0pO2Uuc3JjPSJhYm91dDpibGFuayI7ZS50YWJJbmRleD0tMTt0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7dGhpcy54aShhLF8uJEksCiJTaXplT2JzZXJ2ZXJWaWV3Iil9fTtfLmFKPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5ib3VuZHM9YTt0aGlzLmRlcHRoPWJ8fDB9cmVtb3ZlKGEpe2lmKHRoaXMuY2hpbGRyZW4pZm9yKGxldCBiPTA7Yjw0OysrYil7bGV0IGM9dGhpcy5jaGlsZHJlbltiXTtpZihjLmJvdW5kcy5jb250YWluc0JvdW5kcyhhKSl7Yy5yZW1vdmUoYSk7cmV0dXJufX1fLm9tKHRoaXMuaXRlbXMsYSl9c2VhcmNoKGEsYil7Yj1ifHxbXTtfLm5JKHRoaXMsYz0+e2IucHVzaChjKX0sYz0+Xy5BbyhhLGMpKTtyZXR1cm4gYn1zcGxpdCgpe3ZhciBhPXRoaXMuYm91bmRzLGI9dGhpcy5jaGlsZHJlbj1bXSxjPVthLm1pblgsKGEubWluWCthLm1heFgpLzIsYS5tYXhYXTthPVthLm1pblksKGEubWluWSthLm1heFkpLzIsYS5tYXhZXTt2YXIgZD10aGlzLmRlcHRoKzE7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aC0xOysrZSlmb3IobGV0IGY9MDtmPGEubGVuZ3RoLTE7KytmKXtsZXQgZz1uZXcgXy55byhbbmV3IF8uYm8oY1tlXSxhW2ZdKSxuZXcgXy5ibyhjW2UrCjFdLGFbZisxXSldKTtiLnB1c2gobmV3IF8uYUooZyxkKSl9Yj10aGlzLml0ZW1zO2RlbGV0ZSB0aGlzLml0ZW1zO2ZvcihsZXQgZT0wLGY9Yi5sZW5ndGg7ZTxmOysrZSlfLm1JKHRoaXMsYltlXSl9fTt2YXIgTkVhO18uT0VhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuY29udGV4dD1hO3RoaXMucWg9bmV3IE5FYShhKX10aShhLGIsYyxkLGUpe2lmKGUpe3ZhciBmPXRoaXMuY29udGV4dDtmLnNhdmUoKTtmLnRyYW5zbGF0ZShiLGMpO2Yuc2NhbGUoZSxlKTtmLnJvdGF0ZShkKTtmb3IobGV0IGc9MCxoPWEubGVuZ3RoO2c8aDsrK2cpYVtnXS5hY2NlcHQodGhpcy5xaCk7Zi5yZXN0b3JlKCl9fX07Ck5FYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNvbnRleHQ9YX15SyhhKXt0aGlzLmNvbnRleHQubW92ZVRvKGEueCxhLnkpfXRLKCl7dGhpcy5jb250ZXh0LmNsb3NlUGF0aCgpfXhLKGEpe3RoaXMuY29udGV4dC5saW5lVG8oYS54LGEueSl9dUsoYSl7dGhpcy5jb250ZXh0LmJlemllckN1cnZlVG8oYS5xaCxhLnJoLGEuc2gsYS50aCxhLngsYS55KX1BSyhhKXt0aGlzLmNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhhLnFoLGEucmgsYS54LGEueSl9dksoYSl7dmFyIGI9YS5zaDwwLGM9YS5yaC9hLnFoLGQ9dERhKGEudGgsYyksZT10RGEoYS50aCthLnNoLGMpLGY9dGhpcy5jb250ZXh0O2Yuc2F2ZSgpO2YudHJhbnNsYXRlKGEueCxhLnkpO2Yucm90YXRlKGEucm90YXRpb24pO2Yuc2NhbGUoYywxKTtmLmFyYygwLDAsYS5xaCxkLGUsYik7Zi5yZXN0b3JlKCl9fTt2YXIgY0o7Cl8uYko9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5yaD10aGlzLndtPW51bGw7dGhpcy5lbmFibGVkPSExO3RoaXMuc2g9MDt0aGlzLnRoPXRoaXMud2g9bnVsbDt0aGlzLnloPWE7dGhpcy5xaD1fLkVzO3RoaXMueGg9Xy5wb316aCgpe2lmKCF0aGlzLndtfHx0aGlzLnFoLmNvbnRhaW5zQm91bmRzKHRoaXMud20pKXhEYSh0aGlzKTtlbHNle3ZhciBhPTAsYj0wO3RoaXMud20ubWF4WD49dGhpcy5xaC5tYXhYJiYoYT0xKTt0aGlzLndtLm1pblg8PXRoaXMucWgubWluWCYmKGE9LTEpO3RoaXMud20ubWF4WT49dGhpcy5xaC5tYXhZJiYoYj0xKTt0aGlzLndtLm1pblk8PXRoaXMucWgubWluWSYmKGI9LTEpO3ZhciBjPTE7Xy5aSCh0aGlzLndoKSYmKGM9dGhpcy53aC5uZXh0KCkpO3RoaXMudGg/KGE9TWF0aC5yb3VuZCg2KmEpLGI9TWF0aC5yb3VuZCg2KmIpKTooYT1NYXRoLnJvdW5kKHRoaXMueGgueCpjKmEpLGI9TWF0aC5yb3VuZCh0aGlzLnhoLnkqYypiKSk7dGhpcy5zaD1fLkxFKHRoaXMsCnRoaXMuemgscUkpO3RoaXMueWgoYSxiKX19cmVsZWFzZSgpe3hEYSh0aGlzKX19O18uU3A/Y0o9MUUzLyhfLlNwLnFoLnR5cGU9PT0xPzIwOjUwKTpjSj0wO3ZhciBxST1jSix1RGE9MUUzL3FJO18uUEVhPWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3RvcihhLGI9ITEsYyl7c3VwZXIoKTt0aGlzLnNpemVfY2hhbmdlZD10aGlzLnBvc2l0aW9uX2NoYW5nZWQ7dGhpcy5wYW5uaW5nRW5hYmxlZF9jaGFuZ2VkPXRoaXMuZHJhZ2dpbmdfY2hhbmdlZDt0aGlzLnNoPWJ8fCExO3RoaXMucWg9bmV3IF8uYkooKGYsZyk9Pnt0aGlzLnFoJiZfLnduKHRoaXMsInBhbmJ5bm93IixmLGcpfSk7dGhpcy5yaD1bXy5zbih0aGlzLCJtb3Zlc3RhcnQiLHRoaXMsdGhpcy5rbiksXy5zbih0aGlzLCJtb3ZlIix0aGlzLHRoaXMuam4pLF8uc24odGhpcywibW92ZWVuZCIsdGhpcyx0aGlzLkpuKSxfLnNuKHRoaXMsInBhbmJ5bm93Iix0aGlzLHRoaXMudGgpXTt0aGlzLmN1cnNvcj1uZXcgXy56QihhLG5ldyBfLnNCKHRoaXMsImRyYWdnaW5nQ3Vyc29yIiksbmV3IF8uc0IodGhpcywiZHJhZ2dhYmxlQ3Vyc29yIikpO3ZhciBkPW51bGwsZT0hMTt0aGlzLnpqPV8ucXgoYSx7R3M6e2tuOihmLGcpPT4Ke18uU3lhKGcpO18uSnkodGhpcy5jdXJzb3IsITApO2Q9ZjtlfHwoZT0hMCxfLnduKHRoaXMsIm1vdmVzdGFydCIsZy5xaCkpfSxqbjooZixnKT0+e2QmJihfLnduKHRoaXMsIm1vdmUiLHtjbGllbnRYOmYuRWouY2xpZW50WC1kLkVqLmNsaWVudFgsY2xpZW50WTpmLkVqLmNsaWVudFktZC5Fai5jbGllbnRZfSxnLnFoKSxkPWYpfSxKbjooZixnKT0+e2U9ITE7Xy5KeSh0aGlzLmN1cnNvciwhMSk7ZD1udWxsO18ud24odGhpcywibW92ZWVuZCIsZy5xaCl9fX0sYyl9Y29udGFpbmVyUGl4ZWxCb3VuZHNfY2hhbmdlZCgpe3RoaXMucWgmJl8uckkodGhpcy5xaCx0aGlzLmdldCgiY29udGFpbmVyUGl4ZWxCb3VuZHMiKSl9cG9zaXRpb25fY2hhbmdlZCgpe3ZhciBhPXRoaXMuZ2V0KCJwb3NpdGlvbiIpO2lmKGEpe3ZhciBiPXRoaXMuZ2V0KCJzaXplIil8fF8ucW8sYz10aGlzLmdldCgiYW5jaG9yUG9pbnQiKXx8Xy5wbzt6RGEodGhpcyxfLnlEYShhLGIsYykpfWVsc2UgekRhKHRoaXMsCm51bGwpfWRyYWdnaW5nX2NoYW5nZWQoKXt2YXIgYT10aGlzLmdldCgicGFubmluZ0VuYWJsZWQiKSxiPXRoaXMuZ2V0KCJkcmFnZ2luZyIpO3RoaXMucWgmJl8uc0kodGhpcy5xaCxhIT09ITEmJmIpfWtuKGEpe3RoaXMuc2V0KCJkcmFnZ2luZyIsITApO18ud24odGhpcywiZHJhZ3N0YXJ0IixhKX1qbihhLGIpe2lmKHRoaXMuc2gpdGhpcy5zZXQoImRlbHRhQ2xpZW50UG9zaXRpb24iLGEpO2Vsc2V7bGV0IGM9dGhpcy5nZXQoInBvc2l0aW9uIik7dGhpcy5zZXQoInBvc2l0aW9uIixuZXcgXy5ibyhjLngrYS5jbGllbnRYLGMueSthLmNsaWVudFkpKX1fLnduKHRoaXMsImRyYWciLGIpfUpuKGEpe3RoaXMuc2gmJnRoaXMuc2V0KCJkZWx0YUNsaWVudFBvc2l0aW9uIix7Y2xpZW50WDowLGNsaWVudFk6MH0pO3RoaXMuc2V0KCJkcmFnZ2luZyIsITEpO18ud24odGhpcywiZHJhZ2VuZCIsYSl9dGgoYSxiKXtpZighdGhpcy5zaCl7bGV0IGM9dGhpcy5nZXQoInBvc2l0aW9uIik7Yy54Kz0KYTtjLnkrPWI7dGhpcy5zZXQoInBvc2l0aW9uIixjKX19cmVsZWFzZSgpe3RoaXMucWgucmVsZWFzZSgpO3RoaXMucWg9bnVsbDtpZih0aGlzLnJoLmxlbmd0aD4wKXtmb3IobGV0IGI9MCxjPXRoaXMucmgubGVuZ3RoO2I8YztiKyspXy5tbih0aGlzLnJoW2JdKTt0aGlzLnJoPVtdfXRoaXMuemoucmVtb3ZlKCk7dmFyIGE9dGhpcy5jdXJzb3I7YS5zaC5yZW1vdmVMaXN0ZW5lcihhLnFoKTthLnJoLnJlbW92ZUxpc3RlbmVyKGEucWgpO2EuTnEmJmEuTnEucmVtb3ZlTGlzdGVuZXIoYS5xaCl9fTtfLmRKPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQsZT1udWxsLGY9MCxnPW51bGwpe3RoaXMuUWs9YTt0aGlzLnZpZXc9Yjt0aGlzLnBvc2l0aW9uPWM7dGhpcy5SaD1kO3RoaXMuc2g9ZTt0aGlzLmFsdGl0dWRlPWY7dGhpcy5JQT1nO3RoaXMuc2NhbGU9dGhpcy5vcmlnaW49dGhpcy5jZW50ZXI9dGhpcy5yaD10aGlzLnFoPW51bGw7dGhpcy50aD0wfWdldFBvc2l0aW9uKGEpe3JldHVybihhPWF8fHRoaXMucWgpPyhhPXRoaXMuUmguRG4oYSksdGhpcy5Ray53cmFwKGEpKTp0aGlzLnBvc2l0aW9ufWdwKGEpe3JldHVybihhPWF8fHRoaXMucG9zaXRpb24pJiZ0aGlzLmNlbnRlcj90aGlzLlJoLkVGKF8ud3YodGhpcy5RayxhLHRoaXMuY2VudGVyKSk6dGhpcy5xaH1zZXRQb3NpdGlvbihhLGI9MCl7YSYmYS5lcXVhbHModGhpcy5wb3NpdGlvbikmJnRoaXMuYWx0aXR1ZGU9PT1ifHwodGhpcy5xaD1udWxsLHRoaXMucG9zaXRpb249YSx0aGlzLmFsdGl0dWRlPWIsdGhpcy5SaC5yZWZyZXNoKCkpfXRpKGEsCmIsYyxkLGUsZixnKXt2YXIgaD10aGlzLm9yaWdpbixrPXRoaXMuc2NhbGU7dGhpcy5jZW50ZXI9Zjt0aGlzLm9yaWdpbj1iO3RoaXMuc2NhbGU9YzthPXRoaXMucG9zaXRpb247dGhpcy5xaCYmKGE9dGhpcy5nZXRQb3NpdGlvbigpKTtpZihhKXt2YXIgbT1fLnd2KHRoaXMuUWssYSxmKTthPXRoaXMuSUE/dGhpcy5JQSh0aGlzLmFsdGl0dWRlLGUsXy56dihjKSk6MDttLmVxdWFscyh0aGlzLnJoKSYmYi5lcXVhbHMoaCkmJmMuZXF1YWxzKGspJiZhPT09dGhpcy50aHx8KHRoaXMucmg9bSx0aGlzLnRoPWEsYy5xaD8oaD1jLnFoLGs9aC5CbyhtLGYsXy56dihjKSxlLGQsZyksYj1oLkJvKGIsZixfLnp2KGMpLGUsZCxnKSxiPXtYaDprWzBdLWJbMF0sWWg6a1sxXS1iWzFdfSk6Yj1fLnl2KGMsXy51dihtLGIpKSxiPV8ueHYoe1hoOmIuWGgsWWg6Yi5ZaC1hfSksTWF0aC5hYnMoYi5YaCk8MUU1JiZNYXRoLmFicyhiLlloKTwxRTU/dGhpcy52aWV3LnRxKGIsYyxnKTp0aGlzLnZpZXcudHEobnVsbCwKYykpfWVsc2UgdGhpcy5yaD1udWxsLHRoaXMudmlldy50cShudWxsLGMpO3RoaXMuc2gmJnRoaXMuc2goKX1kaXNwb3NlKCl7dGhpcy52aWV3LmR2KCl9fTtfLmVKPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLkNpPW51bGw7dGhpcy50aWxlcz1hO18ucXYoYyxkPT57ZCYmZC5DaSE9PXRoaXMuQ2kmJih0aGlzLkNpPWQuQ2kpfSk7dGhpcy5Raz1ifX07dmFyIEREYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmluZGV4PTA7dGhpcy50b2tlbj1udWxsO3RoaXMucWg9MDt0aGlzLm51bWJlcj10aGlzLmNvbW1hbmQ9bnVsbDt0aGlzLnBhdGg9YXx8IiJ9bmV4dCgpe2Zvcih2YXIgYSxiPTAsYz1mPT57dGhpcy50b2tlbj1mO3RoaXMucWg9YTt2YXIgZz10aGlzLnBhdGguc3Vic3RyaW5nKGEsdGhpcy5pbmRleCk7Zj09PTE/dGhpcy5jb21tYW5kPWc6Zj09PTImJih0aGlzLm51bWJlcj1OdW1iZXIoZykpfSxkLGU9KCk9Pnt0aHJvdyBFcnJvcihgVW5leHBlY3RlZCAke2R8fCI8ZW5kPiJ9IGF0IHBvc2l0aW9uICR7dGhpcy5pbmRleH1gKTt9Ozspe2Q9dGhpcy5pbmRleD49dGhpcy5wYXRoLmxlbmd0aD9udWxsOnRoaXMucGF0aC5jaGFyQXQodGhpcy5pbmRleCk7c3dpdGNoKGIpe2Nhc2UgMDphPXRoaXMuaW5kZXg7aWYoZCYmIk1tWnpMbEhoVnZDY1NzUXFUdEFhIi5pbmRleE9mKGQpPj0wKWI9MTtlbHNlIGlmKGQ9PT0iKyJ8fGQ9PT0iLSIpYj0KMjtlbHNlIGlmKHhJKGQpKWI9NDtlbHNlIGlmKGQ9PT0iLiIpYj0zO2Vsc2V7aWYoZD09bnVsbCl7YygwKTtyZXR1cm59IiwgXHRcclxuIi5pbmRleE9mKGQpPDAmJmUoKX1icmVhaztjYXNlIDE6YygxKTtyZXR1cm47Y2FzZSAyOmQ9PT0iLiI/Yj0zOnhJKGQpP2I9NDplKCk7YnJlYWs7Y2FzZSAzOnhJKGQpP2I9NTplKCk7YnJlYWs7Y2FzZSA0OmlmKGQ9PT0iLiIpYj01O2Vsc2UgaWYoZD09PSJFInx8ZD09PSJlIiliPTY7ZWxzZSBpZigheEkoZCkpe2MoMik7cmV0dXJufWJyZWFrO2Nhc2UgNTppZihkPT09IkUifHxkPT09ImUiKWI9NjtlbHNlIGlmKCF4SShkKSl7YygyKTtyZXR1cm59YnJlYWs7Y2FzZSA2OnhJKGQpP2I9ODpkPT09IisifHxkPT09Ii0iP2I9NzplKCk7YnJlYWs7Y2FzZSA3OnhJKGQpP2I9ODplKCk7Y2FzZSA4OmlmKCF4SShkKSl7YygyKTtyZXR1cm59fSsrdGhpcy5pbmRleH19fTt2YXIgQkRhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xaD1uZXcgUUVhO3RoaXMuY2FjaGU9e319fTt2YXIgS0RhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuYm91bmRzPWF9eUsoYSl7eUkodGhpcyxhLngsYS55KX10Sygpe314SyhhKXt5SSh0aGlzLGEueCxhLnkpfXVLKGEpe3lJKHRoaXMsYS5xaCxhLnJoKTt5SSh0aGlzLGEuc2gsYS50aCk7eUkodGhpcyxhLngsYS55KX1BSyhhKXt5SSh0aGlzLGEucWgsYS5yaCk7eUkodGhpcyxhLngsYS55KX12SyhhKXt2YXIgYj1NYXRoLm1heChhLnJoLGEucWgpO3RoaXMuYm91bmRzLmV4dGVuZEJ5Qm91bmRzKF8uem8oYS54LWIsYS55LWIsYS54K2IsYS55K2IpKX19O3ZhciBDRGE9e1swXToiTSAtMSwwIEEgMSwxIDAgMCAwIDEsMCAxLDEgMCAwIDAgLTEsMCB6IixbMV06Ik0gMCwwIC0xLjksNC41IDAsMy40IDEuOSw0LjUgeiIsWzJdOiJNIC0yLjEsNC41IDAsMCAyLjEsNC41IixbM106Ik0gMCwwIC0xLjksLTQuNSAwLC0zLjQgMS45LC00LjUgeiIsWzRdOiJNIC0yLjEsLTQuNSAwLDAgMi4xLC00LjUifTt2YXIgRURhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy54PWE7dGhpcy55PWJ9YWNjZXB0KGEpe2EueUsodGhpcyl9fSxGRGE9Y2xhc3N7YWNjZXB0KGEpe2EudEsoKX19LHpJPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy54PWE7dGhpcy55PWJ9YWNjZXB0KGEpe2EueEsodGhpcyl9fSxHRGE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMsZCxlLGYpe3RoaXMucWg9YTt0aGlzLnJoPWI7dGhpcy5zaD1jO3RoaXMudGg9ZDt0aGlzLng9ZTt0aGlzLnk9Zn1hY2NlcHQoYSl7YS51Syh0aGlzKX19LEhEYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyxkKXt0aGlzLnFoPWE7dGhpcy5yaD1iO3RoaXMueD1jO3RoaXMueT1kfWFjY2VwdChhKXthLkFLKHRoaXMpfX0sSkRhPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQsZSxmLGcpe3RoaXMueD1hO3RoaXMueT1iO3RoaXMucmg9Yzt0aGlzLnFoPWQ7dGhpcy5yb3RhdGlvbj1lO3RoaXMudGg9Zjt0aGlzLnNoPWd9YWNjZXB0KGEpe2EudksodGhpcyl9fTt2YXIgUUVhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5pbnN0cnVjdGlvbnM9W107dGhpcy5xaD1uZXcgXy5ibygwLDApO3RoaXMuc2g9dGhpcy5yaD10aGlzLnRoPW51bGx9fTt2YXIgTURhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5kYXRhc2V0SWQ9YTt0aGlzLmZlYXR1cmVUeXBlPSJEQVRBU0VUIjt0aGlzLmRhdGFzZXRBdHRyaWJ1dGVzPU9iamVjdC5mcmVlemUoYik7T2JqZWN0LmZyZWV6ZSh0aGlzKX19O3ZhciBORGE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMucWg9YTt0aGlzLnJoPWI7dGhpcy5tYXA9Yzt0aGlzLnBsYWNlPW51bGx9Z2V0IGZlYXR1cmVUeXBlKCl7cmV0dXJuIHRoaXMucWh9c2V0IGZlYXR1cmVUeXBlKGEpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ2dvb2dsZS5tYXBzLlBsYWNlRmVhdHVyZSAiZmVhdHVyZVR5cGUiIGlzIHJlYWQtb25seS4nKTt9Z2V0IHBsYWNlSWQoKXtfLk0od2luZG93LDE1ODc4NSk7cmV0dXJuIHRoaXMucmh9c2V0IHBsYWNlSWQoYSl7dGhyb3cgbmV3IFR5cGVFcnJvcignZ29vZ2xlLm1hcHMuUGxhY2VGZWF0dXJlICJwbGFjZUlkIiBpcyByZWFkLW9ubHkuJyk7fWFzeW5jIGZldGNoUGxhY2UoKXthd2FpdCBfLk0odGhpcy5tYXAsMTc2MzY3KTt2YXIgYT1fLm5wKHRoaXMubWFwLHtmZWF0dXJlVHlwZTp0aGlzLnFofSk7aWYoIWEuaXNBdmFpbGFibGUpcmV0dXJuIF8ub3AodGhpcy5tYXAsImdvb2dsZS5tYXBzLlBsYWNlRmVhdHVyZS5mZXRjaFBsYWNlIiwKYSksbmV3IFByb21pc2UoKGUsZik9Pnt2YXIgZz0iIjthLnFoLmZvckVhY2goaD0+e2c9ZysiICIraH0pO2d8fChnPSIgZGF0YS1kcml2ZW4gc3R5bGluZyBpcyBub3QgYXZhaWxhYmxlLiIpO2YoRXJyb3IoYGdvb2dsZS5tYXBzLlBsYWNlRmVhdHVyZS5mZXRjaFBsYWNlOiR7Z31gKSl9KTtpZih0aGlzLnBsYWNlKXJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5wbGFjZSk7dmFyIGI9YXdhaXQgXy5HeTtpZighYnx8VXlhKGIpKWlmKGI9YXdhaXQgQnphKCksIWIpcmV0dXJuIGF3YWl0IF8uTSh0aGlzLm1hcCwxNzc2OTkpLFByb21pc2UucmVqZWN0KEVycm9yKCJnb29nbGUubWFwcy5QbGFjZUZlYXR1cmUuZmV0Y2hQbGFjZTogQW4gZXJyb3Igb2NjdXJyZWQuIikpO3ZhciBjPWF3YWl0IF8uSGwoInBsYWNlcyIpLGQ9dGhpcy5tYXAuZ2V0SW50ZXJuYWxVc2FnZUF0dHJpYnV0aW9uSWRzKCk/QXJyYXkuZnJvbSh0aGlzLm1hcC5nZXRJbnRlcm5hbFVzYWdlQXR0cmlidXRpb25JZHMoKSk6CnZvaWQgMDtyZXR1cm4gbmV3IFByb21pc2UoKGUsZik9PntjLlBsYWNlLl9fZ21wZG4odGhpcy5yaCxfLkpsLnJoKCkucmgoKSxfLkpsLnJoKCkudGgoKSxiLlNrLGQpLnRoZW4oZz0+e3RoaXMucGxhY2U9ZztlKGcpfSkuY2F0Y2goKCk9PntfLk0odGhpcy5tYXAsMTc3NzAwKTtmKEVycm9yKCJnb29nbGUubWFwcy5QbGFjZUZlYXR1cmUuZmV0Y2hQbGFjZTogQW4gZXJyb3Igb2NjdXJyZWQuIikpfSl9KX19O3ZhciBmSj1bMCxfLlF6LDEsXy5VXTt2YXIgU0VhPVswLCgpPT5SRWEsXy5VXSxSRWE9WzAsWzEsMiwzLDQsNSw2LDddLF8ubXosZkosXy5teixbMCxbMiwzLDRdLGZKLF8uZXosVERhLF8ubXosXy5TeixmSl0sXy5teiwoKT0+U0VhLF8ubXosWzAsZkosLTEsXy5ZLGZKLF8uU3pdLF8ubXosWzAsZkosLTFdLF8ubXosWzAsZkosXy5QXSxfLm16LFswLF8uU3osXy5CcixmSl1dO18uVEVhPVstMTAwLHt9LF8uUXosXy5VLF8uS0ksUkVhLDk0LF8uVV07dmFyIENJO18uQkk9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnJoPWdsb2JhbFRoaXMuQmlnSW50LmFzVWludE4oNjQsYSk7dGhpcy5xaD1nbG9iYWxUaGlzLkJpZ0ludC5hc1VpbnROKDY0LGIpfXRvU3RyaW5nKCl7cmV0dXJuYDB4JHt0aGlzLnJoLnRvU3RyaW5nKDE2KX06MHgke3RoaXMucWgudG9TdHJpbmcoMTYpfWB9fTtDST1nbG9iYWxUaGlzLkJpZ0ludCgwKTtfLlVFYT1jbGFzcyBleHRlbmRzIF8ueW57Y29uc3RydWN0b3IoYSl7c3VwZXIoKTtbIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW92ZXN0YXJ0IiwibW92ZSIsIm1vdmVlbmQiXS5mb3JFYWNoKGQ9PnthLmluY2x1ZGVzKGQpfHxhLnB1c2goZCl9KTt0aGlzLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtfLnd3KHRoaXMuZGl2LDJFOSk7dGhpcy5xaD1uZXcgXy5iSigoZCxlKT0+e2EuaW5jbHVkZXMoInBhbmJ5bm93IikmJnRoaXMucWgmJl8ud24odGhpcywicGFuYnlub3ciLGQsZSl9KTt0aGlzLnJoPVFEYSh0aGlzKTt0aGlzLnJoLmJpbmRUbygicGFuQXRFZGdlIix0aGlzKTt2YXIgYj10aGlzO3RoaXMuY3Vyc29yPW5ldyBfLnpCKHRoaXMuZGl2LG5ldyBfLnNCKGIsImRyYWdnaW5nQ3Vyc29yIiksbmV3IF8uc0IoYiwiZHJhZ2dhYmxlQ3Vyc29yIikpO3ZhciBjPSExO3RoaXMuemo9Xy5xeCh0aGlzLmRpdix7V2woZCl7YS5pbmNsdWRlcygibW91c2Vkb3duIikmJl8ud24oYiwKIm1vdXNlZG93biIsZCxkLmNvb3Jkcyl9LHJ0KGQpe2EuaW5jbHVkZXMoIm1vdXNlbW92ZSIpJiZfLnduKGIsIm1vdXNlbW92ZSIsZCxkLmNvb3Jkcyl9LG1uKGQpe2EuaW5jbHVkZXMoIm1vdXNlbW92ZSIpJiZfLnduKGIsIm1vdXNlbW92ZSIsZCxkLmNvb3Jkcyl9LHVtKGQpe2EuaW5jbHVkZXMoIm1vdXNldXAiKSYmXy53bihiLCJtb3VzZXVwIixkLGQuY29vcmRzKX0sTGw6KHtjb29yZHM6ZCxldmVudDplLFdyOmZ9KT0+e2UuYnV0dG9uPT09Mz9mfHxhLmluY2x1ZGVzKCJyaWdodGNsaWNrIikmJl8ud24oYiwicmlnaHRjbGljayIsZSxkKTpmP2EuaW5jbHVkZXMoImRibGNsaWNrIikmJl8ud24oYiwiZGJsY2xpY2siLGUsZCk6YS5pbmNsdWRlcygiY2xpY2siKSYmXy53bihiLCJjbGljayIsZSxkKX0sR3M6e2tuKGQsZSl7Yz9hLmluY2x1ZGVzKCJtb3ZlIikmJihfLkp5KGIuY3Vyc29yLCEwKSxfLnduKGIsIm1vdmUiLG51bGwsZC5FaikpOihjPSEwLGEuaW5jbHVkZXMoIm1vdmVzdGFydCIpJiYKKF8uSnkoYi5jdXJzb3IsITApLF8ud24oYiwibW92ZXN0YXJ0IixlLGQuRWopKSl9LGpuKGQpe2EuaW5jbHVkZXMoIm1vdmUiKSYmXy53bihiLCJtb3ZlIixudWxsLGQuRWopfSxKbihkKXtjPSExO2EuaW5jbHVkZXMoIm1vdmVlbmQiKSYmKF8uSnkoYi5jdXJzb3IsITEpLF8ud24oYiwibW92ZWVuZCIsbnVsbCxkKSl9fX0pO3RoaXMuc2g9bmV3IF8uYUIodGhpcy5kaXYsdGhpcy5kaXYse1h1KGQpe2EuaW5jbHVkZXMoIm1vdXNlb3V0IikmJl8ud24oYiwibW91c2VvdXQiLGQpfSxZdShkKXthLmluY2x1ZGVzKCJtb3VzZW92ZXIiKSYmXy53bihiLCJtb3VzZW92ZXIiLGQpfX0pO18uc24odGhpcywibW91c2Vtb3ZlIix0aGlzLHRoaXMudGgpO18uc24odGhpcywibW91c2VvdXQiLHRoaXMsdGhpcy53aCk7Xy5zbih0aGlzLCJtb3Zlc3RhcnQiLHRoaXMsdGhpcy56aCk7Xy5zbih0aGlzLCJtb3ZlZW5kIix0aGlzLHRoaXMueGgpfXRoKGEsYil7YT1fLlVIKHRoaXMuZGl2LG51bGwpO2I9Cm5ldyBfLmJvKGIuY2xpZW50WC1hLngsYi5jbGllbnRZLWEueSk7dGhpcy5xaCYmXy5wSSh0aGlzLnFoLF8uem8oYi54LGIueSxiLngsYi55KSk7dGhpcy5yaC5zZXQoIm1vdXNlSW5zaWRlIiwhMCl9d2goKXt0aGlzLnJoLnNldCgibW91c2VJbnNpZGUiLCExKX16aCgpe3RoaXMucmguc2V0KCJkcmFnZ2luZyIsITApfXhoKCl7dGhpcy5yaC5zZXQoImRyYWdnaW5nIiwhMSl9cmVsZWFzZSgpe3RoaXMucWgucmVsZWFzZSgpO3RoaXMucWg9bnVsbDt0aGlzLnpqJiZ0aGlzLnpqLnJlbW92ZSgpO3RoaXMuc2gmJnRoaXMuc2gucmVtb3ZlKCl9cGl4ZWxCb3VuZHNfY2hhbmdlZCgpe3ZhciBhPXRoaXMuZ2V0KCJwaXhlbEJvdW5kcyIpO2E/KF8udXcodGhpcy5kaXYsbmV3IF8uYm8oYS5taW5YLGEubWluWSkpLGE9bmV3IF8uZ28oYS5tYXhYLWEubWluWCxhLm1heFktYS5taW5ZKSxfLlFwKHRoaXMuZGl2LGEpLHRoaXMucWgmJl8uckkodGhpcy5xaCxfLnpvKDAsMCxhLndpZHRoLGEuaGVpZ2h0KSkpOgooXy5RcCh0aGlzLmRpdixfLnFvKSx0aGlzLnFoJiZfLnJJKHRoaXMucWgsXy56bygwLDAsMCwwKSkpfXBhbmVzX2NoYW5nZWQoKXtSRGEodGhpcyl9YWN0aXZlX2NoYW5nZWQoKXtSRGEodGhpcyl9fTtfLmdKPWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dmFyIGM9Yj9fLkxFYTpfLktFYSxkPXRoaXMucWg9bmV3IF8uaHJhKGMpO2QuY2hhbmdlZD0oKT0+e3ZhciBlPWQuZ2V0KCJzdHJva2VDb2xvciIpLGY9ZC5nZXQoInN0cm9rZU9wYWNpdHkiKSxnPWQuZ2V0KCJzdHJva2VXZWlnaHQiKSxoPWQuZ2V0KCJmaWxsQ29sb3IiKSxrPWQuZ2V0KCJmaWxsT3BhY2l0eSIpOyFifHxmIT09MCYmZyE9PTB8fChlPWgsZj1rLGc9Z3x8Yy5zdHJva2VXZWlnaHQpO2g9ZiouNTt0aGlzLnNldCgic3Ryb2tlQ29sb3IiLGUpO3RoaXMuc2V0KCJzdHJva2VPcGFjaXR5IixmKTt0aGlzLnNldCgiZ2hvc3RTdHJva2VPcGFjaXR5IixoKTt0aGlzLnNldCgic3Ryb2tlV2VpZ2h0IixnKX07Xy5RRShkLFsic3Ryb2tlQ29sb3IiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2VpZ2h0IiwiZmlsbENvbG9yIiwiZmlsbE9wYWNpdHkiXSxhKX1yZWxlYXNlKCl7dGhpcy5xaC51bmJpbmRBbGwoKX19O18uVkVhPWNsYXNzIGV4dGVuZHMgXy55bntjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dmFyIGE9bmV3IF8ud3Qoe2NsaWNrYWJsZTohMX0pO2EuYmluZFRvKCJtYXAiLHRoaXMpO2EuYmluZFRvKCJnZW9kZXNpYyIsdGhpcyk7YS5iaW5kVG8oInN0cm9rZUNvbG9yIix0aGlzKTthLmJpbmRUbygic3Ryb2tlT3BhY2l0eSIsdGhpcyk7YS5iaW5kVG8oInN0cm9rZVdlaWdodCIsdGhpcyk7dGhpcy5yaD1hO3RoaXMucWg9Xy5GSSgpO3RoaXMucWguYmluZFRvKCJ6SW5kZXgiLHRoaXMpO2EuYmluZFRvKCJ6SW5kZXgiLHRoaXMucWgsImdob3N0WkluZGV4Iil9ZnJlZVZlcnRleFBvc2l0aW9uX2NoYW5nZWQoKXt2YXIgYT10aGlzLnJoLmdldFBhdGgoKTthLmNsZWFyKCk7dmFyIGI9dGhpcy5nZXQoImFuY2hvcnMiKSxjPXRoaXMuZ2V0KCJmcmVlVmVydGV4UG9zaXRpb24iKTtiJiZfLiRsKGIpJiZjJiYoYS5wdXNoKGJbMF0pLGEucHVzaChjKSxiLmxlbmd0aD49MiYmYS5wdXNoKGJbMV0pKX1hbmNob3JzX2NoYW5nZWQoKXt0aGlzLmZyZWVWZXJ0ZXhQb3NpdGlvbl9jaGFuZ2VkKCl9fTt9KTsK"}},"time_used":24,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":12,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/animate.min.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.607Z","timestamp":1785126645607,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/animate.min.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 3733\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":52789,"size_decoded":3981,"mime_type":"text/css","magic":"ASCII text, with very long lines (52592)","md5":"178b651958ceff556cbc5f355e08bbf1","sha1":"97afa151569f046b2e01f27c1871646e9cd87caf","sha256":"8fe3fa119255adb5e0c12479331f9e092e85bcff56ab6ecc0510bfa2056b898d","sha512":"4f251a31b62b28565f41fa7ef67406384b7ebc6bb89caccb93429a5779c589f2f72bc9fb9736fc0dac93ccb38ad29372cf1189cc6452c3bf1ef31a89854449dd","ssdeep":"768:KkZcIOIVjl2eIWInPywe1aAvkqDX3oyq5BrieD0OTbsysV:KkZ8Pywe1aAvkqDX3oyq5BrieD0OTq","tlshash":"253305ae5891129950274f67c7cc5ea8872dc7a714621cde33826c4b8b47fde33da607","first_seen":"2023-04-05T13:46:05Z","last_seen":"2026-07-27T07:48:14.817164Z","times_seen":17118,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsKCi8qIQogKiBhbmltYXRlLmNzcyAtaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZQogKiBWZXJzaW9uIC0gMy41LjEKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTYgRGFuaWVsIEVkZW4KICovCgouYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uYW5pbWF0ZWQuaW5maW5pdGV7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9LmFuaW1hdGVkLmhpbmdley13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoyc30uYW5pbWF0ZWQuYm91bmNlSW4sLmFuaW1hdGVkLmJvdW5jZU91dCwuYW5pbWF0ZWQuZmxpcE91dFgsLmFuaW1hdGVkLmZsaXBPdXRZey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi43NXM7YW5pbWF0aW9uLWR1cmF0aW9uOi43NXN9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZXswJSwyMCUsNTMlLDgwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfTQwJSw0MyV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKX00MCUsNDMlLDcwJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNzU1LC4wNSwuODU1LC4wNil9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNHB4LDApfX1Aa2V5ZnJhbWVzIGJvdW5jZXswJSwyMCUsNTMlLDgwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfTQwJSw0MyV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKX00MCUsNDMlLDcwJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNzU1LC4wNSwuODU1LC4wNil9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNHB4LDApfX0uYm91bmNley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNlO2FuaW1hdGlvbi1uYW1lOmJvdW5jZTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b219QC13ZWJraXQta2V5ZnJhbWVzIGZsYXNoezAlLDUwJSx0b3tvcGFjaXR5OjF9MjUlLDc1JXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgZmxhc2h7MCUsNTAlLHRve29wYWNpdHk6MX0yNSUsNzUle29wYWNpdHk6MH19LmZsYXNoey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Zmxhc2g7YW5pbWF0aW9uLW5hbWU6Zmxhc2h9QC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMDUsMS4wNSwxLjA1KTt0cmFuc2Zvcm06c2NhbGUzZCgxLjA1LDEuMDUsMS4wNSl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fUBrZXlmcmFtZXMgcHVsc2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwxLjA1LDEuMDUpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDUsMS4wNSwxLjA1KX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19LnB1bHNley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cHVsc2U7YW5pbWF0aW9uLW5hbWU6cHVsc2V9QC13ZWJraXQta2V5ZnJhbWVzIHJ1YmJlckJhbmR7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9MzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4yNSwuNzUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4yNSwuNzUsMSl9NDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjc1LDEuMjUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoLjc1LDEuMjUsMSl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xNSwuODUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xNSwuODUsMSl9NjUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjk1LDEuMDUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoLjk1LDEuMDUsMSl9NzUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwuOTUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwuOTUsMSl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fUBrZXlmcmFtZXMgcnViYmVyQmFuZHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjI1LC43NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjI1LC43NSwxKX00MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNzUsMS4yNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCguNzUsMS4yNSwxKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjE1LC44NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjE1LC44NSwxKX02NSV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOTUsMS4wNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCguOTUsMS4wNSwxKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjA1LC45NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjA1LC45NSwxKX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19LnJ1YmJlckJhbmR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpydWJiZXJCYW5kO2FuaW1hdGlvbi1uYW1lOnJ1YmJlckJhbmR9QC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlezAlLHRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9MTAlLDMwJSw1MCUsNzAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTBweCwwLDApfTIwJSw0MCUsNjAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKX19QGtleWZyYW1lcyBzaGFrZXswJSx0b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfTEwJSwzMCUsNTAlLDcwJSw5MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKX0yMCUsNDAlLDYwJSw4MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCl9fS5zaGFrZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNoYWtlO2FuaW1hdGlvbi1uYW1lOnNoYWtlfUAtd2Via2l0LWtleWZyYW1lcyBoZWFkU2hha2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX02LjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyl9MTguNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpfTMxLjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyl9NDMuNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1Aa2V5ZnJhbWVzIGhlYWRTaGFrZXswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfTYuNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKX0xOC41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyl9MzEuNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKX00My41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fS5oZWFkU2hha2V7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpoZWFkU2hha2U7YW5pbWF0aW9uLW5hbWU6aGVhZFNoYWtlfUAtd2Via2l0LWtleWZyYW1lcyBzd2luZ3syMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKX00MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC01ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19QGtleWZyYW1lcyBzd2luZ3syMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKX00MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC01ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19LnN3aW5ney13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjp0b3AgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46dG9wIGNlbnRlcjstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnN3aW5nO2FuaW1hdGlvbi1uYW1lOnN3aW5nfUAtd2Via2l0LWtleWZyYW1lcyB0YWRhezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfTEwJSwyMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSkgcm90YXRlKC0zZGVnKX0zMCUsNTAlLDcwJSw5MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKDNkZWcpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMSwxLjEsMS4xKSByb3RhdGUoM2RlZyl9NDAlLDYwJSw4MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKC0zZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyB0YWRhezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfTEwJSwyMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSkgcm90YXRlKC0zZGVnKX0zMCUsNTAlLDcwJSw5MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKDNkZWcpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMSwxLjEsMS4xKSByb3RhdGUoM2RlZyl9NDAlLDYwJSw4MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKC0zZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19LnRhZGF7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp0YWRhO2FuaW1hdGlvbi1uYW1lOnRhZGF9QC13ZWJraXQta2V5ZnJhbWVzIHdvYmJsZXswJXstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfTE1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjUlLDAsMCkgcm90YXRlKC01ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTI1JSwwLDApIHJvdGF0ZSgtNWRlZyl9MzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwJSwwLDApIHJvdGF0ZSgzZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAlLDAsMCkgcm90YXRlKDNkZWcpfTQ1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTUlLDAsMCkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTE1JSwwLDApIHJvdGF0ZSgtM2RlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwJSwwLDApIHJvdGF0ZSgyZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAlLDAsMCkgcm90YXRlKDJkZWcpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNSUsMCwwKSByb3RhdGUoLTFkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNSUsMCwwKSByb3RhdGUoLTFkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgd29iYmxlezAley13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9MTUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNSUsMCwwKSByb3RhdGUoLTVkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjUlLDAsMCkgcm90YXRlKC01ZGVnKX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAlLDAsMCkgcm90YXRlKDNkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMCUsMCwwKSByb3RhdGUoM2RlZyl9NDUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNSUsMCwwKSByb3RhdGUoLTNkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTUlLDAsMCkgcm90YXRlKC0zZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAlLDAsMCkgcm90YXRlKDJkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMCUsMCwwKSByb3RhdGUoMmRlZyl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01JSwwLDApIHJvdGF0ZSgtMWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01JSwwLDApIHJvdGF0ZSgtMWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LndvYmJsZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOndvYmJsZTthbmltYXRpb24tbmFtZTp3b2JibGV9QC13ZWJraXQta2V5ZnJhbWVzIGplbGxvezAlLDExLjElLHRvey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9MjIuMiV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTt0cmFuc2Zvcm06c2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKX0zMy4zJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyl9NDQuNCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyl9NTUuNSV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO3RyYW5zZm9ybTpza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyl9NjYuNiV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLS43ODEyNWRlZykgc2tld1koLS43ODEyNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0uNzgxMjVkZWcpIHNrZXdZKC0uNzgxMjVkZWcpfTc3Ljcley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC4zOTA2MjVkZWcpIHNrZXdZKC4zOTA2MjVkZWcpO3RyYW5zZm9ybTpza2V3WCguMzkwNjI1ZGVnKSBza2V3WSguMzkwNjI1ZGVnKX04OC44JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtLjE5NTMxMjVkZWcpIHNrZXdZKC0uMTk1MzEyNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0uMTk1MzEyNWRlZykgc2tld1koLS4xOTUzMTI1ZGVnKX19QGtleWZyYW1lcyBqZWxsb3swJSwxMS4xJSx0b3std2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfTIyLjIley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyl9MzMuMyV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7dHJhbnNmb3JtOnNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpfTQ0LjQley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpfTU1LjUley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpfTY2LjYley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0uNzgxMjVkZWcpIHNrZXdZKC0uNzgxMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtLjc4MTI1ZGVnKSBza2V3WSgtLjc4MTI1ZGVnKX03Ny43JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCguMzkwNjI1ZGVnKSBza2V3WSguMzkwNjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLjM5MDYyNWRlZykgc2tld1koLjM5MDYyNWRlZyl9ODguOCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLS4xOTUzMTI1ZGVnKSBza2V3WSgtLjE5NTMxMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtLjE5NTMxMjVkZWcpIHNrZXdZKC0uMTk1MzEyNWRlZyl9fS5qZWxsb3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmplbGxvO2FuaW1hdGlvbi1uYW1lOmplbGxvOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluezAlLDIwJSw0MCUsNjAlLDgwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyk7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpfTIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMSwxLjEsMS4xKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSl9NDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpO3RyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wMywxLjAzLDEuMDMpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDMsMS4wMywxLjAzKX04MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOTcsLjk3LC45Nyk7dHJhbnNmb3JtOnNjYWxlM2QoLjk3LC45NywuOTcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyBib3VuY2VJbnswJSwyMCUsNDAlLDYwJSw4MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKX0yMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfTQwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMDMsMS4wMywxLjAzKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjAzLDEuMDMsMS4wMyl9ODAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjk3LC45NywuOTcpO3RyYW5zZm9ybTpzY2FsZTNkKC45NywuOTcsLjk3KX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fS5ib3VuY2VJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluO2FuaW1hdGlvbi1uYW1lOmJvdW5jZUlufUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd257MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTMwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzAwMHB4LDApfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyNXB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDI1cHgsMCl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNXB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDVweCwwKX10b3std2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGJvdW5jZUluRG93bnswJSw2MCUsNzUlLDkwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMDAwcHgsMCl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDI1cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjVweCwwKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw1cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNXB4LDApfXRvey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fS5ib3VuY2VJbkRvd257LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VJbkRvd247YW5pbWF0aW9uLW5hbWU6Ym91bmNlSW5Eb3dufUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkxlZnR7MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMDBweCwwLDApfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyNXB4LDAsMCl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg1cHgsMCwwKX10b3std2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGJvdW5jZUluTGVmdHswJSw2MCUsNzUlLDkwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwMHB4LDAsMCl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyNXB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDI1cHgsMCwwKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoNXB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDVweCwwLDApfXRvey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fS5ib3VuY2VJbkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VJbkxlZnQ7YW5pbWF0aW9uLW5hbWU6Ym91bmNlSW5MZWZ0fUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJblJpZ2h0ezAlLDYwJSw3NSUsOTAlLHRvey13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwMHB4LDAsMCl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjVweCwwLDApfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNXB4LDAsMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBib3VuY2VJblJpZ2h0ezAlLDYwJSw3NSUsOTAlLHRvey13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwMHB4LDAsMCl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjVweCwwLDApfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNXB4LDAsMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LmJvdW5jZUluUmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VJblJpZ2h0O2FuaW1hdGlvbi1uYW1lOmJvdW5jZUluUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluVXB7MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMzAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDMwMDBweCwwKX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApfTkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTVweCwwKX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGJvdW5jZUluVXB7MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMzAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDMwMDBweCwwKX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApfTkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTVweCwwKX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYm91bmNlSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluVXA7YW5pbWF0aW9uLW5hbWU6Ym91bmNlSW5VcH1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0ezIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NTAlLDU1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9fUBrZXlmcmFtZXMgYm91bmNlT3V0ezIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NTAlLDU1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9fS5ib3VuY2VPdXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VPdXQ7YW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0fUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duezIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKX00MCUsNDUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCl9fUBrZXlmcmFtZXMgYm91bmNlT3V0RG93bnsyMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCl9NDAlLDQ1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApfX0uYm91bmNlT3V0RG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZU91dERvd247YW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0RG93bn1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0TGVmdHsyMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKX19QGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0ezIwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMHB4LDAsMCl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfX0uYm91bmNlT3V0TGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZU91dExlZnQ7YW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0TGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0UmlnaHR7MjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjBweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9fUBrZXlmcmFtZXMgYm91bmNlT3V0UmlnaHR7MjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjBweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9fS5ib3VuY2VPdXRSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZU91dFJpZ2h0O2FuaW1hdGlvbi1uYW1lOmJvdW5jZU91dFJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRVcHsyMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKX00MCUsNDUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCl9fUBrZXlmcmFtZXMgYm91bmNlT3V0VXB7MjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCl9NDAlLDQ1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwcHgsMCl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApfX0uYm91bmNlT3V0VXB7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VPdXRVcDthbmltYXRpb24tbmFtZTpib3VuY2VPdXRVcH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5mYWRlSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW47YW5pbWF0aW9uLW5hbWU6ZmFkZUlufUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fS5mYWRlSW5Eb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluRG93bjthbmltYXRpb24tbmFtZTpmYWRlSW5Eb3dufUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LmZhZGVJbkRvd25CaWd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW5Eb3duQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVJbkRvd25CaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LmZhZGVJbkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW5MZWZ0O2FuaW1hdGlvbi1uYW1lOmZhZGVJbkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX0uZmFkZUluTGVmdEJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbkxlZnRCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZUluTGVmdEJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LmZhZGVJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgZmFkZUluUmlnaHRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19LmZhZGVJblJpZ2h0Qmlney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHRCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHRCaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBmYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fS5mYWRlSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblVwO2FuaW1hdGlvbi1uYW1lOmZhZGVJblVwfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcEJpZ3swJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGZhZGVJblVwQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fS5mYWRlSW5VcEJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblVwQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVJblVwQmlnfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgZmFkZU91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0uZmFkZU91dHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXQ7YW5pbWF0aW9uLW5hbWU6ZmFkZU91dH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd257MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19QGtleWZyYW1lcyBmYWRlT3V0RG93bnswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfX0uZmFkZU91dERvd257LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0RG93bjthbmltYXRpb24tbmFtZTpmYWRlT3V0RG93bn1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd25CaWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCl9fUBrZXlmcmFtZXMgZmFkZU91dERvd25CaWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCl9fS5mYWRlT3V0RG93bkJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXREb3duQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVPdXREb3duQmlnfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9fUBrZXlmcmFtZXMgZmFkZU91dExlZnR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX0uZmFkZU91dExlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0TGVmdDthbmltYXRpb24tbmFtZTpmYWRlT3V0TGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnRCaWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKX19QGtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZ3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfX0uZmFkZU91dExlZnRCaWd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0TGVmdEJpZzthbmltYXRpb24tbmFtZTpmYWRlT3V0TGVmdEJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9fUBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9fS5mYWRlT3V0UmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0UmlnaHQ7YW5pbWF0aW9uLW5hbWU6ZmFkZU91dFJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9fUBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApfX0uZmFkZU91dFJpZ2h0Qmlney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dFJpZ2h0QmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVPdXRSaWdodEJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QGtleWZyYW1lcyBmYWRlT3V0VXB7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfX0uZmFkZU91dFVwey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dFVwO2FuaW1hdGlvbi1uYW1lOmZhZGVPdXRVcH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwQmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCl9fUBrZXlmcmFtZXMgZmFkZU91dFVwQmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCl9fS5mYWRlT3V0VXBCaWd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0VXBCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZU91dFVwQmlnfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xdHVybik7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xdHVybil9MCUsNDAley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgtMTkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE5MGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xNzBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgtMTcwZGVnKX01MCUsODAley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LC45NSwuOTUpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsLjk1LC45NSl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufX1Aa2V5ZnJhbWVzIGZsaXB7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTF0dXJuKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTF0dXJuKX0wJSw0MCV7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgtMTkwZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE3MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xNzBkZWcpfTUwJSw4MCV7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsLjk1LC45NSk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwuOTUsLjk1KX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59fS5hbmltYXRlZC5mbGlwey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlO2JhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXA7YW5pbWF0aW9uLW5hbWU6ZmxpcH1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtvcGFjaXR5OjB9MCUsNDAley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX19QGtleWZyYW1lcyBmbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO29wYWNpdHk6MH0wJSw0MCV7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX0uZmxpcEluWHstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblg7YW5pbWF0aW9uLW5hbWU6ZmxpcEluWH1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWXswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTtvcGFjaXR5OjB9MCUsNDAley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX19QGtleWZyYW1lcyBmbGlwSW5ZezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO29wYWNpdHk6MH0wJSw0MCV7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMjBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX0uZmxpcEluWXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZsaXBJblk7YW5pbWF0aW9uLW5hbWU6ZmxpcEluWX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0yMGRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyBmbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7b3BhY2l0eTowfX0uZmxpcE91dFh7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwT3V0WDthbmltYXRpb24tbmFtZTpmbGlwT3V0WDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFl7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xNWRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyBmbGlwT3V0WXswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTE1ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTE1ZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7b3BhY2l0eTowfX0uZmxpcE91dFl7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O2JhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwT3V0WTthbmltYXRpb24tbmFtZTpmbGlwT3V0WX1ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZEluezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSBza2V3WCgtMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2tld1goLTMwZGVnKTtvcGFjaXR5OjB9NjAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDIwZGVnKTt0cmFuc2Zvcm06c2tld1goMjBkZWcpfTYwJSw4MCV7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19QGtleWZyYW1lcyBsaWdodFNwZWVkSW57MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKC0zMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSBza2V3WCgtMzBkZWcpO29wYWNpdHk6MH02MCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goMjBkZWcpO3RyYW5zZm9ybTpza2V3WCgyMGRlZyl9NjAlLDgwJXtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC01ZGVnKTt0cmFuc2Zvcm06c2tld1goLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7b3BhY2l0eToxfX0ubGlnaHRTcGVlZEluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6bGlnaHRTcGVlZEluO2FuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRJbjstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH1ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZE91dHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTtvcGFjaXR5OjB9fS5saWdodFNwZWVkT3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6bGlnaHRTcGVlZE91dDthbmltYXRpb24tbmFtZTpsaWdodFNwZWVkT3V0Oy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW57MCV7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTIwMGRlZyk7b3BhY2l0eTowfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9dG97dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgcm90YXRlSW57MCV7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTIwMGRlZyk7b3BhY2l0eTowfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9dG97dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fS5yb3RhdGVJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZUluO2FuaW1hdGlvbi1uYW1lOnJvdGF0ZUlufUAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0ezAle3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19QGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0ezAle3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19LnJvdGF0ZUluRG93bkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb3RhdGVJbkRvd25MZWZ0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZUluRG93bkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0ezAle3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7b3BhY2l0eTowfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHR7MCV7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbX10b3t0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19LnJvdGF0ZUluRG93blJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlSW5Eb3duUmlnaHQ7YW5pbWF0aW9uLW5hbWU6cm90YXRlSW5Eb3duUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0ezAle3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tfXRve3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnR7MCV7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO29wYWNpdHk6MH0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19LnJvdGF0ZUluVXBMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlSW5VcExlZnQ7YW5pbWF0aW9uLW5hbWU6cm90YXRlSW5VcExlZnR9QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodHswJXt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7b3BhY2l0eTowfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0ezAle3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTtvcGFjaXR5OjB9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbX10b3t0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO29wYWNpdHk6MX19LnJvdGF0ZUluVXBSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZUluVXBSaWdodDthbmltYXRpb24tbmFtZTpyb3RhdGVJblVwUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dHswJXt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvcGFjaXR5OjF9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn10b3t0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjAwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIwMGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHJvdGF0ZU91dHswJXt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtvcGFjaXR5OjF9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn10b3t0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjAwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIwMGRlZyk7b3BhY2l0eTowfX0ucm90YXRlT3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlT3V0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dH1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnR7MCV7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTtvcGFjaXR5OjF9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tfXRve3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnR7MCV7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTtvcGFjaXR5OjF9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tfXRve3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9fS5yb3RhdGVPdXREb3duTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dERvd25MZWZ0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dERvd25MZWZ0fUAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHR7MCV7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207b3BhY2l0eToxfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHR7MCV7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207b3BhY2l0eToxfTAlLHRvey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBib3R0b207LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH19LnJvdGF0ZU91dERvd25SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dERvd25SaWdodDthbmltYXRpb24tbmFtZTpyb3RhdGVPdXREb3duUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdHswJXt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tO29wYWNpdHk6MX0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdHswJXt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tO29wYWNpdHk6MX0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219dG97dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTowfX0ucm90YXRlT3V0VXBMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlT3V0VXBMZWZ0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dFVwTGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodHswJXt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTtvcGFjaXR5OjF9MCUsdG97LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbX10b3t0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0ezAle3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tO29wYWNpdHk6MX0wJSx0b3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tfXRve3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7b3BhY2l0eTowfX0ucm90YXRlT3V0VXBSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dFVwUmlnaHQ7YW5pbWF0aW9uLW5hbWU6cm90YXRlT3V0VXBSaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgaGluZ2V7MCV7dHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdH0wJSwyMCUsNjAley13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH0yMCUsNjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7dHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdH00MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNzAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNzAwcHgsMCk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGhpbmdlezAle3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnR9MCUsMjAlLDYwJXstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXR9MjAlLDYwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoODBkZWcpO3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnR9NDAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0Oy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO29wYWNpdHk6MH19Lmhpbmdley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6aGluZ2U7YW5pbWF0aW9uLW5hbWU6aGluZ2V9QC13ZWJraXQta2V5ZnJhbWVzIHJvbGxJbnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKSByb3RhdGUoLTEyMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgcm90YXRlKC0xMjBkZWcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIHJvbGxJbnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKSByb3RhdGUoLTEyMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgcm90YXRlKC0xMjBkZWcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX0ucm9sbEluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm9sbEluO2FuaW1hdGlvbi1uYW1lOnJvbGxJbn1ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbE91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSByb3RhdGUoMTIwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHJvdGF0ZSgxMjBkZWcpfX1Aa2V5ZnJhbWVzIHJvbGxPdXR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgcm90YXRlKDEyMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSByb3RhdGUoMTIwZGVnKX19LnJvbGxPdXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb2xsT3V0O2FuaW1hdGlvbi1uYW1lOnJvbGxPdXR9QC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyk7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpfTUwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgem9vbUluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9NTAle29wYWNpdHk6MX19Lnpvb21Jbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21JbjthbmltYXRpb24tbmFtZTp6b29tSW59QC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsLTEwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMTAwMHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX1Aa2V5ZnJhbWVzIHpvb21JbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsLTEwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMTAwMHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX0uem9vbUluRG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21JbkRvd247YW5pbWF0aW9uLW5hbWU6em9vbUluRG93bn1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fUBrZXlmcmFtZXMgem9vbUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fS56b29tSW5MZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6em9vbUluTGVmdDthbmltYXRpb24tbmFtZTp6b29tSW5MZWZ0fUAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwwLDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fUBrZXlmcmFtZXMgem9vbUluUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwwLDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX0uem9vbUluUmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tSW5SaWdodDthbmltYXRpb24tbmFtZTp6b29tSW5SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsMTAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDEwMDBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLC02MHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLC02MHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX1Aa2V5ZnJhbWVzIHpvb21JblVwezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDEwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwxMDAwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19Lnpvb21JblVwey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6em9vbUluVXA7YW5pbWF0aW9uLW5hbWU6em9vbUluVXB9QC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXR7MCV7b3BhY2l0eToxfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9NTAlLHRve29wYWNpdHk6MH19QGtleWZyYW1lcyB6b29tT3V0ezAle29wYWNpdHk6MX01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyk7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpfTUwJSx0b3tvcGFjaXR5OjB9fS56b29tT3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6em9vbU91dDthbmltYXRpb24tbmFtZTp6b29tT3V0fUAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0RG93bns0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b207dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX1Aa2V5ZnJhbWVzIHpvb21PdXREb3duezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b207LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fS56b29tT3V0RG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21PdXREb3duO2FuaW1hdGlvbi1uYW1lOnpvb21PdXREb3dufUAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0TGVmdHs0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwwLDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgY2VudGVyfX1Aa2V5ZnJhbWVzIHpvb21PdXRMZWZ0ezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LDAsMCl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46bGVmdCBjZW50ZXJ9fS56b29tT3V0TGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21PdXRMZWZ0O2FuaW1hdGlvbi1uYW1lOnpvb21PdXRMZWZ0fUAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0UmlnaHR7NDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyfX1Aa2V5ZnJhbWVzIHpvb21PdXRSaWdodHs0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LDAsMCl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwwLDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXJ9fS56b29tT3V0UmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tT3V0UmlnaHQ7YW5pbWF0aW9uLW5hbWU6em9vbU91dFJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0VXB7NDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLDYwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsNjBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19QGtleWZyYW1lcyB6b29tT3V0VXB7NDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLDYwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsNjBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19Lnpvb21PdXRVcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21PdXRVcDthbmltYXRpb24tbmFtZTp6b29tT3V0VXB9QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5Eb3duezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgc2xpZGVJbkRvd257MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt2aXNpYmlsaXR5OnZpc2libGV9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LnNsaWRlSW5Eb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVJbkRvd247YW5pbWF0aW9uLW5hbWU6c2xpZGVJbkRvd259QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5MZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgc2xpZGVJbkxlZnR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt2aXNpYmlsaXR5OnZpc2libGV9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LnNsaWRlSW5MZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVJbkxlZnQ7YW5pbWF0aW9uLW5hbWU6c2xpZGVJbkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5SaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt2aXNpYmlsaXR5OnZpc2libGV9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBzbGlkZUluUmlnaHR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5zbGlkZUluUmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpzbGlkZUluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6c2xpZGVJblJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXB7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgc2xpZGVJblVwezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3Zpc2liaWxpdHk6dmlzaWJsZX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uc2xpZGVJblVwey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVJblVwO2FuaW1hdGlvbi1uYW1lOnNsaWRlSW5VcH1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXREb3duezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUBrZXlmcmFtZXMgc2xpZGVPdXREb3duezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fS5zbGlkZU91dERvd257LXdlYmtpdC1hbmltYXRpb24tbmFtZTpzbGlkZU91dERvd247YW5pbWF0aW9uLW5hbWU6c2xpZGVPdXREb3dufUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dExlZnR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX1Aa2V5ZnJhbWVzIHNsaWRlT3V0TGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9fS5zbGlkZU91dExlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpzbGlkZU91dExlZnQ7YW5pbWF0aW9uLW5hbWU6c2xpZGVPdXRMZWZ0fUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9fUBrZXlmcmFtZXMgc2xpZGVPdXRSaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfX0uc2xpZGVPdXRSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNsaWRlT3V0UmlnaHQ7YW5pbWF0aW9uLW5hbWU6c2xpZGVPdXRSaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRVcHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUBrZXlmcmFtZXMgc2xpZGVPdXRVcHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fS5zbGlkZU91dFVwey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVPdXRVcDthbmltYXRpb24tbmFtZTpzbGlkZU91dFVwfQ=="}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/swiper.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.858Z","timestamp":1785126645858,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/swiper.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 22446\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":96428,"size_decoded":22702,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (31999)","md5":"41609ca1a726d1d782ec172db9004d9e","sha1":"4c2688a931f79efb48b6fd0f289277dae4ea47cb","sha256":"8227c86c09f360cee0ca0b466e89da0fbdbfeeaf72d7107be1e7b4cebf06057c","sha512":"1b3deb1e6f82697145135676417b1e92efa05ec88e030f899374f4f5667e66954c2a78948601058e553ed69797b478c326966bc5688ca23c11992d6f6745436f","ssdeep":"1536:eyOkN3TklR3ZIFDJ+Y7n2L5ydUT80tSQfCBTR:LTX73uT8/","tlshash":"1593d66eb314f3e295d3214a675ac64122f21706b809dae870b54c5a68bcc5d03bffbd","first_seen":"2025-03-17T20:39:33.079777Z","last_seen":"2026-07-27T04:32:40.477196Z","times_seen":11,"resource_available":true,"data":"LyoqCiAqIFN3aXBlciAzLjQuMgogKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9ucwogKiAKICogaHR0cDovL3d3dy5pZGFuZ2Vyby51cy9zd2lwZXIvCiAqIAogKiBDb3B5cmlnaHQgMjAxNywgVmxhZGltaXIgS2hhcmxhbXBpZGkKICogVGhlIGlEYW5nZXJvLnVzCiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvCiAqIAogKiBMaWNlbnNlZCB1bmRlciBNSVQKICogCiAqIFJlbGVhc2VkIG9uOiBNYXJjaCAxMCwgMjAxNwogKi8KIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLGE9ZnVuY3Rpb24ocyxpKXtmdW5jdGlvbiByKGUpe3JldHVybiBNYXRoLmZsb29yKGUpfWZ1bmN0aW9uIG4oKXt2YXIgZT1ULnBhcmFtcy5hdXRvcGxheSxhPVQuc2xpZGVzLmVxKFQuYWN0aXZlSW5kZXgpO2EuYXR0cigiZGF0YS1zd2lwZXItYXV0b3BsYXkiKSYmKGU9YS5hdHRyKCJkYXRhLXN3aXBlci1hdXRvcGxheSIpfHxULnBhcmFtcy5hdXRvcGxheSksVC5hdXRvcGxheVRpbWVvdXRJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5wYXJhbXMubG9vcD8oVC5maXhMb29wKCksVC5fc2xpZGVOZXh0KCksVC5lbWl0KCJvbkF1dG9wbGF5IixUKSk6VC5pc0VuZD9pLmF1dG9wbGF5U3RvcE9uTGFzdD9ULnN0b3BBdXRvcGxheSgpOihULl9zbGlkZVRvKDApLFQuZW1pdCgib25BdXRvcGxheSIsVCkpOihULl9zbGlkZU5leHQoKSxULmVtaXQoIm9uQXV0b3BsYXkiLFQpKX0sZSl9ZnVuY3Rpb24gbyhhLHQpe3ZhciBzPWUoYS50YXJnZXQpO2lmKCFzLmlzKHQpKWlmKCJzdHJpbmciPT10eXBlb2YgdClzPXMucGFyZW50cyh0KTtlbHNlIGlmKHQubm9kZVR5cGUpe3ZhciBpO3JldHVybiBzLnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKGUsYSl7YT09PXQmJihpPXQpfSksaT90OnZvaWQgMH1pZigwIT09cy5sZW5ndGgpcmV0dXJuIHNbMF19ZnVuY3Rpb24gbChlLGEpe2E9YXx8e307dmFyIHQ9d2luZG93Lk11dGF0aW9uT2JzZXJ2ZXJ8fHdpbmRvdy5XZWJraXRNdXRhdGlvbk9ic2VydmVyLHM9bmV3IHQoZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe1Qub25SZXNpemUoITApLFQuZW1pdCgib25PYnNlcnZlclVwZGF0ZSIsVCxlKX0pfSk7cy5vYnNlcnZlKGUse2F0dHJpYnV0ZXM6dm9pZCAwPT09YS5hdHRyaWJ1dGVzfHxhLmF0dHJpYnV0ZXMsY2hpbGRMaXN0OnZvaWQgMD09PWEuY2hpbGRMaXN0fHxhLmNoaWxkTGlzdCxjaGFyYWN0ZXJEYXRhOnZvaWQgMD09PWEuY2hhcmFjdGVyRGF0YXx8YS5jaGFyYWN0ZXJEYXRhfSksVC5vYnNlcnZlcnMucHVzaChzKX1mdW5jdGlvbiBwKGUpe2Uub3JpZ2luYWxFdmVudCYmKGU9ZS5vcmlnaW5hbEV2ZW50KTt2YXIgYT1lLmtleUNvZGV8fGUuY2hhckNvZGU7aWYoIVQucGFyYW1zLmFsbG93U3dpcGVUb05leHQmJihULmlzSG9yaXpvbnRhbCgpJiYzOT09PWF8fCFULmlzSG9yaXpvbnRhbCgpJiY0MD09PWEpKXJldHVybiExO2lmKCFULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2JiYoVC5pc0hvcml6b250YWwoKSYmMzc9PT1hfHwhVC5pc0hvcml6b250YWwoKSYmMzg9PT1hKSlyZXR1cm4hMTtpZighKGUuc2hpZnRLZXl8fGUuYWx0S2V5fHxlLmN0cmxLZXl8fGUubWV0YUtleXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSYmKCJpbnB1dCI9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl8fCJ0ZXh0YXJlYSI9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKSl7aWYoMzc9PT1hfHwzOT09PWF8fDM4PT09YXx8NDA9PT1hKXt2YXIgdD0hMTtpZihULmNvbnRhaW5lci5wYXJlbnRzKCIuIitULnBhcmFtcy5zbGlkZUNsYXNzKS5sZW5ndGg+MCYmMD09PVQuY29udGFpbmVyLnBhcmVudHMoIi4iK1QucGFyYW1zLnNsaWRlQWN0aXZlQ2xhc3MpLmxlbmd0aClyZXR1cm47dmFyIHM9e2xlZnQ6d2luZG93LnBhZ2VYT2Zmc2V0LHRvcDp3aW5kb3cucGFnZVlPZmZzZXR9LGk9d2luZG93LmlubmVyV2lkdGgscj13aW5kb3cuaW5uZXJIZWlnaHQsbj1ULmNvbnRhaW5lci5vZmZzZXQoKTtULnJ0bCYmKG4ubGVmdD1uLmxlZnQtVC5jb250YWluZXJbMF0uc2Nyb2xsTGVmdCk7Zm9yKHZhciBvPVtbbi5sZWZ0LG4udG9wXSxbbi5sZWZ0K1Qud2lkdGgsbi50b3BdLFtuLmxlZnQsbi50b3ArVC5oZWlnaHRdLFtuLmxlZnQrVC53aWR0aCxuLnRvcCtULmhlaWdodF1dLGw9MDtsPG8ubGVuZ3RoO2wrKyl7dmFyIHA9b1tsXTtwWzBdPj1zLmxlZnQmJnBbMF08PXMubGVmdCtpJiZwWzFdPj1zLnRvcCYmcFsxXTw9cy50b3ArciYmKHQ9ITApfWlmKCF0KXJldHVybn1ULmlzSG9yaXpvbnRhbCgpPygzNyE9PWEmJjM5IT09YXx8KGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITEpLCgzOT09PWEmJiFULnJ0bHx8Mzc9PT1hJiZULnJ0bCkmJlQuc2xpZGVOZXh0KCksKDM3PT09YSYmIVQucnRsfHwzOT09PWEmJlQucnRsKSYmVC5zbGlkZVByZXYoKSk6KDM4IT09YSYmNDAhPT1hfHwoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6ZS5yZXR1cm5WYWx1ZT0hMSksNDA9PT1hJiZULnNsaWRlTmV4dCgpLDM4PT09YSYmVC5zbGlkZVByZXYoKSksVC5lbWl0KCJvbktleVByZXNzIixULGEpfX1mdW5jdGlvbiBkKGUpe3ZhciBhPTAsdD0wLHM9MCxpPTA7cmV0dXJuImRldGFpbCJpbiBlJiYodD1lLmRldGFpbCksIndoZWVsRGVsdGEiaW4gZSYmKHQ9LWUud2hlZWxEZWx0YS8xMjApLCJ3aGVlbERlbHRhWSJpbiBlJiYodD0tZS53aGVlbERlbHRhWS8xMjApLCJ3aGVlbERlbHRhWCJpbiBlJiYoYT0tZS53aGVlbERlbHRhWC8xMjApLCJheGlzImluIGUmJmUuYXhpcz09PWUuSE9SSVpPTlRBTF9BWElTJiYoYT10LHQ9MCkscz0xMCphLGk9MTAqdCwiZGVsdGFZImluIGUmJihpPWUuZGVsdGFZKSwiZGVsdGFYImluIGUmJihzPWUuZGVsdGFYKSwoc3x8aSkmJmUuZGVsdGFNb2RlJiYoMT09PWUuZGVsdGFNb2RlPyhzKj00MCxpKj00MCk6KHMqPTgwMCxpKj04MDApKSxzJiYhYSYmKGE9czwxPy0xOjEpLGkmJiF0JiYodD1pPDE/LTE6MSkse3NwaW5YOmEsc3Bpblk6dCxwaXhlbFg6cyxwaXhlbFk6aX19ZnVuY3Rpb24gdShlKXtlLm9yaWdpbmFsRXZlbnQmJihlPWUub3JpZ2luYWxFdmVudCk7dmFyIGE9MCx0PVQucnRsPy0xOjEscz1kKGUpO2lmKFQucGFyYW1zLm1vdXNld2hlZWxGb3JjZVRvQXhpcylpZihULmlzSG9yaXpvbnRhbCgpKXtpZighKE1hdGguYWJzKHMucGl4ZWxYKT5NYXRoLmFicyhzLnBpeGVsWSkpKXJldHVybjthPXMucGl4ZWxYKnR9ZWxzZXtpZighKE1hdGguYWJzKHMucGl4ZWxZKT5NYXRoLmFicyhzLnBpeGVsWCkpKXJldHVybjthPXMucGl4ZWxZfWVsc2UgYT1NYXRoLmFicyhzLnBpeGVsWCk+TWF0aC5hYnMocy5waXhlbFkpPy1zLnBpeGVsWCp0Oi1zLnBpeGVsWTtpZigwIT09YSl7aWYoVC5wYXJhbXMubW91c2V3aGVlbEludmVydCYmKGE9LWEpLFQucGFyYW1zLmZyZWVNb2RlKXt2YXIgaT1ULmdldFdyYXBwZXJUcmFuc2xhdGUoKSthKlQucGFyYW1zLm1vdXNld2hlZWxTZW5zaXRpdml0eSxyPVQuaXNCZWdpbm5pbmcsbj1ULmlzRW5kO2lmKGk+PVQubWluVHJhbnNsYXRlKCkmJihpPVQubWluVHJhbnNsYXRlKCkpLGk8PVQubWF4VHJhbnNsYXRlKCkmJihpPVQubWF4VHJhbnNsYXRlKCkpLFQuc2V0V3JhcHBlclRyYW5zaXRpb24oMCksVC5zZXRXcmFwcGVyVHJhbnNsYXRlKGkpLFQudXBkYXRlUHJvZ3Jlc3MoKSxULnVwZGF0ZUFjdGl2ZUluZGV4KCksKCFyJiZULmlzQmVnaW5uaW5nfHwhbiYmVC5pc0VuZCkmJlQudXBkYXRlQ2xhc3NlcygpLFQucGFyYW1zLmZyZWVNb2RlU3RpY2t5PyhjbGVhclRpbWVvdXQoVC5tb3VzZXdoZWVsLnRpbWVvdXQpLFQubW91c2V3aGVlbC50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtULnNsaWRlUmVzZXQoKX0sMzAwKSk6VC5wYXJhbXMubGF6eUxvYWRpbmcmJlQubGF6eSYmVC5sYXp5LmxvYWQoKSxULmVtaXQoIm9uU2Nyb2xsIixULGUpLFQucGFyYW1zLmF1dG9wbGF5JiZULnBhcmFtcy5hdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uJiZULnN0b3BBdXRvcGxheSgpLDA9PT1pfHxpPT09VC5tYXhUcmFuc2xhdGUoKSlyZXR1cm59ZWxzZXtpZigobmV3IHdpbmRvdy5EYXRlKS5nZXRUaW1lKCktVC5tb3VzZXdoZWVsLmxhc3RTY3JvbGxUaW1lPjYwKWlmKGE8MClpZihULmlzRW5kJiYhVC5wYXJhbXMubG9vcHx8VC5hbmltYXRpbmcpe2lmKFQucGFyYW1zLm1vdXNld2hlZWxSZWxlYXNlT25FZGdlcylyZXR1cm4hMH1lbHNlIFQuc2xpZGVOZXh0KCksVC5lbWl0KCJvblNjcm9sbCIsVCxlKTtlbHNlIGlmKFQuaXNCZWdpbm5pbmcmJiFULnBhcmFtcy5sb29wfHxULmFuaW1hdGluZyl7aWYoVC5wYXJhbXMubW91c2V3aGVlbFJlbGVhc2VPbkVkZ2VzKXJldHVybiEwfWVsc2UgVC5zbGlkZVByZXYoKSxULmVtaXQoIm9uU2Nyb2xsIixULGUpO1QubW91c2V3aGVlbC5sYXN0U2Nyb2xsVGltZT0obmV3IHdpbmRvdy5EYXRlKS5nZXRUaW1lKCl9cmV0dXJuIGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITEsITF9fWZ1bmN0aW9uIGMoYSx0KXthPWUoYSk7dmFyIHMsaSxyLG49VC5ydGw/LTE6MTtzPWEuYXR0cigiZGF0YS1zd2lwZXItcGFyYWxsYXgiKXx8IjAiLGk9YS5hdHRyKCJkYXRhLXN3aXBlci1wYXJhbGxheC14Iikscj1hLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LXkiKSxpfHxyPyhpPWl8fCIwIixyPXJ8fCIwIik6VC5pc0hvcml6b250YWwoKT8oaT1zLHI9IjAiKToocj1zLGk9IjAiKSxpPWkuaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KGksMTApKnQqbisiJSI6aSp0Km4rInB4IixyPXIuaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KHIsMTApKnQrIiUiOnIqdCsicHgiLGEudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgiK2krIiwgIityKyIsMHB4KSIpfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIDAhPT1lLmluZGV4T2YoIm9uIikmJihlPWVbMF0hPT1lWzBdLnRvVXBwZXJDYXNlKCk/Im9uIitlWzBdLnRvVXBwZXJDYXNlKCkrZS5zdWJzdHJpbmcoMSk6Im9uIitlKSxlfWlmKCEodGhpcyBpbnN0YW5jZW9mIGEpKXJldHVybiBuZXcgYShzLGkpO3ZhciBoPXtkaXJlY3Rpb246Imhvcml6b250YWwiLHRvdWNoRXZlbnRzVGFyZ2V0OiJjb250YWluZXIiLGluaXRpYWxTbGlkZTowLHNwZWVkOjMwMCxhdXRvcGxheTohMSxhdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uOiEwLGF1dG9wbGF5U3RvcE9uTGFzdDohMSxpT1NFZGdlU3dpcGVEZXRlY3Rpb246ITEsaU9TRWRnZVN3aXBlVGhyZXNob2xkOjIwLGZyZWVNb2RlOiExLGZyZWVNb2RlTW9tZW50dW06ITAsZnJlZU1vZGVNb21lbnR1bVJhdGlvOjEsZnJlZU1vZGVNb21lbnR1bUJvdW5jZTohMCxmcmVlTW9kZU1vbWVudHVtQm91bmNlUmF0aW86MSxmcmVlTW9kZU1vbWVudHVtVmVsb2NpdHlSYXRpbzoxLGZyZWVNb2RlU3RpY2t5OiExLGZyZWVNb2RlTWluaW11bVZlbG9jaXR5Oi4wMixhdXRvSGVpZ2h0OiExLHNldFdyYXBwZXJTaXplOiExLHZpcnR1YWxUcmFuc2xhdGU6ITEsZWZmZWN0OiJzbGlkZSIsY292ZXJmbG93Ontyb3RhdGU6NTAsc3RyZXRjaDowLGRlcHRoOjEwMCxtb2RpZmllcjoxLHNsaWRlU2hhZG93czohMH0sZmxpcDp7c2xpZGVTaGFkb3dzOiEwLGxpbWl0Um90YXRpb246ITB9LGN1YmU6e3NsaWRlU2hhZG93czohMCxzaGFkb3c6ITAsc2hhZG93T2Zmc2V0OjIwLHNoYWRvd1NjYWxlOi45NH0sZmFkZTp7Y3Jvc3NGYWRlOiExfSxwYXJhbGxheDohMSx6b29tOiExLHpvb21NYXg6Myx6b29tTWluOjEsem9vbVRvZ2dsZTohMCxzY3JvbGxiYXI6bnVsbCxzY3JvbGxiYXJIaWRlOiEwLHNjcm9sbGJhckRyYWdnYWJsZTohMSxzY3JvbGxiYXJTbmFwT25SZWxlYXNlOiExLGtleWJvYXJkQ29udHJvbDohMSxtb3VzZXdoZWVsQ29udHJvbDohMSxtb3VzZXdoZWVsUmVsZWFzZU9uRWRnZXM6ITEsbW91c2V3aGVlbEludmVydDohMSxtb3VzZXdoZWVsRm9yY2VUb0F4aXM6ITEsbW91c2V3aGVlbFNlbnNpdGl2aXR5OjEsbW91c2V3aGVlbEV2ZW50c1RhcmdlZDoiY29udGFpbmVyIixoYXNobmF2OiExLGhhc2huYXZXYXRjaFN0YXRlOiExLGhpc3Rvcnk6ITEscmVwbGFjZVN0YXRlOiExLGJyZWFrcG9pbnRzOnZvaWQgMCxzcGFjZUJldHdlZW46MCxzbGlkZXNQZXJWaWV3OjEsc2xpZGVzUGVyQ29sdW1uOjEsc2xpZGVzUGVyQ29sdW1uRmlsbDoiY29sdW1uIixzbGlkZXNQZXJHcm91cDoxLGNlbnRlcmVkU2xpZGVzOiExLHNsaWRlc09mZnNldEJlZm9yZTowLHNsaWRlc09mZnNldEFmdGVyOjAscm91bmRMZW5ndGhzOiExLHRvdWNoUmF0aW86MSx0b3VjaEFuZ2xlOjQ1LHNpbXVsYXRlVG91Y2g6ITAsc2hvcnRTd2lwZXM6ITAsbG9uZ1N3aXBlczohMCxsb25nU3dpcGVzUmF0aW86LjUsbG9uZ1N3aXBlc01zOjMwMCxmb2xsb3dGaW5nZXI6ITAsb25seUV4dGVybmFsOiExLHRocmVzaG9sZDowLHRvdWNoTW92ZVN0b3BQcm9wYWdhdGlvbjohMCx0b3VjaFJlbGVhc2VPbkVkZ2VzOiExLHVuaXF1ZU5hdkVsZW1lbnRzOiEwLHBhZ2luYXRpb246bnVsbCxwYWdpbmF0aW9uRWxlbWVudDoic3BhbiIscGFnaW5hdGlvbkNsaWNrYWJsZTohMSxwYWdpbmF0aW9uSGlkZTohMSxwYWdpbmF0aW9uQnVsbGV0UmVuZGVyOm51bGwscGFnaW5hdGlvblByb2dyZXNzUmVuZGVyOm51bGwscGFnaW5hdGlvbkZyYWN0aW9uUmVuZGVyOm51bGwscGFnaW5hdGlvbkN1c3RvbVJlbmRlcjpudWxsLHBhZ2luYXRpb25UeXBlOiJidWxsZXRzIixyZXNpc3RhbmNlOiEwLHJlc2lzdGFuY2VSYXRpbzouODUsbmV4dEJ1dHRvbjpudWxsLHByZXZCdXR0b246bnVsbCx3YXRjaFNsaWRlc1Byb2dyZXNzOiExLHdhdGNoU2xpZGVzVmlzaWJpbGl0eTohMSxncmFiQ3Vyc29yOiExLHByZXZlbnRDbGlja3M6ITAscHJldmVudENsaWNrc1Byb3BhZ2F0aW9uOiEwLHNsaWRlVG9DbGlja2VkU2xpZGU6ITEsbGF6eUxvYWRpbmc6ITEsbGF6eUxvYWRpbmdJblByZXZOZXh0OiExLGxhenlMb2FkaW5nSW5QcmV2TmV4dEFtb3VudDoxLGxhenlMb2FkaW5nT25UcmFuc2l0aW9uU3RhcnQ6ITEscHJlbG9hZEltYWdlczohMCx1cGRhdGVPbkltYWdlc1JlYWR5OiEwLGxvb3A6ITEsbG9vcEFkZGl0aW9uYWxTbGlkZXM6MCxsb29wZWRTbGlkZXM6bnVsbCxjb250cm9sOnZvaWQgMCxjb250cm9sSW52ZXJzZTohMSxjb250cm9sQnk6InNsaWRlIixub3JtYWxpemVTbGlkZUluZGV4OiEwLGFsbG93U3dpcGVUb1ByZXY6ITAsYWxsb3dTd2lwZVRvTmV4dDohMCxzd2lwZUhhbmRsZXI6bnVsbCxub1N3aXBpbmc6ITAsbm9Td2lwaW5nQ2xhc3M6InN3aXBlci1uby1zd2lwaW5nIixwYXNzaXZlTGlzdGVuZXJzOiEwLGNvbnRhaW5lck1vZGlmaWVyQ2xhc3M6InN3aXBlci1jb250YWluZXItIixzbGlkZUNsYXNzOiJzd2lwZXItc2xpZGUiLHNsaWRlQWN0aXZlQ2xhc3M6InN3aXBlci1zbGlkZS1hY3RpdmUiLHNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtYWN0aXZlIixzbGlkZVZpc2libGVDbGFzczoic3dpcGVyLXNsaWRlLXZpc2libGUiLHNsaWRlRHVwbGljYXRlQ2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUiLHNsaWRlTmV4dENsYXNzOiJzd2lwZXItc2xpZGUtbmV4dCIsc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtbmV4dCIsc2xpZGVQcmV2Q2xhc3M6InN3aXBlci1zbGlkZS1wcmV2IixzbGlkZUR1cGxpY2F0ZVByZXZDbGFzczoic3dpcGVyLXNsaWRlLWR1cGxpY2F0ZS1wcmV2Iix3cmFwcGVyQ2xhc3M6InN3aXBlci13cmFwcGVyIixidWxsZXRDbGFzczoic3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IixidWxsZXRBY3RpdmVDbGFzczoic3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSIsYnV0dG9uRGlzYWJsZWRDbGFzczoic3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCIscGFnaW5hdGlvbkN1cnJlbnRDbGFzczoic3dpcGVyLXBhZ2luYXRpb24tY3VycmVudCIscGFnaW5hdGlvblRvdGFsQ2xhc3M6InN3aXBlci1wYWdpbmF0aW9uLXRvdGFsIixwYWdpbmF0aW9uSGlkZGVuQ2xhc3M6InN3aXBlci1wYWdpbmF0aW9uLWhpZGRlbiIscGFnaW5hdGlvblByb2dyZXNzYmFyQ2xhc3M6InN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIixwYWdpbmF0aW9uQ2xpY2thYmxlQ2xhc3M6InN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSIscGFnaW5hdGlvbk1vZGlmaWVyQ2xhc3M6InN3aXBlci1wYWdpbmF0aW9uLSIsbGF6eUxvYWRpbmdDbGFzczoic3dpcGVyLWxhenkiLGxhenlTdGF0dXNMb2FkaW5nQ2xhc3M6InN3aXBlci1sYXp5LWxvYWRpbmciLGxhenlTdGF0dXNMb2FkZWRDbGFzczoic3dpcGVyLWxhenktbG9hZGVkIixsYXp5UHJlbG9hZGVyQ2xhc3M6InN3aXBlci1sYXp5LXByZWxvYWRlciIsbm90aWZpY2F0aW9uQ2xhc3M6InN3aXBlci1ub3RpZmljYXRpb24iLHByZWxvYWRlckNsYXNzOiJwcmVsb2FkZXIiLHpvb21Db250YWluZXJDbGFzczoic3dpcGVyLXpvb20tY29udGFpbmVyIixvYnNlcnZlcjohMSxvYnNlcnZlUGFyZW50czohMSxhMTF5OiExLHByZXZTbGlkZU1lc3NhZ2U6IlByZXZpb3VzIHNsaWRlIixuZXh0U2xpZGVNZXNzYWdlOiJOZXh0IHNsaWRlIixmaXJzdFNsaWRlTWVzc2FnZToiVGhpcyBpcyB0aGUgZmlyc3Qgc2xpZGUiLGxhc3RTbGlkZU1lc3NhZ2U6IlRoaXMgaXMgdGhlIGxhc3Qgc2xpZGUiLHBhZ2luYXRpb25CdWxsZXRNZXNzYWdlOiJHbyB0byBzbGlkZSB7e2luZGV4fX0iLHJ1bkNhbGxiYWNrc09uSW5pdDohMH0sZz1pJiZpLnZpcnR1YWxUcmFuc2xhdGU7aT1pfHx7fTt2YXIgZj17fTtmb3IodmFyIHYgaW4gaSlpZigib2JqZWN0IiE9dHlwZW9mIGlbdl18fG51bGw9PT1pW3ZdfHwoaVt2XS5ub2RlVHlwZXx8aVt2XT09PXdpbmRvd3x8aVt2XT09PWRvY3VtZW50fHx2b2lkIDAhPT10JiZpW3ZdaW5zdGFuY2VvZiB0fHwidW5kZWZpbmVkIiE9dHlwZW9mIGpRdWVyeSYmaVt2XWluc3RhbmNlb2YgalF1ZXJ5KSlmW3ZdPWlbdl07ZWxzZXtmW3ZdPXt9O2Zvcih2YXIgdyBpbiBpW3ZdKWZbdl1bd109aVt2XVt3XX1mb3IodmFyIHkgaW4gaClpZih2b2lkIDA9PT1pW3ldKWlbeV09aFt5XTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgaVt5XSlmb3IodmFyIHggaW4gaFt5XSl2b2lkIDA9PT1pW3ldW3hdJiYoaVt5XVt4XT1oW3ldW3hdKTt2YXIgVD10aGlzO2lmKFQucGFyYW1zPWksVC5vcmlnaW5hbFBhcmFtcz1mLFQuY2xhc3NOYW1lcz1bXSx2b2lkIDAhPT1lJiZ2b2lkIDAhPT10JiYoZT10KSwodm9pZCAwIT09ZXx8KGU9dm9pZCAwPT09dD93aW5kb3cuRG9tN3x8d2luZG93LlplcHRvfHx3aW5kb3cualF1ZXJ5OnQpKSYmKFQuJD1lLFQuY3VycmVudEJyZWFrcG9pbnQ9dm9pZCAwLFQuZ2V0QWN0aXZlQnJlYWtwb2ludD1mdW5jdGlvbigpe2lmKCFULnBhcmFtcy5icmVha3BvaW50cylyZXR1cm4hMTt2YXIgZSxhPSExLHQ9W107Zm9yKGUgaW4gVC5wYXJhbXMuYnJlYWtwb2ludHMpVC5wYXJhbXMuYnJlYWtwb2ludHMuaGFzT3duUHJvcGVydHkoZSkmJnQucHVzaChlKTt0LnNvcnQoZnVuY3Rpb24oZSxhKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCk+cGFyc2VJbnQoYSwxMCl9KTtmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKykoZT10W3NdKT49d2luZG93LmlubmVyV2lkdGgmJiFhJiYoYT1lKTtyZXR1cm4gYXx8Im1heCJ9LFQuc2V0QnJlYWtwb2ludD1mdW5jdGlvbigpe3ZhciBlPVQuZ2V0QWN0aXZlQnJlYWtwb2ludCgpO2lmKGUmJlQuY3VycmVudEJyZWFrcG9pbnQhPT1lKXt2YXIgYT1lIGluIFQucGFyYW1zLmJyZWFrcG9pbnRzP1QucGFyYW1zLmJyZWFrcG9pbnRzW2VdOlQub3JpZ2luYWxQYXJhbXMsdD1ULnBhcmFtcy5sb29wJiZhLnNsaWRlc1BlclZpZXchPT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3O2Zvcih2YXIgcyBpbiBhKVQucGFyYW1zW3NdPWFbc107VC5jdXJyZW50QnJlYWtwb2ludD1lLHQmJlQuZGVzdHJveUxvb3AmJlQucmVMb29wKCEwKX19LFQucGFyYW1zLmJyZWFrcG9pbnRzJiZULnNldEJyZWFrcG9pbnQoKSxULmNvbnRhaW5lcj1lKHMpLDAhPT1ULmNvbnRhaW5lci5sZW5ndGgpKXtpZihULmNvbnRhaW5lci5sZW5ndGg+MSl7dmFyIGI9W107cmV0dXJuIFQuY29udGFpbmVyLmVhY2goZnVuY3Rpb24oKXtiLnB1c2gobmV3IGEodGhpcyxpKSl9KSxifVQuY29udGFpbmVyWzBdLnN3aXBlcj1ULFQuY29udGFpbmVyLmRhdGEoInN3aXBlciIsVCksVC5jbGFzc05hbWVzLnB1c2goVC5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcytULnBhcmFtcy5kaXJlY3Rpb24pLFQucGFyYW1zLmZyZWVNb2RlJiZULmNsYXNzTmFtZXMucHVzaChULnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzKyJmcmVlLW1vZGUiKSxULnN1cHBvcnQuZmxleGJveHx8KFQuY2xhc3NOYW1lcy5wdXNoKFQucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MrIm5vLWZsZXhib3giKSxULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW49MSksVC5wYXJhbXMuYXV0b0hlaWdodCYmVC5jbGFzc05hbWVzLnB1c2goVC5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcysiYXV0b2hlaWdodCIpLChULnBhcmFtcy5wYXJhbGxheHx8VC5wYXJhbXMud2F0Y2hTbGlkZXNWaXNpYmlsaXR5KSYmKFQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITApLFQucGFyYW1zLnRvdWNoUmVsZWFzZU9uRWRnZXMmJihULnBhcmFtcy5yZXNpc3RhbmNlUmF0aW89MCksWyJjdWJlIiwiY292ZXJmbG93IiwiZmxpcCJdLmluZGV4T2YoVC5wYXJhbXMuZWZmZWN0KT49MCYmKFQuc3VwcG9ydC50cmFuc2Zvcm1zM2Q/KFQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsVC5jbGFzc05hbWVzLnB1c2goVC5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcysiM2QiKSk6VC5wYXJhbXMuZWZmZWN0PSJzbGlkZSIpLCJzbGlkZSIhPT1ULnBhcmFtcy5lZmZlY3QmJlQuY2xhc3NOYW1lcy5wdXNoKFQucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MrVC5wYXJhbXMuZWZmZWN0KSwiY3ViZSI9PT1ULnBhcmFtcy5lZmZlY3QmJihULnBhcmFtcy5yZXNpc3RhbmNlUmF0aW89MCxULnBhcmFtcy5zbGlkZXNQZXJWaWV3PTEsVC5wYXJhbXMuc2xpZGVzUGVyQ29sdW1uPTEsVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXA9MSxULnBhcmFtcy5jZW50ZXJlZFNsaWRlcz0hMSxULnBhcmFtcy5zcGFjZUJldHdlZW49MCxULnBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlPSEwKSwiZmFkZSIhPT1ULnBhcmFtcy5lZmZlY3QmJiJmbGlwIiE9PVQucGFyYW1zLmVmZmVjdHx8KFQucGFyYW1zLnNsaWRlc1BlclZpZXc9MSxULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW49MSxULnBhcmFtcy5zbGlkZXNQZXJHcm91cD0xLFQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsVC5wYXJhbXMuc3BhY2VCZXR3ZWVuPTAsdm9pZCAwPT09ZyYmKFQucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGU9ITApKSxULnBhcmFtcy5ncmFiQ3Vyc29yJiZULnN1cHBvcnQudG91Y2gmJihULnBhcmFtcy5ncmFiQ3Vyc29yPSExKSxULndyYXBwZXI9VC5jb250YWluZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLndyYXBwZXJDbGFzcyksVC5wYXJhbXMucGFnaW5hdGlvbiYmKFQucGFnaW5hdGlvbkNvbnRhaW5lcj1lKFQucGFyYW1zLnBhZ2luYXRpb24pLFQucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzJiYic3RyaW5nIj09dHlwZW9mIFQucGFyYW1zLnBhZ2luYXRpb24mJlQucGFnaW5hdGlvbkNvbnRhaW5lci5sZW5ndGg+MSYmMT09PVQuY29udGFpbmVyLmZpbmQoVC5wYXJhbXMucGFnaW5hdGlvbikubGVuZ3RoJiYoVC5wYWdpbmF0aW9uQ29udGFpbmVyPVQuY29udGFpbmVyLmZpbmQoVC5wYXJhbXMucGFnaW5hdGlvbikpLCJidWxsZXRzIj09PVQucGFyYW1zLnBhZ2luYXRpb25UeXBlJiZULnBhcmFtcy5wYWdpbmF0aW9uQ2xpY2thYmxlP1QucGFnaW5hdGlvbkNvbnRhaW5lci5hZGRDbGFzcyhULnBhcmFtcy5wYWdpbmF0aW9uTW9kaWZpZXJDbGFzcysiY2xpY2thYmxlIik6VC5wYXJhbXMucGFnaW5hdGlvbkNsaWNrYWJsZT0hMSxULnBhZ2luYXRpb25Db250YWluZXIuYWRkQ2xhc3MoVC5wYXJhbXMucGFnaW5hdGlvbk1vZGlmaWVyQ2xhc3MrVC5wYXJhbXMucGFnaW5hdGlvblR5cGUpKSwoVC5wYXJhbXMubmV4dEJ1dHRvbnx8VC5wYXJhbXMucHJldkJ1dHRvbikmJihULnBhcmFtcy5uZXh0QnV0dG9uJiYoVC5uZXh0QnV0dG9uPWUoVC5wYXJhbXMubmV4dEJ1dHRvbiksVC5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMmJiJzdHJpbmciPT10eXBlb2YgVC5wYXJhbXMubmV4dEJ1dHRvbiYmVC5uZXh0QnV0dG9uLmxlbmd0aD4xJiYxPT09VC5jb250YWluZXIuZmluZChULnBhcmFtcy5uZXh0QnV0dG9uKS5sZW5ndGgmJihULm5leHRCdXR0b249VC5jb250YWluZXIuZmluZChULnBhcmFtcy5uZXh0QnV0dG9uKSkpLFQucGFyYW1zLnByZXZCdXR0b24mJihULnByZXZCdXR0b249ZShULnBhcmFtcy5wcmV2QnV0dG9uKSxULnBhcmFtcy51bmlxdWVOYXZFbGVtZW50cyYmInN0cmluZyI9PXR5cGVvZiBULnBhcmFtcy5wcmV2QnV0dG9uJiZULnByZXZCdXR0b24ubGVuZ3RoPjEmJjE9PT1ULmNvbnRhaW5lci5maW5kKFQucGFyYW1zLnByZXZCdXR0b24pLmxlbmd0aCYmKFQucHJldkJ1dHRvbj1ULmNvbnRhaW5lci5maW5kKFQucGFyYW1zLnByZXZCdXR0b24pKSkpLFQuaXNIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuImhvcml6b250YWwiPT09VC5wYXJhbXMuZGlyZWN0aW9ufSxULnJ0bD1ULmlzSG9yaXpvbnRhbCgpJiYoInJ0bCI9PT1ULmNvbnRhaW5lclswXS5kaXIudG9Mb3dlckNhc2UoKXx8InJ0bCI9PT1ULmNvbnRhaW5lci5jc3MoImRpcmVjdGlvbiIpKSxULnJ0bCYmVC5jbGFzc05hbWVzLnB1c2goVC5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcysicnRsIiksVC5ydGwmJihULndyb25nUlRMPSItd2Via2l0LWJveCI9PT1ULndyYXBwZXIuY3NzKCJkaXNwbGF5IikpLFQucGFyYW1zLnNsaWRlc1BlckNvbHVtbj4xJiZULmNsYXNzTmFtZXMucHVzaChULnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzKyJtdWx0aXJvdyIpLFQuZGV2aWNlLmFuZHJvaWQmJlQuY2xhc3NOYW1lcy5wdXNoKFQucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MrImFuZHJvaWQiKSxULmNvbnRhaW5lci5hZGRDbGFzcyhULmNsYXNzTmFtZXMuam9pbigiICIpKSxULnRyYW5zbGF0ZT0wLFQucHJvZ3Jlc3M9MCxULnZlbG9jaXR5PTAsVC5sb2NrU3dpcGVUb05leHQ9ZnVuY3Rpb24oKXtULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0PSExLFQucGFyYW1zLmFsbG93U3dpcGVUb1ByZXY9PT0hMSYmVC5wYXJhbXMuZ3JhYkN1cnNvciYmVC51bnNldEdyYWJDdXJzb3IoKX0sVC5sb2NrU3dpcGVUb1ByZXY9ZnVuY3Rpb24oKXtULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2PSExLFQucGFyYW1zLmFsbG93U3dpcGVUb05leHQ9PT0hMSYmVC5wYXJhbXMuZ3JhYkN1cnNvciYmVC51bnNldEdyYWJDdXJzb3IoKX0sVC5sb2NrU3dpcGVzPWZ1bmN0aW9uKCl7VC5wYXJhbXMuYWxsb3dTd2lwZVRvTmV4dD1ULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2PSExLFQucGFyYW1zLmdyYWJDdXJzb3ImJlQudW5zZXRHcmFiQ3Vyc29yKCl9LFQudW5sb2NrU3dpcGVUb05leHQ9ZnVuY3Rpb24oKXtULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0PSEwLFQucGFyYW1zLmFsbG93U3dpcGVUb1ByZXY9PT0hMCYmVC5wYXJhbXMuZ3JhYkN1cnNvciYmVC5zZXRHcmFiQ3Vyc29yKCl9LFQudW5sb2NrU3dpcGVUb1ByZXY9ZnVuY3Rpb24oKXtULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2PSEwLFQucGFyYW1zLmFsbG93U3dpcGVUb05leHQ9PT0hMCYmVC5wYXJhbXMuZ3JhYkN1cnNvciYmVC5zZXRHcmFiQ3Vyc29yKCl9LFQudW5sb2NrU3dpcGVzPWZ1bmN0aW9uKCl7VC5wYXJhbXMuYWxsb3dTd2lwZVRvTmV4dD1ULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2PSEwLFQucGFyYW1zLmdyYWJDdXJzb3ImJlQuc2V0R3JhYkN1cnNvcigpfSxULnNldEdyYWJDdXJzb3I9ZnVuY3Rpb24oZSl7VC5jb250YWluZXJbMF0uc3R5bGUuY3Vyc29yPSJtb3ZlIixULmNvbnRhaW5lclswXS5zdHlsZS5jdXJzb3I9ZT8iLXdlYmtpdC1ncmFiYmluZyI6Ii13ZWJraXQtZ3JhYiIsVC5jb250YWluZXJbMF0uc3R5bGUuY3Vyc29yPWU/Ii1tb3otZ3JhYmJpbiI6Ii1tb3otZ3JhYiIsVC5jb250YWluZXJbMF0uc3R5bGUuY3Vyc29yPWU/ImdyYWJiaW5nIjoiZ3JhYiJ9LFQudW5zZXRHcmFiQ3Vyc29yPWZ1bmN0aW9uKCl7VC5jb250YWluZXJbMF0uc3R5bGUuY3Vyc29yPSIifSxULnBhcmFtcy5ncmFiQ3Vyc29yJiZULnNldEdyYWJDdXJzb3IoKSxULmltYWdlc1RvTG9hZD1bXSxULmltYWdlc0xvYWRlZD0wLFQubG9hZEltYWdlPWZ1bmN0aW9uKGUsYSx0LHMsaSxyKXtmdW5jdGlvbiBuKCl7ciYmcigpfXZhciBvO2UuY29tcGxldGUmJmk/bigpOmE/KG89bmV3IHdpbmRvdy5JbWFnZSxvLm9ubG9hZD1uLG8ub25lcnJvcj1uLHMmJihvLnNpemVzPXMpLHQmJihvLnNyY3NldD10KSxhJiYoby5zcmM9YSkpOm4oKX0sVC5wcmVsb2FkSW1hZ2VzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3ZvaWQgMCE9PVQmJm51bGwhPT1UJiZUJiYodm9pZCAwIT09VC5pbWFnZXNMb2FkZWQmJlQuaW1hZ2VzTG9hZGVkKyssVC5pbWFnZXNMb2FkZWQ9PT1ULmltYWdlc1RvTG9hZC5sZW5ndGgmJihULnBhcmFtcy51cGRhdGVPbkltYWdlc1JlYWR5JiZULnVwZGF0ZSgpLFQuZW1pdCgib25JbWFnZXNSZWFkeSIsVCkpKX1ULmltYWdlc1RvTG9hZD1ULmNvbnRhaW5lci5maW5kKCJpbWciKTtmb3IodmFyIGE9MDthPFQuaW1hZ2VzVG9Mb2FkLmxlbmd0aDthKyspVC5sb2FkSW1hZ2UoVC5pbWFnZXNUb0xvYWRbYV0sVC5pbWFnZXNUb0xvYWRbYV0uY3VycmVudFNyY3x8VC5pbWFnZXNUb0xvYWRbYV0uZ2V0QXR0cmlidXRlKCJzcmMiKSxULmltYWdlc1RvTG9hZFthXS5zcmNzZXR8fFQuaW1hZ2VzVG9Mb2FkW2FdLmdldEF0dHJpYnV0ZSgic3Jjc2V0IiksVC5pbWFnZXNUb0xvYWRbYV0uc2l6ZXN8fFQuaW1hZ2VzVG9Mb2FkW2FdLmdldEF0dHJpYnV0ZSgic2l6ZXMiKSwhMCxlKX0sVC5hdXRvcGxheVRpbWVvdXRJZD12b2lkIDAsVC5hdXRvcGxheWluZz0hMSxULmF1dG9wbGF5UGF1c2VkPSExLFQuc3RhcnRBdXRvcGxheT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1ULmF1dG9wbGF5VGltZW91dElkJiYoISFULnBhcmFtcy5hdXRvcGxheSYmKCFULmF1dG9wbGF5aW5nJiYoVC5hdXRvcGxheWluZz0hMCxULmVtaXQoIm9uQXV0b3BsYXlTdGFydCIsVCksdm9pZCBuKCkpKSl9LFQuc3RvcEF1dG9wbGF5PWZ1bmN0aW9uKGUpe1QuYXV0b3BsYXlUaW1lb3V0SWQmJihULmF1dG9wbGF5VGltZW91dElkJiZjbGVhclRpbWVvdXQoVC5hdXRvcGxheVRpbWVvdXRJZCksVC5hdXRvcGxheWluZz0hMSxULmF1dG9wbGF5VGltZW91dElkPXZvaWQgMCxULmVtaXQoIm9uQXV0b3BsYXlTdG9wIixUKSl9LFQucGF1c2VBdXRvcGxheT1mdW5jdGlvbihlKXtULmF1dG9wbGF5UGF1c2VkfHwoVC5hdXRvcGxheVRpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KFQuYXV0b3BsYXlUaW1lb3V0SWQpLFQuYXV0b3BsYXlQYXVzZWQ9ITAsMD09PWU/KFQuYXV0b3BsYXlQYXVzZWQ9ITEsbigpKTpULndyYXBwZXIudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe1QmJihULmF1dG9wbGF5UGF1c2VkPSExLFQuYXV0b3BsYXlpbmc/bigpOlQuc3RvcEF1dG9wbGF5KCkpfSkpfSxULm1pblRyYW5zbGF0ZT1mdW5jdGlvbigpe3JldHVybi1ULnNuYXBHcmlkWzBdfSxULm1heFRyYW5zbGF0ZT1mdW5jdGlvbigpe3JldHVybi1ULnNuYXBHcmlkW1Quc25hcEdyaWQubGVuZ3RoLTFdfSxULnVwZGF0ZUF1dG9IZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgZSxhPVtdLHQ9MDtpZigiYXV0byIhPT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3JiZULnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpZm9yKGU9MDtlPE1hdGguY2VpbChULnBhcmFtcy5zbGlkZXNQZXJWaWV3KTtlKyspe3ZhciBzPVQuYWN0aXZlSW5kZXgrZTtpZihzPlQuc2xpZGVzLmxlbmd0aClicmVhazthLnB1c2goVC5zbGlkZXMuZXEocylbMF0pfWVsc2UgYS5wdXNoKFQuc2xpZGVzLmVxKFQuYWN0aXZlSW5kZXgpWzBdKTtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKWlmKHZvaWQgMCE9PWFbZV0pe3ZhciBpPWFbZV0ub2Zmc2V0SGVpZ2h0O3Q9aT50P2k6dH10JiZULndyYXBwZXIuY3NzKCJoZWlnaHQiLHQrInB4Iil9LFQudXBkYXRlQ29udGFpbmVyU2l6ZT1mdW5jdGlvbigpe3ZhciBlLGE7ZT12b2lkIDAhPT1ULnBhcmFtcy53aWR0aD9ULnBhcmFtcy53aWR0aDpULmNvbnRhaW5lclswXS5jbGllbnRXaWR0aCxhPXZvaWQgMCE9PVQucGFyYW1zLmhlaWdodD9ULnBhcmFtcy5oZWlnaHQ6VC5jb250YWluZXJbMF0uY2xpZW50SGVpZ2h0LDA9PT1lJiZULmlzSG9yaXpvbnRhbCgpfHwwPT09YSYmIVQuaXNIb3Jpem9udGFsKCl8fChlPWUtcGFyc2VJbnQoVC5jb250YWluZXIuY3NzKCJwYWRkaW5nLWxlZnQiKSwxMCktcGFyc2VJbnQoVC5jb250YWluZXIuY3NzKCJwYWRkaW5nLXJpZ2h0IiksMTApLGE9YS1wYXJzZUludChULmNvbnRhaW5lci5jc3MoInBhZGRpbmctdG9wIiksMTApLXBhcnNlSW50KFQuY29udGFpbmVyLmNzcygicGFkZGluZy1ib3R0b20iKSwxMCksVC53aWR0aD1lLFQuaGVpZ2h0PWEsVC5zaXplPVQuaXNIb3Jpem9udGFsKCk/VC53aWR0aDpULmhlaWdodCl9LFQudXBkYXRlU2xpZGVzU2l6ZT1mdW5jdGlvbigpe1Quc2xpZGVzPVQud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcyksVC5zbmFwR3JpZD1bXSxULnNsaWRlc0dyaWQ9W10sVC5zbGlkZXNTaXplc0dyaWQ9W107dmFyIGUsYT1ULnBhcmFtcy5zcGFjZUJldHdlZW4sdD0tVC5wYXJhbXMuc2xpZGVzT2Zmc2V0QmVmb3JlLHM9MCxpPTA7aWYodm9pZCAwIT09VC5zaXplKXsic3RyaW5nIj09dHlwZW9mIGEmJmEuaW5kZXhPZigiJSIpPj0wJiYoYT1wYXJzZUZsb2F0KGEucmVwbGFjZSgiJSIsIiIpKS8xMDAqVC5zaXplKSxULnZpcnR1YWxTaXplPS1hLFQucnRsP1Quc2xpZGVzLmNzcyh7bWFyZ2luTGVmdDoiIixtYXJnaW5Ub3A6IiJ9KTpULnNsaWRlcy5jc3Moe21hcmdpblJpZ2h0OiIiLG1hcmdpbkJvdHRvbToiIn0pO3ZhciBuO1QucGFyYW1zLnNsaWRlc1BlckNvbHVtbj4xJiYobj1NYXRoLmZsb29yKFQuc2xpZGVzLmxlbmd0aC9ULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4pPT09VC5zbGlkZXMubGVuZ3RoL1QucGFyYW1zLnNsaWRlc1BlckNvbHVtbj9ULnNsaWRlcy5sZW5ndGg6TWF0aC5jZWlsKFQuc2xpZGVzLmxlbmd0aC9ULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4pKlQucGFyYW1zLnNsaWRlc1BlckNvbHVtbiwiYXV0byIhPT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3JiYicm93Ij09PVQucGFyYW1zLnNsaWRlc1BlckNvbHVtbkZpbGwmJihuPU1hdGgubWF4KG4sVC5wYXJhbXMuc2xpZGVzUGVyVmlldypULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4pKSk7dmFyIG8sbD1ULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4scD1uL2wsZD1wLShULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4qcC1ULnNsaWRlcy5sZW5ndGgpO2ZvcihlPTA7ZTxULnNsaWRlcy5sZW5ndGg7ZSsrKXtvPTA7dmFyIHU9VC5zbGlkZXMuZXEoZSk7aWYoVC5wYXJhbXMuc2xpZGVzUGVyQ29sdW1uPjEpe3ZhciBjLG0saDsiY29sdW1uIj09PVQucGFyYW1zLnNsaWRlc1BlckNvbHVtbkZpbGw/KG09TWF0aC5mbG9vcihlL2wpLGg9ZS1tKmwsKG0+ZHx8bT09PWQmJmg9PT1sLTEpJiYrK2g+PWwmJihoPTAsbSsrKSxjPW0raCpuL2wsdS5jc3MoeyItd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwIjpjLCItbW96LWJveC1vcmRpbmFsLWdyb3VwIjpjLCItbXMtZmxleC1vcmRlciI6YywiLXdlYmtpdC1vcmRlciI6YyxvcmRlcjpjfSkpOihoPU1hdGguZmxvb3IoZS9wKSxtPWUtaCpwKSx1LmNzcygibWFyZ2luLSIrKFQuaXNIb3Jpem9udGFsKCk/InRvcCI6ImxlZnQiKSwwIT09aCYmVC5wYXJhbXMuc3BhY2VCZXR3ZWVuJiZULnBhcmFtcy5zcGFjZUJldHdlZW4rInB4IikuYXR0cigiZGF0YS1zd2lwZXItY29sdW1uIixtKS5hdHRyKCJkYXRhLXN3aXBlci1yb3ciLGgpfSJub25lIiE9PXUuY3NzKCJkaXNwbGF5IikmJigiYXV0byI9PT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3PyhvPVQuaXNIb3Jpem9udGFsKCk/dS5vdXRlcldpZHRoKCEwKTp1Lm91dGVySGVpZ2h0KCEwKSxULnBhcmFtcy5yb3VuZExlbmd0aHMmJihvPXIobykpKToobz0oVC5zaXplLShULnBhcmFtcy5zbGlkZXNQZXJWaWV3LTEpKmEpL1QucGFyYW1zLnNsaWRlc1BlclZpZXcsVC5wYXJhbXMucm91bmRMZW5ndGhzJiYobz1yKG8pKSxULmlzSG9yaXpvbnRhbCgpP1Quc2xpZGVzW2VdLnN0eWxlLndpZHRoPW8rInB4IjpULnNsaWRlc1tlXS5zdHlsZS5oZWlnaHQ9bysicHgiKSxULnNsaWRlc1tlXS5zd2lwZXJTbGlkZVNpemU9byxULnNsaWRlc1NpemVzR3JpZC5wdXNoKG8pLFQucGFyYW1zLmNlbnRlcmVkU2xpZGVzPyh0PXQrby8yK3MvMithLDA9PT1zJiYwIT09ZSYmKHQ9dC1ULnNpemUvMi1hKSwwPT09ZSYmKHQ9dC1ULnNpemUvMi1hKSxNYXRoLmFicyh0KTwuMDAxJiYodD0wKSxpJVQucGFyYW1zLnNsaWRlc1Blckdyb3VwPT0wJiZULnNuYXBHcmlkLnB1c2godCksVC5zbGlkZXNHcmlkLnB1c2godCkpOihpJVQucGFyYW1zLnNsaWRlc1Blckdyb3VwPT0wJiZULnNuYXBHcmlkLnB1c2godCksVC5zbGlkZXNHcmlkLnB1c2godCksdD10K28rYSksVC52aXJ0dWFsU2l6ZSs9bythLHM9byxpKyspfVQudmlydHVhbFNpemU9TWF0aC5tYXgoVC52aXJ0dWFsU2l6ZSxULnNpemUpK1QucGFyYW1zLnNsaWRlc09mZnNldEFmdGVyO3ZhciBnO2lmKFQucnRsJiZULndyb25nUlRMJiYoInNsaWRlIj09PVQucGFyYW1zLmVmZmVjdHx8ImNvdmVyZmxvdyI9PT1ULnBhcmFtcy5lZmZlY3QpJiZULndyYXBwZXIuY3NzKHt3aWR0aDpULnZpcnR1YWxTaXplK1QucGFyYW1zLnNwYWNlQmV0d2VlbisicHgifSksVC5zdXBwb3J0LmZsZXhib3gmJiFULnBhcmFtcy5zZXRXcmFwcGVyU2l6ZXx8KFQuaXNIb3Jpem9udGFsKCk/VC53cmFwcGVyLmNzcyh7d2lkdGg6VC52aXJ0dWFsU2l6ZStULnBhcmFtcy5zcGFjZUJldHdlZW4rInB4In0pOlQud3JhcHBlci5jc3Moe2hlaWdodDpULnZpcnR1YWxTaXplK1QucGFyYW1zLnNwYWNlQmV0d2VlbisicHgifSkpLFQucGFyYW1zLnNsaWRlc1BlckNvbHVtbj4xJiYoVC52aXJ0dWFsU2l6ZT0obytULnBhcmFtcy5zcGFjZUJldHdlZW4pKm4sVC52aXJ0dWFsU2l6ZT1NYXRoLmNlaWwoVC52aXJ0dWFsU2l6ZS9ULnBhcmFtcy5zbGlkZXNQZXJDb2x1bW4pLVQucGFyYW1zLnNwYWNlQmV0d2VlbixULmlzSG9yaXpvbnRhbCgpP1Qud3JhcHBlci5jc3Moe3dpZHRoOlQudmlydHVhbFNpemUrVC5wYXJhbXMuc3BhY2VCZXR3ZWVuKyJweCJ9KTpULndyYXBwZXIuY3NzKHtoZWlnaHQ6VC52aXJ0dWFsU2l6ZStULnBhcmFtcy5zcGFjZUJldHdlZW4rInB4In0pLFQucGFyYW1zLmNlbnRlcmVkU2xpZGVzKSl7Zm9yKGc9W10sZT0wO2U8VC5zbmFwR3JpZC5sZW5ndGg7ZSsrKVQuc25hcEdyaWRbZV08VC52aXJ0dWFsU2l6ZStULnNuYXBHcmlkWzBdJiZnLnB1c2goVC5zbmFwR3JpZFtlXSk7VC5zbmFwR3JpZD1nfWlmKCFULnBhcmFtcy5jZW50ZXJlZFNsaWRlcyl7Zm9yKGc9W10sZT0wO2U8VC5zbmFwR3JpZC5sZW5ndGg7ZSsrKVQuc25hcEdyaWRbZV08PVQudmlydHVhbFNpemUtVC5zaXplJiZnLnB1c2goVC5zbmFwR3JpZFtlXSk7VC5zbmFwR3JpZD1nLE1hdGguZmxvb3IoVC52aXJ0dWFsU2l6ZS1ULnNpemUpLU1hdGguZmxvb3IoVC5zbmFwR3JpZFtULnNuYXBHcmlkLmxlbmd0aC0xXSk+MSYmVC5zbmFwR3JpZC5wdXNoKFQudmlydHVhbFNpemUtVC5zaXplKX0wPT09VC5zbmFwR3JpZC5sZW5ndGgmJihULnNuYXBHcmlkPVswXSksMCE9PVQucGFyYW1zLnNwYWNlQmV0d2VlbiYmKFQuaXNIb3Jpem9udGFsKCk/VC5ydGw/VC5zbGlkZXMuY3NzKHttYXJnaW5MZWZ0OmErInB4In0pOlQuc2xpZGVzLmNzcyh7bWFyZ2luUmlnaHQ6YSsicHgifSk6VC5zbGlkZXMuY3NzKHttYXJnaW5Cb3R0b206YSsicHgifSkpLFQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MmJlQudXBkYXRlU2xpZGVzT2Zmc2V0KCl9fSxULnVwZGF0ZVNsaWRlc09mZnNldD1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8VC5zbGlkZXMubGVuZ3RoO2UrKylULnNsaWRlc1tlXS5zd2lwZXJTbGlkZU9mZnNldD1ULmlzSG9yaXpvbnRhbCgpP1Quc2xpZGVzW2VdLm9mZnNldExlZnQ6VC5zbGlkZXNbZV0ub2Zmc2V0VG9wfSxULmN1cnJlbnRTbGlkZXNQZXJWaWV3PWZ1bmN0aW9uKCl7dmFyIGUsYSx0PTE7aWYoVC5wYXJhbXMuY2VudGVyZWRTbGlkZXMpe3ZhciBzLGk9VC5zbGlkZXNbVC5hY3RpdmVJbmRleF0uc3dpcGVyU2xpZGVTaXplO2ZvcihlPVQuYWN0aXZlSW5kZXgrMTtlPFQuc2xpZGVzLmxlbmd0aDtlKyspVC5zbGlkZXNbZV0mJiFzJiYoaSs9VC5zbGlkZXNbZV0uc3dpcGVyU2xpZGVTaXplLHQrKyxpPlQuc2l6ZSYmKHM9ITApKTtmb3IoYT1ULmFjdGl2ZUluZGV4LTE7YT49MDthLS0pVC5zbGlkZXNbYV0mJiFzJiYoaSs9VC5zbGlkZXNbYV0uc3dpcGVyU2xpZGVTaXplLHQrKyxpPlQuc2l6ZSYmKHM9ITApKX1lbHNlIGZvcihlPVQuYWN0aXZlSW5kZXgrMTtlPFQuc2xpZGVzLmxlbmd0aDtlKyspVC5zbGlkZXNHcmlkW2VdLVQuc2xpZGVzR3JpZFtULmFjdGl2ZUluZGV4XTxULnNpemUmJnQrKztyZXR1cm4gdH0sVC51cGRhdGVTbGlkZXNQcm9ncmVzcz1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lJiYoZT1ULnRyYW5zbGF0ZXx8MCksMCE9PVQuc2xpZGVzLmxlbmd0aCl7dm9pZCAwPT09VC5zbGlkZXNbMF0uc3dpcGVyU2xpZGVPZmZzZXQmJlQudXBkYXRlU2xpZGVzT2Zmc2V0KCk7dmFyIGE9LWU7VC5ydGwmJihhPWUpLFQuc2xpZGVzLnJlbW92ZUNsYXNzKFQucGFyYW1zLnNsaWRlVmlzaWJsZUNsYXNzKTtmb3IodmFyIHQ9MDt0PFQuc2xpZGVzLmxlbmd0aDt0Kyspe3ZhciBzPVQuc2xpZGVzW3RdLGk9KGErKFQucGFyYW1zLmNlbnRlcmVkU2xpZGVzP1QubWluVHJhbnNsYXRlKCk6MCktcy5zd2lwZXJTbGlkZU9mZnNldCkvKHMuc3dpcGVyU2xpZGVTaXplK1QucGFyYW1zLnNwYWNlQmV0d2Vlbik7aWYoVC5wYXJhbXMud2F0Y2hTbGlkZXNWaXNpYmlsaXR5KXt2YXIgcj0tKGEtcy5zd2lwZXJTbGlkZU9mZnNldCksbj1yK1Quc2xpZGVzU2l6ZXNHcmlkW3RdOyhyPj0wJiZyPFQuc2l6ZXx8bj4wJiZuPD1ULnNpemV8fHI8PTAmJm4+PVQuc2l6ZSkmJlQuc2xpZGVzLmVxKHQpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlVmlzaWJsZUNsYXNzKX1zLnByb2dyZXNzPVQucnRsPy1pOml9fX0sVC51cGRhdGVQcm9ncmVzcz1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT1ULnRyYW5zbGF0ZXx8MCk7dmFyIGE9VC5tYXhUcmFuc2xhdGUoKS1ULm1pblRyYW5zbGF0ZSgpLHQ9VC5pc0JlZ2lubmluZyxzPVQuaXNFbmQ7MD09PWE/KFQucHJvZ3Jlc3M9MCxULmlzQmVnaW5uaW5nPVQuaXNFbmQ9ITApOihULnByb2dyZXNzPShlLVQubWluVHJhbnNsYXRlKCkpL2EsVC5pc0JlZ2lubmluZz1ULnByb2dyZXNzPD0wLFQuaXNFbmQ9VC5wcm9ncmVzcz49MSksVC5pc0JlZ2lubmluZyYmIXQmJlQuZW1pdCgib25SZWFjaEJlZ2lubmluZyIsVCksVC5pc0VuZCYmIXMmJlQuZW1pdCgib25SZWFjaEVuZCIsVCksVC5wYXJhbXMud2F0Y2hTbGlkZXNQcm9ncmVzcyYmVC51cGRhdGVTbGlkZXNQcm9ncmVzcyhlKSxULmVtaXQoIm9uUHJvZ3Jlc3MiLFQsVC5wcm9ncmVzcyl9LFQudXBkYXRlQWN0aXZlSW5kZXg9ZnVuY3Rpb24oKXt2YXIgZSxhLHQscz1ULnJ0bD9ULnRyYW5zbGF0ZTotVC50cmFuc2xhdGU7Zm9yKGE9MDthPFQuc2xpZGVzR3JpZC5sZW5ndGg7YSsrKXZvaWQgMCE9PVQuc2xpZGVzR3JpZFthKzFdP3M+PVQuc2xpZGVzR3JpZFthXSYmczxULnNsaWRlc0dyaWRbYSsxXS0oVC5zbGlkZXNHcmlkW2ErMV0tVC5zbGlkZXNHcmlkW2FdKS8yP2U9YTpzPj1ULnNsaWRlc0dyaWRbYV0mJnM8VC5zbGlkZXNHcmlkW2ErMV0mJihlPWErMSk6cz49VC5zbGlkZXNHcmlkW2FdJiYoZT1hKTtULnBhcmFtcy5ub3JtYWxpemVTbGlkZUluZGV4JiYoZTwwfHx2b2lkIDA9PT1lKSYmKGU9MCksdD1NYXRoLmZsb29yKGUvVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXApLHQ+PVQuc25hcEdyaWQubGVuZ3RoJiYodD1ULnNuYXBHcmlkLmxlbmd0aC0xKSxlIT09VC5hY3RpdmVJbmRleCYmKFQuc25hcEluZGV4PXQsVC5wcmV2aW91c0luZGV4PVQuYWN0aXZlSW5kZXgsVC5hY3RpdmVJbmRleD1lLFQudXBkYXRlQ2xhc3NlcygpLFQudXBkYXRlUmVhbEluZGV4KCkpfSxULnVwZGF0ZVJlYWxJbmRleD1mdW5jdGlvbigpe1QucmVhbEluZGV4PXBhcnNlSW50KFQuc2xpZGVzLmVxKFQuYWN0aXZlSW5kZXgpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil8fFQuYWN0aXZlSW5kZXgsMTApfSxULnVwZGF0ZUNsYXNzZXM9ZnVuY3Rpb24oKXtULnNsaWRlcy5yZW1vdmVDbGFzcyhULnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzKyIgIitULnBhcmFtcy5zbGlkZU5leHRDbGFzcysiICIrVC5wYXJhbXMuc2xpZGVQcmV2Q2xhc3MrIiAiK1QucGFyYW1zLnNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3MrIiAiK1QucGFyYW1zLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKyIgIitULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcyk7dmFyIGE9VC5zbGlkZXMuZXEoVC5hY3RpdmVJbmRleCk7YS5hZGRDbGFzcyhULnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzKSxpLmxvb3AmJihhLmhhc0NsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpP1Qud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysiOm5vdCguIitULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKycpW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInK1QucmVhbEluZGV4KyciXScpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3MpOlQud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysiLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInK1QucmVhbEluZGV4KyciXScpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3MpKTt2YXIgdD1hLm5leHQoIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlTmV4dENsYXNzKTtULnBhcmFtcy5sb29wJiYwPT09dC5sZW5ndGgmJih0PVQuc2xpZGVzLmVxKDApLHQuYWRkQ2xhc3MoVC5wYXJhbXMuc2xpZGVOZXh0Q2xhc3MpKTt2YXIgcz1hLnByZXYoIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlUHJldkNsYXNzKTtpZihULnBhcmFtcy5sb29wJiYwPT09cy5sZW5ndGgmJihzPVQuc2xpZGVzLmVxKC0xKSxzLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlUHJldkNsYXNzKSksaS5sb29wJiYodC5oYXNDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MrIjpub3QoLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysnKVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJyt0LmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IikrJyJdJykuYWRkQ2xhc3MoVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3MpOlQud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysiLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInK3QuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSsnIl0nKS5hZGRDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZU5leHRDbGFzcykscy5oYXNDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MrIjpub3QoLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysnKVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJytzLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IikrJyJdJykuYWRkQ2xhc3MoVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3MpOlQud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysiLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInK3MuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSsnIl0nKS5hZGRDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcykpLFQucGFnaW5hdGlvbkNvbnRhaW5lciYmVC5wYWdpbmF0aW9uQ29udGFpbmVyLmxlbmd0aD4wKXt2YXIgcixuPVQucGFyYW1zLmxvb3A/TWF0aC5jZWlsKChULnNsaWRlcy5sZW5ndGgtMipULmxvb3BlZFNsaWRlcykvVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXApOlQuc25hcEdyaWQubGVuZ3RoO2lmKFQucGFyYW1zLmxvb3A/KHI9TWF0aC5jZWlsKChULmFjdGl2ZUluZGV4LVQubG9vcGVkU2xpZGVzKS9ULnBhcmFtcy5zbGlkZXNQZXJHcm91cCkscj5ULnNsaWRlcy5sZW5ndGgtMS0yKlQubG9vcGVkU2xpZGVzJiYoci09VC5zbGlkZXMubGVuZ3RoLTIqVC5sb29wZWRTbGlkZXMpLHI+bi0xJiYoci09bikscjwwJiYiYnVsbGV0cyIhPT1ULnBhcmFtcy5wYWdpbmF0aW9uVHlwZSYmKHI9bityKSk6cj12b2lkIDAhPT1ULnNuYXBJbmRleD9ULnNuYXBJbmRleDpULmFjdGl2ZUluZGV4fHwwLCJidWxsZXRzIj09PVQucGFyYW1zLnBhZ2luYXRpb25UeXBlJiZULmJ1bGxldHMmJlQuYnVsbGV0cy5sZW5ndGg+MCYmKFQuYnVsbGV0cy5yZW1vdmVDbGFzcyhULnBhcmFtcy5idWxsZXRBY3RpdmVDbGFzcyksVC5wYWdpbmF0aW9uQ29udGFpbmVyLmxlbmd0aD4xP1QuYnVsbGV0cy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5pbmRleCgpPT09ciYmZSh0aGlzKS5hZGRDbGFzcyhULnBhcmFtcy5idWxsZXRBY3RpdmVDbGFzcyl9KTpULmJ1bGxldHMuZXEocikuYWRkQ2xhc3MoVC5wYXJhbXMuYnVsbGV0QWN0aXZlQ2xhc3MpKSwiZnJhY3Rpb24iPT09VC5wYXJhbXMucGFnaW5hdGlvblR5cGUmJihULnBhZ2luYXRpb25Db250YWluZXIuZmluZCgiLiIrVC5wYXJhbXMucGFnaW5hdGlvbkN1cnJlbnRDbGFzcykudGV4dChyKzEpLFQucGFnaW5hdGlvbkNvbnRhaW5lci5maW5kKCIuIitULnBhcmFtcy5wYWdpbmF0aW9uVG90YWxDbGFzcykudGV4dChuKSksInByb2dyZXNzIj09PVQucGFyYW1zLnBhZ2luYXRpb25UeXBlKXt2YXIgbz0ocisxKS9uLGw9byxwPTE7VC5pc0hvcml6b250YWwoKXx8KHA9byxsPTEpLFQucGFnaW5hdGlvbkNvbnRhaW5lci5maW5kKCIuIitULnBhcmFtcy5wYWdpbmF0aW9uUHJvZ3Jlc3NiYXJDbGFzcykudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGVYKCIrbCsiKSBzY2FsZVkoIitwKyIpIikudHJhbnNpdGlvbihULnBhcmFtcy5zcGVlZCl9ImN1c3RvbSI9PT1ULnBhcmFtcy5wYWdpbmF0aW9uVHlwZSYmVC5wYXJhbXMucGFnaW5hdGlvbkN1c3RvbVJlbmRlciYmKFQucGFnaW5hdGlvbkNvbnRhaW5lci5odG1sKFQucGFyYW1zLnBhZ2luYXRpb25DdXN0b21SZW5kZXIoVCxyKzEsbikpLFQuZW1pdCgib25QYWdpbmF0aW9uUmVuZGVyZWQiLFQsVC5wYWdpbmF0aW9uQ29udGFpbmVyWzBdKSl9VC5wYXJhbXMubG9vcHx8KFQucGFyYW1zLnByZXZCdXR0b24mJlQucHJldkJ1dHRvbiYmVC5wcmV2QnV0dG9uLmxlbmd0aD4wJiYoVC5pc0JlZ2lubmluZz8oVC5wcmV2QnV0dG9uLmFkZENsYXNzKFQucGFyYW1zLmJ1dHRvbkRpc2FibGVkQ2xhc3MpLFQucGFyYW1zLmExMXkmJlQuYTExeSYmVC5hMTF5LmRpc2FibGUoVC5wcmV2QnV0dG9uKSk6KFQucHJldkJ1dHRvbi5yZW1vdmVDbGFzcyhULnBhcmFtcy5idXR0b25EaXNhYmxlZENsYXNzKSxULnBhcmFtcy5hMTF5JiZULmExMXkmJlQuYTExeS5lbmFibGUoVC5wcmV2QnV0dG9uKSkpLFQucGFyYW1zLm5leHRCdXR0b24mJlQubmV4dEJ1dHRvbiYmVC5uZXh0QnV0dG9uLmxlbmd0aD4wJiYoVC5pc0VuZD8oVC5uZXh0QnV0dG9uLmFkZENsYXNzKFQucGFyYW1zLmJ1dHRvbkRpc2FibGVkQ2xhc3MpLFQucGFyYW1zLmExMXkmJlQuYTExeSYmVC5hMTF5LmRpc2FibGUoVC5uZXh0QnV0dG9uKSk6KFQubmV4dEJ1dHRvbi5yZW1vdmVDbGFzcyhULnBhcmFtcy5idXR0b25EaXNhYmxlZENsYXNzKSxULnBhcmFtcy5hMTF5JiZULmExMXkmJlQuYTExeS5lbmFibGUoVC5uZXh0QnV0dG9uKSkpKX0sVC51cGRhdGVQYWdpbmF0aW9uPWZ1bmN0aW9uKCl7aWYoVC5wYXJhbXMucGFnaW5hdGlvbiYmVC5wYWdpbmF0aW9uQ29udGFpbmVyJiZULnBhZ2luYXRpb25Db250YWluZXIubGVuZ3RoPjApe3ZhciBlPSIiO2lmKCJidWxsZXRzIj09PVQucGFyYW1zLnBhZ2luYXRpb25UeXBlKXtmb3IodmFyIGE9VC5wYXJhbXMubG9vcD9NYXRoLmNlaWwoKFQuc2xpZGVzLmxlbmd0aC0yKlQubG9vcGVkU2xpZGVzKS9ULnBhcmFtcy5zbGlkZXNQZXJHcm91cCk6VC5zbmFwR3JpZC5sZW5ndGgsdD0wO3Q8YTt0KyspZSs9VC5wYXJhbXMucGFnaW5hdGlvbkJ1bGxldFJlbmRlcj9ULnBhcmFtcy5wYWdpbmF0aW9uQnVsbGV0UmVuZGVyKFQsdCxULnBhcmFtcy5idWxsZXRDbGFzcyk6IjwiK1QucGFyYW1zLnBhZ2luYXRpb25FbGVtZW50KycgY2xhc3M9IicrVC5wYXJhbXMuYnVsbGV0Q2xhc3MrJyI+PC8nK1QucGFyYW1zLnBhZ2luYXRpb25FbGVtZW50KyI+IjtULnBhZ2luYXRpb25Db250YWluZXIuaHRtbChlKSxULmJ1bGxldHM9VC5wYWdpbmF0aW9uQ29udGFpbmVyLmZpbmQoIi4iK1QucGFyYW1zLmJ1bGxldENsYXNzKSxULnBhcmFtcy5wYWdpbmF0aW9uQ2xpY2thYmxlJiZULnBhcmFtcy5hMTF5JiZULmExMXkmJlQuYTExeS5pbml0UGFnaW5hdGlvbigpfSJmcmFjdGlvbiI9PT1ULnBhcmFtcy5wYWdpbmF0aW9uVHlwZSYmKGU9VC5wYXJhbXMucGFnaW5hdGlvbkZyYWN0aW9uUmVuZGVyP1QucGFyYW1zLnBhZ2luYXRpb25GcmFjdGlvblJlbmRlcihULFQucGFyYW1zLnBhZ2luYXRpb25DdXJyZW50Q2xhc3MsVC5wYXJhbXMucGFnaW5hdGlvblRvdGFsQ2xhc3MpOic8c3BhbiBjbGFzcz0iJytULnBhcmFtcy5wYWdpbmF0aW9uQ3VycmVudENsYXNzKyciPjwvc3Bhbj4gLyA8c3BhbiBjbGFzcz0iJytULnBhcmFtcy5wYWdpbmF0aW9uVG90YWxDbGFzcysnIj48L3NwYW4+JyxULnBhZ2luYXRpb25Db250YWluZXIuaHRtbChlKSksInByb2dyZXNzIj09PVQucGFyYW1zLnBhZ2luYXRpb25UeXBlJiYoZT1ULnBhcmFtcy5wYWdpbmF0aW9uUHJvZ3Jlc3NSZW5kZXI/VC5wYXJhbXMucGFnaW5hdGlvblByb2dyZXNzUmVuZGVyKFQsVC5wYXJhbXMucGFnaW5hdGlvblByb2dyZXNzYmFyQ2xhc3MpOic8c3BhbiBjbGFzcz0iJytULnBhcmFtcy5wYWdpbmF0aW9uUHJvZ3Jlc3NiYXJDbGFzcysnIj48L3NwYW4+JyxULnBhZ2luYXRpb25Db250YWluZXIuaHRtbChlKSksImN1c3RvbSIhPT1ULnBhcmFtcy5wYWdpbmF0aW9uVHlwZSYmVC5lbWl0KCJvblBhZ2luYXRpb25SZW5kZXJlZCIsVCxULnBhZ2luYXRpb25Db250YWluZXJbMF0pfX0sVC51cGRhdGU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gYSgpe1QucnRsLFQudHJhbnNsYXRlO3Q9TWF0aC5taW4oTWF0aC5tYXgoVC50cmFuc2xhdGUsVC5tYXhUcmFuc2xhdGUoKSksVC5taW5UcmFuc2xhdGUoKSksVC5zZXRXcmFwcGVyVHJhbnNsYXRlKHQpLFQudXBkYXRlQWN0aXZlSW5kZXgoKSxULnVwZGF0ZUNsYXNzZXMoKX1pZihUKXtULnVwZGF0ZUNvbnRhaW5lclNpemUoKSxULnVwZGF0ZVNsaWRlc1NpemUoKSxULnVwZGF0ZVByb2dyZXNzKCksVC51cGRhdGVQYWdpbmF0aW9uKCksVC51cGRhdGVDbGFzc2VzKCksVC5wYXJhbXMuc2Nyb2xsYmFyJiZULnNjcm9sbGJhciYmVC5zY3JvbGxiYXIuc2V0KCk7dmFyIHQ7aWYoZSl7VC5jb250cm9sbGVyJiZULmNvbnRyb2xsZXIuc3BsaW5lJiYoVC5jb250cm9sbGVyLnNwbGluZT12b2lkIDApLFQucGFyYW1zLmZyZWVNb2RlPyhhKCksVC5wYXJhbXMuYXV0b0hlaWdodCYmVC51cGRhdGVBdXRvSGVpZ2h0KCkpOigoImF1dG8iPT09VC5wYXJhbXMuc2xpZGVzUGVyVmlld3x8VC5wYXJhbXMuc2xpZGVzUGVyVmlldz4xKSYmVC5pc0VuZCYmIVQucGFyYW1zLmNlbnRlcmVkU2xpZGVzP1Quc2xpZGVUbyhULnNsaWRlcy5sZW5ndGgtMSwwLCExLCEwKTpULnNsaWRlVG8oVC5hY3RpdmVJbmRleCwwLCExLCEwKSl8fGEoKX1lbHNlIFQucGFyYW1zLmF1dG9IZWlnaHQmJlQudXBkYXRlQXV0b0hlaWdodCgpfX0sVC5vblJlc2l6ZT1mdW5jdGlvbihlKXtULnBhcmFtcy5vbkJlZm9yZVJlc2l6ZSYmVC5wYXJhbXMub25CZWZvcmVSZXNpemUoVCksVC5wYXJhbXMuYnJlYWtwb2ludHMmJlQuc2V0QnJlYWtwb2ludCgpO3ZhciBhPVQucGFyYW1zLmFsbG93U3dpcGVUb1ByZXYsdD1ULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0O1QucGFyYW1zLmFsbG93U3dpcGVUb1ByZXY9VC5wYXJhbXMuYWxsb3dTd2lwZVRvTmV4dD0hMCxULnVwZGF0ZUNvbnRhaW5lclNpemUoKSxULnVwZGF0ZVNsaWRlc1NpemUoKSwoImF1dG8iPT09VC5wYXJhbXMuc2xpZGVzUGVyVmlld3x8VC5wYXJhbXMuZnJlZU1vZGV8fGUpJiZULnVwZGF0ZVBhZ2luYXRpb24oKSxULnBhcmFtcy5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyJiZULnNjcm9sbGJhci5zZXQoKSxULmNvbnRyb2xsZXImJlQuY29udHJvbGxlci5zcGxpbmUmJihULmNvbnRyb2xsZXIuc3BsaW5lPXZvaWQgMCk7dmFyIHM9ITE7aWYoVC5wYXJhbXMuZnJlZU1vZGUpe3ZhciBpPU1hdGgubWluKE1hdGgubWF4KFQudHJhbnNsYXRlLFQubWF4VHJhbnNsYXRlKCkpLFQubWluVHJhbnNsYXRlKCkpO1Quc2V0V3JhcHBlclRyYW5zbGF0ZShpKSxULnVwZGF0ZUFjdGl2ZUluZGV4KCksVC51cGRhdGVDbGFzc2VzKCksVC5wYXJhbXMuYXV0b0hlaWdodCYmVC51cGRhdGVBdXRvSGVpZ2h0KCl9ZWxzZSBULnVwZGF0ZUNsYXNzZXMoKSxzPSgiYXV0byI9PT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3fHxULnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpJiZULmlzRW5kJiYhVC5wYXJhbXMuY2VudGVyZWRTbGlkZXM/VC5zbGlkZVRvKFQuc2xpZGVzLmxlbmd0aC0xLDAsITEsITApOlQuc2xpZGVUbyhULmFjdGl2ZUluZGV4LDAsITEsITApO1QucGFyYW1zLmxhenlMb2FkaW5nJiYhcyYmVC5sYXp5JiZULmxhenkubG9hZCgpLFQucGFyYW1zLmFsbG93U3dpcGVUb1ByZXY9YSxULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0PXQsVC5wYXJhbXMub25BZnRlclJlc2l6ZSYmVC5wYXJhbXMub25BZnRlclJlc2l6ZShUKX0sVC50b3VjaEV2ZW50c0Rlc2t0b3A9e3N0YXJ0OiJtb3VzZWRvd24iLG1vdmU6Im1vdXNlbW92ZSIsZW5kOiJtb3VzZXVwIn0sd2luZG93Lm5hdmlnYXRvci5wb2ludGVyRW5hYmxlZD9ULnRvdWNoRXZlbnRzRGVza3RvcD17c3RhcnQ6InBvaW50ZXJkb3duIixtb3ZlOiJwb2ludGVybW92ZSIsZW5kOiJwb2ludGVydXAifTp3aW5kb3cubmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQmJihULnRvdWNoRXZlbnRzRGVza3RvcD17c3RhcnQ6Ik1TUG9pbnRlckRvd24iLG1vdmU6Ik1TUG9pbnRlck1vdmUiLGVuZDoiTVNQb2ludGVyVXAifSksVC50b3VjaEV2ZW50cz17c3RhcnQ6VC5zdXBwb3J0LnRvdWNofHwhVC5wYXJhbXMuc2ltdWxhdGVUb3VjaD8idG91Y2hzdGFydCI6VC50b3VjaEV2ZW50c0Rlc2t0b3Auc3RhcnQsbW92ZTpULnN1cHBvcnQudG91Y2h8fCFULnBhcmFtcy5zaW11bGF0ZVRvdWNoPyJ0b3VjaG1vdmUiOlQudG91Y2hFdmVudHNEZXNrdG9wLm1vdmUsZW5kOlQuc3VwcG9ydC50b3VjaHx8IVQucGFyYW1zLnNpbXVsYXRlVG91Y2g/InRvdWNoZW5kIjpULnRvdWNoRXZlbnRzRGVza3RvcC5lbmR9LCh3aW5kb3cubmF2aWdhdG9yLnBvaW50ZXJFbmFibGVkfHx3aW5kb3cubmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQpJiYoImNvbnRhaW5lciI9PT1ULnBhcmFtcy50b3VjaEV2ZW50c1RhcmdldD9ULmNvbnRhaW5lcjpULndyYXBwZXIpLmFkZENsYXNzKCJzd2lwZXItd3A4LSIrVC5wYXJhbXMuZGlyZWN0aW9uKSxULmluaXRFdmVudHM9ZnVuY3Rpb24oZSl7dmFyIGE9ZT8ib2ZmIjoib24iLHQ9ZT8icmVtb3ZlRXZlbnRMaXN0ZW5lciI6ImFkZEV2ZW50TGlzdGVuZXIiLHM9ImNvbnRhaW5lciI9PT1ULnBhcmFtcy50b3VjaEV2ZW50c1RhcmdldD9ULmNvbnRhaW5lclswXTpULndyYXBwZXJbMF0scj1ULnN1cHBvcnQudG91Y2g/czpkb2N1bWVudCxuPSEhVC5wYXJhbXMubmVzdGVkO2lmKFQuYnJvd3Nlci5pZSlzW3RdKFQudG91Y2hFdmVudHMuc3RhcnQsVC5vblRvdWNoU3RhcnQsITEpLHJbdF0oVC50b3VjaEV2ZW50cy5tb3ZlLFQub25Ub3VjaE1vdmUsbiksclt0XShULnRvdWNoRXZlbnRzLmVuZCxULm9uVG91Y2hFbmQsITEpO2Vsc2V7aWYoVC5zdXBwb3J0LnRvdWNoKXt2YXIgbz0hKCJ0b3VjaHN0YXJ0IiE9PVQudG91Y2hFdmVudHMuc3RhcnR8fCFULnN1cHBvcnQucGFzc2l2ZUxpc3RlbmVyfHwhVC5wYXJhbXMucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiEwLGNhcHR1cmU6ITF9O3NbdF0oVC50b3VjaEV2ZW50cy5zdGFydCxULm9uVG91Y2hTdGFydCxvKSxzW3RdKFQudG91Y2hFdmVudHMubW92ZSxULm9uVG91Y2hNb3ZlLG4pLHNbdF0oVC50b3VjaEV2ZW50cy5lbmQsVC5vblRvdWNoRW5kLG8pfShpLnNpbXVsYXRlVG91Y2gmJiFULmRldmljZS5pb3MmJiFULmRldmljZS5hbmRyb2lkfHxpLnNpbXVsYXRlVG91Y2gmJiFULnN1cHBvcnQudG91Y2gmJlQuZGV2aWNlLmlvcykmJihzW3RdKCJtb3VzZWRvd24iLFQub25Ub3VjaFN0YXJ0LCExKSxkb2N1bWVudFt0XSgibW91c2Vtb3ZlIixULm9uVG91Y2hNb3ZlLG4pLGRvY3VtZW50W3RdKCJtb3VzZXVwIixULm9uVG91Y2hFbmQsITEpKX13aW5kb3dbdF0oInJlc2l6ZSIsVC5vblJlc2l6ZSksVC5wYXJhbXMubmV4dEJ1dHRvbiYmVC5uZXh0QnV0dG9uJiZULm5leHRCdXR0b24ubGVuZ3RoPjAmJihULm5leHRCdXR0b25bYV0oImNsaWNrIixULm9uQ2xpY2tOZXh0KSxULnBhcmFtcy5hMTF5JiZULmExMXkmJlQubmV4dEJ1dHRvblthXSgia2V5ZG93biIsVC5hMTF5Lm9uRW50ZXJLZXkpKSxULnBhcmFtcy5wcmV2QnV0dG9uJiZULnByZXZCdXR0b24mJlQucHJldkJ1dHRvbi5sZW5ndGg+MCYmKFQucHJldkJ1dHRvblthXSgiY2xpY2siLFQub25DbGlja1ByZXYpLFQucGFyYW1zLmExMXkmJlQuYTExeSYmVC5wcmV2QnV0dG9uW2FdKCJrZXlkb3duIixULmExMXkub25FbnRlcktleSkpLFQucGFyYW1zLnBhZ2luYXRpb24mJlQucGFyYW1zLnBhZ2luYXRpb25DbGlja2FibGUmJihULnBhZ2luYXRpb25Db250YWluZXJbYV0oImNsaWNrIiwiLiIrVC5wYXJhbXMuYnVsbGV0Q2xhc3MsVC5vbkNsaWNrSW5kZXgpLFQucGFyYW1zLmExMXkmJlQuYTExeSYmVC5wYWdpbmF0aW9uQ29udGFpbmVyW2FdKCJrZXlkb3duIiwiLiIrVC5wYXJhbXMuYnVsbGV0Q2xhc3MsVC5hMTF5Lm9uRW50ZXJLZXkpKSwoVC5wYXJhbXMucHJldmVudENsaWNrc3x8VC5wYXJhbXMucHJldmVudENsaWNrc1Byb3BhZ2F0aW9uKSYmc1t0XSgiY2xpY2siLFQucHJldmVudENsaWNrcywhMCl9LFQuYXR0YWNoRXZlbnRzPWZ1bmN0aW9uKCl7VC5pbml0RXZlbnRzKCl9LFQuZGV0YWNoRXZlbnRzPWZ1bmN0aW9uKCl7VC5pbml0RXZlbnRzKCEwKX0sVC5hbGxvd0NsaWNrPSEwLFQucHJldmVudENsaWNrcz1mdW5jdGlvbihlKXtULmFsbG93Q2xpY2t8fChULnBhcmFtcy5wcmV2ZW50Q2xpY2tzJiZlLnByZXZlbnREZWZhdWx0KCksVC5wYXJhbXMucHJldmVudENsaWNrc1Byb3BhZ2F0aW9uJiZULmFuaW1hdGluZyYmKGUuc3RvcFByb3BhZ2F0aW9uKCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSkpfSxULm9uQ2xpY2tOZXh0PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxULmlzRW5kJiYhVC5wYXJhbXMubG9vcHx8VC5zbGlkZU5leHQoKX0sVC5vbkNsaWNrUHJldj1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksVC5pc0JlZ2lubmluZyYmIVQucGFyYW1zLmxvb3B8fFQuc2xpZGVQcmV2KCl9LFQub25DbGlja0luZGV4PWZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTt2YXIgdD1lKHRoaXMpLmluZGV4KCkqVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXA7VC5wYXJhbXMubG9vcCYmKHQrPVQubG9vcGVkU2xpZGVzKSxULnNsaWRlVG8odCl9LApULnVwZGF0ZUNsaWNrZWRTbGlkZT1mdW5jdGlvbihhKXt2YXIgdD1vKGEsIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MpLHM9ITE7aWYodClmb3IodmFyIGk9MDtpPFQuc2xpZGVzLmxlbmd0aDtpKyspVC5zbGlkZXNbaV09PT10JiYocz0hMCk7aWYoIXR8fCFzKXJldHVybiBULmNsaWNrZWRTbGlkZT12b2lkIDAsdm9pZChULmNsaWNrZWRJbmRleD12b2lkIDApO2lmKFQuY2xpY2tlZFNsaWRlPXQsVC5jbGlja2VkSW5kZXg9ZSh0KS5pbmRleCgpLFQucGFyYW1zLnNsaWRlVG9DbGlja2VkU2xpZGUmJnZvaWQgMCE9PVQuY2xpY2tlZEluZGV4JiZULmNsaWNrZWRJbmRleCE9PVQuYWN0aXZlSW5kZXgpe3ZhciByLG49VC5jbGlja2VkSW5kZXgsbD0iYXV0byI9PT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3P1QuY3VycmVudFNsaWRlc1BlclZpZXcoKTpULnBhcmFtcy5zbGlkZXNQZXJWaWV3O2lmKFQucGFyYW1zLmxvb3Ape2lmKFQuYW5pbWF0aW5nKXJldHVybjtyPXBhcnNlSW50KGUoVC5jbGlja2VkU2xpZGUpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApLFQucGFyYW1zLmNlbnRlcmVkU2xpZGVzP248VC5sb29wZWRTbGlkZXMtbC8yfHxuPlQuc2xpZGVzLmxlbmd0aC1ULmxvb3BlZFNsaWRlcytsLzI/KFQuZml4TG9vcCgpLG49VC53cmFwcGVyLmNoaWxkcmVuKCIuIitULnBhcmFtcy5zbGlkZUNsYXNzKydbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicrcisnIl06bm90KC4nK1QucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MrIikiKS5lcSgwKS5pbmRleCgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtULnNsaWRlVG8obil9LDApKTpULnNsaWRlVG8obik6bj5ULnNsaWRlcy5sZW5ndGgtbD8oVC5maXhMb29wKCksbj1ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MrJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJytyKyciXTpub3QoLicrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysiKSIpLmVxKDApLmluZGV4KCksc2V0VGltZW91dChmdW5jdGlvbigpe1Quc2xpZGVUbyhuKX0sMCkpOlQuc2xpZGVUbyhuKX1lbHNlIFQuc2xpZGVUbyhuKX19O3ZhciBTLEMseixNLEUsUCxJLGssTCxELEI9ImlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24sIHZpZGVvIixIPURhdGUubm93KCksRz1bXTtULmFuaW1hdGluZz0hMSxULnRvdWNoZXM9e3N0YXJ0WDowLHN0YXJ0WTowLGN1cnJlbnRYOjAsY3VycmVudFk6MCxkaWZmOjB9O3ZhciBYLEE7VC5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24oYSl7aWYoYS5vcmlnaW5hbEV2ZW50JiYoYT1hLm9yaWdpbmFsRXZlbnQpLChYPSJ0b3VjaHN0YXJ0Ij09PWEudHlwZSl8fCEoIndoaWNoImluIGEpfHwzIT09YS53aGljaCl7aWYoVC5wYXJhbXMubm9Td2lwaW5nJiZvKGEsIi4iK1QucGFyYW1zLm5vU3dpcGluZ0NsYXNzKSlyZXR1cm4gdm9pZChULmFsbG93Q2xpY2s9ITApO2lmKCFULnBhcmFtcy5zd2lwZUhhbmRsZXJ8fG8oYSxULnBhcmFtcy5zd2lwZUhhbmRsZXIpKXt2YXIgdD1ULnRvdWNoZXMuY3VycmVudFg9InRvdWNoc3RhcnQiPT09YS50eXBlP2EudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDphLnBhZ2VYLHM9VC50b3VjaGVzLmN1cnJlbnRZPSJ0b3VjaHN0YXJ0Ij09PWEudHlwZT9hLnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6YS5wYWdlWTtpZighKFQuZGV2aWNlLmlvcyYmVC5wYXJhbXMuaU9TRWRnZVN3aXBlRGV0ZWN0aW9uJiZ0PD1ULnBhcmFtcy5pT1NFZGdlU3dpcGVUaHJlc2hvbGQpKXtpZihTPSEwLEM9ITEsej0hMCxFPXZvaWQgMCxBPXZvaWQgMCxULnRvdWNoZXMuc3RhcnRYPXQsVC50b3VjaGVzLnN0YXJ0WT1zLE09RGF0ZS5ub3coKSxULmFsbG93Q2xpY2s9ITAsVC51cGRhdGVDb250YWluZXJTaXplKCksVC5zd2lwZURpcmVjdGlvbj12b2lkIDAsVC5wYXJhbXMudGhyZXNob2xkPjAmJihrPSExKSwidG91Y2hzdGFydCIhPT1hLnR5cGUpe3ZhciBpPSEwO2UoYS50YXJnZXQpLmlzKEIpJiYoaT0hMSksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZShkb2N1bWVudC5hY3RpdmVFbGVtZW50KS5pcyhCKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCksaSYmYS5wcmV2ZW50RGVmYXVsdCgpfVQuZW1pdCgib25Ub3VjaFN0YXJ0IixULGEpfX19fSxULm9uVG91Y2hNb3ZlPWZ1bmN0aW9uKGEpe2lmKGEub3JpZ2luYWxFdmVudCYmKGE9YS5vcmlnaW5hbEV2ZW50KSwhWHx8Im1vdXNlbW92ZSIhPT1hLnR5cGUpe2lmKGEucHJldmVudGVkQnlOZXN0ZWRTd2lwZXIpcmV0dXJuIFQudG91Y2hlcy5zdGFydFg9InRvdWNobW92ZSI9PT1hLnR5cGU/YS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYOmEucGFnZVgsdm9pZChULnRvdWNoZXMuc3RhcnRZPSJ0b3VjaG1vdmUiPT09YS50eXBlP2EudGFyZ2V0VG91Y2hlc1swXS5wYWdlWTphLnBhZ2VZKTtpZihULnBhcmFtcy5vbmx5RXh0ZXJuYWwpcmV0dXJuIFQuYWxsb3dDbGljaz0hMSx2b2lkKFMmJihULnRvdWNoZXMuc3RhcnRYPVQudG91Y2hlcy5jdXJyZW50WD0idG91Y2htb3ZlIj09PWEudHlwZT9hLnRhcmdldFRvdWNoZXNbMF0ucGFnZVg6YS5wYWdlWCxULnRvdWNoZXMuc3RhcnRZPVQudG91Y2hlcy5jdXJyZW50WT0idG91Y2htb3ZlIj09PWEudHlwZT9hLnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6YS5wYWdlWSxNPURhdGUubm93KCkpKTtpZihYJiZULnBhcmFtcy50b3VjaFJlbGVhc2VPbkVkZ2VzJiYhVC5wYXJhbXMubG9vcClpZihULmlzSG9yaXpvbnRhbCgpKXtpZihULnRvdWNoZXMuY3VycmVudFg8VC50b3VjaGVzLnN0YXJ0WCYmVC50cmFuc2xhdGU8PVQubWF4VHJhbnNsYXRlKCl8fFQudG91Y2hlcy5jdXJyZW50WD5ULnRvdWNoZXMuc3RhcnRYJiZULnRyYW5zbGF0ZT49VC5taW5UcmFuc2xhdGUoKSlyZXR1cm59ZWxzZSBpZihULnRvdWNoZXMuY3VycmVudFk8VC50b3VjaGVzLnN0YXJ0WSYmVC50cmFuc2xhdGU8PVQubWF4VHJhbnNsYXRlKCl8fFQudG91Y2hlcy5jdXJyZW50WT5ULnRvdWNoZXMuc3RhcnRZJiZULnRyYW5zbGF0ZT49VC5taW5UcmFuc2xhdGUoKSlyZXR1cm47aWYoWCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmYS50YXJnZXQ9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiZlKGEudGFyZ2V0KS5pcyhCKSlyZXR1cm4gQz0hMCx2b2lkKFQuYWxsb3dDbGljaz0hMSk7aWYoeiYmVC5lbWl0KCJvblRvdWNoTW92ZSIsVCxhKSwhKGEudGFyZ2V0VG91Y2hlcyYmYS50YXJnZXRUb3VjaGVzLmxlbmd0aD4xKSl7aWYoVC50b3VjaGVzLmN1cnJlbnRYPSJ0b3VjaG1vdmUiPT09YS50eXBlP2EudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDphLnBhZ2VYLFQudG91Y2hlcy5jdXJyZW50WT0idG91Y2htb3ZlIj09PWEudHlwZT9hLnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6YS5wYWdlWSx2b2lkIDA9PT1FKXt2YXIgdDtULmlzSG9yaXpvbnRhbCgpJiZULnRvdWNoZXMuY3VycmVudFk9PT1ULnRvdWNoZXMuc3RhcnRZfHwhVC5pc0hvcml6b250YWwoKSYmVC50b3VjaGVzLmN1cnJlbnRYPT09VC50b3VjaGVzLnN0YXJ0WD9FPSExOih0PTE4MCpNYXRoLmF0YW4yKE1hdGguYWJzKFQudG91Y2hlcy5jdXJyZW50WS1ULnRvdWNoZXMuc3RhcnRZKSxNYXRoLmFicyhULnRvdWNoZXMuY3VycmVudFgtVC50b3VjaGVzLnN0YXJ0WCkpL01hdGguUEksRT1ULmlzSG9yaXpvbnRhbCgpP3Q+VC5wYXJhbXMudG91Y2hBbmdsZTo5MC10PlQucGFyYW1zLnRvdWNoQW5nbGUpfWlmKEUmJlQuZW1pdCgib25Ub3VjaE1vdmVPcHBvc2l0ZSIsVCxhKSx2b2lkIDA9PT1BJiYoVC50b3VjaGVzLmN1cnJlbnRYPT09VC50b3VjaGVzLnN0YXJ0WCYmVC50b3VjaGVzLmN1cnJlbnRZPT09VC50b3VjaGVzLnN0YXJ0WXx8KEE9ITApKSxTKXtpZihFKXJldHVybiB2b2lkKFM9ITEpO2lmKEEpe1QuYWxsb3dDbGljaz0hMSxULmVtaXQoIm9uU2xpZGVyTW92ZSIsVCxhKSxhLnByZXZlbnREZWZhdWx0KCksVC5wYXJhbXMudG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uJiYhVC5wYXJhbXMubmVzdGVkJiZhLnN0b3BQcm9wYWdhdGlvbigpLEN8fChpLmxvb3AmJlQuZml4TG9vcCgpLEk9VC5nZXRXcmFwcGVyVHJhbnNsYXRlKCksVC5zZXRXcmFwcGVyVHJhbnNpdGlvbigwKSxULmFuaW1hdGluZyYmVC53cmFwcGVyLnRyaWdnZXIoIndlYmtpdFRyYW5zaXRpb25FbmQgdHJhbnNpdGlvbmVuZCBvVHJhbnNpdGlvbkVuZCBNU1RyYW5zaXRpb25FbmQgbXNUcmFuc2l0aW9uRW5kIiksVC5wYXJhbXMuYXV0b3BsYXkmJlQuYXV0b3BsYXlpbmcmJihULnBhcmFtcy5hdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uP1Quc3RvcEF1dG9wbGF5KCk6VC5wYXVzZUF1dG9wbGF5KCkpLEQ9ITEsIVQucGFyYW1zLmdyYWJDdXJzb3J8fFQucGFyYW1zLmFsbG93U3dpcGVUb05leHQhPT0hMCYmVC5wYXJhbXMuYWxsb3dTd2lwZVRvUHJldiE9PSEwfHxULnNldEdyYWJDdXJzb3IoITApKSxDPSEwO3ZhciBzPVQudG91Y2hlcy5kaWZmPVQuaXNIb3Jpem9udGFsKCk/VC50b3VjaGVzLmN1cnJlbnRYLVQudG91Y2hlcy5zdGFydFg6VC50b3VjaGVzLmN1cnJlbnRZLVQudG91Y2hlcy5zdGFydFk7cyo9VC5wYXJhbXMudG91Y2hSYXRpbyxULnJ0bCYmKHM9LXMpLFQuc3dpcGVEaXJlY3Rpb249cz4wPyJwcmV2IjoibmV4dCIsUD1zK0k7dmFyIHI9ITA7aWYocz4wJiZQPlQubWluVHJhbnNsYXRlKCk/KHI9ITEsVC5wYXJhbXMucmVzaXN0YW5jZSYmKFA9VC5taW5UcmFuc2xhdGUoKS0xK01hdGgucG93KC1ULm1pblRyYW5zbGF0ZSgpK0krcyxULnBhcmFtcy5yZXNpc3RhbmNlUmF0aW8pKSk6czwwJiZQPFQubWF4VHJhbnNsYXRlKCkmJihyPSExLFQucGFyYW1zLnJlc2lzdGFuY2UmJihQPVQubWF4VHJhbnNsYXRlKCkrMS1NYXRoLnBvdyhULm1heFRyYW5zbGF0ZSgpLUktcyxULnBhcmFtcy5yZXNpc3RhbmNlUmF0aW8pKSksciYmKGEucHJldmVudGVkQnlOZXN0ZWRTd2lwZXI9ITApLCFULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0JiYibmV4dCI9PT1ULnN3aXBlRGlyZWN0aW9uJiZQPEkmJihQPUkpLCFULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2JiYicHJldiI9PT1ULnN3aXBlRGlyZWN0aW9uJiZQPkkmJihQPUkpLFQucGFyYW1zLnRocmVzaG9sZD4wKXtpZighKE1hdGguYWJzKHMpPlQucGFyYW1zLnRocmVzaG9sZHx8aykpcmV0dXJuIHZvaWQoUD1JKTtpZighaylyZXR1cm4gaz0hMCxULnRvdWNoZXMuc3RhcnRYPVQudG91Y2hlcy5jdXJyZW50WCxULnRvdWNoZXMuc3RhcnRZPVQudG91Y2hlcy5jdXJyZW50WSxQPUksdm9pZChULnRvdWNoZXMuZGlmZj1ULmlzSG9yaXpvbnRhbCgpP1QudG91Y2hlcy5jdXJyZW50WC1ULnRvdWNoZXMuc3RhcnRYOlQudG91Y2hlcy5jdXJyZW50WS1ULnRvdWNoZXMuc3RhcnRZKX1ULnBhcmFtcy5mb2xsb3dGaW5nZXImJigoVC5wYXJhbXMuZnJlZU1vZGV8fFQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MpJiZULnVwZGF0ZUFjdGl2ZUluZGV4KCksVC5wYXJhbXMuZnJlZU1vZGUmJigwPT09Ry5sZW5ndGgmJkcucHVzaCh7cG9zaXRpb246VC50b3VjaGVzW1QuaXNIb3Jpem9udGFsKCk/InN0YXJ0WCI6InN0YXJ0WSJdLHRpbWU6TX0pLEcucHVzaCh7cG9zaXRpb246VC50b3VjaGVzW1QuaXNIb3Jpem9udGFsKCk/ImN1cnJlbnRYIjoiY3VycmVudFkiXSx0aW1lOihuZXcgd2luZG93LkRhdGUpLmdldFRpbWUoKX0pKSxULnVwZGF0ZVByb2dyZXNzKFApLFQuc2V0V3JhcHBlclRyYW5zbGF0ZShQKSl9fX19fSxULm9uVG91Y2hFbmQ9ZnVuY3Rpb24oYSl7aWYoYS5vcmlnaW5hbEV2ZW50JiYoYT1hLm9yaWdpbmFsRXZlbnQpLHomJlQuZW1pdCgib25Ub3VjaEVuZCIsVCxhKSx6PSExLFMpe1QucGFyYW1zLmdyYWJDdXJzb3ImJkMmJlMmJihULnBhcmFtcy5hbGxvd1N3aXBlVG9OZXh0PT09ITB8fFQucGFyYW1zLmFsbG93U3dpcGVUb1ByZXY9PT0hMCkmJlQuc2V0R3JhYkN1cnNvcighMSk7dmFyIHQ9RGF0ZS5ub3coKSxzPXQtTTtpZihULmFsbG93Q2xpY2smJihULnVwZGF0ZUNsaWNrZWRTbGlkZShhKSxULmVtaXQoIm9uVGFwIixULGEpLHM8MzAwJiZ0LUg+MzAwJiYoTCYmY2xlYXJUaW1lb3V0KEwpLEw9c2V0VGltZW91dChmdW5jdGlvbigpe1QmJihULnBhcmFtcy5wYWdpbmF0aW9uSGlkZSYmVC5wYWdpbmF0aW9uQ29udGFpbmVyLmxlbmd0aD4wJiYhZShhLnRhcmdldCkuaGFzQ2xhc3MoVC5wYXJhbXMuYnVsbGV0Q2xhc3MpJiZULnBhZ2luYXRpb25Db250YWluZXIudG9nZ2xlQ2xhc3MoVC5wYXJhbXMucGFnaW5hdGlvbkhpZGRlbkNsYXNzKSxULmVtaXQoIm9uQ2xpY2siLFQsYSkpfSwzMDApKSxzPDMwMCYmdC1IPDMwMCYmKEwmJmNsZWFyVGltZW91dChMKSxULmVtaXQoIm9uRG91YmxlVGFwIixULGEpKSksSD1EYXRlLm5vdygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtUJiYoVC5hbGxvd0NsaWNrPSEwKX0sMCksIVN8fCFDfHwhVC5zd2lwZURpcmVjdGlvbnx8MD09PVQudG91Y2hlcy5kaWZmfHxQPT09SSlyZXR1cm4gdm9pZChTPUM9ITEpO1M9Qz0hMTt2YXIgaTtpZihpPVQucGFyYW1zLmZvbGxvd0Zpbmdlcj9ULnJ0bD9ULnRyYW5zbGF0ZTotVC50cmFuc2xhdGU6LVAsVC5wYXJhbXMuZnJlZU1vZGUpe2lmKGk8LVQubWluVHJhbnNsYXRlKCkpcmV0dXJuIHZvaWQgVC5zbGlkZVRvKFQuYWN0aXZlSW5kZXgpO2lmKGk+LVQubWF4VHJhbnNsYXRlKCkpcmV0dXJuIHZvaWQoVC5zbGlkZXMubGVuZ3RoPFQuc25hcEdyaWQubGVuZ3RoP1Quc2xpZGVUbyhULnNuYXBHcmlkLmxlbmd0aC0xKTpULnNsaWRlVG8oVC5zbGlkZXMubGVuZ3RoLTEpKTtpZihULnBhcmFtcy5mcmVlTW9kZU1vbWVudHVtKXtpZihHLmxlbmd0aD4xKXt2YXIgcj1HLnBvcCgpLG49Ry5wb3AoKSxvPXIucG9zaXRpb24tbi5wb3NpdGlvbixsPXIudGltZS1uLnRpbWU7VC52ZWxvY2l0eT1vL2wsVC52ZWxvY2l0eT1ULnZlbG9jaXR5LzIsTWF0aC5hYnMoVC52ZWxvY2l0eSk8VC5wYXJhbXMuZnJlZU1vZGVNaW5pbXVtVmVsb2NpdHkmJihULnZlbG9jaXR5PTApLChsPjE1MHx8KG5ldyB3aW5kb3cuRGF0ZSkuZ2V0VGltZSgpLXIudGltZT4zMDApJiYoVC52ZWxvY2l0eT0wKX1lbHNlIFQudmVsb2NpdHk9MDtULnZlbG9jaXR5PVQudmVsb2NpdHkqVC5wYXJhbXMuZnJlZU1vZGVNb21lbnR1bVZlbG9jaXR5UmF0aW8sRy5sZW5ndGg9MDt2YXIgcD0xZTMqVC5wYXJhbXMuZnJlZU1vZGVNb21lbnR1bVJhdGlvLGQ9VC52ZWxvY2l0eSpwLHU9VC50cmFuc2xhdGUrZDtULnJ0bCYmKHU9LXUpO3ZhciBjLG09ITEsaD0yMCpNYXRoLmFicyhULnZlbG9jaXR5KSpULnBhcmFtcy5mcmVlTW9kZU1vbWVudHVtQm91bmNlUmF0aW87aWYodTxULm1heFRyYW5zbGF0ZSgpKVQucGFyYW1zLmZyZWVNb2RlTW9tZW50dW1Cb3VuY2U/KHUrVC5tYXhUcmFuc2xhdGUoKTwtaCYmKHU9VC5tYXhUcmFuc2xhdGUoKS1oKSxjPVQubWF4VHJhbnNsYXRlKCksbT0hMCxEPSEwKTp1PVQubWF4VHJhbnNsYXRlKCk7ZWxzZSBpZih1PlQubWluVHJhbnNsYXRlKCkpVC5wYXJhbXMuZnJlZU1vZGVNb21lbnR1bUJvdW5jZT8odS1ULm1pblRyYW5zbGF0ZSgpPmgmJih1PVQubWluVHJhbnNsYXRlKCkraCksYz1ULm1pblRyYW5zbGF0ZSgpLG09ITAsRD0hMCk6dT1ULm1pblRyYW5zbGF0ZSgpO2Vsc2UgaWYoVC5wYXJhbXMuZnJlZU1vZGVTdGlja3kpe3ZhciBnLGY9MDtmb3IoZj0wO2Y8VC5zbmFwR3JpZC5sZW5ndGg7Zis9MSlpZihULnNuYXBHcmlkW2ZdPi11KXtnPWY7YnJlYWt9dT1NYXRoLmFicyhULnNuYXBHcmlkW2ddLXUpPE1hdGguYWJzKFQuc25hcEdyaWRbZy0xXS11KXx8Im5leHQiPT09VC5zd2lwZURpcmVjdGlvbj9ULnNuYXBHcmlkW2ddOlQuc25hcEdyaWRbZy0xXSxULnJ0bHx8KHU9LXUpfWlmKDAhPT1ULnZlbG9jaXR5KXA9VC5ydGw/TWF0aC5hYnMoKC11LVQudHJhbnNsYXRlKS9ULnZlbG9jaXR5KTpNYXRoLmFicygodS1ULnRyYW5zbGF0ZSkvVC52ZWxvY2l0eSk7ZWxzZSBpZihULnBhcmFtcy5mcmVlTW9kZVN0aWNreSlyZXR1cm4gdm9pZCBULnNsaWRlUmVzZXQoKTtULnBhcmFtcy5mcmVlTW9kZU1vbWVudHVtQm91bmNlJiZtPyhULnVwZGF0ZVByb2dyZXNzKGMpLFQuc2V0V3JhcHBlclRyYW5zaXRpb24ocCksVC5zZXRXcmFwcGVyVHJhbnNsYXRlKHUpLFQub25UcmFuc2l0aW9uU3RhcnQoKSxULmFuaW1hdGluZz0hMCxULndyYXBwZXIudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe1QmJkQmJihULmVtaXQoIm9uTW9tZW50dW1Cb3VuY2UiLFQpLFQuc2V0V3JhcHBlclRyYW5zaXRpb24oVC5wYXJhbXMuc3BlZWQpLFQuc2V0V3JhcHBlclRyYW5zbGF0ZShjKSxULndyYXBwZXIudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe1QmJlQub25UcmFuc2l0aW9uRW5kKCl9KSl9KSk6VC52ZWxvY2l0eT8oVC51cGRhdGVQcm9ncmVzcyh1KSxULnNldFdyYXBwZXJUcmFuc2l0aW9uKHApLFQuc2V0V3JhcHBlclRyYW5zbGF0ZSh1KSxULm9uVHJhbnNpdGlvblN0YXJ0KCksVC5hbmltYXRpbmd8fChULmFuaW1hdGluZz0hMCxULndyYXBwZXIudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe1QmJlQub25UcmFuc2l0aW9uRW5kKCl9KSkpOlQudXBkYXRlUHJvZ3Jlc3ModSksVC51cGRhdGVBY3RpdmVJbmRleCgpfXJldHVybiB2b2lkKCghVC5wYXJhbXMuZnJlZU1vZGVNb21lbnR1bXx8cz49VC5wYXJhbXMubG9uZ1N3aXBlc01zKSYmKFQudXBkYXRlUHJvZ3Jlc3MoKSxULnVwZGF0ZUFjdGl2ZUluZGV4KCkpKX12YXIgdix3PTAseT1ULnNsaWRlc1NpemVzR3JpZFswXTtmb3Iodj0wO3Y8VC5zbGlkZXNHcmlkLmxlbmd0aDt2Kz1ULnBhcmFtcy5zbGlkZXNQZXJHcm91cCl2b2lkIDAhPT1ULnNsaWRlc0dyaWRbditULnBhcmFtcy5zbGlkZXNQZXJHcm91cF0/aT49VC5zbGlkZXNHcmlkW3ZdJiZpPFQuc2xpZGVzR3JpZFt2K1QucGFyYW1zLnNsaWRlc1Blckdyb3VwXSYmKHc9dix5PVQuc2xpZGVzR3JpZFt2K1QucGFyYW1zLnNsaWRlc1Blckdyb3VwXS1ULnNsaWRlc0dyaWRbdl0pOmk+PVQuc2xpZGVzR3JpZFt2XSYmKHc9dix5PVQuc2xpZGVzR3JpZFtULnNsaWRlc0dyaWQubGVuZ3RoLTFdLVQuc2xpZGVzR3JpZFtULnNsaWRlc0dyaWQubGVuZ3RoLTJdKTt2YXIgeD0oaS1ULnNsaWRlc0dyaWRbd10pL3k7aWYocz5ULnBhcmFtcy5sb25nU3dpcGVzTXMpe2lmKCFULnBhcmFtcy5sb25nU3dpcGVzKXJldHVybiB2b2lkIFQuc2xpZGVUbyhULmFjdGl2ZUluZGV4KTsibmV4dCI9PT1ULnN3aXBlRGlyZWN0aW9uJiYoeD49VC5wYXJhbXMubG9uZ1N3aXBlc1JhdGlvP1Quc2xpZGVUbyh3K1QucGFyYW1zLnNsaWRlc1Blckdyb3VwKTpULnNsaWRlVG8odykpLCJwcmV2Ij09PVQuc3dpcGVEaXJlY3Rpb24mJih4PjEtVC5wYXJhbXMubG9uZ1N3aXBlc1JhdGlvP1Quc2xpZGVUbyh3K1QucGFyYW1zLnNsaWRlc1Blckdyb3VwKTpULnNsaWRlVG8odykpfWVsc2V7aWYoIVQucGFyYW1zLnNob3J0U3dpcGVzKXJldHVybiB2b2lkIFQuc2xpZGVUbyhULmFjdGl2ZUluZGV4KTsibmV4dCI9PT1ULnN3aXBlRGlyZWN0aW9uJiZULnNsaWRlVG8odytULnBhcmFtcy5zbGlkZXNQZXJHcm91cCksInByZXYiPT09VC5zd2lwZURpcmVjdGlvbiYmVC5zbGlkZVRvKHcpfX19LFQuX3NsaWRlVG89ZnVuY3Rpb24oZSxhKXtyZXR1cm4gVC5zbGlkZVRvKGUsYSwhMCwhMCl9LFQuc2xpZGVUbz1mdW5jdGlvbihlLGEsdCxzKXt2b2lkIDA9PT10JiYodD0hMCksdm9pZCAwPT09ZSYmKGU9MCksZTwwJiYoZT0wKSxULnNuYXBJbmRleD1NYXRoLmZsb29yKGUvVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXApLFQuc25hcEluZGV4Pj1ULnNuYXBHcmlkLmxlbmd0aCYmKFQuc25hcEluZGV4PVQuc25hcEdyaWQubGVuZ3RoLTEpO3ZhciBpPS1ULnNuYXBHcmlkW1Quc25hcEluZGV4XTtpZihULnBhcmFtcy5hdXRvcGxheSYmVC5hdXRvcGxheWluZyYmKHN8fCFULnBhcmFtcy5hdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uP1QucGF1c2VBdXRvcGxheShhKTpULnN0b3BBdXRvcGxheSgpKSxULnVwZGF0ZVByb2dyZXNzKGkpLFQucGFyYW1zLm5vcm1hbGl6ZVNsaWRlSW5kZXgpZm9yKHZhciByPTA7cjxULnNsaWRlc0dyaWQubGVuZ3RoO3IrKyktTWF0aC5mbG9vcigxMDAqaSk+PU1hdGguZmxvb3IoMTAwKlQuc2xpZGVzR3JpZFtyXSkmJihlPXIpO3JldHVybiEoIVQucGFyYW1zLmFsbG93U3dpcGVUb05leHQmJmk8VC50cmFuc2xhdGUmJmk8VC5taW5UcmFuc2xhdGUoKSkmJighKCFULnBhcmFtcy5hbGxvd1N3aXBlVG9QcmV2JiZpPlQudHJhbnNsYXRlJiZpPlQubWF4VHJhbnNsYXRlKCkmJihULmFjdGl2ZUluZGV4fHwwKSE9PWUpJiYodm9pZCAwPT09YSYmKGE9VC5wYXJhbXMuc3BlZWQpLFQucHJldmlvdXNJbmRleD1ULmFjdGl2ZUluZGV4fHwwLFQuYWN0aXZlSW5kZXg9ZSxULnVwZGF0ZVJlYWxJbmRleCgpLFQucnRsJiYtaT09PVQudHJhbnNsYXRlfHwhVC5ydGwmJmk9PT1ULnRyYW5zbGF0ZT8oVC5wYXJhbXMuYXV0b0hlaWdodCYmVC51cGRhdGVBdXRvSGVpZ2h0KCksVC51cGRhdGVDbGFzc2VzKCksInNsaWRlIiE9PVQucGFyYW1zLmVmZmVjdCYmVC5zZXRXcmFwcGVyVHJhbnNsYXRlKGkpLCExKTooVC51cGRhdGVDbGFzc2VzKCksVC5vblRyYW5zaXRpb25TdGFydCh0KSwwPT09YXx8VC5icm93c2VyLmx0ZUlFOT8oVC5zZXRXcmFwcGVyVHJhbnNsYXRlKGkpLFQuc2V0V3JhcHBlclRyYW5zaXRpb24oMCksVC5vblRyYW5zaXRpb25FbmQodCkpOihULnNldFdyYXBwZXJUcmFuc2xhdGUoaSksVC5zZXRXcmFwcGVyVHJhbnNpdGlvbihhKSxULmFuaW1hdGluZ3x8KFQuYW5pbWF0aW5nPSEwLFQud3JhcHBlci50cmFuc2l0aW9uRW5kKGZ1bmN0aW9uKCl7VCYmVC5vblRyYW5zaXRpb25FbmQodCl9KSkpLCEwKSkpfSxULm9uVHJhbnNpdGlvblN0YXJ0PWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPSEwKSxULnBhcmFtcy5hdXRvSGVpZ2h0JiZULnVwZGF0ZUF1dG9IZWlnaHQoKSxULmxhenkmJlQubGF6eS5vblRyYW5zaXRpb25TdGFydCgpLGUmJihULmVtaXQoIm9uVHJhbnNpdGlvblN0YXJ0IixUKSxULmFjdGl2ZUluZGV4IT09VC5wcmV2aW91c0luZGV4JiYoVC5lbWl0KCJvblNsaWRlQ2hhbmdlU3RhcnQiLFQpLFQuYWN0aXZlSW5kZXg+VC5wcmV2aW91c0luZGV4P1QuZW1pdCgib25TbGlkZU5leHRTdGFydCIsVCk6VC5lbWl0KCJvblNsaWRlUHJldlN0YXJ0IixUKSkpfSxULm9uVHJhbnNpdGlvbkVuZD1mdW5jdGlvbihlKXtULmFuaW1hdGluZz0hMSxULnNldFdyYXBwZXJUcmFuc2l0aW9uKDApLHZvaWQgMD09PWUmJihlPSEwKSxULmxhenkmJlQubGF6eS5vblRyYW5zaXRpb25FbmQoKSxlJiYoVC5lbWl0KCJvblRyYW5zaXRpb25FbmQiLFQpLFQuYWN0aXZlSW5kZXghPT1ULnByZXZpb3VzSW5kZXgmJihULmVtaXQoIm9uU2xpZGVDaGFuZ2VFbmQiLFQpLFQuYWN0aXZlSW5kZXg+VC5wcmV2aW91c0luZGV4P1QuZW1pdCgib25TbGlkZU5leHRFbmQiLFQpOlQuZW1pdCgib25TbGlkZVByZXZFbmQiLFQpKSksVC5wYXJhbXMuaGlzdG9yeSYmVC5oaXN0b3J5JiZULmhpc3Rvcnkuc2V0SGlzdG9yeShULnBhcmFtcy5oaXN0b3J5LFQuYWN0aXZlSW5kZXgpLFQucGFyYW1zLmhhc2huYXYmJlQuaGFzaG5hdiYmVC5oYXNobmF2LnNldEhhc2goKX0sVC5zbGlkZU5leHQ9ZnVuY3Rpb24oZSxhLHQpe2lmKFQucGFyYW1zLmxvb3Ape2lmKFQuYW5pbWF0aW5nKXJldHVybiExO1QuZml4TG9vcCgpO1QuY29udGFpbmVyWzBdLmNsaWVudExlZnQ7cmV0dXJuIFQuc2xpZGVUbyhULmFjdGl2ZUluZGV4K1QucGFyYW1zLnNsaWRlc1Blckdyb3VwLGEsZSx0KX1yZXR1cm4gVC5zbGlkZVRvKFQuYWN0aXZlSW5kZXgrVC5wYXJhbXMuc2xpZGVzUGVyR3JvdXAsYSxlLHQpfSxULl9zbGlkZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFQuc2xpZGVOZXh0KCEwLGUsITApfSxULnNsaWRlUHJldj1mdW5jdGlvbihlLGEsdCl7aWYoVC5wYXJhbXMubG9vcCl7aWYoVC5hbmltYXRpbmcpcmV0dXJuITE7VC5maXhMb29wKCk7VC5jb250YWluZXJbMF0uY2xpZW50TGVmdDtyZXR1cm4gVC5zbGlkZVRvKFQuYWN0aXZlSW5kZXgtMSxhLGUsdCl9cmV0dXJuIFQuc2xpZGVUbyhULmFjdGl2ZUluZGV4LTEsYSxlLHQpfSxULl9zbGlkZVByZXY9ZnVuY3Rpb24oZSl7cmV0dXJuIFQuc2xpZGVQcmV2KCEwLGUsITApfSxULnNsaWRlUmVzZXQ9ZnVuY3Rpb24oZSxhLHQpe3JldHVybiBULnNsaWRlVG8oVC5hY3RpdmVJbmRleCxhLGUpfSxULmRpc2FibGVUb3VjaENvbnRyb2w9ZnVuY3Rpb24oKXtyZXR1cm4gVC5wYXJhbXMub25seUV4dGVybmFsPSEwLCEwfSxULmVuYWJsZVRvdWNoQ29udHJvbD1mdW5jdGlvbigpe3JldHVybiBULnBhcmFtcy5vbmx5RXh0ZXJuYWw9ITEsITB9LFQuc2V0V3JhcHBlclRyYW5zaXRpb249ZnVuY3Rpb24oZSxhKXtULndyYXBwZXIudHJhbnNpdGlvbihlKSwic2xpZGUiIT09VC5wYXJhbXMuZWZmZWN0JiZULmVmZmVjdHNbVC5wYXJhbXMuZWZmZWN0XSYmVC5lZmZlY3RzW1QucGFyYW1zLmVmZmVjdF0uc2V0VHJhbnNpdGlvbihlKSxULnBhcmFtcy5wYXJhbGxheCYmVC5wYXJhbGxheCYmVC5wYXJhbGxheC5zZXRUcmFuc2l0aW9uKGUpLFQucGFyYW1zLnNjcm9sbGJhciYmVC5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyLnNldFRyYW5zaXRpb24oZSksVC5wYXJhbXMuY29udHJvbCYmVC5jb250cm9sbGVyJiZULmNvbnRyb2xsZXIuc2V0VHJhbnNpdGlvbihlLGEpLFQuZW1pdCgib25TZXRUcmFuc2l0aW9uIixULGUpfSxULnNldFdyYXBwZXJUcmFuc2xhdGU9ZnVuY3Rpb24oZSxhLHQpe3ZhciBzPTAsaT0wO1QuaXNIb3Jpem9udGFsKCk/cz1ULnJ0bD8tZTplOmk9ZSxULnBhcmFtcy5yb3VuZExlbmd0aHMmJihzPXIocyksaT1yKGkpKSxULnBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlfHwoVC5zdXBwb3J0LnRyYW5zZm9ybXMzZD9ULndyYXBwZXIudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgiK3MrInB4LCAiK2krInB4LCAwcHgpIik6VC53cmFwcGVyLnRyYW5zZm9ybSgidHJhbnNsYXRlKCIrcysicHgsICIraSsicHgpIikpLFQudHJhbnNsYXRlPVQuaXNIb3Jpem9udGFsKCk/czppO3ZhciBuLG89VC5tYXhUcmFuc2xhdGUoKS1ULm1pblRyYW5zbGF0ZSgpO249MD09PW8/MDooZS1ULm1pblRyYW5zbGF0ZSgpKS9vLG4hPT1ULnByb2dyZXNzJiZULnVwZGF0ZVByb2dyZXNzKGUpLGEmJlQudXBkYXRlQWN0aXZlSW5kZXgoKSwic2xpZGUiIT09VC5wYXJhbXMuZWZmZWN0JiZULmVmZmVjdHNbVC5wYXJhbXMuZWZmZWN0XSYmVC5lZmZlY3RzW1QucGFyYW1zLmVmZmVjdF0uc2V0VHJhbnNsYXRlKFQudHJhbnNsYXRlKSxULnBhcmFtcy5wYXJhbGxheCYmVC5wYXJhbGxheCYmVC5wYXJhbGxheC5zZXRUcmFuc2xhdGUoVC50cmFuc2xhdGUpLFQucGFyYW1zLnNjcm9sbGJhciYmVC5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyLnNldFRyYW5zbGF0ZShULnRyYW5zbGF0ZSksVC5wYXJhbXMuY29udHJvbCYmVC5jb250cm9sbGVyJiZULmNvbnRyb2xsZXIuc2V0VHJhbnNsYXRlKFQudHJhbnNsYXRlLHQpLFQuZW1pdCgib25TZXRUcmFuc2xhdGUiLFQsVC50cmFuc2xhdGUpfSxULmdldFRyYW5zbGF0ZT1mdW5jdGlvbihlLGEpe3ZhciB0LHMsaSxyO3JldHVybiB2b2lkIDA9PT1hJiYoYT0ieCIpLFQucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGU/VC5ydGw/LVQudHJhbnNsYXRlOlQudHJhbnNsYXRlOihpPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCksd2luZG93LldlYktpdENTU01hdHJpeD8ocz1pLnRyYW5zZm9ybXx8aS53ZWJraXRUcmFuc2Zvcm0scy5zcGxpdCgiLCIpLmxlbmd0aD42JiYocz1zLnNwbGl0KCIsICIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKCIsIiwiLiIpfSkuam9pbigiLCAiKSkscj1uZXcgd2luZG93LldlYktpdENTU01hdHJpeCgibm9uZSI9PT1zPyIiOnMpKToocj1pLk1velRyYW5zZm9ybXx8aS5PVHJhbnNmb3JtfHxpLk1zVHJhbnNmb3JtfHxpLm1zVHJhbnNmb3JtfHxpLnRyYW5zZm9ybXx8aS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKS5yZXBsYWNlKCJ0cmFuc2xhdGUoIiwibWF0cml4KDEsIDAsIDAsIDEsIiksdD1yLnRvU3RyaW5nKCkuc3BsaXQoIiwiKSksIngiPT09YSYmKHM9d2luZG93LldlYktpdENTU01hdHJpeD9yLm00MToxNj09PXQubGVuZ3RoP3BhcnNlRmxvYXQodFsxMl0pOnBhcnNlRmxvYXQodFs0XSkpLCJ5Ij09PWEmJihzPXdpbmRvdy5XZWJLaXRDU1NNYXRyaXg/ci5tNDI6MTY9PT10Lmxlbmd0aD9wYXJzZUZsb2F0KHRbMTNdKTpwYXJzZUZsb2F0KHRbNV0pKSxULnJ0bCYmcyYmKHM9LXMpLHN8fDApfSxULmdldFdyYXBwZXJUcmFuc2xhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPVQuaXNIb3Jpem9udGFsKCk/IngiOiJ5IiksVC5nZXRUcmFuc2xhdGUoVC53cmFwcGVyWzBdLGUpfSxULm9ic2VydmVycz1bXSxULmluaXRPYnNlcnZlcnM9ZnVuY3Rpb24oKXtpZihULnBhcmFtcy5vYnNlcnZlUGFyZW50cylmb3IodmFyIGU9VC5jb250YWluZXIucGFyZW50cygpLGE9MDthPGUubGVuZ3RoO2ErKylsKGVbYV0pO2woVC5jb250YWluZXJbMF0se2NoaWxkTGlzdDohMX0pLGwoVC53cmFwcGVyWzBdLHthdHRyaWJ1dGVzOiExfSl9LFQuZGlzY29ubmVjdE9ic2VydmVycz1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8VC5vYnNlcnZlcnMubGVuZ3RoO2UrKylULm9ic2VydmVyc1tlXS5kaXNjb25uZWN0KCk7VC5vYnNlcnZlcnM9W119LFQuY3JlYXRlTG9vcD1mdW5jdGlvbigpe1Qud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysiLiIrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykucmVtb3ZlKCk7dmFyIGE9VC53cmFwcGVyLmNoaWxkcmVuKCIuIitULnBhcmFtcy5zbGlkZUNsYXNzKTsiYXV0byIhPT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3fHxULnBhcmFtcy5sb29wZWRTbGlkZXN8fChULnBhcmFtcy5sb29wZWRTbGlkZXM9YS5sZW5ndGgpLFQubG9vcGVkU2xpZGVzPXBhcnNlSW50KFQucGFyYW1zLmxvb3BlZFNsaWRlc3x8VC5wYXJhbXMuc2xpZGVzUGVyVmlldywxMCksVC5sb29wZWRTbGlkZXM9VC5sb29wZWRTbGlkZXMrVC5wYXJhbXMubG9vcEFkZGl0aW9uYWxTbGlkZXMsVC5sb29wZWRTbGlkZXM+YS5sZW5ndGgmJihULmxvb3BlZFNsaWRlcz1hLmxlbmd0aCk7dmFyIHQscz1bXSxpPVtdO2ZvcihhLmVhY2goZnVuY3Rpb24odCxyKXt2YXIgbj1lKHRoaXMpO3Q8VC5sb29wZWRTbGlkZXMmJmkucHVzaChyKSx0PGEubGVuZ3RoJiZ0Pj1hLmxlbmd0aC1ULmxvb3BlZFNsaWRlcyYmcy5wdXNoKHIpLG4uYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiLHQpfSksdD0wO3Q8aS5sZW5ndGg7dCsrKVQud3JhcHBlci5hcHBlbmQoZShpW3RdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKTtmb3IodD1zLmxlbmd0aC0xO3Q+PTA7dC0tKVQud3JhcHBlci5wcmVwZW5kKGUoc1t0XS5jbG9uZU5vZGUoITApKS5hZGRDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSl9LFQuZGVzdHJveUxvb3A9ZnVuY3Rpb24oKXtULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MrIi4iK1QucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpLnJlbW92ZSgpLFQuc2xpZGVzLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9LFQucmVMb29wPWZ1bmN0aW9uKGUpe3ZhciBhPVQuYWN0aXZlSW5kZXgtVC5sb29wZWRTbGlkZXM7VC5kZXN0cm95TG9vcCgpLFQuY3JlYXRlTG9vcCgpLFQudXBkYXRlU2xpZGVzU2l6ZSgpLGUmJlQuc2xpZGVUbyhhK1QubG9vcGVkU2xpZGVzLDAsITEpfSxULmZpeExvb3A9ZnVuY3Rpb24oKXt2YXIgZTtULmFjdGl2ZUluZGV4PFQubG9vcGVkU2xpZGVzPyhlPVQuc2xpZGVzLmxlbmd0aC0zKlQubG9vcGVkU2xpZGVzK1QuYWN0aXZlSW5kZXgsZSs9VC5sb29wZWRTbGlkZXMsVC5zbGlkZVRvKGUsMCwhMSwhMCkpOigiYXV0byI9PT1ULnBhcmFtcy5zbGlkZXNQZXJWaWV3JiZULmFjdGl2ZUluZGV4Pj0yKlQubG9vcGVkU2xpZGVzfHxULmFjdGl2ZUluZGV4PlQuc2xpZGVzLmxlbmd0aC0yKlQucGFyYW1zLnNsaWRlc1BlclZpZXcpJiYoZT0tVC5zbGlkZXMubGVuZ3RoK1QuYWN0aXZlSW5kZXgrVC5sb29wZWRTbGlkZXMsZSs9VC5sb29wZWRTbGlkZXMsVC5zbGlkZVRvKGUsMCwhMSwhMCkpfSxULmFwcGVuZFNsaWRlPWZ1bmN0aW9uKGUpe2lmKFQucGFyYW1zLmxvb3AmJlQuZGVzdHJveUxvb3AoKSwib2JqZWN0Ij09dHlwZW9mIGUmJmUubGVuZ3RoKWZvcih2YXIgYT0wO2E8ZS5sZW5ndGg7YSsrKWVbYV0mJlQud3JhcHBlci5hcHBlbmQoZVthXSk7ZWxzZSBULndyYXBwZXIuYXBwZW5kKGUpO1QucGFyYW1zLmxvb3AmJlQuY3JlYXRlTG9vcCgpLFQucGFyYW1zLm9ic2VydmVyJiZULnN1cHBvcnQub2JzZXJ2ZXJ8fFQudXBkYXRlKCEwKX0sVC5wcmVwZW5kU2xpZGU9ZnVuY3Rpb24oZSl7VC5wYXJhbXMubG9vcCYmVC5kZXN0cm95TG9vcCgpO3ZhciBhPVQuYWN0aXZlSW5kZXgrMTtpZigib2JqZWN0Ij09dHlwZW9mIGUmJmUubGVuZ3RoKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdJiZULndyYXBwZXIucHJlcGVuZChlW3RdKTthPVQuYWN0aXZlSW5kZXgrZS5sZW5ndGh9ZWxzZSBULndyYXBwZXIucHJlcGVuZChlKTtULnBhcmFtcy5sb29wJiZULmNyZWF0ZUxvb3AoKSxULnBhcmFtcy5vYnNlcnZlciYmVC5zdXBwb3J0Lm9ic2VydmVyfHxULnVwZGF0ZSghMCksVC5zbGlkZVRvKGEsMCwhMSl9LFQucmVtb3ZlU2xpZGU9ZnVuY3Rpb24oZSl7VC5wYXJhbXMubG9vcCYmKFQuZGVzdHJveUxvb3AoKSxULnNsaWRlcz1ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlQ2xhc3MpKTt2YXIgYSx0PVQuYWN0aXZlSW5kZXg7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlLmxlbmd0aCl7Zm9yKHZhciBzPTA7czxlLmxlbmd0aDtzKyspYT1lW3NdLFQuc2xpZGVzW2FdJiZULnNsaWRlcy5lcShhKS5yZW1vdmUoKSxhPHQmJnQtLTt0PU1hdGgubWF4KHQsMCl9ZWxzZSBhPWUsVC5zbGlkZXNbYV0mJlQuc2xpZGVzLmVxKGEpLnJlbW92ZSgpLGE8dCYmdC0tLHQ9TWF0aC5tYXgodCwwKTtULnBhcmFtcy5sb29wJiZULmNyZWF0ZUxvb3AoKSxULnBhcmFtcy5vYnNlcnZlciYmVC5zdXBwb3J0Lm9ic2VydmVyfHxULnVwZGF0ZSghMCksVC5wYXJhbXMubG9vcD9ULnNsaWRlVG8odCtULmxvb3BlZFNsaWRlcywwLCExKTpULnNsaWRlVG8odCwwLCExKX0sVC5yZW1vdmVBbGxTbGlkZXM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sYT0wO2E8VC5zbGlkZXMubGVuZ3RoO2ErKyllLnB1c2goYSk7VC5yZW1vdmVTbGlkZShlKX0sVC5lZmZlY3RzPXtmYWRlOntzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPFQuc2xpZGVzLmxlbmd0aDtlKyspe3ZhciBhPVQuc2xpZGVzLmVxKGUpLHQ9YVswXS5zd2lwZXJTbGlkZU9mZnNldCxzPS10O1QucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGV8fChzLT1ULnRyYW5zbGF0ZSk7dmFyIGk9MDtULmlzSG9yaXpvbnRhbCgpfHwoaT1zLHM9MCk7dmFyIHI9VC5wYXJhbXMuZmFkZS5jcm9zc0ZhZGU/TWF0aC5tYXgoMS1NYXRoLmFicyhhWzBdLnByb2dyZXNzKSwwKToxK01hdGgubWluKE1hdGgubWF4KGFbMF0ucHJvZ3Jlc3MsLTEpLDApO2EuY3NzKHtvcGFjaXR5OnJ9KS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIrcysicHgsICIraSsicHgsIDBweCkiKX19LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oZSl7aWYoVC5zbGlkZXMudHJhbnNpdGlvbihlKSxULnBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlJiYwIT09ZSl7dmFyIGE9ITE7VC5zbGlkZXMudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe2lmKCFhJiZUKXthPSEwLFQuYW5pbWF0aW5nPSExO2Zvcih2YXIgZT1bIndlYmtpdFRyYW5zaXRpb25FbmQiLCJ0cmFuc2l0aW9uZW5kIiwib1RyYW5zaXRpb25FbmQiLCJNU1RyYW5zaXRpb25FbmQiLCJtc1RyYW5zaXRpb25FbmQiXSx0PTA7dDxlLmxlbmd0aDt0KyspVC53cmFwcGVyLnRyaWdnZXIoZVt0XSl9fSl9fX0sZmxpcDp7c2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTA7YTxULnNsaWRlcy5sZW5ndGg7YSsrKXt2YXIgdD1ULnNsaWRlcy5lcShhKSxzPXRbMF0ucHJvZ3Jlc3M7VC5wYXJhbXMuZmxpcC5saW1pdFJvdGF0aW9uJiYocz1NYXRoLm1heChNYXRoLm1pbih0WzBdLnByb2dyZXNzLDEpLC0xKSk7dmFyIGk9dFswXS5zd2lwZXJTbGlkZU9mZnNldCxyPS0xODAqcyxuPXIsbz0wLGw9LWkscD0wO2lmKFQuaXNIb3Jpem9udGFsKCk/VC5ydGwmJihuPS1uKToocD1sLGw9MCxvPS1uLG49MCksdFswXS5zdHlsZS56SW5kZXg9LU1hdGguYWJzKE1hdGgucm91bmQocykpK1Quc2xpZGVzLmxlbmd0aCxULnBhcmFtcy5mbGlwLnNsaWRlU2hhZG93cyl7dmFyIGQ9VC5pc0hvcml6b250YWwoKT90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTp0LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLHU9VC5pc0hvcml6b250YWwoKT90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6dC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09ZC5sZW5ndGgmJihkPWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCIpKyciPjwvZGl2PicpLHQuYXBwZW5kKGQpKSwwPT09dS5sZW5ndGgmJih1PWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8icmlnaHQiOiJib3R0b20iKSsnIj48L2Rpdj4nKSx0LmFwcGVuZCh1KSksZC5sZW5ndGgmJihkWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5tYXgoLXMsMCkpLHUubGVuZ3RoJiYodVswXS5zdHlsZS5vcGFjaXR5PU1hdGgubWF4KHMsMCkpfXQudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgiK2wrInB4LCAiK3ArInB4LCAwcHgpIHJvdGF0ZVgoIitvKyJkZWcpIHJvdGF0ZVkoIituKyJkZWcpIil9fSxzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKGEpe2lmKFQuc2xpZGVzLnRyYW5zaXRpb24oYSkuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IikudHJhbnNpdGlvbihhKSxULnBhcmFtcy52aXJ0dWFsVHJhbnNsYXRlJiYwIT09YSl7dmFyIHQ9ITE7VC5zbGlkZXMuZXEoVC5hY3RpdmVJbmRleCkudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe2lmKCF0JiZUJiZlKHRoaXMpLmhhc0NsYXNzKFQucGFyYW1zLnNsaWRlQWN0aXZlQ2xhc3MpKXt0PSEwLFQuYW5pbWF0aW5nPSExO2Zvcih2YXIgYT1bIndlYmtpdFRyYW5zaXRpb25FbmQiLCJ0cmFuc2l0aW9uZW5kIiwib1RyYW5zaXRpb25FbmQiLCJNU1RyYW5zaXRpb25FbmQiLCJtc1RyYW5zaXRpb25FbmQiXSxzPTA7czxhLmxlbmd0aDtzKyspVC53cmFwcGVyLnRyaWdnZXIoYVtzXSl9fSl9fX0sY3ViZTp7c2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGEsdD0wO1QucGFyYW1zLmN1YmUuc2hhZG93JiYoVC5pc0hvcml6b250YWwoKT8oYT1ULndyYXBwZXIuZmluZCgiLnN3aXBlci1jdWJlLXNoYWRvdyIpLDA9PT1hLmxlbmd0aCYmKGE9ZSgnPGRpdiBjbGFzcz0ic3dpcGVyLWN1YmUtc2hhZG93Ij48L2Rpdj4nKSxULndyYXBwZXIuYXBwZW5kKGEpKSxhLmNzcyh7aGVpZ2h0OlQud2lkdGgrInB4In0pKTooYT1ULmNvbnRhaW5lci5maW5kKCIuc3dpcGVyLWN1YmUtc2hhZG93IiksMD09PWEubGVuZ3RoJiYoYT1lKCc8ZGl2IGNsYXNzPSJzd2lwZXItY3ViZS1zaGFkb3ciPjwvZGl2PicpLFQuY29udGFpbmVyLmFwcGVuZChhKSkpKTtmb3IodmFyIHM9MDtzPFQuc2xpZGVzLmxlbmd0aDtzKyspe3ZhciBpPVQuc2xpZGVzLmVxKHMpLHI9OTAqcyxuPU1hdGguZmxvb3Ioci8zNjApO1QucnRsJiYocj0tcixuPU1hdGguZmxvb3IoLXIvMzYwKSk7dmFyIG89TWF0aC5tYXgoTWF0aC5taW4oaVswXS5wcm9ncmVzcywxKSwtMSksbD0wLHA9MCxkPTA7cyU0PT0wPyhsPTQqLW4qVC5zaXplLGQ9MCk6KHMtMSklND09MD8obD0wLGQ9NCotbipULnNpemUpOihzLTIpJTQ9PTA/KGw9VC5zaXplKzQqbipULnNpemUsZD1ULnNpemUpOihzLTMpJTQ9PTAmJihsPS1ULnNpemUsZD0zKlQuc2l6ZSs0KlQuc2l6ZSpuKSxULnJ0bCYmKGw9LWwpLFQuaXNIb3Jpem9udGFsKCl8fChwPWwsbD0wKTt2YXIgdT0icm90YXRlWCgiKyhULmlzSG9yaXpvbnRhbCgpPzA6LXIpKyJkZWcpIHJvdGF0ZVkoIisoVC5pc0hvcml6b250YWwoKT9yOjApKyJkZWcpIHRyYW5zbGF0ZTNkKCIrbCsicHgsICIrcCsicHgsICIrZCsicHgpIjtpZihvPD0xJiZvPi0xJiYodD05MCpzKzkwKm8sVC5ydGwmJih0PTkwKi1zLTkwKm8pKSxpLnRyYW5zZm9ybSh1KSxULnBhcmFtcy5jdWJlLnNsaWRlU2hhZG93cyl7dmFyIGM9VC5pc0hvcml6b250YWwoKT9pLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTppLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLG09VC5pc0hvcml6b250YWwoKT9pLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6aS5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09Yy5sZW5ndGgmJihjPWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCIpKyciPjwvZGl2PicpLGkuYXBwZW5kKGMpKSwwPT09bS5sZW5ndGgmJihtPWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8icmlnaHQiOiJib3R0b20iKSsnIj48L2Rpdj4nKSxpLmFwcGVuZChtKSksYy5sZW5ndGgmJihjWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5tYXgoLW8sMCkpLG0ubGVuZ3RoJiYobVswXS5zdHlsZS5vcGFjaXR5PU1hdGgubWF4KG8sMCkpfX1pZihULndyYXBwZXIuY3NzKHsiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luIjoiNTAlIDUwJSAtIitULnNpemUvMisicHgiLCItbW96LXRyYW5zZm9ybS1vcmlnaW4iOiI1MCUgNTAlIC0iK1Quc2l6ZS8yKyJweCIsIi1tcy10cmFuc2Zvcm0tb3JpZ2luIjoiNTAlIDUwJSAtIitULnNpemUvMisicHgiLCJ0cmFuc2Zvcm0tb3JpZ2luIjoiNTAlIDUwJSAtIitULnNpemUvMisicHgifSksVC5wYXJhbXMuY3ViZS5zaGFkb3cpaWYoVC5pc0hvcml6b250YWwoKSlhLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMHB4LCAiKyhULndpZHRoLzIrVC5wYXJhbXMuY3ViZS5zaGFkb3dPZmZzZXQpKyJweCwgIistVC53aWR0aC8yKyJweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWigwZGVnKSBzY2FsZSgiK1QucGFyYW1zLmN1YmUuc2hhZG93U2NhbGUrIikiKTtlbHNle3ZhciBoPU1hdGguYWJzKHQpLTkwKk1hdGguZmxvb3IoTWF0aC5hYnModCkvOTApLGc9MS41LShNYXRoLnNpbigyKmgqTWF0aC5QSS8zNjApLzIrTWF0aC5jb3MoMipoKk1hdGguUEkvMzYwKS8yKSxmPVQucGFyYW1zLmN1YmUuc2hhZG93U2NhbGUsdj1ULnBhcmFtcy5jdWJlLnNoYWRvd1NjYWxlL2csdz1ULnBhcmFtcy5jdWJlLnNoYWRvd09mZnNldDthLnRyYW5zZm9ybSgic2NhbGUzZCgiK2YrIiwgMSwgIit2KyIpIHRyYW5zbGF0ZTNkKDBweCwgIisoVC5oZWlnaHQvMit3KSsicHgsICIrLVQuaGVpZ2h0LzIvdisicHgpIHJvdGF0ZVgoLTkwZGVnKSIpfXZhciB5PVQuaXNTYWZhcml8fFQuaXNVaVdlYlZpZXc/LVQuc2l6ZS8yOjA7VC53cmFwcGVyLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMHB4LDAsIit5KyJweCkgcm90YXRlWCgiKyhULmlzSG9yaXpvbnRhbCgpPzA6dCkrImRlZykgcm90YXRlWSgiKyhULmlzSG9yaXpvbnRhbCgpPy10OjApKyJkZWcpIil9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oZSl7VC5zbGlkZXMudHJhbnNpdGlvbihlKS5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKS50cmFuc2l0aW9uKGUpLFQucGFyYW1zLmN1YmUuc2hhZG93JiYhVC5pc0hvcml6b250YWwoKSYmVC5jb250YWluZXIuZmluZCgiLnN3aXBlci1jdWJlLXNoYWRvdyIpLnRyYW5zaXRpb24oZSl9fSxjb3ZlcmZsb3c6e3NldFRyYW5zbGF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgYT1ULnRyYW5zbGF0ZSx0PVQuaXNIb3Jpem9udGFsKCk/LWErVC53aWR0aC8yOi1hK1QuaGVpZ2h0LzIscz1ULmlzSG9yaXpvbnRhbCgpP1QucGFyYW1zLmNvdmVyZmxvdy5yb3RhdGU6LVQucGFyYW1zLmNvdmVyZmxvdy5yb3RhdGUsaT1ULnBhcmFtcy5jb3ZlcmZsb3cuZGVwdGgscj0wLG49VC5zbGlkZXMubGVuZ3RoO3I8bjtyKyspe3ZhciBvPVQuc2xpZGVzLmVxKHIpLGw9VC5zbGlkZXNTaXplc0dyaWRbcl0scD1vWzBdLnN3aXBlclNsaWRlT2Zmc2V0LGQ9KHQtcC1sLzIpL2wqVC5wYXJhbXMuY292ZXJmbG93Lm1vZGlmaWVyLHU9VC5pc0hvcml6b250YWwoKT9zKmQ6MCxjPVQuaXNIb3Jpem9udGFsKCk/MDpzKmQsbT0taSpNYXRoLmFicyhkKSxoPVQuaXNIb3Jpem9udGFsKCk/MDpULnBhcmFtcy5jb3ZlcmZsb3cuc3RyZXRjaCpkLGc9VC5pc0hvcml6b250YWwoKT9ULnBhcmFtcy5jb3ZlcmZsb3cuc3RyZXRjaCpkOjA7TWF0aC5hYnMoZyk8LjAwMSYmKGc9MCksTWF0aC5hYnMoaCk8LjAwMSYmKGg9MCksTWF0aC5hYnMobSk8LjAwMSYmKG09MCksTWF0aC5hYnModSk8LjAwMSYmKHU9MCksTWF0aC5hYnMoYyk8LjAwMSYmKGM9MCk7dmFyIGY9InRyYW5zbGF0ZTNkKCIrZysicHgsIitoKyJweCwiK20rInB4KSAgcm90YXRlWCgiK2MrImRlZykgcm90YXRlWSgiK3UrImRlZykiO2lmKG8udHJhbnNmb3JtKGYpLG9bMF0uc3R5bGUuekluZGV4PTEtTWF0aC5hYnMoTWF0aC5yb3VuZChkKSksVC5wYXJhbXMuY292ZXJmbG93LnNsaWRlU2hhZG93cyl7dmFyIHY9VC5pc0hvcml6b250YWwoKT9vLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTpvLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLHc9VC5pc0hvcml6b250YWwoKT9vLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6by5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09di5sZW5ndGgmJih2PWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCIpKyciPjwvZGl2PicpLG8uYXBwZW5kKHYpKSwwPT09dy5sZW5ndGgmJih3PWUoJzxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJysoVC5pc0hvcml6b250YWwoKT8icmlnaHQiOiJib3R0b20iKSsnIj48L2Rpdj4nKSxvLmFwcGVuZCh3KSksdi5sZW5ndGgmJih2WzBdLnN0eWxlLm9wYWNpdHk9ZD4wP2Q6MCksdy5sZW5ndGgmJih3WzBdLnN0eWxlLm9wYWNpdHk9LWQ+MD8tZDowKX19aWYoVC5icm93c2VyLmllKXtULndyYXBwZXJbMF0uc3R5bGUucGVyc3BlY3RpdmVPcmlnaW49dCsicHggNTAlIn19LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oZSl7VC5zbGlkZXMudHJhbnNpdGlvbihlKS5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKS50cmFuc2l0aW9uKGUpfX19LFQubGF6eT17aW5pdGlhbEltYWdlTG9hZGVkOiExLGxvYWRJbWFnZUluU2xpZGU6ZnVuY3Rpb24oYSx0KXtpZih2b2lkIDAhPT1hJiYodm9pZCAwPT09dCYmKHQ9ITApLDAhPT1ULnNsaWRlcy5sZW5ndGgpKXt2YXIgcz1ULnNsaWRlcy5lcShhKSxpPXMuZmluZCgiLiIrVC5wYXJhbXMubGF6eUxvYWRpbmdDbGFzcysiOm5vdCguIitULnBhcmFtcy5sYXp5U3RhdHVzTG9hZGVkQ2xhc3MrIik6bm90KC4iK1QucGFyYW1zLmxhenlTdGF0dXNMb2FkaW5nQ2xhc3MrIikiKTshcy5oYXNDbGFzcyhULnBhcmFtcy5sYXp5TG9hZGluZ0NsYXNzKXx8cy5oYXNDbGFzcyhULnBhcmFtcy5sYXp5U3RhdHVzTG9hZGVkQ2xhc3MpfHxzLmhhc0NsYXNzKFQucGFyYW1zLmxhenlTdGF0dXNMb2FkaW5nQ2xhc3MpfHwoaT1pLmFkZChzWzBdKSksMCE9PWkubGVuZ3RoJiZpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1lKHRoaXMpO2EuYWRkQ2xhc3MoVC5wYXJhbXMubGF6eVN0YXR1c0xvYWRpbmdDbGFzcyk7dmFyIGk9YS5hdHRyKCJkYXRhLWJhY2tncm91bmQiKSxyPWEuYXR0cigiZGF0YS1zcmMiKSxuPWEuYXR0cigiZGF0YS1zcmNzZXQiKSxvPWEuYXR0cigiZGF0YS1zaXplcyIpO1QubG9hZEltYWdlKGFbMF0scnx8aSxuLG8sITEsZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1UJiZudWxsIT09VCYmVCl7aWYoaT8oYS5jc3MoImJhY2tncm91bmQtaW1hZ2UiLCd1cmwoIicraSsnIiknKSxhLnJlbW92ZUF0dHIoImRhdGEtYmFja2dyb3VuZCIpKToobiYmKGEuYXR0cigic3Jjc2V0IixuKSxhLnJlbW92ZUF0dHIoImRhdGEtc3Jjc2V0IikpLG8mJihhLmF0dHIoInNpemVzIixvKSxhLnJlbW92ZUF0dHIoImRhdGEtc2l6ZXMiKSksciYmKGEuYXR0cigic3JjIixyKSxhLnJlbW92ZUF0dHIoImRhdGEtc3JjIikpKSxhLmFkZENsYXNzKFQucGFyYW1zLmxhenlTdGF0dXNMb2FkZWRDbGFzcykucmVtb3ZlQ2xhc3MoVC5wYXJhbXMubGF6eVN0YXR1c0xvYWRpbmdDbGFzcykscy5maW5kKCIuIitULnBhcmFtcy5sYXp5UHJlbG9hZGVyQ2xhc3MrIiwgLiIrVC5wYXJhbXMucHJlbG9hZGVyQ2xhc3MpLnJlbW92ZSgpLFQucGFyYW1zLmxvb3AmJnQpe3ZhciBlPXMuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTtpZihzLmhhc0NsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKXt2YXIgbD1ULndyYXBwZXIuY2hpbGRyZW4oJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJytlKyciXTpub3QoLicrVC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcysiKSIpO1QubGF6eS5sb2FkSW1hZ2VJblNsaWRlKGwuaW5kZXgoKSwhMSl9ZWxzZXt2YXIgcD1ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MrJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJytlKyciXScpO1QubGF6eS5sb2FkSW1hZ2VJblNsaWRlKHAuaW5kZXgoKSwhMSl9fVQuZW1pdCgib25MYXp5SW1hZ2VSZWFkeSIsVCxzWzBdLGFbMF0pfX0pLFQuZW1pdCgib25MYXp5SW1hZ2VMb2FkIixULHNbMF0sYVswXSl9KX19LGxvYWQ6ZnVuY3Rpb24oKXt2YXIgYSx0PVQucGFyYW1zLnNsaWRlc1BlclZpZXc7aWYoImF1dG8iPT09dCYmKHQ9MCksVC5sYXp5LmluaXRpYWxJbWFnZUxvYWRlZHx8KFQubGF6eS5pbml0aWFsSW1hZ2VMb2FkZWQ9ITApLFQucGFyYW1zLndhdGNoU2xpZGVzVmlzaWJpbGl0eSlULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlVmlzaWJsZUNsYXNzKS5lYWNoKGZ1bmN0aW9uKCl7VC5sYXp5LmxvYWRJbWFnZUluU2xpZGUoZSh0aGlzKS5pbmRleCgpKX0pO2Vsc2UgaWYodD4xKWZvcihhPVQuYWN0aXZlSW5kZXg7YTxULmFjdGl2ZUluZGV4K3Q7YSsrKVQuc2xpZGVzW2FdJiZULmxhenkubG9hZEltYWdlSW5TbGlkZShhKTtlbHNlIFQubGF6eS5sb2FkSW1hZ2VJblNsaWRlKFQuYWN0aXZlSW5kZXgpO2lmKFQucGFyYW1zLmxhenlMb2FkaW5nSW5QcmV2TmV4dClpZih0PjF8fFQucGFyYW1zLmxhenlMb2FkaW5nSW5QcmV2TmV4dEFtb3VudCYmVC5wYXJhbXMubGF6eUxvYWRpbmdJblByZXZOZXh0QW1vdW50PjEpe3ZhciBzPVQucGFyYW1zLmxhenlMb2FkaW5nSW5QcmV2TmV4dEFtb3VudCxpPXQscj1NYXRoLm1pbihULmFjdGl2ZUluZGV4K2krTWF0aC5tYXgocyxpKSxULnNsaWRlcy5sZW5ndGgpLG49TWF0aC5tYXgoVC5hY3RpdmVJbmRleC1NYXRoLm1heChpLHMpLDApO2ZvcihhPVQuYWN0aXZlSW5kZXgrdDthPHI7YSsrKVQuc2xpZGVzW2FdJiZULmxhenkubG9hZEltYWdlSW5TbGlkZShhKTtmb3IoYT1uO2E8VC5hY3RpdmVJbmRleDthKyspVC5zbGlkZXNbYV0mJlQubGF6eS5sb2FkSW1hZ2VJblNsaWRlKGEpfWVsc2V7dmFyIG89VC53cmFwcGVyLmNoaWxkcmVuKCIuIitULnBhcmFtcy5zbGlkZU5leHRDbGFzcyk7by5sZW5ndGg+MCYmVC5sYXp5LmxvYWRJbWFnZUluU2xpZGUoby5pbmRleCgpKTt2YXIgbD1ULndyYXBwZXIuY2hpbGRyZW4oIi4iK1QucGFyYW1zLnNsaWRlUHJldkNsYXNzKTtsLmxlbmd0aD4wJiZULmxhenkubG9hZEltYWdlSW5TbGlkZShsLmluZGV4KCkpfX0sb25UcmFuc2l0aW9uU3RhcnQ6ZnVuY3Rpb24oKXtULnBhcmFtcy5sYXp5TG9hZGluZyYmKFQucGFyYW1zLmxhenlMb2FkaW5nT25UcmFuc2l0aW9uU3RhcnR8fCFULnBhcmFtcy5sYXp5TG9hZGluZ09uVHJhbnNpdGlvblN0YXJ0JiYhVC5sYXp5LmluaXRpYWxJbWFnZUxvYWRlZCkmJlQubGF6eS5sb2FkKCl9LG9uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe1QucGFyYW1zLmxhenlMb2FkaW5nJiYhVC5wYXJhbXMubGF6eUxvYWRpbmdPblRyYW5zaXRpb25TdGFydCYmVC5sYXp5LmxvYWQoKX19LFQuc2Nyb2xsYmFyPXtpc1RvdWNoZWQ6ITEsc2V0RHJhZ1Bvc2l0aW9uOmZ1bmN0aW9uKGUpe3ZhciBhPVQuc2Nyb2xsYmFyLHQ9VC5pc0hvcml6b250YWwoKT8idG91Y2hzdGFydCI9PT1lLnR5cGV8fCJ0b3VjaG1vdmUiPT09ZS50eXBlP2UudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDplLnBhZ2VYfHxlLmNsaWVudFg6InRvdWNoc3RhcnQiPT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6ZS5wYWdlWXx8ZS5jbGllbnRZLHM9dC1hLnRyYWNrLm9mZnNldCgpW1QuaXNIb3Jpem9udGFsKCk/ImxlZnQiOiJ0b3AiXS1hLmRyYWdTaXplLzIsaT0tVC5taW5UcmFuc2xhdGUoKSphLm1vdmVEaXZpZGVyLHI9LVQubWF4VHJhbnNsYXRlKCkqYS5tb3ZlRGl2aWRlcjtzPGk/cz1pOnM+ciYmKHM9cikscz0tcy9hLm1vdmVEaXZpZGVyLFQudXBkYXRlUHJvZ3Jlc3MocyksVC5zZXRXcmFwcGVyVHJhbnNsYXRlKHMsITApfSxkcmFnU3RhcnQ6ZnVuY3Rpb24oZSl7dmFyIGE9VC5zY3JvbGxiYXI7YS5pc1RvdWNoZWQ9ITAsZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksYS5zZXREcmFnUG9zaXRpb24oZSksY2xlYXJUaW1lb3V0KGEuZHJhZ1RpbWVvdXQpLGEudHJhY2sudHJhbnNpdGlvbigwKSxULnBhcmFtcy5zY3JvbGxiYXJIaWRlJiZhLnRyYWNrLmNzcygib3BhY2l0eSIsMSksVC53cmFwcGVyLnRyYW5zaXRpb24oMTAwKSxhLmRyYWcudHJhbnNpdGlvbigxMDApLFQuZW1pdCgib25TY3JvbGxiYXJEcmFnU3RhcnQiLFQpfSxkcmFnTW92ZTpmdW5jdGlvbihlKXt2YXIgYT1ULnNjcm9sbGJhcjthLmlzVG91Y2hlZCYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITEsYS5zZXREcmFnUG9zaXRpb24oZSksVC53cmFwcGVyLnRyYW5zaXRpb24oMCksYS50cmFjay50cmFuc2l0aW9uKDApLGEuZHJhZy50cmFuc2l0aW9uKDApLFQuZW1pdCgib25TY3JvbGxiYXJEcmFnTW92ZSIsVCkpfSxkcmFnRW5kOmZ1bmN0aW9uKGUpe3ZhciBhPVQuc2Nyb2xsYmFyO2EuaXNUb3VjaGVkJiYoYS5pc1RvdWNoZWQ9ITEsVC5wYXJhbXMuc2Nyb2xsYmFySGlkZSYmKGNsZWFyVGltZW91dChhLmRyYWdUaW1lb3V0KSxhLmRyYWdUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnRyYWNrLmNzcygib3BhY2l0eSIsMCksYS50cmFjay50cmFuc2l0aW9uKDQwMCl9LDFlMykpLFQuZW1pdCgib25TY3JvbGxiYXJEcmFnRW5kIixUKSxULnBhcmFtcy5zY3JvbGxiYXJTbmFwT25SZWxlYXNlJiZULnNsaWRlUmVzZXQoKSl9LGRyYWdnYWJsZUV2ZW50czpmdW5jdGlvbigpe3JldHVybiBULnBhcmFtcy5zaW11bGF0ZVRvdWNoIT09ITF8fFQuc3VwcG9ydC50b3VjaD9ULnRvdWNoRXZlbnRzOlQudG91Y2hFdmVudHNEZXNrdG9wfSgpLGVuYWJsZURyYWdnYWJsZTpmdW5jdGlvbigpe3ZhciBhPVQuc2Nyb2xsYmFyLHQ9VC5zdXBwb3J0LnRvdWNoP2EudHJhY2s6ZG9jdW1lbnQ7ZShhLnRyYWNrKS5vbihhLmRyYWdnYWJsZUV2ZW50cy5zdGFydCxhLmRyYWdTdGFydCksZSh0KS5vbihhLmRyYWdnYWJsZUV2ZW50cy5tb3ZlLGEuZHJhZ01vdmUpLGUodCkub24oYS5kcmFnZ2FibGVFdmVudHMuZW5kLGEuZHJhZ0VuZCl9LGRpc2FibGVEcmFnZ2FibGU6ZnVuY3Rpb24oKXt2YXIgYT1ULnNjcm9sbGJhcix0PVQuc3VwcG9ydC50b3VjaD9hLnRyYWNrOmRvY3VtZW50O2UoYS50cmFjaykub2ZmKGEuZHJhZ2dhYmxlRXZlbnRzLnN0YXJ0LGEuZHJhZ1N0YXJ0KSxlKHQpLm9mZihhLmRyYWdnYWJsZUV2ZW50cy5tb3ZlLGEuZHJhZ01vdmUpLGUodCkub2ZmKGEuZHJhZ2dhYmxlRXZlbnRzLmVuZCxhLmRyYWdFbmQpfSxzZXQ6ZnVuY3Rpb24oKXtpZihULnBhcmFtcy5zY3JvbGxiYXIpe3ZhciBhPVQuc2Nyb2xsYmFyO2EudHJhY2s9ZShULnBhcmFtcy5zY3JvbGxiYXIpLFQucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzJiYic3RyaW5nIj09dHlwZW9mIFQucGFyYW1zLnNjcm9sbGJhciYmYS50cmFjay5sZW5ndGg+MSYmMT09PVQuY29udGFpbmVyLmZpbmQoVC5wYXJhbXMuc2Nyb2xsYmFyKS5sZW5ndGgmJihhLnRyYWNrPVQuY29udGFpbmVyLmZpbmQoVC5wYXJhbXMuc2Nyb2xsYmFyKSksYS5kcmFnPWEudHJhY2suZmluZCgiLnN3aXBlci1zY3JvbGxiYXItZHJhZyIpLDA9PT1hLmRyYWcubGVuZ3RoJiYoYS5kcmFnPWUoJzxkaXYgY2xhc3M9InN3aXBlci1zY3JvbGxiYXItZHJhZyI+PC9kaXY+JyksYS50cmFjay5hcHBlbmQoYS5kcmFnKSksYS5kcmFnWzBdLnN0eWxlLndpZHRoPSIiLGEuZHJhZ1swXS5zdHlsZS5oZWlnaHQ9IiIsYS50cmFja1NpemU9VC5pc0hvcml6b250YWwoKT9hLnRyYWNrWzBdLm9mZnNldFdpZHRoOmEudHJhY2tbMF0ub2Zmc2V0SGVpZ2h0LGEuZGl2aWRlcj1ULnNpemUvVC52aXJ0dWFsU2l6ZSxhLm1vdmVEaXZpZGVyPWEuZGl2aWRlciooYS50cmFja1NpemUvVC5zaXplKSxhLmRyYWdTaXplPWEudHJhY2tTaXplKmEuZGl2aWRlcixULmlzSG9yaXpvbnRhbCgpP2EuZHJhZ1swXS5zdHlsZS53aWR0aD1hLmRyYWdTaXplKyJweCI6YS5kcmFnWzBdLnN0eWxlLmhlaWdodD1hLmRyYWdTaXplKyJweCIsYS5kaXZpZGVyPj0xP2EudHJhY2tbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSI6YS50cmFja1swXS5zdHlsZS5kaXNwbGF5PSIiLFQucGFyYW1zLnNjcm9sbGJhckhpZGUmJihhLnRyYWNrWzBdLnN0eWxlLm9wYWNpdHk9MCl9fSxzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oKXtpZihULnBhcmFtcy5zY3JvbGxiYXIpe3ZhciBlLGE9VC5zY3JvbGxiYXIsdD0oVC50cmFuc2xhdGUsYS5kcmFnU2l6ZSk7ZT0oYS50cmFja1NpemUtYS5kcmFnU2l6ZSkqVC5wcm9ncmVzcyxULnJ0bCYmVC5pc0hvcml6b250YWwoKT8oZT0tZSxlPjA/KHQ9YS5kcmFnU2l6ZS1lLGU9MCk6LWUrYS5kcmFnU2l6ZT5hLnRyYWNrU2l6ZSYmKHQ9YS50cmFja1NpemUrZSkpOmU8MD8odD1hLmRyYWdTaXplK2UsZT0wKTplK2EuZHJhZ1NpemU+YS50cmFja1NpemUmJih0PWEudHJhY2tTaXplLWUpLFQuaXNIb3Jpem9udGFsKCk/KFQuc3VwcG9ydC50cmFuc2Zvcm1zM2Q/YS5kcmFnLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIitlKyJweCwgMCwgMCkiKTphLmRyYWcudHJhbnNmb3JtKCJ0cmFuc2xhdGVYKCIrZSsicHgpIiksYS5kcmFnWzBdLnN0eWxlLndpZHRoPXQrInB4Iik6KFQuc3VwcG9ydC50cmFuc2Zvcm1zM2Q/YS5kcmFnLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMHB4LCAiK2UrInB4LCAwKSIpOmEuZHJhZy50cmFuc2Zvcm0oInRyYW5zbGF0ZVkoIitlKyJweCkiKSxhLmRyYWdbMF0uc3R5bGUuaGVpZ2h0PXQrInB4IiksVC5wYXJhbXMuc2Nyb2xsYmFySGlkZSYmKGNsZWFyVGltZW91dChhLnRpbWVvdXQpLGEudHJhY2tbMF0uc3R5bGUub3BhY2l0eT0xLGEudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50cmFja1swXS5zdHlsZS5vcGFjaXR5PTAsYS50cmFjay50cmFuc2l0aW9uKDQwMCl9LDFlMykpfX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlKXtULnBhcmFtcy5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyLmRyYWcudHJhbnNpdGlvbihlKX19LFQuY29udHJvbGxlcj17TGluZWFyU3BsaW5lOmZ1bmN0aW9uKGUsYSl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgZSxhLHQ7cmV0dXJuIGZ1bmN0aW9uKHMsaSl7Zm9yKGE9LTEsZT1zLmxlbmd0aDtlLWE+MTspc1t0PWUrYT4+MV08PWk/YT10OmU9dDtyZXR1cm4gZX19KCk7dGhpcy54PWUsdGhpcy55PWEsdGhpcy5sYXN0SW5kZXg9ZS5sZW5ndGgtMTt2YXIgcyxpO3RoaXMueC5sZW5ndGg7dGhpcy5pbnRlcnBvbGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZT8oaT10KHRoaXMueCxlKSxzPWktMSwoZS10aGlzLnhbc10pKih0aGlzLnlbaV0tdGhpcy55W3NdKS8odGhpcy54W2ldLXRoaXMueFtzXSkrdGhpcy55W3NdKTowfX0sZ2V0SW50ZXJwb2xhdGVGdW5jdGlvbjpmdW5jdGlvbihlKXtULmNvbnRyb2xsZXIuc3BsaW5lfHwoVC5jb250cm9sbGVyLnNwbGluZT1ULnBhcmFtcy5sb29wP25ldyBULmNvbnRyb2xsZXIuTGluZWFyU3BsaW5lKFQuc2xpZGVzR3JpZCxlLnNsaWRlc0dyaWQpOm5ldyBULmNvbnRyb2xsZXIuTGluZWFyU3BsaW5lKFQuc25hcEdyaWQsZS5zbmFwR3JpZCkpfSxzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBzKGEpe2U9YS5ydGwmJiJob3Jpem9udGFsIj09PWEucGFyYW1zLmRpcmVjdGlvbj8tVC50cmFuc2xhdGU6VC50cmFuc2xhdGUsInNsaWRlIj09PVQucGFyYW1zLmNvbnRyb2xCeSYmKFQuY29udHJvbGxlci5nZXRJbnRlcnBvbGF0ZUZ1bmN0aW9uKGEpLHI9LVQuY29udHJvbGxlci5zcGxpbmUuaW50ZXJwb2xhdGUoLWUpKSxyJiYiY29udGFpbmVyIiE9PVQucGFyYW1zLmNvbnRyb2xCeXx8KGk9KGEubWF4VHJhbnNsYXRlKCktYS5taW5UcmFuc2xhdGUoKSkvKFQubWF4VHJhbnNsYXRlKCktVC5taW5UcmFuc2xhdGUoKSkscj0oZS1ULm1pblRyYW5zbGF0ZSgpKSppK2EubWluVHJhbnNsYXRlKCkpLFQucGFyYW1zLmNvbnRyb2xJbnZlcnNlJiYocj1hLm1heFRyYW5zbGF0ZSgpLXIpLGEudXBkYXRlUHJvZ3Jlc3MociksYS5zZXRXcmFwcGVyVHJhbnNsYXRlKHIsITEsVCksYS51cGRhdGVBY3RpdmVJbmRleCgpfXZhciBpLHIsbj1ULnBhcmFtcy5jb250cm9sO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspbltvXSE9PXQmJm5bb11pbnN0YW5jZW9mIGEmJnMobltvXSk7ZWxzZSBuIGluc3RhbmNlb2YgYSYmdCE9PW4mJnMobil9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBzKGEpe2Euc2V0V3JhcHBlclRyYW5zaXRpb24oZSxUKSwwIT09ZSYmKGEub25UcmFuc2l0aW9uU3RhcnQoKSxhLndyYXBwZXIudHJhbnNpdGlvbkVuZChmdW5jdGlvbigpe3ImJihhLnBhcmFtcy5sb29wJiYic2xpZGUiPT09VC5wYXJhbXMuY29udHJvbEJ5JiZhLmZpeExvb3AoKSxhLm9uVHJhbnNpdGlvbkVuZCgpKX0pKX12YXIgaSxyPVQucGFyYW1zLmNvbnRyb2w7aWYoQXJyYXkuaXNBcnJheShyKSlmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0hPT10JiZyW2ldaW5zdGFuY2VvZiBhJiZzKHJbaV0pO2Vsc2UgciBpbnN0YW5jZW9mIGEmJnQhPT1yJiZzKHIpfX0sVC5oYXNobmF2PXtvbkhhc2hDYW5nZTpmdW5jdGlvbihlLGEpe3ZhciB0PWRvY3VtZW50LmxvY2F0aW9uLmhhc2gucmVwbGFjZSgiIyIsIiIpO3QhPT1ULnNsaWRlcy5lcShULmFjdGl2ZUluZGV4KS5hdHRyKCJkYXRhLWhhc2giKSYmVC5zbGlkZVRvKFQud3JhcHBlci5jaGlsZHJlbigiLiIrVC5wYXJhbXMuc2xpZGVDbGFzcysnW2RhdGEtaGFzaD0iJyt0KyciXScpLmluZGV4KCkpfSxhdHRhY2hFdmVudHM6ZnVuY3Rpb24oYSl7dmFyIHQ9YT8ib2ZmIjoib24iO2Uod2luZG93KVt0XSgiaGFzaGNoYW5nZSIsVC5oYXNobmF2Lm9uSGFzaENhbmdlKX0sc2V0SGFzaDpmdW5jdGlvbigpewppZihULmhhc2huYXYuaW5pdGlhbGl6ZWQmJlQucGFyYW1zLmhhc2huYXYpaWYoVC5wYXJhbXMucmVwbGFjZVN0YXRlJiZ3aW5kb3cuaGlzdG9yeSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKXdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIiMiK1Quc2xpZGVzLmVxKFQuYWN0aXZlSW5kZXgpLmF0dHIoImRhdGEtaGFzaCIpfHwiIik7ZWxzZXt2YXIgZT1ULnNsaWRlcy5lcShULmFjdGl2ZUluZGV4KSxhPWUuYXR0cigiZGF0YS1oYXNoIil8fGUuYXR0cigiZGF0YS1oaXN0b3J5Iik7ZG9jdW1lbnQubG9jYXRpb24uaGFzaD1hfHwiIn19LGluaXQ6ZnVuY3Rpb24oKXtpZihULnBhcmFtcy5oYXNobmF2JiYhVC5wYXJhbXMuaGlzdG9yeSl7VC5oYXNobmF2LmluaXRpYWxpemVkPSEwO3ZhciBlPWRvY3VtZW50LmxvY2F0aW9uLmhhc2gucmVwbGFjZSgiIyIsIiIpO2lmKGUpZm9yKHZhciBhPTAsdD1ULnNsaWRlcy5sZW5ndGg7YTx0O2ErKyl7dmFyIHM9VC5zbGlkZXMuZXEoYSksaT1zLmF0dHIoImRhdGEtaGFzaCIpfHxzLmF0dHIoImRhdGEtaGlzdG9yeSIpO2lmKGk9PT1lJiYhcy5oYXNDbGFzcyhULnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSl7dmFyIHI9cy5pbmRleCgpO1Quc2xpZGVUbyhyLDAsVC5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0LCEwKX19VC5wYXJhbXMuaGFzaG5hdldhdGNoU3RhdGUmJlQuaGFzaG5hdi5hdHRhY2hFdmVudHMoKX19LGRlc3Ryb3k6ZnVuY3Rpb24oKXtULnBhcmFtcy5oYXNobmF2V2F0Y2hTdGF0ZSYmVC5oYXNobmF2LmF0dGFjaEV2ZW50cyghMCl9fSxULmhpc3Rvcnk9e2luaXQ6ZnVuY3Rpb24oKXtpZihULnBhcmFtcy5oaXN0b3J5KXtpZighd2luZG93Lmhpc3Rvcnl8fCF3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUpcmV0dXJuIFQucGFyYW1zLmhpc3Rvcnk9ITEsdm9pZChULnBhcmFtcy5oYXNobmF2PSEwKTtULmhpc3RvcnkuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5wYXRocz10aGlzLmdldFBhdGhWYWx1ZXMoKSwodGhpcy5wYXRocy5rZXl8fHRoaXMucGF0aHMudmFsdWUpJiYodGhpcy5zY3JvbGxUb1NsaWRlKDAsdGhpcy5wYXRocy52YWx1ZSxULnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQpLFQucGFyYW1zLnJlcGxhY2VTdGF0ZXx8d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnNldEhpc3RvcnlQb3BTdGF0ZSkpfX0sc2V0SGlzdG9yeVBvcFN0YXRlOmZ1bmN0aW9uKCl7VC5oaXN0b3J5LnBhdGhzPVQuaGlzdG9yeS5nZXRQYXRoVmFsdWVzKCksVC5oaXN0b3J5LnNjcm9sbFRvU2xpZGUoVC5wYXJhbXMuc3BlZWQsVC5oaXN0b3J5LnBhdGhzLnZhbHVlLCExKX0sZ2V0UGF0aFZhbHVlczpmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zbGljZSgxKS5zcGxpdCgiaW5kZXguaHRtbCIpLGE9ZS5sZW5ndGg7cmV0dXJue2tleTplW2EtMl0sdmFsdWU6ZVthLTFdfX0sc2V0SGlzdG9yeTpmdW5jdGlvbihlLGEpe2lmKFQuaGlzdG9yeS5pbml0aWFsaXplZCYmVC5wYXJhbXMuaGlzdG9yeSl7dmFyIHQ9VC5zbGlkZXMuZXEoYSkscz10aGlzLnNsdWdpZnkodC5hdHRyKCJkYXRhLWhpc3RvcnkiKSk7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKGUpfHwocz1lKyIvIitzKSxULnBhcmFtcy5yZXBsYWNlU3RhdGU/d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCxzKTp3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLHMpfX0sc2x1Z2lmeTpmdW5jdGlvbihlKXtyZXR1cm4gZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIi0iKS5yZXBsYWNlKC9bXlx3XC1dKy9nLCIiKS5yZXBsYWNlKC9cLVwtKy9nLCItIikucmVwbGFjZSgvXi0rLywiIikucmVwbGFjZSgvLSskLywiIil9LHNjcm9sbFRvU2xpZGU6ZnVuY3Rpb24oZSxhLHQpe2lmKGEpZm9yKHZhciBzPTAsaT1ULnNsaWRlcy5sZW5ndGg7czxpO3MrKyl7dmFyIHI9VC5zbGlkZXMuZXEocyksbj10aGlzLnNsdWdpZnkoci5hdHRyKCJkYXRhLWhpc3RvcnkiKSk7aWYobj09PWEmJiFyLmhhc0NsYXNzKFQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKXt2YXIgbz1yLmluZGV4KCk7VC5zbGlkZVRvKG8sZSx0KX19ZWxzZSBULnNsaWRlVG8oMCxlLHQpfX0sVC5kaXNhYmxlS2V5Ym9hcmRDb250cm9sPWZ1bmN0aW9uKCl7VC5wYXJhbXMua2V5Ym9hcmRDb250cm9sPSExLGUoZG9jdW1lbnQpLm9mZigia2V5ZG93biIscCl9LFQuZW5hYmxlS2V5Ym9hcmRDb250cm9sPWZ1bmN0aW9uKCl7VC5wYXJhbXMua2V5Ym9hcmRDb250cm9sPSEwLGUoZG9jdW1lbnQpLm9uKCJrZXlkb3duIixwKX0sVC5tb3VzZXdoZWVsPXtldmVudDohMSxsYXN0U2Nyb2xsVGltZToobmV3IHdpbmRvdy5EYXRlKS5nZXRUaW1lKCl9LFQucGFyYW1zLm1vdXNld2hlZWxDb250cm9sJiYoVC5tb3VzZXdoZWVsLmV2ZW50PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiZmlyZWZveCIpPi0xPyJET01Nb3VzZVNjcm9sbCI6ZnVuY3Rpb24oKXt2YXIgZT0ib253aGVlbCJpbiBkb2N1bWVudDtpZighZSl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zZXRBdHRyaWJ1dGUoIm9ud2hlZWwiLCJyZXR1cm47IiksZT0iZnVuY3Rpb24iPT10eXBlb2YgYS5vbndoZWVsfXJldHVybiFlJiZkb2N1bWVudC5pbXBsZW1lbnRhdGlvbiYmZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSYmZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgiIiwiIikhPT0hMCYmKGU9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgiRXZlbnRzLndoZWVsIiwiMy4wIikpLGV9KCk/IndoZWVsIjoibW91c2V3aGVlbCIpLFQuZGlzYWJsZU1vdXNld2hlZWxDb250cm9sPWZ1bmN0aW9uKCl7aWYoIVQubW91c2V3aGVlbC5ldmVudClyZXR1cm4hMTt2YXIgYT1ULmNvbnRhaW5lcjtyZXR1cm4iY29udGFpbmVyIiE9PVQucGFyYW1zLm1vdXNld2hlZWxFdmVudHNUYXJnZWQmJihhPWUoVC5wYXJhbXMubW91c2V3aGVlbEV2ZW50c1RhcmdlZCkpLGEub2ZmKFQubW91c2V3aGVlbC5ldmVudCx1KSxULnBhcmFtcy5tb3VzZXdoZWVsQ29udHJvbD0hMSwhMH0sVC5lbmFibGVNb3VzZXdoZWVsQ29udHJvbD1mdW5jdGlvbigpe2lmKCFULm1vdXNld2hlZWwuZXZlbnQpcmV0dXJuITE7dmFyIGE9VC5jb250YWluZXI7cmV0dXJuImNvbnRhaW5lciIhPT1ULnBhcmFtcy5tb3VzZXdoZWVsRXZlbnRzVGFyZ2VkJiYoYT1lKFQucGFyYW1zLm1vdXNld2hlZWxFdmVudHNUYXJnZWQpKSxhLm9uKFQubW91c2V3aGVlbC5ldmVudCx1KSxULnBhcmFtcy5tb3VzZXdoZWVsQ29udHJvbD0hMCwhMH0sVC5wYXJhbGxheD17c2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7VC5jb250YWluZXIuY2hpbGRyZW4oIltkYXRhLXN3aXBlci1wYXJhbGxheF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC14XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXldIikuZWFjaChmdW5jdGlvbigpe2ModGhpcyxULnByb2dyZXNzKX0pLFQuc2xpZGVzLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1lKHRoaXMpO2EuZmluZCgiW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0iKS5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzLE1hdGgubWluKE1hdGgubWF4KGFbMF0ucHJvZ3Jlc3MsLTEpLDEpKX0pfSl9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oYSl7dm9pZCAwPT09YSYmKGE9VC5wYXJhbXMuc3BlZWQpLFQuY29udGFpbmVyLmZpbmQoIltkYXRhLXN3aXBlci1wYXJhbGxheF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC14XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXldIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscz1wYXJzZUludCh0LmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LWR1cmF0aW9uIiksMTApfHxhOzA9PT1hJiYocz0wKSx0LnRyYW5zaXRpb24ocyl9KX19LFQuem9vbT17c2NhbGU6MSxjdXJyZW50U2NhbGU6MSxpc1NjYWxpbmc6ITEsZ2VzdHVyZTp7c2xpZGU6dm9pZCAwLHNsaWRlV2lkdGg6dm9pZCAwLHNsaWRlSGVpZ2h0OnZvaWQgMCxpbWFnZTp2b2lkIDAsaW1hZ2VXcmFwOnZvaWQgMCx6b29tTWF4OlQucGFyYW1zLnpvb21NYXh9LGltYWdlOntpc1RvdWNoZWQ6dm9pZCAwLGlzTW92ZWQ6dm9pZCAwLGN1cnJlbnRYOnZvaWQgMCxjdXJyZW50WTp2b2lkIDAsbWluWDp2b2lkIDAsbWluWTp2b2lkIDAsbWF4WDp2b2lkIDAsbWF4WTp2b2lkIDAsd2lkdGg6dm9pZCAwLGhlaWdodDp2b2lkIDAsc3RhcnRYOnZvaWQgMCxzdGFydFk6dm9pZCAwLHRvdWNoZXNTdGFydDp7fSx0b3VjaGVzQ3VycmVudDp7fX0sdmVsb2NpdHk6e3g6dm9pZCAwLHk6dm9pZCAwLHByZXZQb3NpdGlvblg6dm9pZCAwLHByZXZQb3NpdGlvblk6dm9pZCAwLHByZXZUaW1lOnZvaWQgMH0sZ2V0RGlzdGFuY2VCZXR3ZWVuVG91Y2hlczpmdW5jdGlvbihlKXtpZihlLnRhcmdldFRvdWNoZXMubGVuZ3RoPDIpcmV0dXJuIDE7dmFyIGE9ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYLHQ9ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZLHM9ZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VYLGk9ZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZO3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3cocy1hLDIpK01hdGgucG93KGktdCwyKSl9LG9uR2VzdHVyZVN0YXJ0OmZ1bmN0aW9uKGEpe3ZhciB0PVQuem9vbTtpZighVC5zdXBwb3J0Lmdlc3R1cmVzKXtpZigidG91Y2hzdGFydCIhPT1hLnR5cGV8fCJ0b3VjaHN0YXJ0Ij09PWEudHlwZSYmYS50YXJnZXRUb3VjaGVzLmxlbmd0aDwyKXJldHVybjt0Lmdlc3R1cmUuc2NhbGVTdGFydD10LmdldERpc3RhbmNlQmV0d2VlblRvdWNoZXMoYSl9aWYoISh0Lmdlc3R1cmUuc2xpZGUmJnQuZ2VzdHVyZS5zbGlkZS5sZW5ndGh8fCh0Lmdlc3R1cmUuc2xpZGU9ZSh0aGlzKSwwPT09dC5nZXN0dXJlLnNsaWRlLmxlbmd0aCYmKHQuZ2VzdHVyZS5zbGlkZT1ULnNsaWRlcy5lcShULmFjdGl2ZUluZGV4KSksdC5nZXN0dXJlLmltYWdlPXQuZ2VzdHVyZS5zbGlkZS5maW5kKCJpbWcsIHN2ZywgY2FudmFzIiksdC5nZXN0dXJlLmltYWdlV3JhcD10Lmdlc3R1cmUuaW1hZ2UucGFyZW50KCIuIitULnBhcmFtcy56b29tQ29udGFpbmVyQ2xhc3MpLHQuZ2VzdHVyZS56b29tTWF4PXQuZ2VzdHVyZS5pbWFnZVdyYXAuYXR0cigiZGF0YS1zd2lwZXItem9vbSIpfHxULnBhcmFtcy56b29tTWF4LDAhPT10Lmdlc3R1cmUuaW1hZ2VXcmFwLmxlbmd0aCkpKXJldHVybiB2b2lkKHQuZ2VzdHVyZS5pbWFnZT12b2lkIDApO3QuZ2VzdHVyZS5pbWFnZS50cmFuc2l0aW9uKDApLHQuaXNTY2FsaW5nPSEwfSxvbkdlc3R1cmVDaGFuZ2U6ZnVuY3Rpb24oZSl7dmFyIGE9VC56b29tO2lmKCFULnN1cHBvcnQuZ2VzdHVyZXMpe2lmKCJ0b3VjaG1vdmUiIT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZSYmZS50YXJnZXRUb3VjaGVzLmxlbmd0aDwyKXJldHVybjthLmdlc3R1cmUuc2NhbGVNb3ZlPWEuZ2V0RGlzdGFuY2VCZXR3ZWVuVG91Y2hlcyhlKX1hLmdlc3R1cmUuaW1hZ2UmJjAhPT1hLmdlc3R1cmUuaW1hZ2UubGVuZ3RoJiYoVC5zdXBwb3J0Lmdlc3R1cmVzP2Euc2NhbGU9ZS5zY2FsZSphLmN1cnJlbnRTY2FsZTphLnNjYWxlPWEuZ2VzdHVyZS5zY2FsZU1vdmUvYS5nZXN0dXJlLnNjYWxlU3RhcnQqYS5jdXJyZW50U2NhbGUsYS5zY2FsZT5hLmdlc3R1cmUuem9vbU1heCYmKGEuc2NhbGU9YS5nZXN0dXJlLnpvb21NYXgtMStNYXRoLnBvdyhhLnNjYWxlLWEuZ2VzdHVyZS56b29tTWF4KzEsLjUpKSxhLnNjYWxlPFQucGFyYW1zLnpvb21NaW4mJihhLnNjYWxlPVQucGFyYW1zLnpvb21NaW4rMS1NYXRoLnBvdyhULnBhcmFtcy56b29tTWluLWEuc2NhbGUrMSwuNSkpLGEuZ2VzdHVyZS5pbWFnZS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgiK2Euc2NhbGUrIikiKSl9LG9uR2VzdHVyZUVuZDpmdW5jdGlvbihlKXt2YXIgYT1ULnpvb207IVQuc3VwcG9ydC5nZXN0dXJlcyYmKCJ0b3VjaGVuZCIhPT1lLnR5cGV8fCJ0b3VjaGVuZCI9PT1lLnR5cGUmJmUuY2hhbmdlZFRvdWNoZXMubGVuZ3RoPDIpfHxhLmdlc3R1cmUuaW1hZ2UmJjAhPT1hLmdlc3R1cmUuaW1hZ2UubGVuZ3RoJiYoYS5zY2FsZT1NYXRoLm1heChNYXRoLm1pbihhLnNjYWxlLGEuZ2VzdHVyZS56b29tTWF4KSxULnBhcmFtcy56b29tTWluKSxhLmdlc3R1cmUuaW1hZ2UudHJhbnNpdGlvbihULnBhcmFtcy5zcGVlZCkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoIithLnNjYWxlKyIpIiksYS5jdXJyZW50U2NhbGU9YS5zY2FsZSxhLmlzU2NhbGluZz0hMSwxPT09YS5zY2FsZSYmKGEuZ2VzdHVyZS5zbGlkZT12b2lkIDApKX0sb25Ub3VjaFN0YXJ0OmZ1bmN0aW9uKGUsYSl7dmFyIHQ9ZS56b29tO3QuZ2VzdHVyZS5pbWFnZSYmMCE9PXQuZ2VzdHVyZS5pbWFnZS5sZW5ndGgmJih0LmltYWdlLmlzVG91Y2hlZHx8KCJhbmRyb2lkIj09PWUuZGV2aWNlLm9zJiZhLnByZXZlbnREZWZhdWx0KCksdC5pbWFnZS5pc1RvdWNoZWQ9ITAsdC5pbWFnZS50b3VjaGVzU3RhcnQueD0idG91Y2hzdGFydCI9PT1hLnR5cGU/YS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYOmEucGFnZVgsdC5pbWFnZS50b3VjaGVzU3RhcnQueT0idG91Y2hzdGFydCI9PT1hLnR5cGU/YS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZOmEucGFnZVkpKX0sb25Ub3VjaE1vdmU6ZnVuY3Rpb24oZSl7dmFyIGE9VC56b29tO2lmKGEuZ2VzdHVyZS5pbWFnZSYmMCE9PWEuZ2VzdHVyZS5pbWFnZS5sZW5ndGgmJihULmFsbG93Q2xpY2s9ITEsYS5pbWFnZS5pc1RvdWNoZWQmJmEuZ2VzdHVyZS5zbGlkZSkpe2EuaW1hZ2UuaXNNb3ZlZHx8KGEuaW1hZ2Uud2lkdGg9YS5nZXN0dXJlLmltYWdlWzBdLm9mZnNldFdpZHRoLGEuaW1hZ2UuaGVpZ2h0PWEuZ2VzdHVyZS5pbWFnZVswXS5vZmZzZXRIZWlnaHQsYS5pbWFnZS5zdGFydFg9VC5nZXRUcmFuc2xhdGUoYS5nZXN0dXJlLmltYWdlV3JhcFswXSwieCIpfHwwLGEuaW1hZ2Uuc3RhcnRZPVQuZ2V0VHJhbnNsYXRlKGEuZ2VzdHVyZS5pbWFnZVdyYXBbMF0sInkiKXx8MCxhLmdlc3R1cmUuc2xpZGVXaWR0aD1hLmdlc3R1cmUuc2xpZGVbMF0ub2Zmc2V0V2lkdGgsYS5nZXN0dXJlLnNsaWRlSGVpZ2h0PWEuZ2VzdHVyZS5zbGlkZVswXS5vZmZzZXRIZWlnaHQsYS5nZXN0dXJlLmltYWdlV3JhcC50cmFuc2l0aW9uKDApLFQucnRsJiYoYS5pbWFnZS5zdGFydFg9LWEuaW1hZ2Uuc3RhcnRYKSxULnJ0bCYmKGEuaW1hZ2Uuc3RhcnRZPS1hLmltYWdlLnN0YXJ0WSkpO3ZhciB0PWEuaW1hZ2Uud2lkdGgqYS5zY2FsZSxzPWEuaW1hZ2UuaGVpZ2h0KmEuc2NhbGU7aWYoISh0PGEuZ2VzdHVyZS5zbGlkZVdpZHRoJiZzPGEuZ2VzdHVyZS5zbGlkZUhlaWdodCkpe2lmKGEuaW1hZ2UubWluWD1NYXRoLm1pbihhLmdlc3R1cmUuc2xpZGVXaWR0aC8yLXQvMiwwKSxhLmltYWdlLm1heFg9LWEuaW1hZ2UubWluWCxhLmltYWdlLm1pblk9TWF0aC5taW4oYS5nZXN0dXJlLnNsaWRlSGVpZ2h0LzItcy8yLDApLGEuaW1hZ2UubWF4WT0tYS5pbWFnZS5taW5ZLGEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueD0idG91Y2htb3ZlIj09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVg6ZS5wYWdlWCxhLmltYWdlLnRvdWNoZXNDdXJyZW50Lnk9InRvdWNobW92ZSI9PT1lLnR5cGU/ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZOmUucGFnZVksIWEuaW1hZ2UuaXNNb3ZlZCYmIWEuaXNTY2FsaW5nKXtpZihULmlzSG9yaXpvbnRhbCgpJiZNYXRoLmZsb29yKGEuaW1hZ2UubWluWCk9PT1NYXRoLmZsb29yKGEuaW1hZ2Uuc3RhcnRYKSYmYS5pbWFnZS50b3VjaGVzQ3VycmVudC54PGEuaW1hZ2UudG91Y2hlc1N0YXJ0Lnh8fE1hdGguZmxvb3IoYS5pbWFnZS5tYXhYKT09PU1hdGguZmxvb3IoYS5pbWFnZS5zdGFydFgpJiZhLmltYWdlLnRvdWNoZXNDdXJyZW50Lng+YS5pbWFnZS50b3VjaGVzU3RhcnQueClyZXR1cm4gdm9pZChhLmltYWdlLmlzVG91Y2hlZD0hMSk7aWYoIVQuaXNIb3Jpem9udGFsKCkmJk1hdGguZmxvb3IoYS5pbWFnZS5taW5ZKT09PU1hdGguZmxvb3IoYS5pbWFnZS5zdGFydFkpJiZhLmltYWdlLnRvdWNoZXNDdXJyZW50Lnk8YS5pbWFnZS50b3VjaGVzU3RhcnQueXx8TWF0aC5mbG9vcihhLmltYWdlLm1heFkpPT09TWF0aC5mbG9vcihhLmltYWdlLnN0YXJ0WSkmJmEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueT5hLmltYWdlLnRvdWNoZXNTdGFydC55KXJldHVybiB2b2lkKGEuaW1hZ2UuaXNUb3VjaGVkPSExKX1lLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxhLmltYWdlLmlzTW92ZWQ9ITAsYS5pbWFnZS5jdXJyZW50WD1hLmltYWdlLnRvdWNoZXNDdXJyZW50LngtYS5pbWFnZS50b3VjaGVzU3RhcnQueCthLmltYWdlLnN0YXJ0WCxhLmltYWdlLmN1cnJlbnRZPWEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueS1hLmltYWdlLnRvdWNoZXNTdGFydC55K2EuaW1hZ2Uuc3RhcnRZLGEuaW1hZ2UuY3VycmVudFg8YS5pbWFnZS5taW5YJiYoYS5pbWFnZS5jdXJyZW50WD1hLmltYWdlLm1pblgrMS1NYXRoLnBvdyhhLmltYWdlLm1pblgtYS5pbWFnZS5jdXJyZW50WCsxLC44KSksYS5pbWFnZS5jdXJyZW50WD5hLmltYWdlLm1heFgmJihhLmltYWdlLmN1cnJlbnRYPWEuaW1hZ2UubWF4WC0xK01hdGgucG93KGEuaW1hZ2UuY3VycmVudFgtYS5pbWFnZS5tYXhYKzEsLjgpKSxhLmltYWdlLmN1cnJlbnRZPGEuaW1hZ2UubWluWSYmKGEuaW1hZ2UuY3VycmVudFk9YS5pbWFnZS5taW5ZKzEtTWF0aC5wb3coYS5pbWFnZS5taW5ZLWEuaW1hZ2UuY3VycmVudFkrMSwuOCkpLGEuaW1hZ2UuY3VycmVudFk+YS5pbWFnZS5tYXhZJiYoYS5pbWFnZS5jdXJyZW50WT1hLmltYWdlLm1heFktMStNYXRoLnBvdyhhLmltYWdlLmN1cnJlbnRZLWEuaW1hZ2UubWF4WSsxLC44KSksYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25YfHwoYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25YPWEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueCksYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25ZfHwoYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25ZPWEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueSksYS52ZWxvY2l0eS5wcmV2VGltZXx8KGEudmVsb2NpdHkucHJldlRpbWU9RGF0ZS5ub3coKSksYS52ZWxvY2l0eS54PShhLmltYWdlLnRvdWNoZXNDdXJyZW50LngtYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25YKS8oRGF0ZS5ub3coKS1hLnZlbG9jaXR5LnByZXZUaW1lKS8yLGEudmVsb2NpdHkueT0oYS5pbWFnZS50b3VjaGVzQ3VycmVudC55LWEudmVsb2NpdHkucHJldlBvc2l0aW9uWSkvKERhdGUubm93KCktYS52ZWxvY2l0eS5wcmV2VGltZSkvMixNYXRoLmFicyhhLmltYWdlLnRvdWNoZXNDdXJyZW50LngtYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25YKTwyJiYoYS52ZWxvY2l0eS54PTApLE1hdGguYWJzKGEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueS1hLnZlbG9jaXR5LnByZXZQb3NpdGlvblkpPDImJihhLnZlbG9jaXR5Lnk9MCksYS52ZWxvY2l0eS5wcmV2UG9zaXRpb25YPWEuaW1hZ2UudG91Y2hlc0N1cnJlbnQueCxhLnZlbG9jaXR5LnByZXZQb3NpdGlvblk9YS5pbWFnZS50b3VjaGVzQ3VycmVudC55LGEudmVsb2NpdHkucHJldlRpbWU9RGF0ZS5ub3coKSxhLmdlc3R1cmUuaW1hZ2VXcmFwLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIithLmltYWdlLmN1cnJlbnRYKyJweCwgIithLmltYWdlLmN1cnJlbnRZKyJweCwwKSIpfX19LG9uVG91Y2hFbmQ6ZnVuY3Rpb24oZSxhKXt2YXIgdD1lLnpvb207aWYodC5nZXN0dXJlLmltYWdlJiYwIT09dC5nZXN0dXJlLmltYWdlLmxlbmd0aCl7aWYoIXQuaW1hZ2UuaXNUb3VjaGVkfHwhdC5pbWFnZS5pc01vdmVkKXJldHVybiB0LmltYWdlLmlzVG91Y2hlZD0hMSx2b2lkKHQuaW1hZ2UuaXNNb3ZlZD0hMSk7dC5pbWFnZS5pc1RvdWNoZWQ9ITEsdC5pbWFnZS5pc01vdmVkPSExO3ZhciBzPTMwMCxpPTMwMCxyPXQudmVsb2NpdHkueCpzLG49dC5pbWFnZS5jdXJyZW50WCtyLG89dC52ZWxvY2l0eS55KmksbD10LmltYWdlLmN1cnJlbnRZK287MCE9PXQudmVsb2NpdHkueCYmKHM9TWF0aC5hYnMoKG4tdC5pbWFnZS5jdXJyZW50WCkvdC52ZWxvY2l0eS54KSksMCE9PXQudmVsb2NpdHkueSYmKGk9TWF0aC5hYnMoKGwtdC5pbWFnZS5jdXJyZW50WSkvdC52ZWxvY2l0eS55KSk7dmFyIHA9TWF0aC5tYXgocyxpKTt0LmltYWdlLmN1cnJlbnRYPW4sdC5pbWFnZS5jdXJyZW50WT1sO3ZhciBkPXQuaW1hZ2Uud2lkdGgqdC5zY2FsZSx1PXQuaW1hZ2UuaGVpZ2h0KnQuc2NhbGU7dC5pbWFnZS5taW5YPU1hdGgubWluKHQuZ2VzdHVyZS5zbGlkZVdpZHRoLzItZC8yLDApLHQuaW1hZ2UubWF4WD0tdC5pbWFnZS5taW5YLHQuaW1hZ2UubWluWT1NYXRoLm1pbih0Lmdlc3R1cmUuc2xpZGVIZWlnaHQvMi11LzIsMCksdC5pbWFnZS5tYXhZPS10LmltYWdlLm1pblksdC5pbWFnZS5jdXJyZW50WD1NYXRoLm1heChNYXRoLm1pbih0LmltYWdlLmN1cnJlbnRYLHQuaW1hZ2UubWF4WCksdC5pbWFnZS5taW5YKSx0LmltYWdlLmN1cnJlbnRZPU1hdGgubWF4KE1hdGgubWluKHQuaW1hZ2UuY3VycmVudFksdC5pbWFnZS5tYXhZKSx0LmltYWdlLm1pblkpLHQuZ2VzdHVyZS5pbWFnZVdyYXAudHJhbnNpdGlvbihwKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIrdC5pbWFnZS5jdXJyZW50WCsicHgsICIrdC5pbWFnZS5jdXJyZW50WSsicHgsMCkiKX19LG9uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbihlKXt2YXIgYT1lLnpvb207YS5nZXN0dXJlLnNsaWRlJiZlLnByZXZpb3VzSW5kZXghPT1lLmFjdGl2ZUluZGV4JiYoYS5nZXN0dXJlLmltYWdlLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpIiksYS5nZXN0dXJlLmltYWdlV3JhcC50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSIpLGEuZ2VzdHVyZS5zbGlkZT1hLmdlc3R1cmUuaW1hZ2U9YS5nZXN0dXJlLmltYWdlV3JhcD12b2lkIDAsYS5zY2FsZT1hLmN1cnJlbnRTY2FsZT0xKX0sdG9nZ2xlWm9vbTpmdW5jdGlvbihhLHQpe3ZhciBzPWEuem9vbTtpZihzLmdlc3R1cmUuc2xpZGV8fChzLmdlc3R1cmUuc2xpZGU9YS5jbGlja2VkU2xpZGU/ZShhLmNsaWNrZWRTbGlkZSk6YS5zbGlkZXMuZXEoYS5hY3RpdmVJbmRleCkscy5nZXN0dXJlLmltYWdlPXMuZ2VzdHVyZS5zbGlkZS5maW5kKCJpbWcsIHN2ZywgY2FudmFzIikscy5nZXN0dXJlLmltYWdlV3JhcD1zLmdlc3R1cmUuaW1hZ2UucGFyZW50KCIuIithLnBhcmFtcy56b29tQ29udGFpbmVyQ2xhc3MpKSxzLmdlc3R1cmUuaW1hZ2UmJjAhPT1zLmdlc3R1cmUuaW1hZ2UubGVuZ3RoKXt2YXIgaSxyLG4sbyxsLHAsZCx1LGMsbSxoLGcsZix2LHcseSx4LFQ7dm9pZCAwPT09cy5pbWFnZS50b3VjaGVzU3RhcnQueCYmdD8oaT0idG91Y2hlbmQiPT09dC50eXBlP3QuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVg6dC5wYWdlWCxyPSJ0b3VjaGVuZCI9PT10LnR5cGU/dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWTp0LnBhZ2VZKTooaT1zLmltYWdlLnRvdWNoZXNTdGFydC54LHI9cy5pbWFnZS50b3VjaGVzU3RhcnQueSkscy5zY2FsZSYmMSE9PXMuc2NhbGU/KHMuc2NhbGU9cy5jdXJyZW50U2NhbGU9MSxzLmdlc3R1cmUuaW1hZ2VXcmFwLnRyYW5zaXRpb24oMzAwKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSIpLHMuZ2VzdHVyZS5pbWFnZS50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSkiKSxzLmdlc3R1cmUuc2xpZGU9dm9pZCAwKToocy5zY2FsZT1zLmN1cnJlbnRTY2FsZT1zLmdlc3R1cmUuaW1hZ2VXcmFwLmF0dHIoImRhdGEtc3dpcGVyLXpvb20iKXx8YS5wYXJhbXMuem9vbU1heCx0Pyh4PXMuZ2VzdHVyZS5zbGlkZVswXS5vZmZzZXRXaWR0aCxUPXMuZ2VzdHVyZS5zbGlkZVswXS5vZmZzZXRIZWlnaHQsbj1zLmdlc3R1cmUuc2xpZGUub2Zmc2V0KCkubGVmdCxvPXMuZ2VzdHVyZS5zbGlkZS5vZmZzZXQoKS50b3AsbD1uK3gvMi1pLHA9bytULzItcixjPXMuZ2VzdHVyZS5pbWFnZVswXS5vZmZzZXRXaWR0aCxtPXMuZ2VzdHVyZS5pbWFnZVswXS5vZmZzZXRIZWlnaHQsaD1jKnMuc2NhbGUsZz1tKnMuc2NhbGUsZj1NYXRoLm1pbih4LzItaC8yLDApLHY9TWF0aC5taW4oVC8yLWcvMiwwKSx3PS1mLHk9LXYsZD1sKnMuc2NhbGUsdT1wKnMuc2NhbGUsZDxmJiYoZD1mKSxkPncmJihkPXcpLHU8diYmKHU9diksdT55JiYodT15KSk6KGQ9MCx1PTApLHMuZ2VzdHVyZS5pbWFnZVdyYXAudHJhbnNpdGlvbigzMDApLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIitkKyJweCwgIit1KyJweCwwKSIpLHMuZ2VzdHVyZS5pbWFnZS50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoIitzLnNjYWxlKyIpIikpfX0sYXR0YWNoRXZlbnRzOmZ1bmN0aW9uKGEpe3ZhciB0PWE/Im9mZiI6Im9uIjtpZihULnBhcmFtcy56b29tKXt2YXIgcz0oVC5zbGlkZXMsISgidG91Y2hzdGFydCIhPT1ULnRvdWNoRXZlbnRzLnN0YXJ0fHwhVC5zdXBwb3J0LnBhc3NpdmVMaXN0ZW5lcnx8IVQucGFyYW1zLnBhc3NpdmVMaXN0ZW5lcnMpJiZ7cGFzc2l2ZTohMCxjYXB0dXJlOiExfSk7VC5zdXBwb3J0Lmdlc3R1cmVzPyhULnNsaWRlc1t0XSgiZ2VzdHVyZXN0YXJ0IixULnpvb20ub25HZXN0dXJlU3RhcnQscyksVC5zbGlkZXNbdF0oImdlc3R1cmVjaGFuZ2UiLFQuem9vbS5vbkdlc3R1cmVDaGFuZ2UscyksVC5zbGlkZXNbdF0oImdlc3R1cmVlbmQiLFQuem9vbS5vbkdlc3R1cmVFbmQscykpOiJ0b3VjaHN0YXJ0Ij09PVQudG91Y2hFdmVudHMuc3RhcnQmJihULnNsaWRlc1t0XShULnRvdWNoRXZlbnRzLnN0YXJ0LFQuem9vbS5vbkdlc3R1cmVTdGFydCxzKSxULnNsaWRlc1t0XShULnRvdWNoRXZlbnRzLm1vdmUsVC56b29tLm9uR2VzdHVyZUNoYW5nZSxzKSxULnNsaWRlc1t0XShULnRvdWNoRXZlbnRzLmVuZCxULnpvb20ub25HZXN0dXJlRW5kLHMpKSxUW3RdKCJ0b3VjaFN0YXJ0IixULnpvb20ub25Ub3VjaFN0YXJ0KSxULnNsaWRlcy5lYWNoKGZ1bmN0aW9uKGEscyl7ZShzKS5maW5kKCIuIitULnBhcmFtcy56b29tQ29udGFpbmVyQ2xhc3MpLmxlbmd0aD4wJiZlKHMpW3RdKFQudG91Y2hFdmVudHMubW92ZSxULnpvb20ub25Ub3VjaE1vdmUpfSksVFt0XSgidG91Y2hFbmQiLFQuem9vbS5vblRvdWNoRW5kKSxUW3RdKCJ0cmFuc2l0aW9uRW5kIixULnpvb20ub25UcmFuc2l0aW9uRW5kKSxULnBhcmFtcy56b29tVG9nZ2xlJiZULm9uKCJkb3VibGVUYXAiLFQuem9vbS50b2dnbGVab29tKX19LGluaXQ6ZnVuY3Rpb24oKXtULnpvb20uYXR0YWNoRXZlbnRzKCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtULnpvb20uYXR0YWNoRXZlbnRzKCEwKX19LFQuX3BsdWdpbnM9W107Zm9yKHZhciBZIGluIFQucGx1Z2lucyl7dmFyIE89VC5wbHVnaW5zW1ldKFQsVC5wYXJhbXNbWV0pO08mJlQuX3BsdWdpbnMucHVzaChPKX1yZXR1cm4gVC5jYWxsUGx1Z2lucz1mdW5jdGlvbihlKXtmb3IodmFyIGE9MDthPFQuX3BsdWdpbnMubGVuZ3RoO2ErKyllIGluIFQuX3BsdWdpbnNbYV0mJlQuX3BsdWdpbnNbYV1bZV0oYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSl9LFQuZW1pdHRlckV2ZW50TGlzdGVuZXJzPXt9LFQuZW1pdD1mdW5jdGlvbihlKXtULnBhcmFtc1tlXSYmVC5wYXJhbXNbZV0oYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSk7dmFyIGE7aWYoVC5lbWl0dGVyRXZlbnRMaXN0ZW5lcnNbZV0pZm9yKGE9MDthPFQuZW1pdHRlckV2ZW50TGlzdGVuZXJzW2VdLmxlbmd0aDthKyspVC5lbWl0dGVyRXZlbnRMaXN0ZW5lcnNbZV1bYV0oYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM10sYXJndW1lbnRzWzRdLGFyZ3VtZW50c1s1XSk7VC5jYWxsUGx1Z2lucyYmVC5jYWxsUGx1Z2lucyhlLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0sYXJndW1lbnRzWzNdLGFyZ3VtZW50c1s0XSxhcmd1bWVudHNbNV0pfSxULm9uPWZ1bmN0aW9uKGUsYSl7cmV0dXJuIGU9bShlKSxULmVtaXR0ZXJFdmVudExpc3RlbmVyc1tlXXx8KFQuZW1pdHRlckV2ZW50TGlzdGVuZXJzW2VdPVtdKSxULmVtaXR0ZXJFdmVudExpc3RlbmVyc1tlXS5wdXNoKGEpLFR9LFQub2ZmPWZ1bmN0aW9uKGUsYSl7dmFyIHQ7aWYoZT1tKGUpLHZvaWQgMD09PWEpcmV0dXJuIFQuZW1pdHRlckV2ZW50TGlzdGVuZXJzW2VdPVtdLFQ7aWYoVC5lbWl0dGVyRXZlbnRMaXN0ZW5lcnNbZV0mJjAhPT1ULmVtaXR0ZXJFdmVudExpc3RlbmVyc1tlXS5sZW5ndGgpe2Zvcih0PTA7dDxULmVtaXR0ZXJFdmVudExpc3RlbmVyc1tlXS5sZW5ndGg7dCsrKVQuZW1pdHRlckV2ZW50TGlzdGVuZXJzW2VdW3RdPT09YSYmVC5lbWl0dGVyRXZlbnRMaXN0ZW5lcnNbZV0uc3BsaWNlKHQsMSk7cmV0dXJuIFR9fSxULm9uY2U9ZnVuY3Rpb24oZSxhKXtlPW0oZSk7dmFyIHQ9ZnVuY3Rpb24oKXthKGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdLGFyZ3VtZW50c1szXSxhcmd1bWVudHNbNF0pLFQub2ZmKGUsdCl9O3JldHVybiBULm9uKGUsdCksVH0sVC5hMTF5PXttYWtlRm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmF0dHIoInRhYkluZGV4IiwiMCIpLGV9LGFkZFJvbGU6ZnVuY3Rpb24oZSxhKXtyZXR1cm4gZS5hdHRyKCJyb2xlIixhKSxlfSxhZGRMYWJlbDpmdW5jdGlvbihlLGEpe3JldHVybiBlLmF0dHIoImFyaWEtbGFiZWwiLGEpLGV9LGRpc2FibGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXR0cigiYXJpYS1kaXNhYmxlZCIsITApLGV9LGVuYWJsZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5hdHRyKCJhcmlhLWRpc2FibGVkIiwhMSksZX0sb25FbnRlcktleTpmdW5jdGlvbihhKXsxMz09PWEua2V5Q29kZSYmKGUoYS50YXJnZXQpLmlzKFQucGFyYW1zLm5leHRCdXR0b24pPyhULm9uQ2xpY2tOZXh0KGEpLFQuaXNFbmQ/VC5hMTF5Lm5vdGlmeShULnBhcmFtcy5sYXN0U2xpZGVNZXNzYWdlKTpULmExMXkubm90aWZ5KFQucGFyYW1zLm5leHRTbGlkZU1lc3NhZ2UpKTplKGEudGFyZ2V0KS5pcyhULnBhcmFtcy5wcmV2QnV0dG9uKSYmKFQub25DbGlja1ByZXYoYSksVC5pc0JlZ2lubmluZz9ULmExMXkubm90aWZ5KFQucGFyYW1zLmZpcnN0U2xpZGVNZXNzYWdlKTpULmExMXkubm90aWZ5KFQucGFyYW1zLnByZXZTbGlkZU1lc3NhZ2UpKSxlKGEudGFyZ2V0KS5pcygiLiIrVC5wYXJhbXMuYnVsbGV0Q2xhc3MpJiZlKGEudGFyZ2V0KVswXS5jbGljaygpKX0sbGl2ZVJlZ2lvbjplKCc8c3BhbiBjbGFzcz0iJytULnBhcmFtcy5ub3RpZmljYXRpb25DbGFzcysnIiBhcmlhLWxpdmU9ImFzc2VydGl2ZSIgYXJpYS1hdG9taWM9InRydWUiPjwvc3Bhbj4nKSxub3RpZnk6ZnVuY3Rpb24oZSl7dmFyIGE9VC5hMTF5LmxpdmVSZWdpb247MCE9PWEubGVuZ3RoJiYoYS5odG1sKCIiKSxhLmh0bWwoZSkpfSxpbml0OmZ1bmN0aW9uKCl7VC5wYXJhbXMubmV4dEJ1dHRvbiYmVC5uZXh0QnV0dG9uJiZULm5leHRCdXR0b24ubGVuZ3RoPjAmJihULmExMXkubWFrZUZvY3VzYWJsZShULm5leHRCdXR0b24pLFQuYTExeS5hZGRSb2xlKFQubmV4dEJ1dHRvbiwiYnV0dG9uIiksVC5hMTF5LmFkZExhYmVsKFQubmV4dEJ1dHRvbixULnBhcmFtcy5uZXh0U2xpZGVNZXNzYWdlKSksVC5wYXJhbXMucHJldkJ1dHRvbiYmVC5wcmV2QnV0dG9uJiZULnByZXZCdXR0b24ubGVuZ3RoPjAmJihULmExMXkubWFrZUZvY3VzYWJsZShULnByZXZCdXR0b24pLFQuYTExeS5hZGRSb2xlKFQucHJldkJ1dHRvbiwiYnV0dG9uIiksVC5hMTF5LmFkZExhYmVsKFQucHJldkJ1dHRvbixULnBhcmFtcy5wcmV2U2xpZGVNZXNzYWdlKSksZShULmNvbnRhaW5lcikuYXBwZW5kKFQuYTExeS5saXZlUmVnaW9uKX0saW5pdFBhZ2luYXRpb246ZnVuY3Rpb24oKXtULnBhcmFtcy5wYWdpbmF0aW9uJiZULnBhcmFtcy5wYWdpbmF0aW9uQ2xpY2thYmxlJiZULmJ1bGxldHMmJlQuYnVsbGV0cy5sZW5ndGgmJlQuYnVsbGV0cy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9ZSh0aGlzKTtULmExMXkubWFrZUZvY3VzYWJsZShhKSxULmExMXkuYWRkUm9sZShhLCJidXR0b24iKSxULmExMXkuYWRkTGFiZWwoYSxULnBhcmFtcy5wYWdpbmF0aW9uQnVsbGV0TWVzc2FnZS5yZXBsYWNlKC97e2luZGV4fX0vLGEuaW5kZXgoKSsxKSl9KX0sZGVzdHJveTpmdW5jdGlvbigpe1QuYTExeS5saXZlUmVnaW9uJiZULmExMXkubGl2ZVJlZ2lvbi5sZW5ndGg+MCYmVC5hMTF5LmxpdmVSZWdpb24ucmVtb3ZlKCl9fSxULmluaXQ9ZnVuY3Rpb24oKXtULnBhcmFtcy5sb29wJiZULmNyZWF0ZUxvb3AoKSxULnVwZGF0ZUNvbnRhaW5lclNpemUoKSxULnVwZGF0ZVNsaWRlc1NpemUoKSxULnVwZGF0ZVBhZ2luYXRpb24oKSxULnBhcmFtcy5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyJiYoVC5zY3JvbGxiYXIuc2V0KCksVC5wYXJhbXMuc2Nyb2xsYmFyRHJhZ2dhYmxlJiZULnNjcm9sbGJhci5lbmFibGVEcmFnZ2FibGUoKSksInNsaWRlIiE9PVQucGFyYW1zLmVmZmVjdCYmVC5lZmZlY3RzW1QucGFyYW1zLmVmZmVjdF0mJihULnBhcmFtcy5sb29wfHxULnVwZGF0ZVByb2dyZXNzKCksVC5lZmZlY3RzW1QucGFyYW1zLmVmZmVjdF0uc2V0VHJhbnNsYXRlKCkpLFQucGFyYW1zLmxvb3A/VC5zbGlkZVRvKFQucGFyYW1zLmluaXRpYWxTbGlkZStULmxvb3BlZFNsaWRlcywwLFQucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCk6KFQuc2xpZGVUbyhULnBhcmFtcy5pbml0aWFsU2xpZGUsMCxULnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQpLDA9PT1ULnBhcmFtcy5pbml0aWFsU2xpZGUmJihULnBhcmFsbGF4JiZULnBhcmFtcy5wYXJhbGxheCYmVC5wYXJhbGxheC5zZXRUcmFuc2xhdGUoKSxULmxhenkmJlQucGFyYW1zLmxhenlMb2FkaW5nJiYoVC5sYXp5LmxvYWQoKSxULmxhenkuaW5pdGlhbEltYWdlTG9hZGVkPSEwKSkpLFQuYXR0YWNoRXZlbnRzKCksVC5wYXJhbXMub2JzZXJ2ZXImJlQuc3VwcG9ydC5vYnNlcnZlciYmVC5pbml0T2JzZXJ2ZXJzKCksVC5wYXJhbXMucHJlbG9hZEltYWdlcyYmIVQucGFyYW1zLmxhenlMb2FkaW5nJiZULnByZWxvYWRJbWFnZXMoKSxULnBhcmFtcy56b29tJiZULnpvb20mJlQuem9vbS5pbml0KCksVC5wYXJhbXMuYXV0b3BsYXkmJlQuc3RhcnRBdXRvcGxheSgpLFQucGFyYW1zLmtleWJvYXJkQ29udHJvbCYmVC5lbmFibGVLZXlib2FyZENvbnRyb2wmJlQuZW5hYmxlS2V5Ym9hcmRDb250cm9sKCksVC5wYXJhbXMubW91c2V3aGVlbENvbnRyb2wmJlQuZW5hYmxlTW91c2V3aGVlbENvbnRyb2wmJlQuZW5hYmxlTW91c2V3aGVlbENvbnRyb2woKSxULnBhcmFtcy5oYXNobmF2UmVwbGFjZVN0YXRlJiYoVC5wYXJhbXMucmVwbGFjZVN0YXRlPVQucGFyYW1zLmhhc2huYXZSZXBsYWNlU3RhdGUpLFQucGFyYW1zLmhpc3RvcnkmJlQuaGlzdG9yeSYmVC5oaXN0b3J5LmluaXQoKSxULnBhcmFtcy5oYXNobmF2JiZULmhhc2huYXYmJlQuaGFzaG5hdi5pbml0KCksVC5wYXJhbXMuYTExeSYmVC5hMTF5JiZULmExMXkuaW5pdCgpLFQuZW1pdCgib25Jbml0IixUKX0sVC5jbGVhbnVwU3R5bGVzPWZ1bmN0aW9uKCl7VC5jb250YWluZXIucmVtb3ZlQ2xhc3MoVC5jbGFzc05hbWVzLmpvaW4oIiAiKSkucmVtb3ZlQXR0cigic3R5bGUiKSxULndyYXBwZXIucmVtb3ZlQXR0cigic3R5bGUiKSxULnNsaWRlcyYmVC5zbGlkZXMubGVuZ3RoJiZULnNsaWRlcy5yZW1vdmVDbGFzcyhbVC5wYXJhbXMuc2xpZGVWaXNpYmxlQ2xhc3MsVC5wYXJhbXMuc2xpZGVBY3RpdmVDbGFzcyxULnBhcmFtcy5zbGlkZU5leHRDbGFzcyxULnBhcmFtcy5zbGlkZVByZXZDbGFzc10uam9pbigiICIpKS5yZW1vdmVBdHRyKCJzdHlsZSIpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLWNvbHVtbiIpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXJvdyIpLFQucGFnaW5hdGlvbkNvbnRhaW5lciYmVC5wYWdpbmF0aW9uQ29udGFpbmVyLmxlbmd0aCYmVC5wYWdpbmF0aW9uQ29udGFpbmVyLnJlbW92ZUNsYXNzKFQucGFyYW1zLnBhZ2luYXRpb25IaWRkZW5DbGFzcyksVC5idWxsZXRzJiZULmJ1bGxldHMubGVuZ3RoJiZULmJ1bGxldHMucmVtb3ZlQ2xhc3MoVC5wYXJhbXMuYnVsbGV0QWN0aXZlQ2xhc3MpLFQucGFyYW1zLnByZXZCdXR0b24mJmUoVC5wYXJhbXMucHJldkJ1dHRvbikucmVtb3ZlQ2xhc3MoVC5wYXJhbXMuYnV0dG9uRGlzYWJsZWRDbGFzcyksVC5wYXJhbXMubmV4dEJ1dHRvbiYmZShULnBhcmFtcy5uZXh0QnV0dG9uKS5yZW1vdmVDbGFzcyhULnBhcmFtcy5idXR0b25EaXNhYmxlZENsYXNzKSxULnBhcmFtcy5zY3JvbGxiYXImJlQuc2Nyb2xsYmFyJiYoVC5zY3JvbGxiYXIudHJhY2smJlQuc2Nyb2xsYmFyLnRyYWNrLmxlbmd0aCYmVC5zY3JvbGxiYXIudHJhY2sucmVtb3ZlQXR0cigic3R5bGUiKSxULnNjcm9sbGJhci5kcmFnJiZULnNjcm9sbGJhci5kcmFnLmxlbmd0aCYmVC5zY3JvbGxiYXIuZHJhZy5yZW1vdmVBdHRyKCJzdHlsZSIpKX0sVC5kZXN0cm95PWZ1bmN0aW9uKGUsYSl7VC5kZXRhY2hFdmVudHMoKSxULnN0b3BBdXRvcGxheSgpLFQucGFyYW1zLnNjcm9sbGJhciYmVC5zY3JvbGxiYXImJlQucGFyYW1zLnNjcm9sbGJhckRyYWdnYWJsZSYmVC5zY3JvbGxiYXIuZGlzYWJsZURyYWdnYWJsZSgpLFQucGFyYW1zLmxvb3AmJlQuZGVzdHJveUxvb3AoKSxhJiZULmNsZWFudXBTdHlsZXMoKSxULmRpc2Nvbm5lY3RPYnNlcnZlcnMoKSxULnBhcmFtcy56b29tJiZULnpvb20mJlQuem9vbS5kZXN0cm95KCksVC5wYXJhbXMua2V5Ym9hcmRDb250cm9sJiZULmRpc2FibGVLZXlib2FyZENvbnRyb2wmJlQuZGlzYWJsZUtleWJvYXJkQ29udHJvbCgpLFQucGFyYW1zLm1vdXNld2hlZWxDb250cm9sJiZULmRpc2FibGVNb3VzZXdoZWVsQ29udHJvbCYmVC5kaXNhYmxlTW91c2V3aGVlbENvbnRyb2woKSxULnBhcmFtcy5hMTF5JiZULmExMXkmJlQuYTExeS5kZXN0cm95KCksVC5wYXJhbXMuaGlzdG9yeSYmIVQucGFyYW1zLnJlcGxhY2VTdGF0ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixULmhpc3Rvcnkuc2V0SGlzdG9yeVBvcFN0YXRlKSxULnBhcmFtcy5oYXNobmF2JiZULmhhc2huYXYmJlQuaGFzaG5hdi5kZXN0cm95KCksVC5lbWl0KCJvbkRlc3Ryb3kiKSxlIT09ITEmJihUPW51bGwpfSxULmluaXQoKSxUfX07YS5wcm90b3R5cGU9e2lzU2FmYXJpOmZ1bmN0aW9uKCl7dmFyIGU9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtyZXR1cm4gZS5pbmRleE9mKCJzYWZhcmkiKT49MCYmZS5pbmRleE9mKCJjaHJvbWUiKTwwJiZlLmluZGV4T2YoImFuZHJvaWQiKTwwfSgpLGlzVWlXZWJWaWV3Oi8oaVBob25lfGlQb2R8aVBhZCkuKkFwcGxlV2ViS2l0KD8hLipTYWZhcmkpL2kudGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCksaXNBcnJheTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShlKX0sYnJvd3Nlcjp7aWU6d2luZG93Lm5hdmlnYXRvci5wb2ludGVyRW5hYmxlZHx8d2luZG93Lm5hdmlnYXRvci5tc1BvaW50ZXJFbmFibGVkLGllVG91Y2g6d2luZG93Lm5hdmlnYXRvci5tc1BvaW50ZXJFbmFibGVkJiZ3aW5kb3cubmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM+MXx8d2luZG93Lm5hdmlnYXRvci5wb2ludGVyRW5hYmxlZCYmd2luZG93Lm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xLGx0ZUlFOTpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmlubmVySFRNTD0iPCEtLVtpZiBsdGUgSUUgOV0+PGk+PC9pPjwhW2VuZGlmXS0tPiIsMT09PWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImkiKS5sZW5ndGh9KCl9LGRldmljZTpmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LGE9ZS5tYXRjaCgvKEFuZHJvaWQpOz9bXHNcL10rKFtcZC5dKyk/LyksdD1lLm1hdGNoKC8oaVBhZCkuKk9TXHMoW1xkX10rKS8pLHM9ZS5tYXRjaCgvKGlQb2QpKC4qT1NccyhbXGRfXSspKT8vKSxpPSF0JiZlLm1hdGNoKC8oaVBob25lXHNPU3xpT1MpXHMoW1xkX10rKS8pO3JldHVybntpb3M6dHx8aXx8cyxhbmRyb2lkOmF9fSgpLHN1cHBvcnQ6e3RvdWNoOndpbmRvdy5Nb2Rlcm5penImJk1vZGVybml6ci50b3VjaD09PSEwfHxmdW5jdGlvbigpe3JldHVybiEhKCJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHx3aW5kb3cuRG9jdW1lbnRUb3VjaCYmZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKX0oKSx0cmFuc2Zvcm1zM2Q6d2luZG93Lk1vZGVybml6ciYmTW9kZXJuaXpyLmNzc3RyYW5zZm9ybXMzZD09PSEwfHxmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlO3JldHVybiJ3ZWJraXRQZXJzcGVjdGl2ZSJpbiBlfHwiTW96UGVyc3BlY3RpdmUiaW4gZXx8Ik9QZXJzcGVjdGl2ZSJpbiBlfHwiTXNQZXJzcGVjdGl2ZSJpbiBlfHwicGVyc3BlY3RpdmUiaW4gZX0oKSxmbGV4Ym94OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLGE9ImFsaWduSXRlbXMgd2Via2l0QWxpZ25JdGVtcyB3ZWJraXRCb3hBbGlnbiBtc0ZsZXhBbGlnbiBtb3pCb3hBbGlnbiB3ZWJraXRGbGV4RGlyZWN0aW9uIG1zRmxleERpcmVjdGlvbiBtb3pCb3hEaXJlY3Rpb24gbW96Qm94T3JpZW50IHdlYmtpdEJveERpcmVjdGlvbiB3ZWJraXRCb3hPcmllbnQiLnNwbGl0KCIgIiksdD0wO3Q8YS5sZW5ndGg7dCsrKWlmKGFbdF1pbiBlKXJldHVybiEwfSgpLG9ic2VydmVyOmZ1bmN0aW9uKCl7cmV0dXJuIk11dGF0aW9uT2JzZXJ2ZXIiaW4gd2luZG93fHwiV2Via2l0TXV0YXRpb25PYnNlcnZlciJpbiB3aW5kb3d9KCkscGFzc2l2ZUxpc3RlbmVyOmZ1bmN0aW9uKCl7dmFyIGU9ITE7dHJ5e3ZhciBhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe2U9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlTGlzdGVuZXIiLG51bGwsYSl9Y2F0Y2goZSl7fXJldHVybiBlfSgpLGdlc3R1cmVzOmZ1bmN0aW9uKCl7cmV0dXJuIm9uZ2VzdHVyZXN0YXJ0ImluIHdpbmRvd30oKX0scGx1Z2luczp7fX07Zm9yKHZhciB0PShmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMsdD0wO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspYVt0XT1lW3RdO3JldHVybiBhLmxlbmd0aD1lLmxlbmd0aCx0aGlzfSxhPWZ1bmN0aW9uKGEsdCl7dmFyIHM9W10saT0wO2lmKGEmJiF0JiZhIGluc3RhbmNlb2YgZSlyZXR1cm4gYTtpZihhKWlmKCJzdHJpbmciPT10eXBlb2YgYSl7dmFyIHIsbixvPWEudHJpbSgpO2lmKG8uaW5kZXhPZigiPCIpPj0wJiZvLmluZGV4T2YoIj4iKT49MCl7dmFyIGw9ImRpdiI7Zm9yKDA9PT1vLmluZGV4T2YoIjxsaSIpJiYobD0idWwiKSwwPT09by5pbmRleE9mKCI8dHIiKSYmKGw9InRib2R5IiksMCE9PW8uaW5kZXhPZigiPHRkIikmJjAhPT1vLmluZGV4T2YoIjx0aCIpfHwobD0idHIiKSwwPT09by5pbmRleE9mKCI8dGJvZHkiKSYmKGw9InRhYmxlIiksMD09PW8uaW5kZXhPZigiPG9wdGlvbiIpJiYobD0ic2VsZWN0Iiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGwpLG4uaW5uZXJIVE1MPWEsaT0wO2k8bi5jaGlsZE5vZGVzLmxlbmd0aDtpKyspcy5wdXNoKG4uY2hpbGROb2Rlc1tpXSl9ZWxzZSBmb3Iocj10fHwiIyIhPT1hWzBdfHxhLm1hdGNoKC9bIC48Pjp+XS8pPyh0fHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbChhKTpbZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5zcGxpdCgiIyIpWzFdKV0saT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0mJnMucHVzaChyW2ldKX1lbHNlIGlmKGEubm9kZVR5cGV8fGE9PT13aW5kb3d8fGE9PT1kb2N1bWVudClzLnB1c2goYSk7ZWxzZSBpZihhLmxlbmd0aD4wJiZhWzBdLm5vZGVUeXBlKWZvcihpPTA7aTxhLmxlbmd0aDtpKyspcy5wdXNoKGFbaV0pO3JldHVybiBuZXcgZShzKX07cmV0dXJuIGUucHJvdG90eXBlPXthZGRDbGFzczpmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzO2Zvcih2YXIgYT1lLnNwbGl0KCIgIiksdD0wO3Q8YS5sZW5ndGg7dCsrKWZvcih2YXIgcz0wO3M8dGhpcy5sZW5ndGg7cysrKXRoaXNbc10uY2xhc3NMaXN0LmFkZChhW3RdKTtyZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oZSl7Zm9yKHZhciBhPWUuc3BsaXQoIiAiKSx0PTA7dDxhLmxlbmd0aDt0KyspZm9yKHZhciBzPTA7czx0aGlzLmxlbmd0aDtzKyspdGhpc1tzXS5jbGFzc0xpc3QucmVtb3ZlKGFbdF0pO3JldHVybiB0aGlzfSxoYXNDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4hIXRoaXNbMF0mJnRoaXNbMF0uY2xhc3NMaXN0LmNvbnRhaW5zKGUpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihlKXtmb3IodmFyIGE9ZS5zcGxpdCgiICIpLHQ9MDt0PGEubGVuZ3RoO3QrKylmb3IodmFyIHM9MDtzPHRoaXMubGVuZ3RoO3MrKyl0aGlzW3NdLmNsYXNzTGlzdC50b2dnbGUoYVt0XSk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24oZSxhKXtpZigxPT09YXJndW1lbnRzLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiB0aGlzWzBdP3RoaXNbMF0uZ2V0QXR0cmlidXRlKGUpOnZvaWQgMDtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKylpZigyPT09YXJndW1lbnRzLmxlbmd0aCl0aGlzW3RdLnNldEF0dHJpYnV0ZShlLGEpO2Vsc2UgZm9yKHZhciBzIGluIGUpdGhpc1t0XVtzXT1lW3NdLHRoaXNbdF0uc2V0QXR0cmlidXRlKHMsZVtzXSk7cmV0dXJuIHRoaXN9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspdGhpc1thXS5yZW1vdmVBdHRyaWJ1dGUoZSk7cmV0dXJuIHRoaXN9LGRhdGE6ZnVuY3Rpb24oZSxhKXtpZih2b2lkIDAhPT1hKXtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM9dGhpc1t0XTtzLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2V8fChzLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2U9e30pLHMuZG9tN0VsZW1lbnREYXRhU3RvcmFnZVtlXT1hfXJldHVybiB0aGlzfWlmKHRoaXNbMF0pe3ZhciBpPXRoaXNbMF0uZ2V0QXR0cmlidXRlKCJkYXRhLSIrZSk7cmV0dXJuIGk/aTp0aGlzWzBdLmRvbTdFbGVtZW50RGF0YVN0b3JhZ2UmJmUgaW4gdGhpc1swXS5kb203RWxlbWVudERhdGFTdG9yYWdlP3RoaXNbMF0uZG9tN0VsZW1lbnREYXRhU3RvcmFnZVtlXTp2b2lkIDB9fSx0cmFuc2Zvcm06ZnVuY3Rpb24oZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciB0PXRoaXNbYV0uc3R5bGU7dC53ZWJraXRUcmFuc2Zvcm09dC5Nc1RyYW5zZm9ybT10Lm1zVHJhbnNmb3JtPXQuTW96VHJhbnNmb3JtPXQuT1RyYW5zZm9ybT10LnRyYW5zZm9ybT1lfXJldHVybiB0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUpeyJzdHJpbmciIT10eXBlb2YgZSYmKGUrPSJtcyIpO2Zvcih2YXIgYT0wO2E8dGhpcy5sZW5ndGg7YSsrKXt2YXIgdD10aGlzW2FdLnN0eWxlO3Qud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uPXQuTXNUcmFuc2l0aW9uRHVyYXRpb249dC5tc1RyYW5zaXRpb25EdXJhdGlvbj10Lk1velRyYW5zaXRpb25EdXJhdGlvbj10Lk9UcmFuc2l0aW9uRHVyYXRpb249dC50cmFuc2l0aW9uRHVyYXRpb249ZX1yZXR1cm4gdGhpc30sb246ZnVuY3Rpb24oZSx0LHMsaSl7ZnVuY3Rpb24gcihlKXt2YXIgaT1lLnRhcmdldDtpZihhKGkpLmlzKHQpKXMuY2FsbChpLGUpO2Vsc2UgZm9yKHZhciByPWEoaSkucGFyZW50cygpLG49MDtuPHIubGVuZ3RoO24rKylhKHJbbl0pLmlzKHQpJiZzLmNhbGwocltuXSxlKX12YXIgbixvLGw9ZS5zcGxpdCgiICIpO2ZvcihuPTA7bjx0aGlzLmxlbmd0aDtuKyspaWYoImZ1bmN0aW9uIj09dHlwZW9mIHR8fHQ9PT0hMSlmb3IoImZ1bmN0aW9uIj09dHlwZW9mIHQmJihzPWFyZ3VtZW50c1sxXSxpPWFyZ3VtZW50c1syXXx8ITEpLG89MDtvPGwubGVuZ3RoO28rKyl0aGlzW25dLmFkZEV2ZW50TGlzdGVuZXIobFtvXSxzLGkpO2Vsc2UgZm9yKG89MDtvPGwubGVuZ3RoO28rKyl0aGlzW25dLmRvbTdMaXZlTGlzdGVuZXJzfHwodGhpc1tuXS5kb203TGl2ZUxpc3RlbmVycz1bXSksdGhpc1tuXS5kb203TGl2ZUxpc3RlbmVycy5wdXNoKHtsaXN0ZW5lcjpzLGxpdmVMaXN0ZW5lcjpyfSksdGhpc1tuXS5hZGRFdmVudExpc3RlbmVyKGxbb10scixpKTtyZXR1cm4gdGhpc30sb2ZmOmZ1bmN0aW9uKGUsYSx0LHMpe2Zvcih2YXIgaT1lLnNwbGl0KCIgIikscj0wO3I8aS5sZW5ndGg7cisrKWZvcih2YXIgbj0wO248dGhpcy5sZW5ndGg7bisrKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhfHxhPT09ITEpImZ1bmN0aW9uIj09dHlwZW9mIGEmJih0PWFyZ3VtZW50c1sxXSxzPWFyZ3VtZW50c1syXXx8ITEpLHRoaXNbbl0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihpW3JdLHQscyk7ZWxzZSBpZih0aGlzW25dLmRvbTdMaXZlTGlzdGVuZXJzKWZvcih2YXIgbz0wO288dGhpc1tuXS5kb203TGl2ZUxpc3RlbmVycy5sZW5ndGg7bysrKXRoaXNbbl0uZG9tN0xpdmVMaXN0ZW5lcnNbb10ubGlzdGVuZXI9PT10JiZ0aGlzW25dLnJlbW92ZUV2ZW50TGlzdGVuZXIoaVtyXSx0aGlzW25dLmRvbTdMaXZlTGlzdGVuZXJzW29dLmxpdmVMaXN0ZW5lcixzKTtyZXR1cm4gdGhpc30sb25jZTpmdW5jdGlvbihlLGEsdCxzKXtmdW5jdGlvbiBpKG4pe3Qobiksci5vZmYoZSxhLGkscyl9dmFyIHI9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YgYSYmKGE9ITEsdD1hcmd1bWVudHNbMV0scz1hcmd1bWVudHNbMl0pLHIub24oZSxhLGkscyl9LHRyaWdnZXI6ZnVuY3Rpb24oZSxhKXtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM7dHJ5e3M9bmV3IHdpbmRvdy5DdXN0b21FdmVudChlLHtkZXRhaWw6YSxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KX1jYXRjaCh0KXtzPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLHMuaW5pdEV2ZW50KGUsITAsITApLHMuZGV0YWlsPWF9dGhpc1t0XS5kaXNwYXRjaEV2ZW50KHMpfXJldHVybiB0aGlzfSx0cmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGEocil7aWYoci50YXJnZXQ9PT10aGlzKWZvcihlLmNhbGwodGhpcyxyKSx0PTA7dDxzLmxlbmd0aDt0KyspaS5vZmYoc1t0XSxhKX12YXIgdCxzPVsid2Via2l0VHJhbnNpdGlvbkVuZCIsInRyYW5zaXRpb25lbmQiLCJvVHJhbnNpdGlvbkVuZCIsIk1TVHJhbnNpdGlvbkVuZCIsIm1zVHJhbnNpdGlvbkVuZCJdLGk9dGhpcztpZihlKWZvcih0PTA7dDxzLmxlbmd0aDt0KyspaS5vbihzW3RdLGEpO3JldHVybiB0aGlzfSx3aWR0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzWzBdPT09d2luZG93P3dpbmRvdy5pbm5lcldpZHRoOnRoaXMubGVuZ3RoPjA/cGFyc2VGbG9hdCh0aGlzLmNzcygid2lkdGgiKSk6bnVsbH0sb3V0ZXJXaWR0aDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5sZW5ndGg+MD9lP3RoaXNbMF0ub2Zmc2V0V2lkdGgrcGFyc2VGbG9hdCh0aGlzLmNzcygibWFyZ2luLXJpZ2h0IikpK3BhcnNlRmxvYXQodGhpcy5jc3MoIm1hcmdpbi1sZWZ0IikpOnRoaXNbMF0ub2Zmc2V0V2lkdGg6bnVsbH0saGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbMF09PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMubGVuZ3RoPjA/cGFyc2VGbG9hdCh0aGlzLmNzcygiaGVpZ2h0IikpOm51bGx9LG91dGVySGVpZ2h0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxlbmd0aD4wP2U/dGhpc1swXS5vZmZzZXRIZWlnaHQrcGFyc2VGbG9hdCh0aGlzLmNzcygibWFyZ2luLXRvcCIpKStwYXJzZUZsb2F0KHRoaXMuY3NzKCJtYXJnaW4tYm90dG9tIikpOnRoaXNbMF0ub2Zmc2V0SGVpZ2h0Om51bGx9LG9mZnNldDpmdW5jdGlvbigpe2lmKHRoaXMubGVuZ3RoPjApe3ZhciBlPXRoaXNbMF0sYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ9ZG9jdW1lbnQuYm9keSxzPWUuY2xpZW50VG9wfHx0LmNsaWVudFRvcHx8MCxpPWUuY2xpZW50TGVmdHx8dC5jbGllbnRMZWZ0fHwwLHI9d2luZG93LnBhZ2VZT2Zmc2V0fHxlLnNjcm9sbFRvcCxuPXdpbmRvdy5wYWdlWE9mZnNldHx8ZS5zY3JvbGxMZWZ0O3JldHVybnt0b3A6YS50b3Arci1zLGxlZnQ6YS5sZWZ0K24taX19cmV0dXJuIG51bGx9LGNzczpmdW5jdGlvbihlLGEpe3ZhciB0O2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpe2Zvcih0PTA7dDx0aGlzLmxlbmd0aDt0KyspZm9yKHZhciBzIGluIGUpdGhpc1t0XS5zdHlsZVtzXT1lW3NdO3JldHVybiB0aGlzfWlmKHRoaXNbMF0pcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXNbMF0sbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1pZigyPT09YXJndW1lbnRzLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlKXtmb3IodD0wO3Q8dGhpcy5sZW5ndGg7dCsrKXRoaXNbdF0uc3R5bGVbZV09YTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpc30sZWFjaDpmdW5jdGlvbihlKXtmb3IodmFyIGE9MDthPHRoaXMubGVuZ3RoO2ErKyllLmNhbGwodGhpc1thXSxhLHRoaXNbYV0pO3JldHVybiB0aGlzfSxodG1sOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbMF0/dGhpc1swXS5pbm5lckhUTUw6dm9pZCAwO2Zvcih2YXIgYT0wO2E8dGhpcy5sZW5ndGg7YSsrKXRoaXNbYV0uaW5uZXJIVE1MPWU7cmV0dXJuIHRoaXN9LHRleHQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSlyZXR1cm4gdGhpc1swXT90aGlzWzBdLnRleHRDb250ZW50LnRyaW0oKTpudWxsO2Zvcih2YXIgYT0wO2E8dGhpcy5sZW5ndGg7YSsrKXRoaXNbYV0udGV4dENvbnRlbnQ9ZTtyZXR1cm4gdGhpc30saXM6ZnVuY3Rpb24odCl7aWYoIXRoaXNbMF0pcmV0dXJuITE7dmFyIHMsaTtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciByPXRoaXNbMF07aWYocj09PWRvY3VtZW50KXJldHVybiB0PT09ZG9jdW1lbnQ7aWYocj09PXdpbmRvdylyZXR1cm4gdD09PXdpbmRvdztpZihyLm1hdGNoZXMpcmV0dXJuIHIubWF0Y2hlcyh0KTtpZihyLndlYmtpdE1hdGNoZXNTZWxlY3RvcilyZXR1cm4gci53ZWJraXRNYXRjaGVzU2VsZWN0b3IodCk7aWYoci5tb3pNYXRjaGVzU2VsZWN0b3IpcmV0dXJuIHIubW96TWF0Y2hlc1NlbGVjdG9yKHQpO2lmKHIubXNNYXRjaGVzU2VsZWN0b3IpcmV0dXJuIHIubXNNYXRjaGVzU2VsZWN0b3IodCk7Zm9yKHM9YSh0KSxpPTA7aTxzLmxlbmd0aDtpKyspaWYoc1tpXT09PXRoaXNbMF0pcmV0dXJuITA7cmV0dXJuITF9aWYodD09PWRvY3VtZW50KXJldHVybiB0aGlzWzBdPT09ZG9jdW1lbnQ7aWYodD09PXdpbmRvdylyZXR1cm4gdGhpc1swXT09PXdpbmRvdztpZih0Lm5vZGVUeXBlfHx0IGluc3RhbmNlb2YgZSl7Zm9yKHM9dC5ub2RlVHlwZT9bdF06dCxpPTA7aTxzLmxlbmd0aDtpKyspaWYoc1tpXT09PXRoaXNbMF0pcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITF9LGluZGV4OmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7Zm9yKHZhciBlPXRoaXNbMF0sYT0wO251bGwhPT0oZT1lLnByZXZpb3VzU2libGluZyk7KTE9PT1lLm5vZGVUeXBlJiZhKys7cmV0dXJuIGF9fSxlcTpmdW5jdGlvbihhKXtpZih2b2lkIDA9PT1hKXJldHVybiB0aGlzO3ZhciB0LHM9dGhpcy5sZW5ndGg7cmV0dXJuIGE+cy0xP25ldyBlKFtdKTphPDA/KHQ9cythLG5ldyBlKHQ8MD9bXTpbdGhpc1t0XV0pKTpuZXcgZShbdGhpc1thXV0pfSxhcHBlbmQ6ZnVuY3Rpb24oYSl7dmFyIHQscztmb3IodD0wO3Q8dGhpcy5sZW5ndGg7dCsrKWlmKCJzdHJpbmciPT10eXBlb2YgYSl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGkuaW5uZXJIVE1MPWE7aS5maXJzdENoaWxkOyl0aGlzW3RdLmFwcGVuZENoaWxkKGkuZmlyc3RDaGlsZCl9ZWxzZSBpZihhIGluc3RhbmNlb2YgZSlmb3Iocz0wO3M8YS5sZW5ndGg7cysrKXRoaXNbdF0uYXBwZW5kQ2hpbGQoYVtzXSk7ZWxzZSB0aGlzW3RdLmFwcGVuZENoaWxkKGEpO3JldHVybiB0aGlzfSxwcmVwZW5kOmZ1bmN0aW9uKGEpe3ZhciB0LHM7Zm9yKHQ9MDt0PHRoaXMubGVuZ3RoO3QrKylpZigic3RyaW5nIj09dHlwZW9mIGEpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihpLmlubmVySFRNTD1hLHM9aS5jaGlsZE5vZGVzLmxlbmd0aC0xO3M+PTA7cy0tKXRoaXNbdF0uaW5zZXJ0QmVmb3JlKGkuY2hpbGROb2Rlc1tzXSx0aGlzW3RdLmNoaWxkTm9kZXNbMF0pfWVsc2UgaWYoYSBpbnN0YW5jZW9mIGUpZm9yKHM9MDtzPGEubGVuZ3RoO3MrKyl0aGlzW3RdLmluc2VydEJlZm9yZShhW3NdLHRoaXNbdF0uY2hpbGROb2Rlc1swXSk7ZWxzZSB0aGlzW3RdLmluc2VydEJlZm9yZShhLHRoaXNbdF0uY2hpbGROb2Rlc1swXSk7cmV0dXJuIHRoaXN9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9YShlKSxzPTA7czx0aGlzLmxlbmd0aDtzKyspaWYoMT09PXQubGVuZ3RoKXRbMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpc1tzXSx0WzBdKTtlbHNlIGlmKHQubGVuZ3RoPjEpZm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspdFtpXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzW3NdLmNsb25lTm9kZSghMCksdFtpXSl9LGluc2VydEFmdGVyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hKGUpLHM9MDtzPHRoaXMubGVuZ3RoO3MrKylpZigxPT09dC5sZW5ndGgpdFswXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzW3NdLHRbMF0ubmV4dFNpYmxpbmcpO2Vsc2UgaWYodC5sZW5ndGg+MSlmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl0W2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXNbc10uY2xvbmVOb2RlKCEwKSx0W2ldLm5leHRTaWJsaW5nKX0sbmV4dDpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5sZW5ndGg+MD90P3RoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nJiZhKHRoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nKS5pcyh0KT9bdGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmddOltdOnRoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nP1t0aGlzWzBdLm5leHRFbGVtZW50U2libGluZ106W106W10pfSxuZXh0QWxsOmZ1bmN0aW9uKHQpe3ZhciBzPVtdLGk9dGhpc1swXTtpZighaSlyZXR1cm4gbmV3IGUoW10pO2Zvcig7aS5uZXh0RWxlbWVudFNpYmxpbmc7KXt2YXIgcj1pLm5leHRFbGVtZW50U2libGluZzt0P2EocikuaXModCkmJnMucHVzaChyKTpzLnB1c2gociksaT1yfXJldHVybiBuZXcgZShzKX0scHJldjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5sZW5ndGg+MD90P3RoaXNbMF0ucHJldmlvdXNFbGVtZW50U2libGluZyYmYSh0aGlzWzBdLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLmlzKHQpP1t0aGlzWzBdLnByZXZpb3VzRWxlbWVudFNpYmxpbmddOltdOnRoaXNbMF0ucHJldmlvdXNFbGVtZW50U2libGluZz9bdGhpc1swXS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXTpbXTpbXSl9LHByZXZBbGw6ZnVuY3Rpb24odCl7dmFyIHM9W10saT10aGlzWzBdO2lmKCFpKXJldHVybiBuZXcgZShbXSk7Zm9yKDtpLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7KXt2YXIgcj1pLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7dD9hKHIpLmlzKHQpJiZzLnB1c2gocik6cy5wdXNoKHIpLGk9cn1yZXR1cm4gbmV3IGUocyl9LHBhcmVudDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scz0wO3M8dGhpcy5sZW5ndGg7cysrKWU/YSh0aGlzW3NdLnBhcmVudE5vZGUpLmlzKGUpJiZ0LnB1c2godGhpc1tzXS5wYXJlbnROb2RlKTp0LnB1c2godGhpc1tzXS5wYXJlbnROb2RlKTtyZXR1cm4gYShhLnVuaXF1ZSh0KSl9LHBhcmVudHM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHM9MDtzPHRoaXMubGVuZ3RoO3MrKylmb3IodmFyIGk9dGhpc1tzXS5wYXJlbnROb2RlO2k7KWU/YShpKS5pcyhlKSYmdC5wdXNoKGkpOnQucHVzaChpKSxpPWkucGFyZW50Tm9kZTtyZXR1cm4gYShhLnVuaXF1ZSh0KSl9LGZpbmQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciB0PVtdLHM9MDtzPHRoaXMubGVuZ3RoO3MrKylmb3IodmFyIGk9dGhpc1tzXS5xdWVyeVNlbGVjdG9yQWxsKGEpLHI9MDtyPGkubGVuZ3RoO3IrKyl0LnB1c2goaVtyXSk7cmV0dXJuIG5ldyBlKHQpfSxjaGlsZHJlbjpmdW5jdGlvbih0KXtmb3IodmFyIHM9W10saT0wO2k8dGhpcy5sZW5ndGg7aSsrKWZvcih2YXIgcj10aGlzW2ldLmNoaWxkTm9kZXMsbj0wO248ci5sZW5ndGg7bisrKXQ/MT09PXJbbl0ubm9kZVR5cGUmJmEocltuXSkuaXModCkmJnMucHVzaChyW25dKToxPT09cltuXS5ub2RlVHlwZSYmcy5wdXNoKHJbbl0pO3JldHVybiBuZXcgZShhLnVuaXF1ZShzKSl9LHJlbW92ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXRoaXNbZV0ucGFyZW50Tm9kZSYmdGhpc1tlXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXNbZV0pO3JldHVybiB0aGlzfSxhZGQ6ZnVuY3Rpb24oKXt2YXIgZSx0LHM9dGhpcztmb3IoZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBpPWEoYXJndW1lbnRzW2VdKTtmb3IodD0wO3Q8aS5sZW5ndGg7dCsrKXNbcy5sZW5ndGhdPWlbdF0scy5sZW5ndGgrK31yZXR1cm4gc319LGEuZm49ZS5wcm90b3R5cGUsYS51bmlxdWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciBhPVtdLHQ9MDt0PGUubGVuZ3RoO3QrKylhLmluZGV4T2YoZVt0XSk9PT0tMSYmYS5wdXNoKGVbdF0pO3JldHVybiBhfSxhfSgpKSxzPVsialF1ZXJ5IiwiWmVwdG8iLCJEb203Il0saT0wO2k8cy5sZW5ndGg7aSsrKXdpbmRvd1tzW2ldXSYmZnVuY3Rpb24oZSl7ZS5mbi5zd2lwZXI9ZnVuY3Rpb24odCl7dmFyIHM7cmV0dXJuIGUodGhpcykuZWFjaChmdW5jdGlvbigpe3ZhciBlPW5ldyBhKHRoaXMsdCk7c3x8KHM9ZSl9KSxzfX0od2luZG93W3NbaV1dKTt2YXIgcjtyPXZvaWQgMD09PXQ/d2luZG93LkRvbTd8fHdpbmRvdy5aZXB0b3x8d2luZG93LmpRdWVyeTp0LHImJigidHJhbnNpdGlvbkVuZCJpbiByLmZufHwoci5mbi50cmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGEocil7aWYoci50YXJnZXQ9PT10aGlzKWZvcihlLmNhbGwodGhpcyxyKSx0PTA7dDxzLmxlbmd0aDt0KyspaS5vZmYoc1t0XSxhKX12YXIgdCxzPVsid2Via2l0VHJhbnNpdGlvbkVuZCIsInRyYW5zaXRpb25lbmQiLCJvVHJhbnNpdGlvbkVuZCIsIk1TVHJhbnNpdGlvbkVuZCIsIm1zVHJhbnNpdGlvbkVuZCJdLGk9dGhpcztpZihlKWZvcih0PTA7dDxzLmxlbmd0aDt0KyspaS5vbihzW3RdLGEpO3JldHVybiB0aGlzfSksInRyYW5zZm9ybSJpbiByLmZufHwoci5mbi50cmFuc2Zvcm09ZnVuY3Rpb24oZSl7Zm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciB0PXRoaXNbYV0uc3R5bGU7dC53ZWJraXRUcmFuc2Zvcm09dC5Nc1RyYW5zZm9ybT10Lm1zVHJhbnNmb3JtPXQuTW96VHJhbnNmb3JtPXQuT1RyYW5zZm9ybT10LnRyYW5zZm9ybT1lfXJldHVybiB0aGlzfSksInRyYW5zaXRpb24iaW4gci5mbnx8KHIuZm4udHJhbnNpdGlvbj1mdW5jdGlvbihlKXsic3RyaW5nIiE9dHlwZW9mIGUmJihlKz0ibXMiKTtmb3IodmFyIGE9MDthPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHQ9dGhpc1thXS5zdHlsZTt0LndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbj10Lk1zVHJhbnNpdGlvbkR1cmF0aW9uPXQubXNUcmFuc2l0aW9uRHVyYXRpb249dC5Nb3pUcmFuc2l0aW9uRHVyYXRpb249dC5PVHJhbnNpdGlvbkR1cmF0aW9uPXQudHJhbnNpdGlvbkR1cmF0aW9uPWV9cmV0dXJuIHRoaXN9KSwib3V0ZXJXaWR0aCJpbiByLmZufHwoci5mbi5vdXRlcldpZHRoPWZ1bmN0aW9uKGUpewpyZXR1cm4gdGhpcy5sZW5ndGg+MD9lP3RoaXNbMF0ub2Zmc2V0V2lkdGgrcGFyc2VGbG9hdCh0aGlzLmNzcygibWFyZ2luLXJpZ2h0IikpK3BhcnNlRmxvYXQodGhpcy5jc3MoIm1hcmdpbi1sZWZ0IikpOnRoaXNbMF0ub2Zmc2V0V2lkdGg6bnVsbH0pKSx3aW5kb3cuU3dpcGVyPWF9KCksInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9d2luZG93LlN3aXBlcjoiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoW10sZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIHdpbmRvdy5Td2lwZXJ9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFwcy9zd2lwZXIubWluLmpzLm1hcAo="}},"time_used":987,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":976,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/js/ion.rangeSlider.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.861Z","timestamp":1785126645861,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/js/ion.rangeSlider.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 12162\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":80450,"size_decoded":12418,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"c576bfc92abc8d63bec07cda9f5748bf","sha1":"d8b2ced585cd98824ecd2273e0a5b16df5db7fc2","sha256":"1b1e2a0f3ea2d5cb3d7e8865457c5410563cbf768fc4e9bdc5bee0b53db77f93","sha512":"0391c91bca72bf181d1109b977de7bbe8aadc05e73aa4615b0af9d765dadbb51308a038b4fc4669e6298fdb63646e666ebbd691f3b356ba4888236a66c239542","ssdeep":"1536:1k9H0McKxsMdGo1yVruWLU1xdmchAxdmoVG6f:1NKxs+GohyVG6f","tlshash":"1b73fc0a1bfb2251c51360a85f8f020ab635921f5a07d9ac3d7dc3d45f9973862baf78","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T06:24:38.576957Z","times_seen":28,"resource_available":true,"data":"Ly8gSW9uLlJhbmdlU2xpZGVyCi8vIHZlcnNpb24gMi4xLjQgQnVpbGQ6IDM1NQovLyDCqSBEZW5pcyBJbmVzaGluLCAyMDE2Ci8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Jb25EZW4KLy8KLy8gUHJvamVjdCBwYWdlOiAgICBodHRwOi8vaW9uZGVuLmNvbS9hL3BsdWdpbnMvaW9uLnJhbmdlU2xpZGVyL2VuLmh0bWwKLy8gR2l0SHViIHBhZ2U6ICAgICBodHRwczovL2dpdGh1Yi5jb20vSW9uRGVuL2lvbi5yYW5nZVNsaWRlcgovLwovLyBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5jZToKLy8gaHR0cDovL2lvbmRlbi5jb20vYS9wbHVnaW5zL2xpY2VuY2UtZW4uaHRtbAovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCihmdW5jdGlvbiAoZmFjdG9yeSkgewogICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbJ2pxdWVyeSddLCBmdW5jdGlvbiAoJCkgewogICAgICAgICAgICBmYWN0b3J5KCQsIGRvY3VtZW50LCB3aW5kb3csIG5hdmlnYXRvcik7CiAgICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAgIGZhY3RvcnkoalF1ZXJ5LCBkb2N1bWVudCwgd2luZG93LCBuYXZpZ2F0b3IpOwogICAgfQp9IChmdW5jdGlvbiAoJCwgZG9jdW1lbnQsIHdpbmRvdywgbmF2aWdhdG9yLCB1bmRlZmluZWQpIHsKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gU2VydmljZQoKICAgIHZhciBwbHVnaW5fY291bnQgPSAwOwoKICAgIC8vIElFOCBmaXgKICAgIHZhciBpc19vbGRfaWUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciAgPSBuYXZpZ2F0b3IudXNlckFnZW50LAogICAgICAgICAgICByID0gL21zaWVcc1xkKy9pLAogICAgICAgICAgICB2OwogICAgICAgIGlmIChuLnNlYXJjaChyKSA+IDApIHsKICAgICAgICAgICAgdiA9IHIuZXhlYyhuKS50b1N0cmluZygpOwogICAgICAgICAgICB2ID0gdi5zcGxpdCgiICIpWzFdOwogICAgICAgICAgICBpZiAodiA8IDkpIHsKICAgICAgICAgICAgICAgICQoImh0bWwiKS5hZGRDbGFzcygibHQtaWU5Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9ICgpKTsKICAgIGlmICghRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQpIHsKICAgICAgICBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uIGJpbmQodGhhdCkgewoKICAgICAgICAgICAgdmFyIHRhcmdldCA9IHRoaXM7CiAgICAgICAgICAgIHZhciBzbGljZSA9IFtdLnNsaWNlOwoKICAgICAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSwKICAgICAgICAgICAgICAgIGJvdW5kID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIGJvdW5kKSB7CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IGZ1bmN0aW9uKCl7fTsKICAgICAgICAgICAgICAgICAgICAgICAgRi5wcm90b3R5cGUgPSB0YXJnZXQucHJvdG90eXBlOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZiA9IG5ldyBGKCk7CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGFyZ2V0LmFwcGx5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSkKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdChyZXN1bHQpID09PSByZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmFwcGx5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSkKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICByZXR1cm4gYm91bmQ7CiAgICAgICAgfTsKICAgIH0KICAgIGlmICghQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHsKICAgICAgICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uKHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCkgewogICAgICAgICAgICB2YXIgazsKICAgICAgICAgICAgaWYgKHRoaXMgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignInRoaXMiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgTyA9IE9iamVjdCh0aGlzKTsKICAgICAgICAgICAgdmFyIGxlbiA9IE8ubGVuZ3RoID4+PiAwOwogICAgICAgICAgICBpZiAobGVuID09PSAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG4gPSArZnJvbUluZGV4IHx8IDA7CiAgICAgICAgICAgIGlmIChNYXRoLmFicyhuKSA9PT0gSW5maW5pdHkpIHsKICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuID49IGxlbikgewogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGsgPSBNYXRoLm1heChuID49IDAgPyBuIDogbGVuIC0gTWF0aC5hYnMobiksIDApOwogICAgICAgICAgICB3aGlsZSAoayA8IGxlbikgewogICAgICAgICAgICAgICAgaWYgKGsgaW4gTyAmJiBPW2tdID09PSBzZWFyY2hFbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBrKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH07CiAgICB9CgoKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gVGVtcGxhdGUKCiAgICB2YXIgYmFzZV9odG1sID0KICAgICAgICAnPHNwYW4gY2xhc3M9ImlycyI+JyArCiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtbGluZSIgdGFiaW5kZXg9Ii0xIj48c3BhbiBjbGFzcz0iaXJzLWxpbmUtbGVmdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpcnMtbGluZS1taWQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaXJzLWxpbmUtcmlnaHQiPjwvc3Bhbj48L3NwYW4+JyArCiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtbWluIj4wPC9zcGFuPjxzcGFuIGNsYXNzPSJpcnMtbWF4Ij4xPC9zcGFuPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iaXJzLWZyb20iPjA8L3NwYW4+PHNwYW4gY2xhc3M9Imlycy10byI+MDwvc3Bhbj48c3BhbiBjbGFzcz0iaXJzLXNpbmdsZSI+MDwvc3Bhbj4nICsKICAgICAgICAnPC9zcGFuPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iaXJzLWdyaWQiPjwvc3Bhbj4nICsKICAgICAgICAnPHNwYW4gY2xhc3M9Imlycy1iYXIiPjwvc3Bhbj4nOwoKICAgIHZhciBzaW5nbGVfaHRtbCA9CiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtYmFyLWVkZ2UiPjwvc3Bhbj4nICsKICAgICAgICAnPHNwYW4gY2xhc3M9Imlycy1zaGFkb3cgc2hhZG93LXNpbmdsZSI+PC9zcGFuPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iaXJzLXNsaWRlciBzaW5nbGUiPjwvc3Bhbj4nOwoKICAgIHZhciBkb3VibGVfaHRtbCA9CiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtc2hhZG93IHNoYWRvdy1mcm9tIj48L3NwYW4+JyArCiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtc2hhZG93IHNoYWRvdy10byI+PC9zcGFuPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iaXJzLXNsaWRlciBmcm9tIj48L3NwYW4+JyArCiAgICAgICAgJzxzcGFuIGNsYXNzPSJpcnMtc2xpZGVyIHRvIj48L3NwYW4+JzsKCiAgICB2YXIgZGlzYWJsZV9odG1sID0KICAgICAgICAnPHNwYW4gY2xhc3M9Imlycy1kaXNhYmxlLW1hc2siPjwvc3Bhbj4nOwoKCgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIENvcmUKCiAgICAvKioKICAgICAqIE1haW4gcGx1Z2luIGNvbnN0cnVjdG9yCiAgICAgKgogICAgICogQHBhcmFtIGlucHV0IHtPYmplY3R9IGxpbmsgdG8gYmFzZSBpbnB1dCBlbGVtZW50CiAgICAgKiBAcGFyYW0gb3B0aW9ucyB7T2JqZWN0fSBzbGlkZXIgY29uZmlnCiAgICAgKiBAcGFyYW0gcGx1Z2luX2NvdW50IHtOdW1iZXJ9CiAgICAgKiBAY29uc3RydWN0b3IKICAgICAqLwogICAgdmFyIElvblJhbmdlU2xpZGVyID0gZnVuY3Rpb24gKGlucHV0LCBvcHRpb25zLCBwbHVnaW5fY291bnQpIHsKICAgICAgICB0aGlzLlZFUlNJT04gPSAiMi4xLjQiOwogICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDsKICAgICAgICB0aGlzLnBsdWdpbl9jb3VudCA9IHBsdWdpbl9jb3VudDsKICAgICAgICB0aGlzLmN1cnJlbnRfcGx1Z2luID0gMDsKICAgICAgICB0aGlzLmNhbGNfY291bnQgPSAwOwogICAgICAgIHRoaXMudXBkYXRlX3RtID0gMDsKICAgICAgICB0aGlzLm9sZF9mcm9tID0gMDsKICAgICAgICB0aGlzLm9sZF90byA9IDA7CiAgICAgICAgdGhpcy5vbGRfbWluX2ludGVydmFsID0gbnVsbDsKICAgICAgICB0aGlzLnJhZl9pZCA9IG51bGw7CiAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlOwogICAgICAgIHRoaXMuZm9yY2VfcmVkcmF3ID0gZmFsc2U7CiAgICAgICAgdGhpcy5ub19kaWFwYXNvbiA9IGZhbHNlOwogICAgICAgIHRoaXMuaXNfa2V5ID0gZmFsc2U7CiAgICAgICAgdGhpcy5pc191cGRhdGUgPSBmYWxzZTsKICAgICAgICB0aGlzLmlzX3N0YXJ0ID0gdHJ1ZTsKICAgICAgICB0aGlzLmlzX2ZpbmlzaCA9IGZhbHNlOwogICAgICAgIHRoaXMuaXNfYWN0aXZlID0gZmFsc2U7CiAgICAgICAgdGhpcy5pc19yZXNpemUgPSBmYWxzZTsKICAgICAgICB0aGlzLmlzX2NsaWNrID0gZmFsc2U7CgogICAgICAgIC8vIGNhY2hlIGZvciBsaW5rcyB0byBhbGwgRE9NIGVsZW1lbnRzCiAgICAgICAgdGhpcy4kY2FjaGUgPSB7CiAgICAgICAgICAgIHdpbjogJCh3aW5kb3cpLAogICAgICAgICAgICBib2R5OiAkKGRvY3VtZW50LmJvZHkpLAogICAgICAgICAgICBpbnB1dDogJChpbnB1dCksCiAgICAgICAgICAgIGNvbnQ6IG51bGwsCiAgICAgICAgICAgIHJzOiBudWxsLAogICAgICAgICAgICBtaW46IG51bGwsCiAgICAgICAgICAgIG1heDogbnVsbCwKICAgICAgICAgICAgZnJvbTogbnVsbCwKICAgICAgICAgICAgdG86IG51bGwsCiAgICAgICAgICAgIHNpbmdsZTogbnVsbCwKICAgICAgICAgICAgYmFyOiBudWxsLAogICAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgICBzX3NpbmdsZTogbnVsbCwKICAgICAgICAgICAgc19mcm9tOiBudWxsLAogICAgICAgICAgICBzX3RvOiBudWxsLAogICAgICAgICAgICBzaGFkX3NpbmdsZTogbnVsbCwKICAgICAgICAgICAgc2hhZF9mcm9tOiBudWxsLAogICAgICAgICAgICBzaGFkX3RvOiBudWxsLAogICAgICAgICAgICBlZGdlOiBudWxsLAogICAgICAgICAgICBncmlkOiBudWxsLAogICAgICAgICAgICBncmlkX2xhYmVsczogW10KICAgICAgICB9OwoKICAgICAgICAvLyBzdG9yYWdlIGZvciBtZWFzdXJlIHZhcmlhYmxlcwogICAgICAgIHRoaXMuY29vcmRzID0gewogICAgICAgICAgICAvLyBsZWZ0CiAgICAgICAgICAgIHhfZ2FwOiAwLAogICAgICAgICAgICB4X3BvaW50ZXI6IDAsCgogICAgICAgICAgICAvLyB3aWR0aAogICAgICAgICAgICB3X3JzOiAwLAogICAgICAgICAgICB3X3JzX29sZDogMCwKICAgICAgICAgICAgd19oYW5kbGU6IDAsCgogICAgICAgICAgICAvLyBwZXJjZW50cwogICAgICAgICAgICBwX2dhcDogMCwKICAgICAgICAgICAgcF9nYXBfbGVmdDogMCwKICAgICAgICAgICAgcF9nYXBfcmlnaHQ6IDAsCiAgICAgICAgICAgIHBfc3RlcDogMCwKICAgICAgICAgICAgcF9wb2ludGVyOiAwLAogICAgICAgICAgICBwX2hhbmRsZTogMCwKICAgICAgICAgICAgcF9zaW5nbGVfZmFrZTogMCwKICAgICAgICAgICAgcF9zaW5nbGVfcmVhbDogMCwKICAgICAgICAgICAgcF9mcm9tX2Zha2U6IDAsCiAgICAgICAgICAgIHBfZnJvbV9yZWFsOiAwLAogICAgICAgICAgICBwX3RvX2Zha2U6IDAsCiAgICAgICAgICAgIHBfdG9fcmVhbDogMCwKICAgICAgICAgICAgcF9iYXJfeDogMCwKICAgICAgICAgICAgcF9iYXJfdzogMCwKCiAgICAgICAgICAgIC8vIGdyaWQKICAgICAgICAgICAgZ3JpZF9nYXA6IDAsCiAgICAgICAgICAgIGJpZ19udW06IDAsCiAgICAgICAgICAgIGJpZzogW10sCiAgICAgICAgICAgIGJpZ193OiBbXSwKICAgICAgICAgICAgYmlnX3A6IFtdLAogICAgICAgICAgICBiaWdfeDogW10KICAgICAgICB9OwoKICAgICAgICAvLyBzdG9yYWdlIGZvciBsYWJlbHMgbWVhc3VyZSB2YXJpYWJsZXMKICAgICAgICB0aGlzLmxhYmVscyA9IHsKICAgICAgICAgICAgLy8gd2lkdGgKICAgICAgICAgICAgd19taW46IDAsCiAgICAgICAgICAgIHdfbWF4OiAwLAogICAgICAgICAgICB3X2Zyb206IDAsCiAgICAgICAgICAgIHdfdG86IDAsCiAgICAgICAgICAgIHdfc2luZ2xlOiAwLAoKICAgICAgICAgICAgLy8gcGVyY2VudHMKICAgICAgICAgICAgcF9taW46IDAsCiAgICAgICAgICAgIHBfbWF4OiAwLAogICAgICAgICAgICBwX2Zyb21fZmFrZTogMCwKICAgICAgICAgICAgcF9mcm9tX2xlZnQ6IDAsCiAgICAgICAgICAgIHBfdG9fZmFrZTogMCwKICAgICAgICAgICAgcF90b19sZWZ0OiAwLAogICAgICAgICAgICBwX3NpbmdsZV9mYWtlOiAwLAogICAgICAgICAgICBwX3NpbmdsZV9sZWZ0OiAwCiAgICAgICAgfTsKCgoKICAgICAgICAvKioKICAgICAgICAgKiBnZXQgYW5kIHZhbGlkYXRlIGNvbmZpZwogICAgICAgICAqLwogICAgICAgIHZhciAkaW5wID0gdGhpcy4kY2FjaGUuaW5wdXQsCiAgICAgICAgICAgIHZhbCA9ICRpbnAucHJvcCgidmFsdWUiKSwKICAgICAgICAgICAgY29uZmlnLCBjb25maWdfZnJvbV9kYXRhLCBwcm9wOwoKICAgICAgICAvLyBkZWZhdWx0IGNvbmZpZwogICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgICAgdHlwZTogInNpbmdsZSIsCgogICAgICAgICAgICBtaW46IDEwLAogICAgICAgICAgICBtYXg6IDEwMCwKICAgICAgICAgICAgZnJvbTogbnVsbCwKICAgICAgICAgICAgdG86IG51bGwsCiAgICAgICAgICAgIHN0ZXA6IDEsCgogICAgICAgICAgICBtaW5faW50ZXJ2YWw6IDAsCiAgICAgICAgICAgIG1heF9pbnRlcnZhbDogMCwKICAgICAgICAgICAgZHJhZ19pbnRlcnZhbDogZmFsc2UsCgogICAgICAgICAgICB2YWx1ZXM6IFtdLAogICAgICAgICAgICBwX3ZhbHVlczogW10sCgogICAgICAgICAgICBmcm9tX2ZpeGVkOiBmYWxzZSwKICAgICAgICAgICAgZnJvbV9taW46IG51bGwsCiAgICAgICAgICAgIGZyb21fbWF4OiBudWxsLAogICAgICAgICAgICBmcm9tX3NoYWRvdzogZmFsc2UsCgogICAgICAgICAgICB0b19maXhlZDogZmFsc2UsCiAgICAgICAgICAgIHRvX21pbjogbnVsbCwKICAgICAgICAgICAgdG9fbWF4OiBudWxsLAogICAgICAgICAgICB0b19zaGFkb3c6IGZhbHNlLAoKICAgICAgICAgICAgcHJldHRpZnlfZW5hYmxlZDogdHJ1ZSwKICAgICAgICAgICAgcHJldHRpZnlfc2VwYXJhdG9yOiAiICIsCiAgICAgICAgICAgIHByZXR0aWZ5OiBudWxsLAoKICAgICAgICAgICAgZm9yY2VfZWRnZXM6IGZhbHNlLAoKICAgICAgICAgICAga2V5Ym9hcmQ6IGZhbHNlLAogICAgICAgICAgICBrZXlib2FyZF9zdGVwOiA1LAoKICAgICAgICAgICAgZ3JpZDogZmFsc2UsCiAgICAgICAgICAgIGdyaWRfbWFyZ2luOiB0cnVlLAogICAgICAgICAgICBncmlkX251bTogNCwKICAgICAgICAgICAgZ3JpZF9zbmFwOiBmYWxzZSwKCiAgICAgICAgICAgIGhpZGVfbWluX21heDogZmFsc2UsCiAgICAgICAgICAgIGhpZGVfZnJvbV90bzogZmFsc2UsCgogICAgICAgICAgICBwcmVmaXg6ICIiLAogICAgICAgICAgICBwb3N0Zml4OiAiIiwKICAgICAgICAgICAgbWF4X3Bvc3RmaXg6ICIiLAogICAgICAgICAgICBkZWNvcmF0ZV9ib3RoOiB0cnVlLAogICAgICAgICAgICB2YWx1ZXNfc2VwYXJhdG9yOiAiIOKAlCAiLAoKICAgICAgICAgICAgaW5wdXRfdmFsdWVzX3NlcGFyYXRvcjogIjsiLAoKICAgICAgICAgICAgZGlzYWJsZTogZmFsc2UsCgogICAgICAgICAgICBvblN0YXJ0OiBudWxsLAogICAgICAgICAgICBvbkNoYW5nZTogbnVsbCwKICAgICAgICAgICAgb25GaW5pc2g6IG51bGwsCiAgICAgICAgICAgIG9uVXBkYXRlOiBudWxsCiAgICAgICAgfTsKCgoKICAgICAgICAvLyBjb25maWcgZnJvbSBkYXRhLWF0dHJpYnV0ZXMgZXh0ZW5kcyBqcyBjb25maWcKICAgICAgICBjb25maWdfZnJvbV9kYXRhID0gewogICAgICAgICAgICB0eXBlOiAkaW5wLmRhdGEoInR5cGUiKSwKCiAgICAgICAgICAgIG1pbjogJGlucC5kYXRhKCJtaW4iKSwKICAgICAgICAgICAgbWF4OiAkaW5wLmRhdGEoIm1heCIpLAogICAgICAgICAgICBmcm9tOiAkaW5wLmRhdGEoImZyb20iKSwKICAgICAgICAgICAgdG86ICRpbnAuZGF0YSgidG8iKSwKICAgICAgICAgICAgc3RlcDogJGlucC5kYXRhKCJzdGVwIiksCgogICAgICAgICAgICBtaW5faW50ZXJ2YWw6ICRpbnAuZGF0YSgibWluSW50ZXJ2YWwiKSwKICAgICAgICAgICAgbWF4X2ludGVydmFsOiAkaW5wLmRhdGEoIm1heEludGVydmFsIiksCiAgICAgICAgICAgIGRyYWdfaW50ZXJ2YWw6ICRpbnAuZGF0YSgiZHJhZ0ludGVydmFsIiksCgogICAgICAgICAgICB2YWx1ZXM6ICRpbnAuZGF0YSgidmFsdWVzIiksCgogICAgICAgICAgICBmcm9tX2ZpeGVkOiAkaW5wLmRhdGEoImZyb21GaXhlZCIpLAogICAgICAgICAgICBmcm9tX21pbjogJGlucC5kYXRhKCJmcm9tTWluIiksCiAgICAgICAgICAgIGZyb21fbWF4OiAkaW5wLmRhdGEoImZyb21NYXgiKSwKICAgICAgICAgICAgZnJvbV9zaGFkb3c6ICRpbnAuZGF0YSgiZnJvbVNoYWRvdyIpLAoKICAgICAgICAgICAgdG9fZml4ZWQ6ICRpbnAuZGF0YSgidG9GaXhlZCIpLAogICAgICAgICAgICB0b19taW46ICRpbnAuZGF0YSgidG9NaW4iKSwKICAgICAgICAgICAgdG9fbWF4OiAkaW5wLmRhdGEoInRvTWF4IiksCiAgICAgICAgICAgIHRvX3NoYWRvdzogJGlucC5kYXRhKCJ0b1NoYWRvdyIpLAoKICAgICAgICAgICAgcHJldHRpZnlfZW5hYmxlZDogJGlucC5kYXRhKCJwcmV0dGlmeUVuYWJsZWQiKSwKICAgICAgICAgICAgcHJldHRpZnlfc2VwYXJhdG9yOiAkaW5wLmRhdGEoInByZXR0aWZ5U2VwYXJhdG9yIiksCgogICAgICAgICAgICBmb3JjZV9lZGdlczogJGlucC5kYXRhKCJmb3JjZUVkZ2VzIiksCgogICAgICAgICAgICBrZXlib2FyZDogJGlucC5kYXRhKCJrZXlib2FyZCIpLAogICAgICAgICAgICBrZXlib2FyZF9zdGVwOiAkaW5wLmRhdGEoImtleWJvYXJkU3RlcCIpLAoKICAgICAgICAgICAgZ3JpZDogJGlucC5kYXRhKCJncmlkIiksCiAgICAgICAgICAgIGdyaWRfbWFyZ2luOiAkaW5wLmRhdGEoImdyaWRNYXJnaW4iKSwKICAgICAgICAgICAgZ3JpZF9udW06ICRpbnAuZGF0YSgiZ3JpZE51bSIpLAogICAgICAgICAgICBncmlkX3NuYXA6ICRpbnAuZGF0YSgiZ3JpZFNuYXAiKSwKCiAgICAgICAgICAgIGhpZGVfbWluX21heDogJGlucC5kYXRhKCJoaWRlTWluTWF4IiksCiAgICAgICAgICAgIGhpZGVfZnJvbV90bzogJGlucC5kYXRhKCJoaWRlRnJvbVRvIiksCgogICAgICAgICAgICBwcmVmaXg6ICRpbnAuZGF0YSgicHJlZml4IiksCiAgICAgICAgICAgIHBvc3RmaXg6ICRpbnAuZGF0YSgicG9zdGZpeCIpLAogICAgICAgICAgICBtYXhfcG9zdGZpeDogJGlucC5kYXRhKCJtYXhQb3N0Zml4IiksCiAgICAgICAgICAgIGRlY29yYXRlX2JvdGg6ICRpbnAuZGF0YSgiZGVjb3JhdGVCb3RoIiksCiAgICAgICAgICAgIHZhbHVlc19zZXBhcmF0b3I6ICRpbnAuZGF0YSgidmFsdWVzU2VwYXJhdG9yIiksCgogICAgICAgICAgICBpbnB1dF92YWx1ZXNfc2VwYXJhdG9yOiAkaW5wLmRhdGEoImlucHV0VmFsdWVzU2VwYXJhdG9yIiksCgogICAgICAgICAgICBkaXNhYmxlOiAkaW5wLmRhdGEoImRpc2FibGUiKQogICAgICAgIH07CiAgICAgICAgY29uZmlnX2Zyb21fZGF0YS52YWx1ZXMgPSBjb25maWdfZnJvbV9kYXRhLnZhbHVlcyAmJiBjb25maWdfZnJvbV9kYXRhLnZhbHVlcy5zcGxpdCgiLCIpOwoKICAgICAgICBmb3IgKHByb3AgaW4gY29uZmlnX2Zyb21fZGF0YSkgewogICAgICAgICAgICBpZiAoY29uZmlnX2Zyb21fZGF0YS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgICAgICAgaWYgKCFjb25maWdfZnJvbV9kYXRhW3Byb3BdICYmIGNvbmZpZ19mcm9tX2RhdGFbcHJvcF0gIT09IDApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnX2Zyb21fZGF0YVtwcm9wXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCgoKICAgICAgICAvLyBpbnB1dCB2YWx1ZSBleHRlbmRzIGRlZmF1bHQgY29uZmlnCiAgICAgICAgaWYgKHZhbCkgewogICAgICAgICAgICB2YWwgPSB2YWwuc3BsaXQoY29uZmlnX2Zyb21fZGF0YS5pbnB1dF92YWx1ZXNfc2VwYXJhdG9yIHx8IG9wdGlvbnMuaW5wdXRfdmFsdWVzX3NlcGFyYXRvciB8fCAiOyIpOwoKICAgICAgICAgICAgaWYgKHZhbFswXSAmJiB2YWxbMF0gPT0gK3ZhbFswXSkgewogICAgICAgICAgICAgICAgdmFsWzBdID0gK3ZhbFswXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodmFsWzFdICYmIHZhbFsxXSA9PSArdmFsWzFdKSB7CiAgICAgICAgICAgICAgICB2YWxbMV0gPSArdmFsWzFdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnZhbHVlcyAmJiBvcHRpb25zLnZhbHVlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5mcm9tID0gdmFsWzBdICYmIG9wdGlvbnMudmFsdWVzLmluZGV4T2YodmFsWzBdKTsKICAgICAgICAgICAgICAgIGNvbmZpZy50byA9IHZhbFsxXSAmJiBvcHRpb25zLnZhbHVlcy5pbmRleE9mKHZhbFsxXSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25maWcuZnJvbSA9IHZhbFswXSAmJiArdmFsWzBdOwogICAgICAgICAgICAgICAgY29uZmlnLnRvID0gdmFsWzFdICYmICt2YWxbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CgoKCiAgICAgICAgLy8ganMgY29uZmlnIGV4dGVuZHMgZGVmYXVsdCBjb25maWcKICAgICAgICAkLmV4dGVuZChjb25maWcsIG9wdGlvbnMpOwoKCiAgICAgICAgLy8gZGF0YSBjb25maWcgZXh0ZW5kcyBjb25maWcKICAgICAgICAkLmV4dGVuZChjb25maWcsIGNvbmZpZ19mcm9tX2RhdGEpOwogICAgICAgIHRoaXMub3B0aW9ucyA9IGNvbmZpZzsKCgoKICAgICAgICAvLyB2YWxpZGF0ZSBjb25maWcsIHRvIGJlIHN1cmUgdGhhdCBhbGwgZGF0YSB0eXBlcyBhcmUgY29ycmVjdAogICAgICAgIHRoaXMudmFsaWRhdGUoKTsKCgoKICAgICAgICAvLyBkZWZhdWx0IHJlc3VsdCBvYmplY3QsIHJldHVybmVkIHRvIGNhbGxiYWNrcwogICAgICAgIHRoaXMucmVzdWx0ID0gewogICAgICAgICAgICBpbnB1dDogdGhpcy4kY2FjaGUuaW5wdXQsCiAgICAgICAgICAgIHNsaWRlcjogbnVsbCwKCiAgICAgICAgICAgIG1pbjogdGhpcy5vcHRpb25zLm1pbiwKICAgICAgICAgICAgbWF4OiB0aGlzLm9wdGlvbnMubWF4LAoKICAgICAgICAgICAgZnJvbTogdGhpcy5vcHRpb25zLmZyb20sCiAgICAgICAgICAgIGZyb21fcGVyY2VudDogMCwKICAgICAgICAgICAgZnJvbV92YWx1ZTogbnVsbCwKCiAgICAgICAgICAgIHRvOiB0aGlzLm9wdGlvbnMudG8sCiAgICAgICAgICAgIHRvX3BlcmNlbnQ6IDAsCiAgICAgICAgICAgIHRvX3ZhbHVlOiBudWxsCiAgICAgICAgfTsKCgoKICAgICAgICB0aGlzLmluaXQoKTsKICAgIH07CgogICAgSW9uUmFuZ2VTbGlkZXIucHJvdG90eXBlID0gewoKICAgICAgICAvKioKICAgICAgICAgKiBTdGFydHMgb3IgdXBkYXRlcyB0aGUgcGx1Z2luIGluc3RhbmNlCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gaXNfdXBkYXRlIHtib29sZWFufQogICAgICAgICAqLwogICAgICAgIGluaXQ6IGZ1bmN0aW9uIChpc191cGRhdGUpIHsKICAgICAgICAgICAgdGhpcy5ub19kaWFwYXNvbiA9IGZhbHNlOwogICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3N0ZXAgPSB0aGlzLmNvbnZlcnRUb1BlcmNlbnQodGhpcy5vcHRpb25zLnN0ZXAsIHRydWUpOwoKICAgICAgICAgICAgdGhpcy50YXJnZXQgPSAiYmFzZSI7CgogICAgICAgICAgICB0aGlzLnRvZ2dsZUlucHV0KCk7CiAgICAgICAgICAgIHRoaXMuYXBwZW5kKCk7CiAgICAgICAgICAgIHRoaXMuc2V0TWluTWF4KCk7CgogICAgICAgICAgICBpZiAoaXNfdXBkYXRlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlX3JlZHJhdyA9IHRydWU7CiAgICAgICAgICAgICAgICB0aGlzLmNhbGModHJ1ZSk7CgogICAgICAgICAgICAgICAgLy8gY2FsbGJhY2tzIGNhbGxlZAogICAgICAgICAgICAgICAgdGhpcy5jYWxsT25VcGRhdGUoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VfcmVkcmF3ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHRoaXMuY2FsYyh0cnVlKTsKCiAgICAgICAgICAgICAgICAvLyBjYWxsYmFja3MgY2FsbGVkCiAgICAgICAgICAgICAgICB0aGlzLmNhbGxPblN0YXJ0KCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmUoKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBBcHBlbmRzIHNsaWRlciB0ZW1wbGF0ZSB0byBhIERPTQogICAgICAgICAqLwogICAgICAgIGFwcGVuZDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY29udGFpbmVyX2h0bWwgPSAnPHNwYW4gY2xhc3M9ImlycyBqcy1pcnMtJyArIHRoaXMucGx1Z2luX2NvdW50ICsgJyI+PC9zcGFuPic7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0LmJlZm9yZShjb250YWluZXJfaHRtbCk7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0LnByb3AoInJlYWRvbmx5IiwgdHJ1ZSk7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmNvbnQgPSB0aGlzLiRjYWNoZS5pbnB1dC5wcmV2KCk7CiAgICAgICAgICAgIHRoaXMucmVzdWx0LnNsaWRlciA9IHRoaXMuJGNhY2hlLmNvbnQ7CgogICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250Lmh0bWwoYmFzZV9odG1sKTsKICAgICAgICAgICAgdGhpcy4kY2FjaGUucnMgPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5pcnMiKTsKICAgICAgICAgICAgdGhpcy4kY2FjaGUubWluID0gdGhpcy4kY2FjaGUuY29udC5maW5kKCIuaXJzLW1pbiIpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5tYXggPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5pcnMtbWF4Iik7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb20gPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5pcnMtZnJvbSIpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS50byA9IHRoaXMuJGNhY2hlLmNvbnQuZmluZCgiLmlycy10byIpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5zaW5nbGUgPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5pcnMtc2luZ2xlIik7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJhciA9IHRoaXMuJGNhY2hlLmNvbnQuZmluZCgiLmlycy1iYXIiKTsKICAgICAgICAgICAgdGhpcy4kY2FjaGUubGluZSA9IHRoaXMuJGNhY2hlLmNvbnQuZmluZCgiLmlycy1saW5lIik7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmdyaWQgPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5pcnMtZ3JpZCIpOwoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50eXBlID09PSAic2luZ2xlIikgewogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuY29udC5hcHBlbmQoc2luZ2xlX2h0bWwpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZWRnZSA9IHRoaXMuJGNhY2hlLmNvbnQuZmluZCgiLmlycy1iYXItZWRnZSIpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19zaW5nbGUgPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5zaW5nbGUiKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb21bMF0uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUudG9bMF0uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2hhZF9zaW5nbGUgPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5zaGFkb3ctc2luZ2xlIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250LmFwcGVuZChkb3VibGVfaHRtbCk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX2Zyb20gPSB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5mcm9tIik7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX3RvID0gdGhpcy4kY2FjaGUuY29udC5maW5kKCIudG8iKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNoYWRfZnJvbSA9IHRoaXMuJGNhY2hlLmNvbnQuZmluZCgiLnNoYWRvdy1mcm9tIik7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaGFkX3RvID0gdGhpcy4kY2FjaGUuY29udC5maW5kKCIuc2hhZG93LXRvIik7CgogICAgICAgICAgICAgICAgdGhpcy5zZXRUb3BIYW5kbGVyKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaGlkZV9mcm9tX3RvKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5mcm9tWzBdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50b1swXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlWzBdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuYXBwZW5kR3JpZCgpOwoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kaXNhYmxlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZERpc2FibGVNYXNrKCk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5pbnB1dFswXS5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250LnJlbW92ZUNsYXNzKCJpcnMtZGlzYWJsZWQiKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0WzBdLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aGlzLmJpbmRFdmVudHMoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kcmFnX2ludGVydmFsKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5iYXJbMF0uc3R5bGUuY3Vyc29yID0gImV3LXJlc2l6ZSI7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBEZXRlcm1pbmUgd2hpY2ggaGFuZGxlciBoYXMgYSBwcmlvcml0eQogICAgICAgICAqIHdvcmtzIG9ubHkgZm9yIGRvdWJsZSBzbGlkZXIgdHlwZQogICAgICAgICAqLwogICAgICAgIHNldFRvcEhhbmRsZXI6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG1pbiA9IHRoaXMub3B0aW9ucy5taW4sCiAgICAgICAgICAgICAgICBtYXggPSB0aGlzLm9wdGlvbnMubWF4LAogICAgICAgICAgICAgICAgZnJvbSA9IHRoaXMub3B0aW9ucy5mcm9tLAogICAgICAgICAgICAgICAgdG8gPSB0aGlzLm9wdGlvbnMudG87CgogICAgICAgICAgICBpZiAoZnJvbSA+IG1pbiAmJiB0byA9PT0gbWF4KSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX2Zyb20uYWRkQ2xhc3MoInR5cGVfbGFzdCIpOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRvIDwgbWF4KSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX3RvLmFkZENsYXNzKCJ0eXBlX2xhc3QiKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIERldGVybWluZSB3aGljaCBoYW5kbGVzIHdhcyBjbGlja2VkIGxhc3QKICAgICAgICAgKiBhbmQgd2hpY2ggaGFuZGxlciBzaG91bGQgaGF2ZSBob3ZlciBlZmZlY3QKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB0YXJnZXQge1N0cmluZ30KICAgICAgICAgKi8KICAgICAgICBjaGFuZ2VMZXZlbDogZnVuY3Rpb24gKHRhcmdldCkgewogICAgICAgICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgICAgICAgICAgICAgY2FzZSAic2luZ2xlIjoKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2dhcCA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5wX3BvaW50ZXIgLSB0aGlzLmNvb3Jkcy5wX3NpbmdsZV9mYWtlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImZyb20iOgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZ2FwID0gdGhpcy50b0ZpeGVkKHRoaXMuY29vcmRzLnBfcG9pbnRlciAtIHRoaXMuY29vcmRzLnBfZnJvbV9mYWtlKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX2Zyb20uYWRkQ2xhc3MoInN0YXRlX2hvdmVyIik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19mcm9tLmFkZENsYXNzKCJ0eXBlX2xhc3QiKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX3RvLnJlbW92ZUNsYXNzKCJ0eXBlX2xhc3QiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInRvIjoKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2dhcCA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5wX3BvaW50ZXIgLSB0aGlzLmNvb3Jkcy5wX3RvX2Zha2UpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNfdG8uYWRkQ2xhc3MoInN0YXRlX2hvdmVyIik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc190by5hZGRDbGFzcygidHlwZV9sYXN0Iik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19mcm9tLnJlbW92ZUNsYXNzKCJ0eXBlX2xhc3QiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImJvdGgiOgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZ2FwX2xlZnQgPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMucF9wb2ludGVyIC0gdGhpcy5jb29yZHMucF9mcm9tX2Zha2UpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZ2FwX3JpZ2h0ID0gdGhpcy50b0ZpeGVkKHRoaXMuY29vcmRzLnBfdG9fZmFrZSAtIHRoaXMuY29vcmRzLnBfcG9pbnRlcik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc190by5yZW1vdmVDbGFzcygidHlwZV9sYXN0Iik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19mcm9tLnJlbW92ZUNsYXNzKCJ0eXBlX2xhc3QiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIFRoZW4gc2xpZGVyIGlzIGRpc2FibGVkCiAgICAgICAgICogYXBwZW5kcyBleHRyYSBsYXllciB3aXRoIG9wYWNpdHkKICAgICAgICAgKi8KICAgICAgICBhcHBlbmREaXNhYmxlTWFzazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250LmFwcGVuZChkaXNhYmxlX2h0bWwpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250LmFkZENsYXNzKCJpcnMtZGlzYWJsZWQiKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBSZW1vdmUgc2xpZGVyIGluc3RhbmNlCiAgICAgICAgICogYW5kIHViaW5kIGFsbCBldmVudHMKICAgICAgICAgKi8KICAgICAgICByZW1vdmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy4kY2FjaGUuY29udC5yZW1vdmUoKTsKICAgICAgICAgICAgdGhpcy4kY2FjaGUuY29udCA9IG51bGw7CgogICAgICAgICAgICB0aGlzLiRjYWNoZS5saW5lLm9mZigia2V5ZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50KTsKCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJvZHkub2ZmKCJ0b3VjaG1vdmUuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCk7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJvZHkub2ZmKCJtb3VzZW1vdmUuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCk7CgogICAgICAgICAgICB0aGlzLiRjYWNoZS53aW4ub2ZmKCJ0b3VjaGVuZC5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50KTsKICAgICAgICAgICAgdGhpcy4kY2FjaGUud2luLm9mZigibW91c2V1cC5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50KTsKCiAgICAgICAgICAgIGlmIChpc19vbGRfaWUpIHsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJvZHkub2ZmKCJtb3VzZXVwLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuYm9keS5vZmYoIm1vdXNlbGVhdmUuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmdyaWRfbGFiZWxzID0gW107CiAgICAgICAgICAgIHRoaXMuY29vcmRzLmJpZyA9IFtdOwogICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdfdyA9IFtdOwogICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdfcCA9IFtdOwogICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdfeCA9IFtdOwoKICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZfaWQpOwogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIGJpbmQgYWxsIHNsaWRlciBldmVudHMKICAgICAgICAgKi8KICAgICAgICBiaW5kRXZlbnRzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLm5vX2RpYXBhc29uKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJvZHkub24oInRvdWNobW92ZS5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJNb3ZlLmJpbmQodGhpcykpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5ib2R5Lm9uKCJtb3VzZW1vdmUuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyTW92ZS5iaW5kKHRoaXMpKTsKCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLndpbi5vbigidG91Y2hlbmQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyVXAuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLndpbi5vbigibW91c2V1cC5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJVcC5iaW5kKHRoaXMpKTsKCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmxpbmUub24oInRvdWNoc3RhcnQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyQ2xpY2suYmluZCh0aGlzLCAiY2xpY2siKSk7CiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmxpbmUub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJDbGljay5iaW5kKHRoaXMsICJjbGljayIpKTsKCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZHJhZ19pbnRlcnZhbCAmJiB0aGlzLm9wdGlvbnMudHlwZSA9PT0gImRvdWJsZSIpIHsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmJhci5vbigidG91Y2hzdGFydC5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgImJvdGgiKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5iYXIub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgImJvdGgiKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5iYXIub24oInRvdWNoc3RhcnQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyQ2xpY2suYmluZCh0aGlzLCAiY2xpY2siKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5iYXIub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJDbGljay5iaW5kKHRoaXMsICJjbGljayIpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50eXBlID09PSAic2luZ2xlIikgewogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCAic2luZ2xlIikpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19zaW5nbGUub24oInRvdWNoc3RhcnQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyRG93bi5iaW5kKHRoaXMsICJzaW5nbGUiKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaGFkX3NpbmdsZS5vbigidG91Y2hzdGFydC5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJDbGljay5iaW5kKHRoaXMsICJjbGljayIpKTsKCiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaW5nbGUub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgInNpbmdsZSIpKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNfc2luZ2xlLm9uKCJtb3VzZWRvd24uaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyRG93bi5iaW5kKHRoaXMsICJzaW5nbGUiKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5lZGdlLm9uKCJtb3VzZWRvd24uaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyQ2xpY2suYmluZCh0aGlzLCAiY2xpY2siKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaGFkX3NpbmdsZS5vbigibW91c2Vkb3duLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckNsaWNrLmJpbmQodGhpcywgImNsaWNrIikpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCBudWxsKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaW5nbGUub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgbnVsbCkpOwoKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb20ub24oInRvdWNoc3RhcnQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyRG93bi5iaW5kKHRoaXMsICJmcm9tIikpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19mcm9tLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCAiZnJvbSIpKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnRvLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCAidG8iKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX3RvLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCAidG8iKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaGFkX2Zyb20ub24oInRvdWNoc3RhcnQuaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyQ2xpY2suYmluZCh0aGlzLCAiY2xpY2siKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zaGFkX3RvLm9uKCJ0b3VjaHN0YXJ0Lmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckNsaWNrLmJpbmQodGhpcywgImNsaWNrIikpOwoKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb20ub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgImZyb20iKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX2Zyb20ub24oIm1vdXNlZG93bi5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJEb3duLmJpbmQodGhpcywgImZyb20iKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50by5vbigibW91c2Vkb3duLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckRvd24uYmluZCh0aGlzLCAidG8iKSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX3RvLm9uKCJtb3VzZWRvd24uaXJzXyIgKyB0aGlzLnBsdWdpbl9jb3VudCwgdGhpcy5wb2ludGVyRG93bi5iaW5kKHRoaXMsICJ0byIpKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNoYWRfZnJvbS5vbigibW91c2Vkb3duLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckNsaWNrLmJpbmQodGhpcywgImNsaWNrIikpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2hhZF90by5vbigibW91c2Vkb3duLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlckNsaWNrLmJpbmQodGhpcywgImNsaWNrIikpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmtleWJvYXJkKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5saW5lLm9uKCJrZXlkb3duLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMua2V5LmJpbmQodGhpcywgImtleWJvYXJkIikpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNfb2xkX2llKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5ib2R5Lm9uKCJtb3VzZXVwLmlyc18iICsgdGhpcy5wbHVnaW5fY291bnQsIHRoaXMucG9pbnRlclVwLmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuYm9keS5vbigibW91c2VsZWF2ZS5pcnNfIiArIHRoaXMucGx1Z2luX2NvdW50LCB0aGlzLnBvaW50ZXJVcC5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIE1vdXNlbW92ZSBvciB0b3VjaG1vdmUKICAgICAgICAgKiBvbmx5IGZvciBoYW5kbGVycwogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIGUge09iamVjdH0gZXZlbnQgb2JqZWN0CiAgICAgICAgICovCiAgICAgICAgcG9pbnRlck1vdmU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5kcmFnZ2luZykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgeCA9IGUucGFnZVggfHwgZS5vcmlnaW5hbEV2ZW50LnRvdWNoZXMgJiYgZS5vcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF0ucGFnZVg7CiAgICAgICAgICAgIHRoaXMuY29vcmRzLnhfcG9pbnRlciA9IHggLSB0aGlzLmNvb3Jkcy54X2dhcDsKCiAgICAgICAgICAgIHRoaXMuY2FsYygpOwogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIE1vdXNldXAgb3IgdG91Y2hlbmQKICAgICAgICAgKiBvbmx5IGZvciBoYW5kbGVycwogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIGUge09iamVjdH0gZXZlbnQgb2JqZWN0CiAgICAgICAgICovCiAgICAgICAgcG9pbnRlclVwOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50X3BsdWdpbiAhPT0gdGhpcy5wbHVnaW5fY291bnQpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMuaXNfYWN0aXZlKSB7CiAgICAgICAgICAgICAgICB0aGlzLmlzX2FjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLiRjYWNoZS5jb250LmZpbmQoIi5zdGF0ZV9ob3ZlciIpLnJlbW92ZUNsYXNzKCJzdGF0ZV9ob3ZlciIpOwoKICAgICAgICAgICAgdGhpcy5mb3JjZV9yZWRyYXcgPSB0cnVlOwoKICAgICAgICAgICAgaWYgKGlzX29sZF9pZSkgewogICAgICAgICAgICAgICAgJCgiKiIpLnByb3AoInVuc2VsZWN0YWJsZSIsIGZhbHNlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZSgpOwogICAgICAgICAgICB0aGlzLnJlc3RvcmVPcmlnaW5hbE1pbkludGVydmFsKCk7CgogICAgICAgICAgICAvLyBjYWxsYmFja3MgY2FsbAogICAgICAgICAgICBpZiAoJC5jb250YWlucyh0aGlzLiRjYWNoZS5jb250WzBdLCBlLnRhcmdldCkgfHwgdGhpcy5kcmFnZ2luZykgewogICAgICAgICAgICAgICAgdGhpcy5pc19maW5pc2ggPSB0cnVlOwogICAgICAgICAgICAgICAgdGhpcy5jYWxsT25GaW5pc2goKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlOwogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIE1vdXNlZG93biBvciB0b3VjaHN0YXJ0CiAgICAgICAgICogb25seSBmb3IgaGFuZGxlcnMKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB0YXJnZXQge1N0cmluZ3xudWxsfQogICAgICAgICAqIEBwYXJhbSBlIHtPYmplY3R9IGV2ZW50IG9iamVjdAogICAgICAgICAqLwogICAgICAgIHBvaW50ZXJEb3duOiBmdW5jdGlvbiAodGFyZ2V0LCBlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgdmFyIHggPSBlLnBhZ2VYIHx8IGUub3JpZ2luYWxFdmVudC50b3VjaGVzICYmIGUub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdLnBhZ2VYOwogICAgICAgICAgICBpZiAoZS5idXR0b24gPT09IDIpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gImJvdGgiKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNldFRlbXBNaW5JbnRlcnZhbCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIXRhcmdldCkgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGhpcy50YXJnZXQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuY3VycmVudF9wbHVnaW4gPSB0aGlzLnBsdWdpbl9jb3VudDsKICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7CgogICAgICAgICAgICB0aGlzLmlzX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlOwoKICAgICAgICAgICAgdGhpcy5jb29yZHMueF9nYXAgPSB0aGlzLiRjYWNoZS5ycy5vZmZzZXQoKS5sZWZ0OwogICAgICAgICAgICB0aGlzLmNvb3Jkcy54X3BvaW50ZXIgPSB4IC0gdGhpcy5jb29yZHMueF9nYXA7CgogICAgICAgICAgICB0aGlzLmNhbGNQb2ludGVyUGVyY2VudCgpOwogICAgICAgICAgICB0aGlzLmNoYW5nZUxldmVsKHRhcmdldCk7CgogICAgICAgICAgICBpZiAoaXNfb2xkX2llKSB7CiAgICAgICAgICAgICAgICAkKCIqIikucHJvcCgidW5zZWxlY3RhYmxlIiwgdHJ1ZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmxpbmUudHJpZ2dlcigiZm9jdXMiKTsKCiAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmUoKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBNb3VzZWRvd24gb3IgdG91Y2hzdGFydAogICAgICAgICAqIGZvciBvdGhlciBzbGlkZXIgZWxlbWVudHMsIGxpa2UgZGlhcGFzb24gbGluZQogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHRhcmdldCB7U3RyaW5nfQogICAgICAgICAqIEBwYXJhbSBlIHtPYmplY3R9IGV2ZW50IG9iamVjdAogICAgICAgICAqLwogICAgICAgIHBvaW50ZXJDbGljazogZnVuY3Rpb24gKHRhcmdldCwgZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHZhciB4ID0gZS5wYWdlWCB8fCBlLm9yaWdpbmFsRXZlbnQudG91Y2hlcyAmJiBlLm9yaWdpbmFsRXZlbnQudG91Y2hlc1swXS5wYWdlWDsKICAgICAgICAgICAgaWYgKGUuYnV0dG9uID09PSAyKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuY3VycmVudF9wbHVnaW4gPSB0aGlzLnBsdWdpbl9jb3VudDsKICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7CgogICAgICAgICAgICB0aGlzLmlzX2NsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5jb29yZHMueF9nYXAgPSB0aGlzLiRjYWNoZS5ycy5vZmZzZXQoKS5sZWZ0OwogICAgICAgICAgICB0aGlzLmNvb3Jkcy54X3BvaW50ZXIgPSArKHggLSB0aGlzLmNvb3Jkcy54X2dhcCkudG9GaXhlZCgpOwoKICAgICAgICAgICAgdGhpcy5mb3JjZV9yZWRyYXcgPSB0cnVlOwogICAgICAgICAgICB0aGlzLmNhbGMoKTsKCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmxpbmUudHJpZ2dlcigiZm9jdXMiKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBLZXlib3JhcmQgY29udHJvbHMgZm9yIGZvY3VzZWQgc2xpZGVyCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IHtTdHJpbmd9CiAgICAgICAgICogQHBhcmFtIGUge09iamVjdH0gZXZlbnQgb2JqZWN0CiAgICAgICAgICogQHJldHVybnMge2Jvb2xlYW58dW5kZWZpbmVkfQogICAgICAgICAqLwogICAgICAgIGtleTogZnVuY3Rpb24gKHRhcmdldCwgZSkgewogICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50X3BsdWdpbiAhPT0gdGhpcy5wbHVnaW5fY291bnQgfHwgZS5hbHRLZXkgfHwgZS5jdHJsS2V5IHx8IGUuc2hpZnRLZXkgfHwgZS5tZXRhS2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHN3aXRjaCAoZS53aGljaCkgewogICAgICAgICAgICAgICAgY2FzZSA4MzogLy8gVwogICAgICAgICAgICAgICAgY2FzZSA2NTogLy8gQQogICAgICAgICAgICAgICAgY2FzZSA0MDogLy8gRE9XTgogICAgICAgICAgICAgICAgY2FzZSAzNzogLy8gTEVGVAogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVCeUtleShmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSA4NzogLy8gUwogICAgICAgICAgICAgICAgY2FzZSA2ODogLy8gRAogICAgICAgICAgICAgICAgY2FzZSAzODogLy8gVVAKICAgICAgICAgICAgICAgIGNhc2UgMzk6IC8vIFJJR0hUCiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUJ5S2V5KHRydWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBNb3ZlIGJ5IGtleS4gQmV0YQogICAgICAgICAqIEB0b2RvIHJlZmFjdG9yIHRoYW4gaGF2ZSBwbGVudHkgb2YgdGltZQogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHJpZ2h0IHtib29sZWFufSBkaXJlY3Rpb24gdG8gbW92ZQogICAgICAgICAqLwogICAgICAgIG1vdmVCeUtleTogZnVuY3Rpb24gKHJpZ2h0KSB7CiAgICAgICAgICAgIHZhciBwID0gdGhpcy5jb29yZHMucF9wb2ludGVyOwoKICAgICAgICAgICAgaWYgKHJpZ2h0KSB7CiAgICAgICAgICAgICAgICBwICs9IHRoaXMub3B0aW9ucy5rZXlib2FyZF9zdGVwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcCAtPSB0aGlzLm9wdGlvbnMua2V5Ym9hcmRfc3RlcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5jb29yZHMueF9wb2ludGVyID0gdGhpcy50b0ZpeGVkKHRoaXMuY29vcmRzLndfcnMgLyAxMDAgKiBwKTsKICAgICAgICAgICAgdGhpcy5pc19rZXkgPSB0cnVlOwogICAgICAgICAgICB0aGlzLmNhbGMoKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBTZXQgdmlzaWJpbGl0eSBhbmQgY29udGVudAogICAgICAgICAqIG9mIE1pbiBhbmQgTWF4IGxhYmVscwogICAgICAgICAqLwogICAgICAgIHNldE1pbk1heDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmhpZGVfbWluX21heCkgewogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUubWluWzBdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5tYXhbMF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5taW4uaHRtbCh0aGlzLmRlY29yYXRlKHRoaXMub3B0aW9ucy5wX3ZhbHVlc1t0aGlzLm9wdGlvbnMubWluXSkpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUubWF4Lmh0bWwodGhpcy5kZWNvcmF0ZSh0aGlzLm9wdGlvbnMucF92YWx1ZXNbdGhpcy5vcHRpb25zLm1heF0pKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1pbi5odG1sKHRoaXMuZGVjb3JhdGUodGhpcy5fcHJldHRpZnkodGhpcy5vcHRpb25zLm1pbiksIHRoaXMub3B0aW9ucy5taW4pKTsKICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1heC5odG1sKHRoaXMuZGVjb3JhdGUodGhpcy5fcHJldHRpZnkodGhpcy5vcHRpb25zLm1heCksIHRoaXMub3B0aW9ucy5tYXgpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5sYWJlbHMud19taW4gPSB0aGlzLiRjYWNoZS5taW4ub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgIHRoaXMubGFiZWxzLndfbWF4ID0gdGhpcy4kY2FjaGUubWF4Lm91dGVyV2lkdGgoZmFsc2UpOwogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIFRoZW4gZHJhZ2dpbmcgaW50ZXJ2YWwsIHByZXZlbnQgaW50ZXJ2YWwgY29sbGFwc2luZwogICAgICAgICAqIHVzaW5nIG1pbl9pbnRlcnZhbCBvcHRpb24KICAgICAgICAgKi8KICAgICAgICBzZXRUZW1wTWluSW50ZXJ2YWw6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGludGVydmFsID0gdGhpcy5yZXN1bHQudG8gLSB0aGlzLnJlc3VsdC5mcm9tOwoKICAgICAgICAgICAgaWYgKHRoaXMub2xkX21pbl9pbnRlcnZhbCA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy5vbGRfbWluX2ludGVydmFsID0gdGhpcy5vcHRpb25zLm1pbl9pbnRlcnZhbDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1pbl9pbnRlcnZhbCA9IGludGVydmFsOwogICAgICAgIH0sCgogICAgICAgIC8qKgogICAgICAgICAqIFJlc3RvcmUgbWluX2ludGVydmFsIG9wdGlvbiB0byBvcmlnaW5hbAogICAgICAgICAqLwogICAgICAgIHJlc3RvcmVPcmlnaW5hbE1pbkludGVydmFsOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLm9sZF9taW5faW50ZXJ2YWwgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5taW5faW50ZXJ2YWwgPSB0aGlzLm9sZF9taW5faW50ZXJ2YWw7CiAgICAgICAgICAgICAgICB0aGlzLm9sZF9taW5faW50ZXJ2YWwgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCgoKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgLy8gQ2FsY3VsYXRpb25zCgogICAgICAgIC8qKgogICAgICAgICAqIEFsbCBjYWxjdWxhdGlvbnMgYW5kIG1lYXN1cmVzIHN0YXJ0IGhlcmUKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1cGRhdGUge2Jvb2xlYW49fQogICAgICAgICAqLwogICAgICAgIGNhbGM6IGZ1bmN0aW9uICh1cGRhdGUpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5jYWxjX2NvdW50Kys7CgogICAgICAgICAgICBpZiAodGhpcy5jYWxjX2NvdW50ID09PSAxMCB8fCB1cGRhdGUpIHsKICAgICAgICAgICAgICAgIHRoaXMuY2FsY19jb3VudCA9IDA7CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy53X3JzID0gdGhpcy4kY2FjaGUucnMub3V0ZXJXaWR0aChmYWxzZSk7CgogICAgICAgICAgICAgICAgdGhpcy5jYWxjSGFuZGxlUGVyY2VudCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIXRoaXMuY29vcmRzLndfcnMpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5jYWxjUG9pbnRlclBlcmNlbnQoKTsKICAgICAgICAgICAgdmFyIGhhbmRsZV94ID0gdGhpcy5nZXRIYW5kbGVYKCk7CgogICAgICAgICAgICBpZiAodGhpcy50YXJnZXQgPT09ICJjbGljayIpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZ2FwID0gdGhpcy5jb29yZHMucF9oYW5kbGUgLyAyOwogICAgICAgICAgICAgICAgaGFuZGxlX3ggPSB0aGlzLmdldEhhbmRsZVgoKTsKCiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRyYWdfaW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9ICJib3RoX29uZSI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdGhpcy5jaG9vc2VIYW5kbGUoaGFuZGxlX3gpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBzd2l0Y2ggKHRoaXMudGFyZ2V0KSB7CiAgICAgICAgICAgICAgICBjYXNlICJiYXNlIjoKICAgICAgICAgICAgICAgICAgICB2YXIgdyA9ICh0aGlzLm9wdGlvbnMubWF4IC0gdGhpcy5vcHRpb25zLm1pbikgLyAxMDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGYgPSAodGhpcy5yZXN1bHQuZnJvbSAtIHRoaXMub3B0aW9ucy5taW4pIC8gdywKICAgICAgICAgICAgICAgICAgICAgICAgdCA9ICh0aGlzLnJlc3VsdC50byAtIHRoaXMub3B0aW9ucy5taW4pIC8gdzsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9zaW5nbGVfcmVhbCA9IHRoaXMudG9GaXhlZChmKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCA9IHRoaXMudG9GaXhlZChmKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLnRvRml4ZWQodCk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfc2luZ2xlX3JlYWwgPSB0aGlzLmNoZWNrRGlhcGFzb24odGhpcy5jb29yZHMucF9zaW5nbGVfcmVhbCwgdGhpcy5vcHRpb25zLmZyb21fbWluLCB0aGlzLm9wdGlvbnMuZnJvbV9tYXgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsID0gdGhpcy5jaGVja0RpYXBhc29uKHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsLCB0aGlzLm9wdGlvbnMuZnJvbV9taW4sIHRoaXMub3B0aW9ucy5mcm9tX21heCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19yZWFsID0gdGhpcy5jaGVja0RpYXBhc29uKHRoaXMuY29vcmRzLnBfdG9fcmVhbCwgdGhpcy5vcHRpb25zLnRvX21pbiwgdGhpcy5vcHRpb25zLnRvX21heCk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfc2luZ2xlX2Zha2UgPSB0aGlzLmNvbnZlcnRUb0Zha2VQZXJjZW50KHRoaXMuY29vcmRzLnBfc2luZ2xlX3JlYWwpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwoKICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgInNpbmdsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9tX2ZpeGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9zaW5nbGVfcmVhbCA9IHRoaXMuY29udmVydFRvUmVhbFBlcmNlbnQoaGFuZGxlX3gpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfc2luZ2xlX3JlYWwgPSB0aGlzLmNhbGNXaXRoU3RlcCh0aGlzLmNvb3Jkcy5wX3NpbmdsZV9yZWFsKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3NpbmdsZV9yZWFsID0gdGhpcy5jaGVja0RpYXBhc29uKHRoaXMuY29vcmRzLnBfc2luZ2xlX3JlYWwsIHRoaXMub3B0aW9ucy5mcm9tX21pbiwgdGhpcy5vcHRpb25zLmZyb21fbWF4KTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9zaW5nbGVfZmFrZSA9IHRoaXMuY29udmVydFRvRmFrZVBlcmNlbnQodGhpcy5jb29yZHMucF9zaW5nbGVfcmVhbCk7CgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgImZyb20iOgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZnJvbV9maXhlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsID0gdGhpcy5jb252ZXJ0VG9SZWFsUGVyY2VudChoYW5kbGVfeCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwgPSB0aGlzLmNhbGNXaXRoU3RlcCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsID4gdGhpcy5jb29yZHMucF90b19yZWFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsID0gdGhpcy5jb29yZHMucF90b19yZWFsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCA9IHRoaXMuY2hlY2tEaWFwYXNvbih0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCwgdGhpcy5vcHRpb25zLmZyb21fbWluLCB0aGlzLm9wdGlvbnMuZnJvbV9tYXgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsID0gdGhpcy5jaGVja01pbkludGVydmFsKHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsLCB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwsICJmcm9tIik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwgPSB0aGlzLmNoZWNrTWF4SW50ZXJ2YWwodGhpcy5jb29yZHMucF9mcm9tX3JlYWwsIHRoaXMuY29vcmRzLnBfdG9fcmVhbCwgImZyb20iKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX2Zha2UgPSB0aGlzLmNvbnZlcnRUb0Zha2VQZXJjZW50KHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsKTsKCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAidG8iOgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9fZml4ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLmNvbnZlcnRUb1JlYWxQZXJjZW50KGhhbmRsZV94KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLmNhbGNXaXRoU3RlcCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPCB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19yZWFsID0gdGhpcy5jaGVja0RpYXBhc29uKHRoaXMuY29vcmRzLnBfdG9fcmVhbCwgdGhpcy5vcHRpb25zLnRvX21pbiwgdGhpcy5vcHRpb25zLnRvX21heCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19yZWFsID0gdGhpcy5jaGVja01pbkludGVydmFsKHRoaXMuY29vcmRzLnBfdG9fcmVhbCwgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwsICJ0byIpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfdG9fcmVhbCA9IHRoaXMuY2hlY2tNYXhJbnRlcnZhbCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwsIHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsLCAidG8iKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwoKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICJib3RoIjoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZyb21fZml4ZWQgfHwgdGhpcy5vcHRpb25zLnRvX2ZpeGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3ggPSB0aGlzLnRvRml4ZWQoaGFuZGxlX3ggKyAodGhpcy5jb29yZHMucF9oYW5kbGUgKiAwLjEpKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwgPSB0aGlzLmNvbnZlcnRUb1JlYWxQZXJjZW50KGhhbmRsZV94KSAtIHRoaXMuY29vcmRzLnBfZ2FwX2xlZnQ7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwgPSB0aGlzLmNhbGNXaXRoU3RlcCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9mcm9tX3JlYWwgPSB0aGlzLmNoZWNrRGlhcGFzb24odGhpcy5jb29yZHMucF9mcm9tX3JlYWwsIHRoaXMub3B0aW9ucy5mcm9tX21pbiwgdGhpcy5vcHRpb25zLmZyb21fbWF4KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCA9IHRoaXMuY2hlY2tNaW5JbnRlcnZhbCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCwgdGhpcy5jb29yZHMucF90b19yZWFsLCAiZnJvbSIpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfdG9fcmVhbCA9IHRoaXMuY29udmVydFRvUmVhbFBlcmNlbnQoaGFuZGxlX3gpICsgdGhpcy5jb29yZHMucF9nYXBfcmlnaHQ7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19yZWFsID0gdGhpcy5jYWxjV2l0aFN0ZXAodGhpcy5jb29yZHMucF90b19yZWFsKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLmNoZWNrRGlhcGFzb24odGhpcy5jb29yZHMucF90b19yZWFsLCB0aGlzLm9wdGlvbnMudG9fbWluLCB0aGlzLm9wdGlvbnMudG9fbWF4KTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgPSB0aGlzLmNoZWNrTWluSW50ZXJ2YWwodGhpcy5jb29yZHMucF90b19yZWFsLCB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCwgInRvIik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwoKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICJib3RoX29uZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9tX2ZpeGVkIHx8IHRoaXMub3B0aW9ucy50b19maXhlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHZhciByZWFsX3ggPSB0aGlzLmNvbnZlcnRUb1JlYWxQZXJjZW50KGhhbmRsZV94KSwKICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSA9IHRoaXMucmVzdWx0LmZyb21fcGVyY2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgdG8gPSB0aGlzLnJlc3VsdC50b19wZXJjZW50LAogICAgICAgICAgICAgICAgICAgICAgICBmdWxsID0gdG8gLSBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICBoYWxmID0gZnVsbCAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19mcm9tID0gcmVhbF94IC0gaGFsZiwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3RvID0gcmVhbF94ICsgaGFsZjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld19mcm9tIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAgICBuZXdfZnJvbSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld190byA9IG5ld19mcm9tICsgZnVsbDsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChuZXdfdG8gPiAxMDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3RvID0gMTAwOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdfZnJvbSA9IG5ld190byAtIGZ1bGw7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCA9IHRoaXMuY2FsY1dpdGhTdGVwKG5ld19mcm9tKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCA9IHRoaXMuY2hlY2tEaWFwYXNvbih0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCwgdGhpcy5vcHRpb25zLmZyb21fbWluLCB0aGlzLm9wdGlvbnMuZnJvbV9tYXgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfZnJvbV9mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfdG9fcmVhbCA9IHRoaXMuY2FsY1dpdGhTdGVwKG5ld190byk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19yZWFsID0gdGhpcy5jaGVja0RpYXBhc29uKHRoaXMuY29vcmRzLnBfdG9fcmVhbCwgdGhpcy5vcHRpb25zLnRvX21pbiwgdGhpcy5vcHRpb25zLnRvX21heCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF90b19mYWtlID0gdGhpcy5jb252ZXJ0VG9GYWtlUGVyY2VudCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50eXBlID09PSAic2luZ2xlIikgewogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9iYXJfeCA9ICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpOwogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9iYXJfdyA9IHRoaXMuY29vcmRzLnBfc2luZ2xlX2Zha2U7CgogICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQuZnJvbV9wZXJjZW50ID0gdGhpcy5jb29yZHMucF9zaW5nbGVfcmVhbDsKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LmZyb20gPSB0aGlzLmNvbnZlcnRUb1ZhbHVlKHRoaXMuY29vcmRzLnBfc2luZ2xlX3JlYWwpOwoKICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LmZyb21fdmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWVzW3RoaXMucmVzdWx0LmZyb21dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMucF9iYXJfeCA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5wX2Zyb21fZmFrZSArICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpKTsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfYmFyX3cgPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMucF90b19mYWtlIC0gdGhpcy5jb29yZHMucF9mcm9tX2Zha2UpOwoKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LmZyb21fcGVyY2VudCA9IHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsOwogICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQuZnJvbSA9IHRoaXMuY29udmVydFRvVmFsdWUodGhpcy5jb29yZHMucF9mcm9tX3JlYWwpOwogICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQudG9fcGVyY2VudCA9IHRoaXMuY29vcmRzLnBfdG9fcmVhbDsKICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LnRvID0gdGhpcy5jb252ZXJ0VG9WYWx1ZSh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwpOwoKICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LmZyb21fdmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWVzW3RoaXMucmVzdWx0LmZyb21dOwogICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0LnRvX3ZhbHVlID0gdGhpcy5vcHRpb25zLnZhbHVlc1t0aGlzLnJlc3VsdC50b107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuY2FsY01pbk1heCgpOwogICAgICAgICAgICB0aGlzLmNhbGNMYWJlbHMoKTsKICAgICAgICB9LAoKCiAgICAgICAgLyoqCiAgICAgICAgICogY2FsY3VsYXRlcyBwb2ludGVyIFggaW4gcGVyY2VudAogICAgICAgICAqLwogICAgICAgIGNhbGNQb2ludGVyUGVyY2VudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuY29vcmRzLndfcnMpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLnBfcG9pbnRlciA9IDA7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLmNvb3Jkcy54X3BvaW50ZXIgPCAwIHx8IGlzTmFOKHRoaXMuY29vcmRzLnhfcG9pbnRlcikgICkgewogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMueF9wb2ludGVyID0gMDsKICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvb3Jkcy54X3BvaW50ZXIgPiB0aGlzLmNvb3Jkcy53X3JzKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy54X3BvaW50ZXIgPSB0aGlzLmNvb3Jkcy53X3JzOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmNvb3Jkcy5wX3BvaW50ZXIgPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMueF9wb2ludGVyIC8gdGhpcy5jb29yZHMud19ycyAqIDEwMCk7CiAgICAgICAgfSwKCiAgICAgICAgY29udmVydFRvUmVhbFBlcmNlbnQ6IGZ1bmN0aW9uIChmYWtlKSB7CiAgICAgICAgICAgIHZhciBmdWxsID0gMTAwIC0gdGhpcy5jb29yZHMucF9oYW5kbGU7CiAgICAgICAgICAgIHJldHVybiBmYWtlIC8gZnVsbCAqIDEwMDsKICAgICAgICB9LAoKICAgICAgICBjb252ZXJ0VG9GYWtlUGVyY2VudDogZnVuY3Rpb24gKHJlYWwpIHsKICAgICAgICAgICAgdmFyIGZ1bGwgPSAxMDAgLSB0aGlzLmNvb3Jkcy5wX2hhbmRsZTsKICAgICAgICAgICAgcmV0dXJuIHJlYWwgLyAxMDAgKiBmdWxsOwogICAgICAgIH0sCgogICAgICAgIGdldEhhbmRsZVg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG1heCA9IDEwMCAtIHRoaXMuY29vcmRzLnBfaGFuZGxlLAogICAgICAgICAgICAgICAgeCA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5wX3BvaW50ZXIgLSB0aGlzLmNvb3Jkcy5wX2dhcCk7CgogICAgICAgICAgICBpZiAoeCA8IDApIHsKICAgICAgICAgICAgICAgIHggPSAwOwogICAgICAgICAgICB9IGVsc2UgaWYgKHggPiBtYXgpIHsKICAgICAgICAgICAgICAgIHggPSBtYXg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgIH0sCgogICAgICAgIGNhbGNIYW5kbGVQZXJjZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudHlwZSA9PT0gInNpbmdsZSIpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLndfaGFuZGxlID0gdGhpcy4kY2FjaGUuc19zaW5nbGUub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy53X2hhbmRsZSA9IHRoaXMuJGNhY2hlLnNfZnJvbS5vdXRlcldpZHRoKGZhbHNlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5jb29yZHMucF9oYW5kbGUgPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMud19oYW5kbGUgLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBGaW5kIGNsb3Nlc3QgaGFuZGxlIHRvIHBvaW50ZXIgY2xpY2sKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSByZWFsX3gge051bWJlcn0KICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfQogICAgICAgICAqLwogICAgICAgIGNob29zZUhhbmRsZTogZnVuY3Rpb24gKHJlYWxfeCkgewogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICJzaW5nbGUiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gInNpbmdsZSI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgbV9wb2ludCA9IHRoaXMuY29vcmRzLnBfZnJvbV9yZWFsICsgKCh0aGlzLmNvb3Jkcy5wX3RvX3JlYWwgLSB0aGlzLmNvb3Jkcy5wX2Zyb21fcmVhbCkgLyAyKTsKICAgICAgICAgICAgICAgIGlmIChyZWFsX3ggPj0gbV9wb2ludCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudG9fZml4ZWQgPyAiZnJvbSIgOiAidG8iOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZyb21fZml4ZWQgPyAidG8iIDogImZyb20iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgLyoqCiAgICAgICAgICogTWVhc3VyZSBNaW4gYW5kIE1heCBsYWJlbHMgd2lkdGggaW4gcGVyY2VudAogICAgICAgICAqLwogICAgICAgIGNhbGNNaW5NYXg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLmNvb3Jkcy53X3JzKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMubGFiZWxzLnBfbWluID0gdGhpcy5sYWJlbHMud19taW4gLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwOwogICAgICAgICAgICB0aGlzLmxhYmVscy5wX21heCA9IHRoaXMubGFiZWxzLndfbWF4IC8gdGhpcy5jb29yZHMud19ycyAqIDEwMDsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBNZWFzdXJlIGxhYmVscyB3aWR0aCBhbmQgWCBpbiBwZXJjZW50CiAgICAgICAgICovCiAgICAgICAgY2FsY0xhYmVsczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuY29vcmRzLndfcnMgfHwgdGhpcy5vcHRpb25zLmhpZGVfZnJvbV90bykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICJzaW5nbGUiKSB7CgogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMud19zaW5nbGUgPSB0aGlzLiRjYWNoZS5zaW5nbGUub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX3NpbmdsZV9mYWtlID0gdGhpcy5sYWJlbHMud19zaW5nbGUgLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCA9IHRoaXMuY29vcmRzLnBfc2luZ2xlX2Zha2UgKyAodGhpcy5jb29yZHMucF9oYW5kbGUgLyAyKSAtICh0aGlzLmxhYmVscy5wX3NpbmdsZV9mYWtlIC8gMik7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX3NpbmdsZV9sZWZ0ID0gdGhpcy5jaGVja0VkZ2VzKHRoaXMubGFiZWxzLnBfc2luZ2xlX2xlZnQsIHRoaXMubGFiZWxzLnBfc2luZ2xlX2Zha2UpOwoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy53X2Zyb20gPSB0aGlzLiRjYWNoZS5mcm9tLm91dGVyV2lkdGgoZmFsc2UpOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF9mcm9tX2Zha2UgPSB0aGlzLmxhYmVscy53X2Zyb20gLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF9mcm9tX2xlZnQgPSB0aGlzLmNvb3Jkcy5wX2Zyb21fZmFrZSArICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpIC0gKHRoaXMubGFiZWxzLnBfZnJvbV9mYWtlIC8gMik7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX2Zyb21fbGVmdCA9IHRoaXMudG9GaXhlZCh0aGlzLmxhYmVscy5wX2Zyb21fbGVmdCk7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX2Zyb21fbGVmdCA9IHRoaXMuY2hlY2tFZGdlcyh0aGlzLmxhYmVscy5wX2Zyb21fbGVmdCwgdGhpcy5sYWJlbHMucF9mcm9tX2Zha2UpOwoKICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzLndfdG8gPSB0aGlzLiRjYWNoZS50by5vdXRlcldpZHRoKGZhbHNlKTsKICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzLnBfdG9fZmFrZSA9IHRoaXMubGFiZWxzLndfdG8gLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF90b19sZWZ0ID0gdGhpcy5jb29yZHMucF90b19mYWtlICsgKHRoaXMuY29vcmRzLnBfaGFuZGxlIC8gMikgLSAodGhpcy5sYWJlbHMucF90b19mYWtlIC8gMik7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX3RvX2xlZnQgPSB0aGlzLnRvRml4ZWQodGhpcy5sYWJlbHMucF90b19sZWZ0KTsKICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzLnBfdG9fbGVmdCA9IHRoaXMuY2hlY2tFZGdlcyh0aGlzLmxhYmVscy5wX3RvX2xlZnQsIHRoaXMubGFiZWxzLnBfdG9fZmFrZSk7CgogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMud19zaW5nbGUgPSB0aGlzLiRjYWNoZS5zaW5nbGUub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wX3NpbmdsZV9mYWtlID0gdGhpcy5sYWJlbHMud19zaW5nbGUgLyB0aGlzLmNvb3Jkcy53X3JzICogMTAwOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCA9ICgodGhpcy5sYWJlbHMucF9mcm9tX2xlZnQgKyB0aGlzLmxhYmVscy5wX3RvX2xlZnQgKyB0aGlzLmxhYmVscy5wX3RvX2Zha2UpIC8gMikgLSAodGhpcy5sYWJlbHMucF9zaW5nbGVfZmFrZSAvIDIpOwogICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCA9IHRoaXMudG9GaXhlZCh0aGlzLmxhYmVscy5wX3NpbmdsZV9sZWZ0KTsKICAgICAgICAgICAgICAgIHRoaXMubGFiZWxzLnBfc2luZ2xlX2xlZnQgPSB0aGlzLmNoZWNrRWRnZXModGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCwgdGhpcy5sYWJlbHMucF9zaW5nbGVfZmFrZSk7CgogICAgICAgICAgICB9CiAgICAgICAgfSwKCgoKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgLy8gRHJhd2luZ3MKCiAgICAgICAgLyoqCiAgICAgICAgICogTWFpbiBmdW5jdGlvbiBjYWxsZWQgaW4gcmVxdWVzdCBhbmltYXRpb24gZnJhbWUKICAgICAgICAgKiB0byB1cGRhdGUgZXZlcnl0aGluZwogICAgICAgICAqLwogICAgICAgIHVwZGF0ZVNjZW5lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnJhZl9pZCkgewogICAgICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZfaWQpOwogICAgICAgICAgICAgICAgdGhpcy5yYWZfaWQgPSBudWxsOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVfdG0pOwogICAgICAgICAgICB0aGlzLnVwZGF0ZV90bSA9IG51bGw7CgogICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmRyYXdIYW5kbGVzKCk7CgogICAgICAgICAgICBpZiAodGhpcy5pc19hY3RpdmUpIHsKICAgICAgICAgICAgICAgIHRoaXMucmFmX2lkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlU2NlbmUuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZV90bSA9IHNldFRpbWVvdXQodGhpcy51cGRhdGVTY2VuZS5iaW5kKHRoaXMpLCAzMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgLyoqCiAgICAgICAgICogRHJhdyBoYW5kbGVzCiAgICAgICAgICovCiAgICAgICAgZHJhd0hhbmRsZXM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5jb29yZHMud19ycyA9IHRoaXMuJGNhY2hlLnJzLm91dGVyV2lkdGgoZmFsc2UpOwoKICAgICAgICAgICAgaWYgKCF0aGlzLmNvb3Jkcy53X3JzKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLmNvb3Jkcy53X3JzICE9PSB0aGlzLmNvb3Jkcy53X3JzX29sZCkgewogICAgICAgICAgICAgICAgdGhpcy50YXJnZXQgPSAiYmFzZSI7CiAgICAgICAgICAgICAgICB0aGlzLmlzX3Jlc2l6ZSA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLmNvb3Jkcy53X3JzICE9PSB0aGlzLmNvb3Jkcy53X3JzX29sZCB8fCB0aGlzLmZvcmNlX3JlZHJhdykgewogICAgICAgICAgICAgICAgdGhpcy5zZXRNaW5NYXgoKTsKICAgICAgICAgICAgICAgIHRoaXMuY2FsYyh0cnVlKTsKICAgICAgICAgICAgICAgIHRoaXMuZHJhd0xhYmVscygpOwogICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ncmlkKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjR3JpZE1hcmdpbigpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY0dyaWRMYWJlbHMoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VfcmVkcmF3ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLndfcnNfb2xkID0gdGhpcy5jb29yZHMud19yczsKICAgICAgICAgICAgICAgIHRoaXMuZHJhd1NoYWRvdygpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIXRoaXMuY29vcmRzLndfcnMpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCF0aGlzLmRyYWdnaW5nICYmICF0aGlzLmZvcmNlX3JlZHJhdyAmJiAhdGhpcy5pc19rZXkpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMub2xkX2Zyb20gIT09IHRoaXMucmVzdWx0LmZyb20gfHwgdGhpcy5vbGRfdG8gIT09IHRoaXMucmVzdWx0LnRvIHx8IHRoaXMuZm9yY2VfcmVkcmF3IHx8IHRoaXMuaXNfa2V5KSB7CgogICAgICAgICAgICAgICAgdGhpcy5kcmF3TGFiZWxzKCk7CgogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuYmFyWzBdLnN0eWxlLmxlZnQgPSAwICsgIiUiOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuYmFyWzBdLnN0eWxlLndpZHRoID0gdGhpcy5jb29yZHMucF9iYXJfdyArICIlIjsKCiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICJzaW5nbGUiKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc19zaW5nbGVbMF0uc3R5bGUubGVmdCA9IHRoaXMuY29vcmRzLnBfc2luZ2xlX2Zha2UgKyAiJSI7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZVswXS5zdHlsZS5sZWZ0ID0gdGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCArICIlIjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0LnByb3AoInZhbHVlIiwgdGhpcy5yZXN1bHQuZnJvbV92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuaW5wdXQucHJvcCgidmFsdWUiLCB0aGlzLnJlc3VsdC5mcm9tKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuaW5wdXQuZGF0YSgiZnJvbSIsIHRoaXMucmVzdWx0LmZyb20pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5zX2Zyb21bMF0uc3R5bGUubGVmdCA9IHRoaXMuY29vcmRzLnBfZnJvbV9mYWtlICsgIiUiOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNfdG9bMF0uc3R5bGUubGVmdCA9IHRoaXMuY29vcmRzLnBfdG9fZmFrZSArICIlIjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub2xkX2Zyb20gIT09IHRoaXMucmVzdWx0LmZyb20gfHwgdGhpcy5mb3JjZV9yZWRyYXcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZnJvbVswXS5zdHlsZS5sZWZ0ID0gdGhpcy5sYWJlbHMucF9mcm9tX2xlZnQgKyAiJSI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9sZF90byAhPT0gdGhpcy5yZXN1bHQudG8gfHwgdGhpcy5mb3JjZV9yZWRyYXcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUudG9bMF0uc3R5bGUubGVmdCA9IHRoaXMubGFiZWxzLnBfdG9fbGVmdCArICIlIjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZVswXS5zdHlsZS5sZWZ0ID0gdGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCArICIlIjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0LnByb3AoInZhbHVlIiwgdGhpcy5yZXN1bHQuZnJvbV92YWx1ZSArIHRoaXMub3B0aW9ucy5pbnB1dF92YWx1ZXNfc2VwYXJhdG9yICsgdGhpcy5yZXN1bHQudG9fdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmlucHV0LnByb3AoInZhbHVlIiwgdGhpcy5yZXN1bHQuZnJvbSArIHRoaXMub3B0aW9ucy5pbnB1dF92YWx1ZXNfc2VwYXJhdG9yICsgdGhpcy5yZXN1bHQudG8pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5pbnB1dC5kYXRhKCJmcm9tIiwgdGhpcy5yZXN1bHQuZnJvbSk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuaW5wdXQuZGF0YSgidG8iLCB0aGlzLnJlc3VsdC50byk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCh0aGlzLm9sZF9mcm9tICE9PSB0aGlzLnJlc3VsdC5mcm9tIHx8IHRoaXMub2xkX3RvICE9PSB0aGlzLnJlc3VsdC50bykgJiYgIXRoaXMuaXNfc3RhcnQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5pbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB0aGlzLm9sZF9mcm9tID0gdGhpcy5yZXN1bHQuZnJvbTsKICAgICAgICAgICAgICAgIHRoaXMub2xkX3RvID0gdGhpcy5yZXN1bHQudG87CgogICAgICAgICAgICAgICAgLy8gY2FsbGJhY2tzIGNhbGwKICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc19yZXNpemUgJiYgIXRoaXMuaXNfdXBkYXRlICYmICF0aGlzLmlzX3N0YXJ0ICYmICF0aGlzLmlzX2ZpbmlzaCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc19rZXkgfHwgdGhpcy5pc19jbGljaykgewogICAgICAgICAgICAgICAgICAgIHRoaXMuaXNfa2V5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc19jbGljayA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbE9uRmluaXNoKCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5pc191cGRhdGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuaXNfcmVzaXplID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aGlzLmlzX2ZpbmlzaCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmlzX3N0YXJ0ID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMuaXNfa2V5ID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMuaXNfY2xpY2sgPSBmYWxzZTsKICAgICAgICAgICAgdGhpcy5mb3JjZV9yZWRyYXcgPSBmYWxzZTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBEcmF3IGxhYmVscwogICAgICAgICAqIG1lYXN1cmUgbGFiZWxzIGNvbGxpc2lvbnMKICAgICAgICAgKiBjb2xsYXBzZSBjbG9zZSBsYWJlbHMKICAgICAgICAgKi8KICAgICAgICBkcmF3TGFiZWxzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB2YWx1ZXNfbnVtID0gdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgsCiAgICAgICAgICAgICAgICBwX3ZhbHVlcyA9IHRoaXMub3B0aW9ucy5wX3ZhbHVlcywKICAgICAgICAgICAgICAgIHRleHRfc2luZ2xlLAogICAgICAgICAgICAgICAgdGV4dF9mcm9tLAogICAgICAgICAgICAgICAgdGV4dF90bzsKCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaGlkZV9mcm9tX3RvKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudHlwZSA9PT0gInNpbmdsZSIpIHsKCiAgICAgICAgICAgICAgICBpZiAodmFsdWVzX251bSkgewogICAgICAgICAgICAgICAgICAgIHRleHRfc2luZ2xlID0gdGhpcy5kZWNvcmF0ZShwX3ZhbHVlc1t0aGlzLnJlc3VsdC5mcm9tXSk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlLmh0bWwodGV4dF9zaW5nbGUpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0X3NpbmdsZSA9IHRoaXMuZGVjb3JhdGUodGhpcy5fcHJldHRpZnkodGhpcy5yZXN1bHQuZnJvbSksIHRoaXMucmVzdWx0LmZyb20pOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZS5odG1sKHRleHRfc2luZ2xlKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB0aGlzLmNhbGNMYWJlbHMoKTsKCiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYWJlbHMucF9zaW5nbGVfbGVmdCA8IHRoaXMubGFiZWxzLnBfbWluICsgMSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1pblswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1pblswXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhYmVscy5wX3NpbmdsZV9sZWZ0ICsgdGhpcy5sYWJlbHMucF9zaW5nbGVfZmFrZSA+IDEwMCAtIHRoaXMubGFiZWxzLnBfbWF4IC0gMSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1heFswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1heFswXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICBpZiAodmFsdWVzX251bSkgewoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRlY29yYXRlX2JvdGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9zaW5nbGUgPSB0aGlzLmRlY29yYXRlKHBfdmFsdWVzW3RoaXMucmVzdWx0LmZyb21dKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9zaW5nbGUgKz0gdGhpcy5vcHRpb25zLnZhbHVlc19zZXBhcmF0b3I7CiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfc2luZ2xlICs9IHRoaXMuZGVjb3JhdGUocF92YWx1ZXNbdGhpcy5yZXN1bHQudG9dKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X3NpbmdsZSA9IHRoaXMuZGVjb3JhdGUocF92YWx1ZXNbdGhpcy5yZXN1bHQuZnJvbV0gKyB0aGlzLm9wdGlvbnMudmFsdWVzX3NlcGFyYXRvciArIHBfdmFsdWVzW3RoaXMucmVzdWx0LnRvXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRleHRfZnJvbSA9IHRoaXMuZGVjb3JhdGUocF92YWx1ZXNbdGhpcy5yZXN1bHQuZnJvbV0pOwogICAgICAgICAgICAgICAgICAgIHRleHRfdG8gPSB0aGlzLmRlY29yYXRlKHBfdmFsdWVzW3RoaXMucmVzdWx0LnRvXSk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZS5odG1sKHRleHRfc2luZ2xlKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5mcm9tLmh0bWwodGV4dF9mcm9tKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50by5odG1sKHRleHRfdG8pOwoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZGVjb3JhdGVfYm90aCkgewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X3NpbmdsZSA9IHRoaXMuZGVjb3JhdGUodGhpcy5fcHJldHRpZnkodGhpcy5yZXN1bHQuZnJvbSksIHRoaXMucmVzdWx0LmZyb20pOwogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X3NpbmdsZSArPSB0aGlzLm9wdGlvbnMudmFsdWVzX3NlcGFyYXRvcjsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9zaW5nbGUgKz0gdGhpcy5kZWNvcmF0ZSh0aGlzLl9wcmV0dGlmeSh0aGlzLnJlc3VsdC50byksIHRoaXMucmVzdWx0LnRvKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X3NpbmdsZSA9IHRoaXMuZGVjb3JhdGUodGhpcy5fcHJldHRpZnkodGhpcy5yZXN1bHQuZnJvbSkgKyB0aGlzLm9wdGlvbnMudmFsdWVzX3NlcGFyYXRvciArIHRoaXMuX3ByZXR0aWZ5KHRoaXMucmVzdWx0LnRvKSwgdGhpcy5yZXN1bHQudG8pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0ZXh0X2Zyb20gPSB0aGlzLmRlY29yYXRlKHRoaXMuX3ByZXR0aWZ5KHRoaXMucmVzdWx0LmZyb20pLCB0aGlzLnJlc3VsdC5mcm9tKTsKICAgICAgICAgICAgICAgICAgICB0ZXh0X3RvID0gdGhpcy5kZWNvcmF0ZSh0aGlzLl9wcmV0dGlmeSh0aGlzLnJlc3VsdC50byksIHRoaXMucmVzdWx0LnRvKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlLmh0bWwodGV4dF9zaW5nbGUpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb20uaHRtbCh0ZXh0X2Zyb20pOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnRvLmh0bWwodGV4dF90byk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMuY2FsY0xhYmVscygpOwoKICAgICAgICAgICAgICAgIHZhciBtaW4gPSBNYXRoLm1pbih0aGlzLmxhYmVscy5wX3NpbmdsZV9sZWZ0LCB0aGlzLmxhYmVscy5wX2Zyb21fbGVmdCksCiAgICAgICAgICAgICAgICAgICAgc2luZ2xlX2xlZnQgPSB0aGlzLmxhYmVscy5wX3NpbmdsZV9sZWZ0ICsgdGhpcy5sYWJlbHMucF9zaW5nbGVfZmFrZSwKICAgICAgICAgICAgICAgICAgICB0b19sZWZ0ID0gdGhpcy5sYWJlbHMucF90b19sZWZ0ICsgdGhpcy5sYWJlbHMucF90b19mYWtlLAogICAgICAgICAgICAgICAgICAgIG1heCA9IE1hdGgubWF4KHNpbmdsZV9sZWZ0LCB0b19sZWZ0KTsKCiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYWJlbHMucF9mcm9tX2xlZnQgKyB0aGlzLmxhYmVscy5wX2Zyb21fZmFrZSA+PSB0aGlzLmxhYmVscy5wX3RvX2xlZnQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5mcm9tWzBdLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50b1swXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlWzBdLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VsdC5mcm9tID09PSB0aGlzLnJlc3VsdC50bykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50YXJnZXQgPT09ICJmcm9tIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZnJvbVswXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGFyZ2V0ID09PSAidG8iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50b1swXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnRhcmdldCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZnJvbVswXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZVswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IHRvX2xlZnQ7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZnJvbVswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnRvWzBdLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuc2luZ2xlWzBdLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IE1hdGgubWF4KHNpbmdsZV9sZWZ0LCB0b19sZWZ0KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLmZyb21bMF0uc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS50b1swXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLnNpbmdsZVswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKG1pbiA8IHRoaXMubGFiZWxzLnBfbWluICsgMSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1pblswXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJGNhY2hlLm1pblswXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChtYXggPiAxMDAgLSB0aGlzLmxhYmVscy5wX21heCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5tYXhbMF0uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLiRjYWNoZS5tYXhbMF0uc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBEcmF3IHNoYWRvdyBpbnRlcnZhbHMKICAgICAgICAgKi8KICAgICAgICBkcmF3U2hhZG93OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBvID0gdGhpcy5vcHRpb25zLAogICAgICAgICAgICAgICAgYyA9IHRoaXMuJGNhY2hlLAoKICAgICAgICAgICAgICAgIGlzX2Zyb21fbWluID0gdHlwZW9mIG8uZnJvbV9taW4gPT09ICJudW1iZXIiICYmICFpc05hTihvLmZyb21fbWluKSwKICAgICAgICAgICAgICAgIGlzX2Zyb21fbWF4ID0gdHlwZW9mIG8uZnJvbV9tYXggPT09ICJudW1iZXIiICYmICFpc05hTihvLmZyb21fbWF4KSwKICAgICAgICAgICAgICAgIGlzX3RvX21pbiA9IHR5cGVvZiBvLnRvX21pbiA9PT0gIm51bWJlciIgJiYgIWlzTmFOKG8udG9fbWluKSwKICAgICAgICAgICAgICAgIGlzX3RvX21heCA9IHR5cGVvZiBvLnRvX21heCA9PT0gIm51bWJlciIgJiYgIWlzTmFOKG8udG9fbWF4KSwKCiAgICAgICAgICAgICAgICBmcm9tX21pbiwKICAgICAgICAgICAgICAgIGZyb21fbWF4LAogICAgICAgICAgICAgICAgdG9fbWluLAogICAgICAgICAgICAgICAgdG9fbWF4OwoKICAgICAgICAgICAgaWYgKG8udHlwZSA9PT0gInNpbmdsZSIpIHsKICAgICAgICAgICAgICAgIGlmIChvLmZyb21fc2hhZG93ICYmIChpc19mcm9tX21pbiB8fCBpc19mcm9tX21heCkpIHsKICAgICAgICAgICAgICAgICAgICBmcm9tX21pbiA9IHRoaXMuY29udmVydFRvUGVyY2VudChpc19mcm9tX21pbiA/IG8uZnJvbV9taW4gOiBvLm1pbik7CiAgICAgICAgICAgICAgICAgICAgZnJvbV9tYXggPSB0aGlzLmNvbnZlcnRUb1BlcmNlbnQoaXNfZnJvbV9tYXggPyBvLmZyb21fbWF4IDogby5tYXgpIC0gZnJvbV9taW47CiAgICAgICAgICAgICAgICAgICAgZnJvbV9taW4gPSB0aGlzLnRvRml4ZWQoZnJvbV9taW4gLSAodGhpcy5jb29yZHMucF9oYW5kbGUgLyAxMDAgKiBmcm9tX21pbikpOwogICAgICAgICAgICAgICAgICAgIGZyb21fbWF4ID0gdGhpcy50b0ZpeGVkKGZyb21fbWF4IC0gKHRoaXMuY29vcmRzLnBfaGFuZGxlIC8gMTAwICogZnJvbV9tYXgpKTsKICAgICAgICAgICAgICAgICAgICBmcm9tX21pbiA9IGZyb21fbWluICsgKHRoaXMuY29vcmRzLnBfaGFuZGxlIC8gMik7CgogICAgICAgICAgICAgICAgICAgIGMuc2hhZF9zaW5nbGVbMF0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX3NpbmdsZVswXS5zdHlsZS5sZWZ0ID0gZnJvbV9taW4gKyAiJSI7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX3NpbmdsZVswXS5zdHlsZS53aWR0aCA9IGZyb21fbWF4ICsgIiUiOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjLnNoYWRfc2luZ2xlWzBdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoby5mcm9tX3NoYWRvdyAmJiAoaXNfZnJvbV9taW4gfHwgaXNfZnJvbV9tYXgpKSB7CiAgICAgICAgICAgICAgICAgICAgZnJvbV9taW4gPSB0aGlzLmNvbnZlcnRUb1BlcmNlbnQoaXNfZnJvbV9taW4gPyBvLmZyb21fbWluIDogby5taW4pOwogICAgICAgICAgICAgICAgICAgIGZyb21fbWF4ID0gdGhpcy5jb252ZXJ0VG9QZXJjZW50KGlzX2Zyb21fbWF4ID8gby5mcm9tX21heCA6IG8ubWF4KSAtIGZyb21fbWluOwogICAgICAgICAgICAgICAgICAgIGZyb21fbWluID0gdGhpcy50b0ZpeGVkKGZyb21fbWluIC0gKHRoaXMuY29vcmRzLnBfaGFuZGxlIC8gMTAwICogZnJvbV9taW4pKTsKICAgICAgICAgICAgICAgICAgICBmcm9tX21heCA9IHRoaXMudG9GaXhlZChmcm9tX21heCAtICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDEwMCAqIGZyb21fbWF4KSk7CiAgICAgICAgICAgICAgICAgICAgZnJvbV9taW4gPSBmcm9tX21pbiArICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpOwoKICAgICAgICAgICAgICAgICAgICBjLnNoYWRfZnJvbVswXS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgICAgICAgICBjLnNoYWRfZnJvbVswXS5zdHlsZS5sZWZ0ID0gZnJvbV9taW4gKyAiJSI7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX2Zyb21bMF0uc3R5bGUud2lkdGggPSBmcm9tX21heCArICIlIjsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX2Zyb21bMF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoby50b19zaGFkb3cgJiYgKGlzX3RvX21pbiB8fCBpc190b19tYXgpKSB7CiAgICAgICAgICAgICAgICAgICAgdG9fbWluID0gdGhpcy5jb252ZXJ0VG9QZXJjZW50KGlzX3RvX21pbiA/IG8udG9fbWluIDogby5taW4pOwogICAgICAgICAgICAgICAgICAgIHRvX21heCA9IHRoaXMuY29udmVydFRvUGVyY2VudChpc190b19tYXggPyBvLnRvX21heCA6IG8ubWF4KSAtIHRvX21pbjsKICAgICAgICAgICAgICAgICAgICB0b19taW4gPSB0aGlzLnRvRml4ZWQodG9fbWluIC0gKHRoaXMuY29vcmRzLnBfaGFuZGxlIC8gMTAwICogdG9fbWluKSk7CiAgICAgICAgICAgICAgICAgICAgdG9fbWF4ID0gdGhpcy50b0ZpeGVkKHRvX21heCAtICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDEwMCAqIHRvX21heCkpOwogICAgICAgICAgICAgICAgICAgIHRvX21pbiA9IHRvX21pbiArICh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpOwoKICAgICAgICAgICAgICAgICAgICBjLnNoYWRfdG9bMF0uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX3RvWzBdLnN0eWxlLmxlZnQgPSB0b19taW4gKyAiJSI7CiAgICAgICAgICAgICAgICAgICAgYy5zaGFkX3RvWzBdLnN0eWxlLndpZHRoID0gdG9fbWF4ICsgIiUiOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjLnNoYWRfdG9bMF0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCgoKCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgIC8vIENhbGxiYWNrcwoKICAgICAgICBjYWxsT25TdGFydDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9uU3RhcnQgJiYgdHlwZW9mIHRoaXMub3B0aW9ucy5vblN0YXJ0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25TdGFydCh0aGlzLnJlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGNhbGxPbkNoYW5nZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9uQ2hhbmdlICYmIHR5cGVvZiB0aGlzLm9wdGlvbnMub25DaGFuZ2UgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkNoYW5nZSh0aGlzLnJlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGNhbGxPbkZpbmlzaDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9uRmluaXNoICYmIHR5cGVvZiB0aGlzLm9wdGlvbnMub25GaW5pc2ggPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkZpbmlzaCh0aGlzLnJlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGNhbGxPblVwZGF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9uVXBkYXRlICYmIHR5cGVvZiB0aGlzLm9wdGlvbnMub25VcGRhdGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblVwZGF0ZSh0aGlzLnJlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKCgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBTZXJ2aWNlIG1ldGhvZHMKCiAgICAgICAgdG9nZ2xlSW5wdXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy4kY2FjaGUuaW5wdXQudG9nZ2xlQ2xhc3MoImlycy1oaWRkZW4taW5wdXQiKTsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBDb252ZXJ0IHJlYWwgdmFsdWUgdG8gcGVyY2VudAogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHZhbHVlIHtOdW1iZXJ9IFggaW4gcmVhbAogICAgICAgICAqIEBwYXJhbSBub19taW4ge2Jvb2xlYW49fSBkb24ndCB1c2UgbWluIHZhbHVlCiAgICAgICAgICogQHJldHVybnMge051bWJlcn0gWCBpbiBwZXJjZW50CiAgICAgICAgICovCiAgICAgICAgY29udmVydFRvUGVyY2VudDogZnVuY3Rpb24gKHZhbHVlLCBub19taW4pIHsKICAgICAgICAgICAgdmFyIGRpYXBhc29uID0gdGhpcy5vcHRpb25zLm1heCAtIHRoaXMub3B0aW9ucy5taW4sCiAgICAgICAgICAgICAgICBvbmVfcGVyY2VudCA9IGRpYXBhc29uIC8gMTAwLAogICAgICAgICAgICAgICAgdmFsLCBwZXJjZW50OwoKICAgICAgICAgICAgaWYgKCFkaWFwYXNvbikgewogICAgICAgICAgICAgICAgdGhpcy5ub19kaWFwYXNvbiA9IHRydWU7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKG5vX21pbikgewogICAgICAgICAgICAgICAgdmFsID0gdmFsdWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YWwgPSB2YWx1ZSAtIHRoaXMub3B0aW9ucy5taW47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHBlcmNlbnQgPSB2YWwgLyBvbmVfcGVyY2VudDsKCiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRml4ZWQocGVyY2VudCk7CiAgICAgICAgfSwKCiAgICAgICAgLyoqCiAgICAgICAgICogQ29udmVydCBwZXJjZW50IHRvIHJlYWwgdmFsdWVzCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gcGVyY2VudCB7TnVtYmVyfSBYIGluIHBlcmNlbnQKICAgICAgICAgKiBAcmV0dXJucyB7TnVtYmVyfSBYIGluIHJlYWwKICAgICAgICAgKi8KICAgICAgICBjb252ZXJ0VG9WYWx1ZTogZnVuY3Rpb24gKHBlcmNlbnQpIHsKICAgICAgICAgICAgdmFyIG1pbiA9IHRoaXMub3B0aW9ucy5taW4sCiAgICAgICAgICAgICAgICBtYXggPSB0aGlzLm9wdGlvbnMubWF4LAogICAgICAgICAgICAgICAgbWluX2RlY2ltYWxzID0gbWluLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXSwKICAgICAgICAgICAgICAgIG1heF9kZWNpbWFscyA9IG1heC50b1N0cmluZygpLnNwbGl0KCIuIilbMV0sCiAgICAgICAgICAgICAgICBtaW5fbGVuZ3RoLCBtYXhfbGVuZ3RoLAogICAgICAgICAgICAgICAgYXZnX2RlY2ltYWxzID0gMCwKICAgICAgICAgICAgICAgIGFicyA9IDA7CgogICAgICAgICAgICBpZiAocGVyY2VudCA9PT0gMCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5taW47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHBlcmNlbnQgPT09IDEwMCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXg7CiAgICAgICAgICAgIH0KCgogICAgICAgICAgICBpZiAobWluX2RlY2ltYWxzKSB7CiAgICAgICAgICAgICAgICBtaW5fbGVuZ3RoID0gbWluX2RlY2ltYWxzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGF2Z19kZWNpbWFscyA9IG1pbl9sZW5ndGg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG1heF9kZWNpbWFscykgewogICAgICAgICAgICAgICAgbWF4X2xlbmd0aCA9IG1heF9kZWNpbWFscy5sZW5ndGg7CiAgICAgICAgICAgICAgICBhdmdfZGVjaW1hbHMgPSBtYXhfbGVuZ3RoOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChtaW5fbGVuZ3RoICYmIG1heF9sZW5ndGgpIHsKICAgICAgICAgICAgICAgIGF2Z19kZWNpbWFscyA9IChtaW5fbGVuZ3RoID49IG1heF9sZW5ndGgpID8gbWluX2xlbmd0aCA6IG1heF9sZW5ndGg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChtaW4gPCAwKSB7CiAgICAgICAgICAgICAgICBhYnMgPSBNYXRoLmFicyhtaW4pOwogICAgICAgICAgICAgICAgbWluID0gKyhtaW4gKyBhYnMpLnRvRml4ZWQoYXZnX2RlY2ltYWxzKTsKICAgICAgICAgICAgICAgIG1heCA9ICsobWF4ICsgYWJzKS50b0ZpeGVkKGF2Z19kZWNpbWFscyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBudW1iZXIgPSAoKG1heCAtIG1pbikgLyAxMDAgKiBwZXJjZW50KSArIG1pbiwKICAgICAgICAgICAgICAgIHN0cmluZyA9IHRoaXMub3B0aW9ucy5zdGVwLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXSwKICAgICAgICAgICAgICAgIHJlc3VsdDsKCiAgICAgICAgICAgIGlmIChzdHJpbmcpIHsKICAgICAgICAgICAgICAgIG51bWJlciA9ICtudW1iZXIudG9GaXhlZChzdHJpbmcubGVuZ3RoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlciAvIHRoaXMub3B0aW9ucy5zdGVwOwogICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyICogdGhpcy5vcHRpb25zLnN0ZXA7CgogICAgICAgICAgICAgICAgbnVtYmVyID0gK251bWJlci50b0ZpeGVkKDApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoYWJzKSB7CiAgICAgICAgICAgICAgICBudW1iZXIgLT0gYWJzOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RyaW5nKSB7CiAgICAgICAgICAgICAgICByZXN1bHQgPSArbnVtYmVyLnRvRml4ZWQoc3RyaW5nLmxlbmd0aCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLnRvRml4ZWQobnVtYmVyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHJlc3VsdCA8IHRoaXMub3B0aW9ucy5taW4pIHsKICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMub3B0aW9ucy5taW47CiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gdGhpcy5vcHRpb25zLm1heCkgewogICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5vcHRpb25zLm1heDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB9LAoKICAgICAgICAvKioKICAgICAgICAgKiBSb3VuZCBwZXJjZW50IHZhbHVlIHdpdGggc3RlcAogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHBlcmNlbnQge051bWJlcn0KICAgICAgICAgKiBAcmV0dXJucyBwZXJjZW50IHtOdW1iZXJ9IHJvdW5kZWQKICAgICAgICAgKi8KICAgICAgICBjYWxjV2l0aFN0ZXA6IGZ1bmN0aW9uIChwZXJjZW50KSB7CiAgICAgICAgICAgIHZhciByb3VuZGVkID0gTWF0aC5yb3VuZChwZXJjZW50IC8gdGhpcy5jb29yZHMucF9zdGVwKSAqIHRoaXMuY29vcmRzLnBfc3RlcDsKCiAgICAgICAgICAgIGlmIChyb3VuZGVkID4gMTAwKSB7CiAgICAgICAgICAgICAgICByb3VuZGVkID0gMTAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwZXJjZW50ID09PSAxMDApIHsKICAgICAgICAgICAgICAgIHJvdW5kZWQgPSAxMDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRml4ZWQocm91bmRlZCk7CiAgICAgICAgfSwKCiAgICAgICAgY2hlY2tNaW5JbnRlcnZhbDogZnVuY3Rpb24gKHBfY3VycmVudCwgcF9uZXh0LCB0eXBlKSB7CiAgICAgICAgICAgIHZhciBvID0gdGhpcy5vcHRpb25zLAogICAgICAgICAgICAgICAgY3VycmVudCwKICAgICAgICAgICAgICAgIG5leHQ7CgogICAgICAgICAgICBpZiAoIW8ubWluX2ludGVydmFsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcF9jdXJyZW50OwogICAgICAgICAgICB9CgogICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5jb252ZXJ0VG9WYWx1ZShwX2N1cnJlbnQpOwogICAgICAgICAgICBuZXh0ID0gdGhpcy5jb252ZXJ0VG9WYWx1ZShwX25leHQpOwoKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICJmcm9tIikgewoKICAgICAgICAgICAgICAgIGlmIChuZXh0IC0gY3VycmVudCA8IG8ubWluX2ludGVydmFsKSB7CiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IG5leHQgLSBvLm1pbl9pbnRlcnZhbDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgLSBuZXh0IDwgby5taW5faW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbmV4dCArIG8ubWluX2ludGVydmFsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFRvUGVyY2VudChjdXJyZW50KTsKICAgICAgICB9LAoKICAgICAgICBjaGVja01heEludGVydmFsOiBmdW5jdGlvbiAocF9jdXJyZW50LCBwX25leHQsIHR5cGUpIHsKICAgICAgICAgICAgdmFyIG8gPSB0aGlzLm9wdGlvbnMsCiAgICAgICAgICAgICAgICBjdXJyZW50LAogICAgICAgICAgICAgICAgbmV4dDsKCiAgICAgICAgICAgIGlmICghby5tYXhfaW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwX2N1cnJlbnQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmNvbnZlcnRUb1ZhbHVlKHBfY3VycmVudCk7CiAgICAgICAgICAgIG5leHQgPSB0aGlzLmNvbnZlcnRUb1ZhbHVlKHBfbmV4dCk7CgogICAgICAgICAgICBpZiAodHlwZSA9PT0gImZyb20iKSB7CgogICAgICAgICAgICAgICAgaWYgKG5leHQgLSBjdXJyZW50ID4gby5tYXhfaW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbmV4dCAtIG8ubWF4X2ludGVydmFsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAtIG5leHQgPiBvLm1heF9pbnRlcnZhbCkgewogICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXh0ICsgby5tYXhfaW50ZXJ2YWw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9QZXJjZW50KGN1cnJlbnQpOwogICAgICAgIH0sCgogICAgICAgIGNoZWNrRGlhcGFzb246IGZ1bmN0aW9uIChwX251bSwgbWluLCBtYXgpIHsKICAgICAgICAgICAgdmFyIG51bSA9IHRoaXMuY29udmVydFRvVmFsdWUocF9udW0pLAogICAgICAgICAgICAgICAgbyA9IHRoaXMub3B0aW9uczsKCiAgICAgICAgICAgIGlmICh0eXBlb2YgbWluICE9PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgbWluID0gby5taW47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF4ICE9PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgbWF4ID0gby5tYXg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChudW0gPCBtaW4pIHsKICAgICAgICAgICAgICAgIG51bSA9IG1pbjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKG51bSA+IG1heCkgewogICAgICAgICAgICAgICAgbnVtID0gbWF4OwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9QZXJjZW50KG51bSk7CiAgICAgICAgfSwKCiAgICAgICAgdG9GaXhlZDogZnVuY3Rpb24gKG51bSkgewogICAgICAgICAgICBudW0gPSBudW0udG9GaXhlZCg5KTsKICAgICAgICAgICAgcmV0dXJuICtudW07CiAgICAgICAgfSwKCiAgICAgICAgX3ByZXR0aWZ5OiBmdW5jdGlvbiAobnVtKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLnByZXR0aWZ5X2VuYWJsZWQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudW07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucHJldHRpZnkgJiYgdHlwZW9mIHRoaXMub3B0aW9ucy5wcmV0dGlmeSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wcmV0dGlmeShudW0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJldHRpZnkobnVtKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIHByZXR0aWZ5OiBmdW5jdGlvbiAobnVtKSB7CiAgICAgICAgICAgIHZhciBuID0gbnVtLnRvU3RyaW5nKCk7CiAgICAgICAgICAgIHJldHVybiBuLnJlcGxhY2UoLyhcZHsxLDN9KD89KD86XGRcZFxkKSsoPyFcZCkpKS9nLCAiJDEiICsgdGhpcy5vcHRpb25zLnByZXR0aWZ5X3NlcGFyYXRvcik7CiAgICAgICAgfSwKCiAgICAgICAgY2hlY2tFZGdlczogZnVuY3Rpb24gKGxlZnQsIHdpZHRoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLmZvcmNlX2VkZ2VzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b0ZpeGVkKGxlZnQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAobGVmdCA8IDApIHsKICAgICAgICAgICAgICAgIGxlZnQgPSAwOwogICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnQgPiAxMDAgLSB3aWR0aCkgewogICAgICAgICAgICAgICAgbGVmdCA9IDEwMCAtIHdpZHRoOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdGhpcy50b0ZpeGVkKGxlZnQpOwogICAgICAgIH0sCgogICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBvID0gdGhpcy5vcHRpb25zLAogICAgICAgICAgICAgICAgciA9IHRoaXMucmVzdWx0LAogICAgICAgICAgICAgICAgdiA9IG8udmFsdWVzLAogICAgICAgICAgICAgICAgdmwgPSB2Lmxlbmd0aCwKICAgICAgICAgICAgICAgIHZhbHVlLAogICAgICAgICAgICAgICAgaTsKCiAgICAgICAgICAgIGlmICh0eXBlb2Ygby5taW4gPT09ICJzdHJpbmciKSBvLm1pbiA9ICtvLm1pbjsKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLm1heCA9PT0gInN0cmluZyIpIG8ubWF4ID0gK28ubWF4OwogICAgICAgICAgICBpZiAodHlwZW9mIG8uZnJvbSA9PT0gInN0cmluZyIpIG8uZnJvbSA9ICtvLmZyb207CiAgICAgICAgICAgIGlmICh0eXBlb2Ygby50byA9PT0gInN0cmluZyIpIG8udG8gPSArby50bzsKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLnN0ZXAgPT09ICJzdHJpbmciKSBvLnN0ZXAgPSArby5zdGVwOwoKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLmZyb21fbWluID09PSAic3RyaW5nIikgby5mcm9tX21pbiA9ICtvLmZyb21fbWluOwogICAgICAgICAgICBpZiAodHlwZW9mIG8uZnJvbV9tYXggPT09ICJzdHJpbmciKSBvLmZyb21fbWF4ID0gK28uZnJvbV9tYXg7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygby50b19taW4gPT09ICJzdHJpbmciKSBvLnRvX21pbiA9ICtvLnRvX21pbjsKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLnRvX21heCA9PT0gInN0cmluZyIpIG8udG9fbWF4ID0gK28udG9fbWF4OwoKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLmtleWJvYXJkX3N0ZXAgPT09ICJzdHJpbmciKSBvLmtleWJvYXJkX3N0ZXAgPSArby5rZXlib2FyZF9zdGVwOwogICAgICAgICAgICBpZiAodHlwZW9mIG8uZ3JpZF9udW0gPT09ICJzdHJpbmciKSBvLmdyaWRfbnVtID0gK28uZ3JpZF9udW07CgogICAgICAgICAgICBpZiAoby5tYXggPCBvLm1pbikgewogICAgICAgICAgICAgICAgby5tYXggPSBvLm1pbjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHZsKSB7CiAgICAgICAgICAgICAgICBvLnBfdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBvLm1pbiA9IDA7CiAgICAgICAgICAgICAgICBvLm1heCA9IHZsIC0gMTsKICAgICAgICAgICAgICAgIG8uc3RlcCA9IDE7CiAgICAgICAgICAgICAgICBvLmdyaWRfbnVtID0gby5tYXg7CiAgICAgICAgICAgICAgICBvLmdyaWRfc25hcCA9IHRydWU7CgoKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2bDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSArdltpXTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdltpXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX3ByZXR0aWZ5KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZbaV07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBvLnBfdmFsdWVzLnB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodHlwZW9mIG8uZnJvbSAhPT0gIm51bWJlciIgfHwgaXNOYU4oby5mcm9tKSkgewogICAgICAgICAgICAgICAgby5mcm9tID0gby5taW47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0eXBlb2Ygby50byAhPT0gIm51bWJlciIgfHwgaXNOYU4oby5mcm9tKSkgewogICAgICAgICAgICAgICAgby50byA9IG8ubWF4OwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoby50eXBlID09PSAic2luZ2xlIikgewoKICAgICAgICAgICAgICAgIGlmIChvLmZyb20gPCBvLm1pbikgewogICAgICAgICAgICAgICAgICAgIG8uZnJvbSA9IG8ubWluOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChvLmZyb20gPiBvLm1heCkgewogICAgICAgICAgICAgICAgICAgIG8uZnJvbSA9IG8ubWF4OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICBpZiAoby5mcm9tIDwgby5taW4gfHwgby5mcm9tID4gby5tYXgpIHsKICAgICAgICAgICAgICAgICAgICBvLmZyb20gPSBvLm1pbjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChvLnRvID4gby5tYXggfHwgby50byA8IG8ubWluKSB7CiAgICAgICAgICAgICAgICAgICAgby50byA9IG8ubWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG8uZnJvbSA+IG8udG8pIHsKICAgICAgICAgICAgICAgICAgICBvLmZyb20gPSBvLnRvOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLnN0ZXAgIT09ICJudW1iZXIiIHx8IGlzTmFOKG8uc3RlcCkgfHwgIW8uc3RlcCB8fCBvLnN0ZXAgPCAwKSB7CiAgICAgICAgICAgICAgICBvLnN0ZXAgPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodHlwZW9mIG8ua2V5Ym9hcmRfc3RlcCAhPT0gIm51bWJlciIgfHwgaXNOYU4oby5rZXlib2FyZF9zdGVwKSB8fCAhby5rZXlib2FyZF9zdGVwIHx8IG8ua2V5Ym9hcmRfc3RlcCA8IDApIHsKICAgICAgICAgICAgICAgIG8ua2V5Ym9hcmRfc3RlcCA9IDU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0eXBlb2Ygby5mcm9tX21pbiA9PT0gIm51bWJlciIgJiYgby5mcm9tIDwgby5mcm9tX21pbikgewogICAgICAgICAgICAgICAgby5mcm9tID0gby5mcm9tX21pbjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLmZyb21fbWF4ID09PSAibnVtYmVyIiAmJiBvLmZyb20gPiBvLmZyb21fbWF4KSB7CiAgICAgICAgICAgICAgICBvLmZyb20gPSBvLmZyb21fbWF4OwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodHlwZW9mIG8udG9fbWluID09PSAibnVtYmVyIiAmJiBvLnRvIDwgby50b19taW4pIHsKICAgICAgICAgICAgICAgIG8udG8gPSBvLnRvX21pbjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHR5cGVvZiBvLnRvX21heCA9PT0gIm51bWJlciIgJiYgby5mcm9tID4gby50b19tYXgpIHsKICAgICAgICAgICAgICAgIG8udG8gPSBvLnRvX21heDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHIpIHsKICAgICAgICAgICAgICAgIGlmIChyLm1pbiAhPT0gby5taW4pIHsKICAgICAgICAgICAgICAgICAgICByLm1pbiA9IG8ubWluOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyLm1heCAhPT0gby5tYXgpIHsKICAgICAgICAgICAgICAgICAgICByLm1heCA9IG8ubWF4OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChyLmZyb20gPCByLm1pbiB8fCByLmZyb20gPiByLm1heCkgewogICAgICAgICAgICAgICAgICAgIHIuZnJvbSA9IG8uZnJvbTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoci50byA8IHIubWluIHx8IHIudG8gPiByLm1heCkgewogICAgICAgICAgICAgICAgICAgIHIudG8gPSBvLnRvOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodHlwZW9mIG8ubWluX2ludGVydmFsICE9PSAibnVtYmVyIiB8fCBpc05hTihvLm1pbl9pbnRlcnZhbCkgfHwgIW8ubWluX2ludGVydmFsIHx8IG8ubWluX2ludGVydmFsIDwgMCkgewogICAgICAgICAgICAgICAgby5taW5faW50ZXJ2YWwgPSAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodHlwZW9mIG8ubWF4X2ludGVydmFsICE9PSAibnVtYmVyIiB8fCBpc05hTihvLm1heF9pbnRlcnZhbCkgfHwgIW8ubWF4X2ludGVydmFsIHx8IG8ubWF4X2ludGVydmFsIDwgMCkgewogICAgICAgICAgICAgICAgby5tYXhfaW50ZXJ2YWwgPSAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoby5taW5faW50ZXJ2YWwgJiYgby5taW5faW50ZXJ2YWwgPiBvLm1heCAtIG8ubWluKSB7CiAgICAgICAgICAgICAgICBvLm1pbl9pbnRlcnZhbCA9IG8ubWF4IC0gby5taW47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChvLm1heF9pbnRlcnZhbCAmJiBvLm1heF9pbnRlcnZhbCA+IG8ubWF4IC0gby5taW4pIHsKICAgICAgICAgICAgICAgIG8ubWF4X2ludGVydmFsID0gby5tYXggLSBvLm1pbjsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGRlY29yYXRlOiBmdW5jdGlvbiAobnVtLCBvcmlnaW5hbCkgewogICAgICAgICAgICB2YXIgZGVjb3JhdGVkID0gIiIsCiAgICAgICAgICAgICAgICBvID0gdGhpcy5vcHRpb25zOwoKICAgICAgICAgICAgaWYgKG8ucHJlZml4KSB7CiAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgKz0gby5wcmVmaXg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGRlY29yYXRlZCArPSBudW07CgogICAgICAgICAgICBpZiAoby5tYXhfcG9zdGZpeCkgewogICAgICAgICAgICAgICAgaWYgKG8udmFsdWVzLmxlbmd0aCAmJiBudW0gPT09IG8ucF92YWx1ZXNbby5tYXhdKSB7CiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdGVkICs9IG8ubWF4X3Bvc3RmaXg7CiAgICAgICAgICAgICAgICAgICAgaWYgKG8ucG9zdGZpeCkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgKz0gIiAiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZ2luYWwgPT09IG8ubWF4KSB7CiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdGVkICs9IG8ubWF4X3Bvc3RmaXg7CiAgICAgICAgICAgICAgICAgICAgaWYgKG8ucG9zdGZpeCkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgKz0gIiAiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKG8ucG9zdGZpeCkgewogICAgICAgICAgICAgICAgZGVjb3JhdGVkICs9IG8ucG9zdGZpeDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRlZDsKICAgICAgICB9LAoKICAgICAgICB1cGRhdGVGcm9tOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMucmVzdWx0LmZyb20gPSB0aGlzLm9wdGlvbnMuZnJvbTsKICAgICAgICAgICAgdGhpcy5yZXN1bHQuZnJvbV9wZXJjZW50ID0gdGhpcy5jb252ZXJ0VG9QZXJjZW50KHRoaXMucmVzdWx0LmZyb20pOwogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnZhbHVlcykgewogICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQuZnJvbV92YWx1ZSA9IHRoaXMub3B0aW9ucy52YWx1ZXNbdGhpcy5yZXN1bHQuZnJvbV07CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICB1cGRhdGVUbzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLnJlc3VsdC50byA9IHRoaXMub3B0aW9ucy50bzsKICAgICAgICAgICAgdGhpcy5yZXN1bHQudG9fcGVyY2VudCA9IHRoaXMuY29udmVydFRvUGVyY2VudCh0aGlzLnJlc3VsdC50byk7CiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudmFsdWVzKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdC50b192YWx1ZSA9IHRoaXMub3B0aW9ucy52YWx1ZXNbdGhpcy5yZXN1bHQudG9dOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlUmVzdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMucmVzdWx0Lm1pbiA9IHRoaXMub3B0aW9ucy5taW47CiAgICAgICAgICAgIHRoaXMucmVzdWx0Lm1heCA9IHRoaXMub3B0aW9ucy5tYXg7CiAgICAgICAgICAgIHRoaXMudXBkYXRlRnJvbSgpOwogICAgICAgICAgICB0aGlzLnVwZGF0ZVRvKCk7CiAgICAgICAgfSwKCgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBHcmlkCgogICAgICAgIGFwcGVuZEdyaWQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZ3JpZCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbyA9IHRoaXMub3B0aW9ucywKICAgICAgICAgICAgICAgIGksIHosCgogICAgICAgICAgICAgICAgdG90YWwgPSBvLm1heCAtIG8ubWluLAogICAgICAgICAgICAgICAgYmlnX251bSA9IG8uZ3JpZF9udW0sCiAgICAgICAgICAgICAgICBiaWdfcCA9IDAsCiAgICAgICAgICAgICAgICBiaWdfdyA9IDAsCgogICAgICAgICAgICAgICAgc21hbGxfbWF4ID0gNCwKICAgICAgICAgICAgICAgIGxvY2FsX3NtYWxsX21heCwKICAgICAgICAgICAgICAgIHNtYWxsX3AsCiAgICAgICAgICAgICAgICBzbWFsbF93ID0gMCwKCiAgICAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICAgICBodG1sID0gJyc7CgoKCiAgICAgICAgICAgIHRoaXMuY2FsY0dyaWRNYXJnaW4oKTsKCiAgICAgICAgICAgIGlmIChvLmdyaWRfc25hcCkgewogICAgICAgICAgICAgICAgYmlnX251bSA9IHRvdGFsIC8gby5zdGVwOwogICAgICAgICAgICAgICAgYmlnX3AgPSB0aGlzLnRvRml4ZWQoby5zdGVwIC8gKHRvdGFsIC8gMTAwKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBiaWdfcCA9IHRoaXMudG9GaXhlZCgxMDAgLyBiaWdfbnVtKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGJpZ19udW0gPiA0KSB7CiAgICAgICAgICAgICAgICBzbWFsbF9tYXggPSAzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChiaWdfbnVtID4gNykgewogICAgICAgICAgICAgICAgc21hbGxfbWF4ID0gMjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYmlnX251bSA+IDE0KSB7CiAgICAgICAgICAgICAgICBzbWFsbF9tYXggPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChiaWdfbnVtID4gMjgpIHsKICAgICAgICAgICAgICAgIHNtYWxsX21heCA9IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiaWdfbnVtICsgMTsgaSsrKSB7CiAgICAgICAgICAgICAgICBsb2NhbF9zbWFsbF9tYXggPSBzbWFsbF9tYXg7CgogICAgICAgICAgICAgICAgYmlnX3cgPSB0aGlzLnRvRml4ZWQoYmlnX3AgKiBpKTsKCiAgICAgICAgICAgICAgICBpZiAoYmlnX3cgPiAxMDApIHsKICAgICAgICAgICAgICAgICAgICBiaWdfdyA9IDEwMDsKCiAgICAgICAgICAgICAgICAgICAgbG9jYWxfc21hbGxfbWF4IC09IDI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsX3NtYWxsX21heCA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfc21hbGxfbWF4ID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdbaV0gPSBiaWdfdzsKCiAgICAgICAgICAgICAgICBzbWFsbF9wID0gKGJpZ193IC0gKGJpZ19wICogKGkgLSAxKSkpIC8gKGxvY2FsX3NtYWxsX21heCArIDEpOwoKICAgICAgICAgICAgICAgIGZvciAoeiA9IDE7IHogPD0gbG9jYWxfc21hbGxfbWF4OyB6KyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoYmlnX3cgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzbWFsbF93ID0gdGhpcy50b0ZpeGVkKGJpZ193IC0gKHNtYWxsX3AgKiB6KSk7CgogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIGNsYXNzPSJpcnMtZ3JpZC1wb2wgc21hbGwiIHN0eWxlPSJsZWZ0OiAnICsgc21hbGxfdyArICclIj48L3NwYW4+JzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBodG1sICs9ICc8c3BhbiBjbGFzcz0iaXJzLWdyaWQtcG9sIiBzdHlsZT0ibGVmdDogJyArIGJpZ193ICsgJyUiPjwvc3Bhbj4nOwoKICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMuY29udmVydFRvVmFsdWUoYmlnX3cpOwogICAgICAgICAgICAgICAgaWYocmVzdWx0ICE9IDQ5OTkgJiYgcmVzdWx0ICE9IDk5OTkgJiYgcmVzdWx0ICE9IDUwKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gTWF0aC5yb3VuZChyZXN1bHQvIDEwMCkgKiAxMDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoby52YWx1ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gby5wX3ZhbHVlc1tyZXN1bHRdOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLl9wcmV0dGlmeShyZXN1bHQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIGNsYXNzPSJpcnMtZ3JpZC10ZXh0IGpzLWdyaWQtdGV4dC0nICsgaSArICciIHN0eWxlPSJsZWZ0OiAnICsgYmlnX3cgKyAnJSI+JyArIHJlc3VsdCArICc8L3NwYW4+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdfbnVtID0gTWF0aC5jZWlsKGJpZ19udW0gKyAxKTsKCgoKICAgICAgICAgICAgdGhpcy4kY2FjaGUuY29udC5hZGRDbGFzcygiaXJzLXdpdGgtZ3JpZCIpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5ncmlkLmh0bWwoaHRtbCk7CiAgICAgICAgICAgIHRoaXMuY2FjaGVHcmlkTGFiZWxzKCk7CiAgICAgICAgfSwKCiAgICAgICAgY2FjaGVHcmlkTGFiZWxzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciAkbGFiZWwsIGksCiAgICAgICAgICAgICAgICBudW0gPSB0aGlzLmNvb3Jkcy5iaWdfbnVtOwoKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAgICAgICAgICAgICAgICAkbGFiZWwgPSB0aGlzLiRjYWNoZS5ncmlkLmZpbmQoIi5qcy1ncmlkLXRleHQtIiArIGkpOwogICAgICAgICAgICAgICAgdGhpcy4kY2FjaGUuZ3JpZF9sYWJlbHMucHVzaCgkbGFiZWwpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmNhbGNHcmlkTGFiZWxzKCk7CiAgICAgICAgfSwKCiAgICAgICAgY2FsY0dyaWRMYWJlbHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGksIGxhYmVsLCBzdGFydCA9IFtdLCBmaW5pc2ggPSBbXSwKICAgICAgICAgICAgICAgIG51bSA9IHRoaXMuY29vcmRzLmJpZ19udW07CgogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLmJpZ193W2ldID0gdGhpcy4kY2FjaGUuZ3JpZF9sYWJlbHNbaV0ub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy5iaWdfcFtpXSA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5iaWdfd1tpXSAvIHRoaXMuY29vcmRzLndfcnMgKiAxMDApOwogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMuYmlnX3hbaV0gPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMuYmlnX3BbaV0gLyAyKTsKCiAgICAgICAgICAgICAgICBzdGFydFtpXSA9IHRoaXMudG9GaXhlZCh0aGlzLmNvb3Jkcy5iaWdbaV0gLSB0aGlzLmNvb3Jkcy5iaWdfeFtpXSk7CiAgICAgICAgICAgICAgICBmaW5pc2hbaV0gPSB0aGlzLnRvRml4ZWQoc3RhcnRbaV0gKyB0aGlzLmNvb3Jkcy5iaWdfcFtpXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VfZWRnZXMpIHsKICAgICAgICAgICAgICAgIGlmIChzdGFydFswXSA8IC10aGlzLmNvb3Jkcy5ncmlkX2dhcCkgewogICAgICAgICAgICAgICAgICAgIHN0YXJ0WzBdID0gLXRoaXMuY29vcmRzLmdyaWRfZ2FwOwogICAgICAgICAgICAgICAgICAgIGZpbmlzaFswXSA9IHRoaXMudG9GaXhlZChzdGFydFswXSArIHRoaXMuY29vcmRzLmJpZ19wWzBdKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb29yZHMuYmlnX3hbMF0gPSB0aGlzLmNvb3Jkcy5ncmlkX2dhcDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoZmluaXNoW251bSAtIDFdID4gMTAwICsgdGhpcy5jb29yZHMuZ3JpZF9nYXApIHsKICAgICAgICAgICAgICAgICAgICBmaW5pc2hbbnVtIC0gMV0gPSAxMDAgKyB0aGlzLmNvb3Jkcy5ncmlkX2dhcDsKICAgICAgICAgICAgICAgICAgICBzdGFydFtudW0gLSAxXSA9IHRoaXMudG9GaXhlZChmaW5pc2hbbnVtIC0gMV0gLSB0aGlzLmNvb3Jkcy5iaWdfcFtudW0gLSAxXSk7CgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29vcmRzLmJpZ194W251bSAtIDFdID0gdGhpcy50b0ZpeGVkKHRoaXMuY29vcmRzLmJpZ19wW251bSAtIDFdIC0gdGhpcy5jb29yZHMuZ3JpZF9nYXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmNhbGNHcmlkQ29sbGlzaW9uKDIsIHN0YXJ0LCBmaW5pc2gpOwogICAgICAgICAgICB0aGlzLmNhbGNHcmlkQ29sbGlzaW9uKDQsIHN0YXJ0LCBmaW5pc2gpOwoKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAgICAgICAgICAgICAgICBsYWJlbCA9IHRoaXMuJGNhY2hlLmdyaWRfbGFiZWxzW2ldWzBdOwogICAgICAgICAgICAgICAgbGFiZWwuc3R5bGUubWFyZ2luTGVmdCA9IC10aGlzLmNvb3Jkcy5iaWdfeFtpXSArICIlIjsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIC8vIENvbGxpc2lvbnMgQ2FsYyBCZXRhCiAgICAgICAgLy8gVE9ETzogUmVmYWN0b3IgdGhlbiBoYXZlIHBsZW50eSBvZiB0aW1lCiAgICAgICAgY2FsY0dyaWRDb2xsaXNpb246IGZ1bmN0aW9uIChzdGVwLCBzdGFydCwgZmluaXNoKSB7CiAgICAgICAgICAgIHZhciBpLCBuZXh0X2ksIGxhYmVsLAogICAgICAgICAgICAgICAgbnVtID0gdGhpcy5jb29yZHMuYmlnX251bTsKCiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW07IGkgKz0gc3RlcCkgewogICAgICAgICAgICAgICAgbmV4dF9pID0gaSArIChzdGVwIC8gMik7CiAgICAgICAgICAgICAgICBpZiAobmV4dF9pID49IG51bSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxhYmVsID0gdGhpcy4kY2FjaGUuZ3JpZF9sYWJlbHNbbmV4dF9pXVswXTsKCiAgICAgICAgICAgICAgICBpZiAoZmluaXNoW2ldIDw9IHN0YXJ0W25leHRfaV0pIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBjYWxjR3JpZE1hcmdpbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5ncmlkX21hcmdpbikgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmNvb3Jkcy53X3JzID0gdGhpcy4kY2FjaGUucnMub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgIGlmICghdGhpcy5jb29yZHMud19ycykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICJzaW5nbGUiKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvb3Jkcy53X2hhbmRsZSA9IHRoaXMuJGNhY2hlLnNfc2luZ2xlLm91dGVyV2lkdGgoZmFsc2UpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5jb29yZHMud19oYW5kbGUgPSB0aGlzLiRjYWNoZS5zX2Zyb20ub3V0ZXJXaWR0aChmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5jb29yZHMucF9oYW5kbGUgPSB0aGlzLnRvRml4ZWQodGhpcy5jb29yZHMud19oYW5kbGUgIC8gdGhpcy5jb29yZHMud19ycyAqIDEwMCk7CiAgICAgICAgICAgIHRoaXMuY29vcmRzLmdyaWRfZ2FwID0gdGhpcy50b0ZpeGVkKCh0aGlzLmNvb3Jkcy5wX2hhbmRsZSAvIDIpIC0gMC4xKTsKCiAgICAgICAgICAgIHRoaXMuJGNhY2hlLmdyaWRbMF0uc3R5bGUud2lkdGggPSB0aGlzLnRvRml4ZWQoMTAwIC0gdGhpcy5jb29yZHMucF9oYW5kbGUpICsgIiUiOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5ncmlkWzBdLnN0eWxlLmxlZnQgPSB0aGlzLmNvb3Jkcy5ncmlkX2dhcCArICIlIjsKICAgICAgICB9LAoKCgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAvLyBQdWJsaWMgbWV0aG9kcwoKICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uIChvcHRpb25zKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5pbnB1dCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvL3RoaXMuaXNfdXBkYXRlID0gdHJ1ZTsKCiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5mcm9tID0gdGhpcy5yZXN1bHQuZnJvbTsKICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRvID0gdGhpcy5yZXN1bHQudG87CgogICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSAkLmV4dGVuZCh0aGlzLm9wdGlvbnMsIG9wdGlvbnMpOwogICAgICAgICAgICB0aGlzLnZhbGlkYXRlKCk7CiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVzdWx0KG9wdGlvbnMpOwoKICAgICAgICAgICAgdGhpcy50b2dnbGVJbnB1dCgpOwogICAgICAgICAgICB0aGlzLnJlbW92ZSgpOwogICAgICAgICAgICB0aGlzLmluaXQodHJ1ZSk7CiAgICAgICAgfSwKCiAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLmlucHV0KSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVzdWx0KCk7CiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7CiAgICAgICAgfSwKCiAgICAgICAgZGVzdHJveTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuaW5wdXQpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy50b2dnbGVJbnB1dCgpOwogICAgICAgICAgICB0aGlzLiRjYWNoZS5pbnB1dC5wcm9wKCJyZWFkb25seSIsIGZhbHNlKTsKICAgICAgICAgICAgJC5kYXRhKHRoaXMuaW5wdXQsICJpb25SYW5nZVNsaWRlciIsIG51bGwpOwoKICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTsKICAgICAgICAgICAgdGhpcy5pbnB1dCA9IG51bGw7CiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IG51bGw7CiAgICAgICAgfQogICAgfTsKCiAgICAkLmZuLmlvblJhbmdlU2xpZGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoISQuZGF0YSh0aGlzLCAiaW9uUmFuZ2VTbGlkZXIiKSkgewogICAgICAgICAgICAgICAgJC5kYXRhKHRoaXMsICJpb25SYW5nZVNsaWRlciIsIG5ldyBJb25SYW5nZVNsaWRlcih0aGlzLCBvcHRpb25zLCBwbHVnaW5fY291bnQrKykpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9OwoKCgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIGh0dHA6Ly9wYXVsaXJpc2guY29tLzIwMTEvcmVxdWVzdGFuaW1hdGlvbmZyYW1lLWZvci1zbWFydC1hbmltYXRpbmcvCiAgICAvLyBodHRwOi8vbXkub3BlcmEuY29tL2Vtb2xsZXIvYmxvZy8yMDExLzEyLzIwL3JlcXVlc3RhbmltYXRpb25mcmFtZS1mb3Itc21hcnQtZXItYW5pbWF0aW5nCgogICAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHBvbHlmaWxsIGJ5IEVyaWsgTcO2bGxlci4gZml4ZXMgZnJvbSBQYXVsIElyaXNoIGFuZCBUaW5vIFppamRlbAoKICAgIC8vIE1JVCBsaWNlbnNlCgogICAgKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBsYXN0VGltZSA9IDA7CiAgICAgICAgdmFyIHZlbmRvcnMgPSBbJ21zJywgJ21veicsICd3ZWJraXQnLCAnbyddOwogICAgICAgIGZvcih2YXIgeCA9IDA7IHggPCB2ZW5kb3JzLmxlbmd0aCAmJiAhd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZTsgKyt4KSB7CiAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3dbdmVuZG9yc1t4XSsnUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ107CiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSA9IHdpbmRvd1t2ZW5kb3JzW3hdKydDYW5jZWxBbmltYXRpb25GcmFtZSddCiAgICAgICAgICAgICAgICB8fCB3aW5kb3dbdmVuZG9yc1t4XSsnQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ107CiAgICAgICAgfQoKICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpCiAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbihjYWxsYmFjaywgZWxlbWVudCkgewogICAgICAgICAgICAgICAgdmFyIGN1cnJUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICB2YXIgdGltZVRvQ2FsbCA9IE1hdGgubWF4KDAsIDE2IC0gKGN1cnJUaW1lIC0gbGFzdFRpbWUpKTsKICAgICAgICAgICAgICAgIHZhciBpZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYWxsYmFjayhjdXJyVGltZSArIHRpbWVUb0NhbGwpOyB9LAogICAgICAgICAgICAgICAgICAgIHRpbWVUb0NhbGwpOwogICAgICAgICAgICAgICAgbGFzdFRpbWUgPSBjdXJyVGltZSArIHRpbWVUb0NhbGw7CiAgICAgICAgICAgICAgICByZXR1cm4gaWQ7CiAgICAgICAgICAgIH07CgogICAgICAgIGlmICghd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKQogICAgICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbihpZCkgewogICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGlkKTsKICAgICAgICAgICAgfTsKICAgIH0oKSk7Cgp9KSk7Cg=="}},"time_used":984,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":973,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/features/5a42694667e53.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.879Z","timestamp":1785126645879,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/features/5a42694667e53.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 33283\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":33283,"size_decoded":33528,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"6cec14fdc70ccbc50f075bd34a5e405b","sha1":"5b50c3f5b60162ceefdd436d4a0adc2cefc4fcae","sha256":"358eade2ae8742f5c1ba4781a656c568a9da060f406c2fc2119e8de3e4ea5299","sha512":"d995bd2a347edf0d2fcc88310d92fc6151c2285611bf963d230f3cef9817d3691c7f92e417117a940d72a8fad0ffb589af7a90d90c3eb09648084c1467962716","ssdeep":"384:rf69A4yyyyyyr9KWLi0HG6VdJtrUOYYmI8Pykp6VlO77riQEm0EwsJChvPOv8yyo:j62c9KSi+Gmjt4OhmIiyw6jfW","tlshash":"9be2d068c5f5f5842accae7a6d92921d9a302a8335d44cc273ce191b7f63b8c4cdf489","first_seen":"2025-03-17T20:39:33.111038Z","last_seen":"2026-07-27T04:32:40.535487Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjAxKzA2OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTItMjZUMjE6MjE6NTErMDY6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjUxKzA2OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmZlNWFkNDU0LWRlOWItNTE0YS04M2JjLTEyMTQ5NDU5MGViYzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpBRDhDMDhFQ0Q0RkMxMUU3OEMwMThFNUJCNTE0NkU3MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDpBRDhDMDhFOUQ0RkMxMUU3OEMwMThFNUJCNTE0NkU3Mzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpBRDhDMDhFQUQ0RkMxMUU3OEMwMThFNUJCNTE0NkU3Mzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOkFEOEMwOEVDRDRGQzExRTc4QzAxOEU1QkI1MTQ2RTczPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmZTVhZDQ1NC1kZTliLTUxNGEtODNiYy0xMjE0OTQ1OTBlYmM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjZUMjE6MjE6NTErMDY6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+Hkx2bAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAABH3UlEQVR42uydd3wc1b23vzOzRauVVlr1Xm1ZlizL3QYbDBgbg8F0SEgCoSUhN9z3hksgebnpb3ogpHJTaAkQCMRgCM1UY2PcbdmSLVm9967VrrQ7M+8ftsE4mtldaSXtSt/nk3yi+MzMTjnnPOd35pwzgqqqIIQQQvxF5C0ghBBCgRBCCKFACCGEUCCEEEIoEEIIIYQCIYQQQoEQQgihQAghhFAghBBCKBBCCCGEAiGEEEKBEEIIoUAIIYRQIIQQQigQQgghhAIhhBBCgRBCCKFACCGEUCCEEEIoEEIIIYQCIYQQQoEQQgihQAghhFAghBBCKBBCCCGEAiGEEEKBEEIIoUAIIYRQIIQQQigQQgghhAIhhBBCgRBCCKFACCGEUCCEEEIoEEIIIcRfDMF2QsUH7uFTIZNN18n/EQQBEE7/DQBQT/9/DQSoJ/9Q1dP/pJ78j3ryT8Tz9pLJomTpQxQIIZOE6u/m6tm7ClN2DgIfF2EEQkhQSyLkroNiIRQIIZQFxUIoEEIoi+C7PxQKoUAIK0RCoRAKhBBKg0IhFAghFMYMuveUCaFACKVBKBNCgRBK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"}},"time_used":966,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":963,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/74.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.644Z","timestamp":1785126646644,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/74.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 4251\r\nage: 75017\r\nlast-modified: Tue, 19 Oct 2021 05:36:06 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:40:40 GMT\r\ncache-control: max-age=86400\r\netag: \"ae64499c8825452f6262177ee6dd525b\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: OzlfOxo6Ig7mLqzS5Vap8vkNU3WK-vhiHRu4-sRxiEJwidnkdSP2nA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":4251,"size_decoded":4777,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"ae64499c8825452f6262177ee6dd525b","sha1":"92a35e0817cefb5befbb18422fb4c9d220f6754c","sha256":"47fb417f6b72c4edc08dfb90a376b2c88b3b51992bf3c83dd14e011edba2f339","sha512":"1a776374f3c20d16bf0c84dbb28a6ca3d0a110ca928aa87f56d79d09b898091b84f4d3ea164a6c79db0c9fedeb66167bd83b854267c2870394f70dc536117441","ssdeep":"96:IqQDUBKTuBVrN2Dc4tR/HAwaHEIkVZdBrc2nPatF:IL4cTIB8c4n/HbIegdF","tlshash":"00918ede37594349986e152b32ca7f282c32b7db00753e35ad4946c327b4063e5d6714","first_seen":"2023-05-04T14:40:12Z","last_seen":"2026-07-27T08:07:37.452459Z","times_seen":14749,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAQYklEQVR4Xu2beVRUV57HnXP6v/SZOXPOnJ45Pd3TnaWdY7RZhLglrklMtG07nUnS6U73TCfartEEjRFsg0QWQ2s0uEIjiMu4xLgkUVEguGRcQEQEESiqgKIoiqKAoopF1CS/ud/76j5e3feqKCJJd5/T95zvebW85ff53t+99/dewbBhf2/ffMtIingxPTnClp4UQUIZkrTfYV8cI5/nb6ZtSxj5XQbylQBKiw+j+KUjadWiR+mdJSPpTytH0ZaEMEpPVITX+AzfYR/si2M0pnyFc8rX+atrGYlRD/PeTY6geAYTx2Ayk8Mpf1cU5Q1SOAbH4hw4F87Jz82uIV/3L95ET615YyRlpoTpYIZKODeuIa4nx/GtNxbETQGOFFaDzR5Nn2eP1wEMlXAtjRE35bi+lYaLb3onjI/Z/Bz/ACtO/ZaKsifSyeRoXfD3q/zdvi27Jq6NGL7VbNiRFL4OF3xnyaN0fMdoXYBQ3dl51HBhEeWmPkbHU4fOhJw/RtPu1dGUs6r/nIgBsSAmxCbHO6QtPSlyEi4Ut3CErte1Kj7yAtWfW0iFaePoZEo0ncnW7zNo7ZxK+RnTuAHQx5v7v0MsiEkZEpGT5LiHpKUnh/8WF0haPlIfnKQjW8dSw/mF9NkHY7kBn66/vywozJpG53JmUOHOpwyzQAixcRNYrHL899UE/OrXH9Vd1EiHPoiiemZA/kbFAEjeJ1QdeTeKrh6axeGh09umqlmQZ5CFiHFITdieEjZxMPDQh8yAa/ufpYvpj6sGnFw3eBOOrB1NH78/mXLTp6vavGwCbX9rPDdATIiyhAmIXeYZVNuRFJHM037ZwGkvhPFoKphDF7aPYRpLlzPHU/nBSaoqDk2my/vG8/1OZkbR0a1RtH9jFB3w6eAmZfvRu6NpT2w45WU+y8G3LR9P25eP5dqyfAI3IDdTf30hxKxMjBHJMlfITUx48smD6ZP0KCrdP5PObxtD5rzfqNKaMJAAD21dHEanM6bT1pgxFPdKBP3+mRH0wqThlDJPGQInduivr5WYGGWukJpY6oLN9lDB7gf9ZGFLYHFONFkKXvZTxaEouvlhtKqi7Eep8uMZVHlcUcWxZ6lkbzSdWv8IHY7/Hm2cO4L2xI+jw6mTOPSssY/w7YuTh/NhAANOpuvj0QqxiyVS5gva2FJSjgIj0DovlPvnYeR2Vmtkot4OC912W6ivs57udjXy11C3y8TlcdaQp6VGed9W6ydvq4mrramamuuqqKXhOm1Y8hM6tXkKZSVM5AYkz42mLTGKAYHmAK3AoBRLkeUyZ8DGU3/RwJNebuYwcjVXk5cFf8dTz6XA13F4bgB7LQzoYnAcXgJX4PsN6GRGttlrqN1hovZmdoyrgV6drRiw9rXR6lIoxxNIYAk5C7BjAquzB0p9aHfKMLrnbVDhhQQ81AdTOhQDRM8jS4R62s3cAJgjzOhi+3T44LGtNVWRmclae5P2p0yhvWvG0K640A0AC5hCMgE7pb6tubEJIKz17dde9wNHT9/1WqnH3aAa0NVm5tCdLYoB/fB1fkboM0KBb7RUc3jIaauhTpeVruY8QQVbxhnWAYEEpgENyEwMexBOyQcbyXx2PjmL5vv3PIPv7WzgBtyRDHA7FCDe6+56VUoWWFiv98P34DMmmOBpVTLBYa3hx0P4/ErWBDqx/TFdXMEENjDK3GqDQxnJA9/P79sQTq6S5dRavIBBWjl8n6eBqqoqqamxVjGAmQF4SASOdNfCA1orbQYIEyB8JzKizVZNdksVedlkWpQ1LqShKgS2gFmAR0546iIfZKSWohhuQFfH5/TF3U5uQK/XTq4WKxHdYZNiPQe/wybA3nbFAExyvRp4bgAMMjBACy+bgNUB6nSwjGgsokNp+viCCYyGj9eYM1/iWZx8gCwUOoB3m7YxAy7R3V4HS3cbM8BBJlMNzwKsAoCHulxm/0kPac+WSJOpmqpu3SSvq45BCwU2QAwJ9D4McDfX8CzI3foPuhiDCYxglflDXvpQpraXraZu9xXq7rzKzWi79hbNe+Vx+p8Xx9G9nhYVHupu7zeggwXtsJnIXFtFPZ5qWjj/1/Rv3/sOfeefvkvXD8+kG8eeU7LDAJ5ngW9yhAHt9mpuADJLjjGYAi6JfPwnBh7/+TnKhHN23wwGX8R0kcGdImdxDNkvLVZUOIfudisG9HmsqoQBWNurblXSnV4n/XL2BPrJQ/9Mz88aQxPHPUwlB2fQzU9foqpTr/CJFFkiGyCygIP75GE1w+nMB3TxBhIYdQZsT4ycjcfQAz29zd89ltx1GQp82wnq7sjnGcDhL8yn5s9eYwY4/OC1BiADbmGIMJNqSzPox//xj/TTEf9K769+mso/+RVX/bX3qK54NfV1NRlKGMDnBN/WZSvTxRpIYAQrmFUDmCOWNSGMf8jrPK7At33KeuQcW+LyyH5xEdVfXM0MmEt9PS6dAbdZWvexXoUBXe115GXamPA87drwCyo9+aoKX3lmDjcA6vWwKrLLrkoY0MPqBwEu5HYNbhiAFcxaA/gDRnlHWZ/tiebwnc2HOXyr9QB9npdEE8f8iKY9/hBZL73jZ8AdLypBfzNgAFSRO1cFh2rOL1PheRZcTTQ0oLfTygsqrQEox09nhdaBEFj9hgHe4K5J3jFv12g6kx1GZw/+nM7+73TqsH2o9H7LUXKYd9PMp0fxcaxVU5ONbI2s+PE0cWGF6NMYAXgA3cqbTzXnYvygZd1mw0kLL9TZoox9YQCGxcVjzxvEbyzdHSLevLdi4PLX26KkP3q/2bQTJzA0wGKuUQ1QTRDDwdej1rJNOmBZvV5lGBgZAGmzoL7isC7eQAKrzoC0+J/qdlSVHUnnD77AUu8Y630l/Vssu2jE8H/RGeBw2JkBJj8DoK9jQGfLNR08N8CJewt/A9ocdfq4Awisfgbg19nta8OlHR9js/54NgSU6rBgzySe9vabW6nHlUu2qj/Tm394UmeAs8VOdlsdh+5gNy7Y9kCdjawSZCuCt4nLeuMDHbBWDUxu2zkdfKAM6Gw160ADCaxgHsAARTABNcCZ7HCqLdlIXscR6m7Mpv2ZS2jpnGk0ma3hwxk4lrMJ0T/mBsi9z9XewAoZi38GlKZS7eU1OniosSSZ3I2FOngjAzAHdLksutgDSWdA8CEwmqX/c3zrtR+gbqdiwNljcdyAN+Y+SY+FfZ9i5j1FkaO+z4ZAE3V1Qja+BTzAhQYaAgAX8jSzUrvHwXWnu38ukA3gEyIrpXOz5NiNpRsCgSbB/N3jOLgwosu6k0+CXdYs8jbspLm/eYKWzJlKS15TBEOczmbydPTDd7N1W2sAAAIZ0FiSosK3VW5mtYPJZ0CzDh4lME9932vcNp9If1zHYCTDSdB4GYT6n7x4G3O4Abbr67kJRXkJHPql2VH0w39/gB55EJOgf+pr4YUBkDDAem2dX68LeOje7TZuQKD01762Xc+mi3ufMohfL8NlMJRCqPyz+RxcqLdpFzdAK6fTTg31Ji7cGQpZ2F1ck7WWbqPC89qo6foGQ2ghV8UGH3x/6t9mRZDS40oNoDWg9KOfUcnBZ3QxG0lXCLEJoTaUUhgrAlJfGNBp3kL1l1bQ4t9PUQ1odzWzO75arkarstWKG8CkNcBZsVFnQFdruV/PB+p9t0PZFu+fxg0I5YdYsIK5PwMSI2ZuXhMW0tOVLmumaoC7ZgO1V/2JGi6vpISlU+n92GeojRngYTNyZ6uFbyE3e+1y4EmRlcMDRmuADN9WmaaDRwksoGV5nGYODx3Zoo9ZKzCCFcyqAdwElhI71ga+HRbqdhzi8B3V66nt1nss2HXUcCmWZcJKKv10LlvvHazcrWey8K3ocRnIfwik+Blwt6dFt78MDeHxGN823qBzGRPo6sHpdDgt+NNiMPqlv9aAUB6InM6KVHrftFExgRmAbd3Ft7kJuBkS0IHghQFNpeuYlKXPUYZzKROfvC9meRne1Vitpv/Z7T/gBiADig9M18WsVbAHIvdCeSSGMXYr91XysiUR4J66feSp30deViW2Vu5k9/rOAeF5j9YdIbf5kCqPLZfu9bbqZn2+L4P0usx8C2jAQx12fF7H4YUBA02Evkdi92T+YXvWhz2A6kg+QFbxsVlkK4qljpqtbPwns6DtXF9APXY/+LvdTfwzGQgSBY4seT+sGJC254XwXLAidxld2fekCj+QAWAEq8zPG58HgjwWg+xXV3GVH3+Zyo7M4JCqCT2BdQ/7qe+bdeACHjW9bEKfzwA+5n0Z0M56v5cVWyUs5bXwhVun6WIWApth+ou2LWnUDxPeDD4MWkrjuQG2opXcAA9LzW424cnAg9EdADJwQ3gmPEPAbw3aDOhmnynQ06n6/HKuW3kLKO+DKbqYhcAGRpnbr8GhdQZlsZDIAAgGAN7Llroveh06sGD6kmWMslwq4IHghcQtMOBRB1QVLmXQy1R4qOzEHwIaAKagvS8adoJTgWoCrQFNRTH8GR1MQJkLCPQWhsWXPtCvept573nZ925nP6xW3R31/Bkg1noIY17OAA5vrWLVYJMOXOhC1mxDA/iPo2+G+OMoGl8SFxovibIB+A0QggkQCiAZMJgEdDDBQP7abeGgtRdZ3VGSQLWX4qjm8xWqAXmbJhsaAJaQ4dEykiNK0uLD6ei2SN3JAhmgNUHI44MUW78eNwANpJ4OpPwCqrnwFjWUrqWGa++qggmqAYCXDAADWMAkcwZtcAx3TQXSX2H4G7CC3ac3+amnAz9oKMKwwPwgBCPkIkkWHwr8h9NqshQlUtW5Nzkch9eAC5kvrwpoAGLX3fkNpuHAWM1QKNw7wc8AI13Y93Mq//jXXKVHX+Lvof878EvdmB2MZHCh+pI16j6yAYj9a8OjZSRFxuLX1MQYZWmUYY0kgLW6fPhFulX4hg4qVMnQWlWfUybEM2L8+wxAzIgdDDLXoFpGcthouPjHxSN0sEaS4SEZKFTVX12jA9bKcmW1Hp5J/KEkYpd5vlbLSIx4LlQTzu+dpYJf+ehXOqiBFGisGwnL4ZlNk4zhWcwyx301YcK6t4MPBQV+lg4smKrOxvCtDBhMWAYv73/ZDz7xDaXYGXJ40XasDY/EuFox72FqubZaBw+I83t/RjdOL9BBGoqNX3lZC0WNZUn9az5TQdoUil00go95xCjHPaQtPTl8JVzGbWV53usKfHEcVRYsoqLDv6DST/5bDxpAMlio0vb60dQn+H+bISbEJsf7jTVcMG1NOMuGh6jsk/+i0uPPq7px8nc6WK2MCppQlc+gy07N52VvHOt1xHBfS939tB3JEcW4+Luszk5dGeFnglbV598akp6/WbCEZd1iSo2N4tfEtRGDHNe33nj6JSk3UbtSJ/jBWy7H8uDNrGSVgYLJfGUVh0Wld+PMIv465/2n1Zuav1ivB2uZCWE/4LNwkvKvdLELhtPezbPIOoh0L/fBVuS/Ttnrn2LV3H/yc4l/r8U15Ov+1TU8cmLBdoue2szGKXpuFRuz8UtH0fq4MZSRMpV2McDdm2ZSesoU/ln8klF8H+yLY8TxOFfAx1h/C21HYtg0BlGpAVLWa5/kz7EvjpHP8/f2DbT/Bywjkv1zCDfPAAAAAElFTkSuQmCC"}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1831.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.687Z","timestamp":1785126646687,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1831.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2694\r\nage: 86237\r\nlast-modified: Tue, 19 Oct 2021 05:33:50 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 04:33:37 GMT\r\ncache-control: max-age=86400\r\netag: \"6ad5509616a5fca9f389801052bea3fe\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: QjFJ3rweCZwwKijHGlIUx94bZjYodlFjZaCS-Su-EWhPjh8-xVxb6A==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2694,"size_decoded":3220,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"6ad5509616a5fca9f389801052bea3fe","sha1":"5b53d204b7e6066409067fba9fce5202ff20e9d6","sha256":"6becc3abea448b67731610708852a70c3ceb99059b2dee98da3711dc0620218a","sha512":"18729e5d7521224c032a2a7f18c154b1d02905dda6a06dc3a1af5d876bc5f651b78699589772cd6158bc1bfa75aead83b084bca2b06539a3e4cc9b4a6d476ded","ssdeep":"","tlshash":"ed512be6a252222ac78335be8a25f1dbdf560afb123220858088c13aa40f750c98a573","first_seen":"2023-05-02T21:54:45Z","last_seen":"2026-07-27T08:07:37.453499Z","times_seen":19806,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/4642.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.697Z","timestamp":1785126646697,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/4642.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 512\r\nage: 4883\r\nlast-modified: Fri, 07 Mar 2025 07:10:13 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:09:45 GMT\r\ncache-control: public, max-age=86400\r\netag: \"9461694e94919b8ea6de7e3db0f232b5\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: -x6M9lFKJBOKgoJkb0VkcsQ102Tqd4obsyTN7HumaalGd05ayoNrHw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":512,"size_decoded":1082,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"9461694e94919b8ea6de7e3db0f232b5","sha1":"e699eedd2c9bcc757317e9861642da43917fc8c2","sha256":"9b3cad62eacf47b257066fda4d3695d45582360164b8b0f1082f74cae3304517","sha512":"6f543ea38f0600ad22dc1e5b155d03df442a3474fc039cace36fc5467901e3634dc8f44da9b8d1a35eb97eabbb9b3a8d61b87052810d1e3a34a56c4abd1a371b","ssdeep":"","tlshash":"e8f005d3a3d216acd438033551ebc6326cc2082048d3d69089d7e57091cc3ac7ae1543","first_seen":"2025-05-17T13:51:35.296693Z","last_seen":"2026-07-27T08:07:37.379319Z","times_seen":1122,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABx0lEQVR4Xt3UwXHbMBQGYZSqElJCSnIJLikdJJYPnPEHyyH+R0EEd2YvWAAPPEitzeP3h393et+7PG+t/7DU+13L4OOP9pS8t/6hz/a9nQQfNtuX4UNe7VQcfhafzq31Q8/mrT0JB53dQ/HyVTwEL13NErfWX7iav1oBL1vVCC9Z3SE8fBV348GruAsPXc0f+dP6A1fz/o0PcfOQYk8Ve+BD3Dik2FPFHvgtbhpW7KliD+1ww7BiTxV76BcO+fMTe6rYC24YIsWeKvaCG4ZIsaeKveCGIVLsqWIv+Mkhv/+7Yk8Ve9FuIXYWzi3aLcTOwrlFu4XYWTi3aLcQK/ZUsRftFmLFnir2ot1CrNhTxV60W4gVe6rYi3YLsbNwbtFuIXYWzi3aLcTOwrlFu4VYsaeKvegnLkaKPVXsBTcMkWJPFXvBDUOk2FPFXnDDECn2VLEX/IJxWLGnij20ww3Dij1V7KHf4qYhxZ4q9sCHuHFIsaeKPfAhbryqP+Lmq7kLD13F3XjwKg7h4dWN8JJVjfGiVS3hZat5CF66iofi5Wf3KTjkrD4dB57FqTj81b4MHzLbU+CjZnlKfOTRLoMPr7o8ftD/nMI/fb1rr6o8l2IAAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/34387.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.829Z","timestamp":1785126646829,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/34387.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 995\r\nage: 12937\r\nlast-modified: Tue, 03 Dec 2024 12:34:09 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 04:09:54 GMT\r\netag: \"fb99efdd147ed3f3dcaf18ee5ba11bc1\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: 3jxg-rkHoh508LbkCPLkYI5Y-kUz2cDCKdpcuPodJ-IaGv02RsILXg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":995,"size_decoded":1528,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"fb99efdd147ed3f3dcaf18ee5ba11bc1","sha1":"ba52b8959b90666d0fb7eadc44b2eadd65b48541","sha256":"7a46b95ed1f657ff278a9ae67bc785517bca31fcda15ef4db00a01716b13bf14","sha512":"46210d5aac569cf100275ed9d3a7ef6078426703690b70f670313fe52e3acf1750b3c5e3be93a6fc56dce856429e1afc6ab8bc2b4957c2f95f0f5a914f1925c8","ssdeep":"","tlshash":"131108abf71a0cf8883100bf41236070e71883eb8b1a492b8446687ee02e6e40260b0a","first_seen":"2025-09-03T04:31:34.21391Z","last_seen":"2026-07-27T08:07:37.449127Z","times_seen":1088,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADqklEQVR4XuWbMWgUQRSG1wQLQUknNhb2FoJa2Vgq2FjExkqQxLuLBL3AFSIoguRAsNGApLCIFmqhFhY2AcFCA4KCCkJQEYkRonhHcpig95y3c6d3783ezuzc7O45P3wEsjNv583tvHkzOxsEaWgMNgdFmBLMBwVYFH9rAiDUWtfmw7JYZzAFm4ILMCScqArqCkdNQRvV0Cbazq1GYTiQv3JT4US/QNtT4b1yI/xlCjCjaKxb8J7hU5GlijDJGpY+k7RZ7iWDWkPRmKxopBc0S3BE0YB8gG1zJxGBS/CQ3TRvYBv7PlvIaY3fLM/0LUDK6Y3fYBCwny7Fo0SNDhpWw2EQxnwcYUxIojxHe1OMZ4csx31BMCY42WJcUSYJRvGgCGvMgGuE49OPAX43gendMsCW07IMq6fPGnVTrQzS26ESwMYv6jbXp++8riEaaTOv5JYCdbO3lmuyDrOjS0+lvao7BfDxG3UxXpX7Clu6oI9KZZDtnZijrukLO4/a00aZJRahzAq6xPDRp9p1XmFTnzLxPsz4XO7kcCw74PA1hU19mt0ZYgaPv3UHXFfYNKFrGMgNTF7IJZYdcPCqwqYJJbjY2QH92L015v0KdUtfW89we4bUOzuAXjTmwBWAuy/ktDb3HGDnOV6GsucydUtfVrlAG+sOEI148JI27Z+aIq0dnZXlWN1W/aeLtFa89lUVtpLQch738vnFOMQ8/HODNk2tV58hshN2VGjp3rq1wG1YMIUdgK+i6IXeCGe+1mnTeuv2gsIOMk5LRmvijqK+HfOY/uL7OHqhJ8dmadP0tPsSsSU68tFrWqpbtQbAIZzzbTK/KND3QP2iMhrL6ev4TWlneEI6R7WyCrANIzwOmYhh00dq5gHQ4JE1VWMd0nC6G/aPGEbO0mb3TzNP+P2cw/4Rg/cd8D8OgVSD4NEb0g4GwaUf9GoWQTDBNIhL0SRKMg2urrufBlNJhHB9wOwgBkPKTSLkfSpsuRjCBkVJZzH07AOtFa/9VYWtJFivBjvYOw1wTyyH3yzJx317hZeh5Gk5PHAbIiNlbs+Qrg0R/7bE0Oe/8n5T1PttcZTfL0aCTIZBvl6Nobx+OdoWreAaw6Hg9vU4yvsDEqicHZF5+yXNIzIo7w9Jobw+JteW1wclQ/l+VBaVZTywxXjcRymDLNGayGwvsXz+YKJTeZ4dEkd7U3n90VSnMkibFWimt67k9YeTnfL201kmBx9P45m+8Nd2Gd1dKsefz/8BVrZ7wl05T0oAAAAASUVORK5CYII="}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.411Z","timestamp":1785126646411,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 3807228\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: font/woff2\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: \"65850a373e258f1c897a2b3d75eb74de\"\r\nlast-modified: Sat, 13 Jun 2026 02:56:57 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::6llhh-1781319417508-42ed70ceb10a\r\nx-xss-protection: 1; mode=block\r\nserver-timing: cfExtPri\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=prKEr4FXKB8DAolJuYkVEafvHNNaMHcoiJGm11S6OPNuVnA8g9tO4h3V9eTESmVDHaSP6XBeq6emipUoZsnrXvLnFx5hJTbZ6aWUbObbfgslYyZmsIKXhxKWdc6V\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=2,i=?0\r\ncf-ray: a218e9241ff22efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 48432\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":48432,"size_decoded":50497,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48432, version 1.0","md5":"65850a373e258f1c897a2b3d75eb74de","sha1":"1dc044f4824fd5af6bfed67fee48be70fa069f3f","sha256":"c940764593d0fe5d596be327ca7558855e018039fb78509aa21921fd3644c3e4","sha512":"df2683f3dd9724de589451a47bc608c9925d54b874ad97b733dd465ef41f9db75e9e31604762415c2fc1433d050e45fdefc6ecd7ecadf58d1243d9ca5f4bf74b","ssdeep":"768:3IkDHBYoX5Pi4JxTGz9CDR0s1ROSsA8mF77YNt7wFhVq9oN2WfpdqWjBA:tNYoX53xTl/R8W77YNtUFrWoUWvdA","tlshash":"56230251f5f8624a7fc3003fbc317bd862909fe5996ee5d91288f30225611dd29ee017","first_seen":"2025-05-30T12:57:00.85385Z","last_seen":"2026-07-27T08:08:37.707232Z","times_seen":82653,"resource_available":false,"data":"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"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/1975.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.673Z","timestamp":1785126646673,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/1975.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 686\r\nage: 81047\r\nlast-modified: Tue, 02 Sep 2025 10:45:46 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 05:59:59 GMT\r\ncache-control: public, max-age=86400\r\netag: \"c0a4d73d0d9cd1d396e0c5e41d1b91b4\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: tvlP2PfEaAylJfXh5U80pD0fTDkKlXOq2gHp-gF_EVfnkkop5LpLBA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":686,"size_decoded":1257,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"c0a4d73d0d9cd1d396e0c5e41d1b91b4","sha1":"aab369900cddbdb59108c4d1f6d6c1f249d4a2f6","sha256":"8bbcb500ccd5e389ab9d84bf228d0813da46ade54ce6592cd9e8cb86635cfe9d","sha512":"9c4fe111c72a0a7b8ec61c8d4341db40dd9ff8fb32416144c80170316d9a784458447ef3172b0391e326acb4066203c9f3cb85cb436295b2c26c57c6f141a51a","ssdeep":"","tlshash":"9101440748af7bc09f8b0713a31af5a024d333144ea5974a606acd3a3b74a24424eb36","first_seen":"2025-08-31T20:43:13.109147Z","last_seen":"2026-07-27T08:07:37.479169Z","times_seen":1166,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACdUlEQVR4Xt3bPVIbURBFYTIrZAleCpFR6B3ZO2MpLMEZE2IpkEv+WlTPT0/PSKfqJDC3+74iGEE9np425PA6fJ716w/Pt9ePP5fDX+tzD4mHVp9/GDxopvm7xYNN1Xl3w6n8m4dZ4Lvzd8vzz8/nGwco0V27w8Jr6d7NsWCX9mjn8GP4Zal2Tx3s1UIosrH2Ww0X7037luGivWv/2Rxq3+fdLvv8cGNgncfh5d+e4/A9fL/QqyONwwHVuu+Cz1XrvpsYqtRdX2GuUncFDFTojrE4p0J3BAws8jj8dv5UzjPC3AU6P2Bgrs5divPn6tyAgak6rxr3TdV5AQNjdc7auH+szgkYSL16n3cz5/ODMwIGMs13Y59M8wEDmea7sU+m+YCBTPPd2CfTfMBApvlu7JNpPmAg03w39sk0HzCQab4b+2SaDxjINN+NfTLNBwxkmu/GPpnmAwYyzXdjn0zzAQOZ5ruxT6b5gIFM893YJ9N8wECm+W7sk2k+YCDTfDf2yTQfMJBpvhv7ZJoPGMg03419Ms0HDGSa78Y+meYDBjLNd2OfTPMBA5nmu7FPpvmAgdRt/yT2EvokOiNgYKzOWRv3j9U5AQNTdV417puq8wIG5urcpTh/rs4NGFhkwf2d6ntIzg8YqNAdY3FOhe4IGKjUXV9hrlJ33cRQte678NU1+irdl+KAUv+/IjP5fT7FqyNN5zTg3YF343F48zyzCcN3rv3LcNHetO9quHhr7ddC9f2dWRbcQ1pMKNWkPTbHgmvp3t1h4SrP/47jrt1yqPz8UPk+7yYcZqLOu1s8WKb5h8GDqs8/JB767Pk3QZ97ePbwU/8LaXkIU/qPRM8AAAAASUVORK5CYII="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/36148.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.690Z","timestamp":1785126646690,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/36148.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2840\r\nage: 12710\r\nlast-modified: Sun, 13 Apr 2025 05:35:57 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 00:59:43 GMT\r\ncache-control: public, max-age=86400\r\netag: \"fefd4d888e9f75d5894072eb3069d0ad\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: 8FYobAusRhPvvacfkCIeHggZuNE0sX-1p8ZMSwn0493MB1F-M0ErAw==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2840,"size_decoded":3412,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"fefd4d888e9f75d5894072eb3069d0ad","sha1":"e0eaa6772448722d704040a054127ac62394d664","sha256":"1401c583e2a19da1b2409ffc027aa355e1620583bbd63aec3640a973dae68179","sha512":"8762bc530d7841f2a640211d7be58bdc9885c557b9206a9ee6157a006d3ac96015abf4587a5ebf9b1cdb5af2afba95d7613c11bd35e60fabb51925410ac2bcd2","ssdeep":"","tlshash":"40515e8f8f805b1efcf94483752e92b385b254654410948dc32b135cf8489f95315bcb","first_seen":"2025-05-17T13:51:35.319255Z","last_seen":"2026-07-27T08:07:37.432262Z","times_seen":1122,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/36341.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.825Z","timestamp":1785126646825,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/36341.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2140\r\nage: 2362\r\nlast-modified: Fri, 25 Apr 2025 06:46:12 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:52:05 GMT\r\netag: \"8305fed86a2e2e09d8372e143ede512e\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: cFVw9rwAhTyNkPRT-CM-en-Vs0sw2_mJmD5DdiOEguLfaulbfL2mmQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2140,"size_decoded":2673,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"8305fed86a2e2e09d8372e143ede512e","sha1":"6eb7a928467cc34b354b0dcfdab2a5d802162677","sha256":"3b34f8a08b1b5170133d59cf6a13370ddfe19aa8fcfd262dc6577c40a9a85502","sha512":"e6d028ae347fbaedc5f8bb022e87bdf2221fe600a0c4f9c6956f097e394a9e82272501135ac42b2f20c02641ab14fb2c53a2646cc70ecf30236e26ad02f1aebd","ssdeep":"","tlshash":"754109e5a87b96a1d9af6468b8278849bfdf04a0d9f3725d2e068405492e601a300dc7","first_seen":"2025-09-24T03:26:09.454336Z","last_seen":"2026-07-27T08:07:37.352801Z","times_seen":1093,"resource_available":false,"data":"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"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/main.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.862Z","timestamp":1785126645862,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/main.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 1969\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":9948,"size_decoded":2224,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"91acc71ed7521445abb2710eddecc633","sha1":"2aeb57b759ff1a59e8cb7afb3165042c0edc915d","sha256":"51b7e04eb50e39de22b12f3ffd66178abb9a84b469139ce19591f162929b2aa0","sha512":"15c4e792434c999b2c6240bd503764cb6b4b104e416a20b81de702e3e1d9744d4ea6ab18524d01c75cc878dd994368aee15079b722b7e84533c0755b9562c62e","ssdeep":"96:G98UWEECdwOMVhMOM0MwW5SXMqHCZz/mNu0mdu3aKn9KcA:GcEECdw1MOM0MwKSXFHCJAClKn9KcA","tlshash":"be2222949c7220222577f12e9f7f9220f7a6a047a74ad9503c4c5b880f8837c56fe7e8","first_seen":"2024-10-12T23:01:09.042284Z","last_seen":"2026-07-27T04:47:12.495684Z","times_seen":9,"resource_available":true,"data":"IChmdW5jdGlvbiAoJCkgewoJInVzZSBzdHJpY3QiOwogICAgICBqUXVlcnkoZG9jdW1lbnQpLm9uKCdyZWFkeScsIGZ1bmN0aW9uKCkgewoKCiAgICAgICAgIAogICAgICAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgICAgICAgICAgICAgICAgICAvKi0tLS0tLS0tLS0gU2Nyb2xsIHRvIHRvcCAtLS0tLS0tLS0tKi8KICAgICAgICAgICAgICAgICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICAgICAgICAgICAgICAgICAgdmFyIHNjcm9sbF90b3AgPSAkKCcuc2Nyb2xsLXRvcCcpOwogICAgICAgICAgICAgICAgICAgIHNjcm9sbF90b3Aub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7ICAgICAgLy8gV2hlbiBhcnJvdyBpcyBjbGlja2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keSxodG1sJykuYW5pbWF0ZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcCA6IDAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNjcm9sbCB0byB0b3Agb2YgYm9keQogICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMDApOwogICAgICAgICAgICAgICAgICAgICAgfSk7CgoKICAgICAgICAgICAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgICAgPT09PT09PT09PT09IFRvcCBCYXIgPT09PT09PT09PT09PQogICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAgICAgICAgICAgIAogICAgICAgICAgICAvKi0tc2hvdyBhbmQgaGlkZSBzY3JvbGwgdG8gdG9wIEFjdGl2ZSAtLSovCiAgICAgICAgICAgIHZhciBzY3JvbGxfdG9wX2FjdGl2ZSA9ICAkKCcuc2Nyb2xsLXRvcC5hY3RpdmUnKTsKICAgICAgICAgICAgdmFyIHNjcm9sbF90b3AgPSAkKCcuc2Nyb2xsLXRvcCcpCiAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuc2Nyb2xsVG9wKCkgPj0gNTApIHsgICAgICAgIC8vIElmIHBhZ2UgaXMgc2Nyb2xsZWQgbW9yZSB0aGFuIDUwcHgKICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsX3RvcF9hY3RpdmUucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOwogICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsX3RvcC5hZGRDbGFzcygnYWN0aXZlJyk7ICAgIC8vIEZhZGUgaW4gdGhlIGFycm93CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxfdG9wLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsgICAvLyBFbHNlIGZhZGUgb3V0IHRoZSBhcnJvdwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT0gVGVzdCBDaXJjbGUgPT09PT09PT09PT09PQogICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAgICAgICAgICAgICAgdmFyIHRlc3RfY29sb3I0ID0kKCIjdGVzdC1jaXJjbGU0Iik7CiAgICAgICAgICAgICAgdmFyIHRlc3RfY29sb3IzID0kKCIjdGVzdC1jaXJjbGUzIik7CiAgICAgICAgICAgICAgdmFyIHRlc3RfY29sb3IyID0kKCIjdGVzdC1jaXJjbGUyIik7CiAgICAgICAgICAgICAgdmFyIHRlc3RfY29sb3IxID0kKCIjdGVzdC1jaXJjbGUxIik7CiAgICAgICAgICAgICAgYWN0aXZlKDg1LHRlc3RfY29sb3I0KTsKICAgICAgICAgICAgICBhY3RpdmUoNzUsdGVzdF9jb2xvcjMpOwogICAgICAgICAgICAgIGFjdGl2ZSg2NSx0ZXN0X2NvbG9yMik7CiAgICAgICAgICAgICAgYWN0aXZlKDQ1LHRlc3RfY29sb3IxKTsKICAgICAgICAgICAgICBmdW5jdGlvbiBhY3RpdmUocGVyLGlkKXsKICAgICAgICAgICAgICAgIGlkLmNpcmNsaWZ1bCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvblN0ZXA6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAyMCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogMiwKICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50OiBwZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BlcmNlbnQ6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzY4MWIzZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZENvbG9yOiAnIzc3YjA0NycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udENvbG9yOiAnIzY4MWIzZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNvbG9yOiAnIzY4MWIzZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU6ICc0MCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uOiAnbWlkZGxlJwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfTsKCgogICAgICAgICAgICAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgICAgPT09PT09PT09PT09PSBSYWluZHJvcHMgRWZmZWN0ID09PT09PT09PT09PT0KICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtb2JpbGUgPSAoL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGhsanMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZCgpOwogICAgICAgICAgICAgICAgICAgICAgICBobGpzLmNvbmZpZ3VyZSh7dXNlQlI6IHRydWV9KTsKICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjcmFpbmRyb3BzJykucmFpbmRyb3BzKHtjb2xvcjonI2ZmZicsY2FudmFzSGVpZ2h0OjV9KTsKICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjcmFpbmRyb3BzLXJlZCcpLnJhaW5kcm9wcyh7Y29sb3I6JyM2ODFiM2YnLGNhbnZhc0hlaWdodDo1fSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnI3JhaW5kcm9wcy1ncmVlbicpLnJhaW5kcm9wcyh7Y29sb3I6JyMzNDk4ZGInLGNhbnZhc0hlaWdodDo1fSk7CgogICAgICAgICAgICAgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT0gTGlnaHRjYXNlID09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogICAgICAgICAgICAgICAgdmFyIGxpZ2h0Y2FzZSA9JCgnYVtkYXRhLXJlbF49bGlnaHRjYXNlXScpOwogICAgICAgICAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKSB7CiAgICAgICAgICAgICAgICBsaWdodGNhc2UubGlnaHRjYXNlKCk7CiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT0gQ291bnRlcnVwID09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogICAgICAgICAgICAgIHZhciBjb3VudGVyID0gJCgnLmNvdW50ZXInKTsKICAgICAgICAgICAgICBjb3VudGVyLmNvdW50ZXJVcCh7CiAgICAgICAgICAgICAgICAgIGRlbGF5OiAxMCwKICAgICAgICAgICAgICAgICAgdGltZTogMTAwMDAKICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgICAgICAgID09PT09PT09PT09PSBDbGllbnQgQ29udGFpbmVyID09PT09PT09PT09PT0KICAgICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogICAgICAgICAgICAgIHZhciBzd2lwZXIgPSBuZXcgU3dpcGVyKCcuY2xpZW50LWNvbnRhaW5lcicsIHsKCiAgICAgICAgICAgICAgICBuZXh0QnV0dG9uOiAnLnN3aXBlci1idXR0b24tbmV4dCcsCiAgICAgICAgICAgICAgICBwcmV2QnV0dG9uOiAnLnN3aXBlci1idXR0b24tcHJldicsCiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uQ2xpY2thYmxlOiB0cnVlLAogICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogNiwKICAgICAgICAgICAgICAgIHNwYWNlQmV0d2VlbjogMzAsCiAgICAgICAgICAgICAgICBhdXRvcGxheTogMTAwMCwKCiAgICAgICAgICAgICAgICBsb29wOnRydWUsCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7CiAgICAgICAgICAgICAgICAgIC8vIHdoZW4gd2luZG93IHdpZHRoIGlzIDw9IDMyMHB4CiAgICAgICAgICAgICAgICAgIDMyMDogewogICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgLy8gd2hlbiB3aW5kb3cgd2lkdGggaXMgPD0gNDgwcHgKICAgICAgICAgICAgICAgICAgNDgwOiB7CiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAvLyB3aGVuIHdpbmRvdyB3aWR0aCBpcyA8PSA3NjdweAogICAgICAgICAgICAgICAgICA3Njc6IHsKICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAzCgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAvLyB3aGVuIHdpbmRvdyB3aWR0aCBpcyA8PSA5OTBweAogICAgICAgICAgICAgICAgICA5OTA6IHsKICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA0CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgICAgPT09PT09PT09PT09IFNsaWRlciA9PT09PT09PT09PT09CiAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlcl9mb3IgPSAkKCcuc2xpZGVyLWZvcicpOwogICAgICAgICAgICAgICAgICAgIHNsaWRlcl9mb3Iuc2xpY2soewogICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAxLAogICAgICAgICAgICAgICAgICAgICAgICBhcnJvd3M6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBmYWRlOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICBhc05hdkZvcjogJy5zbGlkZXItbmF2JwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgICAgICAgVGVzdGltb25pYWwgU2xpY2sgQ2Fyb3VzZWwgYXMgTmF2CiAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICAgICAgICAgICAgICAgIHZhciBzbGlkZXJfbmF2ID0gJCgnLnNsaWRlci1uYXYnKTsKICAgICAgICAgICAgICAgICAgICBzbGlkZXJfbmF2LnNsaWNrKHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiA1LAogICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSwKICAgICAgICAgICAgICAgICAgICAgICAgYXNOYXZGb3I6ICcuc2xpZGVyLWZvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIGRvdHM6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBhcnJvd3M6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlck1vZGU6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzT25TZWxlY3Q6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlclBhZGRpbmc6ICcxMHB4JywKICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA0NTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiA1LCAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyUGFkZGluZzogJzBweCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdHM6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJNb2RlOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PSBTbGljayBNb2JpbGUgTWVudSA9PT09PT09PT09PT09CiAgICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAgICAgICAgICAgICAgICAgIHZhciBzbGlja05hdkFjdGl2YXRpb24gPSAkKCcjaGVhZGVyLW1lbnUnKTsKICAgICAgICAgICAgICAgICAgIHNsaWNrTmF2QWN0aXZhdGlvbi5zbGlja25hdigpOwoKCiAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2UgaXMtY2hlY2tlZCBjbGFzcyBvbiBidXR0b25zCiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkubG9hZChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmhlYWRlci1uYXZpZ2F0aW9uJykuZWFjaChmdW5jdGlvbiAoaSwgbGlMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJGxpTGlzdCA9ICQobGlMaXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaUxpc3Qub24oJ2NsaWNrJywgJ2xpICcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlMaXN0LmZpbmQoJy5tZW51LWFjdGl2ZScpLnJlbW92ZUNsYXNzKCdtZW51LWFjdGl2ZScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ21lbnUtYWN0aXZlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9qUXVlcnkgZm9yIHBhZ2Ugc2Nyb2xsaW5nIGZlYXR1cmUgLSByZXF1aXJlcyBqUXVlcnkgRWFzaW5nIHBsdWdpbgogICAgICAgICAgICAgICAgICAgICQoJy5oZWFkZXItbmF2aWdhdGlvbicpLmVhY2goZnVuY3Rpb24gKGksIGxpTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgJGxpTGlzdCA9ICQobGlMaXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgJGxpTGlzdC5vbignY2xpY2snLCAnbGkgYScsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRhbmNob3IgPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCwgYm9keScpLnN0b3AoKS5hbmltYXRlKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A6ICQoJGFuY2hvci5hdHRyKCdocmVmJykpLm9mZnNldCgpLnRvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTUwMCwgJ2Vhc2VJbk91dEV4cG8nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwoKCiAgfSk7CgogICQod2luZG93KS5vbignc2Nyb2xsJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICAgICAgICA9PT09PT09PT09PT09IE1haW4gbWVudSBGaXhlZCAgPT09PT09PT09PT09PQogICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAgICAgICAgICAgICAgIHZhciBmaXhlZF90b3AgPSAkKCIubWFpbi1tZW51Iik7CiAgICAgICAgICAgICAgICB2YXIgc2xpY2tuYXYgPSAkKCIuc2xpY2tuYXZfbWVudSIpOwoKICAgICAgICAgICAgICAgIGlmKCAkKHRoaXMpLnNjcm9sbFRvcCgpID4gMTAwICkgeyAKICAgICAgICAgICAgICAgICAgICBmaXhlZF90b3AuYWRkQ2xhc3MoIm1lbnUtZml4ZWQgYW5pbWF0ZWQgZmFkZUluRG93biIpOwogICAgICAgICAgICAgICAgICAgIHNsaWNrbmF2LmFkZENsYXNzKCJzbGljay1wb3NpdGlvbiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICBmaXhlZF90b3AucmVtb3ZlQ2xhc3MoIm1lbnUtZml4ZWQgYW5pbWF0ZWQgZmFkZUluRG93biIpOwogICAgICAgICAgICAgICAgICAgICBzbGlja25hdi5yZW1vdmVDbGFzcygic2xpY2stcG9zaXRpb24iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBiYWNrX3RvcCA9ICQoJyNiYWNrLXRvLXRvcCcpOwoKICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuc2Nyb2xsVG9wKCkgPiAxMDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tfdG9wLmZhZGVJbigpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgYmFja190b3AuZmFkZU91dCgpOwogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICAgICAgICAgICAgPT09PT09PT09PT09PSBTY3JvbGwgRml4ZWQgID09PT09PT09PT09PT0KICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAgICAgICAgICAgICAgICB2YXIgYmFja190b3AgPSAkKCcjYmFjay10by10b3AnKTsKCiAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5zY3JvbGxUb3AoKSA+IDEwMCkgewogICAgICAgICAgICAgICAgICAgICAgIGJhY2tfdG9wLmZhZGVJbigpOwogICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICBiYWNrX3RvcC5mYWRlT3V0KCk7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgICAKICB9KTsKCiAgJCh3aW5kb3cpLm9uKCdsb2FkJyxmdW5jdGlvbigpewogICAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgICA9PT09PT09PT09IFByZS1Mb2FkZXIgPT09PT09PT0KICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogICAgICAgICAgICAgdmFyIHByZUxvYWRlciA9ICQoIiNwcmVsb2FkZXIiKTsKICAgICAgICAgICAgIHByZUxvYWRlci5mYWRlT3V0KDYwMCk7CiAgfSk7CgoKfSkoalF1ZXJ5KTsK"}},"time_used":982,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":973,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.221Z","timestamp":1785126646221,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover= HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://www.bitifinex.live/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 319536\r\ncache-control: public, max-age=3600, stale-while-revalidate=86400\r\ncontent-disposition: inline\r\npriority: u=4,i=?0\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors *\r\ncontent-type: text/html; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nvary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, accept-encoding\r\nx-content-type-options: nosniff\r\nx-frame-options: SAMEORIGIN\r\nx-matched-path: /widget\r\nx-nextjs-prerender: 1\r\nx-nextjs-stale-time: 300\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::l6mrx-1785126646236-e5857d29ffcb\r\nx-xss-protection: 1; mode=block\r\ncf-cache-status: DYNAMIC\r\nserver-timing: cfCacheStatus;desc=\"DYNAMIC\", cfEdge;dur=4,cfOrigin;dur=19, cfExtPri\r\ncontent-encoding: zstd\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=lyH498RELl6PlLNG2CvGGH%2BvysolmVY14yS9T3k9R2h0teGAtA9RUdWDCAD07PQmAwdd1ZhKCF27RHXpr8XtvrgTRChoyulfnvOvsaNNPjycWU8Z0vAThyAacR97\"}]}\r\ncf-ray: a218e922efe52efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare Browser Insights","description":"Cloudflare Browser Insights is a tool that measures the performance of websites from the perspective of users.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Analytics","RUM"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":264025,"size_decoded":33850,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (62918)","md5":"0b66e1b457bb677d8f58fbbe7d1dc0d3","sha1":"21d7b46ede1a80096ad8c0b24ac09e2b9d13baf6","sha256":"2d3fd1241a3c0c323de2b5fea043ea12d3cdf4aa2b288e3911976bb0ec53482c","sha512":"23db906319bb67d11230275571b08ff1a73b3c64c7aa9040d8797999624a297c817a1fad43c8a195e1eb6292fd7799ad2ba1fa36539482afc36f680433297406","ssdeep":"6144:cuwdzaVM7XPgFm+eQQ6L/c7kXl528IyIn:lMQ41k9Sn","tlshash":"7744b464f228ea7ebd3778ac92bce84c320571a1d9f847dde911b2119fc3bf25929114","first_seen":"2026-07-23T13:38:20.379492Z","last_seen":"2026-07-27T08:07:37.465883Z","times_seen":612,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PCEtLVMxSjJHRV9qQzlkRTl5aGE5aEFfdC0tPjxodG1sIGxhbmc9ImVuIj48aGVhZD48bWV0YSBjaGFyU2V0PSJ1dGYtOCIvPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdmlld3BvcnQtZml0PWNvdmVyIi8+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvX25leHQvc3RhdGljL21lZGlhLzgzYWZlMjc4YjZhNmJiM2Mtcy5wLjNhNmJhMDM2LndvZmYyIiBhcz0iZm9udCIgY3Jvc3NvcmlnaW49IiIgdHlwZT0iZm9udC93b2ZmMiIvPjxzdHlsZSBkYXRhLXByZWNlZGVuY2U9Im5leHQiIGRhdGEtaHJlZj0iL19uZXh0L3N0YXRpYy9jaHVua3MvMDcyNWZjNGRiODE0ZjAzNS5jc3MgL19uZXh0L3N0YXRpYy9jaHVua3MvYjM0ZWJiOGFlZmYyMTg2ZS5jc3MiPkBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwIDkwMDtmb250LWRpc3BsYXk6b3B0aW9uYWw7c3JjOnVybCgvX25leHQvc3RhdGljL21lZGlhLzJjNTVhMGU2MDEyMDU3N2Etcy4yYTQ4NTM0YS53b2ZmMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzQ2MC01MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwIDkwMDtmb250LWRpc3BsYXk6b3B0aW9uYWw7c3JjOnVybCgvX25leHQvc3RhdGljL21lZGlhLzljNzJhYTBmNDBlNGVlZjgtcy4xOGE0OGNiYy53b2ZmMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzMwMSxVKzQwMC00NUYsVSs0OTAtNDkxLFUrNEIwLTRCMSxVKzIxMTZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDoxMDAgOTAwO2ZvbnQtZGlzcGxheTpvcHRpb25hbDtzcmM6dXJsKC9fbmV4dC9zdGF0aWMvbWVkaWEvYWQ2NmY5YWZkODk0N2Y4Ni1zLjdhNDBlYjczLndvZmYyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMUY/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjEwMCA5MDA7Zm9udC1kaXNwbGF5Om9wdGlvbmFsO3NyYzp1cmwoL19uZXh0L3N0YXRpYy9tZWRpYS81NDc2ZjY4ZDYwNDYwOTMwLXMuYzk5NWUzNTIud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszNzAtMzc3LFUrMzdBLTM3RixVKzM4NC0zOEEsVSszOEMsVSszOEUtM0ExLFUrM0EzLTNGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjEwMCA5MDA7Zm9udC1kaXNwbGF5Om9wdGlvbmFsO3NyYzp1cmwoL19uZXh0L3N0YXRpYy9tZWRpYS8yYmJlOGQyNjcxNjEzZjFmLXMuNzZkY2IwYjIud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDItMTAzLFUrMTEwLTExMSxVKzEyOC0xMjksVSsxNjgtMTY5LFUrMUEwLTFBMSxVKzFBRi0xQjAsVSszMDAtMzAxLFUrMzAzLTMwNCxVKzMwOC0zMDksVSszMjMsVSszMjksVSsxRUEwLTFFRjksVSsyMEFCfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwIDkwMDtmb250LWRpc3BsYXk6b3B0aW9uYWw7c3JjOnVybCgvX25leHQvc3RhdGljL21lZGlhLzFiZmZhZGFhYmY4OTNhMWUtcy43Y2Q4MTk2My53b2ZmMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMC0yQkEsVSsyQkQtMkM1LFUrMkM3LTJDQyxVKzJDRS0yRDcsVSsyREQtMkZGLFUrMzA0LFUrMzA4LFUrMzI5LFUrMUQwMC0xREJGLFUrMUUwMC0xRTlGLFUrMUVGMi0xRUZGLFUrMjAyMCxVKzIwQTAtMjBBQixVKzIwQUQtMjBDMCxVKzIxMTMsVSsyQzYwLTJDN0YsVStBNzIwLUE3RkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDoxMDAgOTAwO2ZvbnQtZGlzcGxheTpvcHRpb25hbDtzcmM6dXJsKC9fbmV4dC9zdGF0aWMvbWVkaWEvODNhZmUyNzhiNmE2YmIzYy1zLnAuM2E2YmEwMzYud29mZjIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs/PyxVKzEzMSxVKzE1Mi0xNTMsVSsyQkItMkJDLFUrMkM2LFUrMkRBLFUrMkRDLFUrMzA0LFUrMzA4LFUrMzI5LFUrMjAwMC0yMDZGLFUrMjBBQyxVKzIxMjIsVSsyMTkxLFUrMjE5MyxVKzIyMTIsVSsyMjE1LFUrRkVGRixVK0ZGRkR9QGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlciBGYWxsYmFjaztzcmM6bG9jYWwoQXJpYWwpO2FzY2VudC1vdmVycmlkZTo5MC40NCU7ZGVzY2VudC1vdmVycmlkZToyMi41MiU7bGluZS1nYXAtb3ZlcnJpZGU6MC4wJTtzaXplLWFkanVzdDoxMDcuMTIlfS5pbnRlcl8xZWM0ZGQ5Zi1tb2R1bGVfX1VNUGFLR19fY2xhc3NOYW1le2ZvbnQtZmFtaWx5OkludGVyLEludGVyIEZhbGxiYWNrO2ZvbnQtc3R5bGU6bm9ybWFsfS5pbnRlcl8xZWM0ZGQ5Zi1tb2R1bGVfX1VNUGFLR19fdmFyaWFibGV7LS1mb250LWludGVyOiJJbnRlciIsIkludGVyIEZhbGxiYWNrIn0KQGxheWVyIHByb3BlcnRpZXN7QHN1cHBvcnRzICgoKC13ZWJraXQtaHlwaGVuczpub25lKSkgYW5kIChub3QgKG1hcmdpbi10cmltOmlubGluZSkpKSBvciAoKC1tb3otb3JpZW50OmlubGluZSkgYW5kIChub3QgKGNvbG9yOnJnYihmcm9tIHJlZCByIGcgYikpKSl7Kiw6YmVmb3JlLDphZnRlciw6OmJhY2tkcm9wey0tdHctdHJhbnNsYXRlLXg6MDstLXR3LXRyYW5zbGF0ZS15OjA7LS10dy10cmFuc2xhdGUtejowOy0tdHctcm90YXRlLXg6aW5pdGlhbDstLXR3LXJvdGF0ZS15OmluaXRpYWw7LS10dy1yb3RhdGUtejppbml0aWFsOy0tdHctc2tldy14OmluaXRpYWw7LS10dy1za2V3LXk6aW5pdGlhbDstLXR3LXNwYWNlLXktcmV2ZXJzZTowOy0tdHctc3BhY2UteC1yZXZlcnNlOjA7LS10dy1kaXZpZGUteS1yZXZlcnNlOjA7LS10dy1ib3JkZXItc3R5bGU6c29saWQ7LS10dy1ncmFkaWVudC1wb3NpdGlvbjppbml0aWFsOy0tdHctZ3JhZGllbnQtZnJvbTojMDAwMDstLXR3LWdyYWRpZW50LXZpYTojMDAwMDstLXR3LWdyYWRpZW50LXRvOiMwMDAwOy0tdHctZ3JhZGllbnQtc3RvcHM6aW5pdGlhbDstLXR3LWdyYWRpZW50LXZpYS1zdG9wczppbml0aWFsOy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjowJTstLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCU7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjoxMDAlOy0tdHctbGVhZGluZzppbml0aWFsOy0tdHctZm9udC13ZWlnaHQ6aW5pdGlhbDstLXR3LXRyYWNraW5nOmluaXRpYWw7LS10dy1vcmRpbmFsOmluaXRpYWw7LS10dy1zbGFzaGVkLXplcm86aW5pdGlhbDstLXR3LW51bWVyaWMtZmlndXJlOmluaXRpYWw7LS10dy1udW1lcmljLXNwYWNpbmc6aW5pdGlhbDstLXR3LW51bWVyaWMtZnJhY3Rpb246aW5pdGlhbDstLXR3LXNoYWRvdzowIDAgIzAwMDA7LS10dy1zaGFkb3ctY29sb3I6aW5pdGlhbDstLXR3LXNoYWRvdy1hbHBoYToxMDAlOy0tdHctaW5zZXQtc2hhZG93OjAgMCAjMDAwMDstLXR3LWluc2V0LXNoYWRvdy1jb2xvcjppbml0aWFsOy0tdHctaW5zZXQtc2hhZG93LWFscGhhOjEwMCU7LS10dy1yaW5nLWNvbG9yOmluaXRpYWw7LS10dy1yaW5nLXNoYWRvdzowIDAgIzAwMDA7LS10dy1pbnNldC1yaW5nLWNvbG9yOmluaXRpYWw7LS10dy1pbnNldC1yaW5nLXNoYWRvdzowIDAgIzAwMDA7LS10dy1yaW5nLWluc2V0OmluaXRpYWw7LS10dy1yaW5nLW9mZnNldC13aWR0aDowcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjojZmZmOy0tdHctcmluZy1vZmZzZXQtc2hhZG93OjAgMCAjMDAwMDstLXR3LW91dGxpbmUtc3R5bGU6c29saWQ7LS10dy1ibHVyOmluaXRpYWw7LS10dy1icmlnaHRuZXNzOmluaXRpYWw7LS10dy1jb250cmFzdDppbml0aWFsOy0tdHctZ3JheXNjYWxlOmluaXRpYWw7LS10dy1odWUtcm90YXRlOmluaXRpYWw7LS10dy1pbnZlcnQ6aW5pdGlhbDstLXR3LW9wYWNpdHk6aW5pdGlhbDstLXR3LXNhdHVyYXRlOmluaXRpYWw7LS10dy1zZXBpYTppbml0aWFsOy0tdHctZHJvcC1zaGFkb3c6aW5pdGlhbDstLXR3LWRyb3Atc2hhZG93LWNvbG9yOmluaXRpYWw7LS10dy1kcm9wLXNoYWRvdy1hbHBoYToxMDAlOy0tdHctZHJvcC1zaGFkb3ctc2l6ZTppbml0aWFsOy0tdHctYmFja2Ryb3AtYmx1cjppbml0aWFsOy0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczppbml0aWFsOy0tdHctYmFja2Ryb3AtY29udHJhc3Q6aW5pdGlhbDstLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTppbml0aWFsOy0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTppbml0aWFsOy0tdHctYmFja2Ryb3AtaW52ZXJ0OmluaXRpYWw7LS10dy1iYWNrZHJvcC1vcGFjaXR5OmluaXRpYWw7LS10dy1iYWNrZHJvcC1zYXR1cmF0ZTppbml0aWFsOy0tdHctYmFja2Ryb3Atc2VwaWE6aW5pdGlhbDstLXR3LWR1cmF0aW9uOmluaXRpYWw7LS10dy1lYXNlOmluaXRpYWw7LS10dy1jb250ZW50OiIiOy0tdHctYW5pbWF0aW9uLWRlbGF5OjBzOy0tdHctYW5pbWF0aW9uLWRpcmVjdGlvbjpub3JtYWw7LS10dy1hbmltYXRpb24tZHVyYXRpb246aW5pdGlhbDstLXR3LWFuaW1hdGlvbi1maWxsLW1vZGU6bm9uZTstLXR3LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTstLXR3LWVudGVyLWJsdXI6MDstLXR3LWVudGVyLW9wYWNpdHk6MTstLXR3LWVudGVyLXJvdGF0ZTowOy0tdHctZW50ZXItc2NhbGU6MTstLXR3LWVudGVyLXRyYW5zbGF0ZS14OjA7LS10dy1lbnRlci10cmFuc2xhdGUteTowOy0tdHctZXhpdC1ibHVyOjA7LS10dy1leGl0LW9wYWNpdHk6MTstLXR3LWV4aXQtcm90YXRlOjA7LS10dy1leGl0LXNjYWxlOjE7LS10dy1leGl0LXRyYW5zbGF0ZS14OjA7LS10dy1leGl0LXRyYW5zbGF0ZS15OjB9fX1AbGF5ZXIgdGhlbWV7OnJvb3QsOmhvc3R7LS1jb2xvci1yZWQtNTAwOiNmYjJjMzY7LS1jb2xvci1vcmFuZ2UtNTAwOiNmZTZlMDA7LS1jb2xvci1ncmVlbi00MDA6IzA1ZGY3MjstLWNvbG9yLWdyZWVuLTYwMDojMDBhNTQ0Oy0tY29sb3ItYmxhY2s6IzAwMDstLWNvbG9yLXdoaXRlOiNmZmY7LS1zcGFjaW5nOi4yNXJlbTstLWNvbnRhaW5lci14czoyMHJlbTstLWNvbnRhaW5lci1zbToyNHJlbTstLWNvbnRhaW5lci1tZDoyOHJlbTstLWNvbnRhaW5lci1sZzozMnJlbTstLWNvbnRhaW5lci14bDozNnJlbTstLWNvbnRhaW5lci0yeGw6NDJyZW07LS1jb250YWluZXItM3hsOjQ4cmVtOy0tY29udGFpbmVyLTR4bDo1NnJlbTstLWNvbnRhaW5lci03eGw6ODByZW07LS10ZXh0LXhzOi43NXJlbTstLXRleHQteHMtLWxpbmUtaGVpZ2h0OmNhbGMoMS8uNzUpOy0tdGV4dC1zbTouODc1cmVtOy0tdGV4dC1zbS0tbGluZS1oZWlnaHQ6Y2FsYygxLjI1Ly44NzUpOy0tdGV4dC1iYXNlOjFyZW07LS10ZXh0LWJhc2UtLWxpbmUtaGVpZ2h0OmNhbGMoMS41LzEpOy0tdGV4dC1sZzoxLjEyNXJlbTstLXRleHQtbGctLWxpbmUtaGVpZ2h0OmNhbGMoMS43NS8xLjEyNSk7LS10ZXh0LXhsOjEuMjVyZW07LS10ZXh0LXhsLS1saW5lLWhlaWdodDpjYWxjKDEuNzUvMS4yNSk7LS10ZXh0LTJ4bDoxLjVyZW07LS10ZXh0LTJ4bC0tbGluZS1oZWlnaHQ6Y2FsYygyLzEuNSk7LS10ZXh0LTN4bDoxLjg3NXJlbTstLXRleHQtM3hsLS1saW5lLWhlaWdodDpjYWxjKDIuMjUvMS44NzUpOy0tdGV4dC00eGw6Mi4yNXJlbTstLXRleHQtNHhsLS1saW5lLWhlaWdodDpjYWxjKDIuNS8yLjI1KTstLXRleHQtNnhsOjMuNzVyZW07LS10ZXh0LTZ4bC0tbGluZS1oZWlnaHQ6MTstLWZvbnQtd2VpZ2h0LW5vcm1hbDo0MDA7LS1mb250LXdlaWdodC1tZWRpdW06NTAwOy0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6NjAwOy0tZm9udC13ZWlnaHQtYm9sZDo3MDA7LS10cmFja2luZy10aWdodDotLjAyNWVtOy0tdHJhY2tpbmctd2lkZTouMDI1ZW07LS10cmFja2luZy13aWRlc3Q6LjFlbTstLWxlYWRpbmctdGlnaHQ6MS4yNTstLWxlYWRpbmctc251ZzoxLjM3NTstLWxlYWRpbmctcmVsYXhlZDoxLjYyNTstLXJhZGl1cy1tZDpjYWxjKHZhcigtLXJhZGl1cykqLjgpOy0tZWFzZS1pbi1vdXQ6Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LS1hbmltYXRlLXNwaW46c3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7LS1hbmltYXRlLXB1bHNlOnB1bHNlIDJzIGN1YmljLWJlemllciguNCwwLC42LDEpaW5maW5pdGU7LS1ibHVyLXhzOjRweDstLWJsdXItc206OHB4Oy0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7LS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpOy0tZGVmYXVsdC1mb250LWZhbWlseTp2YXIoLS1mb250LWludGVyKSwiSW50ZXIiLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZjstLWRlZmF1bHQtbW9uby1mb250LWZhbWlseTp2YXIoLS1mb250LWludGVyKSwiSW50ZXIiLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZn1Ac3VwcG9ydHMgKGNvbG9yOmxhYigwJSAwIDApKXs6cm9vdCw6aG9zdHstLWNvbG9yLXJlZC01MDA6bGFiKDU1LjQ4MTQlIDc1LjA3MzIgNDguODUyOCk7LS1jb2xvci1vcmFuZ2UtNTAwOmxhYig2NC4yNzIlIDU3LjE3ODggOTAuMzU4Myk7LS1jb2xvci1ncmVlbi00MDA6bGFiKDc4LjUwMyUgLTY0LjkyNjUgMzkuNzQ5Mik7LS1jb2xvci1ncmVlbi02MDA6bGFiKDU5LjA5NzglIC01OC42NjIxIDQxLjI1NzkpfX19QGxheWVyIGJhc2V7Kiw6YWZ0ZXIsOmJlZm9yZSw6OmJhY2tkcm9we2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MCBzb2xpZDttYXJnaW46MDtwYWRkaW5nOjB9OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjAgc29saWQ7bWFyZ2luOjA7cGFkZGluZzowfWh0bWwsOmhvc3R7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGFiLXNpemU6NDtsaW5lLWhlaWdodDoxLjU7Zm9udC1mYW1pbHk6dmFyKC0tZGVmYXVsdC1mb250LWZhbWlseSx1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIiwiU2Vnb2UgVUkgU3ltYm9sIiwiTm90byBDb2xvciBFbW9qaSIpO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczp2YXIoLS1kZWZhdWx0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyxub3JtYWwpO2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOnZhcigtLWRlZmF1bHQtZm9udC12YXJpYXRpb24tc2V0dGluZ3Msbm9ybWFsKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDstd2Via2l0LXRleHQtZGVjb3JhdGlvbjppbmhlcml0Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mYW1pbHk6dmFyKC0tZGVmYXVsdC1tb25vLWZvbnQtZmFtaWx5LHVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsIkxpYmVyYXRpb24gTW9ubyIsIkNvdXJpZXIgTmV3Iixtb25vc3BhY2UpO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczp2YXIoLS1kZWZhdWx0LW1vbm8tZm9udC1mZWF0dXJlLXNldHRpbmdzLG5vcm1hbCk7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6dmFyKC0tZGVmYXVsdC1tb25vLWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLG5vcm1hbCk7Zm9udC1zaXplOjFlbX1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19dGFibGV7dGV4dC1pbmRlbnQ6MDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9Oi1tb3otZm9jdXNyaW5ne291dGxpbmU6YXV0b31wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfW9sLHVsLG1lbnV7bGlzdC1zdHlsZTpub25lfWltZyxzdmcsdmlkZW8sY2FudmFzLGF1ZGlvLGlmcmFtZSxlbWJlZCxvYmplY3R7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6YmxvY2t9aW1nLHZpZGVve21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfWJ1dHRvbixpbnB1dCxzZWxlY3Qsb3B0Z3JvdXAsdGV4dGFyZWF7Zm9udDppbmhlcml0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczppbmhlcml0O2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDtjb2xvcjppbmhlcml0O29wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlci1yYWRpdXM6MH06OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2ZvbnQ6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2xldHRlci1zcGFjaW5nOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjojMDAwMDtib3JkZXItcmFkaXVzOjB9OndoZXJlKHNlbGVjdDppcyhbbXVsdGlwbGVdLFtzaXplXSkpIG9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OmJvbGRlcn06d2hlcmUoc2VsZWN0OmlzKFttdWx0aXBsZV0sW3NpemVdKSkgb3B0Z3JvdXAgb3B0aW9ue3BhZGRpbmctaW5saW5lLXN0YXJ0OjIwcHh9OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnttYXJnaW4taW5saW5lLWVuZDo0cHh9OjpwbGFjZWhvbGRlcntvcGFjaXR5OjF9QHN1cHBvcnRzIChub3QgKCgtd2Via2l0LWFwcGVhcmFuY2U6LWFwcGxlLXBheS1idXR0b24pKSkgb3IgKGNvbnRhaW4taW50cmluc2ljLXNpemU6MXB4KXs6OnBsYWNlaG9sZGVye2NvbG9yOmN1cnJlbnRDb2xvcn1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7OjpwbGFjZWhvbGRlcntjb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsY3VycmVudGNvbG9yIDUwJSx0cmFuc3BhcmVudCl9fX10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVle21pbi1oZWlnaHQ6MWxoO3RleHQtYWxpZ246aW5oZXJpdH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdHtkaXNwbGF5OmlubGluZS1mbGV4fTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWZpZWxkcy13cmFwcGVye3BhZGRpbmc6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtaG91ci1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWludXRlLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1zZWNvbmQtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1pbGxpc2Vjb25kLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tZXJpZGllbS1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7bGluZS1oZWlnaHQ6MX06LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XSl7YXBwZWFyYW5jZTpidXR0b259OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnthcHBlYXJhbmNlOmJ1dHRvbn06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj11bnRpbC1mb3VuZF0pKXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fSp7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlcik7b3V0bGluZS1jb2xvcjp2YXIoLS1yaW5nKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7KntvdXRsaW5lLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1yaW5nKTUwJSx0cmFuc3BhcmVudCl9fWJvZHl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKTtmb250LWZhbWlseTp2YXIoLS1mb250LWludGVyKSx1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLHNhbnMtc2VyaWZ9Y29kZSxwcmUsa2Jke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaW50ZXIpLCJJbnRlciIsdWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxzYW5zLXNlcmlmfX1AbGF5ZXIgY29tcG9uZW50cztAbGF5ZXIgdXRpbGl0aWVzey5cQGNvbnRhaW5lclwvY2FyZC1oZWFkZXJ7Y29udGFpbmVyOmNhcmQtaGVhZGVyL2lubGluZS1zaXplfS5wb2ludGVyLWV2ZW50cy1ub25le3BvaW50ZXItZXZlbnRzOm5vbmV9LmNvbGxhcHNle3Zpc2liaWxpdHk6Y29sbGFwc2V9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5zci1vbmx5e2NsaXAtcGF0aDppbnNldCg1MCUpO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItd2lkdGg6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVufS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGF0aWN7cG9zaXRpb246c3RhdGljfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS5pbnNldC0we2luc2V0OmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmluc2V0LXgtMHtpbnNldC1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uaW5zZXQteC00e2luc2V0LWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5pbnNldC15LTB7aW5zZXQtYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uc3RhcnR7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNpbmcpfS5lbmR7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS1zcGFjaW5nKX0uLXRvcC0ye3RvcDpjYWxjKHZhcigtLXNwYWNpbmcpKi0yKX0udG9wLTB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMCl9LnRvcC0wXC41e3RvcDpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0udG9wLTFcLzJ7dG9wOjUwJX0udG9wLTFcLzN7dG9wOjMzLjMzMzMlfS50b3AtMnt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0udG9wLTN7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMyl9LnRvcC0xNHt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNCl9LnRvcC0xMDB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMTAwKX0udG9wLTEwMDB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMTAwMCl9LnRvcC1mdWxse3RvcDoxMDAlfS4tcmlnaHQtMntyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKi0yKX0ucmlnaHQtMHtyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5yaWdodC0ye3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9LnJpZ2h0LTJcLjV7cmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5yaWdodC0ze3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMyl9LmJvdHRvbS0we2JvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5ib3R0b20tMjB7Ym90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMjApfS5sZWZ0LTB7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5sZWZ0LTBcLjV7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0ubGVmdC0xXC8ye2xlZnQ6NTAlfS5sZWZ0LTJcLjV7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjIuNSl9LmxlZnQtM3tsZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMyl9LmxlZnQtNHtsZWZ0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LmxlZnQtMTB7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKX0uaXNvbGF0ZXtpc29sYXRpb246aXNvbGF0ZX0uei0xMHt6LWluZGV4OjEwfS56LTIwe3otaW5kZXg6MjB9LnotMzB7ei1pbmRleDozMH0uei00MHt6LWluZGV4OjQwfS56LTUwe3otaW5kZXg6NTB9Lm9yZGVyLWZpcnN0e29yZGVyOi05OTk5fS5vcmRlci1sYXN0e29yZGVyOjk5OTl9LmNvbC1zdGFydC0ye2dyaWQtY29sdW1uLXN0YXJ0OjJ9LnJvdy1zcGFuLTJ7Z3JpZC1yb3c6c3BhbiAyL3NwYW4gMn0ucm93LXN0YXJ0LTF7Z3JpZC1yb3ctc3RhcnQ6MX0uY29udGFpbmVye3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NDByZW0pey5jb250YWluZXJ7bWF4LXdpZHRoOjQwcmVtfX1AbWVkaWEgKG1pbi13aWR0aDo0OHJlbSl7LmNvbnRhaW5lcnttYXgtd2lkdGg6NDhyZW19fUBtZWRpYSAobWluLXdpZHRoOjY0cmVtKXsuY29udGFpbmVye21heC13aWR0aDo2NHJlbX19QG1lZGlhIChtaW4td2lkdGg6ODByZW0pey5jb250YWluZXJ7bWF4LXdpZHRoOjgwcmVtfX1AbWVkaWEgKG1pbi13aWR0aDo5NnJlbSl7LmNvbnRhaW5lcnttYXgtd2lkdGg6OTZyZW19fS4tbXgtMXttYXJnaW4taW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqLTEpfS4tbXgtNHttYXJnaW4taW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqLTQpfS5teC0xe21hcmdpbi1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ubXgtNHttYXJnaW4taW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqNCl9Lm14LWF1dG97bWFyZ2luLWlubGluZTphdXRvfS5teS0xe21hcmdpbi1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5teS0ye21hcmdpbi1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5wcm9zZXtjb2xvcjp2YXIoLS10dy1wcm9zZS1ib2R5KTttYXgtd2lkdGg6NjVjaH0ucHJvc2UgOndoZXJlKHApOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjI1ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW19LnByb3NlIDp3aGVyZShbY2xhc3N+PWxlYWRdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWxlYWQpO21hcmdpbi10b3A6MS4yZW07bWFyZ2luLWJvdHRvbToxLjJlbTtmb250LXNpemU6MS4yNWVtO2xpbmUtaGVpZ2h0OjEuNn0ucHJvc2UgOndoZXJlKGEpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6dmFyKC0tdHctcHJvc2UtbGlua3MpO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5wcm9zZSA6d2hlcmUoc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWJvbGQpO2ZvbnQtd2VpZ2h0OjYwMH0ucHJvc2UgOndoZXJlKGEgc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUoYmxvY2txdW90ZSBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlIDp3aGVyZSh0aGVhZCB0aCBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdH0ucHJvc2UgOndoZXJlKG9sKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4yNWVtO21hcmdpbi1ib3R0b206MS4yNWVtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjEuNjI1ZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9LnByb3NlIDp3aGVyZShvbFt0eXBlPUFdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1hbHBoYX0ucHJvc2UgOndoZXJlKG9sW3R5cGU9YV0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmxvd2VyLWFscGhhfS5wcm9zZSA6d2hlcmUob2xbdHlwZT1BIHNdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1hbHBoYX0ucHJvc2UgOndoZXJlKG9sW3R5cGU9YSBzXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6bG93ZXItYWxwaGF9LnByb3NlIDp3aGVyZShvbFt0eXBlPUldKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1yb21hbn0ucHJvc2UgOndoZXJlKG9sW3R5cGU9aV0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmxvd2VyLXJvbWFufS5wcm9zZSA6d2hlcmUob2xbdHlwZT1JIHNdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1yb21hbn0ucHJvc2UgOndoZXJlKG9sW3R5cGU9aSBzXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9tYW59LnByb3NlIDp3aGVyZShvbFt0eXBlPSIxIl0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9LnByb3NlIDp3aGVyZSh1bCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMjVlbTttYXJnaW4tYm90dG9tOjEuMjVlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjYyNWVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5wcm9zZSA6d2hlcmUob2w+bGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6Om1hcmtlcntjb2xvcjp2YXIoLS10dy1wcm9zZS1jb3VudGVycyk7Zm9udC13ZWlnaHQ6NDAwfS5wcm9zZSA6d2hlcmUodWw+bGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6Om1hcmtlcntjb2xvcjp2YXIoLS10dy1wcm9zZS1idWxsZXRzKX0ucHJvc2UgOndoZXJlKGR0KTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTttYXJnaW4tdG9wOjEuMjVlbTtmb250LXdlaWdodDo2MDB9LnByb3NlIDp3aGVyZShocik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtib3JkZXItY29sb3I6dmFyKC0tdHctcHJvc2UtaHIpO2JvcmRlci10b3Atd2lkdGg6MXB4O21hcmdpbi10b3A6M2VtO21hcmdpbi1ib3R0b206M2VtfS5wcm9zZSA6d2hlcmUoYmxvY2txdW90ZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1xdW90ZXMpO2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6LjI1cmVtO2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6dmFyKC0tdHctcHJvc2UtcXVvdGUtYm9yZGVycyk7cXVvdGVzOiLigJwiIuKAnSIi4oCYIiLigJkiO21hcmdpbi10b3A6MS42ZW07bWFyZ2luLWJvdHRvbToxLjZlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwfS5wcm9zZSA6d2hlcmUoYmxvY2txdW90ZSBwOmZpcnN0LW9mLXR5cGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YmVmb3Jle2NvbnRlbnQ6b3Blbi1xdW90ZX0ucHJvc2UgOndoZXJlKGJsb2NrcXVvdGUgcDpsYXN0LW9mLXR5cGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YWZ0ZXJ7Y29udGVudDpjbG9zZS1xdW90ZX0ucHJvc2UgOndoZXJlKGgxKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouODg4ODg5ZW07Zm9udC1zaXplOjIuMjVlbTtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4xMTExMX0ucHJvc2UgOndoZXJlKGgxIHN0cm9uZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0O2ZvbnQtd2VpZ2h0OjkwMH0ucHJvc2UgOndoZXJlKGgyKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjFlbTtmb250LXNpemU6MS41ZW07Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjEuMzMzMzN9LnByb3NlIDp3aGVyZShoMiBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo4MDB9LnByb3NlIDp3aGVyZShoMyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1oZWFkaW5ncyk7bWFyZ2luLXRvcDoxLjZlbTttYXJnaW4tYm90dG9tOi42ZW07Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS42fS5wcm9zZSA6d2hlcmUoaDMgc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwfS5wcm9zZSA6d2hlcmUoaDQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6dmFyKC0tdHctcHJvc2UtaGVhZGluZ3MpO21hcmdpbi10b3A6MS41ZW07bWFyZ2luLWJvdHRvbTouNWVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjV9LnByb3NlIDp3aGVyZShoNCBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo3MDB9LnByb3NlIDp3aGVyZShpbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoyZW07bWFyZ2luLWJvdHRvbToyZW19LnByb3NlIDp3aGVyZShwaWN0dXJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MmVtO21hcmdpbi1ib3R0b206MmVtO2Rpc3BsYXk6YmxvY2t9LnByb3NlIDp3aGVyZSh2aWRlbyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjJlbX0ucHJvc2UgOndoZXJlKGtiZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1rYmQpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHZhcigtLXR3LXByb3NlLWtiZC1zaGFkb3dzKSwwIDNweCAwIHZhcigtLXR3LXByb3NlLWtiZC1zaGFkb3dzKTtwYWRkaW5nLXRvcDouMTg3NWVtO3BhZGRpbmctaW5saW5lLWVuZDouMzc1ZW07cGFkZGluZy1ib3R0b206LjE4NzVlbTtib3JkZXItcmFkaXVzOi4zMTI1cmVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi4zNzVlbTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouODc1ZW07Zm9udC13ZWlnaHQ6NTAwfS5wcm9zZSA6d2hlcmUoY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1jb2RlKTtmb250LXNpemU6Ljg3NWVtO2ZvbnQtd2VpZ2h0OjYwMH0ucHJvc2UgOndoZXJlKGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YmVmb3JlLC5wcm9zZSA6d2hlcmUoY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKTphZnRlcntjb250ZW50OiJgIn0ucHJvc2UgOndoZXJlKGEgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKGgxIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdH0ucHJvc2UgOndoZXJlKGgyIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdDtmb250LXNpemU6Ljg3NWVtfS5wcm9zZSA6d2hlcmUoaDMgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZTouOWVtfS5wcm9zZSA6d2hlcmUoaDQgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKGJsb2NrcXVvdGUgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKHRoZWFkIHRoIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdH0ucHJvc2UgOndoZXJlKHByZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1wcmUtY29kZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS10dy1wcm9zZS1wcmUtYmcpO3BhZGRpbmctdG9wOi44NTcxNDNlbTtwYWRkaW5nLWlubGluZS1lbmQ6MS4xNDI4NmVtO3BhZGRpbmctYm90dG9tOi44NTcxNDNlbTtib3JkZXItcmFkaXVzOi4zNzVyZW07bWFyZ2luLXRvcDoxLjcxNDI5ZW07bWFyZ2luLWJvdHRvbToxLjcxNDI5ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6MS4xNDI4NmVtO2ZvbnQtc2l6ZTouODc1ZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNzE0Mjk7b3ZlcmZsb3cteDphdXRvfS5wcm9zZSA6d2hlcmUocHJlIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC13ZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlci13aWR0aDowO2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nOjB9LnByb3NlIDp3aGVyZShwcmUgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKTpiZWZvcmUsLnByb3NlIDp3aGVyZShwcmUgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKTphZnRlcntjb250ZW50Om5vbmV9LnByb3NlIDp3aGVyZSh0YWJsZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXt0YWJsZS1sYXlvdXQ6YXV0bzt3aWR0aDoxMDAlO21hcmdpbi10b3A6MmVtO21hcmdpbi1ib3R0b206MmVtO2ZvbnQtc2l6ZTouODc1ZW07bGluZS1oZWlnaHQ6MS43MTQyOX0ucHJvc2UgOndoZXJlKHRoZWFkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tdHctcHJvc2UtdGgtYm9yZGVycyl9LnByb3NlIDp3aGVyZSh0aGVhZCB0aCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1oZWFkaW5ncyk7dmVydGljYWwtYWxpZ246Ym90dG9tO3BhZGRpbmctaW5saW5lLWVuZDouNTcxNDI5ZW07cGFkZGluZy1ib3R0b206LjU3MTQyOWVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi41NzE0MjllbTtmb250LXdlaWdodDo2MDB9LnByb3NlIDp3aGVyZSh0Ym9keSB0cik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLXR3LXByb3NlLXRkLWJvcmRlcnMpfS5wcm9zZSA6d2hlcmUodGJvZHkgdHI6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtib3JkZXItYm90dG9tLXdpZHRoOjB9LnByb3NlIDp3aGVyZSh0Ym9keSB0ZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ucHJvc2UgOndoZXJlKHRmb290KTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci10b3AtY29sb3I6dmFyKC0tdHctcHJvc2UtdGgtYm9yZGVycyl9LnByb3NlIDp3aGVyZSh0Zm9vdCB0ZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnByb3NlIDp3aGVyZSh0aCx0ZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXt0ZXh0LWFsaWduOnN0YXJ0fS5wcm9zZSA6d2hlcmUoZmlndXJlPiopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJvc2UgOndoZXJlKGZpZ2NhcHRpb24pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6dmFyKC0tdHctcHJvc2UtY2FwdGlvbnMpO21hcmdpbi10b3A6Ljg1NzE0M2VtO2ZvbnQtc2l6ZTouODc1ZW07bGluZS1oZWlnaHQ6MS40Mjg1N30ucHJvc2V7LS10dy1wcm9zZS1ib2R5OiMzNjQxNTM7LS10dy1wcm9zZS1oZWFkaW5nczojMTAxODI4Oy0tdHctcHJvc2UtbGVhZDojNGE1NTY1Oy0tdHctcHJvc2UtbGlua3M6IzEwMTgyODstLXR3LXByb3NlLWJvbGQ6IzEwMTgyODstLXR3LXByb3NlLWNvdW50ZXJzOiM2YTcyODI7LS10dy1wcm9zZS1idWxsZXRzOiNkMWQ1ZGM7LS10dy1wcm9zZS1ocjojZTVlN2ViOy0tdHctcHJvc2UtcXVvdGVzOiMxMDE4Mjg7LS10dy1wcm9zZS1xdW90ZS1ib3JkZXJzOiNlNWU3ZWI7LS10dy1wcm9zZS1jYXB0aW9uczojNmE3MjgyOy0tdHctcHJvc2Uta2JkOiMxMDE4Mjg7LS10dy1wcm9zZS1rYmQtc2hhZG93czojMTAxODI4MWE7LS10dy1wcm9zZS1jb2RlOiMxMDE4Mjg7LS10dy1wcm9zZS1wcmUtY29kZTojZTVlN2ViOy0tdHctcHJvc2UtcHJlLWJnOiMxZTI5Mzk7LS10dy1wcm9zZS10aC1ib3JkZXJzOiNkMWQ1ZGM7LS10dy1wcm9zZS10ZC1ib3JkZXJzOiNlNWU3ZWI7LS10dy1wcm9zZS1pbnZlcnQtYm9keTojZDFkNWRjOy0tdHctcHJvc2UtaW52ZXJ0LWhlYWRpbmdzOiNmZmY7LS10dy1wcm9zZS1pbnZlcnQtbGVhZDojOTlhMWFmOy0tdHctcHJvc2UtaW52ZXJ0LWxpbmtzOiNmZmY7LS10dy1wcm9zZS1pbnZlcnQtYm9sZDojZmZmOy0tdHctcHJvc2UtaW52ZXJ0LWNvdW50ZXJzOiM5OWExYWY7LS10dy1wcm9zZS1pbnZlcnQtYnVsbGV0czojNGE1NTY1Oy0tdHctcHJvc2UtaW52ZXJ0LWhyOiMzNjQxNTM7LS10dy1wcm9zZS1pbnZlcnQtcXVvdGVzOiNmM2Y0ZjY7LS10dy1wcm9zZS1pbnZlcnQtcXVvdGUtYm9yZGVyczojMzY0MTUzOy0tdHctcHJvc2UtaW52ZXJ0LWNhcHRpb25zOiM5OWExYWY7LS10dy1wcm9zZS1pbnZlcnQta2JkOiNmZmY7LS10dy1wcm9zZS1pbnZlcnQta2JkLXNoYWRvd3M6I2ZmZmZmZjFhOy0tdHctcHJvc2UtaW52ZXJ0LWNvZGU6I2ZmZjstLXR3LXByb3NlLWludmVydC1wcmUtY29kZTojZDFkNWRjOy0tdHctcHJvc2UtaW52ZXJ0LXByZS1iZzojMDAwMDAwODA7LS10dy1wcm9zZS1pbnZlcnQtdGgtYm9yZGVyczojNGE1NTY1Oy0tdHctcHJvc2UtaW52ZXJ0LXRkLWJvcmRlcnM6IzM2NDE1Mztmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxLjc1fUBzdXBwb3J0cyAoY29sb3I6bGFiKDAlIDAgMCkpey5wcm9zZXstLXR3LXByb3NlLWJvZHk6bGFiKDI3LjExMzQlIC0uOTU2NDAxIC0xMi4zMjI0KTstLXR3LXByb3NlLWhlYWRpbmdzOmxhYig4LjExODk3JSAuODExMjc5IC0xMi4yNTQpOy0tdHctcHJvc2UtbGVhZDpsYWIoMzUuNjMzNyUgLTEuNTg2OTcgLTEwLjg0MjUpOy0tdHctcHJvc2UtbGlua3M6bGFiKDguMTE4OTclIC44MTEyNzkgLTEyLjI1NCk7LS10dy1wcm9zZS1ib2xkOmxhYig4LjExODk3JSAuODExMjc5IC0xMi4yNTQpOy0tdHctcHJvc2UtY291bnRlcnM6bGFiKDQ3Ljc4NDElIC0uMzkzMTgyIC0xMC4wMjY4KTstLXR3LXByb3NlLWJ1bGxldHM6bGFiKDg1LjEyMzYlIC0uNjEyMjU5IC0zLjcxMzgpOy0tdHctcHJvc2UtaHI6bGFiKDkxLjYyMjklIC0uMTU5MTE1IC0yLjI2NzkxKTstLXR3LXByb3NlLXF1b3RlczpsYWIoOC4xMTg5NyUgLjgxMTI3OSAtMTIuMjU0KTstLXR3LXByb3NlLXF1b3RlLWJvcmRlcnM6bGFiKDkxLjYyMjklIC0uMTU5MTE1IC0yLjI2NzkxKTstLXR3LXByb3NlLWNhcHRpb25zOmxhYig0Ny43ODQxJSAtLjM5MzE4MiAtMTAuMDI2OCk7LS10dy1wcm9zZS1rYmQ6bGFiKDguMTE4OTclIC44MTEyNzkgLTEyLjI1NCk7LS10dy1wcm9zZS1rYmQtc2hhZG93czpsYWIoOC4xMTg5NyUgLjgxMTI3OSAtMTIuMjU0Ly4xKTstLXR3LXByb3NlLWNvZGU6bGFiKDguMTE4OTclIC44MTEyNzkgLTEyLjI1NCk7LS10dy1wcm9zZS1wcmUtY29kZTpsYWIoOTEuNjIyOSUgLS4xNTkxMTUgLTIuMjY3OTEpOy0tdHctcHJvc2UtcHJlLWJnOmxhYigxNi4xMDUxJSAtMS4xODIzOSAtMTEuNzUzMyk7LS10dy1wcm9zZS10aC1ib3JkZXJzOmxhYig4NS4xMjM2JSAtLjYxMjI1OSAtMy43MTM4KTstLXR3LXByb3NlLXRkLWJvcmRlcnM6bGFiKDkxLjYyMjklIC0uMTU5MTE1IC0yLjI2NzkxKTstLXR3LXByb3NlLWludmVydC1ib2R5OmxhYig4NS4xMjM2JSAtLjYxMjI1OSAtMy43MTM4KTstLXR3LXByb3NlLWludmVydC1sZWFkOmxhYig2NS45MjY5JSAtLjgzMjcwNyAtOC4xNzQ3Myk7LS10dy1wcm9zZS1pbnZlcnQtY291bnRlcnM6bGFiKDY1LjkyNjklIC0uODMyNzA3IC04LjE3NDczKTstLXR3LXByb3NlLWludmVydC1idWxsZXRzOmxhYigzNS42MzM3JSAtMS41ODY5NyAtMTAuODQyNSk7LS10dy1wcm9zZS1pbnZlcnQtaHI6bGFiKDI3LjExMzQlIC0uOTU2NDAxIC0xMi4zMjI0KTstLXR3LXByb3NlLWludmVydC1xdW90ZXM6bGFiKDk2LjE1OTYlIC0uMDgyMzQzOCAtMS4xMzU3NSk7LS10dy1wcm9zZS1pbnZlcnQtcXVvdGUtYm9yZGVyczpsYWIoMjcuMTEzNCUgLS45NTY0MDEgLTEyLjMyMjQpOy0tdHctcHJvc2UtaW52ZXJ0LWNhcHRpb25zOmxhYig2NS45MjY5JSAtLjgzMjcwNyAtOC4xNzQ3Myk7LS10dy1wcm9zZS1pbnZlcnQtcHJlLWNvZGU6bGFiKDg1LjEyMzYlIC0uNjEyMjU5IC0zLjcxMzgpOy0tdHctcHJvc2UtaW52ZXJ0LXRoLWJvcmRlcnM6bGFiKDM1LjYzMzclIC0xLjU4Njk3IC0xMC44NDI1KTstLXR3LXByb3NlLWludmVydC10ZC1ib3JkZXJzOmxhYigyNy4xMTM0JSAtLjk1NjQwMSAtMTIuMzIyNCl9fS5wcm9zZSA6d2hlcmUocGljdHVyZT5pbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJvc2UgOndoZXJlKGxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjVlbTttYXJnaW4tYm90dG9tOi41ZW19LnByb3NlIDp3aGVyZShvbD5saSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKHVsPmxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0Oi4zNzVlbX0ucHJvc2UgOndoZXJlKC5wcm9zZT51bD5saSBwKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6Ljc1ZW07bWFyZ2luLWJvdHRvbTouNzVlbX0ucHJvc2UgOndoZXJlKC5wcm9zZT51bD5saT5wOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4yNWVtfS5wcm9zZSA6d2hlcmUoLnByb3NlPnVsPmxpPnA6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjEuMjVlbX0ucHJvc2UgOndoZXJlKC5wcm9zZT5vbD5saT5wOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4yNWVtfS5wcm9zZSA6d2hlcmUoLnByb3NlPm9sPmxpPnA6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjEuMjVlbX0ucHJvc2UgOndoZXJlKHVsIHVsLHVsIG9sLG9sIHVsLG9sIG9sKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6Ljc1ZW07bWFyZ2luLWJvdHRvbTouNzVlbX0ucHJvc2UgOndoZXJlKGRsKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4yNWVtO21hcmdpbi1ib3R0b206MS4yNWVtfS5wcm9zZSA6d2hlcmUoZGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNWVtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjEuNjI1ZW19LnByb3NlIDp3aGVyZShocisqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUoaDIrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKGgzKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlIDp3aGVyZShoNCsqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MH0ucHJvc2UgOndoZXJlKHRoZWFkIHRoOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LnByb3NlIDp3aGVyZSh0aGVhZCB0aDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLWVuZDowfS5wcm9zZSA6d2hlcmUodGJvZHkgdGQsdGZvb3QgdGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy10b3A6LjU3MTQyOWVtO3BhZGRpbmctaW5saW5lLWVuZDouNTcxNDI5ZW07cGFkZGluZy1ib3R0b206LjU3MTQyOWVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi41NzE0MjllbX0ucHJvc2UgOndoZXJlKHRib2R5IHRkOmZpcnN0LWNoaWxkLHRmb290IHRkOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LnByb3NlIDp3aGVyZSh0Ym9keSB0ZDpsYXN0LWNoaWxkLHRmb290IHRkOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnByb3NlIDp3aGVyZShmaWd1cmUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoyZW07bWFyZ2luLWJvdHRvbToyZW19LnByb3NlIDp3aGVyZSgucHJvc2U+OmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MH0ucHJvc2UgOndoZXJlKC5wcm9zZT46bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjB9LnByb3NlLWxne2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc3Nzc4fS5wcm9zZS1sZyA6d2hlcmUocCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbTttYXJnaW4tYm90dG9tOjEuMzMzMzNlbX0ucHJvc2UtbGcgOndoZXJlKFtjbGFzc349bGVhZF0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjA5MDkxZW07bWFyZ2luLWJvdHRvbToxLjA5MDkxZW07Zm9udC1zaXplOjEuMjIyMjJlbTtsaW5lLWhlaWdodDoxLjQ1NDU1fS5wcm9zZS1sZyA6d2hlcmUoYmxvY2txdW90ZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNjY2NjdlbTttYXJnaW4tYm90dG9tOjEuNjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW19LnByb3NlLWxnIDp3aGVyZShoMSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouODMzMzMzZW07Zm9udC1zaXplOjIuNjY2NjdlbTtsaW5lLWhlaWdodDoxfS5wcm9zZS1sZyA6d2hlcmUoaDIpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjg2NjY3ZW07bWFyZ2luLWJvdHRvbToxLjA2NjY3ZW07Zm9udC1zaXplOjEuNjY2NjdlbTtsaW5lLWhlaWdodDoxLjMzMzMzfS5wcm9zZS1sZyA6d2hlcmUoaDMpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjY2NjY3ZW07bWFyZ2luLWJvdHRvbTouNjY2NjY3ZW07Zm9udC1zaXplOjEuMzMzMzNlbTtsaW5lLWhlaWdodDoxLjV9LnByb3NlLWxnIDp3aGVyZShoNCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNzc3NzhlbTttYXJnaW4tYm90dG9tOi40NDQ0NDRlbTtsaW5lLWhlaWdodDoxLjU1NTU2fS5wcm9zZS1sZyA6d2hlcmUoaW1nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1sZyA6d2hlcmUocGljdHVyZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNzc3NzhlbTttYXJnaW4tYm90dG9tOjEuNzc3NzhlbX0ucHJvc2UtbGcgOndoZXJlKHBpY3R1cmU+aW1nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LnByb3NlLWxnIDp3aGVyZSh2aWRlbyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNzc3NzhlbTttYXJnaW4tYm90dG9tOjEuNzc3NzhlbX0ucHJvc2UtbGcgOndoZXJlKGtiZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLXRvcDouMjIyMjIyZW07cGFkZGluZy1pbmxpbmUtZW5kOi40NDQ0NDRlbTtwYWRkaW5nLWJvdHRvbTouMjIyMjIyZW07Ym9yZGVyLXJhZGl1czouMzEyNXJlbTtwYWRkaW5nLWlubGluZS1zdGFydDouNDQ0NDQ0ZW07Zm9udC1zaXplOi44ODg4ODllbX0ucHJvc2UtbGcgOndoZXJlKGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC1zaXplOi44ODg4ODllbX0ucHJvc2UtbGcgOndoZXJlKGgyIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC1zaXplOi44NjY2NjdlbX0ucHJvc2UtbGcgOndoZXJlKGgzIGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC1zaXplOi44NzVlbX0ucHJvc2UtbGcgOndoZXJlKHByZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLXRvcDoxZW07cGFkZGluZy1pbmxpbmUtZW5kOjEuNWVtO3BhZGRpbmctYm90dG9tOjFlbTtib3JkZXItcmFkaXVzOi4zNzVyZW07bWFyZ2luLXRvcDoyZW07bWFyZ2luLWJvdHRvbToyZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6MS41ZW07Zm9udC1zaXplOi44ODg4ODllbTtsaW5lLWhlaWdodDoxLjc1fS5wcm9zZS1sZyA6d2hlcmUob2wpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLWxnIDp3aGVyZSh1bCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbTttYXJnaW4tYm90dG9tOjEuMzMzMzNlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjU1NTU2ZW19LnByb3NlLWxnIDp3aGVyZShsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi42NjY2NjdlbTttYXJnaW4tYm90dG9tOi42NjY2NjdlbX0ucHJvc2UtbGcgOndoZXJlKG9sPmxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1sZyA6d2hlcmUodWw+bGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjQ0NDQ0NGVtfS5wcm9zZS1sZyA6d2hlcmUoLnByb3NlLWxnPnVsPmxpIHApOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouODg4ODg5ZW07bWFyZ2luLWJvdHRvbTouODg4ODg5ZW19LnByb3NlLWxnIDp3aGVyZSgucHJvc2UtbGc+dWw+bGk+cDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbX0ucHJvc2UtbGcgOndoZXJlKC5wcm9zZS1sZz51bD5saT5wOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLWJvdHRvbToxLjMzMzMzZW19LnByb3NlLWxnIDp3aGVyZSgucHJvc2UtbGc+b2w+bGk+cDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbX0ucHJvc2UtbGcgOndoZXJlKC5wcm9zZS1sZz5vbD5saT5wOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLWJvdHRvbToxLjMzMzMzZW19LnByb3NlLWxnIDp3aGVyZSh1bCB1bCx1bCBvbCxvbCB1bCxvbCBvbCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi44ODg4ODllbTttYXJnaW4tYm90dG9tOi44ODg4ODllbX0ucHJvc2UtbGcgOndoZXJlKGRsKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4zMzMzM2VtO21hcmdpbi1ib3R0b206MS4zMzMzM2VtfS5wcm9zZS1sZyA6d2hlcmUoZHQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjMzMzMzZW19LnByb3NlLWxnIDp3aGVyZShkZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjU1NTU2ZW19LnByb3NlLWxnIDp3aGVyZShocik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjMuMTExMTFlbTttYXJnaW4tYm90dG9tOjMuMTExMTFlbX0ucHJvc2UtbGcgOndoZXJlKGhyKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLWxnIDp3aGVyZShoMisqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1sZyA6d2hlcmUoaDMrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UtbGcgOndoZXJlKGg0KyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowfS5wcm9zZS1sZyA6d2hlcmUodGFibGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC1zaXplOi44ODg4ODllbTtsaW5lLWhlaWdodDoxLjV9LnByb3NlLWxnIDp3aGVyZSh0aGVhZCB0aCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1lbmQ6Ljc1ZW07cGFkZGluZy1ib3R0b206Ljc1ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6Ljc1ZW19LnByb3NlLWxnIDp3aGVyZSh0aGVhZCB0aDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1zdGFydDowfS5wcm9zZS1sZyA6d2hlcmUodGhlYWQgdGg6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1lbmQ6MH0ucHJvc2UtbGcgOndoZXJlKHRib2R5IHRkLHRmb290IHRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOi43NWVtO3BhZGRpbmctaW5saW5lLWVuZDouNzVlbTtwYWRkaW5nLWJvdHRvbTouNzVlbTtwYWRkaW5nLWlubGluZS1zdGFydDouNzVlbX0ucHJvc2UtbGcgOndoZXJlKHRib2R5IHRkOmZpcnN0LWNoaWxkLHRmb290IHRkOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LnByb3NlLWxnIDp3aGVyZSh0Ym9keSB0ZDpsYXN0LWNoaWxkLHRmb290IHRkOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnByb3NlLWxnIDp3aGVyZShmaWd1cmUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjc3Nzc4ZW07bWFyZ2luLWJvdHRvbToxLjc3Nzc4ZW19LnByb3NlLWxnIDp3aGVyZShmaWd1cmU+Kik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5wcm9zZS1sZyA6d2hlcmUoZmlnY2FwdGlvbik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6Ljg4ODg4OWVtO2xpbmUtaGVpZ2h0OjEuNX0ucHJvc2UtbGcgOndoZXJlKC5wcm9zZS1sZz46Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowfS5wcm9zZS1sZyA6d2hlcmUoLnByb3NlLWxnPjpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi1ib3R0b206MH0ucHJvc2Utc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS43MTQyOX0ucHJvc2Utc20gOndoZXJlKHApOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjE0Mjg2ZW07bWFyZ2luLWJvdHRvbToxLjE0Mjg2ZW19LnByb3NlLXNtIDp3aGVyZShbY2xhc3N+PWxlYWRdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6Ljg4ODg4OWVtO21hcmdpbi1ib3R0b206Ljg4ODg4OWVtO2ZvbnQtc2l6ZToxLjI4NTcxZW07bGluZS1oZWlnaHQ6MS41NTU1Nn0ucHJvc2Utc20gOndoZXJlKGJsb2NrcXVvdGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjMzMzMzZW07bWFyZ2luLWJvdHRvbToxLjMzMzMzZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6MS4xMTExMWVtfS5wcm9zZS1zbSA6d2hlcmUoaDEpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjhlbTtmb250LXNpemU6Mi4xNDI4NmVtO2xpbmUtaGVpZ2h0OjEuMn0ucHJvc2Utc20gOndoZXJlKGgyKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS42ZW07bWFyZ2luLWJvdHRvbTouOGVtO2ZvbnQtc2l6ZToxLjQyODU3ZW07bGluZS1oZWlnaHQ6MS40fS5wcm9zZS1zbSA6d2hlcmUoaDMpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjU1NTU2ZW07bWFyZ2luLWJvdHRvbTouNDQ0NDQ0ZW07Zm9udC1zaXplOjEuMjg1NzFlbTtsaW5lLWhlaWdodDoxLjU1NTU2fS5wcm9zZS1zbSA6d2hlcmUoaDQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjQyODU3ZW07bWFyZ2luLWJvdHRvbTouNTcxNDI5ZW07bGluZS1oZWlnaHQ6MS40Mjg1N30ucHJvc2Utc20gOndoZXJlKGltZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2Utc20gOndoZXJlKHBpY3R1cmUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjcxNDI5ZW07bWFyZ2luLWJvdHRvbToxLjcxNDI5ZW19LnByb3NlLXNtIDp3aGVyZShwaWN0dXJlPmltZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5wcm9zZS1zbSA6d2hlcmUodmlkZW8pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjcxNDI5ZW07bWFyZ2luLWJvdHRvbToxLjcxNDI5ZW19LnByb3NlLXNtIDp3aGVyZShrYmQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy10b3A6LjE0Mjg1N2VtO3BhZGRpbmctaW5saW5lLWVuZDouMzU3MTQzZW07cGFkZGluZy1ib3R0b206LjE0Mjg1N2VtO2JvcmRlci1yYWRpdXM6LjMxMjVyZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjM1NzE0M2VtO2ZvbnQtc2l6ZTouODU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2ZvbnQtc2l6ZTouODU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShoMiBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2ZvbnQtc2l6ZTouOWVtfS5wcm9zZS1zbSA6d2hlcmUoaDMgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg4ODg4OWVtfS5wcm9zZS1zbSA6d2hlcmUocHJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1lbmQ6MWVtO3BhZGRpbmctYm90dG9tOi42NjY2NjdlbTtib3JkZXItcmFkaXVzOi4yNXJlbTttYXJnaW4tdG9wOjEuNjY2NjdlbTttYXJnaW4tYm90dG9tOjEuNjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW07Zm9udC1zaXplOi44NTcxNDNlbTtsaW5lLWhlaWdodDoxLjY2NjY3fS5wcm9zZS1zbSA6d2hlcmUob2wpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZSh1bCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMTQyODZlbTttYXJnaW4tYm90dG9tOjEuMTQyODZlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi4yODU3MTRlbTttYXJnaW4tYm90dG9tOi4yODU3MTRlbX0ucHJvc2Utc20gOndoZXJlKG9sPmxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1zbSA6d2hlcmUodWw+bGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjQyODU3MWVtfS5wcm9zZS1zbSA6d2hlcmUoLnByb3NlLXNtPnVsPmxpIHApOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNTcxNDI5ZW07bWFyZ2luLWJvdHRvbTouNTcxNDI5ZW19LnByb3NlLXNtIDp3aGVyZSgucHJvc2Utc20+dWw+bGk+cDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMTQyODZlbX0ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbT51bD5saT5wOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLWJvdHRvbToxLjE0Mjg2ZW19LnByb3NlLXNtIDp3aGVyZSgucHJvc2Utc20+b2w+bGk+cDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMTQyODZlbX0ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbT5vbD5saT5wOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLWJvdHRvbToxLjE0Mjg2ZW19LnByb3NlLXNtIDp3aGVyZSh1bCB1bCx1bCBvbCxvbCB1bCxvbCBvbCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi41NzE0MjllbTttYXJnaW4tYm90dG9tOi41NzE0MjllbX0ucHJvc2Utc20gOndoZXJlKGRsKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4xNDI4NmVtO21hcmdpbi1ib3R0b206MS4xNDI4NmVtfS5wcm9zZS1zbSA6d2hlcmUoZHQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjE0Mjg2ZW19LnByb3NlLXNtIDp3aGVyZShkZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi4yODU3MTRlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShocik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjIuODU3MTRlbTttYXJnaW4tYm90dG9tOjIuODU3MTRlbX0ucHJvc2Utc20gOndoZXJlKGhyKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZShoMisqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1zbSA6d2hlcmUoaDMrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2Utc20gOndoZXJlKGg0KyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowfS5wcm9zZS1zbSA6d2hlcmUodGFibGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Zm9udC1zaXplOi44NTcxNDNlbTtsaW5lLWhlaWdodDoxLjV9LnByb3NlLXNtIDp3aGVyZSh0aGVhZCB0aCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1lbmQ6MWVtO3BhZGRpbmctYm90dG9tOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW19LnByb3NlLXNtIDp3aGVyZSh0aGVhZCB0aDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1zdGFydDowfS5wcm9zZS1zbSA6d2hlcmUodGhlYWQgdGg6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1lbmQ6MH0ucHJvc2Utc20gOndoZXJlKHRib2R5IHRkLHRmb290IHRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1lbmQ6MWVtO3BhZGRpbmctYm90dG9tOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW19LnByb3NlLXNtIDp3aGVyZSh0Ym9keSB0ZDpmaXJzdC1jaGlsZCx0Zm9vdCB0ZDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1zdGFydDowfS5wcm9zZS1zbSA6d2hlcmUodGJvZHkgdGQ6bGFzdC1jaGlsZCx0Zm9vdCB0ZDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLWVuZDowfS5wcm9zZS1zbSA6d2hlcmUoZmlndXJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS43MTQyOWVtO21hcmdpbi1ib3R0b206MS43MTQyOWVtfS5wcm9zZS1zbSA6d2hlcmUoZmlndXJlPiopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJvc2Utc20gOndoZXJlKGZpZ2NhcHRpb24pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNjY2NjY3ZW07Zm9udC1zaXplOi44NTcxNDNlbTtsaW5lLWhlaWdodDoxLjMzMzMzfS5wcm9zZS1zbSA6d2hlcmUoLnByb3NlLXNtPjpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjB9LnByb3NlLXNtIDp3aGVyZSgucHJvc2Utc20+Omxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLWJvdHRvbTowfS4tbXQtMXttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqLTEpfS5tdC0wXC41e21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9Lm10LTF7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tdC0ye21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ubXQtM3ttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqMyl9Lm10LTR7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5tdC02e21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0ubXQtOHttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqOCl9Lm10LTEwe21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9Lm10LTEye21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMil9Lm10LWF1dG97bWFyZ2luLXRvcDphdXRvfS5tci0xe21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tci0ye21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5tci04e21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjgpfS4tbWItNHttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqLTQpfS5tYi0xe21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ubWItMVwuNXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMS41KX0ubWItMnttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMil9Lm1iLTN7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5tYi00e21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0ubWItNnttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqNil9Lm1iLTh7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjgpfS5tYi0xMHttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMTApfS5tbC0xe21hcmdpbi1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMSl9Lm1sLTJ7bWFyZ2luLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ubWwtYXV0b3ttYXJnaW4tbGVmdDphdXRvfS5saW5lLWNsYW1wLTJ7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5uby1zY3JvbGxiYXJ7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9Lm5vLXNjcm9sbGJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5mbGV4e2Rpc3BsYXk6ZmxleH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmlubGluZXtkaXNwbGF5OmlubGluZX0uaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4fS5saXN0LWl0ZW17ZGlzcGxheTpsaXN0LWl0ZW19LnRhYmxle2Rpc3BsYXk6dGFibGV9LnRhYmxlLWNhcHRpb257ZGlzcGxheTp0YWJsZS1jYXB0aW9ufS50YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbH0udGFibGUtcm93e2Rpc3BsYXk6dGFibGUtcm93fS5maWVsZC1zaXppbmctY29udGVudHtmaWVsZC1zaXppbmc6Y29udGVudH0uYXNwZWN0LVxbMTZcLzlcXXthc3BlY3QtcmF0aW86MTYvOX0uYXNwZWN0LVxbNjEwXC8yMDhcXXthc3BlY3QtcmF0aW86NjEwLzIwOH0uYXNwZWN0LXNxdWFyZXthc3BlY3QtcmF0aW86MX0uc2l6ZS0zXC41e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMy41KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpfS5zaXplLTR7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0uc2l6ZS01e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNSk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNSl9LnNpemUtNnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5zaXplLTd7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo3KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo3KX0uc2l6ZS04e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqOCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOCl9LnNpemUtOXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjkpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjkpfS5zaXplLTEwe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMTApO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKX0uc2l6ZS0xNHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjE0KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNCl9LnNpemUtZnVsbHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5oLTJ7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9LmgtMlwuNXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5oLTN7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMyl9LmgtM1wuNXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpfS5oLTR7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LmgtNXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0uaC02e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5oLTd7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNyl9LmgtOHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uaC04XCF7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOCkhaW1wb3J0YW50fS5oLTl7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOSl9LmgtMTB7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTApfS5oLTEye2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEyKX0uaC0xNHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNCl9LmgtMTZ7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTYpfS5oLTIwe2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjIwKX0uaC0yNHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyNCl9LmgtNDB7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNDApfS5oLTY0e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjY0KX0uaC04MHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4MCl9LmgtXFs4MHB4XF17aGVpZ2h0OjgwcHh9LmgtXFszMDBweFxde2hlaWdodDozMDBweH0uaC1cWzM2MHB4XF17aGVpZ2h0OjM2MHB4fS5oLVxbNDQwcHhcXXtoZWlnaHQ6NDQwcHh9LmgtXFtjYWxjXCgxMDBcJS0xcHhcKVxde2hlaWdodDpjYWxjKDEwMCUgLSAxcHgpfS5oLWF1dG97aGVpZ2h0OmF1dG99LmgtZnVsbHtoZWlnaHQ6MTAwJX0uaC1weHtoZWlnaHQ6MXB4fS5oLXNjcmVlbntoZWlnaHQ6MTAwdmh9Lm1heC1oLVwoLS1hdmFpbGFibGUtaGVpZ2h0XCl7bWF4LWhlaWdodDp2YXIoLS1hdmFpbGFibGUtaGVpZ2h0KX0ubWF4LWgtNjR7bWF4LWhlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjY0KX0ubWF4LWgtNzJ7bWF4LWhlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjcyKX0ubWluLWgtMTZ7bWluLWhlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjE2KX0ubWluLWgtXFs2MHZoXF17bWluLWhlaWdodDo2MHZofS5taW4taC1zY3JlZW57bWluLWhlaWdodDoxMDB2aH0udy1cKC0tYW5jaG9yLXdpZHRoXCl7d2lkdGg6dmFyKC0tYW5jaG9yLXdpZHRoKX0udy0xe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMSl9LnctMnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS53LTN7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0udy0zXC41e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMy41KX0udy00e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCl9LnctNXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjUpfS53LTZ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0udy03e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNyl9LnctOHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjgpfS53LTl7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo5KX0udy0xMHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKX0udy0xMnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEyKX0udy0xNHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjE0KX0udy0xNnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjE2KX0udy0yMHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjIwKX0udy0yNHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjI0KX0udy0yOHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjI4KX0udy0zMnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMyKX0udy00MHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQwKX0udy00NHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQ0KX0udy00OHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQ4KX0udy01Mnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjUyKX0udy01Nnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjU2KX0udy03Mnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjcyKX0udy1cWzEyMHB4XF17d2lkdGg6MTIwcHh9LnctXFsxNDBweFxde3dpZHRoOjE0MHB4fS53LVxbY2FsY1woXCgxMDBcJS0ycmVtXClcLzNcKVxde3dpZHRoOmNhbGMoMzMuMzMzMyUgLSAuNjY2NjY3cmVtKX0udy1hdXRve3dpZHRoOmF1dG99LnctZml0e3dpZHRoOmZpdC1jb250ZW50fS53LWZ1bGx7d2lkdGg6MTAwJX0udy1weHt3aWR0aDoxcHh9Lm1heC13LTB7bWF4LXdpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lm1heC13LTJ4bHttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLTJ4bCl9Lm1heC13LTN4bHttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLTN4bCl9Lm1heC13LTR4bHttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLTR4bCl9Lm1heC13LTd4bHttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLTd4bCl9Lm1heC13LTQ4e21heC13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQ4KX0ubWF4LXctXFsyMDBweFxde21heC13aWR0aDoyMDBweH0ubWF4LXctXFtjYWxjXCgxMDBcJS0ycmVtXClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMnJlbSl9Lm1heC13LVxbY2FsY1woMTAwdnctMnJlbVwpXF17bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAycmVtKX0ubWF4LXctbGd7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci1sZyl9Lm1heC13LW1ke21heC13aWR0aDp2YXIoLS1jb250YWluZXItbWQpfS5tYXgtdy1ub25le21heC13aWR0aDpub25lfS5tYXgtdy1zbXttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLXNtKX0ubWF4LXcteGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci14bCl9Lm1heC13LXhze21heC13aWR0aDp2YXIoLS1jb250YWluZXIteHMpfS5taW4tdy0we21pbi13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5taW4tdy0zMnttaW4td2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozMil9Lm1pbi13LTY0e21pbi13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjY0KX0ubWluLXctXFsycmVtXF17bWluLXdpZHRoOjJyZW19Lm1pbi13LVxbOTZweFxde21pbi13aWR0aDo5NnB4fS5taW4tdy1cWzE1MHB4XF17bWluLXdpZHRoOjE1MHB4fS5mbGV4LTF7ZmxleDoxfS5zaHJpbmstMHtmbGV4LXNocmluazowfS50YWJsZS1maXhlZHt0YWJsZS1sYXlvdXQ6Zml4ZWR9LmNhcHRpb24tYm90dG9te2NhcHRpb24tc2lkZTpib3R0b219Lm9yaWdpbi1cKC0tdHJhbnNmb3JtLW9yaWdpblwpe3RyYW5zZm9ybS1vcmlnaW46dmFyKC0tdHJhbnNmb3JtLW9yaWdpbil9Li10cmFuc2xhdGUteC0xXC8yey0tdHctdHJhbnNsYXRlLXg6Y2FsYyhjYWxjKDEvMioxMDAlKSotMSk7dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0udHJhbnNsYXRlLXgtXFszcHhcXXstLXR3LXRyYW5zbGF0ZS14OjNweDt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS50cmFuc2xhdGUteC1cWzE4cHhcXXstLXR3LXRyYW5zbGF0ZS14OjE4cHg7dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0uLXRyYW5zbGF0ZS15LTFcLzJ7LS10dy10cmFuc2xhdGUteTpjYWxjKGNhbGMoMS8yKjEwMCUpKi0xKTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS50cmFuc2xhdGUteS0wey0tdHctdHJhbnNsYXRlLXk6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS5yb3RhdGUtMTgwe3JvdGF0ZToxODBkZWd9LnRyYW5zZm9ybXt0cmFuc2Zvcm06dmFyKC0tdHctcm90YXRlLXgsKXZhcigtLXR3LXJvdGF0ZS15LCl2YXIoLS10dy1yb3RhdGUteiwpdmFyKC0tdHctc2tldy14LCl2YXIoLS10dy1za2V3LXksKX0udHJhbnNmb3JtLWdwdXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKXZhcigtLXR3LXJvdGF0ZS14LCl2YXIoLS10dy1yb3RhdGUteSwpdmFyKC0tdHctcm90YXRlLXosKXZhcigtLXR3LXNrZXcteCwpdmFyKC0tdHctc2tldy15LCl9LmFuaW1hdGUtcHVsc2V7YW5pbWF0aW9uOnZhcigtLWFuaW1hdGUtcHVsc2UpfS5hbmltYXRlLXNwaW57YW5pbWF0aW9uOnZhcigtLWFuaW1hdGUtc3Bpbil9LmN1cnNvci1jcm9zc2hhaXJ7Y3Vyc29yOmNyb3NzaGFpcn0uY3Vyc29yLWRlZmF1bHR7Y3Vyc29yOmRlZmF1bHR9LmN1cnNvci1ub3QtYWxsb3dlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3ItdGV4dHtjdXJzb3I6dGV4dH0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLXB5LTF7c2Nyb2xsLXBhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5saXN0LW5vbmV7bGlzdC1zdHlsZS10eXBlOm5vbmV9LmF1dG8tY29scy1mcntncmlkLWF1dG8tY29sdW1uczptaW5tYXgoMCwxZnIpfS5ncmlkLWZsb3ctY29se2dyaWQtYXV0by1mbG93OmNvbHVtbn0uYXV0by1yb3dzLW1pbntncmlkLWF1dG8tcm93czptaW4tY29udGVudH0uZ3JpZC1jb2xzLTF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxLG1pbm1heCgwLDFmcikpfS5ncmlkLWNvbHMtMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC1jb2wtcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0uZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5mbGV4LXdyYXB7ZmxleC13cmFwOndyYXB9LmNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uaXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5pdGVtcy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2h9Lmp1c3RpZnktYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9Lmp1c3RpZnktYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uanVzdGlmeS1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5nYXAtMFwuNXtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9LmdhcC0xe2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5nYXAtMVwuNXtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxLjUpfS5nYXAtMntnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uZ2FwLTJcLjV7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqMi41KX0uZ2FwLTN7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqMyl9LmdhcC00e2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5nYXAtNntnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0uZ2FwLTh7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqOCl9LmdhcC1cWzJweFxde2dhcDoycHh9OndoZXJlKC5zcGFjZS15LTBcLjU+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSouNSkqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLWJsb2NrLWVuZDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqLjUpKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKX06d2hlcmUoLnNwYWNlLXktMT46bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEpKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEpKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKX06d2hlcmUoLnNwYWNlLXktMVwuNT46bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSkqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLWJsb2NrLWVuZDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMS41KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTI+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSoyKSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSoyKSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTM+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSozKSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSozKSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTQ+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo0KSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo0KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTY+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo2KSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo2KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTg+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo4KSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo4KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTEwPjpub3QoOmxhc3QtY2hpbGQpKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ibG9jay1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMTApKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEwKSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9LmdhcC14LTR7Y29sdW1uLWdhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5nYXAteC04e2NvbHVtbi1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX06d2hlcmUoLi1zcGFjZS14LTI+Om5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqLTIpKnZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO21hcmdpbi1pbmxpbmUtZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSotMikqY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpfS5nYXAteS0xXC41e3Jvdy1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxLjUpfS5nYXAteS01e3Jvdy1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX06d2hlcmUoLmRpdmlkZS15Pjpub3QoOmxhc3QtY2hpbGQpKXstLXR3LWRpdmlkZS15LXJldmVyc2U6MDtib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXRvcC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci10b3Atd2lkdGg6Y2FsYygxcHgqdmFyKC0tdHctZGl2aWRlLXktcmV2ZXJzZSkpO2JvcmRlci1ib3R0b20td2lkdGg6Y2FsYygxcHgqY2FsYygxIC0gdmFyKC0tdHctZGl2aWRlLXktcmV2ZXJzZSkpKX06d2hlcmUoLmRpdmlkZS1ib3JkZXI+Om5vdCg6bGFzdC1jaGlsZCkpe2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5zZWxmLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydH0uanVzdGlmeS1zZWxmLWVuZHtqdXN0aWZ5LXNlbGY6ZmxleC1lbmR9LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0ub3ZlcmZsb3ctYXV0b3tvdmVyZmxvdzphdXRvfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWF1dG97b3ZlcmZsb3cteDphdXRvfS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteC1zY3JvbGx7b3ZlcmZsb3cteDpzY3JvbGx9Lm92ZXJmbG93LXktYXV0b3tvdmVyZmxvdy15OmF1dG99LnJvdW5kZWR7Ym9yZGVyLXJhZGl1czouMjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuOCl9LnJvdW5kZWQtNHhse2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjIuNil9LnJvdW5kZWQtXFtjYWxjXCh2YXJcKC0tcmFkaXVzXCktM3B4XClcXXtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDNweCl9LnJvdW5kZWQtXFttaW5cKHZhclwoLS1yYWRpdXMtbWRcKVwsMTBweFwpXF17Ym9yZGVyLXJhZGl1czptaW4odmFyKC0tcmFkaXVzLW1kKSwxMHB4KX0ucm91bmRlZC1cW21pblwodmFyXCgtLXJhZGl1cy1tZFwpXCwxMnB4XClcXXtib3JkZXItcmFkaXVzOm1pbih2YXIoLS1yYWRpdXMtbWQpLDEycHgpfS5yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czozLjQwMjgyZTM4cHh9LnJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMpfS5yb3VuZGVkLWxnXCF7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMpIWltcG9ydGFudH0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSouOCl9LnJvdW5kZWQtbm9uZXtib3JkZXItcmFkaXVzOjB9LnJvdW5kZWQtc217Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqLjYpfS5yb3VuZGVkLXhse2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuNCl9LnJvdW5kZWQteGxcIXtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpIWltcG9ydGFudH0ucm91bmRlZC10LTJ4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjgpfS5yb3VuZGVkLXQteGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqMS40KTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqMS40KX0ucm91bmRlZC1iLXhse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuNCl9LmJvcmRlcntib3JkZXItc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXR7Ym9yZGVyLXRvcC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci10b3Atd2lkdGg6MXB4fS5ib3JkZXItcntib3JkZXItcmlnaHQtc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItcmlnaHQtd2lkdGg6MXB4fS5ib3JkZXItYntib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LmJvcmRlci1iLTJ7Ym9yZGVyLWJvdHRvbS1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1ib3R0b20td2lkdGg6MnB4fS5ib3JkZXItZGFzaGVkey0tdHctYm9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItc3R5bGU6ZGFzaGVkfS5ib3JkZXItYm9yZGVye2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5ib3JkZXItZGFuZ2VyXC8zMHtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJvcmRlci1kYW5nZXJcLzMwe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGFuZ2VyKTMwJSx0cmFuc3BhcmVudCl9fS5ib3JkZXItZGVzdHJ1Y3RpdmVcLzMwe2JvcmRlci1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ib3JkZXItZGVzdHJ1Y3RpdmVcLzMwe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMzAlLHRyYW5zcGFyZW50KX19LmJvcmRlci1pbnB1dCwuYm9yZGVyLWlucHV0XC8zMHtib3JkZXItY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYm9yZGVyLWlucHV0XC8zMHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTMwJSx0cmFuc3BhcmVudCl9fS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tcHJpbWFyeSl9LmJvcmRlci1yZWQtNTAwXC80MHtib3JkZXItY29sb3I6I2ZiMmMzNjY2fUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYm9yZGVyLXJlZC01MDBcLzQwe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tY29sb3ItcmVkLTUwMCk0MCUsdHJhbnNwYXJlbnQpfX0uYm9yZGVyLXN1Y2Nlc3NcLzMwe2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJvcmRlci1zdWNjZXNzXC8zMHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXN1Y2Nlc3MpMzAlLHRyYW5zcGFyZW50KX19LmJvcmRlci10cmFuc3BhcmVudHtib3JkZXItY29sb3I6IzAwMDB9LmJnLVxbXCMyMjlFRDlcXXtiYWNrZ3JvdW5kLWNvbG9yOiMyMjllZDl9LmJnLWJhY2tncm91bmQsLmJnLWJhY2tncm91bmRcLzgwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1iYWNrZ3JvdW5kXC84MHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1iYWNrZ3JvdW5kKTgwJSx0cmFuc3BhcmVudCl9fS5iZy1ibGFja1wvMTB7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwMWF9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1ibGFja1wvMTB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tY29sb3ItYmxhY2spMTAlLHRyYW5zcGFyZW50KX19LmJnLWJsYWNrXC81MHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA4MH1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLWJsYWNrXC81MHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1jb2xvci1ibGFjayk1MCUsdHJhbnNwYXJlbnQpfX0uYmctYm9yZGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYm9yZGVyKX0uYmctY2FyZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQpfS5iZy1kYW5nZXIsLmJnLWRhbmdlclwvNXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRhbmdlcil9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1kYW5nZXJcLzV7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGFuZ2VyKTUlLHRyYW5zcGFyZW50KX19LmJnLWRlc3RydWN0aXZlLC5iZy1kZXN0cnVjdGl2ZVwvNXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLWRlc3RydWN0aXZlXC81e2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTUlLHRyYW5zcGFyZW50KX19LmJnLWRlc3RydWN0aXZlXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLWRlc3RydWN0aXZlXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkxMCUsdHJhbnNwYXJlbnQpfX0uYmctaW5wdXRcLzMwe2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctaW5wdXRcLzMwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTMwJSx0cmFuc3BhcmVudCl9fS5iZy1tdXRlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uYmctbXV0ZWQtZm9yZWdyb3VuZFwvMjV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLW11dGVkLWZvcmVncm91bmRcLzI1e2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkLWZvcmVncm91bmQpMjUlLHRyYW5zcGFyZW50KX19LmJnLW11dGVkXC8zMHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLW11dGVkXC8zMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCkzMCUsdHJhbnNwYXJlbnQpfX0uYmctbXV0ZWRcLzQwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctbXV0ZWRcLzQwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkKTQwJSx0cmFuc3BhcmVudCl9fS5iZy1tdXRlZFwvNTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1tdXRlZFwvNTB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tbXV0ZWQpNTAlLHRyYW5zcGFyZW50KX19LmJnLXBvcG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wb3BvdmVyKX0uYmctcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpfS5iZy1wcmltYXJ5LWZvcmVncm91bmRcLzIwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXByaW1hcnktZm9yZWdyb3VuZFwvMjB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKTIwJSx0cmFuc3BhcmVudCl9fS5iZy1wcmltYXJ5XC81e2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1wcmltYXJ5XC81e2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXByaW1hcnkpNSUsdHJhbnNwYXJlbnQpfX0uYmctcHJpbWFyeVwvMTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXByaW1hcnlcLzEwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXByaW1hcnkpMTAlLHRyYW5zcGFyZW50KX19LmJnLXByaW1hcnlcLzE1e2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1wcmltYXJ5XC8xNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTE1JSx0cmFuc3BhcmVudCl9fS5iZy1zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnkpfS5iZy1zdWNjZXNzLC5iZy1zdWNjZXNzXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctc3VjY2Vzc1wvMTB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tc3VjY2VzcykxMCUsdHJhbnNwYXJlbnQpfX0uYmctc3VjY2Vzc1wvMTV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zdWNjZXNzKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXN1Y2Nlc3NcLzE1e2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXN1Y2Nlc3MpMTUlLHRyYW5zcGFyZW50KX19LmJnLXN1cmZhY2UsLmJnLXN1cmZhY2VcLzkwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tc3VyZmFjZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1zdXJmYWNlXC85MHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1zdXJmYWNlKTkwJSx0cmFuc3BhcmVudCl9fS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13YXJuaW5nXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdhcm5pbmcpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctd2FybmluZ1wvMTB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0td2FybmluZykxMCUsdHJhbnNwYXJlbnQpfX0uYmctd2hpdGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci13aGl0ZSl9LmJnLXdoaXRlXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYyNn1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXdoaXRlXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1jb2xvci13aGl0ZSkxNSUsdHJhbnNwYXJlbnQpfX0uYmctZ3JhZGllbnQtdG8tYnJ7LS10dy1ncmFkaWVudC1wb3NpdGlvbjp0byBib3R0b20gcmlnaHQgaW4gb2tsYWI7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKX0uZnJvbS1cW1wjMzhBRkUzXF17LS10dy1ncmFkaWVudC1mcm9tOiMzOGFmZTM7LS10dy1ncmFkaWVudC1zdG9wczp2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LWZyb20pdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksdmFyKC0tdHctZ3JhZGllbnQtdG8pdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKX0uZnJvbS1cW1wjMjI5RUQ5XF17LS10dy1ncmFkaWVudC1mcm9tOiMyMjllZDk7LS10dy1ncmFkaWVudC1zdG9wczp2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LWZyb20pdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksdmFyKC0tdHctZ3JhZGllbnQtdG8pdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKX0udG8tXFtcIzFGOTdDQVxdey0tdHctZ3JhZGllbnQtdG86IzFmOTdjYTstLXR3LWdyYWRpZW50LXN0b3BzOnZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcyx2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksdmFyKC0tdHctZ3JhZGllbnQtZnJvbSl2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSx2YXIoLS10dy1ncmFkaWVudC10byl2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpfS50by1cW1wjMWE3ZmIwXF17LS10dy1ncmFkaWVudC10bzojMWE3ZmIwOy0tdHctZ3JhZGllbnQtc3RvcHM6dmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSx2YXIoLS10dy1ncmFkaWVudC1mcm9tKXZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LXRvKXZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSl9LmJnLWNsaXAtcGFkZGluZ3tiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3h9Lm9iamVjdC1jb3ZlcntvYmplY3QtZml0OmNvdmVyfS5wLTB7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5wLTBcLjV7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0ucC0xe3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ucC0ye3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucC0ze3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ucC00e3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0ucC01e3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0ucC02e3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0ucC0xMntwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqMTIpfS5wLVxbM3B4XF17cGFkZGluZzozcHh9LnB4LTF7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ucHgtMVwuNXtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9LnB4LTJ7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucHgtMlwuNXtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjIuNSl9LnB4LTN7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ucHgtNHtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5weC01e3BhZGRpbmctaW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqNSl9LnB5LTBcLjV7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0ucHktMXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMSl9LnB5LTFcLjV7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9LnB5LTJ7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5weS0yXC41e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5weS0ze3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ucHktM1wuNXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMy41KX0ucHktNHtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqNCl9LnB5LTZ7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5weS04e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0ucHktMTB7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKX0ucHktMTJ7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEyKX0ucHktMTZ7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjE2KX0ucHQtMntwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5wdC0ze3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2luZykqMyl9LnB0LTR7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0ucHQtNntwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5wci0ye3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucHItNHtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LnByLTh7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjgpfS5wci0xMntwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTIpfS5wYi0we3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMCl9LnBiLTF7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ucGItMntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5wYi02e3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqNil9LnBiLTh7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0ucGItMTB7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LnBiLTE2e3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMTYpfS5wbC0xXC41e3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9LnBsLTJ7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMil9LnBsLTV7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqNSl9LnBsLTh7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqOCl9LnBsLTl7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqOSl9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LmFsaWduLW1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvbnQtbW9ub3tmb250LWZhbWlseTp2YXIoLS1mb250LWludGVyKSwiSW50ZXIiLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZn0udGV4dC0yeGx7Zm9udC1zaXplOnZhcigtLXRleHQtMnhsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtMnhsLS1saW5lLWhlaWdodCkpfS50ZXh0LTN4bHtmb250LXNpemU6dmFyKC0tdGV4dC0zeGwpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC0zeGwtLWxpbmUtaGVpZ2h0KSl9LnRleHQtNHhse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTR4bCk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LTR4bC0tbGluZS1oZWlnaHQpKX0udGV4dC02eGx7Zm9udC1zaXplOnZhcigtLXRleHQtNnhsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtNnhsLS1saW5lLWhlaWdodCkpfS50ZXh0LWJhc2V7Zm9udC1zaXplOnZhcigtLXRleHQtYmFzZSk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LWJhc2UtLWxpbmUtaGVpZ2h0KSl9LnRleHQtbGd7Zm9udC1zaXplOnZhcigtLXRleHQtbGcpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC1sZy0tbGluZS1oZWlnaHQpKX0udGV4dC1zbXtmb250LXNpemU6dmFyKC0tdGV4dC1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LXNtLS1saW5lLWhlaWdodCkpfS50ZXh0LXhse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXhsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQteGwtLWxpbmUtaGVpZ2h0KSl9LnRleHQteHN7Zm9udC1zaXplOnZhcigtLXRleHQteHMpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC14cy0tbGluZS1oZWlnaHQpKX0udGV4dC1cWzBcLjhyZW1cXXtmb250LXNpemU6LjhyZW19LnRleHQtXFsxMHB4XF17Zm9udC1zaXplOjEwcHh9LnRleHQtXFsxMXB4XF17Zm9udC1zaXplOjExcHh9LmxlYWRpbmctbm9uZXstLXR3LWxlYWRpbmc6MTtsaW5lLWhlaWdodDoxfS5sZWFkaW5nLXJlbGF4ZWR7LS10dy1sZWFkaW5nOnZhcigtLWxlYWRpbmctcmVsYXhlZCk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1yZWxheGVkKX0ubGVhZGluZy1zbnVney0tdHctbGVhZGluZzp2YXIoLS1sZWFkaW5nLXNudWcpO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctc251Zyl9LmxlYWRpbmctdGlnaHR7LS10dy1sZWFkaW5nOnZhcigtLWxlYWRpbmctdGlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctdGlnaHQpfS5mb250LWJvbGR7LS10dy1mb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1ib2xkKTtmb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1ib2xkKX0uZm9udC1tZWRpdW17LS10dy1mb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSl9LmZvbnQtbm9ybWFsey0tdHctZm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKTtmb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpfS5mb250LXNlbWlib2xkey0tdHctZm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKX0udHJhY2tpbmctdGlnaHR7LS10dy10cmFja2luZzp2YXIoLS10cmFja2luZy10aWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tdHJhY2tpbmctdGlnaHQpfS50cmFja2luZy13aWRley0tdHctdHJhY2tpbmc6dmFyKC0tdHJhY2tpbmctd2lkZSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tdHJhY2tpbmctd2lkZSl9LnRyYWNraW5nLXdpZGVzdHstLXR3LXRyYWNraW5nOnZhcigtLXRyYWNraW5nLXdpZGVzdCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tdHJhY2tpbmctd2lkZXN0KX0uYnJlYWstYWxse3dvcmQtYnJlYWs6YnJlYWstYWxsfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmUtbGluZXt3aGl0ZS1zcGFjZTpwcmUtbGluZX0ud2hpdGVzcGFjZS1wcmUtd3JhcHt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0udGV4dC1cW1wjMjJDNTVFXF17Y29sb3I6IzIyYzU1ZX0udGV4dC1cW1wjMjI5RUQ5XF17Y29sb3I6IzIyOWVkOX0udGV4dC1cW1wjMTg3OUE4XF17Y29sb3I6IzE4NzlhOH0udGV4dC1cW1wjRUY0NDQ0XF17Y29sb3I6I2VmNDQ0NH0udGV4dC1jYXJkLWZvcmVncm91bmR7Y29sb3I6dmFyKC0tY2FyZC1mb3JlZ3JvdW5kKX0udGV4dC1kYW5nZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0udGV4dC1kZXN0cnVjdGl2ZXtjb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LnRleHQtZm9yZWdyb3VuZCwudGV4dC1mb3JlZ3JvdW5kXC82MHtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnRleHQtZm9yZWdyb3VuZFwvNjB7Y29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWZvcmVncm91bmQpNjAlLHRyYW5zcGFyZW50KX19LnRleHQtZm9yZWdyb3VuZFwvODB7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey50ZXh0LWZvcmVncm91bmRcLzgwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1mb3JlZ3JvdW5kKTgwJSx0cmFuc3BhcmVudCl9fS50ZXh0LWdyZWVuLTYwMHtjb2xvcjp2YXIoLS1jb2xvci1ncmVlbi02MDApfS50ZXh0LW11dGVkLWZvcmVncm91bmQsLnRleHQtbXV0ZWQtZm9yZWdyb3VuZFwvNjB7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey50ZXh0LW11dGVkLWZvcmVncm91bmRcLzYwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTYwJSx0cmFuc3BhcmVudCl9fS50ZXh0LW9yYW5nZS01MDB7Y29sb3I6dmFyKC0tY29sb3Itb3JhbmdlLTUwMCl9LnRleHQtcG9wb3Zlci1mb3JlZ3JvdW5ke2NvbG9yOnZhcigtLXBvcG92ZXItZm9yZWdyb3VuZCl9LnRleHQtcHJpbWFyeXtjb2xvcjp2YXIoLS1wcmltYXJ5KX0udGV4dC1wcmltYXJ5LWZvcmVncm91bmR7Y29sb3I6dmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKX0udGV4dC1yZWQtNTAwe2NvbG9yOnZhcigtLWNvbG9yLXJlZC01MDApfS50ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5ke2NvbG9yOnZhcigtLXNlY29uZGFyeS1mb3JlZ3JvdW5kKX0udGV4dC1zdWNjZXNze2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS50ZXh0LXdhcm5pbmd7Y29sb3I6dmFyKC0td2FybmluZyl9LnRleHQtd2hpdGV7Y29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfS50ZXh0LXdoaXRlXC84NXtjb2xvcjojZmZmZmZmZDl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey50ZXh0LXdoaXRlXC84NXtjb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tY29sb3Itd2hpdGUpODUlLHRyYW5zcGFyZW50KX19LnRleHQtd2hpdGVcLzkwe2NvbG9yOiNmZmZmZmZlNn1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnRleHQtd2hpdGVcLzkwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1jb2xvci13aGl0ZSk5MCUsdHJhbnNwYXJlbnQpfX0udGV4dC13aGl0ZVwvOTV7Y29sb3I6I2ZmZmZmZmYyfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsudGV4dC13aGl0ZVwvOTV7Y29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWNvbG9yLXdoaXRlKTk1JSx0cmFuc3BhcmVudCl9fS5jYXBpdGFsaXple3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9LnVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lml0YWxpY3tmb250LXN0eWxlOml0YWxpY30udGFidWxhci1udW1zey0tdHctbnVtZXJpYy1zcGFjaW5nOnRhYnVsYXItbnVtcztmb250LXZhcmlhbnQtbnVtZXJpYzp2YXIoLS10dy1vcmRpbmFsLCl2YXIoLS10dy1zbGFzaGVkLXplcm8sKXZhcigtLXR3LW51bWVyaWMtZmlndXJlLCl2YXIoLS10dy1udW1lcmljLXNwYWNpbmcsKXZhcigtLXR3LW51bWVyaWMtZnJhY3Rpb24sKX0udW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0udW5kZXJsaW5lLW9mZnNldC0ye3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHh9LnVuZGVybGluZS1vZmZzZXQtNHt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NHB4fS5hbnRpYWxpYXNlZHstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0ub3BhY2l0eS0we29wYWNpdHk6MH0ub3BhY2l0eS0zMHtvcGFjaXR5Oi4zfS5vcGFjaXR5LTQwe29wYWNpdHk6LjR9Lm9wYWNpdHktNTB7b3BhY2l0eTouNX0ub3BhY2l0eS03MHtvcGFjaXR5Oi43fS5iZy1ibGVuZC1jb2xvcntiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6Y29sb3J9LnNoYWRvd3stLXR3LXNoYWRvdzowIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSwwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1sZ3stLXR3LXNoYWRvdzowIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LW1key0tdHctc2hhZG93OjAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LW5vbmV7LS10dy1zaGFkb3c6MCAwICMwMDAwO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LW5vbmVcIXstLXR3LXNoYWRvdzowIDAgIzAwMDAhaW1wb3J0YW50O2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KSFpbXBvcnRhbnR9LnNoYWRvdy1zbXstLXR3LXNoYWRvdzowIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSwwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy14c3stLXR3LXNoYWRvdzowIDFweCAycHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMHstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMHB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMXB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMnstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctYmFja2dyb3VuZHstLXR3LXJpbmctY29sb3I6dmFyKC0tYmFja2dyb3VuZCl9LnJpbmctZm9yZWdyb3VuZFwvMTB7LS10dy1yaW5nLWNvbG9yOnZhcigtLWZvcmVncm91bmQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsucmluZy1mb3JlZ3JvdW5kXC8xMHstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWZvcmVncm91bmQpMTAlLHRyYW5zcGFyZW50KX19LnJpbmctcHJpbWFyeVwvMzB7LS10dy1yaW5nLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsucmluZy1wcmltYXJ5XC8zMHstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXByaW1hcnkpMzAlLHRyYW5zcGFyZW50KX19Lm91dGxpbmUtaGlkZGVuey0tdHctb3V0bGluZS1zdHlsZTpub25lO291dGxpbmUtc3R5bGU6bm9uZX1AbWVkaWEgKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsub3V0bGluZS1oaWRkZW57b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfX0ub3V0bGluZXtvdXRsaW5lLXN0eWxlOnZhcigtLXR3LW91dGxpbmUtc3R5bGUpO291dGxpbmUtd2lkdGg6MXB4fS5maWx0ZXJ7ZmlsdGVyOnZhcigtLXR3LWJsdXIsKXZhcigtLXR3LWJyaWdodG5lc3MsKXZhcigtLXR3LWNvbnRyYXN0LCl2YXIoLS10dy1ncmF5c2NhbGUsKXZhcigtLXR3LWh1ZS1yb3RhdGUsKXZhcigtLXR3LWludmVydCwpdmFyKC0tdHctc2F0dXJhdGUsKXZhcigtLXR3LXNlcGlhLCl2YXIoLS10dy1kcm9wLXNoYWRvdywpfS5iYWNrZHJvcC1ibHVyLXNtey0tdHctYmFja2Ryb3AtYmx1cjpibHVyKHZhcigtLWJsdXItc20pKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS10dy1iYWNrZHJvcC1ibHVyLCl2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzLCl2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCwpdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlLCl2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlLCl2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQsKXZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHksKXZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlLCl2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSwpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS10dy1iYWNrZHJvcC1ibHVyLCl2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzLCl2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCwpdmFyKC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlLCl2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlLCl2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQsKXZhcigtLXR3LWJhY2tkcm9wLW9wYWNpdHksKXZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlLCl2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSwpfS50cmFuc2l0aW9ue3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3Isb3V0bGluZS1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2UsLS10dy1ncmFkaWVudC1mcm9tLC0tdHctZ3JhZGllbnQtdmlhLC0tdHctZ3JhZGllbnQtdG8sb3BhY2l0eSxib3gtc2hhZG93LHRyYW5zZm9ybSx0cmFuc2xhdGUsc2NhbGUscm90YXRlLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXIsZGlzcGxheSxjb250ZW50LXZpc2liaWxpdHksb3ZlcmxheSxwb2ludGVyLWV2ZW50czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS50cmFuc2l0aW9uLWNvbG9yc3t0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLG91dGxpbmUtY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlLC0tdHctZ3JhZGllbnQtZnJvbSwtLXR3LWdyYWRpZW50LXZpYSwtLXR3LWdyYWRpZW50LXRvO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXR3LWVhc2UsdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdHctZHVyYXRpb24sdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSl9LnRyYW5zaXRpb24tb3BhY2l0eXt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tdHctZWFzZSx2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS10dy1kdXJhdGlvbix2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKX0udHJhbnNpdGlvbi1zaGFkb3d7dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3gtc2hhZG93O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXR3LWVhc2UsdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdHctZHVyYXRpb24sdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSl9LnRyYW5zaXRpb24tdHJhbnNmb3Jte3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLHRyYW5zbGF0ZSxzY2FsZSxyb3RhdGU7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tdHctZWFzZSx2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS10dy1kdXJhdGlvbix2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKX0uZHVyYXRpb24tMTAwey0tdHctZHVyYXRpb246LjFzO3RyYW5zaXRpb24tZHVyYXRpb246LjFzfS5kdXJhdGlvbi0xNTB7LS10dy1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tZHVyYXRpb246LjE1c30uZHVyYXRpb24tMjAwey0tdHctZHVyYXRpb246LjJzO3RyYW5zaXRpb24tZHVyYXRpb246LjJzfS5lYXNlLWluLW91dHstLXR3LWVhc2U6dmFyKC0tZWFzZS1pbi1vdXQpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWVhc2UtaW4tb3V0KX0uXFt3aWxsLWNoYW5nZVw6dHJhbnNmb3JtXF17d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS5vdXRsaW5lLW5vbmV7LS10dy1vdXRsaW5lLXN0eWxlOm5vbmU7b3V0bGluZS1zdHlsZTpub25lfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucGF1c2Vke2FuaW1hdGlvbi1wbGF5LXN0YXRlOnBhdXNlZH0ucnVubmluZ3thbmltYXRpb24tcGxheS1zdGF0ZTpydW5uaW5nfS5ncm91cC1vcGVuXDpyb3RhdGUtMTgwOmlzKDp3aGVyZSguZ3JvdXApOmlzKFtvcGVuXSw6cG9wb3Zlci1vcGVuLDpvcGVuKSAqKXtyb3RhdGU6MTgwZGVnfUBtZWRpYSAoaG92ZXI6aG92ZXIpey5ncm91cC1ob3Zlclw6dHJhbnNsYXRlLXgtMFwuNTppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKXstLXR3LXRyYW5zbGF0ZS14OmNhbGModmFyKC0tc3BhY2luZykqLjUpO3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9Lmdyb3VwLWhvdmVyXDpiZy1tdXRlZDppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uZ3JvdXAtaG92ZXJcOnRleHQtcHJpbWFyeTppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKXtjb2xvcjp2YXIoLS1wcmltYXJ5KX0uZ3JvdXAtaG92ZXJcOnRleHQtd2hpdGU6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKil7Y29sb3I6dmFyKC0tY29sb3Itd2hpdGUpfS5ncm91cC1ob3Zlclw6b3BhY2l0eS0xMDA6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKil7b3BhY2l0eToxfS5ncm91cC1ob3Zlclw6c2hhZG93LW1kOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICopey0tdHctc2hhZG93OjAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX19Lmdyb3VwLWZvY3VzXC9kcm9wZG93bi1tZW51LWl0ZW1cOnRleHQtYWNjZW50LWZvcmVncm91bmQ6aXMoOndoZXJlKC5ncm91cFwvZHJvcGRvd24tbWVudS1pdGVtKTpmb2N1cyAqKXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9Lmdyb3VwLWhhcy1kYXRhLVxbc2l6ZVw9bGdcXVwvYXZhdGFyLWdyb3VwXDpzaXplLTEwOmlzKDp3aGVyZSguZ3JvdXBcL2F2YXRhci1ncm91cCk6aGFzKFtkYXRhLXNpemU9bGddKSAqKXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9Lmdyb3VwLWhhcy1kYXRhLVxbc2l6ZVw9c21cXVwvYXZhdGFyLWdyb3VwXDpzaXplLTY6aXMoOndoZXJlKC5ncm91cFwvYXZhdGFyLWdyb3VwKTpoYXMoW2RhdGEtc2l6ZT1zbV0pICope3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNik7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNil9Lmdyb3VwLWhhcy1kYXRhLVxbc2xvdFw9Y29tbWFuZC1zaG9ydGN1dFxdXC9jb21tYW5kLWl0ZW1cOmhpZGRlbjppcyg6d2hlcmUoLmdyb3VwXC9jb21tYW5kLWl0ZW0pOmhhcyhbZGF0YS1zbG90PWNvbW1hbmQtc2hvcnRjdXRdKSAqKXtkaXNwbGF5Om5vbmV9Lmdyb3VwLWhhcy1cW1w+aW5wdXRcXVwvaW5wdXQtZ3JvdXBcOnB0LTI6aXMoOndoZXJlKC5ncm91cFwvaW5wdXQtZ3JvdXApOmhhcyg+aW5wdXQpICope3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2luZykqMil9Lmdyb3VwLWhhcy1cW1w+aW5wdXRcXVwvaW5wdXQtZ3JvdXBcOnBiLTI6aXMoOndoZXJlKC5ncm91cFwvaW5wdXQtZ3JvdXApOmhhcyg+aW5wdXQpICope3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMil9Lmdyb3VwLWRhdGEtXFtjaGVja2VkXD10cnVlXF1cL2NvbW1hbmQtaXRlbVw6b3BhY2l0eS0xMDA6aXMoOndoZXJlKC5ncm91cFwvY29tbWFuZC1pdGVtKVtkYXRhLWNoZWNrZWQ9dHJ1ZV0gKil7b3BhY2l0eToxfS5ncm91cC1kYXRhLVxbZGlzYWJsZWRcPXRydWVcXVw6cG9pbnRlci1ldmVudHMtbm9uZTppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWRpc2FibGVkPXRydWVdICope3BvaW50ZXItZXZlbnRzOm5vbmV9Lmdyb3VwLWRhdGEtXFtkaXNhYmxlZFw9dHJ1ZVxdXDpvcGFjaXR5LTUwOmlzKDp3aGVyZSguZ3JvdXApW2RhdGEtZGlzYWJsZWQ9dHJ1ZV0gKiksLmdyb3VwLWRhdGEtXFtkaXNhYmxlZFw9dHJ1ZVxdXC9pbnB1dC1ncm91cFw6b3BhY2l0eS01MDppcyg6d2hlcmUoLmdyb3VwXC9pbnB1dC1ncm91cClbZGF0YS1kaXNhYmxlZD10cnVlXSAqKXtvcGFjaXR5Oi41fS5ncm91cC1kYXRhLVxbc2l6ZVw9ZGVmYXVsdFxdXC9hdmF0YXJcOnNpemUtMlwuNTppcyg6d2hlcmUoLmdyb3VwXC9hdmF0YXIpW2RhdGEtc2l6ZT1kZWZhdWx0XSAqKXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjIuNSk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMi41KX0uZ3JvdXAtZGF0YS1cW3NpemVcPWxnXF1cL2F2YXRhclw6c2l6ZS0zOmlzKDp3aGVyZSguZ3JvdXBcL2F2YXRhcilbZGF0YS1zaXplPWxnXSAqKXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5ncm91cC1kYXRhLVxbc2l6ZVw9c21cXVwvYXZhdGFyXDpzaXplLTI6aXMoOndoZXJlKC5ncm91cFwvYXZhdGFyKVtkYXRhLXNpemU9c21dICope3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMik7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9Lmdyb3VwLWRhdGEtXFtzaXplXD1zbVxdXC9hdmF0YXJcOnRleHQteHM6aXMoOndoZXJlKC5ncm91cFwvYXZhdGFyKVtkYXRhLXNpemU9c21dICope2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXhzKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQteHMtLWxpbmUtaGVpZ2h0KSl9Lmdyb3VwLWRhdGEtXFtzaXplXD1zbVxdXC9jYXJkXDpwLTM6aXMoOndoZXJlKC5ncm91cFwvY2FyZClbZGF0YS1zaXplPXNtXSAqKXtwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqMyl9Lmdyb3VwLWRhdGEtXFtzaXplXD1zbVxdXC9jYXJkXDpweC0zOmlzKDp3aGVyZSguZ3JvdXBcL2NhcmQpW2RhdGEtc2l6ZT1zbV0gKil7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uZ3JvdXAtZGF0YS1cW3NpemVcPXNtXF1cL2NhcmRcOnRleHQtc206aXMoOndoZXJlKC5ncm91cFwvY2FyZClbZGF0YS1zaXplPXNtXSAqKXtmb250LXNpemU6dmFyKC0tdGV4dC1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LXNtLS1saW5lLWhlaWdodCkpfS5ncm91cC1kYXRhLVxbdmFyaWFudFw9bGluZVxdXC90YWJzLWxpc3RcOmJnLXRyYW5zcGFyZW50OmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWxpbmVdICope2JhY2tncm91bmQtY29sb3I6IzAwMDB9Lmdyb3VwLWRhdGEtc2VsZWN0ZWRcL2NvbW1hbmQtaXRlbVw6dGV4dC1mb3JlZ3JvdW5kOmlzKDp3aGVyZSguZ3JvdXBcL2NvbW1hbmQtaXRlbSk6d2hlcmUoW2RhdGEtc2VsZWN0ZWQ9dHJ1ZV0pICope2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5ncm91cC1kYXRhLWhvcml6b250YWxcL3RhYnNcOmgtODppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj1ob3Jpem9udGFsXSkgKil7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOCl9Lmdyb3VwLWRhdGEtdmVydGljYWxcL3RhYnNcOmgtZml0OmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPXZlcnRpY2FsXSkgKil7aGVpZ2h0OmZpdC1jb250ZW50fS5ncm91cC1kYXRhLXZlcnRpY2FsXC90YWJzXDp3LWZ1bGw6aXMoOndoZXJlKC5ncm91cFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxdKSAqKXt3aWR0aDoxMDAlfS5ncm91cC1kYXRhLXZlcnRpY2FsXC90YWJzXDpmbGV4LWNvbDppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pICope2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFwvdGFic1w6anVzdGlmeS1zdGFydDppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pICope2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5wZWVyLWRpc2FibGVkXDpjdXJzb3Itbm90LWFsbG93ZWQ6aXMoOndoZXJlKC5wZWVyKTpkaXNhYmxlZH4qKXtjdXJzb3I6bm90LWFsbG93ZWR9LnBlZXItZGlzYWJsZWRcOm9wYWNpdHktNTA6aXMoOndoZXJlKC5wZWVyKTpkaXNhYmxlZH4qKXtvcGFjaXR5Oi41fS5maWxlXDppbmxpbmUtZmxleDo6ZmlsZS1zZWxlY3Rvci1idXR0b257ZGlzcGxheTppbmxpbmUtZmxleH0uZmlsZVw6aC02OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0uZmlsZVw6Ym9yZGVyLTA6OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2JvcmRlci1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci13aWR0aDowfS5maWxlXDpiZy10cmFuc3BhcmVudDo6ZmlsZS1zZWxlY3Rvci1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZmlsZVw6dGV4dC1zbTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Zm9udC1zaXplOnZhcigtLXRleHQtc20pO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKX0uZmlsZVw6Zm9udC1tZWRpdW06OmZpbGUtc2VsZWN0b3ItYnV0dG9uey0tdHctZm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtmb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pfS5maWxlXDp0ZXh0LWZvcmVncm91bmQ6OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5wbGFjZWhvbGRlclw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0uYWZ0ZXJcOmFic29sdXRlOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7cG9zaXRpb246YWJzb2x1dGV9LmFmdGVyXDppbnNldC0wOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7aW5zZXQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uYWZ0ZXJcOnJvdW5kZWQtZnVsbDphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2JvcmRlci1yYWRpdXM6My40MDI4MmUzOHB4fS5hZnRlclw6Ym9yZGVyOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7Ym9yZGVyLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXdpZHRoOjFweH0uYWZ0ZXJcOmJvcmRlci1ib3JkZXI6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKX0uYWZ0ZXJcOmJnLWZvcmVncm91bmQ6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvcmVncm91bmQpfS5hZnRlclw6b3BhY2l0eS0wOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7b3BhY2l0eTowfS5hZnRlclw6bWl4LWJsZW5kLWRhcmtlbjphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uYWZ0ZXJcOnRyYW5zaXRpb24tb3BhY2l0eTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS5ncm91cC1kYXRhLWhvcml6b250YWxcL3RhYnNcOmFmdGVyXDppbnNldC14LTA6aXMoOndoZXJlKC5ncm91cFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249aG9yaXpvbnRhbF0pICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7aW5zZXQtaW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmdyb3VwLWRhdGEtaG9yaXpvbnRhbFwvdGFic1w6YWZ0ZXJcOmJvdHRvbS1cWy01cHhcXTppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj1ob3Jpem9udGFsXSkgKik6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtib3R0b206LTVweH0uZ3JvdXAtZGF0YS1ob3Jpem9udGFsXC90YWJzXDphZnRlclw6aC0wXC41OmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFwvdGFic1w6YWZ0ZXJcOmluc2V0LXktMDppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7aW5zZXQtYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFwvdGFic1w6YWZ0ZXJcOi1yaWdodC0xOmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPXZlcnRpY2FsXSkgKik6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKi0xKX0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFwvdGFic1w6YWZ0ZXJcOnctMFwuNTppcyg6d2hlcmUoLmdyb3VwXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9LmZvY3VzLXdpdGhpblw6Ym9yZGVyLXJpbmc6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjp2YXIoLS1yaW5nKX0uZm9jdXMtd2l0aGluXDpyaW5nLTM6Zm9jdXMtd2l0aGluey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLXJpbmdcLzUwOmZvY3VzLXdpdGhpbnstLXR3LXJpbmctY29sb3I6dmFyKC0tcmluZyl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5mb2N1cy13aXRoaW5cOnJpbmctcmluZ1wvNTA6Zm9jdXMtd2l0aGluey0tdHctcmluZy1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcmluZyk1MCUsdHJhbnNwYXJlbnQpfX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuaG92ZXJcOmJvcmRlci1tdXRlZC1mb3JlZ3JvdW5kXC8zMDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3Zlclw6Ym9yZGVyLW11dGVkLWZvcmVncm91bmRcLzMwOmhvdmVye2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCkzMCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcOmJvcmRlci1wcmltYXJ5XC80MDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcHJpbWFyeSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3Zlclw6Ym9yZGVyLXByaW1hcnlcLzQwOmhvdmVye2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeSk0MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcOmJvcmRlci1yaW5nOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1yaW5nKX0uaG92ZXJcOmJnLWFjY2VudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9LmhvdmVyXDpiZy1kZXN0cnVjdGl2ZVwvMjA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3Zlclw6YmctZGVzdHJ1Y3RpdmVcLzIwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5ob3Zlclw6YmctbXV0ZWQ6aG92ZXIsLmhvdmVyXDpiZy1tdXRlZFwvNDA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3Zlclw6YmctbXV0ZWRcLzQwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkKTQwJSx0cmFuc3BhcmVudCl9fS5ob3Zlclw6YmctbXV0ZWRcLzUwOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcOmJnLW11dGVkXC81MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCk1MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcOmJnLW11dGVkXC84MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmhvdmVyXDpiZy1tdXRlZFwvODA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tbXV0ZWQpODAlLHRyYW5zcGFyZW50KX19LmhvdmVyXDpiZy1wcmltYXJ5XC8yMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcOmJnLXByaW1hcnlcLzIwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXByaW1hcnkpMjAlLHRyYW5zcGFyZW50KX19LmhvdmVyXDpiZy1zZWNvbmRhcnlcLzgwOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2Vjb25kYXJ5KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmhvdmVyXDpiZy1zZWNvbmRhcnlcLzgwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXNlY29uZGFyeSk4MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcOnRleHQtZm9yZWdyb3VuZDpob3Zlcntjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX0uaG92ZXJcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZDpob3Zlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0uaG92ZXJcOnRleHQtcHJpbWFyeTpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5KX0uaG92ZXJcOnVuZGVybGluZTpob3Zlcnt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9LmhvdmVyXDpzaGFkb3ctbGc6aG92ZXJ7LS10dy1zaGFkb3c6MCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSwwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LmhvdmVyXDpzaGFkb3ctbWQ6aG92ZXJ7LS10dy1zaGFkb3c6MCA0cHggNnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksMCAycHggNHB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSk7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfX0uZm9jdXNcOmJnLWFjY2VudDpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9LmZvY3VzXDp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kOmZvY3Vze2NvbG9yOnZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKX0uZm9jdXNcOm91dGxpbmUtbm9uZTpmb2N1c3stLXR3LW91dGxpbmUtc3R5bGU6bm9uZTtvdXRsaW5lLXN0eWxlOm5vbmV9OmlzKC5mb2N1c1w6XCpcKlw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZDpmb2N1cyAqKSw6aXMoLm5vdC1kYXRhLVxbdmFyaWFudFw9ZGVzdHJ1Y3RpdmVcXVw6Zm9jdXNcOlwqXCpcOnRleHQtYWNjZW50LWZvcmVncm91bmQ6bm90KFtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVdKTpmb2N1cyAqKXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9LmZvY3VzLXZpc2libGVcOmJvcmRlci1kZXN0cnVjdGl2ZVwvNDA6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZm9jdXMtdmlzaWJsZVw6Ym9yZGVyLWRlc3RydWN0aXZlXC80MDpmb2N1cy12aXNpYmxle2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpNDAlLHRyYW5zcGFyZW50KX19LmZvY3VzLXZpc2libGVcOmJvcmRlci1yaW5nOmZvY3VzLXZpc2libGV7Ym9yZGVyLWNvbG9yOnZhcigtLXJpbmcpfS5mb2N1cy12aXNpYmxlXDpyaW5nLTA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMHB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LmZvY3VzLXZpc2libGVcOnJpbmctMjpmb2N1cy12aXNpYmxley0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uZm9jdXMtdmlzaWJsZVw6cmluZy0zOmZvY3VzLXZpc2libGUsLmZvY3VzLXZpc2libGVcOnJpbmctXFszcHhcXTpmb2N1cy12aXNpYmxley0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uZm9jdXMtdmlzaWJsZVw6cmluZy1kZXN0cnVjdGl2ZVwvMjA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZm9jdXMtdmlzaWJsZVw6cmluZy1kZXN0cnVjdGl2ZVwvMjA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5mb2N1cy12aXNpYmxlXDpyaW5nLXJpbmdcLzUwOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLWNvbG9yOnZhcigtLXJpbmcpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZm9jdXMtdmlzaWJsZVw6cmluZy1yaW5nXC81MDpmb2N1cy12aXNpYmxley0tdHctcmluZy1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcmluZyk1MCUsdHJhbnNwYXJlbnQpfX0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS0xOmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTp2YXIoLS10dy1vdXRsaW5lLXN0eWxlKTtvdXRsaW5lLXdpZHRoOjFweH0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS0yOmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTp2YXIoLS10dy1vdXRsaW5lLXN0eWxlKTtvdXRsaW5lLXdpZHRoOjJweH0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS1vZmZzZXQtMjpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0OjJweH0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS1wcmltYXJ5OmZvY3VzLXZpc2libGV7b3V0bGluZS1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS1yaW5nOmZvY3VzLXZpc2libGV7b3V0bGluZS1jb2xvcjp2YXIoLS1yaW5nKX0uYWN0aXZlXDp0cmFuc2xhdGUteS1weDphY3RpdmV7LS10dy10cmFuc2xhdGUteToxcHg7dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0uZGlzYWJsZWRcOnBvaW50ZXItZXZlbnRzLW5vbmU6ZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZX0uZGlzYWJsZWRcOmN1cnNvci1ub3QtYWxsb3dlZDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmRpc2FibGVkXDpiZy1pbnB1dFwvNTA6ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kaXNhYmxlZFw6YmctaW5wdXRcLzUwOmRpc2FibGVke2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTUwJSx0cmFuc3BhcmVudCl9fS5kaXNhYmxlZFw6YmctdHJhbnNwYXJlbnQ6ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZGlzYWJsZWRcOm9wYWNpdHktNTA6ZGlzYWJsZWR7b3BhY2l0eTouNX06d2hlcmUoW2RhdGEtc2xvdD1idXR0b24tZ3JvdXBdKSAuaW4tZGF0YS1cW3Nsb3RcPWJ1dHRvbi1ncm91cFxdXDpyb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKX06d2hlcmUoW2RhdGEtc2xvdD1jb21ib2JveC1jb250ZW50XSkgLmluLWRhdGEtXFtzbG90XD1jb21ib2JveC1jb250ZW50XF1cOmZvY3VzLXdpdGhpblw6Ym9yZGVyLWluaGVyaXQ6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjppbmhlcml0fTp3aGVyZShbZGF0YS1zbG90PWNvbWJvYm94LWNvbnRlbnRdKSAuaW4tZGF0YS1cW3Nsb3RcPWNvbWJvYm94LWNvbnRlbnRcXVw6Zm9jdXMtd2l0aGluXDpyaW5nLTA6Zm9jdXMtd2l0aGluey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygwcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX06d2hlcmUoW2RhdGEtc2xvdD1kaWFsb2ctY29udGVudF0pIC5pbi1kYXRhLVxbc2xvdFw9ZGlhbG9nLWNvbnRlbnRcXVw6cm91bmRlZC1sZ1whe2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKSFpbXBvcnRhbnR9Lmhhcy1kaXNhYmxlZFw6YmctaW5wdXRcLzUwOmhhcyg6ZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaGFzLWRpc2FibGVkXDpiZy1pbnB1dFwvNTA6aGFzKDpkaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0taW5wdXQpNTAlLHRyYW5zcGFyZW50KX19Lmhhcy1kaXNhYmxlZFw6b3BhY2l0eS01MDpoYXMoOmRpc2FibGVkKXtvcGFjaXR5Oi41fS5oYXMtZGF0YS1cW2ljb25cPWlubGluZS1lbmRcXVw6cHItMVwuNTpoYXMoW2RhdGEtaWNvbj1pbmxpbmUtZW5kXSl7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9Lmhhcy1kYXRhLVxbaWNvblw9aW5saW5lLWVuZFxdXDpwci0yOmhhcyhbZGF0YS1pY29uPWlubGluZS1lbmRdKXtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9Lmhhcy1kYXRhLVxbaWNvblw9aW5saW5lLWVuZFxdXDpwci0zOmhhcyhbZGF0YS1pY29uPWlubGluZS1lbmRdKXtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMyl9Lmhhcy1kYXRhLVxbaWNvblw9aW5saW5lLXN0YXJ0XF1cOnBsLTFcLjU6aGFzKFtkYXRhLWljb249aW5saW5lLXN0YXJ0XSl7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uaGFzLWRhdGEtXFtpY29uXD1pbmxpbmUtc3RhcnRcXVw6cGwtMjpoYXMoW2RhdGEtaWNvbj1pbmxpbmUtc3RhcnRdKXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uaGFzLWRhdGEtXFtpY29uXD1pbmxpbmUtc3RhcnRcXVw6cGwtMzpoYXMoW2RhdGEtaWNvbj1pbmxpbmUtc3RhcnRdKXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uaGFzLWRhdGEtXFtzbG90XD1jYXJkLWFjdGlvblxdXDpncmlkLWNvbHMtXFsxZnJfYXV0b1xdOmhhcyhbZGF0YS1zbG90PWNhcmQtYWN0aW9uXSl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvfS5oYXMtZGF0YS1cW3Nsb3RcPWNhcmQtZGVzY3JpcHRpb25cXVw6Z3JpZC1yb3dzLVxbYXV0b19hdXRvXF06aGFzKFtkYXRhLXNsb3Q9Y2FyZC1kZXNjcmlwdGlvbl0pe2dyaWQtdGVtcGxhdGUtcm93czphdXRvIGF1dG99Lmhhcy1kYXRhLVxbc2xvdFw9Y2FyZC1mb290ZXJcXVw6cGItMDpoYXMoW2RhdGEtc2xvdD1jYXJkLWZvb3Rlcl0pe3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmhhcy1cW1xbZGF0YS1zbG90XD1pbnB1dC1ncm91cC1jb250cm9sXF1cOmZvY3VzLXZpc2libGVcXVw6Ym9yZGVyLXJpbmc6aGFzKFtkYXRhLXNsb3Q9aW5wdXQtZ3JvdXAtY29udHJvbF06Zm9jdXMtdmlzaWJsZSl7Ym9yZGVyLWNvbG9yOnZhcigtLXJpbmcpfS5oYXMtXFtcW2RhdGEtc2xvdFw9aW5wdXQtZ3JvdXAtY29udHJvbFxdXDpmb2N1cy12aXNpYmxlXF1cOnJpbmctMzpoYXMoW2RhdGEtc2xvdD1pbnB1dC1ncm91cC1jb250cm9sXTpmb2N1cy12aXNpYmxlKXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoM3B4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9Lmhhcy1cW1xbZGF0YS1zbG90XD1pbnB1dC1ncm91cC1jb250cm9sXF1cOmZvY3VzLXZpc2libGVcXVw6cmluZy1yaW5nXC81MDpoYXMoW2RhdGEtc2xvdD1pbnB1dC1ncm91cC1jb250cm9sXTpmb2N1cy12aXNpYmxlKXstLXR3LXJpbmctY29sb3I6dmFyKC0tcmluZyl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5oYXMtXFtcW2RhdGEtc2xvdFw9aW5wdXQtZ3JvdXAtY29udHJvbFxdXDpmb2N1cy12aXNpYmxlXF1cOnJpbmctcmluZ1wvNTA6aGFzKFtkYXRhLXNsb3Q9aW5wdXQtZ3JvdXAtY29udHJvbF06Zm9jdXMtdmlzaWJsZSl7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1yaW5nKTUwJSx0cmFuc3BhcmVudCl9fS5oYXMtXFtcW2RhdGEtc2xvdFxdXFthcmlhLWludmFsaWRcPXRydWVcXVxdXDpib3JkZXItZGVzdHJ1Y3RpdmU6aGFzKFtkYXRhLXNsb3RdW2FyaWEtaW52YWxpZD10cnVlXSl7Ym9yZGVyLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uaGFzLVxbXFtkYXRhLXNsb3RcXVxbYXJpYS1pbnZhbGlkXD10cnVlXF1cXVw6cmluZy0zOmhhcyhbZGF0YS1zbG90XVthcmlhLWludmFsaWQ9dHJ1ZV0pey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uaGFzLVxbXFtkYXRhLXNsb3RcXVxbYXJpYS1pbnZhbGlkXD10cnVlXF1cXVw6cmluZy1kZXN0cnVjdGl2ZVwvMjA6aGFzKFtkYXRhLXNsb3RdW2FyaWEtaW52YWxpZD10cnVlXSl7LS10dy1yaW5nLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7Lmhhcy1cW1xbZGF0YS1zbG90XF1cW2FyaWEtaW52YWxpZFw9dHJ1ZVxdXF1cOnJpbmctZGVzdHJ1Y3RpdmVcLzIwOmhhcyhbZGF0YS1zbG90XVthcmlhLWludmFsaWQ9dHJ1ZV0pey0tdHctcmluZy1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMjAlLHRyYW5zcGFyZW50KX19Lmhhcy1cW1w+XFtkYXRhLWFsaWduXD1ibG9jay1lbmRcXVxdXDpoLWF1dG86aGFzKD5bZGF0YS1hbGlnbj1ibG9jay1lbmRdKXtoZWlnaHQ6YXV0b30uaGFzLVxbXD5cW2RhdGEtYWxpZ25cPWJsb2NrLWVuZFxdXF1cOmZsZXgtY29sOmhhcyg+W2RhdGEtYWxpZ249YmxvY2stZW5kXSl7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5oYXMtXFtcPlxbZGF0YS1hbGlnblw9YmxvY2stc3RhcnRcXVxdXDpoLWF1dG86aGFzKD5bZGF0YS1hbGlnbj1ibG9jay1zdGFydF0pe2hlaWdodDphdXRvfS5oYXMtXFtcPlxbZGF0YS1hbGlnblw9YmxvY2stc3RhcnRcXVxdXDpmbGV4LWNvbDpoYXMoPltkYXRhLWFsaWduPWJsb2NrLXN0YXJ0XSl7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5oYXMtXFtcPmJ1dHRvblxdXDptci1cWy0wXC4zcmVtXF06aGFzKD5idXR0b24pe21hcmdpbi1yaWdodDotLjNyZW19Lmhhcy1cW1w+YnV0dG9uXF1cOm1sLVxbLTBcLjNyZW1cXTpoYXMoPmJ1dHRvbil7bWFyZ2luLWxlZnQ6LS4zcmVtfS5oYXMtXFtcPmltZ1w6Zmlyc3QtY2hpbGRcXVw6cHQtMDpoYXMoPmltZzpmaXJzdC1jaGlsZCl7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uaGFzLVxbXD5rYmRcXVw6bXItXFstMFwuMTVyZW1cXTpoYXMoPmtiZCl7bWFyZ2luLXJpZ2h0Oi0uMTVyZW19Lmhhcy1cW1w+a2JkXF1cOm1sLVxbLTBcLjE1cmVtXF06aGFzKD5rYmQpe21hcmdpbi1sZWZ0Oi0uMTVyZW19Lmhhcy1cW1w+c3ZnXF1cOnAtMDpoYXMoPnN2Zyl7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5oYXMtXFtcPnRleHRhcmVhXF1cOmgtYXV0bzpoYXMoPnRleHRhcmVhKXtoZWlnaHQ6YXV0b30uYXJpYS1kaXNhYmxlZFw6cG9pbnRlci1ldmVudHMtbm9uZVthcmlhLWRpc2FibGVkPXRydWVde3BvaW50ZXItZXZlbnRzOm5vbmV9LmFyaWEtZGlzYWJsZWRcOm9wYWNpdHktNTBbYXJpYS1kaXNhYmxlZD10cnVlXXtvcGFjaXR5Oi41fS5hcmlhLWV4cGFuZGVkXDpiZy1tdXRlZFthcmlhLWV4cGFuZGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5hcmlhLWV4cGFuZGVkXDpiZy1zZWNvbmRhcnlbYXJpYS1leHBhbmRlZD10cnVlXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSl9LmFyaWEtZXhwYW5kZWRcOnRleHQtZm9yZWdyb3VuZFthcmlhLWV4cGFuZGVkPXRydWVde2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5hcmlhLWV4cGFuZGVkXDp0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kW2FyaWEtZXhwYW5kZWQ9dHJ1ZV17Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWZvcmVncm91bmQpfS5hcmlhLWludmFsaWRcOmJvcmRlci1kZXN0cnVjdGl2ZVthcmlhLWludmFsaWQ9dHJ1ZV17Ym9yZGVyLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uYXJpYS1pbnZhbGlkXDpyaW5nLTBbYXJpYS1pbnZhbGlkPXRydWVdey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygwcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uYXJpYS1pbnZhbGlkXDpyaW5nLTNbYXJpYS1pbnZhbGlkPXRydWVdey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uYXJpYS1pbnZhbGlkXDpyaW5nLWRlc3RydWN0aXZlXC8yMFthcmlhLWludmFsaWQ9dHJ1ZV17LS10dy1yaW5nLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmFyaWEtaW52YWxpZFw6cmluZy1kZXN0cnVjdGl2ZVwvMjBbYXJpYS1pbnZhbGlkPXRydWVdey0tdHctcmluZy1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMjAlLHRyYW5zcGFyZW50KX19LmRhdGEtZW5kaW5nLXN0eWxlXDpvcGFjaXR5LTBbZGF0YS1lbmRpbmctc3R5bGVde29wYWNpdHk6MH0uZGF0YS1pbnNldFw6cGwtN1tkYXRhLWluc2V0XXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo3KX0uZGF0YS1wb3B1cC1vcGVuXDpiZy1hY2NlbnRbZGF0YS1wb3B1cC1vcGVuXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9LmRhdGEtcG9wdXAtb3Blblw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFtkYXRhLXBvcHVwLW9wZW5de2NvbG9yOnZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKX0uZGF0YS1zdGFydGluZy1zdHlsZVw6b3BhY2l0eS0wW2RhdGEtc3RhcnRpbmctc3R5bGVde29wYWNpdHk6MH0uZGF0YS1cW2Rpc2FibGVkXD10cnVlXF1cOnBvaW50ZXItZXZlbnRzLW5vbmVbZGF0YS1kaXNhYmxlZD10cnVlXXtwb2ludGVyLWV2ZW50czpub25lfS5kYXRhLVxbZGlzYWJsZWRcPXRydWVcXVw6b3BhY2l0eS01MFtkYXRhLWRpc2FibGVkPXRydWVde29wYWNpdHk6LjV9LmRhdGEtXFtzaWRlXD1ib3R0b21cXVw6aW5zZXQteC0wW2RhdGEtc2lkZT1ib3R0b21de2luc2V0LWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxbc2lkZVw9Ym90dG9tXF1cOmJvdHRvbS0wW2RhdGEtc2lkZT1ib3R0b21de2JvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxbc2lkZVw9Ym90dG9tXF1cOmgtYXV0b1tkYXRhLXNpZGU9Ym90dG9tXXtoZWlnaHQ6YXV0b30uZGF0YS1cW3NpZGVcPWJvdHRvbVxdXDpib3JkZXItdFtkYXRhLXNpZGU9Ym90dG9tXXtib3JkZXItdG9wLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LmRhdGEtXFtzaWRlXD1ib3R0b21cXVw6c2xpZGUtaW4tZnJvbS10b3AtMltkYXRhLXNpZGU9Ym90dG9tXXstLXR3LWVudGVyLXRyYW5zbGF0ZS15OmNhbGMoMip2YXIoLS1zcGFjaW5nKSotMSl9LmRhdGEtXFtzaWRlXD1ib3R0b21cXVw6ZGF0YS1lbmRpbmctc3R5bGVcOnRyYW5zbGF0ZS15LVxbMlwuNXJlbVxdW2RhdGEtc2lkZT1ib3R0b21dW2RhdGEtZW5kaW5nLXN0eWxlXSwuZGF0YS1cW3NpZGVcPWJvdHRvbVxdXDpkYXRhLXN0YXJ0aW5nLXN0eWxlXDp0cmFuc2xhdGUteS1cWzJcLjVyZW1cXVtkYXRhLXNpZGU9Ym90dG9tXVtkYXRhLXN0YXJ0aW5nLXN0eWxlXXstLXR3LXRyYW5zbGF0ZS15OjIuNXJlbTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS5kYXRhLVxbc2lkZVw9aW5saW5lLWVuZFxdXDpzbGlkZS1pbi1mcm9tLWxlZnQtMltkYXRhLXNpZGU9aW5saW5lLWVuZF17LS10dy1lbnRlci10cmFuc2xhdGUteDpjYWxjKDIqdmFyKC0tc3BhY2luZykqLTEpfS5kYXRhLVxbc2lkZVw9aW5saW5lLXN0YXJ0XF1cOnNsaWRlLWluLWZyb20tcmlnaHQtMltkYXRhLXNpZGU9aW5saW5lLXN0YXJ0XXstLXR3LWVudGVyLXRyYW5zbGF0ZS14OmNhbGMoMip2YXIoLS1zcGFjaW5nKSl9LmRhdGEtXFtzaWRlXD1sZWZ0XF1cOmluc2V0LXktMFtkYXRhLXNpZGU9bGVmdF17aW5zZXQtYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cW3NpZGVcPWxlZnRcXVw6bGVmdC0wW2RhdGEtc2lkZT1sZWZ0XXtsZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMCl9LmRhdGEtXFtzaWRlXD1sZWZ0XF1cOmgtZnVsbFtkYXRhLXNpZGU9bGVmdF17aGVpZ2h0OjEwMCV9LmRhdGEtXFtzaWRlXD1sZWZ0XF1cOnctM1wvNFtkYXRhLXNpZGU9bGVmdF17d2lkdGg6NzUlfS5kYXRhLVxbc2lkZVw9bGVmdFxdXDpib3JkZXItcltkYXRhLXNpZGU9bGVmdF17Ym9yZGVyLXJpZ2h0LXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweH0uZGF0YS1cW3NpZGVcPWxlZnRcXVw6c2xpZGUtaW4tZnJvbS1yaWdodC0yW2RhdGEtc2lkZT1sZWZ0XXstLXR3LWVudGVyLXRyYW5zbGF0ZS14OmNhbGMoMip2YXIoLS1zcGFjaW5nKSl9LmRhdGEtXFtzaWRlXD1sZWZ0XF1cOmRhdGEtZW5kaW5nLXN0eWxlXDp0cmFuc2xhdGUteC1cWy0yXC41cmVtXF1bZGF0YS1zaWRlPWxlZnRdW2RhdGEtZW5kaW5nLXN0eWxlXSwuZGF0YS1cW3NpZGVcPWxlZnRcXVw6ZGF0YS1zdGFydGluZy1zdHlsZVw6dHJhbnNsYXRlLXgtXFstMlwuNXJlbVxdW2RhdGEtc2lkZT1sZWZ0XVtkYXRhLXN0YXJ0aW5nLXN0eWxlXXstLXR3LXRyYW5zbGF0ZS14Oi0yLjVyZW07dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0uZGF0YS1cW3NpZGVcPXJpZ2h0XF1cOmluc2V0LXktMFtkYXRhLXNpZGU9cmlnaHRde2luc2V0LWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMCl9LmRhdGEtXFtzaWRlXD1yaWdodFxdXDpyaWdodC0wW2RhdGEtc2lkZT1yaWdodF17cmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cW3NpZGVcPXJpZ2h0XF1cOmgtZnVsbFtkYXRhLXNpZGU9cmlnaHRde2hlaWdodDoxMDAlfS5kYXRhLVxbc2lkZVw9cmlnaHRcXVw6dy0zXC80W2RhdGEtc2lkZT1yaWdodF17d2lkdGg6NzUlfS5kYXRhLVxbc2lkZVw9cmlnaHRcXVw6Ym9yZGVyLWxbZGF0YS1zaWRlPXJpZ2h0XXtib3JkZXItbGVmdC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1sZWZ0LXdpZHRoOjFweH0uZGF0YS1cW3NpZGVcPXJpZ2h0XF1cOnNsaWRlLWluLWZyb20tbGVmdC0yW2RhdGEtc2lkZT1yaWdodF17LS10dy1lbnRlci10cmFuc2xhdGUteDpjYWxjKDIqdmFyKC0tc3BhY2luZykqLTEpfS5kYXRhLVxbc2lkZVw9cmlnaHRcXVw6ZGF0YS1lbmRpbmctc3R5bGVcOnRyYW5zbGF0ZS14LVxbMlwuNXJlbVxdW2RhdGEtc2lkZT1yaWdodF1bZGF0YS1lbmRpbmctc3R5bGVdLC5kYXRhLVxbc2lkZVw9cmlnaHRcXVw6ZGF0YS1zdGFydGluZy1zdHlsZVw6dHJhbnNsYXRlLXgtXFsyXC41cmVtXF1bZGF0YS1zaWRlPXJpZ2h0XVtkYXRhLXN0YXJ0aW5nLXN0eWxlXXstLXR3LXRyYW5zbGF0ZS14OjIuNXJlbTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS5kYXRhLVxbc2lkZVw9dG9wXF1cOmluc2V0LXgtMFtkYXRhLXNpZGU9dG9wXXtpbnNldC1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cW3NpZGVcPXRvcFxdXDp0b3AtMFtkYXRhLXNpZGU9dG9wXXt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cW3NpZGVcPXRvcFxdXDpoLWF1dG9bZGF0YS1zaWRlPXRvcF17aGVpZ2h0OmF1dG99LmRhdGEtXFtzaWRlXD10b3BcXVw6Ym9yZGVyLWJbZGF0YS1zaWRlPXRvcF17Ym9yZGVyLWJvdHRvbS1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1ib3R0b20td2lkdGg6MXB4fS5kYXRhLVxbc2lkZVw9dG9wXF1cOnNsaWRlLWluLWZyb20tYm90dG9tLTJbZGF0YS1zaWRlPXRvcF17LS10dy1lbnRlci10cmFuc2xhdGUteTpjYWxjKDIqdmFyKC0tc3BhY2luZykpfS5kYXRhLVxbc2lkZVw9dG9wXF1cOmRhdGEtZW5kaW5nLXN0eWxlXDp0cmFuc2xhdGUteS1cWy0yXC41cmVtXF1bZGF0YS1zaWRlPXRvcF1bZGF0YS1lbmRpbmctc3R5bGVdLC5kYXRhLVxbc2lkZVw9dG9wXF1cOmRhdGEtc3RhcnRpbmctc3R5bGVcOnRyYW5zbGF0ZS15LVxbLTJcLjVyZW1cXVtkYXRhLXNpZGU9dG9wXVtkYXRhLXN0YXJ0aW5nLXN0eWxlXXstLXR3LXRyYW5zbGF0ZS15Oi0yLjVyZW07dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0uZGF0YS1cW3NpemVcPWxnXF1cOnNpemUtMTBbZGF0YS1zaXplPWxnXXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LmRhdGEtXFtzaXplXD1zbVxdXDpzaXplLTZbZGF0YS1zaXplPXNtXXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5kYXRhLVxbc2l6ZVw9c21cXVw6Z2FwLTNbZGF0YS1zaXplPXNtXXtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uZGF0YS1cW3NpemVcPXNtXF1cOnB5LTNbZGF0YS1zaXplPXNtXXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMyl9LmRhdGEtXFtzaXplXD1zbVxdXDpoYXMtZGF0YS1cW3Nsb3RcPWNhcmQtZm9vdGVyXF1cOnBiLTBbZGF0YS1zaXplPXNtXTpoYXMoW2RhdGEtc2xvdD1jYXJkLWZvb3Rlcl0pe3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMCl9OmlzKC5cKlw6ZGF0YS1cW3Nsb3RcPWF2YXRhclxdXDpyaW5nLTI+KilbZGF0YS1zbG90PWF2YXRhcl17LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0LCkwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yLGN1cnJlbnRjb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfTppcyguXCpcOmRhdGEtXFtzbG90XD1hdmF0YXJcXVw6cmluZy1iYWNrZ3JvdW5kPiopW2RhdGEtc2xvdD1hdmF0YXJdey0tdHctcmluZy1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKX06aXMoLlwqXDpkYXRhLVxbc2xvdFw9aW5wdXQtZ3JvdXAtYWRkb25cXVw6cGwtMlwhPiopW2RhdGEtc2xvdD1pbnB1dC1ncm91cC1hZGRvbl17cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMikhaW1wb3J0YW50fS5kYXRhLVxbc3RhdGVcPXNlbGVjdGVkXF1cOmJnLW11dGVkW2RhdGEtc3RhdGU9c2VsZWN0ZWRde2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5kYXRhLVxbdmFyaWFudFw9ZGVzdHJ1Y3RpdmVcXVw6dGV4dC1kZXN0cnVjdGl2ZVtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVde2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uZGF0YS1cW3ZhcmlhbnRcPWRlc3RydWN0aXZlXF1cOmZvY3VzXDpiZy1kZXN0cnVjdGl2ZVwvMTBbZGF0YS12YXJpYW50PWRlc3RydWN0aXZlXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhdGEtXFt2YXJpYW50XD1kZXN0cnVjdGl2ZVxdXDpmb2N1c1w6YmctZGVzdHJ1Y3RpdmVcLzEwW2RhdGEtdmFyaWFudD1kZXN0cnVjdGl2ZV06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMTAlLHRyYW5zcGFyZW50KX19LmRhdGEtXFt2YXJpYW50XD1kZXN0cnVjdGl2ZVxdXDpmb2N1c1w6dGV4dC1kZXN0cnVjdGl2ZVtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVdOmZvY3Vze2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uZGF0YS1cW3ZhcmlhbnRcPWxpbmVcXVw6cm91bmRlZC1ub25lW2RhdGEtdmFyaWFudD1saW5lXXtib3JkZXItcmFkaXVzOjB9QHN1cHBvcnRzICgoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0tdHcpKSBvciAoYmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3KSkpey5zdXBwb3J0cy1iYWNrZHJvcC1maWx0ZXJcOmJhY2tkcm9wLWJsdXIteHN7LS10dy1iYWNrZHJvcC1ibHVyOmJsdXIodmFyKC0tYmx1ci14cykpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIsKXZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MsKXZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsKXZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUsKXZhcigtLXR3LWJhY2tkcm9wLWludmVydCwpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwpdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUsKXZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIsKXZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MsKXZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsKXZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUsKXZhcigtLXR3LWJhY2tkcm9wLWludmVydCwpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwpdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUsKXZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCl9fUBtZWRpYSAobWluLXdpZHRoOjQwcmVtKXsuc21cOmJsb2Nre2Rpc3BsYXk6YmxvY2t9LnNtXDpoaWRkZW57ZGlzcGxheTpub25lfS5zbVw6aW5saW5le2Rpc3BsYXk6aW5saW5lfS5zbVw6aW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uc21cOmgtMjR7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMjQpfS5zbVw6dy00MHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQwKX0uc21cOnctYXV0b3t3aWR0aDphdXRvfS5zbVw6bWF4LXctc217bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci1zbSl9LnNtXDpmbGV4LW5vbmV7ZmxleDpub25lfS5zbVw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5zbVw6Z3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5zbVw6ZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5zbVw6aXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0uc21cOmp1c3RpZnktYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc21cOmp1c3RpZnktZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uc21cOnAtNXtwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqNSl9LnNtXDpwLTZ7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5zbVw6cC04e3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uc21cOnRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uc21cOnRleHQtM3hse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTN4bCk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LTN4bC0tbGluZS1oZWlnaHQpKX0uc21cOnRleHQtYmFzZXtmb250LXNpemU6dmFyKC0tdGV4dC1iYXNlKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtYmFzZS0tbGluZS1oZWlnaHQpKX0uc21cOnRleHQteGx7Zm9udC1zaXplOnZhcigtLXRleHQteGwpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC14bC0tbGluZS1oZWlnaHQpKX0uZGF0YS1cW3NpZGVcPWxlZnRcXVw6c21cOm1heC13LXNtW2RhdGEtc2lkZT1sZWZ0XSwuZGF0YS1cW3NpZGVcPXJpZ2h0XF1cOnNtXDptYXgtdy1zbVtkYXRhLXNpZGU9cmlnaHRde21heC13aWR0aDp2YXIoLS1jb250YWluZXItc20pfX1AbWVkaWEgKG1pbi13aWR0aDo0OHJlbSl7Lm1kXDppbnNldC14LWF1dG97aW5zZXQtaW5saW5lOmF1dG99Lm1kXDpyaWdodC00e3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9Lm1kXDpib3R0b20tNHtib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0ubWRcOmxlZnQtYXV0b3tsZWZ0OmF1dG99Lm1kXDpibG9ja3tkaXNwbGF5OmJsb2NrfS5tZFw6ZmxleHtkaXNwbGF5OmZsZXh9Lm1kXDpoaWRkZW57ZGlzcGxheTpub25lfS5tZFw6dGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGx9Lm1kXDptaW4tdy0we21pbi13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5tZFw6Z3JpZC1jb2xzLTF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxLG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfS5tZFw6ZmxleC1jb2x7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tZFw6aXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0ubWRcOmdhcC0xe2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tZFw6cGItMHtwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5tZFw6dGV4dC1zbXtmb250LXNpemU6dmFyKC0tdGV4dC1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LXNtLS1saW5lLWhlaWdodCkpfS5tZFw6d2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfX1AbWVkaWEgKG1pbi13aWR0aDo2NHJlbSl7LmxnXDpzdGlja3l7cG9zaXRpb246c3RpY2t5fS5sZ1w6dG9wLTR7dG9wOmNhbGModmFyKC0tc3BhY2luZykqNCl9LmxnXDpibG9ja3tkaXNwbGF5OmJsb2NrfS5sZ1w6aGlkZGVue2Rpc3BsYXk6bm9uZX0ubGdcOnRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsfS5sZ1w6dy03Mnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjcyKX0ubGdcOmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0ubGdcOmdyaWQtY29scy0ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKX0ubGdcOmdyaWQtY29scy00e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX0ubGdcOmdyaWQtY29scy01e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSxtaW5tYXgoMCwxZnIpKX0ubGdcOmdyaWQtY29scy1cWzFmcl8zNDBweFxde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMzQwcHh9LmxnXDpmbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmxnXDpzZWxmLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydH19QG1lZGlhIChtaW4td2lkdGg6ODByZW0pey54bFw6dy04MHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjgwKX19LmRhcmtcOmJsb2NrOmlzKC5kYXJrICope2Rpc3BsYXk6YmxvY2t9LmRhcmtcOmhpZGRlbjppcyguZGFyayAqKXtkaXNwbGF5Om5vbmV9LmRhcmtcOmJvcmRlci1pbnB1dDppcyguZGFyayAqKXtib3JkZXItY29sb3I6dmFyKC0taW5wdXQpfS5kYXJrXDpiZy1kZXN0cnVjdGl2ZVwvMjA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXDpiZy1kZXN0cnVjdGl2ZVwvMjA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMjAlLHRyYW5zcGFyZW50KX19LmRhcmtcOmJnLWlucHV0XC8zMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmJnLWlucHV0XC8zMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCkzMCUsdHJhbnNwYXJlbnQpfX0uZGFya1w6YmctdHJhbnNwYXJlbnQ6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZGFya1w6dGV4dC1ncmVlbi00MDA6aXMoLmRhcmsgKil7Y29sb3I6dmFyKC0tY29sb3ItZ3JlZW4tNDAwKX0uZGFya1w6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kOmlzKC5kYXJrICope2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5kYXJrXDpwcm9zZS1pbnZlcnQ6aXMoLmRhcmsgKil7LS10dy1wcm9zZS1ib2R5OnZhcigtLXR3LXByb3NlLWludmVydC1ib2R5KTstLXR3LXByb3NlLWhlYWRpbmdzOnZhcigtLXR3LXByb3NlLWludmVydC1oZWFkaW5ncyk7LS10dy1wcm9zZS1sZWFkOnZhcigtLXR3LXByb3NlLWludmVydC1sZWFkKTstLXR3LXByb3NlLWxpbmtzOnZhcigtLXR3LXByb3NlLWludmVydC1saW5rcyk7LS10dy1wcm9zZS1ib2xkOnZhcigtLXR3LXByb3NlLWludmVydC1ib2xkKTstLXR3LXByb3NlLWNvdW50ZXJzOnZhcigtLXR3LXByb3NlLWludmVydC1jb3VudGVycyk7LS10dy1wcm9zZS1idWxsZXRzOnZhcigtLXR3LXByb3NlLWludmVydC1idWxsZXRzKTstLXR3LXByb3NlLWhyOnZhcigtLXR3LXByb3NlLWludmVydC1ocik7LS10dy1wcm9zZS1xdW90ZXM6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LXF1b3Rlcyk7LS10dy1wcm9zZS1xdW90ZS1ib3JkZXJzOnZhcigtLXR3LXByb3NlLWludmVydC1xdW90ZS1ib3JkZXJzKTstLXR3LXByb3NlLWNhcHRpb25zOnZhcigtLXR3LXByb3NlLWludmVydC1jYXB0aW9ucyk7LS10dy1wcm9zZS1rYmQ6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LWtiZCk7LS10dy1wcm9zZS1rYmQtc2hhZG93czp2YXIoLS10dy1wcm9zZS1pbnZlcnQta2JkLXNoYWRvd3MpOy0tdHctcHJvc2UtY29kZTp2YXIoLS10dy1wcm9zZS1pbnZlcnQtY29kZSk7LS10dy1wcm9zZS1wcmUtY29kZTp2YXIoLS10dy1wcm9zZS1pbnZlcnQtcHJlLWNvZGUpOy0tdHctcHJvc2UtcHJlLWJnOnZhcigtLXR3LXByb3NlLWludmVydC1wcmUtYmcpOy0tdHctcHJvc2UtdGgtYm9yZGVyczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtdGgtYm9yZGVycyk7LS10dy1wcm9zZS10ZC1ib3JkZXJzOnZhcigtLXR3LXByb3NlLWludmVydC10ZC1ib3JkZXJzKX0uZGFya1w6YWZ0ZXJcOm1peC1ibGVuZC1saWdodGVuOmlzKC5kYXJrICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuZGFya1w6aG92ZXJcOmJnLWRlc3RydWN0aXZlXC8zMDppcyguZGFyayAqKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmhvdmVyXDpiZy1kZXN0cnVjdGl2ZVwvMzA6aXMoLmRhcmsgKik6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMzAlLHRyYW5zcGFyZW50KX19LmRhcmtcOmhvdmVyXDpiZy1pbnB1dFwvNTA6aXMoLmRhcmsgKik6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXDpob3Zlclw6YmctaW5wdXRcLzUwOmlzKC5kYXJrICopOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTUwJSx0cmFuc3BhcmVudCl9fS5kYXJrXDpob3Zlclw6YmctbXV0ZWRcLzUwOmlzKC5kYXJrICopOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1w6aG92ZXJcOmJnLW11dGVkXC81MDppcyguZGFyayAqKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCk1MCUsdHJhbnNwYXJlbnQpfX0uZGFya1w6aG92ZXJcOnRleHQtZm9yZWdyb3VuZDppcyguZGFyayAqKTpob3Zlcntjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX19LmRhcmtcOmZvY3VzLXZpc2libGVcOnJpbmctZGVzdHJ1Y3RpdmVcLzQwOmlzKC5kYXJrICopOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmZvY3VzLXZpc2libGVcOnJpbmctZGVzdHJ1Y3RpdmVcLzQwOmlzKC5kYXJrICopOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk0MCUsdHJhbnNwYXJlbnQpfX0uZGFya1w6ZGlzYWJsZWRcOmJnLWlucHV0XC84MDppcyguZGFyayAqKTpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmRpc2FibGVkXDpiZy1pbnB1dFwvODA6aXMoLmRhcmsgKik6ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0taW5wdXQpODAlLHRyYW5zcGFyZW50KX19LmRhcmtcOmRpc2FibGVkXDpiZy10cmFuc3BhcmVudDppcyguZGFyayAqKTpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5kYXJrXDpoYXMtZGlzYWJsZWRcOmJnLWlucHV0XC84MDppcyguZGFyayAqKTpoYXMoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmhhcy1kaXNhYmxlZFw6YmctaW5wdXRcLzgwOmlzKC5kYXJrICopOmhhcyg6ZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTgwJSx0cmFuc3BhcmVudCl9fS5kYXJrXDpoYXMtXFtcW2RhdGEtc2xvdFxdXFthcmlhLWludmFsaWRcPXRydWVcXVxdXDpyaW5nLWRlc3RydWN0aXZlXC80MDppcyguZGFyayAqKTpoYXMoW2RhdGEtc2xvdF1bYXJpYS1pbnZhbGlkPXRydWVdKXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1w6aGFzLVxbXFtkYXRhLXNsb3RcXVxbYXJpYS1pbnZhbGlkXD10cnVlXF1cXVw6cmluZy1kZXN0cnVjdGl2ZVwvNDA6aXMoLmRhcmsgKik6aGFzKFtkYXRhLXNsb3RdW2FyaWEtaW52YWxpZD10cnVlXSl7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk0MCUsdHJhbnNwYXJlbnQpfX0uZGFya1w6YXJpYS1pbnZhbGlkXDpib3JkZXItZGVzdHJ1Y3RpdmVcLzUwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1w6YXJpYS1pbnZhbGlkXDpib3JkZXItZGVzdHJ1Y3RpdmVcLzUwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTUwJSx0cmFuc3BhcmVudCl9fS5kYXJrXDphcmlhLWludmFsaWRcOnJpbmctZGVzdHJ1Y3RpdmVcLzQwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1w6YXJpYS1pbnZhbGlkXDpyaW5nLWRlc3RydWN0aXZlXC80MDppcyguZGFyayAqKVthcmlhLWludmFsaWQ9dHJ1ZV17LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk0MCUsdHJhbnNwYXJlbnQpfX0uZGFya1w6ZGF0YS1cW3ZhcmlhbnRcPWRlc3RydWN0aXZlXF1cOmZvY3VzXDpiZy1kZXN0cnVjdGl2ZVwvMjA6aXMoLmRhcmsgKilbZGF0YS12YXJpYW50PWRlc3RydWN0aXZlXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcOmRhdGEtXFt2YXJpYW50XD1kZXN0cnVjdGl2ZVxdXDpmb2N1c1w6YmctZGVzdHJ1Y3RpdmVcLzIwOmlzKC5kYXJrICopW2RhdGEtdmFyaWFudD1kZXN0cnVjdGl2ZV06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMjAlLHRyYW5zcGFyZW50KX19LmRhdGEtb3Blblw6YW5pbWF0ZS1pbjp3aGVyZShbZGF0YS1zdGF0ZT1vcGVuXSksLmRhdGEtb3Blblw6YW5pbWF0ZS1pbjp3aGVyZShbZGF0YS1vcGVuXTpub3QoW2RhdGEtb3Blbj1mYWxzZV0pKXthbmltYXRpb246ZW50ZXIgdmFyKC0tdHctYW5pbWF0aW9uLWR1cmF0aW9uLHZhcigtLXR3LWR1cmF0aW9uLC4xNXMpKXZhcigtLXR3LWVhc2UsZWFzZSl2YXIoLS10dy1hbmltYXRpb24tZGVsYXksMHMpdmFyKC0tdHctYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwxKXZhcigtLXR3LWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKXZhcigtLXR3LWFuaW1hdGlvbi1maWxsLW1vZGUsbm9uZSl9LmRhdGEtb3Blblw6YmctYWNjZW50OndoZXJlKFtkYXRhLXN0YXRlPW9wZW5dKSwuZGF0YS1vcGVuXDpiZy1hY2NlbnQ6d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5kYXRhLW9wZW5cOnRleHQtYWNjZW50LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtc3RhdGU9b3Blbl0pLC5kYXRhLW9wZW5cOnRleHQtYWNjZW50LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpfS5kYXRhLW9wZW5cOmZhZGUtaW4tMDp3aGVyZShbZGF0YS1zdGF0ZT1vcGVuXSksLmRhdGEtb3Blblw6ZmFkZS1pbi0wOndoZXJlKFtkYXRhLW9wZW5dOm5vdChbZGF0YS1vcGVuPWZhbHNlXSkpey0tdHctZW50ZXItb3BhY2l0eTowfS5kYXRhLW9wZW5cOnpvb20taW4tOTU6d2hlcmUoW2RhdGEtc3RhdGU9b3Blbl0pLC5kYXRhLW9wZW5cOnpvb20taW4tOTU6d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7LS10dy1lbnRlci1zY2FsZTouOTV9LmRhdGEtY2xvc2VkXDphbmltYXRlLW91dDp3aGVyZShbZGF0YS1zdGF0ZT1jbG9zZWRdKSwuZGF0YS1jbG9zZWRcOmFuaW1hdGUtb3V0OndoZXJlKFtkYXRhLWNsb3NlZF06bm90KFtkYXRhLWNsb3NlZD1mYWxzZV0pKXthbmltYXRpb246ZXhpdCB2YXIoLS10dy1hbmltYXRpb24tZHVyYXRpb24sdmFyKC0tdHctZHVyYXRpb24sLjE1cykpdmFyKC0tdHctZWFzZSxlYXNlKXZhcigtLXR3LWFuaW1hdGlvbi1kZWxheSwwcyl2YXIoLS10dy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LDEpdmFyKC0tdHctYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpdmFyKC0tdHctYW5pbWF0aW9uLWZpbGwtbW9kZSxub25lKX0uZGF0YS1jbG9zZWRcOm92ZXJmbG93LWhpZGRlbjp3aGVyZShbZGF0YS1zdGF0ZT1jbG9zZWRdKSwuZGF0YS1jbG9zZWRcOm92ZXJmbG93LWhpZGRlbjp3aGVyZShbZGF0YS1jbG9zZWRdOm5vdChbZGF0YS1jbG9zZWQ9ZmFsc2VdKSl7b3ZlcmZsb3c6aGlkZGVufS5kYXRhLWNsb3NlZFw6ZmFkZS1vdXQtMDp3aGVyZShbZGF0YS1zdGF0ZT1jbG9zZWRdKSwuZGF0YS1jbG9zZWRcOmZhZGUtb3V0LTA6d2hlcmUoW2RhdGEtY2xvc2VkXTpub3QoW2RhdGEtY2xvc2VkPWZhbHNlXSkpey0tdHctZXhpdC1vcGFjaXR5OjB9LmRhdGEtY2xvc2VkXDp6b29tLW91dC05NTp3aGVyZShbZGF0YS1zdGF0ZT1jbG9zZWRdKSwuZGF0YS1jbG9zZWRcOnpvb20tb3V0LTk1OndoZXJlKFtkYXRhLWNsb3NlZF06bm90KFtkYXRhLWNsb3NlZD1mYWxzZV0pKXstLXR3LWV4aXQtc2NhbGU6Ljk1fS5kYXRhLXNlbGVjdGVkXDpiZy1tdXRlZDp3aGVyZShbZGF0YS1zZWxlY3RlZD10cnVlXSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9LmRhdGEtc2VsZWN0ZWRcOnRleHQtZm9yZWdyb3VuZDp3aGVyZShbZGF0YS1zZWxlY3RlZD10cnVlXSl7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9LmRhdGEtZGlzYWJsZWRcOnBvaW50ZXItZXZlbnRzLW5vbmU6d2hlcmUoW2RhdGEtZGlzYWJsZWQ9dHJ1ZV0pLC5kYXRhLWRpc2FibGVkXDpwb2ludGVyLWV2ZW50cy1ub25lOndoZXJlKFtkYXRhLWRpc2FibGVkXTpub3QoW2RhdGEtZGlzYWJsZWQ9ZmFsc2VdKSl7cG9pbnRlci1ldmVudHM6bm9uZX0uZGF0YS1kaXNhYmxlZFw6b3BhY2l0eS01MDp3aGVyZShbZGF0YS1kaXNhYmxlZD10cnVlXSksLmRhdGEtZGlzYWJsZWRcOm9wYWNpdHktNTA6d2hlcmUoW2RhdGEtZGlzYWJsZWRdOm5vdChbZGF0YS1kaXNhYmxlZD1mYWxzZV0pKXtvcGFjaXR5Oi41fS5kYXRhLWFjdGl2ZVw6YmctYmFja2dyb3VuZDp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGF0YS1hY3RpdmVcOmJnLWJhY2tncm91bmQ6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCl9LmRhdGEtYWN0aXZlXDp0ZXh0LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhdGEtYWN0aXZlXDp0ZXh0LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5ncm91cC1kYXRhLVxbdmFyaWFudFw9ZGVmYXVsdFxdXC90YWJzLWxpc3RcOmRhdGEtYWN0aXZlXDpzaGFkb3ctc206aXMoOndoZXJlKC5ncm91cFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9ZGVmYXVsdF0gKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmdyb3VwLWRhdGEtXFt2YXJpYW50XD1kZWZhdWx0XF1cL3RhYnMtbGlzdFw6ZGF0YS1hY3RpdmVcOnNoYWRvdy1zbTppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1kZWZhdWx0XSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7LS10dy1zaGFkb3c6MCAxcHggM3B4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksMCAxcHggMnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSk7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5ncm91cC1kYXRhLVxbdmFyaWFudFw9bGluZVxdXC90YWJzLWxpc3RcOmRhdGEtYWN0aXZlXDpiZy10cmFuc3BhcmVudDppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZ3JvdXAtZGF0YS1cW3ZhcmlhbnRcPWxpbmVcXVwvdGFicy1saXN0XDpkYXRhLWFjdGl2ZVw6YmctdHJhbnNwYXJlbnQ6aXMoOndoZXJlKC5ncm91cFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JhY2tncm91bmQtY29sb3I6IzAwMDB9Lmdyb3VwLWRhdGEtXFt2YXJpYW50XD1saW5lXF1cL3RhYnMtbGlzdFw6ZGF0YS1hY3RpdmVcOnNoYWRvdy1ub25lOmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWxpbmVdICopOndoZXJlKFtkYXRhLXN0YXRlPWFjdGl2ZV0pLC5ncm91cC1kYXRhLVxbdmFyaWFudFw9bGluZVxdXC90YWJzLWxpc3RcOmRhdGEtYWN0aXZlXDpzaGFkb3ctbm9uZTppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7LS10dy1zaGFkb3c6MCAwICMwMDAwO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX06aXMoLmdyb3VwLWRhdGEtXFt2YXJpYW50XD1saW5lXF1cL3RhYnMtbGlzdFw6ZGF0YS1hY3RpdmVcOmFmdGVyXDpvcGFjaXR5LTEwMDppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZ3JvdXAtZGF0YS1cW3ZhcmlhbnRcPWxpbmVcXVwvdGFicy1saXN0XDpkYXRhLWFjdGl2ZVw6YWZ0ZXJcOm9wYWNpdHktMTAwOmlzKDp3aGVyZSguZ3JvdXBcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWxpbmVdICopOndoZXJlKFtkYXRhLWFjdGl2ZV06bm90KFtkYXRhLWFjdGl2ZT1mYWxzZV0pKSk6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtvcGFjaXR5OjF9LmRhcmtcOmRhdGEtYWN0aXZlXDpib3JkZXItaW5wdXQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhcmtcOmRhdGEtYWN0aXZlXDpib3JkZXItaW5wdXQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JvcmRlci1jb2xvcjp2YXIoLS1pbnB1dCl9LmRhcmtcOmRhdGEtYWN0aXZlXDpiZy1pbnB1dFwvMzA6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhcmtcOmRhdGEtYWN0aXZlXDpiZy1pbnB1dFwvMzA6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1w6ZGF0YS1hY3RpdmVcOmJnLWlucHV0XC8zMDppcyguZGFyayAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGFya1w6ZGF0YS1hY3RpdmVcOmJnLWlucHV0XC8zMDppcyguZGFyayAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0taW5wdXQpMzAlLHRyYW5zcGFyZW50KX19LmRhcmtcOmRhdGEtYWN0aXZlXDp0ZXh0LWZvcmVncm91bmQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhcmtcOmRhdGEtYWN0aXZlXDp0ZXh0LWZvcmVncm91bmQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5kYXJrXDpncm91cC1kYXRhLVxbdmFyaWFudFw9bGluZVxdXC90YWJzLWxpc3RcOmRhdGEtYWN0aXZlXDpib3JkZXItdHJhbnNwYXJlbnQ6aXMoLmRhcmsgKik6aXMoOndoZXJlKC5ncm91cFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhcmtcOmdyb3VwLWRhdGEtXFt2YXJpYW50XD1saW5lXF1cL3RhYnMtbGlzdFw6ZGF0YS1hY3RpdmVcOmJvcmRlci10cmFuc3BhcmVudDppcyguZGFyayAqKTppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7Ym9yZGVyLWNvbG9yOiMwMDAwfS5kYXJrXDpncm91cC1kYXRhLVxbdmFyaWFudFw9bGluZVxdXC90YWJzLWxpc3RcOmRhdGEtYWN0aXZlXDpiZy10cmFuc3BhcmVudDppcyguZGFyayAqKTppcyg6d2hlcmUoLmdyb3VwXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGFya1w6Z3JvdXAtZGF0YS1cW3ZhcmlhbnRcPWxpbmVcXVwvdGFicy1saXN0XDpkYXRhLWFjdGl2ZVw6YmctdHJhbnNwYXJlbnQ6aXMoLmRhcmsgKik6aXMoOndoZXJlKC5ncm91cFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JhY2tncm91bmQtY29sb3I6IzAwMDB9LmRhdGEtaG9yaXpvbnRhbFw6aC1weDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj1ob3Jpem9udGFsXSl7aGVpZ2h0OjFweH0uZGF0YS1ob3Jpem9udGFsXDp3LWZ1bGw6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249aG9yaXpvbnRhbF0pe3dpZHRoOjEwMCV9LmRhdGEtaG9yaXpvbnRhbFw6ZmxleC1jb2w6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249aG9yaXpvbnRhbF0pe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZGF0YS12ZXJ0aWNhbFw6dy1weDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pe3dpZHRoOjFweH0uZGF0YS12ZXJ0aWNhbFw6c2VsZi1zdHJldGNoOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPXZlcnRpY2FsXSl7YWxpZ24tc2VsZjpzdHJldGNofS5cW1wmX2FcXVw6dGV4dC1wcmltYXJ5IGF7Y29sb3I6dmFyKC0tcHJpbWFyeSl9LlxbXCZfaDNcXVw6bXQtNiBoM3ttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqNil9LlxbXCZfaDNcXVw6bWItMiBoM3ttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMil9LlxbXCZfaDNcXVw6dGV4dC1mb3JlZ3JvdW5kIGgze2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5cW1wmX3N2Z1xdXDpwb2ludGVyLWV2ZW50cy1ub25lIHN2Z3twb2ludGVyLWV2ZW50czpub25lfS5cW1wmX3N2Z1xdXDpzaHJpbmstMCBzdmd7ZmxleC1zaHJpbms6MH0uXFtcJl9zdmdcOm5vdFwoXFtjbGFzc1wqXD1cJ3NpemUtXCdcXVwpXF1cOnNpemUtMyBzdmc6bm90KFtjbGFzcyo9c2l6ZS1dKXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5cW1wmX3N2Z1w6bm90XChcW2NsYXNzXCpcPVwnc2l6ZS1cJ1xdXClcXVw6c2l6ZS0zXC41IHN2Zzpub3QoW2NsYXNzKj1zaXplLV0pe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMy41KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpfS5cW1wmX3N2Z1w6bm90XChcW2NsYXNzXCpcPVwnc2l6ZS1cJ1xdXClcXVw6c2l6ZS00IHN2Zzpub3QoW2NsYXNzKj1zaXplLV0pe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LlxbXCZfdHJcXVw6Ym9yZGVyLWIgdHJ7Ym9yZGVyLWJvdHRvbS1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1ib3R0b20td2lkdGg6MXB4fS5cW1wmX3RyXDpsYXN0LWNoaWxkXF1cOmJvcmRlci0wIHRyOmxhc3QtY2hpbGR7Ym9yZGVyLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXdpZHRoOjB9LlxbXCZcOlw6LXdlYmtpdC1kZXRhaWxzLW1hcmtlclxdXDpoaWRkZW46Oi13ZWJraXQtZGV0YWlscy1tYXJrZXJ7ZGlzcGxheTpub25lfS5cW1wmXDpcOi13ZWJraXQtc2Nyb2xsYmFyXF1cOmhpZGRlbjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5cW1wmXDpoYXNcKFxbcm9sZVw9Y2hlY2tib3hcXVwpXF1cOnByLTA6aGFzKFtyb2xlPWNoZWNrYm94XSl7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5cW1wuYm9yZGVyLWJcXVw6cGItMi5ib3JkZXItYntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5cW1wuYm9yZGVyLWJcXVw6cGItNC5ib3JkZXItYntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5ncm91cC1kYXRhLVxbc2l6ZVw9c21cXVwvY2FyZFw6XFtcLmJvcmRlci1iXF1cOnBiLTM6aXMoOndoZXJlKC5ncm91cFwvY2FyZClbZGF0YS1zaXplPXNtXSAqKS5ib3JkZXItYntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5cW1wuYm9yZGVyLXRcXVw6cHQtMi5ib3JkZXItdHtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfTppcyguXCpcKlw6XFtcW2NtZGstZ3JvdXAtaGVhZGluZ1xdXF1cOnB4LTIgKilbY21kay1ncm91cC1oZWFkaW5nXXtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfTppcyguXCpcKlw6XFtcW2NtZGstZ3JvdXAtaGVhZGluZ1xdXF1cOnB5LTFcLjUgKilbY21kay1ncm91cC1oZWFkaW5nXXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMS41KX06aXMoLlwqXCpcOlxbXFtjbWRrLWdyb3VwLWhlYWRpbmdcXVxdXDp0ZXh0LXhzICopW2NtZGstZ3JvdXAtaGVhZGluZ117Zm9udC1zaXplOnZhcigtLXRleHQteHMpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC14cy0tbGluZS1oZWlnaHQpKX06aXMoLlwqXCpcOlxbXFtjbWRrLWdyb3VwLWhlYWRpbmdcXVxdXDpmb250LW1lZGl1bSAqKVtjbWRrLWdyb3VwLWhlYWRpbmddey0tdHctZm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtmb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pfTppcyguXCpcKlw6XFtcW2NtZGstZ3JvdXAtaGVhZGluZ1xdXF1cOnRleHQtbXV0ZWQtZm9yZWdyb3VuZCAqKVtjbWRrLWdyb3VwLWhlYWRpbmdde2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfTppcyguXCpcOlxbYVxdXDp1bmRlcmxpbmU+Kik6aXMoYSl7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfTppcyguXCpcOlxbYVxdXDp1bmRlcmxpbmUtb2Zmc2V0LTM+Kik6aXMoYSl7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjNweH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuXFthXF1cOmhvdmVyXDpiZy1kZXN0cnVjdGl2ZVwvMjA6aXMoYSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5cW2FcXVw6aG92ZXJcOmJnLWRlc3RydWN0aXZlXC8yMDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkyMCUsdHJhbnNwYXJlbnQpfX0uXFthXF1cOmhvdmVyXDpiZy1tdXRlZDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uXFthXF1cOmhvdmVyXDpiZy1wcmltYXJ5XC84MDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuXFthXF1cOmhvdmVyXDpiZy1wcmltYXJ5XC84MDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTgwJSx0cmFuc3BhcmVudCl9fS5cW2FcXVw6aG92ZXJcOmJnLXNlY29uZGFyeVwvODA6aXMoYSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuXFthXF1cOmhvdmVyXDpiZy1zZWNvbmRhcnlcLzgwOmlzKGEpOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXNlY29uZGFyeSk4MCUsdHJhbnNwYXJlbnQpfX0uXFthXF1cOmhvdmVyXDp0ZXh0LW11dGVkLWZvcmVncm91bmQ6aXMoYSk6aG92ZXJ7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9OmlzKC5cKlw6XFthXF1cOmhvdmVyXDp0ZXh0LWZvcmVncm91bmQ+Kik6aXMoYSk6aG92ZXJ7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9fTppcyguXCpcOlxbaW1nXDpmaXJzdC1jaGlsZFxdXDpyb3VuZGVkLXQteGw+Kik6aXMoaW1nOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpfTppcyguXCpcOlxbaW1nXDpsYXN0LWNoaWxkXF1cOnJvdW5kZWQtYi14bD4qKTppcyhpbWc6bGFzdC1jaGlsZCl7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuNCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqMS40KX06aXMoLmRhdGEtXFt2YXJpYW50XD1kZXN0cnVjdGl2ZVxdXDpcKlw6XFtzdmdcXVw6dGV4dC1kZXN0cnVjdGl2ZVtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVdPiopOmlzKHN2Zyl7Y29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfTppcyguZGF0YS1zZWxlY3RlZFw6XCpcOlxbc3ZnXF1cOnRleHQtZm9yZWdyb3VuZDp3aGVyZShbZGF0YS1zZWxlY3RlZD10cnVlXSk+Kik6aXMoc3ZnKXtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX0uaGFzLVxbXD5cW2RhdGEtYWxpZ25cPWJsb2NrLWVuZFxdXF1cOlxbXCZcPmlucHV0XF1cOnB0LTM6aGFzKD5bZGF0YS1hbGlnbj1ibG9jay1lbmRdKT5pbnB1dHtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5oYXMtXFtcPlxbZGF0YS1hbGlnblw9YmxvY2stc3RhcnRcXVxdXDpcW1wmXD5pbnB1dFxdXDpwYi0zOmhhcyg+W2RhdGEtYWxpZ249YmxvY2stc3RhcnRdKT5pbnB1dHtwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5oYXMtXFtcPlxbZGF0YS1hbGlnblw9aW5saW5lLWVuZFxdXF1cOlxbXCZcPmlucHV0XF1cOnByLTFcLjU6aGFzKD5bZGF0YS1hbGlnbj1pbmxpbmUtZW5kXSk+aW5wdXR7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9Lmhhcy1cW1w+XFtkYXRhLWFsaWduXD1pbmxpbmUtc3RhcnRcXVxdXDpcW1wmXD5pbnB1dFxdXDpwbC0xXC41Omhhcyg+W2RhdGEtYWxpZ249aW5saW5lLXN0YXJ0XSk+aW5wdXR7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uXFtcJlw+a2JkXF1cOnJvdW5kZWQtXFtjYWxjXCh2YXJcKC0tcmFkaXVzXCktNXB4XClcXT5rYmR7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSA1cHgpfS5cW1wmXD5zdmdcXVw6cG9pbnRlci1ldmVudHMtbm9uZT5zdmd7cG9pbnRlci1ldmVudHM6bm9uZX0uXFtcJlw+c3ZnXF1cOnNpemUtM1whPnN2Z3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpIWltcG9ydGFudDtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKSFpbXBvcnRhbnR9LlxbXCZcPnN2Z1xdXDpzaXplLTQ+c3Zne3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9Lmdyb3VwLWhhcy1kYXRhLVxbc2l6ZVw9bGdcXVwvYXZhdGFyLWdyb3VwXDpcW1wmXD5zdmdcXVw6c2l6ZS01OmlzKDp3aGVyZSguZ3JvdXBcL2F2YXRhci1ncm91cCk6aGFzKFtkYXRhLXNpemU9bGddKSAqKT5zdmd7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0uZ3JvdXAtaGFzLWRhdGEtXFtzaXplXD1zbVxdXC9hdmF0YXItZ3JvdXBcOlxbXCZcPnN2Z1xdXDpzaXplLTM6aXMoOndoZXJlKC5ncm91cFwvYXZhdGFyLWdyb3VwKTpoYXMoW2RhdGEtc2l6ZT1zbV0pICopPnN2Z3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5ncm91cC1kYXRhLVxbc2l6ZVw9ZGVmYXVsdFxdXC9hdmF0YXJcOlxbXCZcPnN2Z1xdXDpzaXplLTI6aXMoOndoZXJlKC5ncm91cFwvYXZhdGFyKVtkYXRhLXNpemU9ZGVmYXVsdF0gKik+c3ZnLC5ncm91cC1kYXRhLVxbc2l6ZVw9bGdcXVwvYXZhdGFyXDpcW1wmXD5zdmdcXVw6c2l6ZS0yOmlzKDp3aGVyZSguZ3JvdXBcL2F2YXRhcilbZGF0YS1zaXplPWxnXSAqKT5zdmd7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uZ3JvdXAtZGF0YS1cW3NpemVcPXNtXF1cL2F2YXRhclw6XFtcJlw+c3ZnXF1cOmhpZGRlbjppcyg6d2hlcmUoLmdyb3VwXC9hdmF0YXIpW2RhdGEtc2l6ZT1zbV0gKik+c3Zne2Rpc3BsYXk6bm9uZX0uXFtcJlw+c3ZnXDpub3RcKFxbY2xhc3NcKlw9XCdzaXplLVwnXF1cKVxdXDpzaXplLTNcLjU+c3ZnOm5vdChbY2xhc3MqPXNpemUtXSl7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMuNSl9LlxbXCZcPnN2Z1w6bm90XChcW2NsYXNzXCpcPVwnc2l6ZS1cJ1xdXClcXVw6c2l6ZS00PnN2Zzpub3QoW2NsYXNzKj1zaXplLV0pe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LlxbXCZcPnRyXF1cOmxhc3RcOmJvcmRlci1iLTA+dHI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDowfX1AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZGVsYXl7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjBzfUBwcm9wZXJ0eSAtLXR3LWFuaW1hdGlvbi1kaXJlY3Rpb257c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOm5vcm1hbH1AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZHVyYXRpb257c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZmlsbC1tb2Rle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTpub25lfUBwcm9wZXJ0eSAtLXR3LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnR7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjF9QHByb3BlcnR5IC0tdHctZW50ZXItYmx1cntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1lbnRlci1vcGFjaXR5e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToxfUBwcm9wZXJ0eSAtLXR3LWVudGVyLXJvdGF0ZXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1lbnRlci1zY2FsZXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MX1AcHJvcGVydHkgLS10dy1lbnRlci10cmFuc2xhdGUteHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1lbnRlci10cmFuc2xhdGUteXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1leGl0LWJsdXJ7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctZXhpdC1vcGFjaXR5e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToxfUBwcm9wZXJ0eSAtLXR3LWV4aXQtcm90YXRle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LWV4aXQtc2NhbGV7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjF9QHByb3BlcnR5IC0tdHctZXhpdC10cmFuc2xhdGUteHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1leGl0LXRyYW5zbGF0ZS15e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfTpyb290ey0tYmFja2dyb3VuZDojZmZmOy0tZm9yZWdyb3VuZDojMTExODI3Oy0tY2FyZDojZjlmYWZiOy0tY2FyZC1mb3JlZ3JvdW5kOiMxMTE4Mjc7LS1wb3BvdmVyOiNmZmY7LS1wb3BvdmVyLWZvcmVncm91bmQ6IzExMTgyNzstLXByaW1hcnk6IzAwNzBlYzstLXByaW1hcnktZm9yZWdyb3VuZDojZmZmOy0tc2Vjb25kYXJ5OiNmM2Y0ZjY7LS1zZWNvbmRhcnktZm9yZWdyb3VuZDojMTExODI3Oy0tbXV0ZWQ6I2YzZjRmNjstLW11dGVkLWZvcmVncm91bmQ6IzZiNzI4MDstLWFjY2VudDojZjNmNGY2Oy0tYWNjZW50LWZvcmVncm91bmQ6IzExMTgyNzstLWRlc3RydWN0aXZlOiNlZjQ0NDQ7LS1ib3JkZXI6I2U1ZTdlYjstLWlucHV0OiNlNWU3ZWI7LS1yaW5nOiMwMDc0ZjU7LS1yYWRpdXM6LjVyZW07LS1zdWNjZXNzOiMyMmM1NWU7LS1kYW5nZXI6I2VmNDQ0NDstLXdhcm5pbmc6I2Y1OWUwYjstLWluZm86IzNiODJmNjstLXN1cmZhY2U6I2Y5ZmFmYjstLXN1cmZhY2UtMjojZjNmNGY2Oy0tY2hhcnQtMTojMDA3NGY1Oy0tY2hhcnQtMjojMDBiOGE5Oy0tY2hhcnQtMzojMjJjNTVlOy0tY2hhcnQtNDojZjU5ZTBiOy0tY2hhcnQtNTojZWY0NDQ0Oy0tc2lkZWJhcjojZjlmYWZiOy0tc2lkZWJhci1mb3JlZ3JvdW5kOiMxMTE4Mjc7LS1zaWRlYmFyLXByaW1hcnk6IzAwNzRmNTstLXNpZGViYXItcHJpbWFyeS1mb3JlZ3JvdW5kOiNmZmY7LS1zaWRlYmFyLWFjY2VudDojZjNmNGY2Oy0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDojMTExODI3Oy0tc2lkZWJhci1ib3JkZXI6I2U1ZTdlYjstLXNpZGViYXItcmluZzojMDA3NGY1fS5kYXJrey0tYmFja2dyb3VuZDojMGIwZjE5Oy0tZm9yZWdyb3VuZDojZjlmYWZiOy0tY2FyZDojMTExODI3Oy0tY2FyZC1mb3JlZ3JvdW5kOiNmOWZhZmI7LS1wb3BvdmVyOiMxMTE4Mjc7LS1wb3BvdmVyLWZvcmVncm91bmQ6I2Y5ZmFmYjstLXByaW1hcnk6IzAwNzBlYzstLXByaW1hcnktZm9yZWdyb3VuZDojZmZmOy0tc2Vjb25kYXJ5OiMxZjI5Mzc7LS1zZWNvbmRhcnktZm9yZWdyb3VuZDojZjlmYWZiOy0tbXV0ZWQ6IzFmMjkzNzstLW11dGVkLWZvcmVncm91bmQ6IzljYTNhZjstLWFjY2VudDojMWYyOTM3Oy0tYWNjZW50LWZvcmVncm91bmQ6I2Y5ZmFmYjstLWRlc3RydWN0aXZlOiNlZjQ0NDQ7LS1ib3JkZXI6IzM3NDE1MTstLWlucHV0OiMzNzQxNTE7LS1yaW5nOiMwMDc0ZjU7LS1zdWNjZXNzOiMyMmM1NWU7LS1kYW5nZXI6I2VmNDQ0NDstLXdhcm5pbmc6I2Y1OWUwYjstLWluZm86IzNiODJmNjstLXN1cmZhY2U6IzExMTgyNzstLXN1cmZhY2UtMjojMWYyOTM3Oy0tY2hhcnQtMTojM2Q5YWZmOy0tY2hhcnQtMjojMzNjOWJkOy0tY2hhcnQtMzojMjJjNTVlOy0tY2hhcnQtNDojZjU5ZTBiOy0tY2hhcnQtNTojZWY0NDQ0Oy0tc2lkZWJhcjojMTExODI3Oy0tc2lkZWJhci1mb3JlZ3JvdW5kOiNmOWZhZmI7LS1zaWRlYmFyLXByaW1hcnk6IzNkOWFmZjstLXNpZGViYXItcHJpbWFyeS1mb3JlZ3JvdW5kOiNmZmY7LS1zaWRlYmFyLWFjY2VudDojMWYyOTM3Oy0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDojZjlmYWZiOy0tc2lkZWJhci1ib3JkZXI6IzM3NDE1MTstLXNpZGViYXItcmluZzojMDA3NGY1fUBrZXlmcmFtZXMgdGV4dC1zaGltbWVyezAle2JhY2tncm91bmQtcG9zaXRpb246MjAwJX10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDAlfX0udGV4dC1zaGltbWVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLW11dGVkLWZvcmVncm91bmQpNDAlLHZhcigtLWZvcmVncm91bmQpNTAlLHZhcigtLW11dGVkLWZvcmVncm91bmQpNjAlKTtjb2xvcjojMDAwMDtiYWNrZ3JvdW5kLXNpemU6MjAwJTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0O2JhY2tncm91bmQtY2xpcDp0ZXh0O2FuaW1hdGlvbjoycyBsaW5lYXIgaW5maW5pdGUgdGV4dC1zaGltbWVyfWh0bWwuY2MtY29uc2VudGVkIC5jb29raWUtbm90aWNle2Rpc3BsYXk6bm9uZX1AcHJvcGVydHkgLS10dy10cmFuc2xhdGUteHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy10cmFuc2xhdGUteXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy10cmFuc2xhdGUtentzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1yb3RhdGUteHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXJvdGF0ZS15e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctcm90YXRlLXp7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1za2V3LXh7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1za2V3LXl7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1zcGFjZS15LXJldmVyc2V7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctc3BhY2UteC1yZXZlcnNle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LWRpdmlkZS15LXJldmVyc2V7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctYm9yZGVyLXN0eWxle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTpzb2xpZH1AcHJvcGVydHkgLS10dy1ncmFkaWVudC1wb3NpdGlvbntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LWZyb217c3ludGF4OiI8Y29sb3I+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOiMwMDAwfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXZpYXtzeW50YXg6Ijxjb2xvcj4iO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6IzAwMDB9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdG97c3ludGF4OiI8Y29sb3I+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOiMwMDAwfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXN0b3Bze3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdmlhLXN0b3Bze3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbntzeW50YXg6IjxsZW5ndGgtcGVyY2VudGFnZT4iO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MCV9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9ue3N5bnRheDoiPGxlbmd0aC1wZXJjZW50YWdlPiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTo1MCV9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb257c3ludGF4OiI8bGVuZ3RoLXBlcmNlbnRhZ2U+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctbGVhZGluZ3tzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWZvbnQtd2VpZ2h0e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctdHJhY2tpbmd7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1vcmRpbmFse3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2xhc2hlZC16ZXJve3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctbnVtZXJpYy1maWd1cmV7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1udW1lcmljLXNwYWNpbmd7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1udW1lcmljLWZyYWN0aW9ue3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2hhZG93e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowIDAgIzAwMDB9QHByb3BlcnR5IC0tdHctc2hhZG93LWNvbG9ye3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2hhZG93LWFscGhhe3N5bnRheDoiPHBlcmNlbnRhZ2U+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowIDAgIzAwMDB9QHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93LWNvbG9ye3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93LWFscGhhe3N5bnRheDoiPHBlcmNlbnRhZ2U+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctcmluZy1jb2xvcntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXJpbmctc2hhZG93e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowIDAgIzAwMDB9QHByb3BlcnR5IC0tdHctaW5zZXQtcmluZy1jb2xvcntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWluc2V0LXJpbmctc2hhZG93e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowIDAgIzAwMDB9QHByb3BlcnR5IC0tdHctcmluZy1pbnNldHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoe3N5bnRheDoiPGxlbmd0aD4iO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1yaW5nLW9mZnNldC1jb2xvcntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6I2ZmZn1AcHJvcGVydHkgLS10dy1yaW5nLW9mZnNldC1zaGFkb3d7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjAgMCAjMDAwMH1AcHJvcGVydHkgLS10dy1vdXRsaW5lLXN0eWxle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTpzb2xpZH1AcHJvcGVydHkgLS10dy1ibHVye3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYnJpZ2h0bmVzc3tzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWNvbnRyYXN0e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctZ3JheXNjYWxle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctaHVlLXJvdGF0ZXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWludmVydHtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LW9wYWNpdHl7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1zYXR1cmF0ZXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXNlcGlhe3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctZHJvcC1zaGFkb3d7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvdy1jb2xvcntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWRyb3Atc2hhZG93LWFscGhhe3N5bnRheDoiPHBlcmNlbnRhZ2U+Ijtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctZHJvcC1zaGFkb3ctc2l6ZXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWJhY2tkcm9wLWJsdXJ7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNze3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtY29udHJhc3R7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGV7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1odWUtcm90YXRle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtaW52ZXJ0e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3Atb3BhY2l0eXtzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWJhY2tkcm9wLXNhdHVyYXRle3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3Atc2VwaWF7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1kdXJhdGlvbntzeW50YXg6IioiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWVhc2V7c3ludGF4OiIqIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1jb250ZW50e3N5bnRheDoiKiI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToiIn1Aa2V5ZnJhbWVzIHNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHB1bHNlezUwJXtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGVudGVyezAle29wYWNpdHk6dmFyKC0tdHctZW50ZXItb3BhY2l0eSwxKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QodmFyKC0tdHctZW50ZXItdHJhbnNsYXRlLXgsMCksdmFyKC0tdHctZW50ZXItdHJhbnNsYXRlLXksMCksMClzY2FsZTNkKHZhcigtLXR3LWVudGVyLXNjYWxlLDEpLHZhcigtLXR3LWVudGVyLXNjYWxlLDEpLHZhcigtLXR3LWVudGVyLXNjYWxlLDEpKXJvdGF0ZSh2YXIoLS10dy1lbnRlci1yb3RhdGUsMCkpO2ZpbHRlcjpibHVyKHZhcigtLXR3LWVudGVyLWJsdXIsMCkpfX1Aa2V5ZnJhbWVzIGV4aXR7dG97b3BhY2l0eTp2YXIoLS10dy1leGl0LW9wYWNpdHksMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKHZhcigtLXR3LWV4aXQtdHJhbnNsYXRlLXgsMCksdmFyKC0tdHctZXhpdC10cmFuc2xhdGUteSwwKSwwKXNjYWxlM2QodmFyKC0tdHctZXhpdC1zY2FsZSwxKSx2YXIoLS10dy1leGl0LXNjYWxlLDEpLHZhcigtLXR3LWV4aXQtc2NhbGUsMSkpcm90YXRlKHZhcigtLXR3LWV4aXQtcm90YXRlLDApKTtmaWx0ZXI6Ymx1cih2YXIoLS10dy1leGl0LWJsdXIsMCkpfX0KPC9zdHlsZT48bGluayByZWw9InByZWxvYWQiIGFzPSJzY3JpcHQiIGZldGNoUHJpb3JpdHk9ImxvdyIgaHJlZj0iL19uZXh0L3N0YXRpYy9jaHVua3MvODFhMjk4ZGRjNzQ3MTA3MC5qcyIvPjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy85ZGYzYjY3YjYwNjFlYTllLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvNDgwY2RlMDhiOGJmZDVjZS5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzQ5MTE0MTBlNTE1M2YwZDcuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy80ODE1YTc1ODY1N2Q0YmFlLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvdHVyYm9wYWNrLTE4YTlkZTUxMmExOTMzYWQuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9jMGE2YWU1MTVmNGQyNDVkLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMzMwNzRkM2ZmNWQwY2QyZC5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzk1MjYyMzg2ZDhkNGI2ZGQuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy84MDBlODM2MTQ2ZDZlN2ViLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvZDcxYjk5MjY3YjA2NmI5Yi5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3MyLmNvaW5tYXJrZXRjYXAuY29tIiBjcm9zc29yaWdpbj0iIi8+PG1ldGEgbmFtZT0ibmV4dC1zaXplLWFkanVzdCIgY29udGVudD0iIi8+PHRpdGxlPkNvaW5saWIgV2lkZ2V0IHwgQ29pbmxpYjwvdGl0bGU+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRyYWNrIHJlYWwtdGltZSBjcnlwdG9jdXJyZW5jeSBwcmljZXMsIG1hcmtldCBjYXAsIGNoYXJ0cywgYW5kIHBvcnRmb2xpby4gRXhwbG9yZSB0aG91c2FuZHMgb2YgY29pbnMgYW5kIGV4Y2hhbmdlcyB3aXRoIENvaW5saWIuIi8+PG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9ImNyeXB0b2N1cnJlbmN5LGNyeXB0byBwcmljZXMsYml0Y29pbixtYXJrZXQgY2FwLGNyeXB0byBjaGFydHMscG9ydGZvbGlvIHRyYWNrZXIiLz48bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgiLz48bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkNvaW5saWIg4oCUIENyeXB0b2N1cnJlbmN5IFByaWNlcywgQ2hhcnRzICZhbXA7IE1hcmtldCBEYXRhIi8+PG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJUcmFjayByZWFsLXRpbWUgY3J5cHRvY3VycmVuY3kgcHJpY2VzLCBtYXJrZXQgY2FwLCBjaGFydHMsIGFuZCBwb3J0Zm9saW8uIEV4cGxvcmUgdGhvdXNhbmRzIG9mIGNvaW5zIGFuZCBleGNoYW5nZXMgd2l0aCBDb2lubGliLiIvPjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vY29pbmxpYi5pbyIvPjxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9IkNvaW5saWIiLz48bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vY29pbmxpYi5pby9vZy9kZWZhdWx0LnBuZyIvPjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTp3aWR0aCIgY29udGVudD0iMTIwMCIvPjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCIvPjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTphbHQiIGNvbnRlbnQ9IkNvaW5saWIg4oCUIENyeXB0b2N1cnJlbmN5IFByaWNlcywgQ2hhcnRzICZhbXA7IE1hcmtldCBEYXRhIi8+PG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiLz48bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiLz48bWV0YSBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJDb2lubGliIOKAlCBDcnlwdG9jdXJyZW5jeSBQcmljZXMsIENoYXJ0cyAmYW1wOyBNYXJrZXQgRGF0YSIvPjxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRyYWNrIHJlYWwtdGltZSBjcnlwdG9jdXJyZW5jeSBwcmljZXMsIG1hcmtldCBjYXAsIGNoYXJ0cywgYW5kIHBvcnRmb2xpby4gRXhwbG9yZSB0aG91c2FuZHMgb2YgY29pbnMgYW5kIGV4Y2hhbmdlcyB3aXRoIENvaW5saWIuIi8+PG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9jb2lubGliLmlvL29nL2RlZmF1bHQucG5nIi8+PGxpbmsgcmVsPSJpY29uIiBocmVmPSIvZmF2aWNvbi5pY28/ZmF2aWNvbi4zOTBlMTEwOS5pY28iIHNpemVzPSI0OHg0OCIgdHlwZT0iaW1hZ2UveC1pY29uIi8+PGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIvbG9nb3MvYXBwbGUtdG91Y2gtaWNvbi5wbmciLz48c2NyaXB0PnRyeXtpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY29pbmxpYi1jb29raWUtY29uc2VudCcpKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY2MtY29uc2VudGVkJyl9fWNhdGNoKGUpe308L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvYTZkYWQ5N2Q5NjM0YTcyZC5qcyIgbm9Nb2R1bGU9IiI+PC9zY3JpcHQ+PC9oZWFkPjxib2R5IGNsYXNzPSJpbnRlcl8xZWM0ZGQ5Zi1tb2R1bGVfX1VNUGFLR19fdmFyaWFibGUgYW50aWFsaWFzZWQiPjxkaXYgaGlkZGVuPSIiPjwhLS0kLS0+PCEtLS8kLS0+PC9kaXY+PHNjcmlwdD4oKGEsYixjLGQsZSxmLGcsaCk9PntsZXQgaT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsaj1bImxpZ2h0IiwiZGFyayJdO2Z1bmN0aW9uIGsoYil7dmFyIGM7KEFycmF5LmlzQXJyYXkoYSk/YTpbYV0pLmZvckVhY2goYT0+e2xldCBjPSJjbGFzcyI9PT1hLGQ9YyYmZj9lLm1hcChhPT5mW2FdfHxhKTplO2M/KGkuY2xhc3NMaXN0LnJlbW92ZSguLi5kKSxpLmNsYXNzTGlzdC5hZGQoZiYmZltiXT9mW2JdOmIpKTppLnNldEF0dHJpYnV0ZShhLGIpfSksYz1iLGgmJmouaW5jbHVkZXMoYykmJihpLnN0eWxlLmNvbG9yU2NoZW1lPWMpfWlmKGQpayhkKTtlbHNlIHRyeXtsZXQgYT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShiKXx8YyxkPWcmJiJzeXN0ZW0iPT09YT93aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImRhcmsiOiJsaWdodCI6YTtrKGQpfWNhdGNoKGEpe319KSgiY2xhc3MiLCJ0aGVtZSIsImRhcmsiLG51bGwsWyJsaWdodCIsImRhcmsiXSxudWxsLHRydWUsdHJ1ZSk8L3NjcmlwdD48c3R5bGU+aHRtbCwgYm9keSB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgfTwvc3R5bGU+PCEtLSQhLS0+PHRlbXBsYXRlIGRhdGEtZGdzdD0iQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkciPjwvdGVtcGxhdGU+PCEtLS8kLS0+PCEtLSQtLT48IS0tLyQtLT48c2NyaXB0PihmdW5jdGlvbigpe2Z1bmN0aW9uIGxvYWQoKXt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO3dpbmRvdy5ndGFnPWZ1bmN0aW9uKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKX07Z3RhZygnanMnLG5ldyBEYXRlKCkpO2d0YWcoJ2NvbmZpZycsJ0ctVjg0WFA4V0dYWScpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3Muc3JjPSdodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPUctVjg0WFA4V0dYWSc7cy5hc3luYz10cnVlO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyl9ZnVuY3Rpb24gc2NoZWR1bGUoKXtpZigncmVxdWVzdElkbGVDYWxsYmFjaydpbiB3aW5kb3cpe3JlcXVlc3RJZGxlQ2FsbGJhY2sobG9hZCx7dGltZW91dDozMDAwfSl9ZWxzZXtzZXRUaW1lb3V0KGxvYWQsMTUwMCl9fWlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0nY29tcGxldGUnKXtzY2hlZHVsZSgpfWVsc2V7YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsc2NoZWR1bGUse29uY2U6dHJ1ZX0pfX0pKCk7PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzgxYTI5OGRkYzc0NzEwNzAuanMiIGlkPSJfUl8iIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQ+KHNlbGYuX19uZXh0X2Y9c2VsZi5fX25leHRfZnx8W10pLnB1c2goWzBdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCIxOlwiJFNyZWFjdC5mcmFnbWVudFwiXG5hOklbMTYxNTMsW10sXCJkZWZhdWx0XCJdXG46SExbXCIvX25leHQvc3RhdGljL21lZGlhLzgzYWZlMjc4YjZhNmJiM2Mtcy5wLjNhNmJhMDM2LndvZmYyXCIsXCJmb250XCIse1wiY3Jvc3NPcmlnaW5cIjpcIlwiLFwidHlwZVwiOlwiZm9udC93b2ZmMlwifV1cbjI6VDg4NCwiXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiQGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDoxMDAgOTAwO2ZvbnQtZGlzcGxheTpvcHRpb25hbDtzcmM6dXJsKC9fbmV4dC9zdGF0aWMvbWVkaWEvMmM1NWEwZTYwMTIwNTc3YS1zLjJhNDg1MzRhLndvZmYyKWZvcm1hdChcIndvZmYyXCIpO3VuaWNvZGUtcmFuZ2U6VSs0NjAtNTJGLFUrMUM4MC0xQzhBLFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjEwMCA5MDA7Zm9udC1kaXNwbGF5Om9wdGlvbmFsO3NyYzp1cmwoL19uZXh0L3N0YXRpYy9tZWRpYS85YzcyYWEwZjQwZTRlZWY4LXMuMThhNDhjYmMud29mZjIpZm9ybWF0KFwid29mZjJcIik7dW5pY29kZS1yYW5nZTpVKzMwMSxVKzQwMC00NUYsVSs0OTAtNDkxLFUrNEIwLTRCMSxVKzIxMTZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDoxMDAgOTAwO2ZvbnQtZGlzcGxheTpvcHRpb25hbDtzcmM6dXJsKC9fbmV4dC9zdGF0aWMvbWVkaWEvYWQ2NmY5YWZkODk0N2Y4Ni1zLjdhNDBlYjczLndvZmYyKWZvcm1hdChcIndvZmYyXCIpO3VuaWNvZGUtcmFuZ2U6VSsxRj8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwIDkwMDtmb250LWRpc3BsYXk6b3B0aW9uYWw7c3JjOnVybCgvX25leHQvc3RhdGljL21lZGlhLzU0NzZmNjhkNjA0NjA5MzAtcy5jOTk1ZTM1Mi53b2ZmMilmb3JtYXQoXCJ3b2ZmMlwiKTt1bmljb2RlLXJhbmdlOlUrMzcwLTM3NyxVKzM3QS0zN0YsVSszODQtMzhBLFUrMzhDLFUrMzhFLTNBMSxVKzNBMy0zRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDoxMDAgOTAwO2ZvbnQtZGlzcGxheTpvcHRpb25hbDtzcmM6dXJsKC9fbmV4dC9zdGF0aWMvbWVkaWEvMmJiZThkMjY3MTYxM2YxZi1zLjc2ZGNiMGIyLndvZmYyKWZvcm1hdChcIndvZmYyXCIpO3VuaWNvZGUtcmFuZ2U6VSsxMDItMTAzLFUrMTEwLTExMSxVKzEyOC0xMjksVSsxNjgtMTY5LFUrMUEwLTFBMSxVKzFBRi0xQjAsVSszMDAtMzAxLFUrMzAzLTMwNCxVKzMwOC0zMDksVSszMjMsVSszMjksVSsxRUEwLTFFRjksVSsyMEFCfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwIDkwMDtmb250LWRpc3BsYXk6b3B0aW9uYWw7c3JjOnVybCgvX25leHQvc3RhdGljL21lZGlhLzFiZmZhZGFhYmY4OTNhMWUtcy43Y2Q4MTk2My53b2ZmMilmb3JtYXQoXCJ3b2ZmMlwiKTt1bmljb2RlLXJhbmdlOlUrMTAwLTJCQSxVKzJCRC0yQzUsVSsyQzctMkNDLFUrMkNFLTJENyxVKzJERC0yRkYsVSszMDQsVSszMDgsVSszMjksVSsxRDAwLTFEQkYsVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjEwMCA5MDA7Zm9udC1kaXNwbGF5Om9wdGlvbmFsO3NyYzp1cmwoL19uZXh0L3N0YXRpYy9tZWRpYS84M2FmZTI3OGI2YTZiYjNjLXMucC4zYTZiYTAzNi53b2ZmMilmb3JtYXQoXCJ3b2ZmMlwiKTt1bmljb2RlLXJhbmdlOlUrPz8sVSsxMzEsVSsxNTItMTUzLFUrMkJCLTJCQyxVKzJDNixVKzJEQSxVKzJEQyxVKzMwNCxVKzMwOCxVKzMyOSxVKzIwMDAtMjA2RixVKzIwQUMsVSsyMTIyLFUrMjE5MSxVKzIxOTMsVSsyMjEyLFUrMjIxNSxVK0ZFRkYsVStGRkZEfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SW50ZXIgRmFsbGJhY2s7c3JjOmxvY2FsKEFyaWFsKTthc2NlbnQtb3ZlcnJpZGU6OTAuNDQlO2Rlc2NlbnQtb3ZlcnJpZGU6MjIuNTIlO2xpbmUtZ2FwLW92ZXJyaWRlOjAuMCU7c2l6ZS1hZGp1c3Q6MTA3LjEyJX0uaW50ZXJfMWVjNGRkOWYtbW9kdWxlX19VTVBhS0dfX2NsYXNzTmFtZXtmb250LWZhbWlseTpJbnRlcixJbnRlciBGYWxsYmFjaztmb250LXN0eWxlOm5vcm1hbH0uaW50ZXJfMWVjNGRkOWYtbW9kdWxlX19VTVBhS0dfX3ZhcmlhYmxley0tZm9udC1pbnRlcjpcIkludGVyXCIsXCJJbnRlciBGYWxsYmFja1wifVxuIl0pPC9zY3JpcHQ+PHNjcmlwdD5zZWxmLl9fbmV4dF9mLnB1c2goWzEsIjM6VDFkNmU4LCJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCJAbGF5ZXIgcHJvcGVydGllc3tAc3VwcG9ydHMgKCgoLXdlYmtpdC1oeXBoZW5zOm5vbmUpKSBhbmQgKG5vdCAobWFyZ2luLXRyaW06aW5saW5lKSkpIG9yICgoLW1vei1vcmllbnQ6aW5saW5lKSBhbmQgKG5vdCAoY29sb3I6cmdiKGZyb20gcmVkIHIgZyBiKSkpKXsqLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS10dy10cmFuc2xhdGUteDowOy0tdHctdHJhbnNsYXRlLXk6MDstLXR3LXRyYW5zbGF0ZS16OjA7LS10dy1yb3RhdGUteDppbml0aWFsOy0tdHctcm90YXRlLXk6aW5pdGlhbDstLXR3LXJvdGF0ZS16OmluaXRpYWw7LS10dy1za2V3LXg6aW5pdGlhbDstLXR3LXNrZXcteTppbml0aWFsOy0tdHctc3BhY2UteS1yZXZlcnNlOjA7LS10dy1zcGFjZS14LXJldmVyc2U6MDstLXR3LWRpdmlkZS15LXJldmVyc2U6MDstLXR3LWJvcmRlci1zdHlsZTpzb2xpZDstLXR3LWdyYWRpZW50LXBvc2l0aW9uOmluaXRpYWw7LS10dy1ncmFkaWVudC1mcm9tOiMwMDAwOy0tdHctZ3JhZGllbnQtdmlhOiMwMDAwOy0tdHctZ3JhZGllbnQtdG86IzAwMDA7LS10dy1ncmFkaWVudC1zdG9wczppbml0aWFsOy0tdHctZ3JhZGllbnQtdmlhLXN0b3BzOmluaXRpYWw7LS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOjEwMCU7LS10dy1sZWFkaW5nOmluaXRpYWw7LS10dy1mb250LXdlaWdodDppbml0aWFsOy0tdHctdHJhY2tpbmc6aW5pdGlhbDstLXR3LW9yZGluYWw6aW5pdGlhbDstLXR3LXNsYXNoZWQtemVybzppbml0aWFsOy0tdHctbnVtZXJpYy1maWd1cmU6aW5pdGlhbDstLXR3LW51bWVyaWMtc3BhY2luZzppbml0aWFsOy0tdHctbnVtZXJpYy1mcmFjdGlvbjppbml0aWFsOy0tdHctc2hhZG93OjAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcjppbml0aWFsOy0tdHctc2hhZG93LWFscGhhOjEwMCU7LS10dy1pbnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdHctaW5zZXQtc2hhZG93LWNvbG9yOmluaXRpYWw7LS10dy1pbnNldC1zaGFkb3ctYWxwaGE6MTAwJTstLXR3LXJpbmctY29sb3I6aW5pdGlhbDstLXR3LXJpbmctc2hhZG93OjAgMCAjMDAwMDstLXR3LWluc2V0LXJpbmctY29sb3I6aW5pdGlhbDstLXR3LWluc2V0LXJpbmctc2hhZG93OjAgMCAjMDAwMDstLXR3LXJpbmctaW5zZXQ6aW5pdGlhbDstLXR3LXJpbmctb2Zmc2V0LXdpZHRoOjBweDstLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiNmZmY7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdHctb3V0bGluZS1zdHlsZTpzb2xpZDstLXR3LWJsdXI6aW5pdGlhbDstLXR3LWJyaWdodG5lc3M6aW5pdGlhbDstLXR3LWNvbnRyYXN0OmluaXRpYWw7LS10dy1ncmF5c2NhbGU6aW5pdGlhbDstLXR3LWh1ZS1yb3RhdGU6aW5pdGlhbDstLXR3LWludmVydDppbml0aWFsOy0tdHctb3BhY2l0eTppbml0aWFsOy0tdHctc2F0dXJhdGU6aW5pdGlhbDstLXR3LXNlcGlhOmluaXRpYWw7LS10dy1kcm9wLXNoYWRvdzppbml0aWFsOy0tdHctZHJvcC1zaGFkb3ctY29sb3I6aW5pdGlhbDstLXR3LWRyb3Atc2hhZG93LWFscGhhOjEwMCU7LS10dy1kcm9wLXNoYWRvdy1zaXplOmluaXRpYWw7LS10dy1iYWNrZHJvcC1ibHVyOmluaXRpYWw7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOmluaXRpYWw7LS10dy1iYWNrZHJvcC1jb250cmFzdDppbml0aWFsOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOmluaXRpYWw7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOmluaXRpYWw7LS10dy1iYWNrZHJvcC1pbnZlcnQ6aW5pdGlhbDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6aW5pdGlhbDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOmluaXRpYWw7LS10dy1iYWNrZHJvcC1zZXBpYTppbml0aWFsOy0tdHctZHVyYXRpb246aW5pdGlhbDstLXR3LWVhc2U6aW5pdGlhbDstLXR3LWNvbnRlbnQ6XCJcIjstLXR3LWFuaW1hdGlvbi1kZWxheTowczstLXR3LWFuaW1hdGlvbi1kaXJlY3Rpb246bm9ybWFsOy0tdHctYW5pbWF0aW9uLWR1cmF0aW9uOmluaXRpYWw7LS10dy1hbmltYXRpb24tZmlsbC1tb2RlOm5vbmU7LS10dy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7LS10dy1lbnRlci1ibHVyOjA7LS10dy1lbnRlci1vcGFjaXR5OjE7LS10dy1lbnRlci1yb3RhdGU6MDstLXR3LWVudGVyLXNjYWxlOjE7LS10dy1lbnRlci10cmFuc2xhdGUteDowOy0tdHctZW50ZXItdHJhbnNsYXRlLXk6MDstLXR3LWV4aXQtYmx1cjowOy0tdHctZXhpdC1vcGFjaXR5OjE7LS10dy1leGl0LXJvdGF0ZTowOy0tdHctZXhpdC1zY2FsZToxOy0tdHctZXhpdC10cmFuc2xhdGUteDowOy0tdHctZXhpdC10cmFuc2xhdGUteTowfX19QGxheWVyIHRoZW1lezpyb290LDpob3N0ey0tY29sb3ItcmVkLTUwMDojZmIyYzM2Oy0tY29sb3Itb3JhbmdlLTUwMDojZmU2ZTAwOy0tY29sb3ItZ3JlZW4tNDAwOiMwNWRmNzI7LS1jb2xvci1ncmVlbi02MDA6IzAwYTU0NDstLWNvbG9yLWJsYWNrOiMwMDA7LS1jb2xvci13aGl0ZTojZmZmOy0tc3BhY2luZzouMjVyZW07LS1jb250YWluZXIteHM6MjByZW07LS1jb250YWluZXItc206MjRyZW07LS1jb250YWluZXItbWQ6MjhyZW07LS1jb250YWluZXItbGc6MzJyZW07LS1jb250YWluZXIteGw6MzZyZW07LS1jb250YWluZXItMnhsOjQycmVtOy0tY29udGFpbmVyLTN4bDo0OHJlbTstLWNvbnRhaW5lci00eGw6NTZyZW07LS1jb250YWluZXItN3hsOjgwcmVtOy0tdGV4dC14czouNzVyZW07LS10ZXh0LXhzLS1saW5lLWhlaWdodDpjYWxjKDEvLjc1KTstLXRleHQtc206Ljg3NXJlbTstLXRleHQtc20tLWxpbmUtaGVpZ2h0OmNhbGMoMS4yNS8uODc1KTstLXRleHQtYmFzZToxcmVtOy0tdGV4dC1iYXNlLS1saW5lLWhlaWdodDpjYWxjKDEuNS8xKTstLXRleHQtbGc6MS4xMjVyZW07LS10ZXh0LWxnLS1saW5lLWhlaWdodDpjYWxjKDEuNzUvMS4xMjUpOy0tdGV4dC14bDoxLjI1cmVtOy0tdGV4dC14bC0tbGluZS1oZWlnaHQ6Y2FsYygxLjc1LzEuMjUpOy0tdGV4dC0yeGw6MS41cmVtOy0tdGV4dC0yeGwtLWxpbmUtaGVpZ2h0OmNhbGMoMi8xLjUpOy0tdGV4dC0zeGw6MS44NzVyZW07LS10ZXh0LTN4bC0tbGluZS1oZWlnaHQ6Y2FsYygyLjI1LzEuODc1KTstLXRleHQtNHhsOjIuMjVyZW07LS10ZXh0LTR4bC0tbGluZS1oZWlnaHQ6Y2FsYygyLjUvMi4yNSk7LS10ZXh0LTZ4bDozLjc1cmVtOy0tdGV4dC02eGwtLWxpbmUtaGVpZ2h0OjE7LS1mb250LXdlaWdodC1ub3JtYWw6NDAwOy0tZm9udC13ZWlnaHQtbWVkaXVtOjUwMDstLWZvbnQtd2VpZ2h0LXNlbWlib2xkOjYwMDstLWZvbnQtd2VpZ2h0LWJvbGQ6NzAwOy0tdHJhY2tpbmctdGlnaHQ6LS4wMjVlbTstLXRyYWNraW5nLXdpZGU6LjAyNWVtOy0tdHJhY2tpbmctd2lkZXN0Oi4xZW07LS1sZWFkaW5nLXRpZ2h0OjEuMjU7LS1sZWFkaW5nLXNudWc6MS4zNzU7LS1sZWFkaW5nLXJlbGF4ZWQ6MS42MjU7LS1yYWRpdXMtbWQ6Y2FsYyh2YXIoLS1yYWRpdXMpKi44KTstLWVhc2UtaW4tb3V0OmN1YmljLWJlemllciguNCwwLC4yLDEpOy0tYW5pbWF0ZS1zcGluOnNwaW4gMXMgbGluZWFyIGluZmluaXRlOy0tYW5pbWF0ZS1wdWxzZTpwdWxzZSAycyBjdWJpYy1iZXppZXIoLjQsMCwuNiwxKWluZmluaXRlOy0tYmx1ci14czo0cHg7LS1ibHVyLXNtOjhweDstLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzOy0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstLWRlZmF1bHQtZm9udC1mYW1pbHk6dmFyKC0tZm9udC1pbnRlciksXCJJbnRlclwiLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZjstLWRlZmF1bHQtbW9uby1mb250LWZhbWlseTp2YXIoLS1mb250LWludGVyKSxcIkludGVyXCIsdWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxzYW5zLXNlcmlmfUBzdXBwb3J0cyAoY29sb3I6bGFiKDAlIDAgMCkpezpyb290LDpob3N0ey0tY29sb3ItcmVkLTUwMDpsYWIoNTUuNDgxNCUgNzUuMDczMiA0OC44NTI4KTstLWNvbG9yLW9yYW5nZS01MDA6bGFiKDY0LjI3MiUgNTcuMTc4OCA5MC4zNTgzKTstLWNvbG9yLWdyZWVuLTQwMDpsYWIoNzguNTAzJSAtNjQuOTI2NSAzOS43NDkyKTstLWNvbG9yLWdyZWVuLTYwMDpsYWIoNTkuMDk3OCUgLTU4LjY2MjEgNDEuMjU3OSl9fX1AbGF5ZXIgYmFzZXsqLDphZnRlciw6YmVmb3JlLDo6YmFja2Ryb3B7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjowIHNvbGlkO21hcmdpbjowO3BhZGRpbmc6MH06OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MCBzb2xpZDttYXJnaW46MDtwYWRkaW5nOjB9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2xpbmUtaGVpZ2h0OjEuNTtmb250LWZhbWlseTp2YXIoLS1kZWZhdWx0LWZvbnQtZmFtaWx5LHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiLFwiTm90byBDb2xvciBFbW9qaVwiKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dmFyKC0tZGVmYXVsdC1mb250LWZlYXR1cmUtc2V0dGluZ3Msbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp2YXIoLS1kZWZhdWx0LWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLG5vcm1hbCk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWhye2hlaWdodDowO2NvbG9yOmluaGVyaXQ7Ym9yZGVyLXRvcC13aWR0aDoxcHh9YWJicjp3aGVyZShbdGl0bGVdKXstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OmluaGVyaXR9YXtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDstd2Via2l0LXRleHQtZGVjb3JhdGlvbjppbmhlcml0Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXAscHJle2ZvbnQtZmFtaWx5OnZhcigtLWRlZmF1bHQtbW9uby1mb250LWZhbWlseSx1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLFwiTGliZXJhdGlvbiBNb25vXCIsXCJDb3VyaWVyIE5ld1wiLG1vbm9zcGFjZSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOnZhcigtLWRlZmF1bHQtbW9uby1mb250LWZlYXR1cmUtc2V0dGluZ3Msbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp2YXIoLS1kZWZhdWx0LW1vbm8tZm9udC12YXJpYXRpb24tc2V0dGluZ3Msbm9ybWFsKTtmb250LXNpemU6MWVtfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX10YWJsZXt0ZXh0LWluZGVudDowO2JvcmRlci1jb2xvcjppbmhlcml0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19b2wsdWwsbWVudXtsaXN0LXN0eWxlOm5vbmV9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99YnV0dG9uLGlucHV0LHNlbGVjdCxvcHRncm91cCx0ZXh0YXJlYXtmb250OmluaGVyaXQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7b3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyLXJhZGl1czowfTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Zm9udDppbmhlcml0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczppbmhlcml0O2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDtjb2xvcjppbmhlcml0O29wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlci1yYWRpdXM6MH06d2hlcmUoc2VsZWN0OmlzKFttdWx0aXBsZV0sW3NpemVdKSkgb3B0Z3JvdXB7Zm9udC13ZWlnaHQ6Ym9sZGVyfTp3aGVyZShzZWxlY3Q6aXMoW211bHRpcGxlXSxbc2l6ZV0pKSBvcHRncm91cCBvcHRpb257cGFkZGluZy1pbmxpbmUtc3RhcnQ6MjBweH06OmZpbGUtc2VsZWN0b3ItYnV0dG9ue21hcmdpbi1pbmxpbmUtZW5kOjRweH06OnBsYWNlaG9sZGVye29wYWNpdHk6MX1Ac3VwcG9ydHMgKG5vdCAoKC13ZWJraXQtYXBwZWFyYW5jZTotYXBwbGUtcGF5LWJ1dHRvbikpKSBvciAoY29udGFpbi1pbnRyaW5zaWMtc2l6ZToxcHgpezo6cGxhY2Vob2xkZXJ7Y29sb3I6Y3VycmVudENvbG9yfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXs6OnBsYWNlaG9sZGVye2NvbG9yOmNvbG9yLW1peChpbiBva2xhYixjdXJyZW50Y29sb3IgNTAlLHRyYW5zcGFyZW50KX19fXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWV7bWluLWhlaWdodDoxbGg7dGV4dC1hbGlnbjppbmhlcml0fTo6LXdlYmtpdC1kYXRldGltZS1lZGl0e2Rpc3BsYXk6aW5saW5lLWZsZXh9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXJ7cGFkZGluZzowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0e3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taW51dGUtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXNlY29uZC1maWVsZHtwYWRkaW5nLWJsb2NrOjB9Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWlsbGlzZWNvbmQtZmllbGR7cGFkZGluZy1ibG9jazowfTo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1lcmlkaWVtLWZpZWxke3BhZGRpbmctYmxvY2s6MH06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntsaW5lLWhlaWdodDoxfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfWJ1dHRvbixpbnB1dDp3aGVyZShbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRdKXthcHBlYXJhbmNlOmJ1dHRvbn06OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2FwcGVhcmFuY2U6YnV0dG9ufTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Kntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTtvdXRsaW5lLWNvbG9yOnZhcigtLXJpbmcpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsqe291dGxpbmUtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXJpbmcpNTAlLHRyYW5zcGFyZW50KX19Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpO2NvbG9yOnZhcigtLWZvcmVncm91bmQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaW50ZXIpLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZn1jb2RlLHByZSxrYmR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1pbnRlciksXCJJbnRlclwiLHVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJpZn19QGxheWVyIGNvbXBvbmVudHM7QGxheWVyIHV0aWxpdGllc3suXFxAY29udGFpbmVyXFwvY2FyZC1oZWFkZXJ7Y29udGFpbmVyOmNhcmQtaGVhZGVyL2lubGluZS1zaXplfS5wb2ludGVyLWV2ZW50cy1ub25le3BvaW50ZXItZXZlbnRzOm5vbmV9LmNvbGxhcHNle3Zpc2liaWxpdHk6Y29sbGFwc2V9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5zci1vbmx5e2NsaXAtcGF0aDppbnNldCg1MCUpO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItd2lkdGg6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVufS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGF0aWN7cG9zaXRpb246c3RhdGljfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS5pbnNldC0we2luc2V0OmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmluc2V0LXgtMHtpbnNldC1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uaW5zZXQteC00e2luc2V0LWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5pbnNldC15LTB7aW5zZXQtYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uc3RhcnR7aW5zZXQtaW5saW5lLXN0YXJ0OnZhcigtLXNwYWNpbmcpfS5lbmR7aW5zZXQtaW5saW5lLWVuZDp2YXIoLS1zcGFjaW5nKX0uLXRvcC0ye3RvcDpjYWxjKHZhcigtLXNwYWNpbmcpKi0yKX0udG9wLTB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMCl9LnRvcC0wXFwuNXt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9LnRvcC0xXFwvMnt0b3A6NTAlfS50b3AtMVxcLzN7dG9wOjMzLjMzMzMlfS50b3AtMnt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0udG9wLTN7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMyl9LnRvcC0xNHt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNCl9LnRvcC0xMDB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMTAwKX0udG9wLTEwMDB7dG9wOmNhbGModmFyKC0tc3BhY2luZykqMTAwMCl9LnRvcC1mdWxse3RvcDoxMDAlfS4tcmlnaHQtMntyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKi0yKX0ucmlnaHQtMHtyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5yaWdodC0ye3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9LnJpZ2h0LTJcXC41e3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMi41KX0ucmlnaHQtM3tyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5ib3R0b20tMHtib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uYm90dG9tLTIwe2JvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjIwKX0ubGVmdC0we2xlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0ubGVmdC0wXFwuNXtsZWZ0OmNhbGModmFyKC0tc3BhY2luZykqLjUpfS5sZWZ0LTFcXC8ye2xlZnQ6NTAlfS5sZWZ0LTJcXC41e2xlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5sZWZ0LTN7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5sZWZ0LTR7bGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5sZWZ0LTEwe2xlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9Lmlzb2xhdGV7aXNvbGF0aW9uOmlzb2xhdGV9LnotMTB7ei1pbmRleDoxMH0uei0yMHt6LWluZGV4OjIwfS56LTMwe3otaW5kZXg6MzB9LnotNDB7ei1pbmRleDo0MH0uei01MHt6LWluZGV4OjUwfS5vcmRlci1maXJzdHtvcmRlcjotOTk5OX0ub3JkZXItbGFzdHtvcmRlcjo5OTk5fS5jb2wtc3RhcnQtMntncmlkLWNvbHVtbi1zdGFydDoyfS5yb3ctc3Bhbi0ye2dyaWQtcm93OnNwYW4gMi9zcGFuIDJ9LnJvdy1zdGFydC0xe2dyaWQtcm93LXN0YXJ0OjF9LmNvbnRhaW5lcnt3aWR0aDoxMDAlfUBtZWRpYSAobWluLXdpZHRoOjQwcmVtKXsuY29udGFpbmVye21heC13aWR0aDo0MHJlbX19QG1lZGlhIChtaW4td2lkdGg6NDhyZW0pey5jb250YWluZXJ7bWF4LXdpZHRoOjQ4cmVtfX1AbWVkaWEgKG1pbi13aWR0aDo2NHJlbSl7LmNvbnRhaW5lcnttYXgtd2lkdGg6NjRyZW19fUBtZWRpYSAobWluLXdpZHRoOjgwcmVtKXsuY29udGFpbmVye21heC13aWR0aDo4MHJlbX19QG1lZGlhIChtaW4td2lkdGg6OTZyZW0pey5jb250YWluZXJ7bWF4LXdpZHRoOjk2cmVtfX0uLW14LTF7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKi0xKX0uLW14LTR7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKi00KX0ubXgtMXttYXJnaW4taW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqMSl9Lm14LTR7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5teC1hdXRve21hcmdpbi1pbmxpbmU6YXV0b30ubXktMXttYXJnaW4tYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ubXktMnttYXJnaW4tYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucHJvc2V7Y29sb3I6dmFyKC0tdHctcHJvc2UtYm9keSk7bWF4LXdpZHRoOjY1Y2h9LnByb3NlIDp3aGVyZShwKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4yNWVtO21hcmdpbi1ib3R0b206MS4yNWVtfS5wcm9zZSA6d2hlcmUoW2NsYXNzfj1sZWFkXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1sZWFkKTttYXJnaW4tdG9wOjEuMmVtO21hcmdpbi1ib3R0b206MS4yZW07Zm9udC1zaXplOjEuMjVlbTtsaW5lLWhlaWdodDoxLjZ9LnByb3NlIDp3aGVyZShhKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWxpbmtzKTtmb250LXdlaWdodDo1MDA7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ucHJvc2UgOndoZXJlKHN0cm9uZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1ib2xkKTtmb250LXdlaWdodDo2MDB9LnByb3NlIDp3aGVyZShhIHN0cm9uZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKGJsb2NrcXVvdGUgc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUodGhlYWQgdGggc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOmluaGVyaXR9LnByb3NlIDp3aGVyZShvbCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMjVlbTttYXJnaW4tYm90dG9tOjEuMjVlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjYyNWVtO2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfS5wcm9zZSA6d2hlcmUob2xbdHlwZT1BXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6dXBwZXItYWxwaGF9LnByb3NlIDp3aGVyZShvbFt0eXBlPWFdKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYX0ucHJvc2UgOndoZXJlKG9sW3R5cGU9QSBzXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6dXBwZXItYWxwaGF9LnByb3NlIDp3aGVyZShvbFt0eXBlPWEgc10pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmxvd2VyLWFscGhhfS5wcm9zZSA6d2hlcmUob2xbdHlwZT1JXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6dXBwZXItcm9tYW59LnByb3NlIDp3aGVyZShvbFt0eXBlPWldKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2xpc3Qtc3R5bGUtdHlwZTpsb3dlci1yb21hbn0ucHJvc2UgOndoZXJlKG9sW3R5cGU9SSBzXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtsaXN0LXN0eWxlLXR5cGU6dXBwZXItcm9tYW59LnByb3NlIDp3aGVyZShvbFt0eXBlPWkgc10pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmxvd2VyLXJvbWFufS5wcm9zZSA6d2hlcmUob2xbdHlwZT1cIjFcIl0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9LnByb3NlIDp3aGVyZSh1bCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMjVlbTttYXJnaW4tYm90dG9tOjEuMjVlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjYyNWVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5wcm9zZSA6d2hlcmUob2xcdTAwM2VsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKTo6bWFya2Vye2NvbG9yOnZhcigtLXR3LXByb3NlLWNvdW50ZXJzKTtmb250LXdlaWdodDo0MDB9LnByb3NlIDp3aGVyZSh1bFx1MDAzZWxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpOjptYXJrZXJ7Y29sb3I6dmFyKC0tdHctcHJvc2UtYnVsbGV0cyl9LnByb3NlIDp3aGVyZShkdCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1oZWFkaW5ncyk7bWFyZ2luLXRvcDoxLjI1ZW07Zm9udC13ZWlnaHQ6NjAwfS5wcm9zZSA6d2hlcmUoaHIpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Ym9yZGVyLWNvbG9yOnZhcigtLXR3LXByb3NlLWhyKTtib3JkZXItdG9wLXdpZHRoOjFweDttYXJnaW4tdG9wOjNlbTttYXJnaW4tYm90dG9tOjNlbX0ucHJvc2UgOndoZXJlKGJsb2NrcXVvdGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6dmFyKC0tdHctcHJvc2UtcXVvdGVzKTtib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoOi4yNXJlbTtib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOnZhcigtLXR3LXByb3NlLXF1b3RlLWJvcmRlcnMpO3F1b3RlczpcIuKAnFwiXCLigJ1cIlwi4oCYXCJcIuKAmVwiO21hcmdpbi10b3A6MS42ZW07bWFyZ2luLWJvdHRvbToxLjZlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwfS5wcm9zZSA6d2hlcmUoYmxvY2txdW90ZSBwOmZpcnN0LW9mLXR5cGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YmVmb3Jle2NvbnRlbnQ6b3Blbi1xdW90ZX0ucHJvc2UgOndoZXJlKGJsb2NrcXVvdGUgcDpsYXN0LW9mLXR5cGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YWZ0ZXJ7Y29udGVudDpjbG9zZS1xdW90ZX0ucHJvc2UgOndoZXJlKGgxKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouODg4ODg5ZW07Zm9udC1zaXplOjIuMjVlbTtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4xMTExMX0ucHJvc2UgOndoZXJlKGgxIHN0cm9uZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0O2ZvbnQtd2VpZ2h0OjkwMH0ucHJvc2UgOndoZXJlKGgyKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjFlbTtmb250LXNpemU6MS41ZW07Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjEuMzMzMzN9LnByb3NlIDp3aGVyZShoMiBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo4MDB9LnByb3NlIDp3aGVyZShoMyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1oZWFkaW5ncyk7bWFyZ2luLXRvcDoxLjZlbTttYXJnaW4tYm90dG9tOi42ZW07Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS42fS5wcm9zZSA6d2hlcmUoaDMgc3Ryb25nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwfS5wcm9zZSA6d2hlcmUoaDQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6dmFyKC0tdHctcHJvc2UtaGVhZGluZ3MpO21hcmdpbi10b3A6MS41ZW07bWFyZ2luLWJvdHRvbTouNWVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjV9LnByb3NlIDp3aGVyZShoNCBzdHJvbmcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo3MDB9LnByb3NlIDp3aGVyZShpbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoyZW07bWFyZ2luLWJvdHRvbToyZW19LnByb3NlIDp3aGVyZShwaWN0dXJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MmVtO21hcmdpbi1ib3R0b206MmVtO2Rpc3BsYXk6YmxvY2t9LnByb3NlIDp3aGVyZSh2aWRlbyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjJlbX0ucHJvc2UgOndoZXJlKGtiZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1rYmQpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHZhcigtLXR3LXByb3NlLWtiZC1zaGFkb3dzKSwwIDNweCAwIHZhcigtLXR3LXByb3NlLWtiZC1zaGFkb3dzKTtwYWRkaW5nLXRvcDouMTg3NWVtO3BhZGRpbmctaW5saW5lLWVuZDouMzc1ZW07cGFkZGluZy1ib3R0b206LjE4NzVlbTtib3JkZXItcmFkaXVzOi4zMTI1cmVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi4zNzVlbTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouODc1ZW07Zm9udC13ZWlnaHQ6NTAwfS5wcm9zZSA6d2hlcmUoY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjp2YXIoLS10dy1wcm9zZS1jb2RlKTtmb250LXNpemU6Ljg3NWVtO2ZvbnQtd2VpZ2h0OjYwMH0ucHJvc2UgOndoZXJlKGNvZGUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSk6YmVmb3JlLC5wcm9zZSA6d2hlcmUoY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKTphZnRlcntjb250ZW50OlwiYFwifS5wcm9zZSA6d2hlcmUoYSBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUoaDEgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0fS5wcm9zZSA6d2hlcmUoaDIgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZTouODc1ZW19LnByb3NlIDp3aGVyZShoMyBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOi45ZW19LnByb3NlIDp3aGVyZShoNCBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUoYmxvY2txdW90ZSBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUodGhlYWQgdGggY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtjb2xvcjppbmhlcml0fS5wcm9zZSA6d2hlcmUocHJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLXByZS1jb2RlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXR3LXByb3NlLXByZS1iZyk7cGFkZGluZy10b3A6Ljg1NzE0M2VtO3BhZGRpbmctaW5saW5lLWVuZDoxLjE0Mjg2ZW07cGFkZGluZy1ib3R0b206Ljg1NzE0M2VtO2JvcmRlci1yYWRpdXM6LjM3NXJlbTttYXJnaW4tdG9wOjEuNzE0MjllbTttYXJnaW4tYm90dG9tOjEuNzE0MjllbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjE0Mjg2ZW07Zm9udC1zaXplOi44NzVlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS43MTQyOTtvdmVyZmxvdy14OmF1dG99LnByb3NlIDp3aGVyZShwcmUgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXdlaWdodDppbmhlcml0O2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2JhY2tncm91bmQtY29sb3I6IzAwMDA7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czowO3BhZGRpbmc6MH0ucHJvc2UgOndoZXJlKHByZSBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpOmJlZm9yZSwucHJvc2UgOndoZXJlKHByZSBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpOmFmdGVye2NvbnRlbnQ6bm9uZX0ucHJvc2UgOndoZXJlKHRhYmxlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3RhYmxlLWxheW91dDphdXRvO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoyZW07bWFyZ2luLWJvdHRvbToyZW07Zm9udC1zaXplOi44NzVlbTtsaW5lLWhlaWdodDoxLjcxNDI5fS5wcm9zZSA6d2hlcmUodGhlYWQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS10dy1wcm9zZS10aC1ib3JkZXJzKX0ucHJvc2UgOndoZXJlKHRoZWFkIHRoKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWhlYWRpbmdzKTt2ZXJ0aWNhbC1hbGlnbjpib3R0b207cGFkZGluZy1pbmxpbmUtZW5kOi41NzE0MjllbTtwYWRkaW5nLWJvdHRvbTouNTcxNDI5ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjU3MTQyOWVtO2ZvbnQtd2VpZ2h0OjYwMH0ucHJvc2UgOndoZXJlKHRib2R5IHRyKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2JvcmRlci1ib3R0b20td2lkdGg6MXB4O2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tdHctcHJvc2UtdGQtYm9yZGVycyl9LnByb3NlIDp3aGVyZSh0Ym9keSB0cjpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2JvcmRlci1ib3R0b20td2lkdGg6MH0ucHJvc2UgOndoZXJlKHRib2R5IHRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5wcm9zZSA6d2hlcmUodGZvb3QpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS10dy1wcm9zZS10aC1ib3JkZXJzKX0ucHJvc2UgOndoZXJlKHRmb290IHRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3ZlcnRpY2FsLWFsaWduOnRvcH0ucHJvc2UgOndoZXJlKHRoLHRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3RleHQtYWxpZ246c3RhcnR9LnByb3NlIDp3aGVyZShmaWd1cmVcdTAwM2UqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LnByb3NlIDp3aGVyZShmaWdjYXB0aW9uKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2NvbG9yOnZhcigtLXR3LXByb3NlLWNhcHRpb25zKTttYXJnaW4tdG9wOi44NTcxNDNlbTtmb250LXNpemU6Ljg3NWVtO2xpbmUtaGVpZ2h0OjEuNDI4NTd9LnByb3Nley0tdHctcHJvc2UtYm9keTojMzY0MTUzOy0tdHctcHJvc2UtaGVhZGluZ3M6IzEwMTgyODstLXR3LXByb3NlLWxlYWQ6IzRhNTU2NTstLXR3LXByb3NlLWxpbmtzOiMxMDE4Mjg7LS10dy1wcm9zZS1ib2xkOiMxMDE4Mjg7LS10dy1wcm9zZS1jb3VudGVyczojNmE3MjgyOy0tdHctcHJvc2UtYnVsbGV0czojZDFkNWRjOy0tdHctcHJvc2UtaHI6I2U1ZTdlYjstLXR3LXByb3NlLXF1b3RlczojMTAxODI4Oy0tdHctcHJvc2UtcXVvdGUtYm9yZGVyczojZTVlN2ViOy0tdHctcHJvc2UtY2FwdGlvbnM6IzZhNzI4MjstLXR3LXByb3NlLWtiZDojMTAxODI4Oy0tdHctcHJvc2Uta2JkLXNoYWRvd3M6IzEwMTgyODFhOy0tdHctcHJvc2UtY29kZTojMTAxODI4Oy0tdHctcHJvc2UtcHJlLWNvZGU6I2U1ZTdlYjstLXR3LXByb3NlLXByZS1iZzojMWUyOTM5Oy0tdHctcHJvc2UtdGgtYm9yZGVyczojZDFkNWRjOy0tdHctcHJvc2UtdGQtYm9yZGVyczojZTVlN2ViOy0tdHctcHJvc2UtaW52ZXJ0LWJvZHk6I2QxZDVkYzstLXR3LXByb3NlLWludmVydC1oZWFkaW5nczojZmZmOy0tdHctcHJvc2UtaW52ZXJ0LWxlYWQ6Izk5YTFhZjstLXR3LXByb3NlLWludmVydC1saW5rczojZmZmOy0tdHctcHJvc2UtaW52ZXJ0LWJvbGQ6I2ZmZjstLXR3LXByb3NlLWludmVydC1jb3VudGVyczojOTlhMWFmOy0tdHctcHJvc2UtaW52ZXJ0LWJ1bGxldHM6IzRhNTU2NTstLXR3LXByb3NlLWludmVydC1ocjojMzY0MTUzOy0tdHctcHJvc2UtaW52ZXJ0LXF1b3RlczojZjNmNGY2Oy0tdHctcHJvc2UtaW52ZXJ0LXF1b3RlLWJvcmRlcnM6IzM2NDE1MzstLXR3LXByb3NlLWludmVydC1jYXB0aW9uczojOTlhMWFmOy0tdHctcHJvc2UtaW52ZXJ0LWtiZDojZmZmOy0tdHctcHJvc2UtaW52ZXJ0LWtiZC1zaGFkb3dzOiNmZmZmZmYxYTstLXR3LXByb3NlLWludmVydC1jb2RlOiNmZmY7LS10dy1wcm9zZS1pbnZlcnQtcHJlLWNvZGU6I2QxZDVkYzstLXR3LXByb3NlLWludmVydC1wcmUtYmc6IzAwMDAwMDgwOy0tdHctcHJvc2UtaW52ZXJ0LXRoLWJvcmRlcnM6IzRhNTU2NTstLXR3LXByb3NlLWludmVydC10ZC1ib3JkZXJzOiMzNjQxNTM7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MS43NX1Ac3VwcG9ydHMgKGNvbG9yOmxhYigwJSAwIDApKXsucHJvc2V7LS10dy1wcm9zZS1ib2R5OmxhYigyNy4xMTM0JSAtLjk1NjQwMSAtMTIuMzIyNCk7LS10dy1wcm9zZS1oZWFkaW5nczpsYWIoOC4xMTg5NyUgLjgxMTI3OSAtMTIuMjU0KTstLXR3LXByb3NlLWxlYWQ6bGFiKDM1LjYzMzclIC0xLjU4Njk3IC0xMC44NDI1KTstLXR3LXByb3NlLWxpbmtzOmxhYig4LjExODk3JSAuODExMjc5IC0xMi4yNTQpOy0tdHctcHJvc2UtYm9sZDpsYWIoOC4xMTg5NyUgLjgxMTI3OSAtMTIuMjU0KTstLXR3LXByb3NlLWNvdW50ZXJzOmxhYig0Ny43ODQxJSAtLjM5MzE4MiAtMTAuMDI2OCk7LS10dy1wcm9zZS1idWxsZXRzOmxhYig4NS4xMjM2JSAtLjYxMjI1OSAtMy43MTM4KTstLXR3LXByb3NlLWhyOmxhYig5MS42MjI5JSAtLjE1OTExNSAtMi4yNjc5MSk7LS10dy1wcm9zZS1xdW90ZXM6bGFiKDguMTE4OTclIC44MTEyNzkgLTEyLjI1NCk7LS10dy1wcm9zZS1xdW90ZS1ib3JkZXJzOmxhYig5MS42MjI5JSAtLjE1OTExNSAtMi4yNjc5MSk7LS10dy1wcm9zZS1jYXB0aW9uczpsYWIoNDcuNzg0MSUgLS4zOTMxODIgLTEwLjAyNjgpOy0tdHctcHJvc2Uta2JkOmxhYig4LjExODk3JSAuODExMjc5IC0xMi4yNTQpOy0tdHctcHJvc2Uta2JkLXNoYWRvd3M6bGFiKDguMTE4OTclIC44MTEyNzkgLTEyLjI1NC8uMSk7LS10dy1wcm9zZS1jb2RlOmxhYig4LjExODk3JSAuODExMjc5IC0xMi4yNTQpOy0tdHctcHJvc2UtcHJlLWNvZGU6bGFiKDkxLjYyMjklIC0uMTU5MTE1IC0yLjI2NzkxKTstLXR3LXByb3NlLXByZS1iZzpsYWIoMTYuMTA1MSUgLTEuMTgyMzkgLTExLjc1MzMpOy0tdHctcHJvc2UtdGgtYm9yZGVyczpsYWIoODUuMTIzNiUgLS42MTIyNTkgLTMuNzEzOCk7LS10dy1wcm9zZS10ZC1ib3JkZXJzOmxhYig5MS42MjI5JSAtLjE1OTExNSAtMi4yNjc5MSk7LS10dy1wcm9zZS1pbnZlcnQtYm9keTpsYWIoODUuMTIzNiUgLS42MTIyNTkgLTMuNzEzOCk7LS10dy1wcm9zZS1pbnZlcnQtbGVhZDpsYWIoNjUuOTI2OSUgLS44MzI3MDcgLTguMTc0NzMpOy0tdHctcHJvc2UtaW52ZXJ0LWNvdW50ZXJzOmxhYig2NS45MjY5JSAtLjgzMjcwNyAtOC4xNzQ3Myk7LS10dy1wcm9zZS1pbnZlcnQtYnVsbGV0czpsYWIoMzUuNjMzNyUgLTEuNTg2OTcgLTEwLjg0MjUpOy0tdHctcHJvc2UtaW52ZXJ0LWhyOmxhYigyNy4xMTM0JSAtLjk1NjQwMSAtMTIuMzIyNCk7LS10dy1wcm9zZS1pbnZlcnQtcXVvdGVzOmxhYig5Ni4xNTk2JSAtLjA4MjM0MzggLTEuMTM1NzUpOy0tdHctcHJvc2UtaW52ZXJ0LXF1b3RlLWJvcmRlcnM6bGFiKDI3LjExMzQlIC0uOTU2NDAxIC0xMi4zMjI0KTstLXR3LXByb3NlLWludmVydC1jYXB0aW9uczpsYWIoNjUuOTI2OSUgLS44MzI3MDcgLTguMTc0NzMpOy0tdHctcHJvc2UtaW52ZXJ0LXByZS1jb2RlOmxhYig4NS4xMjM2JSAtLjYxMjI1OSAtMy43MTM4KTstLXR3LXByb3NlLWludmVydC10aC1ib3JkZXJzOmxhYigzNS42MzM3JSAtMS41ODY5NyAtMTAuODQyNSk7LS10dy1wcm9zZS1pbnZlcnQtdGQtYm9yZGVyczpsYWIoMjcuMTEzNCUgLS45NTY0MDEgLTEyLjMyMjQpfX0ucHJvc2UgOndoZXJlKHBpY3R1cmVcdTAwM2VpbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJvc2UgOndoZXJlKGxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjVlbTttYXJnaW4tYm90dG9tOi41ZW19LnByb3NlIDp3aGVyZShvbFx1MDAzZWxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUodWxcdTAwM2VsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1zdGFydDouMzc1ZW19LnByb3NlIDp3aGVyZSgucHJvc2VcdTAwM2V1bFx1MDAzZWxpIHApOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNzVlbTttYXJnaW4tYm90dG9tOi43NWVtfS5wcm9zZSA6d2hlcmUoLnByb3NlXHUwMDNldWxcdTAwM2VsaVx1MDAzZXA6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjI1ZW19LnByb3NlIDp3aGVyZSgucHJvc2VcdTAwM2V1bFx1MDAzZWxpXHUwMDNlcDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi1ib3R0b206MS4yNWVtfS5wcm9zZSA6d2hlcmUoLnByb3NlXHUwMDNlb2xcdTAwM2VsaVx1MDAzZXA6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjI1ZW19LnByb3NlIDp3aGVyZSgucHJvc2VcdTAwM2VvbFx1MDAzZWxpXHUwMDNlcDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi1ib3R0b206MS4yNWVtfS5wcm9zZSA6d2hlcmUodWwgdWwsdWwgb2wsb2wgdWwsb2wgb2wpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNzVlbTttYXJnaW4tYm90dG9tOi43NWVtfS5wcm9zZSA6d2hlcmUoZGwpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjI1ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW19LnByb3NlIDp3aGVyZShkZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi41ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6MS42MjVlbX0ucHJvc2UgOndoZXJlKGhyKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlIDp3aGVyZShoMisqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZSA6d2hlcmUoaDMrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UgOndoZXJlKGg0KyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowfS5wcm9zZSA6d2hlcmUodGhlYWQgdGg6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MH0ucHJvc2UgOndoZXJlKHRoZWFkIHRoOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnByb3NlIDp3aGVyZSh0Ym9keSB0ZCx0Zm9vdCB0ZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLXRvcDouNTcxNDI5ZW07cGFkZGluZy1pbmxpbmUtZW5kOi41NzE0MjllbTtwYWRkaW5nLWJvdHRvbTouNTcxNDI5ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjU3MTQyOWVtfS5wcm9zZSA6d2hlcmUodGJvZHkgdGQ6Zmlyc3QtY2hpbGQsdGZvb3QgdGQ6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MH0ucHJvc2UgOndoZXJlKHRib2R5IHRkOmxhc3QtY2hpbGQsdGZvb3QgdGQ6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1lbmQ6MH0ucHJvc2UgOndoZXJlKGZpZ3VyZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjJlbX0ucHJvc2UgOndoZXJlKC5wcm9zZVx1MDAzZTpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjB9LnByb3NlIDp3aGVyZSgucHJvc2VcdTAwM2U6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjB9LnByb3NlLWxne2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc3Nzc4fS5wcm9zZS1sZyA6d2hlcmUocCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbTttYXJnaW4tYm90dG9tOjEuMzMzMzNlbX0ucHJvc2UtbGcgOndoZXJlKFtjbGFzc349bGVhZF0pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjA5MDkxZW07bWFyZ2luLWJvdHRvbToxLjA5MDkxZW07Zm9udC1zaXplOjEuMjIyMjJlbTtsaW5lLWhlaWdodDoxLjQ1NDU1fS5wcm9zZS1sZyA6d2hlcmUoYmxvY2txdW90ZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNjY2NjdlbTttYXJnaW4tYm90dG9tOjEuNjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW19LnByb3NlLWxnIDp3aGVyZShoMSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouODMzMzMzZW07Zm9udC1zaXplOjIuNjY2NjdlbTtsaW5lLWhlaWdodDoxfS5wcm9zZS1sZyA6d2hlcmUoaDIpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjg2NjY3ZW07bWFyZ2luLWJvdHRvbToxLjA2NjY3ZW07Zm9udC1zaXplOjEuNjY2NjdlbTtsaW5lLWhlaWdodDoxLjMzMzMzfS5wcm9zZS1sZyA6d2hlcmUoaDMpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjY2NjY3ZW07bWFyZ2luLWJvdHRvbTouNjY2NjY3ZW07Zm9udC1zaXplOjEuMzMzMzNlbTtsaW5lLWhlaWdodDoxLjV9LnByb3NlLWxnIDp3aGVyZShoNCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNzc3NzhlbTttYXJnaW4tYm90dG9tOi40NDQ0NDRlbTtsaW5lLWhlaWdodDoxLjU1NTU2fS5wcm9zZS1sZyA6d2hlcmUoaW1nKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1sZyA6d2hlcmUocGljdHVyZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNzc3NzhlbTttYXJnaW4tYm90dG9tOjEuNzc3NzhlbX0ucHJvc2UtbGcgOndoZXJlKHBpY3R1cmVcdTAwM2VpbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJvc2UtbGcgOndoZXJlKHZpZGVvKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS43Nzc3OGVtO21hcmdpbi1ib3R0b206MS43Nzc3OGVtfS5wcm9zZS1sZyA6d2hlcmUoa2JkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOi4yMjIyMjJlbTtwYWRkaW5nLWlubGluZS1lbmQ6LjQ0NDQ0NGVtO3BhZGRpbmctYm90dG9tOi4yMjIyMjJlbTtib3JkZXItcmFkaXVzOi4zMTI1cmVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi40NDQ0NDRlbTtmb250LXNpemU6Ljg4ODg4OWVtfS5wcm9zZS1sZyA6d2hlcmUoY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg4ODg4OWVtfS5wcm9zZS1sZyA6d2hlcmUoaDIgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg2NjY2N2VtfS5wcm9zZS1sZyA6d2hlcmUoaDMgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg3NWVtfS5wcm9zZS1sZyA6d2hlcmUocHJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOjFlbTtwYWRkaW5nLWlubGluZS1lbmQ6MS41ZW07cGFkZGluZy1ib3R0b206MWVtO2JvcmRlci1yYWRpdXM6LjM3NXJlbTttYXJnaW4tdG9wOjJlbTttYXJnaW4tYm90dG9tOjJlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjVlbTtmb250LXNpemU6Ljg4ODg4OWVtO2xpbmUtaGVpZ2h0OjEuNzV9LnByb3NlLWxnIDp3aGVyZShvbCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UtbGcgOndoZXJlKHVsKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4zMzMzM2VtO21hcmdpbi1ib3R0b206MS4zMzMzM2VtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjEuNTU1NTZlbX0ucHJvc2UtbGcgOndoZXJlKGxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjY2NjY2N2VtO21hcmdpbi1ib3R0b206LjY2NjY2N2VtfS5wcm9zZS1sZyA6d2hlcmUob2xcdTAwM2VsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UtbGcgOndoZXJlKHVsXHUwMDNlbGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjQ0NDQ0NGVtfS5wcm9zZS1sZyA6d2hlcmUoLnByb3NlLWxnXHUwMDNldWxcdTAwM2VsaSBwKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6Ljg4ODg4OWVtO21hcmdpbi1ib3R0b206Ljg4ODg4OWVtfS5wcm9zZS1sZyA6d2hlcmUoLnByb3NlLWxnXHUwMDNldWxcdTAwM2VsaVx1MDAzZXA6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjMzMzMzZW19LnByb3NlLWxnIDp3aGVyZSgucHJvc2UtbGdcdTAwM2V1bFx1MDAzZWxpXHUwMDNlcDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi1ib3R0b206MS4zMzMzM2VtfS5wcm9zZS1sZyA6d2hlcmUoLnByb3NlLWxnXHUwMDNlb2xcdTAwM2VsaVx1MDAzZXA6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjMzMzMzZW19LnByb3NlLWxnIDp3aGVyZSgucHJvc2UtbGdcdTAwM2VvbFx1MDAzZWxpXHUwMDNlcDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi1ib3R0b206MS4zMzMzM2VtfS5wcm9zZS1sZyA6d2hlcmUodWwgdWwsdWwgb2wsb2wgdWwsb2wgb2wpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouODg4ODg5ZW07bWFyZ2luLWJvdHRvbTouODg4ODg5ZW19LnByb3NlLWxnIDp3aGVyZShkbCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMzMzMzNlbTttYXJnaW4tYm90dG9tOjEuMzMzMzNlbX0ucHJvc2UtbGcgOndoZXJlKGR0KTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4zMzMzM2VtfS5wcm9zZS1sZyA6d2hlcmUoZGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDouNjY2NjY3ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6MS41NTU1NmVtfS5wcm9zZS1sZyA6d2hlcmUoaHIpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDozLjExMTExZW07bWFyZ2luLWJvdHRvbTozLjExMTExZW19LnByb3NlLWxnIDp3aGVyZShocisqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1sZyA6d2hlcmUoaDIrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2UtbGcgOndoZXJlKGgzKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLWxnIDp3aGVyZShoNCsqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MH0ucHJvc2UtbGcgOndoZXJlKHRhYmxlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2ZvbnQtc2l6ZTouODg4ODg5ZW07bGluZS1oZWlnaHQ6MS41fS5wcm9zZS1sZyA6d2hlcmUodGhlYWQgdGgpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOi43NWVtO3BhZGRpbmctYm90dG9tOi43NWVtO3BhZGRpbmctaW5saW5lLXN0YXJ0Oi43NWVtfS5wcm9zZS1sZyA6d2hlcmUodGhlYWQgdGg6Zmlyc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MH0ucHJvc2UtbGcgOndoZXJlKHRoZWFkIHRoOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnByb3NlLWxnIDp3aGVyZSh0Ym9keSB0ZCx0Zm9vdCB0ZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLXRvcDouNzVlbTtwYWRkaW5nLWlubGluZS1lbmQ6Ljc1ZW07cGFkZGluZy1ib3R0b206Ljc1ZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6Ljc1ZW19LnByb3NlLWxnIDp3aGVyZSh0Ym9keSB0ZDpmaXJzdC1jaGlsZCx0Zm9vdCB0ZDpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtwYWRkaW5nLWlubGluZS1zdGFydDowfS5wcm9zZS1sZyA6d2hlcmUodGJvZHkgdGQ6bGFzdC1jaGlsZCx0Zm9vdCB0ZDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLWVuZDowfS5wcm9zZS1sZyA6d2hlcmUoZmlndXJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS43Nzc3OGVtO21hcmdpbi1ib3R0b206MS43Nzc3OGVtfS5wcm9zZS1sZyA6d2hlcmUoZmlndXJlXHUwMDNlKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5wcm9zZS1sZyA6d2hlcmUoZmlnY2FwdGlvbik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjFlbTtmb250LXNpemU6Ljg4ODg4OWVtO2xpbmUtaGVpZ2h0OjEuNX0ucHJvc2UtbGcgOndoZXJlKC5wcm9zZS1sZ1x1MDAzZTpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjB9LnByb3NlLWxnIDp3aGVyZSgucHJvc2UtbGdcdTAwM2U6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjB9LnByb3NlLXNte2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNzE0Mjl9LnByb3NlLXNtIDp3aGVyZShwKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4xNDI4NmVtO21hcmdpbi1ib3R0b206MS4xNDI4NmVtfS5wcm9zZS1zbSA6d2hlcmUoW2NsYXNzfj1sZWFkXSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi44ODg4ODllbTttYXJnaW4tYm90dG9tOi44ODg4ODllbTtmb250LXNpemU6MS4yODU3MWVtO2xpbmUtaGVpZ2h0OjEuNTU1NTZ9LnByb3NlLXNtIDp3aGVyZShibG9ja3F1b3RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4zMzMzM2VtO21hcmdpbi1ib3R0b206MS4zMzMzM2VtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjEuMTExMTFlbX0ucHJvc2Utc20gOndoZXJlKGgxKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOi44ZW07Zm9udC1zaXplOjIuMTQyODZlbTtsaW5lLWhlaWdodDoxLjJ9LnByb3NlLXNtIDp3aGVyZShoMik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuNmVtO21hcmdpbi1ib3R0b206LjhlbTtmb250LXNpemU6MS40Mjg1N2VtO2xpbmUtaGVpZ2h0OjEuNH0ucHJvc2Utc20gOndoZXJlKGgzKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS41NTU1NmVtO21hcmdpbi1ib3R0b206LjQ0NDQ0NGVtO2ZvbnQtc2l6ZToxLjI4NTcxZW07bGluZS1oZWlnaHQ6MS41NTU1Nn0ucHJvc2Utc20gOndoZXJlKGg0KTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS40Mjg1N2VtO21hcmdpbi1ib3R0b206LjU3MTQyOWVtO2xpbmUtaGVpZ2h0OjEuNDI4NTd9LnByb3NlLXNtIDp3aGVyZShpbWcpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZShwaWN0dXJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS43MTQyOWVtO21hcmdpbi1ib3R0b206MS43MTQyOWVtfS5wcm9zZS1zbSA6d2hlcmUocGljdHVyZVx1MDAzZWltZyk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5wcm9zZS1zbSA6d2hlcmUodmlkZW8pOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjcxNDI5ZW07bWFyZ2luLWJvdHRvbToxLjcxNDI5ZW19LnByb3NlLXNtIDp3aGVyZShrYmQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy10b3A6LjE0Mjg1N2VtO3BhZGRpbmctaW5saW5lLWVuZDouMzU3MTQzZW07cGFkZGluZy1ib3R0b206LjE0Mjg1N2VtO2JvcmRlci1yYWRpdXM6LjMxMjVyZW07cGFkZGluZy1pbmxpbmUtc3RhcnQ6LjM1NzE0M2VtO2ZvbnQtc2l6ZTouODU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2ZvbnQtc2l6ZTouODU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShoMiBjb2RlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe2ZvbnQtc2l6ZTouOWVtfS5wcm9zZS1zbSA6d2hlcmUoaDMgY29kZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg4ODg4OWVtfS5wcm9zZS1zbSA6d2hlcmUocHJlKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctdG9wOi42NjY2NjdlbTtwYWRkaW5nLWlubGluZS1lbmQ6MWVtO3BhZGRpbmctYm90dG9tOi42NjY2NjdlbTtib3JkZXItcmFkaXVzOi4yNXJlbTttYXJnaW4tdG9wOjEuNjY2NjdlbTttYXJnaW4tYm90dG9tOjEuNjY2NjdlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxZW07Zm9udC1zaXplOi44NTcxNDNlbTtsaW5lLWhlaWdodDoxLjY2NjY3fS5wcm9zZS1zbSA6d2hlcmUob2wpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZSh1bCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMTQyODZlbTttYXJnaW4tYm90dG9tOjEuMTQyODZlbTtwYWRkaW5nLWlubGluZS1zdGFydDoxLjU3MTQzZW19LnByb3NlLXNtIDp3aGVyZShsaSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi4yODU3MTRlbTttYXJnaW4tYm90dG9tOi4yODU3MTRlbX0ucHJvc2Utc20gOndoZXJlKG9sXHUwMDNlbGkpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZSh1bFx1MDAzZWxpKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0Oi40Mjg1NzFlbX0ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbVx1MDAzZXVsXHUwMDNlbGkgcCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOi41NzE0MjllbTttYXJnaW4tYm90dG9tOi41NzE0MjllbX0ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbVx1MDAzZXVsXHUwMDNlbGlcdTAwM2VwOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4xNDI4NmVtfS5wcm9zZS1zbSA6d2hlcmUoLnByb3NlLXNtXHUwMDNldWxcdTAwM2VsaVx1MDAzZXA6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjEuMTQyODZlbX0ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbVx1MDAzZW9sXHUwMDNlbGlcdTAwM2VwOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MS4xNDI4NmVtfS5wcm9zZS1zbSA6d2hlcmUoLnByb3NlLXNtXHUwMDNlb2xcdTAwM2VsaVx1MDAzZXA6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjEuMTQyODZlbX0ucHJvc2Utc20gOndoZXJlKHVsIHVsLHVsIG9sLG9sIHVsLG9sIG9sKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjU3MTQyOWVtO21hcmdpbi1ib3R0b206LjU3MTQyOWVtfS5wcm9zZS1zbSA6d2hlcmUoZGwpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjE0Mjg2ZW07bWFyZ2luLWJvdHRvbToxLjE0Mjg2ZW19LnByb3NlLXNtIDp3aGVyZShkdCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjEuMTQyODZlbX0ucHJvc2Utc20gOndoZXJlKGRkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjI4NTcxNGVtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjEuNTcxNDNlbX0ucHJvc2Utc20gOndoZXJlKGhyKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6Mi44NTcxNGVtO21hcmdpbi1ib3R0b206Mi44NTcxNGVtfS5wcm9zZS1zbSA6d2hlcmUoaHIrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKSwucHJvc2Utc20gOndoZXJlKGgyKyopOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSksLnByb3NlLXNtIDp3aGVyZShoMysqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpLC5wcm9zZS1zbSA6d2hlcmUoaDQrKik6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjB9LnByb3NlLXNtIDp3aGVyZSh0YWJsZSk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXtmb250LXNpemU6Ljg1NzE0M2VtO2xpbmUtaGVpZ2h0OjEuNX0ucHJvc2Utc20gOndoZXJlKHRoZWFkIHRoKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLWVuZDoxZW07cGFkZGluZy1ib3R0b206LjY2NjY2N2VtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjFlbX0ucHJvc2Utc20gOndoZXJlKHRoZWFkIHRoOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LnByb3NlLXNtIDp3aGVyZSh0aGVhZCB0aDpsYXN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLWVuZDowfS5wcm9zZS1zbSA6d2hlcmUodGJvZHkgdGQsdGZvb3QgdGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy10b3A6LjY2NjY2N2VtO3BhZGRpbmctaW5saW5lLWVuZDoxZW07cGFkZGluZy1ib3R0b206LjY2NjY2N2VtO3BhZGRpbmctaW5saW5lLXN0YXJ0OjFlbX0ucHJvc2Utc20gOndoZXJlKHRib2R5IHRkOmZpcnN0LWNoaWxkLHRmb290IHRkOmZpcnN0LWNoaWxkKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe3BhZGRpbmctaW5saW5lLXN0YXJ0OjB9LnByb3NlLXNtIDp3aGVyZSh0Ym9keSB0ZDpsYXN0LWNoaWxkLHRmb290IHRkOmxhc3QtY2hpbGQpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7cGFkZGluZy1pbmxpbmUtZW5kOjB9LnByb3NlLXNtIDp3aGVyZShmaWd1cmUpOm5vdCg6d2hlcmUoW2NsYXNzfj1ub3QtcHJvc2VdLFtjbGFzc349bm90LXByb3NlXSAqKSl7bWFyZ2luLXRvcDoxLjcxNDI5ZW07bWFyZ2luLWJvdHRvbToxLjcxNDI5ZW19LnByb3NlLXNtIDp3aGVyZShmaWd1cmVcdTAwM2UqKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LnByb3NlLXNtIDp3aGVyZShmaWdjYXB0aW9uKTpub3QoOndoZXJlKFtjbGFzc349bm90LXByb3NlXSxbY2xhc3N+PW5vdC1wcm9zZV0gKikpe21hcmdpbi10b3A6LjY2NjY2N2VtO2ZvbnQtc2l6ZTouODU3MTQzZW07bGluZS1oZWlnaHQ6MS4zMzMzM30ucHJvc2Utc20gOndoZXJlKC5wcm9zZS1zbVx1MDAzZTpmaXJzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tdG9wOjB9LnByb3NlLXNtIDp3aGVyZSgucHJvc2Utc21cdTAwM2U6bGFzdC1jaGlsZCk6bm90KDp3aGVyZShbY2xhc3N+PW5vdC1wcm9zZV0sW2NsYXNzfj1ub3QtcHJvc2VdICopKXttYXJnaW4tYm90dG9tOjB9Li1tdC0xe21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSotMSl9Lm10LTBcXC41e21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9Lm10LTF7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tdC0ye21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ubXQtM3ttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqMyl9Lm10LTR7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5tdC02e21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0ubXQtOHttYXJnaW4tdG9wOmNhbGModmFyKC0tc3BhY2luZykqOCl9Lm10LTEwe21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9Lm10LTEye21hcmdpbi10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMil9Lm10LWF1dG97bWFyZ2luLXRvcDphdXRvfS5tci0xe21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tci0ye21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5tci04e21hcmdpbi1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjgpfS4tbWItNHttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqLTQpfS5tYi0xe21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoxKX0ubWItMVxcLjV7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9Lm1iLTJ7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5tYi0ze21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ubWItNHttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqNCl9Lm1iLTZ7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5tYi04e21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0ubWItMTB7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKX0ubWwtMXttYXJnaW4tbGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tbC0ye21hcmdpbi1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMil9Lm1sLWF1dG97bWFyZ2luLWxlZnQ6YXV0b30ubGluZS1jbGFtcC0yey13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubm8tc2Nyb2xsYmFyey1tcy1vdmVyZmxvdy1zdHlsZTpub25lO3Njcm9sbGJhci13aWR0aDpub25lfS5uby1zY3JvbGxiYXI6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uYmxvY2t7ZGlzcGxheTpibG9ja30uZmxleHtkaXNwbGF5OmZsZXh9LmdyaWR7ZGlzcGxheTpncmlkfS5oaWRkZW57ZGlzcGxheTpub25lfS5pbmxpbmV7ZGlzcGxheTppbmxpbmV9LmlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9ja30uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0ubGlzdC1pdGVte2Rpc3BsYXk6bGlzdC1pdGVtfS50YWJsZXtkaXNwbGF5OnRhYmxlfS50YWJsZS1jYXB0aW9ue2Rpc3BsYXk6dGFibGUtY2FwdGlvbn0udGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGx9LnRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uZmllbGQtc2l6aW5nLWNvbnRlbnR7ZmllbGQtc2l6aW5nOmNvbnRlbnR9LmFzcGVjdC1cXFsxNlxcLzlcXF17YXNwZWN0LXJhdGlvOjE2Lzl9LmFzcGVjdC1cXFs2MTBcXC8yMDhcXF17YXNwZWN0LXJhdGlvOjYxMC8yMDh9LmFzcGVjdC1zcXVhcmV7YXNwZWN0LXJhdGlvOjF9LnNpemUtM1xcLjV7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMuNSl9LnNpemUtNHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5zaXplLTV7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0uc2l6ZS02e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNik7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNil9LnNpemUtN3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjcpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjcpfS5zaXplLTh7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uc2l6ZS05e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqOSk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOSl9LnNpemUtMTB7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTApfS5zaXplLTE0e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMTQpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjE0KX0uc2l6ZS1mdWxse3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmgtMntoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uaC0yXFwuNXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5oLTN7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMyl9LmgtM1xcLjV7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMy41KX0uaC00e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5oLTV7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNSl9LmgtNntoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0uaC03e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjcpfS5oLTh7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqOCl9LmgtOFxcIXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KSFpbXBvcnRhbnR9LmgtOXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo5KX0uaC0xMHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LmgtMTJ7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTIpfS5oLTE0e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjE0KX0uaC0xNntoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNil9LmgtMjB7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMjApfS5oLTI0e2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjI0KX0uaC00MHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0MCl9LmgtNjR7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNjQpfS5oLTgwe2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjgwKX0uaC1cXFs4MHB4XFxde2hlaWdodDo4MHB4fS5oLVxcWzMwMHB4XFxde2hlaWdodDozMDBweH0uaC1cXFszNjBweFxcXXtoZWlnaHQ6MzYwcHh9LmgtXFxbNDQwcHhcXF17aGVpZ2h0OjQ0MHB4fS5oLVxcW2NhbGNcXCgxMDBcXCUtMXB4XFwpXFxde2hlaWdodDpjYWxjKDEwMCUgLSAxcHgpfS5oLWF1dG97aGVpZ2h0OmF1dG99LmgtZnVsbHtoZWlnaHQ6MTAwJX0uaC1weHtoZWlnaHQ6MXB4fS5oLXNjcmVlbntoZWlnaHQ6MTAwdmh9Lm1heC1oLVxcKC0tYXZhaWxhYmxlLWhlaWdodFxcKXttYXgtaGVpZ2h0OnZhcigtLWF2YWlsYWJsZS1oZWlnaHQpfS5tYXgtaC02NHttYXgtaGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNjQpfS5tYXgtaC03MnttYXgtaGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNzIpfS5taW4taC0xNnttaW4taGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMTYpfS5taW4taC1cXFs2MHZoXFxde21pbi1oZWlnaHQ6NjB2aH0ubWluLWgtc2NyZWVue21pbi1oZWlnaHQ6MTAwdmh9LnctXFwoLS1hbmNob3Itd2lkdGhcXCl7d2lkdGg6dmFyKC0tYW5jaG9yLXdpZHRoKX0udy0xe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMSl9LnctMnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS53LTN7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0udy0zXFwuNXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjMuNSl9LnctNHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS53LTV7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0udy02e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNil9LnctN3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjcpfS53LTh7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0udy05e3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqOSl9LnctMTB7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LnctMTJ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMil9LnctMTR7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNCl9LnctMTZ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNil9LnctMjB7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyMCl9LnctMjR7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyNCl9LnctMjh7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyOCl9LnctMzJ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozMil9LnctNDB7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0MCl9LnctNDR7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0NCl9LnctNDh7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0OCl9LnctNTJ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1Mil9LnctNTZ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1Nil9LnctNzJ7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo3Mil9LnctXFxbMTIwcHhcXF17d2lkdGg6MTIwcHh9LnctXFxbMTQwcHhcXF17d2lkdGg6MTQwcHh9LnctXFxbY2FsY1xcKFxcKDEwMFxcJS0ycmVtXFwpXFwvM1xcKVxcXXt3aWR0aDpjYWxjKDMzLjMzMzMlIC0gLjY2NjY2N3JlbSl9LnctYXV0b3t3aWR0aDphdXRvfS53LWZpdHt3aWR0aDpmaXQtY29udGVudH0udy1mdWxse3dpZHRoOjEwMCV9LnctcHh7d2lkdGg6MXB4fS5tYXgtdy0we21heC13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5tYXgtdy0yeGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci0yeGwpfS5tYXgtdy0zeGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci0zeGwpfS5tYXgtdy00eGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci00eGwpfS5tYXgtdy03eGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci03eGwpfS5tYXgtdy00OHttYXgtd2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0OCl9Lm1heC13LVxcWzIwMHB4XFxde21heC13aWR0aDoyMDBweH0ubWF4LXctXFxbY2FsY1xcKDEwMFxcJS0ycmVtXFwpXFxde21heC13aWR0aDpjYWxjKDEwMCUgLSAycmVtKX0ubWF4LXctXFxbY2FsY1xcKDEwMHZ3LTJyZW1cXClcXF17bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAycmVtKX0ubWF4LXctbGd7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci1sZyl9Lm1heC13LW1ke21heC13aWR0aDp2YXIoLS1jb250YWluZXItbWQpfS5tYXgtdy1ub25le21heC13aWR0aDpub25lfS5tYXgtdy1zbXttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLXNtKX0ubWF4LXcteGx7bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci14bCl9Lm1heC13LXhze21heC13aWR0aDp2YXIoLS1jb250YWluZXIteHMpfS5taW4tdy0we21pbi13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5taW4tdy0zMnttaW4td2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozMil9Lm1pbi13LTY0e21pbi13aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjY0KX0ubWluLXctXFxbMnJlbVxcXXttaW4td2lkdGg6MnJlbX0ubWluLXctXFxbOTZweFxcXXttaW4td2lkdGg6OTZweH0ubWluLXctXFxbMTUwcHhcXF17bWluLXdpZHRoOjE1MHB4fS5mbGV4LTF7ZmxleDoxfS5zaHJpbmstMHtmbGV4LXNocmluazowfS50YWJsZS1maXhlZHt0YWJsZS1sYXlvdXQ6Zml4ZWR9LmNhcHRpb24tYm90dG9te2NhcHRpb24tc2lkZTpib3R0b219Lm9yaWdpbi1cXCgtLXRyYW5zZm9ybS1vcmlnaW5cXCl7dHJhbnNmb3JtLW9yaWdpbjp2YXIoLS10cmFuc2Zvcm0tb3JpZ2luKX0uLXRyYW5zbGF0ZS14LTFcXC8yey0tdHctdHJhbnNsYXRlLXg6Y2FsYyhjYWxjKDEvMioxMDAlKSotMSk7dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0udHJhbnNsYXRlLXgtXFxbM3B4XFxdey0tdHctdHJhbnNsYXRlLXg6M3B4O3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LnRyYW5zbGF0ZS14LVxcWzE4cHhcXF17LS10dy10cmFuc2xhdGUteDoxOHB4O3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9Li10cmFuc2xhdGUteS0xXFwvMnstLXR3LXRyYW5zbGF0ZS15OmNhbGMoY2FsYygxLzIqMTAwJSkqLTEpO3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LnRyYW5zbGF0ZS15LTB7LS10dy10cmFuc2xhdGUteTpjYWxjKHZhcigtLXNwYWNpbmcpKjApO3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LnJvdGF0ZS0xODB7cm90YXRlOjE4MGRlZ30udHJhbnNmb3Jte3RyYW5zZm9ybTp2YXIoLS10dy1yb3RhdGUteCwpdmFyKC0tdHctcm90YXRlLXksKXZhcigtLXR3LXJvdGF0ZS16LCl2YXIoLS10dy1za2V3LXgsKXZhcigtLXR3LXNrZXcteSwpfS50cmFuc2Zvcm0tZ3B1e3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApdmFyKC0tdHctcm90YXRlLXgsKXZhcigtLXR3LXJvdGF0ZS15LCl2YXIoLS10dy1yb3RhdGUteiwpdmFyKC0tdHctc2tldy14LCl2YXIoLS10dy1za2V3LXksKX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246dmFyKC0tYW5pbWF0ZS1wdWxzZSl9LmFuaW1hdGUtc3BpbnthbmltYXRpb246dmFyKC0tYW5pbWF0ZS1zcGluKX0uY3Vyc29yLWNyb3NzaGFpcntjdXJzb3I6Y3Jvc3NoYWlyfS5jdXJzb3ItZGVmYXVsdHtjdXJzb3I6ZGVmYXVsdH0uY3Vyc29yLW5vdC1hbGxvd2Vke2N1cnNvcjpub3QtYWxsb3dlZH0uY3Vyc29yLXBvaW50ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmN1cnNvci10ZXh0e2N1cnNvcjp0ZXh0fS5yZXNpemV7cmVzaXplOmJvdGh9LnJlc2l6ZS1ub25le3Jlc2l6ZTpub25lfS5zY3JvbGwtcHktMXtzY3JvbGwtcGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5saXN0LWRpc2N7bGlzdC1zdHlsZS10eXBlOmRpc2N9Lmxpc3Qtbm9uZXtsaXN0LXN0eWxlLXR5cGU6bm9uZX0uYXV0by1jb2xzLWZye2dyaWQtYXV0by1jb2x1bW5zOm1pbm1heCgwLDFmcil9LmdyaWQtZmxvdy1jb2x7Z3JpZC1hdXRvLWZsb3c6Y29sdW1ufS5hdXRvLXJvd3MtbWlue2dyaWQtYXV0by1yb3dzOm1pbi1jb250ZW50fS5ncmlkLWNvbHMtMXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9LmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0uZmxleC1jb2x7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mbGV4LWNvbC1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcH0uY29udGVudC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9Lml0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmR9Lml0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lml0ZW1zLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaH0uanVzdGlmeS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uanVzdGlmeS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lmp1c3RpZnktc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmdhcC0wXFwuNXtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9LmdhcC0xe2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5nYXAtMVxcLjV7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uZ2FwLTJ7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqMil9LmdhcC0yXFwuNXtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5nYXAtM3tnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uZ2FwLTR7Z2FwOmNhbGModmFyKC0tc3BhY2luZykqNCl9LmdhcC02e2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5nYXAtOHtnYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uZ2FwLVxcWzJweFxcXXtnYXA6MnB4fTp3aGVyZSguc3BhY2UteS0wXFwuNVx1MDAzZTpub3QoOmxhc3QtY2hpbGQpKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ibG9jay1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqLjUpKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKi41KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTFcdTAwM2U6bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEpKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEpKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKX06d2hlcmUoLnNwYWNlLXktMVxcLjVcdTAwM2U6bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSkqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLWJsb2NrLWVuZDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMS41KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTJcdTAwM2U6bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjIpKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjIpKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKX06d2hlcmUoLnNwYWNlLXktM1x1MDAzZTpub3QoOmxhc3QtY2hpbGQpKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ibG9jay1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMykqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLWJsb2NrLWVuZDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMykqY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpfTp3aGVyZSguc3BhY2UteS00XHUwMDNlOm5vdCg6bGFzdC1jaGlsZCkpey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo0KSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTttYXJnaW4tYmxvY2stZW5kOmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSo0KSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9OndoZXJlKC5zcGFjZS15LTZcdTAwM2U6bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tYmxvY2stc3RhcnQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjYpKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjYpKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKX06d2hlcmUoLnNwYWNlLXktOFx1MDAzZTpub3QoOmxhc3QtY2hpbGQpKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ibG9jay1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqOCkqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLWJsb2NrLWVuZDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqOCkqY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpfTp3aGVyZSguc3BhY2UteS0xMFx1MDAzZTpub3QoOmxhc3QtY2hpbGQpKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ibG9jay1zdGFydDpjYWxjKGNhbGModmFyKC0tc3BhY2luZykqMTApKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi1ibG9jay1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKjEwKSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9LmdhcC14LTR7Y29sdW1uLWdhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5nYXAteC04e2NvbHVtbi1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX06d2hlcmUoLi1zcGFjZS14LTJcdTAwM2U6bm90KDpsYXN0LWNoaWxkKSl7LS10dy1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4taW5saW5lLXN0YXJ0OmNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSotMikqdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7bWFyZ2luLWlubGluZS1lbmQ6Y2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpKi0yKSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSl9LmdhcC15LTFcXC41e3Jvdy1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxLjUpfS5nYXAteS01e3Jvdy1nYXA6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX06d2hlcmUoLmRpdmlkZS15XHUwMDNlOm5vdCg6bGFzdC1jaGlsZCkpey0tdHctZGl2aWRlLXktcmV2ZXJzZTowO2JvcmRlci1ib3R0b20tc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItdG9wLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXRvcC13aWR0aDpjYWxjKDFweCp2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSk7Ym9yZGVyLWJvdHRvbS13aWR0aDpjYWxjKDFweCpjYWxjKDEgLSB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSkpfTp3aGVyZSguZGl2aWRlLWJvcmRlclx1MDAzZTpub3QoOmxhc3QtY2hpbGQpKXtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKX0uc2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9Lmp1c3RpZnktc2VsZi1lbmR7anVzdGlmeS1zZWxmOmZsZXgtZW5kfS50cnVuY2F0ZXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctaGlkZGVue292ZXJmbG93OmhpZGRlbn0ub3ZlcmZsb3cteC1hdXRve292ZXJmbG93LXg6YXV0b30ub3ZlcmZsb3cteC1oaWRkZW57b3ZlcmZsb3cteDpoaWRkZW59Lm92ZXJmbG93LXgtc2Nyb2xse292ZXJmbG93LXg6c2Nyb2xsfS5vdmVyZmxvdy15LWF1dG97b3ZlcmZsb3cteTphdXRvfS5yb3VuZGVke2JvcmRlci1yYWRpdXM6LjI1cmVtfS5yb3VuZGVkLTJ4bHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjgpfS5yb3VuZGVkLTR4bHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoyLjYpfS5yb3VuZGVkLVxcW2NhbGNcXCh2YXJcXCgtLXJhZGl1c1xcKS0zcHhcXClcXF17Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAzcHgpfS5yb3VuZGVkLVxcW21pblxcKHZhclxcKC0tcmFkaXVzLW1kXFwpXFwsMTBweFxcKVxcXXtib3JkZXItcmFkaXVzOm1pbih2YXIoLS1yYWRpdXMtbWQpLDEwcHgpfS5yb3VuZGVkLVxcW21pblxcKHZhclxcKC0tcmFkaXVzLW1kXFwpXFwsMTJweFxcKVxcXXtib3JkZXItcmFkaXVzOm1pbih2YXIoLS1yYWRpdXMtbWQpLDEycHgpfS5yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czozLjQwMjgyZTM4cHh9LnJvdW5kZWQtbGd7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMpfS5yb3VuZGVkLWxnXFwhe2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKSFpbXBvcnRhbnR9LnJvdW5kZWQtbWR7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqLjgpfS5yb3VuZGVkLW5vbmV7Ym9yZGVyLXJhZGl1czowfS5yb3VuZGVkLXNte2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKi42KX0ucm91bmRlZC14bHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpfS5yb3VuZGVkLXhsXFwhe2JvcmRlci1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuNCkhaW1wb3J0YW50fS5yb3VuZGVkLXQtMnhse2JvcmRlci10b3AtbGVmdC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuOCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuOCl9LnJvdW5kZWQtdC14bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpfS5yb3VuZGVkLWIteGx7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpKjEuNCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqMS40KX0uYm9yZGVye2JvcmRlci1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci13aWR0aDoxcHh9LmJvcmRlci0we2JvcmRlci1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci13aWR0aDowfS5ib3JkZXItMntib3JkZXItc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItd2lkdGg6MnB4fS5ib3JkZXItdHtib3JkZXItdG9wLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LmJvcmRlci1ye2JvcmRlci1yaWdodC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1yaWdodC13aWR0aDoxcHh9LmJvcmRlci1ie2JvcmRlci1ib3R0b20tc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItYm90dG9tLXdpZHRoOjFweH0uYm9yZGVyLWItMntib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LmJvcmRlci1kYXNoZWR7LS10dy1ib3JkZXItc3R5bGU6ZGFzaGVkO2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ib3JkZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlcil9LmJvcmRlci1kYW5nZXJcXC8zMHtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJvcmRlci1kYW5nZXJcXC8zMHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRhbmdlcikzMCUsdHJhbnNwYXJlbnQpfX0uYm9yZGVyLWRlc3RydWN0aXZlXFwvMzB7Ym9yZGVyLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJvcmRlci1kZXN0cnVjdGl2ZVxcLzMwe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMzAlLHRyYW5zcGFyZW50KX19LmJvcmRlci1pbnB1dCwuYm9yZGVyLWlucHV0XFwvMzB7Ym9yZGVyLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJvcmRlci1pbnB1dFxcLzMwe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0taW5wdXQpMzAlLHRyYW5zcGFyZW50KX19LmJvcmRlci1wcmltYXJ5e2JvcmRlci1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uYm9yZGVyLXJlZC01MDBcXC80MHtib3JkZXItY29sb3I6I2ZiMmMzNjY2fUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYm9yZGVyLXJlZC01MDBcXC80MHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWNvbG9yLXJlZC01MDApNDAlLHRyYW5zcGFyZW50KX19LmJvcmRlci1zdWNjZXNzXFwvMzB7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYm9yZGVyLXN1Y2Nlc3NcXC8zMHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXN1Y2Nlc3MpMzAlLHRyYW5zcGFyZW50KX19LmJvcmRlci10cmFuc3BhcmVudHtib3JkZXItY29sb3I6IzAwMDB9LmJnLVxcW1xcIzIyOUVEOVxcXXtiYWNrZ3JvdW5kLWNvbG9yOiMyMjllZDl9LmJnLWJhY2tncm91bmQsLmJnLWJhY2tncm91bmRcXC84MHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctYmFja2dyb3VuZFxcLzgwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWJhY2tncm91bmQpODAlLHRyYW5zcGFyZW50KX19LmJnLWJsYWNrXFwvMTB7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwMWF9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1ibGFja1xcLzEwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWNvbG9yLWJsYWNrKTEwJSx0cmFuc3BhcmVudCl9fS5iZy1ibGFja1xcLzUwe2JhY2tncm91bmQtY29sb3I6IzAwMDAwMDgwfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctYmxhY2tcXC81MHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1jb2xvci1ibGFjayk1MCUsdHJhbnNwYXJlbnQpfX0uYmctYm9yZGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYm9yZGVyKX0uYmctY2FyZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQpfS5iZy1kYW5nZXIsLmJnLWRhbmdlclxcLzV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kYW5nZXIpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctZGFuZ2VyXFwvNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kYW5nZXIpNSUsdHJhbnNwYXJlbnQpfX0uYmctZGVzdHJ1Y3RpdmUsLmJnLWRlc3RydWN0aXZlXFwvNXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLWRlc3RydWN0aXZlXFwvNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk1JSx0cmFuc3BhcmVudCl9fS5iZy1kZXN0cnVjdGl2ZVxcLzEwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctZGVzdHJ1Y3RpdmVcXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkxMCUsdHJhbnNwYXJlbnQpfX0uYmctaW5wdXRcXC8zMHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLWlucHV0XFwvMzB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0taW5wdXQpMzAlLHRyYW5zcGFyZW50KX19LmJnLW11dGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5iZy1tdXRlZC1mb3JlZ3JvdW5kXFwvMjV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLW11dGVkLWZvcmVncm91bmRcXC8yNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTI1JSx0cmFuc3BhcmVudCl9fS5iZy1tdXRlZFxcLzMwe2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctbXV0ZWRcXC8zMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCkzMCUsdHJhbnNwYXJlbnQpfX0uYmctbXV0ZWRcXC80MHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLW11dGVkXFwvNDB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tbXV0ZWQpNDAlLHRyYW5zcGFyZW50KX19LmJnLW11dGVkXFwvNTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5iZy1tdXRlZFxcLzUwe2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkKTUwJSx0cmFuc3BhcmVudCl9fS5iZy1wb3BvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tcG9wb3Zlcil9LmJnLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uYmctcHJpbWFyeS1mb3JlZ3JvdW5kXFwvMjB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctcHJpbWFyeS1mb3JlZ3JvdW5kXFwvMjB7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKTIwJSx0cmFuc3BhcmVudCl9fS5iZy1wcmltYXJ5XFwvNXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYmctcHJpbWFyeVxcLzV7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeSk1JSx0cmFuc3BhcmVudCl9fS5iZy1wcmltYXJ5XFwvMTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXByaW1hcnlcXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTEwJSx0cmFuc3BhcmVudCl9fS5iZy1wcmltYXJ5XFwvMTV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXByaW1hcnlcXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTE1JSx0cmFuc3BhcmVudCl9fS5iZy1zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnkpfS5iZy1zdWNjZXNzLC5iZy1zdWNjZXNzXFwvMTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zdWNjZXNzKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXN1Y2Nlc3NcXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1zdWNjZXNzKTEwJSx0cmFuc3BhcmVudCl9fS5iZy1zdWNjZXNzXFwvMTV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zdWNjZXNzKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXN1Y2Nlc3NcXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1zdWNjZXNzKTE1JSx0cmFuc3BhcmVudCl9fS5iZy1zdXJmYWNlLC5iZy1zdXJmYWNlXFwvOTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zdXJmYWNlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXN1cmZhY2VcXC85MHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1zdXJmYWNlKTkwJSx0cmFuc3BhcmVudCl9fS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13YXJuaW5nXFwvMTB7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS13YXJuaW5nKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXdhcm5pbmdcXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS13YXJuaW5nKTEwJSx0cmFuc3BhcmVudCl9fS5iZy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXdoaXRlKX0uYmctd2hpdGVcXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYyNn1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmJnLXdoaXRlXFwvMTV7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tY29sb3Itd2hpdGUpMTUlLHRyYW5zcGFyZW50KX19LmJnLWdyYWRpZW50LXRvLWJyey0tdHctZ3JhZGllbnQtcG9zaXRpb246dG8gYm90dG9tIHJpZ2h0IGluIG9rbGFiO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSl9LmZyb20tXFxbXFwjMzhBRkUzXFxdey0tdHctZ3JhZGllbnQtZnJvbTojMzhhZmUzOy0tdHctZ3JhZGllbnQtc3RvcHM6dmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSx2YXIoLS10dy1ncmFkaWVudC1mcm9tKXZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LXRvKXZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSl9LmZyb20tXFxbXFwjMjI5RUQ5XFxdey0tdHctZ3JhZGllbnQtZnJvbTojMjI5ZWQ5Oy0tdHctZ3JhZGllbnQtc3RvcHM6dmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSx2YXIoLS10dy1ncmFkaWVudC1mcm9tKXZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LXRvKXZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSl9LnRvLVxcW1xcIzFGOTdDQVxcXXstLXR3LWdyYWRpZW50LXRvOiMxZjk3Y2E7LS10dy1ncmFkaWVudC1zdG9wczp2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLHZhcigtLXR3LWdyYWRpZW50LWZyb20pdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksdmFyKC0tdHctZ3JhZGllbnQtdG8pdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKX0udG8tXFxbXFwjMWE3ZmIwXFxdey0tdHctZ3JhZGllbnQtdG86IzFhN2ZiMDstLXR3LWdyYWRpZW50LXN0b3BzOnZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcyx2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksdmFyKC0tdHctZ3JhZGllbnQtZnJvbSl2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSx2YXIoLS10dy1ncmFkaWVudC10byl2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpfS5iZy1jbGlwLXBhZGRpbmd7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94fS5vYmplY3QtY292ZXJ7b2JqZWN0LWZpdDpjb3Zlcn0ucC0we3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0ucC0wXFwuNXtwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqLjUpfS5wLTF7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5wLTJ7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5wLTN7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5wLTR7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5wLTV7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjUpfS5wLTZ7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5wLTEye3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMil9LnAtXFxbM3B4XFxde3BhZGRpbmc6M3B4fS5weC0xe3BhZGRpbmctaW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqMSl9LnB4LTFcXC41e3BhZGRpbmctaW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqMS41KX0ucHgtMntwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5weC0yXFwuNXtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjIuNSl9LnB4LTN7cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ucHgtNHtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5weC01e3BhZGRpbmctaW5saW5lOmNhbGModmFyKC0tc3BhY2luZykqNSl9LnB5LTBcXC41e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSouNSl9LnB5LTF7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5weS0xXFwuNXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMS41KX0ucHktMntwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMil9LnB5LTJcXC41e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5weS0ze3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0ucHktM1xcLjV7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjMuNSl9LnB5LTR7cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5weS02e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0ucHktOHtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqOCl9LnB5LTEwe3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LnB5LTEye3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMil9LnB5LTE2e3BhZGRpbmctYmxvY2s6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxNil9LnB0LTJ7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucHQtM3twYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5wdC00e3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2luZykqNCl9LnB0LTZ7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0ucHItMntwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9LnByLTR7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5wci04e3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0ucHItMTJ7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjEyKX0ucGItMHtwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5wYi0xe3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMSl9LnBiLTJ7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucGItNntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5wYi04e3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqOCl9LnBiLTEwe3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMTApfS5wYi0xNntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjE2KX0ucGwtMVxcLjV7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0ucGwtMntwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0ucGwtNXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo1KX0ucGwtOHtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0ucGwtOXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo5KX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uYWxpZ24tbWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9udC1tb25ve2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaW50ZXIpLFwiSW50ZXJcIix1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLHNhbnMtc2VyaWZ9LnRleHQtMnhse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTJ4bCk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LTJ4bC0tbGluZS1oZWlnaHQpKX0udGV4dC0zeGx7Zm9udC1zaXplOnZhcigtLXRleHQtM3hsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtM3hsLS1saW5lLWhlaWdodCkpfS50ZXh0LTR4bHtmb250LXNpemU6dmFyKC0tdGV4dC00eGwpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC00eGwtLWxpbmUtaGVpZ2h0KSl9LnRleHQtNnhse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTZ4bCk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LTZ4bC0tbGluZS1oZWlnaHQpKX0udGV4dC1iYXNle2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LWJhc2UpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC1iYXNlLS1saW5lLWhlaWdodCkpfS50ZXh0LWxne2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LWxnKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtbGctLWxpbmUtaGVpZ2h0KSl9LnRleHQtc217Zm9udC1zaXplOnZhcigtLXRleHQtc20pO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKX0udGV4dC14bHtmb250LXNpemU6dmFyKC0tdGV4dC14bCk7bGluZS1oZWlnaHQ6dmFyKC0tdHctbGVhZGluZyx2YXIoLS10ZXh0LXhsLS1saW5lLWhlaWdodCkpfS50ZXh0LXhze2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXhzKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQteHMtLWxpbmUtaGVpZ2h0KSl9LnRleHQtXFxbMFxcLjhyZW1cXF17Zm9udC1zaXplOi44cmVtfS50ZXh0LVxcWzEwcHhcXF17Zm9udC1zaXplOjEwcHh9LnRleHQtXFxbMTFweFxcXXtmb250LXNpemU6MTFweH0ubGVhZGluZy1ub25ley0tdHctbGVhZGluZzoxO2xpbmUtaGVpZ2h0OjF9LmxlYWRpbmctcmVsYXhlZHstLXR3LWxlYWRpbmc6dmFyKC0tbGVhZGluZy1yZWxheGVkKTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXJlbGF4ZWQpfS5sZWFkaW5nLXNudWd7LS10dy1sZWFkaW5nOnZhcigtLWxlYWRpbmctc251Zyk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1zbnVnKX0ubGVhZGluZy10aWdodHstLXR3LWxlYWRpbmc6dmFyKC0tbGVhZGluZy10aWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy10aWdodCl9LmZvbnQtYm9sZHstLXR3LWZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpfS5mb250LW1lZGl1bXstLXR3LWZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKX0uZm9udC1ub3JtYWx7LS10dy1mb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCl9LmZvbnQtc2VtaWJvbGR7LS10dy1mb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpfS50cmFja2luZy10aWdodHstLXR3LXRyYWNraW5nOnZhcigtLXRyYWNraW5nLXRpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS10cmFja2luZy10aWdodCl9LnRyYWNraW5nLXdpZGV7LS10dy10cmFja2luZzp2YXIoLS10cmFja2luZy13aWRlKTtsZXR0ZXItc3BhY2luZzp2YXIoLS10cmFja2luZy13aWRlKX0udHJhY2tpbmctd2lkZXN0ey0tdHctdHJhY2tpbmc6dmFyKC0tdHJhY2tpbmctd2lkZXN0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS10cmFja2luZy13aWRlc3QpfS5icmVhay1hbGx7d29yZC1icmVhazpicmVhay1hbGx9LndoaXRlc3BhY2Utbm9ybWFse3doaXRlLXNwYWNlOm5vcm1hbH0ud2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS53aGl0ZXNwYWNlLXByZS1saW5le3doaXRlLXNwYWNlOnByZS1saW5lfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS50ZXh0LVxcW1xcIzIyQzU1RVxcXXtjb2xvcjojMjJjNTVlfS50ZXh0LVxcW1xcIzIyOUVEOVxcXXtjb2xvcjojMjI5ZWQ5fS50ZXh0LVxcW1xcIzE4NzlBOFxcXXtjb2xvcjojMTg3OWE4fS50ZXh0LVxcW1xcI0VGNDQ0NFxcXXtjb2xvcjojZWY0NDQ0fS50ZXh0LWNhcmQtZm9yZWdyb3VuZHtjb2xvcjp2YXIoLS1jYXJkLWZvcmVncm91bmQpfS50ZXh0LWRhbmdlcntjb2xvcjp2YXIoLS1kYW5nZXIpfS50ZXh0LWRlc3RydWN0aXZle2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0udGV4dC1mb3JlZ3JvdW5kLC50ZXh0LWZvcmVncm91bmRcXC82MHtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnRleHQtZm9yZWdyb3VuZFxcLzYwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1mb3JlZ3JvdW5kKTYwJSx0cmFuc3BhcmVudCl9fS50ZXh0LWZvcmVncm91bmRcXC84MHtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnRleHQtZm9yZWdyb3VuZFxcLzgwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1mb3JlZ3JvdW5kKTgwJSx0cmFuc3BhcmVudCl9fS50ZXh0LWdyZWVuLTYwMHtjb2xvcjp2YXIoLS1jb2xvci1ncmVlbi02MDApfS50ZXh0LW11dGVkLWZvcmVncm91bmQsLnRleHQtbXV0ZWQtZm9yZWdyb3VuZFxcLzYwe2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsudGV4dC1tdXRlZC1mb3JlZ3JvdW5kXFwvNjB7Y29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkLWZvcmVncm91bmQpNjAlLHRyYW5zcGFyZW50KX19LnRleHQtb3JhbmdlLTUwMHtjb2xvcjp2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKX0udGV4dC1wb3BvdmVyLWZvcmVncm91bmR7Y29sb3I6dmFyKC0tcG9wb3Zlci1mb3JlZ3JvdW5kKX0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLXByaW1hcnkpfS50ZXh0LXByaW1hcnktZm9yZWdyb3VuZHtjb2xvcjp2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpfS50ZXh0LXJlZC01MDB7Y29sb3I6dmFyKC0tY29sb3ItcmVkLTUwMCl9LnRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmR7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWZvcmVncm91bmQpfS50ZXh0LXN1Y2Nlc3N7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnRleHQtd2FybmluZ3tjb2xvcjp2YXIoLS13YXJuaW5nKX0udGV4dC13aGl0ZXtjb2xvcjp2YXIoLS1jb2xvci13aGl0ZSl9LnRleHQtd2hpdGVcXC84NXtjb2xvcjojZmZmZmZmZDl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey50ZXh0LXdoaXRlXFwvODV7Y29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWNvbG9yLXdoaXRlKTg1JSx0cmFuc3BhcmVudCl9fS50ZXh0LXdoaXRlXFwvOTB7Y29sb3I6I2ZmZmZmZmU2fUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsudGV4dC13aGl0ZVxcLzkwe2NvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1jb2xvci13aGl0ZSk5MCUsdHJhbnNwYXJlbnQpfX0udGV4dC13aGl0ZVxcLzk1e2NvbG9yOiNmZmZmZmZmMn1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnRleHQtd2hpdGVcXC85NXtjb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tY29sb3Itd2hpdGUpOTUlLHRyYW5zcGFyZW50KX19LmNhcGl0YWxpemV7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0udXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljfS50YWJ1bGFyLW51bXN7LS10dy1udW1lcmljLXNwYWNpbmc6dGFidWxhci1udW1zO2ZvbnQtdmFyaWFudC1udW1lcmljOnZhcigtLXR3LW9yZGluYWwsKXZhcigtLXR3LXNsYXNoZWQtemVybywpdmFyKC0tdHctbnVtZXJpYy1maWd1cmUsKXZhcigtLXR3LW51bWVyaWMtc3BhY2luZywpdmFyKC0tdHctbnVtZXJpYy1mcmFjdGlvbiwpfS51bmRlcmxpbmV7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS51bmRlcmxpbmUtb2Zmc2V0LTJ7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjJweH0udW5kZXJsaW5lLW9mZnNldC00e3RleHQtdW5kZXJsaW5lLW9mZnNldDo0cHh9LmFudGlhbGlhc2Vkey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5vcGFjaXR5LTB7b3BhY2l0eTowfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNDB7b3BhY2l0eTouNH0ub3BhY2l0eS01MHtvcGFjaXR5Oi41fS5vcGFjaXR5LTcwe29wYWNpdHk6Ljd9LmJnLWJsZW5kLWNvbG9ye2JhY2tncm91bmQtYmxlbmQtbW9kZTpjb2xvcn0uc2hhZG93ey0tdHctc2hhZG93OjAgMXB4IDNweCAwIHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgMXB4IDJweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LWxney0tdHctc2hhZG93OjAgMTBweCAxNXB4IC0zcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksMCA0cHggNnB4IC00cHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSk7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5zaGFkb3ctbWR7LS10dy1zaGFkb3c6MCA0cHggNnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksMCAycHggNHB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSk7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5zaGFkb3ctbm9uZXstLXR3LXNoYWRvdzowIDAgIzAwMDA7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5zaGFkb3ctbm9uZVxcIXstLXR3LXNoYWRvdzowIDAgIzAwMDAhaW1wb3J0YW50O2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KSFpbXBvcnRhbnR9LnNoYWRvdy1zbXstLXR3LXNoYWRvdzowIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSwwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy14c3stLXR3LXNoYWRvdzowIDFweCAycHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMHstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMHB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMXB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctMnstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LnJpbmctYmFja2dyb3VuZHstLXR3LXJpbmctY29sb3I6dmFyKC0tYmFja2dyb3VuZCl9LnJpbmctZm9yZWdyb3VuZFxcLzEwey0tdHctcmluZy1jb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LnJpbmctZm9yZWdyb3VuZFxcLzEwey0tdHctcmluZy1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZm9yZWdyb3VuZCkxMCUsdHJhbnNwYXJlbnQpfX0ucmluZy1wcmltYXJ5XFwvMzB7LS10dy1yaW5nLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsucmluZy1wcmltYXJ5XFwvMzB7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTMwJSx0cmFuc3BhcmVudCl9fS5vdXRsaW5lLWhpZGRlbnstLXR3LW91dGxpbmUtc3R5bGU6bm9uZTtvdXRsaW5lLXN0eWxlOm5vbmV9QG1lZGlhIChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lm91dGxpbmUtaGlkZGVue291dGxpbmUtb2Zmc2V0OjJweDtvdXRsaW5lOjJweCBzb2xpZCAjMDAwMH19Lm91dGxpbmV7b3V0bGluZS1zdHlsZTp2YXIoLS10dy1vdXRsaW5lLXN0eWxlKTtvdXRsaW5lLXdpZHRoOjFweH0uZmlsdGVye2ZpbHRlcjp2YXIoLS10dy1ibHVyLCl2YXIoLS10dy1icmlnaHRuZXNzLCl2YXIoLS10dy1jb250cmFzdCwpdmFyKC0tdHctZ3JheXNjYWxlLCl2YXIoLS10dy1odWUtcm90YXRlLCl2YXIoLS10dy1pbnZlcnQsKXZhcigtLXR3LXNhdHVyYXRlLCl2YXIoLS10dy1zZXBpYSwpdmFyKC0tdHctZHJvcC1zaGFkb3csKX0uYmFja2Ryb3AtYmx1ci1zbXstLXR3LWJhY2tkcm9wLWJsdXI6Ymx1cih2YXIoLS1ibHVyLXNtKSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0tdHctYmFja2Ryb3AtYmx1ciwpdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcywpdmFyKC0tdHctYmFja2Ryb3AtY29udHJhc3QsKXZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSwpdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSwpdmFyKC0tdHctYmFja2Ryb3AtaW52ZXJ0LCl2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5LCl2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSwpdmFyKC0tdHctYmFja2Ryb3Atc2VwaWEsKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0tdHctYmFja2Ryb3AtYmx1ciwpdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcywpdmFyKC0tdHctYmFja2Ryb3AtY29udHJhc3QsKXZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSwpdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSwpdmFyKC0tdHctYmFja2Ryb3AtaW52ZXJ0LCl2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5LCl2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSwpdmFyKC0tdHctYmFja2Ryb3Atc2VwaWEsKX0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLG91dGxpbmUtY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlLC0tdHctZ3JhZGllbnQtZnJvbSwtLXR3LWdyYWRpZW50LXZpYSwtLXR3LWdyYWRpZW50LXRvLG9wYWNpdHksYm94LXNoYWRvdyx0cmFuc2Zvcm0sdHJhbnNsYXRlLHNjYWxlLHJvdGF0ZSxmaWx0ZXIsLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIsYmFja2Ryb3AtZmlsdGVyLGRpc3BsYXksY29udGVudC12aXNpYmlsaXR5LG92ZXJsYXkscG9pbnRlci1ldmVudHM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tdHctZWFzZSx2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS10dy1kdXJhdGlvbix2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKX0udHJhbnNpdGlvbi1hbGx7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tdHctZWFzZSx2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS10dy1kdXJhdGlvbix2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKX0udHJhbnNpdGlvbi1jb2xvcnN7dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcixvdXRsaW5lLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSwtLXR3LWdyYWRpZW50LWZyb20sLS10dy1ncmFkaWVudC12aWEsLS10dy1ncmFkaWVudC10bzt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS50cmFuc2l0aW9uLW9wYWNpdHl7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXR3LWVhc2UsdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdHctZHVyYXRpb24sdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSl9LnRyYW5zaXRpb24tc2hhZG93e3RyYW5zaXRpb24tcHJvcGVydHk6Ym94LXNoYWRvdzt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSx0cmFuc2xhdGUsc2NhbGUscm90YXRlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXR3LWVhc2UsdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO3RyYW5zaXRpb24tZHVyYXRpb246dmFyKC0tdHctZHVyYXRpb24sdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSl9LmR1cmF0aW9uLTEwMHstLXR3LWR1cmF0aW9uOi4xczt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xc30uZHVyYXRpb24tMTUwey0tdHctZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXN9LmR1cmF0aW9uLTIwMHstLXR3LWR1cmF0aW9uOi4yczt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yc30uZWFzZS1pbi1vdXR7LS10dy1lYXNlOnZhcigtLWVhc2UtaW4tb3V0KTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1lYXNlLWluLW91dCl9LlxcW3dpbGwtY2hhbmdlXFw6dHJhbnNmb3JtXFxde3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0ub3V0bGluZS1ub25ley0tdHctb3V0bGluZS1zdHlsZTpub25lO291dGxpbmUtc3R5bGU6bm9uZX0uc2VsZWN0LW5vbmV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnBhdXNlZHthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWR9LnJ1bm5pbmd7YW5pbWF0aW9uLXBsYXktc3RhdGU6cnVubmluZ30uZ3JvdXAtb3BlblxcOnJvdGF0ZS0xODA6aXMoOndoZXJlKC5ncm91cCk6aXMoW29wZW5dLDpwb3BvdmVyLW9wZW4sOm9wZW4pICope3JvdGF0ZToxODBkZWd9QG1lZGlhIChob3Zlcjpob3Zlcil7Lmdyb3VwLWhvdmVyXFw6dHJhbnNsYXRlLXgtMFxcLjU6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKil7LS10dy10cmFuc2xhdGUteDpjYWxjKHZhcigtLXNwYWNpbmcpKi41KTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS5ncm91cC1ob3ZlclxcOmJnLW11dGVkOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICope2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5ncm91cC1ob3ZlclxcOnRleHQtcHJpbWFyeTppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKXtjb2xvcjp2YXIoLS1wcmltYXJ5KX0uZ3JvdXAtaG92ZXJcXDp0ZXh0LXdoaXRlOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICope2NvbG9yOnZhcigtLWNvbG9yLXdoaXRlKX0uZ3JvdXAtaG92ZXJcXDpvcGFjaXR5LTEwMDppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKXtvcGFjaXR5OjF9Lmdyb3VwLWhvdmVyXFw6c2hhZG93LW1kOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICopey0tdHctc2hhZG93OjAgNHB4IDZweCAtMXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX19Lmdyb3VwLWZvY3VzXFwvZHJvcGRvd24tbWVudS1pdGVtXFw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZDppcyg6d2hlcmUoLmdyb3VwXFwvZHJvcGRvd24tbWVudS1pdGVtKTpmb2N1cyAqKXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9Lmdyb3VwLWhhcy1kYXRhLVxcW3NpemVcXD1sZ1xcXVxcL2F2YXRhci1ncm91cFxcOnNpemUtMTA6aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhci1ncm91cCk6aGFzKFtkYXRhLXNpemU9bGddKSAqKXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9Lmdyb3VwLWhhcy1kYXRhLVxcW3NpemVcXD1zbVxcXVxcL2F2YXRhci1ncm91cFxcOnNpemUtNjppcyg6d2hlcmUoLmdyb3VwXFwvYXZhdGFyLWdyb3VwKTpoYXMoW2RhdGEtc2l6ZT1zbV0pICope3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNik7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNil9Lmdyb3VwLWhhcy1kYXRhLVxcW3Nsb3RcXD1jb21tYW5kLXNob3J0Y3V0XFxdXFwvY29tbWFuZC1pdGVtXFw6aGlkZGVuOmlzKDp3aGVyZSguZ3JvdXBcXC9jb21tYW5kLWl0ZW0pOmhhcyhbZGF0YS1zbG90PWNvbW1hbmQtc2hvcnRjdXRdKSAqKXtkaXNwbGF5Om5vbmV9Lmdyb3VwLWhhcy1cXFtcXFx1MDAzZWlucHV0XFxdXFwvaW5wdXQtZ3JvdXBcXDpwdC0yOmlzKDp3aGVyZSguZ3JvdXBcXC9pbnB1dC1ncm91cCk6aGFzKFx1MDAzZWlucHV0KSAqKXtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5ncm91cC1oYXMtXFxbXFxcdTAwM2VpbnB1dFxcXVxcL2lucHV0LWdyb3VwXFw6cGItMjppcyg6d2hlcmUoLmdyb3VwXFwvaW5wdXQtZ3JvdXApOmhhcyhcdTAwM2VpbnB1dCkgKil7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uZ3JvdXAtZGF0YS1cXFtjaGVja2VkXFw9dHJ1ZVxcXVxcL2NvbW1hbmQtaXRlbVxcOm9wYWNpdHktMTAwOmlzKDp3aGVyZSguZ3JvdXBcXC9jb21tYW5kLWl0ZW0pW2RhdGEtY2hlY2tlZD10cnVlXSAqKXtvcGFjaXR5OjF9Lmdyb3VwLWRhdGEtXFxbZGlzYWJsZWRcXD10cnVlXFxdXFw6cG9pbnRlci1ldmVudHMtbm9uZTppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWRpc2FibGVkPXRydWVdICope3BvaW50ZXItZXZlbnRzOm5vbmV9Lmdyb3VwLWRhdGEtXFxbZGlzYWJsZWRcXD10cnVlXFxdXFw6b3BhY2l0eS01MDppcyg6d2hlcmUoLmdyb3VwKVtkYXRhLWRpc2FibGVkPXRydWVdICopLC5ncm91cC1kYXRhLVxcW2Rpc2FibGVkXFw9dHJ1ZVxcXVxcL2lucHV0LWdyb3VwXFw6b3BhY2l0eS01MDppcyg6d2hlcmUoLmdyb3VwXFwvaW5wdXQtZ3JvdXApW2RhdGEtZGlzYWJsZWQ9dHJ1ZV0gKil7b3BhY2l0eTouNX0uZ3JvdXAtZGF0YS1cXFtzaXplXFw9ZGVmYXVsdFxcXVxcL2F2YXRhclxcOnNpemUtMlxcLjU6aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhcilbZGF0YS1zaXplPWRlZmF1bHRdICope3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMi41KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyLjUpfS5ncm91cC1kYXRhLVxcW3NpemVcXD1sZ1xcXVxcL2F2YXRhclxcOnNpemUtMzppcyg6d2hlcmUoLmdyb3VwXFwvYXZhdGFyKVtkYXRhLXNpemU9bGddICope3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMyk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMyl9Lmdyb3VwLWRhdGEtXFxbc2l6ZVxcPXNtXFxdXFwvYXZhdGFyXFw6c2l6ZS0yOmlzKDp3aGVyZSguZ3JvdXBcXC9hdmF0YXIpW2RhdGEtc2l6ZT1zbV0gKil7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX0uZ3JvdXAtZGF0YS1cXFtzaXplXFw9c21cXF1cXC9hdmF0YXJcXDp0ZXh0LXhzOmlzKDp3aGVyZSguZ3JvdXBcXC9hdmF0YXIpW2RhdGEtc2l6ZT1zbV0gKil7Zm9udC1zaXplOnZhcigtLXRleHQteHMpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC14cy0tbGluZS1oZWlnaHQpKX0uZ3JvdXAtZGF0YS1cXFtzaXplXFw9c21cXF1cXC9jYXJkXFw6cC0zOmlzKDp3aGVyZSguZ3JvdXBcXC9jYXJkKVtkYXRhLXNpemU9c21dICope3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uZ3JvdXAtZGF0YS1cXFtzaXplXFw9c21cXF1cXC9jYXJkXFw6cHgtMzppcyg6d2hlcmUoLmdyb3VwXFwvY2FyZClbZGF0YS1zaXplPXNtXSAqKXtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5ncm91cC1kYXRhLVxcW3NpemVcXD1zbVxcXVxcL2NhcmRcXDp0ZXh0LXNtOmlzKDp3aGVyZSguZ3JvdXBcXC9jYXJkKVtkYXRhLXNpemU9c21dICope2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXNtKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtc20tLWxpbmUtaGVpZ2h0KSl9Lmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpiZy10cmFuc3BhcmVudDppcyg6d2hlcmUoLmdyb3VwXFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKil7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZ3JvdXAtZGF0YS1zZWxlY3RlZFxcL2NvbW1hbmQtaXRlbVxcOnRleHQtZm9yZWdyb3VuZDppcyg6d2hlcmUoLmdyb3VwXFwvY29tbWFuZC1pdGVtKTp3aGVyZShbZGF0YS1zZWxlY3RlZD10cnVlXSkgKil7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9Lmdyb3VwLWRhdGEtaG9yaXpvbnRhbFxcL3RhYnNcXDpoLTg6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxdKSAqKXtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFxcL3RhYnNcXDpoLWZpdDppcyg6d2hlcmUoLmdyb3VwXFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxdKSAqKXtoZWlnaHQ6Zml0LWNvbnRlbnR9Lmdyb3VwLWRhdGEtdmVydGljYWxcXC90YWJzXFw6dy1mdWxsOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzKTp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pICope3dpZHRoOjEwMCV9Lmdyb3VwLWRhdGEtdmVydGljYWxcXC90YWJzXFw6ZmxleC1jb2w6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPXZlcnRpY2FsXSkgKil7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5ncm91cC1kYXRhLXZlcnRpY2FsXFwvdGFic1xcOmp1c3RpZnktc3RhcnQ6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPXZlcnRpY2FsXSkgKil7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnBlZXItZGlzYWJsZWRcXDpjdXJzb3Itbm90LWFsbG93ZWQ6aXMoOndoZXJlKC5wZWVyKTpkaXNhYmxlZH4qKXtjdXJzb3I6bm90LWFsbG93ZWR9LnBlZXItZGlzYWJsZWRcXDpvcGFjaXR5LTUwOmlzKDp3aGVyZSgucGVlcik6ZGlzYWJsZWR+Kil7b3BhY2l0eTouNX0uZmlsZVxcOmlubGluZS1mbGV4OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4fS5maWxlXFw6aC02OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0uZmlsZVxcOmJvcmRlci0wOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntib3JkZXItc3R5bGU6dmFyKC0tdHctYm9yZGVyLXN0eWxlKTtib3JkZXItd2lkdGg6MH0uZmlsZVxcOmJnLXRyYW5zcGFyZW50OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5maWxlXFw6dGV4dC1zbTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Zm9udC1zaXplOnZhcigtLXRleHQtc20pO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKX0uZmlsZVxcOmZvbnQtbWVkaXVtOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnstLXR3LWZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKX0uZmlsZVxcOnRleHQtZm9yZWdyb3VuZDo6ZmlsZS1zZWxlY3Rvci1idXR0b257Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9LnBsYWNlaG9sZGVyXFw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0uYWZ0ZXJcXDphYnNvbHV0ZTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO3Bvc2l0aW9uOmFic29sdXRlfS5hZnRlclxcOmluc2V0LTA6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtpbnNldDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5hZnRlclxcOnJvdW5kZWQtZnVsbDphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2JvcmRlci1yYWRpdXM6My40MDI4MmUzOHB4fS5hZnRlclxcOmJvcmRlcjphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2JvcmRlci1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci13aWR0aDoxcHh9LmFmdGVyXFw6Ym9yZGVyLWJvcmRlcjphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5hZnRlclxcOmJnLWZvcmVncm91bmQ6YWZ0ZXJ7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvcmVncm91bmQpfS5hZnRlclxcOm9wYWNpdHktMDphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO29wYWNpdHk6MH0uYWZ0ZXJcXDptaXgtYmxlbmQtZGFya2VuOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5hZnRlclxcOnRyYW5zaXRpb24tb3BhY2l0eTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS10dy1lYXNlLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXR3LWR1cmF0aW9uLHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpfS5ncm91cC1kYXRhLWhvcml6b250YWxcXC90YWJzXFw6YWZ0ZXJcXDppbnNldC14LTA6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2luc2V0LWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5ncm91cC1kYXRhLWhvcml6b250YWxcXC90YWJzXFw6YWZ0ZXJcXDpib3R0b20tXFxbLTVweFxcXTppcyg6d2hlcmUoLmdyb3VwXFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249aG9yaXpvbnRhbF0pICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7Ym90dG9tOi01cHh9Lmdyb3VwLWRhdGEtaG9yaXpvbnRhbFxcL3RhYnNcXDphZnRlclxcOmgtMFxcLjU6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMpOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKi41KX0uZ3JvdXAtZGF0YS12ZXJ0aWNhbFxcL3RhYnNcXDphZnRlclxcOmluc2V0LXktMDppcyg6d2hlcmUoLmdyb3VwXFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO2luc2V0LWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmdyb3VwLWRhdGEtdmVydGljYWxcXC90YWJzXFw6YWZ0ZXJcXDotcmlnaHQtMTppcyg6d2hlcmUoLmdyb3VwXFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO3JpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqLTEpfS5ncm91cC1kYXRhLXZlcnRpY2FsXFwvdGFic1xcOmFmdGVyXFw6dy0wXFwuNTppcyg6d2hlcmUoLmdyb3VwXFwvdGFicyk6d2hlcmUoW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxdKSAqKTphZnRlcntjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpO3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqLjUpfS5mb2N1cy13aXRoaW5cXDpib3JkZXItcmluZzpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOnZhcigtLXJpbmcpfS5mb2N1cy13aXRoaW5cXDpyaW5nLTM6Zm9jdXMtd2l0aGluey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uZm9jdXMtd2l0aGluXFw6cmluZy1yaW5nXFwvNTA6Zm9jdXMtd2l0aGluey0tdHctcmluZy1jb2xvcjp2YXIoLS1yaW5nKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmZvY3VzLXdpdGhpblxcOnJpbmctcmluZ1xcLzUwOmZvY3VzLXdpdGhpbnstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXJpbmcpNTAlLHRyYW5zcGFyZW50KX19QG1lZGlhIChob3Zlcjpob3Zlcil7LmhvdmVyXFw6Ym9yZGVyLW11dGVkLWZvcmVncm91bmRcXC8zMDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3ZlclxcOmJvcmRlci1tdXRlZC1mb3JlZ3JvdW5kXFwvMzA6aG92ZXJ7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTMwJSx0cmFuc3BhcmVudCl9fS5ob3ZlclxcOmJvcmRlci1wcmltYXJ5XFwvNDA6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcXDpib3JkZXItcHJpbWFyeVxcLzQwOmhvdmVye2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeSk0MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcXDpib3JkZXItcmluZzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcmluZyl9LmhvdmVyXFw6YmctYWNjZW50OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KX0uaG92ZXJcXDpiZy1kZXN0cnVjdGl2ZVxcLzIwOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcXDpiZy1kZXN0cnVjdGl2ZVxcLzIwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5ob3ZlclxcOmJnLW11dGVkOmhvdmVyLC5ob3ZlclxcOmJnLW11dGVkXFwvNDA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3ZlclxcOmJnLW11dGVkXFwvNDA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tbXV0ZWQpNDAlLHRyYW5zcGFyZW50KX19LmhvdmVyXFw6YmctbXV0ZWRcXC81MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmhvdmVyXFw6YmctbXV0ZWRcXC81MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCk1MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcXDpiZy1tdXRlZFxcLzgwOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcXDpiZy1tdXRlZFxcLzgwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLW11dGVkKTgwJSx0cmFuc3BhcmVudCl9fS5ob3ZlclxcOmJnLXByaW1hcnlcXC8yMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaG92ZXJcXDpiZy1wcmltYXJ5XFwvMjA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tcHJpbWFyeSkyMCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcXDpiZy1zZWNvbmRhcnlcXC84MDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5ob3ZlclxcOmJnLXNlY29uZGFyeVxcLzgwOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXNlY29uZGFyeSk4MCUsdHJhbnNwYXJlbnQpfX0uaG92ZXJcXDp0ZXh0LWZvcmVncm91bmQ6aG92ZXJ7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9LmhvdmVyXFw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kOmhvdmVye2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5ob3ZlclxcOnRleHQtcHJpbWFyeTpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5KX0uaG92ZXJcXDp1bmRlcmxpbmU6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5ob3ZlclxcOnNoYWRvdy1sZzpob3ZlcnstLXR3LXNoYWRvdzowIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpLDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uaG92ZXJcXDpzaGFkb3ctbWQ6aG92ZXJ7LS10dy1zaGFkb3c6MCA0cHggNnB4IC0xcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksMCAycHggNHB4IC0ycHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCMwMDAwMDAxYSk7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfX0uZm9jdXNcXDpiZy1hY2NlbnQ6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5mb2N1c1xcOnRleHQtYWNjZW50LWZvcmVncm91bmQ6Zm9jdXN7Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpfS5mb2N1c1xcOm91dGxpbmUtbm9uZTpmb2N1c3stLXR3LW91dGxpbmUtc3R5bGU6bm9uZTtvdXRsaW5lLXN0eWxlOm5vbmV9OmlzKC5mb2N1c1xcOlxcKlxcKlxcOnRleHQtYWNjZW50LWZvcmVncm91bmQ6Zm9jdXMgKiksOmlzKC5ub3QtZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDpmb2N1c1xcOlxcKlxcKlxcOnRleHQtYWNjZW50LWZvcmVncm91bmQ6bm90KFtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVdKTpmb2N1cyAqKXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9LmZvY3VzLXZpc2libGVcXDpib3JkZXItZGVzdHJ1Y3RpdmVcXC80MDpmb2N1cy12aXNpYmxle2JvcmRlci1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5mb2N1cy12aXNpYmxlXFw6Ym9yZGVyLWRlc3RydWN0aXZlXFwvNDA6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTQwJSx0cmFuc3BhcmVudCl9fS5mb2N1cy12aXNpYmxlXFw6Ym9yZGVyLXJpbmc6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tcmluZyl9LmZvY3VzLXZpc2libGVcXDpyaW5nLTA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMHB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LmZvY3VzLXZpc2libGVcXDpyaW5nLTI6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9LmZvY3VzLXZpc2libGVcXDpyaW5nLTM6Zm9jdXMtdmlzaWJsZSwuZm9jdXMtdmlzaWJsZVxcOnJpbmctXFxbM3B4XFxdOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0LCkwIDAgMCBjYWxjKDNweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yLGN1cnJlbnRjb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5mb2N1cy12aXNpYmxlXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzIwOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmZvY3VzLXZpc2libGVcXDpyaW5nLWRlc3RydWN0aXZlXFwvMjA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5mb2N1cy12aXNpYmxlXFw6cmluZy1yaW5nXFwvNTA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6dmFyKC0tcmluZyl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5mb2N1cy12aXNpYmxlXFw6cmluZy1yaW5nXFwvNTA6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLXJpbmcpNTAlLHRyYW5zcGFyZW50KX19LmZvY3VzLXZpc2libGVcXDpvdXRsaW5lLTE6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXN0eWxlOnZhcigtLXR3LW91dGxpbmUtc3R5bGUpO291dGxpbmUtd2lkdGg6MXB4fS5mb2N1cy12aXNpYmxlXFw6b3V0bGluZS0yOmZvY3VzLXZpc2libGV7b3V0bGluZS1zdHlsZTp2YXIoLS10dy1vdXRsaW5lLXN0eWxlKTtvdXRsaW5lLXdpZHRoOjJweH0uZm9jdXMtdmlzaWJsZVxcOm91dGxpbmUtb2Zmc2V0LTI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHh9LmZvY3VzLXZpc2libGVcXDpvdXRsaW5lLXByaW1hcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLWNvbG9yOnZhcigtLXByaW1hcnkpfS5mb2N1cy12aXNpYmxlXFw6b3V0bGluZS1yaW5nOmZvY3VzLXZpc2libGV7b3V0bGluZS1jb2xvcjp2YXIoLS1yaW5nKX0uYWN0aXZlXFw6dHJhbnNsYXRlLXktcHg6YWN0aXZley0tdHctdHJhbnNsYXRlLXk6MXB4O3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LmRpc2FibGVkXFw6cG9pbnRlci1ldmVudHMtbm9uZTpkaXNhYmxlZHtwb2ludGVyLWV2ZW50czpub25lfS5kaXNhYmxlZFxcOmN1cnNvci1ub3QtYWxsb3dlZDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmRpc2FibGVkXFw6YmctaW5wdXRcXC81MDpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRpc2FibGVkXFw6YmctaW5wdXRcXC81MDpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCk1MCUsdHJhbnNwYXJlbnQpfX0uZGlzYWJsZWRcXDpiZy10cmFuc3BhcmVudDpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5kaXNhYmxlZFxcOm9wYWNpdHktNTA6ZGlzYWJsZWR7b3BhY2l0eTouNX06d2hlcmUoW2RhdGEtc2xvdD1idXR0b24tZ3JvdXBdKSAuaW4tZGF0YS1cXFtzbG90XFw9YnV0dG9uLWdyb3VwXFxdXFw6cm91bmRlZC1sZ3tib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cyl9OndoZXJlKFtkYXRhLXNsb3Q9Y29tYm9ib3gtY29udGVudF0pIC5pbi1kYXRhLVxcW3Nsb3RcXD1jb21ib2JveC1jb250ZW50XFxdXFw6Zm9jdXMtd2l0aGluXFw6Ym9yZGVyLWluaGVyaXQ6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjppbmhlcml0fTp3aGVyZShbZGF0YS1zbG90PWNvbWJvYm94LWNvbnRlbnRdKSAuaW4tZGF0YS1cXFtzbG90XFw9Y29tYm9ib3gtY29udGVudFxcXVxcOmZvY3VzLXdpdGhpblxcOnJpbmctMDpmb2N1cy13aXRoaW57LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0LCkwIDAgMCBjYWxjKDBweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yLGN1cnJlbnRjb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfTp3aGVyZShbZGF0YS1zbG90PWRpYWxvZy1jb250ZW50XSkgLmluLWRhdGEtXFxbc2xvdFxcPWRpYWxvZy1jb250ZW50XFxdXFw6cm91bmRlZC1sZ1xcIXtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cykhaW1wb3J0YW50fS5oYXMtZGlzYWJsZWRcXDpiZy1pbnB1dFxcLzUwOmhhcyg6ZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaGFzLWRpc2FibGVkXFw6YmctaW5wdXRcXC81MDpoYXMoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCk1MCUsdHJhbnNwYXJlbnQpfX0uaGFzLWRpc2FibGVkXFw6b3BhY2l0eS01MDpoYXMoOmRpc2FibGVkKXtvcGFjaXR5Oi41fS5oYXMtZGF0YS1cXFtpY29uXFw9aW5saW5lLWVuZFxcXVxcOnByLTFcXC41OmhhcyhbZGF0YS1pY29uPWlubGluZS1lbmRdKXtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uaGFzLWRhdGEtXFxbaWNvblxcPWlubGluZS1lbmRcXF1cXDpwci0yOmhhcyhbZGF0YS1pY29uPWlubGluZS1lbmRdKXtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMil9Lmhhcy1kYXRhLVxcW2ljb25cXD1pbmxpbmUtZW5kXFxdXFw6cHItMzpoYXMoW2RhdGEtaWNvbj1pbmxpbmUtZW5kXSl7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5oYXMtZGF0YS1cXFtpY29uXFw9aW5saW5lLXN0YXJ0XFxdXFw6cGwtMVxcLjU6aGFzKFtkYXRhLWljb249aW5saW5lLXN0YXJ0XSl7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uaGFzLWRhdGEtXFxbaWNvblxcPWlubGluZS1zdGFydFxcXVxcOnBsLTI6aGFzKFtkYXRhLWljb249aW5saW5lLXN0YXJ0XSl7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMil9Lmhhcy1kYXRhLVxcW2ljb25cXD1pbmxpbmUtc3RhcnRcXF1cXDpwbC0zOmhhcyhbZGF0YS1pY29uPWlubGluZS1zdGFydF0pe3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5oYXMtZGF0YS1cXFtzbG90XFw9Y2FyZC1hY3Rpb25cXF1cXDpncmlkLWNvbHMtXFxbMWZyX2F1dG9cXF06aGFzKFtkYXRhLXNsb3Q9Y2FyZC1hY3Rpb25dKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIGF1dG99Lmhhcy1kYXRhLVxcW3Nsb3RcXD1jYXJkLWRlc2NyaXB0aW9uXFxdXFw6Z3JpZC1yb3dzLVxcW2F1dG9fYXV0b1xcXTpoYXMoW2RhdGEtc2xvdD1jYXJkLWRlc2NyaXB0aW9uXSl7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gYXV0b30uaGFzLWRhdGEtXFxbc2xvdFxcPWNhcmQtZm9vdGVyXFxdXFw6cGItMDpoYXMoW2RhdGEtc2xvdD1jYXJkLWZvb3Rlcl0pe3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmhhcy1cXFtcXFtkYXRhLXNsb3RcXD1pbnB1dC1ncm91cC1jb250cm9sXFxdXFw6Zm9jdXMtdmlzaWJsZVxcXVxcOmJvcmRlci1yaW5nOmhhcyhbZGF0YS1zbG90PWlucHV0LWdyb3VwLWNvbnRyb2xdOmZvY3VzLXZpc2libGUpe2JvcmRlci1jb2xvcjp2YXIoLS1yaW5nKX0uaGFzLVxcW1xcW2RhdGEtc2xvdFxcPWlucHV0LWdyb3VwLWNvbnRyb2xcXF1cXDpmb2N1cy12aXNpYmxlXFxdXFw6cmluZy0zOmhhcyhbZGF0YS1zbG90PWlucHV0LWdyb3VwLWNvbnRyb2xdOmZvY3VzLXZpc2libGUpey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uaGFzLVxcW1xcW2RhdGEtc2xvdFxcPWlucHV0LWdyb3VwLWNvbnRyb2xcXF1cXDpmb2N1cy12aXNpYmxlXFxdXFw6cmluZy1yaW5nXFwvNTA6aGFzKFtkYXRhLXNsb3Q9aW5wdXQtZ3JvdXAtY29udHJvbF06Zm9jdXMtdmlzaWJsZSl7LS10dy1yaW5nLWNvbG9yOnZhcigtLXJpbmcpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuaGFzLVxcW1xcW2RhdGEtc2xvdFxcPWlucHV0LWdyb3VwLWNvbnRyb2xcXF1cXDpmb2N1cy12aXNpYmxlXFxdXFw6cmluZy1yaW5nXFwvNTA6aGFzKFtkYXRhLXNsb3Q9aW5wdXQtZ3JvdXAtY29udHJvbF06Zm9jdXMtdmlzaWJsZSl7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1yaW5nKTUwJSx0cmFuc3BhcmVudCl9fS5oYXMtXFxbXFxbZGF0YS1zbG90XFxdXFxbYXJpYS1pbnZhbGlkXFw9dHJ1ZVxcXVxcXVxcOmJvcmRlci1kZXN0cnVjdGl2ZTpoYXMoW2RhdGEtc2xvdF1bYXJpYS1pbnZhbGlkPXRydWVdKXtib3JkZXItY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfS5oYXMtXFxbXFxbZGF0YS1zbG90XFxdXFxbYXJpYS1pbnZhbGlkXFw9dHJ1ZVxcXVxcXVxcOnJpbmctMzpoYXMoW2RhdGEtc2xvdF1bYXJpYS1pbnZhbGlkPXRydWVdKXstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQsKTAgMCAwIGNhbGMoM3B4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IsY3VycmVudGNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9Lmhhcy1cXFtcXFtkYXRhLXNsb3RcXF1cXFthcmlhLWludmFsaWRcXD10cnVlXFxdXFxdXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzIwOmhhcyhbZGF0YS1zbG90XVthcmlhLWludmFsaWQ9dHJ1ZV0pey0tdHctcmluZy1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5oYXMtXFxbXFxbZGF0YS1zbG90XFxdXFxbYXJpYS1pbnZhbGlkXFw9dHJ1ZVxcXVxcXVxcOnJpbmctZGVzdHJ1Y3RpdmVcXC8yMDpoYXMoW2RhdGEtc2xvdF1bYXJpYS1pbnZhbGlkPXRydWVdKXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5oYXMtXFxbXFxcdTAwM2VcXFtkYXRhLWFsaWduXFw9YmxvY2stZW5kXFxdXFxdXFw6aC1hdXRvOmhhcyhcdTAwM2VbZGF0YS1hbGlnbj1ibG9jay1lbmRdKXtoZWlnaHQ6YXV0b30uaGFzLVxcW1xcXHUwMDNlXFxbZGF0YS1hbGlnblxcPWJsb2NrLWVuZFxcXVxcXVxcOmZsZXgtY29sOmhhcyhcdTAwM2VbZGF0YS1hbGlnbj1ibG9jay1lbmRdKXtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lmhhcy1cXFtcXFx1MDAzZVxcW2RhdGEtYWxpZ25cXD1ibG9jay1zdGFydFxcXVxcXVxcOmgtYXV0bzpoYXMoXHUwMDNlW2RhdGEtYWxpZ249YmxvY2stc3RhcnRdKXtoZWlnaHQ6YXV0b30uaGFzLVxcW1xcXHUwMDNlXFxbZGF0YS1hbGlnblxcPWJsb2NrLXN0YXJ0XFxdXFxdXFw6ZmxleC1jb2w6aGFzKFx1MDAzZVtkYXRhLWFsaWduPWJsb2NrLXN0YXJ0XSl7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5oYXMtXFxbXFxcdTAwM2VidXR0b25cXF1cXDptci1cXFstMFxcLjNyZW1cXF06aGFzKFx1MDAzZWJ1dHRvbil7bWFyZ2luLXJpZ2h0Oi0uM3JlbX0uaGFzLVxcW1xcXHUwMDNlYnV0dG9uXFxdXFw6bWwtXFxbLTBcXC4zcmVtXFxdOmhhcyhcdTAwM2VidXR0b24pe21hcmdpbi1sZWZ0Oi0uM3JlbX0uaGFzLVxcW1xcXHUwMDNlaW1nXFw6Zmlyc3QtY2hpbGRcXF1cXDpwdC0wOmhhcyhcdTAwM2VpbWc6Zmlyc3QtY2hpbGQpe3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lmhhcy1cXFtcXFx1MDAzZWtiZFxcXVxcOm1yLVxcWy0wXFwuMTVyZW1cXF06aGFzKFx1MDAzZWtiZCl7bWFyZ2luLXJpZ2h0Oi0uMTVyZW19Lmhhcy1cXFtcXFx1MDAzZWtiZFxcXVxcOm1sLVxcWy0wXFwuMTVyZW1cXF06aGFzKFx1MDAzZWtiZCl7bWFyZ2luLWxlZnQ6LS4xNXJlbX0uaGFzLVxcW1xcXHUwMDNlc3ZnXFxdXFw6cC0wOmhhcyhcdTAwM2Vzdmcpe3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uaGFzLVxcW1xcXHUwMDNldGV4dGFyZWFcXF1cXDpoLWF1dG86aGFzKFx1MDAzZXRleHRhcmVhKXtoZWlnaHQ6YXV0b30uYXJpYS1kaXNhYmxlZFxcOnBvaW50ZXItZXZlbnRzLW5vbmVbYXJpYS1kaXNhYmxlZD10cnVlXXtwb2ludGVyLWV2ZW50czpub25lfS5hcmlhLWRpc2FibGVkXFw6b3BhY2l0eS01MFthcmlhLWRpc2FibGVkPXRydWVde29wYWNpdHk6LjV9LmFyaWEtZXhwYW5kZWRcXDpiZy1tdXRlZFthcmlhLWV4cGFuZGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5hcmlhLWV4cGFuZGVkXFw6Ymctc2Vjb25kYXJ5W2FyaWEtZXhwYW5kZWQ9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnkpfS5hcmlhLWV4cGFuZGVkXFw6dGV4dC1mb3JlZ3JvdW5kW2FyaWEtZXhwYW5kZWQ9dHJ1ZV17Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9LmFyaWEtZXhwYW5kZWRcXDp0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kW2FyaWEtZXhwYW5kZWQ9dHJ1ZV17Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWZvcmVncm91bmQpfS5hcmlhLWludmFsaWRcXDpib3JkZXItZGVzdHJ1Y3RpdmVbYXJpYS1pbnZhbGlkPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LmFyaWEtaW52YWxpZFxcOnJpbmctMFthcmlhLWludmFsaWQ9dHJ1ZV17LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0LCkwIDAgMCBjYWxjKDBweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yLGN1cnJlbnRjb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1pbnNldC1zaGFkb3cpLHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSx2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3cpfS5hcmlhLWludmFsaWRcXDpyaW5nLTNbYXJpYS1pbnZhbGlkPXRydWVdey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygzcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX0uYXJpYS1pbnZhbGlkXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzIwW2FyaWEtaW52YWxpZD10cnVlXXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuYXJpYS1pbnZhbGlkXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzIwW2FyaWEtaW52YWxpZD10cnVlXXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTIwJSx0cmFuc3BhcmVudCl9fS5kYXRhLWVuZGluZy1zdHlsZVxcOm9wYWNpdHktMFtkYXRhLWVuZGluZy1zdHlsZV17b3BhY2l0eTowfS5kYXRhLWluc2V0XFw6cGwtN1tkYXRhLWluc2V0XXtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo3KX0uZGF0YS1wb3B1cC1vcGVuXFw6YmctYWNjZW50W2RhdGEtcG9wdXAtb3Blbl17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5kYXRhLXBvcHVwLW9wZW5cXDp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kW2RhdGEtcG9wdXAtb3Blbl17Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpfS5kYXRhLXN0YXJ0aW5nLXN0eWxlXFw6b3BhY2l0eS0wW2RhdGEtc3RhcnRpbmctc3R5bGVde29wYWNpdHk6MH0uZGF0YS1cXFtkaXNhYmxlZFxcPXRydWVcXF1cXDpwb2ludGVyLWV2ZW50cy1ub25lW2RhdGEtZGlzYWJsZWQ9dHJ1ZV17cG9pbnRlci1ldmVudHM6bm9uZX0uZGF0YS1cXFtkaXNhYmxlZFxcPXRydWVcXF1cXDpvcGFjaXR5LTUwW2RhdGEtZGlzYWJsZWQ9dHJ1ZV17b3BhY2l0eTouNX0uZGF0YS1cXFtzaWRlXFw9Ym90dG9tXFxdXFw6aW5zZXQteC0wW2RhdGEtc2lkZT1ib3R0b21de2luc2V0LWlubGluZTpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxcW3NpZGVcXD1ib3R0b21cXF1cXDpib3R0b20tMFtkYXRhLXNpZGU9Ym90dG9tXXtib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cXFtzaWRlXFw9Ym90dG9tXFxdXFw6aC1hdXRvW2RhdGEtc2lkZT1ib3R0b21de2hlaWdodDphdXRvfS5kYXRhLVxcW3NpZGVcXD1ib3R0b21cXF1cXDpib3JkZXItdFtkYXRhLXNpZGU9Ym90dG9tXXtib3JkZXItdG9wLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXRvcC13aWR0aDoxcHh9LmRhdGEtXFxbc2lkZVxcPWJvdHRvbVxcXVxcOnNsaWRlLWluLWZyb20tdG9wLTJbZGF0YS1zaWRlPWJvdHRvbV17LS10dy1lbnRlci10cmFuc2xhdGUteTpjYWxjKDIqdmFyKC0tc3BhY2luZykqLTEpfS5kYXRhLVxcW3NpZGVcXD1ib3R0b21cXF1cXDpkYXRhLWVuZGluZy1zdHlsZVxcOnRyYW5zbGF0ZS15LVxcWzJcXC41cmVtXFxdW2RhdGEtc2lkZT1ib3R0b21dW2RhdGEtZW5kaW5nLXN0eWxlXSwuZGF0YS1cXFtzaWRlXFw9Ym90dG9tXFxdXFw6ZGF0YS1zdGFydGluZy1zdHlsZVxcOnRyYW5zbGF0ZS15LVxcWzJcXC41cmVtXFxdW2RhdGEtc2lkZT1ib3R0b21dW2RhdGEtc3RhcnRpbmctc3R5bGVdey0tdHctdHJhbnNsYXRlLXk6Mi41cmVtO3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LmRhdGEtXFxbc2lkZVxcPWlubGluZS1lbmRcXF1cXDpzbGlkZS1pbi1mcm9tLWxlZnQtMltkYXRhLXNpZGU9aW5saW5lLWVuZF17LS10dy1lbnRlci10cmFuc2xhdGUteDpjYWxjKDIqdmFyKC0tc3BhY2luZykqLTEpfS5kYXRhLVxcW3NpZGVcXD1pbmxpbmUtc3RhcnRcXF1cXDpzbGlkZS1pbi1mcm9tLXJpZ2h0LTJbZGF0YS1zaWRlPWlubGluZS1zdGFydF17LS10dy1lbnRlci10cmFuc2xhdGUteDpjYWxjKDIqdmFyKC0tc3BhY2luZykpfS5kYXRhLVxcW3NpZGVcXD1sZWZ0XFxdXFw6aW5zZXQteS0wW2RhdGEtc2lkZT1sZWZ0XXtpbnNldC1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxcW3NpZGVcXD1sZWZ0XFxdXFw6bGVmdC0wW2RhdGEtc2lkZT1sZWZ0XXtsZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMCl9LmRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDpoLWZ1bGxbZGF0YS1zaWRlPWxlZnRde2hlaWdodDoxMDAlfS5kYXRhLVxcW3NpZGVcXD1sZWZ0XFxdXFw6dy0zXFwvNFtkYXRhLXNpZGU9bGVmdF17d2lkdGg6NzUlfS5kYXRhLVxcW3NpZGVcXD1sZWZ0XFxdXFw6Ym9yZGVyLXJbZGF0YS1zaWRlPWxlZnRde2JvcmRlci1yaWdodC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1yaWdodC13aWR0aDoxcHh9LmRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDpzbGlkZS1pbi1mcm9tLXJpZ2h0LTJbZGF0YS1zaWRlPWxlZnRdey0tdHctZW50ZXItdHJhbnNsYXRlLXg6Y2FsYygyKnZhcigtLXNwYWNpbmcpKX0uZGF0YS1cXFtzaWRlXFw9bGVmdFxcXVxcOmRhdGEtZW5kaW5nLXN0eWxlXFw6dHJhbnNsYXRlLXgtXFxbLTJcXC41cmVtXFxdW2RhdGEtc2lkZT1sZWZ0XVtkYXRhLWVuZGluZy1zdHlsZV0sLmRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDpkYXRhLXN0YXJ0aW5nLXN0eWxlXFw6dHJhbnNsYXRlLXgtXFxbLTJcXC41cmVtXFxdW2RhdGEtc2lkZT1sZWZ0XVtkYXRhLXN0YXJ0aW5nLXN0eWxlXXstLXR3LXRyYW5zbGF0ZS14Oi0yLjVyZW07dHJhbnNsYXRlOnZhcigtLXR3LXRyYW5zbGF0ZS14KXZhcigtLXR3LXRyYW5zbGF0ZS15KX0uZGF0YS1cXFtzaWRlXFw9cmlnaHRcXF1cXDppbnNldC15LTBbZGF0YS1zaWRlPXJpZ2h0XXtpbnNldC1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOnJpZ2h0LTBbZGF0YS1zaWRlPXJpZ2h0XXtyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjApfS5kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOmgtZnVsbFtkYXRhLXNpZGU9cmlnaHRde2hlaWdodDoxMDAlfS5kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOnctM1xcLzRbZGF0YS1zaWRlPXJpZ2h0XXt3aWR0aDo3NSV9LmRhdGEtXFxbc2lkZVxcPXJpZ2h0XFxdXFw6Ym9yZGVyLWxbZGF0YS1zaWRlPXJpZ2h0XXtib3JkZXItbGVmdC1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1sZWZ0LXdpZHRoOjFweH0uZGF0YS1cXFtzaWRlXFw9cmlnaHRcXF1cXDpzbGlkZS1pbi1mcm9tLWxlZnQtMltkYXRhLXNpZGU9cmlnaHRdey0tdHctZW50ZXItdHJhbnNsYXRlLXg6Y2FsYygyKnZhcigtLXNwYWNpbmcpKi0xKX0uZGF0YS1cXFtzaWRlXFw9cmlnaHRcXF1cXDpkYXRhLWVuZGluZy1zdHlsZVxcOnRyYW5zbGF0ZS14LVxcWzJcXC41cmVtXFxdW2RhdGEtc2lkZT1yaWdodF1bZGF0YS1lbmRpbmctc3R5bGVdLC5kYXRhLVxcW3NpZGVcXD1yaWdodFxcXVxcOmRhdGEtc3RhcnRpbmctc3R5bGVcXDp0cmFuc2xhdGUteC1cXFsyXFwuNXJlbVxcXVtkYXRhLXNpZGU9cmlnaHRdW2RhdGEtc3RhcnRpbmctc3R5bGVdey0tdHctdHJhbnNsYXRlLXg6Mi41cmVtO3RyYW5zbGF0ZTp2YXIoLS10dy10cmFuc2xhdGUteCl2YXIoLS10dy10cmFuc2xhdGUteSl9LmRhdGEtXFxbc2lkZVxcPXRvcFxcXVxcOmluc2V0LXgtMFtkYXRhLXNpZGU9dG9wXXtpbnNldC1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uZGF0YS1cXFtzaWRlXFw9dG9wXFxdXFw6dG9wLTBbZGF0YS1zaWRlPXRvcF17dG9wOmNhbGModmFyKC0tc3BhY2luZykqMCl9LmRhdGEtXFxbc2lkZVxcPXRvcFxcXVxcOmgtYXV0b1tkYXRhLXNpZGU9dG9wXXtoZWlnaHQ6YXV0b30uZGF0YS1cXFtzaWRlXFw9dG9wXFxdXFw6Ym9yZGVyLWJbZGF0YS1zaWRlPXRvcF17Ym9yZGVyLWJvdHRvbS1zdHlsZTp2YXIoLS10dy1ib3JkZXItc3R5bGUpO2JvcmRlci1ib3R0b20td2lkdGg6MXB4fS5kYXRhLVxcW3NpZGVcXD10b3BcXF1cXDpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yW2RhdGEtc2lkZT10b3Bdey0tdHctZW50ZXItdHJhbnNsYXRlLXk6Y2FsYygyKnZhcigtLXNwYWNpbmcpKX0uZGF0YS1cXFtzaWRlXFw9dG9wXFxdXFw6ZGF0YS1lbmRpbmctc3R5bGVcXDp0cmFuc2xhdGUteS1cXFstMlxcLjVyZW1cXF1bZGF0YS1zaWRlPXRvcF1bZGF0YS1lbmRpbmctc3R5bGVdLC5kYXRhLVxcW3NpZGVcXD10b3BcXF1cXDpkYXRhLXN0YXJ0aW5nLXN0eWxlXFw6dHJhbnNsYXRlLXktXFxbLTJcXC41cmVtXFxdW2RhdGEtc2lkZT10b3BdW2RhdGEtc3RhcnRpbmctc3R5bGVdey0tdHctdHJhbnNsYXRlLXk6LTIuNXJlbTt0cmFuc2xhdGU6dmFyKC0tdHctdHJhbnNsYXRlLXgpdmFyKC0tdHctdHJhbnNsYXRlLXkpfS5kYXRhLVxcW3NpemVcXD1sZ1xcXVxcOnNpemUtMTBbZGF0YS1zaXplPWxnXXt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjEwKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxMCl9LmRhdGEtXFxbc2l6ZVxcPXNtXFxdXFw6c2l6ZS02W2RhdGEtc2l6ZT1zbV17d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo2KX0uZGF0YS1cXFtzaXplXFw9c21cXF1cXDpnYXAtM1tkYXRhLXNpemU9c21de2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjMpfS5kYXRhLVxcW3NpemVcXD1zbVxcXVxcOnB5LTNbZGF0YS1zaXplPXNtXXtwYWRkaW5nLWJsb2NrOmNhbGModmFyKC0tc3BhY2luZykqMyl9LmRhdGEtXFxbc2l6ZVxcPXNtXFxdXFw6aGFzLWRhdGEtXFxbc2xvdFxcPWNhcmQtZm9vdGVyXFxdXFw6cGItMFtkYXRhLXNpemU9c21dOmhhcyhbZGF0YS1zbG90PWNhcmQtZm9vdGVyXSl7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX06aXMoLlxcKlxcOmRhdGEtXFxbc2xvdFxcPWF2YXRhclxcXVxcOnJpbmctMlx1MDAzZSopW2RhdGEtc2xvdD1hdmF0YXJdey0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCwpMCAwIDAgY2FsYygycHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcixjdXJyZW50Y29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX06aXMoLlxcKlxcOmRhdGEtXFxbc2xvdFxcPWF2YXRhclxcXVxcOnJpbmctYmFja2dyb3VuZFx1MDAzZSopW2RhdGEtc2xvdD1hdmF0YXJdey0tdHctcmluZy1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKX06aXMoLlxcKlxcOmRhdGEtXFxbc2xvdFxcPWlucHV0LWdyb3VwLWFkZG9uXFxdXFw6cGwtMlxcIVx1MDAzZSopW2RhdGEtc2xvdD1pbnB1dC1ncm91cC1hZGRvbl17cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMikhaW1wb3J0YW50fS5kYXRhLVxcW3N0YXRlXFw9c2VsZWN0ZWRcXF1cXDpiZy1tdXRlZFtkYXRhLXN0YXRlPXNlbGVjdGVkXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDp0ZXh0LWRlc3RydWN0aXZlW2RhdGEtdmFyaWFudD1kZXN0cnVjdGl2ZV17Y29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfS5kYXRhLVxcW3ZhcmlhbnRcXD1kZXN0cnVjdGl2ZVxcXVxcOmZvY3VzXFw6YmctZGVzdHJ1Y3RpdmVcXC8xMFtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVdOmZvY3Vze2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDpmb2N1c1xcOmJnLWRlc3RydWN0aXZlXFwvMTBbZGF0YS12YXJpYW50PWRlc3RydWN0aXZlXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkxMCUsdHJhbnNwYXJlbnQpfX0uZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDpmb2N1c1xcOnRleHQtZGVzdHJ1Y3RpdmVbZGF0YS12YXJpYW50PWRlc3RydWN0aXZlXTpmb2N1c3tjb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LmRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXDpyb3VuZGVkLW5vbmVbZGF0YS12YXJpYW50PWxpbmVde2JvcmRlci1yYWRpdXM6MH1Ac3VwcG9ydHMgKCgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS10dykpIG9yIChiYWNrZHJvcC1maWx0ZXI6dmFyKC0tdHcpKSl7LnN1cHBvcnRzLWJhY2tkcm9wLWZpbHRlclxcOmJhY2tkcm9wLWJsdXIteHN7LS10dy1iYWNrZHJvcC1ibHVyOmJsdXIodmFyKC0tYmx1ci14cykpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIsKXZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MsKXZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsKXZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUsKXZhcigtLXR3LWJhY2tkcm9wLWludmVydCwpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwpdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUsKXZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIsKXZhcigtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3MsKXZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsKXZhcigtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUsKXZhcigtLXR3LWJhY2tkcm9wLWludmVydCwpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwpdmFyKC0tdHctYmFja2Ryb3Atc2F0dXJhdGUsKXZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCl9fUBtZWRpYSAobWluLXdpZHRoOjQwcmVtKXsuc21cXDpibG9ja3tkaXNwbGF5OmJsb2NrfS5zbVxcOmhpZGRlbntkaXNwbGF5Om5vbmV9LnNtXFw6aW5saW5le2Rpc3BsYXk6aW5saW5lfS5zbVxcOmlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXh9LnNtXFw6aC0yNHtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyNCl9LnNtXFw6dy00MHt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjQwKX0uc21cXDp3LWF1dG97d2lkdGg6YXV0b30uc21cXDptYXgtdy1zbXttYXgtd2lkdGg6dmFyKC0tY29udGFpbmVyLXNtKX0uc21cXDpmbGV4LW5vbmV7ZmxleDpub25lfS5zbVxcOmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0uc21cXDpncmlkLWNvbHMtM3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSl9LnNtXFw6ZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5zbVxcOml0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXJ9LnNtXFw6anVzdGlmeS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zbVxcOmp1c3RpZnktZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uc21cXDpwLTV7cGFkZGluZzpjYWxjKHZhcigtLXNwYWNpbmcpKjUpfS5zbVxcOnAtNntwYWRkaW5nOmNhbGModmFyKC0tc3BhY2luZykqNil9LnNtXFw6cC04e3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4KX0uc21cXDp0ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnNtXFw6dGV4dC0zeGx7Zm9udC1zaXplOnZhcigtLXRleHQtM3hsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtM3hsLS1saW5lLWhlaWdodCkpfS5zbVxcOnRleHQtYmFzZXtmb250LXNpemU6dmFyKC0tdGV4dC1iYXNlKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtYmFzZS0tbGluZS1oZWlnaHQpKX0uc21cXDp0ZXh0LXhse2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXhsKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQteGwtLWxpbmUtaGVpZ2h0KSl9LmRhdGEtXFxbc2lkZVxcPWxlZnRcXF1cXDpzbVxcOm1heC13LXNtW2RhdGEtc2lkZT1sZWZ0XSwuZGF0YS1cXFtzaWRlXFw9cmlnaHRcXF1cXDpzbVxcOm1heC13LXNtW2RhdGEtc2lkZT1yaWdodF17bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci1zbSl9fUBtZWRpYSAobWluLXdpZHRoOjQ4cmVtKXsubWRcXDppbnNldC14LWF1dG97aW5zZXQtaW5saW5lOmF1dG99Lm1kXFw6cmlnaHQtNHtyaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5tZFxcOmJvdHRvbS00e2JvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5tZFxcOmxlZnQtYXV0b3tsZWZ0OmF1dG99Lm1kXFw6YmxvY2t7ZGlzcGxheTpibG9ja30ubWRcXDpmbGV4e2Rpc3BsYXk6ZmxleH0ubWRcXDpoaWRkZW57ZGlzcGxheTpub25lfS5tZFxcOnRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsfS5tZFxcOm1pbi13LTB7bWluLXdpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMCl9Lm1kXFw6Z3JpZC1jb2xzLTF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxLG1pbm1heCgwLDFmcikpfS5tZFxcOmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0ubWRcXDpncmlkLWNvbHMtM3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSl9Lm1kXFw6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfS5tZFxcOmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubWRcXDppdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5tZFxcOmdhcC0xe2dhcDpjYWxjKHZhcigtLXNwYWNpbmcpKjEpfS5tZFxcOnBiLTB7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0ubWRcXDp0ZXh0LXNte2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LXNtKTtsaW5lLWhlaWdodDp2YXIoLS10dy1sZWFkaW5nLHZhcigtLXRleHQtc20tLWxpbmUtaGVpZ2h0KSl9Lm1kXFw6d2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfX1AbWVkaWEgKG1pbi13aWR0aDo2NHJlbSl7LmxnXFw6c3RpY2t5e3Bvc2l0aW9uOnN0aWNreX0ubGdcXDp0b3AtNHt0b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0ubGdcXDpibG9ja3tkaXNwbGF5OmJsb2NrfS5sZ1xcOmhpZGRlbntkaXNwbGF5Om5vbmV9LmxnXFw6dGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGx9LmxnXFw6dy03Mnt3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjcyKX0ubGdcXDpncmlkLWNvbHMtMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LmxnXFw6Z3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5sZ1xcOmdyaWQtY29scy00e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX0ubGdcXDpncmlkLWNvbHMtNXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDUsbWlubWF4KDAsMWZyKSl9LmxnXFw6Z3JpZC1jb2xzLVxcWzFmcl8zNDBweFxcXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDM0MHB4fS5sZ1xcOmZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30ubGdcXDpzZWxmLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydH19QG1lZGlhIChtaW4td2lkdGg6ODByZW0pey54bFxcOnctODB7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo4MCl9fS5kYXJrXFw6YmxvY2s6aXMoLmRhcmsgKil7ZGlzcGxheTpibG9ja30uZGFya1xcOmhpZGRlbjppcyguZGFyayAqKXtkaXNwbGF5Om5vbmV9LmRhcmtcXDpib3JkZXItaW5wdXQ6aXMoLmRhcmsgKil7Ym9yZGVyLWNvbG9yOnZhcigtLWlucHV0KX0uZGFya1xcOmJnLWRlc3RydWN0aXZlXFwvMjA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6YmctZGVzdHJ1Y3RpdmVcXC8yMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkyMCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmJnLWlucHV0XFwvMzA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6YmctaW5wdXRcXC8zMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCkzMCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmJnLXRyYW5zcGFyZW50OmlzKC5kYXJrICope2JhY2tncm91bmQtY29sb3I6IzAwMDB9LmRhcmtcXDp0ZXh0LWdyZWVuLTQwMDppcyguZGFyayAqKXtjb2xvcjp2YXIoLS1jb2xvci1ncmVlbi00MDApfS5kYXJrXFw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kOmlzKC5kYXJrICope2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5kYXJrXFw6cHJvc2UtaW52ZXJ0OmlzKC5kYXJrICopey0tdHctcHJvc2UtYm9keTp2YXIoLS10dy1wcm9zZS1pbnZlcnQtYm9keSk7LS10dy1wcm9zZS1oZWFkaW5nczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtaGVhZGluZ3MpOy0tdHctcHJvc2UtbGVhZDp2YXIoLS10dy1wcm9zZS1pbnZlcnQtbGVhZCk7LS10dy1wcm9zZS1saW5rczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtbGlua3MpOy0tdHctcHJvc2UtYm9sZDp2YXIoLS10dy1wcm9zZS1pbnZlcnQtYm9sZCk7LS10dy1wcm9zZS1jb3VudGVyczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtY291bnRlcnMpOy0tdHctcHJvc2UtYnVsbGV0czp2YXIoLS10dy1wcm9zZS1pbnZlcnQtYnVsbGV0cyk7LS10dy1wcm9zZS1ocjp2YXIoLS10dy1wcm9zZS1pbnZlcnQtaHIpOy0tdHctcHJvc2UtcXVvdGVzOnZhcigtLXR3LXByb3NlLWludmVydC1xdW90ZXMpOy0tdHctcHJvc2UtcXVvdGUtYm9yZGVyczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtcXVvdGUtYm9yZGVycyk7LS10dy1wcm9zZS1jYXB0aW9uczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtY2FwdGlvbnMpOy0tdHctcHJvc2Uta2JkOnZhcigtLXR3LXByb3NlLWludmVydC1rYmQpOy0tdHctcHJvc2Uta2JkLXNoYWRvd3M6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LWtiZC1zaGFkb3dzKTstLXR3LXByb3NlLWNvZGU6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LWNvZGUpOy0tdHctcHJvc2UtcHJlLWNvZGU6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LXByZS1jb2RlKTstLXR3LXByb3NlLXByZS1iZzp2YXIoLS10dy1wcm9zZS1pbnZlcnQtcHJlLWJnKTstLXR3LXByb3NlLXRoLWJvcmRlcnM6dmFyKC0tdHctcHJvc2UtaW52ZXJ0LXRoLWJvcmRlcnMpOy0tdHctcHJvc2UtdGQtYm9yZGVyczp2YXIoLS10dy1wcm9zZS1pbnZlcnQtdGQtYm9yZGVycyl9LmRhcmtcXDphZnRlclxcOm1peC1ibGVuZC1saWdodGVuOmlzKC5kYXJrICopOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuZGFya1xcOmhvdmVyXFw6YmctZGVzdHJ1Y3RpdmVcXC8zMDppcyguZGFyayAqKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LmRhcmtcXDpob3ZlclxcOmJnLWRlc3RydWN0aXZlXFwvMzA6aXMoLmRhcmsgKik6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMzAlLHRyYW5zcGFyZW50KX19LmRhcmtcXDpob3ZlclxcOmJnLWlucHV0XFwvNTA6aXMoLmRhcmsgKik6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6aG92ZXJcXDpiZy1pbnB1dFxcLzUwOmlzKC5kYXJrICopOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWlucHV0KTUwJSx0cmFuc3BhcmVudCl9fS5kYXJrXFw6aG92ZXJcXDpiZy1tdXRlZFxcLzUwOmlzKC5kYXJrICopOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1xcOmhvdmVyXFw6YmctbXV0ZWRcXC81MDppcyguZGFyayAqKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1tdXRlZCk1MCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmhvdmVyXFw6dGV4dC1mb3JlZ3JvdW5kOmlzKC5kYXJrICopOmhvdmVye2NvbG9yOnZhcigtLWZvcmVncm91bmQpfX0uZGFya1xcOmZvY3VzLXZpc2libGVcXDpyaW5nLWRlc3RydWN0aXZlXFwvNDA6aXMoLmRhcmsgKik6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1xcOmZvY3VzLXZpc2libGVcXDpyaW5nLWRlc3RydWN0aXZlXFwvNDA6aXMoLmRhcmsgKik6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTQwJSx0cmFuc3BhcmVudCl9fS5kYXJrXFw6ZGlzYWJsZWRcXDpiZy1pbnB1dFxcLzgwOmlzKC5kYXJrICopOmRpc2FibGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1xcOmRpc2FibGVkXFw6YmctaW5wdXRcXC84MDppcyguZGFyayAqKTpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCk4MCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmRpc2FibGVkXFw6YmctdHJhbnNwYXJlbnQ6aXMoLmRhcmsgKik6ZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZGFya1xcOmhhcy1kaXNhYmxlZFxcOmJnLWlucHV0XFwvODA6aXMoLmRhcmsgKik6aGFzKDpkaXNhYmxlZCl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6aGFzLWRpc2FibGVkXFw6YmctaW5wdXRcXC84MDppcyguZGFyayAqKTpoYXMoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCk4MCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmhhcy1cXFtcXFtkYXRhLXNsb3RcXF1cXFthcmlhLWludmFsaWRcXD10cnVlXFxdXFxdXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzQwOmlzKC5kYXJrICopOmhhcyhbZGF0YS1zbG90XVthcmlhLWludmFsaWQ9dHJ1ZV0pey0tdHctcmluZy1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6aGFzLVxcW1xcW2RhdGEtc2xvdFxcXVxcW2FyaWEtaW52YWxpZFxcPXRydWVcXF1cXF1cXDpyaW5nLWRlc3RydWN0aXZlXFwvNDA6aXMoLmRhcmsgKik6aGFzKFtkYXRhLXNsb3RdW2FyaWEtaW52YWxpZD10cnVlXSl7LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk0MCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmFyaWEtaW52YWxpZFxcOmJvcmRlci1kZXN0cnVjdGl2ZVxcLzUwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1xcOmFyaWEtaW52YWxpZFxcOmJvcmRlci1kZXN0cnVjdGl2ZVxcLzUwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIG9rbGFiLHZhcigtLWRlc3RydWN0aXZlKTUwJSx0cmFuc3BhcmVudCl9fS5kYXJrXFw6YXJpYS1pbnZhbGlkXFw6cmluZy1kZXN0cnVjdGl2ZVxcLzQwOmlzKC5kYXJrICopW2FyaWEtaW52YWxpZD10cnVlXXstLXR3LXJpbmctY29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfUBzdXBwb3J0cyAoY29sb3I6Y29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKXsuZGFya1xcOmFyaWEtaW52YWxpZFxcOnJpbmctZGVzdHJ1Y3RpdmVcXC80MDppcyguZGFyayAqKVthcmlhLWludmFsaWQ9dHJ1ZV17LS10dy1yaW5nLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSk0MCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmRhdGEtXFxbdmFyaWFudFxcPWRlc3RydWN0aXZlXFxdXFw6Zm9jdXNcXDpiZy1kZXN0cnVjdGl2ZVxcLzIwOmlzKC5kYXJrICopW2RhdGEtdmFyaWFudD1kZXN0cnVjdGl2ZV06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6ZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDpmb2N1c1xcOmJnLWRlc3RydWN0aXZlXFwvMjA6aXMoLmRhcmsgKilbZGF0YS12YXJpYW50PWRlc3RydWN0aXZlXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1kZXN0cnVjdGl2ZSkyMCUsdHJhbnNwYXJlbnQpfX0uZGF0YS1vcGVuXFw6YW5pbWF0ZS1pbjp3aGVyZShbZGF0YS1zdGF0ZT1vcGVuXSksLmRhdGEtb3BlblxcOmFuaW1hdGUtaW46d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7YW5pbWF0aW9uOmVudGVyIHZhcigtLXR3LWFuaW1hdGlvbi1kdXJhdGlvbix2YXIoLS10dy1kdXJhdGlvbiwuMTVzKSl2YXIoLS10dy1lYXNlLGVhc2UpdmFyKC0tdHctYW5pbWF0aW9uLWRlbGF5LDBzKXZhcigtLXR3LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsMSl2YXIoLS10dy1hbmltYXRpb24tZGlyZWN0aW9uLG5vcm1hbCl2YXIoLS10dy1hbmltYXRpb24tZmlsbC1tb2RlLG5vbmUpfS5kYXRhLW9wZW5cXDpiZy1hY2NlbnQ6d2hlcmUoW2RhdGEtc3RhdGU9b3Blbl0pLC5kYXRhLW9wZW5cXDpiZy1hY2NlbnQ6d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5kYXRhLW9wZW5cXDp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kOndoZXJlKFtkYXRhLXN0YXRlPW9wZW5dKSwuZGF0YS1vcGVuXFw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZDp3aGVyZShbZGF0YS1vcGVuXTpub3QoW2RhdGEtb3Blbj1mYWxzZV0pKXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9LmRhdGEtb3BlblxcOmZhZGUtaW4tMDp3aGVyZShbZGF0YS1zdGF0ZT1vcGVuXSksLmRhdGEtb3BlblxcOmZhZGUtaW4tMDp3aGVyZShbZGF0YS1vcGVuXTpub3QoW2RhdGEtb3Blbj1mYWxzZV0pKXstLXR3LWVudGVyLW9wYWNpdHk6MH0uZGF0YS1vcGVuXFw6em9vbS1pbi05NTp3aGVyZShbZGF0YS1zdGF0ZT1vcGVuXSksLmRhdGEtb3BlblxcOnpvb20taW4tOTU6d2hlcmUoW2RhdGEtb3Blbl06bm90KFtkYXRhLW9wZW49ZmFsc2VdKSl7LS10dy1lbnRlci1zY2FsZTouOTV9LmRhdGEtY2xvc2VkXFw6YW5pbWF0ZS1vdXQ6d2hlcmUoW2RhdGEtc3RhdGU9Y2xvc2VkXSksLmRhdGEtY2xvc2VkXFw6YW5pbWF0ZS1vdXQ6d2hlcmUoW2RhdGEtY2xvc2VkXTpub3QoW2RhdGEtY2xvc2VkPWZhbHNlXSkpe2FuaW1hdGlvbjpleGl0IHZhcigtLXR3LWFuaW1hdGlvbi1kdXJhdGlvbix2YXIoLS10dy1kdXJhdGlvbiwuMTVzKSl2YXIoLS10dy1lYXNlLGVhc2UpdmFyKC0tdHctYW5pbWF0aW9uLWRlbGF5LDBzKXZhcigtLXR3LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsMSl2YXIoLS10dy1hbmltYXRpb24tZGlyZWN0aW9uLG5vcm1hbCl2YXIoLS10dy1hbmltYXRpb24tZmlsbC1tb2RlLG5vbmUpfS5kYXRhLWNsb3NlZFxcOm92ZXJmbG93LWhpZGRlbjp3aGVyZShbZGF0YS1zdGF0ZT1jbG9zZWRdKSwuZGF0YS1jbG9zZWRcXDpvdmVyZmxvdy1oaWRkZW46d2hlcmUoW2RhdGEtY2xvc2VkXTpub3QoW2RhdGEtY2xvc2VkPWZhbHNlXSkpe292ZXJmbG93OmhpZGRlbn0uZGF0YS1jbG9zZWRcXDpmYWRlLW91dC0wOndoZXJlKFtkYXRhLXN0YXRlPWNsb3NlZF0pLC5kYXRhLWNsb3NlZFxcOmZhZGUtb3V0LTA6d2hlcmUoW2RhdGEtY2xvc2VkXTpub3QoW2RhdGEtY2xvc2VkPWZhbHNlXSkpey0tdHctZXhpdC1vcGFjaXR5OjB9LmRhdGEtY2xvc2VkXFw6em9vbS1vdXQtOTU6d2hlcmUoW2RhdGEtc3RhdGU9Y2xvc2VkXSksLmRhdGEtY2xvc2VkXFw6em9vbS1vdXQtOTU6d2hlcmUoW2RhdGEtY2xvc2VkXTpub3QoW2RhdGEtY2xvc2VkPWZhbHNlXSkpey0tdHctZXhpdC1zY2FsZTouOTV9LmRhdGEtc2VsZWN0ZWRcXDpiZy1tdXRlZDp3aGVyZShbZGF0YS1zZWxlY3RlZD10cnVlXSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9LmRhdGEtc2VsZWN0ZWRcXDp0ZXh0LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtc2VsZWN0ZWQ9dHJ1ZV0pe2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5kYXRhLWRpc2FibGVkXFw6cG9pbnRlci1ldmVudHMtbm9uZTp3aGVyZShbZGF0YS1kaXNhYmxlZD10cnVlXSksLmRhdGEtZGlzYWJsZWRcXDpwb2ludGVyLWV2ZW50cy1ub25lOndoZXJlKFtkYXRhLWRpc2FibGVkXTpub3QoW2RhdGEtZGlzYWJsZWQ9ZmFsc2VdKSl7cG9pbnRlci1ldmVudHM6bm9uZX0uZGF0YS1kaXNhYmxlZFxcOm9wYWNpdHktNTA6d2hlcmUoW2RhdGEtZGlzYWJsZWQ9dHJ1ZV0pLC5kYXRhLWRpc2FibGVkXFw6b3BhY2l0eS01MDp3aGVyZShbZGF0YS1kaXNhYmxlZF06bm90KFtkYXRhLWRpc2FibGVkPWZhbHNlXSkpe29wYWNpdHk6LjV9LmRhdGEtYWN0aXZlXFw6YmctYmFja2dyb3VuZDp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGF0YS1hY3RpdmVcXDpiZy1iYWNrZ3JvdW5kOndoZXJlKFtkYXRhLWFjdGl2ZV06bm90KFtkYXRhLWFjdGl2ZT1mYWxzZV0pKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpfS5kYXRhLWFjdGl2ZVxcOnRleHQtZm9yZWdyb3VuZDp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGF0YS1hY3RpdmVcXDp0ZXh0LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5ncm91cC1kYXRhLVxcW3ZhcmlhbnRcXD1kZWZhdWx0XFxdXFwvdGFicy1saXN0XFw6ZGF0YS1hY3RpdmVcXDpzaGFkb3ctc206aXMoOndoZXJlKC5ncm91cFxcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWRlZmF1bHRdICopOndoZXJlKFtkYXRhLXN0YXRlPWFjdGl2ZV0pLC5ncm91cC1kYXRhLVxcW3ZhcmlhbnRcXD1kZWZhdWx0XFxdXFwvdGFicy1saXN0XFw6ZGF0YS1hY3RpdmVcXDpzaGFkb3ctc206aXMoOndoZXJlKC5ncm91cFxcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWRlZmF1bHRdICopOndoZXJlKFtkYXRhLWFjdGl2ZV06bm90KFtkYXRhLWFjdGl2ZT1mYWxzZV0pKXstLXR3LXNoYWRvdzowIDFweCAzcHggMCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSwwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXR3LWluc2V0LXNoYWRvdyksdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdyl9Lmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOmJnLXRyYW5zcGFyZW50OmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZ3JvdXAtZGF0YS1cXFt2YXJpYW50XFw9bGluZVxcXVxcL3RhYnMtbGlzdFxcOmRhdGEtYWN0aXZlXFw6YmctdHJhbnNwYXJlbnQ6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWxpbmVdICopOndoZXJlKFtkYXRhLWFjdGl2ZV06bm90KFtkYXRhLWFjdGl2ZT1mYWxzZV0pKXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ncm91cC1kYXRhLVxcW3ZhcmlhbnRcXD1saW5lXFxdXFwvdGFicy1saXN0XFw6ZGF0YS1hY3RpdmVcXDpzaGFkb3ctbm9uZTppcyg6d2hlcmUoLmdyb3VwXFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOnNoYWRvdy1ub25lOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7LS10dy1zaGFkb3c6MCAwICMwMDAwO2JveC1zaGFkb3c6dmFyKC0tdHctaW5zZXQtc2hhZG93KSx2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93KX06aXMoLmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOmFmdGVyXFw6b3BhY2l0eS0xMDA6aXMoOndoZXJlKC5ncm91cFxcL3RhYnMtbGlzdClbZGF0YS12YXJpYW50PWxpbmVdICopOndoZXJlKFtkYXRhLXN0YXRlPWFjdGl2ZV0pLC5ncm91cC1kYXRhLVxcW3ZhcmlhbnRcXD1saW5lXFxdXFwvdGFicy1saXN0XFw6ZGF0YS1hY3RpdmVcXDphZnRlclxcOm9wYWNpdHktMTAwOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSkpOmFmdGVye2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7b3BhY2l0eToxfS5kYXJrXFw6ZGF0YS1hY3RpdmVcXDpib3JkZXItaW5wdXQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtc3RhdGU9YWN0aXZlXSksLmRhcmtcXDpkYXRhLWFjdGl2ZVxcOmJvcmRlci1pbnB1dDppcyguZGFyayAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7Ym9yZGVyLWNvbG9yOnZhcigtLWlucHV0KX0uZGFya1xcOmRhdGEtYWN0aXZlXFw6YmctaW5wdXRcXC8zMDppcyguZGFyayAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGFya1xcOmRhdGEtYWN0aXZlXFw6YmctaW5wdXRcXC8zMDppcyguZGFyayAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dCl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5kYXJrXFw6ZGF0YS1hY3RpdmVcXDpiZy1pbnB1dFxcLzMwOmlzKC5kYXJrICopOndoZXJlKFtkYXRhLXN0YXRlPWFjdGl2ZV0pLC5kYXJrXFw6ZGF0YS1hY3RpdmVcXDpiZy1pbnB1dFxcLzMwOmlzKC5kYXJrICopOndoZXJlKFtkYXRhLWFjdGl2ZV06bm90KFtkYXRhLWFjdGl2ZT1mYWxzZV0pKXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1pbnB1dCkzMCUsdHJhbnNwYXJlbnQpfX0uZGFya1xcOmRhdGEtYWN0aXZlXFw6dGV4dC1mb3JlZ3JvdW5kOmlzKC5kYXJrICopOndoZXJlKFtkYXRhLXN0YXRlPWFjdGl2ZV0pLC5kYXJrXFw6ZGF0YS1hY3RpdmVcXDp0ZXh0LWZvcmVncm91bmQ6aXMoLmRhcmsgKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5kYXJrXFw6Z3JvdXAtZGF0YS1cXFt2YXJpYW50XFw9bGluZVxcXVxcL3RhYnMtbGlzdFxcOmRhdGEtYWN0aXZlXFw6Ym9yZGVyLXRyYW5zcGFyZW50OmlzKC5kYXJrICopOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGFya1xcOmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOmJvcmRlci10cmFuc3BhcmVudDppcyguZGFyayAqKTppcyg6d2hlcmUoLmdyb3VwXFwvdGFicy1saXN0KVtkYXRhLXZhcmlhbnQ9bGluZV0gKik6d2hlcmUoW2RhdGEtYWN0aXZlXTpub3QoW2RhdGEtYWN0aXZlPWZhbHNlXSkpe2JvcmRlci1jb2xvcjojMDAwMH0uZGFya1xcOmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOmJnLXRyYW5zcGFyZW50OmlzKC5kYXJrICopOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1zdGF0ZT1hY3RpdmVdKSwuZGFya1xcOmdyb3VwLWRhdGEtXFxbdmFyaWFudFxcPWxpbmVcXF1cXC90YWJzLWxpc3RcXDpkYXRhLWFjdGl2ZVxcOmJnLXRyYW5zcGFyZW50OmlzKC5kYXJrICopOmlzKDp3aGVyZSguZ3JvdXBcXC90YWJzLWxpc3QpW2RhdGEtdmFyaWFudD1saW5lXSAqKTp3aGVyZShbZGF0YS1hY3RpdmVdOm5vdChbZGF0YS1hY3RpdmU9ZmFsc2VdKSl7YmFja2dyb3VuZC1jb2xvcjojMDAwMH0uZGF0YS1ob3Jpem9udGFsXFw6aC1weDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj1ob3Jpem9udGFsXSl7aGVpZ2h0OjFweH0uZGF0YS1ob3Jpem9udGFsXFw6dy1mdWxsOndoZXJlKFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxdKXt3aWR0aDoxMDAlfS5kYXRhLWhvcml6b250YWxcXDpmbGV4LWNvbDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj1ob3Jpem9udGFsXSl7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5kYXRhLXZlcnRpY2FsXFw6dy1weDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pe3dpZHRoOjFweH0uZGF0YS12ZXJ0aWNhbFxcOnNlbGYtc3RyZXRjaDp3aGVyZShbZGF0YS1vcmllbnRhdGlvbj12ZXJ0aWNhbF0pe2FsaWduLXNlbGY6c3RyZXRjaH0uXFxbXFxcdTAwMjZfYVxcXVxcOnRleHQtcHJpbWFyeSBhe2NvbG9yOnZhcigtLXByaW1hcnkpfS5cXFtcXFx1MDAyNl9oM1xcXVxcOm10LTYgaDN7bWFyZ2luLXRvcDpjYWxjKHZhcigtLXNwYWNpbmcpKjYpfS5cXFtcXFx1MDAyNl9oM1xcXVxcOm1iLTIgaDN7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5cXFtcXFx1MDAyNl9oM1xcXVxcOnRleHQtZm9yZWdyb3VuZCBoM3tjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX0uXFxbXFxcdTAwMjZfc3ZnXFxdXFw6cG9pbnRlci1ldmVudHMtbm9uZSBzdmd7cG9pbnRlci1ldmVudHM6bm9uZX0uXFxbXFxcdTAwMjZfc3ZnXFxdXFw6c2hyaW5rLTAgc3Zne2ZsZXgtc2hyaW5rOjB9LlxcW1xcXHUwMDI2X3N2Z1xcOm5vdFxcKFxcW2NsYXNzXFwqXFw9XFwnc2l6ZS1cXCdcXF1cXClcXF1cXDpzaXplLTMgc3ZnOm5vdChbY2xhc3MqPXNpemUtXSl7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uXFxbXFxcdTAwMjZfc3ZnXFw6bm90XFwoXFxbY2xhc3NcXCpcXD1cXCdzaXplLVxcJ1xcXVxcKVxcXVxcOnNpemUtM1xcLjUgc3ZnOm5vdChbY2xhc3MqPXNpemUtXSl7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjMuNSl9LlxcW1xcXHUwMDI2X3N2Z1xcOm5vdFxcKFxcW2NsYXNzXFwqXFw9XFwnc2l6ZS1cXCdcXF1cXClcXF1cXDpzaXplLTQgc3ZnOm5vdChbY2xhc3MqPXNpemUtXSl7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSo0KX0uXFxbXFxcdTAwMjZfdHJcXF1cXDpib3JkZXItYiB0cntib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LlxcW1xcXHUwMDI2X3RyXFw6bGFzdC1jaGlsZFxcXVxcOmJvcmRlci0wIHRyOmxhc3QtY2hpbGR7Ym9yZGVyLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLXdpZHRoOjB9LlxcW1xcXHUwMDI2XFw6XFw6LXdlYmtpdC1kZXRhaWxzLW1hcmtlclxcXVxcOmhpZGRlbjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcntkaXNwbGF5Om5vbmV9LlxcW1xcXHUwMDI2XFw6XFw6LXdlYmtpdC1zY3JvbGxiYXJcXF1cXDpoaWRkZW46Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uXFxbXFxcdTAwMjZcXDpoYXNcXChcXFtyb2xlXFw9Y2hlY2tib3hcXF1cXClcXF1cXDpwci0wOmhhcyhbcm9sZT1jaGVja2JveF0pe3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSowKX0uXFxbXFwuYm9yZGVyLWJcXF1cXDpwYi0yLmJvcmRlci1ie3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMil9LlxcW1xcLmJvcmRlci1iXFxdXFw6cGItNC5ib3JkZXItYntwYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXNwYWNpbmcpKjQpfS5ncm91cC1kYXRhLVxcW3NpemVcXD1zbVxcXVxcL2NhcmRcXDpcXFtcXC5ib3JkZXItYlxcXVxcOnBiLTM6aXMoOndoZXJlKC5ncm91cFxcL2NhcmQpW2RhdGEtc2l6ZT1zbV0gKikuYm9yZGVyLWJ7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uXFxbXFwuYm9yZGVyLXRcXF1cXDpwdC0yLmJvcmRlci10e3BhZGRpbmctdG9wOmNhbGModmFyKC0tc3BhY2luZykqMil9OmlzKC5cXCpcXCpcXDpcXFtcXFtjbWRrLWdyb3VwLWhlYWRpbmdcXF1cXF1cXDpweC0yICopW2NtZGstZ3JvdXAtaGVhZGluZ117cGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1zcGFjaW5nKSoyKX06aXMoLlxcKlxcKlxcOlxcW1xcW2NtZGstZ3JvdXAtaGVhZGluZ1xcXVxcXVxcOnB5LTFcXC41ICopW2NtZGstZ3JvdXAtaGVhZGluZ117cGFkZGluZy1ibG9jazpjYWxjKHZhcigtLXNwYWNpbmcpKjEuNSl9OmlzKC5cXCpcXCpcXDpcXFtcXFtjbWRrLWdyb3VwLWhlYWRpbmdcXF1cXF1cXDp0ZXh0LXhzICopW2NtZGstZ3JvdXAtaGVhZGluZ117Zm9udC1zaXplOnZhcigtLXRleHQteHMpO2xpbmUtaGVpZ2h0OnZhcigtLXR3LWxlYWRpbmcsdmFyKC0tdGV4dC14cy0tbGluZS1oZWlnaHQpKX06aXMoLlxcKlxcKlxcOlxcW1xcW2NtZGstZ3JvdXAtaGVhZGluZ1xcXVxcXVxcOmZvbnQtbWVkaXVtICopW2NtZGstZ3JvdXAtaGVhZGluZ117LS10dy1mb250LXdlaWdodDp2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSl9OmlzKC5cXCpcXCpcXDpcXFtcXFtjbWRrLWdyb3VwLWhlYWRpbmdcXF1cXF1cXDp0ZXh0LW11dGVkLWZvcmVncm91bmQgKilbY21kay1ncm91cC1oZWFkaW5nXXtjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX06aXMoLlxcKlxcOlxcW2FcXF1cXDp1bmRlcmxpbmVcdTAwM2UqKTppcyhhKXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9OmlzKC5cXCpcXDpcXFthXFxdXFw6dW5kZXJsaW5lLW9mZnNldC0zXHUwMDNlKik6aXMoYSl7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjNweH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuXFxbYVxcXVxcOmhvdmVyXFw6YmctZGVzdHJ1Y3RpdmVcXC8yMDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRlc3RydWN0aXZlKX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LlxcW2FcXF1cXDpob3ZlclxcOmJnLWRlc3RydWN0aXZlXFwvMjA6aXMoYSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gb2tsYWIsdmFyKC0tZGVzdHJ1Y3RpdmUpMjAlLHRyYW5zcGFyZW50KX19LlxcW2FcXF1cXDpob3ZlclxcOmJnLW11dGVkOmlzKGEpOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5cXFthXFxdXFw6aG92ZXJcXDpiZy1wcmltYXJ5XFwvODA6aXMoYSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX1Ac3VwcG9ydHMgKGNvbG9yOmNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSl7LlxcW2FcXF1cXDpob3ZlclxcOmJnLXByaW1hcnlcXC84MDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1wcmltYXJ5KTgwJSx0cmFuc3BhcmVudCl9fS5cXFthXFxdXFw6aG92ZXJcXDpiZy1zZWNvbmRhcnlcXC84MDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSl9QHN1cHBvcnRzIChjb2xvcjpjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpey5cXFthXFxdXFw6aG92ZXJcXDpiZy1zZWNvbmRhcnlcXC84MDppcyhhKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBva2xhYix2YXIoLS1zZWNvbmRhcnkpODAlLHRyYW5zcGFyZW50KX19LlxcW2FcXF1cXDpob3ZlclxcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZDppcyhhKTpob3Zlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX06aXMoLlxcKlxcOlxcW2FcXF1cXDpob3ZlclxcOnRleHQtZm9yZWdyb3VuZFx1MDAzZSopOmlzKGEpOmhvdmVye2NvbG9yOnZhcigtLWZvcmVncm91bmQpfX06aXMoLlxcKlxcOlxcW2ltZ1xcOmZpcnN0LWNoaWxkXFxdXFw6cm91bmRlZC10LXhsXHUwMDNlKik6aXMoaW1nOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpfTppcyguXFwqXFw6XFxbaW1nXFw6bGFzdC1jaGlsZFxcXVxcOnJvdW5kZWQtYi14bFx1MDAzZSopOmlzKGltZzpsYXN0LWNoaWxkKXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykqMS40KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSoxLjQpfTppcyguZGF0YS1cXFt2YXJpYW50XFw9ZGVzdHJ1Y3RpdmVcXF1cXDpcXCpcXDpcXFtzdmdcXF1cXDp0ZXh0LWRlc3RydWN0aXZlW2RhdGEtdmFyaWFudD1kZXN0cnVjdGl2ZV1cdTAwM2UqKTppcyhzdmcpe2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX06aXMoLmRhdGEtc2VsZWN0ZWRcXDpcXCpcXDpcXFtzdmdcXF1cXDp0ZXh0LWZvcmVncm91bmQ6d2hlcmUoW2RhdGEtc2VsZWN0ZWQ9dHJ1ZV0pXHUwMDNlKik6aXMoc3ZnKXtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX0uaGFzLVxcW1xcXHUwMDNlXFxbZGF0YS1hbGlnblxcPWJsb2NrLWVuZFxcXVxcXVxcOlxcW1xcXHUwMDI2XFxcdTAwM2VpbnB1dFxcXVxcOnB0LTM6aGFzKFx1MDAzZVtkYXRhLWFsaWduPWJsb2NrLWVuZF0pXHUwMDNlaW5wdXR7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uaGFzLVxcW1xcXHUwMDNlXFxbZGF0YS1hbGlnblxcPWJsb2NrLXN0YXJ0XFxdXFxdXFw6XFxbXFxcdTAwMjZcXFx1MDAzZWlucHV0XFxdXFw6cGItMzpoYXMoXHUwMDNlW2RhdGEtYWxpZ249YmxvY2stc3RhcnRdKVx1MDAzZWlucHV0e3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tc3BhY2luZykqMyl9Lmhhcy1cXFtcXFx1MDAzZVxcW2RhdGEtYWxpZ25cXD1pbmxpbmUtZW5kXFxdXFxdXFw6XFxbXFxcdTAwMjZcXFx1MDAzZWlucHV0XFxdXFw6cHItMVxcLjU6aGFzKFx1MDAzZVtkYXRhLWFsaWduPWlubGluZS1lbmRdKVx1MDAzZWlucHV0e3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSoxLjUpfS5oYXMtXFxbXFxcdTAwM2VcXFtkYXRhLWFsaWduXFw9aW5saW5lLXN0YXJ0XFxdXFxdXFw6XFxbXFxcdTAwMjZcXFx1MDAzZWlucHV0XFxdXFw6cGwtMVxcLjU6aGFzKFx1MDAzZVtkYXRhLWFsaWduPWlubGluZS1zdGFydF0pXHUwMDNlaW5wdXR7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0tc3BhY2luZykqMS41KX0uXFxbXFxcdTAwMjZcXFx1MDAzZWtiZFxcXVxcOnJvdW5kZWQtXFxbY2FsY1xcKHZhclxcKC0tcmFkaXVzXFwpLTVweFxcKVxcXVx1MDAzZWtiZHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDVweCl9LlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpwb2ludGVyLWV2ZW50cy1ub25lXHUwMDNlc3Zne3BvaW50ZXItZXZlbnRzOm5vbmV9LlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpzaXplLTNcXCFcdTAwM2Vzdmd7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKSFpbXBvcnRhbnQ7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqMykhaW1wb3J0YW50fS5cXFtcXFx1MDAyNlxcXHUwMDNlc3ZnXFxdXFw6c2l6ZS00XHUwMDNlc3Zne3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9Lmdyb3VwLWhhcy1kYXRhLVxcW3NpemVcXD1sZ1xcXVxcL2F2YXRhci1ncm91cFxcOlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpzaXplLTU6aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhci1ncm91cCk6aGFzKFtkYXRhLXNpemU9bGddKSAqKVx1MDAzZXN2Z3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjUpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjUpfS5ncm91cC1oYXMtZGF0YS1cXFtzaXplXFw9c21cXF1cXC9hdmF0YXItZ3JvdXBcXDpcXFtcXFx1MDAyNlxcXHUwMDNlc3ZnXFxdXFw6c2l6ZS0zOmlzKDp3aGVyZSguZ3JvdXBcXC9hdmF0YXItZ3JvdXApOmhhcyhbZGF0YS1zaXplPXNtXSkgKilcdTAwM2Vzdmd7d2lkdGg6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozKX0uZ3JvdXAtZGF0YS1cXFtzaXplXFw9ZGVmYXVsdFxcXVxcL2F2YXRhclxcOlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpzaXplLTI6aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhcilbZGF0YS1zaXplPWRlZmF1bHRdICopXHUwMDNlc3ZnLC5ncm91cC1kYXRhLVxcW3NpemVcXD1sZ1xcXVxcL2F2YXRhclxcOlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpzaXplLTI6aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhcilbZGF0YS1zaXplPWxnXSAqKVx1MDAzZXN2Z3t3aWR0aDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpO2hlaWdodDpjYWxjKHZhcigtLXNwYWNpbmcpKjIpfS5ncm91cC1kYXRhLVxcW3NpemVcXD1zbVxcXVxcL2F2YXRhclxcOlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXF1cXDpoaWRkZW46aXMoOndoZXJlKC5ncm91cFxcL2F2YXRhcilbZGF0YS1zaXplPXNtXSAqKVx1MDAzZXN2Z3tkaXNwbGF5Om5vbmV9LlxcW1xcXHUwMDI2XFxcdTAwM2VzdmdcXDpub3RcXChcXFtjbGFzc1xcKlxcPVxcJ3NpemUtXFwnXFxdXFwpXFxdXFw6c2l6ZS0zXFwuNVx1MDAzZXN2Zzpub3QoW2NsYXNzKj1zaXplLV0pe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqMy41KTtoZWlnaHQ6Y2FsYyh2YXIoLS1zcGFjaW5nKSozLjUpfS5cXFtcXFx1MDAyNlxcXHUwMDNlc3ZnXFw6bm90XFwoXFxbY2xhc3NcXCpcXD1cXCdzaXplLVxcJ1xcXVxcKVxcXVxcOnNpemUtNFx1MDAzZXN2Zzpub3QoW2NsYXNzKj1zaXplLV0pe3dpZHRoOmNhbGModmFyKC0tc3BhY2luZykqNCk7aGVpZ2h0OmNhbGModmFyKC0tc3BhY2luZykqNCl9LlxcW1xcXHUwMDI2XFxcdTAwM2V0clxcXVxcOmxhc3RcXDpib3JkZXItYi0wXHUwMDNldHI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXN0eWxlOnZhcigtLXR3LWJvcmRlci1zdHlsZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDowfX1AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZGVsYXl7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MHN9QHByb3BlcnR5IC0tdHctYW5pbWF0aW9uLWRpcmVjdGlvbntzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTpub3JtYWx9QHByb3BlcnR5IC0tdHctYW5pbWF0aW9uLWR1cmF0aW9ue3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1hbmltYXRpb24tZmlsbC1tb2Rle3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOm5vbmV9QHByb3BlcnR5IC0tdHctYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToxfUBwcm9wZXJ0eSAtLXR3LWVudGVyLWJsdXJ7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1lbnRlci1vcGFjaXR5e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjF9QHByb3BlcnR5IC0tdHctZW50ZXItcm90YXRle3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctZW50ZXItc2NhbGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MX1AcHJvcGVydHkgLS10dy1lbnRlci10cmFuc2xhdGUteHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LWVudGVyLXRyYW5zbGF0ZS15e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctZXhpdC1ibHVye3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctZXhpdC1vcGFjaXR5e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjF9QHByb3BlcnR5IC0tdHctZXhpdC1yb3RhdGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1leGl0LXNjYWxle3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjF9QHByb3BlcnR5IC0tdHctZXhpdC10cmFuc2xhdGUteHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LWV4aXQtdHJhbnNsYXRlLXl7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH06cm9vdHstLWJhY2tncm91bmQ6I2ZmZjstLWZvcmVncm91bmQ6IzExMTgyNzstLWNhcmQ6I2Y5ZmFmYjstLWNhcmQtZm9yZWdyb3VuZDojMTExODI3Oy0tcG9wb3ZlcjojZmZmOy0tcG9wb3Zlci1mb3JlZ3JvdW5kOiMxMTE4Mjc7LS1wcmltYXJ5OiMwMDcwZWM7LS1wcmltYXJ5LWZvcmVncm91bmQ6I2ZmZjstLXNlY29uZGFyeTojZjNmNGY2Oy0tc2Vjb25kYXJ5LWZvcmVncm91bmQ6IzExMTgyNzstLW11dGVkOiNmM2Y0ZjY7LS1tdXRlZC1mb3JlZ3JvdW5kOiM2YjcyODA7LS1hY2NlbnQ6I2YzZjRmNjstLWFjY2VudC1mb3JlZ3JvdW5kOiMxMTE4Mjc7LS1kZXN0cnVjdGl2ZTojZWY0NDQ0Oy0tYm9yZGVyOiNlNWU3ZWI7LS1pbnB1dDojZTVlN2ViOy0tcmluZzojMDA3NGY1Oy0tcmFkaXVzOi41cmVtOy0tc3VjY2VzczojMjJjNTVlOy0tZGFuZ2VyOiNlZjQ0NDQ7LS13YXJuaW5nOiNmNTllMGI7LS1pbmZvOiMzYjgyZjY7LS1zdXJmYWNlOiNmOWZhZmI7LS1zdXJmYWNlLTI6I2YzZjRmNjstLWNoYXJ0LTE6IzAwNzRmNTstLWNoYXJ0LTI6IzAwYjhhOTstLWNoYXJ0LTM6IzIyYzU1ZTstLWNoYXJ0LTQ6I2Y1OWUwYjstLWNoYXJ0LTU6I2VmNDQ0NDstLXNpZGViYXI6I2Y5ZmFmYjstLXNpZGViYXItZm9yZWdyb3VuZDojMTExODI3Oy0tc2lkZWJhci1wcmltYXJ5OiMwMDc0ZjU7LS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZDojZmZmOy0tc2lkZWJhci1hY2NlbnQ6I2YzZjRmNjstLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQ6IzExMTgyNzstLXNpZGViYXItYm9yZGVyOiNlNWU3ZWI7LS1zaWRlYmFyLXJpbmc6IzAwNzRmNX0uZGFya3stLWJhY2tncm91bmQ6IzBiMGYxOTstLWZvcmVncm91bmQ6I2Y5ZmFmYjstLWNhcmQ6IzExMTgyNzstLWNhcmQtZm9yZWdyb3VuZDojZjlmYWZiOy0tcG9wb3ZlcjojMTExODI3Oy0tcG9wb3Zlci1mb3JlZ3JvdW5kOiNmOWZhZmI7LS1wcmltYXJ5OiMwMDcwZWM7LS1wcmltYXJ5LWZvcmVncm91bmQ6I2ZmZjstLXNlY29uZGFyeTojMWYyOTM3Oy0tc2Vjb25kYXJ5LWZvcmVncm91bmQ6I2Y5ZmFmYjstLW11dGVkOiMxZjI5Mzc7LS1tdXRlZC1mb3JlZ3JvdW5kOiM5Y2EzYWY7LS1hY2NlbnQ6IzFmMjkzNzstLWFjY2VudC1mb3JlZ3JvdW5kOiNmOWZhZmI7LS1kZXN0cnVjdGl2ZTojZWY0NDQ0Oy0tYm9yZGVyOiMzNzQxNTE7LS1pbnB1dDojMzc0MTUxOy0tcmluZzojMDA3NGY1Oy0tc3VjY2VzczojMjJjNTVlOy0tZGFuZ2VyOiNlZjQ0NDQ7LS13YXJuaW5nOiNmNTllMGI7LS1pbmZvOiMzYjgyZjY7LS1zdXJmYWNlOiMxMTE4Mjc7LS1zdXJmYWNlLTI6IzFmMjkzNzstLWNoYXJ0LTE6IzNkOWFmZjstLWNoYXJ0LTI6IzMzYzliZDstLWNoYXJ0LTM6IzIyYzU1ZTstLWNoYXJ0LTQ6I2Y1OWUwYjstLWNoYXJ0LTU6I2VmNDQ0NDstLXNpZGViYXI6IzExMTgyNzstLXNpZGViYXItZm9yZWdyb3VuZDojZjlmYWZiOy0tc2lkZWJhci1wcmltYXJ5OiMzZDlhZmY7LS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZDojZmZmOy0tc2lkZWJhci1hY2NlbnQ6IzFmMjkzNzstLXNpZGViYXItYWNjZW50LWZvcmVncm91bmQ6I2Y5ZmFmYjstLXNpZGViYXItYm9yZGVyOiMzNzQxNTE7LS1zaWRlYmFyLXJpbmc6IzAwNzRmNX1Aa2V5ZnJhbWVzIHRleHQtc2hpbW1lcnswJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjIwMCV9dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMjAwJX19LnRleHQtc2hpbW1lcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTQwJSx2YXIoLS1mb3JlZ3JvdW5kKTUwJSx2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTYwJSk7Y29sb3I6IzAwMDA7YmFja2dyb3VuZC1zaXplOjIwMCU7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDtiYWNrZ3JvdW5kLWNsaXA6dGV4dDthbmltYXRpb246MnMgbGluZWFyIGluZmluaXRlIHRleHQtc2hpbW1lcn1odG1sLmNjLWNvbnNlbnRlZCAuY29va2llLW5vdGljZXtkaXNwbGF5Om5vbmV9QHByb3BlcnR5IC0tdHctdHJhbnNsYXRlLXh7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy10cmFuc2xhdGUteXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LXRyYW5zbGF0ZS16e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjB9QHByb3BlcnR5IC0tdHctcm90YXRlLXh7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXJvdGF0ZS15e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1yb3RhdGUtentzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2tldy14e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1za2V3LXl7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXNwYWNlLXktcmV2ZXJzZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LXNwYWNlLXgtcmV2ZXJzZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LWRpdmlkZS15LXJldmVyc2V7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MH1AcHJvcGVydHkgLS10dy1ib3JkZXItc3R5bGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6c29saWR9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtcG9zaXRpb257c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LWZyb217c3ludGF4OlwiXHUwMDNjY29sb3JcdTAwM2VcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOiMwMDAwfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXZpYXtzeW50YXg6XCJcdTAwM2Njb2xvclx1MDAzZVwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6IzAwMDB9QHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdG97c3ludGF4OlwiXHUwMDNjY29sb3JcdTAwM2VcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOiMwMDAwfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXN0b3Bze3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1ncmFkaWVudC12aWEtc3RvcHN7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb257c3ludGF4OlwiXHUwMDNjbGVuZ3RoLXBlcmNlbnRhZ2VcdTAwM2VcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjAlfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbntzeW50YXg6XCJcdTAwM2NsZW5ndGgtcGVyY2VudGFnZVx1MDAzZVwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6NTAlfUBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9ue3N5bnRheDpcIlx1MDAzY2xlbmd0aC1wZXJjZW50YWdlXHUwMDNlXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToxMDAlfUBwcm9wZXJ0eSAtLXR3LWxlYWRpbmd7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWZvbnQtd2VpZ2h0e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy10cmFja2luZ3tzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctb3JkaW5hbHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2xhc2hlZC16ZXJve3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1udW1lcmljLWZpZ3VyZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctbnVtZXJpYy1zcGFjaW5ne3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1udW1lcmljLWZyYWN0aW9ue3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1zaGFkb3d7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlO2luaXRpYWwtdmFsdWU6MCAwICMwMDAwfUBwcm9wZXJ0eSAtLXR3LXNoYWRvdy1jb2xvcntzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2hhZG93LWFscGhhe3N5bnRheDpcIlx1MDAzY3BlcmNlbnRhZ2VcdTAwM2VcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjAgMCAjMDAwMH1AcHJvcGVydHkgLS10dy1pbnNldC1zaGFkb3ctY29sb3J7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWluc2V0LXNoYWRvdy1hbHBoYXtzeW50YXg6XCJcdTAwM2NwZXJjZW50YWdlXHUwMDNlXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZToxMDAlfUBwcm9wZXJ0eSAtLXR3LXJpbmctY29sb3J7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXJpbmctc2hhZG93e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjAgMCAjMDAwMH1AcHJvcGVydHkgLS10dy1pbnNldC1yaW5nLWNvbG9ye3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1pbnNldC1yaW5nLXNoYWRvd3tzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowIDAgIzAwMDB9QHByb3BlcnR5IC0tdHctcmluZy1pbnNldHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctcmluZy1vZmZzZXQtd2lkdGh7c3ludGF4OlwiXHUwMDNjbGVuZ3RoXHUwMDNlXCI7aW5oZXJpdHM6ZmFsc2U7aW5pdGlhbC12YWx1ZTowfUBwcm9wZXJ0eSAtLXR3LXJpbmctb2Zmc2V0LWNvbG9ye3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOiNmZmZ9QHByb3BlcnR5IC0tdHctcmluZy1vZmZzZXQtc2hhZG93e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjAgMCAjMDAwMH1AcHJvcGVydHkgLS10dy1vdXRsaW5lLXN0eWxle3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOnNvbGlkfUBwcm9wZXJ0eSAtLXR3LWJsdXJ7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWJyaWdodG5lc3N7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWNvbnRyYXN0e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1ncmF5c2NhbGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWh1ZS1yb3RhdGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWludmVydHtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctb3BhY2l0eXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctc2F0dXJhdGV7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LXNlcGlhe3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvd3tzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctZHJvcC1zaGFkb3ctY29sb3J7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWRyb3Atc2hhZG93LWFscGhhe3N5bnRheDpcIlx1MDAzY3BlcmNlbnRhZ2VcdTAwM2VcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOjEwMCV9QHByb3BlcnR5IC0tdHctZHJvcC1zaGFkb3ctc2l6ZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtYmx1cntzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzc3tzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtY29udHJhc3R7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3AtaW52ZXJ0e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1vcGFjaXR5e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1zYXR1cmF0ZXtzeW50YXg6XCIqXCI7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdHctYmFja2Ryb3Atc2VwaWF7c3ludGF4OlwiKlwiO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXR3LWR1cmF0aW9ue3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1lYXNle3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS10dy1jb250ZW50e3N5bnRheDpcIipcIjtpbmhlcml0czpmYWxzZTtpbml0aWFsLXZhbHVlOlwiXCJ9QGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBwdWxzZXs1MCV7b3BhY2l0eTouNX19QGtleWZyYW1lcyBlbnRlcnswJXtvcGFjaXR5OnZhcigtLXR3LWVudGVyLW9wYWNpdHksMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKHZhcigtLXR3LWVudGVyLXRyYW5zbGF0ZS14LDApLHZhcigtLXR3LWVudGVyLXRyYW5zbGF0ZS15LDApLDApc2NhbGUzZCh2YXIoLS10dy1lbnRlci1zY2FsZSwxKSx2YXIoLS10dy1lbnRlci1zY2FsZSwxKSx2YXIoLS10dy1lbnRlci1zY2FsZSwxKSlyb3RhdGUodmFyKC0tdHctZW50ZXItcm90YXRlLDApKTtmaWx0ZXI6Ymx1cih2YXIoLS10dy1lbnRlci1ibHVyLDApKX19QGtleWZyYW1lcyBleGl0e3Rve29wYWNpdHk6dmFyKC0tdHctZXhpdC1vcGFjaXR5LDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCh2YXIoLS10dy1leGl0LXRyYW5zbGF0ZS14LDApLHZhcigtLXR3LWV4aXQtdHJhbnNsYXRlLXksMCksMClzY2FsZTNkKHZhcigtLXR3LWV4aXQtc2NhbGUsMSksdmFyKC0tdHctZXhpdC1zY2FsZSwxKSx2YXIoLS10dy1leGl0LXNjYWxlLDEpKXJvdGF0ZSh2YXIoLS10dy1leGl0LXJvdGF0ZSwwKSk7ZmlsdGVyOmJsdXIodmFyKC0tdHctZXhpdC1ibHVyLDApKX19XG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMDp7XCJQXCI6bnVsbCxcImJcIjpcIlMxSjJHRS1qQzlkRTl5aGE5aEFfdFwiLFwiY1wiOltcIlwiLFwid2lkZ2V0XCJdLFwicVwiOlwiXCIsXCJpXCI6ZmFsc2UsXCJmXCI6W1tbXCJcIix7XCJjaGlsZHJlblwiOltcIihlbWJlZClcIix7XCJjaGlsZHJlblwiOltcIndpZGdldFwiLHtcImNoaWxkcmVuXCI6W1wiX19QQUdFX19cIix7fV19XX1dfSxcIiR1bmRlZmluZWRcIixcIiR1bmRlZmluZWRcIix0cnVlXSxbW1wiJFwiLFwiJDFcIixcImNcIix7XCJjaGlsZHJlblwiOltbW1wiJFwiLFwic3R5bGVcIixcIjBcIix7XCJub25jZVwiOlwiJHVuZGVmaW5lZFwiLFwicHJlY2VkZW5jZVwiOlwibmV4dFwiLFwiaHJlZlwiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvMDcyNWZjNGRiODE0ZjAzNS5jc3NcIixcImNoaWxkcmVuXCI6XCIkMlwifV0sW1wiJFwiLFwic3R5bGVcIixcIjFcIix7XCJub25jZVwiOlwiJHVuZGVmaW5lZFwiLFwicHJlY2VkZW5jZVwiOlwibmV4dFwiLFwiaHJlZlwiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvYjM0ZWJiOGFlZmYyMTg2ZS5jc3NcIixcImNoaWxkcmVuXCI6XCIkM1wifV0sXCIkTDRcIl0sXCIkTDVcIl19XSx7XCJjaGlsZHJlblwiOltcIiRMNlwiLHtcImNoaWxkcmVuXCI6W1wiJEw3XCIse1wiY2hpbGRyZW5cIjpbXCIkTDhcIix7fSxudWxsLGZhbHNlLGZhbHNlXX0sbnVsbCxmYWxzZSxmYWxzZV19LG51bGwsZmFsc2UsZmFsc2VdfSxudWxsLGZhbHNlLGZhbHNlXSxcIiRMOVwiLGZhbHNlXV0sXCJtXCI6XCIkdW5kZWZpbmVkXCIsXCJHXCI6W1wiJGFcIixbXV0sXCJTXCI6dHJ1ZX1cbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCJiOklbODM2NjEsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvYzBhNmFlNTE1ZjRkMjQ1ZC5qc1wiXSxcIlRoZW1lUHJvdmlkZXJcIl1cbmM6SVszMDk3LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzMzMDc0ZDNmZjVkMGNkMmQuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzk1MjYyMzg2ZDhkNGI2ZGQuanNcIl0sXCJkZWZhdWx0XCJdXG5kOklbOTkyOTksW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvMzMwNzRkM2ZmNWQwY2QyZC5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvOTUyNjIzODZkOGQ0YjZkZC5qc1wiXSxcImRlZmF1bHRcIl1cbmU6XCIkU3JlYWN0LnN1c3BlbnNlXCJcbmY6SVs3OTI5NCxbXCIvX25leHQvc3RhdGljL2NodW5rcy9jMGE2YWU1MTVmNGQyNDVkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy84MDBlODM2MTQ2ZDZlN2ViLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy9kNzFiOTkyNjdiMDY2YjliLmpzXCJdLFwiV2lkZ2V0Q2xpZW50XCJdXG4xMDpJWzM2MzQ1LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzMzMDc0ZDNmZjVkMGNkMmQuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzk1MjYyMzg2ZDhkNGI2ZGQuanNcIl0sXCJPdXRsZXRCb3VuZGFyeVwiXVxuMTI6SVszNjM0NSxbXCIvX25leHQvc3RhdGljL2NodW5rcy8zMzA3NGQzZmY1ZDBjZDJkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy85NTI2MjM4NmQ4ZDRiNmRkLmpzXCJdLFwiVmlld3BvcnRCb3VuZGFyeVwiXVxuMTQ6SVszNjM0NSxbXCIvX25leHQvc3RhdGljL2NodW5rcy8zMzA3NGQzZmY1ZDBjZDJkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy85NTI2MjM4NmQ4ZDRiNmRkLmpzXCJdLFwiTWV0YWRhdGFCb3VuZGFyeVwiXVxuNDpbXCIkXCIsXCJzY3JpcHRcIixcInNjcmlwdC0wXCIse1wic3JjXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy9jMGE2YWU1MTVmNGQyNDVkLmpzXCIsXCJhc3luY1wiOnRydWUsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV1cbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCI1OltcIiRcIixcImh0bWxcIixudWxsLHtcImxhbmdcIjpcImVuXCIsXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjp0cnVlLFwiY2hpbGRyZW5cIjpbW1wiJFwiLFwiaGVhZFwiLG51bGwse1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwic2NyaXB0XCIsbnVsbCx7XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOntcIl9faHRtbFwiOlwidHJ5e2lmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb2lubGliLWNvb2tpZS1jb25zZW50Jykpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjYy1jb25zZW50ZWQnKX19Y2F0Y2goZSl7fVwifX1dLFtcIiRcIixcImxpbmtcIixudWxsLHtcInJlbFwiOlwicHJlY29ubmVjdFwiLFwiaHJlZlwiOlwiaHR0cHM6Ly9zMi5jb2lubWFya2V0Y2FwLmNvbVwiLFwiY3Jvc3NPcmlnaW5cIjpcIlwifV1dfV0sW1wiJFwiLFwiYm9keVwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJpbnRlcl8xZWM0ZGQ5Zi1tb2R1bGVfX1VNUGFLR19fdmFyaWFibGUgYW50aWFsaWFzZWRcIixcImNoaWxkcmVuXCI6W1tcIiRcIixcIiRMYlwiLG51bGwse1wiY2hpbGRyZW5cIjpbXCIkXCIsXCIkTGNcIixudWxsLHtcInBhcmFsbGVsUm91dGVyS2V5XCI6XCJjaGlsZHJlblwiLFwiZXJyb3JcIjpcIiR1bmRlZmluZWRcIixcImVycm9yU3R5bGVzXCI6XCIkdW5kZWZpbmVkXCIsXCJlcnJvclNjcmlwdHNcIjpcIiR1bmRlZmluZWRcIixcInRlbXBsYXRlXCI6W1wiJFwiLFwiJExkXCIsbnVsbCx7fV0sXCJ0ZW1wbGF0ZVN0eWxlc1wiOlwiJHVuZGVmaW5lZFwiLFwidGVtcGxhdGVTY3JpcHRzXCI6XCIkdW5kZWZpbmVkXCIsXCJub3RGb3VuZFwiOltbW1wiJFwiLFwidGl0bGVcIixudWxsLHtcImNoaWxkcmVuXCI6XCI0MDQ6IFRoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuXCJ9XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcInN0eWxlXCI6e1wiZm9udEZhbWlseVwiOlwic3lzdGVtLXVpLFxcXCJTZWdvZSBVSVxcXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFxcXCJBcHBsZSBDb2xvciBFbW9qaVxcXCIsXFxcIlNlZ29lIFVJIEVtb2ppXFxcIlwiLFwiaGVpZ2h0XCI6XCIxMDB2aFwiLFwidGV4dEFsaWduXCI6XCJjZW50ZXJcIixcImRpc3BsYXlcIjpcImZsZXhcIixcImZsZXhEaXJlY3Rpb25cIjpcImNvbHVtblwiLFwiYWxpZ25JdGVtc1wiOlwiY2VudGVyXCIsXCJqdXN0aWZ5Q29udGVudFwiOlwiY2VudGVyXCJ9LFwiY2hpbGRyZW5cIjpbXCIkXCIsXCJkaXZcIixudWxsLHtcImNoaWxkcmVuXCI6W1tcIiRcIixcInN0eWxlXCIsbnVsbCx7XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOntcIl9faHRtbFwiOlwiYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1cIn19XSxbXCIkXCIsXCJoMVwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJuZXh0LWVycm9yLWgxXCIsXCJzdHlsZVwiOntcImRpc3BsYXlcIjpcImlubGluZS1ibG9ja1wiLFwibWFyZ2luXCI6XCIwIDIwcHggMCAwXCIsXCJwYWRkaW5nXCI6XCIwIDIzcHggMCAwXCIsXCJmb250U2l6ZVwiOjI0LFwiZm9udFdlaWdodFwiOjUwMCxcInZlcnRpY2FsQWxpZ25cIjpcInRvcFwiLFwibGluZUhlaWdodFwiOlwiNDlweFwifSxcImNoaWxkcmVuXCI6NDA0fV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJzdHlsZVwiOntcImRpc3BsYXlcIjpcImlubGluZS1ibG9ja1wifSxcImNoaWxkcmVuXCI6W1wiJFwiLFwiaDJcIixudWxsLHtcInN0eWxlXCI6e1wiZm9udFNpemVcIjoxNCxcImZvbnRXZWlnaHRcIjo0MDAsXCJsaW5lSGVpZ2h0XCI6XCI0OXB4XCIsXCJtYXJnaW5cIjowfSxcImNoaWxkcmVuXCI6XCJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLlwifV19XV19XX1dXSxbXV0sXCJmb3JiaWRkZW5cIjpcIiR1bmRlZmluZWRcIixcInVuYXV0aG9yaXplZFwiOlwiJHVuZGVmaW5lZFwifV19XSxbXCIkXCIsXCJzY3JpcHRcIixudWxsLHtcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6e1wiX19odG1sXCI6XCIoZnVuY3Rpb24oKXtmdW5jdGlvbiBsb2FkKCl7d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTt3aW5kb3cuZ3RhZz1mdW5jdGlvbigpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyl9O2d0YWcoJ2pzJyxuZXcgRGF0ZSgpKTtndGFnKCdjb25maWcnLCdHLVY4NFhQOFdHWFknKTt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtzLnNyYz0naHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLVY4NFhQOFdHWFknO3MuYXN5bmM9dHJ1ZTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpfWZ1bmN0aW9uIHNjaGVkdWxlKCl7aWYoJ3JlcXVlc3RJZGxlQ2FsbGJhY2snaW4gd2luZG93KXtyZXF1ZXN0SWRsZUNhbGxiYWNrKGxvYWQse3RpbWVvdXQ6MzAwMH0pfWVsc2V7c2V0VGltZW91dChsb2FkLDE1MDApfX1pZihkb2N1bWVudC5yZWFkeVN0YXRlPT09J2NvbXBsZXRlJyl7c2NoZWR1bGUoKX1lbHNle2FkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLHNjaGVkdWxlLHtvbmNlOnRydWV9KX19KSgpO1wifX1dXX1dXX1dXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiNjpbXCIkXCIsXCIkMVwiLFwiY1wiLHtcImNoaWxkcmVuXCI6W251bGwsW1tcIiRcIixcInN0eWxlXCIsbnVsbCx7XCJjaGlsZHJlblwiOlwiaHRtbCwgYm9keSB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVwifV0sW1wiJFwiLFwiJExjXCIsbnVsbCx7XCJwYXJhbGxlbFJvdXRlcktleVwiOlwiY2hpbGRyZW5cIixcImVycm9yXCI6XCIkdW5kZWZpbmVkXCIsXCJlcnJvclN0eWxlc1wiOlwiJHVuZGVmaW5lZFwiLFwiZXJyb3JTY3JpcHRzXCI6XCIkdW5kZWZpbmVkXCIsXCJ0ZW1wbGF0ZVwiOltcIiRcIixcIiRMZFwiLG51bGwse31dLFwidGVtcGxhdGVTdHlsZXNcIjpcIiR1bmRlZmluZWRcIixcInRlbXBsYXRlU2NyaXB0c1wiOlwiJHVuZGVmaW5lZFwiLFwibm90Rm91bmRcIjpbW1tcIiRcIixcInRpdGxlXCIsbnVsbCx7XCJjaGlsZHJlblwiOlwiNDA0OiBUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLlwifV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJzdHlsZVwiOlwiJDU6cHJvcHM6Y2hpbGRyZW46MTpwcm9wczpjaGlsZHJlbjowOnByb3BzOmNoaWxkcmVuOnByb3BzOm5vdEZvdW5kOjA6MTpwcm9wczpzdHlsZVwiLFwiY2hpbGRyZW5cIjpbXCIkXCIsXCJkaXZcIixudWxsLHtcImNoaWxkcmVuXCI6W1tcIiRcIixcInN0eWxlXCIsbnVsbCx7XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOntcIl9faHRtbFwiOlwiYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1cIn19XSxbXCIkXCIsXCJoMVwiLG51bGwse1wiY2xhc3NOYW1lXCI6XCJuZXh0LWVycm9yLWgxXCIsXCJzdHlsZVwiOlwiJDU6cHJvcHM6Y2hpbGRyZW46MTpwcm9wczpjaGlsZHJlbjowOnByb3BzOmNoaWxkcmVuOnByb3BzOm5vdEZvdW5kOjA6MTpwcm9wczpjaGlsZHJlbjpwcm9wczpjaGlsZHJlbjoxOnByb3BzOnN0eWxlXCIsXCJjaGlsZHJlblwiOjQwNH1dLFtcIiRcIixcImRpdlwiLG51bGwse1wic3R5bGVcIjpcIiQ1OnByb3BzOmNoaWxkcmVuOjE6cHJvcHM6Y2hpbGRyZW46MDpwcm9wczpjaGlsZHJlbjpwcm9wczpub3RGb3VuZDowOjE6cHJvcHM6Y2hpbGRyZW46cHJvcHM6Y2hpbGRyZW46Mjpwcm9wczpzdHlsZVwiLFwiY2hpbGRyZW5cIjpbXCIkXCIsXCJoMlwiLG51bGwse1wic3R5bGVcIjpcIiQ1OnByb3BzOmNoaWxkcmVuOjE6cHJvcHM6Y2hpbGRyZW46MDpwcm9wczpjaGlsZHJlbjpwcm9wczpub3RGb3VuZDowOjE6cHJvcHM6Y2hpbGRyZW46cHJvcHM6Y2hpbGRyZW46Mjpwcm9wczpjaGlsZHJlbjpwcm9wczpzdHlsZVwiLFwiY2hpbGRyZW5cIjpcIlRoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuXCJ9XX1dXX1dfV1dLFtdXSxcImZvcmJpZGRlblwiOlwiJHVuZGVmaW5lZFwiLFwidW5hdXRob3JpemVkXCI6XCIkdW5kZWZpbmVkXCJ9XV1dfV1cbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCI3OltcIiRcIixcIiQxXCIsXCJjXCIse1wiY2hpbGRyZW5cIjpbbnVsbCxbXCIkXCIsXCIkTGNcIixudWxsLHtcInBhcmFsbGVsUm91dGVyS2V5XCI6XCJjaGlsZHJlblwiLFwiZXJyb3JcIjpcIiR1bmRlZmluZWRcIixcImVycm9yU3R5bGVzXCI6XCIkdW5kZWZpbmVkXCIsXCJlcnJvclNjcmlwdHNcIjpcIiR1bmRlZmluZWRcIixcInRlbXBsYXRlXCI6W1wiJFwiLFwiJExkXCIsbnVsbCx7fV0sXCJ0ZW1wbGF0ZVN0eWxlc1wiOlwiJHVuZGVmaW5lZFwiLFwidGVtcGxhdGVTY3JpcHRzXCI6XCIkdW5kZWZpbmVkXCIsXCJub3RGb3VuZFwiOlwiJHVuZGVmaW5lZFwiLFwiZm9yYmlkZGVuXCI6XCIkdW5kZWZpbmVkXCIsXCJ1bmF1dGhvcml6ZWRcIjpcIiR1bmRlZmluZWRcIn1dXX1dXG44OltcIiRcIixcIiQxXCIsXCJjXCIse1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwiJGVcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJExmXCIsbnVsbCx7fV19XSxbW1wiJFwiLFwic2NyaXB0XCIsXCJzY3JpcHQtMFwiLHtcInNyY1wiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvODAwZTgzNjE0NmQ2ZTdlYi5qc1wiLFwiYXN5bmNcIjp0cnVlLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dLFtcIiRcIixcInNjcmlwdFwiLFwic2NyaXB0LTFcIix7XCJzcmNcIjpcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q3MWI5OTI2N2IwNjZiOWIuanNcIixcImFzeW5jXCI6dHJ1ZSxcIm5vbmNlXCI6XCIkdW5kZWZpbmVkXCJ9XV0sW1wiJFwiLFwiJEwxMFwiLG51bGwse1wiY2hpbGRyZW5cIjpbXCIkXCIsXCIkZVwiLG51bGwse1wibmFtZVwiOlwiTmV4dC5NZXRhZGF0YU91dGxldFwiLFwiY2hpbGRyZW5cIjpcIiRAMTFcIn1dfV1dfV1cbjk6W1wiJFwiLFwiJDFcIixcImhcIix7XCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMMTJcIixudWxsLHtcImNoaWxkcmVuXCI6XCIkTDEzXCJ9XSxbXCIkXCIsXCJkaXZcIixudWxsLHtcImhpZGRlblwiOnRydWUsXCJjaGlsZHJlblwiOltcIiRcIixcIiRMMTRcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJGVcIixudWxsLHtcIm5hbWVcIjpcIk5leHQuTWV0YWRhdGFcIixcImNoaWxkcmVuXCI6XCIkTDE1XCJ9XX1dfV0sW1wiJFwiLFwibWV0YVwiLG51bGwse1wibmFtZVwiOlwibmV4dC1zaXplLWFkanVzdFwiLFwiY29udGVudFwiOlwiXCJ9XV19XVxuIl0pPC9zY3JpcHQ+PHNjcmlwdD5zZWxmLl9fbmV4dF9mLnB1c2goWzEsIjEzOltbXCIkXCIsXCJtZXRhXCIsXCIwXCIse1wiY2hhclNldFwiOlwidXRmLThcIn1dLFtcIiRcIixcIm1ldGFcIixcIjFcIix7XCJuYW1lXCI6XCJ2aWV3cG9ydFwiLFwiY29udGVudFwiOlwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHZpZXdwb3J0LWZpdD1jb3ZlclwifV1dXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMTY6SVsyMDQxNCxbXCIvX25leHQvc3RhdGljL2NodW5rcy8zMzA3NGQzZmY1ZDBjZDJkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy85NTI2MjM4NmQ4ZDRiNmRkLmpzXCJdLFwiSWNvbk1hcmtcIl1cbjExOm51bGxcbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCIxNTpbW1wiJFwiLFwidGl0bGVcIixcIjBcIix7XCJjaGlsZHJlblwiOlwiQ29pbmxpYiBXaWRnZXQgfCBDb2lubGliXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIxXCIse1wibmFtZVwiOlwiZGVzY3JpcHRpb25cIixcImNvbnRlbnRcIjpcIlRyYWNrIHJlYWwtdGltZSBjcnlwdG9jdXJyZW5jeSBwcmljZXMsIG1hcmtldCBjYXAsIGNoYXJ0cywgYW5kIHBvcnRmb2xpby4gRXhwbG9yZSB0aG91c2FuZHMgb2YgY29pbnMgYW5kIGV4Y2hhbmdlcyB3aXRoIENvaW5saWIuXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIyXCIse1wibmFtZVwiOlwia2V5d29yZHNcIixcImNvbnRlbnRcIjpcImNyeXB0b2N1cnJlbmN5LGNyeXB0byBwcmljZXMsYml0Y29pbixtYXJrZXQgY2FwLGNyeXB0byBjaGFydHMscG9ydGZvbGlvIHRyYWNrZXJcIn1dLFtcIiRcIixcIm1ldGFcIixcIjNcIix7XCJuYW1lXCI6XCJyb2JvdHNcIixcImNvbnRlbnRcIjpcIm5vaW5kZXhcIn1dLFtcIiRcIixcIm1ldGFcIixcIjRcIix7XCJwcm9wZXJ0eVwiOlwib2c6dGl0bGVcIixcImNvbnRlbnRcIjpcIkNvaW5saWIg4oCUIENyeXB0b2N1cnJlbmN5IFByaWNlcywgQ2hhcnRzIFx1MDAyNiBNYXJrZXQgRGF0YVwifV0sW1wiJFwiLFwibWV0YVwiLFwiNVwiLHtcInByb3BlcnR5XCI6XCJvZzpkZXNjcmlwdGlvblwiLFwiY29udGVudFwiOlwiVHJhY2sgcmVhbC10aW1lIGNyeXB0b2N1cnJlbmN5IHByaWNlcywgbWFya2V0IGNhcCwgY2hhcnRzLCBhbmQgcG9ydGZvbGlvLiBFeHBsb3JlIHRob3VzYW5kcyBvZiBjb2lucyBhbmQgZXhjaGFuZ2VzIHdpdGggQ29pbmxpYi5cIn1dLFtcIiRcIixcIm1ldGFcIixcIjZcIix7XCJwcm9wZXJ0eVwiOlwib2c6dXJsXCIsXCJjb250ZW50XCI6XCJodHRwczovL2NvaW5saWIuaW9cIn1dLFtcIiRcIixcIm1ldGFcIixcIjdcIix7XCJwcm9wZXJ0eVwiOlwib2c6c2l0ZV9uYW1lXCIsXCJjb250ZW50XCI6XCJDb2lubGliXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCI4XCIse1wicHJvcGVydHlcIjpcIm9nOmltYWdlXCIsXCJjb250ZW50XCI6XCJodHRwczovL2NvaW5saWIuaW8vb2cvZGVmYXVsdC5wbmdcIn1dLFtcIiRcIixcIm1ldGFcIixcIjlcIix7XCJwcm9wZXJ0eVwiOlwib2c6aW1hZ2U6d2lkdGhcIixcImNvbnRlbnRcIjpcIjEyMDBcIn1dLFtcIiRcIixcIm1ldGFcIixcIjEwXCIse1wicHJvcGVydHlcIjpcIm9nOmltYWdlOmhlaWdodFwiLFwiY29udGVudFwiOlwiNjMwXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIxMVwiLHtcInByb3BlcnR5XCI6XCJvZzppbWFnZTphbHRcIixcImNvbnRlbnRcIjpcIkNvaW5saWIg4oCUIENyeXB0b2N1cnJlbmN5IFByaWNlcywgQ2hhcnRzIFx1MDAyNiBNYXJrZXQgRGF0YVwifV0sW1wiJFwiLFwibWV0YVwiLFwiMTJcIix7XCJwcm9wZXJ0eVwiOlwib2c6dHlwZVwiLFwiY29udGVudFwiOlwid2Vic2l0ZVwifV0sW1wiJFwiLFwibWV0YVwiLFwiMTNcIix7XCJuYW1lXCI6XCJ0d2l0dGVyOmNhcmRcIixcImNvbnRlbnRcIjpcInN1bW1hcnlfbGFyZ2VfaW1hZ2VcIn1dLFtcIiRcIixcIm1ldGFcIixcIjE0XCIse1wibmFtZVwiOlwidHdpdHRlcjp0aXRsZVwiLFwiY29udGVudFwiOlwiQ29pbmxpYiDigJQgQ3J5cHRvY3VycmVuY3kgUHJpY2VzLCBDaGFydHMgXHUwMDI2IE1hcmtldCBEYXRhXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIxNVwiLHtcIm5hbWVcIjpcInR3aXR0ZXI6ZGVzY3JpcHRpb25cIixcImNvbnRlbnRcIjpcIlRyYWNrIHJlYWwtdGltZSBjcnlwdG9jdXJyZW5jeSBwcmljZXMsIG1hcmtldCBjYXAsIGNoYXJ0cywgYW5kIHBvcnRmb2xpby4gRXhwbG9yZSB0aG91c2FuZHMgb2YgY29pbnMgYW5kIGV4Y2hhbmdlcyB3aXRoIENvaW5saWIuXCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIxNlwiLHtcIm5hbWVcIjpcInR3aXR0ZXI6aW1hZ2VcIixcImNvbnRlbnRcIjpcImh0dHBzOi8vY29pbmxpYi5pby9vZy9kZWZhdWx0LnBuZ1wifV0sW1wiJFwiLFwibGlua1wiLFwiMTdcIix7XCJyZWxcIjpcImljb25cIixcImhyZWZcIjpcIi9mYXZpY29uLmljbz9mYXZpY29uLjM5MGUxMTA5Lmljb1wiLFwic2l6ZXNcIjpcIjQ4eDQ4XCIsXCJ0eXBlXCI6XCJpbWFnZS94LWljb25cIn1dLFtcIiRcIixcImxpbmtcIixcIjE4XCIse1wicmVsXCI6XCJhcHBsZS10b3VjaC1pY29uXCIsXCJocmVmXCI6XCIvbG9nb3MvYXBwbGUtdG91Y2gtaWNvbi5wbmdcIn1dLFtcIiRcIixcIiRMMTZcIixcIjE5XCIse31dXVxuIl0pPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iaHR0cHM6Ly9zdGF0aWMuY2xvdWRmbGFyZWluc2lnaHRzLmNvbS9iZWFjb24ubWluLmpzL3Y0NTEzMjI2Y2RhZTM0NzQ2YjRkZWRmMGI0ZGZhMDk5ZTE3ODE3OTE1MDk0OTYiIGludGVncml0eT0ic2hhNTEyLVpFOXBaYVVYTkQ2NnYzODBRVXRjaC81c0U5dFBGaDJ6ZzQ1cFIyUEIwQ1ZrQ3RPUkV2MkFKS2tTaWRJU1dreXNFdVEwRUg4ZmFVVTVkdTc4Yng4N1VRPT0iIGRhdGEtY2YtYmVhY29uPSd7InZlcnNpb24iOiIyMDI0LjExLjAiLCJ0b2tlbiI6IjdkZjcwOGZjZmFhMDRhNjRhYjNiNWU4NmUzMTBkZjVhIiwiciI6MX0nIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg=="}},"time_used":42,"timings":{"blocked":4,"dns":4,"connect":0,"send":0,"wait":30,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/c0a6ae515f4d245d.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.423Z","timestamp":1785126646423,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/c0a6ae515f4d245d.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 3814162\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"c0a6ae515f4d245d.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://auth.coinlib.io https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"42e2ea745a52c479ce79b9fadf7f2ed9\"\r\nlast-modified: Sat, 13 Jun 2026 00:50:11 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/c0a6ae515f4d245d.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::xwt97-1781312483646-eb94f2b460c3\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Q8JGijZ9P393rHvWgp6mJqtGJYRSYdXa3Ko0VHSMP2d69XCXYGrfNKfEQMGsRjnnIXitkaL2Zieh%2BE0YQQ66LgxRDV9Ler2O9xEl%2BQxsxM5%2Bs8CyuV%2BuNrR0c8gC\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9242ffc2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":3649,"size_decoded":3726,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3649), with no line terminators","md5":"42e2ea745a52c479ce79b9fadf7f2ed9","sha1":"0cf08999016475d70bf072b7878daea0244184e3","sha256":"2746264358bea944d3523f9c66585147897903d73b7b42e0bfd599f2492e3315","sha512":"cf4f42621c9615fcfc08b325ce391ff9e3af8b94fe80c1e4118eb1e52ca88e0b0409d0c36bc96f50a26ac3ea232630521e1a8077e10d05438f3b7fb8ebc266a9","ssdeep":"","tlshash":"af7165f0a702b23409ea41de5079c778b53d3658512e9420d1badc7f626cd8964b2ef3","first_seen":"2026-06-13T02:21:16.197988Z","last_seen":"2026-07-27T08:07:37.356418Z","times_seen":1340,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDQyMDkyLGU9PnsidXNlIHN0cmljdCI7dmFyIHQ9ZS5pKDc1MjAxKSxyPShlLHQscixuLHMsYSxvLGwpPT57bGV0IGk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG09WyJsaWdodCIsImRhcmsiXTtmdW5jdGlvbiBjKHQpe3ZhciByOyhBcnJheS5pc0FycmF5KGUpP2U6W2VdKS5mb3JFYWNoKGU9PntsZXQgcj0iY2xhc3MiPT09ZSxuPXImJmE/cy5tYXAoZT0+YVtlXXx8ZSk6cztyPyhpLmNsYXNzTGlzdC5yZW1vdmUoLi4ubiksaS5jbGFzc0xpc3QuYWRkKGEmJmFbdF0/YVt0XTp0KSk6aS5zZXRBdHRyaWJ1dGUoZSx0KX0pLHI9dCxsJiZtLmluY2x1ZGVzKHIpJiYoaS5zdHlsZS5jb2xvclNjaGVtZT1yKX1pZihuKWMobik7ZWxzZSB0cnl7bGV0IGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0odCl8fHIsbj1vJiYic3lzdGVtIj09PWU/d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyJkYXJrIjoibGlnaHQiOmU7YyhuKX1jYXRjaChlKXt9fSxuPVsibGlnaHQiLCJkYXJrIl0scz0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIsYT0idSI8dHlwZW9mIHdpbmRvdyxvPXQuY3JlYXRlQ29udGV4dCh2b2lkIDApLGw9e3NldFRoZW1lOmU9Pnt9LHRoZW1lczpbXX0saT0oKT0+e3ZhciBlO3JldHVybiBudWxsIT0oZT10LnVzZUNvbnRleHQobykpP2U6bH0sbT1lPT50LnVzZUNvbnRleHQobyk/dC5jcmVhdGVFbGVtZW50KHQuRnJhZ21lbnQsbnVsbCxlLmNoaWxkcmVuKTp0LmNyZWF0ZUVsZW1lbnQoZCx7Li4uZX0pLGM9WyJsaWdodCIsImRhcmsiXSxkPSh7Zm9yY2VkVGhlbWU6ZSxkaXNhYmxlVHJhbnNpdGlvbk9uQ2hhbmdlOnI9ITEsZW5hYmxlU3lzdGVtOmE9ITAsZW5hYmxlQ29sb3JTY2hlbWU6bD0hMCxzdG9yYWdlS2V5Omk9InRoZW1lIix0aGVtZXM6bT1jLGRlZmF1bHRUaGVtZTpkPWE/InN5c3RlbSI6ImxpZ2h0IixhdHRyaWJ1dGU6cD0iZGF0YS10aGVtZSIsdmFsdWU6YixjaGlsZHJlbjp2LG5vbmNlOmcsc2NyaXB0UHJvcHM6VH0pPT57bGV0W3csU109dC51c2VTdGF0ZSgoKT0+aChpLGQpKSxbQyxFXT10LnVzZVN0YXRlKCgpPT4ic3lzdGVtIj09PXc/ZigpOncpLGs9Yj9PYmplY3QudmFsdWVzKGIpOm0sQT10LnVzZUNhbGxiYWNrKGU9PntsZXQgdD1lO2lmKCF0KXJldHVybjsic3lzdGVtIj09PWUmJmEmJih0PWYoKSk7bGV0IHM9Yj9iW3RdOnQsbz1yP3koZyk6bnVsbCxpPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxtPWU9PnsiY2xhc3MiPT09ZT8oaS5jbGFzc0xpc3QucmVtb3ZlKC4uLmspLHMmJmkuY2xhc3NMaXN0LmFkZChzKSk6ZS5zdGFydHNXaXRoKCJkYXRhLSIpJiYocz9pLnNldEF0dHJpYnV0ZShlLHMpOmkucmVtb3ZlQXR0cmlidXRlKGUpKX07aWYoQXJyYXkuaXNBcnJheShwKT9wLmZvckVhY2gobSk6bShwKSxsKXtsZXQgZT1uLmluY2x1ZGVzKGQpP2Q6bnVsbCxyPW4uaW5jbHVkZXModCk/dDplO2kuc3R5bGUuY29sb3JTY2hlbWU9cn1udWxsPT1vfHxvKCl9LFtnXSksTD10LnVzZUNhbGxiYWNrKGU9PntsZXQgdD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lKHcpOmU7Uyh0KTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oaSx0KX1jYXRjaChlKXt9fSxbd10pLFA9dC51c2VDYWxsYmFjayh0PT57RShmKHQpKSwic3lzdGVtIj09PXcmJmEmJiFlJiZBKCJzeXN0ZW0iKX0sW3csZV0pO3QudXNlRWZmZWN0KCgpPT57bGV0IGU9d2luZG93Lm1hdGNoTWVkaWEocyk7cmV0dXJuIGUuYWRkTGlzdGVuZXIoUCksUChlKSwoKT0+ZS5yZW1vdmVMaXN0ZW5lcihQKX0sW1BdKSx0LnVzZUVmZmVjdCgoKT0+e2xldCBlPWU9PntlLmtleT09PWkmJihlLm5ld1ZhbHVlP1MoZS5uZXdWYWx1ZSk6TChkKSl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsZSksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdG9yYWdlIixlKX0sW0xdKSx0LnVzZUVmZmVjdCgoKT0+e0EobnVsbCE9ZT9lOncpfSxbZSx3XSk7bGV0IE89dC51c2VNZW1vKCgpPT4oe3RoZW1lOncsc2V0VGhlbWU6TCxmb3JjZWRUaGVtZTplLHJlc29sdmVkVGhlbWU6InN5c3RlbSI9PT13P0M6dyx0aGVtZXM6YT9bLi4ubSwic3lzdGVtIl06bSxzeXN0ZW1UaGVtZTphP0M6dm9pZCAwfSksW3csTCxlLEMsYSxtXSk7cmV0dXJuIHQuY3JlYXRlRWxlbWVudChvLlByb3ZpZGVyLHt2YWx1ZTpPfSx0LmNyZWF0ZUVsZW1lbnQodSx7Zm9yY2VkVGhlbWU6ZSxzdG9yYWdlS2V5OmksYXR0cmlidXRlOnAsZW5hYmxlU3lzdGVtOmEsZW5hYmxlQ29sb3JTY2hlbWU6bCxkZWZhdWx0VGhlbWU6ZCx2YWx1ZTpiLHRoZW1lczptLG5vbmNlOmcsc2NyaXB0UHJvcHM6VH0pLHYpfSx1PXQubWVtbygoe2ZvcmNlZFRoZW1lOmUsc3RvcmFnZUtleTpuLGF0dHJpYnV0ZTpzLGVuYWJsZVN5c3RlbTphLGVuYWJsZUNvbG9yU2NoZW1lOm8sZGVmYXVsdFRoZW1lOmwsdmFsdWU6aSx0aGVtZXM6bSxub25jZTpjLHNjcmlwdFByb3BzOmR9KT0+e2xldCB1PUpTT04uc3RyaW5naWZ5KFtzLG4sbCxlLG0saSxhLG9dKS5zbGljZSgxLC0xKTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiLHsuLi5kLHN1cHByZXNzSHlkcmF0aW9uV2FybmluZzohMCxub25jZToidSI8dHlwZW9mIHdpbmRvdz9jOiIiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6YCgke3IudG9TdHJpbmcoKX0pKCR7dX0pYH19KX0pLGg9KGUsdCk9PntsZXQgcjtpZighYSl7dHJ5e3I9bG9jYWxTdG9yYWdlLmdldEl0ZW0oZSl8fHZvaWQgMH1jYXRjaChlKXt9cmV0dXJuIHJ8fHR9fSx5PWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBlJiZ0LnNldEF0dHJpYnV0ZSgibm9uY2UiLGUpLHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiosKjo6YmVmb3JlLCo6OmFmdGVyey13ZWJraXQtdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDstbW96LXRyYW5zaXRpb246bm9uZSFpbXBvcnRhbnQ7LW8tdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDstbXMtdHJhbnNpdGlvbjpub25lIWltcG9ydGFudDt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fSIpKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHQpLCgpPT57d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSksc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQodCl9LDEpfX0sZj1lPT4oZXx8KGU9d2luZG93Lm1hdGNoTWVkaWEocykpLGUubWF0Y2hlcz8iZGFyayI6ImxpZ2h0Iik7ZS5zKFsiVGhlbWVQcm92aWRlciIsKCk9Pm0sInVzZVRoZW1lIiwoKT0+aV0pfSw4MzY2MSxlPT57InVzZSBzdHJpY3QiO3ZhciB0PWUuaSg5ODEzNCkscj1lLmkoNDIwOTIpO2Z1bmN0aW9uIG4oe2NoaWxkcmVuOmV9KXtyZXR1cm4oMCx0LmpzeCkoci5UaGVtZVByb3ZpZGVyLHthdHRyaWJ1dGU6ImNsYXNzIixkZWZhdWx0VGhlbWU6ImRhcmsiLGVuYWJsZVN5c3RlbTohMCxkaXNhYmxlVHJhbnNpdGlvbk9uQ2hhbmdlOiEwLGNoaWxkcmVuOmV9KX1lLnMoWyJUaGVtZVByb3ZpZGVyIiwoKT0+bl0pfV0pOw=="}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.467Z","timestamp":1785126646467,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 40128\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:17:07 GMT\r\nexpires: Fri, 23 Jul 2027 02:17:07 GMT\r\ncache-control: public, max-age=31536000\r\nage: 353619\r\nlast-modified: Thu, 29 May 2025 23:30:55 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":40128,"size_decoded":40941,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40128, version 1.0","md5":"9a01b69183a9604ab3a439e388b30501","sha1":"8ed1d59003d0dbe6360481017b44665153665fbe","sha256":"20b535fa80c8189e3b87d1803038389960203a886d502bc2ef1857affc2f38d2","sha512":"0e6795255b6eea00b5403fd7e3b904d52776d49ac63a31c2778361262883697943aedcb29feee85694ba6f19eaa34dddb9a5bfe7118f4a25b4757e92c331feca","ssdeep":"768:Vce3jkow68wmT4IBX0tXdlSirS61gSjcz0GPwHbP+w2jec56O:VcI/iEEEtXdFJj+0GPwHbP+w5rO","tlshash":"3703023a5e3ccf1a84157a703950f6d9a8481e548e9d143b4f1ac7bf085dde2209b6d4","first_seen":"2025-01-08T22:59:02.845106Z","last_seen":"2026-07-27T08:08:30.994932Z","times_seen":947120,"resource_available":false,"data":"d09GMgABAAAAAJzAABYAAAABJMwAAJxGAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoFwG7cAHJB0P0hWQVKGBQZgP1NUQVSBTicuAINCCIF+CZ8GL34RDAqBzmCBtmkLhVgAMIHeagE2AiQDiywEIAWJAAcgDIVOW3sUcYJ2+YXsTHcCUa2eb/kBStiuDNw2mlrloLhnj0bEboekZ1x7dPT//6cllSEzKZqmA5hzU71vkJCiJNulImOrXjzgaVpjkkldY9XkEtIwK7MgGJlJEu058EgYM8XbsUKJJgnS3LaCoydljRIf3TWocIZSKIVqflw9sPdXdL57lPkx26hbdai4Rm4SDjwdLWegM6PKTLHOb5qk/JwuRbUtUd7gj8QKjJ+DgUkZ7C0v+jSd+LWPe9GCVWr6F94zg0u7qMNnDlqbodvshzAf6OYyKSUIe6KkC93/4oFnTrqajC9m6zfclde5uO5vhku9953rXlaBseshaqzz/jytrfdnZrfZApZcWGpJqTxw4VBKaIk0sJvzGCosKoxT7g7j0CbMQ8wAk1IUBCxAYmGIoDz4r3qQfMhY4ibqKONtZoB3W//MrmyZMzVNcIALEEEEQZA9ZA8RtqACrpGWZmrR0LyyfVc27LK77q553ZitG7tb66/Z8Lhp/xIIkISECCEOwYMEs7aDik5MTkTb7ovoicpuJyLbzrzXTiprKTA8btq/UJ+I/7ud78x3+2rasa8+ObN2Vt+NrsNa8GCBJCQhASKEKIRgQVRWoywdDTAUXTP7PPdkKKfZoAAtcwC7mzLiq3ce54D4xVBAyibdANmyLaI5eDfrJwmQoK1TZ81OPW3vPf8T8Z8PKNQUKSktYkE8DXiFutCuuBy01LU9QDRxc9rWj1Nz1ga4kN2Em0sRtrd7tD1IHsgSC/8anXrf8vhOVVOhvq/sWf/TNptLrpUKCNOM4flu5M7lExRGNNmFQsvlH/w9d38Ts/TfK9jMRjPJtJ+EZkKtgsMD/L37294UeTGe7gsswyj8y9aYYCyH2yZ2SXJQ7F7eZmlRWfm/NdMP0tdImmEDxrv8vN7EcQDZ7XPKrCIdm1wLgCc69nhLfQAd1WZVB3qAavATs6eYtYwkTJD47ZL49NSH+Wa/ZybrgpyJgttS4rsJriHhV21ldzPgMSUyV6QnIjZ1nNuKchFxIkb0mc+Tjdj/s35pe72zOXhO9WcUWM2W+k5NeN9Iq3NA+jipCUrcdM1TUC5DYC1HVSlHLyfJzDYi3ysfAfDP/7Rm9+duD+1Bd+CaGuFyDtbM/mzLPHKyu9BDa2UYhUSjsAjXVC/CIgwaY/DhbWq1/0tWduQcWIvKoXUIRbdYn486oKa4mff/14fRSKOxHQsMskKSvSDbyZ3s4FgBWV5nAbg9oEr2JgtERbv9MZQ1l9ee//+mpu2/gMLIEVAc56HiH8U/UtE4t7lp3KfhgBRnQFIaJgsEl9YQu6YBcNdnQO4eD6CUYhli+QByjz42WJ+kaA3XCVRcOaZOrWNuity67F10kjqnVJS1T28TNLc6WUjfLqS4IeL3R1gxREswWLt+3zSlGv2Z87pr7Q6dRIQL0LAg6FtJbqvv1vT8Np2lA2IzHfOxg7lv7dXO7dwGP+2E5n2XqBidkSc3vK5GEVx/mRSgq77ZcoBUuwVSv65RLlI2QlXaEP940w0+hoF1IJI9CMIAwyCgJOAJB0BBOY3UrPh3Ea4wxihCGMe4ShG+ijmxqimZ3Xm+7BPSxhifMcIInfCJnAmZ+UHCbCaNMeFsh3UvQwwJee8xpuapF7+xw3Rta3xqkCAqQSI44vPrMVQsR116Hm09QZS47RhTK4qxyf6MqRtUkIsgnitt/3RAcCJLf4qPqYYRMuIB8ZYIWfkSsl7IFiGkkHQhWUJym1P5CrXX/g87oBTuuFMwN7VB7kXTFkUnbrO84857C0DTgj/G2uoSUGoshQD4wyrt8p9BgHrAOTIACMj8y5c+9WBo0hcIwvEUijH5Qqks614AEVkpOXnBracypT4qaj1uT+McYItQgDjuBL59q8e1XSEPYHtjyN4GyG4zt/sATQT4X/H6OItnsS604dbrQ27rFTP0o7ICU4m2AAHlSeSY2OSmfgFQhw3DbE6LrrXmDSByk/Eue/+7oQAsMV3wISG/ivDQcQiI1Kh10CGHHXE0WtGOpGKpJwAMbagVqEkENZuQI+OoDfWAzO0bKwIys1H+s3kcWO8pab1rfSi6yifx1lp1Hy3qcvncKcmFUen0h5/d+Mz4uGre6M/lyluLsBIR/3JsoMWW1C6s6TM3WBtKk4Cq9VLaBs5TxkP6h4nnV92N8uIGrdvWX6/aadFc3ZoTG8oAvrGoCqCWVt3o/JQSd9LSi8mjT62KPGWM/80qMHs+r5+s6rEofb/9+P9JldFtSp1WCyfPYradrBLGaTi+NK3/4ku9FY97cFr2rt4WOsnh2p3CY6WT4lDLuX92oF7gZS081c/SjvXQDJ5vjJqOxG3ivZzjrMjqVdTXNfpZUYKKh3QsKy3ScU48yGNTD9n7Xmg77ueN0MRGEW7JfHc/37B5v+1crqt8b8Z3bt1j6yle1prGvagp/LfWc67WOog7ls76t1hKxeeTplT+C+9rD3W89wYRBpTakYf5MzXuBq8NAK3ZfCuPTg9KU2Wled1n/VY8A7z4vFy2mZqHer4NtzCrryhv3nUsLEvJv+S4NbfHz4oc0YunMfBfzNGl0TJ9uGyFWs8+4NAv0jvtPFExy8W3dHW0hXFcfdfqVccHQfKtedEkZVeY9M75WvuP2tu2RWzeorNzEBIyPbclDef8qAVzH/s/m4HNzbnQ0H+LnT++9QFuz9Ovdt6LToL9nSR/rjSP45Kr3adBtp7zurvl/idxXFKC/hhj9JoG4CwGMWIKY8EegzMPAnP4UONHWtM8q5ZQEbRFpqVirXriJdKX122k4SZlaibu+cbMqEkhKKhCZJ6RgLisR0yIz0Z0SMwWApKyFQksSC66RckjLE5BzCQHBmFrELG1LfUoSklD3PwRZrjSMy9COQlBl58wQkEiolGYeHTFSZqLkiyMQ2mWp1U1AOwJUGzT7tCBDQ4LJQSoQyBGCB19DNCECScwasxK9sI2W8PfyCe8IRKfkXDGQsyFWEqVnRAHIU5S4iwBFzG4SoWbeH6TmLs4PCQ0p5Hgww8moBETKgxTuOgixDRfmChxxYgmVizxUpMglkQpSxdSIKTwCKZKdV/G7H6K+fw2u7cCfyPf3VujyH1P4J6+DHmrC9LtA4aPvIyjzxeEQd9gRvkopjGT6KbMoKEgwEpuBxTMoQEsTMAMByiFC7hRAozwAC18IIwgKKcgceq8xhvCieYPVrQiwY4uMCMFjx5E9MFjABEjsBiDxRQslqBYQY81KDbQYwsjdtBiDyMO0OIIJ06w4jzZy+ESl3CNa7jFLX2AmQCwzJ9kFDATDUoCSkksXDc3wQBGFqGSxbCSPD2WxJ5LgZflCLMC/ImUYdb5rzBCGJnUGIvL9AjBwiznbWSwQqqsG5XYsIXYWz1keYjhZzUQbcTNRcp8JOAnmnmdmV608ixpF4asplXmCsqwzXYV2L/ieuYlQrs33gp4sz1JYMg3NIddT3BPFQRHOKD5FJS2MAC5LU4phGY4DJFVvAV/ZfzHdaIDAQwcjNDCY9gPny1aZEDEGFpMIGIKLWagWJzOe3lud9t3nz1zw4SQvh21+KGceaAEwkxQUZ2mXXVTulsgX2akLsidGQPqiS3Ks7bXSeHJefTS4pcWJ/lJUaUKZETHH0qRjnXYZeUdaqDLG5t/spi9aVHZHW2ve4/bHWuCZLqiZa3DEaVMEu3DgQl7gMadbId3T7YcBi5vxgmBxq5b/jYT5C/gkCBg+zifA6sphxSO7WjDGNUwDBMaNfw51kUqatJwHuUiyKJ0yIN8+8GD7ezP6+23UkAcyBYEOg4uI8ZMmDJjxZodew4cOXPlxp2H2fz4mydYqDDhIkWLFSdBkhq1u4HeW+2Bhx557Imn7d6ee+Glt955r1OXPachw776ZtSYX8ZNmERBUBANOXxXPlKNWjSi+Y7U6zK6kUY/hjGKLMYxiWksYxXr2MQxTnGOS1zjFp9wI4gw4kgjjzKqqKOLMZZYY4s9jrjo8xkrXvNdazTwI2DFeaSpE0zIqeHjN56bX7wwavzDQ3E4cmHGg4EhhvnKN4+1+hcYZyKZnAqGqXA5V8cotnHA1FY1tkEubTCBXYkg1IlyFgJAag2gisCt2SzPZnYB3fTQm3xI0ersw37J1fEdv4XjFMjBQY5wtIn8Kb2OJXzIpVwtAGdjsX8R40wkk2msEpuPAKD7BIDzx6cimq3mxBG+S+MJAKkdDZgA+MkprY2Ajzj7BvwIYD6FDDLEMF+TbykqbM+O7BxOvaFvEF2qjU4AgAMpUZEnkXxGCV/8CGC+FlJ2YeyaVtcSh8LhKJISJUqUKEVoUwI2C5tH2ZQi2DmcegNK7dGjoqKioqKioqIGdQkSN7hjPOxR0L2NN2Lq5T/KihyYo+NhxVozLillREWOQ8oa15U7rumv8ewQQQmfyVwOS80lr4AKQgpB+UQmYmB16+rEeQPihn/+0polvjykjKOckSOQrayxR47ccdgitScojBCCLuZwHlO8ub5KXwTuQwDx1tdIIQ0ccca1lVQ/KIsmoGTy0K+lTjjgaGEaxKOL3QXaKJkPKnxsVT8FtcgNBQWVUJFhCL6Ja7n0lZTls3m9DjwLC1PshgBcORQvDbj0JtHYS3shoLZBfwDR+mIj6kNSB5YzTXg1OFtZ99rnbuXnSAyykJWs1hr7zuuH6Q2e8mby74q+it9HiKO+38sPwEMe8Zgn7uvub8F3fM8P/Ogx+CcwzgSHmWaG48wy57pYz4MGTbd2hkGDVqkcRGusRptkWltJG4zearRNjIG3D95xZWf2ZG/vy+D94QN5fDA41KfW6EoqvjZTXE9cZPgEVl4Dr8b47zLHCT0fIUcnAJzcfnmOWr1waLlTDYZXqujEcXVWenUVYLFICPfoukHimGmSry4gHwAO4hBfI8/XwTcwNBUkJTrOLsY4DwwvSWEXABW5G5nQeDFGHQEglSUUjX6GBGvk0B/55KjGKJ3uQUavLsHAh1+pgYPAQGBgxs+tBSqjn7/Na000E32Uoz1HnxmyfvgMMKA7VtoyZ50gpSykny7iL0KccSh0zimYdd7DW1oHQEc+lSsk1zaXzd7t5rqngW+BXj32Gd+qqzAWPt+/Wt4AsKvt83uBkcmQ2Qokbmt1moHoivvZltt8ES+gu81v9QCK7ztDgPiuzBT3Pso/aRvhNVyiEzzwwIyiC1pADMdGwbgEc9OgZOzP7/Cna9OJ/JPirAwzGR46oVwyL9KrEjH/B0wkthY7bbLZZVdcdc11N1QE+68764zTzjnvgosuadSEfnUAh2irFI3z5RwYRIUEAAbzd18a4LQmaKQl6nRx2q7c6VIeIvJQaPKZ2B7+X2tFrYObeZEWVWJq1GlUSULF3Ph5t9zOb3GPR2azPSLU0Bia9YaKKbeuY2MUOyI79tjGRlApby64XpyIpUOcgvO/viarHY7PDnRyCCHoBu2gtvLmv7bVsmmbm7uZmqLBmn5Tr8P1bb1bL9XSuqiqKrPWV7MyVj6Uu+VQ2VOSi6aIC7MUFVFhopkM5nVupy4pCcUUYejZHiYMa3XGP2oVy7McQZuYADsEYIpjPlXiuw740SqyfX1Uoj5RnzLCXOdAVtSlEWReTGNIhzoRbtzYE5fBaE7FqTJFXYpTwcOMuJAsezDqrF7cHJbcXwp4iUNqCrtKIS0s6CklsZ376PhMxa7uGCs7NZHYpMaw4teYealR+1QkUQ+G2Yf57boZwrN0QqtgKZ5FMeoL7DzHVkwT49QQRtUwT19AheXwu0En/RjQh177J4Es78yXgGvinEYDx/s/jhZVlmbVWETyxXQWZKQ0W1ZH6RF7urFNerZnIXw7oqc9acgkZDnE9bGIubFXqhNr3mLJO6JvGDdvmEtklkFEVoewLI2QzkFmgidmqXYsqg751byBdvZuxgQZzzDse97nX6FcZ18/8Ah97iPteWD+u/WvAzA3C40Ve0yO7wgL4L2Dooo57d7EAgTSEiyCjki0IfVEZsiesJCemCUrYSk3YSW/3Xo2310iXJubWYme6+ZvLmsyBIAFF8UeAh7EN4UYirhAT+CC+rBkGrg8aaDgClNUGS5Nn/FQCWqz59MQCMZGhkkhCidtC002PbO2kOT9ZI5OegO8bV0pCKPVEfXQmSYflCitLK5MmJ3hzHaQzrZm+xp99vrGZgIGUkDW5lbl50ZUNc3V6jqWRtKGdqNxG3DBzUp4B2pj02wnvxwfB/wiBmPnntIdYoawCJthKFkHq2itd3FbasGpWbFNg7ShJd4jYiO3pk+k9fWXjSvkVFKDZWr3rl3DHAPSj++ERMpLzdkrmLGmQNzooMxeaSUNr9c1xgkQmtqrqjE9NMput5HATIXmSlUJtbkurLGh17kqatvbqqhzc0bSiZGUxmc4IBwzlZlbWaOFNfZTBw5kEukhS1WIZiuGrvXl60NzN9mP+cri5hyLTlY4U1LsU78N3WFoIxHQPTCsnRBQhb1YGjR2KRm66odU2Yg2d3ydePxgXB07Rnv8wrbxS7L27wjb8Vevxn8UjzJ941k5o1nNaPHP6FAxBpUQ2cM0i9mo9gcADAB6wuMJmSIkyw4JDokP/22Buzj76Laj+UdLjqqPtp/YcCL6hP38W+dRy9UXfr1cfZmywn9B+aL0Ouh6yY2BG4Yb8ZvVt/LvfNXmf+/pbHxP/0bxB+vvo/u0+/KHBWK8r6GN92/84PYPGx/5sq2PDhy48ePvvO9u2/RpnOZonm7Mt+Zv/2zkiyNfDny99+uv97H8m/vL4sbvH/vh0NjM3YxKqbJq2rbxkfHR8ceOnhgRzUee5L4wdWTqo2M7Z943vnt2z+wDs4/OfmZydX1r/YQi2ul2G6YpAPbHMrcDrINWjl/1rVURl+BrrJNmFmUvbKoa9IYOdphOzfQ6A7P/Jx+Q/F2nAAj2KdcAAMjJAdFssg8N0F7S7QDa8oHDv2JpARxIAkvVloE/pGXwOVPE2sK8qe4EM2DpfLCAFHolACAO6Q3pRnGoa+jUMnDmYwF78Lp2V0oKwLYbXe0pACBH1JmD1GNdKs9uGy0SyZ8HWzJiOAwWEwAACACCAFoVz3i60yq4dKeVsZadVsKi0zMaAW5goaN9R0+3U0cWhza4DdtVSN4DAIuxc5FlsZB/cX4kVD7LzAcAuF/Y0L5x5dbroY4aPRqdv5O1mfLrpN0h7DykiZzyQp6P0AjOPr+U7HbICSdd1eaRPl9R0N4JLy+VtvK6vK0Ix3EWbrAVLF1Zuqp0PU3S3JpPC2lZraL1gJ/bWt/HNKn+/0cf5AgpDtc75ZpbHvvkG1uHvSzssq4maMrry2hlhpaYqg+W6fCQDDcADgAaoD42HloW5nPT/5rzc2D2T8FsWphj9t7mn8NkMhkMyexmfuxazVjp/85n58qhBmdZcI4gieZFm+c1sNUpMVP0zUn3vDFD/+TTpOvWo9cHH2XI1OeTz/oN+CJLtnl67jlyTVGYNoMCeQE6UO0NVG605vpiQMljy1XcHPeqDryXLrum5pZuUtZt/KKUpcXxwXSVnjmrIl1KQfZvOJDmlEMKlGicxqgpKt7+XnfJd9j70RoXuHhHE47YZL2qSZo9Ktd/xjP7VTjprCu5k2neq3yUq+E/XOHgtdSAlBm94vqp5LwmakIstt0f0uXbp9wRpzz3PjK75CpS45hzrZDgKO4Bfb8uLqMjw0ODA/19vT3diXisq7MjGmkPh4IBv8/raXO3upwOu81qMZuMBr1Oq1GrlAp5i0wiFgkFfB6Xw2YxK0GS9OqYu6Ns+V7MdwfHdraLluezf3ynuktuxbDVMOoIekvsyrbU94y13rBVChBcn8ZjX5MI17u9YqkfFovpVnZ4ZasRqrVO2jsn233pij/4UlznQw4Up2H0uHR0P9nbRdF3DIL+DKnLBBjTbD6Bwf3l2iS8a27GXwoYdZ7RdGxZBt6q5EDQsRvuXrYK6pVyARRTXgxNWZUccEZS1QhkfegX3cuBGMfVdjIcjF4+LihAJkSwmLuboh051tm8preF/Ybp2nkyeZ/bbiW13ajNtxNBZ4rw3XjS5bvJRvJiGNR/NyVfCSkOd3zalOwukxuGzinQ8JTLvWKwHNzOnY/eZD2LNIqAmn5JMsIeTnbkEJS6xQXlajwQUgE9RhHqdGlq2yJOvvifIyCEfNkc8rgGCRrmvm4dM/WMntUnaAGFCYP0V3b//8c1gB//s7d1kka3K38xbXkHTebkbW9oirBoyna9BPsyUoUnl7xtugY7TzfyLYAFGF4ch7lz+CHz7TrRiGO9tqUAYpVgNXjDz8TQRFXoHUk7GYz1b9/fW4VxPWESHhj2aflyvV5j1HFqTKngVMuwK3B1BRfA4KUed0KKIgS/9ZJW6O0Tq6bbKaeo6miPGZjo+LDy8bQNTii4PFWcaiFZQe5Fgzvwozsxx58uTkcsYo8CV8L8iGuuqfVYE+4SQW/KyAx9hExqxb9HKKI7JgnotNa3yp1tqhOMuHtp/spW0htu81A6BPtJsy6amlCxFxc73LOGrUZdP+q653Oomvxc+3RwWLVn7DSrtW6O1B/M34JgAkxyGTRNnsbdRjSY55e/I61/S12FXjQy7Y0WehBX7s23yzMp2ibxSFBDVl7k3vCzfZbQDNwNgD0uuu84cvTQFXICXi6O3aJY1wGu+w6cVAy7GPG2WOp7LQlgDCn2M9HJUZHuMvNxXXz8JYYOO9uVaH6OHnPedE6pAMEXGQ0UMd7L4qLBZe+SrBWRNknlYr7CZ5aZLpAFbRalNIndkbFMz1HocjNJ11gPoQ5n1eBsdvaypMvjqmPJOtHZOCUWxPI0IB2j4N86dMm4b02mZomGUbvQ0WY261PabKTWxaiTqwbaTN3AnpLJwoDtDmH2k4MPEe9V8DJgUgBhlkVZjpznzvQ8gqlgqaUflguuO44DyHp5SgLyOnMZBQfcaqZm6w0nAkoorpoJmud7SjRqECrBweQ5XXqfd1TnjqBSFVN+b1+316apog69az+aHZRglojvrwJPaLnM8rPjLgpXXKpMc4gkQ9dc4l5HfTMBJgRjSVzbIaa60SnSqksmpK/iRCPKNxYqINpfCmtEB9bktstBmnI9kd8sZfVMCBE9lvGHiE2LG/VFoa51jAbEJY5/1YF9TEQbW540T/Y4PObyEMO7IQEcRehRTMT0wlNJ8GDLe0BIgIYv6cinBpPbrmVuFQQmNqF41ykIORhrVxeQGOvlHVUgRh4jvrskQyjY9RzXFhlxXKYlpuIleOXcdgHHFmKJmDGDP1qlsDtyhpzP9HN5UwheJOpt9sfdml74h7I8yXY6VCltHwmTTpO6ZT6CmllGBxhlrezhomeQvivASpBS1Fd6lULmGPKgVj4s4K8E6ESXvok7OxHaOa7sjBqqk0GW8Hso9PvmmZsCOBJes6AM47poWnO3a5ozJZPhREFn7M7wPWfEuCCBpOaeTWZtII0Tl1MPimSZXYsLLnCWn8l1KWROYcRx/aNxCUOjS6BmNpnxN1RehrhmxjirZYgo2HSgWddWSpVTFloM1Fy/8Qw8vgxbuJCARj0eBTBWtOuEsO9gVyTx/PeW5+OGrrzub912WmoTyw1TYVnK7b7YIjVTAhzsnU1Ei9zMOOFoH0znpMPDdIiwJO+4lS4NUF+y503awY3MMTP09B5z5C9+Qrq/XZkIJwvwFFUw+AqcSp21vff12MQbbRUxCY1r5uM/6PQRgC7Gk1cKBQ2o4Ymbbx+4GM6CmI4zK/ekIxrZW3DjgaI9THkx/Hj6gqHJuBqww0WY/O4/5lxQcN1ZkL2dijHegoN7xkPldN6YImdj5xd3E7vyDkAV/+eUKZa0sidjVIfSmIkPX3NjW/OucfWLv4fLJ0p6HCHiMgrq4bEkG5Ta3lgnV9SsoZp4z2cuqhWCle3p8BF2GuGKyhPFifmPxx8WDUIQLOrCyx5Yz21RwSu4AS+cZuyqlNWcZWe1NJYbeK1eEedymE1jsFQqp3LuQ1mWDsIvOEHZ4A6E+gRTx4I+FuSc6mJ/2x5tKP9CYJThPL+0UMzIUOVXVp/BkPK+zK0C+AvDZ71m8mWiz6fBfbmwSIJkD0Yl50ub6cn6pRxAgp9Dc2zk9vkosuUe85zew0NW13Y87XPQuQBLF/bN6jInw5Ecooo4mih7ppa1yJZNY3CdvRAHr4SHzKhQpGgEIOgk1ykVLGyrWRVIBjasUfwpsFwB3praOQTA5Qa0S2h6N0d3DT31BrRbGPrv9u0eZhy7qLhHWB39WN+eYcfxrRJ7hUOfcud7QzBMzNHHJ9V3K4hj33yElwLRNwDobguAdR6g/Rqo/hiQTjRWP56Ao0GdsMkhh2UmCWg4IO5dvMQ4nHcUpzjFKcbKsiaKwtyyLYrlsEwUS7fHsBwGD5WPpaNxGh79upAAqcYbi/N4dCYhloGiJbgBg6P/M71kURAcBkEiiihtAoBmm7xm/VsvjEfDIK8Z/7BTD0bZNBf5W6UrvqRWB4wg6Naur6x1OLxr/UTtQQQYkxv8XE1nLZb9JVD8GEEET1MrMuRc8Wul+QvyCGSRhvPsTdW9wGHG8prktC+VY0VMs1BAZd5+KUWKM8CxorfQVmTPRwndNCKGdRDYp9GlGMuOi9TOL8n1jlUX82t+EJ/4kCuLi5AMw9iqblKE/cRakR/T6vFNgQTjaLZddVTUtLdcDFOJwHiIW0Fso+nggUBGqVE/wFIhhVZ1a+iwedpOz7o9q2j1+dJMgiITFqkk2tZ5inIiFvYJxVGyITYloBvH9SSBiylWWJRIRG6KqqmNpgjDlP2AqWR7oAeNLEGHYlP6mQRMMvZyBelBd2dUiOrW9hVptCDVv9nOLCXPQqQyxDeE8ewrtWkaKdJE5pCSS0q8/iMWV8VBXv/+cfF6xAlaaNWHn9BvYcoTQtJuAQtZQvw+NGq/UfsFoIv77+kBOcj89tsadLFfelIfotrvjCXZnv+gGT2rX38Ng6Zp+MJtqXFP+i5BeSmLuRZ0p8nHCxhbgzwziRhcoVC0JpuX7CR4XG2lvpvy4DlBjwRR3dlkMTfOOtz1XJuu+fkBJaz0Hm5TvV+RVURga+HJhpA5uhBUSbjTZMsfb06HJSi63+fIcVr0uYdSbMxAZSMQjir2pL6GWfDaHo0Y/k8QIZVDTSoByMiVbKa2MEFrmmmVKL22XjXOd65Y55I1PAebMVyAmNG8lBRB2eZpcStGSwY0zp/P/AzkAInDGzx8GHHbR7ZXyk4mFKO99JY9pY+YYTOe0JO94YdUUvWbrQiP+3+V/F8jBPXDxw61KWbeELrRB+R7bKA3FWFjLXvUobyW14WG8/N2yxZA3iZH8ybGKb1bNvaqBEN6IwrVJj1Tyi5Verk8K7jl2CJYHiGGXpPw41D6gyLOwG/VS1N5xoeGukYRGsuJbFNLvUT40Wr3Jetgzq4aS6X5JMqKiDD+mbRC8sjVIM66t8sRdDEBegj/VwktttZwLaxAWmIw3VoTcnKOD4DntMPd76ShMhs1A9RwZJQmiLV0QFq0SSm9WyJZB5axjHD8QdZRgW+VqKWLce+JR6yga/s0MyemZ3B2Gudm/ekojTxuOttRZSTQXQBoBeRpA+Z3YQWbZ4JoFL0fPFbXYqbi9h5OEkcT7gGXdrwcnucyoWpzoA6vV9VpensSVmJHN67ZkO6ryo1nATUdHgdqpDCAEVyNtkMbWI1slnHDXsvVYQO7b78PUC6xd1kwavNutIA5pNl0vqybpkbpnTTNIW3otcQy8xVgNrIvFm5NI0+irp/FnI8msqTKBeYYyyTcHscyRgvbbW2m7KyZefkukIM54fK+6I4M3u8sHUOkDEslkVauL5lYeb/rRr6vLBlhY9Ag5uaWfCvKJ3N3RrNiUftH4xejkoKm6WwoskBku+i82X+iOrpXFK6XxcBYX4GLdIoeybUsjLQiMqrEQ1WTF5C47yKtMP1NJ+gSVhLHtVRaHCkqhXwco5iDaWRgpcsQw7A1YGDvddj0X8YErKcw0TtjuZwe55Olqg/pgwrwJCQZVQfjYSUzHJcZUXq8djiMpd1TrcpqkzxWmhzrI/frr69XxuoJ5J3n+n0nLJOQOkltIlGW8yqG9KAr1Eyuqq04mJmg2SKTRt5hNnaQsPNizQKeRk0Lbu3Urpa2WmCmaxpiwoESGRXO8hvra04N5SrPGDbIP6RQp1QyExpeDnSCmtXTcRAs1GbWCd50jKlnKCsLgODtPCyhFl+j21jiGSCmMTO81NY1q974jwyaTYZhTkZgrA6OQDBAURk5lTbdBZ82s4lrycFMoyBtZern3OcDmgyPJAsPS4oXEd7myAlmGwzjoEySCgWivbYti9pY24j2h7rCcFWkiQryid75C+F0+T1CnLUjrfR008/J9cyd5IRrLFnrAyKYEwpp+2GYOj8T1H/sZ2kP2gifZJWgyJytscV4dLPAaFJRbGyC3Nj0wEa5FrgX2krPExM0JmRo5AH8l9qd7U5fpQqPvcQ0OkFqblquXKdnPpm+vA/50fENhqeqhh65bcXa21RPeKpJ6SH1Ttdi+sazDEyhLwr0aJt/EFU783pJj9qnWlQn58PncC73MSu0NPsqAZiK7BEFH1DpoT0LtTApr5MdxR4Wq5hrbT8SV1/05sRnlWyR2O7kAWqJLGiJgoZpRoX5B/d+snH0MAdmFU8u9nAyDkQ7Rr3L/34y6fChQdkL3P44hkE+zG/guA/1Oob8xP16uHzr/mSFoZC9MxeQ8HFRW7MpdwInmZlS0I7FBMgZt327/F1qO6jIc4U75E7g0Y3oBXlslHLRH0EuvECkVwFHMIVMSDneSir53TanfiXblUsnCD039uPHsfdjjLYSy6l18tb8jxKSjeoimX34gwbZJMXrMWhXRa7+4XHPYwhjTGxXX0Cnm+RdlFl6CQ0ohb7LgjoYohFzwCwO9xSi/l2XoKjnhHSnHMwEOihAXr6N7RNavOp5gXk6KAwxs61mlc0n3fjyNVwC7x2/fZjGuTzrzL6t7F4rsDlw7xG4cxBPAyrO9OJwyqAwr6vNdPoO6LZTb3ghk7SijRibvc0xF6o6nWoaIX8tuCRFNjftPgNFdtWTDff92lEG/xzxlm9FaCXuztTfjOf1l11xHPjygzrhgG1tMkDS28AmyNO9CRnc24DZDa/ZjWnwZmc6gLEdNr9u+tCurnV8c17myvKezDvLaYSpL+0C63DGRAY3kjmeWVYNPVy3ry6Nad40x9ERmjDGuMhZ0g294rccj8ZbL9wwDjqONPk68M+HrtJA/mapFtbU4mlEuxhktDHB95b3VV7y6Rc7+sPL72t3y4/Dh12i53quyZE+CdmyvU6TwFFaG9bNBghkrNFhic4wJMlFmUDCHA3Dev1IUxyfFyBKkUY1NDBQJRKEoLZUygQXIzberOzYslCazZVSB0kNS9jaEWFCCqZWK2SSBLZasvl+IKw95KR8nrzKCo5VfnTwJ7qCT9CaWvAiTIUKA68xCpwFNdn4z+uPcZWRvdSd3JDm8DGJr+1gi2xcxqzzqbRnwY9Y9RRjFmcbixjpYZpaFvjdk9y7XSeskPPCfW+P7R/jij8W+6Y/aA2uduqEE+Nd5Vu/g405/n6g3ps2PGfjxwtN+zecPMWEQrue65y3fUusfTn9ZXek7fvOo+ehfibUiu5PM5vTGkQbP7nZZSalxf9cx6L9JyLqgJ4o14/RRR408CmxwWxK6/v/njJcjZiD+9KUyQ36Kh88idLcTo/rroIu5+fQaFvO9Z0TnSpfLc+o/2ROq31DSnOx/2O+YZupIZm25Ur5D19yamEtnozD4cm1iPPUivMb63KXIX+HXwVdB99AvsT//FLz3zpKTlHdLburAjrRXNXDKW1pyH/aduBUc6t8stKvEu6tur86XmjZNlvTSqUoihuodiS9texs/PQPyDm4h8JQgDF0O5ruKzmXDZ+7CvBLje+3j57MeG0zDZlMrg5/mqU0m8agnkY2vj3IkJj7uM3DytV425v3tx8av2VynYuQqwe4/ZbuxPCJgvwwesjcQyYFWC3YoL9RIYw2Uf38Vb9/5Y22kaE7Ou+VMSwq4W47Te9YqPQvTKxQXN7qAYqDPp/wnsRajScwvQ7WPvMqnxpMkOTyGJ7aodXy2sdxhmpG5k/JIm/lrT/tP1x27tmKv9wFeEMjwBsklsszEPaDn48LayaisQqx/Qg90Eu45G/FnQ8OPMeKqA4jYzb+vg325U0Slr8dJ6Ta4Qx5eRefAYlwlW1Ipt5QtwP9t4uC+YyZO4bwAuqO45EZPiuy29BYshVJV5V1cSigTorB0kAXDHFbOp9hmoEt6/gLIdskQuydl9jHkGc0zsZLodGTPH/0vCn8bOMdh/IgsSL5+9bdWlT7sguywr4FOZ6fk8wm/ykvM3b1PePg4PvGrqvDSuqeWNspvGPkfUfnpVW/hJHoZsjkMQYtIWmhRhMkhSJOokb3/9u97vQNc7z7ptl72t3ru3BDn+i+ofdduNrPIfq9ZA7H09TkF/Ca/F5i7RIvX74lyIPZi6+p2/ZXvGz/wgo7IHRaMTiyDUXXlsU5FFAXxWzB0UgeZEsLqg2vkpEXw4OHhDrPvMw2gXxO7WpcCY6fEvi7z1t9J9Hv+2nBoh/E9w+c+LvpfHbh3SMX826jS+JhNPjBhcLeLe3oktg24rF3n6U+W19y5KuSXv91592cVzDmWARj+uie5q6cdvwPaTy3+MA1IATHeHYS+XO+tNZEZyCtBgwT76xqVgCM1ZSA59lVebj3olZ/JqJh7wsO/sdi1HtjBN6NaeiG13Q3YLoLPf3/SNXWXjUeSOo8DAeSrM3vXy9CVc2gqp5hZ2kDJflNehLZV7Y3VbZu1uRfpuuHhh8zJnoe8E9Ndb5O/y9tmj4369+O1vmxd5l9qstVtyBBBuy9Gn3y39JrC71fE0rWnaUfiyiZ+fmteiDYf/Bfspb5+BMciLz41Hm3eCt4ZChsx38/w1gzGRTWNgk7rpbZqus5XhItvH0xzZLmwl6QTrjMERTJEyfFWixv6mvJWCOW70cvVcAYtcWQ2julK8u9BbnLxZjaNX1/lj5c/nz7Amqh6vypYMrBYFkcS3dxxE22BMJUBHDRDYA3vAuch8UMzdMOjXbPUa1ns+DxZc9hlq6vmdYuljRG4s2W7JSD20ddadPJ/EOGsei1x6YqSv+7r/J2/vnRj7vP971nnFsW/7Ni/wHxP8tPPzaOHn8S7/k4feraFjtv74QoaN7LsYzWXW+faYO9qN29W2yOTwu407loZMphy8PvDrh+OaLuJtwMj5xgeNgL7KmfDWcuav9bG7Wg/e+J0382iHOXAd5wHeANWnTT/HzqPBbJDkjZhUJHnv9nsPZfC5Jtx5N9/tqiphZ2Lfw2ufD7QqHgg4eqJyOWd9jHhj/XHb2oAo4Fj/GfaiMf6Xaf/DLU83pm343NQn7/bmHAPsMx7kTciod78He840mW3tlbykJCmJLDhcxU0nzO/I4gfy9JcO0dWnnDRf7YuMgbp9e/ytiz5c47S0dG3tVGXpy6oaNFOrFCfieZ0ZdduQ/RWndCZgK9/bR8DbTm24btd0LJyifGIsqr8/Mfzq+xS0arptuXX9zx4NiO28degvwhD1SuLB9PubQd96qYUTjFF3CF4rlF+Qb8gdW6V7mOWOtw5ImPrdMtSVIPnH9kHO6X4uEVeeqSoresOXRB6x/+OB68Il3zMlVn9a/ZR/cy9Jo9DMco9rUBwyD2nmtsD0NjmGbYxtD3sm/gh+eHgxMscq+URx6cEAdVhvJ9V+P4k2DkXv+uyJ0nS/MaySeD5f0dbeAfPi71tR8bD+jTDIP6pZw29qrJU1fBxrmGr5e+tkZvTtrES/tCrsKWOymHI1072Yw4r4XSvYvuLwG46IbMPHMPmBzbXEbIDKCLhfzmkUbHjjbQ88K4nTIolzOmBtwrhMDSN4mOe6FXpYye3Wyvc5hIbqUjoFxpcx9GnR8vvSRvd+NG5GrW1LD9WkPYfhO74DcseV/lNbptjD4w0z6BZTtBMMwywBuuSOwDC/aFXNLx5Vc/Ojr90R+ewtnfPOMfLX30ykch2cw+ls1++jKUzYSyez7d/uD+E72V5bncvy1rzt6v/3Su5PhyXsULWdn/3BUynt0OmdgsX063fkN/c3xb7rL4yRNe9pMb4meW8zLnljNn/mm/OJF1GyIZL8yyL+vhevhXbz5++b53Kc6Be/Lo/b3Hmul3Gro+jn38ia51D/gGOC1tHmtxfv7jecLSKO5Oecce3Aq4U7qwtAACX+lLvgI4OVeTncD6S7yxFOg6+DJUbACO/5CMacM7k6/a/4ONV9j+8RvwQfWjwO5Hr8N57wWrHm07kJxLpmXuAzbzkRTIRuTyKpyMMtjRPKarFi+Ar+IJwYBuocESvSxyLHb905Hpqsm48QXfDVqb0t8siufL6mq4KDRcpkPS5f0svhMsVLUS7Q7driaVb0mu2aNR0oZ6VZfg/qq0u/AdwC23vl/fKIXmRrH32mYOSezOg8zWYdL1TVHdpg7S9daRA0yHY17onsa+sbonV7JjkuJpI4mYjlqWGOY48aetDHZfTKLluZuobaDdBcRBqh/DMvCX1xqjS6/YwrHL8ugc/qa32ou/GZ27LI/1Xnd4ltf6l9dSyW0+MlceolIDRWOsalbhTqo/RC1ABz4AuOU1wIEz32fkJpreCEwfFpodSaZ7hHh9U4duY5R03T18gOk0HpYEZprurY7nSsC7GW1tTTxdVMDqzeb+6YKFgyl21DL5HhLDA54sEGQHr/AHJhivhKqHBO8MT53maNtPidom0a+GZJX7/empLNSoV2lsbq3nOavmLNWC6hGpPdrIt4yKUFS/qrzNeJgAenb1uUjL4hGpD0xe/z1rnzdtO6EFUaOmfhuc5E7m1i/hT5VNhV9/Z/kobl/pHimSYfLSJLPNHFUvhdlnID3G5ybwb/im54VWWZh5F/8M/t7VJH3bDgEzUZd0gl5VmOMAgMAqPdJpz5r4awBf80vhiUW+RdxbrdHXzrbdufaavM5hRDAZgUaxHTaQl2vD46/htxTPPdiuwJOxoVxb8ItW0s4E01hA3eAAZsv+mhXpLqJgUzAfD8EsUUhk50QLw7X3vf7I3cfj6zPTb7d8JbKmzrr2pxqX/nNKkutI8FvdzSoyq/UafrnwL3IM8GFf8k4c43v4vdV6LXrK8f7qPTnO7kQwpd5Gir1o4KWiOARwccc8vUe4TuUIXGeonXG8du11Lc7mqGQR9VXNbLC+JMcqk63iz5f8RU55gTYjL0K71zu7Ig2Grkj7Zmsvolhe65u9LA2FVmxQvDqRJ4FM8r1hkoAfIvG80ElJnhgKaV+o2W3OtrmOjByrG3iGfQ346/ofsltE0i3O07z95JVNwcAulOuekUPbtU037Ltkkunxkvh8ajaDFevgBh4S03v+QAvQ5kWAs7e+Ww/w1y7ZF3ITjW/4pxeEDsdBpmekWQ+M5uue4cPPsy1IfGzVYZrzekjw/JiIM8BZOjlSF/IPPm8z01cyVZBj3bNnFX9Z8Qxw1jawnWyuoLGgFg3RAj0rGerhqnJwBcg6UGUp3Y1z56iz9qBtHIyVRsYFXcqZOu3AC1pzUr8Kr2+xYTkCA6KaVVksVJhLeBlDO87KZF1KFj7ia0kijFN37PZnNddSeSJVuLyR76jAMPIg5fhJzuSddasO2DwJKK/yJvCUgrkZRQ9iqD2ebBTy3+Qm/IWCz/gpHtgV6/Cz3HbRAFxvRB3wXFt9iQM2jDBzodGdmqaDuQ9PZA3OXM9vwSe2XHbNzk7mPJvIH8LnLbySaY3F8pYzL+3s2JiDT7+fkbHSnb2EJz/pTi/rvlrZflk9PjO1rfidaBZ6Iu9ceYZG/rLz950fmXM9ZY/+Nff6i7K9rcyUu/0lf9b9N9q0yr/63lrHk7nrudtom+7Dk4HS9c1KcBM/l7ph7WHhDLv25hAt/xtRAQGZTGYna60g2K0XgmOw8MWo9MCTA0UVI0RoMFqufjn+rk189JxxMha09HrfbSVfOTi+8R9lKDQKPbiTfKX1HU5Nqw7Pi02eM4qP2t+RQic0joIc+TLgXCkBnCusFMab0OAY5OB485XWd9k1bl0jL7j7vEa8YHtXCtmlcazZL4WGhPkaB3RC+o5dPH9eszsQsPZ532ltvnJwZyEjvGE/PIAYVTiieJZyiCGgIeRoFJqFhKqbF1OEiGG5NdrAUo1x2GSzFFlXz8dUGwsPu4Bvfnl4hgDWD4O1//vaXPUtFHwNvGlJAXoU5FB31+mOpZdfauVV7SAhrg3zLM/7i/OLrDVx8wB67NHO5+srK6UZbbDc7vHwzXvLegdfMJvPtb/aQrW3wUlUN5mUKMEaDZTj4USSqVIlmbmCfNxgJB/bg8EYNOXYWcOw7snR048N8bhwx05rnwwPB8fOPDaCDf7RM6Mw/8+Fd95OH4OcbQ4xhNNGX3/LlaIokD7iNQgLeQp5m0e4+FU3rbu+rixBSzg/2faXbe8VZrfEM1Nb8rJ33I0Volscp9e9Sofzt6yqr574++rYlmurorIwmqjF15YyJfidDfZiz44z9KiBOKSX0Ud6jZfQgQOfWCOvTKwKmD2jXGvrcCPZiEcVs3jYMZSryF/8PLPDQBrW80kd7dKlmqz/dYW3odFqxy9WtqBxHO3e4Ss+y4joiIN6JX20V38R6Tet1uyzqo53XU0RETyW5mgRwTSCZRqbakvoItwoxrbDs+N5ZoexeUTPJUT9snl48Tq5FqPPfq6yY5elN32t2Dt/8fAB90Fzy/Php/2xCwX3gUuH5vdaDXIdVU2Bt/Pa+WBDI6pOL/9/37D222NnlcoeuWfr1YdHtE+OnnmkdHZGFho+4t166y7Mz8wA8zffAO/IXr95HxZ0YOHWW/+lFARBG1pqzvqqGcL6+sXNdL5rnKBX9BFZXTp83SblJ8fzuBV+wDfXJATJwDU3yDUK6P6CTP/vJJoFRu/sizm5XMc+THA74UnJ0eaj6D94iauGLPTFqY9Tet/cwy68XYEqEBbQx97fLc61TmEFAUVDndxIpGelelI3jJHF2epDgQFbA2Q9dSRj+sAa47Z6DpV+kVOrWBjUt8cnj0ympdXfYDEiYSaDEWTSIiwWrT1IRzcskvY4E8vnNDSwOVgcm5f/guHztjbLlMnZZOWhD05+UDyk3U/bn1V9qbBP4QGlv25HsW1D/o+wkMlrXGCzIsNMg6a3kebiYBBauXbp3HR2xpKjpe4/gBb/D8OFW1czT+dZ+jFi5SCKY+VgyKpYvcoPEfptvbVENZkjco5jlLwxpNwpmYeLmqhMNrGu2sLcVgdbf/n1DaMvNkE2olvwq/iTmf8Cz9NRqPIV+e5hgYEfhba0FNLKwe3Okv4mhqgAoQ41NFsLRq/NXAX460sFlGtpyiOfdAbuj44E7n+y40hm+kxHbeNPUezc5llIS2ZePmDgKWuhfF5DYAdvnRvBzX6zrCSXmRXOLP7bsuph9WNcvzm8cf1lZYlTtpDUtLoxJ11wNrp0Yb/aP6BWyaMvSIhQoxhLbBJicwVR0lRhFCJE+Yy9J380UIyyrUTqYZ6s1srgoK1WFJtgryFrmAFzXrqqbB+4ojad7tSyD/qHVlFQfrryhhfm98Ng1rDY/KbjhbX2wifY3OWOtLLF89+fN1A6k58lU46rpz5suCbKqFJfMpq8601+mqx79+2tMeSlwmh8PW17Ztvbm3vfLHn4i8cJzhTpEafz2w+qe3FeIu6JOs80fDzoP0D3ZeJU1HYG8/HLnxtcJaco/UZlHMb7mFtLa9lp+oBJ2QVj+yN5GyO/YJGNzzzIDy186PW/Eo+JnVu40Ly/2TMkbIrTmU3dQyJP/o4cukp1VeXDLTl9U1iV9xTLPNsuhrrrYGkEaCxD4RS51IygIGSZe54daOjIsYCnqw5ChjBMoam2RlTX6ID4T9SIpKlKixFXqRppdSo5HMswE9F9Bb9cKWAjHcYGBteLJsjrX8hkEiMB5eFaU3RZbjnd99fxw7ueUUYaCKp6JIyvgTEbApUGMp6VbpxabLdeofaGFkSSvRYRLhZoOQnzfbEn/qKodw/lThTWQb+dmDoptACeJaq/B3cpEC2fdIP4dd1+voHRSmC3QibEMAlkl8idICg7ptmZ5FGxCX8Agd36t5vOR05Bco+9/mePy3VLnP5m98wZkaP1HLdnmL7saKde6xw5yjIHL7tbT2jpQImfwyS3VbA5wTqBrnJQRoJGuSZPI4tib2J7IHsVtmXL+nOXv47pivK9bGu+p4B6P+Pqd1dHGpFHcLjzSEM+eI1Zs/PVR7KJ7atVEXKczvGUHkVu1ftq7OULcv4OgOuQDVeFC/pjcoRvLI1Mrq2G4bWkMLcFj1/Fb65i3BHMbaauX/DcNMsTycdwJj9qyYvyoo+bA40vF6o/j8ibFrzWzSgJEm8pZhZEHw8hh0Qf7114UyHKrfzdpoGdApkbuCzq3UN/kx8493bf1AmhBggcZ3r6MOfdsYL9pu0cTCLAVxNtBE5rxVc8vjtI4PlmSUXs7q2r89VSaF6Eci8xe0EaDF+S5ixZdR5Z8S6CdxFs01tFo2yS7fO7ArFztsxpK5vk+AK+v1nZjKWTFRsfuK7OBPiHpkR2UMPrW2Y+0tel17wDVhLTwX8HZkzsYMmp2VPJTX/NctbPkXic3oQlauNdiiqtM9VPG7YoYWQmGk2mI2rdjwczHQb5IbGR0+g1EYhoSlH9rurqqdrEMxycz0xqqiEXzX5aWd1Irqg4AWzmhRTIxqryTvTHDh76eBh4uvT/n2/PPfzBC6XrWrmBAn4dlF7NN9L3Z7z2t36XSGPfKkv+lEzTDf5ysj4gzXldTl0XsXJIEPO42HBK3bgkkZYzAnSbgjhvKxtBQa4aTCOsOClj6bUTEnfV307KKycEfX7PbWLWzijOfLV5BDePv6lSePwGo9evqJJ7fEaD15dWmr2ydvo/oCAbjI6t3bsHOrQlS5108mlPtKldjxcdL3/1/5ank3TUH2Ou3kxQ9pHurq2kjjvsqT3CD6cFewUfTU3fZnc2t2e8nb241Z+FF/ehNc7aIx6RB3lE6+xDry/L6/7LHz+IxF9SJMQn+yfGx+sndo5rCgJTuyd3BwoE+ZLZe9p7M5Jy0qWyJC2ZNtSYjBtPX1DG2DtL2QXFh97vBLM7XG7Pp/pJyuTz+FV84ax60YrFJWkUNpS5r5CVLh82ZO7PwlBUCJiaWrD2OeAdjXJHievxk9zJwjk4+722ZRL/AL+ajBuKS3DeJOjQjS4w63RBGLA/kvITS5iaKu0A4da7bn85xol+9obd7nFaublP2ndi31zvciJl171tX1TgpuqfEn7Xl69rC+7Rz7xxpueFtac84D64vxDO9I4PxjOK/5I7tK6zbP7diRB7dpCtUg+xObOhJwxhkJjfcOJ3UMs9GOweebSrJv/xbr1aLN+84Y3RxZNbwYs1A73r7F1rE2PfvIPHf8idz8371ZoAIfd8MajfdqaCm4uQdxLJYQmrOdbPtXEH62X2VNYhKq8WzyFJiCSBgIONZ5WgQdsGN1mGcdSIph0H4VEg1dUPQZUkJpdewwDPFC5U41VuIlseYGA7uAJmbICpMYzxubtMWBfuaCB4nJBdbc3V6K+d0M/c6d+80M7j24ZRLS1CCG08Ot88jJHLT3aOdQhbhvypqvrjjLLSzJ+qq34qGesnMXVxlESSQJ10Eotp9sVikLDM82LQWxwI9m9I99vq7Xdbv897ryPdFkc3tkn3YstZ9yurXwfTqyp/fzgLTimhbfhFQlDYsbSWMBUfFQqYPQN8jX6Qz5iyo1vRi22+Y7jg1uz8yJw0D1kt4SDrGsiQOVjpn6Erc5BVUi6qDk6DUMqrS7K2Uga+Orvy1Q4iZtlVDmG/WP5M/ifJbMkP8ZWve5LdybJNT8SDW7ZYb+U/w1HrAsJ+LoPp6X8YaHo4I64ZRMhuuc9tCfdqLQcZ0T8AGESjXjcxDpqr0wlWg13i2H+m68fiPbolUbc61OuyEhzWz4zXpdzrf0cdc504X1461TLIyvSFreNPV531KUudr7agfo5NqaK6fwUfeiVqVoJUTX4HvbWr9dVmNiSSRowH09j4AaIaDTB9duoXtdj52IXYxdilWGOkqR+d5n9sktoA8nvk9ZDfq/o2InwYbAdGAM3gndo4XQ/cklcG7nXn/fu1xu3yK02UUvsSEmrUOLUj90c9atrnbVJi4JaMD9yr+LiVWqOzBnqPlwdu4Thw75BvQ+srx3doKxOTtNPnpWk0O35NDTiIBulT3NGvTFGJLiypOk60vSXXAoatWF9phO6VfmccMeeHtxcAIZzZcTQxuDNe238LWr7hwZa9fcZw6GMzyOYXW4l+YEtSs/OKuGbEnphfSN7P/o4Wt2zaGnxjNKhG/GDShcnLr2Z4Vzy0cBg0nDfFoQXXtgJQzhgGtFkMFBrDq0LdhH1MqEMhEhZWnk/j4F9LFH2A+m7WiHeHW+YyP/FSGKz3tjCOrYV49ZSp7VX+BobB64A5xv6SRi66aE5xt4sYRUkC8Gu/q3FT6vdfCnrUxVFGJhJKOxJX5Q2vMyvxMUjTd/NTUi3X40Yfbr13qeFE3Lp3xs2NL5YaxO2Ae+9twsGWIPn9BJwV9FhbTZvWeIDJQnEORrOlHXfybGkLKJUlbTg+IfHFBDStfLqGHQKlQlAqS1pjwgKG6W3lfnsz92ji7mK4oCypSyINSP54pb3SuhqLgfBB2LRTAHULTzWDorKkC+MXgEJz8V+BxSDMXGK/cotBprn7FkgTPnfJ+By1eLqUuQiAv7n3e+KKGtlW+9OLAdSgnmlksKC5HrQXJC5V1hN3Zn4cSBQDkmZksJ31jn1PrHu7TxnQZHPj8Tk1aVIy33gFnQUWu67Ni4cTWnX3idQxGIkeSihLW7/YAL+Uj1n769iTIQM1m/gUFoqXZgsjDVtsObDba+5cFEF7Kb47VEYgzqo1R1zSyN0agEOnkr8z+oxCzG4zZ98MGE1DTc/0ze2Df+Ha73fWCV3ssO82nyyUpe0DdkgQqG6L/avFIXzSY0CWGBdjkG8fk5kEgIulmcAHTLfFVSzv/GH92OqZYySrG4Pp8g5F8OiXKK1L6kXLVNQddcV8QHtOPynE6Gfo+lf/j715RZ5ej3f1H6xodaV5UvFbE5fsCaB4jLSHngotu0ttv8SxlJeWOx1f9T+ikfUT/SK3Na2jwfrgWd2/TJcSffLuITdxP2PDvfNprWNuCYCOhlcN0PlGovLYU/lTkRXdwsMukgDaFrMTegyGp2n86RTZvtSTD3urfwFxwkxFXxpF59ETKjntY+cQH2V6Ik2XrpzTwq8MbWWGgW1D7myGC3qMknQKFHwBrX526jpN4wPiY7OjNdyMOjAB3tgHvTY0x0tY6vGvLQgH+rM17PMuYxmg6/v/lWJhB8ZHjO5GHd2P67cVAvzHfVA8N6M5TIB0Odnb5Mbru9ZwSImXALzM4FS9/a7cMUfJUUMY6rycemRGjHP9V/afHPkgYrPZVtHYfnOZvRknWcEE6RuIz8axr+lQ+jfNjZK21JYJgmfQvzgo6pw+QmIs/L2vElUBjItmquAhTX9MKbBtvNAlc6r48dNW3yngDuh/MGJu0b62eCrGI3XVl7dSM6Rym3IxPNO6ieMrM04/h+TH6Q83S5Yj1ukN1sQWBlqQD73m8akMrOWEs6cJ9CeHdzd4GWkPItkHXcyjf/sjrQboB1Oao8vx/WdflrWc2Cv6bbcWq09rdWuxDLcgZC7DnzKwliN+b8Bajgw3V3jNUBlYy2vzvQFCOHuuO9bkZaQ9+hv6oMTyvr11DHoytIP6z+7LKvPNElqRsulnZGqDfT159Oo4OhutC935i343R1m4/AL/eYKxwx6ac1bBUi69lN56T9Ji5XvcTFXoaZ+8hdYZNpPE6gzP/XEKhKb6XbR72nZlFiKeMJLvZweMbx1L2ud+HkPx07MX0wsIqI/x0Lv19OXkKT+bCl0s2mTD5KKnRSnb5YjKFCu2nKhOsbnYR6LV/z9b0gP4R3sPidFppSe7Jpsr93iGiHncz0hUXDvJLaIFizmXbeuZHeqJTOIDUIBR/3jY49O5FbwGTDOS7yX1CqQkTUG3FvgTU4pr6UM2xKlIIJ15VsvK7NmjjvK6WBufn8vjJCANBnYYCjXt3imjGFLE2F0JeWwJxl1PX56VvccOtniFOe0LtiSkQrbEfNsPlzqPKi4ikC2gdDaP+xBeW9/bDrsUCT4m7wL02H3GlCXAu2yJRfH6StZIhwSNUmks9Qq2JO3MpVGYhfwlau6IpYDJeBCe0OqcNc/evlVmQBhosks/kkEpBREOQs1aihgwfnbsfuZ5rj7JgwGvYWuLIcXfU+5GcVkE0D9BFOPu8WqS2BIMx0b1AZ5B2/tLLRsjRNrGwWsln0ImQAI54qq11G8HVj5o+hKZHWg26XqrVhsIYLjr4oFw4Go9ai3X9RyzoAeckv37m0PHEbdvlEJfJcwUih4qq5uBK7davcqNdPgswu6eiGwExEhHZAnwEabONUQpmXI4SJM0P3zUkQKZ0dCHSA3i0lLPCEWRb3DtA0gBepRaSvrklSr8f/BBf9dd/f5NdwzG9D864lIYuQncszLGJYmAEccUMQX9BeHC5RnbRMKu7W6LX13lVlYKcRarvW6pQByTb12qhTCMT27XTSEsgbb+nr4ZlEckxH6aZRso9KOvtBE2W++cZKmhxyAJS0VYNkGTESHnPQ9zlE/sNo/WelJZjGrCHnKbrERMJGYpKvjmxmUBxSLV84zY2EAU0exoxC5ivI4jIcXdrFMFV/bSgaUQfm1DJtU+CrEChaggaLBJjrRVN5JmE2EN/ar0CoHbrOlsGgkRVC+tI19UOVcXXn3BXQsEGJmyHeyu3VDjOPYeosAPow2gAuwg9f6+nFvJdkxO+1po1ewiex7WblaXY0HgKIIxBHsvFuLJZkNIDeQILVyQozrUTB6j605XZUHZJZcbOWrWKIfkMqMwfA1UBlkuYpsObnAqjm0SA8PwCpOSGjq1YJkM5jB1z5whD2Cc6O/TInDq/tM+MkZAIiZIMsIYnZqSADhTH//x8mHme3JpNIjb8WRSXJ0YodXWg9WZ0Tm3D14GSliw842+P/JTSnEAICx2DvxM7LcDWwlKgea7G6ikPq9Uw6/Ypos7j0SsMj0SUKoSgXa63BJ46wq+/QLcWKvLIRFcijlA4m9e9vl7Ov6+VDJPIngFkgU1XIrhOzmhQ2etTZ4lxByS5ftkcbDe9TMHkvWmPWmFIURdNMkt+SHhvCHiNy3UPOOx0ZtybGYWC0+Z8eLfTIjte4URVsXIGFIjKhdJZYSAKlDpfh9nrhFrdc1k6HHCRmpdSLcMD1nNVADIrMl3RW9QEQ80BUzbx2J3dovZe6OXmkzlFK4xGg9QqN2h0YEEGnWgQkPlnsop3KRpNhxSLePTsyhjJh2ROwiVcBBxuw1961yvhywOHooEtFnK9ukVu48bvHODAVevAYQhfJYGUWvFABryO13Jc/lrGtLQzMxsjTkqCYAxPh46iPsmXF6uCj0TjIqiWIpkpODuF/zKsO5htMZBQwpxkhBhbHkCf6aXWaAXhzGGRmtln+eyKeuOmlqqX9QOjNiiRwVPZ7l8INRqDSJlFZLjf6t7IuHqG6Ae3XUzGRfn44vH+jXINfBYC09qNqsPUlrKQ9i+UsvLj2KSjMdMqJLGZCB5IpNOmG+sbRDMojxDQsN/W8yfsxKFhSwePRHFL2dpUPIrIhFiNkyS7dtfMctOX63C2+l5obGD6JmfuCmnKnOWVfx/WyzB35N23trzzMqVaxpHp7PztEf/CZh7ixdLdC8pey0AndAcdLsNc3jW0htR3i/bXbPvfOXbHsM/wKQ12dfgGlWYL8OyQXD8t3l8xcZ0kI2iotqRVl5/p0KAwEFSamEuPBYB9y1M9Ioc0kYY2iwAy82+OTpg8JYTijfzKzQ91dQq5XUkSrhFIfY+pY6cO2czhjEc+qtzJZNu8QFhTwSsLzaE4HowQ/wuNktTbivFsEUZVOx/drPYvVDJhQhD1+PFPabLt19tJd7Tn9oy4GHzyWsPNxga4dyBA91yL6Qum+5IcVZNxx1zrsutxT7sihmK3MCfWe2KNwlb3NRxh7nbN3AOse7TNgBnBkE4NTdyc/VoOe9B55Qeg7LOR5DntjgejVqkQ/kwXG2poV4iN9CUMQwCJBVkrTs8ankyYQnAyX0VQjcvF7yfmLDPq0qM+djSrBDa4AKLhWsjaYX8TtIohggb+vqb6p2S5yb4AWkAQDzyIdc5pfqdXD5Nm9puKjg0s4smxT6DXcjEtl/WCP74HKcs0SbcToW3NDiNrDrPtdfNICOT+qiBKfAsthSJ6AazZLvpjTQDoXEOBiH8uGZ8u569Nmq3Wkp7lN5mRscu7a0ei7cKWZwxVY0HgUUK2Alowy2zMXUtabowme41A0ho0E98v93p5mtACic8RGqAi7nO2REXNq0NteWNTW8J82JIzxJNlREIS8uxmj30vCFxCWWpYR67RD2jIsB7tHtWaVJaM4/hbaAMvsFf0AbgAGdfghfWhmCbNvTS7WpDF6Adhmq+3tCG9mTyDJUuZGMQRUeON8JBd1sNrFXcLtIiZIeqFwmQy+3+VHdZcyIQK8C2dtsr1Gpng0gkxsv1kWW3pC/ixsiPxpTgOFK7P0cripwGMWRn2/Ijx/hp/JUvVKtTeYjK/S5sGsT7boPRWUnF1QI7aPRJF3H+xKe1Ehb1/JWwlTZO/rvCjgbg0l8qlLW5r5hixZe5eC0u8/2MNzIn2dfkFVGUpvoD4trsfMETBY2K7iIqA8F6XSZxxrHD/OFi9HAGuC+h6+EC4JMd3QjsFaeR3utuM70xuIbc6Ufygh/i+NJX/l34ISdOg1Ej2+PIs4TLykBw/Ai7xB32z0Ply8qX1V/074J6bL9mYjeekWD9SCanH+JMOhYUF/L1WJVIyvyt2k0K+3cxwDq/ugkL7OTyVKCzmkqHePAS8HNBqhnc+aDPOV14n4w5voshO+cVOMlwMeFF2u2u4X0jPf7qdyQHl/g6ScD/9d23rLsJd9bQD93Y4YNC+fXKffq1c3F036GwgeGks1L2jqGKFaZHCzL95T+L5Mka3U2w8/uKi+ZfpqCbLH5es6YsQu//C8TQMK8g3vA49E1WYn1JJvgwocS14bL7k29BIfbIedlrm7CEJC8w5lc05D2XpyJ1GoOG12WPhB6ocydFqyfmgkV3ahEAW3U66bMuxAOeLNLHb9utgd/hwIvbnHTuctZJiOsur8+6KteYKmubrvVLw4aeWS463FFs1cGEPbvj8gZKw84J7x70CFzxpexmtHx44b/HtkxepLR8y+JD/7De6vWEflbd3Zi7D7+wVG01wUJI2reGtyMbm2LDlDAYgbugKJkgn1wX7EnnW3mpfqx9jOW1vIpd+VRQVVlWhTgc+2OW/asZBVQDDP7CbfatM/lb2Q4CzMUalIkU+g3qCJ+B5aO3bccGrHhX0+GmK/H1+JuB44N9xJ3BH4cGaLeHvhg+jz42YhOHrIdYz2VsYbwevZ94NzbA+os/sApVprHPCaoFJwTdq1F1DD+Fs5xzbw2i3cu9KHYjzlTKEh8Tf1xnN3YjT+Ut4K3nZUoOS05L2tYv4Tfmi6krMr7aKNHXC3s3oeVFWRdl/Uqk2NzO3qAicF6a85CqJbcn90bV/7fObfO6dm4bEb/Z9uP23ry/qd3ckRV+qf59pyF2bpekNdtf3h2XO+SVhT/unt9TVtYVXSVRVqPqmTt+KTkp6d47n4zioWJVsbO4o3i0+J+gNEgKugdeB54p0ZU8LN1WOlr6pzKozFuOKteX95RfL3/KFqQcUguxQYaQ2A85A3kX8icoB/X9wUJj0GPQy9D70D9XWCuCFUsVL1T8tbJcebKqCP7PNEtVd9V77bAnZtnFV8RyscccjJ+oXZ8OenYhabMQDLnhtz5DM+LGZU1ERcc2USImtY/fwVG5+PJHjAEPMcbQYSfCGDAkEm2t1cvHo0yzfrudkJKWdcKEjJq94pb69OtNlilfiSaiomObKBGTWnd+i7v37Ew68/zr3sSo0WM3seSYyVOxJgKxuPjxR0srnYygwUqIERbJUqKhtVxuHz/VOu1wWLUWg6acMSWtZCOkmDhn7rxRxZFIBtMbU/xJZz5Y+NR6avbo2btv1XU20sH21dJgM10oUbGN8VizZs9TP5bWgGsh1QM7IAABAgBciWFKOWCk8u0EaBEpEZYCDhtACCI9XFt2FNWeJB+Co7tPNxlPHae6lT9WB0++Wq4PWwCg10u/D/n9zVp2e8rQ3HE/kJGpEtsMcJ3fiS7Hq3MDY6Mk4YebQFrSq2sZpvNpR1m3nz8Lw0BuXZRjE+8Oftp/F/7nKfFAmfpn0b9wS3zZAEwSomIh+gLC4CuYG3wIrh3qho9T0VzeHeKULu23f8ZtZzMyf/4gUu9RwpELHXLy5AkqbCzrTR+nnc4ro/ugcZH2HBmcZeSJn+HK9XivXq3ROUQ+VNmoFVbCSSiv2WIhN2r0qURRPWYH/lenJw63R46tR2JobFdsq638QrN5xlT9/VqgB6f3rsyX2LiwI9+p6+UOQ3EzCJPSzLFwOL/E7EVZUKHiAywYyBTylZyJZlqDjpyeGVKjxOzYvzHRPZ5QSFGuOcxeWWd1i8hrqktJdPL5l5j0et3K7ojB2ett8lRpc2SiumoZcNwvUtrEaB165jkwJEUTI9a4FQSxarGRKJkr1PyUSac7aVF4712xoRzZ0myebCUelHGFMBGhjYRCpcVqPSOCylFxwCXs8hxUWZpoohXQFI8WtTZF/2kaJzSbFOZluEd65j815XSVtiBesFQ9W/oqostqakAu3zIpcJAqPmAF4ZAPaJFFvB+IU36j0uLxd+v0YY5B8ntbtSVQSft1TicdqbTfsoAF0aOtIxqHiOA3uhKnqmbxg2y3o9VsJBSU540jq3MFNOj2kZ/l5dWcE+8wzO1sQoStGx/6fIk1Xu+YvPXXyCM+jH33VGZLkGcASGBUZzAg8O6iV6g4aCz4DX5XrL5qJXUNeCM1axX13erEz3fsZrDgnBXREg1rNO7tRapNZeOs2B0v9tAfplHODAE03l+vEUInlbTBR5KnXZKM91iML8PpPhZhh22MWDzOmSGExnQ8n8t3KTCkjUWnjcShowsYxpiyw5gJe0do33NYLJmxf1M56r2CoazxVPpFgVQmWklnUzlTqatxwSSXzlkP3eVpkaZ8QmZzOP7OQHolbhbQl9UPMkgyOfi2dxJWMe+FFa1d92kg6WkUJajs+LsvM+hqpawKQTAoZLKpaMJ5atTtiixrcz12FQNXCoLe/WJZD7g3GkmUTAENehHWu6HEAV0Hw+TYzePyB6dwHTf9rNcLXs6svP+MafVUehRQ8EVeOYAdXJi4bO5tb1WvOTixMKeuA9dS+q396szoWfnhomON6fQ1ZOFaCniyBDeq8RPrSk7o1gS93Ec16gLXEHK8AVybvvuGweh1niIuM5NkHYx/VYxubg5LiomdsFsa+4ueUvMmcYqUKmN+XiUWdFCn8qReS4RI8Nj/lRF7v7PAjRqZsZwzsoTrprWHiZGhQqPij0y+TqCRfB+dAFikvHR40MmxziEmijuugrHtJbfzFJUlJUAAgc1E6VTh5YOxV+DBH+Zv3NeAQR/J94PdT6L91lvVC0zm7lsHGxUotrU2epmlzYsMLD08EQM+a4zPLLt65gjByOeFUiydzBUYwz4QhAAwjhBJrb+8PwrdcyyN6KQPXtWCzHo0LV2vIoF9+4XkctaRHeV8DDBI8D+S2hSo11ewtNcuXL/WJxOn43KdjQM5SijQ/9z7vMFqdybWDpGDjeGBCYPIDdNGBL5qBnShN2yUxdjTxxUJRObpY9D3zkpZwGsvdzivn+Nd7O+/OmwBgPjIbYr3hwvFgjFfgxAKf1sdQZc3+aCeaXkMFHYV5BwjVQPXNaPn9j4+TlkU0vpMCuzGLj/9qqTyUvV5YUExH8URGnT4HP5JrQomHHWQyd6m2s7B6MmqWVqub5/loq/GZGbEmNsUoKVN47QMSbksY5Jjpm4stkBQ86YMYrbjs0a4zOWB0fe8rI1RkSW4KxYJydJYIZBp7zqLlckS3Yqxyht7qEJmTiU7DS94wZAkhF9bspURNJkG3Mb5SsAqJ6suODCE3mnpCdtUa+yAOd1n9LhMhZqnGzxcaram5FfuFPUq6AEKtVUhSzTX3D9i1ar7qU52MxiSMI5k9fIuNTOiF4OB90F0f0n5cj2yWtM8NqvRSNW4Jp30eSg7AjTdvE2ylvmnW8PSWmd2tcU4PChN2wkjmHJh+T2h+LSyRtfzGYMuuezIkldsyR0dHZ/nTBWbKnZQU4rgg+PQrEUgV7MqCsk1ZCx2WStvz2JY0YRHLPQFJLw8Y/y/0OBSdlkYdGgiW1b5lekQtq5Dr6/U0kQb9CQMOk1qu4yJZDhnyhOEl1S30yZ9rjF4b0NuZxeCqgwBX8h/VOYHabH2rSWgVl9XWdHMIN1oAEJtzyNyRFk6lahg+Yqu6HROOo1IYqfk0WAyOepOnzG/50S2XreKO9rbPyFqimWsU4FBQ6Z71hnHyQId6+S8ehciJ2wi8bWVGjQ1m3YhEGMhYEga23Ju8GPpeS0fvjJsqZCQ53l3vVCua6+P5ofCqiIiWP6URZ3OzHqPRROOzJnSwSFIUD5GxKg5pg48WXXV5PKbfYAe2KuH28bGkZhXvxeLXZLl6fse2noRXomCIYkH9xbfQJJ4CH5mJFZivSx2Ul15XH1FrxnLxCKxZFGglB61mXVJue5I7NKQ2r5Ejgq3wQV35qAH4uAZZm3dei1L0oDVOl8A6qSje17BhDOXgNCik6+8edRc7apTpeJA0sMTVdmtoiCSub4amfPFfnvF4HbOMdCIisY/jytNECDRc2VcfMyRzxCQK7pKSzTKijkNr8fTvsWDxaHAuh09xNspArgc585kGWvFgfjNRL2OOFrIpk9DbHahOhR5SEsndqZWp/V0HjlucY+no+EEhiVDKBDD2dKRXZYTarDPXCRJBtLH64qe7Ehccw8iMDt9cqZPaxdkCM51rKDZ5HqNQdAs0RdyJw7tCNCzRt/US6XCiWOZZzsdCmIkgw1ii2EFdpJpi9mN5pCFhauu4NBZfCyEkJN1mVZixJqBeYAhaaLM3oS4avMJE6uK69sEAwtCWdcCM8Ik11/WbQzLG/X6eCueJYaLjZHqNh2WpR9slm3Y5jvBF94Jfvo0LIe5RBYtWlttou+8+cerPDCcY+eGijVqEn/EL8v8qOm5N3auO0xivz/wH9ouzplCT9cJYLPuv9pNa0nnr4qkGlGWOnPobIrKd9ZzM46mztaxWTVRuWFYCwNAD/R7NWYHJ6qDfldg5UR9DUgsOBV8Xrto5PzLYzajSpOSLBNWQMhWZIkFTlRDz2bD9bKt9jceCwo+Fum/LVO7OuvJLrjh2LhRKezqlnA0sIedjrrZGFjg9wpK1EHGW+w645ltlhObY6jqEexs0HYrGJIYAxYnP5+BrGaNpeCcjBudX+HoMXdpg4fT4KZVRd+5q9ZzaORC8qKW86wIvcnMkNZkLC7AZZWVqVFkemGbgpm9bQKb1ihVNOEtcedis8UADXl5u1hxERiLQBOJQGmRSi7GdkdnwReOZiN2OC/vnd66YJ1V4IBnBGRG3xrxbFR6lQW88FlSBFaoHEkmlBTS1N372hzLaljseTP9p89Zog0W5A1aaVuMCuSg0uJPNx8bbiAL4VQqGxdaCApkLZ2y3+9o5JZRJd+4E0NNECCdkxDrpiOJ/fDr53XCoH+Rr1qpbhHNfR/9jTqeKwtkMqu7cQ6JekiaCz7T5VhS6WQA7MCaw18NULME5RAcYlwVXND1Hk8DFLjcxF0DzYRgh6oToIYa7rdwkCBV4aeqJZgydmebLeCSfM5/6+a/vqlrfFm0C3eaRr7hb7qQjQCC5LcfvPdgfnnPq2X0PiRY24w2ksYQtrOibP5bdZPRHGCAyPGfz7fwDuIoXnCPZEKt/P2LhOPSG5oPhp2l6MRv2Nuf2jj/Bu9BLnm9ZIPXjlO9/mcfGPw8/D8w1RsM3qz9X0iuYiu2EIkjMplf5kOpRMo8zeKSoae7UIR6ReSqhzqTSHDBWipuMu47tXGmVwfnWTxWX8ikAgjXq0VXeFXi5EIQI1asgMiSFvMr8DvXLegjm6Vhcs3+dvRfqhtkMhW6jmy9WYmu9vsepAUbG+pVQhltZoPmg6RN6ziNuRA1+C0wj8V22VixI+rjQd96R0LJGc16+P4IhWW6p/m93lJN2+NqWnLZCBhQgnfw7lJWdTVvuNQn1hq0KsW/O6nmz+U6pUan0+U0COs1CV4OzjNMcpaydF/IqaTHNyyXommxTCIa8tx3OpJczCrrE4MKdDodkzGzISlERBcnaQyU/JE5CbQSvgKzSUsVCiVQKqssEu3k46jHOY4YZvpOQYukC0Q+6acANkIHHVDpNGDZ7zFE7smIegCJsvnT67ToZHZtAoNiKGLJKJMi4sXzkuTQgZYxmoKjs5VZAhy91pRiOpHYr3llygwmduKRUDCSzOkpQIW8hCC6SFp0c84XPW+ZQOKfKqksZ6RcUHehGCMZ93N2MLaXjEtSNfQ7MocnkmmM4hvEMeyxCKKItLE4mIJZeUnCDk5VFolO9nF7MltCzBrhILGB+D2E1wfTclVw5zqZjpjba/pLZllZljxRqwtuRvAbGTHEmeH7+UpOsnSnCAlDxld0nnZ7HArnNDZ44X8cwY0XYjkiuVz4if53c2/vzTLYSwh3EH7EHt5XeN0OKnKgKNcZfvhGo8lvxl4IP49AGykncs1eohPfUXMyOWIXdkUy05OeFeA0L8nqMfd/NDLd/c7RMQ8E0dPnaz98PbLQCcEvahwJIAsphELMa6CdSBbaz0V1K7rcRQ/hiMimWWK4YeUKAu+aoi9wUMqzXEmpZbPvC3G1IyWuBjlbqF2XfNdXU5ODSginGm5HuhbB0xDTVavRXVlfWi5E5CKAJcm94VnLJbhvztBNq3BFw3HctaI6XrSBSYZ6ZjbtgTXXmxyqhEsXrMLqepHod2B/UmsItBAh2tTNhX2D6o9EIWdyaYe5yxY4pnnN2nM9MAn7qpHCSVxhrpKvk+2ElYj9PF/c4EI0CjDBQ95XDFQT64z9aJGNi9/Mu3gcpjlC8qItkM/+7XBiSxxr3xoihpmW30KmLMAhMR03BbM9mFz3flpucgjvF0ky8GKH6Jym6YNCak10UIviLjrQXaWZTJk7RZZFDUxkkOuuVLeFmmJea1n7JgQUFKIKBd9M6o50t8p1/wZwXBtPvFM08y9yVWFU+/h0vU6sW//Nf+d6CC4GyKbHvEA7GB8CQxSiDQpCMOHSi6buJ9qAT1b7rk6Twhd1iHeiTIigKEWnNbLmonuVVKggavPyV0hCmbyubSs5SdpzbMOK28f+QGYGychnW+musLGo/Q/dMpOD5tfr8vZHfiBK7jI5jl6/8wc2sU11gTGkVNbKfdtQKJHNUzHRnNb6mz/arIeZE/w1K40C06We0bu5o2MTh8VzvHq6WGM4FeYjb7VmzKycVtW01Aq+mWUczlvBq/Qs6FT2SGBf+lsu5aTdbXWZLBbNhSac31duL918fFwcTWwMx5HbqcX0FzOmgYFnIYBIzGFyNdHej0lmr14ASN5nYrHA+V7RkS1o67UuU/AWzQL6l8y9yvEUdrr9C8sm4uFH+qH0y6d4H9a6xtFfD0D73hVToEClyKnAZy6gXzN39ep3Y8DjT8fHiCMdcAtMjzI+pXaxKxj8d6VrvVvrMgFTQEhiQjtu86mit7RAwQ/fsAvrnN8SGK9Epnr/aNhbo4k1TlIz8DKormfSRlI3yQT0ejBY3PDte4iiBxWhrKOCzX3f/rES+9ElH/xmCvBJFaZ+yhOnAgnoPsWpOrP7mCeQjkJvjXy6TgTqcMGzBBqr9JtL70Vd/G571lbQdSiOvHZaK3v6G6iwqEpc1zbS9W4ABBHeZHB0RLUXx7/+5dp+3btLtDKbpz3vmAd0UZCoT2TZN4sIwckLqARG3Zp/cPuHvrcusd+9Rq6LZmAs0zrVrwg6OQGe8ZsE8A7sCyVame7fFj6BEQ1k3yMpdy9HFvr17pS+kN0M/fOaikvrbSKK7s20hNIFUWlRUhQSRSykwyvvslAq4HX41Z4meS+9LEKhmhB4hjN7P6pnZ16hv+9+PEoHZYQV7YKOIYMvRAOXWN3vXbCpOVt0wv6WgyUqoShgMzERZesIHYnm/2gxj1y3uarbIrFNJBe8umTqARrJ+bqBkDDDcUkvTVTjnJVNtxwDfMHYq2iM7mob9EVW/6iVX8kAZJGNiA9O65e03Unz8kSUv8Fr3im7YngS3CCyiD9XztnY5Ko2XMpllllPND6q8WMt4YTPNZo3LFTLKahmtbAiNw+iJPcsc7DsWIOdFol8y9wfJBx1z6oTnBxKDzz3+vDXw5LKSdUAkQ3RgYPqJoXAH7ZwkZiTmaK6v2kNhLarSnJQCTxDlA/cUxkY2s/Y9Z2pWi0NQScBe/msWNAgohosdB6awTtX1bXBNhqQit98U6v8wIQTmDQAjST8LMbWshML0BHyaNp6bCkIKsta31F/4GsL4fJHqt/ortjBv8myIIgNRbhq4VRper2PWt610anVUppChzXbXlnbwWBlSEKgdlQR+sj08nnURx9N7bLd/Ufod/sK8KeykOqyeYGZGz5EmdigAi/K5xXotwpuWriQjdQDbX/2+iRwgaOpkLIsQexiqfS9jfwC8/ZXGxGadeMijvG1aE8xEWaWHOZsCxxrLaSu7QWmiIf6SqZGp+LiQT0k4axMKGLKlqUu40jRumKy8TgqVL2uYiRMNCKUTP/tC0MUknDOXnHiRGxZpzSRK8zDMoOJaGWxYDk0151Z2EED8jCaU9qpI+PKnRwPyyBmYhoWa1pr1Irktgh0DH39AnhRrAxvZBMwHEd5I8MmVsbTvNqHl7TG8a6rluVP5jJGUGIxxJkdSeOZTMcycxvXqUGPgox57498+xuCW7CcnDX33/3zTSQoFqSQyvEpfw4OMTQfNNj18qmGFd2USABGJInO9DmDW7gYJ2bYeUqevdxrS6tcuQVJR8Tm2K+rjTCHs2QwgN76lL6CpzijvkC/sjnoxfV4n9yBqGTGjrj5L66cCgQNHhEd3EU47a6qEar2r9AJkFCHkkBLvKMT2JKw09ETXaCAjiVE8EO+kxYkcirht2aPguALoDKtMvbQe5ssV+gFgIyEAySrOJJ62mC3ex51vDJ94t9bw3m9PEORk7tPUGSTBoPbnzuY/gOU1ngeBb6H/EfCtGiOyP+XtDmVt/zYoy1a8EOlauaMd364qSv7uc6/tRpfccwMniEv0xKTJMv4aZoh3smu/NGHkxSk3P3vPFB/yfzHqHFw7rtTjkLsFnOr252a+tXHhWjtyAITK1kmYzVlZZDlpyR3Bb0Db0UU4PyELfa+/Dv1RAfxoB5W3o/p/8Q9TXyN33Ar/lk1VhB1OvaeTb8gdx7YPvfuDR3AFADYyezi8d317DNTh/6JFtU2cMzOqf7osPmVBw7eDNSwSUD9uxIu7+u65/ubAL1TwXOS2X+/u+mfJFr71wjiXKKlrtjl4AOvAlxwzgL/NVmpdfDxY+vfiIMJZP+5tqBIqF34ij1GzLBbjIA7Ce0JtPMd1oOstu61/uPVX2ER0WGrC2poAcGoWQPkSqI6HjhEOaKt7PUsDTkxcRNUH0cG5VOAvbjCt/pmBAFt9/2rVqjWqU+Znl1Ak6EV1+leTH3txSaTv/I/Va/b2qB5Y+8xZrW360AmEkkEjPKapB5k4FNikTOx1EiBC4aJkUbCI/TqeFlttUoY6ivb5a09JOCwqpV00Ytj9VrE8FGRy4RCkYj9eBZNTUviWPtG7S1vKMPrqaXRKKjr/yhs6u5mtzaYQdVYRTPZV1SKOgnzWyxXGstGQm4bOaLZNOgjjvqcOapWHMvStM4R403qa6870oPDJaIS8rZ8Ei13y8UlD6DOOnB5MupJXNEjEDDRaNt2n9gZ0vl3paemTSV/OJ7OS1JJEBRjsJiOBf2+tyAQQiRZcs+GW8rMqYNMtGMA6KXiYCizcoYMeU5QXUbFQW+TEz2ihgsCQmPdWgeCjGBkbqrup3LO0WuGXn5zjebRzVancplYqrpQzJsmN6dimWwqqrQ2x7g0xGWXtXV02Ek80g+8ogacVIAzSeC46BYM503o/s/wQpVJp60Cm7q+CX1MtkfikZ8fpD/tIIyFD6uwfj2Rd/pQqbzv6jRCqT3iFwuZWHEMqj9z4X8gopf6FLZAHVwBnfBao2O26iwpJ9EJI2ihbF1kQpHsMA/aaGFRGkbxMN696DQqsQF0spHUW7GXKchRWBKjimRlPZIZ+7i6kOlcL421bwkY30jCwSze6tVqQjzOjDKmOxANesTEClA/k1l+WcM9uefKddmZX+PhR2Kb7889+A/JocQRkpjIJbXmOX0nEy1aTf4X87IxC5i6PWkYibhyHAvP2Sh471cJAmaosHhO2OeydckNpbTcrAyvOp3bKg0W+v1ZbSsjp6XtiFBp6TtWt7xMpVggGFtZ8PvDYZ8/OhXz+2OZb6KkIzIzpMOgUvW5x/ONas3gBaZPgiydoHjR49SPPILu8rvJ2RJKvVJe4xSUHN7p4YhDv8w7p1CE7dhYofRWsjxRcDdYIerITG3gcvCHR37FlBB5obFeFFuVzfcs4ojS/XsksQLuUuCYoJqWObFYtdJ0uUel+kcjGBmyKPIQTtoRwpeNdTvMZ5nK7FsSbMAxCEi8vJFSU9W6x4w/B4fH2HWu8pZO5D5NU8SuiHtlghLQIUmcfqeCikrXZNV0VQIvLw1byqB1pkgFdnqILa33rpJwfzVSeYskSwaALxIbH1mCozAcD0aWwia1eiE8hIAnqEBNZJSJEL/mzgWhIugg6npIGneDWSXlruxSwtFysVOq1bJY78WB7vJUn9bOK6wfwxq+JR4c/SCFX+DKXNXhWSUZ1dxWHQ58z/KQp6MPlq/kJCUairxcdfq2nlCLVhX+jmCOzKPK5qiuEBZm0NCMWQfwNUXpeDcL4RA8eMWjuTGHr0JAUHKzL/soqUM3szhf3lYvKDn3JVhOCaeKgr6SXAmFlgPpglAgcfTbxLKLa6gG7ZpwR5c4IJi1wukHQCXJUmU7hXA4Eh7fabnxWhrc44KEUqIkq66W6e772syCVYqmyazsU/EYJfTh+LIHTFBy7E/mlaAMm7GisEWM3rzBiRKzXB7VXmx9M/zlJTadmIIrdXSzYeer0ztKY3zACWhvMxSNJOf6tLlCBG8Ck3pHPXOyRRUKCzjK1sW2X+2I9aPq8UVb6rl5v5Ljk2xjAUCv8T5Mx2JA4nZykgQVPAqeVArHN6fR2ePEtZ5TlKCMWs5jcr1KpiGrdZhhI+zo+fW6HgjY7dhr0CvqmgB4pkWA/9pMQcWuATvJCF2S7bdhsAZlfb9SUhfNlQrRSCqGkgWeZ5gNiYVx1s9DUJ8BORVo4mzXiOo0ONk7D4ehEPAj8qukucog031SLp56i1752Xpd7oNmqoAuh1z58pQCie8+ha1e/TB9AvJRiIO+Vuyj8K014Gb6HAgjIJKLwNsPfX0Y9Zs9d1MFVS0B55ySeTvwBJyGU+V6UVGp+H9nbtV4IaFUDkeSfViBDnXBC7757dsKXbSGsE8ReEa6gSpce05iRSzWtpEFJiR85fQMbRRx3iKY+28OWxY4RYlkRnDEU7NF/Dy02uV08GDyqMla32P086vaw0GvzaAW0JoKu15h5PZoYo2zLb+QT0b8Pg4TZfLHUMFg7cn8eI7t6ALoAj+EY4Y2jABEijtjl8Om/0tuaF2GYdwpjBNdgVeHFxsYHOAyyllVXE/XjfhGjVFtUJJseyvy0eUOu1krE3FZLJyc2VX7+hKXWaHdFMEEnUo1dsfe2MWu3ia2+dxM7pVntQ5LYA3IolzLeHGCimN16fcnt+SB2EKdSrwauJO+2EmKK7Tj/Fpll0kRCFlTQjPMXMWPfRwQ/ENT/ozwPBBLKyxpkuLEUd1Xe6HEBqWdRdoclslBRvcvkyEz19eVymxUUgfY8w2jsjkIfIUhDuEsb+I5BK0+E8pgQLXKeO0UNZ6D+MYh8tKck2V7bDhdWVmjc+vtlAcjiUxBrfR7mhl7y2giPOe+XYGKkkk7tJi4x9hK01AyXTxt5Y5Bv4X+WEsZBo+eshnDd4/pHtwFjzJfsogmiWQinulp0SoUWhkd/ZAz4n+TckwZJW3Bxg4KkF6bpNb4lFFTgVe0gJMqjnPDkOEivZA+hLMGkyKECXEi3JlMs4nAn+7mQbUhokAVdif2hAJ4hBf8u0tEoDESlljRGkVSWsRW4lW+3BqeTUsbQoFAMOCaTAdmrLwqL4ZdE8Zot9+sMG7oq6iaDMvKou9aN0tGQmHfAm2laYuTnQ7/Jx0gtATSZa721ordNjmdZcsWjVLHZi/wkxyGJhiGIGzjP4todm9Ic+xYe+r19g2eyTq+8LkYY9NoBud18UcapYQQ85pfTsyFzeWLtD+TmcH0HE2CGTAcxfhnUrqjsbbk4MJa3swZ4Oll0qL2E3EKNamTKTP9fxYqAZ9ZLJcCYYTaEDBvKmKh5qxqE2laV+AxF0i2DFGciTOJoje9jnSrCcZTiqMyS8TD4XcGYixLy+ea4duoxHYy4H7Q/ClaMAihf6nDvS4Mp3qA10QDRiVTaSum4rEAZ2NS3qiqZiu6sgitK2Y7m0IyOFGsJEzwJb6yMmc3SifP2T8pKuo1xyeCPjcRb5RWe8Ox2FyFf1vZ3tEn1+SGNzoTIQEPSmTkvRa88Xfw8crbE2qYIBIi66k4nMQKvFRLmRTPq46dcqi8IlYTgZL9RjFCaDJmAlaJ0HessXhXozYKLEY6zN8J7lU9/1PRlZlLwBTH8QOw5fGAAXJJVBTwKpiJvdyvXK15HjF0qh60pT6stcTzn6aphK/QiWRSYshfR/x+oP9G9Kgd6PTzF7pbDazWDZijvKkoOZRRodVEwyfEB70hQU1RtICH/Tema4yH1LYeYJyKcyeYLjcYRkFBbRGcgW+CQikwba8+d+6n5xvT6TQ7PIFmkGQc9hUFNRURaYWnQYsEpXSMRgn6HqCAwSF/eIlldKUHxF04IT60OOfuYXj7z3tzN2DgKKhwUBOh/Ef+OoFMWEFOYMo81gO8CHIHc6KMMJD79OQj6r6dnVl9x9Dpo/omxWfkje/MvzhsFQRwSNhBOHokSz9CioOVhCNOyPp/cfd95vsJ9Ndb10jKdM++1za+Ev7fs+fBfWRpJNWPyDvQxqocbLnvQfYzoSW0pc98eGnbhZXPDR2nunylvV3gNTnUExgkLCUwMrBNOq+8Rw6UJiPu7Dr16+euAePXyQWJ+g6mo4J2RdB5AeSp9EmKVkw/VQm96g3okVvVz+mfnlAFLPKTQn+2irZg0vqhVp2b1Z2Jg9yEeDPlDOO/TOkmA6m5lJUq4qr6fCWaDDl88ThkBHKHDzkQT+CTGJ1iyMTTg1sXWLkjVRgKhP89sTaIPV/i8nczWO0AV/uzjmKRKDv24Laf/Humb9zH6gfAHkqwii2rAGG2kz6vafT6GDqWnKILM6sE/YnLz/WvOd+NNc6CTnLeHDcJdJyaLex0eAazkwKJ8yzTF3fYeguPUGoJmzY1Hys7w8NNz7pTuSduXhThheWJDUfikT+Olv5O7d250hPgIznvRkACBA5bmEWcN7eLvEcqv2oiCblsdsQqUCLWjNqgDmOqc3Jp4Np96XoaXSBgdWJ56TsWcjBpTi3ieGtLcUrA/IHc9z5xZ0fZlXdbmJwHnWCOk3REFsPhZ+FgEQMii+oDngLWmcg2hXeirsWUgjuA1WqGVfJVE8l0Js1hZlg4mPJPQlt7cHPYk3JKHic0g1alk+AjuJHsIUr+ePx4M8dmcHTbP9wjh3NWQtUSdSCrE2v0CjShD4ta4w3+Xeta/pA/EnJkPOpkmGoJGZd4sVDq1kOlQRGgTOreB3XTo4eezA2IBRZCkPBALOoUtryYneTIEju6+65mUrHhzGwip1maFokcJEi6wGWRsMNr7KgVNodCLWVqXIMj1REk4hK8cZrr1j1ePRYrVIeKQR0bwVNLznxvnVK3/aC1P3Br4MdLVgGmaejkpQ4QjACAe8GqKyAH+chPxrp7DofCRMcGMpCvsJl5o16v+eRLDeiOcQo6lzm7/b1w5UrtuJn+b6PpZZLHKC2bAq/6RZfZpZKD6veG1sIu55uk/GbhnRHAKDlmooMORIedoHzENCLLN03wKPyy+S27jI8lhaIdCykoYYnRrHF13YwhRzf30oH9+E0hNZZkAWIoxxQdYCZxwnDQDYherHswA5cJ4pEzg+a5SbeXHXnHOpvP5nLyNE+GnKM/OmGoaeyKB9op8iqo0Q05uPIZjVIGS3C0mcDQluXObL24dBS3xtU9a0CVcLXjoAp1qMe/IKvuIS+NUFmmUiXaKxa/5ue2xBdRAGPUKRiTZN6GDTc9N0eBlckgLRjggsURJUo+4HDc/UzXuXjP2jga24o19KyheBd6qEBqTOxW80owN/CKhh9QknLX48J1yecCd05s76NgSqYWfrpmaE3BkL4G1L1tHTIbPf8vaOHCQeSgWYEdMkkOfzZQFliGyqYTccVEOksxrFAmQSXJrjhIJXn+uz+Ziu19FFwnL8TkEpcChSLQ+Ox3aD3Mv4OMN9sIU2phzY7uz1GEPPJZ+9QFJ1iS18fdPv/4KKojtefCUeaWfz+wA68R/4+hTzs5xOM//OIaIgjG/5e7SaHIPPZWAlSgvx8OyawB2Skp85Z11YKbHiB9S6Q9szxkeXZluDp2zQXc9QeU42HjlzX/VlJ2JBU6JpzedwU9OdgN4mmA5/GJW931W221OYwi3Y7CCill0MxYQ2H4vaFNzLHUq1oEysZOLvvD0cokWTbctyZGtJHJGRtkCoYPv56iajEWGUGoZWe2aJS3ZxbzCLFYSJ0ni6bgU9/YfFFQLOAwLvfxmKS0ZxJKR5Ia7jO3UlDF2tx8KhrPCg3g0I+n37017sHAkb3IEpvIwrRsO9IqvlDas+Q0ohzelOuaGtYDKmcDM5cEYn+/i4lMmRHcoxfbQZfPR4QaIYbihcLqUPL22vT2mEJQj/cG4+nsdGH62PvCnHQgEyUYLShtlTS09wlE1uUQjYBCoYQcA9VGMusLsAHzW1cUxtINE6c8j6N4a4AlOdt8IY8M9zENhcEJuihIephzeIgpXZ1RL41vU+o1ouVOGpVMYeCTsZh5idUGHOO5XolC0SJi0zfL3SpMW0jq4WBPhA6U4m9YQF4hYQ5KtIaapve7Yo0TIgkRY7U2JS5CuNPiENH2nqRqew+SrzEGalF1ds5PuLEyU9BJS+xsAByT7dFAfHHWwALK3PvCIgmau4/FksxYyhYpIEc1pZNDztCRRKF0pSO6dGum0b0aWVzGtubNzSD0MYqXge0PHn7BUObpMCF4UbNdzLV0jVzHma/xhDpnhJxXoxrqtHyj9qM1nY5c3VLZ/ZonGi57GTGurSvzPjDchuaDC9G9ubArXNPyNYzf/kWZDoSw9M8QnIQgFSB84YlthOBxc5ZymOVukiEYZQ039Tw/SAA02U4T+5rNzHx3MrUgXAwhUATN/xcr86KNIDpxCluUg6xHqTBwN3x2YFUpNtbwpEQq+eiCcBhad79KMK31hb4ybng5zslJERCMe4/qD9UUvC7azlOZdtTwY3bqYnmcko66P24YqoqiafYyNYAIlg2KiIHtTYcIkyiy1XqrcKSe/PZVwvV+pZ/Mtfp+o9WP2gVnqVhAC4FZh8NTgsa/IADiJNyGdNJ27M3tIIEIjuUD7C9lV3vXevcjnYMdb24ZAwTOsdcg9cEmHQzBDbgiUjVH6K5tK02FUpJr6tbZoTW6iLOD5YmlffY0m73niaXIn5JCQxP85YVy1sJr9AuiPRTIHV5C7HwqA3J+o8a/EYPJpi6lq6ZQOTxgzAVBUlSlsfsPZbkhF8I1PBAM1zUVqRqwGxz7yalnwQ+OmYK9UzHaJwdcZKZCZirmKUVRUUA7z3Y/FTQj4H4rTvM8jZNPMs6Lvu9m00QQphDenULKp5s99/7CYnE+b0bGyUKDh3hyNAE6FBC5/GIr24a+9uSzaMgvALuHrlgzvBasUGE5TSR0GlNH0+nYPGiWyGLQbQpY5V1tb7GoTiCbaJJybkyFw946TVu7DrBrgID/lQFMxCUT/vjMFJJDBgGHeJo0qryYdvTbPGEzRFnTJJHnxWUfCfH5AMbRRlaFy3t+VG3o9WPDWM1377TnhgTXmLmZ9W7U8iB4tcEGoUGN1Qjg7mK286I/U5EWjqYu+IpVCDB9iSZQiSRy/4J+Vaem80e38qbIJBfhwV/7OFeB2C2OJqt3ptfwjEHFLmZxaB2oDvmjVT+OKCuhImLe+0FIghWpYcyhMDNWEnA5TTMyeAQw+7whCPk7RBins1PDIE+E6zM90mUt+nJQqsagKC5R6DmGHdSXcrmCIXcFu8XdWn8O8g0JaCIE3xO8NaQBcsdFbWXDspkul3FMKdbGZ8qe44Xpq27S++9eDHpB6lbc7lEHTtlkF6HbkjubPayn1KSPhdB5Ssb1EbQcphU7IrEkHUspJPgKQScMEJJiviGmtfkEJ1opRqAIWj0jYMRInzbKMIRMTAllxp/iFgOMLal5s9JBNoPw4jhllnqQWzdB+1ovndZZ/EoCYEvCIB06FNrRFU8LejP8+BKk2y3avQI+a/Ds/qVjKLaZ74zEUtTfyfnQoZmHEnLyfDJwpzwmZ697TERDS9rvYWIMB+r6clOt/DhvUiGdLbeXK0MGrWmS25ZIuHASNG6eK8gAkKOCHWLOhAGjmRWtgbLCRC34hbCBYqxGp0WQCDF98o26Tvfib4HngCmGYRo3N9sfUON/FM5TBBYlkRPI0xMTQ/uH35oOw8ZGAMxj9S3VDVQga0MGsbMD0+ASCp8ra1PvIg59b5JlMJCo4LC/MekF+QhCUdxIIL5MSmCcgtcvV7qVKG8Rbb5YQU8Fu9EueffRWJUSQdjkpah53PvjCKUp4EEqsxWEIIolhiBujoYUJ0FAy+oA5yNlu+E5qtukl0E/HpV3H0jMatlt1qkxeYszCYQkTMNa1hq5KsUi1u20/N1YA+7Fx86ZoP2ObIiiw8VgGOuZt2d6xzhUGscf8d3d/tNGMyfWTxZPvwJq0nPmcWZfl4JaClRVAMIEKPc6tqRRSFTrVkbMuLDE1IWsFfrI0n2Hq1DezyHQgnLIRASCYd6MMzCiTgMT6zVwXSM2cg9I/DgFSDYZMNvPp0GnJg5DeRwe/x7twwTeNn3wBfDfNDxPAPfJgZkRHYRnluoiKZilgOnI8TStg23HjI8dOIdIujxwfi6Xh2ftKWNz2tZsqfLQxUlKs8k6pMebWlBrfG6FsobTqEl1agW0eYtvbu3Wteqa2Ql0Sg+futlvhR1KSziETNQo4+LefVZ0Zp3SmsfoKM67d3MvC9iLUuxHCWpQmlOLawg0CuwvU9xCUtKJGEWCXnLoR8NBi8l1ofVmlfdb7icDBxX8+dZDGA14MYJrqcFFVng1E19xAfQEkWQRfpHn0HAvMwFaSlqZlwIBH0A6e94BEiNkxs/Ujv/84+4/cIun++ztMcKSEPV9+HQD+viuHf3pnSiLb6QgKAdu1Dy/+8ISLPetdq5ulFsDZiL2+c2wnpymY7CPm3DDlUMb+RfJPr23kqDdD9Q1id4nR2dj/9q9gp0vO0Te8BF+2A9+wcfvyR7PoX1zDQmn4uxV+eZra5F5feNyHaBYKOLxII4z6pV5XN5piGygMzvthV82MT+uJGbq60ksVWJKI1EP7Wux4ajDP4S7HXp79Nsz48Qr0VioaIkK3pIjvtnUvUO4Mr0pjqQiQy/Eih5aSWBENnCscsYK6zjlnqDwmoFOtQtRRJGQ9f5fu/el1ctlUsxp1s+Nr0Z71QSjqP4nYJHKkkE4PQYWfpXdxy1VAe2wmBqsfPjlZe+gO1LLzIhipHCCM38eC1RgneZJgPN7roGcbAeTZyR7K4eiwNfVhU7SuBh/DtpKS8vksSCPOUz9qYEhs+4MRtMSX2g55PO4p9hVXNxZRS+nI/6UzGAKQQ7zT+jgHdAlHXWpRrWLXJf0dEd7AEVJ3Rt0WrBFG1JKN9bIE1d7iqjKFDociqYqhU4hIW7DqGfF1U9MOY0UXBnuEQG1uAC7XAsPQvte74SzqMYeWVZvAarQLxVb9DQmuNlQp1JqQSqlMQWt0GM6PEiKFdYThpT+bHAiqhxzJNurSo4dcsVcOmtwI9q/FOmd4V7kGmpjUnNioJ5ryFTO87KBoeGTjME+PO9X5UpR1FH42fZ2CU/iQXUl7oU7lppPPtcxo31FtGSi5PpJD4lqqdYkMJ9jQ5myYiEV9nEWWnSG4tioUFVfjPORGzG3KsGsQWfXuY7xQhsgpAKXLrLAC6D4l/dPvttUb+3ELhp5g65PqmyDDbJqp6yaSQIhpwDZk6OMRTe97I+vnfhnMx4aPHU8zIHBPdd5U4rGaDFKoVG8a6LaSC/sVK1EYbzJjZnCQkfYmif8fcsjVCAb5ec7zSKSOMdz+7SQkVWaqtamEih8y+awjBBPlkctSllMTda+ZB7aHOXLG/wqNgHMBb58SlPQewm7XDSUmNBQ8G/JiuiHDyuMLlB+JsfZnP7qCoFWw2JFHyQtGNX5sSwE0+oy9bsaqtfNnnQPW+Dm1UXnYRm8+959jddVPMbTP9WcO+BsnLNaJRyRlusn24ZMWQsbyVAIKYIsGZ0Up1NLoiYyjoCP/SW3gZb5gM45F4c+1WtdLRjGW6koZrmK/fujXa9cZAsKVr4d41cbvQJGMedScMo6u8BMGQxXk92q/37O8iX75x+2yaFUASHKzUlMIuCtcTCJ2UAwSZ3mG8L43k4DGi18pHWT8p4fimWNLEMH0l3wMUH9d9CilvmKIdg+f2jKHPQQ2t5cDlm06wTHeAkoWa/yzGxgQhi+SbguX5C6nuRGkVXbhAKAYU7cg7FRCUbH/l71bTQq3HRv79SmNrz9oSFknt0c9PvrBHHzEBcA9W9kynwkfXNIW5Q5MLLh0bEI0yrVFgbbJ9foRbd72SX9pFVN6s56fuWQvF0O48SQeD8yakvdaxYP1vNYpgHOiJU4S4+hOrG69Jv6dRGY+KqNsCtbYnKyjRyGZNREeWuxg7oydlsz4BkfYJOIXC45UIASAaGDOYZLd0e2+/v3q/blPY95A1GcKwk8L+ubJBzwzKk6P6ExwiDL7pnQLz+Y3jIpGyl3ATcpx3BPVX3sjNOMDe8ttr4ROhiz/QG/N1QenHDWzMaFfX6/z/trxwaS1+EX7+AgWGRjabANuikHcE+1bOKht2N4rOCDSnXlGqDqg3bs+JIBgRGwtg+tU4ar+7vlnmjlnXzkfJ8qG/o8i3lhYECKyXILWe2OovI495B5cPCw8TDj1xewWwkaKHlK1hUrTGc+wt4FvzILhp+ovr8DoX40DBUh7+6d6ZfB8schmQ7Auhw8ySPSEzqMEfQJh5V2K7efygBIFGCRTK8art7OTPbK5wXIQFtav+DnKafJejNAjSNFfWrb6LVxTKPT4O0HlHEiCwtNh6fY45WA9VS2ttpTMGmVGjqmVJ2QpG7gBlbVLtdqiNSRvFSzUeyU6C0N0UQdS1EkznqRFY7AsmI14YW1PLa69Nv/TlWl7Bq3EQXa5hBTHeTw5gpycttiw8cZCuqv9zfVXGmPCsagGrDF/oEoP6bPxN6lFacSgArlVoffYU1B10fP+mMENzE3XK8Fq7zLa24jrYmyVFKBHC1T0pjFW1gUk7JaslhpVExprMVXpBOQBjWl9ZJqtp6ay1FteLNTia4IkoE0he/4CCIw+/w2VUnYXpzwyO3uluxGK2wxx3JSxWjbNCGn/9WE9SqBZdn+7Gcl6+yGg+hxAnwI5VilL2dabQ/WBIKW4HJTJ8auCgSOfzOxITR87lRR548jjhmvORuans5VOixNgxgqUH9bei9j1SoPo2YpN1dIkBXQstbWcw7dXZUGclORGFqtOzPFMLp2iLwE6lCXcDICD1/iQh/lvHHTf4dD0lmJunUbgx6aMgFXmlWjVy2tGWMikSgMRyNP5n+Mer04p45YlymWlgQJgDzT41g0LCjKLsJiixMTaUo9alWqYFR5YV4LRltnj7pPV3d26fWezjbFydp6yai0SOo6O+CIZp3JaDhIU9Q5Ou19bTwQDIZTDJBbG8s7iqapmAqmK1x7POScKqSy0ZW4AXvl5P3FQlI3dI+o6rnclBnmFBKMioMmwLXR1VWjoVTeDjgFN/WRSMpI5w8coQcOfIrpeeyuswZnJk/BgyO/DtknJR/TTrc6MEUEX3zVPupn+LIvJwyuugFhhnlNsC1UwaOYFQkkws6e+0v9GluKMkLA7WYwWVOJ8/bi75VHRuewompBM3k5HO+GhSI9H9K6KrdZqQixpW/IYhm5Ocz5vCih77OJIs6syN12xKbAuxiyKUn9WbiYOkin2aQV6cHzbOfgZc/0i8cWC5CAcyl+YziwMsVyy/prSqHAX9H9VL3Ya2UHwYgUjoE1UdLu2L56k/nsdm09PINePJzqteao7Lbac76u8XUoPkIkEWCuJ6iEdfvpKEAdBUlBIiRW3JgcFBgHRRy4hpurLuFtDFhCQfcqiuedRJ23fMpUyJB9e7GcdRzbK7vkoI5yQkMobG4lN7qlvdw5cI25dsYkos+Ddc9+QW/TMJzE43HmlEsXlRYf0BOcXo1SH/zVbpacM7PeTixIrgTNyYssCom6VpO0xYdH+/1rKZ/nFLZoHAsU99DlXn5Q2y8MPJyJUjsAOcrYmIJM0g66PY4dvK6EttP2dqwo5eOpZzbNldZdrbcGezpa8ncHuYGGVYe3Ch0nd4poINf4453sguRFFp3OXtR6L3AMR0tzOQ6gKlgapSv2Vgv1P6vahJhnWCmfNxqP95VH1Oc7BGVDQ8r6uuJSpwRuE/di/hn6p7FiTU569jzFhqbRa+zKQAjzoJviybripR8L2itxj8+R2qj9EZj1f3JCIZsQxqE1IEPJXvWLLC1ZE7qkaUCK40oYxTcmJ8MxRbnnNmLW048NvMHsh5NgSLLek2k3nyAmkT91UakJF+Re8Ac2vHh6RPeAUSBKw0Qzjc8Lf2J71eyxuyl8COib6Ws3O2oogJKU3Bm5GxpCwDcwt1mNXKb0dgp8eIAbq5423U73GOXk6u039YSDgmscU6D53ZM08+3mL3fU69osyBYEzrlcohjB7YquyDhQa+VNm9/rRPFsyTLv2eo5CPUb9JqDyu1RPuBujn5trwymIwJthVhARLwyazfMdC+ZTAhkBtXmUAfAy42tUJOW2ZRAJv+jEdWCAGm+MeTzpQT7zxsd1vSjjKe+/ceuDZtSF8wla/e1oW2TtTq8LWfTmxFnxpKBSxYidN9sCj+tTZiwRdetcbdVBJ+QgxkJLunwf0TUheFYtpendDjYEv5s6buuadhRdRoTvguzfK0Kgz/RTp5pAx0m93tz45LhtVIr20mdjyKN9pzUYJcL9YKBI4aoLqk5fCr0YDDtu+nvY2agZaJ2SMgmt20JmGWsgzE8pUcla/fVrt9KBXJVyV959wP6rkQiHN5WtxO89rp4Hg3I/bM1deXr34s4XvLcrngP2wgcfV3L4iTMzWrPD6dN7z7pPXu6Lblw78wFY10uVsp71iTxLQ+ttgrCIOkK7NubmsBn/1Zw1wAdyNWsUbbCecdFGp1WCwZ3Pg40tmnjw3I5U52nPxllL0dnp6teWo9Cjz0Fk52GM3sccdh0GtYz1bWDRn7e6tlI8b2bTQ526Urw0mzBfEW2v24OAWVT2E9rgFmnUTKrXSMSi3LQ2KQ52/KpfKBYnTYd7mp2TqULGivTmtjAiWWiM0X99sMP7wbk6JsGf1oNpdwNiG247DQytD3rbUs6QRaSnm5FOOuZsGknn0No/z1/ncw/bn4c19Vzm9q1ttOxb7pPKQlqgr4wGNq9bNNOFmT3bho4mtHl9CwT/vHbj5nwTKmOw5BwmpJrGNtUuMzS/FaK5HnKwnCGWRWcNH/P+vhZwN8MgJHYjoW5cDK1c76RH3xdTFzVDTHB47A2WM6+3oSmJ7F5R9xozihlu4F+2IzNJjAuXUJFM2FFk01laiy7DB6N+quOR6eMpWb7oI7JZZdIYvAJsWkN9yET15REoxjXEGwhSwIhiQvGqinjTlU7GzDMinDFG51lEvBMS5q0qakhFS7kWXnSCJMv7gxDHaajSymoCcPZPEyQJAFtai4S+mFStEXTnf/BlL93llUg1vMOLh3DnYzj7kqR4vt8ueu+h/B9BdAPe3LId2gcWfCEBTNECXwx+Oxev/9TGghJ3OCYMT6Mbh1eYRCDDf33D7ibvRcXRzdZqkRoqVmoasD7+NUbvS0LcwyKuPiZQGTsMCck5EtBt5ETxH7CJFP1KCqDYKlRzStNjRoIDhaGLXWRYckyTUDL4PjLEskc9dmichg538gJoEk01GwJX+EjZowoKIomMglN0YZTz1NtKXd0pYrtVckxRZH5wEW5rNCrpKoSdbrkn45MuIPJdApBMeVUS6A5gndawPf2zfTOhMdiG8b25SljRu6LQ2aCB3PbRVrIOciCa2Kxg8yosL/DGjZdaDM4FaMhn5MoA+hILOEWnFJI8/gwuTBZTcrEkOYDQlKfJX8Ib4pTFexJGkGnLc3wtCl8VW6Tr6asEAQZPlJXLaMBAXVRZX1DXD3ss54BvmeuWnCwVcTEv4mYPqBZ17OfJHAlhqdUP5dE3XdQJOFxrSeW3hWEsXvULBUS5oyp55c8KfKKmWELDXFa6/LFd8xDoV7KQZvKObO6COiHjlsFOzBjRW6/J6e7m90hnRMbEroU4jK5YUw3aF0RCGJ5GLF81aUYCLrJYQ3q7W8kqkijOB5gp6nNaKgf4VxbEhMlJQkRTTl8n1ukUBIb0DG2lST3QULsSnIRaZRDIwIISQyHnBUp6KUvi3KyZBBX4AxCNsMpLizUW1Fst3zKIRg8UMiEwdcBKe5BRB47sKsiNdmrpjrkDNTOzJrdyEJyONZW8fllO5EkoglM35dyKEGVzDwG3ytvgF8Hyl/XlZdyOM7kxq402O6TWzmEcRhKPYvyMUHqWwjmmtsptrxJMFxFpNyZjsb5oETNsPlmHro5MppXEIpCrKCE3TdUDNCkpQk85nSNRiHJkbKZWT7e1ZTWW3JrsN+lLGJazeYcwrU8lbZuryKbWgRJsxiXJNMwmgkFvfJZxtBKxLbrfr+9suVujFFim1piOCtM2KExnmLkbCKRexlr4JDPHwiGFZqRdf2Y4fRtuYGhuNyJd0vhi60yqoG5tqwwHYZWFe+SuvHEYnGt2+IHw+in+gLhnva26ekxtJYrsAK19OYiRlV9U5UFqm7kJp+T+f7HAvcPceaihx4LLvr64tyHopBZTtpItwyA6AVEB8ix5/iabqJLS5yZ3iKXxcXN+rPFKwk4xPltE94/7xTnb2exh8dSr9td48jt336gdCDrHufZLMbaXpBimQUsh2zpu/Dq3xEmgO4+DHHeS8hlJsryMJigDLgQlL9tk9sghmkQ090AfTbpNUwKfvhYCiY11vxiYzWkNA7I6Be3VWiyhIfKdDxeHsRluXWgEAvvP4Z7yWw8RP6GH8m3z5068od60WeRN1KQHDjBRXk5CnkAZ+THsBuE4GPsoXyuTf7n3I7Bj+uFLuwtLw7yCF4rv0Zszhh9mLRmk97fexZq+qPFACX9sU3moZYvFfrsAfIVe5Q5qkviEzohbF7jVWjGYqcWGn99IaHXsBdMwv0Pnu3yEWvQWUhiVl+CmoF9NQiWh5fkh3iifA5X5QLedg4ZCHS8Ew1hSRbjsKzA/8nPz5019qH3DQ3thMIJCN+HGr4G+NrZ91Eetoeb53rXgWPbC/s1O2dOVL6hc2BFYjB+4xJooVrKfcWxPEx8m/+Y4hwirbnASjRAfBN9A+iZq6jq44PnoEZgYjU0Xzu5M/UdzBozcFR/d9oR0CYgnvwPGg0IF6d84JG3odcDPBESbt6PPgaUjkaDFw6dHL9HhFq1o8ZSP4AodODAJVu/eVtjzy9pBR8/BckBcVfKdE3+aOmL5py72eg/2Yu+HuSLxiE88H03FJ7br/FbHYQa2hjJEbx24yCsi6ldWtv6DLjHyFoGD0US+BFLtYPegeFIOPEhf4K+NmB93rgZSFrilFBSArirgvs6ysPbpIf57OxVTGGHT3NzR2skFcDq/O/x6vnPDH/w5TmyPXyha+pJU5dFRxxoPiv+NpKbtD6CLm1yj1yEvd3KbZAMiiODoPMXH/OQ65H/0Y3oBZzboBXepCHh+PDdB7+1kj4BzKsLhttLIcicIoDbu9y3QfWA4zh0kJ0QxAdm9kFrg6di+yX8CKcDCneE6Pyy2K/QdQE/ew7BA3MDU54f/wSYAekHQ/V0DZzz6gPPy6+nzgVLITj/HsraN6FFwG+moFxAE4FL59dQFVvoTIyCxkHQsYFXK9EgGHd3gZYezhlbP70XGXo5b0KxTyZHiJdaEP1OuwTt4TZrz1nbORoyEC9e17zSgvyWTiXe8+lYz0KbTXg0YDHbjl9wxyqAFMv69Spvb8wfc5O1nr+EMyMPvayMHaG1Ez76vgDJgOwt/d+RZg08p7iGzkB7YghYOopegd6PkgAvIeoeA8U2SD0KQ430DLxPtINpUD/o9yiDAWoHE8lJoHiYD3LAf83r3glRa9uVAx5DM6ATeQiTUYKnoAojS3289/dz1xwgp/cSHTvKPE30AYbQM61zIWqb6VqS1kYKoJ/k/BN1fo8MgZGfyuvQdKAxMO1EQEMHv5SC3L94PwSh8df0p1rdwCxSzBdbUoBrj9QDgpIEGOrJ/3kGbVuKV7ya4k0LzgQMu1JQ+58nIeTT98HEATfyEWA/HepLYVtAV2HA2wP0WdwKqVt+RpS2Pg+y7jvD3LBin9O3ZZ2T/5V/BGm8niiHX09ega74LyFmO0zq8COhwatEX8g8nd7QAI5n2H2iwbRHkxqNeO0wMNYPqrzKBO4EAcBL0HvVV3Z/emvTP5haK8Ey3vpnyxLspPvr2LoVbfOC0b7SJgAsmKv/igDjtkUEwNx/Rd5fPbdDrl5Ct9ZdkhO4PSv+PK7YWg6XfXLbkG2t19r+qRXt35bGYXm5LqvcYVw30m55gjJDUhzJirZ9NZDyubcJHEcikuCASmQiCBtiJOcPmTnNtAn5NpvyZiW73hYwh2xNx5E0hX+7g+2dbH2tAG91NTbZ2VfqlFkutpUcOm3Ngr3p1MGUTtrWN2+pte23JWvXhLa7bLu1gq5OMmtw7wS4tof47Z6oAlJU/ZjaR4tdo8nrYUTZwaXFWtN6FDRrCW1QUiNJKPe4t90WNpfC/LAnA+N648V89UxAflu1vO0T31YqkFSuVE/PZ7uA1VbIrV30JhzM6zizeofYrDFlhTx/1VBS6Ruke738ttCKdlJcX0G9Hj+DittncVVtycQRX2cV1etUNJ8/J+662Vl7y7T05mNh+Z3XmN3skmZX26mqDvAueYqjsJnhXXWJTXnVsv6p+RNGyNRofX2D9xwblTZHjH3Rds3f7YaCiccnuF2wu+3l03aKb4eVZEr1fNiKmW5hWUvN1Vb15ZQd9a5dQPHGBdN3BJ7lXY75IEIFoNcwgLq0oxyZZtuXSgutmXXKGZbnVpRP/VZu5Hpn5fdYxWWZ1ZRj6zG/eeh+9BRY3mb809aRtnzu03P0A2cPidft7RJCMRuOiEck3BCck2f5A8Vra1qXq63Xbn9WyzpqTuuCpset7hC1J+Dxak9k5M2Wf+BV5lNJgD9oLKfjo5xNe3RRwJ8hAPBga4InO5CQzH/GsqU0PmJZhxcXBXwYAgBAOnjvs8DHQqbGuRbsSH4okgsu7CX4GfsJngYA7CH4GP6BXwB4BfsMXk9v0IM+mB+YKxg99iz2DayDrvQGAi1K2PMYiaPpo/khqxfZIyEkpZHuuSgWn0szi1S0v2VCk032jME+l9qJAnuazSGdLuTJcjZ72ngb5hBkSV2iXcwkxiFsXJeO2YT5kJ5PmBHpTVonLH4N8x9ZEEC3WoFuMQaMgJVKgP1yzS1wCIBudkb5xmrPmM+UCAi3+MLwiiucbWEiaGcQjSxtoa+rfuFxzOYbAuBmOSBgJzEYFQYHZvwRoBLH0M7L4kWXsyPGbUkxQRABFjDDxAaRMRxgG2zGk66YeL1kSuwaM/pqmVOXtVloXGEWTXNTHkAxIWEbnAAsP0tXoBs/y+jtf8FReZhZtdHB0KkzxIzK0MPW9vzwjYydV2uxC7ptFOGl8IWu6OQq+yNi/yp0y6rcyndd9DInKnRD120edS30yG0xyWGRsmtLIbK35jzoVm9lpXy0rWpXytor8cd5f3BAGF6t9mdtvyw6+KfX/oiMDstFKOjkVFqUsq/ciKJiiKLo0LHbyrA6GBoCElIjgoooyLG0nk4FHG6os4iI5rkn9Awn4UqXpmiiS0gxl6Drugu26crswGK02It+7o1rrS9TRIxy/bquHKzStLJTa8XcCAsE68CRVX6cOeFht1OH10tDSlyraFtu2OhNVVJbvp6NjRC5jp79uv8E6an4NLTYotA1kdE5P9UxE0HRZr2V0Yn20YnwIEJoMD/YEgr0b/P3hHydAd4ua56OaOvgIHeXD2qtzXeV8p2lNEfl2ws0W05Y87MsuRPm1EOmtI8xE2HIZuiTp3Qxvjbga/yNpvacym9hnK+wSOSmHNRi4CCZMkCq4CTqLLHmRLqPUIYEogbEFyuNJ0pcoQCncmz+FIuGmDQEBpNPZ6HRwFHJDArhyNFTzUVfUUTCzJ80EepBeEy6axpCwDWIgG0oBTVgZqBRZNQhQ6hFcFFTTcY1WQ3EwUqzU27SUvB5u4PKdanT/rzZvuet3JYrV777ea01LMfePdW9p7jKoEuD6FPd5kafFs/4ifK0k9p37t/rYYLe+In5RmfTzGyLp3qbmsYzNRuoexRl6m11S5HdnU79Njc122SKE5imMzeT2duCY7kozwgflHvkbWH4MAYcwzNwC3ZbNOVtNI1mNBvQPUQZvU23CF5nfWsS/+LXfMqtZLv9fHDHDoHvcp7cFPVWAytIYbo5lIT4ufD+0ydY3+mq+DopXw0oQz4RxVumJozQk6fFdtj+xIubLaVnxfYFXBEhXttLF2tT+oliO+DAtyDhe+5IR0bxpSC0aOGaFgAA"}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/37263.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.681Z","timestamp":1785126646681,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/37263.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 883\r\nage: 78250\r\nlast-modified: Wed, 05 Nov 2025 15:32:22 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 06:46:43 GMT\r\ncache-control: public, max-age=86400\r\netag: \"a60b84a23311e94dc9543f6771260fa7\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: 2pqQV5LFXj9Qd4MQgrOxnarDs8t8VSjf13CykaebNVtMJuSHJIWpBg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":883,"size_decoded":1454,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"a60b84a23311e94dc9543f6771260fa7","sha1":"e03b7af49201253d5e48542bfb0798ba71081069","sha256":"5eca3513dd3837f14f06e5603655876ac742f3f3663a99d27f6c10e22fdb9945","sha512":"54ae626d5b2b00c62327adbf6b8dded0e541e922c355df193ea5ae6866b93b000aee91962ca0537b5646708c09e1b3af53342cbd6258bb4492d99065ec4a4f64","ssdeep":"","tlshash":"8d11e6e3ebd044a2327574c2b7293d22691388be6d9333ccb0449fb301b9328da8e480","first_seen":"2026-03-04T08:47:10.827995Z","last_seen":"2026-07-27T08:07:37.42851Z","times_seen":1121,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADOklEQVR4XtWbsW5TQRBFI5CoKSkJJTUlEuIHQHwAAr4AeioKWuiwqcKf5CtS09BbgCXKJWvpWevjmd2Z3X3P6ysdKRrvzNw7SkEUcnGxoP6GVbDAvrNUCFf3GayWOIvzhxXN94b7hhGNzg33n0w0tjT0s5ho5NTQ36zi8lGgz+76F1YPuXQ0okf67iIuquXunXsHX0+wxj4v9N8kDq8hDSsF1mqv3z09mmWFOarEoR5ywbS6VEvrXpjHpW1Yv+dAD1IALVipxs+sbMP3N8xlFodZ0UJINa0u1fiZFeYyiUOsSEZLNa0u1fiZFebLis0eLh89EI2WajVwdwnmVMVGC9HQzc/Pu69HPQJzimKThdSQ5wi9oJ8czHugP2H1lg05UgOpodwRaL4X9KbxO3z7wNx78XEOaXla044wJ/Sowdx78aEGF6fL09qoR2DunfhIIxdmepPW4hH47sWrJ0dzpV4vnJWD+c0HkBaWal5zKZwj8fHTy6O+Es3hGUyrcUYt3NsSfsJ1AOlbWQrMWk+4tyV8xHUALifSO87oRY/wka4H4BHYPyLN4aXP2Ds6zQeQPmf/yDQdQDsC+0em+QDSEdg/Ml0OwCOwf2S6HeDcgk80H4Cfs3d0mg9w7kfodoD0HftHpssBeAT2j0y3A5xb8AnTASIMq8G+0Wn+eUCCvaPS/afBJY7w7PnjbjtcB4gwZAn2t8L5rTvcB/i1+XJkoARn1MK5PXbsD+A5Apdb4RwrnKPBvhIH4T0HiHB5DZwZqfkOK83UYP7bA6yv+SgHl48CfSpcM/9OwsMsXN4b7x7602DuvfjQAk30xrqHvnIw94H42ALNtCDNK+2hnxzMeyTvr8gnaKoWbV6pbiFmY15RbLRCUzQrIb2ValKd+0swZ1ZstkJzuQC5ulSrCT3BfEVtwtfqv/igWSmAFqxUqznCpvYvTjjIA81KAbRguRr3WGAulzjMixRCq2l1zvTAPFXiUC/Tf5WJSMFyR+AsD8zRJA5vQQs7kR6sFvrvIi4ZFfruqs3AfzUSvdHvbOLyU0N/i+j2n5Y/aGRptmF9RV+Li6aWgj5OLhqcC+4dUjTdCuefnRioBPvn0n82a2XLrkAq2gAAAABJRU5ErkJggg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/gmaps.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.842Z","timestamp":1785126645842,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/gmaps.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 8716\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":30547,"size_decoded":8971,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (30508), with CRLF line terminators","md5":"bb0769f3ffae6ca09a891ea88a3cc635","sha1":"dad646718f65e6d5d836aeb519c397c665b2ed2f","sha256":"4ebfeecbbfd59602e0ad58a056c70706bbb0a1bf369b395da380a74f1b8db51a","sha512":"55f28123aeff0195b5b59e6920898bf9b1f945a905e623fdd554d13e9456aa9155fe20ca5264c2b3bc813a0cd047ac50013089454dfc268bdf5f099fc7c31b15","ssdeep":"384:gBkBp/eWk+yNjoyy9c+yXFywK6uhYmiZxQnacSdzcw07UHGe6qvGe/UebvTkAiB4:6kOWaQ9kUt8CabuUmN+4c+B8XuDqB","tlshash":"ded2b6977711242ad3e2d3ec642f12896239c04ee928c9ad7258c8f1adf9d4910e7fb4","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-27T08:36:14.119366Z","times_seen":388,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJHTWFwcyIsW10sYiksYS5HTWFwcz1iKCl9KHRoaXMsZnVuY3Rpb24oKXtpZigib2JqZWN0IiE9dHlwZW9mIHdpbmRvdy5nb29nbGV8fCF3aW5kb3cuZ29vZ2xlLm1hcHMpdGhyb3ciR29vZ2xlIE1hcHMgQVBJIGlzIHJlcXVpcmVkLiBQbGVhc2UgcmVnaXN0ZXIgdGhlIGZvbGxvd2luZyBKYXZhU2NyaXB0IGxpYnJhcnkgaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzL2FwaS9qcz9zZW5zb3I9dHJ1ZS4iO3ZhciBhPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYT09PWIpcmV0dXJuIGE7Zm9yKGMgaW4gYilhW2NdPWJbY107cmV0dXJuIGF9LGI9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSxlPVtdLGY9YS5sZW5ndGg7aWYoQXJyYXkucHJvdG90eXBlLm1hcCYmYS5tYXA9PT1BcnJheS5wcm90b3R5cGUubWFwKWU9QXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGEsZnVuY3Rpb24oYSl7dmFyIGM9ZC5zbGljZSgwKTtyZXR1cm4gYy5zcGxpY2UoMCwwLGEpLGIuYXBwbHkodGhpcyxjKX0pO2Vsc2UgZm9yKGM9MDtmPmM7YysrKWNhbGxiYWNrX3BhcmFtcz1kLGNhbGxiYWNrX3BhcmFtcy5zcGxpY2UoMCwwLGFbY10pLGUucHVzaChiLmFwcGx5KHRoaXMsY2FsbGJhY2tfcGFyYW1zKSk7cmV0dXJuIGV9LGM9ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXTtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKWM9Yy5jb25jYXQoYVtiXSk7cmV0dXJuIGN9LGQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzBdLGQ9YVsxXTtyZXR1cm4gYiYmKGM9YVsxXSxkPWFbMF0pLG5ldyBnb29nbGUubWFwcy5MYXRMbmcoYyxkKX0sZj1mdW5jdGlvbihhLGIpe3ZhciBjO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspYVtjXWluc3RhbmNlb2YgZ29vZ2xlLm1hcHMuTGF0TG5nfHwoYVtjXS5sZW5ndGg+MCYmIm9iamVjdCI9PXR5cGVvZiBhW2NdWzBdP2FbY109ZihhW2NdLGIpOmFbY109ZChhW2NdLGIpKTtyZXR1cm4gYX0sZz1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9YS5yZXBsYWNlKCIuIiwiIik7cmV0dXJuIGM9ImpRdWVyeSJpbiB0aGlzJiZiPyQoIi4iK2QsYilbMF06ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkKVswXX0saD1mdW5jdGlvbihhLGIpe3ZhciBjLGE9YS5yZXBsYWNlKCIjIiwiIik7cmV0dXJuIGM9ImpRdWVyeSJpbiB3aW5kb3cmJmI/JCgiIyIrYSxiKVswXTpkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKX0saT1mdW5jdGlvbihhKXt2YXIgYj0wLGM9MDtpZihhLm9mZnNldFBhcmVudClkbyBiKz1hLm9mZnNldExlZnQsYys9YS5vZmZzZXRUb3A7d2hpbGUoYT1hLm9mZnNldFBhcmVudCk7cmV0dXJuW2IsY119LGo9ZnVuY3Rpb24oYil7dmFyIGM9ZG9jdW1lbnQsZD1mdW5jdGlvbihiKXtpZighdGhpcylyZXR1cm4gbmV3IGQoYik7Yi56b29tPWIuem9vbXx8MTUsYi5tYXBUeXBlPWIubWFwVHlwZXx8InJvYWRtYXAiO3ZhciBlLGY9dGhpcyxqPVsiYm91bmRzX2NoYW5nZWQiLCJjZW50ZXJfY2hhbmdlZCIsImNsaWNrIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdzdGFydCIsImlkbGUiLCJtYXB0eXBlaWRfY2hhbmdlZCIsInByb2plY3Rpb25fY2hhbmdlZCIsInJlc2l6ZSIsInRpbGVzbG9hZGVkIiwiem9vbV9jaGFuZ2VkIl0saz1bIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIl0sbD1bImVsIiwibGF0IiwibG5nIiwibWFwVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwibWFya2VyQ2x1c3RlcmVyIiwiZW5hYmxlTmV3U3R5bGUiXSxtPWIuZWx8fGIuZGl2LG49Yi5tYXJrZXJDbHVzdGVyZXIsbz1nb29nbGUubWFwcy5NYXBUeXBlSWRbYi5tYXBUeXBlLnRvVXBwZXJDYXNlKCldLHA9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhiLmxhdCxiLmxuZykscT1iLnpvb21Db250cm9sfHwhMCxyPWIuem9vbUNvbnRyb2xPcHR8fHtzdHlsZToiREVGQVVMVCIscG9zaXRpb246IlRPUF9MRUZUIn0scz1yLnN0eWxlfHwiREVGQVVMVCIsdD1yLnBvc2l0aW9ufHwiVE9QX0xFRlQiLHU9Yi5wYW5Db250cm9sfHwhMCx2PWIubWFwVHlwZUNvbnRyb2x8fCEwLHc9Yi5zY2FsZUNvbnRyb2x8fCEwLHg9Yi5zdHJlZXRWaWV3Q29udHJvbHx8ITAseT15fHwhMCx6PXt9LEE9e3pvb206dGhpcy56b29tLGNlbnRlcjpwLG1hcFR5cGVJZDpvfSxCPXtwYW5Db250cm9sOnUsem9vbUNvbnRyb2w6cSx6b29tQ29udHJvbE9wdGlvbnM6e3N0eWxlOmdvb2dsZS5tYXBzLlpvb21Db250cm9sU3R5bGVbc10scG9zaXRpb246Z29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uW3RdfSxtYXBUeXBlQ29udHJvbDp2LHNjYWxlQ29udHJvbDp3LHN0cmVldFZpZXdDb250cm9sOngsb3ZlcnZpZXdNYXBDb250cm9sOnl9O2lmKCJzdHJpbmciPT10eXBlb2YgYi5lbHx8InN0cmluZyI9PXR5cGVvZiBiLmRpdj9tLmluZGV4T2YoIiMiKT4tMT90aGlzLmVsPWgobSxiLmNvbnRleHQpOnRoaXMuZWw9Zy5hcHBseSh0aGlzLFttLGIuY29udGV4dF0pOnRoaXMuZWw9bSwidW5kZWZpbmVkIj09dHlwZW9mIHRoaXMuZWx8fG51bGw9PT10aGlzLmVsKXRocm93Ik5vIGVsZW1lbnQgZGVmaW5lZC4iO2Zvcih3aW5kb3cuY29udGV4dF9tZW51PXdpbmRvdy5jb250ZXh0X21lbnV8fHt9LHdpbmRvdy5jb250ZXh0X21lbnVbZi5lbC5pZF09e30sdGhpcy5jb250cm9scz1bXSx0aGlzLm92ZXJsYXlzPVtdLHRoaXMubGF5ZXJzPVtdLHRoaXMuc2luZ2xlTGF5ZXJzPXt9LHRoaXMubWFya2Vycz1bXSx0aGlzLnBvbHlsaW5lcz1bXSx0aGlzLnJvdXRlcz1bXSx0aGlzLnBvbHlnb25zPVtdLHRoaXMuaW5mb1dpbmRvdz1udWxsLHRoaXMub3ZlcmxheV9lbD1udWxsLHRoaXMuem9vbT1iLnpvb20sdGhpcy5yZWdpc3RlcmVkX2V2ZW50cz17fSx0aGlzLmVsLnN0eWxlLndpZHRoPWIud2lkdGh8fHRoaXMuZWwuc2Nyb2xsV2lkdGh8fHRoaXMuZWwub2Zmc2V0V2lkdGgsdGhpcy5lbC5zdHlsZS5oZWlnaHQ9Yi5oZWlnaHR8fHRoaXMuZWwuc2Nyb2xsSGVpZ2h0fHx0aGlzLmVsLm9mZnNldEhlaWdodCxnb29nbGUubWFwcy52aXN1YWxSZWZyZXNoPWIuZW5hYmxlTmV3U3R5bGUsZT0wO2U8bC5sZW5ndGg7ZSsrKWRlbGV0ZSBiW2xbZV1dO2ZvcigxIT1iLmRpc2FibGVEZWZhdWx0VUkmJihBPWEoQSxCKSksej1hKEEsYiksZT0wO2U8ai5sZW5ndGg7ZSsrKWRlbGV0ZSB6W2pbZV1dO2ZvcihlPTA7ZTxrLmxlbmd0aDtlKyspZGVsZXRlIHpba1tlXV07dGhpcy5tYXA9bmV3IGdvb2dsZS5tYXBzLk1hcCh0aGlzLmVsLHopLG4mJih0aGlzLm1hcmtlckNsdXN0ZXJlcj1uLmFwcGx5KHRoaXMsW3RoaXMubWFwXSkpO3ZhciBDPWZ1bmN0aW9uKGEsYil7dmFyIGM9IiIsZD13aW5kb3cuY29udGV4dF9tZW51W2YuZWwuaWRdW2FdO2Zvcih2YXIgZSBpbiBkKWlmKGQuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBnPWRbZV07Yys9JzxsaT48YSBpZD0iJythKyJfIitlKyciIGhyZWY9IiMiPicrZy50aXRsZSsiPC9hPjwvbGk+In1pZihoKCJnbWFwc19jb250ZXh0X21lbnUiKSl7dmFyIGo9aCgiZ21hcHNfY29udGV4dF9tZW51Iik7ai5pbm5lckhUTUw9Yzt2YXIgZSxrPWouZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSxsPWsubGVuZ3RoO2ZvcihlPTA7bD5lO2UrKyl7dmFyIG09a1tlXSxuPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxkW3RoaXMuaWQucmVwbGFjZShhKyJfIiwiIildLmFjdGlvbi5hcHBseShmLFtiXSksZi5oaWRlQ29udGV4dE1lbnUoKX07Z29vZ2xlLm1hcHMuZXZlbnQuY2xlYXJMaXN0ZW5lcnMobSwiY2xpY2siKSxnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lck9uY2UobSwiY2xpY2siLG4sITEpfXZhciBvPWkuYXBwbHkodGhpcyxbZi5lbF0pLHA9b1swXStiLnBpeGVsLngtMTUscT1vWzFdK2IucGl4ZWwueS0xNTtqLnN0eWxlLmxlZnQ9cCsicHgiLGouc3R5bGUudG9wPXErInB4IixqLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn19O3RoaXMuYnVpbGRDb250ZXh0TWVudT1mdW5jdGlvbihhLGIpe2lmKCJtYXJrZXIiPT09YSl7Yi5waXhlbD17fTt2YXIgYz1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXc7Yy5zZXRNYXAoZi5tYXApLGMuZHJhdz1mdW5jdGlvbigpe3ZhciBkPWMuZ2V0UHJvamVjdGlvbigpLGU9Yi5tYXJrZXIuZ2V0UG9zaXRpb24oKTtiLnBpeGVsPWQuZnJvbUxhdExuZ1RvQ29udGFpbmVyUGl4ZWwoZSksQyhhLGIpfX1lbHNlIEMoYSxiKX0sdGhpcy5zZXRDb250ZXh0TWVudT1mdW5jdGlvbihhKXt3aW5kb3cuY29udGV4dF9tZW51W2YuZWwuaWRdW2EuY29udHJvbF09e307dmFyIGIsZD1jLmNyZWF0ZUVsZW1lbnQoInVsIik7Zm9yKGIgaW4gYS5vcHRpb25zKWlmKGEub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShiKSl7dmFyIGU9YS5vcHRpb25zW2JdO3dpbmRvdy5jb250ZXh0X21lbnVbZi5lbC5pZF1bYS5jb250cm9sXVtlLm5hbWVdPXt0aXRsZTplLnRpdGxlLGFjdGlvbjplLmFjdGlvbn19ZC5pZD0iZ21hcHNfY29udGV4dF9tZW51IixkLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixkLnN0eWxlLm1pbldpZHRoPSIxMDBweCIsZC5zdHlsZS5iYWNrZ3JvdW5kPSJ3aGl0ZSIsZC5zdHlsZS5saXN0U3R5bGU9Im5vbmUiLGQuc3R5bGUucGFkZGluZz0iOHB4IixkLnN0eWxlLmJveFNoYWRvdz0iMnB4IDJweCA2cHggI2NjYyIsYy5ib2R5LmFwcGVuZENoaWxkKGQpO3ZhciBnPWgoImdtYXBzX2NvbnRleHRfbWVudSIpO2dvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKGcsIm1vdXNlb3V0IixmdW5jdGlvbihhKXthLnJlbGF0ZWRUYXJnZXQmJnRoaXMuY29udGFpbnMoYS5yZWxhdGVkVGFyZ2V0KXx8d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnN0eWxlLmRpc3BsYXk9Im5vbmUifSw0MDApfSwhMSl9LHRoaXMuaGlkZUNvbnRleHRNZW51PWZ1bmN0aW9uKCl7dmFyIGE9aCgiZ21hcHNfY29udGV4dF9tZW51Iik7YSYmKGEuc3R5bGUuZGlzcGxheT0ibm9uZSIpfTt2YXIgRD1mdW5jdGlvbihhLGMpe2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGEsYyxmdW5jdGlvbihhKXt2b2lkIDA9PWEmJihhPXRoaXMpLGJbY10uYXBwbHkodGhpcyxbYV0pLGYuaGlkZUNvbnRleHRNZW51KCl9KX07Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5tYXAsInpvb21fY2hhbmdlZCIsdGhpcy5oaWRlQ29udGV4dE1lbnUpO2Zvcih2YXIgRT0wO0U8ai5sZW5ndGg7RSsrKXt2YXIgRj1qW0VdO0YgaW4gYiYmRCh0aGlzLm1hcCxGKX1mb3IodmFyIEU9MDtFPGsubGVuZ3RoO0UrKyl7dmFyIEY9a1tFXTtGIGluIGImJkQodGhpcy5tYXAsRil9Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5tYXAsInJpZ2h0Y2xpY2siLGZ1bmN0aW9uKGEpe2IucmlnaHRjbGljayYmYi5yaWdodGNsaWNrLmFwcGx5KHRoaXMsW2FdKSx2b2lkIDAhPXdpbmRvdy5jb250ZXh0X21lbnVbZi5lbC5pZF0ubWFwJiZmLmJ1aWxkQ29udGV4dE1lbnUoIm1hcCIsYSl9KSx0aGlzLnJlZnJlc2g9ZnVuY3Rpb24oKXtnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKHRoaXMubWFwLCJyZXNpemUiKX0sdGhpcy5maXRab29tPWZ1bmN0aW9uKCl7dmFyIGEsYj1bXSxjPXRoaXMubWFya2Vycy5sZW5ndGg7Zm9yKGE9MDtjPmE7YSsrKSJib29sZWFuIj09dHlwZW9mIHRoaXMubWFya2Vyc1thXS52aXNpYmxlJiZ0aGlzLm1hcmtlcnNbYV0udmlzaWJsZSYmYi5wdXNoKHRoaXMubWFya2Vyc1thXS5nZXRQb3NpdGlvbigpKTt0aGlzLmZpdExhdExuZ0JvdW5kcyhiKX0sdGhpcy5maXRMYXRMbmdCb3VuZHM9ZnVuY3Rpb24oYSl7dmFyIGIsYz1hLmxlbmd0aCxkPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHM7Zm9yKGI9MDtjPmI7YisrKWQuZXh0ZW5kKGFbYl0pO3RoaXMubWFwLmZpdEJvdW5kcyhkKX0sdGhpcy5zZXRDZW50ZXI9ZnVuY3Rpb24oYSxiLGMpe3RoaXMubWFwLnBhblRvKG5ldyBnb29nbGUubWFwcy5MYXRMbmcoYSxiKSksYyYmYygpfSx0aGlzLmdldEVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbH0sdGhpcy56b29tSW49ZnVuY3Rpb24oYSl7YT1hfHwxLHRoaXMuem9vbT10aGlzLm1hcC5nZXRab29tKCkrYSx0aGlzLm1hcC5zZXRab29tKHRoaXMuem9vbSl9LHRoaXMuem9vbU91dD1mdW5jdGlvbihhKXthPWF8fDEsdGhpcy56b29tPXRoaXMubWFwLmdldFpvb20oKS1hLHRoaXMubWFwLnNldFpvb20odGhpcy56b29tKX07dmFyIEcsSD1bXTtmb3IoRyBpbiB0aGlzLm1hcCkiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5tYXBbR118fHRoaXNbR118fEgucHVzaChHKTtmb3IoZT0wO2U8SC5sZW5ndGg7ZSsrKSFmdW5jdGlvbihhLGIsYyl7YVtjXT1mdW5jdGlvbigpe3JldHVybiBiW2NdLmFwcGx5KGIsYXJndW1lbnRzKX19KHRoaXMsdGhpcy5tYXAsSFtlXSl9O3JldHVybiBkfSh0aGlzKTtqLnByb3RvdHlwZS5jcmVhdGVDb250cm9sPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Iuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixhLmRpc2FibGVEZWZhdWx0U3R5bGVzIT09ITAmJihiLnN0eWxlLmZvbnRGYW1pbHk9IlJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYiLGIuc3R5bGUuZm9udFNpemU9IjExcHgiLGIuc3R5bGUuYm94U2hhZG93PSJyZ2JhKDAsIDAsIDAsIDAuMjk4MDM5KSAwcHggMXB4IDRweCAtMXB4Iik7Zm9yKHZhciBjIGluIGEuc3R5bGUpYi5zdHlsZVtjXT1hLnN0eWxlW2NdO2EuaWQmJihiLmlkPWEuaWQpLGEuY2xhc3NlcyYmKGIuY2xhc3NOYW1lPWEuY2xhc3NlcyksYS5jb250ZW50JiYoInN0cmluZyI9PXR5cGVvZiBhLmNvbnRlbnQ/Yi5pbm5lckhUTUw9YS5jb250ZW50OmEuY29udGVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZiLmFwcGVuZENoaWxkKGEuY29udGVudCkpLGEucG9zaXRpb24mJihiLnBvc2l0aW9uPWdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvblthLnBvc2l0aW9uLnRvVXBwZXJDYXNlKCldKTtmb3IodmFyIGQgaW4gYS5ldmVudHMpIWZ1bmN0aW9uKGIsYyl7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkRG9tTGlzdGVuZXIoYixjLGZ1bmN0aW9uKCl7YS5ldmVudHNbY10uYXBwbHkodGhpcyxbdGhpc10pfSl9KGIsZCk7cmV0dXJuIGIuaW5kZXg9MSxifSxqLnByb3RvdHlwZS5hZGRDb250cm9sPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY3JlYXRlQ29udHJvbChhKTtyZXR1cm4gdGhpcy5jb250cm9scy5wdXNoKGIpLHRoaXMubWFwLmNvbnRyb2xzW2IucG9zaXRpb25dLnB1c2goYiksYn0sai5wcm90b3R5cGUucmVtb3ZlQ29udHJvbD1mdW5jdGlvbihhKXt2YXIgYixjPW51bGw7Zm9yKGI9MDtiPHRoaXMuY29udHJvbHMubGVuZ3RoO2IrKyl0aGlzLmNvbnRyb2xzW2JdPT1hJiYoYz10aGlzLmNvbnRyb2xzW2JdLnBvc2l0aW9uLHRoaXMuY29udHJvbHMuc3BsaWNlKGIsMSkpO2lmKGMpZm9yKGI9MDtiPHRoaXMubWFwLmNvbnRyb2xzLmxlbmd0aDtiKyspe3ZhciBkPXRoaXMubWFwLmNvbnRyb2xzW2EucG9zaXRpb25dO2lmKGQuZ2V0QXQoYik9PWEpe2QucmVtb3ZlQXQoYik7YnJlYWt9fXJldHVybiBhfSxqLnByb3RvdHlwZS5jcmVhdGVNYXJrZXI9ZnVuY3Rpb24oYil7aWYodm9pZCAwPT1iLmxhdCYmdm9pZCAwPT1iLmxuZyYmdm9pZCAwPT1iLnBvc2l0aW9uKXRocm93Ik5vIGxhdGl0dWRlIG9yIGxvbmdpdHVkZSBkZWZpbmVkLiI7dmFyIGM9dGhpcyxkPWIuZGV0YWlscyxlPWIuZmVuY2VzLGY9Yi5vdXRzaWRlLGc9e3Bvc2l0aW9uOm5ldyBnb29nbGUubWFwcy5MYXRMbmcoYi5sYXQsYi5sbmcpLG1hcDpudWxsfSxoPWEoZyxiKTtkZWxldGUgaC5sYXQsZGVsZXRlIGgubG5nLGRlbGV0ZSBoLmZlbmNlcyxkZWxldGUgaC5vdXRzaWRlO3ZhciBpPW5ldyBnb29nbGUubWFwcy5NYXJrZXIoaCk7aWYoaS5mZW5jZXM9ZSxiLmluZm9XaW5kb3cpe2kuaW5mb1dpbmRvdz1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyhiLmluZm9XaW5kb3cpO2Zvcih2YXIgaj1bImNsb3NlY2xpY2siLCJjb250ZW50X2NoYW5nZWQiLCJkb21yZWFkeSIsInBvc2l0aW9uX2NoYW5nZWQiLCJ6aW5kZXhfY2hhbmdlZCJdLGs9MDtrPGoubGVuZ3RoO2srKykhZnVuY3Rpb24oYSxjKXtiLmluZm9XaW5kb3dbY10mJmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGEsYyxmdW5jdGlvbihhKXtiLmluZm9XaW5kb3dbY10uYXBwbHkodGhpcyxbYV0pfSl9KGkuaW5mb1dpbmRvdyxqW2tdKX1mb3IodmFyIGw9WyJhbmltYXRpb25fY2hhbmdlZCIsImNsaWNrYWJsZV9jaGFuZ2VkIiwiY3Vyc29yX2NoYW5nZWQiLCJkcmFnZ2FibGVfY2hhbmdlZCIsImZsYXRfY2hhbmdlZCIsImljb25fY2hhbmdlZCIsInBvc2l0aW9uX2NoYW5nZWQiLCJzaGFkb3dfY2hhbmdlZCIsInNoYXBlX2NoYW5nZWQiLCJ0aXRsZV9jaGFuZ2VkIiwidmlzaWJsZV9jaGFuZ2VkIiwiemluZGV4X2NoYW5nZWQiXSxtPVsiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdzdGFydCIsIm1vdXNlZG93biIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCJdLGs9MDtrPGwubGVuZ3RoO2srKykhZnVuY3Rpb24oYSxjKXtiW2NdJiZnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihhLGMsZnVuY3Rpb24oKXtiW2NdLmFwcGx5KHRoaXMsW3RoaXNdKX0pfShpLGxba10pO2Zvcih2YXIgaz0wO2s8bS5sZW5ndGg7aysrKSFmdW5jdGlvbihhLGMsZCl7YltkXSYmZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoYyxkLGZ1bmN0aW9uKGMpe2MucGl4ZWx8fChjLnBpeGVsPWEuZ2V0UHJvamVjdGlvbigpLmZyb21MYXRMbmdUb1BvaW50KGMubGF0TG5nKSksYltkXS5hcHBseSh0aGlzLFtjXSl9KX0odGhpcy5tYXAsaSxtW2tdKTtyZXR1cm4gZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaSwiY2xpY2siLGZ1bmN0aW9uKCl7dGhpcy5kZXRhaWxzPWQsYi5jbGljayYmYi5jbGljay5hcHBseSh0aGlzLFt0aGlzXSksaS5pbmZvV2luZG93JiYoYy5oaWRlSW5mb1dpbmRvd3MoKSxpLmluZm9XaW5kb3cub3BlbihjLm1hcCxpKSl9KSxnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihpLCJyaWdodGNsaWNrIixmdW5jdGlvbihhKXthLm1hcmtlcj10aGlzLGIucmlnaHRjbGljayYmYi5yaWdodGNsaWNrLmFwcGx5KHRoaXMsW2FdKSx2b2lkIDAhPXdpbmRvdy5jb250ZXh0X21lbnVbYy5lbC5pZF0ubWFya2VyJiZjLmJ1aWxkQ29udGV4dE1lbnUoIm1hcmtlciIsYSl9KSxpLmZlbmNlcyYmZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaSwiZHJhZ2VuZCIsZnVuY3Rpb24oKXtjLmNoZWNrTWFya2VyR2VvZmVuY2UoaSxmdW5jdGlvbihhLGIpe2YoYSxiKX0pfSksaX0sai5wcm90b3R5cGUuYWRkTWFya2VyPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEuaGFzT3duUHJvcGVydHkoImdtX2FjY2Vzc29yc18iKSliPWE7ZWxzZXtpZighKGEuaGFzT3duUHJvcGVydHkoImxhdCIpJiZhLmhhc093blByb3BlcnR5KCJsbmciKXx8YS5wb3NpdGlvbikpdGhyb3ciTm8gbGF0aXR1ZGUgb3IgbG9uZ2l0dWRlIGRlZmluZWQuIjtiPXRoaXMuY3JlYXRlTWFya2VyKGEpfXJldHVybiBiLnNldE1hcCh0aGlzLm1hcCksdGhpcy5tYXJrZXJDbHVzdGVyZXImJnRoaXMubWFya2VyQ2x1c3RlcmVyLmFkZE1hcmtlcihiKSx0aGlzLm1hcmtlcnMucHVzaChiKSxqLmZpcmUoIm1hcmtlcl9hZGRlZCIsYix0aGlzKSxifSxqLnByb3RvdHlwZS5hZGRNYXJrZXJzPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPTA7Yj1hW2NdO2MrKyl0aGlzLmFkZE1hcmtlcihiKTtyZXR1cm4gdGhpcy5tYXJrZXJzfSxqLnByb3RvdHlwZS5oaWRlSW5mb1dpbmRvd3M9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO2E9dGhpcy5tYXJrZXJzW2JdO2IrKylhLmluZm9XaW5kb3cmJmEuaW5mb1dpbmRvdy5jbG9zZSgpfSxqLnByb3RvdHlwZS5yZW1vdmVNYXJrZXI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7Yjx0aGlzLm1hcmtlcnMubGVuZ3RoO2IrKylpZih0aGlzLm1hcmtlcnNbYl09PT1hKXt0aGlzLm1hcmtlcnNbYl0uc2V0TWFwKG51bGwpLHRoaXMubWFya2Vycy5zcGxpY2UoYiwxKSx0aGlzLm1hcmtlckNsdXN0ZXJlciYmdGhpcy5tYXJrZXJDbHVzdGVyZXIucmVtb3ZlTWFya2VyKGEpLGouZmlyZSgibWFya2VyX3JlbW92ZWQiLGEsdGhpcyk7YnJlYWt9cmV0dXJuIGF9LGoucHJvdG90eXBlLnJlbW92ZU1hcmtlcnM9ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXtmb3IodmFyIGM9MDtjPHRoaXMubWFya2Vycy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLm1hcmtlcnNbY107ZC5zZXRNYXAobnVsbCksdGhpcy5tYXJrZXJDbHVzdGVyZXImJnRoaXMubWFya2VyQ2x1c3RlcmVyLnJlbW92ZU1hcmtlcihkKSxqLmZpcmUoIm1hcmtlcl9yZW1vdmVkIixkLHRoaXMpfXRoaXMubWFya2Vycz1ifWVsc2V7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBlPXRoaXMubWFya2Vycy5pbmRleE9mKGFbY10pO2lmKGU+LTEpe3ZhciBkPXRoaXMubWFya2Vyc1tlXTtkLnNldE1hcChudWxsKSx0aGlzLm1hcmtlckNsdXN0ZXJlciYmdGhpcy5tYXJrZXJDbHVzdGVyZXIucmVtb3ZlTWFya2VyKGQpLGouZmlyZSgibWFya2VyX3JlbW92ZWQiLGQsdGhpcyl9fWZvcih2YXIgYz0wO2M8dGhpcy5tYXJrZXJzLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMubWFya2Vyc1tjXTtudWxsIT1kLmdldE1hcCgpJiZiLnB1c2goZCl9dGhpcy5tYXJrZXJzPWJ9fSxqLnByb3RvdHlwZS5kcmF3T3ZlcmxheT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXcsYz0hMDtyZXR1cm4gYi5zZXRNYXAodGhpcy5tYXApLG51bGwhPWEuYXV0b19zaG93JiYoYz1hLmF1dG9fc2hvdyksYi5vbkFkZD1mdW5jdGlvbigpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Muc3R5bGUuYm9yZGVyU3R5bGU9Im5vbmUiLGMuc3R5bGUuYm9yZGVyV2lkdGg9IjBweCIsYy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGMuc3R5bGUuekluZGV4PTEwMCxjLmlubmVySFRNTD1hLmNvbnRlbnQsYi5lbD1jLGEubGF5ZXJ8fChhLmxheWVyPSJvdmVybGF5TGF5ZXIiKTt2YXIgZD10aGlzLmdldFBhbmVzKCksZT1kW2EubGF5ZXJdLGY9WyJjb250ZXh0bWVudSIsIkRPTU1vdXNlU2Nyb2xsIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iXTtlLmFwcGVuZENoaWxkKGMpO2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7ZysrKSFmdW5jdGlvbihhLGIpe2dvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKGEsYixmdW5jdGlvbihhKXstMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIm1zaWUiKSYmZG9jdW1lbnQuYWxsPyhhLmNhbmNlbEJ1YmJsZT0hMCxhLnJldHVyblZhbHVlPSExKTphLnN0b3BQcm9wYWdhdGlvbigpfSl9KGMsZltnXSk7YS5jbGljayYmKGQub3ZlcmxheU1vdXNlVGFyZ2V0LmFwcGVuZENoaWxkKGIuZWwpLGdvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKGIuZWwsImNsaWNrIixmdW5jdGlvbigpe2EuY2xpY2suYXBwbHkoYixbYl0pfSkpLGdvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIodGhpcywicmVhZHkiKX0sYi5kcmF3PWZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5nZXRQcm9qZWN0aW9uKCksZT1kLmZyb21MYXRMbmdUb0RpdlBpeGVsKG5ldyBnb29nbGUubWFwcy5MYXRMbmcoYS5sYXQsYS5sbmcpKTthLmhvcml6b250YWxPZmZzZXQ9YS5ob3Jpem9udGFsT2Zmc2V0fHwwLGEudmVydGljYWxPZmZzZXQ9YS52ZXJ0aWNhbE9mZnNldHx8MDt2YXIgZj1iLmVsLGc9Zi5jaGlsZHJlblswXSxoPWcuY2xpZW50SGVpZ2h0LGk9Zy5jbGllbnRXaWR0aDtzd2l0Y2goYS52ZXJ0aWNhbEFsaWduKXtjYXNlInRvcCI6Zi5zdHlsZS50b3A9ZS55LWgrYS52ZXJ0aWNhbE9mZnNldCsicHgiO2JyZWFrO2RlZmF1bHQ6Y2FzZSJtaWRkbGUiOmYuc3R5bGUudG9wPWUueS1oLzIrYS52ZXJ0aWNhbE9mZnNldCsicHgiO2JyZWFrO2Nhc2UiYm90dG9tIjpmLnN0eWxlLnRvcD1lLnkrYS52ZXJ0aWNhbE9mZnNldCsicHgifXN3aXRjaChhLmhvcml6b250YWxBbGlnbil7Y2FzZSJsZWZ0IjpmLnN0eWxlLmxlZnQ9ZS54LWkrYS5ob3Jpem9udGFsT2Zmc2V0KyJweCI7YnJlYWs7ZGVmYXVsdDpjYXNlImNlbnRlciI6Zi5zdHlsZS5sZWZ0PWUueC1pLzIrYS5ob3Jpem9udGFsT2Zmc2V0KyJweCI7YnJlYWs7Y2FzZSJyaWdodCI6Zi5zdHlsZS5sZWZ0PWUueCthLmhvcml6b250YWxPZmZzZXQrInB4In1mLnN0eWxlLmRpc3BsYXk9Yz8iYmxvY2siOiJub25lIixjfHxhLnNob3cuYXBwbHkodGhpcyxbZl0pfSxiLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGM9Yi5lbDthLnJlbW92ZT9hLnJlbW92ZS5hcHBseSh0aGlzLFtjXSk6KGIuZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiLmVsKSxiLmVsPW51bGwpfSx0aGlzLm92ZXJsYXlzLnB1c2goYiksYn0sai5wcm90b3R5cGUucmVtb3ZlT3ZlcmxheT1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPHRoaXMub3ZlcmxheXMubGVuZ3RoO2IrKylpZih0aGlzLm92ZXJsYXlzW2JdPT09YSl7dGhpcy5vdmVybGF5c1tiXS5zZXRNYXAobnVsbCksdGhpcy5vdmVybGF5cy5zcGxpY2UoYiwxKTticmVha319LGoucHJvdG90eXBlLnJlbW92ZU92ZXJsYXlzPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDthPXRoaXMub3ZlcmxheXNbYl07YisrKWEuc2V0TWFwKG51bGwpO3RoaXMub3ZlcmxheXM9W119LGoucHJvdG90eXBlLmRyYXdQb2x5bGluZT1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPWEucGF0aDtpZihjLmxlbmd0aClpZih2b2lkIDA9PT1jWzBdWzBdKWI9YztlbHNlIGZvcih2YXIgZCxlPTA7ZD1jW2VdO2UrKyliLnB1c2gobmV3IGdvb2dsZS5tYXBzLkxhdExuZyhkWzBdLGRbMV0pKTt2YXIgZj17bWFwOnRoaXMubWFwLHBhdGg6YixzdHJva2VDb2xvcjphLnN0cm9rZUNvbG9yLHN0cm9rZU9wYWNpdHk6YS5zdHJva2VPcGFjaXR5LHN0cm9rZVdlaWdodDphLnN0cm9rZVdlaWdodCxnZW9kZXNpYzphLmdlb2Rlc2ljLGNsaWNrYWJsZTohMCxlZGl0YWJsZTohMSx2aXNpYmxlOiEwfTthLmhhc093blByb3BlcnR5KCJjbGlja2FibGUiKSYmKGYuY2xpY2thYmxlPWEuY2xpY2thYmxlKSxhLmhhc093blByb3BlcnR5KCJlZGl0YWJsZSIpJiYoZi5lZGl0YWJsZT1hLmVkaXRhYmxlKSxhLmhhc093blByb3BlcnR5KCJpY29ucyIpJiYoZi5pY29ucz1hLmljb25zKSxhLmhhc093blByb3BlcnR5KCJ6SW5kZXgiKSYmKGYuekluZGV4PWEuekluZGV4KTtmb3IodmFyIGc9bmV3IGdvb2dsZS5tYXBzLlBvbHlsaW5lKGYpLGg9WyJjbGljayIsImRibGNsaWNrIiwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJtb3VzZW92ZXIiLCJtb3VzZXVwIiwicmlnaHRjbGljayJdLGk9MDtpPGgubGVuZ3RoO2krKykhZnVuY3Rpb24oYixjKXthW2NdJiZnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihiLGMsZnVuY3Rpb24oYil7YVtjXS5hcHBseSh0aGlzLFtiXSl9KX0oZyxoW2ldKTtyZXR1cm4gdGhpcy5wb2x5bGluZXMucHVzaChnKSxqLmZpcmUoInBvbHlsaW5lX2FkZGVkIixnLHRoaXMpLGd9LGoucHJvdG90eXBlLnJlbW92ZVBvbHlsaW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8dGhpcy5wb2x5bGluZXMubGVuZ3RoO2IrKylpZih0aGlzLnBvbHlsaW5lc1tiXT09PWEpe3RoaXMucG9seWxpbmVzW2JdLnNldE1hcChudWxsKSx0aGlzLnBvbHlsaW5lcy5zcGxpY2UoYiwxKSxqLmZpcmUoInBvbHlsaW5lX3JlbW92ZWQiLGEsdGhpcyk7YnJlYWt9fSxqLnByb3RvdHlwZS5yZW1vdmVQb2x5bGluZXM9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO2E9dGhpcy5wb2x5bGluZXNbYl07YisrKWEuc2V0TWFwKG51bGwpO3RoaXMucG9seWxpbmVzPVtdfSxqLnByb3RvdHlwZS5kcmF3Q2lyY2xlPWZ1bmN0aW9uKGIpe2I9YSh7bWFwOnRoaXMubWFwLGNlbnRlcjpuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKGIubGF0LGIubG5nKX0sYiksZGVsZXRlIGIubGF0LGRlbGV0ZSBiLmxuZztmb3IodmFyIGM9bmV3IGdvb2dsZS5tYXBzLkNpcmNsZShiKSxkPVsiY2xpY2siLCJkYmxjbGljayIsIm1vdXNlZG93biIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsInJpZ2h0Y2xpY2siXSxlPTA7ZTxkLmxlbmd0aDtlKyspIWZ1bmN0aW9uKGEsYyl7YltjXSYmZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoYSxjLGZ1bmN0aW9uKGEpe2JbY10uYXBwbHkodGhpcyxbYV0pfSl9KGMsZFtlXSk7cmV0dXJuIHRoaXMucG9seWdvbnMucHVzaChjKSxjfSxqLnByb3RvdHlwZS5kcmF3UmVjdGFuZ2xlPWZ1bmN0aW9uKGIpe2I9YSh7bWFwOnRoaXMubWFwfSxiKTt2YXIgYz1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKG5ldyBnb29nbGUubWFwcy5MYXRMbmcoYi5ib3VuZHNbMF1bMF0sYi5ib3VuZHNbMF1bMV0pLG5ldyBnb29nbGUubWFwcy5MYXRMbmcoYi5ib3VuZHNbMV1bMF0sYi5ib3VuZHNbMV1bMV0pKTtiLmJvdW5kcz1jO2Zvcih2YXIgZD1uZXcgZ29vZ2xlLm1hcHMuUmVjdGFuZ2xlKGIpLGU9WyJjbGljayIsImRibGNsaWNrIiwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJtb3VzZW92ZXIiLCJtb3VzZXVwIiwicmlnaHRjbGljayJdLGY9MDtmPGUubGVuZ3RoO2YrKykhZnVuY3Rpb24oYSxjKXtiW2NdJiZnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihhLGMsZnVuY3Rpb24oYSl7YltjXS5hcHBseSh0aGlzLFthXSl9KX0oZCxlW2ZdKTtyZXR1cm4gdGhpcy5wb2x5Z29ucy5wdXNoKGQpLGR9LGoucHJvdG90eXBlLmRyYXdQb2x5Z29uPWZ1bmN0aW9uKGQpe3ZhciBlPSExO2QuaGFzT3duUHJvcGVydHkoInVzZUdlb0pTT04iKSYmKGU9ZC51c2VHZW9KU09OKSxkZWxldGUgZC51c2VHZW9KU09OLGQ9YSh7bWFwOnRoaXMubWFwfSxkKSwwPT1lJiYoZC5wYXRocz1bZC5wYXRocy5zbGljZSgwKV0pLGQucGF0aHMubGVuZ3RoPjAmJmQucGF0aHNbMF0ubGVuZ3RoPjAmJihkLnBhdGhzPWMoYihkLnBhdGhzLGYsZSkpKTtmb3IodmFyIGc9bmV3IGdvb2dsZS5tYXBzLlBvbHlnb24oZCksaD1bImNsaWNrIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZW91dCIsIm1vdXNlb3ZlciIsIm1vdXNldXAiLCJyaWdodGNsaWNrIl0saT0wO2k8aC5sZW5ndGg7aSsrKSFmdW5jdGlvbihhLGIpe2RbYl0mJmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGEsYixmdW5jdGlvbihhKXtkW2JdLmFwcGx5KHRoaXMsW2FdKX0pfShnLGhbaV0pO3JldHVybiB0aGlzLnBvbHlnb25zLnB1c2goZyksai5maXJlKCJwb2x5Z29uX2FkZGVkIixnLHRoaXMpLGd9LGoucHJvdG90eXBlLnJlbW92ZVBvbHlnb249ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7Yjx0aGlzLnBvbHlnb25zLmxlbmd0aDtiKyspaWYodGhpcy5wb2x5Z29uc1tiXT09PWEpe3RoaXMucG9seWdvbnNbYl0uc2V0TWFwKG51bGwpLHRoaXMucG9seWdvbnMuc3BsaWNlKGIsMSksai5maXJlKCJwb2x5Z29uX3JlbW92ZWQiLGEsdGhpcyk7YnJlYWt9fSxqLnByb3RvdHlwZS5yZW1vdmVQb2x5Z29ucz1mdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7YT10aGlzLnBvbHlnb25zW2JdO2IrKylhLnNldE1hcChudWxsKTt0aGlzLnBvbHlnb25zPVtdfSxqLnByb3RvdHlwZS5nZXRGcm9tRnVzaW9uVGFibGVzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZXZlbnRzO2RlbGV0ZSBhLmV2ZW50czt2YXIgYz1hLGQ9bmV3IGdvb2dsZS5tYXBzLkZ1c2lvblRhYmxlc0xheWVyKGMpO2Zvcih2YXIgZSBpbiBiKSFmdW5jdGlvbihhLGMpe2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGEsYyxmdW5jdGlvbihhKXtiW2NdLmFwcGx5KHRoaXMsW2FdKX0pfShkLGUpO3JldHVybiB0aGlzLmxheWVycy5wdXNoKGQpLGR9LGoucHJvdG90eXBlLmxvYWRGcm9tRnVzaW9uVGFibGVzPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2V0RnJvbUZ1c2lvblRhYmxlcyhhKTtyZXR1cm4gYi5zZXRNYXAodGhpcy5tYXApLGJ9LGoucHJvdG90eXBlLmdldEZyb21LTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YS51cmwsYz1hLmV2ZW50cztkZWxldGUgYS51cmwsZGVsZXRlIGEuZXZlbnRzO3ZhciBkPWEsZT1uZXcgZ29vZ2xlLm1hcHMuS21sTGF5ZXIoYixkKTtmb3IodmFyIGYgaW4gYykhZnVuY3Rpb24oYSxiKXtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihhLGIsZnVuY3Rpb24oYSl7Y1tiXS5hcHBseSh0aGlzLFthXSl9KX0oZSxmKTtyZXR1cm4gdGhpcy5sYXllcnMucHVzaChlKSxlfSxqLnByb3RvdHlwZS5sb2FkRnJvbUtNTD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmdldEZyb21LTUwoYSk7cmV0dXJuIGIuc2V0TWFwKHRoaXMubWFwKSxifSxqLnByb3RvdHlwZS5hZGRMYXllcj1mdW5jdGlvbihhLGIpe2I9Ynx8e307dmFyIGM7c3dpdGNoKGEpe2Nhc2Uid2VhdGhlciI6dGhpcy5zaW5nbGVMYXllcnMud2VhdGhlcj1jPW5ldyBnb29nbGUubWFwcy53ZWF0aGVyLldlYXRoZXJMYXllcjticmVhaztjYXNlImNsb3VkcyI6dGhpcy5zaW5nbGVMYXllcnMuY2xvdWRzPWM9bmV3IGdvb2dsZS5tYXBzLndlYXRoZXIuQ2xvdWRMYXllcjticmVhaztjYXNlInRyYWZmaWMiOnRoaXMuc2luZ2xlTGF5ZXJzLnRyYWZmaWM9Yz1uZXcgZ29vZ2xlLm1hcHMuVHJhZmZpY0xheWVyO2JyZWFrO2Nhc2UidHJhbnNpdCI6dGhpcy5zaW5nbGVMYXllcnMudHJhbnNpdD1jPW5ldyBnb29nbGUubWFwcy5UcmFuc2l0TGF5ZXI7YnJlYWs7Y2FzZSJiaWN5Y2xpbmciOnRoaXMuc2luZ2xlTGF5ZXJzLmJpY3ljbGluZz1jPW5ldyBnb29nbGUubWFwcy5CaWN5Y2xpbmdMYXllcjticmVhaztjYXNlInBhbm9yYW1pbyI6dGhpcy5zaW5nbGVMYXllcnMucGFub3JhbWlvPWM9bmV3IGdvb2dsZS5tYXBzLnBhbm9yYW1pby5QYW5vcmFtaW9MYXllcixjLnNldFRhZyhiLmZpbHRlciksZGVsZXRlIGIuZmlsdGVyLGIuY2xpY2smJmdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGMsImNsaWNrIixmdW5jdGlvbihhKXtiLmNsaWNrKGEpLGRlbGV0ZSBiLmNsaWNrfSk7YnJlYWs7Y2FzZSJwbGFjZXMiOmlmKHRoaXMuc2luZ2xlTGF5ZXJzLnBsYWNlcz1jPW5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZSh0aGlzLm1hcCksYi5zZWFyY2h8fGIubmVhcmJ5U2VhcmNofHxiLnJhZGFyU2VhcmNoKXt2YXIgZD17Ym91bmRzOmIuYm91bmRzfHxudWxsLGtleXdvcmQ6Yi5rZXl3b3JkfHxudWxsLGxvY2F0aW9uOmIubG9jYXRpb258fG51bGwsbmFtZTpiLm5hbWV8fG51bGwscmFkaXVzOmIucmFkaXVzfHxudWxsLHJhbmtCeTpiLnJhbmtCeXx8bnVsbCx0eXBlczpiLnR5cGVzfHxudWxsfTtiLnJhZGFyU2VhcmNoJiZjLnJhZGFyU2VhcmNoKGQsYi5yYWRhclNlYXJjaCksYi5zZWFyY2gmJmMuc2VhcmNoKGQsYi5zZWFyY2gpLGIubmVhcmJ5U2VhcmNoJiZjLm5lYXJieVNlYXJjaChkLGIubmVhcmJ5U2VhcmNoKX1pZihiLnRleHRTZWFyY2gpe3ZhciBlPXtib3VuZHM6Yi5ib3VuZHN8fG51bGwsbG9jYXRpb246Yi5sb2NhdGlvbnx8bnVsbCxxdWVyeTpiLnF1ZXJ5fHxudWxsLHJhZGl1czpiLnJhZGl1c3x8bnVsbH07Yy50ZXh0U2VhcmNoKGUsYi50ZXh0U2VhcmNoKX19cmV0dXJuIHZvaWQgMCE9PWM/KCJmdW5jdGlvbiI9PXR5cGVvZiBjLnNldE9wdGlvbnMmJmMuc2V0T3B0aW9ucyhiKSwiZnVuY3Rpb24iPT10eXBlb2YgYy5zZXRNYXAmJmMuc2V0TWFwKHRoaXMubWFwKSxjKTp2b2lkIDB9LGoucHJvdG90eXBlLnJlbW92ZUxheWVyPWZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT10eXBlb2YgYSYmdm9pZCAwIT09dGhpcy5zaW5nbGVMYXllcnNbYV0pdGhpcy5zaW5nbGVMYXllcnNbYV0uc2V0TWFwKG51bGwpLGRlbGV0ZSB0aGlzLnNpbmdsZUxheWVyc1thXTtlbHNlIGZvcih2YXIgYj0wO2I8dGhpcy5sYXllcnMubGVuZ3RoO2IrKylpZih0aGlzLmxheWVyc1tiXT09PWEpe3RoaXMubGF5ZXJzW2JdLnNldE1hcChudWxsKSx0aGlzLmxheWVycy5zcGxpY2UoYiwxKTticmVha319O3ZhciBrLGw7cmV0dXJuIGoucHJvdG90eXBlLmdldFJvdXRlcz1mdW5jdGlvbihiKXtzd2l0Y2goYi50cmF2ZWxNb2RlKXtjYXNlImJpY3ljbGluZyI6az1nb29nbGUubWFwcy5UcmF2ZWxNb2RlLkJJQ1lDTElORzticmVhaztjYXNlInRyYW5zaXQiOms9Z29vZ2xlLm1hcHMuVHJhdmVsTW9kZS5UUkFOU0lUO2JyZWFrO2Nhc2UiZHJpdmluZyI6az1nb29nbGUubWFwcy5UcmF2ZWxNb2RlLkRSSVZJTkc7YnJlYWs7ZGVmYXVsdDprPWdvb2dsZS5tYXBzLlRyYXZlbE1vZGUuV0FMS0lOR31sPSJpbXBlcmlhbCI9PT1iLnVuaXRTeXN0ZW0/Z29vZ2xlLm1hcHMuVW5pdFN5c3RlbS5JTVBFUklBTDpnb29nbGUubWFwcy5Vbml0U3lzdGVtLk1FVFJJQzt2YXIgYz17YXZvaWRIaWdod2F5czohMSxhdm9pZFRvbGxzOiExLG9wdGltaXplV2F5cG9pbnRzOiExLHdheXBvaW50czpbXX0sZD1hKGMsYik7ZC5vcmlnaW49L3N0cmluZy8udGVzdCh0eXBlb2YgYi5vcmlnaW4pP2Iub3JpZ2luOm5ldyBnb29nbGUubWFwcy5MYXRMbmcoYi5vcmlnaW5bMF0sYi5vcmlnaW5bMV0pLGQuZGVzdGluYXRpb249L3N0cmluZy8udGVzdCh0eXBlb2YgYi5kZXN0aW5hdGlvbik/Yi5kZXN0aW5hdGlvbjpuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKGIuZGVzdGluYXRpb25bMF0sYi5kZXN0aW5hdGlvblsxXSksZC50cmF2ZWxNb2RlPWssZC51bml0U3lzdGVtPWwsZGVsZXRlIGQuY2FsbGJhY2ssZGVsZXRlIGQuZXJyb3I7dmFyIGU9dGhpcyxmPW5ldyBnb29nbGUubWFwcy5EaXJlY3Rpb25zU2VydmljZTtmLnJvdXRlKGQsZnVuY3Rpb24oYSxjKXtpZihjPT09Z29vZ2xlLm1hcHMuRGlyZWN0aW9uc1N0YXR1cy5PSyl7Zm9yKHZhciBkIGluIGEucm91dGVzKWEucm91dGVzLmhhc093blByb3BlcnR5KGQpJiZlLnJvdXRlcy5wdXNoKGEucm91dGVzW2RdKTtiLmNhbGxiYWNrJiZiLmNhbGxiYWNrKGUucm91dGVzKX1lbHNlIGIuZXJyb3ImJmIuZXJyb3IoYSxjKX0pfSxqLnByb3RvdHlwZS5yZW1vdmVSb3V0ZXM9ZnVuY3Rpb24oKXt0aGlzLnJvdXRlcz1bXX0sai5wcm90b3R5cGUuZ2V0RWxldmF0aW9ucz1mdW5jdGlvbihkKXtkPWEoe2xvY2F0aW9uczpbXSxwYXRoOiExLHNhbXBsZXM6MjU2fSxkKSxkLmxvY2F0aW9ucy5sZW5ndGg+MCYmZC5sb2NhdGlvbnNbMF0ubGVuZ3RoPjAmJihkLmxvY2F0aW9ucz1jKGIoW2QubG9jYXRpb25zXSxmLCExKSkpO3ZhciBlPWQuY2FsbGJhY2s7ZGVsZXRlIGQuY2FsbGJhY2s7dmFyIGc9bmV3IGdvb2dsZS5tYXBzLkVsZXZhdGlvblNlcnZpY2U7aWYoZC5wYXRoKXt2YXIgaD17cGF0aDpkLmxvY2F0aW9ucyxzYW1wbGVzOmQuc2FtcGxlc307Zy5nZXRFbGV2YXRpb25BbG9uZ1BhdGgoaCxmdW5jdGlvbihhLGIpe2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKGEsYil9KX1lbHNlIGRlbGV0ZSBkLnBhdGgsZGVsZXRlIGQuc2FtcGxlcyxnLmdldEVsZXZhdGlvbkZvckxvY2F0aW9ucyhkLGZ1bmN0aW9uKGEsYil7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoYSxiKX0pfSxqLnByb3RvdHlwZS5jbGVhblJvdXRlPWoucHJvdG90eXBlLnJlbW92ZVBvbHlsaW5lcyxqLnByb3RvdHlwZS5kcmF3Um91dGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmdldFJvdXRlcyh7b3JpZ2luOmEub3JpZ2luLGRlc3RpbmF0aW9uOmEuZGVzdGluYXRpb24sdHJhdmVsTW9kZTphLnRyYXZlbE1vZGUsd2F5cG9pbnRzOmEud2F5cG9pbnRzLHVuaXRTeXN0ZW06YS51bml0U3lzdGVtLGVycm9yOmEuZXJyb3IsY2FsbGJhY2s6ZnVuY3Rpb24oYyl7aWYoYy5sZW5ndGg+MCl7dmFyIGQ9e3BhdGg6Y1tjLmxlbmd0aC0xXS5vdmVydmlld19wYXRoLHN0cm9rZUNvbG9yOmEuc3Ryb2tlQ29sb3Isc3Ryb2tlT3BhY2l0eTphLnN0cm9rZU9wYWNpdHksc3Ryb2tlV2VpZ2h0OmEuc3Ryb2tlV2VpZ2h0fTthLmhhc093blByb3BlcnR5KCJpY29ucyIpJiYoZC5pY29ucz1hLmljb25zKSxiLmRyYXdQb2x5bGluZShkKSxhLmNhbGxiYWNrJiZhLmNhbGxiYWNrKGNbYy5sZW5ndGgtMV0pfX19KX0sai5wcm90b3R5cGUudHJhdmVsUm91dGU9ZnVuY3Rpb24oYSl7aWYoYS5vcmlnaW4mJmEuZGVzdGluYXRpb24pdGhpcy5nZXRSb3V0ZXMoe29yaWdpbjphLm9yaWdpbixkZXN0aW5hdGlvbjphLmRlc3RpbmF0aW9uLHRyYXZlbE1vZGU6YS50cmF2ZWxNb2RlLHdheXBvaW50czphLndheXBvaW50cyx1bml0U3lzdGVtOmEudW5pdFN5c3RlbSxlcnJvcjphLmVycm9yLGNhbGxiYWNrOmZ1bmN0aW9uKGIpe2lmKGIubGVuZ3RoPjAmJmEuc3RhcnQmJmEuc3RhcnQoYltiLmxlbmd0aC0xXSksYi5sZW5ndGg+MCYmYS5zdGVwKXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKGMubGVncy5sZW5ndGg+MClmb3IodmFyIGQsZT1jLmxlZ3NbMF0uc3RlcHMsZj0wO2Q9ZVtmXTtmKyspZC5zdGVwX251bWJlcj1mLGEuc3RlcChkLGMubGVnc1swXS5zdGVwcy5sZW5ndGgtMSl9Yi5sZW5ndGg+MCYmYS5lbmQmJmEuZW5kKGJbYi5sZW5ndGgtMV0pfX0pO2Vsc2UgaWYoYS5yb3V0ZSYmYS5yb3V0ZS5sZWdzLmxlbmd0aD4wKWZvcih2YXIgYixjPWEucm91dGUubGVnc1swXS5zdGVwcyxkPTA7Yj1jW2RdO2QrKyliLnN0ZXBfbnVtYmVyPWQsYS5zdGVwKGIpfSxqLnByb3RvdHlwZS5kcmF3U3RlcHBlZFJvdXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoYS5vcmlnaW4mJmEuZGVzdGluYXRpb24pdGhpcy5nZXRSb3V0ZXMoe29yaWdpbjphLm9yaWdpbixkZXN0aW5hdGlvbjphLmRlc3RpbmF0aW9uLHRyYXZlbE1vZGU6YS50cmF2ZWxNb2RlLHdheXBvaW50czphLndheXBvaW50cyxlcnJvcjphLmVycm9yLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2lmKGMubGVuZ3RoPjAmJmEuc3RhcnQmJmEuc3RhcnQoY1tjLmxlbmd0aC0xXSksYy5sZW5ndGg+MCYmYS5zdGVwKXt2YXIgZD1jW2MubGVuZ3RoLTFdO2lmKGQubGVncy5sZW5ndGg+MClmb3IodmFyIGUsZj1kLmxlZ3NbMF0uc3RlcHMsZz0wO2U9ZltnXTtnKyspe2Uuc3RlcF9udW1iZXI9Zzt2YXIgaD17cGF0aDplLnBhdGgsc3Ryb2tlQ29sb3I6YS5zdHJva2VDb2xvcixzdHJva2VPcGFjaXR5OmEuc3Ryb2tlT3BhY2l0eSxzdHJva2VXZWlnaHQ6YS5zdHJva2VXZWlnaHR9O2EuaGFzT3duUHJvcGVydHkoImljb25zIikmJihoLmljb25zPWEuaWNvbnMpLGIuZHJhd1BvbHlsaW5lKGgpLGEuc3RlcChlLGQubGVnc1swXS5zdGVwcy5sZW5ndGgtMSl9fWMubGVuZ3RoPjAmJmEuZW5kJiZhLmVuZChjW2MubGVuZ3RoLTFdKX19KTtlbHNlIGlmKGEucm91dGUmJmEucm91dGUubGVncy5sZW5ndGg+MClmb3IodmFyIGMsZD1hLnJvdXRlLmxlZ3NbMF0uc3RlcHMsZT0wO2M9ZFtlXTtlKyspe2Muc3RlcF9udW1iZXI9ZTt2YXIgZj17cGF0aDpjLnBhdGgsc3Ryb2tlQ29sb3I6YS5zdHJva2VDb2xvcixzdHJva2VPcGFjaXR5OmEuc3Ryb2tlT3BhY2l0eSxzdHJva2VXZWlnaHQ6YS5zdHJva2VXZWlnaHR9O2EuaGFzT3duUHJvcGVydHkoImljb25zIikmJihmLmljb25zPWEuaWNvbnMpLGIuZHJhd1BvbHlsaW5lKGYpLGEuc3RlcChjKX19LGouUm91dGU9ZnVuY3Rpb24oYSl7dGhpcy5vcmlnaW49YS5vcmlnaW4sdGhpcy5kZXN0aW5hdGlvbj1hLmRlc3RpbmF0aW9uLHRoaXMud2F5cG9pbnRzPWEud2F5cG9pbnRzLHRoaXMubWFwPWEubWFwLHRoaXMucm91dGU9YS5yb3V0ZSx0aGlzLnN0ZXBfY291bnQ9MCx0aGlzLnN0ZXBzPXRoaXMucm91dGUubGVnc1swXS5zdGVwcyx0aGlzLnN0ZXBzX2xlbmd0aD10aGlzLnN0ZXBzLmxlbmd0aDt2YXIgYj17cGF0aDpuZXcgZ29vZ2xlLm1hcHMuTVZDQXJyYXksc3Ryb2tlQ29sb3I6YS5zdHJva2VDb2xvcixzdHJva2VPcGFjaXR5OmEuc3Ryb2tlT3BhY2l0eSxzdHJva2VXZWlnaHQ6YS5zdHJva2VXZWlnaHR9O2EuaGFzT3duUHJvcGVydHkoImljb25zIikmJihiLmljb25zPWEuaWNvbnMpLHRoaXMucG9seWxpbmU9dGhpcy5tYXAuZHJhd1BvbHlsaW5lKGIpLmdldFBhdGgoKX0sai5Sb3V0ZS5wcm90b3R5cGUuZ2V0Um91dGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLm1hcC5nZXRSb3V0ZXMoe29yaWdpbjp0aGlzLm9yaWdpbixkZXN0aW5hdGlvbjp0aGlzLmRlc3RpbmF0aW9uLHRyYXZlbE1vZGU6YS50cmF2ZWxNb2RlLHdheXBvaW50czp0aGlzLndheXBvaW50c3x8W10sZXJyb3I6YS5lcnJvcixjYWxsYmFjazpmdW5jdGlvbigpe2Iucm91dGU9ZVswXSxhLmNhbGxiYWNrJiZhLmNhbGxiYWNrLmNhbGwoYil9fSl9LGouUm91dGUucHJvdG90eXBlLmJhY2s9ZnVuY3Rpb24oKXtpZih0aGlzLnN0ZXBfY291bnQ+MCl7dGhpcy5zdGVwX2NvdW50LS07dmFyIGE9dGhpcy5yb3V0ZS5sZWdzWzBdLnN0ZXBzW3RoaXMuc3RlcF9jb3VudF0ucGF0aDtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiZ0aGlzLnBvbHlsaW5lLnBvcCgpfX0sai5Sb3V0ZS5wcm90b3R5cGUuZm9yd2FyZD1mdW5jdGlvbigpe2lmKHRoaXMuc3RlcF9jb3VudDx0aGlzLnN0ZXBzX2xlbmd0aCl7dmFyIGE9dGhpcy5yb3V0ZS5sZWdzWzBdLnN0ZXBzW3RoaXMuc3RlcF9jb3VudF0ucGF0aDtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiZ0aGlzLnBvbHlsaW5lLnB1c2goYVtiXSk7dGhpcy5zdGVwX2NvdW50Kyt9fSxqLnByb3RvdHlwZS5jaGVja0dlb2ZlbmNlPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYy5jb250YWluc0xhdExuZyhuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKGEsYikpfSxqLnByb3RvdHlwZS5jaGVja01hcmtlckdlb2ZlbmNlPWZ1bmN0aW9uKGEsYil7aWYoYS5mZW5jZXMpZm9yKHZhciBjLGQ9MDtjPWEuZmVuY2VzW2RdO2QrKyl7dmFyIGU9YS5nZXRQb3NpdGlvbigpO3RoaXMuY2hlY2tHZW9mZW5jZShlLmxhdCgpLGUubG5nKCksYyl8fGIoYSxjKX19LGoucHJvdG90eXBlLnRvSW1hZ2U9ZnVuY3Rpb24oYSl7dmFyIGE9YXx8e30sYj17fTtpZihiLnNpemU9YS5zaXplfHxbdGhpcy5lbC5jbGllbnRXaWR0aCx0aGlzLmVsLmNsaWVudEhlaWdodF0sYi5sYXQ9dGhpcy5nZXRDZW50ZXIoKS5sYXQoKSxiLmxuZz10aGlzLmdldENlbnRlcigpLmxuZygpLHRoaXMubWFya2Vycy5sZW5ndGg+MCl7Yi5tYXJrZXJzPVtdO2Zvcih2YXIgYz0wO2M8dGhpcy5tYXJrZXJzLmxlbmd0aDtjKyspYi5tYXJrZXJzLnB1c2goe2xhdDp0aGlzLm1hcmtlcnNbY10uZ2V0UG9zaXRpb24oKS5sYXQoKSxsbmc6dGhpcy5tYXJrZXJzW2NdLmdldFBvc2l0aW9uKCkubG5nKCl9KX1pZih0aGlzLnBvbHlsaW5lcy5sZW5ndGg+MCl7dmFyIGQ9dGhpcy5wb2x5bGluZXNbMF07Yi5wb2x5bGluZT17fSxiLnBvbHlsaW5lLnBhdGg9Z29vZ2xlLm1hcHMuZ2VvbWV0cnkuZW5jb2RpbmcuZW5jb2RlUGF0aChkLmdldFBhdGgoKSksYi5wb2x5bGluZS5zdHJva2VDb2xvcj1kLnN0cm9rZUNvbG9yLGIucG9seWxpbmUuc3Ryb2tlT3BhY2l0eT1kLnN0cm9rZU9wYWNpdHksYi5wb2x5bGluZS5zdHJva2VXZWlnaHQ9ZC5zdHJva2VXZWlnaHR9cmV0dXJuIGouc3RhdGljTWFwVVJMKGIpfSxqLnN0YXRpY01hcFVSTD1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEsYil7aWYoIiMiPT09YVswXSYmKGE9YS5yZXBsYWNlKCIjIiwiMHgiKSxiKSl7aWYoYj1wYXJzZUZsb2F0KGIpLGI9TWF0aC5taW4oMSxNYXRoLm1heChiLDApKSwwPT09YilyZXR1cm4iMHgwMDAwMDAwMCI7Yj0oMjU1KmIpLnRvU3RyaW5nKDE2KSwxPT09Yi5sZW5ndGgmJihiKz1iKSxhPWEuc2xpY2UoMCw4KStifXJldHVybiBhfXZhciBjLGQ9W10sZT0oImZpbGU6Ij09PWxvY2F0aW9uLnByb3RvY29sPyJodHRwOiI6bG9jYXRpb24ucHJvdG9jb2wpKyIvL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwIjthLnVybCYmKGU9YS51cmwsZGVsZXRlIGEudXJsKSxlKz0iPyI7dmFyIGY9YS5tYXJrZXJzO2RlbGV0ZSBhLm1hcmtlcnMsIWYmJmEubWFya2VyJiYoZj1bYS5tYXJrZXJdLGRlbGV0ZSBhLm1hcmtlcik7dmFyIGc9YS5zdHlsZXM7ZGVsZXRlIGEuc3R5bGVzO3ZhciBoPWEucG9seWxpbmU7aWYoZGVsZXRlIGEucG9seWxpbmUsYS5jZW50ZXIpZC5wdXNoKCJjZW50ZXI9IithLmNlbnRlciksZGVsZXRlIGEuY2VudGVyO2Vsc2UgaWYoYS5hZGRyZXNzKWQucHVzaCgiY2VudGVyPSIrYS5hZGRyZXNzKSxkZWxldGUgYS5hZGRyZXNzO2Vsc2UgaWYoYS5sYXQpZC5wdXNoKFsiY2VudGVyPSIsYS5sYXQsIiwiLGEubG5nXS5qb2luKCIiKSksZGVsZXRlIGEubGF0LGRlbGV0ZSBhLmxuZztlbHNlIGlmKGEudmlzaWJsZSl7dmFyIGk9ZW5jb2RlVVJJKGEudmlzaWJsZS5qb2luKCJ8IikpO2QucHVzaCgidmlzaWJsZT0iK2kpfXZhciBqPWEuc2l6ZTtqPyhqLmpvaW4mJihqPWouam9pbigieCIpKSxkZWxldGUgYS5zaXplKTpqPSI2MzB4MzAwIixkLnB1c2goInNpemU9IitqKSxhLnpvb218fGEuem9vbT09PSExfHwoYS56b29tPTE1KTt2YXIgaz1hLmhhc093blByb3BlcnR5KCJzZW5zb3IiKT8hIWEuc2Vuc29yOiEwO2RlbGV0ZSBhLnNlbnNvcixkLnB1c2goInNlbnNvcj0iK2spO2Zvcih2YXIgbCBpbiBhKWEuaGFzT3duUHJvcGVydHkobCkmJmQucHVzaChsKyI9IithW2xdKTtpZihmKWZvcih2YXIgbSxuLG89MDtjPWZbb107bysrKXttPVtdLGMuc2l6ZSYmIm5vcm1hbCIhPT1jLnNpemU/KG0ucHVzaCgic2l6ZToiK2Muc2l6ZSksZGVsZXRlIGMuc2l6ZSk6Yy5pY29uJiYobS5wdXNoKCJpY29uOiIrZW5jb2RlVVJJKGMuaWNvbikpLGRlbGV0ZSBjLmljb24pLGMuY29sb3ImJihtLnB1c2goImNvbG9yOiIrYy5jb2xvci5yZXBsYWNlKCIjIiwiMHgiKSksZGVsZXRlIGMuY29sb3IpLGMubGFiZWwmJihtLnB1c2goImxhYmVsOiIrYy5sYWJlbFswXS50b1VwcGVyQ2FzZSgpKSxkZWxldGUgYy5sYWJlbCksbj1jLmFkZHJlc3M/Yy5hZGRyZXNzOmMubGF0KyIsIitjLmxuZyxkZWxldGUgYy5hZGRyZXNzLGRlbGV0ZSBjLmxhdCxkZWxldGUgYy5sbmc7Zm9yKHZhciBsIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShsKSYmbS5wdXNoKGwrIjoiK2NbbF0pO20ubGVuZ3RofHwwPT09bz8obS5wdXNoKG4pLG09bS5qb2luKCJ8IiksZC5wdXNoKCJtYXJrZXJzPSIrZW5jb2RlVVJJKG0pKSk6KG09ZC5wb3AoKStlbmNvZGVVUkkoInwiK24pLGQucHVzaChtKSl9aWYoZylmb3IodmFyIG89MDtvPGcubGVuZ3RoO28rKyl7dmFyIHA9W107Z1tvXS5mZWF0dXJlVHlwZSYmcC5wdXNoKCJmZWF0dXJlOiIrZ1tvXS5mZWF0dXJlVHlwZS50b0xvd2VyQ2FzZSgpKSxnW29dLmVsZW1lbnRUeXBlJiZwLnB1c2goImVsZW1lbnQ6IitnW29dLmVsZW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkpO2Zvcih2YXIgcT0wO3E8Z1tvXS5zdHlsZXJzLmxlbmd0aDtxKyspZm9yKHZhciByIGluIGdbb10uc3R5bGVyc1txXSl7dmFyIHM9Z1tvXS5zdHlsZXJzW3FdW3JdOygiaHVlIj09cnx8ImNvbG9yIj09cikmJihzPSIweCIrcy5zdWJzdHJpbmcoMSkpLHAucHVzaChyKyI6IitzKX12YXIgdD1wLmpvaW4oInwiKTsiIiE9dCYmZC5wdXNoKCJzdHlsZT0iK3QpfWlmKGgpe2lmKGM9aCxoPVtdLGMuc3Ryb2tlV2VpZ2h0JiZoLnB1c2goIndlaWdodDoiK3BhcnNlSW50KGMuc3Ryb2tlV2VpZ2h0LDEwKSksYy5zdHJva2VDb2xvcil7dmFyIHU9YihjLnN0cm9rZUNvbG9yLGMuc3Ryb2tlT3BhY2l0eSk7aC5wdXNoKCJjb2xvcjoiK3UpfWlmKGMuZmlsbENvbG9yKXt2YXIgdj1iKGMuZmlsbENvbG9yLGMuZmlsbE9wYWNpdHkpO2gucHVzaCgiZmlsbGNvbG9yOiIrdil9dmFyIHc9Yy5wYXRoO2lmKHcuam9pbilmb3IodmFyIHgscT0wO3g9d1txXTtxKyspaC5wdXNoKHguam9pbigiLCIpKTtlbHNlIGgucHVzaCgiZW5jOiIrdyk7aD1oLmpvaW4oInwiKSxkLnB1c2goInBhdGg9IitlbmNvZGVVUkkoaCkpfXZhciB5PXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3JldHVybiBkLnB1c2goInNjYWxlPSIreSksZD1kLmpvaW4oIiYiKSxlK2R9LGoucHJvdG90eXBlLmFkZE1hcFR5cGU9ZnVuY3Rpb24oYSxiKXtpZighYi5oYXNPd25Qcm9wZXJ0eSgiZ2V0VGlsZVVybCIpfHwiZnVuY3Rpb24iIT10eXBlb2YgYi5nZXRUaWxlVXJsKXRocm93IidnZXRUaWxlVXJsJyBmdW5jdGlvbiByZXF1aXJlZC4iO2IudGlsZVNpemU9Yi50aWxlU2l6ZXx8bmV3IGdvb2dsZS5tYXBzLlNpemUoMjU2LDI1Nik7dmFyIGM9bmV3IGdvb2dsZS5tYXBzLkltYWdlTWFwVHlwZShiKTt0aGlzLm1hcC5tYXBUeXBlcy5zZXQoYSxjKX0sai5wcm90b3R5cGUuYWRkT3ZlcmxheU1hcFR5cGU9ZnVuY3Rpb24oYSl7aWYoIWEuaGFzT3duUHJvcGVydHkoImdldFRpbGUiKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuZ2V0VGlsZSl0aHJvdyInZ2V0VGlsZScgZnVuY3Rpb24gcmVxdWlyZWQuIjt2YXIgYj1hLmluZGV4O2RlbGV0ZSBhLmluZGV4LHRoaXMubWFwLm92ZXJsYXlNYXBUeXBlcy5pbnNlcnRBdChiLGEpfSxqLnByb3RvdHlwZS5yZW1vdmVPdmVybGF5TWFwVHlwZT1mdW5jdGlvbihhKXt0aGlzLm1hcC5vdmVybGF5TWFwVHlwZXMucmVtb3ZlQXQoYSl9LGoucHJvdG90eXBlLmFkZFN0eWxlPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBnb29nbGUubWFwcy5TdHlsZWRNYXBUeXBlKGEuc3R5bGVzLHtuYW1lOmEuc3R5bGVkTWFwTmFtZX0pO3RoaXMubWFwLm1hcFR5cGVzLnNldChhLm1hcFR5cGVJZCxiKX0sai5wcm90b3R5cGUuc2V0U3R5bGU9ZnVuY3Rpb24oYSl7dGhpcy5tYXAuc2V0TWFwVHlwZUlkKGEpfSxqLnByb3RvdHlwZS5jcmVhdGVQYW5vcmFtYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmEuaGFzT3duUHJvcGVydHkoImxuZyIpfHwoYS5sYXQ9dGhpcy5nZXRDZW50ZXIoKS5sYXQoKSxhLmxuZz10aGlzLmdldENlbnRlcigpLmxuZygpKSx0aGlzLnBhbm9yYW1hPWouY3JlYXRlUGFub3JhbWEoYSksdGhpcy5tYXAuc2V0U3RyZWV0Vmlldyh0aGlzLnBhbm9yYW1hKSx0aGlzLnBhbm9yYW1hfSxqLmNyZWF0ZVBhbm9yYW1hPWZ1bmN0aW9uKGIpe3ZhciBjPWgoYi5lbCxiLmNvbnRleHQpO2IucG9zaXRpb249bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhiLmxhdCxiLmxuZyksZGVsZXRlIGIuZWwsZGVsZXRlIGIuY29udGV4dCxkZWxldGUgYi5sYXQsZGVsZXRlIGIubG5nO2Zvcih2YXIgZD1bImNsb3NlY2xpY2siLCJsaW5rc19jaGFuZ2VkIiwicGFub19jaGFuZ2VkIiwicG9zaXRpb25fY2hhbmdlZCIsInBvdl9jaGFuZ2VkIiwicmVzaXplIiwidmlzaWJsZV9jaGFuZ2VkIl0sZT1hKHt2aXNpYmxlOiEwfSxiKSxmPTA7ZjxkLmxlbmd0aDtmKyspZGVsZXRlIGVbZFtmXV07Zm9yKHZhciBnPW5ldyBnb29nbGUubWFwcy5TdHJlZXRWaWV3UGFub3JhbWEoYyxlKSxmPTA7ZjxkLmxlbmd0aDtmKyspIWZ1bmN0aW9uKGEsYyl7YltjXSYmZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoYSxjLGZ1bmN0aW9uKCl7YltjXS5hcHBseSh0aGlzKX0pfShnLGRbZl0pO3JldHVybiBnfSxqLnByb3RvdHlwZS5vbj1mdW5jdGlvbihhLGIpe3JldHVybiBqLm9uKGEsdGhpcyxiKX0sai5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKGEpe2oub2ZmKGEsdGhpcyl9LGouY3VzdG9tX2V2ZW50cz1bIm1hcmtlcl9hZGRlZCIsIm1hcmtlcl9yZW1vdmVkIiwicG9seWxpbmVfYWRkZWQiLCJwb2x5bGluZV9yZW1vdmVkIiwicG9seWdvbl9hZGRlZCIsInBvbHlnb25fcmVtb3ZlZCIsImdlb2xvY2F0ZWQiLCJnZW9sb2NhdGlvbl9mYWlsZWQiXSxqLm9uPWZ1bmN0aW9uKGEsYixjKXtpZigtMT09ai5jdXN0b21fZXZlbnRzLmluZGV4T2YoYSkpcmV0dXJuIGIgaW5zdGFuY2VvZiBqJiYoYj1iLm1hcCksZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoYixhLGMpO3ZhciBkPXtoYW5kbGVyOmMsZXZlbnROYW1lOmF9O3JldHVybiBiLnJlZ2lzdGVyZWRfZXZlbnRzW2FdPWIucmVnaXN0ZXJlZF9ldmVudHNbYV18fFtdLGIucmVnaXN0ZXJlZF9ldmVudHNbYV0ucHVzaChkKSxkfSxqLm9mZj1mdW5jdGlvbihhLGIpey0xPT1qLmN1c3RvbV9ldmVudHMuaW5kZXhPZihhKT8oYiBpbnN0YW5jZW9mIGomJihiPWIubWFwKSxnb29nbGUubWFwcy5ldmVudC5jbGVhckxpc3RlbmVycyhiLGEpKTpiLnJlZ2lzdGVyZWRfZXZlbnRzW2FdPVtdfSxqLmZpcmU9ZnVuY3Rpb24oYSxiLGMpe2lmKC0xPT1qLmN1c3RvbV9ldmVudHMuaW5kZXhPZihhKSlnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGIsYSxBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzKS5zbGljZSgyKSk7ZWxzZSBpZihhIGluIGMucmVnaXN0ZXJlZF9ldmVudHMpZm9yKHZhciBkPWMucmVnaXN0ZXJlZF9ldmVudHNbYV0sZT0wO2U8ZC5sZW5ndGg7ZSsrKSFmdW5jdGlvbihhLGIsYyl7YS5hcHBseShiLFtjXSl9KGRbZV0uaGFuZGxlcixjLGIpfSxqLmdlb2xvY2F0ZT1mdW5jdGlvbihhKXt2YXIgYj1hLmFsd2F5c3x8YS5jb21wbGV0ZTtuYXZpZ2F0b3IuZ2VvbG9jYXRpb24/bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihjKXthLnN1Y2Nlc3MoYyksYiYmYigpfSxmdW5jdGlvbihjKXthLmVycm9yKGMpLGImJmIoKX0sYS5vcHRpb25zKTooYS5ub3Rfc3VwcG9ydGVkKCksYiYmYigpKX0sai5nZW9jb2RlPWZ1bmN0aW9uKGEpe3RoaXMuZ2VvY29kZXI9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyO3ZhciBiPWEuY2FsbGJhY2s7YS5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmEuaGFzT3duUHJvcGVydHkoImxuZyIpJiYoYS5sYXRMbmc9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhhLmxhdCxhLmxuZykpLGRlbGV0ZSBhLmxhdCxkZWxldGUgYS5sbmcsZGVsZXRlIGEuY2FsbGJhY2ssdGhpcy5nZW9jb2Rlci5nZW9jb2RlKGEsZnVuY3Rpb24oYSxjKXtiKGEsYyl9KX0sZ29vZ2xlLm1hcHMuUG9seWdvbi5wcm90b3R5cGUuZ2V0Qm91bmRzfHwoZ29vZ2xlLm1hcHMuUG9seWdvbi5wcm90b3R5cGUuZ2V0Qm91bmRzPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMsZD10aGlzLmdldFBhdGhzKCksZT0wO2U8ZC5nZXRMZW5ndGgoKTtlKyspe2I9ZC5nZXRBdChlKTtmb3IodmFyIGY9MDtmPGIuZ2V0TGVuZ3RoKCk7ZisrKWMuZXh0ZW5kKGIuZ2V0QXQoZikpfXJldHVybiBjfSksZ29vZ2xlLm1hcHMuUG9seWdvbi5wcm90b3R5cGUuY29udGFpbnNMYXRMbmd8fChnb29nbGUubWFwcy5Qb2x5Z29uLnByb3RvdHlwZS5jb250YWluc0xhdExuZz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmdldEJvdW5kcygpO2lmKG51bGwhPT1iJiYhYi5jb250YWlucyhhKSlyZXR1cm4hMTtmb3IodmFyIGM9ITEsZD10aGlzLmdldFBhdGhzKCkuZ2V0TGVuZ3RoKCksZT0wO2Q+ZTtlKyspZm9yKHZhciBmPXRoaXMuZ2V0UGF0aHMoKS5nZXRBdChlKSxnPWYuZ2V0TGVuZ3RoKCksaD1nLTEsaT0wO2c+aTtpKyspe3ZhciBqPWYuZ2V0QXQoaSksaz1mLmdldEF0KGgpOyhqLmxuZygpPGEubG5nKCkmJmsubG5nKCk+PWEubG5nKCl8fGsubG5nKCk8YS5sbmcoKSYmai5sbmcoKT49YS5sbmcoKSkmJmoubGF0KCkrKGEubG5nKCktai5sbmcoKSkvKGsubG5nKCktai5sbmcoKSkqKGsubGF0KCktai5sYXQoKSk8YS5sYXQoKSYmKGM9IWMpLGg9aX1yZXR1cm4gY30pLGdvb2dsZS5tYXBzLkNpcmNsZS5wcm90b3R5cGUuY29udGFpbnNMYXRMbmd8fChnb29nbGUubWFwcy5DaXJjbGUucHJvdG90eXBlLmNvbnRhaW5zTGF0TG5nPWZ1bmN0aW9uKGEpe3JldHVybiBnb29nbGUubWFwcy5nZW9tZXRyeT9nb29nbGUubWFwcy5nZW9tZXRyeS5zcGhlcmljYWwuY29tcHV0ZURpc3RhbmNlQmV0d2Vlbih0aGlzLmdldENlbnRlcigpLGEpPD10aGlzLmdldFJhZGl1cygpOiEwfSksZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzLnByb3RvdHlwZS5jb250YWluc0xhdExuZz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5jb250YWlucyhhKX0sZ29vZ2xlLm1hcHMuTWFya2VyLnByb3RvdHlwZS5zZXRGZW5jZXM9ZnVuY3Rpb24oYSl7dGhpcy5mZW5jZXM9YX0sZ29vZ2xlLm1hcHMuTWFya2VyLnByb3RvdHlwZS5hZGRGZW5jZT1mdW5jdGlvbihhKXt0aGlzLmZlbmNlcy5wdXNoKGEpfSxnb29nbGUubWFwcy5NYXJrZXIucHJvdG90eXBlLmdldElkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nbV9pZH0sQXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChBcnJheS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhKXtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3I7dmFyIGI9T2JqZWN0KHRoaXMpLGM9Yi5sZW5ndGg+Pj4wO2lmKDA9PT1jKXJldHVybi0xO3ZhciBkPTA7aWYoYXJndW1lbnRzLmxlbmd0aD4xJiYoZD1OdW1iZXIoYXJndW1lbnRzWzFdKSxkIT1kP2Q9MDowIT1kJiZkIT0xLzAmJmQhPS0oMS8wKSYmKGQ9KGQ+MHx8LTEpKk1hdGguZmxvb3IoTWF0aC5hYnMoZCkpKSksZD49YylyZXR1cm4tMTtmb3IodmFyIGU9ZD49MD9kOk1hdGgubWF4KGMtTWF0aC5hYnMoZCksMCk7Yz5lO2UrKylpZihlIGluIGImJmJbZV09PT1hKXJldHVybiBlO3JldHVybi0xfSksan0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z21hcHMubWluLmpzLm1hcA=="}},"time_used":42,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":40,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/9df3b67b6061ea9e.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.415Z","timestamp":1785126646415,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/9df3b67b6061ea9e.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 7738052\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"9df3b67b6061ea9e.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com https://vitals.vercel-insights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"c678a91c2c6476c2f4253bbb2f68861b\"\r\nlast-modified: Tue, 28 Apr 2026 14:50:57 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/9df3b67b6061ea9e.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::qglf9-1777388594160-6b3c36de26cf\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=lfw0%2BEPdrGlPHtxJ%2FTX6DoDY95UqKr9N%2BR%2BFOJy%2FLt8v1uPASP6ZmPlQ%2FBrNuKpnS2mSm%2FkOALyIf0ncdToIAyNyHqtKOotS32QKFw0%2FAVefxL4gB%2FeCYoLyqXmb\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e9241ff52efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":33297,"size_decoded":9781,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (19585)","md5":"c678a91c2c6476c2f4253bbb2f68861b","sha1":"69b7933df2474b5a89bafec3ed00c63e7a38fd6c","sha256":"ee32b6de09c560980545699191b3ba6ebd9847bba1e07b95f5a5ddf359bfc353","sha512":"f3ae2a1ace9a1a1c354782702e328db28abd4864d69e33e7e6e72cc82ce93e5142093752a6b82a5d21f62e953ed27f5101956c00407e5d2d9527eb36435d1584","ssdeep":"384:EjUDGGRCRvBrTfIVZ/X+0o3NkOG4+Z47auBSwTNGFJl:4vB/8Z/X+0o3KZzZ47auJG","tlshash":"dce2c7b572d5faa2139340f0c83f2017f2784c7521ac7460a7e4cc9b765888da6bafd9","first_seen":"2026-02-04T14:24:19.872146Z","last_seen":"2026-07-27T08:07:37.349541Z","times_seen":1737,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDQxMDYyLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJJbnZhcmlhbnRFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7Y2xhc3MgbiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoYEludmFyaWFudDogJHtlLmVuZHNXaXRoKCIuIik/ZTplKyIuIn0gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLmAsdCksdGhpcy5uYW1lPSJJbnZhcmlhbnRFcnJvciJ9fX0sODQwODIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0JhaWxvdXRUb0NTUkVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGlzQmFpbG91dFRvQ1NSRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz0iQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkciO2NsYXNzIGkgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihgQmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nOiAke2V9YCksdGhpcy5yZWFzb249ZSx0aGlzLmRpZ2VzdD1vfX1mdW5jdGlvbiB1KGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJkaWdlc3QiaW4gZSYmZS5kaWdlc3Q9PT1vfX0sNTMxMzMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0hUVFBBY2Nlc3NFcnJvclN0YXR1czpmdW5jdGlvbigpe3JldHVybiBvfSxIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1czpmdW5jdGlvbigpe3JldHVybiBkfSxnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gY30saXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcjpmdW5jdGlvbigpe3JldHVybiBzfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBvPXtOT1RfRk9VTkQ6NDA0LEZPUkJJRERFTjo0MDMsVU5BVVRIT1JJWkVEOjQwMX0saT1uZXcgU2V0KE9iamVjdC52YWx1ZXMobykpLHU9Ik5FWFRfSFRUUF9FUlJPUl9GQUxMQkFDSyI7ZnVuY3Rpb24gcyhlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwhKCJkaWdlc3QiaW4gZSl8fCJzdHJpbmciIT10eXBlb2YgZS5kaWdlc3QpcmV0dXJuITE7bGV0W3Qscl09ZS5kaWdlc3Quc3BsaXQoIjsiKTtyZXR1cm4gdD09PXUmJmkuaGFzKE51bWJlcihyKSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gTnVtYmVyKGUuZGlnZXN0LnNwbGl0KCI7IilbMV0pfWZ1bmN0aW9uIGQoZSl7c3dpdGNoKGUpe2Nhc2UgNDAxOnJldHVybiJ1bmF1dGhvcml6ZWQiO2Nhc2UgNDAzOnJldHVybiJmb3JiaWRkZW4iO2Nhc2UgNDA0OnJldHVybiJub3QtZm91bmQiO2RlZmF1bHQ6cmV0dXJufX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw0OTg0MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiaXNOZXh0Um91dGVyRXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCBuPWUucig1MzEzMyksYT1lLnIoOTA4NjIpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKDAsYS5pc1JlZGlyZWN0RXJyb3IpKGUpfHwoMCxuLmlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpKGUpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDM5Mjc1LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7Y2xhc3MgbiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIk1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMiKX19Y2xhc3MgYSBleHRlbmRzIFVSTFNlYXJjaFBhcmFtc3thcHBlbmQoKXt0aHJvdyBuZXcgbn1kZWxldGUoKXt0aHJvdyBuZXcgbn1zZXQoKXt0aHJvdyBuZXcgbn1zb3J0KCl7dGhyb3cgbmV3IG59fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDMxODk5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtOYXZpZ2F0aW9uUHJvbWlzZXNDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFBhdGhQYXJhbXNDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFBhdGhuYW1lQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBzfSxSZWFkb25seVVSTFNlYXJjaFBhcmFtczpmdW5jdGlvbigpe3JldHVybiBpLlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zfSxTZWFyY2hQYXJhbXNDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGNyZWF0ZURldlRvb2xzSW5zdHJ1bWVudGVkUHJvbWlzZTpmdW5jdGlvbigpe3JldHVybiBsfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBvPWUucig3NTIwMSksaT1lLnIoMzkyNzUpLHU9KDAsby5jcmVhdGVDb250ZXh0KShudWxsKSxzPSgwLG8uY3JlYXRlQ29udGV4dCkobnVsbCksYz0oMCxvLmNyZWF0ZUNvbnRleHQpKG51bGwpLGQ9KDAsby5jcmVhdGVDb250ZXh0KShudWxsKTtmdW5jdGlvbiBsKGUsdCl7bGV0IHI9UHJvbWlzZS5yZXNvbHZlKHQpO3JldHVybiByLnN0YXR1cz0iZnVsZmlsbGVkIixyLnZhbHVlPXQsci5kaXNwbGF5TmFtZT1gJHtlfSAoU1NSKWAscn19LDMzOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwid29ya1VuaXRBc3luY1N0b3JhZ2VJbnN0YW5jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49KDAsZS5yKDQ5MjExKS5jcmVhdGVBc3luY0xvY2FsU3RvcmFnZSkoKX0sMTI5NjUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2dldENhY2hlU2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGdldERyYWZ0TW9kZVByb3ZpZGVyRm9yQ2FjaGVTY29wZTpmdW5jdGlvbigpe3JldHVybiBtfSxnZXRIbXJSZWZyZXNoSGFzaDpmdW5jdGlvbigpe3JldHVybiBmfSxnZXRQcmVyZW5kZXJSZXN1bWVEYXRhQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZ2V0UmVuZGVyUmVzdW1lRGF0YUNhY2hlOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGdldFJ1bnRpbWVTdGFnZVByb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sZ2V0U2VydmVyQ29tcG9uZW50c0htckNhY2hlOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGlzSG1yUmVmcmVzaDpmdW5jdGlvbigpe3JldHVybiBwfSx0aHJvd0Zvck1pc3NpbmdSZXF1ZXN0U3RvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gc30sdGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sd29ya1VuaXRBc3luY1N0b3JhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gby53b3JrVW5pdEFzeW5jU3RvcmFnZUluc3RhbmNlfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBvPWUucigzMzkpLGk9ZS5yKDM0NjQxKSx1PWUucig0MTA2Mik7ZnVuY3Rpb24gcyhlKXt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYFxgJHtlfVxgIHdhcyBjYWxsZWQgb3V0c2lkZSBhIHJlcXVlc3Qgc2NvcGUuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1keW5hbWljLWFwaS13cm9uZy1jb250ZXh0YCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUyNTEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gYygpe3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgdS5JbnZhcmlhbnRFcnJvcigiRXhwZWN0ZWQgd29ya1VuaXRBc3luY1N0b3JhZ2UgdG8gaGF2ZSBhIHN0b3JlLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNjk2IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfWZ1bmN0aW9uIGQoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpyZXR1cm4gZS5wcmVyZW5kZXJSZXN1bWVEYXRhQ2FjaGU7Y2FzZSJyZXF1ZXN0IjppZihlLnByZXJlbmRlclJlc3VtZURhdGFDYWNoZSlyZXR1cm4gZS5wcmVyZW5kZXJSZXN1bWVEYXRhQ2FjaGU7Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIGwoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJyZXF1ZXN0IjpjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjppZihlLnJlbmRlclJlc3VtZURhdGFDYWNoZSlyZXR1cm4gZS5yZW5kZXJSZXN1bWVEYXRhQ2FjaGU7Y2FzZSJwcmVyZW5kZXItcHByIjpyZXR1cm4gZS5wcmVyZW5kZXJSZXN1bWVEYXRhQ2FjaGU/P251bGw7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIGYoZSx0KXtpZihlLmRldilzd2l0Y2godC50eXBlKXtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1ydW50aW1lIjpyZXR1cm4gdC5obXJSZWZyZXNoSGFzaDtjYXNlInJlcXVlc3QiOnZhciByO3JldHVybiBudWxsPT0ocj10LmNvb2tpZXMuZ2V0KGkuTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSkpP3ZvaWQgMDpyLnZhbHVlfX1mdW5jdGlvbiBwKGUsdCl7aWYoZS5kZXYpc3dpdGNoKHQudHlwZSl7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInJlcXVlc3QiOnJldHVybiB0LmlzSG1yUmVmcmVzaD8/ITF9cmV0dXJuITF9ZnVuY3Rpb24gaChlLHQpe2lmKGUuZGV2KXN3aXRjaCh0LnR5cGUpe2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gdC5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGV9fWZ1bmN0aW9uIG0oZSx0KXtpZihlLmlzRHJhZnRNb2RlKXN3aXRjaCh0LnR5cGUpe2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gdC5kcmFmdE1vZGV9fWZ1bmN0aW9uIHkoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIGUuY2FjaGVTaWduYWw7Y2FzZSJyZXF1ZXN0IjppZihlLmNhY2hlU2lnbmFsKXJldHVybiBlLmNhY2hlU2lnbmFsO2Nhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIGV9fWZ1bmN0aW9uIGIoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpyZXR1cm4gZS5ydW50aW1lU3RhZ2VQcm9taXNlO2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpjYXNlInJlcXVlc3QiOmNhc2UiY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnJldHVybiBudWxsO2RlZmF1bHQ6cmV0dXJuIGV9fX0sMTg0NjIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e1NlcnZlckluc2VydGVkSFRNTENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdXNlU2VydmVySW5zZXJ0ZWRIVE1MOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89ZS5yKDQ0MDY2KS5fKGUucig3NTIwMSkpLGk9by5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gdShlKXtsZXQgdD0oMCxvLnVzZUNvbnRleHQpKGkpO3QmJnQoZSl9fSw2NTk5NSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibm90Rm91bmQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCBuPWUucig1MzEzMyksYT1gJHtuLkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDA0YDtmdW5jdGlvbiBvKCl7bGV0IGU9T2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGEpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3Rocm93IGUuZGlnZXN0PWEsZX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNzc2MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImBmb3JiaWRkZW4oKWAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgZW5hYmxlZCB3aGVuIGBleHBlcmltZW50YWwuYXV0aEludGVycnVwdHNgIGlzIGVuYWJsZWQuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0ODgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJmb3JiaWRkZW4iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pLGUucig1MzEzMykuSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDc5NTM5LChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiYHVuYXV0aG9yaXplZCgpYCBpcyBleHBlcmltZW50YWwgYW5kIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIHdoZW4gYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c2AgaXMgZW5hYmxlZC4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTQxMSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVuYXV0aG9yaXplZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksZS5yKDUzMTMzKS5IVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUsKCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTg3ODIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVuc3RhYmxlX3JldGhyb3ciLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQpe2lmKCgwLGEuaXNOZXh0Um91dGVyRXJyb3IpKHQpfHwoMCxuLmlzQmFpbG91dFRvQ1NSRXJyb3IpKHQpKXRocm93IHQ7dCBpbnN0YW5jZW9mIEVycm9yJiYiY2F1c2UiaW4gdCYmZSh0LmNhdXNlKX19fSk7bGV0IG49ZS5yKDg0MDgyKSxhPWUucig0OTg0Myk7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTU1MDgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2lzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjpmdW5jdGlvbigpe3JldHVybiBvfSxtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTpmdW5jdGlvbigpe3JldHVybiBsfSxtYWtlSGFuZ2luZ1Byb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtmdW5jdGlvbiBvKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJkaWdlc3QiaW4gZSYmZS5kaWdlc3Q9PT1pfWxldCBpPSJIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OIjtjbGFzcyB1IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHt0fSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHt0fSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxgc2V0VGltZW91dFxgLCBcYGFmdGVyXGAsIG9yIHNpbWlsYXIgZnVuY3Rpb25zIHlvdSBtYXkgb2JzZXJ2ZSB0aGlzIGVycm9yIGFuZCB5b3Ugc2hvdWxkIGhhbmRsZSBpdCBpbiB0aGF0IGNvbnRleHQuIFRoaXMgb2NjdXJyZWQgYXQgcm91dGUgIiR7ZX0iLmApLHRoaXMucm91dGU9ZSx0aGlzLmV4cHJlc3Npb249dCx0aGlzLmRpZ2VzdD1pfX1sZXQgcz1uZXcgV2Vha01hcDtmdW5jdGlvbiBjKGUsdCxyKXtpZihlLmFib3J0ZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB1KHQscikpO3tsZXQgbj1uZXcgUHJvbWlzZSgobixhKT0+e2xldCBvPWEuYmluZChudWxsLG5ldyB1KHQscikpLGk9cy5nZXQoZSk7aWYoaSlpLnB1c2gobyk7ZWxzZXtsZXQgdD1bb107cy5zZXQoZSx0KSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKT0+e2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0oKX0se29uY2U6ITB9KX19KTtyZXR1cm4gbi5jYXRjaChkKSxufX1mdW5jdGlvbiBkKCl7fWZ1bmN0aW9uIGwoZSx0LHIpe3JldHVybiB0LnN0YWdlZFJlbmRlcmluZz90LnN0YWdlZFJlbmRlcmluZy5kZWxheVVudGlsU3RhZ2Uocix2b2lkIDAsZSk6bmV3IFByb21pc2UodD0+e3NldFRpbWVvdXQoKCk9Pnt0KGUpfSwwKX0pfX0sMTc1NTYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImlzUG9zdHBvbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPVN5bWJvbC5mb3IoInJlYWN0LnBvc3Rwb25lIik7ZnVuY3Rpb24gYShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09bn19LDkzMjEzLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtEeW5hbWljU2VydmVyRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gaX0saXNEeW5hbWljU2VydmVyRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz0iRFlOQU1JQ19TRVJWRVJfVVNBR0UiO2NsYXNzIGkgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihgRHluYW1pYyBzZXJ2ZXIgdXNhZ2U6ICR7ZX1gKSx0aGlzLmRlc2NyaXB0aW9uPWUsdGhpcy5kaWdlc3Q9b319ZnVuY3Rpb24gdShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYiZGlnZXN0ImluIGUmJiJzdHJpbmciPT10eXBlb2YgZS5kaWdlc3QmJmUuZGlnZXN0PT09b30oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNjQzMiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17U3RhdGljR2VuQmFpbG91dEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGlzU3RhdGljR2VuQmFpbG91dEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89Ik5FWFRfU1RBVElDX0dFTl9CQUlMT1VUIjtjbGFzcyBpIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5jb2RlPW99fWZ1bmN0aW9uIHUoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmImNvZGUiaW4gZSYmZS5jb2RlPT09b30oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1MzQ1OSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17TUVUQURBVEFfQk9VTkRBUllfTkFNRTpmdW5jdGlvbigpe3JldHVybiBvfSxPVVRMRVRfQk9VTkRBUllfTkFNRTpmdW5jdGlvbigpe3JldHVybiB1fSxST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6ZnVuY3Rpb24oKXtyZXR1cm4gaX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz0iX19uZXh0X21ldGFkYXRhX2JvdW5kYXJ5X18iLGk9Il9fbmV4dF92aWV3cG9ydF9ib3VuZGFyeV9fIix1PSJfX25leHRfb3V0bGV0X2JvdW5kYXJ5X18iLHM9Il9fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fIn0sMjQzODYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1lLmkoODI2MzcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT17YXRMZWFzdE9uZVRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc2NoZWR1bGVJbW1lZGlhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sc2NoZWR1bGVPbk5leHRUaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fTtmb3IodmFyIG8gaW4gYSlPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDphW29dfSk7bGV0IGk9ZT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntuLmRlZmF1bHQubmV4dFRpY2soZSl9KX0sdT1lPT57c2V0SW1tZWRpYXRlKGUpfTtmdW5jdGlvbiBzKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PnUoZSkpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0SW1tZWRpYXRlKGUpKX19LDY3NzgxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuLGEsbz17UG9zdHBvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gan0sUHJlbHVkZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gU30sYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBQfSxhY2Nlc3NlZER5bmFtaWNEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIE59LGFubm90YXRlRHluYW1pY0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBCfSxjb25zdW1lRHluYW1pY0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBJfSxjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBnfSxjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGNyZWF0ZUhhbmdpbmdJbnB1dEFib3J0U2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuICR9LGNyZWF0ZVJlbmRlckluQnJvd3NlckFib3J0U2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LGRlbGF5VW50aWxSdW50aW1lU3RhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gZXJ9LGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlczpmdW5jdGlvbigpe3JldHVybiBVfSxnZXRGaXJzdER5bmFtaWNSZWFzb246ZnVuY3Rpb24oKXtyZXR1cm4gRX0sZ2V0U3RhdGljU2hlbGxEaXNhbGxvd2VkRHluYW1pY1JlYXNvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gZXR9LGlzRHluYW1pY1Bvc3Rwb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcjpmdW5jdGlvbigpe3JldHVybiBrfSxsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIFF9LG1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWM6ZnVuY3Rpb24oKXtyZXR1cm4gUn0scG9zdHBvbmVXaXRoVHJhY2tpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sdGhyb3dJZkRpc2FsbG93ZWREeW5hbWljOmZ1bmN0aW9uKCl7cmV0dXJuIGVlfSx0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjpmdW5jdGlvbigpe3JldHVybiB2fSx0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gT30sdHJhY2tEeW5hbWljSG9sZUluUnVudGltZVNoZWxsOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LHRyYWNrRHluYW1pY0hvbGVJblN0YXRpY1NoZWxsOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHVzZUR5bmFtaWNSb3V0ZVBhcmFtczpmdW5jdGlvbigpe3JldHVybiBIfSx1c2VEeW5hbWljU2VhcmNoUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIFh9fTtmb3IodmFyIGkgaW4gbylPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLHtlbnVtZXJhYmxlOiEwLGdldDpvW2ldfSk7bGV0IHU9KG49ZS5yKDc1MjAxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LHM9ZS5yKDkzMjEzKSxjPWUucigxNjQzMiksZD1lLnIoMTI5NjUpLGw9ZS5yKDg5NzkxKSxmPWUucigxNTUwOCkscD1lLnIoNTM0NTkpLGg9ZS5yKDI0Mzg2KSxtPWUucig4NDA4MikseT1lLnIoNDEwNjIpLGI9ImZ1bmN0aW9uIj09dHlwZW9mIHUuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZTtmdW5jdGlvbiBnKGUpe3JldHVybntpc0RlYnVnRHluYW1pY0FjY2Vzc2VzOmUsZHluYW1pY0FjY2Vzc2VzOltdLHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6bnVsbH19ZnVuY3Rpb24gXygpe3JldHVybntoYXNTdXNwZW5zZUFib3ZlQm9keTohMSxoYXNEeW5hbWljTWV0YWRhdGE6ITEsZHluYW1pY01ldGFkYXRhOm51bGwsaGFzRHluYW1pY1ZpZXdwb3J0OiExLGhhc0FsbG93ZWREeW5hbWljOiExLGR5bmFtaWNFcnJvcnM6W119fWZ1bmN0aW9uIEUoZSl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PWUuZHluYW1pY0FjY2Vzc2VzWzBdKT92b2lkIDA6dC5leHByZXNzaW9ufWZ1bmN0aW9uIFIoZSx0LHIpe2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSJjYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpyZXR1cm59aWYoIWUuZm9yY2VEeW5hbWljJiYhZS5mb3JjZVN0YXRpYyl7aWYoZS5keW5hbWljU2hvdWxkRXJyb3IpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBjLlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgJHtlLnJvdXRlfSB3aXRoIFxgZHluYW1pYyA9ICJlcnJvciJcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcYCR7cn1cYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1NTMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7aWYodClzd2l0Y2godC50eXBlKXtjYXNlInByZXJlbmRlci1wcHIiOnJldHVybiBEKGUucm91dGUscix0LmR5bmFtaWNUcmFja2luZyk7Y2FzZSJwcmVyZW5kZXItbGVnYWN5Ijp0LnJldmFsaWRhdGU9MDtsZXQgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuRHluYW1pY1NlcnZlckVycm9yKGBSb3V0ZSAke2Uucm91dGV9IGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkICR7cn0uIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZHluYW1pYy1zZXJ2ZXItZXJyb3JgKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU1MCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTt0aHJvdyBlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uPXIsZS5keW5hbWljVXNhZ2VTdGFjaz1uLnN0YWNrLG59fX1mdW5jdGlvbiB2KGUsdCxyKXtsZXQgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuRHluYW1pY1NlcnZlckVycm9yKGBSb3V0ZSAke3Qucm91dGV9IGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkIFxgJHtlfVxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1NTgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7dGhyb3cgci5yZXZhbGlkYXRlPTAsdC5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbj1lLHQuZHluYW1pY1VzYWdlU3RhY2s9bi5zdGFjayxufWZ1bmN0aW9uIE8oZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJjYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpyZXR1cm59fWZ1bmN0aW9uIHcoZSx0LHIpe2xldCBuPUMoYFJvdXRlICR7ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7dH0uYCk7ci5jb250cm9sbGVyLmFib3J0KG4pO2xldCBhPXIuZHluYW1pY1RyYWNraW5nO2EmJmEuZHluYW1pY0FjY2Vzc2VzLnB1c2goe3N0YWNrOmEuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlcz9FcnJvcigpLnN0YWNrOnZvaWQgMCxleHByZXNzaW9uOnR9KX1mdW5jdGlvbiBQKGUsdCxyLG4pe2xldCBhPW4uZHluYW1pY1RyYWNraW5nO3coZSx0LG4pLGEmJm51bGw9PT1hLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2smJihhLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s9cil9ZnVuY3Rpb24gUyhlLHQscixuKXtpZighMT09PW4uY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCl7dyhlLHQsbik7bGV0IGE9bi5keW5hbWljVHJhY2tpbmc7YSYmbnVsbD09PWEuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayYmKGEuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaz1yKX10aHJvdyBDKGBSb3V0ZSAke2V9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke3R9LmApfWZ1bmN0aW9uIGooe3JlYXNvbjplLHJvdXRlOnR9KXtsZXQgcj1kLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7RCh0LGUsciYmInByZXJlbmRlci1wcHIiPT09ci50eXBlP3IuZHluYW1pY1RyYWNraW5nOm51bGwpfWZ1bmN0aW9uIEQoZSx0LHIpeyhmdW5jdGlvbigpe2lmKCFiKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiSW52YXJpYW50OiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSBpcyBub3QgZGVmaW5lZC4gVGhpcyBzdWdnZXN0cyB0aGUgd3JvbmcgdmVyc2lvbiBvZiBSZWFjdCB3YXMgbG9hZGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTIyNCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX0pKCksciYmci5keW5hbWljQWNjZXNzZXMucHVzaCh7c3RhY2s6ci5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzP0Vycm9yKCkuc3RhY2s6dm9pZCAwLGV4cHJlc3Npb246dH0pLHUuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZShUKGUsdCkpfWZ1bmN0aW9uIFQoZSx0KXtyZXR1cm5gUm91dGUgJHtlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHt0fS4gUmVhY3QgdGhyb3dzIHRoaXMgc3BlY2lhbCBvYmplY3QgdG8gaW5kaWNhdGUgd2hlcmUuIEl0IHNob3VsZCBub3QgYmUgY2F1Z2h0IGJ5IHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmB9ZnVuY3Rpb24geChlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYic3RyaW5nIj09dHlwZW9mIGUubWVzc2FnZSYmQShlLm1lc3NhZ2UpfWZ1bmN0aW9uIEEoZSl7cmV0dXJuIGUuaW5jbHVkZXMoIm5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCIpJiZlLmluY2x1ZGVzKCJMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yIil9aWYoITE9PT1BKFQoIiUlJSIsIl5eXiIpKSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludmFyaWFudDogaXNEeW5hbWljUG9zdHBvbmUgbWlzaWRlbnRpZmllZCBhIHBvc3Rwb25lIHJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUyOTYiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0IE09Ik5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEIjtmdW5jdGlvbiBDKGUpe2xldCB0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihlKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTM5NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gdC5kaWdlc3Q9TSx0fWZ1bmN0aW9uIGsoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS5kaWdlc3Q9PT1NJiYibmFtZSJpbiBlJiYibWVzc2FnZSJpbiBlJiZlIGluc3RhbmNlb2YgRXJyb3J9ZnVuY3Rpb24gTihlKXtyZXR1cm4gZS5sZW5ndGg+MH1mdW5jdGlvbiBJKGUsdCl7cmV0dXJuIGUuZHluYW1pY0FjY2Vzc2VzLnB1c2goLi4udC5keW5hbWljQWNjZXNzZXMpLGUuZHluYW1pY0FjY2Vzc2VzfWZ1bmN0aW9uIFUoZSl7cmV0dXJuIGUuZmlsdGVyKGU9PiJzdHJpbmciPT10eXBlb2YgZS5zdGFjayYmZS5zdGFjay5sZW5ndGg+MCkubWFwKCh7ZXhwcmVzc2lvbjplLHN0YWNrOnR9KT0+KHQ9dC5zcGxpdCgiXG4iKS5zbGljZSg0KS5maWx0ZXIoZT0+IShlLmluY2x1ZGVzKCJub2RlX21vZHVsZXMvbmV4dC8iKXx8ZS5pbmNsdWRlcygiICg8YW5vbnltb3VzPikiKXx8ZS5pbmNsdWRlcygiIChub2RlOiIpKSkuam9pbigiXG4iKSxgRHluYW1pYyBBUEkgVXNhZ2UgRGVidWcgLSAke2V9Ogoke3R9YCkpfWZ1bmN0aW9uIEwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyO3JldHVybiBlLmFib3J0KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgbS5CYWlsb3V0VG9DU1JFcnJvcigiUmVuZGVyIGluIEJyb3dzZXIiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTcyMSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSksZS5zaWduYWx9ZnVuY3Rpb24gJChlKXtzd2l0Y2goZS50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcjtpZihlLmNhY2hlU2lnbmFsKWUuY2FjaGVTaWduYWwuaW5wdXRSZWFkeSgpLnRoZW4oKCk9Pnt0LmFib3J0KCl9KTtlbHNle2xldCByPSgwLGQuZ2V0UnVudGltZVN0YWdlUHJvbWlzZSkoZSk7cj9yLnRoZW4oKCk9PigwLGguc2NoZWR1bGVPbk5leHRUaWNrKSgoKT0+dC5hYm9ydCgpKSk6KDAsaC5zY2hlZHVsZU9uTmV4dFRpY2spKCgpPT50LmFib3J0KCkpfXJldHVybiB0LnNpZ25hbDtjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpjYXNlInJlcXVlc3QiOmNhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6cmV0dXJufX1mdW5jdGlvbiBCKGUsdCl7bGV0IHI9dC5keW5hbWljVHJhY2tpbmc7ciYmci5keW5hbWljQWNjZXNzZXMucHVzaCh7c3RhY2s6ci5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzP0Vycm9yKCkuc3RhY2s6dm9pZCAwLGV4cHJlc3Npb246ZX0pfWZ1bmN0aW9uIEgoZSl7bGV0IHQ9bC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCkscj1kLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYodCYmcilzd2l0Y2goci50eXBlKXtjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyIjp7bGV0IG49ci5mYWxsYmFja1JvdXRlUGFyYW1zO24mJm4uc2l6ZT4wJiZ1LmRlZmF1bHQudXNlKCgwLGYubWFrZUhhbmdpbmdQcm9taXNlKShyLnJlbmRlclNpZ25hbCx0LnJvdXRlLGUpKTticmVha31jYXNlInByZXJlbmRlci1wcHIiOntsZXQgbj1yLmZhbGxiYWNrUm91dGVQYXJhbXM7aWYobiYmbi5zaXplPjApcmV0dXJuIEQodC5yb3V0ZSxlLHIuZHluYW1pY1RyYWNraW5nKTticmVha31jYXNlInByZXJlbmRlci1ydW50aW1lIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHkuSW52YXJpYW50RXJyb3IoYFxgJHtlfVxgIHdhcyBjYWxsZWQgZHVyaW5nIGEgcnVudGltZSBwcmVyZW5kZXIuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtlfSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc3MSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgeS5JbnZhcmlhbnRFcnJvcihgXGAke2V9XGAgd2FzIGNhbGxlZCBpbnNpZGUgYSBjYWNoZSBzY29wZS4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gc2VydmVyIGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzQ1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX1mdW5jdGlvbiBYKGUpe2xldCB0PWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpLHI9ZC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHQpc3dpdGNoKCFyJiYoMCxkLnRocm93Rm9yTWlzc2luZ1JlcXVlc3RTdG9yZSkoZSksci50eXBlKXtjYXNlInByZXJlbmRlci1jbGllbnQiOnUuZGVmYXVsdC51c2UoKDAsZi5tYWtlSGFuZ2luZ1Byb21pc2UpKHIucmVuZGVyU2lnbmFsLHQucm91dGUsZSkpO2JyZWFrO2Nhc2UicHJlcmVuZGVyLWxlZ2FjeSI6Y2FzZSJwcmVyZW5kZXItcHByIjppZih0LmZvcmNlU3RhdGljKXJldHVybjt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IG0uQmFpbG91dFRvQ1NSRXJyb3IoZSksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUzOTQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgeS5JbnZhcmlhbnRFcnJvcihgXGAke2V9XGAgd2FzIGNhbGxlZCBmcm9tIGEgU2VydmVyIENvbXBvbmVudC4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gc2VydmVyIGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzk1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UiY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyB5LkludmFyaWFudEVycm9yKGBcYCR7ZX1cYCB3YXMgY2FsbGVkIGluc2lkZSBhIGNhY2hlIHNjb3BlLiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBzZXJ2ZXIgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDUiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJyZXF1ZXN0IjpyZXR1cm59fWxldCBGPS9cblxzK2F0IFN1c3BlbnNlIFwoPGFub255bW91cz5cKS8sVz1SZWdFeHAoYFxcblxccythdCBTdXNwZW5zZSBcXCg8YW5vbnltb3VzPlxcKSg/Oig/IVxcblxccythdCAoPzpib2R5fGRpdnxtYWlufHNlY3Rpb258YXJ0aWNsZXxhc2lkZXxoZWFkZXJ8Zm9vdGVyfG5hdnxmb3JtfHB8c3BhbnxoMXxoMnxoM3xoNHxoNXxoNikgXFwoPGFub255bW91cz5cXCkpW1xcc1xcU10pKj9cXG5cXHMrYXQgJHtwLlJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUV9IFxcKFteXFxuXSpcXClgKSxxPVJlZ0V4cChgXFxuXFxzK2F0ICR7cC5NRVRBREFUQV9CT1VOREFSWV9OQU1FfVtcXG5cXHNdYCksRz1SZWdFeHAoYFxcblxccythdCAke3AuVklFV1BPUlRfQk9VTkRBUllfTkFNRX1bXFxuXFxzXWApLHo9UmVnRXhwKGBcXG5cXHMrYXQgJHtwLk9VVExFVF9CT1VOREFSWV9OQU1FfVtcXG5cXHNdYCk7ZnVuY3Rpb24gWShlLHQscixuKXtpZighei50ZXN0KHQpKXtpZihxLnRlc3QodCkpe3IuaGFzRHluYW1pY01ldGFkYXRhPSEwO3JldHVybn1pZihHLnRlc3QodCkpe3IuaGFzRHluYW1pY1ZpZXdwb3J0PSEwO3JldHVybn1pZihXLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITAsci5oYXNTdXNwZW5zZUFib3ZlQm9keT0hMDtyZXR1cm59ZWxzZSBpZihGLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITA7cmV0dXJufWVsc2V7aWYobi5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKXJldHVybiB2b2lkIHIuZHluYW1pY0Vycm9ycy5wdXNoKG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayk7bGV0IGE9SihgUm91dGUgIiR7ZS5yb3V0ZX0iOiBVbmNhY2hlZCBkYXRhIHdhcyBhY2Nlc3NlZCBvdXRzaWRlIG9mIDxTdXNwZW5zZT4uIFRoaXMgZGVsYXlzIHRoZSBlbnRpcmUgcGFnZSBmcm9tIHJlbmRlcmluZywgcmVzdWx0aW5nIGluIGEgc2xvdyB1c2VyIGV4cGVyaWVuY2UuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2Jsb2NraW5nLXJvdXRlYCx0KTtyZXR1cm4gdm9pZCByLmR5bmFtaWNFcnJvcnMucHVzaChhKX19fWZ1bmN0aW9uIFYoZSx0LHIsbil7aWYoIXoudGVzdCh0KSl7aWYocS50ZXN0KHQpKXtyLmR5bmFtaWNNZXRhZGF0YT1KKGBSb3V0ZSAiJHtlLnJvdXRlfSI6IFVuY2FjaGVkIGRhdGEgb3IgXGBjb25uZWN0aW9uKClcYCB3YXMgYWNjZXNzZWQgaW5zaWRlIFxgZ2VuZXJhdGVNZXRhZGF0YVxgLiBFeGNlcHQgZm9yIHRoaXMgaW5zdGFuY2UsIHRoZSBwYWdlIHdvdWxkIGhhdmUgYmVlbiBlbnRpcmVseSBwcmVyZW5kZXJhYmxlIHdoaWNoIG1heSBoYXZlIGJlZW4gdGhlIGludGVuZGVkIGJlaGF2aW9yLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgLHQpO3JldHVybn1pZihHLnRlc3QodCkpe2xldCBuPUooYFJvdXRlICIke2Uucm91dGV9IjogVW5jYWNoZWQgZGF0YSBvciBcYGNvbm5lY3Rpb24oKVxgIHdhcyBhY2Nlc3NlZCBpbnNpZGUgXGBnZW5lcmF0ZVZpZXdwb3J0XGAuIFRoaXMgZGVsYXlzIHRoZSBlbnRpcmUgcGFnZSBmcm9tIHJlbmRlcmluZywgcmVzdWx0aW5nIGluIGEgc2xvdyB1c2VyIGV4cGVyaWVuY2UuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtdmlld3BvcnRgLHQpO3IuZHluYW1pY0Vycm9ycy5wdXNoKG4pO3JldHVybn1pZihXLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITAsci5oYXNTdXNwZW5zZUFib3ZlQm9keT0hMDtyZXR1cm59ZWxzZSBpZihGLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITA7cmV0dXJufWVsc2V7aWYobi5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKXJldHVybiB2b2lkIHIuZHluYW1pY0Vycm9ycy5wdXNoKG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayk7bGV0IGE9SihgUm91dGUgIiR7ZS5yb3V0ZX0iOiBVbmNhY2hlZCBkYXRhIG9yIFxgY29ubmVjdGlvbigpXGAgd2FzIGFjY2Vzc2VkIG91dHNpZGUgb2YgXGA8U3VzcGVuc2U+XGAuIFRoaXMgZGVsYXlzIHRoZSBlbnRpcmUgcGFnZSBmcm9tIHJlbmRlcmluZywgcmVzdWx0aW5nIGluIGEgc2xvdyB1c2VyIGV4cGVyaWVuY2UuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2Jsb2NraW5nLXJvdXRlYCx0KTtyZXR1cm4gdm9pZCByLmR5bmFtaWNFcnJvcnMucHVzaChhKX19fWZ1bmN0aW9uIEsoZSx0LHIsbil7aWYoIXoudGVzdCh0KSl7aWYocS50ZXN0KHQpKXtyLmR5bmFtaWNNZXRhZGF0YT1KKGBSb3V0ZSAiJHtlLnJvdXRlfSI6IFJ1bnRpbWUgZGF0YSBzdWNoIGFzIFxgY29va2llcygpXGAsIFxgaGVhZGVycygpXGAsIFxgcGFyYW1zXGAsIG9yIFxgc2VhcmNoUGFyYW1zXGAgd2FzIGFjY2Vzc2VkIGluc2lkZSBcYGdlbmVyYXRlTWV0YWRhdGFcYCBvciB5b3UgaGF2ZSBmaWxlLWJhc2VkIG1ldGFkYXRhIHN1Y2ggYXMgaWNvbnMgdGhhdCBkZXBlbmQgb24gZHluYW1pYyBwYXJhbXMgc2VnbWVudHMuIEV4Y2VwdCBmb3IgdGhpcyBpbnN0YW5jZSwgdGhlIHBhZ2Ugd291bGQgaGF2ZSBiZWVuIGVudGlyZWx5IHByZXJlbmRlcmFibGUgd2hpY2ggbWF5IGhhdmUgYmVlbiB0aGUgaW50ZW5kZWQgYmVoYXZpb3IuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItZHluYW1pYy1tZXRhZGF0YWAsdCk7cmV0dXJufWlmKEcudGVzdCh0KSl7bGV0IG49SihgUm91dGUgIiR7ZS5yb3V0ZX0iOiBSdW50aW1lIGRhdGEgc3VjaCBhcyBcYGNvb2tpZXMoKVxgLCBcYGhlYWRlcnMoKVxgLCBcYHBhcmFtc1xgLCBvciBcYHNlYXJjaFBhcmFtc1xgIHdhcyBhY2Nlc3NlZCBpbnNpZGUgXGBnZW5lcmF0ZVZpZXdwb3J0XGAuIFRoaXMgZGVsYXlzIHRoZSBlbnRpcmUgcGFnZSBmcm9tIHJlbmRlcmluZywgcmVzdWx0aW5nIGluIGEgc2xvdyB1c2VyIGV4cGVyaWVuY2UuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtdmlld3BvcnRgLHQpO3IuZHluYW1pY0Vycm9ycy5wdXNoKG4pO3JldHVybn1pZihXLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITAsci5oYXNTdXNwZW5zZUFib3ZlQm9keT0hMDtyZXR1cm59ZWxzZSBpZihGLnRlc3QodCkpe3IuaGFzQWxsb3dlZER5bmFtaWM9ITA7cmV0dXJufWVsc2V7aWYobi5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKXJldHVybiB2b2lkIHIuZHluYW1pY0Vycm9ycy5wdXNoKG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayk7bGV0IGE9SihgUm91dGUgIiR7ZS5yb3V0ZX0iOiBSdW50aW1lIGRhdGEgc3VjaCBhcyBcYGNvb2tpZXMoKVxgLCBcYGhlYWRlcnMoKVxgLCBcYHBhcmFtc1xgLCBvciBcYHNlYXJjaFBhcmFtc1xgIHdhcyBhY2Nlc3NlZCBvdXRzaWRlIG9mIFxgPFN1c3BlbnNlPlxgLiBUaGlzIGRlbGF5cyB0aGUgZW50aXJlIHBhZ2UgZnJvbSByZW5kZXJpbmcsIHJlc3VsdGluZyBpbiBhIHNsb3cgdXNlciBleHBlcmllbmNlLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ibG9ja2luZy1yb3V0ZWAsdCk7cmV0dXJuIHZvaWQgci5keW5hbWljRXJyb3JzLnB1c2goYSl9fX1mdW5jdGlvbiBKKGUsdCl7bGV0IHI9T2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGUpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiByLnN0YWNrPXIubmFtZSsiOiAiK2UrdCxyfXZhciBaPSgoYT17fSlbYS5GdWxsPTBdPSJGdWxsIixhW2EuRW1wdHk9MV09IkVtcHR5IixhW2EuRXJyb3JlZD0yXT0iRXJyb3JlZCIsYSk7ZnVuY3Rpb24gUShlLHQpe2NvbnNvbGUuZXJyb3IodCksZS5kZXZ8fChlLmhhc1JlYWRhYmxlRXJyb3JTdGFja3M/Y29uc29sZS5lcnJvcihgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCBzdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcYG5leHQgZGV2XGAsIHRoZW4gb3BlbiAiJHtlLnJvdXRlfSIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5gKTpjb25zb2xlLmVycm9yKGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHRyeSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAtIFN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxgbmV4dCBkZXZcYCwgdGhlbiBvcGVuICIke2Uucm91dGV9IiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLgogIC0gUmVydW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQgd2l0aCBcYG5leHQgYnVpbGQgLS1kZWJ1Zy1wcmVyZW5kZXJcYCB0byBnZW5lcmF0ZSBiZXR0ZXIgc3RhY2sgdHJhY2VzLmApKX1mdW5jdGlvbiBlZShlLHQscixuKXtpZihuLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spdGhyb3cgUShlLG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayksbmV3IGMuU3RhdGljR2VuQmFpbG91dEVycm9yO2lmKDAhPT10KXtpZihyLmhhc1N1c3BlbnNlQWJvdmVCb2R5KXJldHVybjtsZXQgbj1yLmR5bmFtaWNFcnJvcnM7aWYobi5sZW5ndGg+MCl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspUShlLG5bdF0pO3Rocm93IG5ldyBjLlN0YXRpY0dlbkJhaWxvdXRFcnJvcn1pZihyLmhhc0R5bmFtaWNWaWV3cG9ydCl0aHJvdyBjb25zb2xlLmVycm9yKGBSb3V0ZSAiJHtlLnJvdXRlfSIgaGFzIGEgXGBnZW5lcmF0ZVZpZXdwb3J0XGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXGBjb29raWVzKClcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcYGZldGNoKC4uLilcYCwgZXRjLi4uKSB3aXRob3V0IGV4cGxpY2l0bHkgYWxsb3dpbmcgZnVsbHkgZHluYW1pYyByZW5kZXJpbmcuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItZHluYW1pYy12aWV3cG9ydGApLG5ldyBjLlN0YXRpY0dlbkJhaWxvdXRFcnJvcjtpZigxPT09dCl0aHJvdyBjb25zb2xlLmVycm9yKGBSb3V0ZSAiJHtlLnJvdXRlfSIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYCksbmV3IGMuU3RhdGljR2VuQmFpbG91dEVycm9yfWVsc2UgaWYoITE9PT1yLmhhc0FsbG93ZWREeW5hbWljJiZyLmhhc0R5bmFtaWNNZXRhZGF0YSl0aHJvdyBjb25zb2xlLmVycm9yKGBSb3V0ZSAiJHtlLnJvdXRlfSIgaGFzIGEgXGBnZW5lcmF0ZU1ldGFkYXRhXGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXGBjb29raWVzKClcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcYGZldGNoKC4uLilcYCwgZXRjLi4uKSB3aGVuIHRoZSByZXN0IG9mIHRoZSByb3V0ZSBkb2VzIG5vdC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLW1ldGFkYXRhYCksbmV3IGMuU3RhdGljR2VuQmFpbG91dEVycm9yfWZ1bmN0aW9uIGV0KGUsdCxyKXtpZihyLmhhc1N1c3BlbnNlQWJvdmVCb2R5KXJldHVybltdO2lmKDAhPT10KXtsZXQgbj1yLmR5bmFtaWNFcnJvcnM7aWYobi5sZW5ndGg+MClyZXR1cm4gbjtpZigxPT09dClyZXR1cm5bT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyB5LkludmFyaWFudEVycm9yKGBSb3V0ZSAiJHtlLnJvdXRlfSIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFOTM2IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pXX1lbHNlIGlmKCExPT09ci5oYXNBbGxvd2VkRHluYW1pYyYmMD09PXIuZHluYW1pY0Vycm9ycy5sZW5ndGgmJnIuZHluYW1pY01ldGFkYXRhKXJldHVybltyLmR5bmFtaWNNZXRhZGF0YV07cmV0dXJuW119ZnVuY3Rpb24gZXIoZSx0KXtyZXR1cm4gZS5ydW50aW1lU3RhZ2VQcm9taXNlP2UucnVudGltZVN0YWdlUHJvbWlzZS50aGVuKCgpPT50KTp0fX0sNTIzMDUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVuc3RhYmxlX3JldGhyb3ciLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQpe2lmKCgwLGkuaXNOZXh0Um91dGVyRXJyb3IpKHQpfHwoMCxvLmlzQmFpbG91dFRvQ1NSRXJyb3IpKHQpfHwoMCxzLmlzRHluYW1pY1NlcnZlckVycm9yKSh0KXx8KDAsdS5pc0R5bmFtaWNQb3N0cG9uZSkodCl8fCgwLGEuaXNQb3N0cG9uZSkodCl8fCgwLG4uaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKSh0KXx8KDAsdS5pc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3IpKHQpKXRocm93IHQ7dCBpbnN0YW5jZW9mIEVycm9yJiYiY2F1c2UiaW4gdCYmZSh0LmNhdXNlKX19fSk7bGV0IG49ZS5yKDE1NTA4KSxhPWUucigxNzU1Niksbz1lLnIoODQwODIpLGk9ZS5yKDQ5ODQzKSx1PWUucig2Nzc4MSkscz1lLnIoOTMyMTMpOygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDYyOTU5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJ1bnN0YWJsZV9yZXRocm93Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj0idSI8dHlwZW9mIHdpbmRvdz9lLnIoNTIzMDUpLnVuc3RhYmxlX3JldGhyb3c6ZS5yKDE4NzgyKS51bnN0YWJsZV9yZXRocm93OygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDMyNTIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e1JlYWRvbmx5VVJMU2VhcmNoUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIG8uUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXN9LFJlZGlyZWN0VHlwZTpmdW5jdGlvbigpe3JldHVybiB1LlJlZGlyZWN0VHlwZX0sZm9yYmlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIGMuZm9yYmlkZGVufSxub3RGb3VuZDpmdW5jdGlvbigpe3JldHVybiBzLm5vdEZvdW5kfSxwZXJtYW5lbnRSZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBpLnBlcm1hbmVudFJlZGlyZWN0fSxyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBpLnJlZGlyZWN0fSx1bmF1dGhvcml6ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmF1dGhvcml6ZWR9LHVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sdW5zdGFibGVfcmV0aHJvdzpmdW5jdGlvbigpe3JldHVybiBsLnVuc3RhYmxlX3JldGhyb3d9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89ZS5yKDM5Mjc1KSxpPWUucig0MTcyMSksdT1lLnIoOTA4NjIpLHM9ZS5yKDY1OTk1KSxjPWUucigxNzc2MiksZD1lLnIoNzk1MzkpLGw9ZS5yKDYyOTU5KTtmdW5jdGlvbiBmKCl7dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJgdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcmAgY2FuIG9ubHkgYmUgdXNlZCBvbiB0aGUgY2xpZW50LiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzc2IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI4OTk1LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtSZWFkb25seVVSTFNlYXJjaFBhcmFtczpmdW5jdGlvbigpe3JldHVybiB1LlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zfSxSZWRpcmVjdFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gbC5SZWRpcmVjdFR5cGV9LFNlcnZlckluc2VydGVkSFRNTENvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5TZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0fSxmb3JiaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4gbC5mb3JiaWRkZW59LG5vdEZvdW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGwubm90Rm91bmR9LHBlcm1hbmVudFJlZGlyZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIGwucGVybWFuZW50UmVkaXJlY3R9LHJlZGlyZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIGwucmVkaXJlY3R9LHVuYXV0aG9yaXplZDpmdW5jdGlvbigpe3JldHVybiBsLnVuYXV0aG9yaXplZH0sdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcjpmdW5jdGlvbigpe3JldHVybiBkLnVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3J9LHVuc3RhYmxlX3JldGhyb3c6ZnVuY3Rpb24oKXtyZXR1cm4gbC51bnN0YWJsZV9yZXRocm93fSx1c2VQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sdXNlUGF0aG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sdXNlUm91dGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LHVzZVNlYXJjaFBhcmFtczpmdW5jdGlvbigpe3JldHVybiBofSx1c2VTZWxlY3RlZExheW91dFNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gX30sdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50czpmdW5jdGlvbigpe3JldHVybiBnfSx1c2VTZXJ2ZXJJbnNlcnRlZEhUTUw6ZnVuY3Rpb24oKXtyZXR1cm4gYy51c2VTZXJ2ZXJJbnNlcnRlZEhUTUx9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89ZS5yKDQ0MDY2KS5fKGUucig3NTIwMSkpLGk9ZS5yKDE2ODcyKSx1PWUucigzMTg5OSkscz1lLnIoMjc0NTQpLGM9ZS5yKDE4NDYyKSxkPWUucig3NTA1MSksbD1lLnIoMzI1MiksZj0idSI8dHlwZW9mIHdpbmRvdz9lLnIoNjc3ODEpLnVzZUR5bmFtaWNSb3V0ZVBhcmFtczp2b2lkIDAscD0idSI8dHlwZW9mIHdpbmRvdz9lLnIoNjc3ODEpLnVzZUR5bmFtaWNTZWFyY2hQYXJhbXM6dm9pZCAwO2Z1bmN0aW9uIGgoKXtwPy4oInVzZVNlYXJjaFBhcmFtcygpIik7bGV0IGU9KDAsby51c2VDb250ZXh0KSh1LlNlYXJjaFBhcmFtc0NvbnRleHQpO3JldHVybigwLG8udXNlTWVtbykoKCk9PmU/bmV3IHUuUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMoZSk6bnVsbCxbZV0pfWZ1bmN0aW9uIG0oKXtyZXR1cm4gZj8uKCJ1c2VQYXRobmFtZSgpIiksKDAsby51c2VDb250ZXh0KSh1LlBhdGhuYW1lQ29udGV4dCl9ZnVuY3Rpb24geSgpe2xldCBlPSgwLG8udXNlQ29udGV4dCkoaS5BcHBSb3V0ZXJDb250ZXh0KTtpZihudWxsPT09ZSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImludmFyaWFudCBleHBlY3RlZCBhcHAgcm91dGVyIHRvIGJlIG1vdW50ZWQiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTIzOCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gZX1mdW5jdGlvbiBiKCl7cmV0dXJuIGY/LigidXNlUGFyYW1zKCkiKSwoMCxvLnVzZUNvbnRleHQpKHUuUGF0aFBhcmFtc0NvbnRleHQpfWZ1bmN0aW9uIGcoZT0iY2hpbGRyZW4iKXtmPy4oInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMoKSIpO2xldCB0PSgwLG8udXNlQ29udGV4dCkoaS5MYXlvdXRSb3V0ZXJDb250ZXh0KTtyZXR1cm4gdD8oMCxzLmdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgpKHQucGFyZW50VHJlZSxlKTpudWxsfWZ1bmN0aW9uIF8oZT0iY2hpbGRyZW4iKXtmPy4oInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudCgpIiksKDAsby51c2VDb250ZXh0KSh1Lk5hdmlnYXRpb25Qcm9taXNlc0NvbnRleHQpO2xldCB0PWcoZSk7cmV0dXJuKDAscy5jb21wdXRlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KSh0LGUpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9XSk7"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/api/public/v1/operators","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:54.062Z","timestamp":1785126654062,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"OPTIONS /api/public/v1/operators HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: cp-app-id\r\nReferer: https://www.bitifinex.live/\r\nOrigin: https://www.bitifinex.live\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/2 204 \r\ndate: Mon, 27 Jul 2026 04:30:54 GMT\r\ncontent-type: text/plain\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-allow-headers: Content-Type, cp-app-id\r\naccess-control-allow-credentials: true\r\ncf-cache-status: DYNAMIC\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=xnoGxUn%2BLWidQ1%2Fr6B%2F7XRGEph2uAKjkKT3x%2FNOeF3WHJET99kadQBUaST3QrrzTvcZS9BzKqoW55gub2jpQCfp%2F3GNJSSL4Ujk92dUDhmUiRJ8CBCGIqgCitP%2F1VqGj%2BA%3D%3D\"}]}\r\ncf-ray: a218e953eccbb1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":659,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":34,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":34,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.circliful.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.846Z","timestamp":1785126645846,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery.circliful.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 3490\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":22375,"size_decoded":3745,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (518)","md5":"42270f3d7e780110a88f6ea3197fd9e0","sha1":"222d247e94d908d4068bb1fc52cefd0e46c8ba67","sha256":"1587c869bd36a3ce7edc3ed89d8f7abb904b0af52cb7e06a881d6be5f3598364","sha512":"d2d7a7f61708103b5c4025ac63869fa7782ea34f35b58916813fe2af6fa0edad07b0438376f00b64b86d81935a518074a9a798f142908350a94c9f6ab01d79ae","ssdeep":"384:Gr5oXQDZDOLt+ZHAdL3uJLXJQKJD78lPOBBWYuwuF:EZDOLt+ZHAdL3ul1D+8BWYuwuF","tlshash":"39a23f257dab083c955b913d979e62786773c0830621fa343c7d802a1fd88b957eabf4","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.478852Z","times_seen":16,"resource_available":true,"data":"InVzZSBzdHJpY3QiOwoKKGZ1bmN0aW9uICgkKSB7CgogICAgJC5mbi5jaXJjbGlmdWwgPSBmdW5jdGlvbiAob3B0aW9ucywgY2FsbGJhY2spIHsKCiAgICAgICAgdmFyIHNldHRpbmdzID0gJC5leHRlbmQoewogICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGRlZmF1bHRzLgogICAgICAgICAgICBmb3JlZ3JvdW5kQ29sb3I6ICIjMzQ5OERCIiwKICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAiI2NjYyIsCiAgICAgICAgICAgIHBvaW50Q29sb3I6ICJub25lIiwKICAgICAgICAgICAgZmlsbENvbG9yOiAnbm9uZScsCiAgICAgICAgICAgIGZvcmVncm91bmRCb3JkZXJXaWR0aDogMTUsCiAgICAgICAgICAgIGJhY2tncm91bmRCb3JkZXJXaWR0aDogMTUsCiAgICAgICAgICAgIHBvaW50U2l6ZTogMjguNSwKICAgICAgICAgICAgZm9udENvbG9yOiAnI2FhYScsCiAgICAgICAgICAgIHBlcmNlbnQ6IDc1LAogICAgICAgICAgICBhbmltYXRpb246IDEsCiAgICAgICAgICAgIGFuaW1hdGlvblN0ZXA6IDUsCiAgICAgICAgICAgIGljb246ICdub25lJywKICAgICAgICAgICAgaWNvblNpemU6ICczMCcsCiAgICAgICAgICAgIGljb25Db2xvcjogJyNjY2MnLAogICAgICAgICAgICBpY29uUG9zaXRpb246ICd0b3AnLAogICAgICAgICAgICB0YXJnZXQ6IDAsCiAgICAgICAgICAgIHN0YXJ0OiAwLAogICAgICAgICAgICBzaG93UGVyY2VudDogMSwKICAgICAgICAgICAgcGVyY2VudGFnZVRleHRTaXplOiAyMiwKICAgICAgICAgICAgcGVyY2VudGFnZVg6IDEwMCwKICAgICAgICAgICAgcGVyY2VudGFnZVk6IDExMywKICAgICAgICAgICAgdGV4dEFkZGl0aW9uYWxDc3M6ICcnLAogICAgICAgICAgICB0YXJnZXRQZXJjZW50OiAwLAogICAgICAgICAgICB0YXJnZXRUZXh0U2l6ZTogMTcsCiAgICAgICAgICAgIHRhcmdldENvbG9yOiAnIzI5ODBCOScsCiAgICAgICAgICAgIHRleHQ6IG51bGwsCiAgICAgICAgICAgIHRleHRTdHlsZTogbnVsbCwKICAgICAgICAgICAgdGV4dENvbG9yOiAnIzY2NicsCiAgICAgICAgICAgIHRleHRZOiBudWxsLAogICAgICAgICAgICB0ZXh0WDogbnVsbCwKICAgICAgICAgICAgbXVsdGlQZXJjZW50YWdlOiAwLAogICAgICAgICAgICBwZXJjZW50YWdlczogW10sCiAgICAgICAgICAgIG11bHRpUGVyY2VudGFnZUxlZ2VuZDogMCwKICAgICAgICAgICAgdGV4dEJlbG93OiBmYWxzZSwKICAgICAgICAgICAgbm9QZXJjZW50YWdlU2lnbjogZmFsc2UsCiAgICAgICAgICAgIHJlcGxhY2VQZXJjZW50YWdlQnlUZXh0OiBudWxsLAogICAgICAgICAgICBoYWxmQ2lyY2xlOiBmYWxzZSwKICAgICAgICAgICAgYW5pbWF0ZUluVmlldzogZmFsc2UsCiAgICAgICAgICAgIGRlY2ltYWxzOiAwLAogICAgICAgICAgICBhbHdheXNEZWNpbWFsczogZmFsc2UsCiAgICAgICAgICAgIHRpdGxlOiAnQ2lyY2xlIENoYXJ0JywKICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLAogICAgICAgICAgICBwcm9ncmVzc0NvbG9yOiBudWxsCiAgICAgICAgfSwgb3B0aW9ucyk7CgogICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgY2lyY2xlQ29udGFpbmVyID0gJCh0aGlzKTsKCiAgICAgICAgICAgIG1lcmdlRGF0YUF0dHJpYnV0ZXMoc2V0dGluZ3MsIGNpcmNsZUNvbnRhaW5lci5kYXRhKCkpOwoKICAgICAgICAgICAgdmFyIHBlcmNlbnQgPSBzZXR0aW5ncy5wZXJjZW50OwogICAgICAgICAgICB2YXIgaWNvblkgPSA4MzsKICAgICAgICAgICAgdmFyIGljb25YID0gMTAwOwogICAgICAgICAgICB2YXIgcGVyY2VudGFnZVkgPSBzZXR0aW5ncy5wZXJjZW50YWdlWTsKICAgICAgICAgICAgdmFyIHBlcmNlbnRhZ2VYID0gc2V0dGluZ3MucGVyY2VudGFnZVg7CiAgICAgICAgICAgIHZhciBhZGRpdGlvbmFsQ3NzOwogICAgICAgICAgICB2YXIgZWxlbWVudHM7CiAgICAgICAgICAgIHZhciBpY29uOwogICAgICAgICAgICB2YXIgYmFja2dyb3VuZEJvcmRlcldpZHRoID0gc2V0dGluZ3MuYmFja2dyb3VuZEJvcmRlcldpZHRoOwogICAgICAgICAgICB2YXIgcHJvZ3Jlc3NDb2xvciA9IHNldHRpbmdzLnByb2dyZXNzQ29sb3IKCiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5oYWxmQ2lyY2xlKSB7CiAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MuaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHsKICAgICAgICAgICAgICAgICAgICBpY29uWCA9IDgwOwogICAgICAgICAgICAgICAgICAgIGljb25ZID0gMTAwOwogICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2VYID0gMTE3OwogICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2VZID0gMTAwOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy5oYWxmQ2lyY2xlKSB7CiAgICAgICAgICAgICAgICAgICAgaWNvblkgPSA4MDsKICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlWSA9IDEwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5pY29uUG9zaXRpb24gPT09ICdib3R0b20nKSB7CiAgICAgICAgICAgICAgICAgICAgaWNvblkgPSAxMjQ7CiAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZVkgPSA5NTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2V0dGluZ3MuaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHsKICAgICAgICAgICAgICAgICAgICBpY29uWCA9IDgwOwogICAgICAgICAgICAgICAgICAgIGljb25ZID0gMTEwOwogICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2VYID0gMTE3OwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy5pY29uUG9zaXRpb24gPT09ICdtaWRkbGUnKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLm11bHRpUGVyY2VudGFnZSAhPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyA9ICc8ZyBzdHJva2U9IicgKyAoc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yICE9PSAnbm9uZScgPyBzZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IgOiAnI2NjYycpICsgJyIgPjxsaW5lIHgxPSIxMzMiIHkxPSI1MCIgeDI9IjE0MCIgeTI9IjQwIiBzdHJva2Utd2lkdGg9IjIiICAvPjwvZz4nOwogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cyArPSAnPGcgc3Ryb2tlPSInICsgKHNldHRpbmdzLmJhY2tncm91bmRDb2xvciAhPT0gJ25vbmUnID8gc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yIDogJyNjY2MnKSArICciID48bGluZSB4MT0iMTQwIiB5MT0iNDAiIHgyPSIyMDAiIHkyPSI0MCIgc3Ryb2tlLXdpZHRoPSIyIiAgLz48L2c+JzsKICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZVggPSAxNzA7IC8vIFRvIGNlbnRlciB0aGUgcGVyY2VudGFnZSBleGFjdGx5IGluIHRoZSBjZW50ZXIuCiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2VZID0gMzU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGljb25ZID0gMTEwOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy5pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHsKICAgICAgICAgICAgICAgICAgICBpY29uWCA9IDEyMDsKICAgICAgICAgICAgICAgICAgICBpY29uWSA9IDExMDsKICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlWCA9IDgwOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy5pY29uUG9zaXRpb24gPT09ICd0b3AnICYmIHNldHRpbmdzLmljb24gIT09ICdub25lJykgewogICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2VZID0gMTIwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc2V0dGluZ3MudGFyZ2V0UGVyY2VudCA+IDAgJiYgc2V0dGluZ3MuaGFsZkNpcmNsZSAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgcGVyY2VudGFnZVkgPSA5NTsKICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gJzxnIHN0cm9rZT0iJyArIChzZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IgIT09ICdub25lJyA/IHNldHRpbmdzLmJhY2tncm91bmRDb2xvciA6ICcjY2NjJykgKyAnIiA+PGxpbmUgeDE9Ijc1IiB5MT0iMTAxIiB4Mj0iMTI1IiB5Mj0iMTAxIiBzdHJva2Utd2lkdGg9IjEiICAvPjwvZz4nOwogICAgICAgICAgICAgICAgZWxlbWVudHMgKz0gJzx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IicgKyBwZXJjZW50YWdlWCArICciIHk9IjEyMCIgc3R5bGU9ImZvbnQtc2l6ZTogJyArIHNldHRpbmdzLnRhcmdldFRleHRTaXplICsgJ3B4OyIgZmlsbD0iJyArIHNldHRpbmdzLnRhcmdldENvbG9yICsgJyI+JyArIHNldHRpbmdzLnRhcmdldFBlcmNlbnQgKyAoc2V0dGluZ3Mubm9QZXJjZW50YWdlU2lnbiAmJiBzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCA9PT0gbnVsbCA/ICcnIDogJyUnKSArICc8L3RleHQ+JzsKICAgICAgICAgICAgICAgIGVsZW1lbnRzICs9ICc8Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9IjY5IiBmaWxsPSJub25lIiBzdHJva2U9IicgKyBzZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IgKyAnIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1kYXNoYXJyYXk9IjQ1MCIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwLDEwMCwxMDApIiAvPic7CiAgICAgICAgICAgICAgICBlbGVtZW50cyArPSAnPGNpcmNsZSBjeD0iMTAwIiBjeT0iMTAwIiByPSI2OSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSInICsgc2V0dGluZ3MudGFyZ2V0Q29sb3IgKyAnIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1kYXNoYXJyYXk9IicgKyAoNDM1IC8gMTAwICogc2V0dGluZ3MudGFyZ2V0UGVyY2VudCkgKyAnLCAyMDAwMCIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwLDEwMCwxMDApIiAvPic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChzZXR0aW5ncy50ZXh0ICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MuaGFsZkNpcmNsZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy50ZXh0QmVsb3cpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKz0gJzx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IicgKyAoc2V0dGluZ3MudGV4dFggIT09IG51bGwgPyBzZXR0aW5ncy50ZXh0WCA6ICcxMDAnKSArICciIHk9IicgKyAoc2V0dGluZ3MudGV4dFkgIT09IG51bGwgPyBzZXR0aW5ncy50ZXh0WSA6ICc2NCUnKSArICciIHN0eWxlPSInICsgc2V0dGluZ3MudGV4dFN0eWxlICsgJyIgZmlsbD0iJyArIHNldHRpbmdzLnRleHRDb2xvciArICciPicgKyBzZXR0aW5ncy50ZXh0ICsgJzwvdGV4dD4nOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKz0gJzx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IicgKyAoc2V0dGluZ3MudGV4dFggIT09IG51bGwgPyBzZXR0aW5ncy50ZXh0WCA6ICcxMDAnICkgKyAnIiB5PSInICsgKHNldHRpbmdzLnRleHRZICE9PSBudWxsID8gc2V0dGluZ3MudGV4dFkgOiAnMTE1JykgKyAnIiBzdHlsZT0iJyArIHNldHRpbmdzLnRleHRTdHlsZSArICciIGZpbGw9IicgKyBzZXR0aW5ncy50ZXh0Q29sb3IgKyAnIj4nICsgc2V0dGluZ3MudGV4dCArICc8L3RleHQ+JzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy50ZXh0QmVsb3cpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMgKz0gJzx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IicgKyAoc2V0dGluZ3MudGV4dFggIT09IG51bGwgPyBzZXR0aW5ncy50ZXh0WCA6ICcxMDAnICkgKyAnIiB5PSInICsgKHNldHRpbmdzLnRleHRZICE9PSBudWxsID8gc2V0dGluZ3MudGV4dFkgOiAnOTklJykgKyAnIiBzdHlsZT0iJyArIHNldHRpbmdzLnRleHRTdHlsZSArICciIGZpbGw9IicgKyBzZXR0aW5ncy50ZXh0Q29sb3IgKyAnIj4nICsgc2V0dGluZ3MudGV4dCArICc8L3RleHQ+JzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzICs9ICc8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSInICsgKHNldHRpbmdzLnRleHRYICE9PSBudWxsID8gc2V0dGluZ3MudGV4dFggOiAnMTAwJyApICsgJyIgeT0iJyArIChzZXR0aW5ncy50ZXh0WSAhPT0gbnVsbCA/IHNldHRpbmdzLnRleHRZIDogJzExNScpICsgJyIgc3R5bGU9IicgKyBzZXR0aW5ncy50ZXh0U3R5bGUgKyAnIiBmaWxsPSInICsgc2V0dGluZ3MudGV4dENvbG9yICsgJyI+JyArIHNldHRpbmdzLnRleHQgKyAnPC90ZXh0Pic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc2V0dGluZ3MuaWNvbiAhPT0gJ25vbmUnKSB7CiAgICAgICAgICAgICAgICBpY29uID0gJzx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IicgKyBpY29uWCArICciIHk9IicgKyBpY29uWSArICciIGNsYXNzPSJpY29uIiBzdHlsZT0iZm9udC1zaXplOiAnICsgc2V0dGluZ3MuaWNvblNpemUgKyAncHgiIGZpbGw9IicgKyBzZXR0aW5ncy5pY29uQ29sb3IgKyAnIj4mI3gnICsgc2V0dGluZ3MuaWNvbiArICc8L3RleHQ+JzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHNldHRpbmdzLmhhbGZDaXJjbGUpIHsKICAgICAgICAgICAgICAgIHZhciByb3RhdGUgPSAndHJhbnNmb3JtPSJyb3RhdGUoLTE4MCwxMDAsMTAwKSInOwogICAgICAgICAgICAgICAgY2lyY2xlQ29udGFpbmVyCiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdzdmctY29udGFpbmVyJykKICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICAgICAkKCc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTk0IDE4NiIgY2xhc3M9ImNpcmNsaWZ1bCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGVsZW1lbnRzICE9PSAndW5kZWZpbmVkJyA/IGVsZW1lbnRzIDogJycpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8Y2xpcFBhdGggaWQ9ImN1dC1vZmYtYm90dG9tIj4gPHJlY3QgeD0iMTAwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjIwMCIgLz4gPC9jbGlwUGF0aD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9IjU3IiBjbGFzcz0iYm9yZGVyIiBmaWxsPSInICsgc2V0dGluZ3MuZmlsbENvbG9yICsgJyIgc3Ryb2tlPSInICsgc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yICsgJyIgc3Ryb2tlLXdpZHRoPSInICsgYmFja2dyb3VuZEJvcmRlcldpZHRoICsgJyIgc3Ryb2tlLWRhc2hhcnJheT0iMzYwIiBjbGlwLXBhdGg9InVybCgjY3V0LW9mZi1ib3R0b20pIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAsMTAwLDEwMCkiIC8+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGNpcmNsZSBjbGFzcz0iY2lyY2xlIiBjeD0iMTAwIiBjeT0iMTAwIiByPSI1NyIgY2xhc3M9ImJvcmRlciIgZmlsbD0ibm9uZSIgc3Ryb2tlPSInICsgc2V0dGluZ3MuZm9yZWdyb3VuZENvbG9yICsgJyIgc3Ryb2tlLXdpZHRoPSInICsgc2V0dGluZ3MuZm9yZWdyb3VuZEJvcmRlcldpZHRoICsgJyIgc3Ryb2tlLWRhc2hhcnJheT0iMCwyMDAwMCIgJyArIHJvdGF0ZSArICcgLz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9IicgKyBzZXR0aW5ncy5wb2ludFNpemUgKyAnIiBmaWxsPSInICsgc2V0dGluZ3MucG9pbnRDb2xvciArICciIGNsaXAtcGF0aD0idXJsKCNjdXQtb2ZmLWJvdHRvbSkiIHRyYW5zZm9ybT0icm90YXRlKC05MCwxMDAsMTAwKSIgLz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZXh0IGNsYXNzPSJ0aW1lciIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iJyArIHBlcmNlbnRhZ2VYICsgJyIgeT0iJyArIHBlcmNlbnRhZ2VZICsgJyIgc3R5bGU9ImZvbnQtc2l6ZTogJyArIHNldHRpbmdzLnBlcmNlbnRhZ2VUZXh0U2l6ZSArICdweDsgJyArIGFkZGl0aW9uYWxDc3MgKyAnOycgKyBzZXR0aW5ncy50ZXh0QWRkaXRpb25hbENzcyArICciIGZpbGw9IicgKyBzZXR0aW5ncy5mb250Q29sb3IgKyAnIj48dHNwYW4gY2xhc3M9Im51bWJlciI+JyArIChzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCA9PT0gbnVsbCA/IDAgOiBzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCkgKyAnPC90c3Bhbj48dHNwYW4gY2xhc3M9InBlcmNlbnQiPicgKyAoc2V0dGluZ3Mubm9QZXJjZW50YWdlU2lnbiB8fCBzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCAhPT0gbnVsbCA/ICcnIDogJyUnKSArICc8L3RzcGFuPjwvdGV4dD4nKQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkcmF3Q2lyY2xlcygpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgY2lyY2xlID0gY2lyY2xlQ29udGFpbmVyLmZpbmQoJy5jaXJjbGUnKTsKICAgICAgICAgICAgdmFyIG15VGltZXIgPSBjaXJjbGVDb250YWluZXIuZmluZCgnLnRpbWVyJyk7CiAgICAgICAgICAgIHZhciBpbnRlcnZhbCA9IDMwOwogICAgICAgICAgICB2YXIgYW5nbGUgPSAwOwogICAgICAgICAgICB2YXIgYW5nbGVJbmNyZW1lbnQgPSBzZXR0aW5ncy5hbmltYXRpb25TdGVwOwogICAgICAgICAgICB2YXIgbGFzdCA9IDA7CiAgICAgICAgICAgIHZhciBzdW1tYXJ5ID0gMDsKICAgICAgICAgICAgdmFyIG9uZVN0ZXAgPSAwOwogICAgICAgICAgICB2YXIgdGV4dCA9IHBlcmNlbnQ7CiAgICAgICAgICAgIHZhciBjYWxjdWxhdGVGaWxsID0gKDM2MCAvIDEwMCAqIHBlcmNlbnQpOwoKICAgICAgICAgICAgaWYgKHNldHRpbmdzLmhhbGZDaXJjbGUpIHsKICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZpbGwgPSAoMzYwIC8gMTAwICogcGVyY2VudCkgLyAyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHRleHQgPSBzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHNldHRpbmdzLnN0YXJ0ID4gMCAmJiBzZXR0aW5ncy50YXJnZXQgPiAwKSB7CiAgICAgICAgICAgICAgICBwZXJjZW50ID0gc2V0dGluZ3Muc3RhcnQgLyAoc2V0dGluZ3MudGFyZ2V0IC8gMTAwKTsKICAgICAgICAgICAgICAgIG9uZVN0ZXAgPSBzZXR0aW5ncy50YXJnZXQgLyAxMDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5hbmltYXRpb24gPT09IDEpIHsKICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5hbmltYXRlSW5WaWV3KSB7CiAgICAgICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrQW5pbWF0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5tdWx0aVBlcmNlbnRhZ2UgIT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBjaXJjbGUKICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLCBjYWxjdWxhdGVGaWxsICsgIiwgMjAwMDAiKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLnNob3dQZXJjZW50ID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcubnVtYmVyJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KHRleHQpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcubnVtYmVyJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KHNldHRpbmdzLnRhcmdldCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcucGVyY2VudCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dCgnJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXlUaW1lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5udW1iZXInKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQoc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICBteVRpbWVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLnBlcmNlbnQnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQoJycpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZSgpIHsKICAgICAgICAgICAgICAgIHZhciBjdXJyZW50Q2lyY2xlID0gY2lyY2xlOwogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRDYWxjdWxhdGVGaWxsID0gY2FsY3VsYXRlRmlsbDsKCiAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MubXVsdGlQZXJjZW50YWdlID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4LCBwZXJjZW50OwogICAgICAgICAgICAgICAgICAgIHZhciBwZXJjZW50YWdlcyA9IHNldHRpbmdzLnBlcmNlbnRhZ2VzOwogICAgICAgICAgICAgICAgICAgIHZhciBjaXJjbGVSYWRpdXMgPSAzNjA7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGVyY2VudGFnZXMubGVuZ3RoOyArK2luZGV4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnQgPSBwZXJjZW50YWdlc1tpbmRleF0ucGVyY2VudDsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENhbGN1bGF0ZUZpbGwgPSAoY2lyY2xlUmFkaXVzIC8gMTAwICogcGVyY2VudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaXJjbGUgPSBjaXJjbGVDb250YWluZXIuZmluZCgnI2NpcmNsZScgKyAoaW5kZXggKyAxKSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXJjbGVSYWRpdXMgPSBjaXJjbGVSYWRpdXMgKyA2Mi41OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENhbGN1bGF0ZUZpbGwgPSAoY2lyY2xlUmFkaXVzIC8gMTAwICogcGVyY2VudCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVDaXJjbGUoY3VycmVudENpcmNsZSwgY3VycmVudENhbGN1bGF0ZUZpbGwsIGNpcmNsZVJhZGl1cywgcGVyY2VudCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhbmltYXRlQ2lyY2xlKGN1cnJlbnRDaXJjbGUsIGN1cnJlbnRDYWxjdWxhdGVGaWxsLCAzNjAsIHBlcmNlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBhbmltYXRlQ2lyY2xlKGN1cnJlbnRDaXJjbGUsIGN1cnJlbnRDYWxjdWxhdGVGaWxsLCBjaXJjbGVSYWRpdXMsIHBlcmNlbnQpIHsKICAgICAgICAgICAgICAgIHZhciB0aW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKChhbmdsZSkgPj0gY3VycmVudENhbGN1bGF0ZUZpbGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGltZXIpOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0ID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlICs9IGFuZ2xlSW5jcmVtZW50OwogICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5ICs9IG9uZVN0ZXA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5oYWxmQ2lyY2xlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbmdsZSAqIDIgLyAoY2lyY2xlUmFkaXVzIC8gMTAwKSA+PSBwZXJjZW50ICYmIGxhc3QgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gKChjaXJjbGVSYWRpdXMgLyAxMDApICogcGVyY2VudCkgLyAyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5nbGUgLyAoY2lyY2xlUmFkaXVzIC8gMTAwKSA+PSBwZXJjZW50ICYmIGxhc3QgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlID0gKGNpcmNsZVJhZGl1cyAvIDEwMCkgKiBwZXJjZW50OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoc3VtbWFyeSA+IHNldHRpbmdzLnRhcmdldCAmJiBsYXN0ID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnkgPSBzZXR0aW5ncy50YXJnZXQ7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLmhhbGZDaXJjbGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBwYXJzZUZsb2F0KCgxMDAgKiBhbmdsZSAvIGNpcmNsZVJhZGl1cykgKiAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBwYXJzZUZsb2F0KCgxMDAgKiBhbmdsZSAvIGNpcmNsZVJhZGl1cykpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnRvRml4ZWQoc2V0dGluZ3MuZGVjaW1hbHMpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzLmFsd2F5c0RlY2ltYWxzICYmIChwZXJjZW50ID09PSAwIHx8IChwZXJjZW50ID4gMSAmJiBsYXN0ICE9PSAxKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBwYXJzZUludCh0ZXh0KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY3VycmVudENpcmNsZQogICAgICAgICAgICAgICAgICAgICAgICAuYXR0cigic3Ryb2tlLWRhc2hhcnJheSIsIGFuZ2xlICsgIiwgMjAwMDAiKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLm11bHRpUGVyY2VudGFnZSAhPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3Muc2hvd1BlcmNlbnQgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLm51bWJlcicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQodGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUaW1lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcubnVtYmVyJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGV4dChzdW1tYXJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLnBlcmNlbnQnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15VGltZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcubnVtYmVyJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgbXlUaW1lcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5wZXJjZW50JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KCcnKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChwcm9ncmVzc0NvbG9yICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQuZWFjaChwcm9ncmVzc0NvbG9yLCBmdW5jdGlvbiAoa2V5LCBjb2xvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLmhhbGZDaXJjbGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgLz0gMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ2xlID49IGtleSAqIChjaXJjbGVSYWRpdXMgLyAxMDApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENpcmNsZS5jc3MoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IGNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAnc3Ryb2tlIDAuMXMgbGluZWFyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LmJpbmQoY3VycmVudENpcmNsZSksIGludGVydmFsKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gaXNFbGVtZW50SW5WaWV3cG9ydCgpIHsKICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBwYWdlLgogICAgICAgICAgICAgICAgdmFyIHNjcm9sbEVsZW0gPSAoKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCd3ZWJraXQnKSAhPT0gLTEpID8gJ2JvZHknIDogJ2h0bWwnKTsKICAgICAgICAgICAgICAgIHZhciB2aWV3cG9ydFRvcCA9ICQoc2Nyb2xsRWxlbSkuc2Nyb2xsVG9wKCk7CiAgICAgICAgICAgICAgICB2YXIgdmlld3BvcnRCb3R0b20gPSB2aWV3cG9ydFRvcCArICQod2luZG93KS5oZWlnaHQoKTsKCiAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50IG9uIHRoZSBwYWdlLgogICAgICAgICAgICAgICAgdmFyIGVsZW1Ub3AgPSBNYXRoLnJvdW5kKGNpcmNsZS5vZmZzZXQoKS50b3ApOwogICAgICAgICAgICAgICAgdmFyIGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgY2lyY2xlLmhlaWdodCgpOwoKICAgICAgICAgICAgICAgIHJldHVybiAoKGVsZW1Ub3AgPCB2aWV3cG9ydEJvdHRvbSkgJiYgKGVsZW1Cb3R0b20gPiB2aWV3cG9ydFRvcCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBjaGVja0FuaW1hdGlvbigpIHsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkCiAgICAgICAgICAgICAgICBpZiAoY2lyY2xlLmhhc0NsYXNzKCdzdGFydCcpKSByZXR1cm47CgogICAgICAgICAgICAgICAgaWYgKGlzRWxlbWVudEluVmlld3BvcnQoY2lyY2xlKSkgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSBhbmltYXRpb24KICAgICAgICAgICAgICAgICAgICBjaXJjbGUuYWRkQ2xhc3MoJ3N0YXJ0Jyk7CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChhbmltYXRlLCAyNTApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIG1lcmdlRGF0YUF0dHJpYnV0ZXMoc2V0dGluZ3MsIGRhdGFBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICAgICAkLmVhY2goc2V0dGluZ3MsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpIGluIGRhdGFBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzW2tleV0gPSBkYXRhQXR0cmlidXRlc1trZXkudG9Mb3dlckNhc2UoKV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBEcmF3cyB0aGUgaW5pdGlhbCBjaXJjbGVzIGJlZm9yZSBhbmltYXRlIGdldHMgY2FsbGVkCiAgICAgICAgICAgICAqLwogICAgICAgICAgICBmdW5jdGlvbiBkcmF3Q2lyY2xlcygpIHsKICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5tdWx0aVBlcmNlbnRhZ2UgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXgsIGNhbGN1bGF0ZUZpbGxNdWx0aSwgcGVyY2VudCwgY29sb3IsIGNpcmNsZXM7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmNlbnRhZ2VzID0gc2V0dGluZ3MucGVyY2VudGFnZXM7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJhZGl1cyA9IDQ3OwogICAgICAgICAgICAgICAgICAgIHZhciBjaXJjbGVSYWRpdXMgPSAzNjA7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdGF0ZSA9IC05MDsKICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwZXJjZW50YWdlcy5sZW5ndGg7ICsraW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9IHBlcmNlbnRhZ2VzW2luZGV4XS5wZXJjZW50OwogICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHBlcmNlbnRhZ2VzW2luZGV4XS5jb2xvcjsKICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRmlsbE11bHRpID0gKGNpcmNsZVJhZGl1cyAvIDEwMCAqIHBlcmNlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXJjbGVSYWRpdXMgPSBjaXJjbGVSYWRpdXMgKyA2Mi41OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRmlsbE11bHRpID0gKGNpcmNsZVJhZGl1cyAvIDEwMCAqIHBlcmNlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl1cyArPSAxMDsKICAgICAgICAgICAgICAgICAgICAgICAgY2lyY2xlcyArPSAnPGNpcmNsZSBjeD0iMTAwIiBjeT0iMTAwIiByPSInICsgcmFkaXVzICsgJyIgY2xhc3M9ImJvcmRlciIgZmlsbD0iJyArIHNldHRpbmdzLmZpbGxDb2xvciArICciIHN0cm9rZT0iJyArIHNldHRpbmdzLmJhY2tncm91bmRDb2xvciArICciIHN0cm9rZS13aWR0aD0iJyArIGJhY2tncm91bmRCb3JkZXJXaWR0aCArICciIHN0cm9rZS1kYXNoYXJyYXk9IicgKyBjaXJjbGVSYWRpdXMgKyAnIiB0cmFuc2Zvcm09InJvdGF0ZSgnICsgcm90YXRlICsgJywxMDAsMTAwKSIgLz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8Y2lyY2xlIGNsYXNzPSJjaXJjbGUiIGlkPSJjaXJjbGUnICsgKGluZGV4ICsgMSkgKyAnIiBkYXRhLXBlcmNlbnQ9IicgKyBwZXJjZW50ICsgJyIgY3g9IjEwMCIgY3k9IjEwMCIgcj0iJyArIHJhZGl1cyArICciIGNsYXNzPSJib3JkZXIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iJyArIGNvbG9yICsgJyIgc3Ryb2tlLXdpZHRoPSInICsgc2V0dGluZ3MuZm9yZWdyb3VuZEJvcmRlcldpZHRoICsgJyIgc3Ryb2tlLWRhc2hhcnJheT0iJyArIGNhbGN1bGF0ZUZpbGxNdWx0aSArICcsMjAwMDAiIHRyYW5zZm9ybT0icm90YXRlKCcgKyByb3RhdGUgKyAnLDEwMCwxMDApIiAvPic7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjaXJjbGVDb250YWluZXIKICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdzdmctY29udGFpbmVyJykKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxOTQgMTg2IiBjbGFzcz0iY2lyY2xpZnVsIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGVsZW1lbnRzICE9PSAndW5kZWZpbmVkJyA/IGVsZW1lbnRzIDogJycpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXJjbGVzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRleHQgY2xhc3M9InRpbWVyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSInICsgcGVyY2VudGFnZVggKyAnIiB5PSInICsgcGVyY2VudGFnZVkgKyAnIiBzdHlsZT0iZm9udC1zaXplOiAnICsgc2V0dGluZ3MucGVyY2VudGFnZVRleHRTaXplICsgJ3B4OyAnICsgYWRkaXRpb25hbENzcyArICc7JyArIHNldHRpbmdzLnRleHRBZGRpdGlvbmFsQ3NzICsgJyIgZmlsbD0iJyArIHNldHRpbmdzLmZvbnRDb2xvciArICciPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8dHNwYW4gY2xhc3M9Im51bWJlciI+JyArIChzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCA9PT0gbnVsbCA/IDAgOiBzZXR0aW5ncy5yZXBsYWNlUGVyY2VudGFnZUJ5VGV4dCkgKyAnPC90c3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRzcGFuIGNsYXNzPSJwZXJjZW50Ij4nICsgKHNldHRpbmdzLm5vUGVyY2VudGFnZVNpZ24gfHwgc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQgIT09IG51bGwgPyAnJyA6ICclJykgKyAnPC90c3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC90ZXh0PicpCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5tdWx0aVBlcmNlbnRhZ2VMZWdlbmQgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xlZ2VuZCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY2lyY2xlQ29udGFpbmVyCiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc3ZnLWNvbnRhaW5lcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTk0IDE4NiIgY2xhc3M9ImNpcmNsaWZ1bCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBlbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgPyBlbGVtZW50cyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxjaXJjbGUgY3g9IjEwMCIgY3k9IjEwMCIgcj0iNTciIGNsYXNzPSJib3JkZXIiIGZpbGw9IicgKyBzZXR0aW5ncy5maWxsQ29sb3IgKyAnIiBzdHJva2U9IicgKyBzZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IgKyAnIiBzdHJva2Utd2lkdGg9IicgKyBiYWNrZ3JvdW5kQm9yZGVyV2lkdGggKyAnIiBzdHJva2UtZGFzaGFycmF5PSIzNjAiIHRyYW5zZm9ybT0icm90YXRlKC05MCwxMDAsMTAwKSIgLz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGNpcmNsZSBjbGFzcz0iY2lyY2xlIiBjeD0iMTAwIiBjeT0iMTAwIiByPSI1NyIgY2xhc3M9ImJvcmRlciIgZmlsbD0ibm9uZSIgc3Ryb2tlPSInICsgc2V0dGluZ3MuZm9yZWdyb3VuZENvbG9yICsgJyIgc3Ryb2tlLXdpZHRoPSInICsgc2V0dGluZ3MuZm9yZWdyb3VuZEJvcmRlcldpZHRoICsgJyIgc3Ryb2tlLWRhc2hhcnJheT0iMCwyMDAwMCIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwLDEwMCwxMDApIiAvPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9IicgKyBzZXR0aW5ncy5wb2ludFNpemUgKyAnIiBmaWxsPSInICsgc2V0dGluZ3MucG9pbnRDb2xvciArICciIC8+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZXh0IGNsYXNzPSJ0aW1lciIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iJyArIHBlcmNlbnRhZ2VYICsgJyIgeT0iJyArIHBlcmNlbnRhZ2VZICsgJyIgc3R5bGU9ImZvbnQtc2l6ZTogJyArIHNldHRpbmdzLnBlcmNlbnRhZ2VUZXh0U2l6ZSArICdweDsgJyArIGFkZGl0aW9uYWxDc3MgKyAnOycgKyBzZXR0aW5ncy50ZXh0QWRkaXRpb25hbENzcyArICciIGZpbGw9IicgKyBzZXR0aW5ncy5mb250Q29sb3IgKyAnIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRzcGFuIGNsYXNzPSJudW1iZXIiPicgKyAoc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQgPT09IG51bGwgPyAwIDogc2V0dGluZ3MucmVwbGFjZVBlcmNlbnRhZ2VCeVRleHQpICsgJzwvdHNwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0c3BhbiBjbGFzcz0icGVyY2VudCI+JyArIChzZXR0aW5ncy5ub1BlcmNlbnRhZ2VTaWduIHx8IHNldHRpbmdzLnJlcGxhY2VQZXJjZW50YWdlQnlUZXh0ICE9PSBudWxsID8gJycgOiAnJScpICsgJzwvdHNwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvdGV4dD4nKQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvKioKICAgICAgICAgICAgICogU2hvdyB0aGUgbGVnZW5kIG9ubHkgZm9yIG11bHRpIHBlcmNlbnRhZ2UgY2lyY2xlcwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgZnVuY3Rpb24gc2hvd0xlZ2VuZCgpIHsKICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSBjaXJjbGVDb250YWluZXIuaGVpZ2h0KCk7CiAgICAgICAgICAgICAgICB2YXIgd2lkdGggPSBjaXJjbGVDb250YWluZXIud2lkdGgoKTsKICAgICAgICAgICAgICAgIHZhciBwZXJjZW50YWdlcyA9IHNldHRpbmdzLnBlcmNlbnRhZ2VzOwogICAgICAgICAgICAgICAgdmFyIGluZGV4OwogICAgICAgICAgICAgICAgdmFyIGxpbmVzID0gJyc7CiAgICAgICAgICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwZXJjZW50YWdlcy5sZW5ndGg7ICsraW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBwZXJjZW50YWdlc1tpbmRleF0udGl0bGU7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9yID0gcGVyY2VudGFnZXNbaW5kZXhdLmNvbG9yOwogICAgICAgICAgICAgICAgICAgIHZhciBwZXJjZW50ID0gcGVyY2VudGFnZXNbaW5kZXhdLnBlcmNlbnQ7CgogICAgICAgICAgICAgICAgICAgIGxpbmVzICs9ICc8ZGl2PjxzcGFuIGNsYXNzPSJjb2xvci1ib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiAnICsgY29sb3IgKyAnIj48L3NwYW4+JyArIHRpdGxlICsgJywgJyArIHBlcmNlbnQgKyAnJTwvZGl2Pic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgY2lyY2xlQ29udGFpbmVyLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAkKCc8ZGl2Lz4nKQogICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGxpbmVzKQogICAgICAgICAgICAgICAgICAgICAgICAuYXR0cignc3R5bGUnLCAncG9zaXRpb246YWJzb2x1dGU7dG9wOicgKyBoZWlnaHQgLyAzICsgJ3B4O2xlZnQ6JyArICh3aWR0aCArIDIwKSArICdweCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdjbGFzcycsICdsZWdlbmQtbGluZScpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9Cn0oalF1ZXJ5KSk7Cg=="}},"time_used":76,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":76,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.252Z","timestamp":1785126646252,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.bitifinex.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 37756\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 18:07:05 GMT\r\nexpires: Sat, 24 Jul 2027 18:07:05 GMT\r\ncache-control: public, max-age=31536000\r\nage: 210221\r\nlast-modified: Thu, 04 Sep 2025 17:09:21 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":37756,"size_decoded":38569,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 37756, version 1.0","md5":"8a6a885dd57e60ddd85f3190737fa209","sha1":"dbca56b7fe8ee5e4bfb648d639fc6a3bfc5c6e85","sha256":"b9b102f608e8252e3c1e7287309832b16af7dcc6e788651fa503a3faacd7fb2f","sha512":"2bd785869777dc57dbb5934d4c6915b66f89746dd79897820eb4bbd0d262b2612bafdfb07c1e092658ad819f582a97e6a196531f74187d8a0b0bbd07fcbba56a","ssdeep":"768:sqRKhgpCf9U72WeD4A/5IqtBr0ikGvEaQh38/LBu3Emdc043RpgZKMqjkEfO1m:jKgp+9U7Ve8A/7Ai9Et3EBKEUE3RqMMu","tlshash":"3e030130df5884edcc0ba371fdeea81fc7a332a594c0b3368297af1b80111499d99e49","first_seen":"2025-09-05T00:25:10.258656Z","last_seen":"2026-07-27T08:07:37.444827Z","times_seen":543565,"resource_available":false,"data":"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"}},"time_used":30,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":14,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coinlib.io/_next/static/chunks/95262386d8d4b6dd.js","fqdn":"coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.426Z","timestamp":1785126646426,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /_next/static/chunks/95262386d8d4b6dd.js HTTP/1.1\r\nHost: coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\nage: 4407052\r\ncache-control: public, max-age=31536000, immutable\r\ncontent-disposition: inline; filename=\"95262386d8d4b6dd.js\"\r\ncontent-encoding: br\r\ncontent-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com https://static.cloudflareinsights.com https://va.vercel-scripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; font-src 'self'; connect-src 'self' https://yxarttakdttxyamscerx.supabase.co https://*.supabase.co https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://cloudflareinsights.com https://*.cloudflareinsights.com https://vitals.vercel-insights.com; base-uri 'self'; form-action 'self'; frame-ancestors 'none'\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\netag: W/\"8c155806c003f628ca093cb0feb083d0\"\r\nlast-modified: Thu, 30 Apr 2026 21:19:00 GMT\r\npermissions-policy: camera=(), microphone=(), geolocation=()\r\nreferrer-policy: strict-origin-when-cross-origin\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-matched-path: /_next/static/chunks/95262386d8d4b6dd.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::n9fnj-1777689750477-eb548eb708c2\r\nx-xss-protection: 1; mode=block\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=N3jbDoYacQ9NK%2Be76yDDBBVvsi8%2FhV7Vgz0Fq1y6bD6a%2BwviRextiE7zMTRLIW2WKHxemgzom20OvB1yt4zOqkl4ctZRoqrGuY0Cjfg%2BHJf5SoHyAvRWO4bgm7Mi\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\ncf-ray: a218e92428002efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":30684,"size_decoded":9883,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (30682), with no line terminators","md5":"8c155806c003f628ca093cb0feb083d0","sha1":"7e566386cefa86e8ede2e755f712dff7a8ef02f7","sha256":"07310b422de93eb0e61986355fd1084b06b47060d629f957c5311440650a6d2a","sha512":"980bd9a8f57049d13d7a8647fb56f621b005d208dafacc5c0534b9a919204bc9e363a122a1b4a48f4ef71cc00dcd2308e4885de83e31d2491b0a5d4a807fe7fe","ssdeep":"384:tj5z75Bq9E0mLlSmRt0cJ3XHHE79Fg/Za98qWtOPSN6wfV:N5z9BX0idiMxxgwfV","tlshash":"a4d2d9b17395f9a352db86d9d03a0005f2290d3530ae28b0b395dcef365dc8991fafa5","first_seen":"2026-03-29T05:29:39.700118Z","last_seen":"2026-07-27T08:07:37.448064Z","times_seen":1622,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDc3NDcyLChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQ9e30pe2lmKHQub25seUhhc2hDaGFuZ2UpcmV0dXJuIHZvaWQgZSgpO2xldCByPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZigic21vb3RoIiE9PXIuZGF0YXNldC5zY3JvbGxCZWhhdmlvcilyZXR1cm4gdm9pZCBlKCk7bGV0IGE9ci5zdHlsZS5zY3JvbGxCZWhhdmlvcjtyLnN0eWxlLnNjcm9sbEJlaGF2aW9yPSJhdXRvIix0LmRvbnRGb3JjZUxheW91dHx8ci5nZXRDbGllbnRSZWN0cygpLGUoKSxyLnN0eWxlLnNjcm9sbEJlaGF2aW9yPWF9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KSxlLnIoOTE5NDcpfSwxODkxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7bGV0IG49ZS5yKDQ0MDY2KSxhPWUucig5ODEzNCksbz1uLl8oZS5yKDc1MjAxKSksaT1lLnIoNzQwODQpLHM9ZS5yKDUzMTMzKTtlLnIoOTE5NDcpO2xldCBjPWUucigxNjg3Mik7Y2xhc3MgdSBleHRlbmRzIG8uZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdGF0ZT17dHJpZ2dlcmVkU3RhdHVzOnZvaWQgMCxwcmV2aW91c1BhdGhuYW1lOmUucGF0aG5hbWV9fWNvbXBvbmVudERpZENhdGNoKCl7fXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7aWYoKDAscy5pc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKShlKSlyZXR1cm57dHJpZ2dlcmVkU3RhdHVzOigwLHMuZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKShlKX07dGhyb3cgZX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7cmV0dXJuIGUucGF0aG5hbWUhPT10LnByZXZpb3VzUGF0aG5hbWUmJnQudHJpZ2dlcmVkU3RhdHVzP3t0cmlnZ2VyZWRTdGF0dXM6dm9pZCAwLHByZXZpb3VzUGF0aG5hbWU6ZS5wYXRobmFtZX06e3RyaWdnZXJlZFN0YXR1czp0LnRyaWdnZXJlZFN0YXR1cyxwcmV2aW91c1BhdGhuYW1lOmUucGF0aG5hbWV9fXJlbmRlcigpe2xldHtub3RGb3VuZDplLGZvcmJpZGRlbjp0LHVuYXV0aG9yaXplZDpyLGNoaWxkcmVuOm59PXRoaXMucHJvcHMse3RyaWdnZXJlZFN0YXR1czpvfT10aGlzLnN0YXRlLGk9e1tzLkhUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkRdOmUsW3MuSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTl06dCxbcy5IVFRQQWNjZXNzRXJyb3JTdGF0dXMuVU5BVVRIT1JJWkVEXTpyfTtpZihvKXtsZXQgYz1vPT09cy5IVFRQQWNjZXNzRXJyb3JTdGF0dXMuTk9UX0ZPVU5EJiZlLHU9bz09PXMuSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTiYmdCxsPW89PT1zLkhUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRUQmJnI7cmV0dXJuIGN8fHV8fGw/KDAsYS5qc3hzKShhLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsYS5qc3gpKCJtZXRhIix7bmFtZToicm9ib3RzIixjb250ZW50OiJub2luZGV4In0pLCExLGlbb11dfSk6bn1yZXR1cm4gbn19ZnVuY3Rpb24gbCh7bm90Rm91bmQ6ZSxmb3JiaWRkZW46dCx1bmF1dGhvcml6ZWQ6cixjaGlsZHJlbjpufSl7bGV0IHM9KDAsaS51c2VVbnRyYWNrZWRQYXRobmFtZSkoKSxsPSgwLG8udXNlQ29udGV4dCkoYy5NaXNzaW5nU2xvdENvbnRleHQpO3JldHVybiBlfHx0fHxyPygwLGEuanN4KSh1LHtwYXRobmFtZTpzLG5vdEZvdW5kOmUsZm9yYmlkZGVuOnQsdW5hdXRob3JpemVkOnIsbWlzc2luZ1Nsb3RzOmwsY2hpbGRyZW46bn0pOigwLGEuanN4KShhLkZyYWdtZW50LHtjaGlsZHJlbjpufSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODU2NDYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVzZVJvdXRlckJGQ2FjaGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig3NTIwMSk7ZnVuY3Rpb24gYShlLHQpe2xldFtyLGFdPSgwLG4udXNlU3RhdGUpKCgpPT4oe3RyZWU6ZSxzdGF0ZUtleTp0LG5leHQ6bnVsbH0pKTtpZihyLnRyZWU9PT1lKXJldHVybiByO2xldCBvPXt0cmVlOmUsc3RhdGVLZXk6dCxuZXh0Om51bGx9LGk9MSxzPXIsYz1vO2Zvcig7bnVsbCE9PXMmJmk8MTspe2lmKHMuc3RhdGVLZXk9PT10KXtjLm5leHQ9cy5uZXh0O2JyZWFrfXtpKys7bGV0IGU9e3RyZWU6cy50cmVlLHN0YXRlS2V5OnMuc3RhdGVLZXksbmV4dDpudWxsfTtjLm5leHQ9ZSxjPWV9cz1zLm5leHR9cmV0dXJuIGEobyksb30oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzMDk3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd319KTtsZXQgbj1lLnIoODEyNTgpLGE9ZS5yKDQ0MDY2KSxvPWUucig5ODEzNCksaT1hLl8oZS5yKDc1MjAxKSkscz1uLl8oZS5yKDI5MDgwKSksYz1lLnIoMTY4NzIpLHU9ZS5yKDUwMDk2KSxsPWUucig3NDg0NyksZD1lLnIoODk2MTYpLGY9ZS5yKDc3NDcyKSxwPWUucig1NzI0NyksaD1lLnIoMTg5MSksbT1lLnIoNTc3NzgpLGc9ZS5yKDg1NjQ2KTtlLnIoOTIyMjcpO2xldCB5PWUucigzMTg5OSksYj1lLnIoODgwNjIpLFA9ZS5yKDE4OTM5KSxfPXMuZGVmYXVsdC5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsUz1bImJvdHRvbSIsImhlaWdodCIsImxlZnQiLCJyaWdodCIsInRvcCIsIndpZHRoIiwieCIsInkiXTtmdW5jdGlvbiB2KGUsdCl7bGV0IHI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gci50b3A+PTAmJnIudG9wPD10fWNsYXNzIE8gZXh0ZW5kcyBpLmRlZmF1bHQuQ29tcG9uZW50e2NvbXBvbmVudERpZE1vdW50KCl7dGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGwoKX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLnByb3BzLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5JiZ0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpfXJlbmRlcigpe3JldHVybiB0aGlzLnByb3BzLmNoaWxkcmVufWNvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsPSgpPT57bGV0e2ZvY3VzQW5kU2Nyb2xsUmVmOmUsc2VnbWVudFBhdGg6dH09dGhpcy5wcm9wcztpZihlLmFwcGx5KXtpZigwIT09ZS5zZWdtZW50UGF0aHMubGVuZ3RoJiYhZS5zZWdtZW50UGF0aHMuc29tZShlPT50LmV2ZXJ5KCh0LHIpPT4oMCxkLm1hdGNoU2VnbWVudCkodCxlW3JdKSkpKXJldHVybjtsZXQgcj1udWxsLG49ZS5oYXNoRnJhZ21lbnQ7aWYobiYmKHI9InRvcCI9PT1uP2RvY3VtZW50LmJvZHk6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik/P2RvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKG4pWzBdKSxyfHwocj0idSI8dHlwZW9mIHdpbmRvdz9udWxsOigwLF8uZmluZERPTU5vZGUpKHRoaXMpKSwhKHIgaW5zdGFuY2VvZiBFbGVtZW50KSlyZXR1cm47Zm9yKDshKHIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl8fGZ1bmN0aW9uKGUpe2lmKFsic3RpY2t5IiwiZml4ZWQiXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKGUpLnBvc2l0aW9uKSlyZXR1cm4hMDtsZXQgdD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBTLmV2ZXJ5KGU9PjA9PT10W2VdKX0ocik7KXtpZihudWxsPT09ci5uZXh0RWxlbWVudFNpYmxpbmcpcmV0dXJuO3I9ci5uZXh0RWxlbWVudFNpYmxpbmd9ZS5hcHBseT0hMSxlLmhhc2hGcmFnbWVudD1udWxsLGUuc2VnbWVudFBhdGhzPVtdLCgwLGYuZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbikoKCk9PntpZihuKXJldHVybiB2b2lkIHIuc2Nyb2xsSW50b1ZpZXcoKTtsZXQgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdD1lLmNsaWVudEhlaWdodDshdihyLHQpJiYoZS5zY3JvbGxUb3A9MCx2KHIsdCl8fHIuc2Nyb2xsSW50b1ZpZXcoKSl9LHtkb250Rm9yY2VMYXlvdXQ6ITAsb25seUhhc2hDaGFuZ2U6ZS5vbmx5SGFzaENoYW5nZX0pLGUub25seUhhc2hDaGFuZ2U9ITEsci5mb2N1cygpfX19fWZ1bmN0aW9uIFIoe3NlZ21lbnRQYXRoOmUsY2hpbGRyZW46dH0pe2xldCByPSgwLGkudXNlQ29udGV4dCkoYy5HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KTtpZighcil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZCIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNDczIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybigwLG8uanN4KShPLHtzZWdtZW50UGF0aDplLGZvY3VzQW5kU2Nyb2xsUmVmOnIuZm9jdXNBbmRTY3JvbGxSZWYsY2hpbGRyZW46dH0pfWZ1bmN0aW9uIEUoe3RyZWU6ZSxzZWdtZW50UGF0aDp0LGRlYnVnTmFtZUNvbnRleHQ6cixjYWNoZU5vZGU6bixwYXJhbXM6YSx1cmw6cyxpc0FjdGl2ZTpsfSl7bGV0IGQsZj0oMCxpLnVzZUNvbnRleHQpKGMuR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7aWYoKDAsaS51c2VDb250ZXh0KSh5Lk5hdmlnYXRpb25Qcm9taXNlc0NvbnRleHQpLCFmKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0NzMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0IHA9bnVsbCE9PW4/bjooMCxpLnVzZSkodS51bnJlc29sdmVkVGhlbmFibGUpLGg9bnVsbCE9PXAucHJlZmV0Y2hSc2M/cC5wcmVmZXRjaFJzYzpwLnJzYyxtPSgwLGkudXNlRGVmZXJyZWRWYWx1ZSkocC5yc2MsaCk7aWYoKDAsUC5pc0RlZmVycmVkUnNjKShtKSl7bGV0IGU9KDAsaS51c2UpKG0pO251bGw9PT1lJiYoMCxpLnVzZSkodS51bnJlc29sdmVkVGhlbmFibGUpLGQ9ZX1lbHNlIG51bGw9PT1tJiYoMCxpLnVzZSkodS51bnJlc29sdmVkVGhlbmFibGUpLGQ9bTtsZXQgZz1kO3JldHVybigwLG8uanN4KShjLkxheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOntwYXJlbnRUcmVlOmUscGFyZW50Q2FjaGVOb2RlOnAscGFyZW50U2VnbWVudFBhdGg6dCxwYXJlbnRQYXJhbXM6YSxkZWJ1Z05hbWVDb250ZXh0OnIsdXJsOnMsaXNBY3RpdmU6bH0sY2hpbGRyZW46Z30pfWZ1bmN0aW9uIGooe25hbWU6ZSxsb2FkaW5nOnQsY2hpbGRyZW46cn0pe2xldCBuO2lmKG49Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbj8oMCxpLnVzZSkodCk6dCl7bGV0IHQ9blswXSxhPW5bMV0scz1uWzJdO3JldHVybigwLG8uanN4KShpLlN1c3BlbnNlLHtuYW1lOmUsZmFsbGJhY2s6KDAsby5qc3hzKShvLkZyYWdtZW50LHtjaGlsZHJlbjpbYSxzLHRdfSksY2hpbGRyZW46cn0pfXJldHVybigwLG8uanN4KShvLkZyYWdtZW50LHtjaGlsZHJlbjpyfSl9ZnVuY3Rpb24gdyh7cGFyYWxsZWxSb3V0ZXJLZXk6ZSxlcnJvcjp0LGVycm9yU3R5bGVzOnIsZXJyb3JTY3JpcHRzOm4sdGVtcGxhdGVTdHlsZXM6YSx0ZW1wbGF0ZVNjcmlwdHM6cyx0ZW1wbGF0ZTpkLG5vdEZvdW5kOmYsZm9yYmlkZGVuOnksdW5hdXRob3JpemVkOlAsc2VnbWVudFZpZXdCb3VuZGFyaWVzOl99KXtsZXQgUz0oMCxpLnVzZUNvbnRleHQpKGMuTGF5b3V0Um91dGVyQ29udGV4dCk7aWYoIVMpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJpbnZhcmlhbnQgZXhwZWN0ZWQgbGF5b3V0IHJvdXRlciB0byBiZSBtb3VudGVkIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1NiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXR7cGFyZW50VHJlZTp2LHBhcmVudENhY2hlTm9kZTpPLHBhcmVudFNlZ21lbnRQYXRoOncscGFyZW50UGFyYW1zOkMsdXJsOlQsaXNBY3RpdmU6eCxkZWJ1Z05hbWVDb250ZXh0OkF9PVMsTT1PLnBhcmFsbGVsUm91dGVzLEQ9TS5nZXQoZSk7RHx8KEQ9bmV3IE1hcCxNLnNldChlLEQpKTtsZXQgRj12WzBdLEk9bnVsbD09PXc/W2VdOncuY29uY2F0KFtGLGVdKSxrPXZbMV1bZV07dm9pZCAwPT09ayYmKDAsaS51c2UpKHUudW5yZXNvbHZlZFRoZW5hYmxlKTtsZXQgTj1rWzBdLFU9KDAsbS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkoTiwhMCksQj0oMCxnLnVzZVJvdXRlckJGQ2FjaGUpKGssVSksTD1bXTtkb3tsZXQgZT1CLnRyZWUsaT1CLnN0YXRlS2V5LHU9ZVswXSxnPSgwLG0uY3JlYXRlUm91dGVyQ2FjaGVLZXkpKHUpLF89RC5nZXQoZyk/P251bGwsUz1DO2lmKEFycmF5LmlzQXJyYXkodSkpe2xldCBlPXVbMF0sdD11WzFdLHI9dVsyXSxuPSgwLGIuZ2V0UGFyYW1WYWx1ZUZyb21DYWNoZUtleSkodCxyKTtudWxsIT09biYmKFM9ey4uLkMsW2VdOm59KX1sZXQgdj1mdW5jdGlvbihlKXtpZigiLyI9PT1lKXJldHVybiIvIjtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYoIihzbG90KSI9PT1lKXJldHVybjtlbHNlIHJldHVybiBlKyIvIjtyZXR1cm4gZVsxXSsiLyJ9KHUpLHc9dj8/QSxNPXZvaWQgMD09PXY/dm9pZCAwOkEsRj1PLmxvYWRpbmcsaz0oMCxvLmpzeHMpKGMuVGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTooMCxvLmpzeHMpKFIse3NlZ21lbnRQYXRoOkksY2hpbGRyZW46WygwLG8uanN4KShsLkVycm9yQm91bmRhcnkse2Vycm9yQ29tcG9uZW50OnQsZXJyb3JTdHlsZXM6cixlcnJvclNjcmlwdHM6bixjaGlsZHJlbjooMCxvLmpzeCkoaix7bmFtZTpNLGxvYWRpbmc6RixjaGlsZHJlbjooMCxvLmpzeCkoaC5IVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSx7bm90Rm91bmQ6Zixmb3JiaWRkZW46eSx1bmF1dGhvcml6ZWQ6UCxjaGlsZHJlbjooMCxvLmpzeHMpKHAuUmVkaXJlY3RCb3VuZGFyeSx7Y2hpbGRyZW46WygwLG8uanN4KShFLHt1cmw6VCx0cmVlOmUscGFyYW1zOlMsY2FjaGVOb2RlOl8sc2VnbWVudFBhdGg6SSxkZWJ1Z05hbWVDb250ZXh0OncsaXNBY3RpdmU6eCYmaT09PVV9KSxudWxsXX0pfSl9KX0pLG51bGxdfSksY2hpbGRyZW46W2EscyxkXX0saSk7TC5wdXNoKGspLEI9Qi5uZXh0fXdoaWxlKG51bGwhPT1CKXJldHVybiBMfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDk5Mjk5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTtsZXQgbj1lLnIoNDQwNjYpLGE9ZS5yKDk4MTM0KSxvPW4uXyhlLnIoNzUyMDEpKSxpPWUucigxNjg3Mik7ZnVuY3Rpb24gcygpe2xldCBlPSgwLG8udXNlQ29udGV4dCkoaS5UZW1wbGF0ZUNvbnRleHQpO3JldHVybigwLGEuanN4KShhLkZyYWdtZW50LHtjaGlsZHJlbjplfSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODk1MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShlKXtsZXQgdD1uLmdldChlKTtpZih0KXJldHVybiB0O2xldCByPVByb21pc2UucmVzb2x2ZShlKTtyZXR1cm4gbi5zZXQoZSxyKSxyfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY4NjE0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj1lLnIoODk1MykuY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudDsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3MDcyOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShlKXtsZXQgdD1uLmdldChlKTtpZih0KXJldHVybiB0O2xldCByPVByb21pc2UucmVzb2x2ZShlKTtyZXR1cm4gbi5zZXQoZSxyKSxyfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDg3MTg5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj1lLnIoNzA3MjkpLmNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQ7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTc1MTgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIlJlZmxlY3RBZGFwdGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtjbGFzcyBue3N0YXRpYyBnZXQoZSx0LHIpe2xldCBuPVJlZmxlY3QuZ2V0KGUsdCxyKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmJpbmQoZSk6bn1zdGF0aWMgc2V0KGUsdCxyLG4pe3JldHVybiBSZWZsZWN0LnNldChlLHQscixuKX1zdGF0aWMgaGFzKGUsdCl7cmV0dXJuIFJlZmxlY3QuaGFzKGUsdCl9c3RhdGljIGRlbGV0ZVByb3BlcnR5KGUsdCl7cmV0dXJuIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkoZSx0KX19fSw0NTAxNCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7bGV0IG49ZnVuY3Rpb24oZSx0KXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHI9YSh2b2lkIDApO2lmKHImJnIuaGFzKGUpKXJldHVybiByLmdldChlKTt2YXIgbj17X19wcm90b19fOm51bGx9LG89T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgaSBpbiBlKWlmKCJkZWZhdWx0IiE9PWkmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpKXt2YXIgcz1vP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTpudWxsO3MmJihzLmdldHx8cy5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGkscyk6bltpXT1lW2ldfXJldHVybiBuLmRlZmF1bHQ9ZSxyJiZyLnNldChlLG4pLG59KGUucig3NTIwMSkpO2Z1bmN0aW9uIGEoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIHQ9bmV3IFdlYWtNYXAscj1uZXcgV2Vha01hcDtyZXR1cm4oYT1mdW5jdGlvbihlKXtyZXR1cm4gZT9yOnR9KShlKX1sZXQgbz17Y3VycmVudDpudWxsfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBuLmNhY2hlP24uY2FjaGU6ZT0+ZSxzPWNvbnNvbGUud2FybjtmdW5jdGlvbiBjKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtzKGUoLi4udCkpfX1pKGU9Pnt0cnl7cyhvLmN1cnJlbnQpfWZpbmFsbHl7by5jdXJyZW50PW51bGx9fSl9LDc1ODI3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHk6ZnVuY3Rpb24oKXtyZXR1cm4gc30sZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzczpmdW5jdGlvbigpe3JldHVybiBpfSx3ZWxsS25vd25Qcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89L15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokLztmdW5jdGlvbiBpKGUsdCl7cmV0dXJuIG8udGVzdCh0KT9gXGAke2V9LiR7dH1cYGA6YFxgJHtlfVske0pTT04uc3RyaW5naWZ5KHQpfV1cYGB9ZnVuY3Rpb24gcyhlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KHQpO3JldHVybmBcYFJlZmxlY3QuaGFzKCR7ZX0sICR7cn0pXGAsIFxgJHtyfSBpbiAke2V9XGAsIG9yIHNpbWlsYXJgfWxldCBjPW5ldyBTZXQoWyJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvU3RyaW5nIiwidmFsdWVPZiIsInRvTG9jYWxlU3RyaW5nIiwidGhlbiIsImNhdGNoIiwiZmluYWxseSIsInN0YXR1cyIsImRpc3BsYXlOYW1lIiwiX2RlYnVnSW5mbyIsInRvSlNPTiIsIiQkdHlwZW9mIiwiX19lc01vZHVsZSJdKX0sNTU5NDksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImFmdGVyVGFza0FzeW5jU3RvcmFnZUluc3RhbmNlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj0oMCxlLnIoNDkyMTEpLmNyZWF0ZUFzeW5jTG9jYWxTdG9yYWdlKSgpfSwxMzE3NywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5hZnRlclRhc2tBc3luY1N0b3JhZ2VJbnN0YW5jZX19KTtsZXQgbj1lLnIoNTU5NDkpfSwzNzE2NSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17aXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcjpmdW5jdGlvbigpe3JldHVybiB1fSx0aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz1lLnIoMTY0MzIpLGk9ZS5yKDEzMTc3KTtmdW5jdGlvbiBzKGUsdCl7dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBvLlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgJHtlfSB3aXRoIFxgZHluYW1pYyA9ICJlcnJvciJcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke3R9LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU0MyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBjKGUsdCl7bGV0IHI9T2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBSb3V0ZSAke2Uucm91dGV9IHVzZWQgXGBzZWFyY2hQYXJhbXNcYCBpbnNpZGUgInVzZSBjYWNoZSIuIEFjY2Vzc2luZyBkeW5hbWljIHJlcXVlc3QgZGF0YSBpbnNpZGUgYSBjYWNoZSBzY29wZSBpcyBub3Qgc3VwcG9ydGVkLiBJZiB5b3UgbmVlZCBzb21lIHNlYXJjaCBwYXJhbXMgaW5zaWRlIGEgY2FjaGVkIGZ1bmN0aW9uIGF3YWl0IFxgc2VhcmNoUGFyYW1zXGAgb3V0c2lkZSBvZiB0aGUgY2FjaGVkIGZ1bmN0aW9uIGFuZCBwYXNzIG9ubHkgdGhlIHJlcXVpcmVkIHNlYXJjaCBwYXJhbXMgYXMgYXJndW1lbnRzIHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yZXF1ZXN0LWluLXVzZS1jYWNoZWApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFODQyIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3Rocm93IEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIsdCksZS5pbnZhbGlkRHluYW1pY1VzYWdlRXJyb3I/Pz1yLHJ9ZnVuY3Rpb24gdSgpe2xldCBlPWkuYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7cmV0dXJuKG51bGw9PWU/dm9pZCAwOmUucm9vdFRhc2tTcGF3blBoYXNlKT09PSJhY3Rpb24ifX0sNTU1MjUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG4sYT17UmVuZGVyU3RhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gY30sU3RhZ2VkUmVuZGVyaW5nQ29udHJvbGxlcjpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBvIGluIGEpT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6YVtvXX0pO2xldCBpPWUucig0MTA2Mikscz1lLnIoNDA0NjEpO3ZhciBjPSgobj17fSlbbi5CZWZvcmU9MV09IkJlZm9yZSIsbltuLlN0YXRpYz0yXT0iU3RhdGljIixuW24uUnVudGltZT0zXT0iUnVudGltZSIsbltuLkR5bmFtaWM9NF09IkR5bmFtaWMiLG5bbi5BYmFuZG9uZWQ9NV09IkFiYW5kb25lZCIsbik7Y2xhc3MgdXtjb25zdHJ1Y3RvcihlPW51bGwsdCl7dGhpcy5hYm9ydFNpZ25hbD1lLHRoaXMuaGFzUnVudGltZVByZWZldGNoPXQsdGhpcy5jdXJyZW50U3RhZ2U9MSx0aGlzLnN0YXRpY0ludGVycnVwdFJlYXNvbj1udWxsLHRoaXMucnVudGltZUludGVycnVwdFJlYXNvbj1udWxsLHRoaXMuc3RhdGljU3RhZ2VFbmRUaW1lPTEvMCx0aGlzLnJ1bnRpbWVTdGFnZUVuZFRpbWU9MS8wLHRoaXMucnVudGltZVN0YWdlTGlzdGVuZXJzPVtdLHRoaXMuZHluYW1pY1N0YWdlTGlzdGVuZXJzPVtdLHRoaXMucnVudGltZVN0YWdlUHJvbWlzZT0oMCxzLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLHRoaXMuZHluYW1pY1N0YWdlUHJvbWlzZT0oMCxzLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLHRoaXMubWF5QWJhbmRvbj0hMSxlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCk9PntsZXR7cmVhc29uOnR9PWU7dGhpcy5jdXJyZW50U3RhZ2U8MyYmKHRoaXMucnVudGltZVN0YWdlUHJvbWlzZS5wcm9taXNlLmNhdGNoKGwpLHRoaXMucnVudGltZVN0YWdlUHJvbWlzZS5yZWplY3QodCkpLCh0aGlzLmN1cnJlbnRTdGFnZTw0fHw1PT09dGhpcy5jdXJyZW50U3RhZ2UpJiYodGhpcy5keW5hbWljU3RhZ2VQcm9taXNlLnByb21pc2UuY2F0Y2gobCksdGhpcy5keW5hbWljU3RhZ2VQcm9taXNlLnJlamVjdCh0KSl9LHtvbmNlOiEwfSksdGhpcy5tYXlBYmFuZG9uPSEwKX1vblN0YWdlKGUsdCl7aWYodGhpcy5jdXJyZW50U3RhZ2U+PWUpdCgpO2Vsc2UgaWYoMz09PWUpdGhpcy5ydW50aW1lU3RhZ2VMaXN0ZW5lcnMucHVzaCh0KTtlbHNlIGlmKDQ9PT1lKXRoaXMuZHluYW1pY1N0YWdlTGlzdGVuZXJzLnB1c2godCk7ZWxzZSB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGkuSW52YXJpYW50RXJyb3IoYEludmFsaWQgcmVuZGVyIHN0YWdlOiAke2V9YCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4ODEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9Y2FuU3luY0ludGVycnVwdCgpe2lmKDE9PT10aGlzLmN1cnJlbnRTdGFnZSlyZXR1cm4hMTtsZXQgZT10aGlzLmhhc1J1bnRpbWVQcmVmZXRjaD80OjM7cmV0dXJuIHRoaXMuY3VycmVudFN0YWdlPGV9c3luY0ludGVycnVwdEN1cnJlbnRTdGFnZVdpdGhSZWFzb24oZSl7aWYoMSE9PXRoaXMuY3VycmVudFN0YWdlKXtpZih0aGlzLm1heUFiYW5kb24pcmV0dXJuIHRoaXMuYWJhbmRvblJlbmRlckltcGwoKTtzd2l0Y2godGhpcy5jdXJyZW50U3RhZ2Upe2Nhc2UgMjp0aGlzLnN0YXRpY0ludGVycnVwdFJlYXNvbj1lLHRoaXMuYWR2YW5jZVN0YWdlKDQpO3JldHVybjtjYXNlIDM6dGhpcy5oYXNSdW50aW1lUHJlZmV0Y2gmJih0aGlzLnJ1bnRpbWVJbnRlcnJ1cHRSZWFzb249ZSx0aGlzLmFkdmFuY2VTdGFnZSg0KSk7cmV0dXJufX19Z2V0U3RhdGljSW50ZXJydXB0UmVhc29uKCl7cmV0dXJuIHRoaXMuc3RhdGljSW50ZXJydXB0UmVhc29ufWdldFJ1bnRpbWVJbnRlcnJ1cHRSZWFzb24oKXtyZXR1cm4gdGhpcy5ydW50aW1lSW50ZXJydXB0UmVhc29ufWdldFN0YXRpY1N0YWdlRW5kVGltZSgpe3JldHVybiB0aGlzLnN0YXRpY1N0YWdlRW5kVGltZX1nZXRSdW50aW1lU3RhZ2VFbmRUaW1lKCl7cmV0dXJuIHRoaXMucnVudGltZVN0YWdlRW5kVGltZX1hYmFuZG9uUmVuZGVyKCl7aWYoIXRoaXMubWF5QWJhbmRvbil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGkuSW52YXJpYW50RXJyb3IoImBhYmFuZG9uUmVuZGVyYCBjYWxsZWQgb24gYSBzdGFnZSBjb250cm9sbGVyIHRoYXQgY2Fubm90IGJlIGFiYW5kb25lZC4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTkzOCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTt0aGlzLmFiYW5kb25SZW5kZXJJbXBsKCl9YWJhbmRvblJlbmRlckltcGwoKXtsZXR7Y3VycmVudFN0YWdlOmV9PXRoaXM7c3dpdGNoKGUpe2Nhc2UgMjp0aGlzLmN1cnJlbnRTdGFnZT01LHRoaXMucmVzb2x2ZVJ1bnRpbWVTdGFnZSgpO3JldHVybjtjYXNlIDM6dGhpcy5jdXJyZW50U3RhZ2U9NTtyZXR1cm59fWFkdmFuY2VTdGFnZShlKXtpZihlPD10aGlzLmN1cnJlbnRTdGFnZSlyZXR1cm47bGV0IHQ9dGhpcy5jdXJyZW50U3RhZ2U7aWYodGhpcy5jdXJyZW50U3RhZ2U9ZSx0PDMmJmU+PTMmJih0aGlzLnN0YXRpY1N0YWdlRW5kVGltZT1wZXJmb3JtYW5jZS5ub3coKStwZXJmb3JtYW5jZS50aW1lT3JpZ2luLHRoaXMucmVzb2x2ZVJ1bnRpbWVTdGFnZSgpKSx0PDQmJmU+PTQpe3RoaXMucnVudGltZVN0YWdlRW5kVGltZT1wZXJmb3JtYW5jZS5ub3coKStwZXJmb3JtYW5jZS50aW1lT3JpZ2luLHRoaXMucmVzb2x2ZUR5bmFtaWNTdGFnZSgpO3JldHVybn19cmVzb2x2ZVJ1bnRpbWVTdGFnZSgpe2xldCBlPXRoaXMucnVudGltZVN0YWdlTGlzdGVuZXJzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0oKTtlLmxlbmd0aD0wLHRoaXMucnVudGltZVN0YWdlUHJvbWlzZS5yZXNvbHZlKCl9cmVzb2x2ZUR5bmFtaWNTdGFnZSgpe2xldCBlPXRoaXMuZHluYW1pY1N0YWdlTGlzdGVuZXJzO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0oKTtlLmxlbmd0aD0wLHRoaXMuZHluYW1pY1N0YWdlUHJvbWlzZS5yZXNvbHZlKCl9Z2V0U3RhZ2VQcm9taXNlKGUpe3N3aXRjaChlKXtjYXNlIDM6cmV0dXJuIHRoaXMucnVudGltZVN0YWdlUHJvbWlzZS5wcm9taXNlO2Nhc2UgNDpyZXR1cm4gdGhpcy5keW5hbWljU3RhZ2VQcm9taXNlLnByb21pc2U7ZGVmYXVsdDp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGkuSW52YXJpYW50RXJyb3IoYEludmFsaWQgcmVuZGVyIHN0YWdlOiAke2V9YCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4ODEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9fXdhaXRGb3JTdGFnZShlKXtyZXR1cm4gdGhpcy5nZXRTdGFnZVByb21pc2UoZSl9ZGVsYXlVbnRpbFN0YWdlKGUsdCxyKXt2YXIgbixhLG87bGV0IGkscz0obj10aGlzLmdldFN0YWdlUHJvbWlzZShlKSxhPXQsbz1yLGk9bmV3IFByb21pc2UoKGUsdCk9PntuLnRoZW4oZS5iaW5kKG51bGwsbyksdCl9KSx2b2lkIDAhPT1hJiYoaS5kaXNwbGF5TmFtZT1hKSxpKTtyZXR1cm4gdGhpcy5hYm9ydFNpZ25hbCYmcy5jYXRjaChsKSxzfX1mdW5jdGlvbiBsKCl7fX0sODY3NzAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2NyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDpmdW5jdGlvbigpe3JldHVybiBwfSxjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTpmdW5jdGlvbigpe3JldHVybiBofSxjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIG19LG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IG89ZS5yKDE3NTE4KSxpPWUucig2Nzc4MSkscz1lLnIoMTI5NjUpLGM9ZS5yKDQxMDYyKSx1PWUucigxNTUwOCksbD1lLnIoNDUwMTQpLGQ9ZS5yKDc1ODI3KSxmPWUucigzNzE2NSk7ZnVuY3Rpb24gcChlLHQpe2xldCByPXMud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZihyKXN3aXRjaChyLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4geSh0LHIpO2Nhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYy5JbnZhcmlhbnRFcnJvcigiY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzY5IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBjLkludmFyaWFudEVycm9yKCJjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzM5IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UicmVxdWVzdCI6cmV0dXJuIGIoZSx0LHIpfSgwLHMudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZS5yKDU1NTI1KTtsZXQgaD1tO2Z1bmN0aW9uIG0oZSx0KXtsZXQgcj1zLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYocilzd2l0Y2goci50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWxlZ2FjeSI6cmV0dXJuIHkodCxyKTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYy5JbnZhcmlhbnRFcnJvcigiY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc0NyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInByZXJlbmRlci1ydW50aW1lIjp2YXIgbixhO3JldHVybiBuPWUsYT1yLCgwLGkuZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSkoYSx2KG4pKTtjYXNlInJlcXVlc3QiOnJldHVybiBiKGUsdCxyKX0oMCxzLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpfWZ1bmN0aW9uIGcoZSl7aWYoZS5mb3JjZVN0YXRpYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtsZXQgdD1zLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYodClzd2l0Y2godC50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpyZXR1cm4oMCx1Lm1ha2VIYW5naW5nUHJvbWlzZSkodC5yZW5kZXJTaWduYWwsZS5yb3V0ZSwiYHNlYXJjaFBhcmFtc2AiKTtjYXNlInByZXJlbmRlci1ydW50aW1lIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGMuSW52YXJpYW50RXJyb3IoImNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gYSBydW50aW1lIHByZXJlbmRlci4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc2OCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYy5JbnZhcmlhbnRFcnJvcigiY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc0NiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWxlZ2FjeSI6Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KX0oMCxzLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpfWZ1bmN0aW9uIHkoZSx0KXtpZihlLmZvcmNlU3RhdGljKXJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO3N3aXRjaCh0LnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOnZhciByPWUsbj10O2xldCBhPVAuZ2V0KG4pO2lmKGEpcmV0dXJuIGE7bGV0IHM9KDAsdS5tYWtlSGFuZ2luZ1Byb21pc2UpKG4ucmVuZGVyU2lnbmFsLHIucm91dGUsImBzZWFyY2hQYXJhbXNgIiksYz1uZXcgUHJveHkocyx7Z2V0KGUsdCxyKXtpZihPYmplY3QuaGFzT3duKHMsdCkpcmV0dXJuIG8uUmVmbGVjdEFkYXB0ZXIuZ2V0KGUsdCxyKTtzd2l0Y2godCl7Y2FzZSJ0aGVuIjpyZXR1cm4oMCxpLmFubm90YXRlRHluYW1pY0FjY2VzcykoImBhd2FpdCBzZWFyY2hQYXJhbXNgLCBgc2VhcmNoUGFyYW1zLnRoZW5gLCBvciBzaW1pbGFyIixuKSxvLlJlZmxlY3RBZGFwdGVyLmdldChlLHQscik7Y2FzZSJzdGF0dXMiOnJldHVybigwLGkuYW5ub3RhdGVEeW5hbWljQWNjZXNzKSgiYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyIixuKSxvLlJlZmxlY3RBZGFwdGVyLmdldChlLHQscik7ZGVmYXVsdDpyZXR1cm4gby5SZWZsZWN0QWRhcHRlci5nZXQoZSx0LHIpfX19KTtyZXR1cm4gUC5zZXQobixjKSxjO2Nhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5Ijp2YXIgbD1lLGQ9dDtsZXQgcD1QLmdldChsKTtpZihwKXJldHVybiBwO2xldCBoPVByb21pc2UucmVzb2x2ZSh7fSksbT1uZXcgUHJveHkoaCx7Z2V0KGUsdCxyKXtpZihPYmplY3QuaGFzT3duKGgsdCkpcmV0dXJuIG8uUmVmbGVjdEFkYXB0ZXIuZ2V0KGUsdCxyKTtpZigic3RyaW5nIj09dHlwZW9mIHQmJiJ0aGVuIj09PXQpe2xldCBlPSJgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhciI7bC5keW5hbWljU2hvdWxkRXJyb3I/KDAsZi50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikobC5yb3V0ZSxlKToicHJlcmVuZGVyLXBwciI9PT1kLnR5cGU/KDAsaS5wb3N0cG9uZVdpdGhUcmFja2luZykobC5yb3V0ZSxlLGQuZHluYW1pY1RyYWNraW5nKTooMCxpLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShlLGwsZCl9cmV0dXJuIG8uUmVmbGVjdEFkYXB0ZXIuZ2V0KGUsdCxyKX19KTtyZXR1cm4gUC5zZXQobCxtKSxtO2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIGIoZSx0LHIpe3JldHVybiB0LmZvcmNlU3RhdGljP1Byb21pc2UucmVzb2x2ZSh7fSk6dihlKX1sZXQgUD1uZXcgV2Vha01hcCxfPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFMoZSl7bGV0IHQ9Xy5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgcj1Qcm9taXNlLnJlc29sdmUoe30pLG49bmV3IFByb3h5KHIse2dldDpmdW5jdGlvbiB0KG4sYSxpKXtyZXR1cm4gT2JqZWN0Lmhhc093bihyLGEpfHwic3RyaW5nIiE9dHlwZW9mIGF8fCJ0aGVuIiE9PWEmJmQud2VsbEtub3duUHJvcGVydGllcy5oYXMoYSl8fCgwLGYudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKShlLHQpLG8uUmVmbGVjdEFkYXB0ZXIuZ2V0KG4sYSxpKX19KTtyZXR1cm4gXy5zZXQoZSxuKSxufWZ1bmN0aW9uIHYoZSl7bGV0IHQ9UC5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgcj1Qcm9taXNlLnJlc29sdmUoZSk7cmV0dXJuIFAuc2V0KGUscikscn0oMCxsLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGZ1bmN0aW9uKGUsdCl7bGV0IHI9ZT9gUm91dGUgIiR7ZX0iIGA6IlRoaXMgcm91dGUgIjtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGAke3J9dXNlZCAke3R9LiBcYHNlYXJjaFBhcmFtc1xgIGlzIGEgUHJvbWlzZSBhbmQgbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBcYGF3YWl0XGAgb3IgXGBSZWFjdC51c2UoKVxgIGJlZm9yZSBhY2Nlc3NpbmcgaXRzIHByb3BlcnRpZXMuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4NDgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9KX0sNDQ2MzEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImR5bmFtaWNBY2Nlc3NBc3luY1N0b3JhZ2VJbnN0YW5jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49KDAsZS5yKDQ5MjExKS5jcmVhdGVBc3luY0xvY2FsU3RvcmFnZSkoKX0sNDc1OTUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImR5bmFtaWNBY2Nlc3NBc3luY1N0b3JhZ2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmR5bmFtaWNBY2Nlc3NBc3luY1N0b3JhZ2VJbnN0YW5jZX19KTtsZXQgbj1lLnIoNDQ2MzEpfSwzNjA3MCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y3JlYXRlUGFyYW1zRnJvbUNsaWVudDpmdW5jdGlvbigpe3JldHVybiBofSxjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIG19LGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4geX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz1lLnIoODk3OTEpLGk9ZS5yKDE3NTE4KSxzPWUucig2Nzc4MSksYz1lLnIoMTI5NjUpLHU9ZS5yKDQxMDYyKSxsPWUucig3NTgyNyksZD1lLnIoMTU1MDgpLGY9ZS5yKDQ1MDE0KSxwPWUucig0NzU5NSk7ZnVuY3Rpb24gaChlLHQpe2xldCByPWMud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZihyKXN3aXRjaChyLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4gUChlLHQscik7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHUuSW52YXJpYW50RXJyb3IoImNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MzYiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyB1LkludmFyaWFudEVycm9yKCJjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NzAiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gTyhlKX0oMCxjLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpfWUucig1NTUyNSk7bGV0IG09eTtmdW5jdGlvbiBnKGUsdCl7bGV0IHI9Yy53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHIpc3dpdGNoKHIudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOnJldHVybiBQKGUsdCxyKTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgdS5JbnZhcmlhbnRFcnJvcigiY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MzgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIF8oZSxyKTtjYXNlInJlcXVlc3QiOnJldHVybiBPKGUpfSgwLGMudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZnVuY3Rpb24geShlLHQpe2xldCByPWMud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZihyKXN3aXRjaChyLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4gUChlLHQscik7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHUuSW52YXJpYW50RXJyb3IoImNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIF8oZSxyKTtjYXNlInJlcXVlc3QiOnJldHVybiBPKGUpfSgwLGMudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZnVuY3Rpb24gYihlKXtsZXQgdD1vLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZighdCl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHUuSW52YXJpYW50RXJyb3IoIk1pc3Npbmcgd29ya1N0b3JlIGluIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc3MyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXQgcj1jLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYocilzd2l0Y2goci50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpsZXQgbj1yLmZhbGxiYWNrUm91dGVQYXJhbXM7aWYobil7Zm9yKGxldCBhIGluIGUpaWYobi5oYXMoYSkpcmV0dXJuKDAsZC5tYWtlSGFuZ2luZ1Byb21pc2UpKHIucmVuZGVyU2lnbmFsLHQucm91dGUsImBwYXJhbXNgIil9YnJlYWs7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHUuSW52YXJpYW50RXJyb3IoImNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MzQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZShlKX1mdW5jdGlvbiBQKGUsdCxyKXtzd2l0Y2goci50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50Ijp7bGV0IG49ci5mYWxsYmFja1JvdXRlUGFyYW1zO2lmKG4pe2ZvcihsZXQgYSBpbiBlKWlmKG4uaGFzKGEpKXJldHVybiBmdW5jdGlvbihlLHQscil7bGV0IG49Uy5nZXQoZSk7aWYobilyZXR1cm4gbjtsZXQgYT1uZXcgUHJveHkoKDAsZC5tYWtlSGFuZ2luZ1Byb21pc2UpKHIucmVuZGVyU2lnbmFsLHQucm91dGUsImBwYXJhbXNgIiksdik7cmV0dXJuIFMuc2V0KGUsYSksYX0oZSx0LHIpfWJyZWFrfWNhc2UicHJlcmVuZGVyLXBwciI6e2xldCBuPXIuZmFsbGJhY2tSb3V0ZVBhcmFtcztpZihuKXtmb3IobGV0IGEgaW4gZSlpZihuLmhhcyhhKSlyZXR1cm4gZnVuY3Rpb24oZSx0LHIsbil7bGV0IGE9Uy5nZXQoZSk7aWYoYSlyZXR1cm4gYTtsZXQgbz17Li4uZX0saT1Qcm9taXNlLnJlc29sdmUobyk7cmV0dXJuIFMuc2V0KGUsaSksT2JqZWN0LmtleXMoZSkuZm9yRWFjaChlPT57bC53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhlKXx8dC5oYXMoZSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLGUse2dldCgpe2xldCB0PSgwLGwuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoInBhcmFtcyIsZSk7InByZXJlbmRlci1wcHIiPT09bi50eXBlPygwLHMucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHIucm91dGUsdCxuLmR5bmFtaWNUcmFja2luZyk6KDAscy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikodCxyLG4pfSxlbnVtZXJhYmxlOiEwfSl9KSxpfShlLG4sdCxyKX19fXJldHVybiBPKGUpfWZ1bmN0aW9uIF8oZSx0KXtyZXR1cm4oMCxzLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHQsTyhlKSl9bGV0IFM9bmV3IFdlYWtNYXAsdj17Z2V0OmZ1bmN0aW9uKGUsdCxyKXtpZigidGhlbiI9PT10fHwiY2F0Y2giPT09dHx8ImZpbmFsbHkiPT09dCl7bGV0IG49aS5SZWZsZWN0QWRhcHRlci5nZXQoZSx0LHIpO3JldHVybih7W3RdOiguLi50KT0+e2xldCByPXAuZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO3JldHVybiByJiZyLmFib3J0Q29udHJvbGxlci5hYm9ydChPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkFjY2Vzc2VkIGZhbGxiYWNrIGBwYXJhbXNgIGR1cmluZyBwcmVyZW5kZXJpbmcuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU2OTEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkpLG5ldyBQcm94eShuLmFwcGx5KGUsdCksdil9fSlbdF19cmV0dXJuIGkuUmVmbGVjdEFkYXB0ZXIuZ2V0KGUsdCxyKX19O2Z1bmN0aW9uIE8oZSl7bGV0IHQ9Uy5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgcj1Qcm9taXNlLnJlc29sdmUoZSk7cmV0dXJuIFMuc2V0KGUscikscn0oMCxmLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGZ1bmN0aW9uKGUsdCl7bGV0IHI9ZT9gUm91dGUgIiR7ZX0iIGA6IlRoaXMgcm91dGUgIjtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGAke3J9dXNlZCAke3R9LiBcYHBhcmFtc1xgIGlzIGEgUHJvbWlzZSBhbmQgbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBcYGF3YWl0XGAgb3IgXGBSZWFjdC51c2UoKVxgIGJlZm9yZSBhY2Nlc3NpbmcgaXRzIHByb3BlcnRpZXMuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4MzQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9KX0sMTk5NTksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkNsaWVudFBhZ2VSb290Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTtsZXQgbj1lLnIoOTgxMzQpLGE9ZS5yKDQxMDYyKSxvPWUucigxNjg3MiksaT1lLnIoNzUyMDEpLHM9ZS5yKDg4MDYyKSxjPWUucigzMTg5OSk7ZnVuY3Rpb24gdSh7Q29tcG9uZW50OnQsc2VydmVyUHJvdmlkZWRQYXJhbXM6cn0pe2xldCB1LGw7aWYobnVsbCE9PXIpdT1yLnNlYXJjaFBhcmFtcyxsPXIucGFyYW1zO2Vsc2V7bGV0IGU9KDAsaS51c2UpKG8uTGF5b3V0Um91dGVyQ29udGV4dCk7bD1udWxsIT09ZT9lLnBhcmVudFBhcmFtczp7fSx1PSgwLHMudXJsU2VhcmNoUGFyYW1zVG9QYXJzZWRVcmxRdWVyeSkoKDAsaS51c2UpKGMuU2VhcmNoUGFyYW1zQ29udGV4dCkpfWlmKCJ1Ijx0eXBlb2Ygd2luZG93KXtsZXQgcixvLHt3b3JrQXN5bmNTdG9yYWdlOml9PWUucig4OTc5MSkscz1pLmdldFN0b3JlKCk7aWYoIXMpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBhLkludmFyaWFudEVycm9yKCJFeHBlY3RlZCB3b3JrU3RvcmUgdG8gZXhpc3Qgd2hlbiBoYW5kbGluZyBzZWFyY2hQYXJhbXMgaW4gYSBjbGllbnQgUGFnZS4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU2NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXR7Y3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDpjfT1lLnIoODY3NzApO3I9Yyh1LHMpO2xldHtjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OmR9PWUucigzNjA3MCk7cmV0dXJuIG89ZChsLHMpLCgwLG4uanN4KSh0LHtwYXJhbXM6byxzZWFyY2hQYXJhbXM6cn0pfXtsZXR7Y3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudDpyfT1lLnIoNjg2MTQpLGE9cih1KSx7Y3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudDpvfT1lLnIoODcxODkpLGk9byhsKTtyZXR1cm4oMCxuLmpzeCkodCx7cGFyYW1zOmksc2VhcmNoUGFyYW1zOmF9KX19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMzM3ODAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkNsaWVudFNlZ21lbnRSb290Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTtsZXQgbj1lLnIoOTgxMzQpLGE9ZS5yKDQxMDYyKSxvPWUucigxNjg3MiksaT1lLnIoNzUyMDEpO2Z1bmN0aW9uIHMoe0NvbXBvbmVudDp0LHNsb3RzOnIsc2VydmVyUHJvdmlkZWRQYXJhbXM6c30pe2xldCBjO2lmKG51bGwhPT1zKWM9cy5wYXJhbXM7ZWxzZXtsZXQgZT0oMCxpLnVzZSkoby5MYXlvdXRSb3V0ZXJDb250ZXh0KTtjPW51bGwhPT1lP2UucGFyZW50UGFyYW1zOnt9fWlmKCJ1Ijx0eXBlb2Ygd2luZG93KXtsZXQgbyx7d29ya0FzeW5jU3RvcmFnZTppfT1lLnIoODk3OTEpLHM9aS5nZXRTdG9yZSgpO2lmKCFzKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYS5JbnZhcmlhbnRFcnJvcigiRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgcGFyYW1zIGluIGEgY2xpZW50IHNlZ21lbnQgc3VjaCBhcyBhIExheW91dCBvciBUZW1wbGF0ZS4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTYwMCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXR7Y3JlYXRlUGFyYW1zRnJvbUNsaWVudDp1fT1lLnIoMzYwNzApO3JldHVybiBvPXUoYyxzKSwoMCxuLmpzeCkodCx7Li4ucixwYXJhbXM6b30pfXtsZXR7Y3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudDphfT1lLnIoODcxODkpLG89YShjKTtyZXR1cm4oMCxuLmpzeCkodCx7Li4ucixwYXJhbXM6b30pfX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyMDQxNCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiSWNvbk1hcmsiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig5ODEzNCksYT0oKT0+InUiPnR5cGVvZiB3aW5kb3c/bnVsbDooMCxuLmpzeCkoIm1ldGEiLHtuYW1lOiLCq254dC1pY29uwrsifSl9XSk7"}},"time_used":5,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":5,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.155.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.358Z","timestamp":1785126647358,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/botguard-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"botguard-scs\"\r\nreport-to: {\"group\":\"botguard-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/botguard-scs\"}]}\r\ncontent-length: 23758\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Tue, 21 Jul 2026 17:04:08 GMT\r\nexpires: Wed, 21 Jul 2027 17:04:08 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 21 Jul 2026 08:00:00 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding\r\nage: 473199\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":62519,"size_decoded":24569,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (61258)","md5":"443622910d8e7fe75010d4a41f533e07","sha1":"9774250436c6d11ce6978a2f57e620b1b86098c1","sha256":"6fca97ac502ef4f1d5ac6a8c662da7a8a9bd4d434faebcc4878d0f025fbaa15a","sha512":"8ce4ae6fb3b48726d2ac7dd7f8bcfb87df79adfc89c666d8278594d86648345411b78b003967291c4125ebbf78a2af3c7dd7dfdb100899ecea73c8ad8bd8b7a5","ssdeep":"1536:jN7w3cPBzlUowT2cm9iXFHDYzcmNkBfXoLz:RtyokXFHDSH","tlshash":"ce532acf72d2b73559e269e6105f410a62fe940a4c85186fba10f6f42a70d4b903bf7e","first_seen":"2026-07-25T07:02:54.064057Z","last_seen":"2026-07-27T07:00:44.845626Z","times_seen":542,"resource_available":true,"data":"Ly8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PQooZnVuY3Rpb24oKXt2YXIgZD1mdW5jdGlvbihSLGMsRyxCLG0sTixoLFAsayxEKXt7az05ODt3aGlsZShrIT1jKXtpZihrPT02OClyZXR1cm4gRDtpZihrPT04NylrPShHPDwyJjcpPDYmJigoR140MCkmNyk+PTQ/NDA6Njg7ZWxzZSBpZihrPT05OClrPTM3O2Vsc2UgaWYoaz09NDApe2E6e2lmKCEoUD0oaD1tLFopLnRydXN0ZWRUeXBlcyxQKXx8IVAuY3JlYXRlUG9saWN5KXtEPWg7YnJlYWsgYX10cnl7aD1QLmNyZWF0ZVBvbGljeShOLHtjcmVhdGVIVE1MOm4sY3JlYXRlU2NyaXB0Om4sY3JlYXRlU2NyaXB0VVJMOm59KX1jYXRjaChJKXtpZihaLmNvbnNvbGUpWi5jb25zb2xlW0JdKEkubWVzc2FnZSl9RD1ofWs9Njh9ZWxzZSBrPT01Nj8oRD1CLGs9ODcpOms9PTM3JiYoaz0oR14xMyk8MjQmJihHXlIpPj0xOD81Njo4Nyl9fX0sWj10aGlzfHxzZWxmLG49ZnVuY3Rpb24oUil7cmV0dXJuIGQuY2FsbCh0aGlzLDMwLDgwLDMsUil9OygwLGV2YWwpKGZ1bmN0aW9uKFIsYyl7cmV0dXJuKGM9ZCgzMCw4MCwxNCwiZXJyb3IiLG51bGwsImFkIikpJiZSLmV2YWwoYy5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEcpe3JldHVybiBjLmNyZWF0ZVNjcmlwdChHKX06ZnVuY3Rpb24oRyl7cmV0dXJuIiIrR319KFopKEFycmF5KE1hdGgucmFuZG9tKCkqNzgyNHwwKS5qb2luKCJcbiIpK1snLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PScsCicoZnVuY3Rpb24oKXsvKicsCicnLAonIENvcHlyaWdodCBHb29nbGUgTExDJywKJyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCcsCicqLycsCid2YXIgY3U9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXtmb3IoZD0oUD05OCwxNik7Oyl0cnl7aWYoUD09ODApYnJlYWs7ZWxzZSBpZihQPT0zNylQPSgoR3w2KSY3KT49MyYmKEc+PjImNik8Mz81Njo4NztlbHNlIGlmKFA9PTg3KVA9KEd8OCk9PUc/NDA6Njg7ZWxzZSBpZihQPT03NSlQPTk5O2Vsc2UgaWYoUD09MSlkPTE2LGUoODgsRCxaLFQpLFA9MzI7ZWxzZSBpZihQPT01NilrLnJhdz1SLE9iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGspLE9iamVjdC5mcmVlemUoUikpLE49ayxQPTg3O2Vsc2UgaWYoUD09NDApUD05OTtlbHNlIGlmKFA9PTYpZD0yMSxuPWtuKEIsayxSLFopLFA9MzI7ZWxzZSBpZihQPT05OClQPTM3O2Vsc2UgaWYoUD09MzkpWi5TPWgsQj1aLlAucG9wKCksUD02O2Vsc2V7aWYoUD09NjgpcmV0dXJuIE47UD09NTE/UD1jJiZaLlM/MTY6NzU6UD09NTI/KE49bixQPTY4KTpQPT0zMj8oZD0xNixQPTUxKTpQPT0xNj8obT1aLlMsbShmdW5jdGlvbigpe1JCKDMxLGZhbHNlLFosUixSKX0pLFA9NTIpOlA9PTk5JiYoUD1aLlAubGVuZ3RoPzM5OjUyKX19Y2F0Y2goSSl7aWYoZD09MTYpdGhyb3cgSTtkPT0yMSYmKFQ9SSxQPTEpfX0sb0I9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQil7Zm9yKG09MTttIT01OTspaWYobT09MjYpbT1SPDwxJms/ODg6OTI7ZWxzZSBpZihtPT0zNyl7YTp7aWYodHlwZW9mIGM9PT0ic3RyaW5nIil7Qj10eXBlb2YgRCE9PSJzdHJpbmcifHxELmxlbmd0aCE9Rz8tMTpjLmluZGV4T2YoRCxoKTticmVhayBhfWZvcihaPWg7WjxjLmxlbmd0aDtaKyspaWYoWiBpbiBjJiZjW1pdPT09RCl7Qj1aO2JyZWFrIGF9Qj0tMX1tPTIzfWVsc2UgaWYobT09NzApdGhpcy5CPUcsbT0yNjtlbHNlIGlmKG09PTc0KVo9dHlwZW9mIGMsbj1aIT1oP1o6Yz9BcnJheS5pc0FycmF5KGMpPyJhcnJheSI6WjoibnVsbCIsQj1uPT1EfHxuPT1oJiZ0eXBlb2YgYy5sZW5ndGg9PUcsbT01NjtlbHNlIGlmKG09PTM2KW09KFJ8NDApPT1SPzc0OjU2O2Vsc2V7aWYobT09ODgpcmV0dXJuIEI7bT09NTY/bT0oUj4+MSZrKT09MT8zNzoyMzptPT02MT8oQj1jdShHLEcsMyksbT0zNik6bT09MjM/bT0oUi01JjMpPT0zPzcwOjI2Om09PTA/bT0oUiY1OSk9PVI/NjE6MzY6bT09OTI/KHRoaXMubisrLGg9Ry10aGlzLmgsdGhpcy5oKz1oL3RoaXMubix0aGlzLmh4Kz1oKihHLXRoaXMuaCksbT04OCk6bT09MSYmKG09MCl9fSxDbj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7Zm9yKG49NDc7biE9MjE7KWlmKG49PTQ1KW49KFJeMjIpPj4zPzU3OjY3O2Vsc2UgaWYobj09Njgpbj1SLTQ+PjQ+PTEmJigoUl42OCkmMTYpPDI/MTI6OTI7ZWxzZSBpZihuPT1rKW49KFImOTApPT1SPzMzOjY4O2Vsc2UgaWYobj09NjcpbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRyxFUikmJkdbRVJdfHwoR1tFUl09KytIdSksbj01NztlbHNlIGlmKG49PTQ3KW49aztlbHNlIGlmKG49PTMzKW09YSgxOCxudWxsLDgxOTIsRyx0cnVlKSxuPTY4O2Vsc2V7aWYobj09NTcpcmV0dXJuIG07bj09OTI/bj0oUnw0OCk9PVI/ODE6NDU6bj09ODE/KHRoaXNbdGhpcysiIl09dGhpcyxuPTQ1KTpuPT0xMiYmKGM9aCxjXj1jPDwxMyxjPShaPWM+PjE3LChjfDApLShjJlopLSh+Y15aKSsofmN8WikpLChjPShjXmM8PDUpJkQpfHwoYz0xKSxtPShHfDApKyhjfDApLTIqKEcmYyksbj05Mil9fSxySj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtmb3IobT05NTttIT02NTspe2lmKG09PTg3KXJldHVybiBCO2lmKG09PTI4KWhXKDI0LHRydWUsRyksbT0zMTtlbHNlIGlmKG09PTQ2KXthOntmb3IoYyBpbiBoKWlmKEQuY2FsbCh2b2lkIDAsaFtjXSxjLGgpKXtCPVI7YnJlYWsgYX1CPUd9bT04N31lbHNlIGlmKG09PTMxKW09aC5aW0RdLmxlbmd0aD09Uj84OToxMztlbHNlIGlmKG09PTIxKUQ9Ry50eXBlLG09Nzg7ZWxzZSBpZihtPT03MSl0aGlzLmxYPXRoaXMubFgsdGhpcy5nPXRoaXMuZyxtPTU5O2Vsc2UgaWYobT09NiltPShrfDE2KT09az83NTo5NDtlbHNlIGlmKG09PTEzKW09KGs+PjImMTMpPT0xPzcxOjU5O2Vsc2UgaWYobT09NTkpbT0oaz4+MSY3KT09ND83OTo2O2Vsc2UgaWYobT09OTUpbT02MztlbHNlIGlmKG09PTk0KW09KChrXjUyKSYxMyk+PTgmJigoa141MCkmMTQpPDk/NDY6ODc7ZWxzZSBpZihtPT02MyltPWs+PjEmNj8xMzoyMTtlbHNlIGlmKG09PTc4KW09RCBpbiBoLlomJnRXKDcsUixHLGguWltEXSk/Mjg6MTM7ZWxzZSBpZihtPT03OSltPTY7ZWxzZSBpZihtPT03NSl7YTp7Zm9yKG49UjtuPEQubGVuZ3RoOysrbilpZihaPURbbl0sIVouZlgmJloubGlzdGVuZXI9PWMmJlouY2FwdHVyZT09ISFHJiZaLlZuPT1oKXtCPW47YnJlYWsgYX1CPS0xfW09OTR9ZWxzZSBtPT04OSYmKGRlbGV0ZSBoLlpbRF0saC5KeC0tLG09MTMpfX0sdFc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXt7UD05NDt3aGlsZShQIT05KWlmKFA9PTE2KUQ9b0IoMTMsNiwxLFIsRyxoKSwoYz1EPj1SKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGgsRCwxKSxkPWMsUD00NztlbHNle2lmKFA9PTQpcmV0dXJuIGQ7aWYoUD09NTcpbT1aW0JdLFA9NDA7ZWxzZSBpZihQPT01MilQPTM3O2Vsc2UgaWYoUD09NDApUD0hb0IoMTMsNDUsRywib2JqZWN0IiwiYXJyYXkiLG0pfHxOUCg0LCJvYmplY3QiLDE5LG0pJiZtLm5vZGVUeXBlPkQ/OTU6NzU7ZWxzZSBpZihQPT00NylQPShrJjI3KT09az82NTo3MjtlbHNlIGlmKFA9PTkzKUc9UltsOV0sZD1HIGluc3RhbmNlb2Ygak0/RzpudWxsLFA9NDtlbHNlIGlmKFA9PTYyKVA9KGsrOF4yNyk+PWsmJihrLTR8NzUpPGs/Mjk6MTg7ZWxzZSBpZihQPT03NSl7YTp7aWYobSYmdHlwZW9mIG0ubGVuZ3RoPT1HKXtpZihOUCg0LCJvYmplY3QiLDE4LG0pKXtUPXR5cGVvZiBtLml0ZW09PSJmdW5jdGlvbiJ8fHR5cGVvZiBtLml0ZW09PSJzdHJpbmciO2JyZWFrIGF9aWYodHlwZW9mIG09PT0iZnVuY3Rpb24iKXtUPXR5cGVvZiBtLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19VD1SfVA9KFJCKDMzLEQsaCxUP2hXKDEyLEQsbSk6bSxOKSw2MCl9ZWxzZSBQPT02NT8oTj1mdW5jdGlvbihJKXtJJiZuLmFwcGVuZENoaWxkKHR5cGVvZiBJPT09InN0cmluZyI/Yy5jcmVhdGVUZXh0Tm9kZShJKTpJKX0sQj0xLFA9NTIpOlA9PTYwPyhCKyssUD0zNyk6UD09OTQ/UD0xMjpQPT05OT8oYUIuY2FsbCh0aGlzLFI/Ui50eXBlOiIiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MCx0aGlzLmtleT0iIix0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT1mYWxzZSx0aGlzLnN0YXRlPW51bGwsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMudGltZVN0YW1wPTAsdGhpcy5ZTj1udWxsLFImJnRoaXMuaW5pdChSLEcpLFA9NjIpOlA9PTcyP1A9KGs+PjEmMjMpPT0yPzkzOjQ6UD09MTI/UD1rKzYmMTM/NjI6OTk6UD09Mjk/KGQ9eWZbR10oeWYucHJvdG90eXBlLHtwYXJlbnQ6UixsZW5ndGg6UixzdGFjazpSLHBvcDpSLHByb3RvdHlwZTpSLHByb3BlcnR5SXNFbnVtZXJhYmxlOlIsZG9jdW1lbnQ6UixzcGxpY2U6UixjYWxsOlIscmVwbGFjZTpSLGNvbnNvbGU6UixmbG9vcjpSfSksUD0xOCk6UD09Mzc/UD1CPFoubGVuZ3RoPzU3OjcyOlA9PTk1PyhOKG0pLFA9NjApOlA9PTE4JiYoUD1rPj4xPDkmJihrXjgwKT4+Mz49Mj8xNjo0Nyl9fX0sTVA9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXt7Qj00Nzt3aGlsZShCIT0zNCl7aWYoQj09OTIpdGhyb3cgbmV3IFNNKHR5cGVvZiBHLDEpO2lmKEI9PTk2KVIuc2FuZGJveC5zdXBwb3J0cyYmIVIuc2FuZGJveC5zdXBwb3J0cyhEW2NdKXx8Ui5zYW5kYm94LmFkZChEW2NdKSxCPTc5O2Vsc2UgaWYoQj09NTYpQj0oays4JjU5KTxrJiYoays2XjUpPj1rPzMyOjgzO2Vsc2UgaWYoQj09NSlCPW48Ui5sZW5ndGg/MTg6NDk7ZWxzZSBpZihCPT02NylCPUcgaW5zdGFuY2VvZiBYMT83NTo5MjtlbHNlIGlmKEI9PTMwKXtpZihHIGluc3RhbmNlb2YgWDEpaD1HLktqO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO1Iuc3JjPWgudG9TdHJpbmcoKSxCPTUxfWVsc2UgaWYoQj09MjUpQj02MjtlbHNlIGlmKEI9PTQ3KUI9NTY7ZWxzZSBpZihCPT00NSlUPSEhKGg9Ry5PMiwtMip+KGgmUikrfmgrKGheUikrKGh8flIpKSxCPTY7ZWxzZSBpZihCPT03OSljKyssQj02MjtlbHNlIGlmKEI9PTc1KUQ9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMgYWxsb3ctZm9ybXMgYWxsb3ctcG9wdXBzIGFsbG93LXBvcHVwcy10by1lc2NhcGUtc2FuZGJveCBhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24iLnNwbGl0KCIgIiksUi5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCIiKSxjPTAsQj0yNTtlbHNlIGlmKEI9PTgzKUI9ay01PDE1JiYoa142OSk+PjQ+PTI/NDU6NjtlbHNlIGlmKEI9PTUzKUI9NzY7ZWxzZXtpZihCPT01MSlyZXR1cm4gVDtCPT01Mj9CPTE2OkI9PTcyP0I9NTpCPT02Mj9CPWM8RC5sZW5ndGg/OTY6MzA6Qj09Nzc/KFIucmVtb3ZlQXR0cmlidXRlKCJzcmNkb2MiKSxCPTY3KTpCPT00PyhuKyssQj01KTpCPT0xNj9CPWg+Nz8yNzo0OkI9PTE4PyhoKz1HLEQ9KG09RDw8RyxjPVJbbl0sMiooY3wwKSt+Yy0ofm18YykpLEI9NTIpOkI9PTQ5PyhUPVosQj04Myk6Qj09Nj9CPShrKzUmNyk9PTE/NTM6NzY6Qj09MTM/Qj0xNjpCPT0zMj8oaD1uPTAsWj1bXSxCPTcyKTpCPT0yNz8oaC09OCxaLnB1c2goRD4+aCYyNTUpLEI9MTMpOkI9PTc2JiYoQj0oaysxJjExKT09Mz83Nzo1MSl9fX19LGhXPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7Zm9yKFo9NTtaIT05NjspaWYoWj09OTEpe2E6e2lmKChEPUcubGVuZ3RoLEQpPlIpe2ZvcihjPShoPUFycmF5KEQpLFIpO2M8RDtjKyspaFtjXT1HW2NdO249aDticmVhayBhfW49W119Wj05OX1lbHNlIGlmKFo9PTQwKW49TWF0aC5mbG9vcih0aGlzLkooKSksWj01NztlbHNlIGlmKFo9PTEwKVo9ay00Pj4zPT0xPzkxOjk5O2Vsc2UgaWYoWj09NDIpUi5uWD1mdW5jdGlvbigpe3JldHVybiBSLlh6P1IuWHo6Ui5Yej1uZXcgUn0sUi5Yej12b2lkIDAsWj0xMDtlbHNlIGlmKFo9PTIpRy5mWD1SLEcubGlzdGVuZXI9bnVsbCxHLnByb3h5PW51bGwsRy5zcmM9bnVsbCxHLlZuPW51bGwsWj01OTtlbHNlIGlmKFo9PTg1KVo9KGt8NTYpPT1rPzQwOjU3O2Vsc2UgaWYoWj09NTcpWj0oaysxJjI4KT49ayYmKGstMV43KTxrPzI6NTk7ZWxzZSBpZihaPT01OSlaPShrfDcyKT09az80MjoxMDtlbHNlIGlmKFo9PTUpWj04NTtlbHNlIGlmKFo9PTk5KXJldHVybiBufSxUbz1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7e1Q9NTc7d2hpbGUoVCE9NTkpaWYoVD09aylEWi5jYWxsKHRoaXMpLFJ8fFpafHwoWlo9bmV3IG5uKSx0aGlzLlFuPXRoaXMuQT1udWxsLHRoaXMuWGk9dGhpcy5qbT1mYWxzZSx0aGlzLnMyPXZvaWQgMCx0aGlzLktYPXRoaXMuWjc9dGhpcy5jVj1udWxsLFQ9Njk7ZWxzZSBpZihUPT03NSlUPTQ7ZWxzZXtpZihUPT01MSlyZXR1cm4gTjtUPT00P1Q9QjxtLmxlbmd0aD81Mjo1MTpUPT04OT9UPShHLTVeMzIpPj1HJiYoRy00fDE2KTxHP2s6Njk6VD09MTM/KG49QnUoMyxuKSxaJiZaW2RKXT9aLkkuYWRkKFN0cmluZyhtKSxuLGgsTlAoNCxSLDE2LGMpPyEhYy5jYXB0dXJlOiEhYyxEKTpJQig2NCwib2JqZWN0IixmYWxzZSxuLGgsbSxaLGMsRCksVD01MSk6VD09OTA/KEI9MCxUPTc1KTpUPT01P1Q9QXJyYXkuaXNBcnJheShtKT85MDoxMzpUPT01Nz9UPTg5OlQ9PTE/KEIrKyxUPTQpOlQ9PTY5P1Q9Ry05Pj40PzUxOjU6VD09NTImJihUbyg1NCwib2JqZWN0Iiw5LHRydWUsRCxjLFosbixtW0JdKSxUPTEpfX19LGU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXt7bj0yMTt3aGlsZShuIT02NylpZihuPT0yMSluPTUwO2Vsc2UgaWYobj09MTkpbj0oKGteNTApJjI2KTw3JiYoa143OSk+PTI3Pzk2Ojg3O2Vsc2UgaWYobj09MjkpdHlwZW9mIGguY2xhc3NOYW1lPT1SP2guY2xhc3NOYW1lPUc6aC5zZXRBdHRyaWJ1dGUmJmguc2V0QXR0cmlidXRlKCJjbGFzcyIsRyksbj04OTtlbHNlIGlmKG49PTMpYz1HLHNSPT09dm9pZCAwJiYoc1I9UiksRD0oaD1zUik/aC5jcmVhdGVTY3JpcHRVUkwoYyk6YyxaPW5ldyBYMShEKSxuPTE5O2Vsc2UgaWYobj09NTApbj1rLTE+PjQ+PTEmJihrPj4xJjEyKTwyPzM6MTk7ZWxzZSBpZihuPT0yMClHLks9KChHLks/Ry5LKyJ+IjoiRToiKStoLm1lc3NhZ2UrUitoLnN0YWNrKS5zbGljZSgwLDIwNDgpLG49MTU7ZWxzZSBpZihuPT05NiluPTg3O2Vsc2UgaWYobj09OTIpWj1vQigxMyw3LDEsUixHLGgpPj1SLG49NjI7ZWxzZSBpZihuPT04NyluPShrfDMpPj40PDImJms+PjE+PS02Nj8yOTo4OTtlbHNlIGlmKG49PTYyKW49KGt8MjQpPT1rPzIwOjE1O2Vsc2UgaWYobj09ODkpbj0oays1JjgpPDgmJihrXjkzKT4+Mz49MT85Mjo2MjtlbHNlIGlmKG49PTE1KXJldHVybiBafX0sQVc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKGM9aztjIT00MDspe2lmKGM9PTM3KXJldHVybiBaO2lmKGM9PTY3KWM9Ry05PDwyPj1HJiYoRyszXjUpPEc/NTM6Mzc7ZWxzZSBpZihjPT04KXRoaXMudHlwZT1SLHRoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1oLHRoaXMuZGVmYXVsdFByZXZlbnRlZD10aGlzLlB0PWZhbHNlLGM9MjM7ZWxzZSBpZihjPT01KWM9KEcrNSYxNCk9PTI/ODY6Njc7ZWxzZSBpZihjPT0xMyl7YTp7aWYoIShEPW51bGwsaD1ILnRydXN0ZWRUeXBlcyxoKXx8IWguY3JlYXRlUG9saWN5KXtaPUQ7YnJlYWsgYX10cnl7RD1oLmNyZWF0ZVBvbGljeShSLHtjcmVhdGVIVE1MOnBuLGNyZWF0ZVNjcmlwdDpwbixjcmVhdGVTY3JpcHRVUkw6cG59KX1jYXRjaChuKXtILmNvbnNvbGUmJkguY29uc29sZS5lcnJvcihuLm1lc3NhZ2UpfVo9RH1jPTV9ZWxzZSBjPT04Nj8oYjkuY2FsbCh0aGlzLFIsaHx8UWYublgoKSxEKSxjPTY3KTpjPT0zOT9jPShHJjc5KT09Rz84OjIzOmM9PWs/Yz0zOTpjPT01Mz8oWj10eXBlb2YgRC5jbGFzc05hbWU9PSJzdHJpbmciP0QuY2xhc3NOYW1lOkQuZ2V0QXR0cmlidXRlJiZELmdldEF0dHJpYnV0ZShSKXx8aCxjPTM3KTpjPT0yMyYmKGM9KEc8PDEmMTYpPDE2JiYoR141OSk+PjM+PTI/MTM6NSl9fSxLbj1mdW5jdGlvbihrLFIsRyxoLEQsYyl7Zm9yKGM9Njc7YyE9Njk7KWlmKGM9PTU3KXRoaXMuc3JjPWgsdGhpcy5KeD1rLHRoaXMuWj17fSxjPTE3O2Vsc2V7aWYoYz09MTcpcmV0dXJuIEQ7Yz09Njc/Yz03NzpjPT0zMj9jPUc8PDImNT8xNzo1NzpjPT03Nz9jPShHPj4yJjMpPT1SPzM2OjMyOmM9PTM2JiYoV3UuY2FsbCh0aGlzKSx0aGlzLkk9bmV3IGpNKHRoaXMpLHRoaXMubHE9dGhpcyx0aGlzLk5vPW51bGwsYz0zMil9fSxJQj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQsSSl7Zm9yKEk9MTc7SSE9NTE7KWlmKEk9PTY3KVouYWRkTGlzdGVuZXIoQiksST0wO2Vsc2UgaWYoST09MTcpST01MztlbHNlIGlmKEk9PTE5KUk9KGteNzQpPj40PzYxOjM3O2Vsc2UgaWYoST09MTEpST1aLmF0dGFjaEV2ZW50PzU0OjMyO2Vsc2V7aWYoST09Nyl0aHJvdyBFcnJvcigiSW52YWxpZCBldmVudCB0eXBlIik7aWYoST09NzQpZm58fChuPVQpLG49PT12b2lkIDAmJihuPUcpLFouYWRkRXZlbnRMaXN0ZW5lcihjLnRvU3RyaW5nKCksQixuKSxJPTA7ZWxzZSBpZihJPT00OSlJPShrJjQ2KT09az85MzoxOTtlbHNlIGlmKEk9PTYxKUk9KGt8MjQpPT1rPzgwOjg2O2Vsc2UgaWYoST09MzcpST1jPzU1Ojc7ZWxzZSBpZihJPT04MClkPVIsST04NjtlbHNlIGlmKEk9PTg5KUk9Wi5hZGRFdmVudExpc3RlbmVyPzc0OjExO2Vsc2UgaWYoST09OTMpZD0hIShHLnJiJkQpJiZNUCg4LEQsRykhPWgmJighKGM9Ry5pcSwtMS1+KGN8RCktKGNeRCkpfHxHLmRpc3BhdGNoRXZlbnQodnUoNTYsUixELDIsNjQsOCxoLDI0KSkpJiYhRy5nLEk9MTk7ZWxzZSBpZihJPT04NSlkPXFQKFZmLFIpLEk9NDk7ZWxzZSBpZihJPT01NSlUPU5QKDQsUiwyMSxuKT8hIW4uY2FwdHVyZTohIW4sKFA9dFcoMjAsWikpfHwoWltsOV09UD1uZXcgak0oWikpLE49UC5hZGQoYyxoLEQsVCxtKSxJPTk3O2Vsc2V7aWYoST09MzYpdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtpZihJPT0wKWk5KyssST02MTtlbHNlIGlmKEk9PTUzKUk9KGstOXw4NCk8ayYmKGsrNV4zKT49az8xMDozNDtlbHNlIGlmKEk9PTU0KVouYXR0YWNoRXZlbnQoTG4oMywib24iLGMudG9TdHJpbmcoKSw0OCksQiksST0wO2Vsc2V7aWYoST09ODYpcmV0dXJuIGQ7ST09MzI/ST1aLmFkZExpc3RlbmVyJiZaLnJlbW92ZUxpc3RlbmVyPzY3OjM2Okk9PTEwPyhSLlFuJiZSLlFuLmZvckVhY2goRyx2b2lkIDApLEk9MzQpOkk9PTU5PyhCPUYxKDk0LCJvbiIsMyksTi5wcm94eT1CLEIuc3JjPVosQi5saXN0ZW5lcj1OLEk9ODkpOkk9PTk3P0k9Ti5wcm94eT82MTo1OTpJPT0zNCYmKEk9KGs8PDImMTMpPT00Pzg1OjQ5KX19fX0sZj1mdW5jdGlvbihrLFIsRyxoLEQsYyl7e0Q9MzA7d2hpbGUoRCE9NzkpaWYoRD09OTQpRD0oa3w3KT4+Mz84ODo1MTtlbHNlIGlmKEQ9PTUxKXRoaXMuTW89SC5kb2N1bWVudHx8ZG9jdW1lbnQsRD04ODtlbHNlIGlmKEQ9PTg4KUQ9ay0yPDwyPj1rJiYoays0XjI5KTxrPzYyOjYzO2Vsc2UgaWYoRD09MzApRD05NDtlbHNlIGlmKEQ9PTYyKUMoRyxSLGgpLFJbeG5dPTI3OTYsRD02MztlbHNlIGlmKEQ9PTYzKXJldHVybiBjfX0sT1I9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7e1Q9NTI7d2hpbGUoVCE9OTYpaWYoVD09NTApVD1jPT09IiJ8fGM9PXZvaWQgMD83NTo2NjtlbHNlIGlmKFQ9PTgxKVQ9Ui0yPj0xMCYmUis2PDI2PzU6ODY7ZWxzZSBpZihUPT02MilUPShSJjcwKT09Uj8yNDo3NDtlbHNlIGlmKFQ9PTc0KVQ9KFImNDUpPT1SPzE0OjExO2Vsc2UgaWYoVD09MjQpUD1mdW5jdGlvbigpe30sRD12b2lkIDAsYz1nSihHLGZ1bmN0aW9uKGQsSSl7Zm9yKEk9MTU7SSE9NjQ7KUk9PTE1P0k9UD82Nzo2NDpJPT02NyYmKGgmJnU5KGgpLEQ9ZCxQKCksUD12b2lkIDAsST02NCl9LCEhaCksWj1jWzBdLG49Y1sxXSxOPXtob3Q6ZnVuY3Rpb24oZCxJLFMsWCxNLHIsbCl7Zm9yKHI9NDc7ciE9MjU7KXtpZihyPT0xMylyZXR1cm4gTT1aKFMpLGQmJmQoTSksTTtyPT01MD8obCgpLHI9MjUpOnI9PTg0P3I9ST8zOToxMzpyPT1rPyhYPVAsUD1mdW5jdGlvbigpe1goKSx1OShsKX0scj0yNSk6cj09Mzk/cj1EPzUwOms6cj09NDcmJihsPWZ1bmN0aW9uKCl7RChmdW5jdGlvbih3KXt1OShmdW5jdGlvbigpe2Qodyl9KX0sUyl9LHI9ODQpfX0scGU6ZnVuY3Rpb24oZCl7biYmbihkKX19LFQ9NzQ7ZWxzZSBpZihUPT02NilELnNldEF0dHJpYnV0ZShtLGMpLFQ9MTE7ZWxzZSBpZihUPT01MilUPTgxO2Vsc2V7aWYoVD09MTEpcmV0dXJuIE47VD09ODY/VD0oUnw3Mik9PVI/OTI6NjI6VD09MTQ/KEFycmF5LmlzQXJyYXkoYykmJihjPWMuam9pbigiICIpKSxtPSJhcmlhLSIrWixUPTUwKTpUPT01Pyh0aGlzW3RoaXMrIiJdPXRoaXMsTj1Qcm9taXNlLnJlc29sdmUoKSxUPTg2KTpUPT05Mj8oRD1HLE49ZnVuY3Rpb24oKXtyZXR1cm4gRDxoLmxlbmd0aD97ZG9uZTpmYWxzZSx2YWx1ZTpoW0QrK119Ontkb25lOnRydWV9fSxUPTYyKTpUPT0yMj8oQj1VUixaIGluIEI/RC5zZXRBdHRyaWJ1dGUobSxCW1pdKTpELnJlbW92ZUF0dHJpYnV0ZShtKSxUPTExKTpUPT02Nz8obj17fSxVUj0obi5hdG9taWM9RyxuLmF1dG9jb21wbGV0ZT0ibm9uZSIsbi5kcm9wZWZmZWN0PSJub25lIixuLmhhc3BvcHVwPUcsbi5saXZlPSJvZmYiLG4ubXVsdGlsaW5lPUcsbi5tdWx0aXNlbGVjdGFibGU9RyxuLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIsbi5yZWFkb25seT1HLG4ucmVsZXZhbnQ9ImFkZGl0aW9ucyB0ZXh0IixuLnJlcXVpcmVkPUcsbi5zb3J0PSJub25lIixuLmJ1c3k9RyxuLmRpc2FibGVkPUcsbltoXT1HLG4uaW52YWxpZD0iZmFsc2UiLG4pLFQ9MjIpOlQ9PTc1JiYoVD1VUj8yMjo2Nyl9fX0sem89ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7e2M9Mzt3aGlsZShjIT01NilpZihjPT02OCljPShHJjEwMyk9PUc/azpSO2Vsc2V7aWYoYz09UilyZXR1cm4gWjtjPT0zNj8oaC5jbGFzc0xpc3Q/QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChELGZ1bmN0aW9uKG4pe0pXKDM1LDcsImNsYXNzIiwyMCwiICIsInN0cmluZyIsMCxoLG4pfSk6ZSgzLCJzdHJpbmciLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChCdSgzNCwiY2xhc3MiLGgpLGZ1bmN0aW9uKG4pe3JldHVybiFlKDQ0LDAsbixEKX0pLmpvaW4oIiAiKSxoKSxjPTY4KTpjPT1rPyhaPXRoaXMubj09PTA/MDpNYXRoLnNxcnQodGhpcy5oeC90aGlzLm4pLGM9Uik6Yz09Mz9jPTY6Yz09NiYmKGM9KEd8MjQpPT1HPzM2OjY4KX19fSxxPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtKXt3aGlsZShrLTM+PjQ9PTQpe2E6e2ZvcigwO1IuVjswKXttPWtmKFIsUi5HKTticmVhayBhO2lmKDEpYnJlYWt9KGg9R04oOCxSLHRydWUpLGgmMTI4KSYmKGhePTEyOCxEPUdOKDIsUix0cnVlKSxoPShHPWg8PDIsKEcmRCktMS1+KEd8RCkpKSxtPWh9aWYoImoiKWJyZWFrfXdoaWxlKCgoa14yMSkmMjMpPT00KXthOntpZihSLlYpe209a2YoUixSLkcpO2JyZWFrIGF9aD1HTig4LFIsdHJ1ZSksaCYxMjgmJihoXj0xMjgsRz1HTigyLFIsdHJ1ZSksaD0oRD1oPDwyLChEJkcpLTEtfihEfEcpKSksbT1ofWlmKHRydWUpYnJlYWt9cmV0dXJuKCgoa14oKChrXjM4KSYxNSk+PTkmJmstNDwxOSYmKGg9UnYoRyksaCYxMjgmJihoPS1+KGgmMTI3KSsofmgmMTI3KSsoaHwtMTI4KXxSdihHKTw8UiksbT1oKSw3MCkpJjE1KT09MyYmKGg9eWZbRy5SXShHLnZWKSxoW0cuUl09ZnVuY3Rpb24oKXt3aGlsZSh0cnVlKXtyZXR1cm4gUjtpZih0cnVlIT1bXSlicmVha319LGguY29uY2F0PWZ1bmN0aW9uKEIpe1I9Qn0sbT1oKSwoKGteNTEpJjE1KT09MSkmJihtPShaPShjPWhbR108PDI0LEQ9aFsoR3wwKSsxXTw8MTYsKGN8MCkrKGNeRCkrKH5jXkQpLShjfH5EKSksbj1oWyhHfDApKzJdPDxSLC0obnwwKSsyKihaJm4pKyhaXm4pKyh+WiZuKSl8aFsoR3wwKSszXSksbX0sUkI9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7Zm9yKFA9Njk7UCE9MDspaWYoUD09NTMpbj1oLmxlbmd0aCxaPXR5cGVvZiBoPT09InN0cmluZyI/aC5zcGxpdChHKTpoLGM9UixQPTI7ZWxzZSBpZihQPT0xMilQPWstMT4+Mz09Mz85MDo1MTtlbHNlIGlmKFA9PTQ5KVA9NDc7ZWxzZSBpZihQPT0yKVA9OTQ7ZWxzZSBpZihQPT04MSlQPShrKzdeMjEpPj1rJiZrLTc8PDE8az80MTo3MjtlbHNlIGlmKFA9PTExKUQ9bj0wLFA9NDk7ZWxzZSBpZihQPT04MilEKyssUD00NztlbHNlIGlmKFA9PTk2KU49TWF0aC5mbG9vcih0aGlzLlRmKyh0aGlzLkooKS10aGlzLmtOKSksUD04MTtlbHNlIGlmKFA9PTY5KVA9NTc7ZWxzZSBpZihQPT00MiljIGluIFomJkQuY2FsbCh2b2lkIDAsWltjXSxjLGgpLFA9ODc7ZWxzZSBpZihQPT05NClQPWM8bj80MjoxMjtlbHNlIGlmKFA9PTkwKXthOmlmKEcuUC5sZW5ndGgpeyhHLm8mJiI6VFFSOlRRUjoiKCksRykuRTk9RCxHLm89dHJ1ZTt0cnl7Wj1HLkooKSxHLkUyPTAsRy5vbz0wLEcuY3Q9WixHLmtOPVosYz1jdSgyLHRydWUsMjQsbnVsbCwiOiIsRCxHKSxtPWg/MDoxMCxuPUcuSigpLUcua04sRy5UZis9bixHLkJWJiZHLkJWKG4tRy5YLEcudSxHLlcsRy5FMiksRy51PVIsRy5YPTAsRy5XPVIsbjxtfHxHLnM5LS08PTB8fChuPU1hdGguZmxvb3IobiksRy51WC5wdXNoKG48PTI1ND9uOjI1NCkpfWZpbmFsbHl7Ry5vPVJ9Tj1jO2JyZWFrIGF9UD01MX1lbHNlIGlmKFA9PTg3KWMrKyxQPTk0O2Vsc2UgaWYoUD09NTcpUD0oaysxJjYzKTxrJiYoay0yfDcwKT49az85Njo4MTtlbHNlIGlmKFA9PTU5KW4rPVIuY2hhckNvZGVBdChEKSxuKz1uPDwxMCxuPShjPW4+PjYsKG58YykrfmMtKG58fmMpKSxQPTgyO2Vsc2UgaWYoUD09NDEpe2E6e2lmKHRoaXMubj09PTApe049WzAsMF07YnJlYWsgYX1OPSh0aGlzLlQuc29ydChmdW5jdGlvbihkLEkpe3JldHVybiBkLUl9KSxbdGhpcy5uLHRoaXMuVFt0aGlzLlQubGVuZ3RoPj4xXV0pfVA9NzJ9ZWxzZSBpZihQPT03MilQPShrKzdeMTIpPGsmJmstNjw8MT49az8xMTo3MDtlbHNlIGlmKFA9PTIwKW4rPW48PDMsbl49bj4+MTEsWj1uKyhuPDwxNSk+Pj4wLG09bmV3IE51bWJlcigoQj0oVD0xPDxHLChUfDEpLShUJjEpLTIqKH5UJjEpKSwoWnwwKSsoQnwwKS0oWnxCKSkpLG1bMF09KFo+Pj5HKSVoLE49bSxQPTcwO2Vsc2V7aWYoUD09NTEpcmV0dXJuIE47UD09NDc/UD1EPFIubGVuZ3RoPzU5OjIwOlA9PTcwJiYoUD0oa3wzMik9PWs/NTM6MTIpfX0sYT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQpe2ZvcihCPTgzO0IhPTg2Oyl7aWYoQj09ODIpcmV0dXJuIFQ7aWYoQj09NjApQj0oayYxMTQpPT1rPzMyOjgyO2Vsc2V7aWYoQj09MTcpdGhyb3cgRXJyb3IoIkludmFsaWQgY2xhc3MgbmFtZSAiK0cpO2lmKEI9PTU2KXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK1IpO2lmKEI9PTEwKUcuUC5zcGxpY2UoMCwwLFIpLEI9MzM7ZWxzZSBpZihCPT04MylCPTM7ZWxzZSBpZihCPT0xMilCPUc/NTA6MTc7ZWxzZSBpZihCPT0zKUI9KGt8NDApPT1rPzEwOjMzO2Vsc2UgaWYoQj09NTApQj10eXBlb2YgUiE9PSJmdW5jdGlvbiI/NTY6NjA7ZWxzZSBpZihCPT0zMil7YTppZihjPXdpbmRvdy5idG9hKXtmb3IoWj0wLG49IiI7WjxoLmxlbmd0aDtaKz1HKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoUixoLnNsaWNlKFosWitHKSk7VD0obT1jKG4pLEQmJihtPW0ucmVwbGFjZSgvXFwrL2csIi0iKS5yZXBsYWNlKC9cXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIikpLG0pO2JyZWFrIGF9Qj04Mn1lbHNlIEI9PTMzJiYoQj0oaz4+MiY3KT09MT8xMjo2MCl9fX0sQlk9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXtmb3IoZD02OTtkIT0yMjspaWYoZD09NTUpREQuY2FsbCh0aGlzLGgpLGQ9NjE7ZWxzZSBpZihkPT05OClQPShUPVpEW2suc3Vic3RyaW5nKDAsMykrIl8iXSk/VChrLnN1YnN0cmluZygzKSxHLGgsRCxjLFosbixtLEIpOkpXKDM1LDcsRyw1LGspLGQ9Mjc7ZWxzZSBpZihkPT0zMilkPWM/NzQ6MTY7ZWxzZSBpZihkPT02OSlkPTk7ZWxzZSBpZihkPT0xNiltPW4/dHlwZW9mIG4ublg9PT0iZnVuY3Rpb24iP24ublgoKTpuZXcgbjpudWxsLGQ9NTc7ZWxzZSBpZihkPT0yMClkPTMyO2Vsc2UgaWYoZD09NTcpdGhpcy5DPW0sZD00MTtlbHNlIGlmKGQ9PTk3KWQ9KG49bnJbWl0pPzcxOjI2O2Vsc2UgaWYoZD09NzUpYz10aGlzLmNvbnN0cnVjdG9yLGQ9MTE7ZWxzZSBpZihkPT04NylOPWZ1bmN0aW9uKCl7fSxOLnByb3RvdHlwZT1oLnByb3RvdHlwZSxHLk89aC5wcm90b3R5cGUsRy5wcm90b3R5cGU9bmV3IE4sRy5wcm90b3R5cGUuY29uc3RydWN0b3I9RyxHLmN3PWZ1bmN0aW9uKEksUyxYKXtmb3IodmFyIE09MTk7TSE9MjU7KWlmKE09PTE5KXZhciByPUFycmF5KChNPTEsYXJndW1lbnRzLmxlbmd0aC1rKSksbD1rO2Vsc2UgaWYoTT09MilyW2wta109YXJndW1lbnRzW2xdLE09NDE7ZWxzZXtpZihNPT01MilyZXR1cm4gaC5wcm90b3R5cGVbU10uYXBwbHkoSSxyKTtNPT00MT8obCsrLE09NTMpOk09PTUzP009bDxhcmd1bWVudHMubGVuZ3RoPzI6NTI6TT09MSYmKE09NTMpfX0sZD03O2Vsc2UgaWYoZD09MjYpYz0oRD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUpKSYmRC5jb25zdHJ1Y3RvcixkPTIwO2Vsc2UgaWYoZD09MjcpZD0oUis1JjcpPj01JiZSPj4xPDE1PzU1OjQxO2Vsc2UgaWYoZD09NjEpZD0obT1HKT81Nzo3NTtlbHNlIGlmKGQ9PTQxKWQ9KFJ8NDApPT1SPzg3Ojc7ZWxzZSBpZihkPT05KWQ9Uis0Pj4zPT0yPzk4OjI3O2Vsc2UgaWYoZD09NylkPShSfDcyKT09Uj85OTo3MztlbHNlIGlmKGQ9PTk5KVA9YSgxNixudWxsLDgxOTIsayxmYWxzZSksZD03MztlbHNle2lmKGQ9PTczKXJldHVybiBQO2Q9PTc0PyhaPUNuKDY0LDE5LGMpLGQ9OTcpOmQ9PTcxP2Q9MTY6ZD09MTEmJihkPTMyKX19LFBZPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOLFAsZCl7e2Q9NTU7d2hpbGUoZCE9NSlpZihkPT04NylkPTQxO2Vsc2UgaWYoZD09NTUpZD01NztlbHNlIGlmKGQ9PTQ1KXthOntpZighKFo9Ry5JLlpbU3RyaW5nKGgpXSxaKSl7UD10cnVlO2JyZWFrIGF9Zm9yKG49KFo9Wi5jb25jYXQoKSxOPXRydWUsUik7bjxaLmxlbmd0aDsrK24pKFQ9WltuXSkmJiFULmZYJiZULmNhcHR1cmU9PUQmJihCPVQuVm58fFQuc3JjLG09VC5saXN0ZW5lcixULmFvJiZySigzLFIsVCxHLkkpLE49bS5jYWxsKEIsYykhPT1mYWxzZSYmTik7UD1OJiYhYy5kZWZhdWx0UHJldmVudGVkfWQ9Mzd9ZWxzZSBpZihkPT0zNylkPWs8PDE+PTI1JiYoa3wxKT4+NTwyPzg3OjQxO2Vsc2V7aWYoZD09NDEpcmV0dXJuIFA7ZD09NTcmJihkPShrKzJeMjQpPj1rJiZrKzM+PjI8az80NTozNyl9fX0sdnU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe2ZvcihUPTQ7VCE9Njc7KWlmKFQ9PTkzKVQ9KG58OSk+PjQ/NDc6aztlbHNlIGlmKFQ9PTU1KVRvKDU0LCJvYmplY3QiLDEwLGMsbSxoLEQsRyxaKSxUPTQ3O2Vsc2UgaWYoVD09ODEpe2E6e3N3aXRjaChHKXtjYXNlIDE6Tj1aPyJkaXNhYmxlIjoiZW5hYmxlIjticmVhayBhO2Nhc2UgaDpOPVo/ImhpZ2hsaWdodCI6InVuaGlnaGxpZ2h0IjticmVhayBhO2Nhc2UgUjpOPVo/ImFjdGl2YXRlIjoiZGVhY3RpdmF0ZSI7YnJlYWsgYTtjYXNlIGM6Tj1aPyJzZWxlY3QiOiJ1bnNlbGVjdCI7YnJlYWsgYTtjYXNlIDE2Ok49Wj8iY2hlY2siOiJ1bmNoZWNrIjticmVhayBhO2Nhc2UgMzI6Tj1aPyJmb2N1cyI6ImJsdXIiO2JyZWFrIGE7Y2FzZSBEOk49Wj8ib3BlbiI6ImNsb3NlIjticmVhayBhfXRocm93IEVycm9yKCJJbnZhbGlkIGNvbXBvbmVudCBzdGF0ZSIpO31UPTczfWVsc2UgaWYoVD09NTQpVD03NDtlbHNlIGlmKFQ9PTQ3KVQ9KChuXjEyKSY4KTw0JiYobnwyKT49LTMxPzgxOjczO2Vsc2V7aWYoVD09NzMpcmV0dXJuIE47VD09MD8oRz1CdSg2LEcpLEQmJkRbZEpdP0QuSS5hZGQoU3RyaW5nKFopLEcsUixOUCg0LCJvYmplY3QiLDIwLGgpPyEhaC5jYXB0dXJlOiEhaCxtKTpJQig2Niwib2JqZWN0IixmYWxzZSxHLFIsWixELGgsbSksVD00Nyk6VD09ND9UPTkzOlQ9PTc0P1Q9QjxaLmxlbmd0aD83Nzo0NzpUPT02OT8oQj0wLFQ9NTQpOlQ9PWs/VD1oJiZoLm9uY2U/NTU6NDg6VD09OTg/KEIrKyxUPTc0KTpUPT00OD9UPUFycmF5LmlzQXJyYXkoWik/Njk6MDpUPT03NyYmKHZ1KDU2LGZhbHNlLEcsaCxELHRydWUsWltCXSw1LG0pLFQ9OTgpfX0sRTU9ZnVuY3Rpb24oayxSKXtmdW5jdGlvbiBHKCl7dGhpcy5oPXRoaXMuaHg9dGhpcy5uPTB9cmV0dXJuW2Z1bmN0aW9uKGgpeyhrLmdiKGgpLFIpLmdiKGgpfSwoUj0oaz1uZXcgKEcucHJvdG90eXBlLnJKPShHLnByb3RvdHlwZS5nYj1mdW5jdGlvbihoLEQpe3JldHVybiBvQi5jYWxsKHRoaXMsMTMsNjUsaCxEKX0sZnVuY3Rpb24oKXtyZXR1cm4gem8uY2FsbCh0aGlzLDIxLDc5LDMpfSksRyksbmV3IEcpLGZ1bmN0aW9uKGgsRCl7cmV0dXJuIEQ9W2suckooKSxSLnJKKCksay5oLFIuaF0sKGg9PT12b2lkIDB8fGgpJiYoUj1uZXcgRyksRH0pXX0sSlc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXt7VD05O3doaWxlKFQhPTgwKWlmKFQ9PTkpVD00ODtlbHNle2lmKFQ9PTI1KXJldHVybiBCO1Q9PTQ4P1Q9KChoXjEzKSY0KTwzJiYoaHw5KT4+Mz49Mj81NjoxNzpUPT04NT8oRyhmdW5jdGlvbihOKXtOKEQpfSksQj1bZnVuY3Rpb24oKXtyZXR1cm4gRH0sZnVuY3Rpb24oKXt9XSxUPTI1KTpUPT01Nj8obi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3QucmVtb3ZlKG0pOihuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5jb250YWlucyhtKTplKDQ2LFosbSxCdShrLEcsbikpKSYmZShSLGMsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKEJ1KDMzLEcsbiksZnVuY3Rpb24oTil7cmV0dXJuIE4hPW19KS5qb2luKEQpLG4pLFQ9MTcpOlQ9PTE3JiYoVD1oPj4yPDE2JiYoaCsxJjIpPj0xPzg1OjI1KX19fSxGMT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7e049MjY7d2hpbGUoTiE9MTcpaWYoTj09NDIpYz10cnVlLE49NDY7ZWxzZSBpZihOPT04MylUPWZ1bmN0aW9uKFApe3JldHVybiBoLmNhbGwoVC5zcmMsVC5saXN0ZW5lcixQKX0saD10byxCPVQsTj0yMTtlbHNlIGlmKE49PTYwKW09bmV3IHJVKEQsdGhpcyksWj1oLlZufHxoLnNyYyxuPWgubGlzdGVuZXIsaC5hbyYmY1koMzMsbnVsbCwzLFIsaCksYz1uLmNhbGwoWixtKSxOPTQ2O2Vsc2UgaWYoTj09MjYpTj1rO2Vsc2V7aWYoTj09NTcpcmV0dXJuIEI7Tj09MjE/Tj0oR14yNCk8NyYmRy03Pj01PzMwOjU3Ok49PWs/Tj0oRz4+MSY3KT09MT84MzoyMTpOPT0zMD9OPWguZlg/NDI6NjA6Tj09NDYmJihCPWMsTj01Nyl9fX0sYXY9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7d2hpbGUoIVIueW4mJihCPXZvaWQgMCxoJiZoWzBdPT09d1UmJihCPWhbMl0sRz1oWzFdLGg9dm9pZCAwKSxuPVYoayxSKSxuLmxlbmd0aD09MCYmKEQ9VigxNjgsUik+PjMsbi5wdXNoKEcsRD4+OCYyNTUsRCYyNTUpLEIhPXZvaWQgMCYmbi5wdXNoKEImMjU1KSksUD0iIixoJiYoaC5tZXNzYWdlJiYoUCs9aC5tZXNzYWdlKSxoLnN0YWNrJiYoUCs9IjoiK2guc3RhY2spKSxtPVcoUiwzMDIpLG1bMF0+MykpeyhUPShQPShtWzBdLT0oUD1QLnNsaWNlKDAsKG1bMF18MCktMyksWj1QLmxlbmd0aCwoWnwzKS1+Wisoflp8MykpLGVlKShQLDEyOCksUikuQixSKS5CPVI7dHJ5e1IuSHQ/KE49KE49Vig0NDYsUikpJiZOW04ubGVuZ3RoLTFdfHw5NSwoYz1XKFIsMTYzKSkmJmNbYy5sZW5ndGgtMV09PU58fGxOKDE2MyxbTiYyNTVdLDcsUikpOmplKDQ0NixbOTVdLFIpLGxOKDQyLEsoMixQLmxlbmd0aCkuY29uY2F0KFApLDcsUiwxNDQpfWZpbmFsbHl7Ui5CPVR9aWYoe30pYnJlYWt9fSxHTj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQsSSxTKXtpZihoPVYoMTQyLFIpLGg+PVIuail0aHJvd1t3VSwzMV07Zm9yKGM9KEk9KG09KE49MCxoKSxSLkNqKS5sZW5ndGgsayk7Yz4wOylaPW0+PjMsUz1tJTgsUD1SLndiW1pdLG49OC0oU3wwKSxCPW48Yz9uOmMsRyYmKGQ9UixkLmwhPW0+PjYmJihkLmw9bT4+NixEPWIoZCwzNjMpLGQud0o9eWgoMTYsZC5sLDI1NSxkLk4sWzAsMCxEWzFdLERbMl1dKSksUF49Ui53SltaJkldKSxOfD0oUD4+OC0oU3wwKS0oQnwwKSYoMTw8QiktMSk8PChjfDApLShCfDApLG0rPUIsYy09QjtyZXR1cm4gQygxNDIsKGh8MCkrKGt8KFQ9TiwwKSksUiksVH0sWT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7KFIrNyY0NCk+PVImJlIrND4+MjxSJiYoaD1bLTc1LC0zMSw3MSwtMzUsNDYsLTEwMCxoLDk0LDUwLC03OF0sWj1jJjcsbT1TZSxCPXlmW0cuUl0oRy5KcyksQltHLlJdPWZ1bmN0aW9uKFApe249UDt3aGlsZShudWxsPT1mYWxzZT09MClpZighKForPTYrNypjLFtdKT09dHJ1ZT09IVtdKWJyZWFrO1o9MTYrfihafDcpK2sqKFomLTgpKyh+Wl43KX0sQi5jb25jYXQ9ZnVuY3Rpb24oUCxkLEkpe3JldHVybihkPShuPShQPShJPUQlMTYrMSwrKG0oKXwwKSpJLTc4KkQqRCpuKzM5Km4qbi0yMjYyKm4rWi0gLTEyMDkqRCpuK2hbWisxOSY3XSpEKkkpLUkqbitrKkQqRCpJLHZvaWQgMCksaFtQXSksaClbKForNjEmNykrKC0yLWsqfihjfGspK2sqKH5jXmspKyh+YyZrKSldPWQsaFtaKygtfihjJmspKyhjXmspLSh+YyZrKSsofmN8aykpXT0tMzEsZH0sTj1CKTtzd2l0Y2goISgoUl4xMyk8MjQmJihSXjkwKT49MTgpKXtjYXNlIHRydWU6TnVtYmVyKHRydWUudHJ1ZSk7YnJlYWs7Y2FzZSB0cnVlPT1bXTpzd2l0Y2goIShEPVhYKCJhcnJheSIsaCwibnVsbCIpPT09ImFycmF5Ij9oOltoXSx0aGlzLkspKXtjYXNlIHRydWU6dHJ5e2M9IXRoaXMuUC5sZW5ndGgmJiF0aGlzLm8sYSg1NyxbJGYsW10sRCxrLEddLHRoaXMpLEcmJiFjfHxSQigyNyxmYWxzZSx0aGlzLHRydWUsRyl9Y2F0Y2goUCl7ZSg1NiwiOiIsdGhpcyxQKSxrKHRoaXMuSyl9YnJlYWs7Y2FzZSB0cnVlPT1bXT09bnVsbDprKHRoaXMuSyk7YnJlYWt9YnJlYWt9KFIrM14xMik+PVImJihSKzJeMjcpPFImJihOPVQ9ZnVuY3Rpb24oKXt7dmFyIFA9NzE7d2hpbGUoUCE9OSlpZihQPT0xNil2YXIgZD1bTVQsKFA9OTcsYyksaCx2b2lkIDAsbixtLGFyZ3VtZW50c107ZWxzZSBpZihQPT01OSlQPVouWT8xNjo4ODtlbHNlIGlmKFA9PTk3KVA9RD09Rz83OTozNTtlbHNlIGlmKFA9PTM1KVA9RD09MT81NjoyNztlbHNlIGlmKFA9PTI3KXt2YXIgST1rbihkLDIsdHJ1ZSxaKTtQPTk5fWVsc2UgaWYoUD09NTYpe3ZhciBTPSFaLlAubGVuZ3RoJiYhWi5vO2EoNDMsZCxaKSxTJiZSQigyOCxmYWxzZSxaLGssayksUD05OX1lbHNlIGlmKFA9PTg4KW4mJm0mJm4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihtLFQsb3YpLFA9OTtlbHNle2lmKFA9PTk5KXJldHVybiBJO1A9PTcxP1A9Wi5CPT1aPzU5Ojk6UD09NzkmJihhKDQyLGQsWiksST1SQigyOSxmYWxzZSxaLGssayksUD05OSl9fX0pO3N3aXRjaCghKChSfDcyKT09Uikpe2Nhc2UgdHJ1ZTowO2JyZWFrO2Nhc2UgW109PShbXSE9KCFbXT09MCkpOmE6e2lmKGsuVil7Tj1rZihrLGsuRyk7YnJlYWsgYX0oRz1HTig4LGssdHJ1ZSksRyYxMjgpJiYoR149MTI4LGg9R04oMixrLHRydWUpLEc9KEQ9Rzw8MiwoRCZoKS0xLX4oRHxoKSkpLE49R31icmVha313aGlsZShSPj4yPj05JiYoKFJeMTkpJjI0KTwxOSl7RD1xKDE3LEcpO3tjPTA7d2hpbGUoaD4wKWM9Yzw8a3xSdihHKSxoLS19aWYoIVtdPT0oMCE9IShDKEQsYyxHKSxbXSkpKWJyZWFrfXJldHVybiBOfSxzNT1mdW5jdGlvbihrKXtyZXR1cm4gSUIuY2FsbCh0aGlzLDksayl9LENyPWZ1bmN0aW9uKGssUil7e3ZhciBHPTkzO3doaWxlKEchPTUxKWlmKEc9PTkzKXZhciBoPShHPTUwLDEpO2Vsc2UgaWYoRz09NjQpRz1oPGFyZ3VtZW50cy5sZW5ndGg/NzU6NTE7ZWxzZSBpZihHPT03NSl7dmFyIEQ9YXJndW1lbnRzW2hdO2ZvcihaIGluIEQpa1taXT1EW1pdO3ZhciBjPShHPTk2LDApfWVsc2UgaWYoRz09OTYpRz04NDtlbHNlIGlmKEc9PTUwKUc9NjQ7ZWxzZSBpZihHPT03MiljKyssRz04NDtlbHNlIGlmKEc9PTg0KUc9YzxIWS5sZW5ndGg/ODA6MjtlbHNlIGlmKEc9PTIpaCsrLEc9NjQ7ZWxzZSBpZihHPT04MCl7dmFyIFo9SFlbY107T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEQsWikmJihrW1pdPURbWl0pLEc9NzJ9fX0sTlQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkLEkpe2ZvcihkPTI0O2QhPTE5OylpZihkPT05NilBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKEcsZnVuY3Rpb24oUyxYLE0pe2ZvcihNPTI0O00hPTI2OylNPT0yND9NPWsuY2xhc3NMaXN0PzYwOjQ5Ok09PTQ5P009KGsuY2xhc3NMaXN0P2suY2xhc3NMaXN0LmNvbnRhaW5zKFMpOmUoNDUsMCxTLEJ1KDMyLCJjbGFzcyIsaykpKT8yNjo1NTpNPT01NT8oWD1BVyg0MSwiY2xhc3MiLDI4LCIiLGspLGUoNiwic3RyaW5nIixYKyhYLmxlbmd0aD4wPyIgIitTOlMpLGspLE09MjYpOk09PTYwJiYoay5jbGFzc0xpc3QuYWRkKFMpLE09MjYpfSksZD0yNztlbHNlIGlmKGQ9PTkwKWQ9KFI8PDEmOSk+PTEmJihSPj4yJjEyKTw2Pzg2OjI3O2Vsc2UgaWYoZD09MjQpZD02MTtlbHNlIGlmKGQ9PTg2KWQ9ay5jbGFzc0xpc3Q/OTY6NztlbHNlIGlmKGQ9PTI3KWQ9KFJeMzQpPDI2JiYoUisxJjE1KT49OT81ODo5NztlbHNlIGlmKGQ9PTEwKWQ9YzxoLmxlbmd0aD8zMzo3NDtlbHNlIGlmKGQ9PTEzKWMrKyxkPTEwO2Vsc2V7aWYoZD09OTcpcmV0dXJuIEk7aWYoZD09Nyl7Zm9yKGMgaW4gaD0oKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoKEQ9e30sQnUpKDM2LCJjbGFzcyIsayksZnVuY3Rpb24oUyl7RFtTXT10cnVlfSksQXJyYXkucHJvdG90eXBlKS5mb3JFYWNoLmNhbGwoRyxmdW5jdGlvbihTKXtEW1NdPXRydWV9KSwiIiksRCloKz1oLmxlbmd0aD4wPyIgIitjOmM7ZD0oZSg1LCJzdHJpbmciLGgsayksMjcpfWVsc2UgaWYoZD09ODkpZD1EPms/Njo1NztlbHNlIGlmKGQ9PTYpWltuKytdPUQmayxEPj49OCxkPTU3O2Vsc2UgaWYoZD09MzMpRD1oLmNoYXJDb2RlQXQoYyksZD04OTtlbHNlIGlmKGQ9PTc0KUk9WixkPTk3O2Vsc2UgaWYoZD09OTQpZD0xMDtlbHNlIGlmKGQ9PTU3KVpbbisrXT1ELGQ9MTM7ZWxzZSBpZihkPT01OCluPWM9RyxaPVtdLGQ9OTQ7ZWxzZSBpZihkPT04KXthOntpZihELkI9KChELkgrPShaPShuPShjfHxELm9vKyssRC5xbz4wJiZELm8mJkQuRTkpJiZELkQ3PD0xJiYhRC5WJiYhRC5TJiYoIWN8fEQuZEotRz4xKSYmZG9jdW1lbnQuaGlkZGVuPT1rLChCPUQub289PTQpfHxuP0QuSigpOkQuY3QpLG09Wi1ELmN0LG0pPj4xND4wLEQpLk4mJihELk49KFQ9RC5OLE49KEQuSCsxPj4yKSoobTw8MiksLSh+VF5OKSsoflQmTikrKFR8fk4pKSksRC5IKzE+PjIhPTB8fEQuQiksQnx8bilELm9vPTAsRC5jdD1aO2lmKCFuKXtJPWs7YnJlYWsgYX1pZigoRC5xbz5ELkUyJiYoRC5FMj1ELnFvKSxaLUQua04pPEQucW8tKGg/MjU1OmM/NToyKSl7ST1rO2JyZWFrIGF9ST0oQygxNDIsKFA9VihjPzE2ODoxNDIsKEQuZEo9RyxEKSksRC5qKSxEKSxELlAucHVzaChbbWMsUCxjP0crMTpHLEQudSxELlddKSx0cnVlKSxELlM9dTl9ZD02NH1lbHNlIGQ9PTE3PyhJPWsmJmsucGFyZW50Tm9kZT9rLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoayk6bnVsbCxkPTkwKTpkPT02ND9kPShSKzReMTApPj1SJiYoUis0XjI1KTxSPzE3OjkwOmQ9PTYxJiYoZD1SPj4xJjE1PzY0OjgpfX0sTG49ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe2ZvcihuPTgwO24hPTk1Oyl7aWYobj09MTUpcmV0dXJuIG07bj09Nzg/bj0oaC1rJjcpPT0xPzU1OjgxOm49PTU1Pyh0aGlzLmxpc3RlbmVyPVosdGhpcy5wcm94eT1udWxsLHRoaXMuc3JjPWMsdGhpcy50eXBlPUcsdGhpcy5jYXB0dXJlPSEhRCx0aGlzLlZuPVIsdGhpcy5rZXk9KytJdix0aGlzLmFvPXRoaXMuZlg9ZmFsc2Usbj04MSk6bj09NTY/KG09RyBpbiBUTj9UTltHXTpUTltHXT1SK0csbj0xNSk6bj09Mzg/bj0oaHw0OCk9PWg/NTY6MTU6bj09MTM/KEcucFgoZnVuY3Rpb24oQil7Yz1CfSxSLEQpLG09YyxuPTM4KTpuPT04MT9uPWgtNyY1PzM4OjEzOm49PTgwJiYobj03OCl9fSxCdT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQpe2ZvcihQPTI1O1AhPTU2OylpZihQPT00MCltPXRXKDY4LG4pLFA9NDc7ZWxzZSBpZihQPT0zMyluLkkucmVtb3ZlKFN0cmluZyhaKSxELEIsYyksUD05MztlbHNlIGlmKFA9PTQ3KVA9bT82Njo5MztlbHNlIGlmKFA9PTQ0KU49UixQPTE4O2Vsc2UgaWYoUD09NzMpUD0oa3wzMik9PWs/NTk6NDg7ZWxzZXtpZihQPT00OClyZXR1cm4gZDtpZihQPT01MilQPUFycmF5LmlzQXJyYXkoWik/NDQ6MzE7ZWxzZSBpZihQPT01OSlkPUcuY2xhc3NMaXN0P0cuY2xhc3NMaXN0OkFXKDQxLFIsMjYsIiIsRykubWF0Y2goL1xcUysvZyl8fFtdLFA9NDg7ZWxzZSBpZihQPT03MClQPWsrNj4+ND83Mzo5NDtlbHNlIGlmKFA9PTk0KXthOntpZih0eXBlb2YgUj09PSJmdW5jdGlvbiIpe2Q9UjticmVhayBhfWQ9KFJbZFVdfHwoUltkVV09ZnVuY3Rpb24oSSl7cmV0dXJuIFIuaGFuZGxlRXZlbnQoSSl9KSxSW2RVXSl9UD03M31lbHNlIGlmKFA9PTE4KVA9MzA7ZWxzZSBpZihQPT05MylQPShrLTdeMjMpPj1rJiYoays3JjI1KTxrPzc3OjcwO2Vsc2UgaWYoUD09MzcpUD0oa3w5KT4+Mz09Mz81Mjo5MztlbHNlIGlmKFA9PTI1KVA9Mzc7ZWxzZSBpZihQPT01MylQPW4mJm5bZEpdPzMzOjg5O2Vsc2UgaWYoUD09ODkpUD1uPzQwOjkzO2Vsc2UgaWYoUD09ODIpTisrLFA9MzA7ZWxzZSBpZihQPT0zMSlCPU5QKDQsRywxNyxoKT8hIWguY2FwdHVyZTohIWgsRD1CdSg1LEQpLFA9NTM7ZWxzZSBpZihQPT0yMSlCdSgxNywwLCJvYmplY3QiLGgsRCxjLFpbTl0sbiksUD04MjtlbHNlIGlmKFA9PTc3KXtmb3IoWiBpbihEPVIsaCkuWil7Zm9yKGM9KG49aC5aW1pdLFIpO2M8bi5sZW5ndGg7YysrKSsrRCxoVyg4LEcsbltjXSk7ZGVsZXRlIGguWltoLkp4LS0sWl19UD03MH1lbHNlIFA9PTY2PygoVD1tLkNYKFosRCxjLEIpKSYmY1koMzMsbnVsbCw1LCJvbiIsVCksUD05Myk6UD09MzAmJihQPU48Wi5sZW5ndGg/MjE6OTMpfX0sTlA9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKFo9OTY7WiE9NzM7KWlmKFo9PTU4KVo9KEd8MTYpPT1HPzQ3OjcwO2Vsc2V7aWYoWj09NzApcmV0dXJuIGM7Wj09NjY/Wj0oRysyXjIwKT49RyYmKEcrayY1Nyk8Rz82OTo1ODpaPT00Nz8oRD10eXBlb2YgaCxjPUQ9PVImJmghPW51bGx8fEQ9PSJmdW5jdGlvbiIsWj03MCk6Wj09Njk/KHRoaXMuS2o9UixaPTU4KTpaPT05NiYmKFo9NjYpfX0sY1k9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXtmb3IoQj05NTtCIT0wOylpZihCPT04KXRoaXMubisrLEI9ODE7ZWxzZSBpZihCPT05NylCPW0/ODA6Mzc7ZWxzZSBpZihCPT05NClCPXR5cGVvZiBEIT09Im51bWJlciImJkQmJiFELmZYPzE1OjMyO2Vsc2UgaWYoQj09MTUpYz1ELnNyYyxCPTEzO2Vsc2UgaWYoQj09ODApckooaywwLEQsbSksQj0yNjtlbHNlIGlmKEI9PTI2KUI9bS5KeD09MD82MzozMjtlbHNlIGlmKEI9PTY1KXRoaXMuVC5wdXNoKFIpLEI9MTg7ZWxzZSBpZihCPT0zNyloVyg3LHRydWUsRCksQj0zMjtlbHNlIGlmKEI9PTEzKUI9YyYmY1tkSl0/OTE6Mzk7ZWxzZSBpZihCPT02NyloPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp0aGlzLm4pLGg8NTAmJih0aGlzLlRbaF09UiksQj0xODtlbHNlIGlmKEI9PTM5KVo9RC50eXBlLG49RC5wcm94eSxjLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yy5yZW1vdmVFdmVudExpc3RlbmVyKFosbixELmNhcHR1cmUpOmMuZGV0YWNoRXZlbnQ/Yy5kZXRhY2hFdmVudChMbigzLGgsWiw1MCksbik6Yy5hZGRMaXN0ZW5lciYmYy5yZW1vdmVMaXN0ZW5lciYmYy5yZW1vdmVMaXN0ZW5lcihuKSxpOS0tLG09dFcoMjEsYyksQj05NztlbHNlIGlmKEI9PTE5KUI9Ry04PDwyPj1HJiZHKzI+PjE8Rz84OjE4O2Vsc2UgaWYoQj09OTEpckooMzIsMCxELGMuSSksQj0zMjtlbHNlIGlmKEI9PTk1KUI9MTk7ZWxzZSBpZihCPT04MSlCPXRoaXMuVC5sZW5ndGg8NTA/NjU6Njc7ZWxzZSBpZihCPT02MyltLnNyYz1SLGNbbDldPVIsQj0zMjtlbHNle2lmKEI9PTMyKXJldHVybiBUO0I9PTE4JiYoQj0oR3wxKT4+Mz8zMjo5NCl9fSxLPWZ1bmN0aW9uKGssUixHLGgsRCl7Zm9yKGg9LX4oayYxKSsoRD1bXSwtMikrKGsmLTIpO2g+PTA7aC0tKURbfihrJjEpLTMqfmsrMip+KGt8MSkrKH5rJjEpLShofDApXT0oRz1SPj5oKjgsLTIqfihHJjI1NSktMSt+RysoRyYtMjU2KSk7aWYoe30pcmV0dXJuIER9LGZyPWZ1bmN0aW9uKCl7cmV0dXJuIFBZLmNhbGwodGhpcywxNCl9LFE9ZnVuY3Rpb24oayxSLEcpe3N3aXRjaCghKFI9PTE0Mnx8Uj09MTY4KSl7Y2FzZSB0cnVlOmlmKGsueW4mJlIhPTM2MylyZXR1cm47Uj09NDg4fHxSPT00Mnx8Uj09MjY0fHxSPT0xNHx8Uj09NTA2fHxSPT00NDZ8fFI9PTE2M3x8Uj09OTV8fFI9PTE5MXx8Uj09MzAyP2suWVtSXXx8KGsuWVtSXT1ZKDIsMzQsayxHLFIsMzgpKTprLllbUl09WSgyLDMzLGssRyxSLDEyOSk7YnJlYWs7Y2FzZSAhW106ay5ZW1JdP2suWVtSXS5jb25jYXQoRyk6ay5ZW1JdPXEoMjEsRyxrKTticmVha31SPT0zNjMmJihrLk49R04oMzIsayxmYWxzZSksay5sPXZvaWQgMCl9LER5PXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oayl7ZnVuY3Rpb24gUigpe31yZXR1cm4gUi5wcm90b3R5cGU9ayxuZXcgUn0sREQ9ZnVuY3Rpb24oayl7cmV0dXJuIFRvLmNhbGwodGhpcyw1NCxrLDI1KX0samU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe3N3aXRjaCghKEcuQj09Rykpe2Nhc2UgdHJ1ZTowO2JyZWFrO2Nhc2UgISFudWxsOnttPWIoRyxrKSxrPT00Mnx8az09MTkxfHxrPT0xND8oRD1mdW5jdGlvbihCLFQsTixQLGQsSSxTLFgpe2ZvcihJPShYPTE4LDg5KTs7KXRyeXtpZihYPT0zMylicmVhaztlbHNlIGlmKFg9PTU3KW0ucHVzaChtLkdmWy0oVHw3KS0yKn4oVHw3KSsoVHwtOCkrKH5UfDcpXV5CKSxYPTMzO2Vsc2V7aWYoWD09MzkpdGhyb3cgST04OSxTO1g9PTUwP1g9bS5tQiE9Tj81NDo1NzpYPT02OD8oST0zNixtLkdmPXloKDE2LHEoNTAsOCwtMS0yKn4oUHw0KSsoflBeNCksbSksMjU1LHEoMTgsOCxQLG0pLGQpLFg9NTcpOlg9PTU0PyhQPShOPDwzKS00LGQ9WzAsMCxjWzFdLGNbMl1dLG0ubUI9TixYPTY4KTpYPT0xOCYmKFQ9bS5sZW5ndGgsTj0oVHwwKS00Pj4zLFg9NTApfX1jYXRjaChNKXtpZihJPT04OSl0aHJvdyBNO0k9PTM2JiYoUz1NLFg9MzkpfX0sYz1WKDk1LEcpKTpEPWZ1bmN0aW9uKEIpe20ucHVzaChCKX0saCYmRCgoaHwwKS0gLTUxMisyKn4oaHwyNTUpKyhoJi0yNTYpKSxuPVIubGVuZ3RoLFo9MDt3aGlsZShaPG4pRChSW1pdKSxaKyt9YnJlYWt9fSxQZD1mdW5jdGlvbihrKXtyZXR1cm4gTlQuY2FsbCh0aGlzLGssMTYpfSxoMD1mdW5jdGlvbihrLFIsRyxoLEQsYyl7cmV0dXJuIE9SLmNhbGwodGhpcywxMiw2LGssUixHLGgsRCxjKX0sYjk9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXtyZXR1cm4gQlkuY2FsbCh0aGlzLGssOCxSLEcsaCxELGMsWixuKX0sak09ZnVuY3Rpb24oayl7cmV0dXJuIEtuLmNhbGwodGhpcywwLDEsOCxrKX0sUnY9ZnVuY3Rpb24oayl7cmV0dXJuIGsuVj9rZihrLGsuRyk6R04oOCxrLHRydWUpfSx5aD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4pe1o9KGM9MCxEWzNdfDApO3tuPURbMl18MDt3aGlsZShjPGspUj1SPj4+OHxSPDwyNCxSKz1ofDAsWj1aPj4+OHxaPDwyNCxoPWg8PDN8aD4+PjI5LForPW58MCxSXj1uKzY1OSxuPW48PDN8bj4+PjI5LGhePVIsWl49Yys2NTksbl49WixjKyt9cmV0dXJuW2g+Pj4yNCZHLGg+Pj5rJkcsaD4+PjgmRyxoPj4+MCZHLFI+Pj4yNCZHLFI+Pj5rJkcsUj4+PjgmRyxSPj4+MCZHXX0sY2Q9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe0I9KGMuSnM9dFcoNzcsKGMuQ2o9Y1tBb10sYy5nSj14ZixjLllEPUpvLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25jYXQoKX19KSxjLlIpLGMudlY9eWZbYy5SXShjLkpzLHt2YWx1ZTp7dmFsdWU6e319fSksMCk7e049W107d2hpbGUoQjwzODMpTltCXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEIpLEIrK31pZihjLlJhPShjLmN0PShjLkI9KGMuRno9W10sYy5WVD1mdW5jdGlvbihQKXtyZXR1cm4gb0IuY2FsbCh0aGlzLDEzLDEyLFApfSwoYy5FMj0oYy5QPVtdLDApLGMuWT1bXSxjLlc9ZmFsc2UsYy53Yj1bXSxjKS5OPShjLks9KGMuRz12b2lkIDAsYy5Eaz1bXSx2b2lkIDApLFQ9d2luZG93LnBlcmZvcm1hbmNlfHx7fSx2b2lkIDApLGMpLDApLFQudGltZU9yaWdpbil8fChULnRpbWluZ3x8e30pLm5hdmlnYXRpb25TdGFydHx8MCx0cnVlKWMud0o9dm9pZCAwO2MudT0oYy55VD0oKGMuVGU9RyxjLmRKPTMwMDAxLGMpLkQ3PTAsKGMuWD0wLGMpLnZ0PShjLm89ZmFsc2UsYy5CVj0oYy5PXz1ELG0pLFtdKSwwKSxmYWxzZSk7d2hpbGUoLTA9PT0wKWlmKChjLnM5PTI1LFtdKSE9dHJ1ZSlicmVhaztpZihjLnluPSEoYy5TbT0oKGMuVTk9W10sYy5sPXZvaWQgMCxjLlM9bnVsbCxjLnVYPShjLkJ3PTAsYy5xbz0wLGMuaj0wLFtdKSxjLlY9dm9pZCAwLGMuSHQ9IShjLkU5PWZhbHNlLGMub289dm9pZCAwLDEpLGMpLmtOPShjLlRmPTAsYy5IPTEsYy5XdD12b2lkIDAsMCksW10pLDEpLFomJloubGVuZ3RoPT0yJiYoYy5Eaz1aWzFdLGMuVTk9WlswXSksUil0cnl7Yy5XdD1KU09OLnBhcnNlKFIpfWNhdGNoKFApe2MuV3Q9e319ZigoZigyNixmdW5jdGlvbihQLGQsSSxTLFgpe3tYPTA7d2hpbGUoWCE9NjYpWD09ODg/KEk9cSgyNSxQKSxTPVkoUCw3MyksUShQLFMsZnVuY3Rpb24oTSl7cmV0dXJuIGV2YWwoTSl9KHpOKFYoSSxQLkIpKSkpLFg9NjYpOlg9PTAmJihYPU5UKGZhbHNlLDMyLGQsZmFsc2UsUCx0cnVlKT82Njo4OCl9fSwoKGYoKGYoMTYsZnVuY3Rpb24oUCl7a2ooMyxQKX0sKEMoMTQsKGYoKEEoMjY0LChmKDIzLChmKDIwLCgoZigxNywoZigyNywoZigxOCwoKGYoMjEsZnVuY3Rpb24oKXt9LDMyMywoZigyMCwoZigyMyxmdW5jdGlvbihQLGQsSSxTKXtBKChJPShTPShkPXEoNzEsUCksUnYpKFApLFkoUCw3NykpLEkpLFAsVyhQLGQpPj4+Uyl9LChDKDQyLChBKDE1NixjLChRKGMsKFEoYyw0ODgsKEEoMTkxLGMsKEMoOTUsKEMoNTUsKGYoMjUsKEMoNTA2LFtdLCgoQSgoZigxMyxmdW5jdGlvbihQLGQsSSxTLFgpe2ZvcihYPTU1O1ghPTQyOylYPT0zNz8oZC0tLFg9OTIpOlg9PTkyP1g9ZD4wPzkzOjk3Olg9PTU1PyhJPVAuRnoucG9wKCksWD0yOSk6WD09ODc/KFEoUCwxNDIsUC5qKSxYPTQyKTpYPT03MD9YPTkyOlg9PTk3PyhJWzUwNl09UC5ZWzUwNl0sSVszMDJdPVAuWVszMDJdLFAuWT1JLFg9NDIpOlg9PTI5P1g9ST82Nzo4NzpYPT05Mz8oUz1xKDI1LFApLElbU109UC5ZW1NdLFg9MzcpOlg9PTY3JiYoZD1SdihQKSxYPTcwKX0sKGMud049KChmKDE3LGZ1bmN0aW9uKFAsZCxJLFMsWCxNKXtmb3IoTT03MTtNIT00MDspTT09NzE/TT1OVChmYWxzZSw2NCxkLGZhbHNlLFAsdHJ1ZSk/NDA6OTc6TT09NDg/TT1QLkI9PVB8fEk9PVAuVlQmJlM9PVA/MTk6NDA6TT09OTc/KFg9cVQoNzEsNzQsUCwwLDEpLFM9WC5rZSxJPVguUFYsTT00OCk6TT09MTkmJihBKFgucW0sUCxJLmFwcGx5KFMsWC5MKSksUC5jdD1QLkooKSxNPTQwKX0sKGYoKGYoKChBKDE1NyxjLChmKChmKDI1LChDKDE2OCwoQSgxNDIsYywoZigoZigxOCwoZigyMixmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyl7Zm9yKHc9MjQ7dyE9ODY7KXc9PTQ/KFEoUCxyLEkpLHc9ODYpOnc9PTQ0PyhkPShNPXEoMTIsNyxQKSwtMip+KGR8TSkrKGR8fk0pKyh+ZHxNKSklbCxJLnB1c2goU1tkXSksdz0yOSk6dz09MjQ/KHI9WShQLDc3KSxYPXEoMTEsNyxQKSxJPVtdLFM9VyhQLDM5MyksZD0wLGw9Uy5sZW5ndGgsdz03MCk6dz09MjM/dz1YLS0/NDQ6NDp3PT0yOT93PTIzOnc9PTcwJiYodz0yMyl9LDMxMSxjKSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyl7Zm9yKHc9NjY7dyE9MzU7KXc9PTYwP3c9bDxkLmxlbmd0aD83MjoyODp3PT03Mj8oWCs9U3RyaW5nLmZyb21DaGFyQ29kZShkW2xdXjEyMSksdz00Myk6dz09NDM/KGwrKyx3PTYwKTp3PT04ND93PTYwOnc9PTY2PyhJPXEoODksUCkscj1xKDcyLFApLE09WShQLDc3KSxkPVcoUCxyKSxTPWIoUCxJKSxsPTAsWD0iIix3PTg0KTp3PT0yOCYmKEMoTSxTW1hdLFApLHc9MzUpfSksMTM2LGMpLDI3KSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyxFKXt7RT04NDt3aGlsZShFIT0xNClFPT0yND8oTSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoUz1kW3ddLDMqfihTJjEyMSktMip+Uy0gLTI0NCt+KFN8MTIxKSkpLEU9OTMpOkU9PTkzPyh3KyssRT0xOSk6RT09ODQ/KFg9WShQLDc0KSxJPVkoUCw3NCkscj1ZKFAsNzIpLGw9VyhQLEkpLGQ9VyhQLFgpLE09IiIsdz0wLEU9NDIpOkU9PTM0PyhBKHIsUCxNIGluIGx8MCksRT0xNCk6RT09MTk/RT13PGQubGVuZ3RoPzI0OjM0OkU9PTQyJiYoRT0xOSl9fSwyMjEsYyksMCkpLDApLGMpLGZ1bmN0aW9uKFAsZCxJKXtkPVkoKEk9WShQLDc2KSxQKSw3NiksQShkLFAsIiIrVyhQLEkpKX0pLDEwNixjKSwyMiksZnVuY3Rpb24oUCxkLEksUyxYLE0pe3tNPTM4O3doaWxlKE0hPTk3KU09PTE5PyhYKyssTT02OCk6TT09OD8oQShTLFAsZCksTT05Nyk6TT09Njg/TT1YPEk/MjY6ODpNPT04NT9NPTY4Ok09PTM4PyhTPXEoNjcsUCksST1xKDksNyxQKSxYPTAsZD1bXSxNPTg1KTpNPT0yNiYmKGQucHVzaChSdihQKSksTT0xOSl9fSwzMzUsYykse30pKSxjKS54ZT0wLDE2KSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyKXtmb3Iocj05NDtyIT04OTspaWYocj09NjEpcj1YPFAudnQubGVuZ3RoPzc0Ojk4O2Vsc2UgaWYocj09OTQpe2ZvcihJIGluIGRlbGV0ZSAoZD0oUz1SdihQKSxXKShQLDU1KSxkKVtTXSxkKWlmKEkhPT0idCImJk9iamVjdC5oYXNPd24oZCxJKSlyZXR1cm47cj0oWD0wLDQ0KX1lbHNlIHI9PTY5PyhYKysscj02MSk6cj09ODU/KEguY2xlYXJUaW1lb3V0KE0uSWEpLGEoNDYsTS5RVCxQKSxhKDQ1LE0uYWEsUCkscj02OSk6cj09Nzg/cj1NLk1tPzY5Ojg1OnI9PTk4PyhQLnZ0Lmxlbmd0aD0wLHI9ODkpOnI9PTc0PyhNPVAudnRbWF0scj03OCk6cj09NDQmJihyPTYxKX0sMzI5LGMpLDI0KSxmdW5jdGlvbihQLGQsSSl7KGQ9YigoST1ZKFAsNzUpLFAuQiksSSksZFswXSkucmVtb3ZlRXZlbnRMaXN0ZW5lcihkWzFdLGRbMl0sb3YpfSwxMzcsYyksMzEwKSxjKSxuZXcgZ1UoIlN1Ym1pdCIpKS5kaXNwb3NlKCksMCksMzI3KSxjKSw0MSksYywxODMpLGYpKDE2LGZ1bmN0aW9uKFApe3VOKDQsUCl9LDEzNCxjKSxjKSksZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcsRSxGLCRuLEdvLEosdil7Zm9yKHY9MDt2IT0yNzspaWYodj09NjkpRT1yLmxlbmd0aCxGPUY+MD9GOjEsdz0wLHY9MTE7ZWxzZSBpZih2PT04NSl2PXc8RT83OjI3O2Vsc2UgaWYodj09NjYpbD1xKDczLFApLCRuPXEoNzYsUCksR289cSg0OSxQKSxJPXEoNTcsUCksUz1XKFAsJG4pLHI9VyhQLGwpLE09VihJLFApLEY9VihHbyxQKSx2PTM3O2Vsc2UgaWYodj09Mzcpdj1YWCgiYXJyYXkiLHIsIm51bGwiKT09Im9iamVjdCI/OTA6Nzk7ZWxzZSBpZih2PT0wKXY9TlQoZmFsc2UsMzIsZCx0cnVlLFAsdHJ1ZSk/Mjc6NjY7ZWxzZSBpZih2PT03KVMoci5zbGljZSh3LCh3fDApKyhGfDApKSxNKSx2PTU5O2Vsc2UgaWYodj09MTEpdj04NTtlbHNlIGlmKHY9PTkwKXtmb3IoWCBpbiBKPVtdLHIpSi5wdXNoKFgpO3Y9KHI9Siw3OSl9ZWxzZSB2PT03OT92PVAuQj09UD82OToyNzp2PT01OSYmKHcrPUYsdj04NSl9KSw3MyxjKSx7fSksYyksWzAsMCwwXSksYyksWWYoNCkpKSxbNTcsMCwwXSkpLDE2MyksW10pLEgpKSxZZig0KSksYyksNDU0KSxjKSxmdW5jdGlvbihQLGQsSSxTLFgpe0EoKGQ9WFgoImFycmF5IiwoST1iKFAsKFM9cSgxNywoWD1ZKFAsNzQpLFApKSxYKSksSSksIm51bGwiKSxTKSxQLGQpfSksNDQxLGMpLGMpKSxRKShjLDQ1OCwwKSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwpe3tsPTY5O3doaWxlKGwhPTIyKWw9PTQ2PyhQLk49R04oMzIsUCxmYWxzZSksUC5sPXZvaWQgMCxsPTIyKTpsPT0xNz9sPVg9PTM2Mz80ODoyMjpsPT02ND9sPUk9PTI/NDY6MjI6bD09NDA/bD1QLkI9PVA/OTA6MjI6bD09NDg/KFAubD12b2lkIDAsbD02NCk6bD09OTA/KHI9YihQLFgpLFM9YihQLE0pLEk9VyhQLGQpLHJbSV09UyxsPTE3KTpsPT02OSYmKFg9WShQLDczKSxkPXEoODksUCksTT1xKDc4LFApLGw9NDApfX0pLDY3LGMpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCx3LEUpe2ZvcihFPTM7RSE9MTM7KUU9PTk3PyhYPXFUKDcxLDc0LFAuQiwwLDEpLE09WC5MLHc9WC5xbSxTPVguUFYsST1YLmtlLHI9TS5sZW5ndGgsbD1yPT0wP25ldyBJW1NdOnI9PTE/bmV3IElbU10oTVswXSk6cj09Mj9uZXcgSVtTXShNWzBdLE1bMV0pOnI9PTM/bmV3IElbU10oTVswXSxNWzFdLE1bMl0pOnI9PTQ/bmV3IElbU10oTVswXSxNWzFdLE1bMl0sTVszXSk6MigpLFEoUCx3LGwpLEU9MTMpOkU9PTMmJihFPU5UKGZhbHNlLDY1LGQsZmFsc2UsUCx0cnVlKT8xMzo5Nyl9KSwxMjcsYyksZnVuY3Rpb24oUCxkKXtwcigoZD1XKFAsWShQLDc2KSksNTA2KSwwLDE0MixkLDEwNCxQLkIpfSksMzEzLGMpLGYpKDE4LGZ1bmN0aW9uKFApe3VOKDEsUCl9LDEyMSxjKSxmdW5jdGlvbihQLGQsSSxTLFgsTSl7KEk9KGQ9KE09WShQLChYPXEoKFM9cSg3OSxQKSw2NyksUCksNzIpKSxiKShQLFgpLFYoUyxQKSksQykoTSxJW2RdLFApfSksMjEyLGMpLGYoMTUsZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcsRSxGKXtmb3IoRj04MztGIT0yNDspRj09Nzg/KFg9WShmYWxzZSwxNiwyLE0sMSxyLFAsRSx3KSxFLmFkZEV2ZW50TGlzdGVuZXIodyxYLG92KSxWKDcxLFApLnB1c2goZnVuY3Rpb24oKXtFLnJlbW92ZUV2ZW50TGlzdGVuZXIodyxYLG92KX0pLEMoNDU4LFtFLHcsWF0sUCksRj0yNCk6Rj09ODM/KGw9cSg0OSxQKSxTPXEoNzQsUCksZD1xKDU3LFApLEk9cSg3MCxQKSx3PVcoUCxTKSxNPWIoUCxJKSxyPVYoZCxQKSxFPVYobCxQLkIpLEY9MzQpOkY9PTM0JiYoRj1FIT09MD83ODoyNCl9LDQ5MyxjKSxmdW5jdGlvbihQLGQsSSxTKXtRKFAsKGQ9cSg3NSwoST1xKDc3LChTPVkoUCw3MiksUCkpLFApKSxkKSxiKFAsUyl8fFcoUCxJKSl9KSwxMTEsYyksYyksW10pLDE5KSxmdW5jdGlvbihQKXtraig0LFApfSw1MDAsYyksWWYoNCkpLGMpLDM2NCksYyksMTMpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNKXtBKChkPShJPWIoUCwoTT1xKDQ5LChTPVkoUCwoWD1xKDE3LFApLDcyKSksUCkpLFgpKSxWKShTLFApLE0pLFAsKyhJPT1kKSl9LDQzMixjKSxjKS5aaj0wLDUwNCksYyksMTUpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCl7aWYoMD09IShJPShyPVcoKE09WShQLChYPVkoUCwobD1ZKChTPVkoUCw3NiksUCksNzMpLDcyKSksNzUpKSxQKSxsKSxXKFAsTSkpLFt0cnVlLnRydWVdKSlkPVYoWCxQKTtDKFMsWShmYWxzZSwxNywyLGQsSSxyLFApLFApfSw4MCxjKTt3aGlsZSghW10hPSh0cnVlPT1bXSE9bnVsbCkpaWYoZigyNixmdW5jdGlvbihQLGQsSSxTLFgsTSl7KFg9YihQLChkPShTPXEoKEk9cSg2OCwoTT1xKDgwLFApLFApKSw3MCksUCksYihQLEkpKSxNKSksQykoUyxYIGluIGR8MCxQKX0sMzcsYyksIWZhbHNlPT0hIiIpYnJlYWs7UkIoMjYsZmFsc2UsYywoYSg0NywoYSg0MSwoQSg3MSwoKEEoMzAyLGMsWyhmKDE1LGZ1bmN0aW9uKFAsZCxJLFMpe1YoKGQ9YihQLChJPXEoNjgsUCksUz1ZKFAsNzMpLFMpKSxJKSxQKSE9MCYmQygxNDIsZCxQKX0sKFEoYyw0NDYsKGYoMTMsZnVuY3Rpb24oUCl7WSg4LDU0LFAsNCl9LDc0LChRKChmKDE3LGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCx3LEUsRiwkbixHbyxKLHYsTyx5LHdKKXt7eT0xMzt3aGlsZSh5IT00MCl5PT0wP3k9ODp5PT0yMD8oZigyMSxmdW5jdGlvbih6LFB1LG03LGcsZU0sTCl7Zm9yKEw9NDI7TCE9NzU7KUw9PTIxPyhQdS5wdXNoKG03KSxMPTQ4KTpMPT0zOD8oZy5wdXNoKHEoMjUseikpLEw9OTgpOkw9PTUzP0w9bTc+PWcubGVuZ3RoPzM4OjI1Okw9PTI1PyhtNz1nW203XSxMPTIxKTpMPT02Nj8oei5WPXEoNTMsUy5zbGljZSgpLHopLHouRz1xKDUsUHUseiksTD03NSk6TD09MTE/KG03PU1bZU1dLEw9MTUpOkw9PTQ4PyhlTSsrLEw9NjApOkw9PTQyPyhlTT0wLFB1PVtdLGc9W10sTD05OSk6TD09MTU/TD1PW2VNXT8yMTo2ODpMPT05OD9MPTUzOkw9PTYwP0w9ZU08Sj8xMTo2NjpMPT05OT9MPTYwOkw9PTY4JiYoTD01Myl9LHIsUCkseT00MCk6eT09Mjc/KHc9MCx5PTE1KTp5PT01Mj8oT1tJXXx8KE1bSV09d0ooRikpLHk9NDYpOnk9PTI1PyhGPSgoR298MSkrfihHb3wxKS0ofkdvXjEpLTIqKH5HbyYxKSkudG9TdHJpbmcoMikubGVuZ3RoLE09W10sST0wLHk9Nik6eT09NDk/KFMucHVzaChWKFkoUCw3NSksUCkpLHk9MzMpOnk9PTQ2PyhJKysseT04Nik6eT09MTM/KHdKPWZ1bmN0aW9uKHosUHUpe2Zvcig7RTx6Oyl2fD1SdihQKTw8RSxFKz04O3JldHVybiB2Pj49KFB1PShFLT16LHYmKDE8PHopLTEpLHopLFB1fSxyPVkoUCw3NSksdj1FPTAsWD0od0ooMyl8MCkrMSxKPXdKKDUpLE89W10seT1Hbz1sPTApOnk9PTg2P3k9STxKPzUyOjI3Onk9PTY1Pyh3KysseT04Myk6eT09MzM/eT00Nzp5PT02P3k9ODY6eT09NTA/KE9bd10mJihNW3ddPVkoUCw3MikpLHk9NjUpOnk9PTcxPygkbj13SigxKSxPLnB1c2goJG4pLEdvKz0kbj8wOjEseT03Nik6eT09NDc/eT1kLS0/NDk6MjA6eT09OD95PWw8Sj83MToyNTp5PT04Mz95PXc8Sj81MDo2OTp5PT03Nj8obCsrLHk9OCk6eT09Njk/KGQ9WCxTPVtdLHk9NjYpOnk9PTE1P3k9ODM6eT09NjYmJih5PTQ3KX19LDMwMCwoZigoQygxMDMsMCxjKSwyNCksZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcpe2Zvcih3PTkxO3chPTQ3Oyl3PT04MT8oZD0oTT1xKDgsNyxQKSwyKihkJk0pK34oZCZNKS1+KGR8TSkpJVMscis9TltsW2RdXSx3PTI1KTp3PT01MD93PTgzOnc9PTEyPyhBKFgsUCxyKSx3PTQ3KTp3PT05MT8oWD1ZKFAsNzUpLEk9cSgxMCw3LFApLHI9IiIsbD1XKFAsMzkzKSxTPWwubGVuZ3RoLGQ9MCx3PTUwKTp3PT04Mz93PUktLT84MToxMjp3PT0yNSYmKHc9ODMpfSw1MSxjKSxjKSksYyksMzksYyksYykpLFtdKSksMTcxKSxjKSwyMDQ4KV0pLGYpKDE5LGZ1bmN0aW9uKFAsZCxJLFMsWCl7USgoWD0oZD0oUz1xKDI1LChJPVkoUCw3NiksUCkpLGIpKFAsUyksVihJLFApKSxQKSxTLGQrWCl9LDEwNCxjKSxjKSxbXSksaHx8YSg1NixbeG5dLGMpLFtHdCxrXSksYyksW1JZLG5dKSxjKSx0cnVlKSx0cnVlKX0sVmg9ZnVuY3Rpb24oayxSKXtyZXR1cm4gem8uY2FsbCh0aGlzLDIxLDc5LDI0LGssUil9LGtmPWZ1bmN0aW9uKGssUixHKXtyZXR1cm4oRz1SLmNyZWF0ZSgpLnNoaWZ0KCksay5WLmNyZWF0ZSgpLmxlbmd0aHx8ay5HLmNyZWF0ZSgpLmxlbmd0aCl8fChrLkc9dm9pZCAwLGsuVj12b2lkIDApLEd9LHFQPWZ1bmN0aW9uKGspe2Zvcih2YXIgUj04NztSIT0yOTspaWYoUj09MzIpRCs9ZW5jb2RlVVJJQ29tcG9uZW50KEdbaF0pK2tbaCsxXSxSPTM1O2Vsc2V7aWYoUj09MTgpcmV0dXJuIGUoMzYsbnVsbCxEKTtpZihSPT04Nyl2YXIgRz1Lci5hcHBseSgxLChSPTkzLGFyZ3VtZW50cykpO2Vsc2UgaWYoUj09MzUpaCsrLFI9NDY7ZWxzZSBpZihSPT04Myl2YXIgaD0oUj00LDApLEQ9a1swXTtlbHNlIGlmKFI9PTkzKVI9Ry5sZW5ndGg9PT0wPzUxOjgzO2Vsc2UgaWYoUj09NClSPTQ2O2Vsc2UgaWYoUj09NDYpUj1oPEcubGVuZ3RoPzMyOjE4O2Vsc2UgaWYoUj09NTEpcmV0dXJuIGUoMzUsbnVsbCxrWzBdKX19LFdZPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIE1QLmNhbGwodGhpcywyMixrLFIsRyxoLEQpfSxubj1mdW5jdGlvbigpe3JldHVybiBmLmNhbGwodGhpcywzKX0sYUI9ZnVuY3Rpb24oayxSKXtyZXR1cm4gQVcuY2FsbCh0aGlzLDQxLGssOCxSKX0sWWY9ZnVuY3Rpb24oayxSLEcpe2ZvcihHPTE5O0chPTY4OylpZihHPT03OSlSLnB1c2goTWF0aC5yYW5kb20oKSoyNTV8MCksRz0xNTtlbHNlIGlmKEc9PTE5KVI9W10sRz05NztlbHNlIGlmKEc9PTk3KUc9MzA7ZWxzZSBpZihHPT0xNSlHPTMwO2Vsc2UgaWYoRz09MzApRz1rLS0/Nzk6NzE7ZWxzZSBpZihHPT03MSlyZXR1cm4gUn0sZWU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkLEksUyl7Zm9yKFo9KEI9KFQ9KEk9ay5yZXBsYWNlKC9cXHJcXG4vZywiXFxuIiksW10pLDApLDApO1o8SS5sZW5ndGg7WisrKUQ9SS5jaGFyQ29kZUF0KFopLEQ8Uj9UW0IrK109RDooRDwyMDQ4P1RbQisrXT0oYz1EPj42LC1+KGMmMTkyKSsyKihjXjE5MiktKH5jJjE5MikrKH5jfDE5MikpOigoRCY2NDUxMik9PTU1Mjk2JiZaKzE8SS5sZW5ndGgmJihJLmNoYXJDb2RlQXQoWisxKSY2NDUxMik9PTU2MzIwPyhEPShtPShEJjEwMjMpPDwxMCwyKig2NTUzNiZtKSsoNjU1MzYmfm0pLSgtNjU1MzdebSkrKC02NTUzN3xtKSkrKGg9SS5jaGFyQ29kZUF0KCsrWiksKGh8MCktfihoJjEwMjMpK35oKSxUW0IrK109KGQ9RD4+MTgsMjQwKyhkJjI0MCkrLTI0MS0ofmReMjQwKSksVFtCKytdPShHPShQPUQ+PjEyLDYzLSh+UCY2MykpLDEyNy0ofkd8UikpKTpUW0IrK109KFM9RD4+MTIsMjIzLSh+U3wyMjQpKSxUW0IrK109KG49KE49RD4+Niwtfk4rKH5OXjYzKSsofk4mNjMpKSxSLSh+bl5SKSsobnwtMTI5KSkpLFRbQisrXT02My1+RCt+KER8NjMpfFIpO3JldHVybiBUfSxXPWZ1bmN0aW9uKGssUixHKXtHPWsuWVtSXTtmb3IoTmFOO0c9PT12b2lkIDA7ZmFsc2Upe3Rocm93W3dVLDMwLFJdO2lmKHRydWUpYnJlYWt9aWYoRy52YWx1ZSlyZXR1cm4gRy5jcmVhdGUoKTtyZXR1cm4oRy5jcmVhdGUoUioyKlIrLTMxKlIrNTgpLEcpLnByb3RvdHlwZX0sTHI9ZnVuY3Rpb24oayxSLEcsaCxEKXtyZXR1cm4gTlQuY2FsbCh0aGlzLGssNSxSLEcsaCxEKX0sa2o9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7KCgoRz1iKFIsKFo9WShSLChjPVkoUiwoRD0oa3w0KS1+aysoaD1rJjMsfihrfDQpKS0oayYtNSksNzMpKSw3NykpLGMpKSxEKSYmKEc9ZWUoIiIrRywxMjgpKSxoKSYmamUoWixLKDIsRy5sZW5ndGgpLFIpLGplKShaLEcsUil9LGlOPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOKXsoUi5wdXNoKChjPWtbMF08PDI0fGtbMV08PDE2LG49a1syXTw8OCwtfihjJm4pKy0yLSh+Y15uKSl8a1szXSksUi5wdXNoKChaPShoPWtbNF08PDI0fGtbNV08PDE2LE49a1s2XTw8OCwtMi1+Ti0ofmh8TikpLEQ9a1s3XSwyKihEfDApLTIqKFomRCktflorKFp8fkQpKSksUikucHVzaCgoVD0oQj1rWzhdPDwyNHxrWzldPDwxNixtPWtbMTBdPDw4LC1+KEImbSkrMiooQl5tKSsofkJebSkpLEc9a1sxMV0sLTEtflQrKH5UJkcpKSl9LGxOPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3N3aXRjaCghKGguQj09aCkpe2Nhc2UgdHJ1ZTpmYWxzZTticmVhaztjYXNlICFbIiJdIT0wOntaPWIoaCxrKSxrPT00Mnx8az09MTkxfHxrPT0xND8obT1mdW5jdGlvbihULE4sUCxkLEksUyxYLE0pe2ZvcihYPShTPTgsOTcpOzspdHJ5e2lmKFM9PTU1KWJyZWFrO2Vsc2UgaWYoUz09NzYpWD0zMyxaLkdmPXloKDE2LHEoMzQsOCwtMS0yKn4oSXw0KSsofkleNCksWiksMjU1LHEoNjYsOCxJLFopLGQpLFM9NzA7ZWxzZXtpZihTPT02Mil0aHJvdyBYPTk3LE07Uz09NzA/KFoucHVzaChaLkdmWy0oTnxHKS0yKn4oTnxHKSsoTnwtOCkrKH5OfEcpXV5UKSxTPTU1KTpTPT05MD9TPVoubUIhPVA/Mjk6NzA6Uz09OD8oTj1aLmxlbmd0aCxQPShOfDApLTQ+PjMsUz05MCk6Uz09MjkmJihJPShQPDwzKS00LGQ9WzAsMCxCWzFdLEJbMl1dLFoubUI9UCxTPTc2KX19Y2F0Y2gocil7aWYoWD09OTcpdGhyb3cgcjtYPT0zMyYmKE09cixTPTYyKX19LEI9Vig5NSxoKSk6bT1mdW5jdGlvbihUKXtaLnB1c2goVCl9LEQmJm0oKER8MCktIC01MTIrMip+KER8MjU1KSsoRCYtMjU2KSksYz1SLmxlbmd0aCxuPTA7d2hpbGUobjxjKW0oUltuXSksbisrfWJyZWFrfX0sQz1mdW5jdGlvbihrLFIsRyl7c3dpdGNoKCEoaz09MTQyfHxrPT0xNjgpKXtjYXNlIHRydWU6d2hpbGUoRy55biYmayE9MzYzKXtyZXR1cm47aWYoZmFsc2U9PTApYnJlYWt9az09NDg4fHxrPT00Mnx8az09MjY0fHxrPT0xNHx8az09NTA2fHxrPT00NDZ8fGs9PTE2M3x8az09OTV8fGs9PTE5MXx8az09MzAyP0cuWVtrXXx8KEcuWVtrXT1ZKDIsMzIsRyxSLGssMzgpKTpHLllba109WSgyLDM1LEcsUixrLDEyOSk7YnJlYWs7Y2FzZSBmYWxzZTpHLllba10/Ry5ZW2tdLmNvbmNhdChSKTpHLllba109cSg4NSxSLEcpO2JyZWFrfWs9PTM2MyYmKEcuTj1HTigzMixHLGZhbHNlKSxHLmw9dm9pZCAwKX0scVQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQil7Yz0oWj0oKG49cSgobT1HW3ZZXXx8e30sayksRyksbS5xbT1xKDE3LEcpLG0pLkw9W10sRykuQj09Rz8oUnYoRyl8aCktRDoxLFkoRyxSKSk7e0I9aDt3aGlsZShCPFopbS5MLnB1c2gocSg0OSxHKSksQisrfWZvcihtLlBWPWIoRyxuKTtaLS07KW0uTFtaXT1iKEcsbS5MW1pdKTtyZXR1cm4gbS5rZT1iKEcsYyksbX0sV3U9ZnVuY3Rpb24oKXtyZXR1cm4gckouY2FsbCh0aGlzLDUpfSxRaD1mdW5jdGlvbihrLFIsRyxoLEQsYyl7cmV0dXJuIFcoRCwoQygxNDIsKGJOKDU3LGgsKChjPVcoRCwxNDIpLEQud2ImJmM8RC5qKT8oUShELDE0MixELmopLHByKDUwNixrLDE0MixSLDEwNCxEKSk6QygxNDIsUixEKSxEKSw0MSksYyksRCksRykpfSxGWD1mdW5jdGlvbigpe3JldHVybiBNUC5jYWxsKHRoaXMsMjApfSxYWD1mdW5jdGlvbihrLFIsRyxoLEQpe0Q9dHlwZW9mIFI7c3dpdGNoKCEoRD09Im9iamVjdCIpKXtjYXNlIE5hTiE9PU51bWJlcih1bmRlZmluZWQpOmZvcihbXSE9KCFbIiJdPT1OdW1iZXIoKSk7RD09ImZ1bmN0aW9uIiYmdHlwZW9mIFIuY2FsbD09InVuZGVmaW5lZCI7MCl7cmV0dXJuIm9iamVjdCI7aWYoIkYiKWJyZWFrfWJyZWFrO2Nhc2UgbnVsbD09KG51bGw9PWZhbHNlKTpzd2l0Y2goIVIpe2Nhc2UgIVtdPT0wOnJldHVybiBHO2JyZWFrO2Nhc2UgIVt1bmRlZmluZWRdIT0wOmlmKFIgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4gaztzd2l0Y2goIShSIGluc3RhbmNlb2YgT2JqZWN0KSl7Y2FzZSB0cnVlOltdIT0odHJ1ZSE9W10pO2JyZWFrO2Nhc2UgIVtdPT0oLTA9PT0wKTpyZXR1cm4gRDticmVha31oPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSKTtmb3IoZmFsc2U7aD09IltvYmplY3QgV2luZG93XSI7ZmFsc2Upe3JldHVybiJvYmplY3QiO2lmKFtdPT0oIWZhbHNlPT0hIiIpIT1udWxsKWJyZWFrfWZvcihOdW1iZXIoKTtoPT0iW29iamVjdCBBcnJheV0ifHx0eXBlb2YgUi5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgUi5zcGxpY2UhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgUi5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiFSLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJzcGxpY2UiKTtmYWxzZSl7cmV0dXJuIGs7aWYoIlkiKWJyZWFrfXN3aXRjaCghKGg9PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiBSLmNhbGwhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgUi5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiFSLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpKXtjYXNlIFtdIT10cnVlOjE7YnJlYWs7Y2FzZSBmYWxzZTpyZXR1cm4iZnVuY3Rpb24iO2JyZWFrfWJyZWFrfWJyZWFrfXJldHVybiBEfSxyVT1mdW5jdGlvbihrLFIpe3JldHVybiB0Vy5jYWxsKHRoaXMsMjgsayxSKX0seD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7bT10aGlzO3RyeXtjZChSLG4sYyxaLGssdGhpcyxoLEQsRyl9Y2F0Y2goQil7ZSg4OSwiOiIsdGhpcyxCKSxEKGZ1bmN0aW9uKFQpe1QobS5LKX0pfX0sWnk9ZnVuY3Rpb24oayxSKXtmdW5jdGlvbiBHKCl7dGhpcy5uPSh0aGlzLlQ9W10sMCl9cmV0dXJuW2Z1bmN0aW9uKGgpe2sueE4oaCksUi54TihoKX0sKFI9KGs9KEcucHJvdG90eXBlLnhOPShHLnByb3RvdHlwZS5POT1mdW5jdGlvbigpe3JldHVybiBSQi5jYWxsKHRoaXMsMyl9LGZ1bmN0aW9uKGgsRCl7cmV0dXJuIGNZLmNhbGwodGhpcywzMyxoLDExLEQpfSksbmV3IEcpLG5ldyBHKSxmdW5jdGlvbihoLEQpe3JldHVybiBEPShoPWg9PT12b2lkIDA/dHJ1ZTpoLGsuTzkoKS5jb25jYXQoUi5POSgpKSksaCYmKFI9bmV3IEcpLER9KV19LGtuPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOLFApe209a1swXTtzd2l0Y2goIShtPT0kZikpe2Nhc2UgZmFsc2U9PSFbXTppZihtPT1CZCloLlc9RyxoLnM5PTI1LGgueVQ9aC5SbygpLWtbUl0saC5pKGspO2Vsc2UgaWYobT09QW8pe0I9a1sxXVszXTt0cnl7Yz1oLkt8fGguaShrKX1jYXRjaChkKXtlKDU4LCI6IixoLGQpLGM9aC5LfShuPWguSigpLEIoYyksaCkuWCs9aC5KKCktbn1lbHNlIHN3aXRjaCghKG09PW1jKSl7Y2FzZSBOYU4hPT1OdW1iZXIodW5kZWZpbmVkKTpzd2l0Y2goIShtPT1HdCkpe2Nhc2UgMD09PS0wOnN3aXRjaCghKG09PVJZKSl7Y2FzZSBOdW1iZXIoKT09PS1OdW1iZXIoKTppZihtPT1NVClyZXR1cm4gRD1rW1JdLEEoNDUxLGgsa1s2XSksQygxNTcsRCxoKSxoLmkoayk7bT09ZHI/KGguaShrKSxoLlk9bnVsbCxoLnVYPVtdLGgud2I9W10pOm09PXhuJiZILmRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyImJihoLlM9ZnVuY3Rpb24oZCxJKXtmdW5jdGlvbiBTKFgpe2ZvcihYPTk3O1ghPTU2OylYPT05Nz9YPUk/NTY6ODY6WD09ODYmJihJPUcsSC5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixTLG92KSxILnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFMsb3YpLGQoKSxYPTU2KX1ILmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLChJPWZhbHNlLFMpLG92KSxILmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLFMsb3YpfSk7YnJlYWs7Y2FzZSBmYWxzZTp0cnl7e1A9MDt3aGlsZShQPGguU20ubGVuZ3RoKXt0cnl7Wj1oLlNtW1BdLFpbMF1bWlsxXV0oWltSXSl9Y2F0Y2goZCl7fVArK319fWNhdGNoKGQpe30oMCxrWzFdKShmdW5jdGlvbihkLEkpe2gucFgoZCxHLEkpfSxmdW5jdGlvbihkKXthKDQ0LChkPSFoLlAubGVuZ3RoJiYhaC5vLFtkcl0pLGgpLGQmJlJCKDMwLGZhbHNlLGgsZmFsc2UsRyl9LChoLlNtPVtdLFQ9aC5KKCksZnVuY3Rpb24oZCl7cmV0dXJuIGgudHgoZCl9KSxmdW5jdGlvbihkLEksUyl7cmV0dXJuIGguZWkoZCxJLFMpfSksaC5YKz1oLkooKS1UO2JyZWFrfWJyZWFrO2Nhc2UgZmFsc2U6aC51PUcsaC5pKGspO2JyZWFrfWJyZWFrO2Nhc2UgW109PShmYWxzZT09IVtdKTprWzNdJiYoaC51PUcpLGtbNF0mJihoLlc9RyksaC5pKGspO2JyZWFrfWJyZWFrO2Nhc2UgTmFOPT09TmFOOmlmKE49aC5pKGspKU4uSWE9SC5zZXRUaW1lb3V0KGZ1bmN0aW9uKGQpeyhhKChhKDQwLE4uUVQsKGQ9KE4uTW09RywhaC5QLmxlbmd0aCYmIWgubyksaCkpLDU4KSxOLmFhLGgpLGQpJiZSQigyNSxmYWxzZSxoLEcsRyl9LE4udGltZW91dCksaC52dC5wdXNoKE4pO2JyZWFrfX0sU009ZnVuY3Rpb24oayxSLEcpeyJzdGFjayJpbih0aGlzLm1lc3NhZ2U9KEc9RXJyb3IuY2FsbCh0aGlzLGsrIiBjYW5ub3QgYmUgdXNlZCB3aXRoIGludGVudCAiK21EW1JdKSxHLm1lc3NhZ2UpLEcpJiYodGhpcy5zdGFjaz1HLnN0YWNrKSx0aGlzLnR5cGU9ayx0aGlzLm5hbWU9IlR5cGVDYW5ub3RCZVVzZWRXaXRoSWZyYW1lSW50ZW50RXJyb3IifSxnVT1mdW5jdGlvbihrLFIsRyl7cmV0dXJuIEFXLmNhbGwodGhpcyw0MSxrLDI5LFIsRyl9LEE9ZnVuY3Rpb24oayxSLEcpe2lmKGs9PTE0Mnx8az09MTY4KVIuWVtrXT9SLllba10uY29uY2F0KEcpOlIuWVtrXT1xKDM3LEcsUik7ZWxzZXtpZihSLnluJiZrIT0zNjMpcmV0dXJuO2s9PTQ4OHx8az09NDJ8fGs9PTI2NHx8az09MTR8fGs9PTUwNnx8az09NDQ2fHxrPT0xNjN8fGs9PTk1fHxrPT0xOTF8fGs9PTMwMj9SLllba118fChSLllba109WSgyLDQwLFIsRyxrLDM4KSk6Ui5ZW2tdPVkoMiwzMixSLEcsaywxMjkpfWs9PTM2MyYmKFIuTj1HTigzMixSLGZhbHNlKSxSLmw9dm9pZCAwKX0sbng9ZnVuY3Rpb24oayxSLEcsaCxEKXt3aGlsZShrLmxlbmd0aD09Myl7e2g9MDt3aGlsZShoPDMpUltoXSs9a1toXSxoKyt9RD1bMTMsOCwxMywxMiwxNiw1LDMsMTAsMTVdO3tHPTA7d2hpbGUoRzw5KVJbM10oUixHJTMsRFtHXSksRysrfWlmKHt9KWJyZWFrfX0sS3I9ZnVuY3Rpb24oKXt7dmFyIGs9OTM7d2hpbGUoayE9Mzkpe2lmKGs9PTkwKXJldHVybiBoO2lmKGs9PTc3KWs9Rzxhcmd1bWVudHMubGVuZ3RoPzE2OjkwO2Vsc2UgaWYoaz09OTMpdmFyIFI9KGs9MTEsTnVtYmVyKSh0aGlzKSxHPVIsaD1bXTtlbHNlIGs9PTExP2s9Nzc6az09OTI/KEcrKyxrPTc3KTprPT0xNiYmKGhbRy1SXT1hcmd1bWVudHNbR10saz05Mil9fX0scHI9ZnVuY3Rpb24oayxSLEcsaCxELGMpe3doaWxlKGZhbHNlPT0wKWlmKGMuRnoubGVuZ3RoPkQ/YXYoayxjLFIsW3dVLDM2XSk6KGMuRnoucHVzaChjLlkuc2xpY2UoKSksYy5ZW0ddPXZvaWQgMCxBKEcsYyxoKSksIVtdPT0wKWJyZWFrfSxiPWZ1bmN0aW9uKGssUixHKXtHPWsuWVtSXTt3aGlsZShHPT09dm9pZCAwKXt0aHJvd1t3VSwzMCxSXTtpZigwPT0hW3RydWUudHJ1ZV0pYnJlYWt9c3dpdGNoKCFHLnZhbHVlKXtjYXNlIDA9PSFbXTpbXSE9KHRydWUhPVtdKTticmVhaztjYXNlIG51bGw9PShmYWxzZT09bnVsbCk6cmV0dXJuIEcuY3JlYXRlKCk7YnJlYWt9cmV0dXJuKEcuY3JlYXRlKFIqMipSKy0zMSpSKzU4KSxHKS5wcm90b3R5cGV9LE5ELHRvPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtyZXR1cm4gRjEuY2FsbCh0aGlzLDk0LCJvbiIsMjQsayxSLEcsaCxELGMpfSxUdD1mdW5jdGlvbihrLFIsRyxoLEQpe3JldHVybiBMbi5jYWxsKHRoaXMsMyxrLEcsMTIsRCxSLGgpfSxEWj1mdW5jdGlvbigpe3JldHVybiBLbi5jYWxsKHRoaXMsMCwxLDUpfSxnSj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtyZXR1cm4gQlkuY2FsbCh0aGlzLGssMTIsUixHLGgsRCxjLFosbixtLEIpfSxWPWZ1bmN0aW9uKGssUixHKXtHPVIuWVtrXTtzd2l0Y2goIShHPT09dm9pZCAwKSl7Y2FzZSAwPT0hWyIiXTowPT0hWyIiXTticmVhaztjYXNlIDAhPT0tTnVtYmVyKCk6dGhyb3dbd1UsMzAsa107YnJlYWt9aWYoRy52YWx1ZSlyZXR1cm4gRy5jcmVhdGUoKTtyZXR1cm4oRy5jcmVhdGUoayoyKmsrLTMxKmsrNTgpLEcpLnByb3RvdHlwZX0sUzg9ZnVuY3Rpb24oayxSLEcsaCl7dHJ5e2g9a1soKFJ8MCkrMiklM10sa1tSXT0oa1tSXXwwKS0oa1soLTIqfihSJjEpKy0yKyhSJi0yKSsoflImMSkpJTNdfDApLShofDApXihSPT0xP2g8PEc6aD4+PkcpfWNhdGNoKEQpe3Rocm93IEQ7fX0sSVk9ZnVuY3Rpb24oKXtyZXR1cm4gckouY2FsbCh0aGlzLDgpfSxRZj1mdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyw1MSl9LFgxPWZ1bmN0aW9uKGspe3JldHVybiBOUC5jYWxsKHRoaXMsNCxrLDMpfSx1Tj1mdW5jdGlvbihrLFIsRyxoKXtoPXEoNTcsKEc9WShSLDczKSxSKSksamUoaCxLKGssVihHLFIpKSxSKX0sYk49ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe2lmKCFHLkspe0cuRDcrKzt0cnl7RD1HLmo7d2hpbGUoIW51bGwpaWYoYz12b2lkIDAsdHJ1ZSE9IVtdKWJyZWFrO2ZvcihaPTA7LS1SOyl0cnl7aWYobT12b2lkIDAsRy5WKWM9a2YoRyxHLlYpO2Vsc2V7aWYoKFo9VigxNDIsRyksWik+PUQpYnJlYWs7Yz1iKEcsKG09cSg4OSwoUShHLDE2OCxaKSxHKSksbSkpfU5UKGZhbHNlLDMzLChjJiYobj1jW2RyXSwobnwwKSsyMDQ4LShufDIwNDgpKT9jKEcsUik6YXYoNTA2LEcsMCxbd1UsMjEsbV0pLFIpLGZhbHNlLEcsZmFsc2UpfWNhdGNoKEIpe1coRyxoKT9hdig1MDYsRywyMixCKTpBKGgsRyxCKX1mb3IodHJ1ZSsobnVsbCE9KDAhPSFbXSkpOyFSOzEpe2Zvcih2b2lkIDA7Ry5ObTshW109PWZhbHNlKXtiTig1NywoRy5ENy0tLDYwMzE5ODAwNTkzMCksRyw0MSk7cmV0dXJuO2lmKDMpYnJlYWt9aWYoYXYoNTA2LEcsMCxbd1UsMzNdKSwxKWJyZWFrfX1jYXRjaChCKXt0cnl7YXYoNTA2LEcsMjIsQil9Y2F0Y2goVCl7ZShrLCI6IixHLFQpfX1HLkQ3LS19fSxwbj1mdW5jdGlvbihrKXtyZXR1cm4gSUIuY2FsbCh0aGlzLDI0LGspfSx1O3N3aXRjaCghKHR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpKXtjYXNlICEiIj09IWZhbHNlOnZhciBYUTthOnt2YXIgTUQ9e30sb1k9e2E6dHJ1ZX07dHJ5e01ELl9fcHJvdG9fXz1vWTt3aGlsZShOdW1iZXIoKT09ZmFsc2UpaWYoWFE9TUQuYSx0cnVlIT1bXSlicmVhazticmVhayBhfWNhdGNoKGspe31YUT1mYWxzZX1ORD1YUT9mdW5jdGlvbihrLFIsRyl7Zm9yKEc9MTU7RyE9NTI7KXtpZihHPT02NilyZXR1cm4gaztpZihHPT0xNSlrLl9fcHJvdG9fXz1SLEc9Nzg7ZWxzZSBpZihHPT03OClHPWsuX19wcm90b19fIT09Uj80MTo2NjtlbHNlIGlmKEc9PTQxKXRocm93IG5ldyBUeXBlRXJyb3IoaysiIGlzIG5vdCBleHRlbnNpYmxlIik7fX06bnVsbDticmVhaztjYXNlIDAhPSFbXTpORD1PYmplY3Quc2V0UHJvdG90eXBlT2Y7YnJlYWt9dmFyIEg9dGhpc3x8c2VsZix0MD1ORCxFUj0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSxIdT0wLFpaLGZuPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtEPTgxO3toPTU0O3doaWxlKFtdKXRyeXtpZihEPT0zNSlicmVhaztlbHNlIGlmKEQ9PTgwKVI9ZmFsc2UsRz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtSPXRydWV9fSksRD01MDtlbHNlIGlmKEQ9PTMwKWg9NTQsRD0zMjtlbHNle2lmKEQ9PTMyKXJldHVybiBoPTU0LFI7aWYoRD09MzMpcmV0dXJuIGZhbHNlO0Q9PTUwPyhoPTM4LGs9ZnVuY3Rpb24oKXt9LEguYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsayxHKSxILnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGssRyksRD0zMik6RD09ODEmJihEPUguYWRkRXZlbnRMaXN0ZW5lciYmT2JqZWN0LmRlZmluZVByb3BlcnR5PzgwOjMzKX19Y2F0Y2goWil7aWYoaD09NTQpdGhyb3cgWjtoPT0zOCYmKGM9WixEPTMwKX19fSgpLGRKPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoKCgoKEJZKDIsNDUsclUsKGFCLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD0oV3UucHJvdG90eXBlW1d1LnByb3RvdHlwZS5kaXNwb3NlPShXdS5wcm90b3R5cGUuZz1mYWxzZSxmdW5jdGlvbihrKXt7az05NTt3aGlsZShrIT0xMilrPT01Mj8odGhpcy5nPXRydWUsdGhpcy5VKCksaz0xMik6az09OTUmJihrPXRoaXMuZz8xMjo1Mil9fSksKGFCLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLlB0PXRydWV9LFN5bWJvbCkuZGlzcG9zZV09KFd1LnByb3RvdHlwZS5VPWZ1bmN0aW9uKGspe3trPTc2O3doaWxlKGshPTQ2KWs9PTU4P2s9ODA6az09MzY/KHRoaXMubFguc2hpZnQoKSgpLGs9NDEpOms9PTgwP2s9dGhpcy5sWC5sZW5ndGg/MzY6NDY6az09NDE/az04MDprPT03NiYmKGs9dGhpcy5sWD81ODo0Nil9fSxmdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfSksZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dHJ1ZX0pLGFCKSksclUucHJvdG90eXBlKS5pbml0PWZ1bmN0aW9uKGssUixHLGgsRCxjKXtmb3IoYz0zOTtjIT05NjspYz09MTY/Yz1EPT0ibW91c2VvdmVyIj8yMjoyMzpjPT0yMz9jPUQ9PSJtb3VzZW91dCI/MTI6ODQ6Yz09OTk/KHRoaXMub2Zmc2V0WD1rLm9mZnNldFgsdGhpcy5vZmZzZXRZPWsub2Zmc2V0WSx0aGlzLmNsaWVudFg9ay5jbGllbnRYIT09dm9pZCAwP2suY2xpZW50WDprLnBhZ2VYLHRoaXMuY2xpZW50WT1rLmNsaWVudFkhPT12b2lkIDA/ay5jbGllbnRZOmsucGFnZVksdGhpcy5zY3JlZW5YPWsuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ay5zY3JlZW5ZfHwwLGM9MjApOmM9PTg0Pyh0aGlzLnJlbGF0ZWRUYXJnZXQ9aCxjPTgxKTpjPT01ND8odGhpcy5jbGllbnRYPUcuY2xpZW50WCE9PXZvaWQgMD9HLmNsaWVudFg6Ry5wYWdlWCx0aGlzLmNsaWVudFk9Ry5jbGllbnRZIT09dm9pZCAwP0cuY2xpZW50WTpHLnBhZ2VZLHRoaXMuc2NyZWVuWD1HLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPUcuc2NyZWVuWXx8MCxjPTIwKTpjPT0yMD8odGhpcy5idXR0b249ay5idXR0b24sdGhpcy5rZXlDb2RlPWsua2V5Q29kZXx8MCx0aGlzLmtleT1rLmtleXx8IiIsdGhpcy5jaGFyQ29kZT1rLmNoYXJDb2RlfHwoRD09ImtleXByZXNzIj9rLmtleUNvZGU6MCksdGhpcy5jdHJsS2V5PWsuY3RybEtleSx0aGlzLmFsdEtleT1rLmFsdEtleSx0aGlzLnNoaWZ0S2V5PWsuc2hpZnRLZXksdGhpcy5tZXRhS2V5PWsubWV0YUtleSx0aGlzLnBvaW50ZXJJZD1rLnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPWsucG9pbnRlclR5cGUsdGhpcy5zdGF0ZT1rLnN0YXRlLHRoaXMudGltZVN0YW1wPWsudGltZVN0YW1wLHRoaXMuWU49ayxrLmRlZmF1bHRQcmV2ZW50ZWQmJnJVLk8ucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSxjPTk2KTpjPT02OD9jPWg/ODQ6MTY6Yz09MjI/KGg9ay5mcm9tRWxlbWVudCxjPTg0KTpjPT04MT9jPUc/NTQ6OTk6Yz09MTI/KGg9ay50b0VsZW1lbnQsYz04NCk6Yz09MzkmJihEPXRoaXMudHlwZT1rLnR5cGUsRz1rLmNoYW5nZWRUb3VjaGVzJiZrLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9rLmNoYW5nZWRUb3VjaGVzWzBdOm51bGwsdGhpcy50YXJnZXQ9ay50YXJnZXR8fGsuc3JjRWxlbWVudCx0aGlzLmN1cnJlbnRUYXJnZXQ9UixoPWsucmVsYXRlZFRhcmdldCxjPTY4KX0sclUpLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXsoclUuTy5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKSx0aGlzLllOLnN0b3BQcm9wYWdhdGlvbik/dGhpcy5ZTi5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLllOLmNhbmNlbEJ1YmJsZT10cnVlfSxyVSkucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKGspeyhrPShyVS5PLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyksdGhpcy5ZTiksaykucHJldmVudERlZmF1bHQ/ay5wcmV2ZW50RGVmYXVsdCgpOmsucmV0dXJuVmFsdWU9ZmFsc2V9LE1hdGgucmFuZG9tKCkpKjFFNnwwKSxIWT0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpLEl2PTAsbDk9KCgoak0ucHJvdG90eXBlLmFkZD0oak0ucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIHJKKDEwLHRydWUsZmFsc2UsKEc9KGg9KEQ9ayE9PXZvaWQgMCk/ay50b1N0cmluZygpOiIiLFIhPT12b2lkIDApLHRoaXMuWiksZnVuY3Rpb24oYyxaLG4pe2ZvcihuPTM4O24hPTgzOylpZihuPT04OCkrK1osbj0zMjtlbHNle2lmKG49PTE4KXJldHVybiBmYWxzZTtpZihuPT03NyluPTMyO2Vsc2UgaWYobj09ODkpbj1EJiZjW1pdLnR5cGUhPWh8fEcmJmNbWl0uY2FwdHVyZSE9Uj84ODoxNDtlbHNle2lmKG49PTE0KXJldHVybiB0cnVlO249PTMyP249WjxjLmxlbmd0aD84OToxODpuPT0zOCYmKFo9MCxuPTc3KX19fSl9LGZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3tCPTczO3doaWxlKEIhPTI5KWlmKEI9PTEwKW0uYW89ZmFsc2UsQj01MTtlbHNlIGlmKEI9PTIxKUI9Yz4tMT8wOjcxO2Vsc2UgaWYoQj09NDMpQj1HPzUxOjEwO2Vsc2V7aWYoQj09NTEpcmV0dXJuIG07Qj09MD8obT1uW2NdLEI9NDMpOkI9PTk0PyhuPXRoaXMuWltaXT1bXSx0aGlzLkp4KyssQj0zMik6Qj09NzE/KG09bmV3IFR0KEQsdGhpcy5zcmMsWixSLCEhaCksbS5hbz1HLG4ucHVzaChtKSxCPTUxKTpCPT0zMj8oYz1ySigyMSwwLGgsRCxuLFIpLEI9MjEpOkI9PTczPyhaPWsudG9TdHJpbmcoKSxuPXRoaXMuWltaXSxCPTQ4KTpCPT00OCYmKEI9bj8zMjo5NCl9fX0pLGpNKS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7e249MjI7d2hpbGUobiE9NDIpaWYobj09MzkpaFcoMjMsdHJ1ZSxEW2NdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoRCxjLDEpLG49NzQ7ZWxzZSBpZihuPT05OSluPWM+LTE/Mzk6NTk7ZWxzZXtpZihuPT0yKXJldHVybiB0cnVlO2lmKG49PTUpZGVsZXRlIHRoaXMuWltaXSx0aGlzLkp4LS0sbj0yO2Vsc2UgaWYobj09NzQpbj1ELmxlbmd0aD09MD81OjI7ZWxzZSBpZihuPT04MyluPVogaW4gdGhpcy5aPzg0OjA7ZWxzZXtpZihuPT01OXx8bj09MClyZXR1cm4gZmFsc2U7bj09MjI/KFo9ay50b1N0cmluZygpLG49ODMpOm49PTg0JiYoRD10aGlzLlpbWl0sYz1ySigyMCwwLEcsaCxELFIpLG49OTkpfX19fSxqTSkucHJvdG90eXBlLkNYPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtyZXR1cm4oRD10aGlzLlpbay50b1N0cmluZygpXSxjPS0xLEQmJihjPXJKKDIyLDAsaCxHLEQsUikpLGMpPi0xP0RbY106bnVsbH0sImNsb3N1cmVfbG1fIikrKE1hdGgucmFuZG9tKCkqMUU2fDApLGk5PTAsVE49e30sZFU9Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTsoKCgoKEJZKDIsNDMsRFosV3UpLERaLnByb3RvdHlwZSlbZEpdPXRydWUsdT1EWi5wcm90b3R5cGUsdSkuemY9ZnVuY3Rpb24oayl7dGhpcy5Obz1rfSx1KS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgpe3Z1KDU2LGZhbHNlLFIsRyx0aGlzLHRydWUsaywzLGgpfSx1KS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgpe0J1KDE2LDAsIm9iamVjdCIsRyxSLGgsayx0aGlzKX0sdS5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOKXtmb3IoTj03NDtOIT02MTspaWYoTj09ODYpQj1SLmN1cnJlbnRUYXJnZXQ9bixoPVBZKDUsMCxCLG0sdHJ1ZSxSKSYmaCxSLlB0fHwoaD1QWSgzLDAsQixtLGZhbHNlLFIpJiZoKSxOPTY0O2Vsc2UgaWYoTj09OTEpTj05O2Vsc2UgaWYoTj09NilOPVIuUHQ/NjQ6ODY7ZWxzZSBpZihOPT0yKUI9Ui5jdXJyZW50VGFyZ2V0PWNbWl0saD1QWSg3LDAsQixtLHRydWUsUikmJmgsTj0yNDtlbHNlIGlmKE49PTY4KUQ9W10sTj00O2Vsc2UgaWYoTj09NzMpRC5wdXNoKEcpLE49NzE7ZWxzZSBpZihOPT02NClOPWM/NDc6MjU7ZWxzZSBpZihOPT01MyloPXRydWUsTj0xMjtlbHNlIGlmKE49PTkpTj0hUi5QdCYmWj49MD8yOjY7ZWxzZSBpZihOPT0xNSlOPXR5cGVvZiBSPT09InN0cmluZyI/Mzc6ODtlbHNlIGlmKE49PTQ3KVo9MCxOPTk5O2Vsc2V7aWYoTj09MjUpcmV0dXJuIGg7Tj09OTk/Tj05NzpOPT00MD8oWisrLE49OTcpOk49PTY5PyhSLnRhcmdldD1SLnRhcmdldHx8bixOPTUzKTpOPT0zNz8oUj1uZXcgYUIoUixuKSxOPTUzKTpOPT0zMz9OPUc/Njg6NzU6Tj09MjQ/KFotLSxOPTkpOk49PTQ/Tj04OTpOPT03ND8oRz10aGlzLk5vLE49MzMpOk49PTg1PyhCPVIuY3VycmVudFRhcmdldD1jW1pdLGg9UFkoNiwwLEIsbSxmYWxzZSxSKSYmaCxOPTQwKTpOPT0xND8oVD1SLFI9bmV3IGFCKG0sbiksQ3IoUixUKSxOPTUzKTpOPT03NT8oUj1rLG09Ui50eXBlfHxSLG49dGhpcy5scSxjPUQsTj0xNSk6Tj09NDM/KFo9Yy5sZW5ndGgtMSxOPTkxKTpOPT04OT9OPUc/NzM6NzU6Tj09NzE/KEc9Ry5ObyxOPTg5KTpOPT04P049UiBpbnN0YW5jZW9mIGFCPzY5OjE0Ok49PTEyP049Yz80Mzo2Ok49PTk3JiYoTj0hUi5QdCYmWjxjLmxlbmd0aD84NToyNSl9fSx1KS5VPWZ1bmN0aW9uKCl7dGhpcy5Obz0oRFouTy5VLmNhbGwodGhpcyksdGhpcy5JJiZCdSg3MiwwLHRydWUsdGhpcy5JKSxudWxsKX0sdS5DWD1mdW5jdGlvbihrLFIsRyxoKXtyZXR1cm4gdGhpcy5JLkNYKFN0cmluZyhrKSxSLEcsaCl9LHUuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oayxSKXtyZXR1cm4gdGhpcy5JLmhhc0xpc3RlbmVyKGshPT12b2lkIDA/U3RyaW5nKGspOnZvaWQgMCxSKX07dmFyIHNSLFVSLHJyPShYMS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LaisiIn0sRXJyb3IpLG1EPXtGaTowLEFzOjEsemU6MiwwOiJGT1JNQVRURURfSFRNTF9DT05URU5UIiwxOiJFTUJFRERFRF9JTlRFUk5BTF9DT05URU5UIiwyOiJFTUJFRERFRF9UUlVTVEVEX0VYVEVSTkFMX0NPTlRFTlQifTtTTS5wcm90b3R5cGU9RHkocnIucHJvdG90eXBlKSxTTS5wcm90b3R5cGUuY29uc3RydWN0b3I9U007c3dpdGNoKCF0MCl7Y2FzZSAhW10hPShudWxsIT1mYWxzZSk6Zm9yKHZhciB3ciBpbiBycilpZih3ciE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBlOD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJyLHdyKTtlOCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFNNLHdyLGU4KX1lbHNlIFNNW3dyXT1yclt3cl07YnJlYWs7Y2FzZSBmYWxzZTp0MChTTSxycik7YnJlYWt9aWYoTmFOIT09KCgodT0oIkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoKFNNLk89cnIucHJvdG90eXBlLCIgIikpLmNvbmNhdChbIkJVVFRPTiIsIklOUFVUIl0pLG5uKS5wcm90b3R5cGUsdSkuRj1mdW5jdGlvbihrKXtyZXR1cm4gdHlwZW9mIGs9PT0ic3RyaW5nIj90aGlzLk1vLmdldEVsZW1lbnRCeUlkKGspOmt9LHUuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oayxSKXtyZXR1cm4oUnx8dGhpcy5NbykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKGspKX0sdS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGssUixHKXtyZXR1cm4oRz0oUj10aGlzLk1vLFN0cmluZyhrKSksUi5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoRz1HLnRvTG93ZXJDYXNlKCkpLFIpLmNyZWF0ZUVsZW1lbnQoRyl9LHUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oayl7cmV0dXJuIHRoaXMuTW8uY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGspKX0sdS5hcHBlbmRDaGlsZD1mdW5jdGlvbihrLFIpe2suYXBwZW5kQ2hpbGQoUil9LHUpLmFwcGVuZD1mdW5jdGlvbihrLFIpe3RXKDE4LGZhbHNlLCJudW1iZXIiLCIiLDAsay5ub2RlVHlwZT09OT9rOmsub3duZXJEb2N1bWVudHx8ay5kb2N1bWVudCxhcmd1bWVudHMsayl9LHUuY2FuSGF2ZUNoaWxkcmVuPWZ1bmN0aW9uKGssUil7e1I9MDt3aGlsZShSIT01NSlpZihSPT0wKVI9ay5ub2RlVHlwZSE9MT85ODoyODtlbHNle2lmKFI9PTI4KXtzd2l0Y2goay50YWdOYW1lKXtjYXNlICJBUFBMRVQiOmNhc2UgIkFSRUEiOmNhc2UgIkJBU0UiOmNhc2UgIkJSIjpjYXNlICJDT0wiOmNhc2UgIkNPTU1BTkQiOmNhc2UgIkVNQkVEIjpjYXNlICJGUkFNRSI6Y2FzZSAiSFIiOmNhc2UgIklNRyI6Y2FzZSAiSU5QVVQiOmNhc2UgIklGUkFNRSI6Y2FzZSAiSVNJTkRFWCI6Y2FzZSAiS0VZR0VOIjpjYXNlICJMSU5LIjpjYXNlICJOT0ZSQU1FUyI6Y2FzZSAiTk9TQ1JJUFQiOmNhc2UgIk1FVEEiOmNhc2UgIk9CSkVDVCI6Y2FzZSAiUEFSQU0iOmNhc2UgIlNDUklQVCI6Y2FzZSAiU09VUkNFIjpjYXNlICJTVFlMRSI6Y2FzZSAiVFJBQ0siOmNhc2UgIldCUiI6cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfWlmKFI9PTk4KXJldHVybiBmYWxzZX19fSx1LnJlbW92ZU5vZGU9UGQsdS5jb250YWlucz1mdW5jdGlvbihrLFIsRyxoKXtmb3IoaD05OTtoIT0xODspe2lmKGg9PTUxKXJldHVybiBrPT1SfHxrLmNvbnRhaW5zKFIpO2lmKGg9PTg3KWg9ay5jb250YWlucyYmUi5ub2RlVHlwZT09MT81MToyNDtlbHNlIGlmKGg9PTI3KWg9MjA7ZWxzZSBpZihoPT00NylSPVIucGFyZW50Tm9kZSxoPTI3O2Vsc2UgaWYoaD09NjgpaD0yMDtlbHNle2lmKGg9PTYwKXJldHVybiBrPT1SfHwhIShHPWsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oUiksLX4oRyYxNikrKEdeMTYpKyh+R14xNikpO2lmKGg9PTk5KWg9ayYmUj84Nzo1NztlbHNle2lmKGg9PTM3KXJldHVybiBSPT1rO2lmKGg9PTI0KWg9dHlwZW9mIGsuY29tcGFyZURvY3VtZW50UG9zaXRpb24hPSJ1bmRlZmluZWQiPzYwOjY4O2Vsc2UgaWYoaD09MjApaD1SJiZrIT1SPzQ3OjM3O2Vsc2UgaWYoaD09NTcpcmV0dXJuIGZhbHNlfX19fSxOdW1iZXIodW5kZWZpbmVkKSkpaFcoNzQsSVkpOygodT0oQlkoMiwoSVkucHJvdG90eXBlLmJxPShJWS5wcm90b3R5cGUuR2U9MCwiIiksNDEpLERELERaKSxERC5wcm90b3R5cGUpLHUub2E9SVkublgoKSx1LkY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSx1LmdldFBhcmVudD1mdW5jdGlvbigpe2lmKCFbXSE9KCFbXT09MCkpcmV0dXJuIHRoaXMuWjd9LHUuQnQ9ZnVuY3Rpb24oKXsoSUIoMyx0aGlzLGZ1bmN0aW9uKGspe2suam0mJmsuQnQoKX0pLHRoaXMpLnMyJiZCdSg3MSwwLHRydWUsdGhpcy5zMiksdGhpcy5qbT1mYWxzZX0sdS5VPWZ1bmN0aW9uKGspe3trPTcxO3doaWxlKGshPTY1KWs9PTQzP2s9dGhpcy5zMj8xMDo5MTprPT0xMD8odGhpcy5zMi5kaXNwb3NlKCksZGVsZXRlIHRoaXMuczIsaz05MSk6az09NzE/KHRoaXMuam0mJnRoaXMuQnQoKSxrPTQzKTprPT05MSYmKElCKDcsdGhpcyxmdW5jdGlvbihSKXtSLmRpc3Bvc2UoKX0pLCF0aGlzLlhpJiZ0aGlzLkEmJlBkKHRoaXMuQSksdGhpcy5LWD10aGlzLlFuPXRoaXMuQT10aGlzLlo3PW51bGwsREQuTy5VLmNhbGwodGhpcyksaz02NSl9fSx1KS56Zj1mdW5jdGlvbihrLFIpe3tSPTM0O3doaWxlKFIhPTIpe2lmKFI9PTM2KXRocm93IEVycm9yKCJNZXRob2Qgbm90IHN1cHBvcnRlZCIpO1I9PTM0P1I9dGhpcy5aNyYmdGhpcy5aNyE9az8zNjo5NDpSPT05NCYmKERELk8uemYuY2FsbCh0aGlzLGspLFI9Mil9fX0sdSkucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe3tOPTMzO3doaWxlKE4hPTcxKXtpZihOPT01OSl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHNldCBwYXJlbnQgY29tcG9uZW50Iik7aWYoTj09NDcpYz10aGlzLktYLEI9KGMhPT1udWxsJiZoIGluIGM/Y1toXTp2b2lkIDApfHxudWxsLE49Mzg7ZWxzZSBpZihOPT04MilaPXRoaXMuS1gsaCBpbiBaJiZkZWxldGUgWltoXSx0VygxMywwLGssdGhpcy5RbiksTj04NztlbHNlIGlmKE49PTkxKU49KEQ9ay5jVik/MDo3ODtlbHNle2lmKE49PTkpdGhyb3cgRXJyb3IoIkNoaWxkIGlzIG5vdCBpbiBwYXJlbnQgY29tcG9uZW50Iik7aWYoTj09MCluPUQsTj04MDtlbHNlIGlmKE49PTc1KW09ayxOPTE2O2Vsc2UgaWYoTj09MTYpTj1tPT1udWxsPzU5Ojk4O2Vsc2UgaWYoTj09OTgpbS5aNz1udWxsLERELk8uemYuY2FsbChtLG51bGwpLE49NTQ7ZWxzZSBpZihOPT0zMSlOPXR5cGVvZiBrPT09InN0cmluZyI/ODE6OTE7ZWxzZSBpZihOPT00MylOPWgmJms/ODI6NTQ7ZWxzZSBpZihOPT03OClHPWsub2EsVD1HLmJxKyI6IisoRy5HZSsrKS50b1N0cmluZygzNiksRD1rLmNWPVQsTj0wO2Vsc2UgaWYoTj09NylOPXRoaXMuS1gmJmg/NDc6Mjk7ZWxzZSBpZihOPT0yOSlCPW51bGwsTj0zODtlbHNlIGlmKE49PTgxKW49ayxOPTgwO2Vsc2UgaWYoTj09NTYpay5CdCgpLGsuQSYmUGQoay5BKSxOPTc1O2Vsc2UgaWYoTj09ODcpTj1SPzU2Ojc1O2Vsc2V7aWYoTj09NDYpcmV0dXJuIGs7Tj09Mzg/KGs9QixOPTQzKTpOPT0zMz9OPWs/MzE6NTQ6Tj09ODA/KGg9bixOPTcpOk49PTU0JiYoTj1rPzQ2OjkpfX19fX07dmFyIGx6LGo4PSh1PShoVyg3NSxmciksZnIucHJvdG90eXBlKSx1LklvPWZ1bmN0aW9uKGssUixHLGgpeyhoPWsuRj9rLkYoKTprKSYmKEc/THI6VmgpKGgsW1JdKX0sdS5BeD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7Wj03Mzt7bj0yNDt3aGlsZSgibyIpdHJ5e2lmKFo9PTQpYnJlYWs7ZWxzZSBaPT01Mj8oYy50YWJJbmRleD0wLFo9NCk6Wj09OD8obj0yNCxaPTIxKTpaPT0yMT8obj0yNCxaPTY3KTpaPT0yOD9aPUQhPVI/NjM6NDpaPT0yNT8oRz1oLnRhYkluZGV4LEQ9dHlwZW9mIEc9PT0ibnVtYmVyIiYmRz49MCYmRzwzMjc2OCxaPTI4KTpaPT05MD8oYy50YWJJbmRleD0tMSxjLnJlbW92ZUF0dHJpYnV0ZSgidGFiSW5kZXgiKSxaPTQpOlo9PTI5P1o9KEQ9aC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpPzI1OjI4Olo9PTk4P1o9Uj81Mjo5MDpaPT0xMT9aPSFSJiZNUCg1LDMyLGspPzk5OjI5Olo9PTY3P1o9TVAoNywzMixrKT84MDoyOTpaPT04MD8oay5ZZSY0JiZrLnJiJjQmJmsuc2V0QWN0aXZlKGZhbHNlKSxrLlllJjMyJiZrLnJiJjMyJiZJQigxNCw0LGssZmFsc2UsMzIpJiZrLnYoZmFsc2UsMzIpLFo9MjkpOlo9PTk5PyhuPTEyLGguYmx1cigpLFo9MjEpOlo9PTYzPyhjPWgsWj05OCk6Wj09NzMmJihaPWsucmImMzImJihoPWsuaVgoKSk/MTE6NCl9Y2F0Y2goQil7aWYobj09MjQpdGhyb3cgQjtuPT0xMiYmKG09QixaPTgpfX19LHtidXR0b246InByZXNzZWQiLGNoZWNrYm94OiJjaGVja2VkIixtZW51aXRlbToic2VsZWN0ZWQiLG1lbnVpdGVtY2hlY2tib3g6ImNoZWNrZWQiLG1lbnVpdGVtcmFkaW86ImNoZWNrZWQiLHJhZGlvOiJjaGVja2VkIix0YWI6InNlbGVjdGVkIix0cmVlaXRlbToic2VsZWN0ZWQifSk7dS5maj1mdW5jdGlvbigpe3JldHVybiJnb29nLWNvbnRyb2wifTt3aGlsZSgwPT09LU51bWJlcigpKWlmKHUuYlg9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXsoKGg9KG49KGx6fHwobHo9ezE6ImRpc2FibGVkIiw4OiJzZWxlY3RlZCIsMTY6ImNoZWNrZWQiLDY0OiJleHBhbmRlZCJ9KSxseltSXSksay5nZXRBdHRyaWJ1dGUoInJvbGUiKXx8bnVsbCkpPyhEPWo4W2hdfHxuLFo9bj09ImNoZWNrZWQifHxuPT0ic2VsZWN0ZWQiP0Q6bik6Wj1uLGM9WikmJk9SKDEyLDgsZmFsc2UsImhpZGRlbiIsayxHLGMpfSx0cnVlKWJyZWFrO2lmKHUuaVg9KHUudj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaKXt7Wj03OTt3aGlsZShaIT0xKVo9PTA/KGg9dGhpcy5maigpLGgucmVwbGFjZSgvXFx4YTB8XFxzL2csIiAiKSx0aGlzLlprPXsxOmgrIi1kaXNhYmxlZCIsMjpoKyItaG92ZXIiLDQ6aCsiLWFjdGl2ZSIsODpoKyItc2VsZWN0ZWQiLDE2OmgrIi1jaGVja2VkIiwzMjpoKyItZm9jdXNlZCIsNjQ6aCsiLW9wZW4ifSxaPTU2KTpaPT03OT8oRD1SLkYoKSxaPTIwKTpaPT0yMD9aPUQ/MTM6MTpaPT01Nj8oKGM9dGhpcy5aa1trXSkmJnRoaXMuSW8oUixjLEcpLHRoaXMuYlgoRCxrLEcpLFo9MSk6Wj09MTMmJihaPXRoaXMuWms/NTY6MCl9fSxmdW5jdGlvbihrKXtyZXR1cm4gay5GKCl9KSxbXSlCWSgyLDQ0LEZYLGZyKTt2YXIgbnI9KChoVyg3MixGWCksRlgpLnByb3RvdHlwZS5maj1mdW5jdGlvbigpe3JldHVybiJnb29nLWJ1dHRvbiJ9LEZYLnByb3RvdHlwZS5iWD1mdW5jdGlvbihrLFIsRyl7c3dpdGNoKFIpe2Nhc2UgODpjYXNlIDE2Ok9SKDEyLDUsZmFsc2UsImhpZGRlbiIsayxHLCJwcmVzc2VkIik7YnJlYWs7ZGVmYXVsdDpjYXNlIDY0OmNhc2UgMTpGWC5PLmJYLmNhbGwodGhpcyxrLFIsRyl9fSx7fSk7aWYoKCgoKCgoKCh1PShCWSgyLDQyLGI5LEREKSxiOSkucHJvdG90eXBlLHUpLmppPXRydWUsdSkuSW89ZnVuY3Rpb24oayxSLEcpe2ZvcihHPTU2O0chPTI0OylHPT04Mj8odGhpcy5EP2UoNDMsMCxrLHRoaXMuRCl8fHRoaXMuRC5wdXNoKGspOnRoaXMuRD1ba10sdGhpcy5DLklvKHRoaXMsayx0cnVlKSxHPTI0KTpHPT03Mz8odGhpcy5DLklvKHRoaXMsayxmYWxzZSksRz0yNCk6Rz09MTk/Rz10aGlzLkQubGVuZ3RoPT0wPzQwOjczOkc9PTQwPyh0aGlzLkQ9bnVsbCxHPTczKTpHPT01Nj9HPVI/MTM6NzE6Rz09MTM/Rz1rPzgyOjI0Okc9PTcxJiYoRz1rJiZ0aGlzLkQmJnRXKDYsMCxrLHRoaXMuRCk/MTk6MjQpfSx1KS5pWD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkMuaVgodGhpcyl9LHUucmI9MzksdSkuaXE9MCx1KS5ZZT0yNTUsdS5CdD1mdW5jdGlvbigpeygoYjkuTy5CdC5jYWxsKHRoaXMpLHRoaXMuVTIpJiZ0aGlzLlUyLmRldGFjaCgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkpJiZ0aGlzLkMuQXgodGhpcyxmYWxzZSl9LHUuVT1mdW5jdGlvbihrKXt7az03NTt3aGlsZShrIT02MilrPT03MD8oZGVsZXRlIHRoaXMuQyx0aGlzLkQ9bnVsbCxrPTYyKTprPT01Mz9rPXRoaXMuVTI/OTE6NzA6az09OTE/KHRoaXMuVTIuZGlzcG9zZSgpLGRlbGV0ZSB0aGlzLlUyLGs9NzApOms9PTc1JiYoYjkuTy5VLmNhbGwodGhpcyksaz01Myl9fSx1KS5EPW51bGwsdS5PMj0wLHUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaml9LHUpLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiFNUCgxMCwxLHRoaXMpfSx1LmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIE1QKDksNCx0aGlzKX0sdS5zZXRBY3RpdmU9ZnVuY3Rpb24oayl7SUIoMTAsNCx0aGlzLGssNCkmJnRoaXMudihrLDQpfSx1KS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk8yfSx1LnY9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKFo9Nzg7WiE9ODk7KVo9PTgzPyhEPSFrLGM9dGhpcy5nZXRQYXJlbnQoKSxaPTM1KTpaPT0xNj9aPUQ/MTQ6NzQ6Wj09NzQ/KHRoaXMuc2V0QWN0aXZlKGZhbHNlKSxJQigxMiw0LHRoaXMsZmFsc2UsMikmJnRoaXMudihmYWxzZSwyKSxaPTE0KTpaPT0yNT8odGhpcy5DLnYoUix0aGlzLGspLHRoaXMuTzI9az8oaD10aGlzLk8yLC0xLX5oLShoJn5SKSsoaF5SKSk6dGhpcy5PMiZ+UixaPTg5KTpaPT00Mj9aPXRoaXMucmImUiYmayE9TVAoMyxSLHRoaXMpPzI1Ojg5Olo9PTM1P1o9YyYmdHlwZW9mIGMuaXNFbmFibGVkPT0iZnVuY3Rpb24iJiYhYy5pc0VuYWJsZWQoKXx8IUlCKDMyLDQsdGhpcywhRCwxKT84OToxNjpaPT03OD9aPUd8fFIhPTE/NDI6ODM6Wj09MTQmJih0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLkMuQXgodGhpcyxEKSx0aGlzLnYoIUQsMSx0cnVlKSxaPTg5KX0sdHlwZW9mIGI5IT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgY2xhc3MgIitiOSk7aWYodHlwZW9mIGZyIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCByZW5kZXJlciBjbGFzcyAiK2ZyKTt2YXIgYVk9Q24oNjQsMTcsYjkpOygoQlkoMiw0MCxnVSwoKEJZKDIsNDYsUWYsKGEoNixmdW5jdGlvbigpe3JldHVybiBuZXcgYjkobnVsbCl9LChuclthWV09ZnIsImdvb2ctY29udHJvbCIpKSxGWCkpLGhXKDczLFFmKSxRZi5wcm90b3R5cGUuQXg9ZnVuY3Rpb24oKXt9LFFmLnByb3RvdHlwZSkudj1mdW5jdGlvbihrLFIsRyxoLEQpe3tEPTkxO3doaWxlKEQhPTQyKUQ9PTkxPyhRZi5PLnYuY2FsbCh0aGlzLGssUixHKSxoPVIuRigpLEQ9NjEpOkQ9PTgzPyhoLmRpc2FibGVkPUcsRD00Mik6RD09NjEmJihEPWgmJms9PTE/ODM6NDIpfX0sUWYucHJvdG90eXBlLmJYPWZ1bmN0aW9uKCl7fSxiOSkpLGdVLnByb3RvdHlwZSkuVT1mdW5jdGlvbigpe2RlbGV0ZSAoZGVsZXRlIChnVS5PLlUuY2FsbCh0aGlzKSx0aGlzKS5KMyx0aGlzKS5kTn0sYSkoNSxmdW5jdGlvbigpe3JldHVybiBuZXcgZ1UobnVsbCl9LCJnb29nLWJ1dHRvbiIpO3ZhciBaRCx1OT1ILnJlcXVlc3RJZGxlQ2FsbGJhY2s/ZnVuY3Rpb24oayl7cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe2soKX0se3RpbWVvdXQ6NH0pfTpILnNldEltbWVkaWF0ZT9mdW5jdGlvbihrKXtzZXRJbW1lZGlhdGUoayl9OmZ1bmN0aW9uKGspe3NldFRpbWVvdXQoaywwKX0sb3Y9e3Bhc3NpdmU6dHJ1ZSxjYXB0dXJlOnRydWV9LFZmPW9CKDEzLDEwLFsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qcy9iZy8iLCIiXSksdlk9U3RyaW5nLmZyb21DaGFyQ29kZSgxMDUsMTEwLDExNiwxMDEsMTAzLDY3LDEwNCwxMDEsOTksMTA3LDY2LDEyMSwxMTIsOTcsMTE1LDExNSksd1U9e30sJGY9W10sUlk9KHgucHJvdG90eXBlLlB3PXZvaWQgMCx4LnByb3RvdHlwZS5MWD0oeC5wcm90b3R5cGUuTm09ZmFsc2UsInRvU3RyaW5nIiksW10pLGRyPVtdLEFvPSh4LnByb3RvdHlwZS5mUT12b2lkIDAsW10pLEJkPVtdLG1jPVtdLEd0PVtdLE1UPVtdLHhuPVtdLHpOPWZ1bmN0aW9uKGssUil7d2hpbGUoIVtdPT1mYWxzZSl7cmV0dXJuKFI9QVcoNDEsImFkIiwxNykpJiZrLmV2YWwoUi5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEcpe3JldHVybiBSLmNyZWF0ZVNjcmlwdChHKX06ZnVuY3Rpb24oRyl7cmV0dXJuIiIrR307aWYoImEiKWJyZWFrfX0oSCkseXI9ZnVuY3Rpb24oayl7cmV0dXJuKGs9QVcoNDEsImFkIiwxNikpP2Z1bmN0aW9uKFIpe3JldHVybiBrLmNyZWF0ZVNjcmlwdFVSTChSKX06ZnVuY3Rpb24oUil7cmV0dXJuIFJ9fSgpLEVlPWZ1bmN0aW9uKGspe3JldHVybihrPUFXKDQxLCJhZCIsMTkpKT9mdW5jdGlvbihSKXtyZXR1cm4gay5jcmVhdGVIVE1MKFIpfTpmdW5jdGlvbihSKXtyZXR1cm4gUn19KCkseWY9KCgoKChpTixZZixTOCxueCxaeSxmdW5jdGlvbigpe30pKEU1KSxmdW5jdGlvbigpe30pKFdZKSxmdW5jdGlvbigpe30pKHM1KSx5cixmdW5jdGlvbigpe30pKEVlKSx3VSkuY29uc3RydWN0b3IsU2U9KCgoKCgoKHgucHJvdG90eXBlLkxqPTAseC5wcm90b3R5cGUuUj0odT14LnByb3RvdHlwZSwiY3JlYXRlIiksdSkuSj0od2luZG93LnBlcmZvcm1hbmNlfHx7fSkubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmErd2luZG93LnBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sdSkuaHM9ZnVuY3Rpb24oayxSLEcsaCxEKXtyZXR1cm4gQ24uY2FsbCh0aGlzLDY0LDMyLGssUixHLGgsRCl9LHUpLlJvPWZ1bmN0aW9uKCl7cmV0dXJuIGhXLmNhbGwodGhpcyw1Nil9LHUpLnNfPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7cmV0dXJuIE1QLmNhbGwodGhpcyw1NixrLFIsRyxoLEQsYyxaLG4pfSx1KS50cz1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtyZXR1cm4gUkIuY2FsbCh0aGlzLDIxLGssUixHLGgsRCxjLFosbixtLEIpfSx1LnBqPWZ1bmN0aW9uKCl7cmV0dXJuIFJCLmNhbGwodGhpcyw2NCl9LHUpLnBYPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIFkuY2FsbCh0aGlzLGssOSxSLEcsaCxEKX0sdS5IVj0wLHZvaWQgMCksSm89KHU9eC5wcm90b3R5cGUsdS5pPWZ1bmN0aW9uKGssUil7cmV0dXJuIFI9KGs9e30sU2U9ZnVuY3Rpb24oKXtyZXR1cm4gaz09Uj81ODoxMDZ9LHt9KSxmdW5jdGlvbihHLGgsRCxjLFosbixtLEIsVCxOLFAsZCxJLFMsWCxNLHIsbCx3LEUsRiwkbixHbyxKLHYsTyx5LHdKLHosUHUsbTcsZyxlTSxMLFU1LHQsVSxPNSxZbixwLEN4KXtmb3IodD0zMixVPXVuZGVmaW5lZCxwPTIwLEN4PWZhbHNlOzspdHJ5e2lmKHQ9PTY1KWJyZWFrO2Vsc2UgaWYodD09NDQpdD1CPzc3OjEwO2Vsc2UgaWYodD09OTEpcD00NyxiTig1NywzMDAwMSx0aGlzLDQxKSx0PTM3O2Vsc2UgaWYodD09ODcpcD00Nyxhdig1MDYsdGhpcywxNyxPNSksVT02NSx0PTM3O2Vsc2UgaWYodD09MjcpVSE9PXVuZGVmaW5lZD8odD1VLFU9dW5kZWZpbmVkKTp0PTY1O2Vsc2UgaWYodD09MjkpcD00Nyx0PTk1O2Vsc2UgaWYodD09MTcpcD01NSxHbygpLHQ9OTU7ZWxzZSBpZih0PT00MSl0PVA9PW1jPzI0OjIxO2Vsc2UgaWYodD09NzApdD0zOTtlbHNlIGlmKHQ9PTU3KXQ9Zy5sZW5ndGg+ND81NjozNjtlbHNlIGlmKHQ9PTI4KU4ubGVuZ3RoPTAsdD0zNztlbHNlIGlmKHQ9PTYpcD03MCx0aGlzLndiPU5UKDI1NSw0MCwwLGF0b2IoJG4pKSx0aGlzLmo9dGhpcy53Yi5sZW5ndGg8PDMsQSgzNjMsdGhpcyxbMCwwLDBdKSx0PTkxO2Vsc2UgaWYodD09MjIpe2lmKEU9KE49Vyh0aGlzLDcxKSx0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yKSYmTltTeW1ib2wuaXRlcmF0b3JdKXo9RS5jYWxsKE4pO2Vsc2UgaWYodHlwZW9mIE4ubGVuZ3RoPT0ibnVtYmVyIil6PXtuZXh0Ok9SKDEyLDcyLDAsTil9O2Vsc2UgdGhyb3cgRXJyb3IoU3RyaW5nKE4pKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO3Q9KFQ9KHk9eix5Lm5leHQoKSksNDgpfWVsc2UgaWYodD09Nyl0PUdbNF0/NjQ6NTk7ZWxzZSBpZih0PT02NCl7Zm9yKFggaW4gQj1mYWxzZSxoKWlmKFghPT0idCImJk9iamVjdC5oYXNPd24oaCxYKSl7Qj10cnVlO2JyZWFrfXQ9NDR9ZWxzZSBpZih0PT01Myl0PVA9PUJkPzgyOjQzO2Vsc2UgaWYodD09MzgpSj0wLE89IiIsdD03MDtlbHNlIGlmKHQ9PTU2KXQ9Zy5sZW5ndGg+MUU2Pzg4Ojk3O2Vsc2UgaWYodD09MTUpWW49UWgoMCxHWzFdLDE1NywzMDAwMSx0aGlzKSxVPTk5LHQ9Mzc7ZWxzZSBpZih0PT00Myl0PVA9PUFvPzgxOjQxO2Vsc2UgaWYodD09MjUpdD1QPT1kcj8yMjozNztlbHNlIGlmKHQ9PTMyKWVNPWssaz1SLHQ9MztlbHNlIGlmKHQ9PTk2KWg9e30sdj0wLHQ9ODtlbHNlIGlmKHQ9PTg4KWc9Zy5zbGljZSgwLDFFNiksbE4oNDg4LFtdLDcsdGhpcywxMDIpLGplKDQ4OCxbXSx0aGlzLDEzNSksdD05NztlbHNlIGlmKHQ9PTY4KSRuPUdbMV0sdD02O2Vsc2UgaWYodD09NjYpSisrLHQ9Mzk7ZWxzZSBpZih0PT03NCl0PU8/Nzk6Mzg7ZWxzZSBpZih0PT04MSlyPUdbMV1bMV0sYz1LKDIsKG09Yih0aGlzLDQ4OCkubGVuZ3RoLC0yKn4obSYyKSstMisobV4yKSkpLHdKPXRoaXMuQix0aGlzLkI9dGhpcyx0PTExO2Vsc2UgaWYodD09MjQpUWgoMCxHWzFdLDE1NyxHWzJdLHRoaXMpLHQ9Mzc7ZWxzZSBpZih0PT0xOSl0PVUhPT11bmRlZmluZWQ/Mzc6NDtlbHNlIGlmKHQ9PTQpcD00NyxTPVlmKDIpLmNvbmNhdChiKHRoaXMsNDg4KSksU1sxXT0oTT1TWzBdLC0oTXwwKSsoTXwxNTkpKyhNJi0xNjApKSxTWzNdPVNbMV1eY1swXSxTWzRdPVNbMV1eY1sxXSxPPXRoaXMubmooUyksdD03NDtlbHNlIGlmKHQ9PTM2KXA9NDcsdGhpcy5CPXdKLHQ9MTk7ZWxzZSBpZih0PT05NSlUPXkubmV4dCgpLHQ9NDI7ZWxzZSBpZih0PT01MSl0PVA9PSRmPzk2OjUzO2Vsc2UgaWYodD09NTkpdGhpcy5QLnB1c2gobCksdGhpcy5QLnB1c2godyksVT02NSx0PTM3O2Vsc2UgaWYodD09MzkpdD1KPFMubGVuZ3RoPzYwOjYyO2Vsc2UgaWYodD09NzcpWW49e1FUOncsYWE6bCx0aW1lb3V0OnYsTW06ZmFsc2UsSWE6MH0sVT02Myx0PTM3O2Vsc2UgaWYodD09MzMpdD1QPT1HdD82ODo1MTtlbHNlIGlmKHQ9PTQyKXQ9VC5kb25lPzI4Ojk4O2Vsc2UgaWYodD09ODIpbj1HWzFdLG5bMV0ucHVzaChWKDE5MSx0aGlzKS5sZW5ndGgsVyh0aGlzLDE0KS5sZW5ndGgsVyh0aGlzLDQ4OCkubGVuZ3RoLGIodGhpcyw0NDYpLmxlbmd0aCxiKHRoaXMsMTYzKS5sZW5ndGgsYih0aGlzLDMwMilbMF0sVigyNjQsdGhpcykubGVuZ3RoLFcodGhpcyw0MikubGVuZ3RoKSxRKHRoaXMsMTU3LG5bMl0pLHRoaXMuWVs0NjldJiZRaCgwLFYoNDY5LHRoaXMpLDE1NywzMDAwMSx0aGlzKSx0PTM3O2Vsc2UgaWYodD09OTgpR289VC52YWx1ZSx0PTE3O2Vsc2UgaWYodD09NDApcD00Nyx3PVtCZCxHLHRoaXMuUm8oKV0sbD1bQW8sR10sdD03O2Vsc2UgaWYodD09MylwPTQ3LFA9R1swXSx0PTMzO2Vsc2UgaWYodD09MzcpcD0yMCxrPWVNLHQ9Mjc7ZWxzZXtpZih0PT00NylyZXR1cm4gWW47aWYodD09OClwPTc3LGg9Yih0aGlzLDU1KXx8e30sdj1oLnR8MCx0PTQwO2Vsc2UgaWYodD09NjApZD1TW0pdW3RoaXMuTFhdKDE2KSxkLmxlbmd0aD09MSYmKGQ9IjAiK2QpLE8rPWQsdD02NjtlbHNlIGlmKHQ9PTk3KWplKDQ4OCxLKDIsZy5sZW5ndGgpLmNvbmNhdChnKSx0aGlzLDUpLHQ9MzY7ZWxzZSBpZih0PT0xMSlwPTc2LG03PWIodGhpcyw1MDYpLG03Lmxlbmd0aD4wJiZsTig0ODgsSygyLG03Lmxlbmd0aCkuY29uY2F0KG03KSw3LHRoaXMsMTQ3KSxsTig0ODgsSygxLHRoaXMuSCsxPj4xKSw3LHRoaXMsMjQ0KSxqZSg0ODgsSygxLHRoaXNbQW9dLmxlbmd0aCksdGhpcyksUHU9dGhpcy5IdD9WKDE2Myx0aGlzKTpiKHRoaXMsNDQ2KSxQdS5sZW5ndGg+MCYmbE4oMTQsSygyLFB1Lmxlbmd0aCkuY29uY2F0KFB1KSw3LHRoaXMsMjI3KSxGPVYoMTQsdGhpcyksRi5sZW5ndGg+NCYmamUoNDg4LEsoMixGLmxlbmd0aCkuY29uY2F0KEYpLHRoaXMsMjI2KSxJPTAsSSs9Yih0aGlzLDEwMykmMjA0NyxJLT0oWj1WKDQ4OCx0aGlzKS5sZW5ndGgsLTItMip+KFp8NSktKFpeNSkpLGc9Vig0Mix0aGlzKSxnLmxlbmd0aD40JiYoSS09KGcubGVuZ3RofDApKzMpLEk+MCYmamUoNDg4LEsoMixJKS5jb25jYXQoWWYoSSkpLHRoaXMsMTUwKSx0PTU3O2Vsc2UgaWYodD09NzkpTz0iJCIrTyx0PTYyO2Vsc2V7aWYodD09OTkpcmV0dXJuIFluO2lmKHQ9PTEwKXRoaXMuUC5wdXNoKGwpLHRoaXMuUC5wdXNoKHcpLFU9NjUsdD0zNztlbHNlIGlmKHQ9PTIxKXQ9UD09TVQ/MTU6MjU7ZWxzZSBpZih0PT02MilEPU8sYih0aGlzLDE5MSkubGVuZ3RoPXIuc2hpZnQoKSxiKHRoaXMsMTQpLmxlbmd0aD1yLnNoaWZ0KCksVyh0aGlzLDQ4OCkubGVuZ3RoPXIuc2hpZnQoKSxXKHRoaXMsNDQ2KS5sZW5ndGg9ci5zaGlmdCgpLFYoMTYzLHRoaXMpLmxlbmd0aD1yLnNoaWZ0KCksVigzMDIsdGhpcylbMF09ci5zaGlmdCgpLFcodGhpcywyNjQpLmxlbmd0aD1yLnNoaWZ0KCksVyh0aGlzLDQyKS5sZW5ndGg9ci5zaGlmdCgpLFluPUQsVT00Nyx0PTM3O2Vsc2V7aWYodD09NjMpcmV0dXJuIFluO2lmKHQ9PTQ4KXQ9NDI7ZWxzZSBpZih0PT05MCl0aHJvdyBVNTt9fX19Y2F0Y2goaG8pe2lmKHA9PShVNT1obywyMCkpdGhyb3cgaG87cD09NDc/KFU9OTAsdD0zNyk6cD09NzA/KE81PWhvLHQ9ODcpOnA9PTc2PyhVPTkwLHQ9MzYpOnA9PTc3PyhVPTkwLHQ9NDApOnA9PTU1JiYoTD1obyx0PTI5KX19fSgpLHUudXE9ZnVuY3Rpb24oayl7cmV0dXJuIEJZLmNhbGwodGhpcyxrLDcyKX0sLy4vKTtpZih0cnVlKXUubmo9ZnVuY3Rpb24oayl7cmV0dXJuIENuLmNhbGwodGhpcyw2NCw4LGspfTt2YXIgeGY7aWYodS5TaT0odS50eD1mdW5jdGlvbigpe3JldHVybiBDbi5jYWxsKHRoaXMsNjQsNDgpfSwwKSx0cnVlKXUuck49MDt2YXIgSGQ9R3QucG9wLmJpbmQoeC5wcm90b3R5cGVbeC5wcm90b3R5cGVbUlldPSh1LmVpPWZ1bmN0aW9uKCl7cmV0dXJuIE9SLmNhbGwodGhpcywxMiwxNCl9LFswLDAsMSwxLDAsMSwxXSksQmRdKTsoWkQ9KHhmPXRXKDkzLChKb1t4LnByb3RvdHlwZS5MWF09SGQse2dldDpIZH0pLHgucHJvdG90eXBlLlIpLHgucHJvdG90eXBlLldWPXZvaWQgMCxILnRyYXlyaWRlKXx8KEgudHJheXJpZGU9e30pLFpELm0+NDB8fChaRC5tPTQxLFpELmFkPWgwLFpELmE9Z0opLFpEKS5ScnZfPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3JldHVybltmdW5jdGlvbihUKXtyZXR1cm4gTG4oMyxmYWxzZSxCLDcsVCl9LChCPW5ldyB4KGgsayxELGMsUixtLG4sWiksZnVuY3Rpb24oVCl7Qi50eChUKX0pXX07fSkuY2FsbCh0aGlzKTsnXS5qb2luKCdcbicpKSk7fSkuY2FsbCh0aGlzKTs="}},"time_used":39,"timings":{"blocked":-1,"dns":3,"connect":22,"send":0,"wait":9,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/logo/logo1.html","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:47.490Z","timestamp":1785126647490,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/logo/logo1.html HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 189\r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\ncache-control: max-age=3600, must-revalidate\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":315,"size_decoded":446,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a34ac19f4afae63adc5d2f7bc970c07f","sha1":"a82190fc530c265aa40a045c21770d967f4767b8","sha256":"d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3","sha512":"42e53d96e5961e95b7a984d9c9778a1d3bd8ee0c87b8b3b515fa31f67c2d073c8565afc2f4b962c43668c4efa1e478da9bb0ecffa79479c7e880731bc4c55765","ssdeep":"","tlshash":"b0e0e75f41473347402252907dc110d1d505236b797161fd3d85b4ab501dc3dc99f7dc","first_seen":"2023-03-07T01:02:33Z","last_seen":"2026-07-27T07:40:01.471307Z","times_seen":146478,"resource_available":true,"data":"PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VOIj4KPGh0bWw+PGhlYWQ+Cjx0aXRsZT40MDQgTm90IEZvdW5kPC90aXRsZT4KPC9oZWFkPjxib2R5Pgo8aDE+Tm90IEZvdW5kPC9oMT4KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+CjxwPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kCmVycm9yIHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LjwvcD4KPC9ib2R5PjwvaHRtbD4K"}},"time_used":34,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":34,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/2/css/style.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.624Z","timestamp":1785126645624,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/2/css/style.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 1554\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":9003,"size_decoded":1802,"mime_type":"text/css","magic":"ASCII text","md5":"ee6c1a3786670a677419a37cd54884b9","sha1":"c91d16d1016c0e8509fc9d77fa017a69e2ba71e2","sha256":"d9e2274447c97cfb6b9f34f99228b1ea6ad38b47e01567b1b5b9c2bc465e4dac","sha512":"fd403ad143b89d6b8334a4b75693dff0c31221ddee85600a47f84a15ef481d9c221f911aea1cf90f35a346cde5e31e9f355b602f290e99c284eed8f25baf9884","ssdeep":"96:0YZWtgWrGoDeSMZyoT1XTF4cfnvAoWGNT6s6ObDTe:0htbaoSSMZyopXTFp/vAoHNms6ObDS","tlshash":"0102c0696da20144a57fc5985bd67aa8e37ce9335019dcbffbc0528a8f8479c12cd383","first_seen":"2025-10-09T02:55:55.219545Z","last_seen":"2026-07-27T04:47:12.473262Z","times_seen":7,"resource_available":false,"data":"LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAoKTW9kdWxlcyAtIHJldXNhYmxlIHBhcnRzIG9mIG91ciBkZXNpZ24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi5jZC1jb250YWluZXIgewogIC8qIHRoaXMgY2xhc3MgaXMgdXNlZCB0byBnaXZlIGEgbWF4LXdpZHRoIHRvIHRoZSBlbGVtZW50IGl0IGlzIGFwcGxpZWQgdG8sIGFuZCBjZW50ZXIgaXQgaG9yaXpvbnRhbGx5IHdoZW4gaXQgcmVhY2hlcyB0aGF0IG1heC13aWR0aCAqLwogIHdpZHRoOiA5MCU7CiAgbWF4LXdpZHRoOiAxMTcwcHg7CiAgbWFyZ2luOiAwIGF1dG87Cn0KLmNkLWNvbnRhaW5lcjo6YWZ0ZXIgewogIC8qIGNsZWFyZml4ICovCiAgY29udGVudDogJyc7CiAgZGlzcGxheTogdGFibGU7CiAgY2xlYXI6IGJvdGg7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIAoKTWFpbiBjb21wb25lbnRzIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiNjZC10aW1lbGluZSB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDJlbSAwOwogIG1hcmdpbi10b3A6IDJlbTsKICBtYXJnaW4tYm90dG9tOiAyZW07Cn0KI2NkLXRpbWVsaW5lOjpiZWZvcmUgewogIC8qIHRoaXMgaXMgdGhlIHZlcnRpY2FsIGxpbmUgKi8KICBjb250ZW50OiAnJzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIGxlZnQ6IDE4cHg7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiA0cHg7CiAgYmFja2dyb3VuZDogI2Q3ZTRlZDsKfQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNzBweCkgewogICNjZC10aW1lbGluZSB7CiAgICBtYXJnaW4tdG9wOiAzZW07CiAgICBtYXJnaW4tYm90dG9tOiAzZW07CiAgfQogICNjZC10aW1lbGluZTo6YmVmb3JlIHsKICAgIGxlZnQ6IDUwJTsKICAgIG1hcmdpbi1sZWZ0OiAtMnB4OwogIH0KfQoKLmNkLXRpbWVsaW5lLWJsb2NrIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgbWFyZ2luOiAyZW0gMDsKfQouY2QtdGltZWxpbmUtYmxvY2s6YWZ0ZXIgewogIGNvbnRlbnQ6ICIiOwogIGRpc3BsYXk6IHRhYmxlOwogIGNsZWFyOiBib3RoOwp9Ci5jZC10aW1lbGluZS1ibG9jazpmaXJzdC1jaGlsZCB7CiAgbWFyZ2luLXRvcDogMDsKfQouY2QtdGltZWxpbmUtYmxvY2s6bGFzdC1jaGlsZCB7CiAgbWFyZ2luLWJvdHRvbTogMDsKfQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNzBweCkgewogIC5jZC10aW1lbGluZS1ibG9jayB7CiAgICBtYXJnaW46IDRlbSAwOwogIH0KICAuY2QtdGltZWxpbmUtYmxvY2s6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLXRvcDogMDsKICB9CiAgLmNkLXRpbWVsaW5lLWJsb2NrOmxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9Cn0KCi5jZC10aW1lbGluZS1pbWcgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDA7CiAgbGVmdDogMDsKICB3aWR0aDogNDBweDsKICBoZWlnaHQ6IDQwcHg7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGJveC1zaGFkb3c6IDAgMCAwIDRweCB3aGl0ZSwgaW5zZXQgMCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIDNweCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMDUpOwp9Ci5jZC10aW1lbGluZS1pbWcgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogMjRweDsKICBoZWlnaHQ6IDI0cHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGxlZnQ6IDUwJTsKICB0b3A6IDUwJTsKICBtYXJnaW4tbGVmdDogLTEycHg7CiAgbWFyZ2luLXRvcDogLTEycHg7Cn0KLmNkLXRpbWVsaW5lLWltZy5jZC1waWN0dXJlIHsKICBiYWNrZ3JvdW5kOiAjMmMzZTUwOwogIGNvbG9yOiAjZmZmOwpmb250LXNpemU6IDM1cHg7CnRleHQtYWxpZ246IGNlbnRlcjsKfQouY2QtdGltZWxpbmUtaW1nLmNkLW1vdmllIHsKICBiYWNrZ3JvdW5kOiAjYzAzYjQ0Owp9Ci5jZC10aW1lbGluZS1pbWcuY2QtbG9jYXRpb24gewogIGJhY2tncm91bmQ6ICNmMGNhNDU7Cn0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTcwcHgpIHsKICAuY2QtdGltZWxpbmUtaW1nIHsKICAgIHdpZHRoOiA2MHB4OwogICAgaGVpZ2h0OiA2MHB4OwogICAgbGVmdDogNTAlOwogICAgbWFyZ2luLWxlZnQ6IC0zMHB4OwogICAgLyogRm9yY2UgSGFyZHdhcmUgQWNjZWxlcmF0aW9uIGluIFdlYktpdCAqLwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKICB9CiAgLmNzc2FuaW1hdGlvbnMgLmNkLXRpbWVsaW5lLWltZy5pcy1oaWRkZW4gewogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KICAuY3NzYW5pbWF0aW9ucyAuY2QtdGltZWxpbmUtaW1nLmJvdW5jZS1pbiB7CiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgLXdlYmtpdC1hbmltYXRpb246IGNkLWJvdW5jZS0xIDAuNnM7CiAgICAtbW96LWFuaW1hdGlvbjogY2QtYm91bmNlLTEgMC42czsKICAgIGFuaW1hdGlvbjogY2QtYm91bmNlLTEgMC42czsKICB9Cn0KCkAtd2Via2l0LWtleWZyYW1lcyBjZC1ib3VuY2UtMSB7CiAgMCUgewogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogIH0KCiAgNjAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICB9CgogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOwogIH0KfQpALW1vei1rZXlmcmFtZXMgY2QtYm91bmNlLTEgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMC41KTsKICB9CgogIDYwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEuMik7CiAgfQoKICAxMDAlIHsKICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9Cn0KQGtleWZyYW1lcyBjZC1ib3VuY2UtMSB7CiAgMCUgewogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOwogIH0KCiAgNjAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwogICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICB9CgogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9Cn0KLmNkLXRpbWVsaW5lLWNvbnRlbnQgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBtYXJnaW4tbGVmdDogNjBweDsKICBiYWNrZ3JvdW5kOiAjMzQ5OGRiOwogIGJvcmRlci1yYWRpdXM6IDAuMjVlbTsKICBwYWRkaW5nOiAxZW07CiAgYm94LXNoYWRvdzogMCAzcHggMCAjZDdlNGVkOwp9Ci5jZC10aW1lbGluZS1jb250ZW50OmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiB0YWJsZTsKICBjbGVhcjogYm90aDsKfQouY2QtdGltZWxpbmUtY29udGVudCBoMiB7CiAgY29sb3I6ICNmZmY7Cn0KLmNkLXRpbWVsaW5lLWNvbnRlbnQgcCwgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZSwgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLWRhdGUgewogIGZvbnQtc2l6ZTogMTNweDsKICAvKmZvbnQtc2l6ZTogMC44MTI1cmVtOyovCn0KLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZSwgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLWRhdGUgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQouY2QtdGltZWxpbmUtY29udGVudCBwIHsKICBtYXJnaW46IDFlbSAwOwogIGxpbmUtaGVpZ2h0OiAxLjY7Cn0KLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZSB7CiAgZmxvYXQ6IHJpZ2h0OwogIHBhZGRpbmc6IC44ZW0gMWVtOwogIGJhY2tncm91bmQ6ICNhY2I3YzA7CiAgY29sb3I6IHdoaXRlOwogIGJvcmRlci1yYWRpdXM6IDAuMjVlbTsKfQoubm8tdG91Y2ggLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZTpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2JhYzRjYjsKfQouY2QtdGltZWxpbmUtY29udGVudCAuY2QtZGF0ZSB7CiAgZmxvYXQ6IGxlZnQ7CiAgcGFkZGluZzogLjhlbSAwOwogIG9wYWNpdHk6IC43Owp9Ci5jZC10aW1lbGluZS1jb250ZW50OjpiZWZvcmUgewogIGNvbnRlbnQ6ICcnOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDE2cHg7CiAgcmlnaHQ6IDEwMCU7CiAgaGVpZ2h0OiAwOwogIHdpZHRoOiAwOwogIGJvcmRlcjogN3B4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHdoaXRlOwp9CkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHsKICAuY2QtdGltZWxpbmUtY29udGVudCBoMiB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICAvKmZvbnQtc2l6ZTogMS4yNXJlbTsqLwogIH0KICAuY2QtdGltZWxpbmUtY29udGVudCBwIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIC8qZm9udC1zaXplOiAxcmVtOyovCiAgICBjb2xvcjogI2ZmZjsKICB9CiAgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZSwgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLWRhdGUgewogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC1zaXplOiAwLjg3NXJlbTsKICB9Cn0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTcwcHgpIHsKICAuY2QtdGltZWxpbmUtY29udGVudCB7CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIHBhZGRpbmc6IDEuNmVtOwogICAgd2lkdGg6IDQ1JTsKICB9CiAgLmNkLXRpbWVsaW5lLWNvbnRlbnQ6OmJlZm9yZSB7CiAgICB0b3A6IDI0cHg7CiAgICBsZWZ0OiAxMDAlOwogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB3aGl0ZTsKICB9CiAgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLXJlYWQtbW9yZSB7CiAgICBmbG9hdDogbGVmdDsKICB9CiAgLmNkLXRpbWVsaW5lLWNvbnRlbnQgLmNkLWRhdGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDEwMCU7CiAgICBsZWZ0OiAxMjIlOwogICAgdG9wOiA2cHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICAvKmZvbnQtc2l6ZTogMXJlbTsqLwogIH0KICAuY2QtdGltZWxpbmUtYmxvY2s6bnRoLWNoaWxkKGV2ZW4pIC5jZC10aW1lbGluZS1jb250ZW50IHsKICAgIGZsb2F0OiByaWdodDsKICB9CiAgLmNkLXRpbWVsaW5lLWJsb2NrOm50aC1jaGlsZChldmVuKSAuY2QtdGltZWxpbmUtY29udGVudDo6YmVmb3JlIHsKICAgIHRvcDogMjRweDsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMTAwJTsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHdoaXRlOwogIH0KICAuY2QtdGltZWxpbmUtYmxvY2s6bnRoLWNoaWxkKGV2ZW4pIC5jZC10aW1lbGluZS1jb250ZW50IC5jZC1yZWFkLW1vcmUgewogICAgZmxvYXQ6IHJpZ2h0OwogIH0KICAuY2QtdGltZWxpbmUtYmxvY2s6bnRoLWNoaWxkKGV2ZW4pIC5jZC10aW1lbGluZS1jb250ZW50IC5jZC1kYXRlIHsKICAgIGxlZnQ6IGF1dG87CiAgICByaWdodDogMTIyJTsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogIH0KICAuY3NzYW5pbWF0aW9ucyAuY2QtdGltZWxpbmUtY29udGVudC5pcy1oaWRkZW4gewogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KICAuY3NzYW5pbWF0aW9ucyAuY2QtdGltZWxpbmUtY29udGVudC5ib3VuY2UtaW4gewogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjZC1ib3VuY2UtMiAwLjZzOwogICAgLW1vei1hbmltYXRpb246IGNkLWJvdW5jZS0yIDAuNnM7CiAgICBhbmltYXRpb246IGNkLWJvdW5jZS0yIDAuNnM7CiAgfQp9CgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDExNzBweCkgewogIC8qIGludmVyc2UgYm91bmNlIGVmZmVjdCBvbiBldmVuIGNvbnRlbnQgYmxvY2tzICovCiAgLmNzc2FuaW1hdGlvbnMgLmNkLXRpbWVsaW5lLWJsb2NrOm50aC1jaGlsZChldmVuKSAuY2QtdGltZWxpbmUtY29udGVudC5ib3VuY2UtaW4gewogICAgLXdlYmtpdC1hbmltYXRpb246IGNkLWJvdW5jZS0yLWludmVyc2UgMC42czsKICAgIC1tb3otYW5pbWF0aW9uOiBjZC1ib3VuY2UtMi1pbnZlcnNlIDAuNnM7CiAgICBhbmltYXRpb246IGNkLWJvdW5jZS0yLWludmVyc2UgMC42czsKICB9Cn0KQC13ZWJraXQta2V5ZnJhbWVzIGNkLWJvdW5jZS0yIHsKICAwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsKICB9CgogIDYwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgfQoKICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogIH0KfQpALW1vei1rZXlmcmFtZXMgY2QtYm91bmNlLTIgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOwogIH0KCiAgNjAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICB9CgogIDEwMCUgewogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgfQp9CkBrZXlmcmFtZXMgY2QtYm91bmNlLTIgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOwogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsKICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDBweCk7CiAgfQoKICA2MCUgewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogIH0KCiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICB9Cn0KQC13ZWJraXQta2V5ZnJhbWVzIGNkLWJvdW5jZS0yLWludmVyc2UgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgfQoKICA2MCUgewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsKICB9CgogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgfQp9CkAtbW96LWtleWZyYW1lcyBjZC1ib3VuY2UtMi1pbnZlcnNlIHsKICAwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpOwogIH0KCiAgNjAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7CiAgfQoKICAxMDAlIHsKICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogIH0KfQpAa2V5ZnJhbWVzIGNkLWJvdW5jZS0yLWludmVyc2UgewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHB4KTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpOwogIH0KCiAgNjAlIHsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7CiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOwogIH0KCiAgMTAwJSB7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICB9Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpIHsKCiAuY2QtdGltZWxpbmUtY29udGVudCBoMiB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICAvKmZvbnQtc2l6ZTogMS4yNXJlbTsqLwogIH0KICAuY2QtdGltZWxpbmUtY29udGVudCBwIHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIC8qZm9udC1zaXplOiAxcmVtOyovCiAgICBjb2xvcjogI2ZmZjsKICB9CgogIC5jZC10aW1lbGluZS1pbWcuY2QtcGljdHVyZXsKICAgIGZvbnQtc2l6ZTogMjVweDsKICB9Cgp9"}},"time_used":80,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":80,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/2/js/main.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.863Z","timestamp":1785126645863,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/2/js/main.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 325\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1051,"size_decoded":579,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"6afd9a18a592a47fcaa0ae0782f99e89","sha1":"ddf7e8c66fb357d3774f7fb18179db2785b7a747","sha256":"03cd62c4c2c6a7176f0fa08acd2ec6f1bbde9fc59b12af7e6e3b06430d6b4f1c","sha512":"de65f5170074ab8cfe1c326dd8a9773fe82cca32ab9ef9387f034f80a8525f6b7f4266c514cd1b0fe9fc011193e89d9c90fd52d55d020ebd737183cfc68d5796","ssdeep":"","tlshash":"0c116b1af97421c291fea1ff4f2ba4c433716833a4064361ad19d9a42c9955a2613f8b","first_seen":"2023-03-14T05:59:18Z","last_seen":"2026-07-27T04:47:12.525068Z","times_seen":34,"resource_available":true,"data":"alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXsKCXZhciB0aW1lbGluZUJsb2NrcyA9ICQoJy5jZC10aW1lbGluZS1ibG9jaycpLAoJCW9mZnNldCA9IDAuODsKCgkvL2hpZGUgdGltZWxpbmUgYmxvY2tzIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSB2aWV3cG9ydAoJaGlkZUJsb2Nrcyh0aW1lbGluZUJsb2Nrcywgb2Zmc2V0KTsKCgkvL29uIHNjb2xsaW5nLCBzaG93L2FuaW1hdGUgdGltZWxpbmUgYmxvY2tzIHdoZW4gZW50ZXIgdGhlIHZpZXdwb3J0CgkkKHdpbmRvdykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uKCl7CgkJKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSAKCQkJPyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dCbG9ja3ModGltZWxpbmVCbG9ja3MsIG9mZnNldCk7IH0sIDEwMCkKCQkJOiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7IHNob3dCbG9ja3ModGltZWxpbmVCbG9ja3MsIG9mZnNldCk7IH0pOwoJfSk7CgoJZnVuY3Rpb24gaGlkZUJsb2NrcyhibG9ja3MsIG9mZnNldCkgewoJCWJsb2Nrcy5lYWNoKGZ1bmN0aW9uKCl7CgkJCSggJCh0aGlzKS5vZmZzZXQoKS50b3AgPiAkKHdpbmRvdykuc2Nyb2xsVG9wKCkrJCh3aW5kb3cpLmhlaWdodCgpKm9mZnNldCApICYmICQodGhpcykuZmluZCgnLmNkLXRpbWVsaW5lLWltZywgLmNkLXRpbWVsaW5lLWNvbnRlbnQnKS5hZGRDbGFzcygnaXMtaGlkZGVuJyk7CgkJfSk7Cgl9CgoJZnVuY3Rpb24gc2hvd0Jsb2NrcyhibG9ja3MsIG9mZnNldCkgewoJCWJsb2Nrcy5lYWNoKGZ1bmN0aW9uKCl7CgkJCSggJCh0aGlzKS5vZmZzZXQoKS50b3AgPD0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpKyQod2luZG93KS5oZWlnaHQoKSpvZmZzZXQgJiYgJCh0aGlzKS5maW5kKCcuY2QtdGltZWxpbmUtaW1nJykuaGFzQ2xhc3MoJ2lzLWhpZGRlbicpICkgJiYgJCh0aGlzKS5maW5kKCcuY2QtdGltZWxpbmUtaW1nLCAuY2QtdGltZWxpbmUtY29udGVudCcpLnJlbW92ZUNsYXNzKCdpcy1oaWRkZW4nKS5hZGRDbGFzcygnYm91bmNlLWluJyk7CgkJfSk7Cgl9Cn0pOw=="}},"time_used":981,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":981,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.154.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.437Z","timestamp":1785126646437,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base HTTP/1.1\r\nHost: www.youtube.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/GmOzih6I1zs\r\nCookie: __Secure-YNID=20.YT=ar4nuMJJakXYfaaumWkDeKWzAgXBwj2imrQWPnvEAci39_4X8W2GBbwikCTSpQiiY-0UKgQbBejt2E4uQD9Pt-q8yBKbVNacbh0tBTZRc2c3U6J6CMEx4FJw2kJIF3_wKSopFUsTrrBXM0g8j7z-uX-r5wlBmaAkw50cHg5udSBx-Zst38XakPeaW4WAMvyDc6D8xW89vuEv_LW1MrKYQSb7STSXzfRZ72x5D2Z0IxA9cpMsoAuJ_MVNc6jPVQcidbTIVI9b15NeOPHWX-oqRGKoemQko7QBHdJpoEiPqms5G6RHvP9AFCz2hXmzpm49ky6LilLZGkXf0ITaGOP9TQ; YSC=GIGPEnpYUrE; VISITOR_INFO1_LIVE=5aNirtnXOnM; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgFw%3D%3D; __Secure-ROLLOUT_TOKEN=CM-4yIbAiO24_gEQvtmD_YLylQMYvtmD_YLylQM%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 150031\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 12:56:07 GMT\r\nexpires: Sat, 24 Jul 2027 12:56:07 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 07:10:55 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 228879\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":442344,"size_decoded":150945,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (534)","md5":"779ffe8039ad87e2a1aa1c111061fae4","sha1":"7765f6360937f90e51dc4974d13c20887adca712","sha256":"9e5e6d330bae7d5d640cf35fbbd6dbac19e4eec6c5bdea7b99a664523269f90f","sha512":"17cd5c8a938106fbe74d4ea623e67c3669683343c08f866700fd6284152c7397141c9ca02451bf6a32808003c4b4bf3fcce72cbbe6c53a851a1da6d254ea3619","ssdeep":"6144:OZaBJxrsw56sgMoiImct8de1F6Suapko3iM80AvhapoXgvWbq/+:FFpgMoircDkMiM80CapoXgvWbq/+","tlshash":"30944cd97762707392a2f5a5902f0103b17a68a6f40c8c7cf798ddd16eb494942bbf38","first_seen":"2026-07-24T13:29:06.322297Z","last_seen":"2026-07-27T08:08:01.170441Z","times_seen":1052,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF9iYXNlPXRoaXMuZGVmYXVsdF9iYXNlfHx7fTsoZnVuY3Rpb24oXyl7dmFyIHdpbmRvdz10aGlzOwp0cnl7Cl8uX0ZfdG9nZ2xlc19pbml0aWFsaXplPWZ1bmN0aW9uKGEpeyh0eXBlb2YgZ2xvYmFsVGhpcyE9PSJ1bmRlZmluZWQiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGYhPT0idW5kZWZpbmVkIj9zZWxmOnRoaXMpLl9GX3RvZ2dsZXNfZGVmYXVsdF9iYXNlPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4MCwgMHgyLCBdKTsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgMjAwNSwgMjAwNyBCb2IgSXBwb2xpdG8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoqLwovKgoKIChUaGUgTUlUIExpY2Vuc2UpCgogQ29weXJpZ2h0IChDKSAyMDE0IGJ5IFZpdGFseSBQdXpyaW4KCiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiBUSEUgU09GVFdBUkUuCgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFBvcnRlZCBmcm9tIHpsaWIsIHdoaWNoIGlzIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZQogaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvbWFzdGVyL3psaWIuaAoKIHpsaWIuaCAtLSBpbnRlcmZhY2Ugb2YgdGhlICd6bGliJyBnZW5lcmFsIHB1cnBvc2UgY29tcHJlc3Npb24gbGlicmFyeQogICB2ZXJzaW9uIDEuMi44LCBBcHJpbCAyOHRoLCAyMDEzCiAgIENvcHlyaWdodCAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAgVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAgd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogICBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogICBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgICAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogICAgICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogICAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogICAgICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCiAgIEplYW4tbG91cCBHYWlsbHkgICAgICAgIE1hcmsgQWRsZXIKICAgamxvdXBAZ3ppcC5vcmcgICAgICAgICAgbWFkbGVyQGFsdW1uaS5jYWx0ZWNoLmVkdQogICBUaGUgZGF0YSBmb3JtYXQgdXNlZCBieSB0aGUgemxpYiBsaWJyYXJ5IGlzIGRlc2NyaWJlZCBieSBSRkNzIChSZXF1ZXN0IGZvcgogICBDb21tZW50cykgMTk1MCB0byAxOTUyIGluIHRoZSBmaWxlcyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxOTUwCiAgICh6bGliIGZvcm1hdCksIHJmYzE5NTEgKGRlZmxhdGUgZm9ybWF0KSBhbmQgcmZjMTk1MiAoZ3ppcCBmb3JtYXQpLgoqLwp2YXIgZWEsZmEsZGEsbmEscWEsdWEsdmEsQmEsSWEsSmEsS2EsUGEsUmEsVmEsJGEsaGIsbWIsd2IsemIsQWIsRWIsQ2IsRmIsR2IsTmIsVGIsZmMsaGMsaWMsamMsa2MsbWMsbmMsb2MsdGMscWMsR2MsSWMsTGMsTmMsVWMsUWMsV2MsY2QsZmQsaGQsamQsa2QsbWQsb2Qsc2QsQWQsQmQsRWQsdWQsR2QsSGQsSmQsSWQsS2QsTGQsTWQsT2QsU2QsWWQsYmUsY2UsZWUsZmUsZ2UsaGUsaWUsamUsa2UscWUsbGUscmUsb2UscGUsdmUsdGUsc2UsdWUsd2UseGUseWUsemUsQ2UsRGUsRWUsRmUsSGUsS2UsTWUsTmUsT2UsUGUsUWUsVmUsWWUsUmUsWmUsYWYsV2UsVGUsaGYsbGYsbWYsbmYsb2YscmYsdGYseGYsemYsQ2YsS2YsTGYsUWYsRmYsU2YsT2YsTWYsTmYsVGYsUmYsV2YsVmYsWGYsWWYsWmYsYmcsZGcsZWcsZmcsY2csa2csbGcsaGcsZ2csaWcsamcscmcsc2csdGcsdmcseGcsemcsQWcsdWcsRWcsd2csRmcsRGcsSGcsSWcsSmcsT2csUmcsTmcsVGcsU2csVWcsWWcsWGcsYmgsJGcsClpnLGFoLFBnLGNoLGZoLGloLGpoLGtoLGxoLGdoLGhoLG5oLHVoLHZoLHdoLHhoLHloLEFoLEJoLENoLERoLEVoLEZoLEloLEpoLEtoLExoLE1oLE5oLE9oLFBoLFFoLFJoLFNoLFRoLFVoLFZoLGNpLGRpLGVpLGZpLGdpLGhpLGppLGtpLGxpLHBpLHFpLHJpLHNpLHZpLHdpLHhpLHlpLHppLEFpLEJpLERpLEVpLE1pLFRpLFlpLGFqLGRqLGNqLFhpLG9qLHhqLHdqLEFqLEJqLENqLEVqLEpqLEZqLEhqLElqLHZqLFFqLFpqLGJrLGNrLGFrLGVrLGhrLGlrLGZrLGtrLG1rLGxrLG9rLHBrLHFrLHNrLHJrLHZrLHlrLHhrLHprLEFrLEVrLEprLEtrLExrLFJrLFNrLFRrLFVrLFhrLFlrLFdrLFprLCRrLGJsLGNsLGRsLGhsLG5sLHFsLHNsLHRsLGdsLHVsLHZsLHBsLHJsLHlsLHpsLEJsLEVsLEhsLExsLE5sLE9sLFFsLFJsLFNsLFRsLFVsLFZsLFdsLFhsLFpsLGJtLGNtLGRtLGVtLGZtLGdtLGhtLGttLGxtLG1tLG9tLHRtLEFtLEJtLERtLENtLEdtLEhtLEVtLEZtLEltLEptLExtLE1tLApPbSxQbSxRbSxSbSxTbSxUbSxVbSxObSxXbSxYbSxZbSxabSxmbixnbixqbixsbixtbixvbixxbixybix2bix4bixBbix3bix6bixFbixLbixKbixNbixRbixSbixTbixUbixWbixabixXbixYbixZbiwkbixjbyxhbyxxbyx2byx3byxEbyxIbyxGbyxHbyxLbyxKbyxJbyxMbyxPbyxRbywkbyxZbyxXbyxTbyxpcCxlcCxmcCx0cCxycCxxcCxSbyx1cCxkcCxocCxzcCxhcCxUbyxWbyxabyxwcCxGcCxKcCxScCxTcCxVcCxZcCxUcCxhcSxjcSxkcSxlcSxmcSxocSxqcSxxcSxrYSxqYSxpYSxjYTtlYT1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPTA7YzxjYS5sZW5ndGg7YysrKWRhKGNhW2NdKyJBcnJheS5wcm90b3R5cGUuIithLGIpfTtmYT1mdW5jdGlvbihhLGIpe2ImJmRhKGEsYil9OwpkYT1mdW5jdGlvbihhLGIpe3ZhciBjPWlhO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmYiE9bnVsbCYmamEoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTtuYT1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWthKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2xhKGEsYik7YS56Yj1iLnByb3RvdHlwZX07cWE9ZnVuY3Rpb24oYSl7YT1NYXRoLnRydW5jKGEpfHwwO2E8MCYmKGErPXRoaXMubGVuZ3RoKTtpZighKGE8MHx8YT49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW2FdfTsKXy5yYT1mdW5jdGlvbihhLGIsYyl7YT1hLnNwbGl0KCIuIik7Yz1jfHxfLnU7Zm9yKHZhciBkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07dWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnNhKCJXSVpfZ2xvYmFsX2RhdGEub3hOM25iIik7YT1jJiZjW2FdO3JldHVybiBhIT1udWxsP2E6Yn07dmE9ZnVuY3Rpb24oKXt9O18uc2E9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8udTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWJbYVtjXV0sYj09bnVsbClyZXR1cm4gbnVsbDtyZXR1cm4gYn07Xy53YT1mdW5jdGlvbihhKXthLlNsPXZvaWQgMDthLmpjPWZ1bmN0aW9uKCl7cmV0dXJuIGEuU2w/YS5TbDphLlNsPW5ldyBhfX07Cl8ueGE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGIhPSJvYmplY3QiP2I6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6YjoibnVsbCJ9O18ueWE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy54YShhKTtyZXR1cm4gYj09ImFycmF5Inx8Yj09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciJ9O18uQWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PSJvYmplY3QiJiZhIT1udWxsfHxiPT0iZnVuY3Rpb24ifTtCYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuY2FsbC5hcHBseShhLmJpbmQsYXJndW1lbnRzKX07Xy5DYT1mdW5jdGlvbihhLGIsYyl7Xy5DYT1CYTtyZXR1cm4gXy5DYS5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpfLkRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWMuc2xpY2UoKTtkLnB1c2guYXBwbHkoZCxhcmd1bWVudHMpO3JldHVybiBhLmFwcGx5KHRoaXMsZCl9fTtfLkVhPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O18uRmE9ZnVuY3Rpb24oYSxiKXtfLnJhKGEsYil9O18uR2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O18uSGE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuemI9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLmJhc2U9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgaD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGs9MjtrPGFyZ3VtZW50cy5sZW5ndGg7aysrKWhbay0yXT1hcmd1bWVudHNba107cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsaCl9fTsKSWE9ZnVuY3Rpb24oYSwuLi5iKXtiPWIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiYiKTtpZighYilyZXR1cm4gYTt2YXIgYz1hLm1hdGNoKC9bPyZdYWR1cmw9Lyk7cmV0dXJuIGM/YS5zbGljZSgwLGMuaW5kZXgrMSkrYisiJiIrYS5zbGljZShjLmluZGV4KzEpOmErKGEuaW5kZXhPZigiPyIpPDA/Ij8iOiImIikrYn07SmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj8iJiIrYSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIifTsKS2E9ZnVuY3Rpb24oYSl7YT1hLkI7aWYoIWEpcmV0dXJuIiI7dmFyIGI9SmEoInVhcCIsYS5wbGF0Zm9ybSkrSmEoInVhcHYiLGEucGxhdGZvcm1WZXJzaW9uKStKYSgidWFmdiIsYS51YUZ1bGxWZXJzaW9uKStKYSgidWFhIixhLmFyY2hpdGVjdHVyZSkrSmEoInVhbSIsYS5tb2RlbCkrSmEoInVhYiIsYS5iaXRuZXNzKTthLmZ1bGxWZXJzaW9uTGlzdCYmKGIrPSImdWFmdmw9IitlbmNvZGVVUklDb21wb25lbnQoYS5mdWxsVmVyc2lvbkxpc3QubWFwKGM9PmVuY29kZVVSSUNvbXBvbmVudChjLmJyYW5kKSsiOyIrZW5jb2RlVVJJQ29tcG9uZW50KGMudmVyc2lvbikpLmpvaW4oInwiKSkpO2Eud293NjQhPW51bGwmJihiKz0iJnVhdz0iK051bWJlcihhLndvdzY0KSk7cmV0dXJuIGIuc2xpY2UoMSl9OwpfLkxhPWZ1bmN0aW9uKGEsYil7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxfLkxhKTtlbHNle2xldCBjPUVycm9yKCkuc3RhY2s7YyYmKHRoaXMuc3RhY2s9Yyl9YSYmKHRoaXMubWVzc2FnZT1TdHJpbmcoYSkpO2IhPT12b2lkIDAmJih0aGlzLmNhdXNlPWIpfTtfLk1hPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgtYi5sZW5ndGg7cmV0dXJuIGM+PTAmJmEuaW5kZXhPZihiLGMpPT1jfTtQYT1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIU5hKXJldHVybiBhO3RyeXtsZXQgYj1jPT5jO2E9TmEuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChiKXt9cmV0dXJuIGF9O1JhPWZ1bmN0aW9uKCl7UWE9PT12b2lkIDAmJihRYT1QYSgpKTtyZXR1cm4gUWF9OwpfLlRhPWZ1bmN0aW9uKGEpe3ZhciBiPVJhKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLlNhKGEpfTtfLlVhPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLlNhKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O1ZhPWZ1bmN0aW9uKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9O18uWGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLldhfTtfLllhPWZ1bmN0aW9uKGEpe2lmKF8uWGEoYSkpcmV0dXJuIGEuajt0aHJvdyBFcnJvcigiaCIpO307JGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBaYShiPT5iLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6Iil9O18uYmI9ZnVuY3Rpb24oYSxiPV8uYWIpe2lmKF8uWGEoYSkpcmV0dXJuIGE7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDsrK2Mpe2xldCBkPWJbY107aWYoZCBpbnN0YW5jZW9mIFphJiZkLmZiKGEpKXJldHVybiBuZXcgXy5XYShhKX19OwpfLmRiPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBfLldhP2E9Xy5ZYShhKTphPWNiLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGF9O18uZWI9ZnVuY3Rpb24oYSxiPWB1bmV4cGVjdGVkIHZhbHVlICR7YX0hYCl7dGhyb3cgRXJyb3IoYik7fTtfLmdiPWZ1bmN0aW9uKGEpe3ZhciBiPVJhKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgXy5mYihhKX07Xy5pYj1mdW5jdGlvbihhKXtyZXR1cm4gaGIoInNjcmlwdCIsYSl9O2hiPWZ1bmN0aW9uKGEsYj1kb2N1bWVudCl7YT1iLnF1ZXJ5U2VsZWN0b3I/LihgJHthfVtub25jZV1gKTtyZXR1cm4gYT09bnVsbD8iIjphLm5vbmNlfHxhLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18ua2I9ZnVuY3Rpb24oYSl7dmFyIGI9UmEoKTthPWI/Yi5jcmVhdGVTY3JpcHQoYSk6YTtyZXR1cm4gbmV3IF8uamIoYSl9OwpfLmxiPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmpiKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O21iPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaWIoYS5vd25lckRvY3VtZW50KTtiJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLGIpfTtfLm5iPWZ1bmN0aW9uKGEsYil7YS50ZXh0Q29udGVudD1fLmxiKGIpO21iKGEpfTtfLm9iPWZ1bmN0aW9uKGEsYil7YS5zcmM9Xy5VYShiKTttYihhKX07Xy5xYj1mdW5jdGlvbihhLGIsYyl7aWYoYiBpbnN0YW5jZW9mIF8uU2EpYS5ocmVmPV8uVWEoYikudG9TdHJpbmcoKSxhLnJlbD1jO2Vsc2V7aWYocGIuaW5kZXhPZihjKT09PS0xKXRocm93IEVycm9yKCJqYCIrYyk7Yj1fLmRiKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9YixhLnJlbD1jKX19O18uc2I9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX07Cl8udGI9ZnVuY3Rpb24oYSxiKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYix2b2lkIDApfTtfLnViPWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYSxiLHZvaWQgMCl9O18udmI9ZnVuY3Rpb24oYSxiKXthOntsZXQgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YTtmb3IobGV0IGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpe2I9ZTticmVhayBhfWI9LTF9cmV0dXJuIGI8MD9udWxsOnR5cGVvZiBhPT09InN0cmluZyI/YS5jaGFyQXQoYik6YVtiXX07d2I9ZnVuY3Rpb24oYSxiKXtfLnNiKGEsYik+PTB8fGEucHVzaChiKX07Xy54Yj1mdW5jdGlvbihhLGIpe2I9Xy5zYihhLGIpO3ZhciBjOyhjPWI+PTApJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoYSxiLDEpO3JldHVybiBjfTsKXy55Yj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZihiPjApe2xldCBjPUFycmF5KGIpO2ZvcihsZXQgZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTt6Yj1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe2xldCBkPWFyZ3VtZW50c1tjXTtpZihfLnlhKGQpKXtsZXQgZT1hLmxlbmd0aHx8MCxmPWQubGVuZ3RofHwwO2EubGVuZ3RoPWUrZjtmb3IobGV0IGg9MDtoPGY7aCsrKWFbZStoXT1kW2hdfWVsc2UgYS5wdXNoKGQpfX07QWI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz0wLGQ9bmV3IFNldDtjPGEubGVuZ3RoOyl7bGV0IGU9YVtjKytdO2QuaGFzKGUpfHwoZC5hZGQoZSksYVtiKytdPWUpfWEubGVuZ3RoPWJ9OwpfLkJiPWZ1bmN0aW9uKGEsYil7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODJ8fChhLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mj17fSk7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODIuc2V2ZXJpdHk9Yn07CkViPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2EoIndpbmRvdy5sb2NhdGlvbi5ocmVmIik7YT09bnVsbCYmKGE9J1Vua25vd24gRXJyb3Igb2YgdHlwZSAibnVsbC91bmRlZmluZWQiJyk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm57bWVzc2FnZTphLG5hbWU6IlVua25vd24gZXJyb3IiLGxpbmVOdW1iZXI6Ik5vdCBhdmFpbGFibGUiLGZpbGVOYW1lOmIsc3RhY2s6Ik5vdCBhdmFpbGFibGUifTt2YXIgYz0hMTt0cnl7dmFyIGQ9YS5saW5lTnVtYmVyfHxhLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChmKXtkPSJOb3QgYXZhaWxhYmxlIixjPSEwfXRyeXt2YXIgZT1hLmZpbGVOYW1lfHxhLmZpbGVuYW1lfHxhLnNvdXJjZVVSTHx8Xy51LiRnb29nRGVidWdGbmFtZXx8Yn1jYXRjaChmKXtlPSJOb3QgYXZhaWxhYmxlIixjPSEwfWI9Q2IoYSk7aWYoISghYyYmYS5saW5lTnVtYmVyJiZhLmZpbGVOYW1lJiZhLnN0YWNrJiZhLm1lc3NhZ2UmJmEubmFtZSkpe2M9YS5tZXNzYWdlOwppZihjPT1udWxsKXtpZihhLmNvbnN0cnVjdG9yJiZhLmNvbnN0cnVjdG9yIGluc3RhbmNlb2YgRnVuY3Rpb24pe2lmKGEuY29uc3RydWN0b3IubmFtZSljPWEuY29uc3RydWN0b3IubmFtZTtlbHNlIGlmKGM9YS5jb25zdHJ1Y3RvcixEYltjXSljPURiW2NdO2Vsc2V7Yz1TdHJpbmcoYyk7aWYoIURiW2NdKXtsZXQgZj0vZnVuY3Rpb25ccysoW15cKF0rKS9tLmV4ZWMoYyk7RGJbY109Zj9mWzFdOiJbQW5vbnltb3VzXSJ9Yz1EYltjXX1jPSdVbmtub3duIEVycm9yIG9mIHR5cGUgIicrYysnIid9ZWxzZSBjPSJVbmtub3duIEVycm9yIG9mIHVua25vd24gdHlwZSI7dHlwZW9mIGEudG9TdHJpbmc9PT0iZnVuY3Rpb24iJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIT09YS50b1N0cmluZyYmKGMrPSI6ICIrYS50b1N0cmluZygpKX1yZXR1cm57bWVzc2FnZTpjLG5hbWU6YS5uYW1lfHwiVW5rbm93bkVycm9yIixsaW5lTnVtYmVyOmQsZmlsZU5hbWU6ZSxzdGFjazpifHwiTm90IGF2YWlsYWJsZSJ9fXJldHVybnttZXNzYWdlOmEubWVzc2FnZSwKbmFtZTphLm5hbWUsbGluZU51bWJlcjphLmxpbmVOdW1iZXIsZmlsZU5hbWU6YS5maWxlTmFtZSxzdGFjazpifX07CkNiPWZ1bmN0aW9uKGEsYil7Ynx8KGI9e30pO2JbRmIoYSldPSEwO3ZhciBjPWEuc3RhY2t8fCIiLGQ9YS5jYXVzZTtkJiYhYltGYihkKV0mJihjKz0iXG5DYXVzZWQgYnk6ICIsZC5zdGFjayYmZC5zdGFjay5pbmRleE9mKGQudG9TdHJpbmcoKSk9PTB8fChjKz10eXBlb2YgZD09PSJzdHJpbmciP2Q6ZC5tZXNzYWdlKyJcbiIpLGMrPUNiKGQsYikpO2E9YS5lcnJvcnM7aWYoQXJyYXkuaXNBcnJheShhKSl7ZD0xO2xldCBlO2ZvcihlPTA7ZTxhLmxlbmd0aCYmIShkPjQpO2UrKyliW0ZiKGFbZV0pXXx8KGMrPSJcbklubmVyIGVycm9yICIrZCsrICsiOiAiLGFbZV0uc3RhY2smJmFbZV0uc3RhY2suaW5kZXhPZihhW2VdLnRvU3RyaW5nKCkpPT0wfHwoYys9dHlwZW9mIGFbZV09PT0ic3RyaW5nIj9hW2VdOmFbZV0ubWVzc2FnZSsiXG4iKSxjKz1DYihhW2VdLGIpKTtlPGEubGVuZ3RoJiYoYys9IlxuLi4uICIrKGEubGVuZ3RoLWUpKyIgbW9yZSBpbm5lciBlcnJvcnMiKX1yZXR1cm4gY307CkZiPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO3R5cGVvZiBhLnRvU3RyaW5nPT09ImZ1bmN0aW9uIiYmKGI9IiIrYSk7cmV0dXJuIGIrYS5zdGFja307R2I9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVGEoYSl9O18uSGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O18uSWI9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7dmFyIGs9IiI7YSYmKGsrPWErIjoiKTtjJiYoays9Ii8vIixiJiYoays9YisiQCIpLGsrPWMsZCYmKGsrPSI6IitkKSk7ZSYmKGsrPWUpO2YmJihrKz0iPyIrZik7aCYmKGsrPSIjIitoKTtyZXR1cm4ga307Xy5NYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5tYXRjaChLYil9O05iPWZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSShhKTphfTsKXy5PYj1mdW5jdGlvbihhKXthPV8uTWIoYSlbMV18fG51bGw7IWEmJl8udS5zZWxmJiZfLnUuc2VsZi5sb2NhdGlvbiYmKGE9Xy51LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpO3JldHVybiBhP2EudG9Mb3dlckNhc2UoKToiIn07Xy5QYj1mdW5jdGlvbihhKXtyZXR1cm4gTmIoXy5NYihhKVszXXx8bnVsbCl9O18uUWI9ZnVuY3Rpb24oYSl7cmV0dXJuIE5iKF8uTWIoYSlbNV18fG51bGwpfTtfLlJiPWZ1bmN0aW9uKGEsYil7aWYoYSl7YT1hLnNwbGl0KCImIik7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspe2xldCBkPWFbY10uaW5kZXhPZigiPSIpLGUsZj1udWxsO2Q+PTA/KGU9YVtjXS5zdWJzdHJpbmcoMCxkKSxmPWFbY10uc3Vic3RyaW5nKGQrMSkpOmU9YVtjXTtiKGUsZj9fLkhiKGYpOiIiKX19fTsKXy5TYj1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybiBhO3ZhciBjPWEuaW5kZXhPZigiIyIpO2M8MCYmKGM9YS5sZW5ndGgpO3ZhciBkPWEuaW5kZXhPZigiPyIpO2lmKGQ8MHx8ZD5jKXtkPWM7dmFyIGU9IiJ9ZWxzZSBlPWEuc3Vic3RyaW5nKGQrMSxjKTthPVthLnNsaWNlKDAsZCksZSxhLnNsaWNlKGMpXTtjPWFbMV07YVsxXT1iP2M/YysiJiIrYjpiOmM7cmV0dXJuIGFbMF0rKGFbMV0/Ij8iK2FbMV06IiIpK2FbMl19O1RiPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKVRiKGEsU3RyaW5nKGJbZF0pLGMpO2Vsc2UgYiE9bnVsbCYmYy5wdXNoKGErKGI9PT0iIj8iIjoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSkpKX07Xy5VYj1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IobGV0IGMgaW4gYSlUYihjLGFbY10sYik7cmV0dXJuIGIuam9pbigiJiIpfTsKXy5XYj1mdW5jdGlvbihhLGIpe2I9Xy5VYihiKTtyZXR1cm4gXy5TYihhLGIpfTtfLlhiPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1jLmxlbmd0aDsoYj1hLmluZGV4T2YoYyxiKSk+PTAmJmI8ZDspe3ZhciBmPWEuY2hhckNvZGVBdChiLTEpO2lmKGY9PTM4fHxmPT02MylpZihmPWEuY2hhckNvZGVBdChiK2UpLCFmfHxmPT02MXx8Zj09Mzh8fGY9PTM1KXJldHVybiBiO2IrPWUrMX1yZXR1cm4tMX07Xy5aYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuc2VhcmNoKF8uWWIpLGQ9Xy5YYihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gXy5IYihhLnNsaWNlKGQsZSE9PS0xP2U6MCkpfTtfLiRiPWZ1bmN0aW9uKGEpe18udS5zZXRUaW1lb3V0KCgpPT57dGhyb3cgYTt9LDApfTsKXy5hYz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07Xy5iYz1mdW5jdGlvbigpe3ZhciBhPV8udS5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTsKZmM9ZnVuY3Rpb24oYSl7aWYoIWRjfHwhZWMpcmV0dXJuITE7Zm9yKGxldCBiPTA7YjxlYy5icmFuZHMubGVuZ3RoO2IrKyl7bGV0IHticmFuZDpjfT1lYy5icmFuZHNbYl07aWYoYyYmYy5pbmRleE9mKGEpIT0tMSlyZXR1cm4hMH1yZXR1cm4hMX07aGM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uYmMoKS5pbmRleE9mKGEpIT0tMX07aWM9ZnVuY3Rpb24oKXtyZXR1cm4gZGM/ISFlYyYmZWMuYnJhbmRzLmxlbmd0aD4wOiExfTtqYz1mdW5jdGlvbigpe3JldHVybiBpYygpPyExOmhjKCJPcGVyYSIpfTtrYz1mdW5jdGlvbigpe3JldHVybiBoYygiRmlyZWZveCIpfHxoYygiRnhpT1MiKX07bWM9ZnVuY3Rpb24oKXtyZXR1cm4gaWMoKT9mYygiQ2hyb21pdW0iKTooaGMoIkNocm9tZSIpfHxoYygiQ3JpT1MiKSkmJiEoaWMoKT8wOmhjKCJFZGdlIikpfHxoYygiU2lsayIpfTtuYz1mdW5jdGlvbigpe3JldHVybiBkYz8hIWVjJiYhIWVjLnBsYXRmb3JtOiExfTsKb2M9ZnVuY3Rpb24oKXtyZXR1cm4gaGMoImlQaG9uZSIpJiYhaGMoImlQb2QiKSYmIWhjKCJpUGFkIil9O18ucGM9ZnVuY3Rpb24oYSl7Xy5wY1siICJdKGEpO3JldHVybiBhfTtfLnNjPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9MCk7cWMoKTtiPXJjW2JdO2Zvcih2YXIgYz1BcnJheShNYXRoLmZsb29yKGEubGVuZ3RoLzMpKSxkPWJbNjRdfHwiIixlPTAsZj0wO2U8YS5sZW5ndGgtMjtlKz0zKXt2YXIgaD1hW2VdLGs9YVtlKzFdLGw9YVtlKzJdLG09YltoPj4yXTtoPWJbKGgmMyk8PDR8az4+NF07az1iWyhrJjE1KTw8MnxsPj42XTtsPWJbbCY2M107Y1tmKytdPW0raCtrK2x9bT0wO2w9ZDtzd2l0Y2goYS5sZW5ndGgtZSl7Y2FzZSAyOm09YVtlKzFdLGw9YlsobSYxNSk8PDJdfHxkO2Nhc2UgMTphPWFbZV0sY1tmXT1iW2E+PjJdK2JbKGEmMyk8PDR8bT4+NF0rbCtkfXJldHVybiBjLmpvaW4oIiIpfTsKXy51Yz1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxjPWIqMy80O2MlMz9jPU1hdGguZmxvb3IoYyk6Ij0uIi5pbmRleE9mKGFbYi0xXSkhPS0xJiYoYz0iPS4iLmluZGV4T2YoYVtiLTJdKSE9LTE/Yy0yOmMtMSk7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoYyksZT0wO3RjKGEsZnVuY3Rpb24oZil7ZFtlKytdPWZ9KTtyZXR1cm4gZSE9PWM/ZC5zdWJhcnJheSgwLGUpOmR9O3RjPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhlKXtmb3IoO2Q8YS5sZW5ndGg7KXtsZXQgZj1hLmNoYXJBdChkKyspLGg9dmNbZl07aWYoaCE9bnVsbClyZXR1cm4gaDtpZighL15bXHNceGEwXSokLy50ZXN0KGYpKXRocm93IEVycm9yKCJtYCIrZik7fXJldHVybiBlfXFjKCk7Zm9yKHZhciBkPTA7Oyl7bGV0IGU9YygtMSksZj1jKDApLGg9Yyg2NCksaz1jKDY0KTtpZihrPT09NjQmJmU9PT0tMSlicmVhaztiKGU8PDJ8Zj4+NCk7aCE9NjQmJihiKGY8PDQmMjQwfGg+PjIpLGshPTY0JiZiKGg8PDYmMTkyfGspKX19OwpxYz1mdW5jdGlvbigpe2lmKCF2Yyl7dmM9e307dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXTtmb3IobGV0IGM9MDtjPDU7YysrKXtsZXQgZD1hLmNvbmNhdChiW2NdLnNwbGl0KCIiKSk7cmNbY109ZDtmb3IobGV0IGU9MDtlPGQubGVuZ3RoO2UrKyl7bGV0IGY9ZFtlXTt2Y1tmXT09PXZvaWQgMCYmKHZjW2ZdPWUpfX19fTtfLnhjPWZ1bmN0aW9uKGEsYil7aWYoYSE9bnVsbCl7dmFyIGM9d2M/Pyh3Yz17fSk7dmFyIGQ9Y1thXXx8MDtkPj1ifHwoY1thXT1kKzEsYT1FcnJvcigpLF8uQmIoYSwiaW5jaWRlbnQiKSxfLiRiKGEpKX19O18ueWM9ZnVuY3Rpb24oYSxiPSExKXtyZXR1cm4gYiYmU3ltYm9sLmZvciYmYT9TeW1ib2wuZm9yKGEpOmEhPW51bGw/U3ltYm9sKGEpOlN5bWJvbCgpfTsKXy5CYz1mdW5jdGlvbihhLGIpe3JldHVybiBiPT09dm9pZCAwP2EuaiE9PV8uemMmJiEhKDImKGEuRGFbXy5BY118MCkpOiEhKDImYikmJmEuaiE9PV8uemN9O18uQ2M9ZnVuY3Rpb24oYSl7YS51Sj0hMDtyZXR1cm4gYX07Xy5GYz1mdW5jdGlvbihhKXtpZihEYyhhKSl7aWYoIS9eXHMqKD86LT9bMS05XVxkKnwwKT9ccyokLy50ZXN0KGEpKXRocm93IEVycm9yKFN0cmluZyhhKSk7fWVsc2UgaWYoRWMoYSkmJiFOdW1iZXIuaXNTYWZlSW50ZWdlcihhKSl0aHJvdyBFcnJvcihTdHJpbmcoYSkpO3JldHVybiBCaWdJbnQoYSl9O0djPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtJYz1mdW5jdGlvbihhLGIpe2I8MTAwfHxfLnhjKEhjLDEpfTsKTGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZCE9PXZvaWQgMDtkPSEhZDt2YXIgZj1fLkdhKF8uSmMpLGg7IWUmJmYmJihoPWFbZl0pJiZoLmN3KEljKTtmPVtdO3ZhciBrPWEubGVuZ3RoO2g9NDI5NDk2NzI5NTt2YXIgbD0hMSxtPSEhKGImNjQpLG49bT9iJjEyOD8wOi0xOnZvaWQgMDtpZighKGImMSkpe3ZhciBwPWsmJmFbay0xXTtwIT1udWxsJiZ0eXBlb2YgcD09PSJvYmplY3QiJiZwLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhrLS0saD1rKTpwPXZvaWQgMDshbXx8YiYxMjh8fGV8fChsPSEwLGg9KEtjPz9HYykoaC1uLG4sYSxwLHZvaWQgMCkrbil9Yj12b2lkIDA7Zm9yKGU9MDtlPGs7ZSsrKXtsZXQgcj1hW2VdO2lmKHIhPW51bGwmJihyPWMocixkKSkhPW51bGwpaWYobSYmZT49aCl7bGV0IHQ9ZS1uOyhiPz8oYj17fSkpW3RdPXJ9ZWxzZSBmW2VdPXJ9aWYocClmb3IobGV0IHIgaW4gcCl7YT1wW3JdO2lmKGE9PW51bGx8fChhPWMoYSxkKSk9PW51bGwpY29udGludWU7az0rcjsKbGV0IHQ7bSYmIU51bWJlci5pc05hTihrKSYmKHQ9aytuKTxoP2ZbdF09YTooYj8/KGI9e30pKVtyXT1hfWImJihsP2YucHVzaChiKTpmW2hdPWIpO3JldHVybiBmfTtOYz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLk1jKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXtsZXQgYj1hW18uQWNdfDA7cmV0dXJuIGEubGVuZ3RoPT09MCYmYiYxP3ZvaWQgMDpMYyhhLGIsTmMpfWlmKGEhPW51bGwmJmFbXy5PY109PT1fLlBjKXJldHVybiBRYyhhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5SYyYmYSBpbnN0YW5jZW9mIF8uUmMpcmV0dXJuIGEubygpO3JldHVybn1yZXR1cm4gYX07ClVjPWZ1bmN0aW9uKGEsYil7aWYoYil7S2M9Yj09bnVsbHx8Yj09PUdjfHxiW1NjXSE9PVRjP0djOmI7dHJ5e3JldHVybiBRYyhhKX1maW5hbGx5e0tjPXZvaWQgMH19cmV0dXJuIFFjKGEpfTtRYz1mdW5jdGlvbihhKXthPWEuRGE7cmV0dXJuIExjKGEsYVtfLkFjXXwwLE5jKX07Cl8uWGM9ZnVuY3Rpb24oYSxiLGMsZD0wKXtpZihhPT1udWxsKXt2YXIgZT0zMjtjPyhhPVtjXSxlfD0xMjgpOmE9W107YiYmKGU9ZSYtMTY3NjA4MzN8KGImMTAyMyk8PDE0KX1lbHNle2lmKCFBcnJheS5pc0FycmF5KGEpKXRocm93IEVycm9yKCJzIik7ZT1hW18uQWNdfDA7aWYoVmMmJjEmZSl0aHJvdyBFcnJvcigidCIpOzIwNDgmZSYmISgyJmUpJiZXYygpO2lmKGUmMjU2KXRocm93IEVycm9yKCJ1Iik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJihhW18uQWNdPWV8ZCksYTtpZihjJiYoZXw9MTI4LGMhPT1hWzBdKSl0aHJvdyBFcnJvcigidiIpO2E6e2M9YTtlfD02NDt2YXIgZj1jLmxlbmd0aDtpZihmKXt2YXIgaD1mLTE7bGV0IGw9Y1toXTtpZihsIT1udWxsJiZ0eXBlb2YgbD09PSJvYmplY3QiJiZsLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtiPWUmMTI4PzA6LTE7aC09YjtpZihoPj0xMDI0KXRocm93IEVycm9yKCJ4Iik7Zm9yKHZhciBrIGluIGwpaWYoZj0rayxmPGgpY1tmKwpiXT1sW2tdLGRlbGV0ZSBsW2tdO2Vsc2UgYnJlYWs7ZT1lJi0xNjc2MDgzM3woaCYxMDIzKTw8MTQ7YnJlYWsgYX19aWYoYil7az1NYXRoLm1heChiLGYtKGUmMTI4PzA6LTEpKTtpZihrPjEwMjQpdGhyb3cgRXJyb3IoInkiKTtlPWUmLTE2NzYwODMzfChrJjEwMjMpPDwxNH19fWFbXy5BY109ZXw2NHxkO3JldHVybiBhfTtXYz1mdW5jdGlvbigpe2lmKFZjKXRocm93IEVycm9yKCJ3Iik7Xy54YyhZYyw1KX07CmNkPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4gYTtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYz1hW18uQWNdfDA7YS5sZW5ndGg9PT0wJiZjJjE/YT12b2lkIDA6YyYyfHwoIWJ8fDQwOTYmY3x8MTYmYz9hPV8uWmMoYSxjLCExLGImJiEoYyYxNikpOihhW18uQWNdfD0zNCxjJjQmJk9iamVjdC5mcmVlemUoYSkpKTtyZXR1cm4gYX1pZihhIT1udWxsJiZhW18uT2NdPT09Xy5QYylyZXR1cm4gYj1hLkRhLGM9YltfLkFjXXwwLF8uQmMoYSxjKT9hOl8uJGMoYSxiLGMpP18uYmQoYSxiKTpfLlpjKGIsYyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIF8uUmMmJmEgaW5zdGFuY2VvZiBfLlJjKXJldHVybiBhfTtfLmJkPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJihhLmo9Xy56Yyk7YS5vPV8uemM7cmV0dXJuIGF9OwpfLlpjPWZ1bmN0aW9uKGEsYixjLGQpe2Q/PyhkPSEhKDM0JmIpKTthPUxjKGEsYixjZCxkKTtkPTMyO2MmJihkfD0yKTtiPWImMTY3NjkyMTd8ZDthW18uQWNdPWI7cmV0dXJuIGF9O18uJGM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjJjI/ITA6YyYzMiYmIShjJjQwOTYpPyhiW18uQWNdPWN8MixhLmo9Xy56YywhMCk6ITF9O18uZWQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8uZGQoYS5EYSxiLGMsZSk7aWYoYiE9PW51bGx8fGQmJmEubyE9PV8uemMpcmV0dXJuIGJ9OwpfLmRkPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9PT0tMSlyZXR1cm4gbnVsbDt2YXIgZT1iKyhjPzA6LTEpLGY9YS5sZW5ndGgtMTtpZighKGY8MSsoYz8wOi0xKSkpe2lmKGU+PWYpe3ZhciBoPWFbZl07aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yz1oW2JdO3ZhciBrPSEwfWVsc2UgaWYoZT09PWYpYz1oO2Vsc2UgcmV0dXJufWVsc2UgYz1hW2VdO2lmKGQmJmMhPW51bGwpe2Q9ZChjKTtpZihkPT1udWxsKXJldHVybiBkO2lmKCFPYmplY3QuaXMoZCxjKSlyZXR1cm4gaz9oW2JdPWQ6YVtlXT1kLGR9cmV0dXJuIGN9fTtmZD1mdW5jdGlvbigpe3ZhciBhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhyb3cgRXJyb3IoKTt9fTtPYmplY3Quc2V0UHJvdG90eXBlT2YoYSxhLnByb3RvdHlwZSk7cmV0dXJuIGF9O18uZ2Q9ZnVuY3Rpb24oKXt9OwpoZD1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319O2pkPWZ1bmN0aW9uKGEpe3ZhciBiPWlkO2lmKGIpZm9yKGxldCBjIGluIGIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsYykmJmEoYltjXSxjLGIpfTtrZD1mdW5jdGlvbigpe3ZhciBhPVtdO2pkKGI9PnthLnB1c2goYil9KTtyZXR1cm4gYX07bWQ9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxiPXt9O18udGIobGQoKSxjPT57YS5zYW5kYm94JiZhLnNhbmRib3guc3VwcG9ydHMmJmEuc2FuZGJveC5zdXBwb3J0cyhjKSYmKGJbY109ITApfSk7cmV0dXJuIGJ9O18ubmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn07b2Q9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgaW4gYSliLmNhbGwodm9pZCAwLGFbY10sYyxhKX07Cl8ucGQ9ZnVuY3Rpb24oYSl7Zm9yKGxldCBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9OwpfLnFkPWZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiBhO2lmKHR5cGVvZiBhLmNsb25lPT09ImZ1bmN0aW9uIilyZXR1cm4gYS5jbG9uZSgpO2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIE1hcClyZXR1cm4gbmV3IE1hcChhKTtpZih0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIG5ldyBTZXQoYSk7aWYoYSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGEuZ2V0VGltZSgpKTt2YXIgYj1BcnJheS5pc0FycmF5KGEpP1tdOnR5cGVvZiBBcnJheUJ1ZmZlciE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXchPT0iZnVuY3Rpb24ifHwhQXJyYXlCdWZmZXIuaXNWaWV3KGEpfHxhIGluc3RhbmNlb2YgRGF0YVZpZXc/e306bmV3IGEuY29uc3RydWN0b3IoYS5sZW5ndGgpO2ZvcihsZXQgYyBpbiBhKWJbY109Xy5xZChhW2NdKTtyZXR1cm4gYn07CnNkPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIGM9YXJndW1lbnRzW2VdO2ZvcihkIGluIGMpYVtkXT1jW2RdO2ZvcihsZXQgZj0wO2Y8cmQubGVuZ3RoO2YrKyl7dmFyIGQ9cmRbZl07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsZCkmJihhW2RdPWNbZF0pfX19O18ueGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bmV3IHVkKF8udmQoYSkpOndkfHwod2Q9bmV3IHVkKX07Xy55ZD1mdW5jdGlvbihhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Ij9hLmRvY3VtZW50RWxlbWVudDphLmJvZHk7cmV0dXJuIG5ldyBfLm5kKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfTtfLnpkPWZ1bmN0aW9uKGEpe3JldHVybiBhP2EuZGVmYXVsdFZpZXc6d2luZG93fTsKQWQ9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoZSl7ZSYmYi5hcHBlbmRDaGlsZCh0eXBlb2YgZT09PSJzdHJpbmciP2EuY3JlYXRlVGV4dE5vZGUoZSk6ZSl9Zm9yKGxldCBlPTE7ZTxjLmxlbmd0aDtlKyspe2xldCBmPWNbZV07IV8ueWEoZil8fF8uQWEoZikmJmYubm9kZVR5cGU+MD9kKGYpOl8udGIoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIj9fLnliKGYpOmYsZCl9fTtfLkNkPWZ1bmN0aW9uKGEpe3JldHVybiBCZChkb2N1bWVudCxhKX07QmQ9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiKX07Xy5EZD1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTpudWxsfTsKXy52ZD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Xy5GZD1mdW5jdGlvbihhKXtyZXR1cm4gYS50YWdOYW1lPT0iQSImJmEuaGFzQXR0cmlidXRlKCJocmVmIil8fGEudGFnTmFtZT09IklOUFVUInx8YS50YWdOYW1lPT0iVEVYVEFSRUEifHxhLnRhZ05hbWU9PSJTRUxFQ1QifHxhLnRhZ05hbWU9PSJCVVRUT04iPyFhLmRpc2FibGVkJiYoIWEuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHxFZChhKSk6YS5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJkVkKGEpfTtFZD1mdW5jdGlvbihhKXthPWEudGFiSW5kZXg7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJmE+PTAmJmE8MzI3Njh9O3VkPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfHxfLnUuZG9jdW1lbnR8fGRvY3VtZW50fTsKR2Q9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChhKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7YS5pbmRleE9mKCJibG9iOiIpPT09MCYmKGE9YS5zdWJzdHJpbmcoNSkpO2E9YS5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07YT1hLnRvTG93ZXJDYXNlKCk7YS5pbmRleE9mKCIvLyIpPT0wJiYoYT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrYSk7L15bXHdcLV0qOlwvXC8vLnRlc3QoYSl8fChhPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgYj1hLnN1YnN0cmluZyhhLmluZGV4T2YoIjovLyIpKzMpLGM9Yi5pbmRleE9mKCIvIik7YyE9LTEmJihiPWIuc3Vic3RyaW5nKDAsYykpO2M9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIjovLyIpKTtpZighYyl0aHJvdyBFcnJvcigiQmAiK2EpO2lmKGMhPT0iaHR0cCImJmMhPT0iaHR0cHMiJiZjIT09ImNocm9tZS1leHRlbnNpb24iJiZjIT09Im1vei1leHRlbnNpb24iJiYKYyE9PSJmaWxlIiYmYyE9PSJhbmRyb2lkLWFwcCImJmMhPT0iY2hyb21lLXNlYXJjaCImJmMhPT0iY2hyb21lLXVudHJ1c3RlZCImJmMhPT0iY2hyb21lIiYmYyE9PSJhcHAiJiZjIT09ImRldnRvb2xzIil0aHJvdyBFcnJvcigiQ2AiK2MpO2E9IiI7dmFyIGQ9Yi5pbmRleE9mKCI6Iik7aWYoZCE9LTEpe3ZhciBlPWIuc3Vic3RyaW5nKGQrMSk7Yj1iLnN1YnN0cmluZygwLGQpO2lmKGM9PT0iaHR0cCImJmUhPT0iODAifHxjPT09Imh0dHBzIiYmZSE9PSI0NDMiKWE9IjoiK2V9cmV0dXJuIGMrIjovLyIrYithfTsKSGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7ZVswXT0xNzMyNTg0MTkzO2VbMV09NDAyMzIzMzQxNztlWzJdPTI1NjIzODMxMDI7ZVszXT0yNzE3MzM4Nzg7ZVs0XT0zMjg1Mzc3NTIwO249bT0wfWZ1bmN0aW9uIGIocCl7Zm9yKHZhciByPWgsdD0wO3Q8NjQ7dCs9NClyW3QvNF09cFt0XTw8MjR8cFt0KzFdPDwxNnxwW3QrMl08PDh8cFt0KzNdO2Zvcih0PTE2O3Q8ODA7dCsrKXA9clt0LTNdXnJbdC04XV5yW3QtMTRdXnJbdC0xNl0sclt0XT0ocDw8MXxwPj4+MzEpJjQyOTQ5NjcyOTU7cD1lWzBdO3ZhciB2PWVbMV0sej1lWzJdLEU9ZVszXSxBPWVbNF07Zm9yKHQ9MDt0PDgwO3QrKyl7aWYodDw0MClpZih0PDIwKXt2YXIgRj1FXnYmKHpeRSk7dmFyIEM9MTUxODUwMDI0OX1lbHNlIEY9dl56XkUsQz0xODU5Nzc1MzkzO2Vsc2UgdDw2MD8oRj12Jnp8RSYodnx6KSxDPTI0MDA5NTk3MDgpOihGPXZeel5FLEM9MzM5NTQ2OTc4Mik7Rj0oKHA8PDV8cD4+PjI3KSY0Mjk0OTY3Mjk1KStGKwpBK0Mrclt0XSY0Mjk0OTY3Mjk1O0E9RTtFPXo7ej0odjw8MzB8dj4+PjIpJjQyOTQ5NjcyOTU7dj1wO3A9Rn1lWzBdPWVbMF0rcCY0Mjk0OTY3Mjk1O2VbMV09ZVsxXSt2JjQyOTQ5NjcyOTU7ZVsyXT1lWzJdK3omNDI5NDk2NzI5NTtlWzNdPWVbM10rRSY0Mjk0OTY3Mjk1O2VbNF09ZVs0XStBJjQyOTQ5NjcyOTV9ZnVuY3Rpb24gYyhwLHIpe2lmKHR5cGVvZiBwPT09InN0cmluZyIpe3A9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHApKTtmb3IodmFyIHQ9W10sdj0wLHo9cC5sZW5ndGg7djx6Oysrdil0LnB1c2gocC5jaGFyQ29kZUF0KHYpKTtwPXR9cnx8KHI9cC5sZW5ndGgpO3Q9MDtpZihtPT0wKWZvcig7dCs2NDxyOyliKHAuc2xpY2UodCx0KzY0KSksdCs9NjQsbis9NjQ7Zm9yKDt0PHI7KWlmKGZbbSsrXT1wW3QrK10sbisrLG09PTY0KWZvcihtPTAsYihmKTt0KzY0PHI7KWIocC5zbGljZSh0LHQrNjQpKSx0Kz02NCxuKz02NH1mdW5jdGlvbiBkKCl7dmFyIHA9W10scj0Kbio4O208NTY/YyhrLDU2LW0pOmMoayw2NC0obS01NikpO2Zvcih2YXIgdD02Mzt0Pj01Njt0LS0pZlt0XT1yJjI1NSxyPj4+PTg7YihmKTtmb3IodD1yPTA7dDw1O3QrKylmb3IodmFyIHY9MjQ7dj49MDt2LT04KXBbcisrXT1lW3RdPj52JjI1NTtyZXR1cm4gcH1mb3IodmFyIGU9W10sZj1bXSxoPVtdLGs9WzEyOF0sbD0xO2w8NjQ7KytsKWtbbF09MDt2YXIgbSxuO2EoKTtyZXR1cm57cmVzZXQ6YSx1cGRhdGU6YyxkaWdlc3Q6ZCxrdjpmdW5jdGlvbigpe2Zvcih2YXIgcD1kKCkscj0iIix0PTA7dDxwLmxlbmd0aDt0Kyspcis9IjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChNYXRoLmZsb29yKHBbdF0vMTYpKSsiMDEyMzQ1Njc4OUFCQ0RFRiIuY2hhckF0KHBbdF0lMTYpO3JldHVybiByfX19O0pkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1TdHJpbmcoXy51LmxvY2F0aW9uLmhyZWYpO3JldHVybiBkJiZhJiZiP1tiLElkKEdkKGQpLGEsY3x8bnVsbCldLmpvaW4oIiAiKTpudWxsfTsKSWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9W107aWYoKEFycmF5LmlzQXJyYXkoYyk/MjoxKT09MSlyZXR1cm4gZT1bYixhXSxfLnRiKGQsZnVuY3Rpb24oayl7ZS5wdXNoKGspfSksS2QoZS5qb2luKCIgIikpO3ZhciBmPVtdLGg9W107Xy50YihjLGZ1bmN0aW9uKGspe2gucHVzaChrLmtleSk7Zi5wdXNoKGsudmFsdWUpfSk7Yz1NYXRoLmZsb29yKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFFMyk7ZT1mLmxlbmd0aD09MD9bYyxiLGFdOltmLmpvaW4oIjoiKSxjLGIsYV07Xy50YihkLGZ1bmN0aW9uKGspe2UucHVzaChrKX0pO2E9S2QoZS5qb2luKCIgIikpO2E9W2MsYV07aC5sZW5ndGg9PTB8fGEucHVzaChoLmpvaW4oIiIpKTtyZXR1cm4gYS5qb2luKCJfIil9O0tkPWZ1bmN0aW9uKGEpe3ZhciBiPUhkKCk7Yi51cGRhdGUoYSk7cmV0dXJuIGIua3YoKS50b0xvd2VyQ2FzZSgpfTtMZD1mdW5jdGlvbihhKXt0aGlzLmo9YXx8e2Nvb2tpZToiIn19OwpNZD1mdW5jdGlvbihhKXthPShhLmouY29va2llfHwiIikuc3BsaXQoIjsiKTt2YXIgYj1bXSxjPVtdO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgZD1hW2ZdLnRyaW0oKTt2YXIgZT1kLmluZGV4T2YoIj0iKTtlPT0tMT8oYi5wdXNoKCIiKSxjLnB1c2goZCkpOihiLnB1c2goZC5zdWJzdHJpbmcoMCxlKSksYy5wdXNoKGQuc3Vic3RyaW5nKGUrMSkpKX1yZXR1cm57a2V5czpiLHZhbHVlczpjfX07Xy5OZD1mdW5jdGlvbigpe3ZhciBhPV8udS5fX1NBUElTSUR8fF8udS5fX0FQSVNJRHx8Xy51Ll9fM1BTQVBJU0lEfHxfLnUuX18xUFNBUElTSUR8fF8udS5fX09WRVJSSURFX1NJRDtpZihhKXJldHVybiEwO3R5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYoYT1uZXcgTGQoZG9jdW1lbnQpLGE9YS5nZXQoIlNBUElTSUQiKXx8YS5nZXQoIkFQSVNJRCIpfHxhLmdldCgiX19TZWN1cmUtM1BBUElTSUQiKXx8YS5nZXQoIl9fU2VjdXJlLTFQQVBJU0lEIikpO3JldHVybiEhYX07Ck9kPWZ1bmN0aW9uKGEsYixjLGQpeyhhPV8udVthXSl8fHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQifHwoYT0obmV3IExkKGRvY3VtZW50KSkuZ2V0KGIpKTtyZXR1cm4gYT9KZChhLGMsZCk6bnVsbH07Cl8uUGQ9ZnVuY3Rpb24oYSl7dmFyIGI9R2QoXy51Py5sb2NhdGlvbi5ocmVmKSxjPVtdO2lmKF8uTmQoKSl7Yj1iLmluZGV4T2YoImh0dHBzOiIpPT0wfHxiLmluZGV4T2YoImNocm9tZS1leHRlbnNpb246Iik9PTB8fGIuaW5kZXhPZigiY2hyb21lLXVudHJ1c3RlZDovL25ldy10YWItcGFnZSIpPT0wfHxiLmluZGV4T2YoIm1vei1leHRlbnNpb246Iik9PTA7dmFyIGQsZT0oZD1iKT9fLnUuX19TQVBJU0lEOl8udS5fX0FQSVNJRDtlfHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KGU9bmV3IExkKGRvY3VtZW50KSxlPWUuZ2V0KGQ/IlNBUElTSUQiOiJBUElTSUQiKXx8ZS5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIikpOyhkPWU/SmQoZSxkPyJTQVBJU0lESEFTSCI6IkFQSVNJREhBU0giLGEpOm51bGwpJiZjLnB1c2goZCk7YiYmKChiPU9kKCJfXzFQU0FQSVNJRCIsIl9fU2VjdXJlLTFQQVBJU0lEIiwiU0FQSVNJRDFQSEFTSCIsYSkpJiZjLnB1c2goYiksKGE9T2QoIl9fM1BTQVBJU0lEIiwKIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsYSkpJiZjLnB1c2goYSkpfXJldHVybiBjLmxlbmd0aD09MD9udWxsOmMuam9pbigiICIpfTtTZD1mdW5jdGlvbihhKXtfLlFkP2EoXy5RZCk6KFJkPz8oUmQ9W10pKS5wdXNoKGEpfTtfLlZkPWZ1bmN0aW9uKCl7IV8uUWQmJl8uVGQmJl8uVWQoXy5UZCgpKTtyZXR1cm4gXy5RZH07Xy5VZD1mdW5jdGlvbihhKXtfLlFkPWE7UmQ/LmZvckVhY2goU2QpO1JkPXZvaWQgMH07Xy5XZD1mdW5jdGlvbihhKXtfLlFkJiZfLlFkLlJvKGEpfTtfLlhkPWZ1bmN0aW9uKCl7Xy5RZCYmXy5RZC55ZSgpfTsKWWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxfLnhkKCk7Yj1jLmo7dmFyIGQ9Yy5jcmVhdGVFbGVtZW50KCJTVFlMRSIpLGU9aGIoInN0eWxlIixiKTtlJiZkLnNldEF0dHJpYnV0ZSgibm9uY2UiLGUpO2QudHlwZT0idGV4dC9jc3MiO2M9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdO2Quc3R5bGVTaGVldD9kLnN0eWxlU2hlZXQuY3NzVGV4dD1hOmQuYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0Tm9kZShhKSk7Yy5hcHBlbmRDaGlsZChkKTtyZXR1cm4gZH07Xy5aZD1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07Xy4kZD1mdW5jdGlvbihhKXtmb3IobGV0IGI9MCxjPWFyZ3VtZW50cy5sZW5ndGg7YjxjOysrYil7bGV0IGQ9YXJndW1lbnRzW2JdO18ueWEoZCk/Xy4kZC5hcHBseShudWxsLGQpOl8uWmQoZCl9fTtfLmFlPWZ1bmN0aW9uKCl7dGhpcy5ZPXRoaXMuWTt0aGlzLks9dGhpcy5LfTtiZT1mdW5jdGlvbigpe18uYWUuY2FsbCh0aGlzKX07CmNlPWZ1bmN0aW9uKGEsYil7dGhpcy5qPWE7dGhpcy5vPWJ9O2VlPWZ1bmN0aW9uKGEsYil7Xy5hZS5jYWxsKHRoaXMpO3RoaXMuaj1hO3RoaXMuRD1iO3RoaXMuQj1kZT9udWxsOltdO3RoaXMudj1kZT9udWxsOltdO3RoaXMubz1kZT9udWxsOltdO3RoaXMuST0hMX07ZmU9ZnVuY3Rpb24oYSxiKXthLm98fChhLm89W10pO2Euby5wdXNoKG5ldyB2YS53ayhiLHZvaWQgMCkpfTtnZT1mdW5jdGlvbihhLGIsYyl7YS5CfHwoYS5CPVtdKTthLkIucHVzaChuZXcgdmEud2soYixjKSl9O2hlPWZ1bmN0aW9uKGEsYil7YS52fHwoYS52PVtdKTthLnYucHVzaChuZXcgdmEud2soYix2b2lkIDApKX07aWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7YVtkXS5leGVjdXRlKGIpfWNhdGNoKGUpe18uJGIoZSksYy5wdXNoKGUpfWEubGVuZ3RoPTA7cmV0dXJuIGMubGVuZ3RoP2M6bnVsbH07amU9ZnVuY3Rpb24oKXt0aGlzLlk9bnVsbH07CmtlPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LGM9Yi5zdHlsZVNoZWV0cy5sZW5ndGgsZD1ZZChhLG5ldyB1ZChiKSk7ZC5zZXRBdHRyaWJ1dGUoImRhdGEtbGF0ZS1jc3MiLCIiKTtiLnN0eWxlU2hlZXRzLmxlbmd0aD09YysxJiZfLnZiKGIuc3R5bGVTaGVldHMsZT0+KGUub3duZXJOb2RlfHxlLm93bmluZ0VsZW1lbnQpPT1kKX07cWU9ZnVuY3Rpb24oYSxiPSEwKXt2YXIgYz1sZShhKSxkPW5ldyBtZSxlPV8uTWIoYylbNV07b2QobmUsZnVuY3Rpb24oaCl7dmFyIGs9ZS5tYXRjaCgiLyIraCsiPShbXi9dKykiKTtrJiZvZShkLGgsa1sxXSl9KTt2YXIgZj0iIjtmPWEuaW5kZXhPZigiXy9zcy8iKSE9LTE/Il8vc3MvIjoiXy9qcy8iO3BlKGQsYS5zdWJzdHIoMCxhLmluZGV4T2YoZikrZi5sZW5ndGgpKTtpZighYilyZXR1cm4gZDsoYT1fLk1iKGMpWzZdfHxudWxsKSYmXy5SYihhLChoLGspPT57ZC52W2hdPWt9KTtyZXR1cm4gZH07CmxlPWZ1bmN0aW9uKGEpe3JldHVybiBhLnN0YXJ0c1dpdGgoImh0dHBzOi8vdWJlcnByb3h5LXBlbi1yZWRpcmVjdC5jb3JwLmdvb2dsZS5jb20vdWJlcnByb3h5L3Blbj91cmw9Iik/YS5zdWJzdHIoNjUpOmF9O3JlPWZ1bmN0aW9uKGEpe2E9Xy5RYihsZShhKSk7cmV0dXJuIGE9PT1udWxsPyExOlJlZ0V4cCgiKC9fL2pzLyl8KC9fL3NzLykiLCJnIikudGVzdChhKT8vXC9rPS8udGVzdChhKTohMX07b2U9ZnVuY3Rpb24oYSxiLGMpe2M/YS5qW2JdPWM6ZGVsZXRlIGEualtiXX07cGU9ZnVuY3Rpb24oYSxiKXthLm89Yn07CnZlPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9ZD0+e2EualtkXSE9PXZvaWQgMCYmYi5wdXNoKGQrIj0iK2EualtkXSl9O3NlKGEpPyhjKCJtZCIpLGMoImsiKSxjKCJjayIpLGMoImFtIiksYygicnMiKSxjKCJnc3Ntb2R1bGVzZXRwcm90byIpLGMoInNsayIpLGMoImR0aSIpLGMoImRid2giKSk6KGMoInNkY2giKSxjKCJrIiksYygiY2siKSxjKCJhbSIpLGMoImFtYyIpLGMoInJ0IiksImQiaW4gYS5qfHxvZShhLCJkIiwiMCIpLGMoImQiKSxjKCJleG0iKSxjKCJleGNtIiksKGEuai5leGNtfHxhLmouZXhtKSYmYi5wdXNoKCJlZD0xIiksYygiaW0iKSxjKCJkZyIpLGMoInNtIiksdGUoYSwiYnIiKSE9IjEiJiZ0ZShhLCJiciIpIT0iMCJ8fGMoImJyIiksYygiYnItZCIpLHRlKGEsInJiIik9PSIxIiYmYygicmIiKSx0ZShhLCJ6cyIpIT09IjAiJiZjKCJ6cyIpLHVlKGEpIT09IiImJmMoInd0IiksYygiZ3NzbW9kdWxlc2V0cHJvdG8iKSxjKCJ1amciKSxjKCJzcCIpLGMoImljaGMiKSwKYygicnMiKSxjKCJjYiIpLGMoImNjYiIpLGMoImVlIiksYygic2xrIiksYygiZHRpIiksYygiZGJ3aCIpLGMoImljIiksYygibSIpKTtyZXR1cm4gYi5qb2luKCIvIil9O3RlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEualtiXT9hLmpbYl06bnVsbH07c2U9ZnVuY3Rpb24oYSl7YT10ZShhLCJtZCIpO3JldHVybiEhYSYmYSE9PSIwIn07dWU9ZnVuY3Rpb24oYSl7c3dpdGNoKHRlKGEsInd0Iikpe2Nhc2UgIjAiOnJldHVybiIwIjtjYXNlICIxIjpyZXR1cm4iMSI7Y2FzZSAiMiI6cmV0dXJuIjIiO2RlZmF1bHQ6cmV0dXJuIiJ9fTt3ZT1mdW5jdGlvbihhLGIpe2ImJmIubGVuZ3RoPjA/KGIuc29ydCgpLG9lKGEsImV4bSIsYi5qb2luKCIsIikpKTpvZShhLCJleG0iLG51bGwpfTt4ZT1mdW5jdGlvbihhLGIpe2ImJmIubGVuZ3RoPjA/KGIuc29ydCgpLG9lKGEsImV4Y20iLGIuam9pbigiLCIpKSk6b2UoYSwiZXhjbSIsbnVsbCl9Owp5ZT1mdW5jdGlvbihhKXtyZXR1cm4oYT10ZShhLCJtIikpP2Euc3BsaXQoIiwiKTpbXX07emU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iIGluc3RhbmNlb2YgTWFwP0FycmF5LmZyb20oYi5lbnRyaWVzKCkpLmZpbHRlcigoWyxkXSk9PmQmJmQuc2l6ZT4wKS5tYXAoKFtkLGVdKT0+e2U9QXJyYXkuZnJvbShlKTtlLmxlbmd0aD4xJiZlLnNvcnQoKTtyZXR1cm4gZCsiOiIrZS5qb2luKCIsIil9KTpPYmplY3Qua2V5cyhiKS5maWx0ZXIoZD0+ISFPYmplY3Qua2V5cyhiW2RdKS5sZW5ndGgpLm1hcChkPT57dmFyIGU9T2JqZWN0LmtleXMoYltkXSk7ZS5sZW5ndGg+MSYmZS5zb3J0KCk7cmV0dXJuIGQrIjoiK2Uuam9pbigiLCIpfSk7Yy5zb3J0KCk7b2UoYSwiZWUiLGMuam9pbigiOyIpKX07CkNlPWZ1bmN0aW9uKGEpe2E9dGUoYSwiZWUiKTtpZihBZSl7aWYoIWEpcmV0dXJuIG5ldyBNYXA7dmFyIGI9bmV3IE1hcCxjPWEuc3BsaXQoIjsiKTtmb3IodmFyIGQgb2YgYyl7bGV0IFtmLGhdPWQuc3BsaXQoIjoiKTtjPW5ldyBTZXQ7Yi5zZXQoZixjKTtmb3IodmFyIGUgb2YgaC5zcGxpdCgiLCIpKWMuYWRkKGUpfXJldHVybiBifWlmKCFhKXJldHVybnt9O2Q9e307ZT1hLnNwbGl0KCI7Iik7Zm9yKGIgb2YgZSl7bGV0IFtmLGhdPWIuc3BsaXQoIjoiKTtkW2ZdPXt9O2ZvcihjIG9mIGguc3BsaXQoIiwiKSlkW2ZdW2NdPSEwfXJldHVybiBkfTtEZT1mdW5jdGlvbihhKXtkZWxldGUgYS5qLm07ZGVsZXRlIGEuai5leG07ZGVsZXRlIGEuai5lZH07CkVlPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiZkb2N1bWVudCYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJihhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKSl7bGV0IGI9YS50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoYj09IlNDUklQVCJ8fGI9PSJMSU5LIilyZXR1cm4gYX1yZXR1cm4gbnVsbH07RmU9ZnVuY3Rpb24oYT0iIixiKXtpZihhJiZiKXRocm93IEVycm9yKCJMIik7dmFyIGM9IiI7dmFyIGQ9Xy51Ll9GX2pzVXJsOyhhPWJ8fEVlKGEpKSYmKGM9YS5zcmM/YS5zcmM6YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYoZCYmYyl7aWYoZCE9Yyl0aHJvdyBFcnJvcigiTWAiK2QrImAiK2MpO2M9ZH1lbHNlIGM9ZHx8YztpZighcmUoYykpdGhyb3cgRXJyb3IoIk4iKTtyZXR1cm4gY307CkhlPWZ1bmN0aW9uKCl7aWYoIUdlKXtHZT0hMDt0cnl7dmFyIGE9RmUoXy51Ll9GX2pzVXJsPyIiOiJiYXNlLWpzIil9Y2F0Y2goYyl7cmV0dXJufXZhciBiPUNlKHFlKGEpKTtpZihiIGluc3RhbmNlb2YgTWFwKWIuc2l6ZSE9PTAmJlNkKGM9Pntmb3IobGV0IFtkLGVdb2YgYi5lbnRyaWVzKCkpe2xldCBmPWQsaD1lO2ZvcihsZXQgayBvZiBoKWMubmkoZixrKX19KTtlbHNle2xldCBjPU9iamVjdC5rZXlzKGIpO2MubGVuZ3RoIT09MCYmU2QoZD0+e2ZvcihsZXQgZSBvZiBjKXtsZXQgZj1iW2VdO2ZvcihsZXQgaCBvZiBPYmplY3Qua2V5cyhmKSlkLm5pKGUsaCl9fSl9fX07Xy5KZT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT0iZnVuY3Rpb24iPT10eXBlb2YgXy5JZSYmYSBpbnN0YW5jZW9mIF8uSWU/U3RyaW5nKGEpOmE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMubz0hMX07CktlPWZ1bmN0aW9uKGEsYil7Xy5KZS5jYWxsKHRoaXMsYT9hLnR5cGU6IiIpO3RoaXMucmVsYXRlZFRhcmdldD10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9dGhpcy5vZmZzZXRZPXRoaXMub2Zmc2V0WD0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy50aW1lU3RhbXA9MDt0aGlzLmo9bnVsbDthJiZ0aGlzLmluaXQoYSxiKX07Ck1lPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5saXN0ZW5lcj1hO3RoaXMucHJveHk9bnVsbDt0aGlzLnNyYz1iO3RoaXMudHlwZT1jO3RoaXMuY2FwdHVyZT0hIWQ7dGhpcy5oYW5kbGVyPWU7dGhpcy5rZXk9KytMZTt0aGlzLk5oPXRoaXMuemk9ITF9O05lPWZ1bmN0aW9uKGEpe2EuTmg9ITA7YS5saXN0ZW5lcj1udWxsO2EucHJveHk9bnVsbDthLnNyYz1udWxsO2EuaGFuZGxlcj1udWxsfTtPZT1mdW5jdGlvbihhKXt0aGlzLnNyYz1hO3RoaXMubGlzdGVuZXJzPXt9O3RoaXMuaj0wfTtQZT1mdW5jdGlvbihhLGIpe3ZhciBjPWIudHlwZTtjIGluIGEubGlzdGVuZXJzJiZfLnhiKGEubGlzdGVuZXJzW2NdLGIpJiYoTmUoYiksYS5saXN0ZW5lcnNbY10ubGVuZ3RoPT0wJiYoZGVsZXRlIGEubGlzdGVuZXJzW2NdLGEuai0tKSl9OwpRZT1mdW5jdGlvbihhLGIsYyxkKXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoOysrZSl7bGV0IGY9YVtlXTtpZighZi5OaCYmZi5saXN0ZW5lcj09YiYmZi5jYXB0dXJlPT0hIWMmJmYuaGFuZGxlcj09ZClyZXR1cm4gZX1yZXR1cm4tMX07Xy5TZT1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKGQmJmQub25jZSlyZXR1cm4gUmUoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKylfLlNlKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1UZShjKTtyZXR1cm4gYSYmYVtVZV0/YS5saXN0ZW4oYixjLF8uQWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlZlKGEsYixjLCExLGQsZSl9OwpWZT1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoIk8iKTt2YXIgaD1fLkFhKGUpPyEhZS5jYXB0dXJlOiEhZSxrPVdlKGEpO2t8fChhW1hlXT1rPW5ldyBPZShhKSk7Yz1rLmFkZChiLGMsZCxoLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1ZZSgpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpZT09PXZvaWQgMCYmKGU9ITEpLGEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3RyaW5nKCksZCxlKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudChaZShiLnRvU3RyaW5nKCkpLGQpO2Vsc2UgaWYoYS5hZGRMaXN0ZW5lciYmYS5yZW1vdmVMaXN0ZW5lcilhLmFkZExpc3RlbmVyKGQpO2Vsc2UgdGhyb3cgRXJyb3IoIlAiKTskZSsrO3JldHVybiBjfTtZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7cmV0dXJuIGIuY2FsbChhLnNyYyxhLmxpc3RlbmVyLGMpfXZhciBiPWFmO3JldHVybiBhfTsKUmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKylSZShhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9VGUoYyk7cmV0dXJuIGEmJmFbVWVdP18uYmYoYSxiLGMsXy5BYShkKT8hIWQuY2FwdHVyZTohIWQsZSk6VmUoYSxiLGMsITAsZCxlKX07Xy5jZj1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKGxldCBmPTA7ZjxiLmxlbmd0aDtmKyspXy5jZihhLGJbZl0sYyxkLGUpO2Vsc2UoZD1fLkFhKGQpPyEhZC5jYXB0dXJlOiEhZCxjPVRlKGMpLGEmJmFbVWVdKT9hLm8ucmVtb3ZlKFN0cmluZyhiKSxjLGQsZSk6YSYmKGE9V2UoYSkpJiYoYj1hLmxpc3RlbmVyc1tiLnRvU3RyaW5nKCldLGE9LTEsYiYmKGE9UWUoYixjLGQsZSkpLChjPWE+LTE/YlthXTpudWxsKSYmXy5kZihjKSl9OwpfLmRmPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciImJmEmJiFhLk5oKXt2YXIgYj1hLnNyYztpZihiJiZiW1VlXSlQZShiLm8sYSk7ZWxzZXt2YXIgYz1hLnR5cGUsZD1hLnByb3h5O2IucmVtb3ZlRXZlbnRMaXN0ZW5lcj9iLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxkLGEuY2FwdHVyZSk6Yi5kZXRhY2hFdmVudD9iLmRldGFjaEV2ZW50KFplKGMpLGQpOmIuYWRkTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXIoZCk7JGUtLTsoYz1XZShiKSk/KFBlKGMsYSksYy5qPT0wJiYoYy5zcmM9bnVsbCxiW1hlXT1udWxsKSk6TmUoYSl9fX07WmU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gZWY/ZWZbYV06ZWZbYV09Im9uIithfTthZj1mdW5jdGlvbihhLGIpe2lmKGEuTmgpYT0hMDtlbHNle2I9bmV3IEtlKGIsdGhpcyk7bGV0IGM9YS5saXN0ZW5lcixkPWEuaGFuZGxlcnx8YS5zcmM7YS56aSYmXy5kZihhKTthPWMuY2FsbChkLGIpfXJldHVybiBhfTsKV2U9ZnVuY3Rpb24oYSl7YT1hW1hlXTtyZXR1cm4gYSBpbnN0YW5jZW9mIE9lP2E6bnVsbH07VGU9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbZmZdfHwoYVtmZl09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtmZl19O18uZ2Y9ZnVuY3Rpb24oKXtfLmFlLmNhbGwodGhpcyk7dGhpcy5vPW5ldyBPZSh0aGlzKTt0aGlzLkZhPXRoaXM7dGhpcy5NPW51bGx9O18uYmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4gYS5vLmFkZChTdHJpbmcoYiksYywhMCxkLGUpfTsKaGY9ZnVuY3Rpb24oYSxiLGMsZCl7Yj1hLm8ubGlzdGVuZXJzW1N0cmluZyhiKV07aWYoIWIpcmV0dXJuITA7Yj1iLmNvbmNhdCgpO3ZhciBlPSEwO2ZvcihsZXQgZj0wO2Y8Yi5sZW5ndGg7KytmKXtsZXQgaD1iW2ZdO2lmKGgmJiFoLk5oJiZoLmNhcHR1cmU9PWMpe2xldCBrPWgubGlzdGVuZXIsbD1oLmhhbmRsZXJ8fGguc3JjO2guemkmJlBlKGEubyxoKTtlPWsuY2FsbChsLGQpIT09ITEmJmV9fXJldHVybiBlJiYhZC5kZWZhdWx0UHJldmVudGVkfTtsZj1mdW5jdGlvbigpe3ZhciBhPV8uamY7a2YuaW5zdGFuY2V8fChrZi5pbnN0YW5jZT1uZXcga2YoYSkpO3JldHVybiBrZi5pbnN0YW5jZX07Cm1mPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuQj9hLkI6YS5CPW5ldyBQcm9taXNlKGFzeW5jIGM9Pnt2YXIgZD13aW5kb3cuQWJvcnRDb250cm9sbGVyP25ldyB3aW5kb3cuQWJvcnRDb250cm9sbGVyOnZvaWQgMCxlPWQ/LnNpZ25hbCxmPSExO3RyeXtkJiYoYS5qPWEuRGMucGIoKCk9PntkLmFib3J0KCl9LGJ8fDJFNCkpLGF3YWl0IGZldGNoKCIvZ2VuZXJhdGVfMjA0Iix7bWV0aG9kOiJIRUFEIixzaWduYWw6ZX0pLGY9ITB9Y2F0Y2h7Zj0hMX1maW5hbGx5e2EuQj12b2lkIDAsYS5qJiYoYS5EYy5BYShhLmopLGEuaj0wKSxmIT09YS5pc09ubGluZSYmKGEuaXNPbmxpbmU9ZixhLmlzT25saW5lP2EuZGlzcGF0Y2hFdmVudCgibmV0d29ya3N0YXR1cy1vbmxpbmUiKTphLmRpc3BhdGNoRXZlbnQoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpKSxjKGYpfX0pfTsKbmY9ZnVuY3Rpb24oYSl7YS5EPWEuRGMucGIoYXN5bmMoKT0+e2EuaXNPbmxpbmU/d2luZG93Lm5hdmlnYXRvcj8ub25MaW5lfHxhd2FpdCBtZihhKTphd2FpdCBtZihhKTtuZihhKX0sM0U0KX07b2Y9ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKChjLGQpPT57YT1jO2I9ZH0pLHJlc29sdmU6YSxyZWplY3Q6Yn19O3JmPWZ1bmN0aW9uKGEpe3ZhciB7cHJvbWlzZTpiLHJlc29sdmU6YyxyZWplY3Q6ZH09b2YoKTtwZi5zZXQoYSx7cHJvbWlzZTpiLHJlc29sdmU6YyxyZWplY3Q6ZH0pO3FmfHwocWY9W10scXVldWVNaWNyb3Rhc2soKCk9Pnt2YXIgZT1bLi4ucWZdO3FmPW51bGw7dmFyIGY9Xy5WZCgpLmFmKGUpO2ZvcihsZXQgaCBvZiBlKWZbaF0udGhlbihwZi5nZXQoaCkucmVzb2x2ZSxwZi5nZXQoaCkucmVqZWN0KX0pKTtxZi5wdXNoKGEpO3JldHVybiBifTsKXy5zZj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTt0Zj1mdW5jdGlvbihhLGIpe2EuQihiKTthLm88MTAwJiYoYS5vKyssYi5uZXh0PWEuaixhLmo9Yil9O3hmPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9dWYucmVtb3ZlKCk7KXt0cnl7YS5mbi5jYWxsKGEuc2NvcGUpfWNhdGNoKGIpe18uJGIoYil9dGYodmYsYSl9d2Y9ITF9O18ueWY9ZnVuY3Rpb24oYSl7YS5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITB9O3pmPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiExO3RyeXtyZXR1cm4hIWEuJGdvb2dfVGhlbmFibGV9Y2F0Y2goYil7cmV0dXJuITF9fTsKXy5CZj1mdW5jdGlvbihhLGIpe3RoaXMuaj0wO3RoaXMuST12b2lkIDA7dGhpcy5CPXRoaXMubz10aGlzLnY9bnVsbDt0aGlzLkQ9dGhpcy5LPSExO2lmKGEhPV8uZ2QpdHJ5e2xldCBjPXRoaXM7YS5jYWxsKGIsZnVuY3Rpb24oZCl7Xy5BZihjLDIsZCl9LGZ1bmN0aW9uKGQpe18uQWYoYywzLGQpfSl9Y2F0Y2goYyl7Xy5BZih0aGlzLDMsYyl9fTtDZj1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLmNvbnRleHQ9dGhpcy5qPXRoaXMubz10aGlzLmNoaWxkPW51bGw7dGhpcy52PSExfTtfLkVmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1EZi5nZXQoKTtkLm89YTtkLmo9YjtkLmNvbnRleHQ9YztyZXR1cm4gZH07Xy5IZj1mdW5jdGlvbihhLGIsYyl7RmYoYSxiLGMsbnVsbCl8fEdmKF8uRGEoYixhKSl9OwpfLklmPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5CZihmdW5jdGlvbihiLGMpe3ZhciBkPWEubGVuZ3RoLGU9W107aWYoZCl7dmFyIGY9ZnVuY3Rpb24obCxtKXtkLS07ZVtsXT1tO2Q9PTAmJmIoZSl9LGg9ZnVuY3Rpb24obCl7YyhsKX07Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBrPWFbbF07Xy5IZihrLF8uRGEoZixsKSxoKX19ZWxzZSBiKGUpfSl9O0tmPWZ1bmN0aW9uKGEsYixjLGQpe18uSmYoYSxfLkVmKGJ8fF8uZ2QsY3x8bnVsbCxkKSl9OwpMZj1mdW5jdGlvbihhLGIpe2lmKGEuaj09MClpZihhLnYpe3ZhciBjPWEudjtpZihjLm8pe3ZhciBkPTAsZT1udWxsLGY9bnVsbDtmb3IobGV0IGg9Yy5vO2gmJihoLnZ8fChkKyssaC5jaGlsZD09YSYmKGU9aCksIShlJiZkPjEpKSk7aD1oLm5leHQpZXx8KGY9aCk7ZSYmKGMuaj09MCYmZD09MT9MZihjLGIpOihmPyhkPWYsZC5uZXh0PT1jLkImJihjLkI9ZCksZC5uZXh0PWQubmV4dC5uZXh0KTpNZihjKSxOZihjLGUsMyxiKSkpfWEudj1udWxsfWVsc2UgXy5BZihhLDMsYil9O18uSmY9ZnVuY3Rpb24oYSxiKXthLm98fGEuaiE9MiYmYS5qIT0zfHxPZihhKTthLkI/YS5CLm5leHQ9YjphLm89YjthLkI9Yn07ClFmPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPV8uRWYobnVsbCxudWxsLG51bGwpO2UuY2hpbGQ9bmV3IF8uQmYoZnVuY3Rpb24oZixoKXtlLm89Yj9mdW5jdGlvbihrKXt0cnl7bGV0IGw9Yi5jYWxsKGQsayk7ZihsKX1jYXRjaChsKXtoKGwpfX06ZjtlLmo9Yz9mdW5jdGlvbihrKXt0cnl7bGV0IGw9Yy5jYWxsKGQsayk7bD09PXZvaWQgMCYmayBpbnN0YW5jZW9mIF8uUGY/aChrKTpmKGwpfWNhdGNoKGwpe2gobCl9fTpofSk7ZS5jaGlsZC52PWE7Xy5KZihhLGUpO3JldHVybiBlLmNoaWxkfTtfLkFmPWZ1bmN0aW9uKGEsYixjKXthLmo9PTAmJihhPT09YyYmKGI9MyxjPW5ldyBUeXBlRXJyb3IoIlEiKSksYS5qPTEsRmYoYyxhLm5CLGEub0IsYSl8fChhLkk9YyxhLmo9YixhLnY9bnVsbCxPZihhKSxiIT0zfHxjIGluc3RhbmNlb2YgXy5QZnx8UmYoYSxjKSkpfTsKRmY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSBpbnN0YW5jZW9mIF8uQmYpcmV0dXJuIEtmKGEsYixjLGQpLCEwO2lmKHpmKGEpKXJldHVybiBhLnRoZW4oYixjLGQpLCEwO2lmKF8uQWEoYSkpdHJ5e2xldCBlPWEudGhlbjtpZih0eXBlb2YgZT09PSJmdW5jdGlvbiIpcmV0dXJuIFNmKGEsZSxiLGMsZCksITB9Y2F0Y2goZSl7cmV0dXJuIGMuY2FsbChkLGUpLCEwfXJldHVybiExfTtTZj1mdW5jdGlvbihhLGIsYyxkLGUpe2Z1bmN0aW9uIGYobCl7a3x8KGs9ITAsZC5jYWxsKGUsbCkpfWZ1bmN0aW9uIGgobCl7a3x8KGs9ITAsYy5jYWxsKGUsbCkpfXZhciBrPSExO3RyeXtiLmNhbGwoYSxoLGYpfWNhdGNoKGwpe2YobCl9fTtPZj1mdW5jdGlvbihhKXthLkt8fChhLks9ITAsR2YoYS50dCxhKSl9O01mPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7YS5vJiYoYj1hLm8sYS5vPWIubmV4dCxiLm5leHQ9bnVsbCk7YS5vfHwoYS5CPW51bGwpO3JldHVybiBifTsKTmY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYz09MyYmYi5qJiYhYi52KWZvcig7YSYmYS5EO2E9YS52KWEuRD0hMTtpZihiLmNoaWxkKWIuY2hpbGQudj1udWxsLFRmKGIsYyxkKTtlbHNlIHRyeXtiLnY/Yi5vLmNhbGwoYi5jb250ZXh0KTpUZihiLGMsZCl9Y2F0Y2goZSl7Xy5VZi5jYWxsKG51bGwsZSl9dGYoRGYsYil9O1RmPWZ1bmN0aW9uKGEsYixjKXtiPT0yP2Euby5jYWxsKGEuY29udGV4dCxjKTphLmomJmEuai5jYWxsKGEuY29udGV4dCxjKX07UmY9ZnVuY3Rpb24oYSxiKXthLkQ9ITA7R2YoZnVuY3Rpb24oKXthLkQmJl8uVWYuY2FsbChudWxsLGIpfSl9O18uUGY9ZnVuY3Rpb24oYSl7Xy5MYS5jYWxsKHRoaXMsYSl9O1dmPWZ1bmN0aW9uKGEpe3JldHVybiBWZihhKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBKU09OLnBhcnNlKGIucmVzcG9uc2VUZXh0KX0pfTsKVmY9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuKG5ldyBfLkJmKGZ1bmN0aW9uKGQsZSl7dmFyIGY7dHJ5e2Mub3BlbigiR0VUIixhLCEwKX1jYXRjaChoKXtlKG5ldyBYZigiRXJyb3Igb3BlbmluZyBYSFI6ICIraC5tZXNzYWdlLGEsYykpfWMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoYy5yZWFkeVN0YXRlPT00KXtfLnUuY2xlYXJUaW1lb3V0KGYpO3ZhciBoOyEoaD1fLnNmKGMuc3RhdHVzKSkmJihoPWMuc3RhdHVzPT09MCkmJihoPV8uT2IoYSksaD0hKGg9PSJodHRwInx8aD09Imh0dHBzInx8aD09IiIpKTtoP2QoYyk6ZShuZXcgWWYoYy5zdGF0dXMsYSxjKSl9fTtjLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG5ldyBYZigiTmV0d29yayBlcnJvciIsYSxjKSl9O2lmKGIuaGVhZGVycylmb3IobGV0IGggaW4gYi5oZWFkZXJzKXtsZXQgaz1iLmhlYWRlcnNbaF07ayE9bnVsbCYmYy5zZXRSZXF1ZXN0SGVhZGVyKGgsayl9Yi53aXRoQ3JlZGVudGlhbHMmJgooYy53aXRoQ3JlZGVudGlhbHM9Yi53aXRoQ3JlZGVudGlhbHMpO2IucmVzcG9uc2VUeXBlJiYoYy5yZXNwb25zZVR5cGU9Yi5yZXNwb25zZVR5cGUpO2IubWltZVR5cGUmJmMub3ZlcnJpZGVNaW1lVHlwZShiLm1pbWVUeXBlKTtiLnRpbWVvdXRNcz4wJiYoZj1fLnUuc2V0VGltZW91dChmdW5jdGlvbigpe2Mub25yZWFkeXN0YXRlY2hhbmdlPSgpPT57fTtjLmFib3J0KCk7ZShuZXcgWmYoYSxjKSl9LGIudGltZW91dE1zKSk7dHJ5e2Muc2VuZChudWxsKX1jYXRjaChoKXtjLm9ucmVhZHlzdGF0ZWNoYW5nZT0oKT0+e30sXy51LmNsZWFyVGltZW91dChmKSxlKG5ldyBYZigiRXJyb3Igc2VuZGluZyBYSFI6ICIraC5tZXNzYWdlLGEsYykpfX0pKS5LZyhmdW5jdGlvbihkKXtkIGluc3RhbmNlb2YgXy5QZiYmYy5hYm9ydCgpO3Rocm93IGQ7fSl9O1hmPWZ1bmN0aW9uKGEsYil7Xy5MYS5jYWxsKHRoaXMsYSsiLCB1cmw9IitiKTt0aGlzLnVybD1ifTsKWWY9ZnVuY3Rpb24oYSxiLGMpe1hmLmNhbGwodGhpcywiUmVxdWVzdCBGYWlsZWQsIHN0YXR1cz0iK2EsYixjKTt0aGlzLnN0YXR1cz1hfTtaZj1mdW5jdGlvbihhLGIpe1hmLmNhbGwodGhpcywiUmVxdWVzdCB0aW1lZCBvdXQiLGEsYil9O18uJGY9ZnVuY3Rpb24oYSxiLGMsZCxlPWIpe3ZhciBmPWIubGVuZ3RoLGg9KCk9PntmPTA7YS5vbmxvYWQ9bnVsbDthLm9uZXJyb3I9bnVsbDtrPSgpPT57fX0saz0oKT0+e2goKTt2YXIgbT1lLmZpbHRlcihuPT4hXy5WZCgpLkxhKG4pLmlzTG9hZGVkKCkpO20ubGVuZ3RoIT09MD9kKG0sYFJlc3BvbnNlIHdhcyBzdWNjZXNzZnVsIGJ1dCB3YXMgbWlzc2luZyBtb2R1bGUocykgJHttfS5gKTpjKCl9LGw9KCk9PntmLS07Zj09MCYmaygpfTtiLmZvckVhY2gobT0+e209Xy5WZCgpLkxhKG0pO20uaXNMb2FkZWQoKT9sKCk6KGZlKG0sbCksaGUobSxsKSl9KTthLm9ubG9hZD0oKT0+aygpO2Eub25lcnJvcj0oKT0+e2goKTtkKGIpfX07Cl8uYWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz0hMSxkPVtdO2ZvcihsZXQgZT0wO2U8Yi5sZW5ndGg7KytlKXtsZXQgZj1iW2VdO2EuQltmXXx8KGEuQltmXT0hMCxhLloucHVzaChmKSxjPSEwLGQucHVzaChmKSl9YyYmKGEub2E9ITEpfTtiZz1mdW5jdGlvbihhLGIpe2lmKGIuaHJlZnx8Yi5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpKWlmKGI9Yi5ocmVmfHxiLmdldEF0dHJpYnV0ZSgiZGF0YS1ocmVmIikscmUoYikmJiFxZShiKS5vLmVuZHNXaXRoKCJfL2pzLyIpKXtiPXllKHFlKGIpKTtmb3IobGV0IGMgb2YgYilhLmhhLmluY2x1ZGVzKGMpfHxhLmhhLnB1c2goYyl9fTtkZz1mdW5jdGlvbihhLGIsYyxkPSgpPT57fSxlPSgpPT57fSxmPSExKXtjZyhhLGIsKGgsayxsPWspPT57YS5NYSYmZj9hLlFhKGgsayxkLGUsbCk6YS5sb2FkKGgsayxkLGUsbCxjKX0sYyl8fGQoLTEpfTtlZz1mdW5jdGlvbihhLGIpe3JldHVybiBiLmZpbHRlcihjPT4hYS5CW2NdKX07CmZnPWZ1bmN0aW9uKGEsYixjLHtZZDpkLG9uRXJyb3I6ZSxvblN1Y2Nlc3M6Zixmb3JjZVJlbG9hZDpofT17fSl7YS5NPWM7aWYoIWIpdGhyb3cgRXJyb3IoIlMiKTtpZihhLlZkKXtmb3IobGV0IGsgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0eWxlIikpYmcoYSxrKTtmb3IobGV0IGsgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKSliZyhhLGspfWRnKGEsZWcoYSxiKSxkLGUsZixoKX07CmNnPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEudilyZXR1cm4gYS52LnRoZW4oKCk9PntjZyhhLGIsYyxkKX0pLCEwO2lmKCFhLkQpe2xldCBmPVtdO3ZhciBlPU9iamVjdC5hc3NpZ24oe30sYS5CKTtnZyhhLGIsaD0+e2YucHVzaChoLmdldElkKCkpfSxkLGg9PiFoLmlzTG9hZGVkKCksZSk7Yj1mfWZvcihlPTA7ZTxiLmxlbmd0aDspe2xldCBmPWIubGVuZ3RoLWUsaD1lPT0wP2I6Yi5zbGljZShlLGIubGVuZ3RoKSxrPWhnKGEsaCxkKSxsPV8uVWEoaykudG9TdHJpbmcoKTtmb3IoO2wubGVuZ3RoPmEuZGk7KWlmKGY+MSlmLT1NYXRoLmNlaWwoKGwubGVuZ3RoLWEuZGkpLzYpLGY9TWF0aC5tYXgoZiwxKSxoPWIuc2xpY2UoZSxlK2YpLGs9aGcoYSxoLGQpLGw9Xy5VYShrKS50b1N0cmluZygpO2Vsc2UgcmV0dXJuIGEuRD8oYS5EPSExLGEudj1pZyhhKS50aGVuKG09PntqZyhhLG0sZCl9KSxjZyhhLGIuc2xpY2UoZSksYyxkKSk6ITE7ZSs9ZjthLkQ/YyhrLGgpOmMoayxoLGU9PT1iLmxlbmd0aD8KYjpbXSl9cmV0dXJuITB9O2tnPWZ1bmN0aW9uKGEpe2Eub2F8fChhLm9hPSEwLGEuWi5zb3J0KCkpO3JldHVybiBhLlp9O2xnPWZ1bmN0aW9uKGEpe2E9YS5oYTthLnNvcnQoKTtyZXR1cm4gYX07aGc9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLkQ/bWcoYS5ZLGIse2Nzc1Jvd0tleTphLkZhLEtlOmEueWEsWWQ6YyxtbjprZyhhKSxsbjpsZyhhKX0pOm5nKGEuWSxiLHtjc3NSb3dLZXk6YS5GYSxLZTphLnlhLG1uOmtnKGEpLGxuOmxnKGEpfSl9O18ub2c9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoOysrZCl7bGV0IGU9YltkXTthLkJbZV0mJihkZWxldGUgYS5CW2VdLF8ueGIoYS5aLGUpLGMucHVzaChlKSl9fTsKXy5wZz1mdW5jdGlvbihhLGIsYyxkLGUsZixoPWQpe2EuST1jO2EuZ2EuaW5zZXJ0QmVmb3JlKGMsYS5nYS5maXJzdENoaWxkKTtfLiRmKGMsZCwoKT0+e2MucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChjKTthLkk9PWMmJihhLkk9bnVsbCk7ZigpfSxrPT57Yy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGMpO2EuST09YyYmKGEuST1udWxsKTtfLm9nKGEsayk7YS52P2Eudi50aGVuKCgpPT57ZSgtMSxiKX0pOmUoLTEsYil9LGgpfTtnZz1mdW5jdGlvbihhLGIsYyxkLGUsZj17fSl7dmFyIGg9Xy5WZCgpO2ZvcihsZXQgayBvZiBiKXtiPWguTGEoayk7aWYoZltrXXx8ZSYmIWUoYikpY29udGludWU7ZltrXT0hMDtsZXQgbD1iLmp8fFtdO2lmKGQpe2xldCBtPVtdO2lmKGQgaW5zdGFuY2VvZiBNYXApe2xldCBuPWQuZ2V0KGspO24mJihtPUFycmF5LmZyb20obikpfWVsc2UgZFtrXSYmKG09T2JqZWN0LmtleXMoZFtrXSkpO2w9bC5jb25jYXQobSl9Z2coYSxsLGMsZCxlLGYpO2MoYil9fTsKaWc9ZnVuY3Rpb24oYSl7YT1hLlkuY2xvbmUoKTtEZShhKTtvZShhLCJkZyIsbnVsbCk7b2UoYSwibWQiLCIxIik7cmV0dXJuIFdmKGEudG9TdHJpbmcoKSl9O2pnPWZ1bmN0aW9uKGEsYixjKXtfLlZkKCkuVGgoKGJ8fHt9KS5tb2R1bGVHcmFwaCk7Z2coYSxrZyhhKSxkPT57Xy5hZyhhLFtkLmdldElkKCldKX0sYyk7YS52PW51bGx9O3JnPWZ1bmN0aW9uKGEpe2E9YS5idWYuY2hhckNvZGVBdChhLnBvcysrKTtyZXR1cm4gcWdbYV19O3NnPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz0wO2Rve3ZhciBkPXJnKGEpO2J8PShkJjMxKTw8YztjKz01fXdoaWxlKGQmMzIpO3JldHVybiBiPDA/Yis0Mjk0OTY3Mjk2OmJ9O3RnPWZ1bmN0aW9uKGEsYil7dGhpcy5EPVtdO3RoaXMuWj1hO3RoaXMuVT1ifHxudWxsO3RoaXMuQj10aGlzLmo9ITE7dGhpcy52PXZvaWQgMDt0aGlzLk09dGhpcy5nYT10aGlzLkk9ITE7dGhpcy5LPTA7dGhpcy5vPW51bGw7dGhpcy5ZPTB9Owp2Zz1mdW5jdGlvbihhLGIsYyl7YS5qPSEwO2Eudj1jO2EuQj0hYjt1ZyhhKX07eGc9ZnVuY3Rpb24oYSl7aWYoYS5qKXtpZighYS5NKXRocm93IG5ldyB3ZyhhKTthLk09ITF9fTt6Zz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmo7ZXx8KGI9PT1jP2I9Yz0oMCxfLnlnKShiKTooYj0oMCxfLnlnKShiKSxjPSgwLF8ueWcpKGMpKSk7YS5ELnB1c2goW2IsYyxkXSk7ZSYmdWcoYSl9O0FnPWZ1bmN0aW9uKGEpe3JldHVybiBfLnViKGEuRCxmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGJbMV09PT0iZnVuY3Rpb24ifSl9Owp1Zz1mdW5jdGlvbihhKXtpZihhLksmJmEuaiYmQWcoYSkpe3ZhciBiPWEuSyxjPUJnW2JdO2MmJihfLnUuY2xlYXJUaW1lb3V0KGMuaiksZGVsZXRlIEJnW2JdKTthLks9MH1hLm8mJihhLm8uWS0tLGRlbGV0ZSBhLm8pO2I9YS52O2Zvcih2YXIgZD1jPSExO2EuRC5sZW5ndGgmJiFhLkk7KXt2YXIgZT1hLkQuc2hpZnQoKSxmPWVbMF07bGV0IGs9ZVsxXTtlPWVbMl07aWYoZj1hLkI/azpmKXRyeXt2YXIgaD1mLmNhbGwoZXx8YS5VLGIpO2g9PT1DZyYmKGg9dm9pZCAwKTtoIT09dm9pZCAwJiYoYS5CPWEuQiYmKGg9PWJ8fGEuaXNFcnJvcihoKSksYS52PWI9aCk7aWYoemYoYil8fHR5cGVvZiBfLnUuUHJvbWlzZT09PSJmdW5jdGlvbiImJmIgaW5zdGFuY2VvZiBfLnUuUHJvbWlzZSlkPSEwLGEuST0hMH1jYXRjaChsKXtiPWwsYS5CPSEwLEFnKGEpfHwoYz0hMCl9fWEudj1iO2QmJihoPSgwLF8uQ2EpKGEuc3AsYSwhMCksZD0oMCxfLkNhKShhLnNwLGEsITEpLGIgaW5zdGFuY2VvZiB0Zz8KKHpnKGIsaCxkKSxiLmdhPSEwKTpiLnRoZW4oaCxkKSk7YyYmKGI9bmV3IERnKGIpLEJnW2Iual09YixhLks9Yi5qKX07RWc9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHRnO2EudGhlbihmdW5jdGlvbihjKXtiLmNhbGxiYWNrKGMpfSxmdW5jdGlvbihjKXt4ZyhiKTt2ZyhiLCExLGMpfSk7cmV0dXJuIGJ9O3dnPWZ1bmN0aW9uKCl7Xy5MYS5jYWxsKHRoaXMpfTtGZz1mdW5jdGlvbigpe18uTGEuY2FsbCh0aGlzKX07RGc9ZnVuY3Rpb24oYSl7dGhpcy5qPV8udS5zZXRUaW1lb3V0KCgwLF8uQ2EpKHRoaXMudGhyb3dFcnJvcix0aGlzKSwwKTt0aGlzLm89YX07CkhnPWZ1bmN0aW9uKGEpe3N3aXRjaChhLnR5cGUpe2Nhc2UgR2cuVHlwZS5wbzpyZXR1cm4iVW5hdXRob3JpemVkIjtjYXNlIEdnLlR5cGUucGs6cmV0dXJuIkNvbnNlY3V0aXZlIGxvYWQgZmFpbHVyZXMiO2Nhc2UgR2cuVHlwZS5USU1FT1VUOnJldHVybiJUaW1lZCBvdXQiO2Nhc2UgR2cuVHlwZS5obzpyZXR1cm4iT3V0IG9mIGRhdGUgbW9kdWxlIGlkIjtjYXNlIEdnLlR5cGUudWs6cmV0dXJuIkluaXQgZXJyb3IiO2RlZmF1bHQ6cmV0dXJuYFVua25vd24gZmFpbHVyZSB0eXBlICR7YS50eXBlfWB9fTsKSWc9ZnVuY3Rpb24oKXt0aGlzLmhhPXRoaXMuWT1udWxsO3RoaXMuRD1uZXcgTWFwO3RoaXMuQj1uZXcgU2V0O3RoaXMuSz1bXTt0aGlzLlU9bmV3IFNldDt0aGlzLnY9W107dGhpcy5JPW5ldyBTZXQ7dGhpcy5qPUFlP25ldyBNYXA6e307dGhpcy5NPW5ldyBNYXA7dGhpcy5vPXRoaXMuWj1uZXcgdmEuT2coW10sIiIpO3RoaXMueWE9bnVsbDt0aGlzLmdhPW5ldyB0Zzt0aGlzLkZhPXRoaXMuUWE9dGhpcy5NYT10aGlzLm9hPSExfTtKZz1mdW5jdGlvbihhLGIpe18uTGEuY2FsbCh0aGlzLGBFcnJvciBsb2FkaW5nICR7YX06ICR7Yn1gKX07Ck9nPWZ1bmN0aW9uKGEsYil7aWYoIUtnKXtmb3IodmFyIGM9MDtjPDY0O2MrKylxZ1siQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckNvZGVBdChjKV09YztLZz0hMH1iPXtidWY6Yixwb3M6Mn07c2coYik7Yz1zZyhiKTt2YXIgZD1zZyhiKSsxLGU9QXJyYXkoYyksZj1BcnJheShjKSxoPUFycmF5KGMpO2Q9QXJyYXkoZCk7dmFyIGs9MCxsPTAsbT1iLmJ1ZixuPWIucG9zLHA9Yi5idWYuaW5kZXhPZigifCIsYi5wb3MpO2IucG9zPXArMTtmb3IocD0wO3A8YztwKyspe3ZhciByPXNnKGIpLHQ9ciYyLHY9ciYxO3I+Pj49Mjt2PyhrKz1yPj4+MV4tKHImMSkscj0ic3kiK2sudG9TdHJpbmcoMzYpKToodj1uLG4rPXIscj1tLnN1YnN0cmluZyh2LG4pKTtlW3BdPXI7dCYmKGRbbCsrXT1yKX1kW2xdPSIiO2IucG9zKys7bD1jJi0yO2s9YyYxO2ZvcihtPTA7bTxsO20rPTIpbj1yZyhiKSxoW21dPW4mNyxoW20rMV09Cm4+Pj4zJjc7ayYmKGs9cmcoYiksaFtsXT1rJjcpO2IucG9zKys7Zm9yKGw9MDtsPGM7bCsrKWhbbF09PT03JiYoaFtsXT1zZyhiKSk7Yi5wb3MrKztsPTA7Zm9yKGs9MDtrPGM7aysrKXttPWhba107bj1tPT09MD9MZzpBcnJheShtKTtmW2tdPW47cD1sO2Zvcih0PTA7dDxtO3QrKylwLT1zZyhiKSxuW3RdPWRbcF07ZFtsXT09PWVba10mJmwrK312YXIge2lkczp6LGRlcGVuZGVuY2llczpFfT17aWRzOmUsZGVwZW5kZW5jaWVzOmZ9O2ZvcihiPTA7Yjx6Lmxlbmd0aDtiKyspTmcoYSx6W2JdLEVbYl0pO2EuaGE9en07Umc9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NYSxjPWEuaXNBY3RpdmUoKTtjIT1iJiYoUGcoYSxjP1FnLk1zOlFnLklETEUpLGEuTWE9Yyk7Yj1hLkZxKCk7YiE9YS5RYSYmKFBnKGEsYj9RZy5odTpRZy5pdSksYS5RYT1iKX07Tmc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuRC5nZXQoYik7ZD9kLmo9YzphLkQuc2V0KGIsbmV3IHZhLk9nKGMsYikpfTsKVGc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBTZXQoYik7Yj1bXTt2YXIgZT17fTtmb3IobGV0IGYgb2YgZCl7ZD1hLkxhKGYpO2lmKCFkKXRocm93IEVycm9yKCJVYCIrZik7bGV0IGg9bmV3IHRnO2VbZl09aDtkLmlzTG9hZGVkKCk/aC5jYWxsYmFjayhudWxsKTooU2coYSxmLGQsISFjLGgpLGEudWgoZil8fGIucHVzaChmKSl9Yi5sZW5ndGg+MCYmKGEuQi5zaXplPT09MD9hLnNqKGIpOihhLnYucHVzaChiKSxSZyhhKSkpO3JldHVybiBlfTtTZz1mdW5jdGlvbihhLGIsYyxkLGUpe2dlKGMsZS5jYWxsYmFjayxlKTtoZShjLGZ1bmN0aW9uKGYpe2Y9bmV3IEpnKGIsZik7eGcoZSk7dmcoZSwhMSxmKX0pO2EudWgoYik/ZCYmKGEuSS5hZGQoYiksUmcoYSkpOmQmJmEuSS5hZGQoYil9OwpVZz1mdW5jdGlvbihhLGIpe2lmKCFhLm8uaGFzKGIpJiYoYS5vLmFkZChiKSwhYS5qLlUuaGFzKGIpKSl7dmFyIGM9YS5qLkxhKGIpO2lmKGMmJiFjLmlzTG9hZGVkKCkpe2M9Yy5qO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKVVnKGEsY1tkXSk7YS5yZXN1bHQucHVzaChiKX19fTtZZz1mdW5jdGlvbihhLGIpe2I9Yi5maWx0ZXIoZT0+YS5ELmdldChlKS5pc0xvYWRlZCgpPyhfLnUuc2V0VGltZW91dCgoKT0+RXJyb3IoIlhgIitlKSwwKSwhMSk6ITApO2lmKFZnKXt2YXIgYz1uZXcgV2coYSk7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspVWcoYyxiW2RdKTtjPWMucmVzdWx0fWVsc2V7Yz1bXTtmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKWM9Yy5jb25jYXQoWGcoYSxiW2RdKSk7QWIoYyl9cmV0dXJuIWEub2EmJmMubGVuZ3RoPjE/KGI9Yy5zaGlmdCgpLGEudj1jLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZV19KS5jb25jYXQoYS52KSxbYl0pOmN9OwpYZz1mdW5jdGlvbihhLGIpe2lmKFZnKXJldHVybiBhPW5ldyBXZyhhKSxVZyhhLGIpLGEucmVzdWx0O3ZhciBjPVtdO2EuVS5oYXMoYil8fGMucHVzaChiKTtiPVtiXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7bGV0IGU9YS5MYShiW2RdKS5qO2ZvcihsZXQgZj1lLmxlbmd0aC0xO2Y+PTA7Zi0tKXtsZXQgaD1lW2ZdO2EuTGEoaCkuaXNMb2FkZWQoKXx8YS5VLmhhcyhoKXx8KGMucHVzaChoKSxiLnB1c2goaCkpfX1jLnJldmVyc2UoKTtBYihjKTtyZXR1cm4gY307CmJoPWZ1bmN0aW9uKGEsYixjLGQsZSxmPTAsaD0hMSl7dmFyIGs9aD8wOmYrMTtmPV8ueWIoYyk7YS5LPWI7Zm9yKGxldCBsIG9mIGMpYS5VLmRlbGV0ZShsKTtpZihkPT00MDEpWmcoYSxuZXcgdmEub2IodmEub2IuVHlwZS5wbyxkKSksYS52Lmxlbmd0aD0wO2Vsc2UgaWYoZD09NDEwKSRnKGEsbmV3IHZhLm9iKHZhLm9iLlR5cGUuaG8sZCkpLGFoKGEpO2Vsc2UgaWYoaz49MylbLi4uYS5CXSwkZyhhLG5ldyB2YS5vYih2YS5vYi5UeXBlLnBrLGQsZixlKSksYWgoYSk7ZWxzZXtbLi4uYS5CXTtsZXQgbD1kPT04MDAxfHwhMTsoYz1NYXRoLnBvdyhrLDIpKjVFMyk/Xy51LnNldFRpbWVvdXQoKCk9PnthLnNqKGIsayxsKX0sYyk6YS5zaihiLGssbCl9fTskZz1mdW5jdGlvbihhLGIpe2EuSy5sZW5ndGg+MT9hLnY9YS5LLm1hcChmdW5jdGlvbihjKXtyZXR1cm5bY119KS5jb25jYXQoYS52KTpaZyhhLGIpfTsKWmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLks7YS5CLmNsZWFyKCk7dmFyIGQ9W107Zm9yKHZhciBlPTA7ZTxhLnYubGVuZ3RoO2UrKyl7dmFyIGY9YS52W2VdLmZpbHRlcihmdW5jdGlvbihoKXt2YXIgaz1YZyh0aGlzLGgpO3JldHVybiBfLnViKGMsZnVuY3Rpb24obCl7cmV0dXJuIF8uc2IoayxsKT49MH0pfSxhKTt6YihkLGYpfWZvcihlPTA7ZTxjLmxlbmd0aDtlKyspd2IoZCxjW2VdKTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtmb3IoZj0wO2Y8YS52Lmxlbmd0aDtmKyspXy54YihhLnZbZl0sZFtlXSk7YS5JLmRlbGV0ZShkW2VdKX1pZihlPWEuTS5nZXQoUWcuRVJST1IpKWZvcihmPTA7ZjxlLmxlbmd0aDtmKyspe2xldCBoPWVbZl07Zm9yKGxldCBrPTA7azxkLmxlbmd0aDtrKyspaChRZy5FUlJPUixkW2tdLGIpfWZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYoZT1hLkQuZ2V0KGNbZF0pKWUub25FcnJvcihiKTthLksubGVuZ3RoPTA7UmcoYSl9OwphaD1mdW5jdGlvbihhKXtmb3IoO2Eudi5sZW5ndGg7KXtsZXQgYj1hLnYuc2hpZnQoKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIXRoaXMuTGEoYykuaXNMb2FkZWQoKX0sYSk7aWYoYi5sZW5ndGg+MCl7YS5zaihiKTtyZXR1cm59fVJnKGEpfTtQZz1mdW5jdGlvbihhLGIpe2E9YS5NLmdldChiKTtmb3IobGV0IGM9MDthJiZjPGEubGVuZ3RoO2MrKylhW2NdKGIpfTtjaD1mdW5jdGlvbihhLGIsYyxkLGUpe2ZvcihsZXQgZiBvZiBiKWI9YS5MYShmKSwhZS5oYXMoZikmJmQoYikmJihlLmFkZChmKSxjaChhLGIuanx8W10sYyxkLGUpLGMoYikpfTsKZmg9ZnVuY3Rpb24oKXt2YXIgYT17RXU6IkJBVENIIn0sYj1hLmNzc1Jvd0tleXx8IiIsYz1hLktlfHwiIjshYS54SSYmIWImJndpbmRvdyYmd2luZG93Ll9GX2Nzc1Jvd0tleSYmKGI9d2luZG93Ll9GX2Nzc1Jvd0tleSwhYyYmd2luZG93Ll9GX2NvbWJpbmVkU2lnbmF0dXJlJiYoYz13aW5kb3cuX0ZfY29tYmluZWRTaWduYXR1cmUpKTtpZighYS5jc3NSb3dLZXkmJmImJnR5cGVvZiB3aW5kb3cuX0ZfaW5zdGFsbENzcyE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIloiKTt2YXIgZD1hLk5KfHxfLmRoLGU9RWUoImJhc2UtanMiKTtiPW5ldyBkKEdiKEZlKCIiLGUpKSxiLGMsITAsITEpO2M9YS5wTHx8ZSYmZS5oYXNBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik7ZT1hLmxJfHxlJiZlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKTtjJiYoYi5maT1jKTtlJiYoYi5XZz1lKTthLmRpJiYoYi5kaT1hLmRpKTthLmZldGNoUHJpb3JpdHkmJihiLmZldGNoUHJpb3JpdHk9YS5mZXRjaFByaW9yaXR5KTsKdmFyIGY9Xy5WZCgpO2YuWT1iO2YuUnIoITApO18uZWg9YS5FdT09PSJCQVRDSCI/cmY6aD0+UHJvbWlzZS5yZXNvbHZlKGYubG9hZChoKSl9O2loPWZ1bmN0aW9uKGEsYil7Yj1iLmZpbHRlcihjPT4hYS51aChjKSYmIWEuTGEoYykuaXNMb2FkZWQoKSk7Yi5sZW5ndGg+MCYmKGdoKGEsLi4uYiksYS5LLnB1c2goYiksaGgoYSkpfTtqaD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgXy5CZigoYyxkKT0+e3ZhciBlPWEuTGEoYik7ZS5pc0xvYWRlZCgpP2MobnVsbCk6KGdlKGUsKCk9PntjKG51bGwpfSksaGUoZSxmPT57dmFyIGg9YEVycm9yIGxvYWRpbmcgJHtifTogJHtmfWA7ZiBpbnN0YW5jZW9mIHZhLm9iJiZmLnVybCYmKGg9YCR7aH0sIHJlcXVlc3RlZCB1cmw6ICR7Zi51cmwudG9TdHJpbmcoKX1gKTtkKEVycm9yKGgpKX0pKX0pfTsKa2g9ZnVuY3Rpb24oYSxiLGMsZD0oKT0+ITAsZT17fSl7Zm9yKGxldCBmIG9mIGIpYj1hLkxhKGYpLCFlW2ZdJiZkKGIpJiYoZVtmXT0hMCxraChhLGIuanx8W10sYyxkLGUpLGMoYikpfTtsaD1mdW5jdGlvbihhLC4uLmIpe2IuZm9yRWFjaChjPT57ZGVsZXRlIGEuRFtjXX0pfTtnaD1mdW5jdGlvbihhLC4uLmIpe2IuZm9yRWFjaChjPT57YS5EW2NdPSEwfSl9OwpoaD1mdW5jdGlvbihhKXtmb3IoO2EuQjxJbmZpbml0eSYmYS5LLmxlbmd0aD4wOyl7bGV0IGI9YS5LLnNoaWZ0KCkuZmlsdGVyKGM9PiFhLkxhKGMpLmlzTG9hZGVkKCkpO2lmKGIubGVuZ3RoPjApe2EuQisrO2xldCBjPSgpPT57YS5CLS07aGgoYSk7Yz0oKT0+e319O18uSWYoYi5tYXAoZj0+amgoYSxmKSkpLnRoZW4oKCk9PntjKCl9KTtsZXQgZD0wLGU9KCk9PntpZigoYS5qIGluc3RhbmNlb2YgTWFwP2Euai5zaXplPjA6T2JqZWN0LmtleXMoYS5qKS5sZW5ndGg+MCkmJiFhLlkuRWIpdGhyb3cgRXJyb3IoIlciKTtmZyhhLlksYixhLnYse1lkOmEuaixvbkVycm9yOihmLGgpPT57dmFyIGs9bWhbZCsrXTtrIT09dm9pZCAwP3NldFRpbWVvdXQoKCk9PntlKCl9LGspOihsaChhLC4uLmIpLGMoKSxiLmZvckVhY2gobD0+e2w9YS5MYShsKTtpZighbC5pc0xvYWRlZCgpKWwub25FcnJvcihuZXcgdmEub2IodmEub2IuVHlwZS5wayxmLGIsaCkpfSkpfX0pfTtlKCl9fX07Cm5oPWZ1bmN0aW9uKGEpe2Euaj09PS0xJiYoYS5qPWEuZGF0YS5yZWR1Y2UoKGIsYyxkKT0+YisoYz8yKipkOjApLDApKTtyZXR1cm4gYS5qfTtfLm9oPWZ1bmN0aW9uKCl7fTtfLnNoPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBwaHx8YSBpbnN0YW5jZW9mIHFofHxhIGluc3RhbmNlb2YgcmgpcmV0dXJuIGE7aWYodHlwZW9mIGEubmV4dD09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IHBoKCgpPT5hKTtpZih0eXBlb2YgYVtTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iKXJldHVybiBuZXcgcGgoKCk9PmFbU3ltYm9sLml0ZXJhdG9yXSgpKTtpZih0eXBlb2YgYS5iZD09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IHBoKCgpPT5hLmJkKCkpO3Rocm93IEVycm9yKCIkIik7fTtfLnRoPWZ1bmN0aW9uKGEpe18uYWUuY2FsbCh0aGlzKTt0aGlzLkQ9MTt0aGlzLnY9W107dGhpcy5CPTA7dGhpcy5qPVtdO3RoaXMubz17fTt0aGlzLkk9ISFhfTsKdWg9ZnVuY3Rpb24oYSxiLGMpe0dmKGZ1bmN0aW9uKCl7YS5hcHBseShiLGMpfSl9O3ZoPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfTt3aD1mdW5jdGlvbihhKXt0aGlzLmo9YX07eGg9ZnVuY3Rpb24oYSl7dGhpcy5kYXRhPWF9O3loPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09dm9pZCAwfHxhIGluc3RhbmNlb2YgeGg/YTpuZXcgeGgoYSl9O18uemg9ZnVuY3Rpb24oYSl7dGhpcy5qPWF9O0FoPWZ1bmN0aW9uKCl7fTtCaD1mdW5jdGlvbigpe307Q2g9ZnVuY3Rpb24oYSl7dGhpcy5qPWE7dGhpcy5vPW51bGx9O0RoPWZ1bmN0aW9uKGEpe2lmKGEuaj09bnVsbCl0aHJvdyBFcnJvcigiYWEiKTthLmlzQXZhaWxhYmxlKCl8fF8uJGIoRXJyb3IoImFhIikpfTtFaD1mdW5jdGlvbigpe3ZhciBhPW51bGw7dHJ5e2E9Xy51LmxvY2FsU3RvcmFnZXx8bnVsbH1jYXRjaChiKXt9Q2guY2FsbCh0aGlzLGEpfTtGaD1mdW5jdGlvbihhLGIpe3RoaXMubz1hO3RoaXMuaj1iKyI6OiJ9OwpfLkdoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBFaDtyZXR1cm4gYi5pc0F2YWlsYWJsZSgpP2E/bmV3IEZoKGIsYSk6YjpudWxsfTsKSWg9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPWEubGVuZ3RoLGU9MDtmb3IoYj0wO2I8ZDtiKyspe3ZhciBmPWEuY2hhckNvZGVBdChiKTtpZigoZiY2NDUxMik9PT01NTI5NiYmYisxPGQpe3ZhciBoPWEuY2hhckNvZGVBdChiKzEpOyhoJjY0NTEyKT09PTU2MzIwJiYoZj02NTUzNisoZi01NTI5Njw8MTApKyhoLTU2MzIwKSxiKyspfWUrPWY8MTI4PzE6ZjwyMDQ4PzI6Zjw2NTUzNj8zOjR9dmFyIGs9bmV3IEhoLnRmKGUpO2ZvcihiPWM9MDtjPGU7YisrKWY9YS5jaGFyQ29kZUF0KGIpLChmJjY0NTEyKT09PTU1Mjk2JiZiKzE8ZCYmKGg9YS5jaGFyQ29kZUF0KGIrMSksKGgmNjQ1MTIpPT09NTYzMjAmJihmPTY1NTM2KyhmLTU1Mjk2PDwxMCkrKGgtNTYzMjApLGIrKykpLGY8MTI4P2tbYysrXT1mOihmPDIwNDg/a1tjKytdPTE5MnxmPj4+NjooZjw2NTUzNj9rW2MrK109MjI0fGY+Pj4xMjooa1tjKytdPTI0MHxmPj4+MTgsa1tjKytdPTEyOHxmPj4+MTImNjMpLGtbYysrXT0xMjh8Zj4+Pgo2JjYzKSxrW2MrK109MTI4fGYmNjMpO3JldHVybiBrfTtKaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5sZW5ndGg7LS1iPj0wOylhW2JdPTB9O0toPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5Zcj1hO3RoaXMuVXY9Yjt0aGlzLlR2PWM7dGhpcy54dj1kO3RoaXMuRnk9ZTt0aGlzLmVxPWEmJmEubGVuZ3RofTtMaD1mdW5jdGlvbihhLGIpe3RoaXMuRXA9YTt0aGlzLmxnPTA7dGhpcy56ZT1ifTtNaD1mdW5jdGlvbihhLGIpe2EuT2FbYS5wZW5kaW5nKytdPWImMjU1O2EuT2FbYS5wZW5kaW5nKytdPWI+Pj44JjI1NX07Tmg9ZnVuY3Rpb24oYSxiLGMpe2EuaGI+MTYtYz8oYS5GYnw9Yjw8YS5oYiY2NTUzNSxNaChhLGEuRmIpLGEuRmI9Yj4+MTYtYS5oYixhLmhiKz1jLTE2KTooYS5GYnw9Yjw8YS5oYiY2NTUzNSxhLmhiKz1jKX07T2g9ZnVuY3Rpb24oYSxiLGMpe05oKGEsY1tiKjJdLGNbYioyKzFdKX07ClBoPWZ1bmN0aW9uKGEsYil7dmFyIGM9MDtkbyBjfD1hJjEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9O1FoPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1BcnJheSgxNiksZT0wLGY7Zm9yKGY9MTtmPD0xNTtmKyspZFtmXT1lPWUrY1tmLTFdPDwxO2ZvcihjPTA7Yzw9YjtjKyspZT1hW2MqMisxXSxlIT09MCYmKGFbYyoyXT1QaChkW2VdKyssZSkpfTtSaD1mdW5jdGlvbihhKXt2YXIgYjtmb3IoYj0wO2I8Mjg2O2IrKylhLlFiW2IqMl09MDtmb3IoYj0wO2I8MzA7YisrKWEuUGVbYioyXT0wO2ZvcihiPTA7YjwxOTtiKyspYS5xYltiKjJdPTA7YS5RYls1MTJdPTE7YS5DZD1hLkhnPTA7YS5rYz1hLm1hdGNoZXM9MH07U2g9ZnVuY3Rpb24oYSl7YS5oYj44P01oKGEsYS5GYik6YS5oYj4wJiYoYS5PYVthLnBlbmRpbmcrK109YS5GYik7YS5GYj0wO2EuaGI9MH07ClRoPWZ1bmN0aW9uKGEsYixjKXtTaChhKTtNaChhLGMpO01oKGEsfmMpO0hoLndmKGEuT2EsYS53aW5kb3csYixjLGEucGVuZGluZyk7YS5wZW5kaW5nKz1jfTtVaD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iKjIsZj1jKjI7cmV0dXJuIGFbZV08YVtmXXx8YVtlXT09PWFbZl0mJmRbYl08PWRbY119O1ZoPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLnhkOyl7ZTxhLnhkJiZVaChiLGEuaGVhcFtlKzFdLGEuaGVhcFtlXSxhLmRlcHRoKSYmZSsrO2lmKFVoKGIsZCxhLmhlYXBbZV0sYS5kZXB0aCkpYnJlYWs7YS5oZWFwW2NdPWEuaGVhcFtlXTtjPWU7ZTw8PTF9YS5oZWFwW2NdPWR9OwpjaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9MDtpZihhLmtjIT09MCl7ZG97dmFyIGU9YS5PYVthLllnK2QqMl08PDh8YS5PYVthLllnK2QqMisxXTt2YXIgZj1hLk9hW2Eua20rZF07ZCsrO2lmKGU9PT0wKU9oKGEsZixiKTtlbHNle3ZhciBoPVdoW2ZdO09oKGEsaCsyNTYrMSxiKTt2YXIgaz1YaFtoXTtrIT09MCYmKGYtPVloW2hdLE5oKGEsZixrKSk7ZS0tO2g9ZTwyNTY/WmhbZV06WmhbMjU2KyhlPj4+NyldO09oKGEsaCxjKTtrPSRoW2hdO2shPT0wJiYoZS09YmlbaF0sTmgoYSxlLGspKX19d2hpbGUoZDxhLmtjKX1PaChhLDI1NixiKX07CmRpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5FcCxkPWIuemUuWXIsZT1iLnplLmVxLGY9Yi56ZS54dixoLGs9LTE7YS54ZD0wO2EuWGY9NTczO2ZvcihoPTA7aDxmO2grKyljW2gqMl0hPT0wPyhhLmhlYXBbKythLnhkXT1rPWgsYS5kZXB0aFtoXT0wKTpjW2gqMisxXT0wO2Zvcig7YS54ZDwyOyl7dmFyIGw9YS5oZWFwWysrYS54ZF09azwyPysrazowO2NbbCoyXT0xO2EuZGVwdGhbbF09MDthLkNkLS07ZSYmKGEuSGctPWRbbCoyKzFdKX1iLmxnPWs7Zm9yKGg9YS54ZD4+MTtoPj0xO2gtLSlWaChhLGMsaCk7bD1mO2RvIGg9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS54ZC0tXSxWaChhLGMsMSksZD1hLmhlYXBbMV0sYS5oZWFwWy0tYS5YZl09aCxhLmhlYXBbLS1hLlhmXT1kLGNbbCoyXT1jW2gqMl0rY1tkKjJdLGEuZGVwdGhbbF09KGEuZGVwdGhbaF0+PWEuZGVwdGhbZF0/YS5kZXB0aFtoXTphLmRlcHRoW2RdKSsxLGNbaCoyKzFdPWNbZCoyKzFdPWwsYS5oZWFwWzFdPWwrKywKVmgoYSxjLDEpO3doaWxlKGEueGQ+PTIpO2EuaGVhcFstLWEuWGZdPWEuaGVhcFsxXTtoPWIuRXA7bD1iLmxnO2Q9Yi56ZS5ZcjtlPWIuemUuZXE7Zj1iLnplLlV2O3ZhciBtPWIuemUuVHYsbj1iLnplLkZ5LHAscj0wO2ZvcihwPTA7cDw9MTU7cCsrKWEua2RbcF09MDtoW2EuaGVhcFthLlhmXSoyKzFdPTA7Zm9yKGI9YS5YZisxO2I8NTczO2IrKyl7dmFyIHQ9YS5oZWFwW2JdO3A9aFtoW3QqMisxXSoyKzFdKzE7cD5uJiYocD1uLHIrKyk7aFt0KjIrMV09cDtpZighKHQ+bCkpe2Eua2RbcF0rKzt2YXIgdj0wO3Q+PW0mJih2PWZbdC1tXSk7dmFyIHo9aFt0KjJdO2EuQ2QrPXoqKHArdik7ZSYmKGEuSGcrPXoqKGRbdCoyKzFdK3YpKX19aWYociE9PTApe2Rve2ZvcihwPW4tMTthLmtkW3BdPT09MDspcC0tO2Eua2RbcF0tLTthLmtkW3ArMV0rPTI7YS5rZFtuXS0tO3ItPTJ9d2hpbGUocj4wKTtmb3IocD1uO3AhPT0wO3AtLSlmb3IodD1hLmtkW3BdO3QhPT0wOylkPWEuaGVhcFstLWJdLApkPmx8fChoW2QqMisxXSE9PXAmJihhLkNkKz0ocC1oW2QqMisxXSkqaFtkKjJdLGhbZCoyKzFdPXApLHQtLSl9UWgoYyxrLGEua2QpfTtlaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0tMSxmPWJbMV0saD0wLGs9NyxsPTQ7Zj09PTAmJihrPTEzOCxsPTMpO2JbKGMrMSkqMisxXT02NTUzNTtmb3IoZD0wO2Q8PWM7ZCsrKXt2YXIgbT1mO2Y9YlsoZCsxKSoyKzFdOysraDxrJiZtPT09Znx8KGg8bD9hLnFiW20qMl0rPWg6bSE9PTA/KG0hPT1lJiZhLnFiW20qMl0rKyxhLnFiWzMyXSsrKTpoPD0xMD9hLnFiWzM0XSsrOmEucWJbMzZdKyssaD0wLGU9bSxmPT09MD8oaz0xMzgsbD0zKTptPT09Zj8oaz02LGw9Myk6KGs9NyxsPTQpKX19OwpmaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0tMSxmPWJbMV0saD0wLGs9NyxsPTQ7Zj09PTAmJihrPTEzOCxsPTMpO2ZvcihkPTA7ZDw9YztkKyspe3ZhciBtPWY7Zj1iWyhkKzEpKjIrMV07aWYoISgrK2g8ayYmbT09PWYpKXtpZihoPGwpe2RvIE9oKGEsbSxhLnFiKTt3aGlsZSgtLWghPT0wKX1lbHNlIG0hPT0wPyhtIT09ZSYmKE9oKGEsbSxhLnFiKSxoLS0pLE9oKGEsMTYsYS5xYiksTmgoYSxoLTMsMikpOmg8PTEwPyhPaChhLDE3LGEucWIpLE5oKGEsaC0zLDMpKTooT2goYSwxOCxhLnFiKSxOaChhLGgtMTEsNykpO2g9MDtlPW07Zj09PTA/KGs9MTM4LGw9Myk6bT09PWY/KGs9NixsPTMpOihrPTcsbD00KX19fTsKZ2k9ZnVuY3Rpb24oYSl7dmFyIGI9NDA5MzYyNDQ0NyxjO2ZvcihjPTA7Yzw9MzE7YysrLGI+Pj49MSlpZihiJjEmJmEuUWJbYyoyXSE9PTApcmV0dXJuIDA7aWYoYS5RYlsxOF0hPT0wfHxhLlFiWzIwXSE9PTB8fGEuUWJbMjZdIT09MClyZXR1cm4gMTtmb3IoYz0zMjtjPDI1NjtjKyspaWYoYS5RYltjKjJdIT09MClyZXR1cm4gMTtyZXR1cm4gMH07aGk9ZnVuY3Rpb24oYSxiLGMpe2EuT2FbYS5ZZythLmtjKjJdPWI+Pj44JjI1NTthLk9hW2EuWWcrYS5rYyoyKzFdPWImMjU1O2EuT2FbYS5rbSthLmtjXT1jJjI1NTthLmtjKys7Yj09PTA/YS5RYltjKjJdKys6KGEubWF0Y2hlcysrLGItLSxhLlFiWyhXaFtjXSsyNTYrMSkqMl0rKyxhLlBlWyhiPDI1Nj9aaFtiXTpaaFsyNTYrKGI+Pj43KV0pKjJdKyspO3JldHVybiBhLmtjPT09YS5BaC0xfTtqaT1mdW5jdGlvbihhLGIpe2EubXNnPWlpW2JdO3JldHVybiBifTsKa2k9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfTtsaT1mdW5jdGlvbihhKXt2YXIgYj1hLnN0YXRlLGM9Yi5wZW5kaW5nO2M+YS56YSYmKGM9YS56YSk7YyE9PTAmJihIaC53ZihhLm91dHB1dCxiLk9hLGIuSmgsYyxhLnFnKSxhLnFnKz1jLGIuSmgrPWMsYS5Fbis9YyxhLnphLT1jLGIucGVuZGluZy09YyxiLnBlbmRpbmc9PT0wJiYoYi5KaD0wKSl9OwpwaT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuVWI+PTA/YS5VYjotMSxkPWEuVi1hLlViLGU9MDtpZihhLmxldmVsPjApe2Eud2EuaWw9PT0yJiYoYS53YS5pbD1naShhKSk7ZGkoYSxhLnBqKTtkaShhLGEuSWkpO2VpKGEsYS5RYixhLnBqLmxnKTtlaShhLGEuUGUsYS5JaS5sZyk7ZGkoYSxhLlRvKTtmb3IoZT0xODtlPj0zJiZhLnFiW21pW2VdKjIrMV09PT0wO2UtLSk7YS5DZCs9MyooZSsxKSs1KzUrNDt2YXIgZj1hLkNkKzMrNz4+PjM7dmFyIGg9YS5IZyszKzc+Pj4zO2g8PWYmJihmPWgpfWVsc2UgZj1oPWQrNTtpZihkKzQ8PWYmJmMhPT0tMSlOaChhLGI/MTowLDMpLFRoKGEsYyxkKTtlbHNlIGlmKGEuc3RyYXRlZ3k9PT00fHxoPT09ZilOaChhLDIrKGI/MTowKSwzKSxjaShhLG5pLG9pKTtlbHNle05oKGEsNCsoYj8xOjApLDMpO2M9YS5wai5sZysxO2Q9YS5JaS5sZysxO2UrPTE7TmgoYSxjLTI1Nyw1KTtOaChhLGQtMSw1KTtOaChhLGUtNCw0KTtmb3IoZj0wO2Y8ZTtmKyspTmgoYSwKYS5xYlttaVtmXSoyKzFdLDMpO2ZpKGEsYS5RYixjLTEpO2ZpKGEsYS5QZSxkLTEpO2NpKGEsYS5RYixhLlBlKX1SaChhKTtiJiZTaChhKTthLlViPWEuVjtsaShhLndhKX07cWk9ZnVuY3Rpb24oYSxiKXthLk9hW2EucGVuZGluZysrXT1ifTtyaT1mdW5jdGlvbihhLGIpe2EuT2FbYS5wZW5kaW5nKytdPWI+Pj44JjI1NTthLk9hW2EucGVuZGluZysrXT1iJjI1NX07CnNpPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5OcSxkPWEuVixlPWEuWWIsZj1hLlNxLGg9YS5WPmEuQmItMjYyP2EuVi0oYS5CYi0yNjIpOjAsaz1hLndpbmRvdyxsPWEuQmUsbT1hLlVhLG49YS5WKzI1OCxwPWtbZCtlLTFdLHI9a1tkK2VdO2EuWWI+PWEuWXAmJihjPj49Mik7Zj5hLmRhJiYoZj1hLmRhKTtkb3t2YXIgdD1iO2lmKGtbdCtlXT09PXImJmtbdCtlLTFdPT09cCYma1t0XT09PWtbZF0mJmtbKyt0XT09PWtbZCsxXSl7ZCs9Mjtmb3IodCsrO2tbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZrWysrZF09PT1rWysrdF0mJmtbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZrWysrZF09PT1rWysrdF0mJmtbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZkPG47KTt0PTI1OC0obi1kKTtkPW4tMjU4O2lmKHQ+ZSl7YS5rZz1iO2U9dDtpZih0Pj1mKWJyZWFrO3A9a1tkK2UtMV07cj1rW2QrZV19fX13aGlsZSgoYj1tW2ImbF0pPmgmJi0tYyE9PTApOwpyZXR1cm4gZTw9YS5kYT9lOmEuZGF9Owp2aT1mdW5jdGlvbihhKXt2YXIgYj1hLkJiLGM7ZG97dmFyIGQ9YS5Lcy1hLmRhLWEuVjtpZihhLlY+PWIrKGItMjYyKSl7SGgud2YoYS53aW5kb3csYS53aW5kb3csYixiLDApO2Eua2ctPWI7YS5WLT1iO2EuVWItPWI7dmFyIGU9Yz1hLmFqO2Rve3ZhciBmPWEuaGVhZFstLWVdO2EuaGVhZFtlXT1mPj1iP2YtYjowfXdoaWxlKC0tYyk7ZT1jPWI7ZG8gZj1hLlVhWy0tZV0sYS5VYVtlXT1mPj1iP2YtYjowO3doaWxlKC0tYyk7ZCs9Yn1pZihhLndhLkRiPT09MClicmVhaztlPWEud2E7Yz1hLndpbmRvdztmPWEuVithLmRhO3ZhciBoPWUuRGI7aD5kJiYoaD1kKTtoPT09MD9jPTA6KGUuRGItPWgsSGgud2YoYyxlLmlucHV0LGUuZmYsaCxmKSxlLnN0YXRlLndyYXA9PT0xP2Uuc2E9dGkoZS5zYSxjLGgsZik6ZS5zdGF0ZS53cmFwPT09MiYmKGUuc2E9dWkoZS5zYSxjLGgsZikpLGUuZmYrPWgsZS5xZis9aCxjPWgpO2EuZGErPWM7aWYoYS5kYSthLnJiPj0zKWZvcihkPWEuVi1hLnJiLGEueGE9CmEud2luZG93W2RdLGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbZCsxXSkmYS52ZDthLnJiJiYhKGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbZCszLTFdKSZhLnZkLGEuVWFbZCZhLkJlXT1hLmhlYWRbYS54YV0sYS5oZWFkW2EueGFdPWQsZCsrLGEucmItLSxhLmRhK2EucmI8Myk7KTt9d2hpbGUoYS5kYTwyNjImJmEud2EuRGIhPT0wKX07CndpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjOzspe2lmKGEuZGE8MjYyKXt2aShhKTtpZihhLmRhPDI2MiYmYj09PTApcmV0dXJuIDE7aWYoYS5kYT09PTApYnJlYWt9Yz0wO2EuZGE+PTMmJihhLnhhPShhLnhhPDxhLndkXmEud2luZG93W2EuViszLTFdKSZhLnZkLGM9YS5VYVthLlYmYS5CZV09YS5oZWFkW2EueGFdLGEuaGVhZFthLnhhXT1hLlYpO2MhPT0wJiZhLlYtYzw9YS5CYi0yNjImJihhLkJhPXNpKGEsYykpO2lmKGEuQmE+PTMpaWYoYz1oaShhLGEuVi1hLmtnLGEuQmEtMyksYS5kYS09YS5CYSxhLkJhPD1hLm9tJiZhLmRhPj0zKXthLkJhLS07ZG8gYS5WKyssYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxhLlVhW2EuViZhLkJlXT1hLmhlYWRbYS54YV0sYS5oZWFkW2EueGFdPWEuVjt3aGlsZSgtLWEuQmEhPT0wKTthLlYrK31lbHNlIGEuVis9YS5CYSxhLkJhPTAsYS54YT1hLndpbmRvd1thLlZdLGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbYS5WKwoxXSkmYS52ZDtlbHNlIGM9aGkoYSwwLGEud2luZG93W2EuVl0pLGEuZGEtLSxhLlYrKztpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9YS5WPDI/YS5WOjI7cmV0dXJuIGI9PT00PyhwaShhLCEwKSxhLndhLnphPT09MD8zOjQpOmEua2MmJihwaShhLCExKSxhLndhLnphPT09MCk/MToyfTsKeGk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZDs7KXtpZihhLmRhPDI2Mil7dmkoYSk7aWYoYS5kYTwyNjImJmI9PT0wKXJldHVybiAxO2lmKGEuZGE9PT0wKWJyZWFrfWM9MDthLmRhPj0zJiYoYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxjPWEuVWFbYS5WJmEuQmVdPWEuaGVhZFthLnhhXSxhLmhlYWRbYS54YV09YS5WKTthLlliPWEuQmE7YS5Bcj1hLmtnO2EuQmE9MjtjIT09MCYmYS5ZYjxhLm9tJiZhLlYtYzw9YS5CYi0yNjImJihhLkJhPXNpKGEsYyksYS5CYTw9NSYmKGEuc3RyYXRlZ3k9PT0xfHxhLkJhPT09MyYmYS5WLWEua2c+NDA5NikmJihhLkJhPTIpKTtpZihhLlliPj0zJiZhLkJhPD1hLlliKXtkPWEuVithLmRhLTM7Yz1oaShhLGEuVi0xLWEuQXIsYS5ZYi0zKTthLmRhLT1hLlliLTE7YS5ZYi09MjtkbysrYS5WPD1kJiYoYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxhLlVhW2EuViZhLkJlXT1hLmhlYWRbYS54YV0sCmEuaGVhZFthLnhhXT1hLlYpO3doaWxlKC0tYS5ZYiE9PTApO2EuY2Y9MDthLkJhPTI7YS5WKys7aWYoYyYmKHBpKGEsITEpLGEud2EuemE9PT0wKSlyZXR1cm4gMX1lbHNlIGlmKGEuY2Ype2lmKChjPWhpKGEsMCxhLndpbmRvd1thLlYtMV0pKSYmcGkoYSwhMSksYS5WKyssYS5kYS0tLGEud2EuemE9PT0wKXJldHVybiAxfWVsc2UgYS5jZj0xLGEuVisrLGEuZGEtLX1hLmNmJiYoaGkoYSwwLGEud2luZG93W2EuVi0xXSksYS5jZj0wKTthLnJiPWEuVjwyP2EuVjoyO3JldHVybiBiPT09ND8ocGkoYSwhMCksYS53YS56YT09PTA/Mzo0KTphLmtjJiYocGkoYSwhMSksYS53YS56YT09PTApPzE6Mn07CnlpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQsZSxmPWEud2luZG93Ozspe2lmKGEuZGE8PTI1OCl7dmkoYSk7aWYoYS5kYTw9MjU4JiZiPT09MClyZXR1cm4gMTtpZihhLmRhPT09MClicmVha31hLkJhPTA7aWYoYS5kYT49MyYmYS5WPjAmJihkPWEuVi0xLGM9ZltkXSxjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdKSl7Zm9yKGU9YS5WKzI1ODtjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZkPGU7KTthLkJhPTI1OC0oZS1kKTthLkJhPmEuZGEmJihhLkJhPWEuZGEpfWEuQmE+PTM/KGM9aGkoYSwxLGEuQmEtMyksYS5kYS09YS5CYSxhLlYrPWEuQmEsYS5CYT0wKTooYz1oaShhLDAsYS53aW5kb3dbYS5WXSksYS5kYS0tLGEuVisrKTtpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9MDtyZXR1cm4gYj09PTQ/KHBpKGEsCiEwKSxhLndhLnphPT09MD8zOjQpOmEua2MmJihwaShhLCExKSxhLndhLnphPT09MCk/MToyfTt6aT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYzs7KXtpZihhLmRhPT09MCYmKHZpKGEpLGEuZGE9PT0wKSl7aWYoYj09PTApcmV0dXJuIDE7YnJlYWt9YS5CYT0wO2M9aGkoYSwwLGEud2luZG93W2EuVl0pO2EuZGEtLTthLlYrKztpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9MDtyZXR1cm4gYj09PTQ/KHBpKGEsITApLGEud2EuemE9PT0wPzM6NCk6YS5rYyYmKHBpKGEsITEpLGEud2EuemE9PT0wKT8xOjJ9O0FpPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy50dz1hO3RoaXMuRXk9Yjt0aGlzLld5PWM7dGhpcy5EeT1kO3RoaXMua3c9ZX07CkJpPWZ1bmN0aW9uKCl7dGhpcy53YT1udWxsO3RoaXMuc3RhdHVzPTA7dGhpcy5PYT1udWxsO3RoaXMud3JhcD10aGlzLnBlbmRpbmc9dGhpcy5KaD10aGlzLm5jPTA7dGhpcy5xYT1udWxsO3RoaXMuemM9MDt0aGlzLm1ldGhvZD04O3RoaXMuaWc9LTE7dGhpcy5CZT10aGlzLk5uPXRoaXMuQmI9MDt0aGlzLndpbmRvdz1udWxsO3RoaXMuS3M9MDt0aGlzLmhlYWQ9dGhpcy5VYT1udWxsO3RoaXMuU3E9dGhpcy5ZcD10aGlzLnN0cmF0ZWd5PXRoaXMubGV2ZWw9dGhpcy5vbT10aGlzLk5xPXRoaXMuWWI9dGhpcy5kYT10aGlzLmtnPXRoaXMuVj10aGlzLmNmPXRoaXMuQXI9dGhpcy5CYT10aGlzLlViPXRoaXMud2Q9dGhpcy52ZD10aGlzLkxsPXRoaXMuYWo9dGhpcy54YT0wO3RoaXMuUWI9bmV3IEhoLlljKDExNDYpO3RoaXMuUGU9bmV3IEhoLlljKDEyMik7dGhpcy5xYj1uZXcgSGguWWMoNzgpO2tpKHRoaXMuUWIpO2tpKHRoaXMuUGUpO2tpKHRoaXMucWIpO3RoaXMuVG89dGhpcy5JaT0KdGhpcy5waj1udWxsO3RoaXMua2Q9bmV3IEhoLlljKDE2KTt0aGlzLmhlYXA9bmV3IEhoLlljKDU3Myk7a2kodGhpcy5oZWFwKTt0aGlzLlhmPXRoaXMueGQ9MDt0aGlzLmRlcHRoPW5ldyBIaC5ZYyg1NzMpO2tpKHRoaXMuZGVwdGgpO3RoaXMuaGI9dGhpcy5GYj10aGlzLnJiPXRoaXMubWF0Y2hlcz10aGlzLkhnPXRoaXMuQ2Q9dGhpcy5ZZz10aGlzLmtjPXRoaXMuQWg9dGhpcy5rbT0wfTsKRGk9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWEuc3RhdGV8fGI+NXx8YjwwKXJldHVybiBhP2ppKGEsLTIpOi0yO3ZhciBjPWEuc3RhdGU7aWYoIWEub3V0cHV0fHwhYS5pbnB1dCYmYS5EYiE9PTB8fGMuc3RhdHVzPT09NjY2JiZiIT09NClyZXR1cm4gamkoYSxhLnphPT09MD8tNTotMik7Yy53YT1hO3ZhciBkPWMuaWc7Yy5pZz1iO2lmKGMuc3RhdHVzPT09NDIpaWYoYy53cmFwPT09MilhLnNhPTAscWkoYywzMSkscWkoYywxMzkpLHFpKGMsOCksYy5xYT8ocWkoYywoYy5xYS50ZXh0PzE6MCkrKGMucWEuYmU/MjowKSsoYy5xYS5leHRyYT80OjApKyhjLnFhLm5hbWU/ODowKSsoYy5xYS5jb21tZW50PzE2OjApKSxxaShjLGMucWEudGltZSYyNTUpLHFpKGMsYy5xYS50aW1lPj44JjI1NSkscWkoYyxjLnFhLnRpbWU+PjE2JjI1NSkscWkoYyxjLnFhLnRpbWU+PjI0JjI1NSkscWkoYyxjLmxldmVsPT09OT8yOmMuc3RyYXRlZ3k+PTJ8fGMubGV2ZWw8Mj80OjApLHFpKGMsYy5xYS5vcyYyNTUpLApjLnFhLmV4dHJhJiZjLnFhLmV4dHJhLmxlbmd0aCYmKHFpKGMsYy5xYS5leHRyYS5sZW5ndGgmMjU1KSxxaShjLGMucWEuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGMucWEuYmUmJihhLnNhPXVpKGEuc2EsYy5PYSxjLnBlbmRpbmcsMCkpLGMuemM9MCxjLnN0YXR1cz02OSk6KHFpKGMsMCkscWkoYywwKSxxaShjLDApLHFpKGMsMCkscWkoYywwKSxxaShjLGMubGV2ZWw9PT05PzI6Yy5zdHJhdGVneT49Mnx8Yy5sZXZlbDwyPzQ6MCkscWkoYywzKSxjLnN0YXR1cz0xMTMpO2Vsc2V7dmFyIGU9OCsoYy5Obi04PDw0KTw8ODtlfD0oYy5zdHJhdGVneT49Mnx8Yy5sZXZlbDwyPzA6Yy5sZXZlbDw2PzE6Yy5sZXZlbD09PTY/MjozKTw8NjtjLlYhPT0wJiYoZXw9MzIpO2Muc3RhdHVzPTExMztyaShjLGUrKDMxLWUlMzEpKTtjLlYhPT0wJiYocmkoYyxhLnNhPj4+MTYpLHJpKGMsYS5zYSY2NTUzNSkpO2Euc2E9MX1pZihjLnN0YXR1cz09PTY5KWlmKGMucWEuZXh0cmEpe2ZvcihlPWMucGVuZGluZztjLnpjPAooYy5xYS5leHRyYS5sZW5ndGgmNjU1MzUpJiYoYy5wZW5kaW5nIT09Yy5uY3x8KGMucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpLGxpKGEpLGU9Yy5wZW5kaW5nLGMucGVuZGluZyE9PWMubmMpKTspcWkoYyxjLnFhLmV4dHJhW2MuemNdJjI1NSksYy56YysrO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2MuemM9PT1jLnFhLmV4dHJhLmxlbmd0aCYmKGMuemM9MCxjLnN0YXR1cz03Myl9ZWxzZSBjLnN0YXR1cz03MztpZihjLnN0YXR1cz09PTczKWlmKGMucWEubmFtZSl7ZT1jLnBlbmRpbmc7ZG97aWYoYy5wZW5kaW5nPT09Yy5uYyYmKGMucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpLGxpKGEpLGU9Yy5wZW5kaW5nLGMucGVuZGluZz09PWMubmMpKXt2YXIgZj0xO2JyZWFrfWY9Yy56YzxjLnFhLm5hbWUubGVuZ3RoP2MucWEubmFtZS5jaGFyQ29kZUF0KGMuemMrKykmCjI1NTowO3FpKGMsZil9d2hpbGUoZiE9PTApO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2Y9PT0wJiYoYy56Yz0wLGMuc3RhdHVzPTkxKX1lbHNlIGMuc3RhdHVzPTkxO2lmKGMuc3RhdHVzPT09OTEpaWYoYy5xYS5jb21tZW50KXtlPWMucGVuZGluZztkb3tpZihjLnBlbmRpbmc9PT1jLm5jJiYoYy5xYS5iZSYmYy5wZW5kaW5nPmUmJihhLnNhPXVpKGEuc2EsYy5PYSxjLnBlbmRpbmctZSxlKSksbGkoYSksZT1jLnBlbmRpbmcsYy5wZW5kaW5nPT09Yy5uYykpe2Y9MTticmVha31mPWMuemM8Yy5xYS5jb21tZW50Lmxlbmd0aD9jLnFhLmNvbW1lbnQuY2hhckNvZGVBdChjLnpjKyspJjI1NTowO3FpKGMsZil9d2hpbGUoZiE9PTApO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2Y9PT0wJiYoYy5zdGF0dXM9MTAzKX1lbHNlIGMuc3RhdHVzPTEwMztjLnN0YXR1cz09PTEwMyYmCihjLnFhLmJlPyhjLnBlbmRpbmcrMj5jLm5jJiZsaShhKSxjLnBlbmRpbmcrMjw9Yy5uYyYmKHFpKGMsYS5zYSYyNTUpLHFpKGMsYS5zYT4+OCYyNTUpLGEuc2E9MCxjLnN0YXR1cz0xMTMpKTpjLnN0YXR1cz0xMTMpO2lmKGMucGVuZGluZyE9PTApe2lmKGxpKGEpLGEuemE9PT0wKXJldHVybiBjLmlnPS0xLDB9ZWxzZSBpZihhLkRiPT09MCYmKGI8PDEpLShiPjQ/OTowKTw9KGQ8PDEpLShkPjQ/OTowKSYmYiE9PTQpcmV0dXJuIGppKGEsLTUpO2lmKGMuc3RhdHVzPT09NjY2JiZhLkRiIT09MClyZXR1cm4gamkoYSwtNSk7aWYoYS5EYiE9PTB8fGMuZGEhPT0wfHxiIT09MCYmYy5zdGF0dXMhPT02NjYpe2Q9Yy5zdHJhdGVneT09PTI/emkoYyxiKTpjLnN0cmF0ZWd5PT09Mz95aShjLGIpOkNpW2MubGV2ZWxdLmt3KGMsYik7aWYoZD09PTN8fGQ9PT00KWMuc3RhdHVzPTY2NjtpZihkPT09MXx8ZD09PTMpcmV0dXJuIGEuemE9PT0wJiYoYy5pZz0tMSksMDtpZihkPT09MiYmKGI9PT0xPwooTmgoYywyLDMpLE9oKGMsMjU2LG5pKSxjLmhiPT09MTY/KE1oKGMsYy5GYiksYy5GYj0wLGMuaGI9MCk6Yy5oYj49OCYmKGMuT2FbYy5wZW5kaW5nKytdPWMuRmImMjU1LGMuRmI+Pj04LGMuaGItPTgpKTpiIT09NSYmKE5oKGMsMCwzKSxUaChjLDAsMCksYj09PTMmJihraShjLmhlYWQpLGMuZGE9PT0wJiYoYy5WPTAsYy5VYj0wLGMucmI9MCkpKSxsaShhKSxhLnphPT09MCkpcmV0dXJuIGMuaWc9LTEsMH1pZihiIT09NClyZXR1cm4gMDtpZihjLndyYXA8PTApcmV0dXJuIDE7Yy53cmFwPT09Mj8ocWkoYyxhLnNhJjI1NSkscWkoYyxhLnNhPj44JjI1NSkscWkoYyxhLnNhPj4xNiYyNTUpLHFpKGMsYS5zYT4+MjQmMjU1KSxxaShjLGEucWYmMjU1KSxxaShjLGEucWY+PjgmMjU1KSxxaShjLGEucWY+PjE2JjI1NSkscWkoYyxhLnFmPj4yNCYyNTUpKToocmkoYyxhLnNhPj4+MTYpLHJpKGMsYS5zYSY2NTUzNSkpO2xpKGEpO2Mud3JhcD4wJiYoYy53cmFwPS1jLndyYXApO3JldHVybiBjLnBlbmRpbmchPT0KMD8wOjF9OwpFaT1mdW5jdGlvbihhKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFaSkpcmV0dXJuIG5ldyBFaShhKTthPXRoaXMub3B0aW9ucz1IaC5hc3NpZ24oe2xldmVsOi0xLG1ldGhvZDo4LGNodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6MCx0bzoiIn0sYXx8e30pO2EucmF3JiZhLndpbmRvd0JpdHM+MD9hLndpbmRvd0JpdHM9LWEud2luZG93Qml0czphLmd6aXAmJmEud2luZG93Qml0cz4wJiZhLndpbmRvd0JpdHM8MTYmJihhLndpbmRvd0JpdHMrPTE2KTt0aGlzLmVycj0wO3RoaXMubXNnPSIiO3RoaXMuZW5kZWQ9ITE7dGhpcy5jaHVua3M9W107dGhpcy53YT1uZXcgRmk7dGhpcy53YS56YT0wO3ZhciBiPXRoaXMud2E7dmFyIGM9YS5sZXZlbCxkPWEubWV0aG9kLGU9YS53aW5kb3dCaXRzLGY9YS5tZW1MZXZlbCxoPWEuc3RyYXRlZ3k7aWYoYil7dmFyIGs9MTtjPT09LTEmJihjPTYpO2U8MD8oaz0wLGU9LWUpOmU+MTUmJihrPTIsZS09MTYpO2lmKGY8CjF8fGY+OXx8ZCE9PTh8fGU8OHx8ZT4xNXx8YzwwfHxjPjl8fGg8MHx8aD40KWI9amkoYiwtMik7ZWxzZXtlPT09OCYmKGU9OSk7dmFyIGw9bmV3IEJpO2Iuc3RhdGU9bDtsLndhPWI7bC53cmFwPWs7bC5xYT1udWxsO2wuTm49ZTtsLkJiPTE8PGwuTm47bC5CZT1sLkJiLTE7bC5MbD1mKzc7bC5haj0xPDxsLkxsO2wudmQ9bC5hai0xO2wud2Q9fn4oKGwuTGwrMy0xKS8zKTtsLndpbmRvdz1uZXcgSGgudGYobC5CYioyKTtsLmhlYWQ9bmV3IEhoLlljKGwuYWopO2wuVWE9bmV3IEhoLlljKGwuQmIpO2wuQWg9MTw8Zis2O2wubmM9bC5BaCo0O2wuT2E9bmV3IEhoLnRmKGwubmMpO2wuWWc9bC5BaDtsLmttPTMqbC5BaDtsLmxldmVsPWM7bC5zdHJhdGVneT1oO2wubWV0aG9kPWQ7aWYoYiYmYi5zdGF0ZSl7Yi5xZj1iLkVuPTA7Yi5pbD0yO2M9Yi5zdGF0ZTtjLnBlbmRpbmc9MDtjLkpoPTA7Yy53cmFwPDAmJihjLndyYXA9LWMud3JhcCk7Yy5zdGF0dXM9Yy53cmFwPzQyOjExMztiLnNhPQpjLndyYXA9PT0yPzA6MTtjLmlnPTA7aWYoIUdpKXtkPUFycmF5KDE2KTtmb3IoZj1oPTA7ZjwyODtmKyspZm9yKFloW2ZdPWgsZT0wO2U8MTw8WGhbZl07ZSsrKVdoW2grK109ZjtXaFtoLTFdPWY7Zm9yKGY9aD0wO2Y8MTY7ZisrKWZvcihiaVtmXT1oLGU9MDtlPDE8PCRoW2ZdO2UrKylaaFtoKytdPWY7Zm9yKGg+Pj03O2Y8MzA7ZisrKWZvcihiaVtmXT1oPDw3LGU9MDtlPDE8PCRoW2ZdLTc7ZSsrKVpoWzI1NitoKytdPWY7Zm9yKGU9MDtlPD0xNTtlKyspZFtlXT0wO2ZvcihlPTA7ZTw9MTQzOyluaVtlKjIrMV09OCxlKyssZFs4XSsrO2Zvcig7ZTw9MjU1OyluaVtlKjIrMV09OSxlKyssZFs5XSsrO2Zvcig7ZTw9Mjc5OyluaVtlKjIrMV09NyxlKyssZFs3XSsrO2Zvcig7ZTw9Mjg3OyluaVtlKjIrMV09OCxlKyssZFs4XSsrO1FoKG5pLDI4NyxkKTtmb3IoZT0wO2U8MzA7ZSsrKW9pW2UqMisxXT01LG9pW2UqMl09UGgoZSw1KTtIaT1uZXcgS2gobmksWGgsMjU3LDI4NiwxNSk7SWk9Cm5ldyBLaChvaSwkaCwwLDMwLDE1KTtKaT1uZXcgS2goW10sS2ksMCwxOSw3KTtHaT0hMH1jLnBqPW5ldyBMaChjLlFiLEhpKTtjLklpPW5ldyBMaChjLlBlLElpKTtjLlRvPW5ldyBMaChjLnFiLEppKTtjLkZiPTA7Yy5oYj0wO1JoKGMpO2M9MH1lbHNlIGM9amkoYiwtMik7Yz09PTAmJihiPWIuc3RhdGUsYi5Lcz0yKmIuQmIsa2koYi5oZWFkKSxiLm9tPUNpW2IubGV2ZWxdLkV5LGIuWXA9Q2lbYi5sZXZlbF0udHcsYi5TcT1DaVtiLmxldmVsXS5XeSxiLk5xPUNpW2IubGV2ZWxdLkR5LGIuVj0wLGIuVWI9MCxiLmRhPTAsYi5yYj0wLGIuQmE9Yi5ZYj0yLGIuY2Y9MCxiLnhhPTApO2I9Y319ZWxzZSBiPS0yO2lmKGIhPT0wKXRocm93IEVycm9yKGlpW2JdKTthLmhlYWRlciYmKGI9dGhpcy53YSkmJmIuc3RhdGUmJmIuc3RhdGUud3JhcD09PTImJihiLnN0YXRlLnFhPWEuaGVhZGVyKTtpZihhLmRpY3Rpb25hcnkpe3ZhciBtO3R5cGVvZiBhLmRpY3Rpb25hcnk9PT0ic3RyaW5nIj9tPQpJaChhLmRpY3Rpb25hcnkpOkxpLmNhbGwoYS5kaWN0aW9uYXJ5KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/bT1uZXcgVWludDhBcnJheShhLmRpY3Rpb25hcnkpOm09YS5kaWN0aW9uYXJ5O2E9dGhpcy53YTtmPW07aD1mLmxlbmd0aDtpZihhJiZhLnN0YXRlKWlmKG09YS5zdGF0ZSxiPW0ud3JhcCxiPT09Mnx8Yj09PTEmJm0uc3RhdHVzIT09NDJ8fG0uZGEpYj0tMjtlbHNle2I9PT0xJiYoYS5zYT10aShhLnNhLGYsaCwwKSk7bS53cmFwPTA7aD49bS5CYiYmKGI9PT0wJiYoa2kobS5oZWFkKSxtLlY9MCxtLlViPTAsbS5yYj0wKSxjPW5ldyBIaC50ZihtLkJiKSxIaC53ZihjLGYsaC1tLkJiLG0uQmIsMCksZj1jLGg9bS5CYik7Yz1hLkRiO2Q9YS5mZjtlPWEuaW5wdXQ7YS5EYj1oO2EuZmY9MDthLmlucHV0PWY7Zm9yKHZpKG0pO20uZGE+PTM7KXtmPW0uVjtoPW0uZGEtMjtkbyBtLnhhPShtLnhhPDxtLndkXm0ud2luZG93W2YrMy0xXSkmbS52ZCxtLlVhW2YmbS5CZV09bS5oZWFkW20ueGFdLAptLmhlYWRbbS54YV09ZixmKys7d2hpbGUoLS1oKTttLlY9ZjttLmRhPTI7dmkobSl9bS5WKz1tLmRhO20uVWI9bS5WO20ucmI9bS5kYTttLmRhPTA7bS5CYT1tLlliPTI7bS5jZj0wO2EuZmY9ZDthLmlucHV0PWU7YS5EYj1jO20ud3JhcD1iO2I9MH1lbHNlIGI9LTI7aWYoYiE9PTApdGhyb3cgRXJyb3IoaWlbYl0pO3RoaXMuTUg9ITB9fTtNaT1mdW5jdGlvbihhLGIpe2I9PT0wJiYoYS5yZXN1bHQ9YS5vcHRpb25zLnRvPT09InN0cmluZyI/YS5jaHVua3Muam9pbigiIik6SGguTXAoYS5jaHVua3MpKTthLmNodW5rcz1bXTthLmVycj1iO2EubXNnPWEud2EubXNnfTtfLk5pPWZ1bmN0aW9uKGEpe3ZhciBiPWJ8fHt9O2IuZ3ppcD0hMDtiPW5ldyBFaShiKTtiLnB1c2goYSwhMCk7aWYoYi5lcnIpdGhyb3cgYi5tc2d8fGlpW2IuZXJyXTtyZXR1cm4gYi5yZXN1bHR9OwpfLk9pPWZ1bmN0aW9uKGEsYil7Yi5sZW5ndGg+MT9hW2JbMF1dPWJbMV06Yi5sZW5ndGg9PT0xJiZPYmplY3QuYXNzaWduKGEsYlswXSl9O18uUWk9ZnVuY3Rpb24oLi4uYSl7Xy5PaShfLlBpLGFyZ3VtZW50cyl9O18udz1mdW5jdGlvbihhLGIpe3JldHVybiBhIGluIF8uUGk/Xy5QaVthXTpifTtfLlJpPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUGkuRVhQRVJJTUVOVF9GTEFHUztyZXR1cm4gYj9iW2FdOnZvaWQgMH07VGk9ZnVuY3Rpb24oYSl7U2kuZm9yRWFjaChiPT5iKGEpKX07Xy5WaT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmd2luZG93Lnl0ZXJyP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaChiKXtfLlVpKGIpfX06YX07Cl8uVWk9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7Yj9iKGEsIkVSUk9SIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwKTooYj1fLncoIkVSUk9SUyIsW10pLGIucHVzaChbYSwiRVJST1IiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDBdKSxfLlFpKCJFUlJPUlMiLGIpKTtUaShhKX07Xy5XaT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPV8uc2EoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIpO2Y/ZihhLCJXQVJOSU5HIixiLGMsZCx2b2lkIDAsZSk6KGY9Xy53KCJFUlJPUlMiLFtdKSxmLnB1c2goW2EsIldBUk5JTkciLGIsYyxkLHZvaWQgMCxlXSksXy5RaSgiRVJST1JTIixmKSl9OwpZaT1mdW5jdGlvbihhLGIpe2I9YS5zcGxpdChiKTt2YXIgYz17fTtmb3IobGV0IGY9MCxoPWIubGVuZ3RoO2Y8aDtmKyspe2xldCBrPWJbZl0uc3BsaXQoIj0iKTtpZihrLmxlbmd0aD09PTEmJmtbMF18fGsubGVuZ3RoPT09Mil0cnl7bGV0IGw9WGkoa1swXXx8IiIpLG09WGkoa1sxXXx8IiIpO2lmKGwgaW4gYyl7bGV0IG49Y1tsXTtBcnJheS5pc0FycmF5KG4pP3piKG4sbSk6Y1tsXT1bbixtXX1lbHNlIGNbbF09bX1jYXRjaChsKXt2YXIgZD1sLGU9a1swXTtsZXQgbT1TdHJpbmcoWWkpO2QuYXJncz1be2tleTplLHZhbHVlOmtbMV0scXVlcnk6YSxtZXRob2Q6Wmk9PT1tPyJ1bmNoYW5nZWQiOm19XTskaS5oYXNPd25Qcm9wZXJ0eShlKXx8Xy5XaShkKX19cmV0dXJuIGN9Owphaj1mdW5jdGlvbihhKXt2YXIgYj1bXTtvZChhLChjLGQpPT57dmFyIGU9ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSk7Yz1BcnJheS5pc0FycmF5KGMpP2M6W2NdO18udGIoYyxmPT57Zj09IiI/Yi5wdXNoKGUpOmIucHVzaChgJHtlfT0ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZikpfWApfSl9KTtyZXR1cm4gYi5qb2luKCImIil9O18uYmo9ZnVuY3Rpb24oYSl7YS5jaGFyQXQoMCk9PT0iPyImJihhPWEuc3Vic3RyaW5nKDEpKTtyZXR1cm4gWWkoYSwiJiIpfTtkaj1mdW5jdGlvbihhLGIpe3JldHVybiBjaihhLGJ8fHt9LCEwKX07Xy5laj1mdW5jdGlvbihhLGIpe3JldHVybiBjaihhLGJ8fHt9LCExKX07CmNqPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLnNwbGl0KCIjIiwyKTthPWRbMF07ZD1kLmxlbmd0aD4xPyIjIitkWzFdOiIiO3ZhciBlPWEuc3BsaXQoIj8iLDIpO2E9ZVswXTtlPV8uYmooZVsxXXx8IiIpO2ZvcihsZXQgZiBpbiBiKSFjJiZlIT09bnVsbCYmZiBpbiBlfHwoZVtmXT1iW2ZdKTtyZXR1cm4gXy5XYihhLGUpK2R9O18uZmo9ZnVuY3Rpb24oYSl7aWYoIWIpdmFyIGI9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIGM9Xy5NYihhKVsxXXx8bnVsbCxkPV8uUGIoYSk7YyYmZD8oYT1fLk1iKGEpLGI9Xy5NYihiKSxhPWFbM109PWJbM10mJmFbMV09PWJbMV0mJmFbNF09PWJbNF0pOmE9ZD9fLlBiKGIpPT09ZCYmKE51bWJlcihfLk1iKGIpWzRdfHxudWxsKXx8bnVsbCk9PT0oTnVtYmVyKF8uTWIoYSlbNF18fG51bGwpfHxudWxsKTohMDtyZXR1cm4gYX07WGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEubWF0Y2goZ2opP2E6Xy5IYihhKX07Cl8ubGo9ZnVuY3Rpb24oYT1fLnNhKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIpfHwiIil7dmFyIGI9aGosYz1PYmplY3QsZD1jLmFzc2lnbjthOnt0cnl7dmFyIGU9Yi5qLnRvcC5sb2NhdGlvbi5ocmVmfWNhdGNoKEEpe2U9MjticmVhayBhfWU9ZT9lPT09Yi5vLmxvY2F0aW9uLmhyZWY/MDoxOjJ9ZT17ZHQ6aWosZmxhc2g6IjAiLGZybTplfTt0cnl7ZS51X3R6PS0obmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCk7dHJ5e3ZhciBmPWpqLmhpc3RvcnkubGVuZ3RofWNhdGNoKEEpe2Y9MH1lLnVfaGlzPWY7ZS51X2g9amouc2NyZWVuPy5oZWlnaHQ7ZS51X3c9amouc2NyZWVuPy53aWR0aDtlLnVfYWg9amouc2NyZWVuPy5hdmFpbEhlaWdodDtlLnVfYXc9amouc2NyZWVuPy5hdmFpbFdpZHRoO2UudV9jZD1qai5zY3JlZW4/LmNvbG9yRGVwdGh9Y2F0Y2goQSl7fWY9Yi5qO3RyeXt2YXIgaD1mLnNjcmVlblg7dmFyIGs9Zi5zY3JlZW5ZfWNhdGNoKEEpe310cnl7dmFyIGw9Zi5vdXRlcldpZHRoOwp2YXIgbT1mLm91dGVySGVpZ2h0fWNhdGNoKEEpe310cnl7dmFyIG49Zi5pbm5lcldpZHRoO3ZhciBwPWYuaW5uZXJIZWlnaHR9Y2F0Y2goQSl7fXRyeXt2YXIgcj1mLnNjcmVlbkxlZnQ7dmFyIHQ9Zi5zY3JlZW5Ub3B9Y2F0Y2goQSl7fXRyeXtuPWYuaW5uZXJXaWR0aCxwPWYuaW5uZXJIZWlnaHR9Y2F0Y2goQSl7fXRyeXt2YXIgdj1mLnNjcmVlbi5hdmFpbFdpZHRoO3ZhciB6PWYuc2NyZWVuLmF2YWlsVG9wfWNhdGNoKEEpe31oPVtyLHQsaCxrLHYseixsLG0sbixwXTt0cnl7dmFyIEU9Xy55ZChiLmoudG9wfHx3aW5kb3cpLnJvdW5kKCl9Y2F0Y2goQSl7RT1uZXcgXy5uZCgtMTIyNDU5MzMsLTEyMjQ1OTMzKX1sPUU7RT1uZXcga2o7IlNWR0VsZW1lbnQiaW4gXy51JiYiY3JlYXRlRWxlbWVudE5TImluIF8udS5kb2N1bWVudCYmRS5zZXQoMCk7az1tZCgpO2tbImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJdJiZFLnNldCgxKTtrWyJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giXSYmCkUuc2V0KDIpO18udS5jcnlwdG8mJl8udS5jcnlwdG8uc3VidGxlJiZFLnNldCgzKTsiVGV4dERlY29kZXIiaW4gXy51JiYiVGV4dEVuY29kZXIiaW4gXy51JiZFLnNldCg0KTtFPW5oKEUpO2s9bC5oZWlnaHQ7bD1sLndpZHRoO2g9aC5qb2luKCk7Yj1iLm87Yz1kLmNhbGwoYyxlLHtiYzpFLGJpaDprLGJpdzpsLGJyZGltOmgsdmlzOmIucHJlcmVuZGVyaW5nPzM6e3Zpc2libGU6MSxoaWRkZW46MixwcmVyZW5kZXI6MyxwcmV2aWV3OjQsdW5sb2FkZWQ6NSwiIjowfVtiLnZpc2liaWxpdHlTdGF0ZXx8Yi53ZWJraXRWaXNpYmlsaXR5U3RhdGV8fGIubW96VmlzaWJpbGl0eVN0YXRlfHwiIl0/PzAsd2dsOiEhamouV2ViR0xSZW5kZXJpbmdDb250ZXh0fSk7Yy5jYV90eXBlPSJpbWFnZSI7YSYmKGMuYmlkPWEpO3JldHVybiBjfTtfLm1qPWZ1bmN0aW9uKGEsYil7dHlwZW9mIGE9PT0iZnVuY3Rpb24iJiYoYT1fLlZpKGEpKTtyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoYSxiKX07Cm9qPWZ1bmN0aW9uKCl7aWYoIW5qKXJldHVybiBudWxsO3ZhciBhPW5qKCk7cmV0dXJuIm9wZW4iaW4gYT9hOm51bGx9O18ucWo9ZnVuY3Rpb24oYSl7c3dpdGNoKF8ucGooYSkpe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjAzOmNhc2UgMjA0OmNhc2UgMjA1OmNhc2UgMjA2OmNhc2UgMzA0OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtfLnBqPWZ1bmN0aW9uKGEpe3JldHVybiBhJiYic3RhdHVzImluIGE/YS5zdGF0dXM6LTF9O18ueD1mdW5jdGlvbihhLGIpe2E9Xy5yaihhLGIpO3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciJiZhPT09ImZhbHNlIj8hMTohIWF9O18uc2o9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gTnVtYmVyKF8ucmooYSxiKXx8MCl9O18udGo9ZnVuY3Rpb24oYSl7YT1fLnJqKGEpO3JldHVybiBhIT09dm9pZCAwP1N0cmluZyhhKToiIn07Cl8ucmo9ZnVuY3Rpb24oYSxiKXthPV8udygiRVhQRVJJTUVOVF9GTEFHUyIse30pW2FdO3JldHVybiBhIT09dm9pZCAwP2E6Yn07Xy51aj1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Xy53KCJFWFBFUklNRU5UU19GT1JDRURfRkxBR1MiLHt9KTtmb3IodmFyIGMgb2YgT2JqZWN0LmtleXMoYikpYS5wdXNoKHtrZXk6Yyx2YWx1ZTpTdHJpbmcoYltjXSl9KTtjPV8udygiRVhQRVJJTUVOVF9GTEFHUyIse30pO2ZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyhjKSlkLnN0YXJ0c1dpdGgoImZvcmNlXyIpJiZiW2RdPT09dm9pZCAwJiZhLnB1c2goe2tleTpkLHZhbHVlOlN0cmluZyhjW2RdKX0pO3JldHVybiBhfTsKeGo9ZnVuY3Rpb24oYSxiLGM9IkdFVCIsZD0iIixlLGYsaCxrPSExLGwpe3ZhciBtPW9qKCk7aWYoIW0pcmV0dXJuIG51bGw7dmFyIG49KCk9PnsobSYmInJlYWR5U3RhdGUiaW4gbT9tLnJlYWR5U3RhdGU6MCk9PT00JiZiJiZfLlZpKGIpKG0pfTsib25sb2FkZW5kImluIG0/bS5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixuLCExKTptLm9ucmVhZHlzdGF0ZWNoYW5nZT1uO18ueCgiZGVidWdfZm9yd2FyZF93ZWJfcXVlcnlfcGFyYW1ldGVycyIpJiYoYT12aihhKSk7bS5vcGVuKGMsYSwhMCk7ZiYmKG0ucmVzcG9uc2VUeXBlPWYpO2gmJihtLndpdGhDcmVkZW50aWFscz0hMCk7Yz1jPT09IlBPU1QiJiYod2luZG93LkZvcm1EYXRhPT09dm9pZCAwfHwhKGQgaW5zdGFuY2VvZiBGb3JtRGF0YSkpO2lmKGU9d2ooYSxlKSlmb3IobGV0IHAgaW4gZSltLnNldFJlcXVlc3RIZWFkZXIocCxlW3BdKSwiY29udGVudC10eXBlIj09PXAudG9Mb3dlckNhc2UoKSYmKGM9ITEpO2MmJm0uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwKImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2wmJiJvbnByb2dyZXNzImluIG0mJihtLm9ucHJvZ3Jlc3M9KCk9PntsKG0ucmVzcG9uc2VUZXh0KX0pO2lmKGsmJiJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUpe2E9e2V2ZW50U291cmNlRWxpZ2libGU6ITAsdHJpZ2dlckVsaWdpYmxlOiExfTt0cnl7bS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyhhKX1jYXRjaChwKXtfLldpKHApfX1tLnNlbmQoZCk7cmV0dXJuIG19Owp3aj1mdW5jdGlvbihhLGI9e30pe3ZhciBjPV8uZmooYSksZD1fLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpLGU9Xy54KCJ3ZWJfYWpheF9pZ25vcmVfZ2xvYmFsX2hlYWRlcnNfaWZfc2V0Iik7Zm9yKGxldCBrIGluIHlqKXtsZXQgbD1fLncoeWpba10pLG09az09PSJYLUdvb2ctQXV0aFVzZXIifHxrPT09IlgtR29vZy1QYWdlSWQiO2shPT0iWC1Hb29nLVZpc2l0b3ItSWQifHxsfHwobD1fLncoIlZJU0lUT1JfREFUQSIpKTt2YXIgZjtpZighKGY9IWwpKXtpZighKGY9Y3x8KF8uUGIoYSk/ITE6ITApKSl7Zj1hO3ZhciBoO2lmKGg9Xy54KCJhZGRfYXV0aF9oZWFkZXJzX3RvX3JlbWFya2V0aW5nX2dvb2dsZV9kb3RfY29tX3BpbmciKSYmaz09PSJBdXRob3JpemF0aW9uIiYmKGQ9PT0iVFZIVE1MNSJ8fGQ9PT0iVFZIVE1MNV9VTlBMVUdHRUQifHxkPT09IlRWSFRNTDVfU0lNUExZIikpaD1fLlBiKGYpLGg9aCE9PW51bGw/aC5zcGxpdCgiLiIpLnJldmVyc2UoKTpudWxsLGg9aD09PQpudWxsPyExOmhbMV09PT0iZ29vZ2xlIj8hMDpoWzJdPT09Imdvb2dsZSI/aFswXT09PSJhdSImJmhbMV09PT0iY29tIj8hMDpoWzBdPT09InVrIiYmaFsxXT09PSJjbyI/ITA6ITE6ITE7aCYmKGY9Xy5RYihmKXx8IiIsZj1mLnNwbGl0KCIvIiksZj0iLyIrKGYubGVuZ3RoPjE/ZlsxXToiIiksaD1mPT09Ii9wYWdlYWQiKTtmPWg/ITA6ITF9Zj0hZn1mfHxlJiZiW2tdIT09dm9pZCAwfHxkPT09IlRWSFRNTDVfVU5QTFVHR0VEIiYmbXx8KGJba109bCl9IlgtR29vZy1FT00tVmlzaXRvci1JZCJpbiBiJiYiWC1Hb29nLVZpc2l0b3ItSWQiaW4gYiYmZGVsZXRlIGJbIlgtR29vZy1WaXNpdG9yLUlkIl07aWYoY3x8IV8uUGIoYSkpYlsiWC1Zb3VUdWJlLVV0Yy1PZmZzZXQiXT1TdHJpbmcoLShuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSk7aWYoY3x8IV8uUGIoYSkpe2xldCBrO3RyeXtrPShuZXcgSW50bC5EYXRlVGltZUZvcm1hdCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmV9Y2F0Y2h7fWsmJgooYlsiWC1Zb3VUdWJlLVRpbWUtWm9uZSJdPWspfWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLmVuZHNXaXRoKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpfHwhYyYmXy5QYihhKXx8KGJbIlgtWW91VHViZS1BZC1TaWduYWxzIl09YWooXy5saigpKSk7cmV0dXJuIGJ9O0FqPWZ1bmN0aW9uKGEsYil7Yi5tZXRob2Q9IlBPU1QiO2IucG9zdFBhcmFtc3x8KGIucG9zdFBhcmFtcz17fSk7cmV0dXJuIF8uemooYSxiKX07Cl8uemo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmZvcm1hdHx8IkpTT04iO2E9QmooYSxiKTt2YXIgZD1DaihhLGIpLGU9ITEsZj1EaihhLGs9PntpZighZSl7ZT0hMDtoJiZ3aW5kb3cuY2xlYXJUaW1lb3V0KGgpO3ZhciBsPV8ucWooayksbT1udWxsLG49NDAwPD1rLnN0YXR1cyYmay5zdGF0dXM8NTAwLHA9NTAwPD1rLnN0YXR1cyYmay5zdGF0dXM8NjAwO2lmKGx8fG58fHApbT1FaihhLGMsayxiLmNvbnZlcnRUb1NhZmVIdG1sKTtsJiYobD1GaihjLGssbSkpO209bXx8e307bj1iLmNvbnRleHR8fF8udTtsP2Iub25TdWNjZXNzJiZiLm9uU3VjY2Vzcy5jYWxsKG4sayxtKTpiLm9uRXJyb3ImJmIub25FcnJvci5jYWxsKG4sayxtKTtiLm9uRmluaXNoJiZiLm9uRmluaXNoLmNhbGwobixrLG0pfX0sYi5tZXRob2QsZCxiLmhlYWRlcnMsYi5yZXNwb25zZVR5cGUsYi53aXRoQ3JlZGVudGlhbHMsITEsYi5vblByb2dyZXNzKTtkPWIudGltZW91dHx8MDtpZihiLm9uVGltZW91dCYmZD4wKXtsZXQgaz0KYi5vblRpbWVvdXQ7dmFyIGg9Xy5taigoKT0+e2V8fChlPSEwLGYuYWJvcnQoKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLGsuY2FsbChiLmNvbnRleHR8fF8udSxmKSl9LGQpfXJldHVybiBmfTtCaj1mdW5jdGlvbihhLGIpe2IuaW5jbHVkZURvbWFpbiYmKGE9ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSsoZG9jdW1lbnQubG9jYXRpb24ucG9ydD8iOiIrZG9jdW1lbnQubG9jYXRpb24ucG9ydDoiIikrYSk7dmFyIGM9Xy53KCJYU1JGX0ZJRUxEX05BTUUiKTtpZihiPWIudXJsUGFyYW1zKWJbY10mJmRlbGV0ZSBiW2NdLGE9ZGooYSxiKTtyZXR1cm4gYX07CkNqPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy53KCJYU1JGX0ZJRUxEX05BTUUiKSxkPV8udygiWFNSRl9UT0tFTiIpLGU9Yi5wb3N0Qm9keXx8IiIsZj1iLnBvc3RQYXJhbXMsaD1fLncoIlhTUkZfRklFTERfTkFNRSIpLGs7Yi5oZWFkZXJzJiYoaz1iLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdKTtiLmV4Y2x1ZGVYc3JmfHxfLlBiKGEpJiYhYi53aXRoQ3JlZGVudGlhbHMmJl8uUGIoYSkhPT1kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZXx8Yi5tZXRob2QhPT0iUE9TVCJ8fGsmJmshPT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkInx8Yi5wb3N0UGFyYW1zJiZiLnBvc3RQYXJhbXNbaF18fChmfHwoZj17fSksZltjXT1kKTtmJiZ0eXBlb2YgZT09PSJzdHJpbmciJiYoZT1fLmJqKGUpLHNkKGUsZiksZT1iLnBvc3RCb2R5Rm9ybWF0JiZiLnBvc3RCb2R5Rm9ybWF0PT09IkpTT04iP0pTT04uc3RyaW5naWZ5KGUpOl8uVWIoZSkpO2Y9ZXx8ZiYmIV8ucGQoZik7IUdqJiZmJiYKYi5tZXRob2QhPT0iUE9TVCImJihHaj0hMCxfLlVpKEVycm9yKCJjYSIpKSk7cmV0dXJuIGV9O0VqPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW51bGw7c3dpdGNoKGIpe2Nhc2UgIkpTT04iOmxldCBmO3RyeXtmPWMucmVzcG9uc2VUZXh0fWNhdGNoKGgpe3Rocm93IGQ9RXJyb3IoImRhIiksZC5wYXJhbXM9YSxfLldpKGQpLGg7fWE9Yy5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIil8fCIiO2lmKGYmJmEuaW5kZXhPZigianNvbiIpPj0wKXtmLnN1YnN0cmluZygwLDUpPT09IildfSdcbiImJihmPWYuc3Vic3RyaW5nKDUpKTt0cnl7ZT1KU09OLnBhcnNlKGYpfWNhdGNoKGgpe319YnJlYWs7Y2FzZSAiWE1MIjppZihhPShhPWMucmVzcG9uc2VYTUwpP0hqKGEpOm51bGwpZT17fSxfLnRiKGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxoPT57ZVtoLnRhZ05hbWVdPUlqKGgpfSl9ZCYmSmooZSk7cmV0dXJuIGV9OwpKaj1mdW5jdGlvbihhKXtpZihfLkFhKGEpKWZvcihsZXQgYiBpbiBhKWI9PT0iaHRtbF9jb250ZW50Inx8Xy5NYShiLCJfaHRtbCIpP2FbYl09Xy5nYihhW2JdKTpKaihhW2JdKX07Rmo9ZnVuY3Rpb24oYSxiLGMpe2lmKGImJmIuc3RhdHVzPT09MjA0KXJldHVybiEwO3N3aXRjaChhKXtjYXNlICJKU09OIjpyZXR1cm4hIWM7Y2FzZSAiWE1MIjpyZXR1cm4gTnVtYmVyKGMmJmMucmV0dXJuX2NvZGUpPT09MDtjYXNlICJSQVciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuISFjfX07SGo9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/KGE9KCJyZXNwb25zZVhNTCJpbiBhP2EucmVzcG9uc2VYTUw6YSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInJvb3QiKSkmJmEubGVuZ3RoPjA/YVswXTpudWxsOm51bGx9O0lqPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO18udGIoYS5jaGlsZE5vZGVzLGM9PntiKz1jLm5vZGVWYWx1ZX0pO3JldHVybiBifTsKdmo9ZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LmxvY2F0aW9uLnNlYXJjaCxjPV8uUGIoYSk7Xy54KCJkZWJ1Z19oYW5kbGVfcmVsYXRpdmVfdXJsX2Zvcl9xdWVyeV9mb3J3YXJkX2tpbGxzd2l0Y2giKXx8IWMmJl8uZmooYSkmJihjPWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTt2YXIgZD1fLlFiKGEpO2Q9KGM9YyYmKGMuZW5kc1dpdGgoInlvdXR1YmUuY29tIil8fGMuZW5kc1dpdGgoInlvdXR1YmUtbm9jb29raWUuY29tIikpKSYmZCYmZC5zdGFydHNXaXRoKCIvYXBpLyIpO2lmKCFjfHxkKXJldHVybiBhO3ZhciBlPV8uYmooYiksZj17fTtfLnRiKEtqLGg9PntlW2hdJiYoZltoXT1lW2hdKX0pO3JldHVybiBfLmVqKGEsZil9O18uTWo9ZnVuY3Rpb24oYSxiLGMsZD0ieW91dHViZS5jb20iLGU9ITEpe18uTGouc2V0KGEsYix7dmo6YyxwYXRoOiIvIixkb21haW46ZCxzZWN1cmU6ZX0pfTsKXy5Oaj1mdW5jdGlvbihhLGI9Ii8iLGM9InlvdXR1YmUuY29tIil7Xy5Mai5yZW1vdmUoYSxiLGMpfTtfLk9qPWZ1bmN0aW9uKCl7aWYoIV8udS5tYXRjaE1lZGlhKXJldHVybiJXRUJfRElTUExBWV9NT0RFX1VOS05PV04iO3RyeXtyZXR1cm4gXy51Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIjpfLnUubWF0Y2hNZWRpYSgiKGRpc3BsYXktbW9kZTogbWluaW1hbC11aSkiKS5tYXRjaGVzPyJXRUJfRElTUExBWV9NT0RFX01JTklNQUxfVUkiOl8udS5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBmdWxsc2NyZWVuKSIpLm1hdGNoZXM/IldFQl9ESVNQTEFZX01PREVfRlVMTFNDUkVFTiI6Xy51Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGJyb3dzZXIpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn1jYXRjaChhKXtyZXR1cm4iV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn19OwpfLlBqPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9W107IlVTRVJfU0VTU0lPTl9JRCJpbiBfLlBpJiZjLnB1c2goe2tleToidSIsdmFsdWU6Xy53KCJVU0VSX1NFU1NJT05fSUQiKX0pO2lmKGM9Xy5QZChjKSliLkF1dGhvcml6YXRpb249YyxjPWE9YT8uc2Vzc2lvbkluZGV4LGM9PT12b2lkIDAmJihjPU51bWJlcihfLncoIlNFU1NJT05fSU5ERVgiLDApKSxjPWlzTmFOKGMpPzA6YyksXy54KCJ2b2ljZV9zZWFyY2hfYXV0aF9oZWFkZXJfcmVtb3ZhbCIpfHwoYlsiWC1Hb29nLUF1dGhVc2VyIl09Yy50b1N0cmluZygpKSwiSU5ORVJUVUJFX0hPU1RfT1ZFUlJJREUiaW4gXy5QaXx8KGJbIlgtT3JpZ2luIl09d2luZG93LmxvY2F0aW9uLm9yaWdpbiksYT09PXZvaWQgMCYmIkRFTEVHQVRFRF9TRVNTSU9OX0lEImluIF8uUGkmJihiWyJYLUdvb2ctUGFnZUlkIl09Xy53KCJERUxFR0FURURfU0VTU0lPTl9JRCIpKTtyZXR1cm4gYn07ClFqPWZ1bmN0aW9uKCl7dmFyIGE9Xy51Lm5hdmlnYXRvcjtyZXR1cm4gYT9hLmNvbm5lY3Rpb246dm9pZCAwfTtfLlNqPWZ1bmN0aW9uKCl7dmFyIGE9UWooKTtpZihhKXt2YXIgYj1SalthLnR5cGV8fCJ1bmtub3duIl18fCJDT05OX1VOS05PV04iO2E9UmpbYS5lZmZlY3RpdmVUeXBlfHwidW5rbm93biJdfHwiQ09OTl9VTktOT1dOIjtiPT09IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiImJmEhPT0iQ09OTl9VTktOT1dOIiYmKGI9YSk7aWYoYiE9PSJDT05OX1VOS05PV04iKXJldHVybiBiO2lmKGEhPT0iQ09OTl9VTktOT1dOIilyZXR1cm4gYX19O18uVWo9ZnVuY3Rpb24oKXt2YXIgYT1RaigpO2lmKGE/LmVmZmVjdGl2ZVR5cGUpcmV0dXJuIFRqLmhhc093blByb3BlcnR5KGEuZWZmZWN0aXZlVHlwZSk/VGpbYS5lZmZlY3RpdmVUeXBlXToiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV9VTktOT1dOIn07Xy5Xaj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gXy5WaigpLCEwfWNhdGNoKGEpe3JldHVybiExfX07Cl8uVmo9ZnVuY3Rpb24oYT0idW5rbm93biIpe2lmKF8udygiREFUQVNZTkNfSUQiKSE9PXZvaWQgMClyZXR1cm4gXy53KCJEQVRBU1lOQ19JRCIpO3Rocm93IG5ldyBfLlhqKCJEYXRhc3luYyBJRCBub3Qgc2V0IixhKTt9O18uWWo9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5qZi5HYShhLDAsYil9O1pqPWZ1bmN0aW9uKGEsYil7dHJ5e2IoKX1jYXRjaChjKXthLkpiKGMpfX07Yms9ZnVuY3Rpb24oYSl7dmFyIGI9Xy54KCJlbmFibGVfc2NoZWR1bGVyX3NpbXVsYXRlX3JhZiIpO2lmKGEub1s4XS5sZW5ndGgpe2lmKGEuaGEpcmV0dXJuIDQ7aWYoYil7aWYoIWEuaXNIaWRkZW4oKSlyZXR1cm4gYS5aPzM6NX1lbHNlIGlmKGFrKGEpKXJldHVybiAzfWZvcihsZXQgYz01O2M+PWEuQjtjLS0paWYoYS5vW2NdLmxlbmd0aD4wKXJldHVybiBjPjA/Yj9hLmlzSGlkZGVuKCk/MjphLlo/Mzo1OmFrKGEpPzM6MjoxO3JldHVybiAwfTsKY2s9ZnVuY3Rpb24oYSl7YS5nYS5sZW5ndGg9MDtmb3IobGV0IGI9NTtiPj0wO2ItLSlhLm9bYl0ubGVuZ3RoPTA7YS5vWzhdLmxlbmd0aD0wO2Eudj17fTthLnN0b3AoKX07YWs9ZnVuY3Rpb24oYSl7cmV0dXJuIWEuaXNIaWRkZW4oKSYmYS5afTtlaz1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgZGspaWYoYS5vW2JdLmxlbmd0aClyZXR1cm4hMDtyZXR1cm4hMX07CmhrPWZ1bmN0aW9uKGEsYixjKXthLmhhJiZhLkk9PT00JiZhLmp8fGEuc3RvcCgpO2EuRD0hMDtiPV8uRWEoKSsoYnx8YS5NKTtmb3IodmFyIGQ9YS5vWzVdO2QubGVuZ3RoOyl7dmFyIGU9ZC5zaGlmdCgpLGY9YS52W2VdO2RlbGV0ZSBhLnZbZV07aWYoZil7ZT1hO3RyeXtmKGMpfWNhdGNoKGgpe2UuSmIoaCl9fX1mb3IoZD1hLm9bNF07ZC5sZW5ndGg7KWM9ZC5zaGlmdCgpLGY9YS52W2NdLGRlbGV0ZSBhLnZbY10sZiYmWmooYSxmKTtkPWEueWE/MDoxO2Q9YS5CPmQ/YS5COmQ7aWYoIShfLkVhKCk+PWIpKXtkb3thOntjPWE7Zj1kO2ZvcihlPTM7ZT49ZjtlLS0pe2xldCBoPWMub1tlXTtmb3IoO2gubGVuZ3RoOyl7bGV0IGs9aC5zaGlmdCgpLGw9Yy52W2tdO2RlbGV0ZSBjLnZba107aWYobCl7Yz1sO2JyZWFrIGF9fX1jPW51bGx9YyYmWmooYSxjKX13aGlsZShjJiZfLkVhKCk8Yil9YS5EPSExO2ZrKGEpO2EuTT1naztlayhhKSYmYS5zdGFydCgpfTsKaWs9ZnVuY3Rpb24oYSl7YS5zdG9wKCk7YS5EPSEwO2Zvcih2YXIgYj1fLkVhKCksYz1hLm9bOF07Yy5sZW5ndGg7KXtsZXQgZD1jLnNoaWZ0KCksZT1hLnZbZF07ZGVsZXRlIGEudltkXTtlJiZaaihhLGUpfWZrKGEpO2EuRD0hMTtlayhhKSYmYS5zdGFydCgpO2I9Xy5FYSgpLWI7YS5NLT1ifTtmaz1mdW5jdGlvbihhKXtmb3IobGV0IGI9MCxjPWEuZ2EubGVuZ3RoO2I8YztiKyspe2xldCBkPWEuZ2FbYl07YS5vW2QucHJpb3JpdHldLnB1c2goZC5pZCl9YS5nYS5sZW5ndGg9MH07a2s9ZnVuY3Rpb24oKXt2YXIgYT1fLnNhKCJ5dGdsb2JhbC5zY2hlZHVsZXJJbnN0YW5jZUluc3RhbmNlXyIpO2lmKCFhfHxhLmlhKCkpYT1uZXcgamsoXy53KCJzY2hlZHVsZXIiKXx8e30pLF8ucmEoInl0Z2xvYmFsLnNjaGVkdWxlckluc3RhbmNlSW5zdGFuY2VfIixhKTtyZXR1cm4gYX07Cm1rPWZ1bmN0aW9uKCl7bGsoKTt2YXIgYT1fLnNhKCJ5dGdsb2JhbC5zY2hlZHVsZXJJbnN0YW5jZUluc3RhbmNlXyIpO2EmJihfLlpkKGEpLF8ucmEoInl0Z2xvYmFsLnNjaGVkdWxlckluc3RhbmNlSW5zdGFuY2VfIixudWxsKSl9O2xrPWZ1bmN0aW9uKCl7Y2soa2soKSk7Zm9yKGxldCBhIGluIG5rKW5rLmhhc093blByb3BlcnR5KGEpJiZkZWxldGUgbmtbTnVtYmVyKGEpXX07b2s9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjKXJldHVybiBjPWM9PT12b2lkIDAsLWtrKCkuR2EoYSxiLGMpO3ZhciBkPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dmFyIGU9a2soKS5HYShhLGIpO25rW2RdPWV9LGMpO3JldHVybiBkfTtwaz1mdW5jdGlvbihhKXtraygpLlUoYSl9O3FrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrKCk7aWYoYTwwKWIuQWEoLWEpO2Vsc2V7dmFyIGM9bmtbYV07Yz8oYi5BYShjKSxkZWxldGUgbmtbYV0pOndpbmRvdy5jbGVhclRpbWVvdXQoYSl9fTtzaz1mdW5jdGlvbigpe3JrKCl9Owpyaz1mdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGspO2trKCkuc3RhcnQoKX07dms9ZnVuY3Rpb24oKXtraygpLnBhdXNlKCk7d2luZG93LmNsZWFyVGltZW91dCh0ayk7dGs9d2luZG93LnNldFRpbWVvdXQoc2ssdWspfTt5az1mdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQod2spO3drPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57eGsoMCl9LHVrKX07eGs9ZnVuY3Rpb24oYSl7eWsoKTt2YXIgYj1raygpO2IuQj1hO2Iuc3RhcnQoKX07ems9ZnVuY3Rpb24oYSl7eWsoKTt2YXIgYj1raygpO2IuQj5hJiYoYi5CPWEsYi5zdGFydCgpKX07QWs9ZnVuY3Rpb24oKXt3aW5kb3cuY2xlYXJUaW1lb3V0KHdrKTt2YXIgYT1raygpO2EuQj0wO2Euc3RhcnQoKX07Xy5Daz1mdW5jdGlvbigpe0JrLmluc3RhbmNlfHwoQmsuaW5zdGFuY2U9bmV3IEJrKTtyZXR1cm4gQmsuaW5zdGFuY2V9OwpFaz1mdW5jdGlvbigpe3JldHVybiBEaygpPy5nZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsITApfTtfLklrPWZ1bmN0aW9uKGEpe0ZrfHwoXy5Haz9fLkdrLkpiKGEpOihfLkhrLnB1c2goe3R5cGU6IkVSUk9SIixwYXlsb2FkOmF9KSxfLkhrLmxlbmd0aD4xMCYmXy5Iay5zaGlmdCgpKSl9O0prPWZ1bmN0aW9uKGEsYil7Rmt8fChfLkdrP18uR2subG0oYSxiKTooXy5Iay5wdXNoKHt0eXBlOiJFVkVOVCIsZXZlbnRUeXBlOmEscGF5bG9hZDpifSksXy5Iay5sZW5ndGg+MTAmJl8uSGsuc2hpZnQoKSkpfTtLaz1mdW5jdGlvbihhKXtpZihhLmluZGV4T2YoIjoiKT49MCl0aHJvdyBFcnJvcigiaGEiKTt9O0xrPWZ1bmN0aW9uKGEpe3JldHVybiBhLnN1YnN0cigwLGEuaW5kZXhPZigiOiIpKXx8YX07Xy5Naz1mdW5jdGlvbihhKXt2YXIgYj1fLmJjKCk7cmV0dXJuIGI/Yi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYSk+PTA6ITF9OwpSaz1mdW5jdGlvbihhLGIsYyxkKXtiPUxrKGIpO3ZhciBlPWEgaW5zdGFuY2VvZiBFcnJvcj9hOkVycm9yKCJpYWAiK2EpO2lmKGUgaW5zdGFuY2VvZiBOaylyZXR1cm4gZTthPXtvYmplY3RTdG9yZU5hbWVzOmMsZGJOYW1lOmIsZGJWZXJzaW9uOmR9O2lmKGUubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IiKXJldHVybiBuZXcgTmsoIlFVT1RBX0VYQ0VFREVEIixhKTtpZihfLk9rJiZlLm5hbWU9PT0iVW5rbm93bkVycm9yIilyZXR1cm4gbmV3IE5rKCJRVU9UQV9NQVlCRV9FWENFRURFRCIsYSk7aWYoZSBpbnN0YW5jZW9mIFBrKXJldHVybiBuZXcgTmsoIk1JU1NJTkdfSU5ERVgiLHsuLi5hLG9iamVjdFN0b3JlOmUub2JqZWN0U3RvcmUsaW5kZXg6ZS5pbmRleH0pO2lmKGUubmFtZT09PSJJbnZhbGlkU3RhdGVFcnJvciImJlFrLnNvbWUoZj0+ZS5tZXNzYWdlLmluY2x1ZGVzKGYpKSlyZXR1cm4gbmV3IE5rKCJFWEVDVVRFX1RSQU5TQUNUSU9OX09OX0NMT1NFRF9EQiIsYSk7aWYoZS5uYW1lPT09CiJBYm9ydEVycm9yIilyZXR1cm4gbmV3IE5rKCJVTktOT1dOX0FCT1JUIixhLGUubWVzc2FnZSk7ZS5hcmdzPVt7Li4uYSxuYW1lOiJJZGJFcnJvciIsTW06ZS5uYW1lfV07ZS5sZXZlbD0iV0FSTklORyI7cmV0dXJuIGV9O1NrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1FaygpO3JldHVybiBuZXcgTmsoIklEQl9OT1RfU1VQUE9SVEVEIix7Y29udGV4dDp7Y2FsbGVyOmEscHVibGljTmFtZTpiLHZlcnNpb246YyxoYXNTdWNjZWVkZWRPbmNlOmQ/Lmhhc1N1Y2NlZWRlZE9uY2V9fSl9O1RrPWZ1bmN0aW9uKGEpe2lmKCFhKXRocm93IEVycm9yKCk7dGhyb3cgYTt9O1VrPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtYaz1mdW5jdGlvbihhLGIsYyxkLGUpe3RyeXtpZihhLnN0YXRlLnN0YXR1cyE9PSJGVUxGSUxMRUQiKXRocm93IEVycm9yKCJqYSIpO2xldCBmPWMoYS5zdGF0ZS52YWx1ZSk7ZiBpbnN0YW5jZW9mIF8uVms/V2soYSxiLGYsZCxlKTpkKGYpfWNhdGNoKGYpe2UoZil9fTsKWWs9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0cnl7aWYoYS5zdGF0ZS5zdGF0dXMhPT0iUkVKRUNURUQiKXRocm93IEVycm9yKCJrYSIpO2xldCBmPWMoYS5zdGF0ZS5yZWFzb24pO2YgaW5zdGFuY2VvZiBfLlZrP1drKGEsYixmLGQsZSk6ZChmKX1jYXRjaChmKXtlKGYpfX07V2s9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPT09Yz9lKG5ldyBUeXBlRXJyb3IoImxhIikpOmMudGhlbihmPT57ZiBpbnN0YW5jZW9mIF8uVms/V2soYSxiLGYsZCxlKTpkKGYpfSxmPT57ZShmKX0pfTtaaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9KCk9Pnt0cnl7YS5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixlKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixmKX1jYXRjaHt9fSxlPSgpPT57YihhLnJlc3VsdCk7ZCgpfSxmPSgpPT57YyhhLmVycm9yKTtkKCl9O2EuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsZSk7YS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZil9Owokaz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoKGIsYyk9PntaayhhLGIsYyl9KX07Ymw9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLlZrKG5ldyBhbCgoYixjKT0+e1prKGEsYixjKX0pKX07Y2w9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChjLGQpPT57dmFyIGU9KCk9Pnt2YXIgZj1hP2IoYSk6bnVsbDtmP2YudGhlbihoPT57YT1oO2UoKX0sZCk6YygpfTtlKCl9KSl9O2RsPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgiaWRiX2ltbWVkaWF0ZV9jb21taXQiKX07Cl8uaWw9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e21vZGU6InJlYWRvbmx5IixrYjohMSx0YWc6IklEQl9UUkFOU0FDVElPTl9UQUdfVU5LTk9XTiJ9O3R5cGVvZiBjPT09InN0cmluZyI/ZS5tb2RlPWM6T2JqZWN0LmFzc2lnbihlLGMpO2EudHJhbnNhY3Rpb25Db3VudCsrO2M9ZS5rYj8zOjE7Zm9yKHZhciBmPTAsaDshaDspe2YrKztsZXQgbj1NYXRoLnJvdW5kKCgwLF8uZWwpKCkpO3RyeXt2YXIgaz1hLmoudHJhbnNhY3Rpb24oYixlLm1vZGUpLGw9ZCxtPSEhZS5jb21taXQ7bGV0IHA9bmV3IGZsKGspLHI9YXdhaXQgZ2wocCxsLG0pLHQ9TWF0aC5yb3VuZCgoMCxfLmVsKSgpKTtobChhLG4sdCxmLHZvaWQgMCxiLmpvaW4oKSxlKTtyZXR1cm4gcn1jYXRjaChwKXtsPU1hdGgucm91bmQoKDAsXy5lbCkoKSk7bGV0IHI9UmsocCxhLmoubmFtZSxiLmpvaW4oKSxhLmoudmVyc2lvbik7aWYociBpbnN0YW5jZW9mIE5rJiYhci5qfHxmPj1jKWhsKGEsbixsLGYscixiLmpvaW4oKSwKZSksaD1yfX1yZXR1cm4gUHJvbWlzZS5yZWplY3QoaCl9O18ua2w9ZnVuY3Rpb24oYSxiLGMpe2E9YS5qLmNyZWF0ZU9iamVjdFN0b3JlKGIsYyk7cmV0dXJuIG5ldyBqbChhKX07Xy5tbD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uaWwoYSxbYl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITAsY29tbWl0OmRsKCl9LGQ9Pl8ubGwoZC5vYmplY3RTdG9yZShiKSxjKSl9OwpobD1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtiPWMtYjtlPyhlIGluc3RhbmNlb2YgTmsmJihlLnR5cGU9PT0iUVVPVEFfRVhDRUVERUQifHxlLnR5cGU9PT0iUVVPVEFfTUFZQkVfRVhDRUVERUQiKSYmSmsoIlFVT1RBX0VYQ0VFREVEIix7ZGJOYW1lOkxrKGEuai5uYW1lKSxvYmplY3RTdG9yZU5hbWVzOmYsdHJhbnNhY3Rpb25Db3VudDphLnRyYW5zYWN0aW9uQ291bnQsdHJhbnNhY3Rpb25Nb2RlOmgubW9kZX0pLGUgaW5zdGFuY2VvZiBOayYmZS50eXBlPT09IlVOS05PV05fQUJPUlQiJiYoYy09YS52LGM8MCYmYz49MjE0NzQ4MzY0OCYmKGM9MCksSmsoIlRSQU5TQUNUSU9OX1VORVhQRUNURURMWV9BQk9SVEVEIix7b2JqZWN0U3RvcmVOYW1lczpmLHRyYW5zYWN0aW9uRHVyYXRpb246Yix0cmFuc2FjdGlvbkNvdW50OmEudHJhbnNhY3Rpb25Db3VudCxkYkR1cmF0aW9uOmN9KSxhLm89ITApLG5sKGEsITEsZCxmLGIsaC50YWcpLF8uSWsoZSkpOm5sKGEsITAsZCxmLGIsaC50YWcpfTsKbmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGY9IklEQl9UUkFOU0FDVElPTl9UQUdfVU5LTk9XTiIpe0prKCJUUkFOU0FDVElPTl9FTkRFRCIse29iamVjdFN0b3JlTmFtZXM6ZCxjb25uZWN0aW9uSGFzVW5rbm93bkFib3J0ZWRUcmFuc2FjdGlvbjphLm8sZHVyYXRpb246ZSxpc1N1Y2Nlc3NmdWw6Yix0cnlDb3VudDpjLHRhZzpmfSl9O18ubGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYmwoYS5qLnB1dChiLHZvaWQgMCkpfTtfLm9sPWZ1bmN0aW9uKGEsYixjKXthLmouY3JlYXRlSW5kZXgoYixjLHt1bmlxdWU6ITF9KX07cWw9ZnVuY3Rpb24oYSxiLGMpe2E9YS5qLm9wZW5DdXJzb3IoYi5xdWVyeSxiLmRpcmVjdGlvbik7cmV0dXJuIHBsKGEpLnRoZW4oZD0+Y2woZCxjKSl9O3NsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHFsKGEse3F1ZXJ5OmJ9LGM9PmMuZGVsZXRlKCkudGhlbigoKT0+cmwoYykpKS50aGVuKCgpPT57fSl9Owp0bD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W107cmV0dXJuIHFsKGEse3F1ZXJ5OmJ9LGU9PntpZighKGMhPT12b2lkIDAmJmQubGVuZ3RoPj1jKSlyZXR1cm4gZC5wdXNoKGUuY3Vyc29yLnZhbHVlKSxybChlKX0pLnRoZW4oKCk9PmQpfTtnbD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmV3IFByb21pc2UoKGUsZik9Pnt0cnl7bGV0IGg9YihhKTtjJiZhLmNvbW1pdCgpO2gudGhlbihrPT57ZShrKX0pLmNhdGNoKGYpfWNhdGNoKGgpe2YoaCksYS5hYm9ydCgpfX0pO3JldHVybiBQcm9taXNlLmFsbChbZCxhLmRvbmVdKS50aGVuKChbZV0pPT5lKX07dWw9ZnVuY3Rpb24oYSxiLGMpe3ZhciB7cXVlcnk6ZD1udWxsLGRpcmVjdGlvbjplPSJuZXh0In09YjthPWEuai5vcGVuQ3Vyc29yKGQsZSk7cmV0dXJuIHBsKGEpLnRoZW4oZj0+Y2woZixjKSl9Owp2bD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W107cmV0dXJuIHVsKGEse3F1ZXJ5OmJ9LGU9PntpZighKGMhPT12b2lkIDAmJmQubGVuZ3RoPj1jKSlyZXR1cm4gZC5wdXNoKGUuY3Vyc29yLnZhbHVlKSxybChlKX0pLnRoZW4oKCk9PmQpfTtwbD1mdW5jdGlvbihhKXtyZXR1cm4gYmwoYSkudGhlbihiPT5iP25ldyB3bChhLGIpOm51bGwpfTtybD1mdW5jdGlvbihhKXthLmN1cnNvci5jb250aW51ZSh2b2lkIDApO3JldHVybiBwbChhLnJlcXVlc3QpfTsKeWw9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxlKT0+e3ZhciBmPWIhPT12b2lkIDA/c2VsZi5pbmRleGVkREIub3BlbihhLGIpOnNlbGYuaW5kZXhlZERCLm9wZW4oYSk7dmFyIGg9Yy5ibG9ja2VkLGs9Yy5ibG9ja2luZyxsPWMuVEEsbT1jLnVwZ3JhZGUsbj1jLmNsb3NlZCxwLHI9KCk9PntwfHwocD1uZXcgeGwoZi5yZXN1bHQse2Nsb3NlZDpufSkpO3JldHVybiBwfTtmLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLHQ9Pnt0cnl7aWYodC5uZXdWZXJzaW9uPT09bnVsbCl0aHJvdyBFcnJvcigibmEiKTtpZihmLnRyYW5zYWN0aW9uPT09bnVsbCl0aHJvdyBFcnJvcigib2EiKTt0LmRhdGFMb3NzJiZ0LmRhdGFMb3NzIT09Im5vbmUiJiZKaygiSURCX0RBVEFfQ09SUlVQVEVEIix7cmVhc29uOnQuZGF0YUxvc3NNZXNzYWdlfHwidW5rbm93biByZWFzb24iLGRiTmFtZTpMayhhKX0pO2xldCB2PXIoKSx6PW5ldyBmbChmLnRyYW5zYWN0aW9uKTttJiYKbSh2LEU9PnQub2xkVmVyc2lvbjxFJiZ0Lm5ld1ZlcnNpb24+PUUseik7ei5kb25lLmNhdGNoKEU9PntlKEUpfSl9Y2F0Y2godil7ZSh2KX19KTtmLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCgpPT57dmFyIHQ9Zi5yZXN1bHQ7ayYmdC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIiwoKT0+e2socigpKX0pO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT57SmsoIklEQl9VTkVYUEVDVEVETFlfQ0xPU0VEIix7ZGJOYW1lOkxrKGEpLGRiVmVyc2lvbjp0LnZlcnNpb259KTtsJiZsKCl9KTtkKHIoKSl9KTtmLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e2UoZi5lcnJvcil9KTtoJiZmLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLCgpPT57aCgpfSl9KX07emw9ZnVuY3Rpb24oYSxiLGM9e30pe3JldHVybiB5bChhLGIsYyl9OwpfLkFsPWFzeW5jIGZ1bmN0aW9uKGEsYj17fSl7dHJ5e2xldCBjPXNlbGYuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGEpLGQ9Yi5ibG9ja2VkO2QmJmMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsKCk9PntkKCl9KTthd2FpdCAkayhjKX1jYXRjaChjKXt0aHJvdyBSayhjLGEsIiIsLTEpO319O0JsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBOaygiSU5DT01QQVRJQkxFX0RCX1ZFUlNJT04iLHtkYk5hbWU6YS5uYW1lLG9sZFZlcnNpb246YS5vcHRpb25zLnZlcnNpb24sbmV3VmVyc2lvbjpifSl9O18uQ2w9ZnVuY3Rpb24oYSxiKXtpZighYil0aHJvdyBTaygib3BlbldpdGhUb2tlbiIsTGsoYS5uYW1lKSk7cmV0dXJuIGEub3BlbigpfTsKRWw9YXN5bmMgZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5pbChhd2FpdCBfLkNsKERsLGIpLFsiZGF0YWJhc2VzIl0se2tiOiEwLG1vZGU6InJlYWR3cml0ZSJ9LGM9Pnt2YXIgZD1jLm9iamVjdFN0b3JlKCJkYXRhYmFzZXMiKTtyZXR1cm4gZC5nZXQoYS5hY3R1YWxOYW1lKS50aGVuKGU9PntpZihlP2EuYWN0dWFsTmFtZSE9PWUuYWN0dWFsTmFtZXx8YS5wdWJsaWNOYW1lIT09ZS5wdWJsaWNOYW1lfHxhLnVzZXJJZGVudGlmaWVyIT09ZS51c2VySWRlbnRpZmllcjoxKXJldHVybiBfLmxsKGQsYSkudGhlbigoKT0+e30pfSl9KX07Xy5GbD1hc3luYyBmdW5jdGlvbihhLGIpe3JldHVybiBhPyhhd2FpdCBfLkNsKERsLGIpKS5kZWxldGUoImRhdGFiYXNlcyIsYSk6dm9pZCAwfTsKXy5HbD1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPVtdO2I9YXdhaXQgXy5DbChEbCxiKTthd2FpdCBfLmlsKGIsWyJkYXRhYmFzZXMiXSx7a2I6ITAsbW9kZToicmVhZG9ubHkifSxkPT57Yy5sZW5ndGg9MDtyZXR1cm4gcWwoZC5vYmplY3RTdG9yZSgiZGF0YWJhc2VzIikse30sZT0+e2EoZS5jdXJzb3IudmFsdWUpJiZjLnB1c2goZS5jdXJzb3IudmFsdWUpO3JldHVybiBybChlKX0pfSk7cmV0dXJuIGN9O0hsPWZ1bmN0aW9uKGEpe3JldHVybiBfLkdsKGI9PmIucHVibGljTmFtZT09PSJMb2dzRGF0YWJhc2VWMiImJmIudXNlcklkZW50aWZpZXIhPT12b2lkIDAsYSl9OwpMbD1hc3luYyBmdW5jdGlvbigpe2lmKEVrKCk/Lmhhc1N1Y2NlZWRlZE9uY2UpcmV0dXJuITA7dmFyIGE7aWYoYT1fLklsKWE9L1dlYktpdFwvKFswLTldKykvLmV4ZWMoXy5iYygpKSxhPSEhKGEmJnBhcnNlSW50KGFbMV0sMTApPj02MDApO2EmJihhPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKF8uYmMoKSksYT0hKGEmJnBhcnNlSW50KGFbMV0sMTApPj02MDIpKTtpZighKGE9YXx8Xy5KbCkpe3RyeXthPXNlbGY7dmFyIGI9ISEoYS5pbmRleGVkREImJmEuSURCSW5kZXgmJmEuSURCS2V5UmFuZ2UmJmEuSURCT2JqZWN0U3RvcmUpfWNhdGNoKGMpe2I9ITF9YT0hYn1pZihhfHwhKCJJREJUcmFuc2FjdGlvbiJpbiBzZWxmJiYib2JqZWN0U3RvcmVOYW1lcyJpbiBJREJUcmFuc2FjdGlvbi5wcm90b3R5cGUpKXJldHVybiExO3RyeXtyZXR1cm4gYXdhaXQgRWwoe2FjdHVhbE5hbWU6Inl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLHB1YmxpY05hbWU6Inl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLAp1c2VySWRlbnRpZmllcjp2b2lkIDB9LEtsKSxhd2FpdCBfLkZsKCJ5dC1pZGItdGVzdC1kby1ub3QtdXNlIixLbCksITB9Y2F0Y2goYyl7cmV0dXJuITF9fTtObD1mdW5jdGlvbigpe2lmKE1sIT09dm9pZCAwKXJldHVybiBNbDtGaz0hMDtyZXR1cm4gTWw9TGwoKS50aGVuKGE9PntGaz0hMTtpZihEaygpPy5vKCkpe3ZhciBiPXtoYXNTdWNjZWVkZWRPbmNlOkVrKCk/Lmhhc1N1Y2NlZWRlZE9uY2V8fGF9O0RrKCk/LnNldCgiTEFTVF9SRVNVTFRfRU5UUllfS0VZIixiLDI1OTJFMywhMCl9cmV0dXJuIGF9KX07T2w9ZnVuY3Rpb24oKXtyZXR1cm4gXy5zYSgieXRnbG9iYWwuaWRiVG9rZW5fIil8fHZvaWQgMH07Xy5QbD1mdW5jdGlvbigpe3ZhciBhPU9sKCk7cmV0dXJuIGE/UHJvbWlzZS5yZXNvbHZlKGEpOk5sKCkudGhlbihiPT57Yj8oXy5yYSgieXRnbG9iYWwuaWRiVG9rZW5fIixLbCksYj1LbCk6Yj12b2lkIDA7cmV0dXJuIGJ9KX07ClFsPWZ1bmN0aW9uKGEpe2lmKCFfLldqKCkpdGhyb3cgYT1uZXcgTmsoIkFVVEhfSU5WQUxJRCIse2RiTmFtZTphfSksXy5JayhhKSxhO3ZhciBiPV8uVmooKTtyZXR1cm57YWN0dWFsTmFtZTpgJHthfToke2J9YCxwdWJsaWNOYW1lOmEsdXNlcklkZW50aWZpZXI6Yn19OwpSbD1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1FcnJvcigpLnN0YWNrPz8iIixmPWF3YWl0IF8uUGwoKTtpZighZil0aHJvdyBiPVNrKCJvcGVuRGJJbXBsIixhLGIpLF8ueCgieXRpZGJfYXN5bmNfc3RhY2tfa2lsbHN3aXRjaCIpfHwoYi5zdGFjaz1gJHtiLnN0YWNrfVxuJHtlLnN1YnN0cmluZyhlLmluZGV4T2YoIlxuIikrMSl9YCksXy5JayhiKSxiO0trKGEpO2U9Yz97YWN0dWFsTmFtZTphLHB1YmxpY05hbWU6YSx1c2VySWRlbnRpZmllcjp2b2lkIDB9OlFsKGEpO3RyeXtyZXR1cm4gYXdhaXQgRWwoZSxmKSxhd2FpdCB6bChlLmFjdHVhbE5hbWUsYixkKX1jYXRjaChoKXt0cnl7YXdhaXQgXy5GbChlLmFjdHVhbE5hbWUsZil9Y2F0Y2h7fXRocm93IGg7fX07U2w9ZnVuY3Rpb24oYSxiLGM9e30pe3JldHVybiBSbChhLGIsITEsYyl9O1RsPWZ1bmN0aW9uKGEsYixjPXt9KXtyZXR1cm4gUmwoYSxiLCEwLGMpfTsKVWw9YXN5bmMgZnVuY3Rpb24oYSxiPXt9KXt2YXIgYz1hd2FpdCBfLlBsKCk7YyYmKEtrKGEpLGE9UWwoYSksYXdhaXQgXy5BbChhLmFjdHVhbE5hbWUsYiksYXdhaXQgXy5GbChhLmFjdHVhbE5hbWUsYykpfTtWbD1mdW5jdGlvbihhLGIsYyl7YT1hLm1hcChhc3luYyBkPT57YXdhaXQgXy5BbChkLmFjdHVhbE5hbWUsYik7YXdhaXQgXy5GbChkLmFjdHVhbE5hbWUsYyl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoYSkudGhlbigoKT0+e30pfTtXbD1hc3luYyBmdW5jdGlvbigpe3ZhciBhPXt9LGI9YXdhaXQgXy5QbCgpO2lmKGIpe0trKCJMb2dzRGF0YWJhc2VWMiIpO3ZhciBjPWF3YWl0IEhsKGIpO2F3YWl0IFZsKGMsYSxiKX19O1hsPWFzeW5jIGZ1bmN0aW9uKGEsYj17fSl7dmFyIGM9YXdhaXQgXy5QbCgpO2MmJihLayhhKSxhd2FpdCBfLkFsKGEsYiksYXdhaXQgXy5GbChhLGMpKX07Wmw9ZnVuY3Rpb24oYSxiKXt2YXIgYztyZXR1cm4oKT0+e2N8fChjPW5ldyBZbChhLGIpKTtyZXR1cm4gY319OwpfLiRsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFpsKGEsYil9O2JtPWZ1bmN0aW9uKGEpe3JldHVybiBfLkNsKGFtKCksYSl9O2NtPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXthPXtjb25maWc6YSxoYXNoRGF0YTpiLHRpbWVzdGFtcDooMCxfLmVsKSgpfTtjPWF3YWl0IGJtKGMpO2F3YWl0IGMuY2xlYXIoImhvdENvbmZpZ1N0b3JlIik7cmV0dXJuIGF3YWl0IF8ubWwoYywiaG90Q29uZmlnU3RvcmUiLGEpfTtkbT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXthPXtjb25maWc6YSxoYXNoRGF0YTpiLGNvbmZpZ0RhdGE6Yyx0aW1lc3RhbXA6KDAsXy5lbCkoKX07ZD1hd2FpdCBibShkKTthd2FpdCBkLmNsZWFyKCJjb2xkQ29uZmlnU3RvcmUiKTtyZXR1cm4gYXdhaXQgXy5tbChkLCJjb2xkQ29uZmlnU3RvcmUiLGEpfTsKZW09YXN5bmMgZnVuY3Rpb24oYSl7YT1hd2FpdCBibShhKTt2YXIgYj12b2lkIDA7YXdhaXQgXy5pbChhLFsiY29sZENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITB9LGM9PnVsKGMub2JqZWN0U3RvcmUoImNvbGRDb25maWdTdG9yZSIpLmluZGV4KCJjb2xkVGltZXN0YW1wSW5kZXgiKSx7ZGlyZWN0aW9uOiJwcmV2In0sZD0+e2I9ZC5jdXJzb3IudmFsdWV9KSk7cmV0dXJuIGJ9O2ZtPWFzeW5jIGZ1bmN0aW9uKGEpe2E9YXdhaXQgYm0oYSk7dmFyIGI9dm9pZCAwO2F3YWl0IF8uaWwoYSxbImhvdENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITB9LGM9PnVsKGMub2JqZWN0U3RvcmUoImhvdENvbmZpZ1N0b3JlIikuaW5kZXgoImhvdFRpbWVzdGFtcEluZGV4Iikse2RpcmVjdGlvbjoicHJldiJ9LGQ9PntiPWQuY3Vyc29yLnZhbHVlfSkpO3JldHVybiBifTsKZ209YXN5bmMgZnVuY3Rpb24oYSxiLGMpe2lmKF8ueCgic3RhcnRfY2xpZW50X2djZiIpKXtjJiYoYS52PWMsXy5yYSgieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIsYS52fHxudWxsKSk7YS5CKGIpO2xldCBkPU9sKCk7ZCYmKGN8fChjPShhd2FpdCBmbShkKSk/LmNvbmZpZyksYXdhaXQgY20oYyxiLGQpKTtpZihjKXthPWEubztmb3IobGV0IGUgb2YgYS5qKWUoYyl9fX07aG09YXN5bmMgZnVuY3Rpb24oYSxiLGMpe18ueCgic3RhcnRfY2xpZW50X2djZiIpJiYoYS5jb2xkSGFzaERhdGE9YixfLnJhKCJ5dC5nY2YuY29uZmlnLmNvbGRIYXNoRGF0YSIsYS5jb2xkSGFzaERhdGF8fG51bGwpLGE9T2woKSkmJihjfHwoYz0oYXdhaXQgZW0oYSkpPy5jb25maWcpLGMmJmF3YWl0IGRtKGMsYixjLmNvbmZpZ0RhdGEsYSkpfTsKXy5qbT1mdW5jdGlvbigpe2lmKCFpbS5pbnN0YW5jZSl7dmFyIGE9bmV3IGltO2ltLmluc3RhbmNlPWF9YT1pbS5pbnN0YW5jZTt2YXIgYj0oMCxfLmVsKSgpLWEuajtpZighKGEuaiE9PTAmJmI8Xy5zaigic2VuZF9jb25maWdfaGFzaF90aW1lciIpKSl7Yj1fLnNhKCJ5dC5nY2YuY29uZmlnLmNvbGRDb25maWdEYXRhIik7dmFyIGM9Xy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RIYXNoRGF0YSIpLGQ9Xy5zYSgieXQuZ2NmLmNvbmZpZy5jb2xkSGFzaERhdGEiKTtiJiZjJiZkJiYoYS5qPSgwLF8uZWwpKCkpO3JldHVybntjb2xkQ29uZmlnRGF0YTpiLGhvdEhhc2hEYXRhOmMsY29sZEhhc2hEYXRhOmR9fX07a209ZnVuY3Rpb24oKXtyZXR1cm4iSU5ORVJUVUJFX0FQSV9LRVkiaW4gXy5QaSYmIklOTkVSVFVCRV9BUElfVkVSU0lPTiJpbiBfLlBpfTsKbG09ZnVuY3Rpb24oKXtyZXR1cm57aW5uZXJ0dWJlQXBpS2V5Ol8udygiSU5ORVJUVUJFX0FQSV9LRVkiKSxpbm5lcnR1YmVBcGlWZXJzaW9uOl8udygiSU5ORVJUVUJFX0FQSV9WRVJTSU9OIiksd3g6Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfQ09ORklHX0lORk8iKSxtcTpfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwiV0VCIikscUo6Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMSksaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb246Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpLHl4Ol8udygiSU5ORVJUVUJFX0NPTlRFWFRfSEwiKSx4eDpfLncoIklOTkVSVFVCRV9DT05URVhUX0dMIikseng6Xy53KCJJTk5FUlRVQkVfSE9TVF9PVkVSUklERSIpfHwiIixBeDohIV8udygiSU5ORVJUVUJFX1VTRV9USElSRF9QQVJUWV9BVVRIIiwhMSkscko6ISFfLncoIklOTkVSVFVCRV9PTUlUX0FQSV9LRVlfV0hFTl9BVVRIX0hFQURFUl9JU19QUkVTRU5UIiwKITEpLGFwcEluc3RhbGxEYXRhOl8udygiU0VSSUFMSVpFRF9DTElFTlRfQ09ORklHX0RBVEEiKX19OwptbT1mdW5jdGlvbihhKXt2YXIgYj17Y2xpZW50OntobDphLnl4LGdsOmEueHgsY2xpZW50TmFtZTphLm1xLGNsaWVudFZlcnNpb246YS5pbm5lcnR1YmVDb250ZXh0Q2xpZW50VmVyc2lvbixjb25maWdJbmZvOmEud3h9fTtuYXZpZ2F0b3IudXNlckFnZW50JiYoYi5jbGllbnQudXNlckFnZW50PVN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KSk7dmFyIGM9Xy51LmRldmljZVBpeGVsUmF0aW87YyYmYyE9MSYmKGIuY2xpZW50LnNjcmVlbkRlbnNpdHlGbG9hdD1TdHJpbmcoYykpO2M9Xy53KCJFWFBFUklNRU5UU19UT0tFTiIsIiIpO2MhPT0iIiYmKGIuY2xpZW50LmV4cGVyaW1lbnRzVG9rZW49Yyk7Yz1fLnVqKCk7Yy5sZW5ndGg+MCYmKGIucmVxdWVzdD17aW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6Y30pO2M9YS5tcTtjIT09IldFQiImJmMhPT0iTVdFQiImJmMhPT0xJiZjIT09Mnx8IWJ8fChiLmNsaWVudC5tYWluQXBwV2ViSW5mbz1iLmNsaWVudC5tYWluQXBwV2ViSW5mbz8/e30sCmIuY2xpZW50Lm1haW5BcHBXZWJJbmZvLndlYkRpc3BsYXlNb2RlPV8uT2ooKSk7KGM9Xy5zYSgieXQuZW1iZWRkZWRfcGxheWVyLmVtYmVkX3VybCIpKSYmYiYmKGIudGhpcmRQYXJ0eT17ZW1iZWRVcmw6Y30pO18ueCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJl8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGM9Xy51Lm5hdmlnYXRvcj8uZGV2aWNlTWVtb3J5LGImJihiLmNsaWVudC5tZW1vcnlUb3RhbEtieXRlcz1gJHtjKjFFNn1gKSk7YS5hcHBJbnN0YWxsRGF0YSYmYiYmKGIuY2xpZW50LmNvbmZpZ0luZm89Yi5jbGllbnQuY29uZmlnSW5mb3x8e30sYi5jbGllbnQuY29uZmlnSW5mby5hcHBJbnN0YWxsRGF0YT1hLmFwcEluc3RhbGxEYXRhKTsoYT1fLlNqKCkpJiZiJiYoYi5jbGllbnQuY29ubmVjdGlvblR5cGU9YSk7Xy54KCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKGE9Xy5VaigpKSYmYiYmKGIuY2xpZW50LmVmZmVjdGl2ZUNvbm5lY3Rpb25UeXBlPQphKTtpZihfLngoInN0YXJ0X2NsaWVudF9nY2YiKSl7dmFyIGQ9Xy5qbSgpO2QmJihhPWQuY29sZENvbmZpZ0RhdGEsYz1kLmNvbGRIYXNoRGF0YSxkPWQuaG90SGFzaERhdGEsYiYmKGIuY2xpZW50LmNvbmZpZ0luZm89Yi5jbGllbnQuY29uZmlnSW5mb3x8e30sYSYmKGIuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9YSksYyYmKGIuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPWMpLGQmJihiLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPWQpKSl9Xy53KCJERUxFR0FURURfU0VTU0lPTl9JRCIpJiYhXy54KCJwYWdlaWRfYXNfaGVhZGVyX3dlYiIpJiYoYi51c2VyPXtvbkJlaGFsZk9mVXNlcjpfLncoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIil9KTshXy54KCJmaWxsX2RlbGVnYXRlX2NvbnRleHRfaW5fZ2VsX2tpbGxzd2l0Y2giKSYmKGE9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9TRVJJQUxJWkVEX0RFTEVHQVRJT05fQ09OVEVYVCIpKSYmKGIudXNlcj0Key4uLmIudXNlcixzZXJpYWxpemVkRGVsZWdhdGlvbkNvbnRleHQ6YX0pO2E9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO18ueCgiZW5hYmxlX3BlcnNpc3RlbnRfZGV2aWNlX3Rva2VuIikmJmE/LmNsaWVudD8ucm9sbG91dFRva2VuJiYoYi5jbGllbnQucm9sbG91dFRva2VuPWE/LmNsaWVudD8ucm9sbG91dFRva2VuKTthPU9iamVjdDtjPWEuYXNzaWduO2Q9Yi5jbGllbnQ7dmFyIGU9Xy53KCJERVZJQ0UiLCIiKSxmPXt9O2ZvcihsZXQgW2gsa11vZiBPYmplY3QuZW50cmllcyhfLmJqKGUpKSllPWgsZT09PSJjYnJhbmQiP2YuZGV2aWNlTWFrZT1rOmU9PT0iY21vZGVsIj9mLmRldmljZU1vZGVsPWs6ZT09PSJjYnIiP2YuYnJvd3Nlck5hbWU9azplPT09ImNicnZlciI/Zi5icm93c2VyVmVyc2lvbj1rOmU9PT0iY29zIj9mLm9zTmFtZT1rOmU9PT0iY29zdmVyIj9mLm9zVmVyc2lvbj1rOmU9PT0iY3BsYXRmb3JtIiYmKGYucGxhdGZvcm09ayk7Yi5jbGllbnQ9Yy5jYWxsKGEsZCxmKTsKXy54KCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYoYi5jbGllbnQud2luZG93V2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGgsYi5jbGllbnQud2luZG93SGVpZ2h0UG9pbnRzPXdpbmRvdy5pbm5lckhlaWdodCk7cmV0dXJuIGJ9OwpvbT1mdW5jdGlvbihhLGIsYz17fSl7dmFyIGQ9e307Xy53KCJFT01fVklTSVRPUl9EQVRBIik/ZD17IlgtR29vZy1FT00tVmlzaXRvci1JZCI6Xy53KCJFT01fVklTSVRPUl9EQVRBIil9OmQ9eyJYLUdvb2ctVmlzaXRvci1JZCI6Yy52aXNpdG9yRGF0YXx8Xy53KCJWSVNJVE9SX0RBVEEiLCIiKX07aWYoYiYmYi5pbmNsdWRlcygid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIikpcmV0dXJuIGQ7Yj1jLmF1dGhvcml6YXRpb258fF8udygiQVVUSE9SSVpBVElPTiIpO2J8fChhP2I9YEJlYXJlciAke18uc2EoImdhcGkuYXV0aC5nZXRUb2tlbiIpKCkuT0h9YDooXy5ubS5pbnN0YW5jZXx8KF8ubm0uaW5zdGFuY2U9bmV3IF8ubm0pLGE9Xy5QaigpLF8ueCgicGFnZWlkX2FzX2hlYWRlcl93ZWIiKXx8ZGVsZXRlIGFbIlgtR29vZy1QYWdlSWQiXSxkPXsuLi5kLC4uLmF9KSk7YiYmKGQuQXV0aG9yaXphdGlvbj1iKTtyZXR1cm4gZH07Cl8ucG09ZnVuY3Rpb24oYSl7dGhpcy52ZXJzaW9uPTE7dGhpcy5hcmdzPWF9O18ucW09ZnVuY3Rpb24oYSxiKXt0aGlzLnRvcGljPWE7dGhpcy5qPWJ9O18uc209ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnJtKCk7YyYmYy5wdWJsaXNoLmNhbGwoYyxhLnRvU3RyaW5nKCksYSxiKX07Xy5ybT1mdW5jdGlvbigpe3JldHVybiBfLnNhKCJ5dFB1YnN1YjJQdWJzdWIySW5zdGFuY2UiKX07dG09ZnVuY3Rpb24oYSxiLGM9e3NhbXBsZVJhdGU6LjF9KXtNYXRoLnJhbmRvbSgpPE1hdGgubWluKC4wMixjLnNhbXBsZVJhdGUvMTAwKSYmXy5zbSgibWV0YV9sb2dnaW5nX2NzaV9ldmVudCIse3RpbWVyTmFtZTphLHRpbWVsaW5lRGF0YTpifSl9OwpBbT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17c3RhcnRUaW1lOigwLF8uZWwpKCksdGlja3M6e30saW5mb3M6e319O3RyeXtsZXQgaD1fLnVtKGIpO2lmKGg9PW51bGx8fCEoaD5fLndtfHxoPF8ueG0pKXt2YXIgZj1fLk5pKCgwLF8ueW0pKGIpKTtsZXQgaz0oMCxfLmVsKSgpO2UudGlja3MuZ2VsYz1rO3ptKys7Xy54KCJnZWxfY29tcHJlc3Npb25fY3NpX2tpbGxzd2l0Y2giKXx8IV8ueCgibG9nX2dlbF9jb21wcmVzc2lvbl9sYXRlbmN5IikmJiFfLngoImxvZ19nZWxfY29tcHJlc3Npb25fbGF0ZW5jeV9sciIpfHx0bSgiZ2VsX2NvbXByZXNzaW9uIixlLHtzYW1wbGVSYXRlOi4xfSk7Yy5oZWFkZXJzfHwoYy5oZWFkZXJzPXt9KTtjLmhlYWRlcnNbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7Yy5wb3N0Qm9keT1mO2MucG9zdFBhcmFtcz12b2lkIDB9ZChhLGMpfWNhdGNoKGgpe18uV2koaCksZChhLGMpfX07Cl8udW09ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihuZXcgQmxvYihhLnNwbGl0KCIiKSkpLnNpemV9Y2F0Y2goYil7cmV0dXJuIF8uV2koYiksbnVsbH19O0JtPWZ1bmN0aW9uKGEpe3JldHVybiEhYS5KYXx8YS54aX07RG09ZnVuY3Rpb24oYSl7Qm0oYSkmJiFhLmFoJiYoYS5PYz0hMCxhLk9pJiZNYXRoLnJhbmRvbSgpPD1hLkRpJiZhLmNiLk91KGEuSmEpLENtKGEpLGEuU2EuU2IoKSYmYS5vKCksYS5TYS5saXN0ZW4oYS5LbSxhLm8uYmluZChhKSksYS5TYS5saXN0ZW4oYS5GbSxhLnYuYmluZChhKSkpfTtDbT1mdW5jdGlvbihhKXtpZighQm0oYSkpdGhyb3cgRXJyb3IoInhhIik7YS5jYi5XcCgiUVVFVUVEIixhLkphKS50aGVuKGI9PntiJiYhRW0oYSxiLGEuQ3IpP2EuRGMucGIoYXN5bmMoKT0+e2IuaWQhPT12b2lkIDAmJmF3YWl0IGEuY2Iubm4oYi5pZCxhLkphKTtDbShhKX0pOmEuU2EuU2IoKSYmYS5vKCl9KX07CkdtPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoIUJtKGEpKXRocm93IEVycm9yKCJzYSIpO2IuaWQhPT12b2lkIDAmJihhd2FpdCBhLmNiLkF5KGIuaWQsYS5KYSl8fGEuVGYoRXJyb3IoInRhIikpKTtFbShhLGIsYS5Lcik/KGIuc2tpcFJldHJ5fHwoYj1GbShhLGIpKSxiJiYoYi5za2lwUmV0cnkmJmIuaWQhPT12b2lkIDAmJmF3YWl0IGEuY2IuRmYoYi5pZCxhLkphKSxhLkdkKGIudXJsLGIub3B0aW9ucywhIWIuc2tpcFJldHJ5KSkpOihhLlRmKEVycm9yKCJ1YSIpKSxiLmlkIT09dm9pZCAwJiZhd2FpdCBhLmNiLkZmKGIuaWQsYS5KYSkpfTtIbT1mdW5jdGlvbihhLGIpe2EuTHMmJiFhLlNhLlNiKCk/YS5McyhiKTphLmhhbmRsZUVycm9yKGIpfTtFbT1mdW5jdGlvbihhLGIsYyl7Yj1iLnRpbWVzdGFtcDtyZXR1cm4gYS5ub3coKS1iPj1jPyExOiEwfTsKRm09ZnVuY3Rpb24oYSxiKXtpZighQm0oYSkpdGhyb3cgRXJyb3IoInZhIik7dmFyIGM9Yi5vcHRpb25zLm9uRXJyb3I/Yi5vcHRpb25zLm9uRXJyb3I6KCk9Pnt9O2Iub3B0aW9ucy5vbkVycm9yPWFzeW5jKGUsZik9Pnt2YXIgaD1JbShmKSxrPUptKGYpO2smJmEuS2EmJmEuS2EoIndlYl9lbmFibGVfZXJyb3JfMjA0IikmJmEuaGFuZGxlRXJyb3IoRXJyb3IoIndhIiksYi51cmwsZik7aWYoYS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmaHx8YS5LYSYmIWEuS2EoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJmEucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPD1hLktqKWlmKGEuU2EuUWomJmF3YWl0IGEuU2EuUWooKSwhYS5TYS5TYigpKXtjKGUsZik7YS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmYj8uaWQhPT12b2lkIDAmJmF3YWl0IGEuY2Iubm4oYi5pZCxhLkphLCExKTtyZXR1cm59YS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmCiFoJiZhLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcj5hLktqfHwoYS5wb3RlbnRpYWxFc2ZFcnJvckNvdW50ZXIrKyxiPy5pZCE9PXZvaWQgMCYmKGIuc2VuZENvdW50PGEuTXI/KGF3YWl0IGEuY2Iubm4oYi5pZCxhLkphLCEwLGs/ITE6dm9pZCAwKSxhLkRjLnBiKCgpPT57YS5TYS5TYigpJiZhLm8oKX0sYS5McikpOmF3YWl0IGEuY2IuRmYoYi5pZCxhLkphKSksYyhlLGYpKX07dmFyIGQ9Yi5vcHRpb25zLm9uU3VjY2Vzcz9iLm9wdGlvbnMub25TdWNjZXNzOigpPT57fTtiLm9wdGlvbnMub25TdWNjZXNzPWFzeW5jKGUsZik9PntiPy5pZCE9PXZvaWQgMCYmYXdhaXQgYS5jYi5GZihiLmlkLGEuSmEpO2EuU2EuZWYmJmEuS2EmJmEuS2EoInZzc19uZXR3b3JrX2hpbnQiKSYmYS5TYS5lZighMCk7ZChlLGYpfTtyZXR1cm4gYn07SW09ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YT8uZXJyb3I/LmNvZGUpJiZhPj00MDAmJmE8PTU5OT8hMTohMH07CkptPWZ1bmN0aW9uKGEpe2E9YT8uZXJyb3I/LmNvZGU7cmV0dXJuIShhIT09NDAwJiZhIT09NDE1KX07CkxtPWZ1bmN0aW9uKCl7aWYoS20pcmV0dXJuIEttKCk7S209Xy4kbCgiTG9nc0RhdGFiYXNlVjIiLHtzZTp7TG9nc1JlcXVlc3RzU3RvcmU6e1BkOjJ9fSxzaGFyZWQ6ITEsdXBncmFkZShhLGIsYyl7YigyKSYmXy5rbChhLCJMb2dzUmVxdWVzdHNTdG9yZSIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSk7YigzKTtiKDUpJiYoYz1jLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLGMuai5pbmRleE5hbWVzLmNvbnRhaW5zKCJuZXdSZXF1ZXN0IikmJmMuai5kZWxldGVJbmRleCgibmV3UmVxdWVzdCIpLF8ub2woYywibmV3UmVxdWVzdFYyIixbInN0YXR1cyIsImludGVyZmFjZSIsInRpbWVzdGFtcCJdKSk7Yig3KSYmYS5qLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInNhcGlzaWQiKSYmYS5qLmRlbGV0ZU9iamVjdFN0b3JlKCJzYXBpc2lkIik7Yig5KSYmYS5qLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoIlNXSGVhbHRoTG9nIikmJmEuai5kZWxldGVPYmplY3RTdG9yZSgiU1dIZWFsdGhMb2ciKX0sCnZlcnNpb246OX0pO3JldHVybiBLbSgpfTtNbT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DbChMbSgpLGEpfTtPbT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPXtzdGFydFRpbWU6KDAsXy5lbCkoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9XUklURSJ9LHRpY2tzOnt9fTtiPWF3YWl0IE1tKGIpO2E9ey4uLmEsb3B0aW9uczpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEub3B0aW9ucykpLGludGVyZmFjZTpfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwwKX07YT1hd2FpdCBfLm1sKGIsIkxvZ3NSZXF1ZXN0c1N0b3JlIixhKTtjLnRpY2tzLnRjPSgwLF8uZWwpKCk7Tm0oYyk7cmV0dXJuIGF9OwpQbT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPXtzdGFydFRpbWU6KDAsXy5lbCkoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9SRUFEIn0sdGlja3M6e319O2I9YXdhaXQgTW0oYik7dmFyIGQ9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCksZT1bYSxkLDBdO2Q9W2EsZCwoMCxfLmVsKSgpXTt2YXIgZj1JREJLZXlSYW5nZS5ib3VuZChlLGQpLGg9InByZXYiO18ueCgidXNlX2ZpZm9fZm9yX25ldHdvcmtsZXNzIikmJihoPSJuZXh0Iik7dmFyIGs9dm9pZCAwO2U9YT09PSJORVciPyJyZWFkd3JpdGUiOiJyZWFkb25seSI7Xy54KCJ1c2VfcmVhZG9ubHlfZm9yX2dldF9tb3N0X3JlY2VudF9ieV9zdGF0dXNfa2lsbHN3aXRjaCIpJiYoZT0icmVhZHdyaXRlIik7YXdhaXQgXy5pbChiLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZTplLGtiOiEwfSxsPT51bChsLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLmluZGV4KCJuZXdSZXF1ZXN0VjIiKSwKe3F1ZXJ5OmYsZGlyZWN0aW9uOmh9LG09PnttLmN1cnNvci52YWx1ZSYmKGs9bS5jdXJzb3IudmFsdWUsYT09PSJORVciJiYoay5zdGF0dXM9IlFVRVVFRCIsbS51cGRhdGUoaykpKX0pKTtjLnRpY2tzLnRjPSgwLF8uZWwpKCk7Tm0oYyk7cmV0dXJuIGt9O1FtPWFzeW5jIGZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uaWwoYXdhaXQgTW0oYiksWyJMb2dzUmVxdWVzdHNTdG9yZSJdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxjPT57dmFyIGQ9Yy5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKTtyZXR1cm4gZC5nZXQoYSkudGhlbihlPT57aWYoZSlyZXR1cm4gZS5zdGF0dXM9IlFVRVVFRCIsXy5sbChkLGUpLnRoZW4oKCk9PmUpfSl9KX07ClJtPWFzeW5jIGZ1bmN0aW9uKGEsYixjPSEwLGQpe3JldHVybiBfLmlsKGF3YWl0IE1tKGIpLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixrYjohMH0sZT0+e3ZhciBmPWUub2JqZWN0U3RvcmUoIkxvZ3NSZXF1ZXN0c1N0b3JlIik7cmV0dXJuIGYuZ2V0KGEpLnRoZW4oaD0+aD8oaC5zdGF0dXM9Ik5FVyIsYyYmKGguc2VuZENvdW50Kz0xKSxkIT09dm9pZCAwJiYoaC5vcHRpb25zLmNvbXByZXNzPWQpLF8ubGwoZixoKS50aGVuKCgpPT5oKSk6Xy5Way5yZXNvbHZlKHZvaWQgMCkpfSl9O1NtPWFzeW5jIGZ1bmN0aW9uKGEsYil7cmV0dXJuKGF3YWl0IE1tKGIpKS5kZWxldGUoIkxvZ3NSZXF1ZXN0c1N0b3JlIixhKX07ClRtPWFzeW5jIGZ1bmN0aW9uKGEpe2E9YXdhaXQgTW0oYSk7dmFyIGI9KDAsXy5lbCkoKS0yNTkyRTY7YXdhaXQgXy5pbChhLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixrYjohMH0sYz0+cWwoYy5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSx7fSxkPT57aWYoZC5jdXJzb3IudmFsdWUudGltZXN0YW1wPD1iKXJldHVybiBkLmRlbGV0ZSgpLnRoZW4oKCk9PnJsKGQpKX0pKX07VW09YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBXbCgpfTtObT1mdW5jdGlvbihhKXtfLngoIm53bF9jc2lfa2lsbHN3aXRjaCIpfHx0bSgibmV0d29ya2xlc3NfcGVyZm9ybWFuY2UiLGEse3NhbXBsZVJhdGU6MX0pfTtXbT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DbChWbSgpLGEpfTsKWG09YXN5bmMgZnVuY3Rpb24oYSl7YT1hd2FpdCBXbShhKTt2YXIgYj0oMCxfLmVsKSgpLTI1OTJFNjthd2FpdCBfLmlsKGEsWyJTV0hlYWx0aExvZyJdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxjPT5xbChjLm9iamVjdFN0b3JlKCJTV0hlYWx0aExvZyIpLHt9LGQ9PntpZihkLmN1cnNvci52YWx1ZS50aW1lc3RhbXA8PWIpcmV0dXJuIGQuZGVsZXRlKCkudGhlbigoKT0+cmwoZCkpfSkpfTtZbT1hc3luYyBmdW5jdGlvbihhKXthd2FpdCAoYXdhaXQgV20oYSkpLmNsZWFyKCJTV0hlYWx0aExvZyIpfTsKXy5hbj1mdW5jdGlvbihhLGIsYyxkLGU9IiIsZj0hMSxoPSExKXtpZihhKWlmKGMmJiFfLk1rKCJjb2JhbHQiKSlfLldpKG5ldyBfLlhqKCJMZWdhY3kgcmVmZXJyZXItc2NydWJiZWQgcGluZyBkZXRlY3RlZCIpKSxhJiZabShhLHZvaWQgMCx7c2NydWJSZWZlcnJlcjohMH0pO2Vsc2UgaWYoZSl4aihhLGIsIlBPU1QiLGUsZCk7ZWxzZSBpZihfLncoIlVTRV9ORVRfQUpBWF9GT1JfUElOR19UUkFOU1BPUlQiLCExKXx8ZHx8aCl4aihhLGIsIkdFVCIsIiIsZCx2b2lkIDAsZixoKTtlbHNle2I6e3RyeXtjOnt2YXIgaz1uZXcgJG0oe3VybDphfSk7aWYoay5qLmRzaD09PSIxIil2YXIgbD1udWxsO2Vsc2V7dmFyIG09ay5qLmFlO2lmKG09PT0iMSIpe2xldCByPWsuai5hZHVybDtpZihyKXRyeXtsPXt2ZXJzaW9uOjMsbXY6ZGVjb2RlVVJJQ29tcG9uZW50KHIpLHp1OklhKGsubywiYWN0PTEiLCJyaT0xIixLYShrKSl9O2JyZWFrIGN9Y2F0Y2godCl7fX1sPW09PT0iMiI/e3ZlcnNpb246NCwKbXY6SWEoay5vLCJkY3Q9MSIsInN1aWQ9IitrLnYsInJpPTEiKSx6dTpJYShrLm8sImFjdD0xIiwicmk9MSIsInN1aWQ9IitrLnYpfTpudWxsfX1pZihsKXtsZXQgcj1fLlFiKGEpO3ZhciBuPSEoIXJ8fCFyLmVuZHNXaXRoKCIvYWNsayIpfHxfLlpiKGEsInJpIikhPT0iMSIpO2JyZWFrIGJ9fWNhdGNoKHIpe31uPSExfWlmKG4pe2I6e3RyeXtpZih3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24mJndpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihhLCIiKSl7dmFyIHA9ITA7YnJlYWsgYn19Y2F0Y2gocil7fXA9ITF9cD8oYiYmYigpLGM9ITApOmM9ITF9ZWxzZSBjPSExO2N8fFptKGEsYil9fTsKWm09ZnVuY3Rpb24oYSxiLGM9e30pe3ZhciBkPW5ldyBJbWFnZSxlPSIiK2JuKys7Y25bZV09ZDtkLm9ubG9hZD1kLm9uZXJyb3I9KCk9PntiJiZjbltlXSYmYigpO2RlbGV0ZSBjbltlXX07Yy5zY3J1YlJlZmVycmVyJiYoZC5yZWZlcnJlclBvbGljeT0ibm8tcmVmZXJyZXIiKTtkLnNyYz1hfTtmbj1mdW5jdGlvbigpe2RufHwoZG49bmV3IF8uZW4oInl0Lm9mZmxpbmUiKSk7cmV0dXJuIGRufTtnbj1mdW5jdGlvbihhKXtpZihfLngoIm9mZmxpbmVfZXJyb3JfaGFuZGxpbmciKSl7dmFyIGI9Zm4oKS5nZXQoImVycm9ycyIsITApfHx7fTtiW2EubWVzc2FnZV09e25hbWU6YS5uYW1lLHN0YWNrOmEuc3RhY2t9O2EubGV2ZWwmJihiW2EubWVzc2FnZV0ubGV2ZWw9YS5sZXZlbCk7Zm4oKS5zZXQoImVycm9ycyIsYiwyNTkyRTMsITApfX07CmpuPWZ1bmN0aW9uKCl7aWYoIWhuLmluc3RhbmNlKXtsZXQgYT1fLnNhKCJ5dC5uZXR3b3JrUmVxdWVzdE1vbml0b3IuaW5zdGFuY2UiKXx8bmV3IGhuO18ucmEoInl0Lm5ldHdvcmtSZXF1ZXN0TW9uaXRvci5pbnN0YW5jZSIsYSk7aG4uaW5zdGFuY2U9YX1yZXR1cm4gaG4uaW5zdGFuY2V9O2xuPWZ1bmN0aW9uKCl7aWYoIWtuLmluc3RhbmNlKXtsZXQgYT1fLnNhKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZSIpfHxuZXcga247Xy5yYSgieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UiLGEpO2tuLmluc3RhbmNlPWF9cmV0dXJuIGtuLmluc3RhbmNlfTsKbW49ZnVuY3Rpb24oYSxiKXthLnJhdGVMaW1pdD9hLmo/KF8uamYuQWEoYS5EKSxhLkQ9Xy5qZi5wYigoKT0+e2EuQiE9PWImJihhLmRpc3BhdGNoRXZlbnQoYiksYS5CPWIsYS5qPSgwLF8uZWwpKCkpfSxhLnJhdGVMaW1pdC0oKDAsXy5lbCkoKS1hLmopKSk6KGEuZGlzcGF0Y2hFdmVudChiKSxhLkI9YixhLmo9KDAsXy5lbCkoKSk6YS5kaXNwYXRjaEV2ZW50KGIpfTsKXy5wbj1mdW5jdGlvbigpe3ZhciBhPV8uc2EoInl0Lm5ldHdvcmtsZXNzUmVxdWVzdENvbnRyb2xsZXIuaW5zdGFuY2UiKTthfHwoYT1uZXcgbm4sXy5yYSgieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIsYSksXy54KCJuZXR3b3JrbGVzc19sb2dnaW5nIikmJl8uUGwoKS50aGVuKGI9PnthLkphPWI7RG0oYSk7YS5CLnJlc29sdmUoKTthLk9pJiZNYXRoLnJhbmRvbSgpPD1hLkRpJiZhLkphJiZYbShhLkphKTtfLngoIm5ldHdvcmtsZXNzX2ltbWVkaWF0ZWx5X2Ryb3Bfc3dfaGVhbHRoX3N0b3JlIikmJm9uKGEpfSkpO3JldHVybiBhfTtvbj1hc3luYyBmdW5jdGlvbihhKXtpZighYS5KYSl0aHJvdyBTaygiY2xlYXJTV0hlYWx0aExvZ3NEYiIpO1ltKGEuSmEpLmNhdGNoKGI9PnthLmhhbmRsZUVycm9yKGIpfSl9Owpxbj1mdW5jdGlvbihhLGIsYyl7Yj1fLngoIndlYl9mcF92aWFfanNwYiIpP09iamVjdC5hc3NpZ24oe30sYik6YjtfLngoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIik/Yi5oZWFkZXJzJiZfLmZqKGEpJiYoYi5oZWFkZXJzWyJYLUdvb2ctUmVxdWVzdC1UaW1lIl09SlNPTi5zdHJpbmdpZnkoTWF0aC5yb3VuZCgoMCxfLmVsKSgpKSkpOmIucG9zdFBhcmFtcz8ucmVxdWVzdFRpbWVNcyYmKGIucG9zdFBhcmFtcy5yZXF1ZXN0VGltZU1zPU1hdGgucm91bmQoKDAsXy5lbCkoKSkpO2MmJk9iamVjdC5rZXlzKGIpLmxlbmd0aD09PTA/Xy5hbihhKTpiLmNvbXByZXNzP2IucG9zdEJvZHk/KHR5cGVvZiBiLnBvc3RCb2R5IT09InN0cmluZyImJihiLnBvc3RCb2R5PUpTT04uc3RyaW5naWZ5KGIucG9zdEJvZHkpKSxBbShhLGIucG9zdEJvZHksYixfLnpqKSk6QW0oYSxKU09OLnN0cmluZ2lmeShiLnBvc3RQYXJhbXMpLGIsQWopOl8uemooYSxiKX07CnJuPWZ1bmN0aW9uKGEsYil7Xy54KCJ1c2VfZXZlbnRfdGltZV9tc19oZWFkZXIiKSYmXy5maihhKSYmKGIuaGVhZGVyc3x8KGIuaGVhZGVycz17fSksYi5oZWFkZXJzWyJYLUdvb2ctRXZlbnQtVGltZSJdPUpTT04uc3RyaW5naWZ5KE1hdGgucm91bmQoKDAsXy5lbCkoKSkpKTtyZXR1cm4gYn07Xy5zbj1mdW5jdGlvbigpe3JldHVybiBfLlBiKGRvY3VtZW50LmxvY2F0aW9uLnRvU3RyaW5nKCkpIT09Ind3dy55b3V0dWJlLW5vY29va2llLmNvbSJ9Owp2bj1mdW5jdGlvbihhLGIsYyxkKXshXy53KCJWSVNJVE9SX0RBVEEiKSYmYiE9PSJ2aXNpdG9yX2lkIiYmTWF0aC5yYW5kb20oKTwuMDEmJl8uV2kobmV3IF8uWGooIk1pc3NpbmcgVklTSVRPUl9EQVRBIHdoZW4gc2VuZGluZyBpbm5lcnR1YmUgcmVxdWVzdC4iLGIsYyxkKSk7aWYoIWEuaXNSZWFkeSgpKXRocm93IGE9bmV3IF8uWGooImlubmVydHViZSB4aHJjbGllbnQgbm90IHJlYWR5IixiLGMsZCksXy5VaShhKSxhO3ZhciBlPXtoZWFkZXJzOmQuaGVhZGVyc3x8e30sbWV0aG9kOiJQT1NUIixwb3N0UGFyYW1zOmMscG9zdEJvZHk6ZC5wb3N0Qm9keSxwb3N0Qm9keUZvcm1hdDpkLnBvc3RCb2R5Rm9ybWF0fHwiSlNPTiIsb25UaW1lb3V0OigpPT57ZC5vblRpbWVvdXQoKX0sb25GZXRjaFRpbWVvdXQ6ZC5vblRpbWVvdXQsb25TdWNjZXNzOihtLG4pPT57aWYoZC5vblN1Y2Nlc3MpZC5vblN1Y2Nlc3Mobil9LG9uRmV0Y2hTdWNjZXNzOm09PntpZihkLm9uU3VjY2VzcylkLm9uU3VjY2VzcyhtKX0sCm9uUHJvZ3Jlc3M6bT0+e2lmKGQub25Qcm9ncmVzcylkLm9uUHJvZ3Jlc3MobSl9LG9uRXJyb3I6KG0sbik9PntpZihkLm9uRXJyb3IpZC5vbkVycm9yKG4pfSxvbkZldGNoRXJyb3I6bT0+e2lmKGQub25FcnJvcilkLm9uRXJyb3IobSl9LHRpbWVvdXQ6ZC50aW1lb3V0LHdpdGhDcmVkZW50aWFsczohMCxjb21wcmVzczpkLmNvbXByZXNzfTtlLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdfHwoZS5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpO2M9IiI7dmFyIGY9YS5jb25maWdfLnp4O2YmJihjPWYpO2Y9YS5jb25maWdfLkF4fHwhMTt2YXIgaD1vbShmLGMsZCk7T2JqZWN0LmFzc2lnbihlLmhlYWRlcnMsaCk7ZS5oZWFkZXJzLkF1dGhvcml6YXRpb24mJiFjJiZmJiYoZS5oZWFkZXJzWyJ4LW9yaWdpbiJdPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO3ZhciBrPWRqKGAke2N9JHtgL3lvdXR1YmVpLyR7YS5jb25maWdfLmlubmVydHViZUFwaVZlcnNpb259LyR7Yn1gfWAsCnthbHQ6Impzb24ifSksbD0obT0hMSk9Pnt0cnl7aWYobSYmZC5yZXRyeSYmIWQubmV0d29ya2xlc3NPcHRpb25zLmJ5cGFzc05ldHdvcmtsZXNzKWUubWV0aG9kPSJQT1NUIixkLm5ldHdvcmtsZXNzT3B0aW9ucy53cml0ZVRoZW5TZW5kP18ucG4oKS53cml0ZVRoZW5TZW5kKGssZSk6Xy5wbigpLnNlbmRBbmRXcml0ZShrLGUpO2Vsc2UgaWYoZC5jb21wcmVzcylpZihlLnBvc3RCb2R5KXtsZXQgbj1lLnBvc3RCb2R5O3R5cGVvZiBuIT09InN0cmluZyImJihuPUpTT04uc3RyaW5naWZ5KGUucG9zdEJvZHkpKTtBbShrLG4sZSxfLnpqKX1lbHNlIEFtKGssSlNPTi5zdHJpbmdpZnkoZS5wb3N0UGFyYW1zKSxlLEFqKTtlbHNlIEFqKGssZSl9Y2F0Y2gobil7aWYobi5uYW1lPT09IkludmFsaWRBY2Nlc3NFcnJvciIpXy5XaShFcnJvcigieWEiKSk7ZWxzZSB0aHJvdyBuO319OyhfLnNhKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIpP18udG4uaXNOd2xJbml0aWFsaXplZDoKXy51bik/TmwoKS50aGVuKG09PntsKG0pfSk6bCghMSl9O18ueW49ZnVuY3Rpb24oYSwuLi5iKXtpZighd24oYSl8fGIuc29tZShjPT4hd24oYykpKXRocm93IEVycm9yKCJ6YSIpO2ZvcihsZXQgYyBvZiBiKXhuKGEsYyl9O3huPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIGluIGIpaWYod24oYltjXSkpe2lmKGMgaW4gYSYmIXduKGFbY10pKXRocm93IEVycm9yKCJBYSIpO2MgaW4gYXx8KGFbY109e30pO3huKGFbY10sYltjXSl9ZWxzZSBpZih6bihiW2NdKSl7aWYoYyBpbiBhJiYhem4oYVtjXSkpdGhyb3cgRXJyb3IoIkJhIik7YyBpbiBhfHwoYVtjXT1bXSk7QW4oYVtjXSxiW2NdKX1lbHNlIGFbY109YltjXTtyZXR1cm4gYX07QW49ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgb2YgYil3bihjKT9hLnB1c2goeG4oe30sYykpOnpuKGMpP2EucHVzaChBbihbXSxjKSk6YS5wdXNoKGMpO3JldHVybiBhfTt3bj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoYSl9Owp6bj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ib2JqZWN0IiYmQXJyYXkuaXNBcnJheShhKX07Xy5Cbj1mdW5jdGlvbigpe3ZhciBhPV8uc2EoIl9sYWN0Iix3aW5kb3cpO3JldHVybiBhPT1udWxsPy0xOk1hdGgubWF4KERhdGUubm93KCktYSwwKX07Cl8uRG49ZnVuY3Rpb24oKXtpZih3aW5kb3cuY3J5cHRvJiZ3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGE9QXJyYXkoMTYpLGI9bmV3IFVpbnQ4QXJyYXkoMTYpO3dpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY109YltjXTtyZXR1cm4gYX1jYXRjaChkKXt9YT1BcnJheSgxNik7Zm9yKGI9MDtiPDE2O2IrKyl7Yz1EYXRlLm5vdygpO2ZvcihsZXQgZD0wO2Q8YyUyMztkKyspYVtiXT1NYXRoLnJhbmRvbSgpO2FbYl09TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1Nil9aWYoQ24pZm9yKGI9MSxjPTA7YzxDbi5sZW5ndGg7YysrKWFbYiUxNl1ePWFbKGItMSklMTZdLzReQ24uY2hhckNvZGVBdChjKSxiKys7cmV0dXJuIGF9OwpFbj1mdW5jdGlvbigpe3ZhciBhPV8uRG4oKSxiPVtdO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckF0KGFbY10mNjMpKTtyZXR1cm4gYi5qb2luKCIiKX07Xy5Gbj1mdW5jdGlvbigpe3ZhciBhPV8udS55dExvZ2dpbmdEb2NEb2N1bWVudE5vbmNlXzthfHwoYT1FbigpLF8ucmEoInl0TG9nZ2luZ0RvY0RvY3VtZW50Tm9uY2VfIixhKSk7cmV0dXJuIGF9O18uR249ZnVuY3Rpb24oYSl7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoO2MrKyliPWIqMzErYS5jaGFyQ29kZUF0KGMpLGM8YS5sZW5ndGgtMSYmKGIlPTB4ODAwMDAwMDAwMDAwKTtyZXR1cm4gYiUxRTV9O18uSW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBIbihhKX07CktuPWZ1bmN0aW9uKGEsYil7Yj1iLmp2O2lmKGEuai5oYXMoYikpcmV0dXJuIGEuai5nZXQoYikucHJvbWlzZTt2YXIgYz1KbihhLGIsW10sITApO2lmKGMhPT12b2lkIDApcmV0dXJuIFByb21pc2UucmVzb2x2ZShjKTt2YXIgZD17fTtkLnByb21pc2U9bmV3IFByb21pc2UoKGUsZik9PntkLlFoPWU7ZC5Rej1mfSk7YS5qLnNldChiLGQpO3JldHVybiBkLnByb21pc2V9OwpKbj1mdW5jdGlvbihhLGIsYyxkPSExKXtpZihjLmluZGV4T2YoYik+LTEpdGhyb3cgRXJyb3IoIkRhYCIrYik7aWYoYS5vLmhhcyhiKSlyZXR1cm4gYS5vLmdldChiKTtpZighYS52LmhhcyhiKSl7aWYoZClyZXR1cm47dGhyb3cgRXJyb3IoIkVhYCIrYik7fWQ9YS52LmdldChiKTtjLnB1c2goYik7aWYoZC5NYiE9PXZvaWQgMCl2YXIgZT1kLk1iO2Vsc2UgaWYoZC5XYyllPWRbXy5Mbl0/TW4oYSxkW18uTG5dLGMpOltdLGU9ZC5XYyguLi5lKTtlbHNlIGlmKGQuUGEpe2U9ZC5QYTtsZXQgZj1lW18uTG5dP01uKGEsZVtfLkxuXSxjKTpbXTtlPW5ldyBlKC4uLmYpfWVsc2UgdGhyb3cgRXJyb3IoIkZhYCIrYik7Yy5wb3AoKTtkLmdifHxhLm8uc2V0KGIsZSk7cmV0dXJuIGV9O01uPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYj9iLm1hcChkPT5kIGluc3RhbmNlb2YgSG4/Sm4oYSxkLmtleSxjLCEwKTpKbihhLGQsYykpOltdfTtfLnk9ZnVuY3Rpb24oKXtObnx8KE5uPW5ldyBPbik7cmV0dXJuIE5ufTsKUW49ZnVuY3Rpb24oKXtyZXR1cm4iaDV2Y2MiaW4gUG4mJlBuLmg1dmNjLnRyYWNlRXZlbnQ/LnRyYWNlQmVnaW4mJlBuLmg1dmNjLnRyYWNlRXZlbnQ/LnRyYWNlRW5kPzE6InBlcmZvcm1hbmNlImluIFBuJiZQbi5wZXJmb3JtYW5jZS5tYXJrJiZQbi5wZXJmb3JtYW5jZS5tZWFzdXJlPzI6MH07Um49ZnVuY3Rpb24oYSl7dmFyIGI9UW4oKTtzd2l0Y2goYil7Y2FzZSAxOlBuLmg1dmNjLnRyYWNlRXZlbnQudHJhY2VCZWdpbigiWVRMUiIsYSk7YnJlYWs7Y2FzZSAyOlBuLnBlcmZvcm1hbmNlLm1hcmsoYCR7YX0tc3RhcnRgKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDpfLmViKGIsInVua25vd24gdHJhY2UgdHlwZSIpfX07ClNuPWZ1bmN0aW9uKGEpe3ZhciBiPVFuKCk7c3dpdGNoKGIpe2Nhc2UgMTpQbi5oNXZjYy50cmFjZUV2ZW50LnRyYWNlRW5kKCJZVExSIixhKTticmVhaztjYXNlIDI6Yj1gJHthfS1zdGFydGA7bGV0IGM9YCR7YX0tZW5kYDtQbi5wZXJmb3JtYW5jZS5tYXJrKGMpO1BuLnBlcmZvcm1hbmNlLm1lYXN1cmUoYSxiLGMpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0Ol8uZWIoYiwidW5rbm93biB0cmFjZSB0eXBlIil9fTtUbj1mdW5jdGlvbihhKXt2YXIgYj1BcnJheS5mcm9tKGEuai5rZXlzKCkpLnNvcnQoKGMsZCk9PmEuZ2V0UHJpb3JpdHkoYS5qW2RdKS1hLmdldFByaW9yaXR5KGEualtjXSkpO2ZvcihsZXQgYyBvZiBiKWI9YS5qW2NdLGIuam9iSWQ9PT12b2lkIDB8fGIuTmp8fChhLnNjaGVkdWxlci5BYShiLmpvYklkKSxhLnNjaGVkdWxlci5HYShiLnhoLDEwKSl9OwpWbj1mdW5jdGlvbihhLGIsYyl7VW4mJmNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQmJmNvbnNvbGUuZ3JvdXBFbmQmJihjb25zb2xlLmdyb3VwQ29sbGFwc2VkKGBbJHthLmNvbnN0cnVjdG9yLm5hbWV9XSAnJHthLnN0YXRlfScgdG8gJyR7Yn0nYCksY29uc29sZS5sb2coIndpdGggbWVzc2FnZTogIixjKSxjb25zb2xlLmdyb3VwRW5kKCkpfTtabj1mdW5jdGlvbihhLGIpe3ZhciBjPWIuZmlsdGVyKGU9PihhLnY/P2UucHJpb3JpdHk/PzApPT09MTApLGQ9Yi5maWx0ZXIoZT0+KGEudj8/ZS5wcmlvcml0eT8/MCkhPT0xMCk7cmV0dXJuIGEuQi5GZz9hc3luYyguLi5lKT0+e2F3YWl0IFduKGMsLi4uZSk7WG4oYSxkLC4uLmUpfTooLi4uZSk9PntZbihjLC4uLmUpO1huKGEsZCwuLi5lKX19OwpXbj1hc3luYyBmdW5jdGlvbihhLC4uLmIpe3ZhciBjPV8uQ2soKTtmb3IobGV0IGQgb2YgYSl7bGV0IGU7Yy5VKCgpPT57JG4oZC5uYW1lKTt2YXIgZj1hbygoKT0+ZC5jYWxsYmFjayguLi5iKSk7KDAsXy5ibykoZik/ZT1fLngoIndlYl9saWZlY3ljbGVfZXJyb3JfaGFuZGxpbmdfa2lsbHN3aXRjaCIpP2YudGhlbigoKT0+e2NvKGQubmFtZSl9KTpmLnRoZW4oKCk9PntjbyhkLm5hbWUpfSxoPT57d2luZG93Lm9uZXJyb3I/LihoLm1lc3NhZ2UsIiIsMCwwLGgpO2NvKGQubmFtZSl9KTpjbyhkLm5hbWUpfSk7ZSYmYXdhaXQgZX19O1huPWZ1bmN0aW9uKGEsYiwuLi5jKXtiPWIubWFwKGQ9Pih7eGg6KCk9PnskbihkLm5hbWUpO2FvKCgpPT5kLmNhbGxiYWNrKC4uLmMpKTtjbyhkLm5hbWUpfSxwcmlvcml0eTphLnY/P2QucHJpb3JpdHk/PzB9KSk7Yi5sZW5ndGgmJihhLmo9bmV3IGVvKGIpKX07ClluPWZ1bmN0aW9uKGEsLi4uYil7dmFyIGM9Xy5DaygpO2ZvcihsZXQgZCBvZiBhKWMuVSgoKT0+eyRuKGQubmFtZSk7YW8oKCk9PmQuY2FsbGJhY2soLi4uYikpO2NvKGQubmFtZSl9KX07JG49ZnVuY3Rpb24oYSl7Zm8mJmEmJlJuKGEpfTtjbz1mdW5jdGlvbihhKXtmbyYmYSYmU24oYSl9O2FvPWZ1bmN0aW9uKGEpe2lmKF8ueCgid2ViX2xpZmVjeWNsZV9lcnJvcl9oYW5kbGluZ19raWxsc3dpdGNoIikpcmV0dXJuIGEoKTt0cnl7cmV0dXJuIGEoKX1jYXRjaChiKXt3aW5kb3cub25lcnJvcj8uKGIubWVzc2FnZSwiIiwwLDAsYil9fTtfLmlvPWZ1bmN0aW9uKCl7Z298fChnbz1uZXcgaG8pO3JldHVybiBnb307Xy5rbz1mdW5jdGlvbihhKXtyZXR1cm4gXy5zYSgieXRjc2kuIisoYXx8IiIpKyJkYXRhXyIpfHxfLmpvKGEpfTtfLmxvPWZ1bmN0aW9uKGEpe2E9Xy5rbyhhKTthLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSk7cmV0dXJuIGEubWV0YWRhdGF9OwpfLm1vPWZ1bmN0aW9uKGEpe2E9Xy5rbyhhKTthLnRpY2t8fChhLnRpY2s9e30pO3JldHVybiBhLnRpY2t9O18ubm89ZnVuY3Rpb24oYSl7YT1fLmtvKGEpO2lmKGEuZ2VsKXtsZXQgYj1hLmdlbDtiLmdlbEluZm9zfHwoYi5nZWxJbmZvcz17fSk7Yi5nZWxUaWNrc3x8KGIuZ2VsVGlja3M9e30pfWVsc2UgYS5nZWw9e2dlbFRpY2tzOnt9LGdlbEluZm9zOnt9fTtyZXR1cm4gYS5nZWx9O18ub289ZnVuY3Rpb24oYSl7YT1fLm5vKGEpO2EuZ2VsSW5mb3N8fChhLmdlbEluZm9zPXt9KTtyZXR1cm4gYS5nZWxJbmZvc307Xy5wbz1mdW5jdGlvbihhKXt2YXIgYj1fLmtvKGEpLm5vbmNlO2J8fChiPUVuKCksXy5rbyhhKS5ub25jZT1iKTtyZXR1cm4gYn07Xy5qbz1mdW5jdGlvbihhKXt2YXIgYj17dGljazp7fSxpbmZvOnt9fTtfLnJhKCJ5dGNzaS4iKyhhfHwiIikrImRhdGFfIixiKTtyZXR1cm4gYn07CnFvPWZ1bmN0aW9uKCl7dmFyIGE9Xy5zYSgieXRjc2kuZGVidWciKTthfHwoYT1bXSxfLnJhKCJ5dGNzaS5kZWJ1ZyIsYSksXy5yYSgieXRjc2kucmVmZXJlbmNlIix7fSkpO3JldHVybiBhfTtfLnNvPWZ1bmN0aW9uKGEpe3ZhciBiPXFvKCk7Yi5wdXNoKGEpO18ueCgibGltaXRfeXRjc2lfZGVidWdfYXJyYXlfc2l6ZSIpJiZiLmxlbmd0aD5ybyYmYi5zcGxpY2UoMCxiLmxlbmd0aC1ybyl9O18udW89ZnVuY3Rpb24oYSl7YT1hfHwiIjt2YXIgYj1fLnRvKCk7aWYoYlthXSlyZXR1cm4gYlthXTt2YXIgYz17dGltZXJOYW1lOmEsaW5mbzp7fSx0aWNrOnt9LHNwYW46e30sanNwYkluZm86W119O18uc28oYyk7cmV0dXJuIGJbYV09Y307Xy50bz1mdW5jdGlvbigpe3ZhciBhPV8uc2EoInl0Y3NpLnJlZmVyZW5jZSIpO2lmKGEpcmV0dXJuIGE7cW8oKTtyZXR1cm4gXy5zYSgieXRjc2kucmVmZXJlbmNlIil9Owp2bz1mdW5jdGlvbihhKXtpZihhLm5hbWU9PT0iSmF2YUV4Y2VwdGlvbiIpcmV0dXJuITA7YT1hLnN0YWNrO3JldHVybiBhLmluY2x1ZGVzKCJjaHJvbWU6Ly8iKXx8YS5pbmNsdWRlcygiLWV4dGVuc2lvbjovLyIpfHxhLmluY2x1ZGVzKCJ3ZWJraXQtbWFza2VkLXVybDovLyIpfTt3bz1mdW5jdGlvbihhKXtpZighYS5zdGFjaylyZXR1cm4hMDt2YXIgYj0hYS5zdGFjay5pbmNsdWRlcygiXG4iKTtyZXR1cm4gYiYmYS5zdGFjay5pbmNsdWRlcygiRXJyb3JUeXBlOiAiKXx8YiYmYS5zdGFjay5pbmNsdWRlcygiQW5vbnltb3VzIGZ1bmN0aW9uIChVbmtub3duIHNjcmlwdCIpfHxhLnN0YWNrLnRvTG93ZXJDYXNlKCk9PT0ibm90IGF2YWlsYWJsZSJ8fGEuZmlsZU5hbWU9PT0idXNlci1zY3JpcHQifHxhLmZpbGVOYW1lLnN0YXJ0c1dpdGgoInVzZXItc2NyaXB0OiIpPyEwOiExfTsKXy5Cbz1mdW5jdGlvbigpe2lmKCF4byl7dmFyIGE9eG89bmV3IHlvO2EubGUubGVuZ3RoPTA7YS5TZC5sZW5ndGg9MDtfLnpvKGEsQW8pfXJldHVybiB4b307Xy56bz1mdW5jdGlvbihhLGIpe2IubGUmJmEubGUudW5zaGlmdC5hcHBseShhLmxlLGIubGUpO2IuU2QmJmEuU2QudW5zaGlmdC5hcHBseShhLlNkLGIuU2QpfTtfLkNvPWZ1bmN0aW9uKGEpe3JldHVybiBhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpfTsKXy5Fbz1mdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MCxlPSgpPT5hLmNoYXJDb2RlQXQoZCsrKTtkb3t2YXIgZj1EbyhlKTtpZihmPT09SW5maW5pdHkpYnJlYWs7bGV0IGg9Zj4+Mztzd2l0Y2goZiY3KXtjYXNlIDA6Zj1EbyhlKTtpZihoPT09YilyZXR1cm4gZjticmVhaztjYXNlIDE6aWYoaD09PWIpcmV0dXJuO2QrPTg7YnJlYWs7Y2FzZSAyOmY9RG8oZSk7aWYoaD09PWIpcmV0dXJuIGEuc3Vic3RyKGQsZik7ZCs9ZjticmVhaztjYXNlIDU6aWYoaD09PWIpcmV0dXJuO2QrPTQ7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fXdoaWxlKGQ8Yyl9O0RvPWZ1bmN0aW9uKGEpe3ZhciBiPWEoKSxjPWImMTI3O2lmKGI8MTI4KXJldHVybiBjO2I9YSgpO2N8PShiJjEyNyk8PDc7aWYoYjwxMjgpcmV0dXJuIGM7Yj1hKCk7Y3w9KGImMTI3KTw8MTQ7aWYoYjwxMjgpcmV0dXJuIGM7Yj1hKCk7cmV0dXJuIGI8MTI4P2N8KGImMTI3KTw8MjE6SW5maW5pdHl9OwpIbz1mdW5jdGlvbihhLGIsYyxkKXtpZihhKWlmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBlPWQ7Zm9yKGQ9MDtkPGEubGVuZ3RoJiYhKGFbZF0mJihlKz1GbyhkLGFbZF0sYixjKSxlPjUwMCkpO2QrKyk7ZD1lfWVsc2UgaWYodHlwZW9mIGE9PT0ib2JqZWN0Iilmb3IoZSBpbiBhKXtpZihhW2VdKXthOnt2YXIgZj1lO3ZhciBoPWFbZV0saz1iLGw9YztpZih0eXBlb2YgaCE9PSJzdHJpbmcifHxmIT09ImNsaWNrVHJhY2tpbmdQYXJhbXMiJiZmIT09InRyYWNraW5nUGFyYW1zIil7Zj0wO2JyZWFrIGF9Zj0oaD1fLkVvKF8uQ28oaCksMikpP0ZvKGAke2Z9LnZlYCxoLGssbCk6MH1kKz1mO2QrPUZvKGUsYVtlXSxiLGMpO2lmKGQ+NTAwKWJyZWFrfX1lbHNlIGNbYl09R28oYSksZCs9Y1tiXS5sZW5ndGg7ZWxzZSBjW2JdPUdvKGEpLGQrPWNbYl0ubGVuZ3RoO3JldHVybiBkfTsKRm89ZnVuY3Rpb24oYSxiLGMsZCl7Yys9YC4ke2F9YDthPUdvKGIpO2RbY109YTtyZXR1cm4gYy5sZW5ndGgrYS5sZW5ndGh9O0dvPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4odHlwZW9mIGE9PT0ic3RyaW5nIj9hOlN0cmluZyhKU09OLnN0cmluZ2lmeShhKSkpLnN1YnN0cigwLDUwMCl9Y2F0Y2goYil7cmV0dXJuYHVuYWJsZSB0byBzZXJpYWxpemUgJHt0eXBlb2YgYX0gKCR7Yi5tZXNzYWdlfSlgfX07CktvPWZ1bmN0aW9uKGEsYil7dmFyIGM9SW8oYik7aWYoYS5qW2NdKXJldHVybiBhLmpbY107dmFyIGQ9T2JqZWN0LmtleXMoYS5zdG9yZSl8fFtdO2lmKGQubGVuZ3RoPD0xJiZJbyhiKT09PWRbMF0pcmV0dXJuIGQ7dmFyIGU9W107Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspe2xldCBrPWRbaF0uc3BsaXQoIi8iKTtpZihKbyhiLmF1dGgsa1swXSkpe3ZhciBmPWIuaXNKc3BiO0pvKGY9PT12b2lkIDA/InVuZGVmaW5lZCI6Zj8idHJ1ZSI6ImZhbHNlIixrWzFdKSYmSm8oYi5jdHRBdXRoSW5mbyxrWzJdKSYmKGY9Yi50aWVyLGY9Zj09PXZvaWQgMD8idW5kZWZpbmVkIjpKU09OLnN0cmluZ2lmeShmKSxKbyhmLGtbM10pJiZlLnB1c2goZFtoXSkpfX1yZXR1cm4gYS5qW2NdPWV9O0pvPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT0idW5kZWZpbmVkIj8hMDphPT09Yn07CklvPWZ1bmN0aW9uKGEpe3JldHVyblthLmF1dGg9PT12b2lkIDA/InVuZGVmaW5lZCI6YS5hdXRoLGEuaXNKc3BiPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEuaXNKc3BiLGEuY3R0QXV0aEluZm89PT12b2lkIDA/InVuZGVmaW5lZCI6YS5jdHRBdXRoSW5mbyxhLnRpZXI9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50aWVyXS5qb2luKCIvIil9O18uQj1mdW5jdGlvbihhLGIpe2lmKGEpcmV0dXJuIGFbYi5uYW1lXX07TG89ZnVuY3Rpb24oKXtyZXR1cm4gXy54KCJodG1sNV9zZW5kX3FvZV9vbl9nZWwiKXx8Xy54KCJ3ZWJfc2VuZF92c3MzX2lzb2xhdGVkX3BheWxvYWQiKX07T289ZnVuY3Rpb24oYSl7TW89YTtMbygpJiYoXy51Lnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yXz1hKTtObz1uZXcgYX07UW89ZnVuY3Rpb24oKXt2YXIgYT1fLnNhKCJ5dC5sb2dnaW5nLmltcyIpO2F8fChhPW5ldyBQbyxfLnJhKCJ5dC5sb2dnaW5nLmltcyIsYSkpO3JldHVybiBhfTsKJG89ZnVuY3Rpb24oYSxiKXtpZihhLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe1JvKGEpO3ZhciBjPVNvKGEpLGQ9VG8oYS5wYXlsb2FkKXx8IiI7YTp7aWYoXy54KCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSl7dmFyIGU9VW9bZHx8IiJdO3ZhciBmPV8ueSgpLnJlc29sdmUoXy5JbihpbSkpPy53aigpPy5sb2dnaW5nSG90Q29uZmlnPy5ldmVudExvZ2dpbmdDb25maWc/LnBheWxvYWRQb2xpY2llcztpZihmKWZvcihsZXQgaD0wO2g8Zi5sZW5ndGg7aCsrKWlmKGZbaF0ucGF5bG9hZE51bWJlcj09PWUpe2U9ZltoXTticmVhayBhfX1lPXZvaWQgMH1mPTIwMDtpZihlKXtpZihlLmVuYWJsZWQ9PT0hMSYmIV8ueCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47Zj1WbyhlLnRpZXIpO2lmKGY9PT00MDApe1dvKGEsYik7cmV0dXJufX1Yb1tjXT0hMDtjPXtjdHRBdXRoSW5mbzpjLGlzSnNwYjohMSx0aWVyOmZ9O1FvKCkuc3RvcmVQYXlsb2FkKGMsCmEucGF5bG9hZCk7WW8oYixjLFpvKGQpKX19O1lvPWZ1bmN0aW9uKGEsYixjPSExKXthJiZPbyhhKTthPV8uc2ooInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2hfYWRzX2ZvcmsiKXx8Xy5zaigidHZodG1sNV9sb2dnaW5nX21heF9iYXRjaCIpfHxfLnNqKCJ3ZWJfbG9nZ2luZ19tYXhfYmF0Y2giKXx8MTAwO3ZhciBkPSgwLF8uZWwpKCksZT1hcCghMSxiLnRpZXIpLGY9ZS5CO2MmJihlLmo9ITApO2M9MDtiJiYoYz1RbygpLmdldFNlcXVlbmNlQ291bnQoYikpO3ZhciBoPSgpPT57Xy5icCh7d3JpdGVUaGVuU2VuZDohMH0sdm9pZCAwLCExLGIudGllcil9O2M+PTFFMz9oKCk6Yz49YT9jcHx8KGNwPWRwKCgpPT57aCgpO2NwPXZvaWQgMH0sMCkpOmQtZj49MTAmJihlcCghMSxiLnRpZXIpLGUuQj1kKX07CldvPWZ1bmN0aW9uKGEsYil7aWYoYS5lbmRwb2ludD09PSJsb2dfZXZlbnQiKXtfLngoIm1vcmVfYWNjdXJhdGVfZ2VsX3BhcnNlciIpJiZRbygpLnN0b3JlUGF5bG9hZCh7aXNKc3BiOiExfSxhLnBheWxvYWQpO1JvKGEpO3ZhciBjPVNvKGEpLGQ9bmV3IE1hcDtkLnNldChjLFthLnBheWxvYWRdKTt2YXIgZT1UbyhhLnBheWxvYWQpfHwiIjsoYT1iP2I6TG8oKT9Nb3x8Xy51Lnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yX3x8bnVsbDpudWxsKSYmT28oYSk7cmV0dXJuIG5ldyBfLkJmKChmLGgpPT57Tm8mJk5vLmlzUmVhZHkoKT9mcChkLE5vLGYsaCx7YnlwYXNzTmV0d29ya2xlc3M6ITB9LCEwLFpvKGUpKTpmKCl9KX19OwpTbz1mdW5jdGlvbihhKXt2YXIgYj0iIjtpZihhLmRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb24pYj0idmlzaXRvck9ubHlBcHByb3ZlZEtleSI7ZWxzZSBpZihhLmN0dEF1dGhJbmZvKXtiPWEuY3R0QXV0aEluZm87bGV0IGM9e307Yi52aWRlb0lkP2MudmlkZW9JZD1iLnZpZGVvSWQ6Yi5wbGF5bGlzdElkJiYoYy5wbGF5bGlzdElkPWIucGxheWxpc3RJZCk7Z3BbYS5jdHRBdXRoSW5mby50b2tlbl09YztiPWEuY3R0QXV0aEluZm8udG9rZW59cmV0dXJuIGJ9OwpfLmJwPWZ1bmN0aW9uKGE9e30sYixjPSExLGQpe25ldyBfLkJmKChlLGYpPT57dmFyIGg9YXAoYyxkKSxrPWguajtoLmo9ITE7aWYoXy54KCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSYmXy54KCJ3ZWJfdnNzX3JvdXRpbmdfY2hlY2tfYWxsX3RpZXJfcG9saWNpZXMiKSl7bGV0IGw9YXAoYywzMDApLG09YXAoYywyMDApO2s9a3x8bC5qfHxtLmo7bC5qPSExO20uaj0hMX1ocChoLnYpO2hwKGgubyk7aC5vPTA7Tm8mJk5vLmlzUmVhZHkoKT9kPT09dm9pZCAwJiZfLngoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpP2lwKGUsZixhLGIsYywzMDAsayk6aXAoZSxmLGEsYixjLGQsayk6KGVwKGMsZCksZSgpKX0pfTsKaXA9ZnVuY3Rpb24oYSxiLGM9e30sZCxlPSExLGY9MjAwLGg9ITEpe3ZhciBrPU5vLGw9bmV3IE1hcCxtPXtpc0pzcGI6ZSxjdHRBdXRoSW5mbzpkLHRpZXI6Zn07ZT17aXNKc3BiOmUsY3R0QXV0aEluZm86ZH07aWYoZCE9PXZvaWQgMClmPV8ueCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/UW8oKS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2tleXM6W20sZV0sc2l6ZUxpbWl0OjFFM30pOlFvKCkuZXh0cmFjdE1hdGNoaW5nRW50cmllcyhlKSxsLnNldChkLGYpO2Vsc2UgZm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKFhvKSlkPV8ueCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/UW8oKS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2tleXM6W3tpc0pzcGI6ITEsY3R0QXV0aEluZm86bix0aWVyOmZ9LHtpc0pzcGI6ITEsY3R0QXV0aEluZm86bn1dLHNpemVMaW1pdDoxRTN9KTpRbygpLmV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2lzSnNwYjohMSxjdHRBdXRoSW5mbzpufSksCmQubGVuZ3RoPjAmJmwuc2V0KG4sZCksKF8ueCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikmJmMud3JpdGVUaGVuU2VuZHx8IV8ueCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikpJiZkZWxldGUgWG9bbl07ZnAobCxrLGEsYixjLCExLGgpfTsKZXA9ZnVuY3Rpb24oYT0hMSxiPTIwMCl7dmFyIGM9KCk9PntfLmJwKHt3cml0ZVRoZW5TZW5kOiEwfSx2b2lkIDAsYSxiKX0sZD1hcChhLGIpLGU9ZD09PWpwfHxkPT09a3A/NUUzOmxwO18ueCgid2ViX2dlbF90aW1lb3V0X2NhcCIpJiYhZC5vJiYoZT1kcCgoKT0+e2MoKX0sZSksZC5vPWUpO2hwKGQudik7ZT1fLncoIkxPR0dJTkdfQkFUQ0hfVElNRU9VVCIsXy5zaigid2ViX2dlbF9kZWJvdW5jZV9tcyIsMUU0KSk7Xy54KCJzaG9ydGVuX2luaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiKSYmbXAmJihlPW5wKTtlPWRwKCgpPT57Xy5zaigiZ2VsX21pbl9iYXRjaF9zaXplIik+MD9RbygpLmdldFNlcXVlbmNlQ291bnQoe2N0dEF1dGhJbmZvOnZvaWQgMCxpc0pzcGI6YSx0aWVyOmJ9KT49b3AmJmMoKTpjKCl9LGUpO2Qudj1lfTsKZnA9ZnVuY3Rpb24oYSxiLGMsZCxlPXt9LGYsaCl7dmFyIGs9TWF0aC5yb3VuZCgoMCxfLmVsKSgpKSxsPWEuc2l6ZSxtPXBwKGgpO2ZvcihsZXQgW24scF1vZiBhKXthPW47aD1wO2xldCByPV8ucWQoe2NvbnRleHQ6bW0oYi5jb25maWdffHxsbSgpKX0pO2lmKCFfLnlhKGgpJiYhXy54KCJ0aHJvd19lcnJfd2hlbl9sb2dldmVudF9tYWxmb3JtZWRfa2lsbHN3aXRjaCIpKXtkKCk7YnJlYWt9ci5ldmVudHM9aDsoaD1ncFthXSkmJnFwKHIsYSxoKTtkZWxldGUgZ3BbYV07bGV0IHQ9YT09PSJ2aXNpdG9yT25seUFwcHJvdmVkS2V5IjtycChyLGssdCk7Xy54KCJhbHdheXNfc2VuZF9hbmRfd3JpdGUiKSYmKGUud3JpdGVUaGVuU2VuZD0hMSk7bGV0IHY9QT0+e18ueCgic3RhcnRfY2xpZW50X2djZiIpJiZfLmpmLnBiKGFzeW5jKCk9Pnthd2FpdCBzcChBKX0pO2wtLTtsfHxjKCl9LHo9MCxFPSgpPT57eisrO2lmKGUuYnlwYXNzTmV0d29ya2xlc3MmJno9PT0xKXRyeXt2bihiLG0scix0cCh7d3JpdGVUaGVuU2VuZDohMH0sCnQsdixFLGYpKSxtcD0hMX1jYXRjaChBKXtfLlVpKEEpLGQoKX1sLS07bHx8YygpfTt0cnl7dm4oYixtLHIsdHAoZSx0LHYsRSxmKSksbXA9ITF9Y2F0Y2goQSl7Xy5VaShBKSxkKCl9fX07dHA9ZnVuY3Rpb24oYSxiLGMsZCxlKXthPXtyZXRyeTohMCxvblN1Y2Nlc3M6YyxvbkVycm9yOmQsbmV0d29ya2xlc3NPcHRpb25zOmEsZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbjpiLGJJOiEhZSxoZWFkZXJzOnt9LHBvc3RCb2R5Rm9ybWF0OiIiLHBvc3RCb2R5OiIiLGNvbXByZXNzOl8ueCgiY29tcHJlc3NfZ2VsIil8fF8ueCgiY29tcHJlc3NfZ2VsX2xyIil9O3VwKCkmJihhLmhlYWRlcnNbIlgtR29vZy1SZXF1ZXN0LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLF8uZWwpKCkpKSk7cmV0dXJuIGF9OwpycD1mdW5jdGlvbihhLGIsYyl7dXAoKXx8KGEucmVxdWVzdFRpbWVNcz1TdHJpbmcoYikpO18ueCgidW5zcGxpdF9nZWxfcGF5bG9hZHNfaW5fbG9ncyIpJiYoYS51bnNwbGl0R2VsUGF5bG9hZHNJbkxvZ3M9ITApOyFjJiYoYj1fLncoIkVWRU5UX0lEIikpJiYoKGM9Xy53KCJCQVRDSF9DTElFTlRfQ09VTlRFUiIpfHwwKXx8KGM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjY1NTM1LzIpKSxjKyssYz42NTUzNSYmKGM9MSksXy5RaSgiQkFUQ0hfQ0xJRU5UX0NPVU5URVIiLGMpLGEuc2VyaWFsaXplZENsaWVudEV2ZW50SWQ9e3NlcmlhbGl6ZWRFdmVudElkOmIsY2xpZW50Q291bnRlcjpTdHJpbmcoYyl9KX07CnFwPWZ1bmN0aW9uKGEsYixjKXtpZihjLnZpZGVvSWQpdmFyIGQ9IlZJREVPIjtlbHNlIGlmKGMucGxheWxpc3RJZClkPSJQTEFZTElTVCI7ZWxzZSByZXR1cm47YS5jcmVkZW50aWFsVHJhbnNmZXJUb2tlblRhcmdldElkPWM7YS5jb250ZXh0PWEuY29udGV4dHx8e307YS5jb250ZXh0LnVzZXI9YS5jb250ZXh0LnVzZXJ8fHt9O2EuY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOmIsc2NvcGU6ZH1dfTsKUm89ZnVuY3Rpb24oYSl7dmFyIGI9Xy50aigiaWxfcGF5bG9hZF9zY3JhcGluZyIpPT09ImVuYWJsZV9pbF9wYXlsb2FkX3NjcmFwaW5nIjtpZighXy5zYSgieXQubG9nZ2luZy50cmFuc3BvcnQuZW5hYmxlU2NyYXBpbmdGb3JUZXN0IikpaWYoYil2cD1bXSxfLnJhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5lbmFibGVTY3JhcGluZ0ZvclRlc3QiLCEwKSxfLnJhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVkUGF5bG9hZHNGb3JUZXN0aW5nIix2cCksXy5yYSgieXQubG9nZ2luZy50cmFuc3BvcnQucGF5bG9hZFRvU2NyYXBlIiwidmlzdWFsRWxlbWVudFNob3duIHZpc3VhbEVsZW1lbnRIaWRkZW4gdmlzdWFsRWxlbWVudEF0dGFjaGVkIHNjcmVlbkNyZWF0ZWQgdmlzdWFsRWxlbWVudEdlc3R1cmVkIHZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLnNwbGl0KCIgIikpLF8ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmdldFNjcmFwZWRQYXlsb2FkRnJvbUNsaWVudEV2ZW50c0Z1bmN0aW9uIiksCl8ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZUNsaWVudEV2ZW50IiwhMCk7ZWxzZSByZXR1cm47Yj1fLnNhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVkUGF5bG9hZHNGb3JUZXN0aW5nIik7dmFyIGM9Xy5zYSgieXQubG9nZ2luZy50cmFuc3BvcnQucGF5bG9hZFRvU2NyYXBlIiksZD1fLnNhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVDbGllbnRFdmVudCIpO2lmKGMmJmMubGVuZ3RoPj0xKWZvcihsZXQgZT0wO2U8Yy5sZW5ndGg7ZSsrKWEmJmEucGF5bG9hZFtjW2VdXSYmKGQ/Yi5wdXNoKGEucGF5bG9hZCk6Yi5wdXNoKChhPy5wYXlsb2FkKVtjW2VdXSkpO18ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLGIpfTt1cD1mdW5jdGlvbigpe3JldHVybiBfLngoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIil8fF8ueCgibHJfdXNlX3JlcXVlc3RfdGltZV9tc19oZWFkZXIiKX07CmRwPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8ueCgidHJhbnNwb3J0X3VzZV9zY2hlZHVsZXIiKT09PSExP18ubWooYSxiKTpfLngoImxvZ2dpbmdfYXZvaWRfYmxvY2tpbmdfZHVyaW5nX25hdmlnYXRpb24iKXx8Xy54KCJscl9sb2dnaW5nX2F2b2lkX2Jsb2NraW5nX2R1cmluZ19uYXZpZ2F0aW9uIik/Xy5ZaigoKT0+e18uaW8oKS5jdXJyZW50U3RhdGU9PT0ibm9uZSI/YSgpOl8uaW8oKS5pbnN0YWxsKHtub25lOntjYWxsYmFjazphfX0pfSxiKTpfLllqKGEsYil9O2hwPWZ1bmN0aW9uKGEpe18ueCgidHJhbnNwb3J0X3VzZV9zY2hlZHVsZXIiKT9fLmpmLkFhKGEpOndpbmRvdy5jbGVhclRpbWVvdXQoYSl9OwpzcD1hc3luYyBmdW5jdGlvbihhKXthPWE/LnJlc3BvbnNlQ29udGV4dD8uZ2xvYmFsQ29uZmlnR3JvdXA7dmFyIGI9Xy5CKGEsd3ApLGM9YT8uaG90SGFzaERhdGEsZD1fLkIoYSx4cCksZT1hPy5jb2xkSGFzaERhdGEsZj1fLnkoKS5yZXNvbHZlKF8uSW4oaW0pKTtmJiYoYyYmKGI/YXdhaXQgZ20oZixjLGIpOmF3YWl0IGdtKGYsYykpLGUmJihkP2F3YWl0IGhtKGYsZSxkKTphd2FpdCBobShmLGUpKSk7Yj1hPy5yYXdGaW5jaFN0YXRpY0NvbmZpZ0dyb3VwOyhhPWE/LmZpbmNoU3RhdGljSGFzaERhdGEpPyhjPV8ueSgpLnJlc29sdmUoXy5Jbih5cCkpKT9hd2FpdCBjLndLKHtjb25maWc6Ynx8e30saUk6YXx8IiJ9KTooYnx8YSkmJl8uV2kobmV3IF8uWGooIkZpbmNoQ29uZmlnTWFuYWdlclNlcnZpY2UgaXMgbm90IHByZXNlbnQsIGJ1dCBGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LiIpKTpiJiZfLldpKG5ldyBfLlhqKCJGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LCBidXQgaGFzaCBpcyBtaXNzaW5nLiIpKX07CmFwPWZ1bmN0aW9uKGEsYj0yMDApe3JldHVybiBhP2I9PT0zMDA/anA6enA6Yj09PTMwMD9rcDpBcH07VG89ZnVuY3Rpb24oYSl7YT1PYmplY3Qua2V5cyhhKTtmb3IobGV0IGIgb2YgYSlpZihVb1tiXSlyZXR1cm4gYn07Vm89ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9VTlNQRUNJRklFRCI6cmV0dXJuIDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RFRkFVTFQiOnJldHVybiAxMDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RJU1BBVENIX1RPX0VNUFRZIjpyZXR1cm4gMjAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9GQVNUIjpyZXR1cm4gMzAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9JTU1FRElBVEUiOnJldHVybiA0MDA7ZGVmYXVsdDpyZXR1cm4gMjAwfX07Wm89ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0iZ2VsRGVidWdnaW5nRXZlbnQifHxhPT09IndhdGNoVGltZVNlZ21lbnQifTsKcHA9ZnVuY3Rpb24oYT0hMSl7cmV0dXJuIGEmJl8ueCgidnNzX3Rocm91Z2hfZ2VsX3ZpZGVvX3N0YXRzIik/InZpZGVvX3N0YXRzIjoibG9nX2V2ZW50In07Cl8uQ3A9ZnVuY3Rpb24oYSxiLGMsZD17fSl7dmFyIGU9e30sZj1NYXRoLnJvdW5kKGQudGltZXN0YW1wfHwoMCxfLmVsKSgpKTtlLmV2ZW50VGltZU1zPWY8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/ZjowO2VbYV09YjthPV8uQm4oKTtlLmNvbnRleHQ9e2xhc3RBY3Rpdml0eU1zOlN0cmluZyhkLnRpbWVzdGFtcHx8IWlzRmluaXRlKGEpPy0xOmEpfTtkLnNlcXVlbmNlR3JvdXAmJiFfLngoIndlYl9nZWxfc2VxdWVuY2VfaW5mb19raWxsc3dpdGNoIikmJihhPWUuY29udGV4dCxiPWQuc2VxdWVuY2VHcm91cCxCcFtiXT1iIGluIEJwP0JwW2JdKzE6MCxhLnNlcXVlbmNlPXtpbmRleDpCcFtiXSxncm91cEtleTpifSxkLmVuZE9mU2VxdWVuY2UmJmRlbGV0ZSBCcFtkLnNlcXVlbmNlR3JvdXBdKTtfLngoIndlYl90YWdfYXV0b21hdGVkX2xvZ19ldmVudHMiKSYmKGUuY29udGV4dC5hdXRvbWF0ZWRMb2dFdmVudFNvdXJjZT1kLmF1dG9tYXRlZExvZ0V2ZW50U291cmNlKTsoZC5zZW5kSXNvbGF0ZWRQYXlsb2FkPwpXbzokbykoe2VuZHBvaW50OiJsb2dfZXZlbnQiLHBheWxvYWQ6ZSxjdHRBdXRoSW5mbzpkLmN0dEF1dGhJbmZvLGRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb246ZC5kYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9ufSxjKX07Xy5FcD1mdW5jdGlvbihhLGIsYz17fSl7dmFyIGQ9RHA7Xy53KCJ5dExvZ2dpbmdFdmVudHNEZWZhdWx0RGlzYWJsZWQiLCExKSYmRHA9PT1EcCYmKGQ9bnVsbCk7Xy5DcChhLGIsZCxjKX07CkZwPWZ1bmN0aW9uKGEsYj17fSl7aWYoYT1hLk5kKXtsZXQgYz1hLmZoLGQ9YS5BbDthPVtbImNvbXBvbmVudFN0YWNrIixhLmNvbXBvbmVudFN0YWNrXSxbIndpelRhZ05hbWUiLGEudGFnTmFtZV0sWyJ3aXpPd25lclRyYWNlIixhLnByPy5qb2luKCIgPiAiKV0sWyJlcnJvclNldmVyaXR5IixjPy50b1N0cmluZygpXSxbIndpekZlYXR1cmVGbGFncyIsZD9PYmplY3QuZW50cmllcyhkKS5qb2luKCJcbiIpOnZvaWQgMF1dO2ZvcihsZXQgW2UsZl1vZiBhKWE9ZixhIT09dm9pZCAwJiYoYltlXT1hKX1yZXR1cm4gYn07Xy5IcD1mdW5jdGlvbihhKXtfLkdwKGEpfTtfLklwPWZ1bmN0aW9uKGEpe18uR3AoYSwiV0FSTklORyIpfTsKXy5HcD1mdW5jdGlvbihhLGI9IkVSUk9SIixjLGQsZSxmPXt9LGg9ITEsayl7Zi5uYW1lPWN8fF8udygiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiLDEpO2YudmVyc2lvbj1kfHxfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIik7SnAoYSxmLGIsaCxrKX07CkpwPWZ1bmN0aW9uKGEsYixjPSJFUlJPUiIsZD0hMSxlKXtpZihhKXthLmhhc093blByb3BlcnR5KCJsZXZlbCIpJiZhLmxldmVsJiYoYz1hLmxldmVsKTtpZihfLngoIndpel9lbmFibGVfbWV0YWRhdGFfZXh0cmFjdGlvbl9raWxsc3dpdGNoIikpe3ZhciBmPWI7aWYoIWY/LmNvbXBvbmVudFN0YWNrKXt2YXIgaD1hLk5kPy5jb21wb25lbnRTdGFjaztoJiYoZnx8KGY9e30pLGYuY29tcG9uZW50U3RhY2s9aCl9Yj1mfHxifWVsc2UgYj1GcChhLGIpLGY9YS5OZD8uZmgsZiE9PXZvaWQgMCYmYyE9PSJJR05PUkVEIiYmKGM9Zj49Mz8iRVJST1IiOiJXQVJOSU5HIik7aWYoXy54KCJjb25zb2xlX2xvZ19qc19leGNlcHRpb25zIil8fFsidGVzdCIsImRldiIsImF1dG9wdXNoIiwic3RhZ2luZyJdLmluY2x1ZGVzKF8udygiU0VSVkVSX1ZFUlNJT04iKSkpZj1bXSxmLnB1c2goYE5hbWU6ICR7YS5uYW1lfWApLGYucHVzaChgTWVzc2FnZTogJHthLm1lc3NhZ2V9YCksYS5oYXNPd25Qcm9wZXJ0eSgicGFyYW1zIikmJgpmLnB1c2goYEVycm9yIFBhcmFtczogJHtKU09OLnN0cmluZ2lmeShhLnBhcmFtcyl9YCksYS5oYXNPd25Qcm9wZXJ0eSgiYXJncyIpJiZmLnB1c2goYEVycm9yIGFyZ3M6ICR7SlNPTi5zdHJpbmdpZnkoYS5hcmdzKX1gKSxmLnB1c2goYEZpbGUgbmFtZTogJHthLmZpbGVOYW1lfWApLGYucHVzaChgU3RhY2t0cmFjZTogJHthLnN0YWNrfWApLGY9Zi5qb2luKCJcbiIpLHdpbmRvdy5jb25zb2xlLmxvZyhmLGEpO2lmKCEoS3A+PTUpKXtmPVtdO2ZvcihrIG9mIExwKXRyeXtrKCkmJmYucHVzaChrKCkpfWNhdGNoKEUpe312YXIgaz1mO2s9Wy4uLk1wLC4uLmtdO3ZhciBsPUViKGEpO2Y9bC5tZXNzYWdlfHwiVW5rbm93biBFcnJvciI7aD1sLm5hbWV8fCJVbmtub3duRXJyb3IiO3ZhciBtPWwuc3RhY2t8fGEuWEt8fCJOb3QgYXZhaWxhYmxlIjtpZihtLnN0YXJ0c1dpdGgoYCR7aH06ICR7Zn1gKSl7dmFyIG49bS5zcGxpdCgiXG4iKTtuLnNoaWZ0KCk7bT1uLmpvaW4oIlxuIil9bj1sLmxpbmVOdW1iZXJ8fAoiTm90IGF2YWlsYWJsZSI7bD1sLmZpbGVOYW1lfHwiTm90IGF2YWlsYWJsZSI7bGV0IHo9MDtpZihhLmhhc093blByb3BlcnR5KCJhcmdzIikmJmEuYXJncyYmYS5hcmdzLmxlbmd0aClmb3IodmFyIHA9MDtwPGEuYXJncy5sZW5ndGgmJiEoej1IbyhhLmFyZ3NbcF0sYHBhcmFtcy4ke3B9YCxiLHopLHo+PTUwMCk7cCsrKTtlbHNlIGlmKGEuaGFzT3duUHJvcGVydHkoInBhcmFtcyIpJiZhLnBhcmFtcyl7bGV0IEU9YS5wYXJhbXM7aWYodHlwZW9mIGEucGFyYW1zPT09Im9iamVjdCIpZm9yKHAgaW4gRSl7aWYoIUVbcF0pY29udGludWU7bGV0IEE9YHBhcmFtcy4ke3B9YCxGPUdvKEVbcF0pO2JbQV09Rjt6Kz1BLmxlbmd0aCtGLmxlbmd0aDtpZih6PjUwMClicmVha31lbHNlIGIucGFyYW1zPUdvKEUpfWlmKGsubGVuZ3RoKWZvcihwPTA7cDxrLmxlbmd0aCYmISh6PUhvKGtbcF0sYHBhcmFtcy5jb250ZXh0LiR7cH1gLGIseiksej49NTAwKTtwKyspO25hdmlnYXRvci52ZW5kb3ImJiFiLmhhc093blByb3BlcnR5KCJ2ZW5kb3IiKSYmCihiWyJkZXZpY2UudmVuZG9yIl09bmF2aWdhdG9yLnZlbmRvcik7cD17bWVzc2FnZTpmLG5hbWU6aCxsaW5lTnVtYmVyOm4sZmlsZU5hbWU6bCxzdGFjazptLHBhcmFtczpiLHNhbXBsZVdlaWdodDoxfTtiPU51bWJlcihhLmNvbHVtbk51bWJlcik7aXNOYU4oYil8fChwLmxpbmVOdW1iZXI9YCR7cC5saW5lTnVtYmVyfToke2J9YCk7aWYoYS5sZXZlbD09PSJJR05PUkVEIil2YXIgcj0wO2Vsc2UgYTp7YT1fLkJvKCk7Zm9yKHIgb2YgYS5sZSlpZihwLm1lc3NhZ2UmJnAubWVzc2FnZS5tYXRjaChyLldKKSl7cj1yLndlaWdodDticmVhayBhfWZvcih2YXIgdCBvZiBhLlNkKWlmKHQuY2FsbGJhY2socCkpe3I9dC53ZWlnaHQ7YnJlYWsgYX1yPTF9cC5zYW1wbGVXZWlnaHQ9cjtyPXA7Zm9yKHZhciB2IG9mIE5wKXtpZighdi5KaltyLm5hbWVdKWNvbnRpbnVlO3Q9di5KaltyLm5hbWVdO2ZvcihsZXQgRSBvZiB0KXt0PXIubWVzc2FnZS5tYXRjaChFLnJlZ2V4cCk7aWYoIXQpY29udGludWU7CnIucGFyYW1zWyJwYXJhbXMuZXJyb3Iub3JpZ2luYWwiXT10WzBdO2E9RS5ncm91cHM7cD17fTtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXBbYVtiXV09dFtiKzFdLHIucGFyYW1zW2BwYXJhbXMuZXJyb3IuJHthW2JdfWBdPXRbYisxXTtyLm1lc3NhZ2U9di5wbShwKTticmVha319ci5wYXJhbXN8fChyLnBhcmFtcz17fSk7dj1fLkJvKCk7ci5wYXJhbXNbInBhcmFtcy5lcnJvclNlcnZpY2VTaWduYXR1cmUiXT1gbXNnPSR7di5sZS5sZW5ndGh9JmNiPSR7di5TZC5sZW5ndGh9YDtyLnBhcmFtc1sicGFyYW1zLnNlcnZpY2VXb3JrZXIiXT0iZmFsc2UiO18udS5kb2N1bWVudCYmXy51LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwmJihyLnBhcmFtc1sicGFyYW1zLmZzY3JpcHRzIl09U3RyaW5nKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdDpub3QoW25vbmNlXSkiKS5sZW5ndGgpKTsobmV3IE9wKFBwLCJzYW1wbGUiKSkuY29uc3RydWN0b3IhPT1PcCYmKHIucGFyYW1zWyJwYXJhbXMuZmNvbnN0Il09CiJ0cnVlIik7d2luZG93Lnl0ZXJyJiZ0eXBlb2Ygd2luZG93Lnl0ZXJyPT09ImZ1bmN0aW9uIiYmd2luZG93Lnl0ZXJyKHIpO3Iuc2FtcGxlV2VpZ2h0PT09MHx8UXAuaGFzKHIubWVzc2FnZSl8fChkP1JwKHIsYyk6U3AocixjLGUpKX19fTtScD1mdW5jdGlvbihhLGI9IkVSUk9SIil7VHAoYixhKTtVcChhKX07ClNwPWZ1bmN0aW9uKGEsYj0iRVJST1IiLGMpe2lmKGI9PT0iRVJST1IiKXtfLlZwLnB1Ymxpc2goImhhbmRsZUVycm9yIixhKTtpZihfLngoInJlY29yZF9hcHBfY3Jhc2hlZF93ZWIiKSYmV3A9PT0wJiZhLnNhbXBsZVdlaWdodD09PTEpe1dwKys7bGV0IGQ9e2FwcENyYXNoVHlwZToiQVBQX0NSQVNIX1RZUEVfQlJFQUtQQUQifTtfLngoInJlcG9ydF9jbGllbnRfZXJyb3Jfd2l0aF9hcHBfY3Jhc2hfa3MiKXx8KGQuc3lzdGVtSGVhbHRoPXtjcmFzaERhdGE6e2NsaWVudEVycm9yOntsb2dNZXNzYWdlOnttZXNzYWdlOmEubWVzc2FnZX19fX0pO18uRXAoImFwcENyYXNoZWQiLGQpfVhwKyt9ZWxzZSBiPT09IldBUk5JTkciJiZfLlZwLnB1Ymxpc2goImhhbmRsZVdhcm5pbmciLGEpO18ueCgia2V2bGFyX2dlbF9lcnJvcl9yb3V0aW5nIikmJihjPVlwKGIsYSxjKSkmJihfLkVwKCJjbGllbnRFcnJvciIsYyksKGI9PT0iRVJST1IifHxfLngoImVycm9yc19mbHVzaF9nZWxfYWx3YXlzX2tpbGxzd2l0Y2giKSkmJgpfLmJwKHZvaWQgMCx2b2lkIDAsITEpKTtfLngoInN1cHByZXNzX2Vycm9yXzIwNF9sb2dnaW5nIil8fFRwKGIsYSk7VXAoYSl9O1VwPWZ1bmN0aW9uKGEpe3RyeXtRcC5hZGQoYS5tZXNzYWdlKX1jYXRjaChiKXt9S3ArK307CllwPWZ1bmN0aW9uKGEsYixjPXt9KXthOntmb3IoZCBvZiBacClpZihfLk1rKGQudG9Mb3dlckNhc2UoKSkpe3ZhciBkPSEwO2JyZWFrIGF9ZD0hMX1pZighZCl7dmFyIGU9e3N0YWNrVHJhY2U6Yi5zdGFja307Yi5maWxlTmFtZSYmKGUuZmlsZW5hbWU9Yi5maWxlTmFtZSk7ZD1iLmxpbmVOdW1iZXImJmIubGluZU51bWJlci5zcGxpdD9iLmxpbmVOdW1iZXIuc3BsaXQoIjoiKTpbXTtkLmxlbmd0aCE9PTAmJihkLmxlbmd0aCE9PTF8fGlzTmFOKE51bWJlcihkWzBdKSk/ZC5sZW5ndGghPT0yfHxpc05hTihOdW1iZXIoZFswXSkpfHxpc05hTihOdW1iZXIoZFsxXSkpfHwoZS5saW5lTnVtYmVyPU51bWJlcihkWzBdKSxlLmNvbHVtbk51bWJlcj1OdW1iZXIoZFsxXSkpOmUubGluZU51bWJlcj1OdW1iZXIoZFswXSkpO2Q9e2xldmVsOiJFUlJPUl9MRVZFTF9VTktOT1dOIixtZXNzYWdlOmIubWVzc2FnZSxlcnJvckNsYXNzTmFtZTpiLm5hbWUsc2FtcGxlV2VpZ2h0OmIuc2FtcGxlV2VpZ2h0fTsKYT09PSJFUlJPUiI/ZC5sZXZlbD0iRVJST1JfTEVWRUxfRVJST1IiOmE9PT0iV0FSTklORyImJihkLmxldmVsPSJFUlJPUl9MRVZFTF9XQVJOTklORyIpO2E9e2lzT2JmdXNjYXRlZDohMCxicm93c2VyU3RhY2tJbmZvOmV9O2MucGFnZVVybD13aW5kb3cubG9jYXRpb24uaHJlZjtjLmt2UGFpcnM9W107Xy53KCJGRVhQX0VYUEVSSU1FTlRTIikmJihjLmV4cGVyaW1lbnRJZHM9Xy53KCJGRVhQX0VYUEVSSU1FTlRTIikpO2U9Xy53KCJMQVRFU1RfRUNBVENIRVJfU0VSVklDRV9UUkFDS0lOR19QQVJBTVMiKTtpZighXy5SaSgid2ViX2Rpc2FibGVfZ2VsX3N0cF9lY2F0Y2hlcl9raWxsc3dpdGNoIikmJmUpZm9yKHZhciBmIG9mIE9iamVjdC5rZXlzKGUpKWMua3ZQYWlycy5wdXNoKHtrZXk6Zix2YWx1ZTpTdHJpbmcoZVtmXSl9KTtpZihmPWIucGFyYW1zKWZvcih2YXIgaCBvZiBPYmplY3Qua2V5cyhmKSljLmt2UGFpcnMucHVzaCh7a2V5OmBjbGllbnQuJHtofWAsdmFsdWU6U3RyaW5nKGZbaF0pfSk7CmlmKGI9Yi5wYXJhbXM/LnNlc3Npb25SZXBsYXlJZCljLnNlc3Npb25SZXBsYXlJZD1TdHJpbmcoYik7Yj1fLncoIlNFUlZFUl9OQU1FIik7aD1fLncoIlNFUlZFUl9WRVJTSU9OIik7YiYmaCYmKGMua3ZQYWlycy5wdXNoKHtrZXk6InNlcnZlci5uYW1lIix2YWx1ZTpifSksYy5rdlBhaXJzLnB1c2goe2tleToic2VydmVyLnZlcnNpb24iLHZhbHVlOmh9KSk7KGI9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSkmJmMua3ZQYWlycy5wdXNoKHtrZXk6ImNsaWVudC5wbGF5ZXIudmVyc2lvbiIsdmFsdWU6Yn0pO3JldHVybntlcnJvck1ldGFkYXRhOmMsc3RhY2tUcmFjZTphLGxvZ01lc3NhZ2U6ZH19fTsKVHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnBhcmFtc3x8e307YT17dXJsUGFyYW1zOnthOiJsb2dlcnJvciIsdDoianNlcnJvciIsdHlwZTpiLm5hbWUsbXNnOmIubWVzc2FnZS5zdWJzdHIoMCwyNTApLGxpbmU6Yi5saW5lTnVtYmVyLGxldmVsOmEsImNsaWVudC5uYW1lIjpjLm5hbWV9LHBvc3RQYXJhbXM6e3VybDpfLncoIlBBR0VfTkFNRSIsd2luZG93LmxvY2F0aW9uLmhyZWYpLGZpbGU6Yi5maWxlTmFtZX0sbWV0aG9kOiJQT1NUIn07Yy52ZXJzaW9uJiYoYVsiY2xpZW50LnZlcnNpb24iXT1jLnZlcnNpb24pO2lmKGEucG9zdFBhcmFtcyl7Yi5zdGFjayYmKGEucG9zdFBhcmFtcy5zdGFjaz1iLnN0YWNrKTtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoYykpYS5wb3N0UGFyYW1zW2BjbGllbnQuJHtlfWBdPWNbZV07aWYoYj1fLncoIkxBVEVTVF9FQ0FUQ0hFUl9TRVJWSUNFX1RSQUNLSU5HX1BBUkFNUyIpKWZvcih2YXIgZCBvZiBPYmplY3Qua2V5cyhiKSlhLnBvc3RQYXJhbXNbZF09CmJbZF07KGQ9Xy53KCJMQVZBX1ZFUlNJT04iKSkmJihhLnBvc3RQYXJhbXNbImxhdmEudmVyc2lvbiJdPWQpO2Q9Xy53KCJTRVJWRVJfTkFNRSIpO2I9Xy53KCJTRVJWRVJfVkVSU0lPTiIpO2QmJmImJihhLnBvc3RQYXJhbXNbInNlcnZlci5uYW1lIl09ZCxhLnBvc3RQYXJhbXNbInNlcnZlci52ZXJzaW9uIl09Yik7KGQ9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSkmJihhLnBvc3RQYXJhbXNbImNsaWVudC5wbGF5ZXIudmVyc2lvbiJdPWQpfV8uemooYCR7Xy53KCJFQ0FUQ0hFUl9SRVBPUlRfSE9TVCIsIiIpfS9lcnJvcl8yMDRgLGEpfTthcT1mdW5jdGlvbigpeyRwLmluc3RhbmNlfHwoJHAuaW5zdGFuY2U9bmV3ICRwKTtyZXR1cm4gJHAuaW5zdGFuY2V9OwpjcT1mdW5jdGlvbihhLGIpe2JxW2JdPWJxW2JdfHx7Y291bnQ6MH07dmFyIGM9YnFbYl07Yy5jb3VudCsrO2MudGltZT0oMCxfLmVsKSgpO2Euanx8KGEuaj1fLllqKCgpPT57dmFyIGQ9KDAsXy5lbCkoKTtmb3IobGV0IGUgaW4gYnEpYnFbZV0mJmQtYnFbZV0udGltZT42RTQmJmRlbGV0ZSBicVtlXTthJiYoYS5qPTApfSw1RTMpKTtyZXR1cm4gYy5jb3VudD41PyhjLmNvdW50PT09NiYmTWF0aC5yYW5kb20oKSoxRTU8MSYmKGM9bmV3IF8uWGooIkNTSSBkYXRhIGV4Y2VlZGVkIGxvZ2dpbmcgbGltaXQgd2l0aCBrZXkiLGIuc3BsaXQoIl8iKSksYi5pbmRleE9mKCJwbGV2Iik+PTB8fF8uSXAoYykpLCEwKTohMX07ZHE9ZnVuY3Rpb24oYT0wKXtyZXR1cm4gXy53KCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIix7fSlbYV19OwplcT1mdW5jdGlvbihhLGI9MCl7dmFyIGM9Xy53KCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIik7Y3x8KGM9e30sXy5RaSgiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIsYykpO2NbYl09YX07ZnE9ZnVuY3Rpb24oYT0wKXtyZXR1cm4gYT09PTA/IlJPT1RfVkVfVFlQRSI6YFJPT1RfVkVfVFlQRS4ke2F9YH07Xy5ncT1mdW5jdGlvbihhPTApe3JldHVybiBfLncoZnEoYSkpfTtocT1mdW5jdGlvbigpe3ZhciBhPV8udygiY3NuLXRvLWN0dC1hdXRoLWluZm8iKTthfHwoYT17fSxfLlFpKCJjc24tdG8tY3R0LWF1dGgtaW5mbyIsYSkpO3JldHVybiBhfTtfLmlxPWZ1bmN0aW9uKGE9MCl7YT1kcShhKTtpZighYSYmIV8udygiVVNFX0NTTl9GQUxMQkFDSyIsITApKXJldHVybiBudWxsO2F8fChhPSJVTkRFRklORURfQ1NOIik7cmV0dXJuIGE/YTpudWxsfTtqcT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aHEoKTsoYz1fLmlxKGMpKSYmZGVsZXRlIGRbY107YiYmKGRbYV09Yil9OwpfLmtxPWZ1bmN0aW9uKGEpe3JldHVybiBocSgpW2FdfTtfLm1xPWZ1bmN0aW9uKGEsYixjPTAsZCl7aWYoYSE9PWRxKGMpfHxiIT09Xy53KGZxKGMpKSlpZihqcShhLGQsYyksZXEoYSxjKSxfLlFpKGZxKGMpLGIpLGI9KCk9PntzZXRUaW1lb3V0KCgpPT57YSYmXy5FcCgiZm9yZWdyb3VuZEhlYXJ0YmVhdFNjcmVlbkFzc29jaWF0ZWQiLHtjbGllbnREb2N1bWVudE5vbmNlOmxxLGNsaWVudFNjcmVlbk5vbmNlOmF9KX0sMCl9LCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiaW4gd2luZG93KXRyeXt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGIpfWNhdGNoKGUpe2IoKX1lbHNlIGIoKX07Xy5vcT1mdW5jdGlvbihhLGIpe18ubnEoIl9zdGFydCIsYSxiKX07Cl8ucHE9ZnVuY3Rpb24oYSxiKXtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFfLmtvKGIpLmFjdGlvbkRpc2FibGVkKXt2YXIgYz1fLnVvKGJ8fCIiKTtfLnluKGMuaW5mbyxhKTthLmxvYWRUeXBlJiYoYz1hLmxvYWRUeXBlLF8ubG8oYikubG9hZFR5cGU9Yyk7Xy55bihfLm9vKGIpLGEpO2M9Xy5wbyhiKTtiPV8ua28oYikuY3R0QXV0aEluZm87YXEoKS5pbmZvKGEsYyxiKX19O3FxPWZ1bmN0aW9uKCl7cmV0dXJuKF8ueSgpLnJlc29sdmUoXy5JbihpbSkpPy53aigpPy5sb2dnaW5nSG90Q29uZmlnPy5jc2lDb25maWc/LmRlYnVnVGlja3M/P1tdKS5tYXAoYT0+T2JqZWN0LnZhbHVlcyhhKVswXSl9OwpfLm5xPWZ1bmN0aW9uKGEsYixjKXtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFfLmtvKGMpLmFjdGlvbkRpc2FibGVkKXt2YXIgZD1fLnBvKGMpLGU7aWYoZT1fLngoIndlYl9jc2lfZGVidWdfc2FtcGxlX2VuYWJsZWQiKSYmZCl7Xy55KCkucmVzb2x2ZShfLkluKGltKSk/LndqKCkmJiFycSYmKHJxPSEwLF8ubnEoImdjZmwiLCgwLF8uZWwpKCksYykpO2U9Xy55KCkucmVzb2x2ZShfLkluKGltKSk/LndqKCk/LmxvZ2dpbmdIb3RDb25maWc/LmNzaUNvbmZpZz8uZGVidWdTYW1wbGVXZWlnaHR8fDA7dmFyIGY7aWYoZj1lIT09MCliOntmPXFxKCk7aWYoZi5sZW5ndGg+MClmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKylpZihhPT09ZltoXSl7Zj0hMDticmVhayBifWY9ITF9Zj8oZT1fLkduKGQpJWUhPT0wLF8ua28oYykuZGVidWdUaWNrc0V4Y2x1ZGVkTG9nZ2VkfHwoZj17fSxmLmRlYnVnVGlja3NFeGNsdWRlZD1lLF8ucHEoZixjKSksXy5rbyhjKS5kZWJ1Z1RpY2tzRXhjbHVkZWRMb2dnZWQ9CiEwKTplPSExfWlmKCFlKXtpZihhWzBdIT09Il8iJiYoZT1hLF8uc3EubWFyaykpe2Uuc3RhcnRzV2l0aCgibWFya18iKXx8KGU9Im1hcmtfIitlKTtjJiYoZSs9YCAoJHtjfSlgKTtmPWU7aD17fTtpZihiIT09dm9pZCAwJiYhXy54KCJ3ZWJfY3NpX2Rpc2FibGVfYWx0X3RpbWVfcGVyZm9ybWFuY2VfbWFyayIpKXtsZXQgbD1iO2w9Xy54KCJjc2lfdXNlX3BlcmZvcm1hbmNlX25hdmlnYXRpb25fdGltaW5nIik/bC1fLnNxLnRpbWVPcmlnaW46bC0oXy5zcS50aW1lT3JpZ2lufHxfLnNxLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQpO2guc3RhcnRUaW1lPWx9Xy54KCJjc2lfZW5hYmxlX2Nocm9tZV9kZXZ0b29sc19wZXJmb3JtYW5jZV90aW1lbGluZV9pbnRlZ3JhdGlvbiIpJiYoaC5kZXRhaWw9e3ZJOntkYXRhVHlwZToibWFya2VyIixjb2xvcjoicHJpbWFyeSIsdG9vbHRpcFRleHQ6Zn19KTtmPU9iamVjdC5rZXlzKGgpLmxlbmd0aD4wP2g6dm9pZCAwO3RyeXtfLnNxLm1hcmsoZSxmKX1jYXRjaChsKXtfLnNxLm1hcmsoZSl9fWU9Cl8udW8oY3x8IiIpO2UudGlja1thXT1ifHwoMCxfLmVsKSgpO2lmKGUuY2FsbGJhY2smJmUuY2FsbGJhY2tbYV0pZm9yKHZhciBrIG9mIGUuY2FsbGJhY2tbYV0paygpO2s9Xy5ubyhjKTtrLmdlbFRpY2tzJiYoay5nZWxUaWNrc1thXT0hMCk7ZT1fLm1vKGMpO2s9Ynx8KDAsXy5lbCkoKTtlW2FdPWs7ZT1fLmtvKGMpLmN0dEF1dGhJbmZvO2E9PT0iX3N0YXJ0Ij8oYT1hcSgpLGNxKGEsYGJhc2VsaW5lXyR7ZH1gKXx8Xy5FcCgibGF0ZW5jeUFjdGlvbkJhc2VsaW5lZCIse2NsaWVudEFjdGlvbk5vbmNlOmR9LHt0aW1lc3RhbXA6YixjdHRBdXRoSW5mbzplfSkpOmFxKCkudGljayhhLGQsYixlKTtfLnRxKGMpO3JldHVybiBrfX19OwpfLnZxPWZ1bmN0aW9uKGEpe3ZhciBiPV8udXEoImFmdCIsYSk7aWYoYilyZXR1cm4gYjtiPV8udygoYXx8IiIpKyJUSU1JTkdfQUZUX0tFWVMiLFsib2wiXSk7dmFyIGM9Yi5sZW5ndGg7Zm9yKGxldCBkPTA7ZDxjO2QrKyl7bGV0IGU9Xy51cShiW2RdLGEpO2lmKGUpcmV0dXJuIGV9cmV0dXJuIE5hTn07Xy51cT1mdW5jdGlvbihhLGIpe2lmKGE9Xy5tbyhiKVthXSlyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIj9hOmFbYS5sZW5ndGgtMV19O18udHE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy51cSgiX3N0YXJ0IixhKSxjPV8udnEoYSksZD0hd3E7YiYmYyYmZCYmKF8uc20oeHEsbmV3IHlxKE1hdGgucm91bmQoYy1iKSxhKSksd3E9ITApfTtfLnpxPWZ1bmN0aW9uKGEsYixjPSExKXtfLlZpKF8ucHEpKGEsYixjKX07Xy5BcT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uVmkoXy5ucSkoYSxiLGMpfTsKXy5CcT1mdW5jdGlvbihhLGIpe3JldHVybiBfLlZpKCgpPT57dmFyIGM9Xy5tbyhiKTtyZXR1cm4gYSBpbiBjfSkoKX07a2E9T2JqZWN0LmNyZWF0ZTtqYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7aWE9Z2xvYmFsVGhpcztjYT0iSW50OCBVaW50OCBVaW50OENsYW1wZWQgSW50MTYgVWludDE2IEludDMyIFVpbnQzMiBGbG9hdDMyIEZsb2F0NjQiLnNwbGl0KCIgIik7aWEuQmlnSW50NjRBcnJheSYmKGNhLnB1c2goIkJpZ0ludDY0IiksY2EucHVzaCgiQmlnVWludDY0IikpO3ZhciBsYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZmEoIlN5bWJvbC5kaXNwb3NlIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOlN5bWJvbCgiYSIpfSk7CmZhKCJTdXBwcmVzc2VkRXJyb3IiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxkLGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGIpKXJldHVybiBuZXcgYihjLGQsZSk7ZT1FcnJvcihlKTsic3RhY2siaW4gZSYmKHRoaXMuc3RhY2s9ZS5zdGFjayk7dGhpcy5tZXNzYWdlPWUubWVzc2FnZTt0aGlzLmVycm9yPWM7dGhpcy5zdXBwcmVzc2VkPWR9aWYoYSlyZXR1cm4gYTtuYShiLEVycm9yKTtiLnByb3RvdHlwZS5uYW1lPSJTdXBwcmVzc2VkRXJyb3IiO3JldHVybiBifSk7CmZhKCJTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtpZihiIGluc3RhbmNlb2YgUmVnRXhwJiYhYi5nbG9iYWwpdGhyb3cgbmV3IFR5cGVFcnJvcigiYiIpO3JldHVybiBiIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMucmVwbGFjZShiLGMpOnRoaXMucmVwbGFjZShuZXcgUmVnRXhwKFN0cmluZyhiKS5yZXBsYWNlKC8oWy0oKVxbXF17fSs/Ki4kXF58LDojPCFcXF0pL2csIlxcJDEiKS5yZXBsYWNlKC9ceDA4L2csIlxceDA4IiksImciKSxjKX19KTtmYSgiUHJvbWlzZS53aXRoUmVzb2x2ZXJzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7dmFyIGIsYztyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2I9ZDtjPWV9KSxyZXNvbHZlOmIscmVqZWN0OmN9fX0pOwpmYSgiT2JqZWN0Lmhhc093biIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYixjKX19KTtmYSgiQXJyYXkucHJvdG90eXBlLmF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOnFhfSk7ZWEoImF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOnFhfSk7ZmEoIlN0cmluZy5wcm90b3R5cGUuYXQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6cWF9KTtfLl9EdW1wRXhjZXB0aW9uPXdpbmRvdy5fRHVtcEV4Y2VwdGlvbnx8ZnVuY3Rpb24oYSl7dGhyb3cgYTt9O3dpbmRvdy5fRHVtcEV4Y2VwdGlvbj1fLl9EdW1wRXhjZXB0aW9uO3dpbmRvdy55dGNzaSYmd2luZG93Lnl0Y3NpLnRpY2smJndpbmRvdy55dGNzaS50aWNrKCJyc2VzX2RwaiIpO18uQ3E9Xy5DcXx8e307Xy51PXRoaXN8fHNlbGY7Xy5EcT1fLnUuX0ZfdG9nZ2xlc19kZWZhdWx0X2Jhc2V8fFtdO3ZhLmdldD1mdW5jdGlvbigpe3JldHVybiBudWxsfTtfLmVoPW51bGw7Xy5FcT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTt2YXIgJG09Y2xhc3N7Y29uc3RydWN0b3Ioe3VybDphLGtMOmJ9KXt0aGlzLm89YTt0aGlzLkI9Yjt0aGlzLnY9KG5ldyBEYXRlKS5nZXRUaW1lKCktMTcwNDA2NzJFNTt0aGlzLmo9e307Zm9yKHZhciBjPS9bPyZdKFteJj1dKyk9KFteJl0qKS9nO2I9Yy5leGVjKGEpOyl0aGlzLmpbYlsxXV09YlsyXX19O18uSGEoXy5MYSxFcnJvcik7Xy5MYS5wcm90b3R5cGUubmFtZT0iQ3VzdG9tRXJyb3IiO3ZhciB3ZDt2YXIgTmE9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsUWE7Xy5TYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX10b1N0cmluZygpe3JldHVybiB0aGlzLmorIiJ9fTtWYShhPT5hYGApfHxWYShhPT5hYFwwYCl8fFZhKGE9PmFgXG5gKXx8VmEoYT0+YWBcdTAwMDBgKTtfLldhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuan19O18uRnE9bmV3IF8uV2EoImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7dmFyIFphLGNiO1phPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuZmI9YX19O18uR3E9bmV3IFphKGE9Pi9eW146XSooWy8/I118JCkvLnRlc3QoYSkpO18uSHE9JGEoInRlbCIpO18uSXE9JGEoImRhdGEiKTtfLkpxPSRhKCJodHRwIik7Xy5LcT0kYSgiaHR0cHMiKTtfLkxxPSRhKCJmdHAiKTtfLk1xPSRhKCJtYWlsdG8iKTtfLk5xPSRhKCJpbnRlbnQiKTtfLk9xPSRhKCJzbXMiKTtfLlBxPSRhKCJ2bmQueW91dHViZSIpO18uYWI9W18uSXEsXy5KcSxfLktxLF8uTXEsXy5McSxfLkdxXTtjYj0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pO18uZmI9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5qKyIifX07Xy5qYj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX10b1N0cmluZygpe3JldHVybiB0aGlzLmorIiJ9fTt2YXIgcGI9ImFsdGVybmF0ZSBhdXRob3IgYm9va21hcmsgY2Fub25pY2FsIGNpdGUgaGVscCBpY29uIGxpY2Vuc2UgbW9kdWxlcHJlbG9hZCBuZXh0IHByZWZldGNoIGRucy1wcmVmZXRjaCBwcmVyZW5kZXIgcHJlY29ubmVjdCBwcmVsb2FkIHByZXYgc2VhcmNoIHN1YnJlc291cmNlIi5zcGxpdCgiICIpO3ZhciBEYj17fTt2YXIgS2I7S2I9UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtfLlliPS8jfCQvO3ZhciBRcT0hIShfLkRxWzBdPj4yNSYxKSxScT0hIShfLkRxWzBdPj4yMCYxKSxTcT0hIShfLkRxWzBdPj4yNyYxKSxUcT0hIShfLkRxWzBdJjgpLFVxPSEhKF8uRHFbMF0mODE5MiksVnE9ISEoXy5EcVswXT4+MTkmMSksV3E9ISEoXy5EcVswXT4+MTcmMSksWHE9ISEoXy5EcVswXT4+MTgmMSk7dmFyIGRjLFZjLGRlLEFlLFZnO2RjPVFxP1NxOnVhKDYxMDQwMTMwMSwhMSk7Xy5ZcT1RcT9UcTp1YSg1MTM2NTk1MjMsITEpO1ZjPVFxP1JxfHwhVXE6dWEoNzQ4NDAyMTQ3LCEwKTtkZT1RcT9WcTp1YSg5MTk0NDQ4MjQsITEpO0FlPVFxP1dxOnVhKDkyODg3NTM5OCwhMSk7Vmc9UXE/WHE6dWEoNjgzNzQ5MjAxLCExKTt2YXIgZWMsWnE9Xy51Lm5hdmlnYXRvcjtlYz1acT9acS51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7Xy5wY1siICJdPWZ1bmN0aW9uKCl7fTt2YXIgJHEsYXIsYnI7JHE9amMoKTthcj1pYygpPyExOmhjKCJUcmlkZW50Iil8fGhjKCJNU0lFIik7Xy5KbD1oYygiRWRnZSIpO2JyPWhjKCJHZWNrbyIpJiYhKF8uYmMoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIWhjKCJFZGdlIikpJiYhKGhjKCJUcmlkZW50Iil8fGhjKCJNU0lFIikpJiYhaGMoIkVkZ2UiKTtfLmNyPV8uYmMoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIWhjKCJFZGdlIik7Xy5kcj1fLmNyJiZoYygiTW9iaWxlIik7bmMoKXx8aGMoIk1hY2ludG9zaCIpO25jKCl8fGhjKCJXaW5kb3dzIik7KG5jKCk/ZWMucGxhdGZvcm09PT0iTGludXgiOmhjKCJMaW51eCIpKXx8bmMoKXx8aGMoIkNyT1MiKTtfLmVyPW5jKCk/ZWMucGxhdGZvcm09PT0iQW5kcm9pZCI6aGMoIkFuZHJvaWQiKTtvYygpO2hjKCJpUGFkIik7aGMoImlQb2QiKTtfLmZyPW9jKCl8fGhjKCJpUGFkIil8fGhjKCJpUG9kIik7Cl8uZ3I9Xy5iYygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigia2Fpb3MiKSE9LTE7a2MoKTtfLmhyPW9jKCl8fGhjKCJpUG9kIik7Xy5pcj1oYygiaVBhZCIpOyFoYygiQW5kcm9pZCIpfHxtYygpfHxrYygpfHxqYygpfHxoYygiU2lsayIpO21jKCk7Xy5Paz1oYygiU2FmYXJpIikmJiEobWMoKXx8KGljKCk/MDpoYygiQ29hc3QiKSl8fGpjKCl8fChpYygpPzA6aGMoIkVkZ2UiKSl8fChpYygpP2ZjKCJNaWNyb3NvZnQgRWRnZSIpOmhjKCJFZGcvIikpfHwoaWMoKT9mYygiT3BlcmEiKTpoYygiT1BSIikpfHxrYygpfHxoYygiU2lsayIpfHxoYygiQW5kcm9pZCIpKSYmIShvYygpfHxoYygiaVBhZCIpfHxoYygiaVBvZCIpKTt2YXIgcmM9e30sdmM9bnVsbDt2YXIgd2M9dm9pZCAwO3ZhciBIYyxZYyxTYztfLkpjPV8ueWMoKTtfLmpyPV8ueWMoKTtIYz1fLnljKCk7Xy5rcj1fLnljKCk7WWM9Xy55YygpO18uT2M9Xy55YygibV9tIiwhMCk7U2M9Xy55YygpO18ubHI9Xy55YygpO3ZhciBucjtfLkFjPV8ueWMoImphcyIsITApO25yPVtdO25yW18uQWNdPTc7Xy5tcj1PYmplY3QuZnJlZXplKG5yKTtfLlBjPXt9O18uemM9e307Xy5vcj1PYmplY3QuZnJlZXplKHt9KTtfLnByPV8uQ2MoYT0+YSE9PW51bGwmJmEhPT12b2lkIDApO3ZhciBFYyxEYztFYz1fLkNjKGE9PnR5cGVvZiBhPT09Im51bWJlciIpO0RjPV8uQ2MoYT0+dHlwZW9mIGE9PT0ic3RyaW5nIik7Xy5ibz1fLkNjKGE9PmEhPW51bGwmJnR5cGVvZiBhPT09Im9iamVjdCImJnR5cGVvZiBhLnRoZW49PT0iZnVuY3Rpb24iKTtfLnFyPV8uQ2MoYT0+ISFhJiYodHlwZW9mIGE9PT0ib2JqZWN0Inx8dHlwZW9mIGE9PT0iZnVuY3Rpb24iKSk7dmFyIHJyLHNyO18uTWM9Xy5DYyhhPT5hPj1yciYmYTw9c3IpO3JyPUJpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik7c3I9QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtfLnRyPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwO18udXI9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzVWludE46dm9pZCAwO18udnI9TnVtYmVyLmlzU2FmZUludGVnZXI7Xy53cj1OdW1iZXIuaXNGaW5pdGU7Xy54cj1NYXRoLnRydW5jO3ZhciBUYz17fTt2YXIgS2M7Xy55cj1fLkZjKDApO18uenI9ZmQoKTtfLkFyPWZkKCk7Xy5Ccj1mZCgpO18uQ3I9ZmQoKTtfLkRyPWZkKCk7Xy5Fcj1mZCgpO18uRnI9ZmQoKTtfLkdyPWZkKCk7Xy5Icj1mZCgpO18uSXI9ZmQoKTtfLkpyPWZkKCk7Xy5Lcj1mZCgpO18uTHI9ZmQoKTtfLk1yPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLkRhPV8uWGMoYSxiLGMsMjA0OCl9dG9KU09OKCl7cmV0dXJuIFVjKHRoaXMpfXNlcmlhbGl6ZShhKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVWModGhpcyxhKSl9Y2xvbmUoKXt2YXIgYT10aGlzLkRhLGI9YVtfLkFjXXwwO3JldHVybiBfLiRjKHRoaXMsYSxiKT9fLmJkKHRoaXMsYSwhMCk6bmV3IHRoaXMuY29uc3RydWN0b3IoXy5aYyhhLGIsITEpKX19O18uTXIucHJvdG90eXBlW18uT2NdPV8uUGM7dmFyIGpqPXdpbmRvdzsiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpLmNvbmNhdChbIkJVVFRPTiIsCiJJTlBVVCJdKTt2YXIgaWQ9e1FCOiJhbGxvdy1mb3JtcyIsU0I6ImFsbG93LW1vZGFscyIsVEI6ImFsbG93LW9yaWVudGF0aW9uLWxvY2siLFVCOiJhbGxvdy1wb2ludGVyLWxvY2siLFZCOiJhbGxvdy1wb3B1cHMiLFdCOiJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giLFhCOiJhbGxvdy1wcmVzZW50YXRpb24iLFlCOiJhbGxvdy1zYW1lLW9yaWdpbiIsWkI6ImFsbG93LXNjcmlwdHMiLGFDOiJhbGxvdy10b3AtbmF2aWdhdGlvbiIsYkM6ImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJ9LGxkPWhkKCgpPT5rZCgpKTtfLmc9Xy5uZC5wcm90b3R5cGU7Xy5nLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLm5kKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTtfLmcuYXJlYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLndpZHRoKnRoaXMuaGVpZ2h0fTtfLmcuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07Xy5nLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5hcmVhKCl9O18uZy5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5nLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKXy5nLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLnJvdW5kKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGgucm91bmQodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLmcuc2NhbGU9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoKj1hO3RoaXMuaGVpZ2h0Kj10eXBlb2YgYj09PSJudW1iZXIiP2I6YTtyZXR1cm4gdGhpc307dmFyIHJkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7dmFyIE9wPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE9PT1QcCYmYnx8IiJ9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5qfX0sUHA9e307bmV3IE9wKFBwLCIiKTtfLmc9dWQucHJvdG90eXBlO18uZy5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLmopLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O18uZy5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVybiBCZCh0aGlzLmosYSl9O18uZy5jcmVhdGVUZXh0Tm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5qLmNyZWF0ZVRleHROb2RlKFN0cmluZyhhKSl9O18uZy5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O18uZy5hcHBlbmQ9ZnVuY3Rpb24oYSxiKXtBZChfLnZkKGEpLGEsYXJndW1lbnRzKX07Xy5nLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8uZy5yZW1vdmVOb2RlPV8uRGQ7Xy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEmJmI/YT09Ynx8YS5jb250YWlucyhiKTohMX07Xy5nLmlzRm9jdXNhYmxlPV8uRmQ7dmFyIGlqPShuZXcgRGF0ZSkuZ2V0VGltZSgpO18uZz1MZC5wcm90b3R5cGU7Xy5nLmlzRW5hYmxlZD1mdW5jdGlvbigpe2lmKCFfLnUubmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpcmV0dXJuITE7aWYoIXRoaXMuaXNFbXB0eSgpKXJldHVybiEwO3RoaXMuc2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiLCIxIix7dmo6NjB9KTtpZih0aGlzLmdldCgiVEVTVENPT0tJRVNFTkFCTEVEIikhPT0iMSIpcmV0dXJuITE7dGhpcy5yZW1vdmUoIlRFU1RDT09LSUVTRU5BQkxFRCIpO3JldHVybiEwfTsKXy5nLnNldD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ITE7aWYodHlwZW9mIGM9PT0ib2JqZWN0Iil7dmFyIGU9Yy5zYW1lU2l0ZTtkPWMuc2VjdXJlfHwhMTt2YXIgZj1jLmRvbWFpbnx8dm9pZCAwO3ZhciBoPWMucGF0aHx8dm9pZCAwO3ZhciBrPWMudmp9aWYoL1s7PVxzXS8udGVzdChhKSl0aHJvdyBFcnJvcigiRGAiK2EpO2lmKC9bO1xyXG5dLy50ZXN0KGIpKXRocm93IEVycm9yKCJFYCIrYik7az09PXZvaWQgMCYmKGs9LTEpO2M9Zj8iO2RvbWFpbj0iK2Y6IiI7aD1oPyI7cGF0aD0iK2g6IiI7ZD1kPyI7c2VjdXJlIjoiIjtrPWs8MD8iIjprPT0wPyI7ZXhwaXJlcz0iKyhuZXcgRGF0ZSgxOTcwLDEsMSkpLnRvVVRDU3RyaW5nKCk6IjtleHBpcmVzPSIrKG5ldyBEYXRlKERhdGUubm93KCkrayoxRTMpKS50b1VUQ1N0cmluZygpO3RoaXMuai5jb29raWU9YSsiPSIrYitjK2graytkKyhlIT1udWxsPyI7c2FtZXNpdGU9IitlOiIiKX07Cl8uZy5nZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hKyI9IixkPSh0aGlzLmouY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IobGV0IGU9MCxmO2U8ZC5sZW5ndGg7ZSsrKXtmPWRbZV0udHJpbSgpO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5nLnJlbW92ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5nZXQoYSkhPT12b2lkIDA7dGhpcy5zZXQoYSwiIix7dmo6MCxwYXRoOmIsZG9tYWluOmN9KTtyZXR1cm4gZH07Xy5nLnJkPWZ1bmN0aW9uKCl7cmV0dXJuIE1kKHRoaXMpLmtleXN9O18uZy5NYz1mdW5jdGlvbigpe3JldHVybiBNZCh0aGlzKS52YWx1ZXN9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuai5jb29raWV9O18uZy5jbGVhcj1mdW5jdGlvbigpe3ZhciBhPU1kKHRoaXMpLmtleXM7Zm9yKGxldCBiPWEubGVuZ3RoLTE7Yj49MDtiLS0pdGhpcy5yZW1vdmUoYVtiXSl9OwpfLkxqPW5ldyBMZCh0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpO3ZhciBSZDtfLk5yPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dmFyIGM9Y3x8W107dGhpcy52PWE7dGhpcy5vPWJ8fG51bGw7dGhpcy5qPVtdO3RoaXMuaj10aGlzLmouY29uY2F0KGMpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudn19O18uT3I9bmV3IF8uTnIoIm43M3F3ZiIsIm43M3F3ZiIpO18uYWUucHJvdG90eXBlLlk9ITE7Xy5hZS5wcm90b3R5cGUuaWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZfTtfLmFlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ZfHwodGhpcy5ZPSEwLHRoaXMubGEoKSl9O18uYWUucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLmFlLnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuWT9iIT09dm9pZCAwP2EuY2FsbChiKTphKCk6KHRoaXMuS3x8KHRoaXMuSz1bXSksYiYmKGE9YS5iaW5kKGIpKSx0aGlzLksucHVzaChhKSl9O18uYWUucHJvdG90eXBlLmxhPWZ1bmN0aW9uKCl7aWYodGhpcy5LKWZvcig7dGhpcy5LLmxlbmd0aDspdGhpcy5LLnNoaWZ0KCkoKX07dmE9dmF8fHt9O18uSGEoYmUsXy5hZSk7YmUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt9O2NlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3RoaXMuaiYmKHRoaXMuai5jYWxsKHRoaXMub3x8bnVsbCxhKSx0aGlzLmo9dGhpcy5vPW51bGwpfTtjZS5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLm89dGhpcy5qPW51bGx9O3ZhLndrPWNlO18uSGEoZWUsXy5hZSk7Xy5nPWVlLnByb3RvdHlwZTtfLmcuUGo9bnVsbDtfLmcuT3k9YmU7Xy5nLkFqPW51bGw7Xy5nLnN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07Xy5nLmdldElkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRH07Xy5nLmlzTG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkFqfTtfLmcueWU9ZnVuY3Rpb24oKXt0aGlzLkFqPW5ldyBiZX07Xy5nLm9uTG9hZD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgdGhpcy5PeTtiLmluaXRpYWxpemUoYSgpKTt0aGlzLkFqPWI7aWYodGhpcy5vJiYoYj1pZSh0aGlzLm8sYSgpKSkpcmV0dXJuIGI7aWYodGhpcy5CJiYoYT1pZSh0aGlzLkIsYSgpKSkpcmV0dXJuIGE7dGhpcy52JiYodGhpcy52Lmxlbmd0aD0wKTtyZXR1cm4gbnVsbH07Cl8uZy5vbkVycm9yPWZ1bmN0aW9uKGEpe3RoaXMudiYmKGE9aWUodGhpcy52LGEpKSYmXy4kYihFcnJvcigiR2AiK2EpKTt0aGlzLm8mJih0aGlzLm8ubGVuZ3RoPTApO3RoaXMuQiYmKHRoaXMuQi5sZW5ndGg9MCl9O18uZy5sYT1mdW5jdGlvbigpe2VlLnpiLmxhLmNhbGwodGhpcyk7Xy5aZCh0aGlzLkFqKTt0aGlzLlBqPW51bGx9O3ZhLk9nPWVlO3ZhciBRZz17RVJST1I6ImVycm9yIixJRExFOiJpZGxlIixNczoiYWN0aXZlIixpdToidXNlcklkbGUiLGh1OiJ1c2VyQWN0aXZlIn07Xy5nPWplLnByb3RvdHlwZTtfLmcuUnI9ZnVuY3Rpb24oKXt9O18uZy5UaD1mdW5jdGlvbigpe307Xy5nLm5pPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkgiKTt9O18uZy5BZz1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJJIik7fTtfLmcuVnA9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07Xy5nLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITF9O18uZy5GcT1mdW5jdGlvbigpe3JldHVybiExfTtfLmcuZW49ZnVuY3Rpb24oKXt9O18uZy5abj1mdW5jdGlvbigpe307dmFyIFByPWNsYXNze2luaXQoKXtfLkZhKCJfRl9pbnN0YWxsQ3NzIixhPT57YSYma2UoYSl9KX19O3ZhciBtZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj17fTt0aGlzLm89IiI7dGhpcy52PXt9fXRvU3RyaW5nKCl7dmFyIGE9dGhpcy5vK3ZlKHRoaXMpLGI9Xy5VYih0aGlzLnYpLGM9IiI7YiE9IiImJihjPSI/IitiKTtyZXR1cm4gYStjfWNsb25lKCl7dmFyIGE9bmV3IG1lO2Euaj17Li4udGhpcy5qfTthLm89dGhpcy5vO2Eudj17Li4udGhpcy52fTtyZXR1cm4gYX19LG5lPXt2RzoiayIsRUM6ImNrIix6RjoibSIsWUM6ImV4bSIsV0M6ImV4Y20iLExCOiJhbSIsUkI6ImFtYyIsbUY6Im1tIix0RzoicnQiLGJGOiJkIixYQzoiZWQiLGlIOiJzdiIsSkM6ImRlb2IiLHNDOiJjYiIsd0M6ImNjYiIsdEM6ImNiaSIsWUc6InJzIixCRzoic2RjaCIsY0Y6ImltIixLQzoiZGciLFVDOiJiciIsVEM6ImJyLWQiLFZDOiJyYiIsSUg6InpzIixFSDoid3QiLFpDOiJlZSIsaEg6InNtIix4RjoibWQiLFhFOiJnc3Ntb2R1bGVzZXRwcm90byIsQ0g6InVqZyIsQkg6InNwIixhRjoiaWNoYyIsWEc6InNsayIsCk1DOiJkdGkiLExDOiJkYndoIixlRjoiaWMifSxRcj1SZWdFeHAoIl4oZ2FwaVxcLik/bG9hZGVkKF9nfF9oKT8oX1swLTlhLXpdKykrJCIpLFJyPVJlZ0V4cCgiXlthLXpBLVowLTktXypdKyQiKTt2YXIgR2U9ITE7Xy55Zz10eXBlb2YgQXN5bmNDb250ZXh0IT09InVuZGVmaW5lZCImJnR5cGVvZiBBc3luY0NvbnRleHQuU25hcHNob3Q9PT0iZnVuY3Rpb24iP2E9PmEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpOmE9PmE7Xy5KZS5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7dGhpcy5vPSEwfTtfLkplLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07Xy5IYShLZSxfLkplKTsKS2UucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnR5cGU9YS50eXBlLGQ9YS5jaGFuZ2VkVG91Y2hlcyYmYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg/YS5jaGFuZ2VkVG91Y2hlc1swXTpudWxsO3RoaXMudGFyZ2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5jdXJyZW50VGFyZ2V0PWI7Yj1hLnJlbGF0ZWRUYXJnZXQ7Ynx8KGM9PSJtb3VzZW92ZXIiP2I9YS5mcm9tRWxlbWVudDpjPT0ibW91c2VvdXQiJiYoYj1hLnRvRWxlbWVudCkpO3RoaXMucmVsYXRlZFRhcmdldD1iO2Q/KHRoaXMuY2xpZW50WD1kLmNsaWVudFghPT12b2lkIDA/ZC5jbGllbnRYOmQucGFnZVgsdGhpcy5jbGllbnRZPWQuY2xpZW50WSE9PXZvaWQgMD9kLmNsaWVudFk6ZC5wYWdlWSx0aGlzLnNjcmVlblg9ZC5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1kLnNjcmVlbll8fDApOih0aGlzLm9mZnNldFg9Xy5jcnx8YS5vZmZzZXRYIT09dm9pZCAwP2Eub2Zmc2V0WDphLmxheWVyWCx0aGlzLm9mZnNldFk9Cl8uY3J8fGEub2Zmc2V0WSE9PXZvaWQgMD9hLm9mZnNldFk6YS5sYXllclksdGhpcy5jbGllbnRYPWEuY2xpZW50WCE9PXZvaWQgMD9hLmNsaWVudFg6YS5wYWdlWCx0aGlzLmNsaWVudFk9YS5jbGllbnRZIT09dm9pZCAwP2EuY2xpZW50WTphLnBhZ2VZLHRoaXMuc2NyZWVuWD1hLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWEuc2NyZWVuWXx8MCk7dGhpcy5idXR0b249YS5idXR0b247dGhpcy5rZXlDb2RlPWEua2V5Q29kZXx8MDt0aGlzLmtleT1hLmtleXx8IiI7dGhpcy5jaGFyQ29kZT1hLmNoYXJDb2RlfHwoYz09ImtleXByZXNzIj9hLmtleUNvZGU6MCk7dGhpcy5jdHJsS2V5PWEuY3RybEtleTt0aGlzLmFsdEtleT1hLmFsdEtleTt0aGlzLnNoaWZ0S2V5PWEuc2hpZnRLZXk7dGhpcy5tZXRhS2V5PWEubWV0YUtleTt0aGlzLnBvaW50ZXJJZD1hLnBvaW50ZXJJZHx8MDt0aGlzLnBvaW50ZXJUeXBlPWEucG9pbnRlclR5cGU7dGhpcy5zdGF0ZT1hLnN0YXRlO3RoaXMudGltZVN0YW1wPQphLnRpbWVTdGFtcDt0aGlzLmo9YTthLmRlZmF1bHRQcmV2ZW50ZWQmJktlLnpiLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9O0tlLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtLZS56Yi5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKTt0aGlzLmouc3RvcFByb3BhZ2F0aW9uP3RoaXMuai5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLmouY2FuY2VsQnViYmxlPSEwfTtLZS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtLZS56Yi5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuajthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTt2YXIgVWU9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKTt2YXIgTGU9MDtPZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5saXN0ZW5lcnNbZl07YXx8KGE9dGhpcy5saXN0ZW5lcnNbZl09W10sdGhpcy5qKyspO3ZhciBoPVFlKGEsYixkLGUpO2g+LTE/KGI9YVtoXSxjfHwoYi56aT0hMSkpOihiPW5ldyBNZShiLHRoaXMuc3JjLGYsISFkLGUpLGIuemk9YyxhLnB1c2goYikpO3JldHVybiBifTtPZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEsYixjLGQpe2E9YS50b1N0cmluZygpO2lmKCEoYSBpbiB0aGlzLmxpc3RlbmVycykpcmV0dXJuITE7dmFyIGU9dGhpcy5saXN0ZW5lcnNbYV07Yj1RZShlLGIsYyxkKTtyZXR1cm4gYj4tMT8oTmUoZVtiXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGUsYiwxKSxlLmxlbmd0aD09MCYmKGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1thXSx0aGlzLmotLSksITApOiExfTt2YXIgWGU9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCksZWY9e30sJGU9MCxmZj0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO18uSGEoXy5nZixfLmFlKTtfLmdmLnByb3RvdHlwZVtVZV09ITA7Xy5nPV8uZ2YucHJvdG90eXBlO18uZy5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe18uU2UodGhpcyxhLGIsYyxkKX07Xy5nLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5jZih0aGlzLGEsYixjLGQpfTsKXy5nLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLk07aWYoYylmb3IoYj1bXTtjO2M9Yy5NKWIucHVzaChjKTtjPXRoaXMuRmE7dmFyIGQ9YS50eXBlfHxhO2lmKHR5cGVvZiBhPT09InN0cmluZyIpYT1uZXcgXy5KZShhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIF8uSmUpYS50YXJnZXQ9YS50YXJnZXR8fGM7ZWxzZXt2YXIgZT1hO2E9bmV3IF8uSmUoZCxjKTtzZChhLGUpfWU9ITA7dmFyIGY7aWYoYilmb3IoZj1iLmxlbmd0aC0xOyFhLm8mJmY+PTA7Zi0tKXt2YXIgaD1hLmN1cnJlbnRUYXJnZXQ9YltmXTtlPWhmKGgsZCwhMCxhKSYmZX1hLm98fChoPWEuY3VycmVudFRhcmdldD1jLGU9aGYoaCxkLCEwLGEpJiZlLGEub3x8KGU9aGYoaCxkLCExLGEpJiZlKSk7aWYoYilmb3IoZj0wOyFhLm8mJmY8Yi5sZW5ndGg7ZisrKWg9YS5jdXJyZW50VGFyZ2V0PWJbZl0sZT1oZihoLGQsITEsYSkmJmU7cmV0dXJuIGV9OwpfLmcubGE9ZnVuY3Rpb24oKXtfLmdmLnpiLmxhLmNhbGwodGhpcyk7dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTt0aGlzLk09bnVsbH07Xy5nLmxpc3Rlbj1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLmcucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGEpe2lmKHRoaXMubyl7dmFyIGI9dGhpcy5vO2E9YSYmYS50b1N0cmluZygpO2xldCBjPTA7Zm9yKGxldCBkIGluIGIubGlzdGVuZXJzKWlmKCFhfHxkPT1hKXtsZXQgZT1iLmxpc3RlbmVyc1tkXTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKykrK2MsTmUoZVtmXSk7ZGVsZXRlIGIubGlzdGVuZXJzW2RdO2Iuai0tfWI9Y31lbHNlIGI9MDtyZXR1cm4gYn07dmFyIGtmPWNsYXNzIGV4dGVuZHMgXy5nZntjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuRD10aGlzLmo9MDt0aGlzLkRjPWE/P3twYjooYixjKT0+c2V0VGltZW91dChiLGMpLEFhOmI9PntjbGVhclRpbWVvdXQoYil9fTt0aGlzLmlzT25saW5lPXdpbmRvdy5uYXZpZ2F0b3I/Lm9uTGluZT8/ITA7dGhpcy52PWFzeW5jKCk9Pnthd2FpdCBtZih0aGlzKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMudik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy52KTt0aGlzLkR8fG5mKHRoaXMpfWRpc3Bvc2UoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsdGhpcy52KTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLnYpO3RoaXMuRGMuQWEodGhpcy5EKTtkZWxldGUga2YuaW5zdGFuY2V9U2IoKXtyZXR1cm4gdGhpcy5pc09ubGluZX19O3ZhciBxZj1udWxsLHBmPW5ldyBNYXA7dmFyIFNyPWE9PnthPWEuY2xvbmUoKTtEZShhKTtvZShhLCJkZyIsbnVsbCk7b2UoYSwiZCIsIjAiKTt3ZShhLG51bGwpO3hlKGEsbnVsbCk7cmV0dXJuIGF9LFRyPSEwLFVyPShhLGIse2Nzc1Jvd0tleTpjLEtlOmQsWWQ6ZSxjYWxsYmFjazpmfT17fSk9PntpZihiKWZvcihsZXQgaCBvZiBiKWlmKCFSci50ZXN0KGgpKXRocm93IEVycm9yKCJKYCIraCk7b2UoYSwibSIsYi5qb2luKCIsIikpO2UmJnplKGEsZSk7YyYmKG9lKGEsImNrIixjKSxkP29lKGEsInJzIixkKTpUciYmKFRyPSExKSk7aWYoZil7aWYoZiE9bnVsbCYmIVFyLnRlc3QoZikpdGhyb3cgRXJyb3IoIktgIitmKTtvZShhLCJjYiIsZil9YT1hLnRvU3RyaW5nKCk7YS5sYXN0SW5kZXhPZigiLyIsMCk9PTAmJihiPV8uTWIoZG9jdW1lbnQubG9jYXRpb24uaHJlZiksYT1fLkliKGJbMV0sYlsyXSxiWzNdLGJbNF0pK2EpO3JldHVybiBfLlRhKGEpfSxuZz0oYSxiLHtsbjpjPVtdLGNzc1Jvd0tleTpkLEtlOmUsWWQ6ZixjYWxsYmFjazpofT0Ke30pPT57YT1TcihhKTt4ZShhLGMpO3JldHVybiBVcihhLGIse2Nzc1Jvd0tleTpkLEtlOmUsWWQ6ZixjYWxsYmFjazpofSl9LG1nPShhLGIse21uOmM9W10sbG46ZD1bXSxjc3NSb3dLZXk6ZSxLZTpmLFlkOmgsY2FsbGJhY2s6a309e30pPT57YT1TcihhKTtvZShhLCJkIiwiMSIpO3dlKGEsYyk7eGUoYSxkKTtyZXR1cm4gVXIoYSxiLHtjc3NSb3dLZXk6ZSxLZTpmLFlkOmgsY2FsbGJhY2s6a30pfTt2YXIgVnI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnY9YTt0aGlzLkI9Yjt0aGlzLm89MDt0aGlzLmo9bnVsbH1nZXQoKXtpZih0aGlzLm8+MCl7dGhpcy5vLS07dmFyIGE9dGhpcy5qO3RoaXMuaj1hLm5leHQ7YS5uZXh0PW51bGx9ZWxzZSBhPXRoaXMudigpO3JldHVybiBhfX07dmFyIFdyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vPXRoaXMuaj1udWxsfWFkZChhLGIpe3ZhciBjPXZmLmdldCgpO2Muc2V0KGEsYik7dGhpcy5vP3RoaXMuby5uZXh0PWM6dGhpcy5qPWM7dGhpcy5vPWN9cmVtb3ZlKCl7dmFyIGE9bnVsbDt0aGlzLmomJihhPXRoaXMuaix0aGlzLmo9dGhpcy5qLm5leHQsdGhpcy5qfHwodGhpcy5vPW51bGwpLGEubmV4dD1udWxsKTtyZXR1cm4gYX19LHZmPW5ldyBWcigoKT0+bmV3IFhyLGE9PmEucmVzZXQoKSksWHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm5leHQ9dGhpcy5zY29wZT10aGlzLmZuPW51bGx9c2V0KGEsYil7dGhpcy5mbj1hO3RoaXMuc2NvcGU9Yjt0aGlzLm5leHQ9bnVsbH1yZXNldCgpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuZm49bnVsbH19O3ZhciBZcix3Zj0hMSx1Zj1uZXcgV3IsR2Y9KGEsYik9PntZcnx8WnIoKTt3Znx8KFlyKCksd2Y9ITApO3VmLmFkZChhLGIpfSxacj0oKT0+e3ZhciBhPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO1lyPSgpPT57YS50aGVuKHhmKX19O0NmLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuY29udGV4dD10aGlzLmo9dGhpcy5vPXRoaXMuY2hpbGQ9bnVsbDt0aGlzLnY9ITF9O3ZhciBEZj1uZXcgVnIoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IENmfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KTtfLkJmLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUWYodGhpcywoMCxfLnlnKSh0eXBlb2YgYT09PSJmdW5jdGlvbiI/YTpudWxsKSwoMCxfLnlnKSh0eXBlb2YgYj09PSJmdW5jdGlvbiI/YjpudWxsKSxjKX07Xy55ZihfLkJmKTtfLmc9Xy5CZi5wcm90b3R5cGU7Xy5nLmZpbmFsbHk9ZnVuY3Rpb24oYSl7YT0oMCxfLnlnKShhKTtyZXR1cm4gbmV3IF8uQmYoKGIsYyk9PntLZih0aGlzLGQ9PnthKCk7YihkKX0sZD0+e2EoKTtjKGQpfSl9KX07Xy5nLktnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFFmKHRoaXMsbnVsbCwoMCxfLnlnKShhKSxiKX07Xy5nLmNhdGNoPV8uQmYucHJvdG90eXBlLktnOwpfLmcuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuaj09MCl7bGV0IGI9bmV3IF8uUGYoYSk7R2YoZnVuY3Rpb24oKXtMZih0aGlzLGIpfSx0aGlzKX19O18uZy5uQj1mdW5jdGlvbihhKXt0aGlzLmo9MDtfLkFmKHRoaXMsMixhKX07Xy5nLm9CPWZ1bmN0aW9uKGEpe3RoaXMuaj0wO18uQWYodGhpcywzLGEpfTtfLmcudHQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE7YT1NZih0aGlzKTspTmYodGhpcyxhLHRoaXMuaix0aGlzLkkpO3RoaXMuSz0hMX07Xy5VZj1fLiRiO18uSGEoXy5QZixfLkxhKTtfLlBmLnByb3RvdHlwZS5uYW1lPSJjYW5jZWwiO18uSGEoWGYsXy5MYSk7WGYucHJvdG90eXBlLm5hbWU9IlhockVycm9yIjtfLkhhKFlmLFhmKTtZZi5wcm90b3R5cGUubmFtZT0iWGhySHR0cEVycm9yIjtfLkhhKFpmLFhmKTtaZi5wcm90b3R5cGUubmFtZT0iWGhyVGltZW91dEVycm9yIjtfLmRoPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQ9ITEsZT0hMSl7dGhpcy5ZPXFlKF8uVWEoYSkudG9TdHJpbmcoKSwhMCk7dGhpcy5GYT1iO3RoaXMueWE9Yzt0aGlzLkQ9ZDt0aGlzLkI9e307dGhpcy5NPW5ldyBNYXA7dGhpcy5aPVtdO3RoaXMub2E9ITA7dGhpcy5oYT0oYT10ZSh0aGlzLlksImV4Y20iKSk/YS5zcGxpdCgiLCIpOltdO3RoaXMuVmQ9ZTt0aGlzLmZpPSExO3RoaXMuV2c9ImFub255bW91cyI7dGhpcy5kaT00MDQzO3RoaXMuZ2E9ZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMudj10aGlzLkk9bnVsbDt0aGlzLkViPSEwO0hlKCk7dGhpcy5YPW51bGw7Xy5hZyh0aGlzLHllKHRoaXMuWSkpO3RoaXMuZmV0Y2hQcmlvcml0eT12b2lkIDA7dGhpcy5NYT0hMTt0aGlzLlUoKX1hc3luYyBRYSgpe3Rocm93IEVycm9yKCJUIik7fVUoKXt9bG9hZChhLGIsYyxkLGU9Yil7Xy5VYShhKTt2YXIgZj10aGlzLmZpLGg9dGhpcy5XZyxrPXRoaXMuZmV0Y2hQcmlvcml0eSwKbD1fLkNkKCJTQ1JJUFQiKTtfLm9iKGwsYSk7ZiYmKGwuY3Jvc3NPcmlnaW49aCk7bC5hc3luYz0hMTtrJiZsLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsayk7Xy5hZyh0aGlzLGIpO18ucGcodGhpcyxhLGwsYixjLGQsZSl9fTt2YXIgcWc9bmV3IFVpbnQ4QXJyYXkoMTIzKSxLZz0hMTt2YXIgTGc9W107Xy5nPXRnLnByb3RvdHlwZTtfLmcuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuail0aGlzLnYgaW5zdGFuY2VvZiB0ZyYmdGhpcy52LmNhbmNlbCgpO2Vsc2V7aWYodGhpcy5vKXtsZXQgYj10aGlzLm87ZGVsZXRlIHRoaXMubzthP2IuY2FuY2VsKGEpOihiLlktLSxiLlk8PTAmJmIuY2FuY2VsKCkpfXRoaXMuWj90aGlzLlouY2FsbCh0aGlzLlUsdGhpcyk6dGhpcy5NPSEwO3RoaXMuanx8KGE9bmV3IEZnKHRoaXMpLHhnKHRoaXMpLHZnKHRoaXMsITEsYSkpfX07Xy5nLnNwPWZ1bmN0aW9uKGEsYil7dGhpcy5JPSExO3ZnKHRoaXMsYSxiKX07Xy5nLmNhbGxiYWNrPWZ1bmN0aW9uKGEpe3hnKHRoaXMpO3ZnKHRoaXMsITAsYSl9O18uZy5maW5hbGx5PWZ1bmN0aW9uKGEpe3JldHVybiBFZyhuZXcgUHJvbWlzZSgoYixjKT0+e3pnKHRoaXMsZD0+e2EoKTtiKGQpfSxkPT57YSgpO2MoZCl9KX0pKX07Cl8uZy50aGVuPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9bmV3IF8uQmYoZnVuY3Rpb24oaCxrKXtlPWg7ZD1rfSk7emcodGhpcyxlLGZ1bmN0aW9uKGgpe2ggaW5zdGFuY2VvZiBGZz9mLmNhbmNlbCgpOmQoaCk7cmV0dXJuIENnfSx0aGlzKTtyZXR1cm4gZi50aGVuKGEsYixjKX07Xy55Zih0Zyk7dGcucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBFcnJvcn07dmFyIENnPXt9O18uSGEod2csXy5MYSk7d2cucHJvdG90eXBlLm1lc3NhZ2U9IkRlZmVycmVkIGhhcyBhbHJlYWR5IGZpcmVkIjt3Zy5wcm90b3R5cGUubmFtZT0iQWxyZWFkeUNhbGxlZEVycm9yIjtfLkhhKEZnLF8uTGEpO0ZnLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCB3YXMgY2FuY2VsZWQiO0ZnLnByb3RvdHlwZS5uYW1lPSJDYW5jZWxlZEVycm9yIjsKRGcucHJvdG90eXBlLnRocm93RXJyb3I9ZnVuY3Rpb24oKXtkZWxldGUgQmdbdGhpcy5qXTt0aHJvdyB0aGlzLm87fTt2YXIgQmc9e307dmFyIEdnPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXtzdXBlcigpO3RoaXMubmFtZT0iTW9kdWxlTG9hZEZhaWx1cmUiO3RoaXMudHlwZT1hO3RoaXMuc3RhdHVzPWI7dGhpcy5tbj1jO3RoaXMudXJsPWQ7dGhpcy5jYXVzZT1lO3RoaXMubWVzc2FnZT10aGlzLnRvU3RyaW5nKCl9dG9TdHJpbmcoKXtyZXR1cm5gJHtIZyh0aGlzKX0gKCR7dGhpcy5zdGF0dXMhPXZvaWQgMD90aGlzLnN0YXR1czoiPyJ9KWB9fTt2YS5vYj1HZzt2YS5vYi5UeXBlPXtwbzowLHBrOjEsVElNRU9VVDoyLGhvOjMsdWs6NH07Xy5IYShJZyxqZSk7Xy5IYShKZyxfLkxhKTtfLmc9SWcucHJvdG90eXBlO18uZy5Scj1mdW5jdGlvbihhKXt0aGlzLm9hPWF9OwpfLmcuVGg9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBJZykpdGhpcy5UaChhLGIpO2Vsc2UgaWYodHlwZW9mIGE9PT0ic3RyaW5nIil7aWYoYS5zdGFydHNXaXRoKCJkJCIpKXthPWEuc3Vic3RyaW5nKDIpO2Zvcih2YXIgYz1bXSxkPTAsZT1hLmluZGV4T2YoIi8iKSxmPTAsaD0hMSxrPTA7Oyl7dmFyIGw9aD9hLnN1YnN0cmluZyhmKTphLnN1YnN0cmluZyhmLGUpO2lmKGwubGVuZ3RoPT09MClkKyssZj0ic3kiK2QudG9TdHJpbmcoMzYpLGw9W107ZWxzZXt2YXIgbT1sLmluZGV4T2YoIjoiKTtpZihtPDApZj1sLGw9W107ZWxzZSBpZihtPT09bC5sZW5ndGgtMSlmPWwuc3Vic3RyaW5nKDAsbSksbD1BcnJheShjW2stMV0pO2Vsc2V7Zj1sLnN1YnN0cmluZygwLG0pO2w9bC5zdWJzdHJpbmcobSsxKS5zcGxpdCgiLCIpO209aztmb3IobGV0IG49MDtuPGwubGVuZ3RoO24rKyltLT1sW25dLmxlbmd0aD09PTA/MTpOdW1iZXIobFtuXSksbFtuXT1jW21dfW09MDtpZihmLmxlbmd0aD09PQowKW09MTtlbHNlIGlmKGYuY2hhckF0KDApPT09IisifHxmLmNoYXJBdCgwKT09PSItIiltPU51bWJlcihmKTttIT09MCYmKGQrPW0sZj0ic3kiK2QudG9TdHJpbmcoMzYpKX1jLnB1c2goZik7TmcodGhpcyxmLGwpO2lmKGgpYnJlYWs7Zj1lKzE7ZT1hLmluZGV4T2YoIi8iLGYpO2U9PT0tMSYmKGg9ITApO2srK310aGlzLmhhPWN9ZWxzZSBpZihhLnN0YXJ0c1dpdGgoInAkIikpT2codGhpcyxhKTtlbHNle2E9YS5zcGxpdCgiLyIpO2M9W107Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKyl7az1hW2RdLnNwbGl0KCI6Iik7ZT1rWzBdO2g9W107aWYoa1sxXSlmb3IoaD1rWzFdLnNwbGl0KCIsIiksaz0wO2s8aC5sZW5ndGg7aysrKWhba109Y1twYXJzZUludChoW2tdLDM2KV07Yy5wdXNoKGUpO05nKHRoaXMsZSxoKX10aGlzLmhhPWN9aWYoYiYmYi5sZW5ndGgpe2ZvcihsZXQgbiBvZiBiKXRoaXMuQi5hZGQobik7dGhpcy55YT1iW2IubGVuZ3RoLTFdfWVsc2UgdGhpcy5nYS5qfHx0aGlzLmdhLmNhbGxiYWNrKCk7Ck9iamVjdC5mcmVlemUodGhpcy5oYSk7dGhpcy5vPT10aGlzLlomJih0aGlzLm89bnVsbCwoYj10aGlzLloub25Mb2FkKCgwLF8uQ2EpKHRoaXMuVnAsdGhpcykpKSYmYi5sZW5ndGgmJlpnKHRoaXMsbmV3IHZhLm9iKHZhLm9iLlR5cGUudWssdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpLFJnKHRoaXMpKX19O18uZy5MYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ELmdldChhKX07Xy5nLm5pPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYShhKTtjJiZjLmlzTG9hZGVkKCk/dGhpcy5sb2FkKGIpOnRoaXMuaiBpbnN0YW5jZW9mIE1hcD8oYz10aGlzLmouZ2V0KGEpLGN8fChjPW5ldyBTZXQsdGhpcy5qLnNldChhLGMpKSxjLmFkZChiKSk6KHRoaXMualthXXx8KHRoaXMualthXT17fSksdGhpcy5qW2FdW2JdPSEwKX07Cl8uZy5BZz1mdW5jdGlvbihhLGIpe2lmKHRoaXMuaiBpbnN0YW5jZW9mIE1hcCl7dmFyIGM9dGhpcy5qLmdldChhKTtjJiYoYy5kZWxldGUoYiksYy5zaXplPT09MCYmdGhpcy5qLmRlbGV0ZShhKSl9ZWxzZSBpZih0aGlzLmpbYV0pe2RlbGV0ZSB0aGlzLmpbYV1bYl07Zm9yKGMgaW4gdGhpcy5qW2FdKXJldHVybjtkZWxldGUgdGhpcy5qW2FdfX07Xy5nLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQi5zaXplPjB9O18uZy5GcT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkkuc2l6ZT4wfTsKXy5nLnNqPWZ1bmN0aW9uKGEsYj0wLGMpe3ZhciBkPVlnKHRoaXMsYSk7dGhpcy5CPW5ldyBTZXQoZCk7dGhpcy5LPXRoaXMub2E/YTpfLnliKGQpO1JnKHRoaXMpO2lmKGQubGVuZ3RoIT09MCl7Zm9yKGxldCBlIG9mIGQpdGhpcy5VLmFkZChlKTthPXRoaXMuWTtpZighYSl0aHJvdyBFcnJvcigiViIpO2lmKCh0aGlzLmogaW5zdGFuY2VvZiBNYXA/dGhpcy5qLnNpemU+MDpPYmplY3Qua2V5cyh0aGlzLmopLmxlbmd0aD4wKSYmIWEuRWIpdGhyb3cgRXJyb3IoIlciKTtmZyhhLF8ueWIoZCksdGhpcy5ELHtZZDp0aGlzLmosb25FcnJvcjooZSxmLGgpPT5iaCh0aGlzLHRoaXMuSyxkLGUhPW51bGw/ZTp2b2lkIDAsZixiLCEhaCksb25UaW1lb3V0OigwLF8uQ2EpKHRoaXMud3csdGhpcyksZm9yY2VSZWxvYWQ6ISFjfSl9fTt2YXIgV2c9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWE7dGhpcy5vPW5ldyBTZXQ7dGhpcy5yZXN1bHQ9W119fTtfLmc9SWcucHJvdG90eXBlOwpfLmcueWU9ZnVuY3Rpb24oKXtpZih0aGlzLm8pe3ZhciBhPXRoaXMuby5nZXRJZCgpLGI9W107aWYodGhpcy5qIGluc3RhbmNlb2YgTWFwKXt2YXIgYz10aGlzLmouZ2V0KGEpO2lmKGMpe2Zvcih2YXIgZCBvZiBBcnJheS5mcm9tKGMpKShjPXRoaXMuTGEoZCkpJiYhYy5pc0xvYWRlZCgpJiYodGhpcy5BZyhhLGQpLGIucHVzaChkKSk7dGhpcy5hZihiKX19ZWxzZSBpZih0aGlzLmpbYV0pe2ZvcihjIG9mIE9iamVjdC5rZXlzKHRoaXMualthXSkpKGQ9dGhpcy5MYShjKSkmJiFkLmlzTG9hZGVkKCkmJih0aGlzLkFnKGEsYyksYi5wdXNoKGMpKTt0aGlzLmFmKGIpfXRoaXMuaWEoKXx8KChiPXRoaXMuRC5nZXQoYSkub25Mb2FkKCgwLF8uQ2EpKHRoaXMuVnAsdGhpcykpKSYmYi5sZW5ndGgmJlpnKHRoaXMsbmV3IHZhLm9iKHZhLm9iLlR5cGUudWssdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpLHRoaXMuSS5kZWxldGUoYSksdGhpcy5CLmRlbGV0ZShhKSx0aGlzLkIuc2l6ZSE9PTB8fAphaCh0aGlzKSx0aGlzLnlhJiZhPT10aGlzLnlhJiYodGhpcy5nYS5qfHx0aGlzLmdhLmNhbGxiYWNrKCkpLFJnKHRoaXMpLHRoaXMubz1udWxsKX19O18uZy51aD1mdW5jdGlvbihhKXtpZih0aGlzLkIuaGFzKGEpKXJldHVybiEwO2ZvcihsZXQgYj0wO2I8dGhpcy52Lmxlbmd0aDtiKyspaWYoXy5zYih0aGlzLnZbYl0sYSk+PTApcmV0dXJuITA7cmV0dXJuITF9O18uZy5sb2FkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFRnKHRoaXMsW2FdLGIpW2FdfTtfLmcuYWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFRnKHRoaXMsYSl9OwpfLmcuUm89ZnVuY3Rpb24oYSl7dGhpcy5vJiZ0aGlzLm8uZ2V0SWQoKT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIj8odGhpcy55ZSgpLHRoaXMuRC5kZWxldGUoInN5bnRoZXRpY19tb2R1bGVfb3ZlcmhlYWQiKSk6dGhpcy5vJiZ0aGlzLm8uZ2V0SWQoKTt2YXIgYj10aGlzLkQuZ2V0KGEpO2ImJmNoKHRoaXMsYi5qfHxbXSxjPT57Yy55ZSgpO3RoaXMuQi5kZWxldGUoYy5nZXRJZCgpKX0sYz0+IWMuaXNMb2FkZWQoKSxuZXcgU2V0KTtpZih0aGlzLm89dGhpcy5MYShhKSl0aGlzLm8uST0hMH07Xy5nLmVuPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLm8pe2xldCBiPW5ldyB2YS5PZyhbXSwic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCIpO3RoaXMuRC5zZXQoInN5bnRoZXRpY19tb2R1bGVfb3ZlcmhlYWQiLGIpO3RoaXMubz1ifWZlKHRoaXMubyxhKX07Xy5nLnd3PWZ1bmN0aW9uKCl7Wy4uLnRoaXMuQl07JGcodGhpcyxuZXcgdmEub2IodmEub2IuVHlwZS5USU1FT1VUKSk7YWgodGhpcyl9OwpfLmcuWm49ZnVuY3Rpb24oYSxiKXtBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgYz1hW2VdLGQ9YjtsZXQgZj10aGlzLk0uZ2V0KGMpO2Y/Zi5wdXNoKGQpOnRoaXMuTS5zZXQoYyxbZF0pfX07Xy5nLmRpc3Bvc2U9ZnVuY3Rpb24oKXtfLiRkKEFycmF5LmZyb20odGhpcy5ELnZhbHVlcygpKSx0aGlzLlopO3RoaXMuRC5jbGVhcigpO3RoaXMuQi5jbGVhcigpO3RoaXMuSz1bXTt0aGlzLkkuY2xlYXIoKTt0aGlzLnY9W107dGhpcy5NLmNsZWFyKCk7dGhpcy5GYT0hMH07Xy5nLmlhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmF9O18uVGQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IElnfTt2YXIgbWg9WzVFMywyRTRdLCRyPWNsYXNzIGV4dGVuZHMgamV7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMudj1uZXcgTWFwO3RoaXMuRD1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuQj0wO3RoaXMuSz1bXTt0aGlzLmo9QWU/bmV3IE1hcDpPYmplY3QuY3JlYXRlKG51bGwpO3RoaXMubz10aGlzLkxhKCJ7YmFzZX0iKX1UaCgpe3RoaXMubyYmdGhpcy5vLmdldElkKCk9PSJ7YmFzZX0iJiZ0aGlzLnllKCl9TGEoYSl7dmFyIGI9dGhpcy52LmdldChhKTtifHwoYj1uZXcgdmEuT2coW10sYSksdGhpcy52LnNldChhLGIpKTtyZXR1cm4gYn1uaShhLGIpe2lmKHRoaXMuTGEoYSkuaXNMb2FkZWQoKSl0aGlzLmxvYWQoYik7ZWxzZSBpZih0aGlzLmogaW5zdGFuY2VvZiBNYXApe2xldCBjPXRoaXMuai5nZXQoYSk7Y3x8KGM9bmV3IFNldCx0aGlzLmouc2V0KGEsYykpO2MuYWRkKGIpfWVsc2UgdGhpcy5qW2FdfHwodGhpcy5qW2FdPXt9KSx0aGlzLmpbYV1bYl09ITB9QWcoYSxiKXtpZih0aGlzLmogaW5zdGFuY2VvZgpNYXApe3ZhciBjPXRoaXMuai5nZXQoYSk7YyYmKGMuZGVsZXRlKGIpLGMuc2l6ZT09PTAmJnRoaXMuai5kZWxldGUoYSkpfWVsc2UgaWYodGhpcy5qW2FdKXtkZWxldGUgdGhpcy5qW2FdW2JdO2ZvcihjIGluIHRoaXMualthXSlyZXR1cm47ZGVsZXRlIHRoaXMualthXX19dWgoYSl7cmV0dXJuISF0aGlzLkRbYV19bG9hZChhKXtpaCh0aGlzLFthXSk7cmV0dXJuIGpoKHRoaXMsYSl9YWYoYSl7dmFyIGI9T2JqZWN0LmNyZWF0ZShudWxsKSxjPVtdO2EuZm9yRWFjaChkPT57YltkXXx8KGJbZF09amgodGhpcyxkKSxjLnB1c2goZCkpfSk7aWgodGhpcyxjKTtyZXR1cm4gYn1SbyhhKXt0aGlzLm8/LmdldElkKCk9PT0ic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCImJnRoaXMueWUoKTt2YXIgYj10aGlzLnYuZ2V0KGEpO2toKHRoaXMsYj8uc3QoKT8/W10sYz0+Yy55ZSgpLGM9PiFjLmlzTG9hZGVkKCkpO3RoaXMubz10aGlzLkxhKGEpfXllKCl7aWYodGhpcy5vKXt2YXIgYT10aGlzLm8uZ2V0SWQoKSwKYj1bXTtpZih0aGlzLmogaW5zdGFuY2VvZiBNYXApe3ZhciBjPXRoaXMuai5nZXQoYSk7aWYoYyl7Zm9yKGxldCBkIG9mIEFycmF5LmZyb20oYykpdGhpcy5MYShkKS5pc0xvYWRlZCgpfHwodGhpcy5BZyhhLGQpLGIucHVzaChkKSk7dGhpcy5hZihiKX19ZWxzZSBpZih0aGlzLmpbYV0pe2ZvcihjIG9mIE9iamVjdC5rZXlzKHRoaXMualthXSkpdGhpcy5MYShjKS5pc0xvYWRlZCgpfHwodGhpcy5BZyhhLGMpLGIucHVzaChjKSk7dGhpcy5hZihiKX10aGlzLm8ub25Mb2FkKCgpPT5udWxsKTt0aGlzLm89bnVsbDsoIXRoaXMudWgoYSkmJi9ec3lbMC05YS16XXswLDR9JC8udGVzdChhKXx8YT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIikmJnRoaXMudi5kZWxldGUoYSk7bGgodGhpcyxhKX19ZW4oYSl7aWYoIXRoaXMubyl7bGV0IGI9bmV3IHZhLk9nKFtdLCJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIik7dGhpcy52LnNldCgic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCIsCmIpO3RoaXMubz1ifWZlKHRoaXMubyxhKX19O3ZhciBraj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YT1bXTt0aGlzLmo9LTF9c2V0KGEsYj0hMCl7MDw9YSYmYTw1MiYmTnVtYmVyLmlzSW50ZWdlcihhKSYmdGhpcy5kYXRhW2FdIT09YiYmKHRoaXMuZGF0YVthXT1iLHRoaXMuaj0tMSl9Z2V0KGEpe3JldHVybiEhdGhpcy5kYXRhW2FdfX07Xy5vaC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBfLmFzfTtfLmFzPXtkb25lOiEwLHZhbHVlOnZvaWQgMH07Xy5vaC5wcm90b3R5cGUuYmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIHBoPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hfWJkKCl7cmV0dXJuIG5ldyBxaCh0aGlzLm8oKSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHJoKHRoaXMubygpKX1qKCl7cmV0dXJuIG5ldyByaCh0aGlzLm8oKSl9fSxxaD1jbGFzcyBleHRlbmRzIF8ub2h7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLm89YX1uZXh0KCl7cmV0dXJuIHRoaXMuby5uZXh0KCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHJoKHRoaXMubyl9aigpe3JldHVybiBuZXcgcmgodGhpcy5vKX19LHJoPWNsYXNzIGV4dGVuZHMgcGh7Y29uc3RydWN0b3IoYSl7c3VwZXIoKCk9PmEpO3RoaXMudj1hfW5leHQoKXtyZXR1cm4gdGhpcy52Lm5leHQoKX19O3ZhciBicz1fLnUuSlNPTi5zdHJpbmdpZnk7Xy5jcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoYSxiKT0+e3RoaXMucmVzb2x2ZT1hO3RoaXMucmVqZWN0PWJ9KX19O18uSGEoXy50aCxfLmFlKTtfLmc9Xy50aC5wcm90b3R5cGU7Xy5nLnN1YnNjcmliZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5vW2FdO2R8fChkPXRoaXMub1thXT1bXSk7dmFyIGU9dGhpcy5EO3RoaXMualtlXT1hO3RoaXMualtlKzFdPWI7dGhpcy5qW2UrMl09Yzt0aGlzLkQ9ZSszO2QucHVzaChlKTtyZXR1cm4gZX07Xy5nLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGEsYixjKXtpZihhPXRoaXMub1thXSl7bGV0IGQ9dGhpcy5qO2lmKGE9YS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBkW2UrMV09PWImJmRbZSsyXT09Y30pKXJldHVybiB0aGlzLmNpKGEpfXJldHVybiExfTtfLmcuY2k9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5qW2FdO2lmKGIpe2xldCBjPXRoaXMub1tiXTt0aGlzLkIhPTA/KHRoaXMudi5wdXNoKGEpLHRoaXMualthKzFdPSgpPT57fSk6KGMmJl8ueGIoYyxhKSxkZWxldGUgdGhpcy5qW2FdLGRlbGV0ZSB0aGlzLmpbYSsxXSxkZWxldGUgdGhpcy5qW2ErMl0pfXJldHVybiEhYn07Cl8uZy5wdWJsaXNoPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5vW2FdO2lmKGMpe2xldCBlPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aDtsZXQgZjtmb3IoZj0xO2Y8ZDtmKyspZVtmLTFdPWFyZ3VtZW50c1tmXTtpZih0aGlzLkkpZm9yKGY9MDtmPGMubGVuZ3RoO2YrKylkPWNbZl0sdWgodGhpcy5qW2QrMV0sdGhpcy5qW2QrMl0sZSk7ZWxzZXt0aGlzLkIrKzt0cnl7Zm9yKGY9MCxkPWMubGVuZ3RoO2Y8ZCYmIXRoaXMuaWEoKTtmKyspe2xldCBoPWNbZl07dGhpcy5qW2grMV0uYXBwbHkodGhpcy5qW2grMl0sZSl9fWZpbmFsbHl7aWYodGhpcy5CLS0sdGhpcy52Lmxlbmd0aD4wJiZ0aGlzLkI9PTApZm9yKDtjPXRoaXMudi5wb3AoKTspdGhpcy5jaShjKX19cmV0dXJuIGYhPTB9cmV0dXJuITF9OwpfLmcuY2xlYXI9ZnVuY3Rpb24oYSl7aWYoYSl7bGV0IGI9dGhpcy5vW2FdO2ImJihiLmZvckVhY2godGhpcy5jaSx0aGlzKSxkZWxldGUgdGhpcy5vW2FdKX1lbHNlIHRoaXMuai5sZW5ndGg9MCx0aGlzLm89e319O18uZy5sYT1mdW5jdGlvbigpe18udGguemIubGEuY2FsbCh0aGlzKTt0aGlzLmNsZWFyKCk7dGhpcy52Lmxlbmd0aD0wfTt2aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMD90aGlzLmoucmVtb3ZlKGEpOnRoaXMuai5zZXQoYSxicyhiKSl9O3ZoLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPXRoaXMuai5nZXQoYSl9Y2F0Y2goYyl7cmV0dXJufWlmKGIhPT1udWxsKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShiKX1jYXRjaChjKXt0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fX07dmgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLmoucmVtb3ZlKGEpfTtfLkhhKHdoLHZoKTt3aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7d2guemIuc2V0LmNhbGwodGhpcyxhLHloKGIpKX07d2gucHJvdG90eXBlLm89ZnVuY3Rpb24oYSl7YT13aC56Yi5nZXQuY2FsbCh0aGlzLGEpO2lmKGE9PT12b2lkIDB8fGEgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGE7dGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO307d2gucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtpZihhPXRoaXMubyhhKSl7aWYoYT1hLmRhdGEsYT09PXZvaWQgMCl0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fWVsc2UgYT12b2lkIDA7cmV0dXJuIGF9O18uSGEoXy56aCx3aCk7Xy56aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYixjKXtpZihiPXloKGIpKXtpZihjKXtpZihjPF8uRWEoKSl7Xy56aC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyxhKTtyZXR1cm59Yi5leHBpcmF0aW9uPWN9Yi5jcmVhdGlvbj1fLkVhKCl9Xy56aC56Yi5zZXQuY2FsbCh0aGlzLGEsYil9O18uemgucHJvdG90eXBlLm89ZnVuY3Rpb24oYSl7dmFyIGI9Xy56aC56Yi5vLmNhbGwodGhpcyxhKTtpZihiKXtsZXQgYz1iLmNyZWF0aW9uLGQ9Yi5leHBpcmF0aW9uO2lmKGQmJmQ8Xy5FYSgpfHxjJiZjPl8uRWEoKSlfLnpoLnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzLGEpO2Vsc2UgcmV0dXJuIGJ9fTtfLkhhKEJoLEFoKTtCaC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBfLnNoKHRoaXMuYmQoITApKS5qKCl9O0JoLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBhPUFycmF5LmZyb20odGhpcyk7Zm9yKGxldCBiIG9mIGEpdGhpcy5yZW1vdmUoYil9O18uSGEoQ2gsQmgpO18uZz1DaC5wcm90b3R5cGU7Xy5nLmlzQXZhaWxhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5vPT09bnVsbCl7dmFyIGE9dGhpcy5qO2lmKGEpdHJ5e2Euc2V0SXRlbSgiX19zYWsiLCIxIik7YS5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBiPSEwfWNhdGNoKGMpe2I9YyBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKGMubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxjLmNvZGU9PT0yMnx8Yy5jb2RlPT09MTAxNHx8Yy5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJmEmJmEubGVuZ3RoIT09MH1lbHNlIGI9ITE7dGhpcy5vPWJ9cmV0dXJuIHRoaXMub307Cl8uZy5zZXQ9ZnVuY3Rpb24oYSxiKXtEaCh0aGlzKTt0cnl7dGhpcy5qLnNldEl0ZW0oYSxiKX1jYXRjaChjKXtpZih0aGlzLmoubGVuZ3RoPT0wKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIGRpc2FibGVkIjt0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogUXVvdGEgZXhjZWVkZWQiO319O18uZy5nZXQ9ZnVuY3Rpb24oYSl7RGgodGhpcyk7YT10aGlzLmouZ2V0SXRlbShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciJiZhIT09bnVsbCl0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybiBhfTtfLmcucmVtb3ZlPWZ1bmN0aW9uKGEpe0RoKHRoaXMpO3RoaXMuai5yZW1vdmVJdGVtKGEpfTsKXy5nLmJkPWZ1bmN0aW9uKGEpe0RoKHRoaXMpO3ZhciBiPTAsYz10aGlzLmosZD1uZXcgXy5vaDtkLm5leHQ9ZnVuY3Rpb24oKXtpZihiPj1jLmxlbmd0aClyZXR1cm4gXy5hczt2YXIgZT1jLmtleShiKyspO2lmKGEpcmV0dXJue3ZhbHVlOmUsZG9uZTohMX07ZT1jLmdldEl0ZW0oZSk7aWYodHlwZW9mIGUhPT0ic3RyaW5nIil0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybnt2YWx1ZTplLGRvbmU6ITF9fTtyZXR1cm4gZH07Xy5nLmNsZWFyPWZ1bmN0aW9uKCl7RGgodGhpcyk7dGhpcy5qLmNsZWFyKCl9O18uZy5rZXk9ZnVuY3Rpb24oYSl7RGgodGhpcyk7cmV0dXJuIHRoaXMuai5rZXkoYSl9O18uSGEoRWgsQ2gpO18uSGEoRmgsQmgpO0ZoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm8uc2V0KHRoaXMuaithLGIpfTtGaC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm8uZ2V0KHRoaXMuaithKX07RmgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLm8ucmVtb3ZlKHRoaXMuaithKX07RmgucHJvdG90eXBlLmJkPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub1tTeW1ib2wuaXRlcmF0b3JdKCksYz10aGlzLGQ9bmV3IF8ub2g7ZC5uZXh0PWZ1bmN0aW9uKCl7dmFyIGU9Yi5uZXh0KCk7aWYoZS5kb25lKXJldHVybiBlO2ZvcihlPWUudmFsdWU7ZS5zbGljZSgwLGMuai5sZW5ndGgpIT1jLmo7KXtlPWIubmV4dCgpO2lmKGUuZG9uZSlyZXR1cm4gZTtlPWUudmFsdWV9cmV0dXJue3ZhbHVlOmE/ZS5zbGljZShjLmoubGVuZ3RoKTpjLm8uZ2V0KGUpLGRvbmU6ITF9fTtyZXR1cm4gZH07dmFyIEhoPXt9LGRzPXR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCImJnR5cGVvZiBVaW50MTZBcnJheSE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgSW50MzJBcnJheSE9PSJ1bmRlZmluZWQiO0hoLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlmdCgpO2lmKGMpe2lmKHR5cGVvZiBjIT09Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYmFgIitjKTtmb3IodmFyIGQgaW4gYylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYyxkKSYmKGFbZF09Y1tkXSl9fXJldHVybiBhfTtIaC53bj1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09YilyZXR1cm4gYTtpZihhLnN1YmFycmF5KXJldHVybiBhLnN1YmFycmF5KDAsYik7YS5sZW5ndGg9YjtyZXR1cm4gYX07CnZhciBlcz17d2Y6ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihiLnN1YmFycmF5JiZhLnN1YmFycmF5KWEuc2V0KGIuc3ViYXJyYXkoYyxjK2QpLGUpO2Vsc2UgZm9yKHZhciBmPTA7ZjxkO2YrKylhW2UrZl09YltjK2ZdfSxNcDpmdW5jdGlvbihhKXt2YXIgYixjO3ZhciBkPWM9MDtmb3IoYj1hLmxlbmd0aDtkPGI7ZCsrKWMrPWFbZF0ubGVuZ3RoO3ZhciBlPW5ldyBVaW50OEFycmF5KGMpO2Q9Yz0wO2ZvcihiPWEubGVuZ3RoO2Q8YjtkKyspe3ZhciBmPWFbZF07ZS5zZXQoZixjKTtjKz1mLmxlbmd0aH1yZXR1cm4gZX19LGdzPXt3ZjpmdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Y8ZDtmKyspYVtlK2ZdPWJbYytmXX0sTXA6ZnVuY3Rpb24oYSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLGEpfX07CkhoLmpBPWZ1bmN0aW9uKCl7ZHM/KEhoLnRmPVVpbnQ4QXJyYXksSGguWWM9VWludDE2QXJyYXksSGguUXM9SW50MzJBcnJheSxIaC5hc3NpZ24oSGgsZXMpKTooSGgudGY9QXJyYXksSGguWWM9QXJyYXksSGguUXM9QXJyYXksSGguYXNzaWduKEhoLGdzKSl9O0hoLmpBKCk7dmFyIGhzPSEwO3RyeXtuZXcgVWludDhBcnJheSgxKX1jYXRjaChhKXtocz0hMX07dmFyIHRpPXt9O3RpPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEmNjU1MzV8MDthPWE+Pj4xNiY2NTUzNXwwO2Zvcih2YXIgZjtjIT09MDspe2Y9Yz4yRTM/MkUzOmM7Yy09ZjtkbyBlPWUrYltkKytdfDAsYT1hK2V8MDt3aGlsZSgtLWYpO2UlPTY1NTIxO2ElPTY1NTIxfXJldHVybiBlfGE8PDE2fDB9O2Zvcih2YXIgdWk9e30saXMsanM9W10sa3M9MDtrczwyNTY7a3MrKyl7aXM9a3M7Zm9yKHZhciBscz0wO2xzPDg7bHMrKylpcz1pcyYxPzM5ODgyOTIzODReaXM+Pj4xOmlzPj4+MTtqc1trc109aXN9dWk9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1kK2M7Zm9yKGFePS0xO2Q8YztkKyspYT1hPj4+OF5qc1soYV5iW2RdKSYyNTVdO3JldHVybiBhXi0xfTt2YXIgaWk9e307aWk9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifTt2YXIgWGg9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sJGg9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLEtpPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxtaT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sbmk9QXJyYXkoNTc2KTtKaChuaSk7dmFyIG9pPUFycmF5KDYwKTtKaChvaSk7dmFyIFpoPUFycmF5KDUxMik7SmgoWmgpO3ZhciBXaD1BcnJheSgyNTYpO0poKFdoKTt2YXIgWWg9QXJyYXkoMjkpO0poKFloKTt2YXIgYmk9QXJyYXkoMzApO0poKGJpKTt2YXIgSGksSWksSmksR2k9ITE7dmFyIENpOwpDaT1bbmV3IEFpKDAsMCwwLDAsZnVuY3Rpb24oYSxiKXt2YXIgYz02NTUzNTtmb3IoYz5hLm5jLTUmJihjPWEubmMtNSk7Oyl7aWYoYS5kYTw9MSl7dmkoYSk7aWYoYS5kYT09PTAmJmI9PT0wKXJldHVybiAxO2lmKGEuZGE9PT0wKWJyZWFrfWEuVis9YS5kYTthLmRhPTA7dmFyIGQ9YS5VYitjO2lmKGEuVj09PTB8fGEuVj49ZClpZihhLmRhPWEuVi1kLGEuVj1kLHBpKGEsITEpLGEud2EuemE9PT0wKXJldHVybiAxO2lmKGEuVi1hLlViPj1hLkJiLTI2MiYmKHBpKGEsITEpLGEud2EuemE9PT0wKSlyZXR1cm4gMX1hLnJiPTA7aWYoYj09PTQpcmV0dXJuIHBpKGEsITApLGEud2EuemE9PT0wPzM6NDthLlY+YS5VYiYmcGkoYSwhMSk7cmV0dXJuIDF9KSxuZXcgQWkoNCw0LDgsNCx3aSksbmV3IEFpKDQsNSwxNiw4LHdpKSxuZXcgQWkoNCw2LDMyLDMyLHdpKSxuZXcgQWkoNCw0LDE2LDE2LHhpKSxuZXcgQWkoOCwxNiwzMiwzMix4aSksbmV3IEFpKDgsMTYsMTI4LDEyOCx4aSksbmV3IEFpKDgsCjMyLDEyOCwyNTYseGkpLG5ldyBBaSgzMiwxMjgsMjU4LDEwMjQseGkpLG5ldyBBaSgzMiwyNTgsMjU4LDQwOTYseGkpXTt2YXIgRmk9e307Rmk9ZnVuY3Rpb24oKXt0aGlzLmlucHV0PW51bGw7dGhpcy5xZj10aGlzLkRiPXRoaXMuZmY9MDt0aGlzLm91dHB1dD1udWxsO3RoaXMuRW49dGhpcy56YT10aGlzLnFnPTA7dGhpcy5tc2c9IiI7dGhpcy5zdGF0ZT1udWxsO3RoaXMuaWw9Mjt0aGlzLnNhPTB9O3ZhciBMaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpFaS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMud2EsZD10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7dmFyIGU9Yj09PX5+Yj9iOmI9PT0hMD80OjA7dHlwZW9mIGE9PT0ic3RyaW5nIj9jLmlucHV0PUloKGEpOkxpLmNhbGwoYSk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP2MuaW5wdXQ9bmV3IFVpbnQ4QXJyYXkoYSk6Yy5pbnB1dD1hO2MuZmY9MDtjLkRiPWMuaW5wdXQubGVuZ3RoO2Rve2MuemE9PT0wJiYoYy5vdXRwdXQ9bmV3IEhoLnRmKGQpLGMucWc9MCxjLnphPWQpO2E9RGkoYyxlKTtpZihhIT09MSYmYSE9PTApcmV0dXJuIE1pKHRoaXMsYSksdGhpcy5lbmRlZD0hMCwhMTtpZihjLnphPT09MHx8Yy5EYj09PTAmJihlPT09NHx8ZT09PTIpKWlmKHRoaXMub3B0aW9ucy50bz09PSJzdHJpbmciKXt2YXIgZj1IaC53bihjLm91dHB1dCxjLnFnKTtiPWY7Zj1mLmxlbmd0aDtpZihmPDY1NTM3JiYoYi5zdWJhcnJheSYmCmhzfHwhYi5zdWJhcnJheSkpYj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsSGgud24oYixmKSk7ZWxzZXtmb3IodmFyIGg9IiIsaz0wO2s8ZjtrKyspaCs9U3RyaW5nLmZyb21DaGFyQ29kZShiW2tdKTtiPWh9dGhpcy5jaHVua3MucHVzaChiKX1lbHNlIGI9SGgud24oYy5vdXRwdXQsYy5xZyksdGhpcy5jaHVua3MucHVzaChiKX13aGlsZSgoYy5EYj4wfHxjLnphPT09MCkmJmEhPT0xKTtpZihlPT09NClyZXR1cm4oYz10aGlzLndhKSYmYy5zdGF0ZT8oZD1jLnN0YXRlLnN0YXR1cyxkIT09NDImJmQhPT02OSYmZCE9PTczJiZkIT09OTEmJmQhPT0xMDMmJmQhPT0xMTMmJmQhPT02NjY/YT1qaShjLC0yKTooYy5zdGF0ZT1udWxsLGE9ZD09PTExMz9qaShjLC0zKTowKSk6YT0tMixNaSh0aGlzLGEpLHRoaXMuZW5kZWQ9ITAsYT09PTA7ZT09PTImJihNaSh0aGlzLDApLGMuemE9MCk7cmV0dXJuITB9O18uST1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9YX19O3ZhciB4cD1uZXcgXy5JKCJyYXdDb2xkQ29uZmlnR3JvdXAiKTt2YXIgd3A9bmV3IF8uSSgicmF3SG90Q29uZmlnR3JvdXAiKTt2YXIgbXM7bXM9Xy51LndpbmRvdztfLlBpPW1zPy55dD8uY29uZmlnX3x8bXM/Lnl0Y2ZnPy5kYXRhX3x8e307Xy5yYSgieXQuY29uZmlnXyIsXy5QaSk7dmFyIFNpPVtdO3ZhciBnaj0vXltcdy5dKiQvLCRpPXtxOiEwLHNlYXJjaF9xdWVyeTohMH0sWmk9U3RyaW5nKFlpKTt2YXIgaGo9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vPWJ9fSh3aW5kb3csd2luZG93LmRvY3VtZW50KTtfLnJhKCJ5dC5hZHNfLnNpZ25hbHNfLmdldEFkU2lnbmFsc1N0cmluZyIsZnVuY3Rpb24oYSl7cmV0dXJuIGFqKF8ubGooYSkpfSk7Xy5FYSgpO25hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiIChDcktleSAiKTt2YXIgcXM7cXM9MDtfLnJzPV8uY3I/IndlYmtpdCI6YnI/Im1veiI6YXI/Im1zIjokcT8ibyI6IiI7Xy5yYSgieXREb21Eb21HZXROZXh0SWQiLF8uc2EoInl0RG9tRG9tR2V0TmV4dElkIil8fCgoKT0+KytxcykpO18uc3M9Xy51Lnl0RXZlbnRzRXZlbnRzTGlzdGVuZXJzfHx7fTtfLnJhKCJ5dEV2ZW50c0V2ZW50c0xpc3RlbmVycyIsXy5zcyk7Xy50cz1fLnUueXRFdmVudHNFdmVudHNDb3VudGVyfHx7Y291bnQ6MH07Xy5yYSgieXRFdmVudHNFdmVudHNDb3VudGVyIixfLnRzKTtfLnVzPWhkKGZ1bmN0aW9uKCl7dmFyIGE9ITE7dHJ5e2xldCBiPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiY2FwdHVyZSIse2dldDpmdW5jdGlvbigpe2E9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsYil9Y2F0Y2goYil7fXJldHVybiBhfSk7dmFyIHZzO3ZzPXdpbmRvdztfLmVsPXZzLnl0Y3NpJiZ2cy55dGNzaS5ub3c/dnMueXRjc2kubm93OnZzLnBlcmZvcm1hbmNlJiZ2cy5wZXJmb3JtYW5jZS50aW1pbmcmJnZzLnBlcmZvcm1hbmNlLm5vdyYmdnMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydD8oKT0+dnMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCt2cy5wZXJmb3JtYW5jZS5ub3coKTooKT0+KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIG5qPSJYTUxIdHRwUmVxdWVzdCJpbiBfLnU/KCk9Pm5ldyBYTUxIdHRwUmVxdWVzdDpudWxsO3ZhciB3cz0iYWJzb2x1dGVfZXhwZXJpbWVudHMgY2xpZW50X2Rldl9kb21haW4gY2xpZW50X2Rldl9leHBmbGFnIGNsaWVudF9kZXZfcmVnZXhfbWFwIGNsaWVudF9kZXZfcm9vdF91cmwgY2xpZW50X3JvbGxvdXRfb3ZlcnJpZGUgZXhwZmxhZyBmb3JjZWRDYXBhYmlsaXR5IGpzZmVhdCBqc21vZGUgbW9kcyB0aGVtZSIuc3BsaXQoIiAiKTtbLi4ud3NdO3ZhciB5aj17QXV0aG9yaXphdGlvbjoiQVVUSE9SSVpBVElPTiIsIlgtR29vZy1FT00tVmlzaXRvci1JZCI6IkVPTV9WSVNJVE9SX0RBVEEiLCJYLUdvb2ctVmlzaXRvci1JZCI6IlNBTkRCT1hFRF9WSVNJVE9SX0lEIiwiWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSI6IkRPTUFJTl9BRE1JTl9TVEFURSIsIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIjoiQ0hST01FX0NPTk5FQ1RFRF9IRUFERVIiLCJYLVlvdVR1YmUtQ2xpZW50LU5hbWUiOiJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsIlgtWW91VHViZS1DbGllbnQtVmVyc2lvbiI6IklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiwiWC1Zb3VUdWJlLURlbGVnYXRpb24tQ29udGV4dCI6IklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIiwiWC1Zb3VUdWJlLURldmljZSI6IkRFVklDRSIsIlgtWW91dHViZS1JZGVudGl0eS1Ub2tlbiI6IklEX1RPS0VOIiwiWC1Zb3VUdWJlLVBhZ2UtQ0wiOiJQQUdFX0NMIiwKIlgtWW91VHViZS1QYWdlLUxhYmVsIjoiUEFHRV9CVUlMRF9MQUJFTCIsIlgtR29vZy1BdXRoVXNlciI6IlNFU1NJT05fSU5ERVgiLCJYLUdvb2ctUGFnZUlkIjoiREVMRUdBVEVEX1NFU1NJT05fSUQifSxLaj1bImFwcCIsImRlYnVnY3NzIiwiZGVidWdqcyIsImV4cGZsYWciLCJmb3JjZV9hZF9wYXJhbXMiLCJmb3JjZV9hZF9lbmNyeXB0ZWQiLCJmb3JjZV92aXJhbF9hZF9yZXNwb25zZV9wYXJhbXMiLCJmb3JjZWRfZXhwZXJpbWVudHMiLCJpbm5lcnR1YmVfc25hcHNob3RzIiwiaW5uZXJ0dWJlX2dvbGRlbnMiLCJpbnRlcm5hbGNvdW50cnljb2RlIiwiaW50ZXJuYWxpcG92ZXJyaWRlIiwiYWJzb2x1dGVfZXhwZXJpbWVudHMiLCJjb25kaXRpb25hbF9leHBlcmltZW50cyIsInNiYiIsInNyX2Juc19hZGRyZXNzIiwuLi53c10sR2o9ITEsRGo9eGo7Xy5ubT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuem49ITB9fTtfLnhzPV8uc2EoInl0Z2xvYmFsLnByZWZzVXNlclByZWZzUHJlZnNfIil8fHt9O18ucmEoInl0Z2xvYmFsLnByZWZzVXNlclByZWZzUHJlZnNfIixfLnhzKTt2YXIgUmo9e2JsdWV0b290aDoiQ09OTl9ESVNDTyIsY2VsbHVsYXI6IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiIsZXRoZXJuZXQ6IkNPTk5fV0lGSSIsbm9uZToiQ09OTl9OT05FIix3aWZpOiJDT05OX1dJRkkiLHdpbWF4OiJDT05OX0NFTExVTEFSXzRHIixvdGhlcjoiQ09OTl9VTktOT1dOIix1bmtub3duOiJDT05OX1VOS05PV04iLCJzbG93LTJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjNnIjoiQ09OTl9DRUxMVUxBUl8zRyIsIjRnIjoiQ09OTl9DRUxMVUxBUl80RyJ9LFRqPXsic2xvdy0yZyI6IkVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfU0xPV18yRyIsIjJnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8yRyIsIjNnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8zRyIsIjRnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV80RyJ9O18uWGo9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhLC4uLmIpe3N1cGVyKGEpO3RoaXMuYXJncz1bLi4uYl07T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbmV3LnRhcmdldC5wcm90b3R5cGUpfX07dmFyIHlzPWNsYXNze3BiKGEsYil7cmV0dXJuIHRoaXMuR2EoYSwxLGIpfVUoYSl7dmFyIGI9Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmFkZEltbWVkaWF0ZUpvYiIpO2I/YihhKTphKCl9fTt2YXIgenM9MUUzLzYwLEFzPV8uc2ooIndlYl9lbXVsYXRlZF9pZGxlX2NhbGxiYWNrX2RlbGF5IiwzMDApLGdrPXpzLTMsZGs9WzgsNSw0LDMsMiwxLDBdLGprPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhPXt9KXtzdXBlcigpO3RoaXMubz1bXTt0aGlzLnY9e307dGhpcy5vYT10aGlzLmo9MDt0aGlzLnBhdXNlZD10aGlzLkQ9ITE7dGhpcy5nYT1bXTt0aGlzLmhhPXRoaXMueWE9ITE7Zm9yKGxldCBiIG9mIGRrKXRoaXMub1tiXT1bXTt0aGlzLkI9MDt0aGlzLmV5PWEudGltZW91dHx8MTt0aGlzLk09Z2s7dGhpcy5JPTA7dGhpcy5NYT10aGlzLml5LmJpbmQodGhpcyk7dGhpcy5neD10aGlzLnp5LmJpbmQodGhpcyk7dGhpcy5mYz10aGlzLkViLmJpbmQodGhpcyk7dGhpcy5WZD10aGlzLmh5LmJpbmQodGhpcyk7dGhpcy5GbD10aGlzLlFhLmJpbmQodGhpcyk7dGhpcy51dz0oKT0+e3RoaXMuUWEocGVyZm9ybWFuY2Uubm93KCkpfTt0aGlzLkZhPSEhd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2smJgohIXdpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2smJiFfLngoImRpc2FibGVfc2NoZWR1bGVyX3JlcXVlc3RJZGxlQ2FsbGJhY2siKTsoKHRoaXMuWj1hLnVzZVJhZiE9PSExJiYhIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxfLngoImVuYWJsZV9zY2hlZHVsZXJfc2ltdWxhdGVfcmFmIikpJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLk1hKX1VKGEpe3ZhciBiPV8uRWEoKTtaaih0aGlzLGEpO2E9Xy5FYSgpLWI7dGhpcy5EfHwodGhpcy5NLT1hKX1HYShhLGIsYyl7Kyt0aGlzLm9hO2lmKGI9PT0xMClyZXR1cm4gdGhpcy5VKGEpLHRoaXMub2E7dmFyIGQ9dGhpcy5vYTt0aGlzLnZbZF09YTt0aGlzLkQmJiFjP3RoaXMuZ2EucHVzaCh7aWQ6ZCxwcmlvcml0eTpifSk6KHRoaXMub1tiXS5wdXNoKGQpLHRoaXMucGF1c2VkfHx0aGlzLkR8fCh0aGlzLmohPT0wJiZiayh0aGlzKSE9PXRoaXMuSSYmdGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSk7CnJldHVybiBkfUFhKGEpe2RlbGV0ZSB0aGlzLnZbYV19aXNIaWRkZW4oKXtyZXR1cm4hIWRvY3VtZW50LmhpZGRlbnx8ITF9SmIoYSl7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7YiYmYihhKX1oeShhKXt2YXIgYj12b2lkIDA7YSYmKGI9YS50aW1lUmVtYWluaW5nKCkpO3RoaXMueWE9ITA7aGsodGhpcyxiKTt0aGlzLnlhPSExfXp5KCl7aGsodGhpcyl9RWIoKXtpayh0aGlzKX1RYShhKXt0aGlzLmhhPSEwO3ZhciBiPWJrKHRoaXMpO2I9PT00JiZiIT09dGhpcy5JJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTtoayh0aGlzLHZvaWQgMCxhKTt0aGlzLmhhPSExfWl5KCl7dGhpcy5pc0hpZGRlbigpfHxpayh0aGlzKTt0aGlzLmomJih0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpfXJlcXVlc3RJZGxlQ2FsbGJhY2soYSl7cmV0dXJuIHRoaXMuRmE/d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soYSx7dGltZW91dDozRTN9KTp3aW5kb3cuc2V0VGltZW91dChhLApBcyl9Y2FuY2VsSWRsZUNhbGxiYWNrKGEpe3RoaXMuRmE/d2luZG93LmNhbmNlbElkbGVDYWxsYmFjayhhKTp3aW5kb3cuY2xlYXJUaW1lb3V0KGEpfXN0YXJ0KCl7dGhpcy5wYXVzZWQ9ITE7aWYodGhpcy5qPT09MClzd2l0Y2godGhpcy5JPWJrKHRoaXMpLHRoaXMuSSl7Y2FzZSAxOnRoaXMuaj10aGlzLnJlcXVlc3RJZGxlQ2FsbGJhY2sodGhpcy5WZCk7YnJlYWs7Y2FzZSAyOnRoaXMuaj13aW5kb3cuc2V0VGltZW91dCh0aGlzLmd4LHRoaXMuZXkpO2JyZWFrO2Nhc2UgMzp0aGlzLmo9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLkZsKTticmVhaztjYXNlIDQ6dGhpcy5qPXdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZmMsMCk7YnJlYWs7Y2FzZSA1OnRoaXMuaj13aW5kb3cuc2V0VGltZW91dCh0aGlzLnV3LHpzKX19cGF1c2UoKXt0aGlzLnN0b3AoKTt0aGlzLnBhdXNlZD0hMH1zdG9wKCl7aWYodGhpcy5qKXtzd2l0Y2godGhpcy5JKXtjYXNlIDE6dGhpcy5jYW5jZWxJZGxlQ2FsbGJhY2sodGhpcy5qKTsKYnJlYWs7Y2FzZSA1OmNhc2UgMjpjYXNlIDQ6d2luZG93LmNsZWFyVGltZW91dCh0aGlzLmopO2JyZWFrO2Nhc2UgMzp3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5qKX10aGlzLmo9MH19bGEoKXtjayh0aGlzKTt0aGlzLnN0b3AoKTsodGhpcy5afHxfLngoImVuYWJsZV9zY2hlZHVsZXJfc2ltdWxhdGVfcmFmIikpJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLk1hKTtzdXBlci5sYSgpfX07dmFyIG5rPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS50aW1lcklkTWFwXyIpfHx7fSx1az1fLnNqKCJrZXZsYXJfdHVuZXJfc2NoZWR1bGVyX3NvZnRfc3RhdGVfdGltZXJfbXMiLDgwMCksdGs9MCx3az0wO3ZhciBCaztCaz1jbGFzcyBleHRlbmRzIHlze0dhKGEsYixjKXtjIT09dm9pZCAwJiZOdW1iZXIuaXNOYU4oTnVtYmVyKGMpKSYmKGM9dm9pZCAwKTt2YXIgZD1fLnNhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSm9iIik7cmV0dXJuIGQ/ZChhLGIsYyk6Yz09PXZvaWQgMD8oYSgpLE5hTik6Xy5taihhLGN8fDApfUFhKGEpe2lmKGE9PT12b2lkIDB8fCFOdW1iZXIuaXNOYU4oTnVtYmVyKGEpKSl7dmFyIGI9Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmNhbmNlbEpvYiIpO2I/YihhKTp3aW5kb3cuY2xlYXJUaW1lb3V0KGEpfX1zdGFydCgpe3ZhciBhPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zdGFydCIpO2EmJmEoKX1wYXVzZSgpe3ZhciBhPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5wYXVzZSIpO2EmJmEoKX19O18uamY9Xy5DaygpOwpfLnNhKCJ5dC5zY2hlZHVsZXIuaW5pdGlhbGl6ZWQiKXx8KF8ucmEoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5kaXNwb3NlIixtayksXy5yYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmFkZEpvYiIsb2spLF8ucmEoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5hZGRJbW1lZGlhdGVKb2IiLHBrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2FuY2VsSm9iIixxayksXy5yYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmNhbmNlbEFsbEpvYnMiLGxrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2Uuc3RhcnQiLHJrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UucGF1c2UiLHZrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2Uuc2V0UHJpb3JpdHlUaHJlc2hvbGQiLHhrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuZW5hYmxlUHJpb3JpdHlUaHJlc2hvbGQiLHprKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2xlYXJQcmlvcml0eVRocmVzaG9sZCIsQWspLF8ucmEoInl0LnNjaGVkdWxlci5pbml0aWFsaXplZCIsCiEwKSk7Xy5lbj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9KGE9Xy5HaChhKSk/bmV3IF8uemgoYSk6bnVsbDt0aGlzLnY9ZG9jdW1lbnQuZG9tYWlufHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9bygpe3JldHVybiEhdGhpcy5qfXNldChhLGIsYyxkKXtjPWN8fDMxMTA0RTM7dGhpcy5yZW1vdmUoYSk7aWYodGhpcy5vKCkpdHJ5e3RoaXMuai5zZXQoYSxiLERhdGUubm93KCkrYyoxRTMpO3JldHVybn1jYXRjaChmKXt9dmFyIGU9IiI7aWYoZCl0cnl7ZT1lc2NhcGUoYnMoYikpfWNhdGNoKGYpe3JldHVybn1lbHNlIGU9ZXNjYXBlKGIpO18uTWooYSxlLGMsdGhpcy52KX1nZXQoYSxiKXt2YXIgYz12b2lkIDAsZD0hdGhpcy5vKCk7aWYoIWQpdHJ5e2M9dGhpcy5qLmdldChhKX1jYXRjaChlKXtkPSEwfWlmKGQmJihjPV8uTGouZ2V0KGEsdm9pZCAwKSkmJihjPXVuZXNjYXBlKGMpLGIpKXRyeXtjPUpTT04ucGFyc2UoYyl9Y2F0Y2goZSl7dGhpcy5yZW1vdmUoYSksYz12b2lkIDB9cmV0dXJuIGN9cmVtb3ZlKGEpe3RoaXMubygpJiYKdGhpcy5qLnJlbW92ZShhKTtfLk5qKGEsIi8iLHRoaXMudil9fTt2YXIgRGs9KCgpPT57dmFyIGE7cmV0dXJuKCk9PnthfHwoYT1uZXcgXy5lbigieXRpZGIiKSk7cmV0dXJuIGF9fSkoKTt2YXIgRms7Xy5Iaz1bXTtGaz0hMTtfLklsPV8uaHJ8fF8uaXI7dmFyIEJzPXtBVVRIX0lOVkFMSUQ6Ik5vIHVzZXIgaWRlbnRpZmllciBzcGVjaWZpZWQuIixFWFBMSUNJVF9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGV4cGxpY2l0bHkgYWJvcnRlZC4iLElEQl9OT1RfU1VQUE9SVEVEOiJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZC4iLE1JU1NJTkdfSU5ERVg6IkluZGV4IG5vdCBjcmVhdGVkLiIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJPYmplY3Qgc3RvcmVzIG5vdCBjcmVhdGVkLiIsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIGRlbGV0ZWQgYmVjYXVzZSBleHBlY3RlZCBvYmplY3Qgc3RvcmVzIHdlcmUgbm90IGNyZWF0ZWQuIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIHJlb3BlbmVkIGJlY2F1c2UgZXhwZWN0ZWQgb2JqZWN0IHN0b3JlcyB3ZXJlIG5vdCBjcmVhdGVkLiIsVU5LTk9XTl9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQgZm9yIHVua25vd24gcmVhc29ucy4iLApRVU9UQV9FWENFRURFRDoiVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gZXhjZWVkZWQgaXRzIHF1b3RhIGxpbWl0YXRpb25zLiIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IlRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG1heSBoYXZlIGZhaWxlZCBiZWNhdXNlIG9mIGV4Y2VlZGluZyBxdW90YSBsaW1pdGF0aW9ucy4iLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiJDYW4ndCBzdGFydCBhIHRyYW5zYWN0aW9uIG9uIGEgY2xvc2VkIGRhdGFiYXNlIixJTkNPTVBBVElCTEVfREJfVkVSU0lPTjoiVGhlIGJpbmFyeSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZGF0YWJhc2UgdmVyc2lvbiJ9LENzPXtBVVRIX0lOVkFMSUQ6IkVSUk9SIixFWEVDVVRFX1RSQU5TQUNUSU9OX09OX0NMT1NFRF9EQjoiV0FSTklORyIsRVhQTElDSVRfQUJPUlQ6IklHTk9SRUQiLElEQl9OT1RfU1VQUE9SVEVEOiJFUlJPUiIsTUlTU0lOR19JTkRFWDoiV0FSTklORyIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJFUlJPUiIsCkRCX0RFTEVURURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJXQVJOSU5HIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IldBUk5JTkciLFFVT1RBX0VYQ0VFREVEOiJXQVJOSU5HIixRVU9UQV9NQVlCRV9FWENFRURFRDoiV0FSTklORyIsVU5LTk9XTl9BQk9SVDoiV0FSTklORyIsSU5DT01QQVRJQkxFX0RCX1ZFUlNJT046IldBUk5JTkcifSxEcz17QVVUSF9JTlZBTElEOiExLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiExLEVYUExJQ0lUX0FCT1JUOiExLElEQl9OT1RfU1VQUE9SVEVEOiExLE1JU1NJTkdfSU5ERVg6ITEsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLERCX0RFTEVURURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLERCX1JFT1BFTkVEX0JZX01JU1NJTkdfT0JKRUNUX1NUT1JFUzohMSxRVU9UQV9FWENFRURFRDohMSxRVU9UQV9NQVlCRV9FWENFRURFRDohMCxVTktOT1dOX0FCT1JUOiEwLElOQ09NUEFUSUJMRV9EQl9WRVJTSU9OOiExfSwKTms9Y2xhc3MgZXh0ZW5kcyBfLlhqe2NvbnN0cnVjdG9yKGEsYj17fSxjPUJzW2FdLGQ9Q3NbYV0sZT1Ec1thXSl7c3VwZXIoYyx7bmFtZToiWXRJZGJLbm93bkVycm9yIixpc1N3OnNlbGYuZG9jdW1lbnQ9PT12b2lkIDAsaXNJZnJhbWU6c2VsZiE9PXNlbGYudG9wLHR5cGU6YSwuLi5ifSk7dGhpcy50eXBlPWE7dGhpcy5tZXNzYWdlPWM7dGhpcy5sZXZlbD1kO3RoaXMuaj1lO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLE5rLnByb3RvdHlwZSl9fSxFcz1jbGFzcyBleHRlbmRzIE5re2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoIk1JU1NJTkdfT0JKRUNUX1NUT1JFUyIse2V4cGVjdGVkT2JqZWN0U3RvcmVzOmIsZm91bmRPYmplY3RTdG9yZXM6YX0sQnMuTUlTU0lOR19PQkpFQ1RfU1RPUkVTKTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxFcy5wcm90b3R5cGUpfX0sUGs9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5pbmRleD1hO3RoaXMub2JqZWN0U3RvcmU9CmI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsUGsucHJvdG90eXBlKX19LFFrPVsiVGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZyIsIkNhbid0IHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBjbG9zZWQgZGF0YWJhc2UiLCJBIG11dGF0aW9uIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZGF0YWJhc2UgdGhhdCBkaWQgbm90IGFsbG93IG11dGF0aW9ucyJdO3ZhciBhbDthbD1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19OwpfLlZrPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc3RhdGU9e3N0YXR1czoiUEVORElORyJ9O3RoaXMuaj1bXTt0aGlzLm89W107YT1hLmo7dmFyIGI9ZD0+e2lmKHRoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciKXt0aGlzLnN0YXRlPXtzdGF0dXM6IkZVTEZJTExFRCIsdmFsdWU6ZH07Zm9yKGxldCBlIG9mIHRoaXMuaillKCl9fSxjPWQ9PntpZih0aGlzLnN0YXRlLnN0YXR1cz09PSJQRU5ESU5HIil7dGhpcy5zdGF0ZT17c3RhdHVzOiJSRUpFQ1RFRCIscmVhc29uOmR9O2ZvcihsZXQgZSBvZiB0aGlzLm8pZSgpfX07dHJ5e2EoYixjKX1jYXRjaChkKXtjKGQpfX1zdGF0aWMgYWxsKGEpe3JldHVybiBuZXcgXy5WayhuZXcgYWwoKGIsYyk9Pnt2YXIgZD1bXSxlPWEubGVuZ3RoO2U9PT0wJiZiKGQpO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGg7KytmKV8uVmsucmVzb2x2ZShhW2ZdKS50aGVuKGg9PntkW2ZdPWg7ZS0tO2U9PT0wJiZiKGQpfSkuY2F0Y2goaD0+e2MoaCl9KX0pKX1zdGF0aWMgcmVzb2x2ZShhKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChiLApjKT0+e2EgaW5zdGFuY2VvZiBfLlZrP2EudGhlbihiLGMpOmIoYSl9KSl9c3RhdGljIHJlamVjdChhKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChiLGMpPT57YyhhKX0pKX10aGVuKGEsYil7dmFyIGM9YT8/VWssZD1iPz9UaztyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChlLGYpPT57dGhpcy5zdGF0ZS5zdGF0dXM9PT0iUEVORElORyI/KHRoaXMuai5wdXNoKCgpPT57WGsodGhpcyx0aGlzLGMsZSxmKX0pLHRoaXMuby5wdXNoKCgpPT57WWsodGhpcyx0aGlzLGQsZSxmKX0pKTp0aGlzLnN0YXRlLnN0YXR1cz09PSJGVUxGSUxMRUQiP1hrKHRoaXMsdGhpcyxjLGUsZik6dGhpcy5zdGF0ZS5zdGF0dXM9PT0iUkVKRUNURUQiJiZZayh0aGlzLHRoaXMsZCxlLGYpfSkpfWNhdGNoKGEpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGEpfX07dmFyIHhsPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vcHRpb25zPWI7dGhpcy50cmFuc2FjdGlvbkNvdW50PTA7dGhpcy52PU1hdGgucm91bmQoKDAsXy5lbCkoKSk7dGhpcy5vPSExfWFkZChhLGIsYyl7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWR3cml0ZSIsa2I6ITAsY29tbWl0OmRsKCl9LGQ9PmQub2JqZWN0U3RvcmUoYSkuYWRkKGIsYykpfWNsZWFyKGEpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxiPT5iLm9iamVjdFN0b3JlKGEpLmNsZWFyKCkpfWNsb3NlKCl7dGhpcy5qLmNsb3NlKCk7dGhpcy5vcHRpb25zPy5jbG9zZWQmJnRoaXMub3B0aW9ucy5jbG9zZWQoKX1jb3VudChhLGIpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkb25seSIsa2I6ITAsY29tbWl0OmRsKCl9LGM9PmMub2JqZWN0U3RvcmUoYSkuY291bnQoYikpfWRlbGV0ZShhLGIpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkd3JpdGUiLAprYjohMCxjb21taXQ6ZGwoKSYmIShiIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UpfSxjPT5jLm9iamVjdFN0b3JlKGEpLmRlbGV0ZShiKSl9Z2V0KGEsYil7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWRvbmx5IixrYjohMCxjb21taXQ6ZGwoKX0sYz0+Yy5vYmplY3RTdG9yZShhKS5nZXQoYikpfWdldEFsbChhLGIsYyl7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWRvbmx5IixrYjohMH0sZD0+ZC5vYmplY3RTdG9yZShhKS5nZXRBbGwoYixjKSl9b2JqZWN0U3RvcmVOYW1lcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuai5vYmplY3RTdG9yZU5hbWVzKX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuai5uYW1lfX0samw9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9YWRkKGEsYil7cmV0dXJuIGJsKHRoaXMuai5hZGQoYSxiKSl9YXV0b0luY3JlbWVudCgpe3JldHVybiB0aGlzLmouYXV0b0luY3JlbWVudH1jbGVhcigpe3JldHVybiBibCh0aGlzLmouY2xlYXIoKSkudGhlbigoKT0+Cnt9KX1jb3VudChhKXtyZXR1cm4gYmwodGhpcy5qLmNvdW50KGEpKX1kZWxldGUoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBJREJLZXlSYW5nZT9zbCh0aGlzLGEpOmJsKHRoaXMuai5kZWxldGUoYSkpfWdldChhKXtyZXR1cm4gYmwodGhpcy5qLmdldChhKSl9Z2V0QWxsKGEsYil7cmV0dXJuImdldEFsbCJpbiBJREJPYmplY3RTdG9yZS5wcm90b3R5cGU/YmwodGhpcy5qLmdldEFsbChhLGIpKTp0bCh0aGlzLGEsYil9aW5kZXgoYSl7dHJ5e3JldHVybiBuZXcgRnModGhpcy5qLmluZGV4KGEpKX1jYXRjaChiKXtpZihiIGluc3RhbmNlb2YgRXJyb3ImJmIubmFtZT09PSJOb3RGb3VuZEVycm9yIil0aHJvdyBuZXcgUGsoYSx0aGlzLmoubmFtZSk7dGhyb3cgYjt9fWdldE5hbWUoKXtyZXR1cm4gdGhpcy5qLm5hbWV9a2V5UGF0aCgpe3JldHVybiB0aGlzLmoua2V5UGF0aH19LGZsPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hO3RoaXMubz1uZXcgTWFwO3RoaXMuYWJvcnRlZD0hMTsKdGhpcy5kb25lPW5ldyBQcm9taXNlKChiLGMpPT57dGhpcy5qLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIiwoKT0+e2IoKX0pO3RoaXMuai5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZD0+e2QuY3VycmVudFRhcmdldD09PWQudGFyZ2V0JiZjKHRoaXMuai5lcnJvcil9KTt0aGlzLmouYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57dmFyIGQ9dGhpcy5qLmVycm9yO2lmKGQpYyhkKTtlbHNlIGlmKCF0aGlzLmFib3J0ZWQpe2Q9Tms7dmFyIGU9dGhpcy5qLm9iamVjdFN0b3JlTmFtZXM7bGV0IGY9W107Zm9yKGxldCBoPTA7aDxlLmxlbmd0aDtoKyspe2xldCBrPWUuaXRlbShoKTtpZihrPT09bnVsbCl0aHJvdyBFcnJvcigibWEiKTtmLnB1c2goayl9ZD1uZXcgZCgiVU5LTk9XTl9BQk9SVCIse29iamVjdFN0b3JlTmFtZXM6Zi5qb2luKCksZGJOYW1lOnRoaXMuai5kYi5uYW1lLG1vZGU6dGhpcy5qLm1vZGV9KTtjKGQpfX0pfSl9YWJvcnQoKXt0aGlzLmouYWJvcnQoKTt0aGlzLmFib3J0ZWQ9CiEwO3Rocm93IG5ldyBOaygiRVhQTElDSVRfQUJPUlQiKTt9Y29tbWl0KCl7dGhpcy5hYm9ydGVkfHx0aGlzLmouY29tbWl0Py4oKX1vYmplY3RTdG9yZShhKXthPXRoaXMuai5vYmplY3RTdG9yZShhKTt2YXIgYj10aGlzLm8uZ2V0KGEpO2J8fChiPW5ldyBqbChhKSx0aGlzLm8uc2V0KGEsYikpO3JldHVybiBifX0sRnM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9Y291bnQoYSl7cmV0dXJuIGJsKHRoaXMuai5jb3VudChhKSl9ZGVsZXRlKGEpe3JldHVybiB1bCh0aGlzLHtxdWVyeTphfSxiPT5iLmRlbGV0ZSgpLnRoZW4oKCk9PnJsKGIpKSl9Z2V0KGEpe3JldHVybiBibCh0aGlzLmouZ2V0KGEpKX1nZXRBbGwoYSxiKXtyZXR1cm4iZ2V0QWxsImluIElEQkluZGV4LnByb3RvdHlwZT9ibCh0aGlzLmouZ2V0QWxsKGEsYikpOnZsKHRoaXMsYSxiKX1rZXlQYXRoKCl7cmV0dXJuIHRoaXMuai5rZXlQYXRofXVuaXF1ZSgpe3JldHVybiB0aGlzLmoudW5pcXVlfX0sd2w9Y2xhc3N7Y29uc3RydWN0b3IoYSwKYil7dGhpcy5yZXF1ZXN0PWE7dGhpcy5jdXJzb3I9Yn1kZWxldGUoKXtyZXR1cm4gYmwodGhpcy5jdXJzb3IuZGVsZXRlKCkpLnRoZW4oKCk9Pnt9KX11cGRhdGUoYSl7cmV0dXJuIGJsKHRoaXMuY3Vyc29yLnVwZGF0ZShhKSl9fTt2YXIgR3M9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm5hbWU9YTt0aGlzLm9wdGlvbnM9Yjt0aGlzLnY9ITA7dGhpcy5EPXRoaXMuQj0wfW8oYSxiLGM9e30pe3JldHVybiB6bChhLGIsYyl9ZGVsZXRlKGE9e30pe3JldHVybiBfLkFsKHRoaXMubmFtZSxhKX1vcGVuKCl7aWYoIXRoaXMudil0aHJvdyBCbCh0aGlzKTtpZih0aGlzLmopcmV0dXJuIHRoaXMuajt2YXIgYSxiPSgpPT57dGhpcy5qPT09YSYmKHRoaXMuaj12b2lkIDApfSxjPXtibG9ja2luZzplPT57ZS5jbG9zZSgpfSxjbG9zZWQ6YixUQTpiLHVwZ3JhZGU6dGhpcy5vcHRpb25zLnVwZ3JhZGV9LGQ9YXN5bmMoKT0+e3ZhciBlPUVycm9yKCkuc3RhY2s/PyIiO3RyeXtsZXQgaz1hd2FpdCB0aGlzLm8odGhpcy5uYW1lLHRoaXMub3B0aW9ucy52ZXJzaW9uLGMpO3ZhciBmPWssaD10aGlzLm9wdGlvbnM7bGV0IGw9W107Zm9yKGxldCBtIG9mIE9iamVjdC5rZXlzKGguc2UpKXtsZXQge1BkOm4seks6cD1OdW1iZXIuTUFYX1ZBTFVFfT0KaC5zZVttXTshKGYuai52ZXJzaW9uPj1uKXx8Zi5qLnZlcnNpb24+PXB8fGYuai5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKG0pfHxsLnB1c2gobSl9aWYobC5sZW5ndGghPT0wKXtsZXQgbT1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMuc2UpLG49ay5vYmplY3RTdG9yZU5hbWVzKCk7aWYodGhpcy5EPF8uc2ooInl0aWRiX3Jlb3Blbl9kYl9yZXRyaWVzIiwwKSlyZXR1cm4gdGhpcy5EKyssay5jbG9zZSgpLF8uSWsobmV3IE5rKCJEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOm0sZm91bmRPYmplY3RTdG9yZXM6bn0pKSxkKCk7aWYodGhpcy5CPF8uc2ooInl0aWRiX3JlbWFrZV9kYl9yZXRyaWVzIiwxKSlyZXR1cm4gdGhpcy5CKyssYXdhaXQgdGhpcy5kZWxldGUoKSxfLklrKG5ldyBOaygiREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOm0sCmZvdW5kT2JqZWN0U3RvcmVzOm59KSksZCgpO3Rocm93IG5ldyBFcyhuLG0pO31yZXR1cm4ga31jYXRjaChrKXtpZihrIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uP2submFtZT09PSJWZXJzaW9uRXJyb3IiOiJET01FcnJvciJpbiBzZWxmJiZrIGluc3RhbmNlb2YgRE9NRXJyb3I/ay5uYW1lPT09IlZlcnNpb25FcnJvciI6ayBpbnN0YW5jZW9mIE9iamVjdCYmIm1lc3NhZ2UiaW4gayYmay5tZXNzYWdlPT09IkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpe2U9YXdhaXQgdGhpcy5vKHRoaXMubmFtZSx2b2lkIDAsey4uLmMsdXBncmFkZTp2b2lkIDB9KTtmPWUuai52ZXJzaW9uO2lmKHRoaXMub3B0aW9ucy52ZXJzaW9uIT09dm9pZCAwJiZmPnRoaXMub3B0aW9ucy52ZXJzaW9uKzEpdGhyb3cgZS5jbG9zZSgpLHRoaXMudj0hMSxCbCh0aGlzLGYpO3JldHVybiBlfWIoKTtrIGluc3RhbmNlb2YKRXJyb3ImJiFfLngoInl0aWRiX2FzeW5jX3N0YWNrX2tpbGxzd2l0Y2giKSYmKGsuc3RhY2s9YCR7ay5zdGFja31cbiR7ZS5zdWJzdHJpbmcoZS5pbmRleE9mKCJcbiIpKzEpfWApO3Rocm93IFJrKGssdGhpcy5uYW1lLCIiLHRoaXMub3B0aW9ucy52ZXJzaW9uPz8tMSk7fX07cmV0dXJuIHRoaXMuaj1hPWQoKX19O3ZhciBEbD1uZXcgR3MoIll0SWRiTWV0YSIse3NlOntkYXRhYmFzZXM6e1BkOjF9fSx1cGdyYWRlKGEsYil7YigxKSYmXy5rbChhLCJkYXRhYmFzZXMiLHtrZXlQYXRoOiJhY3R1YWxOYW1lIn0pfX0pO3ZhciBNbCxLbD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt9fShuZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt9fSk7bmV3IF8uY3M7dmFyIFlsPWNsYXNzIGV4dGVuZHMgR3N7Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhLGIpO3RoaXMub3B0aW9ucz1iO0trKGEpfW8oYSxiLGM9e30pe3JldHVybih0aGlzLm9wdGlvbnMuc2hhcmVkP1RsOlNsKShhLGIsey4uLmN9KX1kZWxldGUoYT17fSl7cmV0dXJuKHRoaXMub3B0aW9ucy5zaGFyZWQ/WGw6VWwpKHRoaXMubmFtZSxhKX19O3ZhciBhbT1fLiRsKCJ5dEdjZkNvbmZpZyIse3NlOntjb2xkQ29uZmlnU3RvcmU6e1BkOjF9LGhvdENvbmZpZ1N0b3JlOntQZDoxfX0sc2hhcmVkOiExLHVwZ3JhZGUoYSxiKXtiKDEpJiYoXy5vbChfLmtsKGEsImhvdENvbmZpZ1N0b3JlIix7a2V5UGF0aDoia2V5IixhdXRvSW5jcmVtZW50OiEwfSksImhvdFRpbWVzdGFtcEluZGV4IiwidGltZXN0YW1wIiksXy5vbChfLmtsKGEsImNvbGRDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJjb2xkVGltZXN0YW1wSW5kZXgiLCJ0aW1lc3RhbXAiKSl9LHZlcnNpb246MX0pO3ZhciBIcz1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMubz1bXTt0aGlzLmo9W107dmFyIGE9Xy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RVcGRhdGVDYWxsYmFja3MiKTthPyh0aGlzLm89Wy4uLmFdLHRoaXMuaj1hKToodGhpcy5qPVtdLF8ucmEoInl0LmdjZi5jb25maWcuaG90VXBkYXRlQ2FsbGJhY2tzIix0aGlzLmopKX1sYSgpe2ZvcihsZXQgYiBvZiB0aGlzLm8pe3ZhciBhPXRoaXMuajtsZXQgYz1hLmluZGV4T2YoYik7Yz49MCYmYS5zcGxpY2UoYywxKX10aGlzLm8ubGVuZ3RoPTA7c3VwZXIubGEoKX19O3ZhciBpbT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj0wO3RoaXMubz1uZXcgSHN9d2ooKXtyZXR1cm4gXy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIpPz9fLncoIlJBV19IT1RfQ09ORklHX0dST1VQIil9QihhKXt0aGlzLmhvdEhhc2hEYXRhPWE7Xy5yYSgieXQuZ2NmLmNvbmZpZy5ob3RIYXNoRGF0YSIsdGhpcy5ob3RIYXNoRGF0YXx8bnVsbCl9fTt2YXIgSXM7SXM9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOm51bGw7Xy55bT1Jcz9hPT5Jcy5lbmNvZGUoYSk6YT0+e2E9Xy5hYyhhKTt2YXIgYj1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDtjKyspYltjXT1hW2NdO3JldHVybiBifTtfLnBtLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dmVyc2lvbjp0aGlzLnZlcnNpb24sYXJnczp0aGlzLmFyZ3N9fTtfLnFtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvcGljfTt2YXIgSnM9Xy5zYSgieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIil8fG5ldyBfLnRoO18udGgucHJvdG90eXBlLnN1YnNjcmliZT1fLnRoLnByb3RvdHlwZS5zdWJzY3JpYmU7Xy50aC5wcm90b3R5cGUudW5zdWJzY3JpYmVCeUtleT1fLnRoLnByb3RvdHlwZS5jaTtfLnRoLnByb3RvdHlwZS5wdWJsaXNoPV8udGgucHJvdG90eXBlLnB1Ymxpc2g7Xy50aC5wcm90b3R5cGUuY2xlYXI9Xy50aC5wcm90b3R5cGUuY2xlYXI7Xy5yYSgieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIixKcyk7Xy5Lcz1fLnNhKCJ5dFB1YnN1YjJQdWJzdWIyU3Vic2NyaWJlZEtleXMiKXx8e307Xy5yYSgieXRQdWJzdWIyUHVic3ViMlN1YnNjcmliZWRLZXlzIixfLktzKTtfLkxzPV8uc2EoInl0UHVic3ViMlB1YnN1YjJUb3BpY1RvS2V5cyIpfHx7fTtfLnJhKCJ5dFB1YnN1YjJQdWJzdWIyVG9waWNUb0tleXMiLF8uTHMpO18uTXM9Xy5zYSgieXRQdWJzdWIyUHVic3ViMklzQXN5bmMiKXx8e307Cl8ucmEoInl0UHVic3ViMlB1YnN1YjJJc0FzeW5jIixfLk1zKTtfLnJhKCJ5dFB1YnN1YjJQdWJzdWIyU2tpcFN1YktleSIsbnVsbCk7dmFyIHptO18ud209Xy5zaigibWF4X2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNUU1KTtfLnhtPV8uc2ooIm1pbl9ib2R5X3NpemVfdG9fY29tcHJlc3MiLDUwMCk7em09MDt2YXIgTnM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy54aT10aGlzLk9jPSExO3RoaXMucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPXRoaXMuaj0wO3RoaXMuaGFuZGxlRXJyb3I9KCk9Pnt9O3RoaXMuVGY9KCk9Pnt9O3RoaXMubm93PURhdGUubm93O3RoaXMuYWg9ITE7dGhpcy5ncz1hLmdzPz8xMDA7dGhpcy5Ncj1hLk1yPz8xO3RoaXMuS3I9YS5Lcj8/MjU5MkU2O3RoaXMuQ3I9YS5Dcj8/MTJFNDt0aGlzLkxyPWEuTHI/PzVFMzt0aGlzLkphPWEuSmE/P3ZvaWQgMDt0aGlzLk9pPSEhYS5PaTt0aGlzLkRpPWEuRGk/Py4xO3RoaXMuS2o9YS5Laj8/MTA7YS5oYW5kbGVFcnJvciYmKHRoaXMuaGFuZGxlRXJyb3I9YS5oYW5kbGVFcnJvcik7YS5UZiYmKHRoaXMuVGY9YS5UZik7YS5haCYmKHRoaXMuYWg9YS5haCk7YS54aSYmKHRoaXMueGk9YS54aSk7dGhpcy5LYT1hLkthO3RoaXMuRGM9YS5EYzt0aGlzLmNiPWEuY2I7dGhpcy5TYT1hLlNhO3RoaXMuR2Q9YS5HZDt0aGlzLkttPWEuS207CnRoaXMuRm09YS5GbTtCbSh0aGlzKSYmKCF0aGlzLkthfHx0aGlzLkthKCJuZXR3b3JrbGVzc19sb2dnaW5nIikpJiZEbSh0aGlzKX13cml0ZVRoZW5TZW5kKGEsYj17fSl7aWYoQm0odGhpcykmJnRoaXMuT2Mpe2xldCBjPXt1cmw6YSxvcHRpb25zOmIsdGltZXN0YW1wOnRoaXMubm93KCksc3RhdHVzOiJORVciLHNlbmRDb3VudDowfTt0aGlzLmNiLnNldChjLHRoaXMuSmEpLnRoZW4oZD0+e2MuaWQ9ZDt0aGlzLlNhLlNiKCkmJkdtKHRoaXMsYyl9KS5jYXRjaChkPT57R20odGhpcyxjKTtIbSh0aGlzLGQpfSl9ZWxzZSB0aGlzLkdkKGEsYil9c2VuZFRoZW5Xcml0ZShhLGI9e30sYyl7aWYoQm0odGhpcykmJnRoaXMuT2Mpe2xldCBkPXt1cmw6YSxvcHRpb25zOmIsdGltZXN0YW1wOnRoaXMubm93KCksc3RhdHVzOiJORVciLHNlbmRDb3VudDowfTt0aGlzLkthJiZ0aGlzLkthKCJud2xfc2tpcF9yZXRyeSIpJiYoZC5za2lwUmV0cnk9Yyk7aWYodGhpcy5TYS5TYigpfHx0aGlzLkthJiYKdGhpcy5LYSgibndsX2FnZ3Jlc3NpdmVfc2VuZF90aGVuX3dyaXRlIikmJiFkLnNraXBSZXRyeSl7aWYoIWQuc2tpcFJldHJ5KXtsZXQgZT1iLm9uRXJyb3I/Yi5vbkVycm9yOigpPT57fTtiLm9uRXJyb3I9YXN5bmMoZixoKT0+e2F3YWl0IHRoaXMuY2Iuc2V0KGQsdGhpcy5KYSkuY2F0Y2goaz0+e0htKHRoaXMsayl9KTtlKGYsaCl9fXRoaXMuR2QoYSxiLGQuc2tpcFJldHJ5KX1lbHNlIHRoaXMuY2Iuc2V0KGQsdGhpcy5KYSkuY2F0Y2goZT0+e3RoaXMuR2QoYSxiLGQuc2tpcFJldHJ5KTtIbSh0aGlzLGUpfSl9ZWxzZSB0aGlzLkdkKGEsYix0aGlzLkthJiZ0aGlzLkthKCJud2xfc2tpcF9yZXRyeSIpJiZjKX1zZW5kQW5kV3JpdGUoYSxiPXt9KXtpZihCbSh0aGlzKSYmdGhpcy5PYyl7bGV0IGM9e3VybDphLG9wdGlvbnM6Yix0aW1lc3RhbXA6dGhpcy5ub3coKSxzdGF0dXM6Ik5FVyIsc2VuZENvdW50OjB9LGQ9ITEsZT1iLm9uU3VjY2Vzcz9iLm9uU3VjY2VzczooKT0+e307Yy5vcHRpb25zLm9uU3VjY2Vzcz0KKGYsaCk9PntjLmlkIT09dm9pZCAwP3RoaXMuY2IuRmYoYy5pZCx0aGlzLkphKTpkPSEwO3RoaXMuU2EuZWYmJnRoaXMuS2EmJnRoaXMuS2EoInZzc19uZXR3b3JrX2hpbnQiKSYmdGhpcy5TYS5lZighMCk7ZShmLGgpfTt0aGlzLkdkKGMudXJsLGMub3B0aW9ucyx2b2lkIDAsITApO3RoaXMuY2Iuc2V0KGMsdGhpcy5KYSkudGhlbihmPT57Yy5pZD1mO2QmJnRoaXMuY2IuRmYoYy5pZCx0aGlzLkphKX0pLmNhdGNoKGY9PntIbSh0aGlzLGYpfSl9ZWxzZSB0aGlzLkdkKGEsYix2b2lkIDAsITApfW8oKXtpZighQm0odGhpcykpdGhyb3cgRXJyb3IoInJhIik7dGhpcy5qfHwodGhpcy5qPXRoaXMuRGMucGIoYXN5bmMoKT0+e3ZhciBhPWF3YWl0IHRoaXMuY2IuV3AoIk5FVyIsdGhpcy5KYSk7YT8oYXdhaXQgR20odGhpcyxhKSx0aGlzLmomJih0aGlzLmo9MCx0aGlzLm8oKSkpOnRoaXMudigpfSx0aGlzLmdzKSl9digpe3RoaXMuRGMuQWEodGhpcy5qKTt0aGlzLmo9MH19O3ZhciBLbTt2YXIgVW89e2FjY291bnRTdGF0ZUNoYW5nZVNpZ25lZEluOjIzLGFjY291bnRTdGF0ZUNoYW5nZVNpZ25lZE91dDoyNCxkZWxheWVkRXZlbnRNZXRyaWNDYXB0dXJlZDoxMSxsYXRlbmN5QWN0aW9uQmFzZWxpbmVkOjYsbGF0ZW5jeUFjdGlvbkluZm86NyxsYXRlbmN5QWN0aW9uVGlja2VkOjUsb2ZmbGluZVRyYW5zZmVyU3RhdHVzQ2hhbmdlZDoyLG9mZmxpbmVJbWFnZURvd25sb2FkOjMzNSxwbGF5YmFja1N0YXJ0U3RhdGVDaGFuZ2VkOjksc3lzdGVtSGVhbHRoQ2FwdHVyZWQ6MyxtYW5nb09uYm9hcmRpbmdDb21wbGV0ZWQ6MTAsbWFuZ29QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWQ6MjMwLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25FcnJvcjoxMjEsbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblN1bW1hcnk6MTIyLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25QcmV1bmZvcmtEYlZlcnNpb25OdW1iZXI6MTMzLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25QaG9uZU1ldGFkYXRhOjEzNCxtYW5nb1VuZm9ya0RiTWlncmF0aW9uUGhvbmVTdG9yYWdlOjEzNSwKbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblN0ZXA6MTQyLG1hbmdvQXN5bmNBcGlNaWdyYXRpb25FdmVudDoyMjMsbWFuZ29Eb3dubG9hZFZpZGVvUmVzdWx0OjIyNCxtYW5nb0hvbWVwYWdlVmlkZW9Db3VudDoyNzksbWFuZ29Ib21lVjNTdGF0ZToyOTUsbWFuZ29JbWFnZUNsaWVudENhY2hlSGl0RXZlbnQ6MjczLHNkQ2FyZFN0YXR1c0NoYW5nZWQ6OTgsZnJhbWVzRHJvcHBlZDoxMix0aHVtYm5haWxIb3ZlcmVkOjEzLGRldmljZVJldGVudGlvbkluZm9DYXB0dXJlZDoxNCx0aHVtYm5haWxMb2FkZWQ6MTUsYmFja1RvQXBwRXZlbnQ6MzE4LHN0cmVhbWluZ1N0YXRzQ2FwdHVyZWQ6MTcsb2ZmbGluZVZpZGVvU2hhcmVkOjE5LGFwcENyYXNoZWQ6MjAseW91VGhlcmU6MjEsb2ZmbGluZVN0YXRlU25hcHNob3Q6MjIsbWR4U2Vzc2lvblN0YXJ0ZWQ6MjUsbWR4U2Vzc2lvbkNvbm5lY3RlZDoyNixtZHhTZXNzaW9uRGlzY29ubmVjdGVkOjI3LGJlZHJvY2tSZXNvdXJjZUNvbnN1bXB0aW9uU25hcHNob3Q6MjgsCm5leHRHZW5XYXRjaFdhdGNoU3dpcGVkOjI5LGtpZHNBY2NvdW50c1NuYXBzaG90OjMwLHplcm9TdGVwQ2hhbm5lbENyZWF0ZWQ6MzEsdHZodG1sNVNlYXJjaENvbXBsZXRlZDozMixvZmZsaW5lU2hhcmVQYWlyaW5nOjM0LG9mZmxpbmVTaGFyZVVubG9jazozNSxtZHhSb3V0ZURpc3RyaWJ1dGlvblNuYXBzaG90OjM2LGJlZHJvY2tSZXBldGl0aXZlQWN0aW9uVGltZWQ6MzcsdW5wbHVnZ2VkRGVncmFkYXRpb25JbmZvOjIyOSx1cGxvYWRNcDRIZWFkZXJNb3ZlZDozOCx1cGxvYWRWaWRlb1RyYW5zY29kZWQ6MzksdXBsb2FkUHJvY2Vzc29yU3RhcnRlZDo0Nix1cGxvYWRQcm9jZXNzb3JFbmRlZDo0Nyx1cGxvYWRQcm9jZXNzb3JSZWFkeTo5NCx1cGxvYWRQcm9jZXNzb3JSZXF1aXJlbWVudFBlbmRpbmc6OTUsdXBsb2FkUHJvY2Vzc29ySW50ZXJydXB0ZWQ6OTYsdXBsb2FkRnJvbnRlbmRFdmVudDoyNDEsYXNzZXRQYWNrRG93bmxvYWRTdGFydGVkOjQxLGFzc2V0UGFja0Rvd25sb2FkZWQ6NDIsCmFzc2V0UGFja0FwcGxpZWQ6NDMsYXNzZXRQYWNrRGVsZXRlZDo0NCxhcHBJbnN0YWxsQXR0cmlidXRpb25FdmVudDo0NTkscGxheWJhY2tTZXNzaW9uU3RvcHBlZDo0NSxhZEJsb2NrZXJNZXNzYWdpbmdTaG93bjo0OCxkaXN0cmlidXRpb25DaGFubmVsQ2FwdHVyZWQ6NDksZGF0YVBsYW5DcGlkUmVxdWVzdGVkOjUxLGRldGFpbGVkTmV0d29ya1R5cGVDYXB0dXJlZDo1MixzZW5kU3RhdGVVcGRhdGVkOjUzLHJlY2VpdmVTdGF0ZVVwZGF0ZWQ6NTQsc2VuZERlYnVnU3RhdGVVcGRhdGVkOjU1LHJlY2VpdmVEZWJ1Z1N0YXRlVXBkYXRlZDo1NixraWRzRXJyb3JlZDo1NyxtZHhNc25TZXNzaW9uU3RhdHNGaW5pc2hlZDo1OCxhcHBTZXR0aW5nc0NhcHR1cmVkOjU5LG1keFdlYlNvY2tldFNlcnZlckh0dHBFcnJvcjo2MCxtZHhXZWJTb2NrZXRTZXJ2ZXI6NjEsc3RhcnR1cENyYXNoZXNEZXRlY3RlZDo2Mixjb2xkU3RhcnRJbmZvOjQzNSxvZmZsaW5lUGxheWJhY2tTdGFydGVkOjYzLGxpdmVDaGF0TWVzc2FnZVNlbnQ6MjI1LApsaXZlQ2hhdFVzZXJQcmVzZW50OjQzNCxsaXZlQ2hhdEJlaW5nTW9kZXJhdGVkOjQ1NyxsaXZlQ2hhdEdpZnRCdXR0b25JbXByZXNzZWQ6NTU4LGxpdmVDcmVhdGlvbkNhbWVyYVVwZGF0ZWQ6NjQsbGl2ZUNyZWF0aW9uRW5jb2RpbmdDYXB0dXJlZDo2NSxsaXZlQ3JlYXRpb25FcnJvcjo2NixsaXZlQ3JlYXRpb25IZWFsdGhVcGRhdGVkOjY3LGxpdmVDcmVhdGlvblZpZGVvRWZmZWN0c0NhcHR1cmVkOjY4LGxpdmVDcmVhdGlvblN0YWdlT2NjdXJlZDo3NSxvZmZsaW5lU3lzdGVtRmFpbHVyZTo1NDYsbGl2ZUNyZWF0aW9uQnJvYWRjYXN0U2NoZWR1bGVkOjEyMyxsaXZlQ3JlYXRpb25BcmNoaXZlUmVwbGFjZW1lbnQ6MTQ5LGxpdmVDcmVhdGlvbkNvc3RyZWFtaW5nQ29ubmVjdGlvbjo0MjEsbGl2ZUNyZWF0aW9uUGxheWFibGVzTWV0cmljczo1MzMsbGl2ZUNyZWF0aW9uU3RyZWFtV2VicnRjU3RhdHM6Mjg4LGxpdmVDcmVhdGlvbldlYnJ0Y0Vycm9yOjUyNixtZHhTZXNzaW9uUmVjb3ZlcnlTdGFydGVkOjY5LAptZHhTZXNzaW9uUmVjb3ZlcnlDb21wbGV0ZWQ6NzAsbWR4U2Vzc2lvblJlY292ZXJ5U3RvcHBlZDo3MSx2aXN1YWxFbGVtZW50U2hvd246NzIsdmlzdWFsRWxlbWVudEhpZGRlbjo3Myx2aXN1YWxFbGVtZW50R2VzdHVyZWQ6NzgsdmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZDoyMDgsc2NyZWVuQ3JlYXRlZDoxNTYscGxheWJhY2tBc3NvY2lhdGVkOjIwMix2aXN1YWxFbGVtZW50QXR0YWNoZWQ6MjE1LHBsYXliYWNrQ29udGV4dEV2ZW50OjIxNCxjbG91ZENhc3RpbmdQbGF5YmFja1N0YXJ0ZWQ6NzQsd2ViUGxheWVyQXBpQ2FsbGVkOjc2LHR2aHRtbDVBY2NvdW50RGlhbG9nT3BlbmVkOjc5LGZvcmVncm91bmRIZWFydGJlYXQ6ODAsZm9yZWdyb3VuZEhlYXJ0YmVhdFNjcmVlbkFzc29jaWF0ZWQ6MTExLGtpZHNPZmZsaW5lU25hcHNob3Q6ODEsbWR4RW5jcnlwdGlvblNlc3Npb25TdGF0c0ZpbmlzaGVkOjgyLHBsYXllclJlcXVlc3RDb21wbGV0ZWQ6ODMsbGl0ZVNjaGVkdWxlclN0YXRpc3RpY3M6ODQsCm1keFNpZ25Jbjo4NSxzcGFjZWNhc3RNZXRhZGF0YUxvb2t1cFJlcXVlc3RlZDo4NixzcGFjZWNhc3RCYXRjaExvb2t1cFJlcXVlc3RlZDo4NyxzcGFjZWNhc3RTdW1tYXJ5UmVxdWVzdGVkOjg4LHNwYWNlY2FzdFBsYXliYWNrOjg5LHNwYWNlY2FzdERpc2NvdmVyeTo5MCx0dmh0bWw1TGF1bmNoVXJsQ29tcG9uZW50Q2hhbmdlZDo5MSxtZHhCYWNrZ3JvdW5kUGxheWJhY2tSZXF1ZXN0Q29tcGxldGVkOjkyLG1keEJyb2tlbkFkZGl0aW9uYWxEYXRhRGV2aWNlRGV0ZWN0ZWQ6OTMsdHZodG1sNUxvY2FsU3RvcmFnZTo5Nyx0dmh0bWw1RGV2aWNlU3RvcmFnZVN0YXR1czoxNDcsYXV0b0NhcHRpb25zQXZhaWxhYmxlOjk5LHBsYXliYWNrU2NydWJiaW5nRXZlbnQ6MzM5LGZsZXh5U3RhdGU6MTAwLGludGVyZmFjZU9yaWVudGF0aW9uQ2FwdHVyZWQ6MTAxLG1haW5BcHBCcm93c2VGcmFnbWVudENhY2hlOjEwMixvZmZsaW5lQ2FjaGVWZXJpZmljYXRpb25GYWlsdXJlOjEwMyxvZmZsaW5lUGxheWJhY2tFeGNlcHRpb25EaWdlc3Q6MjE3LAp2ckNvcHJlc2VuY2VTdGF0czoxMDQsdnJDb3ByZXNlbmNlU3luY1N0YXRzOjEzMCx2ckNvcHJlc2VuY2VDb21tc1N0YXRzOjEzNyx2ckNvcHJlc2VuY2VQYXJ0eVN0YXRzOjE1Myx2ckNvcHJlc2VuY2VFbW9qaVN0YXRzOjIxMyx2ckNvcHJlc2VuY2VFdmVudDoxNDEsdnJDb3ByZXNlbmNlRmxvd1RyYW5zaXRFdmVudDoxNjAsdnJDb3dhdGNoUGFydHlFdmVudDo0OTIsdnJDb3dhdGNoVXNlclN0YXJ0T3JKb2luRXZlbnQ6NTA0LHZyUGxheWJhY2tFdmVudDozNDUsa2lkc0FnZUdhdGVUcmFja2luZzoxMDUsb2ZmbGluZURlbGF5QWxsb3dlZFRyYWNraW5nOjEwNixtYWluQXBwQXV0b09mZmxpbmVTdGF0ZToxMDcsdmlkZW9Bc1RodW1ibmFpbERvd25sb2FkOjEwOCx2aWRlb0FzVGh1bWJuYWlsUGxheWJhY2s6MTA5LGxpdGVTaG93TW9yZToxMTAscmVuZGVyaW5nRXJyb3I6MTE4LGtpZHNQcm9maWxlUGluR2F0ZVRyYWNraW5nOjExOSxhYnJUcmFqZWN0b3J5OjEyNCxzY3JvbGxFdmVudDoxMjUsCnN0cmVhbXpJbmNyZW1lbnRlZDoxMjYsa2lkc1Byb2ZpbGVTd2l0Y2hlclRyYWNraW5nOjEyNyxraWRzUHJvZmlsZUNyZWF0aW9uVHJhY2tpbmc6MTI5LGJ1eUZsb3dTdGFydGVkOjEzNixpbnRlZ3JhdGlvbkF0dHJpYnV0aW9uRXZlbnQ6NTU2LG1ic0Nvbm5lY3Rpb25Jbml0aWF0ZWQ6MTM4LG1ic1BsYXliYWNrSW5pdGlhdGVkOjEzOSxtYnNMb2FkQ2hpbGRyZW46MTQwLGxpdGVQcm9maWxlRmV0Y2hlcjoxNDQsbWR4UmVtb3RlVHJhbnNhY3Rpb246MTQ2LHJlZWxQbGF5YmFja0Vycm9yOjE0OCxyZWFjaGFiaWxpdHlEZXRlY3Rpb25FdmVudDoxNTAsbW9iaWxlUGxheWJhY2tFdmVudDoxNTEsY291cnRzaWRlUGxheWVyU3RhdGVDaGFuZ2VkOjE1MixtdXNpY1BlcnNpc3RlbnRDYWNoZUNoZWNrZWQ6MTU0LG11c2ljUGVyc2lzdGVudENhY2hlQ2xlYXJlZDoxNTUscGxheWJhY2tJbnRlcnJ1cHRlZDoxNTcscGxheWJhY2tJbnRlcnJ1cHRpb25SZXNvbHZlZDoxNTgsZml4Rm9wRmxvdzoxNTksCmFuckRldGVjdGlvbjoxNjEsYmFja3N0YWdlUG9zdENyZWF0aW9uRmxvd0VuZGVkOjE2MixjbGllbnRFcnJvcjoxNjMsZ2FtaW5nQWNjb3VudExpbmtTdGF0dXNDaGFuZ2VkOjE2NCxsaXRlSG91c2V3YXJtaW5nOjE2NSxidXlGbG93RXZlbnQ6MTY3LGtpZHNQYXJlbnRhbEdhdGVUcmFja2luZzoxNjgsa2lkc1NpZ25lZE91dFNldHRpbmdzU3RhdHVzOjQzNyxraWRzU2lnbmVkT3V0UGF1c2VIaXN0b3J5Rml4U3RhdHVzOjQzOCx0dmh0bWw1V2F0Y2hkb2dWaW9sYXRpb246NDQ0LHlwY1VwZ3JhZGVGbG93OjE2OSx5b25nbGVTdHVkeToxNzAseXBjVXBkYXRlRmxvd1N0YXJ0ZWQ6MTcxLHlwY1VwZGF0ZUZsb3dDYW5jZWxsZWQ6MTcyLHlwY1VwZGF0ZUZsb3dTdWNjZWVkZWQ6MTczLHlwY1VwZGF0ZUZsb3dGYWlsZWQ6MTc0LGxpdGVHcm93dGhraXRQcm9tbzoxNzUscGF5bWVudEZsb3dTdGFydGVkOjM0MSx0cmFuc2FjdGlvbkZsb3dTaG93UGF5bWVudERpYWxvZzo0MDUsdHJhbnNhY3Rpb25GbG93U3RhcnRlZDoxNzYsCnRyYW5zYWN0aW9uRmxvd1NlY29uZGFyeURldmljZVN0YXJ0ZWQ6MjIyLHRyYW5zYWN0aW9uRmxvd1NlY29uZGFyeURldmljZVNpZ25lZE91dFN0YXJ0ZWQ6MzgzLHRyYW5zYWN0aW9uRmxvd0NhbmNlbGxlZDoxNzcsdHJhbnNhY3Rpb25GbG93UGF5bWVudENhbGxCYWNrUmVjZWl2ZWQ6Mzg3LHRyYW5zYWN0aW9uRmxvd1BheW1lbnRTdWJtaXR0ZWQ6NDYwLHRyYW5zYWN0aW9uRmxvd1BheW1lbnRTdWNjZWVkZWQ6MzI5LHRyYW5zYWN0aW9uRmxvd1N1Y2NlZWRlZDoxNzgsdHJhbnNhY3Rpb25GbG93RmFpbGVkOjE3OSx0cmFuc2FjdGlvbkZsb3dQbGF5QmlsbGluZ0Nvbm5lY3Rpb25TdGFydEV2ZW50OjQyOCx0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTdWNjZXNzOjQ1OCx0cmFuc2FjdGlvbkZsb3dFcnJvckV2ZW50OjQxMSxsaXRlVmlkZW9RdWFsaXR5Q2hhbmdlZDoxODAsd2F0Y2hCcmVha0VuYWJsZW1lbnRTZXR0aW5nRXZlbnQ6MTgxLHdhdGNoQnJlYWtGcmVxdWVuY3lTZXR0aW5nRXZlbnQ6MTgyLAp2aWRlb0VmZmVjdHNDYW1lcmFQZXJmb3JtYW5jZU1ldHJpY3M6MTgzLGFkTm90aWZ5OjE4NCxzdGFydHVwVGVsZW1ldHJ5OjE4NSxwbGF5YmFja09mZmxpbmVGYWxsYmFja1VzZWQ6MTg2LG91dE9mTWVtb3J5OjE4Nyx5cGNQYXVzZUZsb3dTdGFydGVkOjE4OCx5cGNQYXVzZUZsb3dDYW5jZWxsZWQ6MTg5LHlwY1BhdXNlRmxvd1N1Y2NlZWRlZDoxOTAseXBjUGF1c2VGbG93RmFpbGVkOjE5MSx1cGxvYWRGaWxlU2VsZWN0ZWQ6MTkyLHlwY1Jlc3VtZUZsb3dTdGFydGVkOjE5Myx5cGNSZXN1bWVGbG93Q2FuY2VsbGVkOjE5NCx5cGNSZXN1bWVGbG93U3VjY2VlZGVkOjE5NSx5cGNSZXN1bWVGbG93RmFpbGVkOjE5NixhZHNDbGllbnRTdGF0ZUNoYW5nZToxOTcseXBjQ2FuY2VsRmxvd1N0YXJ0ZWQ6MTk4LHlwY0NhbmNlbEZsb3dDYW5jZWxsZWQ6MTk5LHlwY0NhbmNlbEZsb3dTdWNjZWVkZWQ6MjAwLHlwY0NhbmNlbEZsb3dGYWlsZWQ6MjAxLHlwY0NhbmNlbEZsb3dHb1RvUGF5bWVudFByb2Nlc3Nvcjo0MDIsCnlwY0RlYWN0aXZhdGVGbG93U3RhcnRlZDozMjAseXBjUmVkZWVtRmxvd1N0YXJ0ZWQ6MjAzLHlwY1JlZGVlbUZsb3dDYW5jZWxsZWQ6MjA0LHlwY1JlZGVlbUZsb3dTdWNjZWVkZWQ6MjA1LHlwY1JlZGVlbUZsb3dGYWlsZWQ6MjA2LHlwY0ZhbWlseUNyZWF0ZUZsb3dTdGFydGVkOjI1OCx5cGNGYW1pbHlDcmVhdGVGbG93Q2FuY2VsbGVkOjI1OSx5cGNGYW1pbHlDcmVhdGVGbG93U3VjY2VlZGVkOjI2MCx5cGNGYW1pbHlDcmVhdGVGbG93RmFpbGVkOjI2MSx5cGNGYW1pbHlNYW5hZ2VGbG93U3RhcnRlZDoyNjIseXBjRmFtaWx5TWFuYWdlRmxvd0NhbmNlbGxlZDoyNjMseXBjRmFtaWx5TWFuYWdlRmxvd1N1Y2NlZWRlZDoyNjQseXBjRmFtaWx5TWFuYWdlRmxvd0ZhaWxlZDoyNjUscmVzdG9yZUNvbnRleHRFdmVudDoyMDcsZW1iZWRzQWRFdmVudDozMjcsYXV0b3BsYXlUcmlnZ2VyZWQ6MjA5LGNsaWVudERhdGFFcnJvckV2ZW50OjIxMCxleHBlcmltZW50YWxWc3NWYWxpZGF0aW9uOjIxMSwKdHZodG1sNVRyaWdnZXJlZEV2ZW50OjIxMix0dmh0bWw1RnJhbWV3b3Jrc0ZpZWxkVHJpYWxSZXN1bHQ6MjE2LHR2aHRtbDVGcmFtZXdvcmtzRmllbGRUcmlhbFN0YXJ0OjIyMCxtdXNpY09mZmxpbmVQcmVmZXJlbmNlczoyMTgsd2F0Y2hUaW1lU2VnbWVudDoyMTksYXBwV2lkdGhMYXlvdXRFcnJvcjoyMjEsYWNjb3VudFJlZ2lzdHJ5Q2hhbmdlOjIyNix1c2VyTWVudGlvbkF1dG9Db21wbGV0ZUJveEV2ZW50OjIyNyxkb3dubG9hZFJlY29tbWVuZGF0aW9uRW5hYmxlbWVudFNldHRpbmdFdmVudDoyMjgsbXVzaWNQbGF5YmFja0NvbnRlbnRNb2RlQ2hhbmdlRXZlbnQ6MjMxLG9mZmxpbmVEYk9wZW5Db21wbGV0ZWQ6MjMyLGtpZHNGbG93RXZlbnQ6MjMzLGtpZHNGbG93Q29ycHVzU2VsZWN0ZWRFdmVudDoyMzQsdmlkZW9FZmZlY3RzRXZlbnQ6MjM1LHVucGx1Z2dlZE9wc0VvZ0FuYWx5dGljc0V2ZW50OjIzNixwbGF5YmFja0F1ZGlvUm91dGVFdmVudDoyMzcsaW50ZXJhY3Rpb25Mb2dnaW5nRGVidWdNb2RlRXJyb3I6MjM4LApvZmZsaW5lWXRiUmVmcmVzaGVkOjIzOSxraWRzRmxvd0Vycm9yOjI0MCxtdXNpY0F1dG9wbGF5T25MYXVuY2hBdHRlbXB0ZWQ6MjQyLGRldmljZUNvbnRleHRBY3Rpdml0eUV2ZW50OjI0MyxkZXZpY2VDb250ZXh0RXZlbnQ6MjQ0LHRlbXBsYXRlUmVzb2x1dGlvbkV4Y2VwdGlvbjoyNDUsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RTZXJ2aWNlQ2FsbGVkOjI0NixlbWJlZHNTdG9yYWdlQWNjZXNzTm90Q2hlY2tlZDoyNDcsZW1iZWRzSGFzU3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNDgsZW1iZWRzSXRwUGxheWVkT25SZWxvYWQ6MjQ5LGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0OjI1MCxlbWJlZHNTaG91bGRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNTEsZW1iZWRzUmVxdWVzdFN0b3JhZ2VBY2Nlc3NTdGF0ZToyNTYsZW1iZWRzUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGYWlsZWRTdGF0ZToyNTcsZW1iZWRzSXRwV2F0Y2hMYXRlclJlc3VsdDoyNjYsc2VhcmNoU3VnZ2VzdERlY29kaW5nUGF5bG9hZEZhaWx1cmU6MjUyLApzaXJpU2hvcnRjdXRBY3RpdmF0ZWQ6MjUzLHR2aHRtbDVLZXlib2FyZFBlcmZvcm1hbmNlOjI1NCxsYXRlbmN5QWN0aW9uU3BhbjoyNTUsZWxlbWVudHNMb2c6MjY3LHl0YkZpbGVPcGVuZWQ6MjY4LHRmbGl0ZU1vZGVsRXJyb3I6MjY5LGFwaVRlc3Q6MjcwLHlvbmdsZVVzYlNldHVwOjI3MSx0b3VTdHJpa2VJbnRlcnN0aXRpYWxFdmVudDoyNzIsbGl0ZVN0cmVhbVRvU2F2ZToyNzQsYXBwQnVuZGxlQ2xpZW50RXZlbnQ6Mjc1LHl0YkZpbGVDcmVhdGlvbkZhaWxlZDoyNzYsYWROb3RpZnlGYWlsdXJlOjI3OCx5dGJUcmFuc2ZlckZhaWxlZDoyODAsYmxvY2tpbmdSZXF1ZXN0RmFpbGVkOjI4MSxsaXRlQWNjb3VudFNlbGVjdG9yOjI4MixsaXRlQWNjb3VudFVpQ2FsbGJhY2tzOjI4MyxkdW1teVBheWxvYWQ6Mjg0LGJyb3dzZVJlc3BvbnNlVmFsaWRhdGlvbkV2ZW50OjI4NSxlbnRpdGllc0Vycm9yOjI4NixtdXNpY0lvc0JhY2tncm91bmRGZXRjaDoyODcsbWR4Tm90aWZpY2F0aW9uRXZlbnQ6Mjg5LApsYXllcnNWYWxpZGF0aW9uRXJyb3I6MjkwLG11c2ljUHdhSW5zdGFsbGVkOjI5MSxsaXRlQWNjb3VudENsZWFudXA6MjkyLGh0bWw1UGxheWVySGVhbHRoRXZlbnQ6MjkzLHdhdGNoUmVzdG9yZUF0dGVtcHQ6Mjk0LGxpdGVBY2NvdW50U2lnbkluOjI5Nixub3RhaXJlRXZlbnQ6Mjk4LGtpZHNWb2ljZVNlYXJjaEV2ZW50OjI5OSxhZE5vdGlmeUZpbGxlZDozMDAsZGVsYXllZEV2ZW50RHJvcHBlZDozMDEsYW5hbHl0aWNzU2VhcmNoRXZlbnQ6MzAyLHN5c3RlbURhcmtUaGVtZU9wdE91dEV2ZW50OjMwMyxmbG93RXZlbnQ6MzA0LG5ldHdvcmtDb25uZWN0aXZpdHlCYXNlbGluZUV2ZW50OjMwNSx5dGJGaWxlSW1wb3J0ZWQ6MzA2LGRvd25sb2FkU3RyZWFtVXJsRXhwaXJlZDozMDcsZGlyZWN0U2lnbkluRXZlbnQ6MzA4LGx5cmljSW1wcmVzc2lvbkV2ZW50OjMwOSxhY2Nlc3NpYmlsaXR5U3RhdGVFdmVudDozMTAsdG9rZW5SZWZyZXNoRXZlbnQ6MzExLGdlbmVyaWNBdHRlc3RhdGlvbkV4ZWN1dGlvbjozMTIsCnR2aHRtbDVWaWRlb1NlZWs6MzEzLHVucGx1Z2dlZEF1dG9QYXVzZTozMTQsc2NydWJiaW5nRXZlbnQ6MzE1LGJlZHRpbWVSZW1pbmRlckV2ZW50OjMxNyx0dmh0bWw1VW5leHBlY3RlZFJlc3RhcnQ6MzE5LHR2aHRtbDVEZXZpY2VTdG9yYWdlU3RhdHM6NTM1LHR2aHRtbDVTdGFiaWxpdHlUcmFjZUV2ZW50OjQ3OCx0dmh0bWw1T3BlcmF0aW9uSGVhbHRoOjQ2Nyx0dmh0bWw1V2F0Y2hLZXlFdmVudDozMjEsdm9pY2VMYW5ndWFnZUNoYW5nZWQ6MzIyLHR2aHRtbDVMaXZlQ2hhdFN0YXR1czozMjMscGFyZW50VG9vbHNDb3JwdXNTZWxlY3RlZEV2ZW50OjMyNCxvZmZlckFkc0Vucm9sbG1lbnRJbml0aWF0ZWQ6MzI1LG5ldHdvcmtRdWFsaXR5SW50ZXJ2YWxFdmVudDozMjYsZGV2aWNlU3RhcnR1cE1ldHJpY3M6MzI4LGhlYXJ0YmVhdEFjdGlvblBsYXllclRyYW5zaXRpb25lZDozMzAsdHZodG1sNUxpZmVjeWNsZTozMzEsaGVhcnRiZWF0QWN0aW9uUGxheWVySGFsdGVkOjMzMixhZGFwdGl2ZUlubGluZU11dGVkU2V0dGluZ0V2ZW50OjMzMywKbWFpbkFwcExpYnJhcnlMb2FkaW5nU3RhdGU6MzM0LHRoaXJkUGFydHlMb2dNb25pdG9yaW5nRXZlbnQ6MzM2LGFwcFNoZWxsQXNzZXRMb2FkUmVwb3J0OjMzNyx0dmh0bWw1QW5kcm9pZEF0dGVzdGF0aW9uOjMzOCx0dmh0bWw1U3RhcnR1cFNvdW5kRXZlbnQ6MzQwLGlvc0JhY2tncm91bmRSZWZyZXNoVGFzazozNDIsaW9zQmFja2dyb3VuZFByb2Nlc3NpbmdUYXNrOjM0MyxzbGlFdmVudEJhdGNoOjM0NCxwb3N0SW1wcmVzc2lvbkV2ZW50OjM0NixtdXNpY1NpZGVsb2FkZWRQbGF5bGlzdEV4cG9ydDozNDcsaWRiVW5leHBlY3RlZGx5Q2xvc2VkOjM0OCx2b2ljZVNlYXJjaEV2ZW50OjM0OSxtZHhTZXNzaW9uQ2FzdEV2ZW50OjM1MCxpZGJRdW90YUV4Y2VlZGVkOjM1MSxpZGJUcmFuc2FjdGlvbkVuZGVkOjM1MixpZGJUcmFuc2FjdGlvbkFib3J0ZWQ6MzUzLHR2aHRtbDVLZXlib2FyZExvZ2dpbmc6MzU0LGlkYklzU3VwcG9ydGVkQ29tcGxldGVkOjM1NSxjcmVhdG9yU3R1ZGlvTW9iaWxlRXZlbnQ6MzU2LAppZGJEYXRhQ29ycnVwdGVkOjM1NyxwYXJlbnRUb29sc0FwcENob3NlbkV2ZW50OjM1OCx3ZWJWaWV3Qm90dG9tU2hlZXRSZXNpemVkOjM1OSxhY3RpdmVTdGF0ZUNvbnRyb2xsZXJTY3JvbGxQZXJmb3JtYW5jZVN1bW1hcnk6MzYwLG5hdmlnYXRvclZhbGlkYXRpb246MzYxLG1keFNlc3Npb25IZWFydGJlYXQ6MzYyLGNsaWVudEhpbnRzUG9seWZpbGxEaWFnbm9zdGljczozNjMsY2xpZW50SGludHNQb2x5ZmlsbEV2ZW50OjM2NCxwcm9vZk9mT3JpZ2luVG9rZW5FcnJvcjozNjUsa2lkc0FkZGVkQWNjb3VudFN1bW1hcnk6MzY2LG11c2ljV2VhcmFibGVEZXZpY2U6MzY3LHlwY1JlZnVuZEZsb3dFdmVudDozNjgsdHZodG1sNVBsYXliYWNrTWVhc3VyZW1lbnRFdmVudDozNjksdHZodG1sNVdhdGVybWFya01lYXN1cmVtZW50RXZlbnQ6MzcwLGNsaWVudEV4cEdjZlByb3BhZ2F0aW9uRXZlbnQ6MzcxLG1haW5BcHBSZWZlcnJlckludGVudDozNzIsbGVhZGVyTG9ja0VuZGVkOjM3MyxsZWFkZXJMb2NrQWNxdWlyZWQ6Mzc0LApnb29nbGVIYXRzRXZlbnQ6Mzc1LHBlcnNpc3RlbnRMZW5zTGF1bmNoRXZlbnQ6Mzc2LHBhcmVudFRvb2xzQ2hpbGRXZWxjb21lQ2hvc2VuRXZlbnQ6Mzc4LGJyb3dzZVRodW1ibmFpbFByZWxvYWRFdmVudDozNzksZmluYWxQYXlsb2FkOjM4MCxtZHhEaWFsQWRkaXRpb25hbERhdGFVcGRhdGVFdmVudDozODEsd2ViT3JjaGVzdHJhdGlvblRhc2tMaWZlY3ljbGVSZWNvcmQ6MzgyLHN0YXJ0dXBTaWduYWxFdmVudDozODQsYWNjb3VudEVycm9yOjM4NSxnbXNEZXZpY2VDaGVja0V2ZW50OjM4NixhY2NvdW50U2VsZWN0b3JFdmVudDozODgsYWNjb3VudFVpQ2FsbGJhY2tzOjM4OSxtZHhEaWFsQWRkaXRpb25hbERhdGFQcm9iZUV2ZW50OjM5MCxkb3dubG9hZHNTZWFyY2hJY2luZ0FwaVN0YXRzOjM5MSxkb3dubG9hZHNTZWFyY2hJbmRleFVwZGF0ZWRFdmVudDozOTcsZG93bmxvYWRzU2VhcmNoSW5kZXhTbmFwc2hvdDozOTgsZGF0YVB1c2hDbGllbnRFdmVudDozOTIsa2lkc0NhdGVnb3J5U2VsZWN0ZWRFdmVudDozOTMsCm1keERldmljZU1hbmFnZW1lbnRTbmFwc2hvdEV2ZW50OjM5NCxwcmVmZXRjaFJlcXVlc3RlZDozOTUscHJlZmV0Y2hhYmxlQ29tbWFuZEV4ZWN1dGVkOjM5NixnZWxEZWJ1Z2dpbmdFdmVudDozOTksd2ViTGlua1R0c1BsYXlFbmQ6NDAwLGNsaXBWaWV3SW52YWxpZDo0MDEscGVyc2lzdGVudFN0b3JhZ2VTdGF0ZUNoZWNrZWQ6NDAzLGNhY2hlV2lwZW91dEV2ZW50OjQwNCxwbGF5ZXJFdmVudDo0MTAsc2Z2RWZmZWN0UGlwZWxpbmVTdGFydGVkRXZlbnQ6NDEyLHNmdkVmZmVjdFBpcGVsaW5lUGF1c2VkRXZlbnQ6NDI5LHNmdkVmZmVjdFBpcGVsaW5lRW5kZWRFdmVudDo0MTMsc2Z2RWZmZWN0Q2hvc2VuRXZlbnQ6NDE0LHNmdkVmZmVjdExvYWRlZEV2ZW50OjQxNSxzZnZFZmZlY3RVc2VySW50ZXJhY3Rpb25FdmVudDo0NjUsc2Z2RWZmZWN0Rmlyc3RGcmFtZVByb2Nlc3NlZExhdGVuY3lFdmVudDo0MTYsc2Z2RWZmZWN0QWdncmVnYXRlZEZyYW1lc1Byb2Nlc3NlZExhdGVuY3lFdmVudDo0MTcsCnNmdkVmZmVjdEFnZ3JlZ2F0ZWRGcmFtZXNEcm9wcGVkRXZlbnQ6NDE4LHNmdkVmZmVjdFBpcGVsaW5lRXJyb3JFdmVudDo0MzAsc2Z2RWZmZWN0R3JhcGhGcm96ZW5FdmVudDo0MTksc2Z2RWZmZWN0R2xUaHJlYWRCbG9ja2VkRXZlbnQ6NDIwLG1kZVFvc0V2ZW50OjUxMCxtZGVWaWRlb0NoYW5nZWRFdmVudDo0NDIsbWRlUGxheWVyUGVyZm9ybWFuY2VNZXRyaWNzOjQ3MixtZGVFeHBvcnRlckV2ZW50OjQ5NyxnZW5lcmljQ2xpZW50RXhwZXJpbWVudEV2ZW50OjQyMyxob21lUHJlbG9hZFRhc2tTY2hlZHVsZWQ6NDI0LGhvbWVQcmVsb2FkVGFza0V4ZWN1dGVkOjQyNSxob21lUHJlbG9hZENhY2hlSGl0OjQyNixwb2x5bWVyUHJvcGVydHlDaGFuZ2VkSW5PYnNlcnZlcjo0MjcsYXBwbGljYXRpb25TdGFydGVkOjQzMSxuZXR3b3JrQ3JvbmV0UnR0QmF0Y2g6NDMyLG5ldHdvcmtDcm9uZXRSdHRTdW1tYXJ5OjQzMyxyZXBlYXRDaGFwdGVyTG9vcEV2ZW50OjQzNixzZWVrQ2FuY2VsbGF0aW9uRXZlbnQ6NDYyLApsb2NrTW9kZVRpbWVvdXRFdmVudDo0ODMsZXh0ZXJuYWxWaWRlb1NoYXJlVG9Zb3V0dWJlQXR0ZW1wdDo1MDEscGFyZW50Q29kZUV2ZW50OjUwMixvZmZsaW5lVHJhbnNmZXJTdGFydGVkOjQsbXVzaWNPZmZsaW5lTWl4dGFwZVByZWZlcmVuY2VzQ2hhbmdlZDoxNixtYW5nb0RhaWx5TmV3VmlkZW9zTm90aWZpY2F0aW9uQXR0ZW1wdDo0MCxtYW5nb0RhaWx5TmV3VmlkZW9zTm90aWZpY2F0aW9uRXJyb3I6NzcsZHR3c1BsYXliYWNrU3RhcnRlZDoxMTIsZHR3c1RpbGVGZXRjaFN0YXJ0ZWQ6MTEzLGR0d3NUaWxlRmV0Y2hDb21wbGV0ZWQ6MTE0LGR0d3NUaWxlRmV0Y2hTdGF0dXNDaGFuZ2VkOjE0NSxkdHdzS2V5ZnJhbWVEZWNvZGVyQnVmZmVyU2VudDoxMTUsZHR3c1RpbGVVbmRlcmZsb3dlZE9uTm9ua2V5ZnJhbWU6MTE2LGR0d3NCYWNrZmlsbEZldGNoU3RhdHVzQ2hhbmdlZDoxNDMsZHR3c0JhY2tmaWxsVW5kZXJmbG93ZWQ6MTE3LGR0d3NBZGFwdGl2ZUxldmVsQ2hhbmdlZDoxMjgsCmJsb2NraW5nVmlzaXRvcklkVGltZW91dDoyNzcsbGl0ZVNvY2lhbDoxOCxtb2JpbGVKc0ludm9jYXRpb246Mjk3LGJpc2NvdHRpQmFzZWREZXRlY3Rpb246NDM5LGNvV2F0Y2hTdGF0ZUNoYW5nZTo0NDAsZW1iZWRzVmlkZW9EYXRhRGlkQ2hhbmdlOjQ0MSxzaG9ydHNGaXJzdDo0NDMsY3J1aXNlQ29udHJvbEV2ZW50OjQ0NSxxb2VDbGllbnRMb2dnaW5nQ29udGV4dDo0NDYsYXR2UmVjb21tZW5kYXRpb25Kb2JFeGVjdXRlZDo0NDcsdHZodG1sNVVzZXJGZWVkYmFjazo0NDgscHJvZHVjZXJQcm9qZWN0Q3JlYXRlZDo0NDkscHJvZHVjZXJQcm9qZWN0T3BlbmVkOjQ1MCxwcm9kdWNlclByb2plY3REZWxldGVkOjQ1MSxwcm9kdWNlclByb2plY3RFbGVtZW50QWRkZWQ6NDUzLHByb2R1Y2VyUHJvamVjdEVsZW1lbnRSZW1vdmVkOjQ1NCxwcm9kdWNlckFwcFN0YXRlQ2hhbmdlOjUwOSxwcm9kdWNlclByb2plY3REaXNrSW5zdWZmaWNpZW50RXhwb3J0RmFpbHVyZTo1MTYscHJvZHVjZXJNZWRpYVNlcnZpY2VzUmVzZXREZXRhaWxzOjUyMiwKdHZodG1sNVNob3dDbG9ja0V2ZW50OjQ1NSxkZXZpY2VDYXBhYmlsaXR5Q2hlY2tNZXRyaWNzOjQ1Nix5b3V0dWJlQ2xlYXJjdXRFdmVudDo0NjEsb2ZmbGluZUJyb3dzZUZhbGxiYWNrRXZlbnQ6NDYzLGdldEN0dlRva2VuRXZlbnQ6NDY0LHN0YXJ0dXBEcm9wcGVkRnJhbWVzU3VtbWFyeTo0NjYsc2NyZWVuc2hvdEV2ZW50OjQ2OCxtaW5pQXBwUGxheUV2ZW50OjQ2OSxlbGVtZW50c0RlYnVnQ291bnRlcnM6NDcwLGZvbnRMb2FkRXZlbnQ6NDcxLHdlYktpbGxzd2l0Y2hSZWNlaXZlZDo0NzMsd2ViS2lsbHN3aXRjaEV4ZWN1dGVkOjQ3NCxjYW1lcmFPcGVuRXZlbnQ6NDc1LG1hbnVhbFNtb290aG5lc3NNZWFzdXJlbWVudDo0NzYsdHZodG1sNUFwcFF1YWxpdHlFdmVudDo0NzcscG9seW1lclByb3BlcnR5QWNjZXNzRXZlbnQ6NDc5LG1pbmlBcHBTZGtVc2FnZTo0ODAsY29iYWx0VGVsZW1ldHJ5RXZlbnQ6NDgxLGNyb3NzRGV2aWNlUGxheWJhY2s6NDgyLGNoYW5uZWxDcmVhdGVkV2l0aE9iYWtlSW1hZ2U6NDg0LApjaGFubmVsRWRpdGVkV2l0aE9iYWtlSW1hZ2U6NDg1LG9mZmxpbmVEZWxldGVFdmVudDo0ODYsY3Jvc3NEZXZpY2VOb3RpZmljYXRpb25UcmFuc2Zlcjo0ODcsYW5kcm9pZEludGVudEV2ZW50OjQ4OCx1bnBsdWdnZWRBbWJpZW50SW50ZXJsdWRlc0NvdW50ZXJmYWN0dWFsRXZlbnQ6NDg5LGtleVBsYXlzUGxheWJhY2s6NDkwLHNob3J0c0NyZWF0aW9uRmFsbGJhY2tFdmVudDo0OTMsdnNzRGF0YTo0OTEsY2FzdE1hdGNoOjQ5NCxtaW5pQXBwUGVyZm9ybWFuY2VNZXRyaWNzOjQ5NSx1c2VyRmVlZGJhY2tFdmVudDo0OTYsa2lkc0d1ZXN0U2Vzc2lvbk1pc21hdGNoOjQ5OCxtdXNpY1NpZGVsb2FkZWRQbGF5bGlzdE1pZ3JhdGlvbkV2ZW50OjQ5OSxzbGVlcFRpbWVyU2Vzc2lvbkZpbmlzaEV2ZW50OjUwMCx3YXRjaEVwUHJvbW9Db25mbGljdDo1MDMsaW5uZXJ0dWJlUmVzcG9uc2VDYWNoZU1ldHJpY3M6NTA1LG1pbmlBcHBBZEV2ZW50OjUwNixkYXRhUGxhblVwc2VsbEV2ZW50OjUwNywKcHJvZHVjZXJQcm9qZWN0UmVuYW1lZDo1MDgscHJvZHVjZXJNZWRpYVNlbGVjdGlvbkV2ZW50OjUxMSxlbWJlZHNBdXRvcGxheVN0YXR1c0NoYW5nZWQ6NTEyLHJlbW90ZUNvbm5lY3RFdmVudDo1MTMsY29ubmVjdGVkU2Vzc2lvbk1pc2F0dHJpYnV0aW9uRXZlbnQ6NTE0LHByb2R1Y2VyUHJvamVjdEVsZW1lbnRNb2RpZmllZDo1MTUsYWRzU2VlbkNsaWVudExvZ2dpbmc6NTE3LHByb2R1Y2VyRXZlbnQ6NTE4LHR2aHRtbDVDbGVhblN0YXJ0OjUxOSxkZXZpY2VBY2NvdW50TWV0cmljc0V2ZW50OjUyMCxkZXJwTG9nRXZlbnQ6NTIxLHBsYXlhYmxlc1BvcnRhbEV2ZW50OjUyMyxpcFZhbGlkYXRpb25TdGFydGVkOjUyNCxpcFZhbGlkYXRpb25SZWNlaXZlZDo1MjUscmVlbHNTZXF1ZW5jZU11dGF0aW9uRXZlbnQ6NTI3LHdhdGNoWm9vbVN0YXRlQ2hhbmdlOjUyOCxtZXRhZGF0YUVkaXRvckV2ZW50OjUyOSxraWRzUHJpc21hRGVlcGxpbmtzRXZlbnQ6NTMwLGNyZWF0aW9uT3JjaGVzdHJhdGlvbkV2ZW50OjUzMSwKY29vcmRpbmF0ZWRTYW1wbGluZ1RyaWdnZXJlZDo1MzIscmVjYXBTY3JlZW5zaG90RXZlbnQ6NTM0LG1keExvY2FsTmV0d29ya1Blcm1pc3Npb25SZXF1ZXN0RXZlbnQ6NTM2LG1keExvY2FsTmV0d29ya1Blcm1pc3Npb25SZXNwb25zZUV2ZW50OjUzNyxzZXNzaW9uUmVwbGF5RXZlbnQ6NTM4LHNlc3Npb25SZXBsYXlTdGF0dXNFdmVudDo1MzksbG9nZ2luZ1JlbGlhYmlsaXR5UHJvYmU6NTQwLGtleVZhbHVlU3RvcmVTdGF0c0V2ZW50OjU0MSxkZXZpY2VMb2NhdGlvblBlcm1pc3Npb25FdmVudDo1NDIscmVtb3RlQ29udHJvbFN0YXJ0ZWQ6NTQzLHJlbW90ZUNvbnRyb2xDb21wbGV0ZWQ6NTQ0LHJlZWxzQWRzRXZlbnRzOjU0NSx5dGxyTG9hZGVyVGVzdEhhcm5lc3NFdmVudDo1NDcsYmlvbWV0cmljQXV0aGVudGljYXRpb25FdmVudDo1NDgsbWFpbkFwcExpZmVjeWNsZUV2ZW50OjU0OSxtdXNpY0Rvd25sb2FkQmFja2dyb3VuZENvbnRpbnVlZFByb2Nlc3NpbmdUYXNrOjU1MCxtdXNpY01ldGFkYXRhTWlzbWF0Y2hFdmVudDo1NTEsCnNjcm9sbFRvQ29tcG9uZW50Q29tcGxldGVkOjU1MixlbnRpdHlTdG9yZVRlbGVtZXRyeTo1NTMsc3RyZWFtaW5nRGFya0xhdW5jaEV2ZW50OjU1NCxjaGlsZEFjY291bnRzRGlzcGxheUV2ZW50OjU1NSx0dmZhc1BsYXliYWNrQ29udGV4dDo1NTcsbWRlQzJQYUV2ZW50OjU1OX07dmFyIFZtPV8uJGwoIlNlcnZpY2VXb3JrZXJMb2dzRGF0YWJhc2UiLHtzZTp7U1dIZWFsdGhMb2c6e1BkOjF9fSxzaGFyZWQ6ITAsdXBncmFkZTooYSxiKT0+e2IoMSkmJl8ub2woXy5rbChhLCJTV0hlYWx0aExvZyIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSksInN3SGVhbHRoTmV3UmVxdWVzdCIsWyJpbnRlcmZhY2UiLCJ0aW1lc3RhbXAiXSl9LHZlcnNpb246MX0pO3ZhciBjbj17fSxibj0wO3ZhciBkbjt2YXIgaG49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9bmV3IE1hcDt0aGlzLm89ITF9cmVxdWVzdENvbXBsZXRlKGEsYil7YiYmKHRoaXMubz0hMCk7YT10aGlzLnJlbW92ZVBhcmFtcyhhKTt0aGlzLmouZ2V0KGEpfHx0aGlzLmouc2V0KGEsYil9aXNFbmRwb2ludENGUihhKXthPXRoaXMucmVtb3ZlUGFyYW1zKGEpO3JldHVybihhPXRoaXMuai5nZXQoYSkpPyExOmE9PT0hMSYmdGhpcy5vPyEwOm51bGx9cmVtb3ZlUGFyYW1zKGEpe3JldHVybiBhLnNwbGl0KCI/IilbMF19fTtobi5wcm90b3R5cGUucmVtb3ZlUGFyYW1zPWhuLnByb3RvdHlwZS5yZW1vdmVQYXJhbXM7aG4ucHJvdG90eXBlLmlzRW5kcG9pbnRDRlI9aG4ucHJvdG90eXBlLmlzRW5kcG9pbnRDRlI7aG4ucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZT1obi5wcm90b3R5cGUucmVxdWVzdENvbXBsZXRlO2huLmdldEluc3RhbmNlPWpuO3ZhciBrbj1jbGFzcyBleHRlbmRzIF8uZ2Z7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMudj0hMTt0aGlzLmo9bGYoKTt0aGlzLmoubGlzdGVuKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9PntpZih0aGlzLnYmJl8ueCgib2ZmbGluZV9lcnJvcl9oYW5kbGluZyIpKXt2YXIgYT1mbigpLmdldCgiZXJyb3JzIiwhMCk7aWYoYSl7Zm9yKGxldCBiIGluIGEpaWYoYVtiXSl7bGV0IGM9bmV3IF8uWGooYiwic2VudCB2aWEgb2ZmbGluZV9lcnJvcnMiKTtjLm5hbWU9YVtiXS5uYW1lO2Muc3RhY2s9YVtiXS5zdGFjaztjLmxldmVsPWFbYl0ubGV2ZWw7Xy5VaShjKX1mbigpLnNldCgiZXJyb3JzIix7fSwyNTkyRTMsITApfX19KX1TYigpe3JldHVybiB0aGlzLmouU2IoKX1lZihhKXt0aGlzLmouaXNPbmxpbmU9YX1xdygpe3ZhciBhPXdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO3JldHVybiBhPT09dm9pZCAwPyEwOmF9Q3YoKXt0aGlzLnY9ITB9bGlzdGVuKGEsYil7cmV0dXJuIHRoaXMuai5saXN0ZW4oYSwKYil9UWooYSl7cmV0dXJuIG1mKHRoaXMuaixhKX19O2tuLnByb3RvdHlwZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdD1rbi5wcm90b3R5cGUuUWo7a24ucHJvdG90eXBlLmxpc3Rlbj1rbi5wcm90b3R5cGUubGlzdGVuO2tuLnByb3RvdHlwZS5lbmFibGVFcnJvckZsdXNoaW5nPWtuLnByb3RvdHlwZS5Ddjtrbi5wcm90b3R5cGUuZ2V0V2luZG93U3RhdHVzPWtuLnByb3RvdHlwZS5xdztrbi5wcm90b3R5cGUubmV0d29ya1N0YXR1c0hpbnQ9a24ucHJvdG90eXBlLmVmO2tuLnByb3RvdHlwZS5pc05ldHdvcmtBdmFpbGFibGU9a24ucHJvdG90eXBlLlNiO2tuLmdldEluc3RhbmNlPWxuO18uT3M9Y2xhc3MgZXh0ZW5kcyBfLmdme2NvbnN0cnVjdG9yKGE9e30pe3N1cGVyKCk7dGhpcy5qPXRoaXMuRD0wO3RoaXMudj1sbigpO3ZhciBiPV8uc2EoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmxpc3RlbiIpLmJpbmQodGhpcy52KTtiJiYoYS5yYXRlTGltaXQ/KHRoaXMucmF0ZUxpbWl0PWEucmF0ZUxpbWl0LGIoIm5ldHdvcmtzdGF0dXMtb25saW5lIiwoKT0+e21uKHRoaXMsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLGIoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnttbih0aGlzLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpfSkpOihiKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLGIoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIil9KSkpfVNiKCl7dmFyIGE9Cl8uc2EoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmlzTmV0d29ya0F2YWlsYWJsZSIpO3JldHVybiBhP2EuYmluZCh0aGlzLnYpKCk6ITB9ZWYoYSl7dmFyIGI9Xy5zYSgieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UubmV0d29ya1N0YXR1c0hpbnQiKS5iaW5kKHRoaXMudik7YiYmYihhKX1hc3luYyBRaihhKXt2YXIgYj1fLnNhKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdCIpLmJpbmQodGhpcy52KTtyZXR1cm4gXy54KCJza2lwX25ldHdvcmtfY2hlY2tfaWZfY2ZyIikmJmpuKCkuaXNFbmRwb2ludENGUigiZ2VuZXJhdGVfMjA0Iik/bmV3IFByb21pc2UoYz0+e3RoaXMuZWYod2luZG93Lm5hdmlnYXRvcj8ub25MaW5lfHwhMCk7Yyh0aGlzLlNiKCkpfSk6Yj9iKGEpOiEwfX07dmFyIFBzLG5uPWNsYXNzIGV4dGVuZHMgTnN7Y29uc3RydWN0b3IoKXtQc3x8KFBzPW5ldyBfLk9zKHtTSjohMCxKSTohMH0pKTtzdXBlcih7Y2I6e091OlRtLEZmOlNtLFdwOlBtLEF5OlFtLG5uOlJtLHNldDpPbX0sU2E6UHMsaGFuZGxlRXJyb3I6KGEsYixjKT0+e3ZhciBkPWM/LmVycm9yPy5jb2RlO2Q9PT00MDB8fGQ9PT00MTU/KGE9bmV3IF8uWGooYS5tZXNzYWdlLGIsYz8uZXJyb3I/LmNvZGUpLF8uV2koYSx2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMCkpOl8uVWkoYSl9LFRmOl8uV2ksR2Q6cW4sbm93Ol8uZWwsTHM6Z24sRGM6Xy5DaygpLEttOiJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixGbToicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9mZmxpbmUiLE9pOiEwLERpOi4xLEtqOl8uc2ooInBvdGVudGlhbF9lc2ZfZXJyb3JfbGltaXQiLDEwKSxLYTpfLngsYWg6IShfLldqKCkmJl8uc24oKSl9KTt0aGlzLkI9bmV3IF8uY3M7Xy54KCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX2FsbF9yZXF1ZXN0cyIpJiYKVW0oKTtYbCgiTG9nc0RhdGFiYXNlVjIiKX13cml0ZVRoZW5TZW5kKGEsYil7Ynx8KGI9e30pO2I9cm4oYSxiKTtfLldqKCl8fCh0aGlzLk9jPSExKTtzdXBlci53cml0ZVRoZW5TZW5kKGEsYil9c2VuZFRoZW5Xcml0ZShhLGIsYyl7Ynx8KGI9e30pO2I9cm4oYSxiKTtfLldqKCl8fCh0aGlzLk9jPSExKTtzdXBlci5zZW5kVGhlbldyaXRlKGEsYixjKX1zZW5kQW5kV3JpdGUoYSxiKXtifHwoYj17fSk7Yj1ybihhLGIpO18uV2ooKXx8KHRoaXMuT2M9ITEpO3N1cGVyLnNlbmRBbmRXcml0ZShhLGIpfWF3YWl0SW5pdGlhbGl6YXRpb24oKXtyZXR1cm4gdGhpcy5CLnByb21pc2V9fTtfLnVuPSExO18udG49Xy51Lnl0TmV0d29ya2xlc3NMb2dnaW5nSW5pdGlhbGl6YXRpb25PcHRpb25zfHx7aXNOd2xJbml0aWFsaXplZDpfLnVufTtfLnJhKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIsXy50bik7dmFyIERwPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuY29uZmlnXz1udWxsO2E/dGhpcy5jb25maWdfPWE6a20oKSYmKHRoaXMuY29uZmlnXz1sbSgpKX1pc1JlYWR5KCl7IXRoaXMuY29uZmlnXyYma20oKSYmKHRoaXMuY29uZmlnXz1sbSgpKTtyZXR1cm4hIXRoaXMuY29uZmlnX319O3ZhciBRcztRcz1fLnUueXRQdWJzdWJQdWJzdWJJbnN0YW5jZXx8bmV3IF8udGg7Xy5Scz1fLnUueXRQdWJzdWJQdWJzdWJTdWJzY3JpYmVkS2V5c3x8e307Xy5Tcz1fLnUueXRQdWJzdWJQdWJzdWJUb3BpY1RvS2V5c3x8e307Xy5Ucz1fLnUueXRQdWJzdWJQdWJzdWJJc1N5bmNocm9ub3VzfHx7fTtfLnRoLnByb3RvdHlwZS5zdWJzY3JpYmU9Xy50aC5wcm90b3R5cGUuc3Vic2NyaWJlO18udGgucHJvdG90eXBlLnVuc3Vic2NyaWJlQnlLZXk9Xy50aC5wcm90b3R5cGUuY2k7Xy50aC5wcm90b3R5cGUucHVibGlzaD1fLnRoLnByb3RvdHlwZS5wdWJsaXNoO18udGgucHJvdG90eXBlLmNsZWFyPV8udGgucHJvdG90eXBlLmNsZWFyO18ucmEoInl0UHVic3ViUHVic3ViSW5zdGFuY2UiLFFzKTtfLnJhKCJ5dFB1YnN1YlB1YnN1YlRvcGljVG9LZXlzIixfLlNzKTtfLnJhKCJ5dFB1YnN1YlB1YnN1YklzU3luY2hyb25vdXMiLF8uVHMpOwpfLnJhKCJ5dFB1YnN1YlB1YnN1YlN1YnNjcmliZWRLZXlzIixfLlJzKTt2YXIgQ249RGF0ZS5ub3coKS50b1N0cmluZygpO0RhdGUubm93KCk7Xy5Mbj1TeW1ib2woIkNhIik7dmFyIEhuPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMua2V5PWF9fTt2YXIgT249Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnY9bmV3IE1hcDt0aGlzLmo9bmV3IE1hcDt0aGlzLm89bmV3IE1hcH1yZXNvbHZlKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBfLlVzJiZhIGluc3RhbmNlb2YgXy5Vcz9Lbih0aGlzLGEpOmEgaW5zdGFuY2VvZiBIbj9Kbih0aGlzLGEua2V5LFtdLCEwKTpKbih0aGlzLGEsW10pfX07Xy5Wcz1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9YX10b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbigke3RoaXMubmFtZX0pYH19O3ZhciBObjt2YXIgUG49d2luZG93O3ZhciBmbz1fLngoIndlYl9lbmFibGVfbGlmZWN5Y2xlX21vbml0b3JpbmciKSYmUW4oKSE9PTAsVW49Xy54KCJ3ZWJfZW5hYmxlX2xpZmVjeWNsZV9tb25pdG9yaW5nIik7dmFyIGVvPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc2NoZWR1bGVyPV8uQ2soKTt0aGlzLm89bmV3IF8uY3M7dGhpcy5qPWE7Zm9yKGxldCBjPTA7Yzx0aGlzLmoubGVuZ3RoO2MrKyl7bGV0IGQ9dGhpcy5qW2NdO2E9KCk9PntkLnhoKCk7dGhpcy5qW2NdLk5qPSEwO3RoaXMuai5ldmVyeShlPT5lLk5qPT09ITApJiZ0aGlzLm8ucmVzb2x2ZSgpfTt2YXIgYj10aGlzLmdldFByaW9yaXR5KGQpO2I9dGhpcy5zY2hlZHVsZXIuR2EoYSxiKTt0aGlzLmpbY109ey4uLmQseGg6YSxqb2JJZDpifX19Y2FuY2VsKCl7Zm9yKGxldCBhIG9mIHRoaXMuailhLmpvYklkPT09dm9pZCAwfHxhLk5qfHx0aGlzLnNjaGVkdWxlci5BYShhLmpvYklkKSxhLk5qPSEwO3RoaXMuby5yZXNvbHZlKCl9Z2V0UHJpb3JpdHkoYSl7cmV0dXJuIGEucHJpb3JpdHk/PzB9fTtfLldzPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc3RhdGU9YTt0aGlzLnBsdWdpbnM9W107dGhpcy52PXZvaWQgMDt0aGlzLkI9e307Zm8mJlJuKHRoaXMuc3RhdGUpfWdldCBjdXJyZW50U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZX1pbnN0YWxsKGEpe3RoaXMucGx1Z2lucy5wdXNoKGEpO3JldHVybiB0aGlzfXVuaW5zdGFsbCguLi5hKXthLmZvckVhY2goYj0+e2I9dGhpcy5wbHVnaW5zLmluZGV4T2YoYik7Yj4tMSYmdGhpcy5wbHVnaW5zLnNwbGljZShiLDEpfSl9dHJhbnNpdGlvbihhLGIpe2ZvJiZTbih0aGlzLnN0YXRlKTt2YXIgYz10aGlzLnRyYW5zaXRpb25zLmZpbmQoZD0+QXJyYXkuaXNBcnJheShkLmZyb20pP2QuZnJvbS5maW5kKGU9PmU9PT10aGlzLnN0YXRlJiZkLnRvPT09YSk6ZC5mcm9tPT09dGhpcy5zdGF0ZSYmZC50bz09PWEpO2lmKGMpe3RoaXMuaiYmKFRuKHRoaXMuaiksdGhpcy5qPXZvaWQgMCk7Vm4odGhpcyxhLGIpO3RoaXMuc3RhdGU9YTtmbyYmUm4odGhpcy5zdGF0ZSk7CmM9Yy5hY3Rpb24uYmluZCh0aGlzKTtsZXQgZD10aGlzLnBsdWdpbnMuZmlsdGVyKGU9PmVbYV0pLm1hcChlPT5lW2FdKTtjKFpuKHRoaXMsZCksYil9ZWxzZSB0aHJvdyBFcnJvcigiR2FgIit0aGlzLnN0YXRlKyJgIithKTt9fTt2YXIgaG89Y2xhc3MgZXh0ZW5kcyBfLldze2NvbnN0cnVjdG9yKCl7c3VwZXIoIm5vbmUiKTt0aGlzLm89bnVsbDt0aGlzLnY9MTA7dGhpcy50cmFuc2l0aW9ucz1be2Zyb206Im5vbmUiLHRvOiJhcHBsaWNhdGlvbl9uYXZpZ2F0aW5nIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsdG86Im5vbmUiLGFjdGlvbjp0aGlzLkt9LHtmcm9tOiJhcHBsaWNhdGlvbl9uYXZpZ2F0aW5nIix0bzoiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsYWN0aW9uOigpPT57fX0se2Zyb206Im5vbmUiLHRvOiJub25lIixhY3Rpb246KCk9Pnt9fV19RChhLGIpe3RoaXMubz1fLllqKCgpPT57dGhpcy5jdXJyZW50U3RhdGU9PT0iYXBwbGljYXRpb25fbmF2aWdhdGluZyImJnRoaXMudHJhbnNpdGlvbigibm9uZSIpfSw1RTMpO2EoYj8uZXZlbnQpfUsoYSxiKXt0aGlzLm8mJihfLmpmLkFhKHRoaXMubyksdGhpcy5vPW51bGwpO2EoYj8uZXZlbnQpfX0sZ287dmFyIHJvPV8uc2ooInl0Y3NpX2RlYnVnX21heF9zaXplIiwxMDApO3ZhciBYcz0wO3ZhciB5cT1jbGFzcyBleHRlbmRzIF8ucG17Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhcmd1bWVudHMpO3RoaXMuaj1hO3RoaXMudGltZXI9Yn19LHhxPW5ldyBfLnFtKCJhZnQtcmVjb3JkZWQiLHlxKTt2YXIgTnA9W3twbTphPT5gQ2Fubm90IHJlYWQgcHJvcGVydHkgJyR7YS5rZXl9J2AsSmo6e0Vycm9yOlt7cmVnZXhwOi8oUGVybWlzc2lvbiBkZW5pZWQpIHRvIGFjY2VzcyBwcm9wZXJ0eSAiKFteJ10rKSIvLGdyb3VwczpbInJlYXNvbiIsImtleSJdfV0sVHlwZUVycm9yOlt7cmVnZXhwOi9DYW5ub3QgcmVhZCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKG51bGx8dW5kZWZpbmVkKS8sZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3JlZ2V4cDovXHU2NWUwXHU2Y2Q1XHU4M2I3XHU1M2Q2XHU2NzJhXHU1YjlhXHU0ZTQ5XHU2MjE2IChudWxsfHVuZGVmaW5lZCkgXHU1ZjE1XHU3NTI4XHU3Njg0XHU1YzVlXHU2MDI3XHUyMDFjKFteXHUyMDFkXSspXHUyMDFkLyxncm91cHM6WyJ2YWx1ZSIsImtleSJdfSx7cmVnZXhwOi9cdWM4MTVcdWM3NThcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzRjIFx1YjYxMFx1YjI5NCAobnVsbHx1bmRlZmluZWQpIFx1Y2MzOFx1Yzg3MFx1Yzc3OCAnKFteJ10rKScgXHVjMThkXHVjMTMxXHVjNzQ0IFx1YWMwMFx1YzgzOFx1YzYyYyBcdWMyMTggXHVjNWM2XHVjMmI1XHViMmM4XHViMmU0Li8sCmdyb3VwczpbInZhbHVlIiwia2V5Il19LHtyZWdleHA6L05vIHNlIHB1ZWRlIG9idGVuZXIgbGEgcHJvcGllZGFkICcoW14nXSspJyBkZSByZWZlcmVuY2lhIG51bGEgbyBzaW4gZGVmaW5pci8sZ3JvdXBzOlsia2V5Il19LHtyZWdleHA6L1VuYWJsZSB0byBnZXQgcHJvcGVydHkgJyhbXiddKyknIG9mICh1bmRlZmluZWQgb3IgbnVsbCkgcmVmZXJlbmNlLyxncm91cHM6WyJrZXkiLCJ2YWx1ZSJdfSx7cmVnZXhwOi8obnVsbCkgaXMgbm90IGFuIG9iamVjdCBcKGV2YWx1YXRpbmcgJyg/OihbXi5dKylcLik/KFteJ10rKSdcKS8sZ3JvdXBzOlsidmFsdWUiLCJiYXNlIiwia2V5Il19XX19LHtwbTphPT5gQ2Fubm90IGNhbGwgJyR7YS5rZXl9J2AsSmo6e1R5cGVFcnJvcjpbe3JlZ2V4cDovKD86KFteIF0rKT9cLik/KFteIF0rKSBpcyBub3QgYSBmdW5jdGlvbi8sZ3JvdXBzOlsiYmFzZSIsImtleSJdfSx7cmVnZXhwOi8oW14gXSspIGNhbGxlZCBvbiAobnVsbCBvciB1bmRlZmluZWQpLywKZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3JlZ2V4cDovT2JqZWN0ICguKikgaGFzIG5vIG1ldGhvZCAnKFteIF0rKScvLGdyb3VwczpbImJhc2UiLCJrZXkiXX0se3JlZ2V4cDovT2JqZWN0IGRvZXNuJ3Qgc3VwcG9ydCBwcm9wZXJ0eSBvciBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJrZXkiXX0se3JlZ2V4cDovXHUzMGFhXHUzMGQ2XHUzMGI4XHUzMGE3XHUzMGFmXHUzMGM4XHUzMDZmICcoW14nXSspJyBcdTMwZDdcdTMwZWRcdTMwZDFcdTMwYzZcdTMwYTNcdTMwN2VcdTMwNWZcdTMwNmZcdTMwZTFcdTMwYmRcdTMwYzNcdTMwYzlcdTMwOTJcdTMwYjVcdTMwZGRcdTMwZmNcdTMwYzhcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN2VcdTMwNWJcdTMwOTMvLGdyb3VwczpbImtleSJdfSx7cmVnZXhwOi9cdWFjMWNcdWNjYjRcdWFjMDAgJyhbXiddKyknIFx1YzE4ZFx1YzEzMVx1Yzc3NFx1YjA5OCBcdWJhNTRcdWMxMWNcdWI0ZGNcdWI5N2MgXHVjOWMwXHVjNmQwXHVkNTU4XHVjOWMwIFx1YzU0YVx1YzJiNVx1YjJjOFx1YjJlNC4vLApncm91cHM6WyJrZXkiXX1dfX0se3BtOmE9PmAke2Eua2V5fSBpcyBub3QgZGVmaW5lZGAsSmo6e1JlZmVyZW5jZUVycm9yOlt7cmVnZXhwOi8oLiopIGlzIG5vdCBkZWZpbmVkLyxncm91cHM6WyJrZXkiXX0se3JlZ2V4cDovQ2FuJ3QgZmluZCB2YXJpYWJsZTogKC4qKS8sZ3JvdXBzOlsia2V5Il19XX19XTt2YXIgQW89e2xlOltdLFNkOlt7Y2FsbGJhY2s6dm8sd2VpZ2h0OjUwMH0se2NhbGxiYWNrOndvLHdlaWdodDo1MDB9XX07dmFyIHlvPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5TZD1bXTt0aGlzLmxlPVtdfX0seG87Xy5WcD1uZXcgXy50aDt2YXIgdnA9W107Xy5yYSgieXQubG9nZ2luZy50cmFuc3BvcnQuZ2V0U2NyYXBlZEdlbFBheWxvYWRzIixmdW5jdGlvbigpe3JldHVybiB2cH0pO3ZhciBQbz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RvcmU9e307dGhpcy5qPXt9fXN0b3JlUGF5bG9hZChhLGIpe2E9SW8oYSk7dGhpcy5zdG9yZVthXT90aGlzLnN0b3JlW2FdLnB1c2goYik6KHRoaXMuaj17fSx0aGlzLnN0b3JlW2FdPVtiXSk7Xy54KCJtb3JlX2FjY3VyYXRlX2dlbF9wYXJzZXIiKSYmKGI9bmV3IEN1c3RvbUV2ZW50KCJUUkFOU1BPUlRJTkdfTkVXX0VWRU5UIiksd2luZG93LmRpc3BhdGNoRXZlbnQoYikpO3JldHVybiBhfXNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcyhhKXtpZighYS5rZXlzLmxlbmd0aClyZXR1cm5bXTt2YXIgYj1Lbyh0aGlzLGEua2V5cy5zcGxpY2UoMCwxKVswXSksYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl0aGlzLnN0b3JlW2JbZF1dJiZhLnNpemVMaW1pdCYmKHRoaXMuc3RvcmVbYltkXV0ubGVuZ3RoPD1hLnNpemVMaW1pdD8oYy5wdXNoKC4uLnRoaXMuc3RvcmVbYltkXV0pLGRlbGV0ZSB0aGlzLnN0b3JlW2JbZF1dKToKYy5wdXNoKC4uLnRoaXMuc3RvcmVbYltkXV0uc3BsaWNlKDAsYS5zaXplTGltaXQpKSk7YT8uc2l6ZUxpbWl0JiZjLmxlbmd0aDxhPy5zaXplTGltaXQmJihhLnNpemVMaW1pdC09Yy5sZW5ndGgsYy5wdXNoKC4uLnRoaXMuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKGEpKSk7cmV0dXJuIGN9ZXh0cmFjdE1hdGNoaW5nRW50cmllcyhhKXthPUtvKHRoaXMsYSk7dmFyIGI9W107Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspdGhpcy5zdG9yZVthW2NdXSYmKGIucHVzaCguLi50aGlzLnN0b3JlW2FbY11dKSxkZWxldGUgdGhpcy5zdG9yZVthW2NdXSk7cmV0dXJuIGJ9Z2V0U2VxdWVuY2VDb3VudChhKXthPUtvKHRoaXMsYSk7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoO2MrKyliKz10aGlzLnN0b3JlW2FbY11dPy5sZW5ndGh8fDA7cmV0dXJuIGJ9fTtQby5wcm90b3R5cGUuZ2V0U2VxdWVuY2VDb3VudD1Qby5wcm90b3R5cGUuZ2V0U2VxdWVuY2VDb3VudDsKUG8ucHJvdG90eXBlLmV4dHJhY3RNYXRjaGluZ0VudHJpZXM9UG8ucHJvdG90eXBlLmV4dHJhY3RNYXRjaGluZ0VudHJpZXM7UG8ucHJvdG90eXBlLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcz1Qby5wcm90b3R5cGUuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzO1BvLnByb3RvdHlwZS5zdG9yZVBheWxvYWQ9UG8ucHJvdG90eXBlLnN0b3JlUGF5bG9hZDt2YXIgeXA9bmV3IF8uVnMoIkZpbmNoQ29uZmlnTWFuYWdlclNlcnZpY2UiKTt2YXIgbnA9Xy5zaigiaW5pdGlhbF9nZWxfYmF0Y2hfdGltZW91dCIsMkUzKSxscD1fLnNqKCJnZWxfcXVldWVfdGltZW91dF9tYXhfbXMiLDZFNCksb3A9Xy5zaigiZ2VsX21pbl9iYXRjaF9zaXplIiw1KSxObz12b2lkIDAsTW89bnVsbCxZcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQj10aGlzLm89dGhpcy52PTA7dGhpcy5qPSExfX0sQXA9bmV3IFlzLHpwPW5ldyBZcyxrcD1uZXcgWXMsanA9bmV3IFlzLGNwLG1wPSEwLGdwPV8udS55dExvZ2dpbmdUcmFuc3BvcnRUb2tlbnNUb0N0dFRhcmdldElkc198fHt9O18ucmEoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvQ3R0VGFyZ2V0SWRzXyIsZ3ApO3ZhciBYbz17fTt2YXIgQnA9Xy51Lnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fTtfLnJhKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsQnApO3ZhciBRcD1uZXcgU2V0LEtwPTAsWHA9MCxXcD0wLE1wPVtdLExwPVtdLFpwPVsiUGhhbnRvbUpTIiwiR29vZ2xlYm90IiwiVE8gU1RPUCBUSElTIFNFQ1VSSVRZIFNDQU4gZ28vc2NhbiJdO3ZhciBacz17YV9iaWRfZjo0ODIsYV9iaWRfczo0ODEsYWE6MixhYWNpOjQzMyxhYWNyOjQzNCxhYl9yOjExLGFiX3M6MTAsYWJjOjU3OSxhYzoxOTMsYWNjOjUxMSxhY2k6NTEyLGFkXzBfZToxMyxhZF8wX3M6MTIsYWRfYmw6MTQsYWRfaToxNSxhZF9tYnM6MTYsYWRfcHI6NTYyLGFkX3ZpOjE3LGFkX3ZpcjoxOCxhZGE6MTk0LGFkYmNfZjo1NzYsYWRjOjE5NSxhZGZsX2Y6MTksYWRmbF9zOjIwLGFkbDoxOTYsYWRuczoxOTcsYWRzX2U6MjIsYWRzX3M6MjEsYWZiOjUxMyxhZmM6MTk4LGFmbDoxOTksYWZ0OjEsYWhiOjUxNCxhaToyMDAsYWlzX2E6NTAzLGFpc19yOjUwMixhaXNmOjIzLGFpc2k6MjQsYWlzcjoyNSxhaXNzOjI2LGFtbDoyMDEsYXBhX2E6MjAzLGFwYV9iOjIwMixhcGJzOjIwNCxhcHBfbDozLGFwcF9zaTo2MTIsYXBwX3NpZTo2NjEsYXBwZGVsX2k6MjcsYXBwaV9lOjYxNixhcHBpX3M6NjE1LGFwcjoyMDUsYXByZXM6NDM2LGFwc3VzOjQzNSxhcjoyMDYsYXI0MGs6MjgsCmFyYl9mOjUwNCxhcmM6MjA3LGFyZXE6MjA4LGFyZmI6MjksYXJpOjQsYXJyOjIwOSxhcnJoOjMwLGFzY2U6Nzg4LGFzY2Y6Nzg5LGFzY3M6Nzg3LGFzaXNmYjozMSxhc2lzcjozMixhc2lzcmg6MzMsYXNpc3M6MzQsYXNyOjIxMCxhc3luY19vcmNoX3RfYWN0OjcxMixhc3luY19vcmNoX3Rfbm90aWZ5OjcxMSxhdHJyOjUxNSxhdHJzOjUxNixhdHRfZToyMTEsYXR0X2Y6MjEyLGF0dF9mYzo3OTcsYXR0X2Zycjo3OTYsYXR0X2ZzOjc5MyxhdHRfZnNyOjc5NSxhdHRfcG5hOjc5NCxhdHRfczoyMTMsYXR0X3diOjIxNCxhd2ZsX2Y6NTU3LGF3Zmxfczo1NTgsYmFzZV9qc19yOjQ0MSxiY3A6MjE1LGJmOjIxNixiZ19lOjIxNyxiZ19pOjIxOCxiZ19sOjIyMCxiZ19zOjIyMSxiZ192OjIxOSxicGRfYzo0ODQsYnBkX3M6NDgzLGJwdDoyMjMsYnJfZTozNyxicl9sZDozOCxicl9scnByOjM5LGJyX2xycjo0MCxicl9sd206NTc3LGJyX3I6NDEsYnJfczo0MixicmVyOjM1LGJyZXM6MzYsYnJucjo0MywKYnJuczo0NCxicnBlOjQ1LGJycHM6NDYsYnJyX2U6NDcsYnJyX2k6NDgsYnJyX2l1czo0OSxiczoyMjIsY19jOjUwLGNfY3M6NTEsY19jc2ZzOjUyLGNfZDo1MyxjX2xhZjo1OSxjX2xhczo1OCxjX3JuZjo0MzgsY19ybnM6NDM3LGNjOjQ2NyxjY19jOjU0LGNjX2NmOjU2LGNjX2NzYWxhOjU1LGNjX2xhOjU3LGNmZzoyMjQsY2hsczoyMjUsY2hwczoyMjYsY2w6NDgwLGNtYzoyMjcsY21kX2g6NjI5LGNtaGw6MjI5LGNtaToyMjgsY21sOjIzMCxjbXA6Nzc5LGNtdjoyMzEsY3B0OjIzMixjcjozNjQsY3JfZXJyOjY2OSxjcl9yOjY3MCxjcl9zOjY2OCxjc2w6MjMzLGNzcl90OjYzMSxjdDo1LGN0X2xpOjYwLGRfbDo2MSxkX2xhZjo2MixkX2xhcjo2MyxkX2xhczo2NCxkX2xmOjY1LGRfbHM6NjYsZF9sdzo2NyxkX2x3Zjo2OCxkX2x3czo2OSxkYXNfYzozNjYsZGFzX3M6MzY1LGRjcDoyMzQsZGdfcGJfYzoyMzYsZGdfcGJfcjoyMzcsZGdfcGJfczoyMzUsZGhpYzoyMzgsZGw6MjM5LGRuc186MjQwLApkcm1fZ2tfZjozODgsZHJtX2drX3M6Mzg3LGRybV9rcl9yOjM5Mixkcm1fa3JfczozOTEsZHJtX25ldF9yOjM5MCxkcm1fbmV0X3M6Mzg5LGRybV9wYl9mOjM4Nixkcm1fcGJfczozODUsZHNfYWM6NzM2LGRzX2FzOjczNSxkc19jbGM6NzQwLGRzX2NzOjczNyxkc19kYzo3MzksZHNfZHM6NzM4LGVtcGE6NDMyLGVtcHU6NDMxLGVucF9lcnI6Njg1LGVucF9maTo2ODQsZW5wX3N0OjY4Myxlb3ByX3I6NjczLGVwX2FfcHJfcjo1MzIsZXBfYV9wcl9zOjUzMSxlcF9oYXZfZW5kOjUyNixlcF9oYXZfc3RhcnQ6NTI1LGVwX2luaXRfYXI6Njk5LGVwX2luaXRfY3VlOjYzNSxlcF9pbml0X2N1czo2MzQsZXBfaW5pdF9lcGU6NjM3LGVwX2luaXRfZXBzOjYzNixlcF9pbml0X2lqZTo2MzksZXBfaW5pdF9panM6NjM4LGVwX2luaXRfcHI6NTI3LGVwX2luaXRfcmU6NjQxLGVwX2luaXRfcnM6NjQwLGVwX2luaXRfd2VlOjY0MyxlcF9pbml0X3dlczo2NDIsZXBfbWFfcmVwcjo1NDMsZXBfbWFfcnI6NTMzLAplcF9tYV9zZXByOjU0MixlcF9tYV9zcHI6NTM0LGVwX3BfbDo1MzAsZXBfcHJfcjo1MjksZXBfcHJfczo1MjgsZXBfcl9wcmVfcjo1NDEsZXBfcl9ycjo1MzUsZXBfcl9zbWFyOjUzNixlcF9yZWNfZW5kOjUzOCxlcF9yZWNfc3RhcnQ6NTM3LGVwX3JlcHNfZW5kOjU0MCxlcF9yZXBzX3N0YXJ0OjUzOSxlcGU6NjE4LGVwczo2MTcsZXJfY2w6NjUzLGVyX25zOjY1Mixlcl9wZTo2NTAsZXJfcHM6NjQ5LGVyX3M6NjQ4LGVyX3NfbnI6NzkwLGVyX3NfbnM6Nzg0LGVyX3Q6NjUxLGZhYl9yOjI0NixmY2Jfcjo1MDYsZmlyZTo3MCxmaXJzOjcxLGZtdGg6MjQxLGZvb3RfanM6MjQyLGZwdDoyNDMsZnJfczo1NjEsZnM6MjQ0LGZzYzoyNDUsZnNzYjBfYTo3NSxmc3NiMF9mcjo3NCxmc3NiMF9ucjo3Myxmc3NiMF9uczo3MixmdF86NDM5LGZ0bDo3LGZ0cjo0NzUsZnZiX3I6MjQ3LGZ2ZjoyNDgsZnlkX2dmOjc2NyxmeWRfZ3M6NzY2LGdjYzoyNDksZ2NmbDoyNTAsZ2Nzcjo3NixnZXBfZXJyOjgwMCwKZ2VwX3JlcTo3OTgsZ2VwX3Jlczo3OTksZ2dzcjo3NyxnaXdhX2E6NjI3LGdpd2FfZDo2MjgsZ2xjOjU5MyxnbGU6MjUxLGdsczoyNTIsZ3BlOjI1MyxncmM6MjU0LGdyaXdfbnI6Nzg2LGdyaXdfbnM6Nzg1LGdzX3I6NzM0LGdzX3M6NzMzLGdzbWQ6NTg2LGd1X3I6NjIwLGd2OjQ4NSxnd19haWVyOjc3MSxnd19hcmY6NzcyLGd3X2FybmFmOjc3NSxnd19hcm5uYWY6Nzc2LGd3X2FybnM6Nzc3LGd3X2FybnN1Ojc3OCxnd19hcnM6Nzc0LGd3X2Fyc3U6NzczLGd3X21hYWY6NjMzLGd3X21hYXM6NjMyLGhiZmc6Njc3LGhnY3I6MjU1LGhyOjI1NixocmU6MzYzLGhyczozNjIsaHM6MzczLGh0bWxfZmJfcjo3NTUsaHRtbF9mZTo3NDgsaHRtbF9mczo3NDcsaHRtbF9md2U6NzUyLGh0bWxfZndzOjc1MSxodG1sX2pjZTo3NTQsaHRtbF9qY3M6NzUzLGh0bWxfbGJfcjo3NTYsaHRtbF9zZTo3NTAsaHRtbF9zczo3NDksaV9ycDo0NzcsaV9ycTo0NzYsaXBfczo2NDYsaXBjOjI1NyxpcHM6MjU4LAppc21wX2E6ODM2LGlzbXBfYzo4MzgsaXNtcF9kOjgzOSxpc21wX2k6ODM1LGlzbXBfcDo4NDAsaXNtcF9yYzo4MzcsaXRfZ3A6NzgsaXZfczo1MDUsanNwOjI1OSxqc3I6MjYwLGtZVExhdGVuY3lNREVQcm9kdWN0U3RpY2tlckVkaXRvckNhbmNlbGxlZDo4MDEsa1lUTGF0ZW5jeU1ERVByb2R1Y3RTdGlja2VyRWRpdG9yRmluaXNoZWQ6ODAyLGwyczoyNjEsbGNfZnJyOjY2MCxsY19zX3M6NjU5LGxjX3NfdTo2NTgsbGNwOjI2MixsZF9zOjQ0MCxsaW06MjYzLGxwY2Y6MjY0LGxwY3M6MjY1LGxwczoyNjYsbHNfYzozNjgsbHNfczozNjcsbHNzOjI2NyxsdjoyNjgsbWFfY2w6NTUxLG1hX2Zmcjo1NTIsbWFfZnVhOjU1NCxtYV9ncjo1NTMsbWFfaWw6NTczLG1haW46NzksbWFpbl9qc19yOjQ0MixtYWluX2pzX3JxOjQ0MyxtYl9zOjUwNyxtYmFwX2M6Mzg0LG1iY19hbGM6NzMyLG1iY19hc2w6NzMxLG1iY19jOjM3NSxtYmNfczozNzQsbWJnY2hpZF9ycjo3NDQsbWJnY2hpZF9yczo3NDYsCm1iZ3JfcmY6NjU3LG1iZ3JfcnI6Mzc5LG1iZ3JfcnM6Mzc4LG1ibGNfYzozNzcsbWJsY19zOjM3NixtYmxjaGlkX2M6NzQ1LG1ibGNoaWRfczo3NDMsbWJsY3JpZF9jOjc0MixtYmxjcmlkX3M6NzQxLG1ic19jOjM4MSxtYnNfcnI6MzgzLG1ic19yczozODIsbWJzX3M6MzgwLG1keF9jY3A6ODAsbWR4X2Njczo4MSxtZHhfY2NzdDo4MixtZHhfY3I6ODMsbWR4X2NzOjg0LG1keF9sczo4NSxtZHhfb2ZmOjg2LG1keF9zYzo4NyxtZV9iOjU1NSxtZV9jOjY4NyxtZV9mOjU1NixtZV9mYTo2ODgsbWVzdl9zOjUwOSxtbV9pZTo3MjAsbW1faXM6NzE5LG1yYzoyNjksbXJzOjI3MCxtc2E6MjcxLG1zdGk6ODgsbXN0cjo4OSxuX2N0OjcwMixuX3NyOjY5NyxuX3N3OjY5OCwibmNbMC05XSI6MjcyLG5jbDoyNzMsbmN0OjI3NCxuZDoyNzUsbmRuc2U6Mjc2LG5kbnNzOjI3NywibnBbMC05XSI6Mjc4LG5yOjI3OSxucmU6MjgwLG5yZXFzOjI4MSxucmVzZToyODIsbnJlc3M6MjgzLG5ycnBzOjkwLApucnM6Mjg0LG5zdGNwczoyODUsbnRjcGU6Mjg2LG50Y3BzOjI4Nyxud3A6Mjg4LG9hZDJzOjQyNSxvYWZzX3I6NDA3LG9hZnNfcnA6NDA5LG9haXNyOjQwNSxvYXIyczo0MTIsb2FycDJzOjQyNyxvY3NpX3o6OTEsb2N0azo2MjEsb2N0cDo2MjIsb2ZhcnA6NDIzLG9mZG86NDAwLG9mZG9zOjM5OCxvZnI6NDE3LG9mdnJwOjQyNCxvZ3NmX2M6Mzk1LG9nc2ZfczozOTQsb2hyX3I6NzY1LG9ocl9zOjc2NCxvbDo2LG9sX2k6OCxvbG9jX2U6ODMwLG9sb2Nfc2E6ODI5LG9sb2Nfc3M6ODI4LG9tZF9jOjQyMixvbWRfczo0MjEsb21wX2M6NDE5LG9tcF9yOjQxOCxvcGZjOjY4MCxvcHJfcjo0MTQsb3ByZF9zOjQxNSxvcHJnejJfZTo4NDIsb3ByZ3oyX2Y6ODQzLG9wcmd6Ml9zOjg0MSxvcHJnel9zOjY4OSxvcHJyOjQxNixvcjEwMGs6NDExLG9yX2ZlOjQyOSxvcl9mczo0MzAsb3JfaTozOTMsb3JfcDozOTcsb3JjaF9yX2Q6Njk0LG9yY2hfcl9zOjY5NSxvcmNoX3RfcG1kOjc3MCxvcmNoX3RfcG1zOjc2OSwKb3JjaF90X3RjZWQ6NzA4LG9yY2hfdF90Y2VzOjcwNSxvcmNoX3RfdGQ6NjkyLG9yY2hfdF90bWQ6ODA0LG9yY2hfdF90bXM6ODAzLG9yY2hfdF91ZDo2OTMsb3JjaF90X3VzOjY5NixvcmZiOjQwNCxvcmhfcjo0MDMsb3Jtazo0MjAsb3JxcGJfYTo4MzEsb3JxcGJfZTo4MzQsb3JxcGJfczo4MzIsb3JxcGJfdzo4MzMsb3Nkbzo0MDEsb3Nkb2Y6NDAyLG9zZG9zOjM5OSxvc29yOjM5NixvdmQyczo0MjYsb3Zmc19yOjQwOCxvdmZzX3JwOjQxMCxvdmlzcjo0MDYsb3ZyMnM6NDEzLG92cnAyczo0MjgscGFjOjI4OSxwYXJpOjUxNyxwYXQ6MjkwLHBiMF9zOjYxMSxwYl9ycV9hdXRoejo0NDYscGJfcnFfY3R0X2NmbTo0NDcscGJjX2U6NjYzLHBiY19zOjY2MixwYmZfYzo5MixwYnA6NDg2LHBicmVzdW1lOjI5MixwYnM6NDg3LHBidToyOTMscGM6NDg4LHBjYzo1NDYscGNlOjU0NyxwY3E6NTQ0LHBjcjo1NDUscGN1X2FwOjgwOSxwY3VfY2U6NTgxLHBjdV9jczo1ODAscGN1X3JlOjgwOCxwY3VfcnM6ODA3LApwY3Vfczo4MDUscGN1X3NlOjgwNixwZGE6Mjk0LHBkYzoyOTUscGRyOjI5NixwZToyOTcscGVtX3I6NDQ0LHBlbV9ycTo0NDUscGZqZTozMDkscGZycjozMDUscGZyczozMDYscGZzOjMwNyxwZnQ6MzA4LHBmdF9pOjkzLHBsX2M6MjkxLHBsX2k6NDg5LHBsX2ludDo0OTAscGxfcjo0OTEscGxfcmM6NzAzLHBsX3M6NDkyLHBsX3NzOjQ5MyxwbGV2OjMxMCxwbGpzX3I6NDQ4LHBsanNfcnE6NDQ5LHBsdnM6NzIzLHBvdF9hZjo5Nyxwb3RfYXM6OTYscG90X2NtZTo1NjkscG90X2NtZjoyOTkscG90X2NtczoyOTgscG90X2NzbWU6NTcwLHBvdF9jc21mOjMwMSxwb3RfY3NtczozMDAscG90X2lmOjMwNCxwb3RfaW5pdGY6OTUscG90X2lzYzozMDIscG90X2lzdDozMDMscG90X3NlOjU2NSxwb3Rfc2Y6NTY0LHBvdF9zczo1NjMscG90X3hlOjU2OCxwb3RfeGY6NTY3LHBvdF94czo1NjYscG90cGU6OTQscHB1Ojk4LHByb2Nfazo2MTMscHJvY19rX2w6NjE0LHBzOjMxMSxwc19iczo2NDcscHNfYzo0OTQsCnBzX2VzOjk5LHBzX3BhOjY4MSxwc19waWhmOjU5Nyxwc19waWhzOjU5Nixwc19yOjM2MCxwc19zOjM2MSxwc19zZ2Y6NTk1LHBzX3Nnczo1OTQscHNucjo0OTUscHNuczo0OTYscHNwZToxMDAscHNwczoxMDEscHRfbWU6ODE1LHB0X21mOjgxNCxwdF9tczo4MTMscHRfcGllOjgxMixwdF9waWY6ODExLHB0X3Bpczo4MTAscHRfcGlzaDo2MDYscHZyaTo1MTgscHdjOjMxMixxb2VzOjMxMyxyX2Nfc2xkOjQ1MCxyX2Nfc3JxOjQ1MSxyX2Nvbm5lY3RfYmFja2VuZDo0NTIscl9jb25uZWN0X2JhY2tlbmRfc3VjY2Vzczo0NTMscl9jb25uZWN0ZWQ6NDU0LHJfY29uc3RydWN0aW9uOjQ1NSxyX2Rpc2Nvbm5lY3RlZDo0NTYscl9lYmk6NjY0LHJfZW9kOjU4NSxyX2Y6NDU3LHJfb3I6NzEzLHJfcGw6MTA1LHJfcHM6MTA2LHJfcnFfcGx5OjQ1OCxyX3NfcGx5bHN0OjQ1OSxyX3NfdmlkOjQ2MCxyX3N0YXR1c191cGRhdGU6NDYxLHJfdHI6MTA3LHJfdnRjOjEwNCxyX3dpcGJjOjU4NCxyX3ducjo3OTIsCnJfd25zOjc5MSxyX3dycjoxMDMscl93cnM6MTAyLHJfd3NycDo2MDkscl93c3JyOjYwOCxyX3dzcnM6NjA3LHJjdl86MzE0LHJlbW92ZV9zcGxhc2g6NDYyLHJlcV86MzE1LHJmZzozMTYscmdyX25yZjo2MDAscmdyX3M6NTk5LHJwZTo4MTYscnBseV9ycWQ6NDYzLHJwczo4MTcscnNfczo1MDgscnNhZV9wYzozMzIscnNhZV9wZWo6MzM0LHJzYWVfcGo6MzMzLHJzYmVfcGM6MzIzLHJzYmVfcGVqOjMyNSxyc2JlX3BqOjMyNCxyc2VfcGM6MzIwLHJzZV9wZWo6MzIyLHJzZV9wajozMjEscnNlZl9wYzozMjkscnNlZl9wZWo6MzMxLHJzZWZfcGo6MzMwLHJzZXNfcGM6MzI2LHJzZXNfcGVqOjMyOCxyc2VzX3BqOjMyNyxyc2ZfcGM6MzE3LHJzZl9wZWo6MzE5LHJzZl9wajozMTgscnRpbWVfOjMzNSxydXJsX2U6MTA4LHJ1cmxfcjoxMDkscnVybF9zOjExMCxydXJscGU6MTExLHJ1cmxwczoxMTIsczN0X3I6NDcyLHNhX2Y6NjI0LHNhX2ZvOjYyNSxzYV9zOjYyMyxzYWZfZnA6NjY1LHNhZl9yOjY2NiwKc2FmX3JlOjY2NyxzYXNfaTo2MjYsc2NnYXRfZmZzOjU2MCxzY2dhdF9mczo1NTksc2RhX2Y6NjA1LHNkYV9pOjYwNCxzZGFfcmVjcDo2MDEsc2RhX3JzcHA6NjAzLHNkYV9yc3ByOjYwMixzZGxfZTo2NTUsc2RsX3M6NjU0LHNkbF90OjY1NixzZl9pOjExMyxzZ3NjX3I6NzgxLHNnc2Nfczo3ODAsc2hvd19jYWxsX3RvX2Nhc3Q6NDY0LHNocmJfYzoxNjUsc2hyb19jOjE3MCxzaHJvX3I6MTY3LHNocnBfYzoxNjksc2hycF9sZDoxNjYsc2hycF9wOjE2OCxzb19yOjExOSxzb19yZToxMTgsc29fcnE6MTIwLHNwYToxMTQsc3BkOjExNSxzcGY6MTE2LHNwbnJfaDo2NzIsc3Bucl9zOjY3MSxzcHI6Njc4LHNyX2U6MTE3LHNyX3A6MTIxLHNyX3BhOjEyMixzcl9yOjEyMyxzcl9yZToxMjQsc3JfczoxMjUsc3JfdWk6MTI2LHNydDozMzYsc3Nfcjo0Njksc3Nfczo0Njgsc3Nfc2Zfczo3MjQsc3Nfc2Zfdzo3MjUsc3NucjoxMjcsc3NuczoxMjgsc3RjcF86MzM3LHN0ZV9hbGY6NTg5LHN0ZV9jOjU5MiwKc3RlX2VsZjo1OTAsc3RlX2Y6NTkxLHN0ZV9mdGw6NTg4LHN0ZV9sOjU4NyxzdHRzX2I6NTgyLHN0dHNfZjo1ODMsc3R2c19mOjY5MSxzdHZzX3M6NjkwLHN2ZTo0NjYsc3ZzOjQ2NSxzd19mYjo1MTAsc3dfaTo3ODMsc3dfcjo0OTcsc3dfczo0OTgsc3dzbnI6ODE5LHN3c25zOjgxOCxzd3NwZTo4MjEsc3dzcHM6ODIwLHRjcF86MzM4LHRlbnhfbDo0NzEsdGVueF9yOjQ3MCx0aDBfaDo2MTAsdGgwX25jOjY3NSx0aDBfbmU6Njc2LHRoMF9ucjoxMjksdGgwX25zOjY3NCx0aF9jXzE6NzA5LHRoX2RfMTo3MTAsdGhfbF8xOjEzMCx0aF9zXzE6NTc4LHRoc2IwX2ZyOjEzNCx0aHNiMF9uZToxMzEsdGhzYjBfbnI6MTMyLHRoc2IwX25zOjEzMyx0dGM6MzM5LHR0Y3I6MzQwLHVpX2w6MTM1LHVpYmZfYzoxNDEsdWliZl9yOjE0Myx1aWJmX3M6MTQyLHVpc2ZfcjoxNDQsdWl3d2FfYmM6NjE5LHVpd3dhX2M6MTM2LHVpd3dhX2U6MTQwLHVpd3dhX3ByOjEzOSx1aXd3YV9yOjEzOCx1aXd3YV9zOjEzNywKdWxyc19jOjM3MCx1bHJzX3M6MzY5LHVua25vd246MCx1cjozNDEsdmM6NjgyLHZjYzo1MTksdmNpOjUyMCx2ZGE6MzQyLHZkZXVjOjM0Myx2ZGV1cjozNDQsdmRldXM6MzQ1LHZkbnM6MzQ2LHZmYjo1MjEsdmZwOjM0Nyx2aGI6NTIyLHZpcjozNDgsdmlyYzozNDksdmlzX2E6NTAwLHZpc19yOjQ5OSx2aXNmOjE0NSx2aXNpOjE0Nix2aXNyOjE0Nyx2aXNzOjE0OCx2b3pfY3g6MTc5LHZvel9lb3U6MTg3LHZvel9lcnI6MTg0LHZvel9lcnJfbXM6MTgwLHZvel9lcnJfbm1wOjE4MSx2b3pfZXJyX29mZjoxODMsdm96X2Vycl91YXI6MTgyLHZvel9mdHI6MTg4LHZvel9mdmM6MTg5LHZvel9scl9sc286MTg1LHZvel9scl9tZDoxODYsdm96X21mOjE3Mix2b3pfbXM6MTcxLHZvel9ycWY6MTc0LHZvel9ycXM6MTczLHZvel9zZjoxNzgsdm96X3NzOjE3Nyx2b3pfdnA6MTc1LHZvel92dDoxNzYsdnBsOjM1MCx2cjozNTEsdnIxMDBrOjE0OSx2cmJfZjo1MDEsdnJjOjM1Mix2cmVxOjM1Myx2cmZiOjE1MCwKdnJpOjksdnJyOjM1NCx2cnJfcjo0NzQsdnJyX3M6NDczLHZycmg6MTUxLHZzaXNmYjoxNTIsdnNpc3I6MTUzLHZzaXNyaDoxNTQsdnNpc3M6MTU1LHZ0YTozNTUsdnRycjo1MjMsdnRyczo1MjQsd19zdDoxNTYsd2FzbV9mYTo4MjYsd2FzbV9mZXJyOjgyNyx3YXNtX2Z3OjgyNSx3YXNtX3M6ODI0LHdjOjM3Mix3Y3I6MzU2LHdlYmZlX2U6NzI4LHdlYmZlX2dibV9yOjc1OCx3ZWJmZV9nYm1fczo3NTcsd2ViZmVfZ2xfcjo3NjIsd2ViZmVfZ2xfczo3NjEsd2ViZmVfZ3Nfcjo3NjAsd2ViZmVfZ3Nfczo3NTksd2ViZmVfZ3VzX3I6NzMwLHdlYmZlX2d1c19zOjcyOSx3ZWJmZV9ndm1fczo3NjMsd2ViZmVfczo3Mjcsd2ZmZTozNTcsd2ZmczozNTgsd2ZnOjM1OSx3bl9lOjE2Mix3bl9sOjM3MSx3bl9yOjE1OSx3bl9ycDo0Nzgsd25fczoxNjAsd25fc2w6MTYxLHdubDoxNTgsd25sX2Q6ODIzLHdubF9tcDo1NzEsd25sX3BkOjgyMix3bmxyOjU3Mix3bmxzOjE1Nyx3bnBlOjE2Myx3bnBzOjE2NCwKd3A6NDc5LHdzX2NlOjE5MCx3c19zczoxOTEsd3Nfc3NyOjE5Mix5Y2VjOjU0OSx5Y2VmOjU0OCx5Y2Z0cjo2NDUseWNpZjo1NTAseWNtc2Y6NjQ0LHljcmM6NzE4LHljcmY6NzE3LHljcnM6NzE0LHljcnNjOjcxNSx5Y3J1ZWE6NzE2fTtfLnJhKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsXy51Lnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fSk7dmFyIGJxPV8udS55dExvZ2dpbmdMYXRlbmN5VXNhZ2VTdGF0c198fHt9O18ucmEoInl0TG9nZ2luZ0xhdGVuY3lVc2FnZVN0YXRzXyIsYnEpOwp2YXIgJHA9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9MH10aWNrKGEsYixjLGQpe2NxKHRoaXMsYHRpY2tfJHthfV8ke2J9YCl8fChjPXt0aW1lc3RhbXA6YyxjdHRBdXRoSW5mbzpkfSxiPXt0aWNrTmFtZTphLGNsaWVudEFjdGlvbk5vbmNlOmJ9LF8ueCgieW91dHViZV93ZWJfY3NpX3RpY2tzX21pZ3JhdGlvbiIpJiYoYT1ac1thXSxhIT09dm9pZCAwJiYoYi50aWNrPWEsZGVsZXRlIGIudGlja05hbWUpKSxfLkVwKCJsYXRlbmN5QWN0aW9uVGlja2VkIixiLGMpKX1pbmZvKGEsYixjKXt2YXIgZD1PYmplY3Qua2V5cyhhKS5qb2luKCIiKTtjcSh0aGlzLGBpbmZvXyR7ZH1fJHtifWApfHwoYT1PYmplY3QuYXNzaWduKHt9LGEpLGEuY2xpZW50QWN0aW9uTm9uY2U9YixfLkVwKCJsYXRlbmN5QWN0aW9uSW5mbyIsYSx7Y3R0QXV0aEluZm86Y30pKX1qc3BiSW5mbygpe31zcGFuKGEsYixjLGQpe3ZhciBlPU9iamVjdC5rZXlzKGEpLmpvaW4oIiIpO2lmKGR8fCFjcSh0aGlzLGBzcGFuXyR7ZX1fJHtifWApKWEuY2xpZW50QWN0aW9uTm9uY2U9CmIsXy5FcCgibGF0ZW5jeUFjdGlvblNwYW4iLGEse2N0dEF1dGhJbmZvOmN9KX19O3ZhciAkcyxhdDskcz13aW5kb3c7YXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnRpbWluZz17fTt0aGlzLmNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLm1vekNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLm1zQ2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9O3RoaXMub0NsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fX19O18uc3E9JHMucGVyZm9ybWFuY2V8fCRzLm1velBlcmZvcm1hbmNlfHwkcy5tc1BlcmZvcm1hbmNlfHwkcy53ZWJraXRQZXJmb3JtYW5jZXx8bmV3IGF0O3ZhciBscT1fLkZuKCk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Um9vdFZlVHlwZSIsXy5ncSk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Q3VycmVudENzbiIsXy5pcSk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Q3R0QXV0aEluZm8iLF8ua3EpO18ucmEoInl0X2xvZ2dpbmdfc2NyZWVuLnNldEN1cnJlbnRTY3JlZW4iLF8ubXEpO3ZhciB3cSxycTt3cT0hMTtycT0hMTtfLmJ0PSgwLF8uQ2EpKF8uc3EuY2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3Eud2Via2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3EubW96Q2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3EubXNDbGVhclJlc291cmNlVGltaW5nc3x8Xy5zcS5vQ2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uZ2QsXy5zcSk7dmFyIGR0OwpfLmN0PV8uVmkoZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7aWYoIV8ueCgid2ViX2NzaV9hY3Rpb25fc2FtcGxpbmdfZW5hYmxlZCIpfHwhXy5rbyhmKS5hY3Rpb25EaXNhYmxlZCl7dmFyIGs9aD8uc3BhblN0YXR1cyxsPWg/LnJvb3RTcGFuTm9uY2U7bGV0IG09Xy5ubyhmKTttLmdlbFNwYW5zP20uZ2VsU3BhbnNbYV09ITA6bS5nZWxTcGFucz17W2FdOiEwfTtYcysrO2E9e3NwYW5OYW1lOmEsc3Bhbkxlbmd0aFVzZWM6U3RyaW5nKE1hdGgucm91bmQoYioxRTMpKSxzcGFuTm9uY2U6WHMscm9vdFNwYW5Ob25jZTpsfHxYc307ayYmKGEuc3BhblN0YXR1cz1rKTtkJiYoYS5zcGFuSW5mbz1kKTtlJiYoYS5wYXJlbnRTcGFuTm9uY2U9ZSk7YyYmKGEuc3BhblN0YXJ0VGltZVVzZWM9U3RyaW5nKE1hdGgucm91bmQoYyoxRTMpKSk7Yz1hO18udW8oZnx8IiIpLnNwYW5bU3RyaW5nKGMuc3Bhbk5hbWUpXT1jO2Q9Xy5ubyhmKTtkLmdlbFNwYW5zfHwoZC5nZWxTcGFucz17fSk7Xy55bihkLmdlbFNwYW5zLGMpOwpkPV8ucG8oZik7Zj1fLmtvKGYpLmN0dEF1dGhJbmZvO2FxKCkuc3BhbihjLGQsZixoPy5xdSk7cmV0dXJuIGMuc3Bhbk5vbmNlfX0pO2R0PXdpbmRvdztkdC55dGNzaSYmKGR0Lnl0Y3NpLmluZm9HZWw9Xy56cSxkdC55dGNzaS50aWNrPV8uQXEpO3ZhciBldDtldD1uZXcgXy5jcztfLmZ0PWV0LnByb21pc2U7KGZ1bmN0aW9uKGEpe18uQXEoIm1tX2lzIik7dmFyIGI9bmV3ICRyO18uVWQoYik7Xy54KCJ3ZWJfZW5hYmxlX2xhenlfY3NzIikmJihuZXcgUHIpLmluaXQoKTtiLmVuKCgpPT57ZmgoKTtfLkFxKCJtbV9pZSIpO2E/LigpfSk7Yi5abihRZy5FUlJPUiwoYyxkLGUpPT57Xy5VaShFcnJvcigiSGFgIitkKyJgIitlKSl9KX0pKCgpPT57ZXQucmVzb2x2ZSgpfSk7Cl8uX01vZHVsZU1hbmFnZXJfaW5pdGlhbGl6ZT1mdW5jdGlvbihhLGIpe2lmKCFfLlFkKXtpZighXy5UZClyZXR1cm47Xy5VZChfLlRkKCkpfV8uUWQuVGgoYSxiKX07Cl8uX01vZHVsZU1hbmFnZXJfaW5pdGlhbGl6ZSgncm9vdC9zeTAvbjczcXdmOjEvc3kxL3N5MjozL2l1VDVPYzo0L3N5My9VVUpxVmU6MSw2L3N5NS9zeTQ6OC9NcEp3WmM6MSw2LDkvc3k2L3N5Nzo4L3N5ODpjL3N5Yy9zeWc6YixlL3N5aDpmL3N5YS9zeTFmL3N5M2M6aS9zeTNxOmkvc3k1YS9zeTU2L3N5NTgvc3k1YjpqLGssbCxtLG4vc3k1OTpqLG0sbi9zeTNkL3N5OTozLGMsZyxoL3N5ay9zeTU3L3N5YjpzL3N5ZDo4LGUvc3k1YzpqLGwsbSxuL3N5NWU6ayxxLHcvc3llL3N5Zi9zeWkvc3lqL3N5bC9zeW0vc3kxaC9zeTFlL3N5MWw6MTUvc3kzODoxNCwxNi9zeXA6MSw5LGMvc3l1OmMvc3lzOmQsMTgsMTkvc3kxaS9zeTJkL3N5Mms6MWEvc3kyajoxZC9zeTJ3OjFhL3N5MTkvc3kxcC9zeTIxL3N5Mm0vc3kybjoxai9zeTFiL3N5MXovc3kydS9zeTFrOmMsdiwxaCwxaSwxaywxbCwxbSwxbi9zeTJsL3N5MXU6MWcsMW4vc3kzMS9zeXY6Yy9zeTEwOjE4L3N5ejoxdC9zeXk6MWEvc3kzNjpjL3N5M2Y6Yy9zeTFtOmIsMWYsMXEsMXIsMXMsMXUsMXYsMXcsMXgvc3kyci9zeTNlL3N5M2E6aC9zeTEyOjFhL3N5M2c6MXUvc3kzaDoxOS9zeTFxOmcsaixxLDFvLDFwLDF5LDF6LDIwLDIxLDIyLDIzLDI0L3N5M2k6MXovc3kzbToxZS9zeTQzOjFlL3N5NDQ6MWUvc3k0ZjoxZS9zeTQ3OjFlL3N5NGc6MWUvc3k0aC9zeTRpOjE5L3N5eDoxYS9zeXQ6MWEvc3lyOjJnL3N5MTg6MWQsMXMsMmYsMmgvc3kyby9zeTMyL3N5M2I6MTksMW8sMXUvc3l3OjE4L3N5MTc6MjEsMm0vc3kzay9zeTFuOjFvLDFzLDJoLDJuLDJvL3N5M2o6MXcsMmssMmwsMnAvc3kxdi9zeTF5L3N5MnM6MTYvc3kyei9zeTFkL3N5M3Q6MTkvc3k0ajpqLGsscSwxZiwxdSwxdywxeCwyaywydi9zeTRkOmMsMWIvc3k0azoxOCwxcy9zeTQxOmMvc3k0MjoxOSwzMC9zeTJjOjExLDI1LDI2LDI3LDI4LDI5LDJhLDJiLDJjLDJkLDJlLDJpLDJqLDJxLDJyLDJzLDJ0LDJ1LDJ3LDJ4LDJ5LDJ6LDMxL3N5MWo6MTYvc3kyNDozMy9zeTRsOjE5LDMwL3N5MjM6MW8vc3kyNS9zeTJpOjE5LDM3L3N5NDYvc3k0cTozMiwzNiwzOCwzOS9zeW46MTcsMWMsMzQsMzUsM2Evc3kzMy9zeTJ2OjE4L3N5MWE6ayxtLHQsdSwyNSwyZiwybCwzYywzZC9zeTRuL3N5NG86M2Yvc3kzeC9zeTN6L3N5NHA6aixrLDFhLDFzLDF1LDF3LDF4LDNnLDNoLDNpL3N5Mjkvc3kzbDoxZS9zeTFvOjFtL3N5Mmg6M20vc3kxNDoxdCwyMi9zeTJmOmosayxxLDFzLDF3LDF4LDIzLDNvL3N5Mmcvc3kzcy9zeTQwOjFvL3N5M3Ivc3kzdS9zeTN2L3N5MWcvc3kzcC9zeTN3OmIsaiwxYSwxcywxdywxeCwyMywzaCwzdi9zeTN5OjFlL3N5M286MjUsMmksMmwsMncsM2ksM3AsM3IsM3QsM3UsM3csM3gsM3ksM3ovc3kxcjoyaywycywydCwzMSwzbiwzcSwzcyw0MC9zeTRzL3N5MnEvc3kyeS9zeTJ0OjFuLDNkL3N5NHUvc3k0dDoxZS9zeTI3OjFiLDF2LDF3LDNxLDQ2LDQ3L3N5MnA6MWUvc3kzbjoxZS9zeTQ1OjFlL3N5MjYvc3k0ODoxZS9zeTQ5OjFlL3N5NGEvc3k0Yjo0Zi9zeTRjOjNvLDRnL3N5Mjg6MjUsMjYsMjcsMmIsMmksMnAsMncsMnksNGMsNGQsNGUsNGgvc3k0ZToxZS9zeTJhOmssMjgsMnYsMzgsMzksNGEsNGIsNGksNGovc3kxdC9zeTRtOjE2L3N5MmI6MzIsMzUsMzgsMzksM28sNGwsNG0vc3kyZTozayw0MS9zeTIyL3N5MzAvc3k1MjoxOSwxcywyMy9zeTU0OjFhL3N5Mzcvc3kyMDoxaS9zeTM1OjFzLDF1LDF3LDJnL3N5MzQ6aywxbiwxeiwydCwzYyw0dCw0dSw0di9zeTE1OjF1L3N5cTp3LDEwLDNiLDNlLDNqLDNsLDQyLDQzLDQ0LDQ1LDQ4LDQ5LDRrLDRuLDRvLDRwLDRxLDRyLDRzLDR3LDR4L3N5NHcvc3lvOm8scCxyLDR5LDR6L3N5MTE6ZCwxOC9zeTEzOjF1LDIyLDUxL3N5MTY6Mm0vc3kxdy9zeTUxOjFmLDNwLDQ2LDRyLDR2L3N5Mngvc3kxeDo0eSw1NCw1NSw1Ni9zeTR2OmosayxxLDFhLDF3LDIzLDNyLDQ1LDR6L3N5Mzkvc3kxczo0cS9zeTR6OjFlL3N5NWQ6MWUvc3k1MDpqLHEsMXksMjgsMmEsMmIsMmksMmwsM28sNWEsNWIsNWMvc3k0cjoxZS9zeTR4OmssMW4sMXosNHYvc3k0eTpzLDJ1LDNjL3N5NTMvc3k1NToxOCwxcy9zeTFjOjQseCx5LDUwLDUyLDUzLDU3LDU4LDU5LDVkLDVlLDVmLDVnLDVoLDVpL3N5NWYvc3k1Zy9zeTVpL3N5NWsvc3k1bC9zeTVtL3N5NW4vc3k1bzoxOC9zeTVqL3N5NWg6NCx6LDUwLDU4LDVhLDVoLDVtLDVuLDVvLDVwLDVxLDVyLDVzL3N5NXA6NWosNXQvYmFzZTpkLHIsdSx2LHkseiwxMCwxMSwxMiwxMy9zeTVxL3N5NXIvc3k1czpjLGgvc3k1dDoybSwzbiwzbyw0eC9zeTdkL3N5NXU6MWwsMm8sNXIsNjAvc3k3cS9zeTZ0L3N5ODU6MTYvc3k4NDpqLDFyLDF3LDIzLDI4LDJpLDM1LDN0LDUzLDVpLDYzLDY0L3N5NXY6MTMsNTEsNjIsNjUvc3k2Yy9zeTZzOjQxL3N5ODY6MzUsNjQsNjgvc3k3bDpqLGsscSwxZSwxZiwxdSwxdywzbywzdSwzdi9zeTY3L3N5NXc6MzIsMzgsNDUsNXosNjYsNjcsNjksNmEsNmIvc3k1eC9zeTdlOjNkLDNtLDYwL3N5OHM6NmUvc3k5czoxZS9zeTV5OmYsaiwxaywxdywyMiwyMyw1YSw1biw2Ziw2Zy9zeTdyOjE0LDR0L3N5NmI6MnQsMzMvc3k1ejozNSwzZiwzayw0MSw0cCw2aSw2ai9zeTd6OjFlL3N5NjI6aC9zeThuOjFvLDFzL3N5NjA6MWIsMmQsMm4sNDEsNDYsNDcsNmwsNm0sNm4vc3k4bTpqLHEsMWcsMXcsMXgsMjMsNm4vc3k4bzoxNi9zeTc3L3N5Nnc6aiwxciwxdywyOCwyYSwyYywyaSwzayw1Yiw2ci9zeTdpL3N5OGwvc3k2MTp6LDEyLDJwLDJyLDM1LDNkLDQxLDR1LDU5LDVpLDV5LDV6LDYxLDZtLDZwLDZxLDZzLDZ0LDZ1L3N5NjM6MjUsMmksNGUvc3k2NDprLDI1LDI3LDJkLDJpLDJxLDRnL3N5NmQvc3k2OToxbiw0Ziw2Mi9zeTY4OjFlLDZ6L3N5N3Avc3k4YS9zeThjOjFlL3N5NjU6MWIsMjksMnAsM2csNmssNnUsNnksNzAsNzEsNzIsNzMvc3k2ei9zeTY2OjFjLDJrLDJyLDM1LDNzLDQwLDR3LDVmLDVnLDVuLDVvLDV6LDZmLDZqLDc1L3N5N286aixrLDFhLDFxLDF3LDF4LDF6LDNnL3N5Nmsvc3k2YTo1Nyw2eiw3MSw3Nyw3OC9zeThrOjFlL3N5OGY6MWUvc3k2ZToxNSwxdywyaSwzMCwzbyw0OSw0YSw0aiw0eiw3YSw3Yi9zeTZmOjFvLDFzLDF3LDI4LDJhLDJ1LDM1LDNrLDNyLDV6LDZlLDZxLDZyL3N5N2o6YywxaCwxaiwzNy9zeTdrOjFvLDM4LDM5LDZhL3N5Nmc6MWMsM2EsNDQsNGwsNW8sNXAsNjEsNjcsNzgsN2UsN2Yvc3k2aDozZSw0Miw0cSw2Myw2OC9zeTZpOmoscSwxNiwxOCwxdywzNS9zeTZyL3N5Nmo6MjUsMjcsMmksM28sN2UsN2ovc3k2bDoxNywyMywyOCwyaywydCwzMSwzayw1cS9zeThiOjJkL3N5ODA6MmQsN2ovc3k2eToxYiwyNSwyNywyaSwycCw0Yyw2MSw3Myw3bSw3bi9zeTZ4OjJiLDJlLDJ3LDRoLDVoLDcyLDdvL3N5Nm06MmEsNDEsN3Avc3k3eDoxZS9zeTd5OjJpLDdyL3N5OHI6MWIsMWcsMXUsMXcsMnAsM3MsNGMsNmwsN24sN3Mvc3k2bjoyYyw0MSw0dSw1OSw3NSw3byw3dC9zeThoOjFlL3N5Nm86MmksN2UsN3Yvc3k2cDoxaywxeiwzNSwzbyw0bSw0diw1bS9zeTZxOmssMjUsMjgsMmkvc3k2dS9zeTZ2OmosMTgsMXcvc3k3My9zeTcwOjFxLDFzLDF3LDJzLDJ0LDMxLDQ2LDQ3LDVnLDgxL3N5NzEvc3k4OToxZS9zeTcyOmosaywxeSwyaSwzMSwzZywzbyw1Niw1aSw2aSw3ciw4NC9zeTc0OjF3LDI4LDJpLDNyL3N5NzU6aixrLHEsMWEsMXcsM2csM3Qvc3k3NjoyNSwyaSw3My9zeTc4OmoscSwxNiwxbywxdSwxdywyYSwyaSwzNSwzbyw2ci9zeTc5OjJpLDdlLDdmL3N5ODI6MWUvc3k4MzoxZS9zeTdhOjFwLDF4LDIwLDJiLDJqLDJ3LDN4LDRhLDRiLDRkLDVoLDV3LDV5LDY2LDZ0LDcwLDcyLDdhLDd2LDhiLDhjL3N5N2I6NmYsN28sN3osOGMvc3k3YzpxLDFrLDF3LDF4LDJmLDMxLDZkLDZnLDZqL3N5N2Y6NDEsN2wvc3k3Zzo0MS9zeTdoOmosMXksMXovc3k3bToyNSwyNiwyaS9zeTduOmoscSwxOCwxdywxei9zeTdzL3N5N3U6MjAvc3k3dDoyNSwzbyw1aCw4bCw4bS9zeTd2OjFiLDFlLDI1LDJwLDhsL3N5N3c6MW8sNmwsN24sN3Mvc3k4MToyNSwyaSw0aCw4Yiw4Yy9zeTg3OmosMXksMXosMjAsNWgvc3k4ODo3Nyw4NS9zeThkOjExLDJyLDM0LDM1LDQxL3N5OGU6MmksMzgsN2IsN2Uvc3k4ZzoxZSwyNSwydy9zeThpOjFjLDMyLDNvLDdlL3N5OGo6MzgsNDEsN2Uvc3k4cToyNSwyYiwyaSwycCw4Yy9zeThwOjQxLDZ1LDZ6LDdwLDd0LDh5L3N5OHQ6NG8sN2Uvc3k4dToxYiwyNSwyNiw0Mi9zeTh2OjF5L3N5OHg6MWUvc3k4dzpqLHEsMXcsMmksM2csOTMvc3k4eTprLDFiLDI1LDJwLDYxLDgzL3N5OHo6aiwxdywyYSwyaSwzdCw4My9zeTkwOjF3LDJpLDNnLDgxLDkzL3N5OTE6aixxLDFiLDF5LDJlL3N5OTI6aywxYiwxeSwyMywyNiwycCw3ciw3eiw4NCw4Ni9zeTkzOjExLDJvLDJ0LDQwLDhkL3N5OTQ6aixrLHEsMWYsMXYsMXcsMXgsMjMsMnosNjEvc3k5NToyNSw0Miw4bS9zeTk2OmosayxxLDFlLDFvLDF5LDMxLDR1LDU5LDYxL3N5OTc6aixrLDF6LDNvLDR2LDVnL3N5OTg6MXcsMmEsMzUsNG0sNTQsNnIvc3k5OToxdywyNCwyYSwydywzNSwzdywzeCw0bSw1NCw2ci9zeTlhOmosaywxdSwxdywzNi9zeTliOmosayxxLDF5LDIzLDJ6LDN0LDQzLDZ5LDdtL3N5OWM6MjUsMjYsMjcsMmIsN3Qvc3k5ZDo3by9zeTllOjFvLDFzLDF3LDIzLDRzLDZiL3N5OWY6aywyNSw3dC9zeTlnOmssMjUsMzEsM2wsM3IsNHUsNTksNWQvc3k5aDoyNSwyNywyaS9zeTlpOmssMTEsMjUsMjgsMmksM3IsNGYsNXkvc3k5ajpqLGsscSwxeSwybCwyciwzMSw0dSw1OS9zeTlrOjI3LDQxL3N5OWw6MXcsMjgsMmksMzEsM3IsNHUsNTkvc3k5bTprLDI1LDJsLDMxLDR1LDU5L3N5OW46MjUvc3k5bzprLDI1LDJ0LDMxLDM1LDNpLDNvLDN6LDR1LDU5L3N5OXA6MjUsMm8sMzEsNHUsNTkvc3k5cToyNSwyNyw3dCw4Yy9zeTlyOmssMjUsMmYsMmwsM2wsNXMsNmcvc3k5dDoyaSw1Yy9zeTl1OnMsMXMsMXcsMjMsMnUsM2MsNTIsNmQvc3k5djozNSwzayw0MSw2ai9zeTl3OjQwL3N5OXg6aixxLDE4LDF3LDM1LDRtLDU0L2Jhc2Vfc3luY19tb2RfY2h1bms6NXYvcjlLTWpiOjhqL1ZjR1M4OjhrL3pDa0tCYzoyeC9pNlhvbWU6OHYvbk81ZFRkOjd4L090S1NKZTozai9udlg0VmI6M3kvRGx2RjFkOjQxLGFiL2Y5MHRDYjo3bC9WYlhyVWU6OGcsYWMsYWQvcEVTbERiOjhpL0ttQmZjYzo5NS9TVTN1aTo5aS9SYXE0Y2I6OHAvakJpc2FmOjU1L1B6VWRaYjo0OC9xVExkUTo4bi9XcWxjVmI6OG8vUUhBdGVmOjh0LGFjL1VBOEdTZTo4eCxhYy9MVmlNTTo3NixhYi9wZXZ0dmM6OWYvaXpqbVA6OWcvamd4OG1lOmExLGFjL3VobExHYjo2cy9GcUhjR2U6OWIvY3lDVmxkOjRpL29QcDVMZTo4Mi9BNG9BVmU6OTcvT3NtNDljOjg2L1BEdjZNZTo5OSxheS9vc1R0eGU6OHEvcVZEZ0JkOjhyL0hEbVUxZTo3dC9MSFA3SmQ6N28vVHUzTUI6N3AsYjMvRnNvWHpjOjdxLGFjLGI0L2lhaTJpYzo5Mi90UGdZemQ6ODcvYTY2TGZlOjk0L0lXcFVyZjo4OC9kSGNvSWY6OTYvb1hCV0hmOjk4L0lUdUNVYjo2cC9OcjBrZmU6ODUvYWNGdVZjOjhzLGJkL21tMk4wYzo5aC9oYjBXbWY6N2QvaE5lbHZkOmEzL3I1Q09IZjo3aS9aUUt4MToycS9wZTJvamI6MzIsYTcsYmovaGFvdU9lOjg5L2pKZkNvZDphMixhYi93U240YWM6NnYsYWMsYXQsYmMvaGExSWk6OHkvT003eG9iOjh6LGFjLGIyLGI0LGJvL0ZpTkdPYzo2ayxhYy9Xc2lNaWM6Nm8sYWMvVUFNNW06NzQsYnEvRDlXTWQ6NncveTlub09iOjZ4LGJqL1cwZ1NLYjo2OSxhYy9Id2xPaGQ6NjUvaGpyTm46ODAvdkRjazFkOjRuLGJrL0h4amxiYjozYixiay9uMERIZzo3eS9uQnZCeWQ6OWosYjIvZURVRG9jOjlrLGIzL1ZPVVA5ZDo4ZCxidy9iemowamQ6OWEsYWIsYzMvdVJJYUM6OW0sYjIvY2dTRW9iOjljL1hlUlhCZDo5ZC9zNjQ5ajo5cS91U3hkbmI6OXMvV2ZmNkJkOjd1LGFjLGIyLGIzL1UzbXpzZDo5dC95UDBKQmQ6OXUvUnFhSnNkOjl2L0UzSGViYzo5dy9wMXZFU2Q6YTAvQVQ4TFRlOjl5L3NET1RHZTo5bi9lY3VQQWM6NmgvTlFjMUlkOjhmL0ZRZElKZTo5ei9ibFpaWGU6OGgsYWMvZ0FPWXg6NmEvSU5jMUVmOjdnLGJrLGNtL2xQV2prYjo0byxhYy9vakdUNmQ6OHUvZDJMVHhiOjRrLGF2L0haNDFPZDo4dyxiay9lM1V0Vzo4ZSxiMy9hVTFHVGI6OTAsY28vSWJ4eE9lOjkxL3ZpVVdWOjU4L0R2WkM5OjlsL2ZBemRUOjZjLGJrLGJ2LGJ3LGNtL2ZnbEpOYjo4YSxjbS9pbFFTQWY6OW8vVWtadVdiOjlyLGFjL2w4YUtEYjo3ay9jbnE1UWI6OXgsYjIvbjlESkJmOjd3L2ZLRThxZDo3Yy9uN2VvMjo5cC9SWmVrSjo5ZS9RbWtNRTo3aCxhYy9OdWlsdWU6NzksYWEsYWosYWssYnksYnosY28sY3EvbWVIOUViOjUsNXQsYWEsYWssYnksYnosY28sY3EsY3YveUVmTkZiOjVqLGFqLGQ5L3I3OERyYjo1dSxhaixkOScsWydzeTEnLCdzeTUnLCdzeTYnLCdzeTcnLCdzeTgnLCdzeWMnLCdzeWcnLCdzeWgnLCdzeWEnLCdzeTknLCdzeWsnLCdzeWInLCdzeWQnLCdzeWUnLCdzeWYnLCdzeWknLCdzeWonLCdzeWwnLCdzeW0nLCdiYXNlJ10pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgUHQsUXQsVnQ7Xy5NdD1mdW5jdGlvbihhKXt2YXIgYj1fLmpmO2ZvcihsZXQgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKyliLkFhKGFbY10pfTtfLk50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uamYuR2EoYSw0LGIpfTtfLk90PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5CZihmdW5jdGlvbihiLGMpe2MoYSl9KX07UHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhLmNsYXNzTmFtZT09InN0cmluZyI/YS5jbGFzc05hbWU6YS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn07UXQ9ZnVuY3Rpb24oYSxiKXt0eXBlb2YgYS5jbGFzc05hbWU9PSJzdHJpbmciP2EuY2xhc3NOYW1lPWI6YS5zZXRBdHRyaWJ1dGUmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsYil9OwpfLlJ0PWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/Yj1hLmNsYXNzTGlzdC5jb250YWlucyhiKTooYT1hLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpQdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxiPV8uc2IoYSxiKT49MCk7cmV0dXJuIGJ9O18uU3Q9ZnVuY3Rpb24oYSxiKXtpZihhLmNsYXNzTGlzdClhLmNsYXNzTGlzdC5hZGQoYik7ZWxzZSBpZighXy5SdChhLGIpKXtsZXQgYz1QdChhKTtRdChhLGMrKGMubGVuZ3RoPjA/IiAiK2I6YikpfX07Xy5UdD1mdW5jdGlvbihhLGIpe2EuY2xhc3NMaXN0P2EuY2xhc3NMaXN0LnJlbW92ZShiKTpfLlJ0KGEsYikmJlF0KGEsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGEuY2xhc3NMaXN0P2EuY2xhc3NMaXN0OlB0KGEpLm1hdGNoKC9cUysvZyl8fFtdLGZ1bmN0aW9uKGMpe3JldHVybiBjIT1ifSkuam9pbigiICIpKX07Cl8uVXQ9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYSE9PSJmdW5jdGlvbiIpaWYoYSYmdHlwZW9mIGEuaGFuZGxlRXZlbnQ9PSJmdW5jdGlvbiIpYT0oMCxfLkNhKShhLmhhbmRsZUV2ZW50LGEpO2Vsc2UgdGhyb3cgRXJyb3IoIk9hIik7cmV0dXJuIE51bWJlcihiKT4yMTQ3NDgzNjQ3Py0xOl8udS5zZXRUaW1lb3V0KGEsYnx8MCl9O1Z0PWZ1bmN0aW9uKGEpe2Euaj1fLlV0KCgpPT57YS5qPW51bGw7YS5vJiYhYS5CJiYoYS5vPSExLFZ0KGEpKX0sYS5JKTt2YXIgYj1hLkQ7YS5EPW51bGw7YS5NLmFwcGx5KG51bGwsYil9O18uV3Q9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYixjKXtzdXBlcigpO3RoaXMuTT1jIT1udWxsP2EuYmluZChjKTphO3RoaXMuST1iO3RoaXMuRD1udWxsO3RoaXMubz0hMTt0aGlzLkI9MDt0aGlzLmo9bnVsbH12KGEpe3RoaXMuRD1hcmd1bWVudHM7dGhpcy5qfHx0aGlzLkI/dGhpcy5vPSEwOlZ0KHRoaXMpfXN0b3AoKXt0aGlzLmomJihfLnUuY2xlYXJUaW1lb3V0KHRoaXMuaiksdGhpcy5qPW51bGwsdGhpcy5vPSExLHRoaXMuRD1udWxsKX1wYXVzZSgpe3RoaXMuQisrfXJlc3VtZSgpe3RoaXMuQi0tO3RoaXMuQnx8IXRoaXMub3x8dGhpcy5qfHwodGhpcy5vPSExLFZ0KHRoaXMpKX1sYSgpe3N1cGVyLmxhKCk7dGhpcy5zdG9wKCl9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgoKIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQoqLwp2YXIgc3UscXUsb3UsdXUsbnUsenUsQXUsRHUsR3UsSHUsSXUsTnUsVHUsVnUsJHUsaXYsbXYscXYscnY7Xy5YdD1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbHx8dHlwZW9mIGE9PT0ic3RyaW5nIj9hOnZvaWQgMH07Xy5ZdD1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPV8ueSgpLGQ9Yy5yZXNvbHZlKF8uSW4oYSkpO2Q/KGIoZCksUHJvbWlzZS5yZXNvbHZlKGQpKTpjLnJlc29sdmUobmV3IF8uVXMoYSkpLnRoZW4oZT0+e2IoZSk7cmV0dXJuIGV9KX07Xy4kdD1mdW5jdGlvbihhKXt2YXIgYj1fLlp0O18uWnQ9YTtyZXR1cm4gYn07Xy5idT1mdW5jdGlvbihhKXtyZXR1cm4gYT09PV8uYXV8fGE/Lm5hbWU9PT0iXHUwMjc1Tm90Rm91bmQifTtfLmN1PWZ1bmN0aW9uKGEsYil7aWYoYT8uaWEpdGhyb3cgRXJyb3IoIlNhYCIrU3RyaW5nKGEuZGVidWdOYW1lKSk7Zm9yKDthIT09dm9pZCAwOyl7bGV0IGM9YTtpZihjLlJoKXJldHVybiBjLlJoKGIse29wdGlvbmFsOiEwfSk7YT1hLnBhcmVudH1yZXR1cm4gXy5hdX07Cl8uZHU9ZnVuY3Rpb24oYSl7cmV0dXJue2Rlc2NyaXB0aW9uOmEsQ2I6e016OiJyb290Iix0b2tlbjpTeW1ib2woYSksS3A6dm9pZCAwLHZhbHVlOnZvaWQgMH19fTtfLmV1PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYSYmYj9gJHthfV9fJHtifWA6YT8/Yj8/Y307Xy5ndT1mdW5jdGlvbihhLGIpe3JldHVybnsuLi5fLmR1KGI/PyIiKSxbXy5mdV06ITAsZGVidWdOYW1lOmI/PyJbY29udGV4dF0iLGRlZmF1bHRWYWx1ZTphPy5kZWZhdWx0VmFsdWUscmVxdWlyZWQ6IWF8fCFPYmplY3QuaGFzT3duKGEsImRlZmF1bHRWYWx1ZSIpLGlkOmIsT0s6dm9pZCAwfX07Xy5odT1mdW5jdGlvbihhLGIpe2I9Xy5jdShiLGEpO2lmKF8uYnUoYikpe2lmKGEucmVxdWlyZWQpdGhyb3cgRXJyb3IoImpiYCIrYS5kZWJ1Z05hbWUpO3JldHVybiBhLmRlZmF1bHRWYWx1ZX1yZXR1cm4gYn07Xy5pdT1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QuaXMoYSxiKX07Cl8ua3U9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5qdTtfLmp1PWE7cmV0dXJuIGJ9O18ucHU9ZnVuY3Rpb24oYSl7aWYobHUpdGhyb3cgRXJyb3IoImgiKTtpZihfLmp1IT09bnVsbCl7Xy5qdS5pcChhKTt2YXIgYj1fLmp1LmtmO2lmKGI9PT12b2lkIDB8fGIuTWghPT1hKXt2YXIgYz12b2lkIDAsZD1fLmp1LmNuO2lmKGQmJihjPWIhPT12b2lkIDA/Yi5yZTpfLmp1LnByb2R1Y2VycyxjIT09dm9pZCAwJiZjLk1oPT09YSkpe18uanUua2Y9YztjLkhxPWEudmVyc2lvbjtjLm9qPV8ubXU7cmV0dXJufXZhciBlPWEuVWc7aWYoZT09PXZvaWQgMHx8ZS5EZiE9PV8uanV8fGQmJmUub2ohPT1fLm11KWQ9bnUoXy5qdSksYz17TWg6YSxEZjpfLmp1LHJlOmMsTWo6dm9pZCAwLG9qOl8ubXUsSHE6YS52ZXJzaW9uLHFlOnZvaWQgMH0sXy5qdS5rZj1jLGIhPT12b2lkIDA/Yi5yZT1jOl8uanUucHJvZHVjZXJzPWMsZCYmb3UoYSxjKX19fTsKXy5ydT1mdW5jdGlvbihhKXtpZighbnUoYSl8fGEuUGIpaWYoYS5QYnx8YS5yaiE9PV8ubXUpKGEuWG0oYSl8fHF1KGEpKSYmYS5ZbShhKSxhLlBiPSExLGEucmo9Xy5tdX07c3U9ZnVuY3Rpb24oYSl7aWYoYS5jb25zdW1lcnMhPT12b2lkIDApe3ZhciBiPWx1O2x1PSEwO3RyeXtmb3IobGV0IGM9YS5jb25zdW1lcnM7YyE9PXZvaWQgMDtjPWMucWUpe2xldCBkPWMuRGY7ZC5QYnx8KGQuUGI9ITAsc3UoZCksZC5ocD8uKGQpKX19ZmluYWxseXtsdT1ifX19O18udHU9ZnVuY3Rpb24oYSl7aWYoYSl7aWYoYS5rZj8ub2o9PT1fLm11KXtsZXQgYj1hLnByb2R1Y2Vycztmb3IoO2IhPT12b2lkIDA7KWIub2o9bnVsbCxiPWIucmV9YS5rZj12b2lkIDA7YS5jbj0hMH1yZXR1cm4gXy5rdShhKX07Cl8udnU9ZnVuY3Rpb24oYSl7YS5jbj0hMTt2YXIgYj1hLmtmLGM9YiE9PXZvaWQgMD9iLnJlOmEucHJvZHVjZXJzO2lmKGMhPT12b2lkIDApe2lmKG51KGEpKXtkbyBjPXV1KGMpO3doaWxlKGMhPT12b2lkIDApfWIhPT12b2lkIDA/Yi5yZT12b2lkIDA6YS5wcm9kdWNlcnM9dm9pZCAwfX07cXU9ZnVuY3Rpb24oYSl7Zm9yKGE9YS5wcm9kdWNlcnM7YSE9PXZvaWQgMDthPWEucmUpe2xldCBiPWEuTWgsYz1hLkhxO2lmKGMhPT1iLnZlcnNpb24pcmV0dXJuITA7Xy5ydShiKTtpZihjIT09Yi52ZXJzaW9uKXJldHVybiEwfXJldHVybiExfTtvdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuVWcsZD1udShhKTtjIT09dm9pZCAwPyhiLnFlPWMucWUsYy5xZT1iKTooYi5xZT12b2lkIDAsYS5jb25zdW1lcnM9Yik7Yi5Naj1jO2EuVWc9YjtpZighZClmb3IoYT1hLnByb2R1Y2VyczthIT09dm9pZCAwO2E9YS5yZSlvdShhLk1oLGEpfTsKdXU9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NaCxjPWEucmUsZD1hLnFlLGU9YS5NajthLnFlPXZvaWQgMDthLk1qPXZvaWQgMDtkIT09dm9pZCAwP2QuTWo9ZTpiLlVnPWU7aWYoZSE9PXZvaWQgMCllLnFlPWQ7ZWxzZSBpZihiLmNvbnN1bWVycz1kLCFudShiKSlmb3IoYT1iLnByb2R1Y2VyczthIT09dm9pZCAwOylhPXV1KGEpO3JldHVybiBjfTtudT1mdW5jdGlvbihhKXtyZXR1cm4gYS5ncHx8YS5jb25zdW1lcnMhPT12b2lkIDB9O18ud3U9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO307Xy55dT1mdW5jdGlvbihhLGIpe18uanU/LkxlIT09ITF8fF8ud3UoYSk7YS5lcXVhbChhLnZhbHVlLGIpfHwoYS52YWx1ZT1iLGEudmVyc2lvbisrLF8ubXUrKyxzdShhKSx4dT8uKGEpKX07enU9ZnVuY3Rpb24oYSxiKXtiLnptPXZvaWQgMDthLlpqP2EuWmouem09YjphLlVrPWI7YS5aaj1ifTtBdT1mdW5jdGlvbihhLGIpe3p1KGEse1tTeW1ib2wuZGlzcG9zZV06Yn0pfTsKXy5CdT1mdW5jdGlvbihhKXt2YXIgYj1fLlp0O2ImJiFiLmlhJiYoenUoYixhKSxhLnBhcmVudD1iKX07RHU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuVWs7Yjspe2xldCBjPWIuem07Xy5DdShiKTtiPWN9YS5Vaz12b2lkIDA7YS5aaj12b2lkIDB9O18uQ3U9ZnVuY3Rpb24oYSl7YS5pYXx8KGEuaWE9ITAsYVtTeW1ib2wuZGlzcG9zZV0/LigpLGEucGFyZW50PXZvaWQgMCxEdShhKSl9O18uRnU9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy5xcikoYSkmJl8uRXUgaW4gYX07R3U9ZnVuY3Rpb24oYT1fLlp0KXtmb3IoO2E7KXtpZihfLkZ1KGEpKXJldHVybiBhO2E9YS5wYXJlbnQ/P251bGx9cmV0dXJuIG51bGx9O0h1PWZ1bmN0aW9uKGE9Xy5adCl7Zm9yKHZhciBiPVtdO2E7KV8uRnUoYSkmJmIucHVzaChhLmRlYnVnTmFtZSksYT1hLnBhcmVudD8/bnVsbDtyZXR1cm4gYn07Ckl1PWZ1bmN0aW9uKGEpe3JldHVybigwLF8ucXIpKGEpJiZhLm5hbWUhPT12b2lkIDAmJmEubGohPT12b2lkIDAmJmEucGFyZW50IT09dm9pZCAwfTtfLkx1PWZ1bmN0aW9uKCl7dmFyIGE9ey4uLkp1fTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhKdSkuZm9yRWFjaChiPT57Xy5LdVtiXSE9PXZvaWQgMCYmKGFbYl09Xy5LdVtiXSl9KTtyZXR1cm4gYX07Xy5SdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy5NdTtiJiYoXy5NdT1iKTt0cnl7cmV0dXJuIGM9PW51bGw/YSgpOmEuY2FsbChjKX1jYXRjaChlKXtOdShlLF8uTXUpO2lmKGUhPT1PdSl7Xy5QdT1fLk11O2E9W107Zm9yKGI9Xy5adDtiOylhLnB1c2goYi5kZWJ1Z05hbWU/PyJbY29udGV4dF0iKSxiPWIucGFyZW50Pz9udWxsO18uUXU9YS5yZXZlcnNlKCl9T3U9ZTt0aHJvdyBlO31maW5hbGx5e18uTXU9ZH19OwpOdT1mdW5jdGlvbihhLGIpe3RyeXtsZXQgYz1fLlN1KGIpO2lmKGMmJiFhLk5kPy5jb21wb25lbnRTdGFjayYmKGEuTmQ/YS5OZC5jb21wb25lbnRTdGFja3x8KGEuTmQuY29tcG9uZW50U3RhY2s9Yyk6YS5OZD17Y29tcG9uZW50U3RhY2s6Y30sXy5LdS5Cdikpe2xldCBkPWAke2EubWVzc2FnZX1cblxuQ29tcG9uZW50IHN0YWNrOiAke2N9YDthLnN0YWNrJiYoYS5zdGFjaz1hLnN0YWNrLnJlcGxhY2UoYS5tZXNzYWdlLGQpKTthLm1lc3NhZ2U9ZH19Y2F0Y2h7fX07VHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgNDpjYXNlIDM6cmV0dXJuInNldmVyZSI7Y2FzZSAyOnJldHVybiJ3YXJuaW5nIjtjYXNlIDE6Y2FzZSAwOnJldHVybiJpbmZvIjtkZWZhdWx0OnJldHVybiJ1bmtub3duIn19OwpfLlV1PWZ1bmN0aW9uKGEsYixjKXtpZihhLk5kKXJldHVybiBhO3RyeXtsZXQgZD0oYT09PU91P18uUHU6bnVsbCk/P18uTXU7TnUoYSxkKTthLk5kPXtjb21wb25lbnRTdGFjazpfLlN1KGQpLGZoOmIsQWw6Xy5MdSgpLHRhZ05hbWU6YyxwcjpfLlF1Py5zbGljZSgpPz9bXX07YS5yZXBvcnRTZXZlcml0eT1UdShiKX1jYXRjaHt9cmV0dXJuIGF9O1Z1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9IiI7YjwyMCYmYTspYys9YCR7YCQkWElEOiR7YS5uYW1lfSQkYH0gPiBgLGE9YS5wYXJlbnQsYisrO3JldHVybiBjLnNsaWNlKDAsLTMpfTtfLlN1PWZ1bmN0aW9uKGEpe3JldHVybiBJdShhKXx8YT09PW51bGw/VnUoYSk6Xy5LdS5GcD8oYT1HdShhKSxIdShhKS5zbGljZSgwLDIwKS5tYXAoYj0+YCQkWElEOiR7Yn0kJGApLmpvaW4oIiA+ICIpKToiIn07Cl8uWXU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5adDtpZihiKXt2YXIgYz1fLk11O0F1KGIsKCk9Pnt2YXIgZD1fLmt1KF8uV3U/PyhfLld1PU9iamVjdC5jcmVhdGUoey4uLl8uWHUsTGU6ITB9KSkpO3RyeXtfLlJ1KCgpPT52b2lkIGEoKSxjKX1jYXRjaChlKXt0aHJvdyBfLlV1KGUsNCksZTt9ZmluYWxseXtfLmt1KGQpfX0pfWVsc2UgXy5qdT09PV8uV3U/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIlhhIiksMik7fSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIiRhIiksMik7fSl9OyR1PWZ1bmN0aW9uKGEpe3ZhciBiPSgpPT57Xy5wdShhKTtyZXR1cm4gYS52YWx1ZX07YltfLlp1XT1hO3JldHVybltiLGM9PntfLnl1KGEsYyl9LGM9PntfLmp1Py5MZSE9PSExfHxfLnd1KGEpO18ueXUoYSxjKGEudmFsdWUpKX1dfTsKXy5KPWZ1bmN0aW9uKGEsYixjPSIiKXt2YXIgZD1PYmplY3QuY3JlYXRlKGF2KTtkLnZhbHVlPWE7Yj8uZXF1YWxzIT09dm9pZCAwJiYoZC5lcXVhbD1iLmVxdWFscyk7ZC5kZWJ1Z05hbWU9Xy5ldShiPy5kZWJ1Z05hbWUsYywiW3NpZ25hbF0iKTtyZXR1cm4gJHUoZCl9O18uZnY9ZnVuY3Rpb24oYSl7aWYoIWEuaWEpc3dpdGNoKGEuZWZmZWN0VHlwZSl7Y2FzZSBidjpfLmN2LnNjaGVkdWxlKGEpO2JyZWFrO2Nhc2UgXy5kdjpldi5zY2hlZHVsZShhKTticmVhaztkZWZhdWx0Ol8uZWIoYS5lZmZlY3RUeXBlLHZvaWQgMCl9fTtfLmp2PWZ1bmN0aW9uKCl7aWYoXy5ndj4wKV8uS3UuUmkmJl8uY3YuZmx1c2goKTtlbHNle2ZvcihsZXQgYSBvZiBodilhLmZsdXNoKCk7aXYoKX19O2l2PWFzeW5jIGZ1bmN0aW9uKCl7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGxldCBhIG9mIGt2KWEuZmx1c2goKX07Cm12PWZ1bmN0aW9uKGEpe3ZhciBiPWEuaXNGbHVzaGluZzthLmlzRmx1c2hpbmc9ITA7dHJ5e2xldCBjPTA7Zm9yKDtjPGEuWmI7KXtsZXQgZD1hLkRkW2NdO2EuRGRbY109dm9pZCAwO2MrKztpZighZHx8IWQuUGIpY29udGludWU7bGV0IGU9W2RdLGY9ZDtmb3IoO2YucGFyZW50IT09dm9pZCAwOylmPWYucGFyZW50LCgwLF8ubHYpKGYpJiZmLlBiJiZlLnB1c2goZik7Zm9yKDtlLmxlbmd0aD4wOyllLnBvcCgpLnJ1bigpfWEuWmI9MH1maW5hbGx5e2EuaXNGbHVzaGluZz1ifX07Xy5vdj1mdW5jdGlvbihhLGI9Xy5adCl7aWYoYiYmIWIuaWEmJihiPV8uaHUobnYsYiksYj8ucmVwb3J0RXJyb3IpKXtiLnJlcG9ydEVycm9yKGEpO3JldHVybn10aHJvdyBhO307Cl8ucHY9ZnVuY3Rpb24oYSxiLGMpe2E9T2JqZWN0LmNyZWF0ZShhKTtiJiYoYS5mbj1iKTtjJiYoYS5kZWJ1Z05hbWU9Yyk7Xy5qdT09PV8uV3U/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIlRhIiksMik7fSk6Xy5adD09PW51bGw/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoImNiIiksMik7fSk6Xy5CdShhKTthLmNvbXBvbmVudFN0YWNrPV8uTXU7cmV0dXJuIGF9O3F2PWZ1bmN0aW9uKGEpe2lmKCFhLmlhKXtpZihsdSl0aHJvdyBfLlV1KEVycm9yKCJ4YiIpLDQpO3ZhciBiPV8uJHQoYSk7dHJ5e18uUnUoKCk9PnthLlBiPSExO2lmKCEoYS52ZXJzaW9uPjApfHxxdShhKSl7YS52ZXJzaW9uKys7dmFyIGM9Xy50dShhKTt0cnl7YS5WaygpLGEuZm4oKX1maW5hbGx5e18ua3UoYyksYSYmXy52dShhKX19fSxhLmNvbXBvbmVudFN0YWNrLGEpfWNhdGNoKGMpe18uVXUoYyw0KSxfLm92KGMpfWZpbmFsbHl7Xy4kdChiKX19fTsKcnY9ZnVuY3Rpb24oYSl7dmFyIGI9RXJyb3IoIlphYCIrYS5kZWJ1Z05hbWUpO18uVXUoYiw0KTtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhyb3cgYjt9KX07Xy50dj1mdW5jdGlvbihhLGIpe2E9Xy5wdihzdixhLGIpO18uZnYoYSl9O18udXY9ZnVuY3Rpb24oYSxiPSEwKXt2YXIgYz17cGFyZW50OnZvaWQgMCxpYTohMSxVazp2b2lkIDAsWmo6dm9pZCAwLHptOnZvaWQgMH07YiYmXy5CdShjKTtiPV8uJHQoYyk7dHJ5e2EoYyl9ZmluYWxseXtfLiR0KGIpfXJldHVybigpPT52b2lkIF8uQ3UoYyl9O18udnY9ZnVuY3Rpb24oKXt9O18ud3Y9ZnVuY3Rpb24oKXt9O18ueHY9ZnVuY3Rpb24oKXt9O18uQnY9ZnVuY3Rpb24oYSl7aWYoXy5qdT09PV8ueXZ8fF8uanU9PT1fLnp2KXRocm93IF8uVXUoRXJyb3IoIllhIiksNCk7cmV0dXJuIHR5cGVvZiBhPT09ImZ1bmN0aW9uIj9hKCk6YT8uW0F2XT9hLmdldCgpOmF9O18uQ3Y9ZnVuY3Rpb24oKXt9O18uRHY9e307Cl8uVXM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qdj1hfX07Xy5Fdj1fLnUuSlNPTi5wYXJzZTtuZXcgY2xhc3MgZXh0ZW5kcyBfLmFle2luaXQoKXt9fTtfLkVhKCk7Xy5adD12b2lkIDA7Xy5hdT1TeW1ib2woImRiIik7dmFyIEZ2LGJ2O0Z2PVN5bWJvbCgiZWIiKTtidj1TeW1ib2woImZiIik7Xy5kdj1TeW1ib2woImdiIik7Xy5sdj1fLkNjKGE9PigwLF8ucXIpKGEpJiZGdiBpbiBhKTtfLmZ1PVN5bWJvbCgiaGIiKTt2YXIgbHU7Xy5qdT1udWxsO2x1PSExO18ubXU9MTtfLlp1PVN5bWJvbCgia2IiKTtfLlh1PXt2ZXJzaW9uOjAscmo6MCxQYjohMSxwcm9kdWNlcnM6dm9pZCAwLGtmOnZvaWQgMCxjb25zdW1lcnM6dm9pZCAwLFVnOnZvaWQgMCxjbjohMSxMZTohMSxncDohMSxraW5kOiJ1bmtub3duIixYbTooKT0+ITEsWW06KCk9Pnt9LGhwOigpPT57fSxpcDooKT0+e319O18uR3Y9U3ltYm9sKCJsYiIpO18uSHY9U3ltYm9sKCJtYiIpO18uSXY9U3ltYm9sKCJuYiIpO3ZhciBKdj17Li4uXy5YdSxncDohMCxMZTohMCxQYjohMCxraW5kOiJlZmZlY3QifTt2YXIgeHU9bnVsbCxhdj17Li4uXy5YdSxlcXVhbDpfLml1LHZhbHVlOnZvaWQgMCxraW5kOiJzaWduYWwifTtfLkt2PVN5bWJvbCgib2IiKTtfLkx2PVN5bWJvbCgicGIiKTtfLk12PVN5bWJvbCgicWIiKTtfLkV1PVN5bWJvbCgicmIiKTt2YXIgSnU9e3l2OiEwLEJ2OiExLEZwOl8uWXEsR3A6Xy5ZcSxHdjohMSxyaTohMSxISTohMCxSaTohMSxKcTohMX07Xy5LdT17YXR0cmlidXRlczp7fSxoYW5kbGVFcnJvcihhKXt0aHJvdyBhO30sLi4uSnV9O3ZhciBPdTtfLk11PW51bGw7Xy5QdT1udWxsO18uTnY9bmV3IFNldDtfLk92PW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe319O3ZhciBQdixTdixUdixWdixXdixYdixldixodixrdixadjtfLmd2PTA7UHY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmlzRmx1c2hpbmc9ITE7dGhpcy5EZD1bXTt0aGlzLlpiPTB9c2NoZWR1bGUoYSl7dGhpcy5EZFt0aGlzLlpiKytdPWF9Y2xlYXIoKXtmb3IobGV0IGE9MDthPHRoaXMuWmI7YSsrKXRoaXMuRGRbYV09dm9pZCAwO3RoaXMuWmI9MH19O18uUXY9U3ltYm9sKCJ3YiIpO1N2PWNsYXNzIGV4dGVuZHMgUHZ7Zmx1c2goKXtpZih0aGlzLlpiIT09MCl7Zm9yKHZhciBhPTA7YTx0aGlzLlpiOyl7bGV0IGI9dGhpcy5EZFthXTt0aGlzLkRkW2FdPXZvaWQgMDthKys7aWYoYil0cnl7Yi5ydW4oKX1jYXRjaChjKXtSdihjKX19dGhpcy5aYj0wfX19O1R2PWNsYXNzIGV4dGVuZHMgU3Z7fTtfLlV2PW5ldyBUdjtWdj1jbGFzcyBleHRlbmRzIFB2e2ZsdXNoKCl7dGhpcy5aYj09PTB8fHRoaXMuaXNGbHVzaGluZ3x8bXYodGhpcyl9fTsKV3Y9Y2xhc3MgZXh0ZW5kcyBWdntzY2hlZHVsZShhKXthLnZlcnNpb249PT0wP2EucnVuKCk6c3VwZXIuc2NoZWR1bGUoYSl9Zmx1c2goKXtpZih0aGlzLlpiIT09MClpZihfLkt1LlJpKXtsZXQgYT17RGQ6dGhpcy5EZCxaYjp0aGlzLlpiLGlzRmx1c2hpbmc6ITF9O3RoaXMuRGQ9W107dGhpcy5aYj0wO212KGEpfWVsc2UgdGhpcy5pc0ZsdXNoaW5nfHxtdih0aGlzKX19O18uY3Y9bmV3IFd2O1h2PWNsYXNzIGV4dGVuZHMgVnZ7fTtldj1uZXcgWHY7aHY9W18uY3ZdO2t2PVtfLlV2LGV2XTtfLll2PVsuLi5odiwuLi5rdl07WnY9W107eHU9KCk9PntfLmp2KCk7Zm9yKGxldCBhIG9mIFp2KWEoKX07dmFyIFJ2PV8uJGI7dmFyIG52PV8uZ3Uoe2RlZmF1bHRWYWx1ZTpudWxsfSwiaW0xTWtmIik7Xy4kdj17Li4uSnYsW0Z2XTohMCxlZmZlY3RUeXBlOmJ2LEVKOiEwLGhwOl8uZnYscnVuKCl7cXYodGhpcyl9LFZrKCl7RHUodGhpcyl9LGNvbXBvbmVudFN0YWNrOnZvaWQgMCxkZWJ1Z05hbWU6IltlZmZlY3RdIixkZXN0cm95KCl7aWYobnUodGhpcykpe2xldCBhPXRoaXMucHJvZHVjZXJzO2Zvcig7YSE9PXZvaWQgMDspYT11dShhKX10aGlzLlVnPXRoaXMuY29uc3VtZXJzPXRoaXMua2Y9dGhpcy5wcm9kdWNlcnM9dm9pZCAwO18uQ3UodGhpcyk7dGhpcy5QYj0hMX0sW1N5bWJvbC5kaXNwb3NlXSgpe3RoaXMuZGVzdHJveSgpfX07dmFyIGF3O2F3PXtpcDpydn07Xy55dj1PYmplY3QuY3JlYXRlKHsuLi5fLlh1LExlOiEwLC4uLmF3fSk7Xy56dj1PYmplY3QuY3JlYXRlKHsuLi5fLlh1LExlOiEwLC4uLmF3fSk7dmFyIHN2PXsuLi5fLiR2LGVmZmVjdFR5cGU6YnZ9O18uYnc9e1BIKCl7fSxlSygpe30sWUgoKXt9LFNvKCl7fSxRSCgpe30sSmkoKXt9LEdmKCl7fSxIZigpe30sS2koKXt9fTt2YXIgQXY9U3ltYm9sKCJLYiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgZXc7Xy5jdz1mdW5jdGlvbihhLC4uLmIpe2EuYXJnc3x8KGEuYXJncz1bXSk7QXJyYXkuaXNBcnJheShhLmFyZ3MpJiZhLmFyZ3MucHVzaCguLi5iKX07Xy5kdz1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gYSl7bGV0IGM9Xy5id1tiXSxkPWFbYl07Xy5id1tiXT0oLi4uZSk9PntjKC4uLmUpO2QoLi4uZSl9fX07Xy5mdz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsXy5FcSkmJmFbXy5FcV18fChhW18uRXFdPSsrZXcpfTtfLmd3PWZ1bmN0aW9uKGEsYixjKXthJiYhYyYmKGE9YS5wYXJlbnROb2RlKTtmb3IoYz0wO2E7KXtpZihiKGEpKXJldHVybiBhO2E9YS5wYXJlbnROb2RlO2MrK31yZXR1cm4gbnVsbH07Xy5odz1mdW5jdGlvbihhKXtyZXR1cm4gYT8oYT1hLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZSk/Xy5UYShhKTpudWxsOm51bGx9OwpfLml3PWZ1bmN0aW9uKGEpe2lmKF8uWnQpdGhyb3cgXy5VdShFcnJvcigiYWIiKSw0KTtyZXR1cm4gXy51dihiPT57Xy5ZdSgoKT0+e30pO2EoYil9LCExKX07ZXc9MDt2YXIganc7anc9e25hbWU6IjxSb290PiIscHJvcHM6e30sS3o6e30sZWZmZWN0czpbXSxkSTpbXSxnSTooKT0+e30sW1N5bWJvbCgiSmIiKV06ITB9OyhuZXcgV2Vha01hcCkuc2V0KGp3Lkt6LHtuYW1lOmp3Lm5hbWUscHJvcHM6ancucHJvcHN9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHN3LHl3LHR3LHJ3O18ua3c9ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPW51bGwmJmFbXy5PY109PT1fLlBjKXJldHVybiBhO2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBkPWFbXy5BY118MDtjPWR8YyYzMnxjJjI7YyE9PWQmJihhW18uQWNdPWMpO3JldHVybiBuZXcgYihhKX19O18ubHc9ZnVuY3Rpb24oYSl7dmFyIGI9YS5EYSxjPWJbXy5BY118MDtyZXR1cm4gXy5CYyhhLGMpP18uJGMoYSxiLGMpP18uYmQoYSxiLCEwKTpuZXcgYS5jb25zdHJ1Y3RvcihfLlpjKGIsYywhMSkpOmF9O18ubXc9ZnVuY3Rpb24oYSl7aWYoYS5qIT09Xy56YylyZXR1cm4hMTt2YXIgYj1hLkRhO2I9Xy5aYyhiLGJbXy5BY118MCk7YltfLkFjXXw9MjA0ODthLkRhPWI7YS5qPXZvaWQgMDthLm89dm9pZCAwO3JldHVybiEwfTtfLm53PWZ1bmN0aW9uKGEpe2lmKCFfLm13KGEpJiZfLkJjKGEsYS5EYVtfLkFjXXwwKSl0aHJvdyBFcnJvcigpO307Cl8ub3c9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uQWNdfDApO2ImMzImJiEoYiY0MDk2KSYmKGFbXy5BY109Ynw0MDk2KX07Xy5wdz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWMrKGU/MDotMSksaD1hLmxlbmd0aC0xO2lmKGg+PTErKGU/MDotMSkmJmY+PWgpe2xldCBrPWFbaF07aWYoayE9bnVsbCYmdHlwZW9mIGs9PT0ib2JqZWN0IiYmay5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4ga1tjXT1kLGJ9aWYoZjw9aClyZXR1cm4gYVtmXT1kLGI7ZCE9PXZvaWQgMCYmKGg9KGI/PyhiPWFbXy5BY118MCkpPj4xNCYxMDIzfHw1MzY4NzA5MTIsYz49aD9kIT1udWxsJiYoYVtoKyhlPzA6LTEpXT17W2NdOmR9KTphW2ZdPWQpO3JldHVybiBifTtfLnF3PWZ1bmN0aW9uKGEsYixjLGQpe18ubncoYSk7dmFyIGU9YS5EYTtfLnB3KGUsZVtfLkFjXXwwLGIsYyxkKTtyZXR1cm4gYX07c3c9ZnVuY3Rpb24oYSl7cmV0dXJuIHJ3W2FdfHwiIn07Cl8udXc9ZnVuY3Rpb24oYSl7YT10dy50ZXN0KGEpP2EucmVwbGFjZSh0dyxzdyk6YTthPWF0b2IoYSk7dmFyIGI9bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifTtfLnd3PWZ1bmN0aW9uKGEpe2lmKF8udnchPT1fLnZ3KXRocm93IEVycm9yKCJvIik7dmFyIGI9YS5qO2I9PW51bGx8fGIhPW51bGwmJmIgaW5zdGFuY2VvZiBVaW50OEFycmF5fHwodHlwZW9mIGI9PT0ic3RyaW5nIj9iPV8udXcoYik6KF8ueGEoYiksYj1udWxsKSk7cmV0dXJuIGI9PW51bGw/YjphLmo9Yn07Xy54dz1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJib29sZWFuIil0aHJvdyBFcnJvcigicmAiK18ueGEoYSkrImAiK2EpO3JldHVybiBhfTsKeXc9ZnVuY3Rpb24oKXt2YXIgYT1fLkRuKCk7dmFyIGI9W107Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fIi5jaGFyQXQoYVtjXSY2MykpO3JldHVybiBiLmpvaW4oIiIpfTt0dz0vWy1fLl0vZztydz17Ii0iOiIrIixfOiIvIiwiLiI6Ij0ifTtfLnZ3PXt9O18uenc9bmV3IF8uSSgid2ViQ29tbWFuZE1ldGFkYXRhIik7Xy5Bdz1uZXcgXy5JKCJ3YXRjaEVuZHBvaW50Iik7Xy5Cdz1jbGFzcyBleHRlbmRzIF8ucG17Y29uc3RydWN0b3IoYSl7c3VwZXIoYXJndW1lbnRzKTt0aGlzLmNzbj1hfX07Xy5Ddz1uZXcgXy5xbSgic2NyZWVuLWNyZWF0ZWQiLF8uQncpO18uRHc9eXc7Xy5Fdz1uZXcgTWFwO18uRnc9bmV3IE1hcDtfLkd3PW5ldyBNYXA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBRdyxSdyxhYWEsYmFhLFh3LFN3LGF4LEx3LGNhYSxZdyxadztfLkh3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhLGIsdm9pZCAwKX07Xy5Jdz1mdW5jdGlvbihhKXthPUVycm9yKGEpO18uQmIoYSwid2FybmluZyIpO3JldHVybiBhfTtfLkp3PWZ1bmN0aW9uKGEpe2E9PW51bGwmJihhPXZvaWQgMCk7cmV0dXJuIGF9O18uS3c9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1fLkp3KGMpO18ucXcoYSxiLGMsZCk7YyYmIV8uQmMoYykmJl8ub3coYS5EYSk7cmV0dXJuIGF9O18uTXc9ZnVuY3Rpb24oKXtyZXR1cm4gTHd8fChMdz1uZXcgXy5SYyhudWxsLF8udncpKX07Cl8uTnc9ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsKWlmKHR5cGVvZiBhPT09InN0cmluZyIpYT1hP25ldyBfLlJjKGEsXy52dyk6Xy5NdygpO2Vsc2UgaWYoYS5jb25zdHJ1Y3RvciE9PV8uUmMpaWYoYSE9bnVsbCYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYT1hLmxlbmd0aD9uZXcgXy5SYyhuZXcgVWludDhBcnJheShhKSxfLnZ3KTpfLk13KCk7ZWxzZXtpZighYil0aHJvdyBFcnJvcigpO2E9dm9pZCAwfXJldHVybiBhfTtfLk93PWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciIpdGhyb3cgXy5JdygiaW50MzIiKTtpZighKDAsXy53cikoYSkpdGhyb3cgXy5JdygiaW50MzIiKTtyZXR1cm4gYXwwfTtfLlB3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP2E6Xy5PdyhhKX07ClF3PWZ1bmN0aW9uKGEpe3ZhciBiPV8ucm0oKTtpZighYilyZXR1cm4gMDt2YXIgYz1iLnN1YnNjcmliZShfLkN3LnRvU3RyaW5nKCksKGQsZSk9Pnt2YXIgZj1fLnNhKCJ5dFB1YnN1YjJQdWJzdWIyU2tpcFN1YktleSIpO2YmJmY9PWN8fChmPSgpPT57aWYoXy5Lc1tjXSl0cnl7aWYoZSYmXy5DdyBpbnN0YW5jZW9mIF8ucW0mJl8uQ3chPWQpdHJ5e3t2YXIgaD1fLkN3Lmosaz1lO2lmKCFrLmFyZ3N8fCFrLnZlcnNpb24pdGhyb3cgRXJyb3IoInBhIik7bGV0IGw7dHJ5e2lmKCFoLkFlKXtsZXQgbT1uZXcgaDtoLkFlPW0udmVyc2lvbn1sPWguQWV9Y2F0Y2gobSl7fWlmKCFsfHxrLnZlcnNpb24hPWwpdGhyb3cgRXJyb3IoInFhIik7dHJ5e2U9UmVmbGVjdC5jb25zdHJ1Y3QoaCxfLnliKGsuYXJncykpfWNhdGNoKG0pe3Rocm93IG0ubWVzc2FnZT0ieXQucHVic3ViMi5EYXRhLmRlc2VyaWFsaXplKCk6ICIrbS5tZXNzYWdlLG07fX19Y2F0Y2gobCl7dGhyb3cgbC5tZXNzYWdlPSJ5dC5wdWJzdWIyLnB1YnN1YjIgY3Jvc3MtYmluYXJ5IGNvbnZlcnNpb24gZXJyb3IgZm9yICIrCl8uQ3cudG9TdHJpbmcoKSsiOiAiK2wubWVzc2FnZSxsO31hLmNhbGwod2luZG93LGUpfWNhdGNoKGwpe18uVWkobCl9fSxfLk1zW18uQ3cudG9TdHJpbmcoKV0/Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlIik/Xy5qZi5wYihmKTpfLm1qKGYsMCk6ZigpKX0pO18uS3NbY109ITA7Xy5Mc1tfLkN3LnRvU3RyaW5nKCldfHwoXy5Mc1tfLkN3LnRvU3RyaW5nKCldPVtdKTtfLkxzW18uQ3cudG9TdHJpbmcoKV0ucHVzaChjKTtyZXR1cm4gY307Unc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5ybSgpO2ImJih0eXBlb2YgYT09PSJudW1iZXIiJiYoYT1bYV0pLF8udGIoYSxjPT57Yi51bnN1YnNjcmliZUJ5S2V5KGMpO2RlbGV0ZSBfLktzW2NdfSkpfTthYWE9ZnVuY3Rpb24oKXt2YXIgYT1TdyxiPVF3KGZ1bmN0aW9uKGMpe2EuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyk7UncoYil9KTtyZXR1cm4gYn07Xy5Vdz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uVHcoe3RyYWNraW5nUGFyYW1zOmF9KX07Cl8uVnc9ZnVuY3Rpb24oYT0wKXtyZXR1cm4oYT1fLmdxKGEpKT9uZXcgXy5Udyh7dmVUeXBlOmEseW91dHViZURhdGE6dm9pZCAwLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTpudWxsfTtiYWE9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhfLncoImNsaWVudC1zY3JlZW4tbm9uY2Utc3RvcmUiLHt9KSkuZmlsdGVyKGE9PmEhPT12b2lkIDApfTtfLld3PWZ1bmN0aW9uKGEsYil7Xy54KCJsb2dfc2VxdWVuY2VfaW5mb19vbl9nZWxfd2ViIikmJihhLnNlcXVlbmNlR3JvdXA9Yik7cmV0dXJuIGF9O1h3PWZ1bmN0aW9uKGEsYil7cmV0dXJuYCR7YS5nZXRBc0pzb24oKS52ZVR5cGV9JHthLmdldEFzSnNvbigpLnZlQ291bnRlcn0ke2J9YH07U3c9ZnVuY3Rpb24oYSl7aWYoWXcpe2ZvcihsZXQgYiBvZiBZdyliLnBheWxvYWQmJihiLnBheWxvYWQuY3NuPWEuY3NuLF8uRXAoYi5wYXlsb2FkTmFtZSxiLnBheWxvYWQsYi5vcHRpb25zKSk7WXcubGVuZ3RoPTB9Wnc9MH07Cl8uJHc9ZnVuY3Rpb24oYSxiLGMpe1l3LnB1c2goe3BheWxvYWROYW1lOmEscGF5bG9hZDpjLEpKOnZvaWQgMCxvcHRpb25zOmJ9KTtad3x8KFp3PWFhYSgpKX07Xy5ieD1mdW5jdGlvbihhLGIsYyxkLGU9ITEsZj17fSl7YXgoYSxiLGMsW2RdLGUsZil9OwpheD1mdW5jdGlvbihhLGIsYyxkLGU9ITEsZj17fSl7T2JqZWN0LmFzc2lnbihmLF8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYil8fHZvaWQgMH0sYikpO2ZvcihsZXQgayBvZiBkKXt2YXIgaD1rLmdldEFzSnNvbigpOyhfLnBkKGgpfHwhaC50cmFja2luZ1BhcmFtcyYmIWgudmVUeXBlKSYmXy5JcChFcnJvcigiTGIiKSk7aWYoXy54KCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpKXtsZXQgbD1YdyhrLGIpO2lmKGgudmVUeXBlJiYhXy5Gdy5oYXMobCkmJiFfLkd3LmhhcyhsKSYmIWUpe2lmKCFfLngoImlsX2F0dGFjaF9jYWNoZV9saW1pdCIpfHxfLkV3LnNpemU8MUUzKXtfLkV3LnNldChsLFthLGIsYyxrXSk7cmV0dXJufV8ueCgiaWxfYXR0YWNoX2NhY2hlX2xpbWl0IikmJl8uRXcuc2l6ZT4xRTMmJl8uSXAobmV3IF8uWGooIklMIEF0dGFjaCBjYWNoZSBleGNlZWRlZCBsaW1pdCIpKX1oPVh3KGMsYik7Xy5Fdy5oYXMoaCk/Xy5jeChjLGIpOl8uR3cuc2V0KGgsITApfX1kPQpkLmZpbHRlcihrPT57ay5jc24hPT1iPyhrLmNzbj1iLGs9ITApOms9ITE7cmV0dXJuIGt9KTtjPXtjc246YixwYXJlbnRWZTpjLmdldEFzSnNvbigpLGNoaWxkVmVzOl8uSHcoZCxrPT5rLmdldEFzSnNvbigpKX07Yj09PSJVTkRFRklORURfQ1NOIj9fLiR3KCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGYsYyk6YT9fLkNwKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGMsYSxmKTpfLkVwKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGMsZil9O18uY3g9ZnVuY3Rpb24oYSxiKXthPVh3KGEsYik7Xy5Fdy5oYXMoYSkmJihiPV8uRXcuZ2V0KGEpfHxbXSxfLmJ4KGJbMF0sYlsxXSxiWzJdLGJbM10sITApLF8uRXcuZGVsZXRlKGEpKX07Xy5keD1mdW5jdGlvbihhLGIpe2lmKF8ueCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSl7dmFyIGM9WHcoYSxiKTtfLkZ3LnNldChjLCEwKTtfLmN4KGEsYil9fTsKXy5leD1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtfLmR4KGMsYik7ZD1kfHwiSU5URVJBQ1RJT05fTE9HR0lOR19HRVNUVVJFX1RZUEVfR0VORVJJQ19DTElDSyI7Zj1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGIpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6aH0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxnZXN0dXJlVHlwZTpkfTtlJiYoYy5jbGllbnREYXRhPWUpO2I9PT0iVU5ERUZJTkVEX0NTTiI/Xy4kdygidmlzdWFsRWxlbWVudEdlc3R1cmVkIixmLGMpOmE/Xy5DcCgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixjLGEsZik6Xy5FcCgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixjLGYpfTtfLmZ4PWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtfLmV4KGEsYixjLHZvaWQgMCxkLGUsZil9O18uaHg9ZnVuY3Rpb24oKXtneC5pbnN0YW5jZXx8KGd4Lmluc3RhbmNlPW5ldyBneCk7cmV0dXJuIGd4Lmluc3RhbmNlfTsKXy5qeD1mdW5jdGlvbihhLGIsYyxkPTAsZSl7YS5vLmhhcyhlKXx8YS5vLnNldChlLG5ldyBTZXQpO3ZhciBmPWN8fF8uVncoZCk7Zj1gJHtiLnRvU3RyaW5nKCl9fCR7Zj9mLnRvU3RyaW5nKCk6IiJ9YDthLm8uZ2V0KGUpLmhhcyhmKXx8KF8uaXgoYSxiLGMsZCksYS5vLmdldChlKS5hZGQoZikpfTtfLml4PWZ1bmN0aW9uKGEsYixjLGQ9MCl7cmV0dXJuIF8uVmkoKCk9PntpZihhLmouaGFzKGQpKXJldHVybiBhLlkucHVzaChbYixjXSksITA7dmFyIGU9Xy5pcShkKSxmPWN8fF8uVncoZCk7aWYoZSYmZil7aWYoXy54KCJjb21iaW5lX3ZlX2dyYWZ0cyIpKXtsZXQgaD1hLnYuZ2V0KGYudG9TdHJpbmcoKSk7aD9oLnB1c2goYik6KGEuSS5zZXQoZi50b1N0cmluZygpLGYpLGEudi5zZXQoZi50b1N0cmluZygpLFtiXSkpO2EuWnx8KGEuWj1fLllqKCgpPT57Xy5reChhLGUpfSwxMjAwKSl9ZWxzZSBfLmJ4KGEuY2xpZW50LGUsZixiKTtyZXR1cm4hMH1yZXR1cm4hMX0pKCl9OwpfLmx4PWZ1bmN0aW9uKGEsYixjLGQ9MCl7cmV0dXJuIF8uVmkoKCk9Pnt2YXIgZT1fLlV3KGIpLGY9Xy5pcShkKTtmJiYhYS5qLmhhcyhkKT9fLmp4KGEsZSxjLGQsZik6Xy5peChhLGUsYyxkKTtyZXR1cm4gZX0pKCl9O18ua3g9ZnVuY3Rpb24oYSxiKXtpZihiPT09dm9pZCAwKXtsZXQgYz1iYWEoKTtmb3IobGV0IGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdIT09dm9pZCAwJiZfLmt4KGEsY1tkXSl9ZWxzZSBhLnYuZm9yRWFjaCgoYyxkKT0+eyhkPWEuSS5nZXQoZCkpJiZheChhLmNsaWVudCxiLGQsYyl9KSxhLnYuY2xlYXIoKSxhLkkuY2xlYXIoKSxhLlo9dm9pZCAwfTsKXy5teD1mdW5jdGlvbihhLGIsYyxkPTApe3ZhciBlPV8uaXEoZCk7Yj1ifHxfLlZ3KGQpO2UmJmImJihhPWEuY2xpZW50LGQ9Xy5Xdyh7Y3R0QXV0aEluZm86Xy5rcShlKXx8dm9pZCAwfSxlKSxjPXtjc246ZSx2ZTpiLmdldEFzSnNvbigpLGNsaWVudERhdGE6Y30sZT09PSJVTkRFRklORURfQ1NOIj9fLiR3KCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixkLGMpOmE/Xy5DcCgidmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZCIsYyxhLGQpOl8uRXAoInZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLGMsZCkpfTsKXy5SYz1jbGFzc3tvKCl7dmFyIGE9dGhpcy5qO2lmKGE9PW51bGwpYT0iIjtlbHNlIGlmKHR5cGVvZiBhIT09InN0cmluZyIpe2xldCBiPSIiLGM9MCxkPWEubGVuZ3RoLTEwMjQwO2Zvcig7YzxkOyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShjLGMrPTEwMjQwKSk7Yis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGM/YS5zdWJhcnJheShjKTphKTthPXRoaXMuaj1idG9hKGIpfXJldHVybiBhfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5qPT1udWxsfXNpemVCeXRlcygpe3ZhciBhPV8ud3codGhpcyk7cmV0dXJuIGE/YS5sZW5ndGg6MH1jb25zdHJ1Y3RvcihhLGIpe2lmKGIhPT1fLnZ3KXRocm93IEVycm9yKCJvIik7dGhpcy5qPWE7aWYoYSE9bnVsbCYmYS5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJuIik7fX07CmNhYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9c2V0VHJhY2tpbmdQYXJhbXMoYSl7cmV0dXJuIF8ucXcodGhpcywxLF8uTncoYSwhMSkpfX07Cl8uVHc9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9Z2V0QXNKc29uKCl7dmFyIGE9e307dGhpcy5qLnRyYWNraW5nUGFyYW1zIT09dm9pZCAwP2EudHJhY2tpbmdQYXJhbXM9dGhpcy5qLnRyYWNraW5nUGFyYW1zOihhLnZlVHlwZT10aGlzLmoudmVUeXBlLHRoaXMuai52ZUNvdW50ZXIhPT12b2lkIDAmJihhLnZlQ291bnRlcj10aGlzLmoudmVDb3VudGVyKSx0aGlzLmouZWxlbWVudEluZGV4IT09dm9pZCAwJiYoYS5lbGVtZW50SW5kZXg9dGhpcy5qLmVsZW1lbnRJbmRleCkpO3RoaXMuai5kYXRhRWxlbWVudCE9PXZvaWQgMCYmKGEuZGF0YUVsZW1lbnQ9dGhpcy5qLmRhdGFFbGVtZW50LmdldEFzSnNvbigpKTt0aGlzLmoueW91dHViZURhdGEhPT12b2lkIDAmJihhLnlvdXR1YmVEYXRhPXRoaXMuai55b3V0dWJlRGF0YSk7dGhpcy5qLmlzQ291bnRlcmZhY3R1YWwmJihhLmlzQ291bnRlcmZhY3R1YWw9ITApO3JldHVybiBhfWdldEFzSnNwYigpe3ZhciBhPW5ldyBjYWE7dGhpcy5qLnRyYWNraW5nUGFyYW1zIT09CnZvaWQgMD9hLnNldFRyYWNraW5nUGFyYW1zKHRoaXMuai50cmFja2luZ1BhcmFtcyk6KHRoaXMuai52ZVR5cGUhPT12b2lkIDAmJl8ucXcoYSwyLF8uUHcodGhpcy5qLnZlVHlwZSkpLHRoaXMuai52ZUNvdW50ZXIhPT12b2lkIDAmJl8ucXcoYSw2LF8uUHcodGhpcy5qLnZlQ291bnRlcikpLHRoaXMuai5lbGVtZW50SW5kZXghPT12b2lkIDAmJl8ucXcoYSwzLF8uUHcodGhpcy5qLmVsZW1lbnRJbmRleCkpLHRoaXMuai5pc0NvdW50ZXJmYWN0dWFsJiZfLnF3KGEsNSxfLnh3KCEwKSkpO2lmKHRoaXMuai5kYXRhRWxlbWVudCE9PXZvaWQgMCl7dmFyIGI9dGhpcy5qLmRhdGFFbGVtZW50LmdldEFzSnNwYigpO18uS3coYSw3LGIpfXRoaXMuai55b3V0dWJlRGF0YSE9PXZvaWQgMCYmXy5LdyhhLDgsdGhpcy5qLmpzcGJZb3V0dWJlRGF0YSk7cmV0dXJuIGF9dG9TdHJpbmcoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRBc0pzb24oKSl9aXNDbGllbnRWZSgpe3JldHVybiF0aGlzLmoudHJhY2tpbmdQYXJhbXMmJgohIXRoaXMuai52ZVR5cGV9Z2V0TG9nZ2luZ0RpcmVjdGl2ZXMoKXtyZXR1cm4gdGhpcy5qLmxvZ2dpbmdEaXJlY3RpdmVzfX07WXc9W107Wnc9MDtfLm54PW5ldyBfLkkoImludGVyYWN0aW9uTG9nZ2luZ0NvbW1hbmRNZXRhZGF0YSIpO18uZGFhPW5ldyBfLkkoIndhdGNoUGxheWxpc3RFbmRwb2ludCIpO18uZWFhPW5ldyBfLkkoInJlc29sdmVVcmxDb21tYW5kTWV0YWRhdGEiKTtfLm94PVN5bWJvbCgiTWIiKTtfLnB4PW5ldyBXZWFrTWFwO3ZhciBneD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT1bXTt0aGlzLk09W107dGhpcy5LPW5ldyBNYXA7dGhpcy5nYT1uZXcgTWFwO3RoaXMuRD1bXTt0aGlzLlU9W107dGhpcy52PW5ldyBNYXA7dGhpcy5JPW5ldyBNYXA7dGhpcy5vPW5ldyBNYXA7dGhpcy5qPW5ldyBTZXQ7dGhpcy5oYT1uZXcgTWFwfUNmKGEsYixjPTApe2lmKCFhKXJldHVybiExO2M9Xy5pcShjKTtpZighYylyZXR1cm4hMTtfLmZ4KHRoaXMuY2xpZW50LGMsXy5VdyhhKSxiKTtyZXR1cm4hMH1jbGlja0NvbW1hbmQoYSxiLGM9MCl7cmV0dXJuIHRoaXMuQ2YoYS5jbGlja1RyYWNraW5nUGFyYW1zLGIsYyl9c3RhdGVDaGFuZ2VkKGEsYixjPTApe3RoaXMudmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChfLlV3KGEpLGIsYyl9dmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChhLGIsYz0wKXtjPT09MCYmdGhpcy5qLmhhcyhjKT90aGlzLk0ucHVzaChbYSxiXSk6Xy5teCh0aGlzLGEsYixjKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeXgsengsZ2FhLEh4LEl4LGZhYSxBeCxDeDtfLnF4PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5HYShiLDMsYyl9O18ucng9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5qZi5HYShhLDIsYil9O18uc3g9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJzdHJpbmciJiZhKWE9K2E7ZWxzZSBpZih0eXBlb2YgYSE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4oMCxfLndyKShhKT9hfDA6dm9pZCAwfTtfLnR4PWZ1bmN0aW9uKGEsYixjPTApe3JldHVybiBfLnN4KF8uZWQoYSxiKSk/P2N9O18udXg9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBoPWZhYSsrO3JldHVybiBuZXcgXy5Udyh7dmVUeXBlOmEsdmVDb3VudGVyOmgsZWxlbWVudEluZGV4OmMsZGF0YUVsZW1lbnQ6Yix5b3V0dWJlRGF0YTpkLGpzcGJZb3V0dWJlRGF0YTplLGxvZ2dpbmdEaXJlY3RpdmVzOmZ9KX07Cl8udng9ZnVuY3Rpb24oYSxiLGMsZD0hMSxlLGYpe3ZhciBoPWQ/MTY6ODtkPV8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYil8fHZvaWQgMCxlbmRPZlNlcXVlbmNlOmQsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6Zn0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxldmVudFR5cGU6aH07ZSYmKGMuY2xpZW50RGF0YT1lKTtiPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRIaWRkZW4iLGQsYyk6YT9fLkNwKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixjLGEsZCk6Xy5FcCgidmlzdWFsRWxlbWVudEhpZGRlbiIsYyxkKX07Cl8ud3g9ZnVuY3Rpb24oYSxiLGMsZCxlKXtfLmR4KGMsYik7ZT1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGIpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6ZX0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxldmVudFR5cGU6MX07ZCYmKGMuY2xpZW50RGF0YT1kKTtiPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRTaG93biIsZSxjKTphP18uQ3AoInZpc3VhbEVsZW1lbnRTaG93biIsYyxhLGUpOl8uRXAoInZpc3VhbEVsZW1lbnRTaG93biIsYyxlKX07Xy54eD1mdW5jdGlvbihhKXtpZihhPT09d2luZG93KXJldHVybiBudWxsO3ZhciBiPWEucGFyZW50RWxlbWVudDtyZXR1cm4gYj9iOnR5cGVvZiBTaGFkb3dSb290IT09InVuZGVmaW5lZCImJmEuZ2V0Um9vdE5vZGUhPW51bGwmJihhPWEuZ2V0Um9vdE5vZGUoKSxhIGluc3RhbmNlb2YgU2hhZG93Um9vdCk/YS5ob3N0OndpbmRvd307Cnl4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLmlxKGMpO3JldHVybiBhLmNzbj09PW51bGx8fGQ9PT1hLmNzbnx8Yz9kOihhPW5ldyBfLlhqKCJWaXNpYmlsaXR5TG9nZ2VyIGNhbGxlZCBiZWZvcmUgbmV3U2NyZWVuIix7Y2FsbGVyOmIudGFnTmFtZSxwcmV2aW91c19jc246YS5jc24sY3VycmVudF9jc246ZH0pLF8uSXAoYSksbnVsbCl9O3p4PWZ1bmN0aW9uKGEsYil7YT1hLmdldERhdGEoYik7cmV0dXJuIE1hdGguZmxvb3IoTnVtYmVyKGEmJmEubG9nZ2luZ0RpcmVjdGl2ZXMmJmEubG9nZ2luZ0RpcmVjdGl2ZXMudmlzaWJpbGl0eSYmYS5sb2dnaW5nRGlyZWN0aXZlcy52aXNpYmlsaXR5LnR5cGVzfHwiIikpfHwxfTtfLkJ4PWZ1bmN0aW9uKCl7QXguaW5zdGFuY2V8fChBeC5pbnN0YW5jZT1uZXcgQXgpO3JldHVybiBBeC5pbnN0YW5jZX07Xy5EeD1mdW5jdGlvbigpe0N4Lmluc3RhbmNlfHwoQ3guaW5zdGFuY2U9bmV3IEN4KX07Cl8uRXg9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIF8uVmkoKCk9PntpZighYi52ZVR5cGUpcmV0dXJuIF8uSHAobmV3IF8uWGooIkVycm9yOiBUcnlpbmcgdG8gZ3JhZnQgYSBjbGllbnQgVkUgd2l0aG91dCBhIHZlVHlwZS4iKSksbnVsbDtpZihiLnZpc2liaWxpdHlUeXBlcyl7dmFyIGU9Yi52aXNpYmlsaXR5VHlwZXMucmVkdWNlKChmLGgpPT5mfGgpO2U9e3Zpc2liaWxpdHk6e3R5cGVzOlN0cmluZyhlKX19fWU9Xy51eChiLnZlVHlwZSxiLnZpc3VhbEVsZW1lbnQsYi5lbGVtZW50SW5kZXgsYi5jbGllbnRZb3VUdWJlRGF0YSx2b2lkIDAsZSk7cmV0dXJuIF8uaXgoYSxlLGMsZCk/ZTpudWxsfSkoKX07Xy5GeD1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9OwpfLkd4PWZ1bmN0aW9uKGEsYil7YT1hLmpmPz9hO2ZvcihsZXQgYyBvZiBhLnZpc2liaWxpdHlNb25pdG9yS2V5c3x8W10pYi5yZihjKTthLnZpc2liaWxpdHlNb25pdG9yS2V5cz12b2lkIDB9O18uSng9ZnVuY3Rpb24oYSxiKXtpZihfLmlxKCkpe2lmKF8ueCgia2V2bGFyX3ZpbWlvX3VzZV9zaGFyZWRfbW9uaXRvciIpKUh4KGEsYi5kYXRhKTtlbHNlIGlmKCFIeChhLGIuZGF0YSkpcmV0dXJuO3ZhciBjPWIuZGF0YSxkPUl4KGMpO2lmKF8ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSlfLkd4KGEsYi5vYnNlcnZlcik7ZWxzZXt2YXIgZT1hLmpmPz9hO2UudHJhY2tlZFBhcmFtcyYmZS50cmFja2VkUGFyYW1zIT09ZCYmXy5HeChhLGIub2JzZXJ2ZXIpfWU9YS5qZj8/YTshY3x8ZS5kYXRhJiZlLmRhdGE9PT1jfHwoZS5kYXRhPWMpO2dhYShhLGIpO2UudHJhY2tlZFBhcmFtcz1kfX07CmdhYT1mdW5jdGlvbihhLGIpe3ZhciBjPWIub2JzZXJ2ZXI7aWYoIWMmJl8ueCgid2ViX3NraXBfbWlzc2luZ192aW1pb19vYnNlcnZlciIpKV8uSXAobmV3IF8uWGooIlZpc2liaWxpdHlPYnNlcnZlciBpcyBub3QgZGVmaW5lZC4iLGEudGFnTmFtZSxhLnRyYWNrZWRQYXJhbXMsYi5kYXRhPy50cmFja2luZ1BhcmFtcyxiLmRhdGE/LmxvZ2dpbmdEaXJlY3RpdmVzKSk7ZWxzZXt2YXIgZD1iLmxheWVyLGU9Yi5OYnx8KCgpPT57fSksZj1iLkxqLGg9YS5qZj8/YSxrPVtdO2IuZWImJmsucHVzaChjLm9ic2VydmUoYSwoKT0+e2IueEEmJmIueEEoKXx8KF8uRHgoKSxfLlZpKF8uQngoKS5ZKS5iaW5kKF8uQngoKSkoaCx2b2lkIDAsZCw3KSk7ZSghMCl9LGIuZWIpKTtiLk5jJiZrLnB1c2goYy5vYnNlcnZlKGEsKCk9PntfLkR4KCk7Xy5WaShfLkJ4KCkuSSkuYmluZChfLkJ4KCkpKGgsdm9pZCAwLGQsNyk7ZSghMSl9LGIuTmMpKTtiLkxoJiZmJiZrLnB1c2goYy5vYnNlcnZlKGEsKCk9Pgp7ZigpfSxiLkxoKSk7aC52aXNpYmlsaXR5TW9uaXRvcktleXM9a319OwpIeD1mdW5jdGlvbihhLGIpe2E9YS5qZj8/YTtpZihhLnZpc3VhbEVsZW1lbnQmJiFiKXJldHVybiEwO2lmKCFiKXJldHVybiExO3ZhciBjPSExO18ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSYmKGM9ISFiLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSk7dmFyIGQ9SXgoYik7aWYoIWQmJiFjKXJldHVybiExO18ueCgibXdlYl9jb21wb25lbnRfdmlzaWJpbGl0eV9sb2dnaW5nIikmJihhLnZlQ29udGFpbmVyfHwoYS52ZUNvbnRhaW5lcj17fSksYS52ZUNvbnRhaW5lci50cmFja2luZ1BhcmFtcz1kKTtpZihhLnRyYWNrZWRQYXJhbXMmJmEudHJhY2tlZFBhcmFtcz09PWR8fF8ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSYmYS52aXN1YWxFbGVtZW50Py5pc0NsaWVudFZlKCkmJihjPWEudmlzdWFsRWxlbWVudD8uZ2V0QXNKc3BiKCksXy50eChjLDIpPT09Yi5sb2dnaW5nRGlyZWN0aXZlcz8uY2xpZW50VmVTcGVjPy51aVR5cGUmJgpfLnR4KGMsMywtMSk9PT1iLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LmVsZW1lbnRJbmRleCkpcmV0dXJuITE7Xy54KCJlbmFibGVfY2xpZW50X3ZlX3NwZWNfbG9nZ2luZyIpJiYhYS52aXN1YWxFbGVtZW50JiZiLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSYmKGM9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMudWlUeXBlLGQ9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMuZWxlbWVudEluZGV4LGI9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMuY2xpZW50WW91dHViZURhdGEsYS52aXN1YWxFbGVtZW50PV8uRXgoXy5oeCgpLHt2ZVR5cGU6YyxlbGVtZW50SW5kZXg6ZCxjbGllbnRZb3VUdWJlRGF0YTpifSkpO3JldHVybiEwfTsKSXg9ZnVuY3Rpb24oYSl7aWYoYT8ucmVuZGVyZXJDb250ZXh0KXtsZXQgYj1fLkIoYS5yZW5kZXJlckNvbnRleHQsXy5LeCk7aWYoYj8ubG9nZ2luZ0RpcmVjdGl2ZXMpcmV0dXJuIGIubG9nZ2luZ0RpcmVjdGl2ZXMudHJhY2tpbmdQYXJhbXN9cmV0dXJuIGE/LmxvZ2dpbmdEaXJlY3RpdmVzP2EubG9nZ2luZ0RpcmVjdGl2ZXMudHJhY2tpbmdQYXJhbXM6YT8udHJhY2tpbmdQYXJhbXN9O2ZhYT0xOwpBeD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD1uZXcgU2V0O3RoaXMuQj1uZXcgU2V0O3RoaXMubz1uZXcgTWFwO3RoaXMuY2xpZW50PXZvaWQgMDt0aGlzLmNzbj1udWxsfUsoKXt0aGlzLmNsZWFyKCk7dGhpcy5jc249Xy5pcSgpfWNsZWFyKCl7dGhpcy5ELmNsZWFyKCk7dGhpcy5CLmNsZWFyKCk7dGhpcy5vLmNsZWFyKCk7dGhpcy5jc249bnVsbH1ZKGEsYixjLGQpe3ZhciBlPXRoaXMuaihhKSxmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6ZTtiPXRoaXMuRC5oYXMoZik7dmFyIGg9dGhpcy5vLmdldChmKTt0aGlzLkQuYWRkKGYpO3RoaXMuby5zZXQoZiwhMCk7YS5pbXByZXNzaW9uTG9nJiYhYiYmYS5pbXByZXNzaW9uTG9nKCk7aWYoZXx8YS52aXN1YWxFbGVtZW50KWlmKGM9eXgodGhpcyxhLGMpKXt2YXIgaz0hIXRoaXMuZ2V0RGF0YShhKT8ubG9nZ2luZ0RpcmVjdGl2ZXM7aWYoengodGhpcyxhKXx8aylmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Cl8uVXcoZSksYS5pbnRlcmFjdGlvbkxvZ2dpbmdDbGllbnREYXRhfHwoYS5pbnRlcmFjdGlvbkxvZ2dpbmdDbGllbnREYXRhPXt9KSxlPWEuaW50ZXJhY3Rpb25Mb2dnaW5nQ2xpZW50RGF0YSxrfHxiP3p4KHRoaXMsYSkmND9ofHwoYT10aGlzLmNsaWVudCxfLmR4KGYsYyksZD1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGMpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6dm9pZCAwfSxjKSxiPXtjc246Yyx2ZTpmLmdldEFzSnNvbigpLGV2ZW50VHlwZTo0fSxlJiYoYi5jbGllbnREYXRhPWUpLGM9PT0iVU5ERUZJTkVEX0NTTiI/Xy4kdygidmlzdWFsRWxlbWVudFNob3duIixkLGIpOmE/Xy5DcCgidmlzdWFsRWxlbWVudFNob3duIixiLGEsZCk6Xy5FcCgidmlzdWFsRWxlbWVudFNob3duIixiLGQpKTp6eCh0aGlzLGEpJjEmJiFiJiZfLnd4KHRoaXMuY2xpZW50LGMsZixlLGQpOl8ud3godGhpcy5jbGllbnQsYyxmLGUsZCl9fUkoYSxiLGMsZCl7dmFyIGU9dGhpcy5qKGEpLApmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6ZTtiPXRoaXMuQi5oYXMoZik7dmFyIGg9dGhpcy5vLmdldChmKTt0aGlzLkIuYWRkKGYpO3RoaXMuby5zZXQoZiwhMSk7aWYoaD09PSExKXJldHVybiEwO2lmKCFlJiYhYS52aXN1YWxFbGVtZW50KXJldHVybiExO2M9eXgodGhpcyxhLGMpO2lmKCFjfHwhengodGhpcyxhKSYmdGhpcy5nZXREYXRhKGEpPy5sb2dnaW5nRGlyZWN0aXZlcylyZXR1cm4hMTtlPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Xy5VdyhlKTt6eCh0aGlzLGEpJjg/Xy52eCh0aGlzLmNsaWVudCxjLGUsdm9pZCAwLHZvaWQgMCxkKTp6eCh0aGlzLGEpJjImJiFiJiYoYT10aGlzLmNsaWVudCxkPV8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYyl8fHZvaWQgMCxhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTpkfSxjKSxiPXtjc246Yyx2ZTplLmdldEFzSnNvbigpLGV2ZW50VHlwZToyfSxjPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRIaWRkZW4iLApkLGIpOmE/Xy5DcCgidmlzdWFsRWxlbWVudEhpZGRlbiIsYixhLGQpOl8uRXAoInZpc3VhbEVsZW1lbnRIaWRkZW4iLGIsZCkpO3JldHVybiEwfWooYSl7dmFyIGI9dGhpcy5nZXREYXRhKGEpO3JldHVybiBfLngoImlsX3VzZV92aWV3X21vZGVsX2xvZ2dpbmdfY29udGV4dCIpJiZiPy5jb250ZXh0Py5sb2dnaW5nQ29udGV4dD8ubG9nZ2luZ0RpcmVjdGl2ZXM/Yi5jb250ZXh0LmxvZ2dpbmdDb250ZXh0LmxvZ2dpbmdEaXJlY3RpdmVzLnRyYWNraW5nUGFyYW1zfHwiIjpiPy5yZW5kZXJlckNvbnRleHQ/LmxvZ2dpbmdDb250ZXh0Py5sb2dnaW5nRGlyZWN0aXZlcz9iLnJlbmRlcmVyQ29udGV4dC5sb2dnaW5nQ29udGV4dC5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtc3x8IiI6Yj8ubG9nZ2luZ0RpcmVjdGl2ZXM/Yi5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtc3x8IiI6YS52ZUNvbnRhaW5lcj8udHJhY2tpbmdQYXJhbXM/YS52ZUNvbnRhaW5lci50cmFja2luZ1BhcmFtczoKYj8udHJhY2tpbmdQYXJhbXN8fCIifXYoYSl7aWYoXy54KCJ3aXpfbmV4dF9jbGllbnRfdmVfcGFyZW50X2ZpeCIpKXt2YXIgYj10aGlzLmooYSk7cmV0dXJuIGEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Yj9fLlV3KGIpOihhPV8ueHgoYSkpP3RoaXMudihhKTpudWxsfWI9dGhpcy5qKGEpO3JldHVybiBhLnZpc3VhbEVsZW1lbnQ/YS52aXN1YWxFbGVtZW50OmI/Xy5VdyhiKTphLnBhcmVudEVsZW1lbnQ/dGhpcy52KGEucGFyZW50RWxlbWVudCk6bnVsbH1nZXREYXRhKGEpe3ZhciBiPWEuZGF0YXx8YS5wcm9wcz8uZGF0YTtpZighYnx8YS5pc1dlYkNvbXBvbmVudFdyYXBwZXIpYj1fLnB4LmdldChhKT8uW18ub3hdO3JldHVybiBifX07Q3g9Y2xhc3N7Y2xlYXIoKXtfLlZpKF8uQngoKS5jbGVhcikuYmluZChfLkJ4KCkpKCl9fTtfLkt4PW5ldyBfLkkoImxvZ2dpbmdDb250ZXh0Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTHg9bmV3IF8uVnMoIlZJU0lCSUxJVFlfT0JTRVJWRVIiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIE94LFB4LFF4LFN4LFR4LFZ4LGhhYSxpYWEsamFhLCR4LGF5LGN5LGJ5LGthYSxkeSxsYWEsZXksZ3ksaHksaXksb3kscHkscXkscnksdHksdnksb2FhLHBhYSxreTtfLk14PWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9ITE7ZD1fLmRkKGEsZCxlLGg9Pnt2YXIgaz1fLmt3KGgsYyxiKTtmPWshPT1oJiZrIT1udWxsO3JldHVybiBrfSk7aWYoZCE9bnVsbClyZXR1cm4gZiYmIV8uQmMoZCkmJl8ub3coYSxiKSxkfTtfLk54PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuRGEsZj1lW18uQWNdfDA7Yj1fLk14KGUsZixiLGMsZCk7aWYoYj09bnVsbClyZXR1cm4gYjtmPWVbXy5BY118MDtpZighXy5CYyhhLGYpKXtsZXQgaD1fLmx3KGIpO2ghPT1iJiYoXy5tdyhhKSYmKGU9YS5EYSxmPWVbXy5BY118MCksYj1oLGY9Xy5wdyhlLGYsYyxiLGQpLF8ub3coZSxmKSl9cmV0dXJuIGJ9OwpPeD1mdW5jdGlvbihhKXthLlp8fChhLlo9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9O1B4PWZ1bmN0aW9uKGEsYil7aWYoYS5yYSl7YS5EJiYoY2xlYXJUaW1lb3V0KGEuRCksYS5EPW51bGwpO2xldCBjPWEucmE7YS5yYT1udWxsO2J8fGEuZGlzcGF0Y2hFdmVudCgicmVhZHkiKTt0cnl7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbH1jYXRjaChkKXt9fX07UXg9ZnVuY3Rpb24oYSxiKXthLmo9ITE7YS5yYSYmKGEudj0hMCxhLnJhLmFib3J0KCksYS52PSExKTthLkI9YjtPeChhKTtQeChhKX07Xy5SeD1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKGEucmE/YS5yYS5yZWFkeVN0YXRlOjApPjI/YS5yYS5zdGF0dXM6LTF9Y2F0Y2goYil7cmV0dXJuLTF9fTsKU3g9ZnVuY3Rpb24oYSl7aWYoYS5qJiZ0eXBlb2YgXy5DcSE9InVuZGVmaW5lZCIpaWYoYS5JJiYoYS5yYT9hLnJhLnJlYWR5U3RhdGU6MCk9PTQpc2V0VGltZW91dChhLmdyLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSxhLmlzQ29tcGxldGUoKSl7YS5qPSExO3RyeXtpZihhLmlzU3VjY2VzcygpKWEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKTtlbHNle3RyeXt2YXIgYj0oYS5yYT9hLnJhLnJlYWR5U3RhdGU6MCk+Mj9hLnJhLnN0YXR1c1RleHQ6IiJ9Y2F0Y2goYyl7Yj0iIn1hLkI9YisiIFsiK18uUngoYSkrIl0iO094KGEpfX1maW5hbGx5e1B4KGEpfX19OwpUeD1mdW5jdGlvbigpe18uZ2YuY2FsbCh0aGlzKTt0aGlzLmhlYWRlcnM9bmV3IE1hcDt0aGlzLmo9ITE7dGhpcy5yYT1udWxsO3RoaXMuQj10aGlzLmhhPSIiO3RoaXMudj10aGlzLmdhPXRoaXMuST10aGlzLlo9ITE7dGhpcy5VPTA7dGhpcy5EPW51bGw7dGhpcy55YT0iIjt0aGlzLm9hPSExfTtfLlV4PWZ1bmN0aW9uKGEpe18uRHgoKTtyZXR1cm4gXy5WaShfLkJ4KCkudikuYmluZChfLkJ4KCkpKGEpfTtWeD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gXy54KCJlbmFibGVfY2xpZW50X3ZlX3NwZWMiKSYmYi5jbGllbnRWZVNwZWM/KGI9Xy51eChiLmNsaWVudFZlU3BlYy51aVR5cGUsdm9pZCAwLGIuY2xpZW50VmVTcGVjLmVsZW1lbnRJbmRleCxiLmNsaWVudFZlU3BlYy5jbGllbnRZb3V0dWJlRGF0YSx2b2lkIDAsYiksXy5peChhLGIsYyxkKT9iOm51bGwpOmIudHJhY2tpbmdQYXJhbXM/Xy5seChhLGIudHJhY2tpbmdQYXJhbXMsYyxkKTpudWxsfTsKXy5XeD1mdW5jdGlvbihhLGIsYyxkLGUpe18ubncoYSk7dmFyIGY9YS5EYTtfLnB3KGYsZltfLkFjXXwwLGIsKGQ9PT0iMCI/TnVtYmVyKGMpPT09MDpjPT09ZCk/dm9pZCAwOmMsZSk7cmV0dXJuIGF9O18uWHg9ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsfHxiPT0iIilyZXR1cm4gbmV3IGE7Yj1KU09OLnBhcnNlKGIpO2lmKCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCJ6Iik7YltfLkFjXXw9MzI7cmV0dXJuIG5ldyBhKGIpfTtfLll4PWZ1bmN0aW9uKGEsLi4uYil7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBfLlRhKGFbMF0pO3ZhciBjPWFbMF07Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gXy5UYShjKX07Xy5aeD1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9OwpoYWE9ZnVuY3Rpb24oYSl7aWYoYS5NYyYmdHlwZW9mIGEuTWM9PSJmdW5jdGlvbiIpcmV0dXJuIGEuTWMoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIFNldClyZXR1cm4gQXJyYXkuZnJvbShhLnZhbHVlcygpKTtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhLnNwbGl0KCIiKTtpZihfLnlhKGEpKXtsZXQgYj1bXSxjPWEubGVuZ3RoO2ZvcihsZXQgZD0wO2Q8YztkKyspYi5wdXNoKGFbZF0pO3JldHVybiBifXJldHVybiBfLlp4KGEpfTsKaWFhPWZ1bmN0aW9uKGEpe2lmKGEucmQmJnR5cGVvZiBhLnJkPT0iZnVuY3Rpb24iKXJldHVybiBhLnJkKCk7aWYoIWEuTWN8fHR5cGVvZiBhLk1jIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy55YShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7bGV0IGI9W107YT1hLmxlbmd0aDtmb3IobGV0IGM9MDtjPGE7YysrKWIucHVzaChjKTtyZXR1cm4gYn1yZXR1cm4gXy5GeChhKX19fTsKamFhPWZ1bmN0aW9uKGEsYixjKXtpZihhLmZvckVhY2gmJnR5cGVvZiBhLmZvckVhY2g9PSJmdW5jdGlvbiIpYS5mb3JFYWNoKGIsYyk7ZWxzZSBpZihfLnlhKGEpfHx0eXBlb2YgYT09PSJzdHJpbmciKUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxiLGMpO2Vsc2V7bGV0IGQ9aWFhKGEpLGU9aGFhKGEpLGY9ZS5sZW5ndGg7Zm9yKGxldCBoPTA7aDxmO2grKyliLmNhbGwoYyxlW2hdLGQmJmRbaF0sYSl9fTskeD1mdW5jdGlvbihhLGIpe3RoaXMubz10aGlzLmo9bnVsbDt0aGlzLnY9YXx8bnVsbDt0aGlzLkI9ISFifTtheT1mdW5jdGlvbihhKXthLmp8fChhLmo9bmV3IE1hcCxhLm89MCxhLnYmJl8uUmIoYS52LGZ1bmN0aW9uKGIsYyl7YS5hZGQoXy5IYihiKSxjKX0pKX07Y3k9ZnVuY3Rpb24oYSxiKXtheShhKTtiPWJ5KGEsYik7cmV0dXJuIGEuai5oYXMoYil9O2J5PWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcoYik7YS5CJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBifTsKa2FhPWZ1bmN0aW9uKGEsYil7YiYmIWEuQiYmKGF5KGEpLGEudj1udWxsLGEuai5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC50b0xvd2VyQ2FzZSgpO2QhPWUmJih0aGlzLnJlbW92ZShkKSx0aGlzLnJlbW92ZShlKSxjLmxlbmd0aD4wJiYodGhpcy52PW51bGwsdGhpcy5qLnNldChieSh0aGlzLGUpLF8ueWIoYykpLHRoaXMubys9Yy5sZW5ndGgpKX0sYSkpO2EuQj1ifTtkeT1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn07bGFhPWZ1bmN0aW9uKGEpe2E9YS5jaGFyQ29kZUF0KDApO3JldHVybiIlIisoYT4+NCYxNSkudG9TdHJpbmcoMTYpKyhhJjE1KS50b1N0cmluZygxNil9OwpleT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/KGE9ZW5jb2RlVVJJKGEpLnJlcGxhY2UoYixsYWEpLGMmJihhPWEucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYSk6bnVsbH07Cl8uZnk9ZnVuY3Rpb24oYSl7dGhpcy5vPXRoaXMuST10aGlzLkI9IiI7dGhpcy5ZPW51bGw7dGhpcy52PXRoaXMuaj0iIjt0aGlzLkQ9ITE7dmFyIGI7YSBpbnN0YW5jZW9mIF8uZnk/KHRoaXMuRD1hLkQsZ3kodGhpcyxhLkIpLHRoaXMuST1hLkksdGhpcy5vPWEubyxoeSh0aGlzLGEuWSksdGhpcy5qPWEuaixpeSh0aGlzLGEuSy5jbG9uZSgpKSx0aGlzLnY9YS52KTphJiYoYj1fLk1iKFN0cmluZyhhKSkpPyh0aGlzLkQ9ITEsZ3kodGhpcyxiWzFdfHwiIiwhMCksdGhpcy5JPWR5KGJbMl18fCIiKSx0aGlzLm89ZHkoYlszXXx8IiIsITApLGh5KHRoaXMsYls0XSksdGhpcy5qPWR5KGJbNV18fCIiLCEwKSxpeSh0aGlzLGJbNl18fCIiLCEwKSx0aGlzLnY9ZHkoYls3XXx8IiIpKToodGhpcy5EPSExLHRoaXMuSz1uZXcgJHgobnVsbCx0aGlzLkQpKX07Z3k9ZnVuY3Rpb24oYSxiLGMpe2EuQj1jP2R5KGIsITApOmI7YS5CJiYoYS5CPWEuQi5yZXBsYWNlKC86JC8sIiIpKX07Cmh5PWZ1bmN0aW9uKGEsYil7aWYoYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI8MCl0aHJvdyBFcnJvcigiS2FgIitiKTthLlk9Yn1lbHNlIGEuWT1udWxsfTtpeT1mdW5jdGlvbihhLGIsYyl7YiBpbnN0YW5jZW9mICR4PyhhLks9YixrYWEoYS5LLGEuRCkpOihjfHwoYj1leShiLG1hYSkpLGEuSz1uZXcgJHgoYixhLkQpKX07Xy5qeT1mdW5jdGlvbihhLGIpe18uZ2YuY2FsbCh0aGlzKTt0aGlzLnY9YXx8MTt0aGlzLmo9Ynx8Xy51O3RoaXMuQj0oMCxfLkNhKSh0aGlzLmFCLHRoaXMpO3RoaXMuRD1fLkVhKCl9O18ubHk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7dmFyIGs9bmV3IFR4O2t5LnB1c2goayk7YiYmay5saXN0ZW4oImNvbXBsZXRlIixiKTtfLmJmKGssInJlYWR5IixrLlB1KTtmJiYoay5VPU1hdGgubWF4KDAsZikpO2gmJihrLm9hPWgpO2suc2VuZChhLGMsZCxlKX07Xy5teT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgYS5yZWdpc3Rlci52YWx1ZXMoKSliLnpnKCJBQk9SVEVEIil9OwpfLm55PWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYi50eXBlKXtjYXNlICJtYXBwaW5nIjpyZXR1cm4gYi52YWx1ZTtjYXNlICJmYWN0b3J5IjpyZXR1cm4gYj1iLnZhbHVlKCksYS5tYXBwaW5ncy5zZXQoYy50b1N0cmluZygpLHt0eXBlOiJtYXBwaW5nIix2YWx1ZTpifSksYjtkZWZhdWx0OnJldHVybiBfLmViKGIsdm9pZCAwKX19OwpveT1mdW5jdGlvbihhLGIsYyl7aWYoXy54KCJkZWJ1Z193ZWJfdmVfZGF0YSIpKXt2YXIgZD1fLkIoYz8ucmVuZGVyZXJDb250ZXh0LF8uS3gpPy5sb2dnaW5nRGlyZWN0aXZlczshZCYmYyYmKGQ9Yy5sb2dnaW5nRGlyZWN0aXZlcyk7YTp7aWYoZD1jPy50cmFja2luZ1BhcmFtcz8/ZD8udHJhY2tpbmdQYXJhbXMpdHJ5e3ZhciBlPV8uQ28oZCk7aWYoZSl7bGV0IGg9Xy5FbyhlLDEpLGs9Xy5FbyhlLDIpO2U9e307aCE9PXZvaWQgMCYmKGUuR3M9TnVtYmVyKGgpKTtrIT09dm9pZCAwJiYoZS52ZVR5cGU9TnVtYmVyKGspKTt2YXIgZj1lO2JyZWFrIGF9fWNhdGNoKGgpe31mPXZvaWQgMH1mPy52ZVR5cGUhPT12b2lkIDAmJihhLmRhdGFzZXQudmU9U3RyaW5nKGYudmVUeXBlKSk7Zj8uR3MhPT12b2lkIDAmJihhLmRhdGFzZXQudmVJbmRleD1TdHJpbmcoZi5HcykpOyhjPWM/LmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSl8fChjPWIudmVUeXBlfHxiLmxvZ2dpbmdDb25maWc/LnZlVHlwZSk7CmMmJihhLmRhdGFzZXQudmU9U3RyaW5nKGMpKX19O3B5PWZ1bmN0aW9uKGEpe3JldHVybiBhLmxheWVyIT09dm9pZCAwP2EubGF5ZXI6YS5wYXJlbnQ/cHkoYS5wYXJlbnQpOmEubGF5ZXI9MH07cXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnB4LmdldChhKXx8e1plOmJ9O2MuWmU9YjtfLnB4LnNldChhLGMpO2EuZ2V0U2NyZWVuTGF5ZXI9KCk9PnB5KGMuWmUpfTtyeT1mdW5jdGlvbihhKXtmb3IoYT1hLnBhcmVudE5vZGU7YSYmIV8ucHguZ2V0KGEpPy5XeCYmIShhLmpmPz9hKS5ESjspYT1hLnBhcmVudE5vZGV8fGEuaG9zdDtpZihhKXJldHVybiBfLnB4LmdldChhKX07Xy5zeT1mdW5jdGlvbihhKXtpZihhKXtfLnB4LmRlbGV0ZShhKTtsZXQgYj1fLnkoKS5yZXNvbHZlKF8uTHgpO18uR3goYSxiKX19OwpfLnV5PWZ1bmN0aW9uKGEsYixjPSExKXtpZihjKXtpZihjPWEuZ2V0QXR0cmlidXRlKCJjbGllbnQtdmUtdHlwZSIpLGIuZGF0YSYmIWIuQkl8fGMpXy50digoKT0+e3ZhciBkPV8uQnYoYi5kYXRhKTt0eShhLGQpO295KGEsYixkKX0sImEiKSxfLll1KCgpPT52b2lkIF8uc3koYSkpfWVsc2UgdHlwZW9mIGIuZGF0YSE9PSJmdW5jdGlvbiImJihjPWIuZGF0YSx0eShhLGMpLG95KGEsYixjKSl9Owp0eT1mdW5jdGlvbihhLGIpe25hYSsrO3Z5KGEsYikmJl8uQ2soKS5HYSgoKT0+e18ucXgoXy5DaygpLCgpPT57aWYodnkoYSxiKSYmYS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudD09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmYSl7dmFyIGM7aWYoYS5nZXRBdHRyaWJ1dGUoImxheWVyIikpe3ZhciBkPWM9TnVtYmVyKGEuZ2V0QXR0cmlidXRlKCJsYXllciIpKSxlPV8ucHguZ2V0KGEpO2U/ZS5aZS5sYXllcj1kOnF5KGEsbmV3IHd5KGQpKTsoZD1yeShhKSkmJl8ucHguZ2V0KGEpPy5aZS5zZXRQYXJlbnQoZC5aZSl9ZWxzZShjPV8ucHguZ2V0KGEpKT9jPXB5KGMuWmUpOihjPXB5LGQ9bmV3IHd5LChlPXJ5KGEpKSYmZC5zZXRQYXJlbnQoZS5aZSkscXkoYSxkKSxjPWMoZCkpO2M/PyhjPTApO2Q9YS5nZXRBdHRyaWJ1dGUoImNsaWVudC12ZS10eXBlIik7ZT1OdW1iZXIoZCk7dmFyIGY9ITE7ZD0hMTt2YXIgaD1fLnB4LmdldChhKTtoJiYoaFtfLm94XSE9PWJ8fGUmJl8ucHguZ2V0KGEpPy5VZD09PQp2b2lkIDApJiYoaFtfLm94XT1iLGY9ZD1oLld4PSEwKTtfLnB4LmhhcyhhKSYmKF8ucHguZ2V0KGEpLlVkPWUpO2EudmlzdWFsRWxlbWVudCYmKGQ9ITApO3ZhciBrO18ueCgid2l6X25leHRfbGRfZml4X2NsaWVudF92ZV9zcGVjIik/az1fLkIoYj8ucmVuZGVyZXJDb250ZXh0LF8uS3gpPy5sb2dnaW5nRGlyZWN0aXZlc3x8Yj8ubG9nZ2luZ0RpcmVjdGl2ZXM6az1iPy5sb2dnaW5nRGlyZWN0aXZlcztfLngoIndpel9uZXh0X2NsaWVudF92ZV9wYXJlbnRfZml4Iik/ayYmKGsuY2xpZW50VmVTcGVjfHxrLnRyYWNraW5nUGFyYW1zKSYmKGg9KGg9Xy54eChhKSk/Xy5VeChoKTpudWxsLGs9VngoXy5oeCgpLGssaHx8dm9pZCAwLGMpKSYmKGEudmlzdWFsRWxlbWVudD1rKTprJiZrLmNsaWVudFZlU3BlYyYmKGg9Xy5VeChhKSxrPVZ4KF8uaHgoKSxrLGh8fHZvaWQgMCxjKSkmJihhLnZpc3VhbEVsZW1lbnQ9ayk7IWEudmlzdWFsRWxlbWVudCYmZSYmZiYmKGEudmVUeXBlPWUsaz12b2lkIDAsCl8ueCgid2l6X25leHRfY2xpZW50X3ZlX3BhcmVudF9maXgiKSYmKGU9Xy54eChhKSkmJihrPV8uVXgoZSkpLGs9Xy5FeChfLmh4KCksYSxrLGMpLGEudmlzdWFsRWxlbWVudD1rKTtkJiYoaz1fLnkoKS5yZXNvbHZlKF8uTHgpLF8uSngoYSx7ZGF0YTpiLG9ic2VydmVyOmssbGF5ZXI6YyxlYjp7VmI6ITEsc3RhdGU6InZpc2libGUifSxOYzp7VmI6ITEsc3RhdGU6ImhpZGRlbiJ9fSkpfX0sMCl9LDgpfTt2eT1mdW5jdGlvbihhLGIpe3JldHVybiBiPy50cmFja2luZ1BhcmFtc3x8Yj8ubG9nZ2luZ0RpcmVjdGl2ZXN8fF8uQihiPy5yZW5kZXJlckNvbnRleHQsXy5LeCl8fGEuZ2V0QXR0cmlidXRlKCJjbGllbnQtdmUtdHlwZSIpPyEwOiExfTtvYWE9L15odHRwcz8kL2k7cGFhPVsiUE9TVCIsIlBVVCJdO2t5PVtdO18uSGEoVHgsXy5nZik7Xy5nPVR4LnByb3RvdHlwZTtfLmcuUHU9ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKTtfLnhiKGt5LHRoaXMpfTsKXy5nLnNlbmQ9ZnVuY3Rpb24oYSxiLGMsZCl7aWYodGhpcy5yYSl0aHJvdyBFcnJvcigiUGFgIit0aGlzLmhhKyJgIithKTtiPWI/Yi50b1VwcGVyQ2FzZSgpOiJHRVQiO3RoaXMuaGE9YTt0aGlzLkI9IiI7dGhpcy5aPSExO3RoaXMuaj0hMDt0aGlzLnJhPW5ldyBYTUxIdHRwUmVxdWVzdDt0aGlzLnJhLm9ucmVhZHlzdGF0ZWNoYW5nZT0oMCxfLnlnKSgoMCxfLkNhKSh0aGlzLmdyLHRoaXMpKTt0cnl7dGhpcy5nYT0hMCx0aGlzLnJhLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuZ2E9ITF9Y2F0Y2goZil7UXgodGhpcyxmKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSxkW2VdKTtlbHNlIGlmKHR5cGVvZiBkLmtleXM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5nZXQ9PT0iZnVuY3Rpb24iKWZvcihsZXQgZiBvZiBkLmtleXMoKSljLnNldChmLApkLmdldChmKSk7ZWxzZSB0aHJvdyBFcnJvcigiUWFgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmPT4iY29udGVudC10eXBlIj09Zi50b0xvd2VyQ2FzZSgpKTtlPV8udS5Gb3JtRGF0YSYmYSBpbnN0YW5jZW9mIF8udS5Gb3JtRGF0YTshKF8uc2IocGFhLGIpPj0wKXx8ZHx8ZXx8Yy5zZXQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04Iik7Zm9yKGxldCBbZixoXW9mIGMpdGhpcy5yYS5zZXRSZXF1ZXN0SGVhZGVyKGYsaCk7dGhpcy55YSYmKHRoaXMucmEucmVzcG9uc2VUeXBlPXRoaXMueWEpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5yYSYmdGhpcy5yYS53aXRoQ3JlZGVudGlhbHMhPT10aGlzLm9hJiYodGhpcy5yYS53aXRoQ3JlZGVudGlhbHM9dGhpcy5vYSk7dHJ5e3RoaXMuRCYmKGNsZWFyVGltZW91dCh0aGlzLkQpLHRoaXMuRD1udWxsKSx0aGlzLlU+MCYmKHRoaXMuRD1zZXRUaW1lb3V0KHRoaXMuZEIuYmluZCh0aGlzKSwKdGhpcy5VKSksdGhpcy5JPSEwLHRoaXMucmEuc2VuZChhKSx0aGlzLkk9ITF9Y2F0Y2goZil7UXgodGhpcyxmKX19O18uZy5kQj1mdW5jdGlvbigpe3R5cGVvZiBfLkNxIT0idW5kZWZpbmVkIiYmdGhpcy5yYSYmKHRoaXMuQj0iVGltZWQgb3V0IGFmdGVyICIrdGhpcy5VKyJtcywgYWJvcnRpbmciLHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTtfLmcuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLnJhJiZ0aGlzLmomJih0aGlzLmo9ITEsdGhpcy52PSEwLHRoaXMucmEuYWJvcnQoKSx0aGlzLnY9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHRoaXMuZGlzcGF0Y2hFdmVudCgiYWJvcnQiKSxQeCh0aGlzKSl9O18uZy5sYT1mdW5jdGlvbigpe3RoaXMucmEmJih0aGlzLmomJih0aGlzLmo9ITEsdGhpcy52PSEwLHRoaXMucmEuYWJvcnQoKSx0aGlzLnY9ITEpLFB4KHRoaXMsITApKTtUeC56Yi5sYS5jYWxsKHRoaXMpfTsKXy5nLmdyPWZ1bmN0aW9uKCl7dGhpcy5pYSgpfHwodGhpcy5nYXx8dGhpcy5JfHx0aGlzLnY/U3godGhpcyk6dGhpcy5seigpKX07Xy5nLmx6PWZ1bmN0aW9uKCl7U3godGhpcyl9O18uZy5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5yYX07Xy5nLmlzQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yYT90aGlzLnJhLnJlYWR5U3RhdGU6MCk9PTR9O18uZy5pc1N1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYT1fLlJ4KHRoaXMpLGI7aWYoIShiPV8uc2YoYSkpKXtpZihhPWE9PT0wKWE9Xy5PYihTdHJpbmcodGhpcy5oYSkpLGE9IW9hYS50ZXN0KGEpO2I9YX1yZXR1cm4gYn07Xy5nLmdldExhc3RFcnJvcj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgdGhpcy5CPT09InN0cmluZyI/dGhpcy5COlN0cmluZyh0aGlzLkIpfTtfLmc9JHgucHJvdG90eXBlOwpfLmcuYWRkPWZ1bmN0aW9uKGEsYil7YXkodGhpcyk7dGhpcy52PW51bGw7YT1ieSh0aGlzLGEpO3ZhciBjPXRoaXMuai5nZXQoYSk7Y3x8dGhpcy5qLnNldChhLGM9W10pO2MucHVzaChiKTt0aGlzLm8rPTE7cmV0dXJuIHRoaXN9O18uZy5yZW1vdmU9ZnVuY3Rpb24oYSl7YXkodGhpcyk7YT1ieSh0aGlzLGEpO3JldHVybiB0aGlzLmouaGFzKGEpPyh0aGlzLnY9bnVsbCx0aGlzLm8tPXRoaXMuai5nZXQoYSkubGVuZ3RoLHRoaXMuai5kZWxldGUoYSkpOiExfTtfLmcuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy52PW51bGw7dGhpcy5vPTB9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7YXkodGhpcyk7cmV0dXJuIHRoaXMubz09MH07Xy5nLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtheSh0aGlzKTt0aGlzLmouZm9yRWFjaChmdW5jdGlvbihjLGQpe2MuZm9yRWFjaChmdW5jdGlvbihlKXthLmNhbGwoYixlLGQsdGhpcyl9LHRoaXMpfSx0aGlzKX07Cl8uZy5yZD1mdW5jdGlvbigpe2F5KHRoaXMpO3ZhciBhPUFycmF5LmZyb20odGhpcy5qLnZhbHVlcygpKSxiPUFycmF5LmZyb20odGhpcy5qLmtleXMoKSksYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7bGV0IGU9YVtkXTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKyljLnB1c2goYltkXSl9cmV0dXJuIGN9O18uZy5NYz1mdW5jdGlvbihhKXtheSh0aGlzKTt2YXIgYj1bXTtpZih0eXBlb2YgYT09PSJzdHJpbmciKWN5KHRoaXMsYSkmJihiPWIuY29uY2F0KHRoaXMuai5nZXQoYnkodGhpcyxhKSkpKTtlbHNle2E9QXJyYXkuZnJvbSh0aGlzLmoudmFsdWVzKCkpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWI9Yi5jb25jYXQoYVtjXSl9cmV0dXJuIGJ9OwpfLmcuc2V0PWZ1bmN0aW9uKGEsYil7YXkodGhpcyk7dGhpcy52PW51bGw7YT1ieSh0aGlzLGEpO2N5KHRoaXMsYSkmJih0aGlzLm8tPXRoaXMuai5nZXQoYSkubGVuZ3RoKTt0aGlzLmouc2V0KGEsW2JdKTt0aGlzLm8rPTE7cmV0dXJuIHRoaXN9O18uZy5nZXQ9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4gYjthPXRoaXMuTWMoYSk7cmV0dXJuIGEubGVuZ3RoPjA/U3RyaW5nKGFbMF0pOmJ9OwpfLmcudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLnYpcmV0dXJuIHRoaXMudjtpZighdGhpcy5qKXJldHVybiIiO3ZhciBhPVtdLGI9QXJyYXkuZnJvbSh0aGlzLmoua2V5cygpKTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGM9YltkXTtsZXQgZT1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKTtjPXRoaXMuTWMoYyk7Zm9yKGxldCBmPTA7ZjxjLmxlbmd0aDtmKyspe2xldCBoPWU7Y1tmXSE9PSIiJiYoaCs9Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoY1tmXSkpKTthLnB1c2goaCl9fXJldHVybiB0aGlzLnY9YS5qb2luKCImIil9O18uZy5jbG9uZT1mdW5jdGlvbigpe3ZhciBhPW5ldyAkeDthLnY9dGhpcy52O3RoaXMuaiYmKGEuaj1uZXcgTWFwKHRoaXMuaiksYS5vPXRoaXMubyk7cmV0dXJuIGF9OwpfLmcuZXh0ZW5kPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspamFhKGFyZ3VtZW50c1tiXSxmdW5jdGlvbihjLGQpe3RoaXMuYWRkKGQsYyl9LHRoaXMpfTt2YXIgeHk9L1sjXC9cP0BdL2cscWFhPS9bI1w/XS9nLHJhYT0vWyNcPzpdL2csc2FhPS8jL2csbWFhPS9bI1w/QF0vZzsKXy5meS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuQjtiJiZhLnB1c2goZXkoYix4eSwhMCksIjoiKTt2YXIgYz10aGlzLm87aWYoY3x8Yj09ImZpbGUiKWEucHVzaCgiLy8iKSwoYj10aGlzLkkpJiZhLnB1c2goZXkoYix4eSwhMCksIkAiKSxhLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSkucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYz10aGlzLlksYyE9bnVsbCYmYS5wdXNoKCI6IixTdHJpbmcoYykpO2lmKGM9dGhpcy5qKXRoaXMubyYmYy5jaGFyQXQoMCkhPSIvIiYmYS5wdXNoKCIvIiksYS5wdXNoKGV5KGMsYy5jaGFyQXQoMCk9PSIvIj9xYWE6cmFhLCEwKSk7KGM9dGhpcy5LLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMudikmJmEucHVzaCgiIyIsZXkoYyxzYWEpKTtyZXR1cm4gYS5qb2luKCIiKX07Cl8uZnkucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jbG9uZSgpLGM9ISFhLkI7Yz9neShiLGEuQik6Yz0hIWEuSTtjP2IuST1hLkk6Yz0hIWEubztjP2Iubz1hLm86Yz1hLlkhPW51bGw7dmFyIGQ9YS5qO2lmKGMpaHkoYixhLlkpO2Vsc2UgaWYoYz0hIWEuail7aWYoZC5jaGFyQXQoMCkhPSIvIilpZih0aGlzLm8mJiF0aGlzLmopZD0iLyIrZDtlbHNle3ZhciBlPWIuai5sYXN0SW5kZXhPZigiLyIpO2UhPS0xJiYoZD1iLmouc2xpY2UoMCxlKzEpK2QpfWU9ZDtpZihlPT0iLi4ifHxlPT0iLiIpZD0iIjtlbHNlIGlmKGUuaW5kZXhPZigiLi8iKSE9LTF8fGUuaW5kZXhPZigiLy4iKSE9LTEpe2Q9ZS5sYXN0SW5kZXhPZigiLyIsMCk9PTA7ZT1lLnNwbGl0KCIvIik7bGV0IGY9W107Zm9yKGxldCBoPTA7aDxlLmxlbmd0aDspe2xldCBrPWVbaCsrXTtrPT0iLiI/ZCYmaD09ZS5sZW5ndGgmJmYucHVzaCgiIik6az09Ii4uIj8oKGYubGVuZ3RoPjF8fGYubGVuZ3RoPT0KMSYmZlswXSE9IiIpJiZmLnBvcCgpLGQmJmg9PWUubGVuZ3RoJiZmLnB1c2goIiIpKTooZi5wdXNoKGspLGQ9ITApfWQ9Zi5qb2luKCIvIil9ZWxzZSBkPWV9Yz9iLmo9ZDpjPWEuSy50b1N0cmluZygpIT09IiI7Yz9peShiLGEuSy5jbG9uZSgpKTpjPSEhYS52O2MmJihiLnY9YS52KTtyZXR1cm4gYn07Xy5meS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF8uZnkodGhpcyl9O18uZnkucHJvdG90eXBlLmFtPWZ1bmN0aW9uKCl7cmV0dXJuITF9O18uSGEoXy5qeSxfLmdmKTtfLmc9Xy5qeS5wcm90b3R5cGU7Xy5nLmVuYWJsZWQ9ITE7Xy5nLnNjPW51bGw7Xy5nLnNldEludGVydmFsPWZ1bmN0aW9uKGEpe3RoaXMudj1hO3RoaXMuc2MmJnRoaXMuZW5hYmxlZD8odGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTp0aGlzLnNjJiZ0aGlzLnN0b3AoKX07Cl8uZy5hQj1mdW5jdGlvbigpe2lmKHRoaXMuZW5hYmxlZCl7bGV0IGE9Xy5FYSgpLXRoaXMuRDthPjAmJmE8dGhpcy52Ki44P3RoaXMuc2M9dGhpcy5qLnNldFRpbWVvdXQodGhpcy5CLHRoaXMudi1hKToodGhpcy5zYyYmKHRoaXMuai5jbGVhclRpbWVvdXQodGhpcy5zYyksdGhpcy5zYz1udWxsKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpY2siKSx0aGlzLmVuYWJsZWQmJih0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpKX19O18uZy5zdGFydD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLnNjfHwodGhpcy5zYz10aGlzLmouc2V0VGltZW91dCh0aGlzLkIsdGhpcy52KSx0aGlzLkQ9Xy5FYSgpKX07Xy5nLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITE7dGhpcy5zYyYmKHRoaXMuai5jbGVhclRpbWVvdXQodGhpcy5zYyksdGhpcy5zYz1udWxsKX07Xy5nLmxhPWZ1bmN0aW9uKCl7Xy5qeS56Yi5sYS5jYWxsKHRoaXMpO3RoaXMuc3RvcCgpO2RlbGV0ZSB0aGlzLmp9O18uQXk9bmV3IF8uSSgiY29udGludWF0aW9uQ29tbWFuZCIpO18uQnk9bmV3IF8uSSgibW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludCIpO18uQ3k9bmV3IF8uSSgidW5kb0ZlZWRiYWNrRW5kcG9pbnQiKTtfLkR5PW5ldyBfLkkoInVuc3Vic2NyaWJlRW5kcG9pbnQiKTt2YXIgdGFhO3RhYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVnaXN0ZXI9bmV3IE1hcH1jbGVhcigpe18ubXkodGhpcyk7dGhpcy5yZWdpc3Rlci5jbGVhcigpfX07Xy5FeT1uZXcgdGFhO3ZhciB1YWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9e319Y29udGFpbnMoYSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmosYSl9Z2V0KGEpe2lmKHRoaXMuY29udGFpbnMoYSkpcmV0dXJuIHRoaXMualthXX1zZXQoYSxiKXt0aGlzLmpbYV09Yn1yZCgpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmopfXJlbW92ZShhKXtkZWxldGUgdGhpcy5qW2FdfX07Xy5HeT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hcHBpbmdzPW5ldyB1YWE7dGhpcy5qPW5ldyBTZXR9Z2V0KGEpe3ZhciBiPXRoaXMubWFwcGluZ3MuZ2V0KGEudG9TdHJpbmcoKSk7cmV0dXJuIF8ubnkodGhpcyxiLGEpfW9uTG9hZEVycm9yKGEpe3RoaXMuai5hZGQoYSk7cmV0dXJuKCk9Pnt0aGlzLmouZGVsZXRlKGEpfX19O18uSHk9bmV3IF8uVnMoIkFTWU5DX0lOTkVSVFVCRV9UUkFOU1BPUlRfVE9LRU4iKTtfLkl5PW5ldyBfLlZzKCJJTk5FUlRVQkVfVFJBTlNQT1JUX1RPS0VOIik7Xy5KeT1uZXcgXy5WcygiUkVTUE9OU0VfUFJPQ0VTU09SX01BUF9UT0tFTiIpO3ZhciB3eT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmxheWVyPWF9c2V0UGFyZW50KGEpe3RoaXMucGFyZW50PWF9fTt2YXIgbmFhPTA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8udmFhPSJwbGF5ZXJfdWlkXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciB4YWEseWFhLHphYSxWeSwkeSxheixieixjeixBYWEsaHosQmFhLENhYSxpeixreixFYWEsdHosd2FhLFJ5LFN5LEhhYSxJYWEsRGFhLEZhYSxkeixqeixleixmejtfLkt5PWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkJmKXJldHVybiBhO3ZhciBiPW5ldyBfLkJmKF8uZ2QpO18uQWYoYiwyLGEpO3JldHVybiBifTtfLkx5PWZ1bmN0aW9uKGEsYil7Yj1fLmRiKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9Yil9O18uTXk9ZnVuY3Rpb24oYSl7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoOysrYyliPTMxKmIrYS5jaGFyQ29kZUF0KGMpPj4+MDtyZXR1cm4gYn07Xy5OeT1mdW5jdGlvbihhKXthPV8uTWIoYSk7cmV0dXJuIF8uSWIobnVsbCxudWxsLG51bGwsbnVsbCxhWzVdLGFbNl0sYVs3XSl9O18uT3k9ZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmRleE9mKCIjIik7cmV0dXJuIGI8MD9hOmEuc2xpY2UoMCxiKX07Cl8uUHk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5zZWFyY2goXy5ZYiksZD0wLGUsZj1bXTsoZT1fLlhiKGEsZCxiLGMpKT49MDspZi5wdXNoKGEuc3Vic3RyaW5nKGQsZSkpLGQ9TWF0aC5taW4oYS5pbmRleE9mKCImIixlKSsxfHxjLGMpO2YucHVzaChhLnNsaWNlKGQpKTtyZXR1cm4gZi5qb2luKCIiKS5yZXBsYWNlKHdhYSwiJDEiKX07eGFhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iJjEyOD8wOi0xLGU9YS5sZW5ndGgsZjtpZihmPSEhZSlmPWFbZS0xXSxmPWYhPW51bGwmJnR5cGVvZiBmPT09Im9iamVjdCImJmYuY29uc3RydWN0b3I9PT1PYmplY3Q7dmFyIGg9ZSsoZj8tMTowKTtmb3IoYj1iJjEyOD8xOjA7YjxoO2IrKyljKGItZCxhW2JdKTtpZihmKXthPWFbZS0xXTtmb3IobGV0IGsgaW4gYSkhaXNOYU4oaykmJmMoK2ssYVtrXSl9fTtfLlF5PWZ1bmN0aW9uKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhO2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuISFhfTsKeWFhPWZ1bmN0aW9uKGEpe3ZhciBiPV8uR2EoXy5KYyk7cmV0dXJuIGI/YVtiXTp2b2lkIDB9O3phYT1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOnJldHVybiBSeXx8KFJ5PVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIGE+MD92b2lkIDA6YT09PTA/U3l8fChTeT1bMCx2b2lkIDBdKTpbLWEsdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLGFdO2Nhc2UgIm9iamVjdCI6cmV0dXJuIGF9fTtfLlR5PWZ1bmN0aW9uKGEpe3JldHVybiEhKDImYSkmJiEhKDQmYSl8fCEhKDI1NiZhKX07Xy5VeT1mdW5jdGlvbihhLGIpe3JldHVybiBhPSgyJmI/YXwyOmEmLTMpJi0yNzN9O1Z5PWZ1bmN0aW9uKGEsYil7MiZiJiYoYXw9Mik7cmV0dXJuIGF8MX07Cl8uV3k9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCxrKXt2YXIgbD1fLkJjKGEsYyk7Zj1sPzE6ZjtoPSEhaHx8Zj09PTM7bD1rJiYhbDsoZj09PTJ8fGwpJiZfLm13KGEpJiYoYj1hLkRhLGM9YltfLkFjXXwwKTthPV8uZGQoYixlKTtrPUFycmF5LmlzQXJyYXkoYSk/YTpfLm1yO3ZhciBtPWs9PT1fLm1yPzc6a1tfLkFjXXwwLG49VnkobSxjKTtpZihhPSEoNCZuKSl7dmFyIHA9ayxyPWM7bGV0IHQ9ISEoMiZuKTt0JiYocnw9Mik7bGV0IHY9IXQsej0hMCxFPTAsQT0wO2Zvcig7RTxwLmxlbmd0aDtFKyspe2xldCBGPV8ua3cocFtFXSxkLHIpO2lmKEYgaW5zdGFuY2VvZiBkKXtpZighdCl7bGV0IEM9Xy5CYyhGKTt2JiYodj0hQyk7eiYmKHo9Qyl9cFtBKytdPUZ9fUE8RSYmKHAubGVuZ3RoPUEpO258PTQ7bj16P24mLTQwOTc6bnw0MDk2O249dj9ufDg6biYtOX1uIT09bSYmKGtbXy5BY109biwyJm4mJk9iamVjdC5mcmVlemUoaykpO2lmKGwmJiEoOCZufHwhay5sZW5ndGgmJihmPT09MXx8CihmIT09ND8wOjImbnx8ISgxNiZuKSYmMzImYykpKSl7Xy5UeShuKSYmKGs9Wy4uLmtdLG49Xy5VeShuLGMpLGM9Xy5wdyhiLGMsZSxrKSk7ZD1rO2w9bjtmb3IobT0wO208ZC5sZW5ndGg7bSsrKXA9ZFttXSxuPV8ubHcocCkscCE9PW4mJihkW21dPW4pO2x8PTg7bj1sPWQubGVuZ3RoP2x8NDA5NjpsJi00MDk3O2tbXy5BY109bn1kPWs7bD1rPW47Zj09PTF8fChmIT09ND8wOjIma3x8ISgxNiZrKSYmMzImYyk/Xy5UeShrKXx8KGt8PSFkLmxlbmd0aHx8YSYmISg0MDk2JmspfHwzMiZjJiYhKDQwOTYma3x8MTYmayk/MjoyNTYsayE9PWwmJihkW18uQWNdPWspLE9iamVjdC5mcmVlemUoZCkpOihmPT09MiYmXy5UeShrKSYmKGQ9Wy4uLmRdLGw9MCxrPV8uVXkoayxjKSxjPV8ucHcoYixjLGUsZCkpLF8uVHkoayl8fChofHwoa3w9MTYpLGshPT1sJiYoZFtfLkFjXT1rKSkpOzIma3x8ISg0MDk2Jmt8fDE2JmspfHxfLm93KGIsYyk7cmV0dXJuIGR9OwpfLlh5PWZ1bmN0aW9uKGEsYil7Zm9yKDtiPjEyNzspYS5qLnB1c2goYiYxMjd8MTI4KSxiPj4+PTc7YS5qLnB1c2goYil9O18uWXk9ZnVuY3Rpb24oYSxiKXtiLmxlbmd0aCE9PTAmJihhLnYucHVzaChiKSxhLm8rPWIubGVuZ3RoKX07Xy5aeT1mdW5jdGlvbihhLGIsYyl7Xy5YeShhLmosYio4K2MpfTskeT1mdW5jdGlvbihhLGIpe18uWnkoYSxiLDIpO2I9YS5qLmVuZCgpO18uWXkoYSxiKTtiLnB1c2goYS5vKTtyZXR1cm4gYn07YXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnBvcCgpO2ZvcihjPWEubythLmoubGVuZ3RoKCktYztjPjEyNzspYi5wdXNoKGMmMTI3fDEyOCksYz4+Pj03LGEubysrO2IucHVzaChjKTthLm8rK307Yno9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2YgXy5NcilyZXR1cm4gYS5EYTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBfLlhjKGEsYlswXSxiWzFdKX07CmN6PWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1ieihiLGQpO2IhPW51bGwmJihjPSR5KGEsYyksZShiLGEpLGF6KGEsYykpfTtBYWE9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSkmJiEhYS5sZW5ndGgmJnR5cGVvZiBhWzBdPT09Im51bWJlciImJmFbMF0+MH07Cmh6PWZ1bmN0aW9uKGEpe3ZhciBiPUJhYSxjPUNhYSxkPWFbZHpdO2lmKGQpcmV0dXJuIGQ7ZD17fTtkLlpIPWE7ZC5PcT16YWEoYVswXSk7dmFyIGU9YVsxXSxmPTE7ZSYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQuZXh0ZW5zaW9ucz1lLGU9YVsrK2ZdLHR5cGVvZiBlPT09ImZ1bmN0aW9uIiYmKGQuU3g9ITAsZXo/Pyhlej1lKSxmej8/KGZ6PWFbZisxXSksZT1hW2YrPTJdKSk7Zm9yKHZhciBoPXt9O2UmJkFhYShlKTspe2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGg7aysrKWhbZVtrXV09ZTtlPWFbKytmXX1mb3Ioaz0xO2UhPT12b2lkIDA7KXt0eXBlb2YgZT09PSJudW1iZXIiJiYoays9ZSxlPWFbKytmXSk7bGV0IG47dmFyIGw9dm9pZCAwO2UgaW5zdGFuY2VvZiBfLmd6P249ZToobj1EYWEsZi0tKTtpZihuPy5vKXtlPWFbKytmXTtsPWE7dmFyIG09Zjt0eXBlb2YgZT09PSJmdW5jdGlvbiImJihlPWUoKSxsW21dPWUpO2w9ZX1lPWFbKytmXTttPWsrMTt0eXBlb2YgZT09PSJudW1iZXIiJiYKZTwwJiYobS09ZSxlPWFbKytmXSk7Zm9yKDtrPG07aysrKXtsZXQgcD1oW2tdO2w/YyhkLGssbixsLHApOmIoZCxrLG4scCl9fXJldHVybiBhW2R6XT1kfTtCYWE9ZnVuY3Rpb24oYSxiLGMpe2FbYl09Yy5qfTtDYWE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixoPWMuajthW2JdPShrLGwsbSk9PmgoayxsLG0sZnx8KGY9aHooZCkuT3EpLGV8fChlPWl6KGQpKSl9O2l6PWZ1bmN0aW9uKGEpe3ZhciBiPWFbanpdO2lmKCFiKXtsZXQgYz1oeihhKTtiPShkLGUpPT5reihkLGUsYyk7YVtqel09Yn1yZXR1cm4gYn07a3o9ZnVuY3Rpb24oYSxiLGMpe3hhYShhLGFbXy5BY118MCwoZCxlKT0+e2lmKGUhPW51bGwpe3ZhciBmPUVhYShjLGQpO2Y/ZihiLGUsZCk6ZDw1MDB8fF8ueGMoXy5rciwzKX19KTsoYT15YWEoYSkpJiZhLmN3KChkLGUsZik9PntfLll5KGIsYi5qLmVuZCgpKTtmb3IoZD0wO2Q8Zi5sZW5ndGg7ZCsrKV8uWXkoYixfLnd3KGZbZF0pfHxuZXcgVWludDhBcnJheSgwKSl9KX07CkVhYT1mdW5jdGlvbihhLGIpe3ZhciBjPWFbYl07aWYoYylyZXR1cm4gYztpZihjPWEuZXh0ZW5zaW9ucylpZihjPWNbYl0pe2M9QXJyYXkuaXNBcnJheShjKT9jWzBdaW5zdGFuY2VvZiBfLmd6P2M6W0ZhYSxjXTpbYyx2b2lkIDBdO3ZhciBkPWNbMF0uajtpZihjPWNbMV0pe2xldCBlPWl6KGMpLGY9aHooYykuT3E7Yz1hLlN4P2Z6KGYsZSk6KGgsayxsKT0+ZChoLGssbCxmLGUpfWVsc2UgYz1kO3JldHVybiBhW2JdPWN9fTtfLmx6PWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBfLmd6KGEsYil9O18ubXo9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5ReShiKTtiIT1udWxsJiYoXy5aeShhLGMsMCksYS5qLmoucHVzaChiPzE6MCkpfTtfLm56PWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1ieihiLGQpO2IhPW51bGwmJihjPSR5KGEsYyksZShiLGEpLGF6KGEsYykpfTtfLnB6PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfLm96KHRoaXMsYSl9fTsKXy5xej1mdW5jdGlvbigpe2lmKCFfLkxqLmlzRW5hYmxlZCgpKXJldHVybiExO2lmKCFfLkxqLmlzRW1wdHkoKSlyZXR1cm4hMDtfLkxqLnNldCgiVEVTVENPT0tJRVNFTkFCTEVEIiwiMSIse3ZqOjYwfSk7aWYoXy5Mai5nZXQoIlRFU1RDT09LSUVTRU5BQkxFRCIpIT09IjEiKXJldHVybiExO18uTGoucmVtb3ZlKCJURVNUQ09PS0lFU0VOQUJMRUQiKTtyZXR1cm4hMH07Xy5yej1mdW5jdGlvbigpe3JldHVybihfLmhyfHxfLmlyKSYmXy5NaygiYXBwbGV3ZWJraXQiKSYmIV8uTWsoInZlcnNpb24iKSYmKCFfLk1rKCJzYWZhcmkiKXx8Xy5NaygiZ3NhLyIpKX07Xy5zej1mdW5jdGlvbigpe3JldHVybiBfLk5kKCl8fF8ucnooKXx8Xy5lciYmXy5NaygidmVyc2lvbi8iKT8hMDpfLncoIkVPTV9WSVNJVE9SX0RBVEEiKT8hMTohMH07Cl8udXo9ZnVuY3Rpb24oYSxiLGMsZD0hMCl7dmFyIGU9Xy53KCJWQUxJRF9TRVNTSU9OX1RFTVBEQVRBX0RPTUFJTlMiLFtdKSxmPV8uUGIod2luZG93LmxvY2F0aW9uLmhyZWYpO2YmJmUucHVzaChmKTtmPV8uUGIoYSk7aWYoXy5zYihlLGYpPj0wfHwhZiYmYS5sYXN0SW5kZXhPZigiLyIsMCk9PTApaWYoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksXy5MeShlLGEpLGE9ZS5ocmVmKWlmKGE9Xy5OeShhKSxhPV8uT3koYSkpZCYmIWIuY3NuJiYoYi5pdGN0fHxiLnZlZCkmJihiPU9iamVjdC5hc3NpZ24oe2NzbjpfLmlxKCl9LGIpKSxjPyhjPXBhcnNlSW50KGMsMTApLGlzRmluaXRlKGMpJiZjPjAmJnR6KGEsYixjKSk6dHooYSxiKX07dHo9ZnVuY3Rpb24oYSxiLGMpe2E9Xy52eihhKTtiPWI/Xy5VYihiKToiIjtjPWN8fDU7Xy5zeigpJiZfLk1qKGEsYixjKX07Xy52ej1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgR2FhKWE9Xy5QeShhLGIpO3JldHVybiJTVC0iK18uTXkoYSkudG9TdHJpbmcoMzYpfTsKXy53ej17fTt3YWE9L1s/Jl0oJHwjKS87SGFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPVtdfWxlbmd0aCgpe3JldHVybiB0aGlzLmoubGVuZ3RofWVuZCgpe3ZhciBhPXRoaXMuajt0aGlzLmo9W107cmV0dXJuIGF9d3JpdGVVaW50OChhKXt0aGlzLmoucHVzaChhPj4+MCYyNTUpfXdyaXRlSW50OChhKXt0aGlzLmoucHVzaChhPj4+MCYyNTUpfX07SWFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy52PVtdO3RoaXMubz0wO3RoaXMuaj1uZXcgSGFhfX07Xy5nej1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1hO2E9Xy5HYShfLnpyKTt0aGlzLm89ISFhJiZiPT09YXx8ITF9fTtEYWE9bmV3IF8uZ3ooY3osXy56cik7RmFhPW5ldyBfLmd6KGN6LF8uenIpO2R6PVN5bWJvbCgpO2p6PVN5bWJvbCgpOwpfLm96PShhLGIpPT57dmFyIGM9bmV3IElhYTtreihhLkRhLGMsaHooYikpO18uWXkoYyxjLmouZW5kKCkpO2E9bmV3IFVpbnQ4QXJyYXkoYy5vKTtiPWMudjt2YXIgZD1iLmxlbmd0aCxlPTA7Zm9yKGxldCBmPTA7ZjxkO2YrKyl7bGV0IGg9YltmXTthLnNldChoLGUpO2UrPWgubGVuZ3RofWMudj1bYV07cmV0dXJuIGF9O18ueHo9Xy5seihfLm16LF8uQXIpOwpfLnl6PWZ1bmN0aW9uKGEsYixjPV8uenIpe3JldHVybiBuZXcgXy5neihiLGMpfShmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaigpIT09MilyZXR1cm4hMTt2YXIgZj1hLm87ZD1fLlhjKHZvaWQgMCxkWzBdLGRbMV0pO3ZhciBoPWJbXy5BY118MDtpZihoJjIpdGhyb3cgRXJyb3IoKTt2YXIgaz1oJjEyOD9fLnd6OnZvaWQgMCxsPV8uZGQoYixjLGspO2w9QXJyYXkuaXNBcnJheShsKT9sOl8ubXI7dmFyIG09bD09PV8ubXI/NzpsW18uQWNdfDAsbj1WeShtLGgpO2lmKDImbnx8Xy5UeShuKXx8MTYmbiluPT09bXx8Xy5UeShuKXx8KGxbXy5BY109biksbD1bLi4ubF0sbT0wLG49Xy5VeShuLGgpLF8ucHcoYixoLGMsbCxrKTtuJj0tMTM7biE9PW0mJihsW18uQWNdPW4pO2wucHVzaChkKTtmLmNhbGwoYSxkLGUpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpe2ZvcihsZXQgZj0wO2Y8Yi5sZW5ndGg7ZisrKV8ubnooYSxiW2ZdLGMsZCxlKTsKYT1iW18uQWNdfDA7YSYxfHwoYltfLkFjXT1hfDEpfX0pO18ueno9bmV3IF8uSSgic2lnbmFsU2VydmljZUVuZHBvaW50Iik7Xy5Bej1uZXcgXy5JKCJwbGF5bGlzdEVkaXRFbmRwb2ludCIpO3ZhciBHYWE9ImFic29sdXRlX2V4cGVyaW1lbnRzIGFwcCBjb25kaXRpb25hbF9leHBlcmltZW50cyBkZWJ1Z2NzcyBkZWJ1Z2pzIGV4cGZsYWcgZm9yY2VkX2V4cGVyaW1lbnRzIHBiaiBwYmpyZWxvYWQgc2JiIHNwZiBzcGZyZWxvYWQgc3JfYm5zX2FkZHJlc3Mgc3R0aWNrIi5zcGxpdCgiICIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRXosRnosQnosR3osSmFhO18uQ3o9ZnVuY3Rpb24oYSl7cmV0dXJuISEoKEJ6KGBmJHtNYXRoLmZsb29yKGEvMzEpKzF9YCl8fDApJjE8PGElMzEpfTtfLkR6PWZ1bmN0aW9uKGEsYil7dmFyIGM9YGYke01hdGguZmxvb3IoYS8zMSkrMX1gO2E9MTw8YSUzMTt2YXIgZD1CeihjKXx8MDtkPWI/ZHxhOmQmfmE7ZD09PTA/ZGVsZXRlIF8ueHNbY106Xy54c1tjXT1kLnRvU3RyaW5nKDE2KS50b1N0cmluZygpfTtFej1mdW5jdGlvbihhKXtpZigvXmYoWzEtOV1bMC05XSopJC8udGVzdChhKSl0aHJvdyBFcnJvcigiZmFgIithKTt9O0Z6PWZ1bmN0aW9uKGEpe2lmKCEvXlx3KyQvLnRlc3QoYSkpdGhyb3cgRXJyb3IoImdhYCIrYSk7fTtCej1mdW5jdGlvbihhKXthPV8ueHNbYV0hPT12b2lkIDA/Xy54c1thXS50b1N0cmluZygpOm51bGw7cmV0dXJuIGEhPW51bGwmJi9eW0EtRmEtZjAtOV0rJC8udGVzdChhKT9wYXJzZUludChhLDE2KTpudWxsfTsKXy5Iej1mdW5jdGlvbigpe0d6fHwoR3o9bmV3IEphYSk7cmV0dXJuIEd6fTtfLkl6PWZ1bmN0aW9uKGEpe3JldHVybiBfLlZpKCgpPT57aWYoXy5CcShhKSlyZXR1cm4hMTtfLkFxKGEsdm9pZCAwLHZvaWQgMCk7cmV0dXJuITB9KSgpfTsKSmFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPV8udygiQUxUX1BSRUZfQ09PS0lFX05BTUUiLCJQUkVGIik7dGhpcy5vPV8udygiQUxUX1BSRUZfQ09PS0lFX0RPTUFJTiIsInlvdXR1YmUuY29tIik7dmFyIGE9Xy5Mai5nZXQodGhpcy5qLHZvaWQgMCk7YSYmdGhpcy5wYXJzZShhKX1nZXQoYSxiKXtGeihhKTtFeihhKTthPV8ueHNbYV0hPT12b2lkIDA/Xy54c1thXS50b1N0cmluZygpOm51bGw7cmV0dXJuIGEhPW51bGw/YTpiP2I6IiJ9c2V0KGEsYil7RnooYSk7RXooYSk7aWYoYj09bnVsbCl0aHJvdyBFcnJvcigiZWEiKTtfLnhzW2FdPWIudG9TdHJpbmcoKX1yZW1vdmUoYSl7RnooYSk7RXooYSk7ZGVsZXRlIF8ueHNbYV19c2F2ZSgpe18uTWoodGhpcy5qLHRoaXMuZHVtcCgpLDYzMDcyRTMsdGhpcy5vLCEwKX1jbGVhcigpe2ZvcihsZXQgYSBpbiBfLnhzKWRlbGV0ZSBfLnhzW2FdfWR1bXAoKXt2YXIgYT1bXTtmb3IobGV0IGIgaW4gXy54cylfLnhzLmhhc093blByb3BlcnR5KGIpJiYKYS5wdXNoKGAke2J9PWArZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhfLnhzW2JdKSkpO3JldHVybiBhLmpvaW4oIiYiKX1wYXJzZShhKXthPWRlY29kZVVSSUNvbXBvbmVudChhKS5zcGxpdCgiJiIpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hW2NdLnNwbGl0KCI9Iik7bGV0IGQ9YlswXTsoYj1iWzFdKSYmKF8ueHNbZF09Yi50b1N0cmluZygpKX19fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIExhYSxLYWE7Xy5Kej1mdW5jdGlvbihhLGIpe2Eudi5zZXQoYi5qYSxiKTt2YXIgYz1hLmouZ2V0KGIuamEpO2lmKGMpdHJ5e2MuUWgoYS5yZXNvbHZlKGIuamEpKX1jYXRjaChkKXtjLlF6KGQpfX07Xy5Lej1mdW5jdGlvbihhLGI9Xy5hYil7cmV0dXJuIF8uYmIoYSxiKXx8Xy5GcX07Xy5Mej1mdW5jdGlvbigpe3JldHVybiBfLnUueXRQdWJzdWJQdWJzdWJJbnN0YW5jZX07Xy5Nej1mdW5jdGlvbihhLGIpe3ZhciBjPV8uTHooKTtpZihjJiZiKXtsZXQgZD1jLnN1YnNjcmliZShhLGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLGY9KCk9PntfLlJzW2RdJiZiLmFwcGx5JiZ0eXBlb2YgYi5hcHBseT09ImZ1bmN0aW9uIiYmYi5hcHBseSh3aW5kb3csZSl9O3RyeXtfLlRzW2FdP2YoKTpfLm1qKGYsMCl9Y2F0Y2goaCl7Xy5VaShoKX19LHZvaWQgMCk7Xy5Sc1tkXT0hMDtfLlNzW2FdfHwoXy5Tc1thXT1bXSk7Xy5Tc1thXS5wdXNoKGQpO3JldHVybiBkfXJldHVybiAwfTsKXy5Oej1mdW5jdGlvbihhKXt2YXIgYj1fLkx6KCk7YiYmKHR5cGVvZiBhPT09Im51bWJlciI/YT1bYV06dHlwZW9mIGE9PT0ic3RyaW5nIiYmKGE9W3BhcnNlSW50KGEsMTApXSksXy50YihhLGM9PntiLnVuc3Vic2NyaWJlQnlLZXkoYyk7ZGVsZXRlIF8uUnNbY119KSl9O18uT3o9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkx6KCk7cmV0dXJuIGM/Yy5wdWJsaXNoLmFwcGx5KGMsYXJndW1lbnRzKTohMX07Xy5Qej1mdW5jdGlvbihhKXtyZXR1cm4gS2FhW2FdfHwiTEFURU5DWV9BQ1RJT05fVU5LTk9XTiJ9O0xhYT1mdW5jdGlvbigpe3ZhciBhPV8uc3EuZ2V0RW50cmllc0J5VHlwZT8uKCJtYXJrIik7YSYmYS5mb3JFYWNoKGI9PntiLm5hbWUuc3RhcnRzV2l0aCgibWFya18iKSYmXy5zcS5jbGVhck1hcmtzPy4oYi5uYW1lKX0pfTtfLlF6PWZ1bmN0aW9uKGEpe18ucmEoInl0Z2xvYmFsLnRpbWluZyIrKGF8fCIiKSsicmVhZHlfIiwhMCl9OwpfLlJ6PWZ1bmN0aW9uKGEpe3JldHVybiBfLlZpKCgpPT5fLkJxKCJfc3RhcnQiLGEpKSgpfTtfLlN6PWZ1bmN0aW9uKGEpe18uVmkoKCk9PntfLlJ6KGEpJiZfLkFxKCJhYSIsdm9pZCAwLGEpO3ZhciBiPWF8fCIiLGM9Xy50bygpO2NbYl0mJmRlbGV0ZSBjW2JdO3ZhciBkPXt0aW1lck5hbWU6YixpbmZvOnt9LHRpY2s6e30sc3Bhbjp7fSxqc3BiSW5mbzpbXX07Xy5zbyhkKTtjW2JdPWQ7Xy5qbyhhKTsoMCxfLmJ0KSgpO0xhYSgpO2F8fChfLncoIlRJTUlOR19BQ1RJT04iKSYmXy5RaSgiUFJFVklPVVNfQUNUSU9OIixfLncoIlRJTUlOR19BQ1RJT04iKSksXy5RaSgiVElNSU5HX0FDVElPTiIsIiIpKX0pKCl9OwpfLlR6PWZ1bmN0aW9uKGEsYj17fSxjLGQpe18uVmkoKCk9Pnt2YXIgZT1jP2M6YTtfLlN6KGUpO3ZhciBmPWIuc2FtcGxlUmF0ZTtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fGY9PT12b2lkIDB8fGY8PTEpZj0hMTtlbHNle3ZhciBoPV8ucG8oZSk7Zj1fLkduKGgpJWYhPT0wfWYmJihfLmtvKGUpLmFjdGlvbkRpc2FibGVkPSEwKTtfLnVvKGV8fCIiKS5pbmZvLmFjdGlvblR5cGU9YTtiLmN0dEF1dGhJbmZvJiYoXy5rbyhlKS5jdHRBdXRoSW5mbz1iLmN0dEF1dGhJbmZvKTtfLlFpKGUrIlRJTUlOR19BQ1RJT04iLGEpO18uVmkoXy5vcSkoYi5zdGFydFRpbWUsZSk7Zj17YWN0aW9uVHlwZTpkfHxfLlB6KGEpfTtiLlRKJiYoZi5wcmV2aW91c0FjdGlvbj1fLlB6KF8udygiVElNSU5HX0FDVElPTiIpKSk7KGg9Xy5pcSgpKSYmaCE9PSJVTkRFRklORURfQ1NOIiYmKGYuY2xpZW50U2NyZWVuTm9uY2U9aCk7Xy56cShmLGUpO18uUXooZSl9KSgpfTsKS2FhPXthdXRvX3NlYXJjaDoiTEFURU5DWV9BQ1RJT05fQVVUT19TRUFSQ0giLGFkX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9BRF9UT19BRCIsYWRfdG9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0FEX1RPX1ZJREVPIixhcHBfc3RhcnR1cDoiTEFURU5DWV9BQ1RJT05fQVBQX1NUQVJUVVAiLGJyb3dzZToiTEFURU5DWV9BQ1RJT05fQlJPV1NFIixjYXN0X3NwbGFzaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9TUExBU0giLGNhbGxfdG9fY2FzdDoiTEFURU5DWV9BQ1RJT05fQ0FMTF9UT19DQVNUIixjaGFubmVsX2FjdGl2aXR5OiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX0NIQU5ORUxfQUNUSVZJVFkiLGNoYW5uZWxzOiJMQVRFTkNZX0FDVElPTl9DSEFOTkVMUyIsY2hpcHM6IkxBVEVOQ1lfQUNUSU9OX0NISVBTIixjb21tZXJjZV90cmFuc2FjdGlvbjoiTEFURU5DWV9BQ1RJT05fQ09NTUVSQ0VfVFJBTlNBQ1RJT04iLGRpcmVjdF9wbGF5YmFjazoiTEFURU5DWV9BQ1RJT05fRElSRUNUX1BMQVlCQUNLIiwKZWRpdG9yOiJMQVRFTkNZX0FDVElPTl9FRElUT1IiLGVtYmVkOiJMQVRFTkNZX0FDVElPTl9FTUJFRCIsZW1iZWRfbm9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0VNQkVEX05PX1ZJREVPIixlbnRpdHlfa2V5X3NlcmlhbGl6YXRpb25fcGVyZjoiTEFURU5DWV9BQ1RJT05fRU5USVRZX0tFWV9TRVJJQUxJWkFUSU9OX1BFUkYiLGVudGl0eV9rZXlfZGVzZXJpYWxpemF0aW9uX3BlcmY6IkxBVEVOQ1lfQUNUSU9OX0VOVElUWV9LRVlfREVTRVJJQUxJWkFUSU9OX1BFUkYiLGV4cGxvcmU6IkxBVEVOQ1lfQUNUSU9OX0VYUExPUkUiLGZhdm9yaXRlczoiTEFURU5DWV9BQ1RJT05fRkFWT1JJVEVTIixob21lOiJMQVRFTkNZX0FDVElPTl9IT01FIixpbmJvYXJkaW5nOiJMQVRFTkNZX0FDVElPTl9JTkJPQVJESU5HIixsYW5kaW5nOiJMQVRFTkNZX0FDVElPTl9MQU5ESU5HIixsZWFybmluZzoiTEFURU5DWV9BQ1RJT05fTEVBUk5JTkciLGxlYXJuaW5nX2pvdXJuZXlfYnJvd3NlOiJMQVRFTkNZX0FDVElPTl9MRUFSTklOR19KT1VSTkVZX0JST1dTRSIsCmxlYXJuaW5nX2pvdXJuZXlfd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX0xFQVJOSU5HX0pPVVJORVlfV0FUQ0giLGxpYnJhcnk6IkxBVEVOQ1lfQUNUSU9OX0xJQlJBUlkiLGxpdmU6IkxBVEVOQ1lfQUNUSU9OX0xJVkUiLGxpdmVfcGFnaW5hdGlvbjoiTEFURU5DWV9BQ1RJT05fTElWRV9QQUdJTkFUSU9OIixtYW5hZ2VtZW50OiJMQVRFTkNZX0FDVElPTl9NQU5BR0VNRU5UIixtaW5pX2FwcDoiTEFURU5DWV9BQ1RJT05fTUlOSV9BUFBfUExBWSIsbm90aWZpY2F0aW9uX3NldHRpbmdzOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX05PVElGSUNBVElPTl9TRVRUSU5HUyIsb25ib2FyZGluZzoiTEFURU5DWV9BQ1RJT05fT05CT0FSRElORyIscGFyZW50X3Byb2ZpbGVfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0tJRFNfUEFSRU5UX1BST0ZJTEVfU0VUVElOR1MiLHBhcmVudF90b29sc19jb2xsZWN0aW9uOiJMQVRFTkNZX0FDVElPTl9QQVJFTlRfVE9PTFNfQ09MTEVDVElPTiIscGFyZW50X3Rvb2xzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fUEFSRU5UX1RPT0xTX0RBU0hCT0FSRCIsCnBsYXllcl9hdHQ6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9BVFRFU1RBVElPTiIscHJlYnVmZmVyOiJMQVRFTkNZX0FDVElPTl9QUkVCVUZGRVIiLHByZWZldGNoOiJMQVRFTkNZX0FDVElPTl9QUkVGRVRDSCIscHJvZmlsZV9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fS0lEU19QUk9GSUxFX1NFVFRJTkdTIixwcm9maWxlX3N3aXRjaGVyOiJMQVRFTkNZX0FDVElPTl9MT0dJTiIscHJvamVjdHM6IkxBVEVOQ1lfQUNUSU9OX1BST0pFQ1RTIixyZWVsX3dhdGNoOiJMQVRFTkNZX0FDVElPTl9SRUVMX1dBVENIIixyZXN1bHRzOiJMQVRFTkNZX0FDVElPTl9SRVNVTFRTIixyZWQ6IkxBVEVOQ1lfQUNUSU9OX1BSRU1JVU1fUEFHRV9HRVRfQlJPV1NFIixwcmVtaXVtOiJMQVRFTkNZX0FDVElPTl9QUkVNSVVNX1BBR0VfR0VUX0JST1dTRSIscHJlbWl1bV9saXRlX3Vwc2VsbDoiTEFURU5DWV9BQ1RJT05fUFJFTUlVTV9MSVRFX1VQU0VMTCIscHJpdmFjeV9wb2xpY3k6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9QT0xJQ1kiLApyZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1JFVklFVyIsc2VhcmNoX292ZXJ2aWV3X2Fuc3dlcjoiTEFURU5DWV9BQ1RJT05fU0VBUkNIX09WRVJWSUVXX0FOU1dFUiIsc2VhcmNoX3VpOiJMQVRFTkNZX0FDVElPTl9TRUFSQ0hfVUkiLHNlYXJjaF9zdWdnZXN0OiJMQVRFTkNZX0FDVElPTl9TVUdHRVNUIixzZWFyY2hfemVyb19zdGF0ZToiTEFURU5DWV9BQ1RJT05fU0VBUkNIX1pFUk9fU1RBVEUiLHNlY3JldF9jb2RlOiJMQVRFTkNZX0FDVElPTl9LSURTX1NFQ1JFVF9DT0RFIixzd2l0Y2hwbGFuOiJMQVRFTkNZX0FDVElPTl9VTlBMVUdHRURfU1dJVENIX1BMQU4iLHNlZWs6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9TRUVLIixzZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fU0VUVElOR1MiLHN0b3JlOiJMQVRFTkNZX0FDVElPTl9TVE9SRSIsc3VwZXJ2aXNpb25fZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1NVUEVSVklTSU9OX0RBU0hCT0FSRCIsYmVkdGltZV9yZW1pbmRlcl9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9CRURUSU1FX1JFTUlOREVSX1NFVFRJTkdTIiwKYnJlYWtfcmVtaW5kZXJfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfQlJFQUtfUkVNSU5ERVJfU0VUVElOR1MiLHN1cGVydmlzaW9uX3NldHRpbmdzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TVVBFUlZJU0lPTl9TRVRUSU5HU19EQVNIQk9BUkQiLHRpbWVfbWFuYWdlbWVudDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9USU1FX01BTkFHRU1FTlQiLHVwZGF0ZV9wcm9maWxlOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1VQREFURV9QUk9GSUxFIix2aWV3aW5nX3Blcm1pc3Npb25zOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1ZJRVdJTkdfUEVSTUlTU0lPTlMiLHNob3J0c19zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TSE9SVFNfU0VUVElOR1MiLHByaXZhY3lfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9TRVRUSU5HUyIsdGVueDoiTEFURU5DWV9BQ1RJT05fVEVOWCIsCnZpZGVvX3ByZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1ZJREVPX1BSRVZJRVciLHZpZGVvX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9WSURFT19UT19BRCIsd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIix3YXRjaF9pdF9hZ2FpbjoiTEFURU5DWV9BQ1RJT05fS0lEU19XQVRDSF9JVF9BR0FJTiIsIndhdGNoLHdhdGNoNyI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3X2h0bWw1IjoiTEFURU5DWV9BQ1RJT05fV0FUQ0giLCJ3YXRjaCx3YXRjaDdhZCI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3YWRfaHRtbDUiOiJMQVRFTkNZX0FDVElPTl9XQVRDSCIsd25fY29tbWVudHM6IkxBVEVOQ1lfQUNUSU9OX0xPQURfQ09NTUVOVFMiLHd3X3JxczoiTEFURU5DWV9BQ1RJT05fV0hPX0lTX1dBVENISU5HIix2b2ljZV9hc3Npc3RhbnQ6IkxBVEVOQ1lfQUNUSU9OX1ZPSUNFX0FTU0lTVEFOVCIsY2FzdF9sb2FkX2J5X2VudGl0eV90b193YXRjaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9MT0FEX0JZX0VOVElUWV9UT19XQVRDSCIsCm5ldHdvcmtsZXNzX3BlcmZvcm1hbmNlOiJMQVRFTkNZX0FDVElPTl9ORVRXT1JLTEVTU19QRVJGT1JNQU5DRSIsZ2VsX2NvbXByZXNzaW9uOiJMQVRFTkNZX0FDVElPTl9HRUxfQ09NUFJFU1NJT04iLGdlbF9qc3BiX3NlcmlhbGl6ZToiTEFURU5DWV9BQ1RJT05fR0VMX0pTUEJfU0VSSUFMSVpFIixhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2g6IkxBVEVOQ1lfQUNUSU9OX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV9GRVRDSCJ9O18uVXo9bmV3IF8uSSgiZmVlZGJhY2tFbmRwb2ludCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZ6PWZ1bmN0aW9uKGEsYil7aWYoYiE9PW51bGwmJmIhPT12b2lkIDApe2lmKHR5cGVvZiBiIT09Im9iamVjdCImJnR5cGVvZiBiIT09ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJkIik7aWYoYz09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoImYiKTt2YXIgYz1iW1N5bWJvbC5kaXNwb3NlXX1pZih0eXBlb2YgYyE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZyIpO2Euc3RhY2sucHVzaCh7dmFsdWU6YixkaXNwb3NlOmMsYXN5bmM6ITF9KX1yZXR1cm4gYn07Cl8uV3o9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihmKXthLmVycm9yPWEuaGFzRXJyb3I/bmV3IFN1cHByZXNzZWRFcnJvcihmLGEuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpmO2EuaGFzRXJyb3I9ITB9ZnVuY3Rpb24gYygpe2Zvcig7ZD1hLnN0YWNrLnBvcCgpOyl0cnl7aWYoIWQuYXN5bmMmJmU9PT0xKXJldHVybiBlPTAsYS5zdGFjay5wdXNoKGQpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYyk7aWYoZC5kaXNwb3NlKXt2YXIgZj1kLmRpc3Bvc2UuY2FsbChkLnZhbHVlKTtpZihkLmFzeW5jKXJldHVybiBlfD0yLFByb21pc2UucmVzb2x2ZShmKS50aGVuKGMsZnVuY3Rpb24oaCl7YihoKTtyZXR1cm4gYygpfSl9ZWxzZSBlfD0xfWNhdGNoKGgpe2IoaCl9aWYoZT09PTEpcmV0dXJuIGEuaGFzRXJyb3I/UHJvbWlzZS5yZWplY3QoYS5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKCk7aWYoYS5oYXNFcnJvcil0aHJvdyBhLmVycm9yO312YXIgZCwKZT0wO2MoKX07Xy5Yej1mdW5jdGlvbigpe3RyeXtyZXR1cm4hIXNlbGYubG9jYWxTdG9yYWdlfWNhdGNoe3JldHVybiExfX07Xy5Zej1uZXcgXy5JKCJzaGFyZUVuZHBvaW50Iik7Xy5aej1uZXcgXy5JKCJzaGFyZUVudGl0eUVuZHBvaW50Iik7Xy5NYWE9bmV3IF8uSSgic2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQiKTtfLk5hYT1uZXcgXy5JKCJ3ZWJQbGF5ZXJTaGFyZUVudGl0eVNlcnZpY2VFbmRwb2ludCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFBPWZ1bmN0aW9uKGEsYj17fSxjKXthPShhPWEgaW4gXy4kej9fLiR6W2FdOmMpfHwiIjtmb3IobGV0IGQgaW4gYiljPSgpPT5TdHJpbmcoYltkXSksYT1hLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFwkXFx7IitkKyJcXH0iLCJnaSIpLGMpLGE9YS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcJCIrZCwiZ2kiKSxjKTtyZXR1cm4gYX07Xy4kej13aW5kb3cueXQmJndpbmRvdy55dC5tc2dzX3x8d2luZG93Lnl0Y2ZnJiZ3aW5kb3cueXRjZmcubXNnc3x8e307Xy5yYSgieXQubXNnc18iLF8uJHopOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgY0E7Xy5iQT1mdW5jdGlvbihhKXt2YXIgYj1hLmluZGV4T2YoIjoiKTtyZXR1cm4gYj09PS0xP3tNbTphfTp7TW06YS5zdWJzdHJpbmcoMCxiKSxkYXRhc3luY0lkOmEuc3Vic3RyaW5nKGIrMSl9fTtfLmVBPWFzeW5jIGZ1bmN0aW9uKCl7cmV0dXJuIGNBIT09dm9pZCAwP2NBOmNBPW5ldyBQcm9taXNlKGFzeW5jIGE9Pnt0cnl7YXdhaXQgXy5kQS5vcGVuKCJ0ZXN0LW9ubHkiKSxhd2FpdCBfLmRBLmRlbGV0ZSgidGVzdC1vbmx5Iil9Y2F0Y2goYil7aWYoYiBpbnN0YW5jZW9mIEVycm9yJiZiLm5hbWU9PT0iU2VjdXJpdHlFcnJvciIpe2EoITEpO3JldHVybn19YSgiY2FjaGVzImluIHdpbmRvdyl9KX07Xy5kQT1fLnUuY2FjaGVzOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmdBPW5ldyBXZWFrTWFwO18uaEE9bmV3IFNldDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiYmFzZSIpOwp2YXIgQVosQlosQ1osY3JhLERaLGVyYSxFWixGWixIWixLWixMWixNWixmcmEsUFosUVosU1osZ3JhLFZaLGNfLGRfLGVfLGZfLGdfLGhfLGlfLGpfLGtfLGlyYSxqcmEsa3JhLGxyYSxucmEsbV8sbl8sb18scF8scV8scl8sc18sdF8sdV8sdl8sd18seF8scHJhLHlfLHpfLHFyYSxBXyxycmEsc3JhLHRyYSxCXyxDXyxEXyxGXyxHXyxIXyxJXyxKXyxLXyxMXyxNXyxPXyxQXyxRXyxSXyxTXyxocmEsdXJhLHZyYSxUXyxVXyxWXyxXXyxYXyxZXyx3cmEsJF8sYTAsYjAseHJhLGQwLHlyYSxlMCx6cmEsQnJhLENyYSxEcmEsZzAsRXJhLEZyYSxHcmEsaDAsaTAsbDAsSHJhLGswLGowLG4wLElyYSxKcmEsbzAsS3JhLHAwLHEwLHIwLExyYSxNcmEsTnJhLE9yYSxQcmEsUXJhLHQwLHYwLHcwLHgwLFNyYSxUcmEseTAsQTAsQjAsQzAsRDAsRTAsRzAsVXJhLFZyYSxIMCxXcmEsWHJhLFlyYSxJMCxKMCxTMCxUMCxQMCxVMCxMMCxRMCxLMCxPMCxNMCxOMCxacmEsUjAsJHJhLFYwLGFzYSxjc2EsClgwLFkwLFowLCQwLGExLGRzYSxiMSxjMSxlc2EsZnNhLGdzYSxkMSxmMSxoc2EsZzEsanNhLGtzYSxqMSxsc2EsazEsbDEsbTEsbXNhLHIxLHNzYSx1c2EsdjEseTEsdzEsdnNhLHhzYSxCMSxDMSxEMSx5c2EsRTEsRjEsQXNhLEJzYSx6c2EsQ3NhLEVzYSxGc2EsR3NhLHFzYSxvMSxuc2EsSTEsSHNhLEcxLElzYSxKc2EsSzEsTTEsTjEsS3NhLE8xLFAxLExzYSxSMSxPc2EsUHNhLFJzYSxRMSxVMSxXMSxUc2EsJDEsWDEsVXNhLFZzYSxXc2EsWHNhLGF0YSxidGEsZjIsJHNhLFpzYSxhMixlMixiMixjdGEsZzIsaDIsaTIsazIsbDIsZXRhLGZ0YSxndGEsbjIscDIsbzIsdDIsanRhLHIyLGl0YSx3Mix2MixtdGEsbnRhLG90YSxwdGEseDIseTIsejIsQTIsQzIsdXRhLHZ0YSxFMixGMix3dGEsRzIseXRhLFpfLEkyLEoyLEwyLHp0YSxOMixPMixQMixCdGEsUTIsRHRhLFMyLFQyLFUyLEV0YSxWMixXMixGdGEsR3RhLGEzLGIzLEl0YSxlMyxKdGEsZDMsZjMsS3RhLEx0YSxNdGEsYzMsSHRhLApoMyxOdGEsazMsT3RhLFB0YSxRdGEsbTMsbjMsbDMsUnRhLG8zLHAzLFN0YSxxMyxUdGEscjMsczMsdzMsVXRhLHgzLHkzLFZ0YSxZdGEsWnRhLEMzLEQzLEUzLCR0YSxidWEsY3VhLEczLGR1YSxldWEsWHRhLEgzLEkzLGZ1YSxndWEsYzQsZDQsZTQsaHVhLGY0LGl1YSxqdWEsWXNhLGh0YSxrdWEsbnVhLGc0LGk0LHB1YSxoNCxrNCxzdWEsdHVhLGw0LG00LHZ1YSx3dWEsbzQseHVhLHl1YSxxNCx6dWEsQXVhLEJ1YSxEdWEsR3VhLHY0LEp1YSx3NCxJdWEsSHVhLEt1YSx4NCx5NCx6NCxBNCxENCxDNCxCNCxFNCxNdWEsRjQsT3VhLFB1YSxRdWEsUnVhLFN1YSxUdWEsVXVhLEk0LEs0LFp1YSwkdWEsUTQsTTQsVnVhLFI0LFM0LGF2YSxidmEsY3ZhLGR2YSxkcmEsQTMsR1osSVosSlosTl8sTlosT1osUlosVFosVVosJFosYV8sYl8sWlosWVosV1osWFosbF8sRV8sb3JhLFY0LGV2YSxXNCxYNCxmdmEsWTQsWjQsZ3ZhLGh2YSxpdmEsanZhLGt2YSwkNCxsdmEsbXZhLGE1LG52YSxiNSwKYzUsb3ZhLHB2YTtBWj1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIGF9O0JaPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5xdyhhLGIsQVooYykpfTtDWj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCl7aWYoISgwLF8ud3IpKGMpKXRocm93IF8uSXcoImVudW0iKTtjfD0wfXJldHVybiBfLnF3KGEsYixjKX07Y3JhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChhLmNoYXJDb2RlQXQoYykpO3JldHVybiBifTtEWj1mdW5jdGlvbihhLGIpe3JldHVybiBhW2JdKyhhW2IrMV08PDgpKyhhW2IrMl08PDE2KSsoYVtiKzNdPDwyNCl9OwplcmE9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe2MtPWQ7Yy09ZTtjXj1lPj4+MTM7ZC09ZTtkLT1jO2RePWM8PDg7ZS09YztlLT1kO2VePWQ+Pj4xMztjLT1kO2MtPWU7Y149ZT4+PjEyO2QtPWU7ZC09YztkXj1jPDwxNjtlLT1jO2UtPWQ7ZV49ZD4+PjU7Yy09ZDtjLT1lO2NePWU+Pj4zO2QtPWU7ZC09YztkXj1jPDwxMDtlLT1jO2UtPWQ7ZV49ZD4+PjE1fWE9Y3JhKGEpO2Zvcih2YXIgYz0yNjU0NDM1NzY5LGQ9MjY1NDQzNTc2OSxlPTMxNDE1OTI2NSxmPWEubGVuZ3RoLGg9ZixrPTA7aD49MTI7aC09MTIsays9MTIpYys9RFooYSxrKSxkKz1EWihhLGsrNCksZSs9RFooYSxrKzgpLGIoKTtlKz1mO3N3aXRjaChoKXtjYXNlIDExOmUrPWFbaysxMF08PDI0O2Nhc2UgMTA6ZSs9YVtrKzldPDwxNjtjYXNlIDk6ZSs9YVtrKzhdPDw4O2Nhc2UgODpkKz1hW2srN108PDI0O2Nhc2UgNzpkKz1hW2srNl08PDE2O2Nhc2UgNjpkKz1hW2srNV08PDg7Y2FzZSA1OmQrPWFbays0XTtjYXNlIDQ6Yys9CmFbayszXTw8MjQ7Y2FzZSAzOmMrPWFbaysyXTw8MTY7Y2FzZSAyOmMrPWFbaysxXTw8ODtjYXNlIDE6Yys9YVtrXX1iKCk7cmV0dXJuIGRyYS50b1N0cmluZyhlKX07RVo9ZnVuY3Rpb24oYSxiKXthLmFkZE9uRGlzcG9zZUNhbGxiYWNrKF8uRGEoXy5aZCxiKSl9O0ZaPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShfLnd3KGEpfHwwKX07SFo9ZnVuY3Rpb24oYSl7cmV0dXJuKEdafHwoR1o9bmV3IFRleHRFbmNvZGVyKSkuZW5jb2RlKGEpfTtLWj1mdW5jdGlvbihhKXt2YXIgYj1hPj4+MDtJWj1iO0paPShhLWIpLzQyOTQ5NjcyOTY+Pj4wfTtMWj1mdW5jdGlvbihhKXtpZihhPDApe0taKC1hKTthPUlaO3ZhciBiPUpaO2I9fmI7YT9hPX5hKzE6Yis9MTtsZXQgW2MsZF09W2EsYl07SVo9Yz4+PjA7Slo9ZD4+PjB9ZWxzZSBLWihhKX07Ck1aPWZ1bmN0aW9uKGEpe2EubGVuZ3RoPDE2P0xaKE51bWJlcihhKSk6KGE9QmlnSW50KGEpLElaPU51bWJlcihhJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj4wLEpaPU51bWJlcihhPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSkpfTsKZnJhPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIG5ldyBOWihfLnV3KGEpLCEwKTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBuZXcgTloobmV3IFVpbnQ4QXJyYXkoYSksITApO2lmKGEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiBuZXcgTlooYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybiBhPW5ldyBVaW50OEFycmF5KGEpLG5ldyBOWihhLCExKTtpZihhLmNvbnN0cnVjdG9yPT09Xy5SYyl7bGV0IGI9Xy53dyhhKXx8bmV3IFVpbnQ4QXJyYXkoMCk7cmV0dXJuIG5ldyBOWihiLCEwLGEpfWlmKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBhPWEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5P2E6bmV3IFVpbnQ4QXJyYXkoYS5idWZmZXIsYS5ieXRlT2Zmc2V0LGEuYnl0ZUxlbmd0aCksbmV3IE5aKGEsITEpO3Rocm93IEVycm9yKCk7fTsKUFo9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubz09PTA/bmV3IE9aKDAsMSt+YS5qKTpuZXcgT1oofmEubysxLH5hLmopfTtRWj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IE9aKGEmNDI5NDk2NzI5NSxNYXRoLmZsb29yKGEvNDI5NDk2NzI5NikpfTtTWj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gUlp8fChSWj1uZXcgT1ooMCwwKSk7aWYoIS9eXGQrJC8udGVzdChhKSlyZXR1cm4gbnVsbDtNWihhKTtyZXR1cm4gbmV3IE9aKElaLEpaKX07Z3JhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVFooYSY0Mjk0OTY3Mjk1LE1hdGguZmxvb3IoYS80Mjk0OTY3Mjk2KSl9O1ZaPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBVWnx8KFVaPW5ldyBUWigwLDApKTtpZighL14tP1xkKyQvLnRlc3QoYSkpcmV0dXJuIG51bGw7TVooYSk7cmV0dXJuIG5ldyBUWihJWixKWil9OwpjXz1mdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIEJpZ0ludDY0QXJyYXkhPT0idW5kZWZpbmVkIilyZXR1cm4gV1p8fChXWj1uZXcgQmlnSW50NjRBcnJheSgxKSxYWj1uZXcgVWludDMyQXJyYXkoV1ouYnVmZmVyKSxXWlswXT1CaWdJbnQoMSksWVo9WFpbMF09PT0xKSxXWlswXT1hLGE9WVo/MDoxLG5ldyBiKFhaW2FdLFhaWzEtYV0pO1pafHwoJFo9QmlnSW50KE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKSxhXz1CaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLGJfPUJpZ0ludCg0Mjk0OTY3Mjk1KSxaWj1CaWdJbnQoMzIpKTtpZihhPj0kWiYmYTw9YV8pcmV0dXJuIGMoTnVtYmVyKGEpKTthPUJpZ0ludC5hc1VpbnROKDY0LGEpO3JldHVybiBuZXcgYihOdW1iZXIoYSZiXyksTnVtYmVyKGE+PlpaKSl9O2RfPWZ1bmN0aW9uKGEsYixjKXtmb3IoO2M+MHx8Yj4xMjc7KWEuai5wdXNoKGImMTI3fDEyOCksYj0oYj4+Pjd8Yzw8MjUpPj4+MCxjPj4+PTc7YS5qLnB1c2goYil9OwplXz1mdW5jdGlvbihhLGIpe2Euai5wdXNoKGI+Pj4wJjI1NSk7YS5qLnB1c2goYj4+PjgmMjU1KTthLmoucHVzaChiPj4+MTYmMjU1KTthLmoucHVzaChiPj4+MjQmMjU1KX07Zl89ZnVuY3Rpb24oYSxiKXtpZihiPj0wKV8uWHkoYSxiKTtlbHNle2ZvcihsZXQgYz0wO2M8OTtjKyspYS5qLnB1c2goYiYxMjd8MTI4KSxiPj49NzthLmoucHVzaCgxKX19O2dfPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjpTWihhKX19O2hfPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjphLmxlbmd0aCYmYVswXT09PSItIj9TWihhLnN1YnN0cmluZygxKSk6U1ooYSl9fTsKaV89ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpc3dpdGNoKGdfKGMpLF8uWnkoYSxiLDEpLHR5cGVvZiBjKXtjYXNlICJudW1iZXIiOmE9YS5qO0taKGMpO2VfKGEsSVopO2VfKGEsSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhjLE9aLFFaKTthPWEuajtiPWMuajtlXyhhLGMubyk7ZV8oYSxiKTticmVhaztkZWZhdWx0OmM9U1ooYyksYT1hLmosYj1jLmosZV8oYSxjLm8pLGVfKGEsYil9fTtqXz1mdW5jdGlvbihhLGIsYyl7YyE9bnVsbCYmKGM9cGFyc2VJbnQoYywxMCksXy5aeShhLGIsMCksZl8oYS5qLGMpKX07a189ZnVuY3Rpb24oYSxiLGMpe18uWnkoYSxiLDIpO18uWHkoYS5qLGMubGVuZ3RoKTtfLll5KGEsYS5qLmVuZCgpKTtfLll5KGEsYyl9OwppcmE9ZnVuY3Rpb24oYSl7dmFyIGI9InRydWUiLnRvU3RyaW5nKCksYz1baHJhYGRhdGEtYF07aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJoIik7aWYoYy5tYXAoZD0+e2lmKGQgaW5zdGFuY2VvZiBsXylkPWQuajtlbHNlIHRocm93IEVycm9yKCJoIik7cmV0dXJuIGR9KS5ldmVyeShkPT4iZGF0YS1sb2FkZWQiLmluZGV4T2YoZCkhPT0wKSl0aHJvdyBFcnJvcigiaWBkYXRhLWxvYWRlZCIpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWxvYWRlZCIsYil9O2pyYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYSxiLHZvaWQgMCl9O2tyYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYSxiLHtkdXJhdGlvbjowfSl9O2xyYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPmI/MTphPGI/LTE6MH07Cm5yYT1mdW5jdGlvbigpe3ZhciBhPW1yYTtyZXR1cm4gXy5DYyhiPT57Zm9yKGxldCBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX07bV89ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO3ZhciBjO2I8PTIwOTcxNTE/Yz0iIisoNDI5NDk2NzI5NipiK2EpOmM9IiIrKEJpZ0ludChiKTw8QmlnSW50KDMyKXxCaWdJbnQoYSkpO3JldHVybiBjfTtuXz1mdW5jdGlvbihhLGIpe3ZhciBjPWIqNDI5NDk2NzI5NisoYT4+PjApO3JldHVybiBOdW1iZXIuaXNTYWZlSW50ZWdlcihjKT9jOm1fKGEsYil9O29fPWZ1bmN0aW9uKCl7dmFyIGE9SVosYj1KWixjO2ImMjE0NzQ4MzY0OD9jPSIiKyhCaWdJbnQoYnwwKTw8QmlnSW50KDMyKXxCaWdJbnQoYT4+PjApKTpjPW1fKGEsYik7cmV0dXJuIGN9OwpwXz1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJudW1iZXIiKXRocm93IEVycm9yKCJxYCIrdHlwZW9mIGErImAiK2EpO3JldHVybiBhfTtxXz1mdW5jdGlvbihhKXtpZihhPT1udWxsfHx0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO2lmKGE9PT0iTmFOInx8YT09PSJJbmZpbml0eSJ8fGE9PT0iLUluZmluaXR5IilyZXR1cm4gTnVtYmVyKGEpfTtyXz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJpZ2ludCI6cmV0dXJuITA7Y2FzZSAibnVtYmVyIjpyZXR1cm4oMCxfLndyKShhKTtjYXNlICJzdHJpbmciOnJldHVybiBvcmEudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07c189ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJzdHJpbmciJiZhKWE9K2E7ZWxzZSBpZih0eXBlb2YgYSE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4oMCxfLndyKShhKT9hPj4+MDp2b2lkIDB9Owp0Xz1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLnhyKShOdW1iZXIoYSkpO2lmKCgwLF8udnIpKGIpKXJldHVybiBfLkZjKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxCaWdJbnQoYSkpKX07dV89ZnVuY3Rpb24oYSl7dmFyIGI9KDAsXy54cikoTnVtYmVyKGEpKTtpZigoMCxfLnZyKShiKSlyZXR1cm4gU3RyaW5nKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtiPWEubGVuZ3RoOyhhWzBdPT09Ii0iP2I8MjB8fGI9PT0yMCYmYTw9Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IjpiPDE5fHxiPT09MTkmJmE8PSI5MjIzMzcyMDM2ODU0Nzc1ODA3Iil8fChNWihhKSxhPW9fKCkpO3JldHVybiBhfTsKdl89ZnVuY3Rpb24oYSl7YT0oMCxfLnhyKShhKTtpZighKDAsXy52cikoYSkpe0xaKGEpO3ZhciBiPUlaLGM9Slo7aWYoYT1jJjIxNDc0ODM2NDgpYj1+YisxPj4+MCxjPX5jPj4+MCxiPT0wJiYoYz1jKzE+Pj4wKTtiPW5fKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9O3dfPWZ1bmN0aW9uKGEpe2E9KDAsXy54cikoYSk7KDAsXy52cikoYSk/YT1TdHJpbmcoYSk6KExaKGEpLGE9b18oKSk7cmV0dXJuIGF9O3hfPWZ1bmN0aW9uKGEpe3JldHVybigwLF8udnIpKGEpP18uRmModl8oYSkpOl8uRmMod18oYSkpfTsKcHJhPWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtiPTEwMjQ7aWYoIXJfKGEpKXRocm93IF8uSXcoImludDY0Iik7dmFyIGM9dHlwZW9mIGE7c3dpdGNoKGIpe2Nhc2UgNTEyOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiB1XyhhKTtjYXNlICJiaWdpbnQiOnJldHVybiBTdHJpbmcoKDAsXy50cikoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIHdfKGEpfWNhc2UgMTAyNDpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gdF8oYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxhKSk7ZGVmYXVsdDpyZXR1cm4geF8oYSl9Y2FzZSAwOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiB1XyhhKTtjYXNlICJiaWdpbnQiOnJldHVybiBfLkZjKCgwLF8udHIpKDY0LGEpKTtkZWZhdWx0OnJldHVybiB2XyhhKX1kZWZhdWx0OnJldHVybiBfLmViKGIsIlVua25vd24gZm9ybWF0IHJlcXVlc3RlZCB0eXBlIGZvciBpbnQ2NCIpfX07CnlfPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP2E6cHJhKGEpfTt6Xz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtpZihhPT1udWxsKXJldHVybiBhO2lmKGI9PT0iYmlnaW50IilyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxhKSk7aWYocl8oYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj90XyhhKTp4XyhhKX07cXJhPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7dmFyIGI9dHlwZW9mIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoKDAsXy50cikoNjQsYSkpO2lmKHJfKGEpKXtpZihiPT09InN0cmluZyIpcmV0dXJuIHVfKGEpO2lmKGI9PT0ibnVtYmVyIilyZXR1cm4gdl8oYSl9fTsKQV89ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTt2YXIgYj10eXBlb2YgYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIFN0cmluZygoMCxfLnVyKSg2NCxhKSk7aWYocl8oYSkpe2lmKGI9PT0ic3RyaW5nIilyZXR1cm4gYj0oMCxfLnhyKShOdW1iZXIoYSkpLCgwLF8udnIpKGIpJiZiPj0wP2E9U3RyaW5nKGIpOihiPWEuaW5kZXhPZigiLiIpLGIhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxiKSksYVswXT09PSItIj9iPSExOihiPWEubGVuZ3RoLGI9YjwyMD8hMDpiPT09MjAmJmE8PSIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpLGJ8fChNWihhKSxhPW1fKElaLEpaKSkpLGE7aWYoYj09PSJudW1iZXIiKXJldHVybiBhPSgwLF8ueHIpKGEpLGE+PTAmJigwLF8udnIpKGEpfHwoTFooYSksYT1uXyhJWixKWikpLGF9fTtycmE9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PSJzdHJpbmcifHxhIGluc3RhbmNlb2YgXy5SYylyZXR1cm4gYX07CnNyYT1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIGF9O3RyYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5OdyhhLCEwKX07Ql89ZnVuY3Rpb24oYSl7YT1fLmVkKGEsMSx2b2lkIDAsdm9pZCAwLHRyYSk7cmV0dXJuIGE9PW51bGw/Xy5NdygpOmF9OwpDXz1mdW5jdGlvbihhLGIsYyl7Xy5udyhhKTt2YXIgZD1hLkRhLGU9ZFtfLkFjXXwwO2lmKGI9PW51bGwpcmV0dXJuIF8ucHcoZCxlLDMpLGE7dmFyIGY9Yj09PV8ubXI/NzpiW18uQWNdfDAsaD1mLGs9Xy5UeShmKSxsPWt8fE9iamVjdC5pc0Zyb3plbihiKTtrfHwoZj0wKTtsfHwoYj1bLi4uYl0saD0wLGY9Xy5VeShmLGUpLGw9ITEpO2Z8PTU7az0oNCZmPzUxMiZmPzUxMjoxMDI0JmY/MTAyNDowOnZvaWQgMCk/PzEwMjQ7Znw9aztmb3IobGV0IG09MDttPGIubGVuZ3RoO20rKyl7bGV0IG49YlttXSxwPWMobixrKTtPYmplY3QuaXMobixwKXx8KGwmJihiPVsuLi5iXSxoPTAsZj1fLlV5KGYsZSksbD0hMSksYlttXT1wKX1mIT09aCYmKGwmJihiPVsuLi5iXSxmPV8uVXkoZixlKSksYltfLkFjXT1mKTtfLnB3KGQsZSwzLGIpO3JldHVybiBhfTsKRF89ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5nZXQoZCk7aWYoZSE9bnVsbClyZXR1cm4gZTtlPTA7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKyspe2xldCBoPWRbZl07Xy5kZChiLGgpIT1udWxsJiYoZSE9PTAmJihjPV8ucHcoYixjLGUpKSxlPWgpfWEuc2V0KGQsZSk7cmV0dXJuIGV9O0ZfPWZ1bmN0aW9uKGEsYixjLGQpe18ubncoYSk7YT1hLkRhO3ZhciBlPWFbXy5BY118MDtpZihkPT1udWxsKXt2YXIgZj1hW0VfXT8/KGFbRV9dPW5ldyBNYXApO2lmKERfKGYsYSxlLGMpPT09YilmLnNldChjLDApO2Vsc2UgcmV0dXJufWVsc2V7Zj1hW0VfXT8/KGFbRV9dPW5ldyBNYXApO2xldCBoPURfKGYsYSxlLGMpO2ghPT1iJiYoaCYmKGU9Xy5wdyhhLGUsaCkpLGYuc2V0KGMsYikpfV8ucHcoYSxlLGIsZCl9O0dfPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkRhO3JldHVybiBfLld5KGEsZCxkW18uQWNdfDAsYixjLHZvaWQgMD09PV8ub3I/Mjo0LCExLCEwKX07CkhfPWZ1bmN0aW9uKGEsYixjKXtfLm53KGEpO3ZhciBkPWEuRGEsZT1kW18uQWNdfDA7aWYoYz09bnVsbClyZXR1cm4gXy5wdyhkLGUsYiksYTt2YXIgZj1jPT09Xy5tcj83OmNbXy5BY118MCxoPWYsaz1fLlR5KGYpLGw9a3x8T2JqZWN0LmlzRnJvemVuKGMpLG09ITAsbj0hMDtmb3IobGV0IHI9MDtyPGMubGVuZ3RoO3IrKyl7dmFyIHA9Y1tyXTtrfHwocD1fLkJjKHApLG0mJihtPSFwKSxuJiYobj1wKSl9a3x8KGY9bT8xMzo1LGY9bj9mJi00MDk3OmZ8NDA5Nik7bCYmZj09PWh8fChjPVsuLi5jXSxoPTAsZj1fLlV5KGYsZSkpO2YhPT1oJiYoY1tfLkFjXT1mKTtlPV8ucHcoZCxlLGIsYyk7MiZmfHwhKDQwOTYmZnx8MTYmZil8fF8ub3coZCxlKTtyZXR1cm4gYX07SV89ZnVuY3Rpb24oYSxiLGM9Xy55cil7cmV0dXJuIF8uZWQoYSxiLHZvaWQgMCx2b2lkIDAsel8pPz9jfTtKXz1mdW5jdGlvbihhLGIsYz0iIixkKXtyZXR1cm4gXy5YdChfLmVkKGEsYixkKSk/P2N9OwpLXz1mdW5jdGlvbihhKXthPV8uZWQoYSwxKTtyZXR1cm4oYT09bnVsbD9hOigwLF8ud3IpKGEpP2F8MDp2b2lkIDApPz8wfTtMXz1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShiKSl7dmFyIGQ9YltfLkFjXXwwO2lmKGQmNClyZXR1cm4gYjtmb3IodmFyIGU9MCxmPTA7ZTxiLmxlbmd0aDtlKyspe2xldCBoPWEoYltlXSk7aCE9bnVsbCYmKGJbZisrXT1oKX1mPGUmJihiLmxlbmd0aD1mKTthPWR8MTtjJiYoYT0oYXw0KSYtMTUzNyk7YSE9PWQmJihiW18uQWNdPWEpO2MmJmEmMiYmT2JqZWN0LmZyZWV6ZShiKTtyZXR1cm4gYn19O01fPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBfLmd6KGEsYil9OwpPXz1mdW5jdGlvbihhLGIsYyl7Yj1xXyhiKTtiIT1udWxsJiYoXy5aeShhLGMsMSksYT1hLmosYz1OX3x8KE5fPW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCkpKSxjLnNldEZsb2F0NjQoMCwrYiwhMCksSVo9Yy5nZXRVaW50MzIoMCwhMCksSlo9Yy5nZXRVaW50MzIoNCwhMCksZV8oYSxJWiksZV8oYSxKWikpfTtQXz1mdW5jdGlvbihhLGIsYyl7Yj1xcmEoYik7aWYoYiE9bnVsbCl7c3dpdGNoKHR5cGVvZiBiKXtjYXNlICJzdHJpbmciOlZaKGIpfWlmKGIhPW51bGwpc3dpdGNoKF8uWnkoYSxjLDApLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmE9YS5qO0xaKGIpO2RfKGEsSVosSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhiLFRaLGdyYSk7ZF8oYS5qLGMubyxjLmopO2JyZWFrO2RlZmF1bHQ6Yz1WWihiKSxkXyhhLmosYy5vLGMuail9fX07UV89ZnVuY3Rpb24oYSxiLGMpe2I9Xy5zeChiKTtiIT1udWxsJiZiIT1udWxsJiYoXy5aeShhLGMsMCksZl8oYS5qLGIpKX07ClJfPWZ1bmN0aW9uKGEsYixjKXtiPV8uWHQoYik7YiE9bnVsbCYma18oYSxjLEhaKGIpKX07U189ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pl8uWHgoYSxiKX07aHJhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgbF8oYVswXS50b0xvd2VyQ2FzZSgpKX07Xy5lVj1mdW5jdGlvbihhLGIpe3RoaXMueD1hIT09dm9pZCAwP2E6MDt0aGlzLnk9YiE9PXZvaWQgMD9iOjB9O3VyYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gXy5zcylpZihhLmNhbGwodm9pZCAwLF8uc3NbYl0sYixfLnNzKSlyZXR1cm4gYn07dnJhPWZ1bmN0aW9uKGEsYil7aWYoYSE9PW51bGwmJmIgaW4gYSl0aHJvdyBFcnJvcigiQWAiK2IpO2FbYl09ITB9O1RfPWZ1bmN0aW9uKGEpe3JldHVybiBhIT09bnVsbCYmInByaXZlbWJlZCJpbiBhP2EucHJpdmVtYmVkOiExfTtVXz1mdW5jdGlvbihhKXt2YXIgYj17fTtmb3IobGV0IGMgaW4gYSliW2NdPWFbY107cmV0dXJuIGJ9OwpWXz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudDtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9iLmdldEVsZW1lbnRCeUlkKGEpOmF9O1dfPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChiKX07WF89ZnVuY3Rpb24oYSl7dHlwZW9mIGE9PSJudW1iZXIiJiYoYT1NYXRoLnJvdW5kKGEpKyJweCIpO3JldHVybiBhfTtZXz1mdW5jdGlvbihhKXtyZXR1cm4gYT8oYT1hLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTY3JpcHRXcmFwcGVkVmFsdWUpP18ua2IoYSk6bnVsbDpudWxsfTt3cmE9ZnVuY3Rpb24oKXt2YXIgYT1aXztfLnNhKCJ5dC5hZHMuYmlzY290dGkuZ2V0SWRfIil8fF8ucmEoInl0LmFkcy5iaXNjb3R0aS5nZXRJZF8iLGEpfTskXz1mdW5jdGlvbihhKXtfLnJhKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIsYSl9OwphMD1mdW5jdGlvbihhKXtyZXR1cm4gYS5pbmRleE9mKCI/IikhPT0tMT8oYT0oYXx8IiIpLnNwbGl0KCIjIilbMF0sYT1hLnNwbGl0KCI/IiwyKSxfLmJqKGEubGVuZ3RoPjE/YVsxXTphWzBdKSk6e319O2IwPWZ1bmN0aW9uKGEpe2lmKGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7bGV0IGI9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ArZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDthLmo9YS5jbGllbnRYKyhkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpO2Eubz1hLmNsaWVudFkrYn19Owp4cmE9ZnVuY3Rpb24oYSxiLGMsZD17fSl7YS5hZGRFdmVudExpc3RlbmVyJiYoYiE9Im1vdXNlZW50ZXIifHwib25tb3VzZWVudGVyImluIGRvY3VtZW50P2IhPSJtb3VzZWxlYXZlInx8Im9ubW91c2VlbnRlciJpbiBkb2N1bWVudD9iPT0ibW91c2V3aGVlbCImJiJNb3pCb3hTaXppbmciaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoYj0iTW96TW91c2VQaXhlbFNjcm9sbCIpOmI9Im1vdXNlb3V0IjpiPSJtb3VzZW92ZXIiKTtyZXR1cm4gdXJhKGU9Pnt2YXIgZj10eXBlb2YgZVs0XT09PSJib29sZWFuIiYmZVs0XT09ISFkLGg7aWYoaD1fLkFhKGVbNF0pJiZfLkFhKGQpKWE6e2g9ZVs0XTtmb3IobGV0IGsgaW4gaClpZighKGsgaW4gZCl8fGhba10hPT1kW2tdKXtoPSExO2JyZWFrIGF9Zm9yKGxldCBrIGluIGQpaWYoIShrIGluIGgpKXtoPSExO2JyZWFrIGF9aD0hMH1yZXR1cm4hIWUubGVuZ3RoJiZlWzBdPT1hJiZlWzFdPT1iJiZlWzJdPT1jJiYoZnx8aCl9KX07CmQwPWZ1bmN0aW9uKGEsYixjLGQ9e30pe2lmKCFhfHwhYS5hZGRFdmVudExpc3RlbmVyJiYhYS5hdHRhY2hFdmVudClyZXR1cm4iIjt2YXIgZT14cmEoYSxiLGMsZCk7aWYoZSlyZXR1cm4gZTtlPSsrXy50cy5jb3VudCsiIjt2YXIgZj0hKGIhPSJtb3VzZWVudGVyIiYmYiE9Im1vdXNlbGVhdmUifHwhYS5hZGRFdmVudExpc3RlbmVyfHwib25tb3VzZWVudGVyImluIGRvY3VtZW50KTt2YXIgaD1mP2s9PntrPW5ldyBjMChrKTtpZighXy5ndyhrLnJlbGF0ZWRUYXJnZXQsbD0+bD09YSwhMCkpcmV0dXJuIGsuY3VycmVudFRhcmdldD1hLGsudHlwZT1iLGMuY2FsbChhLGspfTprPT57az1uZXcgYzAoayk7ay5jdXJyZW50VGFyZ2V0PWE7cmV0dXJuIGMuY2FsbChhLGspfTtoPV8uVmkoaCk7YS5hZGRFdmVudExpc3RlbmVyPyhiPT0ibW91c2VlbnRlciImJmY/Yj0ibW91c2VvdmVyIjpiPT0ibW91c2VsZWF2ZSImJmY/Yj0ibW91c2VvdXQiOmI9PSJtb3VzZXdoZWVsIiYmIk1vekJveFNpemluZyJpbgpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJihiPSJNb3pNb3VzZVBpeGVsU2Nyb2xsIiksKDAsXy51cykoKXx8dHlwZW9mIGQ9PT0iYm9vbGVhbiI/YS5hZGRFdmVudExpc3RlbmVyKGIsaCxkKTphLmFkZEV2ZW50TGlzdGVuZXIoYixoLCEhZC5jYXB0dXJlKSk6YS5hdHRhY2hFdmVudChgb24ke2J9YCxoKTtfLnNzW2VdPVthLGIsYyxoLGRdO3JldHVybiBlfTt5cmE9ZnVuY3Rpb24oYSl7YSYmKHR5cGVvZiBhPT0ic3RyaW5nIiYmKGE9W2FdKSxfLnRiKGEsYj0+e2lmKGIgaW4gXy5zcyl7dmFyIGM9Xy5zc1tiXTtsZXQgZD1jWzBdLGU9Y1sxXSxmPWNbM107Yz1jWzRdO2QucmVtb3ZlRXZlbnRMaXN0ZW5lcj8oMCxfLnVzKSgpfHx0eXBlb2YgYz09PSJib29sZWFuIj9kLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxmLGMpOmQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGYsISFjLmNhcHR1cmUpOmQuZGV0YWNoRXZlbnQmJmQuZGV0YWNoRXZlbnQoYG9uJHtlfWAsZik7ZGVsZXRlIF8uc3NbYl19fSkpfTsKZTA9ZnVuY3Rpb24oYSl7dGhpcy5NPWE7dGhpcy5qPW51bGw7dGhpcy5CPTA7dGhpcy5JPW51bGw7dGhpcy5EPTA7dGhpcy5vPVtdO2ZvcihhPTA7YTw0O2ErKyl0aGlzLm8ucHVzaCgwKTt0aGlzLnY9MDt0aGlzLlo9ZDAod2luZG93LCJtb3VzZW1vdmUiLCgwLF8uQ2EpKHRoaXMuZ2EsdGhpcykpO2E9KDAsXy5DYSkodGhpcy5VLHRoaXMpO3R5cGVvZiBhPT09ImZ1bmN0aW9uIiYmKGE9Xy5WaShhKSk7dGhpcy5oYT13aW5kb3cuc2V0SW50ZXJ2YWwoYSwyNSl9O3pyYT1mdW5jdGlvbigpe3ZhciBhPV8ucmooImh0bWw1X3dlYl9wb19leHBlcmltZW50X2lkcyIpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP18uSHcoYSxiPT5OdW1iZXIoYnx8MCkpOltOdW1iZXIoYXx8MCldfTsKQnJhPWZ1bmN0aW9uKCl7KHtoYW5kbGVFcnJvcjphPV8uSHAsbG06Yj1fLkVwfT17fSk7dmFyIGE7Zm9yKF8uR2s9bmV3IEFyYShhLGIpO18uSGsubGVuZ3RoPjA7KXt2YXIgYj1fLkhrLnNoaWZ0KCk7c3dpdGNoKGIudHlwZSl7Y2FzZSAiRVJST1IiOl8uR2suSmIoYi5wYXlsb2FkKTticmVhaztjYXNlICJFVkVOVCI6Xy5Hay5sbShiLmV2ZW50VHlwZSxiLnBheWxvYWQpfX19O0NyYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uR2woZD0+Yz9kLnVzZXJJZGVudGlmaWVyIT09dm9pZCAwJiYhYS5pbmNsdWRlcyhkLnVzZXJJZGVudGlmaWVyKSYmYy5pbmNsdWRlcyhkLnB1YmxpY05hbWUpOmQudXNlcklkZW50aWZpZXIhPT12b2lkIDAmJiFhLmluY2x1ZGVzKGQudXNlcklkZW50aWZpZXIpLGIpfTsKRHJhPWFzeW5jIGZ1bmN0aW9uKGEpe3ZhciBiPV8uVmooIll0SWRiTWV0YSBoYXNBbnlNZXRhIG90aGVyIik7cmV0dXJuKGF3YWl0IF8uR2woYz0+Yy51c2VySWRlbnRpZmllciE9PXZvaWQgMCYmYy51c2VySWRlbnRpZmllciE9PWIsYSkpLmxlbmd0aD4wfTtnMD1mdW5jdGlvbihhLGIpe2YwfHwoZjA9Xy5qZi5wYihhc3luYygpPT57dmFyIGM9YXdhaXQgXy5QbCgpO2lmKGMpe3ZhciBkPSEwO3RyeXtsZXQgZT1hd2FpdCBDcmEoYSxjLGIpO2lmKGUubGVuZ3RoKXtsZXQgZj1lWzBdO2F3YWl0IF8uQWwoZi5hY3R1YWxOYW1lKTthd2FpdCBfLkZsKGYuYWN0dWFsTmFtZSxjKX1lbHNlIGQ9ITF9Y2F0Y2goZSl7Xy5JayhlKSxkPSExfV8uamYuQWEoZjApO2YwPTA7ZCYmZzAoYSxiKX19KSl9O0VyYT1hc3luYyBmdW5jdGlvbigpe3ZhciBhPWF3YWl0IF8uUGwoKTtyZXR1cm4gYT9EcmEoYSk6ITF9OwpGcmE9ZnVuY3Rpb24oYSl7KDAsXy5lbCkoKTtpZighYS5ib2R5KXJldHVybiBhO3RyeXtsZXQgYj10eXBlb2YgYS5ib2R5PT09InN0cmluZyI/YS5ib2R5OkpTT04uc3RyaW5naWZ5KGEuYm9keSksYz1iO2lmKHR5cGVvZiBiPT09InN0cmluZyIpe2xldCBkPV8udW0oYik7aWYoZCE9bnVsbCYmKGQ+Xy53bXx8ZDxfLnhtKSlyZXR1cm4gYTtjPV8uTmkoKDAsXy55bSkoYikpOygwLF8uZWwpKCl9YS5oZWFkZXJzPXsiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLC4uLihhLmhlYWRlcnN8fHt9KX07YS5ib2R5PWM7cmV0dXJuIGF9Y2F0Y2goYil7cmV0dXJuIF8uV2koYiksYX19O0dyYT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IF8uUGwoKSYmKF8uV2ooKXx8Xy54KCJud2xfaW5pdF9yZXF1aXJlX2RhdGFzeW5jX2lkX2tpbGxzd2l0Y2giKSkmJl8uc24oKSYmKF8udW49ITAsXy50bi5pc053bEluaXRpYWxpemVkPV8udW4sYXdhaXQgXy5wbigpLmF3YWl0SW5pdGlhbGl6YXRpb24oKSl9OwpoMD1mdW5jdGlvbihhKXtfLlNzW2FdJiYoYT1fLlNzW2FdLF8udGIoYSxiPT57Xy5Sc1tiXSYmZGVsZXRlIF8uUnNbYl19KSxhLmxlbmd0aD0wKX07aTA9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5MeigpO2lmKGIpaWYoYi5jbGVhcihhKSxhKWgwKGEpO2Vsc2UgZm9yKGxldCBjIGluIF8uU3MpaDAoYyl9O2wwPWZ1bmN0aW9uKHt1SzphPSExLE1JOmI9ITB9PXt9KXtpZihfLnNhKCJfbGFjdCIsd2luZG93KT09bnVsbCl7dmFyIGM9cGFyc2VJbnQoXy53KCJMQUNUIiksMTApO2M9aXNGaW5pdGUoYyk/RGF0ZS5ub3coKS1NYXRoLm1heChjLDApOi0xO18ucmEoIl9sYWN0IixjLHdpbmRvdyk7Xy5yYSgiX2ZhY3QiLGMsd2luZG93KTtjPT0tMSYmajAoKTtIcmEoYSxiKTtuZXcgZTAoKCk9PntrMCgibW91c2UiLDEwMCl9KX19OwpIcmE9ZnVuY3Rpb24oYT0hMSxiPSEwKXt2YXIgYz13aW5kb3c7ZDAoYy5kb2N1bWVudCwia2V5ZG93biIsajApO2QwKGMuZG9jdW1lbnQsImtleXVwIixqMCk7ZDAoYy5kb2N1bWVudCwibW91c2Vkb3duIixqMCk7ZDAoYy5kb2N1bWVudCwibW91c2V1cCIsajApO2E/ZDAoYywidG91Y2htb3ZlIiwoKT0+e2swKCJ0b3VjaG1vdmUiLDIwMCl9LHtwYXNzaXZlOiEwfSk6KGQwKGMsInJlc2l6ZSIsKCk9PntrMCgicmVzaXplIiwyMDApfSksYiYmZDAoYywic2Nyb2xsIiwoKT0+e2swKCJzY3JvbGwiLDIwMCl9KSk7ZDAoYy5kb2N1bWVudCwidG91Y2hzdGFydCIsajAse3Bhc3NpdmU6ITB9KTtkMChjLmRvY3VtZW50LCJ0b3VjaGVuZCIsajAse3Bhc3NpdmU6ITB9KX07azA9ZnVuY3Rpb24oYSxiKXttMFthXXx8KG0wW2FdPSEwLF8uamYucGIoKCk9PntqMCgpO20wW2FdPSExfSxiKSl9OwpqMD1mdW5jdGlvbigpe18uc2EoIl9sYWN0Iix3aW5kb3cpPT1udWxsJiZsMCgpO3ZhciBhPURhdGUubm93KCk7Xy5yYSgiX2xhY3QiLGEsd2luZG93KTtfLnNhKCJfZmFjdCIsd2luZG93KT09LTEmJl8ucmEoIl9mYWN0IixhLHdpbmRvdyk7KGE9Xy5zYSgieXRnbG9iYWwueXRVdGlsQWN0aXZpdHlDYWxsYmFja18iKSkmJmEoKX07bjA9ZnVuY3Rpb24oKXt2YXIgYT1fLmtvKCk7YS5pbmZvfHwoYS5pbmZvPXt9KTtyZXR1cm4gYS5pbmZvfTtJcmE9ZnVuY3Rpb24oKXt2YXIgYT1fLm5vKCk7YS5wcmVMb2dnZWRHZWxJbmZvc3x8KGEucHJlTG9nZ2VkR2VsSW5mb3M9W10pO3JldHVybiBhLnByZUxvZ2dlZEdlbEluZm9zfTsKSnJhPWZ1bmN0aW9uKGEsYj0iVW5rbm93biBmaWxlIixjPTAsZCxlLGYpe3ZhciBoPSExLGs9Xy5SaSgibG9nX3dpbmRvd19vbmVycm9yX2ZyYWN0aW9uIik7aWYoayYmTWF0aC5yYW5kb20oKTxrKWg9ITA7ZWxzZXtrPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTtmb3IobGV0IGw9MCxtPWsubGVuZ3RoO2w8bTtsKyspaWYoa1tsXS5zcmMuaW5kZXhPZigiL2RlYnVnLSIpPjApe2g9ITA7YnJlYWt9fWgmJihoPSExLGU/aD0hMDoodHlwZW9mIGE9PT0ic3RyaW5nIj9rPWE6RXJyb3JFdmVudCYmYSBpbnN0YW5jZW9mIEVycm9yRXZlbnQ/KGg9ITAsaz1hLm1lc3NhZ2UsYj1hLmZpbGVuYW1lLGM9YS5saW5lbm8sZD1hLmNvbG5vKTooaz0iVW5rbm93biBlcnJvciIsYj0iVW5rbm93biBmaWxlIixjPTApLGU9bmV3IF8uWGooayksZS5uYW1lPSJVbmhhbmRsZWRXaW5kb3dFcnJvciIsZS5tZXNzYWdlPWssZS5maWxlTmFtZT1iLGUubGluZU51bWJlcj1jLGlzTmFOKGQpPwpkZWxldGUgZS5jb2x1bW5OdW1iZXI6ZS5jb2x1bW5OdW1iZXI9ZCksZiYmXy5jdyhlLGYpLGg/Xy5HcChlKTpfLklwKGUpKX07bzA9ZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIEVycm9yP18uR3AoYSk6KGE9Xy5BYShhKT9KU09OLnN0cmluZ2lmeShhKTpTdHJpbmcoYSksYT1uZXcgXy5YaihhKSxhLm5hbWU9IlJlamVjdGVkUHJvbWlzZUVycm9yIixfLklwKGEpKX07S3JhPWZ1bmN0aW9uKCl7Xy50YihfLncoIkVSUk9SUyIpfHxbXSxhPT57Xy5HcC5hcHBseShudWxsLGEpfSk7Xy5RaSgiRVJST1JTIixbXSl9O3AwPWZ1bmN0aW9uKCl7cmV0dXJuKF8ueCgiY3NpX3VzZV90aW1lX29yaWdpbiIpfHxfLngoImNzaV91c2VfdGltZV9vcmlnaW5fdHZodG1sNSIpKSYmXy5zcS50aW1lT3JpZ2luP01hdGguZmxvb3IoXy5zcS50aW1lT3JpZ2luKTpfLnNxLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnR9O3EwPWZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLnJvdW5kKHAwKCkrYSl9OwpyMD1mdW5jdGlvbigpe3ZhciBhO18ueCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpPyhhPV8uc3E/LmdldEVudHJpZXNCeVR5cGU/LigibmF2aWdhdGlvbiIpPy5bMF0/LnRvSlNPTj8uKCkpPyhhLnJlcXVlc3RTdGFydD1xMChhLnJlcXVlc3RTdGFydCksYS5yZXNwb25zZUVuZD1xMChhLnJlc3BvbnNlRW5kKSxhLnJlZGlyZWN0U3RhcnQ9cTAoYS5yZWRpcmVjdFN0YXJ0KSxhLnJlZGlyZWN0RW5kPXEwKGEucmVkaXJlY3RFbmQpLGEuZG9tYWluTG9va3VwRW5kPXEwKGEuZG9tYWluTG9va3VwRW5kKSxhLmNvbm5lY3RTdGFydD1xMChhLmNvbm5lY3RTdGFydCksYS5jb25uZWN0RW5kPXEwKGEuY29ubmVjdEVuZCksYS5yZXNwb25zZVN0YXJ0PXEwKGEucmVzcG9uc2VTdGFydCksYS5zZWN1cmVDb25uZWN0aW9uU3RhcnQ9cTAoYS5zZWN1cmVDb25uZWN0aW9uU3RhcnQpLGEuZG9tYWluTG9va3VwU3RhcnQ9cTAoYS5kb21haW5Mb29rdXBTdGFydCksYS5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZz0KITApOmE9Xy5zcS50aW1pbmc6YT1fLngoImNzaV9wZXJmb3JtYW5jZV90aW1pbmdfdG9fb2JqZWN0Iik/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfLnNxLnRpbWluZykpOl8uc3EudGltaW5nO3JldHVybiBhfTtMcmE9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudDtpZigidmlzaWJpbGl0eVN0YXRlImluIGEpYT1hLnZpc2liaWxpdHlTdGF0ZTtlbHNle3ZhciBiPV8ucnMrIlZpc2liaWxpdHlTdGF0ZSI7YT1iIGluIGE/YVtiXTp2b2lkIDB9c3dpdGNoKGEpe2Nhc2UgImhpZGRlbiI6cmV0dXJuIDA7Y2FzZSAidmlzaWJsZSI6cmV0dXJuIDE7Y2FzZSAicHJlcmVuZGVyIjpyZXR1cm4gMjtjYXNlICJ1bmxvYWRlZCI6cmV0dXJuIDM7ZGVmYXVsdDpyZXR1cm4tMX19OwpNcmE9ZnVuY3Rpb24oKXtpZihfLnNxLmdldEVudHJpZXNCeVR5cGUpe3ZhciBhPV8uc3EuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKTtpZihhPV8udmIoYSxjPT5jLm5hbWU9PT0iZmlyc3QtcGFpbnQiKSlyZXR1cm4gcTAoYS5zdGFydFRpbWUpfXZhciBiO18ueCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP2I9Xy5zcS5nZXRFbnRyaWVzQnlUeXBlKCJmaXJzdC1wYWludCIpWzBdLnN0YXJ0VGltZTpiPV8uc3EudGltaW5nLmFLO3JldHVybiBiP01hdGgubWF4KDAsYik6MH07Ck5yYT1mdW5jdGlvbigpe3ZhciBhPV8udygiVElNSU5HX0lORk8iLHt9KSxiPXt9LGM9KGQsZSxmKT0+e2U9ZS5tYXRjaCgiX3JpZCIpP2Uuc3BsaXQoIl9yaWQiKVswXTplO3R5cGVvZiBmPT09Im51bWJlciImJihmPUpTT04uc3RyaW5naWZ5KGYpKTtkLnJlcXVlc3RJZHM/ZC5yZXF1ZXN0SWRzLnB1c2goe2VuZHBvaW50OmUsaWQ6Zn0pOmQucmVxdWVzdElkcz1be2VuZHBvaW50OmUsaWQ6Zn1dfTtmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYSkpe2E9ZDtsZXQgZj1lO3N3aXRjaChhKXtjYXNlICJHZXRCcm93c2VfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRHdWlkZV9yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgIkdldEhvbWVfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRQbGF5ZXJfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRTZWFyY2hfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRTZXR0aW5nc19yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgIkdldFRyZW5kaW5nX3JpZCI6YyhiLAphLGYpO2JyZWFrO2Nhc2UgIkdldFdhdGNoTmV4dF9yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgInl0X3JlZCI6Yi5pc1JlZFN1YnNjcmliZXI9ISFmO2JyZWFrO2Nhc2UgInl0X2FkIjpiLmlzTW9uZXRpemVkPSEhZn19cmV0dXJuIGJ9O09yYT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCxiPV8uc3EuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKTtiPWpyYShiLGM9PmMubmFtZS5pbmRleE9mKGAke2F9Ly9mb250cy5nc3RhdGljLmNvbS9zL2ApPT09MCk7KGI9a3JhKGIsKGMsZCk9PmQuZHVyYXRpb24+Yy5kdXJhdGlvbj9kOmMpKSYmYi5zdGFydFRpbWU+MCYmYi5yZXNwb25zZUVuZD4wJiYoXy5ucSgid2ZmcyIscTAoYi5zdGFydFRpbWUpKSxfLm5xKCJ3ZmZlIixxMChiLnJlc3BvbnNlRW5kKSkpfTsKUHJhPWZ1bmN0aW9uKGEsYil7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGEpO2lmKCFhKXJldHVybiExO3ZhciBjPSIiLGQ9YS5ub2RlTmFtZTtkPT09IlNDUklQVCI/KGM9YS5zcmMsY3x8KGM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtdGltaW5nLWhyZWYiKSkmJihjPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCtjKSk6ZD09PSJMSU5LIiYmKGM9YS5ocmVmKTtfLmliKGRvY3VtZW50KSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixfLmliKGRvY3VtZW50KSk7cmV0dXJuIGM/KGE9Xy5zcS5nZXRFbnRyaWVzQnlOYW1lKGMpKSYmYVswXSYmKGE9YVswXSxjPXAwKCksXy5ucSgicnNmXyIrYixjK01hdGgucm91bmQoYS5mZXRjaFN0YXJ0KSksXy5ucSgicnNlXyIrYixjK01hdGgucm91bmQoYS5yZXNwb25zZUVuZCkpLGEudHJhbnNmZXJTaXplIT09dm9pZCAwJiZhLnRyYW5zZmVyU2l6ZT09PTApPyEwOiExOiExfTsKUXJhPWZ1bmN0aW9uKCl7dmFyIGE9SXJhKCksYj1fLm9vKCksYz12b2lkIDA7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBrPWFbZF07aWYoay5sb2FkVHlwZSl7Yz1rLmxvYWRUeXBlO2JyZWFrfX1pZihfLmxvKCkubG9hZFR5cGU9PT0iY29sZCImJihiLmxvYWRUeXBlPT09ImNvbGQifHxjPT09ImNvbGQiKSl7Yz1fLm1vKCk7ZD1fLm5vKCk7ZD1kLmdlbFRpY2tzP2QuZ2VsVGlja3M6ZC5nZWxUaWNrcz17fTtmb3IodmFyIGUgaW4gYyllIGluIGR8fHR5cGVvZiBjW2VdPT09Im51bWJlciImJl8ubnEoZSxfLnVxKGUpKTt2YXIgZj17fSxoPSExO2U9az0+e18ueW4oYixrKTtfLnluKGYsayk7aD0hMH07Zm9yKGxldCBrIG9mIGEpZShrKTtoJiZfLnBxKGYpfX07CnQwPWZ1bmN0aW9uKGEsYil7Xy5WaSgoKT0+e18udW8oIiIpLmluZm8uYWN0aW9uVHlwZT1hO2ImJl8uUWkoIlRJTUlOR19BRlRfS0VZUyIsYik7Xy5RaSgiVElNSU5HX0FDVElPTiIsYSk7dmFyIGM9TnJhKCk7T2JqZWN0LmtleXMoYykubGVuZ3RoPjAmJl8ucHEoYyk7Yz17aXNOYXZpZ2F0aW9uOiEwLGFjdGlvblR5cGU6Xy5QeihfLncoIlRJTUlOR19BQ1RJT04iKSl9O3ZhciBkPV8udygiUFJFVklPVVNfQUNUSU9OIik7ZCYmKGMucHJldmlvdXNBY3Rpb249Xy5QeihkKSk7aWYoZD1fLncoIkNMSUVOVF9QUk9UT0NPTCIpKWMuaHR0cFByb3RvY29sPWQ7aWYoZD1fLncoIkNMSUVOVF9UUkFOU1BPUlQiKSljLnRyYW5zcG9ydFByb3RvY29sPWQ7KGQ9Xy5pcSgpKSYmZCE9PSJVTkRFRklORURfQ1NOIiYmKGMuY2xpZW50U2NyZWVuTm9uY2U9ZCk7ZD1McmEoKTtpZihkPT09MXx8ZD09PS0xKWMuaXNWaXNpYmxlPSEwO18ubG8oKTtuMCgpO2MubG9hZFR5cGU9ImNvbGQiO2Q9bjAoKTt2YXIgZT0KcjAoKSxmPXAwKCksaD1fLncoIkNTSV9TVEFSVF9USU1FU1RBTVBfTUlMTElTIiwwKTtoPjAmJiFfLngoImVtYmVkc193ZWJfZW5hYmxlX2NzaV9zdGFydF9vdmVycmlkZV9raWxsc3dpdGNoIikmJihmPWgpO2YmJihfLm5xKCJzcnQiLGUucmVzcG9uc2VTdGFydCksZC5wcmVyZW5kZXIhPT0xJiZfLm9xKGYpKTtkPU1yYSgpO2Q+MCYmXy5ucSgiZnB0IixkKTtkPXIwKCk7ZC5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyYmXy5wcSh7cGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOiEwfSx2b2lkIDApO18ubnEoIm5yZXFzIixkLnJlcXVlc3RTdGFydCx2b2lkIDApO18ubnEoIm5yZXNzIixkLnJlc3BvbnNlU3RhcnQsdm9pZCAwKTtfLm5xKCJucmVzZSIsZC5yZXNwb25zZUVuZCx2b2lkIDApO2QucmVkaXJlY3RFbmQtZC5yZWRpcmVjdFN0YXJ0PjAmJihfLm5xKCJucnMiLGQucmVkaXJlY3RTdGFydCx2b2lkIDApLF8ubnEoIm5yZSIsZC5yZWRpcmVjdEVuZCx2b2lkIDApKTtkLmRvbWFpbkxvb2t1cEVuZC0KZC5kb21haW5Mb29rdXBTdGFydD4wJiYoXy5ucSgibmRuc3MiLGQuZG9tYWluTG9va3VwU3RhcnQsdm9pZCAwKSxfLm5xKCJuZG5zZSIsZC5kb21haW5Mb29rdXBFbmQsdm9pZCAwKSk7ZC5jb25uZWN0RW5kLWQuY29ubmVjdFN0YXJ0PjAmJihfLm5xKCJudGNwcyIsZC5jb25uZWN0U3RhcnQsdm9pZCAwKSxfLm5xKCJudGNwZSIsZC5jb25uZWN0RW5kLHZvaWQgMCkpO2Quc2VjdXJlQ29ubmVjdGlvblN0YXJ0Pj1wMCgpJiZkLmNvbm5lY3RFbmQtZC5zZWN1cmVDb25uZWN0aW9uU3RhcnQ+MCYmKF8ubnEoIm5zdGNwcyIsZC5zZWN1cmVDb25uZWN0aW9uU3RhcnQsdm9pZCAwKSxfLm5xKCJudGNwZSIsZC5jb25uZWN0RW5kLHZvaWQgMCkpO18uc3EmJiJnZXRFbnRyaWVzQnlUeXBlImluIF8uc3EmJk9yYSgpO2Q9W107aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvciYmXy5zcSYmXy5zcS5nZXRFbnRyaWVzQnlOYW1lKWZvcih2YXIgayBpbiBzMClzMC5oYXNPd25Qcm9wZXJ0eShrKSYmKGU9CnMwW2tdLFByYShrLGUpJiZkLnB1c2goZSkpO2lmKGQubGVuZ3RoPjApe2MucmVzb3VyY2VJbmZvPVtdO2ZvcihsZXQgbCBvZiBkKWMucmVzb3VyY2VJbmZvLnB1c2goe3Jlc291cmNlQ2FjaGU6bH0pfV8ucHEoYyk7UXJhKCk7Xy5ReigpO2s9Xy53KCJUSU1JTkdfQUNUSU9OIik7Xy5zYSgieXRnbG9iYWwudGltaW5ncmVhZHlfIikmJmsmJl8uUnooKSYmXy52cSgpJiZfLnRxKCl9KSgpfTt2MD1mdW5jdGlvbihhKXtpZighXy54KCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKSlyZXR1cm4iIjthPV8uUWIoYSl8fCIiO3ZhciBiPU9iamVjdC5rZXlzKHUwKTtmb3IobGV0IGM9MDtjPGIubGVuZ3RoO2MrKyl7bGV0IGQ9YltjXTtpZihhLmluY2x1ZGVzKGQpKXJldHVybiBkfXJldHVybiIifTsKdzA9ZnVuY3Rpb24oYSl7aWYoIV8ueCgidW5pdmVyc2FsX2NzaV9uZXR3b3JrX3RpY2tzIikpcmV0dXJuKCk9Pnt9O3ZhciBiPXUwW2FdO3JldHVybiBiPyhfLkl6KGIpLCgpPT57dmFyIGM9Xy54KCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKT8oYz1ScmFbYV0pP18uSXooYyk6ITE6ITE7cmV0dXJuIGN9KTooKT0+e319O3gwPWZ1bmN0aW9uKGEpe18uVmkoKCk9PntpZighXy5SeigiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIil8fF8uQnEoYSwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIikpcmV0dXJuITE7Xy5BcShhLHZvaWQgMCwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIik7cmV0dXJuITB9KSgpfTtTcmE9ZnVuY3Rpb24oKXtfLlZpKCgpPT57dmFyIGE9Xy5wbygpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3NldFRpbWVvdXQoKCk9PnthPT09Xy5wbygpJiZfLkFxKCJvbCIsdm9pZCAwLHZvaWQgMCl9LDApfSl9KSgpfTsKVHJhPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBudWxsO2E9Xy5YdChfLmVkKGEsNCx2b2lkIDAsXy5EdikpO3JldHVybiBhPT09bnVsbHx8YT09PXZvaWQgMD9udWxsOl8uVGEoYSl9O3kwPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRhKGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEpfTtBMD1mdW5jdGlvbigpe3JldHVybiB6MC5sb2FkZWR8fCh6MC5sb2FkZWQ9ImxvYWRlZCIucmVwbGFjZSgvXC0oW2Etel0pL2csKGEsYik9PmIudG9VcHBlckNhc2UoKSkpfTtCMD1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLmRhdGFzZXQ/YS5kYXRhc2V0W0EwKCldOmEuZ2V0QXR0cmlidXRlKCJkYXRhLWxvYWRlZCIpOm51bGx9O0MwPWZ1bmN0aW9uKGEpe2EmJihhLmRhdGFzZXQ/YS5kYXRhc2V0W0EwKCldPSJ0cnVlIjppcmEoYSkpfTsKRDA9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO18uTHkoYixhKTtyZXR1cm5ganMtJHtfLk15KGIuaHJlZi5yZXBsYWNlKC9eW2EtekEtWl0rOlwvXC8vLCIvLyIpKX1gfTtFMD1mdW5jdGlvbihhKXthPUQwKGEpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpO2ImJihpMChhKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpfTtHMD1mdW5jdGlvbihhLGIpe2EmJmImJihhPWAke18uZncoYil9YCwoYT1GMFthXSkmJl8uTnooYSkpfTsKVXJhPWZ1bmN0aW9uKGEsYixjLGQ9bnVsbCl7dmFyIGU9Xy5DZCgiU0NSSVBUIik7ZS5pZD1iO2Uub25sb2FkPSgpPT57YyYmc2V0VGltZW91dChjLDApfTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT0oKT0+e3N3aXRjaChlLnJlYWR5U3RhdGUpe2Nhc2UgImxvYWRlZCI6Y2FzZSAiY29tcGxldGUiOmUub25sb2FkKCl9fTtkJiZlLnNldEF0dHJpYnV0ZSgibm9uY2UiLGQpO18ub2IoZSx0eXBlb2YgYT09PSJzdHJpbmciP3kwKGEpOmEpO2E9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTthLmluc2VydEJlZm9yZShlLGEuZmlyc3RDaGlsZCk7cmV0dXJuIGV9OwpWcmE9ZnVuY3Rpb24oYSxiLGM9bnVsbCl7dmFyIGQ9RDAodHlwZW9mIGE9PT0ic3RyaW5nIj9hOmEudG9TdHJpbmcoKSksZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkKSxmPWUmJkIwKGUpLGg9ZSYmIWY7Zj9iJiZiKCk6KGImJihmPV8uTXooZCxiKSxiPWAke18uZncoYil9YCxGMFtiXT1mKSxofHwoZT1VcmEoYSxkLCgpPT57QjAoZSl8fChDMChlKSxfLk96KGQpLF8ubWooKCk9PntpMChkKX0sMCkpfSxjKSkpfTtIMD1mdW5jdGlvbihhLGIsYz1udWxsKXtWcmEoYSxiLGMpfTtXcmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DZCgiQSIpO18uTHkoYixuZXcgXy5XYShhKSk7cmV0dXJuYGNzcy0ke18uTXkoYi5ocmVmLnJlcGxhY2UoL15bYS16QS1aXSs6XC9cLy8sIi8vIikpfWB9OwpYcmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtkLmlkPWI7ZC5vbmxvYWQ9KCk9PntjJiZzZXRUaW1lb3V0KGMsMCl9O2E9eTAoYSk7Xy5xYihkLGEsInN0eWxlc2hlZXQiKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQoZCk7cmV0dXJuIGR9O1lyYT1mdW5jdGlvbihhKXt2YXIgYj1XcmEoYSksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSxkPWMmJkIwKGMpO2R8fGMmJiFkfHwoYz1YcmEoYSxiLCgpPT57aWYoIUIwKGMpKXtDMChjKTtfLk96KGIpO2xldCBlPV8uRGEoaTAsYik7Xy5taihlLDApfX0pKX07CkkwPWZ1bmN0aW9uKGEpe2EuRmE9ITE7aWYoYS5oYSlmb3IodmFyIGIgaW4gYS5qKWEuai5oYXNPd25Qcm9wZXJ0eShiKSYmYS5oYShiLGEualtiXSk7Zm9yKGxldCBjIGluIGEuSSlhLkkuaGFzT3duUHJvcGVydHkoYykmJmNsZWFyVGltZW91dChOdW1iZXIoYykpO2EuST17fTthLkI9bnVsbDthLmhhPW51bGw7Yj1hLmFwaTtmb3IobGV0IGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoYltjXT1udWxsKTtiLmFkZEV2ZW50TGlzdGVuZXI9KGMsZCk9PnthLmFkZEV2ZW50TGlzdGVuZXIoYyxkKX07Yi5yZW1vdmVFdmVudExpc3RlbmVyPShjLGQpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCl9O2IuZGVzdHJveT0oKT0+e2EuZGlzcG9zZSgpfTtiLmdldExhc3RFcnJvcj0oKT0+YS5nZXRMYXN0RXJyb3IoKTtiLmdldFBsYXllclR5cGU9KCk9PmEuZ2V0UGxheWVyVHlwZSgpO2IuZ2V0Q3VycmVudFZpZGVvQ29uZmlnPSgpPT5hLk1hO2IubG9hZE5ld1ZpZGVvQ29uZmlnPWM9Pgp7YS5sb2FkTmV3VmlkZW9Db25maWcoYyl9O2IuaXNSZWFkeT0oKT0+YS5pc1JlYWR5KCl9O0owPWZ1bmN0aW9uKGEpe3ZhciBiO2Eud2ViUGxheWVyQ29udGV4dENvbmZpZz9iPWEud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkOmI9YS5jb25maWcuYXR0cnMuaWQ7YS5lbGVtZW50SWQ9Ynx8YS5lbGVtZW50SWQ7YS5lbGVtZW50SWQ9PT0idmlkZW8tcGxheWVyIiYmKGEuZWxlbWVudElkPWEucGxheWVySWQsYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkPWEucGxheWVySWQ6YS5jb25maWcuYXR0cnMuaWQ9YS5wbGF5ZXJJZCk7YS5vPy5pZD09PWEuZWxlbWVudElkJiYoYS5lbGVtZW50SWQ9YCR7YS5lbGVtZW50SWR9LXBsYXllcmAsYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkPWEuZWxlbWVudElkOmEuY29uZmlnLmF0dHJzLmlkPWEuZWxlbWVudElkKX07ClMwPWZ1bmN0aW9uKGEpe2lmKCFhLmlhKCkmJiFhLlUpe3ZhciBiPUswKGEpO2lmKGImJihMMChhKT8iaHRtbDUiOm51bGwpPT09Imh0bWw1IilhLlo9Imh0bWw1IixhLmlzUmVhZHkoKXx8TTAoYSk7ZWxzZSBpZihOMChhKSxhLlo9Imh0bWw1IixiJiZhLnYmJmEudGFyZ2V0RWxlbWVudClhLnRhcmdldEVsZW1lbnQuYXBwZW5kQ2hpbGQoYS52KSxNMChhKTtlbHNle2EuY29uZmlnJiYoYS5jb25maWcubG9hZGVkPSEwKTtsZXQgYz0hMTthLkQ9KCk9PntjPSEwO3ZhciBkPU8wKGEsInBsYXllcl9ib290c3RyYXBfbWV0aG9kIik/Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZUFsdGVybmF0ZSIpfHxfLnNhKCJ5dC5wbGF5ZXIuQXBwbGljYXRpb24uY3JlYXRlIik6Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIpO3ZhciBlPWEuY29uZmlnP1AwKGEuY29uZmlnKTp2b2lkIDA7ZCYmZChhLnRhcmdldEVsZW1lbnQsZSxhLndlYlBsYXllckNvbnRleHRDb25maWcsCmEuRWIpO00wKGEpfTthLlU9ITA7Yj9hLkQoKTooSDAoUTAoYSksYS5EKSwoYj1acmEoYSkpJiZZcmEoYnx8IiIpLFIwKGEpJiYhYyYmXy5yYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIsbnVsbCkpfX19O1QwPWZ1bmN0aW9uKGEpe2EuY29uZmlnJiZhLmNvbmZpZy5sb2FkZWQhPT0hMCYmKGEuY29uZmlnLmxvYWRlZD0hMCwhYS5jb25maWcuYXJnc3x8YS5jb25maWcuYXJncy5hdXRvcGxheSE9PSIwIiYmYS5jb25maWcuYXJncy5hdXRvcGxheSE9PTAmJmEuY29uZmlnLmFyZ3MuYXV0b3BsYXkhPT0hMT9hLmFwaS5sb2FkVmlkZW9CeVBsYXllclZhcnMoYS5jb25maWcuYXJncz8/bnVsbCk6YS5hcGkuY3VlVmlkZW9CeVBsYXllclZhcnMoYS5jb25maWcuYXJncykpfTtQMD1mdW5jdGlvbihhKXt2YXIgYj17fTtmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoYSkpe2xldCBkPWFbY107YltjXT10eXBlb2YgZD09PSJvYmplY3QiP1VfKGQpOmR9cmV0dXJuIGJ9OwpVMD1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYodHlwZW9mIGI9PT0ic3RyaW5nIil7aWYoYS55YVtiXSlyZXR1cm4gYS55YVtiXTtjPSguLi5kKT0+e3ZhciBlPV8uc2EoYik7aWYoZSl0cnl7ZS5hcHBseShfLnUsZCl9Y2F0Y2goZil7dGhyb3cgZD1uZXcgXy5YaigiUGxheWVyUHJveHkgZXJyb3Igd2hlbiBleGVjdXRpbmcgY2FsbGJhY2siLHtlcnJvcjpmfSksZC5sZXZlbD0iRVJST1IiLGQ7fX07YS55YVtiXT1jfXJldHVybiBjP2M6bnVsbH07TDA9ZnVuY3Rpb24oYSl7dmFyIGI9Vl8oYS5lbGVtZW50SWQpOyFiJiZhLm8mJmEuby5xdWVyeVNlbGVjdG9yJiYoYj1hLm8ucXVlcnlTZWxlY3RvcihgIyR7YS5lbGVtZW50SWR9YCkpO3JldHVybiBifTtRMD1mdW5jdGlvbihhKXtyZXR1cm4gYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5qc1VybDooYT1hLmNvbmZpZy5hc3NldHMpP2EuanM6IiJ9OwpLMD1mdW5jdGlvbihhKXt2YXIgYj0hMCxjPUwwKGEpO2MmJmEuY29uZmlnJiYoYj1jLmRhdGFzZXQudmVyc2lvbj09PVEwKGEpKTtyZXR1cm4gYiYmISFfLnNhKCJ5dC5wbGF5ZXIuQXBwbGljYXRpb24uY3JlYXRlIil9O08wPWZ1bmN0aW9uKGEsYil7aWYoYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnKXZhciBjPWEud2ViUGxheWVyQ29udGV4dENvbmZpZy5zZXJpYWxpemVkRXhwZXJpbWVudEZsYWdzO2Vsc2UgYS5jb25maWc/LmFyZ3MmJihjPWEuY29uZmlnLmFyZ3MuZmZsYWdzKTtyZXR1cm4oY3x8IiIpLnNwbGl0KCImIikuaW5jbHVkZXMoYCR7Yn09dHJ1ZWApfTsKTTA9ZnVuY3Rpb24oYSl7aWYoIWEuaWEoKSl7bGV0IGI9TDAoYSksYz0hMTtiJiZiLmdldEFwaUludGVyZmFjZSYmYi5nZXRBcGlJbnRlcmZhY2UoKSYmKGM9ITApO2M/KGEuVT0hMSwhTzAoYSwiaHRtbDVfcmVtb3ZlX25vdF9zZXJ2YWJsZV9jaGVja19raWxsc3dpdGNoIikmJmI/LmlzTm90U2VydmFibGUmJmEuY29uZmlnJiZiPy5pc05vdFNlcnZhYmxlKGEuY29uZmlnLmFyZ3M/LnZpZGVvX2lkKXx8JHJhKGEpKTphLlFhPXNldFRpbWVvdXQoKCk9PntNMChhKX0sNTApfX07TjA9ZnVuY3Rpb24oYSl7YS5jYW5jZWwoKTtJMChhKTthLlo9bnVsbDthLmNvbmZpZyYmKGEuY29uZmlnLmxvYWRlZD0hMSk7dmFyIGI9TDAoYSk7YiYmKEswKGEpfHwhUjAoYSk/YS52PWI6KGImJmIuZGVzdHJveSYmYi5kZXN0cm95KCksYS52PW51bGwpKTthLnRhcmdldEVsZW1lbnQmJldfKGEudGFyZ2V0RWxlbWVudCl9OwpacmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEud2ViUGxheWVyQ29udGV4dENvbmZpZz9hLndlYlBsYXllckNvbnRleHRDb25maWcuY3NzVXJsOihhPWEuY29uZmlnLmFzc2V0cyk/YS5jc3M6IiJ9O1IwPWZ1bmN0aW9uKGEpe2E9YS5jb25maWc/LmFyZ3M/LmZmbGFncztyZXR1cm4hIWEmJmEuaW5kZXhPZigicGxheWVyX2Rlc3Ryb3lfb2xkX3ZlcnNpb249dHJ1ZSIpIT09LTF9OwokcmE9ZnVuY3Rpb24oYSl7STAoYSk7YS5GYT0hMDt2YXIgYj1MMChhKTtpZihiKXthLkI9VjAoYSxiLCJhZGRFdmVudExpc3RlbmVyIik7YS5oYT1WMChhLGIsInJlbW92ZUV2ZW50TGlzdGVuZXIiKTtsZXQgYz1iLmdldEFwaUludGVyZmFjZSgpO2M9Yy5jb25jYXQoYi5nZXRJbnRlcm5hbEFwaUludGVyZmFjZSgpKTtsZXQgZD1hLmFwaTtmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrKyl7bGV0IGY9Y1tlXTtkW2ZdfHwoZFtmXT1WMChhLGIsZikpfX1mb3IobGV0IGMgaW4gYS5qKWEuai5oYXNPd25Qcm9wZXJ0eShjKSYmYS5CJiZhLkIoYyxhLmpbY10pO1QwKGEpO2Eub2EmJmEub2EoYS5hcGkpO2EuTS5wdWJsaXNoKCJvblJlYWR5IixhLmFwaSl9OwpWMD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YltjXTtyZXR1cm4oLi4uZSk9Pnt0cnl7cmV0dXJuIGEubGFzdEVycm9yPW51bGwsZC5hcHBseShiLGUpfWNhdGNoKGYpe2lmKGMhPT0ic2VuZEFiYW5kb25tZW50UGluZyIpdGhyb3cgZi5wYXJhbXM9YyxhLmxhc3RFcnJvcj1mLGU9bmV3IF8uWGooIlBsYXllclByb3h5IGVycm9yIGluIG1ldGhvZCBjYWxsIix7ZXJyb3I6ZixtZXRob2Q6YyxwbGF5ZXJJZDphLnBsYXllcklkfSksZS5sZXZlbD0iV0FSTklORyIsZTt9fX07CmFzYT1mdW5jdGlvbihhLGIpe3ZhciBjPWQ9Pnt2YXIgZT0oKT0+e2EuaWEoKTtpZighYS5pYSgpKXRyeXthLk0ucHVibGlzaChiLGQ/P3ZvaWQgMCl9Y2F0Y2goaCl7dmFyIGY9bmV3IF8uWGooIlBsYXllclByb3h5IGVycm9yIHdoZW4gY3JlYXRpbmcgZ2xvYmFsIGNhbGxiYWNrIix7ZXJyb3I6aC5tZXNzYWdlLGV2ZW50OmIscGxheWVySWQ6YS5wbGF5ZXJJZCxkYXRhOmQsb3JpZ2luYWxTdGFjazpoLnN0YWNrLGNvbXBvbmVudFN0YWNrOmguY29tcG9uZW50U3RhY2t9KTtmLmxldmVsPSJXQVJOSU5HIjt0aHJvdyBmO319O2lmKE8wKGEsIndlYl9wbGF5ZXJfcHVibGlzaF9ldmVudHNfaW1tZWRpYXRlbHkiKSllKCk7ZWxzZXtsZXQgZj1zZXRUaW1lb3V0KCgpPT57ZSgpO3ZhciBoPWEuSSxrPVN0cmluZyhmKTtrIGluIGgmJmRlbGV0ZSBoW2tdfSwwKTt2cmEoYS5JLFN0cmluZyhmKSl9fTtyZXR1cm4gYS5qW2JdPWN9Owpjc2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz0icGxheWVyIjtjPXR5cGVvZiBjPT09InN0cmluZyI/Vl8oYyk6Yzt2YXIgZD1gJHtfLnZhYX1fJHtfLmZ3KGMpfWAsZT1XMFtkXTtlPW5ldyBic2EoYyxkLGEsYik7VzBbZF09ZTtlLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57ZGVsZXRlIFcwW2UuZ2V0SWQoKV19KTtyZXR1cm4gZS5hcGl9O1gwPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O18ueCgianNvbl9jb25kZW5zZWRfcmVzcG9uc2UiKSYmKGIucHJldHR5UHJpbnQ9ImZhbHNlIik7cmV0dXJuIGE9Xy5laihhLGIpfTtZMD1mdW5jdGlvbihhKXt2YXIgYj1fLncoIklOTkVSVFVCRV9IT1NUX09WRVJSSURFIik7YiYmKGE9U3RyaW5nKGIpK1N0cmluZyhfLk55KGEpKSk7cmV0dXJuIGF9OwpaMD1mdW5jdGlvbihhLGI9IlBPU1QiKXthPXttZXRob2Q6Yixtb2RlOl8uZmooYSk/InNhbWUtb3JpZ2luIjoiY29ycyIsY3JlZGVudGlhbHM6Xy5maihhKT8ic2FtZS1vcmlnaW4iOiJpbmNsdWRlIn07Yj17fTt2YXIgYz17fTtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYikpYltkXSYmKGNbZF09YltkXSk7T2JqZWN0LmtleXMoYykubGVuZ3RoPjAmJihhLmhlYWRlcnM9Yyk7cmV0dXJuIGF9OyQwPWZ1bmN0aW9uKGEpe2E9YS5tYXRjaCgvKC4qKTo6Lio6Oi4qLyk7aWYoYSE9PW51bGwpcmV0dXJuIGFbMV19O2ExPWZ1bmN0aW9uKGEpe2lmKF8uWHooKSl7dmFyIGI9T2JqZWN0LmtleXMod2luZG93LmxvY2FsU3RvcmFnZSk7Zm9yKGxldCBjIG9mIGIpYj0kMChjKSxiPT09dm9pZCAwfHxhLmluY2x1ZGVzKGIpfHxzZWxmLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGMpfX07CmRzYT1mdW5jdGlvbigpe2lmKCFfLlh6KCkpcmV0dXJuITE7dmFyIGE9Xy5WaigpLGI9T2JqZWN0LmtleXMod2luZG93LmxvY2FsU3RvcmFnZSk7Zm9yKGxldCBjIG9mIGIpaWYoYj0kMChjKSxiIT09dm9pZCAwJiZiIT09YSlyZXR1cm4hMDtyZXR1cm4hMX07YjE9ZnVuY3Rpb24oYSl7Xy5PaShfLiR6LGFyZ3VtZW50cyl9O2MxPWFzeW5jIGZ1bmN0aW9uKGEpe2lmKGF3YWl0IF8uZUEoKSl7dmFyIGI9W10sYz1hd2FpdCBfLmRBLmtleXMoKTtmb3IobGV0IGQgb2YgYykoe2RhdGFzeW5jSWQ6Y309Xy5iQShkKSksIWN8fGEuaW5jbHVkZXMoYyl8fGIucHVzaChfLmRBLmRlbGV0ZShkKSk7UHJvbWlzZS5hbGwoYikudGhlbihkPT5kLnNvbWUoZT0+ZSkpfX07CmVzYT1hc3luYyBmdW5jdGlvbigpe2lmKCFhd2FpdCBfLmVBKCkpcmV0dXJuITE7dmFyIGE9Xy5WaigiY2FjaGUgY29udGFpbnMgb3RoZXIiKSxiPWF3YWl0IF8uZEEua2V5cygpO2ZvcihsZXQgYyBvZiBiKWlmKHtkYXRhc3luY0lkOmJ9PV8uYkEoYyksYiYmYiE9PWEpcmV0dXJuITA7cmV0dXJuITF9O2ZzYT1mdW5jdGlvbihhKXtpZihfLmhBLmhhcyhhKSYmXy5mQSYmKF8uZkE/LnRhZ05hbWUudG9Mb3dlckNhc2UoKT8/IiIpPT09YSl7bGV0IGI7KGI9Xy5mQSkubWk/PyhiLm1pPTApO18uZkEubWkrKztpZihfLmZBLm1pPjEpdGhyb3cgRXJyb3IoIlBiIik7cmV0dXJuIF8uZkF9fTtnc2E9ZnVuY3Rpb24oYSl7dmFyIGI9YT8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPz8iIjtfLmZBIT09YSYmYi5pbmNsdWRlcygiLSIpJiZfLmdBLnNldChhLCEwKX07ZDE9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuISF3aW5kb3c/LnRvcD8ubG9jYXRpb24uaHJlZiYmITF9Y2F0Y2goYSl7cmV0dXJuITB9fTsKZjE9ZnVuY3Rpb24oYT0iYmV2YXNyc2ciKXtyZXR1cm4gbmV3IFByb21pc2UoYj0+e3ZhciBjPXdpbmRvdz09PXdpbmRvdy50b3A/d2luZG93OmQxKCk/d2luZG93OndpbmRvdy50b3AsZD1jW2FdO2Q/LmJldmFzcnM/YihuZXcgZTEoZC5iZXZhc3JzKSk6KGR8fChkPXtucWZiZWw6W119LGNbYV09ZCksZC5ucWZiZWwucHVzaChlPT57YihuZXcgZTEoZSkpfSkpfSl9O2hzYT1mdW5jdGlvbihhKXthLmohPT12b2lkIDAmJihhLm8uZm9yRWFjaChiPT57YS5qPy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYS52KX0pLGEuaj12b2lkIDApfTtnMT1mdW5jdGlvbihhKXt2YXIgYj17S2M6YS5jLHNsOmEuZSxMeTphLm1jPz8hMSxNeTphLm1lPz8hMX07YS5jbyYmKGIueWk9e1hvOmEuY28uYyxBdTphLmNvLmEsSkE6YS5jby5zfSk7cmV0dXJuIGJ9Owpqc2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGFzeW5jKCk9Pnt2YXIgYj1hd2FpdCBhKCk7cmV0dXJue2Y6KCk9PmIueWcucHJvbWlzZSxjOmM9PntpZihjPjE1MCl2YXIgZD0hMTtlbHNlIHRyeXtiLmNhY2hlPW5ldyBpc2EoYyxiLlgpLGQ9ITB9Y2F0Y2goZSl7Yi5yZXBvcnRFcnJvcihuZXcgaDEoMjIsIkdCSjppbml0IixlKSksZD0hMX1yZXR1cm4gZH0sbTpjPT5iLm9lKGcxKGMpKSxtd3M6Yz0+Yi56aihnMShjKSl9fX07CmtzYT1mdW5jdGlvbihhLGIsYz0iYmV2YXNyc2ciKXtiPXtzOmY9PmEuc25hcHNob3Qoey4uLihmLmMmJntLYzpmLmN9KSwuLi4oZi5zJiZ7WWo6Zi5zfSksVUs6Zi5wPz8hMH0pLGU6Zj0+dm9pZCBhLkloPy4oZiksYzooZixoKT0+YS5CaShmLGgpLHA6YS5DZyxsOigpPT5hLlZoKCksd3BjOmI/anNhKGIpOnZvaWQgMH07dmFyIGQ9d2luZG93PT09d2luZG93LnRvcD93aW5kb3c6ZDEoKT93aW5kb3c6d2luZG93LnRvcCxlPWRbY107aWYoZSl7ZS5iZXZhc3JzPWI7aWYoZS5ucWZiZWwhPT12b2lkIDApZm9yKGxldCBmIG9mIGUubnFmYmVsKWYoYik7ZS5ucWZiZWw9dm9pZCAwfWVsc2UgZT17YmV2YXNyczpiLG5xZmJlbDp2b2lkIDB9LGRbY109ZX07ajE9ZnVuY3Rpb24oYSl7dmFyIGI9W107R18oYSxpMSw2KS5mb3JFYWNoKGM9PntfLnR4KGMsMik8PTUzJiZiLnB1c2goXy50eChjLDEpKX0pO3JldHVybiBifTsKbHNhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO0dfKGEsaTEsNikuZm9yRWFjaChjPT57Xy50eChjLDIpPjUzJiZiLnB1c2goXy50eChjLDEpKX0pO3JldHVybiBifTtrMT1mdW5jdGlvbihhKXthLnRoZW4oKCk9Pnt9LCgpPT57fSl9O2wxPWZ1bmN0aW9uKGEpe3JldHVybntmaWVsZFR5cGU6MixmaWVsZE5hbWU6YX19O20xPWZ1bmN0aW9uKGEpe3JldHVybntmaWVsZFR5cGU6MyxmaWVsZE5hbWU6YX19O21zYT1mdW5jdGlvbihhLGIpe3JldHVybiBDXyhhLGIsXy5Pdyl9OwpyMT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgbjE7Yj1CWihiLDEsYS5vKTt2YXIgYz1uc2EoYSk7Yj1DXyhiLGMsc3JhKTtjPVtdO3ZhciBkPVtdO2Zvcih2YXIgZSBvZiBhLmoua2V5cygpKWQucHVzaChlLnNwbGl0KCIsIikpO2ZvcihlPTA7ZTxkLmxlbmd0aDtlKyspe2xldCBwPWRbZV07dmFyIGY9YS52LGg9bzEoYSwuLi5wKXx8W107bGV0IHI9W107Zm9yKHZhciBrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBsPWhba10sbT1sJiZsLmo7bD1uZXcgb3NhO3N3aXRjaChmKXtjYXNlIDM6bT1OdW1iZXIobSk7TnVtYmVyLmlzRmluaXRlKG0pJiZGXyhsLDEscDEseV8obSkpO2JyZWFrO2Nhc2UgMjpGXyhsLDIscDEscF8oTnVtYmVyKG0pKSl9ci5wdXNoKGwpfWZvcihmPTA7ZjxyLmxlbmd0aDtmKyspe2s9cltmXTtoPW5ldyBwc2E7aD1fLkt3KGgsMixrKTtrPVtdO2w9cXNhKGEpO2ZvcihtPTA7bTxsLmxlbmd0aDttKyspe3ZhciBuPWxbbV07bGV0IHQ9cFttXSx2PW5ldyByc2E7c3dpdGNoKG4pe2Nhc2UgMzpGXyh2LAoxLHExLEFaKFN0cmluZyh0KSkpO2JyZWFrO2Nhc2UgMjpuPU51bWJlcih0KTtOdW1iZXIuaXNGaW5pdGUobikmJkZfKHYsMixxMSxfLlB3KG4pKTticmVhaztjYXNlIDE6Rl8odiwzLHExLF8ueHcodD09PSJ0cnVlIikpfWsucHVzaCh2KX1IXyhoLDEsayk7Yy5wdXNoKGgpfX1IXyhiLDQsYyk7cmV0dXJuIGJ9O3NzYT1mdW5jdGlvbihhKXtIXyhzMSwxLGEpfTsKdXNhPWZ1bmN0aW9uKGEsYj10MSl7aWYoIXUxKXthPWEubmF2aWdhdG9yPy51c2VyQWdlbnREYXRhO2lmKCFhfHx0eXBlb2YgYS5nZXRIaWdoRW50cm9weVZhbHVlcyE9PSJmdW5jdGlvbiJ8fGEuYnJhbmRzJiZ0eXBlb2YgYS5icmFuZHMubWFwIT09ImZ1bmN0aW9uIilyZXR1cm4gUHJvbWlzZS5yZWplY3QoRXJyb3IoImtlIikpO3NzYSgoYS5icmFuZHN8fFtdKS5tYXAoZD0+e3ZhciBlPW5ldyB0c2E7ZT1CWihlLDEsZC5icmFuZCk7cmV0dXJuIEJaKGUsMixkLnZlcnNpb24pfSkpO3R5cGVvZiBhLm1vYmlsZT09PSJib29sZWFuIiYmXy5xdyhzMSwyLF8ueHcoYS5tb2JpbGUpKTt1MT1hLmdldEhpZ2hFbnRyb3B5VmFsdWVzKGIpfXZhciBjPW5ldyBTZXQoYik7cmV0dXJuIHUxLnRoZW4oZD0+e3ZhciBlPXMxLmNsb25lKCk7Yy5oYXMoInBsYXRmb3JtIikmJkJaKGUsMyxkLnBsYXRmb3JtKTtjLmhhcygicGxhdGZvcm1WZXJzaW9uIikmJkJaKGUsNCxkLnBsYXRmb3JtVmVyc2lvbik7CmMuaGFzKCJhcmNoaXRlY3R1cmUiKSYmQlooZSw1LGQuYXJjaGl0ZWN0dXJlKTtjLmhhcygibW9kZWwiKSYmQlooZSw2LGQubW9kZWwpO2MuaGFzKCJ1YUZ1bGxWZXJzaW9uIikmJkJaKGUsNyxkLnVhRnVsbFZlcnNpb24pO3JldHVybiBlLnNlcmlhbGl6ZSgpfSkuY2F0Y2goKCk9PnMxLnNlcmlhbGl6ZSgpKX07djE9ZnVuY3Rpb24oYSl7cmV0dXJuIENaKGEsMSwxKX07eTE9ZnVuY3Rpb24oYSxiKXtfLkt3KGEuaiwxLGIpO0tfKGIpfHx2MShiKTthLnlkfHwoYj13MShhKSxKXyhiLDUpfHxCWihiLDUsYS5sb2NhbGUpKTthLnYmJihiPXcxKGEpLF8uTngoYix4MSw5KXx8Xy5LdyhiLDksYS52KSl9O3cxPWZ1bmN0aW9uKGEpe3ZhciBiPV8uTngoYS5qLHoxLDEpO2J8fChiPW5ldyB6MSx5MShhLGIpKTthPWI7Yj1fLk54KGEsQTEsMTEpO2J8fChiPW5ldyBBMSxfLkt3KGEsMTEsYikpO3JldHVybiBifTt2c2E9ZnVuY3Rpb24oYSxiKXthLm89Yn07CnhzYT1mdW5jdGlvbihhKXt2YXIgYj1hLnlkP3ZvaWQgMDpfLnpkKCk7Yj91c2EoYix0MSkudGhlbihjPT57YS52PXdzYShjPz8iW10iKTtjPXcxKGEpO18uS3coYyw5LGEudik7cmV0dXJuITB9KS5jYXRjaCgoKT0+ITEpOlByb21pc2UucmVzb2x2ZSghMSl9O0IxPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuQj1hO3RoaXMuRD1iO3RoaXMubz10aGlzLmo9YTt0aGlzLks9Y3x8MDt0aGlzLkk9ZHx8Mn07QzE9ZnVuY3Rpb24oYSl7YS5vPU1hdGgubWluKGEuRCxhLm8qYS5JKTthLmo9TWF0aC5taW4oYS5ELGEubysoYS5LP01hdGgucm91bmQoYS5LKihNYXRoLnJhbmRvbSgpLS41KSoyKmEubyk6MCkpO2EudisrfTtEMT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIn07CnlzYT1mdW5jdGlvbihhLGIpe2lmKCFhLk1hKXJldHVybigpPT57fTt2YXIgYz0oKT0+e2EuZmx1c2goKX07cmV0dXJuIGI/KCk9PntiKCkudGhlbihjKX06Y307RTE9ZnVuY3Rpb24oYSl7YS52LmlzRmluYWw9ITA7YS5mbHVzaCgpO2Eudi5pc0ZpbmFsPSExfTtGMT1mdW5jdGlvbihhKXthLlV8fChhLlU9RDEoKSk7dHJ5e3JldHVybihuZXcgVVJMKGEuVSkpLnRvU3RyaW5nKCl9Y2F0Y2goYil7cmV0dXJuKG5ldyBVUkwoYS5VLF8uemQoKS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfX07QXNhPWZ1bmN0aW9uKGEpe3pzYShhLChiLGMpPT57Yj1uZXcgVVJMKGIpO2Iuc2VhcmNoUGFyYW1zLnNldCgiZm9ybWF0IiwianNvbiIpO3ZhciBkPSExO3RyeXtkPV8uemQoKS5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihiLnRvU3RyaW5nKCksYy5zZXJpYWxpemUoKSl9Y2F0Y2h7fWR8fChhLlo9ITEpO3JldHVybiBkfSl9OwpCc2E9ZnVuY3Rpb24oYSxiLGM9bnVsbCxkPWEud2l0aENyZWRlbnRpYWxzKXt2YXIgZT17fSxmPW5ldyBVUkwoRjEoYSkpO2MmJihlLkF1dGhvcml6YXRpb249Yyk7YS5zZXNzaW9uSW5kZXgmJihlWyJYLUdvb2ctQXV0aFVzZXIiXT1hLnNlc3Npb25JbmRleCxmLnNlYXJjaFBhcmFtcy5zZXQoImF1dGh1c2VyIixhLnNlc3Npb25JbmRleCkpO2EucGFnZUlkJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlgtR29vZy1QYWdlSWQiLHt2YWx1ZTphLnBhZ2VJZH0pLGYuc2VhcmNoUGFyYW1zLnNldCgicGFnZUlkIixhLnBhZ2VJZCkpO3JldHVybnt1cmw6Zi50b1N0cmluZygpLGJvZHk6YixHdToxLE9qOmUscmVxdWVzdFR5cGU6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpkLHRpbWVvdXRNaWxsaXM6YS50aW1lb3V0TWlsbGlzfX07CnpzYT1mdW5jdGlvbihhLGIpe2lmKGEuai5sZW5ndGghPT0wKXt2YXIgYz1uZXcgVVJMKEYxKGEpKTtjLnNlYXJjaFBhcmFtcy5kZWxldGUoImZvcm1hdCIpO3ZhciBkPWEuU2YoKTtkJiZjLnNlYXJjaFBhcmFtcy5zZXQoImF1dGgiLGQpO2Muc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLGEuc2Vzc2lvbkluZGV4fHwiMCIpO2ZvcihkPTA7ZDwxMCYmYS5qLmxlbmd0aDsrK2Qpe2xldCBlPWEuai5zbGljZSgwLDMyKSxmPWEudi5idWlsZChlLGEuQixhLkksYS5sZixhLmhhLGEuZ2EpO2lmKCFiKGMudG9TdHJpbmcoKSxmKSl7KythLkk7YnJlYWt9YS5CPTA7YS5JPTA7YS5oYT0wO2EuZ2E9MDthLmo9YS5qLnNsaWNlKGUubGVuZ3RoKX1hLm8uZW5hYmxlZCYmYS5vLnN0b3AoKX19O0NzYT1mdW5jdGlvbihhLGIpe2EuYnVpbGRMYWJlbD1iO3JldHVybiBhfTtFc2E9ZnVuY3Rpb24oYSl7YS5uZXR3b3JrPW5ldyBEc2E7cmV0dXJuIGF9O0ZzYT1mdW5jdGlvbihhLGIpe2Euaj1ifTsKR3NhPWZ1bmN0aW9uKGEpe2Eubz0hMDtyZXR1cm4gYX07cXNhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmZpZWxkcy5tYXAoYj0+Yi5maWVsZFR5cGUpfTtvMT1mdW5jdGlvbihhLC4uLmIpe2I9RzEoLi4uYik7cmV0dXJuIGEuai5oYXMoYik/YS5qLmdldChiKTp2b2lkIDB9O25zYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5maWVsZHMubWFwKGI9PmIuZmllbGROYW1lKX07STE9ZnVuY3Rpb24oYSxiLC4uLmMpe2M9RzEoLi4uYyk7YS5qLnNldChjLFtuZXcgSDEoYildKX07SHNhPWZ1bmN0aW9uKGEsYiwuLi5jKXt2YXIgZD1vMShhLC4uLmMpO2Q/ZC5wdXNoKG5ldyBIMShiKSk6STEoYSxiLC4uLmMpfTtHMT1mdW5jdGlvbiguLi5hKXtyZXR1cm4gYT9hLmpvaW4oIiwiKToia2V5In07SXNhPWZ1bmN0aW9uKGEsLi4uYil7cmV0dXJuKGE9bzEoYSwuLi5iKSkmJmEubGVuZ3RoP2FbMF06dm9pZCAwfTsKSnNhPWZ1bmN0aW9uKGEsLi4uYil7dmFyIGM9MCxkPUlzYShhLC4uLmIpO2QmJihjPWQuaik7STEoYSxjKzEsLi4uYil9O0sxPWZ1bmN0aW9uKGEsYiwuLi5jKXthLnYuaGFzKGIpfHxhLnYuc2V0KGIsbmV3IEoxKGIsYykpfTtNMT1mdW5jdGlvbihhLGIsLi4uYyl7YS52LmhhcyhiKXx8YS52LnNldChiLG5ldyBMMShiLGMpKX07TjE9ZnVuY3Rpb24oYSl7YS5vLmVuYWJsZWR8fGEuby5zdGFydCgpO2EuSSsrO2EuST49YS5CJiZhLkQoKX07S3NhPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0uY2xlYXIoKX07TzE9ZnVuY3Rpb24oYSxiLC4uLmMpeyhiPWEuaihiKSkmJmIgaW5zdGFuY2VvZiBMMSYmKEpzYShiLC4uLmMpLE4xKGEpKX07ClAxPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDIwMDpyZXR1cm4gMDtjYXNlIDQwMDpyZXR1cm4gMztjYXNlIDQwMTpyZXR1cm4gMTY7Y2FzZSA0MDM6cmV0dXJuIDc7Y2FzZSA0MDQ6cmV0dXJuIDU7Y2FzZSA0MDk6cmV0dXJuIDEwO2Nhc2UgNDEyOnJldHVybiA5O2Nhc2UgNDI5OnJldHVybiA4O2Nhc2UgNDk5OnJldHVybiAxO2Nhc2UgNTAwOnJldHVybiAyO2Nhc2UgNTAxOnJldHVybiAxMjtjYXNlIDUwMzpyZXR1cm4gMTQ7Y2FzZSA1MDQ6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMn19OwpMc2E9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4iT0siO2Nhc2UgMTpyZXR1cm4iQ0FOQ0VMTEVEIjtjYXNlIDI6cmV0dXJuIlVOS05PV04iO2Nhc2UgMzpyZXR1cm4iSU5WQUxJRF9BUkdVTUVOVCI7Y2FzZSA0OnJldHVybiJERUFETElORV9FWENFRURFRCI7Y2FzZSA1OnJldHVybiJOT1RfRk9VTkQiO2Nhc2UgNjpyZXR1cm4iQUxSRUFEWV9FWElTVFMiO2Nhc2UgNzpyZXR1cm4iUEVSTUlTU0lPTl9ERU5JRUQiO2Nhc2UgMTY6cmV0dXJuIlVOQVVUSEVOVElDQVRFRCI7Y2FzZSA4OnJldHVybiJSRVNPVVJDRV9FWEhBVVNURUQiO2Nhc2UgOTpyZXR1cm4iRkFJTEVEX1BSRUNPTkRJVElPTiI7Y2FzZSAxMDpyZXR1cm4iQUJPUlRFRCI7Y2FzZSAxMTpyZXR1cm4iT1VUX09GX1JBTkdFIjtjYXNlIDEyOnJldHVybiJVTklNUExFTUVOVEVEIjtjYXNlIDEzOnJldHVybiJJTlRFUk5BTCI7Y2FzZSAxNDpyZXR1cm4iVU5BVkFJTEFCTEUiO2Nhc2UgMTU6cmV0dXJuIkRBVEFfTE9TUyI7CmRlZmF1bHQ6cmV0dXJuIiJ9fTtSMT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9UTEoKTtiPWIoKTthLnYoYyxRMSgpLWQpO3JldHVybiBifTtPc2E9ZnVuY3Rpb24oYSxiLGMsZCl7YT1Hc2EoRXNhKENzYShuZXcgUzEsYSkpKS5ubCgpO2IubGVuZ3RoJiZGc2EoYSxtc2EobmV3IE1zYSxiKSk7ZCE9PXZvaWQgMCYmKGEuTmU9ZCk7dmFyIGU9bmV3IE5zYShhLmJ1aWxkKCkpO0VaKGUsYSk7dmFyIGY9bmV3IFQxKHtmbHVzaChoKXt0cnl7ZS5mbHVzaChoKX1jYXRjaChrKXtjKGspfX19KTtmLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57c2V0VGltZW91dCgoKT0+e3RyeXtmLkQoKX1maW5hbGx5e2UuZGlzcG9zZSgpfX0pfSk7Zi5CPTFFNTtmLmZsdXNoSW50ZXJ2YWw9M0U0O2Yuby5zZXRJbnRlcnZhbCgzRTQpO3JldHVybiBmfTsKUHNhPWZ1bmN0aW9uKGEpe2lmKGEudGltZXI9PT12b2lkIDApe2xldCBiPU1hdGgubWF4KDAsYS5qK2Euby1RMSgpKTthLnRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0cnl7YS5jYWxsYmFjaygpfWZpbmFsbHl7YS5qPVExKCksYS50aW1lcj12b2lkIDB9fSxiKX19O1JzYT1mdW5jdGlvbihhLGI9W10pe3JldHVybiBuZXcgUXNhKGEsYil9O1ExPWZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/Lm5vdz8uKCk/P0RhdGUubm93KCl9O1UxPWZ1bmN0aW9uKGEsYil7aWYoYS5kaXNhYmxlKXJldHVybiBuZXcgU3NhO2I9Yj9qMShiKTpbXTtyZXR1cm4gUnNhKHttYjphLm1iLHpsOmEuU3Ysbm06YS5LeSxOZTphLk5lLEZqOmEuRmosSWc6YS5JZ30sYil9O1cxPWZ1bmN0aW9uKCl7VjEuaW5zdGFuY2V8fChWMS5pbnN0YW5jZT1uZXcgVjEpO3JldHVybiBWMS5pbnN0YW5jZX07ClRzYT1mdW5jdGlvbihhLGIsYyxkKXtpZighYiYmIWMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFkKXJldHVybiBYMShiLGMpO3ZhciBlOyhlPWEucHJvbWlzZXMpW2RdfHwoZVtkXT1uZXcgUHJvbWlzZSgoZixoKT0+e1gxKGIsYykudGhlbigoKT0+e2Euaj1kO2YoKX0saz0+e2RlbGV0ZSBhLnByb21pc2VzW2RdO2goayl9KX0pKTtyZXR1cm4gYS5wcm9taXNlc1tkXX07JDE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVHNhKGEsXy5OeChiLFkxLDEsXy53eiksXy5OeChiLFoxLDIsXy53eiksSl8oYiwzLHZvaWQgMCxfLnd6KSl9O1gxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/VXNhKGIpOmE/VnNhKGEpOlByb21pc2UucmVzb2x2ZSgpfTsKVXNhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e3ZhciBkPV8uQ2QoIlNDUklQVCIpLGU9VHJhKGEpO18ub2IoZCxlKTtkLm9ubG9hZD0oKT0+e18uRGQoZCk7YigpfTtkLm9uZXJyb3I9KCk9PntfLkRkKGQpO2MoRXJyb3IoInFlIikpfTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChkKX0pfTtWc2E9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQcm9taXNlKGI9Pnt2YXIgYz1fLkNkKCJTQ1JJUFQiKTtpZihhKXt2YXIgZD1fLlh0KF8uZWQoYSw2LHZvaWQgMCxfLkR2KSk7ZD1kPT09bnVsbHx8ZD09PXZvaWQgMD9udWxsOl8ua2IoZCl9ZWxzZSBkPW51bGw7Xy5uYihjLGQpOyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKGMpO18uRGQoYyk7YigpfSl9OwpXc2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5XeChhLDEsQVooYiksIiIpfTtYc2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5XeChhLDIsQVooYiksIiIpfTsKYXRhPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQ9VzEoKSxlPVByb21pc2UucmVzb2x2ZSh2b2lkIDApLGYpe2F3YWl0IDA7Zm9yKHZhciBoOzspe2xldCBrPW51bGw7aWYoaCl7YTIoYSw3KTt0cnl7az1hd2FpdCBiMihoLnNuYXBzaG90KHt9KSxmLmF2LCgpPT5Qcm9taXNlLnJlc29sdmUoIkU6Q1RPIikpfWNhdGNoKG4pe2s9IkU6VUNFIn19bGV0IGwsbT1uZXcgQjEoaD9mLkp2OmYuS3YsZi5MdixmLk12LGYuSXYpO2ZvcihsZXQgbj0xO248PWYubWF4QXR0ZW1wdHM7bisrKXtpZihuIT09MSl7YTIoYSwwKTthLmo9bmV3IGMyKG0uaixmLmVrLGYubHMpO2xldCBwPWF3YWl0IGEuai5wcm9taXNlO2Euaj12b2lkIDA7cD09PTE/KG49MSxtLnJlc2V0KCkpOkMxKG0pfXRyeXtsZXQgcDtjP3A9YzooYTIoYSw1KSxwPWF3YWl0IGIyKFlzYShiLGQuaixrKSxmLlZ2LCgpPT5Qcm9taXNlLnJlamVjdChFcnJvcigic2UiKSkpKTthMihhLDMpO2F3YWl0IGIyKCQxKGQscCksZi5xeSwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoInRlIikpKTsKYTIoYSw4KTthd2FpdCBlO2xldCByPW5ldyBkMih7Y2hhbGxlbmdlOnAsbmc6YS5vcHRpb25zLm5nLEZzOmEub3B0aW9ucy5Gc30pO2F3YWl0IGIyKHIuQ2csZi5tQSwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoInVlIikpKTtsPXI7YnJlYWt9Y2F0Y2gocCl7YS5oYW5kbGVFcnJvcihwKSxlMihhKX19aWYoYS5pYSgpKWJyZWFrO2wmJihjPXZvaWQgMCxac2EoYSxoKSxoPWwsJHNhKGEsbCksZTIoYSkpO2EyKGEsMik7YS5qPW5ldyBjMihmLkZyLGYuZWssZi5scyk7YS5pc1BhdXNlZCYmYS5qLnBhdXNlKCk7YXdhaXQgYS5qLnByb21pc2U7YS5qPXZvaWQgMDtpZihhLmlhKCkpYnJlYWt9aD8uZGlzcG9zZSgpfTsKYnRhPWZ1bmN0aW9uKGEpe2EuTT1FcnJvcigicmUiKTthLkQucmVzb2x2ZSgpO2sxKGEuSS5wcm9taXNlKTthLkkucmVqZWN0KEVycm9yKCJyZSIpKTthLlguZGlzcG9zZSgpO1Byb21pc2UuYWxsKGEuQikudGhlbihhc3luYygpPT57YS5vPy5kaXNwb3NlKCk7YS5vPXZvaWQgMH0pO2EuQj1bXTthLmo/Lm8oKTtrMShhLnYucHJvbWlzZSk7YS52LnJlamVjdChFcnJvcigicmUiKSl9O2YyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5HajthLkdqPSgpPT57YygpO2IoKX19OyRzYT1mdW5jdGlvbihhLGIpe2EuaWEoKXx8KGEubz1iLGEuWC51cGRhdGUoYi5WaCgpKSxhLkQucmVzb2x2ZSgpLGEuSS5yZXNvbHZlKHZvaWQgMCksYS5HaigpKX07WnNhPWZ1bmN0aW9uKGEsYil7YiYmKFByb21pc2UuYWxsKGEuQikudGhlbigoKT0+dm9pZCBiLmRpc3Bvc2UoKSksYS5CPVtdKX07YTI9ZnVuY3Rpb24oYSxiKXthLlo9YjthLm9wdGlvbnMuaks/LihiKX07CmUyPWZ1bmN0aW9uKGEpe2EuaWEoKXx8KGEudi5yZXNvbHZlKCksYS52PW5ldyBfLmNzKX07YjI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2M9KG5ldyBQcm9taXNlKGU9PntkPXNldFRpbWVvdXQoZSxiKX0pKS50aGVuKGMpO2sxKGMpO3JldHVybiBQcm9taXNlLnJhY2UoW2EuZmluYWxseSgoKT0+dm9pZCBjbGVhclRpbWVvdXQoZCkpLGNdKX07Y3RhPWZ1bmN0aW9uKGEsYil7YS5lbmRUaW1lTXM9RGF0ZS5ub3coKStiO2EudGljaygpfTtnMj1mdW5jdGlvbihhKXthLmomJihjbGVhclRpbWVvdXQoYS5qKSxhLmo9bnVsbCl9O2gyPWZ1bmN0aW9uKGEsYil7dHJ5e3JldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oYSxiKSwhMH1jYXRjaChjKXtyZXR1cm4hMX19OwppMj1mdW5jdGlvbihhLGI9MCxjPWEubGVuZ3RoLGQpe3ZhciBlPTA7Zm9yKGQmJihlPWkyKGQpKTtiPGM7YisrKWU9ZHRhKDMxLGUpKyh0eXBlb2YgYT09PSJzdHJpbmciP2EuY2hhckNvZGVBdChiKTphW2JdKXwwO3JldHVybiBlfTtrMj1mdW5jdGlvbihhKXt2YXIgW2IsY109W2kyKGEsMCxhLmxlbmd0aD4+MSxqMiksaTIoYSxhLmxlbmd0aD4+MSldO3JldHVybiBiLnRvU3RyaW5nKDE2KStjLnRvU3RyaW5nKDE2KX07CmwyPWZ1bmN0aW9uKGEsYil7dmFyIGM9W2kyKGIsMCxiLmxlbmd0aD4+MSx2b2lkIDApLGkyKGIsYi5sZW5ndGg+PjEpXTthPW5ldyBVaW50MzJBcnJheShhLmJ1ZmZlcik7Yj1hWzBdO3ZhciBbZCxlXT1jO2ZvcihjPTE7YzxhLmxlbmd0aDtjKz0yKXt2YXIgZj1iLGg9YyxrPWQsbD1lO2ZvcihsZXQgbT0wO208MjI7bSsrKWg9aD4+Pjh8aDw8MjQsaCs9ZnwwLGhePWsrMzgyOTMsZj1mPDwzfGY+Pj4yOSxmXj1oLGw9bD4+Pjh8bDw8MjQsbCs9a3wwLGxePW0rMzgyOTMsaz1rPDwzfGs+Pj4yOSxrXj1sO2Y9W2YsaF07YVtjXV49ZlswXTtjKzE8YS5sZW5ndGgmJihhW2MrMV1ePWZbMV0pfX07CmV0YT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSg0LShqMi5sZW5ndGgrYy5sZW5ndGgpJTQpJTQsaD1uZXcgVWludDhBcnJheSg0K2YrajIubGVuZ3RoKzQrYy5sZW5ndGgpLGs9bmV3IERhdGFWaWV3KGguYnVmZmVyKSxsPTA7ay5zZXRVaW50MzIobCxNYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTUpO2w9bCs0K2Y7aC5zZXQoajIsbCk7bCs9ajIubGVuZ3RoO2suc2V0VWludDMyKGwsZSk7aC5zZXQoYyxsKzQpO2wyKGgsZCk7cmV0dXJuIGEucmIoYixtPT52b2lkIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShtKSk/aDIoYixfLnNjKGgpKT8icyI6InQiOiJpIn07CmZ0YT1mdW5jdGlvbihhLGIpe3ZhciBjPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShhKTtpZighYylyZXR1cm5bIm0iXTt0cnl7dmFyIGQ9Xy51YyhjKTtsMihkLGIpfWNhdGNoKGUpe3JldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSksWyJjIl19Zm9yKGI9NDtiPDcmJmRbYl09PT0wOyliKys7Zm9yKGM9MDtjPGoyLmxlbmd0aDtjKyspaWYoZFtiKytdIT09ajJbY10pcmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShhKSxbImQiXTtjPShuZXcgRGF0YVZpZXcoZC5idWZmZXIpKS5nZXRVaW50MzIoYik7cmV0dXJuIE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpPj1jPyhnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSksWyJlIl0pOlsiYSIsbmV3IFVpbnQ4QXJyYXkoZC5idWZmZXIsYis0KV19OwpndGE9ZnVuY3Rpb24oYSl7dmFyIGI9Z2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJpVTVxLSFPOUAkIik7aWYoIWIpcmV0dXJuIG5ldyBtMihhKTt2YXIgYz1iLnNwbGl0KCIsIik7aWYoYy5sZW5ndGg8MilyZXR1cm4gZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJpVTVxLSFPOUAkIiksbmV3IG0yKGEpO2I9Yy5zbGljZSgxKTtiLmxlbmd0aD09PTEmJmJbMF09PT0iIiYmKGI9W10pO2M9TnVtYmVyKGNbMF0pO3JldHVybiBpc05hTihjKXx8YzwwfHxjPmIubGVuZ3RoPyhnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImlVNXEtIU85QCQiKSxuZXcgbTIoYSkpOm5ldyBtMihhLGMsYil9O24yPWZ1bmN0aW9uKGEsYil7dmFyIGM9c2V0VGltZW91dCgoKT0+e2Eudi5yZXNvbHZlKCl9LGIpO2EuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KGMpKX07CnAyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YCR7YihhLmVycm9yLm1lc3NhZ2UpfToke2IoYS5lcnJvci5zdGFjayl9YC5zdWJzdHJpbmcoMCwyMDQ4KTtiPWMubGVuZ3RoKzE7Yz1vMihjKTt2YXIgZD1uZXcgVWludDhBcnJheSg0K2MubGVuZ3RoKTtkLnNldChbNDIsYiYxMjd8MTI4LGI+PjcsYS5lcnJvci5jb2RlXSk7ZC5zZXQoYyw0KTtyZXR1cm4gZH07bzI9ZnVuY3Rpb24oYSl7cmV0dXJuIGdsb2JhbFRoaXMuVGV4dEVuY29kZXI/KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpOl8uYWMoYSl9Owp0Mj1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7YS52Kys7dmFyIGM9bmV3IF8uY3M7YS52bSBpbnN0YW5jZW9mIHEyJiZhLnZtLkIucHVzaChjLnByb21pc2UpO2lmKGEuUW4pe2xldCBmPW5ldyBfLmNzO3NldFRpbWVvdXQoKCk9PnZvaWQgZi5yZXNvbHZlKCkpO2F3YWl0IGYucHJvbWlzZX12YXIgZD1hLlguc2hhcmUoKTt0cnl7YS5zdGF0ZT01O2xldCBmPVtdLGg9YXdhaXQgYjIoYS52bS5zbmFwc2hvdCh7S2M6e30sSXM6Zn0pLGEuTGcuQkEsKCk9PlByb21pc2UucmVqZWN0KG5ldyBoMSgxNSwiTURBOlRpbWVvdXQiKSkpO3IyKGEsIk1EQTpEaXNwb3NlZCIpO2xldCBrPWZbMF07YS5zdGF0ZT02O2xldCBsPWF3YWl0IGIyKGh0YShhLm9kLGgpLGEuTGcuV3YsKCk9PlByb21pc2UucmVqZWN0KG5ldyBoMSgxMCwiQldCOlRpbWVvdXQiKSkpO3IyKGEsIkJXQjpEaXNwb3NlZCIpO2Euc3RhdGU9NztiPVIxKGQsKCk9Pnt2YXIgbT1pdGEoYSxsLGMsayk7bS52LnByb21pc2UudGhlbigoKT0+CnZvaWQgYS5CKCkpO3JldHVybiBtfSwiaSIpfWNhdGNoKGYpe2I/LmRpc3Bvc2UoKTtpZighYS5vKXtsZXQgaD1qdGEoYSxmKTtjLnJlc29sdmUoKTt2YXIgZTtpZihlPWEudm0gaW5zdGFuY2VvZiBxMiYmYS52PDIpYTppZihmIGluc3RhbmNlb2YgaDEpZT1mLmNvZGUhPT0zMiYmZi5jb2RlIT09MjAmJmYuY29kZSE9PTEwO2Vsc2V7aWYoZiBpbnN0YW5jZW9mIHMyKXN3aXRjaChmLmNvZGUpe2Nhc2UgMjpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6ZT0hMTticmVhayBhfWU9ITB9aWYoZSl7bGV0IGs9c2V0VGltZW91dCgoKT0+dm9pZCBhLkIoKSwoMStNYXRoLnJhbmRvbSgpKi4yNSkqKGEuaj82RTQ6MUUzKSk7YS5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBjbGVhclRpbWVvdXQoaykpO3JldHVybn1hLm89aH1kLkpiKGEuaj8xMzoxNCk7YS55Zy5yZWplY3QoYS5vKTtyZXR1cm59ZmluYWxseXtkLmRpc3Bvc2UoKX1hLnN0YXRlPTg7YS52PTA7YS5qPy5kaXNwb3NlKCk7CmEuaj1iO2EueWcucmVzb2x2ZSgpfTtqdGE9ZnVuY3Rpb24oYSxiKXtpZighKGIgaW5zdGFuY2VvZiBoMSkpaWYoYiBpbnN0YW5jZW9mIHMyKXtsZXQgYz1FcnJvcihiLnRvU3RyaW5nKCkpO2Muc3RhY2s9Yi5zdGFjaztiPW5ldyBoMSgxMSwiRUJIOkVycm9yIixjKX1lbHNlIGI9bmV3IGgxKDEyLCJCU086VW5rbm93biIsYik7cmV0dXJuIGEucmVwb3J0RXJyb3IoYil9O3IyPWZ1bmN0aW9uKGEsYil7aWYoYS5pYSgpKXRocm93IG5ldyBoMShhLmo/MjA6MzIsYik7fTsKaXRhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPShzXyhfLmVkKGIsMikpPz8wKSoxRTM7aWYoZTw9MCl0aHJvdyBuZXcgaDEoMzEsIlRUTTpJbnZhbGlkIik7aWYoSl8oYiw0KSlyZXR1cm4gbmV3IGt0YShhLlgsSl8oYiw0KSxlKTtpZighKHNfKF8uZWQoYiwzKSk/PzApKXJldHVybiBuZXcgbHRhKGEuWCxGWihCXyhiKSksZSk7aWYoIWQpdGhyb3cgbmV3IGgxKDQsIlBNRDpVbmRlZmluZWQiKTtkPWQoRlooQl8oYikpKTtpZih0eXBlb2YgZCE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IGgxKDE2LCJBUEY6RmFpbGVkIik7YS5EPU1hdGguZmxvb3IoKERhdGUubm93KCkrZSkvMUUzKTthPW5ldyB1MihhLlgsZCxzXyhfLmVkKGIsMykpPz8wLGUpO2EuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgYy5yZXNvbHZlKCkpO3JldHVybiBhfTsKdzI9ZnVuY3Rpb24oYSxiLGMpe3RyeXtpZihhLmlhKCkpdGhyb3cgbmV3IGgxKDIxLCJCTlQ6ZGlzcG9zZWQiKTtpZighYS5qJiZhLm8pdGhyb3cgYS5vO3JldHVybiBtdGEoYSxiLGMpPz9udGEoYSxiLGMpPz9vdGEoYSxiLGMpfWNhdGNoKGQpe2lmKCFiLk15KXRocm93IHYyKGEsZCk7cmV0dXJuIHB0YShhLGMsZCl9fTt2Mj1mdW5jdGlvbihhLGIpe2I9YiBpbnN0YW5jZW9mIGgxP2I6bmV3IGgxKDUsIlRWRDplcnJvciIsYik7cmV0dXJuIGEucmVwb3J0RXJyb3IoYil9O210YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuaj8uc20oKCk9PngyKGEsYiksYyxkPT57aWYoYS5qIGluc3RhbmNlb2YgdTImJmIueWk/LkpBKXRyeXthLmNhY2hlPy5qKHgyKGEsYiksZCxiLnlpLlhvLGEuRC0xMjApfWNhdGNoKGUpe2EucmVwb3J0RXJyb3IobmV3IGgxKDI0LCJFTFg6d3JpdGUiLGUpKX19KX07Cm50YT1mdW5jdGlvbihhLGIsYyl7aWYoYi55aT8uQXUpdHJ5e2xldCBkPWEuY2FjaGU/Lm8oeDIoYSxiKSxiLnlpLlhvKTtyZXR1cm4gZD9jP1IxKGEuWCwoKT0+Xy5zYyhkLDIpLCJhIik6ZDp2b2lkIDB9Y2F0Y2goZCl7YS5yZXBvcnRFcnJvcihuZXcgaDEoMjMsIlJYTzpyZWFkIixkKSl9fTtvdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtpZighYi5MeSl0aHJvdyBuZXcgaDEoMjksIlNERjpub3RyZWFkeSIpO3JldHVybiBfLlZ6KGQsbmV3IHF0YShhLlgsYS5zdGF0ZSkpLnNtKCgpPT54MihhLGIpLGMpfWNhdGNoKGUpe2QuZXJyb3I9ZSxkLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihkKX19OwpwdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtsZXQgZT12MihhLGMpO3JldHVybiBfLlZ6KGQsbmV3IHJ0YShhLlgsZSkpLnNtKCgpPT5bXSxiKX1jYXRjaChlKXtkLmVycm9yPWUsZC5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3ooZCl9fTt4Mj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnNsP2Iuc2w6Yi5LYz9SMShhLlgsKCk9PmIuc2w9bzIoYi5LYyksImMiKTpbXX07eTI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PSJcciJ8fGE9PSJcbiJ8fGE9PSIgInx8YT09Ilx0In07ejI9ZnVuY3Rpb24oKXt0aGlzLk09bnVsbDt0aGlzLlk9W107dGhpcy5JPSIiO3RoaXMuVT1bXTt0aGlzLnY9dGhpcy5vPTA7dGhpcy5EPSExO3RoaXMuSz0wO3RoaXMuWj0vW1xcIl0vZzt0aGlzLmo9dGhpcy5CPTB9OwpBMj1mdW5jdGlvbihhLGIsYyl7YS5CPTM7YS5NPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIithLnYrIi8iK2MrIi4gV2l0aCBpbnB1dDpcbiIrYjt0aHJvdyBFcnJvcihhLk0pO307QzI9ZnVuY3Rpb24oKXt2YXIgYT1VXyhzdGEpLGI7cmV0dXJuKG5ldyBfLkJmKChjLGQpPT57YS5vblN1Y2Nlc3M9ZT0+e18ucWooZSk/YyhuZXcgdHRhKGUpKTpkKG5ldyBCMihgUmVxdWVzdCBmYWlsZWQsIHN0YXR1cz0ke18ucGooZSl9YCwibmV0LmJhZHN0YXR1cyIpKX07YS5vbkVycm9yPSgpPT57ZChuZXcgQjIoIlVua25vd24gcmVxdWVzdCBlcnJvciIsIm5ldC51bmtub3duIikpfTthLm9uVGltZW91dD0oKT0+e2QobmV3IEIyKCJSZXF1ZXN0IHRpbWVkIG91dCIsIm5ldC50aW1lb3V0IikpfTtiPV8uemooIi8vZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0L3BhZ2VhZC9pZCIsYSl9KSkuS2coYz0+e2MgaW5zdGFuY2VvZiBfLlBmJiZiPy5hYm9ydCgpO3JldHVybiBfLk90KGMpfSl9Owp1dGE9ZnVuY3Rpb24oYSxiPW51bGwpe2Euaj0yO2Eubz1ifTt2dGE9ZnVuY3Rpb24oYSxiPW51bGwpe2Euaj0xO2Eubz1ifTtFMj1mdW5jdGlvbihhPW51bGwpe3ZhciBiPW5ldyBEMjt1dGEoYixhKTtyZXR1cm4gYn07RjI9ZnVuY3Rpb24oYT1udWxsKXt2YXIgYj1uZXcgRDI7dnRhKGIsYSk7cmV0dXJuIGJ9O3d0YT1mdW5jdGlvbihhKXt2YXIgYj1hLmRvY2lkfHxhLnZpZGVvX2lkfHxhLnZpZGVvSWR8fGEuaWQ7aWYoYilyZXR1cm4gYjtiPWEucmF3X3BsYXllcl9yZXNwb25zZTtifHwoYT1hLnBsYXllcl9yZXNwb25zZSkmJihiPUpTT04ucGFyc2UoYSkpO3JldHVybiBiJiZiLnZpZGVvRGV0YWlscyYmYi52aWRlb0RldGFpbHMudmlkZW9JZHx8bnVsbH07CkcyPWZ1bmN0aW9uKGEpe3ZhciBiPSJFTUJFRERFRF9QTEFZRVJfTU9ERV9VTktOT1dOIjt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXMoInlvdXR1YmVlZHVjYXRpb24uY29tIikmJihiPSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiKTt2YXIgYz1hLnJhd19lbWJlZGRlZF9wbGF5ZXJfcmVzcG9uc2U7aWYoIWMmJihhPWEuZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlKSl0cnl7Yz1KU09OLnBhcnNlKGEpfWNhdGNoKGQpe3JldHVybiBifWlmKGMpYTp7YT14dGE7Zm9yKGxldCBkIGluIGEpaWYoYVtkXT09Yy5lbWJlZGRlZFBsYXllck1vZGUpe2I9YVtkXTticmVhayBhfX1yZXR1cm4gYn07Cnl0YT1mdW5jdGlvbigpe2lmKF8ueCgiZGlzYWJsZV9iaXNjb3R0aV9mZXRjaF9lbnRpcmVseV9mb3JfYWxsX3dlYl9jbGllbnRzIikpcmV0dXJuIEVycm9yKCJ2ZSIpO2lmKCFfLnN6KCkpcmV0dXJuIEVycm9yKCJ3ZSIpO3ZhciBhPV8udygiUExBWUVSX1ZBUlMiLHt9KTtpZihUXyhhKT09IjEiKXJldHVybiBFcnJvcigieGUiKTtpZihHMihhKT09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiKXJldHVybiBFcnJvcigieWUiKX07Wl89ZnVuY3Rpb24oKXt2YXIgYT15dGEoKTtpZihhIT09dm9pZCAwKXJldHVybiBfLk90KGEpO0gyfHwoSDI9QzIoKS50aGVuKEkyKS5LZyhiPT5KMigyLGIpKSk7cmV0dXJuIEgyfTsKSTI9ZnVuY3Rpb24oYSl7YT1hLmoucmVzcG9uc2VUZXh0O2lmKGEubGFzdEluZGV4T2YoIildfSciLDApIT0wKXRocm93IG5ldyBLMjthPUpTT04ucGFyc2UoYS5zdWJzdHIoNCkpO2lmKChhLnR5cGV8fDEpPjEpdGhyb3cgbmV3IEsyO2E9YS5pZDskXyhhKTtIMj1GMihhKTtMMigxOEU1LDIpO3JldHVybiBhfTtKMj1mdW5jdGlvbihhLGIpe2I9bmV3IE0yKGIpOyRfKCIiKTtIMj1FMihiKTthPjAmJkwyKDEyRTQsYS0xKTt0aHJvdyBiO307TDI9ZnVuY3Rpb24oYSxiKXtfLm1qKGZ1bmN0aW9uKCl7QzIoKS50aGVuKEkyLGM9PkoyKGIsYykpLktnKF8uZ2QpfSxhKX07enRhPWZ1bmN0aW9uKCl7dHJ5e2xldCBhPV8uc2EoInl0LmFkcy5iaXNjb3R0aS5nZXRJZF8iKTtyZXR1cm4gYT9hKCk6Wl8oKX1jYXRjaChhKXtyZXR1cm4gXy5PdChhKX19OwpOMj1mdW5jdGlvbigpe3ZhciBhPSExO3RyeXthPSEhd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInNlc3Npb25fbG9naW5pbmZvIil9Y2F0Y2h7YT0hMH1yZXR1cm4oXy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUIifHxfLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpPT09IldFQl9DUkVBVE9SIikmJmF9OwpPMj1mdW5jdGlvbigpe3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgic3RpY2tpbmVzc19yZWxvYWQiKTt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgic2Vzc2lvbl9sb2dpbmluZm8iKTtfLlFpKCJMT0dJTl9JTkZPIiwiIik7d2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImZyb21fc3dpdGNoX2FjY291bnQiLCIxIik7dmFyIGE7bGV0IGM9QXRhO2N8fChjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwZXJzaXN0X2lkZW50aXR5IikpO2lmKGE9Yyl7dmFyIGI9YS5zcmM/KG5ldyBVUkwoYS5zcmMpKS5vcmlnaW46IioiO2EuY29udGVudFdpbmRvdz8ucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiY2xlYXIifSxiKX19Y2F0Y2h7fX07ClAyPWZ1bmN0aW9uKGEpe2lmKGEpaWYoYS5zdGFydHNXaXRoKCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vQWRkU2Vzc2lvbiIpKU8yKCk7ZWxzZSBpZihhLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW4iKSlPMigpO2Vsc2V7dmFyIGI7aWYoYj1hLnN0YXJ0c1dpdGgoImh0dHBzOi8vbXlhY2NvdW50Lmdvb2dsZS5jb20iKSliPShhIGluc3RhbmNlb2YgXy5meT9hLmNsb25lKCk6bmV3IF8uZnkoYSkpLmouZW5kc1dpdGgoIi95b3V0dWJlb3B0aW9ucyIpO2ImJk8yKCl9aWYoXy53KCJMT0dHRURfSU4iLCEwKSYmTjIoKSl7Yj1fLncoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pO3ZhciBjPV8uUGIod2luZG93LmxvY2F0aW9uLmhyZWYpO2MmJmIucHVzaChjKTtjPV8uUGIoYSk7Xy5zYihiLGMpPj0wfHwhYyYmYS5sYXN0SW5kZXhPZigiLyIsMCk9PTA/KGI9Xy5OeShhKSwoYj1fLk95KGIpKT8oYj1fLnZ6KGIpLApiPShiPV8uTGouZ2V0KGIsdm9pZCAwKXx8bnVsbCk/Xy5iaihiKTp7fSk6Yj1udWxsKTpiPW51bGw7Yj09bnVsbCYmKGI9e30pO2M9Yjt2YXIgZD12b2lkIDA7TjIoKT8oZHx8KGQ9Xy53KCJMT0dJTl9JTkZPIikpLGQ/KGMuc2Vzc2lvbl9sb2dpbmluZm89ZCxjPSEwKTpjPSExKTpjPSExO2MmJl8udXooYSxiKX19O0J0YT1mdW5jdGlvbihhLGI9e30sYz0hMSl7dmFyIGQ9Xy53KCJFVkVOVF9JRCIpO2QmJihiLmVpfHwoYi5laT1kKSk7YiYmXy51eihhLGIpO2lmKGMpcmV0dXJuITE7UDIoYSk7Yj13aW5kb3c7YT1fLldiKGEse30pO1AyKGEpO2E9Xy5LeihhKTtiPWIubG9jYXRpb247YT1fLmRiKGEpO2EhPT12b2lkIDAmJihiLmhyZWY9YSk7cmV0dXJuITB9O1EyPWZ1bmN0aW9uKGEpe2lmKFRfKF8udygiUExBWUVSX1ZBUlMiLHt9KSkhPSIxIil7YSYmd3JhKCk7dHJ5e3p0YSgpLnRoZW4oKCk9Pnt9LCgpPT57fSksXy5taihRMiwxOEU1KX1jYXRjaChiKXtfLlVpKGIpfX19OwpEdGE9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24uaHJlZjtpZihfLngoImtldmxhcl9kaXNhYmxlX3RoZW1lX3BhcmFtIikpcmV0dXJuIG51bGw7Xy5RYihhKTt0cnl7bGV0IGI9YTAoYSkudGhlbWU7cmV0dXJuIEN0YS5nZXQoYil8fG51bGx9Y2F0Y2goYil7fXJldHVybiBudWxsfTsKUzI9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFIyO2lmKGEuaW50ZXJwcmV0ZXJKYXZhc2NyaXB0KXt2YXIgYz1ZXyhhLmludGVycHJldGVySmF2YXNjcmlwdCk7Yz1fLmxiKGMpLnRvU3RyaW5nKCk7dmFyIGQ9bmV3IFkxO0JaKGQsNixjKTtfLkt3KGIsMSxkLF8ud3opfWVsc2UgYS5pbnRlcnByZXRlclVybCYmKGM9Xy5odyhhLmludGVycHJldGVyVXJsKSxjPV8uVWEoYykudG9TdHJpbmcoKSxkPW5ldyBaMSxCWihkLDQsYyksXy5LdyhiLDIsZCxfLnd6KSk7YS5pbnRlcnByZXRlckhhc2gmJl8uV3goYiwzLEFaKGEuaW50ZXJwcmV0ZXJIYXNoKSwiIixfLnd6KTthLnByb2dyYW0mJl8uV3goYiw0LEFaKGEucHJvZ3JhbSksIiIsXy53eik7YS5nbG9iYWxOYW1lJiZfLld4KGIsNSxBWihhLmdsb2JhbE5hbWUpLCIiLF8ud3opO2EuY2xpZW50RXhwZXJpbWVudHNTdGF0ZUJsb2ImJl8uV3goYiw3LEFaKGEuY2xpZW50RXhwZXJpbWVudHNTdGF0ZUJsb2IpLCIiLF8ud3opO3JldHVybiBifTsKVDI9ZnVuY3Rpb24oYSl7dmFyIGI9e307YT1hLnNwbGl0KCImIik7Zm9yKGxldCBjIG9mIGEpYT1jLnNwbGl0KCI9IiksYS5sZW5ndGg9PT0yJiYoYlthWzBdXT1hWzFdKTtyZXR1cm4gYn07VTI9ZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhLnQpfHw3MjAwfTtFdGE9YXN5bmMgZnVuY3Rpb24oKXt2YXIgYT13aW5kb3c7YXdhaXQgZjEoVjIoKSk7dmFyIGI9YS5iZ2V2bWM7aWYoIWIpdGhyb3cgRXJyb3IoInplIik7cmV0dXJue3BhdXNlOigpPT57Yi5wKCl9LHJlc3VtZTooKT0+e2IucigpfSxjaGVja0ZvclJlZnJlc2g6KCk9PmIuY3IoKX19O1YyPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgiYmdfc3RfaHIiKT8iaGF2dW9rbWhocy0wIjpgaGF2dW9rbWhocy0ke01hdGguZmxvb3IoZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZT8udGltZU9yaWdpbnx8MCl9YH07VzI9ZnVuY3Rpb24oYSl7d2luZG93LmJnZW5zPWF9OwpGdGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoYT0+e3ZhciBiPXdpbmRvdztiLm50cGV2YXNycyE9PXZvaWQgMD9hKG5ldyBYMihiLm50cGV2YXNycykpOihiLm50cHFmYmVsPT09dm9pZCAwJiYoYi5udHBxZmJlbD1bXSksYi5udHBxZmJlbC5wdXNoKGM9PnthKG5ldyBYMihjKSl9KSl9KX07Ckd0YT1mdW5jdGlvbigpe2lmKF8uc3ooKSl7dmFyIGE9Xy53KCJQTEFZRVJfVkFSUyIse30pO2lmKFRfKGEpIT0iMSImJkcyKGEpIT09IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGTCIpe3ZhciBiPSgpPT57WTI9ITA7Imdvb2dsZV9hZF9zdGF0dXMiaW4gd2luZG93P18uUWkoIkRDTEtTVEFUIiwxKTpfLlFpKCJEQ0xLU1RBVCIsMil9O3RyeXtsZXQgYz1fLmliKGRvY3VtZW50KTtIMChaMixiLGMpfWNhdGNoKGMpe30kMi5wdXNoKF8uamYucGIoKCk9PntpZighKFkyfHwiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3cpKXt0cnl7RzAoWjIudG9TdHJpbmcoKSxiKX1jYXRjaChjKXt9WTI9ITA7Xy5RaSgiRENMS1NUQVQiLDMpfX0sNUUzKSl9fX07YTM9ZnVuY3Rpb24oKXt2YXIgYT1OdW1iZXIoXy53KCJEQ0xLU1RBVCIsMCkpO3JldHVybiBpc05hTihhKT8wOmF9O2IzPWZ1bmN0aW9uKGEsYil7YS5qPWJ9OwpJdGE9YXN5bmMgZnVuY3Rpb24oYSl7aWYoXy51Lnl0QXRQJiYhXy54KCJ5dGF0cF9rcyIpKXt2YXIgYj1hd2FpdCBfLnUueXRBdFA7ZGVsZXRlIF8udS55dEF0UDt2YXIgYz1iPy5SO3ZhciBkPWI/LlQ7Yj1IdGEoYyk7bGV0IGY9ISFkO2Euby5vKGM/Yj9mPzc6MTA6Zj8xOjg6Zj8yOjksYS52KyspO2lmKCFjfHxiKWM9YXdhaXQgYS5SZihjMyhkLG51bGwpKSxjPUpTT04uc3RyaW5naWZ5KGMpO18udS55dEF0UkM/Xy51Lnl0QXRSQyhjKTpfLklwKEVycm9yKCJBZSIpKX1lbHNlIF8udS55dEF0UkM/Xy5yeChhc3luYygpPT57ZD1fLnUueXRBdFQ7ZGVsZXRlIF8udS55dEF0VDtpZihfLnUueXRBdFJDKXthLm8ubygyLGEudisrKTt2YXIgZj1hd2FpdCBhLlJmKGMzKGQsbnVsbCkpO18udS55dEF0UkMmJl8udS55dEF0UkMoSlNPTi5zdHJpbmdpZnkoZikpfWVsc2UgYS5vLm8oNixhLnYrKyl9LF8uc2ooImF0dF9pbml0X2RlbGF5IiwwKSk6KGQ9Xy51Lnl0QXRULGRlbGV0ZSBfLnUueXRBdFQsCmEuby5vKDEsYS52KyspKTtjPWF3YWl0IEZ0YSgpO2MuYmluZElubmVydHViZUNoYWxsZW5nZUZldGNoZXIoZj0+e2Euby5vKDMsYS52KyspO3JldHVybiBhLlJmKGMzKGQsZikpfSk7Yy5yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhmPT57Zj1mLmNoYWxsZW5nZTtpZighZil0aHJvdyBFcnJvcigiQmUiKTtmPXtjaGFsbGVuZ2U6ZixCZjpUMihmKSx2bTplLGJnQ2hhbGxlbmdlOm5ldyBSMn07Zj1Qcm9taXNlLnJlc29sdmUoZik7YS5qPWZ9KTt2YXIgZT1hd2FpdCBmMShWMigpKTtjPWMuZ2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKS5jaGFsbGVuZ2U7aWYoIWMpdGhyb3cgRXJyb3IoIkNlIik7cmV0dXJue2NoYWxsZW5nZTpjLEJmOlQyKGMpLHZtOmUsYmdDaGFsbGVuZ2U6bmV3IFIyfX07CmUzPWFzeW5jIGZ1bmN0aW9uKGEpe3ZhciBiPWMzKHZvaWQgMCxXMSgpLmopO3RyeXt2YXIgYz1hd2FpdCBKdGEoYSxiKX1jYXRjaChmKXtyZXR1cm4gXy5JcChFcnJvcigiRGUiKSksZDMoYSw4NjRFNSkse2NoYWxsZW5nZToiIixCZjp7fSx2bTp2b2lkIDAsYmdDaGFsbGVuZ2U6dm9pZCAwfX1iPWMueXo7dmFyIGQ9Yy56ejtkMyhhLFUyKGQpKjFFMyk7YT12b2lkIDA7aWYoImMxYSJpbiBkJiZjLmJnQ2hhbGxlbmdlKXt2YXIgZT1TMihjLmJnQ2hhbGxlbmdlKTt0cnl7YXdhaXQgJDEoVzEoKSxlKX1jYXRjaChmKXtyZXR1cm4gXy5JcChmKSx7Y2hhbGxlbmdlOmIsQmY6ZCx2bTphLGJnQ2hhbGxlbmdlOmV9fXRyeXthPW5ldyBkMih7Y2hhbGxlbmdlOmUsbmc6e21iOiJhR0lmIn19KSxhd2FpdCBhLkNnfWNhdGNoKGYpe18uSXAoZiksYT12b2lkIDB9fXJldHVybntjaGFsbGVuZ2U6YixCZjpkLHZtOmEsYmdDaGFsbGVuZ2U6ZX19OwpKdGE9YXN5bmMgZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dm9pZCAwLGQ9MDtkPDU7KXtpZihkPjApe2xldCBlPTFFMypNYXRoLnBvdygyLGQtMSkrTWF0aC5yYW5kb20oKSoxRTM7YXdhaXQgbmV3IFByb21pc2UoZj0+e18uWWooKCk9PntmKHZvaWQgMCl9LGUpfSl9dHJ5e2Euby5vKDQsYS52KyspO2xldCBlPWF3YWl0IGEuUmYoYik7cmV0dXJuIEt0YShlKX1jYXRjaChlKXtjPWUsZSBpbnN0YW5jZW9mIEVycm9yJiZfLklwKGUpfWQrK310aHJvdyBjO307ZDM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1EYXRlLm5vdygpK2IsZD1hc3luYygpPT57dmFyIGU9Yy1EYXRlLm5vdygpO2U8MUUzP2F3YWl0IEx0YShhKTpfLllqKGQsTWF0aC5taW4oZSw2RTQpKX07ZCgpfTtmMz1hc3luYyBmdW5jdGlvbihhLGIpe1cyKDIpO3RyeXtsZXQgYz1hd2FpdCBhLm5ldHdvcmsuUmYoYik7Yz9jLmNoYWxsZW5nZSYmIWMuYmdDaGFsbGVuZ2U/VzIoMSk6VzIoNCk6VzIoMyk7cmV0dXJuIGN9Y2F0Y2goYyl7VzIoMyl9fTsKS3RhPWZ1bmN0aW9uKGEpe2lmKCFhKXRocm93IEVycm9yKCJFZSIpO2lmKCFhLmNoYWxsZW5nZSl0aHJvdyBFcnJvcigiRmUiKTt2YXIgYj1hLmNoYWxsZW5nZSxjPVQyKGIpO2lmKCJjMWEiaW4gYyYmKCFhLmJnQ2hhbGxlbmdlfHwhYS5iZ0NoYWxsZW5nZS5wcm9ncmFtKSl0aHJvdyBFcnJvcigiR2UiKTtyZXR1cm57Li4uYSx5ejpiLHp6OmN9fTtMdGE9YXN5bmMgZnVuY3Rpb24oYSl7dmFyIGI9YXdhaXQgUHJvbWlzZS5yYWNlKFthLmosbnVsbF0pLGM9ZTMoYSk7YS5qPWM7Yj8udm0/LmRpc3Bvc2UoKX07TXRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQcm9taXNlKGM9PntfLllqKCgpPT57YyhiKCkpfSxhKX0pfTtjMz1mdW5jdGlvbihhLGIpe3ZhciBjPXtlbmdhZ2VtZW50VHlwZToiRU5HQUdFTUVOVF9UWVBFX1VOQk9VTkQifTthJiYoYy5lYWNyVG9rZW49YSk7YiYmKGMuaW50ZXJwcmV0ZXJIYXNoPWIpO3JldHVybiBjfTsKSHRhPWZ1bmN0aW9uKGEpe2lmKCFhfHwhXy54KCJyb3NjYXMiKSlyZXR1cm4hMTt0cnl7dmFyIGI9SlNPTi5wYXJzZShhKX1jYXRjaChjKXtyZXR1cm4hMX1hPWIuY2hhbGxlbmdlO2lmKCFhKXJldHVybiExO2I9VDIoYSk7YT1OdW1iZXIoYi5jKXx8dm9pZCAwO2I9VTIoYik7cmV0dXJuISFhJiZEYXRlLm5vdygpPihhK2IpKjFFM307aDM9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xKXJldHVybiBhWzBdO3ZhciBiPWczLlVOS05PV05fSU5URVJGQUNFO2lmKGIpe2I9bmV3IFJlZ0V4cChiKTtmb3IodmFyIGMgb2YgYSlpZihiLmV4ZWMoYykpcmV0dXJuIGN9dmFyIGQ9W107T2JqZWN0LmVudHJpZXMoZzMpLmZvckVhY2goKFtlLGZdKT0+eyJVTktOT1dOX0lOVEVSRkFDRSIhPT1lJiZkLnB1c2goZil9KTtjPW5ldyBSZWdFeHAoZC5qb2luKCJ8IikpO2Euc29ydCgoZSxmKT0+ZS5sZW5ndGgtZi5sZW5ndGgpO2ZvcihsZXQgZSBvZiBhKWlmKCFjLmV4ZWMoZSkpcmV0dXJuIGU7cmV0dXJuIGFbMF19OwpOdGE9ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybntFbDpuZXcgaTMoKGMsZCk9PnthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07azM9ZnVuY3Rpb24oYSl7cmV0dXJuIGozKGEpP2E6KDAsXy5ibykoYSk/bmV3IGkzKChiLGMpPT57YS50aGVuKGIsYyl9KTpuZXcgaTMoYj0+e2IoYSl9KX07T3RhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgaTMoKGIsYyk9PntjKGEpfSl9O1B0YT1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGszKGEoKSl9Y2F0Y2goYil7cmV0dXJuIE90YShiKX19O1F0YT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uQmYoKGIsYyk9PntsMyhhLGIsYyl9KX07bTM9ZnVuY3Rpb24oYSl7cmV0dXJuIFF0YShhKX07bjM9ZnVuY3Rpb24oYSl7aWYoYS5qPT09ImZ1bGZpbGxlZCIpe3ZhciBiPWEubzthLm89W107YS52PVtdO2Zvcih2YXIgYyBvZiBiKWMoYS5yZXN1bHQpfWVsc2UgaWYoYS5qPT09InJlamVjdGVkIil7Yz1hLnY7YS5vPVtdO2Eudj1bXTtmb3IoYiBvZiBjKWIoYS5lcnJvcil9fTsKbDM9ZnVuY3Rpb24oYSxiLGMpe3ZhciB7RWw6ZCxyZXNvbHZlOmUscmVqZWN0OmZ9PU50YSgpO2Euby5wdXNoKGg9PntpZihiKXRyeXtsZXQgaz1iKGgpO2Uoayl9Y2F0Y2goayl7ZihrKX1lbHNlIGUoaCl9KTthLnYucHVzaChoPT57aWYoYyl0cnl7bGV0IGs9YyhoKTtlKGspfWNhdGNoKGspe2Yoayl9ZWxzZSBmKGgpfSk7bjMoYSk7cmV0dXJuIGR9O1J0YT1mdW5jdGlvbihhLGIpe3JldHVybiBsMyhhLHZvaWQgMCxiKX07bzM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gU3RhKGIuY2FsbChhKSl9O3AzPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbiooKXtyZXR1cm4geWllbGR7RWw6azMoYSl9fSgpfTtTdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIFB0YSgoKT0+cTMoYSxhLm5leHQoKSkpfTtxMz1mdW5jdGlvbihhLGIpe3JldHVybiBiLmRvbmU/azMoYi52YWx1ZSk6UnRhKGwzKGIudmFsdWUuRWwsYz0+cTMoYSxhLm5leHQoYykpKSxjPT5xMyhhLGEudGhyb3coYykpKX07ClR0YT1hc3luYyBmdW5jdGlvbigpe3ZhciBhPV8ueSgpLnJlc29sdmUoXy5JeSk7aWYoYSl7aWYoYT1hd2FpdCBhLlFpKHtzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiR0VUX0RBVEFTWU5DX0lEUyJ9fSkpe2lmKGEuZXJyb3JNZXRhZGF0YSl7Xy5JcChFcnJvcigiSGVgIithLmVycm9yTWV0YWRhdGEuc3RhdHVzKyJgIithLmVycm9yKSk7cmV0dXJufXJldHVybiBhLnRJfV8uSXAoRXJyb3IoIkllIikpfWVsc2UgXy5JcChFcnJvcigiSmUiKSl9OwpyMz1mdW5jdGlvbihhLGIpe2lmKGIuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50cyYmKGEualtiLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdPWIsdHlwZW9mIGIuZXhwaXJhdGlvblNlY29uZHM9PT0ic3RyaW5nIikpe2xldCBjPU51bWJlcihiLmV4cGlyYXRpb25TZWNvbmRzKTtzZXRUaW1lb3V0KCgpPT57ZGVsZXRlIGEualtiLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdfSxjKjFFMyk7YS5vJiZfLk1qKCJDT05TSVNURU5DWSIsYi5lbmNyeXB0ZWRUb2tlbkphckNvbnRlbnRzLGMsdm9pZCAwLCEwKX19O3MzPWZ1bmN0aW9uKGEpe3JldHVybiBhLmxvY2FsU3RvcmFnZT09PXZvaWQgMD9uZXcgXy5lbigieXQtY2xpZW50LWxvY2F0aW9uIik6YS5sb2NhbFN0b3JhZ2V9Owp3Mz1mdW5jdGlvbihhLGI9ITEsYz0hMSl7dmFyIGQ9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO2lmKCFkKXJldHVybiBfLkdwKEVycm9yKCJNZSIpKSx7fTtkPV8ucWQoZCk7Xy54KCJ3ZWJfbm9fdHJhY2tpbmdfcGFyYW1zX2luX3NoZWxsX2tpbGxzd2l0Y2giKXx8ZGVsZXRlIGQuY2xpY2tUcmFja2luZztkLmNsaWVudHx8KGQuY2xpZW50PXt9KTt2YXIgZT1kLmNsaWVudDtlLmNsaWVudE5hbWU9PT0iTVdFQiImJmUuY2xpZW50Rm9ybUZhY3RvciE9PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIiYmKGUuY2xpZW50Rm9ybUZhY3Rvcj1fLncoIklTX1RBQkxFVCIpPyJMQVJHRV9GT1JNX0ZBQ1RPUiI6IlNNQUxMX0ZPUk1fRkFDVE9SIik7ZS5zY3JlZW5XaWR0aFBvaW50cz13aW5kb3cuaW5uZXJXaWR0aDtlLnNjcmVlbkhlaWdodFBvaW50cz13aW5kb3cuaW5uZXJIZWlnaHQ7ZS5zY3JlZW5QaXhlbERlbnNpdHk9TWF0aC5yb3VuZCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSk7ZS5zY3JlZW5EZW5zaXR5RmxvYXQ9CndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO2UudXRjT2Zmc2V0TWludXRlcz0tTWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkpO18uSHooKTt2YXIgZj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiO18uQ3ooMTY1KT9mPSJVU0VSX0lOVEVSRkFDRV9USEVNRV9EQVJLIjpfLkN6KDE3NCk/Zj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiOiFfLngoImtldmxhcl9sZWdhY3lfYnJvd3NlcnMiKSYmd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWUpIikubWF0Y2hlcyYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzJiYoZj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyIpO2Y9RHRhKCl8fGY7ZS51c2VySW50ZXJmYWNlVGhlbWU9ZjtfLngoIndlYl9wcm9wYWdhdGVfdmlzaWJpbGl0eV90b19hcHBsaWNhdGlvbl9zdGF0ZSIpJiZfLnUuZG9jdW1lbnQmJgooZS5hcHBsaWNhdGlvblN0YXRlPV8udS5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIj8iQkFDS0dST1VORCI6IkFDVElWRSIpO2lmKCFiKXtpZihmPV8uU2ooKSllLmNvbm5lY3Rpb25UeXBlPWY7Xy54KCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKGY9Xy5VaigpKSYmKGQuY2xpZW50LmVmZmVjdGl2ZUNvbm5lY3Rpb25UeXBlPWYpfV8ueCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJl8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGQuY2xpZW50Lm1lbW9yeVRvdGFsS2J5dGVzPWAke18udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSoxRTZ9YCk7aWYoXy54KCJ3ZWJfZ2NmX2hhc2hlc19pbm5lcnR1YmUiKSl7dmFyIGg9Xy5qbSgpO2lmKGgpe2Y9aC5jb2xkQ29uZmlnRGF0YTtsZXQgbj1oLmNvbGRIYXNoRGF0YTtoPWguaG90SGFzaERhdGE7ZC5jbGllbnQuY29uZmlnSW5mbz1kLmNsaWVudC5jb25maWdJbmZvfHx7fTtmJiYKKGQuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9Zik7biYmKGQuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPW4pO2gmJihkLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPWgpfX1mPWEwKF8udS5sb2NhdGlvbi5ocmVmKTshXy54KCJ3ZWJfcG9wdWxhdGVfaW50ZXJuYWxfZ2VvX2tpbGxzd2l0Y2giKSYmZi5pbnRlcm5hbGNvdW50cnljb2RlJiYoZS5pbnRlcm5hbEdlbz1mLmludGVybmFsY291bnRyeWNvZGUpO2UuY2xpZW50TmFtZT09PSJNV0VCInx8ZS5jbGllbnROYW1lPT09IldFQiI/KGUubWFpbkFwcFdlYkluZm98fChlLm1haW5BcHBXZWJJbmZvPXt9KSxlLm1haW5BcHBXZWJJbmZvLmdyYWZ0VXJsPV8udS5sb2NhdGlvbi5ocmVmLF8ueCgia2V2bGFyX3dvZmZsZSIpJiZ0My5pbnN0YW5jZSYmKGY9dDMuaW5zdGFuY2UsZS5tYWluQXBwV2ViSW5mby5wd2FJbnN0YWxsYWJpbGl0eVN0YXR1cz0hZi5qJiZmLm8/IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfQ0FOX0JFX0lOU1RBTExFRCI6CiJQV0FfSU5TVEFMTEFCSUxJVFlfU1RBVFVTX1VOS05PV04iKSxlLm1haW5BcHBXZWJJbmZvLndlYkRpc3BsYXlNb2RlPV8uT2ooKSxlLm1haW5BcHBXZWJJbmZvLmlzV2ViTmF0aXZlU2hhcmVBdmFpbGFibGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2hhcmUhPT12b2lkIDApOmUuY2xpZW50TmFtZT09PSJUVkhUTUw1IiYmKCFfLngoIndlYl9scl9hcHBfcXVhbGl0eV9raWxsc3dpdGNoIikmJihmPV8udygiTElWSU5HX1JPT01fQVBQX1FVQUxJVFkiKSkmJihlLnR2QXBwSW5mbz1PYmplY3QuYXNzaWduKGUudHZBcHBJbmZvfHx7fSx7YXBwUXVhbGl0eTpmfSkpLGY9Xy53KCJMSVZJTkdfUk9PTV9DRVJUSUZJQ0FUSU9OX1NDT1BFIikpJiYoZS50dkFwcEluZm89T2JqZWN0LmFzc2lnbihlLnR2QXBwSW5mb3x8e30se2NlcnRpZmljYXRpb25TY29wZTpmfSkpO2lmKCFfLngoIndlYl9wb3B1bGF0ZV90aW1lX3pvbmVfaXRjX2tpbGxzd2l0Y2giKSl7YTp7aWYodHlwZW9mIEludGwhPT0idW5kZWZpbmVkIil0cnl7dmFyIGs9CihuZXcgSW50bC5EYXRlVGltZUZvcm1hdCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7YnJlYWsgYX1jYXRjaHt9az12b2lkIDB9ayYmKGUudGltZVpvbmU9ayl9KGs9Xy53KCJFWFBFUklNRU5UU19UT0tFTiIsIiIpKT9lLmV4cGVyaW1lbnRzVG9rZW49azpkZWxldGUgZS5leHBlcmltZW50c1Rva2VuO2U9Xy51aigpO3UzLmluc3RhbmNlfHwodTMuaW5zdGFuY2U9bmV3IHUzKTtrPV8uWngodTMuaW5zdGFuY2Uuaik7ZC5yZXF1ZXN0PXsuLi5kLnJlcXVlc3QsaW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6ZSxjb25zaXN0ZW5jeVRva2VuSmFyczprfTshXy54KCJ3ZWJfcHJlcXVlc3RfY29udGV4dF9raWxsc3dpdGNoIikmJihlPV8udygiSU5ORVJUVUJFX0NPTlRFWFRfUFJFUVVFU1RfQ09OVEVYVCIpKSYmKGQucmVxdWVzdC5leHRlcm5hbFByZXF1ZXN0Q29udGV4dD1lKTtrPV8uSHooKTtlPV8uQ3ooNTgpO2s9ay5nZXQoImdzbWwiLCIiKTtkLnVzZXI9ey4uLmQudXNlcn07ZSYmKGQudXNlci5lbmFibGVTYWZldHlNb2RlPQplKTtrJiYoZC51c2VyLmxvY2tlZFNhZmV0eU1vZGU9ITApO18ueCgid2FybV9vcF9jc25fY2xlYW51cCIpP2MmJihiPV8uaXEoKSkmJihkLmNsaWVudFNjcmVlbk5vbmNlPWIpOiFiJiYoYj1fLmlxKCkpJiYoZC5jbGllbnRTY3JlZW5Ob25jZT1iKTthJiYoZC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmF9KTtpZihhPV8uc2EoInl0Lm1keC5yZW1vdGUucmVtb3RlQ2xpZW50XyIpKWQucmVtb3RlQ2xpZW50PWE7djMuamMoKS5zZXRMb2NhdGlvbk9uSW5uZXJUdWJlQ29udGV4dChkKTt0cnl7dmFyIGw9Xy5saigpLG09bC5iaWQ7ZGVsZXRlIGwuYmlkO2QuYWRTaWduYWxzSW5mbz17cGFyYW1zOltdLGJpZDptfTtmb3IobGV0IFtuLHBdb2YgT2JqZWN0LmVudHJpZXMobCkpbD1uLG09cCxkLmFkU2lnbmFsc0luZm8ucGFyYW1zPy5wdXNoKHtrZXk6bCx2YWx1ZTpgJHttfWB9KTtpZihkLmNsaWVudD8uY2xpZW50TmFtZT09PSJUVkhUTUw1Inx8ZC5jbGllbnQ/LmNsaWVudE5hbWU9PT0KIlRWSFRNTDVfVU5QTFVHR0VEIil7bGV0IG49Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO24uYWRTaWduYWxzSW5mbyYmKGQuYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkPW4uYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkLGQuYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkU2lnbmFsVHlwZT0iREVWSUNFX0lEX1RZUEVfQ09OTkVDVEVEX1RWX0lGQSIsZC5hZFNpZ25hbHNJbmZvLmxpbWl0QWRUcmFja2luZz1uLmFkU2lnbmFsc0luZm8ubGltaXRBZFRyYWNraW5nLG4uYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXMhPT12b2lkIDAmJihkLmFkU2lnbmFsc0luZm8uYXRUcmFja2luZ01hbmFnZXJBdXRob3JpemF0aW9uU3RhdHVzPW4uYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXMpKX19Y2F0Y2gobil7Xy5HcChuKX1yZXR1cm4gZH07ClV0YT1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiExO3ZhciBjPV8uQihhLF8uenopPy5zaWduYWw7aWYoYyYmYi5IZClyZXR1cm4hIWIuSGRbY107aWYoKGM9Xy5CKGEsXy5BeSk/LnJlcXVlc3QpJiZiLlZnKXJldHVybiEhYi5WZ1tjXTtmb3IobGV0IGQgaW4gYSlpZihiLkZpW2RdKXJldHVybiEwO3JldHVybiExfTsKeDM9ZnVuY3Rpb24oYSl7dmFyIGI9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn07Xy53KCJFT01fVklTSVRPUl9EQVRBIik/YlsiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIl09Xy53KCJFT01fVklTSVRPUl9EQVRBIik6Xy53KCJWSVNJVE9SX0RBVEEiKSYmKGJbIlgtR29vZy1WaXNpdG9yLUlkIl09Xy53KCJWSVNJVE9SX0RBVEEiKSk7YlsiWC1Zb3V0dWJlLUJvb3RzdHJhcC1Mb2dnZWQtSW4iXT1fLncoIkxPR0dFRF9JTiIsITEpO18udygiREVCVUdfU0VUVElOR1NfTUVUQURBVEEiKSYmKGJbIlgtRGVidWctU2V0dGluZ3MtTWV0YWRhdGEiXT1fLncoIkRFQlVHX1NFVFRJTkdTX01FVEFEQVRBIikpO2EhPT0iY29ycyImJigoYT1fLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIikpJiYoYlsiWC1Zb3V0dWJlLUNsaWVudC1OYW1lIl09YSksKGE9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpKSYmKGJbIlgtWW91dHViZS1DbGllbnQtVmVyc2lvbiJdPQphKSwoYT1fLncoIkNIUk9NRV9DT05ORUNURURfSEVBREVSIikpJiYoYlsiWC1Zb3V0dWJlLUNocm9tZS1Db25uZWN0ZWQiXT1hKSwoYT1fLncoIkRPTUFJTl9BRE1JTl9TVEFURSIpKSYmKGJbIlgtWW91dHViZS1Eb21haW4tQWRtaW4tU3RhdGUiXT1hKSwoYT12My5qYygpLmdldFhHZW9IZWFkZXI/LigpKSYmKGJbIlgtR2VvIl09YSkpOyhhPV8udygiU0VSSUFMSVpFRF9MQVZBX0RFVklDRV9DT05URVhUIikpJiYoYlsiWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiXT1hKTtyZXR1cm4gYn07eTM9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pm5ldyBhfTsKVnRhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHozLmluc3RhbmNlIT09dm9pZCAwKXtpZihkPXozLmluc3RhbmNlLGE9W2EhPT1kLnYsYiE9PWQuU2EsYyE9PWQubywhMSwhMSwhMSwhMV0sYS5zb21lKGU9PmUpKXRocm93IG5ldyBfLlhqKCJJbm5lclR1YmVUcmFuc3BvcnRTZXJ2aWNlIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQiLGEpO31lbHNlIHozLmluc3RhbmNlPW5ldyB6MyhhLGIsYyxkKX07Cll0YT1mdW5jdGlvbihhLGIpe3ZhciBjPWAveW91dHViZWkvdjEvJHtoMyhXdGEpfWAsZD17UmQ6e2lkZW50aXR5OkEzfX07aWYoXy54KCJtYXdfbmV0d29ya19tYWNoaW5lX3Jhd19yZXF1ZXN0Iil8fF8ueCgiYWxsX3dlYl9uZXR3b3JrX21hY2hpbmVfcmF3X3JlcXVlc3QiKSl7bGV0IGY9Xy55KCkucmVzb2x2ZShfLkluKEIzKSk/LigpO2lmKGYpcmV0dXJuIG0zKFh0YShmLHtpbm5lclR1YmVSZXF1ZXN0OmIsYXBpUGF0aDpjLGNsaWNrVHJhY2tpbmdQYXJhbXM6dm9pZCAwLGNvbmZpZzpkLGluY2x1ZGVDdXJyZW50U2NyZWVuTm9uY2U6ITB9KSkudGhlbihoPT5oLCgpPT57fSl9dmFyIGU9KCk9Pnt9O2U9dzAodjAoYykpO2IuY29udGV4dHx8KGIuY29udGV4dD13Myh2b2lkIDAsITApKTtyZXR1cm4gbmV3IF8uQmYoYXN5bmMgZj0+e3ZhciBoPVkwKGMpO2g9Xy5maihoKT8ic2FtZS1vcmlnaW4iOiJjb3JzIjtoPWEuby56bj9DMyhkLGgpOmF3YWl0IEQzKGQsaCk7dmFyIGs9WDAoWTAoYykpOwprPXtpbnB1dDprLHdiOlowKGspLGlubmVyVHViZVJlcXVlc3Q6Yixjb25maWc6ZH07ZihFMyhhLGssaCxlKSl9KX07WnRhPWZ1bmN0aW9uKGEsYil7YTp7YT1hLnY7dmFyIGM9Xy5CKGIsXy56eik/LnNpZ25hbDtpZihjJiZhLkhkJiYoYz1hLkhkW2NdKSl7dmFyIGQ9YygpO2JyZWFrIGF9aWYoKGM9Xy5CKGIsXy5BeSk/LnJlcXVlc3QpJiZhLlZnJiYoYz1hLlZnW2NdKSl7ZD1jKCk7YnJlYWsgYX1mb3IoZCBpbiBiKWlmKGEuRmlbZF0mJihiPWEuRmlbZF0pKXtkPWIoKTticmVhayBhfWQ9dm9pZCAwfWlmKGQhPT12b2lkIDApcmV0dXJuIFByb21pc2UucmVzb2x2ZShkKX07QzM9ZnVuY3Rpb24oYSxiKXthPV8uUGooe3Nlc3Npb25JbmRleDphPy5SZD8uc2Vzc2lvbkluZGV4fSk7cmV0dXJuey4uLngzKGIpLC4uLmF9fTsKRDM9YXN5bmMgZnVuY3Rpb24oYSxiKXthPWF3YWl0IF8uS3koXy5Qaih7c2Vzc2lvbkluZGV4OmE/LlJkPy5zZXNzaW9uSW5kZXh9KSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7Li4ueDMoYiksLi4uYX0pfTsKRTM9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZD0oKT0+e30pe2F3YWl0ICR0YShiKTt2YXIgZT1iLmNvbmZpZz8ucmVxdWVzdEtleTtpZihlJiZhLmouaGFzKGUpKXZhciBmPWEuai5nZXQoZSk7ZWxzZSBmPUpTT04uc3RyaW5naWZ5KGIuaW5uZXJUdWJlUmVxdWVzdCksYi53Yj17Li4uYi53YixoZWFkZXJzOnsuLi4oYi53Yj8uaGVhZGVycz8/e30pLC4uLmN9fSxjPXsuLi5iLndifSxiLndiLm1ldGhvZD09PSJQT1NUIiYmKGM9ey4uLmMsYm9keTpmfSksYi5jb25maWc/LmtuJiZfLkFxKGIuY29uZmlnLmtuKSxmPWEuU2EuZmV0Y2goYi5pbnB1dCxjLGIuY29uZmlnKSxlJiZhLmouc2V0KGUsZik7aWYoKGY9YXdhaXQgZikmJiJlcnJvciJpbiBmJiZmPy5lcnJvcj8uZGV0YWlscyl7Yz1mLmVycm9yLmRldGFpbHM7Zm9yKGxldCBoIG9mIGMpKGM9aFsiQHR5cGUiXSkmJmF1YS5pbmRleE9mKGMpPi0xJiYoZGVsZXRlIGhbIkB0eXBlIl0sZj1oKX1lJiZhLmouaGFzKGUpJiZhLmouZGVsZXRlKGUpOwpiLmNvbmZpZz8ucG4mJl8uQXEoYi5jb25maWcucG4pO2J1YShhLGYsYik7Yi5jb25maWc/Lkl6JiZfLkFxKGIuY29uZmlnLkl6KTtkKCk7cmV0dXJuIGZ8fHZvaWQgMH07JHRhPWFzeW5jIGZ1bmN0aW9uKGEpe2lmKGE/LmlubmVyVHViZVJlcXVlc3Q/LmNvbnRleHQpe2E9YS5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ7Zm9yKGxldCBiIG9mW10pYXdhaXQgYi5CcihhKX19O2J1YT1mdW5jdGlvbihhLGIsYyl7aWYoYiYmIWI/LnNlcXVlbmNlTWV0YURhdGE/LnNraXBQcm9jZXNzaW5nJiZhLkIpZm9yKGxldCBkIG9mIEYzKWEuQltkXSYmYS5CW2RdLmhhbmRsZVJlc3BvbnNlKGIsYyl9O2N1YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIG8zKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGQ9Xy5LeShfLlBqKHtzZXNzaW9uSW5kZXg6Yj8uUmQ/LnNlc3Npb25JbmRleH0pKTtkPXlpZWxkKnAzKGszKGQpKTtyZXR1cm57Li4ueDMoYyksLi4uZH19KCl9KX07CkczPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09MXx8YT09PTJ9O2R1YT1mdW5jdGlvbihhLGIsYz0hMSl7dmFyIGQsZT1fLkIoYixfLkF5KT8ucmVxdWVzdDtlJiZhLmouVmcmJihkPWEuai5WZ1tlXSk7ZHx8Y3x8KGU9Xy5CKGIsXy56eik/LnNpZ25hbCkmJmEuai5IZCYmKGQ9YS5qLkhkW2VdKTtpZighZCYmKGE9Yz9hLmouYUw6YS5qLkZpKSlmb3IobGV0IGYgaW4gYilpZihhW2ZdKXtkPWFbZl07YnJlYWt9aWYoIWQpe2lmKGMpdGhyb3cgRXJyb3IoIlFlIik7dGhyb3cgRXJyb3IoIlJlIik7fWI9ZCgpO3JldHVybiBrMyhiKX07ZXVhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucnVuKCJDT01NQU5EX0lOSVQiLGIpfTtYdGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ydW4oIlJFUVVFU1RfSU5JVCIsYil9O0gzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucnVuKCJQUk9DRVNTX1JFU1BPTlNFIixiLCJSZXNwb25zZU1hY2hpbmUgKENhY2hlKSIpfTsKSTM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLnJ1bigiSU5JVCIsYixjIT09dm9pZCAwP2BSZXNwb25zZU1hY2hpbmUgKENodW5rICR7Y30pYDoiUmVzcG9uc2VNYWNoaW5lIil9OwpmdWE9ZnVuY3Rpb24oKXt2YXIgYT1fLnkoKTtfLkp6KGEse2phOkozLFdjOigpPT5uZXcgTWFwfSk7Xy5KeihhLHtqYTpLMyxQYTpLMyxnYjohMH0pO18uSnooYSx7amE6TDMsUGE6TDMsZ2I6ITB9KTtfLkp6KGEse2phOk0zLFBhOk0zLGdiOiEwfSk7Xy5KeihhLHtqYTpOMyxQYTpOMyxnYjohMH0pO18uSnooYSx7amE6TzMsUGE6TzMsZ2I6ITB9KTtfLkp6KGEse2phOlAzLFBhOlAzLGdiOiEwfSk7Xy5KeihhLHtqYTpRMyxQYTpRMyxnYjohMH0pO18uSnooYSx7amE6UjMsUGE6UjMsZ2I6ITB9KTtfLkp6KGEse2phOlMzLFBhOlMzLGdiOiEwfSk7Xy5KeihhLHtqYTpUMyxQYTpUMyxnYjohMH0pO18uSnooYSx7amE6VTMsV2M6KGIsYyxkLGUsZixoLGssbCxtLG4pPT4oe0NPTU1BTkRfSU5JVDpsLFJFUVVFU1RfSU5JVDptLENBQ0hFOmMsTE9DQUxfUk9VVEVSOmssQ09OVEVYVDpkLEFVVEg6YixERURVUEU6ZSxGRVRDSDpoLFJFVFJZOm4sRkFMTEJBQ0s6Zn0pLFtfLkxuXTpbSzMsTDMsCk0zLE4zLE8zLFAzLFEzLFIzLFMzLFQzXSxnYjohMH0pO18uSnooYSx7amE6QjMsV2M6Yj0+KCk9Pm5ldyBWMyhiKSxbXy5Mbl06W1UzXSxnYjohMH0pO18uSnooYSx7amE6VzMsUGE6VzMsZ2I6ITB9KTtfLkp6KGEse2phOlgzLFBhOlgzLGdiOiEwfSk7Xy5KeihhLHtqYTpZMyxQYTpZMyxnYjohMH0pO18uSnooYSx7amE6WjMsUGE6WjMsZ2I6ITB9KTtfLkp6KGEse2phOiQzLFdjOihiLGMsZCxlKT0+KHtJTklUOmUsRVJST1JfVU5QQUNLRVI6YyxQUk9DRVNTX1JFU1BPTlNFOmQsQ0FMTEJBQ0tfRElTUEFUQ0hFUjpifSksW18uTG5dOltXMyxYMyxZMyxaM10sZ2I6ITB9KTtfLkp6KGEse2phOmE0LFdjOmI9PigpPT5uZXcgYjQoYiksW18uTG5dOlskM10sZ2I6ITB9KX07Cmd1YT1mdW5jdGlvbigpe18ucmEoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIsXy5HcCk7S3JhKCk7Xy56byhfLkJvKCkse30pO3dpbmRvdy5vbmVycm9yPUpyYTtfLlVmPW8wO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLGE9PntpZihhLnJlYXNvbiBpbnN0YW5jZW9mIEVycm9yKXtsZXQgYj1hLnJlYXNvbjtfLmN3KGIse3NvdXJjZToidW5oYW5kbGVkcmVqZWN0aW9uIn0pO2IubmFtZT09PSJBYm9ydEVycm9yIiYmKGIubGV2ZWw9IldBUk5JTkciKX1vMChhLnJlYXNvbik7YS5wcmV2ZW50RGVmYXVsdCgpfSl9O2M0PWZ1bmN0aW9uKCl7dHJ5e3JldHVybiEhc2VsZi5zZXNzaW9uU3RvcmFnZX1jYXRjaHtyZXR1cm4hMX19O2Q0PWZ1bmN0aW9uKGEpe2E9YS5tYXRjaCgvKC4qKTo6Lio6Oi4qLyk7aWYoYSE9PW51bGwpcmV0dXJuIGFbMV19OwplND1mdW5jdGlvbihhKXtpZihjNCgpKXt2YXIgYj1PYmplY3Qua2V5cyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpO2ZvcihsZXQgYyBvZiBiKWI9ZDQoYyksYj09PXZvaWQgMHx8YS5pbmNsdWRlcyhiKXx8c2VsZi5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGMpfX07aHVhPWZ1bmN0aW9uKCl7aWYoIWM0KCkpcmV0dXJuITE7dmFyIGE9Xy5WaigpLGI9T2JqZWN0LmtleXMod2luZG93LnNlc3Npb25TdG9yYWdlKTtmb3IobGV0IGMgb2YgYilpZihiPWQ0KGMpLGIhPT12b2lkIDAmJmIhPT1hKXJldHVybiEwO3JldHVybiExfTtmND1mdW5jdGlvbigpe1R0YSgpLnRoZW4oYT0+e2EmJihnMChhKSxjMShhKSxhMShhKSxlNChhKSl9KX07Cml1YT1mdW5jdGlvbigpe3ZhciBhPW5ldyBfLk9zO18uamYucGIoYXN5bmMoKT0+e2lmKCFfLngoInl0aWRiX2NsZWFyX29wdGltaXphdGlvbnNfa2lsbHN3aXRjaCIpKXt2YXIgYj1fLlZqKCJjbGVhciIpO2lmKGIuc3RhcnRzV2l0aCgiViIpJiZiLmVuZHNXaXRoKCJ8fCIpKXtiPVtiXTtnMChiKTtjMShiKTthMShiKTtlNChiKTtyZXR1cm59Yj1kc2EoKTtsZXQgYz1odWEoKSxkPWF3YWl0IGVzYSgpLGU9YXdhaXQgRXJhKCk7aWYoIShifHxjfHxkfHxlKSlyZXR1cm59YS5TYigpP2Y0KCk6Xy5iZihhLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixmNCl9KX07anVhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUHJvbWlzZShiPT57d2luZG93LnNldFRpbWVvdXQoYixhKX0pfTsKWXNhPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXtfLlR6KCJhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2giKTtfLkFxKCJhdHRfZnMiLHZvaWQgMCwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIik7aWYoIWEuail0aHJvdyBuZXcgczIoOSwiTWlzc2luZyBmZXRjaGVyIik7dmFyIGQ9YXdhaXQgYS5qKGIsYyk7Yj1kPy5iZ0NoYWxsZW5nZTtpZighYil0aHJvdyBuZXcgczIoMTUsIk1pc3NpbmcgZmllbGQiKTthLm89ZDthLnYuZm9yRWFjaChlPT57ZShkKX0pO2E9UzIoYik7Xy5BcSgiYXR0X2ZjIix2b2lkIDAsImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO18uU3ooImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO3JldHVybiBhfTsKaHRhPWFzeW5jIGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBCMSgxMDAsM0U1LC4yNSwyKSxkPXZvaWQgMDtjLnY8MTA7KXRyeXtyZXR1cm4gYy52PjAmJmF3YWl0IGp1YShjLmopLGF3YWl0IGt1YShhLGIpfWNhdGNoKGUpe2Q9ZSBpbnN0YW5jZW9mIHMyP2U6bmV3IHMyKDksZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZToiVW5rbm93biIpLEMxKGMpfWlmKGQpdGhyb3cgZDt0aHJvdyBuZXcgczIoOSwiVW5rbm93biBlcnJvciIpO307Cmt1YT1mdW5jdGlvbihhLGIpe2I9V3NhKFhzYShuZXcgbHVhLGIpLGEucmVxdWVzdEtleSk7dmFyIGM9bmV3IF8uY3MsZD1hLkQoKTtkLm9wZW4oIlBPU1QiLGEuQik7ZC5zZXRSZXF1ZXN0SGVhZGVyKCJYLUdvb2ctQXBpLUtleSIsIkFJemFTeUR5VDVXMEpoNDlGMzBQcXF0eWZkZjdwRExGS0xKb0FudyIpO2Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbitwcm90b2J1ZiIpO2Qub25sb2FkPSgpPT57aWYoXy5xaihkKSl7bGV0IGU9bXVhKGQucmVzcG9uc2VUZXh0KTtjLnJlc29sdmUoZSl9ZWxzZSBjLnJlamVjdChuZXcgczIoUDEoXy5waihkKSksZC5zdGF0dXNUZXh0KSl9O2Qub25lcnJvcj0oKT0+e2MucmVqZWN0KG5ldyBzMihQMShfLnBqKGQpKSxkLnN0YXR1c1RleHQpKX07ZC5zZW5kKGIuc2VyaWFsaXplKCkpO3JldHVybiBjLnByb21pc2V9OwpudWE9ZnVuY3Rpb24oYSl7dmFyIGI9e2JpY2Y6ZD0+e2Euaj1kfSxibGM6KCk9PmEuZ2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKSxiY3I6ZD0+e2Eudi5wdXNoKGQpfX0sYz13aW5kb3c7Yy5udHBldmFzcnM9YjtpZihjLm50cHFmYmVsIT09dm9pZCAwKWZvcihsZXQgZCBvZiBjLm50cHFmYmVsKWQoYik7Yy5udHBxZmJlbD12b2lkIDB9O2c0PWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBFcnJvcil7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7YiYmYihhLCJXQVJOSU5HIil9fTtpND1mdW5jdGlvbihhLGIpe2E9bmV3IG91YShhLGIpO3B1YShhKTtiPy5DSXx8aDQoYSl9OwpwdWE9ZnVuY3Rpb24oYSl7aWYoIWEudm0pe3ZhciBiPXttYXhBdHRlbXB0czo1LEZyOmEudHRsU2Vjb25kcyoxRTN9O2EuWGcueXRjc2k/LnRpY2s/LigicG90X2lzdCIpO2Eudm09YS5Icyh7b2Q6YS5vZCxuZzp7ZGlzYWJsZTpfLngoImh0bWw1X3dlYl9wb19kaXNhYmxlX3JlbW90ZV9sb2dnaW5nIiksbWI6ImFHSWYiLFN2OnpyYSgpLEt5Ol8ueCgid3BvX2Rpc19sZmRtcyIpPzA6MUUzLElnOmQ9Pnt2YXIgZT1qNC5nZXQoZCk7ZXx8KGU9bmV3IHF1YShkKSxlPW5ldyBUMShlKSxqNC5zZXQoZCxlKSk7cmV0dXJuIGV9fSxMZzpiLHN4OmEuYmdDaGFsbGVuZ2UsRWo6ZzR9KTthLmo9RGF0ZS5ub3coKTtmMihhLnZtLCgpPT57YS5qPURhdGUubm93KCl9KTthLlhnLmJnZXZtYz17cDooKT0+e2Eudm0/LnBhdXNlKCl9LHI6KCk9PnthLnZtPy5yZXN1bWUoKX0sY3I6KCk9PmEudm0/LmNoZWNrRm9yUmVmcmVzaCgpPz9Qcm9taXNlLnJlc29sdmUoKX07a3NhKGEudm0sYXN5bmMoKT0+aDQoYSksClYyKCkpO3ZhciBjPWEudi5iaW5kKGEpO2EueW0mJmEudHRsU2Vjb25kcz4wJiZhLnltLnRoZW4oZD0+e2QubGlzdGVuKCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixjKX0pO2EuR3IoYyl9fTtoND1mdW5jdGlvbihhKXtpZihhLm8pcmV0dXJuIGEubztpZighYS52bSl0aHJvdyBFcnJvcigiVGUiKTthLm89bmV3IHJ1YSh7dm06YS52bSxvZDphLm9kLFFuOiEwLG9uRXJyb3I6ZzQsTGc6YS5Kc30pO3JldHVybiBhLm99O2s0PWZ1bmN0aW9uKGEpe3RyeXtsZXQgYj1KU09OLnBhcnNlKGEpO2lmKGIuYmdDaGFsbGVuZ2UpcmV0dXJuIGJ9Y2F0Y2goYil7fX07CnN1YT1mdW5jdGlvbihhPXdpbmRvdyl7dmFyIGI9e30sYz1hLnl0QXRSO2I/LmtxPy5EcigpO2lmKGMpe2lmKGM9azQoYykpYj8ua3E/LnpnKCJTVUNDRVNTIiksaTQoYyxiKTthLnl0QXRSPXZvaWQgMH1lbHNlIGEueXRBdFJDPWQ9PntpZihkPWs0KGQpKWI/LmtxPy56ZygiU1VDQ0VTUyIpLGk0KGQsYiksYS55dEF0UkM9dm9pZCAwfX07CnR1YT1mdW5jdGlvbihhLGIsYyxkLGUsZil7Yz8oYS5TKDIpLEgwKHkwKGMpLCgpPT57d2luZG93LnRyYXlyaWRlP2w0KGEsZCxlKTooYS5TKDMpLEUwKGMpLF8uSXAobmV3IF8uWGooIkJMOlVMQiIsYCR7Y31gKSkpfSxmKSk6Yj8oZj1fLkNkKCJTQ1JJUFQiKSxiIGluc3RhbmNlb2YgXy5qYj9fLm5iKGYsYik6Zi50ZXh0Q29udGVudD1iLGYubm9uY2U9Xy5pYihkb2N1bWVudCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChmKSxkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGYpLHdpbmRvdy50cmF5cmlkZT9sNChhLGQsZSk6KGEuUyg0KSxfLklwKG5ldyBfLlhqKCJCTDpVTEJKIikpKSk6Xy5JcChuZXcgXy5YaigiQkw6VUxWIikpfTsKbDQ9ZnVuY3Rpb24oYSxiLGMpe2EuUyg1KTt2YXIgZD0hIWEuaiYmdXVhLmluY2x1ZGVzKF8uUGIoYS5qKXx8IiIpO3RyeXtsZXQgZT1uZXcgZDIoe3Byb2dyYW06YixnbG9iYWxOYW1lOiJ0cmF5cmlkZSIsbmc6e2Rpc2FibGU6IV8ueCgiYXR0X3dlYl9yZWNvcmRfbWV0cmljcyIpfHwhXy54KCJhdHRfc2tpcF9tZXRyaWNzX2Zvcl9jb29raWVsZXNzX2RvbWFpbnNfa3MiKSYmZCxtYjoiYUdJZiJ9fSk7ZS5DZy50aGVuKCgpPT57YS5TKDYpO2MmJmMoYil9KTthLm8oZSl9Y2F0Y2goZSl7YS5TKDcpLGUgaW5zdGFuY2VvZiBFcnJvciYmXy5JcChlKX19O200PWZ1bmN0aW9uKCl7dmFyIGE9Xy5zYSgieXQuYWJ1c2UucGxheWVyQXR0TG9hZGVyIik7cmV0dXJuIGEmJlsiYmd2bWEiLCJiZ3ZtYiIsImJndm1jIl0uZXZlcnkoYj0+YiBpbiBhKT9hOm51bGx9Owp2dWE9ZnVuY3Rpb24oKXt2YXIgYT1fLncoIkNMSUVOVF9FWFBFUklNRU5UX0VWRU5UUyIpO2lmKGEpe3ZhciBiPW5yYSgpO2ZvcihsZXQgYyBvZiBhKWIoYykmJl8uRXAoImdlbmVyaWNDbGllbnRFeHBlcmltZW50RXZlbnQiLHtldmVudFR5cGU6Y30pO2RlbGV0ZSBfLlBpLkNMSUVOVF9FWFBFUklNRU5UX0VWRU5UU319O3d1YT1mdW5jdGlvbihhLGIsYyl7aWYoYS5qKXtsZXQgZD1fLlFiKF8uUHkoYiwia2V5IikpfHwiL1VOS05PV05fUEFUSCI7YS5qLnN0YXJ0KGQpfWE9YztfLngoInd1Z19uZXR3b3JraW5nX2d6aXBfcmVxdWVzdCIpJiYoYT1GcmEoYykpO3JldHVybiBuZXcgd2luZG93LlJlcXVlc3QoYixhKX07Cm80PWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihmPy5hYm9ydGVkKXJldHVybiBiLmNhbmNlbCgpLGQ7dmFyIHt2YWx1ZTpoLGRvbmU6a309YXdhaXQgYi5yZWFkKCk7aWYoaylyZXR1cm4gYS5qPy5zdWNjZXNzKCksZDt0cnl7dmFyIGw9Yy5wYXJzZShoKX1jYXRjaChtKXt0aHJvdyBuZXcgbjQoIkZhaWxlZCB0byBwYXJzZSBzdHJlYW1pbmcgcmVzcG9uc2UiLGgpO31pZihsIT1udWxsKWZvcihsZXQgbSBvZiBsKWQucHVzaChtKSxlPy4obSk7cmV0dXJuIG80KGEsYixjLGQsZSxmKX07eHVhPWZ1bmN0aW9uKCl7dmFyIGE9bmF2aWdhdG9yO3JldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e2Eud2Via2l0VGVtcG9yYXJ5U3RvcmFnZT8ucXVlcnlVc2FnZUFuZFF1b3RhP2Eud2Via2l0VGVtcG9yYXJ5U3RvcmFnZS5xdWVyeVVzYWdlQW5kUXVvdGEoKGQsZSk9PntiKHt1c2FnZTpkLHF1b3RhOmV9KX0sZD0+e2MoZCl9KTpjKEVycm9yKCJWZSIpKX0pfTsKeXVhPWZ1bmN0aW9uKGEsYil7cDQuamMoKS5lc3RpbWF0ZSgpLnRoZW4oYz0+e2EuaigiaWRiUXVvdGFFeGNlZWRlZCIsey4uLmIsaXNTdzpzZWxmLmRvY3VtZW50PT09dm9pZCAwLGlzSWZyYW1lOnNlbGYhPT1zZWxmLnRvcCxkZXZpY2VTdG9yYWdlVXNhZ2VNYnl0ZXM6cTQoYz8udXNhZ2UpLGRldmljZVN0b3JhZ2VRdW90YU1ieXRlczpxNChjPy5xdW90YSl9KX0pfTtxND1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0idW5kZWZpbmVkIj8iLTEiOlN0cmluZyhNYXRoLmNlaWwoYS8xMDQ4NTc2KSl9Owp6dWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz17ZXJyb3JTZXZlcml0eTpiLmZoLnRvU3RyaW5nKCksd2l6RmVhdHVyZUZsYWdzOk9iamVjdC5lbnRyaWVzKGIuQWwpLmpvaW4oIlxuIil9O2I9Yi5maDtiPT09Mz9fLkdwKGEsIkVSUk9SIix2b2lkIDAsdm9pZCAwLHZvaWQgMCxjKTpiPT09MiYmXy5HcChhLCJXQVJOSU5HIix2b2lkIDAsdm9pZCAwLHZvaWQgMCxjKTtfLngoImNvd19pZl9lcnJvcnNfaW5fcG9wdXAiKSYmYj09PTMmJmEubWVzc2FnZS5pbmRleE9mKCI8SWY+IikhPT0tMSYmd2luZG93LmFsZXJ0KGEubWVzc2FnZSl9OwpBdWE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW51bGw7YyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P2Q9YzohXy54KCJsb2dnaW5nX25lc3RlZF9jb21wb25lbnRfa3MiKSYmQXJyYXkuaXNBcnJheShjKSYmYy5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KGNbMF0pJiZjWzBdLmxlbmd0aD09PTEmJmNbMF1bMF1pbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoZD1jWzBdWzBdKTthLmNvbXBvbmVudFR5cGUhPT1fLkt2JiZkJiZiJiYhXy54KCJjb3dfbG9nZ2luZ19pbl9jb21wb25lbnRfd3JhcHBlciIpJiZfLnV5KGQsYiwhMCl9O0J1YT1mdW5jdGlvbigpe18ueCgiY293X2xvZ2dpbmdfaW5fY29tcG9uZW50X3dyYXBwZXIiKT8oXy5Ddj0oYSxiKT0+e2IgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmXy51eShiLGEsITApfSxfLnZ2PSgpPT57fSk6KF8uQ3Y9KCk9Pnt9LF8udnY9QXVhKX07CkR1YT1mdW5jdGlvbigpe3ZhciBhPV8ueSgpO18uSnooYSx7amE6cjQsUGE6czR9KTtfLkp6KGEse2phOnQ0LFBhOl8ubm19KTt2YXIgYj12My5qYygpLGM9YS5yZXNvbHZlKHQ0KSxkPWEucmVzb2x2ZShyNCksZT17fTtiJiYoZS5jbGllbnRfbG9jYXRpb249Yik7Xy5KeihhLHtqYTp1NCxNYjpDdWF9KTtfLkp6KGEse2phOl8uSnksTWI6ZX0pO18ueCgibWF3X2VuYWJsZV9uZXR3b3JrX21hY2hpbmUiKSYmZnVhKCk7VnRhKGEucmVzb2x2ZSh1NCksZCxjLGEucmVzb2x2ZShfLkp5KSk7Xy5KeihhLHtqYTpfLkl5LE1iOnozLmluc3RhbmNlfSl9O0d1YT1mdW5jdGlvbihhLGIsYyxkPSgpPT57fSxlPW51bGwpe2I9bmV3IEV1YShhLGIsYyxkLGUpO0Z1YS5zZXQoYSxiKX07CnY0PWZ1bmN0aW9uKGEpe2lmKCFhLm9uUmVhZHlQYXRjaEFwcGxpZWQpe3ZhciBiPWEuYWRkRXZlbnRMaXN0ZW5lcjthLmFkZEV2ZW50TGlzdGVuZXI9KGMsZCk9PntjPT09Im9uUmVhZHkiP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntkKGEpfSk6Yi5jYWxsKGEsYyxkKX07YS5vblJlYWR5UGF0Y2hBcHBsaWVkPSEwfX07SnVhPWZ1bmN0aW9uKGEpe2lmKF8uc2EoInl0LnBsYXllci5BcHBsaWNhdGlvbi5jcmVhdGUiKSlQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dzQoYSl9KTtlbHNle0h1YShfLmh3KGEud2ViUGxheWVyQ29udGV4dENvbmZpZy50cnVzdGVkSnNVcmwpLCgpPT57dzQoYSl9LCgpPT57YS5pYSgpfHxhLkVqKCl9KTtsZXQgYj1hLndlYlBsYXllckNvbnRleHRDb25maWcudHJ1c3RlZENzc1VybDtiJiZJdWEoXy5odyhiKSl9fTsKdzQ9ZnVuY3Rpb24oYSl7aWYoIWEuaWEoKSl7dmFyIGI9Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIpO3RyeXthLmFwaT1iKGEuY29udGFpbmVyLHthcmdzOmEucGxheWVyVmFyc30sYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnLHZvaWQgMCkuZ2V0SW50ZXJuYWxBcGkoKSx2NChhLmFwaSksYS5hcGkuaXNSZWFkeT0oKT0+ITAsYS5qKGEuYXBpKX1jYXRjaChjKXt0aHJvdyBhLkVqKCksYzt9fX07SXVhPWZ1bmN0aW9uKGEpe3ZhciBiPWB5dHAtJHthLnRvU3RyaW5nKCl9YDtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtjLmlkPWI7Xy5xYihjLGEsInN0eWxlc2hlZXQiKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQoYyl9fTsKSHVhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1geXRwLSR7YS50b1N0cmluZygpfWAsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkKTtpZihlKWUuZGF0YXNldC5mYWlsZWQ/YygpOmUuZGF0YXNldC5sb2FkZWQ/YigpOihlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e2MoKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9PntiKCl9KSk7ZWxzZXt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtmLmlkPWQ7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntmLmRhdGFzZXQuZmFpbGVkPSJ0cnVlIjtjKCl9KTtmLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57Zi5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7YigpfSk7Xy5vYihmLGEpO2E9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTthLmluc2VydEJlZm9yZShmLGEuZmlyc3RDaGlsZCl9fTsKS3VhPWZ1bmN0aW9uKGEpe18udygiRU5BQkxFX1dFQlZJRVdfQVBJIikmJndpbmRvdy55dHdlYnZpZXdwbGF5ZXImJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYj0+e3RyeXtsZXQgZD1KU09OLnBhcnNlKGIuZGF0YSksZT1kLm1ldGhvZE5hbWUsZj1kLmFyZ3N8fFtdO2E6e2ZvcihsZXQgaCBvZiBmKWlmKFN0cmluZyhoKS5pbmNsdWRlcygiamF2YXNjcmlwdDoiKSl7dmFyIGM9ITA7YnJlYWsgYX1jPSExfWlmKGMpdGhyb3cgRXJyb3IoIldlYCIrZSsiYCIrZik7aWYoZSYmdHlwZW9mIGFbZV09PT0iZnVuY3Rpb24iKWFbZV0oLi4uZik7ZWxzZSB0aHJvdyBFcnJvcigiWGVgIitlKTt9Y2F0Y2goZCl7Xy5HcChkKX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLCgpPT57d2luZG93Lnl0d2Vidmlld3BsYXllci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7dHlwZToib25QbGF5ZXJSZWFkeSJ9KSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLApiPT57d2luZG93Lnl0d2Vidmlld3BsYXllci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7dHlwZToib25TdGF0ZUNoYW5nZSIsc3RhdGU6Yn0pKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigib25FcnJvciIsYj0+e3dpbmRvdy55dHdlYnZpZXdwbGF5ZXIucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe3R5cGU6Im9uRXJyb3IiLGVycm9yQ29kZTpifSkpfSkpfTt4ND1mdW5jdGlvbihhKXtyZXR1cm4oYS5zZWFyY2goImN1ZSIpPT09MHx8YS5zZWFyY2goImxvYWQiKT09PTApJiZhIT09ImxvYWRNb2R1bGUifTsKeTQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJue3ZpZGVvSWQ6YSxzdGFydFNlY29uZHM6YixzdWdnZXN0ZWRRdWFsaXR5OmN9O2I9e307Zm9yKGxldCBlIG9mIEx1YSlhW2VdJiYoYltlXT1hW2VdKTtpZihhPWEuZW1iZWRDb25maWd8fGEuZW1iZWRfY29uZmlnKXthOmlmKHR5cGVvZiBhPT09InN0cmluZyIpdmFyIGQ9YTtlbHNle2lmKF8uQWEoYSkpdHJ5e2Q9SlNPTi5zdHJpbmdpZnkoYSk7YnJlYWsgYX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGVtYmVkQ29uZmlnIEpTT04iLGUpfWQ9dm9pZCAwfWIuZW1iZWRfY29uZmlnPWR9cmV0dXJuIGJ9Owp6ND1mdW5jdGlvbihhLGIsYyxkKXtpZihfLkFhKGEpJiYhQXJyYXkuaXNBcnJheShhKSl7Yj0icGxheWxpc3QgbGlzdCBsaXN0VHlwZSBpbmRleCBzdGFydFNlY29uZHMgc3VnZ2VzdGVkUXVhbGl0eSIuc3BsaXQoIiAiKTtjPXt9O2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspe2xldCBlPWJbZF07YVtlXSYmKGNbZV09YVtlXSl9cmV0dXJuIGN9Yj17aW5kZXg6YixzdGFydFNlY29uZHM6YyxzdWdnZXN0ZWRRdWFsaXR5OmR9O3R5cGVvZiBhPT09InN0cmluZyImJmEubGVuZ3RoPT09MTY/Yi5saXN0PSJQTCIrYTpiLnBsYXlsaXN0PWE7cmV0dXJuIGJ9O0E0PWZ1bmN0aW9uKGEsYixjKXthLkIucHVzaCh7ZXZlbnRUeXBlOmIsbGlzdGVuZXI6Y30pO2EuYXBpLmFkZEV2ZW50TGlzdGVuZXIoYixjKX07CkQ0PWZ1bmN0aW9uKGEpe2lmKGEuailpZihhLnYpYS5zZW5kTWVzc2FnZSgiYWxyZWFkeUluaXRpYWxpemVkIik7ZWxzZSBpZihhLk0pe2Eudj0hMDthLk09ITE7YS5zZW5kTWVzc2FnZSgiaW5pdGlhbERlbGl2ZXJ5IixCNChhKSk7YS5zZW5kTWVzc2FnZSgib25SZWFkeSIpO18uQXEoImVwX2luaXRfYXIiKTtmb3IobGV0IGIgb2YgYS5VKUM0KGEsYik7YS5VPVtdfX07QzQ9ZnVuY3Rpb24oYSxiLGM9YS5qKXtpZihjKXtiLmNoYW5uZWw9IndpZGdldCI7YS5zZXNzaW9uSWQmJihiLmlkPWEuc2Vzc2lvbklkKTt0cnl7bGV0IGQ9SlNPTi5zdHJpbmdpZnkoYik7Yy5wb3N0TWVzc2FnZShkLGEudGFyZ2V0T3JpZ2luKX1jYXRjaChkKXtfLklwKGQpfX19OwpCND1mdW5jdGlvbihhKXtpZighYS5hcGkpcmV0dXJuIG51bGw7dmFyIGI9YS5hcGkuZ2V0QXBpSW50ZXJmYWNlKCk7Xy54YihiLCJnZXRWaWRlb0RhdGEiKTt2YXIgYz17YXBpSW50ZXJmYWNlOmJ9O2ZvcihsZXQgZT0wLGY9Yi5sZW5ndGg7ZTxmO2UrKyl7bGV0IGg9YltlXTtpZihoLnNlYXJjaCgiZ2V0Iik9PT0wfHxoLnNlYXJjaCgiaXMiKT09PTApe3ZhciBkPTA7aC5zZWFyY2goImdldCIpPT09MD9kPTM6aC5zZWFyY2goImlzIik9PT0wJiYoZD0yKTtkPWguY2hhckF0KGQpLnRvTG93ZXJDYXNlKCkraC5zdWJzdHJpbmcoZCsxKTt0cnl7bGV0IGs9YS5hcGlbaF0oKTtjW2RdPWt9Y2F0Y2goayl7fX19Yy52aWRlb0RhdGE9YS5hcGkuZ2V0VmlkZW9EYXRhKCk7Yy5jdXJyZW50VGltZUxhc3RVcGRhdGVkXz1EYXRlLm5vdygpLzFFMztyZXR1cm4gY307RTQ9ZnVuY3Rpb24oYSxiKXthLnNlbmRNZXNzYWdlKCJpbmZvRGVsaXZlcnkiLGIpfTsKTXVhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e2I9PT0ib25FcnJvciI/YS5hcGkubG9nQXBpQ2FsbChgJHtifSBpbnZvY2F0aW9uYCxjLGQpOmEuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyk7YS5zZW5kTWVzc2FnZShiLGQpfX07RjQ9ZnVuY3Rpb24oYSxiLGMpe2EuaWEoKXx8KGI9e2lkOmEuaWQsY29tbWFuZDpifSxjJiYoYi5kYXRhPWMpLE51YS5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShiKSxhLm9yaWdpbikpfTtPdWE9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAib25SZWFkeSI6cmV0dXJuO2Nhc2UgIm9uU3RhdGVDaGFuZ2UiOnJldHVybntwbGF5ZXJTdGF0ZTpifTtjYXNlICJvblBsYXliYWNrUXVhbGl0eUNoYW5nZSI6cmV0dXJue3BsYXliYWNrUXVhbGl0eTpifTtjYXNlICJvblBsYXliYWNrUmF0ZUNoYW5nZSI6cmV0dXJue3BsYXliYWNrUmF0ZTpifTtjYXNlICJvbkVycm9yIjpyZXR1cm57ZXJyb3JDb2RlOmJ9fWlmKGIhPW51bGwpcmV0dXJue3ZhbHVlOmJ9fTsKUHVhPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgImxvYWRWaWRlb0J5SWQiOnJldHVyblt5NChiKV07Y2FzZSAiY3VlVmlkZW9CeUlkIjpyZXR1cm5beTQoYildO2Nhc2UgImxvYWRWaWRlb0J5UGxheWVyVmFycyI6cmV0dXJuW2JdO2Nhc2UgImN1ZVZpZGVvQnlQbGF5ZXJWYXJzIjpyZXR1cm5bYl07Y2FzZSAibG9hZFBsYXlsaXN0IjpyZXR1cm5bejQoYildO2Nhc2UgImN1ZVBsYXlsaXN0IjpyZXR1cm5bejQoYildO2Nhc2UgInNlZWtUbyI6cmV0dXJuW2Iuc2Vjb25kcyxiLmFsbG93U2Vla0FoZWFkXTtjYXNlICJwbGF5VmlkZW9BdCI6cmV0dXJuW2IuaW5kZXhdO2Nhc2UgInNldFZvbHVtZSI6cmV0dXJuW2Iudm9sdW1lXTtjYXNlICJzZXRQbGF5YmFja1F1YWxpdHkiOnJldHVybltiLnN1Z2dlc3RlZFF1YWxpdHldO2Nhc2UgInNldFBsYXliYWNrUmF0ZSI6cmV0dXJuW2Iuc3VnZ2VzdGVkUmF0ZV07Y2FzZSAic2V0TG9vcCI6cmV0dXJuW2IubG9vcFBsYXlsaXN0c107Y2FzZSAic2V0U2h1ZmZsZSI6cmV0dXJuW2Iuc2h1ZmZsZVBsYXlsaXN0XTsKY2FzZSAiZ2V0T3B0aW9ucyI6cmV0dXJuW2IubW9kdWxlXTtjYXNlICJnZXRPcHRpb24iOnJldHVybltiLm1vZHVsZSxiLm9wdGlvbl07Y2FzZSAic2V0T3B0aW9uIjpyZXR1cm5bYi5tb2R1bGUsYi5vcHRpb24sYi52YWx1ZV07Y2FzZSAiaGFuZGxlR2xvYmFsS2V5RG93biI6cmV0dXJuW2Iua2V5Q29kZSxiLnNoaWZ0S2V5LGIuY3RybEtleSxiLmFsdEtleSxiLm1ldGFLZXksYi5rZXksYi5jb2RlXX1yZXR1cm5bXX07ClF1YT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlICJpc011dGVkIjpyZXR1cm57bXV0ZWQ6Yn07Y2FzZSAiZ2V0Vm9sdW1lIjpyZXR1cm57dm9sdW1lOmJ9O2Nhc2UgImdldFBsYXliYWNrUmF0ZSI6cmV0dXJue3BsYXliYWNrUmF0ZTpifTtjYXNlICJnZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzIjpyZXR1cm57YXZhaWxhYmxlUGxheWJhY2tSYXRlczpifTtjYXNlICJnZXRWaWRlb0xvYWRlZEZyYWN0aW9uIjpyZXR1cm57dmlkZW9Mb2FkZWRGcmFjdGlvbjpifTtjYXNlICJnZXRQbGF5ZXJTdGF0ZSI6cmV0dXJue3BsYXllclN0YXRlOmJ9O2Nhc2UgImdldEN1cnJlbnRUaW1lIjpyZXR1cm57Y3VycmVudFRpbWU6Yn07Y2FzZSAiZ2V0UGxheWJhY2tRdWFsaXR5IjpyZXR1cm57cGxheWJhY2tRdWFsaXR5OmJ9O2Nhc2UgImdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMiOnJldHVybnthdmFpbGFibGVRdWFsaXR5TGV2ZWxzOmJ9O2Nhc2UgImdldER1cmF0aW9uIjpyZXR1cm57ZHVyYXRpb246Yn07CmNhc2UgImdldFZpZGVvVXJsIjpyZXR1cm57dmlkZW9Vcmw6Yn07Y2FzZSAiZ2V0VmlkZW9FbWJlZENvZGUiOnJldHVybnt2aWRlb0VtYmVkQ29kZTpifTtjYXNlICJnZXRQbGF5bGlzdCI6cmV0dXJue3BsYXlsaXN0OmJ9O2Nhc2UgImdldFBsYXlsaXN0SW5kZXgiOnJldHVybntwbGF5bGlzdEluZGV4OmJ9O2Nhc2UgImdldE9wdGlvbnMiOnJldHVybntvcHRpb25zOmJ9O2Nhc2UgImdldE9wdGlvbiI6cmV0dXJue29wdGlvbjpifX19O1J1YT1mdW5jdGlvbigpe3JldHVybiBHNC5pc0luaXRpYWxpemVkKCl9O1N1YT1mdW5jdGlvbihhPXt9KXtyZXR1cm4gRzQuaW52b2tlKGEpfTtUdWE9ZnVuY3Rpb24oKXtpZihfLncoIkVOQUJMRV9KU19BUEkiKSl7dmFyIGE9Yj0+e0g0PWI7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSl9fTsKVXVhPWZ1bmN0aW9uKCl7Xy5BcSgiZXBfaW5pdF93ZXMiKTt2YXIgYT1fLncoIlBMQVlFUl9DT05GSUciKTtpZighYSl7dmFyIGI9Xy53KCJQTEFZRVJfVkFSUyIpO2ImJihhPXthcmdzOmJ9KX1RMighMCk7YS5hcmdzLnBzPT09Imd2biImJihkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvcj0idHJhbnNwYXJlbnQiKTthLmF0dHJzfHwoYS5hdHRycz17d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsaWQ6InZpZGVvLXBsYXllciJ9KTtiPWRvY3VtZW50LnJlZmVycmVyO3dpbmRvdyE9PXdpbmRvdy50b3AmJmImJmIhPT1kb2N1bWVudC5VUkwmJihhLmFyZ3MubG9hZGVyVXJsPWIpO2I9Xy53KCJXRUJfUExBWUVSX0NPTlRFWFRfQ09ORklHUyIpPy5XRUJfUExBWUVSX0NPTlRFWFRfQ09ORklHX0lEX0VNQkVEREVEX1BMQVlFUjtpZighYi5zZXJpYWxpemVkRm9yY2VkRXhwZXJpbWVudElkcyl7bGV0IGM9YTAod2luZG93LmxvY2F0aW9uLmhyZWYpO2MuZm9yY2VkX2V4cGVyaW1lbnRzJiYKKGIuc2VyaWFsaXplZEZvcmNlZEV4cGVyaW1lbnRJZHM9Yy5mb3JjZWRfZXhwZXJpbWVudHMpfWEuYXJncz8uYXV0b3BsYXk/dDAoIndhdGNoIixbInBicyIsInBidSIsInBicCJdKTphLmFyZ3MmJnd0YShhLmFyZ3MpP3QwKCJ2aWRlb19wcmV2aWV3IixbIm9sIl0pOnQwKCJlbWJlZF9ub192aWRlbyIsWyJlcF9pbml0X2FyIl0pO18ueCgiZW1iZWRzX3VzZV9wbGF5ZXJfaW5zdGFuY2VzX2xpYnJhcnkiKXx8Xy53KCJFTkFCTEVfV0VCVklFV19BUEkiKT8oR3VhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXIiKSxiLGM9PntfLncoIkVOQUJMRV9XRUJWSUVXX0FQSSIpPyhjPWMuZ2V0VHJ1c3RlZEFwaSgpLHY0KGMpLEt1YShjKSk6KEk0KGMpLEo0KGMpKX0sKCk9Pnt0aHJvdyBFcnJvcigiWWUiKTt9LGEuYXJncyksXy53KCJFTkFCTEVfV0VCVklFV19BUEkiKXx8SzQoKSxfLkFxKCJlcF9pbml0X3dlZSIpKTooYT1jc2EoYSxiKSxJNChhKSxLNCgpLF8uQXEoImVwX2luaXRfd2VlIiksCko0KGEpKX07STQ9ZnVuY3Rpb24oYSl7TDQ9YTtMNC5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTTQpO0w0LmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLFZ1YSk7YT1fLncoIlBPU1RfTUVTU0FHRV9JRCIsInBsYXllciIpO3ZhciBiPV8udygiUE9TVF9NRVNTQUdFX09SSUdJTiIpO18udygiRU5BQkxFX0pTX0FQSSIpP040PW5ldyBXdWE6Xy53KCJFTkFCTEVfUE9TVF9BUEkiKSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmKE40PW5ldyBYdWEoYSxiKSk7SDQ9dm9pZCAwfTsKSzQ9ZnVuY3Rpb24oKXtHdGEoKTtfLngoInl0aWRiX2NyZWF0ZV9sb2dnZXJfZW1iZWRfa2lsbHN3aXRjaCIpfHxCcmEoKTtPNC5qfHwoTzQuaj1uZXcgTzQpO080LmouaW5zdGFsbCh7Zmx1c2hfbG9nczp7Y2FsbGJhY2s6KCk9PntfLmJwKCl9fX0pO18uSWx8fEdyYSgpO0R1YSgpO18uamYucGIoKCk9PntfLnkoKS5yZXNvbHZlKF8uSXkpO2l1YSgpfSk7c2V0VGltZW91dCgoKT0+e18ueCgiYXR0bXVzaSIpJiZzdWEod2luZG93KTt2YXIgYT1fLnkoKS5yZXNvbHZlKF8uSW4oXy5JeSkpO2lmKGEpe2E9bmV3IFl1YShhKTt2YXIgYj17cHJlbG9hZDohXy54KCJlbmFibGVfcnRhX25waSIpLHpzOl8ueCgiYXR0bXVzaSIpfTtiPU9iamVjdC5hc3NpZ24oe3ByZWxvYWQ6ITB9LGIpO2xldCBkPWIuQUk/dm9pZCAwOm5ldyBfLk9zO1A0Lmluc3RhbmNlPW5ldyBQNChhLGIsZCk7YT1QNC5pbnN0YW5jZTtpZigoXy54KCJhdHRtdXNpIil8fF8ueCgiYXR0bXVzaXciKSkmJl8ueCgiYXR0bXVzaV91ZSIpKXthPQp7czphLkIuYmluZChhKSxpcjphLkQuYmluZChhKX07Yj13aW5kb3c7Yi5hdHRtcD1hO2lmKGIuYXR0bXEhPT12b2lkIDApZm9yKHZhciBjIG9mIGIuYXR0bXEpYyhhKTtiLmF0dG1xPXZvaWQgMH1lbHNlIGM9YS5CLmJpbmQoYSksXy5yYSgieXQuYWJhLmF0dCIsYyksYz1hLkQuYmluZChhKSxfLnJhKCJ5dC5hYmEuYXR0MiIsYyl9fSxfLnNqKCJhdHRfaW5pdF9kZWxheSIsMjAwKSk7Xy5ZaigoKT0+e2lmKF8ueCgiZW5hYmxlX3p3X3BpbmciKSl7dmFyIGE9Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiLCJVTktOT1dOX0lOVEVSRkFDRSIpLGI9Ii9lc3RhYmxpc2hfenciO2lmKGE9PT0iV0VCX0VNQkVEREVEX1BMQVlFUiIpYj0iL2VtYmVkL2VzdGFibGlzaF96dyI7ZWxzZSBpZihhPT09IlRWSFRNTDUifHxhPT09IlRWSFRNTDVfU0lNUExZIiliPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS90di9lc3RhYmxpc2hfenciO18udygiQ09PS0lFTEVTUyIsITEpJiZhPT09IldFQl9FTUJFRERFRF9QTEFZRVIiPwooYT1uZXcgSGVhZGVycyxhLnNldCgiWC1Hb29nLVZpc2l0b3ItSWQiLF8udygiVklTSVRPUl9EQVRBIikpLGZldGNoKGIse21ldGhvZDoiR0VUIixtb2RlOiJuby1jb3JzIixoZWFkZXJzOmF9KSk6ZmV0Y2goYix7bWV0aG9kOiJHRVQiLG1vZGU6Im5vLWNvcnMiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pfX0pfTtadWE9ZnVuY3Rpb24oKXtRNCgpfTskdWE9ZnVuY3Rpb24oYSl7YS5wZXJzaXN0ZWR8fFE0KCl9OwpRND1mdW5jdGlvbigpe1NyYSgpO3ZhciBhPV8uSHooKSxiPV8uQ3ooMTE5KSxjPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvPjE7ZG9jdW1lbnQuYm9keSYmXy5SdChkb2N1bWVudC5ib2R5LCJleHAtaW52ZXJ0LWxvZ28iKSYmKGMmJiFfLlJ0KGRvY3VtZW50LmJvZHksImludmVydGVkLWhkcGkiKT9fLlN0KGRvY3VtZW50LmJvZHksImludmVydGVkLWhkcGkiKTohYyYmXy5SdChkb2N1bWVudC5ib2R5LCJpbnZlcnRlZC1oZHBpIikmJl8uVHQoZG9jdW1lbnQuYm9keSwiaW52ZXJ0ZWQtaGRwaSIpKTtiIT1jJiYoXy5EeigxMTksYyksYS5zYXZlKCkpfTtNND1mdW5jdGlvbigpe1I0KCl9O1Z1YT1mdW5jdGlvbigpe18uQXEoImVwX2luaXRfcHIiKTtSNCgpfTtSND1mdW5jdGlvbigpe3ZhciBhPUw0LmdldFZpZGVvRGF0YSgxKTthPWEudGl0bGU/YS50aXRsZSsiIC0gWW91VHViZSI6IllvdVR1YmUiO2RvY3VtZW50LnRpdGxlIT09YSYmKGRvY3VtZW50LnRpdGxlPWEpfTsKUzQ9ZnVuY3Rpb24oKXtMNCYmTDQuc2VuZEFiYW5kb25tZW50UGluZyYmTDQuc2VuZEFiYW5kb25tZW50UGluZygpO18udygiUExfQVRUIikmJkc0LmRpc3Bvc2UoKTtfLk10KCQyKTskMi5sZW5ndGg9MDtFMChaMi50b1N0cmluZygpKTtZMj0hMTtfLlFpKCJEQ0xLU1RBVCIsMCk7Xy4kZChONCk7TDQmJihMNC5yZW1vdmVFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTTQpLEw0LmRlc3Ryb3koKSxMND1udWxsKX07YXZhPWZ1bmN0aW9uKGEpe18ueCgiZW1iZWRzX3dlYl9lbmFibGVfZGlzcG9zZV9wbGF5ZXJfaWZfcGFnZV9ub3RfY2FjaGVkX2tpbGxzd2l0Y2giKT9TNCgpOmEucGVyc2lzdGVkfHxTNCgpfTsKYnZhPWZ1bmN0aW9uKCl7VDR8fChfLmR3KHtKaShhKXthLnByb3BzLmRhdGEmJihhLmVsLmRhdGE9YS5wcm9wcy5kYXRhKX0sS2koYSxiLGMpe2EuZWw/Yi5kYXRhIT09Yy5kYXRhJiYoYS5lbC5kYXRhPWMuZGF0YSk6Xy5JcChuZXcgXy5YaigiSURPTSBjb21wb25lbnQgZWwgaXMgbnVsbCIsYS5qPy5aYykpfX0pLFQ0PSEwKX07Y3ZhPXtFSzohMH07ZHZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3ZhciBiPVU0O3RoaXMuaj0xNzUyMzczNzU7dGhpcy5jdG9yPWE7dGhpcy5pc1JlcGVhdGVkPTA7dGhpcy5vPV8uTng7dGhpcy5kZWZhdWx0VmFsdWU9dm9pZCAwO3RoaXMudj1iLm1lc3NhZ2VJZCE9bnVsbD9fLnd6OnZvaWQgMH1yZWdpc3Rlcigpe18ucGModGhpcyl9fTsKZHJhPXt0b1N0cmluZzpmdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7YS09LTIxNDc0ODM2NDg7YltjKytdPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIi5jaGFyQXQoYSU1Mik7Zm9yKGE9TWF0aC5mbG9vcihhLzUyKTthPjA7KWJbYysrXT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkiLmNoYXJBdChhJTYyKSxhPU1hdGguZmxvb3IoYS82Mik7cmV0dXJuIGIuam9pbigiIil9fTtBMz17aWRlbnRpdHlUeXBlOiJVTkFVVEhFTlRJQ0FURURfSURFTlRJVFlfVFlQRV9VTktOT1dOIn07SVo9MDtKWj0wO05aPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLmJ1ZmZlcj1hO2lmKGMmJiFiKXRocm93IEVycm9yKCk7fX07T1o9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm89YT4+PjA7dGhpcy5qPWI+Pj4wfX07ClRaPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5vPWE+Pj4wO3RoaXMuaj1iPj4+MH19O2xfPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuan19O0VfPV8ueWMoKTtvcmE9L14tPyhbMS05XVswLTldKnwwKShcLlswLTldKyk/JC87VjQ9Xy5seihPXyxfLkpyKTtldmE9Xy5seihPXyxfLkpyKTtXND1fLmx6KGZ1bmN0aW9uKGEsYixjKXtiPXFfKGIpO2IhPW51bGwmJihfLlp5KGEsYyw1KSxhPWEuaixjPU5ffHwoTl89bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkpLGMuc2V0RmxvYXQzMigwLCtiLCEwKSxKWj0wLElaPWMuZ2V0VWludDMyKDAsITApLGVfKGEsSVopKX0sXy5Jcik7WDQ9Xy5seihQXyxfLkZyKTtmdmE9Xy5seihQXyxfLkZyKTsKWTQ9Xy5seihmdW5jdGlvbihhLGIsYyl7Yj1BXyhiKTtpZihiIT1udWxsJiYoZ18oYiksYiE9bnVsbCkpc3dpdGNoKF8uWnkoYSxjLDApLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmE9YS5qO0xaKGIpO2RfKGEsSVosSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhiLE9aLFFaKTtkXyhhLmosYy5vLGMuaik7YnJlYWs7ZGVmYXVsdDpjPVNaKGIpLGRfKGEuaixjLm8sYy5qKX19LF8uR3IpO1o0PV8ubHooUV8sXy5Dcik7Z3ZhPV8ubHooUV8sXy5Dcik7Cmh2YT1fLmx6KGZ1bmN0aW9uKGEsYixjKXtiPUFfKGIpO2lmKGIhPW51bGwpc3dpdGNoKGhfKGIpLF8uWnkoYSxjLDEpLGE9YS5qLGhfKGIpLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmI8MD8oYj1QWihRWigtYikpLGM9Yi5qLGVfKGEsYi5vKSxlXyhhLGMpKTooS1ooYiksZV8oYSxJWiksZV8oYSxKWikpO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yj1iPEJpZ0ludCgwKT9QWihjXygtYixPWixRWikpOmNfKGIsT1osUVopO2M9Yi5qO2VfKGEsYi5vKTtlXyhhLGMpO2JyZWFrO2RlZmF1bHQ6Yj1iLmxlbmd0aCYmYlswXT09PSItIj9QWihTWihiLnN1YnN0cmluZygxKSkpOlNaKGIpLGM9Yi5qLGVfKGEsYi5vKSxlXyhhLGMpfX0sXy5Icik7aXZhPV8ubHooZnVuY3Rpb24oYSxiLGMpe2lfKGEsYyxBXyhiKSl9LF8uSHIpO2p2YT1NXyhmdW5jdGlvbihhLGIsYyl7Yj1MXyhBXyxiLCExKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWlfKGEsYyxiW2RdKX0sXy5Icik7Cmt2YT1fLmx6KF8ubXosXy5Bcik7JDQ9Xy5seihSXyxfLkJyKTtsdmE9TV8oZnVuY3Rpb24oYSxiLGMpe2I9TF8oXy5YdCxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgZD1hLGU9YyxmPWJbaF07ZiE9bnVsbCYma18oZCxlLEhaKGYpKX19LF8uQnIpO212YT1fLmx6KFJfLF8uQnIpO2E1PW5ldyBfLmd6KF8ubnosXy56cik7bnZhPU1fKGZ1bmN0aW9uKGEsYixjKXtiPUxfKHJyYSxiLCExKTtpZihiIT1udWxsKWZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgZD1hLGU9YyxmPWJbaF07ZiE9bnVsbCYma18oZCxlLGZyYShmKS5idWZmZXIpfX0sXy5Lcik7YjU9Xy5seihmdW5jdGlvbihhLGIsYyl7Yj1zXyhiKTtiIT1udWxsJiZiIT1udWxsJiYoXy5aeShhLGMsMCksXy5YeShhLmosYikpfSxfLkRyKTtjNT1fLmx6KGZ1bmN0aW9uKGEsYixjKXtqXyhhLGMsXy5zeChiKSl9LF8uTHIpOwpvdmE9TV8oZnVuY3Rpb24oYSxiLGMpe2I9TF8oXy5zeCxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWpfKGEsYyxiW2RdKX0sXy5Mcik7cHZhPV8ubHooZnVuY3Rpb24oYSxiLGMpe2I9Xy5zeChiKTtiIT1udWxsJiYoXy5aeShhLGMsNSksYT1hLmosYS5qLnB1c2goYj4+PjAmMjU1KSxhLmoucHVzaChiPj4+OCYyNTUpLGEuai5wdXNoKGI+Pj4xNiYyNTUpLGEuai5wdXNoKGI+Pj4yNCYyNTUpKX0sXy5Fcik7Xy5nPV8uZVYucHJvdG90eXBlO18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5lVih0aGlzLngsdGhpcy55KX07Xy5nLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uZVYmJih0aGlzPT1hPyEwOnRoaXMmJmE/dGhpcy54PT1hLngmJnRoaXMueT09YS55OiExKX07Xy5nLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5jZWlsKHRoaXMueCk7dGhpcy55PU1hdGguY2VpbCh0aGlzLnkpO3JldHVybiB0aGlzfTsKXy5nLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTtfLmcucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9O18uZy50cmFuc2xhdGU9ZnVuY3Rpb24oYSxiKXthIGluc3RhbmNlb2YgXy5lVj8odGhpcy54Kz1hLngsdGhpcy55Kz1hLnkpOih0aGlzLngrPU51bWJlcihhKSx0eXBlb2YgYj09PSJudW1iZXIiJiYodGhpcy55Kz1iKSk7cmV0dXJuIHRoaXN9O18uZy5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMueCo9YTt0aGlzLnkqPXR5cGVvZiBiPT09Im51bWJlciI/YjphO3JldHVybiB0aGlzfTsKdmFyIHF2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSxydmE9e3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjoxLHN0b3BQcm9wYWdhdGlvbjoxLHByZXZlbnRNb3VzZUV2ZW50OjEscHJldmVudE1hbmlwdWxhdGlvbjoxLHByZXZlbnREZWZhdWx0OjEsbGF5ZXJYOjEsbGF5ZXJZOjEsc2NyZWVuWDoxLHNjcmVlblk6MSxzY2FsZToxLHJvdGF0aW9uOjEsd2Via2l0TW92ZW1lbnRYOjEsd2Via2l0TW92ZW1lbnRZOjF9LGMwPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudHlwZT0iIjt0aGlzLnN0YXRlPXRoaXMuc291cmNlPXRoaXMuZGF0YT10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMudGFyZ2V0PW51bGw7dGhpcy5jaGFyQ29kZT10aGlzLmtleUNvZGU9MDt0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmN0cmxLZXk9dGhpcy5hbHRLZXk9ITE7dGhpcy5yb3RhdGlvbj10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPQowO3RoaXMuc2NhbGU9MTt0aGlzLmNoYW5nZWRUb3VjaGVzPXRoaXMudG91Y2hlcz1udWxsO3RyeXtpZihhPWF8fHdpbmRvdy5ldmVudCl7dGhpcy5ldmVudD1hO2ZvcihsZXQgZCBpbiBhKWQgaW4gcnZhfHwodGhpc1tkXT1hW2RdKTt0aGlzLnNjYWxlPWEuc2NhbGU7dGhpcy5yb3RhdGlvbj1hLnJvdGF0aW9uO3ZhciBiPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7YiYmYi5ub2RlVHlwZT09MyYmKGI9Yi5wYXJlbnROb2RlKTt0aGlzLnRhcmdldD1iO3ZhciBjPWEucmVsYXRlZFRhcmdldDtpZihjKXRyeXtjPWMubm9kZU5hbWU/YzpudWxsfWNhdGNoKGQpe2M9bnVsbH1lbHNlIHRoaXMudHlwZT09Im1vdXNlb3ZlciI/Yz1hLmZyb21FbGVtZW50OnRoaXMudHlwZT09Im1vdXNlb3V0IiYmKGM9YS50b0VsZW1lbnQpO3RoaXMucmVsYXRlZFRhcmdldD1jO3RoaXMuY2xpZW50WD1hLmNsaWVudFghPXZvaWQgMD9hLmNsaWVudFg6YS5wYWdlWDt0aGlzLmNsaWVudFk9YS5jbGllbnRZIT12b2lkIDA/CmEuY2xpZW50WTphLnBhZ2VZO3RoaXMua2V5Q29kZT1hLmtleUNvZGU/YS5rZXlDb2RlOmEud2hpY2g7dGhpcy5jaGFyQ29kZT1hLmNoYXJDb2RlfHwodGhpcy50eXBlPT0ia2V5cHJlc3MiP3RoaXMua2V5Q29kZTowKTt0aGlzLmFsdEtleT1hLmFsdEtleTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMuaj1hLnBhZ2VYO3RoaXMubz1hLnBhZ2VZfX1jYXRjaChkKXt9fXByZXZlbnREZWZhdWx0KCl7dGhpcy5ldmVudCYmKHRoaXMuZXZlbnQucmV0dXJuVmFsdWU9ITEsdGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCYmdGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCgpKX1zdG9wUHJvcGFnYXRpb24oKXt0aGlzLmV2ZW50JiYodGhpcy5ldmVudC5jYW5jZWxCdWJibGU9ITAsdGhpcy5ldmVudC5zdG9wUHJvcGFnYXRpb24mJnRoaXMuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkpfXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpe3RoaXMuZXZlbnQmJgoodGhpcy5ldmVudC5jYW5jZWxCdWJibGU9ITAsdGhpcy5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJnRoaXMuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX07Xy5IYShlMCxfLmFlKTtlMC5wcm90b3R5cGUuZ2E9ZnVuY3Rpb24oYSl7YS5qPT09dm9pZCAwJiZiMChhKTt2YXIgYj1hLmo7YS5vPT09dm9pZCAwJiZiMChhKTt0aGlzLmo9bmV3IF8uZVYoYixhLm8pfTsKZTAucHJvdG90eXBlLlU9ZnVuY3Rpb24oKXtpZih0aGlzLmope3ZhciBhPSgwLF8uZWwpKCk7aWYodGhpcy5CIT0wKXt2YXIgYj10aGlzLkksYz10aGlzLmosZD1iLngtYy54O2I9Yi55LWMueTtkPU1hdGguc3FydChkKmQrYipiKS8oYS10aGlzLkIpO3RoaXMub1t0aGlzLnZdPU1hdGguYWJzKChkLXRoaXMuRCkvdGhpcy5EKT4uNT8xOjA7Yj0wO2ZvcihjPTA7Yzw0O2MrKyliKz10aGlzLm9bY118fDA7Yj49MyYmdGhpcy5NKCk7dGhpcy5EPWR9dGhpcy5CPWE7dGhpcy5JPXRoaXMuajt0aGlzLnY9KHRoaXMudisxKSU0fX07ZTAucHJvdG90eXBlLmxhPWZ1bmN0aW9uKCl7d2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5oYSk7eXJhKHRoaXMuWil9Owp2YXIgdDM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPXZvaWQgMDt0aGlzLmo9ITE7YS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0IixiPT57Yi5wcmV2ZW50RGVmYXVsdCgpO3RoaXMubz1ifSk7YS5hZGRFdmVudExpc3RlbmVyKCJhcHBpbnN0YWxsZWQiLCgpPT57dGhpcy5qPSEwfSx7b25jZTohMH0pfX0sZjA9MCx1MD17bmV4dDoid25fcyIsYnJvd3NlOiJicl9zIixzZWFyY2g6InNyX3MiLHJlZWw6InJfd3JzIixwbGF5ZXI6InBzX3MifSxScmE9e25leHQ6InduX3IiLGJyb3dzZToiYnJfciIsc2VhcmNoOiJzcl9yIixyZWVsOiJyX3dyciIscGxheWVyOiJwc19yIn0sbTA9e30sczA9eydzY3JpcHRbbmFtZT0ic2NoZWR1bGVyL3NjaGVkdWxlciJdJzoic2oiLCdzY3JpcHRbbmFtZT0icGxheWVyL2Jhc2UiXSc6InBqIiwnbGlua1tyZWw9InByZWxvYWQiXVtuYW1lPSJwbGF5ZXIvZW1iZWQiXSc6InBlaiIsJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0id3d3LXBsYXllciJdJzoicGMiLAonbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJwbGF5ZXIvd3d3LXBsYXllciJdJzoicGMiLCdzY3JpcHRbbmFtZT0iZGVza3RvcF9wb2x5bWVyL2Rlc2t0b3BfcG9seW1lciJdJzoiZHBqIiwnbGlua1tyZWw9ImltcG9ydCJdW25hbWU9ImRlc2t0b3BfcG9seW1lciJdJzoiZHBoIiwnc2NyaXB0W25hbWU9Im1vYmlsZS1jMyJdJzoibWNqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGUtYzMiXSc6Im1jYyIsJ3NjcmlwdFtuYW1lPSJwbGF5ZXItcGxhc21hLWlhcy1waG9uZS9iYXNlIl0nOiJtY3BwaiIsJ3NjcmlwdFtuYW1lPSJwbGF5ZXItcGxhc21hLWlhcy10YWJsZXQvYmFzZSJdJzoibWNwdGoiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1pYXMiXSc6Im1jcGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1zdmctaWFzIl0nOiJtY3BzYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2NvcmVfbW9kIl0nOiJtYmNqIiwKJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0ibW9iaWxlX2JsYXplcl9jc3MiXSc6Im1iYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2xvZ2dlZF9pbl91c2Vyc19tb2QiXSc6Im1ibGl1aiIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2xvZ2dlZF9vdXRfdXNlcnNfbW9kIl0nOiJtYmxvdWoiLCdzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl9ub25jb3JlX21vZCJdJzoibWJuaiIsIiNwbGF5ZXJfY3NzIjoibWJwYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2Rlc2t0b3BwbGF5ZXJfbW9kIl0nOiJtYnBqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGVfYmxhemVyX3RhYmxldF9jc3MiXSc6Im1idGMiLCdzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl93YXRjaF9tb2QiXSc6Im1id2oiLCdzY3JpcHRbbmFtZT0iZW1iZWRfY2xpZW50Il0nOiJlY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9ImVtYmVkLXVpIl0nOiJlY2MifSwKWTE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0sWjE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0sejA9e30sZDU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7YT1hfHx7fTt2YXIgYj17fSxjPXt9O3RoaXMudXJsPWEudXJsfHwiIjt0aGlzLmFyZ3M9YS5hcmdzfHxVXyhiKTt0aGlzLmFzc2V0cz1hLmFzc2V0c3x8e307dGhpcy5hdHRycz1hLmF0dHJzfHxVXyhjKTt0aGlzLmZhbGxiYWNrPWEuZmFsbGJhY2t8fG51bGw7dGhpcy5mYWxsYmFja01lc3NhZ2U9YS5mYWxsYmFja01lc3NhZ2V8fG51bGw7dGhpcy5odG1sNT0hIWEuaHRtbDU7dGhpcy5kaXNhYmxlPWEuZGlzYWJsZXx8e307dGhpcy5sb2FkZWQ9ISFhLmxvYWRlZDt0aGlzLm1lc3NhZ2VzPWEubWVzc2FnZXN8fHt9fWNsb25lKCl7dmFyIGE9bmV3IGQ1O2ZvcihsZXQgYiBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYikpe2xldCBjPXRoaXNbYl07Xy54YShjKT09CiJvYmplY3QiP2FbYl09VV8oYyk6YVtiXT1jfXJldHVybiBhfX0sRjA9e30sYnNhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhLGIsYyxkKXtzdXBlcigpO3RoaXMucGxheWVySWQ9Yjt0aGlzLndlYlBsYXllckNvbnRleHRDb25maWc9ZDt0aGlzLkViPXZvaWQgMDt0aGlzLkZhPSExO3RoaXMuYXBpPXt9O3RoaXMuaGE9dGhpcy5CPW51bGw7dGhpcy5NPW5ldyBfLnRoO3RoaXMuaj17fTt0aGlzLlo9dGhpcy5vYT10aGlzLmVsZW1lbnRJZD10aGlzLk1hPXRoaXMuY29uZmlnPW51bGw7dGhpcy5VPSExO3RoaXMudj10aGlzLkQ9bnVsbDt0aGlzLnlhPXt9O3RoaXMuZmM9WyJvblJlYWR5Il07dGhpcy5sYXN0RXJyb3I9bnVsbDt0aGlzLlFhPU5hTjt0aGlzLkk9e307dGhpcy5nYT0wO3RoaXMubz10aGlzLnRhcmdldEVsZW1lbnQ9YTtFWih0aGlzLHRoaXMuTSk7STAodGhpcyk7Yz90aGlzLmdhPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxvYWROZXdWaWRlb0NvbmZpZyhjKX0sMCk6CmQmJihKMCh0aGlzKSxTMCh0aGlzKSl9Z2V0SWQoKXtyZXR1cm4gdGhpcy5wbGF5ZXJJZH1sb2FkTmV3VmlkZW9Db25maWcoYSl7aWYoIXRoaXMuaWEoKSl7dGhpcy5nYSYmKGNsZWFyVGltZW91dCh0aGlzLmdhKSx0aGlzLmdhPTApO3ZhciBiPWF8fHt9O2IgaW5zdGFuY2VvZiBkNXx8KGI9bmV3IGQ1KGIpKTt0aGlzLmNvbmZpZz1iO3RoaXMuc2V0Q29uZmlnKGEpO1MwKHRoaXMpO3RoaXMuaXNSZWFkeSgpJiZUMCh0aGlzKX19c2V0Q29uZmlnKGEpe3RoaXMuTWE9YTt0aGlzLmNvbmZpZz1QMChhKTtKMCh0aGlzKTt0aGlzLm9hfHwodGhpcy5vYT1VMCh0aGlzLHRoaXMuY29uZmlnLmFyZ3M/LmpzYXBpY2FsbGJhY2t8fCJvbllvdVR1YmVQbGF5ZXJSZWFkeSIpKTt0aGlzLmNvbmZpZy5hcmdzP3RoaXMuY29uZmlnLmFyZ3MuanNhcGljYWxsYmFjaz1udWxsOnRoaXMuY29uZmlnLmFyZ3M9e2pzYXBpY2FsbGJhY2s6bnVsbH07aWYodGhpcy5jb25maWc/LmF0dHJzKXthPXRoaXMuY29uZmlnLmF0dHJzOwpsZXQgYj1hLndpZHRoO2ImJnRoaXMubyYmKHRoaXMuby5zdHlsZS53aWR0aD1YXyhOdW1iZXIoYil8fGIpKTsoYT1hLmhlaWdodCkmJnRoaXMubyYmKHRoaXMuby5zdHlsZS5oZWlnaHQ9WF8oTnVtYmVyKGEpfHxhKSl9fWlzUmVhZHkoKXtyZXR1cm4gdGhpcy5GYX1hZGRFdmVudExpc3RlbmVyKGEsYil7dGhpcy5pYSgpO3ZhciBjPVUwKHRoaXMsYik7YyYmKF8uc2IodGhpcy5mYyxhKT49MHx8dGhpcy5qW2FdfHwoYj1hc2EodGhpcyxhKSx0aGlzLkImJnRoaXMuQihhLGIpKSx0aGlzLk0uc3Vic2NyaWJlKGEsYyksYT09PSJvblJlYWR5IiYmdGhpcy5pc1JlYWR5KCkmJnNldFRpbWVvdXQoKCk9PntjKHRoaXMuYXBpKX0sMCkpfXJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKXt0aGlzLmlhKCl8fChiPVUwKHRoaXMsYikpJiZ0aGlzLk0udW5zdWJzY3JpYmUoYSxiKX1nZXRQbGF5ZXJUeXBlKCl7cmV0dXJuIHRoaXMuWnx8KEwwKHRoaXMpPyJodG1sNSI6bnVsbCl9Z2V0TGFzdEVycm9yKCl7cmV0dXJuIHRoaXMubGFzdEVycm9yfWNhbmNlbCgpe3RoaXMuRCYmCkcwKFEwKHRoaXMpLHRoaXMuRCk7Y2xlYXJUaW1lb3V0KHRoaXMuUWEpO3RoaXMuVT0hMX1sYSgpe04wKHRoaXMpO2lmKHRoaXMudiYmdGhpcy5jb25maWcmJnRoaXMudi5kZXN0cm95KXRyeXt0aGlzLnYuZGVzdHJveSgpfWNhdGNoKGIpe3ZhciBhPW5ldyBfLlhqKCJQbGF5ZXJQcm94eSBlcnJvciBkdXJpbmcgZGlzcG9zYWwiLHtlcnJvcjpifSk7YS5sZXZlbD0iRVJST1IiO3Rocm93IGE7fXRoaXMueWE9bnVsbDtmb3IoYSBpbiB0aGlzLmopdGhpcy5qLmhhc093blByb3BlcnR5KGEpJiZkZWxldGUgdGhpcy5qW2FdO3RoaXMuTWE9dGhpcy5jb25maWc9dGhpcy5hcGk9bnVsbDtkZWxldGUgdGhpcy50YXJnZXRFbGVtZW50O2RlbGV0ZSB0aGlzLm87c3VwZXIubGEoKX19LFcwPXt9LHh0YT17U0M6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1VOS05PV04iLFBDOiJFTUJFRERFRF9QTEFZRVJfTU9ERV9ERUZBVUxUIixSQzoiRU1CRURERURfUExBWUVSX01PREVfUEZQIixRQzoiRU1CRURERURfUExBWUVSX01PREVfUEZMIn07dmFyIGgxPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoYSxiLGM9RXJyb3IoKSl7c3VwZXIoKTt0aGlzLmNvZGU9YTtiKz0iOiI7YyBpbnN0YW5jZW9mIEVycm9yPyh0aGlzLm1lc3NhZ2U9YitjLm1lc3NhZ2UsdGhpcy5zdGFjaz1jLnN0YWNrfHwiIik6KHRoaXMubWVzc2FnZT1iK1N0cmluZyhjKSx0aGlzLnN0YWNrPSIiKTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgZTE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy52bT1hO3RoaXMubz0ia2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCBmb2N1c2luIGZvY3Vzb3V0IHNlbGVjdCBjb3B5IGN1dCBwYXN0ZSBjaGFuZ2UgY2xpY2sgZGJsY2xpY2sgYXV4Y2xpY2sgcG9pbnRlcm92ZXIgcG9pbnRlcmRvd24gcG9pbnRlcnVwIHBvaW50ZXJtb3ZlIHBvaW50ZXJvdXQgZHJhZ2VudGVyIGRyYWdsZWF2ZSBkcmFnIGRyYWdlbmQgbW91c2VvdmVyIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW91dCB0b3VjaHN0YXJ0IHRvdWNoZW5kIHRvdWNobW92ZSB3aGVlbCIuc3BsaXQoIiAiKTt0aGlzLmo9dm9pZCAwO3RoaXMuQ2c9dGhpcy52bS5wO3RoaXMudj10aGlzLkloLmJpbmQodGhpcyk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBoc2EodGhpcykpfXNuYXBzaG90KGEpe3JldHVybiB0aGlzLnZtLnMoey4uLihhLktjJiZ7YzphLktjfSksCi4uLihhLllqJiZ7czphLllqfSksLi4uKGEueG4hPT12b2lkIDAmJntwOmEueG59KX0pfUloKGEpe3RoaXMudm0uZShhKX1CaShhLGIpe3JldHVybiB0aGlzLnZtLmMoYSxiLCExKX1WaCgpe3JldHVybiB0aGlzLnZtLmwoKX19O3ZhciBzdmE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLmhhPTF9c2hhcmUoKXtpZih0aGlzLmlhKCkpdGhyb3cgRXJyb3IoImplIik7dGhpcy5oYSsrO3JldHVybiB0aGlzfWRpc3Bvc2UoKXstLXRoaXMuaGF8fHN1cGVyLmRpc3Bvc2UoKX19O3ZhciB0dmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPWE7SzEoYSwiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIsbTEoIm1rIikpfXJlY29yZChhLGIpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy9mcnMiLGEsYil9aigpe3JldHVybiB0aGlzLm8uaigiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIpfX0sdXZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hO0sxKGEsIi9jbGllbnRfc3RyZWFtei9iZy93cmwiLG0xKCJtbiIpLGwxKCJhYyIpLGwxKCJzYyIpLG0xKCJyayIpLG0xKCJtayIpKX1yZWNvcmQoYSxiLGMsZCxlLGYpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy93cmwiLGEsYixjLGQsZSxmKX1qKCl7cmV0dXJuIHRoaXMuby5qKCIvY2xpZW50X3N0cmVhbXovYmcvd3JsIil9fSx2dmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy52PWE7TTEoYSwiL2NsaWVudF9zdHJlYW16L2JnL2VjIixtMSgiZW4iKSxtMSgibWsiKSl9byhhLGIpe08xKHRoaXMudiwKIi9jbGllbnRfc3RyZWFtei9iZy9lYyIsYSxiKX1qKCl7cmV0dXJuIHRoaXMudi5qKCIvY2xpZW50X3N0cmVhbXovYmcvZWMiKX19LHd2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm89YTtLMShhLCIvY2xpZW50X3N0cmVhbXovYmcvZWwiLG0xKCJlbiIpLG0xKCJtayIpKX1yZWNvcmQoYSxiLGMpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsYSxiLGMpfWooKXtyZXR1cm4gdGhpcy5vLmooIi9jbGllbnRfc3RyZWFtei9iZy9lbCIpfX0seHZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudj1hO00xKGEsIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiLGwxKCJlYyIpLG0xKCJtayIpKX1vKGEsYil7TzEodGhpcy52LCIvY2xpZW50X3N0cmVhbXovYmcvY2VjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiKX19LHl2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnY9YTtNMShhLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3NjIiwKbDEoImNzIiksbTEoIm1rIikpfW8oYSxiKXtPMSh0aGlzLnYsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jc2MiLGEsYil9aigpe3JldHVybiB0aGlzLnYuaigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2NzYyIpfX0senZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudj1hO00xKGEsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jdGF2IixtMSgiYXYiKSxtMSgibWsiKSl9byhhLGIpe08xKHRoaXMudiwiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiLGEsYil9aigpe3JldHVybiB0aGlzLnYuaigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiKX19LEF2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnY9YTtNMShhLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3dzYyIsbTEoInN1IiksbTEoIm1rIikpfW8oYSxiKXtPMSh0aGlzLnYsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIil9fSxCdmE9CmNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hO0sxKGEsIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixtMSgibWsiKSl9cmVjb3JkKGEsYil7dGhpcy5vLnJlY29yZCgiL2NsaWVudF9zdHJlYW16L2JnL29kL3AiLGEsYil9aigpe3JldHVybiB0aGlzLm8uaigiL2NsaWVudF9zdHJlYW16L2JnL29kL3AiKX19LEN2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm89YTtLMShhLCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIsbTEoImV0IiksbTEoIm1rIikpfXJlY29yZChhLGIsYyl7dGhpcy5vLnJlY29yZCgiL2NsaWVudF9zdHJlYW16L2JnL29kL24iLGEsYixjKX1qKCl7cmV0dXJuIHRoaXMuby5qKCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIpfX07dmFyIE1zYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgcnNhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LHExPVsxLDIsM107dmFyIG9zYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSxwMT1bMSwyLDNdO3ZhciBwc2E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIER2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgRXZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LGU1PVsxLDIsM107dmFyIG4xPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O24xLnByb3RvdHlwZS52PV8ucHooWzAsJDQsWzAsZTUsYTUsWzAsJDQsLTEsXy54el0sYTUsWzAsJDQsLTEsWjQsXy54el0sYTUsWzAsJDRdXSxsdmEsXy55eixbMCxfLnl6LFswLHExLG12YSxndmEsa3ZhXSxbMCxwMSxmdmEsZXZhLGE1LFswLF8ueXosWzAsVjQsWDRdXV1dLGl2YSxqdmFdKTt2YXIgRnZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBHdmE9Y2xhc3N7YXN5bmMgY29tcHJlc3MoYSl7dmFyIGI9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYz0obmV3IFJlc3BvbnNlKGIucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpO2I9Yi53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCBiLndyaXRlKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKSk7YXdhaXQgYi5jbG9zZSgpO3JldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBjKX1pc1N1cHBvcnRlZChhKXtyZXR1cm4gYTwxMDI0PyExOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQifX07dmFyIGY1PWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5pbnRlcnZhbE1zPWE7dGhpcy5jYWxsYmFjaz1iO3RoaXMuZW5hYmxlZD0hMTt0aGlzLmo9KCk9Pl8uRWEoKTt0aGlzLm89dGhpcy5qKCl9c2V0SW50ZXJ2YWwoYSl7dGhpcy5pbnRlcnZhbE1zPWE7dGhpcy50aW1lciYmdGhpcy5lbmFibGVkPyh0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpOnRoaXMudGltZXImJnRoaXMuc3RvcCgpfXN0YXJ0KCl7dGhpcy5lbmFibGVkPSEwO3RoaXMudGltZXJ8fCh0aGlzLnRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpY2soKX0sdGhpcy5pbnRlcnZhbE1zKSx0aGlzLm89dGhpcy5qKCkpfXN0b3AoKXt0aGlzLmVuYWJsZWQ9ITE7dGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCl9dGljaygpe2lmKHRoaXMuZW5hYmxlZCl7bGV0IGE9TWF0aC5tYXgodGhpcy5qKCktdGhpcy5vLDApO2E8dGhpcy5pbnRlcnZhbE1zKi44P3RoaXMudGltZXI9CnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpY2soKX0sdGhpcy5pbnRlcnZhbE1zLWEpOih0aGlzLnRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dm9pZCAwKSx0aGlzLmNhbGxiYWNrKCksdGhpcy5lbmFibGVkJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSl9ZWxzZSB0aGlzLnRpbWVyPXZvaWQgMH19O3ZhciBIdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIEl2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgSnZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1XaSgpe3JldHVybiBLXyh0aGlzKX19O3ZhciB0c2E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIHgxPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LHdzYT1TXyh4MSk7dmFyIEExPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciB0MT1bInBsYXRmb3JtIiwicGxhdGZvcm1WZXJzaW9uIiwiYXJjaGl0ZWN0dXJlIiwibW9kZWwiLCJ1YUZ1bGxWZXJzaW9uIl0sczE9bmV3IHgxLHUxPW51bGw7dmFyIHoxPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBLdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsNCl9fTt2YXIgZzU9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsMzcpfX07dmFyIEx2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSwxOSl9VWgoYSl7cmV0dXJuIENaKHRoaXMsMixhKX19O3ZhciBNdmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiPSExKXt0aGlzLnlkPWI7dGhpcy52PXRoaXMubG9jYWxlPW51bGw7dGhpcy5vPTA7dGhpcy5pc0ZpbmFsPSExO3RoaXMuaj1uZXcgTHZhO051bWJlci5pc0ludGVnZXIoYSkmJnRoaXMuai5VaChhKTtifHwodGhpcy5sb2NhbGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgibGFuZyIpKTt5MSh0aGlzLG5ldyB6MSl9VWgoYSl7dGhpcy5qLlVoKGEpO3JldHVybiB0aGlzfWJ1aWxkKGEsYj0wLGM9MCxkPW51bGwsZT0wLGY9MCl7aWYoIXRoaXMueWQpe3ZhciBoPXcxKHRoaXMpO3ZhciBrPW5ldyBKdmE7az1DWihrLDEsdGhpcy5vKTtrPV8ucXcoaywyLF8ueHcodGhpcy5pc0ZpbmFsKSk7Yz1fLnF3KGssMyxfLlB3KGM+MD9jOnZvaWQgMCkpO2U9Xy5xdyhjLDQsXy5QdyhlPjA/ZTp2b2lkIDApKTtmPV8ucXcoZSw1LF8uUHcoZj4wP2Y6dm9pZCAwKSk7ZT1mLkRhO2M9ZVtfLkFjXXwwO2Y9Xy5CYyhmLGMpP2Y6Xy4kYyhmLAplLGMpP18uYmQoZixlKTpuZXcgZi5jb25zdHJ1Y3RvcihfLlpjKGUsYywhMCkpO18uS3coaCwxMCxmKX1oPXRoaXMuai5jbG9uZSgpO2Y9RGF0ZS5ub3coKS50b1N0cmluZygpO2g9Xy5xdyhoLDQseV8oZikpO2E9YS5zbGljZSgpO2E9SF8oaCwzLGEpO2QmJihoPW5ldyBIdmEsZD1fLnF3KGgsMTMsXy5QdyhkKSksaD1uZXcgSXZhLGQ9Xy5LdyhoLDIsZCksaD1uZXcgS3ZhLGQ9Xy5LdyhoLDEsZCksZD1DWihkLDIsOSksXy5LdyhhLDE4LGQpKTtiJiZfLnF3KGEsMTQseV8oYikpO3JldHVybiBhfX07QjEucHJvdG90eXBlLnY9MDtCMS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLm89dGhpcy5qPXRoaXMuQjt0aGlzLnY9MH07dmFyIFU0PWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhLDgpfX0sTnZhPVNfKFU0KTt2YXIgaDU7aDU9bmV3IGR2YShjbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSk7dmFyIE92YT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmNvbXBvbmVudElkPSIiO3RoaXMuaj1bXTt0aGlzLlFhPSIiO3RoaXMucGFnZUlkPW51bGw7dGhpcy5FYj10aGlzLm9hPS0xO3RoaXMuTT10aGlzLmV4cGVyaW1lbnRJZHM9bnVsbDt0aGlzLmdhPXRoaXMuaGE9dGhpcy5JPXRoaXMuQj0wO3RoaXMuZmM9MTt0aGlzLnRpbWVvdXRNaWxsaXM9MDt0aGlzLnlhPSExO3RoaXMubG9nU291cmNlPWEubG9nU291cmNlO3RoaXMuU2Y9YS5TZnx8KCgpPT57fSk7dGhpcy52PW5ldyBNdmEoYS5sb2dTb3VyY2UsYS55ZCk7dGhpcy5uZXR3b3JrPWEubmV0d29ya3x8bnVsbDt0aGlzLmxmPWEubGZ8fG51bGw7dGhpcy5idWZmZXJTaXplPTFFMzt0aGlzLlU9YS50Qnx8bnVsbDt0aGlzLnNlc3Npb25JbmRleD1hLnNlc3Npb25JbmRleHx8bnVsbDt0aGlzLlpnPWEuWmd8fCExO3RoaXMuWD1udWxsO3RoaXMud2l0aENyZWRlbnRpYWxzPSFhLm5sO3RoaXMueWQ9CmEueWR8fCExO3RoaXMuWj0hdGhpcy55ZCYmISFfLnpkKCkmJiEhXy56ZCgpLm5hdmlnYXRvciYmXy56ZCgpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuTWE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKEQxKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoRDEoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIGI9djEobmV3IHoxKTt5MSh0aGlzLnYsYik7dGhpcy5EPW5ldyBCMSgxRTQsM0U1LC4xKTthPXlzYSh0aGlzLGEuTm8pO3RoaXMubz1uZXcgZjUodGhpcy5ELmosYSk7dGhpcy5GYT1uZXcgZjUoNkU1LGEpO3RoaXMuWmd8fHRoaXMuRmEuc3RhcnQoKTt0aGlzLnlkfHwoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKCk9Pntkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIiYmRTEodGhpcyl9KSxfLnpkKCk/LmFkZEV2ZW50TGlzdGVuZXI/LigicGFnZWhpZGUiLCgpPT4Ke0UxKHRoaXMpfSkpfWxhKCl7RTEodGhpcyk7dGhpcy5vLnN0b3AoKTt0aGlzLkZhLnN0b3AoKTtzdXBlci5sYSgpfWRpc3BhdGNoKGEpe2lmKGEgaW5zdGFuY2VvZiBnNSl0aGlzLmxvZyhhKTtlbHNlIHRyeXt2YXIgYj1uZXcgZzUsYz1hLnNlcmlhbGl6ZSgpO3ZhciBkPUJaKGIsOCxjKTt0aGlzLmxvZyhkKX1jYXRjaHt9fWxvZyhhKXtpZih0aGlzLk1hKXthPWEuY2xvbmUoKTt2YXIgYj10aGlzLmZjKys7YT1fLnF3KGEsMjEseV8oYikpO3RoaXMuY29tcG9uZW50SWQmJkJaKGEsMjYsdGhpcy5jb21wb25lbnRJZCk7Yj1hO3t2YXIgYz1fLmVkKGIsMSk7bGV0IGQ9dHlwZW9mIGM7Yz1jPT1udWxsP2M6ZD09PSJiaWdpbnQiP1N0cmluZygoMCxfLnRyKSg2NCxjKSk6cl8oYyk/ZD09PSJzdHJpbmciP3VfKGMpOnZfKGMpOnZvaWQgMH1jPT1udWxsJiYoYz1EYXRlLm5vdygpLGM9TnVtYmVyLmlzRmluaXRlKGMpP2MudG9TdHJpbmcoKToiMCIsXy5xdyhiLDEseV8oYykpKTtjPV8uZWQoYiwKMTUsdm9pZCAwLHZvaWQgMCx6Xyk7YyE9bnVsbCYmKHR5cGVvZiBjPT09ImJpZ2ludCI/KDAsXy5NYykoYyk/Yz1OdW1iZXIoYyk6KGM9KDAsXy50cikoNjQsYyksYz0oMCxfLk1jKShjKT9OdW1iZXIoYyk6U3RyaW5nKGMpKTpjPXJfKGMpP3R5cGVvZiBjPT09Im51bWJlciI/dl8oYyk6dV8oYyk6dm9pZCAwKTtjPT1udWxsJiZfLnF3KGIsMTUseV8oKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKjYwKSk7dGhpcy5leHBlcmltZW50SWRzJiYoYz10aGlzLmV4cGVyaW1lbnRJZHMuY2xvbmUoKSxfLkt3KGIsMTYsYykpO2I9dGhpcy5qLmxlbmd0aC10aGlzLmJ1ZmZlclNpemUrMTtiPjAmJih0aGlzLmouc3BsaWNlKDAsYiksdGhpcy5CKz1iKTt0aGlzLmoucHVzaChhKTt0aGlzLlpnfHx0aGlzLm8uZW5hYmxlZHx8dGhpcy5vLnN0YXJ0KCl9fWZsdXNoKGEsYil7aWYodGhpcy5qLmxlbmd0aD09PTApYSYmYSgpO2Vsc2UgaWYodGhpcy55YSYmdGhpcy5aKXRoaXMudi5vPTMsQXNhKHRoaXMpOwplbHNle3ZhciBjPURhdGUubm93KCk7aWYodGhpcy5FYj5jJiZ0aGlzLm9hPGMpYiYmYigidGhyb3R0bGVkIik7ZWxzZXt0aGlzLm5ldHdvcmsmJih0eXBlb2YgdGhpcy5uZXR3b3JrLldpPT09ImZ1bmN0aW9uIj92c2EodGhpcy52LHRoaXMubmV0d29yay5XaSgpKTp0aGlzLnYubz0wKTt2YXIgZD10aGlzLnYuYnVpbGQodGhpcy5qLHRoaXMuQix0aGlzLkksdGhpcy5sZix0aGlzLmhhLHRoaXMuZ2EpLGU9dGhpcy5TZigpO2lmKGUmJnRoaXMuUWE9PT1lKWImJmIoInN0YWxlLWF1dGgtdG9rZW4iKTtlbHNle3RoaXMuaj1bXTt0aGlzLm8uZW5hYmxlZCYmdGhpcy5vLnN0b3AoKTt0aGlzLkI9MDtjPWQuc2VyaWFsaXplKCk7bGV0IGY7dGhpcy5NJiZ0aGlzLk0uaXNTdXBwb3J0ZWQoYy5sZW5ndGgpJiYoZj10aGlzLk0uY29tcHJlc3MoYykpO2xldCBoPUJzYSh0aGlzLGMsZSksaz1uPT57dGhpcy5ELnJlc2V0KCk7dGhpcy5vLnNldEludGVydmFsKHRoaXMuRC5qKTtpZihuKXt2YXIgcD0KbnVsbDt0cnl7dmFyIHI9SlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShuLnJlcGxhY2UoIildfSdcbiIsIiIpKSk7cD1OdmEocil9Y2F0Y2godil7fWlmKHApe249TnVtYmVyKElfKHAsMSxfLkZjKCItMSIpKSk7bj4wJiYodGhpcy5vYT1EYXRlLm5vdygpLHRoaXMuRWI9dGhpcy5vYStuKTtuPWg1Lmo7KHI9Xy5HYShfLkpjKSkmJnAuRGFbcl0/LltuXSE9bnVsbCYmXy54YyhfLmpyLDMpO249aDUuajtpZihfLkdhKF8ubHIpJiZfLkdhKF8uSmMpJiZ2b2lkIDA9PT1fLmxyKXtyPXAuRGE7dmFyIHQ9cltfLkpjXTtpZih0JiYodD10LkZLKSl0cnl7dChyLG4sY3ZhKX1jYXRjaCh2KXtfLiRiKHYpfX1wPWg1LmN0b3I/aDUubyhwLGg1LmN0b3IsaDUuaixoNS52KTpoNS5vKHAsaDUuaixudWxsLGg1LnYpO2lmKHA9cD09PW51bGw/dm9pZCAwOnApcD1fLnR4KHAsMSwtMSkscCE9PS0xJiYodGhpcy5EPW5ldyBCMShwPDE/MTpwLDNFNSwuMSksdGhpcy5vLnNldEludGVydmFsKHRoaXMuRC5qKSl9fWEmJgphKCk7dGhpcy5JPTB9LGw9KG4scCk9Pnt2YXIgcj1HXyhkLGc1LDMpO3ZhciB0PU51bWJlcihJXyhkLDE0KSk7QzEodGhpcy5EKTt0aGlzLm8uc2V0SW50ZXJ2YWwodGhpcy5ELmopO249PT00MDEmJmUmJih0aGlzLlFhPWUpO3QmJih0aGlzLkIrPXQpO3A9PT12b2lkIDAmJihwPXRoaXMuaXNSZXRyeWFibGUobikpO3AmJih0aGlzLmo9ci5jb25jYXQodGhpcy5qKSx0aGlzLlpnfHx0aGlzLm8uZW5hYmxlZHx8dGhpcy5vLnN0YXJ0KCkpO2ImJmIoIm5ldC1zZW5kLWZhaWxlZCIsbik7Kyt0aGlzLkl9LG09KCk9Pnt0aGlzLm5ldHdvcmsmJnRoaXMubmV0d29yay5zZW5kKGgsayxsKX07Zj9mLnRoZW4obj0+e2guT2pbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7aC5PalsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7aC5ib2R5PW47aC5HdT0yO20oKX0sKCk9PnttKCl9KTptKCl9fX19aXNSZXRyeWFibGUoYSl7cmV0dXJuIDUwMDw9YSYmYTw2MDB8fGE9PT00MDF8fAphPT09MH19O3ZhciBQdmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnB1PXR5cGVvZiBBYm9ydENvbnRyb2xsZXIhPT0idW5kZWZpbmVkIn1hc3luYyBzZW5kKGEsYixjKXt2YXIgZD10aGlzLnB1P25ldyBBYm9ydENvbnRyb2xsZXI6dm9pZCAwLGU9ZCYmYS50aW1lb3V0TWlsbGlzPjA/c2V0VGltZW91dCgoKT0+e2QuYWJvcnQoKX0sYS50aW1lb3V0TWlsbGlzKTp2b2lkIDA7dHJ5e2xldCBmPWF3YWl0IGZldGNoKGEudXJsLHttZXRob2Q6YS5yZXF1ZXN0VHlwZSxoZWFkZXJzOnsuLi5hLk9qfSwuLi4oYS5ib2R5JiZ7Ym9keTphLmJvZHl9KSwuLi4oYS53aXRoQ3JlZGVudGlhbHMmJntjcmVkZW50aWFsczoiaW5jbHVkZSJ9KSxzaWduYWw6YS50aW1lb3V0TWlsbGlzJiZkP2Quc2lnbmFsOm51bGx9KTtmLnN0YXR1cz09PTIwMD9iPy4oYXdhaXQgZi50ZXh0KCkpOmM/LihmLnN0YXR1cyl9Y2F0Y2goZil7c3dpdGNoKGY/Lm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOmM/Lig0MDgpO2JyZWFrO2RlZmF1bHQ6Yz8uKDQwMCl9fWZpbmFsbHl7Y2xlYXJUaW1lb3V0KGUpfX1XaSgpe3JldHVybiA0fX07dmFyIFMxPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5sb2dTb3VyY2U9MTgyODt0aGlzLnNlc3Npb25JbmRleD0iMCI7dGhpcy5OZT0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSI7dGhpcy5uZXR3b3JrPXRoaXMuYnVpbGRMYWJlbD1udWxsO3RoaXMuY29tcG9uZW50SWQ9IiI7dGhpcy5qPXRoaXMubGY9bnVsbDt0aGlzLm89ITE7dGhpcy5wYWdlSWQ9bnVsbDt0aGlzLmJ1ZmZlclNpemU9dm9pZCAwO3RoaXMuWD1udWxsfW5sKCl7dGhpcy52PSEwO3JldHVybiB0aGlzfWJ1aWxkKCl7dGhpcy5uZXR3b3JrfHwodGhpcy5uZXR3b3JrPW5ldyBQdmEpO3ZhciBhPW5ldyBPdmEoe2xvZ1NvdXJjZTp0aGlzLmxvZ1NvdXJjZSxTZjp0aGlzLlNmP3RoaXMuU2Y6Xy5QZCxzZXNzaW9uSW5kZXg6dGhpcy5zZXNzaW9uSW5kZXgsdEI6dGhpcy5OZSx5ZDohMSxaZzohMSxubDp0aGlzLnYsTm86dGhpcy5ObyxuZXR3b3JrOnRoaXMubmV0d29ya30pOwpFWih0aGlzLGEpO2lmKHRoaXMuYnVpbGRMYWJlbCl7dmFyIGI9dGhpcy5idWlsZExhYmVsLGM9dzEoYS52KTtCWihjLDcsYil9YS5NPW5ldyBHdmE7dGhpcy5jb21wb25lbnRJZCYmKGEuY29tcG9uZW50SWQ9dGhpcy5jb21wb25lbnRJZCk7dGhpcy5sZiYmKGEubGY9dGhpcy5sZik7dGhpcy5wYWdlSWQmJihhLnBhZ2VJZD10aGlzLnBhZ2VJZCk7dGhpcy5qJiYoKGM9dGhpcy5qKT8oYS5leHBlcmltZW50SWRzfHwoYS5leHBlcmltZW50SWRzPW5ldyBxdmEpLGI9YS5leHBlcmltZW50SWRzLGM9Yy5zZXJpYWxpemUoKSxCWihiLDQsYykpOmEuZXhwZXJpbWVudElkcyYmXy5xdyhhLmV4cGVyaW1lbnRJZHMsNCkpO3RoaXMubyYmKGEueWE9YS5aKTt4c2EoYS52KTt0aGlzLmJ1ZmZlclNpemUmJihhLmJ1ZmZlclNpemU9dGhpcy5idWZmZXJTaXplKTt0aGlzLm5ldHdvcmsuVWgmJnRoaXMubmV0d29yay5VaCh0aGlzLmxvZ1NvdXJjZSk7dGhpcy5uZXR3b3JrLmlBJiZ0aGlzLm5ldHdvcmsuaUEoYSk7CnJldHVybiBhfX07dmFyIE5zYT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmxvZ1NvdXJjZT0xODI4O3RoaXMuY29tcG9uZW50SWQ9IiI7YXx8KGE9bmV3IFMxLGEuY29tcG9uZW50SWQ9IiIsRVoodGhpcyxhKSxhPWEuYnVpbGQoKSk7dGhpcy5qPWF9Zmx1c2goYSl7YT1hfHxbXTtpZihhLmxlbmd0aCl7bGV0IGI9bmV3IEZ2YSxjPVtdO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtsZXQgZT1hW2RdLGY9cjEoZSk7Yy5wdXNoKGYpO2UuY2xlYXIoKX1IXyhiLDEsYyk7dGhpcy5qLmRpc3BhdGNoKGIpO3RoaXMuai5mbHVzaCgpfX19O3ZhciBIMT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19O3ZhciBpNT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5vPWE7dGhpcy52PWI7dGhpcy5maWVsZHM9Y3x8W107dGhpcy5qPW5ldyBNYXB9Y2xlYXIoKXt0aGlzLmouY2xlYXIoKX19O3ZhciBMMT1jbGFzcyBleHRlbmRzIGk1e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSwzLGIpfX07dmFyIEoxPWNsYXNzIGV4dGVuZHMgaTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhLDIsYil9cmVjb3JkKGEsLi4uYil7SHNhKHRoaXMsYSwuLi5iKX19O3ZhciBUMT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlo9YTt0aGlzLkk9MDt0aGlzLkI9MTAwO3RoaXMuTT0hMTt0aGlzLnY9bmV3IE1hcDt0aGlzLlU9bmV3IFNldDt0aGlzLmZsdXNoSW50ZXJ2YWw9M0U0O3RoaXMubz1uZXcgXy5qeSh0aGlzLmZsdXNoSW50ZXJ2YWwpO3RoaXMuby5saXN0ZW4oInRpY2siLHRoaXMuRCwhMSx0aGlzKTtFWih0aGlzLHRoaXMubyl9c2VuZElzb2xhdGVkUGF5bG9hZChhKXt0aGlzLk09YTt0aGlzLkI9MX1EKCl7dmFyIGE9Wy4uLnRoaXMudi52YWx1ZXMoKV0uZmlsdGVyKGI9PmIuai5zaXplKTthLmxlbmd0aCYmdGhpcy5aLmZsdXNoKGEsdGhpcy5NKTtLc2EoYSk7dGhpcy5JPTA7dGhpcy5vLmVuYWJsZWQmJnRoaXMuby5zdG9wKCl9aihhKXtyZXR1cm4gdGhpcy5VLmhhcyhhKT92b2lkIDA6dGhpcy52LmdldChhKX1yZWNvcmQoYSxiLC4uLmMpeyhhPXRoaXMuaihhKSkmJmEgaW5zdGFuY2VvZiBKMSYmKGEucmVjb3JkKGIsCi4uLmMpLE4xKHRoaXMpKX19O3ZhciBzMj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYik7dGhpcy5jb2RlPWE7dGhpcy5tZXRhZGF0YT17fTt0aGlzLm5hbWU9IlJwY0Vycm9yIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9dG9TdHJpbmcoKXt2YXIgYT1gUnBjRXJyb3IoJHtMc2EodGhpcy5jb2RlKXx8U3RyaW5nKHRoaXMuY29kZSl9KWA7dGhpcy5tZXNzYWdlJiYoYSs9IjogIit0aGlzLm1lc3NhZ2UpO3JldHVybiBhfX07dmFyIERzYT1jbGFzc3tzZW5kKGEsYj0oKT0+e30sYz0oKT0+e30pe18ubHkoYS51cmwsZD0+e2Q9ZC50YXJnZXQ7aWYoZC5pc1N1Y2Nlc3MoKSl7dHJ5e3ZhciBlPWQucmE/ZC5yYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goZil7ZT0iIn1iKGUpfWVsc2UgYyhfLlJ4KGQpKX0sYS5yZXF1ZXN0VHlwZSxhLmJvZHksYS5PaixhLnRpbWVvdXRNaWxsaXMsYS53aXRoQ3JlZGVudGlhbHMpfVdpKCl7cmV0dXJuIDF9fTt2YXIgajU9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLlg9YTt0aGlzLmV2ZW50PWI7dGhpcy5zdGFydFRpbWU9UTEoKX1kb25lKCl7dGhpcy5YLnYodGhpcy5ldmVudCxRMSgpLXRoaXMuc3RhcnRUaW1lKX19LGs1PWNsYXNzIGV4dGVuZHMgc3Zhe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKX19LFNzYT1jbGFzcyBleHRlbmRzIGs1e0IoKXt9aigpe312KCl7fUpiKCl7fU0oKXt9SSgpe31vKCl7fVooKXt9RCgpe31VKCl7fX0sUXZhPWNsYXNzIGV4dGVuZHMgazV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlg9YTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIHRoaXMuWC5kaXNwb3NlKCkpfXVwZGF0ZShhKXt0aGlzLlguZGlzcG9zZSgpO3RoaXMuWD1hfWooYSl7dGhpcy5YLmooYSl9dihhLGIpe3RoaXMuWC52KGEsYil9SmIoYSl7dGhpcy5YLkpiKGEpfU0oYSl7dGhpcy5YLk0oYSl9SShhLGIpe3RoaXMuWC5JKGEsYil9bygpe3RoaXMuWC5vKCl9WihhKXt0aGlzLlguWihhKX1EKGEpe3RoaXMuWC5EKGEpfVUoYSl7dGhpcy5YLlUoYSl9QihhKXt0aGlzLlguQihhKX19LApSdmE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoKTt0aGlzLmNhbGxiYWNrPWE7dGhpcy5vPWI7dGhpcy5qPS1iO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpKX19LFN2YT1jbGFzcyBleHRlbmRzIGs1e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoKTt0aGlzLm1ldHJpY3M9YTt0aGlzLm1iPWJ9QihhKXt0aGlzLm1ldHJpY3MuQUEucmVjb3JkKGEsdGhpcy5tYil9aihhKXt0aGlzLm1ldHJpY3MuZXZlbnRDb3VudC5vKGEsdGhpcy5tYil9dihhLGIpe3RoaXMubWV0cmljcy5Odi5yZWNvcmQoYixhLHRoaXMubWIpfUpiKGEpe3RoaXMubWV0cmljcy5lcnJvckNvdW50Lm8oYSx0aGlzLm1iKX1aKGEpe3RoaXMubWV0cmljcy5KQi5vKGEsdGhpcy5tYil9RChhKXt0aGlzLm1ldHJpY3MuSnUubyhhLHRoaXMubWIpfVUoYSl7dGhpcy5tZXRyaWNzLklCLm8oYSx0aGlzLm1iKX1NKGEpe3RoaXMubWV0cmljcy5wYXlsb2FkU2l6ZS5yZWNvcmQoYSwKdGhpcy5tYil9SShhLGIpe3RoaXMubWV0cmljcy5YeS5yZWNvcmQoYixhLHRoaXMubWIpfX0sUXNhPWNsYXNzIGV4dGVuZHMgU3Zhe2NvbnN0cnVjdG9yKGEsYj1bXSl7dmFyIGM9e21iOmEubWJ8fCJfIix6bDphLnpsfHxbXSxubTphLm5tfDAsTmU6YS5OZSxGajphLkZqfHwoKCk9Pnt9KSxJZzphLklnfHwoKGUsZik9Pk9zYShlLGYsYy5GaixjLk5lKSl9LGQ9Yy5JZygiNTMiLGMuemwuY29uY2F0KGIpKTtzdXBlcih7QUE6bmV3IHR2YShkKSxlcnJvckNvdW50Om5ldyB4dmEoZCksZXZlbnRDb3VudDpuZXcgdnZhKGQpLE52Om5ldyB3dmEoZCkseUw6bmV3IHV2YShkKSxKQjpuZXcgeXZhKGQpLEp1Om5ldyB6dmEoZCksSUI6bmV3IEF2YShkKSxwYXlsb2FkU2l6ZTpuZXcgQnZhKGQpLFh5Om5ldyBDdmEoZCl9LGMubWIpO3RoaXMub3B0aW9ucz1jO3RoaXMuc2VydmljZT1kO3RoaXMub2E9IWEuSWc7dGhpcy5nYT1uZXcgUnZhKCgpPT52b2lkIHRoaXMuc2VydmljZS5EKCksYy5ubSk7CnRoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9Pnt0aGlzLmdhLmRpc3Bvc2UoKTt0aGlzLm9hJiZ0aGlzLnNlcnZpY2UuZGlzcG9zZSgpfSk7Yi5zbGljZSgpLnNvcnQobHJhKX1vKCl7UHNhKHRoaXMuZ2EpfX07dmFyIFIyPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhLDAsUjIubWVzc2FnZUlkKX19LFR2YT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DYyhiPT5iIGluc3RhbmNlb2YgYSYmIV8uQmMoYikpfShSMik7UjIubWVzc2FnZUlkPSJiZmtqIjt2YXIgaTE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIGw1PWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LFV2YT1TXyhsNSk7dmFyIGQyPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMudj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjAwKTt0aGlzLmo9bmV3IGw1O2lmKCJjaGFsbGVuZ2UiaW4gYSYmVHZhKGEuY2hhbGxlbmdlKSl7dmFyIGI9Sl8oYS5jaGFsbGVuZ2UsNCx2b2lkIDAsXy53eik7dmFyIGM9Sl8oYS5jaGFsbGVuZ2UsNSx2b2lkIDAsXy53eik7Sl8oYS5jaGFsbGVuZ2UsNyx2b2lkIDAsXy53eikmJih0aGlzLmo9VXZhKEpfKGEuY2hhbGxlbmdlLDcsdm9pZCAwLF8ud3opKSl9ZWxzZSh7cHJvZ3JhbTpiLGdsb2JhbE5hbWU6Y309YSk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjayhhc3luYygpPT57dmFyIHt1QTpufT1hd2FpdCB0aGlzLm87bj8uKCl9KTt0aGlzLlg9VTEoYS5uZ3x8e30sdGhpcy5qKTtFWih0aGlzLHRoaXMuWCk7dmFyIGQ9bmV3IF8uY3M7dGhpcy5vPWQucHJvbWlzZTt0aGlzLlguaigidCIpO3ZhciBlPXRoaXMuWC5zaGFyZSgpLGY9bmV3IGo1KGUsCiJ0IiksaD0obixwLHIsdCk9PntpZighdGhpcy5YLmlhKCkpe3ZhciB2PSJrIjtwP3Y9ImgiOnImJih2PSJ1Iik7diE9PSJrIj90IT09MCYmKHRoaXMuWC5qKHYpLHRoaXMuWC52KHYsbikpOnRoaXMudjw9MD8odGhpcy5YLmoodiksdGhpcy5YLnYodixuKSx0aGlzLnY9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwMCkpOnRoaXMudi0tfX0saz0obixwLHIsdCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57Zi5kb25lKCk7ZS5vKCk7ZS5kaXNwb3NlKCk7ZC5yZXNvbHZlKHt5dTpuLHVBOnAsQXo6cixOdTp0fSl9KX0sbD1bKG4scCk9Pnt0aGlzLlgudihuLHApfSxuPT57dGhpcy5YLkpiKG4pfSxuPT57dGhpcy5YLk0obil9LChuLHApPT57dGhpcy5YLkkobixwKX1dO2lmKCFfLnVbY10pdGhyb3cgdGhpcy5YLkpiKDI1KSxFcnJvcigibmUiKTtpZighXy51W2NdLmEpdGhyb3cgdGhpcy5YLkpiKDI2KSxFcnJvcigib2UiKTt0cnl7bGV0IG49Xy51W2NdLmE7Yz1bXTtsZXQgcD0KW107dmFyIG09ajEodGhpcy5qKTtmb3IobGV0IHY9MDt2PG0ubGVuZ3RoO3YrKyljLnB1c2gobVt2XSkscC5wdXNoKDEpO2xldCByPWxzYSh0aGlzLmopO2ZvcihtPTA7bTxyLmxlbmd0aDttKyspYy5wdXNoKHJbbV0pLHAucHVzaCgyKTtsZXQgW3RdPW4oYixrLCEwLGEuRnMsaCxbYyxwXSxKXyh0aGlzLmosNSksITEsbCk7dGhpcy5CPXQ7dGhpcy5DZz1kLnByb21pc2UudGhlbigoKT0+e30pfWNhdGNoKG4pe3Rocm93IHRoaXMuWC5KYigyOCksbjt9fXNuYXBzaG90KGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLlguaigibiIpO3ZhciBiPXRoaXMuWC5zaGFyZSgpO3JldHVybiB0aGlzLm8udGhlbigoe3l1OmN9KT0+bmV3IFByb21pc2UoZD0+e3ZhciBlPW5ldyBqNShiLCJuIik7YyhmPT57ZS5kb25lKCk7Yi5CKGYubGVuZ3RoKTtiLm8oKTtiLmRpc3Bvc2UoKTtkKGYpfSxbYS5LYyxhLllqLGEuSXMsYS54bl0pfSkpfVhyKGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTsKdGhpcy5YLmooIm4iKTt2YXIgYj1SMSh0aGlzLlgsKCk9PnRoaXMuQihbYS5LYyxhLllqLGEuSXMsYS54bl0pLCJuIik7dGhpcy5YLkIoYi5sZW5ndGgpO3RoaXMuWC5vKCk7cmV0dXJuIGJ9SWgoYSl7dGhpcy5vLnRoZW4oKHtBejpifSk9PntiPy4oYSl9KX1CaShhLGIpe3JldHVybiB0aGlzLm8udGhlbigoe051OmN9KT0+Yz8uKGEsYiwhMSkpfVZoKCl7cmV0dXJuIHRoaXMuWC5zaGFyZSgpfX07dmFyIFYxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5wcm9taXNlcz17fTt0aGlzLmo9bnVsbH19O3ZhciBsdWE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIHEyPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMub3B0aW9ucz1hO3RoaXMuST1uZXcgXy5jczt0aGlzLkNnPXRoaXMuSS5wcm9taXNlO3RoaXMuRD1uZXcgXy5jczt0aGlzLlo9MTt0aGlzLnY9bmV3IF8uY3M7dGhpcy5CPVtdO3RoaXMuaXNQYXVzZWQ9ITE7dGhpcy5Haj1hLkdqfHwoKCk9Pnt9KTt0aGlzLlg9bmV3IFF2YShVMShhLm5nfHx7fSkpO2F0YSh0aGlzLGEub2QsYS5zeCxhLkhLLGEuTkssey4uLlZ2YSwuLi4oYS5MZ3x8e30pfSk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBidGEodGhpcykpfWFzeW5jIHNuYXBzaG90KGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLm98fHRoaXMuTXx8YXdhaXQgdGhpcy5ELnByb21pc2U7aWYodGhpcy5vKXJldHVybiBhd2FpdCB0aGlzLm8uc25hcHNob3QoYSk7dGhyb3cgdGhpcy5NO31wYXVzZSgpe3RoaXMuaWEoKXx8dGhpcy5pc1BhdXNlZHx8KHRoaXMuaXNQYXVzZWQ9CiEwLHRoaXMuaiYmdGhpcy5qLnBhdXNlKCkpfXJlc3VtZSgpeyF0aGlzLmlhKCkmJnRoaXMuaXNQYXVzZWQmJih0aGlzLmlzUGF1c2VkPSExLHRoaXMuaiYmdGhpcy5qLnJlc3VtZSgpKX1hc3luYyBjaGVja0ZvclJlZnJlc2goKXtpZih0aGlzLmlhKCkpdGhyb3cgRXJyb3IoInBlIik7aWYodGhpcy5qKXt2YXIgYT10aGlzLmo7YS5pc0V4cGlyZWQoKT8oZzIoYSksYS5RaCgwKSxhPSEwKTphPSExO2EmJmF3YWl0IHRoaXMudi5wcm9taXNlfWVsc2UgYXdhaXQgdGhpcy52LnByb21pc2V9YXN5bmMgVSgpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLmo/Lm8oKTthd2FpdCB0aGlzLnYucHJvbWlzZX1JaChhKXt0aGlzLm8/LkloPy4oYSl9QmkoYSxiKXtyZXR1cm4gdGhpcy5vPy5CaT8uKGEsYik/P1Byb21pc2UucmVzb2x2ZSgpfWhhbmRsZUVycm9yKGEpe3RoaXMuaWEoKXx8KHRoaXMuTT1hLHRoaXMuRC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLkVqPy4oYSkpfVZoKCl7cmV0dXJuIHRoaXMuWC5zaGFyZSgpfX0sClZ2YT17RnI6NDMyRTUsZWs6M0U1LGxzOjEwLGF2OjFFNCxWdjozRTQscXk6M0U0LG1BOjZFNCxLdjoxRTMsSnY6NkU0LEx2OjZFNSxNdjouMjUsSXY6MixtYXhBdHRlbXB0czoxMH0sYzI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuZW5kVGltZU1zPTA7dGhpcy5qPW51bGw7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLnRpY2s9KCk9PntpZighdGhpcy5pc1BhdXNlZCl7dmFyIGQ9dGhpcy5lbmRUaW1lTXMtRGF0ZS5ub3coKTtkPD10aGlzLnY/KHRoaXMuaj1udWxsLHRoaXMuUWgoMCkpOnRoaXMuaj1zZXRUaW1lb3V0KHRoaXMudGljayxNYXRoLm1pbihkLHRoaXMuZWspKX19O3RoaXMuZWs9Yjt0aGlzLnY9Yzt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZD0+e3RoaXMuUWg9ZH0pO2N0YSh0aGlzLGEpfXBhdXNlKCl7dGhpcy5pc1BhdXNlZHx8KHRoaXMuaXNQYXVzZWQ9ITAsZzIodGhpcykpfXJlc3VtZSgpe3RoaXMuaXNQYXVzZWQmJih0aGlzLmlzUGF1c2VkPSExLHRoaXMudGljaygpKX1vKCl7ZzIodGhpcyk7CnRoaXMuZW5kVGltZU1zPTA7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLlFoKDEpfWlzRXhwaXJlZCgpe3JldHVybiBEYXRlLm5vdygpPnRoaXMuZW5kVGltZU1zfX07dmFyIGR0YT1NYXRoLmltdWw/PygoYSxiKT0+YSpifDApLGoyPVsxOTYsMjAwLDIyNCwxOF0sbTI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiPTAsYz1bXSl7dGhpcy5tYXhJdGVtcz1hO3RoaXMuaj1iO3RoaXMubz1jfXNlcmlhbGl6ZSgpe3JldHVybiBTdHJpbmcodGhpcy5qKSsiLCIrdGhpcy5vLmpvaW4oKX1yYihhLGIpe3ZhciBjPXZvaWQgMDtpZih0aGlzLm9bdGhpcy5qXSE9PWEpe2xldCBkPXRoaXMuby5pbmRleE9mKGEpO2QhPT0tMT8odGhpcy5vLnNwbGljZShkLDEpLGQ8dGhpcy5qJiZ0aGlzLmotLSx0aGlzLm8uc3BsaWNlKHRoaXMuaiwwLGEpKTooYz10aGlzLm9bdGhpcy5qXSx0aGlzLm9bdGhpcy5qXT1hKX10aGlzLmo9KHRoaXMuaisxKSV0aGlzLm1heEl0ZW1zO2E9aDIoImlVNXEtIU85QCQiLHRoaXMuc2VyaWFsaXplKCkpO2MmJmEmJmIoYyk7cmV0dXJuIGF9fSxpc2E9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLlg9Yjt0cnl7dmFyIGM9Z2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZSYmCiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtJiYhIWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSYmISFnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW19Y2F0Y2goZCl7Yz0hMX1jJiYodGhpcy5pbmRleD1ndGEoYSkpfWooYSxiLGMsZCl7dmFyIGU9dGhpcy5pbmRleD9SMSh0aGlzLlgsKCk9PmV0YSh0aGlzLmluZGV4LGsyKGEpLGIsYyxkKSwiVyIpOiJ1Ijt0aGlzLlguVShlKX1vKGEsYil7dmFyIFtjLGRdPXRoaXMuaW5kZXg/UjEodGhpcy5YLCgpPT5mdGEoazIoYSksYiksIlIiKTpbInUiXTt0aGlzLlguRChjKTtyZXR1cm4gZH19O3ZhciBtNT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlg9YTt0aGlzLnY9bmV3IF8uY3N9emooYSxiKXt2YXIgYz10aGlzLm9lKGEpO2I/LihjKTtyZXR1cm4gUjEodGhpcy5YLCgpPT5fLnNjKGMsMiksdGhpcy5vKX1zbShhLGIsYyl7cmV0dXJuIFIxKHRoaXMuWCwoKT0+Yj90aGlzLnpqKGEsYyk6dGhpcy5vZShhLGMpLHRoaXMuail9fSx1Mj1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYixjLGQpe3N1cGVyKGEpO3RoaXMuQj1iO3RoaXMuST1jO3RoaXMuaj0ibSI7dGhpcy5vPSJ4Ijt0aGlzLkQ9MDtuMih0aGlzLGQpfW9lKGEsYil7dGhpcy5YLmoodGhpcy5qKTsrK3RoaXMuRD49dGhpcy5JJiZ0aGlzLnYucmVzb2x2ZSgpO3ZhciBjPWEoKTthPVIxKHRoaXMuWCwoKT0+dGhpcy5CKGMpLCJDIik7aWYoYT09PXZvaWQgMCl0aHJvdyBuZXcgaDEoMTcsIllOSjpVbmRlZmluZWQiKTtpZighKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgaDEoMTgsCiJPRE06SW52YWxpZCIpO2I/LihhKTtyZXR1cm4gYX19LGx0YT1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYixjKXtzdXBlcihhKTt0aGlzLkI9Yjt0aGlzLmo9ImYiO3RoaXMubz0ieiI7bjIodGhpcyxjKX1vZSgpe3JldHVybiB0aGlzLkJ9fSxrdGE9Y2xhc3MgZXh0ZW5kcyBtNXtjb25zdHJ1Y3RvcihhLGIsYyl7c3VwZXIoYSk7dGhpcy5CPWI7dGhpcy5qPSJ3Ijt0aGlzLm89InoiO24yKHRoaXMsYyl9b2UoKXtyZXR1cm4gUjEodGhpcy5YLCgpPT5fLnVjKHRoaXMuQiksImQiKX16aigpe3JldHVybiB0aGlzLkJ9fSxydGE9Y2xhc3MgZXh0ZW5kcyBtNXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGEpO3RoaXMuZXJyb3I9Yjt0aGlzLmo9ImUiO3RoaXMubz0ieSJ9b2UoKXtpZih0aGlzLkIpcmV0dXJuIHRoaXMuQjt0aGlzLkI9cDIodGhpcyxhPT4iXyIrZXJhKGEpKTtyZXR1cm4gcDIodGhpcyxhPT5hKX19LHF0YT1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSk7CnRoaXMuY2xpZW50U3RhdGU9Yjt0aGlzLmo9IlMiO3RoaXMubz0icSJ9b2UoKXt2YXIgYT1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxiPVtNYXRoLnJhbmRvbSgpKjI1NSxNYXRoLnJhbmRvbSgpKjI1NV0sYz1iLmNvbmNhdChbMCx0aGlzLmNsaWVudFN0YXRlXSxbYT4+MjQmMjU1LGE+PjE2JjI1NSxhPj44JjI1NSxhJjI1NV0pO2E9bmV3IFVpbnQ4QXJyYXkoMitjLmxlbmd0aCk7YVswXT0zNDthWzFdPWMubGVuZ3RoO2Euc2V0KGMsMik7Yz1hLnN1YmFycmF5KDIpO2I9Yi5sZW5ndGg7Zm9yKGxldCBkPWI7ZDxjLmxlbmd0aDsrK2QpY1tkXV49Y1tkJWJdO3RoaXMuWC5aKHRoaXMuY2xpZW50U3RhdGUpO3JldHVybiBhfX07dmFyIFd2YT17V3Y6M0U0LEJBOjJFNH0scnVhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMueWc9bmV3IF8uY3M7dGhpcy52PTA7dGhpcy5vPXZvaWQgMDt0aGlzLnN0YXRlPTI7dGhpcy52bT1hLnZtO3RoaXMub2Q9YS5vZDt0aGlzLkxnPXsuLi5XdmEsLi4uKGEuTGd8fHt9KX07dGhpcy5YPWEudm0uVmgoKTt0aGlzLm9uRXJyb3I9YS5vbkVycm9yPz8oKCk9Pnt9KTt0aGlzLlFuPWEuUW58fCExO2lmKFh2YShhKSl7bGV0IGQ9dGhpcy52bTt0aGlzLkI9KCk9PmQuVSgpLmNhdGNoKGU9Pnt0aGlzLm89ZT10aGlzLnJlcG9ydEVycm9yKG5ldyBoMSh0aGlzLmo/MjA6MzIsIlRSRzpEaXNwb3NlZCIsZSkpO3RoaXMuaj8uZGlzcG9zZSgpO3RoaXMuaj12b2lkIDA7dGhpcy55Zy5yZWplY3QoZSl9KTtmMihkLCgpPT52b2lkIHQyKHRoaXMpKTtkLlo9PT0yJiZ0Mih0aGlzKX1lbHNlIHRoaXMuQj1hLmlLLHQyKHRoaXMpO3ZhciBiPXRoaXMuWC5zaGFyZSgpOwpiLmooIm8iKTt2YXIgYz1uZXcgajUoYiwibyIpO3RoaXMueWcucHJvbWlzZS50aGVuKCgpPT57Yy5kb25lKCk7Yi5vKCk7Yi5kaXNwb3NlKCl9LCgpPT52b2lkIGIuZGlzcG9zZSgpKTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy5qPyh0aGlzLmouZGlzcG9zZSgpLHRoaXMuaj12b2lkIDApOnRoaXMubz90aGlzLlgubygpOih0aGlzLm89dGhpcy5yZXBvcnRFcnJvcihuZXcgaDEoMzIsIlROUDpEaXNwb3NlZCIpKSx0aGlzLlgubygpLHRoaXMueWcucmVqZWN0KHRoaXMubykpfSk7RVoodGhpcyx0aGlzLlgpfW9lKGEpe3JldHVybiB3Mih0aGlzLHsuLi5hfSwhMSl9emooYSl7cmV0dXJuIHcyKHRoaXMsey4uLmF9LCEwKX1yZXBvcnRFcnJvcihhKXt0aGlzLlguSmIoYS5jb2RlKTt0aGlzLm9uRXJyb3IoYSk7cmV0dXJuIGF9fSxYdmE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2MoYj0+e2lmKCEoMCxfLnFyKShiKSlyZXR1cm4hMTtmb3IobGV0IFtjLGRdb2YgT2JqZWN0LmVudHJpZXMoYSkpe2xldCBlPQpjLGY9ZDtpZighKGUgaW4gYikpe2lmKGYuQko9PT0hMCljb250aW51ZTtyZXR1cm4hMX1pZighZihiW2VdKSlyZXR1cm4hMX1yZXR1cm4hMH0pfSh7dm06ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2MoYj0+YiBpbnN0YW5jZW9mIGEpfShxMil9LCIiKTt2YXIgWnZhPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYoIW41KXtuNT1uZXcgVDEobmV3IFl2YSk7dmFyIGE9Xy5zaigiY2xpZW50X3N0cmVhbXpfd2ViX2ZsdXNoX2NvdW50IiwtMSk7YSE9PS0xJiYobjUuQj1hKX10aGlzLnY9YT1uNTtNMShhLCIvY2xpZW50X3N0cmVhbXoveW91dHViZS9hYmEvZ2FjIixsMSgidHlwZSIpLGwxKCJzZXF1ZW5jZSIpKX1vKGEsYil7TzEodGhpcy52LCIvY2xpZW50X3N0cmVhbXoveW91dHViZS9hYmEvZ2FjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiKX19O3ZhciBtdWE9U18oY2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0pO3ZhciAkdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIG81PVswLHB2YSwtMV07dmFyIHA1PVswLGh2YSwtMV07dmFyIGF3YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgYndhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1oYXNBdHRyaWJ1dGVzKCl7dmFyIGE9dGhpcy5EYTtyZXR1cm4gXy5NeChhLGFbXy5BY118MCxhd2EsMTkpIT09dm9pZCAwfX07dmFyIGN3YT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+Xy5veihiLGEpfShbMCxjNSwtMSxYNCwkNCxvNSwtMSxXNCxaNCxjNSxwNSwkNCxjNSwtMSxbMCxvNSwtMV0sWjQsWTQscDUsVzQsWzAsMSxaNCwtNCxWNCxbMCxXNCwtMSxaNF0sJDQsVzQsXy55eixbMCxjNSxaNF0sWjQsLTEsYzUsLTIsVzQsLTEsYzUsVzQsYzUsWjQsWzAsMyxaNCwtMSw0LG52YV0sVjQsYjUsWzAsYzUsLTEsJDRdLF8ueHpdLCQ0LG92YSxfLnl6LFswLHA1LF8ueXosWzAsJDQsYzVdLFc0LGM1LC0xXSwxLF8ueXosWzAsWTQsLTEsYjVdLGM1LHA1XSk7ejIucHJvdG90eXBlLmlzSW5wdXRWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkIhPTN9O3oyLnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQj09PTJ9Owp6Mi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe2Zvcig7cDxhLmxlbmd0aDspaWYoeTIoYVtwXSkpcCsrLGYudisrO2Vsc2UgYnJlYWs7cmV0dXJuIHA8bH1mdW5jdGlvbiBjKCl7Zm9yKHZhciB0Ozspe3Q9YVtwKytdO2lmKCF0KWJyZWFrO2YudisrO3N3aXRjaChmLmope2Nhc2UgMDp0PT09InsiP2Yuaj0yOnQ9PT0iWyI/Zi5qPTQ6eTIodCl8fEEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDc6Y2FzZSAyOmlmKHkyKHQpKWNvbnRpbnVlO2lmKGYuaj09PTcpaC5wdXNoKDgpO2Vsc2UgaWYodD09PSJ9Iil7ZSgie30iKTtmLmo9ZCgpO2NvbnRpbnVlfWVsc2UgaC5wdXNoKDMpO3Q9PT0nIic/Zi5qPTY6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgODpjYXNlIDM6aWYoeTIodCkpY29udGludWU7dD09PSI6Ij8oZi5qPT09MyYmKGgucHVzaCgzKSxmLm8rKyksZi5qPTEpOnQ9PT0ifSI/KGYuby0tLGUoKSxmLmo9ZCgpKTp0PT09IiwiPyhmLmo9PT0zJiZoLnB1c2goMyksCmYuaj03KTpBMihmLGEscCk7Y29udGludWU7Y2FzZSA0OmNhc2UgMTppZih5Mih0KSljb250aW51ZTtpZihmLmo9PT00KWlmKGYubysrLGYuaj0xLHQ9PT0iXSIpe2Yuby0tO2lmKGYubz09PTApe2Yuaj01O3JldHVybn1lKCJbXSIpO2Yuaj1kKCk7Y29udGludWV9ZWxzZSBoLnB1c2goNSk7dD09PSciJz9mLmo9Njp0PT09InsiP2Yuaj0yOnQ9PT0iWyI/Zi5qPTQ6dD09PSJ0Ij9mLmo9OTp0PT09ImYiP2Yuaj0xMjp0PT09Im4iP2Yuaj0xNjp0IT09Ii0iJiYoIjAxMjM0NTY3ODkiLmluZGV4T2YodCkhPT0tMT9mLmo9MjA6QTIoZixhLHApKTtjb250aW51ZTtjYXNlIDU6aWYodD09PSIsIiloLnB1c2goNSksZi5qPTEsZi5vPT09MSYmKG49cCk7ZWxzZSBpZih0PT09Il0iKXtmLm8tLTtpZihmLm89PT0wKXJldHVybjtlKCk7Zi5qPWQoKX1lbHNlIGlmKHkyKHQpKWNvbnRpbnVlO2Vsc2UgQTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgNjpsZXQgdj1wO2E6Zm9yKDs7KXtmb3IoO2YuSz4wOylpZih0PQphW3ArK10sZi5LPT09ND9mLks9MDpmLksrKywhdClicmVhayBhO2lmKHQ9PT0nIicmJiFmLkQpe2Yuaj1kKCk7YnJlYWt9aWYodD09PSJcXCImJiFmLkQmJihmLkQ9ITAsdD1hW3ArK10sIXQpKWJyZWFrO2lmKGYuRClpZihmLkQ9ITEsdD09PSJ1IiYmKGYuSz0xKSx0PWFbcCsrXSljb250aW51ZTtlbHNlIGJyZWFrO2subGFzdEluZGV4PXA7dD1rLmV4ZWMoYSk7aWYoIXQpe3A9YS5sZW5ndGgrMTticmVha31wPXQuaW5kZXgrMTt0PWFbdC5pbmRleF07aWYoIXQpYnJlYWt9Zi52Kz1wLXY7Y29udGludWU7Y2FzZSA5OmlmKCF0KWNvbnRpbnVlO3Q9PT0iciI/Zi5qPTEwOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDEwOmlmKCF0KWNvbnRpbnVlO3Q9PT0idSI/Zi5qPTExOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDExOmlmKCF0KWNvbnRpbnVlO3Q9PT0iZSI/Zi5qPWQoKTpBMihmLGEscCk7Y29udGludWU7Y2FzZSAxMjppZighdCljb250aW51ZTt0PT09ImEiP2Yuaj0xMzpBMihmLGEsCnApO2NvbnRpbnVlO2Nhc2UgMTM6aWYoIXQpY29udGludWU7dD09PSJsIj9mLmo9MTQ6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgMTQ6aWYoIXQpY29udGludWU7dD09PSJzIj9mLmo9MTU6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgMTU6aWYoIXQpY29udGludWU7dD09PSJlIj9mLmo9ZCgpOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE2OmlmKCF0KWNvbnRpbnVlO3Q9PT0idSI/Zi5qPTE3OkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE3OmlmKCF0KWNvbnRpbnVlO3Q9PT0ibCI/Zi5qPTE4OkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE4OmlmKCF0KWNvbnRpbnVlO3Q9PT0ibCI/Zi5qPWQoKTpBMihmLGEscCk7Y29udGludWU7Y2FzZSAxOTp0PT09Ii4iP2Yuaj0yMDpBMihmLGEscCk7Y29udGludWU7Y2FzZSAyMDppZigiMDEyMzQ1Njc4OS5lRSstIi5pbmRleE9mKHQpIT09LTEpY29udGludWU7ZWxzZSBwLS0sZi52LS0sZi5qPWQoKTtjb250aW51ZTtkZWZhdWx0OkEyKGYsYSxwKX19fQpmdW5jdGlvbiBkKCl7dmFyIHQ9aC5wb3AoKTtyZXR1cm4gdCE9bnVsbD90OjF9ZnVuY3Rpb24gZSh0KXtmLm8+MXx8KHR8fCh0PW49PT0tMT9mLkkrYS5zdWJzdHJpbmcobSxwKTphLnN1YnN0cmluZyhuLHApKSxmLlkucHVzaChKU09OLnBhcnNlKHQpKSxuPXApfWZvcih2YXIgZj10aGlzLGg9Zi5VLGs9Zi5aLGw9YS5sZW5ndGgsbT0wLG49LTEscD0wO3A8bDspc3dpdGNoKGYuQil7Y2FzZSAzOnJldHVybiBBMihmLGEscCksbnVsbDtjYXNlIDI6cmV0dXJuIGIoKSYmQTIoZixhLHApLG51bGw7Y2FzZSAwOmlmKGIoKSl7dmFyIHI9YVtwKytdO2YudisrO2lmKHI9PT0iWyIpe2YuQj0xO209cDtmLmo9NDtjb250aW51ZX1lbHNlIEEyKGYsYSxwKX1yZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIGMoKSxmLm89PT0wJiZmLmo9PTU/KGYuQj0yLGYuST1hLnN1YnN0cmluZyhwKSk6Zi5JPW49PT0tMT9mLkkrYS5zdWJzdHJpbmcobSk6YS5zdWJzdHJpbmcobiksZi5ZLmxlbmd0aD4wPyhyPWYuWSwKZi5ZPVtdLHIpOm51bGx9cmV0dXJuIG51bGx9O3ZhciBtcmE9e0dFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfVU5LTk9XTiIsQUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9GT1JfVEVTVElORyIsa0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVNVTUVfVE9fSE9NRV9UVEwiLHdFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU1RBUlRfVE9fU0hPUlRTX0FOQUxZU0lTX1NMSUNFIixvRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0RFVklDRV9MQVlFUl9TTElDRSIsRkU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9VTklGSUVEX0xBWUVSX1NMSUNFIixKRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1ZJU0lUT1JfTEFZRVJfU0xJQ0UiLHVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0hPV19TSEVFVF9DT01NQU5EX0hBTkRMRVJfQkxPQ0siLApNRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dJWl9ORVhUX01JR1JBVEVEX0NPTVBPTkVOVCIsTEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XSVpfTkVYVF9DSEFOTkVMX05BTUVfVE9PTFRJUCIscEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVElPTl9MT0NLX1NVUFBPUlRFRCIsekU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9USEVBVEVSX01PREVfRU5BQkxFRCIsU0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XT1VMRF9TSE9XX1BJTl9TVUdHRVNUSU9OIixSRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX1NIT1dfTE9OR19QUkVTU19FRFVfVE9BU1QiLFFFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfU0hPV19BTUJJRU5UIixBRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RJTUVfV0FUQ0hFRF9QQU5FTCIsCnJFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0VBUkNIX0ZST01fU0VBUkNIX0JBUl9PVkVSTEFZIixURToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX1NIT1dfVk9JQ0VfU0VBUkNIX0VEVV9UT0FTVCIseUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TVUdHRVNURURfTEFOR1VBR0VfU0VMRUNURUQiLFVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfVFJJR0dFUl9TSE9SVFNfUElQIixKRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lOX1pQX1ZPSUNFX0NSQVNIWV9TRVQiLGdFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9GQVNUX1NXSVBFX1NVUFBSRVNTRUQiLGZFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9GQVNUX1NXSVBFX0FMTE9XRUQiLGlFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9QVUxMX1RPX1JFRlJFU0hfQVRURU1QVCIsCk5FOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfQkxPQ0tfS0FCVUtJIixqRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1JFRUxfVEFMTF9TQ1JFRU4iLGhFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9OT1JNQUxfU0NSRUVOIixoRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0FDQ0VTU0lCSUxJVFlfTU9ERV9FTkFCTEVEIixnRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0FDQ0VTU0lCSUxJVFlfTU9ERV9ESVNBQkxFRCIsaUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9BVVRPUExBWV9FTkFCTEVEIixqRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0NBU1RfTUFUQ0hfT0NDVVJSRUQiLHREOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRU1DM0RTX0VMSUdJQkxFIix3RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VORFNDUkVFTl9UUklHR0VSRUQiLApkRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BPU1RQTEFZX1RSSUdHRVJFRCIsY0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9QT1NUUExBWV9MQUNUX1RIUkVTSE9MRF9FWENFRURFRCIsQ0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUSUVTX1NUQVRFX01BVENIRURfT05fUkVNT1RFX0NPTk5FQ1RJT04iLEVEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfSURFTlRJVElFU19TVEFURV9TV0lUQ0hBQkxFX09OX1JFTU9URV9DT05ORUNUSU9OIixERDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lERU5USVRJRVNfU1RBVEVfTUlTQVRUUklCVVRFRF9PTl9SRU1PVEVfQ09OTkVDVElPTiIsSEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUSUVTX1RWX0lTX1NJR05FRF9JTl9PTl9SRU1PVEVfQ09OTkVDVElPTiIsREU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9UVl9TVEFSVF9UWVBFX0NPTERfT05fUkVNT1RFX0NPTk5FQ1RJT04iLApFRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWX1NUQVJUX1RZUEVfTk9OX0NPTERfT05fUkVNT1RFX0NPTk5FQ1RJT04iLFlEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfT05fUkVNT1RFX0NPTk5FQ1RJT04iLG5EOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9WQUxJRCIsbEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9DT0JBTFRfUEVSU0lTVEVOVF9TRVRUSU5HU19URVNUX0lOVkFMSUQiLG1EOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9VTkRFRklORUQiLGtEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9ERUZJTkVEIixNRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0xBQ1RfVEhSRVNIT0xEX0VYQ0VFREVEIiwKcUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1VORF9UUklQX0hBTkRMSU5HX09OX1JFTU9URV9DT05ORUNUSU9OIixHRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lERU5USVRJRVNfU1RBVEVfU1dJVENIRURfT05fUkVNT1RFX0NPTk5FQ1RJT05fQkVGT1JFX0FQUF9SRUxPQUQiLEZEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfSURFTlRJVElFU19TVEFURV9TV0lUQ0hFRF9PTl9SRU1PVEVfQ09OTkVDVElPTl9BRlRFUl9BUFBfUkVMT0FEIix1RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQzNEU19JTkVMSUdJQkxFIixCRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWSFRNTDVfTUlEX1JPTExfVEhSRVNIT0xEX1JFQUNIRUQiLHlEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRVhQX0NPQkFMVF9IVFRQM19DT05GSUdfUEVORElORyIsCnhEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRVhQX0NPQkFMVF9IVFRQM19DT05GSUdfQUNUSVZBVEVEIix2RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQzNEU19NMl9FTElHSUJMRSIsbkU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVEVfREVWSUNFX1RPX0xBTkRTQ0FQRSIsb0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVEVfREVWSUNFX1RPX1BPUlRSQUlUIixzRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQkVEU19GQUNFT0ZGX1VJX0VWRU5UIix6RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VYUF9DT0JBTFRfSFRUUDNfQ09ORklHX1JFQ0VJVkVEIixyRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VMSUdJQkxFX1RPX1NVUFBSRVNTX1RSQU5TUE9SVF9DT05UUk9MU19CVVRUT05TIiwKSEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9VU0VSX0hBU19USEVBVEVSX01PREVfQ09PS0lFX0VOQUJMRUQiLHFEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRE9DVU1FTlRfUElDVFVSRV9JTl9QSUNUVVJFX1NVUFBPUlRFRCIsdEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TSE9SVFNfTk9OX0RFRkFVTFRfQVNQRUNUX1JBVElPIixiRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BMQVlFUl9JTl9TUVVFRVpFQkFDSyIsTkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9MSVZFX0NSRUFUT1JfQVJfR0lGVF9SRUNFSVZFRCIsbUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVRVUk5FRF9UT19WSURFT19BRlRFUl9GQUlMRURfQVRURU1QVF9UT19CQUNLR1JPVU5EIixPRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX0VOVEVSX0FVVE9fWk9PTSIsClpEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUEFTU0lWRV9JTl9DT05UUk9MIixhRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BBU1NJVkVfSU5fVFJFQVRNRU5UIixwRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0RJU0FCTEVfUExBWUVSX09QRU5fT05fRlVMTFNDUkVFTiIsVEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9NRFhfUkVDT05ORUNUX1dJVEhfUkVUUlkiLHZFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0lOR0xFX0NPTFVNTl9HUklEX1RSSUdHRVJFRCIsUEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9NRFhfQ09OTkVDVElPTl9USU1FT1VUIixPRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0xJVkVfR0hPU1RfTE9BRElOR19FTElHSUJMRSIseEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TVFJFQU1FRF9HRVRfV0FUQ0hfU1VQUE9SVEVEIiwKS0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XRUJWSUVXX0NPTlRBSU5FUiIsUEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XT1VMRF9FTlRFUl9QSVAiLGVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUFJFTUlVTV9MSVRFX1VQU0VMTF9FTElHSUJMRSIsVkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9PRkZMSU5FX1JFQ09WRVJZX0JST0FEIixYRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX09GRkxJTkVfUkVDT1ZFUllfVU5QTEFZQUJMRSIsV0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9PRkZMSU5FX1JFQ09WRVJZX1NUUklDVCIsS0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JT1NfU0hPUlRfT1JJRU5UQVRJT05fQ0hBTkdFIixDRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWSFRNTDVfUExBWUVSX0VSUk9SX09WRVJMQVlfVFJJR0dFUkVEIiwKc0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TSEFERVJfTElHSFRfRU5BQkxFRCIsSUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUWV9NSVNNQVRDSF9ERVRFQ1RFRCIsbEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVNVTUVfVE9fU0hPUlRTX1RSSUdHRVJFRCIsQkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9HUldTX0NVU1RPTV9SRVRSWV9DQUxMRUQiLFNEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTURYX01PQklMRV9VTkxPQ0tfVE9LRU5fTUlTTUFUQ0giLFJEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTURYX01PQklMRV9VTkxPQ0tfUEFZTE9BRF9UT0tFTl9NSVNTSU5HIixRRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX01EWF9NT0JJTEVfVU5MT0NLX0dBVEVfVE9LRU5fTUlTU0lORyIsClVEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTVVTSUNfT0ZGTElORV9IT01FX1NNQVJUX0RPV05MT0FEU19QUk9NT19DSEVDSyIsTEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JUEFEX0RFU0tUT1BfTUFUQ0gifTt2YXIgZHdhPW5ldyBfLkkoInN1YnNjcmliZUVuZHBvaW50Iik7dmFyIEIyPWNsYXNzIGV4dGVuZHMgXy5MYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGAke2F9LCBlcnJvckNvZGU9JHtifWApO3RoaXMuZXJyb3JDb2RlPWI7dGhpcy5uYW1lPSJQcm9taXNlQWpheEVycm9yIn19LHR0YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19O3ZhciBEMj1jbGFzc3tjb25zdHJ1Y3RvcihhPW51bGwpe3RoaXMudj1hO3RoaXMuaj0wO3RoaXMubz1udWxsfXRoZW4oYSxiLGMpe3JldHVybiB0aGlzLnY/dGhpcy52LnRoZW4oYSxiLGMpOnRoaXMuaj09PTEmJmE/KGE9YS5jYWxsKGMsdGhpcy5vKSkmJnR5cGVvZiBhLnRoZW49PT0iZnVuY3Rpb24iP2E6RjIoYSk6dGhpcy5qPT09MiYmYj8oYT1iLmNhbGwoYyx0aGlzLm8pKSYmdHlwZW9mIGEudGhlbj09PSJmdW5jdGlvbiI/YTpFMihhKTp0aGlzfWlzUmVqZWN0ZWQoKXtyZXR1cm4gdGhpcy5qPT0yfX07Xy55ZihEMik7dmFyIE0yPWNsYXNzIGV4dGVuZHMgXy5MYXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhLm1lc3NhZ2V8fGEuZGVzY3JpcHRpb258fGEubmFtZSk7dGhpcy5pc01pc3Npbmc9YSBpbnN0YW5jZW9mIEsyO3RoaXMuaXNUaW1lb3V0PWEgaW5zdGFuY2VvZiBCMiYmYS5lcnJvckNvZGU9PSJuZXQudGltZW91dCI7dGhpcy5pc0NhbmNlbGVkPWEgaW5zdGFuY2VvZiBfLlBmfX07TTIucHJvdG90eXBlLm5hbWU9IkJpc2NvdHRpRXJyb3IiO3ZhciBLMj1jbGFzcyBleHRlbmRzIF8uTGF7Y29uc3RydWN0b3IoKXtzdXBlcigiQmlzY290dGkgSUQgaXMgbWlzc2luZyBmcm9tIHNlcnZlciIpfX07SzIucHJvdG90eXBlLm5hbWU9IkJpc2NvdHRpTWlzc2luZ0Vycm9yIjt2YXIgc3RhPXtmb3JtYXQ6IlJBVyIsbWV0aG9kOiJHRVQiLHRpbWVvdXQ6NUUzLHdpdGhDcmVkZW50aWFsczohMH0sSDI9bnVsbDt2YXIgV3RhPVsiYXR0L2dldCJdLGV3YT1bInNoYXJlL2dldF9zaGFyZV9wYW5lbCJdLGZ3YT1bInNoYXJlL2dldF93ZWJfcGxheWVyX3NoYXJlX3BhbmVsIl0scTU9WyJmZWVkYmFjayJdLGd3YT1bIm5vdGlmaWNhdGlvbi9tb2RpZnlfY2hhbm5lbF9wcmVmZXJlbmNlIl0saHdhPVsiYnJvd3NlL2VkaXRfcGxheWxpc3QiXSxpd2E9WyJzdWJzY3JpcHRpb24vc3Vic2NyaWJlIl0sandhPVsic3Vic2NyaXB0aW9uL3Vuc3Vic2NyaWJlIl07dmFyIHI1PWNsYXNze2ZsdXNoKGE9W10sYj0hMSl7aWYoXy54KCJlbmFibGVfY2xpZW50X3N0cmVhbXpfd2ViIikpZm9yKGxldCBjIG9mIGEpYT1yMShjKSx0aGlzLmomJl8uS3coYSwyLHRoaXMuaiksYT17c2VyaWFsaXplZEluY3JlbWVudEJhdGNoOl8uc2MoYS52KCkpfSxfLkVwKCJzdHJlYW16SW5jcmVtZW50ZWQiLGEse3NlbmRJc29sYXRlZFBheWxvYWQ6Yn0pfX0sWXZhPWNsYXNzIGV4dGVuZHMgcjV7Y29uc3RydWN0b3IoKXtzdXBlcigpfX0scXVhPWNsYXNzIGV4dGVuZHMgcjV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt2YXIgYj1uZXcgRXZhO3ZhciBjPW5ldyBEdmE7Yz1CWihjLDEsImJvdGd1YXJkIik7YT1CWihjLDIsYSk7YT1fLkp3KGEpO0ZfKGIsMSxlNSxhKTthJiYhXy5CYyhhKSYmXy5vdyhiLkRhKTt0aGlzLmo9Yn19O3ZhciBuNSxqND1uZXcgTWFwO3ZhciBBdGE9bnVsbDt2YXIgQ3RhPW5ldyBNYXAoW1siZGFyayIsIlVTRVJfSU5URVJGQUNFX1RIRU1FX0RBUksiXSxbImxpZ2h0IiwiVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiXV0pO3ZhciBYMj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX1iaW5kSW5uZXJ0dWJlQ2hhbGxlbmdlRmV0Y2hlcihhKXt0aGlzLmouYmljZihhKX1yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhhKXt0aGlzLmouYmNyKGEpfWdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCl7cmV0dXJuIHRoaXMuai5ibGMoKX19O3ZhciAkMj1bXSxaMj0oMCxfLll4KWBodHRwczovL3N0YXRpYy5kb3VibGVjbGljay5uZXQvaW5zdHJlYW0vYWRfc3RhdHVzLmpzYCxZMj0hMTt2YXIgczU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9fTtbbmV3IHM1KCJiLmZfIiksbmV3IHM1KCJqLnNfIiksbmV3IHM1KCJyLnNfIiksbmV3IHM1KCJlLmhfIiksbmV3IHM1KCJpLnNfIiksbmV3IHM1KCJzLnRfIiksbmV3IHM1KCJwLmhfIiksbmV3IHM1KCJzLmlfIiksbmV3IHM1KCJmLmlfIiksbmV3IHM1KCJhLmJfIiksbmV3IHM1KCJhLm9fIiksbmV3IHM1KCJnLm9fIiksbmV3IHM1KCJwLmlfIiksbmV3IHM1KCJwLm1fIiksbmV3IHM1KCJuLmtfIiksbmV3IHM1KCJpLmZfIiksbmV3IHM1KCJhLnNfIiksbmV3IHM1KCJtLmNfIiksbmV3IHM1KCJuLmhfIiksbmV3IHM1KCJvLnBfIiksbmV3IHM1KCJtLnBfIiksbmV3IHM1KCJvLmFfIiksbmV3IHM1KCJkLnBfIiksbmV3IHM1KCJlLmlfIildLnJlZHVjZSgoYSxiKT0+e2FbYi5qXT1iO3JldHVybiBhfSx7fSk7dmFyIFA0PWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLm5ldHdvcms9YTt0aGlzLm9wdGlvbnM9Yjt0aGlzLks9Yzt0aGlzLnY9MDt0aGlzLmo9bnVsbDt0aGlzLm89bmV3IFp2YTtiLnpzP2IzKHRoaXMsSXRhKHRoaXMpKTpiLnByZWxvYWQmJmIzKHRoaXMsbmV3IFByb21pc2UoZD0+e18uWWooKCk9PntkKGUzKHRoaXMpKX0sMCl9KSl9YXN5bmMgRCgpe3JldHVybiEhYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmosbnVsbF0pfWFzeW5jIEIoYSxiLGMpe3RoaXMuaj09PW51bGwmJmIzKHRoaXMsZTModGhpcykpO3ZhciBkPSExLGU9e307cmV0dXJuIFByb21pc2UucmFjZShbKGFzeW5jKCk9Pnt0aGlzLm9wdGlvbnMuUUkmJnRoaXMub3B0aW9ucy56cyYmYXdhaXQgKGF3YWl0IEV0YSgpKT8uY2hlY2tGb3JSZWZyZXNoKCk7dmFyIGY9YXdhaXQgdGhpcy5qO2UuY2hhbGxlbmdlPWYuY2hhbGxlbmdlO2lmKGYudm0pe3ZhciBoPXtjOmYuY2hhbGxlbmdlLGU6YSwuLi5ifTt0cnl7ZD0KITA7bGV0IGs7KGs9YXdhaXQgZi52bS5zbmFwc2hvdCh7S2M6aH0pKT9lLndlYlJlc3BvbnNlPWs6ZS5lcnJvcj0iQVRURVNUQVRJT05fRVJST1JfVk1fTk9fUkVTUE9OU0UifWNhdGNoe2UuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX0lOVEVSTkFMX0VSUk9SIn19ZWxzZSJjMWEiaW4gZi5CZiYmKGUuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PVF9JTklUSUFMSVpFRCIpO2E9PT0iRU5HQUdFTUVOVF9UWVBFX1BMQVlCQUNLIiYmKGY9Zi5CZixoPXt9LGYuYzZhJiYoaC5yZXBvcnRpbmdTdGF0dXM9U3RyaW5nKE51bWJlcihmLmMpXmEzKCkpKSxmLmM2YiYmKGguYnJvYWRTcGVjdHJ1bURldGVjdGlvblJlc3VsdD1TdHJpbmcoTnVtYmVyKGYuYyleTnVtYmVyKF8udygiQ0FUU1RBVCIsMCkpKSksZS5hZGJsb2NrUmVwb3J0aW5nPWgpO3JldHVybiBlfSkoKSxNdGEoYywoKT0+e3ZhciBmPU9iamVjdC5hc3NpZ24oe30sZSk7ZCYmKGYuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiKTsKcmV0dXJuIGZ9KV0pfWFzeW5jIFJmKGEpe3ZhciBiPXRoaXMuSztpZighYnx8Yi5TYigpKXJldHVybiBmMyh0aGlzLGEpO3gwKCJhdHRfcG5hIik7cmV0dXJuIG5ldyBQcm9taXNlKGM9PntfLmJmKGIsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiLCgpPT57ZjModGhpcyxhKS50aGVuKGMpfSl9KX19O3ZhciBnMz17V0VCX1VOUExVR0dFRDoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfT05CT0FSRElORzoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfT1BTOiJedW5wbHVnZ2VkLyIsV0VCX1VOUExVR0dFRF9QVUJMSUM6Il51bnBsdWdnZWQvIixXRUJfQ1JFQVRPUjoiXmNyZWF0b3IvIixXRUJfS0lEUzoiXmtpZHMvIixXRUJfRVhQRVJJTUVOVFM6Il5leHBlcmltZW50cy8iLFdFQl9NVVNJQzoiXm11c2ljLyIsV0VCX1JFTUlYOiJebXVzaWMvIixXRUJfTVVTSUNfRU1CRURERURfUExBWUVSOiJebXVzaWMvIixXRUJfTVVTSUNfRU1CRURERURfUExBWUVSOiJebWFpbl9hcHAvfF5zZnYvIn07dmFyIFl1YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX1hc3luYyBSZihhKXt4MCgiYXR0X2ZzciIpO2E9YXdhaXQgWXRhKHRoaXMuaixhKTt4MCgiYXR0X2ZyciIpO3JldHVybiBhfX07dmFyIGkzPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj0icGVuZGluZyI7dGhpcy5vPVtdO3RoaXMudj1bXTt0cnl7YSh0aGlzLkIuYmluZCh0aGlzKSx0aGlzLnJlamVjdC5iaW5kKHRoaXMpKX1jYXRjaChiKXt0aGlzLnJlamVjdChiKX19c3RhdGUoKXtyZXR1cm4gdGhpcy5pc0Z1bGZpbGxlZCgpP3tzdGF0ZToiZnVsZmlsbGVkIix2YWx1ZTp0aGlzLnJlc3VsdH06dGhpcy5pc1JlamVjdGVkKCk/e3N0YXRlOiJyZWplY3RlZCIscmVhc29uOnRoaXMuZXJyb3J9OntzdGF0ZToicGVuZGluZyJ9fWlzRnVsZmlsbGVkKCl7cmV0dXJuIHRoaXMuaj09PSJmdWxmaWxsZWQifWlzUmVqZWN0ZWQoKXtyZXR1cm4gdGhpcy5qPT09InJlamVjdGVkIn1pc1BlbmRpbmcoKXtyZXR1cm4gdGhpcy5qPT09InBlbmRpbmcifUIoYSl7KDAsXy5ibykoYSl8fGozKGEpP2wzKGszKGEpLHRoaXMuQi5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpOih0aGlzLmo9ImZ1bGZpbGxlZCIsdGhpcy5yZXN1bHQ9CmEsbjModGhpcykpfXJlamVjdChhKXt0aGlzLmo9InJlamVjdGVkIjt0aGlzLmVycm9yPWE7bjModGhpcyl9fSxqMz1fLkNjKGE9PigwLF8ucXIpKGEpP2EgaW5zdGFuY2VvZiBpMzohMSk7dmFyIHQ1PWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXJ1bihhLGIpe3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7dmFyIGM9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKHZhciBkPWEsZT1iLGY9W107Oyl7Zi5wdXNoKFN0cmluZyhkKSk7ZT15aWVsZCpwMyhjLmpbZF0uZXhlY3V0ZShlKSk7aWYoZS5uZXh0U3RhdGU9PT0iRE9ORSIpcmV0dXJuIGYucHVzaCgiRE9ORSIpLGUudmFsdWU7aWYoZS5uZXh0U3RhdGU9PT0iRkFJTEVEIil0aHJvdyBmLnB1c2goYEZBSUxFRCgke2UuZXJyb3IubWVzc2FnZXx8ImVycm9yIn0pYCksZS5lcnJvcjtkPWUubmV4dFN0YXRlO2U9ZS5wYXJhbXN9fSgpfSl9fTt2YXIgdTU9Y2xhc3N7fTt2YXIgdTM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9e307aWYodGhpcy5vPV8ucXooKSl7bGV0IGE9Xy5Mai5nZXQoIkNPTlNJU1RFTkNZIix2b2lkIDApO2EmJnIzKHRoaXMse2VuY3J5cHRlZFRva2VuSmFyQ29udGVudHM6YX0pfX1oYW5kbGVSZXNwb25zZShhLGIpe2lmKCFiKXRocm93IEVycm9yKCJLZSIpO2I9Yi5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ/LnJlcXVlc3Q/LmNvbnNpc3RlbmN5VG9rZW5KYXJzfHxbXTsoYT1hLnJlc3BvbnNlQ29udGV4dD8uY29uc2lzdGVuY3lUb2tlbkphcikmJnRoaXMucmVwbGFjZShiLGEpfXJlcGxhY2UoYSxiKXtmb3IobGV0IGMgb2YgYSlkZWxldGUgdGhpcy5qW2MuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50c107cjModGhpcyxiKX19O3ZhciBrd2E9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKSx2Mz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMudj0tMTt2YXIgYT1fLncoIkxPQ0FUSU9OX1BMQVlBQklMSVRZX1RPS0VOIik7Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1IiYmKHRoaXMubG9jYWxTdG9yYWdlPXMzKHRoaXMpKSYmKGE9dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIpKTthJiYodGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW49YSx0aGlzLm89dGhpcy5qPXZvaWQgMCl9c3RhdGljIGpjKCl7djU9Xy5zYSgieXQuY2xpZW50TG9jYXRpb25TZXJ2aWNlLmluc3RhbmNlIik7djV8fCh2NT1uZXcgdjMsXy5yYSgieXQuY2xpZW50TG9jYXRpb25TZXJ2aWNlLmluc3RhbmNlIix2NSkpO3JldHVybiB2NX1zZXRMb2NhdGlvbk9uSW5uZXJUdWJlQ29udGV4dChhKXthLmNsaWVudHx8KGEuY2xpZW50PQp7fSk7aWYodGhpcy5qKWEuY2xpZW50LmxvY2F0aW9uSW5mb3x8KGEuY2xpZW50LmxvY2F0aW9uSW5mbz17fSksYS5jbGllbnQubG9jYXRpb25JbmZvLmxhdGl0dWRlRTc9TWF0aC5mbG9vcih0aGlzLmouY29vcmRzLmxhdGl0dWRlKjFFNyksYS5jbGllbnQubG9jYXRpb25JbmZvLmxvbmdpdHVkZUU3PU1hdGguZmxvb3IodGhpcy5qLmNvb3Jkcy5sb25naXR1ZGUqMUU3KSxhLmNsaWVudC5sb2NhdGlvbkluZm8uaG9yaXpvbnRhbEFjY3VyYWN5TWV0ZXJzPU1hdGgucm91bmQodGhpcy5qLmNvb3Jkcy5hY2N1cmFjeSksYS5jbGllbnQubG9jYXRpb25JbmZvLmZvcmNlTG9jYXRpb25QbGF5YWJpbGl0eVRva2VuUmVmcmVzaD0hMDtlbHNlIGlmKHRoaXMuQnx8dGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW4pYS5jbGllbnQubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPXRoaXMuQnx8dGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW59Z2V0WEdlb0hlYWRlcigpe2lmKHRoaXMubyl7dmFyIGE9CnRoaXMubzt2YXIgYj1NYXRoLmZsb29yKGEuY29vcmRzLmxvbmdpdHVkZSoxRTcpO3ZhciBjPU1hdGguZmxvb3IoYS5jb29yZHMubGF0aXR1ZGUqMUU3KTt2YXIgZD1uZXcgJHZhO2M9Xy5xdyhkLDEsXy5QdyhjKSk7Yj1fLnF3KGMsMixfLlB3KGIpKTtjPW5ldyBid2E7Yz1DWihjLDEsMSk7Yz1DWihjLDIsMTIpO2M9Q1ooYyw5LDgpO2M9Xy5xdyhjLDMseV8oYS50aW1lc3RhbXAqMUUzKSk7YT1fLnF3KGMsNyxwXyhhLmNvb3Jkcy5hY2N1cmFjeSoxRTMpKTthPUNaKGEsMjUsMik7YT1fLkt3KGEsNSxiKTthPWB3ICR7Xy5zYyhjd2EoYSksNCl9YH1lbHNlIGE9bnVsbDtyZXR1cm4gYX1oYW5kbGVSZXNwb25zZShhKXthPWEucmVzcG9uc2VDb250ZXh0Py5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW47YSE9PXZvaWQgMCYmKHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPWEsdGhpcy5vPXRoaXMuaj12b2lkIDAsXy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1Ij8KKHRoaXMubG9jYWxTdG9yYWdlPXMzKHRoaXMpKSYmdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIsYSwxNTU1MkUzKTpfLk1qKCJZVF9DTCIsSlNPTi5zdHJpbmdpZnkoe2xvY3RvazphfSksMTU1NTJFMyxrd2EsITApKX1jbGVhckxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbihhKXthPT09IlRWSFRNTDUiPyh0aGlzLmxvY2FsU3RvcmFnZT1zMyh0aGlzKSkmJnRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZSgieXQtbG9jYXRpb24tcGxheWFiaWxpdHktdG9rZW4iKTpfLk5qKCJZVF9DTCIpO3RoaXMuQj12b2lkIDA7dGhpcy52IT09LTEmJihjbGVhclRpbWVvdXQodGhpcy52KSx0aGlzLnY9LTEpfWNsZWFyQ3VycmVudFBvc2l0aW9uKCl7dGhpcy5vPXRoaXMuaj12b2lkIDB9Z2V0Q3VycmVudFBvc2l0aW9uRnJvbUdlb2xvY2F0aW9uKGEpe2lmKCEobmF2aWdhdG9yJiZuYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24pKXJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiTGUiKSk7CnZhciBiPSExLGM9MUU0O18udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iTVdFQiImJihiPSEwLGM9MTVFMyk7cmV0dXJuIG5ldyBQcm9taXNlKChkLGUpPT57bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmPT57dGhpcy5vPWE/LmFkZFRvSGVhZGVycz9mOnZvaWQgMDt0aGlzLmo9ZjtkKGYpfSxmPT57ZShmKX0se2VuYWJsZUhpZ2hBY2N1cmFjeTpiLG1heGltdW1BZ2U6MCx0aW1lb3V0OmN9KX0pfWNyZWF0ZVVucGx1Z2dlZExvY2F0aW9uSW5mbyhhKXt2YXIgYj17fTthPWEuY29vcmRzO2E/LmxhdGl0dWRlJiYoYi5sYXRpdHVkZUU3PU1hdGguZmxvb3IoYS5sYXRpdHVkZSoxRTcpKTthPy5sb25naXR1ZGUmJihiLmxvbmdpdHVkZUU3PU1hdGguZmxvb3IoYS5sb25naXR1ZGUqMUU3KSk7YT8uYWNjdXJhY3kmJihiLmxvY2F0aW9uUmFkaXVzTWV0ZXJzPU1hdGgucm91bmQoYS5hY2N1cmFjeSkpO3JldHVybiBifWNyZWF0ZUxvY2F0aW9uSW5mbyhhKXt2YXIgYj0Ke307YT1hLmNvb3JkczthPy5sYXRpdHVkZSYmKGIubGF0aXR1ZGVFNz1NYXRoLmZsb29yKGEubGF0aXR1ZGUqMUU3KSk7YT8ubG9uZ2l0dWRlJiYoYi5sb25naXR1ZGVFNz1NYXRoLmZsb29yKGEubG9uZ2l0dWRlKjFFNykpO3JldHVybiBifX0sdjU7dmFyIEYzPSJ0b2tlbnMgY29uc2lzdGVuY3kgc2VydmljZV9wYXJhbXMgbXNzIGNsaWVudF9sb2NhdGlvbiBlbnRpdGllcyBhZGJsb2NrX2RldGVjdGlvbiByZXNwb25zZV9yZWNlaXZlZF9jb21tYW5kcyBzdG9yZSBtYW5pZmVzdCBwbGF5ZXJfcHJlbG9hZCBzaG9ydHNfcHJlZmV0Y2ggcmVzb2x2ZV91cmxfcHJlZmV0Y2giLnNwbGl0KCIgIik7dmFyIGx3YT1jbGFzc3tEKGEsYj17fSxjPUEzKXt2YXIgZD17Y29udGV4dDp3MyhhLmNsaWNrVHJhY2tpbmdQYXJhbXMsITEsdGhpcy5CKX07dmFyIGU9dGhpcy5vKGEpO2lmKGUpe3RoaXMuaihkLGUsYik7ZT1gL3lvdXR1YmVpL3YxLyR7aDModGhpcy52KCkpfWA7dmFyIGY9Xy5CKGEuY29tbWFuZE1ldGFkYXRhLF8uencpPy5hcGlVcmw7ZiYmKGU9Zik7ZT1YMChZMChlKSk7Zj17Y29tbWFuZDphLC4uLih2b2lkIDApfTtkPXtpbnB1dDplLHdiOlowKGUpLGlubmVyVHViZVJlcXVlc3Q6ZCxjb25maWc6Zn07ZC5jb25maWcuUmQ/ZC5jb25maWcuUmQuaWRlbnRpdHk9YzpkLmNvbmZpZy5SZD17aWRlbnRpdHk6Y307KGE9dGhpcy5LKGEpKSYmIWQuY29uZmlnLnJlcXVlc3RLZXkmJihkLmNvbmZpZy5yZXF1ZXN0S2V5PWEpO2IuYWJvcnRTaWduYWwmJihkLndiLnNpZ25hbD1iLmFib3J0U2lnbmFsKTtyZXR1cm4gZH1iPW5ldyBfLlhqKCJFcnJvcjogRmFpbGVkIHRvIGNyZWF0ZSBSZXF1ZXN0IGZyb20gQ29tbWFuZC4iLAphKTtfLkdwKGIpfWdldCBCKCl7cmV0dXJuITF9Sygpe319LHc1PWNsYXNzIGV4dGVuZHMgbHdhe0soYSl7cmV0dXJuIF8uQihhLmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucmVxdWVzdEtleT8/dm9pZCAwfX07dmFyIG13YT17R0VUX0RBVEFTWU5DX0lEUzp5MyhjbGFzcyBleHRlbmRzIHc1e0QoKXtyZXR1cm57aW5wdXQ6Ii9nZXREYXRhc3luY0lkc0VuZHBvaW50Iix3YjpaMCgiL2dldERhdGFzeW5jSWRzRW5kcG9pbnQiLCJHRVQiKSxpbm5lclR1YmVSZXF1ZXN0Ont9fX12KCl7cmV0dXJuW119bygpe31qKCl7fX0pfTt2YXIgVTM9bmV3IF8uVnMoIlJFUVVFU1RfTUFDSElORV9SRUdJU1RSWV9UT0tFTiIpLEIzPW5ldyBfLlZzKCJSRVFVRVNUX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpLEozPW5ldyBfLlZzKCJJTkZMSUdIVF9SRVFVRVNUX01BUF9UT0tFTiIpO3ZhciBhdWE9WyJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLkJyb3dzZVJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QbGF5ZXJSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGFuZWxSZXNwb25zZSJdLHozPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMudj1hO3RoaXMuU2E9Yjt0aGlzLm89Yzt0aGlzLkI9ZDt0aGlzLmo9bmV3IE1hcDthLkhkfHwoYS5IZD17fSk7YS5IZD17Li4ubXdhLC4uLmEuSGR9fVFpKGEsYil7dmFyIGM9Xy55KCkucmVzb2x2ZShfLkluKEIzKSk/LigpO2lmKGMpcmV0dXJuIG0zKGV1YShjLHtjb21tYW5kOmEsZm9ybTpiLGlkZW50aXR5OkEzfSkpLnRoZW4oZT0+ZSwoKT0+e30pO3ZhciBkPVp0YSh0aGlzLAphKTtyZXR1cm4gZD9uZXcgXy5CZihhc3luYyhlLGYpPT57dmFyIGg9KGF3YWl0IGQpLkQoYSxiLEEzKTtoPyhQMihoLmlucHV0KSxmPWgud2I/Lm1vZGU9PT0iY29ycyI/ImNvcnMiOnZvaWQgMCxmPXRoaXMuby56bj9DMyhoLmNvbmZpZyxmKTphd2FpdCBEMyhoLmNvbmZpZyxmKSxlKEUzKHRoaXMsaCxmKSkpOmYobmV3IF8uWGooIkVycm9yOiBGYWlsZWQgdG8gYnVpbGQgcmVxdWVzdCBmb3IgY29tbWFuZCIsYSkpfSk6Xy5PdChuZXcgXy5YaigiRXJyb3I6IE5vIHJlcXVlc3QgYnVpbGRlciBmb3VuZCBmb3IgY29tbWFuZCIsYSkpfUp3KGEpe3JldHVybiBVdGEoYSx0aGlzLnYpfX07dmFyIHg1PW5ldyBfLlZzKCJMT0NBTF9JTk5FUlRVQkVfUk9VVEVSX1RPS0VOIik7dmFyIHU0PW5ldyBfLlZzKCJFTkRQT0lOVF9NQVAiKTt2YXIgdDQ9bmV3IF8uVnMoIkFVVEhfU0VSVklDRV9UT0tFTiIpO3ZhciBLMz1jbGFzcyBleHRlbmRzIHU1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBjPWEueXRSZXF1ZXN0O1AyKGMuaW5wdXQpO3ZhciBkPWMud2I/Lm1vZGU9PT0iY29ycyI/ImNvcnMiOnZvaWQgMDtpZihiLmouem4pe2xldCBlPV8uUGooe3Nlc3Npb25JbmRleDpjLmNvbmZpZz8uUmQ/LnNlc3Npb25JbmRleH0pO2Q9ey4uLngzKGQpLC4uLmV9fWVsc2UgZD15aWVsZCpwMyhjdWEoYixjLmNvbmZpZyxkKSk7Yy53Yj17Li4uYy53YixoZWFkZXJzOnsuLi4oYy53Yj8uaGVhZGVycz8/e30pLC4uLmR9fTtyZXR1cm57bmV4dFN0YXRlOiJERURVUEUiLHBhcmFtczphfX0oKX0pfX07SzNbXy5Mbl09W3Q0XTt2YXIgJDM9bmV3IF8uVnMoIlJFU1BPTlNFX01BQ0hJTkVfUkVHSVNUUllfVE9LRU4iKSxhND1uZXcgXy5WcygiUkVTUE9OU0VfTUFDSElORV9GQUNUT1JZX1RPS0VOIik7dmFyIEwzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuaj1hO3RoaXMubz1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5vLGM9dGhpcy5qO3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBkPWEueXRSZXF1ZXN0LGU9ZC5jb25maWc/LktBPy5aSztpZihlJiZiJiZiLmhhcyhlKSYmIWQuY29uZmlnPy5LQT8uZGlzYWJsZUNhY2hlKXt2YXIgZj15aWVsZCpwMyhrMyhiLmdldChlKSkpO2lmKGYmJiFmLmlzRXhwaXJlZCgpKXJldHVybiBkPWYuaigpLF8ueCgid2ViX3Byb2Nlc3NfcmVzcG9uc2Vfc3RvcmVfcmVzcG9uc2VzIikmJiFmLmlzUHJvY2Vzc2VkKCk/KGY9YygpLGQ9eWllbGQqcDMoSDMoZix7d2lyZVJlc3BvbnNlOmQseXRSZXF1ZXN0OmEueXRSZXF1ZXN0LGNodW5rQ2FsbGJhY2s6YS5jaHVua0NhbGxiYWNrLHJlc3BvbnNlUGF5bG9hZDp7dHlwZToiUEFHRV9DT05UUkFDVCJ9LGV4dHJhY3RlZFJlc3BvbnNlOmR9KSksCnlpZWxkKnAzKGszKGIuaihlKSkpLHtuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmR9KTp7bmV4dFN0YXRlOiJET05FIix2YWx1ZTpkfX1yZXR1cm57bmV4dFN0YXRlOiJMT0NBTF9ST1VURVIiLHBhcmFtczphfX0oKX0pfX07TDNbXy5Mbl09W2E0LF8uSW4obmV3IF8uVnMoIkVQSEVNRVJBTF9TVE9SRV9UT0tFTiIpKV07dmFyIE0zPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubz1hO3RoaXMuaj1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5vLGM9dGhpcy5qLGQ9YS55dFJlcXVlc3QsZT1kPy5pbm5lclR1YmVSZXF1ZXN0Py5jb250ZXh0O2lmKCFlKXJldHVybiBrMyh7bmV4dFN0YXRlOiJBVVRIIixwYXJhbXM6YX0pO3ZhciBmPVtdO2lmKGMmJmMubGVuZ3RoPjApZm9yKGxldCBoIG9mIGMpYz1oLkJyKGQpLGMudiYmZi5wdXNoKGMudik7Zm9yKGxldCBoIG9mIGJ8fFtdKWguQnIoZSk7cmV0dXJuIGYubGVuZ3RoPjA/bzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt5aWVsZCpwMyhrMyhQcm9taXNlLmFsbChmKSkpO3JldHVybntuZXh0U3RhdGU6IkFVVEgiLHBhcmFtczphfX0oKX0pOmszKHtuZXh0U3RhdGU6IkFVVEgiLHBhcmFtczphfSl9fTtNM1tfLkxuXT1bXy5JbihuZXcgXy5WcygiQ09OVEVYVF9QUk9DRVNTT1JfTUFQIikpLF8uSW4obmV3IF8uVnMoIkFTWU5DX0NPTlRFWFRfUFJPQ0VTU09SX01BUCIpKV07dmFyIE4zPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1leGVjdXRlKGEpe3ZhciBiPXRoaXMuajtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1hLnl0UmVxdWVzdC5jb25maWc/LnJlcXVlc3RLZXk7cmV0dXJuIGMmJmIuaGFzKGMpJiYoYz1iLmdldChjKSxjPXlpZWxkKnAzKGszKGMpKSk/e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6Y306e25leHRTdGF0ZToiRkVUQ0giLHBhcmFtczphfX0oKX0pfX07TjNbXy5Mbl09W0ozXTt2YXIgTzM9Y2xhc3MgZXh0ZW5kcyB1NXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5vPWE7dGhpcy5qPWJ9ZXhlY3V0ZShhKXt2YXIgYj10aGlzLmosYz10aGlzLm87cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGQ9YS55dFJlcXVlc3QsZT1hLmNodW5rQ2FsbGJhY2ssZj17dHlwZToiUEFHRV9DT05UUkFDVCJ9O2lmKGI/LmNJKGQuaW5wdXQsZC5pbm5lclR1YmVSZXF1ZXN0KSl7bGV0IGs9eWllbGQqcDMoazMoYi5PSihkLmlucHV0LGQuaW5uZXJUdWJlUmVxdWVzdCkpKTtpZihrKXtsZXQgbD0hMTt2YXIgaD1mdW5jdGlvbihtLG4pe3JldHVybiBmdW5jdGlvbiooKXt2YXIgcD1jKCk7eWllbGQqcDMoSDMocCx7d2lyZVJlc3BvbnNlOm4seXRSZXF1ZXN0OmQsY2h1bmtDYWxsYmFjazplLHJlc3BvbnNlUGF5bG9hZDpmfSkpO2w9ITB9KCl9O2sucGxheWVyUmVzcG9uc2UmJih5aWVsZCpoKGsucGxheWVyUmVzcG9uc2Use3BsYXllclJlc3BvbnNlOmsucGxheWVyUmVzcG9uc2V9KSk7Cmsud2F0Y2hOZXh0UmVzcG9uc2UmJih5aWVsZCpoKGsud2F0Y2hOZXh0UmVzcG9uc2Use3dhdGNoTmV4dFJlc3BvbnNlOmsud2F0Y2hOZXh0UmVzcG9uc2V9KSk7bHx8KGg9YygpLHlpZWxkKnAzKEgzKGgse3dpcmVSZXNwb25zZTprLHl0UmVxdWVzdDpkLGNodW5rQ2FsbGJhY2s6ZSxyZXNwb25zZVBheWxvYWQ6Zn0pKSk7aWYoZSlyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTpmfTtoPWYuY29udGVudHx8Zi5wbGF5ZXJ8fGYuZG47cmV0dXJuIGYudHlwZT09PSJQQUdFX0NPTlRSQUNUIiYmaD97bmV4dFN0YXRlOiJET05FIix2YWx1ZTpofTp7bmV4dFN0YXRlOiJET05FIix2YWx1ZTprfX19cmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiTmUiKX19KCl9KX19O08zW18uTG5dPVthNCxfLkluKHg1KV07dmFyIHk1PWNsYXNzIGV4dGVuZHMgXy5Yantjb25zdHJ1Y3RvcihhLGIsYyl7c3VwZXIoYix7c3RhdHVzOmMsLi4uW119KTt0aGlzLnR5cGU9YTt0aGlzLnN0YXR1cz1jO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciByND1uZXcgXy5WcygiTkVUV09SS19NQU5BR0VSX1RPS0VOIik7dmFyIFAzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiLGMsZCl7c3VwZXIoKTt0aGlzLlNhPWE7dGhpcy5qPWI7dGhpcy52PWM7dGhpcy5vPWR9ZXhlY3V0ZShhKXt2YXIgYj10aGlzLlNhLGM9dGhpcy5qLGQ9dGhpcy52LGU9dGhpcy5vO3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBmPWEueXRSZXF1ZXN0LGg9YS5jaHVua0NhbGxiYWNrLGs9Zi5jb25maWc/LnJlcXVlc3RLZXksbD1KU09OLnN0cmluZ2lmeShmLmlubmVyVHViZVJlcXVlc3QpLG09ey4uLmYud2IsYm9keTpmLndiLm1ldGhvZD09PSJQT1NUIj9sOnZvaWQgMH07Zi5jb25maWc/LmtuJiZfLkFxKGYuY29uZmlnLmtuKTt2YXIgbj17dHlwZToiUEFHRV9DT05UUkFDVCJ9LHA9MCxyPXo9PntJMyhkKCkse3dpcmVSZXNwb25zZTp6LHl0UmVxdWVzdDpmLGNodW5rQ2FsbGJhY2s6aCxyZXNwb25zZVBheWxvYWQ6bn0scCsrKX07bD0oKT0+aD9iLmZldGNoKGYuaW5wdXQsCm0sZi5jb25maWcscik6Yi5mZXRjaChmLmlucHV0LG0sZi5jb25maWcpO3RyeXt2YXIgdD1lP2UuSksoZixsKTpsKCl9Y2F0Y2goeil7dD1Qcm9taXNlLnJlamVjdCh6KX1rJiZjJiZjLnNldChrLHQpO3RyeXt2YXIgdj15aWVsZCpwMyhrMyh0KSl9Y2F0Y2goeil7cmV0dXJuIF8ueCgid2ViX2VuYWJsZV9yZXRyaWVzIikmJih2PXogaW5zdGFuY2VvZiBUeXBlRXJyb3ImJnoubWVzc2FnZT09PSJGYWlsZWQgdG8gZmV0Y2giPzE6MCxHMyh2KSk/e25leHRTdGF0ZToiUkVUUlkiLHBhcmFtczp7Li4uYSxlcnJvcjpuZXcgeTUodix6Lm1lc3NhZ2UpLGF0dGVtcHQ6KGEuYXR0ZW1wdHx8MCkrMX19OntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6ey4uLmF9fX1rJiZjJiZjLmRlbGV0ZShrKTt3MCh2MChmLmlucHV0KSkoKTtmLmNvbmZpZz8ucG4mJl8uQXEoZi5jb25maWcucG4pO2lmKCF2KXJldHVybntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6ey4uLmF9fTtpZih2JiZ0eXBlb2Ygdj09PQoib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkodikmJihrPXYsay5lcnJvck1ldGFkYXRhPy5zdGF0dXMmJihrPWsuZXJyb3JNZXRhZGF0YS5zdGF0dXMsdD1rPT09NTAzfHxrPT09NTA0fHxrPT09NDI5PzI6az49NDAwJiZrPDUwMHx8az49NTAwPzM6MCxHMyh0KSYmXy54KCJ3ZWJfZW5hYmxlX3JldHJpZXMiKSkpKXJldHVybntuZXh0U3RhdGU6IlJFVFJZIixwYXJhbXM6ey4uLmEsZXJyb3I6bmV3IHk1KHQsYEhUVFAgU3RhdHVzICR7a31gLGspLGF0dGVtcHQ6KGEuYXR0ZW1wdHx8MCkrMX19OyFoJiZ2JiYoaz1kKCksaz15aWVsZCpwMyhJMyhrLHt3aXJlUmVzcG9uc2U6dix5dFJlcXVlc3Q6ZixyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifX0pKSx0PWsuY29udGVudHx8ay5wbGF5ZXJ8fGsuZG4say50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZ0JiYodj10KSk7az12O2lmKEFycmF5LmlzQXJyYXkodikpaWYodj12LmZpbHRlcih6PT4hKHoucGxheWVyUmVzcG9uc2V8fAp6LndhdGNoTmV4dFJlc3BvbnNlfHx6KS5yZXNwb25zZUNvbnRleHQ/LmZyYW1ld29ya09ubHkpLHYubGVuZ3RoPT09MSlrPXZbMF07ZWxzZSBpZih2Lmxlbmd0aD4xKWs9di5maW5kKHo9Pnoud2F0Y2hOZXh0UmVzcG9uc2UpfHx2WzBdO2Vsc2UgcmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiT2UiKX07cmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6aCYmIV8ueCgid2ViX25tX2ZldGNoX2NodW5rX2NhbGxiYWNrX2tzIik/bjprfX0oKX0pfX07UDNbXy5Mbl09W3I0LEozLGE0LF8uSW4obmV3IF8uVnMoIlJFUVVFU1RfU0VRVUVOQ0lORyIpKV07dmFyIFEzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubz1hO3RoaXMuaj1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5qLGM9dGhpcy5vLGQ9YS55dFJlcXVlc3Q7cmV0dXJuIGI/LlBLKGQuaW5wdXQsZC5pbm5lclR1YmVSZXF1ZXN0KT9vMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBlPXlpZWxkKnAzKGszKGIuUEooZC5pbnB1dCxkLmlubmVyVHViZVJlcXVlc3QpKSksZj1jKCk7aWYoZS5wbGF5ZXJSZXNwb25zZSYmZS53YXRjaE5leHRSZXNwb25zZSl7dmFyIGg9eWllbGQqcDMoSDMoZix7d2lyZVJlc3BvbnNlOntwbGF5ZXJSZXNwb25zZTplLnBsYXllclJlc3BvbnNlfSx5dFJlcXVlc3Q6YS55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazphLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6ZS5wbGF5ZXJSZXNwb25zZX0pKTtoPXlpZWxkKnAzKEgzKGYsCnt3aXJlUmVzcG9uc2U6e3dhdGNoTmV4dFJlc3BvbnNlOmUud2F0Y2hOZXh0UmVzcG9uc2V9LHl0UmVxdWVzdDphLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOmEuY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTplLndhdGNoTmV4dFJlc3BvbnNlfSkpfWVsc2UgaD15aWVsZCpwMyhIMyhmLHt3aXJlUmVzcG9uc2U6ZSx5dFJlcXVlc3Q6YS55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazphLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6ZX0pKTtmPWguY29udGVudHx8aC5wbGF5ZXJ8fGguZG47aC50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZmJiYoZT1mKTtyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTplfX0oKX0pOmszKHtuZXh0U3RhdGU6IkNPTlRFWFQiLHBhcmFtczphfSl9fTtRM1tfLkxuXT1bYTQsXy5Jbih4NSldO3ZhciBSMz1jbGFzcyBleHRlbmRzIHU1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3RyeXt2YXIgYz15aWVsZCpwMyhkdWEoYixhLmNvbW1hbmQsISFhLmNodW5rQ2FsbGJhY2spKX1jYXRjaChkKXtyZXR1cm57bmV4dFN0YXRlOiJGQUlMRUQiLGVycm9yOmR9fXJldHVybihjPWMuRChhLmNvbW1hbmQsYS5mb3JtLGEuaWRlbnRpdHkpKT97bmV4dFN0YXRlOiJDQUNIRSIscGFyYW1zOnt5dFJlcXVlc3Q6YyxjaHVua0NhbGxiYWNrOmEuY2h1bmtDYWxsYmFja319OntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIlBlIil9fSgpfSl9fTtSM1tfLkxuXT1bdTRdO3ZhciBTMz1jbGFzcyBleHRlbmRzIHU1e2V4ZWN1dGUoYSl7cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHtpbm5lclR1YmVSZXF1ZXN0OmIsYXBpUGF0aDpjLGNsaWNrVHJhY2tpbmdQYXJhbXM6ZCxjb25maWc6ZT17UmQ6e2lkZW50aXR5OkEzfX0saW5jbHVkZUN1cnJlbnRTY3JlZW5Ob25jZTpmPSEwLGNodW5rQ2FsbGJhY2s6aH09YTtiLmNvbnRleHR8fChiLmNvbnRleHQ9dzMoZCxmKSk7dmFyIGs9WDAoWTAoYykpO3JldHVybntuZXh0U3RhdGU6IkNBQ0hFIixwYXJhbXM6e3l0UmVxdWVzdDp7aW5wdXQ6ayx3YjpaMChrKSxpbm5lclR1YmVSZXF1ZXN0OmIsY29uZmlnOmV9LGNodW5rQ2FsbGJhY2s6aH19fSgpfSl9fTt2YXIgVjM9Y2xhc3MgZXh0ZW5kcyB0NXt9O1YzW18uTG5dPVtVM107dmFyIFQzPWNsYXNzIGV4dGVuZHMgdTV7ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1hLnl0UmVxdWVzdCxjPWEuZXJyb3IsZD1hLmF0dGVtcHQsZT1hLmNodW5rQ2FsbGJhY2ssZj1iLmNvbmZpZz8uREs7aWYoIShmJiZjIGluc3RhbmNlb2YgeTUmJkczKGMudHlwZSkpfHxkPihmLm1heFJldHJpZXM/PzApKXJldHVybntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6e3l0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6ZX19O3ZhciBoPShjPWYuWEgpP2MuY0ooZCk6LTE7aD09PS0xJiYoaD0xRTMpO2YuQ3khPT12b2lkIDAmJihoPU1hdGgubWluKGgsZi5DeSkpO3lpZWxkKnAzKGszKG5ldyBQcm9taXNlKGs9PntfLk50KGssaCl9KSkpO3JldHVybntuZXh0U3RhdGU6IkZFVENIIixwYXJhbXM6e3l0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6ZSxhdHRlbXB0OmR9fX0oKX0pfX07dmFyIFczPWNsYXNzIGV4dGVuZHMgdTV7ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1hLmNodW5rQ2FsbGJhY2ssYz1hLnJlc3BvbnNlUGF5bG9hZCxkPWEud2lyZVJlc3BvbnNlO2ImJihiKGMpLCJwbGF5ZXJSZXNwb25zZSJpbiBkJiZkLnBsYXllclJlc3BvbnNlJiYoXy5DaygpLChiPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zZXRQcmlvcml0eVRocmVzaG9sZCIpKSYmYig0KSkpO3JldHVybntuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmN9fSgpfSl9fTt2YXIgbndhPVsidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5Ccm93c2VSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGxheWVyUmVzcG9uc2UiLCJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLlBhbmVsUmVzcG9uc2UiXSxYMz1jbGFzcyBleHRlbmRzIHU1e2V4ZWN1dGUoYSl7cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGI9YS5vbmVQbGF0Zm9ybUVycm9yO2lmKGImJiJkZXRhaWxzImluIGImJmIuZGV0YWlscyl7Yj1iLmRldGFpbHM7Zm9yKGxldCBjIG9mIGIpaWYoKGI9Y1siQHR5cGUiXSkmJm53YS5pbmRleE9mKGIpPi0xKXJldHVybiBkZWxldGUgY1siQHR5cGUiXSx7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIiwKcGFyYW1zOnsuLi5hLGV4dHJhY3RlZFJlc3BvbnNlOmN9fX1yZXR1cm57bmV4dFN0YXRlOiJGQUlMRUQiLGVycm9yOkVycm9yKCJTZSIpfX0oKX0pfX07dmFyIFkzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1leGVjdXRlKGEpe3ZhciBiPXRoaXMuajtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1hLmV4dHJhY3RlZFJlc3BvbnNlLGQ9YS55dFJlcXVlc3QsZT1hLnJlc3BvbnNlUGF5bG9hZCxmPWEud2lyZVJlc3BvbnNlO2lmKGMmJiEoImNvZGUiaW4gY3x8ImVycm9yImluIGMpJiYhYy5zZXF1ZW5jZU1ldGFEYXRhPy5za2lwUHJvY2Vzc2luZylmb3IobGV0IGggb2YgRjMpYltoXSYmYltoXS5oYW5kbGVSZXNwb25zZShjLGQpO2Yud2F0Y2hOZXh0UmVzcG9uc2V8fGYucmVlbEl0ZW1XYXRjaFJlc3BvbnNlP2Yud2F0Y2hOZXh0UmVzcG9uc2U/ZS5jb250ZW50PWYud2F0Y2hOZXh0UmVzcG9uc2U6ZS5jb250ZW50PWYucmVlbEl0ZW1XYXRjaFJlc3BvbnNlOmYucGxheWVyUmVzcG9uc2U/ZS5wbGF5ZXI9Zi5wbGF5ZXJSZXNwb25zZTpmLnJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2U/CmUuZG49Zi5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOmUuY29udGVudD1mO3JldHVybntuZXh0U3RhdGU6IkNBTExCQUNLX0RJU1BBVENIRVIiLHBhcmFtczphfX0oKX0pfX07WTNbXy5Mbl09W18uSnldO3ZhciBiND1jbGFzcyBleHRlbmRzIHQ1e307YjRbXy5Mbl09WyQzXTt2YXIgWjM9Y2xhc3MgZXh0ZW5kcyB1NXtleGVjdXRlKGEpe3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPWEud2lyZVJlc3BvbnNlLGM7QXJyYXkuaXNBcnJheShiKT9jPWJbMF06dHlwZW9mIGI9PT0ib2JqZWN0IiYmYiE9PW51bGwmJigicGxheWVyUmVzcG9uc2UiaW4gYnx8IndhdGNoTmV4dFJlc3BvbnNlImluIGJ8fCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiaW4gYnx8InJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2UiaW4gYik/Yz1iLnBsYXllclJlc3BvbnNlfHxiLndhdGNoTmV4dFJlc3BvbnNlfHxiLnJlZWxJdGVtV2F0Y2hSZXNwb25zZXx8Yi5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOmM9YjtyZXR1cm4gYyYmImVycm9yImluIGM/e25leHRTdGF0ZToiRVJST1JfVU5QQUNLRVIiLHBhcmFtczp7Li4uYSxvbmVQbGF0Zm9ybUVycm9yOmMuZXJyb3J9fTp7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIixwYXJhbXM6ey4uLmEsZXh0cmFjdGVkUmVzcG9uc2U6Y319fSgpfSl9fTt2YXIgb3dhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBpd2F9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxkd2EpfHx2b2lkIDB9aihhLGIsYz17fSl7Yi5jaGFubmVsSWRzJiYoYS5jaGFubmVsSWRzPWIuY2hhbm5lbElkcyk7Yi5zaWxvTmFtZSYmKGEuc2lsb05hbWU9Yi5zaWxvTmFtZSk7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yy5ib3RndWFyZFJlc3BvbnNlJiYoYS5ib3RndWFyZFJlc3BvbnNlPWMuYm90Z3VhcmRSZXNwb25zZSk7Yy5mZWF0dXJlJiYoYS5jbGllbnRGZWF0dXJlPWMuZmVhdHVyZSl9fTt2YXIgcHdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBqd2F9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxfLkR5KXx8dm9pZCAwfWooYSxiKXtiLmNoYW5uZWxJZHMmJihhLmNoYW5uZWxJZHM9Yi5jaGFubmVsSWRzKTtiLnNpbG9OYW1lJiYoYS5zaWxvTmFtZT1iLnNpbG9OYW1lKTtiLnBhcmFtcyYmKGEucGFyYW1zPWIucGFyYW1zKX19O3ZhciB6NT1jbGFzcyBleHRlbmRzIHc1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5JPWF9digpe3JldHVybiBld2F9byhhKXtyZXR1cm4gXy5CKGEsXy5aeil8fF8uQihhLF8uTWFhKXx8Xy5CKGEsXy5Zeil9aihhLGIpe2Iuc2VyaWFsaXplZFNoYXJlRW50aXR5JiYoYS5zZXJpYWxpemVkU2hhcmVkRW50aXR5PWIuc2VyaWFsaXplZFNoYXJlRW50aXR5KTtiLmNsaWVudFBhcmFtSWRlbnRpZmllciYmdGhpcy5JPy5qKGIuY2xpZW50UGFyYW1JZGVudGlmaWVyKSYmKGEuY2xpZW50UGFyYW1zPXRoaXMuSS5vKGIuY2xpZW50UGFyYW1JZGVudGlmaWVyKSl9fTt6NVtfLkxuXT1bbmV3IF8uVnMoIlNIQVJFX0NMSUVOVF9QQVJBTVNfUFJPVklERVJfVE9LRU4iKV07dmFyIHF3YT1jbGFzcyBleHRlbmRzIHc1e3YoKXtyZXR1cm4gcTV9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxfLlV6KXx8dm9pZCAwfWooYSxiLGMpe2EuZmVlZGJhY2tUb2tlbnM9W107Yi5mZWVkYmFja1Rva2VuJiZhLmZlZWRiYWNrVG9rZW5zLnB1c2goYi5mZWVkYmFja1Rva2VuKTtpZihiPWIuY3BufHxjLmNwbilhLmZlZWRiYWNrQ29udGV4dD17Y3BuOmJ9O2EuaXNGZWVkYmFja1Rva2VuVW5lbmNyeXB0ZWQ9ISFjLmlzX2ZlZWRiYWNrX3Rva2VuX3VuZW5jcnlwdGVkO2Euc2hvdWxkTWVyZ2U9ITE7Yy5leHRyYV9mZWVkYmFja190b2tlbnMmJihhLnNob3VsZE1lcmdlPSEwLGEuZmVlZGJhY2tUb2tlbnM9YS5mZWVkYmFja1Rva2Vucy5jb25jYXQoYy5leHRyYV9mZWVkYmFja190b2tlbnMpKX19O3ZhciByd2E9Y2xhc3MgZXh0ZW5kcyB3NXt2KCl7cmV0dXJuIHE1fW8oYSl7cmV0dXJuIF8uQihhLF8uQ3kpfWdldCBCKCl7cmV0dXJuITB9aihhLGIpe2IudW5kb1Rva2VuJiYoYS5mZWVkYmFja1Rva2Vucz1bYi51bmRvVG9rZW5dKTtiLmlzVW5kb1Rva2VuVW5lbmNyeXB0ZWQmJihhLmlzRmVlZGJhY2tUb2tlblVuZW5jcnlwdGVkPWIuaXNVbmRvVG9rZW5VbmVuY3J5cHRlZCl9fTt2YXIgc3dhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBnd2F9byhhKXtyZXR1cm4gXy5CKGEsXy5CeSl8fHZvaWQgMH1qKGEsYil7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yi5zZWNvbmRhcnlQYXJhbXMmJihhLnNlY29uZGFyeVBhcmFtcz1iLnNlY29uZGFyeVBhcmFtcyl9fTt2YXIgdHdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBod2F9byhhKXtyZXR1cm4gXy5CKGEsXy5Beil8fHZvaWQgMH1qKGEsYil7Yi5hY3Rpb25zJiYoYS5hY3Rpb25zPWIuYWN0aW9ucyk7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yi5wbGF5bGlzdElkJiYoYS5wbGF5bGlzdElkPWIucGxheWxpc3RJZCl9fTt2YXIgdXdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBmd2F9byhhKXtyZXR1cm4gXy5CKGEsXy5OYWEpfWooYSxiLGM9e30pe2Iuc2VyaWFsaXplZFNoYXJlRW50aXR5JiYoYS5zZXJpYWxpemVkU2hhcmVkRW50aXR5PWIuc2VyaWFsaXplZFNoYXJlRW50aXR5KTtjLmluY2x1ZGVMaXN0SWQmJihhLmluY2x1ZGVMaXN0SWQ9ITApfX07dmFyIHZ3YT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5yZXF1ZXN0S2V5PWE7dGhpcy5CPWI7dGhpcy5vPWM7dGhpcy5EPSgpPT5uZXcgWE1MSHR0cFJlcXVlc3Q7dGhpcy5qPXZvaWQgMDt0aGlzLnY9W119Z2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKXtyZXR1cm4gdGhpcy5vfX07dmFyIG91YT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj0wO3RoaXMuWGc9Yj8uWGc/P3dpbmRvdzt0aGlzLnltPWI/LnltO3RoaXMucmVxdWVzdEtleT1iPy5yZXF1ZXN0S2V5Pz8oXy50aigicGFyX2Jpcl9rZXkiKXx8Ik80M3owZHBqaGdYMjBTQ3g0S0FvIik7dGhpcy5Icz1iPy5Icz8/KGQ9Pm5ldyBxMihkKSk7dmFyIGM9Yj8uVkk/PygoZCxlLGYpPT5uZXcgdndhKGQsZSxmKSk7dGhpcy5iZ0NoYWxsZW5nZT1TMihhLmJnQ2hhbGxlbmdlKTt0aGlzLnR0bFNlY29uZHM9VTIoVDIoYS5jaGFsbGVuZ2V8fCIiKSk7dGhpcy5vZD1jKHRoaXMucmVxdWVzdEtleSxfLngoInBhcl9hdF9lcCIpP1sid3d3LnlvdXR1YmUuY29tIiwibS55b3V0dWJlLmNvbSJdLmluY2x1ZGVzKF8udS5sb2NhdGlvbi5ob3N0bmFtZSk/Ii9hcGkvam5uL3YxL0dlbmVyYXRlSVQiOiJodHRwczovL2pubi1wYS5nb29nbGVhcGlzLmNvbS8kcnBjL2dvb2dsZS5pbnRlcm5hbC53YWEudjEuV2FhL0dlbmVyYXRlSVQiOgoiaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9HZW5lcmF0ZUlUIixhKTt0aGlzLkpzPWI/LkpzO251YSh0aGlzLm9kKTt0aGlzLkdyPWI/LkdyPz8oZD0+e18uU2UodGhpcy5YZy5kb2N1bWVudCwidmlzaWJpbGl0eWNoYW5nZSIsKCk9Pnt0aGlzLlhnLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJ2aXNpYmxlIiYmZCgpfSl9KX12KCl7RGF0ZS5ub3coKT50aGlzLmordGhpcy50dGxTZWNvbmRzKjFFMyYmdGhpcy52bT8uVSgpfX07dmFyIHV1YT1bInd3dy55b3V0dWJlLW5vY29va2llLmNvbSIsInd3dy55b3V0dWJlZWR1Y2F0aW9uLmNvbSIsInlvdXR1YmUuZ29vZ2xlYXBpcy5jb20iXSx3d2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlPTE7dGhpcy52bT1udWxsO3RoaXMuaj12b2lkIDB9aW5pdGlhbGl6ZShhLGIsYyxkKXt0aGlzLmo9ZDtpZihhLnByb2dyYW0pe3ZhciBlO2Q9YS5pbnRlcnByZXRlclVybD8/bnVsbDthLmludGVycHJldGVyU2FmZVNjcmlwdD9lPVlfKGEuaW50ZXJwcmV0ZXJTYWZlU2NyaXB0KTplPWEuaW50ZXJwcmV0ZXJTY3JpcHQ/P251bGw7YS5pbnRlcnByZXRlclNhZmVVcmwmJihkPV8uaHcoYS5pbnRlcnByZXRlclNhZmVVcmwpLnRvU3RyaW5nKCkpO3R1YSh0aGlzLGUsZCxhLnByb2dyYW0sYixjKX1lbHNlIF8uSXAoRXJyb3IoIlVlIikpfWlzSW5pdGlhbGl6ZWQoKXtyZXR1cm4gdGhpcy52KCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZX1pc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PQoyfWludm9rZShhPXt9KXtyZXR1cm4gdGhpcy52KCk/dGhpcy5CKHtLYzphfSk6bnVsbH1kaXNwb3NlKCl7dGhpcy5vKG51bGwpO3RoaXMuUyg4KX12KCl7cmV0dXJuISF0aGlzLnZtfUIoYSl7cmV0dXJuIHRoaXMudm0uWHIoYSl9byhhKXtfLlpkKHRoaXMudm0pO3RoaXMudm09YX1TKGEpe3RoaXMuc3RhdGU9YX19O3ZhciB4d2E9Y2xhc3MgZXh0ZW5kcyB3d2F7byhhKXttNCgpPy5iZ3ZtYSgpO2lmKGEpe2xldCBiPXtiZ3ZtYTphLmRpc3Bvc2UuYmluZChhKSxiZ3ZtYjphLnNuYXBzaG90LmJpbmQoYSksYmd2bWM6YS5Yci5iaW5kKGEpfTtfLnJhKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLGIpO18uRmEoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsYz0+YS5zbmFwc2hvdChjKSl9ZWxzZSBfLnJhKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLG51bGwpLF8ucmEoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsbnVsbCl9digpe3JldHVybiEhbTQoKX1CKGEpe3JldHVybiBtNCgpLmJndm1jKGEpfX07dmFyIHl3YT1jbGFzcyBleHRlbmRzIF8uV3N7Y29uc3RydWN0b3IoKXtzdXBlcigiZG9jdW1lbnRfYWN0aXZlIik7dGhpcy52PTEwO3RoaXMubz1uZXcgTWFwO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJkb2N1bWVudF9hY3RpdmUiLHRvOiJkb2N1bWVudF9kaXNwb3NlZF9wcmV2ZW50YWJsZSIsYWN0aW9uOnRoaXMuWX0se2Zyb206ImRvY3VtZW50X2FjdGl2ZSIsdG86ImRvY3VtZW50X2Rpc3Bvc2VkIixhY3Rpb246dGhpcy5LfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWRfcHJldmVudGFibGUiLHRvOiJkb2N1bWVudF9kaXNwb3NlZCIsYWN0aW9uOnRoaXMuS30se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIix0bzoiZmx1c2hfbG9ncyIsYWN0aW9uOnRoaXMuSX0se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIix0bzoiZG9jdW1lbnRfYWN0aXZlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWQiLHRvOiJmbHVzaF9sb2dzIiwKYWN0aW9uOnRoaXMuSX0se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkIix0bzoiZG9jdW1lbnRfYWN0aXZlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWQiLHRvOiJkb2N1bWVudF9kaXNwb3NlZCIsYWN0aW9uOigpPT57fX0se2Zyb206ImZsdXNoX2xvZ3MiLHRvOiJkb2N1bWVudF9hY3RpdmUiLGFjdGlvbjp0aGlzLkR9XTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLGE9Pnt0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2Rpc3Bvc2VkIix7ZXZlbnQ6YX0pO2EucGVyc2lzdGVkPT09ITEmJih0aGlzLm89bmV3IE1hcCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixhPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9kaXNwb3NlZF9wcmV2ZW50YWJsZSIse2V2ZW50OmF9KX0pfVkoYSxiKXtpZighdGhpcy5vLmdldCgiZG9jdW1lbnRfZGlzcG9zZWRfcHJldmVudGFibGUiKSYmKGEoYj8uZXZlbnQpLGI/LmV2ZW50Py5kZWZhdWx0UHJldmVudGVkfHwKYj8uZXZlbnQ/LnJldHVyblZhbHVlKSl7Yi5ldmVudC5yZXR1cm5WYWx1ZXx8KGIuZXZlbnQucmV0dXJuVmFsdWU9ITApO2IuZXZlbnQuZGVmYXVsdFByZXZlbnRlZHx8Yi5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO3RoaXMubz1uZXcgTWFwO3RoaXMudHJhbnNpdGlvbigiZG9jdW1lbnRfYWN0aXZlIik7cmV0dXJufXRoaXMuby5zZXQoImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIiwhMCk7dGhpcy5vLmdldCgiZG9jdW1lbnRfZGlzcG9zZWQiKT90aGlzLnRyYW5zaXRpb24oImZsdXNoX2xvZ3MiKTp0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2Rpc3Bvc2VkIil9SyhhLGIpe3RoaXMuby5nZXQoImRvY3VtZW50X2Rpc3Bvc2VkIik/dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9hY3RpdmUiKTooYShiPy5ldmVudCksdGhpcy5vLnNldCgiZG9jdW1lbnRfZGlzcG9zZWQiLCEwKSx0aGlzLnRyYW5zaXRpb24oImZsdXNoX2xvZ3MiKSl9SShhLGIpe2EoYj8uZXZlbnQpO3RoaXMudHJhbnNpdGlvbigiZG9jdW1lbnRfYWN0aXZlIil9RCgpe3RoaXMubz0KbmV3IE1hcH19O3ZhciB6d2E9Y2xhc3MgZXh0ZW5kcyBfLldze2NvbnN0cnVjdG9yKCl7c3VwZXIoImRvY3VtZW50X3Zpc2liaWxpdHlfdW5rbm93biIpO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJkb2N1bWVudF92aXNpYmlsaXR5X3Vua25vd24iLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfaGlkZGVuIixhY3Rpb246dGhpcy5vfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIixhY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfYmFja2dyb3VuZGVkIixhY3Rpb246dGhpcy5LfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJsZSIsdG86ImRvY3VtZW50X2hpZGRlbiIsYWN0aW9uOnRoaXMub30se2Zyb206ImRvY3VtZW50X3Zpc2libGUiLHRvOiJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLAphY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJsZSIsdG86ImRvY3VtZW50X3Zpc2libGUiLGFjdGlvbjp0aGlzLkR9LHtmcm9tOiJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIix0bzoiZG9jdW1lbnRfaGlkZGVuIixhY3Rpb246dGhpcy5vfSx7ZnJvbToiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIix0bzoiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIixhY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfaGlkZGVuIix0bzoiZG9jdW1lbnRfdmlzaWJsZSIsYWN0aW9uOnRoaXMuRH0se2Zyb206ImRvY3VtZW50X2hpZGRlbiIsdG86ImRvY3VtZW50X2JhY2tncm91bmRlZCIsYWN0aW9uOnRoaXMuS30se2Zyb206ImRvY3VtZW50X2hpZGRlbiIsdG86ImRvY3VtZW50X2hpZGRlbiIsYWN0aW9uOnRoaXMub30se2Zyb206ImRvY3VtZW50X2JhY2tncm91bmRlZCIsdG86ImRvY3VtZW50X2hpZGRlbiIsCmFjdGlvbjp0aGlzLm99LHtmcm9tOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLGFjdGlvbjp0aGlzLkt9LHtmcm9tOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfV07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsYT0+e2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJ2aXNpYmxlIj90aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X3Zpc2libGUiLHtldmVudDphfSk6dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9oaWRkZW4iLHtldmVudDphfSl9KTtfLngoInZpc2liaWxpdHlfbGlmZWN5Y2xlc19keW5hbWljX2JhY2tncm91bmRpbmciKSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixhPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHtldmVudDphfSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLAphPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLHtldmVudDphfSl9KSl9RChhLGIpe2EoYj8uZXZlbnQpO18ueCgidmlzaWJpbGl0eV9saWZlY3ljbGVzX2R5bmFtaWNfYmFja2dyb3VuZGluZyIpJiZ0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2ZvcmVncm91bmRlZCIpfW8oYSxiKXthKGI/LmV2ZW50KTtfLngoInZpc2liaWxpdHlfbGlmZWN5Y2xlc19keW5hbWljX2JhY2tncm91bmRpbmciKSYmdGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiKX1LKGEsYil7YShiPy5ldmVudCl9SShhLGIpe2EoYj8uZXZlbnQpfX07dmFyIEF3YT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQj1uZXcgeXdhO3RoaXMuRD1uZXcgendhfWluc3RhbGwoLi4uYSl7YS5mb3JFYWNoKGI9Pnt0aGlzLkIuaW5zdGFsbChiKX0pO2EuZm9yRWFjaChiPT57dGhpcy5ELmluc3RhbGwoYil9KX19O3ZhciBPND1jbGFzcyBleHRlbmRzIEF3YXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5pbnN0YWxsKHtkb2N1bWVudF9kaXNwb3NlZDp7Y2FsbGJhY2s6dGhpcy5qfX0pO18ueCgiY29tYmluZV92ZV9ncmFmdHMiKSYmdGhpcy5pbnN0YWxsKHtkb2N1bWVudF9kaXNwb3NlZDp7Y2FsbGJhY2s6dGhpcy5vfX0pO3RoaXMuaW5zdGFsbCh7Zmx1c2hfbG9nczp7Y2FsbGJhY2s6dGhpcy52fX0pO18ueCgid2ViX2xvZ19jZmdfY2VlX2tzIil8fF8uWWoodnVhKX12KCl7Xy5FcCgiZmluYWxQYXlsb2FkIix7Y3NuOl8uaXEoKX0pfWooKXtfLm15KF8uRXkpO18uRnkhPW51bGwmJl8uRnkuZmx1c2goKX1vKCl7Xy5reChfLmh4KCkpfX07dmFyIG40PWNsYXNzIGV4dGVuZHMgXy5Yantjb25zdHJ1Y3RvcihhLC4uLmIpe3N1cGVyKGEsYik7dGhpcy5lcnJvclR5cGU9MTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgczQ9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9YXN5bmMgZmV0Y2goYSxiLGMsZCl7YT13dWEodGhpcyxhLGIpO3RyeXtsZXQgZT1hd2FpdCBmZXRjaChhKTtpZihkJiZlLm9rJiZlLmJvZHkmJnR5cGVvZiBlLmJvZHkuZ2V0UmVhZGVyPT09ImZ1bmN0aW9uIil7bGV0IGY9ZS5jbG9uZSgpLmJvZHkuZ2V0UmVhZGVyKCkse3ZhbHVlOmh9PWF3YWl0IGYucmVhZCgpO2YuY2FuY2VsKCkuY2F0Y2goKCk9Pnt9KTtpZihoJiZoWzBdPT09OTEpe2xldCBrPWUuYm9keS5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO3JldHVybiBvNCh0aGlzLGssbmV3IHoyLFtdLGQpfX1yZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVSZXNwb25zZShlLGMpfWNhdGNoKGUpe2lmKF8uSXAoZSksYz8uUHYmJmUgaW5zdGFuY2VvZiBuNCYmZS5lcnJvclR5cGU9PT0xKXRocm93IGU7fX1oYW5kbGVSZXNwb25zZShhLGIpe3ZhciBjPWEudGV4dCgpLnRoZW4oZD0+e2lmKGI/Lmd5JiYKYS5vaylyZXR1cm4gXy5YeChiLmd5LGQpO2Q9ZC5yZXBsYWNlKCIpXX0nIiwiIik7aWYoYj8uUHYmJmQpdHJ5e3ZhciBlPUpTT04ucGFyc2UoZCl9Y2F0Y2goZil7dGhyb3cgbmV3IG40KCJKU09OIHBhcnNpbmcgZmFpbGVkIGFmdGVyIGZldGNoIik7fXJldHVybiBlPz9KU09OLnBhcnNlKGQpfSk7YS5yZWRpcmVjdGVkfHxhLm9rP3RoaXMuaiYmdGhpcy5qLnN1Y2Nlc3MoKToodGhpcy5qJiZ0aGlzLmouU0koKSxjPWMudGhlbihkPT57Xy5JcChuZXcgXy5YaigiRXJyb3I6IEFQSSBmZXRjaCBmYWlsZWQiLGEuc3RhdHVzLGEudXJsLGQpKTtyZXR1cm57Li4uZCxlcnJvck1ldGFkYXRhOntzdGF0dXM6YS5zdGF0dXN9fX0pKTtyZXR1cm4gY319O3M0W18uTG5dPVtfLkluKG5ldyBfLlZzKCJORVRXT1JLX1NMSV9UT0tFTiIpKV07dmFyIHA0PWNsYXNze3N0YXRpYyBqYygpe3ZhciBhPV8uc2EoInl0Z2xvYmFsLnN0b3JhZ2VfIik7YXx8KGE9bmV3IHA0LF8ucmEoInl0Z2xvYmFsLnN0b3JhZ2VfIixhKSk7cmV0dXJuIGF9YXN5bmMgZXN0aW1hdGUoKXt2YXIgYT1uYXZpZ2F0b3I7aWYoYS5zdG9yYWdlPy5lc3RpbWF0ZSlyZXR1cm4gYS5zdG9yYWdlLmVzdGltYXRlKCk7aWYoYS53ZWJraXRUZW1wb3JhcnlTdG9yYWdlPy5xdWVyeVVzYWdlQW5kUXVvdGEpcmV0dXJuIHh1YSgpfWFzeW5jIHBlcnNpc3QoKXt2YXIgYT1uYXZpZ2F0b3I7cmV0dXJuIGEuc3RvcmFnZT8ucGVyc2lzdD9hd2FpdCBhLnN0b3JhZ2U/LnBlcnNpc3QoKT8iUEVSU0lTVEVEX1NUQVRFX0dSQU5URUQiOiJQRVJTSVNURURfU1RBVEVfTk9UX0dSQU5URUQiOiJQRVJTSVNURURfU1RBVEVfTk9UX1NVUFBPUlRFRCJ9fTtfLnJhKCJ5dGdsb2JhbC5zdG9yYWdlQ2xhc3NfIixwNCk7dmFyIEFyYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaGFuZGxlRXJyb3I9YTt0aGlzLmo9Yjt0aGlzLm89ITE7c2VsZi5kb2N1bWVudD09PXZvaWQgMHx8c2VsZi5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgpPT57dGhpcy5vPSEwfSk7dGhpcy52PU1hdGgucmFuZG9tKCk8PS4yfUpiKGEpe3RoaXMuaGFuZGxlRXJyb3IoYSl9bG0oYSxiKXtzd2l0Y2goYSl7Y2FzZSAiSURCX0RBVEFfQ09SUlVQVEVEIjpfLngoImlkYl9kYXRhX2NvcnJ1cHRlZF9raWxsc3dpdGNoIil8fHRoaXMuaigiaWRiRGF0YUNvcnJ1cHRlZCIsYik7YnJlYWs7Y2FzZSAiSURCX1VORVhQRUNURURMWV9DTE9TRUQiOnRoaXMuaigiaWRiVW5leHBlY3RlZGx5Q2xvc2VkIixiKTticmVhaztjYXNlICJJU19TVVBQT1JURURfQ09NUExFVEVEIjpfLngoImlkYl9pc19zdXBwb3J0ZWRfY29tcGxldGVkX2tpbGxzd2l0Y2giKXx8dGhpcy5qKCJpZGJJc1N1cHBvcnRlZENvbXBsZXRlZCIsYik7YnJlYWs7CmNhc2UgIlFVT1RBX0VYQ0VFREVEIjp5dWEodGhpcyxiKTticmVhaztjYXNlICJUUkFOU0FDVElPTl9FTkRFRCI6dGhpcy52JiZNYXRoLnJhbmRvbSgpPD0uMSYmdGhpcy5qKCJpZGJUcmFuc2FjdGlvbkVuZGVkIixiKTticmVhaztjYXNlICJUUkFOU0FDVElPTl9VTkVYUEVDVEVETFlfQUJPUlRFRCI6dGhpcy5qKCJpZGJUcmFuc2FjdGlvbkFib3J0ZWQiLHsuLi5iLGhhc1dpbmRvd1VubG9hZGVkOnRoaXMub30pfX19O3ZhciBBNT0hMTt2YXIgQ3VhPXtGaTp7ZmVlZGJhY2tFbmRwb2ludDp5Myhxd2EpLG1vZGlmeUNoYW5uZWxOb3RpZmljYXRpb25QcmVmZXJlbmNlRW5kcG9pbnQ6eTMoc3dhKSxwbGF5bGlzdEVkaXRFbmRwb2ludDp5Myh0d2EpLHNoYXJlRW50aXR5RW5kcG9pbnQ6eTMoejUpLHN1YnNjcmliZUVuZHBvaW50OnkzKG93YSksdW5kb0ZlZWRiYWNrRW5kcG9pbnQ6eTMocndhKSx1bnN1YnNjcmliZUVuZHBvaW50OnkzKHB3YSksd2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQ6eTModXdhKX19O3ZhciBGdWE9bmV3IE1hcCxFdWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYixjLGQsZSl7c3VwZXIoKTt0aGlzLmNvbnRhaW5lcj1hO3RoaXMud2ViUGxheWVyQ29udGV4dENvbmZpZz1iO3RoaXMuaj1jO3RoaXMuRWo9ZDt0aGlzLnBsYXllclZhcnM9ZTtKdWEodGhpcyl9bGEoKXt0aGlzLmFwaSYmdGhpcy5hcGkuZGVzdHJveSgpO1dfKHRoaXMuY29udGFpbmVyKTtzdXBlci5sYSgpfX07dmFyIEJ3YT17WyJhcGkuaW52YWxpZHBhcmFtIl06MixhdXRoOjE1MCxbImRybS5hdXRoIl06MTUwLFsiaGVhcnRiZWF0Lm5ldCJdOjE1MCxbImhlYXJ0YmVhdC5zZXJ2ZXJlcnJvciJdOjE1MCxbImhlYXJ0YmVhdC5zdG9wIl06MTUwLFsiaHRtbDUudW5zdXBwb3J0ZWRhZHMiXTo1LFsiZm10Lm5vbmVhdmFpbGFibGUiXTo1LFsiZm10LmRlY29kZSJdOjUsWyJmbXQudW5wbGF5YWJsZSJdOjUsWyJodG1sNS5taXNzaW5nYXBpIl06NSxbImh0bWw1LnVuc3VwcG9ydGVkbGl2ZSJdOjUsWyJkcm0udW5hdmFpbGFibGUiXTo1LFsibXJtLmJsb2NrZWQiXToxNTEsWyJlbWJlZGRlci5pZGVudGl0eS5kZW5pZWQiXToxNTIsWyJlbWJlZGRlci5pZGVudGl0eS5taXNzaW5nLnJlZmVycmVyIl06MTUzfTt2YXIgTHVhPW5ldyBTZXQoImVuZFNlY29uZHMgc3RhcnRTZWNvbmRzIG1lZGlhQ29udGVudFVybCBzdWdnZXN0ZWRRdWFsaXR5IHZpZGVvSWQgcmN0IHJjdG4gcGxheW11dGVkIG11dGVkX2F1dG9wbGF5X2R1cmF0aW9uX21vZGUiLnNwbGl0KCIgIikpO3ZhciBXdWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7dmFyIGE9TDQsYj1INDtzdXBlcigpO3RoaXMuYXBpPWE7dGhpcy52PXRoaXMuTT0hMTt0aGlzLlU9W107dGhpcy5aPXt9O3RoaXMuQj1bXTt0aGlzLm89W107dGhpcy5oYT0hMTt0aGlzLnNlc3Npb25JZD10aGlzLmo9bnVsbDt0aGlzLnRhcmdldE9yaWdpbj0iKiI7dGhpcy5nYT1fLngoIndlYl9wbGF5ZXJfc3BsaXRfZXZlbnRfYnVzX2lmcmFtZSIpO3RoaXMuST1fLncoIlBPU1RfTUVTU0FHRV9PUklHSU4iKXx8YCR7ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2RvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lfWA7dGhpcy5EPWM9Pnt0aGlzLm9uTWVzc2FnZShjKX07QjUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5EKTtpZihhPV8udygiV0lER0VUX0lEIikpdGhpcy5zZXNzaW9uSWQ9YTtiJiZ0aGlzLkQoYik7QTQodGhpcywib25SZWFkeSIsKCk9Pnt0aGlzLk09ITA7dmFyIGM9dGhpcy5hcGkuZ2V0VmlkZW9EYXRhKCk7CmMuaXNQbGF5YWJsZXx8KHRoaXMuaGE9ITAsdGhpcy5lcnJvckNvZGU9KGM9Yy5lcnJvckNvZGUpP0J3YVtjXXx8NTo1LHRoaXMuc2VuZE1lc3NhZ2UoIm9uRXJyb3IiLE51bWJlcih0aGlzLmVycm9yQ29kZSkpKTtENCh0aGlzKTt0aGlzLmp8fHRoaXMudnx8d2luZG93LnBhcmVudD09PXdpbmRvd3x8IXRoaXMuc2Vzc2lvbklkfHxDNCh0aGlzLHtldmVudDoicmVhZHlUb0xpc3RlbiJ9LHdpbmRvdy5wYXJlbnQpfSk7QTQodGhpcywib25WaWRlb1Byb2dyZXNzIix0aGlzLmZjLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uVm9sdW1lQ2hhbmdlIix0aGlzLlZkLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uQXBpQ2hhbmdlIix0aGlzLm9hLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uUGxheWJhY2tRdWFsaXR5Q2hhbmdlIix0aGlzLk1hLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uUGxheWJhY2tSYXRlQ2hhbmdlIix0aGlzLlFhLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uU3RhdGVDaGFuZ2UiLHRoaXMuRWIuYmluZCh0aGlzKSk7CkE0KHRoaXMsIm9uV2ViZ2xTZXR0aW5nc0NoYW5nZWQiLHRoaXMuRmwuYmluZCh0aGlzKSk7QTQodGhpcywib25DYXB0aW9uc1RyYWNrTGlzdENoYW5nZWQiLHRoaXMueWEuYmluZCh0aGlzKSk7QTQodGhpcywiY2FwdGlvbnNzZXR0aW5nc2NoYW5nZWQiLHRoaXMuRmEuYmluZCh0aGlzKSl9c2VuZE1lc3NhZ2UoYSxiKXthPXtldmVudDphLGluZm86Yj09PXZvaWQgMD9udWxsOmJ9O3RoaXMudj9DNCh0aGlzLGEpOnRoaXMuVS5wdXNoKGEpfUViKGEpe2E9e3BsYXllclN0YXRlOmEsY3VycmVudFRpbWU6dGhpcy5hcGkuZ2V0Q3VycmVudFRpbWUoKSxkdXJhdGlvbjp0aGlzLmFwaS5nZXREdXJhdGlvbigpLHZpZGVvRGF0YTp0aGlzLmFwaS5nZXRWaWRlb0RhdGEoKSx2aWRlb1N0YXJ0Qnl0ZXM6MCx2aWRlb0J5dGVzVG90YWw6dGhpcy5hcGkuZ2V0VmlkZW9CeXRlc1RvdGFsKCksdmlkZW9Mb2FkZWRGcmFjdGlvbjp0aGlzLmFwaS5nZXRWaWRlb0xvYWRlZEZyYWN0aW9uKCkscGxheWJhY2tRdWFsaXR5OnRoaXMuYXBpLmdldFBsYXliYWNrUXVhbGl0eSgpLAphdmFpbGFibGVRdWFsaXR5TGV2ZWxzOnRoaXMuYXBpLmdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMoKSxjdXJyZW50VGltZUxhc3RVcGRhdGVkXzpEYXRlLm5vdygpLzFFMyxwbGF5YmFja1JhdGU6dGhpcy5hcGkuZ2V0UGxheWJhY2tSYXRlKCksbWVkaWFSZWZlcmVuY2VUaW1lOnRoaXMuYXBpLmdldE1lZGlhUmVmZXJlbmNlVGltZSgpfTt0aGlzLmFwaS5nZXRWaWRlb1VybCYmKGEudmlkZW9Vcmw9dGhpcy5hcGkuZ2V0VmlkZW9VcmwoKSk7dGhpcy5hcGkuZ2V0VmlkZW9Db250ZW50UmVjdCYmKGEudmlkZW9Db250ZW50UmVjdD10aGlzLmFwaS5nZXRWaWRlb0NvbnRlbnRSZWN0KCkpO3RoaXMuYXBpLmdldFByb2dyZXNzU3RhdGUmJihhLnByb2dyZXNzU3RhdGU9dGhpcy5hcGkuZ2V0UHJvZ3Jlc3NTdGF0ZSgpKTt0aGlzLmFwaS5nZXRQbGF5bGlzdCYmKGEucGxheWxpc3Q9dGhpcy5hcGkuZ2V0UGxheWxpc3QoKSk7dGhpcy5hcGkuZ2V0UGxheWxpc3RJbmRleCYmKGEucGxheWxpc3RJbmRleD0KdGhpcy5hcGkuZ2V0UGxheWxpc3RJbmRleCgpKTtFNCh0aGlzLGEpfU1hKGEpe2E9e3BsYXliYWNrUXVhbGl0eTphfTt0aGlzLmFwaS5nZXRBdmFpbGFibGVRdWFsaXR5TGV2ZWxzJiYoYS5hdmFpbGFibGVRdWFsaXR5TGV2ZWxzPXRoaXMuYXBpLmdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMoKSk7dGhpcy5hcGkuZ2V0UHJlZmVycmVkUXVhbGl0eSYmKGEucHJlZmVycmVkUXVhbGl0eT10aGlzLmFwaS5nZXRQcmVmZXJyZWRRdWFsaXR5KCkpO0U0KHRoaXMsYSl9UWEoYSl7RTQodGhpcyx7cGxheWJhY2tSYXRlOmF9KX1vYSgpe3ZhciBhPXRoaXMuYXBpLmdldE9wdGlvbnMoKSxiPXtuYW1lc3BhY2VzOmF9O2ZvcihsZXQgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKyl7bGV0IGU9YVtjXSxmPXRoaXMuYXBpLmdldE9wdGlvbnMoZSk7YltlXT17b3B0aW9uczpmfTtmb3IobGV0IGg9MCxrPWYubGVuZ3RoO2g8aztoKyspe2xldCBsPWZbaF0sbT10aGlzLmFwaS5nZXRPcHRpb24oZSxsKTtiW2VdW2xdPQptfX10aGlzLnNlbmRNZXNzYWdlKCJhcGlJbmZvRGVsaXZlcnkiLGIpfVZkKCl7RTQodGhpcyx7bXV0ZWQ6dGhpcy5hcGkuaXNNdXRlZCgpLHZvbHVtZTp0aGlzLmFwaS5nZXRWb2x1bWUoKX0pfWZjKGEpe2E9e2N1cnJlbnRUaW1lOmEsdmlkZW9CeXRlc0xvYWRlZDp0aGlzLmFwaS5nZXRWaWRlb0J5dGVzTG9hZGVkKCksdmlkZW9Mb2FkZWRGcmFjdGlvbjp0aGlzLmFwaS5nZXRWaWRlb0xvYWRlZEZyYWN0aW9uKCksY3VycmVudFRpbWVMYXN0VXBkYXRlZF86RGF0ZS5ub3coKS8xRTMscGxheWJhY2tSYXRlOnRoaXMuYXBpLmdldFBsYXliYWNrUmF0ZSgpLG1lZGlhUmVmZXJlbmNlVGltZTp0aGlzLmFwaS5nZXRNZWRpYVJlZmVyZW5jZVRpbWUoKX07dGhpcy5hcGkuZ2V0UHJvZ3Jlc3NTdGF0ZSYmKGEucHJvZ3Jlc3NTdGF0ZT10aGlzLmFwaS5nZXRQcm9ncmVzc1N0YXRlKCkpO0U0KHRoaXMsYSl9RmwoKXtFNCh0aGlzLHtzcGhlcmljYWxQcm9wZXJ0aWVzOnRoaXMuYXBpLmdldFNwaGVyaWNhbFByb3BlcnRpZXMoKX0pfXlhKCl7aWYodGhpcy5hcGkuZ2V0Q2FwdGlvblRyYWNrcyl7bGV0IGE9CntjYXB0aW9uVHJhY2tzOnRoaXMuYXBpLmdldENhcHRpb25UcmFja3MoKX07RTQodGhpcyxhKX19RmEoKXtpZih0aGlzLmFwaS5nZXRTdWJ0aXRsZXNVc2VyU2V0dGluZ3Mpe2xldCBhPXtzdWJ0aXRsZXNVc2VyU2V0dGluZ3M6dGhpcy5hcGkuZ2V0U3VidGl0bGVzVXNlclNldHRpbmdzKCl9O0U0KHRoaXMsYSl9fW9uTWVzc2FnZShhKXtpZighKHRoaXMuSSE9PSIqIiYmYS5vcmlnaW4hPT10aGlzLkl8fHRoaXMuaiYmYS5zb3VyY2UhPT10aGlzLmp8fHR5cGVvZiBhLmRhdGEhPT0ic3RyaW5nIikpe3RyeXt2YXIgYj1KU09OLnBhcnNlKGEuZGF0YSl9Y2F0Y2goZil7cmV0dXJufWlmKGIpc3dpdGNoKGIuZXZlbnQpe2Nhc2UgImxpc3RlbmluZyI6dmFyIGM9YS5zb3VyY2U7YT1hLm9yaWdpbjtiPWIuaWQ7YSE9PSJudWxsIiYmKHRoaXMuST10aGlzLnRhcmdldE9yaWdpbj1hKTt0aGlzLmo9Yzt0aGlzLnNlc3Npb25JZD1iO0Q0KHRoaXMpO2JyZWFrO2Nhc2UgImNvbW1hbmQiOmM9Yi5mdW5jOwp2YXIgZD1iLmFyZ3M7aWYoYz09PSJhZGRFdmVudExpc3RlbmVyIiYmZCliPWRbMF0sYz1hLm9yaWdpbixiPT09Im9uUmVhZHkiP3RoaXMuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyk6Yj09PSJvbkVycm9yIiYmdGhpcy5oYSYmKHRoaXMuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyx0aGlzLmVycm9yQ29kZSksdGhpcy5lcnJvckNvZGU9dm9pZCAwKSx0aGlzLmFwaS5sb2dBcGlDYWxsKGAke2J9IHJlZ2lzdHJhdGlvbmAsYyksdGhpcy5aW2JdfHxiPT09Im9uUmVhZHkifHwoYT1NdWEodGhpcyxiLGMpLHRoaXMuby5wdXNoKHtldmVudFR5cGU6YixsaXN0ZW5lcjphLG9yaWdpbjpjfSksdGhpcy5nYT90aGlzLmFwaS5oYW5kbGVFeHRlcm5hbENhbGwoImFkZEV2ZW50TGlzdGVuZXIiLFtiLGFdLGMpOnRoaXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoYixhKSx0aGlzLlpbYl09ITApO2Vsc2UgaWYoYj1jLGM9ZCxhPWEub3JpZ2luLHRoaXMuYXBpLmlzRXh0ZXJuYWxNZXRob2RBdmFpbGFibGUoYiwKYSkpe2M9Y3x8W107aWYoYy5sZW5ndGg+MCYmeDQoYikpe3ZhciBlPWM7aWYoXy5BYShlWzBdKSYmIUFycmF5LmlzQXJyYXkoZVswXSkpZD1lWzBdO2Vsc2Ugc3dpdGNoKGQ9e30sYil7Y2FzZSAibG9hZFZpZGVvQnlJZCI6Y2FzZSAiY3VlVmlkZW9CeUlkIjpkPXk0KGVbMF0sZVsxXSE9PXZvaWQgMD9OdW1iZXIoZVsxXSk6dm9pZCAwLGVbMl0pO2JyZWFrO2Nhc2UgImxvYWRWaWRlb0J5VXJsIjpjYXNlICJjdWVWaWRlb0J5VXJsIjpkPWVbMF07dHlwZW9mIGQ9PT0ic3RyaW5nIiYmKGQ9e21lZGlhQ29udGVudFVybDpkLHN0YXJ0U2Vjb25kczplWzFdIT09dm9pZCAwP051bWJlcihlWzFdKTp2b2lkIDAsc3VnZ2VzdGVkUXVhbGl0eTplWzJdfSk7Yjp7aWYoKGU9ZC5tZWRpYUNvbnRlbnRVcmwpJiYoZT0vXC8oW3ZlXXxlbWJlZClcLyhbXiM/XSspLy5leGVjKGUpKSYmZVsyXSl7ZT1lWzJdO2JyZWFrIGJ9ZT1udWxsfWQudmlkZW9JZD1lO2Q9eTQoZCk7YnJlYWs7Y2FzZSAibG9hZFBsYXlsaXN0IjpjYXNlICJjdWVQbGF5bGlzdCI6ZD0KejQoZVswXSxlWzFdLGVbMl0sZVszXSl9Yy5sZW5ndGg9MTtjWzBdPWR9dGhpcy5hcGkuaGFuZGxlRXh0ZXJuYWxDYWxsKGIsYyxhKTt4NChiKSYmRTQodGhpcyxCNCh0aGlzKSl9fX19bGEoKXtzdXBlci5sYSgpO0I1LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuRCk7Zm9yKHZhciBhPTA7YTx0aGlzLkIubGVuZ3RoO2ErKyl7dmFyIGI9dGhpcy5CW2FdO3RoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYi5ldmVudFR5cGUsYi5saXN0ZW5lcil9dGhpcy5CPVtdO2ZvcihhPTA7YTx0aGlzLm8ubGVuZ3RoO2ErKyliPXRoaXMub1thXSx0aGlzLmdhP3RoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsW2IuZXZlbnRUeXBlLGIubGlzdGVuZXJdLGIub3JpZ2luKTp0aGlzLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKGIuZXZlbnRUeXBlLGIubGlzdGVuZXIpO3RoaXMubz1bXX19LEI1PXdpbmRvdzt2YXIgWHVhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhLGIpe3ZhciBjPUw0O3N1cGVyKCk7dGhpcy5hcGk9Yzt0aGlzLmlkPWE7dGhpcy5vcmlnaW49Yjt0aGlzLmo9e307dGhpcy52PV8ueCgid2ViX3BsYXllcl9zcGxpdF9ldmVudF9idXNfaWZyYW1lIik7dGhpcy5vPWQ9Pnt0aGlzLm9uTWVzc2FnZShkKX07QzUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5vKTtGNCh0aGlzLCJSRUNFSVZJTkciKX1hZGRMaXN0ZW5lcihhLGIpe2lmKCEoYSBpbiB0aGlzLmopKXt2YXIgYz10aGlzLkIuYmluZCh0aGlzLGEpO3RoaXMualthXT1jO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihhLGMsYil9fUIoYSxiKXt0aGlzLmlhKCl8fEY0KHRoaXMsYSxPdWEoYSxiKSl9cmVtb3ZlTGlzdGVuZXIoYSxiKXthIGluIHRoaXMuaiYmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLHRoaXMualthXSxiKSxkZWxldGUgdGhpcy5qW2FdKX1hZGRFdmVudExpc3RlbmVyKGEsYixjKXt0aGlzLnY/CmE9PT0ib25SZWFkeSI/dGhpcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihhLGIpOnRoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbCgiYWRkRXZlbnRMaXN0ZW5lciIsW2EsYl0sY3x8bnVsbCk6dGhpcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihhLGIpfXJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpe3RoaXMudj9hPT09Im9uUmVhZHkiP3RoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKTp0aGlzLmFwaS5oYW5kbGVFeHRlcm5hbENhbGwoInJlbW92ZUV2ZW50TGlzdGVuZXIiLFthLGJdLGN8fG51bGwpOnRoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKX1vbk1lc3NhZ2UoYSl7aWYoYS5vcmlnaW49PT10aGlzLm9yaWdpbil7dmFyIGI9YS5kYXRhO2lmKHR5cGVvZiBiPT09InN0cmluZyIpe3RyeXtiPUpTT04ucGFyc2UoYil9Y2F0Y2goZSl7cmV0dXJufWlmKGIuY29tbWFuZCl7dmFyIGM9Yi5jb21tYW5kO2I9Yi5kYXRhO2E9YS5vcmlnaW47aWYoIXRoaXMuaWEoKSl7dmFyIGQ9CmJ8fHt9O3N3aXRjaChjKXtjYXNlICJhZGRFdmVudExpc3RlbmVyIjp0eXBlb2YgZC5ldmVudD09PSJzdHJpbmciJiZ0aGlzLmFkZExpc3RlbmVyKGQuZXZlbnQsYSk7YnJlYWs7Y2FzZSAicmVtb3ZlRXZlbnRMaXN0ZW5lciI6dHlwZW9mIGQuZXZlbnQ9PT0ic3RyaW5nIiYmdGhpcy5yZW1vdmVMaXN0ZW5lcihkLmV2ZW50LGEpO2JyZWFrO2RlZmF1bHQ6dGhpcy5hcGkuaXNSZWFkeSgpJiZ0aGlzLmFwaS5pc0V4dGVybmFsTWV0aG9kQXZhaWxhYmxlKGMsYXx8bnVsbCkmJihiPVB1YShjLGJ8fHt9KSxiPXRoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbChjLGIsYXx8bnVsbCksKGI9UXVhKGMsYikpJiZGNCh0aGlzLGMsYikpfX19fX19bGEoKXtDNS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLm8pO2ZvcihsZXQgYSBpbiB0aGlzLmopdGhpcy5qLmhhc093blByb3BlcnR5KGEpJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGEpO3N1cGVyLmxhKCl9fSxDNT13aW5kb3csTnVhPQp3aW5kb3cucGFyZW50O3ZhciBHND1uZXcgeHdhO3ZhciBMND1udWxsLE40PW51bGwsSjQ9KCk9Pnt9LEg0O3ZhciBUND0hMTtfLmZ0LnRoZW4oKCk9PntfLkFxKCJlcF9pbml0X2N1cyIpO2lmKCFBNSl7QTU9ITA7dmFyIGE9Xy54KCJlbmFibGVfd2l6X2NvbnRleHRfcGVyX2NvbXBvbmVudCIpfHwhMTtPYmplY3QuYXNzaWduKF8uS3Use1JpOiEwLEdwOmEsRnA6YSxHdjpfLngoIndlYl9pbmNsdWRlX2Nvd190cmFjaW5nIiksaGFuZGxlRXJyb3I6enVhfSk7QnVhKCk7Xy53dj1mc2E7Xy54dj1nc2F9YnZhKCk7Xy5BcSgiZXBfaW5pdF9lcHMiKTtfLnJhKCJ5dC5zZXRDb25maWciLF8uUWkpO18ucmEoInl0LmNvbmZpZy5zZXQiLF8uUWkpO18ucmEoInl0LnNldE1zZyIsYjEpO18ucmEoInl0Lm1zZ3Muc2V0IixiMSk7Xy5yYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIixfLkdwKTtfLnJhKCJ3cml0ZUVtYmVkIixVdWEpO18ucmEoInl0LmFidXNlLnBsYXllci5ib3RndWFyZEluaXRpYWxpemVkIixfLnNhKCJ5dC5hYnVzZS5wbGF5ZXIuYm90Z3VhcmRJbml0aWFsaXplZCIpfHxSdWEpO18ucmEoInl0LmFidXNlLnBsYXllci5pbnZva2VCb3RndWFyZCIsCl8uc2EoInl0LmFidXNlLnBsYXllci5pbnZva2VCb3RndWFyZCIpfHxTdWEpO18ucmEoInl0LmFidXNlLmRjbGtzdGF0dXMuY2hlY2tEY2xrU3RhdHVzIixfLnNhKCJ5dC5hYnVzZS5kY2xrc3RhdHVzLmNoZWNrRGNsa1N0YXR1cyIpfHxhMyk7Xy5yYSgieXQucGxheWVyLmV4cG9ydHMubmF2aWdhdGUiLF8uc2EoInl0LnBsYXllci5leHBvcnRzLm5hdmlnYXRlIil8fEJ0YSk7Xy5yYSgieXQudXRpbC5hY3Rpdml0eS5pbml0IixfLnNhKCJ5dC51dGlsLmFjdGl2aXR5LmluaXQiKXx8bDApO18ucmEoInl0LnV0aWwuYWN0aXZpdHkuZ2V0VGltZVNpbmNlQWN0aXZlIixfLnNhKCJ5dC51dGlsLmFjdGl2aXR5LmdldFRpbWVTaW5jZUFjdGl2ZSIpfHxfLkJuKTtfLnJhKCJ5dC51dGlsLmFjdGl2aXR5LnNldFRpbWVzdGFtcCIsXy5zYSgieXQudXRpbC5hY3Rpdml0eS5zZXRUaW1lc3RhbXAiKXx8ajApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixfLlZpKFp1YSkpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsCl8uVmkoJHVhKSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIixfLlZpKGF2YSkpO2d1YSgpO1R1YSgpO18uQXEoImVwX2luaXRfZXBlIik7SjQ9Xy5ENTtfLkFxKCJlcF9pbml0X2N1ZSIpfSk7Xy5ENT0oKT0+e307Cl8uRDU9ZnVuY3Rpb24oYSl7KDAsXy5laCkoInI3OERyYiIpLnRoZW4oKCk9PnsoMCxfLnp5KShhKX0pfTsKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF9iYXNlKTsKLy8gR29vZ2xlIEluYy4K"}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":25,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/images/chaport-launcher-chat-icon-new.png","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.276Z","timestamp":1785126648276,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /images/chaport-launcher-chat-icon-new.png HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://assets.chaport.com/assets/widget-feab807cfdea6b377d896e38e88479b9.css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: image/png\r\ncontent-length: 468\r\nserver: cloudflare\r\nlast-modified: Thu, 11 Jun 2026 09:43:35 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=FH6gmOV9tsAhL%2BGbdWsqZWwEsT1ywoXjEttUVhJzXiauPpiBZgZb%2F8MSMfOYe32uV1ugQRTjIqczrLuB58Q9eFIUY1jTTWH8Xg%2FDrCcm6k%2F0hS3fmyIRL%2B51sMZaka2%2BCnwrag%3D%3D\"}]}\r\netag: \"6a2a8347-2fa\"\r\nexpires: Sun, 23 Aug 2026 13:00:20 GMT\r\ncache-control: max-age=2592000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\ncf-polished: ok, orig_size=762\r\npriority: u=4;i=?0,cf-chb=(45;u=4;i=?0)\r\ncf-bgj: imgq:100,h2pri\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nage: 228627\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\ncf-ray: a218e92fb9c1b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":468,"size_decoded":1488,"mime_type":"image/png","magic":"PNG image data, 32 x 36, 8-bit gray+alpha, non-interlaced","md5":"c893cdbf01d4901c895649e653607876","sha1":"53f42045c25f8732c60fac3687e1d6c3c8a75331","sha256":"aa4cae387402003c90d9dce3355e6fcb43c1886a5a3d8f1006c62458a34954f1","sha512":"8b603e4019d23225c936f21e81f8a3519170a714f8d3107452de4561d7b61b3ba180c8c903ba56864e5932f7c21da2d2bce3e60e0d75d132a25acf809344c997","ssdeep":"","tlshash":"81f00ed70348121ed3c211212b1289b8845162b485d02f15f80e8604976926432cb7b3","first_seen":"2024-03-02T20:53:41Z","last_seen":"2026-07-27T08:03:47.552143Z","times_seen":1706,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAACAAAAAkCAQAAABC4vBpAAABm0lEQVR42mNAAAuRquCqqqp6ArC8KthShAETTI/6ef0/keDX9RkxaNoX5oMk/hEJQWBhAZL2VMv/P8DaSTHiR6oVVDsH05VFYO0kGnFlEQcT2AB+oQ93yDHgwx1+IYgB0u8/kGPA+4/80hADZN5/JNMAmVEDsBoABAgWpghOA+DCX57cO/H/L5D1596Jr0+A4ugiOAyACv79Ge/Kz3Fk1f//J1fzc0Y6//397zeqyJ8f//EbkOstz3Vm/f//FzbKc2d4ggxAFcFtAFT49+s3l/+DWW8u/3kNZKGLUBiIoykRpwGfyDLgA8wAyXcvKTKAh/vlIUq8wMjAMCWXojBgYJITeLj3PyUGMDDqKd7e8R8/wG4AFDADXSHYmXFj27179x5jgY9ePIEYgmkAwggWBkZmHhYxFgksUFxCqjLmwUGYIZgGQAKTGWQMDsjKwCgqWBJ5dz/YDEwDEMbggmDDGQQF8sNv7gXqhhlACoAZwsufHXpj9///3/9CDCDZEJB3ePjyQs+tEZQCCZFrCAM7OyM7KBmSawgTOGQYALpPHT6/PJbKAAAAAElFTkSuQmCC"}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/slick.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.856Z","timestamp":1785126645856,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/slick.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 10097\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42863,"size_decoded":10353,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (42862)","md5":"d5a61c749e44e47159af8a6579dda121","sha1":"3b41b3bc956685015a347a2238e71db29dfa0dbb","sha256":"0c7178cc6ca34fb18e30f070a5e7a1c287b2d7ccfcba2cfdf06e0f46eda55740","sha512":"5ed98cb4311c373da3ede92bb47bce551e22c30683ea8fc55097baf99abe1e0702b24de48f8b9241047cc1e4364158f5a343e4e8fc182e8866db4e99ccd7ee6e","ssdeep":"768:4rkkX123A5YHi6pWzYdlNWYcx16nnYdXRRMd2KYCQCsPShb1ez7RFmYH:EPrYdlNixEePiYH","tlshash":"e513a549d205276285d721e62105c40eb3f7fb3cba22c0e475c9d3ea646ec4896d7bfa","first_seen":"2023-03-07T01:06:34Z","last_seen":"2026-07-27T08:00:45.970558Z","times_seen":109055,"resource_available":true,"data":"IWZ1bmN0aW9uKGkpeyJ1c2Ugc3RyaWN0IjsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGkpOiJ1bmRlZmluZWQiIT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1pKHJlcXVpcmUoImpxdWVyeSIpKTppKGpRdWVyeSl9KGZ1bmN0aW9uKGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT13aW5kb3cuU2xpY2t8fHt9OyhlPWZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gZnVuY3Rpb24odCxvKXt2YXIgcyxuPXRoaXM7bi5kZWZhdWx0cz17YWNjZXNzaWJpbGl0eTohMCxhZGFwdGl2ZUhlaWdodDohMSxhcHBlbmRBcnJvd3M6aSh0KSxhcHBlbmREb3RzOmkodCksYXJyb3dzOiEwLGFzTmF2Rm9yOm51bGwscHJldkFycm93Oic8YnV0dG9uIGNsYXNzPSJzbGljay1wcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyIgdHlwZT0iYnV0dG9uIj5QcmV2aW91czwvYnV0dG9uPicsbmV4dEFycm93Oic8YnV0dG9uIGNsYXNzPSJzbGljay1uZXh0IiBhcmlhLWxhYmVsPSJOZXh0IiB0eXBlPSJidXR0b24iPk5leHQ8L2J1dHRvbj4nLGF1dG9wbGF5OiExLGF1dG9wbGF5U3BlZWQ6M2UzLGNlbnRlck1vZGU6ITEsY2VudGVyUGFkZGluZzoiNTBweCIsY3NzRWFzZToiZWFzZSIsY3VzdG9tUGFnaW5nOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkoJzxidXR0b24gdHlwZT0iYnV0dG9uIiAvPicpLnRleHQodCsxKX0sZG90czohMSxkb3RzQ2xhc3M6InNsaWNrLWRvdHMiLGRyYWdnYWJsZTohMCxlYXNpbmc6ImxpbmVhciIsZWRnZUZyaWN0aW9uOi4zNSxmYWRlOiExLGZvY3VzT25TZWxlY3Q6ITEsZm9jdXNPbkNoYW5nZTohMSxpbmZpbml0ZTohMCxpbml0aWFsU2xpZGU6MCxsYXp5TG9hZDoib25kZW1hbmQiLG1vYmlsZUZpcnN0OiExLHBhdXNlT25Ib3ZlcjohMCxwYXVzZU9uRm9jdXM6ITAscGF1c2VPbkRvdHNIb3ZlcjohMSxyZXNwb25kVG86IndpbmRvdyIscmVzcG9uc2l2ZTpudWxsLHJvd3M6MSxydGw6ITEsc2xpZGU6IiIsc2xpZGVzUGVyUm93OjEsc2xpZGVzVG9TaG93OjEsc2xpZGVzVG9TY3JvbGw6MSxzcGVlZDo1MDAsc3dpcGU6ITAsc3dpcGVUb1NsaWRlOiExLHRvdWNoTW92ZTohMCx0b3VjaFRocmVzaG9sZDo1LHVzZUNTUzohMCx1c2VUcmFuc2Zvcm06ITAsdmFyaWFibGVXaWR0aDohMSx2ZXJ0aWNhbDohMSx2ZXJ0aWNhbFN3aXBpbmc6ITEsd2FpdEZvckFuaW1hdGU6ITAsekluZGV4OjFlM30sbi5pbml0aWFscz17YW5pbWF0aW5nOiExLGRyYWdnaW5nOiExLGF1dG9QbGF5VGltZXI6bnVsbCxjdXJyZW50RGlyZWN0aW9uOjAsY3VycmVudExlZnQ6bnVsbCxjdXJyZW50U2xpZGU6MCxkaXJlY3Rpb246MSwkZG90czpudWxsLGxpc3RXaWR0aDpudWxsLGxpc3RIZWlnaHQ6bnVsbCxsb2FkSW5kZXg6MCwkbmV4dEFycm93Om51bGwsJHByZXZBcnJvdzpudWxsLHNjcm9sbGluZzohMSxzbGlkZUNvdW50Om51bGwsc2xpZGVXaWR0aDpudWxsLCRzbGlkZVRyYWNrOm51bGwsJHNsaWRlczpudWxsLHNsaWRpbmc6ITEsc2xpZGVPZmZzZXQ6MCxzd2lwZUxlZnQ6bnVsbCxzd2lwaW5nOiExLCRsaXN0Om51bGwsdG91Y2hPYmplY3Q6e30sdHJhbnNmb3Jtc0VuYWJsZWQ6ITEsdW5zbGlja2VkOiExfSxpLmV4dGVuZChuLG4uaW5pdGlhbHMpLG4uYWN0aXZlQnJlYWtwb2ludD1udWxsLG4uYW5pbVR5cGU9bnVsbCxuLmFuaW1Qcm9wPW51bGwsbi5icmVha3BvaW50cz1bXSxuLmJyZWFrcG9pbnRTZXR0aW5ncz1bXSxuLmNzc1RyYW5zaXRpb25zPSExLG4uZm9jdXNzZWQ9ITEsbi5pbnRlcnJ1cHRlZD0hMSxuLmhpZGRlbj0iaGlkZGVuIixuLnBhdXNlZD0hMCxuLnBvc2l0aW9uUHJvcD1udWxsLG4ucmVzcG9uZFRvPW51bGwsbi5yb3dDb3VudD0xLG4uc2hvdWxkQ2xpY2s9ITAsbi4kc2xpZGVyPWkodCksbi4kc2xpZGVzQ2FjaGU9bnVsbCxuLnRyYW5zZm9ybVR5cGU9bnVsbCxuLnRyYW5zaXRpb25UeXBlPW51bGwsbi52aXNpYmlsaXR5Q2hhbmdlPSJ2aXNpYmlsaXR5Y2hhbmdlIixuLndpbmRvd1dpZHRoPTAsbi53aW5kb3dUaW1lcj1udWxsLHM9aSh0KS5kYXRhKCJzbGljayIpfHx7fSxuLm9wdGlvbnM9aS5leHRlbmQoe30sbi5kZWZhdWx0cyxvLHMpLG4uY3VycmVudFNsaWRlPW4ub3B0aW9ucy5pbml0aWFsU2xpZGUsbi5vcmlnaW5hbFNldHRpbmdzPW4ub3B0aW9ucyx2b2lkIDAhPT1kb2N1bWVudC5tb3pIaWRkZW4/KG4uaGlkZGVuPSJtb3pIaWRkZW4iLG4udmlzaWJpbGl0eUNoYW5nZT0ibW96dmlzaWJpbGl0eWNoYW5nZSIpOnZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbiYmKG4uaGlkZGVuPSJ3ZWJraXRIaWRkZW4iLG4udmlzaWJpbGl0eUNoYW5nZT0id2Via2l0dmlzaWJpbGl0eWNoYW5nZSIpLG4uYXV0b1BsYXk9aS5wcm94eShuLmF1dG9QbGF5LG4pLG4uYXV0b1BsYXlDbGVhcj1pLnByb3h5KG4uYXV0b1BsYXlDbGVhcixuKSxuLmF1dG9QbGF5SXRlcmF0b3I9aS5wcm94eShuLmF1dG9QbGF5SXRlcmF0b3Isbiksbi5jaGFuZ2VTbGlkZT1pLnByb3h5KG4uY2hhbmdlU2xpZGUsbiksbi5jbGlja0hhbmRsZXI9aS5wcm94eShuLmNsaWNrSGFuZGxlcixuKSxuLnNlbGVjdEhhbmRsZXI9aS5wcm94eShuLnNlbGVjdEhhbmRsZXIsbiksbi5zZXRQb3NpdGlvbj1pLnByb3h5KG4uc2V0UG9zaXRpb24sbiksbi5zd2lwZUhhbmRsZXI9aS5wcm94eShuLnN3aXBlSGFuZGxlcixuKSxuLmRyYWdIYW5kbGVyPWkucHJveHkobi5kcmFnSGFuZGxlcixuKSxuLmtleUhhbmRsZXI9aS5wcm94eShuLmtleUhhbmRsZXIsbiksbi5pbnN0YW5jZVVpZD1lKyssbi5odG1sRXhwcj0vXig/OlxzKig8W1x3XFddKz4pW14+XSopJC8sbi5yZWdpc3RlckJyZWFrcG9pbnRzKCksbi5pbml0KCEwKX19KCkpLnByb3RvdHlwZS5hY3RpdmF0ZUFEQT1mdW5jdGlvbigpe3RoaXMuJHNsaWRlVHJhY2suZmluZCgiLnNsaWNrLWFjdGl2ZSIpLmF0dHIoeyJhcmlhLWhpZGRlbiI6ImZhbHNlIn0pLmZpbmQoImEsIGlucHV0LCBidXR0b24sIHNlbGVjdCIpLmF0dHIoe3RhYmluZGV4OiIwIn0pfSxlLnByb3RvdHlwZS5hZGRTbGlkZT1lLnByb3RvdHlwZS5zbGlja0FkZD1mdW5jdGlvbihlLHQsbyl7dmFyIHM9dGhpcztpZigiYm9vbGVhbiI9PXR5cGVvZiB0KW89dCx0PW51bGw7ZWxzZSBpZih0PDB8fHQ+PXMuc2xpZGVDb3VudClyZXR1cm4hMTtzLnVubG9hZCgpLCJudW1iZXIiPT10eXBlb2YgdD8wPT09dCYmMD09PXMuJHNsaWRlcy5sZW5ndGg/aShlKS5hcHBlbmRUbyhzLiRzbGlkZVRyYWNrKTpvP2koZSkuaW5zZXJ0QmVmb3JlKHMuJHNsaWRlcy5lcSh0KSk6aShlKS5pbnNlcnRBZnRlcihzLiRzbGlkZXMuZXEodCkpOiEwPT09bz9pKGUpLnByZXBlbmRUbyhzLiRzbGlkZVRyYWNrKTppKGUpLmFwcGVuZFRvKHMuJHNsaWRlVHJhY2spLHMuJHNsaWRlcz1zLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSkscy4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpLHMuJHNsaWRlVHJhY2suYXBwZW5kKHMuJHNsaWRlcykscy4kc2xpZGVzLmVhY2goZnVuY3Rpb24oZSx0KXtpKHQpLmF0dHIoImRhdGEtc2xpY2staW5kZXgiLGUpfSkscy4kc2xpZGVzQ2FjaGU9cy4kc2xpZGVzLHMucmVpbml0KCl9LGUucHJvdG90eXBlLmFuaW1hdGVIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKDE9PT1pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYhMD09PWkub3B0aW9ucy5hZGFwdGl2ZUhlaWdodCYmITE9PT1pLm9wdGlvbnMudmVydGljYWwpe3ZhciBlPWkuJHNsaWRlcy5lcShpLmN1cnJlbnRTbGlkZSkub3V0ZXJIZWlnaHQoITApO2kuJGxpc3QuYW5pbWF0ZSh7aGVpZ2h0OmV9LGkub3B0aW9ucy5zcGVlZCl9fSxlLnByb3RvdHlwZS5hbmltYXRlU2xpZGU9ZnVuY3Rpb24oZSx0KXt2YXIgbz17fSxzPXRoaXM7cy5hbmltYXRlSGVpZ2h0KCksITA9PT1zLm9wdGlvbnMucnRsJiYhMT09PXMub3B0aW9ucy52ZXJ0aWNhbCYmKGU9LWUpLCExPT09cy50cmFuc2Zvcm1zRW5hYmxlZD8hMT09PXMub3B0aW9ucy52ZXJ0aWNhbD9zLiRzbGlkZVRyYWNrLmFuaW1hdGUoe2xlZnQ6ZX0scy5vcHRpb25zLnNwZWVkLHMub3B0aW9ucy5lYXNpbmcsdCk6cy4kc2xpZGVUcmFjay5hbmltYXRlKHt0b3A6ZX0scy5vcHRpb25zLnNwZWVkLHMub3B0aW9ucy5lYXNpbmcsdCk6ITE9PT1zLmNzc1RyYW5zaXRpb25zPyghMD09PXMub3B0aW9ucy5ydGwmJihzLmN1cnJlbnRMZWZ0PS1zLmN1cnJlbnRMZWZ0KSxpKHthbmltU3RhcnQ6cy5jdXJyZW50TGVmdH0pLmFuaW1hdGUoe2FuaW1TdGFydDplfSx7ZHVyYXRpb246cy5vcHRpb25zLnNwZWVkLGVhc2luZzpzLm9wdGlvbnMuZWFzaW5nLHN0ZXA6ZnVuY3Rpb24oaSl7aT1NYXRoLmNlaWwoaSksITE9PT1zLm9wdGlvbnMudmVydGljYWw/KG9bcy5hbmltVHlwZV09InRyYW5zbGF0ZSgiK2krInB4LCAwcHgpIixzLiRzbGlkZVRyYWNrLmNzcyhvKSk6KG9bcy5hbmltVHlwZV09InRyYW5zbGF0ZSgwcHgsIitpKyJweCkiLHMuJHNsaWRlVHJhY2suY3NzKG8pKX0sY29tcGxldGU6ZnVuY3Rpb24oKXt0JiZ0LmNhbGwoKX19KSk6KHMuYXBwbHlUcmFuc2l0aW9uKCksZT1NYXRoLmNlaWwoZSksITE9PT1zLm9wdGlvbnMudmVydGljYWw/b1tzLmFuaW1UeXBlXT0idHJhbnNsYXRlM2QoIitlKyJweCwgMHB4LCAwcHgpIjpvW3MuYW5pbVR5cGVdPSJ0cmFuc2xhdGUzZCgwcHgsIitlKyJweCwgMHB4KSIscy4kc2xpZGVUcmFjay5jc3MobyksdCYmc2V0VGltZW91dChmdW5jdGlvbigpe3MuZGlzYWJsZVRyYW5zaXRpb24oKSx0LmNhbGwoKX0scy5vcHRpb25zLnNwZWVkKSl9LGUucHJvdG90eXBlLmdldE5hdlRhcmdldD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLm9wdGlvbnMuYXNOYXZGb3I7cmV0dXJuIHQmJm51bGwhPT10JiYodD1pKHQpLm5vdChlLiRzbGlkZXIpKSx0fSxlLnByb3RvdHlwZS5hc05hdkZvcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldE5hdlRhcmdldCgpO251bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuZWFjaChmdW5jdGlvbigpe3ZhciB0PWkodGhpcykuc2xpY2soImdldFNsaWNrIik7dC51bnNsaWNrZWR8fHQuc2xpZGVIYW5kbGVyKGUsITApfSl9LGUucHJvdG90eXBlLmFwcGx5VHJhbnNpdGlvbj1mdW5jdGlvbihpKXt2YXIgZT10aGlzLHQ9e307ITE9PT1lLm9wdGlvbnMuZmFkZT90W2UudHJhbnNpdGlvblR5cGVdPWUudHJhbnNmb3JtVHlwZSsiICIrZS5vcHRpb25zLnNwZWVkKyJtcyAiK2Uub3B0aW9ucy5jc3NFYXNlOnRbZS50cmFuc2l0aW9uVHlwZV09Im9wYWNpdHkgIitlLm9wdGlvbnMuc3BlZWQrIm1zICIrZS5vcHRpb25zLmNzc0Vhc2UsITE9PT1lLm9wdGlvbnMuZmFkZT9lLiRzbGlkZVRyYWNrLmNzcyh0KTplLiRzbGlkZXMuZXEoaSkuY3NzKHQpfSxlLnByb3RvdHlwZS5hdXRvUGxheT1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5hdXRvUGxheUNsZWFyKCksaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihpLmF1dG9QbGF5VGltZXI9c2V0SW50ZXJ2YWwoaS5hdXRvUGxheUl0ZXJhdG9yLGkub3B0aW9ucy5hdXRvcGxheVNwZWVkKSl9LGUucHJvdG90eXBlLmF1dG9QbGF5Q2xlYXI9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2kuYXV0b1BsYXlUaW1lciYmY2xlYXJJbnRlcnZhbChpLmF1dG9QbGF5VGltZXIpfSxlLnByb3RvdHlwZS5hdXRvUGxheUl0ZXJhdG9yPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxlPWkuY3VycmVudFNsaWRlK2kub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDtpLnBhdXNlZHx8aS5pbnRlcnJ1cHRlZHx8aS5mb2N1c3NlZHx8KCExPT09aS5vcHRpb25zLmluZmluaXRlJiYoMT09PWkuZGlyZWN0aW9uJiZpLmN1cnJlbnRTbGlkZSsxPT09aS5zbGlkZUNvdW50LTE/aS5kaXJlY3Rpb249MDowPT09aS5kaXJlY3Rpb24mJihlPWkuY3VycmVudFNsaWRlLWkub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCxpLmN1cnJlbnRTbGlkZS0xPT0wJiYoaS5kaXJlY3Rpb249MSkpKSxpLnNsaWRlSGFuZGxlcihlKSl9LGUucHJvdG90eXBlLmJ1aWxkQXJyb3dzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczshMD09PWUub3B0aW9ucy5hcnJvd3MmJihlLiRwcmV2QXJyb3c9aShlLm9wdGlvbnMucHJldkFycm93KS5hZGRDbGFzcygic2xpY2stYXJyb3ciKSxlLiRuZXh0QXJyb3c9aShlLm9wdGlvbnMubmV4dEFycm93KS5hZGRDbGFzcygic2xpY2stYXJyb3ciKSxlLnNsaWRlQ291bnQ+ZS5vcHRpb25zLnNsaWRlc1RvU2hvdz8oZS4kcHJldkFycm93LnJlbW92ZUNsYXNzKCJzbGljay1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiB0YWJpbmRleCIpLGUuJG5leHRBcnJvdy5yZW1vdmVDbGFzcygic2xpY2staGlkZGVuIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4gdGFiaW5kZXgiKSxlLmh0bWxFeHByLnRlc3QoZS5vcHRpb25zLnByZXZBcnJvdykmJmUuJHByZXZBcnJvdy5wcmVwZW5kVG8oZS5vcHRpb25zLmFwcGVuZEFycm93cyksZS5odG1sRXhwci50ZXN0KGUub3B0aW9ucy5uZXh0QXJyb3cpJiZlLiRuZXh0QXJyb3cuYXBwZW5kVG8oZS5vcHRpb25zLmFwcGVuZEFycm93cyksITAhPT1lLm9wdGlvbnMuaW5maW5pdGUmJmUuJHByZXZBcnJvdy5hZGRDbGFzcygic2xpY2stZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpKTplLiRwcmV2QXJyb3cuYWRkKGUuJG5leHRBcnJvdykuYWRkQ2xhc3MoInNsaWNrLWhpZGRlbiIpLmF0dHIoeyJhcmlhLWRpc2FibGVkIjoidHJ1ZSIsdGFiaW5kZXg6Ii0xIn0pKX0sZS5wcm90b3R5cGUuYnVpbGREb3RzPWZ1bmN0aW9uKCl7dmFyIGUsdCxvPXRoaXM7aWYoITA9PT1vLm9wdGlvbnMuZG90cyl7Zm9yKG8uJHNsaWRlci5hZGRDbGFzcygic2xpY2stZG90dGVkIiksdD1pKCI8dWwgLz4iKS5hZGRDbGFzcyhvLm9wdGlvbnMuZG90c0NsYXNzKSxlPTA7ZTw9by5nZXREb3RDb3VudCgpO2UrPTEpdC5hcHBlbmQoaSgiPGxpIC8+IikuYXBwZW5kKG8ub3B0aW9ucy5jdXN0b21QYWdpbmcuY2FsbCh0aGlzLG8sZSkpKTtvLiRkb3RzPXQuYXBwZW5kVG8oby5vcHRpb25zLmFwcGVuZERvdHMpLG8uJGRvdHMuZmluZCgibGkiKS5maXJzdCgpLmFkZENsYXNzKCJzbGljay1hY3RpdmUiKX19LGUucHJvdG90eXBlLmJ1aWxkT3V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLiRzbGlkZXM9ZS4kc2xpZGVyLmNoaWxkcmVuKGUub3B0aW9ucy5zbGlkZSsiOm5vdCguc2xpY2stY2xvbmVkKSIpLmFkZENsYXNzKCJzbGljay1zbGlkZSIpLGUuc2xpZGVDb3VudD1lLiRzbGlkZXMubGVuZ3RoLGUuJHNsaWRlcy5lYWNoKGZ1bmN0aW9uKGUsdCl7aSh0KS5hdHRyKCJkYXRhLXNsaWNrLWluZGV4IixlKS5kYXRhKCJvcmlnaW5hbFN0eWxpbmciLGkodCkuYXR0cigic3R5bGUiKXx8IiIpfSksZS4kc2xpZGVyLmFkZENsYXNzKCJzbGljay1zbGlkZXIiKSxlLiRzbGlkZVRyYWNrPTA9PT1lLnNsaWRlQ291bnQ/aSgnPGRpdiBjbGFzcz0ic2xpY2stdHJhY2siLz4nKS5hcHBlbmRUbyhlLiRzbGlkZXIpOmUuJHNsaWRlcy53cmFwQWxsKCc8ZGl2IGNsYXNzPSJzbGljay10cmFjayIvPicpLnBhcmVudCgpLGUuJGxpc3Q9ZS4kc2xpZGVUcmFjay53cmFwKCc8ZGl2IGNsYXNzPSJzbGljay1saXN0Ii8+JykucGFyZW50KCksZS4kc2xpZGVUcmFjay5jc3MoIm9wYWNpdHkiLDApLCEwIT09ZS5vcHRpb25zLmNlbnRlck1vZGUmJiEwIT09ZS5vcHRpb25zLnN3aXBlVG9TbGlkZXx8KGUub3B0aW9ucy5zbGlkZXNUb1Njcm9sbD0xKSxpKCJpbWdbZGF0YS1sYXp5XSIsZS4kc2xpZGVyKS5ub3QoIltzcmNdIikuYWRkQ2xhc3MoInNsaWNrLWxvYWRpbmciKSxlLnNldHVwSW5maW5pdGUoKSxlLmJ1aWxkQXJyb3dzKCksZS5idWlsZERvdHMoKSxlLnVwZGF0ZURvdHMoKSxlLnNldFNsaWRlQ2xhc3NlcygibnVtYmVyIj09dHlwZW9mIGUuY3VycmVudFNsaWRlP2UuY3VycmVudFNsaWRlOjApLCEwPT09ZS5vcHRpb25zLmRyYWdnYWJsZSYmZS4kbGlzdC5hZGRDbGFzcygiZHJhZ2dhYmxlIil9LGUucHJvdG90eXBlLmJ1aWxkUm93cz1mdW5jdGlvbigpe3ZhciBpLGUsdCxvLHMsbixyLGw9dGhpcztpZihvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxuPWwuJHNsaWRlci5jaGlsZHJlbigpLGwub3B0aW9ucy5yb3dzPjEpe2ZvcihyPWwub3B0aW9ucy5zbGlkZXNQZXJSb3cqbC5vcHRpb25zLnJvd3Mscz1NYXRoLmNlaWwobi5sZW5ndGgvciksaT0wO2k8cztpKyspe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihlPTA7ZTxsLm9wdGlvbnMucm93cztlKyspe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Zvcih0PTA7dDxsLm9wdGlvbnMuc2xpZGVzUGVyUm93O3QrKyl7dmFyIGM9aSpyKyhlKmwub3B0aW9ucy5zbGlkZXNQZXJSb3crdCk7bi5nZXQoYykmJmEuYXBwZW5kQ2hpbGQobi5nZXQoYykpfWQuYXBwZW5kQ2hpbGQoYSl9by5hcHBlbmRDaGlsZChkKX1sLiRzbGlkZXIuZW1wdHkoKS5hcHBlbmQobyksbC4kc2xpZGVyLmNoaWxkcmVuKCkuY2hpbGRyZW4oKS5jaGlsZHJlbigpLmNzcyh7d2lkdGg6MTAwL2wub3B0aW9ucy5zbGlkZXNQZXJSb3crIiUiLGRpc3BsYXk6ImlubGluZS1ibG9jayJ9KX19LGUucHJvdG90eXBlLmNoZWNrUmVzcG9uc2l2ZT1mdW5jdGlvbihlLHQpe3ZhciBvLHMsbixyPXRoaXMsbD0hMSxkPXIuJHNsaWRlci53aWR0aCgpLGE9d2luZG93LmlubmVyV2lkdGh8fGkod2luZG93KS53aWR0aCgpO2lmKCJ3aW5kb3ciPT09ci5yZXNwb25kVG8/bj1hOiJzbGlkZXIiPT09ci5yZXNwb25kVG8/bj1kOiJtaW4iPT09ci5yZXNwb25kVG8mJihuPU1hdGgubWluKGEsZCkpLHIub3B0aW9ucy5yZXNwb25zaXZlJiZyLm9wdGlvbnMucmVzcG9uc2l2ZS5sZW5ndGgmJm51bGwhPT1yLm9wdGlvbnMucmVzcG9uc2l2ZSl7cz1udWxsO2ZvcihvIGluIHIuYnJlYWtwb2ludHMpci5icmVha3BvaW50cy5oYXNPd25Qcm9wZXJ0eShvKSYmKCExPT09ci5vcmlnaW5hbFNldHRpbmdzLm1vYmlsZUZpcnN0P248ci5icmVha3BvaW50c1tvXSYmKHM9ci5icmVha3BvaW50c1tvXSk6bj5yLmJyZWFrcG9pbnRzW29dJiYocz1yLmJyZWFrcG9pbnRzW29dKSk7bnVsbCE9PXM/bnVsbCE9PXIuYWN0aXZlQnJlYWtwb2ludD8ocyE9PXIuYWN0aXZlQnJlYWtwb2ludHx8dCkmJihyLmFjdGl2ZUJyZWFrcG9pbnQ9cywidW5zbGljayI9PT1yLmJyZWFrcG9pbnRTZXR0aW5nc1tzXT9yLnVuc2xpY2socyk6KHIub3B0aW9ucz1pLmV4dGVuZCh7fSxyLm9yaWdpbmFsU2V0dGluZ3Msci5icmVha3BvaW50U2V0dGluZ3Nbc10pLCEwPT09ZSYmKHIuY3VycmVudFNsaWRlPXIub3B0aW9ucy5pbml0aWFsU2xpZGUpLHIucmVmcmVzaChlKSksbD1zKTooci5hY3RpdmVCcmVha3BvaW50PXMsInVuc2xpY2siPT09ci5icmVha3BvaW50U2V0dGluZ3Nbc10/ci51bnNsaWNrKHMpOihyLm9wdGlvbnM9aS5leHRlbmQoe30sci5vcmlnaW5hbFNldHRpbmdzLHIuYnJlYWtwb2ludFNldHRpbmdzW3NdKSwhMD09PWUmJihyLmN1cnJlbnRTbGlkZT1yLm9wdGlvbnMuaW5pdGlhbFNsaWRlKSxyLnJlZnJlc2goZSkpLGw9cyk6bnVsbCE9PXIuYWN0aXZlQnJlYWtwb2ludCYmKHIuYWN0aXZlQnJlYWtwb2ludD1udWxsLHIub3B0aW9ucz1yLm9yaWdpbmFsU2V0dGluZ3MsITA9PT1lJiYoci5jdXJyZW50U2xpZGU9ci5vcHRpb25zLmluaXRpYWxTbGlkZSksci5yZWZyZXNoKGUpLGw9cyksZXx8ITE9PT1sfHxyLiRzbGlkZXIudHJpZ2dlcigiYnJlYWtwb2ludCIsW3IsbF0pfX0sZS5wcm90b3R5cGUuY2hhbmdlU2xpZGU9ZnVuY3Rpb24oZSx0KXt2YXIgbyxzLG4scj10aGlzLGw9aShlLmN1cnJlbnRUYXJnZXQpO3N3aXRjaChsLmlzKCJhIikmJmUucHJldmVudERlZmF1bHQoKSxsLmlzKCJsaSIpfHwobD1sLmNsb3Nlc3QoImxpIikpLG49ci5zbGlkZUNvdW50JXIub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCE9MCxvPW4/MDooci5zbGlkZUNvdW50LXIuY3VycmVudFNsaWRlKSVyLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwsZS5kYXRhLm1lc3NhZ2Upe2Nhc2UicHJldmlvdXMiOnM9MD09PW8/ci5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOnIub3B0aW9ucy5zbGlkZXNUb1Nob3ctbyxyLnNsaWRlQ291bnQ+ci5vcHRpb25zLnNsaWRlc1RvU2hvdyYmci5zbGlkZUhhbmRsZXIoci5jdXJyZW50U2xpZGUtcywhMSx0KTticmVhaztjYXNlIm5leHQiOnM9MD09PW8/ci5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOm8sci5zbGlkZUNvdW50PnIub3B0aW9ucy5zbGlkZXNUb1Nob3cmJnIuc2xpZGVIYW5kbGVyKHIuY3VycmVudFNsaWRlK3MsITEsdCk7YnJlYWs7Y2FzZSJpbmRleCI6dmFyIGQ9MD09PWUuZGF0YS5pbmRleD8wOmUuZGF0YS5pbmRleHx8bC5pbmRleCgpKnIub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDtyLnNsaWRlSGFuZGxlcihyLmNoZWNrTmF2aWdhYmxlKGQpLCExLHQpLGwuY2hpbGRyZW4oKS50cmlnZ2VyKCJmb2N1cyIpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX0sZS5wcm90b3R5cGUuY2hlY2tOYXZpZ2FibGU9ZnVuY3Rpb24oaSl7dmFyIGUsdDtpZihlPXRoaXMuZ2V0TmF2aWdhYmxlSW5kZXhlcygpLHQ9MCxpPmVbZS5sZW5ndGgtMV0paT1lW2UubGVuZ3RoLTFdO2Vsc2UgZm9yKHZhciBvIGluIGUpe2lmKGk8ZVtvXSl7aT10O2JyZWFrfXQ9ZVtvXX1yZXR1cm4gaX0sZS5wcm90b3R5cGUuY2xlYW5VcEV2ZW50cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5vcHRpb25zLmRvdHMmJm51bGwhPT1lLiRkb3RzJiYoaSgibGkiLGUuJGRvdHMpLm9mZigiY2xpY2suc2xpY2siLGUuY2hhbmdlU2xpZGUpLm9mZigibW91c2VlbnRlci5zbGljayIsaS5wcm94eShlLmludGVycnVwdCxlLCEwKSkub2ZmKCJtb3VzZWxlYXZlLnNsaWNrIixpLnByb3h5KGUuaW50ZXJydXB0LGUsITEpKSwhMD09PWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5JiZlLiRkb3RzLm9mZigia2V5ZG93bi5zbGljayIsZS5rZXlIYW5kbGVyKSksZS4kc2xpZGVyLm9mZigiZm9jdXMuc2xpY2sgYmx1ci5zbGljayIpLCEwPT09ZS5vcHRpb25zLmFycm93cyYmZS5zbGlkZUNvdW50PmUub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihlLiRwcmV2QXJyb3cmJmUuJHByZXZBcnJvdy5vZmYoImNsaWNrLnNsaWNrIixlLmNoYW5nZVNsaWRlKSxlLiRuZXh0QXJyb3cmJmUuJG5leHRBcnJvdy5vZmYoImNsaWNrLnNsaWNrIixlLmNoYW5nZVNsaWRlKSwhMD09PWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5JiYoZS4kcHJldkFycm93JiZlLiRwcmV2QXJyb3cub2ZmKCJrZXlkb3duLnNsaWNrIixlLmtleUhhbmRsZXIpLGUuJG5leHRBcnJvdyYmZS4kbmV4dEFycm93Lm9mZigia2V5ZG93bi5zbGljayIsZS5rZXlIYW5kbGVyKSkpLGUuJGxpc3Qub2ZmKCJ0b3VjaHN0YXJ0LnNsaWNrIG1vdXNlZG93bi5zbGljayIsZS5zd2lwZUhhbmRsZXIpLGUuJGxpc3Qub2ZmKCJ0b3VjaG1vdmUuc2xpY2sgbW91c2Vtb3ZlLnNsaWNrIixlLnN3aXBlSGFuZGxlciksZS4kbGlzdC5vZmYoInRvdWNoZW5kLnNsaWNrIG1vdXNldXAuc2xpY2siLGUuc3dpcGVIYW5kbGVyKSxlLiRsaXN0Lm9mZigidG91Y2hjYW5jZWwuc2xpY2sgbW91c2VsZWF2ZS5zbGljayIsZS5zd2lwZUhhbmRsZXIpLGUuJGxpc3Qub2ZmKCJjbGljay5zbGljayIsZS5jbGlja0hhbmRsZXIpLGkoZG9jdW1lbnQpLm9mZihlLnZpc2liaWxpdHlDaGFuZ2UsZS52aXNpYmlsaXR5KSxlLmNsZWFuVXBTbGlkZUV2ZW50cygpLCEwPT09ZS5vcHRpb25zLmFjY2Vzc2liaWxpdHkmJmUuJGxpc3Qub2ZmKCJrZXlkb3duLnNsaWNrIixlLmtleUhhbmRsZXIpLCEwPT09ZS5vcHRpb25zLmZvY3VzT25TZWxlY3QmJmkoZS4kc2xpZGVUcmFjaykuY2hpbGRyZW4oKS5vZmYoImNsaWNrLnNsaWNrIixlLnNlbGVjdEhhbmRsZXIpLGkod2luZG93KS5vZmYoIm9yaWVudGF0aW9uY2hhbmdlLnNsaWNrLnNsaWNrLSIrZS5pbnN0YW5jZVVpZCxlLm9yaWVudGF0aW9uQ2hhbmdlKSxpKHdpbmRvdykub2ZmKCJyZXNpemUuc2xpY2suc2xpY2stIitlLmluc3RhbmNlVWlkLGUucmVzaXplKSxpKCJbZHJhZ2dhYmxlIT10cnVlXSIsZS4kc2xpZGVUcmFjaykub2ZmKCJkcmFnc3RhcnQiLGUucHJldmVudERlZmF1bHQpLGkod2luZG93KS5vZmYoImxvYWQuc2xpY2suc2xpY2stIitlLmluc3RhbmNlVWlkLGUuc2V0UG9zaXRpb24pfSxlLnByb3RvdHlwZS5jbGVhblVwU2xpZGVFdmVudHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuJGxpc3Qub2ZmKCJtb3VzZWVudGVyLnNsaWNrIixpLnByb3h5KGUuaW50ZXJydXB0LGUsITApKSxlLiRsaXN0Lm9mZigibW91c2VsZWF2ZS5zbGljayIsaS5wcm94eShlLmludGVycnVwdCxlLCExKSl9LGUucHJvdG90eXBlLmNsZWFuVXBSb3dzPWZ1bmN0aW9uKCl7dmFyIGksZT10aGlzO2Uub3B0aW9ucy5yb3dzPjEmJigoaT1lLiRzbGlkZXMuY2hpbGRyZW4oKS5jaGlsZHJlbigpKS5yZW1vdmVBdHRyKCJzdHlsZSIpLGUuJHNsaWRlci5lbXB0eSgpLmFwcGVuZChpKSl9LGUucHJvdG90eXBlLmNsaWNrSGFuZGxlcj1mdW5jdGlvbihpKXshMT09PXRoaXMuc2hvdWxkQ2xpY2smJihpLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGkuc3RvcFByb3BhZ2F0aW9uKCksaS5wcmV2ZW50RGVmYXVsdCgpKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3QuYXV0b1BsYXlDbGVhcigpLHQudG91Y2hPYmplY3Q9e30sdC5jbGVhblVwRXZlbnRzKCksaSgiLnNsaWNrLWNsb25lZCIsdC4kc2xpZGVyKS5kZXRhY2goKSx0LiRkb3RzJiZ0LiRkb3RzLnJlbW92ZSgpLHQuJHByZXZBcnJvdyYmdC4kcHJldkFycm93Lmxlbmd0aCYmKHQuJHByZXZBcnJvdy5yZW1vdmVDbGFzcygic2xpY2stZGlzYWJsZWQgc2xpY2stYXJyb3cgc2xpY2staGlkZGVuIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4gYXJpYS1kaXNhYmxlZCB0YWJpbmRleCIpLmNzcygiZGlzcGxheSIsIiIpLHQuaHRtbEV4cHIudGVzdCh0Lm9wdGlvbnMucHJldkFycm93KSYmdC4kcHJldkFycm93LnJlbW92ZSgpKSx0LiRuZXh0QXJyb3cmJnQuJG5leHRBcnJvdy5sZW5ndGgmJih0LiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoInNsaWNrLWRpc2FibGVkIHNsaWNrLWFycm93IHNsaWNrLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtaGlkZGVuIGFyaWEtZGlzYWJsZWQgdGFiaW5kZXgiKS5jc3MoImRpc3BsYXkiLCIiKSx0Lmh0bWxFeHByLnRlc3QodC5vcHRpb25zLm5leHRBcnJvdykmJnQuJG5leHRBcnJvdy5yZW1vdmUoKSksdC4kc2xpZGVzJiYodC4kc2xpZGVzLnJlbW92ZUNsYXNzKCJzbGljay1zbGlkZSBzbGljay1hY3RpdmUgc2xpY2stY2VudGVyIHNsaWNrLXZpc2libGUgc2xpY2stY3VycmVudCIpLnJlbW92ZUF0dHIoImFyaWEtaGlkZGVuIikucmVtb3ZlQXR0cigiZGF0YS1zbGljay1pbmRleCIpLmVhY2goZnVuY3Rpb24oKXtpKHRoaXMpLmF0dHIoInN0eWxlIixpKHRoaXMpLmRhdGEoIm9yaWdpbmFsU3R5bGluZyIpKX0pLHQuJHNsaWRlVHJhY2suY2hpbGRyZW4odGhpcy5vcHRpb25zLnNsaWRlKS5kZXRhY2goKSx0LiRzbGlkZVRyYWNrLmRldGFjaCgpLHQuJGxpc3QuZGV0YWNoKCksdC4kc2xpZGVyLmFwcGVuZCh0LiRzbGlkZXMpKSx0LmNsZWFuVXBSb3dzKCksdC4kc2xpZGVyLnJlbW92ZUNsYXNzKCJzbGljay1zbGlkZXIiKSx0LiRzbGlkZXIucmVtb3ZlQ2xhc3MoInNsaWNrLWluaXRpYWxpemVkIiksdC4kc2xpZGVyLnJlbW92ZUNsYXNzKCJzbGljay1kb3R0ZWQiKSx0LnVuc2xpY2tlZD0hMCxlfHx0LiRzbGlkZXIudHJpZ2dlcigiZGVzdHJveSIsW3RdKX0sZS5wcm90b3R5cGUuZGlzYWJsZVRyYW5zaXRpb249ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcyx0PXt9O3RbZS50cmFuc2l0aW9uVHlwZV09IiIsITE9PT1lLm9wdGlvbnMuZmFkZT9lLiRzbGlkZVRyYWNrLmNzcyh0KTplLiRzbGlkZXMuZXEoaSkuY3NzKHQpfSxlLnByb3RvdHlwZS5mYWRlU2xpZGU9ZnVuY3Rpb24oaSxlKXt2YXIgdD10aGlzOyExPT09dC5jc3NUcmFuc2l0aW9ucz8odC4kc2xpZGVzLmVxKGkpLmNzcyh7ekluZGV4OnQub3B0aW9ucy56SW5kZXh9KSx0LiRzbGlkZXMuZXEoaSkuYW5pbWF0ZSh7b3BhY2l0eToxfSx0Lm9wdGlvbnMuc3BlZWQsdC5vcHRpb25zLmVhc2luZyxlKSk6KHQuYXBwbHlUcmFuc2l0aW9uKGkpLHQuJHNsaWRlcy5lcShpKS5jc3Moe29wYWNpdHk6MSx6SW5kZXg6dC5vcHRpb25zLnpJbmRleH0pLGUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmRpc2FibGVUcmFuc2l0aW9uKGkpLGUuY2FsbCgpfSx0Lm9wdGlvbnMuc3BlZWQpKX0sZS5wcm90b3R5cGUuZmFkZVNsaWRlT3V0PWZ1bmN0aW9uKGkpe3ZhciBlPXRoaXM7ITE9PT1lLmNzc1RyYW5zaXRpb25zP2UuJHNsaWRlcy5lcShpKS5hbmltYXRlKHtvcGFjaXR5OjAsekluZGV4OmUub3B0aW9ucy56SW5kZXgtMn0sZS5vcHRpb25zLnNwZWVkLGUub3B0aW9ucy5lYXNpbmcpOihlLmFwcGx5VHJhbnNpdGlvbihpKSxlLiRzbGlkZXMuZXEoaSkuY3NzKHtvcGFjaXR5OjAsekluZGV4OmUub3B0aW9ucy56SW5kZXgtMn0pKX0sZS5wcm90b3R5cGUuZmlsdGVyU2xpZGVzPWUucHJvdG90eXBlLnNsaWNrRmlsdGVyPWZ1bmN0aW9uKGkpe3ZhciBlPXRoaXM7bnVsbCE9PWkmJihlLiRzbGlkZXNDYWNoZT1lLiRzbGlkZXMsZS51bmxvYWQoKSxlLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSkuZGV0YWNoKCksZS4kc2xpZGVzQ2FjaGUuZmlsdGVyKGkpLmFwcGVuZFRvKGUuJHNsaWRlVHJhY2spLGUucmVpbml0KCkpfSxlLnByb3RvdHlwZS5mb2N1c0hhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuJHNsaWRlci5vZmYoImZvY3VzLnNsaWNrIGJsdXIuc2xpY2siKS5vbigiZm9jdXMuc2xpY2sgYmx1ci5zbGljayIsIioiLGZ1bmN0aW9uKHQpe3Quc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7dmFyIG89aSh0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5vcHRpb25zLnBhdXNlT25Gb2N1cyYmKGUuZm9jdXNzZWQ9by5pcygiOmZvY3VzIiksZS5hdXRvUGxheSgpKX0sMCl9KX0sZS5wcm90b3R5cGUuZ2V0Q3VycmVudD1lLnByb3RvdHlwZS5zbGlja0N1cnJlbnRTbGlkZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTbGlkZX0sZS5wcm90b3R5cGUuZ2V0RG90Q291bnQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLGU9MCx0PTAsbz0wO2lmKCEwPT09aS5vcHRpb25zLmluZmluaXRlKWlmKGkuc2xpZGVDb3VudDw9aS5vcHRpb25zLnNsaWRlc1RvU2hvdykrK287ZWxzZSBmb3IoO2U8aS5zbGlkZUNvdW50OykrK28sZT10K2kub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCx0Kz1pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw8PWkub3B0aW9ucy5zbGlkZXNUb1Nob3c/aS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOmkub3B0aW9ucy5zbGlkZXNUb1Nob3c7ZWxzZSBpZighMD09PWkub3B0aW9ucy5jZW50ZXJNb2RlKW89aS5zbGlkZUNvdW50O2Vsc2UgaWYoaS5vcHRpb25zLmFzTmF2Rm9yKWZvcig7ZTxpLnNsaWRlQ291bnQ7KSsrbyxlPXQraS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLHQrPWkub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDw9aS5vcHRpb25zLnNsaWRlc1RvU2hvdz9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6aS5vcHRpb25zLnNsaWRlc1RvU2hvdztlbHNlIG89MStNYXRoLmNlaWwoKGkuc2xpZGVDb3VudC1pLm9wdGlvbnMuc2xpZGVzVG9TaG93KS9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpO3JldHVybiBvLTF9LGUucHJvdG90eXBlLmdldExlZnQ9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvLHMsbj10aGlzLHI9MDtyZXR1cm4gbi5zbGlkZU9mZnNldD0wLHQ9bi4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQoITApLCEwPT09bi5vcHRpb25zLmluZmluaXRlPyhuLnNsaWRlQ291bnQ+bi5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKG4uc2xpZGVPZmZzZXQ9bi5zbGlkZVdpZHRoKm4ub3B0aW9ucy5zbGlkZXNUb1Nob3cqLTEscz0tMSwhMD09PW4ub3B0aW9ucy52ZXJ0aWNhbCYmITA9PT1uLm9wdGlvbnMuY2VudGVyTW9kZSYmKDI9PT1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P3M9LTEuNToxPT09bi5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKHM9LTIpKSxyPXQqbi5vcHRpb25zLnNsaWRlc1RvU2hvdypzKSxuLnNsaWRlQ291bnQlbi5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsIT0wJiZpK24ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbD5uLnNsaWRlQ291bnQmJm4uc2xpZGVDb3VudD5uLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYoaT5uLnNsaWRlQ291bnQ/KG4uc2xpZGVPZmZzZXQ9KG4ub3B0aW9ucy5zbGlkZXNUb1Nob3ctKGktbi5zbGlkZUNvdW50KSkqbi5zbGlkZVdpZHRoKi0xLHI9KG4ub3B0aW9ucy5zbGlkZXNUb1Nob3ctKGktbi5zbGlkZUNvdW50KSkqdCotMSk6KG4uc2xpZGVPZmZzZXQ9bi5zbGlkZUNvdW50JW4ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCpuLnNsaWRlV2lkdGgqLTEscj1uLnNsaWRlQ291bnQlbi5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKnQqLTEpKSk6aStuLm9wdGlvbnMuc2xpZGVzVG9TaG93Pm4uc2xpZGVDb3VudCYmKG4uc2xpZGVPZmZzZXQ9KGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdy1uLnNsaWRlQ291bnQpKm4uc2xpZGVXaWR0aCxyPShpK24ub3B0aW9ucy5zbGlkZXNUb1Nob3ctbi5zbGlkZUNvdW50KSp0KSxuLnNsaWRlQ291bnQ8PW4ub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihuLnNsaWRlT2Zmc2V0PTAscj0wKSwhMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlJiZuLnNsaWRlQ291bnQ8PW4ub3B0aW9ucy5zbGlkZXNUb1Nob3c/bi5zbGlkZU9mZnNldD1uLnNsaWRlV2lkdGgqTWF0aC5mbG9vcihuLm9wdGlvbnMuc2xpZGVzVG9TaG93KS8yLW4uc2xpZGVXaWR0aCpuLnNsaWRlQ291bnQvMjohMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlJiYhMD09PW4ub3B0aW9ucy5pbmZpbml0ZT9uLnNsaWRlT2Zmc2V0Kz1uLnNsaWRlV2lkdGgqTWF0aC5mbG9vcihuLm9wdGlvbnMuc2xpZGVzVG9TaG93LzIpLW4uc2xpZGVXaWR0aDohMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlJiYobi5zbGlkZU9mZnNldD0wLG4uc2xpZGVPZmZzZXQrPW4uc2xpZGVXaWR0aCpNYXRoLmZsb29yKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cvMikpLGU9ITE9PT1uLm9wdGlvbnMudmVydGljYWw/aSpuLnNsaWRlV2lkdGgqLTErbi5zbGlkZU9mZnNldDppKnQqLTErciwhMD09PW4ub3B0aW9ucy52YXJpYWJsZVdpZHRoJiYobz1uLnNsaWRlQ291bnQ8PW4ub3B0aW9ucy5zbGlkZXNUb1Nob3d8fCExPT09bi5vcHRpb25zLmluZmluaXRlP24uJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLmVxKGkpOm4uJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLmVxKGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdyksZT0hMD09PW4ub3B0aW9ucy5ydGw/b1swXT8tMSoobi4kc2xpZGVUcmFjay53aWR0aCgpLW9bMF0ub2Zmc2V0TGVmdC1vLndpZHRoKCkpOjA6b1swXT8tMSpvWzBdLm9mZnNldExlZnQ6MCwhMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlJiYobz1uLnNsaWRlQ291bnQ8PW4ub3B0aW9ucy5zbGlkZXNUb1Nob3d8fCExPT09bi5vcHRpb25zLmluZmluaXRlP24uJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLmVxKGkpOm4uJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLmVxKGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdysxKSxlPSEwPT09bi5vcHRpb25zLnJ0bD9vWzBdPy0xKihuLiRzbGlkZVRyYWNrLndpZHRoKCktb1swXS5vZmZzZXRMZWZ0LW8ud2lkdGgoKSk6MDpvWzBdPy0xKm9bMF0ub2Zmc2V0TGVmdDowLGUrPShuLiRsaXN0LndpZHRoKCktby5vdXRlcldpZHRoKCkpLzIpKSxlfSxlLnByb3RvdHlwZS5nZXRPcHRpb249ZS5wcm90b3R5cGUuc2xpY2tHZXRPcHRpb249ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMub3B0aW9uc1tpXX0sZS5wcm90b3R5cGUuZ2V0TmF2aWdhYmxlSW5kZXhlcz1mdW5jdGlvbigpe3ZhciBpLGU9dGhpcyx0PTAsbz0wLHM9W107Zm9yKCExPT09ZS5vcHRpb25zLmluZmluaXRlP2k9ZS5zbGlkZUNvdW50Oih0PS0xKmUub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCxvPS0xKmUub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCxpPTIqZS5zbGlkZUNvdW50KTt0PGk7KXMucHVzaCh0KSx0PW8rZS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLG8rPWUub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDw9ZS5vcHRpb25zLnNsaWRlc1RvU2hvdz9lLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6ZS5vcHRpb25zLnNsaWRlc1RvU2hvdztyZXR1cm4gc30sZS5wcm90b3R5cGUuZ2V0U2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZ2V0U2xpZGVDb3VudD1mdW5jdGlvbigpe3ZhciBlLHQsbz10aGlzO3JldHVybiB0PSEwPT09by5vcHRpb25zLmNlbnRlck1vZGU/by5zbGlkZVdpZHRoKk1hdGguZmxvb3Ioby5vcHRpb25zLnNsaWRlc1RvU2hvdy8yKTowLCEwPT09by5vcHRpb25zLnN3aXBlVG9TbGlkZT8oby4kc2xpZGVUcmFjay5maW5kKCIuc2xpY2stc2xpZGUiKS5lYWNoKGZ1bmN0aW9uKHMsbil7aWYobi5vZmZzZXRMZWZ0LXQraShuKS5vdXRlcldpZHRoKCkvMj4tMSpvLnN3aXBlTGVmdClyZXR1cm4gZT1uLCExfSksTWF0aC5hYnMoaShlKS5hdHRyKCJkYXRhLXNsaWNrLWluZGV4Iiktby5jdXJyZW50U2xpZGUpfHwxKTpvLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGx9LGUucHJvdG90eXBlLmdvVG89ZS5wcm90b3R5cGUuc2xpY2tHb1RvPWZ1bmN0aW9uKGksZSl7dGhpcy5jaGFuZ2VTbGlkZSh7ZGF0YTp7bWVzc2FnZToiaW5kZXgiLGluZGV4OnBhcnNlSW50KGkpfX0sZSl9LGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpKHQuJHNsaWRlcikuaGFzQ2xhc3MoInNsaWNrLWluaXRpYWxpemVkIil8fChpKHQuJHNsaWRlcikuYWRkQ2xhc3MoInNsaWNrLWluaXRpYWxpemVkIiksdC5idWlsZFJvd3MoKSx0LmJ1aWxkT3V0KCksdC5zZXRQcm9wcygpLHQuc3RhcnRMb2FkKCksdC5sb2FkU2xpZGVyKCksdC5pbml0aWFsaXplRXZlbnRzKCksdC51cGRhdGVBcnJvd3MoKSx0LnVwZGF0ZURvdHMoKSx0LmNoZWNrUmVzcG9uc2l2ZSghMCksdC5mb2N1c0hhbmRsZXIoKSksZSYmdC4kc2xpZGVyLnRyaWdnZXIoImluaXQiLFt0XSksITA9PT10Lm9wdGlvbnMuYWNjZXNzaWJpbGl0eSYmdC5pbml0QURBKCksdC5vcHRpb25zLmF1dG9wbGF5JiYodC5wYXVzZWQ9ITEsdC5hdXRvUGxheSgpKX0sZS5wcm90b3R5cGUuaW5pdEFEQT1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1NYXRoLmNlaWwoZS5zbGlkZUNvdW50L2Uub3B0aW9ucy5zbGlkZXNUb1Nob3cpLG89ZS5nZXROYXZpZ2FibGVJbmRleGVzKCkuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpPj0wJiZpPGUuc2xpZGVDb3VudH0pO2UuJHNsaWRlcy5hZGQoZS4kc2xpZGVUcmFjay5maW5kKCIuc2xpY2stY2xvbmVkIikpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUiLHRhYmluZGV4OiItMSJ9KS5maW5kKCJhLCBpbnB1dCwgYnV0dG9uLCBzZWxlY3QiKS5hdHRyKHt0YWJpbmRleDoiLTEifSksbnVsbCE9PWUuJGRvdHMmJihlLiRzbGlkZXMubm90KGUuJHNsaWRlVHJhY2suZmluZCgiLnNsaWNrLWNsb25lZCIpKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBzPW8uaW5kZXhPZih0KTtpKHRoaXMpLmF0dHIoe3JvbGU6InRhYnBhbmVsIixpZDoic2xpY2stc2xpZGUiK2UuaW5zdGFuY2VVaWQrdCx0YWJpbmRleDotMX0pLC0xIT09cyYmaSh0aGlzKS5hdHRyKHsiYXJpYS1kZXNjcmliZWRieSI6InNsaWNrLXNsaWRlLWNvbnRyb2wiK2UuaW5zdGFuY2VVaWQrc30pfSksZS4kZG90cy5hdHRyKCJyb2xlIiwidGFibGlzdCIpLmZpbmQoImxpIikuZWFjaChmdW5jdGlvbihzKXt2YXIgbj1vW3NdO2kodGhpcykuYXR0cih7cm9sZToicHJlc2VudGF0aW9uIn0pLGkodGhpcykuZmluZCgiYnV0dG9uIikuZmlyc3QoKS5hdHRyKHtyb2xlOiJ0YWIiLGlkOiJzbGljay1zbGlkZS1jb250cm9sIitlLmluc3RhbmNlVWlkK3MsImFyaWEtY29udHJvbHMiOiJzbGljay1zbGlkZSIrZS5pbnN0YW5jZVVpZCtuLCJhcmlhLWxhYmVsIjpzKzErIiBvZiAiK3QsImFyaWEtc2VsZWN0ZWQiOm51bGwsdGFiaW5kZXg6Ii0xIn0pfSkuZXEoZS5jdXJyZW50U2xpZGUpLmZpbmQoImJ1dHRvbiIpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsdGFiaW5kZXg6IjAifSkuZW5kKCkpO2Zvcih2YXIgcz1lLmN1cnJlbnRTbGlkZSxuPXMrZS5vcHRpb25zLnNsaWRlc1RvU2hvdztzPG47cysrKWUuJHNsaWRlcy5lcShzKS5hdHRyKCJ0YWJpbmRleCIsMCk7ZS5hY3RpdmF0ZUFEQSgpfSxlLnByb3RvdHlwZS5pbml0QXJyb3dFdmVudHM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzOyEwPT09aS5vcHRpb25zLmFycm93cyYmaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihpLiRwcmV2QXJyb3cub2ZmKCJjbGljay5zbGljayIpLm9uKCJjbGljay5zbGljayIse21lc3NhZ2U6InByZXZpb3VzIn0saS5jaGFuZ2VTbGlkZSksaS4kbmV4dEFycm93Lm9mZigiY2xpY2suc2xpY2siKS5vbigiY2xpY2suc2xpY2siLHttZXNzYWdlOiJuZXh0In0saS5jaGFuZ2VTbGlkZSksITA9PT1pLm9wdGlvbnMuYWNjZXNzaWJpbGl0eSYmKGkuJHByZXZBcnJvdy5vbigia2V5ZG93bi5zbGljayIsaS5rZXlIYW5kbGVyKSxpLiRuZXh0QXJyb3cub24oImtleWRvd24uc2xpY2siLGkua2V5SGFuZGxlcikpKX0sZS5wcm90b3R5cGUuaW5pdERvdEV2ZW50cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ITA9PT1lLm9wdGlvbnMuZG90cyYmKGkoImxpIixlLiRkb3RzKS5vbigiY2xpY2suc2xpY2siLHttZXNzYWdlOiJpbmRleCJ9LGUuY2hhbmdlU2xpZGUpLCEwPT09ZS5vcHRpb25zLmFjY2Vzc2liaWxpdHkmJmUuJGRvdHMub24oImtleWRvd24uc2xpY2siLGUua2V5SGFuZGxlcikpLCEwPT09ZS5vcHRpb25zLmRvdHMmJiEwPT09ZS5vcHRpb25zLnBhdXNlT25Eb3RzSG92ZXImJmkoImxpIixlLiRkb3RzKS5vbigibW91c2VlbnRlci5zbGljayIsaS5wcm94eShlLmludGVycnVwdCxlLCEwKSkub24oIm1vdXNlbGVhdmUuc2xpY2siLGkucHJveHkoZS5pbnRlcnJ1cHQsZSwhMSkpfSxlLnByb3RvdHlwZS5pbml0U2xpZGVFdmVudHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Uub3B0aW9ucy5wYXVzZU9uSG92ZXImJihlLiRsaXN0Lm9uKCJtb3VzZWVudGVyLnNsaWNrIixpLnByb3h5KGUuaW50ZXJydXB0LGUsITApKSxlLiRsaXN0Lm9uKCJtb3VzZWxlYXZlLnNsaWNrIixpLnByb3h5KGUuaW50ZXJydXB0LGUsITEpKSl9LGUucHJvdG90eXBlLmluaXRpYWxpemVFdmVudHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaW5pdEFycm93RXZlbnRzKCksZS5pbml0RG90RXZlbnRzKCksZS5pbml0U2xpZGVFdmVudHMoKSxlLiRsaXN0Lm9uKCJ0b3VjaHN0YXJ0LnNsaWNrIG1vdXNlZG93bi5zbGljayIse2FjdGlvbjoic3RhcnQifSxlLnN3aXBlSGFuZGxlciksZS4kbGlzdC5vbigidG91Y2htb3ZlLnNsaWNrIG1vdXNlbW92ZS5zbGljayIse2FjdGlvbjoibW92ZSJ9LGUuc3dpcGVIYW5kbGVyKSxlLiRsaXN0Lm9uKCJ0b3VjaGVuZC5zbGljayBtb3VzZXVwLnNsaWNrIix7YWN0aW9uOiJlbmQifSxlLnN3aXBlSGFuZGxlciksZS4kbGlzdC5vbigidG91Y2hjYW5jZWwuc2xpY2sgbW91c2VsZWF2ZS5zbGljayIse2FjdGlvbjoiZW5kIn0sZS5zd2lwZUhhbmRsZXIpLGUuJGxpc3Qub24oImNsaWNrLnNsaWNrIixlLmNsaWNrSGFuZGxlciksaShkb2N1bWVudCkub24oZS52aXNpYmlsaXR5Q2hhbmdlLGkucHJveHkoZS52aXNpYmlsaXR5LGUpKSwhMD09PWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5JiZlLiRsaXN0Lm9uKCJrZXlkb3duLnNsaWNrIixlLmtleUhhbmRsZXIpLCEwPT09ZS5vcHRpb25zLmZvY3VzT25TZWxlY3QmJmkoZS4kc2xpZGVUcmFjaykuY2hpbGRyZW4oKS5vbigiY2xpY2suc2xpY2siLGUuc2VsZWN0SGFuZGxlciksaSh3aW5kb3cpLm9uKCJvcmllbnRhdGlvbmNoYW5nZS5zbGljay5zbGljay0iK2UuaW5zdGFuY2VVaWQsaS5wcm94eShlLm9yaWVudGF0aW9uQ2hhbmdlLGUpKSxpKHdpbmRvdykub24oInJlc2l6ZS5zbGljay5zbGljay0iK2UuaW5zdGFuY2VVaWQsaS5wcm94eShlLnJlc2l6ZSxlKSksaSgiW2RyYWdnYWJsZSE9dHJ1ZV0iLGUuJHNsaWRlVHJhY2spLm9uKCJkcmFnc3RhcnQiLGUucHJldmVudERlZmF1bHQpLGkod2luZG93KS5vbigibG9hZC5zbGljay5zbGljay0iK2UuaW5zdGFuY2VVaWQsZS5zZXRQb3NpdGlvbiksaShlLnNldFBvc2l0aW9uKX0sZS5wcm90b3R5cGUuaW5pdFVJPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczshMD09PWkub3B0aW9ucy5hcnJvd3MmJmkuc2xpZGVDb3VudD5pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYoaS4kcHJldkFycm93LnNob3coKSxpLiRuZXh0QXJyb3cuc2hvdygpKSwhMD09PWkub3B0aW9ucy5kb3RzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmaS4kZG90cy5zaG93KCl9LGUucHJvdG90eXBlLmtleUhhbmRsZXI9ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcztpLnRhcmdldC50YWdOYW1lLm1hdGNoKCJURVhUQVJFQXxJTlBVVHxTRUxFQ1QiKXx8KDM3PT09aS5rZXlDb2RlJiYhMD09PWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5P2UuY2hhbmdlU2xpZGUoe2RhdGE6e21lc3NhZ2U6ITA9PT1lLm9wdGlvbnMucnRsPyJuZXh0IjoicHJldmlvdXMifX0pOjM5PT09aS5rZXlDb2RlJiYhMD09PWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5JiZlLmNoYW5nZVNsaWRlKHtkYXRhOnttZXNzYWdlOiEwPT09ZS5vcHRpb25zLnJ0bD8icHJldmlvdXMiOiJuZXh0In19KSl9LGUucHJvdG90eXBlLmxhenlMb2FkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXtpKCJpbWdbZGF0YS1sYXp5XSIsZSkuZWFjaChmdW5jdGlvbigpe3ZhciBlPWkodGhpcyksdD1pKHRoaXMpLmF0dHIoImRhdGEtbGF6eSIpLG89aSh0aGlzKS5hdHRyKCJkYXRhLXNyY3NldCIpLHM9aSh0aGlzKS5hdHRyKCJkYXRhLXNpemVzIil8fG4uJHNsaWRlci5hdHRyKCJkYXRhLXNpemVzIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtyLm9ubG9hZD1mdW5jdGlvbigpe2UuYW5pbWF0ZSh7b3BhY2l0eTowfSwxMDAsZnVuY3Rpb24oKXtvJiYoZS5hdHRyKCJzcmNzZXQiLG8pLHMmJmUuYXR0cigic2l6ZXMiLHMpKSxlLmF0dHIoInNyYyIsdCkuYW5pbWF0ZSh7b3BhY2l0eToxfSwyMDAsZnVuY3Rpb24oKXtlLnJlbW92ZUF0dHIoImRhdGEtbGF6eSBkYXRhLXNyY3NldCBkYXRhLXNpemVzIikucmVtb3ZlQ2xhc3MoInNsaWNrLWxvYWRpbmciKX0pLG4uJHNsaWRlci50cmlnZ2VyKCJsYXp5TG9hZGVkIixbbixlLHRdKX0pfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtlLnJlbW92ZUF0dHIoImRhdGEtbGF6eSIpLnJlbW92ZUNsYXNzKCJzbGljay1sb2FkaW5nIikuYWRkQ2xhc3MoInNsaWNrLWxhenlsb2FkLWVycm9yIiksbi4kc2xpZGVyLnRyaWdnZXIoImxhenlMb2FkRXJyb3IiLFtuLGUsdF0pfSxyLnNyYz10fSl9dmFyIHQsbyxzLG49dGhpcztpZighMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlPyEwPT09bi5vcHRpb25zLmluZmluaXRlP3M9KG89bi5jdXJyZW50U2xpZGUrKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cvMisxKSkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdysyOihvPU1hdGgubWF4KDAsbi5jdXJyZW50U2xpZGUtKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cvMisxKSkscz1uLm9wdGlvbnMuc2xpZGVzVG9TaG93LzIrMSsyK24uY3VycmVudFNsaWRlKToobz1uLm9wdGlvbnMuaW5maW5pdGU/bi5vcHRpb25zLnNsaWRlc1RvU2hvdytuLmN1cnJlbnRTbGlkZTpuLmN1cnJlbnRTbGlkZSxzPU1hdGguY2VpbChvK24ub3B0aW9ucy5zbGlkZXNUb1Nob3cpLCEwPT09bi5vcHRpb25zLmZhZGUmJihvPjAmJm8tLSxzPD1uLnNsaWRlQ291bnQmJnMrKykpLHQ9bi4kc2xpZGVyLmZpbmQoIi5zbGljay1zbGlkZSIpLnNsaWNlKG8scyksImFudGljaXBhdGVkIj09PW4ub3B0aW9ucy5sYXp5TG9hZClmb3IodmFyIHI9by0xLGw9cyxkPW4uJHNsaWRlci5maW5kKCIuc2xpY2stc2xpZGUiKSxhPTA7YTxuLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7YSsrKXI8MCYmKHI9bi5zbGlkZUNvdW50LTEpLHQ9KHQ9dC5hZGQoZC5lcShyKSkpLmFkZChkLmVxKGwpKSxyLS0sbCsrO2UodCksbi5zbGlkZUNvdW50PD1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P2Uobi4kc2xpZGVyLmZpbmQoIi5zbGljay1zbGlkZSIpKTpuLmN1cnJlbnRTbGlkZT49bi5zbGlkZUNvdW50LW4ub3B0aW9ucy5zbGlkZXNUb1Nob3c/ZShuLiRzbGlkZXIuZmluZCgiLnNsaWNrLWNsb25lZCIpLnNsaWNlKDAsbi5vcHRpb25zLnNsaWRlc1RvU2hvdykpOjA9PT1uLmN1cnJlbnRTbGlkZSYmZShuLiRzbGlkZXIuZmluZCgiLnNsaWNrLWNsb25lZCIpLnNsaWNlKC0xKm4ub3B0aW9ucy5zbGlkZXNUb1Nob3cpKX0sZS5wcm90b3R5cGUubG9hZFNsaWRlcj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5zZXRQb3NpdGlvbigpLGkuJHNsaWRlVHJhY2suY3NzKHtvcGFjaXR5OjF9KSxpLiRzbGlkZXIucmVtb3ZlQ2xhc3MoInNsaWNrLWxvYWRpbmciKSxpLmluaXRVSSgpLCJwcm9ncmVzc2l2ZSI9PT1pLm9wdGlvbnMubGF6eUxvYWQmJmkucHJvZ3Jlc3NpdmVMYXp5TG9hZCgpfSxlLnByb3RvdHlwZS5uZXh0PWUucHJvdG90eXBlLnNsaWNrTmV4dD1mdW5jdGlvbigpe3RoaXMuY2hhbmdlU2xpZGUoe2RhdGE6e21lc3NhZ2U6Im5leHQifX0pfSxlLnByb3RvdHlwZS5vcmllbnRhdGlvbkNoYW5nZT1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5jaGVja1Jlc3BvbnNpdmUoKSxpLnNldFBvc2l0aW9uKCl9LGUucHJvdG90eXBlLnBhdXNlPWUucHJvdG90eXBlLnNsaWNrUGF1c2U9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2kuYXV0b1BsYXlDbGVhcigpLGkucGF1c2VkPSEwfSxlLnByb3RvdHlwZS5wbGF5PWUucHJvdG90eXBlLnNsaWNrUGxheT1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5hdXRvUGxheSgpLGkub3B0aW9ucy5hdXRvcGxheT0hMCxpLnBhdXNlZD0hMSxpLmZvY3Vzc2VkPSExLGkuaW50ZXJydXB0ZWQ9ITF9LGUucHJvdG90eXBlLnBvc3RTbGlkZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3QudW5zbGlja2VkfHwodC4kc2xpZGVyLnRyaWdnZXIoImFmdGVyQ2hhbmdlIixbdCxlXSksdC5hbmltYXRpbmc9ITEsdC5zbGlkZUNvdW50PnQub3B0aW9ucy5zbGlkZXNUb1Nob3cmJnQuc2V0UG9zaXRpb24oKSx0LnN3aXBlTGVmdD1udWxsLHQub3B0aW9ucy5hdXRvcGxheSYmdC5hdXRvUGxheSgpLCEwPT09dC5vcHRpb25zLmFjY2Vzc2liaWxpdHkmJih0LmluaXRBREEoKSx0Lm9wdGlvbnMuZm9jdXNPbkNoYW5nZSYmaSh0LiRzbGlkZXMuZ2V0KHQuY3VycmVudFNsaWRlKSkuYXR0cigidGFiaW5kZXgiLDApLmZvY3VzKCkpKX0sZS5wcm90b3R5cGUucHJldj1lLnByb3RvdHlwZS5zbGlja1ByZXY9ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZVNsaWRlKHtkYXRhOnttZXNzYWdlOiJwcmV2aW91cyJ9fSl9LGUucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKGkpe2kucHJldmVudERlZmF1bHQoKX0sZS5wcm90b3R5cGUucHJvZ3Jlc3NpdmVMYXp5TG9hZD1mdW5jdGlvbihlKXtlPWV8fDE7dmFyIHQsbyxzLG4scixsPXRoaXMsZD1pKCJpbWdbZGF0YS1sYXp5XSIsbC4kc2xpZGVyKTtkLmxlbmd0aD8odD1kLmZpcnN0KCksbz10LmF0dHIoImRhdGEtbGF6eSIpLHM9dC5hdHRyKCJkYXRhLXNyY3NldCIpLG49dC5hdHRyKCJkYXRhLXNpemVzIil8fGwuJHNsaWRlci5hdHRyKCJkYXRhLXNpemVzIiksKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikpLm9ubG9hZD1mdW5jdGlvbigpe3MmJih0LmF0dHIoInNyY3NldCIscyksbiYmdC5hdHRyKCJzaXplcyIsbikpLHQuYXR0cigic3JjIixvKS5yZW1vdmVBdHRyKCJkYXRhLWxhenkgZGF0YS1zcmNzZXQgZGF0YS1zaXplcyIpLnJlbW92ZUNsYXNzKCJzbGljay1sb2FkaW5nIiksITA9PT1sLm9wdGlvbnMuYWRhcHRpdmVIZWlnaHQmJmwuc2V0UG9zaXRpb24oKSxsLiRzbGlkZXIudHJpZ2dlcigibGF6eUxvYWRlZCIsW2wsdCxvXSksbC5wcm9ncmVzc2l2ZUxhenlMb2FkKCl9LHIub25lcnJvcj1mdW5jdGlvbigpe2U8Mz9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bC5wcm9ncmVzc2l2ZUxhenlMb2FkKGUrMSl9LDUwMCk6KHQucmVtb3ZlQXR0cigiZGF0YS1sYXp5IikucmVtb3ZlQ2xhc3MoInNsaWNrLWxvYWRpbmciKS5hZGRDbGFzcygic2xpY2stbGF6eWxvYWQtZXJyb3IiKSxsLiRzbGlkZXIudHJpZ2dlcigibGF6eUxvYWRFcnJvciIsW2wsdCxvXSksbC5wcm9ncmVzc2l2ZUxhenlMb2FkKCkpfSxyLnNyYz1vKTpsLiRzbGlkZXIudHJpZ2dlcigiYWxsSW1hZ2VzTG9hZGVkIixbbF0pfSxlLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKGUpe3ZhciB0LG8scz10aGlzO289cy5zbGlkZUNvdW50LXMub3B0aW9ucy5zbGlkZXNUb1Nob3csIXMub3B0aW9ucy5pbmZpbml0ZSYmcy5jdXJyZW50U2xpZGU+byYmKHMuY3VycmVudFNsaWRlPW8pLHMuc2xpZGVDb3VudDw9cy5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKHMuY3VycmVudFNsaWRlPTApLHQ9cy5jdXJyZW50U2xpZGUscy5kZXN0cm95KCEwKSxpLmV4dGVuZChzLHMuaW5pdGlhbHMse2N1cnJlbnRTbGlkZTp0fSkscy5pbml0KCksZXx8cy5jaGFuZ2VTbGlkZSh7ZGF0YTp7bWVzc2FnZToiaW5kZXgiLGluZGV4OnR9fSwhMSl9LGUucHJvdG90eXBlLnJlZ2lzdGVyQnJlYWtwb2ludHM9ZnVuY3Rpb24oKXt2YXIgZSx0LG8scz10aGlzLG49cy5vcHRpb25zLnJlc3BvbnNpdmV8fG51bGw7aWYoImFycmF5Ij09PWkudHlwZShuKSYmbi5sZW5ndGgpe3MucmVzcG9uZFRvPXMub3B0aW9ucy5yZXNwb25kVG98fCJ3aW5kb3ciO2ZvcihlIGluIG4paWYobz1zLmJyZWFrcG9pbnRzLmxlbmd0aC0xLG4uaGFzT3duUHJvcGVydHkoZSkpe2Zvcih0PW5bZV0uYnJlYWtwb2ludDtvPj0wOylzLmJyZWFrcG9pbnRzW29dJiZzLmJyZWFrcG9pbnRzW29dPT09dCYmcy5icmVha3BvaW50cy5zcGxpY2UobywxKSxvLS07cy5icmVha3BvaW50cy5wdXNoKHQpLHMuYnJlYWtwb2ludFNldHRpbmdzW3RdPW5bZV0uc2V0dGluZ3N9cy5icmVha3BvaW50cy5zb3J0KGZ1bmN0aW9uKGksZSl7cmV0dXJuIHMub3B0aW9ucy5tb2JpbGVGaXJzdD9pLWU6ZS1pfSl9fSxlLnByb3RvdHlwZS5yZWluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuJHNsaWRlcz1lLiRzbGlkZVRyYWNrLmNoaWxkcmVuKGUub3B0aW9ucy5zbGlkZSkuYWRkQ2xhc3MoInNsaWNrLXNsaWRlIiksZS5zbGlkZUNvdW50PWUuJHNsaWRlcy5sZW5ndGgsZS5jdXJyZW50U2xpZGU+PWUuc2xpZGVDb3VudCYmMCE9PWUuY3VycmVudFNsaWRlJiYoZS5jdXJyZW50U2xpZGU9ZS5jdXJyZW50U2xpZGUtZS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKSxlLnNsaWRlQ291bnQ8PWUub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihlLmN1cnJlbnRTbGlkZT0wKSxlLnJlZ2lzdGVyQnJlYWtwb2ludHMoKSxlLnNldFByb3BzKCksZS5zZXR1cEluZmluaXRlKCksZS5idWlsZEFycm93cygpLGUudXBkYXRlQXJyb3dzKCksZS5pbml0QXJyb3dFdmVudHMoKSxlLmJ1aWxkRG90cygpLGUudXBkYXRlRG90cygpLGUuaW5pdERvdEV2ZW50cygpLGUuY2xlYW5VcFNsaWRlRXZlbnRzKCksZS5pbml0U2xpZGVFdmVudHMoKSxlLmNoZWNrUmVzcG9uc2l2ZSghMSwhMCksITA9PT1lLm9wdGlvbnMuZm9jdXNPblNlbGVjdCYmaShlLiRzbGlkZVRyYWNrKS5jaGlsZHJlbigpLm9uKCJjbGljay5zbGljayIsZS5zZWxlY3RIYW5kbGVyKSxlLnNldFNsaWRlQ2xhc3NlcygibnVtYmVyIj09dHlwZW9mIGUuY3VycmVudFNsaWRlP2UuY3VycmVudFNsaWRlOjApLGUuc2V0UG9zaXRpb24oKSxlLmZvY3VzSGFuZGxlcigpLGUucGF1c2VkPSFlLm9wdGlvbnMuYXV0b3BsYXksZS5hdXRvUGxheSgpLGUuJHNsaWRlci50cmlnZ2VyKCJyZUluaXQiLFtlXSl9LGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aSh3aW5kb3cpLndpZHRoKCkhPT1lLndpbmRvd1dpZHRoJiYoY2xlYXJUaW1lb3V0KGUud2luZG93RGVsYXkpLGUud2luZG93RGVsYXk9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLndpbmRvd1dpZHRoPWkod2luZG93KS53aWR0aCgpLGUuY2hlY2tSZXNwb25zaXZlKCksZS51bnNsaWNrZWR8fGUuc2V0UG9zaXRpb24oKX0sNTApKX0sZS5wcm90b3R5cGUucmVtb3ZlU2xpZGU9ZS5wcm90b3R5cGUuc2xpY2tSZW1vdmU9ZnVuY3Rpb24oaSxlLHQpe3ZhciBvPXRoaXM7aWYoaT0iYm9vbGVhbiI9PXR5cGVvZiBpPyEwPT09KGU9aSk/MDpvLnNsaWRlQ291bnQtMTohMD09PWU/LS1pOmksby5zbGlkZUNvdW50PDF8fGk8MHx8aT5vLnNsaWRlQ291bnQtMSlyZXR1cm4hMTtvLnVubG9hZCgpLCEwPT09dD9vLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCkucmVtb3ZlKCk6by4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmVxKGkpLnJlbW92ZSgpLG8uJHNsaWRlcz1vLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSksby4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpLG8uJHNsaWRlVHJhY2suYXBwZW5kKG8uJHNsaWRlcyksby4kc2xpZGVzQ2FjaGU9by4kc2xpZGVzLG8ucmVpbml0KCl9LGUucHJvdG90eXBlLnNldENTUz1mdW5jdGlvbihpKXt2YXIgZSx0LG89dGhpcyxzPXt9OyEwPT09by5vcHRpb25zLnJ0bCYmKGk9LWkpLGU9ImxlZnQiPT1vLnBvc2l0aW9uUHJvcD9NYXRoLmNlaWwoaSkrInB4IjoiMHB4Iix0PSJ0b3AiPT1vLnBvc2l0aW9uUHJvcD9NYXRoLmNlaWwoaSkrInB4IjoiMHB4IixzW28ucG9zaXRpb25Qcm9wXT1pLCExPT09by50cmFuc2Zvcm1zRW5hYmxlZD9vLiRzbGlkZVRyYWNrLmNzcyhzKToocz17fSwhMT09PW8uY3NzVHJhbnNpdGlvbnM/KHNbby5hbmltVHlwZV09InRyYW5zbGF0ZSgiK2UrIiwgIit0KyIpIixvLiRzbGlkZVRyYWNrLmNzcyhzKSk6KHNbby5hbmltVHlwZV09InRyYW5zbGF0ZTNkKCIrZSsiLCAiK3QrIiwgMHB4KSIsby4kc2xpZGVUcmFjay5jc3MocykpKX0sZS5wcm90b3R5cGUuc2V0RGltZW5zaW9ucz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7ITE9PT1pLm9wdGlvbnMudmVydGljYWw/ITA9PT1pLm9wdGlvbnMuY2VudGVyTW9kZSYmaS4kbGlzdC5jc3Moe3BhZGRpbmc6IjBweCAiK2kub3B0aW9ucy5jZW50ZXJQYWRkaW5nfSk6KGkuJGxpc3QuaGVpZ2h0KGkuJHNsaWRlcy5maXJzdCgpLm91dGVySGVpZ2h0KCEwKSppLm9wdGlvbnMuc2xpZGVzVG9TaG93KSwhMD09PWkub3B0aW9ucy5jZW50ZXJNb2RlJiZpLiRsaXN0LmNzcyh7cGFkZGluZzppLm9wdGlvbnMuY2VudGVyUGFkZGluZysiIDBweCJ9KSksaS5saXN0V2lkdGg9aS4kbGlzdC53aWR0aCgpLGkubGlzdEhlaWdodD1pLiRsaXN0LmhlaWdodCgpLCExPT09aS5vcHRpb25zLnZlcnRpY2FsJiYhMT09PWkub3B0aW9ucy52YXJpYWJsZVdpZHRoPyhpLnNsaWRlV2lkdGg9TWF0aC5jZWlsKGkubGlzdFdpZHRoL2kub3B0aW9ucy5zbGlkZXNUb1Nob3cpLGkuJHNsaWRlVHJhY2sud2lkdGgoTWF0aC5jZWlsKGkuc2xpZGVXaWR0aCppLiRzbGlkZVRyYWNrLmNoaWxkcmVuKCIuc2xpY2stc2xpZGUiKS5sZW5ndGgpKSk6ITA9PT1pLm9wdGlvbnMudmFyaWFibGVXaWR0aD9pLiRzbGlkZVRyYWNrLndpZHRoKDVlMyppLnNsaWRlQ291bnQpOihpLnNsaWRlV2lkdGg9TWF0aC5jZWlsKGkubGlzdFdpZHRoKSxpLiRzbGlkZVRyYWNrLmhlaWdodChNYXRoLmNlaWwoaS4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQoITApKmkuJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLmxlbmd0aCkpKTt2YXIgZT1pLiRzbGlkZXMuZmlyc3QoKS5vdXRlcldpZHRoKCEwKS1pLiRzbGlkZXMuZmlyc3QoKS53aWR0aCgpOyExPT09aS5vcHRpb25zLnZhcmlhYmxlV2lkdGgmJmkuJHNsaWRlVHJhY2suY2hpbGRyZW4oIi5zbGljay1zbGlkZSIpLndpZHRoKGkuc2xpZGVXaWR0aC1lKX0sZS5wcm90b3R5cGUuc2V0RmFkZT1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpczt0LiRzbGlkZXMuZWFjaChmdW5jdGlvbihvLHMpe2U9dC5zbGlkZVdpZHRoKm8qLTEsITA9PT10Lm9wdGlvbnMucnRsP2kocykuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHJpZ2h0OmUsdG9wOjAsekluZGV4OnQub3B0aW9ucy56SW5kZXgtMixvcGFjaXR5OjB9KTppKHMpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixsZWZ0OmUsdG9wOjAsekluZGV4OnQub3B0aW9ucy56SW5kZXgtMixvcGFjaXR5OjB9KX0pLHQuJHNsaWRlcy5lcSh0LmN1cnJlbnRTbGlkZSkuY3NzKHt6SW5kZXg6dC5vcHRpb25zLnpJbmRleC0xLG9wYWNpdHk6MX0pfSxlLnByb3RvdHlwZS5zZXRIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKDE9PT1pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYhMD09PWkub3B0aW9ucy5hZGFwdGl2ZUhlaWdodCYmITE9PT1pLm9wdGlvbnMudmVydGljYWwpe3ZhciBlPWkuJHNsaWRlcy5lcShpLmN1cnJlbnRTbGlkZSkub3V0ZXJIZWlnaHQoITApO2kuJGxpc3QuY3NzKCJoZWlnaHQiLGUpfX0sZS5wcm90b3R5cGUuc2V0T3B0aW9uPWUucHJvdG90eXBlLnNsaWNrU2V0T3B0aW9uPWZ1bmN0aW9uKCl7dmFyIGUsdCxvLHMsbixyPXRoaXMsbD0hMTtpZigib2JqZWN0Ij09PWkudHlwZShhcmd1bWVudHNbMF0pPyhvPWFyZ3VtZW50c1swXSxsPWFyZ3VtZW50c1sxXSxuPSJtdWx0aXBsZSIpOiJzdHJpbmciPT09aS50eXBlKGFyZ3VtZW50c1swXSkmJihvPWFyZ3VtZW50c1swXSxzPWFyZ3VtZW50c1sxXSxsPWFyZ3VtZW50c1syXSwicmVzcG9uc2l2ZSI9PT1hcmd1bWVudHNbMF0mJiJhcnJheSI9PT1pLnR5cGUoYXJndW1lbnRzWzFdKT9uPSJyZXNwb25zaXZlIjp2b2lkIDAhPT1hcmd1bWVudHNbMV0mJihuPSJzaW5nbGUiKSksInNpbmdsZSI9PT1uKXIub3B0aW9uc1tvXT1zO2Vsc2UgaWYoIm11bHRpcGxlIj09PW4paS5lYWNoKG8sZnVuY3Rpb24oaSxlKXtyLm9wdGlvbnNbaV09ZX0pO2Vsc2UgaWYoInJlc3BvbnNpdmUiPT09bilmb3IodCBpbiBzKWlmKCJhcnJheSIhPT1pLnR5cGUoci5vcHRpb25zLnJlc3BvbnNpdmUpKXIub3B0aW9ucy5yZXNwb25zaXZlPVtzW3RdXTtlbHNle2ZvcihlPXIub3B0aW9ucy5yZXNwb25zaXZlLmxlbmd0aC0xO2U+PTA7KXIub3B0aW9ucy5yZXNwb25zaXZlW2VdLmJyZWFrcG9pbnQ9PT1zW3RdLmJyZWFrcG9pbnQmJnIub3B0aW9ucy5yZXNwb25zaXZlLnNwbGljZShlLDEpLGUtLTtyLm9wdGlvbnMucmVzcG9uc2l2ZS5wdXNoKHNbdF0pfWwmJihyLnVubG9hZCgpLHIucmVpbml0KCkpfSxlLnByb3RvdHlwZS5zZXRQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5zZXREaW1lbnNpb25zKCksaS5zZXRIZWlnaHQoKSwhMT09PWkub3B0aW9ucy5mYWRlP2kuc2V0Q1NTKGkuZ2V0TGVmdChpLmN1cnJlbnRTbGlkZSkpOmkuc2V0RmFkZSgpLGkuJHNsaWRlci50cmlnZ2VyKCJzZXRQb3NpdGlvbiIsW2ldKX0sZS5wcm90b3R5cGUuc2V0UHJvcHM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLGU9ZG9jdW1lbnQuYm9keS5zdHlsZTtpLnBvc2l0aW9uUHJvcD0hMD09PWkub3B0aW9ucy52ZXJ0aWNhbD8idG9wIjoibGVmdCIsInRvcCI9PT1pLnBvc2l0aW9uUHJvcD9pLiRzbGlkZXIuYWRkQ2xhc3MoInNsaWNrLXZlcnRpY2FsIik6aS4kc2xpZGVyLnJlbW92ZUNsYXNzKCJzbGljay12ZXJ0aWNhbCIpLHZvaWQgMD09PWUuV2Via2l0VHJhbnNpdGlvbiYmdm9pZCAwPT09ZS5Nb3pUcmFuc2l0aW9uJiZ2b2lkIDA9PT1lLm1zVHJhbnNpdGlvbnx8ITA9PT1pLm9wdGlvbnMudXNlQ1NTJiYoaS5jc3NUcmFuc2l0aW9ucz0hMCksaS5vcHRpb25zLmZhZGUmJigibnVtYmVyIj09dHlwZW9mIGkub3B0aW9ucy56SW5kZXg/aS5vcHRpb25zLnpJbmRleDwzJiYoaS5vcHRpb25zLnpJbmRleD0zKTppLm9wdGlvbnMuekluZGV4PWkuZGVmYXVsdHMuekluZGV4KSx2b2lkIDAhPT1lLk9UcmFuc2Zvcm0mJihpLmFuaW1UeXBlPSJPVHJhbnNmb3JtIixpLnRyYW5zZm9ybVR5cGU9Ii1vLXRyYW5zZm9ybSIsaS50cmFuc2l0aW9uVHlwZT0iT1RyYW5zaXRpb24iLHZvaWQgMD09PWUucGVyc3BlY3RpdmVQcm9wZXJ0eSYmdm9pZCAwPT09ZS53ZWJraXRQZXJzcGVjdGl2ZSYmKGkuYW5pbVR5cGU9ITEpKSx2b2lkIDAhPT1lLk1velRyYW5zZm9ybSYmKGkuYW5pbVR5cGU9Ik1velRyYW5zZm9ybSIsaS50cmFuc2Zvcm1UeXBlPSItbW96LXRyYW5zZm9ybSIsaS50cmFuc2l0aW9uVHlwZT0iTW96VHJhbnNpdGlvbiIsdm9pZCAwPT09ZS5wZXJzcGVjdGl2ZVByb3BlcnR5JiZ2b2lkIDA9PT1lLk1velBlcnNwZWN0aXZlJiYoaS5hbmltVHlwZT0hMSkpLHZvaWQgMCE9PWUud2Via2l0VHJhbnNmb3JtJiYoaS5hbmltVHlwZT0id2Via2l0VHJhbnNmb3JtIixpLnRyYW5zZm9ybVR5cGU9Ii13ZWJraXQtdHJhbnNmb3JtIixpLnRyYW5zaXRpb25UeXBlPSJ3ZWJraXRUcmFuc2l0aW9uIix2b2lkIDA9PT1lLnBlcnNwZWN0aXZlUHJvcGVydHkmJnZvaWQgMD09PWUud2Via2l0UGVyc3BlY3RpdmUmJihpLmFuaW1UeXBlPSExKSksdm9pZCAwIT09ZS5tc1RyYW5zZm9ybSYmKGkuYW5pbVR5cGU9Im1zVHJhbnNmb3JtIixpLnRyYW5zZm9ybVR5cGU9Ii1tcy10cmFuc2Zvcm0iLGkudHJhbnNpdGlvblR5cGU9Im1zVHJhbnNpdGlvbiIsdm9pZCAwPT09ZS5tc1RyYW5zZm9ybSYmKGkuYW5pbVR5cGU9ITEpKSx2b2lkIDAhPT1lLnRyYW5zZm9ybSYmITEhPT1pLmFuaW1UeXBlJiYoaS5hbmltVHlwZT0idHJhbnNmb3JtIixpLnRyYW5zZm9ybVR5cGU9InRyYW5zZm9ybSIsaS50cmFuc2l0aW9uVHlwZT0idHJhbnNpdGlvbiIpLGkudHJhbnNmb3Jtc0VuYWJsZWQ9aS5vcHRpb25zLnVzZVRyYW5zZm9ybSYmbnVsbCE9PWkuYW5pbVR5cGUmJiExIT09aS5hbmltVHlwZX0sZS5wcm90b3R5cGUuc2V0U2xpZGVDbGFzc2VzPWZ1bmN0aW9uKGkpe3ZhciBlLHQsbyxzLG49dGhpcztpZih0PW4uJHNsaWRlci5maW5kKCIuc2xpY2stc2xpZGUiKS5yZW1vdmVDbGFzcygic2xpY2stYWN0aXZlIHNsaWNrLWNlbnRlciBzbGljay1jdXJyZW50IikuYXR0cigiYXJpYS1oaWRkZW4iLCJ0cnVlIiksbi4kc2xpZGVzLmVxKGkpLmFkZENsYXNzKCJzbGljay1jdXJyZW50IiksITA9PT1uLm9wdGlvbnMuY2VudGVyTW9kZSl7dmFyIHI9bi5vcHRpb25zLnNsaWRlc1RvU2hvdyUyPT0wPzE6MDtlPU1hdGguZmxvb3Iobi5vcHRpb25zLnNsaWRlc1RvU2hvdy8yKSwhMD09PW4ub3B0aW9ucy5pbmZpbml0ZSYmKGk+PWUmJmk8PW4uc2xpZGVDb3VudC0xLWU/bi4kc2xpZGVzLnNsaWNlKGktZStyLGkrZSsxKS5hZGRDbGFzcygic2xpY2stYWN0aXZlIikuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpOihvPW4ub3B0aW9ucy5zbGlkZXNUb1Nob3craSx0LnNsaWNlKG8tZSsxK3IsbytlKzIpLmFkZENsYXNzKCJzbGljay1hY3RpdmUiKS5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIikpLDA9PT1pP3QuZXEodC5sZW5ndGgtMS1uLm9wdGlvbnMuc2xpZGVzVG9TaG93KS5hZGRDbGFzcygic2xpY2stY2VudGVyIik6aT09PW4uc2xpZGVDb3VudC0xJiZ0LmVxKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cpLmFkZENsYXNzKCJzbGljay1jZW50ZXIiKSksbi4kc2xpZGVzLmVxKGkpLmFkZENsYXNzKCJzbGljay1jZW50ZXIiKX1lbHNlIGk+PTAmJmk8PW4uc2xpZGVDb3VudC1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P24uJHNsaWRlcy5zbGljZShpLGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdykuYWRkQ2xhc3MoInNsaWNrLWFjdGl2ZSIpLmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKTp0Lmxlbmd0aDw9bi5vcHRpb25zLnNsaWRlc1RvU2hvdz90LmFkZENsYXNzKCJzbGljay1hY3RpdmUiKS5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIik6KHM9bi5zbGlkZUNvdW50JW4ub3B0aW9ucy5zbGlkZXNUb1Nob3csbz0hMD09PW4ub3B0aW9ucy5pbmZpbml0ZT9uLm9wdGlvbnMuc2xpZGVzVG9TaG93K2k6aSxuLm9wdGlvbnMuc2xpZGVzVG9TaG93PT1uLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwmJm4uc2xpZGVDb3VudC1pPG4ub3B0aW9ucy5zbGlkZXNUb1Nob3c/dC5zbGljZShvLShuLm9wdGlvbnMuc2xpZGVzVG9TaG93LXMpLG8rcykuYWRkQ2xhc3MoInNsaWNrLWFjdGl2ZSIpLmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKTp0LnNsaWNlKG8sbytuLm9wdGlvbnMuc2xpZGVzVG9TaG93KS5hZGRDbGFzcygic2xpY2stYWN0aXZlIikuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpKTsib25kZW1hbmQiIT09bi5vcHRpb25zLmxhenlMb2FkJiYiYW50aWNpcGF0ZWQiIT09bi5vcHRpb25zLmxhenlMb2FkfHxuLmxhenlMb2FkKCl9LGUucHJvdG90eXBlLnNldHVwSW5maW5pdGU9ZnVuY3Rpb24oKXt2YXIgZSx0LG8scz10aGlzO2lmKCEwPT09cy5vcHRpb25zLmZhZGUmJihzLm9wdGlvbnMuY2VudGVyTW9kZT0hMSksITA9PT1zLm9wdGlvbnMuaW5maW5pdGUmJiExPT09cy5vcHRpb25zLmZhZGUmJih0PW51bGwscy5zbGlkZUNvdW50PnMub3B0aW9ucy5zbGlkZXNUb1Nob3cpKXtmb3Iobz0hMD09PXMub3B0aW9ucy5jZW50ZXJNb2RlP3Mub3B0aW9ucy5zbGlkZXNUb1Nob3crMTpzLm9wdGlvbnMuc2xpZGVzVG9TaG93LGU9cy5zbGlkZUNvdW50O2U+cy5zbGlkZUNvdW50LW87ZS09MSl0PWUtMSxpKHMuJHNsaWRlc1t0XSkuY2xvbmUoITApLmF0dHIoImlkIiwiIikuYXR0cigiZGF0YS1zbGljay1pbmRleCIsdC1zLnNsaWRlQ291bnQpLnByZXBlbmRUbyhzLiRzbGlkZVRyYWNrKS5hZGRDbGFzcygic2xpY2stY2xvbmVkIik7Zm9yKGU9MDtlPG8rcy5zbGlkZUNvdW50O2UrPTEpdD1lLGkocy4kc2xpZGVzW3RdKS5jbG9uZSghMCkuYXR0cigiaWQiLCIiKS5hdHRyKCJkYXRhLXNsaWNrLWluZGV4Iix0K3Muc2xpZGVDb3VudCkuYXBwZW5kVG8ocy4kc2xpZGVUcmFjaykuYWRkQ2xhc3MoInNsaWNrLWNsb25lZCIpO3MuJHNsaWRlVHJhY2suZmluZCgiLnNsaWNrLWNsb25lZCIpLmZpbmQoIltpZF0iKS5lYWNoKGZ1bmN0aW9uKCl7aSh0aGlzKS5hdHRyKCJpZCIsIiIpfSl9fSxlLnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcztpfHxlLmF1dG9QbGF5KCksZS5pbnRlcnJ1cHRlZD1pfSxlLnByb3RvdHlwZS5zZWxlY3RIYW5kbGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbz1pKGUudGFyZ2V0KS5pcygiLnNsaWNrLXNsaWRlIik/aShlLnRhcmdldCk6aShlLnRhcmdldCkucGFyZW50cygiLnNsaWNrLXNsaWRlIikscz1wYXJzZUludChvLmF0dHIoImRhdGEtc2xpY2staW5kZXgiKSk7c3x8KHM9MCksdC5zbGlkZUNvdW50PD10Lm9wdGlvbnMuc2xpZGVzVG9TaG93P3Quc2xpZGVIYW5kbGVyKHMsITEsITApOnQuc2xpZGVIYW5kbGVyKHMpfSxlLnByb3RvdHlwZS5zbGlkZUhhbmRsZXI9ZnVuY3Rpb24oaSxlLHQpe3ZhciBvLHMsbixyLGwsZD1udWxsLGE9dGhpcztpZihlPWV8fCExLCEoITA9PT1hLmFuaW1hdGluZyYmITA9PT1hLm9wdGlvbnMud2FpdEZvckFuaW1hdGV8fCEwPT09YS5vcHRpb25zLmZhZGUmJmEuY3VycmVudFNsaWRlPT09aSkpaWYoITE9PT1lJiZhLmFzTmF2Rm9yKGkpLG89aSxkPWEuZ2V0TGVmdChvKSxyPWEuZ2V0TGVmdChhLmN1cnJlbnRTbGlkZSksYS5jdXJyZW50TGVmdD1udWxsPT09YS5zd2lwZUxlZnQ/cjphLnN3aXBlTGVmdCwhMT09PWEub3B0aW9ucy5pbmZpbml0ZSYmITE9PT1hLm9wdGlvbnMuY2VudGVyTW9kZSYmKGk8MHx8aT5hLmdldERvdENvdW50KCkqYS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKSkhMT09PWEub3B0aW9ucy5mYWRlJiYobz1hLmN1cnJlbnRTbGlkZSwhMCE9PXQ/YS5hbmltYXRlU2xpZGUocixmdW5jdGlvbigpe2EucG9zdFNsaWRlKG8pfSk6YS5wb3N0U2xpZGUobykpO2Vsc2UgaWYoITE9PT1hLm9wdGlvbnMuaW5maW5pdGUmJiEwPT09YS5vcHRpb25zLmNlbnRlck1vZGUmJihpPDB8fGk+YS5zbGlkZUNvdW50LWEub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCkpITE9PT1hLm9wdGlvbnMuZmFkZSYmKG89YS5jdXJyZW50U2xpZGUsITAhPT10P2EuYW5pbWF0ZVNsaWRlKHIsZnVuY3Rpb24oKXthLnBvc3RTbGlkZShvKX0pOmEucG9zdFNsaWRlKG8pKTtlbHNle2lmKGEub3B0aW9ucy5hdXRvcGxheSYmY2xlYXJJbnRlcnZhbChhLmF1dG9QbGF5VGltZXIpLHM9bzwwP2Euc2xpZGVDb3VudCVhLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwhPTA/YS5zbGlkZUNvdW50LWEuc2xpZGVDb3VudCVhLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6YS5zbGlkZUNvdW50K286bz49YS5zbGlkZUNvdW50P2Euc2xpZGVDb3VudCVhLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwhPTA/MDpvLWEuc2xpZGVDb3VudDpvLGEuYW5pbWF0aW5nPSEwLGEuJHNsaWRlci50cmlnZ2VyKCJiZWZvcmVDaGFuZ2UiLFthLGEuY3VycmVudFNsaWRlLHNdKSxuPWEuY3VycmVudFNsaWRlLGEuY3VycmVudFNsaWRlPXMsYS5zZXRTbGlkZUNsYXNzZXMoYS5jdXJyZW50U2xpZGUpLGEub3B0aW9ucy5hc05hdkZvciYmKGw9KGw9YS5nZXROYXZUYXJnZXQoKSkuc2xpY2soImdldFNsaWNrIikpLnNsaWRlQ291bnQ8PWwub3B0aW9ucy5zbGlkZXNUb1Nob3cmJmwuc2V0U2xpZGVDbGFzc2VzKGEuY3VycmVudFNsaWRlKSxhLnVwZGF0ZURvdHMoKSxhLnVwZGF0ZUFycm93cygpLCEwPT09YS5vcHRpb25zLmZhZGUpcmV0dXJuITAhPT10PyhhLmZhZGVTbGlkZU91dChuKSxhLmZhZGVTbGlkZShzLGZ1bmN0aW9uKCl7YS5wb3N0U2xpZGUocyl9KSk6YS5wb3N0U2xpZGUocyksdm9pZCBhLmFuaW1hdGVIZWlnaHQoKTshMCE9PXQ/YS5hbmltYXRlU2xpZGUoZCxmdW5jdGlvbigpe2EucG9zdFNsaWRlKHMpfSk6YS5wb3N0U2xpZGUocyl9fSxlLnByb3RvdHlwZS5zdGFydExvYWQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzOyEwPT09aS5vcHRpb25zLmFycm93cyYmaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihpLiRwcmV2QXJyb3cuaGlkZSgpLGkuJG5leHRBcnJvdy5oaWRlKCkpLCEwPT09aS5vcHRpb25zLmRvdHMmJmkuc2xpZGVDb3VudD5pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiZpLiRkb3RzLmhpZGUoKSxpLiRzbGlkZXIuYWRkQ2xhc3MoInNsaWNrLWxvYWRpbmciKX0sZS5wcm90b3R5cGUuc3dpcGVEaXJlY3Rpb249ZnVuY3Rpb24oKXt2YXIgaSxlLHQsbyxzPXRoaXM7cmV0dXJuIGk9cy50b3VjaE9iamVjdC5zdGFydFgtcy50b3VjaE9iamVjdC5jdXJYLGU9cy50b3VjaE9iamVjdC5zdGFydFktcy50b3VjaE9iamVjdC5jdXJZLHQ9TWF0aC5hdGFuMihlLGkpLChvPU1hdGgucm91bmQoMTgwKnQvTWF0aC5QSSkpPDAmJihvPTM2MC1NYXRoLmFicyhvKSksbzw9NDUmJm8+PTA/ITE9PT1zLm9wdGlvbnMucnRsPyJsZWZ0IjoicmlnaHQiOm88PTM2MCYmbz49MzE1PyExPT09cy5vcHRpb25zLnJ0bD8ibGVmdCI6InJpZ2h0IjpvPj0xMzUmJm88PTIyNT8hMT09PXMub3B0aW9ucy5ydGw/InJpZ2h0IjoibGVmdCI6ITA9PT1zLm9wdGlvbnMudmVydGljYWxTd2lwaW5nP28+PTM1JiZvPD0xMzU/ImRvd24iOiJ1cCI6InZlcnRpY2FsIn0sZS5wcm90b3R5cGUuc3dpcGVFbmQ9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvPXRoaXM7aWYoby5kcmFnZ2luZz0hMSxvLnN3aXBpbmc9ITEsby5zY3JvbGxpbmcpcmV0dXJuIG8uc2Nyb2xsaW5nPSExLCExO2lmKG8uaW50ZXJydXB0ZWQ9ITEsby5zaG91bGRDbGljaz0hKG8udG91Y2hPYmplY3Quc3dpcGVMZW5ndGg+MTApLHZvaWQgMD09PW8udG91Y2hPYmplY3QuY3VyWClyZXR1cm4hMTtpZighMD09PW8udG91Y2hPYmplY3QuZWRnZUhpdCYmby4kc2xpZGVyLnRyaWdnZXIoImVkZ2UiLFtvLG8uc3dpcGVEaXJlY3Rpb24oKV0pLG8udG91Y2hPYmplY3Quc3dpcGVMZW5ndGg+PW8udG91Y2hPYmplY3QubWluU3dpcGUpe3N3aXRjaCh0PW8uc3dpcGVEaXJlY3Rpb24oKSl7Y2FzZSJsZWZ0IjpjYXNlImRvd24iOmU9by5vcHRpb25zLnN3aXBlVG9TbGlkZT9vLmNoZWNrTmF2aWdhYmxlKG8uY3VycmVudFNsaWRlK28uZ2V0U2xpZGVDb3VudCgpKTpvLmN1cnJlbnRTbGlkZStvLmdldFNsaWRlQ291bnQoKSxvLmN1cnJlbnREaXJlY3Rpb249MDticmVhaztjYXNlInJpZ2h0IjpjYXNlInVwIjplPW8ub3B0aW9ucy5zd2lwZVRvU2xpZGU/by5jaGVja05hdmlnYWJsZShvLmN1cnJlbnRTbGlkZS1vLmdldFNsaWRlQ291bnQoKSk6by5jdXJyZW50U2xpZGUtby5nZXRTbGlkZUNvdW50KCksby5jdXJyZW50RGlyZWN0aW9uPTF9InZlcnRpY2FsIiE9dCYmKG8uc2xpZGVIYW5kbGVyKGUpLG8udG91Y2hPYmplY3Q9e30sby4kc2xpZGVyLnRyaWdnZXIoInN3aXBlIixbbyx0XSkpfWVsc2Ugby50b3VjaE9iamVjdC5zdGFydFghPT1vLnRvdWNoT2JqZWN0LmN1clgmJihvLnNsaWRlSGFuZGxlcihvLmN1cnJlbnRTbGlkZSksby50b3VjaE9iamVjdD17fSl9LGUucHJvdG90eXBlLnN3aXBlSGFuZGxlcj1mdW5jdGlvbihpKXt2YXIgZT10aGlzO2lmKCEoITE9PT1lLm9wdGlvbnMuc3dpcGV8fCJvbnRvdWNoZW5kImluIGRvY3VtZW50JiYhMT09PWUub3B0aW9ucy5zd2lwZXx8ITE9PT1lLm9wdGlvbnMuZHJhZ2dhYmxlJiYtMSE9PWkudHlwZS5pbmRleE9mKCJtb3VzZSIpKSlzd2l0Y2goZS50b3VjaE9iamVjdC5maW5nZXJDb3VudD1pLm9yaWdpbmFsRXZlbnQmJnZvaWQgMCE9PWkub3JpZ2luYWxFdmVudC50b3VjaGVzP2kub3JpZ2luYWxFdmVudC50b3VjaGVzLmxlbmd0aDoxLGUudG91Y2hPYmplY3QubWluU3dpcGU9ZS5saXN0V2lkdGgvZS5vcHRpb25zLnRvdWNoVGhyZXNob2xkLCEwPT09ZS5vcHRpb25zLnZlcnRpY2FsU3dpcGluZyYmKGUudG91Y2hPYmplY3QubWluU3dpcGU9ZS5saXN0SGVpZ2h0L2Uub3B0aW9ucy50b3VjaFRocmVzaG9sZCksaS5kYXRhLmFjdGlvbil7Y2FzZSJzdGFydCI6ZS5zd2lwZVN0YXJ0KGkpO2JyZWFrO2Nhc2UibW92ZSI6ZS5zd2lwZU1vdmUoaSk7YnJlYWs7Y2FzZSJlbmQiOmUuc3dpcGVFbmQoaSl9fSxlLnByb3RvdHlwZS5zd2lwZU1vdmU9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvLHMsbixyLGw9dGhpcztyZXR1cm4gbj12b2lkIDAhPT1pLm9yaWdpbmFsRXZlbnQ/aS5vcmlnaW5hbEV2ZW50LnRvdWNoZXM6bnVsbCwhKCFsLmRyYWdnaW5nfHxsLnNjcm9sbGluZ3x8biYmMSE9PW4ubGVuZ3RoKSYmKGU9bC5nZXRMZWZ0KGwuY3VycmVudFNsaWRlKSxsLnRvdWNoT2JqZWN0LmN1clg9dm9pZCAwIT09bj9uWzBdLnBhZ2VYOmkuY2xpZW50WCxsLnRvdWNoT2JqZWN0LmN1clk9dm9pZCAwIT09bj9uWzBdLnBhZ2VZOmkuY2xpZW50WSxsLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoPU1hdGgucm91bmQoTWF0aC5zcXJ0KE1hdGgucG93KGwudG91Y2hPYmplY3QuY3VyWC1sLnRvdWNoT2JqZWN0LnN0YXJ0WCwyKSkpLHI9TWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3cobC50b3VjaE9iamVjdC5jdXJZLWwudG91Y2hPYmplY3Quc3RhcnRZLDIpKSksIWwub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcmJiFsLnN3aXBpbmcmJnI+ND8obC5zY3JvbGxpbmc9ITAsITEpOighMD09PWwub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcmJihsLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoPXIpLHQ9bC5zd2lwZURpcmVjdGlvbigpLHZvaWQgMCE9PWkub3JpZ2luYWxFdmVudCYmbC50b3VjaE9iamVjdC5zd2lwZUxlbmd0aD40JiYobC5zd2lwaW5nPSEwLGkucHJldmVudERlZmF1bHQoKSkscz0oITE9PT1sLm9wdGlvbnMucnRsPzE6LTEpKihsLnRvdWNoT2JqZWN0LmN1clg+bC50b3VjaE9iamVjdC5zdGFydFg/MTotMSksITA9PT1sLm9wdGlvbnMudmVydGljYWxTd2lwaW5nJiYocz1sLnRvdWNoT2JqZWN0LmN1clk+bC50b3VjaE9iamVjdC5zdGFydFk/MTotMSksbz1sLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoLGwudG91Y2hPYmplY3QuZWRnZUhpdD0hMSwhMT09PWwub3B0aW9ucy5pbmZpbml0ZSYmKDA9PT1sLmN1cnJlbnRTbGlkZSYmInJpZ2h0Ij09PXR8fGwuY3VycmVudFNsaWRlPj1sLmdldERvdENvdW50KCkmJiJsZWZ0Ij09PXQpJiYobz1sLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoKmwub3B0aW9ucy5lZGdlRnJpY3Rpb24sbC50b3VjaE9iamVjdC5lZGdlSGl0PSEwKSwhMT09PWwub3B0aW9ucy52ZXJ0aWNhbD9sLnN3aXBlTGVmdD1lK28qczpsLnN3aXBlTGVmdD1lK28qKGwuJGxpc3QuaGVpZ2h0KCkvbC5saXN0V2lkdGgpKnMsITA9PT1sLm9wdGlvbnMudmVydGljYWxTd2lwaW5nJiYobC5zd2lwZUxlZnQ9ZStvKnMpLCEwIT09bC5vcHRpb25zLmZhZGUmJiExIT09bC5vcHRpb25zLnRvdWNoTW92ZSYmKCEwPT09bC5hbmltYXRpbmc/KGwuc3dpcGVMZWZ0PW51bGwsITEpOnZvaWQgbC5zZXRDU1MobC5zd2lwZUxlZnQpKSkpfSxlLnByb3RvdHlwZS5zd2lwZVN0YXJ0PWZ1bmN0aW9uKGkpe3ZhciBlLHQ9dGhpcztpZih0LmludGVycnVwdGVkPSEwLDEhPT10LnRvdWNoT2JqZWN0LmZpbmdlckNvdW50fHx0LnNsaWRlQ291bnQ8PXQub3B0aW9ucy5zbGlkZXNUb1Nob3cpcmV0dXJuIHQudG91Y2hPYmplY3Q9e30sITE7dm9pZCAwIT09aS5vcmlnaW5hbEV2ZW50JiZ2b2lkIDAhPT1pLm9yaWdpbmFsRXZlbnQudG91Y2hlcyYmKGU9aS5vcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF0pLHQudG91Y2hPYmplY3Quc3RhcnRYPXQudG91Y2hPYmplY3QuY3VyWD12b2lkIDAhPT1lP2UucGFnZVg6aS5jbGllbnRYLHQudG91Y2hPYmplY3Quc3RhcnRZPXQudG91Y2hPYmplY3QuY3VyWT12b2lkIDAhPT1lP2UucGFnZVk6aS5jbGllbnRZLHQuZHJhZ2dpbmc9ITB9LGUucHJvdG90eXBlLnVuZmlsdGVyU2xpZGVzPWUucHJvdG90eXBlLnNsaWNrVW5maWx0ZXI9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO251bGwhPT1pLiRzbGlkZXNDYWNoZSYmKGkudW5sb2FkKCksaS4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpLGkuJHNsaWRlc0NhY2hlLmFwcGVuZFRvKGkuJHNsaWRlVHJhY2spLGkucmVpbml0KCkpfSxlLnByb3RvdHlwZS51bmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2koIi5zbGljay1jbG9uZWQiLGUuJHNsaWRlcikucmVtb3ZlKCksZS4kZG90cyYmZS4kZG90cy5yZW1vdmUoKSxlLiRwcmV2QXJyb3cmJmUuaHRtbEV4cHIudGVzdChlLm9wdGlvbnMucHJldkFycm93KSYmZS4kcHJldkFycm93LnJlbW92ZSgpLGUuJG5leHRBcnJvdyYmZS5odG1sRXhwci50ZXN0KGUub3B0aW9ucy5uZXh0QXJyb3cpJiZlLiRuZXh0QXJyb3cucmVtb3ZlKCksZS4kc2xpZGVzLnJlbW92ZUNsYXNzKCJzbGljay1zbGlkZSBzbGljay1hY3RpdmUgc2xpY2stdmlzaWJsZSBzbGljay1jdXJyZW50IikuYXR0cigiYXJpYS1oaWRkZW4iLCJ0cnVlIikuY3NzKCJ3aWR0aCIsIiIpfSxlLnByb3RvdHlwZS51bnNsaWNrPWZ1bmN0aW9uKGkpe3ZhciBlPXRoaXM7ZS4kc2xpZGVyLnRyaWdnZXIoInVuc2xpY2siLFtlLGldKSxlLmRlc3Ryb3koKX0sZS5wcm90b3R5cGUudXBkYXRlQXJyb3dzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztNYXRoLmZsb29yKGkub3B0aW9ucy5zbGlkZXNUb1Nob3cvMiksITA9PT1pLm9wdGlvbnMuYXJyb3dzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmIWkub3B0aW9ucy5pbmZpbml0ZSYmKGkuJHByZXZBcnJvdy5yZW1vdmVDbGFzcygic2xpY2stZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwiZmFsc2UiKSxpLiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoInNsaWNrLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsImZhbHNlIiksMD09PWkuY3VycmVudFNsaWRlPyhpLiRwcmV2QXJyb3cuYWRkQ2xhc3MoInNsaWNrLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSxpLiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoInNsaWNrLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsImZhbHNlIikpOmkuY3VycmVudFNsaWRlPj1pLnNsaWRlQ291bnQtaS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmITE9PT1pLm9wdGlvbnMuY2VudGVyTW9kZT8oaS4kbmV4dEFycm93LmFkZENsYXNzKCJzbGljay1kaXNhYmxlZCIpLmF0dHIoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIiksaS4kcHJldkFycm93LnJlbW92ZUNsYXNzKCJzbGljay1kaXNhYmxlZCIpLmF0dHIoImFyaWEtZGlzYWJsZWQiLCJmYWxzZSIpKTppLmN1cnJlbnRTbGlkZT49aS5zbGlkZUNvdW50LTEmJiEwPT09aS5vcHRpb25zLmNlbnRlck1vZGUmJihpLiRuZXh0QXJyb3cuYWRkQ2xhc3MoInNsaWNrLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSxpLiRwcmV2QXJyb3cucmVtb3ZlQ2xhc3MoInNsaWNrLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsImZhbHNlIikpKX0sZS5wcm90b3R5cGUudXBkYXRlRG90cz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7bnVsbCE9PWkuJGRvdHMmJihpLiRkb3RzLmZpbmQoImxpIikucmVtb3ZlQ2xhc3MoInNsaWNrLWFjdGl2ZSIpLmVuZCgpLGkuJGRvdHMuZmluZCgibGkiKS5lcShNYXRoLmZsb29yKGkuY3VycmVudFNsaWRlL2kub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCkpLmFkZENsYXNzKCJzbGljay1hY3RpdmUiKSl9LGUucHJvdG90eXBlLnZpc2liaWxpdHk9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2kub3B0aW9ucy5hdXRvcGxheSYmKGRvY3VtZW50W2kuaGlkZGVuXT9pLmludGVycnVwdGVkPSEwOmkuaW50ZXJydXB0ZWQ9ITEpfSxpLmZuLnNsaWNrPWZ1bmN0aW9uKCl7dmFyIGksdCxvPXRoaXMscz1hcmd1bWVudHNbMF0sbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscj1vLmxlbmd0aDtmb3IoaT0wO2k8cjtpKyspaWYoIm9iamVjdCI9PXR5cGVvZiBzfHx2b2lkIDA9PT1zP29baV0uc2xpY2s9bmV3IGUob1tpXSxzKTp0PW9baV0uc2xpY2tbc10uYXBwbHkob1tpXS5zbGljayxuKSx2b2lkIDAhPT10KXJldHVybiB0O3JldHVybiBvfX0pOwo="}},"time_used":989,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":978,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/images/features/5a426931dcbdc.png","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.874Z","timestamp":1785126645874,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/images/features/5a426931dcbdc.png HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: max-age=3600, public\r\nexpires: Wed, 26 Aug 2026 04:30:46 GMT\r\ncontent-type: image/png\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-length: 33283\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":33283,"size_decoded":33528,"mime_type":"image/png","magic":"PNG image data, 400 x 400, 8-bit/color RGBA, non-interlaced","md5":"6cec14fdc70ccbc50f075bd34a5e405b","sha1":"5b50c3f5b60162ceefdd436d4a0adc2cefc4fcae","sha256":"358eade2ae8742f5c1ba4781a656c568a9da060f406c2fc2119e8de3e4ea5299","sha512":"d995bd2a347edf0d2fcc88310d92fc6151c2285611bf963d230f3cef9817d3691c7f92e417117a940d72a8fad0ffb589af7a90d90c3eb09648084c1467962716","ssdeep":"384:rf69A4yyyyyyr9KWLi0HG6VdJtrUOYYmI8Pykp6VlO77riQEm0EwsJChvPOv8yyo:j62c9KSi+Gmjt4OhmIiyw6jfW","tlshash":"9be2d068c5f5f5842accae7a6d92921d9a302a8335d44cc273ce191b7f63b8c4cdf489","first_seen":"2025-03-17T20:39:33.111038Z","last_seen":"2026-07-27T04:32:40.535487Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjAxKzA2OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMTItMjZUMjE6MjE6NTErMDY6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI2VDIxOjIxOjUxKzA2OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmZlNWFkNDU0LWRlOWItNTE0YS04M2JjLTEyMTQ5NDU5MGViYzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpBRDhDMDhFQ0Q0RkMxMUU3OEMwMThFNUJCNTE0NkU3MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDpBRDhDMDhFOUQ0RkMxMUU3OEMwMThFNUJCNTE0NkU3Mzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpBRDhDMDhFQUQ0RkMxMUU3OEMwMThFNUJCNTE0NkU3Mzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOkFEOEMwOEVDRDRGQzExRTc4QzAxOEU1QkI1MTQ2RTczPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmZTVhZDQ1NC1kZTliLTUxNGEtODNiYy0xMjE0OTQ1OTBlYmM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjZUMjE6MjE6NTErMDY6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+Hkx2bAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAABH3UlEQVR42uydd3wc1b23vzOzRauVVlr1Xm1ZlizL3QYbDBgbg8F0SEgCoSUhN9z3hksgebnpb3ogpHJTaAkQCMRgCM1UY2PcbdmSLVm9967VrrQ7M+8ftsE4mtldaSXtSt/nk3yi+MzMTjnnPOd35pwzgqqqIIQQQvxF5C0ghBBCgRBCCKFACCGEUCCEEEIoEEIIIYQCIYQQQoEQQgihQAghhFAghBBCKBBCCCGEAiGEEEKBEEIIoUAIIYRQIIQQQigQQgghhAIhhBBCgRBCCKFACCGEUCCEEEIoEEIIIYQCIYQQQoEQQgihQAghhFAghBBCKBBCCCGEAiGEEEKBEEIIoUAIIYRQIIQQQigQQgghhAIhhBBCgRBCCKFACCGEUCCEEEIoEEIIIcRfDMF2QsUH7uFTIZNN18n/EQQBEE7/DQBQT/9/DQSoJ/9Q1dP/pJ78j3ryT8Tz9pLJomTpQxQIIZOE6u/m6tm7ClN2DgIfF2EEQkhQSyLkroNiIRQIIZQFxUIoEEIoi+C7PxQKoUAIK0RCoRAKhBBKg0IhFAghFMYMuveUCaFACKVBKBNCgRBK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"}},"time_used":970,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":961,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/3635.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.704Z","timestamp":1785126646704,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/3635.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2898\r\nage: 77859\r\nlast-modified: Thu, 16 Mar 2023 13:04:10 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 06:53:08 GMT\r\netag: \"0383d666db05fd337b9c48f5cca099b5\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: b_4cR9eDjpjJJuA6PivVn3skTmhHIRJ0Mk_9TTXUGyHe1a5iIacguA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":2898,"size_decoded":3432,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"0383d666db05fd337b9c48f5cca099b5","sha1":"8753fdae53ff0316cdae36277df48fd191899308","sha256":"6df892e8987e5a31eb490ccf4d625a34c1adc00f479831dbc70773ccc07a274f","sha512":"be5d557758477558c00b6e688553130f2422cc4537b70f7a97d3e9bcdd22573b9a0954c79c047d6c9196f2b351cd32bb750ef445bc40c7401bb91c589212baf3","ssdeep":"","tlshash":"15513b5a40a83888d7406ba7e170ce1ca3e38062ea8e6b07d5c3ba6699725102e534f7","first_seen":"2023-12-05T12:10:14Z","last_seen":"2026-07-27T08:07:37.43955Z","times_seen":1119,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAALGUlEQVR4XuVb2W9jVxnvf4IQ6sRxbMeJ9yzMVBVFtEChy3SGcSaJ7ThxkhmmQuWBPlBpBE8ICfHCA33hBSEheGgrVEZtWQqFomlFp1I1EoyAB1SBmNi++71OPr7vO/fa13ezEy9JNQ8/eTv3LL/z7ef4IU3T4EHGQ94vHjScHgFqB18N//dTxqkRYFoqqKrs+37amDIBCuiqBrpuQksBeOX195EEFQzDAtlQAtpPHlMhQNXFwg3DgJZsQKZ0BRLFfZgrbkGisAUWAEuEoZm+ZyeNiRNAi7csg3f5xos/gNl8FeYK27x4N+L5MvyvJYOhq0yWqtPzk5eKiRKgqCaoWgvevX0PEqVruOsbvoV3CbBf53PPQbPdAklCqfnkEaDwzsmKAbLchgPpCOZwx+Olmm/BgXAkA595pvwNtg+aooOmSwFjjQdjJYANHMEUej5XaHR39rhI5Lfh0wvPAq4fJqkKYyVAVjR46mvPw/zqdd51MnBB+i4QJBW97+L5OsRzVfhUugzJxTJLla7rvjFHxYgEGLZb06EpA8zhRGnX/Qvzg8kJ+N6LRKEGyVIDZjM1eOyLFSZZSMR4gqgRCdDQnx9BenUDUqVt27UF7awfieIupApXhVcI+j0vJEeoUI0lKV6qwExmC377x7sgKW3fXE6CYxJArAv2FVWHrb2bML+y45u8F4k8SUWFF0AScv4LNZQYjAssE+6j5Mwsrg80lD1bUsP3DZhH8kyMH0gCaW6qZgXMdzCOSQAuXrXgVYzgPpNdF5MK1XEXAQWa9DbkltdANY5w0oaw8NwnvdfhN+/cRSLC3SSpDI0nVAf7y++w9CTyl6HZNEFRTmYoBxJAgQy9UpQmax3U86sQLwSLrRc04XOZddytOnx8XyQ//YbMNWkFcwPsP1W4hP3vwVyJyIiWih5q8Of3/snex5GIYTGQANPsQKcDkFxaw2Cmyrrrn4AX6AGKO5DE97945Z1uQCOiOzccQyZUS7U/N6UOpHG8WN7bbxiEjUhkq3DQBh5nWCJCCVAUCfW8CS+8+EMMTGocnPgH9oOkg1xYdmUD2tLJ3BapB0nK+x9+LPp1qVlwXCEIEOPXIL1S6ZI5CKEEUPSVLpLlrQmfblvlKCysNCC3iq6Kd3rwBCL9Oo6vo70xdQueeHqXdT/GOj94HqJNBTeQDGO0bQgnAMFWO2CA7kC2LyfWF8/vwWu37vCAvWQmCAqqVAdkTAGfvHgDTDSKPYPoh/ObdYRqmF+H5AqKeonGjbYPNDdZO/L158VoBKCeJ7Jb8OjjdRT3++DsulcH3Z8xjuGkiHaJvENq6Tr86o3boBm00HCpkVWFLT0KDRrVHXxuwNxGJYCsfzcI8XSeQptAu5BZqXLW5n22B/yNih9tGRRDh6ULFYjlKvhs3e8+C+vQahnQPJC7nidcfBW4WP4mb8BsLlglBAHkebzP9uNEBFDnkgHsuqJ2jRbeOdSg9vWbMJfbxZB2gCFFYnK4sxrKu2UdhqTDpGK2u0NS4/lgrzRhAmq2gQl+jnbb1A2eQLpY73+edt4B9WWrgrvNbLYC33rpR6Jcph+6JMILQ0iTZ35TISAw9CSJUGVoNRVIFcscsnpDXO4TrTn5+Hhx3fb1/jEeLqI7RXVpK4AJUNM/FsNAqQkOxSdMAKqA5ndhhoGGM3vJzgj7n2PXhAun8LVcfYkLo1KrjeMAp71Ov9yO6gh2Op1aRT1f2AgmHEFq453f5AnAScq6X/cppifD5GtPIk7ZXP4q/EdGcVZMjgGoSEoSoxsWPP7VPW7reB6OPzAOyZ/fhQOViiL+ORJOjYAgCSC401duj68LKKYHuNOWYYoSF7clvXZ024AOFU4x5M4vrfNzmeV9QE1CI4r2RA53Z6dGAKXD3mcoU+wLVWnXFzfRh0uYTOkYA0QfhJBEmIYCBxIgweHBkRunRkBgrO0hgER/vlQGTnnZkodZc/e4EvejqWQfBrc/NQKCbICXADZkTIC//3HhbBNAbY9JQHgOEYyzTcADLwFTIKDP6J41AujZ+UJ56OoMgeL/46jBrCeMPlsEFET19jgEUB9ORcj3WwCiCJBC8hU3JkoAucH0cgPbAu+sEzuE7bCuqyBhYyqnvfyT17gs13Oh/vaEM02AiAbp+RrXEFRMcxWZFtR/2EmFDhPT34WlK9w32Y5kfpMPW1qY+orToGBEETB1FVBwoqnlgAKFHRYnl+qw/LkdaElNMFRKczWuBP39Xyr+RqWunkWPlYQEsRpFGNIoI6hgKu1t78VYCSBxbaO+J3OX+TzP+xyB+0RCKo2boGPsv7BaxfZ+V0YLeHhhkys+ktI7AfIiSgImRgDtSpR4UZgsY8ZHBnAWd53EX0yKdrRXDOn110ucaOLCfdbhrbc+YrsQFkITKd5iylQIELmABR3TCswJnCIoWfM33/4Q4tnt0J1yL5za0E2SVOEiJkPmwIsRdMss9HB1kgQQZnNroJuYtUlUvxf+29cHWXCy5Cjr9b1vcwU4QbpeECQ6fdPh6UyuxkYQH7N33T8nPj1CcjvmIRiWDk9eesE3r6kRwMCc/ZHPr+PiO5Guiqy8qrQA543p8UVR8Sk6qiDO/3/9u7voJlsRZwS9SjFdvWFV8c5nnATQQDzJCAJ4JxHJz+7CrTf/Kio8rued98LtiVNg00BC0PgVLjRQfCvwxLPXuUhCRVQRH/hVikCHs23tEA0m1ROrPK4gMPh8QLjB8EKKg1ACqPTMZ/pMgn+APuBEUnQsduEaBh8U9JBaBC+E+8Yoj8pgbWxjmRQcBUmPIdRKbYNhHkHp/CaPM5PdDK0Eu0HSoXIpLXwehFACZEmHj/524LfYQSAjhjqdyu2h/0aRzjwHikUDRwyOCzOV8EIJfU9nA9Xd70K62OCDGKoXJvKidhglmXQqTdFkkIH2IpQAqtrqpgbNlgSx9DOcdhKr3jJ3P+zfsC2FwLW972CgI7ukYfCEnEMPfEGjGX5hwj9uDb1IHWbSl/nWSbgh7UcoAQ7ESa84k8vwRccoAsRkuv4e/f/Cyi6gBLPl9vbtBakGuVe6O0RR41DSZyOV24T37vwbZDSk3ZOjgDG8GEiAA7bOhg5v/P4OzGTW2J2xARpikrSY+dIa6jzptOWanH15muJ9/G3/+e9DPL8xVJ+EON0iKexhwHUF1CEIDsLQBPSA7JoKbO9/D9KrQ16ELIgbXnS7JLbwFfjvQZsPTcnq00Wpt/9yDxOffsMW3W+NPUjxkR1WUb7MMWQV2YsTECAgLiUBpGlhPPko1bBVwv5MEnHvH5geYyC1uFxGmxF8wOkGEcKuD/uKZWsgURAm038OTrZwBycmgMC3vYw2+9t45qq4K8iT9MAV6zvfdY/I8TUsnu8joEA3wzbgpz9/F6VGBV2hXMTvPY6LkQhwwGUsVI2f/fIPfH3NifC8izg+anyeeC5bheKjVWjito/7XyZjIcABBUCUxDz2pQaLqX9BwyNZRMO5ug/zxSooRodPlshmRIXcJ8FYCXBABkmSLK7qnCvQxaYGi3m0YRNI0bE5i3sdfvzy667aoBMwfQIIoF0i+3DUQddkASQySMBy3c4A/Yt2wAvH0PupSzc4/hjWl4+CiRDQg9gxumz5pw/uQWxxCzKYLxARjkWnhc9ifL+4cg1iqS9jW+d/Q+Pd6TBMmAABMpCWomE2Z6JaPM1GzUmHY1kMsQubcF8CbDeeG+DHwVQI8EEXFeBkdgdevXWb/1BFJE1D5L04HQIYCofW7EJHDGZGwakRQAGUeC/+HRZUUpsGTo2As4IHnoD/A+Vy3otPKCfqAAAAAElFTkSuQmCC"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/javascripts/audio-player.js","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.119Z","timestamp":1785126648119,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /javascripts/audio-player.js HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: application/javascript\r\nserver: cloudflare\r\nlast-modified: Thu, 11 Jun 2026 09:49:05 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\nexpires: Thu, 31 Dec 2037 23:55:55 GMT\r\ncache-control: max-age=315360000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=pqlk7qClLEIHCXcdIzgKBjIDiSN4euL%2FnnkdS4dL3VsOpg6Wxd%2FkuCte5pYzTT2cKm1MdQdGRNkb6TOV5X2mM9t7urYQtE6lWqyjqhe2w0XMzhBdKxKhcgfThrGb3WJBbDzpPA%3D%3D\"}]}\r\nage: 2160145\r\ncf-cache-status: HIT\r\netag: W/\"6a2a8491-6b07\"\r\ncontent-encoding: br\r\ncf-ray: a218e92ec807b1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":27399,"size_decoded":9419,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (27399), with no line terminators","md5":"65cbf911501a0de13afb9d1cb71933cb","sha1":"e9236ab09f15becfa6d86aeb5995fc896f1aab1b","sha256":"e92027b36a47b6e3c2e1c084ac31e8e7e6a4b904bbaa42d241ccf7f4e48d7a62","sha512":"a619c7409dd01aa33de6a1eb397188a42da076126f727c119ed69455158ccff9421daec4d8135dfee4e719b1d62aa70bc767f4430238da97714805c43655cc35","ssdeep":"384:Brt6nqLIf40nECIgPG8OrYleIoARnq0KaHvWvqTGDBnLbcfSLcg:MwXkPGdg7HnqhSTGlnLbcqwg","tlshash":"70c22c48b7e17d54435a34b3223f4a063bb51652545a3240f016c2e9bf78e8b91beeed","first_seen":"2025-09-01T08:05:49.861005Z","last_seen":"2026-07-27T08:03:47.45484Z","times_seen":1429,"resource_available":true,"data":"d2luZG93LmNoYXBvcnQuYXVkaW89ZnVuY3Rpb24oKXt3aW5kb3cuSG93bD8ocj13aW5kb3cuSG93bCxvPXdpbmRvdy5Ib3dsZXIpOihlPSEoIkhvd2wiaW4gd2luZG93KSxuPSEoIkhvd2xlciJpbiB3aW5kb3cpLHQ9ISgiSG93bGVyR2xvYmFsImluIHdpbmRvdyksYT0hKCJTb3VuZCJpbiB3aW5kb3cpLGM9e30sZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSgpe3RoaXMuaW5pdCgpfWZ1bmN0aW9uIG4oZSl7ZS5zcmMmJjAhPT1lLnNyYy5sZW5ndGg/dGhpcy5pbml0KGUpOmNvbnNvbGUuZXJyb3IoIkFuIGFycmF5IG9mIHNvdXJjZSBmaWxlcyBtdXN0IGJlIHBhc3NlZCB3aXRoIGFueSBuZXcgSG93bC4iKX1lLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXN8fHk7cmV0dXJuIGUuX2NvdW50ZXI9MWUzLGUuX2h0bWw1QXVkaW9Qb29sPVtdLGUuaHRtbDVQb29sU2l6ZT0xMCxlLl9jb2RlY3M9e30sZS5faG93bHM9W10sZS5fbXV0ZWQ9ITEsZS5fdm9sdW1lPTEsZS5fY2FuUGxheUV2ZW50PSJjYW5wbGF5dGhyb3VnaCIsZS5fbmF2aWdhdG9yPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubmF2aWdhdG9yP3dpbmRvdy5uYXZpZ2F0b3I6bnVsbCxlLm1hc3RlckdhaW49bnVsbCxlLm5vQXVkaW89ITEsZS51c2luZ1dlYkF1ZGlvPSEwLGUuYXV0b1N1c3BlbmQ9ITAsZS5jdHg9bnVsbCxlLmF1dG9VbmxvY2s9ITAsZS5fc2V0dXAoKSxlfSx2b2x1bWU6ZnVuY3Rpb24oZSl7dmFyIG49dGhpc3x8eTtpZihlPXBhcnNlRmxvYXQoZSksbi5jdHh8fGwoKSx2b2lkIDAhPT1lJiYwPD1lJiZlPD0xKXtpZihuLl92b2x1bWU9ZSwhbi5fbXV0ZWQpe24udXNpbmdXZWJBdWRpbyYmbi5tYXN0ZXJHYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoZSx5LmN0eC5jdXJyZW50VGltZSk7Zm9yKHZhciBvPTA7bzxuLl9ob3dscy5sZW5ndGg7bysrKWlmKCFuLl9ob3dsc1tvXS5fd2ViQXVkaW8pZm9yKHZhciB0PW4uX2hvd2xzW29dLl9nZXRTb3VuZElkcygpLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9bi5faG93bHNbb10uX3NvdW5kQnlJZCh0W3JdKTthJiZhLl9ub2RlJiYoYS5fbm9kZS52b2x1bWU9YS5fdm9sdW1lKmUpfX1yZXR1cm4gbn1yZXR1cm4gbi5fdm9sdW1lfSxtdXRlOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXN8fHk7bi5jdHh8fGwoKSxuLl9tdXRlZD1lLG4udXNpbmdXZWJBdWRpbyYmbi5tYXN0ZXJHYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoZT8wOm4uX3ZvbHVtZSx5LmN0eC5jdXJyZW50VGltZSk7Zm9yKHZhciBvPTA7bzxuLl9ob3dscy5sZW5ndGg7bysrKWlmKCFuLl9ob3dsc1tvXS5fd2ViQXVkaW8pZm9yKHZhciB0PW4uX2hvd2xzW29dLl9nZXRTb3VuZElkcygpLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9bi5faG93bHNbb10uX3NvdW5kQnlJZCh0W3JdKTthJiZhLl9ub2RlJiYoYS5fbm9kZS5tdXRlZD0hIWV8fGEuX211dGVkKX1yZXR1cm4gbn0sc3RvcDpmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzfHx5LG49MDtuPGUuX2hvd2xzLmxlbmd0aDtuKyspZS5faG93bHNbbl0uc3RvcCgpO3JldHVybiBlfSx1bmxvYWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpc3x8eSxuPWUuX2hvd2xzLmxlbmd0aC0xOzA8PW47bi0tKWUuX2hvd2xzW25dLnVubG9hZCgpO3JldHVybiBlLnVzaW5nV2ViQXVkaW8mJmUuY3R4JiZ2b2lkIDAhPT1lLmN0eC5jbG9zZSYmKGUuY3R4LmNsb3NlKCksZS5jdHg9bnVsbCxsKCkpLGV9LGNvZGVjczpmdW5jdGlvbihlKXtyZXR1cm4odGhpc3x8eSkuX2NvZGVjc1tlLnJlcGxhY2UoL154LS8sIiIpXX0sX3NldHVwOmZ1bmN0aW9uKCl7dmFyIG49dGhpc3x8eTtpZihuLnN0YXRlPW4uY3R4JiZuLmN0eC5zdGF0ZXx8InN1c3BlbmRlZCIsbi5fYXV0b1N1c3BlbmQoKSwhbi51c2luZ1dlYkF1ZGlvKWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXVkaW8pdHJ5e3ZvaWQgMD09PShuZXcgQXVkaW8pLm9uY2FucGxheXRocm91Z2gmJihuLl9jYW5QbGF5RXZlbnQ9ImNhbnBsYXkiKX1jYXRjaChlKXtuLm5vQXVkaW89ITB9ZWxzZSBuLm5vQXVkaW89ITA7dHJ5eyhuZXcgQXVkaW8pLm11dGVkJiYobi5ub0F1ZGlvPSEwKX1jYXRjaChuKXt9cmV0dXJuIG4ubm9BdWRpb3x8bi5fc2V0dXBDb2RlY3MoKSxufSxfc2V0dXBDb2RlY3M6ZnVuY3Rpb24oKXt2YXIgZSxuLG8sdCxyPXRoaXN8fHksYT1udWxsO3RyeXthPSJ1bmRlZmluZWQiIT10eXBlb2YgQXVkaW8/bmV3IEF1ZGlvOm51bGx9Y2F0Y2goZSl7cmV0dXJuIHJ9cmV0dXJuIGEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLmNhblBsYXlUeXBlJiYoZT1hLmNhblBsYXlUeXBlKCJhdWRpby9tcGVnOyIpLnJlcGxhY2UoL15ubyQvLCIiKSxuPShuPShvPXIuX25hdmlnYXRvcj9yLl9uYXZpZ2F0b3IudXNlckFnZW50OiIiKS5tYXRjaCgvT1BSXC8oWzAtNl0uKS9nKSkmJnBhcnNlSW50KG5bMF0uc3BsaXQoIi8iKVsxXSwxMCk8MzMsdD0tMSE9PW8uaW5kZXhPZigiU2FmYXJpIikmJi0xPT09by5pbmRleE9mKCJDaHJvbWUiKSxvPW8ubWF0Y2goL1ZlcnNpb25cLyguKj8pIC8pLHQ9dCYmbyYmcGFyc2VJbnQob1sxXSwxMCk8MTUsci5fY29kZWNzPXttcDM6IShufHwhZSYmIWEuY2FuUGxheVR5cGUoImF1ZGlvL21wMzsiKS5yZXBsYWNlKC9ebm8kLywiIikpLG1wZWc6ISFlLG9wdXM6ISFhLmNhblBsYXlUeXBlKCdhdWRpby9vZ2c7IGNvZGVjcz0ib3B1cyInKS5yZXBsYWNlKC9ebm8kLywiIiksb2dnOiEhYS5jYW5QbGF5VHlwZSgnYXVkaW8vb2dnOyBjb2RlY3M9InZvcmJpcyInKS5yZXBsYWNlKC9ebm8kLywiIiksb2dhOiEhYS5jYW5QbGF5VHlwZSgnYXVkaW8vb2dnOyBjb2RlY3M9InZvcmJpcyInKS5yZXBsYWNlKC9ebm8kLywiIiksd2F2OiEhKGEuY2FuUGxheVR5cGUoJ2F1ZGlvL3dhdjsgY29kZWNzPSIxIicpfHxhLmNhblBsYXlUeXBlKCJhdWRpby93YXYiKSkucmVwbGFjZSgvXm5vJC8sIiIpLGFhYzohIWEuY2FuUGxheVR5cGUoImF1ZGlvL2FhYzsiKS5yZXBsYWNlKC9ebm8kLywiIiksY2FmOiEhYS5jYW5QbGF5VHlwZSgiYXVkaW8veC1jYWY7IikucmVwbGFjZSgvXm5vJC8sIiIpLG00YTohIShhLmNhblBsYXlUeXBlKCJhdWRpby94LW00YTsiKXx8YS5jYW5QbGF5VHlwZSgiYXVkaW8vbTRhOyIpfHxhLmNhblBsYXlUeXBlKCJhdWRpby9hYWM7IikpLnJlcGxhY2UoL15ubyQvLCIiKSxtNGI6ISEoYS5jYW5QbGF5VHlwZSgiYXVkaW8veC1tNGI7Iil8fGEuY2FuUGxheVR5cGUoImF1ZGlvL200YjsiKXx8YS5jYW5QbGF5VHlwZSgiYXVkaW8vYWFjOyIpKS5yZXBsYWNlKC9ebm8kLywiIiksbXA0OiEhKGEuY2FuUGxheVR5cGUoImF1ZGlvL3gtbXA0OyIpfHxhLmNhblBsYXlUeXBlKCJhdWRpby9tcDQ7Iil8fGEuY2FuUGxheVR5cGUoImF1ZGlvL2FhYzsiKSkucmVwbGFjZSgvXm5vJC8sIiIpLHdlYmE6ISh0fHwhYS5jYW5QbGF5VHlwZSgnYXVkaW8vd2VibTsgY29kZWNzPSJ2b3JiaXMiJykucmVwbGFjZSgvXm5vJC8sIiIpKSx3ZWJtOiEodHx8IWEuY2FuUGxheVR5cGUoJ2F1ZGlvL3dlYm07IGNvZGVjcz0idm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCIiKSksZG9sYnk6ISFhLmNhblBsYXlUeXBlKCdhdWRpby9tcDQ7IGNvZGVjcz0iZWMtMyInKS5yZXBsYWNlKC9ebm8kLywiIiksZmxhYzohIShhLmNhblBsYXlUeXBlKCJhdWRpby94LWZsYWM7Iil8fGEuY2FuUGxheVR5cGUoImF1ZGlvL2ZsYWM7IikpLnJlcGxhY2UoL15ubyQvLCIiKX0pLHJ9LF91bmxvY2tBdWRpbzpmdW5jdGlvbigpe3ZhciB1LGk9dGhpc3x8eTtpZighaS5fYXVkaW9VbmxvY2tlZCYmaS5jdHgpcmV0dXJuIGkuX2F1ZGlvVW5sb2NrZWQ9ITEsaS5hdXRvVW5sb2NrPSExLGkuX21vYmlsZVVubG9hZGVkfHw0NDEwMD09PWkuY3R4LnNhbXBsZVJhdGV8fChpLl9tb2JpbGVVbmxvYWRlZD0hMCxpLnVubG9hZCgpKSxpLl9zY3JhdGNoQnVmZmVyPWkuY3R4LmNyZWF0ZUJ1ZmZlcigxLDEsMjIwNTApLHU9ZnVuY3Rpb24oZSl7Zm9yKDtpLl9odG1sNUF1ZGlvUG9vbC5sZW5ndGg8aS5odG1sNVBvb2xTaXplOyl0cnl7dmFyIG49bmV3IEF1ZGlvO24uX3VubG9ja2VkPSEwLGkuX3JlbGVhc2VIdG1sNUF1ZGlvKG4pfWNhdGNoKGUpe2kubm9BdWRpbz0hMDticmVha31mb3IodmFyIG89MDtvPGkuX2hvd2xzLmxlbmd0aDtvKyspaWYoIWkuX2hvd2xzW29dLl93ZWJBdWRpbylmb3IodmFyIHQ9aS5faG93bHNbb10uX2dldFNvdW5kSWRzKCkscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgYT1pLl9ob3dsc1tvXS5fc291bmRCeUlkKHRbcl0pO2EmJmEuX25vZGUmJiFhLl9ub2RlLl91bmxvY2tlZCYmKGEuX25vZGUuX3VubG9ja2VkPSEwLGEuX25vZGUubG9hZCgpKX1pLl9hdXRvUmVzdW1lKCk7dmFyIGQ9aS5jdHguY3JlYXRlQnVmZmVyU291cmNlKCk7ZC5idWZmZXI9aS5fc2NyYXRjaEJ1ZmZlcixkLmNvbm5lY3QoaS5jdHguZGVzdGluYXRpb24pLHZvaWQgMD09PWQuc3RhcnQ/ZC5ub3RlT24oMCk6ZC5zdGFydCgwKSwiZnVuY3Rpb24iPT10eXBlb2YgaS5jdHgucmVzdW1lJiZpLmN0eC5yZXN1bWUoKSxkLm9uZW5kZWQ9ZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoMCksaS5fYXVkaW9VbmxvY2tlZD0hMCxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix1LCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdSwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUsITApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUsITApO2Zvcih2YXIgZT0wO2U8aS5faG93bHMubGVuZ3RoO2UrKylpLl9ob3dsc1tlXS5fZW1pdCgidW5sb2NrIil9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix1LCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdSwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUsITApLGl9LF9vYnRhaW5IdG1sNUF1ZGlvOmZ1bmN0aW9uKCl7dmFyIGU9dGhpc3x8eTtyZXR1cm4gZS5faHRtbDVBdWRpb1Bvb2wubGVuZ3RoP2UuX2h0bWw1QXVkaW9Qb29sLnBvcCgpOigoZT0obmV3IEF1ZGlvKS5wbGF5KCkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJihlIGluc3RhbmNlb2YgUHJvbWlzZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbikmJmUuY2F0Y2goZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oIkhUTUw1IEF1ZGlvIHBvb2wgZXhoYXVzdGVkLCByZXR1cm5pbmcgcG90ZW50aWFsbHkgbG9ja2VkIGF1ZGlvIG9iamVjdC4iKX0pLG5ldyBBdWRpbyl9LF9yZWxlYXNlSHRtbDVBdWRpbzpmdW5jdGlvbihlKXt2YXIgbj10aGlzfHx5O3JldHVybiBlLl91bmxvY2tlZCYmbi5faHRtbDVBdWRpb1Bvb2wucHVzaChlKSxufSxfYXV0b1N1c3BlbmQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKG4uYXV0b1N1c3BlbmQmJm4uY3R4JiZ2b2lkIDAhPT1uLmN0eC5zdXNwZW5kJiZ5LnVzaW5nV2ViQXVkaW8pe2Zvcih2YXIgZT0wO2U8bi5faG93bHMubGVuZ3RoO2UrKylpZihuLl9ob3dsc1tlXS5fd2ViQXVkaW8pZm9yKHZhciBvPTA7bzxuLl9ob3dsc1tlXS5fc291bmRzLmxlbmd0aDtvKyspaWYoIW4uX2hvd2xzW2VdLl9zb3VuZHNbb10uX3BhdXNlZClyZXR1cm4gbjtyZXR1cm4gbi5fc3VzcGVuZFRpbWVyJiZjbGVhclRpbWVvdXQobi5fc3VzcGVuZFRpbWVyKSxuLl9zdXNwZW5kVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlO24uYXV0b1N1c3BlbmQmJihuLl9zdXNwZW5kVGltZXI9bnVsbCxuLnN0YXRlPSJzdXNwZW5kaW5nIixlPWZ1bmN0aW9uKCl7bi5zdGF0ZT0ic3VzcGVuZGVkIixuLl9yZXN1bWVBZnRlclN1c3BlbmQmJihkZWxldGUgbi5fcmVzdW1lQWZ0ZXJTdXNwZW5kLG4uX2F1dG9SZXN1bWUoKSl9LG4uY3R4LnN1c3BlbmQoKS50aGVuKGUsZSkpfSwzZTQpLG59fSxfYXV0b1Jlc3VtZTpmdW5jdGlvbigpe3ZhciBuPXRoaXM7aWYobi5jdHgmJnZvaWQgMCE9PW4uY3R4LnJlc3VtZSYmeS51c2luZ1dlYkF1ZGlvKXJldHVybiJydW5uaW5nIj09PW4uc3RhdGUmJiJpbnRlcnJ1cHRlZCIhPT1uLmN0eC5zdGF0ZSYmbi5fc3VzcGVuZFRpbWVyPyhjbGVhclRpbWVvdXQobi5fc3VzcGVuZFRpbWVyKSxuLl9zdXNwZW5kVGltZXI9bnVsbCk6InN1c3BlbmRlZCI9PT1uLnN0YXRlfHwicnVubmluZyI9PT1uLnN0YXRlJiYiaW50ZXJydXB0ZWQiPT09bi5jdHguc3RhdGU/KG4uY3R4LnJlc3VtZSgpLnRoZW4oZnVuY3Rpb24oKXtuLnN0YXRlPSJydW5uaW5nIjtmb3IodmFyIGU9MDtlPG4uX2hvd2xzLmxlbmd0aDtlKyspbi5faG93bHNbZV0uX2VtaXQoInJlc3VtZSIpfSksbi5fc3VzcGVuZFRpbWVyJiYoY2xlYXJUaW1lb3V0KG4uX3N1c3BlbmRUaW1lciksbi5fc3VzcGVuZFRpbWVyPW51bGwpKToic3VzcGVuZGluZyI9PT1uLnN0YXRlJiYobi5fcmVzdW1lQWZ0ZXJTdXNwZW5kPSEwKSxufX07dmFyIHk9bmV3IGUsYT0obi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4geS5jdHh8fGwoKSxuLl9hdXRvcGxheT1lLmF1dG9wbGF5fHwhMSxuLl9mb3JtYXQ9InN0cmluZyIhPXR5cGVvZiBlLmZvcm1hdD9lLmZvcm1hdDpbZS5mb3JtYXRdLG4uX2h0bWw1PWUuaHRtbDV8fCExLG4uX211dGVkPWUubXV0ZXx8ITEsbi5fbG9vcD1lLmxvb3B8fCExLG4uX3Bvb2w9ZS5wb29sfHw1LG4uX3ByZWxvYWQ9ImJvb2xlYW4iIT10eXBlb2YgZS5wcmVsb2FkJiYibWV0YWRhdGEiIT09ZS5wcmVsb2FkfHxlLnByZWxvYWQsbi5fcmF0ZT1lLnJhdGV8fDEsbi5fc3ByaXRlPWUuc3ByaXRlfHx7fSxuLl9zcmM9InN0cmluZyIhPXR5cGVvZiBlLnNyYz9lLnNyYzpbZS5zcmNdLG4uX3ZvbHVtZT12b2lkIDAhPT1lLnZvbHVtZT9lLnZvbHVtZToxLG4uX3hocj17bWV0aG9kOmUueGhyJiZlLnhoci5tZXRob2Q/ZS54aHIubWV0aG9kOiJHRVQiLGhlYWRlcnM6ZS54aHImJmUueGhyLmhlYWRlcnM/ZS54aHIuaGVhZGVyczpudWxsLHdpdGhDcmVkZW50aWFsczohKCFlLnhocnx8IWUueGhyLndpdGhDcmVkZW50aWFscykmJmUueGhyLndpdGhDcmVkZW50aWFsc30sbi5fZHVyYXRpb249MCxuLl9zdGF0ZT0idW5sb2FkZWQiLG4uX3NvdW5kcz1bXSxuLl9lbmRUaW1lcnM9e30sbi5fcXVldWU9W10sbi5fcGxheUxvY2s9ITEsbi5fb25lbmQ9ZS5vbmVuZD9be2ZuOmUub25lbmR9XTpbXSxuLl9vbmZhZGU9ZS5vbmZhZGU/W3tmbjplLm9uZmFkZX1dOltdLG4uX29ubG9hZD1lLm9ubG9hZD9be2ZuOmUub25sb2FkfV06W10sbi5fb25sb2FkZXJyb3I9ZS5vbmxvYWRlcnJvcj9be2ZuOmUub25sb2FkZXJyb3J9XTpbXSxuLl9vbnBsYXllcnJvcj1lLm9ucGxheWVycm9yP1t7Zm46ZS5vbnBsYXllcnJvcn1dOltdLG4uX29ucGF1c2U9ZS5vbnBhdXNlP1t7Zm46ZS5vbnBhdXNlfV06W10sbi5fb25wbGF5PWUub25wbGF5P1t7Zm46ZS5vbnBsYXl9XTpbXSxuLl9vbnN0b3A9ZS5vbnN0b3A/W3tmbjplLm9uc3RvcH1dOltdLG4uX29ubXV0ZT1lLm9ubXV0ZT9be2ZuOmUub25tdXRlfV06W10sbi5fb252b2x1bWU9ZS5vbnZvbHVtZT9be2ZuOmUub252b2x1bWV9XTpbXSxuLl9vbnJhdGU9ZS5vbnJhdGU/W3tmbjplLm9ucmF0ZX1dOltdLG4uX29uc2Vlaz1lLm9uc2Vlaz9be2ZuOmUub25zZWVrfV06W10sbi5fb251bmxvY2s9ZS5vbnVubG9jaz9be2ZuOmUub251bmxvY2t9XTpbXSxuLl9vbnJlc3VtZT1bXSxuLl93ZWJBdWRpbz15LnVzaW5nV2ViQXVkaW8mJiFuLl9odG1sNSx2b2lkIDAhPT15LmN0eCYmeS5jdHgmJnkuYXV0b1VubG9jayYmeS5fdW5sb2NrQXVkaW8oKSx5Ll9ob3dscy5wdXNoKG4pLG4uX2F1dG9wbGF5JiZuLl9xdWV1ZS5wdXNoKHtldmVudDoicGxheSIsYWN0aW9uOmZ1bmN0aW9uKCl7bi5wbGF5KCl9fSksbi5fcHJlbG9hZCYmIm5vbmUiIT09bi5fcHJlbG9hZCYmbi5sb2FkKCksbn0sbG9hZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1udWxsO2lmKCF5Lm5vQXVkaW8peyJzdHJpbmciPT10eXBlb2YgZS5fc3JjJiYoZS5fc3JjPVtlLl9zcmNdKTtmb3IodmFyIG8sdCxyPTA7cjxlLl9zcmMubGVuZ3RoO3IrKyl7aWYoZS5fZm9ybWF0JiZlLl9mb3JtYXRbcl0pbz1lLl9mb3JtYXRbcl07ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mKHQ9ZS5fc3JjW3JdKSl7ZS5fZW1pdCgibG9hZGVycm9yIixudWxsLCJOb24tc3RyaW5nIGZvdW5kIGluIHNlbGVjdGVkIGF1ZGlvIHNvdXJjZXMgLSBpZ25vcmluZy4iKTtjb250aW51ZX1vPShvPShvPS9eZGF0YTphdWRpb1wvKFteOyxdKyk7L2kuZXhlYyh0KSl8fC9cLihbXi5dKykkLy5leGVjKHQuc3BsaXQoIj8iLDEpWzBdKSkmJm9bMV0udG9Mb3dlckNhc2UoKX1pZihvfHxjb25zb2xlLndhcm4oJ05vIGZpbGUgZXh0ZW5zaW9uIHdhcyBmb3VuZC4gQ29uc2lkZXIgdXNpbmcgdGhlICJmb3JtYXQiIHByb3BlcnR5IG9yIHNwZWNpZnkgYW4gZXh0ZW5zaW9uLicpLG8mJnkuY29kZWNzKG8pKXtuPWUuX3NyY1tyXTticmVha319cmV0dXJuIG4/KGUuX3NyYz1uLGUuX3N0YXRlPSJsb2FkaW5nIiwiaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCYmImh0dHA6Ij09PW4uc2xpY2UoMCw1KSYmKGUuX2h0bWw1PSEwLGUuX3dlYkF1ZGlvPSExKSxuZXcgYShlKSxlLl93ZWJBdWRpbyYmdShlKSxlKTp2b2lkIGUuX2VtaXQoImxvYWRlcnJvciIsbnVsbCwiTm8gY29kZWMgc3VwcG9ydCBmb3Igc2VsZWN0ZWQgYXVkaW8gc291cmNlcy4iKX1lLl9lbWl0KCJsb2FkZXJyb3IiLG51bGwsIk5vIGF1ZGlvIHN1cHBvcnQuIil9LHBsYXk6ZnVuY3Rpb24obixvKXt2YXIgdD10aGlzLGU9bnVsbDtpZigibnVtYmVyIj09dHlwZW9mIG4pZT1uLG49bnVsbDtlbHNle2lmKCJzdHJpbmciPT10eXBlb2YgbiYmImxvYWRlZCI9PT10Ll9zdGF0ZSYmIXQuX3Nwcml0ZVtuXSlyZXR1cm4gbnVsbDtpZih2b2lkIDA9PT1uJiYobj0iX19kZWZhdWx0IiwhdC5fcGxheUxvY2spKXtmb3IodmFyIHI9MCxhPTA7YTx0Ll9zb3VuZHMubGVuZ3RoO2ErKyl0Ll9zb3VuZHNbYV0uX3BhdXNlZCYmIXQuX3NvdW5kc1thXS5fZW5kZWQmJihyKyssZT10Ll9zb3VuZHNbYV0uX2lkKTsxPT09cj9uPW51bGw6ZT1udWxsfX12YXIgZCx1PWU/dC5fc291bmRCeUlkKGUpOnQuX2luYWN0aXZlU291bmQoKTtpZighdSlyZXR1cm4gbnVsbDtpZihlJiYhbiYmKG49dS5fc3ByaXRlfHwiX19kZWZhdWx0IiksImxvYWRlZCIhPT10Ll9zdGF0ZSlyZXR1cm4gdS5fc3ByaXRlPW4sdS5fZW5kZWQ9ITEsZD11Ll9pZCx0Ll9xdWV1ZS5wdXNoKHtldmVudDoicGxheSIsYWN0aW9uOmZ1bmN0aW9uKCl7dC5wbGF5KGQpfX0pLGQ7aWYoZSYmIXUuX3BhdXNlZClyZXR1cm4gb3x8dC5fbG9hZFF1ZXVlKCJwbGF5IiksdS5faWQ7dC5fd2ViQXVkaW8mJnkuX2F1dG9SZXN1bWUoKTt2YXIgaSxfLHMsbCxjPU1hdGgubWF4KDAsMDx1Ll9zZWVrP3UuX3NlZWs6dC5fc3ByaXRlW25dWzBdLzFlMyksZj1NYXRoLm1heCgwLCh0Ll9zcHJpdGVbbl1bMF0rdC5fc3ByaXRlW25dWzFdKS8xZTMtYykscD0xZTMqZi9NYXRoLmFicyh1Ll9yYXRlKSxtPXQuX3Nwcml0ZVtuXVswXS8xZTMsaD0odC5fc3ByaXRlW25dWzBdK3QuX3Nwcml0ZVtuXVsxXSkvMWUzLHY9KHUuX3Nwcml0ZT1uLHUuX2VuZGVkPSExLGZ1bmN0aW9uKCl7dS5fcGF1c2VkPSExLHUuX3NlZWs9Yyx1Ll9zdGFydD1tLHUuX3N0b3A9aCx1Ll9sb29wPSEoIXUuX2xvb3AmJiF0Ll9zcHJpdGVbbl1bMl0pfSk7aWYoIShoPD1jKSlyZXR1cm4gaT11Ll9ub2RlLHQuX3dlYkF1ZGlvPyhzPWZ1bmN0aW9uKCl7dC5fcGxheUxvY2s9ITEsdigpLHQuX3JlZnJlc2hCdWZmZXIodSk7dmFyIGU9dS5fbXV0ZWR8fHQuX211dGVkPzA6dS5fdm9sdW1lO2kuZ2Fpbi5zZXRWYWx1ZUF0VGltZShlLHkuY3R4LmN1cnJlbnRUaW1lKSx1Ll9wbGF5U3RhcnQ9eS5jdHguY3VycmVudFRpbWUsdm9pZCAwPT09aS5idWZmZXJTb3VyY2Uuc3RhcnQ/dS5fbG9vcD9pLmJ1ZmZlclNvdXJjZS5ub3RlR3JhaW5PbigwLGMsODY0MDApOmkuYnVmZmVyU291cmNlLm5vdGVHcmFpbk9uKDAsYyxmKTp1Ll9sb29wP2kuYnVmZmVyU291cmNlLnN0YXJ0KDAsYyw4NjQwMCk6aS5idWZmZXJTb3VyY2Uuc3RhcnQoMCxjLGYpLHAhPT0xLzAmJih0Ll9lbmRUaW1lcnNbdS5faWRdPXNldFRpbWVvdXQodC5fZW5kZWQuYmluZCh0LHUpLHApKSxvfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fZW1pdCgicGxheSIsdS5faWQpLHQuX2xvYWRRdWV1ZSgpfSwwKX0sInJ1bm5pbmciPT09eS5zdGF0ZSYmImludGVycnVwdGVkIiE9PXkuY3R4LnN0YXRlP3MoKToodC5fcGxheUxvY2s9ITAsdC5vbmNlKCJyZXN1bWUiLHMpLHQuX2NsZWFyVGltZXIodS5faWQpKSk6KF89ZnVuY3Rpb24oKXtpLmN1cnJlbnRUaW1lPWMsaS5tdXRlZD11Ll9tdXRlZHx8dC5fbXV0ZWR8fHkuX211dGVkfHxpLm11dGVkLGkudm9sdW1lPXUuX3ZvbHVtZSp5LnZvbHVtZSgpLGkucGxheWJhY2tSYXRlPXUuX3JhdGU7dHJ5e3ZhciBlPWkucGxheSgpOyhlJiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJihlIGluc3RhbmNlb2YgUHJvbWlzZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbik/KHQuX3BsYXlMb2NrPSEwLHYoKSxlLnRoZW4oZnVuY3Rpb24oKXt0Ll9wbGF5TG9jaz0hMSxpLl91bmxvY2tlZD0hMCxvP3QuX2xvYWRRdWV1ZSgpOnQuX2VtaXQoInBsYXkiLHUuX2lkKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dC5fcGxheUxvY2s9ITEsdC5fZW1pdCgicGxheWVycm9yIix1Ll9pZCwiUGxheWJhY2sgd2FzIHVuYWJsZSB0byBzdGFydC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGFuIGlzc3VlIG9uIG1vYmlsZSBkZXZpY2VzIGFuZCBDaHJvbWUgd2hlcmUgcGxheWJhY2sgd2FzIG5vdCB3aXRoaW4gYSB1c2VyIGludGVyYWN0aW9uLiIpLHUuX2VuZGVkPSEwLHUuX3BhdXNlZD0hMH0pKTpvfHwodC5fcGxheUxvY2s9ITEsdigpLHQuX2VtaXQoInBsYXkiLHUuX2lkKSksaS5wbGF5YmFja1JhdGU9dS5fcmF0ZSxpLnBhdXNlZCk/dC5fZW1pdCgicGxheWVycm9yIix1Ll9pZCwiUGxheWJhY2sgd2FzIHVuYWJsZSB0byBzdGFydC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGFuIGlzc3VlIG9uIG1vYmlsZSBkZXZpY2VzIGFuZCBDaHJvbWUgd2hlcmUgcGxheWJhY2sgd2FzIG5vdCB3aXRoaW4gYSB1c2VyIGludGVyYWN0aW9uLiIpOiJfX2RlZmF1bHQiIT09bnx8dS5fbG9vcD90Ll9lbmRUaW1lcnNbdS5faWRdPXNldFRpbWVvdXQodC5fZW5kZWQuYmluZCh0LHUpLHApOih0Ll9lbmRUaW1lcnNbdS5faWRdPWZ1bmN0aW9uKCl7dC5fZW5kZWQodSksaS5yZW1vdmVFdmVudExpc3RlbmVyKCJlbmRlZCIsdC5fZW5kVGltZXJzW3UuX2lkXSwhMSl9LGkuYWRkRXZlbnRMaXN0ZW5lcigiZW5kZWQiLHQuX2VuZFRpbWVyc1t1Ll9pZF0sITEpKX1jYXRjaChlKXt0Ll9lbWl0KCJwbGF5ZXJyb3IiLHUuX2lkLGUpfX0sImRhdGE6YXVkaW8vd2F2O2Jhc2U2NCxVa2xHUmlnQUFBQlhRVlpGWm0xMElCSUFBQUFCQUFFQVJLd0FBSWhZQVFBQ0FCQUFBQUJrWVhSaEFnQUFBQUVBIj09PWkuc3JjJiYoaS5zcmM9dC5fc3JjLGkubG9hZCgpKSxzPXdpbmRvdyYmd2luZG93LmVqZWN0YXx8IWkucmVhZHlTdGF0ZSYmeS5fbmF2aWdhdG9yLmlzQ29jb29uSlMsMzw9aS5yZWFkeVN0YXRlfHxzP18oKToodC5fcGxheUxvY2s9ITAsdC5fc3RhdGU9ImxvYWRpbmciLGw9ZnVuY3Rpb24oKXt0Ll9zdGF0ZT0ibG9hZGVkIixfKCksaS5yZW1vdmVFdmVudExpc3RlbmVyKHkuX2NhblBsYXlFdmVudCxsLCExKX0saS5hZGRFdmVudExpc3RlbmVyKHkuX2NhblBsYXlFdmVudCxsLCExKSx0Ll9jbGVhclRpbWVyKHUuX2lkKSkpLHUuX2lkO3QuX2VuZGVkKHUpfSxwYXVzZTpmdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKCJsb2FkZWQiIT09bi5fc3RhdGV8fG4uX3BsYXlMb2NrKW4uX3F1ZXVlLnB1c2goe2V2ZW50OiJwYXVzZSIsYWN0aW9uOmZ1bmN0aW9uKCl7bi5wYXVzZShlKX19KTtlbHNlIGZvcih2YXIgbz1uLl9nZXRTb3VuZElkcyhlKSx0PTA7dDxvLmxlbmd0aDt0Kyspe24uX2NsZWFyVGltZXIob1t0XSk7dmFyIHI9bi5fc291bmRCeUlkKG9bdF0pO2lmKHImJiFyLl9wYXVzZWQmJihyLl9zZWVrPW4uc2VlayhvW3RdKSxyLl9yYXRlU2Vlaz0wLHIuX3BhdXNlZD0hMCxuLl9zdG9wRmFkZShvW3RdKSxyLl9ub2RlKSlpZihuLl93ZWJBdWRpbyl7aWYoIXIuX25vZGUuYnVmZmVyU291cmNlKWNvbnRpbnVlO3ZvaWQgMD09PXIuX25vZGUuYnVmZmVyU291cmNlLnN0b3A/ci5fbm9kZS5idWZmZXJTb3VyY2Uubm90ZU9mZigwKTpyLl9ub2RlLmJ1ZmZlclNvdXJjZS5zdG9wKDApLG4uX2NsZWFuQnVmZmVyKHIuX25vZGUpfWVsc2UgaXNOYU4oci5fbm9kZS5kdXJhdGlvbikmJnIuX25vZGUuZHVyYXRpb24hPT0xLzB8fHIuX25vZGUucGF1c2UoKTthcmd1bWVudHNbMV18fG4uX2VtaXQoInBhdXNlIixyP3IuX2lkOm51bGwpfXJldHVybiBufSxzdG9wOmZ1bmN0aW9uKGUsbil7dmFyIG89dGhpcztpZigibG9hZGVkIiE9PW8uX3N0YXRlfHxvLl9wbGF5TG9jaylvLl9xdWV1ZS5wdXNoKHtldmVudDoic3RvcCIsYWN0aW9uOmZ1bmN0aW9uKCl7by5zdG9wKGUpfX0pO2Vsc2UgZm9yKHZhciB0PW8uX2dldFNvdW5kSWRzKGUpLHI9MDtyPHQubGVuZ3RoO3IrKyl7by5fY2xlYXJUaW1lcih0W3JdKTt2YXIgYT1vLl9zb3VuZEJ5SWQodFtyXSk7YSYmKGEuX3NlZWs9YS5fc3RhcnR8fDAsYS5fcmF0ZVNlZWs9MCxhLl9wYXVzZWQ9ITAsYS5fZW5kZWQ9ITAsby5fc3RvcEZhZGUodFtyXSksYS5fbm9kZSYmKG8uX3dlYkF1ZGlvP2EuX25vZGUuYnVmZmVyU291cmNlJiYodm9pZCAwPT09YS5fbm9kZS5idWZmZXJTb3VyY2Uuc3RvcD9hLl9ub2RlLmJ1ZmZlclNvdXJjZS5ub3RlT2ZmKDApOmEuX25vZGUuYnVmZmVyU291cmNlLnN0b3AoMCksby5fY2xlYW5CdWZmZXIoYS5fbm9kZSkpOmlzTmFOKGEuX25vZGUuZHVyYXRpb24pJiZhLl9ub2RlLmR1cmF0aW9uIT09MS8wfHwoYS5fbm9kZS5jdXJyZW50VGltZT1hLl9zdGFydHx8MCxhLl9ub2RlLnBhdXNlKCksYS5fbm9kZS5kdXJhdGlvbj09PTEvMCYmby5fY2xlYXJTb3VuZChhLl9ub2RlKSkpLG58fG8uX2VtaXQoInN0b3AiLGEuX2lkKSl9cmV0dXJuIG99LG11dGU6ZnVuY3Rpb24oZSxuKXt2YXIgbz10aGlzO2lmKCJsb2FkZWQiIT09by5fc3RhdGV8fG8uX3BsYXlMb2NrKW8uX3F1ZXVlLnB1c2goe2V2ZW50OiJtdXRlIixhY3Rpb246ZnVuY3Rpb24oKXtvLm11dGUoZSxuKX19KTtlbHNle2lmKHZvaWQgMD09PW4pe2lmKCJib29sZWFuIiE9dHlwZW9mIGUpcmV0dXJuIG8uX211dGVkO28uX211dGVkPWV9Zm9yKHZhciB0PW8uX2dldFNvdW5kSWRzKG4pLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9by5fc291bmRCeUlkKHRbcl0pO2EmJihhLl9tdXRlZD1lLGEuX2ludGVydmFsJiZvLl9zdG9wRmFkZShhLl9pZCksby5fd2ViQXVkaW8mJmEuX25vZGU/YS5fbm9kZS5nYWluLnNldFZhbHVlQXRUaW1lKGU/MDphLl92b2x1bWUseS5jdHguY3VycmVudFRpbWUpOmEuX25vZGUmJihhLl9ub2RlLm11dGVkPSEheS5fbXV0ZWR8fGUpLG8uX2VtaXQoIm11dGUiLGEuX2lkKSl9fXJldHVybiBvfSx2b2x1bWU6ZnVuY3Rpb24oKXt2YXIgZSxuLG89dGhpcyx0PWFyZ3VtZW50cztpZigwPT09dC5sZW5ndGgpcmV0dXJuIG8uX3ZvbHVtZTtpZigxPT09dC5sZW5ndGh8fDI9PT10Lmxlbmd0aCYmdm9pZCAwPT09dFsxXT8wPD1vLl9nZXRTb3VuZElkcygpLmluZGV4T2YodFswXSk/cj1wYXJzZUludCh0WzBdLDEwKTplPXBhcnNlRmxvYXQodFswXSk6Mjw9dC5sZW5ndGgmJihlPXBhcnNlRmxvYXQodFswXSkscj1wYXJzZUludCh0WzFdLDEwKSksISh2b2lkIDAhPT1lJiYwPD1lJiZlPD0xKSlyZXR1cm4obj1yP28uX3NvdW5kQnlJZChyKTpvLl9zb3VuZHNbMF0pP24uX3ZvbHVtZTowO2lmKCJsb2FkZWQiIT09by5fc3RhdGV8fG8uX3BsYXlMb2NrKW8uX3F1ZXVlLnB1c2goe2V2ZW50OiJ2b2x1bWUiLGFjdGlvbjpmdW5jdGlvbigpe28udm9sdW1lLmFwcGx5KG8sdCl9fSk7ZWxzZXt2b2lkIDA9PT1yJiYoby5fdm9sdW1lPWUpO2Zvcih2YXIgcj1vLl9nZXRTb3VuZElkcyhyKSxhPTA7YTxyLmxlbmd0aDthKyspKG49by5fc291bmRCeUlkKHJbYV0pKSYmKG4uX3ZvbHVtZT1lLHRbMl18fG8uX3N0b3BGYWRlKHJbYV0pLG8uX3dlYkF1ZGlvJiZuLl9ub2RlJiYhbi5fbXV0ZWQ/bi5fbm9kZS5nYWluLnNldFZhbHVlQXRUaW1lKGUseS5jdHguY3VycmVudFRpbWUpOm4uX25vZGUmJiFuLl9tdXRlZCYmKG4uX25vZGUudm9sdW1lPWUqeS52b2x1bWUoKSksby5fZW1pdCgidm9sdW1lIixuLl9pZCkpfXJldHVybiBvfSxmYWRlOmZ1bmN0aW9uKGUsbixvLHQpe3ZhciByPXRoaXM7aWYoImxvYWRlZCIhPT1yLl9zdGF0ZXx8ci5fcGxheUxvY2spci5fcXVldWUucHVzaCh7ZXZlbnQ6ImZhZGUiLGFjdGlvbjpmdW5jdGlvbigpe3IuZmFkZShlLG4sbyx0KX19KTtlbHNle2U9TWF0aC5taW4oTWF0aC5tYXgoMCxwYXJzZUZsb2F0KGUpKSwxKSxuPU1hdGgubWluKE1hdGgubWF4KDAscGFyc2VGbG9hdChuKSksMSksbz1wYXJzZUZsb2F0KG8pLHIudm9sdW1lKGUsdCk7Zm9yKHZhciBhPXIuX2dldFNvdW5kSWRzKHQpLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIHUsaSxfPXIuX3NvdW5kQnlJZChhW2RdKTtfJiYodHx8ci5fc3RvcEZhZGUoYVtkXSksci5fd2ViQXVkaW8mJiFfLl9tdXRlZCYmKGk9KHU9eS5jdHguY3VycmVudFRpbWUpK28vMWUzLF8uX3ZvbHVtZT1lLF8uX25vZGUuZ2Fpbi5zZXRWYWx1ZUF0VGltZShlLHUpLF8uX25vZGUuZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShuLGkpKSxyLl9zdGFydEZhZGVJbnRlcnZhbChfLGUsbixvLGFbZF0sdm9pZCAwPT09dCkpfX1yZXR1cm4gcn0sX3N0YXJ0RmFkZUludGVydmFsOmZ1bmN0aW9uKG4sbyx0LHIsZSxhKXt2YXIgZD10aGlzLHU9byxpPXQtbyxfPU1hdGguYWJzKGkvLjAxKSxfPU1hdGgubWF4KDQsMDxfP3IvXzpyKSxzPURhdGUubm93KCk7bi5fZmFkZVRvPXQsbi5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZT0oRGF0ZS5ub3coKS1zKS9yO3M9RGF0ZS5ub3coKSx1Kz1pKmUsdT1NYXRoLnJvdW5kKDEwMCp1KS8xMDAsdT1pPDA/TWF0aC5tYXgodCx1KTpNYXRoLm1pbih0LHUpLGQuX3dlYkF1ZGlvP24uX3ZvbHVtZT11OmQudm9sdW1lKHUsbi5faWQsITApLGEmJihkLl92b2x1bWU9dSksKHQ8byYmdTw9dHx8bzx0JiZ0PD11KSYmKGNsZWFySW50ZXJ2YWwobi5faW50ZXJ2YWwpLG4uX2ludGVydmFsPW51bGwsbi5fZmFkZVRvPW51bGwsZC52b2x1bWUodCxuLl9pZCksZC5fZW1pdCgiZmFkZSIsbi5faWQpKX0sXyl9LF9zdG9wRmFkZTpmdW5jdGlvbihlKXt2YXIgbj10aGlzLG89bi5fc291bmRCeUlkKGUpO3JldHVybiBvJiZvLl9pbnRlcnZhbCYmKG4uX3dlYkF1ZGlvJiZvLl9ub2RlLmdhaW4uY2FuY2VsU2NoZWR1bGVkVmFsdWVzKHkuY3R4LmN1cnJlbnRUaW1lKSxjbGVhckludGVydmFsKG8uX2ludGVydmFsKSxvLl9pbnRlcnZhbD1udWxsLG4udm9sdW1lKG8uX2ZhZGVUbyxlKSxvLl9mYWRlVG89bnVsbCxuLl9lbWl0KCJmYWRlIixlKSksbn0sbG9vcDpmdW5jdGlvbigpe3ZhciBlLG4sbyx0PXRoaXMscj1hcmd1bWVudHM7aWYoMD09PXIubGVuZ3RoKXJldHVybiB0Ll9sb29wO2lmKDE9PT1yLmxlbmd0aCl7aWYoImJvb2xlYW4iIT10eXBlb2YgclswXSlyZXR1cm4hIShvPXQuX3NvdW5kQnlJZChwYXJzZUludChyWzBdLDEwKSkpJiZvLl9sb29wO3QuX2xvb3A9ZT1yWzBdfWVsc2UgMj09PXIubGVuZ3RoJiYoZT1yWzBdLG49cGFyc2VJbnQoclsxXSwxMCkpO2Zvcih2YXIgYT10Ll9nZXRTb3VuZElkcyhuKSxkPTA7ZDxhLmxlbmd0aDtkKyspKG89dC5fc291bmRCeUlkKGFbZF0pKSYmKG8uX2xvb3A9ZSx0Ll93ZWJBdWRpbykmJm8uX25vZGUmJm8uX25vZGUuYnVmZmVyU291cmNlJiYoby5fbm9kZS5idWZmZXJTb3VyY2UubG9vcD1lKSYmKG8uX25vZGUuYnVmZmVyU291cmNlLmxvb3BTdGFydD1vLl9zdGFydHx8MCxvLl9ub2RlLmJ1ZmZlclNvdXJjZS5sb29wRW5kPW8uX3N0b3AsdC5wbGF5aW5nKGFbZF0pKSYmKHQucGF1c2UoYVtkXSwhMCksdC5wbGF5KGFbZF0sITApKTtyZXR1cm4gdH0scmF0ZTpmdW5jdGlvbigpe3ZhciBlLG4sbz10aGlzLHQ9YXJndW1lbnRzO2lmKDA9PT10Lmxlbmd0aD9hPW8uX3NvdW5kc1swXS5faWQ6MT09PXQubGVuZ3RoPzA8PW8uX2dldFNvdW5kSWRzKCkuaW5kZXhPZih0WzBdKT9hPXBhcnNlSW50KHRbMF0sMTApOmU9cGFyc2VGbG9hdCh0WzBdKToyPT09dC5sZW5ndGgmJihlPXBhcnNlRmxvYXQodFswXSksYT1wYXJzZUludCh0WzFdLDEwKSksIm51bWJlciIhPXR5cGVvZiBlKXJldHVybigobj1vLl9zb3VuZEJ5SWQoYSkpfHxvKS5fcmF0ZTtpZigibG9hZGVkIiE9PW8uX3N0YXRlfHxvLl9wbGF5TG9jaylvLl9xdWV1ZS5wdXNoKHtldmVudDoicmF0ZSIsYWN0aW9uOmZ1bmN0aW9uKCl7by5yYXRlLmFwcGx5KG8sdCl9fSk7ZWxzZXt2b2lkIDA9PT1hJiYoby5fcmF0ZT1lKTtmb3IodmFyIHIsYT1vLl9nZXRTb3VuZElkcyhhKSxkPTA7ZDxhLmxlbmd0aDtkKyspKG49by5fc291bmRCeUlkKGFbZF0pKSYmKG8ucGxheWluZyhhW2RdKSYmKG4uX3JhdGVTZWVrPW8uc2VlayhhW2RdKSxuLl9wbGF5U3RhcnQ9by5fd2ViQXVkaW8/eS5jdHguY3VycmVudFRpbWU6bi5fcGxheVN0YXJ0KSxuLl9yYXRlPWUsby5fd2ViQXVkaW8mJm4uX25vZGUmJm4uX25vZGUuYnVmZmVyU291cmNlP24uX25vZGUuYnVmZmVyU291cmNlLnBsYXliYWNrUmF0ZS5zZXRWYWx1ZUF0VGltZShlLHkuY3R4LmN1cnJlbnRUaW1lKTpuLl9ub2RlJiYobi5fbm9kZS5wbGF5YmFja1JhdGU9ZSkscj1vLnNlZWsoYVtkXSkscj0xZTMqKChvLl9zcHJpdGVbbi5fc3ByaXRlXVswXStvLl9zcHJpdGVbbi5fc3ByaXRlXVsxXSkvMWUzLXIpL01hdGguYWJzKG4uX3JhdGUpLCFvLl9lbmRUaW1lcnNbYVtkXV0mJm4uX3BhdXNlZHx8KG8uX2NsZWFyVGltZXIoYVtkXSksby5fZW5kVGltZXJzW2FbZF1dPXNldFRpbWVvdXQoby5fZW5kZWQuYmluZChvLG4pLHIpKSxvLl9lbWl0KCJyYXRlIixuLl9pZCkpfXJldHVybiBvfSxzZWVrOmZ1bmN0aW9uKCl7dmFyIGUsbixvPXRoaXMsdD1hcmd1bWVudHM7aWYoMD09PXQubGVuZ3RoP28uX3NvdW5kcy5sZW5ndGgmJihuPW8uX3NvdW5kc1swXS5faWQpOjE9PT10Lmxlbmd0aD8wPD1vLl9nZXRTb3VuZElkcygpLmluZGV4T2YodFswXSk/bj1wYXJzZUludCh0WzBdLDEwKTpvLl9zb3VuZHMubGVuZ3RoJiYobj1vLl9zb3VuZHNbMF0uX2lkLGU9cGFyc2VGbG9hdCh0WzBdKSk6Mj09PXQubGVuZ3RoJiYoZT1wYXJzZUZsb2F0KHRbMF0pLG49cGFyc2VJbnQodFsxXSwxMCkpLHZvaWQgMD09PW4pcmV0dXJuIDA7aWYoIm51bWJlciIhPXR5cGVvZiBlfHwibG9hZGVkIj09PW8uX3N0YXRlJiYhby5fcGxheUxvY2spe3ZhciByLGEsZD1vLl9zb3VuZEJ5SWQobik7aWYoZCl7aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJjA8PWUpKXJldHVybiBvLl93ZWJBdWRpbz8ocj1vLnBsYXlpbmcobik/eS5jdHguY3VycmVudFRpbWUtZC5fcGxheVN0YXJ0OjAsYT1kLl9yYXRlU2Vlaz9kLl9yYXRlU2Vlay1kLl9zZWVrOjAsZC5fc2VlaysoYStyKk1hdGguYWJzKGQuX3JhdGUpKSk6ZC5fbm9kZS5jdXJyZW50VGltZTt2YXIgdSxpPW8ucGxheWluZyhuKSxfPShpJiZvLnBhdXNlKG4sITApLGQuX3NlZWs9ZSxkLl9lbmRlZD0hMSxvLl9jbGVhclRpbWVyKG4pLG8uX3dlYkF1ZGlvfHwhZC5fbm9kZXx8aXNOYU4oZC5fbm9kZS5kdXJhdGlvbil8fChkLl9ub2RlLmN1cnJlbnRUaW1lPWUpLGZ1bmN0aW9uKCl7aSYmby5wbGF5KG4sITApLG8uX2VtaXQoInNlZWsiLG4pfSk7aSYmIW8uX3dlYkF1ZGlvPyh1PWZ1bmN0aW9uKCl7by5fcGxheUxvY2s/c2V0VGltZW91dCh1LDApOl8oKX0sc2V0VGltZW91dCh1LDApKTpfKCl9fWVsc2Ugby5fcXVldWUucHVzaCh7ZXZlbnQ6InNlZWsiLGFjdGlvbjpmdW5jdGlvbigpe28uc2Vlay5hcHBseShvLHQpfX0pO3JldHVybiBvfSxwbGF5aW5nOmZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiPT10eXBlb2YgZSlyZXR1cm4hIShlPXRoaXMuX3NvdW5kQnlJZChlKSkmJiFlLl9wYXVzZWQ7Zm9yKHZhciBuPTA7bjx0aGlzLl9zb3VuZHMubGVuZ3RoO24rKylpZighdGhpcy5fc291bmRzW25dLl9wYXVzZWQpcmV0dXJuITA7cmV0dXJuITF9LGR1cmF0aW9uOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMuX2R1cmF0aW9uLGU9dGhpcy5fc291bmRCeUlkKGUpO3JldHVybiBuPWU/dGhpcy5fc3ByaXRlW2UuX3Nwcml0ZV1bMV0vMWUzOm59LHN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSx1bmxvYWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyxuPWUuX3NvdW5kcyxvPTA7bzxuLmxlbmd0aDtvKyspbltvXS5fcGF1c2VkfHxlLnN0b3AobltvXS5faWQpLGUuX3dlYkF1ZGlvfHwoZS5fY2xlYXJTb3VuZChuW29dLl9ub2RlKSxuW29dLl9ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuW29dLl9lcnJvckZuLCExKSxuW29dLl9ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoeS5fY2FuUGxheUV2ZW50LG5bb10uX2xvYWRGbiwhMSksbltvXS5fbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJlbmRlZCIsbltvXS5fZW5kRm4sITEpLHkuX3JlbGVhc2VIdG1sNUF1ZGlvKG5bb10uX25vZGUpKSxkZWxldGUgbltvXS5fbm9kZSxlLl9jbGVhclRpbWVyKG5bb10uX2lkKTtmb3IodmFyIHQ9eS5faG93bHMuaW5kZXhPZihlKSxyPSgwPD10JiZ5Ll9ob3dscy5zcGxpY2UodCwxKSwhMCksbz0wO288eS5faG93bHMubGVuZ3RoO28rKylpZih5Ll9ob3dsc1tvXS5fc3JjPT09ZS5fc3JjfHwwPD1lLl9zcmMuaW5kZXhPZih5Ll9ob3dsc1tvXS5fc3JjKSl7cj0hMTticmVha31yZXR1cm4gZCYmciYmZGVsZXRlIGRbZS5fc3JjXSx5Lm5vQXVkaW89ITEsZS5fc3RhdGU9InVubG9hZGVkIixlLl9zb3VuZHM9W10sbnVsbH0sb246ZnVuY3Rpb24oZSxuLG8sdCl7ZT10aGlzWyJfb24iK2VdO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuJiZlLnB1c2godD97aWQ6byxmbjpuLG9uY2U6dH06e2lkOm8sZm46bn0pLHRoaXN9LG9mZjpmdW5jdGlvbihlLG4sbyl7dmFyIHQ9dGhpcyxyPXRbIl9vbiIrZV0sYT0wO2lmKCJudW1iZXIiPT10eXBlb2YgbiYmKG89bixuPW51bGwpLG58fG8pZm9yKGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIGQ9bz09PXJbYV0uaWQ7aWYobj09PXJbYV0uZm4mJmR8fCFuJiZkKXtyLnNwbGljZShhLDEpO2JyZWFrfX1lbHNlIGlmKGUpdFsiX29uIitlXT1bXTtlbHNlIGZvcih2YXIgdT1PYmplY3Qua2V5cyh0KSxhPTA7YTx1Lmxlbmd0aDthKyspMD09PXVbYV0uaW5kZXhPZigiX29uIikmJkFycmF5LmlzQXJyYXkodFt1W2FdXSkmJih0W3VbYV1dPVtdKTtyZXR1cm4gdH0sb25jZTpmdW5jdGlvbihlLG4sbyl7cmV0dXJuIHRoaXMub24oZSxuLG8sMSksdGhpc30sX2VtaXQ6ZnVuY3Rpb24oZSxuLG8pe2Zvcih2YXIgdD10aGlzLHI9dFsiX29uIitlXSxhPXIubGVuZ3RoLTE7MDw9YTthLS0pclthXS5pZCYmclthXS5pZCE9PW4mJiJsb2FkIiE9PWV8fChzZXRUaW1lb3V0KGZ1bmN0aW9uKGUpe2UuY2FsbCh0aGlzLG4sbyl9LmJpbmQodCxyW2FdLmZuKSwwKSxyW2FdLm9uY2UmJnQub2ZmKGUsclthXS5mbixyW2FdLmlkKSk7cmV0dXJuIHQuX2xvYWRRdWV1ZShlKSx0fSxfbG9hZFF1ZXVlOmZ1bmN0aW9uKGUpe3ZhciBuLG89dGhpcztyZXR1cm4gMDxvLl9xdWV1ZS5sZW5ndGgmJigobj1vLl9xdWV1ZVswXSkuZXZlbnQ9PT1lJiYoby5fcXVldWUuc2hpZnQoKSxvLl9sb2FkUXVldWUoKSksZXx8bi5hY3Rpb24oKSksb30sX2VuZGVkOmZ1bmN0aW9uKGUpe3ZhciBuLG89dGhpcyx0PWUuX3Nwcml0ZTtyZXR1cm4hby5fd2ViQXVkaW8mJmUuX25vZGUmJiFlLl9ub2RlLnBhdXNlZCYmIWUuX25vZGUuZW5kZWQmJmUuX25vZGUuY3VycmVudFRpbWU8ZS5fc3RvcD9zZXRUaW1lb3V0KG8uX2VuZGVkLmJpbmQobyxlKSwxMDApOih0PSEoIWUuX2xvb3AmJiFvLl9zcHJpdGVbdF1bMl0pLG8uX2VtaXQoImVuZCIsZS5faWQpLCFvLl93ZWJBdWRpbyYmdCYmby5zdG9wKGUuX2lkLCEwKS5wbGF5KGUuX2lkKSxvLl93ZWJBdWRpbyYmdCYmKG8uX2VtaXQoInBsYXkiLGUuX2lkKSxlLl9zZWVrPWUuX3N0YXJ0fHwwLGUuX3JhdGVTZWVrPTAsZS5fcGxheVN0YXJ0PXkuY3R4LmN1cnJlbnRUaW1lLG49MWUzKihlLl9zdG9wLWUuX3N0YXJ0KS9NYXRoLmFicyhlLl9yYXRlKSxvLl9lbmRUaW1lcnNbZS5faWRdPXNldFRpbWVvdXQoby5fZW5kZWQuYmluZChvLGUpLG4pKSxvLl93ZWJBdWRpbyYmIXQmJihlLl9wYXVzZWQ9ITAsZS5fZW5kZWQ9ITAsZS5fc2Vlaz1lLl9zdGFydHx8MCxlLl9yYXRlU2Vlaz0wLG8uX2NsZWFyVGltZXIoZS5faWQpLG8uX2NsZWFuQnVmZmVyKGUuX25vZGUpLHkuX2F1dG9TdXNwZW5kKCkpLG8uX3dlYkF1ZGlvfHx0fHxvLnN0b3AoZS5faWQsITApKSxvfSxfY2xlYXJUaW1lcjpmdW5jdGlvbihlKXt2YXIgbixvPXRoaXM7cmV0dXJuIG8uX2VuZFRpbWVyc1tlXSYmKCJmdW5jdGlvbiIhPXR5cGVvZiBvLl9lbmRUaW1lcnNbZV0/Y2xlYXJUaW1lb3V0KG8uX2VuZFRpbWVyc1tlXSk6KG49by5fc291bmRCeUlkKGUpKSYmbi5fbm9kZSYmbi5fbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCJlbmRlZCIsby5fZW5kVGltZXJzW2VdLCExKSxkZWxldGUgby5fZW5kVGltZXJzW2VdKSxvfSxfc291bmRCeUlkOmZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0wO248dGhpcy5fc291bmRzLmxlbmd0aDtuKyspaWYoZT09PXRoaXMuX3NvdW5kc1tuXS5faWQpcmV0dXJuIHRoaXMuX3NvdW5kc1tuXTtyZXR1cm4gbnVsbH0sX2luYWN0aXZlU291bmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX2RyYWluKCk7Zm9yKHZhciBuPTA7bjxlLl9zb3VuZHMubGVuZ3RoO24rKylpZihlLl9zb3VuZHNbbl0uX2VuZGVkKXJldHVybiBlLl9zb3VuZHNbbl0ucmVzZXQoKTtyZXR1cm4gbmV3IGEoZSl9LF9kcmFpbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLl9wb29sLG89MCx0PTA7aWYoIShlLl9zb3VuZHMubGVuZ3RoPG4pKXtmb3IodD0wO3Q8ZS5fc291bmRzLmxlbmd0aDt0KyspZS5fc291bmRzW3RdLl9lbmRlZCYmbysrO2Zvcih0PWUuX3NvdW5kcy5sZW5ndGgtMTswPD10O3QtLSl7aWYobzw9bilyZXR1cm47ZS5fc291bmRzW3RdLl9lbmRlZCYmKGUuX3dlYkF1ZGlvJiZlLl9zb3VuZHNbdF0uX25vZGUmJmUuX3NvdW5kc1t0XS5fbm9kZS5kaXNjb25uZWN0KDApLGUuX3NvdW5kcy5zcGxpY2UodCwxKSxvLS0pfX19LF9nZXRTb3VuZElkczpmdW5jdGlvbihlKXtpZih2b2lkIDAhPT1lKXJldHVybltlXTtmb3IodmFyIG49W10sbz0wO288dGhpcy5fc291bmRzLmxlbmd0aDtvKyspbi5wdXNoKHRoaXMuX3NvdW5kc1tvXS5faWQpO3JldHVybiBufSxfcmVmcmVzaEJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fbm9kZS5idWZmZXJTb3VyY2U9eS5jdHguY3JlYXRlQnVmZmVyU291cmNlKCksZS5fbm9kZS5idWZmZXJTb3VyY2UuYnVmZmVyPWRbdGhpcy5fc3JjXSxlLl9wYW5uZXI/ZS5fbm9kZS5idWZmZXJTb3VyY2UuY29ubmVjdChlLl9wYW5uZXIpOmUuX25vZGUuYnVmZmVyU291cmNlLmNvbm5lY3QoZS5fbm9kZSksZS5fbm9kZS5idWZmZXJTb3VyY2UubG9vcD1lLl9sb29wLGUuX2xvb3AmJihlLl9ub2RlLmJ1ZmZlclNvdXJjZS5sb29wU3RhcnQ9ZS5fc3RhcnR8fDAsZS5fbm9kZS5idWZmZXJTb3VyY2UubG9vcEVuZD1lLl9zdG9wfHwwKSxlLl9ub2RlLmJ1ZmZlclNvdXJjZS5wbGF5YmFja1JhdGUuc2V0VmFsdWVBdFRpbWUoZS5fcmF0ZSx5LmN0eC5jdXJyZW50VGltZSksdGhpc30sX2NsZWFuQnVmZmVyOmZ1bmN0aW9uKGUpe3ZhciBuPXkuX25hdmlnYXRvciYmMDw9eS5fbmF2aWdhdG9yLnZlbmRvci5pbmRleE9mKCJBcHBsZSIpO2lmKHkuX3NjcmF0Y2hCdWZmZXImJmUuYnVmZmVyU291cmNlJiYoZS5idWZmZXJTb3VyY2Uub25lbmRlZD1udWxsLGUuYnVmZmVyU291cmNlLmRpc2Nvbm5lY3QoMCksbikpdHJ5e2UuYnVmZmVyU291cmNlLmJ1ZmZlcj15Ll9zY3JhdGNoQnVmZmVyfWNhdGNoKGUpe31yZXR1cm4gZS5idWZmZXJTb3VyY2U9bnVsbCx0aGlzfSxfY2xlYXJTb3VuZDpmdW5jdGlvbihlKXsvTVNJRSB8VHJpZGVudFwvLy50ZXN0KHkuX25hdmlnYXRvciYmeS5fbmF2aWdhdG9yLnVzZXJBZ2VudCl8fChlLnNyYz0iZGF0YTphdWRpby93YXY7YmFzZTY0LFVrbEdSaWdBQUFCWFFWWkZabTEwSUJJQUFBQUJBQUVBUkt3QUFJaFlBUUFDQUJBQUFBQmtZWFJoQWdBQUFBRUEiKX19LGZ1bmN0aW9uKGUpe3RoaXMuX3BhcmVudD1lLHRoaXMuaW5pdCgpfSksZD0oYS5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49ZS5fcGFyZW50O3JldHVybiBlLl9tdXRlZD1uLl9tdXRlZCxlLl9sb29wPW4uX2xvb3AsZS5fdm9sdW1lPW4uX3ZvbHVtZSxlLl9yYXRlPW4uX3JhdGUsZS5fc2Vlaz0wLGUuX3BhdXNlZD0hMCxlLl9lbmRlZD0hMCxlLl9zcHJpdGU9Il9fZGVmYXVsdCIsZS5faWQ9Kyt5Ll9jb3VudGVyLG4uX3NvdW5kcy5wdXNoKGUpLGUuY3JlYXRlKCksZX0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWUuX3BhcmVudCxvPXkuX211dGVkfHxlLl9tdXRlZHx8ZS5fcGFyZW50Ll9tdXRlZD8wOmUuX3ZvbHVtZTtyZXR1cm4gbi5fd2ViQXVkaW8/KGUuX25vZGU9dm9pZCAwPT09eS5jdHguY3JlYXRlR2Fpbj95LmN0eC5jcmVhdGVHYWluTm9kZSgpOnkuY3R4LmNyZWF0ZUdhaW4oKSxlLl9ub2RlLmdhaW4uc2V0VmFsdWVBdFRpbWUobyx5LmN0eC5jdXJyZW50VGltZSksZS5fbm9kZS5wYXVzZWQ9ITAsZS5fbm9kZS5jb25uZWN0KHkubWFzdGVyR2FpbikpOnkubm9BdWRpb3x8KGUuX25vZGU9eS5fb2J0YWluSHRtbDVBdWRpbygpLGUuX2Vycm9yRm49ZS5fZXJyb3JMaXN0ZW5lci5iaW5kKGUpLGUuX25vZGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUuX2Vycm9yRm4sITEpLGUuX2xvYWRGbj1lLl9sb2FkTGlzdGVuZXIuYmluZChlKSxlLl9ub2RlLmFkZEV2ZW50TGlzdGVuZXIoeS5fY2FuUGxheUV2ZW50LGUuX2xvYWRGbiwhMSksZS5fZW5kRm49ZS5fZW5kTGlzdGVuZXIuYmluZChlKSxlLl9ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIixlLl9lbmRGbiwhMSksZS5fbm9kZS5zcmM9bi5fc3JjLGUuX25vZGUucHJlbG9hZD0hMD09PW4uX3ByZWxvYWQ/ImF1dG8iOm4uX3ByZWxvYWQsZS5fbm9kZS52b2x1bWU9byp5LnZvbHVtZSgpLGUuX25vZGUubG9hZCgpKSxlfSxyZXNldDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1lLl9wYXJlbnQ7cmV0dXJuIGUuX211dGVkPW4uX211dGVkLGUuX2xvb3A9bi5fbG9vcCxlLl92b2x1bWU9bi5fdm9sdW1lLGUuX3JhdGU9bi5fcmF0ZSxlLl9zZWVrPTAsZS5fcmF0ZVNlZWs9MCxlLl9wYXVzZWQ9ITAsZS5fZW5kZWQ9ITAsZS5fc3ByaXRlPSJfX2RlZmF1bHQiLGUuX2lkPSsreS5fY291bnRlcixlfSxfZXJyb3JMaXN0ZW5lcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5fcGFyZW50Ll9lbWl0KCJsb2FkZXJyb3IiLGUuX2lkLGUuX25vZGUuZXJyb3I/ZS5fbm9kZS5lcnJvci5jb2RlOjApLGUuX25vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUuX2Vycm9yRm4sITEpfSxfbG9hZExpc3RlbmVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcGFyZW50O2UuX2R1cmF0aW9uPU1hdGguY2VpbCgxMCp0aGlzLl9ub2RlLmR1cmF0aW9uKS8xMCwwPT09T2JqZWN0LmtleXMoZS5fc3ByaXRlKS5sZW5ndGgmJihlLl9zcHJpdGU9e19fZGVmYXVsdDpbMCwxZTMqZS5fZHVyYXRpb25dfSksImxvYWRlZCIhPT1lLl9zdGF0ZSYmKGUuX3N0YXRlPSJsb2FkZWQiLGUuX2VtaXQoImxvYWQiKSxlLl9sb2FkUXVldWUoKSksdGhpcy5fbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKHkuX2NhblBsYXlFdmVudCx0aGlzLl9sb2FkRm4sITEpfSxfZW5kTGlzdGVuZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49ZS5fcGFyZW50O24uX2R1cmF0aW9uPT09MS8wJiYobi5fZHVyYXRpb249TWF0aC5jZWlsKDEwKmUuX25vZGUuZHVyYXRpb24pLzEwLG4uX3Nwcml0ZS5fX2RlZmF1bHRbMV09PT0xLzAmJihuLl9zcHJpdGUuX19kZWZhdWx0WzFdPTFlMypuLl9kdXJhdGlvbiksbi5fZW5kZWQoZSkpLGUuX25vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZW5kZWQiLGUuX2VuZEZuLCExKX19LHt9KSx1PWZ1bmN0aW9uKG4pe3ZhciBlPW4uX3NyYztpZihkW2VdKW4uX2R1cmF0aW9uPWRbZV0uZHVyYXRpb24scyhuKTtlbHNlIGlmKC9eZGF0YTpbXjtdKztiYXNlNjQsLy50ZXN0KGUpKXtmb3IodmFyIG89YXRvYihlLnNwbGl0KCIsIilbMV0pLHQ9bmV3IFVpbnQ4QXJyYXkoby5sZW5ndGgpLHI9MDtyPG8ubGVuZ3RoOysrcil0W3JdPW8uY2hhckNvZGVBdChyKTtfKHQuYnVmZmVyLG4pfWVsc2V7dmFyIGE9bmV3IFhNTEh0dHBSZXF1ZXN0O2Eub3BlbihuLl94aHIubWV0aG9kLGUsITApLGEud2l0aENyZWRlbnRpYWxzPW4uX3hoci53aXRoQ3JlZGVudGlhbHMsYS5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixuLl94aHIuaGVhZGVycyYmT2JqZWN0LmtleXMobi5feGhyLmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24oZSl7YS5zZXRSZXF1ZXN0SGVhZGVyKGUsbi5feGhyLmhlYWRlcnNbZV0pfSksYS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT0oYS5zdGF0dXMrIiIpWzBdOyIwIiE9PWUmJiIyIiE9PWUmJiIzIiE9PWU/bi5fZW1pdCgibG9hZGVycm9yIixudWxsLCJGYWlsZWQgbG9hZGluZyBhdWRpbyBmaWxlIHdpdGggc3RhdHVzOiAiK2Euc3RhdHVzKyIuIik6XyhhLnJlc3BvbnNlLG4pfSxhLm9uZXJyb3I9ZnVuY3Rpb24oKXtuLl93ZWJBdWRpbyYmKG4uX2h0bWw1PSEwLG4uX3dlYkF1ZGlvPSExLG4uX3NvdW5kcz1bXSxkZWxldGUgZFtlXSxuLmxvYWQoKSl9LGkoYSl9fSxpPWZ1bmN0aW9uKG4pe3RyeXtuLnNlbmQoKX1jYXRjaChlKXtuLm9uZXJyb3IoKX19LF89ZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBvKCl7bi5fZW1pdCgibG9hZGVycm9yIixudWxsLCJEZWNvZGluZyBhdWRpbyBkYXRhIGZhaWxlZC4iKX1mdW5jdGlvbiB0KGUpe2UmJjA8bi5fc291bmRzLmxlbmd0aD8oZFtuLl9zcmNdPWUscyhuLGUpKTpvKCl9InVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlJiYxPT09eS5jdHguZGVjb2RlQXVkaW9EYXRhLmxlbmd0aD95LmN0eC5kZWNvZGVBdWRpb0RhdGEoZSkudGhlbih0KS5jYXRjaChvKTp5LmN0eC5kZWNvZGVBdWRpb0RhdGEoZSx0LG8pfSxzPWZ1bmN0aW9uKGUsbil7biYmIWUuX2R1cmF0aW9uJiYoZS5fZHVyYXRpb249bi5kdXJhdGlvbiksMD09PU9iamVjdC5rZXlzKGUuX3Nwcml0ZSkubGVuZ3RoJiYoZS5fc3ByaXRlPXtfX2RlZmF1bHQ6WzAsMWUzKmUuX2R1cmF0aW9uXX0pLCJsb2FkZWQiIT09ZS5fc3RhdGUmJihlLl9zdGF0ZT0ibG9hZGVkIixlLl9lbWl0KCJsb2FkIiksZS5fbG9hZFF1ZXVlKCkpfSxsPWZ1bmN0aW9uKCl7aWYoeS51c2luZ1dlYkF1ZGlvKXt0cnl7InVuZGVmaW5lZCIhPXR5cGVvZiBBdWRpb0NvbnRleHQ/eS5jdHg9bmV3IEF1ZGlvQ29udGV4dDoidW5kZWZpbmVkIiE9dHlwZW9mIHdlYmtpdEF1ZGlvQ29udGV4dD95LmN0eD1uZXcgd2Via2l0QXVkaW9Db250ZXh0OnkudXNpbmdXZWJBdWRpbz0hMX1jYXRjaChlKXt5LnVzaW5nV2ViQXVkaW89ITF9eS5jdHh8fCh5LnVzaW5nV2ViQXVkaW89ITEpO3ZhciBlPS9pUChob25lfG9kfGFkKS8udGVzdCh5Ll9uYXZpZ2F0b3ImJnkuX25hdmlnYXRvci5wbGF0Zm9ybSksbj15Ll9uYXZpZ2F0b3ImJnkuX25hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9PUyAoXGQrKV8oXGQrKV8/KFxkKyk/Lyksbj1uP3BhcnNlSW50KG5bMV0sMTApOm51bGw7ZSYmbiYmbjw5JiYobj0vc2FmYXJpLy50ZXN0KHkuX25hdmlnYXRvciYmeS5fbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKSx5Ll9uYXZpZ2F0b3IpJiYhbiYmKHkudXNpbmdXZWJBdWRpbz0hMSkseS51c2luZ1dlYkF1ZGlvJiYoeS5tYXN0ZXJHYWluPXZvaWQgMD09PXkuY3R4LmNyZWF0ZUdhaW4/eS5jdHguY3JlYXRlR2Fpbk5vZGUoKTp5LmN0eC5jcmVhdGVHYWluKCkseS5tYXN0ZXJHYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoeS5fbXV0ZWQ/MDp5Ll92b2x1bWUseS5jdHguY3VycmVudFRpbWUpLHkubWFzdGVyR2Fpbi5jb25uZWN0KHkuY3R4LmRlc3RpbmF0aW9uKSkseS5fc2V0dXAoKX19O3ZvaWQgMCE9PWMmJihjLkhvd2xlcj15LGMuSG93bD1uKSwidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD8oZ2xvYmFsLkhvd2xlckdsb2JhbD1lLGdsb2JhbC5Ib3dsZXI9eSxnbG9iYWwuSG93bD1uLGdsb2JhbC5Tb3VuZD1hKToidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5Ib3dsZXJHbG9iYWw9ZSx3aW5kb3cuSG93bGVyPXksd2luZG93Lkhvd2w9bix3aW5kb3cuU291bmQ9YSl9KCkscj1jLkhvd2wsbz1jLkhvd2xlcixlJiZkZWxldGUgd2luZG93Lkhvd2wsbiYmZGVsZXRlIHdpbmRvdy5Ib3dsZXIsdCYmZGVsZXRlIHdpbmRvdy5Ib3dsZXJHbG9iYWwsYSYmZGVsZXRlIHdpbmRvdy5Tb3VuZCk7dmFyIHIsbyxlLG4sdCxhLGMsZCx1PXt9LGk9WyJtcDMiLCJvZ2ciLCJtcDQiLCJhYWMiXSxfPVsiYmVlcCIsImJlZXAyIiwiYnViYmxlIiwiYmVsbEFuZEJ1YmJsZSIsImJlbGxNdXRlZCIsImRyb3AiLCJnbGFzc1N0aWNrIiwibWFyYWNhTG9uZyIsInRyaXBsZXQiLCJ3aW5lR2xhc3MiLCJtYWdpYyIsImpveSIsImlvcyJdO3JldHVybntwbGF5OnMsbG9hZDpsLHByZXBhcmVBZGhvY0F1ZGlvOmZ1bmN0aW9uKGUpe2lmKCF3aW5kb3cuQXVkaW9Db250ZXh0JiYhd2luZG93LndlYmtpdEF1ZGlvQ29udGV4dHx8IW8udXNpbmdXZWJBdWRpbylyZXR1cm4gbnVsbDtjb25zdCBuPW5ldyByKHtzcmM6W2VdLGh0bWw1OiExLHByZWxvYWQ6ITB9KTtyZXR1cm57aG93bDpuLGRlc3Ryb3koKXt0cnl7bi51bmxvYWQoKX1jYXRjaChlKXt9fX19fTtmdW5jdGlvbiBzKGUsbil7aWYobj0hMSE9PW4sIXVbZV0pcmV0dXJuIG4/bChlLHMuYmluZCh0aGlzLGUsITEpKTp2b2lkIDA7aWYodVtlXSlyZXR1cm4gdVtlXS5wbGF5KCk7dGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gcGxheSBhIHNvdW5kICInK2UrJyInKX1mdW5jdGlvbiBsKG4sZSl7dmFyIG8sdDstMSE9PV8uaW5kZXhPZihuKSYmKGQ9ZHx8KCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuY2hhcG9ydC5nZXRDaGF0TWFuYWdlcj8iIjoiaHR0cHM6Ly9hc3NldHMuY2hhcG9ydC5jb20iKSsiL3NvdW5kcyIsbz1pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZCsiLyIrbisiLiIrZX0pLHQ9bmV3IHIoe3NyYzpvLG9ubG9hZDplLG9udW5sb2NrOmZ1bmN0aW9uKCl7dC5zdG9wKCl9fSksdVtuXT10KX19KCk7"}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/lightcase.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.851Z","timestamp":1785126645851,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/lightcase.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9838\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":49384,"size_decoded":10093,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"ab6cb655743568c595a9a25c96c252dc","sha1":"f3cfc5a9e5796fde2af6efb5e765536de643228a","sha256":"b5565dbbc68cce0b516b99954471cf20a1b1f6cbb4d2ebd96d81c1b7bc352100","sha512":"2f68e4f0edf265e81a8f5605e9959e39f831935d65bab4a55e3316bad9bdcc8e4af8e9d18447d1abf587da443338702191933a937d0636603b345d5a2b9a7d9d","ssdeep":"384:6slK3b/e6dPN3OReKXhWxAmXZeCbul9e429DXxLdKMjIb/CMmp/bkoSB3xdW9Qhb:Tlea+PdbBpZ9uyhx5Knx3hm5vwp","tlshash":"ee231efcd74db155402b6059e9bc51cbe23c843265396cbabcf0da64f580178cea2fa6","first_seen":"2023-06-20T22:17:54Z","last_seen":"2026-07-27T04:47:12.491997Z","times_seen":16,"resource_available":true,"data":"LyoKICogTGlnaHRjYXNlIC0galF1ZXJ5IFBsdWdpbgogKiBUaGUgc21hcnQgYW5kIGZsZXhpYmxlIExpZ2h0Ym94IFBsdWdpbi4KICoKICogQGF1dGhvcgkJQ29ybmVsIEJvcHBhcnQgPGNvcm5lbEBib3BwLWFydC5jb20+CiAqIEBjb3B5cmlnaHQJQXV0aG9yCiAqCiAqIEB2ZXJzaW9uCQkyLjMuNiAoMjAvMTIvMjAxNikKICovCgo7KGZ1bmN0aW9uICgkKSB7CgoJJ3VzZSBzdHJpY3QnOwoKCXZhciBfc2VsZiA9IHsKCQljYWNoZToge30sCgoJCXN1cHBvcnQ6IHt9LAoKCQlvYmplY3RzOiB7fSwKCgkJLyoqCgkJICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbgoJCSAqCgkJICogQHBhcmFtCXtvYmplY3R9CW9wdGlvbnMKCQkgKiBAcmV0dXJuCXtvYmplY3R9CgkJICovCgkJaW5pdDogZnVuY3Rpb24gKG9wdGlvbnMpIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7CgkJCQkkKHRoaXMpLnVuYmluZCgnY2xpY2subGlnaHRjYXNlJykuYmluZCgnY2xpY2subGlnaHRjYXNlJywgZnVuY3Rpb24gKGV2ZW50KSB7CgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKCQkJCQkkKHRoaXMpLmxpZ2h0Y2FzZSgnc3RhcnQnLCBvcHRpb25zKTsKCQkJCX0pOwoJCQl9KTsKCQl9LAoKCQkvKioKCQkgKiBTdGFydHMgdGhlIHBsdWdpbgoJCSAqCgkJICogQHBhcmFtCXtvYmplY3R9CW9wdGlvbnMKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCXN0YXJ0OiBmdW5jdGlvbiAob3B0aW9ucykgewoJCQlfc2VsZi5vcmlnaW4gPSBsaWdodGNhc2Uub3JpZ2luID0gdGhpczsKCgkJCV9zZWxmLnNldHRpbmdzID0gbGlnaHRjYXNlLnNldHRpbmdzID0gJC5leHRlbmQodHJ1ZSwgewoJCQkJaWRQcmVmaXg6ICdsaWdodGNhc2UtJywKCQkJCWNsYXNzUHJlZml4OiAnbGlnaHRjYXNlLScsCgkJCQlhdHRyUHJlZml4OiAnbGMtJywKCQkJCXRyYW5zaXRpb246ICdlbGFzdGljJywKCQkJCXRyYW5zaXRpb25JbjogbnVsbCwKCQkJCXRyYW5zaXRpb25PdXQ6IG51bGwsCgkJCQljc3NUcmFuc2l0aW9uczogdHJ1ZSwKCQkJCXNwZWVkSW46IDI1MCwKCQkJCXNwZWVkT3V0OiAyNTAsCgkJCQltYXhXaWR0aDogODAwLAoJCQkJbWF4SGVpZ2h0OiA1MDAsCgkJCQlmb3JjZVdpZHRoOiBmYWxzZSwKCQkJCWZvcmNlSGVpZ2h0OiBmYWxzZSwKCQkJCWxpdmVSZXNpemU6IHRydWUsCgkJCQlmdWxsU2NyZWVuTW9kZUZvck1vYmlsZTogdHJ1ZSwKCQkJCW1vYmlsZU1hdGNoRXhwcmVzc2lvbjogLyhpcGhvbmV8aXBvZHxpcGFkfGFuZHJvaWR8YmxhY2tiZXJyeXxzeW1iaWFuKS8sCgkJCQlkaXNhYmxlU2hyaW5rOiBmYWxzZSwKCQkJCXNocmlua0ZhY3RvcjogLjc1LAoJCQkJb3ZlcmxheU9wYWNpdHk6IDEsCgkJCQlzbGlkZXNob3c6IGZhbHNlLAoJCQkJc2xpZGVzaG93QXV0b1N0YXJ0OiB0cnVlLAoJCQkJdGltZW91dDogNTAwMCwKCQkJCXN3aXBlOiB0cnVlLAoJCQkJdXNlS2V5czogdHJ1ZSwKCQkJCXVzZUNhdGVnb3JpZXM6IHRydWUsCgkJCQluYXZpZ2F0ZUVuZGxlc3M6IHRydWUsCgkJCQljbG9zZU9uT3ZlcmxheUNsaWNrOiB0cnVlLAoJCQkJdGl0bGU6IG51bGwsCgkJCQljYXB0aW9uOiBudWxsLAoJCQkJc2hvd1RpdGxlOiB0cnVlLAoJCQkJc2hvd0NhcHRpb246IHRydWUsCgkJCQlzaG93U2VxdWVuY2VJbmZvOiB0cnVlLAoJCQkJaW5saW5lOiB7CgkJCQkJd2lkdGg6ICdhdXRvJywKCQkJCQloZWlnaHQ6ICdhdXRvJwoJCQkJfSwKCQkJCWFqYXg6IHsKCQkJCQl3aWR0aDogJ2F1dG8nLAoJCQkJCWhlaWdodDogJ2F1dG8nLAoJCQkJCXR5cGU6ICdnZXQnLAoJCQkJCWRhdGFUeXBlOiAnaHRtbCcsCgkJCQkJZGF0YToge30KCQkJCX0sCgkJCQlpZnJhbWU6IHsKCQkJCQl3aWR0aDogODAwLAoJCQkJCWhlaWdodDogNTAwLAoJCQkJCWZyYW1lYm9yZGVyOiAwCgkJCQl9LAoJCQkJZmxhc2g6IHsKCQkJCQl3aWR0aDogNDAwLAoJCQkJCWhlaWdodDogMjA1LAoJCQkJCXdtb2RlOiAndHJhbnNwYXJlbnQnCgkJCQl9LAoJCQkJdmlkZW86IHsKCQkJCQl3aWR0aDogNDAwLAoJCQkJCWhlaWdodDogMjI1LAoJCQkJCXBvc3RlcjogJycsCgkJCQkJcHJlbG9hZDogJ2F1dG8nLAoJCQkJCWNvbnRyb2xzOiB0cnVlLAoJCQkJCWF1dG9idWZmZXI6IHRydWUsCgkJCQkJYXV0b3BsYXk6IHRydWUsCgkJCQkJbG9vcDogZmFsc2UKCQkJCX0sCgkJCQlhdHRyOiAnZGF0YS1yZWwnLAoJCQkJaHJlZjogbnVsbCwKCQkJCXR5cGU6IG51bGwsCgkJCQl0eXBlTWFwcGluZzogewoJCQkJCSdpbWFnZSc6ICdqcGcsanBlZyxnaWYscG5nLGJtcCcsCgkJCQkJJ2ZsYXNoJzogJ3N3ZicsCgkJCQkJJ3ZpZGVvJzogJ21wNCxtb3Ysb2d2LG9nZyx3ZWJtJywKCQkJCQknaWZyYW1lJzogJ2h0bWwscGhwJywKCQkJCQknYWpheCc6ICdqc29uLHR4dCcsCgkJCQkJJ2lubGluZSc6ICcjJwoJCQkJfSwKCQkJCWVycm9yTWVzc2FnZTogZnVuY3Rpb24gKCkgewoJCQkJCXJldHVybiAnPHAgY2xhc3M9IicgKyBfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdlcnJvciI+JyArIF9zZWxmLnNldHRpbmdzLmxhYmVsc1snZXJyb3JNZXNzYWdlJ10gKyAnPC9wPic7CgkJCQl9LAoJCQkJbGFiZWxzOiB7CgkJCQkJJ2Vycm9yTWVzc2FnZSc6ICdTb3VyY2UgY291bGQgbm90IGJlIGZvdW5kLi4uJywKCQkJCQknc2VxdWVuY2VJbmZvLm9mJzogJyBvZiAnLAoJCQkJCSdjbG9zZSc6ICdDbG9zZScsCgkJCQkJJ25hdmlnYXRvci5wcmV2JzogJ1ByZXYnLAoJCQkJCSduYXZpZ2F0b3IubmV4dCc6ICdOZXh0JywKIAkJCQkJJ25hdmlnYXRvci5wbGF5JzogJ1BsYXknLAoJCQkJCSduYXZpZ2F0b3IucGF1c2UnOiAnUGF1c2UnCgkJCQl9LAoJCQkJbWFya3VwOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnYm9keScpLmFwcGVuZCgKCQkJCQkJX3NlbGYub2JqZWN0cy5vdmVybGF5ID0gJCgnPGRpdiBpZD0iJyArIF9zZWxmLnNldHRpbmdzLmlkUHJlZml4ICsgJ292ZXJsYXkiPjwvZGl2PicpLAoJCQkJCQlfc2VsZi5vYmplY3RzLmxvYWRpbmcgPSAkKCc8ZGl2IGlkPSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnbG9hZGluZyIgY2xhc3M9IicgKyBfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdpY29uLXNwaW4iPjwvZGl2PicpLAoJCQkJCQlfc2VsZi5vYmplY3RzLmNhc2UgPSAkKCc8ZGl2IGlkPSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnY2FzZSIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImRpYWxvZyI+PC9kaXY+JykKCQkJCQkpOwoJCQkJCV9zZWxmLm9iamVjdHMuY2FzZS5hZnRlcigKCQkJCQkJX3NlbGYub2JqZWN0cy5uYXYgPSAkKCc8ZGl2IGlkPSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnbmF2Ij48L2Rpdj4nKQoJCQkJCSk7CgkJCQkJX3NlbGYub2JqZWN0cy5uYXYuYXBwZW5kKAoJCQkJCQlfc2VsZi5vYmplY3RzLmNsb3NlID0gJCgnPGEgaHJlZj0iIyIgY2xhc3M9IicgKyBfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdpY29uLWNsb3NlIj48c3Bhbj4nICsgX3NlbGYuc2V0dGluZ3MubGFiZWxzWydjbG9zZSddICsgJzwvc3Bhbj48L2E+JyksCgkJCQkJCV9zZWxmLm9iamVjdHMucHJldiA9ICQoJzxhIGhyZWY9IiMiIGNsYXNzPSInICsgX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAnaWNvbi1wcmV2Ij48c3Bhbj4nICsgX3NlbGYuc2V0dGluZ3MubGFiZWxzWyduYXZpZ2F0b3IucHJldiddICsgJzwvc3Bhbj48L2E+JykuaGlkZSgpLAoJCQkJCQlfc2VsZi5vYmplY3RzLm5leHQgPSAkKCc8YSBocmVmPSIjIiBjbGFzcz0iJyArIF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2ljb24tbmV4dCI+PHNwYW4+JyArIF9zZWxmLnNldHRpbmdzLmxhYmVsc1snbmF2aWdhdG9yLm5leHQnXSArICc8L3NwYW4+PC9hPicpLmhpZGUoKSwKCQkJCQkJX3NlbGYub2JqZWN0cy5wbGF5ID0gJCgnPGEgaHJlZj0iIyIgY2xhc3M9IicgKyBfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdpY29uLXBsYXkiPjxzcGFuPicgKyBfc2VsZi5zZXR0aW5ncy5sYWJlbHNbJ25hdmlnYXRvci5wbGF5J10gKyAnPC9zcGFuPjwvYT4nKS5oaWRlKCksCgkJCQkJCV9zZWxmLm9iamVjdHMucGF1c2UgPSAkKCc8YSBocmVmPSIjIiBjbGFzcz0iJyArIF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2ljb24tcGF1c2UiPjxzcGFuPicgKyBfc2VsZi5zZXR0aW5ncy5sYWJlbHNbJ25hdmlnYXRvci5wYXVzZSddICsgJzwvc3Bhbj48L2E+JykuaGlkZSgpCgkJCQkJKTsKCQkJCQlfc2VsZi5vYmplY3RzLmNhc2UuYXBwZW5kKAoJCQkJCQlfc2VsZi5vYmplY3RzLmNvbnRlbnQgPSAkKCc8ZGl2IGlkPSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnY29udGVudCI+PC9kaXY+JyksCgkJCQkJCV9zZWxmLm9iamVjdHMuaW5mbyA9ICQoJzxkaXYgaWQ9IicgKyBfc2VsZi5zZXR0aW5ncy5pZFByZWZpeCArICdpbmZvIj48L2Rpdj4nKQoJCQkJCSk7CgkJCQkJX3NlbGYub2JqZWN0cy5jb250ZW50LmFwcGVuZCgKCQkJCQkJX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIgPSAkKCc8ZGl2IGNsYXNzPSInICsgX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAnY29udGVudElubmVyIj48L2Rpdj4nKQoJCQkJCSk7CgkJCQkJX3NlbGYub2JqZWN0cy5pbmZvLmFwcGVuZCgKCQkJCQkJX3NlbGYub2JqZWN0cy5zZXF1ZW5jZUluZm8gPSAkKCc8ZGl2IGlkPSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnc2VxdWVuY2VJbmZvIj48L2Rpdj4nKSwKCQkJCQkJX3NlbGYub2JqZWN0cy50aXRsZSA9ICQoJzxoNCBpZD0iJyArIF9zZWxmLnNldHRpbmdzLmlkUHJlZml4ICsgJ3RpdGxlIj48L2g0PicpLAoJCQkJCQlfc2VsZi5vYmplY3RzLmNhcHRpb24gPSAkKCc8cCBpZD0iJyArIF9zZWxmLnNldHRpbmdzLmlkUHJlZml4ICsgJ2NhcHRpb24iPjwvcD4nKQoJCQkJCSk7CgkJCQl9LAoJCQkJb25Jbml0OiB7fSwKCQkJCW9uU3RhcnQ6IHt9LAoJCQkJb25GaW5pc2g6IHt9LAoJCQkJb25DbG9zZToge30sCgkJCQlvbkNsZWFudXA6IHt9CgkJCX0sIAoJCQlvcHRpb25zLAoJCQkvLyBMb2FkIG9wdGlvbnMgZnJvbSBkYXRhLWxjLW9wdGlvbnMgYXR0cmlidXRlCgkJCV9zZWxmLm9yaWdpbi5kYXRhID8gX3NlbGYub3JpZ2luLmRhdGEoJ2xjLW9wdGlvbnMnKSA6IHt9KTsKCgkJCS8vIENhbGwgb25Jbml0IGhvb2sgZnVuY3Rpb25zCgkJCV9zZWxmLl9jYWxsSG9va3MoX3NlbGYuc2V0dGluZ3Mub25Jbml0KTsKCgkJCV9zZWxmLm9iamVjdERhdGEgPSBfc2VsZi5fc2V0T2JqZWN0RGF0YSh0aGlzKTsKCgkJCV9zZWxmLl9jYWNoZVNjcm9sbFBvc2l0aW9uKCk7CgkJCV9zZWxmLl93YXRjaFNjcm9sbEludGVyYWN0aW9uKCk7CgoJCQlfc2VsZi5fYWRkRWxlbWVudHMoKTsKCQkJX3NlbGYuX29wZW4oKTsKCgkJCV9zZWxmLmRpbWVuc2lvbnMgPSBfc2VsZi5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKTsKCQl9LAoKCQkvKioKCQkgKiBHZXR0ZXIgbWV0aG9kIGZvciBvYmplY3RzCgkJICoKCQkgKiBAcGFyYW0Je3N0cmluZ30JbmFtZQoJCSAqIEByZXR1cm4Je29iamVjdH0KCQkgKi8KCQlnZXQ6IGZ1bmN0aW9uIChuYW1lKSB7CgkJCXJldHVybiBfc2VsZi5vYmplY3RzW25hbWVdOwoJCX0sCgoJCS8qKgoJCSAqIEdldHRlciBtZXRob2QgZm9yIG9iamVjdERhdGEKCQkgKgoJCSAqIEByZXR1cm4Je29iamVjdH0KCQkgKi8KCQlnZXRPYmplY3REYXRhOiBmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBfc2VsZi5vYmplY3REYXRhOwoJCX0sCgoJCS8qKgoJCSAqIFNldHMgdGhlIG9iamVjdCBkYXRhCgkJICoKCQkgKiBAcGFyYW0Je29iamVjdH0Jb2JqZWN0CgkJICogQHJldHVybgl7b2JqZWN0fQlvYmplY3REYXRhCgkJICovCgkJX3NldE9iamVjdERhdGE6IGZ1bmN0aW9uIChvYmplY3QpIHsKCQkgCXZhciAkb2JqZWN0ID0gJChvYmplY3QpLAoJCQkJb2JqZWN0RGF0YSA9IHsKCQkJCXRpdGxlOiBfc2VsZi5zZXR0aW5ncy50aXRsZSB8fCAkb2JqZWN0LmF0dHIoX3NlbGYuX3ByZWZpeEF0dHJpYnV0ZU5hbWUoJ3RpdGxlJykpIHx8ICRvYmplY3QuYXR0cigndGl0bGUnKSwKCQkJCWNhcHRpb246IF9zZWxmLnNldHRpbmdzLmNhcHRpb24gfHwgJG9iamVjdC5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKCdjYXB0aW9uJykpIHx8ICRvYmplY3QuY2hpbGRyZW4oJ2ltZycpLmF0dHIoJ2FsdCcpLAoJCQkJdXJsOiBfc2VsZi5fZGV0ZXJtaW5lVXJsKCksCgkJCQlyZXF1ZXN0VHlwZTogX3NlbGYuc2V0dGluZ3MuYWpheC50eXBlLAoJCQkJcmVxdWVzdERhdGE6IF9zZWxmLnNldHRpbmdzLmFqYXguZGF0YSwKCQkJCXJlcXVlc3REYXRhVHlwZTogX3NlbGYuc2V0dGluZ3MuYWpheC5kYXRhVHlwZSwKCQkJCXJlbDogJG9iamVjdC5hdHRyKF9zZWxmLl9kZXRlcm1pbmVBdHRyaWJ1dGVTZWxlY3RvcigpKSwKCQkJCXR5cGU6IF9zZWxmLnNldHRpbmdzLnR5cGUgfHwgX3NlbGYuX3ZlcmlmeURhdGFUeXBlKF9zZWxmLl9kZXRlcm1pbmVVcmwoKSksCgkJCQlpc1BhcnRPZlNlcXVlbmNlOiBfc2VsZi5faXNQYXJ0T2ZTZXF1ZW5jZSgkb2JqZWN0LmF0dHIoX3NlbGYuc2V0dGluZ3MuYXR0ciksICc6JyksCgkJCQlpc1BhcnRPZlNlcXVlbmNlV2l0aFNsaWRlc2hvdzogX3NlbGYuX2lzUGFydE9mU2VxdWVuY2UoJG9iamVjdC5hdHRyKF9zZWxmLnNldHRpbmdzLmF0dHIpLCAnOnNsaWRlc2hvdycpLAoJCQkJY3VycmVudEluZGV4OiAkKF9zZWxmLl9kZXRlcm1pbmVBdHRyaWJ1dGVTZWxlY3RvcigpKS5pbmRleCgkb2JqZWN0KSwKCQkJCXNlcXVlbmNlTGVuZ3RoOiAkKF9zZWxmLl9kZXRlcm1pbmVBdHRyaWJ1dGVTZWxlY3RvcigpKS5sZW5ndGgKCQkJfTsKCgkJCS8vIEFkZCBzZXF1ZW5jZSBpbmZvIHRvIG9iamVjdERhdGEKCQkJb2JqZWN0RGF0YS5zZXF1ZW5jZUluZm8gPSAob2JqZWN0RGF0YS5jdXJyZW50SW5kZXggKyAxKSArIF9zZWxmLnNldHRpbmdzLmxhYmVsc1snc2VxdWVuY2VJbmZvLm9mJ10gKyBvYmplY3REYXRhLnNlcXVlbmNlTGVuZ3RoOwoKCQkJLy8gQWRkIG5leHQvcHJldiBpbmRleAoJCQlvYmplY3REYXRhLnByZXZJbmRleCA9IG9iamVjdERhdGEuY3VycmVudEluZGV4IC0gMTsKCQkJb2JqZWN0RGF0YS5uZXh0SW5kZXggPSBvYmplY3REYXRhLmN1cnJlbnRJbmRleCArIDE7CgoJCQlyZXR1cm4gb2JqZWN0RGF0YTsKCQl9LAoKCQkvKioKCQkgKiBQcmVmaXhlcyBhIGRhdGEgYXR0cmlidXRlIG5hbWUgd2l0aCBkZWZpbmVkIG5hbWUgZnJvbSAnc2V0dGluZ3MuYXR0clByZWZpeCcKCQkgKiB0byBlbnN1cmUgbW9yZSB1bmlxdWVuZXNzIGZvciBhbGwgbGlnaHRjYXNlIHJlbGF0ZWQvdXNlZCBhdHRyaWJ1dGVzLgoJCSAqCgkJICogQHBhcmFtCXtzdHJpbmd9CW5hbWUKCQkgKiBAcmV0dXJuCXtzdHJpbmd9CgkJICovCgkJX3ByZWZpeEF0dHJpYnV0ZU5hbWU6IGZ1bmN0aW9uIChuYW1lKSB7CgkJCXJldHVybiAnZGF0YS0nICsgX3NlbGYuc2V0dGluZ3MuYXR0clByZWZpeCArIG5hbWU7CgkJfSwKCgkJLyoqCgkJICogRGV0ZXJtaW5lcyB0aGUgbGluayB0YXJnZXQgY29uc2lkZXJpbmcgJ3NldHRpbmdzLmhyZWYnIGFuZCBkYXRhIGF0dHJpYnV0ZXMKCQkgKiBidXQgYWxzbyB3aXRoIGEgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgJ2hyZWYnIHZhbHVlLgoJCSAqCgkJICogQHJldHVybgl7c3RyaW5nfQoJCSAqLwoJCV9kZXRlcm1pbmVMaW5rVGFyZ2V0OiBmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBfc2VsZi5zZXR0aW5ncy5ocmVmIHx8ICQoX3NlbGYub3JpZ2luKS5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKCdocmVmJykpIHx8ICQoX3NlbGYub3JpZ2luKS5hdHRyKCdocmVmJyk7CgkJfSwKCgkJLyoqCgkJICogRGV0ZXJtaW5lcyB0aGUgYXR0cmlidXRlIHNlbGVjdG9yIHRvIHVzZSwgZGVwZW5kaW5nIG9uCgkJICogd2hldGhlciBjYXRlZ29yaXplZCBjb2xsZWN0aW9ucyBhcmUgYmVlaW5nIHVzZWQgb3Igbm90LgoJCSAqCgkJICogQHJldHVybgl7c3RyaW5nfQlzZWxlY3RvcgoJCSAqLwoJCV9kZXRlcm1pbmVBdHRyaWJ1dGVTZWxlY3RvcjogZnVuY3Rpb24gKCkgewoJCQl2YXIJJG9yaWdpbiA9ICQoX3NlbGYub3JpZ2luKSwKCQkJCXNlbGVjdG9yID0gJyc7CgoJCQlpZiAodHlwZW9mIF9zZWxmLmNhY2hlLnNlbGVjdG9yICE9PSAndW5kZWZpbmVkJykgewoJCQkJc2VsZWN0b3IgPSBfc2VsZi5jYWNoZS5zZWxlY3RvcjsKCQkJfSBlbHNlIGlmIChfc2VsZi5zZXR0aW5ncy51c2VDYXRlZ29yaWVzID09PSB0cnVlICYmICRvcmlnaW4uYXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnY2F0ZWdvcmllcycpKSkgewoJCQkJdmFyCWNhdGVnb3JpZXMgPSAkb3JpZ2luLmF0dHIoX3NlbGYuX3ByZWZpeEF0dHJpYnV0ZU5hbWUoJ2NhdGVnb3JpZXMnKSkuc3BsaXQoJyAnKTsKCgkJCQkkLmVhY2goY2F0ZWdvcmllcywgZnVuY3Rpb24gKGluZGV4LCBjYXRlZ29yeSkgewoJCQkJCWlmIChpbmRleCA+IDApIHsKCQkJCQkJc2VsZWN0b3IgKz0gJywnOwoJCQkJCX0KCQkJCQlzZWxlY3RvciArPSAnWycgKyBfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnY2F0ZWdvcmllcycpICsgJ349IicgKyBjYXRlZ29yeSArICciXSc7CgkJCQl9KTsKCQkJfSBlbHNlIHsKCQkJCXNlbGVjdG9yID0gJ1snICsgX3NlbGYuc2V0dGluZ3MuYXR0ciArICc9IicgKyAkb3JpZ2luLmF0dHIoX3NlbGYuc2V0dGluZ3MuYXR0cikgKyAnIl0nOwoJCQl9CgoJCQlfc2VsZi5jYWNoZS5zZWxlY3RvciA9IHNlbGVjdG9yOwoKCQkJcmV0dXJuIHNlbGVjdG9yOwoJCX0sCgoJCS8qKgoJCSAqIERldGVybWluZXMgdGhlIGNvcnJlY3QgcmVzb3VyY2UgYWNjb3JkaW5nIHRvIHRoZQoJCSAqIGN1cnJlbnQgdmlld3BvcnQgYW5kIGRlbnNpdHkuCgkJICoKCQkgKiBAcmV0dXJuCXtzdHJpbmd9CXVybAoJCSAqLwoJCV9kZXRlcm1pbmVVcmw6IGZ1bmN0aW9uICgpIHsKCQkJdmFyIGRhdGFVcmwgPSBfc2VsZi5fdmVyaWZ5RGF0YVVybChfc2VsZi5fZGV0ZXJtaW5lTGlua1RhcmdldCgpKSwKCQkJCXdpZHRoID0gMCwKCQkJCWRlbnNpdHkgPSAwLAoJCQkJdXJsOwoKCQkJJC5lYWNoKGRhdGFVcmwsIGZ1bmN0aW9uIChpbmRleCwgc3JjKSB7CgkJCQlpZiAoCgkJCQkJLy8gQ2hlY2sgZGVuc2l0eQoJCQkJCV9zZWxmLl9kZXZpY2VQaXhlbFJhdGlvKCkgPj0gc3JjLmRlbnNpdHkgJiYKCQkJCQlzcmMuZGVuc2l0eSA+PSBkZW5zaXR5ICYmCgkJCQkJLy8gQ2hlY2sgdmlld3BvcnQgd2lkdGgKCQkJCQlfc2VsZi5fbWF0Y2hNZWRpYSgpKCdzY3JlZW4gYW5kIChtaW4td2lkdGg6JyArIHNyYy53aWR0aCArICdweCknKS5tYXRjaGVzICYmCgkJCQkJc3JjLndpZHRoID49IHdpZHRoCgkJCQkpIHsKCQkJCQl3aWR0aCA9IHNyYy53aWR0aDsKCQkJCQlkZW5zaXR5ID0gc3JjLmRlbnNpdHk7CgkJCQkJdXJsID0gc3JjLnVybDsKCQkJCX0KCQkJfSk7CgoJCQlyZXR1cm4gdXJsOwoJCX0sCgoJCS8qKgoJCSAqIE5vcm1hbGl6ZXMgYW4gdXJsIGFuZCByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZXNvdXJjZSBwYXRoLAoJCSAqIHRoZSB2aWV3cG9ydCB3aWR0aCBhcyB3ZWxsIGFzIGRlbnNpdHkgaWYgZGVmaW5lZC4KCQkgKgoJCSAqIEBwYXJhbQl7c3RyaW5nfQl1cmwJUGF0aCB0byByZXNvdXJjZSBpbiBmb3JtYXQgb2YgYW4gdXJsIG9yIHNyY3NldAoJCSAqIEByZXR1cm4Je29iamVjdH0KCQkgKi8KCQlfbm9ybWFsaXplVXJsOiBmdW5jdGlvbiAodXJsKSB7CgkJCXZhciBzcmNFeHAgPSAvXlxkKyQvOwoKCQkJcmV0dXJuIHVybC5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoc3RyKSB7CgkJCQl2YXIgc3JjID0gewoJCQkJCXdpZHRoOiAwLAoJCQkJCWRlbnNpdHk6IDAKCQkJCX07CgoJCQkJc3RyLnRyaW0oKS5zcGxpdCgvXHMrLykuZm9yRWFjaChmdW5jdGlvbiAodXJsLCBpKSB7CgkJCQkJaWYgKGkgPT09IDApIHsKCQkJCQkJcmV0dXJuIHNyYy51cmwgPSB1cmw7CgkJCQkJfQoKCQkJCQl2YXIgdmFsdWUgPSB1cmwuc3Vic3RyaW5nKDAsIHVybC5sZW5ndGggLSAxKSwKCQkJCQkJbGFzdENoYXIgPSB1cmxbdXJsLmxlbmd0aCAtIDFdLAoJCQkJCQlpbnRWYWwgPSBwYXJzZUludCh2YWx1ZSwgMTApLAoJCQkJCQlmbG9hdFZhbCA9IHBhcnNlRmxvYXQodmFsdWUpOwoJCQkJCWlmIChsYXN0Q2hhciA9PT0gJ3cnICYmIHNyY0V4cC50ZXN0KHZhbHVlKSkgewoJCQkJCQlzcmMud2lkdGggPSBpbnRWYWw7CgkJCQkJfSBlbHNlIGlmIChsYXN0Q2hhciA9PT0gJ2gnICYmIHNyY0V4cC50ZXN0KHZhbHVlKSkgewoJCQkJCQlzcmMuaGVpZ2h0ID0gaW50VmFsOwoJCQkJCX0gZWxzZSBpZiAobGFzdENoYXIgPT09ICd4JyAmJiAhaXNOYU4oZmxvYXRWYWwpKSB7CgkJCQkJCXNyYy5kZW5zaXR5ID0gZmxvYXRWYWw7CgkJCQkJfQoJCQkJfSk7CgoJCQkJcmV0dXJuIHNyYzsKCQkJfSk7CgkJfSwKCgkJLyoqCgkJICogVmVyaWZpZXMgaWYgdGhlIGxpbmsgaXMgcGFydCBvZiBhIHNlcXVlbmNlCgkJICoKCQkgKiBAcGFyYW0Je3N0cmluZ30JcmVsCgkJICogQHBhcmFtCXtzdHJpbmd9CWV4cHJlc3Npb24KCQkgKiBAcmV0dXJuCXtib29sZWFufQoJCSAqLwoJCV9pc1BhcnRPZlNlcXVlbmNlOiBmdW5jdGlvbiAocmVsLCBleHByZXNzaW9uKSB7CgkJCXZhciBnZXRTaW1pbGFyTGlua3MgPSAkKCdbJyArIF9zZWxmLnNldHRpbmdzLmF0dHIgKyAnPSInICsgcmVsICsgJyJdJyksCgkJCQlyZWdleHAgPSBuZXcgUmVnRXhwKGV4cHJlc3Npb24pOwoKCQkJcmV0dXJuIChyZWdleHAudGVzdChyZWwpICYmIGdldFNpbWlsYXJMaW5rcy5sZW5ndGggPiAxKTsKCQl9LAoKCQkvKioKCQkgKiBWZXJpZmllcyBpZiB0aGUgc2xpZGVzaG93IHNob3VsZCBiZSBlbmFibGVkCgkJICoKCQkgKiBAcmV0dXJuCXtib29sZWFufQoJCSAqLwoJCWlzU2xpZGVzaG93RW5hYmxlZDogZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gKF9zZWxmLm9iamVjdERhdGEuaXNQYXJ0T2ZTZXF1ZW5jZSAmJiAoX3NlbGYuc2V0dGluZ3Muc2xpZGVzaG93ID09PSB0cnVlIHx8IF9zZWxmLm9iamVjdERhdGEuaXNQYXJ0T2ZTZXF1ZW5jZVdpdGhTbGlkZXNob3cgPT09IHRydWUpKTsKCQl9LAoKCQkvKioKCQkgKiBMb2FkcyB0aGUgbmV3IGNvbnRlbnQgdG8gc2hvdwoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfbG9hZENvbnRlbnQ6IGZ1bmN0aW9uICgpIHsKCQkJaWYgKF9zZWxmLmNhY2hlLm9yaWdpbmFsT2JqZWN0KSB7CgkJCQlfc2VsZi5fcmVzdG9yZU9iamVjdCgpOwoJCQl9CgoJCQlfc2VsZi5fY3JlYXRlT2JqZWN0KCk7CgkJfSwKCgkJLyoqCgkJICogQ3JlYXRlcyBhIG5ldyBvYmplY3QKCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX2NyZWF0ZU9iamVjdDogZnVuY3Rpb24gKCkgewoJCQl2YXIgJG9iamVjdDsKCgkJCS8vIENyZWF0ZSBvYmplY3QKCQkJc3dpdGNoIChfc2VsZi5vYmplY3REYXRhLnR5cGUpIHsKCQkJCWNhc2UgJ2ltYWdlJzoKCQkJCQkkb2JqZWN0ID0gJChuZXcgSW1hZ2UoKSk7CgkJCQkJJG9iamVjdC5hdHRyKHsKCQkJCQkJLy8gVGhlIHRpbWUgZXhwcmVzc2lvbiBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHRoZSBiaW5kaW5nIG9mIGFuIGltYWdlIGxvYWQKCQkJCQkJJ3NyYyc6IF9zZWxmLm9iamVjdERhdGEudXJsLAoJCQkJCQknYWx0JzogX3NlbGYub2JqZWN0RGF0YS50aXRsZQoJCQkJCX0pOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnaW5saW5lJzoKCQkJCQkkb2JqZWN0ID0gJCgnPGRpdiBjbGFzcz0iJyArIF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2lubGluZVdyYXAiPjwvZGl2PicpOwoJCQkJCSRvYmplY3QuaHRtbChfc2VsZi5fY2xvbmVPYmplY3QoJChfc2VsZi5vYmplY3REYXRhLnVybCkpKTsKCgkJCQkJLy8gQWRkIGN1c3RvbSBhdHRyaWJ1dGVzIGZyb20gX3NlbGYuc2V0dGluZ3MKCQkJCQkkLmVhY2goX3NlbGYuc2V0dGluZ3MuaW5saW5lLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKCQkJCQkJJG9iamVjdC5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKG5hbWUpLCB2YWx1ZSk7CgkJCQkJfSk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdhamF4JzoKCQkJCQkkb2JqZWN0ID0gJCgnPGRpdiBjbGFzcz0iJyArIF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2lubGluZVdyYXAiPjwvZGl2PicpOwoKCQkJCQkvLyBBZGQgY3VzdG9tIGF0dHJpYnV0ZXMgZnJvbSBfc2VsZi5zZXR0aW5ncwoJCQkJCSQuZWFjaChfc2VsZi5zZXR0aW5ncy5hamF4LCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKCQkJCQkJaWYgKG5hbWUgIT09ICdkYXRhJykgewoJCQkJCQkJJG9iamVjdC5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKG5hbWUpLCB2YWx1ZSk7CgkJCQkJCX0KCQkJCQl9KTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ2ZsYXNoJzoKCQkJCQkkb2JqZWN0ID0gJCgnPGVtYmVkIHNyYz0iJyArIF9zZWxmLm9iamVjdERhdGEudXJsICsgJyIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giPjwvZW1iZWQ+Jyk7CgoJCQkJCS8vIEFkZCBjdXN0b20gYXR0cmlidXRlcyBmcm9tIF9zZWxmLnNldHRpbmdzCgkJCQkJJC5lYWNoKF9zZWxmLnNldHRpbmdzLmZsYXNoLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKCQkJCQkJJG9iamVjdC5hdHRyKG5hbWUsIHZhbHVlKTsKCQkJCQl9KTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ3ZpZGVvJzoKCQkJCQkkb2JqZWN0ID0gJCgnPHZpZGVvPjwvdmlkZW8+Jyk7CgkJCQkJJG9iamVjdC5hdHRyKCdzcmMnLCBfc2VsZi5vYmplY3REYXRhLnVybCk7CgoJCQkJCS8vIEFkZCBjdXN0b20gYXR0cmlidXRlcyBmcm9tIF9zZWxmLnNldHRpbmdzCgkJCQkJJC5lYWNoKF9zZWxmLnNldHRpbmdzLnZpZGVvLCBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHsKCQkJCQkJJG9iamVjdC5hdHRyKG5hbWUsIHZhbHVlKTsKCQkJCQl9KTsKCQkJCQlicmVhazsKCQkJCWRlZmF1bHQgOgoJCQkJCSRvYmplY3QgPSAkKCc8aWZyYW1lPjwvaWZyYW1lPicpOwoJCQkJCSRvYmplY3QuYXR0cih7CgkJCQkJCSdzcmMnOiBfc2VsZi5vYmplY3REYXRhLnVybAoJCQkJCX0pOwoKCQkJCQkvLyBBZGQgY3VzdG9tIGF0dHJpYnV0ZXMgZnJvbSBfc2VsZi5zZXR0aW5ncwoJCQkJCSQuZWFjaChfc2VsZi5zZXR0aW5ncy5pZnJhbWUsIGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkgewoJCQkJCQkkb2JqZWN0LmF0dHIobmFtZSwgdmFsdWUpOwoJCQkJCX0pOwoJCQkJCWJyZWFrOwoJCQl9CgoJCQlfc2VsZi5fYWRkT2JqZWN0KCRvYmplY3QpOwoJCQlfc2VsZi5fbG9hZE9iamVjdCgkb2JqZWN0KTsKCQl9LAoKCQkvKioKCQkgKiBBZGRzIHRoZSBuZXcgb2JqZWN0IHRvIHRoZSBtYXJrdXAKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfYWRkT2JqZWN0OiBmdW5jdGlvbiAoJG9iamVjdCkgewoJCQkvLyBBZGQgb2JqZWN0IHRvIGNvbnRlbnQgaG9sZGVyCgkJCV9zZWxmLm9iamVjdHMuY29udGVudElubmVyLmh0bWwoJG9iamVjdCk7CgoJCQkvLyBTdGFydCBsb2FkaW5nCgkJCV9zZWxmLl9sb2FkaW5nKCdzdGFydCcpOwoKCQkJLy8gQ2FsbCBvblN0YXJ0IGhvb2sgZnVuY3Rpb25zCgkJCV9zZWxmLl9jYWxsSG9va3MoX3NlbGYuc2V0dGluZ3Mub25TdGFydCk7CgoJCQkvLyBBZGQgc2VxdWVuY2VJbmZvIHRvIHRoZSBjb250ZW50IGhvbGRlciBvciBoaWRlIGlmIGl0cyBlbXB0eQoJCQlpZiAoX3NlbGYuc2V0dGluZ3Muc2hvd1NlcXVlbmNlSW5mbyA9PT0gdHJ1ZSAmJiBfc2VsZi5vYmplY3REYXRhLmlzUGFydE9mU2VxdWVuY2UpIHsKCQkJCV9zZWxmLm9iamVjdHMuc2VxdWVuY2VJbmZvLmh0bWwoX3NlbGYub2JqZWN0RGF0YS5zZXF1ZW5jZUluZm8pOwoJCQkJX3NlbGYub2JqZWN0cy5zZXF1ZW5jZUluZm8uc2hvdygpOwoJCQl9IGVsc2UgewoJCQkJX3NlbGYub2JqZWN0cy5zZXF1ZW5jZUluZm8uZW1wdHkoKTsKCQkJCV9zZWxmLm9iamVjdHMuc2VxdWVuY2VJbmZvLmhpZGUoKTsKCQkJfQoJCQkvLyBBZGQgdGl0bGUgdG8gdGhlIGNvbnRlbnQgaG9sZGVyIG9yIGhpZGUgaWYgaXRzIGVtcHR5CgkJCWlmIChfc2VsZi5zZXR0aW5ncy5zaG93VGl0bGUgPT09IHRydWUgJiYgX3NlbGYub2JqZWN0RGF0YS50aXRsZSAhPT0gdW5kZWZpbmVkICYmIF9zZWxmLm9iamVjdERhdGEudGl0bGUgIT09ICcnKSB7CgkJCQlfc2VsZi5vYmplY3RzLnRpdGxlLmh0bWwoX3NlbGYub2JqZWN0RGF0YS50aXRsZSk7CgkJCQlfc2VsZi5vYmplY3RzLnRpdGxlLnNob3coKTsKCQkJfSBlbHNlIHsKCQkJCV9zZWxmLm9iamVjdHMudGl0bGUuZW1wdHkoKTsKCQkJCV9zZWxmLm9iamVjdHMudGl0bGUuaGlkZSgpOwoJCQl9CgkJCS8vIEFkZCBjYXB0aW9uIHRvIHRoZSBjb250ZW50IGhvbGRlciBvciBoaWRlIGlmIGl0cyBlbXB0eQoJCQlpZiAoX3NlbGYuc2V0dGluZ3Muc2hvd0NhcHRpb24gPT09IHRydWUgJiYgX3NlbGYub2JqZWN0RGF0YS5jYXB0aW9uICE9PSB1bmRlZmluZWQgJiYgX3NlbGYub2JqZWN0RGF0YS5jYXB0aW9uICE9PSAnJykgewoJCQkJX3NlbGYub2JqZWN0cy5jYXB0aW9uLmh0bWwoX3NlbGYub2JqZWN0RGF0YS5jYXB0aW9uKTsKCQkJCV9zZWxmLm9iamVjdHMuY2FwdGlvbi5zaG93KCk7CgkJCX0gZWxzZSB7CgkJCQlfc2VsZi5vYmplY3RzLmNhcHRpb24uZW1wdHkoKTsKCQkJCV9zZWxmLm9iamVjdHMuY2FwdGlvbi5oaWRlKCk7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBMb2FkcyB0aGUgbmV3IG9iamVjdAoJCSAqCgkJICogQHBhcmFtCXtvYmplY3R9CSRvYmplY3QKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCV9sb2FkT2JqZWN0OiBmdW5jdGlvbiAoJG9iamVjdCkgewoJCQkvLyBMb2FkIHRoZSBvYmplY3QKCQkJc3dpdGNoIChfc2VsZi5vYmplY3REYXRhLnR5cGUpIHsKCQkJCWNhc2UgJ2lubGluZSc6CgkJCQkJaWYgKCQoX3NlbGYub2JqZWN0RGF0YS51cmwpKSB7CgkJCQkJCV9zZWxmLl9zaG93Q29udGVudCgkb2JqZWN0KTsKCQkJCQl9IGVsc2UgewoJCQkJCQlfc2VsZi5lcnJvcigpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCWNhc2UgJ2FqYXgnOgoJCQkJCSQuYWpheCgKCQkJCQkJJC5leHRlbmQoe30sIF9zZWxmLnNldHRpbmdzLmFqYXgsIHsKCQkJCQkJCXVybDogX3NlbGYub2JqZWN0RGF0YS51cmwsCgkJCQkJCQl0eXBlOiBfc2VsZi5vYmplY3REYXRhLnJlcXVlc3RUeXBlLAoJCQkJCQkJZGF0YVR5cGU6IF9zZWxmLm9iamVjdERhdGEucmVxdWVzdERhdGFUeXBlLAoJCQkJCQkJZGF0YTogX3NlbGYub2JqZWN0RGF0YS5yZXF1ZXN0RGF0YSwKCQkJCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhLCB0ZXh0U3RhdHVzLCBqcVhIUikgewoJCQkJCQkJCS8vIFVuc2VyaWFsaXplIGlmIGRhdGEgaXMgdHJhbnNmZXJyZWQgYXMganNvbgoJCQkJCQkJCWlmIChfc2VsZi5vYmplY3REYXRhLnJlcXVlc3REYXRhVHlwZSA9PT0gJ2pzb24nKSB7CgkJCQkJCQkJCV9zZWxmLm9iamVjdERhdGEuZGF0YSA9IGRhdGE7CgkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJJG9iamVjdC5odG1sKGRhdGEpOwoJCQkJCQkJCX0KCQkJCQkJCQlfc2VsZi5fc2hvd0NvbnRlbnQoJG9iamVjdCk7CgkJCQkJCQl9LAoJCQkJCQkJZXJyb3I6IGZ1bmN0aW9uIChqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsKCQkJCQkJCQlfc2VsZi5lcnJvcigpOwoJCQkJCQkJfQoJCQkJCQl9KQoJCQkJCSk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdmbGFzaCc6CgkJCQkJX3NlbGYuX3Nob3dDb250ZW50KCRvYmplY3QpOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAndmlkZW8nOgoJCQkJCWlmICh0eXBlb2YoJG9iamVjdC5nZXQoMCkuY2FuUGxheVR5cGUpID09PSAnZnVuY3Rpb24nIHx8IF9zZWxmLm9iamVjdHMuY2FzZS5maW5kKCd2aWRlbycpLmxlbmd0aCA9PT0gMCkgewoJCQkJCQlfc2VsZi5fc2hvd0NvbnRlbnQoJG9iamVjdCk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJX3NlbGYuZXJyb3IoKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQlkZWZhdWx0OgoJCQkJCWlmIChfc2VsZi5vYmplY3REYXRhLnVybCkgewoJCQkJCQkkb2JqZWN0Lm9uKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQkJCQkJX3NlbGYuX3Nob3dDb250ZW50KCRvYmplY3QpOwoJCQkJCQl9KTsKCQkJCQkJJG9iamVjdC5vbignZXJyb3InLCBmdW5jdGlvbiAoKSB7CgkJCQkJCQlfc2VsZi5lcnJvcigpOwoJCQkJCQl9KTsKCQkJCQl9IGVsc2UgewoJCQkJCQlfc2VsZi5lcnJvcigpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIFRocm93cyBhbiBlcnJvciBtZXNzYWdlIGlmIHNvbWV0aGluZyB3ZW50IHdyb25nCgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCWVycm9yOiBmdW5jdGlvbiAoKSB7CgkJCV9zZWxmLm9iamVjdERhdGEudHlwZSA9ICdlcnJvcic7CgkJCXZhciAkb2JqZWN0ID0gJCgnPGRpdiBjbGFzcz0iJyArIF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2lubGluZVdyYXAiPjwvZGl2PicpOwoKCQkJJG9iamVjdC5odG1sKF9zZWxmLnNldHRpbmdzLmVycm9yTWVzc2FnZSk7CgkJCV9zZWxmLm9iamVjdHMuY29udGVudElubmVyLmh0bWwoJG9iamVjdCk7CgoJCQlfc2VsZi5fc2hvd0NvbnRlbnQoX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIpOwoJCX0sCgoJCS8qKgoJCSAqIENhbGN1bGF0ZXMgdGhlIGRpbWVuc2lvbnMgdG8gZml0IGNvbnRlbnQKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfY2FsY3VsYXRlRGltZW5zaW9uczogZnVuY3Rpb24gKCRvYmplY3QpIHsKCQkJX3NlbGYuX2NsZWFudXBEaW1lbnNpb25zKCk7CgoJCQkvLyBTZXQgZGVmYXVsdCBkaW1lbnNpb25zCgkJCXZhciBkaW1lbnNpb25zID0gewoJCQkJb2JqZWN0V2lkdGg6ICRvYmplY3QuYXR0cignd2lkdGgnKSA/ICRvYmplY3QuYXR0cignd2lkdGgnKSA6ICRvYmplY3QuYXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnd2lkdGgnKSksCgkJCQlvYmplY3RIZWlnaHQ6ICRvYmplY3QuYXR0cignaGVpZ2h0JykgPyAkb2JqZWN0LmF0dHIoJ2hlaWdodCcpIDogJG9iamVjdC5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKCdoZWlnaHQnKSkKCQkJfTsKCgkJCWlmICghX3NlbGYuc2V0dGluZ3MuZGlzYWJsZVNocmluaykgewoJCQkJLy8gQWRkIGNhbGN1bGF0ZWQgbWF4aW11bSB3aWR0aC9oZWlnaHQgdG8gZGltZW5zaW9ucwoJCQkJZGltZW5zaW9ucy5tYXhXaWR0aCA9IHBhcnNlSW50KF9zZWxmLmRpbWVuc2lvbnMud2luZG93V2lkdGggKiBfc2VsZi5zZXR0aW5ncy5zaHJpbmtGYWN0b3IpOwoJCQkJZGltZW5zaW9ucy5tYXhIZWlnaHQgPSBwYXJzZUludChfc2VsZi5kaW1lbnNpb25zLndpbmRvd0hlaWdodCAqIF9zZWxmLnNldHRpbmdzLnNocmlua0ZhY3Rvcik7CgoJCQkJLy8gSWYgdGhlIGF1dG8gY2FsY3VsYXRlZCBtYXhXaWR0aC9tYXhIZWlnaHQgZ3JlYXRoZXIgdGhhbiB0aGUgdXNlcmRlZmluZWQgb25lLCB1c2UgdGhhdC4KCQkJCWlmIChkaW1lbnNpb25zLm1heFdpZHRoID4gX3NlbGYuc2V0dGluZ3MubWF4V2lkdGgpIHsKCQkJCQlkaW1lbnNpb25zLm1heFdpZHRoID0gX3NlbGYuc2V0dGluZ3MubWF4V2lkdGg7CgkJCQl9CgkJCQlpZiAoZGltZW5zaW9ucy5tYXhIZWlnaHQgPiBfc2VsZi5zZXR0aW5ncy5tYXhIZWlnaHQpIHsKCQkJCQlkaW1lbnNpb25zLm1heEhlaWdodCA9IF9zZWxmLnNldHRpbmdzLm1heEhlaWdodDsKCQkJCX0KCgkJCQkvLyBDYWxjdWxhdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzY3JlZW4gd2lkdGgvaGVpZ2h0IGFuZCBpbWFnZSB3aWR0aC9oZWlnaHQKCQkJCWRpbWVuc2lvbnMuZGlmZmVyZW5jZVdpZHRoQXNQZXJjZW50ID0gcGFyc2VJbnQoMTAwIC8gZGltZW5zaW9ucy5tYXhXaWR0aCAqIGRpbWVuc2lvbnMub2JqZWN0V2lkdGgpOwoJCQkJZGltZW5zaW9ucy5kaWZmZXJlbmNlSGVpZ2h0QXNQZXJjZW50ID0gcGFyc2VJbnQoMTAwIC8gZGltZW5zaW9ucy5tYXhIZWlnaHQgKiBkaW1lbnNpb25zLm9iamVjdEhlaWdodCk7CgoJCQkJc3dpdGNoIChfc2VsZi5vYmplY3REYXRhLnR5cGUpIHsKCQkJCQljYXNlICdpbWFnZSc6CgkJCQkJY2FzZSAnZmxhc2gnOgoJCQkJCWNhc2UgJ3ZpZGVvJzoKCQkJCQkJaWYgKGRpbWVuc2lvbnMuZGlmZmVyZW5jZVdpZHRoQXNQZXJjZW50ID4gMTAwICYmIGRpbWVuc2lvbnMuZGlmZmVyZW5jZVdpZHRoQXNQZXJjZW50ID4gZGltZW5zaW9ucy5kaWZmZXJlbmNlSGVpZ2h0QXNQZXJjZW50KSB7CgkJCQkJCQlkaW1lbnNpb25zLm9iamVjdFdpZHRoID0gZGltZW5zaW9ucy5tYXhXaWR0aDsKCQkJCQkJCWRpbWVuc2lvbnMub2JqZWN0SGVpZ2h0ID0gcGFyc2VJbnQoZGltZW5zaW9ucy5vYmplY3RIZWlnaHQgLyBkaW1lbnNpb25zLmRpZmZlcmVuY2VXaWR0aEFzUGVyY2VudCAqIDEwMCk7CgkJCQkJCX0KCQkJCQkJaWYgKGRpbWVuc2lvbnMuZGlmZmVyZW5jZUhlaWdodEFzUGVyY2VudCA+IDEwMCAmJiBkaW1lbnNpb25zLmRpZmZlcmVuY2VIZWlnaHRBc1BlcmNlbnQgPiBkaW1lbnNpb25zLmRpZmZlcmVuY2VXaWR0aEFzUGVyY2VudCkgewoJCQkJCQkJZGltZW5zaW9ucy5vYmplY3RXaWR0aCA9IHBhcnNlSW50KGRpbWVuc2lvbnMub2JqZWN0V2lkdGggLyBkaW1lbnNpb25zLmRpZmZlcmVuY2VIZWlnaHRBc1BlcmNlbnQgKiAxMDApOwoJCQkJCQkJZGltZW5zaW9ucy5vYmplY3RIZWlnaHQgPSBkaW1lbnNpb25zLm1heEhlaWdodDsKCQkJCQkJfQoJCQkJCQlpZiAoZGltZW5zaW9ucy5kaWZmZXJlbmNlSGVpZ2h0QXNQZXJjZW50ID4gMTAwICYmIGRpbWVuc2lvbnMuZGlmZmVyZW5jZVdpZHRoQXNQZXJjZW50IDwgZGltZW5zaW9ucy5kaWZmZXJlbmNlSGVpZ2h0QXNQZXJjZW50KSB7CgkJCQkJCQlkaW1lbnNpb25zLm9iamVjdFdpZHRoID0gcGFyc2VJbnQoZGltZW5zaW9ucy5tYXhXaWR0aCAvIGRpbWVuc2lvbnMuZGlmZmVyZW5jZUhlaWdodEFzUGVyY2VudCAqIGRpbWVuc2lvbnMuZGlmZmVyZW5jZVdpZHRoQXNQZXJjZW50KTsKCQkJCQkJCWRpbWVuc2lvbnMub2JqZWN0SGVpZ2h0ID0gZGltZW5zaW9ucy5tYXhIZWlnaHQ7CgkJCQkJCX0KCQkJCQkJYnJlYWs7CgkJCQkJY2FzZSAnZXJyb3InOgoJCQkJCQlpZiAoIWlzTmFOKGRpbWVuc2lvbnMub2JqZWN0V2lkdGgpICYmIGRpbWVuc2lvbnMub2JqZWN0V2lkdGggPiBkaW1lbnNpb25zLm1heFdpZHRoKSB7CgkJCQkJCQlkaW1lbnNpb25zLm9iamVjdFdpZHRoID0gZGltZW5zaW9ucy5tYXhXaWR0aDsKCQkJCQkJfQoJCQkJCQlicmVhazsKCQkJCQlkZWZhdWx0OgoJCQkJCQlpZiAoKGlzTmFOKGRpbWVuc2lvbnMub2JqZWN0V2lkdGgpIHx8IGRpbWVuc2lvbnMub2JqZWN0V2lkdGggPiBkaW1lbnNpb25zLm1heFdpZHRoKSAmJiAhX3NlbGYuc2V0dGluZ3MuZm9yY2VXaWR0aCkgewoJCQkJCQkJZGltZW5zaW9ucy5vYmplY3RXaWR0aCA9IGRpbWVuc2lvbnMubWF4V2lkdGg7CgkJCQkJCX0KCQkJCQkJaWYgKCgoaXNOYU4oZGltZW5zaW9ucy5vYmplY3RIZWlnaHQpICYmIGRpbWVuc2lvbnMub2JqZWN0SGVpZ2h0ICE9PSAnYXV0bycpIHx8IGRpbWVuc2lvbnMub2JqZWN0SGVpZ2h0ID4gZGltZW5zaW9ucy5tYXhIZWlnaHQpICYmICFfc2VsZi5zZXR0aW5ncy5mb3JjZUhlaWdodCkgewoJCQkJCQkJZGltZW5zaW9ucy5vYmplY3RIZWlnaHQgPSBkaW1lbnNpb25zLm1heEhlaWdodDsKCQkJCQkJfQoJCQkJCQlicmVhazsKCQkJCX0KCQkJfQoKCQkJaWYgKF9zZWxmLnNldHRpbmdzLmZvcmNlV2lkdGgpIHsKCQkJCWRpbWVuc2lvbnMubWF4V2lkdGggPSBkaW1lbnNpb25zLm9iamVjdFdpZHRoOwoJCQl9IGVsc2UgaWYgKCRvYmplY3QuYXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnbWF4LXdpZHRoJykpKSB7CgkJCQlkaW1lbnNpb25zLm1heFdpZHRoID0gICRvYmplY3QuYXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnbWF4LXdpZHRoJykpOwoJCQl9CgoJCQlpZiAoX3NlbGYuc2V0dGluZ3MuZm9yY2VIZWlnaHQpIHsKCQkJCWRpbWVuc2lvbnMubWF4SGVpZ2h0ID0gZGltZW5zaW9ucy5vYmplY3RIZWlnaHQ7CgkJCX0gZWxzZSBpZiAoJG9iamVjdC5hdHRyKF9zZWxmLl9wcmVmaXhBdHRyaWJ1dGVOYW1lKCdtYXgtaGVpZ2h0JykpKSB7CgkJCQlkaW1lbnNpb25zLm1heEhlaWdodCA9ICAkb2JqZWN0LmF0dHIoX3NlbGYuX3ByZWZpeEF0dHJpYnV0ZU5hbWUoJ21heC1oZWlnaHQnKSk7CgkJCX0KCgkJCV9zZWxmLl9hZGp1c3REaW1lbnNpb25zKCRvYmplY3QsIGRpbWVuc2lvbnMpOwoJCX0sCgoJCS8qKgoJCSAqIEFkanVzdHMgdGhlIGRpbWVuc2lvbnMKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHBhcmFtCXtvYmplY3R9CWRpbWVuc2lvbnMKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCV9hZGp1c3REaW1lbnNpb25zOiBmdW5jdGlvbiAoJG9iamVjdCwgZGltZW5zaW9ucykgewoJCQkvLyBBZGp1c3Qgd2lkdGggYW5kIGhlaWdodAoJCQkkb2JqZWN0LmNzcyh7CgkJCQknd2lkdGgnOiBkaW1lbnNpb25zLm9iamVjdFdpZHRoLAoJCQkJJ2hlaWdodCc6IGRpbWVuc2lvbnMub2JqZWN0SGVpZ2h0LAoJCQkJJ21heC13aWR0aCc6IGRpbWVuc2lvbnMubWF4V2lkdGgsCgkJCQknbWF4LWhlaWdodCc6IGRpbWVuc2lvbnMubWF4SGVpZ2h0CgkJCX0pOwoKCQkJX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIuY3NzKHsKCQkJCSd3aWR0aCc6ICRvYmplY3Qub3V0ZXJXaWR0aCgpLAoJCQkJJ2hlaWdodCc6ICRvYmplY3Qub3V0ZXJIZWlnaHQoKSwKCQkJCSdtYXgtd2lkdGgnOiAnMTAwJScKCQkJfSk7CgoJCQlfc2VsZi5vYmplY3RzLmNhc2UuY3NzKHsKCQkJCSd3aWR0aCc6IF9zZWxmLm9iamVjdHMuY29udGVudElubmVyLm91dGVyV2lkdGgoKQoJCQl9KTsKCgkJCS8vIEFkanVzdCBtYXJnaW4KCQkJX3NlbGYub2JqZWN0cy5jYXNlLmNzcyh7CgkJCQknbWFyZ2luLXRvcCc6IHBhcnNlSW50KC0oX3NlbGYub2JqZWN0cy5jYXNlLm91dGVySGVpZ2h0KCkgLyAyKSksCgkJCQknbWFyZ2luLWxlZnQnOiBwYXJzZUludCgtKF9zZWxmLm9iamVjdHMuY2FzZS5vdXRlcldpZHRoKCkgLyAyKSkKCQkJfSk7CgkJfSwKCgkJLyoqCgkJICogSGFuZGxlcyB0aGUgX2xvYWRpbmcKCQkgKgoJCSAqIEBwYXJhbQl7c3RyaW5nfQlwcm9jZXNzCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfbG9hZGluZzogZnVuY3Rpb24gKHByb2Nlc3MpIHsKCQkJaWYgKHByb2Nlc3MgPT09ICdzdGFydCcpIHsKCQkJCV9zZWxmLm9iamVjdHMuY2FzZS5hZGRDbGFzcyhfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdsb2FkaW5nJyk7CgkJCQlfc2VsZi5vYmplY3RzLmxvYWRpbmcuc2hvdygpOwoJCQl9IGVsc2UgaWYgKHByb2Nlc3MgPT09ICdlbmQnKSB7CgkJCQlfc2VsZi5vYmplY3RzLmNhc2UucmVtb3ZlQ2xhc3MoX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAnbG9hZGluZycpOwoJCQkJX3NlbGYub2JqZWN0cy5sb2FkaW5nLmhpZGUoKTsKCQkJfQoJCX0sCgoKCQkvKioKCQkgKiBHZXRzIHRoZSBjbGllbnQgc2NyZWVuIGRpbWVuc2lvbnMKCQkgKgoJCSAqIEByZXR1cm4Je29iamVjdH0JZGltZW5zaW9ucwoJCSAqLwoJCWdldFZpZXdwb3J0RGltZW5zaW9uczogZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gewoJCQkJd2luZG93V2lkdGg6ICQod2luZG93KS5pbm5lcldpZHRoKCksCgkJCQl3aW5kb3dIZWlnaHQ6ICQod2luZG93KS5pbm5lckhlaWdodCgpCgkJCX07CgkJfSwKCgkJLyoqCgkJICogVmVyaWZpZXMgdGhlIHVybAoJCSAqCgkJICogQHBhcmFtCXtzdHJpbmd9CWRhdGFVcmwKCQkgKiBAcmV0dXJuCXtvYmplY3R9CWRhdGFVcmwJQ2xlYW4gdXJsIGZvciBwcm9jZXNzaW5nIGNvbnRlbnQKCQkgKi8KCQlfdmVyaWZ5RGF0YVVybDogZnVuY3Rpb24gKGRhdGFVcmwpIHsKCQkJaWYgKCFkYXRhVXJsIHx8IGRhdGFVcmwgPT09IHVuZGVmaW5lZCB8fCBkYXRhVXJsID09PSAnJykgewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgoJCQlpZiAoZGF0YVVybC5pbmRleE9mKCcjJykgPiAtMSkgewoJCQkJZGF0YVVybCA9IGRhdGFVcmwuc3BsaXQoJyMnKTsKCQkJCWRhdGFVcmwgPSAnIycgKyBkYXRhVXJsW2RhdGFVcmwubGVuZ3RoIC0gMV07CgkJCX0KCgkJCXJldHVybiBfc2VsZi5fbm9ybWFsaXplVXJsKGRhdGFVcmwudG9TdHJpbmcoKSk7CgkJfSwKCgkJLyoqCgkJICogVmVyaWZpZXMgdGhlIGRhdGEgdHlwZSBvZiB0aGUgY29udGVudCB0byBsb2FkCgkJICoKCQkgKiBAcGFyYW0Je3N0cmluZ30JCQl1cmwKCQkgKiBAcmV0dXJuCXtzdHJpbmd8Ym9vbGVhbn0JQXJyYXkga2V5IGlmIGV4cHJlc3Npb24gbWF0Y2hlZCwgZWxzZSBmYWxzZQoJCSAqLwoJCV92ZXJpZnlEYXRhVHlwZTogZnVuY3Rpb24gKHVybCkgewoJCQl2YXIgdHlwZU1hcHBpbmcgPSBfc2VsZi5zZXR0aW5ncy50eXBlTWFwcGluZzsKCgkJCS8vIEVhcmx5IGFib3J0IGlmIGRhdGFVcmwgY291bGRuJ3QgYmUgdmVyaWZpZWQKCQkJaWYgKCF1cmwpIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoKCQkJLy8gVmVyaWZ5IHRoZSBkYXRhVHlwZSBvZiB1cmwgYWNjb3JkaW5nIHRvIHR5cGVNYXBwaW5nIHdoaWNoCgkJCS8vIGhhcyBiZWVuIGRlZmluZWQgaW4gc2V0dGluZ3MuCgkJCWZvciAodmFyIGtleSBpbiB0eXBlTWFwcGluZykgewoJCQkJaWYgKHR5cGVNYXBwaW5nLmhhc093blByb3BlcnR5KGtleSkpIHsKCQkJCQl2YXIgc3VmZml4QXJyID0gdHlwZU1hcHBpbmdba2V5XS5zcGxpdCgnLCcpOwoKCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHN1ZmZpeEFyci5sZW5ndGg7IGkrKykgewoJCQkJCQl2YXIgc3VmZml4ID0gc3VmZml4QXJyW2ldLnRvTG93ZXJDYXNlKCksCgkJCQkJCQlyZWdleHAgPSBuZXcgUmVnRXhwKCdcLignICsgc3VmZml4ICsgJykkJywgJ2knKSwKCQkJCQkJCS8vIFZlcmlmeSBvbmx5IHRoZSBsYXN0IDUgY2hhcmFjdGVycyBvZiB0aGUgc3RyaW5nCgkJCQkJCQlzdHIgPSB1cmwudG9Mb3dlckNhc2UoKS5zcGxpdCgnPycpWzBdLnN1YnN0cigtNSk7CgoJCQkJCQlpZiAocmVnZXhwLnRlc3Qoc3RyKSA9PT0gdHJ1ZSB8fCAoa2V5ID09PSAnaW5saW5lJyAmJiAodXJsLmluZGV4T2Yoc3VmZml4KSA+IC0xKSkpIHsKCQkJCQkJCXJldHVybiBrZXk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIElmIG5vIGV4cHJlc3Npb24gbWF0Y2hlZCwgcmV0dXJuICdpZnJhbWUnLgoJCQlyZXR1cm4gJ2lmcmFtZSc7CgkJfSwKCgkJLyoqCgkJICogRXh0ZW5kcyBodG1sIG1hcmt1cCB3aXRoIHRoZSBlc3NlbnRpYWwgdGFncwoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfYWRkRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsKCQkJaWYgKHR5cGVvZiBfc2VsZi5vYmplY3RzLmNhc2UgIT09ICd1bmRlZmluZWQnICYmICQoJyMnICsgX3NlbGYub2JqZWN0cy5jYXNlLmF0dHIoJ2lkJykpLmxlbmd0aCkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQlfc2VsZi5zZXR0aW5ncy5tYXJrdXAoKTsKCQl9LAoKCQkvKioKCQkgKiBTaG93cyB0aGUgbG9hZGVkIGNvbnRlbnQKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfc2hvd0NvbnRlbnQ6IGZ1bmN0aW9uICgkb2JqZWN0KSB7CgkJCS8vIEFkZCBkYXRhIGF0dHJpYnV0ZSB3aXRoIHRoZSBvYmplY3QgdHlwZQoJCQlfc2VsZi5vYmplY3RzLmNhc2UuYXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgndHlwZScpLCBfc2VsZi5vYmplY3REYXRhLnR5cGUpOwoKCQkJX3NlbGYuY2FjaGUub2JqZWN0ID0gJG9iamVjdDsKCQkJX3NlbGYuX2NhbGN1bGF0ZURpbWVuc2lvbnMoJG9iamVjdCk7CgoJCQkvLyBDYWxsIG9uRmluaXNoIGhvb2sgZnVuY3Rpb25zCgkJCV9zZWxmLl9jYWxsSG9va3MoX3NlbGYuc2V0dGluZ3Mub25GaW5pc2gpOwoKCQkJc3dpdGNoIChfc2VsZi5zZXR0aW5ncy50cmFuc2l0aW9uSW4pIHsKCQkJCWNhc2UgJ3Njcm9sbFRvcCc6CgkJCQljYXNlICdzY3JvbGxSaWdodCc6CgkJCQljYXNlICdzY3JvbGxCb3R0b20nOgoJCQkJY2FzZSAnc2Nyb2xsTGVmdCc6CgkJCQljYXNlICdzY3JvbGxIb3Jpem9udGFsJzoKCQkJCWNhc2UgJ3Njcm9sbFZlcnRpY2FsJzoKCQkJCQlfc2VsZi50cmFuc2l0aW9uLnNjcm9sbChfc2VsZi5vYmplY3RzLmNhc2UsICdpbicsIF9zZWxmLnNldHRpbmdzLnNwZWVkSW4pOwoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNvbnRlbnRJbm5lciwgJ2luJywgX3NlbGYuc2V0dGluZ3Muc3BlZWRJbik7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdlbGFzdGljJzoKCQkJCQlpZiAoX3NlbGYub2JqZWN0cy5jYXNlLmNzcygnb3BhY2l0eScpIDwgMSkgewoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLnpvb20oX3NlbGYub2JqZWN0cy5jYXNlLCAnaW4nLCBfc2VsZi5zZXR0aW5ncy5zcGVlZEluKTsKCQkJCQkJX3NlbGYudHJhbnNpdGlvbi5mYWRlKF9zZWxmLm9iamVjdHMuY29udGVudElubmVyLCAnaW4nLCBfc2VsZi5zZXR0aW5ncy5zcGVlZEluKTsKCQkJCQl9CgkJCQljYXNlICdmYWRlJzoKCQkJCWNhc2UgJ2ZhZGVJbmxpbmUnOgoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdpbicsIF9zZWxmLnNldHRpbmdzLnNwZWVkSW4pOwoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNvbnRlbnRJbm5lciwgJ2luJywgX3NlbGYuc2V0dGluZ3Muc3BlZWRJbik7CgkJCQkJYnJlYWs7CgkJCQlkZWZhdWx0OgoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdpbicsIDApOwoJCQkJCWJyZWFrOwoJCQl9CgoJCQkvLyBFbmQgbG9hZGluZy4KCQkJX3NlbGYuX2xvYWRpbmcoJ2VuZCcpOwoJCQlfc2VsZi5pc0J1c3kgPSBmYWxzZTsKCQl9LAoKCQkvKioKCQkgKiBQcm9jZXNzZXMgdGhlIGNvbnRlbnQgdG8gc2hvdwoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfcHJvY2Vzc0NvbnRlbnQ6IGZ1bmN0aW9uICgpIHsKCQkJX3NlbGYuaXNCdXN5ID0gdHJ1ZTsKCgkJCXN3aXRjaCAoX3NlbGYuc2V0dGluZ3MudHJhbnNpdGlvbk91dCkgewoJCQkJY2FzZSAnc2Nyb2xsVG9wJzoKCQkJCWNhc2UgJ3Njcm9sbFJpZ2h0JzoKCQkJCWNhc2UgJ3Njcm9sbEJvdHRvbSc6CgkJCQljYXNlICdzY3JvbGxMZWZ0JzoKCQkJCWNhc2UgJ3Njcm9sbFZlcnRpY2FsJzoKCQkJCWNhc2UgJ3Njcm9sbEhvcml6b250YWwnOgoJCQkJCWlmIChfc2VsZi5vYmplY3RzLmNhc2UuaXMoJzpoaWRkZW4nKSkgewoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLmZhZGUoX3NlbGYub2JqZWN0cy5jYXNlLCAnb3V0JywgMCwgMCwgZnVuY3Rpb24gKCkgewoJCQkJCQkJX3NlbGYuX2xvYWRDb250ZW50KCk7CgkJCQkJCX0pOwoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLmZhZGUoX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIsICdvdXQnLCAwKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLnNjcm9sbChfc2VsZi5vYmplY3RzLmNhc2UsICdvdXQnLCBfc2VsZi5zZXR0aW5ncy5zcGVlZE91dCwgZnVuY3Rpb24gKCkgewoJCQkJCQkJX3NlbGYuX2xvYWRDb250ZW50KCk7CgkJCQkJCX0pOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCWNhc2UgJ2ZhZGUnOgoJCQkJCWlmIChfc2VsZi5vYmplY3RzLmNhc2UuaXMoJzpoaWRkZW4nKSkgewoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLmZhZGUoX3NlbGYub2JqZWN0cy5jYXNlLCAnb3V0JywgMCwgMCwgZnVuY3Rpb24gKCkgewoJCQkJCQkJX3NlbGYuX2xvYWRDb250ZW50KCk7CgkJCQkJCX0pOwoJCQkJCX0gZWxzZSB7CgkJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdvdXQnLCBfc2VsZi5zZXR0aW5ncy5zcGVlZE91dCwgMCwgZnVuY3Rpb24gKCkgewoJCQkJCQkJX3NlbGYuX2xvYWRDb250ZW50KCk7CgkJCQkJCX0pOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCWNhc2UgJ2ZhZGVJbmxpbmUnOgoJCQkJY2FzZSAnZWxhc3RpYyc6CgkJCQkJaWYgKF9zZWxmLm9iamVjdHMuY2FzZS5pcygnOmhpZGRlbicpKSB7CgkJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdvdXQnLCAwLCAwLCBmdW5jdGlvbiAoKSB7CgkJCQkJCQlfc2VsZi5fbG9hZENvbnRlbnQoKTsKCQkJCQkJfSk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJX3NlbGYudHJhbnNpdGlvbi5mYWRlKF9zZWxmLm9iamVjdHMuY29udGVudElubmVyLCAnb3V0JywgX3NlbGYuc2V0dGluZ3Muc3BlZWRPdXQsIDAsIGZ1bmN0aW9uICgpIHsKCQkJCQkJCV9zZWxmLl9sb2FkQ29udGVudCgpOwoJCQkJCQl9KTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQlkZWZhdWx0OgoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdvdXQnLCAwLCAwLCBmdW5jdGlvbiAoKSB7CgkJCQkJCV9zZWxmLl9sb2FkQ29udGVudCgpOwoJCQkJCX0pOwoJCQkJCWJyZWFrOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogSGFuZGxlcyBldmVudHMgZm9yIGdhbGxlcnkgYnV0dG9ucwoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfaGFuZGxlRXZlbnRzOiBmdW5jdGlvbiAoKSB7CgkJCV9zZWxmLl91bmJpbmRFdmVudHMoKTsKCgkJCV9zZWxmLm9iamVjdHMubmF2LmNoaWxkcmVuKCkubm90KF9zZWxmLm9iamVjdHMuY2xvc2UpLmhpZGUoKTsKCgkJCS8vIElmIHNsaWRlc2hvdyBpcyBlbmFibGVkLCBzaG93IHBsYXkvcGF1c2UgYW5kIHN0YXJ0IHRpbWVvdXQuCgkJCWlmIChfc2VsZi5pc1NsaWRlc2hvd0VuYWJsZWQoKSkgewoJCQkJLy8gT25seSBzdGFydCB0aGUgdGltZW91dCBpZiBzbGlkZXNob3cgYXV0b3N0YXJ0IGlzIGVuYWJsZWQgYW5kIHNsaWRlc2hvdyBpcyBub3QgcGF1c2luZwoJCQkJaWYgKAoJCQkJCShfc2VsZi5zZXR0aW5ncy5zbGlkZXNob3dBdXRvU3RhcnQgPT09IHRydWUgfHwgX3NlbGYuaXNTbGlkZXNob3dTdGFydGVkKSAmJgoJCQkJCSFfc2VsZi5vYmplY3RzLm5hdi5oYXNDbGFzcyhfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdwYXVzZWQnKQoJCQkJKSB7CgkJCQkJX3NlbGYuX3N0YXJ0VGltZW91dCgpOwoJCQkJfSBlbHNlIHsKCQkJCQlfc2VsZi5fc3RvcFRpbWVvdXQoKTsKCQkJCX0KCQkJfQoKCQkJaWYgKF9zZWxmLnNldHRpbmdzLmxpdmVSZXNpemUpIHsKCQkJCV9zZWxmLl93YXRjaFJlc2l6ZUludGVyYWN0aW9uKCk7CgkJCX0KCgkJCV9zZWxmLm9iamVjdHMuY2xvc2UuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7CgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJX3NlbGYuY2xvc2UoKTsKCQkJfSk7CgoJCQlpZiAoX3NlbGYuc2V0dGluZ3MuY2xvc2VPbk92ZXJsYXlDbGljayA9PT0gdHJ1ZSkgewoJCQkJX3NlbGYub2JqZWN0cy5vdmVybGF5LmNzcygnY3Vyc29yJywgJ3BvaW50ZXInKS5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCQlfc2VsZi5jbG9zZSgpOwoJCQkJfSk7CgkJCX0KCgkJCWlmIChfc2VsZi5zZXR0aW5ncy51c2VLZXlzID09PSB0cnVlKSB7CgkJCQlfc2VsZi5fYWRkS2V5RXZlbnRzKCk7CgkJCX0KCgkJCWlmIChfc2VsZi5vYmplY3REYXRhLmlzUGFydE9mU2VxdWVuY2UpIHsKCQkJCV9zZWxmLm9iamVjdHMubmF2LmF0dHIoX3NlbGYuX3ByZWZpeEF0dHJpYnV0ZU5hbWUoJ2lzcGFydG9mc2VxdWVuY2UnKSwgdHJ1ZSk7CgkJCQlfc2VsZi5vYmplY3RzLm5hdi5kYXRhKCdpdGVtcycsIF9zZWxmLl9zZXROYXZpZ2F0aW9uKCkpOwoKCQkJCV9zZWxmLm9iamVjdHMucHJldi5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCQlpZiAoX3NlbGYuc2V0dGluZ3MubmF2aWdhdGVFbmRsZXNzID09PSB0cnVlIHx8ICFfc2VsZi5pdGVtLmlzRmlyc3QoKSkgewoJCQkJCQlfc2VsZi5vYmplY3RzLnByZXYudW5iaW5kKCdjbGljaycpOwoJCQkJCQlfc2VsZi5jYWNoZS5hY3Rpb24gPSAncHJldic7CgkJCQkJCV9zZWxmLm9iamVjdHMubmF2LmRhdGEoJ2l0ZW1zJykucHJldi5jbGljaygpOwoKCQkJCQkJaWYgKF9zZWxmLmlzU2xpZGVzaG93RW5hYmxlZCgpKSB7CgkJCQkJCQlfc2VsZi5fc3RvcFRpbWVvdXQoKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0pOwoKCQkJCV9zZWxmLm9iamVjdHMubmV4dC5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCQlpZiAoX3NlbGYuc2V0dGluZ3MubmF2aWdhdGVFbmRsZXNzID09PSB0cnVlIHx8ICFfc2VsZi5pdGVtLmlzTGFzdCgpKSB7CgkJCQkJCV9zZWxmLm9iamVjdHMubmV4dC51bmJpbmQoJ2NsaWNrJyk7CgkJCQkJCV9zZWxmLmNhY2hlLmFjdGlvbiA9ICduZXh0JzsKCQkJCQkJX3NlbGYub2JqZWN0cy5uYXYuZGF0YSgnaXRlbXMnKS5uZXh0LmNsaWNrKCk7CgoJCQkJCQlpZiAoX3NlbGYuaXNTbGlkZXNob3dFbmFibGVkKCkpIHsKCQkJCQkJCV9zZWxmLl9zdG9wVGltZW91dCgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfSk7CgoJCQkJaWYgKF9zZWxmLmlzU2xpZGVzaG93RW5hYmxlZCgpKSB7CgkJCQkJX3NlbGYub2JqZWN0cy5wbGF5LmNsaWNrKGZ1bmN0aW9uIChldmVudCkgewoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJCQlfc2VsZi5fc3RhcnRUaW1lb3V0KCk7CgkJCQkJfSk7CgkJCQkJX3NlbGYub2JqZWN0cy5wYXVzZS5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKCQkJCQkJX3NlbGYuX3N0b3BUaW1lb3V0KCk7CgkJCQkJfSk7CgkJCQl9CgoJCQkJLy8gRW5hYmxlIHN3aXBpbmcgaWYgYWN0aXZhdGVkCgkJCQlpZiAoX3NlbGYuc2V0dGluZ3Muc3dpcGUgPT09IHRydWUpIHsKCQkJCQlpZiAoJC5pc1BsYWluT2JqZWN0KCQuZXZlbnQuc3BlY2lhbC5zd2lwZWxlZnQpKSB7CgkJCQkJCV9zZWxmLm9iamVjdHMuY2FzZS5vbignc3dpcGVsZWZ0JywgZnVuY3Rpb24gKGV2ZW50KSB7CgkJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJCQkJX3NlbGYub2JqZWN0cy5uZXh0LmNsaWNrKCk7CgkJCQkJCQlpZiAoX3NlbGYuaXNTbGlkZXNob3dFbmFibGVkKCkpIHsKCQkJCQkJCQlfc2VsZi5fc3RvcFRpbWVvdXQoKTsKCQkJCQkJCX0KCQkJCQkJfSk7CgkJCQkJfQoJCQkJCWlmICgkLmlzUGxhaW5PYmplY3QoJC5ldmVudC5zcGVjaWFsLnN3aXBlcmlnaHQpKSB7CgkJCQkJCV9zZWxmLm9iamVjdHMuY2FzZS5vbignc3dpcGVyaWdodCcsIGZ1bmN0aW9uIChldmVudCkgewoJCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKCQkJCQkJCV9zZWxmLm9iamVjdHMucHJldi5jbGljaygpOwoJCQkJCQkJaWYgKF9zZWxmLmlzU2xpZGVzaG93RW5hYmxlZCgpKSB7CgkJCQkJCQkJX3NlbGYuX3N0b3BUaW1lb3V0KCk7CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0sCgoJCS8qKgoJCSAqIEFkZHMgdGhlIGtleSBldmVudHMKCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX2FkZEtleUV2ZW50czogZnVuY3Rpb24gKCkgewoJCQkkKGRvY3VtZW50KS5iaW5kKCdrZXl1cC5saWdodGNhc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHsKCQkJCS8vIERvIG5vdGhpbmcgaWYgbGlnaHRjYXNlIGlzIGluIHByb2Nlc3MKCQkJCWlmIChfc2VsZi5pc0J1c3kpIHsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJc3dpdGNoIChldmVudC5rZXlDb2RlKSB7CgkJCQkJLy8gRXNjYXBlIGtleQoJCQkJCWNhc2UgMjc6CgkJCQkJCV9zZWxmLm9iamVjdHMuY2xvc2UuY2xpY2soKTsKCQkJCQkJYnJlYWs7CgkJCQkJLy8gQmFja3dhcmQga2V5CgkJCQkJY2FzZSAzNzoKCQkJCQkJaWYgKF9zZWxmLm9iamVjdERhdGEuaXNQYXJ0T2ZTZXF1ZW5jZSkgewoJCQkJCQkJX3NlbGYub2JqZWN0cy5wcmV2LmNsaWNrKCk7CgkJCQkJCX0KCQkJCQkJYnJlYWs7CgkJCQkJLy8gRm9yd2FyZCBrZXkKCQkJCQljYXNlIDM5OgoJCQkJCQlpZiAoX3NlbGYub2JqZWN0RGF0YS5pc1BhcnRPZlNlcXVlbmNlKSB7CgkJCQkJCQlfc2VsZi5vYmplY3RzLm5leHQuY2xpY2soKTsKCQkJCQkJfQoJCQkJCQlicmVhazsKCQkJCX0KCQkJfSk7CgkJfSwKCgkJLyoqCgkJICogU3RhcnRzIHRoZSBzbGlkZXNob3cgdGltZW91dAoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfc3RhcnRUaW1lb3V0OiBmdW5jdGlvbiAoKSB7CgkJCV9zZWxmLmlzU2xpZGVzaG93U3RhcnRlZCA9IHRydWU7CgoJCQlfc2VsZi5vYmplY3RzLnBsYXkuaGlkZSgpOwoJCQlfc2VsZi5vYmplY3RzLnBhdXNlLnNob3coKTsKCgkJCV9zZWxmLmNhY2hlLmFjdGlvbiA9ICduZXh0JzsKCQkJX3NlbGYub2JqZWN0cy5uYXYucmVtb3ZlQ2xhc3MoX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAncGF1c2VkJyk7CgoJCQlfc2VsZi50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQlfc2VsZi5vYmplY3RzLm5hdi5kYXRhKCdpdGVtcycpLm5leHQuY2xpY2soKTsKCQkJfSwgX3NlbGYuc2V0dGluZ3MudGltZW91dCk7CgkJfSwKCgkJLyoqCgkJICogU3RvcHMgdGhlIHNsaWRlc2hvdyB0aW1lb3V0CgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCV9zdG9wVGltZW91dDogZnVuY3Rpb24gKCkgewoJCQlfc2VsZi5vYmplY3RzLnBsYXkuc2hvdygpOwoJCQlfc2VsZi5vYmplY3RzLnBhdXNlLmhpZGUoKTsKCgkJCV9zZWxmLm9iamVjdHMubmF2LmFkZENsYXNzKF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ3BhdXNlZCcpOwoKCQkJY2xlYXJUaW1lb3V0KF9zZWxmLnRpbWVvdXQpOwoJCX0sCgoJCS8qKgoJCSAqIFNldHMgdGhlIG5hdmlnYXRvciBidXR0b25zIChwcmV2L25leHQpCgkJICoKCQkgKiBAcmV0dXJuCXtvYmplY3R9CWl0ZW1zCgkJICovCgkJX3NldE5hdmlnYXRpb246IGZ1bmN0aW9uICgpIHsKCQkJdmFyICRsaW5rcyA9ICQoKF9zZWxmLmNhY2hlLnNlbGVjdG9yIHx8IF9zZWxmLnNldHRpbmdzLmF0dHIpKSwKCQkJCXNlcXVlbmNlTGVuZ3RoID0gX3NlbGYub2JqZWN0RGF0YS5zZXF1ZW5jZUxlbmd0aCAtIDEsCgkJCQlpdGVtcyA9IHsKCQkJCQlwcmV2OiAkbGlua3MuZXEoX3NlbGYub2JqZWN0RGF0YS5wcmV2SW5kZXgpLAoJCQkJCW5leHQ6ICRsaW5rcy5lcShfc2VsZi5vYmplY3REYXRhLm5leHRJbmRleCkKCQkJCX07CgoJCQlpZiAoX3NlbGYub2JqZWN0RGF0YS5jdXJyZW50SW5kZXggPiAwKSB7CgkJCQlfc2VsZi5vYmplY3RzLnByZXYuc2hvdygpOwoJCQl9IGVsc2UgewoJCQkJaXRlbXMucHJldkl0ZW0gPSAkbGlua3MuZXEoc2VxdWVuY2VMZW5ndGgpOwoJCQl9CgkJCWlmIChfc2VsZi5vYmplY3REYXRhLm5leHRJbmRleCA8PSBzZXF1ZW5jZUxlbmd0aCkgewoJCQkJX3NlbGYub2JqZWN0cy5uZXh0LnNob3coKTsKCQkJfSBlbHNlIHsKCQkJCWl0ZW1zLm5leHQgPSAkbGlua3MuZXEoMCk7CgkJCX0KCgkJCWlmIChfc2VsZi5zZXR0aW5ncy5uYXZpZ2F0ZUVuZGxlc3MgPT09IHRydWUpIHsKCQkJCV9zZWxmLm9iamVjdHMucHJldi5zaG93KCk7CgkJCQlfc2VsZi5vYmplY3RzLm5leHQuc2hvdygpOwoJCQl9CgoJCQlyZXR1cm4gaXRlbXM7CgkJfSwKCgkJLyoqCgkJICogSXRlbSBpbmZvcm1hdGlvbi9zdGF0dXMKCQkgKgoJCSAqLwoJCWl0ZW06IHsKCQkJLyoqCgkJCSAqIFZlcmlmaWVzIGlmIHRoZSBjdXJyZW50IGl0ZW0gaXMgZmlyc3QgaXRlbS4KCQkJICoKCQkJICogQHJldHVybgl7Ym9vbGVhbn0KCQkJICovCgkJCWlzRmlyc3Q6IGZ1bmN0aW9uICgpIHsKCQkJCXJldHVybiAoX3NlbGYub2JqZWN0RGF0YS5jdXJyZW50SW5kZXggPT09IDApOwoJCQl9LAoKCQkJLyoqCgkJCSAqIFZlcmlmaWVzIGlmIHRoZSBjdXJyZW50IGl0ZW0gaXMgbGFzdCBpdGVtLgoJCQkgKgoJCQkgKiBAcmV0dXJuCXtib29sZWFufQoJCQkgKi8KCQkJaXNMYXN0OiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gKF9zZWxmLm9iamVjdERhdGEuY3VycmVudEluZGV4ID09PSAoX3NlbGYub2JqZWN0RGF0YS5zZXF1ZW5jZUxlbmd0aCAtIDEpKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENsb25lcyB0aGUgb2JqZWN0IGZvciBpbmxpbmUgZWxlbWVudHMKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHJldHVybgl7b2JqZWN0fQkkY2xvbmUKCQkgKi8KCQlfY2xvbmVPYmplY3Q6IGZ1bmN0aW9uICgkb2JqZWN0KSB7CgkJCXZhciAkY2xvbmUgPSAkb2JqZWN0LmNsb25lKCksCgkJCQlvYmplY3RJZCA9ICRvYmplY3QuYXR0cignaWQnKTsKCgkJCS8vIElmIGVsZW1lbnQgaXMgaGlkZGVuLCBjYWNoZSB0aGUgb2JqZWN0IGFuZCByZW1vdmUKCQkJaWYgKCRvYmplY3QuaXMoJzpoaWRkZW4nKSkgewoJCQkJX3NlbGYuX2NhY2hlT2JqZWN0RGF0YSgkb2JqZWN0KTsKCQkJCSRvYmplY3QuYXR0cignaWQnLCBfc2VsZi5zZXR0aW5ncy5pZFByZWZpeCArICd0ZW1wLScgKyBvYmplY3RJZCkuZW1wdHkoKTsKCQkJfSBlbHNlIHsKCQkJCS8vIFByZXZlbnQgZHVwbGljYXRlZCBpZCdzCgkJCQkkY2xvbmUucmVtb3ZlQXR0cignaWQnKTsKCQkJfQoKCQkJcmV0dXJuICRjbG9uZS5zaG93KCk7CgkJfSwKCgkJLyoqCgkJICogVmVyaWZpZXMgaWYgaXQgaXMgYSBtb2JpbGUgZGV2aWNlCgkJICoKCQkgKiBAcmV0dXJuCXtib29sZWFufQoJCSAqLwoJCWlzTW9iaWxlRGV2aWNlOiBmdW5jdGlvbiAoKSB7CgkJCXZhciBkZXZpY2VBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSwKCQkJCWFnZW50SWQgPSBkZXZpY2VBZ2VudC5tYXRjaChfc2VsZi5zZXR0aW5ncy5tb2JpbGVNYXRjaEV4cHJlc3Npb24pOwoKCQkJcmV0dXJuIGFnZW50SWQgPyB0cnVlIDogZmFsc2U7CgkJfSwKCgkJLyoqCgkJICogVmVyaWZpZXMgaWYgY3NzIHRyYW5zaXRpb25zIGFyZSBzdXBwb3J0ZWQKCQkgKgoJCSAqIEByZXR1cm4Je3N0cmluZ3xib29sZWFufQlUaGUgdHJhbnNpdGlvbiBwcmVmaXggaWYgc3VwcG9ydGVkLCBlbHNlIGZhbHNlLgoJCSAqLwoJCWlzVHJhbnNpdGlvblN1cHBvcnRlZDogZnVuY3Rpb24gKCkgewoJCQl2YXIgYm9keSA9ICQoJ2JvZHknKS5nZXQoMCksCgkJCQlpc1RyYW5zaXRpb25TdXBwb3J0ZWQgPSBmYWxzZSwKCQkJCXRyYW5zaXRpb25NYXBwaW5nID0gewoJCQkJCSd0cmFuc2l0aW9uJzogJycsCgkJCQkJJ1dlYmtpdFRyYW5zaXRpb24nOiAnLXdlYmtpdC0nLAoJCQkJCSdNb3pUcmFuc2l0aW9uJzogJy1tb3otJywKCQkJCQknT1RyYW5zaXRpb24nOiAnLW8tJywKCQkJCQknTXNUcmFuc2l0aW9uJzogJy1tcy0nCgkJCQl9OwoKCQkJZm9yICh2YXIga2V5IGluIHRyYW5zaXRpb25NYXBwaW5nKSB7CgkJCQlpZiAodHJhbnNpdGlvbk1hcHBpbmcuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBrZXkgaW4gYm9keS5zdHlsZSkgewoJCQkJCV9zZWxmLnN1cHBvcnQudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25NYXBwaW5nW2tleV07CgkJCQkJaXNUcmFuc2l0aW9uU3VwcG9ydGVkID0gdHJ1ZTsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIGlzVHJhbnNpdGlvblN1cHBvcnRlZDsKCQl9LAoKCQkvKioKCQkgKiBUcmFuc2l0aW9uIHR5cGVzCgkJICoKCQkgKi8KCQl0cmFuc2l0aW9uOiB7CgkJCS8qKgoJCQkgKiBGYWRlcyBpbi9vdXQgdGhlIG9iamVjdAoJCQkgKgoJCQkgKiBAcGFyYW0Je29iamVjdH0JJG9iamVjdAoJCQkgKiBAcGFyYW0Je3N0cmluZ30JdHlwZQoJCQkgKiBAcGFyYW0Je251bWJlcn0Jc3BlZWQKCQkJICogQHBhcmFtCXtudW1iZXJ9CW9wYWNpdHkKCQkJICogQHBhcmFtCXtmdW5jdGlvbn0JY2FsbGJhY2sKCQkJICogQHJldHVybgl7dm9pZH0JCUFuaW1hdGVzIGFuIG9iamVjdAoJCQkgKi8KCQkJZmFkZTogZnVuY3Rpb24gKCRvYmplY3QsIHR5cGUsIHNwZWVkLCBvcGFjaXR5LCBjYWxsYmFjaykgewoJCQkJdmFyIGlzSW5UcmFuc2l0aW9uID0gdHlwZSA9PT0gJ2luJywKCQkJCQlzdGFydFRyYW5zaXRpb24gPSB7fSwKCQkJCQlzdGFydE9wYWNpdHkgPSAkb2JqZWN0LmNzcygnb3BhY2l0eScpLAoJCQkJCWVuZFRyYW5zaXRpb24gPSB7fSwKCQkJCQllbmRPcGFjaXR5ID0gb3BhY2l0eSA/IG9wYWNpdHk6IGlzSW5UcmFuc2l0aW9uID8gMSA6IDA7CgoJCQkJaWYgKCFfc2VsZi5pc09wZW4gJiYgaXNJblRyYW5zaXRpb24pIHJldHVybjsKCgkJCQlzdGFydFRyYW5zaXRpb25bJ29wYWNpdHknXSA9IHN0YXJ0T3BhY2l0eTsKCQkJCWVuZFRyYW5zaXRpb25bJ29wYWNpdHknXSA9IGVuZE9wYWNpdHk7CgoJCQkJJG9iamVjdC5jc3Moc3RhcnRUcmFuc2l0aW9uKS5zaG93KCk7CgoJCQkJLy8gQ3NzIHRyYW5zaXRpb24KCQkJCWlmIChfc2VsZi5zdXBwb3J0LnRyYW5zaXRpb25zKSB7CgkJCQkJZW5kVHJhbnNpdGlvbltfc2VsZi5zdXBwb3J0LnRyYW5zaXRpb24gKyAndHJhbnNpdGlvbiddID0gc3BlZWQgKyAnbXMgZWFzZSc7CgoJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCQkkb2JqZWN0LmNzcyhlbmRUcmFuc2l0aW9uKTsKCgkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCQkJJG9iamVjdC5jc3MoX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9uICsgJ3RyYW5zaXRpb24nLCAnJyk7CgoJCQkJCQkJaWYgKGNhbGxiYWNrICYmIChfc2VsZi5pc09wZW4gfHwgIWlzSW5UcmFuc2l0aW9uKSkgewoJCQkJCQkJCWNhbGxiYWNrKCk7CgkJCQkJCQl9CgkJCQkJCX0sIHNwZWVkKTsKCQkJCQl9LCAxNSk7CgkJCQl9IGVsc2UgewoJCQkJCS8vIEZhbGxiYWNrIHRvIGpzIHRyYW5zaXRpb24KCQkJCQkkb2JqZWN0LnN0b3AoKTsKCQkJCQkkb2JqZWN0LmFuaW1hdGUoZW5kVHJhbnNpdGlvbiwgc3BlZWQsIGNhbGxiYWNrKTsKCQkJCX0KCQkJfSwKCgkJCS8qKgoJCQkgKiBTY3JvbGxzIGluL291dCB0aGUgb2JqZWN0CgkJCSAqCgkJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJCSAqIEBwYXJhbQl7c3RyaW5nfQl0eXBlCgkJCSAqIEBwYXJhbQl7bnVtYmVyfQlzcGVlZAoJCQkgKiBAcGFyYW0Je2Z1bmN0aW9ufQljYWxsYmFjawoJCQkgKiBAcmV0dXJuCXt2b2lkfQkJQW5pbWF0ZXMgYW4gb2JqZWN0CgkJCSAqLwoJCQlzY3JvbGw6IGZ1bmN0aW9uICgkb2JqZWN0LCB0eXBlLCBzcGVlZCwgY2FsbGJhY2spIHsKCQkJCXZhciBpc0luVHJhbnNpdGlvbiA9IHR5cGUgPT09ICdpbicsCgkJCQkJdHJhbnNpdGlvbiA9IGlzSW5UcmFuc2l0aW9uID8gX3NlbGYuc2V0dGluZ3MudHJhbnNpdGlvbkluIDogX3NlbGYuc2V0dGluZ3MudHJhbnNpdGlvbk91dCwKCQkJCQlkaXJlY3Rpb24gPSAnbGVmdCcsCgkJCQkJc3RhcnRUcmFuc2l0aW9uID0ge30sCgkJCQkJc3RhcnRPcGFjaXR5ID0gaXNJblRyYW5zaXRpb24gPyAwIDogMSwKCQkJCQlzdGFydE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJy01MCUnIDogJzUwJScsCgkJCQkJZW5kVHJhbnNpdGlvbiA9IHt9LAoJCQkJCWVuZE9wYWNpdHkgPSBpc0luVHJhbnNpdGlvbiA/IDEgOiAwLAoJCQkJCWVuZE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzUwJScgOiAnLTUwJSc7CgoJCQkJaWYgKCFfc2VsZi5pc09wZW4gJiYgaXNJblRyYW5zaXRpb24pIHJldHVybjsKCgkJCQlzd2l0Y2ggKHRyYW5zaXRpb24pIHsKCQkJCQljYXNlICdzY3JvbGxUb3AnOgoJCQkJCQlkaXJlY3Rpb24gPSAndG9wJzsKCQkJCQkJYnJlYWs7CgkJCQkJY2FzZSAnc2Nyb2xsUmlnaHQnOgoJCQkJCQlzdGFydE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzE1MCUnIDogJzUwJSc7CgkJCQkJCWVuZE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzUwJScgOiAnMTUwJSc7CgkJCQkJCWJyZWFrOwoJCQkJCWNhc2UgJ3Njcm9sbEJvdHRvbSc6CgkJCQkJCWRpcmVjdGlvbiA9ICd0b3AnOwoJCQkJCQlzdGFydE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzE1MCUnIDogJzUwJSc7CgkJCQkJCWVuZE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzUwJScgOiAnMTUwJSc7CgkJCQkJCWJyZWFrOwoJCQkJCWNhc2UgJ3Njcm9sbEhvcml6b250YWwnOgoJCQkJCQlzdGFydE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzE1MCUnIDogJzUwJSc7CgkJCQkJCWVuZE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzUwJScgOiAnLTUwJSc7CgkJCQkJCWJyZWFrOwoJCQkJCWNhc2UgJ3Njcm9sbFZlcnRpY2FsJzoKCQkJCQkJZGlyZWN0aW9uID0gJ3RvcCc7CgkJCQkJCXN0YXJ0T2Zmc2V0ID0gaXNJblRyYW5zaXRpb24gPyAnLTUwJScgOiAnNTAlJzsKCQkJCQkJZW5kT2Zmc2V0ID0gaXNJblRyYW5zaXRpb24gPyAnNTAlJyA6ICcxNTAlJzsKCQkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJaWYgKF9zZWxmLmNhY2hlLmFjdGlvbiA9PT0gJ3ByZXYnKSB7CgkJCQkJc3dpdGNoICh0cmFuc2l0aW9uKSB7CgkJCQkJCWNhc2UgJ3Njcm9sbEhvcml6b250YWwnOgoJCQkJCQkJc3RhcnRPZmZzZXQgPSBpc0luVHJhbnNpdGlvbiA/ICctNTAlJyA6ICc1MCUnOwoJCQkJCQkJZW5kT2Zmc2V0ID0gaXNJblRyYW5zaXRpb24gPyAnNTAlJyA6ICcxNTAlJzsKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlICdzY3JvbGxWZXJ0aWNhbCc6CgkJCQkJCQlzdGFydE9mZnNldCA9IGlzSW5UcmFuc2l0aW9uID8gJzE1MCUnIDogJzUwJSc7CgkJCQkJCQllbmRPZmZzZXQgPSBpc0luVHJhbnNpdGlvbiA/ICc1MCUnIDogJy01MCUnOwoJCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoKCQkJCXN0YXJ0VHJhbnNpdGlvblsnb3BhY2l0eSddID0gc3RhcnRPcGFjaXR5OwoJCQkJc3RhcnRUcmFuc2l0aW9uW2RpcmVjdGlvbl0gPSBzdGFydE9mZnNldDsKCgkJCQllbmRUcmFuc2l0aW9uWydvcGFjaXR5J10gPSBlbmRPcGFjaXR5OwoJCQkJZW5kVHJhbnNpdGlvbltkaXJlY3Rpb25dID0gZW5kT2Zmc2V0OwoKCQkJCSRvYmplY3QuY3NzKHN0YXJ0VHJhbnNpdGlvbikuc2hvdygpOwoKCQkJCS8vIENzcyB0cmFuc2l0aW9uCgkJCQlpZiAoX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9ucykgewoJCQkJCWVuZFRyYW5zaXRpb25bX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9uICsgJ3RyYW5zaXRpb24nXSA9IHNwZWVkICsgJ21zIGVhc2UnOwoKCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCQkJJG9iamVjdC5jc3MoZW5kVHJhbnNpdGlvbik7CgoJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCQkJCSRvYmplY3QuY3NzKF9zZWxmLnN1cHBvcnQudHJhbnNpdGlvbiArICd0cmFuc2l0aW9uJywgJycpOwoKCQkJCQkJCWlmIChjYWxsYmFjayAmJiAoX3NlbGYuaXNPcGVuIHx8ICFpc0luVHJhbnNpdGlvbikpIHsKCQkJCQkJCQljYWxsYmFjaygpOwoJCQkJCQkJfQoJCQkJCQl9LCBzcGVlZCk7CgkJCQkJfSwgMTUpOwoJCQkJfSBlbHNlIHsKCQkJCQkvLyBGYWxsYmFjayB0byBqcyB0cmFuc2l0aW9uCgkJCQkJJG9iamVjdC5zdG9wKCk7CgkJCQkJJG9iamVjdC5hbmltYXRlKGVuZFRyYW5zaXRpb24sIHNwZWVkLCBjYWxsYmFjayk7CgkJCQl9CgkJCX0sCgoJCQkvKioKCQkJICogWm9vbXMgaW4vb3V0IHRoZSBvYmplY3QKCQkJICoKCQkJICogQHBhcmFtCXtvYmplY3R9CSRvYmplY3QKCQkJICogQHBhcmFtCXtzdHJpbmd9CXR5cGUKCQkJICogQHBhcmFtCXtudW1iZXJ9CXNwZWVkCgkJCSAqIEBwYXJhbQl7ZnVuY3Rpb259CWNhbGxiYWNrCgkJCSAqIEByZXR1cm4Je3ZvaWR9CQlBbmltYXRlcyBhbiBvYmplY3QKCQkJICovCgkJCXpvb206IGZ1bmN0aW9uICgkb2JqZWN0LCB0eXBlLCBzcGVlZCwgY2FsbGJhY2spIHsKCQkJCXZhciBpc0luVHJhbnNpdGlvbiA9IHR5cGUgPT09ICdpbicsCgkJCQkJc3RhcnRUcmFuc2l0aW9uID0ge30sCgkJCQkJc3RhcnRPcGFjaXR5ID0gJG9iamVjdC5jc3MoJ29wYWNpdHknKSwKCQkJCQlzdGFydFNjYWxlID0gaXNJblRyYW5zaXRpb24gPyAnc2NhbGUoMC43NSknIDogJ3NjYWxlKDEpJywKCQkJCQllbmRUcmFuc2l0aW9uID0ge30sCgkJCQkJZW5kT3BhY2l0eSA9IGlzSW5UcmFuc2l0aW9uID8gMSA6IDAsCgkJCQkJZW5kU2NhbGUgPSBpc0luVHJhbnNpdGlvbiA/ICdzY2FsZSgxKScgOiAnc2NhbGUoMC43NSknOwoKCQkJCWlmICghX3NlbGYuaXNPcGVuICYmIGlzSW5UcmFuc2l0aW9uKSByZXR1cm47CgoJCQkJc3RhcnRUcmFuc2l0aW9uWydvcGFjaXR5J10gPSBzdGFydE9wYWNpdHk7CgkJCQlzdGFydFRyYW5zaXRpb25bX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9uICsgJ3RyYW5zZm9ybSddID0gc3RhcnRTY2FsZTsKCgkJCQllbmRUcmFuc2l0aW9uWydvcGFjaXR5J10gPSBlbmRPcGFjaXR5OwoKCQkJCSRvYmplY3QuY3NzKHN0YXJ0VHJhbnNpdGlvbikuc2hvdygpOwoKCQkJCS8vIENzcyB0cmFuc2l0aW9uCgkJCQlpZiAoX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9ucykgewoJCQkJCWVuZFRyYW5zaXRpb25bX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9uICsgJ3RyYW5zZm9ybSddID0gZW5kU2NhbGU7CgkJCQkJZW5kVHJhbnNpdGlvbltfc2VsZi5zdXBwb3J0LnRyYW5zaXRpb24gKyAndHJhbnNpdGlvbiddID0gc3BlZWQgKyAnbXMgZWFzZSc7CgoJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCQkkb2JqZWN0LmNzcyhlbmRUcmFuc2l0aW9uKTsKCgkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewoJCQkJCQkJJG9iamVjdC5jc3MoX3NlbGYuc3VwcG9ydC50cmFuc2l0aW9uICsgJ3RyYW5zZm9ybScsICcnKTsKCQkJCQkJCSRvYmplY3QuY3NzKF9zZWxmLnN1cHBvcnQudHJhbnNpdGlvbiArICd0cmFuc2l0aW9uJywgJycpOwoKCQkJCQkJCWlmIChjYWxsYmFjayAmJiAoX3NlbGYuaXNPcGVuIHx8ICFpc0luVHJhbnNpdGlvbikpIHsKCQkJCQkJCQljYWxsYmFjaygpOwoJCQkJCQkJfQoJCQkJCQl9LCBzcGVlZCk7CgkJCQkJfSwgMTUpOwoJCQkJfSBlbHNlIHsKCQkJCQkvLyBGYWxsYmFjayB0byBqcyB0cmFuc2l0aW9uCgkJCQkJJG9iamVjdC5zdG9wKCk7CgkJCQkJJG9iamVjdC5hbmltYXRlKGVuZFRyYW5zaXRpb24sIHNwZWVkLCBjYWxsYmFjayk7CgkJCQl9CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBDYWxscyBhbGwgdGhlIHJlZ2lzdGVyZWQgZnVuY3Rpb25zIG9mIGEgc3BlY2lmaWMgaG9vawoJCSAqCgkJICogQHBhcmFtCXtvYmplY3R9CWhvb2tzCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfY2FsbEhvb2tzOiBmdW5jdGlvbiAoaG9va3MpIHsKCQkJaWYgKHR5cGVvZihob29rcykgPT09ICdvYmplY3QnKSB7CgkJCQkkLmVhY2goaG9va3MsIGZ1bmN0aW9uKGluZGV4LCBob29rKSB7CgkJCQkJaWYgKHR5cGVvZihob29rKSA9PT0gJ2Z1bmN0aW9uJykgewoJCQkJCQlob29rLmNhbGwoX3NlbGYub3JpZ2luKTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENhY2hlcyB0aGUgb2JqZWN0IGRhdGEKCQkgKgoJCSAqIEBwYXJhbQl7b2JqZWN0fQkkb2JqZWN0CgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfY2FjaGVPYmplY3REYXRhOiBmdW5jdGlvbiAoJG9iamVjdCkgewoJCQkkLmRhdGEoJG9iamVjdCwgJ2NhY2hlJywgewoJCQkJaWQ6ICRvYmplY3QuYXR0cignaWQnKSwKCQkJCWNvbnRlbnQ6ICRvYmplY3QuaHRtbCgpCgkJCX0pOwoKCQkJX3NlbGYuY2FjaGUub3JpZ2luYWxPYmplY3QgPSAkb2JqZWN0OwoJCX0sCgoJCS8qKgoJCSAqIFJlc3RvcmVzIHRoZSBvYmplY3QgZnJvbSBjYWNoZQoJCSAqCgkJICogQHJldHVybgl2b2lkCgkJICovCgkJX3Jlc3RvcmVPYmplY3Q6IGZ1bmN0aW9uICgpIHsKCQkJdmFyICRvYmplY3QgPSAkKCdbaWRePSInICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAndGVtcC0iXScpOwoKCQkJJG9iamVjdC5hdHRyKCdpZCcsICQuZGF0YShfc2VsZi5jYWNoZS5vcmlnaW5hbE9iamVjdCwgJ2NhY2hlJykuaWQpOwoJCQkkb2JqZWN0Lmh0bWwoJC5kYXRhKF9zZWxmLmNhY2hlLm9yaWdpbmFsT2JqZWN0LCAnY2FjaGUnKS5jb250ZW50KTsKCQl9LAoKCQkvKioKCQkgKiBFeGVjdXRlcyBmdW5jdGlvbnMgZm9yIGEgd2luZG93IHJlc2l6ZS4KCQkgKiBJdCBzdG9wcyBhbiBldmVudHVhbCB0aW1lb3V0IGFuZCByZWNhbGN1bGF0ZXMgZGltZW5zdGlvbnMuCgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCXJlc2l6ZTogZnVuY3Rpb24gKCkgewoJCQlpZiAoIV9zZWxmLmlzT3BlbikgcmV0dXJuOwoKCQkJaWYgKF9zZWxmLmlzU2xpZGVzaG93RW5hYmxlZCgpKSB7CgkJCQlfc2VsZi5fc3RvcFRpbWVvdXQoKTsKCQkJfQoKCQkJX3NlbGYuZGltZW5zaW9ucyA9IF9zZWxmLmdldFZpZXdwb3J0RGltZW5zaW9ucygpOwoJCQlfc2VsZi5fY2FsY3VsYXRlRGltZW5zaW9ucyhfc2VsZi5jYWNoZS5vYmplY3QpOwoJCX0sCgoJCS8qKgoJCSAqIENhY2hlcyB0aGUgYWN0dWFsIHNjcm9sbCBjb29yZGluYXRlcy4KCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX2NhY2hlU2Nyb2xsUG9zaXRpb246IGZ1bmN0aW9uICgpIHsKCQkJdmFyCSR3aW5kb3cgPSAkKHdpbmRvdyksCgkJCQkkZG9jdW1lbnQgPSAkKGRvY3VtZW50KSwKCQkJCW9mZnNldCA9IHsKCQkJCQkndG9wJzogJHdpbmRvdy5zY3JvbGxUb3AoKSwKCQkJCQknbGVmdCc6ICAkd2luZG93LnNjcm9sbExlZnQoKQoJCQkJfTsKCgkJCV9zZWxmLmNhY2hlLnNjcm9sbFBvc2l0aW9uID0gX3NlbGYuY2FjaGUuc2Nyb2xsUG9zaXRpb24gfHwge307CgoJCQlpZiAoIV9zZWxmLl9hc3NlcnRDb250ZW50SW52aXNpYmxlKCkpIHsKCQkJCV9zZWxmLmNhY2hlLmNhY2hlU2Nyb2xsUG9zaXRpb25Ta2lwcGVkID0gdHJ1ZTsKCQkJfQoJCQllbHNlIGlmIChfc2VsZi5jYWNoZS5jYWNoZVNjcm9sbFBvc2l0aW9uU2tpcHBlZCkgewoJCQkJZGVsZXRlIF9zZWxmLmNhY2hlLmNhY2hlU2Nyb2xsUG9zaXRpb25Ta2lwcGVkOwoJCQkJX3NlbGYuX3Jlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYgKCRkb2N1bWVudC53aWR0aCgpID4gJHdpbmRvdy53aWR0aCgpKSB7CgkJCQkJX3NlbGYuY2FjaGUuc2Nyb2xsUG9zaXRpb24ubGVmdCA9IG9mZnNldC5sZWZ0OwoJCQkJfQoJCQkJaWYgKCRkb2N1bWVudC5oZWlnaHQoKSA+ICR3aW5kb3cuaGVpZ2h0KCkpIHsKCQkJCQlfc2VsZi5jYWNoZS5zY3JvbGxQb3NpdGlvbi50b3AgPSBvZmZzZXQudG9wOwoJCQkJfQoJCQl9CgkJfSwKCgkJLyoqCgkJICogV2F0Y2hlcyBmb3IgYW55IHJlc2l6ZSBpbnRlcmFjdGlvbiBhbmQgY2FjaGVzIHRoZSBuZXcgc2l6ZXMuCgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCV93YXRjaFJlc2l6ZUludGVyYWN0aW9uOiBmdW5jdGlvbiAoKSB7CgkJCSQod2luZG93KS5yZXNpemUoX3NlbGYucmVzaXplKTsKCQl9LAoKCQkvKioKCQkgKiBTdG9wIHdhdGNoaW5nIGFueSByZXNpemUgaW50ZXJhY3Rpb24gcmVsYXRlZCB0byBfc2VsZi4KCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX3Vud2F0Y2hSZXNpemVJbnRlcmFjdGlvbjogZnVuY3Rpb24gKCkgewoJCQkkKHdpbmRvdykub2ZmKCdyZXNpemUnLCBfc2VsZi5yZXNpemUpOwoJCX0sCgoJCS8qKgoJCSAqIFdhdGNoZXMgZm9yIGFueSBzY3JvbGwgaW50ZXJhY3Rpb24gYW5kIGNhY2hlcyB0aGUgbmV3IHBvc2l0aW9uLgoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfd2F0Y2hTY3JvbGxJbnRlcmFjdGlvbjogZnVuY3Rpb24gKCkgewoJCQkkKHdpbmRvdykuc2Nyb2xsKF9zZWxmLl9jYWNoZVNjcm9sbFBvc2l0aW9uKTsKCQkJJCh3aW5kb3cpLnJlc2l6ZShfc2VsZi5fY2FjaGVTY3JvbGxQb3NpdGlvbik7CgkJfSwKCgkJLyoqCgkJICogU3RvcCB3YXRjaGluZyBhbnkgc2Nyb2xsIGludGVyYWN0aW9uIHJlbGF0ZWQgdG8gX3NlbGYuCgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCV91bndhdGNoU2Nyb2xsSW50ZXJhY3Rpb246IGZ1bmN0aW9uICgpIHsKCQkJJCh3aW5kb3cpLm9mZignc2Nyb2xsJywgX3NlbGYuX2NhY2hlU2Nyb2xsUG9zaXRpb24pOwoJCQkkKHdpbmRvdykub2ZmKCdyZXNpemUnLCBfc2VsZi5fY2FjaGVTY3JvbGxQb3NpdGlvbik7CgkJfSwKCgkJLyoqCgkJICogRW5zdXJlcyB0aGF0IHNpdGUgY29udGVudCBpcyBpbnZpc2libGUgb3IgaGFzIG5vdCBoZWlnaHQuCgkJICoKCQkgKiBAcmV0dXJuCXtib29sZWFufQoJCSAqLwoJCV9hc3NlcnRDb250ZW50SW52aXNpYmxlOiBmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCQoJ2JvZHknKS5jaGlsZHJlbigpLm5vdCgnW2lkKj0nICsgX3NlbGYuc2V0dGluZ3MuaWRQcmVmaXggKyAnXScpLmdldCgwKSkuaGVpZ2h0KCkgPiAwOwoJCX0sCgoJCS8qKgoJCSAqIFJlc3RvcmVzIHRvIHRoZSBvcmlnaW5hbCBzY29sbCBwb3NpdGlvbiBiZWZvcmUKCQkgKiBsaWdodGNhc2UgZ290IGluaXRpYWxpemVkLgoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfcmVzdG9yZVNjcm9sbFBvc2l0aW9uOiBmdW5jdGlvbiAoKSB7CgkJCSQod2luZG93KQoJCQkJLnNjcm9sbFRvcChwYXJzZUludChfc2VsZi5jYWNoZS5zY3JvbGxQb3NpdGlvbi50b3ApKQoJCQkJLnNjcm9sbExlZnQocGFyc2VJbnQoX3NlbGYuY2FjaGUuc2Nyb2xsUG9zaXRpb24ubGVmdCkpCgkJCQkucmVzaXplKCk7CgkJfSwKCgkJLyoqCgkJICogU3dpdGNoZXMgdG8gdGhlIGZ1bGxzY3JlZW4gbW9kZQoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfc3dpdGNoVG9GdWxsU2NyZWVuTW9kZTogZnVuY3Rpb24gKCkgewoJCQlfc2VsZi5zZXR0aW5ncy5zaHJpbmtGYWN0b3IgPSAxOwoJCQlfc2VsZi5zZXR0aW5ncy5vdmVybGF5T3BhY2l0eSA9IDE7CgoJCQkkKCdodG1sJykuYWRkQ2xhc3MoX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAnZnVsbFNjcmVlbk1vZGUnKTsKCQl9LAoKCQkvKioKCQkgKiBFbnRlcnMgaW50byB0aGUgbGlnaHRjYXNlIHZpZXcKCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX29wZW46IGZ1bmN0aW9uICgpIHsKCQkJX3NlbGYuaXNPcGVuID0gdHJ1ZTsKCgkJCV9zZWxmLnN1cHBvcnQudHJhbnNpdGlvbnMgPSBfc2VsZi5zZXR0aW5ncy5jc3NUcmFuc2l0aW9ucyA/IF9zZWxmLmlzVHJhbnNpdGlvblN1cHBvcnRlZCgpIDogZmFsc2U7CgkJCV9zZWxmLnN1cHBvcnQubW9iaWxlRGV2aWNlID0gX3NlbGYuaXNNb2JpbGVEZXZpY2UoKTsKCgkJCWlmIChfc2VsZi5zdXBwb3J0Lm1vYmlsZURldmljZSkgewoJCQkJJCgnaHRtbCcpLmFkZENsYXNzKF9zZWxmLnNldHRpbmdzLmNsYXNzUHJlZml4ICsgJ2lzTW9iaWxlRGV2aWNlJyk7CgoJCQkJaWYgKF9zZWxmLnNldHRpbmdzLmZ1bGxTY3JlZW5Nb2RlRm9yTW9iaWxlKSB7CgkJCQkJX3NlbGYuX3N3aXRjaFRvRnVsbFNjcmVlbk1vZGUoKTsKCQkJCX0KCQkJfQoJCQlpZiAoIV9zZWxmLnNldHRpbmdzLnRyYW5zaXRpb25JbikgewoJCQkJX3NlbGYuc2V0dGluZ3MudHJhbnNpdGlvbkluID0gX3NlbGYuc2V0dGluZ3MudHJhbnNpdGlvbjsKCQkJfQoJCQlpZiAoIV9zZWxmLnNldHRpbmdzLnRyYW5zaXRpb25PdXQpIHsKCQkJCV9zZWxmLnNldHRpbmdzLnRyYW5zaXRpb25PdXQgPSBfc2VsZi5zZXR0aW5ncy50cmFuc2l0aW9uOwoJCQl9CgoJCQlzd2l0Y2ggKF9zZWxmLnNldHRpbmdzLnRyYW5zaXRpb25JbikgewoJCQkJY2FzZSAnZmFkZSc6CgkJCQljYXNlICdmYWRlSW5saW5lJzoKCQkJCWNhc2UgJ2VsYXN0aWMnOgoJCQkJY2FzZSAnc2Nyb2xsVG9wJzoKCQkJCWNhc2UgJ3Njcm9sbFJpZ2h0JzoKCQkJCWNhc2UgJ3Njcm9sbEJvdHRvbSc6CgkJCQljYXNlICdzY3JvbGxMZWZ0JzoKCQkJCWNhc2UgJ3Njcm9sbFZlcnRpY2FsJzoKCQkJCWNhc2UgJ3Njcm9sbEhvcml6b250YWwnOgoJCQkJCWlmIChfc2VsZi5vYmplY3RzLmNhc2UuaXMoJzpoaWRkZW4nKSkgewoJCQkJCQlfc2VsZi5vYmplY3RzLmNsb3NlLmNzcygnb3BhY2l0eScsIDApOwoJCQkJCQlfc2VsZi5vYmplY3RzLm92ZXJsYXkuY3NzKCdvcGFjaXR5JywgMCk7CgkJCQkJCV9zZWxmLm9iamVjdHMuY2FzZS5jc3MoJ29wYWNpdHknLCAwKTsKCQkJCQkJX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIuY3NzKCdvcGFjaXR5JywgMCk7CgkJCQkJfQoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLm92ZXJsYXksICdpbicsIF9zZWxmLnNldHRpbmdzLnNwZWVkSW4sIF9zZWxmLnNldHRpbmdzLm92ZXJsYXlPcGFjaXR5LCBmdW5jdGlvbiAoKSB7CgkJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNsb3NlLCAnaW4nLCBfc2VsZi5zZXR0aW5ncy5zcGVlZEluKTsKCQkJCQkJX3NlbGYuX2hhbmRsZUV2ZW50cygpOwoJCQkJCQlfc2VsZi5fcHJvY2Vzc0NvbnRlbnQoKTsKCQkJCQl9KTsKCQkJCQlicmVhazsKCQkJCWRlZmF1bHQ6CgkJCQkJX3NlbGYudHJhbnNpdGlvbi5mYWRlKF9zZWxmLm9iamVjdHMub3ZlcmxheSwgJ2luJywgMCwgX3NlbGYuc2V0dGluZ3Mub3ZlcmxheU9wYWNpdHksIGZ1bmN0aW9uICgpIHsKCQkJCQkJX3NlbGYudHJhbnNpdGlvbi5mYWRlKF9zZWxmLm9iamVjdHMuY2xvc2UsICdpbicsIDApOwoJCQkJCQlfc2VsZi5faGFuZGxlRXZlbnRzKCk7CgkJCQkJCV9zZWxmLl9wcm9jZXNzQ29udGVudCgpOwoJCQkJCX0pOwoJCQkJCWJyZWFrOwoJCQl9CgoJCQkkKCdodG1sJykuYWRkQ2xhc3MoX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAnb3BlbicpOwoJCQlfc2VsZi5vYmplY3RzLmNhc2UuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsKCQl9LAoKCQkvKioKCQkgKiBFc2NhcGVzIGZyb20gdGhlIGxpZ2h0Y2FzZSB2aWV3CgkJICoKCQkgKiBAcmV0dXJuCXt2b2lkfQoJCSAqLwoJCWNsb3NlOiBmdW5jdGlvbiAoKSB7CgkJCV9zZWxmLmlzT3BlbiA9IGZhbHNlOwoKCQkJaWYgKF9zZWxmLmlzU2xpZGVzaG93RW5hYmxlZCgpKSB7CgkJCQlfc2VsZi5fc3RvcFRpbWVvdXQoKTsKCQkJCV9zZWxmLmlzU2xpZGVzaG93U3RhcnRlZCA9IGZhbHNlOwoJCQkJX3NlbGYub2JqZWN0cy5uYXYucmVtb3ZlQ2xhc3MoX3NlbGYuc2V0dGluZ3MuY2xhc3NQcmVmaXggKyAncGF1c2VkJyk7CgkJCX0KCgkJCV9zZWxmLm9iamVjdHMubG9hZGluZy5oaWRlKCk7CgoJCQlfc2VsZi5fdW5iaW5kRXZlbnRzKCk7CgoJCQlfc2VsZi5fdW53YXRjaFJlc2l6ZUludGVyYWN0aW9uKCk7CgkJCV9zZWxmLl91bndhdGNoU2Nyb2xsSW50ZXJhY3Rpb24oKTsKCgkJCSQoJ2h0bWwnKS5yZW1vdmVDbGFzcyhfc2VsZi5zZXR0aW5ncy5jbGFzc1ByZWZpeCArICdvcGVuJyk7CgkJCV9zZWxmLm9iamVjdHMuY2FzZS5hdHRyKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7CgoJCQlfc2VsZi5vYmplY3RzLm5hdi5jaGlsZHJlbigpLmhpZGUoKTsKCgkJCV9zZWxmLl9yZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKCgkJCS8vIENhbGwgb25DbG9zZSBob29rIGZ1bmN0aW9ucwoJCQlfc2VsZi5fY2FsbEhvb2tzKF9zZWxmLnNldHRpbmdzLm9uQ2xvc2UpOwoKCQkJc3dpdGNoIChfc2VsZi5zZXR0aW5ncy50cmFuc2l0aW9uT3V0KSB7CgkJCQljYXNlICdmYWRlJzoKCQkJCWNhc2UgJ2ZhZGVJbmxpbmUnOgoJCQkJY2FzZSAnc2Nyb2xsVG9wJzoKCQkJCWNhc2UgJ3Njcm9sbFJpZ2h0JzoKCQkJCWNhc2UgJ3Njcm9sbEJvdHRvbSc6CgkJCQljYXNlICdzY3JvbGxMZWZ0JzoKCQkJCWNhc2UgJ3Njcm9sbEhvcml6b250YWwnOgoJCQkJY2FzZSAnc2Nyb2xsVmVydGljYWwnOgoJCQkJCV9zZWxmLnRyYW5zaXRpb24uZmFkZShfc2VsZi5vYmplY3RzLmNhc2UsICdvdXQnLCBfc2VsZi5zZXR0aW5ncy5zcGVlZE91dCwgMCwgZnVuY3Rpb24gKCkgewoJCQkJCQlfc2VsZi50cmFuc2l0aW9uLmZhZGUoX3NlbGYub2JqZWN0cy5vdmVybGF5LCAnb3V0JywgX3NlbGYuc2V0dGluZ3Muc3BlZWRPdXQsIDAsIGZ1bmN0aW9uICgpIHsKCQkJCQkJCV9zZWxmLmNsZWFudXAoKTsKCQkJCQkJfSk7CgkJCQkJfSk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdlbGFzdGljJzoKCQkJCQlfc2VsZi50cmFuc2l0aW9uLnpvb20oX3NlbGYub2JqZWN0cy5jYXNlLCAnb3V0JywgX3NlbGYuc2V0dGluZ3Muc3BlZWRPdXQsIGZ1bmN0aW9uICgpIHsKCQkJCQkJX3NlbGYudHJhbnNpdGlvbi5mYWRlKF9zZWxmLm9iamVjdHMub3ZlcmxheSwgJ291dCcsIF9zZWxmLnNldHRpbmdzLnNwZWVkT3V0LCAwLCBmdW5jdGlvbiAoKSB7CgkJCQkJCQlfc2VsZi5jbGVhbnVwKCk7CgkJCQkJCX0pOwoJCQkJCX0pOwoJCQkJCWJyZWFrOwoJCQkJZGVmYXVsdDoKCQkJCQlfc2VsZi5jbGVhbnVwKCk7CgkJCQkJYnJlYWs7CgkJCX0KCQl9LAoKCQkvKioKCQkgKiBVbmJpbmRzIGFsbCBnaXZlbiBldmVudHMKCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX3VuYmluZEV2ZW50czogZnVuY3Rpb24gKCkgewoJCQkvLyBVbmJpbmQgb3ZlcmxheSBldmVudAoJCQlfc2VsZi5vYmplY3RzLm92ZXJsYXkudW5iaW5kKCdjbGljaycpOwoKCQkJLy8gVW5iaW5kIGtleSBldmVudHMKCQkJJChkb2N1bWVudCkudW5iaW5kKCdrZXl1cC5saWdodGNhc2UnKTsKCgkJCS8vIFVuYmluZCBzd2lwZSBldmVudHMKCQkJX3NlbGYub2JqZWN0cy5jYXNlLnVuYmluZCgnc3dpcGVsZWZ0JykudW5iaW5kKCdzd2lwZXJpZ2h0Jyk7CgoJCQkvLyBVbmJpbmQgbmF2aWdhdG9yIGV2ZW50cwoJCQlfc2VsZi5vYmplY3RzLnByZXYudW5iaW5kKCdjbGljaycpOwoJCQlfc2VsZi5vYmplY3RzLm5leHQudW5iaW5kKCdjbGljaycpOwoJCQlfc2VsZi5vYmplY3RzLnBsYXkudW5iaW5kKCdjbGljaycpOwoJCQlfc2VsZi5vYmplY3RzLnBhdXNlLnVuYmluZCgnY2xpY2snKTsKCgkJCS8vIFVuYmluZCBjbG9zZSBldmVudAoJCQlfc2VsZi5vYmplY3RzLmNsb3NlLnVuYmluZCgnY2xpY2snKTsKCQl9LAoKCQkvKioKCQkgKiBDbGVhbnMgdXAgdGhlIGRpbWVuc2lvbnMKCQkgKgoJCSAqIEByZXR1cm4Je3ZvaWR9CgkJICovCgkJX2NsZWFudXBEaW1lbnNpb25zOiBmdW5jdGlvbiAoKSB7CgkJCXZhciBvcGFjaXR5ID0gX3NlbGYub2JqZWN0cy5jb250ZW50SW5uZXIuY3NzKCdvcGFjaXR5Jyk7CgoJCQlfc2VsZi5vYmplY3RzLmNhc2UuY3NzKHsKCQkJCSd3aWR0aCc6ICcnLAoJCQkJJ2hlaWdodCc6ICcnLAoJCQkJJ3RvcCc6ICcnLAoJCQkJJ2xlZnQnOiAnJywKCQkJCSdtYXJnaW4tdG9wJzogJycsCgkJCQknbWFyZ2luLWxlZnQnOiAnJwoJCQl9KTsKCgkJCV9zZWxmLm9iamVjdHMuY29udGVudElubmVyLnJlbW92ZUF0dHIoJ3N0eWxlJykuY3NzKCdvcGFjaXR5Jywgb3BhY2l0eSk7CgkJCV9zZWxmLm9iamVjdHMuY29udGVudElubmVyLmNoaWxkcmVuKCkucmVtb3ZlQXR0cignc3R5bGUnKTsKCQl9LAoKCQkvKioKCQkgKiBDbGVhbnVwIGFmdGVyIGFib3J0aW5nIGxpZ2h0Y2FzZQoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQljbGVhbnVwOiBmdW5jdGlvbiAoKSB7CgkJCV9zZWxmLl9jbGVhbnVwRGltZW5zaW9ucygpOwoKCQkJX3NlbGYub2JqZWN0cy5sb2FkaW5nLmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5vdmVybGF5LmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5jYXNlLmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5wcmV2LmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5uZXh0LmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5wbGF5LmhpZGUoKTsKCQkJX3NlbGYub2JqZWN0cy5wYXVzZS5oaWRlKCk7CgoJCQlfc2VsZi5vYmplY3RzLmNhc2UucmVtb3ZlQXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgndHlwZScpKTsKCQkJX3NlbGYub2JqZWN0cy5uYXYucmVtb3ZlQXR0cihfc2VsZi5fcHJlZml4QXR0cmlidXRlTmFtZSgnaXNwYXJ0b2ZzZXF1ZW5jZScpKTsKCgkJCV9zZWxmLm9iamVjdHMuY29udGVudElubmVyLmVtcHR5KCkuaGlkZSgpOwoJCQlfc2VsZi5vYmplY3RzLmluZm8uY2hpbGRyZW4oKS5lbXB0eSgpOwoKCQkJaWYgKF9zZWxmLmNhY2hlLm9yaWdpbmFsT2JqZWN0KSB7CgkJCQlfc2VsZi5fcmVzdG9yZU9iamVjdCgpOwoJCQl9CgoJCQkvLyBDYWxsIG9uQ2xlYW51cCBob29rIGZ1bmN0aW9ucwoJCQlfc2VsZi5fY2FsbEhvb2tzKF9zZWxmLnNldHRpbmdzLm9uQ2xlYW51cCk7CgoJCQkvLyBSZXN0b3JlIGNhY2hlCgkJCV9zZWxmLmNhY2hlID0ge307CgkJfSwKCgkJLyoqCgkJICogUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1hdGNoIG1lZGlhIG9yIHVuZGVmaW5lZCBpZiB0aGUgYnJvd3NlcgoJCSAqIGRvZXNuJ3Qgc3VwcG9ydCBtYXRjaCBtZWRpYS4KCQkgKgoJCSAqIEByZXR1cm4Je21peGVkfQoJCSAqLwoJCV9tYXRjaE1lZGlhOiBmdW5jdGlvbiAoKSB7CgkJCXJldHVybiB3aW5kb3cubWF0Y2hNZWRpYSB8fCB3aW5kb3cubXNNYXRjaE1lZGlhOwoJCX0sCgoJCS8qKgoJCSAqIFJldHVybnMgdGhlIGRldmljZVBpeGVsUmF0aW8gaWYgc3VwcG9ydGVkLiBFbHNlLCBpdCBzaW1wbHkgcmV0dXJucwoJCSAqIDEgYXMgdGhlIGRlZmF1bHQuCgkJICoKCQkgKiBAcmV0dXJuCXtudW1iZXJ9CgkJICovCgkJX2RldmljZVBpeGVsUmF0aW86IGZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7CgkJfSwKCgkJLyoqCgkJICogQ2hlY2tzIGlmIG1ldGhvZCBpcyBwdWJsaWMKCQkgKgoJCSAqIEByZXR1cm4Je2Jvb2xlYW59CgkJICovCgkJX2lzUHVibGljTWV0aG9kOiBmdW5jdGlvbiAobWV0aG9kKSB7CgkJCXJldHVybiAodHlwZW9mIF9zZWxmW21ldGhvZF0gPT09ICdmdW5jdGlvbicgJiYgbWV0aG9kLmNoYXJBdCgwKSAhPT0gJ18nKTsKCQl9LAoKCQkvKioKCQkgKiBFeHBvcnRzIGFsbCBwdWJsaWMgbWV0aG9kcyB0byBiZSBhY2Nlc3NpYmxlLCBjYWxsYWJsZQoJCSAqIGZyb20gZ2xvYmFsIHNjb3BlLgoJCSAqCgkJICogQHJldHVybgl7dm9pZH0KCQkgKi8KCQlfZXhwb3J0OiBmdW5jdGlvbiAoKSB7CgkJCXdpbmRvdy5saWdodGNhc2UgPSB7fTsKCgkJCSQuZWFjaChfc2VsZiwgZnVuY3Rpb24gKHByb3BlcnR5KSB7CgkJCQlpZiAoX3NlbGYuX2lzUHVibGljTWV0aG9kKHByb3BlcnR5KSkgewoJCQkJCWxpZ2h0Y2FzZVtwcm9wZXJ0eV0gPSBfc2VsZltwcm9wZXJ0eV07CgkJCQl9CgkJCX0pOwoJCX0KCX07CgoJX3NlbGYuX2V4cG9ydCgpOwoKCSQuZm4ubGlnaHRjYXNlID0gZnVuY3Rpb24gKG1ldGhvZCkgewoJCS8vIE1ldGhvZCBjYWxsaW5nIGxvZ2ljIChvbmx5IHB1YmxpYyBtZXRob2RzIGFyZSBhcHBsaWVkKQoJCWlmIChfc2VsZi5faXNQdWJsaWNNZXRob2QobWV0aG9kKSkgewoJCQlyZXR1cm4gX3NlbGZbbWV0aG9kXS5hcHBseSh0aGlzLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTsKCQl9IGVsc2UgaWYgKHR5cGVvZiBtZXRob2QgPT09ICdvYmplY3QnIHx8ICFtZXRob2QpIHsKCQkJcmV0dXJuIF9zZWxmLmluaXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCQl9IGVsc2UgewoJCQkkLmVycm9yKCdNZXRob2QgJyArIG1ldGhvZCArICcgZG9lcyBub3QgZXhpc3Qgb24galF1ZXJ5LmxpZ2h0Y2FzZScpOwoJCX0KCX07Cn0pKGpRdWVyeSk7Cg=="}},"time_used":77,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":74,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/waypoints.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.860Z","timestamp":1785126645860,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/waypoints.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2461\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":8044,"size_decoded":2716,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (7808)","md5":"dfe0eedf8da578f4a4c43b05448c51d9","sha1":"812d7071b4e44b1aa5d5ea6c7ce0b79eb9d46520","sha256":"a0fded691aed767f851011cd3185b928619298a21a0fbdad4808a9e88b490833","sha512":"9084433d6201a0aa45efd1c9bf7c413d08192a3871cea3061b637af2cbef21de39c3dbe9fe14d7a11edc0c44588551212c94ee4866ff737f991e07907cb9b41e","ssdeep":"96:uLBvpnG3nnRh+1pRVKmHyjyYfAPiQc954LT4KN/WzdBUVKdBJEdfdpu531v8L7:uPG3nC19KWssPVpX4KN/eU8Ju4e/","tlshash":"3bf1f9c9b4c7b4221befa0b5d43f060bb33a9e4561098064f194e4da3db4a2da567f38","first_seen":"2023-03-07T01:07:26Z","last_seen":"2026-07-27T08:09:18.514134Z","times_seen":12427,"resource_available":true,"data":"Ly8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjYuMgovKgpqUXVlcnkgV2F5cG9pbnRzIC0gdjIuMC4zCkNvcHlyaWdodCAoYykgMjAxMS0yMDEzIENhbGViIFRyb3VnaHRvbgpEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBhbmQgR1BMIGxpY2Vuc2UuCmh0dHBzOi8vZ2l0aHViLmNvbS9pbWFrZXdlYnRoaW5ncy9qcXVlcnktd2F5cG9pbnRzL2Jsb2IvbWFzdGVyL2xpY2Vuc2VzLnR4dAoqLwooZnVuY3Rpb24oKXt2YXIgdD1bXS5pbmRleE9mfHxmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMubGVuZ3RoO2U8bjtlKyspe2lmKGUgaW4gdGhpcyYmdGhpc1tlXT09PXQpcmV0dXJuIGV9cmV0dXJuLTF9LGU9W10uc2xpY2U7KGZ1bmN0aW9uKHQsZSl7aWYodHlwZW9mIGRlZmluZT09PSJmdW5jdGlvbiImJmRlZmluZS5hbWQpe3JldHVybiBkZWZpbmUoIndheXBvaW50cyIsWyJqcXVlcnkiXSxmdW5jdGlvbihuKXtyZXR1cm4gZShuLHQpfSl9ZWxzZXtyZXR1cm4gZSh0LmpRdWVyeSx0KX19KSh0aGlzLGZ1bmN0aW9uKG4scil7dmFyIGksbyxsLHMsZix1LGEsYyxoLGQscCx5LHYsdyxnLG07aT1uKHIpO2M9dC5jYWxsKHIsIm9udG91Y2hzdGFydCIpPj0wO3M9e2hvcml6b250YWw6e30sdmVydGljYWw6e319O2Y9MTthPXt9O3U9IndheXBvaW50cy1jb250ZXh0LWlkIjtwPSJyZXNpemUud2F5cG9pbnRzIjt5PSJzY3JvbGwud2F5cG9pbnRzIjt2PTE7dz0id2F5cG9pbnRzLXdheXBvaW50LWlkcyI7Zz0id2F5cG9pbnQiO209IndheXBvaW50cyI7bz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLiRlbGVtZW50PXQ7dGhpcy5lbGVtZW50PXRbMF07dGhpcy5kaWRSZXNpemU9ZmFsc2U7dGhpcy5kaWRTY3JvbGw9ZmFsc2U7dGhpcy5pZD0iY29udGV4dCIrZisrO3RoaXMub2xkU2Nyb2xsPXt4OnQuc2Nyb2xsTGVmdCgpLHk6dC5zY3JvbGxUb3AoKX07dGhpcy53YXlwb2ludHM9e2hvcml6b250YWw6e30sdmVydGljYWw6e319O3QuZGF0YSh1LHRoaXMuaWQpO2FbdGhpcy5pZF09dGhpczt0LmJpbmQoeSxmdW5jdGlvbigpe3ZhciB0O2lmKCEoZS5kaWRTY3JvbGx8fGMpKXtlLmRpZFNjcm9sbD10cnVlO3Q9ZnVuY3Rpb24oKXtlLmRvU2Nyb2xsKCk7cmV0dXJuIGUuZGlkU2Nyb2xsPWZhbHNlfTtyZXR1cm4gci5zZXRUaW1lb3V0KHQsblttXS5zZXR0aW5ncy5zY3JvbGxUaHJvdHRsZSl9fSk7dC5iaW5kKHAsZnVuY3Rpb24oKXt2YXIgdDtpZighZS5kaWRSZXNpemUpe2UuZGlkUmVzaXplPXRydWU7dD1mdW5jdGlvbigpe25bbV0oInJlZnJlc2giKTtyZXR1cm4gZS5kaWRSZXNpemU9ZmFsc2V9O3JldHVybiByLnNldFRpbWVvdXQodCxuW21dLnNldHRpbmdzLnJlc2l6ZVRocm90dGxlKX19KX10LnByb3RvdHlwZS5kb1Njcm9sbD1mdW5jdGlvbigpe3ZhciB0LGU9dGhpczt0PXtob3Jpem9udGFsOntuZXdTY3JvbGw6dGhpcy4kZWxlbWVudC5zY3JvbGxMZWZ0KCksb2xkU2Nyb2xsOnRoaXMub2xkU2Nyb2xsLngsZm9yd2FyZDoicmlnaHQiLGJhY2t3YXJkOiJsZWZ0In0sdmVydGljYWw6e25ld1Njcm9sbDp0aGlzLiRlbGVtZW50LnNjcm9sbFRvcCgpLG9sZFNjcm9sbDp0aGlzLm9sZFNjcm9sbC55LGZvcndhcmQ6ImRvd24iLGJhY2t3YXJkOiJ1cCJ9fTtpZihjJiYoIXQudmVydGljYWwub2xkU2Nyb2xsfHwhdC52ZXJ0aWNhbC5uZXdTY3JvbGwpKXtuW21dKCJyZWZyZXNoIil9bi5lYWNoKHQsZnVuY3Rpb24odCxyKXt2YXIgaSxvLGw7bD1bXTtvPXIubmV3U2Nyb2xsPnIub2xkU2Nyb2xsO2k9bz9yLmZvcndhcmQ6ci5iYWNrd2FyZDtuLmVhY2goZS53YXlwb2ludHNbdF0sZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKHIub2xkU2Nyb2xsPChuPWUub2Zmc2V0KSYmbjw9ci5uZXdTY3JvbGwpe3JldHVybiBsLnB1c2goZSl9ZWxzZSBpZihyLm5ld1Njcm9sbDwoaT1lLm9mZnNldCkmJmk8PXIub2xkU2Nyb2xsKXtyZXR1cm4gbC5wdXNoKGUpfX0pO2wuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9mZnNldC1lLm9mZnNldH0pO2lmKCFvKXtsLnJldmVyc2UoKX1yZXR1cm4gbi5lYWNoKGwsZnVuY3Rpb24odCxlKXtpZihlLm9wdGlvbnMuY29udGludW91c3x8dD09PWwubGVuZ3RoLTEpe3JldHVybiBlLnRyaWdnZXIoW2ldKX19KX0pO3JldHVybiB0aGlzLm9sZFNjcm9sbD17eDp0Lmhvcml6b250YWwubmV3U2Nyb2xsLHk6dC52ZXJ0aWNhbC5uZXdTY3JvbGx9fTt0LnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLGk9dGhpcztyPW4uaXNXaW5kb3codGhpcy5lbGVtZW50KTtlPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCk7dGhpcy5kb1Njcm9sbCgpO3Q9e2hvcml6b250YWw6e2NvbnRleHRPZmZzZXQ6cj8wOmUubGVmdCxjb250ZXh0U2Nyb2xsOnI/MDp0aGlzLm9sZFNjcm9sbC54LGNvbnRleHREaW1lbnNpb246dGhpcy4kZWxlbWVudC53aWR0aCgpLG9sZFNjcm9sbDp0aGlzLm9sZFNjcm9sbC54LGZvcndhcmQ6InJpZ2h0IixiYWNrd2FyZDoibGVmdCIsb2Zmc2V0UHJvcDoibGVmdCJ9LHZlcnRpY2FsOntjb250ZXh0T2Zmc2V0OnI/MDplLnRvcCxjb250ZXh0U2Nyb2xsOnI/MDp0aGlzLm9sZFNjcm9sbC55LGNvbnRleHREaW1lbnNpb246cj9uW21dKCJ2aWV3cG9ydEhlaWdodCIpOnRoaXMuJGVsZW1lbnQuaGVpZ2h0KCksb2xkU2Nyb2xsOnRoaXMub2xkU2Nyb2xsLnksZm9yd2FyZDoiZG93biIsYmFja3dhcmQ6InVwIixvZmZzZXRQcm9wOiJ0b3AifX07cmV0dXJuIG4uZWFjaCh0LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uZWFjaChpLndheXBvaW50c1t0XSxmdW5jdGlvbih0LHIpe3ZhciBpLG8sbCxzLGY7aT1yLm9wdGlvbnMub2Zmc2V0O2w9ci5vZmZzZXQ7bz1uLmlzV2luZG93KHIuZWxlbWVudCk/MDpyLiRlbGVtZW50Lm9mZnNldCgpW2Uub2Zmc2V0UHJvcF07aWYobi5pc0Z1bmN0aW9uKGkpKXtpPWkuYXBwbHkoci5lbGVtZW50KX1lbHNlIGlmKHR5cGVvZiBpPT09InN0cmluZyIpe2k9cGFyc2VGbG9hdChpKTtpZihyLm9wdGlvbnMub2Zmc2V0LmluZGV4T2YoIiUiKT4tMSl7aT1NYXRoLmNlaWwoZS5jb250ZXh0RGltZW5zaW9uKmkvMTAwKX19ci5vZmZzZXQ9by1lLmNvbnRleHRPZmZzZXQrZS5jb250ZXh0U2Nyb2xsLWk7aWYoci5vcHRpb25zLm9ubHlPblNjcm9sbCYmbCE9bnVsbHx8IXIuZW5hYmxlZCl7cmV0dXJufWlmKGwhPT1udWxsJiZsPChzPWUub2xkU2Nyb2xsKSYmczw9ci5vZmZzZXQpe3JldHVybiByLnRyaWdnZXIoW2UuYmFja3dhcmRdKX1lbHNlIGlmKGwhPT1udWxsJiZsPihmPWUub2xkU2Nyb2xsKSYmZj49ci5vZmZzZXQpe3JldHVybiByLnRyaWdnZXIoW2UuZm9yd2FyZF0pfWVsc2UgaWYobD09PW51bGwmJmUub2xkU2Nyb2xsPj1yLm9mZnNldCl7cmV0dXJuIHIudHJpZ2dlcihbZS5mb3J3YXJkXSl9fSl9KX07dC5wcm90b3R5cGUuY2hlY2tFbXB0eT1mdW5jdGlvbigpe2lmKG4uaXNFbXB0eU9iamVjdCh0aGlzLndheXBvaW50cy5ob3Jpem9udGFsKSYmbi5pc0VtcHR5T2JqZWN0KHRoaXMud2F5cG9pbnRzLnZlcnRpY2FsKSl7dGhpcy4kZWxlbWVudC51bmJpbmQoW3AseV0uam9pbigiICIpKTtyZXR1cm4gZGVsZXRlIGFbdGhpcy5pZF19fTtyZXR1cm4gdH0oKTtsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscil7dmFyIGksbztyPW4uZXh0ZW5kKHt9LG4uZm5bZ10uZGVmYXVsdHMscik7aWYoci5vZmZzZXQ9PT0iYm90dG9tLWluLXZpZXciKXtyLm9mZnNldD1mdW5jdGlvbigpe3ZhciB0O3Q9blttXSgidmlld3BvcnRIZWlnaHQiKTtpZighbi5pc1dpbmRvdyhlLmVsZW1lbnQpKXt0PWUuJGVsZW1lbnQuaGVpZ2h0KCl9cmV0dXJuIHQtbih0aGlzKS5vdXRlckhlaWdodCgpfX10aGlzLiRlbGVtZW50PXQ7dGhpcy5lbGVtZW50PXRbMF07dGhpcy5heGlzPXIuaG9yaXpvbnRhbD8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIjt0aGlzLmNhbGxiYWNrPXIuaGFuZGxlcjt0aGlzLmNvbnRleHQ9ZTt0aGlzLmVuYWJsZWQ9ci5lbmFibGVkO3RoaXMuaWQ9IndheXBvaW50cyIrdisrO3RoaXMub2Zmc2V0PW51bGw7dGhpcy5vcHRpb25zPXI7ZS53YXlwb2ludHNbdGhpcy5heGlzXVt0aGlzLmlkXT10aGlzO3NbdGhpcy5heGlzXVt0aGlzLmlkXT10aGlzO2k9KG89dC5kYXRhKHcpKSE9bnVsbD9vOltdO2kucHVzaCh0aGlzLmlkKTt0LmRhdGEodyxpKX10LnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLmVuYWJsZWQpe3JldHVybn1pZih0aGlzLmNhbGxiYWNrIT1udWxsKXt0aGlzLmNhbGxiYWNrLmFwcGx5KHRoaXMuZWxlbWVudCx0KX1pZih0aGlzLm9wdGlvbnMudHJpZ2dlck9uY2Upe3JldHVybiB0aGlzLmRlc3Ryb3koKX19O3QucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmFibGVkPWZhbHNlfTt0LnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQucmVmcmVzaCgpO3JldHVybiB0aGlzLmVuYWJsZWQ9dHJ1ZX07dC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2RlbGV0ZSBzW3RoaXMuYXhpc11bdGhpcy5pZF07ZGVsZXRlIHRoaXMuY29udGV4dC53YXlwb2ludHNbdGhpcy5heGlzXVt0aGlzLmlkXTtyZXR1cm4gdGhpcy5jb250ZXh0LmNoZWNrRW1wdHkoKX07dC5nZXRXYXlwb2ludHNCeUVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUscjtyPW4odCkuZGF0YSh3KTtpZighcil7cmV0dXJuW119ZT1uLmV4dGVuZCh7fSxzLmhvcml6b250YWwscy52ZXJ0aWNhbCk7cmV0dXJuIG4ubWFwKHIsZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KX07cmV0dXJuIHR9KCk7ZD17aW5pdDpmdW5jdGlvbih0LGUpe3ZhciByO2lmKGU9PW51bGwpe2U9e319aWYoKHI9ZS5oYW5kbGVyKT09bnVsbCl7ZS5oYW5kbGVyPXR9dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQscixpLHM7dD1uKHRoaXMpO2k9KHM9ZS5jb250ZXh0KSE9bnVsbD9zOm4uZm5bZ10uZGVmYXVsdHMuY29udGV4dDtpZighbi5pc1dpbmRvdyhpKSl7aT10LmNsb3Nlc3QoaSl9aT1uKGkpO3I9YVtpLmRhdGEodSldO2lmKCFyKXtyPW5ldyBvKGkpfXJldHVybiBuZXcgbCh0LHIsZSl9KTtuW21dKCJyZWZyZXNoIik7cmV0dXJuIHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5faW52b2tlKHRoaXMsImRpc2FibGUiKX0sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGQuX2ludm9rZSh0aGlzLCJlbmFibGUiKX0sZGVzdHJveTpmdW5jdGlvbigpe3JldHVybiBkLl9pbnZva2UodGhpcywiZGVzdHJveSIpfSxwcmV2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGQuX3RyYXZlcnNlLmNhbGwodGhpcyx0LGUsZnVuY3Rpb24odCxlLG4pe2lmKGU+MCl7cmV0dXJuIHQucHVzaChuW2UtMV0pfX0pfSxuZXh0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGQuX3RyYXZlcnNlLmNhbGwodGhpcyx0LGUsZnVuY3Rpb24odCxlLG4pe2lmKGU8bi5sZW5ndGgtMSl7cmV0dXJuIHQucHVzaChuW2UrMV0pfX0pfSxfdHJhdmVyc2U6ZnVuY3Rpb24odCxlLGkpe3ZhciBvLGw7aWYodD09bnVsbCl7dD0idmVydGljYWwifWlmKGU9PW51bGwpe2U9cn1sPWguYWdncmVnYXRlKGUpO289W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU7ZT1uLmluQXJyYXkodGhpcyxsW3RdKTtyZXR1cm4gaShvLGUsbFt0XSl9KTtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobyl9LF9pbnZva2U6ZnVuY3Rpb24odCxlKXt0LmVhY2goZnVuY3Rpb24oKXt2YXIgdDt0PWwuZ2V0V2F5cG9pbnRzQnlFbGVtZW50KHRoaXMpO3JldHVybiBuLmVhY2godCxmdW5jdGlvbih0LG4pe25bZV0oKTtyZXR1cm4gdHJ1ZX0pfSk7cmV0dXJuIHRoaXN9fTtuLmZuW2ddPWZ1bmN0aW9uKCl7dmFyIHQscjtyPWFyZ3VtZW50c1swXSx0PTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXTtpZihkW3JdKXtyZXR1cm4gZFtyXS5hcHBseSh0aGlzLHQpfWVsc2UgaWYobi5pc0Z1bmN0aW9uKHIpKXtyZXR1cm4gZC5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1lbHNlIGlmKG4uaXNQbGFpbk9iamVjdChyKSl7cmV0dXJuIGQuaW5pdC5hcHBseSh0aGlzLFtudWxsLHJdKX1lbHNlIGlmKCFyKXtyZXR1cm4gbi5lcnJvcigialF1ZXJ5IFdheXBvaW50cyBuZWVkcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIG9yIGhhbmRsZXIgb3B0aW9uLiIpfWVsc2V7cmV0dXJuIG4uZXJyb3IoIlRoZSAiK3IrIiBtZXRob2QgZG9lcyBub3QgZXhpc3QgaW4galF1ZXJ5IFdheXBvaW50cy4iKX19O24uZm5bZ10uZGVmYXVsdHM9e2NvbnRleHQ6cixjb250aW51b3VzOnRydWUsZW5hYmxlZDp0cnVlLGhvcml6b250YWw6ZmFsc2Usb2Zmc2V0OjAsdHJpZ2dlck9uY2U6ZmFsc2V9O2g9e3JlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gbi5lYWNoKGEsZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5yZWZyZXNoKCl9KX0sdmlld3BvcnRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD1yLmlubmVySGVpZ2h0KSE9bnVsbD90OmkuaGVpZ2h0KCl9LGFnZ3JlZ2F0ZTpmdW5jdGlvbih0KXt2YXIgZSxyLGk7ZT1zO2lmKHQpe2U9KGk9YVtuKHQpLmRhdGEodSldKSE9bnVsbD9pLndheXBvaW50czp2b2lkIDB9aWYoIWUpe3JldHVybltdfXI9e2hvcml6b250YWw6W10sdmVydGljYWw6W119O24uZWFjaChyLGZ1bmN0aW9uKHQsaSl7bi5lYWNoKGVbdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5wdXNoKGUpfSk7aS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQub2Zmc2V0LWUub2Zmc2V0fSk7clt0XT1uLm1hcChpLGZ1bmN0aW9uKHQpe3JldHVybiB0LmVsZW1lbnR9KTtyZXR1cm4gclt0XT1uLnVuaXF1ZShyW3RdKX0pO3JldHVybiByfSxhYm92ZTpmdW5jdGlvbih0KXtpZih0PT1udWxsKXt0PXJ9cmV0dXJuIGguX2ZpbHRlcih0LCJ2ZXJ0aWNhbCIsZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5vZmZzZXQ8PXQub2xkU2Nyb2xsLnl9KX0sYmVsb3c6ZnVuY3Rpb24odCl7aWYodD09bnVsbCl7dD1yfXJldHVybiBoLl9maWx0ZXIodCwidmVydGljYWwiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUub2Zmc2V0PnQub2xkU2Nyb2xsLnl9KX0sbGVmdDpmdW5jdGlvbih0KXtpZih0PT1udWxsKXt0PXJ9cmV0dXJuIGguX2ZpbHRlcih0LCJob3Jpem9udGFsIixmdW5jdGlvbih0LGUpe3JldHVybiBlLm9mZnNldDw9dC5vbGRTY3JvbGwueH0pfSxyaWdodDpmdW5jdGlvbih0KXtpZih0PT1udWxsKXt0PXJ9cmV0dXJuIGguX2ZpbHRlcih0LCJob3Jpem9udGFsIixmdW5jdGlvbih0LGUpe3JldHVybiBlLm9mZnNldD50Lm9sZFNjcm9sbC54fSl9LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiBoLl9pbnZva2UoImVuYWJsZSIpfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGguX2ludm9rZSgiZGlzYWJsZSIpfSxkZXN0cm95OmZ1bmN0aW9uKCl7cmV0dXJuIGguX2ludm9rZSgiZGVzdHJveSIpfSxleHRlbmRGbjpmdW5jdGlvbih0LGUpe3JldHVybiBkW3RdPWV9LF9pbnZva2U6ZnVuY3Rpb24odCl7dmFyIGU7ZT1uLmV4dGVuZCh7fSxzLnZlcnRpY2FsLHMuaG9yaXpvbnRhbCk7cmV0dXJuIG4uZWFjaChlLGZ1bmN0aW9uKGUsbil7blt0XSgpO3JldHVybiB0cnVlfSl9LF9maWx0ZXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBpLG87aT1hW24odCkuZGF0YSh1KV07aWYoIWkpe3JldHVybltdfW89W107bi5lYWNoKGkud2F5cG9pbnRzW2VdLGZ1bmN0aW9uKHQsZSl7aWYocihpLGUpKXtyZXR1cm4gby5wdXNoKGUpfX0pO28uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9mZnNldC1lLm9mZnNldH0pO3JldHVybiBuLm1hcChvLGZ1bmN0aW9uKHQpe3JldHVybiB0LmVsZW1lbnR9KX19O25bbV09ZnVuY3Rpb24oKXt2YXIgdCxuO249YXJndW1lbnRzWzBdLHQ9Mjw9YXJndW1lbnRzLmxlbmd0aD9lLmNhbGwoYXJndW1lbnRzLDEpOltdO2lmKGhbbl0pe3JldHVybiBoW25dLmFwcGx5KG51bGwsdCl9ZWxzZXtyZXR1cm4gaC5hZ2dyZWdhdGUuY2FsbChudWxsLG4pfX07blttXS5zZXR0aW5ncz17cmVzaXplVGhyb3R0bGU6MTAwLHNjcm9sbFRocm90dGxlOjMwfTtyZXR1cm4gaS5sb2FkKGZ1bmN0aW9uKCl7cmV0dXJuIG5bbV0oInJlZnJlc2giKX0pfSl9KS5jYWxsKHRoaXMpOw=="}},"time_used":985,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":975,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget.coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","fqdn":"widget.coinlib.io","domain":"coinlib.io","tld":"io"},"ip":{"addr":"172.67.152.30","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.195Z","timestamp":1785126646195,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coinlib.io","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Wed, 22 Jul 2026 08:03:31 GMT","end":"Tue, 20 Oct 2026 09:03:20 GMT"},"fingerprint":{"sha1":"C6:CB:55:AC:C8:0C:E7:35:B1:E0:C2:0F:D5:68:9B:BC:7B:3F:A5:90","sha256":"B5:2C:EC:C1:28:4E:9C:F6:B2:A7:13:AE:48:38:B0:FC:D0:88:AC:B9:A1:F2:7A:26:95:B6:31:94:E0:EA:BD:4E"}}},"request":{"raw":"GET /widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover= HTTP/1.1\r\nHost: widget.coinlib.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 301 \r\ncontent-type: text/html; charset=UTF-8\r\nserver-timing: cfEdge;dur=1,cfOrigin;dur=0, cfExtPri\r\nlocation: https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=D99Lswua5JfdcVwr7%2BXAvf6zpONUpei%2FqDJyjp1xAKoRuQUzmOypumUqM00Ki84KnFHrL1mVTv20TRzWQKwrSO7D%2FiARTQFbU2R7LwOJ6itbFQBGQsbeb0IEkOgDdJFMaZ1C%2Bg%3D%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ndate: Mon, 27 Jul 2026 04:30:46 GMT\r\npriority: u=4,i=?0\r\nserver: cloudflare\r\ncf-ray: a218e922dfe22efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\n\r\n","headers":null,"cookies":null,"status_code":"301","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":0,"size_decoded":0,"mime_type":"text/html; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":null}},"time_used":21,"timings":{"blocked":-1,"dns":3,"connect":14,"send":0,"wait":4,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"jnn-pa.googleapis.com/$rpc/google.internal.waa.v1.Waa/GenerateIT","fqdn":"jnn-pa.googleapis.com","domain":"jnn-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.114.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.793Z","timestamp":1785126647793,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"OPTIONS /$rpc/google.internal.waa.v1.Waa/GenerateIT HTTP/1.1\r\nHost: jnn-pa.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-type,x-goog-api-key\r\nReferer: https://www.youtube.com/\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: https://www.youtube.com\r\nvary: origin, referer, x-origin\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT\r\naccess-control-allow-headers: content-type,x-goog-api-key\r\naccess-control-max-age: 3600\r\ndate: Mon, 27 Jul 2026 04:30:47 GMT\r\ncontent-type: text/html\r\nserver: ESF\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":535,"mime_type":"text/html","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":""}},"time_used":19,"timings":{"blocked":0,"dns":1,"connect":8,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"app.chaport.com/api/public/v1/accounts/6a506dba4dab3ead5e8ea2e6/init?id=4659807e-d464-4208-989e-c8a8edaea1ad\u0026token=nlqp1SEIHNNkYL0TXs8AL4bCVbzcmtqY4RwBXS5UJs","fqdn":"app.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.130Z","timestamp":1785126648130,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /api/public/v1/accounts/6a506dba4dab3ead5e8ea2e6/init?id=4659807e-d464-4208-989e-c8a8edaea1ad\u0026token=nlqp1SEIHNNkYL0TXs8AL4bCVbzcmtqY4RwBXS5UJs HTTP/1.1\r\nHost: app.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://www.bitifinex.live\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: application/json; charset=utf-8\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nx-powered-by: Express\r\naccess-control-allow-credentials: true\r\naccess-control-allow-origin: https://www.bitifinex.live\r\naccess-control-allow-headers: Content-Type, cp-app-id\r\netag: W/\"263-hACLhSJa2vxKNoLZeTgrnt2nn0I\"\r\nx-frame-options: sameorigin\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\ncf-cache-status: DYNAMIC\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2B3l%2Fgac%2Bu45YC5tCsJ%2BGk%2Brke7QOWNKSHR5oYQBFmD9TaVlDQ1E56gxx2OijUCoh2JnHvwINqfuepUrJksZwcprYKfgWjRaNlCuuJN%2FkT8F2b9IMONPE6QqpJBuUZK7bbw%3D%3D\"}]}\r\ncontent-encoding: br\r\ncf-ray: a218e92ed82db1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Express","description":"Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.","website":"https://expressjs.com","common_platform_enumeration":"cpe:2.3:a:expressjs:express:*:*:*:*:*:*:*:*","icon":"Express.svg","categories":["Web frameworks","Web servers"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":611,"size_decoded":1292,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"b888b090bb4ebf0c8611133b1b386dc9","sha1":"84008b85225adafc4a3682d979382b9edda79f42","sha256":"cd47f5658ea3fca4432a09045a108853695347e981736f894b4477e351896983","sha512":"9a72adc6baad4d86f46aaaebad95ea03feaffe5e6e83a87eae0d6009779bf93a74fc082b6107703ba138ef5dfacddd69673d0fd4b2b7fd375335c3115812a472","ssdeep":"","tlshash":"1bf0025cda095e2b9b1663e6a046bb4300af415693408579d0f1fe08521e6c8141da91","first_seen":"2026-04-18T09:23:12.34398Z","last_seen":"2026-07-27T08:03:47.544988Z","times_seen":248,"resource_available":false,"data":"eyJyZXN1bHQiOnsic2VydmVyVXJsIjoiaHR0cHM6Ly9zZXJ2ZXIuY2hhcG9ydC5jb20iLCJjb3VudHJ5IjoiTk8iLCJsYW5ndWFnZSI6ImVuIiwidGV4dHMiOnsiY2FuY2VsTGFiZWwiOiJDYW5jZWwiLCJjaGF0TGFiZWwiOiJMaXZlIENoYXQiLCJpbnB1dExhYmVsIjoiVHlwZSBhIG1lc3NhZ2UgaGVyZS4uLiIsInVucmVhZFRpdGxlUGF0dGVybiI6IihfX0NPVU5UX18pIE5ldyBtZXNzYWdlcyByZWNlaXZlZCIsImRlZmF1bHRCb3ROYW1lIjoiQm90IiwidHJpZ2dlclBvd2VyZWRCeUxhYmVsIjoiRnJlZSBsaXZlIGNoYXQiLCJkZWZhdWx0QXV0b0ludml0YXRpb25UZXh0IjoiSGVsbG8hIENhbiBJIGhlbHAgeW91PyJ9LCJjc3NVcmwiOiJodHRwczovL2Fzc2V0cy5jaGFwb3J0LmNvbS9hc3NldHMvd2lkZ2V0LWZlYWI4MDdjZmRlYTZiMzc3ZDg5NmUzOGU4ODQ3OWI5LmNzcyIsImF1ZGlvUGxheWVyVXJsIjoiL2Fzc2V0cy9hdWRpby1wbGF5ZXItZDIyYTY2OTljNjM5ZDQwMDhhYTFmNjFjZmM1ZGU5ZDAuanMiLCJleGlzdHMiOmZhbHNlLCJpc0NoYXRTdGFydGVkIjpudWxsLCJjb21wbGV0ZWRUcmlnZ2VycyI6bnVsbCwidW5yZWFkIjp7ImNvdW50IjowfSwiZm9ybXMiOltdfX0="}},"time_used":51,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":51,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T04:30:45.333Z","timestamp":1785126645333,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nset-cookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557; path=/; secure\r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\ncache-control: no-store, no-cache, must-revalidate\r\npragma: no-cache\r\ncontent-type: text/html; charset=UTF-8\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"cdnjs","description":"cdnjs is a free distributed JS library delivery service.","website":"https://cdnjs.com","common_platform_enumeration":"","icon":"cdnjs.svg","categories":["CDN"]},{"name":"Swiper","description":"Swiper is a JavaScript library that creates modern touch sliders with hardware-accelerated transitions.","website":"https://swiperjs.com","common_platform_enumeration":"","icon":"Swiper.svg","categories":["JavaScript libraries"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Slick","description":"","website":"https://kenwheeler.github.io/slick","common_platform_enumeration":"","icon":"Slick.svg","categories":["JavaScript libraries"]},{"name":"particles.js","description":"Particles.js is a JavaScript library for creating particles.","website":"https://github.com/VincentGarreau/particles.js","common_platform_enumeration":"","icon":"","categories":["JavaScript graphics"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"PHP","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]},{"name":"Highlight.js","description":"","website":"https://highlightjs.org/","common_platform_enumeration":"","icon":"Highlight.js.png","categories":["JavaScript libraries"]},{"name":"Google Maps","description":"Google Maps is a web mapping service. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bicycle and air, or public transportation.","website":"https://maps.google.com","common_platform_enumeration":"","icon":"Google Maps.svg","categories":["Maps"]}],"data":{"size":36842,"size_decoded":8313,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, ASCII text, with very long lines (1904)","md5":"0bc8214355a6d77eb02a719607883b7b","sha1":"3241a24581043f9b891a3555b4a7a2744f7e4bca","sha256":"2b88afc94d637b79ad1b602bc6f084ce0336d1062ef1e9819a842a36ebff95a7","sha512":"969db3e67a8477f2ea57db9acf222a23a81a5ae6d486ad6ca849a7541f8ce4061f511cb09716352c1435ae7de5745ef0137a72133ef982818b52b2db72cdcf41","ssdeep":"384:39PUuUGneTcqhuOev5A8h6b9oMqkjCLsVgMOM3wuasx2MgbGYBjmu1:pUuUmHDG8KCMq21VgMOM3w/9mu","tlshash":"c0f24229a8f110230097a0d67a616f5f6fb1ea0bda1b9a1432fc4bd85fd3d99cd0365c","first_seen":"2026-07-27T03:51:33.503345Z","last_seen":"2026-07-27T04:32:40.438285Z","times_seen":3,"resource_available":false,"data":"ICAKPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbiI+CgoKCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MTo0MyBHTVQgLS0+CjwhLS0gQWRkZWQgYnkgSFRUcmFjayAtLT48bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiAvPjwhLS0gL0FkZGVkIGJ5IEhUVHJhY2sgLS0+CjxoZWFkPgogICAgCgogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDx0aXRsZT5DcnlwdG9wbGMgfHwgSG9tZTwvdGl0bGU+CiAgICA8IS0tRmF2aWNvbiBhZGQtLT4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJhc3NldHMvaW1hZ2VzL2xvZ28vbG9nbzEuaHRtbCI+CiAgICA8IS0tYm9vdHN0cmFwIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1mb250LWF3ZXNvbWUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLSBMaWdodGNhc2UgIENzcy0tPgogICAgPGxpbmsgaHJlZj0iYXNzZXRzL2Zyb250L2Nzcy9saWdodGNhc2UuY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPCEtLVdPVyBDc3MtLT4KICAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL2FuaW1hdGUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBTbGlkZXIgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS1TbGljayBOYXYgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3NsaWNrbmF2Lm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3dpcGVyICBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3Mvc3dpcGVyLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tU3R5bGUgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvZnJvbnQvY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS0gVGhlYW0gQ29sb3IgQ3NzLS0+CiAgICA8bGluayBocmVmPSJhc3NldHMvY3NzL2NvbG9yYmEzNmJhMzZiYTM2LmNzcz9jb2xvcj0yZWNjNzEiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8IS0tUmVzcG9uc2l2ZSBDc3MtLT4KICAgIDxsaW5rIGhyZWY9ImFzc2V0cy9mcm9udC9jc3MvcmVzcG9uc2l2ZS5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgoKCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Nzcy9pb24ucmFuZ2VTbGlkZXIuY3NzIj4KICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJhc3NldHMvY3NzL3Jhbmdlci1zdHlsZS5jc3MiPgogICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImFzc2V0cy9jc3MvaW9uLnJhbmdlU2xpZGVyLnNraW5GbGF0LmNzcyI+CiAgICA8c3R5bGU+CiAgICAgICAucHJpY2UtdGFibGUgewogICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7CiAgICAgICB9CiAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iYXNzZXRzL2pzL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iYXNzZXRzL2Zyb250LzIvY3NzL3N0eWxlLmNzcyI+CiAgICAKICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tb2Rlcm5penIuanMiPjwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9zd2VldGFsZXJ0LzEuMS4zL3N3ZWV0YWxlcnQubWluLmh0bWwiPgoKICAgIDxzY3JpcHQgc3JjPSIuLi9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvc3dlZXRhbGVydC8xLjEuMy9zd2VldGFsZXJ0Lm1pbi0yLmh0bWwiPjwvc2NyaXB0PgogICAgCgogICAgCiAKPC9oZWFkPgo8Ym9keSAgZGF0YS1zcHk9InNjcm9sbCI+CiAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MzBweDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IHdpZHRoOiAxMDAlOyI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2lkZ2V0LmNvaW5saWIuaW8vd2lkZ2V0P3R5cGU9aG9yaXpvbnRhbF92MiZhbXA7dGhlbWU9bGlnaHQmYW1wO3ByZWZfY29pbl9pZD0xNTA1JmFtcDtpbnZlcnRfaG92ZXI9IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIzNnB4IiBzY3JvbGxpbmc9ImF1dG8iIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVyPSIwIiBib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjA7Ij48L2lmcmFtZT4KICAgIDwvZGl2Pgo8IS0tIFN0YXJ0IFByZS1Mb2FkZXItLT4KCjxkaXYgaWQ9InByZWxvYWRlciI+CiAgICA8ZGl2IGRhdGEtbG9hZGVyPSJjaXJjbGUtc2lkZSI+PC9kaXY+CjwvZGl2Pgo8IS0tIEVuZCBQcmVsb2FkIC0tPgo8ZGl2IGNsYXNzPSJhbmltYXRpb24tZWxlbWVudCI+CjwhLS0gRW5kIFByZS1Mb2FkZXIgLS0+CjwhLS1zdXBwb3J0IGJhciAgdG9wIHN0YXJ0LS0+CjxkaXYgY2xhc3M9InN1cHBvcnQtYmFyLXRvcCB3b3cgc2xpZGVJbkxlZnQiIGRhdGEtd293LWR1cmF0aW9uPSIycyIgaWQ9InJhaW5kcm9wcy1ncmVlbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaW5mbyI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAYml0aWZpbmV4LmxpdmUiPiA8aSBjbGFzcz0iZmEgZmEtZW52ZWxvcGUgZW1haWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+IHN1cHBvcnRAYml0aWZpbmV4LmxpdmU8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+IDxpIGNsYXNzPSJmYSBmYS1waG9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4gKzEzMzAyNjUwMDQ1PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB0ZXh0LXJpZ2h0IGJvdW5jZUluIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtYWRtaW4iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxvZ2luLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXIiPjwvaT4gTE9HSU4gPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGkgY2xhc3M9ImZhIGZhLXVzZXItcGx1cyI+PC9pPiBSRUdJU1RFUjwvYT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdXBwb3J0LWJhci1zb2NpYWwtbGlua3MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPCEtLXN1cHBvcnQgYmFyICB0b3AgZW5kLS0+CjwhLS1tYWluIG1lbnUgc2VjdGlvbiBzdGFydC0tPgo8bmF2IGNsYXNzPSJtYWluLW1lbnUgd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyIgPgogIDxwIHN0eWxlPSJmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSI+CiAgICAgIAogICAgICAgICAgICAgICAgYml0aWZpbmV4ICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05IHRleHQtcmlnaHQiPgogICAgICAgICAgICAgICAgPHVsIGlkPSJoZWFkZXItbWVudSIgY2xhc3M9ImhlYWRlci1uYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5kZXgucGhwIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imhvdy1pdC13b3Jrcy5waHAiPkhvdyBpdCBXb3JrczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJ0ZXJtLW9mLXVzZS5waHAiPlRlcm1zIG9mIHVzZTwvYT48L2xpPjxsaT48YSBocmVmPSIyLnBocCI+UGxhbnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29udGFjdC5waHAiPkNvbnRhY3Q8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSIjIj5BY2NvdW50IDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZWdhLW1lbnUgbWVnYS1tZW51MSBtZWdhLW1lbnUyIG1lbnUtcG9zdGlvbi00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lZ2EtbGlzdCBtZWdhLWxpc3QxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InBhZ2Utc2Nyb2xsIiBocmVmPSJsb2dpbi5waHAiPkxvZ2luPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icGFnZS1zY3JvbGwiIGhyZWY9InJlZ2lzdGVyLnBocCI+UmVnaXN0ZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvbmF2PgoKPCEtLW1haW4gbWVudSBzZWN0aW9uIGVuZC0tPgoKICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBzdGFydC0tPgogICAgPHNlY3Rpb24gaWQ9InBhcnRpY2xlcy1qcyIgY2xhc3M9ImhlYWRlci1hcmVhIGhlYWRlci1iZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnYXNzZXRzL2ltYWdlcy9zbGlkZXIvbG9nbzQuanBnJykiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbi10b3AtcGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWZpcnN0IHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48aDEgY2xhc3M9ImZyb250aGVhZCIgYWxpZ249ImNlbnRlciI+PGJyPjwvaDE+PGgxIGNsYXNzPSJmcm9udGhlYWQiIGFsaWduPSJjZW50ZXIiPjxicj48L2gxPjxoMSBjbGFzcz0iZnJvbnRoZWFkIiBhbGlnbj0iY2VudGVyIj48Zm9udCBjb2xvcj0iIzY2RkYzMyI+PGZvbnQgY29sb3I9IiNGRkZGRkYiPjxiPmJpdGlmaW5leDxiPjxicj48Yj5DUllQVE9DVVJSRU5DWSBJTlZFU1RNRU5UIDwvYj48L2ZvbnQ+PC9mb250PjwvaDE+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAxLjVlbTsiIGNsYXNzPSIgd293IHNsaWRlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxkaXYgYWxpZ249ImNlbnRlciI+PGg0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgY29sb3I9IiNGRkZGRkYiPlNpZ24gdXAgYW5kIFN0YXJ0IEludmVzdGluZywgYW5kIGdldCBhbWF6aW5nIG9mZmVycyBhbmQgYm9udXNlcyB3ZWVrbHkgb24geW91ciBBY2NvdW50PC9mb250PjwvaDQ+PC9kaXY+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24tYm90dG9tLXBhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9tYWluLXNlYXJjaC1mcm9tIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDwhLS1IZWFkZXIgc2VjdGlvbiBlbmQtLT4KICAgIDxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBzdGFydCAtLT4KICAgIDxkaXYgY2xhc3M9ImFkbWluLXNlY3Rpb24gd293IHNsaWRlSW5SaWdodCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIGNvbnRlbnQgc3RhcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HZXQgYWNjZXNzIHRvIFlvdXIgYWNjb3VudDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdGV4dCBlbmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4gdXNlciBzdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRtaW4tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJsb2dpbi5waHAiPjxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJsb2dpbiI+c2lnbiBpbjwvYnV0dG9uPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InJlZ2lzdGVyLnBocCI+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InJlZ2lzdGVyIj5yZWdpc3RlciBub3c8L2J1dHRvbj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGFkbWluIHVzZXIgZW5kIC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gYWRtaW4tY29udGVudCBlbmQgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwhLS0gQWRtaW4gc2VjdGlvbiBlbmQgLS0+CgogICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2PgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBTdGFydCAtLT4KICAgIDxzZWN0aW9uICBjbGFzcz0iY2lyY2xlLXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIHNlY3Rpb24tYmFja2dyb3VuZCB3b3cgc2xpZGVJblVwIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPldIQVQgSVMgPHNwYW4+Yml0aWZpbmV4Pzwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkyODBmMmE0LnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkNSWVBUTyBJbnZlc3RtZW50PC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc2VydmljZSBtYWtlcyBJbnZlc3RpbmcgaW4gQ3J5cHRvY3VycmVuY3kgYWNjZXNzaWJsZSB0byBldmVyeW9uZS4gTm8gbG9uZ2VyIGlzIGl0IHJlcXVpcmVkIHRvIGJ1eSBleHBlbnNpdmUgZXF1aXBtZW50IGFuZCB3YXN0ZSB5b3VyIHRpbWUgb24gc2V0dGluZyBpdCB1cC4gU2ltcGx5IHNlbGVjdCB5b3VyIGRlc2lyZWQgcGxhbiBhbmQgZ2VuZXJhdGUgcmV2ZW51ZSE8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWl0ZW0gd293IGZsaXBJblkiIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iYXNzZXRzL2ltYWdlcy9mZWF0dXJlcy81YTQyNjkzMWRjYmRjLnBuZyIgYWx0PSJpdGVtcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaXJjbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2PkVBU1kgSU5WRVNUSU5HPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5JbnZlc3RpbmcgaXMgbWFkZSBzaW1wbGUgd2l0aCBiaXRpZmluZXguIERlcG9zaXQgdG8gc3RhcnQgZWFybmluZy4gV2l0aGRyYXcgd2l0aGluIGRheXMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5M2Q1MzI1NS5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5QUklWQVRFPC9oNj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5PdXIgc3lzdGVtcyBhcmUgc2VjdXJlIGFuZCBzYWZlLiBObyBJbnRydXNpb24uIFdlIGhhdmUgdGhlIGJlc3QgVGVhbSEgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpcmNsZS1pdGVtIHdvdyBmbGlwSW5ZIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9pbWFnZXMvZmVhdHVyZXMvNWE0MjY5NDY2N2U1My5wbmciIGFsdD0iaXRlbXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2lyY2xlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNj5TRUNVUklUWTwvaDY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WW91ciB3YWxsZXQgaXMgc2VjdXJlIHdpdGggb3VyIDIgZmFjdG9yIHNlY3VyaXR5IHN5c3RlbS4gV2UgYWxlcnQgeW91IGlmIHRoZXJlIGlzIGEgbG9naW4gYXR0ZW1wdDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPCEtLSBDaXJjbGUgU2VjdGlvbiBFbmQgLS0+CjxkaXYgY2xhc3M9ImNsZWFyZml4Ij48L2Rpdj4KCjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBTdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbi1wYWRkaW5nIHNhbGUtc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWhlYWRlciB3b3cgc2xpZGVJbkRvd24iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5hYm91dCA8c3Bhbj4gYml0aWZpbmV4IDwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhbGUtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgd2lkdGg9IjMxNSIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvR21PemloNkkxenMiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHAgY2xhc3M9ImFib3V0LWNvbW11bml0eS10ZXh0Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDxhIGhyZWY9ImF2Lmh0bWwiPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgIDxpbWcgc3JjPSJhdi5qcGciIGhlaWdodD0iMzE1IiB3aWR0aD0iMzE1Ij4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDwvYT4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPC9wPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJhYm91dC1jb21tdW5pdHktdGV4dCB0ZXh0LWp1c3RpZnkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iICJzZWdvZT0iIiB1aT0iIiBhcmlhbD0iIiB2ZXJkYW5hPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWE9IiIgc2Fucy1zZXJpZj0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweD0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+TGV0IHlvdXIgY29tcHV0ZXIgcmVsYXguIE91ciBDbG91ZCBzb2x1dGlvbiB3aWxsIG1pbmUgYW5kIGhhc2ggd2hhdGV2ZXIgY3J5cHRvY3VycmVuY3kgeW91IG5lZWQuIEdldCBzdGFydGVkIHdpdGggaW1tZWRpYXRlIG1pbmluZyBhbmQgaW52ZXN0bWVudCByZXN1bHRzLjwvZm9udD48L3NwYW4+PGRpdj48c3BhbiBzdHlsZT0iIiBvcGVuPSIiIHNhbnM9IiAibHVjaWRhPSIiIGdyYW5kZT0iInNlZ29lPSIiIHVpPSIiIGFyaWFsLD0iIiB2ZXJkYW5hLD0iIiBzYW5zPSIiIHVuaWNvZGU9IiIgdGFob21hLD0iIiBzYW5zLXNlcmlmOz0iIiBmb250LXNpemU6PSIiIDIyLjE1MzlweDs9IiI+PGRpdiBhbGlnbj0ibGVmdCIgc3R5bGU9IiIgb3Blbj0iIiBzYW5zPSIiIGx1Y2lkYT0iIiBncmFuZGU9IiIgc2Vnb2U9IiIgdWk9IiIgYXJpYWwsPSIiIHZlcmRhbmEsPSIiIHNhbnM9IiIgdW5pY29kZT0iIiB0YWhvbWEsPSIiIHNhbnMtc2VyaWY7PSIiIGZvbnQtc2l6ZTo9IiIgbWVkaXVtID0iIj48Zm9udCBjb2xvcj0iI2ZmZmZjYyI+KkNyeXB0b2N1cnJlbmN5IEludmVzdG1lbnRzIHNob3VsZCBiZSBvbmUgb2YgdGhlIGJlc3QgYW5kIGZhc3QgZ3Jvd2luZyBzb3VyY2Ugb2YgaW5jb21lIG9yIGludmVzdG1lbnQuIFRoZSBhYm92ZSBudW1iZXJzIHJlZmxlY3Qgbm8gZGlmZmljdWx0eSBpbmNyZWFzZS4gSW52ZXN0aW5nIGludm9sdmVzIHJpc2ssIGluY2x1ZGluZyBwb3NzaWJsZSBsb3NzIG9mIHByaW5jaXBhbC4gQnV0IGhlcmUgYXQgYml0aWZpbmV4IHdlIGhhdmUgYSAxMDAlIGNhc2gtYmFjayBwb2xpY3kgaW4gc3VjaCBjYXNlcy4mbmJzcDs8YnI+PGJyPkluIGFkZGl0aW9uIHRvIHRoZSBub3JtYWwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGludmVzdGluZywgY3J5cHRvY3VycmVuY3kgaW52ZXN0bWVudHMgYW5kIHJlbGF0ZWQgaW5zdHJ1bWVudHMgbWF5IGludm9sdmUgcmlzayBvZiBjYXBpdGFsIGxvc3MgZnJvbSB1bmZhdm9yYWJsZSBmbHVjdHVhdGlvbiBpbiBjcnlwdG9jdXJyZW5jeSB2YWx1ZXMsIGV4Y2hhbmdlLXJlbGF0ZWQgcmlza3MsIHBvbGljeSByaXNrcywgbGlxdWlkaXR5LCBhbmQgbWFya2V0IHByaWNlIGZsdWN0dWF0aW9uIGFuZCBkZW1hbmQuJm5ic3A7PGJyPjxicj5UaGUgc3RyYXRlZ2llcyBkaXNjdXNzZWQgYXJlIHN0cmljdGx5IGZvciBpbGx1c3RyYXRpdmUgYW5kIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCBzaG91bGQgbm90IGJlIGNvbnN0cnVlZCBhcyBhIHJlY29tbWVuZGF0aW9uIHRvIHB1cmNoYXNlLiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBhbnkgc3RyYXRlZ2llcyBkaXNjdXNzZWQgd2lsbCBiZSBlZmZlY3RpdmUuIFRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBjb21wbGV0ZSBhbmFseXNpcyBvZiBldmVyeSBtYXRlcmlhbCBmYWN0IHJlc3BlY3RpbmcgYW55IHN0cmF0ZWd5LiBUaGUgZXhhbXBsZXMgcHJlc2VudGVkIGRvIG5vdCB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBjb21taXNzaW9ucywgdGF4IGltcGxpY2F0aW9ucywgb3Igb3RoZXIgdHJhbnNhY3Rpb25zIGNvc3RzLCB3aGljaCBtYXkgc2lnbmlmaWNhbnRseSBhZmZlY3QgdGhlIGVjb25vbWljIGNvbnNlcXVlbmNlcyBvZiBhIGdpdmVuIHN0cmF0ZWd5LjwvZm9udD48L2Rpdj48ZGl2PjxiPjxicj48L2I+PC9kaXY+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1BYm91dCBjb21tdW5pdHkgU2VjdGlvbiBlbmQtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc2VydmljZSBzZWN0aW9uIHN0YXJ0LS0+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uLXBhZGRpbmcgc2VydmljZS1zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUgdGV4dC1jZW50ZXIgd293IHNsaWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPk91ciA8c3Bhbj4gU2VydmljZXMgPC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpbWcgc3JjPSIjIiBhbHQ9IiI+PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxwPldlIG9mZmVyIGV2ZXJ5b25lIHRoZSBjaGFuY2UgdG8gZWFybiBwcm9maXRzIGZyb20gaW52ZXN0aW5nIHRoZSBtb3N0IHByb2ZpdGFibGUgZS1jdXJyZW5jaWVzLiBXZSBoYXZlIHRoZSBiZXN0IG5ldHdvcmsgYW5kIHRlY2hub2xvZ3kgdG8gZW5zdXJlIHRoaXMhPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InJvdyB3b3cgc2xpZGVJblJpZ2h0IiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcm9ja2V0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD51cHBlciBGYXN0IFJlcGVhdDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXdyZW5jaCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+RUFTWSBTRVRVUDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS13cmFwcGVyIHRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLW1vbmV5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5JTlZFU1RNRU5UPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtbW9uZXkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPldJVEhEUkFXPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPkZVTExZIERZTkFNSUM8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2Utd3JhcHBlciB0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1pY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10aCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+QURNSU4gREFTSEJPQVJEPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdGgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwPlBMQU5TPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLXdyYXBwZXIgdGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtd3JlbmNoIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5BRE1JTiBUT09MUzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS1zZXJ2aWNlIHNlY3Rpb24gZW5kLS0+Cgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+CjwhLS0gU2FsZSBTZWN0aW9uIFN0YXJ0IC0tPgo8c2VjdGlvbiBjbGFzcz0ic2FsZS1zZWN0aW9uIHNlY3Rpb24tcGFkZGluZyI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8IS0tIFNhbGUgSGVhZGVyIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5OZXcgPHNwYW4+Q3VzdG9tZXI/PC9zcGFuPjwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gU2FsZSBoZWFkZXIgRW5kIC0tPgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIENvbnRlbnQgU3RhcnQgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxlLWNvbnRlbnQiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIiBzdHlsZT0icGFkZGluZzogOHB4IDIwcHg7IiBocmVmPSJob3ctaXQtd29ya3MuaHRtbCI+SG93IEl0IFdvcmtzPzwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPCEtLSBTYWxlIGNvbnRlbnQgZW5kIC0tPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L3NlY3Rpb24+CjwhLS0gU2FsZSBTZWN0aW9uIEVuZCAtLT4KPGRpdiBjbGFzcz0iY2xlYXJmaXgiPjwvZGl2Pgo8IS0tc3RhcnQgaW52ZXN0bWVudCBwbGFuLS0+CjxTZWN0aW9uIGNsYXNzPSJwcmljaW5nMi1zZWN0aW9uIHNlY3Rpb24tYmFja2dyb3VuZCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIHRleHQtY2VudGVyIHNlY3Rpb24tcGFkZGluZyBwYWRkaW5nLWJvdHRvbS0wIHdvdyBzbGlkZUluTGVmdCIgZGF0YS13b3ctZHVyYXRpb249IjJzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5PdXIgYXdlc29tZTxzcGFuPiBwbGFuczwvc3Bhbj48L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5DaGVjayBvdXQgb3VyIGFmZm9yZGFibGUgYW5kIGVmZmljaWVudCBwbGFucy4gWW91IGNhbiBhbHdheXMgdXBncmFkZSB5b3VyIHBhY2thZ2VzLiZuYnNwOzwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgIExpc3QxIFN0YXJ0IC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctbGlzdDEgcHJpY2luZy1saXN0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctdGh1bWIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWNlbnRlciIgc3R5bGU9ImNvbG9yOiAjZmZmO3BhZGRpbmctdG9wOiAyMHB4OyI+UGxhbnM8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNlcnZlciIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctaGVhZGVyMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+U1RBUlRFUjwvaDU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UcmFkaW5nPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1hbW91bnQxIj48cD4kPC9wPjxzcGFuPiAzMDAwPC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWluZm8xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkludmVzdCBXZWVrbHk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPldlZWtseSBXaXRoZHJhd2FsczwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+UGF5b3V0cyBQcm9jZXNzZWQgV2l0aGluIDcyIEhvdXJzPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4yNCBIb3VycyBTZXJ2aWNlPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5HdWFyYW50ZWVkIFBheW91dHM8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJyZWdpc3Rlci5waHAiPk1vcmUgUGxhbnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcmljaW5nIExpc3QxIEVuZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFByaWNpbmcgTGlzdCBFbmQgLS0+CgoKCgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KPCEtLWVuZCBzdGFydCBpbnZlc3RtZW50IHBsYW4tLT4KCgo8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+Cgo8IS0tcGF5bWVudCBtZXRob2Qgc2VjdGlvbiBzdGFydC0tPgo8c2VjdGlvbiBjbGFzcz0iY2xpZW50LXNlY3Rpb24gc2VjdGlvbi1wYWRkaW5nIj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIHdvdyB6b29tSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPgogICAgICAgICAgICAgICAgICAgIDxoMj5QQVlNRU5UIDxzcGFuPiBXRSBBQ0NFUFQ8L3NwYW4+PC9oMj4KICAgICAgICAgICAgICAgICAgICA8cD48aW1nIHNyYz0iIyIgYWx0PSIiPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PjwhLS0gc2VjdGlvbi1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGllbnQtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dpcGVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItY29udGFpbmVyIGNsaWVudC1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzU5ZjgwOWM5MzFjYjAucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjY1NjBoNC5wbmciIGFsdD0iY2xpZW50Ij48L2E+PC9kaXY+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvMTUwODgyNjU3Nmg1LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUiPjxkaXYgY2xhc3M9Im91ci1jbGllbnQgd293IHJvdGF0ZUluIiBkYXRhLXdvdy1kdXJhdGlvbj0iMnMiPjxhIGhyZWY9IiMiPjxpbWcgY2xhc3M9ImltZy1yZXNwb25zaXZlIiBzcmM9ImFzc2V0cy9pbWFnZXMvY29pbm1hbWEucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSI+PGRpdiBjbGFzcz0ib3VyLWNsaWVudCB3b3cgcm90YXRlSW4iIGRhdGEtd293LWR1cmF0aW9uPSIycyI+PGEgaHJlZj0iIyI+PGltZyBjbGFzcz0iaW1nLXJlc3BvbnNpdmUiIHNyYz0iYXNzZXRzL2ltYWdlcy8xNTA4NzQwNzcwaDYucG5nIiBhbHQ9ImNsaWVudCI+PC9hPjwvZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlIj48ZGl2IGNsYXNzPSJvdXItY2xpZW50IHdvdyByb3RhdGVJbiIgZGF0YS13b3ctZHVyYXRpb249IjJzIj48YSBocmVmPSIjIj48aW1nIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgc3JjPSJhc3NldHMvaW1hZ2VzLzE1MDg4MjgyMjg2MGg4LnBuZyIgYWx0PSJjbGllbnQiPjwvYT48L2Rpdj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBZGQgQXJyb3dzIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3dpcGVyLWJ1dHRvbi1uZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzd2lwZXItYnV0dG9uLXByZXYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3VibGUtbGVmdCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48IS0tIGNsaWVudCBjb250YWluZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBjbGllbnQgbGlzdC0tPgogICAgICAgICAgICAgICAgPC9kaXY+PCEtLSBzd2lwZXIgd3JhcHBlciAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+PCEtLSByb3cgLS0+CiAgICA8L2Rpdj48IS0tIGNvbnRhaW5lciAtLT4KPC9zZWN0aW9uPgo8IS0tZW5kIHBheW1lbnQgbWV0aG9kIHNlY3Rpb24gc3RhcnQtLT4KPCEtLWZvb3RlciBhcmVhIHN0YXJ0LS0+Cjxmb290ZXIgaWQ9ImNvbnRhY3QiIGNsYXNzPSJmb290ZXItYXJlYSI+CiAgICA8IS0tZm9vdGVyIGFyZWEgc3RhcnQtLT4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1zdXBwb3J0LWJhciI+CiAgICAgICAgICAgIDwhLS0gRm9vdGVyIFN1cHBvcnQgTGlzdCBTdGFydCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXN1cHBvcnQtbGlzdCI+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIxcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWhlYWRwaG9uZXMiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+MjQvNyBDdXN0b21lciBTdXBwb3J0PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0id293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjFzIiBkYXRhLXdvdy1kZWxheT0iMnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItdGh1bWIiPjxpIGNsYXNzPSJmYSBmYS1lbnZlbG9wZSI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJjb250YWN0LnBocCI+c3VwcG9ydEBiaXRpZmluZXgubGl2ZTwvYT48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSIzcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLWNvbW1lbnRzLW8iPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+RnJpZW5kbHkgU3VwcG9ydCBUaWNrZXQ8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iMXMiIGRhdGEtd293LWRlbGF5PSI0cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aHVtYiI+PGkgY2xhc3M9ImZhIGZhLXBob25lIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPisxMzMwMjY1MDA0NTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIEZvb3RlciBTdXBwb3J0IEVuZCAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgY29sLXNtLTEyIHdvdyBmYWRlSW5MZWZ0IiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIChjKSAyMDEzIGJpdGlmaW5leCAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtc20tMTIgd293IGJvdW5jZUluRG93biIgZGF0YS13b3ctZHVyYXRpb249IjNzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1zbS0xMiB3b3cgYm91bmNlSW5Eb3duIiBkYXRhLXdvdy1kdXJhdGlvbj0iM3MiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjb3B5cmlnaHQtdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9InRlcm0tb2YtdXNlLnBocCIgY2xhc3M9InRleHQtY2VudGVyIiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5UZXJtIE9mIFVzZTwvYT4gfAogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJwcml2YWN5LXBvbGljeS5waHAiIGNsYXNzPSJ0ZXh0LXJpZ2h0IiBzdHlsZT0iY29sb3I6ICNmZmY7Ij5Qcml2YWN5IFBvbGljeTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJiYWNrLXRvLXRvcCIgY2xhc3M9InNjcm9sbC10b3AgYmFjay10by10b3AiIGRhdGEtb3JpZ2luYWwtdGl0bGU9IiIgdGl0bGU9IiIgPgogICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtYW5nbGUtdXAiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9vdGVyPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgbGkuZXhwb3J0LW1haW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIH0KPC9zdHlsZT4KPCEtLUdvb2dsZSBNYXAgQVBpIEtleS0tPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT1BSXphU3lBSHpQU1YyanNoYmpJOGZxbkNfQzRMMDhmZm5qNUVOM0EiPjwvc2NyaXB0Pgo8IS0tanF1ZXJ5IHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4gCgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tIEdtYXAgTG9hZCBIZXJlIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2dtYXBzLmpzIj48L3NjcmlwdD4KPCEtLSBNYXAgSnMgRmlsZSBMb2FkIC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL21hcC1zY3JpcHRiYTM2YmEzNmJhMzYuaHRtbD9jb2xvcj0yZWNjNzEiPjwvc2NyaXB0Pgo8IS0tIEhpZ2hsaWdodCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2hpZ2hsaWdodC5taW4uanMiPjwvc2NyaXB0Pgo8IS0tSnF1ZXJ5IFVpIFNsaWRlciBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS11aS1zbGlkZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLUNpcmNsZWZ1bCBKcyBGaWxlIExvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9qcXVlcnkuY2lyY2xpZnVsLmpzIj48L3NjcmlwdD4KPCEtLUNvdW50ZXJVcCBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5jb3VudGVydXAubWluLmpzIj48L3NjcmlwdD4KPCEtLSBSaXBwbGVzICBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2pxdWVyeS5yaXBwbGVzLW1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1TbGljayBOYXYgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvanF1ZXJ5LnNsaWNrbmF2Lm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1MaWdodGNhc2UgSnMgRmlsZSBMb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbGlnaHRjYXNlLmpzIj48L3NjcmlwdD4KPCEtLXBhcnRpY2xlIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tcGFydGljbGUgY3VzdG9tIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3BhcnRpY2xlcy1jdXN0b20uanMiPjwvc2NyaXB0Pgo8IS0tUmFpbkRyb3BzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvcmFpbmRyb3BzLmpzIj48L3NjcmlwdD4KPCEtLUVhc2luZyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL2Vhc2luZy1taW4uanMiPjwvc2NyaXB0Pgo8IS0tU2xpY2sgU2xpZGVyIEpzIEZpbGUgTG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3NsaWNrLm1pbi5qcyI+PC9zY3JpcHQ+CjwhLS1Td2lwZXIgc2NyaXB0IGxvYWQtLT4KPHNjcmlwdCBzcmM9ImFzc2V0cy9mcm9udC9qcy9zd2lwZXIubWluLmpzIj48L3NjcmlwdD4KPCEtLVdPVyBzY3JpcHQgbG9hZC0tPgo8c2NyaXB0IHNyYz0iYXNzZXRzL2Zyb250L2pzL3dvdy5taW4uanMiPjwvc2NyaXB0Pgo8IS0tV2F5UG9pbnRzIHNjcmlwdCBsb2FkLS0+CjxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvd2F5cG9pbnRzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iYXNzZXRzL2pzL2lvbi5yYW5nZVNsaWRlci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgJCh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB3b3cgPSBuZXcgV09XKHsKICAgICAgICAgICAgICAgIGJveENsYXNzOiAnd293JywKICAgICAgICAgICAgICAgIGFuaW1hdGVDbGFzczogJ2FuaW1hdGVkJywKICAgICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSwKICAgICAgICAgICAgICAgIGxpdmU6IHRydWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHdvdy5pbml0KCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxzY3JpcHQ+CiAgICAgICAgJC5lYWNoKCQoJy5zbGlkZXItaW5wdXQnKSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkdCA9ICQodGhpcyksCgogICAgICAgICAgICAgICAgICAgIGZyb20gPSAkdC5kYXRhKCdmcm9tJyksCiAgICAgICAgICAgICAgICAgICAgdG8gPSAkdC5kYXRhKCd0bycpLAoKICAgICAgICAgICAgICAgICAgICAkZGFpbHlQcm9maXQgPSAkKCR0LmRhdGEoJ2RhaWx5cHJvZml0JykpLAogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdCA9ICQoJHQuZGF0YSgndG90YWxwcm9maXQnKSksCgogICAgICAgICAgICAgICAgICAgICR2YWwgPSAkKCR0LmRhdGEoJ3ZhbHVldGFnJykpLAoKICAgICAgICAgICAgICAgICAgICBwZXJEYXkgPSAkdC5kYXRhKCdwZXJkYXknKSwKICAgICAgICAgICAgICAgICAgICBwZXJZZWFyID0gJHQuZGF0YSgncGVyeWVhcicpOwoKCiAgICAgICAgICAgICR0LmlvblJhbmdlU2xpZGVyKHsKICAgICAgICAgICAgICAgIGlucHV0X3ZhbHVlc19zZXBhcmF0b3I6ICI7CiAgICAgICAgICAgICAgICBwcmVmaXg6ICckICcsCiAgICAgICAgICAgICAgICBoaWRlX21pbl9tYXg6IHRydWUsCiAgICAgICAgICAgICAgICBmb3JjZV9lZGdlczogdHJ1ZSwKICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAkdmFsLnZhbCggJyQgJyArIHZhbC5mcm9tKTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIHByb2ZpdCA9ICh2YWwuZnJvbSAqIHBlckRheSAvIDEwMCkudG9GaXhlZCgxKTsKICAgICAgICAgICAgICAgICAgICBwcm9maXQgID0gJyQgJyArIHByb2ZpdC5yZXBsYWNlKCcuJywgJy4nKSA7CiAgICAgICAgICAgICAgICAgICAgJGRhaWx5UHJvZml0LnRleHQocHJvZml0KSA7CgogICAgICAgICAgICAgICAgICAgIHByb2ZpdCA9ICggKHZhbC5mcm9tICogcGVyRGF5IC8gMTAwKSogcGVyWWVhciApLnRvRml4ZWQoMSk7CiAgICAgICAgICAgICAgICAgICAgcHJvZml0ICA9ICAnJCAnICsgcHJvZml0LnJlcGxhY2UoJy4nLCAnLicpOwogICAgICAgICAgICAgICAgICAgICR0b3RhbFByb2ZpdC50ZXh0KHByb2ZpdCk7CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICAkKCcuaW52ZXN0LXR5cGVfX3Byb2ZpdC0tdmFsJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKCiAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKCQodGhpcykuZGF0YSgnc2xpZGVyJykpLmRhdGEoImlvblJhbmdlU2xpZGVyIik7CgogICAgICAgICAgICBzbGlkZXIudXBkYXRlKHsKICAgICAgICAgICAgICAgIGZyb206ICQodGhpcykudmFsKCkucmVwbGFjZSgnJCAnLCAiIikKICAgICAgICAgICAgfSk7CiAgICAgICAgfSkgICAgICAKICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS1NYWluIGpzIGZpbGUgbG9hZC0tPgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvanMvbWFpbi5qcyI+PC9zY3JpcHQ+CgogICAgICAgIDxzY3JpcHQgc3JjPSJhc3NldHMvZnJvbnQvMi9qcy9tYWluLmpzIj48L3NjcmlwdD4KCiAgICAgICAgPCEtLXN3YWwgYWxlcnQgbWVzc2FnZS0tPgoKICAgICAgICA8IS0tZW5kIHN3YWwgYWxlcnQgbWVzc2FnZS0tPgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIG1vYmlsZSA9ICgvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpOwoKICAgICAgICBobGpzLmluaXRIaWdobGlnaHRpbmdPbkxvYWQoKTsKICAgICAgICBobGpzLmNvbmZpZ3VyZSh7dXNlQlI6IHRydWV9KTsKICAgICAgICBqUXVlcnkoJyNyYWluZHJvcHMnKS5yYWluZHJvcHMoe2NvbG9yOicjZmZmJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIGpRdWVyeSgnI3JhaW5kcm9wcy1ncmVlbicpLnJhaW5kcm9wcyh7Y29sb3I6JyMyZWNjNzEgJyxjYW52YXNIZWlnaHQ6NX0pOwogICAgICAgIDwvc2NyaXB0PgoKICAgICAgICAgICAgPCEtLSBHZXRCdXR0b24uaW8gd2lkZ2V0IC0tPgogICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgICAgIC8vIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vICAgICB2YXIgb3B0aW9ucyA9IHsKICAgICAgICAgICAgLy8gICAgICAgICB3aGF0c2FwcDogIisxMzMwMjY1MDA0NSIsIC8vIFdoYXRzQXBwIG51bWJlcgogICAgICAgICAgICAvLyAgICAgICAgIGNhbGxfdG9fYWN0aW9uOiAiTWVzc2FnZSB1cyBOb3ciLCAvLyBDYWxsIHRvIGFjdGlvbgogICAgICAgICAgICAvLyAgICAgICAgIHBvc2l0aW9uOiAibGVmdCIsIC8vIFBvc2l0aW9uIG1heSBiZSAncmlnaHQnIG9yICdsZWZ0JwogICAgICAgICAgICAvLyAgICAgfTsKICAgICAgICAgICAgLy8gICAgIHZhciBwcm90byA9IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLCBob3N0ID0gImdldGJ1dHRvbi5pbyIsIHVybCA9IHByb3RvICsgIi8vc3RhdGljLiIgKyBob3N0OwogICAgICAgICAgICAvLyAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHMuYXN5bmMgPSB0cnVlOyBzLnNyYyA9IHVybCArICcvd2lkZ2V0LXNlbmQtYnV0dG9uL2pzL2luaXQuanMnOwogICAgICAgICAgICAvLyAgICAgcy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IFdoV2lkZ2V0U2VuZEJ1dHRvbi5pbml0KGhvc3QsIHByb3RvLCBvcHRpb25zKTsgfTsKICAgICAgICAgICAgLy8gICAgIHZhciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyB4LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsIHgpOwogICAgICAgICAgICAvLyB9KSgpOwogICAgICAgIDwvc2NyaXB0PgogICAgICAgIDwhLS0gL0dldEJ1dHRvbi5pbyB3aWRnZXQgLS0+CiAgICAgICAgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAubWdtIHsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgIHotaW5kZXg6IDkwOwogICAgICAgICAgICAgICAgYm90dG9tOiAyMHB4OwogICAgICAgICAgICAgICAgcmlnaHQ6IDQwJTsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZDk2MWE7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDI3cHg7CiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwcHggNXB4IDEzcHggMHB4IHJnYmEoMCwgMCwgMCwgLjMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubWdtIGEgewogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5tZ20gYSwKICAgICAgICAgICAgLm1nbSBhOmFjdGl2ZSB7CiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgfQoKICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9Im1nbSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHh0IiBzdHlsZT0iY29sb3I6YmxhY2s7Ij5JbnZlc3RvciBmcm9tIDxiPjwvYj4ganVzdCBlYXJuZWQgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+PC9hPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgdmFyIGxpc3RDb3VudHJpZXMgPSBbJ1VuaXRlZCBLaW5nZG9tJywgJ0luZGlhJywgJ1BoaWxpcHBpbmUnLCAnVVNBJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0l0YWx5JywgJ1NvdXRoIEtvcmVhJywgJ0F1c3RyYWxpYScsICdOb3J3YXknLCAnQ2FuYWRhJywgJ0FyZ2VudGluYScsICdTYXVkaSBBcmFiaWEnLCAnTWV4aWNvJywgJ1NwYWluJywgJ0F1c3RyaWEnLCAnVmVuZXp1ZWxhJywgJ1NvdXRoIEFmcmljYScsICdTd2VkZW4nLCAnU291dGggS29yZWEnLCAnQ2hpbmEnLCAnSXRhbHknLCAnR2VybWFueScsICdVbml0ZWQgS2luZ2RvbScsICdCYWhyYWluJywgJ0dyZWVjZScsICdDdWJhJywgJ0J1bGdhcmlhJywgJ1BvcnR1Z2FsJywgJ0F1c3RyaWEnLCAnQ3lwcnVzJywgJ1BhbmFtYScsICdBc2lhJywgJ05vcndheScsICdOZXRoZXJsYW5kcycsICdTd2l0emVybGFuZCcsICdCZWxnaXVtJywgJ0lzcmFlbCcsICdDeXBydXMnLCAnU3BhaW4nLCAnTm9yd2F5J107CiAgICAgICAgdmFyIGxpc3RQbGFucyA9IFsnJDIwMDAnLCAnJDEwMDAnLCAnJDUwMDAwJywgJyQxNTAwMCcsICckMTAwMDAnLCAnJDEwMDAwMCcsICckMjAwMDAnLCAnJDE1MDAnLCAnJDMwMDAwJywgJyQ0MDAwMCcsICckMTIwMCcsICckNjAwMDAnLCAnJDM0MDAnLCAnJDcwMDAnLCAnJDI1MDAwJywgJyQyNTAwMCcsICckMzUwMDAnLCAnJDUwMDAnLCAnJDcwMDAnLCAnJDQ1MDAwJywgJyQzNTAwJywgJyQ1MDAwJywgJyQxMjUwMCcsICckOTUwMCddOwogICAgICAgIGludGVydmFsID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDQwMDAwIC0gODAwMCArIDEpICsgODAwMCk7CiAgICAgICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICAgICAgZnVuY3Rpb24gcmVxdWVzdCgpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChydW4pOwogICAgICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgICAgICAgICB2YXIgY291bnRyeSA9IGxpc3RDb3VudHJpZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdENvdW50cmllcy5sZW5ndGgpXTsKICAgICAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgICAgICB2YXIgbXNnID0gJ1NvbWVvbmUgZnJvbSA8Yj4nICsgY291bnRyeSArICc8L2I+IGp1c3QgZWFybmVkICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij4nICsgcGxhbiArICcgLjwvYT4nOwogICAgICAgICAgICAkKCIubWdtIC50eHQiKS5odG1sKG1zZyk7CiAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVJbigzMDApOwogICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVPdXQoMzAwKTsKICAgICAgICAgICAgfSwgNjAwMCk7CiAgICAgICAgICAgIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKICAgICAgICB9CgogICAgPC9zY3JpcHQ+CiAgICAgICAgCiA8IS0tIEJlZ2luIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gQmVnaW4gb2YgQ2hhcG9ydCBMaXZlIENoYXQgY29kZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgooZnVuY3Rpb24odyxkLHYzKXsKdy5jaGFwb3J0Q29uZmlnID0gewogIGFwcElkIDogJzZhNTA2ZGJhNGRhYjNlYWQ1ZThlYTJlNicsCn07CgppZih3LmNoYXBvcnQpcmV0dXJuO3YzPXcuY2hhcG9ydD17fTt2My5fcT1bXTt2My5fbD17fTt2My5xPWZ1bmN0aW9uKCl7djMuX3EucHVzaChhcmd1bWVudHMpfTt2My5vbj1mdW5jdGlvbihlLGZuKXtpZighdjMuX2xbZV0pdjMuX2xbZV09W107djMuX2xbZV0ucHVzaChmbil9O3ZhciBzPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO3MuYXN5bmM9dHJ1ZTtzLnNyYz0naHR0cHM6Ly9hcHAuY2hhcG9ydC5jb20vamF2YXNjcmlwdHMvaW5zZXJ0LmpzJzt2YXIgc3M9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07c3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxzcyl9KSh3aW5kb3csIGRvY3VtZW50KTsKPC9zY3JpcHQ+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CjwhLS0gRW5kIG9mIENoYXBvcnQgTGl2ZSBDaGF0IGNvZGUgLS0+CiAgICA8L2JvZHk+CgoKPCEtLSBNaXJyb3JlZCBmcm9tIENyeXB0b3BsYy5vcmcvZW4vaG9tZS5waHAgYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUaHUsIDI1IEF1ZyAyMDIyIDAwOjU2OjA4IEdNVCAtLT4KCjwhLS0gTWlycm9yZWQgZnJvbSBjcnlwdG9wbGMub3JnL2VuL2hvbWUucGhwIGJ5IEhUVHJhY2sgV2Vic2l0ZSBDb3BpZXIvMy54IFtYUiZDTycyMDE0XSwgV2VkLCAwNiBTZXAgMjAyMyAwMzo1MzozNSBHTVQgLS0+CjwvaHRtbD4="}},"time_used":44,"timings":{"blocked":0,"dns":3,"connect":35,"send":0,"wait":41,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/css/slick.css","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.609Z","timestamp":1785126645609,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/css/slick.css HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/css\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 483\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1776,"size_decoded":730,"mime_type":"text/css","magic":"ASCII text","md5":"f38b2db10e01b1572732a3191d538707","sha1":"a94a059b3178b4adec09e3281ace2819a30095a4","sha256":"de1e399b07289f3b0a8d35142e363e128124a1185770e214e25e58030dad48e5","sha512":"c11e283612c11dfeec9a3cb42b8a2acdd5ae99dfabe7ffba40efef0dd6bbe8c5b98ae8383d3eeff3a168124c922097eddd703401ee9ac6122f1ebab09bbf7737","ssdeep":"","tlshash":"c931294845b389468416808d5fd7ca6d2bfff0130829e199ba8d1306cfce7d8a9c26b2","first_seen":"2023-04-05T08:37:21Z","last_seen":"2026-07-27T07:59:56.082835Z","times_seen":72348,"resource_available":false,"data":"LyogU2xpZGVyICovCi5zbGljay1zbGlkZXIKewogICAgcG9zaXRpb246IHJlbGF0aXZlOwoKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKCiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwoKICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsKICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTsKICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15OwogICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7CiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50Owp9Cgouc2xpY2stbGlzdAp7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CgogICAgZGlzcGxheTogYmxvY2s7CiAgICBvdmVyZmxvdzogaGlkZGVuOwoKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KLnNsaWNrLWxpc3Q6Zm9jdXMKewogICAgb3V0bGluZTogbm9uZTsKfQouc2xpY2stbGlzdC5kcmFnZ2luZwp7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjdXJzb3I6IGhhbmQ7Cn0KCi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLAouc2xpY2stc2xpZGVyIC5zbGljay1saXN0CnsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKfQoKLnNsaWNrLXRyYWNrCnsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CgogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQouc2xpY2stdHJhY2s6YmVmb3JlLAouc2xpY2stdHJhY2s6YWZ0ZXIKewogICAgZGlzcGxheTogdGFibGU7CgogICAgY29udGVudDogJyc7Cn0KLnNsaWNrLXRyYWNrOmFmdGVyCnsKICAgIGNsZWFyOiBib3RoOwp9Ci5zbGljay1sb2FkaW5nIC5zbGljay10cmFjawp7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47Cn0KCi5zbGljay1zbGlkZQp7CiAgICBkaXNwbGF5OiBub25lOwogICAgZmxvYXQ6IGxlZnQ7CgogICAgaGVpZ2h0OiAxMDAlOwogICAgbWluLWhlaWdodDogMXB4Owp9CltkaXI9J3J0bCddIC5zbGljay1zbGlkZQp7CiAgICBmbG9hdDogcmlnaHQ7Cn0KLnNsaWNrLXNsaWRlIGltZwp7CiAgICBkaXNwbGF5OiBibG9jazsKfQouc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcKewogICAgZGlzcGxheTogbm9uZTsKfQouc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nCnsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUKewogICAgZGlzcGxheTogYmxvY2s7Cn0KLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlCnsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKfQouc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlCnsKICAgIGRpc3BsYXk6IGJsb2NrOwoKICAgIGhlaWdodDogYXV0bzsKCiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKfQouc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0K"}},"time_used":34,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:46.112Z","timestamp":1785126646112,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WlhyyTn89ddpQ.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.bitifinex.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 37756\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 18:07:05 GMT\r\nexpires: Sat, 24 Jul 2027 18:07:05 GMT\r\ncache-control: public, max-age=31536000\r\nage: 210221\r\nlast-modified: Thu, 04 Sep 2025 17:09:21 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":37756,"size_decoded":38569,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 37756, version 1.0","md5":"8a6a885dd57e60ddd85f3190737fa209","sha1":"dbca56b7fe8ee5e4bfb648d639fc6a3bfc5c6e85","sha256":"b9b102f608e8252e3c1e7287309832b16af7dcc6e788651fa503a3faacd7fb2f","sha512":"2bd785869777dc57dbb5934d4c6915b66f89746dd79897820eb4bbd0d262b2612bafdfb07c1e092658ad819f582a97e6a196531f74187d8a0b0bbd07fcbba56a","ssdeep":"768:sqRKhgpCf9U72WeD4A/5IqtBr0ikGvEaQh38/LBu3Emdc043RpgZKMqjkEfO1m:jKgp+9U7Ve8A/7Ai9Et3EBKEUE3RqMMu","tlshash":"3e030130df5884edcc0ba371fdeea81fc7a332a594c0b3368297af1b80111499d99e49","first_seen":"2025-09-05T00:25:10.258656Z","last_seen":"2026-07-27T08:07:37.444827Z","times_seen":543565,"resource_available":false,"data":"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"}},"time_used":59,"timings":{"blocked":0,"dns":2,"connect":29,"send":0,"wait":16,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/5426.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.637Z","timestamp":1785126646637,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/5426.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 3759\r\nage: 1340\r\nlast-modified: Thu, 25 Jan 2024 08:50:23 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 04:08:33 GMT\r\ncache-control: public, max-age=86400\r\netag: \"8634cee42b68c501da8d76beee00bf86\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: ewnjb9QH5TzF_cSYka45AGkRV_GYuaiGH8dj1AwRSWhIYr3ojfzoHg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":3759,"size_decoded":4330,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"8634cee42b68c501da8d76beee00bf86","sha1":"346a50344174ec7c53cdd48080a55f7cd3a7c164","sha256":"890b9f9ed3f5ab8390b86f93b5b8ba0c2d5d50a5dc21668734b3537bc3a65f53","sha512":"405e62a3f1c24476041f90ddb5e50801693578a1b3e108919edcde05bb429bad77fc60b0096adbaa9a2704835ebd7dc165720ad0a14ada9498b3234d361ef259","ssdeep":"","tlshash":"fa715be58e8349f8b5ce461d652892f55cc24943d9f987101ee467921800a82f0a90e2","first_seen":"2024-01-31T18:12:49Z","last_seen":"2026-07-27T08:07:37.438436Z","times_seen":2957,"resource_available":false,"data":"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"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/js/jquery.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.623Z","timestamp":1785126645623,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/js/jquery.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 29485\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":86659,"size_decoded":29741,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32058)","md5":"c9f5aeeca3ad37bf2aa006139b935f0a","sha1":"1055018c28ab41087ef9ccefe411606893dabea2","sha256":"87083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de","sha512":"dcff2b5c2b8625d3593a7531ff4ddcd633939cc9f7acfeb79c18a9e6038fdaa99487960075502f159d44f902d965b0b5aed32b41bfa66a1dc07d85b5d5152b58","ssdeep":"1536:YNhEyjjTikEJO4edXXe9J578go6MWX2xkj8e4c4j2ll2AckaXEP6n15HZ+FhFcQ7:uxc2yjx4j2uX/kcQDU8Cu9","tlshash":"4483e6d9b2c67062977730b950bf410bb17a98dab44c8c60f158d9d47eb8a8d907bf2c","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-07-27T08:09:24.066847Z","times_seen":98387,"resource_available":true,"data":"LyohIGpRdWVyeSB2My4yLjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1hLmRvY3VtZW50P2IoYSwhMCk6ZnVuY3Rpb24oYSl7aWYoIWEuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGIoYSl9OmIoYSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPVtdLGQ9YS5kb2N1bWVudCxlPU9iamVjdC5nZXRQcm90b3R5cGVPZixmPWMuc2xpY2UsZz1jLmNvbmNhdCxoPWMucHVzaCxpPWMuaW5kZXhPZixqPXt9LGs9ai50b1N0cmluZyxsPWouaGFzT3duUHJvcGVydHksbT1sLnRvU3RyaW5nLG49bS5jYWxsKE9iamVjdCksbz17fTtmdW5jdGlvbiBwKGEsYil7Yj1ifHxkO3ZhciBjPWIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yy50ZXh0PWEsYi5oZWFkLmFwcGVuZENoaWxkKGMpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyl9dmFyIHE9IjMuMi4xIixyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyByLmZuLmluaXQoYSxiKX0scz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csdD0vXi1tcy0vLHU9Ly0oW2Etel0pL2csdj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O3IuZm49ci5wcm90b3R5cGU9e2pxdWVyeTpxLGNvbnN0cnVjdG9yOnIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBmLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9mLmNhbGwodGhpcyk6YTwwP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBiPXIubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxifSxlYWNoOmZ1bmN0aW9uKGEpe3JldHVybiByLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhyLm1hcCh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuY2FsbChiLGMsYil9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGYuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgsYz0rYSsoYTwwP2I6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGM+PTAmJmM8Yj9bdGhpc1tjXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6aCxzb3J0OmMuc29ydCxzcGxpY2U6Yy5zcGxpY2V9LHIuZXh0ZW5kPXIuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsaT1hcmd1bWVudHMubGVuZ3RoLGo9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGcmJihqPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyksIm9iamVjdCI9PXR5cGVvZiBnfHxyLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09aSYmKGc9dGhpcyxoLS0pO2g8aTtoKyspaWYobnVsbCE9KGE9YXJndW1lbnRzW2hdKSlmb3IoYiBpbiBhKWM9Z1tiXSxkPWFbYl0sZyE9PWQmJihqJiZkJiYoci5pc1BsYWluT2JqZWN0KGQpfHwoZT1BcnJheS5pc0FycmF5KGQpKSk/KGU/KGU9ITEsZj1jJiZBcnJheS5pc0FycmF5KGMpP2M6W10pOmY9YyYmci5pc1BsYWluT2JqZWN0KGMpP2M6e30sZ1tiXT1yLmV4dGVuZChqLGYsZCkpOnZvaWQgMCE9PWQmJihnW2JdPWQpKTtyZXR1cm4gZ30sci5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKHErTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PXIudHlwZShhKX0saXNXaW5kb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30saXNOdW1lcmljOmZ1bmN0aW9uKGEpe3ZhciBiPXIudHlwZShhKTtyZXR1cm4oIm51bWJlciI9PT1ifHwic3RyaW5nIj09PWIpJiYhaXNOYU4oYS1wYXJzZUZsb2F0KGEpKX0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYixjO3JldHVybiEoIWF8fCJbb2JqZWN0IE9iamVjdF0iIT09ay5jYWxsKGEpKSYmKCEoYj1lKGEpKXx8KGM9bC5jYWxsKGIsImNvbnN0cnVjdG9yIikmJmIuY29uc3RydWN0b3IsImZ1bmN0aW9uIj09dHlwZW9mIGMmJm0uY2FsbChjKT09PW4pKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSx0eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP2ErIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9qW2suY2FsbChhKV18fCJvYmplY3QiOnR5cGVvZiBhfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGEpe3AoYSl9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHQsIm1zLSIpLnJlcGxhY2UodSx2KX0sZWFjaDpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MDtpZih3KGEpKXtmb3IoYz1hLmxlbmd0aDtkPGM7ZCsrKWlmKGIuY2FsbChhW2RdLGQsYVtkXSk9PT0hMSlicmVha31lbHNlIGZvcihkIGluIGEpaWYoYi5jYWxsKGFbZF0sZCxhW2RdKT09PSExKWJyZWFrO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOihhKyIiKS5yZXBsYWNlKHMsIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKHcoT2JqZWN0KGEpKT9yLm1lcmdlKGMsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTpoLmNhbGwoYyxhKSksY30saW5BcnJheTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG51bGw9PWI/LTE6aS5jYWxsKGIsYSxjKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO2Q8YztkKyspYVtlKytdPWJbZF07cmV0dXJuIGEubGVuZ3RoPWUsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkLGU9W10sZj0wLGc9YS5sZW5ndGgsaD0hYztmPGc7ZisrKWQ9IWIoYVtmXSxmKSxkIT09aCYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj0wLGg9W107aWYodyhhKSlmb3IoZD1hLmxlbmd0aDtmPGQ7ZisrKWU9YihhW2ZdLGYsYyksbnVsbCE9ZSYmaC5wdXNoKGUpO2Vsc2UgZm9yKGYgaW4gYSllPWIoYVtmXSxmLGMpLG51bGwhPWUmJmgucHVzaChlKTtyZXR1cm4gZy5hcHBseShbXSxoKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxiPWEsYT1jKSxyLmlzRnVuY3Rpb24oYSkpcmV0dXJuIGQ9Zi5jYWxsKGFyZ3VtZW50cywyKSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxkLmNvbmNhdChmLmNhbGwoYXJndW1lbnRzKSkpfSxlLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8ci5ndWlkKyssZX0sbm93OkRhdGUubm93LHN1cHBvcnQ6b30pLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihyLmZuW1N5bWJvbC5pdGVyYXRvcl09Y1tTeW1ib2wuaXRlcmF0b3JdKSxyLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7alsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiB3KGEpe3ZhciBiPSEhYSYmImxlbmd0aCJpbiBhJiZhLmxlbmd0aCxjPXIudHlwZShhKTtyZXR1cm4iZnVuY3Rpb24iIT09YyYmIXIuaXNXaW5kb3coYSkmJigiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmYj4wJiZiLTEgaW4gYSl9dmFyIHg9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdT0ic2l6emxlIisxKm5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9aGEoKSx6PWhhKCksQT1oYSgpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPXt9Lmhhc093blByb3BlcnR5LEQ9W10sRT1ELnBvcCxGPUQucHVzaCxHPUQucHVzaCxIPUQuc2xpY2UsST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sSj0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLEs9IltcXHgyMFxcdFxcclxcblxcZl0iLEw9Iig/OlxcXFwufFtcXHctXXxbXlwwLVxceGEwXSkrIixNPSJcXFsiK0srIiooIitMKyIpKD86IitLKyIqKFsqXiR8IX5dPz0pIitLKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrTCsiKSl8KSIrSysiKlxcXSIsTj0iOigiK0wrIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK00rIikqKXwuKilcXCl8KSIsTz1uZXcgUmVnRXhwKEsrIisiLCJnIiksUD1uZXcgUmVnRXhwKCJeIitLKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK0srIiskIiwiZyIpLFE9bmV3IFJlZ0V4cCgiXiIrSysiKiwiK0srIioiKSxSPW5ldyBSZWdFeHAoIl4iK0srIiooWz4rfl18IitLKyIpIitLKyIqIiksUz1uZXcgUmVnRXhwKCI9IitLKyIqKFteXFxdJ1wiXSo/KSIrSysiKlxcXSIsImciKSxUPW5ldyBSZWdFeHAoTiksVT1uZXcgUmVnRXhwKCJeIitMKyIkIiksVj17SUQ6bmV3IFJlZ0V4cCgiXiMoIitMKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK0wrIikiKSxUQUc6bmV3IFJlZ0V4cCgiXigiK0wrInxbKl0pIiksQVRUUjpuZXcgUmVnRXhwKCJeIitNKSxQU0VVRE86bmV3IFJlZ0V4cCgiXiIrTiksQ0hJTEQ6bmV3IFJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitLKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitLKyIqKD86KFsrLV18KSIrSysiKihcXGQrKXwpKSIrSysiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJlZ0V4cCgiXig/OiIrSisiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK0srIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrSysiKigoPzotXFxkKT9cXGQqKSIrSysiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sVz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFg9L15oXGQkL2ksWT0vXltee10rXHtccypcW25hdGl2ZSBcdy8sWj0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLCQ9L1srfl0vLF89bmV3IFJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitLKyI/fCgiK0srIil8LikiLCJpZyIpLGFhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iMHgiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6ZDwwP1N0cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5NiwxMDIzJmR8NTYzMjApfSxiYT0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxjYT1mdW5jdGlvbihhLGIpe3JldHVybiBiPyJcMCI9PT1hPyJcdWZmZmQiOmEuc2xpY2UoMCwtMSkrIlxcIithLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2F9LGRhPWZ1bmN0aW9uKCl7bSgpfSxlYT10YShmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwJiYoImZvcm0iaW4gYXx8ImxhYmVsImluIGEpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0cuYXBwbHkoRD1ILmNhbGwodi5jaGlsZE5vZGVzKSx2LmNoaWxkTm9kZXMpLERbdi5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZmEpe0c9e2FwcGx5OkQubGVuZ3RoP2Z1bmN0aW9uKGEsYil7Ri5hcHBseShhLEguY2FsbChiKSl9OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgsZD0wO3doaWxlKGFbYysrXT1iW2QrK10pO2EubGVuZ3RoPWMtMX19fWZ1bmN0aW9uIGdhKGEsYixkLGUpe3ZhciBmLGgsaixrLGwsbyxyLHM9YiYmYi5vd25lckRvY3VtZW50LHc9Yj9iLm5vZGVUeXBlOjk7aWYoZD1kfHxbXSwic3RyaW5nIiE9dHlwZW9mIGF8fCFhfHwxIT09dyYmOSE9PXcmJjExIT09dylyZXR1cm4gZDtpZighZSYmKChiP2Iub3duZXJEb2N1bWVudHx8Yjp2KSE9PW4mJm0oYiksYj1ifHxuLHApKXtpZigxMSE9PXcmJihsPVouZXhlYyhhKSkpaWYoZj1sWzFdKXtpZig5PT09dyl7aWYoIShqPWIuZ2V0RWxlbWVudEJ5SWQoZikpKXJldHVybiBkO2lmKGouaWQ9PT1mKXJldHVybiBkLnB1c2goaiksZH1lbHNlIGlmKHMmJihqPXMuZ2V0RWxlbWVudEJ5SWQoZikpJiZ0KGIsaikmJmouaWQ9PT1mKXJldHVybiBkLnB1c2goaiksZH1lbHNle2lmKGxbMl0pcmV0dXJuIEcuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpKSxkO2lmKChmPWxbM10pJiZjLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gRy5hcHBseShkLGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShmKSksZH1pZihjLnFzYSYmIUFbYSsiICJdJiYoIXF8fCFxLnRlc3QoYSkpKXtpZigxIT09dylzPWIscj1hO2Vsc2UgaWYoIm9iamVjdCIhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpeyhrPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9rPWsucmVwbGFjZShiYSxjYSk6Yi5zZXRBdHRyaWJ1dGUoImlkIixrPXUpLG89ZyhhKSxoPW8ubGVuZ3RoO3doaWxlKGgtLSlvW2hdPSIjIitrKyIgIitzYShvW2hdKTtyPW8uam9pbigiLCIpLHM9JC50ZXN0KGEpJiZxYShiLnBhcmVudE5vZGUpfHxifWlmKHIpdHJ5e3JldHVybiBHLmFwcGx5KGQscy5xdWVyeVNlbGVjdG9yQWxsKHIpKSxkfWNhdGNoKHgpe31maW5hbGx5e2s9PT11JiZiLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiBpKGEucmVwbGFjZShQLCIkMSIpLGIsZCxlKX1mdW5jdGlvbiBoYSgpe3ZhciBhPVtdO2Z1bmN0aW9uIGIoYyxlKXtyZXR1cm4gYS5wdXNoKGMrIiAiKT5kLmNhY2hlTGVuZ3RoJiZkZWxldGUgYlthLnNoaWZ0KCldLGJbYysiICJdPWV9cmV0dXJuIGJ9ZnVuY3Rpb24gaWEoYSl7cmV0dXJuIGFbdV09ITAsYX1mdW5jdGlvbiBqYShhKXt2YXIgYj1uLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1jLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24gbGEoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiZhLnNvdXJjZUluZGV4LWIuc291cmNlSW5kZXg7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIG1hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBvYShhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuImZvcm0iaW4gYj9iLnBhcmVudE5vZGUmJmIuZGlzYWJsZWQ9PT0hMT8ibGFiZWwiaW4gYj8ibGFiZWwiaW4gYi5wYXJlbnROb2RlP2IucGFyZW50Tm9kZS5kaXNhYmxlZD09PWE6Yi5kaXNhYmxlZD09PWE6Yi5pc0Rpc2FibGVkPT09YXx8Yi5pc0Rpc2FibGVkIT09IWEmJmVhKGIpPT09YTpiLmRpc2FibGVkPT09YToibGFiZWwiaW4gYiYmYi5kaXNhYmxlZD09PWF9fWZ1bmN0aW9uIHBhKGEpe3JldHVybiBpYShmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixpYShmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIHFhKGEpe3JldHVybiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmF9Yz1nYS5zdXBwb3J0PXt9LGY9Z2EuaXNYTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiEhYiYmIkhUTUwiIT09Yi5ub2RlTmFtZX0sbT1nYS5zZXREb2N1bWVudD1mdW5jdGlvbihhKXt2YXIgYixlLGc9YT9hLm93bmVyRG9jdW1lbnR8fGE6djtyZXR1cm4gZyE9PW4mJjk9PT1nLm5vZGVUeXBlJiZnLmRvY3VtZW50RWxlbWVudD8obj1nLG89bi5kb2N1bWVudEVsZW1lbnQscD0hZihuKSx2IT09biYmKGU9bi5kZWZhdWx0VmlldykmJmUudG9wIT09ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZGEsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixkYSkpLGMuYXR0cmlidXRlcz1qYShmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGFzc05hbWU9ImkiLCFhLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWphKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKG4uY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPVkudGVzdChuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGMuZ2V0QnlJZD1qYShmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFuLmdldEVsZW1lbnRzQnlOYW1lfHwhbi5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShfLGFhKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJpZCIpPT09Yn19LGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYz9bY106W119fSk6KGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShfLGFhKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZU5vZGUmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSxkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudEJ5SWQmJnApe3ZhciBjLGQsZSxmPWIuZ2V0RWxlbWVudEJ5SWQoYSk7aWYoZil7aWYoYz1mLmdldEF0dHJpYnV0ZU5vZGUoImlkIiksYyYmYy52YWx1ZT09PWEpcmV0dXJuW2ZdO2U9Yi5nZXRFbGVtZW50c0J5TmFtZShhKSxkPTA7d2hpbGUoZj1lW2QrK10paWYoYz1mLmdldEF0dHJpYnV0ZU5vZGUoImlkIiksYyYmYy52YWx1ZT09PWEpcmV0dXJuW2ZdfXJldHVybltdfX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOmMucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnApcmV0dXJuIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKX0scj1bXSxxPVtdLChjLnFzYT1ZLnRlc3Qobi5xdWVyeVNlbGVjdG9yQWxsKSkmJihqYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrdSsiJz48L2E+PHNlbGVjdCBpZD0nIit1KyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnEucHVzaCgiWypeJF09IitLKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHEucHVzaCgiXFxbIitLKyIqKD86dmFsdWV8IitKKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrdSsiLV0iKS5sZW5ndGh8fHEucHVzaCgifj0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrdSsiKyoiKS5sZW5ndGh8fHEucHVzaCgiLiMuK1srfl0iKX0pLGphKGZ1bmN0aW9uKGEpe2EuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtiLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGEuYXBwZW5kQ2hpbGQoYikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGEucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnEucHVzaCgibmFtZSIrSysiKlsqXiR8IX5dPz0iKSwyIT09YS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmcS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLG8uYXBwZW5kQ2hpbGQoYSkuZGlzYWJsZWQ9ITAsMiE9PWEucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZxLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IikscS5wdXNoKCIsLio6Iil9KSksKGMubWF0Y2hlc1NlbGVjdG9yPVkudGVzdChzPW8ubWF0Y2hlc3x8by53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fG8ubW96TWF0Y2hlc1NlbGVjdG9yfHxvLm9NYXRjaGVzU2VsZWN0b3J8fG8ubXNNYXRjaGVzU2VsZWN0b3IpKSYmamEoZnVuY3Rpb24oYSl7Yy5kaXNjb25uZWN0ZWRNYXRjaD1zLmNhbGwoYSwiKiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixOKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9WS50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8WS50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09bnx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1ufHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0koayxhKS1JKGssYik6MDo0JmQ/LTE6MSl9OmZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgYyxkPTAsZT1hLnBhcmVudE5vZGUsZj1iLnBhcmVudE5vZGUsZz1bYV0saD1bYl07aWYoIWV8fCFmKXJldHVybiBhPT09bj8tMTpiPT09bj8xOmU/LTE6Zj8xOms/SShrLGEpLUkoayxiKTowO2lmKGU9PT1mKXJldHVybiBsYShhLGIpO2M9YTt3aGlsZShjPWMucGFyZW50Tm9kZSlnLnVuc2hpZnQoYyk7Yz1iO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTt3aGlsZShnW2RdPT09aFtkXSlkKys7cmV0dXJuIGQ/bGEoZ1tkXSxoW2RdKTpnW2RdPT09dj8tMTpoW2RdPT09dj8xOjB9LG4pOm59LGdhLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZ2EoYSxudWxsLG51bGwsYil9LGdhLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGIpe2lmKChhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSxiPWIucmVwbGFjZShTLCI9JyQxJ10iKSxjLm1hdGNoZXNTZWxlY3RvciYmcCYmIUFbYisiICJdJiYoIXJ8fCFyLnRlc3QoYikpJiYoIXF8fCFxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBnYShiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxnYS5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGdhLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZDLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxnYS5lc2NhcGU9ZnVuY3Rpb24oYSl7cmV0dXJuKGErIiIpLnJlcGxhY2UoYmEsY2EpfSxnYS5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGdhLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1nYS5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9Z2Euc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aWEsbWF0Y2g6VixhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKF8sYWEpLGFbM109KGFbM118fGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKF8sYWEpLCJ+PSI9PT1hWzJdJiYoYVszXT0iICIrYVszXSsiICIpLGEuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09YVsxXS5zbGljZSgwLDMpPyhhWzNdfHxnYS5lcnJvcihhWzBdKSxhWzRdPSsoYVs0XT9hWzVdKyhhWzZdfHwxKToyKigiZXZlbiI9PT1hWzNdfHwib2RkIj09PWFbM10pKSxhWzVdPSsoYVs3XSthWzhdfHwib2RkIj09PWFbM10pKTphWzNdJiZnYS5lcnJvcihhWzBdKSxhfSxQU0VVRE86ZnVuY3Rpb24oYSl7dmFyIGIsYz0hYVs2XSYmYVsyXTtyZXR1cm4gVi5DSElMRC50ZXN0KGFbMF0pP251bGw6KGFbM10/YVsyXT1hWzRdfHxhWzVdfHwiIjpjJiZULnRlc3QoYykmJihiPWcoYywhMCkpJiYoYj1jLmluZGV4T2YoIikiLGMubGVuZ3RoLWIpLWMubGVuZ3RoKSYmKGFbMF09YVswXS5zbGljZSgwLGIpLGFbMl09Yy5zbGljZSgwLGIpKSxhLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKF8sYWEpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK0srIikiK2ErIigiK0srInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWdhLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjohYnx8KGUrPSIiLCI9Ij09PWI/ZT09PWM6IiE9Ij09PWI/ZSE9PWM6Il49Ij09PWI/YyYmMD09PWUuaW5kZXhPZihjKToiKj0iPT09Yj9jJiZlLmluZGV4T2YoYyk+LTE6IiQ9Ij09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09Yzoifj0iPT09Yj8oIiAiK2UucmVwbGFjZShPLCIgIikrIiAiKS5pbmRleE9mKGMpPi0xOiJ8PSI9PT1iJiYoZT09PWN8fGUuc2xpY2UoMCxjLmxlbmd0aCsxKT09PWMrIi0iKSl9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxhc3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHM9IWkmJiFoLHQ9ITE7aWYocSl7aWYoZil7d2hpbGUocCl7bT1iO3doaWxlKG09bVtwXSlpZihoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXttPXEsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biYmalsyXSxtPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigxPT09bS5ub2RlVHlwZSYmKyt0JiZtPT09Yil7a1thXT1bdyxuLHRdO2JyZWFrfX1lbHNlIGlmKHMmJihtPWIsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biksdD09PSExKXdoaWxlKG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKChoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpJiYrK3QmJihzJiYobD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksa1thXT1bdyx0XSksbT09PWIpKWJyZWFrO3JldHVybiB0LT1lLHQ9PT1kfHx0JWQ9PT0wJiZ0L2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxnYS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2lhKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1JKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmlhKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShQLCIkMSIpKTtyZXR1cm4gZFt1XT9pYShmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnPWQoYSxudWxsLGUsW10pLGg9YS5sZW5ndGg7d2hpbGUoaC0tKShmPWdbaF0pJiYoYVtoXT0hKGJbaF09ZikpfSk6ZnVuY3Rpb24oYSxlLGYpe3JldHVybiBiWzBdPWEsZChiLG51bGwsZixjKSxiWzBdPW51bGwsIWMucG9wKCl9fSksaGFzOmlhKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZ2EoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczppYShmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoXyxhYSksZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aWEoZnVuY3Rpb24oYSl7cmV0dXJuIFUudGVzdChhfHwiIil8fGdhLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKF8sYWEpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oYil7dmFyIGM7ZG8gaWYoYz1wP2IubGFuZzpiLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8Yi5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gYz1jLnRvTG93ZXJDYXNlKCksYz09PWF8fDA9PT1jLmluZGV4T2YoYSsiLSIpO3doaWxlKChiPWIucGFyZW50Tm9kZSkmJjE9PT1iLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oYil7dmFyIGM9YS5sb2NhdGlvbiYmYS5sb2NhdGlvbi5oYXNoO3JldHVybiBjJiZjLnNsaWNlKDEpPT09Yi5pZH0scm9vdDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW99LGZvY3VzOmZ1bmN0aW9uKGEpe3JldHVybiBhPT09bi5hY3RpdmVFbGVtZW50JiYoIW4uaGFzRm9jdXN8fG4uaGFzRm9jdXMoKSkmJiEhKGEudHlwZXx8YS5ocmVmfHx+YS50YWJJbmRleCl9LGVuYWJsZWQ6b2EoITEpLGRpc2FibGVkOm9hKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFgudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6cGEoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OnBhKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpwYShmdW5jdGlvbihhLGIsYyl7cmV0dXJuW2M8MD9jK2I6Y119KSxldmVuOnBhKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOnBhKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7YzxiO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6cGEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1jPDA/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpwYShmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWM8MD9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bWEoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bmEoYik7ZnVuY3Rpb24gcmEoKXt9cmEucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyByYSxnPWdhLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpe2MmJiEoZT1RLmV4ZWMoaCkpfHwoZSYmKGg9aC5zbGljZShlWzBdLmxlbmd0aCl8fGgpLGkucHVzaChmPVtdKSksYz0hMSwoZT1SLmV4ZWMoaCkpJiYoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZVswXS5yZXBsYWNlKFAsIiAiKX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2ZvcihnIGluIGQuZmlsdGVyKSEoZT1WW2ddLmV4ZWMoaCkpfHxqW2ddJiYhKGU9altnXShlKSl8fChjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTpnLG1hdGNoZXM6ZX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2lmKCFjKWJyZWFrfXJldHVybiBiP2gubGVuZ3RoOmg/Z2EuZXJyb3IoYSk6eihhLGkpLnNsaWNlKDApfTtmdW5jdGlvbiBzYShhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7YjxjO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHRhKGEsYixjKXt2YXIgZD1iLmRpcixlPWIubmV4dCxmPWV8fGQsZz1jJiYicGFyZW50Tm9kZSI9PT1mLGg9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxlKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGcpcmV0dXJuIGEoYixjLGUpO3JldHVybiExfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG09W3csaF07aWYoaSl7d2hpbGUoYj1iW2RdKWlmKCgxPT09Yi5ub2RlVHlwZXx8ZykmJmEoYixjLGkpKXJldHVybiEwfWVsc2Ugd2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxnKWlmKGw9Ylt1XXx8KGJbdV09e30pLGs9bFtiLnVuaXF1ZUlEXXx8KGxbYi51bmlxdWVJRF09e30pLGUmJmU9PT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpYj1iW2RdfHxiO2Vsc2V7aWYoKGo9a1tmXSkmJmpbMF09PT13JiZqWzFdPT09aClyZXR1cm4gbVsyXT1qWzJdO2lmKGtbZl09bSxtWzJdPWEoYixjLGkpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiB1YShhKXtyZXR1cm4gYS5sZW5ndGg+MT9mdW5jdGlvbihiLGMsZCl7dmFyIGU9YS5sZW5ndGg7d2hpbGUoZS0tKWlmKCFhW2VdKGIsYyxkKSlyZXR1cm4hMTtyZXR1cm4hMH06YVswXX1mdW5jdGlvbiB2YShhLGIsYyl7Zm9yKHZhciBkPTAsZT1iLmxlbmd0aDtkPGU7ZCsrKWdhKGEsYltkXSxjKTtyZXR1cm4gY31mdW5jdGlvbiB3YShhLGIsYyxkLGUpe2Zvcih2YXIgZixnPVtdLGg9MCxpPWEubGVuZ3RoLGo9bnVsbCE9YjtoPGk7aCsrKShmPWFbaF0pJiYoYyYmIWMoZixkLGUpfHwoZy5wdXNoKGYpLGomJmIucHVzaChoKSkpO3JldHVybiBnfWZ1bmN0aW9uIHhhKGEsYixjLGQsZSxmKXtyZXR1cm4gZCYmIWRbdV0mJihkPXhhKGQpKSxlJiYhZVt1XSYmKGU9eGEoZSxmKSksaWEoZnVuY3Rpb24oZixnLGgsaSl7dmFyIGosayxsLG09W10sbj1bXSxvPWcubGVuZ3RoLHA9Znx8dmEoYnx8IioiLGgubm9kZVR5cGU/W2hdOmgsW10pLHE9IWF8fCFmJiZiP3A6d2EocCxtLGEsaCxpKSxyPWM/ZXx8KGY/YTpvfHxkKT9bXTpnOnE7aWYoYyYmYyhxLHIsaCxpKSxkKXtqPXdhKHIsbiksZChqLFtdLGgsaSksaz1qLmxlbmd0aDt3aGlsZShrLS0pKGw9altrXSkmJihyW25ba11dPSEocVtuW2tdXT1sKSl9aWYoZil7aWYoZXx8YSl7aWYoZSl7aj1bXSxrPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmai5wdXNoKHFba109bCk7ZShudWxsLHI9W10saixpKX1rPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmKGo9ZT9JKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj13YShyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6Ry5hcHBseShnLHIpfSl9ZnVuY3Rpb24geWEoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz10YShmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9dGEoZnVuY3Rpb24oYSl7cmV0dXJuIEkoYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3ZhciBlPSFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpO3JldHVybiBiPW51bGwsZX1dO2k8ZjtpKyspaWYoYz1kLnJlbGF0aXZlW2FbaV0udHlwZV0pbT1bdGEodWEobSksYyldO2Vsc2V7aWYoYz1kLmZpbHRlclthW2ldLnR5cGVdLmFwcGx5KG51bGwsYVtpXS5tYXRjaGVzKSxjW3VdKXtmb3IoZT0rK2k7ZTxmO2UrKylpZihkLnJlbGF0aXZlW2FbZV0udHlwZV0pYnJlYWs7cmV0dXJuIHhhKGk+MSYmdWEobSksaT4xJiZzYShhLnNsaWNlKDAsaS0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWFbaS0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKFAsIiQxIiksYyxpPGUmJnlhKGEuc2xpY2UoaSxlKSksZTxmJiZ5YShhPWEuc2xpY2UoZSkpLGU8ZiYmc2EoYSkpfW0ucHVzaChjKX1yZXR1cm4gdWEobSl9ZnVuY3Rpb24gemEoYSxiKXt2YXIgYz1iLmxlbmd0aD4wLGU9YS5sZW5ndGg+MCxmPWZ1bmN0aW9uKGYsZyxoLGksayl7dmFyIGwsbyxxLHI9MCxzPSIwIix0PWYmJltdLHU9W10sdj1qLHg9Znx8ZSYmZC5maW5kLlRBRygiKiIsaykseT13Kz1udWxsPT12PzE6TWF0aC5yYW5kb20oKXx8LjEsej14Lmxlbmd0aDtmb3IoayYmKGo9Zz09PW58fGd8fGspO3MhPT16JiZudWxsIT0obD14W3NdKTtzKyspe2lmKGUmJmwpe289MCxnfHxsLm93bmVyRG9jdW1lbnQ9PT1ufHwobShsKSxoPSFwKTt3aGlsZShxPWFbbysrXSlpZihxKGwsZ3x8bixoKSl7aS5wdXNoKGwpO2JyZWFrfWsmJih3PXkpfWMmJigobD0hcSYmbCkmJnItLSxmJiZ0LnB1c2gobCkpfWlmKHIrPXMsYyYmcyE9PXIpe289MDt3aGlsZShxPWJbbysrXSlxKHQsdSxnLGgpO2lmKGYpe2lmKHI+MCl3aGlsZShzLS0pdFtzXXx8dVtzXXx8KHVbc109RS5jYWxsKGkpKTt1PXdhKHUpfUcuYXBwbHkoaSx1KSxrJiYhZiYmdS5sZW5ndGg+MCYmcitiLmxlbmd0aD4xJiZnYS51bmlxdWVTb3J0KGkpfXJldHVybiBrJiYodz15LGo9diksdH07cmV0dXJuIGM/aWEoZik6Zn1yZXR1cm4gaD1nYS5jb21waWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPVtdLGY9QVthKyIgIl07aWYoIWYpe2J8fChiPWcoYSkpLGM9Yi5sZW5ndGg7d2hpbGUoYy0tKWY9eWEoYltjXSksZlt1XT9kLnB1c2goZik6ZS5wdXNoKGYpO2Y9QShhLHphKGUsZCkpLGYuc2VsZWN0b3I9YX1yZXR1cm4gZn0saT1nYS5zZWxlY3Q9ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsaSxqLGssbCxtPSJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhLG49IWUmJmcoYT1tLnNlbGVjdG9yfHxhKTtpZihjPWN8fFtdLDE9PT1uLmxlbmd0aCl7aWYoaT1uWzBdPW5bMF0uc2xpY2UoMCksaS5sZW5ndGg+MiYmIklEIj09PShqPWlbMF0pLnR5cGUmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2lbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChqLm1hdGNoZXNbMF0ucmVwbGFjZShfLGFhKSxiKXx8W10pWzBdLCFiKXJldHVybiBjO20mJihiPWIucGFyZW50Tm9kZSksYT1hLnNsaWNlKGkuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWY9Vi5uZWVkc0NvbnRleHQudGVzdChhKT8wOmkubGVuZ3RoO3doaWxlKGYtLSl7aWYoaj1pW2ZdLGQucmVsYXRpdmVbaz1qLnR5cGVdKWJyZWFrO2lmKChsPWQuZmluZFtrXSkmJihlPWwoai5tYXRjaGVzWzBdLnJlcGxhY2UoXyxhYSksJC50ZXN0KGlbMF0udHlwZSkmJnFhKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoaS5zcGxpY2UoZiwxKSxhPWUubGVuZ3RoJiZzYShpKSwhYSlyZXR1cm4gRy5hcHBseShjLGUpLGM7YnJlYWt9fX1yZXR1cm4obXx8aChhLG4pKShlLGIsIXAsYywhYnx8JC50ZXN0KGEpJiZxYShiLnBhcmVudE5vZGUpfHxiKSxjfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9amEoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0IikpfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IiwiIyI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIil9KXx8a2EoInR5cGV8aHJlZnxoZWlnaHR8d2lkdGgiLGZ1bmN0aW9uKGEsYixjKXtpZighYylyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoYiwidHlwZSI9PT1iLnRvTG93ZXJDYXNlKCk/MToyKX0pLGMuYXR0cmlidXRlcyYmamEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8aW5wdXQvPiIsYS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSwiIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoInZhbHVlIil9KXx8a2EoInZhbHVlIixmdW5jdGlvbihhLGIsYyl7aWYoIWMmJiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIGEuZGVmYXVsdFZhbHVlfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWEuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpfSl8fGthKEosZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2lmKCFjKXJldHVybiBhW2JdPT09ITA/Yi50b0xvd2VyQ2FzZSgpOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJmQuc3BlY2lmaWVkP2QudmFsdWU6bnVsbH0pLGdhfShhKTtyLmZpbmQ9eCxyLmV4cHI9eC5zZWxlY3RvcnMsci5leHByWyI6Il09ci5leHByLnBzZXVkb3Msci51bmlxdWVTb3J0PXIudW5pcXVlPXgudW5pcXVlU29ydCxyLnRleHQ9eC5nZXRUZXh0LHIuaXNYTUxEb2M9eC5pc1hNTCxyLmNvbnRhaW5zPXguY29udGFpbnMsci5lc2NhcGVTZWxlY3Rvcj14LmVzY2FwZTt2YXIgeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT12b2lkIDAhPT1jO3doaWxlKChhPWFbYl0pJiY5IT09YS5ub2RlVHlwZSlpZigxPT09YS5ub2RlVHlwZSl7aWYoZSYmcihhKS5pcyhjKSlicmVhaztkLnB1c2goYSl9cmV0dXJuIGR9LHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9LEE9ci5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtmdW5jdGlvbiBCKGEsYil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX12YXIgQz0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaSxEPS9eLlteOiNcW1wuLF0qJC87ZnVuY3Rpb24gRShhLGIsYyl7cmV0dXJuIHIuaXNGdW5jdGlvbihiKT9yLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTpiLm5vZGVUeXBlP3IuZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09YiE9PWN9KToic3RyaW5nIiE9dHlwZW9mIGI/ci5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGkuY2FsbChiLGEpPi0xIT09Y30pOkQudGVzdChiKT9yLmZpbHRlcihiLGEsYyk6KGI9ci5maWx0ZXIoYixhKSxyLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gaS5jYWxsKGIsYSk+LTEhPT1jJiYxPT09YS5ub2RlVHlwZX0pKX1yLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9yLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOnIuZmluZC5tYXRjaGVzKGEsci5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxyLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjLGQ9dGhpcy5sZW5ndGgsZT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2socihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2I8ZDtiKyspaWYoci5jb250YWlucyhlW2JdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihjPXRoaXMucHVzaFN0YWNrKFtdKSxiPTA7YjxkO2IrKylyLmZpbmQoYSxlW2JdLGMpO3JldHVybiBkPjE/ci51bmlxdWVTb3J0KGMpOmN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soRSh0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soRSh0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhRSh0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYmQS50ZXN0KGEpP3IoYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgRixHPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC8sSD1yLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxGLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoZT0iPCI9PT1hWzBdJiYiPiI9PT1hW2EubGVuZ3RoLTFdJiZhLmxlbmd0aD49Mz9bbnVsbCxhLG51bGxdOkcuZXhlYyhhKSwhZXx8IWVbMV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxjKS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtpZihlWzFdKXtpZihiPWIgaW5zdGFuY2VvZiByP2JbMF06YixyLm1lcmdlKHRoaXMsci5wYXJzZUhUTUwoZVsxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpkLCEwKSksQy50ZXN0KGVbMV0pJiZyLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYilyLmlzRnVuY3Rpb24odGhpc1tlXSk/dGhpc1tlXShiW2VdKTp0aGlzLmF0dHIoZSxiW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gZj1kLmdldEVsZW1lbnRCeUlkKGVbMl0pLGYmJih0aGlzWzBdPWYsdGhpcy5sZW5ndGg9MSksdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6ci5pc0Z1bmN0aW9uKGEpP3ZvaWQgMCE9PWMucmVhZHk/Yy5yZWFkeShhKTphKHIpOnIubWFrZUFycmF5KGEsdGhpcyl9O0gucHJvdG90eXBlPXIuZm4sRj1yKGQpO3ZhciBJPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEo9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ci5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1yKGEsdGhpcyksYz1iLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGE9MDthPGM7YSsrKWlmKHIuY29udGFpbnModGhpcyxiW2FdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPSJzdHJpbmciIT10eXBlb2YgYSYmcihhKTtpZighQS50ZXN0KGEpKWZvcig7ZDxlO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJnIuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9yLnVuaXF1ZVNvcnQoZik6Zil9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9pLmNhbGwocihhKSx0aGlzWzBdKTppLmNhbGwodGhpcyxhLmpxdWVyeT9hWzBdOmEpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHIudW5pcXVlU29ydChyLm1lcmdlKHRoaXMuZ2V0KCkscihhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtmdW5jdGlvbiBLKGEsYil7d2hpbGUoKGE9YVtiXSkmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1yLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlwZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB5KGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBLKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEsoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4geShhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4geShhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHkoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHooKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiB6KGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBCKGEsImlmcmFtZSIpP2EuY29udGVudERvY3VtZW50OihCKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksci5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsYil7ci5mblthXT1mdW5jdGlvbihjLGQpe3ZhciBlPXIubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihkPWMpLGQmJiJzdHJpbmciPT10eXBlb2YgZCYmKGU9ci5maWx0ZXIoZCxlKSksdGhpcy5sZW5ndGg+MSYmKEpbYV18fHIudW5pcXVlU29ydChlKSxJLnRlc3QoYSkmJmUucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgTD0vW15ceDIwXHRcclxuXGZdKy9nO2Z1bmN0aW9uIE0oYSl7dmFyIGI9e307cmV0dXJuIHIuZWFjaChhLm1hdGNoKEwpfHxbXSxmdW5jdGlvbihhLGMpe2JbY109ITB9KSxifXIuQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe2E9InN0cmluZyI9PXR5cGVvZiBhP00oYSk6ci5leHRlbmQoe30sYSk7dmFyIGIsYyxkLGUsZj1bXSxnPVtdLGg9LTEsaT1mdW5jdGlvbigpe2ZvcihlPWV8fGEub25jZSxkPWI9ITA7Zy5sZW5ndGg7aD0tMSl7Yz1nLnNoaWZ0KCk7d2hpbGUoKytoPGYubGVuZ3RoKWZbaF0uYXBwbHkoY1swXSxjWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlJiYoaD1mLmxlbmd0aCxjPSExKX1hLm1lbW9yeXx8KGM9ITEpLGI9ITEsZSYmKGY9Yz9bXToiIil9LGo9e2FkZDpmdW5jdGlvbigpe3JldHVybiBmJiYoYyYmIWImJihoPWYubGVuZ3RoLTEsZy5wdXNoKGMpKSxmdW5jdGlvbiBkKGIpe3IuZWFjaChiLGZ1bmN0aW9uKGIsYyl7ci5pc0Z1bmN0aW9uKGMpP2EudW5pcXVlJiZqLmhhcyhjKXx8Zi5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PXIudHlwZShjKSYmZChjKX0pfShhcmd1bWVudHMpLGMmJiFiJiZpKCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiByLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYil7dmFyIGM7d2hpbGUoKGM9ci5pbkFycmF5KGIsZixjKSk+LTEpZi5zcGxpY2UoYywxKSxjPD1oJiZoLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/ci5pbkFycmF5KGEsZik+LTE6Zi5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gZiYmKGY9W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZT1nPVtdLGY9Yz0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFmfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGU9Zz1bXSxjfHxifHwoZj1jPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWV9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGV8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sZy5wdXNoKGMpLGJ8fGkoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBqLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBqfTtmdW5jdGlvbiBOKGEpe3JldHVybiBhfWZ1bmN0aW9uIE8oYSl7dGhyb3cgYX1mdW5jdGlvbiBQKGEsYixjLGQpe3ZhciBlO3RyeXthJiZyLmlzRnVuY3Rpb24oZT1hLnByb21pc2UpP2UuY2FsbChhKS5kb25lKGIpLmZhaWwoYyk6YSYmci5pc0Z1bmN0aW9uKGU9YS50aGVuKT9lLmNhbGwoYSxiLGMpOmIuYXBwbHkodm9pZCAwLFthXS5zbGljZShkKSl9Y2F0Y2goYSl7Yy5hcHBseSh2b2lkIDAsW2FdKX19ci5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGIpe3ZhciBjPVtbIm5vdGlmeSIsInByb2dyZXNzIixyLkNhbGxiYWNrcygibWVtb3J5Iiksci5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLHIuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLHIuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixyLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxyLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxkPSJwZW5kaW5nIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBkfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGUudGhlbihudWxsLGEpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiByLkRlZmVycmVkKGZ1bmN0aW9uKGIpe3IuZWFjaChjLGZ1bmN0aW9uKGMsZCl7dmFyIGU9ci5pc0Z1bmN0aW9uKGFbZFs0XV0pJiZhW2RbNF1dO2ZbZFsxXV0oZnVuY3Rpb24oKXt2YXIgYT1lJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZyLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5wcm9ncmVzcyhiLm5vdGlmeSkuZG9uZShiLnJlc29sdmUpLmZhaWwoYi5yZWplY3QpOmJbZFswXSsiV2l0aCJdKHRoaXMsZT9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKGIsZCxlKXt2YXIgZj0wO2Z1bmN0aW9uIGcoYixjLGQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGg9dGhpcyxpPWFyZ3VtZW50cyxqPWZ1bmN0aW9uKCl7dmFyIGEsajtpZighKGI8Zikpe2lmKGE9ZC5hcHBseShoLGkpLGE9PT1jLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTtqPWEmJigib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhKSYmYS50aGVuLHIuaXNGdW5jdGlvbihqKT9lP2ouY2FsbChhLGcoZixjLE4sZSksZyhmLGMsTyxlKSk6KGYrKyxqLmNhbGwoYSxnKGYsYyxOLGUpLGcoZixjLE8sZSksZyhmLGMsTixjLm5vdGlmeVdpdGgpKSk6KGQhPT1OJiYoaD12b2lkIDAsaT1bYV0pLChlfHxjLnJlc29sdmVXaXRoKShoLGkpKX19LGs9ZT9qOmZ1bmN0aW9uKCl7dHJ5e2ooKX1jYXRjaChhKXtyLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJnIuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhhLGsuc3RhY2tUcmFjZSksYisxPj1mJiYoZCE9PU8mJihoPXZvaWQgMCxpPVthXSksYy5yZWplY3RXaXRoKGgsaSkpfX07Yj9rKCk6KHIuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoay5zdGFja1RyYWNlPXIuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLGEuc2V0VGltZW91dChrKSl9fXJldHVybiByLkRlZmVycmVkKGZ1bmN0aW9uKGEpe2NbMF1bM10uYWRkKGcoMCxhLHIuaXNGdW5jdGlvbihlKT9lOk4sYS5ub3RpZnlXaXRoKSksY1sxXVszXS5hZGQoZygwLGEsci5pc0Z1bmN0aW9uKGIpP2I6TikpLGNbMl1bM10uYWRkKGcoMCxhLHIuaXNGdW5jdGlvbihkKT9kOk8pKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT9yLmV4dGVuZChhLGUpOmV9fSxmPXt9O3JldHVybiByLmVhY2goYyxmdW5jdGlvbihhLGIpe3ZhciBnPWJbMl0saD1iWzVdO2VbYlsxXV09Zy5hZGQsaCYmZy5hZGQoZnVuY3Rpb24oKXtkPWh9LGNbMy1hXVsyXS5kaXNhYmxlLGNbMF1bMl0ubG9jayksZy5hZGQoYlszXS5maXJlKSxmW2JbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIGZbYlswXSsiV2l0aCJdKHRoaXM9PT1mP3ZvaWQgMDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZltiWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGUucHJvbWlzZShmKSxiJiZiLmNhbGwoZixmKSxmfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1iLGQ9QXJyYXkoYyksZT1mLmNhbGwoYXJndW1lbnRzKSxnPXIuRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihjKXtkW2FdPXRoaXMsZVthXT1hcmd1bWVudHMubGVuZ3RoPjE/Zi5jYWxsKGFyZ3VtZW50cyk6YywtLWJ8fGcucmVzb2x2ZVdpdGgoZCxlKX19O2lmKGI8PTEmJihQKGEsZy5kb25lKGgoYykpLnJlc29sdmUsZy5yZWplY3QsIWIpLCJwZW5kaW5nIj09PWcuc3RhdGUoKXx8ci5pc0Z1bmN0aW9uKGVbY10mJmVbY10udGhlbikpKXJldHVybiBnLnRoZW4oKTt3aGlsZShjLS0pUChlW2NdLGgoYyksZy5yZWplY3QpO3JldHVybiBnLnByb21pc2UoKX19KTt2YXIgUT0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztyLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oYixjKXthLmNvbnNvbGUmJmEuY29uc29sZS53YXJuJiZiJiZRLnRlc3QoYi5uYW1lKSYmYS5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrYi5tZXNzYWdlLGIuc3RhY2ssYyl9LHIucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oYil7YS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYn0pfTt2YXIgUj1yLkRlZmVycmVkKCk7ci5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gUi50aGVuKGEpWyJjYXRjaCJdKGZ1bmN0aW9uKGEpe3IucmVhZHlFeGNlcHRpb24oYSl9KSx0aGlzfSxyLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihhKXsoYT09PSEwPy0tci5yZWFkeVdhaXQ6ci5pc1JlYWR5KXx8KHIuaXNSZWFkeT0hMCxhIT09ITAmJi0tci5yZWFkeVdhaXQ+MHx8Ui5yZXNvbHZlV2l0aChkLFtyXSkpfX0pLHIucmVhZHkudGhlbj1SLnRoZW47ZnVuY3Rpb24gUygpe2QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsUyksCmEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsUyksci5yZWFkeSgpfSJjb21wbGV0ZSI9PT1kLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWQucmVhZHlTdGF0ZSYmIWQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2Euc2V0VGltZW91dChyLnJlYWR5KTooZC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixTKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLFMpKTt2YXIgVD1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0wLGk9YS5sZW5ndGgsaj1udWxsPT1jO2lmKCJvYmplY3QiPT09ci50eXBlKGMpKXtlPSEwO2ZvcihoIGluIGMpVChhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxyLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwocihhKSxjKX0pKSxiKSlmb3IoO2g8aTtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxVPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9kZVR5cGV8fCErYS5ub2RlVHlwZX07ZnVuY3Rpb24gVigpe3RoaXMuZXhwYW5kbz1yLmV4cGFuZG8rVi51aWQrK31WLnVpZD0xLFYucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihhKXt2YXIgYj1hW3RoaXMuZXhwYW5kb107cmV0dXJuIGJ8fChiPXt9LFUoYSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT1iOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHRoaXMuZXhwYW5kbyx7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSkpLGJ9LHNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZT10aGlzLmNhY2hlKGEpO2lmKCJzdHJpbmciPT10eXBlb2YgYillW3IuY2FtZWxDYXNlKGIpXT1jO2Vsc2UgZm9yKGQgaW4gYillW3IuY2FtZWxDYXNlKGQpXT1iW2RdO3JldHVybiBlfSxnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdm9pZCAwPT09Yj90aGlzLmNhY2hlKGEpOmFbdGhpcy5leHBhbmRvXSYmYVt0aGlzLmV4cGFuZG9dW3IuY2FtZWxDYXNlKGIpXX0sYWNjZXNzOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdm9pZCAwPT09Ynx8YiYmInN0cmluZyI9PXR5cGVvZiBiJiZ2b2lkIDA9PT1jP3RoaXMuZ2V0KGEsYik6KHRoaXMuc2V0KGEsYixjKSx2b2lkIDAhPT1jP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PWQpe2lmKHZvaWQgMCE9PWIpe0FycmF5LmlzQXJyYXkoYik/Yj1iLm1hcChyLmNhbWVsQ2FzZSk6KGI9ci5jYW1lbENhc2UoYiksYj1iIGluIGQ/W2JdOmIubWF0Y2goTCl8fFtdKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlkZWxldGUgZFtiW2NdXX0odm9pZCAwPT09Ynx8ci5pc0VtcHR5T2JqZWN0KGQpKSYmKGEubm9kZVR5cGU/YVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgYVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1iJiYhci5pc0VtcHR5T2JqZWN0KGIpfX07dmFyIFc9bmV3IFYsWD1uZXcgVixZPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sWj0vW0EtWl0vZztmdW5jdGlvbiAkKGEpe3JldHVybiJ0cnVlIj09PWF8fCJmYWxzZSIhPT1hJiYoIm51bGwiPT09YT9udWxsOmE9PT0rYSsiIj8rYTpZLnRlc3QoYSk/SlNPTi5wYXJzZShhKTphKX1mdW5jdGlvbiBfKGEsYixjKXt2YXIgZDtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihkPSJkYXRhLSIrYi5yZXBsYWNlKFosIi0kJiIpLnRvTG93ZXJDYXNlKCksYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSQoYyl9Y2F0Y2goZSl7fVguc2V0KGEsYixjKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfXIuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiBYLmhhc0RhdGEoYSl8fFcuaGFzRGF0YShhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFguYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe1gucmVtb3ZlKGEsYil9LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gVy5hY2Nlc3MoYSxiLGMpfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe1cucmVtb3ZlKGEsYil9fSksci5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj10aGlzWzBdLGc9ZiYmZi5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZT1YLmdldChmKSwxPT09Zi5ub2RlVHlwZSYmIVcuZ2V0KGYsImhhc0RhdGFBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPXIuY2FtZWxDYXNlKGQuc2xpY2UoNSkpLF8oZixkLGVbZF0pKSk7Vy5zZXQoZiwiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGV9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe1guc2V0KHRoaXMsYSl9KTpUKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM7aWYoZiYmdm9pZCAwPT09Yil7aWYoYz1YLmdldChmLGEpLHZvaWQgMCE9PWMpcmV0dXJuIGM7aWYoYz1fKGYsYSksdm9pZCAwIT09YylyZXR1cm4gY31lbHNlIHRoaXMuZWFjaChmdW5jdGlvbigpe1guc2V0KHRoaXMsYSxiKX0pfSxudWxsLGIsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtYLnJlbW92ZSh0aGlzLGEpfSl9fSksci5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihhKXJldHVybiBiPShifHwiZngiKSsicXVldWUiLGQ9Vy5nZXQoYSxiKSxjJiYoIWR8fEFycmF5LmlzQXJyYXkoYyk/ZD1XLmFjY2VzcyhhLGIsci5tYWtlQXJyYXkoYykpOmQucHVzaChjKSksZHx8W119LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9ci5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1yLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe3IuZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1jLnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBXLmdldChhLGMpfHxXLmFjY2VzcyhhLGMse2VtcHR5OnIuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe1cucmVtb3ZlKGEsW2IrInF1ZXVlIixjXSl9KX0pfX0pLHIuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9yLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPXIucXVldWUodGhpcyxhLGIpO3IuX3F1ZXVlSG9va3ModGhpcyxhKSwiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09Y1swXSYmci5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ci5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MSxlPXIuRGVmZXJyZWQoKSxmPXRoaXMsZz10aGlzLmxlbmd0aCxoPWZ1bmN0aW9uKCl7LS1kfHxlLnJlc29sdmVXaXRoKGYsW2ZdKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7d2hpbGUoZy0tKWM9Vy5nZXQoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIGFhPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLGJhPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIithYSsiKShbYS16JV0qKSQiLCJpIiksY2E9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxkYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPWJ8fGEsIm5vbmUiPT09YS5zdHlsZS5kaXNwbGF5fHwiIj09PWEuc3R5bGUuZGlzcGxheSYmci5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSkmJiJub25lIj09PXIuY3NzKGEsImRpc3BsYXkiKX0sZWE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnPXt9O2ZvcihmIGluIGIpZ1tmXT1hLnN0eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuYXBwbHkoYSxkfHxbXSk7Zm9yKGYgaW4gYilhLnN0eWxlW2ZdPWdbZl07cmV0dXJuIGV9O2Z1bmN0aW9uIGZhKGEsYixjLGQpe3ZhciBlLGY9MSxnPTIwLGg9ZD9mdW5jdGlvbigpe3JldHVybiBkLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiByLmNzcyhhLGIsIiIpfSxpPWgoKSxqPWMmJmNbM118fChyLmNzc051bWJlcltiXT8iIjoicHgiKSxrPShyLmNzc051bWJlcltiXXx8InB4IiE9PWomJitpKSYmYmEuZXhlYyhyLmNzcyhhLGIpKTtpZihrJiZrWzNdIT09ail7aj1qfHxrWzNdLGM9Y3x8W10saz0raXx8MTtkbyBmPWZ8fCIuNSIsay89ZixyLnN0eWxlKGEsYixrK2opO3doaWxlKGYhPT0oZj1oKCkvaSkmJjEhPT1mJiYtLWcpfXJldHVybiBjJiYoaz0ra3x8K2l8fDAsZT1jWzFdP2srKGNbMV0rMSkqY1syXTorY1syXSxkJiYoZC51bml0PWosZC5zdGFydD1rLGQuZW5kPWUpKSxlfXZhciBnYT17fTtmdW5jdGlvbiBoYShhKXt2YXIgYixjPWEub3duZXJEb2N1bWVudCxkPWEubm9kZU5hbWUsZT1nYVtkXTtyZXR1cm4gZT9lOihiPWMuYm9keS5hcHBlbmRDaGlsZChjLmNyZWF0ZUVsZW1lbnQoZCkpLGU9ci5jc3MoYiwiZGlzcGxheSIpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSwibm9uZSI9PT1lJiYoZT0iYmxvY2siKSxnYVtkXT1lLGUpfWZ1bmN0aW9uIGlhKGEsYil7Zm9yKHZhciBjLGQsZT1bXSxmPTAsZz1hLmxlbmd0aDtmPGc7ZisrKWQ9YVtmXSxkLnN0eWxlJiYoYz1kLnN0eWxlLmRpc3BsYXksYj8oIm5vbmUiPT09YyYmKGVbZl09Vy5nZXQoZCwiZGlzcGxheSIpfHxudWxsLGVbZl18fChkLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmZGEoZCkmJihlW2ZdPWhhKGQpKSk6Im5vbmUiIT09YyYmKGVbZl09Im5vbmUiLFcuc2V0KGQsImRpc3BsYXkiLGMpKSk7Zm9yKGY9MDtmPGc7ZisrKW51bGwhPWVbZl0mJihhW2ZdLnN0eWxlLmRpc3BsYXk9ZVtmXSk7cmV0dXJuIGF9ci5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gaWEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gaWEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGEodGhpcyk/cih0aGlzKS5zaG93KCk6cih0aGlzKS5oaWRlKCl9KX19KTt2YXIgamE9L14oPzpjaGVja2JveHxyYWRpbykkL2ksa2E9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSspL2ksbGE9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLG1hPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OlswLCIiLCIiXX07bWEub3B0Z3JvdXA9bWEub3B0aW9uLG1hLnRib2R5PW1hLnRmb290PW1hLmNvbGdyb3VwPW1hLmNhcHRpb249bWEudGhlYWQsbWEudGg9bWEudGQ7ZnVuY3Rpb24gbmEoYSxiKXt2YXIgYztyZXR1cm4gYz0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsP2EucXVlcnlTZWxlY3RvckFsbChifHwiKiIpOltdLHZvaWQgMD09PWJ8fGImJkIoYSxiKT9yLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG9hKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKVcuc2V0KGFbY10sImdsb2JhbEV2YWwiLCFifHxXLmdldChiW2NdLCJnbG9iYWxFdmFsIikpfXZhciBwYT0vPHwmIz9cdys7LztmdW5jdGlvbiBxYShhLGIsYyxkLGUpe2Zvcih2YXIgZixnLGgsaSxqLGssbD1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxtPVtdLG49MCxvPWEubGVuZ3RoO248bztuKyspaWYoZj1hW25dLGZ8fDA9PT1mKWlmKCJvYmplY3QiPT09ci50eXBlKGYpKXIubWVyZ2UobSxmLm5vZGVUeXBlP1tmXTpmKTtlbHNlIGlmKHBhLnRlc3QoZikpe2c9Z3x8bC5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxoPShrYS5leGVjKGYpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGk9bWFbaF18fG1hLl9kZWZhdWx0LGcuaW5uZXJIVE1MPWlbMV0rci5odG1sUHJlZmlsdGVyKGYpK2lbMl0saz1pWzBdO3doaWxlKGstLSlnPWcubGFzdENoaWxkO3IubWVyZ2UobSxnLmNoaWxkTm9kZXMpLGc9bC5maXJzdENoaWxkLGcudGV4dENvbnRlbnQ9IiJ9ZWxzZSBtLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShmKSk7bC50ZXh0Q29udGVudD0iIixuPTA7d2hpbGUoZj1tW24rK10paWYoZCYmci5pbkFycmF5KGYsZCk+LTEpZSYmZS5wdXNoKGYpO2Vsc2UgaWYoaj1yLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxnPW5hKGwuYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGomJm9hKGcpLGMpe2s9MDt3aGlsZShmPWdbaysrXSlsYS50ZXN0KGYudHlwZXx8IiIpJiZjLnB1c2goZil9cmV0dXJuIGx9IWZ1bmN0aW9uKCl7dmFyIGE9ZC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksYj1hLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpLGM9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2Muc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxjLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxjLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxiLmFwcGVuZENoaWxkKGMpLG8uY2hlY2tDbG9uZT1iLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxiLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIsby5ub0Nsb25lQ2hlY2tlZD0hIWIuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlfSgpO3ZhciByYT1kLmRvY3VtZW50RWxlbWVudCxzYT0vXmtleS8sdGE9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLHVhPS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiB2YSgpe3JldHVybiEwfWZ1bmN0aW9uIHdhKCl7cmV0dXJuITF9ZnVuY3Rpb24geGEoKXt0cnl7cmV0dXJuIGQuYWN0aXZlRWxlbWVudH1jYXRjaChhKXt9fWZ1bmN0aW9uIHlhKGEsYixjLGQsZSxmKXt2YXIgZyxoO2lmKCJvYmplY3QiPT10eXBlb2YgYil7InN0cmluZyIhPXR5cGVvZiBjJiYoZD1kfHxjLGM9dm9pZCAwKTtmb3IoaCBpbiBiKXlhKGEsaCxjLGQsYltoXSxmKTtyZXR1cm4gYX1pZihudWxsPT1kJiZudWxsPT1lPyhlPWMsZD1jPXZvaWQgMCk6bnVsbD09ZSYmKCJzdHJpbmciPT10eXBlb2YgYz8oZT1kLGQ9dm9pZCAwKTooZT1kLGQ9YyxjPXZvaWQgMCkpLGU9PT0hMSllPXdhO2Vsc2UgaWYoIWUpcmV0dXJuIGE7cmV0dXJuIDE9PT1mJiYoZz1lLGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHIoKS5vZmYoYSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGUuZ3VpZD1nLmd1aWR8fChnLmd1aWQ9ci5ndWlkKyspKSxhLmVhY2goZnVuY3Rpb24oKXtyLmV2ZW50LmFkZCh0aGlzLGIsZSxkLGMpfSl9ci5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbixvLHAscT1XLmdldChhKTtpZihxKXtjLmhhbmRsZXImJihmPWMsYz1mLmhhbmRsZXIsZT1mLnNlbGVjdG9yKSxlJiZyLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHJhLGUpLGMuZ3VpZHx8KGMuZ3VpZD1yLmd1aWQrKyksKGk9cS5ldmVudHMpfHwoaT1xLmV2ZW50cz17fSksKGc9cS5oYW5kbGUpfHwoZz1xLmhhbmRsZT1mdW5jdGlvbihiKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHImJnIuZXZlbnQudHJpZ2dlcmVkIT09Yi50eXBlP3IuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLGI9KGJ8fCIiKS5tYXRjaChMKXx8WyIiXSxqPWIubGVuZ3RoO3doaWxlKGotLSloPXVhLmV4ZWMoYltqXSl8fFtdLG49cD1oWzFdLG89KGhbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxuJiYobD1yLmV2ZW50LnNwZWNpYWxbbl18fHt9LG49KGU/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG4sbD1yLmV2ZW50LnNwZWNpYWxbbl18fHt9LGs9ci5leHRlbmQoe3R5cGU6bixvcmlnVHlwZTpwLGRhdGE6ZCxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZSxuZWVkc0NvbnRleHQ6ZSYmci5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpvLmpvaW4oIi4iKX0sZiksKG09aVtuXSl8fChtPWlbbl09W10sbS5kZWxlZ2F0ZUNvdW50PTAsbC5zZXR1cCYmbC5zZXR1cC5jYWxsKGEsZCxvLGcpIT09ITF8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKG4sZykpLGwuYWRkJiYobC5hZGQuY2FsbChhLGspLGsuaGFuZGxlci5ndWlkfHwoay5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZT9tLnNwbGljZShtLmRlbGVnYXRlQ291bnQrKywwLGspOm0ucHVzaChrKSxyLmV2ZW50Lmdsb2JhbFtuXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG4sbyxwLHE9Vy5oYXNEYXRhKGEpJiZXLmdldChhKTtpZihxJiYoaT1xLmV2ZW50cykpe2I9KGJ8fCIiKS5tYXRjaChMKXx8WyIiXSxqPWIubGVuZ3RoO3doaWxlKGotLSlpZihoPXVhLmV4ZWMoYltqXSl8fFtdLG49cD1oWzFdLG89KGhbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxuKXtsPXIuZXZlbnQuc3BlY2lhbFtuXXx8e30sbj0oZD9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8bixtPWlbbl18fFtdLGg9aFsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrby5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKSxnPWY9bS5sZW5ndGg7d2hpbGUoZi0tKWs9bVtmXSwhZSYmcCE9PWsub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWsuZ3VpZHx8aCYmIWgudGVzdChrLm5hbWVzcGFjZSl8fGQmJmQhPT1rLnNlbGVjdG9yJiYoIioqIiE9PWR8fCFrLnNlbGVjdG9yKXx8KG0uc3BsaWNlKGYsMSksay5zZWxlY3RvciYmbS5kZWxlZ2F0ZUNvdW50LS0sbC5yZW1vdmUmJmwucmVtb3ZlLmNhbGwoYSxrKSk7ZyYmIW0ubGVuZ3RoJiYobC50ZWFyZG93biYmbC50ZWFyZG93bi5jYWxsKGEsbyxxLmhhbmRsZSkhPT0hMXx8ci5yZW1vdmVFdmVudChhLG4scS5oYW5kbGUpLGRlbGV0ZSBpW25dKX1lbHNlIGZvcihuIGluIGkpci5ldmVudC5yZW1vdmUoYSxuK2Jbal0sYyxkLCEwKTtyLmlzRW1wdHlPYmplY3QoaSkmJlcucmVtb3ZlKGEsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZhciBiPXIuZXZlbnQuZml4KGEpLGMsZCxlLGYsZyxoLGk9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGo9KFcuZ2V0KHRoaXMsImV2ZW50cyIpfHx7fSlbYi50eXBlXXx8W10saz1yLmV2ZW50LnNwZWNpYWxbYi50eXBlXXx8e307Zm9yKGlbMF09YixjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKylpW2NdPWFyZ3VtZW50c1tjXTtpZihiLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWsucHJlRGlzcGF0Y2h8fGsucHJlRGlzcGF0Y2guY2FsbCh0aGlzLGIpIT09ITEpe2g9ci5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsYixqKSxjPTA7d2hpbGUoKGY9aFtjKytdKSYmIWIuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7Yi5jdXJyZW50VGFyZ2V0PWYuZWxlbSxkPTA7d2hpbGUoKGc9Zi5oYW5kbGVyc1tkKytdKSYmIWIuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSliLnJuYW1lc3BhY2UmJiFiLnJuYW1lc3BhY2UudGVzdChnLm5hbWVzcGFjZSl8fChiLmhhbmRsZU9iaj1nLGIuZGF0YT1nLmRhdGEsZT0oKHIuZXZlbnQuc3BlY2lhbFtnLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8Zy5oYW5kbGVyKS5hcHBseShmLmVsZW0saSksdm9pZCAwIT09ZSYmKGIucmVzdWx0PWUpPT09ITEmJihiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBrLnBvc3REaXNwYXRjaCYmay5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGIpLGIucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZixnLGg9W10saT1iLmRlbGVnYXRlQ291bnQsaj1hLnRhcmdldDtpZihpJiZqLm5vZGVUeXBlJiYhKCJjbGljayI9PT1hLnR5cGUmJmEuYnV0dG9uPj0xKSlmb3IoO2ohPT10aGlzO2o9ai5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1qLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8ai5kaXNhYmxlZCE9PSEwKSl7Zm9yKGY9W10sZz17fSxjPTA7YzxpO2MrKylkPWJbY10sZT1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1nW2VdJiYoZ1tlXT1kLm5lZWRzQ29udGV4dD9yKGUsdGhpcykuaW5kZXgoaik+LTE6ci5maW5kKGUsdGhpcyxudWxsLFtqXSkubGVuZ3RoKSxnW2VdJiZmLnB1c2goZCk7Zi5sZW5ndGgmJmgucHVzaCh7ZWxlbTpqLGhhbmRsZXJzOmZ9KX1yZXR1cm4gaj10aGlzLGk8Yi5sZW5ndGgmJmgucHVzaCh7ZWxlbTpqLGhhbmRsZXJzOmIuc2xpY2UoaSl9KSxofSxhZGRQcm9wOmZ1bmN0aW9uKGEsYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIuRXZlbnQucHJvdG90eXBlLGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpyLmlzRnVuY3Rpb24oYik/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGIodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFthXX0sc2V0OmZ1bmN0aW9uKGIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19KX0sZml4OmZ1bmN0aW9uKGEpe3JldHVybiBhW3IuZXhwYW5kb10/YTpuZXcgci5FdmVudChhKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGZvY3VzOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7aWYodGhpcyE9PXhhKCkmJnRoaXMuZm9jdXMpcmV0dXJuIHRoaXMuZm9jdXMoKSwhMX0sZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0sYmx1cjp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXM9PT14YSgpJiZ0aGlzLmJsdXIpcmV0dXJuIHRoaXMuYmx1cigpLCExfSxkZWxlZ2F0ZVR5cGU6ImZvY3Vzb3V0In0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZigiY2hlY2tib3giPT09dGhpcy50eXBlJiZ0aGlzLmNsaWNrJiZCKHRoaXMsImlucHV0IikpcmV0dXJuIHRoaXMuY2xpY2soKSwhMX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEIoYS50YXJnZXQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZvaWQgMCE9PWEucmVzdWx0JiZhLm9yaWdpbmFsRXZlbnQmJihhLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9YS5yZXN1bHQpfX19fSxyLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpfSxyLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiByLkV2ZW50PyhhJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJmEucmV0dXJuVmFsdWU9PT0hMT92YTp3YSx0aGlzLnRhcmdldD1hLnRhcmdldCYmMz09PWEudGFyZ2V0Lm5vZGVUeXBlP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWEuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9YSxiJiZyLmV4dGVuZCh0aGlzLGIpLHRoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxyLm5vdygpLHZvaWQodGhpc1tyLmV4cGFuZG9dPSEwKSk6bmV3IHIuRXZlbnQoYSxiKX0sci5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnIuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOndhLGlzUHJvcGFnYXRpb25TdG9wcGVkOndhLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOndhLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXZhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXZhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD12YSxhJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sci5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDpmdW5jdGlvbihhKXt2YXIgYj1hLmJ1dHRvbjtyZXR1cm4gbnVsbD09YS53aGljaCYmc2EudGVzdChhLnR5cGUpP251bGwhPWEuY2hhckNvZGU/YS5jaGFyQ29kZTphLmtleUNvZGU6IWEud2hpY2gmJnZvaWQgMCE9PWImJnRhLnRlc3QoYS50eXBlKT8xJmI/MToyJmI/Mzo0JmI/MjowOmEud2hpY2h9fSxyLmV2ZW50LmFkZFByb3ApLHIuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtyLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybiBlJiYoZT09PWR8fHIuY29udGFpbnMoZCxlKSl8fChhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLHIuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4geWEodGhpcyxhLGIsYyxkKX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB5YSh0aGlzLGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixyKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuIGIhPT0hMSYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9d2EpLHRoaXMuZWFjaChmdW5jdGlvbigpe3IuZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9fSk7dmFyIHphPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxBYT0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxCYT0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSxDYT0vXnRydWVcLyguKikvLERhPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBFYShhLGIpe3JldHVybiBCKGEsInRhYmxlIikmJkIoMTEhPT1iLm5vZGVUeXBlP2I6Yi5maXJzdENoaWxkLCJ0ciIpP3IoIj50Ym9keSIsYSlbMF18fGE6YX1mdW5jdGlvbiBGYShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uIEdhKGEpe3ZhciBiPUNhLmV4ZWMoYS50eXBlKTtyZXR1cm4gYj9hLnR5cGU9YlsxXTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLGF9ZnVuY3Rpb24gSGEoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihXLmhhc0RhdGEoYSkmJihmPVcuYWNjZXNzKGEpLGc9Vy5zZXQoYixmKSxqPWYuZXZlbnRzKSl7ZGVsZXRlIGcuaGFuZGxlLGcuZXZlbnRzPXt9O2ZvcihlIGluIGopZm9yKGM9MCxkPWpbZV0ubGVuZ3RoO2M8ZDtjKyspci5ldmVudC5hZGQoYixlLGpbZV1bY10pfVguaGFzRGF0YShhKSYmKGg9WC5hY2Nlc3MoYSksaT1yLmV4dGVuZCh7fSxoKSxYLnNldChiLGkpKX19ZnVuY3Rpb24gSWEoYSxiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7ImlucHV0Ij09PWMmJmphLnRlc3QoYS50eXBlKT9iLmNoZWNrZWQ9YS5jaGVja2VkOiJpbnB1dCIhPT1jJiYidGV4dGFyZWEiIT09Y3x8KGIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlKX1mdW5jdGlvbiBKYShhLGIsYyxkKXtiPWcuYXBwbHkoW10sYik7dmFyIGUsZixoLGksaixrLGw9MCxtPWEubGVuZ3RoLG49bS0xLHE9YlswXSxzPXIuaXNGdW5jdGlvbihxKTtpZihzfHxtPjEmJiJzdHJpbmciPT10eXBlb2YgcSYmIW8uY2hlY2tDbG9uZSYmQmEudGVzdChxKSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBmPWEuZXEoZSk7cyYmKGJbMF09cS5jYWxsKHRoaXMsZSxmLmh0bWwoKSkpLEphKGYsYixjLGQpfSk7aWYobSYmKGU9cWEoYixhWzBdLm93bmVyRG9jdW1lbnQsITEsYSxkKSxmPWUuZmlyc3RDaGlsZCwxPT09ZS5jaGlsZE5vZGVzLmxlbmd0aCYmKGU9ZiksZnx8ZCkpe2ZvcihoPXIubWFwKG5hKGUsInNjcmlwdCIpLEZhKSxpPWgubGVuZ3RoO2w8bTtsKyspaj1lLGwhPT1uJiYoaj1yLmNsb25lKGosITAsITApLGkmJnIubWVyZ2UoaCxuYShqLCJzY3JpcHQiKSkpLGMuY2FsbChhW2xdLGosbCk7aWYoaSlmb3Ioaz1oW2gubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsci5tYXAoaCxHYSksbD0wO2w8aTtsKyspaj1oW2xdLGxhLnRlc3Qoai50eXBlfHwiIikmJiFXLmFjY2VzcyhqLCJnbG9iYWxFdmFsIikmJnIuY29udGFpbnMoayxqKSYmKGouc3JjP3IuX2V2YWxVcmwmJnIuX2V2YWxVcmwoai5zcmMpOnAoai50ZXh0Q29udGVudC5yZXBsYWNlKERhLCIiKSxrKSl9cmV0dXJuIGF9ZnVuY3Rpb24gS2EoYSxiLGMpe2Zvcih2YXIgZCxlPWI/ci5maWx0ZXIoYixhKTphLGY9MDtudWxsIT0oZD1lW2ZdKTtmKyspY3x8MSE9PWQubm9kZVR5cGV8fHIuY2xlYW5EYXRhKG5hKGQpKSxkLnBhcmVudE5vZGUmJihjJiZyLmNvbnRhaW5zKGQub3duZXJEb2N1bWVudCxkKSYmb2EobmEoZCwic2NyaXB0IikpLGQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkKSk7cmV0dXJuIGF9ci5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSh6YSwiPCQxPjwvJDI+Iil9LGNsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuY2xvbmVOb2RlKCEwKSxpPXIuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpO2lmKCEoby5ub0Nsb25lQ2hlY2tlZHx8MSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZXx8ci5pc1hNTERvYyhhKSkpZm9yKGc9bmEoaCksZj1uYShhKSxkPTAsZT1mLmxlbmd0aDtkPGU7ZCsrKUlhKGZbZF0sZ1tkXSk7aWYoYilpZihjKWZvcihmPWZ8fG5hKGEpLGc9Z3x8bmEoaCksZD0wLGU9Zi5sZW5ndGg7ZDxlO2QrKylIYShmW2RdLGdbZF0pO2Vsc2UgSGEoYSxoKTtyZXR1cm4gZz1uYShoLCJzY3JpcHQiKSxnLmxlbmd0aD4wJiZvYShnLCFpJiZuYShhLCJzY3JpcHQiKSksaH0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGQsZT1yLmV2ZW50LnNwZWNpYWwsZj0wO3ZvaWQgMCE9PShjPWFbZl0pO2YrKylpZihVKGMpKXtpZihiPWNbVy5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGQgaW4gYi5ldmVudHMpZVtkXT9yLmV2ZW50LnJlbW92ZShjLGQpOnIucmVtb3ZlRXZlbnQoYyxkLGIuaGFuZGxlKTtjW1cuZXhwYW5kb109dm9pZCAwfWNbWC5leHBhbmRvXSYmKGNbWC5leHBhbmRvXT12b2lkIDApfX19KSxyLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiBLYSh0aGlzLGEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIEthKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFQodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9yLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9YSl9KX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSmEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUVhKHRoaXMsYSk7Yi5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9RWEodGhpcyxhKTtiLmluc2VydEJlZm9yZShhLGIuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7bnVsbCE9KGE9dGhpc1tiXSk7YisrKTE9PT1hLm5vZGVUeXBlJiYoci5jbGVhbkRhdGEobmEoYSwhMSkpLGEudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGIpe3JldHVybiBhPW51bGwhPWEmJmEsYj1udWxsPT1iP2E6Yix0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiByLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBUKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXXx8e30sYz0wLGQ9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YSYmMT09PWIubm9kZVR5cGUpcmV0dXJuIGIuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmIUFhLnRlc3QoYSkmJiFtYVsoa2EuZXhlYyhhKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2E9ci5odG1sUHJlZmlsdGVyKGEpO3RyeXtmb3IoO2M8ZDtjKyspYj10aGlzW2NdfHx7fSwxPT09Yi5ub2RlVHlwZSYmKHIuY2xlYW5EYXRhKG5hKGIsITEpKSxiLmlubmVySFRNTD1hKTtiPTB9Y2F0Y2goZSl7fX1iJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGEpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIEphKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMucGFyZW50Tm9kZTtyLmluQXJyYXkodGhpcyxhKTwwJiYoci5jbGVhbkRhdGEobmEodGhpcykpLGMmJmMucmVwbGFjZUNoaWxkKGIsdGhpcykpfSxhKX19KSxyLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe3IuZm5bYV09ZnVuY3Rpb24oYSl7Zm9yKHZhciBjLGQ9W10sZT1yKGEpLGY9ZS5sZW5ndGgtMSxnPTA7Zzw9ZjtnKyspYz1nPT09Zj90aGlzOnRoaXMuY2xvbmUoITApLHIoZVtnXSlbYl0oYyksaC5hcHBseShkLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhkKX19KTt2YXIgTGE9L15tYXJnaW4vLE1hPW5ldyBSZWdFeHAoIl4oIithYSsiKSg/IXB4KVthLXolXSskIiwiaSIpLE5hPWZ1bmN0aW9uKGIpe3ZhciBjPWIub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYyYmYy5vcGVuZXJ8fChjPWEpLGMuZ2V0Q29tcHV0ZWRTdHlsZShiKX07IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYigpe2lmKGkpe2kuc3R5bGUuY3NzVGV4dD0iYm94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt0b3A6MSU7d2lkdGg6NTAlIixpLmlubmVySFRNTD0iIixyYS5hcHBlbmRDaGlsZChoKTt2YXIgYj1hLmdldENvbXB1dGVkU3R5bGUoaSk7Yz0iMSUiIT09Yi50b3AsZz0iMnB4Ij09PWIubWFyZ2luTGVmdCxlPSI0cHgiPT09Yi53aWR0aCxpLnN0eWxlLm1hcmdpblJpZ2h0PSI1MCUiLGY9IjRweCI9PT1iLm1hcmdpblJpZ2h0LHJhLnJlbW92ZUNoaWxkKGgpLGk9bnVsbH19dmFyIGMsZSxmLGcsaD1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLnN0eWxlJiYoaS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGkuY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixvLmNsZWFyQ2xvbmVTdHlsZT0iY29udGVudC1ib3giPT09aS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxoLnN0eWxlLmNzc1RleHQ9ImJvcmRlcjowO3dpZHRoOjhweDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHg7cGFkZGluZzowO21hcmdpbi10b3A6MXB4O3Bvc2l0aW9uOmFic29sdXRlIixoLmFwcGVuZENoaWxkKGkpLHIuZXh0ZW5kKG8se3BpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gYigpLGN9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoKSxlfSxwaXhlbE1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIGIoKSxmfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYigpLGd9fSkpfSgpO2Z1bmN0aW9uIE9hKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8TmEoYSksYyYmKGc9Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdLCIiIT09Z3x8ci5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl8fChnPXIuc3R5bGUoYSxiKSksIW8ucGl4ZWxNYXJnaW5SaWdodCgpJiZNYS50ZXN0KGcpJiZMYS50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDAhPT1nP2crIiI6Z31mdW5jdGlvbiBQYShhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpP3ZvaWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX12YXIgUWE9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFJhPS9eLS0vLFNhPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxUYT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn0sVWE9WyJXZWJraXQiLCJNb3oiLCJtcyJdLFZhPWQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGU7ZnVuY3Rpb24gV2EoYSl7aWYoYSBpbiBWYSlyZXR1cm4gYTt2YXIgYj1hWzBdLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKSxjPVVhLmxlbmd0aDt3aGlsZShjLS0paWYoYT1VYVtjXStiLGEgaW4gVmEpcmV0dXJuIGF9ZnVuY3Rpb24gWGEoYSl7dmFyIGI9ci5jc3NQcm9wc1thXTtyZXR1cm4gYnx8KGI9ci5jc3NQcm9wc1thXT1XYShhKXx8YSksYn1mdW5jdGlvbiBZYShhLGIsYyl7dmFyIGQ9YmEuZXhlYyhiKTtyZXR1cm4gZD9NYXRoLm1heCgwLGRbMl0tKGN8fDApKSsoZFszXXx8InB4Iik6Yn1mdW5jdGlvbiBaYShhLGIsYyxkLGUpe3ZhciBmLGc9MDtmb3IoZj1jPT09KGQ/ImJvcmRlciI6ImNvbnRlbnQiKT80OiJ3aWR0aCI9PT1iPzE6MDtmPDQ7Zis9MikibWFyZ2luIj09PWMmJihnKz1yLmNzcyhhLGMrY2FbZl0sITAsZSkpLGQ/KCJjb250ZW50Ij09PWMmJihnLT1yLmNzcyhhLCJwYWRkaW5nIitjYVtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09ci5jc3MoYSwiYm9yZGVyIitjYVtmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPXIuY3NzKGEsInBhZGRpbmciK2NhW2ZdLCEwLGUpLCJwYWRkaW5nIiE9PWMmJihnKz1yLmNzcyhhLCJib3JkZXIiK2NhW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiAkYShhLGIsYyl7dmFyIGQsZT1OYShhKSxmPU9hKGEsYixlKSxnPSJib3JkZXItYm94Ij09PXIuY3NzKGEsImJveFNpemluZyIsITEsZSk7cmV0dXJuIE1hLnRlc3QoZik/ZjooZD1nJiYoby5ib3hTaXppbmdSZWxpYWJsZSgpfHxmPT09YS5zdHlsZVtiXSksImF1dG8iPT09ZiYmKGY9YVsib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKV0pLGY9cGFyc2VGbG9hdChmKXx8MCxmK1phKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZSkrInB4Iil9ci5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oYSxiKXtpZihiKXt2YXIgYz1PYShhLCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1jPyIxIjpjfX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGNvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnsiZmxvYXQiOiJjc3NGbG9hdCJ9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGUsZixnLGg9ci5jYW1lbENhc2UoYiksaT1SYS50ZXN0KGIpLGo9YS5zdHlsZTtyZXR1cm4gaXx8KGI9WGEoaCkpLGc9ci5jc3NIb29rc1tiXXx8ci5jc3NIb29rc1toXSx2b2lkIDA9PT1jP2cmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQoYSwhMSxkKSk/ZTpqW2JdOihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9YmEuZXhlYyhjKSkmJmVbMV0mJihjPWZhKGEsYixlKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiPT09ZiYmKGMrPWUmJmVbM118fChyLmNzc051bWJlcltoXT8iIjoicHgiKSksby5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoaltiXT0iaW5oZXJpdCIpLGcmJiJzZXQiaW4gZyYmdm9pZCAwPT09KGM9Zy5zZXQoYSxjLGQpKXx8KGk/ai5zZXRQcm9wZXJ0eShiLGMpOmpbYl09YykpLHZvaWQgMCl9fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9ci5jYW1lbENhc2UoYiksaT1SYS50ZXN0KGIpO3JldHVybiBpfHwoYj1YYShoKSksZz1yLmNzc0hvb2tzW2JdfHxyLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGU9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZSYmKGU9T2EoYSxiLGQpKSwibm9ybWFsIj09PWUmJmIgaW4gVGEmJihlPVRhW2JdKSwiIj09PWN8fGM/KGY9cGFyc2VGbG9hdChlKSxjPT09ITB8fGlzRmluaXRlKGYpP2Z8fDA6ZSk6ZX19KSxyLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7ci5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtpZihjKXJldHVybiFRYS50ZXN0KHIuY3NzKGEsImRpc3BsYXkiKSl8fGEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/JGEoYSxiLGQpOmVhKGEsU2EsZnVuY3Rpb24oKXtyZXR1cm4gJGEoYSxiLGQpfSl9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGUsZj1kJiZOYShhKSxnPWQmJlphKGEsYixkLCJib3JkZXItYm94Ij09PXIuY3NzKGEsImJveFNpemluZyIsITEsZiksZik7cmV0dXJuIGcmJihlPWJhLmV4ZWMoYykpJiYicHgiIT09KGVbM118fCJweCIpJiYoYS5zdHlsZVtiXT1jLGM9ci5jc3MoYSxiKSksWWEoYSxjLGcpfX19KSxyLmNzc0hvb2tzLm1hcmdpbkxlZnQ9UGEoby5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybihwYXJzZUZsb2F0KE9hKGEsIm1hcmdpbkxlZnQiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1lYShhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksci5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtyLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ZDw0O2QrKyllW2ErY2FbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sTGEudGVzdChhKXx8KHIuY3NzSG9va3NbYStiXS5zZXQ9WWEpfSksci5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBUKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKGQ9TmEoYSksZT1iLmxlbmd0aDtnPGU7ZysrKWZbYltnXV09ci5jc3MoYSxiW2ddLCExLGQpO3JldHVybiBmfXJldHVybiB2b2lkIDAhPT1jP3Iuc3R5bGUoYSxiLGMpOnIuY3NzKGEsYil9LGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfX0pO2Z1bmN0aW9uIF9hKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBfYS5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfXIuVHdlZW49X2EsX2EucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpfYSxpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHxyLmVhc2luZy5fZGVmYXVsdCx0aGlzLm9wdGlvbnM9Yix0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCksdGhpcy5lbmQ9ZCx0aGlzLnVuaXQ9Znx8KHIuY3NzTnVtYmVyW2NdPyIiOiJweCIpfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1fYS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6X2EucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9X2EucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMub3B0aW9ucy5kdXJhdGlvbj90aGlzLnBvcz1iPXIuZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOnRoaXMucG9zPWI9YSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkqYit0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxjJiZjLnNldD9jLnNldCh0aGlzKTpfYS5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KHRoaXMpLHRoaXN9fSxfYS5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGU9X2EucHJvdG90eXBlLF9hLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gMSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbCE9YS5lbGVtW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVthLnByb3BdP2EuZWxlbVthLnByb3BdOihiPXIuY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKX0sc2V0OmZ1bmN0aW9uKGEpe3IuZnguc3RlcFthLnByb3BdP3IuZnguc3RlcFthLnByb3BdKGEpOjEhPT1hLmVsZW0ubm9kZVR5cGV8fG51bGw9PWEuZWxlbS5zdHlsZVtyLmNzc1Byb3BzW2EucHJvcF1dJiYhci5jc3NIb29rc1thLnByb3BdP2EuZWxlbVthLnByb3BdPWEubm93OnIuc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpfX19LF9hLnByb3BIb29rcy5zY3JvbGxUb3A9X2EucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sci5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxyLmZ4PV9hLnByb3RvdHlwZS5pbml0LHIuZnguc3RlcD17fTt2YXIgYWIsYmIsY2I9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLGRiPS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gZWIoKXtiYiYmKGQuaGlkZGVuPT09ITEmJmEucmVxdWVzdEFuaW1hdGlvbkZyYW1lP2EucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGViKTphLnNldFRpbWVvdXQoZWIsci5meC5pbnRlcnZhbCksci5meC50aWNrKCkpfWZ1bmN0aW9uIGZiKCl7cmV0dXJuIGEuc2V0VGltZW91dChmdW5jdGlvbigpe2FiPXZvaWQgMH0pLGFiPXIubm93KCl9ZnVuY3Rpb24gZ2IoYSxiKXt2YXIgYyxkPTAsZT17aGVpZ2h0OmF9O2ZvcihiPWI/MTowO2Q8NDtkKz0yLWIpYz1jYVtkXSxlWyJtYXJnaW4iK2NdPWVbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihlLm9wYWNpdHk9ZS53aWR0aD1hKSxlfWZ1bmN0aW9uIGhiKGEsYixjKXtmb3IodmFyIGQsZT0oa2IudHdlZW5lcnNbYl18fFtdKS5jb25jYXQoa2IudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7ZjxnO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gaWIoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbD0id2lkdGgiaW4gYnx8ImhlaWdodCJpbiBiLG09dGhpcyxuPXt9LG89YS5zdHlsZSxwPWEubm9kZVR5cGUmJmRhKGEpLHE9Vy5nZXQoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGc9ci5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWcudW5xdWV1ZWQmJihnLnVucXVldWVkPTAsaD1nLmVtcHR5LmZpcmUsZy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7Zy51bnF1ZXVlZHx8aCgpfSksZy51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtnLnVucXVldWVkLS0sci5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8Zy5lbXB0eS5maXJlKCl9KX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxjYi50ZXN0KGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHA/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFxfHx2b2lkIDA9PT1xW2RdKWNvbnRpbnVlO3A9ITB9bltkXT1xJiZxW2RdfHxyLnN0eWxlKGEsZCl9aWYoaT0hci5pc0VtcHR5T2JqZWN0KGIpLGl8fCFyLmlzRW1wdHlPYmplY3Qobikpe2wmJjE9PT1hLm5vZGVUeXBlJiYoYy5vdmVyZmxvdz1bby5vdmVyZmxvdyxvLm92ZXJmbG93WCxvLm92ZXJmbG93WV0saj1xJiZxLmRpc3BsYXksbnVsbD09aiYmKGo9Vy5nZXQoYSwiZGlzcGxheSIpKSxrPXIuY3NzKGEsImRpc3BsYXkiKSwibm9uZSI9PT1rJiYoaj9rPWo6KGlhKFthXSwhMCksaj1hLnN0eWxlLmRpc3BsYXl8fGosaz1yLmNzcyhhLCJkaXNwbGF5IiksaWEoW2FdKSkpLCgiaW5saW5lIj09PWt8fCJpbmxpbmUtYmxvY2siPT09ayYmbnVsbCE9aikmJiJub25lIj09PXIuY3NzKGEsImZsb2F0IikmJihpfHwobS5kb25lKGZ1bmN0aW9uKCl7by5kaXNwbGF5PWp9KSxudWxsPT1qJiYoaz1vLmRpc3BsYXksaj0ibm9uZSI9PT1rPyIiOmspKSxvLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYoby5vdmVyZmxvdz0iaGlkZGVuIixtLmFsd2F5cyhmdW5jdGlvbigpe28ub3ZlcmZsb3c9Yy5vdmVyZmxvd1swXSxvLm92ZXJmbG93WD1jLm92ZXJmbG93WzFdLG8ub3ZlcmZsb3dZPWMub3ZlcmZsb3dbMl19KSksaT0hMTtmb3IoZCBpbiBuKWl8fChxPyJoaWRkZW4iaW4gcSYmKHA9cS5oaWRkZW4pOnE9Vy5hY2Nlc3MoYSwiZnhzaG93Iix7ZGlzcGxheTpqfSksZiYmKHEuaGlkZGVuPSFwKSxwJiZpYShbYV0sITApLG0uZG9uZShmdW5jdGlvbigpe3B8fGlhKFthXSksVy5yZW1vdmUoYSwiZnhzaG93Iik7Zm9yKGQgaW4gbilyLnN0eWxlKGEsZCxuW2RdKX0pKSxpPWhiKHA/cVtkXTowLGQsbSksZCBpbiBxfHwocVtkXT1pLnN0YXJ0LHAmJihpLmVuZD1pLnN0YXJ0LGkuc3RhcnQ9MCkpfX1mdW5jdGlvbiBqYihhLGIpe3ZhciBjLGQsZSxmLGc7Zm9yKGMgaW4gYSlpZihkPXIuY2FtZWxDYXNlKGMpLGU9YltkXSxmPWFbY10sQXJyYXkuaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9ci5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBrYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1rYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPXIuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWFifHxmYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtnPGk7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksZjwxJiZpP2M6KGl8fGgubm90aWZ5V2l0aChhLFtqLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpyLmV4dGVuZCh7fSxiKSxvcHRzOnIuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpyLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmFifHxmYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9ci5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtjPGQ7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihqYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtmPGc7ZisrKWlmKGQ9a2IucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIHIuaXNGdW5jdGlvbihkLnN0b3ApJiYoci5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPXIucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiByLm1hcChrLGhiLGopLHIuaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLGoucHJvZ3Jlc3Moai5vcHRzLnByb2dyZXNzKS5kb25lKGoub3B0cy5kb25lLGoub3B0cy5jb21wbGV0ZSkuZmFpbChqLm9wdHMuZmFpbCkuYWx3YXlzKGoub3B0cy5hbHdheXMpLHIuZngudGltZXIoci5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksan1yLkFuaW1hdGlvbj1yLmV4dGVuZChrYix7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIGZhKGMuZWxlbSxhLGJhLmV4ZWMoYiksYyksY31dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsYil7ci5pc0Z1bmN0aW9uKGEpPyhiPWEsYT1bIioiXSk6YT1hLm1hdGNoKEwpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtkPGU7ZCsrKWM9YVtkXSxrYi50d2VlbmVyc1tjXT1rYi50d2VlbmVyc1tjXXx8W10sa2IudHdlZW5lcnNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyczpbaWJdLHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I/a2IucHJlZmlsdGVycy51bnNoaWZ0KGEpOmtiLnByZWZpbHRlcnMucHVzaChhKX19KSxyLnNwZWVkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hJiYib2JqZWN0Ij09dHlwZW9mIGE/ci5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxyLmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmYnx8YiYmIXIuaXNGdW5jdGlvbihiKSYmYn07cmV0dXJuIHIuZngub2ZmP2QuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGQuZHVyYXRpb24mJihkLmR1cmF0aW9uIGluIHIuZnguc3BlZWRzP2QuZHVyYXRpb249ci5meC5zcGVlZHNbZC5kdXJhdGlvbl06ZC5kdXJhdGlvbj1yLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtyLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJnIuZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxyLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihkYSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ci5pc0VtcHR5T2JqZWN0KGEpLGY9ci5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtiKHRoaXMsci5leHRlbmQoe30sYSksZik7KGV8fFcuZ2V0KHRoaXMsImZpbmlzaCIpKSYmYi5zdG9wKCEwKX07cmV0dXJuIGcuZmluaXNoPWcsZXx8Zi5xdWV1ZT09PSExP3RoaXMuZWFjaChnKTp0aGlzLnF1ZXVlKGYucXVldWUsZyl9LHN0b3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3RvcDtkZWxldGUgYS5zdG9wLGIoYyl9O3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGM9YixiPWEsYT12b2lkIDApLGImJmEhPT0hMSYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj0hMCxlPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGY9ci50aW1lcnMsZz1XLmdldCh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZkYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxyLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1XLmdldCh0aGlzKSxkPWNbYSsicXVldWUiXSxlPWNbYSsicXVldWVIb29rcyJdLGY9ci50aW1lcnMsZz1kP2QubGVuZ3RoOjA7Zm9yKGMuZmluaXNoPSEwLHIucXVldWUodGhpcyxhLFtdKSxlJiZlLnN0b3AmJmUuc3RvcC5jYWxsKHRoaXMsITApLGI9Zi5sZW5ndGg7Yi0tOylmW2JdLmVsZW09PT10aGlzJiZmW2JdLnF1ZXVlPT09YSYmKGZbYl0uYW5pbS5zdG9wKCEwKSxmLnNwbGljZShiLDEpKTtmb3IoYj0wO2I8ZztiKyspZFtiXSYmZFtiXS5maW5pc2gmJmRbYl0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIGMuZmluaXNofSl9fSksci5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihhLGIpe3ZhciBjPXIuZm5bYl07ci5mbltiXT1mdW5jdGlvbihhLGQsZSl7cmV0dXJuIG51bGw9PWF8fCJib29sZWFuIj09dHlwZW9mIGE/Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKGdiKGIsITApLGEsZCxlKX19KSxyLmVhY2goe3NsaWRlRG93bjpnYigic2hvdyIpLHNsaWRlVXA6Z2IoImhpZGUiKSxzbGlkZVRvZ2dsZTpnYigidG9nZ2xlIiksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe3IuZm5bYV09ZnVuY3Rpb24oYSxjLGQpe3JldHVybiB0aGlzLmFuaW1hdGUoYixhLGMsZCl9fSksci50aW1lcnM9W10sci5meC50aWNrPWZ1bmN0aW9uKCl7dmFyIGEsYj0wLGM9ci50aW1lcnM7Zm9yKGFiPXIubm93KCk7YjxjLmxlbmd0aDtiKyspYT1jW2JdLGEoKXx8Y1tiXSE9PWF8fGMuc3BsaWNlKGItLSwxKTtjLmxlbmd0aHx8ci5meC5zdG9wKCksYWI9dm9pZCAwfSxyLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe3IudGltZXJzLnB1c2goYSksci5meC5zdGFydCgpfSxyLmZ4LmludGVydmFsPTEzLHIuZnguc3RhcnQ9ZnVuY3Rpb24oKXtiYnx8KGJiPSEwLGViKCkpfSxyLmZ4LnN0b3A9ZnVuY3Rpb24oKXtiYj1udWxsfSxyLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxyLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9ci5meD9yLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYT1kLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksYj1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGM9Yi5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTthLnR5cGU9ImNoZWNrYm94IixvLmNoZWNrT249IiIhPT1hLnZhbHVlLG8ub3B0U2VsZWN0ZWQ9Yy5zZWxlY3RlZCxhPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnZhbHVlPSJ0IixhLnR5cGU9InJhZGlvIixvLnJhZGlvVmFsdWU9InQiPT09YS52YWx1ZX0oKTt2YXIgbGIsbWI9ci5leHByLmF0dHJIYW5kbGU7ci5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVCh0aGlzLHIuYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ci5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxyLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRlP3IucHJvcChhLGIsYyk6KDE9PT1mJiZyLmlzWE1MRG9jKGEpfHwoZT1yLmF0dHJIb29rc1tiLnRvTG93ZXJDYXNlKCldfHwoci5leHByLm1hdGNoLmJvb2wudGVzdChiKT9sYjp2b2lkIDApKSx2b2lkIDAhPT1jP251bGw9PT1jP3ZvaWQgci5yZW1vdmVBdHRyKGEsYik6ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDooZD1yLmZpbmQuYXR0cihhLGIpLApudWxsPT1kP3ZvaWQgMDpkKSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIW8ucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJkIoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTAsZT1iJiZiLm1hdGNoKEwpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZVtkKytdKWEucmVtb3ZlQXR0cmlidXRlKGMpfX0pLGxiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/ci5yZW1vdmVBdHRyKGEsYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX0sci5lYWNoKHIuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9bWJbYl18fHIuZmluZC5hdHRyO21iW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmLGc9Yi50b0xvd2VyQ2FzZSgpO3JldHVybiBkfHwoZj1tYltnXSxtYltnXT1lLGU9bnVsbCE9YyhhLGIsZCk/ZzpudWxsLG1iW2ddPWYpLGV9fSk7dmFyIG5iPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksb2I9L14oPzphfGFyZWEpJC9pO3IuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFQodGhpcyxyLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3IucHJvcEZpeFthXXx8YV19KX19KSxyLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gMT09PWYmJnIuaXNYTUxEb2MoYSl8fChiPXIucHJvcEZpeFtiXXx8YixlPXIucHJvcEhvb2tzW2JdKSx2b2lkIDAhPT1jP2UmJiJzZXQiaW4gZSYmdm9pZCAwIT09KGQ9ZS5zZXQoYSxjLGIpKT9kOmFbYl09YzplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOmFbYl19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1yLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBiP3BhcnNlSW50KGIsMTApOm5iLnRlc3QoYS5ub2RlTmFtZSl8fG9iLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pLG8ub3B0U2VsZWN0ZWR8fChyLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO2ImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSksci5lYWNoKFsidGFiSW5kZXgiLCJyZWFkT25seSIsIm1heExlbmd0aCIsImNlbGxTcGFjaW5nIiwiY2VsbFBhZGRpbmciLCJyb3dTcGFuIiwiY29sU3BhbiIsInVzZU1hcCIsImZyYW1lQm9yZGVyIiwiY29udGVudEVkaXRhYmxlIl0sZnVuY3Rpb24oKXtyLnByb3BGaXhbdGhpcy50b0xvd2VyQ2FzZSgpXT10aGlzfSk7ZnVuY3Rpb24gcGIoYSl7dmFyIGI9YS5tYXRjaChMKXx8W107cmV0dXJuIGIuam9pbigiICIpfWZ1bmN0aW9uIHFiKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifXIuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYoci5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7cih0aGlzKS5hZGRDbGFzcyhhLmNhbGwodGhpcyxiLHFiKHRoaXMpKSl9KTtpZigic3RyaW5nIj09dHlwZW9mIGEmJmEpe2I9YS5tYXRjaChMKXx8W107d2hpbGUoYz10aGlzW2krK10paWYoZT1xYihjKSxkPTE9PT1jLm5vZGVUeXBlJiYiICIrcGIoZSkrIiAiKXtnPTA7d2hpbGUoZj1iW2crK10pZC5pbmRleE9mKCIgIitmKyIgIik8MCYmKGQrPWYrIiAiKTtoPXBiKGQpLGUhPT1oJiZjLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGgsaT0wO2lmKHIuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3IodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsYixxYih0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigic3RyaW5nIj09dHlwZW9mIGEmJmEpe2I9YS5tYXRjaChMKXx8W107d2hpbGUoYz10aGlzW2krK10paWYoZT1xYihjKSxkPTE9PT1jLm5vZGVUeXBlJiYiICIrcGIoZSkrIiAiKXtnPTA7d2hpbGUoZj1iW2crK10pd2hpbGUoZC5pbmRleE9mKCIgIitmKyIgIik+LTEpZD1kLnJlcGxhY2UoIiAiK2YrIiAiLCIgIik7aD1wYihkKSxlIT09aCYmYy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGEsYil7dmFyIGM9dHlwZW9mIGE7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgYiYmInN0cmluZyI9PT1jP2I/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOnIuaXNGdW5jdGlvbihhKT90aGlzLmVhY2goZnVuY3Rpb24oYyl7cih0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxjLHFiKHRoaXMpLGIpLGIpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsZCxlLGY7aWYoInN0cmluZyI9PT1jKXtkPTAsZT1yKHRoaXMpLGY9YS5tYXRjaChMKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZSB2b2lkIDAhPT1hJiYiYm9vbGVhbiIhPT1jfHwoYj1xYih0aGlzKSxiJiZXLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixiKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixifHxhPT09ITE/IiI6Vy5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZD0wO2I9IiAiK2ErIiAiO3doaWxlKGM9dGhpc1tkKytdKWlmKDE9PT1jLm5vZGVUeXBlJiYoIiAiK3BiKHFiKGMpKSsiICIpLmluZGV4T2YoYik+LTEpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHJiPS9cci9nO3IuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU9dGhpc1swXTt7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZD1yLmlzRnVuY3Rpb24oYSksdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe3ZhciBlOzE9PT10aGlzLm5vZGVUeXBlJiYoZT1kP2EuY2FsbCh0aGlzLGMscih0aGlzKS52YWwoKSk6YSxudWxsPT1lP2U9IiI6Im51bWJlciI9PXR5cGVvZiBlP2UrPSIiOkFycmF5LmlzQXJyYXkoZSkmJihlPXIubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPXIudmFsSG9va3NbdGhpcy50eXBlXXx8ci52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPXIudmFsSG9va3NbZS50eXBlXXx8ci52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UocmIsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLHIuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ci5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOnBiKHIudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLm9wdGlvbnMsZj1hLnNlbGVjdGVkSW5kZXgsZz0ic2VsZWN0LW9uZSI9PT1hLnR5cGUsaD1nP251bGw6W10saT1nP2YrMTplLmxlbmd0aDtmb3IoZD1mPDA/aTpnP2Y6MDtkPGk7ZCsrKWlmKGM9ZVtkXSwoYy5zZWxlY3RlZHx8ZD09PWYpJiYhYy5kaXNhYmxlZCYmKCFjLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFCKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9cihjKS52YWwoKSxnKXJldHVybiBiO2gucHVzaChiKX1yZXR1cm4gaH0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPXIubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWQ9ZVtnXSwoZC5zZWxlY3RlZD1yLmluQXJyYXkoci52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPi0xKSYmKGM9ITApO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxmfX19fSksci5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7ci52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7aWYoQXJyYXkuaXNBcnJheShiKSlyZXR1cm4gYS5jaGVja2VkPXIuaW5BcnJheShyKGEpLnZhbCgpLGIpPi0xfX0sby5jaGVja09ufHwoci52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBzYj0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC87ci5leHRlbmQoci5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihiLGMsZSxmKXt2YXIgZyxoLGksaixrLG0sbixvPVtlfHxkXSxwPWwuY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1sLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWk9ZT1lfHxkLDMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmIXNiLnRlc3QocCtyLmV2ZW50LnRyaWdnZXJlZCkmJihwLmluZGV4T2YoIi4iKT4tMSYmKHE9cC5zcGxpdCgiLiIpLHA9cS5zaGlmdCgpLHEuc29ydCgpKSxrPXAuaW5kZXhPZigiOiIpPDAmJiJvbiIrcCxiPWJbci5leHBhbmRvXT9iOm5ldyByLkV2ZW50KHAsIm9iamVjdCI9PXR5cGVvZiBiJiZiKSxiLmlzVHJpZ2dlcj1mPzI6MyxiLm5hbWVzcGFjZT1xLmpvaW4oIi4iKSxiLnJuYW1lc3BhY2U9Yi5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrcS5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWUpLGM9bnVsbD09Yz9bYl06ci5tYWtlQXJyYXkoYyxbYl0pLG49ci5ldmVudC5zcGVjaWFsW3BdfHx7fSxmfHwhbi50cmlnZ2VyfHxuLnRyaWdnZXIuYXBwbHkoZSxjKSE9PSExKSl7aWYoIWYmJiFuLm5vQnViYmxlJiYhci5pc1dpbmRvdyhlKSl7Zm9yKGo9bi5kZWxlZ2F0ZVR5cGV8fHAsc2IudGVzdChqK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGk9aDtpPT09KGUub3duZXJEb2N1bWVudHx8ZCkmJm8ucHVzaChpLmRlZmF1bHRWaWV3fHxpLnBhcmVudFdpbmRvd3x8YSl9Zz0wO3doaWxlKChoPW9bZysrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPWc+MT9qOm4uYmluZFR5cGV8fHAsbT0oVy5nZXQoaCwiZXZlbnRzIil8fHt9KVtiLnR5cGVdJiZXLmdldChoLCJoYW5kbGUiKSxtJiZtLmFwcGx5KGgsYyksbT1rJiZoW2tdLG0mJm0uYXBwbHkmJlUoaCkmJihiLnJlc3VsdD1tLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gYi50eXBlPXAsZnx8Yi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8bi5fZGVmYXVsdCYmbi5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpIT09ITF8fCFVKGUpfHxrJiZyLmlzRnVuY3Rpb24oZVtwXSkmJiFyLmlzV2luZG93KGUpJiYoaT1lW2tdLGkmJihlW2tdPW51bGwpLHIuZXZlbnQudHJpZ2dlcmVkPXAsZVtwXSgpLHIuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxpJiYoZVtrXT1pKSksYi5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ci5leHRlbmQobmV3IHIuRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7ci5ldmVudC50cmlnZ2VyKGQsbnVsbCxiKX19KSxyLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtyLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1swXTtpZihjKXJldHVybiByLmV2ZW50LnRyaWdnZXIoYSxiLGMsITApfX0pLHIuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe3IuZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLHIuZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX19KSxvLmZvY3VzaW49Im9uZm9jdXNpbiJpbiBhLG8uZm9jdXNpbnx8ci5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe3IuZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxyLmV2ZW50LmZpeChhKSl9O3IuZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1XLmFjY2VzcyhkLGIpO2V8fGQuYWRkRXZlbnRMaXN0ZW5lcihhLGMsITApLFcuYWNjZXNzKGQsYiwoZXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9Vy5hY2Nlc3MoZCxiKS0xO2U/Vy5hY2Nlc3MoZCxiLGUpOihkLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxjLCEwKSxXLnJlbW92ZShkLGIpKX19fSk7dmFyIHRiPWEubG9jYXRpb24sdWI9ci5ub3coKSx2Yj0vXD8vO3IucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGM7aWYoIWJ8fCJzdHJpbmciIT10eXBlb2YgYilyZXR1cm4gbnVsbDt0cnl7Yz0obmV3IGEuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKX1jYXRjaChkKXtjPXZvaWQgMH1yZXR1cm4gYyYmIWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHxyLmVycm9yKCJJbnZhbGlkIFhNTDogIitiKSxjfTt2YXIgd2I9L1xbXF0kLyx4Yj0vXHI/XG4vZyx5Yj0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEFiKGEsYixjLGQpe3ZhciBlO2lmKEFycmF5LmlzQXJyYXkoYikpci5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHx3Yi50ZXN0KGEpP2QoYSxlKTpBYihhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09ci50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpQWIoYSsiWyIrZSsiXSIsYltlXSxjLGQpfXIucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yLmlzRnVuY3Rpb24oYik/YigpOmI7ZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQobnVsbD09Yz8iIjpjKX07aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFyLmlzUGxhaW5PYmplY3QoYSkpci5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlBYihjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIil9LHIuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gci5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXIucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP3IubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIXIodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZ6Yi50ZXN0KHRoaXMubm9kZU5hbWUpJiYheWIudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IWphLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9cih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOkFycmF5LmlzQXJyYXkoYyk/ci5tYXAoYyxmdW5jdGlvbihhKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKHhiLCJcclxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmMucmVwbGFjZSh4YiwiXHJcbiIpfX0pLmdldCgpfX0pO3ZhciBCYj0vJTIwL2csQ2I9LyMuKiQvLERiPS8oWz8mXSlfPVteJl0qLyxFYj0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL2dtLEZiPS9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLEdiPS9eKD86R0VUfEhFQUQpJC8sSGI9L15cL1wvLyxJYj17fSxKYj17fSxLYj0iKi8iLmNvbmNhdCgiKiIpLExiPWQuY3JlYXRlRWxlbWVudCgiYSIpO0xiLmhyZWY9dGIuaHJlZjtmdW5jdGlvbiBNYihhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWIsYj0iKiIpO3ZhciBkLGU9MCxmPWIudG9Mb3dlckNhc2UoKS5tYXRjaChMKXx8W107aWYoci5pc0Z1bmN0aW9uKGMpKXdoaWxlKGQ9ZltlKytdKSIrIj09PWRbMF0/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTmIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SmI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxyLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBPYihhLGIpe3ZhciBjLGQsZT1yLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGMgaW4gYil2b2lkIDAhPT1iW2NdJiYoKGVbY10/YTpkfHwoZD17fSkpW2NdPWJbY10pO3JldHVybiBkJiZyLmV4dGVuZCghMCxhLGQpLGF9ZnVuY3Rpb24gUGIoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWQmJihkPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihkKWZvcihlIGluIGgpaWYoaFtlXSYmaFtlXS50ZXN0KGQpKXtpLnVuc2hpZnQoZSk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGUgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tlKyIgIitpWzBdXSl7Zj1lO2JyZWFrfWd8fChnPWUpfWY9Znx8Z31pZihmKXJldHVybiBmIT09aVswXSYmaS51bnNoaWZ0KGYpLGNbZl19ZnVuY3Rpb24gUWIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1yLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6dGIuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6RmIudGVzdCh0Yi5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpLYix0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6ci5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/T2IoT2IoYSxyLmFqYXhTZXR0aW5ncyksYik6T2Ioci5hamF4U2V0dGluZ3MsYSl9LGFqYXhQcmVmaWx0ZXI6TWIoSWIpLGFqYXhUcmFuc3BvcnQ6TWIoSmIpLGFqYXg6ZnVuY3Rpb24oYixjKXsib2JqZWN0Ij09dHlwZW9mIGImJihjPWIsYj12b2lkIDApLGM9Y3x8e307dmFyIGUsZixnLGgsaSxqLGssbCxtLG4sbz1yLmFqYXhTZXR1cCh7fSxjKSxwPW8uY29udGV4dHx8byxxPW8uY29udGV4dCYmKHAubm9kZVR5cGV8fHAuanF1ZXJ5KT9yKHApOnIuZXZlbnQscz1yLkRlZmVycmVkKCksdD1yLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx1PW8uc3RhdHVzQ29kZXx8e30sdj17fSx3PXt9LHg9ImNhbmNlbGVkIix5PXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoayl7aWYoIWgpe2g9e307d2hpbGUoYj1FYi5leGVjKGcpKWhbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9aFthLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIGs/ZzpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWsmJihhPXdbYS50b0xvd2VyQ2FzZSgpXT13W2EudG9Mb3dlckNhc2UoKV18fGEsdlthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1rJiYoby5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoayl5LmFsd2F5cyhhW3kuc3RhdHVzXSk7ZWxzZSBmb3IoYiBpbiBhKXVbYl09W3VbYl0sYVtiXV07cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHg7cmV0dXJuIGUmJmUuYWJvcnQoYiksQSgwLGIpLHRoaXN9fTtpZihzLnByb21pc2UoeSksby51cmw9KChifHxvLnVybHx8dGIuaHJlZikrIiIpLnJlcGxhY2UoSGIsdGIucHJvdG9jb2wrIi8vIiksby50eXBlPWMubWV0aG9kfHxjLnR5cGV8fG8ubWV0aG9kfHxvLnR5cGUsby5kYXRhVHlwZXM9KG8uZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChMKXx8WyIiXSxudWxsPT1vLmNyb3NzRG9tYWluKXtqPWQuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXtqLmhyZWY9by51cmwsai5ocmVmPWouaHJlZixvLmNyb3NzRG9tYWluPUxiLnByb3RvY29sKyIvLyIrTGIuaG9zdCE9ai5wcm90b2NvbCsiLy8iK2ouaG9zdH1jYXRjaCh6KXtvLmNyb3NzRG9tYWluPSEwfX1pZihvLmRhdGEmJm8ucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2Ygby5kYXRhJiYoby5kYXRhPXIucGFyYW0oby5kYXRhLG8udHJhZGl0aW9uYWwpKSxOYihJYixvLGMseSksaylyZXR1cm4geTtsPXIuZXZlbnQmJm8uZ2xvYmFsLGwmJjA9PT1yLmFjdGl2ZSsrJiZyLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLG8udHlwZT1vLnR5cGUudG9VcHBlckNhc2UoKSxvLmhhc0NvbnRlbnQ9IUdiLnRlc3Qoby50eXBlKSxmPW8udXJsLnJlcGxhY2UoQ2IsIiIpLG8uaGFzQ29udGVudD9vLmRhdGEmJm8ucHJvY2Vzc0RhdGEmJjA9PT0oby5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYoby5kYXRhPW8uZGF0YS5yZXBsYWNlKEJiLCIrIikpOihuPW8udXJsLnNsaWNlKGYubGVuZ3RoKSxvLmRhdGEmJihmKz0odmIudGVzdChmKT8iJiI6Ij8iKStvLmRhdGEsZGVsZXRlIG8uZGF0YSksby5jYWNoZT09PSExJiYoZj1mLnJlcGxhY2UoRGIsIiQxIiksbj0odmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3ViKysgK24pLG8udXJsPWYrbiksby5pZk1vZGlmaWVkJiYoci5sYXN0TW9kaWZpZWRbZl0mJnkuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLHIubGFzdE1vZGlmaWVkW2ZdKSxyLmV0YWdbZl0mJnkuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsci5ldGFnW2ZdKSksKG8uZGF0YSYmby5oYXNDb250ZW50JiZvLmNvbnRlbnRUeXBlIT09ITF8fGMuY29udGVudFR5cGUpJiZ5LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsby5jb250ZW50VHlwZSkseS5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLG8uZGF0YVR5cGVzWzBdJiZvLmFjY2VwdHNbby5kYXRhVHlwZXNbMF1dP28uYWNjZXB0c1tvLmRhdGFUeXBlc1swXV0rKCIqIiE9PW8uZGF0YVR5cGVzWzBdPyIsICIrS2IrIjsgcT0wLjAxIjoiIik6by5hY2NlcHRzWyIqIl0pO2ZvcihtIGluIG8uaGVhZGVycyl5LnNldFJlcXVlc3RIZWFkZXIobSxvLmhlYWRlcnNbbV0pO2lmKG8uYmVmb3JlU2VuZCYmKG8uYmVmb3JlU2VuZC5jYWxsKHAseSxvKT09PSExfHxrKSlyZXR1cm4geS5hYm9ydCgpO2lmKHg9ImFib3J0Iix0LmFkZChvLmNvbXBsZXRlKSx5LmRvbmUoby5zdWNjZXNzKSx5LmZhaWwoby5lcnJvciksZT1OYihKYixvLGMseSkpe2lmKHkucmVhZHlTdGF0ZT0xLGwmJnEudHJpZ2dlcigiYWpheFNlbmQiLFt5LG9dKSxrKXJldHVybiB5O28uYXN5bmMmJm8udGltZW91dD4wJiYoaT1hLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmFib3J0KCJ0aW1lb3V0Iil9LG8udGltZW91dCkpO3RyeXtrPSExLGUuc2VuZCh2LEEpfWNhdGNoKHope2lmKGspdGhyb3cgejtBKC0xLHopfX1lbHNlIEEoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIEEoYixjLGQsaCl7dmFyIGosbSxuLHYsdyx4PWM7a3x8KGs9ITAsaSYmYS5jbGVhclRpbWVvdXQoaSksZT12b2lkIDAsZz1ofHwiIix5LnJlYWR5U3RhdGU9Yj4wPzQ6MCxqPWI+PTIwMCYmYjwzMDB8fDMwND09PWIsZCYmKHY9UGIobyx5LGQpKSx2PVFiKG8sdix5LGopLGo/KG8uaWZNb2RpZmllZCYmKHc9eS5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHcmJihyLmxhc3RNb2RpZmllZFtmXT13KSx3PXkuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx3JiYoci5ldGFnW2ZdPXcpKSwyMDQ9PT1ifHwiSEVBRCI9PT1vLnR5cGU/eD0ibm9jb250ZW50IjozMDQ9PT1iP3g9Im5vdG1vZGlmaWVkIjooeD12LnN0YXRlLG09di5kYXRhLG49di5lcnJvcixqPSFuKSk6KG49eCwhYiYmeHx8KHg9ImVycm9yIixiPDAmJihiPTApKSkseS5zdGF0dXM9Yix5LnN0YXR1c1RleHQ9KGN8fHgpKyIiLGo/cy5yZXNvbHZlV2l0aChwLFttLHgseV0pOnMucmVqZWN0V2l0aChwLFt5LHgsbl0pLHkuc3RhdHVzQ29kZSh1KSx1PXZvaWQgMCxsJiZxLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt5LG8saj9tOm5dKSx0LmZpcmVXaXRoKHAsW3kseF0pLGwmJihxLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3ksb10pLC0tci5hY3RpdmV8fHIuZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB5fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gci5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHIuZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLHIuZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe3JbYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIHIuaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLHIuYWpheChyLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sci5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksci5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gci5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxyLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gdGhpc1swXSYmKHIuaXNGdW5jdGlvbihhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPXIoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0RWxlbWVudENoaWxkKWE9YS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiByLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3IodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXIodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9ci5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7cih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnBhcmVudChhKS5ub3QoImJvZHkiKS5lYWNoKGZ1bmN0aW9uKCl7cih0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSksdGhpc319KSxyLmV4cHIucHNldWRvcy5oaWRkZW49ZnVuY3Rpb24oYSl7cmV0dXJuIXIuZXhwci5wc2V1ZG9zLnZpc2libGUoYSl9LHIuZXhwci5wc2V1ZG9zLnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuISEoYS5vZmZzZXRXaWR0aHx8YS5vZmZzZXRIZWlnaHR8fGEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfSxyLmFqYXhTZXR0aW5ncy54aHI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319O3ZhciBSYj17MDoyMDAsMTIyMzoyMDR9LFNiPXIuYWpheFNldHRpbmdzLnhocigpO28uY29ycz0hIVNiJiYid2l0aENyZWRlbnRpYWxzImluIFNiLG8uYWpheD1TYj0hIVNiLHIuYWpheFRyYW5zcG9ydChmdW5jdGlvbihiKXt2YXIgYyxkO2lmKG8uY29yc3x8U2ImJiFiLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7dmFyIGcsaD1iLnhocigpO2lmKGgub3BlbihiLnR5cGUsYi51cmwsYi5hc3luYyxiLnVzZXJuYW1lLGIucGFzc3dvcmQpLGIueGhyRmllbGRzKWZvcihnIGluIGIueGhyRmllbGRzKWhbZ109Yi54aHJGaWVsZHNbZ107Yi5taW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUoYi5taW1lVHlwZSksYi5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpO2ZvcihnIGluIGUpaC5zZXRSZXF1ZXN0SGVhZGVyKGcsZVtnXSk7Yz1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXtjJiYoYz1kPWgub25sb2FkPWgub25lcnJvcj1oLm9uYWJvcnQ9aC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09YT9oLmFib3J0KCk6ImVycm9yIj09PWE/Im51bWJlciIhPXR5cGVvZiBoLnN0YXR1cz9mKDAsImVycm9yIik6ZihoLnN0YXR1cyxoLnN0YXR1c1RleHQpOmYoUmJbaC5zdGF0dXNdfHxoLnN0YXR1cyxoLnN0YXR1c1RleHQsInRleHQiIT09KGgucmVzcG9uc2VUeXBlfHwidGV4dCIpfHwic3RyaW5nIiE9dHlwZW9mIGgucmVzcG9uc2VUZXh0P3tiaW5hcnk6aC5yZXNwb25zZX06e3RleHQ6aC5yZXNwb25zZVRleHR9LGguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19LGgub25sb2FkPWMoKSxkPWgub25lcnJvcj1jKCJlcnJvciIpLHZvaWQgMCE9PWgub25hYm9ydD9oLm9uYWJvcnQ9ZDpoLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1oLnJlYWR5U3RhdGUmJmEuc2V0VGltZW91dChmdW5jdGlvbigpe2MmJmQoKX0pfSxjPWMoImFib3J0Iik7dHJ5e2guc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCl9Y2F0Y2goaSl7aWYoYyl0aHJvdyBpfX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX0pLHIuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXthLmNyb3NzRG9tYWluJiYoYS5jb250ZW50cy5zY3JpcHQ9ITEpfSksci5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIHIuZ2xvYmFsRXZhbChhKSxhfX19KSxyLmFqYXhQcmVmaWx0ZXIoInNjcmlwdCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpLGEuY3Jvc3NEb21haW4mJihhLnR5cGU9IkdFVCIpfSksci5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe2lmKGEuY3Jvc3NEb21haW4pe3ZhciBiLGM7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxmKXtiPXIoIjxzY3JpcHQ+IikucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oImxvYWQgZXJyb3IiLGM9ZnVuY3Rpb24oYSl7Yi5yZW1vdmUoKSxjPW51bGwsYSYmZigiZXJyb3IiPT09YS50eXBlPzQwNDoyMDAsYS50eXBlKX0pLGQuaGVhZC5hcHBlbmRDaGlsZChiWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX19KTt2YXIgVGI9W10sVWI9Lyg9KVw/KD89JnwkKXxcP1w/LztyLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9VGIucG9wKCl8fHIuZXhwYW5kbysiXyIrdWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLHIuYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKFViLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmVWIudGVzdChiLmRhdGEpJiYiZGF0YSIpO2lmKGh8fCJqc29ucCI9PT1iLmRhdGFUeXBlc1swXSlyZXR1cm4gZT1iLmpzb25wQ2FsbGJhY2s9ci5pc0Z1bmN0aW9uKGIuanNvbnBDYWxsYmFjayk/Yi5qc29ucENhbGxiYWNrKCk6Yi5qc29ucENhbGxiYWNrLGg/YltoXT1iW2hdLnJlcGxhY2UoVWIsIiQxIitlKTpiLmpzb25wIT09ITEmJihiLnVybCs9KHZiLnRlc3QoYi51cmwpPyImIjoiPyIpK2IuanNvbnArIj0iK2UpLGIuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBnfHxyLmVycm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGIuZGF0YVR5cGVzWzBdPSJqc29uIixmPWFbZV0sYVtlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxkLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY/cihhKS5yZW1vdmVQcm9wKGUpOmFbZV09ZixiW2VdJiYoYi5qc29ucENhbGxiYWNrPWMuanNvbnBDYWxsYmFjayxUYi5wdXNoKGUpKSxnJiZyLmlzRnVuY3Rpb24oZikmJmYoZ1swXSksZz1mPXZvaWQgMH0pLCJzY3JpcHQifSksby5jcmVhdGVIVE1MRG9jdW1lbnQ9ZnVuY3Rpb24oKXt2YXIgYT1kLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keTtyZXR1cm4gYS5pbm5lckhUTUw9Ijxmb3JtPjwvZm9ybT48Zm9ybT48L2Zvcm0+IiwyPT09YS5jaGlsZE5vZGVzLmxlbmd0aH0oKSxyLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybltdOyJib29sZWFuIj09dHlwZW9mIGImJihjPWIsYj0hMSk7dmFyIGUsZixnO3JldHVybiBifHwoby5jcmVhdGVIVE1MRG9jdW1lbnQ/KGI9ZC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLGU9Yi5jcmVhdGVFbGVtZW50KCJiYXNlIiksZS5ocmVmPWQubG9jYXRpb24uaHJlZixiLmhlYWQuYXBwZW5kQ2hpbGQoZSkpOmI9ZCksZj1DLmV4ZWMoYSksZz0hYyYmW10sZj9bYi5jcmVhdGVFbGVtZW50KGZbMV0pXTooZj1xYShbYV0sYixnKSxnJiZnLmxlbmd0aCYmcihnKS5yZW1vdmUoKSxyLm1lcmdlKFtdLGYuY2hpbGROb2RlcykpfSxyLmZuLmxvYWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD4tMSYmKGQ9cGIoYS5zbGljZShoKSksYT1hLnNsaWNlKDAsaCkpLHIuaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmci5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP3IoIjxkaXY+IikuYXBwZW5kKHIucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sci5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtyLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksci5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHIuZ3JlcChyLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH0sci5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaz1yLmNzcyhhLCJwb3NpdGlvbiIpLGw9cihhKSxtPXt9OyJzdGF0aWMiPT09ayYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksaD1sLm9mZnNldCgpLGY9ci5jc3MoYSwidG9wIiksaT1yLmNzcyhhLCJsZWZ0Iiksaj0oImFic29sdXRlIj09PWt8fCJmaXhlZCI9PT1rKSYmKGYraSkuaW5kZXhPZigiYXV0byIpPi0xLGo/KGQ9bC5wb3NpdGlvbigpLGc9ZC50b3AsZT1kLmxlZnQpOihnPXBhcnNlRmxvYXQoZil8fDAsZT1wYXJzZUZsb2F0KGkpfHwwKSxyLmlzRnVuY3Rpb24oYikmJihiPWIuY2FsbChhLGMsci5leHRlbmQoe30saCkpKSxudWxsIT1iLnRvcCYmKG0udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG0ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG0pOmwuY3NzKG0pfX0sci5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3Iub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQsZSxmPXRoaXNbMF07aWYoZilyZXR1cm4gZi5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGI9Zi5vd25lckRvY3VtZW50LGM9Yi5kb2N1bWVudEVsZW1lbnQsZT1iLmRlZmF1bHRWaWV3LHt0b3A6ZC50b3ArZS5wYWdlWU9mZnNldC1jLmNsaWVudFRvcCxsZWZ0OmQubGVmdCtlLnBhZ2VYT2Zmc2V0LWMuY2xpZW50TGVmdH0pOnt0b3A6MCxsZWZ0OjB9fSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciBhLGIsYz10aGlzWzBdLGQ9e3RvcDowLGxlZnQ6MH07cmV0dXJuImZpeGVkIj09PXIuY3NzKGMsInBvc2l0aW9uIik/Yj1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOihhPXRoaXMub2Zmc2V0UGFyZW50KCksYj10aGlzLm9mZnNldCgpLEIoYVswXSwiaHRtbCIpfHwoZD1hLm9mZnNldCgpKSxkPXt0b3A6ZC50b3Arci5jc3MoYVswXSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxsZWZ0OmQubGVmdCtyLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKX0pLHt0b3A6Yi50b3AtZC50b3Atci5jc3MoYywibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtZC5sZWZ0LXIuY3NzKGMsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYic3RhdGljIj09PXIuY3NzKGEsInBvc2l0aW9uIikpYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYXx8cmF9KX19KSxyLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz0icGFnZVlPZmZzZXQiPT09YjtyLmZuW2FdPWZ1bmN0aW9uKGQpe3JldHVybiBUKHRoaXMsZnVuY3Rpb24oYSxkLGUpe3ZhciBmO3JldHVybiByLmlzV2luZG93KGEpP2Y9YTo5PT09YS5ub2RlVHlwZSYmKGY9YS5kZWZhdWx0Vmlldyksdm9pZCAwPT09ZT9mP2ZbYl06YVtkXTp2b2lkKGY/Zi5zY3JvbGxUbyhjP2YucGFnZVhPZmZzZXQ6ZSxjP2U6Zi5wYWdlWU9mZnNldCk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgpfX0pLHIuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihhLGIpe3IuY3NzSG9va3NbYl09UGEoby5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGEsYyl7aWYoYylyZXR1cm4gYz1PYShhLGIpLE1hLnRlc3QoYyk/cihhKS5wb3NpdGlvbigpW2JdKyJweCI6Y30pfSksci5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxiKXtyLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7ci5mbltkXT1mdW5jdGlvbihlLGYpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGgmJihjfHwiYm9vbGVhbiIhPXR5cGVvZiBlKSxoPWN8fChlPT09ITB8fGY9PT0hMD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFQodGhpcyxmdW5jdGlvbihiLGMsZSl7dmFyIGY7cmV0dXJuIHIuaXNXaW5kb3coYik/MD09PWQuaW5kZXhPZigib3V0ZXIiKT9iWyJpbm5lciIrYV06Yi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWIubm9kZVR5cGU/KGY9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5WyJzY3JvbGwiK2FdLGZbInNjcm9sbCIrYV0sYi5ib2R5WyJvZmZzZXQiK2FdLGZbIm9mZnNldCIrYV0sZlsiY2xpZW50IithXSkpOnZvaWQgMD09PWU/ci5jc3MoYixjLGgpOnIuc3R5bGUoYixjLGUsaCl9LGIsZz9lOnZvaWQgMCxnKX19KX0pLHIuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX19KSxyLmhvbGRSZWFkeT1mdW5jdGlvbihhKXthP3IucmVhZHlXYWl0Kys6ci5yZWFkeSghMCl9LHIuaXNBcnJheT1BcnJheS5pc0FycmF5LHIucGFyc2VKU09OPUpTT04ucGFyc2Usci5ub2RlTmFtZT1CLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiByfSk7dmFyIFZiPWEualF1ZXJ5LFdiPWEuJDtyZXR1cm4gci5ub0NvbmZsaWN0PWZ1bmN0aW9uKGIpe3JldHVybiBhLiQ9PT1yJiYoYS4kPVdiKSxiJiZhLmpRdWVyeT09PXImJihhLmpRdWVyeT1WYikscn0sYnx8KGEualF1ZXJ5PWEuJD1yKSxyfSk7Cg=="}},"time_used":81,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":58,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.bitifinex.live/assets/front/js/jquery.counterup.min.js","fqdn":"www.bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:45.847Z","timestamp":1785126645847,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET /assets/front/js/jquery.counterup.min.js HTTP/1.1\r\nHost: www.bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nCookie: PHPSESSID=ebcb937bea8ad0167f6c454d5b23f557\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Fri, 10 Jul 2026 03:44:03 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 496\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\ncache-control: max-age=3600, public\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1067,"size_decoded":750,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (917)","md5":"ef36cca760bf1cd76cfcd0e4dc10cef1","sha1":"ef38469f60d58850fe55c4de2ec7e289a2415d71","sha256":"26d40f8ffdf1b9bf286a954c6888a33cda0cd031e802d821fe0c0562e379ae29","sha512":"77c175276932891a30041ffcfe9016b2a525d304843a41b92804e4555e2c95f6e5abd55143a3320d95715a5dad59dfa63e1b826e94c1e0ceee53fc7d165810f5","ssdeep":"","tlshash":"37118cb93a0a298daa80e459f1efb0989176bdbc0c80884b91c558401fa5abc3b5b730","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-07-27T08:09:18.556606Z","times_seen":12806,"resource_available":true,"data":"LyohCioganF1ZXJ5LmNvdW50ZXJ1cC5qcyAxLjAKKgoqIENvcHlyaWdodCAyMDEzLCBCZW5qYW1pbiBJbnRhbCBodHRwOi8vZ2FtYml0LnBoIEBiZmludGFsCiogUmVsZWFzZWQgdW5kZXIgdGhlIEdQTCB2MiBMaWNlbnNlCioKKiBEYXRlOiBOb3YgMjYsIDIwMTMKKi8oZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2UuZm4uY291bnRlclVwPWZ1bmN0aW9uKHQpe3ZhciBuPWUuZXh0ZW5kKHt0aW1lOjQwMCxkZWxheToxMH0sdCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscj1uLGk9ZnVuY3Rpb24oKXt2YXIgZT1bXSxuPXIudGltZS9yLmRlbGF5LGk9dC50ZXh0KCkscz0vWzAtOV0rLFswLTldKy8udGVzdChpKTtpPWkucmVwbGFjZSgvLC9nLCIiKTt2YXIgbz0vXlswLTldKyQvLnRlc3QoaSksdT0vXlswLTldK1wuWzAtOV0rJC8udGVzdChpKSxhPXU/KGkuc3BsaXQoIi4iKVsxXXx8W10pLmxlbmd0aDowO2Zvcih2YXIgZj1uO2Y+PTE7Zi0tKXt2YXIgbD1wYXJzZUludChpL24qZik7dSYmKGw9cGFyc2VGbG9hdChpL24qZikudG9GaXhlZChhKSk7aWYocyl3aGlsZSgvKFxkKykoXGR7M30pLy50ZXN0KGwudG9TdHJpbmcoKSkpbD1sLnRvU3RyaW5nKCkucmVwbGFjZSgvKFxkKykoXGR7M30pLywiJDEsJDIiKTtlLnVuc2hpZnQobCl9dC5kYXRhKCJjb3VudGVydXAtbnVtcyIsZSk7dC50ZXh0KCIwIik7dmFyIGM9ZnVuY3Rpb24oKXt0LnRleHQodC5kYXRhKCJjb3VudGVydXAtbnVtcyIpLnNoaWZ0KCkpO2lmKHQuZGF0YSgiY291bnRlcnVwLW51bXMiKS5sZW5ndGgpc2V0VGltZW91dCh0LmRhdGEoImNvdW50ZXJ1cC1mdW5jIiksci5kZWxheSk7ZWxzZXtkZWxldGUgdC5kYXRhKCJjb3VudGVydXAtbnVtcyIpO3QuZGF0YSgiY291bnRlcnVwLW51bXMiLG51bGwpO3QuZGF0YSgiY291bnRlcnVwLWZ1bmMiLG51bGwpfX07dC5kYXRhKCJjb3VudGVydXAtZnVuYyIsYyk7c2V0VGltZW91dCh0LmRhdGEoImNvdW50ZXJ1cC1mdW5jIiksci5kZWxheSl9O3Qud2F5cG9pbnQoaSx7b2Zmc2V0OiIxMDAlIix0cmlnZ2VyT25jZTohMH0pfSl9fSkoalF1ZXJ5KTs="}},"time_used":76,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":75,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:46.469Z","timestamp":1785126646469,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 40128\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:17:07 GMT\r\nexpires: Fri, 23 Jul 2027 02:17:07 GMT\r\ncache-control: public, max-age=31536000\r\nage: 353619\r\nlast-modified: Thu, 29 May 2025 23:30:55 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":40128,"size_decoded":40941,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40128, version 1.0","md5":"9a01b69183a9604ab3a439e388b30501","sha1":"8ed1d59003d0dbe6360481017b44665153665fbe","sha256":"20b535fa80c8189e3b87d1803038389960203a886d502bc2ef1857affc2f38d2","sha512":"0e6795255b6eea00b5403fd7e3b904d52776d49ac63a31c2778361262883697943aedcb29feee85694ba6f19eaa34dddb9a5bfe7118f4a25b4757e92c331feca","ssdeep":"768:Vce3jkow68wmT4IBX0tXdlSirS61gSjcz0GPwHbP+w2jec56O:VcI/iEEEtXdFJj+0GPwHbP+w5rO","tlshash":"3703023a5e3ccf1a84157a703950f6d9a8481e548e9d143b4f1ac7bf085dde2209b6d4","first_seen":"2025-01-08T22:59:02.845106Z","last_seen":"2026-07-27T08:08:30.994932Z","times_seen":947120,"resource_available":false,"data":"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"}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/3408.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.631Z","timestamp":1785126646631,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/3408.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2357\r\nage: 2865\r\nlast-modified: Fri, 06 Feb 2026 07:18:54 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:43:02 GMT\r\ncache-control: public, max-age=86400\r\netag: \"e745bf550d209084227adac42e9ec7df\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: Pv9ZBmZrL0UkjozbsgTf2ACALBIjs-FDYDCQREELapTVtBGSf_MMTA==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2357,"size_decoded":2928,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"e745bf550d209084227adac42e9ec7df","sha1":"d335544c68c51d8ae72314406109b7cd06b5668d","sha256":"6f2390c4bf94ba36584793958432d5069f2bec31dfa7cb9b93c0c76cf965a901","sha512":"cf24459f5841a89b0ac17a689b0b5fe241a66b117d0abc94c95502e1664e0e25011d41f249c3645173a122622ad17bad5f1f9558785155184a6fde91920e58b7","ssdeep":"","tlshash":"12413a80ab21b72a88210d32530a056fe5b7ec49c711b6a5a97a3c117a9bbef149315f","first_seen":"2026-02-08T21:55:57.588725Z","last_seen":"2026-07-27T08:07:37.35062Z","times_seen":1247,"resource_available":false,"data":"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"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/3897.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.823Z","timestamp":1785126646823,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/3897.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 431\r\nage: 76482\r\nlast-modified: Tue, 25 Jan 2022 23:26:38 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 07:16:26 GMT\r\netag: \"7b13f300b044436260728185583927b9\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: oWeT0-Nw1UJiiIfPrn-FCtXVEYqmaFxwpM9Fv3u9QCAeANTQfaMN5Q==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":431,"size_decoded":926,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"7b13f300b044436260728185583927b9","sha1":"d62b14a8548ea890dbd1a7d940ae3c3d7c413841","sha256":"f5885d09e88c56b64a53c6814e145398f404d87bf8e7e1e8684e723c9ba14164","sha512":"6ee41031c1f78cb0da61687c6c4c531e64ba06b23ed6da339bbc99a706851c9060be7799132f1a9e20e2e5b241582d881dd79ba39a5409fdd7b6876c23b457af","ssdeep":"","tlshash":"d4e05cb9be567e1fd76d25ebe3798074b4366604c81512fc14c48024b240531b984d0e","first_seen":"2025-05-17T13:51:35.328372Z","last_seen":"2026-07-27T08:07:37.481346Z","times_seen":1091,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABdklEQVR4XuXOMYpFUQzD0Lv/Rb/5vQWTqEjlwGkEhrz33l85hDYIbRDaILRBaIPQBqENQhuENghtENogtEFog7BiL/cTe7kXEFbs5X5iL/cCwoq93E/s5V5AWLGX+4m93AsIK/ZyP7GXewFhxV7uJ/ZyLyCs2Mv9xF7uBYQVe7mf2Mu9gLBiL/cTe7kXEFbs5X5iL/cCwoq93E/s5V5AWLGX+4m93AsIJ77vy5//vdwfQjhhL/eHEE7Yy/0hhBP2cn8I4YS93B9COGEv94cQTtjL/SGEE/ZyfwjhhL3cH0I4YS/3hxBO2Mv9IYQT9nJ/CGHFXu4n9nIvIKzYy/3EXu4FhBV7uZ/Yy72AsGIv9xN7uRcQVuzlfmIv9wLCir3cT+zlXkBYsZf7ib3cCwgr9nI/sZd7AWHFXu4n9nIvIKzYy/3EXu4FhBV7uZ/Yy72AsGIv9xN7uRcQ2iC0QWiD0AahDUIbhDYIbRDaILRBaIPQBqENQpUf4B5Y9kWIRxEAAAAASUVORK5CYII="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/27075.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.863Z","timestamp":1785126646863,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/27075.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 3758\r\nage: 7261\r\nlast-modified: Wed, 10 Dec 2025 14:00:00 GMT\r\nx-amz-server-side-encryption: AES256\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:29:52 GMT\r\ncache-control: public, max-age=86400\r\netag: \"f4b079b22916727f331f5367b109d9f3\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: hQSJAzqb-5HNcfiQQYrwVPRU9O6Brp4Wak8QpYggjMOKPWKW6nuCWg==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":3758,"size_decoded":4329,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"f4b079b22916727f331f5367b109d9f3","sha1":"92bd082ede184da6675d5bb9775f5a117e54c7e0","sha256":"c518e614a3cb5f346f27e7bfb08aa84ba8ef8ab16d388ea2473e4c982ed430de","sha512":"c749679577caca715e4a4d1d16b7ea694843bf1748f7145ddc1598fb1def27447caadbfa8ae0c32dcdc055b05e04ae3dabaa85a0f17b7c9af2983ca293e2d9ef","ssdeep":"","tlshash":"10717b8de85bccd88407baf040bf942932ce497a4d21831f324b3a598f1270963fa31a","first_seen":"2026-03-04T08:47:10.842758Z","last_seen":"2026-07-27T08:07:37.358524Z","times_seen":1080,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"i.ytimg.com/vi/GmOzih6I1zs/sddefault.jpg?sqp=-oaymwEmCIAFEOAD8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGGUgZShlMA8=\u0026rs=AOn4CLBV9gO8Dtgidl0zTT1zp4YoBLupbw","fqdn":"i.ytimg.com","domain":"ytimg.com","tld":"com"},"ip":{"addr":"142.250.178.118","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.youtube.com/embed/GmOzih6I1zs","date":"2026-07-27T04:30:47.519Z","timestamp":1785126647519,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"edgestatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:24 GMT","end":"Mon, 21 Sep 2026 08:37:23 GMT"},"fingerprint":{"sha1":"99:EB:44:FC:A9:EB:62:72:A5:7C:E5:77:BF:06:63:47:1B:54:C7:D7","sha256":"CD:4A:F6:7A:9F:60:AA:84:9F:37:94:1B:BE:E7:AB:41:46:38:9E:68:4A:4F:36:B3:D0:84:EC:FA:44:D7:A9:DD"}}},"request":{"raw":"GET /vi/GmOzih6I1zs/sddefault.jpg?sqp=-oaymwEmCIAFEOAD8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGGUgZShlMA8=\u0026rs=AOn4CLBV9gO8Dtgidl0zTT1zp4YoBLupbw HTTP/1.1\r\nHost: i.ytimg.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 15476\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Mon, 27 Jul 2026 03:50:38 GMT\r\nexpires: Mon, 27 Jul 2026 05:50:38 GMT\r\ncache-control: public, max-age=7200\r\nage: 2409\r\netag: \"0\"\r\ncontent-type: image/jpeg\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":15476,"size_decoded":16140,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 640x480, components 3","md5":"de2f5f155f3c8a7f7f3f98e53b4961bf","sha1":"c210a44e85655826b7f93dd02a0ce9d6f588c341","sha256":"ff9133341d41f886cd8177bdb491366428eb902e0a3ffba485a893dcc49142d0","sha512":"1f8aac8ef0acd4d5eafb8ddb1cbbbee527332f862c3a33cdd52c0b2378913150e42438d6dfc2f398d14d9c4e35d5c5499640288600dc0981834329905667e3b1","ssdeep":"384:bGbbQG0SXxoQVIwcMd9I2CPdWym+WQrsx8+02:qbbocxoQV3T9i7nRi","tlshash":"2662c01d77254c8eec36a2bba9834f282a7784b7d4b10c6f374c9845bcb29e4c478171","first_seen":"2024-12-10T07:13:46.596988Z","last_seen":"2026-07-27T04:32:40.417954Z","times_seen":32,"resource_available":false,"data":"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"}},"time_used":67,"timings":{"blocked":0,"dns":2,"connect":15,"send":0,"wait":16,"receive":3,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bitifinex.live/","fqdn":"bitifinex.live","domain":"bitifinex.live","tld":"live"},"ip":{"addr":"51.89.6.198","port":443,"asn":16276,"as":"OVH SAS","country":"United Kingdom","country_code":"GB"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T04:30:45.177Z","timestamp":1785126645177,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.bitifinex.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 19:25:21 GMT","end":"Wed, 07 Oct 2026 19:25:20 GMT"},"fingerprint":{"sha1":"F1:BA:E0:82:FB:56:A0:3B:4A:30:60:8F:78:79:C1:D5:78:9E:74:87","sha256":"A3:2D:8C:11:F4:2B:FD:E9:53:E1:FE:86:93:23:7D:AE:B2:23:16:DD:A5:A5:B2:FE:CB:AC:6F:21:6F:33:4E:31"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: bitifinex.live\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 301 \r\ncontent-type: text/html\r\ncontent-length: 795\r\ndate: Mon, 27 Jul 2026 04:30:45 GMT\r\nlocation: https://www.bitifinex.live/\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"301","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"text/html; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T08:08:41.31747Z","times_seen":17559137,"resource_available":true,"data":null}},"time_used":147,"timings":{"blocked":-1,"dns":2,"connect":35,"send":0,"wait":35,"receive":0,"ssl":74},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"s2.coinmarketcap.com/static/img/coins/64x64/3957.png","fqdn":"s2.coinmarketcap.com","domain":"coinmarketcap.com","tld":"com"},"ip":{"addr":"52.84.50.71","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://coinlib.io/widget?type=horizontal_v2\u0026theme=light\u0026pref_coin_id=1505\u0026invert_hover=","date":"2026-07-27T04:30:46.646Z","timestamp":1785126646646,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.coinmarketcap.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Sun, 04 Jan 2026 00:00:00 GMT","end":"Mon, 01 Feb 2027 23:59:59 GMT"},"fingerprint":{"sha1":"32:EE:1B:94:2E:9E:3D:5C:B3:4B:8C:9C:32:97:7E:62:1A:36:CB:1D","sha256":"87:58:9A:9B:C4:87:B1:04:29:1A:77:63:C3:BD:4D:A6:C8:2D:D4:51:3A:17:BA:F3:97:B3:E8:A2:9A:46:A0:3A"}}},"request":{"raw":"GET /static/img/coins/64x64/3957.png HTTP/1.1\r\nHost: s2.coinmarketcap.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://coinlib.io/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/png\r\ncontent-length: 2847\r\nage: 86068\r\nlast-modified: Tue, 19 Oct 2021 05:34:38 GMT\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Sun, 26 Jul 2026 04:36:19 GMT\r\ncache-control: max-age=86400\r\netag: \"f6894d3955fb14cdda30c8efa49a5096\"\r\nvary: Accept-Encoding, Origin\r\nx-cache: Hit from cloudfront\r\nalt-svc: h3=\":443\"; ma=86400\r\nvia: 1.1 652549e0dcae9775148cb207792b2a40.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: CJm8vu6XS1_8hxtOxuwAY-iOeydD_M_C9FTVkYmQfyMFzb25Sd3v6w==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":2847,"size_decoded":3373,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit colormap, non-interlaced","md5":"f6894d3955fb14cdda30c8efa49a5096","sha1":"94fa4629c716af0d5a3743f37c56adfcfdf8f48c","sha256":"b2f4ab7b90bba9d8a6a7030dc77051befe48ab8f27fed2cfd8acb2060ce7b8f6","sha512":"22244597a2a22ec6011765743dda5e7ba01f9f3a23ba4c8ec9e91158f4e76835bbbd95f04cd65d18b6cd41c5b1b130971641298f9f2c00c54ce611c62f4e3232","ssdeep":"","tlshash":"2e513cc19d2d29b4dbaf4a523bf08512daceb3e53322222d9317afd10947f702459ac7","first_seen":"2023-05-16T12:20:21Z","last_seen":"2026-07-27T08:07:37.35185Z","times_seen":1172,"resource_available":false,"data":"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"}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"assets.chaport.com/sounds/beep.mp3","fqdn":"assets.chaport.com","domain":"chaport.com","tld":"com"},"ip":{"addr":"104.26.15.45","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.bitifinex.live/","date":"2026-07-27T04:30:48.148Z","timestamp":1785126648148,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"chaport.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Mon, 08 Jun 2026 20:12:54 GMT","end":"Sun, 06 Sep 2026 21:12:38 GMT"},"fingerprint":{"sha1":"07:C8:9F:DA:64:FB:FB:E4:DC:47:AD:A1:0C:98:26:FD:23:EF:D7:68","sha256":"9D:99:FB:FE:9F:E4:63:AE:15:1D:D5:0B:D2:A0:CD:1A:EB:99:4A:5A:D5:F2:CC:E8:58:DD:F3:90:30:FB:9F:BE"}}},"request":{"raw":"GET /sounds/beep.mp3 HTTP/1.1\r\nHost: assets.chaport.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://www.bitifinex.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.bitifinex.live/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:30:48 GMT\r\ncontent-type: audio/mpeg\r\ncontent-length: 5466\r\nserver: cloudflare\r\nlast-modified: Thu, 11 Jun 2026 09:43:35 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\netag: \"6a2a8347-155a\"\r\nexpires: Wed, 26 Aug 2026 03:50:44 GMT\r\ncache-control: max-age=2592000, public\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nx-xss-protection: 1; mode=block\r\nstrict-transport-security: max-age=63072000; includeSubdomains;\r\naccess-control-allow-origin: *\r\naccept-ranges: bytes\r\nage: 2403\r\ncf-cache-status: HIT\r\nvary: accept-encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=I05xebs5bJdICyCwDBmyPGJoxNCPULEp%2FoNConF5PrqOcDB%2BuACDiaWOmsbj%2FUihbq8pWm3DwuGLQhXk5%2B77yU9dnA2rYP9HmN1HOu%2F9dELoUC0G4HyaFYg%2F81846OfIGzHy8w%3D%3D\"}]}\r\ncf-ray: a218e92ef86cb1b8-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":5466,"size_decoded":6390,"mime_type":"audio/mpeg","magic":"Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Monaural","md5":"874dcd48ad642582b7e45aee9d9dda5f","sha1":"0dd4bc230c31bbfbdeecaa0be2e10012603175d7","sha256":"55f34e2987da2f0c358a95a191908c281f1755b6507c149dba284f0509694586","sha512":"1135ca9b97cf2b6ff939ac5d4be205c46371ce05b7cafab84afb76484a2db0d08bb7aa1bfb4bd2199582977a777ad796bc022e202d585c677eda2fff7a51f7b6","ssdeep":"48:MoX/qSWcwSL8U+eLHcyFgdp87Iu25qFP7RJFtdm0AH48rLDYwU//JaZd11Ty50b:MovOdeLZ68sqFDTFtdixXYF/QZd11e5O","tlshash":"13b13c2bb07a75ef510ff2363d21415404b19c8be5957de49004c3b352bab49a259aab","first_seen":"2023-04-13T07:14:16Z","last_seen":"2026-07-27T08:03:47.509886Z","times_seen":1371,"resource_available":false,"data":"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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+5LEOQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//uSxDkDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7ksQ5A8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+5LEOQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
